162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci.. _packed-yuv: 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci****************** 662306a36Sopenharmony_ciPacked YUV formats 762306a36Sopenharmony_ci****************** 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciSimilarly to the packed RGB formats, the packed YUV formats store the Y, Cb and 1062306a36Sopenharmony_ciCr components consecutively in memory. They may apply subsampling to the chroma 1162306a36Sopenharmony_cicomponents and thus differ in how they interlave the three components. 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci.. note:: 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci - In all the tables that follow, bit 7 is the most significant bit in a byte. 1662306a36Sopenharmony_ci - 'Y', 'Cb' and 'Cr' denote bits of the luma, blue chroma (also known as 1762306a36Sopenharmony_ci 'U') and red chroma (also known as 'V') components respectively. 'A' 1862306a36Sopenharmony_ci denotes bits of the alpha component (if supported by the format), and 'X' 1962306a36Sopenharmony_ci denotes padding bits. 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci4:4:4 Subsampling 2362306a36Sopenharmony_ci================= 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ciThese formats do not subsample the chroma components and store each pixels as a 2662306a36Sopenharmony_cifull triplet of Y, Cb and Cr values. 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciThe next table lists the packed YUV 4:4:4 formats with less than 8 bits per 2962306a36Sopenharmony_cicomponent. They are named based on the order of the Y, Cb and Cr components as 3062306a36Sopenharmony_ciseen in a 16-bit word, which is then stored in memory in little endian byte 3162306a36Sopenharmony_ciorder, and on the number of bits for each component. For instance the YUV565 3262306a36Sopenharmony_ciformat stores a pixel in a 16-bit word [15:0] laid out at as [Y'\ :sub:`4-0` 3362306a36Sopenharmony_ciCb\ :sub:`5-0` Cr\ :sub:`4-0`], and stored in memory in two bytes, 3462306a36Sopenharmony_ci[Cb\ :sub:`2-0` Cr\ :sub:`4-0`] followed by [Y'\ :sub:`4-0` Cb\ :sub:`5-3`]. 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci.. raw:: latex 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci \begingroup 3962306a36Sopenharmony_ci \scriptsize 4062306a36Sopenharmony_ci \setlength{\tabcolsep}{2pt} 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci.. tabularcolumns:: |p{3.5cm}|p{0.96cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}|p{0.52cm}| 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci.. flat-table:: Packed YUV 4:4:4 Image Formats (less than 8bpc) 4562306a36Sopenharmony_ci :header-rows: 2 4662306a36Sopenharmony_ci :stub-columns: 0 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci * - Identifier 4962306a36Sopenharmony_ci - Code 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci - :cspan:`7` Byte 0 in memory 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci - :cspan:`7` Byte 1 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci * - 5662306a36Sopenharmony_ci - 5762306a36Sopenharmony_ci - 7 5862306a36Sopenharmony_ci - 6 5962306a36Sopenharmony_ci - 5 6062306a36Sopenharmony_ci - 4 6162306a36Sopenharmony_ci - 3 6262306a36Sopenharmony_ci - 2 6362306a36Sopenharmony_ci - 1 6462306a36Sopenharmony_ci - 0 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci - 7 6762306a36Sopenharmony_ci - 6 6862306a36Sopenharmony_ci - 5 6962306a36Sopenharmony_ci - 4 7062306a36Sopenharmony_ci - 3 7162306a36Sopenharmony_ci - 2 7262306a36Sopenharmony_ci - 1 7362306a36Sopenharmony_ci - 0 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-YUV444: 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci - ``V4L2_PIX_FMT_YUV444`` 7862306a36Sopenharmony_ci - 'Y444' 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci - Cb\ :sub:`3` 8162306a36Sopenharmony_ci - Cb\ :sub:`2` 8262306a36Sopenharmony_ci - Cb\ :sub:`1` 8362306a36Sopenharmony_ci - Cb\ :sub:`0` 8462306a36Sopenharmony_ci - Cr\ :sub:`3` 8562306a36Sopenharmony_ci - Cr\ :sub:`2` 8662306a36Sopenharmony_ci - Cr\ :sub:`1` 8762306a36Sopenharmony_ci - Cr\ :sub:`0` 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci - a\ :sub:`3` 9062306a36Sopenharmony_ci - a\ :sub:`2` 9162306a36Sopenharmony_ci - a\ :sub:`1` 9262306a36Sopenharmony_ci - a\ :sub:`0` 9362306a36Sopenharmony_ci - Y'\ :sub:`3` 9462306a36Sopenharmony_ci - Y'\ :sub:`2` 9562306a36Sopenharmony_ci - Y'\ :sub:`1` 9662306a36Sopenharmony_ci - Y'\ :sub:`0` 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-YUV555: 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci - ``V4L2_PIX_FMT_YUV555`` 10162306a36Sopenharmony_ci - 'YUVO' 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci - Cb\ :sub:`2` 10462306a36Sopenharmony_ci - Cb\ :sub:`1` 10562306a36Sopenharmony_ci - Cb\ :sub:`0` 10662306a36Sopenharmony_ci - Cr\ :sub:`4` 10762306a36Sopenharmony_ci - Cr\ :sub:`3` 10862306a36Sopenharmony_ci - Cr\ :sub:`2` 10962306a36Sopenharmony_ci - Cr\ :sub:`1` 11062306a36Sopenharmony_ci - Cr\ :sub:`0` 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci - a 11362306a36Sopenharmony_ci - Y'\ :sub:`4` 11462306a36Sopenharmony_ci - Y'\ :sub:`3` 11562306a36Sopenharmony_ci - Y'\ :sub:`2` 11662306a36Sopenharmony_ci - Y'\ :sub:`1` 11762306a36Sopenharmony_ci - Y'\ :sub:`0` 11862306a36Sopenharmony_ci - Cb\ :sub:`4` 11962306a36Sopenharmony_ci - Cb\ :sub:`3` 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-YUV565: 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci - ``V4L2_PIX_FMT_YUV565`` 12462306a36Sopenharmony_ci - 'YUVP' 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci - Cb\ :sub:`2` 12762306a36Sopenharmony_ci - Cb\ :sub:`1` 12862306a36Sopenharmony_ci - Cb\ :sub:`0` 12962306a36Sopenharmony_ci - Cr\ :sub:`4` 13062306a36Sopenharmony_ci - Cr\ :sub:`3` 13162306a36Sopenharmony_ci - Cr\ :sub:`2` 13262306a36Sopenharmony_ci - Cr\ :sub:`1` 13362306a36Sopenharmony_ci - Cr\ :sub:`0` 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci - Y'\ :sub:`4` 13662306a36Sopenharmony_ci - Y'\ :sub:`3` 13762306a36Sopenharmony_ci - Y'\ :sub:`2` 13862306a36Sopenharmony_ci - Y'\ :sub:`1` 13962306a36Sopenharmony_ci - Y'\ :sub:`0` 14062306a36Sopenharmony_ci - Cb\ :sub:`5` 14162306a36Sopenharmony_ci - Cb\ :sub:`4` 14262306a36Sopenharmony_ci - Cb\ :sub:`3` 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci.. raw:: latex 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci \endgroup 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci.. note:: 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci For the YUV444 and YUV555 formats, the value of alpha bits is undefined 15162306a36Sopenharmony_ci when reading from the driver, ignored when writing to the driver, except 15262306a36Sopenharmony_ci when alpha blending has been negotiated for a :ref:`Video Overlay 15362306a36Sopenharmony_ci <overlay>` or :ref:`Video Output Overlay <osd>`. 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ciThe next table lists the packed YUV 4:4:4 formats with 8 bits per component. 15762306a36Sopenharmony_ciThey are named based on the order of the Y, Cb and Cr components as stored in 15862306a36Sopenharmony_cimemory, and on the total number of bits per pixel. For instance, the VUYX32 15962306a36Sopenharmony_ciformat stores a pixel with Cr\ :sub:`7-0` in the first byte, Cb\ :sub:`7-0` in 16062306a36Sopenharmony_cithe second byte and Y'\ :sub:`7-0` in the third byte. 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci.. flat-table:: Packed YUV Image Formats (8bpc) 16362306a36Sopenharmony_ci :header-rows: 1 16462306a36Sopenharmony_ci :stub-columns: 0 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci * - Identifier 16762306a36Sopenharmony_ci - Code 16862306a36Sopenharmony_ci - Byte 0 16962306a36Sopenharmony_ci - Byte 1 17062306a36Sopenharmony_ci - Byte 2 17162306a36Sopenharmony_ci - Byte 3 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-YUV32: 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci - ``V4L2_PIX_FMT_YUV32`` 17662306a36Sopenharmony_ci - 'YUV4' 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci - A\ :sub:`7-0` 17962306a36Sopenharmony_ci - Y'\ :sub:`7-0` 18062306a36Sopenharmony_ci - Cb\ :sub:`7-0` 18162306a36Sopenharmony_ci - Cr\ :sub:`7-0` 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-AYUV32: 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci - ``V4L2_PIX_FMT_AYUV32`` 18662306a36Sopenharmony_ci - 'AYUV' 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci - A\ :sub:`7-0` 18962306a36Sopenharmony_ci - Y'\ :sub:`7-0` 19062306a36Sopenharmony_ci - Cb\ :sub:`7-0` 19162306a36Sopenharmony_ci - Cr\ :sub:`7-0` 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-XYUV32: 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci - ``V4L2_PIX_FMT_XYUV32`` 19662306a36Sopenharmony_ci - 'XYUV' 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ci - X\ :sub:`7-0` 19962306a36Sopenharmony_ci - Y'\ :sub:`7-0` 20062306a36Sopenharmony_ci - Cb\ :sub:`7-0` 20162306a36Sopenharmony_ci - Cr\ :sub:`7-0` 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-VUYA32: 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci - ``V4L2_PIX_FMT_VUYA32`` 20662306a36Sopenharmony_ci - 'VUYA' 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci - Cr\ :sub:`7-0` 20962306a36Sopenharmony_ci - Cb\ :sub:`7-0` 21062306a36Sopenharmony_ci - Y'\ :sub:`7-0` 21162306a36Sopenharmony_ci - A\ :sub:`7-0` 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-VUYX32: 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ci - ``V4L2_PIX_FMT_VUYX32`` 21662306a36Sopenharmony_ci - 'VUYX' 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ci - Cr\ :sub:`7-0` 21962306a36Sopenharmony_ci - Cb\ :sub:`7-0` 22062306a36Sopenharmony_ci - Y'\ :sub:`7-0` 22162306a36Sopenharmony_ci - X\ :sub:`7-0` 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-YUVA32: 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ci - ``V4L2_PIX_FMT_YUVA32`` 22662306a36Sopenharmony_ci - 'YUVA' 22762306a36Sopenharmony_ci 22862306a36Sopenharmony_ci - Y'\ :sub:`7-0` 22962306a36Sopenharmony_ci - Cb\ :sub:`7-0` 23062306a36Sopenharmony_ci - Cr\ :sub:`7-0` 23162306a36Sopenharmony_ci - A\ :sub:`7-0` 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-YUVX32: 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci - ``V4L2_PIX_FMT_YUVX32`` 23662306a36Sopenharmony_ci - 'YUVX' 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci - Y'\ :sub:`7-0` 23962306a36Sopenharmony_ci - Cb\ :sub:`7-0` 24062306a36Sopenharmony_ci - Cr\ :sub:`7-0` 24162306a36Sopenharmony_ci - X\ :sub:`7-0` 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-YUV24: 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ci - ``V4L2_PIX_FMT_YUV24`` 24662306a36Sopenharmony_ci - 'YUV3' 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ci - Y'\ :sub:`7-0` 24962306a36Sopenharmony_ci - Cb\ :sub:`7-0` 25062306a36Sopenharmony_ci - Cr\ :sub:`7-0` 25162306a36Sopenharmony_ci - -\ 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci.. note:: 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ci - The alpha component is expected to contain a meaningful value that can be 25662306a36Sopenharmony_ci used by drivers and applications. 25762306a36Sopenharmony_ci - The padding bits contain undefined values that must be ignored by all 25862306a36Sopenharmony_ci applications and drivers. 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ciThe next table lists the packed YUV 4:4:4 formats with 12 bits per component. 26162306a36Sopenharmony_ciExpand the bits per component to 16 bits, data in the high bits, zeros in the low bits, 26262306a36Sopenharmony_ciarranged in little endian order, storing 1 pixel in 6 bytes. 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ci.. flat-table:: Packed YUV 4:4:4 Image Formats (12bpc) 26562306a36Sopenharmony_ci :header-rows: 1 26662306a36Sopenharmony_ci :stub-columns: 0 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ci * - Identifier 26962306a36Sopenharmony_ci - Code 27062306a36Sopenharmony_ci - Byte 1-0 27162306a36Sopenharmony_ci - Byte 3-2 27262306a36Sopenharmony_ci - Byte 5-4 27362306a36Sopenharmony_ci - Byte 7-6 27462306a36Sopenharmony_ci - Byte 9-8 27562306a36Sopenharmony_ci - Byte 11-10 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-YUV48-12: 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ci - ``V4L2_PIX_FMT_YUV48_12`` 28062306a36Sopenharmony_ci - 'Y312' 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ci - Y'\ :sub:`0` 28362306a36Sopenharmony_ci - Cb\ :sub:`0` 28462306a36Sopenharmony_ci - Cr\ :sub:`0` 28562306a36Sopenharmony_ci - Y'\ :sub:`1` 28662306a36Sopenharmony_ci - Cb\ :sub:`1` 28762306a36Sopenharmony_ci - Cr\ :sub:`1` 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci4:2:2 Subsampling 29062306a36Sopenharmony_ci================= 29162306a36Sopenharmony_ci 29262306a36Sopenharmony_ciThese formats, commonly referred to as YUYV or YUY2, subsample the chroma 29362306a36Sopenharmony_cicomponents horizontally by 2, storing 2 pixels in a container. The container 29462306a36Sopenharmony_ciis 32-bits for 8-bit formats, and 64-bits for 10+-bit formats. 29562306a36Sopenharmony_ci 29662306a36Sopenharmony_ciThe packed YUYV formats with more than 8 bits per component are stored as four 29762306a36Sopenharmony_ci16-bit little-endian words. Each word's most significant bits contain one 29862306a36Sopenharmony_cicomponent, and the least significant bits are zero padding. 29962306a36Sopenharmony_ci 30062306a36Sopenharmony_ci.. raw:: latex 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ci \footnotesize 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ci.. tabularcolumns:: |p{3.4cm}|p{1.2cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}| 30562306a36Sopenharmony_ci 30662306a36Sopenharmony_ci.. flat-table:: Packed YUV 4:2:2 Formats in 32-bit container 30762306a36Sopenharmony_ci :header-rows: 1 30862306a36Sopenharmony_ci :stub-columns: 0 30962306a36Sopenharmony_ci 31062306a36Sopenharmony_ci * - Identifier 31162306a36Sopenharmony_ci - Code 31262306a36Sopenharmony_ci - Byte 0 31362306a36Sopenharmony_ci - Byte 1 31462306a36Sopenharmony_ci - Byte 2 31562306a36Sopenharmony_ci - Byte 3 31662306a36Sopenharmony_ci - Byte 4 31762306a36Sopenharmony_ci - Byte 5 31862306a36Sopenharmony_ci - Byte 6 31962306a36Sopenharmony_ci - Byte 7 32062306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-UYVY: 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ci - ``V4L2_PIX_FMT_UYVY`` 32362306a36Sopenharmony_ci - 'UYVY' 32462306a36Sopenharmony_ci 32562306a36Sopenharmony_ci - Cb\ :sub:`0` 32662306a36Sopenharmony_ci - Y'\ :sub:`0` 32762306a36Sopenharmony_ci - Cr\ :sub:`0` 32862306a36Sopenharmony_ci - Y'\ :sub:`1` 32962306a36Sopenharmony_ci - Cb\ :sub:`2` 33062306a36Sopenharmony_ci - Y'\ :sub:`2` 33162306a36Sopenharmony_ci - Cr\ :sub:`2` 33262306a36Sopenharmony_ci - Y'\ :sub:`3` 33362306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-VYUY: 33462306a36Sopenharmony_ci 33562306a36Sopenharmony_ci - ``V4L2_PIX_FMT_VYUY`` 33662306a36Sopenharmony_ci - 'VYUY' 33762306a36Sopenharmony_ci 33862306a36Sopenharmony_ci - Cr\ :sub:`0` 33962306a36Sopenharmony_ci - Y'\ :sub:`0` 34062306a36Sopenharmony_ci - Cb\ :sub:`0` 34162306a36Sopenharmony_ci - Y'\ :sub:`1` 34262306a36Sopenharmony_ci - Cr\ :sub:`2` 34362306a36Sopenharmony_ci - Y'\ :sub:`2` 34462306a36Sopenharmony_ci - Cb\ :sub:`2` 34562306a36Sopenharmony_ci - Y'\ :sub:`3` 34662306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-YUYV: 34762306a36Sopenharmony_ci 34862306a36Sopenharmony_ci - ``V4L2_PIX_FMT_YUYV`` 34962306a36Sopenharmony_ci - 'YUYV' 35062306a36Sopenharmony_ci 35162306a36Sopenharmony_ci - Y'\ :sub:`0` 35262306a36Sopenharmony_ci - Cb\ :sub:`0` 35362306a36Sopenharmony_ci - Y'\ :sub:`1` 35462306a36Sopenharmony_ci - Cr\ :sub:`0` 35562306a36Sopenharmony_ci - Y'\ :sub:`2` 35662306a36Sopenharmony_ci - Cb\ :sub:`2` 35762306a36Sopenharmony_ci - Y'\ :sub:`3` 35862306a36Sopenharmony_ci - Cr\ :sub:`2` 35962306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-YVYU: 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci - ``V4L2_PIX_FMT_YVYU`` 36262306a36Sopenharmony_ci - 'YVYU' 36362306a36Sopenharmony_ci 36462306a36Sopenharmony_ci - Y'\ :sub:`0` 36562306a36Sopenharmony_ci - Cr\ :sub:`0` 36662306a36Sopenharmony_ci - Y'\ :sub:`1` 36762306a36Sopenharmony_ci - Cb\ :sub:`0` 36862306a36Sopenharmony_ci - Y'\ :sub:`2` 36962306a36Sopenharmony_ci - Cr\ :sub:`2` 37062306a36Sopenharmony_ci - Y'\ :sub:`3` 37162306a36Sopenharmony_ci - Cb\ :sub:`2` 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ci.. tabularcolumns:: |p{3.4cm}|p{1.2cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}| 37462306a36Sopenharmony_ci 37562306a36Sopenharmony_ci.. flat-table:: Packed YUV 4:2:2 Formats in 64-bit container 37662306a36Sopenharmony_ci :header-rows: 1 37762306a36Sopenharmony_ci :stub-columns: 0 37862306a36Sopenharmony_ci 37962306a36Sopenharmony_ci * - Identifier 38062306a36Sopenharmony_ci - Code 38162306a36Sopenharmony_ci - Word 0 38262306a36Sopenharmony_ci - Word 1 38362306a36Sopenharmony_ci - Word 2 38462306a36Sopenharmony_ci - Word 3 38562306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-Y210: 38662306a36Sopenharmony_ci 38762306a36Sopenharmony_ci - ``V4L2_PIX_FMT_Y210`` 38862306a36Sopenharmony_ci - 'Y210' 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ci - Y'\ :sub:`0` (bits 15-6) 39162306a36Sopenharmony_ci - Cb\ :sub:`0` (bits 15-6) 39262306a36Sopenharmony_ci - Y'\ :sub:`1` (bits 15-6) 39362306a36Sopenharmony_ci - Cr\ :sub:`0` (bits 15-6) 39462306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-Y212: 39562306a36Sopenharmony_ci 39662306a36Sopenharmony_ci - ``V4L2_PIX_FMT_Y212`` 39762306a36Sopenharmony_ci - 'Y212' 39862306a36Sopenharmony_ci 39962306a36Sopenharmony_ci - Y'\ :sub:`0` (bits 15-4) 40062306a36Sopenharmony_ci - Cb\ :sub:`0` (bits 15-4) 40162306a36Sopenharmony_ci - Y'\ :sub:`1` (bits 15-4) 40262306a36Sopenharmony_ci - Cr\ :sub:`0` (bits 15-4) 40362306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-Y216: 40462306a36Sopenharmony_ci 40562306a36Sopenharmony_ci - ``V4L2_PIX_FMT_Y216`` 40662306a36Sopenharmony_ci - 'Y216' 40762306a36Sopenharmony_ci 40862306a36Sopenharmony_ci - Y'\ :sub:`0` (bits 15-0) 40962306a36Sopenharmony_ci - Cb\ :sub:`0` (bits 15-0) 41062306a36Sopenharmony_ci - Y'\ :sub:`1` (bits 15-0) 41162306a36Sopenharmony_ci - Cr\ :sub:`0` (bits 15-0) 41262306a36Sopenharmony_ci 41362306a36Sopenharmony_ci.. raw:: latex 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ci \normalsize 41662306a36Sopenharmony_ci 41762306a36Sopenharmony_ci**Color Sample Location:** 41862306a36Sopenharmony_ciChroma samples are :ref:`interstitially sited<yuv-chroma-centered>` 41962306a36Sopenharmony_cihorizontally. 42062306a36Sopenharmony_ci 42162306a36Sopenharmony_ci 42262306a36Sopenharmony_ci4:1:1 Subsampling 42362306a36Sopenharmony_ci================= 42462306a36Sopenharmony_ci 42562306a36Sopenharmony_ciThis format subsamples the chroma components horizontally by 4, storing 8 42662306a36Sopenharmony_cipixels in 12 bytes. 42762306a36Sopenharmony_ci 42862306a36Sopenharmony_ci.. raw:: latex 42962306a36Sopenharmony_ci 43062306a36Sopenharmony_ci \scriptsize 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_ci.. tabularcolumns:: |p{2.9cm}|p{0.8cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}| 43362306a36Sopenharmony_ci 43462306a36Sopenharmony_ci.. flat-table:: Packed YUV 4:1:1 Formats 43562306a36Sopenharmony_ci :header-rows: 1 43662306a36Sopenharmony_ci :stub-columns: 0 43762306a36Sopenharmony_ci 43862306a36Sopenharmony_ci * - Identifier 43962306a36Sopenharmony_ci - Code 44062306a36Sopenharmony_ci - Byte 0 44162306a36Sopenharmony_ci - Byte 1 44262306a36Sopenharmony_ci - Byte 2 44362306a36Sopenharmony_ci - Byte 3 44462306a36Sopenharmony_ci - Byte 4 44562306a36Sopenharmony_ci - Byte 5 44662306a36Sopenharmony_ci - Byte 6 44762306a36Sopenharmony_ci - Byte 7 44862306a36Sopenharmony_ci - Byte 8 44962306a36Sopenharmony_ci - Byte 9 45062306a36Sopenharmony_ci - Byte 10 45162306a36Sopenharmony_ci - Byte 11 45262306a36Sopenharmony_ci * .. _V4L2-PIX-FMT-Y41P: 45362306a36Sopenharmony_ci 45462306a36Sopenharmony_ci - ``V4L2_PIX_FMT_Y41P`` 45562306a36Sopenharmony_ci - 'Y41P' 45662306a36Sopenharmony_ci 45762306a36Sopenharmony_ci - Cb\ :sub:`0` 45862306a36Sopenharmony_ci - Y'\ :sub:`0` 45962306a36Sopenharmony_ci - Cr\ :sub:`0` 46062306a36Sopenharmony_ci - Y'\ :sub:`1` 46162306a36Sopenharmony_ci - Cb\ :sub:`4` 46262306a36Sopenharmony_ci - Y'\ :sub:`2` 46362306a36Sopenharmony_ci - Cr\ :sub:`4` 46462306a36Sopenharmony_ci - Y'\ :sub:`3` 46562306a36Sopenharmony_ci - Y'\ :sub:`4` 46662306a36Sopenharmony_ci - Y'\ :sub:`5` 46762306a36Sopenharmony_ci - Y'\ :sub:`6` 46862306a36Sopenharmony_ci - Y'\ :sub:`7` 46962306a36Sopenharmony_ci 47062306a36Sopenharmony_ci.. raw:: latex 47162306a36Sopenharmony_ci 47262306a36Sopenharmony_ci \normalsize 47362306a36Sopenharmony_ci 47462306a36Sopenharmony_ci.. note:: 47562306a36Sopenharmony_ci 47662306a36Sopenharmony_ci Do not confuse ``V4L2_PIX_FMT_Y41P`` with 47762306a36Sopenharmony_ci :ref:`V4L2_PIX_FMT_YUV411P <V4L2-PIX-FMT-YUV411P>`. Y41P is derived from 47862306a36Sopenharmony_ci "YUV 4:1:1 **packed**", while YUV411P stands for "YUV 4:1:1 **planar**". 47962306a36Sopenharmony_ci 48062306a36Sopenharmony_ci**Color Sample Location:** 48162306a36Sopenharmony_ciChroma samples are :ref:`interstitially sited<yuv-chroma-centered>` 48262306a36Sopenharmony_cihorizontally. 483