RGB conversion


The advanced color space options page gives you control over the YCbCr ↔ RGB conversion. The top half allows the selection between the ITU-R BT.601 and ITU-R BT.709 standards, while the lower half is used for black and white level, which controls the contrast. These settings are used only when ffdshow is doing YCbCr ↔ RGB conversion. In other words, if you are playing MPEG video and the output color space is YV12 or YUY2, these settings will be ignored.

YCbCr specification

ITU-R BT.601 and BT.709 are both ITU-R standards for component digital video. They define how to convert YCbCr ↔ RGB.


Uses the information from the stream (H.264 only). Otherwise ffdshow switches between BT.601 and BT.709 when the following resolution conditions are met:

width > 1024 or height >= 600: BT.709
width <=1024 and height < 600: BT.601

ITU-R BT.601

DVD, NTSC, PAL and SD-TV/videos use this.

ITU-R BT.709

Blu-ray and HD-TV use this.


Interlace or progressive

Progressive and interlaced YV12 are two completely different color spaces. If the decoder flags a video incorrectly for some reason, it will decrease the picture quality considerably. This kind of error has to be fixed manually.
This setting also applies to YV12 ↔ YUY2 conversion.

High quality YV12 to RGB conversion

This checkbox will instruct ffdshow to use a high quality conversion method. The conversion is done in 11-bit or higher and its performance can be improved significantly with multi-core CPUs. This feature requires a SSE2-capable CPU at the minimum.


Dithering is an option to maintain the source's full visual quality when doing YCbCr → RGB conversion. Without dithering, RGB conversion can result in added banding. With “High quality YV12 to RGB conversion” enabled, ffdshow calculates in 11-bit or higher. If this option is checked, the result is dithered otherwise rounded to 8-bit. This increases RGB conversion's CPU usage by about 6%. Image comparison and more details are available in this thread at Doom9.org.

Input levels

Almost all videos are encoded using a Y-range of 16-235. YCbCr(16,128,128) is normally mapped to RGB(0,0,0). Some video clips have Y below 16 which represent “blacker” than black. If you want to take advantage of this gradation at the expense of contrast, use full range or custom mode.


Same as standard except H.264 which has a flag that indicates the range. Some people say the flag is sometimes wrong.


Nearly all videos use this. For JPEG, MJPEG and Fraps, ffdshow automatically uses full range.

Full range

JPEG, MJPEG and Fraps sources usually use this.


If your videos have a Y-range below 16, you may want to take advantage of the gradation. However it will reduce the contrast. This option gives you control over balance between gradation and contrast.

Output levels

Computer monitor (RGB 0-255)

Computer monitors expect this.

TV / Projector (RGB 16-235)

Most (but not all) TV and Projectors expect this. Consult the manual of your device.

Additional information


MJPEG and JPEG (used in grab filter) use so called PC.601 standard in most cases. In this case, PC.601 is used and the setting in the dialog is ignored.

video/rgb_conversion.txt · Last modified: 2011/03/14 12:00 by fastplayer
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki