'Mercury Playback Engine' is a name for a large number of performance improvements in Premiere Pro CS5. Those improvements include the following:

- 64-bit application

- multithreaded application

- processing of some things using CUDA

Everyone who has Premiere Pro CS5 has the first two of these. Only the third one depends on having a specific graphics card.

Confusingly---because of one of our own early videos that was just plain unclear---a lot of people think that 'Mercury' just refers to CUDA processing. This is wrong. To see that this was not the original intent, you need look no further than the project settings UI strings 'Mercury Playback Engine GPU Acceleration' and 'Mercury Playback Engine Software Only', which would make no sense if 'Mercury' meant "hardware" (i.e., CUDA).

The official and up-to-date list of the cards that provide the CUDA processing features is here:

It's worth mentioning one set of things that Premiere Pro CS5 doesn't process using CUDA: encoding and decoding.

Note that whether a frame can be processed by CUDA depends on the size of the frame and the amount of RAM on the graphics card (VRAM). This article gives details about that, toward the bottom.

Processing with CUDA doesn't just mean that things are faster. In some cases, it can actually mean that results are better, as with scaling. See this article for details.

The term 'Mercury Playback Engine' refers to Premiere Pro. It has nothing to do with After Effects. After Effects CS5 is a 64-bit application, and it has been multithreaded for a long time, so those improvements are there. But After Effects doesn't use CUDA (though a few third-party plug-ins do).

I find it a bit unfair that there should be a list and a very small one at that, when I was buying my card I looked at the GTX 470 which is now on the list but all the revues said that the newer GTX 460 was better I.E. faster lower power consumption etc. Anyone buying a card has a dilemma, buy the older slower card and be on the list or buy the newer faster card which is not on the list. Why can't PPCS5 just look at your card and decide whether it's good enough to use Mercury ? Harm mentioned that it was possible to "hack" PP to use a non listed card and I have done this but is it allowed ?

There's a lot of testing work that goes into making sure that a given card works without problems and actually provides the features in a way that we can support.

We don't want to say that people can use any card and then have some cards cause problems. We learned this the hard way on the After Effects side, where a lot of problems arise from people trying to use the OpenGL features with cards that we haven't been abe to test against and verify.

If there's a specific card that you want us to add to the list of cards that Premiere Pro CS5 can use for CUDA processing, then let us know with a feature request.

The 460 is a slimmed down version of the 470. It is not faster. The 470 is the faster of the two cards.

One can only guess at the reason Adobe left this easy 'hack' available for use by many.

One could argue that:

1. the limited list of supported cards makes the development time, manpower and support less costly for Adobe, and

2. the 'hacked' cards using non-supported cards will show if and where problems may be without any effort from Adobe, apart from reading the forums, and

3. the talk about the 'hack' improves the commercial potential of CS5 for Adobe without any effort.

All three points are distinct benefits for Adobe.

Do you seriously think that a potential buyer of CS5, who currently has a GTX-480, would consider downgrading to a GTX-470 when he can see that 60% of the top-20 performers in the PPBM5 Benchmark are using a 'hacked' version of the 480? He would keep his 480 and not hesitate to buy CS5. Adobe meanwhile does not have to give costly support, does not have to do extensive testing to certify the card and still sells a license, so everybody is happy.

a lot of people think that 'Mercury' just refers to CUDA processing. This is wrong. To see that this was not the original intent, you need look no further than the project settings UI strings 'Mercury Playback Engine GPU Acceleration' and 'Mercury Playback Engine Software Only', which would make no sense if 'Mercury' meant "hardware" (i.e., CUDA).

--------------

so with the mercury playback software only there are still significant improvements in processing or functionality of PP but with CUDA there is even MORE speed due to using the hardware ( gpu and cuda ? )

how much of the gpu does the software ONLY use ?? in comparison to the gpu using the vram to take stress off the cpu processing ?

Software MPE does not use the GPU/CUDA. Only hardware MPE uses the GPU/CUDA and that of course depends on your timeline. Supported effects, transitions, scaling and blending used. In some cases it can use more than 50% of the GPU processing power, in other cases only 10%. To complicate this even further, look at the explanation on the Background page of the PPBM5 Benchmark

On this benchmark test the average speed increase of hardware MPE over software MPE is around 10 x, depending on a number of other factors, like video card, CPU, memory, clock speed etc. So, for example the test takes 10 seconds with hardware MPE and 100 seconds with software MPE.

