February, 2011 Archives
Eran Stern’s new video training collection, The Best of Premiere Pro, is a very good video training series for someone who has already learned the basics of Adobe Premiere Pro and wants to learn some practical tips, shortcuts, workflows, and advanced techniques.
This series is a welcome deviation from many of the tutorials and training packages that I’ve seen. Rather than attempt to cover the same ground covered by several other video training series that cover (or attempt to cover) every feature and UI control, Eran has chosen to focus on a few things that have been left relatively untouched by other offerings. Even in the case where he does cover subjects covered in other video training series, he does so in greater depth or with more attention to workflow gotchas—as in the nearly two hours that he spends on one end-to-end project using Dynamic Link in various ways.
Eran put real testing into the research for this video series, and this testing pays off with information that you can’t find anywhere else. For example, he shares a list of Cycore (CC) effects installed with After Effects that can also be used in Premiere Pro. Similarly, he shares his experience with a large number of other third-party effects and makes recommendations for their use.
Eran has made a few of the videos from this series freely available to whet your appetite, and you can find these free videos toward the bottom of the main The Best of Premiere Pro product page.
I think that the best of the free sample videos is the one about the use of transparent video clips. A higher-quality version of that video is also on Eran’s main tutorials page. Here’s a direct link to the transparent video tutorial.
This training video makes heavy use of stock footage from Art Beats, and you even get some Art Beats footage when you purchase the video training.
(Note: As you can see on Eran’s blog, there is a problem as of today with the Art Beats server; but I’m sure that they’ll get that cleared up soon.)
I only found one aspect of the entire video training series problematic, and that was the audio toward the beginning. I think that Eran must have changed his microphone setup after recording the first video, because I noticed rather distracting plosives in that video but not in the later ones.
[UPDATE: For details of what was new regarding CUDA and OpenCL processing in Adobe Premiere Pro CS6, see this page. If you’re using Premiere Pro CS6 and later, note that nearly everything said below about CUDA also applies to OpenCL.]
[UPDATE: For details of what was new regarding CUDA processing in Adobe Premiere Pro CS5.5, see this page.]
A few weeks ago, I wrote a forum post to try to clarify some things about CUDA, the Mercury Playback Engine, and what it all means for Adobe Premiere Pro. I wrote this as a forum post because I wanted to invite questions and conversation. But, as forum threads do, it got a little messy, so I thought that I should consolidate the information here.
If you want to ask a question about this subject, please do so on the forum thread, not on this blog post. It’s very difficult to have a conversation in the comments of a blog post.
What is the Mercury Playback Engine, and what are CUDA and OpenCL?
Mercury Playback Engine is a name for a large number of performance improvements in Adobe Premiere Pro CS5 and later. Those improvements include the following:
- 64-bit application
- multithreaded application
- processing of some things using CUDA (and OpenCL in Premiere Pro CS6)
Everyone who has Premiere Pro CS5 or later has the first two of these. Only the third one depends on having a specific graphics card.
CUDA is a technology (architecture, programming language, etc.) for a certain kind of GPU processing. CUDA is an Nvidia technology, so only Nvidia cards provide it. OpenCL is a technology that is similar in purpose to CUDA. OpenCL features are provided by many graphics cards, including ATI/AMD cards.
Confusingly—because of one of our own early videos that was unclear—a lot of people think that Mercury just refers to CUDA/OpenCL 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/OpenCL).
What is required for Premiere Pro to use CUDA/OpenCL processing?
The official and up-to-date list of the cards that provide the CUDA/OpenCL processing features is here:
Adobe Premiere Pro system requirements
Some of the cards on that list are only enabled if you have the recent updates. Go here to read about the most recent updates for your version.
If you don’t have one of these cards, you can still use Premiere Pro; you just won’t get the advantages of processing with CUDA/OpenCL.
On Mac OS, OpenCL processing features of Premiere Pro CS6 require Mac OSX v10.7 or later.
Dennis Radeke gives the results of side-by-side tests with various Quadro cards in an article on his blog.
What does Premiere Pro accelerate with CUDA/OpenCL?
Here’s a list of things that Premiere Pro CS5 and later can process with CUDA:
- some effects (complete list at the bottom of this post)
- scaling (details here)
- blending modes
- color space conversions
Premiere Pro CS5.5 and later can process even more things, listed on this page.
Premiere Pro CS6 can use OpenCL to process the same features, with the exception of four effects: Basic 3D, Gaussian Blur, Fast Blur, and Directional Blur.
It’s worth mentioning one set of things that Premiere Pro doesn’t process using CUDA/OpenCL: encoding and decoding.
A common misconception is that CUDA/OpenCL processing is only used for rendering for previews. That is not true. CUDA/OpenCL processing can be used for rendering for final output, too. See this page for details about what rendering is.
Whether a segment of a sequence gets a red or yellow render bar is influenced by whether the project is set to use CUDA/OpenCL processing (i.e, whether the project’s Renderer setting is Mercury Playback Engine GPU Acceleration or Mercury Playback Engine Software Only). See this page for details.
Note that whether a frame can be processed by CUDA/OpenCL 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/OpenCL 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.
For export, scaling with CUDA/OpenCL is always at maximum quality, regardless of quality settings. (This only applies to scaling done on the GPU.) Maximum Render Quality can still make a difference with GPU-accelerated exports for any parts of the render that are processed on the CPU. Over time, we are working on reducing the list of exceptions to what can be processed on the GPU. For an example of a limitation that can cause some rendering to fall back to the CPU, see this article: “Maximum dimensions in Premiere Pro CS5”.
When rendering is done on the CPU with Maximum Render Quality enabled, processing is done in a linear color space (i.e., gamma = 1.0) at 32 bits per channel (bpc), which results in more realistic results, finer gradations in color, and better results for midtones. GPU-accelerated processing is always performed in a 32-bpc linear color space. To have results match between CPU rendering and GPU rendering, enable Maximum Render Quality.
Note: There are two places to enable or disable Maxium Render Quality—in the sequence settings and in the export settings. The sequence setting only applies to preview renders; the export setting (which defaults to the sequence setting) overrides the sequence setting.
Why are only some video cards supported?
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 able 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 can use for CUDA/OpenCL processing, then let us know with a feature request.
What about OpenCL?
As we were beginning the work for Premiere Pro CS5, OpenCL wasn’t far enough along for us to use it for the Mercury Playback Engine.
Premiere Pro CS6 added the ability to process many features with OpenCL. See this page for details.
What about OpenGL?
OpenGL is a different technology that is implemented through GPUs. It is not exclusive of CUDA/OpenCL; it’s a different thing altogether, and a card that uses CUDA/OpenCL 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.
What about Mercury in After Effects?
The term Mercury Playback Engine refers to Premiere Pro. It has nothing to do with After Effects. After Effects CS5 and later is a 64-bit application, and it has been multithreaded for a long time, so those improvements are there. Only the ray-traced 3D renderer in After Effects CS6 uses CUDA (as do a few third-party plug-ins).
How can I make Premiere Pro faster?
This page is a good place to start.
What effects are GPU-accelerated in Premiere Pro?
To show in the Effects panel only effects that can be accelerated by CUDA/OpenCL, click the Accelerated Effects icon at the top of the Effects panel.
Here’s a list of the effects and transitions that can be accelerated by CUDA in Adobe Premiere Pro CS5 (5.0.3):
- Alpha Adjust
- Basic 3D
- Black & White
- Brightness & Contrast
- Color Balance (RGB)
- Color Pass
- Color Replace
- Drop Shadow
- Fast Color Corrector
- Feather Edges
- Gamma Correction
- Garbage Matte (4, 8, 16)
- Gaussian Blur
- Horizontal Flip
- Luma Corrector
- Luma Curve
- Proc Amp
- RGB Curves
- RGB Color Corrector
- Three-way Color Corrector
- Track Matte
- Ultra Keyer
- Video Limiter
- Vertical Flip
- Cross Dissolve
- Dip to Black
- Dip to White
For a list of additional GPU-accelerated effects in Premiere Pro CS5.5, see this page.
[Thanks to Steve Hoeg, who helped with some of the details of this post.]
(For a video that briefly covers much of the material in this article, go here.)
If you’ve worked with Adobe Premiere Pro even a little bit, you’ve noticed that colored bars—red, yellow, and green—appear at the bottom of the time ruler at the top of the Timeline panel, above clips in a sequence. These colored bars are often referred to as render bars. But what do they mean, and what does this mean to your work?
a digression into rendering…
First, we need to understand what it means to render a preview.
In the context of computer graphics, rendering is the creation of an image from a set of inputs. For Premiere Pro, this essentially refers to the creation of the frames in a sequence from the decoded source media for the clips, any transformations or interpretations done to fit the source media into a sequence, and the effects applied to the clips.
For clips based on simple source media that match the sequence settings and have only simple effects applied, Premiere Pro can render the frames that make up the sequence in real time. In this case, each frame is rendered for display just before the CTI (current time indicator) reaches it. Premiere Pro caches these results so that it doesn’t unnecessarily redo work when you revisit a frame.
For more complex sets of effects and more difficult source media, Premiere Pro can’t always render the frames of the sequence as fast as needed to play them back in real time. To play these frames in real time, they need to be processed and saved ahead of time, so that they can be read back and played instead of being recalculated on the fly. The creation of these frames to be saved for rapid playback is what is meant by rendering a preview.
By the way, it’s common but confusing and misleading jargon to refer to rendering of previews as rendering all by itself. Rendering for display, rendering for final output, rendering for previews—these are all valid uses of the word rendering. Don’t fall into the trap of using this general term to refer only to the specific case of rendering for the purpose of creating preview files for real-time playback.
Note: Rendering of previews is only for preview purposes. Preview files will not be used for final output unless you have Use Previews option checked on output—which you should not use except in the case of rough previews. Using preview files for final output will in almost all cases cause a decrease in quality. It can speed things up in some cases, so it may be useful for creating a rough preview in less time.
OK, so now about those colored render bars…
With that preparatory definition out of the way, what do the colored bars mean?
- green: This segment of the sequence has a rendered preview file associated with it. Playback will play using the rendered preview file. Playback at full quality is certain to be in real time.
- yellow: This segment of the sequence does not have a rendered preview file associated with it. Playback will play by rendering each frame just before the CTI reaches it. Playback at full quality will probably be in real time (but it might not be).
- red: This segment of the sequence does not have a rendered preview file associated with it. Playback will play by rendering each frame just before the CTI reaches it. Playback at full quality will probably not be in real time (but it might be).
- none: This segment of the sequence does not have a rendered preview file associated with it, but the codec of the source media is simple enough that it can essentially be treated as its own preview file. Playback will play directly from the original source media file. Playback at full quality is certain to be in real time. This only occurs for a few codecs (including DV and DVCPRO).
Note the uses of the word probably above. The colors aren’t a promise. They’re a guess based on some rather simple criteria. If you have a fast computer, then a lot of things marked with red may play back in real time; if you have a slow computer, then some things marked with yellow may need to be rendered to preview files before the segment can be played in real time.
what causes a segment to get render bars of a certain color
What kinds of things contribute to a segment getting a certain color of render bar? The general answer is that changes that tend to make processing of a segment much slower will switch it from none to yellow or from yellow to red.
I’ve broken the examples below into separate lists for Mercury Playback Engine GPU Acceleration and Mercury Playback Engine Software Only, which are the two possible settings for Renderer in the Video Rendering And Playback section of the project settings. (For details of CUDA acceleration and the Mercury Playback Engine, see this page for CS5 and this page for CS5.5.) Because Premiere Pro CS5 can use CUDA to accelerate scaling, deinterlacing, blending, and many effects, many things that cause a red render bar in software-only (CPU) mode only cause a yellow render bar in GPU acceleration mode. Even more things are accelerated by CUDA in Premiere Pro CS5.5.
Mercury Playback Engine GPU Acceleration:
- yellow: The source media’s codec is computationally difficult (such as AVCHD). As mentioned above, only very few simple codecs don’t get a yellow bar; these include DV and DVCPRO.
- yellow: The settings of the clip (e.g., pixel aspect ratio, frame rate, field settings) don’t match the settings for the sequence.
- yellow: A CUDA-accelerated video effect or transition has been applied to the clip. (A CUDA-accelerated video transition only causes a yellow bar over the duration of the transition.)
- red: A non-CUDA-accelerated video effect or transition has been applied to the clip. (A non-CUDA-accelerated video transition only causes a red bar over the duration of the transition.)
Mercury Playback Engine Software Only:
- yellow: The source media’s codec is computationally difficult (such as AVCHD). As mentioned above, only very few simple codecs don’t get a yellow bar; these include DV and DVCPRO.
- red: The settings of the clip (e.g., pixel aspect ratio, frame rate, field settings) don’t match the settings for the sequence.
- red: Any video effect or transition has been applied to the clip. (A video transition only causes a red bar over the duration of the transition.)
I hope that from this you will see that a yellow render bar doesn’t mean that something is wrong. It’s entirely normal for most modern codecs. And even a red render bar is to be expected with certain effects or when you are using media of various formats in a sequence. If you see a colored bar, don’t panic.
how the render bars relate to playback commands
One of the primary uses for the color bars is to give you the ability to render preview files more selectively.
- When you press the spacebar, Premiere Pro plays the sequence without rendering any additional preview files first.
- When you press the Enter key (or choose Sequence > Render Effects In Work Area), Premiere Pro renders preview files for all segments with red render bars before playing the sequence.
- Unfortunately, there isn’t a default keyboard shortcut for the Render Entire Work Area command. The Render Entire Work Area command renders preview files for all segments with red or yellow bars before playing the sequence. I have customized my keyboard shortcuts to map this command to Shift+Enter.
a simple example
Above is a sequence in a project set to Mercury Playback Engine Software Only. The footage is 4K RED Cinema footage that matches the sequence settings. The first clip has a non-CUDA-accelerated effect applied. The second has a CUDA-accelerated effect applied. The third clip has no effect applied. The difficult nature of the footage causes it to be marked yellow for “probably will play in real time”. Any effect on these clips in software-only mode causes them to be marked with red render bars.
Switching the project setting to Mercury Playback Engine GPU Acceleration causes the CUDA-accelerated effect to get a yellow render bar instead of the red render bar that it got in software-only mode. The non-CUDA-accelerated effect is still marked as red, though.
I pressed Enter to just create a rendered preview file for the segment with the red render bar…
… and then pressed Shift+Enter to use my custom keyboard shortcut for Render Entire Work Area.
Video2Brain has recently released a new training workshop aimed at folks just beginning with Premiere Pro, Getting Started with Adobe Premiere Pro CS5.
Maxim Jago did a great job (with Jan Ozer) creating the comprehensive Adobe Premiere Pro CS5: Learn By Video training DVD and book, as well as Premiere Pro CS5 for Avid Editors. It’s good to see him back with this series on the basics.
Here are a few free sample video tutorials from this workshop:
Video2Brain has been quite busy lately, putting out several DVDs and online training series about Adobe professional video applications. Other notable recent releases include After Effects CS5: Learn By Video and the free After Effects CS5: Frequently Asked Questions.
For additional, free getting-started resource for Premiere Pro, see “Getting started with Adobe Premiere Pro (CS4, CS5, and CS5.5)” and “Getting started and Help pages in several languages”.