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
260*99c95496SMing QianThe next table lists the packed YUV 4:4:4 formats with 12 bits per component.
261*99c95496SMing QianExpand the bits per component to 16 bits, data in the high bits, zeros in the low bits,
262*99c95496SMing Qianarranged in little endian order, storing 1 pixel in 6 bytes.
263*99c95496SMing Qian
264*99c95496SMing Qian.. flat-table:: Packed YUV 4:4:4 Image Formats (12bpc)
265*99c95496SMing Qian    :header-rows: 1
266*99c95496SMing Qian    :stub-columns: 0
267*99c95496SMing Qian
268*99c95496SMing Qian    * - Identifier
269*99c95496SMing Qian      - Code
270*99c95496SMing Qian      - Byte 1-0
271*99c95496SMing Qian      - Byte 3-2
272*99c95496SMing Qian      - Byte 5-4
273*99c95496SMing Qian      - Byte 7-6
274*99c95496SMing Qian      - Byte 9-8
275*99c95496SMing Qian      - Byte 11-10
276*99c95496SMing Qian
277*99c95496SMing Qian    * .. _V4L2-PIX-FMT-YUV48-12:
278*99c95496SMing Qian
279*99c95496SMing Qian      - ``V4L2_PIX_FMT_YUV48_12``
280*99c95496SMing Qian      - 'Y312'
281*99c95496SMing Qian
282*99c95496SMing Qian      - Y'\ :sub:`0`
283*99c95496SMing Qian      - Cb\ :sub:`0`
284*99c95496SMing Qian      - Cr\ :sub:`0`
285*99c95496SMing Qian      - Y'\ :sub:`1`
286*99c95496SMing Qian      - Cb\ :sub:`1`
287*99c95496SMing Qian      - Cr\ :sub:`1`
2887cb8bd29SLaurent Pinchart
2897cb8bd29SLaurent Pinchart4:2:2 Subsampling
2907cb8bd29SLaurent Pinchart=================
2917cb8bd29SLaurent Pinchart
2927cb8bd29SLaurent PinchartThese formats, commonly referred to as YUYV or YUY2, subsample the chroma
2930dc1d7a7STomi Valkeinencomponents horizontally by 2, storing 2 pixels in a container. The container
2940dc1d7a7STomi Valkeinenis 32-bits for 8-bit formats, and 64-bits for 10+-bit formats.
2950dc1d7a7STomi Valkeinen
2960dc1d7a7STomi ValkeinenThe packed YUYV formats with more than 8 bits per component are stored as four
2970dc1d7a7STomi Valkeinen16-bit little-endian words. Each word's most significant bits contain one
2980dc1d7a7STomi Valkeinencomponent, and the least significant bits are zero padding.
2997cb8bd29SLaurent Pinchart
300fea13a69SMauro Carvalho Chehab.. raw:: latex
301fea13a69SMauro Carvalho Chehab
302fea13a69SMauro Carvalho Chehab    \footnotesize
303fea13a69SMauro Carvalho Chehab
304fea13a69SMauro 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}|
305fea13a69SMauro Carvalho Chehab
3060dc1d7a7STomi Valkeinen.. flat-table:: Packed YUV 4:2:2 Formats in 32-bit container
3077cb8bd29SLaurent Pinchart    :header-rows: 1
3087cb8bd29SLaurent Pinchart    :stub-columns: 0
3097cb8bd29SLaurent Pinchart
3107cb8bd29SLaurent Pinchart    * - Identifier
3117cb8bd29SLaurent Pinchart      - Code
3127cb8bd29SLaurent Pinchart      - Byte 0
3137cb8bd29SLaurent Pinchart      - Byte 1
3147cb8bd29SLaurent Pinchart      - Byte 2
3157cb8bd29SLaurent Pinchart      - Byte 3
3167cb8bd29SLaurent Pinchart      - Byte 4
3177cb8bd29SLaurent Pinchart      - Byte 5
3187cb8bd29SLaurent Pinchart      - Byte 6
3197cb8bd29SLaurent Pinchart      - Byte 7
3207cb8bd29SLaurent Pinchart    * .. _V4L2-PIX-FMT-UYVY:
3217cb8bd29SLaurent Pinchart
3227cb8bd29SLaurent Pinchart      - ``V4L2_PIX_FMT_UYVY``
3237cb8bd29SLaurent Pinchart      - 'UYVY'
3247cb8bd29SLaurent Pinchart
3257cb8bd29SLaurent Pinchart      - Cb\ :sub:`0`
3267cb8bd29SLaurent Pinchart      - Y'\ :sub:`0`
3277cb8bd29SLaurent Pinchart      - Cr\ :sub:`0`
3287cb8bd29SLaurent Pinchart      - Y'\ :sub:`1`
3297cb8bd29SLaurent Pinchart      - Cb\ :sub:`2`
3307cb8bd29SLaurent Pinchart      - Y'\ :sub:`2`
3317cb8bd29SLaurent Pinchart      - Cr\ :sub:`2`
3327cb8bd29SLaurent Pinchart      - Y'\ :sub:`3`
3337cb8bd29SLaurent Pinchart    * .. _V4L2-PIX-FMT-VYUY:
3347cb8bd29SLaurent Pinchart
3357cb8bd29SLaurent Pinchart      - ``V4L2_PIX_FMT_VYUY``
3367cb8bd29SLaurent Pinchart      - 'VYUY'
3377cb8bd29SLaurent Pinchart
3387cb8bd29SLaurent Pinchart      - Cr\ :sub:`0`
3397cb8bd29SLaurent Pinchart      - Y'\ :sub:`0`
3407cb8bd29SLaurent Pinchart      - Cb\ :sub:`0`
3417cb8bd29SLaurent Pinchart      - Y'\ :sub:`1`
3427cb8bd29SLaurent Pinchart      - Cr\ :sub:`2`
3437cb8bd29SLaurent Pinchart      - Y'\ :sub:`2`
3447cb8bd29SLaurent Pinchart      - Cb\ :sub:`2`
3457cb8bd29SLaurent Pinchart      - Y'\ :sub:`3`
3467cb8bd29SLaurent Pinchart    * .. _V4L2-PIX-FMT-YUYV:
3477cb8bd29SLaurent Pinchart
3487cb8bd29SLaurent Pinchart      - ``V4L2_PIX_FMT_YUYV``
3497cb8bd29SLaurent Pinchart      - 'YUYV'
3507cb8bd29SLaurent Pinchart
3517cb8bd29SLaurent Pinchart      - Y'\ :sub:`0`
3527cb8bd29SLaurent Pinchart      - Cb\ :sub:`0`
3537cb8bd29SLaurent Pinchart      - Y'\ :sub:`1`
3547cb8bd29SLaurent Pinchart      - Cr\ :sub:`0`
3557cb8bd29SLaurent Pinchart      - Y'\ :sub:`2`
3567cb8bd29SLaurent Pinchart      - Cb\ :sub:`2`
3577cb8bd29SLaurent Pinchart      - Y'\ :sub:`3`
3587cb8bd29SLaurent Pinchart      - Cr\ :sub:`2`
3597cb8bd29SLaurent Pinchart    * .. _V4L2-PIX-FMT-YVYU:
3607cb8bd29SLaurent Pinchart
3617cb8bd29SLaurent Pinchart      - ``V4L2_PIX_FMT_YVYU``
3627cb8bd29SLaurent Pinchart      - 'YVYU'
3637cb8bd29SLaurent Pinchart
3647cb8bd29SLaurent Pinchart      - Y'\ :sub:`0`
3657cb8bd29SLaurent Pinchart      - Cr\ :sub:`0`
3667cb8bd29SLaurent Pinchart      - Y'\ :sub:`1`
3677cb8bd29SLaurent Pinchart      - Cb\ :sub:`0`
3687cb8bd29SLaurent Pinchart      - Y'\ :sub:`2`
3697cb8bd29SLaurent Pinchart      - Cr\ :sub:`2`
3707cb8bd29SLaurent Pinchart      - Y'\ :sub:`3`
3717cb8bd29SLaurent Pinchart      - Cb\ :sub:`2`
3727cb8bd29SLaurent Pinchart
3730dc1d7a7STomi 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}|
3740dc1d7a7STomi Valkeinen
3750dc1d7a7STomi Valkeinen.. flat-table:: Packed YUV 4:2:2 Formats in 64-bit container
3760dc1d7a7STomi Valkeinen    :header-rows: 1
3770dc1d7a7STomi Valkeinen    :stub-columns: 0
3780dc1d7a7STomi Valkeinen
3790dc1d7a7STomi Valkeinen    * - Identifier
3800dc1d7a7STomi Valkeinen      - Code
3810dc1d7a7STomi Valkeinen      - Word 0
3820dc1d7a7STomi Valkeinen      - Word 1
3830dc1d7a7STomi Valkeinen      - Word 2
3840dc1d7a7STomi Valkeinen      - Word 3
3850dc1d7a7STomi Valkeinen    * .. _V4L2-PIX-FMT-Y210:
3860dc1d7a7STomi Valkeinen
3870dc1d7a7STomi Valkeinen      - ``V4L2_PIX_FMT_Y210``
3880dc1d7a7STomi Valkeinen      - 'Y210'
3890dc1d7a7STomi Valkeinen
3900dc1d7a7STomi Valkeinen      - Y'\ :sub:`0` (bits 15-6)
3910dc1d7a7STomi Valkeinen      - Cb\ :sub:`0` (bits 15-6)
3920dc1d7a7STomi Valkeinen      - Y'\ :sub:`1` (bits 15-6)
3930dc1d7a7STomi Valkeinen      - Cr\ :sub:`0` (bits 15-6)
3940dc1d7a7STomi Valkeinen    * .. _V4L2-PIX-FMT-Y212:
3950dc1d7a7STomi Valkeinen
3960dc1d7a7STomi Valkeinen      - ``V4L2_PIX_FMT_Y212``
3970dc1d7a7STomi Valkeinen      - 'Y212'
3980dc1d7a7STomi Valkeinen
3990dc1d7a7STomi Valkeinen      - Y'\ :sub:`0` (bits 15-4)
4000dc1d7a7STomi Valkeinen      - Cb\ :sub:`0` (bits 15-4)
4010dc1d7a7STomi Valkeinen      - Y'\ :sub:`1` (bits 15-4)
4020dc1d7a7STomi Valkeinen      - Cr\ :sub:`0` (bits 15-4)
4030dc1d7a7STomi Valkeinen    * .. _V4L2-PIX-FMT-Y216:
4040dc1d7a7STomi Valkeinen
4050dc1d7a7STomi Valkeinen      - ``V4L2_PIX_FMT_Y216``
4060dc1d7a7STomi Valkeinen      - 'Y216'
4070dc1d7a7STomi Valkeinen
4080dc1d7a7STomi Valkeinen      - Y'\ :sub:`0` (bits 15-0)
4090dc1d7a7STomi Valkeinen      - Cb\ :sub:`0` (bits 15-0)
4100dc1d7a7STomi Valkeinen      - Y'\ :sub:`1` (bits 15-0)
4110dc1d7a7STomi Valkeinen      - Cr\ :sub:`0` (bits 15-0)
4120dc1d7a7STomi Valkeinen
413fea13a69SMauro Carvalho Chehab.. raw:: latex
414fea13a69SMauro Carvalho Chehab
415fea13a69SMauro Carvalho Chehab    \normalsize
416fea13a69SMauro Carvalho Chehab
4177cb8bd29SLaurent Pinchart**Color Sample Location:**
4187cb8bd29SLaurent PinchartChroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
4197cb8bd29SLaurent Pincharthorizontally.
4207cb8bd29SLaurent Pinchart
4217cb8bd29SLaurent Pinchart
4227cb8bd29SLaurent Pinchart4:1:1 Subsampling
4237cb8bd29SLaurent Pinchart=================
4247cb8bd29SLaurent Pinchart
4257cb8bd29SLaurent PinchartThis format subsamples the chroma components horizontally by 4, storing 8
4267cb8bd29SLaurent Pinchartpixels in 12 bytes.
4277cb8bd29SLaurent Pinchart
428fea13a69SMauro Carvalho Chehab.. raw:: latex
429fea13a69SMauro Carvalho Chehab
430fea13a69SMauro Carvalho Chehab    \scriptsize
431fea13a69SMauro Carvalho Chehab
432fea13a69SMauro 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}|
433fea13a69SMauro Carvalho Chehab
4347cb8bd29SLaurent Pinchart.. flat-table:: Packed YUV 4:1:1 Formats
4357cb8bd29SLaurent Pinchart    :header-rows: 1
4367cb8bd29SLaurent Pinchart    :stub-columns: 0
4377cb8bd29SLaurent Pinchart
4387cb8bd29SLaurent Pinchart    * - Identifier
4397cb8bd29SLaurent Pinchart      - Code
4407cb8bd29SLaurent Pinchart      - Byte 0
4417cb8bd29SLaurent Pinchart      - Byte 1
4427cb8bd29SLaurent Pinchart      - Byte 2
4437cb8bd29SLaurent Pinchart      - Byte 3
4447cb8bd29SLaurent Pinchart      - Byte 4
4457cb8bd29SLaurent Pinchart      - Byte 5
4467cb8bd29SLaurent Pinchart      - Byte 6
4477cb8bd29SLaurent Pinchart      - Byte 7
4487cb8bd29SLaurent Pinchart      - Byte 8
4497cb8bd29SLaurent Pinchart      - Byte 9
4507cb8bd29SLaurent Pinchart      - Byte 10
4517cb8bd29SLaurent Pinchart      - Byte 11
4527cb8bd29SLaurent Pinchart    * .. _V4L2-PIX-FMT-Y41P:
4537cb8bd29SLaurent Pinchart
4547cb8bd29SLaurent Pinchart      - ``V4L2_PIX_FMT_Y41P``
4557cb8bd29SLaurent Pinchart      - 'Y41P'
4567cb8bd29SLaurent Pinchart
4577cb8bd29SLaurent Pinchart      - Cb\ :sub:`0`
4587cb8bd29SLaurent Pinchart      - Y'\ :sub:`0`
4597cb8bd29SLaurent Pinchart      - Cr\ :sub:`0`
4607cb8bd29SLaurent Pinchart      - Y'\ :sub:`1`
4617cb8bd29SLaurent Pinchart      - Cb\ :sub:`4`
4627cb8bd29SLaurent Pinchart      - Y'\ :sub:`2`
4637cb8bd29SLaurent Pinchart      - Cr\ :sub:`4`
4647cb8bd29SLaurent Pinchart      - Y'\ :sub:`3`
4657cb8bd29SLaurent Pinchart      - Y'\ :sub:`4`
4667cb8bd29SLaurent Pinchart      - Y'\ :sub:`5`
4677cb8bd29SLaurent Pinchart      - Y'\ :sub:`6`
4687cb8bd29SLaurent Pinchart      - Y'\ :sub:`7`
4697cb8bd29SLaurent Pinchart
470fea13a69SMauro Carvalho Chehab.. raw:: latex
471fea13a69SMauro Carvalho Chehab
472fea13a69SMauro Carvalho Chehab    \normalsize
473fea13a69SMauro Carvalho Chehab
4747cb8bd29SLaurent Pinchart.. note::
4757cb8bd29SLaurent Pinchart
4767cb8bd29SLaurent Pinchart    Do not confuse ``V4L2_PIX_FMT_Y41P`` with
4777cb8bd29SLaurent Pinchart    :ref:`V4L2_PIX_FMT_YUV411P <V4L2-PIX-FMT-YUV411P>`. Y41P is derived from
478fea13a69SMauro Carvalho Chehab    "YUV 4:1:1 **packed**", while YUV411P stands for "YUV 4:1:1 **planar**".
4797cb8bd29SLaurent Pinchart
4807cb8bd29SLaurent Pinchart**Color Sample Location:**
4817cb8bd29SLaurent PinchartChroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
4827cb8bd29SLaurent Pincharthorizontally.
483