One very important thing to take into consideration is that hardware MPE is not only about speed, but also about quality. Hardware MPE uses maximum quality all the time, if one uses software MPE and set MRQ on, the quality will be comparable to hardware MPE, but the render times may differ by a factor 30 - 50.

Sidebar: If the video card/VRAM is completely used, hardware MPE reverts to software MPE automatically and lost is the maximum quality. Just to be aware of.

None. That's the point. The term 'software' in this context refers to CPU-only processing.

Well, this begs the question, then: why market and then include in the software the confusing phrase "Mercury Playback Engine?" I mean, I understand the desire for catchy slogans and stuff that can adorn ad slicks, but if you have access to the Mercury Playback Engine regardless of having an approved GPU or not, why bother? It seems it would be easier and more logical to simply say, "Premiere Pro CS5 is fast. Add a certain graphics card, and it will be even faster."

Endusers ultimately don't care about the names of underlying proprietary technologies. Sure, we all love to boast about a certain brand or another that we purchase or use, but "Mercury Playback Engine" isn't a brand. Tell them what they can do to squeeze more performance out of the software, and leave it at that. If Adobe wants to sell more copies of Premiere Pro, simply stop referring to MPE at all, and say, "Right out of the box, you have X; add a specific GPU and you have X+10."

PS: Todd, you should probably refer to the Mercury Playback Engine correctly, and not just Mercury... or Dennis will send you a nasty note

ahh...OK, thank you Todd and Harm...both...i understand this much better now

one more question, with regard to Open GL

IIRC, glide and then open glide ( open gl ) was for gaming at first to draw ( using the gpu and vram ( mem on card )) complex 3d scenes etc FAST, so that the cpu wasnt being used for those things that the GPU could do ( light source vectors and refraction and reflection and any number of skin related ( attributes of 3d objects ) ) ??? is that about right ?

so with pp cs5 that open gl does not apply whatsoever, but in AE ( which I dont have ...I do have maya and know a little bit about 3d stuff ) ...in AE the open gl IS USED in some circumstances....is this right....pp cs5 does NOT use open GL, AE does sometimes ?

sooo, in terms of the PP CS5 mercury playback and open GL cards abilities, you would notice a big difference with PP CS5 but not such a big difference with AE CS5 ??

> Well, this begs the question, then: why market and then include in the software the confusing phrase "Mercury Playback Engine?"

That's a fine question for someone other than me. As you can probably guess, I wasn't one of the folks excited about giving a squishy and intrinsically confusing name to a set of loosely clustered features.

> It seems it would be easier and more logical to simply say, "Premiere
Pro CS5 is fast. Add a certain graphics card, and it will be even
faster."

OpenGL is a different technology that is implemented through GPUs. It is not exclusive of CUDA; it's a different thing altogether, and a card that uses CUDA will also use OpenGL for some things. OpenGL is used to do such things as render 3D and accelerate drawing of items to the screen. After Effects uses it some. Premiere Pro, not so much. Even on After Effects, it's only really useful for rough preview renders; it's not appropriate for final renders or high-fidelity previews.

Is it possible to rebase Mercury Playback Engine on OpenCL, which I imagine might make it easier to support ATI cards? I have one computer with an Nvidia card and another with an ATI card. Is OpenCL appropriate and sufficiently mature?

thanks Todd, thats pretty much what I figured... mostly for gaming and for some 3d rendering ....( to screen )

in defense of the forces that be, the marketing and the "basics" of presenting cs5 to the world, I have to say its awfully complicated by nature and is sorta not geared toward a "casual user " of computers to do this kind of work ( editing , SFX , etc )

So "squishy" and so on is probably part of the translation from programmer ( who already knows whats up ) to " writer " who has less of a clear idea of whats up unless someone tells him. And I wonder how many copy writers get their arms twisted to just " keep it simple " ...for the sake of getting the product delivered. Can't blame it on some conspiracy theory or something in this case. I don't have cs5 but I haven't been misled about whats up with this stuff.... I kinda GET IT, from the experience I have and knowing the hardware applications from the past. When you throw in CPU's with "new graphics abilities " like the recent news ...I just go back to thinking how commadore and atari dealt with "player missle" stuff.... somehow I doubt its gonna matter to my editing.

I see what you are saying but most people wouldn't know about the hack I only found out two days ago, infact I also only found out at the same time that if a card wasn't on the list mercury didn't work so I hacked my card and did the benchmark test 252 secs no too bad ?

