Reference · Video colour

Video colour: RGB, YCbCr, range, primaries and HDR signalling

A video stream can describe colour with several independent fields. Bit depth and chroma subsampling are only part of the picture: colour primaries, transfer characteristics, matrix coefficients and range tell a decoder how stored values should be interpreted.

Diagram showing RGB, YCbCr, bit depth, chroma subsampling and colour signalling as separate video properties.
A codec name alone does not define the complete colour pipeline.
Key idea: “10-bit 4:2:0” does not fully describe a video's colour. Two 10-bit 4:2:0 streams can use different primaries, transfer functions, matrices and ranges.

The main colour descriptors

FieldWhat it describesExamples
Bit depthNumeric precision per component8, 10, 12 bit
Chroma subsamplingSpatial resolution of colour-difference channels4:2:0, 4:2:2, 4:4:4
Colour primariesChromaticities defining the RGB colour gamutBT.601, BT.709, BT.2020
Transfer characteristicsRelationship between encoded signal and light/display responseBT.709-style transfer, PQ/ST 2084, HLG
Matrix coefficientsHow RGB-related signals are converted to/from luma/chroma componentsBT.601, BT.709, BT.2020 matrices
RangeWhich code values represent black/white and headroomLimited/video range, full range

RGB versus YCbCr

RGB stores red, green and blue components directly. Most compressed consumer video instead works with YCbCr: a luma-like Y′ component plus two colour-difference components. YCbCr makes chroma subsampling practical because human vision is generally less sensitive to fine chroma detail than fine luma detail.

The word YUV is often used casually for digital YCbCr, especially in software and pixel-format names, but technically YUV and digital YCbCr are not identical concepts.

Full versus limited range

Video-range signalling normally reserves code values outside the nominal black-to-white interval, while full range uses a wider numeric span for active picture values. The exact code values depend on bit depth and standard.

A range mismatch can make a picture look washed out or crushed even though the encoded pixels themselves are otherwise valid.

BT.601, BT.709 and BT.2020 are not just “resolutions”

FamilyCommon associationImportant note
BT.601SD digital televisionDefines colour-related parameters used by SD workflows.
BT.709HD televisionWidely used for SDR HD video.
BT.2020UHD televisionDefines a much wider colour gamut and UHD production parameters; HDR may use BT.2020 primaries with PQ or HLG transfer signalling.

HDR is another layer

HDR commonly combines higher bit depth with a wider colour gamut and an HDR transfer characteristic such as PQ or HLG. Static or dynamic metadata may add mastering/display guidance, but HDR is not itself a video codec.

HEVC, AV1 and other codecs can carry HDR video when the relevant profile and signalling are supported.

Common confusion

“YUV” in a software menu often really means a YCbCr-family pixel format.

The informal label is widespread, but the distinction matters when discussing colour science precisely.

BT.2020 does not automatically mean HDR.

BT.2020 primaries can be used independently of an HDR transfer function.

10-bit does not automatically mean HDR.

10-bit SDR is possible, and HDR depends on transfer/gamut signalling as well as precision.