• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.. Permission is granted to copy, distribute and/or modify this
2.. document under the terms of the GNU Free Documentation License,
3.. Version 1.1 or any later version published by the Free Software
4.. Foundation, with no Invariant Sections, no Front-Cover Texts
5.. and no Back-Cover Texts. A copy of the license is included at
6.. Documentation/media/uapi/fdl-appendix.rst.
7..
8.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
9
10.. _V4L2-PIX-FMT-NV12:
11.. _V4L2-PIX-FMT-NV21:
12
13******************************************************
14V4L2_PIX_FMT_NV12 ('NV12'), V4L2_PIX_FMT_NV21 ('NV21')
15******************************************************
16
17
18V4L2_PIX_FMT_NV21
19Formats with ½ horizontal and vertical chroma resolution, also known as
20YUV 4:2:0. One luminance and one chrominance plane with alternating
21chroma samples as opposed to ``V4L2_PIX_FMT_YVU420``
22
23
24Description
25===========
26
27These are two-plane versions of the YUV 4:2:0 format. The three
28components are separated into two sub-images or planes. The Y plane is
29first. The Y plane has one byte per pixel. For ``V4L2_PIX_FMT_NV12``, a
30combined CbCr plane immediately follows the Y plane in memory. The CbCr
31plane is the same width, in bytes, as the Y plane (and of the image),
32but is half as tall in pixels. Each CbCr pair belongs to four pixels.
33For example, Cb\ :sub:`0`/Cr\ :sub:`0` belongs to Y'\ :sub:`00`,
34Y'\ :sub:`01`, Y'\ :sub:`10`, Y'\ :sub:`11`. ``V4L2_PIX_FMT_NV21`` is
35the same except the Cb and Cr bytes are swapped, the CrCb plane starts
36with a Cr byte.
37
38If the Y plane has pad bytes after each row, then the CbCr plane has as
39many pad bytes after its rows.
40
41**Byte Order.**
42Each cell is one byte.
43
44
45.. flat-table::
46    :header-rows:  0
47    :stub-columns: 0
48
49    * - start + 0:
50      - Y'\ :sub:`00`
51      - Y'\ :sub:`01`
52      - Y'\ :sub:`02`
53      - Y'\ :sub:`03`
54    * - start + 4:
55      - Y'\ :sub:`10`
56      - Y'\ :sub:`11`
57      - Y'\ :sub:`12`
58      - Y'\ :sub:`13`
59    * - start + 8:
60      - Y'\ :sub:`20`
61      - Y'\ :sub:`21`
62      - Y'\ :sub:`22`
63      - Y'\ :sub:`23`
64    * - start + 12:
65      - Y'\ :sub:`30`
66      - Y'\ :sub:`31`
67      - Y'\ :sub:`32`
68      - Y'\ :sub:`33`
69    * - start + 16:
70      - Cb\ :sub:`00`
71      - Cr\ :sub:`00`
72      - Cb\ :sub:`01`
73      - Cr\ :sub:`01`
74    * - start + 20:
75      - Cb\ :sub:`10`
76      - Cr\ :sub:`10`
77      - Cb\ :sub:`11`
78      - Cr\ :sub:`11`
79
80
81**Color Sample Location:**
82
83.. flat-table::
84    :header-rows:  0
85    :stub-columns: 0
86
87    * -
88      - 0
89      -
90      - 1
91      - 2
92      -
93      - 3
94    * - 0
95      - Y
96      -
97      - Y
98      - Y
99      -
100      - Y
101    * -
102      -
103      - C
104      -
105      -
106      - C
107      -
108    * - 1
109      - Y
110      -
111      - Y
112      - Y
113      -
114      - Y
115    * -
116    * - 2
117      - Y
118      -
119      - Y
120      - Y
121      -
122      - Y
123    * -
124      -
125      - C
126      -
127      -
128      - C
129      -
130    * - 3
131      - Y
132      -
133      - Y
134      - Y
135      -
136      - Y
137