media: doc: pixfmt-yuv: Move all planar YUV formats to common file
Planar pixel formats are documented in separate files. This duplicates information, as those formats share comon traits. Consolidate them in a single file and summarize their descriptions in a single table. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
da785536e0
commit
2b006e748c
@ -461,3 +461,490 @@ number of lines as the luma plane.
|
||||
- Cr\ :sub:`32`
|
||||
- Cb\ :sub:`33`
|
||||
- Cr\ :sub:`33`
|
||||
|
||||
|
||||
Fully Planar YUV Formats
|
||||
========================
|
||||
|
||||
These formats store the Y, Cb and Cr components in three separate planes. The
|
||||
luma plane comes first, and the order of the two chroma planes varies between
|
||||
formats. The two chroma planes always use the same subsampling.
|
||||
|
||||
For memory contiguous formats, the number of padding pixels at the end of the
|
||||
chroma lines is identical to the padding of the luma lines. The chroma line
|
||||
stride (in bytes) is thus equal to the luma line stride divided by the
|
||||
horizontal subsampling factor. Vertical subsampling doesn't affect the line
|
||||
stride.
|
||||
|
||||
For non-contiguous formats, no constraints are enforced by the format on the
|
||||
relationship between the luma and chroma line padding and stride.
|
||||
|
||||
All components are stored with the same number of bits per component.
|
||||
|
||||
.. flat-table:: Overview of Fully Planar YUV Formats
|
||||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
* - Identifier
|
||||
- Code
|
||||
- Bits per component
|
||||
- Subsampling
|
||||
- Planes order [4]_
|
||||
- Contiguous [5]_
|
||||
|
||||
* - V4L2_PIX_FMT_YUV410
|
||||
- 'YUV9'
|
||||
- 8
|
||||
- 4:1:0
|
||||
- Y, Cb, Cr
|
||||
- Yes
|
||||
* - V4L2_PIX_FMT_YVU410
|
||||
- 'YVU9'
|
||||
- 8
|
||||
- 4:1:0
|
||||
- Y, Cr, Cb
|
||||
- Yes
|
||||
* - V4L2_PIX_FMT_YUV411P
|
||||
- '411P'
|
||||
- 8
|
||||
- 4:1:1
|
||||
- Y, Cb, Cr
|
||||
- Yes
|
||||
* - V4L2_PIX_FMT_YUV420M
|
||||
- 'YM12'
|
||||
- 8
|
||||
- 4:2:0
|
||||
- Y, Cb, Cr
|
||||
- No
|
||||
* - V4L2_PIX_FMT_YVU420M
|
||||
- 'YM21'
|
||||
- 8
|
||||
- 4:2:0
|
||||
- Y, Cr, Cb
|
||||
- No
|
||||
* - V4L2_PIX_FMT_YUV420
|
||||
- 'YU12'
|
||||
- 8
|
||||
- 4:2:0
|
||||
- Y, Cb, Cr
|
||||
- Yes
|
||||
* - V4L2_PIX_FMT_YVU420
|
||||
- 'YV12'
|
||||
- 8
|
||||
- 4:2:0
|
||||
- Y, Cr, Cb
|
||||
- Yes
|
||||
* - V4L2_PIX_FMT_YUV422P
|
||||
- '422P'
|
||||
- 8
|
||||
- 4:2:2
|
||||
- Y, Cb, Cr
|
||||
- Yes
|
||||
* - V4L2_PIX_FMT_YUV422M
|
||||
- 'YM16'
|
||||
- 8
|
||||
- 4:2:2
|
||||
- Y, Cb, Cr
|
||||
- No
|
||||
* - V4L2_PIX_FMT_YVU422M
|
||||
- 'YM61'
|
||||
- 8
|
||||
- 4:2:2
|
||||
- Y, Cr, Cb
|
||||
- No
|
||||
* - V4L2_PIX_FMT_YUV444M
|
||||
- 'YM24'
|
||||
- 8
|
||||
- 4:4:4
|
||||
- Y, Cb, Cr
|
||||
- No
|
||||
* - V4L2_PIX_FMT_YVU444M
|
||||
- 'YM42'
|
||||
- 8
|
||||
- 4:4:4
|
||||
- Y, Cr, Cb
|
||||
- No
|
||||
|
||||
.. note::
|
||||
|
||||
.. [4] Order of luma and chroma planes
|
||||
.. [5] Indicates if planes have to be contiguous in memory or can be
|
||||
disjoint
|
||||
|
||||
|
||||
**Color Sample Location:**
|
||||
Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
|
||||
horizontally.
|
||||
|
||||
.. _V4L2-PIX-FMT-YUV410:
|
||||
.. _V4L2-PIX-FMT-YVU410:
|
||||
|
||||
YUV410 and YVU410
|
||||
-----------------
|
||||
|
||||
Planar YUV 4:1:0 formats. The chroma planes are subsampled by 4 in each
|
||||
direction. Chroma lines contain a quarter of the number of pixels and bytes of
|
||||
the luma lines, and the chroma planes contain a quarter of the number of lines
|
||||
of the luma plane.
|
||||
|
||||
.. flat-table:: Sample 4x4 YUV410 Image
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cr\ :sub:`00`
|
||||
* - start + 17:
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
|
||||
.. _V4L2-PIX-FMT-YUV411P:
|
||||
|
||||
YUV411P
|
||||
-------
|
||||
|
||||
Planar YUV 4:1:1 formats. The chroma planes are subsampled by 4 in the
|
||||
horizontal direction. Chroma lines contain a quarter of the number of pixels
|
||||
and bytes of the luma lines, and the chroma planes contain the same number of
|
||||
lines as the luma plane.
|
||||
|
||||
.. flat-table:: Sample 4x4 YUV411P Image
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cb\ :sub:`00`
|
||||
* - start + 17:
|
||||
- Cb\ :sub:`10`
|
||||
* - start + 18:
|
||||
- Cb\ :sub:`20`
|
||||
* - start + 19:
|
||||
- Cb\ :sub:`30`
|
||||
* - start + 20:
|
||||
- Cr\ :sub:`00`
|
||||
* - start + 21:
|
||||
- Cr\ :sub:`10`
|
||||
* - start + 22:
|
||||
- Cr\ :sub:`20`
|
||||
* - start + 23:
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
|
||||
.. _V4L2-PIX-FMT-YUV420:
|
||||
.. _V4L2-PIX-FMT-YVU420:
|
||||
.. _V4L2-PIX-FMT-YUV420M:
|
||||
.. _V4L2-PIX-FMT-YVU420M:
|
||||
|
||||
YUV420, YVU420, YUV420M and YVU420M
|
||||
-----------------------------------
|
||||
|
||||
Planar YUV 4:2:0 formats. The chroma planes are subsampled by 2 in each
|
||||
direction. Chroma lines contain half of the number of pixels and bytes of the
|
||||
luma lines, and the chroma planes contain half of the number of lines of the
|
||||
luma plane.
|
||||
|
||||
.. flat-table:: Sample 4x4 YUV420 Image
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 18:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 20:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start + 22:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
.. flat-table:: Sample 4x4 YUV420M Image
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start1 + 2:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
* -
|
||||
* - start2 + 0:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start2 + 2:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
|
||||
.. _V4L2-PIX-FMT-YUV422P:
|
||||
.. _V4L2-PIX-FMT-YUV422M:
|
||||
.. _V4L2-PIX-FMT-YVU422M:
|
||||
|
||||
YUV422P, YUV422M and YVU422M
|
||||
----------------------------
|
||||
|
||||
Planar YUV 4:2:2 formats. The chroma planes are subsampled by 2 in the
|
||||
horizontal direction. Chroma lines contain half of the number of pixels and
|
||||
bytes of the luma lines, and the chroma planes contain the same number of lines
|
||||
as the luma plane.
|
||||
|
||||
.. flat-table:: Sample 4x4 YUV422P Image
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start + 18:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
* - start + 20:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
* - start + 22:
|
||||
- Cb\ :sub:`30`
|
||||
- Cb\ :sub:`31`
|
||||
* - start + 24:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 26:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 28:
|
||||
- Cr\ :sub:`20`
|
||||
- Cr\ :sub:`21`
|
||||
* - start + 30:
|
||||
- Cr\ :sub:`30`
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
.. flat-table:: Sample 4x4 YUV422M Image
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start1 + 2:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
* - start1 + 4:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
* - start1 + 6:
|
||||
- Cb\ :sub:`30`
|
||||
- Cb\ :sub:`31`
|
||||
* -
|
||||
* - start2 + 0:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start2 + 2:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
* - start2 + 4:
|
||||
- Cr\ :sub:`20`
|
||||
- Cr\ :sub:`21`
|
||||
* - start2 + 6:
|
||||
- Cr\ :sub:`30`
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
|
||||
.. _V4L2-PIX-FMT-YUV444M:
|
||||
.. _V4L2-PIX-FMT-YVU444M:
|
||||
|
||||
YUV444M and YVU444M
|
||||
-------------------
|
||||
|
||||
Planar YUV 4:4:4 formats. The chroma planes are no subsampled. Chroma lines
|
||||
contain the same number of pixels and bytes of the luma lines, and the chroma
|
||||
planes contain the same number of lines as the luma plane.
|
||||
|
||||
.. flat-table:: Sample 4x4 YUV444M Image
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
- Cb\ :sub:`02`
|
||||
- Cb\ :sub:`03`
|
||||
* - start1 + 4:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
- Cb\ :sub:`12`
|
||||
- Cb\ :sub:`13`
|
||||
* - start1 + 8:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
- Cb\ :sub:`22`
|
||||
- Cb\ :sub:`23`
|
||||
* - start1 + 12:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
- Cb\ :sub:`32`
|
||||
- Cb\ :sub:`33`
|
||||
* -
|
||||
* - start2 + 0:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
- Cr\ :sub:`02`
|
||||
- Cr\ :sub:`03`
|
||||
* - start2 + 4:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
- Cr\ :sub:`12`
|
||||
- Cr\ :sub:`13`
|
||||
* - start2 + 8:
|
||||
- Cr\ :sub:`20`
|
||||
- Cr\ :sub:`21`
|
||||
- Cr\ :sub:`22`
|
||||
- Cr\ :sub:`23`
|
||||
* - start2 + 12:
|
||||
- Cr\ :sub:`30`
|
||||
- Cr\ :sub:`31`
|
||||
- Cr\ :sub:`32`
|
||||
- Cr\ :sub:`33`
|
||||
|
@ -1,72 +0,0 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
|
||||
.. _V4L2-PIX-FMT-YVU410:
|
||||
.. _v4l2-pix-fmt-yuv410:
|
||||
|
||||
**********************************************************
|
||||
V4L2_PIX_FMT_YVU410 ('YVU9'), V4L2_PIX_FMT_YUV410 ('YUV9')
|
||||
**********************************************************
|
||||
|
||||
|
||||
V4L2_PIX_FMT_YUV410
|
||||
Planar formats with ¼ horizontal and vertical chroma resolution, also
|
||||
known as YUV 4:1:0
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
These are planar formats, as opposed to a packed format. The three
|
||||
components are separated into three sub-images or planes. The Y plane is
|
||||
first. The Y plane has one byte per pixel. For ``V4L2_PIX_FMT_YVU410``,
|
||||
the Cr plane immediately follows the Y plane in memory. The Cr plane is
|
||||
¼ the width and ¼ the height of the Y plane (and of the image). Each Cr
|
||||
belongs to 16 pixels, a four-by-four square of the image. Following the
|
||||
Cr plane is the Cb plane, just like the Cr plane.
|
||||
``V4L2_PIX_FMT_YUV410`` is the same, except the Cb plane comes first,
|
||||
then the Cr plane.
|
||||
|
||||
If the Y plane has pad bytes after each row, then the Cr and Cb planes
|
||||
have ¼ as many pad bytes after their rows. In other words, four Cx rows
|
||||
(including padding) are exactly as long as one Y row (including
|
||||
padding).
|
||||
|
||||
**Byte Order.**
|
||||
Each cell is one byte.
|
||||
|
||||
|
||||
|
||||
|
||||
.. flat-table::
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cr\ :sub:`00`
|
||||
* - start + 17:
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
|
||||
**Color Sample Location:**
|
||||
Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
|
||||
horizontally and vertically.
|
@ -1,80 +0,0 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
|
||||
.. _V4L2-PIX-FMT-YUV411P:
|
||||
|
||||
*****************************
|
||||
V4L2_PIX_FMT_YUV411P ('411P')
|
||||
*****************************
|
||||
|
||||
|
||||
Format with ¼ horizontal chroma resolution, also known as YUV 4:1:1.
|
||||
Planar layout as opposed to ``V4L2_PIX_FMT_Y41P``
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This format is not commonly used. This is a planar format similar to the
|
||||
4:2:2 planar format except with half as many chroma. The three
|
||||
components are separated into three sub-images or planes. The Y plane is
|
||||
first. The Y plane has one byte per pixel. The Cb plane immediately
|
||||
follows the Y plane in memory. The Cb plane is ¼ the width of the Y
|
||||
plane (and of the image). Each Cb belongs to 4 pixels all on the same
|
||||
row. For example, Cb\ :sub:`0` belongs to Y'\ :sub:`00`, Y'\ :sub:`01`,
|
||||
Y'\ :sub:`02` and Y'\ :sub:`03`. Following the Cb plane is the Cr plane,
|
||||
just like the Cb plane.
|
||||
|
||||
If the Y plane has pad bytes after each row, then the Cr and Cb planes
|
||||
have ¼ as many pad bytes after their rows. In other words, four C x rows
|
||||
(including padding) is exactly as long as one Y row (including padding).
|
||||
|
||||
**Byte Order.**
|
||||
Each cell is one byte.
|
||||
|
||||
|
||||
|
||||
.. flat-table::
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cb\ :sub:`00`
|
||||
* - start + 17:
|
||||
- Cb\ :sub:`10`
|
||||
* - start + 18:
|
||||
- Cb\ :sub:`20`
|
||||
* - start + 19:
|
||||
- Cb\ :sub:`30`
|
||||
* - start + 20:
|
||||
- Cr\ :sub:`00`
|
||||
* - start + 21:
|
||||
- Cr\ :sub:`10`
|
||||
* - start + 22:
|
||||
- Cr\ :sub:`20`
|
||||
* - start + 23:
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
|
||||
**Color Sample Location:**
|
||||
Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
|
||||
horizontally.
|
@ -1,81 +0,0 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
|
||||
.. _V4L2-PIX-FMT-YVU420:
|
||||
.. _V4L2-PIX-FMT-YUV420:
|
||||
|
||||
**********************************************************
|
||||
V4L2_PIX_FMT_YVU420 ('YV12'), V4L2_PIX_FMT_YUV420 ('YU12')
|
||||
**********************************************************
|
||||
|
||||
|
||||
V4L2_PIX_FMT_YUV420
|
||||
Planar formats with ½ horizontal and vertical chroma resolution, also
|
||||
known as YUV 4:2:0
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
These are planar formats, as opposed to a packed format. The three
|
||||
components are separated into three sub- images or planes. The Y plane
|
||||
is first. The Y plane has one byte per pixel. For
|
||||
``V4L2_PIX_FMT_YVU420``, the Cr plane immediately follows the Y plane in
|
||||
memory. The Cr plane is half the width and half the height of the Y
|
||||
plane (and of the image). Each Cr belongs to four pixels, a two-by-two
|
||||
square of the image. For example, Cr\ :sub:`0` belongs to Y'\ :sub:`00`,
|
||||
Y'\ :sub:`01`, Y'\ :sub:`10`, and Y'\ :sub:`11`. Following the Cr plane
|
||||
is the Cb plane, just like the Cr plane. ``V4L2_PIX_FMT_YUV420`` is the
|
||||
same except the Cb plane comes first, then the Cr plane.
|
||||
|
||||
If the Y plane has pad bytes after each row, then the Cr and Cb planes
|
||||
have half as many pad bytes after their rows. In other words, two Cx
|
||||
rows (including padding) is exactly as long as one Y row (including
|
||||
padding).
|
||||
|
||||
**Byte Order.**
|
||||
Each cell is one byte.
|
||||
|
||||
|
||||
|
||||
|
||||
.. flat-table::
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 18:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 20:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start + 22:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
|
||||
**Color Sample Location:**
|
||||
Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
|
||||
horizontally and vertically.
|
@ -1,90 +0,0 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
|
||||
.. _V4L2-PIX-FMT-YUV420M:
|
||||
.. _v4l2-pix-fmt-yvu420m:
|
||||
|
||||
************************************************************
|
||||
V4L2_PIX_FMT_YUV420M ('YM12'), V4L2_PIX_FMT_YVU420M ('YM21')
|
||||
************************************************************
|
||||
|
||||
|
||||
V4L2_PIX_FMT_YVU420M
|
||||
Variation of ``V4L2_PIX_FMT_YUV420`` and ``V4L2_PIX_FMT_YVU420`` with
|
||||
planes non contiguous in memory.
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This is a multi-planar format, as opposed to a packed format. The three
|
||||
components are separated into three sub-images or planes.
|
||||
|
||||
The Y plane is first. The Y plane has one byte per pixel. For
|
||||
``V4L2_PIX_FMT_YUV420M`` the Cb data constitutes the second plane which
|
||||
is half the width and half the height of the Y plane (and of the image).
|
||||
Each Cb belongs to four pixels, a two-by-two square of the image. For
|
||||
example, Cb\ :sub:`0` belongs to Y'\ :sub:`00`, Y'\ :sub:`01`,
|
||||
Y'\ :sub:`10`, and Y'\ :sub:`11`. The Cr data, just like the Cb plane,
|
||||
is in the third plane.
|
||||
|
||||
``V4L2_PIX_FMT_YVU420M`` is the same except the Cr data is stored in the
|
||||
second plane and the Cb data in the third plane.
|
||||
|
||||
If the Y plane has pad bytes after each row, then the Cb and Cr planes
|
||||
have half as many pad bytes after their rows. In other words, two Cx
|
||||
rows (including padding) is exactly as long as one Y row (including
|
||||
padding).
|
||||
|
||||
``V4L2_PIX_FMT_YUV420M`` and ``V4L2_PIX_FMT_YVU420M`` are intended to be
|
||||
used only in drivers and applications that support the multi-planar API,
|
||||
described in :ref:`planar-apis`.
|
||||
|
||||
**Byte Order.**
|
||||
Each cell is one byte.
|
||||
|
||||
|
||||
|
||||
|
||||
.. flat-table::
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start1 + 2:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
* -
|
||||
* - start2 + 0:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start2 + 2:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
|
||||
**Color Sample Location:**
|
||||
Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
|
||||
horizontally and vertically.
|
@ -1,101 +0,0 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
|
||||
.. _V4L2-PIX-FMT-YUV422M:
|
||||
.. _v4l2-pix-fmt-yvu422m:
|
||||
|
||||
************************************************************
|
||||
V4L2_PIX_FMT_YUV422M ('YM16'), V4L2_PIX_FMT_YVU422M ('YM61')
|
||||
************************************************************
|
||||
|
||||
|
||||
V4L2_PIX_FMT_YVU422M
|
||||
Planar formats with ½ horizontal resolution, also known as YUV and YVU
|
||||
4:2:2
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This is a multi-planar format, as opposed to a packed format. The three
|
||||
components are separated into three sub-images or planes.
|
||||
|
||||
The Y plane is first. The Y plane has one byte per pixel. For
|
||||
``V4L2_PIX_FMT_YUV422M`` the Cb data constitutes the second plane which
|
||||
is half the width of the Y plane (and of the image). Each Cb belongs to
|
||||
two pixels. For example, Cb\ :sub:`0` belongs to Y'\ :sub:`00`,
|
||||
Y'\ :sub:`01`. The Cr data, just like the Cb plane, is in the third
|
||||
plane.
|
||||
|
||||
``V4L2_PIX_FMT_YVU422M`` is the same except the Cr data is stored in the
|
||||
second plane and the Cb data in the third plane.
|
||||
|
||||
If the Y plane has pad bytes after each row, then the Cb and Cr planes
|
||||
have half as many pad bytes after their rows. In other words, two Cx
|
||||
rows (including padding) is exactly as long as one Y row (including
|
||||
padding).
|
||||
|
||||
``V4L2_PIX_FMT_YUV422M`` and ``V4L2_PIX_FMT_YVU422M`` are intended to be
|
||||
used only in drivers and applications that support the multi-planar API,
|
||||
described in :ref:`planar-apis`.
|
||||
|
||||
**Byte Order.**
|
||||
Each cell is one byte.
|
||||
|
||||
|
||||
|
||||
|
||||
.. flat-table::
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start1 + 2:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
* - start1 + 4:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
* - start1 + 6:
|
||||
- Cb\ :sub:`30`
|
||||
- Cb\ :sub:`31`
|
||||
* -
|
||||
* - start2 + 0:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start2 + 2:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
* - start2 + 4:
|
||||
- Cr\ :sub:`20`
|
||||
- Cr\ :sub:`21`
|
||||
* - start2 + 6:
|
||||
- Cr\ :sub:`30`
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
|
||||
**Color Sample Location:**
|
||||
Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
|
||||
horizontally.
|
@ -1,89 +0,0 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
|
||||
.. _V4L2-PIX-FMT-YUV422P:
|
||||
|
||||
*****************************
|
||||
V4L2_PIX_FMT_YUV422P ('422P')
|
||||
*****************************
|
||||
|
||||
|
||||
Format with ½ horizontal chroma resolution, also known as YUV 4:2:2.
|
||||
Planar layout as opposed to ``V4L2_PIX_FMT_YUYV``
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This format is not commonly used. This is a planar version of the YUYV
|
||||
format. The three components are separated into three sub-images or
|
||||
planes. The Y plane is first. The Y plane has one byte per pixel. The Cb
|
||||
plane immediately follows the Y plane in memory. The Cb plane is half
|
||||
the width of the Y plane (and of the image). Each Cb belongs to two
|
||||
pixels. For example, Cb\ :sub:`0` belongs to Y'\ :sub:`00`,
|
||||
Y'\ :sub:`01`. Following the Cb plane is the Cr plane, just like the Cb
|
||||
plane.
|
||||
|
||||
If the Y plane has pad bytes after each row, then the Cr and Cb planes
|
||||
have half as many pad bytes after their rows. In other words, two Cx
|
||||
rows (including padding) is exactly as long as one Y row (including
|
||||
padding).
|
||||
|
||||
**Byte Order.**
|
||||
Each cell is one byte.
|
||||
|
||||
|
||||
|
||||
|
||||
.. flat-table::
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start + 18:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
* - start + 20:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
* - start + 22:
|
||||
- Cb\ :sub:`30`
|
||||
- Cb\ :sub:`31`
|
||||
* - start + 24:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 26:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 28:
|
||||
- Cr\ :sub:`20`
|
||||
- Cr\ :sub:`21`
|
||||
* - start + 30:
|
||||
- Cr\ :sub:`30`
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
|
||||
**Color Sample Location:**
|
||||
Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
|
||||
horizontally.
|
@ -1,110 +0,0 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
|
||||
.. _V4L2-PIX-FMT-YUV444M:
|
||||
.. _v4l2-pix-fmt-yvu444m:
|
||||
|
||||
************************************************************
|
||||
V4L2_PIX_FMT_YUV444M ('YM24'), V4L2_PIX_FMT_YVU444M ('YM42')
|
||||
************************************************************
|
||||
|
||||
|
||||
V4L2_PIX_FMT_YVU444M
|
||||
Planar formats with full horizontal resolution, also known as YUV and
|
||||
YVU 4:4:4
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This is a multi-planar format, as opposed to a packed format. The three
|
||||
components are separated into three sub-images or planes.
|
||||
|
||||
The Y plane is first. The Y plane has one byte per pixel. For
|
||||
``V4L2_PIX_FMT_YUV444M`` the Cb data constitutes the second plane which
|
||||
is the same width and height as the Y plane (and as the image). The Cr
|
||||
data, just like the Cb plane, is in the third plane.
|
||||
|
||||
``V4L2_PIX_FMT_YVU444M`` is the same except the Cr data is stored in the
|
||||
second plane and the Cb data in the third plane.
|
||||
|
||||
If the Y plane has pad bytes after each row, then the Cb and Cr planes
|
||||
have the same number of pad bytes after their rows.
|
||||
|
||||
``V4L2_PIX_FMT_YUV444M`` and ``V4L2_PIX_FMT_YUV444M`` are intended to be
|
||||
used only in drivers and applications that support the multi-planar API,
|
||||
described in :ref:`planar-apis`.
|
||||
|
||||
**Byte Order.**
|
||||
Each cell is one byte.
|
||||
|
||||
|
||||
.. flat-table::
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
- Cb\ :sub:`02`
|
||||
- Cb\ :sub:`03`
|
||||
* - start1 + 4:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
- Cb\ :sub:`12`
|
||||
- Cb\ :sub:`13`
|
||||
* - start1 + 8:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
- Cb\ :sub:`22`
|
||||
- Cb\ :sub:`23`
|
||||
* - start1 + 12:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
- Cb\ :sub:`32`
|
||||
- Cb\ :sub:`33`
|
||||
* -
|
||||
* - start2 + 0:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
- Cr\ :sub:`02`
|
||||
- Cr\ :sub:`03`
|
||||
* - start2 + 4:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
- Cr\ :sub:`12`
|
||||
- Cr\ :sub:`13`
|
||||
* - start2 + 8:
|
||||
- Cr\ :sub:`20`
|
||||
- Cr\ :sub:`21`
|
||||
- Cr\ :sub:`22`
|
||||
- Cr\ :sub:`23`
|
||||
* - start2 + 12:
|
||||
- Cr\ :sub:`30`
|
||||
- Cr\ :sub:`31`
|
||||
- Cr\ :sub:`32`
|
||||
- Cr\ :sub:`33`
|
||||
|
||||
|
||||
**Color Sample Location:**
|
||||
Chroma samples are :ref:`co-sited<yuv-chroma-cosited>`.
|
@ -270,11 +270,4 @@ image.
|
||||
pixfmt-y8i
|
||||
pixfmt-y12i
|
||||
pixfmt-uv8
|
||||
pixfmt-yuv420
|
||||
pixfmt-yuv420m
|
||||
pixfmt-yuv422m
|
||||
pixfmt-yuv444m
|
||||
pixfmt-yuv410
|
||||
pixfmt-yuv422p
|
||||
pixfmt-yuv411p
|
||||
pixfmt-m420
|
||||
|
Loading…
Reference in New Issue
Block a user