Levels – Avid vs. FCP

One of the frequent misconceptions between Avid and Final Cut editors involves video levels. Many argue that FCP does not work within the proper video level standards, which is incorrect. This belief stems from the fact that FCP is based on QuickTime and permits a mixture of consumer and professional codecs. QuickTime Player often changes a file’s appearance as compared with FCP, when it is used to play the file directly. QuickTime Player is trying to optimize the file to look its best on your computer monitor; however, it isn’t actually changing the file itself. Furthermore, two identical clips will appear to be different within each NLE’s interface. Avid clips look flatter and more washed out inside Media Composer. FCP clips will be optimized for the computer display and appear to have more contrast and a different gamma value. This is explained well by Janusz Baranek in this Avid Community thread.

Contrary to popular opinion, both NLEs work within the digital video standards for levels and color space – aka Rec. 601 (SD) and Rec. 709 (HD). Digital video levels are generally expressed using an 8-bit/256-step scale. The nominal black point is mapped to 16 and the white point to 235, which permits level excursions without clipping: 0-16 for shadow detail and 235-255 for highlight recovery. This standard was derived from both camera design and legacy analog NTSC transmission. On most waveform monitors digital 0, analog 7.5 IRE and 16 on this scale are all the same level. Digital 100 (700 millivolts on some scopes), analog 100 IRE and 235 on the scale are also equal. Higher and lower levels will be displayed on a waveform as video above 100/100IRE/235 and below 0/7.5IRE/16.

I want to be clear that this post is not a right/wrong, good/bad approach. It’s simply an exploration in how each editing application treats video levels. This is in an effort to help you see where adjustments can be made if you are encountering problems.

Avid Media Composer/NewsCutter/Symphony

Video captured through Avid’s i/o hardware is mapped to this 16-235 range. Video imported from the computer, like stills and animation can have either a full range of 0-255 (so called “full swing”) or a digital video range of 16-235 (so called “studio swing”) values. Prior to AMA (Avid Media Access), Avid editors would determine these import values in the Media Composer settings, by selecting to import files with RGB values or 601/709 values. You can “cheat” the system by importing digital camera files with an expanded range (spreading the levels to “full swing” of 0-255). Doing so may appear to offer greater color grading latitude, but it introduces two issues. First, all clips have to be color corrected to adjust the levels for proper output values (legal for broadcast). Second, some filters, like the BCC effects, clip rendered files at 16 and 235, thus defeating the original purpose.

It has now become a lot more complex in the file-based world. The files you import are no longer just stills and animation, but also camera and master files from a variety of sources, including other NLEs, like FCP – or HDLSRs, like the Canon 5D. Thanks to AMA in Media Composer 5, this is now automatically taken care of. AMA will properly import files at the right levels based on the format. A digital graphic, like a 0-255 color bar test pattern, is imported at the full range without rescaling the color values from 0-255 to 16-235. A digital video movie from a Canon 5D will be imported with values fitting into the 16-235 range.

Because of the nature of how Avid handles media on the timeline, it is possible to have a full range (0-255) clip on the same timeline next to a studio range clip (16-235) and levels will be correctly scaled and preserved for each. Avid uses absolute values on its internal waveform (accessed in the color correction mode), so you are always able to see where level excursions occur above 235 (digital 100) and below 16 (digital 0).

I would offer one caveat about AMA importing.  Apparently some users have posted threads at the Avid Community Forums indicating some inconsistencies in behavior. In my case, everything is working as expected on multiple systems and from various Canon HDSLR cameras, but others haven’t been so lucky. As they say, “Your mileage may vary.”

Apple Final Cut Pro

If you capture video into FCP using one of the hardware options and a professional codec (uncompressed, ProRes, IMX, DV/DV50/DV100), then the media files will have levels mapped to 601/709 values (16-235). From here, the waters get muddy, because the way in which those levels are handled in the timeline is based on your processing settings. This affects all imported files, as well, including graphics, animation and media files from cameras and other NLEs.

Confusion is compounded by FCP’s internal waveform monitor, which always represents video with a relative 0-100 percent scale. These display numbers do not represent actual video levels in any absolute sense. When you process in YUV, then the full display area of the waveform from top to bottom equals a range of 0-255. The “legal” digital video standard of 16-235 is represented by the area within the 0-100% markings of the scope. However, when you process in RGB, then the portion within the 0-100% marks represents the full 0-255 range. Yes – in an effort to make it simple, Apple has made it very confusing!