> Is it possible to rebase Mercury Playback Engine on OpenCL, which I
imagine might make it easier to support ATI cards? I have one computer
with an Nvidia card and another with an ATI card. Is OpenCL appropriate
and sufficiently mature?

As we were beginning the work for Premiere Pro CS5, OpenCL wasn't far enough along.

Regarding plans for future versions: Sorry, but we can't comment on what may or may not be done in future versions. That said, we rely heavily on feature requests to determine how many people want a specific feature. If you'd like to see us use OpenCL for processing, please submit a feature request.

That Is Correct but you can make it suitable search for the "Premiere Pro hack" I have done it and now my GeForce GTX 460 works fine, I can't give you a direct link because forum rules don't allow it, however I think your graphics card has to have 1Gb of memory or perhaps 750 Mb. What are the specs of your card ?

Hello again, sorry but I would say your card is not suitable for hacking my GTX 460 was very reasonable and the hack works, I bought a Palit sonic platinum which is manufacturer overclocked by 20%. I am afraid that although PPCS5 has fantastic capabilities it is resource hungry and I personally am always planning my next upgrade (currently 18gb ram to 24gb i7 950 to i7 980X Samsung spinpoint to ssd's so on and so fourth it never stops) Good luck there are always lots of top experts to help on this forum to help.

Just be careful most top cards need extra power so you have to be sure your power supply has the correct plugs they're square with six connections, my GTX 460 has two extra sockets for power, if you're planning an upgrade a good GTX card and an 850 watt power supply (buy a good one) would not be wasted. I have just done a search and you can get conversion cables from the 4 pin flat molex to the square graphics card plug but you must make sure your power supply is up to it.

Even on After Effects, it's only really useful for rough preview
renders; it's not appropriate for final renders or high-fidelity
previews.

That is incorrect. OpenGL is only used on preview for "historic" effects, effects where CPU versions existed and were in use. This gaurantees consistency in final render from version to version. One some new filters, such as Cartoon, GPU is also used for final render (depending on the system configuration), because the performance is so much better (and the quality is comparable, but not pixel-for-pixel across machines like CPU).

Kevin, the Cartoon effect is one of very few built-in effects that uses the system that you refer to in After Effects. And whether or not that effect uses the GPU is not determined by the Use OpenGL Renderer setting for final renders or the Enable OpenGL preference in the Previews category. Whether Cartoon uses the GPU is determined by the Performance setting in the Cartoon effect itself.

My point was that people in general should not use the Use OpenGL Renderer setting for final renders or the Enable OpenGL preference in the Previews category if they care about the appearance of the images. There are so many things that are not supported by the OpenGL renderer that people who turn it on almost universally complain of poor results.

Todd, others, one of the things I'm still a bit unsure about is the difference of using GPU and non-GPU Mercury when it comes to real-time playback.

When I added my cards, I guess I assumed my realtime playback would either stay the same, or in some cases improve, due to processing being conducted by the GPU.

What I have found in some of my HDV projects, especially where I have an embedded AE comp, is that I can't get anything approaching realtime playback, UNLESS I turn off GPU assistance and go back to software only.

So I'm wondering, if I can't get realtime using the GPU, do I need a better card, a better machine, or both? Are there cases where using the GPU is not advised/appropriate?

Could you clarify for me what GPU is doing or not doing for realtime playback?

I have a question regarding the capacity of CUDA and Mercuryengine to playback HD bitmap files in real time in PremierePro CS5 (5.0.3).

I do film animation and work with uncompressed image sequences shot on DSLR cameras reduced to the 16:9 HD 1080 resolution. I don't have any problems playing XDCAM HD 422, the processor being able to easily deal with them. But when it is time to play bitmap image (TGA) sequences, the playback is choppy, even if the PremPro session corresponds to the input. My solution for now is to render the files before playback.

I have researched the Bitmap playback subject, but there is very little information found on the topic. I am wondering if a switch to a GeForce GTX 470 graphic card would do anything since bitmap playback is not CPU intensive, unlike the XDCAM HD 422 file type? As much as possible, I am trying to avoid a proxy work flow. For now, it seems that the problem might be related to memory bandwidth and stream performance (Geekbench test).

Here is what I have found to improve playback: My TGAs are of 24 bit, 6 Mb each. Despised the absence of an alpha channel within the file, I decided to go to "interpret Footage" and check "Ignore Alpha Channel". I can now play those images in real time, in several layers, including an XDCAM HD 422 file, with playback resolution to 1/2.