162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci.. _V4L2-PIX-FMT-M420:
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci**************************
662306a36Sopenharmony_ciV4L2_PIX_FMT_M420 ('M420')
762306a36Sopenharmony_ci**************************
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciFormat with ½ horizontal and vertical chroma resolution, also known as
1062306a36Sopenharmony_ciYUV 4:2:0. Hybrid plane line-interleaved layout.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciDescription
1462306a36Sopenharmony_ci===========
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciM420 is a YUV format with ½ horizontal and vertical chroma subsampling
1762306a36Sopenharmony_ci(YUV 4:2:0). Pixels are organized as interleaved luma and chroma planes.
1862306a36Sopenharmony_ciTwo lines of luma data are followed by one line of chroma data.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciThe luma plane has one byte per pixel. The chroma plane contains
2162306a36Sopenharmony_ciinterleaved CbCr pixels subsampled by ½ in the horizontal and vertical
2262306a36Sopenharmony_cidirections. Each CbCr pair belongs to four pixels. For example,
2362306a36Sopenharmony_ciCb\ :sub:`0`/Cr\ :sub:`0` belongs to Y'\ :sub:`00`, Y'\ :sub:`01`,
2462306a36Sopenharmony_ciY'\ :sub:`10`, Y'\ :sub:`11`.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciAll line lengths are identical: if the Y lines include pad bytes so do
2762306a36Sopenharmony_cithe CbCr lines.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci**Byte Order.**
3062306a36Sopenharmony_ciEach cell is one byte.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci.. flat-table::
3462306a36Sopenharmony_ci    :header-rows:  0
3562306a36Sopenharmony_ci    :stub-columns: 0
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci    * - start + 0:
3862306a36Sopenharmony_ci      - Y'\ :sub:`00`
3962306a36Sopenharmony_ci      - Y'\ :sub:`01`
4062306a36Sopenharmony_ci      - Y'\ :sub:`02`
4162306a36Sopenharmony_ci      - Y'\ :sub:`03`
4262306a36Sopenharmony_ci    * - start + 4:
4362306a36Sopenharmony_ci      - Y'\ :sub:`10`
4462306a36Sopenharmony_ci      - Y'\ :sub:`11`
4562306a36Sopenharmony_ci      - Y'\ :sub:`12`
4662306a36Sopenharmony_ci      - Y'\ :sub:`13`
4762306a36Sopenharmony_ci    * - start + 8:
4862306a36Sopenharmony_ci      - Cb\ :sub:`00`
4962306a36Sopenharmony_ci      - Cr\ :sub:`00`
5062306a36Sopenharmony_ci      - Cb\ :sub:`01`
5162306a36Sopenharmony_ci      - Cr\ :sub:`01`
5262306a36Sopenharmony_ci    * - start + 16:
5362306a36Sopenharmony_ci      - Y'\ :sub:`20`
5462306a36Sopenharmony_ci      - Y'\ :sub:`21`
5562306a36Sopenharmony_ci      - Y'\ :sub:`22`
5662306a36Sopenharmony_ci      - Y'\ :sub:`23`
5762306a36Sopenharmony_ci    * - start + 20:
5862306a36Sopenharmony_ci      - Y'\ :sub:`30`
5962306a36Sopenharmony_ci      - Y'\ :sub:`31`
6062306a36Sopenharmony_ci      - Y'\ :sub:`32`
6162306a36Sopenharmony_ci      - Y'\ :sub:`33`
6262306a36Sopenharmony_ci    * - start + 24:
6362306a36Sopenharmony_ci      - Cb\ :sub:`10`
6462306a36Sopenharmony_ci      - Cr\ :sub:`10`
6562306a36Sopenharmony_ci      - Cb\ :sub:`11`
6662306a36Sopenharmony_ci      - Cr\ :sub:`11`
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci**Color Sample Location:**
7062306a36Sopenharmony_ciChroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
7162306a36Sopenharmony_cihorizontally and vertically.
72