When you set the sequence processing to YUV, with “white” as “white”, then all timeline video is mapped to a “studio swing” range of 16-235. On the scope 0% = 16 and 100% = 235. If you import a “full swing” color bar pattern (0-255), the values will be rescaled by the sequence processing setting to fall into the 16-235 range.

When you set the sequence processing to YUV, with “white” as “superwhite”, you’ve extended the upper end of the range, so that the 16-235 scale now becomes 16-255. The 0-255 color bar pattern is now effectively rescaled to 16-255; however, so is any video as well. Digital video that used to peak at 100% will now peak at 120%.

The YUV processing issues are also affected by the 8-bit, versus “high-precision” rendering options. When you elect to process all video as 8-bit, excursions above 100% and below 0% caused by color correction will be clipped. If you change to “high-precision YUV”, then these excursions are preserved, because they fall within the 0-16 and 235-255 regions. Unfortunately, certain effects and transition filters will still clip at 0% and 100% after rendering.

One way to fully protect “full swing” 0-255 levels is to work in RGB processing. A 0-255 color bar pattern will be correctly displayed, but unfortunately all video is spread to the full range, as well. This would mean that all clips would have to be color corrected to adjust for proper video levels. The only way that I’ve found for FCP to display both a 0-255 and a 16-235 clip on the same timeline and maintain correct levels is to apply a color correction filter to adjust the levels on one of these clips.

For general purposes, the best way to work with FCP is to use the ProRes family of codecs and set your sequence settings for YUV processing, white=white and high-precision rendering. This offers the most practical way of working. The only caveat to this is that any “full swing” file will be rescaled so that levels fall into the 0%-100% (16-235) “studio swing” range. If you need to preserve the full range, then FCP’s color correction filters will allow you to expand the range. The levels may appear to clip as you make the adjustment, but the rendered result will be full range.

Real world examples

I’ve done some quick examples to show how these level issues manifest themselves in actual practice. It’s important to understand that for the most part, the same clip would appear the same in either Media Composer of Final Cut as viewed on a broadcast monitor through output hardware. It will also look the same (more or less) when displayed to a computer screen using each app’s full screen preview function.

The following screen grabs from my tests include a 0-255 color bar chart (TIFF original) and a frame from an H.264 Canon 5D clip. The movie frame represents a good spread from shadow to highlights. I imported the files into both Avid Media Composer 5 (via AMA) and Apple Final Cut Pro 7. The FCP clips were rendered and exported and then brought into MC5 for comparison. The reason to do this last step was so that I could check these on a reasonably trustworthy internal scope, which displayed an 8-bit range in absolute values. It is not meant to be a direct comparison of how the video looks in the UI.

Click any image to enlarge.

Imported into Final Cut. ProResHQ with YUV processing. White as white. Note that the peak white of both images is 100%.

Imported into Final Cut. ProResHQ with YUV processing. White as SuperWhite. Note that peak white of both images exceeds 100%.

Imported into Final Cut. ProRes4444 with RGB processing. Note the boundary limits at 0% and 100%.

Imported into Media Composer 5 using AMA. Note that the color bars are a 0-255 range, while the Canon clip is 16-235.

FCP7 YUV export, imported into MC5 via AMA. Note that the color bar pattern has been rescaled to 16-235 and is no longer full range.

FCP7 YUV export with SuperWhite values, imported into MC5 via AMA. Note that the color bar pattern has been rescaled to 16-255 and is no longer full range. It has a higher top-end, but black values are incorrect. This also alters the scaling values of the levels for the Canon clip. Color correction filters would have to be applied in FCP for a “sort of correct” level match between the bars and the Canon clip.

FCP7 RGB export, imported into MC5 via AMA. Note that the color bar pattern exhibits the full 0-255 range. The Canon clip has also been rescaled to 0-255. Color correction filters would have to be applied in FCP to the Canon clip to bring it back into the correct relative range.

I have revisited the YUV settings in FCP7. This is a ProResHQ sequence rendered with high-precision processing. I have applied a color corrector to the color bars, expanded the range and rendered. Note the regions above 100% and below 0%.

FCP7 YUV export (color correction filter applied to the color bars), imported into MC5 via AMA. Note that the color bar pattern spreads from 0-255, while the Canon clip is still within the standard 16-235 range.

©2010 Oliver Peters