YCbCr
Many modern video codecs rely on a YCbCr colorspace. The correct written expression for this colorspace is YCbCr, with the 'b' and 'r' characters as subscripts. This is what the components represent:
- Y = luma, an approximate version of luminance / intensity (See Wikipedia for how it differs from true luminance)
- Cb = "blue chrominance", or more precisely the color deviation from gray on a blue-yellow axis
- Cr = "red chrominance", or more precisely the color deviation from gray on a red-cyan axis
Green can be calculated based on these three values.
YUV: YCbCr is often falsely mixed up with YUV. Properly speaking, YUV is the analogue PAL color encoding, where the color components U and V differ from Cb and Cr, found in PAL TV transmission and analogue video tapes. Nevertheless, it's very common for software to call YCbCr "YUV".
Chroma subsampling: Note that with most digital RGB color encodings, every single pixel has a different R, G and B sample. The same is not true with many YCbCr (including YCoCg) color encodings. These YCbCr variants operate on the empirical evidence that the human eye is more sensitive to variations in the intensity of a pixel rather than variations in color. Thus, every pixel in an image of such a YCbCr variant has an associated Y sample, but groups of pixels share Cb and Cr samples.
There are different matrix coefficients defined to convert encodings in the RGB color space to YCbCr. Among the more important ones are:
- ITU BT.601 Used for Standard Definition television signals
- ITU T.871 JPEG File Interchange Format (JFIF)
- ITU BT.709 Used for High definition television (HDTV)
- ITU BT.2020 Used for Ultra high definition television
- YCoCg
Others are proprietary or less widely used, such as those defined in Cinepak and SMPTE 240M.
For information on specific YCbCr formats, see the YCbCr formats category page.