162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci.. planar-yuv: 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci****************** 662306a36Sopenharmony_ciPlanar YUV formats 762306a36Sopenharmony_ci****************** 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciPlanar formats split luma and chroma data in separate memory regions. They 1062306a36Sopenharmony_ciexist in two variants: 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci- Semi-planar formats use two planes. The first plane is the luma plane and 1362306a36Sopenharmony_ci stores the Y components. The second plane is the chroma plane and stores the 1462306a36Sopenharmony_ci Cb and Cr components interleaved. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci- Fully planar formats use three planes to store the Y, Cb and Cr components 1762306a36Sopenharmony_ci separately. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciWithin a plane, components are stored in pixel order, which may be linear or 2062306a36Sopenharmony_citiled. Padding may be supported at the end of the lines, and the line stride of 2162306a36Sopenharmony_cithe chroma planes may be constrained by the line stride of the luma plane. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciSome planar formats allow planes to be placed in independent memory locations. 2462306a36Sopenharmony_ciThey are identified by an 'M' suffix in their name (such as in 2562306a36Sopenharmony_ci``V4L2_PIX_FMT_NV12M``). Those formats are intended to be used only in drivers 2662306a36Sopenharmony_ciand applications that support the multi-planar API, described in 2762306a36Sopenharmony_ci:ref:`planar-apis`. Unless explicitly documented as supporting non-contiguous 2862306a36Sopenharmony_ciplanes, formats require the planes to follow each other immediately in memory. 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciSemi-Planar YUV Formats 3262306a36Sopenharmony_ci======================= 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciThese formats are commonly referred to as NV formats (NV12, NV16, ...). They 3562306a36Sopenharmony_ciuse two planes, and store the luma components in the first plane and the chroma 3662306a36Sopenharmony_cicomponents in the second plane. The Cb and Cr components are interleaved in the 3762306a36Sopenharmony_cichroma plane, with Cb and Cr always stored in pairs. The chroma order is 3862306a36Sopenharmony_ciexposed as different formats. 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciFor memory contiguous formats, the number of padding pixels at the end of the 4162306a36Sopenharmony_cichroma lines is identical to the padding of the luma lines. Without horizontal 4262306a36Sopenharmony_cisubsampling, the chroma line stride (in bytes) is thus equal to twice the luma 4362306a36Sopenharmony_ciline stride. With horizontal subsampling by 2, the chroma line stride is equal 4462306a36Sopenharmony_cito the luma line stride. Vertical subsampling doesn't affect the line stride. 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciFor non-contiguous formats, no constraints are enforced by the format on the 4762306a36Sopenharmony_cirelationship between the luma and chroma line padding and stride. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciAll components are stored with the same number of bits per component. 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci.. raw:: latex 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci \footnotesize 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci.. tabularcolumns:: |p{5.2cm}|p{1.0cm}|p{1.5cm}|p{1.9cm}|p{1.2cm}|p{1.8cm}|p{2.7cm}| 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci.. flat-table:: Overview of Semi-Planar YUV Formats 5862306a36Sopenharmony_ci :header-rows: 1 5962306a36Sopenharmony_ci :stub-columns: 0 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci * - Identifier 6262306a36Sopenharmony_ci - Code 6362306a36Sopenharmony_ci - Bits per component 6462306a36Sopenharmony_ci - Subsampling 6562306a36Sopenharmony_ci - Chroma order [1]_ 6662306a36Sopenharmony_ci - Contiguous [2]_ 6762306a36Sopenharmony_ci - Tiling [3]_ 6862306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV12 6962306a36Sopenharmony_ci - 'NV12' 7062306a36Sopenharmony_ci - 8 7162306a36Sopenharmony_ci - 4:2:0 7262306a36Sopenharmony_ci - Cb, Cr 7362306a36Sopenharmony_ci - Yes 7462306a36Sopenharmony_ci - Linear 7562306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV21 7662306a36Sopenharmony_ci - 'NV21' 7762306a36Sopenharmony_ci - 8 7862306a36Sopenharmony_ci - 4:2:0 7962306a36Sopenharmony_ci - Cr, Cb 8062306a36Sopenharmony_ci - Yes 8162306a36Sopenharmony_ci - Linear 8262306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV12M 8362306a36Sopenharmony_ci - 'NM12' 8462306a36Sopenharmony_ci - 8 8562306a36Sopenharmony_ci - 4:2:0 8662306a36Sopenharmony_ci - Cb, Cr 8762306a36Sopenharmony_ci - No 8862306a36Sopenharmony_ci - Linear 8962306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV21M 9062306a36Sopenharmony_ci - 'NM21' 9162306a36Sopenharmony_ci - 8 9262306a36Sopenharmony_ci - 4:2:0 9362306a36Sopenharmony_ci - Cr, Cb 9462306a36Sopenharmony_ci - No 9562306a36Sopenharmony_ci - Linear 9662306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV12MT 9762306a36Sopenharmony_ci - 'TM12' 9862306a36Sopenharmony_ci - 8 9962306a36Sopenharmony_ci - 4:2:0 10062306a36Sopenharmony_ci - Cb, Cr 10162306a36Sopenharmony_ci - No 10262306a36Sopenharmony_ci - 64x32 tiles 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci Horizontal Z order 10562306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV12MT_16X16 10662306a36Sopenharmony_ci - 'VM12' 10762306a36Sopenharmony_ci - 8 10862306a36Sopenharmony_ci - 4:2:2 10962306a36Sopenharmony_ci - Cb, Cr 11062306a36Sopenharmony_ci - No 11162306a36Sopenharmony_ci - 16x16 tiles 11262306a36Sopenharmony_ci * - V4L2_PIX_FMT_P010 11362306a36Sopenharmony_ci - 'P010' 11462306a36Sopenharmony_ci - 10 11562306a36Sopenharmony_ci - 4:2:0 11662306a36Sopenharmony_ci - Cb, Cr 11762306a36Sopenharmony_ci - Yes 11862306a36Sopenharmony_ci - Linear 11962306a36Sopenharmony_ci * - V4L2_PIX_FMT_P010_4L4 12062306a36Sopenharmony_ci - 'T010' 12162306a36Sopenharmony_ci - 10 12262306a36Sopenharmony_ci - 4:2:0 12362306a36Sopenharmony_ci - Cb, Cr 12462306a36Sopenharmony_ci - Yes 12562306a36Sopenharmony_ci - 4x4 tiles 12662306a36Sopenharmony_ci * - V4L2_PIX_FMT_P012 12762306a36Sopenharmony_ci - 'P012' 12862306a36Sopenharmony_ci - 12 12962306a36Sopenharmony_ci - 4:2:0 13062306a36Sopenharmony_ci - Cb, Cr 13162306a36Sopenharmony_ci - Yes 13262306a36Sopenharmony_ci - Linear 13362306a36Sopenharmony_ci * - V4L2_PIX_FMT_P012M 13462306a36Sopenharmony_ci - 'PM12' 13562306a36Sopenharmony_ci - 12 13662306a36Sopenharmony_ci - 4:2:0 13762306a36Sopenharmony_ci - Cb, Cr 13862306a36Sopenharmony_ci - No 13962306a36Sopenharmony_ci - Linear 14062306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV15_4L4 14162306a36Sopenharmony_ci - 'VT15' 14262306a36Sopenharmony_ci - 15 14362306a36Sopenharmony_ci - 4:2:0 14462306a36Sopenharmony_ci - Cb, Cr 14562306a36Sopenharmony_ci - Yes 14662306a36Sopenharmony_ci - 4x4 tiles 14762306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV16 14862306a36Sopenharmony_ci - 'NV16' 14962306a36Sopenharmony_ci - 8 15062306a36Sopenharmony_ci - 4:2:2 15162306a36Sopenharmony_ci - Cb, Cr 15262306a36Sopenharmony_ci - Yes 15362306a36Sopenharmony_ci - Linear 15462306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV61 15562306a36Sopenharmony_ci - 'NV61' 15662306a36Sopenharmony_ci - 8 15762306a36Sopenharmony_ci - 4:2:2 15862306a36Sopenharmony_ci - Cr, Cb 15962306a36Sopenharmony_ci - Yes 16062306a36Sopenharmony_ci - Linear 16162306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV16M 16262306a36Sopenharmony_ci - 'NM16' 16362306a36Sopenharmony_ci - 8 16462306a36Sopenharmony_ci - 4:2:2 16562306a36Sopenharmony_ci - Cb, Cr 16662306a36Sopenharmony_ci - No 16762306a36Sopenharmony_ci - Linear 16862306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV61M 16962306a36Sopenharmony_ci - 'NM61' 17062306a36Sopenharmony_ci - 8 17162306a36Sopenharmony_ci - 4:2:2 17262306a36Sopenharmony_ci - Cr, Cb 17362306a36Sopenharmony_ci - No 17462306a36Sopenharmony_ci - Linear 17562306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV24 17662306a36Sopenharmony_ci - 'NV24' 17762306a36Sopenharmony_ci - 8 17862306a36Sopenharmony_ci - 4:4:4 17962306a36Sopenharmony_ci - Cb, Cr 18062306a36Sopenharmony_ci - Yes 18162306a36Sopenharmony_ci - Linear 18262306a36Sopenharmony_ci * - V4L2_PIX_FMT_NV42 18362306a36Sopenharmony_ci - 'NV42' 18462306a36Sopenharmony_ci - 8 18562306a36Sopenharmony_ci - 4:4:4 18662306a36Sopenharmony_ci - Cr, Cb 18762306a36Sopenharmony_ci - Yes 18862306a36Sopenharmony_ci - Linear 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ci.. raw:: latex 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci \normalsize 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci.. [1] Order of chroma samples in the second plane 19562306a36Sopenharmony_ci.. [2] Indicates if planes have to be contiguous in memory or can be 19662306a36Sopenharmony_ci disjoint 19762306a36Sopenharmony_ci.. [3] Macroblock size in pixels 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci**Color Sample Location:** 20162306a36Sopenharmony_ciChroma samples are :ref:`interstitially sited<yuv-chroma-centered>` 20262306a36Sopenharmony_cihorizontally. 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12: 20662306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV21: 20762306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12M: 20862306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV21M: 20962306a36Sopenharmony_ci.. _V4L2-PIX-FMT-P010: 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ciNV12, NV21, NV12M and NV21M 21262306a36Sopenharmony_ci--------------------------- 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ciSemi-planar YUV 4:2:0 formats. The chroma plane is subsampled by 2 in each 21562306a36Sopenharmony_cidirection. Chroma lines contain half the number of pixels and the same number 21662306a36Sopenharmony_ciof bytes as luma lines, and the chroma plane contains half the number of lines 21762306a36Sopenharmony_ciof the luma plane. 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ci.. flat-table:: Sample 4x4 NV12 Image 22062306a36Sopenharmony_ci :header-rows: 0 22162306a36Sopenharmony_ci :stub-columns: 0 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci * - start + 0: 22462306a36Sopenharmony_ci - Y'\ :sub:`00` 22562306a36Sopenharmony_ci - Y'\ :sub:`01` 22662306a36Sopenharmony_ci - Y'\ :sub:`02` 22762306a36Sopenharmony_ci - Y'\ :sub:`03` 22862306a36Sopenharmony_ci * - start + 4: 22962306a36Sopenharmony_ci - Y'\ :sub:`10` 23062306a36Sopenharmony_ci - Y'\ :sub:`11` 23162306a36Sopenharmony_ci - Y'\ :sub:`12` 23262306a36Sopenharmony_ci - Y'\ :sub:`13` 23362306a36Sopenharmony_ci * - start + 8: 23462306a36Sopenharmony_ci - Y'\ :sub:`20` 23562306a36Sopenharmony_ci - Y'\ :sub:`21` 23662306a36Sopenharmony_ci - Y'\ :sub:`22` 23762306a36Sopenharmony_ci - Y'\ :sub:`23` 23862306a36Sopenharmony_ci * - start + 12: 23962306a36Sopenharmony_ci - Y'\ :sub:`30` 24062306a36Sopenharmony_ci - Y'\ :sub:`31` 24162306a36Sopenharmony_ci - Y'\ :sub:`32` 24262306a36Sopenharmony_ci - Y'\ :sub:`33` 24362306a36Sopenharmony_ci * - start + 16: 24462306a36Sopenharmony_ci - Cb\ :sub:`00` 24562306a36Sopenharmony_ci - Cr\ :sub:`00` 24662306a36Sopenharmony_ci - Cb\ :sub:`01` 24762306a36Sopenharmony_ci - Cr\ :sub:`01` 24862306a36Sopenharmony_ci * - start + 20: 24962306a36Sopenharmony_ci - Cb\ :sub:`10` 25062306a36Sopenharmony_ci - Cr\ :sub:`10` 25162306a36Sopenharmony_ci - Cb\ :sub:`11` 25262306a36Sopenharmony_ci - Cr\ :sub:`11` 25362306a36Sopenharmony_ci 25462306a36Sopenharmony_ci.. flat-table:: Sample 4x4 NV12M Image 25562306a36Sopenharmony_ci :header-rows: 0 25662306a36Sopenharmony_ci :stub-columns: 0 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci * - start0 + 0: 25962306a36Sopenharmony_ci - Y'\ :sub:`00` 26062306a36Sopenharmony_ci - Y'\ :sub:`01` 26162306a36Sopenharmony_ci - Y'\ :sub:`02` 26262306a36Sopenharmony_ci - Y'\ :sub:`03` 26362306a36Sopenharmony_ci * - start0 + 4: 26462306a36Sopenharmony_ci - Y'\ :sub:`10` 26562306a36Sopenharmony_ci - Y'\ :sub:`11` 26662306a36Sopenharmony_ci - Y'\ :sub:`12` 26762306a36Sopenharmony_ci - Y'\ :sub:`13` 26862306a36Sopenharmony_ci * - start0 + 8: 26962306a36Sopenharmony_ci - Y'\ :sub:`20` 27062306a36Sopenharmony_ci - Y'\ :sub:`21` 27162306a36Sopenharmony_ci - Y'\ :sub:`22` 27262306a36Sopenharmony_ci - Y'\ :sub:`23` 27362306a36Sopenharmony_ci * - start0 + 12: 27462306a36Sopenharmony_ci - Y'\ :sub:`30` 27562306a36Sopenharmony_ci - Y'\ :sub:`31` 27662306a36Sopenharmony_ci - Y'\ :sub:`32` 27762306a36Sopenharmony_ci - Y'\ :sub:`33` 27862306a36Sopenharmony_ci * - 27962306a36Sopenharmony_ci * - start1 + 0: 28062306a36Sopenharmony_ci - Cb\ :sub:`00` 28162306a36Sopenharmony_ci - Cr\ :sub:`00` 28262306a36Sopenharmony_ci - Cb\ :sub:`01` 28362306a36Sopenharmony_ci - Cr\ :sub:`01` 28462306a36Sopenharmony_ci * - start1 + 4: 28562306a36Sopenharmony_ci - Cb\ :sub:`10` 28662306a36Sopenharmony_ci - Cr\ :sub:`10` 28762306a36Sopenharmony_ci - Cb\ :sub:`11` 28862306a36Sopenharmony_ci - Cr\ :sub:`11` 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12MT: 29262306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12MT-16X16: 29362306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12-4L4: 29462306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12-16L16: 29562306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12-32L32: 29662306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12M-8L128: 29762306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12-8L128: 29862306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12M-10BE-8L128: 29962306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV12-10BE-8L128: 30062306a36Sopenharmony_ci.. _V4L2-PIX-FMT-MM21: 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ciTiled NV12 30362306a36Sopenharmony_ci---------- 30462306a36Sopenharmony_ci 30562306a36Sopenharmony_ciSemi-planar YUV 4:2:0 formats, using macroblock tiling. The chroma plane is 30662306a36Sopenharmony_cisubsampled by 2 in each direction. Chroma lines contain half the number of 30762306a36Sopenharmony_cipixels and the same number of bytes as luma lines, and the chroma plane 30862306a36Sopenharmony_cicontains half the number of lines of the luma plane. Each tile follows the 30962306a36Sopenharmony_ciprevious one linearly in memory (from left to right, top to bottom). 31062306a36Sopenharmony_ci 31162306a36Sopenharmony_ci``V4L2_PIX_FMT_NV12MT_16X16`` is similar to ``V4L2_PIX_FMT_NV12M`` but stores 31262306a36Sopenharmony_cipixels in 2D 16x16 tiles, and stores tiles linearly in memory. 31362306a36Sopenharmony_ciThe line stride and image height must be aligned to a multiple of 16. 31462306a36Sopenharmony_ciThe layouts of the luma and chroma planes are identical. 31562306a36Sopenharmony_ci 31662306a36Sopenharmony_ci``V4L2_PIX_FMT_NV12MT`` is similar to ``V4L2_PIX_FMT_NV12M`` but stores 31762306a36Sopenharmony_cipixels in 2D 64x32 tiles, and stores 2x2 groups of tiles in 31862306a36Sopenharmony_ciZ-order in memory, alternating Z and mirrored Z shapes horizontally. 31962306a36Sopenharmony_ciThe line stride must be a multiple of 128 pixels to ensure an 32062306a36Sopenharmony_ciinteger number of Z shapes. The image height must be a multiple of 32 pixels. 32162306a36Sopenharmony_ciIf the vertical resolution is an odd number of tiles, the last row of 32262306a36Sopenharmony_citiles is stored in linear order. The layouts of the luma and chroma 32362306a36Sopenharmony_ciplanes are identical. 32462306a36Sopenharmony_ci 32562306a36Sopenharmony_ci``V4L2_PIX_FMT_NV12_4L4`` stores pixels in 4x4 tiles, and stores 32662306a36Sopenharmony_citiles linearly in memory. The line stride and image height must be 32762306a36Sopenharmony_cialigned to a multiple of 4. The layouts of the luma and chroma planes are 32862306a36Sopenharmony_ciidentical. 32962306a36Sopenharmony_ci 33062306a36Sopenharmony_ci``V4L2_PIX_FMT_NV12_16L16`` stores pixels in 16x16 tiles, and stores 33162306a36Sopenharmony_citiles linearly in memory. The line stride and image height must be 33262306a36Sopenharmony_cialigned to a multiple of 16. The layouts of the luma and chroma planes are 33362306a36Sopenharmony_ciidentical. 33462306a36Sopenharmony_ci 33562306a36Sopenharmony_ci``V4L2_PIX_FMT_NV12_32L32`` stores pixels in 32x32 tiles, and stores 33662306a36Sopenharmony_citiles linearly in memory. The line stride and image height must be 33762306a36Sopenharmony_cialigned to a multiple of 32. The layouts of the luma and chroma planes are 33862306a36Sopenharmony_ciidentical. 33962306a36Sopenharmony_ci 34062306a36Sopenharmony_ci``V4L2_PIX_FMT_NV12M_8L128`` is similar to ``V4L2_PIX_FMT_NV12M`` but stores 34162306a36Sopenharmony_cipixels in 2D 8x128 tiles, and stores tiles linearly in memory. 34262306a36Sopenharmony_ciThe image height must be aligned to a multiple of 128. 34362306a36Sopenharmony_ciThe layouts of the luma and chroma planes are identical. 34462306a36Sopenharmony_ci 34562306a36Sopenharmony_ci``V4L2_PIX_FMT_NV12_8L128`` is similar to ``V4L2_PIX_FMT_NV12M_8L128`` but stores 34662306a36Sopenharmony_citwo planes in one memory. 34762306a36Sopenharmony_ci 34862306a36Sopenharmony_ci``V4L2_PIX_FMT_NV12M_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M`` but stores 34962306a36Sopenharmony_ci10 bits pixels in 2D 8x128 tiles, and stores tiles linearly in memory. 35062306a36Sopenharmony_cithe data is arranged in big endian order. 35162306a36Sopenharmony_ciThe image height must be aligned to a multiple of 128. 35262306a36Sopenharmony_ciThe layouts of the luma and chroma planes are identical. 35362306a36Sopenharmony_ciNote the tile size is 8bytes multiplied by 128 bytes, 35462306a36Sopenharmony_ciit means that the low bits and high bits of one pixel may be in different tiles. 35562306a36Sopenharmony_ciThe 10 bit pixels are packed, so 5 bytes contain 4 10-bit pixels layout like 35662306a36Sopenharmony_cithis (for luma): 35762306a36Sopenharmony_cibyte 0: Y0(bits 9-2) 35862306a36Sopenharmony_cibyte 1: Y0(bits 1-0) Y1(bits 9-4) 35962306a36Sopenharmony_cibyte 2: Y1(bits 3-0) Y2(bits 9-6) 36062306a36Sopenharmony_cibyte 3: Y2(bits 5-0) Y3(bits 9-8) 36162306a36Sopenharmony_cibyte 4: Y3(bits 7-0) 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ci``V4L2_PIX_FMT_NV12_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M_10BE_8L128`` but stores 36462306a36Sopenharmony_citwo planes in one memory. 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ci``V4L2_PIX_FMT_MM21`` store luma pixel in 16x32 tiles, and chroma pixels 36762306a36Sopenharmony_ciin 16x16 tiles. The line stride must be aligned to a multiple of 16 and the 36862306a36Sopenharmony_ciimage height must be aligned to a multiple of 32. The number of luma and chroma 36962306a36Sopenharmony_citiles are identical, even though the tile size differ. The image is formed of 37062306a36Sopenharmony_citwo non-contiguous planes. 37162306a36Sopenharmony_ci 37262306a36Sopenharmony_ci.. _nv12mt: 37362306a36Sopenharmony_ci 37462306a36Sopenharmony_ci.. kernel-figure:: nv12mt.svg 37562306a36Sopenharmony_ci :alt: nv12mt.svg 37662306a36Sopenharmony_ci :align: center 37762306a36Sopenharmony_ci 37862306a36Sopenharmony_ci V4L2_PIX_FMT_NV12MT macroblock Z shape memory layout 37962306a36Sopenharmony_ci 38062306a36Sopenharmony_ci.. _nv12mt_ex: 38162306a36Sopenharmony_ci 38262306a36Sopenharmony_ci.. kernel-figure:: nv12mt_example.svg 38362306a36Sopenharmony_ci :alt: nv12mt_example.svg 38462306a36Sopenharmony_ci :align: center 38562306a36Sopenharmony_ci 38662306a36Sopenharmony_ci Example V4L2_PIX_FMT_NV12MT memory layout of tiles 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV15-4L4: 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ciTiled NV15 39162306a36Sopenharmony_ci---------- 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ciSemi-planar 10-bit YUV 4:2:0 formats, using 4x4 tiling. 39462306a36Sopenharmony_ciAll components are packed without any padding between each other. 39562306a36Sopenharmony_ciAs a side-effect, each group of 4 components are stored over 5 bytes 39662306a36Sopenharmony_ci(YYYY or UVUV = 4 * 10 bits = 40 bits = 5 bytes). 39762306a36Sopenharmony_ci 39862306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV16: 39962306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV61: 40062306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV16M: 40162306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV61M: 40262306a36Sopenharmony_ci 40362306a36Sopenharmony_ciNV16, NV61, NV16M and NV61M 40462306a36Sopenharmony_ci--------------------------- 40562306a36Sopenharmony_ci 40662306a36Sopenharmony_ciSemi-planar YUV 4:2:2 formats. The chroma plane is subsampled by 2 in the 40762306a36Sopenharmony_cihorizontal direction. Chroma lines contain half the number of pixels and the 40862306a36Sopenharmony_cisame number of bytes as luma lines, and the chroma plane contains the same 40962306a36Sopenharmony_cinumber of lines as the luma plane. 41062306a36Sopenharmony_ci 41162306a36Sopenharmony_ci.. flat-table:: Sample 4x4 NV16 Image 41262306a36Sopenharmony_ci :header-rows: 0 41362306a36Sopenharmony_ci :stub-columns: 0 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ci * - start + 0: 41662306a36Sopenharmony_ci - Y'\ :sub:`00` 41762306a36Sopenharmony_ci - Y'\ :sub:`01` 41862306a36Sopenharmony_ci - Y'\ :sub:`02` 41962306a36Sopenharmony_ci - Y'\ :sub:`03` 42062306a36Sopenharmony_ci * - start + 4: 42162306a36Sopenharmony_ci - Y'\ :sub:`10` 42262306a36Sopenharmony_ci - Y'\ :sub:`11` 42362306a36Sopenharmony_ci - Y'\ :sub:`12` 42462306a36Sopenharmony_ci - Y'\ :sub:`13` 42562306a36Sopenharmony_ci * - start + 8: 42662306a36Sopenharmony_ci - Y'\ :sub:`20` 42762306a36Sopenharmony_ci - Y'\ :sub:`21` 42862306a36Sopenharmony_ci - Y'\ :sub:`22` 42962306a36Sopenharmony_ci - Y'\ :sub:`23` 43062306a36Sopenharmony_ci * - start + 12: 43162306a36Sopenharmony_ci - Y'\ :sub:`30` 43262306a36Sopenharmony_ci - Y'\ :sub:`31` 43362306a36Sopenharmony_ci - Y'\ :sub:`32` 43462306a36Sopenharmony_ci - Y'\ :sub:`33` 43562306a36Sopenharmony_ci * - start + 16: 43662306a36Sopenharmony_ci - Cb\ :sub:`00` 43762306a36Sopenharmony_ci - Cr\ :sub:`00` 43862306a36Sopenharmony_ci - Cb\ :sub:`01` 43962306a36Sopenharmony_ci - Cr\ :sub:`01` 44062306a36Sopenharmony_ci * - start + 20: 44162306a36Sopenharmony_ci - Cb\ :sub:`10` 44262306a36Sopenharmony_ci - Cr\ :sub:`10` 44362306a36Sopenharmony_ci - Cb\ :sub:`11` 44462306a36Sopenharmony_ci - Cr\ :sub:`11` 44562306a36Sopenharmony_ci * - start + 24: 44662306a36Sopenharmony_ci - Cb\ :sub:`20` 44762306a36Sopenharmony_ci - Cr\ :sub:`20` 44862306a36Sopenharmony_ci - Cb\ :sub:`21` 44962306a36Sopenharmony_ci - Cr\ :sub:`21` 45062306a36Sopenharmony_ci * - start + 28: 45162306a36Sopenharmony_ci - Cb\ :sub:`30` 45262306a36Sopenharmony_ci - Cr\ :sub:`30` 45362306a36Sopenharmony_ci - Cb\ :sub:`31` 45462306a36Sopenharmony_ci - Cr\ :sub:`31` 45562306a36Sopenharmony_ci 45662306a36Sopenharmony_ci.. flat-table:: Sample 4x4 NV16M Image 45762306a36Sopenharmony_ci :header-rows: 0 45862306a36Sopenharmony_ci :stub-columns: 0 45962306a36Sopenharmony_ci 46062306a36Sopenharmony_ci * - start0 + 0: 46162306a36Sopenharmony_ci - Y'\ :sub:`00` 46262306a36Sopenharmony_ci - Y'\ :sub:`01` 46362306a36Sopenharmony_ci - Y'\ :sub:`02` 46462306a36Sopenharmony_ci - Y'\ :sub:`03` 46562306a36Sopenharmony_ci * - start0 + 4: 46662306a36Sopenharmony_ci - Y'\ :sub:`10` 46762306a36Sopenharmony_ci - Y'\ :sub:`11` 46862306a36Sopenharmony_ci - Y'\ :sub:`12` 46962306a36Sopenharmony_ci - Y'\ :sub:`13` 47062306a36Sopenharmony_ci * - start0 + 8: 47162306a36Sopenharmony_ci - Y'\ :sub:`20` 47262306a36Sopenharmony_ci - Y'\ :sub:`21` 47362306a36Sopenharmony_ci - Y'\ :sub:`22` 47462306a36Sopenharmony_ci - Y'\ :sub:`23` 47562306a36Sopenharmony_ci * - start0 + 12: 47662306a36Sopenharmony_ci - Y'\ :sub:`30` 47762306a36Sopenharmony_ci - Y'\ :sub:`31` 47862306a36Sopenharmony_ci - Y'\ :sub:`32` 47962306a36Sopenharmony_ci - Y'\ :sub:`33` 48062306a36Sopenharmony_ci * - 48162306a36Sopenharmony_ci * - start1 + 0: 48262306a36Sopenharmony_ci - Cb\ :sub:`00` 48362306a36Sopenharmony_ci - Cr\ :sub:`00` 48462306a36Sopenharmony_ci - Cb\ :sub:`02` 48562306a36Sopenharmony_ci - Cr\ :sub:`02` 48662306a36Sopenharmony_ci * - start1 + 4: 48762306a36Sopenharmony_ci - Cb\ :sub:`10` 48862306a36Sopenharmony_ci - Cr\ :sub:`10` 48962306a36Sopenharmony_ci - Cb\ :sub:`12` 49062306a36Sopenharmony_ci - Cr\ :sub:`12` 49162306a36Sopenharmony_ci * - start1 + 8: 49262306a36Sopenharmony_ci - Cb\ :sub:`20` 49362306a36Sopenharmony_ci - Cr\ :sub:`20` 49462306a36Sopenharmony_ci - Cb\ :sub:`22` 49562306a36Sopenharmony_ci - Cr\ :sub:`22` 49662306a36Sopenharmony_ci * - start1 + 12: 49762306a36Sopenharmony_ci - Cb\ :sub:`30` 49862306a36Sopenharmony_ci - Cr\ :sub:`30` 49962306a36Sopenharmony_ci - Cb\ :sub:`32` 50062306a36Sopenharmony_ci - Cr\ :sub:`32` 50162306a36Sopenharmony_ci 50262306a36Sopenharmony_ci 50362306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV24: 50462306a36Sopenharmony_ci.. _V4L2-PIX-FMT-NV42: 50562306a36Sopenharmony_ci 50662306a36Sopenharmony_ciNV24 and NV42 50762306a36Sopenharmony_ci------------- 50862306a36Sopenharmony_ci 50962306a36Sopenharmony_ciSemi-planar YUV 4:4:4 formats. The chroma plane is not subsampled. 51062306a36Sopenharmony_ciChroma lines contain the same number of pixels and twice the 51162306a36Sopenharmony_cinumber of bytes as luma lines, and the chroma plane contains the same 51262306a36Sopenharmony_cinumber of lines as the luma plane. 51362306a36Sopenharmony_ci 51462306a36Sopenharmony_ci.. flat-table:: Sample 4x4 NV24 Image 51562306a36Sopenharmony_ci :header-rows: 0 51662306a36Sopenharmony_ci :stub-columns: 0 51762306a36Sopenharmony_ci 51862306a36Sopenharmony_ci * - start + 0: 51962306a36Sopenharmony_ci - Y'\ :sub:`00` 52062306a36Sopenharmony_ci - Y'\ :sub:`01` 52162306a36Sopenharmony_ci - Y'\ :sub:`02` 52262306a36Sopenharmony_ci - Y'\ :sub:`03` 52362306a36Sopenharmony_ci * - start + 4: 52462306a36Sopenharmony_ci - Y'\ :sub:`10` 52562306a36Sopenharmony_ci - Y'\ :sub:`11` 52662306a36Sopenharmony_ci - Y'\ :sub:`12` 52762306a36Sopenharmony_ci - Y'\ :sub:`13` 52862306a36Sopenharmony_ci * - start + 8: 52962306a36Sopenharmony_ci - Y'\ :sub:`20` 53062306a36Sopenharmony_ci - Y'\ :sub:`21` 53162306a36Sopenharmony_ci - Y'\ :sub:`22` 53262306a36Sopenharmony_ci - Y'\ :sub:`23` 53362306a36Sopenharmony_ci * - start + 12: 53462306a36Sopenharmony_ci - Y'\ :sub:`30` 53562306a36Sopenharmony_ci - Y'\ :sub:`31` 53662306a36Sopenharmony_ci - Y'\ :sub:`32` 53762306a36Sopenharmony_ci - Y'\ :sub:`33` 53862306a36Sopenharmony_ci * - start + 16: 53962306a36Sopenharmony_ci - Cb\ :sub:`00` 54062306a36Sopenharmony_ci - Cr\ :sub:`00` 54162306a36Sopenharmony_ci - Cb\ :sub:`01` 54262306a36Sopenharmony_ci - Cr\ :sub:`01` 54362306a36Sopenharmony_ci - Cb\ :sub:`02` 54462306a36Sopenharmony_ci - Cr\ :sub:`02` 54562306a36Sopenharmony_ci - Cb\ :sub:`03` 54662306a36Sopenharmony_ci - Cr\ :sub:`03` 54762306a36Sopenharmony_ci * - start + 24: 54862306a36Sopenharmony_ci - Cb\ :sub:`10` 54962306a36Sopenharmony_ci - Cr\ :sub:`10` 55062306a36Sopenharmony_ci - Cb\ :sub:`11` 55162306a36Sopenharmony_ci - Cr\ :sub:`11` 55262306a36Sopenharmony_ci - Cb\ :sub:`12` 55362306a36Sopenharmony_ci - Cr\ :sub:`12` 55462306a36Sopenharmony_ci - Cb\ :sub:`13` 55562306a36Sopenharmony_ci - Cr\ :sub:`13` 55662306a36Sopenharmony_ci * - start + 32: 55762306a36Sopenharmony_ci - Cb\ :sub:`20` 55862306a36Sopenharmony_ci - Cr\ :sub:`20` 55962306a36Sopenharmony_ci - Cb\ :sub:`21` 56062306a36Sopenharmony_ci - Cr\ :sub:`21` 56162306a36Sopenharmony_ci - Cb\ :sub:`22` 56262306a36Sopenharmony_ci - Cr\ :sub:`22` 56362306a36Sopenharmony_ci - Cb\ :sub:`23` 56462306a36Sopenharmony_ci - Cr\ :sub:`23` 56562306a36Sopenharmony_ci * - start + 40: 56662306a36Sopenharmony_ci - Cb\ :sub:`30` 56762306a36Sopenharmony_ci - Cr\ :sub:`30` 56862306a36Sopenharmony_ci - Cb\ :sub:`31` 56962306a36Sopenharmony_ci - Cr\ :sub:`31` 57062306a36Sopenharmony_ci - Cb\ :sub:`32` 57162306a36Sopenharmony_ci - Cr\ :sub:`32` 57262306a36Sopenharmony_ci - Cb\ :sub:`33` 57362306a36Sopenharmony_ci - Cr\ :sub:`33` 57462306a36Sopenharmony_ci 57562306a36Sopenharmony_ci.. _V4L2_PIX_FMT_P010: 57662306a36Sopenharmony_ci.. _V4L2-PIX-FMT-P010-4L4: 57762306a36Sopenharmony_ci 57862306a36Sopenharmony_ciP010 and tiled P010 57962306a36Sopenharmony_ci------------------- 58062306a36Sopenharmony_ci 58162306a36Sopenharmony_ciP010 is like NV12 with 10 bits per component, expanded to 16 bits. 58262306a36Sopenharmony_ciData in the 10 high bits, zeros in the 6 low bits, arranged in little endian order. 58362306a36Sopenharmony_ci 58462306a36Sopenharmony_ci.. flat-table:: Sample 4x4 P010 Image 58562306a36Sopenharmony_ci :header-rows: 0 58662306a36Sopenharmony_ci :stub-columns: 0 58762306a36Sopenharmony_ci 58862306a36Sopenharmony_ci * - start + 0: 58962306a36Sopenharmony_ci - Y'\ :sub:`00` 59062306a36Sopenharmony_ci - Y'\ :sub:`01` 59162306a36Sopenharmony_ci - Y'\ :sub:`02` 59262306a36Sopenharmony_ci - Y'\ :sub:`03` 59362306a36Sopenharmony_ci * - start + 8: 59462306a36Sopenharmony_ci - Y'\ :sub:`10` 59562306a36Sopenharmony_ci - Y'\ :sub:`11` 59662306a36Sopenharmony_ci - Y'\ :sub:`12` 59762306a36Sopenharmony_ci - Y'\ :sub:`13` 59862306a36Sopenharmony_ci * - start + 16: 59962306a36Sopenharmony_ci - Y'\ :sub:`20` 60062306a36Sopenharmony_ci - Y'\ :sub:`21` 60162306a36Sopenharmony_ci - Y'\ :sub:`22` 60262306a36Sopenharmony_ci - Y'\ :sub:`23` 60362306a36Sopenharmony_ci * - start + 24: 60462306a36Sopenharmony_ci - Y'\ :sub:`30` 60562306a36Sopenharmony_ci - Y'\ :sub:`31` 60662306a36Sopenharmony_ci - Y'\ :sub:`32` 60762306a36Sopenharmony_ci - Y'\ :sub:`33` 60862306a36Sopenharmony_ci * - start + 32: 60962306a36Sopenharmony_ci - Cb\ :sub:`00` 61062306a36Sopenharmony_ci - Cr\ :sub:`00` 61162306a36Sopenharmony_ci - Cb\ :sub:`01` 61262306a36Sopenharmony_ci - Cr\ :sub:`01` 61362306a36Sopenharmony_ci * - start + 40: 61462306a36Sopenharmony_ci - Cb\ :sub:`10` 61562306a36Sopenharmony_ci - Cr\ :sub:`10` 61662306a36Sopenharmony_ci - Cb\ :sub:`11` 61762306a36Sopenharmony_ci - Cr\ :sub:`11` 61862306a36Sopenharmony_ci 61962306a36Sopenharmony_ci.. _V4L2-PIX-FMT-P012: 62062306a36Sopenharmony_ci.. _V4L2-PIX-FMT-P012M: 62162306a36Sopenharmony_ci 62262306a36Sopenharmony_ciP012 and P012M 62362306a36Sopenharmony_ci-------------- 62462306a36Sopenharmony_ci 62562306a36Sopenharmony_ciP012 is like NV12 with 12 bits per component, expanded to 16 bits. 62662306a36Sopenharmony_ciData in the 12 high bits, zeros in the 4 low bits, arranged in little endian order. 62762306a36Sopenharmony_ci 62862306a36Sopenharmony_ci.. flat-table:: Sample 4x4 P012 Image 62962306a36Sopenharmony_ci :header-rows: 0 63062306a36Sopenharmony_ci :stub-columns: 0 63162306a36Sopenharmony_ci 63262306a36Sopenharmony_ci * - start + 0: 63362306a36Sopenharmony_ci - Y'\ :sub:`00` 63462306a36Sopenharmony_ci - Y'\ :sub:`01` 63562306a36Sopenharmony_ci - Y'\ :sub:`02` 63662306a36Sopenharmony_ci - Y'\ :sub:`03` 63762306a36Sopenharmony_ci * - start + 8: 63862306a36Sopenharmony_ci - Y'\ :sub:`10` 63962306a36Sopenharmony_ci - Y'\ :sub:`11` 64062306a36Sopenharmony_ci - Y'\ :sub:`12` 64162306a36Sopenharmony_ci - Y'\ :sub:`13` 64262306a36Sopenharmony_ci * - start + 16: 64362306a36Sopenharmony_ci - Y'\ :sub:`20` 64462306a36Sopenharmony_ci - Y'\ :sub:`21` 64562306a36Sopenharmony_ci - Y'\ :sub:`22` 64662306a36Sopenharmony_ci - Y'\ :sub:`23` 64762306a36Sopenharmony_ci * - start + 24: 64862306a36Sopenharmony_ci - Y'\ :sub:`30` 64962306a36Sopenharmony_ci - Y'\ :sub:`31` 65062306a36Sopenharmony_ci - Y'\ :sub:`32` 65162306a36Sopenharmony_ci - Y'\ :sub:`33` 65262306a36Sopenharmony_ci * - start + 32: 65362306a36Sopenharmony_ci - Cb\ :sub:`00` 65462306a36Sopenharmony_ci - Cr\ :sub:`00` 65562306a36Sopenharmony_ci - Cb\ :sub:`01` 65662306a36Sopenharmony_ci - Cr\ :sub:`01` 65762306a36Sopenharmony_ci * - start + 40: 65862306a36Sopenharmony_ci - Cb\ :sub:`10` 65962306a36Sopenharmony_ci - Cr\ :sub:`10` 66062306a36Sopenharmony_ci - Cb\ :sub:`11` 66162306a36Sopenharmony_ci - Cr\ :sub:`11` 66262306a36Sopenharmony_ci 66362306a36Sopenharmony_ci.. flat-table:: Sample 4x4 P012M Image 66462306a36Sopenharmony_ci :header-rows: 0 66562306a36Sopenharmony_ci :stub-columns: 0 66662306a36Sopenharmony_ci 66762306a36Sopenharmony_ci * - start0 + 0: 66862306a36Sopenharmony_ci - Y'\ :sub:`00` 66962306a36Sopenharmony_ci - Y'\ :sub:`01` 67062306a36Sopenharmony_ci - Y'\ :sub:`02` 67162306a36Sopenharmony_ci - Y'\ :sub:`03` 67262306a36Sopenharmony_ci * - start0 + 8: 67362306a36Sopenharmony_ci - Y'\ :sub:`10` 67462306a36Sopenharmony_ci - Y'\ :sub:`11` 67562306a36Sopenharmony_ci - Y'\ :sub:`12` 67662306a36Sopenharmony_ci - Y'\ :sub:`13` 67762306a36Sopenharmony_ci * - start0 + 16: 67862306a36Sopenharmony_ci - Y'\ :sub:`20` 67962306a36Sopenharmony_ci - Y'\ :sub:`21` 68062306a36Sopenharmony_ci - Y'\ :sub:`22` 68162306a36Sopenharmony_ci - Y'\ :sub:`23` 68262306a36Sopenharmony_ci * - start0 + 24: 68362306a36Sopenharmony_ci - Y'\ :sub:`30` 68462306a36Sopenharmony_ci - Y'\ :sub:`31` 68562306a36Sopenharmony_ci - Y'\ :sub:`32` 68662306a36Sopenharmony_ci - Y'\ :sub:`33` 68762306a36Sopenharmony_ci * - 68862306a36Sopenharmony_ci * - start1 + 0: 68962306a36Sopenharmony_ci - Cb\ :sub:`00` 69062306a36Sopenharmony_ci - Cr\ :sub:`00` 69162306a36Sopenharmony_ci - Cb\ :sub:`01` 69262306a36Sopenharmony_ci - Cr\ :sub:`01` 69362306a36Sopenharmony_ci * - start1 + 8: 69462306a36Sopenharmony_ci - Cb\ :sub:`10` 69562306a36Sopenharmony_ci - Cr\ :sub:`10` 69662306a36Sopenharmony_ci - Cb\ :sub:`11` 69762306a36Sopenharmony_ci - Cr\ :sub:`11` 69862306a36Sopenharmony_ci 69962306a36Sopenharmony_ci 70062306a36Sopenharmony_ciFully Planar YUV Formats 70162306a36Sopenharmony_ci======================== 70262306a36Sopenharmony_ci 70362306a36Sopenharmony_ciThese formats store the Y, Cb and Cr components in three separate planes. The 70462306a36Sopenharmony_ciluma plane comes first, and the order of the two chroma planes varies between 70562306a36Sopenharmony_ciformats. The two chroma planes always use the same subsampling. 70662306a36Sopenharmony_ci 70762306a36Sopenharmony_ciFor memory contiguous formats, the number of padding pixels at the end of the 70862306a36Sopenharmony_cichroma lines is identical to the padding of the luma lines. The chroma line 70962306a36Sopenharmony_cistride (in bytes) is thus equal to the luma line stride divided by the 71062306a36Sopenharmony_cihorizontal subsampling factor. Vertical subsampling doesn't affect the line 71162306a36Sopenharmony_cistride. 71262306a36Sopenharmony_ci 71362306a36Sopenharmony_ciFor non-contiguous formats, no constraints are enforced by the format on the 71462306a36Sopenharmony_cirelationship between the luma and chroma line padding and stride. 71562306a36Sopenharmony_ci 71662306a36Sopenharmony_ciAll components are stored with the same number of bits per component. 71762306a36Sopenharmony_ci 71862306a36Sopenharmony_ci``V4L2_PIX_FMT_P010_4L4`` stores pixels in 4x4 tiles, and stores tiles linearly 71962306a36Sopenharmony_ciin memory. The line stride must be aligned to multiple of 8 and image height to 72062306a36Sopenharmony_cia multiple of 4. The layouts of the luma and chroma planes are identical. 72162306a36Sopenharmony_ci 72262306a36Sopenharmony_ci.. raw:: latex 72362306a36Sopenharmony_ci 72462306a36Sopenharmony_ci \small 72562306a36Sopenharmony_ci 72662306a36Sopenharmony_ci.. tabularcolumns:: |p{5.0cm}|p{1.1cm}|p{1.5cm}|p{2.2cm}|p{1.2cm}|p{3.7cm}| 72762306a36Sopenharmony_ci 72862306a36Sopenharmony_ci.. flat-table:: Overview of Fully Planar YUV Formats 72962306a36Sopenharmony_ci :header-rows: 1 73062306a36Sopenharmony_ci :stub-columns: 0 73162306a36Sopenharmony_ci 73262306a36Sopenharmony_ci * - Identifier 73362306a36Sopenharmony_ci - Code 73462306a36Sopenharmony_ci - Bits per component 73562306a36Sopenharmony_ci - Subsampling 73662306a36Sopenharmony_ci - Planes order [4]_ 73762306a36Sopenharmony_ci - Contiguous [5]_ 73862306a36Sopenharmony_ci 73962306a36Sopenharmony_ci * - V4L2_PIX_FMT_YUV410 74062306a36Sopenharmony_ci - 'YUV9' 74162306a36Sopenharmony_ci - 8 74262306a36Sopenharmony_ci - 4:1:0 74362306a36Sopenharmony_ci - Y, Cb, Cr 74462306a36Sopenharmony_ci - Yes 74562306a36Sopenharmony_ci * - V4L2_PIX_FMT_YVU410 74662306a36Sopenharmony_ci - 'YVU9' 74762306a36Sopenharmony_ci - 8 74862306a36Sopenharmony_ci - 4:1:0 74962306a36Sopenharmony_ci - Y, Cr, Cb 75062306a36Sopenharmony_ci - Yes 75162306a36Sopenharmony_ci * - V4L2_PIX_FMT_YUV411P 75262306a36Sopenharmony_ci - '411P' 75362306a36Sopenharmony_ci - 8 75462306a36Sopenharmony_ci - 4:1:1 75562306a36Sopenharmony_ci - Y, Cb, Cr 75662306a36Sopenharmony_ci - Yes 75762306a36Sopenharmony_ci * - V4L2_PIX_FMT_YUV420M 75862306a36Sopenharmony_ci - 'YM12' 75962306a36Sopenharmony_ci - 8 76062306a36Sopenharmony_ci - 4:2:0 76162306a36Sopenharmony_ci - Y, Cb, Cr 76262306a36Sopenharmony_ci - No 76362306a36Sopenharmony_ci * - V4L2_PIX_FMT_YVU420M 76462306a36Sopenharmony_ci - 'YM21' 76562306a36Sopenharmony_ci - 8 76662306a36Sopenharmony_ci - 4:2:0 76762306a36Sopenharmony_ci - Y, Cr, Cb 76862306a36Sopenharmony_ci - No 76962306a36Sopenharmony_ci * - V4L2_PIX_FMT_YUV420 77062306a36Sopenharmony_ci - 'YU12' 77162306a36Sopenharmony_ci - 8 77262306a36Sopenharmony_ci - 4:2:0 77362306a36Sopenharmony_ci - Y, Cb, Cr 77462306a36Sopenharmony_ci - Yes 77562306a36Sopenharmony_ci * - V4L2_PIX_FMT_YVU420 77662306a36Sopenharmony_ci - 'YV12' 77762306a36Sopenharmony_ci - 8 77862306a36Sopenharmony_ci - 4:2:0 77962306a36Sopenharmony_ci - Y, Cr, Cb 78062306a36Sopenharmony_ci - Yes 78162306a36Sopenharmony_ci * - V4L2_PIX_FMT_YUV422P 78262306a36Sopenharmony_ci - '422P' 78362306a36Sopenharmony_ci - 8 78462306a36Sopenharmony_ci - 4:2:2 78562306a36Sopenharmony_ci - Y, Cb, Cr 78662306a36Sopenharmony_ci - Yes 78762306a36Sopenharmony_ci * - V4L2_PIX_FMT_YUV422M 78862306a36Sopenharmony_ci - 'YM16' 78962306a36Sopenharmony_ci - 8 79062306a36Sopenharmony_ci - 4:2:2 79162306a36Sopenharmony_ci - Y, Cb, Cr 79262306a36Sopenharmony_ci - No 79362306a36Sopenharmony_ci * - V4L2_PIX_FMT_YVU422M 79462306a36Sopenharmony_ci - 'YM61' 79562306a36Sopenharmony_ci - 8 79662306a36Sopenharmony_ci - 4:2:2 79762306a36Sopenharmony_ci - Y, Cr, Cb 79862306a36Sopenharmony_ci - No 79962306a36Sopenharmony_ci * - V4L2_PIX_FMT_YUV444M 80062306a36Sopenharmony_ci - 'YM24' 80162306a36Sopenharmony_ci - 8 80262306a36Sopenharmony_ci - 4:4:4 80362306a36Sopenharmony_ci - Y, Cb, Cr 80462306a36Sopenharmony_ci - No 80562306a36Sopenharmony_ci * - V4L2_PIX_FMT_YVU444M 80662306a36Sopenharmony_ci - 'YM42' 80762306a36Sopenharmony_ci - 8 80862306a36Sopenharmony_ci - 4:4:4 80962306a36Sopenharmony_ci - Y, Cr, Cb 81062306a36Sopenharmony_ci - No 81162306a36Sopenharmony_ci 81262306a36Sopenharmony_ci.. raw:: latex 81362306a36Sopenharmony_ci 81462306a36Sopenharmony_ci \normalsize 81562306a36Sopenharmony_ci 81662306a36Sopenharmony_ci.. [4] Order of luma and chroma planes 81762306a36Sopenharmony_ci.. [5] Indicates if planes have to be contiguous in memory or can be 81862306a36Sopenharmony_ci disjoint 81962306a36Sopenharmony_ci 82062306a36Sopenharmony_ci 82162306a36Sopenharmony_ci**Color Sample Location:** 82262306a36Sopenharmony_ciChroma samples are :ref:`interstitially sited<yuv-chroma-centered>` 82362306a36Sopenharmony_cihorizontally. 82462306a36Sopenharmony_ci 82562306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YUV410: 82662306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YVU410: 82762306a36Sopenharmony_ci 82862306a36Sopenharmony_ciYUV410 and YVU410 82962306a36Sopenharmony_ci----------------- 83062306a36Sopenharmony_ci 83162306a36Sopenharmony_ciPlanar YUV 4:1:0 formats. The chroma planes are subsampled by 4 in each 83262306a36Sopenharmony_cidirection. Chroma lines contain a quarter of the number of pixels and bytes of 83362306a36Sopenharmony_cithe luma lines, and the chroma planes contain a quarter of the number of lines 83462306a36Sopenharmony_ciof the luma plane. 83562306a36Sopenharmony_ci 83662306a36Sopenharmony_ci.. flat-table:: Sample 4x4 YUV410 Image 83762306a36Sopenharmony_ci :header-rows: 0 83862306a36Sopenharmony_ci :stub-columns: 0 83962306a36Sopenharmony_ci 84062306a36Sopenharmony_ci * - start + 0: 84162306a36Sopenharmony_ci - Y'\ :sub:`00` 84262306a36Sopenharmony_ci - Y'\ :sub:`01` 84362306a36Sopenharmony_ci - Y'\ :sub:`02` 84462306a36Sopenharmony_ci - Y'\ :sub:`03` 84562306a36Sopenharmony_ci * - start + 4: 84662306a36Sopenharmony_ci - Y'\ :sub:`10` 84762306a36Sopenharmony_ci - Y'\ :sub:`11` 84862306a36Sopenharmony_ci - Y'\ :sub:`12` 84962306a36Sopenharmony_ci - Y'\ :sub:`13` 85062306a36Sopenharmony_ci * - start + 8: 85162306a36Sopenharmony_ci - Y'\ :sub:`20` 85262306a36Sopenharmony_ci - Y'\ :sub:`21` 85362306a36Sopenharmony_ci - Y'\ :sub:`22` 85462306a36Sopenharmony_ci - Y'\ :sub:`23` 85562306a36Sopenharmony_ci * - start + 12: 85662306a36Sopenharmony_ci - Y'\ :sub:`30` 85762306a36Sopenharmony_ci - Y'\ :sub:`31` 85862306a36Sopenharmony_ci - Y'\ :sub:`32` 85962306a36Sopenharmony_ci - Y'\ :sub:`33` 86062306a36Sopenharmony_ci * - start + 16: 86162306a36Sopenharmony_ci - Cr\ :sub:`00` 86262306a36Sopenharmony_ci * - start + 17: 86362306a36Sopenharmony_ci - Cb\ :sub:`00` 86462306a36Sopenharmony_ci 86562306a36Sopenharmony_ci 86662306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YUV411P: 86762306a36Sopenharmony_ci 86862306a36Sopenharmony_ciYUV411P 86962306a36Sopenharmony_ci------- 87062306a36Sopenharmony_ci 87162306a36Sopenharmony_ciPlanar YUV 4:1:1 formats. The chroma planes are subsampled by 4 in the 87262306a36Sopenharmony_cihorizontal direction. Chroma lines contain a quarter of the number of pixels 87362306a36Sopenharmony_ciand bytes of the luma lines, and the chroma planes contain the same number of 87462306a36Sopenharmony_cilines as the luma plane. 87562306a36Sopenharmony_ci 87662306a36Sopenharmony_ci.. flat-table:: Sample 4x4 YUV411P Image 87762306a36Sopenharmony_ci :header-rows: 0 87862306a36Sopenharmony_ci :stub-columns: 0 87962306a36Sopenharmony_ci 88062306a36Sopenharmony_ci * - start + 0: 88162306a36Sopenharmony_ci - Y'\ :sub:`00` 88262306a36Sopenharmony_ci - Y'\ :sub:`01` 88362306a36Sopenharmony_ci - Y'\ :sub:`02` 88462306a36Sopenharmony_ci - Y'\ :sub:`03` 88562306a36Sopenharmony_ci * - start + 4: 88662306a36Sopenharmony_ci - Y'\ :sub:`10` 88762306a36Sopenharmony_ci - Y'\ :sub:`11` 88862306a36Sopenharmony_ci - Y'\ :sub:`12` 88962306a36Sopenharmony_ci - Y'\ :sub:`13` 89062306a36Sopenharmony_ci * - start + 8: 89162306a36Sopenharmony_ci - Y'\ :sub:`20` 89262306a36Sopenharmony_ci - Y'\ :sub:`21` 89362306a36Sopenharmony_ci - Y'\ :sub:`22` 89462306a36Sopenharmony_ci - Y'\ :sub:`23` 89562306a36Sopenharmony_ci * - start + 12: 89662306a36Sopenharmony_ci - Y'\ :sub:`30` 89762306a36Sopenharmony_ci - Y'\ :sub:`31` 89862306a36Sopenharmony_ci - Y'\ :sub:`32` 89962306a36Sopenharmony_ci - Y'\ :sub:`33` 90062306a36Sopenharmony_ci * - start + 16: 90162306a36Sopenharmony_ci - Cb\ :sub:`00` 90262306a36Sopenharmony_ci * - start + 17: 90362306a36Sopenharmony_ci - Cb\ :sub:`10` 90462306a36Sopenharmony_ci * - start + 18: 90562306a36Sopenharmony_ci - Cb\ :sub:`20` 90662306a36Sopenharmony_ci * - start + 19: 90762306a36Sopenharmony_ci - Cb\ :sub:`30` 90862306a36Sopenharmony_ci * - start + 20: 90962306a36Sopenharmony_ci - Cr\ :sub:`00` 91062306a36Sopenharmony_ci * - start + 21: 91162306a36Sopenharmony_ci - Cr\ :sub:`10` 91262306a36Sopenharmony_ci * - start + 22: 91362306a36Sopenharmony_ci - Cr\ :sub:`20` 91462306a36Sopenharmony_ci * - start + 23: 91562306a36Sopenharmony_ci - Cr\ :sub:`30` 91662306a36Sopenharmony_ci 91762306a36Sopenharmony_ci 91862306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YUV420: 91962306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YVU420: 92062306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YUV420M: 92162306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YVU420M: 92262306a36Sopenharmony_ci 92362306a36Sopenharmony_ciYUV420, YVU420, YUV420M and YVU420M 92462306a36Sopenharmony_ci----------------------------------- 92562306a36Sopenharmony_ci 92662306a36Sopenharmony_ciPlanar YUV 4:2:0 formats. The chroma planes are subsampled by 2 in each 92762306a36Sopenharmony_cidirection. Chroma lines contain half of the number of pixels and bytes of the 92862306a36Sopenharmony_ciluma lines, and the chroma planes contain half of the number of lines of the 92962306a36Sopenharmony_ciluma plane. 93062306a36Sopenharmony_ci 93162306a36Sopenharmony_ci.. flat-table:: Sample 4x4 YUV420 Image 93262306a36Sopenharmony_ci :header-rows: 0 93362306a36Sopenharmony_ci :stub-columns: 0 93462306a36Sopenharmony_ci 93562306a36Sopenharmony_ci * - start + 0: 93662306a36Sopenharmony_ci - Y'\ :sub:`00` 93762306a36Sopenharmony_ci - Y'\ :sub:`01` 93862306a36Sopenharmony_ci - Y'\ :sub:`02` 93962306a36Sopenharmony_ci - Y'\ :sub:`03` 94062306a36Sopenharmony_ci * - start + 4: 94162306a36Sopenharmony_ci - Y'\ :sub:`10` 94262306a36Sopenharmony_ci - Y'\ :sub:`11` 94362306a36Sopenharmony_ci - Y'\ :sub:`12` 94462306a36Sopenharmony_ci - Y'\ :sub:`13` 94562306a36Sopenharmony_ci * - start + 8: 94662306a36Sopenharmony_ci - Y'\ :sub:`20` 94762306a36Sopenharmony_ci - Y'\ :sub:`21` 94862306a36Sopenharmony_ci - Y'\ :sub:`22` 94962306a36Sopenharmony_ci - Y'\ :sub:`23` 95062306a36Sopenharmony_ci * - start + 12: 95162306a36Sopenharmony_ci - Y'\ :sub:`30` 95262306a36Sopenharmony_ci - Y'\ :sub:`31` 95362306a36Sopenharmony_ci - Y'\ :sub:`32` 95462306a36Sopenharmony_ci - Y'\ :sub:`33` 95562306a36Sopenharmony_ci * - start + 16: 95662306a36Sopenharmony_ci - Cr\ :sub:`00` 95762306a36Sopenharmony_ci - Cr\ :sub:`01` 95862306a36Sopenharmony_ci * - start + 18: 95962306a36Sopenharmony_ci - Cr\ :sub:`10` 96062306a36Sopenharmony_ci - Cr\ :sub:`11` 96162306a36Sopenharmony_ci * - start + 20: 96262306a36Sopenharmony_ci - Cb\ :sub:`00` 96362306a36Sopenharmony_ci - Cb\ :sub:`01` 96462306a36Sopenharmony_ci * - start + 22: 96562306a36Sopenharmony_ci - Cb\ :sub:`10` 96662306a36Sopenharmony_ci - Cb\ :sub:`11` 96762306a36Sopenharmony_ci 96862306a36Sopenharmony_ci.. flat-table:: Sample 4x4 YUV420M Image 96962306a36Sopenharmony_ci :header-rows: 0 97062306a36Sopenharmony_ci :stub-columns: 0 97162306a36Sopenharmony_ci 97262306a36Sopenharmony_ci * - start0 + 0: 97362306a36Sopenharmony_ci - Y'\ :sub:`00` 97462306a36Sopenharmony_ci - Y'\ :sub:`01` 97562306a36Sopenharmony_ci - Y'\ :sub:`02` 97662306a36Sopenharmony_ci - Y'\ :sub:`03` 97762306a36Sopenharmony_ci * - start0 + 4: 97862306a36Sopenharmony_ci - Y'\ :sub:`10` 97962306a36Sopenharmony_ci - Y'\ :sub:`11` 98062306a36Sopenharmony_ci - Y'\ :sub:`12` 98162306a36Sopenharmony_ci - Y'\ :sub:`13` 98262306a36Sopenharmony_ci * - start0 + 8: 98362306a36Sopenharmony_ci - Y'\ :sub:`20` 98462306a36Sopenharmony_ci - Y'\ :sub:`21` 98562306a36Sopenharmony_ci - Y'\ :sub:`22` 98662306a36Sopenharmony_ci - Y'\ :sub:`23` 98762306a36Sopenharmony_ci * - start0 + 12: 98862306a36Sopenharmony_ci - Y'\ :sub:`30` 98962306a36Sopenharmony_ci - Y'\ :sub:`31` 99062306a36Sopenharmony_ci - Y'\ :sub:`32` 99162306a36Sopenharmony_ci - Y'\ :sub:`33` 99262306a36Sopenharmony_ci * - 99362306a36Sopenharmony_ci * - start1 + 0: 99462306a36Sopenharmony_ci - Cb\ :sub:`00` 99562306a36Sopenharmony_ci - Cb\ :sub:`01` 99662306a36Sopenharmony_ci * - start1 + 2: 99762306a36Sopenharmony_ci - Cb\ :sub:`10` 99862306a36Sopenharmony_ci - Cb\ :sub:`11` 99962306a36Sopenharmony_ci * - 100062306a36Sopenharmony_ci * - start2 + 0: 100162306a36Sopenharmony_ci - Cr\ :sub:`00` 100262306a36Sopenharmony_ci - Cr\ :sub:`01` 100362306a36Sopenharmony_ci * - start2 + 2: 100462306a36Sopenharmony_ci - Cr\ :sub:`10` 100562306a36Sopenharmony_ci - Cr\ :sub:`11` 100662306a36Sopenharmony_ci 100762306a36Sopenharmony_ci 100862306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YUV422P: 100962306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YUV422M: 101062306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YVU422M: 101162306a36Sopenharmony_ci 101262306a36Sopenharmony_ciYUV422P, YUV422M and YVU422M 101362306a36Sopenharmony_ci---------------------------- 101462306a36Sopenharmony_ci 101562306a36Sopenharmony_ciPlanar YUV 4:2:2 formats. The chroma planes are subsampled by 2 in the 101662306a36Sopenharmony_cihorizontal direction. Chroma lines contain half of the number of pixels and 101762306a36Sopenharmony_cibytes of the luma lines, and the chroma planes contain the same number of lines 101862306a36Sopenharmony_cias the luma plane. 101962306a36Sopenharmony_ci 102062306a36Sopenharmony_ci.. flat-table:: Sample 4x4 YUV422P Image 102162306a36Sopenharmony_ci :header-rows: 0 102262306a36Sopenharmony_ci :stub-columns: 0 102362306a36Sopenharmony_ci 102462306a36Sopenharmony_ci * - start + 0: 102562306a36Sopenharmony_ci - Y'\ :sub:`00` 102662306a36Sopenharmony_ci - Y'\ :sub:`01` 102762306a36Sopenharmony_ci - Y'\ :sub:`02` 102862306a36Sopenharmony_ci - Y'\ :sub:`03` 102962306a36Sopenharmony_ci * - start + 4: 103062306a36Sopenharmony_ci - Y'\ :sub:`10` 103162306a36Sopenharmony_ci - Y'\ :sub:`11` 103262306a36Sopenharmony_ci - Y'\ :sub:`12` 103362306a36Sopenharmony_ci - Y'\ :sub:`13` 103462306a36Sopenharmony_ci * - start + 8: 103562306a36Sopenharmony_ci - Y'\ :sub:`20` 103662306a36Sopenharmony_ci - Y'\ :sub:`21` 103762306a36Sopenharmony_ci - Y'\ :sub:`22` 103862306a36Sopenharmony_ci - Y'\ :sub:`23` 103962306a36Sopenharmony_ci * - start + 12: 104062306a36Sopenharmony_ci - Y'\ :sub:`30` 104162306a36Sopenharmony_ci - Y'\ :sub:`31` 104262306a36Sopenharmony_ci - Y'\ :sub:`32` 104362306a36Sopenharmony_ci - Y'\ :sub:`33` 104462306a36Sopenharmony_ci * - start + 16: 104562306a36Sopenharmony_ci - Cb\ :sub:`00` 104662306a36Sopenharmony_ci - Cb\ :sub:`01` 104762306a36Sopenharmony_ci * - start + 18: 104862306a36Sopenharmony_ci - Cb\ :sub:`10` 104962306a36Sopenharmony_ci - Cb\ :sub:`11` 105062306a36Sopenharmony_ci * - start + 20: 105162306a36Sopenharmony_ci - Cb\ :sub:`20` 105262306a36Sopenharmony_ci - Cb\ :sub:`21` 105362306a36Sopenharmony_ci * - start + 22: 105462306a36Sopenharmony_ci - Cb\ :sub:`30` 105562306a36Sopenharmony_ci - Cb\ :sub:`31` 105662306a36Sopenharmony_ci * - start + 24: 105762306a36Sopenharmony_ci - Cr\ :sub:`00` 105862306a36Sopenharmony_ci - Cr\ :sub:`01` 105962306a36Sopenharmony_ci * - start + 26: 106062306a36Sopenharmony_ci - Cr\ :sub:`10` 106162306a36Sopenharmony_ci - Cr\ :sub:`11` 106262306a36Sopenharmony_ci * - start + 28: 106362306a36Sopenharmony_ci - Cr\ :sub:`20` 106462306a36Sopenharmony_ci - Cr\ :sub:`21` 106562306a36Sopenharmony_ci * - start + 30: 106662306a36Sopenharmony_ci - Cr\ :sub:`30` 106762306a36Sopenharmony_ci - Cr\ :sub:`31` 106862306a36Sopenharmony_ci 106962306a36Sopenharmony_ci.. flat-table:: Sample 4x4 YUV422M Image 107062306a36Sopenharmony_ci :header-rows: 0 107162306a36Sopenharmony_ci :stub-columns: 0 107262306a36Sopenharmony_ci 107362306a36Sopenharmony_ci * - start0 + 0: 107462306a36Sopenharmony_ci - Y'\ :sub:`00` 107562306a36Sopenharmony_ci - Y'\ :sub:`01` 107662306a36Sopenharmony_ci - Y'\ :sub:`02` 107762306a36Sopenharmony_ci - Y'\ :sub:`03` 107862306a36Sopenharmony_ci * - start0 + 4: 107962306a36Sopenharmony_ci - Y'\ :sub:`10` 108062306a36Sopenharmony_ci - Y'\ :sub:`11` 108162306a36Sopenharmony_ci - Y'\ :sub:`12` 108262306a36Sopenharmony_ci - Y'\ :sub:`13` 108362306a36Sopenharmony_ci * - start0 + 8: 108462306a36Sopenharmony_ci - Y'\ :sub:`20` 108562306a36Sopenharmony_ci - Y'\ :sub:`21` 108662306a36Sopenharmony_ci - Y'\ :sub:`22` 108762306a36Sopenharmony_ci - Y'\ :sub:`23` 108862306a36Sopenharmony_ci * - start0 + 12: 108962306a36Sopenharmony_ci - Y'\ :sub:`30` 109062306a36Sopenharmony_ci - Y'\ :sub:`31` 109162306a36Sopenharmony_ci - Y'\ :sub:`32` 109262306a36Sopenharmony_ci - Y'\ :sub:`33` 109362306a36Sopenharmony_ci * - 109462306a36Sopenharmony_ci * - start1 + 0: 109562306a36Sopenharmony_ci - Cb\ :sub:`00` 109662306a36Sopenharmony_ci - Cb\ :sub:`01` 109762306a36Sopenharmony_ci * - start1 + 2: 109862306a36Sopenharmony_ci - Cb\ :sub:`10` 109962306a36Sopenharmony_ci - Cb\ :sub:`11` 110062306a36Sopenharmony_ci * - start1 + 4: 110162306a36Sopenharmony_ci - Cb\ :sub:`20` 110262306a36Sopenharmony_ci - Cb\ :sub:`21` 110362306a36Sopenharmony_ci * - start1 + 6: 110462306a36Sopenharmony_ci - Cb\ :sub:`30` 110562306a36Sopenharmony_ci - Cb\ :sub:`31` 110662306a36Sopenharmony_ci * - 110762306a36Sopenharmony_ci * - start2 + 0: 110862306a36Sopenharmony_ci - Cr\ :sub:`00` 110962306a36Sopenharmony_ci - Cr\ :sub:`01` 111062306a36Sopenharmony_ci * - start2 + 2: 111162306a36Sopenharmony_ci - Cr\ :sub:`10` 111262306a36Sopenharmony_ci - Cr\ :sub:`11` 111362306a36Sopenharmony_ci * - start2 + 4: 111462306a36Sopenharmony_ci - Cr\ :sub:`20` 111562306a36Sopenharmony_ci - Cr\ :sub:`21` 111662306a36Sopenharmony_ci * - start2 + 6: 111762306a36Sopenharmony_ci - Cr\ :sub:`30` 111862306a36Sopenharmony_ci - Cr\ :sub:`31` 111962306a36Sopenharmony_ci 112062306a36Sopenharmony_ci 112162306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YUV444M: 112262306a36Sopenharmony_ci.. _V4L2-PIX-FMT-YVU444M: 112362306a36Sopenharmony_ci 112462306a36Sopenharmony_ciYUV444M and YVU444M 112562306a36Sopenharmony_ci------------------- 112662306a36Sopenharmony_ci 112762306a36Sopenharmony_ciPlanar YUV 4:4:4 formats. The chroma planes are no subsampled. Chroma lines 112862306a36Sopenharmony_cicontain the same number of pixels and bytes of the luma lines, and the chroma 112962306a36Sopenharmony_ciplanes contain the same number of lines as the luma plane. 113062306a36Sopenharmony_ci 113162306a36Sopenharmony_ci.. flat-table:: Sample 4x4 YUV444M Image 113262306a36Sopenharmony_ci :header-rows: 0 113362306a36Sopenharmony_ci :stub-columns: 0 113462306a36Sopenharmony_ci 113562306a36Sopenharmony_ci * - start0 + 0: 113662306a36Sopenharmony_ci - Y'\ :sub:`00` 113762306a36Sopenharmony_ci - Y'\ :sub:`01` 113862306a36Sopenharmony_ci - Y'\ :sub:`02` 113962306a36Sopenharmony_ci - Y'\ :sub:`03` 114062306a36Sopenharmony_ci * - start0 + 4: 114162306a36Sopenharmony_ci - Y'\ :sub:`10` 114262306a36Sopenharmony_ci - Y'\ :sub:`11` 114362306a36Sopenharmony_ci - Y'\ :sub:`12` 114462306a36Sopenharmony_ci - Y'\ :sub:`13` 114562306a36Sopenharmony_ci * - start0 + 8: 114662306a36Sopenharmony_ci - Y'\ :sub:`20` 114762306a36Sopenharmony_ci - Y'\ :sub:`21` 114862306a36Sopenharmony_ci - Y'\ :sub:`22` 114962306a36Sopenharmony_ci - Y'\ :sub:`23` 115062306a36Sopenharmony_ci * - start0 + 12: 115162306a36Sopenharmony_ci - Y'\ :sub:`30` 115262306a36Sopenharmony_ci - Y'\ :sub:`31` 115362306a36Sopenharmony_ci - Y'\ :sub:`32` 115462306a36Sopenharmony_ci - Y'\ :sub:`33` 115562306a36Sopenharmony_ci * - 115662306a36Sopenharmony_ci * - start1 + 0: 115762306a36Sopenharmony_ci - Cb\ :sub:`00` 115862306a36Sopenharmony_ci - Cb\ :sub:`01` 115962306a36Sopenharmony_ci - Cb\ :sub:`02` 116062306a36Sopenharmony_ci - Cb\ :sub:`03` 116162306a36Sopenharmony_ci * - start1 + 4: 116262306a36Sopenharmony_ci - Cb\ :sub:`10` 116362306a36Sopenharmony_ci - Cb\ :sub:`11` 116462306a36Sopenharmony_ci - Cb\ :sub:`12` 116562306a36Sopenharmony_ci - Cb\ :sub:`13` 116662306a36Sopenharmony_ci * - start1 + 8: 116762306a36Sopenharmony_ci - Cb\ :sub:`20` 116862306a36Sopenharmony_ci - Cb\ :sub:`21` 116962306a36Sopenharmony_ci - Cb\ :sub:`22` 117062306a36Sopenharmony_ci - Cb\ :sub:`23` 117162306a36Sopenharmony_ci * - start1 + 12: 117262306a36Sopenharmony_ci - Cb\ :sub:`20` 117362306a36Sopenharmony_ci - Cb\ :sub:`21` 117462306a36Sopenharmony_ci - Cb\ :sub:`32` 117562306a36Sopenharmony_ci - Cb\ :sub:`33` 117662306a36Sopenharmony_ci * - 117762306a36Sopenharmony_ci * - start2 + 0: 117862306a36Sopenharmony_ci - Cr\ :sub:`00` 117962306a36Sopenharmony_ci - Cr\ :sub:`01` 118062306a36Sopenharmony_ci - Cr\ :sub:`02` 118162306a36Sopenharmony_ci - Cr\ :sub:`03` 118262306a36Sopenharmony_ci * - start2 + 4: 118362306a36Sopenharmony_ci - Cr\ :sub:`10` 118462306a36Sopenharmony_ci - Cr\ :sub:`11` 118562306a36Sopenharmony_ci - Cr\ :sub:`12` 118662306a36Sopenharmony_ci - Cr\ :sub:`13` 118762306a36Sopenharmony_ci * - start2 + 8: 118862306a36Sopenharmony_ci - Cr\ :sub:`20` 118962306a36Sopenharmony_ci - Cr\ :sub:`21` 119062306a36Sopenharmony_ci - Cr\ :sub:`22` 119162306a36Sopenharmony_ci - Cr\ :sub:`23` 119262306a36Sopenharmony_ci * - start2 + 12: 119362306a36Sopenharmony_ci - Cr\ :sub:`30` 119462306a36Sopenharmony_ci - Cr\ :sub:`31` 119562306a36Sopenharmony_ci - Cr\ :sub:`32` 119662306a36Sopenharmony_ci - Cr\ :sub:`33` 1197