381 lines
7.1 KiB
ReStructuredText
381 lines
7.1 KiB
ReStructuredText
.. Permission is granted to copy, distribute and/or modify this
|
|
.. document under the terms of the GNU Free Documentation License,
|
|
.. Version 1.1 or any later version published by the Free Software
|
|
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
|
.. and no Back-Cover Texts. A copy of the license is included at
|
|
.. Documentation/media/uapi/fdl-appendix.rst.
|
|
..
|
|
.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
|
|
|
|
.. _packed-yuv:
|
|
|
|
******************
|
|
Packed YUV formats
|
|
******************
|
|
|
|
Description
|
|
===========
|
|
|
|
Similar to the packed RGB formats these formats store the Y, Cb and Cr
|
|
component of each pixel in one 16 or 32 bit word.
|
|
|
|
|
|
.. raw:: latex
|
|
|
|
\begingroup
|
|
\tiny
|
|
\setlength{\tabcolsep}{2pt}
|
|
|
|
.. _packed-yuv-formats:
|
|
|
|
.. tabularcolumns:: |p{2.5cm}|p{0.69cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|p{0.31cm}|
|
|
|
|
.. flat-table:: Packed YUV Image Formats
|
|
:header-rows: 2
|
|
:stub-columns: 0
|
|
|
|
* - Identifier
|
|
- Code
|
|
|
|
- :cspan:`7` Byte 0 in memory
|
|
|
|
- :cspan:`7` Byte 1
|
|
|
|
- :cspan:`7` Byte 2
|
|
|
|
- :cspan:`7` Byte 3
|
|
|
|
* -
|
|
-
|
|
- 7
|
|
- 6
|
|
- 5
|
|
- 4
|
|
- 3
|
|
- 2
|
|
- 1
|
|
- 0
|
|
|
|
- 7
|
|
- 6
|
|
- 5
|
|
- 4
|
|
- 3
|
|
- 2
|
|
- 1
|
|
- 0
|
|
|
|
- 7
|
|
- 6
|
|
- 5
|
|
- 4
|
|
- 3
|
|
- 2
|
|
- 1
|
|
- 0
|
|
|
|
- 7
|
|
- 6
|
|
- 5
|
|
- 4
|
|
- 3
|
|
- 2
|
|
- 1
|
|
- 0
|
|
|
|
* .. _V4L2-PIX-FMT-YUV444:
|
|
|
|
- ``V4L2_PIX_FMT_YUV444``
|
|
- 'Y444'
|
|
|
|
- Cb\ :sub:`3`
|
|
- Cb\ :sub:`2`
|
|
- Cb\ :sub:`1`
|
|
- Cb\ :sub:`0`
|
|
- Cr\ :sub:`3`
|
|
- Cr\ :sub:`2`
|
|
- Cr\ :sub:`1`
|
|
- Cr\ :sub:`0`
|
|
|
|
- a\ :sub:`3`
|
|
- a\ :sub:`2`
|
|
- a\ :sub:`1`
|
|
- a\ :sub:`0`
|
|
- Y'\ :sub:`3`
|
|
- Y'\ :sub:`2`
|
|
- Y'\ :sub:`1`
|
|
- Y'\ :sub:`0`
|
|
|
|
- :cspan:`15`
|
|
|
|
* .. _V4L2-PIX-FMT-YUV555:
|
|
|
|
- ``V4L2_PIX_FMT_YUV555``
|
|
- 'YUVO'
|
|
|
|
- Cb\ :sub:`2`
|
|
- Cb\ :sub:`1`
|
|
- Cb\ :sub:`0`
|
|
- Cr\ :sub:`4`
|
|
- Cr\ :sub:`3`
|
|
- Cr\ :sub:`2`
|
|
- Cr\ :sub:`1`
|
|
- Cr\ :sub:`0`
|
|
|
|
- a
|
|
- Y'\ :sub:`4`
|
|
- Y'\ :sub:`3`
|
|
- Y'\ :sub:`2`
|
|
- Y'\ :sub:`1`
|
|
- Y'\ :sub:`0`
|
|
- Cb\ :sub:`4`
|
|
- Cb\ :sub:`3`
|
|
|
|
- :cspan:`15`
|
|
* .. _V4L2-PIX-FMT-YUV565:
|
|
|
|
- ``V4L2_PIX_FMT_YUV565``
|
|
- 'YUVP'
|
|
|
|
- Cb\ :sub:`2`
|
|
- Cb\ :sub:`1`
|
|
- Cb\ :sub:`0`
|
|
- Cr\ :sub:`4`
|
|
- Cr\ :sub:`3`
|
|
- Cr\ :sub:`2`
|
|
- Cr\ :sub:`1`
|
|
- Cr\ :sub:`0`
|
|
|
|
- Y'\ :sub:`4`
|
|
- Y'\ :sub:`3`
|
|
- Y'\ :sub:`2`
|
|
- Y'\ :sub:`1`
|
|
- Y'\ :sub:`0`
|
|
- Cb\ :sub:`5`
|
|
- Cb\ :sub:`4`
|
|
- Cb\ :sub:`3`
|
|
|
|
- :cspan:`15`
|
|
|
|
* .. _V4L2-PIX-FMT-YUV32:
|
|
|
|
- ``V4L2_PIX_FMT_YUV32``
|
|
- 'YUV4'
|
|
|
|
- a\ :sub:`7`
|
|
- a\ :sub:`6`
|
|
- a\ :sub:`5`
|
|
- a\ :sub:`4`
|
|
- a\ :sub:`3`
|
|
- a\ :sub:`2`
|
|
- a\ :sub:`1`
|
|
- a\ :sub:`0`
|
|
|
|
- Y'\ :sub:`7`
|
|
- Y'\ :sub:`6`
|
|
- Y'\ :sub:`5`
|
|
- Y'\ :sub:`4`
|
|
- Y'\ :sub:`3`
|
|
- Y'\ :sub:`2`
|
|
- Y'\ :sub:`1`
|
|
- Y'\ :sub:`0`
|
|
|
|
- Cb\ :sub:`7`
|
|
- Cb\ :sub:`6`
|
|
- Cb\ :sub:`5`
|
|
- Cb\ :sub:`4`
|
|
- Cb\ :sub:`3`
|
|
- Cb\ :sub:`2`
|
|
- Cb\ :sub:`1`
|
|
- Cb\ :sub:`0`
|
|
|
|
- Cr\ :sub:`7`
|
|
- Cr\ :sub:`6`
|
|
- Cr\ :sub:`5`
|
|
- Cr\ :sub:`4`
|
|
- Cr\ :sub:`3`
|
|
- Cr\ :sub:`2`
|
|
- Cr\ :sub:`1`
|
|
- Cr\ :sub:`0`
|
|
|
|
* .. _V4L2-PIX-FMT-AYUV32:
|
|
|
|
- ``V4L2_PIX_FMT_AYUV32``
|
|
- 'AYUV'
|
|
|
|
- a\ :sub:`7`
|
|
- a\ :sub:`6`
|
|
- a\ :sub:`5`
|
|
- a\ :sub:`4`
|
|
- a\ :sub:`3`
|
|
- a\ :sub:`2`
|
|
- a\ :sub:`1`
|
|
- a\ :sub:`0`
|
|
|
|
- Y'\ :sub:`7`
|
|
- Y'\ :sub:`6`
|
|
- Y'\ :sub:`5`
|
|
- Y'\ :sub:`4`
|
|
- Y'\ :sub:`3`
|
|
- Y'\ :sub:`2`
|
|
- Y'\ :sub:`1`
|
|
- Y'\ :sub:`0`
|
|
|
|
- Cb\ :sub:`7`
|
|
- Cb\ :sub:`6`
|
|
- Cb\ :sub:`5`
|
|
- Cb\ :sub:`4`
|
|
- Cb\ :sub:`3`
|
|
- Cb\ :sub:`2`
|
|
- Cb\ :sub:`1`
|
|
- Cb\ :sub:`0`
|
|
|
|
- Cr\ :sub:`7`
|
|
- Cr\ :sub:`6`
|
|
- Cr\ :sub:`5`
|
|
- Cr\ :sub:`4`
|
|
- Cr\ :sub:`3`
|
|
- Cr\ :sub:`2`
|
|
- Cr\ :sub:`1`
|
|
- Cr\ :sub:`0`
|
|
|
|
* .. _V4L2-PIX-FMT-XYUV32:
|
|
|
|
- ``V4L2_PIX_FMT_XYUV32``
|
|
- 'XYUV'
|
|
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
|
|
- Y'\ :sub:`7`
|
|
- Y'\ :sub:`6`
|
|
- Y'\ :sub:`5`
|
|
- Y'\ :sub:`4`
|
|
- Y'\ :sub:`3`
|
|
- Y'\ :sub:`2`
|
|
- Y'\ :sub:`1`
|
|
- Y'\ :sub:`0`
|
|
|
|
- Cb\ :sub:`7`
|
|
- Cb\ :sub:`6`
|
|
- Cb\ :sub:`5`
|
|
- Cb\ :sub:`4`
|
|
- Cb\ :sub:`3`
|
|
- Cb\ :sub:`2`
|
|
- Cb\ :sub:`1`
|
|
- Cb\ :sub:`0`
|
|
|
|
- Cr\ :sub:`7`
|
|
- Cr\ :sub:`6`
|
|
- Cr\ :sub:`5`
|
|
- Cr\ :sub:`4`
|
|
- Cr\ :sub:`3`
|
|
- Cr\ :sub:`2`
|
|
- Cr\ :sub:`1`
|
|
- Cr\ :sub:`0`
|
|
|
|
* .. _V4L2-PIX-FMT-VUYA32:
|
|
|
|
- ``V4L2_PIX_FMT_VUYA32``
|
|
- 'VUYA'
|
|
|
|
- Cr\ :sub:`7`
|
|
- Cr\ :sub:`6`
|
|
- Cr\ :sub:`5`
|
|
- Cr\ :sub:`4`
|
|
- Cr\ :sub:`3`
|
|
- Cr\ :sub:`2`
|
|
- Cr\ :sub:`1`
|
|
- Cr\ :sub:`0`
|
|
|
|
- Cb\ :sub:`7`
|
|
- Cb\ :sub:`6`
|
|
- Cb\ :sub:`5`
|
|
- Cb\ :sub:`4`
|
|
- Cb\ :sub:`3`
|
|
- Cb\ :sub:`2`
|
|
- Cb\ :sub:`1`
|
|
- Cb\ :sub:`0`
|
|
|
|
- Y'\ :sub:`7`
|
|
- Y'\ :sub:`6`
|
|
- Y'\ :sub:`5`
|
|
- Y'\ :sub:`4`
|
|
- Y'\ :sub:`3`
|
|
- Y'\ :sub:`2`
|
|
- Y'\ :sub:`1`
|
|
- Y'\ :sub:`0`
|
|
|
|
- a\ :sub:`7`
|
|
- a\ :sub:`6`
|
|
- a\ :sub:`5`
|
|
- a\ :sub:`4`
|
|
- a\ :sub:`3`
|
|
- a\ :sub:`2`
|
|
- a\ :sub:`1`
|
|
- a\ :sub:`0`
|
|
|
|
* .. _V4L2-PIX-FMT-VUYX32:
|
|
|
|
- ``V4L2_PIX_FMT_VUYX32``
|
|
- 'VUYX'
|
|
|
|
- Cr\ :sub:`7`
|
|
- Cr\ :sub:`6`
|
|
- Cr\ :sub:`5`
|
|
- Cr\ :sub:`4`
|
|
- Cr\ :sub:`3`
|
|
- Cr\ :sub:`2`
|
|
- Cr\ :sub:`1`
|
|
- Cr\ :sub:`0`
|
|
|
|
- Cb\ :sub:`7`
|
|
- Cb\ :sub:`6`
|
|
- Cb\ :sub:`5`
|
|
- Cb\ :sub:`4`
|
|
- Cb\ :sub:`3`
|
|
- Cb\ :sub:`2`
|
|
- Cb\ :sub:`1`
|
|
- Cb\ :sub:`0`
|
|
|
|
- Y'\ :sub:`7`
|
|
- Y'\ :sub:`6`
|
|
- Y'\ :sub:`5`
|
|
- Y'\ :sub:`4`
|
|
- Y'\ :sub:`3`
|
|
- Y'\ :sub:`2`
|
|
- Y'\ :sub:`1`
|
|
- Y'\ :sub:`0`
|
|
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
|
|
.. raw:: latex
|
|
|
|
\endgroup
|
|
|
|
.. note::
|
|
|
|
#) Bit 7 is the most significant bit;
|
|
|
|
#) The value of a = alpha bits is undefined when reading from the driver,
|
|
ignored when writing to the driver, except when alpha blending has
|
|
been negotiated for a :ref:`Video Overlay <overlay>` or
|
|
:ref:`Video Output Overlay <osd>` for the formats Y444, YUV555 and
|
|
YUV4. However, for formats AYUV32 and VUYA32, the alpha component is
|
|
expected to contain a meaningful value that can be used by drivers
|
|
and applications. And, the formats XYUV32 and VUYX32 contain undefined
|
|
alpha values that must be ignored by all applications and drivers.
|