162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci.. _yuv-formats: 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci*********** 662306a36Sopenharmony_ciYUV Formats 762306a36Sopenharmony_ci*********** 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciYUV is the format native to TV broadcast and composite video signals. It 1062306a36Sopenharmony_ciseparates the brightness information (Y) from the color information (U 1162306a36Sopenharmony_ciand V or Cb and Cr). The color information consists of red and blue 1262306a36Sopenharmony_ci*color difference* signals, this way the green component can be 1362306a36Sopenharmony_cireconstructed by subtracting from the brightness component. See 1462306a36Sopenharmony_ci:ref:`colorspaces` for conversion examples. YUV was chosen because 1562306a36Sopenharmony_ciearly television would only transmit brightness information. To add 1662306a36Sopenharmony_cicolor in a way compatible with existing receivers a new signal carrier 1762306a36Sopenharmony_ciwas added to transmit the color difference signals. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciSubsampling 2162306a36Sopenharmony_ci=========== 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciYUV formats commonly encode images with a lower resolution for the chroma 2462306a36Sopenharmony_cicomponents than for the luma component. This compression technique, taking 2562306a36Sopenharmony_ciadvantage of the human eye being more sensitive to luminance than color 2662306a36Sopenharmony_cidifferences, is called chroma subsampling. 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciWhile many combinations of subsampling factors in the horizontal and vertical 2962306a36Sopenharmony_cidirection are possible, common factors are 1 (no subsampling), 2 and 4, with 3062306a36Sopenharmony_cihorizontal subsampling always larger than or equal to vertical subsampling. 3162306a36Sopenharmony_ciCommon combinations are named as follows. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci- `4:4:4`: No subsampling 3462306a36Sopenharmony_ci- `4:2:2`: Horizontal subsampling by 2, no vertical subsampling 3562306a36Sopenharmony_ci- `4:2:0`: Horizontal subsampling by 2, vertical subsampling by 2 3662306a36Sopenharmony_ci- `4:1:1`: Horizontal subsampling by 4, no vertical subsampling 3762306a36Sopenharmony_ci- `4:1:0`: Horizontal subsampling by 4, vertical subsampling by 4 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciSubsampling the chroma component effectively creates chroma values that can be 4062306a36Sopenharmony_cilocated in different spatial locations: 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci- .. _yuv-chroma-centered: 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci The subsampled chroma value may be calculated by simply averaging the chroma 4562306a36Sopenharmony_ci value of two consecutive pixels. It effectively models the chroma of a pixel 4662306a36Sopenharmony_ci sited between the two original pixels. This is referred to as centered or 4762306a36Sopenharmony_ci interstitially sited chroma. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci- .. _yuv-chroma-cosited: 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci The other option is to subsample chroma values in a way that place them in 5262306a36Sopenharmony_ci the same spatial sites as the pixels. This may be performed by skipping every 5362306a36Sopenharmony_ci other chroma sample (creating aliasing artifacts), or with filters using an 5462306a36Sopenharmony_ci odd number of taps. This is referred to as co-sited chroma. 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ciThe following examples show different combination of chroma siting in a 4x4 5762306a36Sopenharmony_ciimage. 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci.. flat-table:: 4:2:2 subsampling, interstitially sited 6062306a36Sopenharmony_ci :header-rows: 1 6162306a36Sopenharmony_ci :stub-columns: 1 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci * - 6462306a36Sopenharmony_ci - 0 6562306a36Sopenharmony_ci - 6662306a36Sopenharmony_ci - 1 6762306a36Sopenharmony_ci - 6862306a36Sopenharmony_ci - 2 6962306a36Sopenharmony_ci - 7062306a36Sopenharmony_ci - 3 7162306a36Sopenharmony_ci * - 0 7262306a36Sopenharmony_ci - Y 7362306a36Sopenharmony_ci - C 7462306a36Sopenharmony_ci - Y 7562306a36Sopenharmony_ci - 7662306a36Sopenharmony_ci - Y 7762306a36Sopenharmony_ci - C 7862306a36Sopenharmony_ci - Y 7962306a36Sopenharmony_ci * - 1 8062306a36Sopenharmony_ci - Y 8162306a36Sopenharmony_ci - C 8262306a36Sopenharmony_ci - Y 8362306a36Sopenharmony_ci - 8462306a36Sopenharmony_ci - Y 8562306a36Sopenharmony_ci - C 8662306a36Sopenharmony_ci - Y 8762306a36Sopenharmony_ci * - 2 8862306a36Sopenharmony_ci - Y 8962306a36Sopenharmony_ci - C 9062306a36Sopenharmony_ci - Y 9162306a36Sopenharmony_ci - 9262306a36Sopenharmony_ci - Y 9362306a36Sopenharmony_ci - C 9462306a36Sopenharmony_ci - Y 9562306a36Sopenharmony_ci * - 3 9662306a36Sopenharmony_ci - Y 9762306a36Sopenharmony_ci - C 9862306a36Sopenharmony_ci - Y 9962306a36Sopenharmony_ci - 10062306a36Sopenharmony_ci - Y 10162306a36Sopenharmony_ci - C 10262306a36Sopenharmony_ci - Y 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci.. flat-table:: 4:2:2 subsampling, co-sited 10562306a36Sopenharmony_ci :header-rows: 1 10662306a36Sopenharmony_ci :stub-columns: 1 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci * - 10962306a36Sopenharmony_ci - 0 11062306a36Sopenharmony_ci - 11162306a36Sopenharmony_ci - 1 11262306a36Sopenharmony_ci - 11362306a36Sopenharmony_ci - 2 11462306a36Sopenharmony_ci - 11562306a36Sopenharmony_ci - 3 11662306a36Sopenharmony_ci * - 0 11762306a36Sopenharmony_ci - Y/C 11862306a36Sopenharmony_ci - 11962306a36Sopenharmony_ci - Y 12062306a36Sopenharmony_ci - 12162306a36Sopenharmony_ci - Y/C 12262306a36Sopenharmony_ci - 12362306a36Sopenharmony_ci - Y 12462306a36Sopenharmony_ci * - 1 12562306a36Sopenharmony_ci - Y/C 12662306a36Sopenharmony_ci - 12762306a36Sopenharmony_ci - Y 12862306a36Sopenharmony_ci - 12962306a36Sopenharmony_ci - Y/C 13062306a36Sopenharmony_ci - 13162306a36Sopenharmony_ci - Y 13262306a36Sopenharmony_ci * - 2 13362306a36Sopenharmony_ci - Y/C 13462306a36Sopenharmony_ci - 13562306a36Sopenharmony_ci - Y 13662306a36Sopenharmony_ci - 13762306a36Sopenharmony_ci - Y/C 13862306a36Sopenharmony_ci - 13962306a36Sopenharmony_ci - Y 14062306a36Sopenharmony_ci * - 3 14162306a36Sopenharmony_ci - Y/C 14262306a36Sopenharmony_ci - 14362306a36Sopenharmony_ci - Y 14462306a36Sopenharmony_ci - 14562306a36Sopenharmony_ci - Y/C 14662306a36Sopenharmony_ci - 14762306a36Sopenharmony_ci - Y 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci.. flat-table:: 4:2:0 subsampling, horizontally interstitially sited, vertically co-sited 15062306a36Sopenharmony_ci :header-rows: 1 15162306a36Sopenharmony_ci :stub-columns: 1 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci * - 15462306a36Sopenharmony_ci - 0 15562306a36Sopenharmony_ci - 15662306a36Sopenharmony_ci - 1 15762306a36Sopenharmony_ci - 15862306a36Sopenharmony_ci - 2 15962306a36Sopenharmony_ci - 16062306a36Sopenharmony_ci - 3 16162306a36Sopenharmony_ci * - 0 16262306a36Sopenharmony_ci - Y 16362306a36Sopenharmony_ci - C 16462306a36Sopenharmony_ci - Y 16562306a36Sopenharmony_ci - 16662306a36Sopenharmony_ci - Y 16762306a36Sopenharmony_ci - C 16862306a36Sopenharmony_ci - Y 16962306a36Sopenharmony_ci * - 1 17062306a36Sopenharmony_ci - Y 17162306a36Sopenharmony_ci - 17262306a36Sopenharmony_ci - Y 17362306a36Sopenharmony_ci - 17462306a36Sopenharmony_ci - Y 17562306a36Sopenharmony_ci - 17662306a36Sopenharmony_ci - Y 17762306a36Sopenharmony_ci * - 2 17862306a36Sopenharmony_ci - Y 17962306a36Sopenharmony_ci - C 18062306a36Sopenharmony_ci - Y 18162306a36Sopenharmony_ci - 18262306a36Sopenharmony_ci - Y 18362306a36Sopenharmony_ci - C 18462306a36Sopenharmony_ci - Y 18562306a36Sopenharmony_ci * - 3 18662306a36Sopenharmony_ci - Y 18762306a36Sopenharmony_ci - 18862306a36Sopenharmony_ci - Y 18962306a36Sopenharmony_ci - 19062306a36Sopenharmony_ci - Y 19162306a36Sopenharmony_ci - 19262306a36Sopenharmony_ci - Y 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci.. flat-table:: 4:1:0 subsampling, horizontally and vertically interstitially sited 19562306a36Sopenharmony_ci :header-rows: 1 19662306a36Sopenharmony_ci :stub-columns: 1 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ci * - 19962306a36Sopenharmony_ci - 0 20062306a36Sopenharmony_ci - 20162306a36Sopenharmony_ci - 1 20262306a36Sopenharmony_ci - 20362306a36Sopenharmony_ci - 2 20462306a36Sopenharmony_ci - 20562306a36Sopenharmony_ci - 3 20662306a36Sopenharmony_ci * - 0 20762306a36Sopenharmony_ci - Y 20862306a36Sopenharmony_ci - 20962306a36Sopenharmony_ci - Y 21062306a36Sopenharmony_ci - 21162306a36Sopenharmony_ci - Y 21262306a36Sopenharmony_ci - 21362306a36Sopenharmony_ci - Y 21462306a36Sopenharmony_ci * - 21562306a36Sopenharmony_ci - 21662306a36Sopenharmony_ci - 21762306a36Sopenharmony_ci - 21862306a36Sopenharmony_ci - 21962306a36Sopenharmony_ci - 22062306a36Sopenharmony_ci - 22162306a36Sopenharmony_ci - 22262306a36Sopenharmony_ci * - 1 22362306a36Sopenharmony_ci - Y 22462306a36Sopenharmony_ci - 22562306a36Sopenharmony_ci - Y 22662306a36Sopenharmony_ci - 22762306a36Sopenharmony_ci - Y 22862306a36Sopenharmony_ci - 22962306a36Sopenharmony_ci - Y 23062306a36Sopenharmony_ci * - 23162306a36Sopenharmony_ci - 23262306a36Sopenharmony_ci - 23362306a36Sopenharmony_ci - 23462306a36Sopenharmony_ci - C 23562306a36Sopenharmony_ci - 23662306a36Sopenharmony_ci - 23762306a36Sopenharmony_ci - 23862306a36Sopenharmony_ci * - 2 23962306a36Sopenharmony_ci - Y 24062306a36Sopenharmony_ci - 24162306a36Sopenharmony_ci - Y 24262306a36Sopenharmony_ci - 24362306a36Sopenharmony_ci - Y 24462306a36Sopenharmony_ci - 24562306a36Sopenharmony_ci - Y 24662306a36Sopenharmony_ci * - 24762306a36Sopenharmony_ci - 24862306a36Sopenharmony_ci - 24962306a36Sopenharmony_ci - 25062306a36Sopenharmony_ci - 25162306a36Sopenharmony_ci - 25262306a36Sopenharmony_ci - 25362306a36Sopenharmony_ci - 25462306a36Sopenharmony_ci * - 3 25562306a36Sopenharmony_ci - Y 25662306a36Sopenharmony_ci - 25762306a36Sopenharmony_ci - Y 25862306a36Sopenharmony_ci - 25962306a36Sopenharmony_ci - Y 26062306a36Sopenharmony_ci - 26162306a36Sopenharmony_ci - Y 26262306a36Sopenharmony_ci 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ci.. toctree:: 26562306a36Sopenharmony_ci :maxdepth: 1 26662306a36Sopenharmony_ci 26762306a36Sopenharmony_ci pixfmt-packed-yuv 26862306a36Sopenharmony_ci pixfmt-yuv-planar 26962306a36Sopenharmony_ci pixfmt-yuv-luma 27062306a36Sopenharmony_ci pixfmt-y8i 27162306a36Sopenharmony_ci pixfmt-y12i 27262306a36Sopenharmony_ci pixfmt-uv8 27362306a36Sopenharmony_ci pixfmt-m420 274