xref: /openbmc/linux/Documentation/userspace-api/media/v4l/pixfmt-packed-yuv.rst (revision 0dc1d7a79a8d13e316d3b168e9fc57e376099c7a)
1059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
254f38fcaSMauro Carvalho Chehab
354f38fcaSMauro Carvalho Chehab.. _packed-yuv:
454f38fcaSMauro Carvalho Chehab
554f38fcaSMauro Carvalho Chehab******************
654f38fcaSMauro Carvalho ChehabPacked YUV formats
754f38fcaSMauro Carvalho Chehab******************
854f38fcaSMauro Carvalho Chehab
97cb8bd29SLaurent PinchartSimilarly to the packed RGB formats, the packed YUV formats store the Y, Cb and
107cb8bd29SLaurent PinchartCr components consecutively in memory. They may apply subsampling to the chroma
117cb8bd29SLaurent Pinchartcomponents and thus differ in how they interlave the three components.
1254f38fcaSMauro Carvalho Chehab
132f2a387eSLaurent Pinchart.. note::
142f2a387eSLaurent Pinchart
152f2a387eSLaurent Pinchart   - In all the tables that follow, bit 7 is the most significant bit in a byte.
162f2a387eSLaurent Pinchart   - 'Y', 'Cb' and 'Cr' denote bits of the luma, blue chroma (also known as
172f2a387eSLaurent Pinchart     'U') and red chroma (also known as 'V') components respectively. 'A'
182f2a387eSLaurent Pinchart     denotes bits of the alpha component (if supported by the format), and 'X'
192f2a387eSLaurent Pinchart     denotes padding bits.
202f2a387eSLaurent Pinchart
2154f38fcaSMauro Carvalho Chehab
227cb8bd29SLaurent Pinchart4:4:4 Subsampling
237cb8bd29SLaurent Pinchart=================
247cb8bd29SLaurent Pinchart
257cb8bd29SLaurent PinchartThese formats do not subsample the chroma components and store each pixels as a
267cb8bd29SLaurent Pinchartfull triplet of Y, Cb and Cr values.
2754f38fcaSMauro Carvalho Chehab
284bfc1688SLaurent PinchartThe next table lists the packed YUV 4:4:4 formats with less than 8 bits per
294bfc1688SLaurent Pinchartcomponent. They are named based on the order of the Y, Cb and Cr components as
304bfc1688SLaurent Pinchartseen in a 16-bit word, which is then stored in memory in little endian byte
314bfc1688SLaurent Pinchartorder, and on the number of bits for each component. For instance the YUV565
324bfc1688SLaurent Pinchartformat stores a pixel in a 16-bit word [15:0] laid out at as [Y'\ :sub:`4-0`
334bfc1688SLaurent PinchartCb\ :sub:`5-0` Cr\ :sub:`4-0`], and stored in memory in two bytes,
344bfc1688SLaurent Pinchart[Cb\ :sub:`2-0` Cr\ :sub:`4-0`] followed by [Y'\ :sub:`4-0` Cb\ :sub:`5-3`].
354bfc1688SLaurent Pinchart
3654f38fcaSMauro Carvalho Chehab.. raw:: latex
3754f38fcaSMauro Carvalho Chehab
3854f38fcaSMauro Carvalho Chehab    \begingroup
39fea13a69SMauro Carvalho Chehab    \scriptsize
4054f38fcaSMauro Carvalho Chehab    \setlength{\tabcolsep}{2pt}
4154f38fcaSMauro Carvalho Chehab
42fea13a69SMauro Carvalho Chehab.. 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}|
4354f38fcaSMauro Carvalho Chehab
442f2a387eSLaurent Pinchart.. flat-table:: Packed YUV 4:4:4 Image Formats (less than 8bpc)
4554f38fcaSMauro Carvalho Chehab    :header-rows:  2
4654f38fcaSMauro Carvalho Chehab    :stub-columns: 0
4754f38fcaSMauro Carvalho Chehab
4854f38fcaSMauro Carvalho Chehab    * - Identifier
4954f38fcaSMauro Carvalho Chehab      - Code
5054f38fcaSMauro Carvalho Chehab
5154f38fcaSMauro Carvalho Chehab      - :cspan:`7` Byte 0 in memory
5254f38fcaSMauro Carvalho Chehab
5354f38fcaSMauro Carvalho Chehab      - :cspan:`7` Byte 1
5454f38fcaSMauro Carvalho Chehab
5554f38fcaSMauro Carvalho Chehab    * -
5654f38fcaSMauro Carvalho Chehab      -
5754f38fcaSMauro Carvalho Chehab      - 7
5854f38fcaSMauro Carvalho Chehab      - 6
5954f38fcaSMauro Carvalho Chehab      - 5
6054f38fcaSMauro Carvalho Chehab      - 4
6154f38fcaSMauro Carvalho Chehab      - 3
6254f38fcaSMauro Carvalho Chehab      - 2
6354f38fcaSMauro Carvalho Chehab      - 1
6454f38fcaSMauro Carvalho Chehab      - 0
6554f38fcaSMauro Carvalho Chehab
6654f38fcaSMauro Carvalho Chehab      - 7
6754f38fcaSMauro Carvalho Chehab      - 6
6854f38fcaSMauro Carvalho Chehab      - 5
6954f38fcaSMauro Carvalho Chehab      - 4
7054f38fcaSMauro Carvalho Chehab      - 3
7154f38fcaSMauro Carvalho Chehab      - 2
7254f38fcaSMauro Carvalho Chehab      - 1
7354f38fcaSMauro Carvalho Chehab      - 0
7454f38fcaSMauro Carvalho Chehab
7554f38fcaSMauro Carvalho Chehab    * .. _V4L2-PIX-FMT-YUV444:
7654f38fcaSMauro Carvalho Chehab
7754f38fcaSMauro Carvalho Chehab      - ``V4L2_PIX_FMT_YUV444``
7854f38fcaSMauro Carvalho Chehab      - 'Y444'
7954f38fcaSMauro Carvalho Chehab
8054f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`3`
8154f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`2`
8254f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`1`
8354f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`0`
8454f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`3`
8554f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`2`
8654f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`1`
8754f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`0`
8854f38fcaSMauro Carvalho Chehab
8954f38fcaSMauro Carvalho Chehab      - a\ :sub:`3`
9054f38fcaSMauro Carvalho Chehab      - a\ :sub:`2`
9154f38fcaSMauro Carvalho Chehab      - a\ :sub:`1`
9254f38fcaSMauro Carvalho Chehab      - a\ :sub:`0`
9354f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`3`
9454f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`2`
9554f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`1`
9654f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`0`
9754f38fcaSMauro Carvalho Chehab
9854f38fcaSMauro Carvalho Chehab    * .. _V4L2-PIX-FMT-YUV555:
9954f38fcaSMauro Carvalho Chehab
10054f38fcaSMauro Carvalho Chehab      - ``V4L2_PIX_FMT_YUV555``
10154f38fcaSMauro Carvalho Chehab      - 'YUVO'
10254f38fcaSMauro Carvalho Chehab
10354f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`2`
10454f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`1`
10554f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`0`
10654f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`4`
10754f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`3`
10854f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`2`
10954f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`1`
11054f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`0`
11154f38fcaSMauro Carvalho Chehab
11254f38fcaSMauro Carvalho Chehab      - a
11354f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`4`
11454f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`3`
11554f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`2`
11654f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`1`
11754f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`0`
11854f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`4`
11954f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`3`
12054f38fcaSMauro Carvalho Chehab
12154f38fcaSMauro Carvalho Chehab    * .. _V4L2-PIX-FMT-YUV565:
12254f38fcaSMauro Carvalho Chehab
12354f38fcaSMauro Carvalho Chehab      - ``V4L2_PIX_FMT_YUV565``
12454f38fcaSMauro Carvalho Chehab      - 'YUVP'
12554f38fcaSMauro Carvalho Chehab
12654f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`2`
12754f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`1`
12854f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`0`
12954f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`4`
13054f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`3`
13154f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`2`
13254f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`1`
13354f38fcaSMauro Carvalho Chehab      - Cr\ :sub:`0`
13454f38fcaSMauro Carvalho Chehab
13554f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`4`
13654f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`3`
13754f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`2`
13854f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`1`
13954f38fcaSMauro Carvalho Chehab      - Y'\ :sub:`0`
14054f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`5`
14154f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`4`
14254f38fcaSMauro Carvalho Chehab      - Cb\ :sub:`3`
14354f38fcaSMauro Carvalho Chehab
14454f38fcaSMauro Carvalho Chehab.. raw:: latex
14554f38fcaSMauro Carvalho Chehab
14654f38fcaSMauro Carvalho Chehab    \endgroup
14754f38fcaSMauro Carvalho Chehab
14854f38fcaSMauro Carvalho Chehab.. note::
14954f38fcaSMauro Carvalho Chehab
1502f2a387eSLaurent Pinchart    For the YUV444 and YUV555 formats, the value of alpha bits is undefined
1512f2a387eSLaurent Pinchart    when reading from the driver, ignored when writing to the driver, except
1522f2a387eSLaurent Pinchart    when alpha blending has been negotiated for a :ref:`Video Overlay
1532f2a387eSLaurent Pinchart    <overlay>` or :ref:`Video Output Overlay <osd>`.
15454f38fcaSMauro Carvalho Chehab
1552f2a387eSLaurent Pinchart
1564bfc1688SLaurent PinchartThe next table lists the packed YUV 4:4:4 formats with 8 bits per component.
1574bfc1688SLaurent PinchartThey are named based on the order of the Y, Cb and Cr components as stored in
1584bfc1688SLaurent Pinchartmemory, and on the total number of bits per pixel. For instance, the VUYX32
1594bfc1688SLaurent Pinchartformat stores a pixel with Cr\ :sub:`7-0` in the first byte, Cb\ :sub:`7-0` in
1604bfc1688SLaurent Pinchartthe second byte and Y'\ :sub:`7-0` in the third byte.
1614bfc1688SLaurent Pinchart
1622f2a387eSLaurent Pinchart.. flat-table:: Packed YUV Image Formats (8bpc)
1632f2a387eSLaurent Pinchart    :header-rows: 1
1642f2a387eSLaurent Pinchart    :stub-columns: 0
1652f2a387eSLaurent Pinchart
1662f2a387eSLaurent Pinchart    * - Identifier
1672f2a387eSLaurent Pinchart      - Code
1682f2a387eSLaurent Pinchart      - Byte 0
1692f2a387eSLaurent Pinchart      - Byte 1
1702f2a387eSLaurent Pinchart      - Byte 2
1712f2a387eSLaurent Pinchart      - Byte 3
1722f2a387eSLaurent Pinchart
1732f2a387eSLaurent Pinchart    * .. _V4L2-PIX-FMT-YUV32:
1742f2a387eSLaurent Pinchart
1752f2a387eSLaurent Pinchart      - ``V4L2_PIX_FMT_YUV32``
1762f2a387eSLaurent Pinchart      - 'YUV4'
1772f2a387eSLaurent Pinchart
1782f2a387eSLaurent Pinchart      - A\ :sub:`7-0`
1792f2a387eSLaurent Pinchart      - Y'\ :sub:`7-0`
1802f2a387eSLaurent Pinchart      - Cb\ :sub:`7-0`
1812f2a387eSLaurent Pinchart      - Cr\ :sub:`7-0`
1822f2a387eSLaurent Pinchart
1832f2a387eSLaurent Pinchart    * .. _V4L2-PIX-FMT-AYUV32:
1842f2a387eSLaurent Pinchart
1852f2a387eSLaurent Pinchart      - ``V4L2_PIX_FMT_AYUV32``
1862f2a387eSLaurent Pinchart      - 'AYUV'
1872f2a387eSLaurent Pinchart
1882f2a387eSLaurent Pinchart      - A\ :sub:`7-0`
1892f2a387eSLaurent Pinchart      - Y'\ :sub:`7-0`
1902f2a387eSLaurent Pinchart      - Cb\ :sub:`7-0`
1912f2a387eSLaurent Pinchart      - Cr\ :sub:`7-0`
1922f2a387eSLaurent Pinchart
1932f2a387eSLaurent Pinchart    * .. _V4L2-PIX-FMT-XYUV32:
1942f2a387eSLaurent Pinchart
1952f2a387eSLaurent Pinchart      - ``V4L2_PIX_FMT_XYUV32``
1962f2a387eSLaurent Pinchart      - 'XYUV'
1972f2a387eSLaurent Pinchart
1982f2a387eSLaurent Pinchart      - X\ :sub:`7-0`
1992f2a387eSLaurent Pinchart      - Y'\ :sub:`7-0`
2002f2a387eSLaurent Pinchart      - Cb\ :sub:`7-0`
2012f2a387eSLaurent Pinchart      - Cr\ :sub:`7-0`
2022f2a387eSLaurent Pinchart
2032f2a387eSLaurent Pinchart    * .. _V4L2-PIX-FMT-VUYA32:
2042f2a387eSLaurent Pinchart
2052f2a387eSLaurent Pinchart      - ``V4L2_PIX_FMT_VUYA32``
2062f2a387eSLaurent Pinchart      - 'VUYA'
2072f2a387eSLaurent Pinchart
2082f2a387eSLaurent Pinchart      - Cr\ :sub:`7-0`
2092f2a387eSLaurent Pinchart      - Cb\ :sub:`7-0`
2102f2a387eSLaurent Pinchart      - Y'\ :sub:`7-0`
2112f2a387eSLaurent Pinchart      - A\ :sub:`7-0`
2122f2a387eSLaurent Pinchart
2132f2a387eSLaurent Pinchart    * .. _V4L2-PIX-FMT-VUYX32:
2142f2a387eSLaurent Pinchart
2152f2a387eSLaurent Pinchart      - ``V4L2_PIX_FMT_VUYX32``
2162f2a387eSLaurent Pinchart      - 'VUYX'
2172f2a387eSLaurent Pinchart
2182f2a387eSLaurent Pinchart      - Cr\ :sub:`7-0`
2192f2a387eSLaurent Pinchart      - Cb\ :sub:`7-0`
2202f2a387eSLaurent Pinchart      - Y'\ :sub:`7-0`
2212f2a387eSLaurent Pinchart      - X\ :sub:`7-0`
2222f2a387eSLaurent Pinchart
22300f6842eSLaurent Pinchart    * .. _V4L2-PIX-FMT-YUVA32:
22400f6842eSLaurent Pinchart
22500f6842eSLaurent Pinchart      - ``V4L2_PIX_FMT_YUVA32``
22600f6842eSLaurent Pinchart      - 'YUVA'
22700f6842eSLaurent Pinchart
22800f6842eSLaurent Pinchart      - Y'\ :sub:`7-0`
22900f6842eSLaurent Pinchart      - Cb\ :sub:`7-0`
23000f6842eSLaurent Pinchart      - Cr\ :sub:`7-0`
23100f6842eSLaurent Pinchart      - A\ :sub:`7-0`
23200f6842eSLaurent Pinchart
23300f6842eSLaurent Pinchart    * .. _V4L2-PIX-FMT-YUVX32:
23400f6842eSLaurent Pinchart
23500f6842eSLaurent Pinchart      - ``V4L2_PIX_FMT_YUVX32``
23600f6842eSLaurent Pinchart      - 'YUVX'
23700f6842eSLaurent Pinchart
23800f6842eSLaurent Pinchart      - Y'\ :sub:`7-0`
23900f6842eSLaurent Pinchart      - Cb\ :sub:`7-0`
24000f6842eSLaurent Pinchart      - Cr\ :sub:`7-0`
24100f6842eSLaurent Pinchart      - X\ :sub:`7-0`
24200f6842eSLaurent Pinchart
2430376a51fSMirela Rabulea    * .. _V4L2-PIX-FMT-YUV24:
2440376a51fSMirela Rabulea
2450376a51fSMirela Rabulea      - ``V4L2_PIX_FMT_YUV24``
2460376a51fSMirela Rabulea      - 'YUV3'
2470376a51fSMirela Rabulea
2480376a51fSMirela Rabulea      - Y'\ :sub:`7-0`
2490376a51fSMirela Rabulea      - Cb\ :sub:`7-0`
2500376a51fSMirela Rabulea      - Cr\ :sub:`7-0`
2510376a51fSMirela Rabulea      - -\
2520376a51fSMirela Rabulea
2532f2a387eSLaurent Pinchart.. note::
2542f2a387eSLaurent Pinchart
2552f2a387eSLaurent Pinchart    - The alpha component is expected to contain a meaningful value that can be
2562f2a387eSLaurent Pinchart      used by drivers and applications.
2572f2a387eSLaurent Pinchart    - The padding bits contain undefined values that must be ignored by all
2582f2a387eSLaurent Pinchart      applications and drivers.
2597cb8bd29SLaurent Pinchart
2607cb8bd29SLaurent Pinchart
2617cb8bd29SLaurent Pinchart4:2:2 Subsampling
2627cb8bd29SLaurent Pinchart=================
2637cb8bd29SLaurent Pinchart
2647cb8bd29SLaurent PinchartThese formats, commonly referred to as YUYV or YUY2, subsample the chroma
265*0dc1d7a7STomi Valkeinencomponents horizontally by 2, storing 2 pixels in a container. The container
266*0dc1d7a7STomi Valkeinenis 32-bits for 8-bit formats, and 64-bits for 10+-bit formats.
267*0dc1d7a7STomi Valkeinen
268*0dc1d7a7STomi ValkeinenThe packed YUYV formats with more than 8 bits per component are stored as four
269*0dc1d7a7STomi Valkeinen16-bit little-endian words. Each word's most significant bits contain one
270*0dc1d7a7STomi Valkeinencomponent, and the least significant bits are zero padding.
2717cb8bd29SLaurent Pinchart
272fea13a69SMauro Carvalho Chehab.. raw:: latex
273fea13a69SMauro Carvalho Chehab
274fea13a69SMauro Carvalho Chehab    \footnotesize
275fea13a69SMauro Carvalho Chehab
276fea13a69SMauro Carvalho Chehab.. 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}|
277fea13a69SMauro Carvalho Chehab
278*0dc1d7a7STomi Valkeinen.. flat-table:: Packed YUV 4:2:2 Formats in 32-bit container
2797cb8bd29SLaurent Pinchart    :header-rows: 1
2807cb8bd29SLaurent Pinchart    :stub-columns: 0
2817cb8bd29SLaurent Pinchart
2827cb8bd29SLaurent Pinchart    * - Identifier
2837cb8bd29SLaurent Pinchart      - Code
2847cb8bd29SLaurent Pinchart      - Byte 0
2857cb8bd29SLaurent Pinchart      - Byte 1
2867cb8bd29SLaurent Pinchart      - Byte 2
2877cb8bd29SLaurent Pinchart      - Byte 3
2887cb8bd29SLaurent Pinchart      - Byte 4
2897cb8bd29SLaurent Pinchart      - Byte 5
2907cb8bd29SLaurent Pinchart      - Byte 6
2917cb8bd29SLaurent Pinchart      - Byte 7
2927cb8bd29SLaurent Pinchart    * .. _V4L2-PIX-FMT-UYVY:
2937cb8bd29SLaurent Pinchart
2947cb8bd29SLaurent Pinchart      - ``V4L2_PIX_FMT_UYVY``
2957cb8bd29SLaurent Pinchart      - 'UYVY'
2967cb8bd29SLaurent Pinchart
2977cb8bd29SLaurent Pinchart      - Cb\ :sub:`0`
2987cb8bd29SLaurent Pinchart      - Y'\ :sub:`0`
2997cb8bd29SLaurent Pinchart      - Cr\ :sub:`0`
3007cb8bd29SLaurent Pinchart      - Y'\ :sub:`1`
3017cb8bd29SLaurent Pinchart      - Cb\ :sub:`2`
3027cb8bd29SLaurent Pinchart      - Y'\ :sub:`2`
3037cb8bd29SLaurent Pinchart      - Cr\ :sub:`2`
3047cb8bd29SLaurent Pinchart      - Y'\ :sub:`3`
3057cb8bd29SLaurent Pinchart    * .. _V4L2-PIX-FMT-VYUY:
3067cb8bd29SLaurent Pinchart
3077cb8bd29SLaurent Pinchart      - ``V4L2_PIX_FMT_VYUY``
3087cb8bd29SLaurent Pinchart      - 'VYUY'
3097cb8bd29SLaurent Pinchart
3107cb8bd29SLaurent Pinchart      - Cr\ :sub:`0`
3117cb8bd29SLaurent Pinchart      - Y'\ :sub:`0`
3127cb8bd29SLaurent Pinchart      - Cb\ :sub:`0`
3137cb8bd29SLaurent Pinchart      - Y'\ :sub:`1`
3147cb8bd29SLaurent Pinchart      - Cr\ :sub:`2`
3157cb8bd29SLaurent Pinchart      - Y'\ :sub:`2`
3167cb8bd29SLaurent Pinchart      - Cb\ :sub:`2`
3177cb8bd29SLaurent Pinchart      - Y'\ :sub:`3`
3187cb8bd29SLaurent Pinchart    * .. _V4L2-PIX-FMT-YUYV:
3197cb8bd29SLaurent Pinchart
3207cb8bd29SLaurent Pinchart      - ``V4L2_PIX_FMT_YUYV``
3217cb8bd29SLaurent Pinchart      - 'YUYV'
3227cb8bd29SLaurent Pinchart
3237cb8bd29SLaurent Pinchart      - Y'\ :sub:`0`
3247cb8bd29SLaurent Pinchart      - Cb\ :sub:`0`
3257cb8bd29SLaurent Pinchart      - Y'\ :sub:`1`
3267cb8bd29SLaurent Pinchart      - Cr\ :sub:`0`
3277cb8bd29SLaurent Pinchart      - Y'\ :sub:`2`
3287cb8bd29SLaurent Pinchart      - Cb\ :sub:`2`
3297cb8bd29SLaurent Pinchart      - Y'\ :sub:`3`
3307cb8bd29SLaurent Pinchart      - Cr\ :sub:`2`
3317cb8bd29SLaurent Pinchart    * .. _V4L2-PIX-FMT-YVYU:
3327cb8bd29SLaurent Pinchart
3337cb8bd29SLaurent Pinchart      - ``V4L2_PIX_FMT_YVYU``
3347cb8bd29SLaurent Pinchart      - 'YVYU'
3357cb8bd29SLaurent Pinchart
3367cb8bd29SLaurent Pinchart      - Y'\ :sub:`0`
3377cb8bd29SLaurent Pinchart      - Cr\ :sub:`0`
3387cb8bd29SLaurent Pinchart      - Y'\ :sub:`1`
3397cb8bd29SLaurent Pinchart      - Cb\ :sub:`0`
3407cb8bd29SLaurent Pinchart      - Y'\ :sub:`2`
3417cb8bd29SLaurent Pinchart      - Cr\ :sub:`2`
3427cb8bd29SLaurent Pinchart      - Y'\ :sub:`3`
3437cb8bd29SLaurent Pinchart      - Cb\ :sub:`2`
3447cb8bd29SLaurent Pinchart
345*0dc1d7a7STomi Valkeinen.. 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}|
346*0dc1d7a7STomi Valkeinen
347*0dc1d7a7STomi Valkeinen.. flat-table:: Packed YUV 4:2:2 Formats in 64-bit container
348*0dc1d7a7STomi Valkeinen    :header-rows: 1
349*0dc1d7a7STomi Valkeinen    :stub-columns: 0
350*0dc1d7a7STomi Valkeinen
351*0dc1d7a7STomi Valkeinen    * - Identifier
352*0dc1d7a7STomi Valkeinen      - Code
353*0dc1d7a7STomi Valkeinen      - Word 0
354*0dc1d7a7STomi Valkeinen      - Word 1
355*0dc1d7a7STomi Valkeinen      - Word 2
356*0dc1d7a7STomi Valkeinen      - Word 3
357*0dc1d7a7STomi Valkeinen    * .. _V4L2-PIX-FMT-Y210:
358*0dc1d7a7STomi Valkeinen
359*0dc1d7a7STomi Valkeinen      - ``V4L2_PIX_FMT_Y210``
360*0dc1d7a7STomi Valkeinen      - 'Y210'
361*0dc1d7a7STomi Valkeinen
362*0dc1d7a7STomi Valkeinen      - Y'\ :sub:`0` (bits 15-6)
363*0dc1d7a7STomi Valkeinen      - Cb\ :sub:`0` (bits 15-6)
364*0dc1d7a7STomi Valkeinen      - Y'\ :sub:`1` (bits 15-6)
365*0dc1d7a7STomi Valkeinen      - Cr\ :sub:`0` (bits 15-6)
366*0dc1d7a7STomi Valkeinen    * .. _V4L2-PIX-FMT-Y212:
367*0dc1d7a7STomi Valkeinen
368*0dc1d7a7STomi Valkeinen      - ``V4L2_PIX_FMT_Y212``
369*0dc1d7a7STomi Valkeinen      - 'Y212'
370*0dc1d7a7STomi Valkeinen
371*0dc1d7a7STomi Valkeinen      - Y'\ :sub:`0` (bits 15-4)
372*0dc1d7a7STomi Valkeinen      - Cb\ :sub:`0` (bits 15-4)
373*0dc1d7a7STomi Valkeinen      - Y'\ :sub:`1` (bits 15-4)
374*0dc1d7a7STomi Valkeinen      - Cr\ :sub:`0` (bits 15-4)
375*0dc1d7a7STomi Valkeinen    * .. _V4L2-PIX-FMT-Y216:
376*0dc1d7a7STomi Valkeinen
377*0dc1d7a7STomi Valkeinen      - ``V4L2_PIX_FMT_Y216``
378*0dc1d7a7STomi Valkeinen      - 'Y216'
379*0dc1d7a7STomi Valkeinen
380*0dc1d7a7STomi Valkeinen      - Y'\ :sub:`0` (bits 15-0)
381*0dc1d7a7STomi Valkeinen      - Cb\ :sub:`0` (bits 15-0)
382*0dc1d7a7STomi Valkeinen      - Y'\ :sub:`1` (bits 15-0)
383*0dc1d7a7STomi Valkeinen      - Cr\ :sub:`0` (bits 15-0)
384*0dc1d7a7STomi Valkeinen
385fea13a69SMauro Carvalho Chehab.. raw:: latex
386fea13a69SMauro Carvalho Chehab
387fea13a69SMauro Carvalho Chehab    \normalsize
388fea13a69SMauro Carvalho Chehab
3897cb8bd29SLaurent Pinchart**Color Sample Location:**
3907cb8bd29SLaurent PinchartChroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
3917cb8bd29SLaurent Pincharthorizontally.
3927cb8bd29SLaurent Pinchart
3937cb8bd29SLaurent Pinchart
3947cb8bd29SLaurent Pinchart4:1:1 Subsampling
3957cb8bd29SLaurent Pinchart=================
3967cb8bd29SLaurent Pinchart
3977cb8bd29SLaurent PinchartThis format subsamples the chroma components horizontally by 4, storing 8
3987cb8bd29SLaurent Pinchartpixels in 12 bytes.
3997cb8bd29SLaurent Pinchart
400fea13a69SMauro Carvalho Chehab.. raw:: latex
401fea13a69SMauro Carvalho Chehab
402fea13a69SMauro Carvalho Chehab    \scriptsize
403fea13a69SMauro Carvalho Chehab
404fea13a69SMauro Carvalho Chehab.. 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}|
405fea13a69SMauro Carvalho Chehab
4067cb8bd29SLaurent Pinchart.. flat-table:: Packed YUV 4:1:1 Formats
4077cb8bd29SLaurent Pinchart    :header-rows: 1
4087cb8bd29SLaurent Pinchart    :stub-columns: 0
4097cb8bd29SLaurent Pinchart
4107cb8bd29SLaurent Pinchart    * - Identifier
4117cb8bd29SLaurent Pinchart      - Code
4127cb8bd29SLaurent Pinchart      - Byte 0
4137cb8bd29SLaurent Pinchart      - Byte 1
4147cb8bd29SLaurent Pinchart      - Byte 2
4157cb8bd29SLaurent Pinchart      - Byte 3
4167cb8bd29SLaurent Pinchart      - Byte 4
4177cb8bd29SLaurent Pinchart      - Byte 5
4187cb8bd29SLaurent Pinchart      - Byte 6
4197cb8bd29SLaurent Pinchart      - Byte 7
4207cb8bd29SLaurent Pinchart      - Byte 8
4217cb8bd29SLaurent Pinchart      - Byte 9
4227cb8bd29SLaurent Pinchart      - Byte 10
4237cb8bd29SLaurent Pinchart      - Byte 11
4247cb8bd29SLaurent Pinchart    * .. _V4L2-PIX-FMT-Y41P:
4257cb8bd29SLaurent Pinchart
4267cb8bd29SLaurent Pinchart      - ``V4L2_PIX_FMT_Y41P``
4277cb8bd29SLaurent Pinchart      - 'Y41P'
4287cb8bd29SLaurent Pinchart
4297cb8bd29SLaurent Pinchart      - Cb\ :sub:`0`
4307cb8bd29SLaurent Pinchart      - Y'\ :sub:`0`
4317cb8bd29SLaurent Pinchart      - Cr\ :sub:`0`
4327cb8bd29SLaurent Pinchart      - Y'\ :sub:`1`
4337cb8bd29SLaurent Pinchart      - Cb\ :sub:`4`
4347cb8bd29SLaurent Pinchart      - Y'\ :sub:`2`
4357cb8bd29SLaurent Pinchart      - Cr\ :sub:`4`
4367cb8bd29SLaurent Pinchart      - Y'\ :sub:`3`
4377cb8bd29SLaurent Pinchart      - Y'\ :sub:`4`
4387cb8bd29SLaurent Pinchart      - Y'\ :sub:`5`
4397cb8bd29SLaurent Pinchart      - Y'\ :sub:`6`
4407cb8bd29SLaurent Pinchart      - Y'\ :sub:`7`
4417cb8bd29SLaurent Pinchart
442fea13a69SMauro Carvalho Chehab.. raw:: latex
443fea13a69SMauro Carvalho Chehab
444fea13a69SMauro Carvalho Chehab    \normalsize
445fea13a69SMauro Carvalho Chehab
4467cb8bd29SLaurent Pinchart.. note::
4477cb8bd29SLaurent Pinchart
4487cb8bd29SLaurent Pinchart    Do not confuse ``V4L2_PIX_FMT_Y41P`` with
4497cb8bd29SLaurent Pinchart    :ref:`V4L2_PIX_FMT_YUV411P <V4L2-PIX-FMT-YUV411P>`. Y41P is derived from
450fea13a69SMauro Carvalho Chehab    "YUV 4:1:1 **packed**", while YUV411P stands for "YUV 4:1:1 **planar**".
4517cb8bd29SLaurent Pinchart
4527cb8bd29SLaurent Pinchart**Color Sample Location:**
4537cb8bd29SLaurent PinchartChroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
4547cb8bd29SLaurent Pincharthorizontally.
455