Technology Sneek Peek: Adobe® Mercury Playback Engine
Lets start with the big, bold, brash, brazen, big-time, blow-your-mind (are there any other 'big' adjectives I've missed?) statement about the Adobe® Mercury Playback Engine: It is a game changer.
Haven't heard about the Mercury Playback engine yet? Good - Read on!
Brief Update - Hopefully, the read of this blog entry is entertaining, but in order to 'see it in action' I've embedded Dave's video. Give it a view and then read on...
Let's start with the back-story or history on the Adobe Mercury Playback engine. Back at IBC in September, the show happened in Amsterdam and while Adobe was there talking about several things including Adobe Story - over at the NVIDIA booth, we were showing a technology preview with quiet undertones. It didn't have the name Mercury and it wasn't even really the big thing we were showing. However, John at FXGuide was over there and among several other tidbits, included Adobe in a podcast that he did over at the show. A month crawls along and during that time, the podcast starts to get some mentions in various forums and chatter amongst the creative crowd... People start to get excited about the possibilities and ask questions. Here's the high bandwidth version for your viewing pleasure.
Let me be clear before I go any further: This is a technology demo only and while Adobe is very excited, it’s not something that is available now in CS4 nor are we commenting about exactly when it will make an appearance. Now, back to our regularly scheduled exciting blog post...
Somewhere along the way, amidst the growing awareness at Adobe, we conferred upon how to let our customers know about this exciting technology that we were working on and how to respond to the growing awareness of it. Simple questions like, 'How do we respond?', 'How much do we tell customers' and several more like it. Another question was, 'What do we call it?' For, as each person began to play with prototypes of this technology, each was convinced of its incredible potential. This group included myself and my first casual examination of the Mercury Playback engine convinced me of it's importance - more on that later.
Mercury as a name is interesting. You could think of Greek/Roman mythology. The God Hermes/Mercury was the winged messenger (makes me think of Gustav Holst's "The Planets.") Mercury was fast, which makes sense in this context. There's also the idea of Quicksilver, another name for the element Mercury, which again connotes speed and value (quick + silver). Better perhaps is the idea of fluidity in the sense of the fluid editing experience that the Mercury Playback Engine creates. Mercury the element has several unique properties, the foremost of which is it is the only metal that has a liquid state at room temperatures. The Mercury Playback Engine has the potential of being very unique among the NLE players like the uniqueness of the element.
All of these things offer some shading and nuance to my thoughts about Adobe's Mercury and cause me to have this level of enthusiasm.
So, here we are today - what is the Mercury Playback engine about? In a word, performance! It makes Premiere Pro do cartwheels and flips and barely breaks a sweat. It's like rocket fuel for your car. It's flat out incredible...
In my first test of Mercury, I dropped several P2 clips on a timeline, made them picture-in-picture and looked to see if there were any dropped frames during playback...nada. I added more clips, bringing it up to eight or nine on my HP XW9400 with 12 cores of AMD goodness... Think it's the CPU? No! It's only being used at about 20-30%. It's GPU! I keep going and there is no hesitation in Premiere Pro. Okay, lets add some color correction to each one and while we're at it, lets drop in some blurs (that will stop it right?) Still playin' like buttah!
I could go on but I think you get the idea. As the FX Guide video described, we had 4 or 5 RED 4K images playing in real-time with very little CPU overhead which enabled us to do so much more in other areas.
So as a thought, lets put the pieces together. Premiere Pro CS4 is 64-bit optimized and making huge inroads into the high-end and having people all over the world taking another look if they're not using it today. In October, we announced that the next version of Premiere Pro would be 64 bit native and 64 bit only. So, in the future, not only will you have the most current programming code on either platform (very important!), you will have among the best CPU utilization in the business, you will have 64 bit native goodness throughout and you have the insane performance of the GPU backing you up to make more things possible at once than ever before. What's not to like? Good question - lets take some now...


Question: "What makes all of this 'crazy' stuff possible?"
Answer: It is a combination of different things. Really, this is a great example of where the whole is greater than the sum of the parts. What are the parts then? It’s 64-bit native code, greater memory addressing, fantastic CPU optimization and finally NVIDIA CUDA technology. Every one of these is critical, absolutely critical to making the future of non-linear editing better and more powerful than ever before. Multi-core goodness and memory addressing are already hard at work in Premiere Pro CS4. The 64-bit native code has been announced and now we bring in NVIDIA CUDA technology to be the icing on the cake and a powerful new engine to squeeze out performance in Premiere Pro. Before I wax philosophic on GPU, let me officially tip my hat to the incredible engineers at Adobe and their work here for the Mercury Playback Engine. Their passion, intelligence and outright cunning is what’s making this possible. Bravo!
On NVIDIA: I've always been a fan of NVIDIA and their Quadro product line has a huge market share in the professional graphics card industry, so it makes a lot of sense for us to partner with them to provide the horsepower behind this new technology. In addition, NVIDIA has been deeply involved in helping make this happen because like us, they know the customer and try to deliver the technology to enable more powerful and flexible workflows.

Question: "Why should I care about this?"
Answer: It's a fair question. Ultimately, the harnessing of the GPU provides Adobe with another way to fulfill a key strategic goal when designing our products: namely, removing the need for a user have to wait for the software to catch up to their creative vision. Another way to think of it from Adobe's perspective is that we already have great multi-processor CPU utilization, where can we get more power for the customer? The answer is CUDA and hence the Mercury Playback engine.
One other aspect to this is the rate of innovation on GPU development. While CPU's from Intel and AMD continue to evolve and grow, the rate of innovation has slowed down dramatically. This hasn't been the case for GPU development. We continue to see dramatic leaps in performance every 12-18 months. The Quadro XXXX of today will be the GeForce of tomorrow and that means that your performance on a given system will be able to develop rapidly over time at a much lower cost than ever before.
Question: "I don't do 10 layers of video Dennis, how does this help me?"
Answer: Okay, but as we see more people doing digital film, working with RED 4K files (with bigger on the way), as well as complex, temporal based codecs such as AVCHD, the idea of harnessing the GPU in addition to the CPU promises benefits for nearly everyone. Plus, while you may not do 10 layers of video at any one time, most people are using basic color correction, levels, curves and many other things on a regular basis. I think Mercury will help you even if you're just using a couple of layers.
Question: "Are there any downsides to this technology?"
Answer: I guess it depends on your point of view but my 'net-net' answer is no, there is no downside. A more pragmatic and perhaps nuanced answer is 'depends'. If you're an ATI fan, you know that CUDA is NVIDIA products only and consequently, you'll either do without this feature or you'll switch to NVIDIA. Adobe has a valuable relationship with ATI/AMD and we're looking at things like OpenCL, which is a cross-platform GPU approach to what CUDA is.
Question: "Why didn't you use OpenCL then?"
Answer: OpenCL wasn't finished or ratified when this decision was made. Given a choice between doing it with CUDA or not doing it for a while because of OpenCL, we chose the former. Besides, as I mentioned, NVIDIA has a hugely dominant market share in the professional graphics market, so we think that most people will be comfortable with the options available to them.
Question: "Will you support OpenCL in the future?"
Answer: Clearly this is an answer for someone higher up to answer, but my hunch is that we'll certainly look at it in the future as it aligns with our goals of being open and non-propietary.
Question: "Anything else I should know?"
Answer: Yes. The list of approved GPU cards will be limited initially to ensure that we have a consistent experience for our customers. Obviously this begs the question of which cards are you going to support? I think the answer here could be a moving target but two cards that I've been told will be supported are the GeForce GTX 285, the Quadro FX 4800, 5800 and the Quadro CX. I'm currently doing my testing with the Quadro 4800. The GeForce GTX 285 card should be one to really look at as it's street price is only about $300.00 and provides a real value to users that are looking to get the maximum bang for the buck.
Update 1-14-10: We will have support for the Quadro FX 3800 as well.
Lest you think that you Mac folks will be left out, you'll notice that both the GeForce GTX 285 and the Quadro 4800 are both available for Mac...and so is the Mercury Playback Engine!
NVIDIA has announced that new cards will ship in early 2010 and I don't know how that will impact which cards we support, but our general goals will be to a) provide consistent GPU performance across the cards we support b) support as many cards at as many prices as possible. My hunch is that the initial list will be small, but we'll do our best to expand upon that in future. With new cards on the way, I wouldn’t run out to buy a card now unless I had to, but if you do, at least you have a good sense of what will be supported.
In addition, I don't think there will be any approved laptop GPU processors as most of them are designed to be for laptops and just don't provide the kind of horsepower to make a real difference. This bums me out as I typically demo and present on a laptop, but the engineers and product management are telling me that there just isn't enough juice to get a real sizeable performance difference out of them. Again, this probably changes over the course of time.
Seeing is believing and I hope that you’ll have the opportunity to see the Mercury Playback Engine in action some time in the future. I know if I’m the one presenting it to you, that I’ll be excited to show it!

Comments
I plan to build a 64bit computer some time in 2010, when CS5 is released and Win7 64bit is at SP1, so will watch for further announcements... and to see if this is included in CS5
Posted by: John | November 25, 2009 3:15 PM
Very nice handling of the ATI/OpenCL debate. I feel somewhat appeased.
Posted by: Jim Simon | November 25, 2009 5:21 PM
Will this be used to super charge rendering times as well, or just playback in the nle?
[DR - Jason, I've got an update for you. The Mercury Playback engine will accelerate rendering times as well as boost the playback abilities of the Premiere Pro .]
Posted by: Jason Mongue | November 27, 2009 4:32 PM
GPGPU is the way to go.
While I understand why Adobe went CUDA on it's products I'm a bit concerned about the nvidia cards they will be support.
Will the diference between the cards be only in the performance or will come features be cut from the mainstream cards?
[DR - Well, the 285GTX is a mainstream card that costs ~$300 street and it does a lot of stuff. There won't be any features cut from the cards - we won't throttle anything back, but we will work to keep the experience consistent and so we will limit the cards we support...At least initially.]
Posted by: Marabyte | November 27, 2009 8:06 PM
There's a lot of laptops with good Quadro cards around, like the mobile workstations from Dell, HP, Lenovo etc. I really don't get the "not on laptops" statement.
[DR - True. I've got a mobile Quadro 3700 in a HP laptop. Nevertheless, that seems to be the way it's going to shake out.]
Posted by: Dragos | November 29, 2009 3:37 AM
While I understand that OpenCL is not ready for primetime yet. My concern is that by starting to support CUDA only, it will be more diffcult for Adobe to switch to switch to OpenCL later. How portable is the CUDA code? What incentive will Adobe have 2 years from now to add OpenCL support? These questions really bother me because I know that in the corporate world it's all about money and ROI and I don't see Adobe going back to OpenCL unless it's going to be a trivial thing to port the existing CUDA code to OpenCL.
[DR - Without getting into too much detail, I believe that we are very serious about moving to OpenCL at some point. If OpenCL had been ready at the time, the choice would have been clear to be more 'open' - which is always are strategy.
My understanding is that OpenCL is a consortium of hardware and software vendors including nvidia. I understand that a lot of CUDA code has made it into OpenCL, so that bodes well.
I hope this answers your questions - thanks for your comments.]
Posted by: Max | November 30, 2009 8:52 AM
Will mainstream cards like the GeForce GT 240 be supported also?
http://www.nvidia.com/object/product_geforce_gt_240_us.html
It has 96 stream processors, CUDA Compute 1.2(GTX 285 is 1.3 because it supports double precision). It won't be as fast as the GTX 285, but for most people as long as it's faster than the CPU it will be an improvement.
[DR - The cards I mentioned are the only ones I know about. If you want to play it safe, I would not purchase anything other than the ones I've mentioned.]
Posted by: GT 240 | November 30, 2009 5:19 PM
What about Nvidia's next-gen GPUs, they'll be fully supported right?
http://www.nvidia.com/object/fermi_architecture.html
[DR - Adobe is very excited about Fermi and I'm positive that we'll continue to support newer cards. What I don't know now is how many. My hunch (read - I don't know) is that not all Fermi cards will be supported (at least initially) in order to provide a thoroughly tested and consistent experience. As soon as I have more information, I'll pass it on.]
Posted by: NVF | November 30, 2009 5:37 PM
Is there any way for people to get on the beta/testing for this? I'm using Premiere Pro on a dual core Mac Pro with a Nvidia GTX285 and would love to test this out, especially to see how it handles h264 footage straight from my 5DmkII.
[DR - Hi Jim. Thanks for your interest. if you're interested in beta testing, you can go to the link here and apply. http://www.adobe.com/products/tryadobe/betatesting.html If you get accepted, here's a hint: Actually beta test. Too many people want to see new features (it's natural), but don't want to make the product better by logging bugs. Good luck to all who might apply!]
Posted by: Jim | December 1, 2009 6:18 AM
OK, so my math is rusty, but what's wrong with this picture?
You say "two cards that I've been told will be supported are the GeForce GTX 285, the Quadro FX 4800, 5800 and the Quadro CX" and then list four cards. Is there something missing from the equation of 2=4?
1) 285
2) 4800
3) 5800
4) CX
I'll assume from your post the 4800 (so mac people can play) and 285 are in (why the 295 isn't I can't understand) but will the 5800 and CX going to be included too? Not that I care about $4,000 video cards, but....
[DR - all right, so you got me. ;-) There are four cards.]
Posted by: round | December 5, 2009 3:32 PM
What a great news!
i`ve been thinking about when Adobe will notice GPU power... and BAM! here it comes. Love you, just love you!
OpenCL support will be HUGE thing to show that Adobe loves all its users too ;)
Also, i hope that difference between GeForce and Quadro won`t be so big, coz I heard rumors that they are practically identical (size of RAM is only difference) but some functions are locked.
(sorry for my English)
[DR - Patch, I'm with you, very excited about what this could mean for editing.]
Posted by: PatchedDNA | December 6, 2009 6:20 PM
Will a machine with a GeForce GTX 285 using PCI Express v 1.0 (and not the newer v 2.0) run fine with the Mercury Playback Engine ?
[DR - the answer I got back from engineering is that they will have to run some tests. It ultimately all comes down to bandwidth. If the 1.0 bus can support the throughput, I don't think you'll have any issues. If they report back to me their findings, I'll try to post them.]
Posted by: joahua | December 7, 2009 2:12 PM
Huh? CS4 users can use the Nvidia 3800 card with Elemental Accelerator. So it sounds like they'll continue to port their application to new versions if Adobe will be limiting access to a scant few GPUs.
[DR - this is true. What the Mercury Engine does is accelerate encoding AND playback in a giant way. So while Adobe has been focused on GPu for a few versions now, this is a real break through.]
Posted by: MoonLitNite | December 7, 2009 7:46 PM
If the GTX285 is supported will the GTX295 be? I'm about to pull the trigger and assume it supports the same technology and both will provide the goods (doubling of the "cuda cores" from the 285 to 295).
Thank you.
[DR - other than the ones I've mentioned, we are not commenting on any additional cards that may or may not be supported. I honestly don't know, but as I've intimated elsewhere, if you're sure you want it to work, then purchase one of the cards I've mentioned.]
Posted by: Digi | December 8, 2009 5:20 PM
Argh. Please tell me you will support the GTX 260 based bords (216 cores). I just bought one a week ago for an article I'm writing.
Posted by: Robert Oschler | December 11, 2009 8:49 PM
What about After Effects? Anything to speed it up by using the GPU? I prefer to use AE (CS4) as I can do a lot more a lot easier but its rather slow on something like the HP Z800.
Also, any idea when CS5 and MPE will be released?
Thanks
[DR - Joseph, thanks for the comment. No, there will be no GPU acceleration for After Effects in the immediate future, though this is clearly something that we're always thinking about.
As for when CS5 is, I have to be coy and defer an answer... sigh. ;-)]
Posted by: Joseph K | December 19, 2009 3:57 AM
will it support a Quadro FX 3800
[DR - Not likely.]
Posted by: Darren | December 30, 2009 6:17 AM
This is awesome, certainly.
But do we really need Cuda engine to do such things ?
I own a Quadro Fx 2500M and a 3500 one. I guess they are powerful enough to do realtime avchd decoding and playback on 3 or 4 video layers with effects like blur or 3 way color corrector applied to them.
Why do we all have to wait for CS5, buy a Cuda compatible Nvidia card or any other stuff ?
VLC is a free software and Quicktime player too. Just take a look at how easy they can playback those huge Avchd h264 files from Canon 5D : even with more than one instance of the player is opened, playback remains absolutely smooth. And there is no talk about Cuda nowhere here.
DirectX hardware acceleration is something wich could be used to improve everything in CS4 drastically. Premiere strongly use CPU and don't mind I have a Quadro FX 2500M on my laptop or a $10 one.
Having the Premiere Pro CS4 SDK on one hand, the Nvidia driver API and DirectX documentation on the other, do you guys think we could develop something like a plugin to redirect all intensive CPU work to the GPU ?
Regards
Eric
[DR - We have chosen CUDA because it's a suitable technology that is cross platform and will provide a long term path for GPU enablement. Before CUDA, there was no standard library of instructions to do such things without going proprietary. The things you mention above do not fit all of these requirements. I'll also reiterate that CUDA is not necessarily the 'secret sauce' as we have seen an extraordinary performance boost by moving to 64-bit native.]
Posted by: Eric ramahatra | January 3, 2010 10:56 AM
Wiil CS5 have xml out?, Will color correction and other soft efx be 32 bit float point since PPro is now 64 bit or will we still rely on external color correctors
[DR - I'm sorry but we can't and won't talk about future versions. Thanks for your comment though.]
Posted by: Dan Dam | January 8, 2010 6:35 AM
I understand that Adobe can't test every single variant of the Geforce/Quadro lines of video cards to verify that they work well with Mercury. I think attempting to do that would probably fit some definitions of insanity.
For those cards that haven't made it onto the small list of tested and supported cards, will there be a hardware check within the software that will forcibly disable Mercury for an unsupported card, or will we be able to try it out and see if it works? I'm currently running a combo of a GTX 260 and a 9400 GT (for 4-monitor, bad-eyesight goodness), and would, ideally, like to keep my current hardware and see if it works with Mercury when CS5 is released, understanding that there might be a bug or two with my unsupported card.
Otherwise, I'll be keeping a watchful eye on sales to see if I can pick up a GTX 285 at a nice price point. The geek in me prefers this option, but has been battling with my frugal self for decades, so it understands that it doesn't always get to win.
No matter what, I'm seriously looking forward to being able to work with multiple layers of AVCHD without any stuttering. I've been making all of my Avid friends jealous as I send out links to demos of Mercury. :)
Posted by: Kevin Kratzke | January 8, 2010 4:36 PM
I'm a student and just purchased A Mac with an ATI Radeon Card HD 4850. What does this mean for me. Am I unable to use the Adobe Mercury Playback Engine and the software associated with it or just blocked from some of it's features. I'm new so please explain. Thank You.
[DR - The Mercury Playback Engine is a combination of technologies including 64-bit native code and some CUDA technology as well. If you have an ATI card, you will not be able to use the CUDA rendering engine as shown in the video, but you will still benefit from the 64-bit native code as that by itself has proven to give a large performance gain in our tests thus far.
So, you would benefit from The MPE, just not through the ATI GPU card at present. Once this is out, you can purchase an nvidia card to replace the ATI to get the additional benefits. I hope this helps.]
Posted by: Fred Flego | January 20, 2010 9:14 AM
I've read through nearly every comment, but am still confused. (I'm not terribly knowledgeable in the tech issues of GPU internals, timing, busses, etc; apologies if these are dumb questions).
1) at one point, the Quadro FX 3800 is said to be a candidate to gain the benefits of the Merc engine. At another point, it seems "not likely" Where does that stand? Will only the 4800 and higher cards you mention see the full benefits?
2) Looking at photos of the 4800, it shows these output connections:
1 S-video, 1 DVI-I Dual link, and 2 DisplayPorts. Does this mean that such a high-priced card only handles dual monitors through Display Port? (As I understand it, few such monitors are on the market, and many manufacturers are resisting their manufacture. Why is such a high-end card so closely tied to an unpopular display method?
While the Merc/CUDA marriage may show impressive results, the restrictions and hardware req's seem out of reach of many.
I had hopes of getting a new computer this year and upgrading from CS2 to CS5. Now I'm concerned that's not likely to happen due to the higher hardware req's.
[DR - Thanks for your comments and for your time reading the blog. The FX 3800 has in fact recently been tested and qualified.
Yes, dual monitor happens through a display port. However, I have some Quadro FX 4800 cards and they come with a DIsplayPort>DVI adapter so nobody will have any trouble doing dual monitor with a card like that.
Please let me know if you have any additional questions.]
Posted by: x002657 | January 22, 2010 2:59 AM
Would there be any playback or rendering benefits to using a 2 gig version of the gtx 285 over the 1 gig ?
[DR - we've had this discussion and in general, I think the answer is 'kind of'. More memory does offer some potential benefits, but I don't think we've seen an quantifiable tests yet. If you're in the market and you have the extra cash, I think that getting a 2GB version cannot hurt you.]
Posted by: Joe | January 29, 2010 5:46 PM
Does this mean that I will no longer need my Matrox RT.X2 accelerator card for real time rendering of common effects after upgrading to Premiere CS5?
Also, will CS5 also enable realtime encoding of H.264 files? I was wondering if I’d still need my CompressHD card.
What about 3rd party plugins? Will the Red Giant plugins that I currently use with CS4 work with CS5?
Thanks!
[DR - Mike, that really depends on what your needs are. There are still reasons to have video i/o cards. For example, getting an NTSC or PAL output would be one. The performance of effects will be lessened with the Mercury playback engine but even still, 3rd party companies like Matrox will offer certain effects that we do not recreate.
I will point out that there has been no mention of the Mercury Playback engine will be a part of the next version of Premiere Pro.
As for H.264 encoding, there is acceleration with the Mercury Playback engine as well as accelerated playback.
3rd party plugins will most likely have to be updated in some fashion in order to be compatible for the next version of Premiere Pro or After Effects. Some companies provide the compatibility free of charge, whereas others sometimes charge for the upgrade. You should check with those companies to find out what their plans will be when the time is right.
Thanks for your comments.]
Posted by: Mike | January 29, 2010 11:47 PM