~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst (Version linux-6.12-rc7) and /Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst (Version linux-5.11.22)


  1 .. SPDX-License-Identifier: GFDL-1.1-no-invari      1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2                                                     2 
  3 .. planar-yuv:                                      3 .. planar-yuv:
  4                                                     4 
  5 ******************                                  5 ******************
  6 Planar YUV formats                                  6 Planar YUV formats
  7 ******************                                  7 ******************
  8                                                     8 
  9 Planar formats split luma and chroma data in s      9 Planar formats split luma and chroma data in separate memory regions. They
 10 exist in two variants:                             10 exist in two variants:
 11                                                    11 
 12 - Semi-planar formats use two planes. The firs     12 - Semi-planar formats use two planes. The first plane is the luma plane and
 13   stores the Y components. The second plane is     13   stores the Y components. The second plane is the chroma plane and stores the
 14   Cb and Cr components interleaved.                14   Cb and Cr components interleaved.
 15                                                    15 
 16 - Fully planar formats use three planes to sto     16 - Fully planar formats use three planes to store the Y, Cb and Cr components
 17   separately.                                      17   separately.
 18                                                    18 
 19 Within a plane, components are stored in pixel     19 Within a plane, components are stored in pixel order, which may be linear or
 20 tiled. Padding may be supported at the end of      20 tiled. Padding may be supported at the end of the lines, and the line stride of
 21 the chroma planes may be constrained by the li     21 the chroma planes may be constrained by the line stride of the luma plane.
 22                                                    22 
 23 Some planar formats allow planes to be placed      23 Some planar formats allow planes to be placed in independent memory locations.
 24 They are identified by an 'M' suffix in their      24 They are identified by an 'M' suffix in their name (such as in
 25 ``V4L2_PIX_FMT_NV12M``). Those formats are int     25 ``V4L2_PIX_FMT_NV12M``). Those formats are intended to be used only in drivers
 26 and applications that support the multi-planar     26 and applications that support the multi-planar API, described in
 27 :ref:`planar-apis`. Unless explicitly document     27 :ref:`planar-apis`. Unless explicitly documented as supporting non-contiguous
 28 planes, formats require the planes to follow e     28 planes, formats require the planes to follow each other immediately in memory.
 29                                                    29 
 30                                                    30 
 31 Semi-Planar YUV Formats                            31 Semi-Planar YUV Formats
 32 =======================                            32 =======================
 33                                                    33 
 34 These formats are commonly referred to as NV f     34 These formats are commonly referred to as NV formats (NV12, NV16, ...). They
 35 use two planes, and store the luma components      35 use two planes, and store the luma components in the first plane and the chroma
 36 components in the second plane. The Cb and Cr      36 components in the second plane. The Cb and Cr components are interleaved in the
 37 chroma plane, with Cb and Cr always stored in      37 chroma plane, with Cb and Cr always stored in pairs. The chroma order is
 38 exposed as different formats.                      38 exposed as different formats.
 39                                                    39 
 40 For memory contiguous formats, the number of p     40 For memory contiguous formats, the number of padding pixels at the end of the
 41 chroma lines is identical to the padding of th     41 chroma lines is identical to the padding of the luma lines. Without horizontal
 42 subsampling, the chroma line stride (in bytes)     42 subsampling, the chroma line stride (in bytes) is thus equal to twice the luma
 43 line stride. With horizontal subsampling by 2,     43 line stride. With horizontal subsampling by 2, the chroma line stride is equal
 44 to the luma line stride. Vertical subsampling      44 to the luma line stride. Vertical subsampling doesn't affect the line stride.
 45                                                    45 
 46 For non-contiguous formats, no constraints are     46 For non-contiguous formats, no constraints are enforced by the format on the
 47 relationship between the luma and chroma line      47 relationship between the luma and chroma line padding and stride.
 48                                                    48 
 49 All components are stored with the same number     49 All components are stored with the same number of bits per component.
 50                                                    50 
 51 .. raw:: latex                                 << 
 52                                                << 
 53     \footnotesize                              << 
 54                                                << 
 55 .. tabularcolumns:: |p{5.2cm}|p{1.0cm}|p{1.5cm << 
 56                                                << 
 57 .. flat-table:: Overview of Semi-Planar YUV Fo     51 .. flat-table:: Overview of Semi-Planar YUV Formats
 58     :header-rows:  1                               52     :header-rows:  1
 59     :stub-columns: 0                               53     :stub-columns: 0
 60                                                    54 
 61     * - Identifier                                 55     * - Identifier
 62       - Code                                       56       - Code
 63       - Bits per component                         57       - Bits per component
 64       - Subsampling                                58       - Subsampling
 65       - Chroma order [1]_                          59       - Chroma order [1]_
 66       - Contiguous [2]_                            60       - Contiguous [2]_
 67       - Tiling [3]_                                61       - Tiling [3]_
 68     * - V4L2_PIX_FMT_NV12                          62     * - V4L2_PIX_FMT_NV12
 69       - 'NV12'                                     63       - 'NV12'
 70       - 8                                          64       - 8
 71       - 4:2:0                                      65       - 4:2:0
 72       - Cb, Cr                                     66       - Cb, Cr
 73       - Yes                                        67       - Yes
 74       - Linear                                     68       - Linear
 75     * - V4L2_PIX_FMT_NV21                          69     * - V4L2_PIX_FMT_NV21
 76       - 'NV21'                                     70       - 'NV21'
 77       - 8                                          71       - 8
 78       - 4:2:0                                      72       - 4:2:0
 79       - Cr, Cb                                 !!  73       - Cr, Cr
 80       - Yes                                        74       - Yes
 81       - Linear                                     75       - Linear
 82     * - V4L2_PIX_FMT_NV12M                         76     * - V4L2_PIX_FMT_NV12M
 83       - 'NM12'                                     77       - 'NM12'
 84       - 8                                          78       - 8
 85       - 4:2:0                                      79       - 4:2:0
 86       - Cb, Cr                                     80       - Cb, Cr
 87       - No                                         81       - No
 88       - Linear                                     82       - Linear
 89     * - V4L2_PIX_FMT_NV21M                         83     * - V4L2_PIX_FMT_NV21M
 90       - 'NM21'                                     84       - 'NM21'
 91       - 8                                          85       - 8
 92       - 4:2:0                                      86       - 4:2:0
 93       - Cr, Cb                                 !!  87       - Cr, Cr
 94       - No                                         88       - No
 95       - Linear                                     89       - Linear
 96     * - V4L2_PIX_FMT_NV12MT                        90     * - V4L2_PIX_FMT_NV12MT
 97       - 'TM12'                                     91       - 'TM12'
 98       - 8                                          92       - 8
 99       - 4:2:0                                      93       - 4:2:0
100       - Cb, Cr                                     94       - Cb, Cr
101       - No                                         95       - No
102       - 64x32 tiles                            !!  96       - 64x32 macroblocks
103                                                    97 
104         Horizontal Z order                         98         Horizontal Z order
105     * - V4L2_PIX_FMT_NV12MT_16X16                  99     * - V4L2_PIX_FMT_NV12MT_16X16
106       - 'VM12'                                    100       - 'VM12'
107       - 8                                         101       - 8
108       - 4:2:2                                     102       - 4:2:2
109       - Cb, Cr                                    103       - Cb, Cr
110       - No                                        104       - No
111       - 16x16 tiles                            !! 105       - 16x16 macroblocks
112     * - V4L2_PIX_FMT_P010                      << 
113       - 'P010'                                 << 
114       - 10                                     << 
115       - 4:2:0                                  << 
116       - Cb, Cr                                 << 
117       - Yes                                    << 
118       - Linear                                 << 
119     * - V4L2_PIX_FMT_P010_4L4                  << 
120       - 'T010'                                 << 
121       - 10                                     << 
122       - 4:2:0                                  << 
123       - Cb, Cr                                 << 
124       - Yes                                    << 
125       - 4x4 tiles                              << 
126     * - V4L2_PIX_FMT_P012                      << 
127       - 'P012'                                 << 
128       - 12                                     << 
129       - 4:2:0                                  << 
130       - Cb, Cr                                 << 
131       - Yes                                    << 
132       - Linear                                 << 
133     * - V4L2_PIX_FMT_P012M                     << 
134       - 'PM12'                                 << 
135       - 12                                     << 
136       - 4:2:0                                  << 
137       - Cb, Cr                                 << 
138       - No                                     << 
139       - Linear                                 << 
140     * - V4L2_PIX_FMT_NV15_4L4                  << 
141       - 'VT15'                                 << 
142       - 15                                     << 
143       - 4:2:0                                  << 
144       - Cb, Cr                                 << 
145       - Yes                                    << 
146       - 4x4 tiles                              << 
147     * - V4L2_PIX_FMT_MT2110T                   << 
148       - 'MT2T'                                 << 
149       - 15                                     << 
150       - 4:2:0                                  << 
151       - Cb, Cr                                 << 
152       - No                                     << 
153       - 16x32 / 16x16 tiles tiled low bits     << 
154     * - V4L2_PIX_FMT_MT2110R                   << 
155       - 'MT2R'                                 << 
156       - 15                                     << 
157       - 4:2:0                                  << 
158       - Cb, Cr                                 << 
159       - No                                     << 
160       - 16x32 / 16x16 tiles raster low bits    << 
161     * - V4L2_PIX_FMT_NV16                         106     * - V4L2_PIX_FMT_NV16
162       - 'NV16'                                    107       - 'NV16'
163       - 8                                         108       - 8
164       - 4:2:2                                     109       - 4:2:2
165       - Cb, Cr                                    110       - Cb, Cr
166       - Yes                                       111       - Yes
167       - Linear                                    112       - Linear
168     * - V4L2_PIX_FMT_NV61                         113     * - V4L2_PIX_FMT_NV61
169       - 'NV61'                                    114       - 'NV61'
170       - 8                                         115       - 8
171       - 4:2:2                                     116       - 4:2:2
172       - Cr, Cb                                 !! 117       - Cr, Cr
173       - Yes                                       118       - Yes
174       - Linear                                    119       - Linear
175     * - V4L2_PIX_FMT_NV16M                        120     * - V4L2_PIX_FMT_NV16M
176       - 'NM16'                                    121       - 'NM16'
177       - 8                                         122       - 8
178       - 4:2:2                                     123       - 4:2:2
179       - Cb, Cr                                    124       - Cb, Cr
180       - No                                        125       - No
181       - Linear                                    126       - Linear
182     * - V4L2_PIX_FMT_NV61M                        127     * - V4L2_PIX_FMT_NV61M
183       - 'NM61'                                    128       - 'NM61'
184       - 8                                         129       - 8
185       - 4:2:2                                     130       - 4:2:2
186       - Cr, Cb                                 !! 131       - Cr, Cr
187       - No                                        132       - No
188       - Linear                                    133       - Linear
189     * - V4L2_PIX_FMT_NV24                         134     * - V4L2_PIX_FMT_NV24
190       - 'NV24'                                    135       - 'NV24'
191       - 8                                         136       - 8
192       - 4:4:4                                     137       - 4:4:4
193       - Cb, Cr                                    138       - Cb, Cr
194       - Yes                                       139       - Yes
195       - Linear                                    140       - Linear
196     * - V4L2_PIX_FMT_NV42                         141     * - V4L2_PIX_FMT_NV42
197       - 'NV42'                                    142       - 'NV42'
198       - 8                                         143       - 8
199       - 4:4:4                                     144       - 4:4:4
200       - Cr, Cb                                 !! 145       - Cr, Cr
201       - Yes                                       146       - Yes
202       - Linear                                    147       - Linear
203                                                   148 
204 .. raw:: latex                                 !! 149 .. note::
205                                                   150 
206     \normalsize                                !! 151    .. [1] Order of chroma samples in the second plane
207                                                !! 152    .. [2] Indicates if planes have to be contiguous in memory or can be
208 .. [1] Order of chroma samples in the second p !! 153       disjoint
209 .. [2] Indicates if planes have to be contiguo !! 154    .. [3] Macroblock size in pixels
210        disjoint                                << 
211 .. [3] Macroblock size in pixels               << 
212                                                   155 
213                                                   156 
214 **Color Sample Location:**                        157 **Color Sample Location:**
215 Chroma samples are :ref:`interstitially sited<    158 Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
216 horizontally.                                     159 horizontally.
217                                                   160 
218                                                   161 
219 .. _V4L2-PIX-FMT-NV12:                            162 .. _V4L2-PIX-FMT-NV12:
220 .. _V4L2-PIX-FMT-NV21:                            163 .. _V4L2-PIX-FMT-NV21:
221 .. _V4L2-PIX-FMT-NV12M:                           164 .. _V4L2-PIX-FMT-NV12M:
222 .. _V4L2-PIX-FMT-NV21M:                           165 .. _V4L2-PIX-FMT-NV21M:
223 .. _V4L2-PIX-FMT-P010:                         << 
224                                                   166 
225 NV12, NV21, NV12M and NV21M                       167 NV12, NV21, NV12M and NV21M
226 ---------------------------                       168 ---------------------------
227                                                   169 
228 Semi-planar YUV 4:2:0 formats. The chroma plan    170 Semi-planar YUV 4:2:0 formats. The chroma plane is subsampled by 2 in each
229 direction. Chroma lines contain half the numbe    171 direction. Chroma lines contain half the number of pixels and the same number
230 of bytes as luma lines, and the chroma plane c    172 of bytes as luma lines, and the chroma plane contains half the number of lines
231 of the luma plane.                                173 of the luma plane.
232                                                   174 
233 .. flat-table:: Sample 4x4 NV12 Image             175 .. flat-table:: Sample 4x4 NV12 Image
234     :header-rows:  0                              176     :header-rows:  0
235     :stub-columns: 0                              177     :stub-columns: 0
236                                                   178 
237     * - start + 0:                                179     * - start + 0:
238       - Y'\ :sub:`00`                             180       - Y'\ :sub:`00`
239       - Y'\ :sub:`01`                             181       - Y'\ :sub:`01`
240       - Y'\ :sub:`02`                             182       - Y'\ :sub:`02`
241       - Y'\ :sub:`03`                             183       - Y'\ :sub:`03`
242     * - start + 4:                                184     * - start + 4:
243       - Y'\ :sub:`10`                             185       - Y'\ :sub:`10`
244       - Y'\ :sub:`11`                             186       - Y'\ :sub:`11`
245       - Y'\ :sub:`12`                             187       - Y'\ :sub:`12`
246       - Y'\ :sub:`13`                             188       - Y'\ :sub:`13`
247     * - start + 8:                                189     * - start + 8:
248       - Y'\ :sub:`20`                             190       - Y'\ :sub:`20`
249       - Y'\ :sub:`21`                             191       - Y'\ :sub:`21`
250       - Y'\ :sub:`22`                             192       - Y'\ :sub:`22`
251       - Y'\ :sub:`23`                             193       - Y'\ :sub:`23`
252     * - start + 12:                               194     * - start + 12:
253       - Y'\ :sub:`30`                             195       - Y'\ :sub:`30`
254       - Y'\ :sub:`31`                             196       - Y'\ :sub:`31`
255       - Y'\ :sub:`32`                             197       - Y'\ :sub:`32`
256       - Y'\ :sub:`33`                             198       - Y'\ :sub:`33`
257     * - start + 16:                               199     * - start + 16:
258       - Cb\ :sub:`00`                             200       - Cb\ :sub:`00`
259       - Cr\ :sub:`00`                             201       - Cr\ :sub:`00`
260       - Cb\ :sub:`01`                             202       - Cb\ :sub:`01`
261       - Cr\ :sub:`01`                             203       - Cr\ :sub:`01`
262     * - start + 20:                               204     * - start + 20:
263       - Cb\ :sub:`10`                             205       - Cb\ :sub:`10`
264       - Cr\ :sub:`10`                             206       - Cr\ :sub:`10`
265       - Cb\ :sub:`11`                             207       - Cb\ :sub:`11`
266       - Cr\ :sub:`11`                             208       - Cr\ :sub:`11`
267                                                   209 
268 .. flat-table:: Sample 4x4 NV12M Image            210 .. flat-table:: Sample 4x4 NV12M Image
269     :header-rows:  0                              211     :header-rows:  0
270     :stub-columns: 0                              212     :stub-columns: 0
271                                                   213 
272     * - start0 + 0:                               214     * - start0 + 0:
273       - Y'\ :sub:`00`                             215       - Y'\ :sub:`00`
274       - Y'\ :sub:`01`                             216       - Y'\ :sub:`01`
275       - Y'\ :sub:`02`                             217       - Y'\ :sub:`02`
276       - Y'\ :sub:`03`                             218       - Y'\ :sub:`03`
277     * - start0 + 4:                               219     * - start0 + 4:
278       - Y'\ :sub:`10`                             220       - Y'\ :sub:`10`
279       - Y'\ :sub:`11`                             221       - Y'\ :sub:`11`
280       - Y'\ :sub:`12`                             222       - Y'\ :sub:`12`
281       - Y'\ :sub:`13`                             223       - Y'\ :sub:`13`
282     * - start0 + 8:                               224     * - start0 + 8:
283       - Y'\ :sub:`20`                             225       - Y'\ :sub:`20`
284       - Y'\ :sub:`21`                             226       - Y'\ :sub:`21`
285       - Y'\ :sub:`22`                             227       - Y'\ :sub:`22`
286       - Y'\ :sub:`23`                             228       - Y'\ :sub:`23`
287     * - start0 + 12:                              229     * - start0 + 12:
288       - Y'\ :sub:`30`                             230       - Y'\ :sub:`30`
289       - Y'\ :sub:`31`                             231       - Y'\ :sub:`31`
290       - Y'\ :sub:`32`                             232       - Y'\ :sub:`32`
291       - Y'\ :sub:`33`                             233       - Y'\ :sub:`33`
292     * -                                           234     * -
293     * - start1 + 0:                               235     * - start1 + 0:
294       - Cb\ :sub:`00`                             236       - Cb\ :sub:`00`
295       - Cr\ :sub:`00`                             237       - Cr\ :sub:`00`
296       - Cb\ :sub:`01`                             238       - Cb\ :sub:`01`
297       - Cr\ :sub:`01`                             239       - Cr\ :sub:`01`
298     * - start1 + 4:                               240     * - start1 + 4:
299       - Cb\ :sub:`10`                             241       - Cb\ :sub:`10`
300       - Cr\ :sub:`10`                             242       - Cr\ :sub:`10`
301       - Cb\ :sub:`11`                             243       - Cb\ :sub:`11`
302       - Cr\ :sub:`11`                             244       - Cr\ :sub:`11`
303                                                   245 
304                                                   246 
305 .. _V4L2-PIX-FMT-NV12MT:                          247 .. _V4L2-PIX-FMT-NV12MT:
306 .. _V4L2-PIX-FMT-NV12MT-16X16:                    248 .. _V4L2-PIX-FMT-NV12MT-16X16:
307 .. _V4L2-PIX-FMT-NV12-4L4:                     << 
308 .. _V4L2-PIX-FMT-NV12-16L16:                   << 
309 .. _V4L2-PIX-FMT-NV12-32L32:                   << 
310 .. _V4L2-PIX-FMT-NV12M-8L128:                  << 
311 .. _V4L2-PIX-FMT-NV12-8L128:                   << 
312 .. _V4L2-PIX-FMT-MM21:                         << 
313                                                   249 
314 Tiled NV12                                     !! 250 NV12MT and MV12MT_16X16
315 ----------                                     !! 251 -----------------------
316                                                   252 
317 Semi-planar YUV 4:2:0 formats, using macrobloc    253 Semi-planar YUV 4:2:0 formats, using macroblock tiling. The chroma plane is
318 subsampled by 2 in each direction. Chroma line    254 subsampled by 2 in each direction. Chroma lines contain half the number of
319 pixels and the same number of bytes as luma li    255 pixels and the same number of bytes as luma lines, and the chroma plane
320 contains half the number of lines of the luma  !! 256 contains half the number of lines of the luma plane.
321 previous one linearly in memory (from left to  << 
322                                                   257 
323 ``V4L2_PIX_FMT_NV12MT_16X16`` is similar to `` !! 258 ``V4L2_PIX_FMT_NV12MT_16X16`` stores pixel in 2D 16x16 macroblocks, and stores
324 pixels in 2D 16x16 tiles, and stores tiles lin !! 259 macroblocks linearly in memory. The line stride and image height must be
325 The line stride and image height must be align !! 260 aligned to a multiple of 16. The layouts of the luma and chroma planes are
326 The layouts of the luma and chroma planes are  !! 261 identical.
327                                                !! 262 
328 ``V4L2_PIX_FMT_NV12MT`` is similar to ``V4L2_P !! 263 ``V4L2_PIX_FMT_NV12MT`` stores pixels in 2D 64x32 macroblocks, and stores 2x2
329 pixels in 2D 64x32 tiles, and stores 2x2 group !! 264 groups of macroblocks in Z-order in memory, alternating Z and mirrored Z shapes
330 Z-order in memory, alternating Z and mirrored  !! 265 horizontally.  The line stride must be a multiple of 128 pixels to ensure an
331 The line stride must be a multiple of 128 pixe << 
332 integer number of Z shapes. The image height m    266 integer number of Z shapes. The image height must be a multiple of 32 pixels.
333 If the vertical resolution is an odd number of !! 267 If the vertical resolution is an odd number of macroblocks, the last row of
334 tiles is stored in linear order. The layouts o !! 268 macroblocks is stored in linear order. The layouts of the luma and chroma
335 planes are identical.                             269 planes are identical.
336                                                   270 
337 .. _nv12mt:                                       271 .. _nv12mt:
338                                                   272 
339 .. kernel-figure:: nv12mt.svg                     273 .. kernel-figure:: nv12mt.svg
340     :alt:    nv12mt.svg                           274     :alt:    nv12mt.svg
341     :align:  center                               275     :align:  center
342                                                   276 
343     V4L2_PIX_FMT_NV12MT macroblock Z shape mem    277     V4L2_PIX_FMT_NV12MT macroblock Z shape memory layout
344                                                   278 
345 .. _nv12mt_ex:                                    279 .. _nv12mt_ex:
346                                                   280 
347 .. kernel-figure:: nv12mt_example.svg             281 .. kernel-figure:: nv12mt_example.svg
348     :alt:    nv12mt_example.svg                   282     :alt:    nv12mt_example.svg
349     :align:  center                               283     :align:  center
350                                                   284 
351     Example V4L2_PIX_FMT_NV12MT memory layout  !! 285     Example V4L2_PIX_FMT_NV12MT memory layout of macroblocks
352                                                << 
353 ``V4L2_PIX_FMT_NV12_4L4`` stores pixels in 4x4 << 
354 tiles linearly in memory. The line stride and  << 
355 aligned to a multiple of 4. The layouts of the << 
356 identical.                                     << 
357                                                << 
358 ``V4L2_PIX_FMT_NV12_16L16`` stores pixels in 1 << 
359 tiles linearly in memory. The line stride and  << 
360 aligned to a multiple of 16. The layouts of th << 
361 identical.                                     << 
362                                                << 
363 ``V4L2_PIX_FMT_NV12_32L32`` stores pixels in 3 << 
364 tiles linearly in memory. The line stride and  << 
365 aligned to a multiple of 32. The layouts of th << 
366 identical.                                     << 
367                                                << 
368 ``V4L2_PIX_FMT_NV12M_8L128`` is similar to ``V << 
369 pixels in 2D 8x128 tiles, and stores tiles lin << 
370 The image height must be aligned to a multiple << 
371 The layouts of the luma and chroma planes are  << 
372                                                << 
373 ``V4L2_PIX_FMT_NV12_8L128`` is similar to ``V4 << 
374 two planes in one memory.                      << 
375                                                << 
376 ``V4L2_PIX_FMT_MM21`` store luma pixel in 16x3 << 
377 in 16x16 tiles. The line stride must be aligne << 
378 image height must be aligned to a multiple of  << 
379 tiles are identical, even though the tile size << 
380 two non-contiguous planes.                     << 
381                                                << 
382                                                << 
383 .. _V4L2-PIX-FMT-NV15-4L4:                     << 
384 .. _V4L2-PIX-FMT-NV12M-10BE-8L128:             << 
385 .. _V4L2-PIX-FMT-NV12-10BE-8L128:              << 
386 .. _V4L2-PIX-FMT-MT2110T:                      << 
387 .. _V4L2-PIX-FMT-MT2110R:                      << 
388                                                << 
389 Tiled NV15                                     << 
390 ----------                                     << 
391                                                << 
392 ``V4L2_PIX_FMT_NV15_4L4`` Semi-planar 10-bit Y << 
393 All components are packed without any padding  << 
394 As a side-effect, each group of 4 components a << 
395 (YYYY or UVUV = 4 * 10 bits = 40 bits = 5 byte << 
396                                                << 
397 ``V4L2_PIX_FMT_NV12M_10BE_8L128`` is similar t << 
398 10 bits pixels in 2D 8x128 tiles, and stores t << 
399 the data is arranged in big endian order.      << 
400 The image height must be aligned to a multiple << 
401 The layouts of the luma and chroma planes are  << 
402 Note the tile size is 8bytes multiplied by 128 << 
403 it means that the low bits and high bits of on << 
404 The 10 bit pixels are packed, so 5 bytes conta << 
405 this (for luma):                               << 
406 byte 0: Y0(bits 9-2)                           << 
407 byte 1: Y0(bits 1-0) Y1(bits 9-4)              << 
408 byte 2: Y1(bits 3-0) Y2(bits 9-6)              << 
409 byte 3: Y2(bits 5-0) Y3(bits 9-8)              << 
410 byte 4: Y3(bits 7-0)                           << 
411                                                << 
412 ``V4L2_PIX_FMT_NV12_10BE_8L128`` is similar to << 
413 two planes in one memory.                      << 
414                                                << 
415 ``V4L2_PIX_FMT_MT2110T`` is one of Mediatek pa << 
416 It is fully packed 10bit 4:2:0 format like NV1 << 
417 that the lower two bits data is stored in sepa << 
418 composed of 16x32 luma tiles, and 16x16 chroma << 
419 long, divided into 8 partitions of 80 bytes.   << 
420 partition represent the 2 least significant bi << 
421 64 bytes represent the 8 most significant bits << 
422                                                << 
423 .. kernel-figure:: mt2110t.svg                 << 
424     :alt:    mt2110t.svg                       << 
425     :align:  center                            << 
426                                                << 
427     Layout of MT2110T Chroma Tile              << 
428                                                << 
429 Filtering out the upper part of each partition << 
430 ``V4L2_PIX_FMT_MM21`` frame. A partition is a  << 
431 lower two bits is said to be tiled since each  << 
432 bits of the column of for pixel matching the s << 
433 only have 4 partitions.                        << 
434                                                << 
435 .. flat-table:: MT2110T LSB bits layout        << 
436     :header-rows:  1                           << 
437     :stub-columns: 1                           << 
438                                                << 
439     * -                                        << 
440       - start + 0:                             << 
441       - start + 1:                             << 
442       - . . .                                  << 
443       - start\ +\ 15:                          << 
444     * - Bits 1:0                               << 
445       - Y'\ :sub:`0:0`                         << 
446       - Y'\ :sub:`0:1`                         << 
447       - . . .                                  << 
448       - Y'\ :sub:`0:15`                        << 
449     * - Bit 3:2                                << 
450       - Y'\ :sub:`1:0`                         << 
451       - Y'\ :sub:`1:1`                         << 
452       - . . .                                  << 
453       - Y'\ :sub:`1:15`                        << 
454     * - Bits 5:4                               << 
455       - Y'\ :sub:`2:0`                         << 
456       - Y'\ :sub:`2:1`                         << 
457       - . . .                                  << 
458       - Y'\ :sub:`2:15`                        << 
459     * - Bits 7:6                               << 
460       - Y'\ :sub:`3:0`                         << 
461       - Y'\ :sub:`3:1`                         << 
462       - . . .                                  << 
463       - Y'\ :sub:`3:15`                        << 
464                                                << 
465 ``V4L2_PIX_FMT_MT2110R`` is identical to ``V4L << 
466 the least significant two bits layout is in ra << 
467 contains 4 pixels of the first row, with 4 byt << 
468                                                << 
469 .. flat-table:: MT2110R LSB bits layout        << 
470     :header-rows:  2                           << 
471     :stub-columns: 1                           << 
472                                                << 
473     * -                                        << 
474       - :cspan:`3` Byte 0                      << 
475       - ...                                    << 
476       - :cspan:`3` Byte 3                      << 
477     * -                                        << 
478       - 7:6                                    << 
479       - 5:4                                    << 
480       - 3:2                                    << 
481       - 1:0                                    << 
482       - ...                                    << 
483       - 7:6                                    << 
484       - 5:4                                    << 
485       - 3:2                                    << 
486       - 1:0                                    << 
487     * - start + 0:                             << 
488       - Y'\ :sub:`0:3`                         << 
489       - Y'\ :sub:`0:2`                         << 
490       - Y'\ :sub:`0:1`                         << 
491       - Y'\ :sub:`0:0`                         << 
492       - ...                                    << 
493       - Y'\ :sub:`0:15`                        << 
494       - Y'\ :sub:`0:14`                        << 
495       - Y'\ :sub:`0:13`                        << 
496       - Y'\ :sub:`0:12`                        << 
497     * - start + 4:                             << 
498       - Y'\ :sub:`1:3`                         << 
499       - Y'\ :sub:`1:2`                         << 
500       - Y'\ :sub:`1:1`                         << 
501       - Y'\ :sub:`1:0`                         << 
502       - ...                                    << 
503       - Y'\ :sub:`1:15`                        << 
504       - Y'\ :sub:`1:14`                        << 
505       - Y'\ :sub:`1:13`                        << 
506       - Y'\ :sub:`1:12`                        << 
507     * - start + 8:                             << 
508       - Y'\ :sub:`2:3`                         << 
509       - Y'\ :sub:`2:2`                         << 
510       - Y'\ :sub:`2:1`                         << 
511       - Y'\ :sub:`2:0`                         << 
512       - ...                                    << 
513       - Y'\ :sub:`2:15`                        << 
514       - Y'\ :sub:`2:14`                        << 
515       - Y'\ :sub:`2:13`                        << 
516       - Y'\ :sub:`2:12`                        << 
517     * - start\ +\ 12:                          << 
518       - Y'\ :sub:`3:3`                         << 
519       - Y'\ :sub:`3:2`                         << 
520       - Y'\ :sub:`3:1`                         << 
521       - Y'\ :sub:`3:0`                         << 
522       - ...                                    << 
523       - Y'\ :sub:`3:15`                        << 
524       - Y'\ :sub:`3:14`                        << 
525       - Y'\ :sub:`3:13`                        << 
526       - Y'\ :sub:`3:12`                        << 
527                                                   286 
528                                                   287 
529 .. _V4L2-PIX-FMT-NV16:                            288 .. _V4L2-PIX-FMT-NV16:
530 .. _V4L2-PIX-FMT-NV61:                            289 .. _V4L2-PIX-FMT-NV61:
531 .. _V4L2-PIX-FMT-NV16M:                           290 .. _V4L2-PIX-FMT-NV16M:
532 .. _V4L2-PIX-FMT-NV61M:                           291 .. _V4L2-PIX-FMT-NV61M:
533                                                   292 
534 NV16, NV61, NV16M and NV61M                       293 NV16, NV61, NV16M and NV61M
535 ---------------------------                       294 ---------------------------
536                                                   295 
537 Semi-planar YUV 4:2:2 formats. The chroma plan    296 Semi-planar YUV 4:2:2 formats. The chroma plane is subsampled by 2 in the
538 horizontal direction. Chroma lines contain hal    297 horizontal direction. Chroma lines contain half the number of pixels and the
539 same number of bytes as luma lines, and the ch    298 same number of bytes as luma lines, and the chroma plane contains the same
540 number of lines as the luma plane.                299 number of lines as the luma plane.
541                                                   300 
542 .. flat-table:: Sample 4x4 NV16 Image             301 .. flat-table:: Sample 4x4 NV16 Image
543     :header-rows:  0                              302     :header-rows:  0
544     :stub-columns: 0                              303     :stub-columns: 0
545                                                   304 
546     * - start + 0:                                305     * - start + 0:
547       - Y'\ :sub:`00`                             306       - Y'\ :sub:`00`
548       - Y'\ :sub:`01`                             307       - Y'\ :sub:`01`
549       - Y'\ :sub:`02`                             308       - Y'\ :sub:`02`
550       - Y'\ :sub:`03`                             309       - Y'\ :sub:`03`
551     * - start + 4:                                310     * - start + 4:
552       - Y'\ :sub:`10`                             311       - Y'\ :sub:`10`
553       - Y'\ :sub:`11`                             312       - Y'\ :sub:`11`
554       - Y'\ :sub:`12`                             313       - Y'\ :sub:`12`
555       - Y'\ :sub:`13`                             314       - Y'\ :sub:`13`
556     * - start + 8:                                315     * - start + 8:
557       - Y'\ :sub:`20`                             316       - Y'\ :sub:`20`
558       - Y'\ :sub:`21`                             317       - Y'\ :sub:`21`
559       - Y'\ :sub:`22`                             318       - Y'\ :sub:`22`
560       - Y'\ :sub:`23`                             319       - Y'\ :sub:`23`
561     * - start + 12:                               320     * - start + 12:
562       - Y'\ :sub:`30`                             321       - Y'\ :sub:`30`
563       - Y'\ :sub:`31`                             322       - Y'\ :sub:`31`
564       - Y'\ :sub:`32`                             323       - Y'\ :sub:`32`
565       - Y'\ :sub:`33`                             324       - Y'\ :sub:`33`
566     * - start + 16:                               325     * - start + 16:
567       - Cb\ :sub:`00`                             326       - Cb\ :sub:`00`
568       - Cr\ :sub:`00`                             327       - Cr\ :sub:`00`
569       - Cb\ :sub:`01`                             328       - Cb\ :sub:`01`
570       - Cr\ :sub:`01`                             329       - Cr\ :sub:`01`
571     * - start + 20:                               330     * - start + 20:
572       - Cb\ :sub:`10`                             331       - Cb\ :sub:`10`
573       - Cr\ :sub:`10`                             332       - Cr\ :sub:`10`
574       - Cb\ :sub:`11`                             333       - Cb\ :sub:`11`
575       - Cr\ :sub:`11`                             334       - Cr\ :sub:`11`
576     * - start + 24:                               335     * - start + 24:
577       - Cb\ :sub:`20`                             336       - Cb\ :sub:`20`
578       - Cr\ :sub:`20`                             337       - Cr\ :sub:`20`
579       - Cb\ :sub:`21`                             338       - Cb\ :sub:`21`
580       - Cr\ :sub:`21`                             339       - Cr\ :sub:`21`
581     * - start + 28:                               340     * - start + 28:
582       - Cb\ :sub:`30`                             341       - Cb\ :sub:`30`
583       - Cr\ :sub:`30`                             342       - Cr\ :sub:`30`
584       - Cb\ :sub:`31`                             343       - Cb\ :sub:`31`
585       - Cr\ :sub:`31`                             344       - Cr\ :sub:`31`
586                                                   345 
587 .. flat-table:: Sample 4x4 NV16M Image            346 .. flat-table:: Sample 4x4 NV16M Image
588     :header-rows:  0                              347     :header-rows:  0
589     :stub-columns: 0                              348     :stub-columns: 0
590                                                   349 
591     * - start0 + 0:                               350     * - start0 + 0:
592       - Y'\ :sub:`00`                             351       - Y'\ :sub:`00`
593       - Y'\ :sub:`01`                             352       - Y'\ :sub:`01`
594       - Y'\ :sub:`02`                             353       - Y'\ :sub:`02`
595       - Y'\ :sub:`03`                             354       - Y'\ :sub:`03`
596     * - start0 + 4:                               355     * - start0 + 4:
597       - Y'\ :sub:`10`                             356       - Y'\ :sub:`10`
598       - Y'\ :sub:`11`                             357       - Y'\ :sub:`11`
599       - Y'\ :sub:`12`                             358       - Y'\ :sub:`12`
600       - Y'\ :sub:`13`                             359       - Y'\ :sub:`13`
601     * - start0 + 8:                               360     * - start0 + 8:
602       - Y'\ :sub:`20`                             361       - Y'\ :sub:`20`
603       - Y'\ :sub:`21`                             362       - Y'\ :sub:`21`
604       - Y'\ :sub:`22`                             363       - Y'\ :sub:`22`
605       - Y'\ :sub:`23`                             364       - Y'\ :sub:`23`
606     * - start0 + 12:                              365     * - start0 + 12:
607       - Y'\ :sub:`30`                             366       - Y'\ :sub:`30`
608       - Y'\ :sub:`31`                             367       - Y'\ :sub:`31`
609       - Y'\ :sub:`32`                             368       - Y'\ :sub:`32`
610       - Y'\ :sub:`33`                             369       - Y'\ :sub:`33`
611     * -                                           370     * -
612     * - start1 + 0:                               371     * - start1 + 0:
613       - Cb\ :sub:`00`                             372       - Cb\ :sub:`00`
614       - Cr\ :sub:`00`                             373       - Cr\ :sub:`00`
615       - Cb\ :sub:`02`                             374       - Cb\ :sub:`02`
616       - Cr\ :sub:`02`                             375       - Cr\ :sub:`02`
617     * - start1 + 4:                               376     * - start1 + 4:
618       - Cb\ :sub:`10`                             377       - Cb\ :sub:`10`
619       - Cr\ :sub:`10`                             378       - Cr\ :sub:`10`
620       - Cb\ :sub:`12`                             379       - Cb\ :sub:`12`
621       - Cr\ :sub:`12`                             380       - Cr\ :sub:`12`
622     * - start1 + 8:                               381     * - start1 + 8:
623       - Cb\ :sub:`20`                             382       - Cb\ :sub:`20`
624       - Cr\ :sub:`20`                             383       - Cr\ :sub:`20`
625       - Cb\ :sub:`22`                             384       - Cb\ :sub:`22`
626       - Cr\ :sub:`22`                             385       - Cr\ :sub:`22`
627     * - start1 + 12:                              386     * - start1 + 12:
628       - Cb\ :sub:`30`                             387       - Cb\ :sub:`30`
629       - Cr\ :sub:`30`                             388       - Cr\ :sub:`30`
630       - Cb\ :sub:`32`                             389       - Cb\ :sub:`32`
631       - Cr\ :sub:`32`                             390       - Cr\ :sub:`32`
632                                                   391 
633                                                   392 
634 .. _V4L2-PIX-FMT-NV24:                            393 .. _V4L2-PIX-FMT-NV24:
635 .. _V4L2-PIX-FMT-NV42:                            394 .. _V4L2-PIX-FMT-NV42:
636                                                   395 
637 NV24 and NV42                                     396 NV24 and NV42
638 -------------                                     397 -------------
639                                                   398 
640 Semi-planar YUV 4:4:4 formats. The chroma plan !! 399 Semi-planar YUV 4:4:4 formats. The chroma plane is subsampled by 2 in the
641 Chroma lines contain the same number of pixels !! 400 horizontal direction. Chroma lines contain half the number of pixels and the
642 number of bytes as luma lines, and the chroma  !! 401 same number of bytes as luma lines, and the chroma plane contains the same
643 number of lines as the luma plane.                402 number of lines as the luma plane.
644                                                   403 
645 .. flat-table:: Sample 4x4 NV24 Image             404 .. flat-table:: Sample 4x4 NV24 Image
646     :header-rows:  0                              405     :header-rows:  0
647     :stub-columns: 0                              406     :stub-columns: 0
648                                                   407 
649     * - start + 0:                                408     * - start + 0:
650       - Y'\ :sub:`00`                             409       - Y'\ :sub:`00`
651       - Y'\ :sub:`01`                             410       - Y'\ :sub:`01`
652       - Y'\ :sub:`02`                             411       - Y'\ :sub:`02`
653       - Y'\ :sub:`03`                             412       - Y'\ :sub:`03`
654     * - start + 4:                                413     * - start + 4:
655       - Y'\ :sub:`10`                             414       - Y'\ :sub:`10`
656       - Y'\ :sub:`11`                             415       - Y'\ :sub:`11`
657       - Y'\ :sub:`12`                             416       - Y'\ :sub:`12`
658       - Y'\ :sub:`13`                             417       - Y'\ :sub:`13`
659     * - start + 8:                                418     * - start + 8:
660       - Y'\ :sub:`20`                             419       - Y'\ :sub:`20`
661       - Y'\ :sub:`21`                             420       - Y'\ :sub:`21`
662       - Y'\ :sub:`22`                             421       - Y'\ :sub:`22`
663       - Y'\ :sub:`23`                             422       - Y'\ :sub:`23`
664     * - start + 12:                               423     * - start + 12:
665       - Y'\ :sub:`30`                             424       - Y'\ :sub:`30`
666       - Y'\ :sub:`31`                             425       - Y'\ :sub:`31`
667       - Y'\ :sub:`32`                             426       - Y'\ :sub:`32`
668       - Y'\ :sub:`33`                             427       - Y'\ :sub:`33`
669     * - start + 16:                               428     * - start + 16:
670       - Cb\ :sub:`00`                             429       - Cb\ :sub:`00`
671       - Cr\ :sub:`00`                             430       - Cr\ :sub:`00`
672       - Cb\ :sub:`01`                             431       - Cb\ :sub:`01`
673       - Cr\ :sub:`01`                             432       - Cr\ :sub:`01`
674       - Cb\ :sub:`02`                             433       - Cb\ :sub:`02`
675       - Cr\ :sub:`02`                             434       - Cr\ :sub:`02`
676       - Cb\ :sub:`03`                             435       - Cb\ :sub:`03`
677       - Cr\ :sub:`03`                             436       - Cr\ :sub:`03`
678     * - start + 24:                               437     * - start + 24:
679       - Cb\ :sub:`10`                             438       - Cb\ :sub:`10`
680       - Cr\ :sub:`10`                             439       - Cr\ :sub:`10`
681       - Cb\ :sub:`11`                             440       - Cb\ :sub:`11`
682       - Cr\ :sub:`11`                             441       - Cr\ :sub:`11`
683       - Cb\ :sub:`12`                             442       - Cb\ :sub:`12`
684       - Cr\ :sub:`12`                             443       - Cr\ :sub:`12`
685       - Cb\ :sub:`13`                             444       - Cb\ :sub:`13`
686       - Cr\ :sub:`13`                             445       - Cr\ :sub:`13`
687     * - start + 32:                               446     * - start + 32:
688       - Cb\ :sub:`20`                             447       - Cb\ :sub:`20`
689       - Cr\ :sub:`20`                             448       - Cr\ :sub:`20`
690       - Cb\ :sub:`21`                             449       - Cb\ :sub:`21`
691       - Cr\ :sub:`21`                             450       - Cr\ :sub:`21`
692       - Cb\ :sub:`22`                             451       - Cb\ :sub:`22`
693       - Cr\ :sub:`22`                             452       - Cr\ :sub:`22`
694       - Cb\ :sub:`23`                             453       - Cb\ :sub:`23`
695       - Cr\ :sub:`23`                             454       - Cr\ :sub:`23`
696     * - start + 40:                               455     * - start + 40:
697       - Cb\ :sub:`30`                             456       - Cb\ :sub:`30`
698       - Cr\ :sub:`30`                             457       - Cr\ :sub:`30`
699       - Cb\ :sub:`31`                             458       - Cb\ :sub:`31`
700       - Cr\ :sub:`31`                             459       - Cr\ :sub:`31`
701       - Cb\ :sub:`32`                             460       - Cb\ :sub:`32`
702       - Cr\ :sub:`32`                             461       - Cr\ :sub:`32`
703       - Cb\ :sub:`33`                             462       - Cb\ :sub:`33`
704       - Cr\ :sub:`33`                             463       - Cr\ :sub:`33`
705                                                   464 
706 .. _V4L2_PIX_FMT_P010:                         << 
707 .. _V4L2-PIX-FMT-P010-4L4:                     << 
708                                                << 
709 P010 and tiled P010                            << 
710 -------------------                            << 
711                                                << 
712 P010 is like NV12 with 10 bits per component,  << 
713 Data in the 10 high bits, zeros in the 6 low b << 
714                                                << 
715 .. flat-table:: Sample 4x4 P010 Image          << 
716     :header-rows:  0                           << 
717     :stub-columns: 0                           << 
718                                                << 
719     * - start + 0:                             << 
720       - Y'\ :sub:`00`                          << 
721       - Y'\ :sub:`01`                          << 
722       - Y'\ :sub:`02`                          << 
723       - Y'\ :sub:`03`                          << 
724     * - start + 8:                             << 
725       - Y'\ :sub:`10`                          << 
726       - Y'\ :sub:`11`                          << 
727       - Y'\ :sub:`12`                          << 
728       - Y'\ :sub:`13`                          << 
729     * - start + 16:                            << 
730       - Y'\ :sub:`20`                          << 
731       - Y'\ :sub:`21`                          << 
732       - Y'\ :sub:`22`                          << 
733       - Y'\ :sub:`23`                          << 
734     * - start + 24:                            << 
735       - Y'\ :sub:`30`                          << 
736       - Y'\ :sub:`31`                          << 
737       - Y'\ :sub:`32`                          << 
738       - Y'\ :sub:`33`                          << 
739     * - start + 32:                            << 
740       - Cb\ :sub:`00`                          << 
741       - Cr\ :sub:`00`                          << 
742       - Cb\ :sub:`01`                          << 
743       - Cr\ :sub:`01`                          << 
744     * - start + 40:                            << 
745       - Cb\ :sub:`10`                          << 
746       - Cr\ :sub:`10`                          << 
747       - Cb\ :sub:`11`                          << 
748       - Cr\ :sub:`11`                          << 
749                                                << 
750 .. _V4L2-PIX-FMT-P012:                         << 
751 .. _V4L2-PIX-FMT-P012M:                        << 
752                                                << 
753 P012 and P012M                                 << 
754 --------------                                 << 
755                                                << 
756 P012 is like NV12 with 12 bits per component,  << 
757 Data in the 12 high bits, zeros in the 4 low b << 
758                                                << 
759 .. flat-table:: Sample 4x4 P012 Image          << 
760     :header-rows:  0                           << 
761     :stub-columns: 0                           << 
762                                                << 
763     * - start + 0:                             << 
764       - Y'\ :sub:`00`                          << 
765       - Y'\ :sub:`01`                          << 
766       - Y'\ :sub:`02`                          << 
767       - Y'\ :sub:`03`                          << 
768     * - start + 8:                             << 
769       - Y'\ :sub:`10`                          << 
770       - Y'\ :sub:`11`                          << 
771       - Y'\ :sub:`12`                          << 
772       - Y'\ :sub:`13`                          << 
773     * - start + 16:                            << 
774       - Y'\ :sub:`20`                          << 
775       - Y'\ :sub:`21`                          << 
776       - Y'\ :sub:`22`                          << 
777       - Y'\ :sub:`23`                          << 
778     * - start + 24:                            << 
779       - Y'\ :sub:`30`                          << 
780       - Y'\ :sub:`31`                          << 
781       - Y'\ :sub:`32`                          << 
782       - Y'\ :sub:`33`                          << 
783     * - start + 32:                            << 
784       - Cb\ :sub:`00`                          << 
785       - Cr\ :sub:`00`                          << 
786       - Cb\ :sub:`01`                          << 
787       - Cr\ :sub:`01`                          << 
788     * - start + 40:                            << 
789       - Cb\ :sub:`10`                          << 
790       - Cr\ :sub:`10`                          << 
791       - Cb\ :sub:`11`                          << 
792       - Cr\ :sub:`11`                          << 
793                                                << 
794 .. flat-table:: Sample 4x4 P012M Image         << 
795     :header-rows:  0                           << 
796     :stub-columns: 0                           << 
797                                                << 
798     * - start0 + 0:                            << 
799       - Y'\ :sub:`00`                          << 
800       - Y'\ :sub:`01`                          << 
801       - Y'\ :sub:`02`                          << 
802       - Y'\ :sub:`03`                          << 
803     * - start0 + 8:                            << 
804       - Y'\ :sub:`10`                          << 
805       - Y'\ :sub:`11`                          << 
806       - Y'\ :sub:`12`                          << 
807       - Y'\ :sub:`13`                          << 
808     * - start0 + 16:                           << 
809       - Y'\ :sub:`20`                          << 
810       - Y'\ :sub:`21`                          << 
811       - Y'\ :sub:`22`                          << 
812       - Y'\ :sub:`23`                          << 
813     * - start0 + 24:                           << 
814       - Y'\ :sub:`30`                          << 
815       - Y'\ :sub:`31`                          << 
816       - Y'\ :sub:`32`                          << 
817       - Y'\ :sub:`33`                          << 
818     * -                                        << 
819     * - start1 + 0:                            << 
820       - Cb\ :sub:`00`                          << 
821       - Cr\ :sub:`00`                          << 
822       - Cb\ :sub:`01`                          << 
823       - Cr\ :sub:`01`                          << 
824     * - start1 + 8:                            << 
825       - Cb\ :sub:`10`                          << 
826       - Cr\ :sub:`10`                          << 
827       - Cb\ :sub:`11`                          << 
828       - Cr\ :sub:`11`                          << 
829                                                << 
830                                                   465 
831 Fully Planar YUV Formats                          466 Fully Planar YUV Formats
832 ========================                          467 ========================
833                                                   468 
834 These formats store the Y, Cb and Cr component    469 These formats store the Y, Cb and Cr components in three separate planes. The
835 luma plane comes first, and the order of the t    470 luma plane comes first, and the order of the two chroma planes varies between
836 formats. The two chroma planes always use the     471 formats. The two chroma planes always use the same subsampling.
837                                                   472 
838 For memory contiguous formats, the number of p    473 For memory contiguous formats, the number of padding pixels at the end of the
839 chroma lines is identical to the padding of th    474 chroma lines is identical to the padding of the luma lines. The chroma line
840 stride (in bytes) is thus equal to the luma li    475 stride (in bytes) is thus equal to the luma line stride divided by the
841 horizontal subsampling factor. Vertical subsam    476 horizontal subsampling factor. Vertical subsampling doesn't affect the line
842 stride.                                           477 stride.
843                                                   478 
844 For non-contiguous formats, no constraints are    479 For non-contiguous formats, no constraints are enforced by the format on the
845 relationship between the luma and chroma line     480 relationship between the luma and chroma line padding and stride.
846                                                   481 
847 All components are stored with the same number    482 All components are stored with the same number of bits per component.
848                                                   483 
849 ``V4L2_PIX_FMT_P010_4L4`` stores pixels in 4x4 << 
850 in memory. The line stride must be aligned to  << 
851 a multiple of 4. The layouts of the luma and c << 
852                                                << 
853 .. raw:: latex                                 << 
854                                                << 
855     \small                                     << 
856                                                << 
857 .. tabularcolumns:: |p{5.0cm}|p{1.1cm}|p{1.5cm << 
858                                                << 
859 .. flat-table:: Overview of Fully Planar YUV F    484 .. flat-table:: Overview of Fully Planar YUV Formats
860     :header-rows:  1                              485     :header-rows:  1
861     :stub-columns: 0                              486     :stub-columns: 0
862                                                   487 
863     * - Identifier                                488     * - Identifier
864       - Code                                      489       - Code
865       - Bits per component                        490       - Bits per component
866       - Subsampling                               491       - Subsampling
867       - Planes order [4]_                         492       - Planes order [4]_
868       - Contiguous [5]_                           493       - Contiguous [5]_
869                                                   494 
870     * - V4L2_PIX_FMT_YUV410                       495     * - V4L2_PIX_FMT_YUV410
871       - 'YUV9'                                    496       - 'YUV9'
872       - 8                                         497       - 8
873       - 4:1:0                                     498       - 4:1:0
874       - Y, Cb, Cr                                 499       - Y, Cb, Cr
875       - Yes                                       500       - Yes
876     * - V4L2_PIX_FMT_YVU410                       501     * - V4L2_PIX_FMT_YVU410
877       - 'YVU9'                                    502       - 'YVU9'
878       - 8                                         503       - 8
879       - 4:1:0                                     504       - 4:1:0
880       - Y, Cr, Cb                                 505       - Y, Cr, Cb
881       - Yes                                       506       - Yes
882     * - V4L2_PIX_FMT_YUV411P                      507     * - V4L2_PIX_FMT_YUV411P
883       - '411P'                                    508       - '411P'
884       - 8                                         509       - 8
885       - 4:1:1                                     510       - 4:1:1
886       - Y, Cb, Cr                                 511       - Y, Cb, Cr
887       - Yes                                       512       - Yes
888     * - V4L2_PIX_FMT_YUV420M                      513     * - V4L2_PIX_FMT_YUV420M
889       - 'YM12'                                    514       - 'YM12'
890       - 8                                         515       - 8
891       - 4:2:0                                     516       - 4:2:0
892       - Y, Cb, Cr                                 517       - Y, Cb, Cr
893       - No                                        518       - No
894     * - V4L2_PIX_FMT_YVU420M                      519     * - V4L2_PIX_FMT_YVU420M
895       - 'YM21'                                    520       - 'YM21'
896       - 8                                         521       - 8
897       - 4:2:0                                     522       - 4:2:0
898       - Y, Cr, Cb                                 523       - Y, Cr, Cb
899       - No                                        524       - No
900     * - V4L2_PIX_FMT_YUV420                       525     * - V4L2_PIX_FMT_YUV420
901       - 'YU12'                                    526       - 'YU12'
902       - 8                                         527       - 8
903       - 4:2:0                                     528       - 4:2:0
904       - Y, Cb, Cr                                 529       - Y, Cb, Cr
905       - Yes                                       530       - Yes
906     * - V4L2_PIX_FMT_YVU420                       531     * - V4L2_PIX_FMT_YVU420
907       - 'YV12'                                    532       - 'YV12'
908       - 8                                         533       - 8
909       - 4:2:0                                     534       - 4:2:0
910       - Y, Cr, Cb                                 535       - Y, Cr, Cb
911       - Yes                                       536       - Yes
912     * - V4L2_PIX_FMT_YUV422P                      537     * - V4L2_PIX_FMT_YUV422P
913       - '422P'                                    538       - '422P'
914       - 8                                         539       - 8
915       - 4:2:2                                     540       - 4:2:2
916       - Y, Cb, Cr                                 541       - Y, Cb, Cr
917       - Yes                                       542       - Yes
918     * - V4L2_PIX_FMT_YUV422M                      543     * - V4L2_PIX_FMT_YUV422M
919       - 'YM16'                                    544       - 'YM16'
920       - 8                                         545       - 8
921       - 4:2:2                                     546       - 4:2:2
922       - Y, Cb, Cr                                 547       - Y, Cb, Cr
923       - No                                        548       - No
924     * - V4L2_PIX_FMT_YVU422M                      549     * - V4L2_PIX_FMT_YVU422M
925       - 'YM61'                                    550       - 'YM61'
926       - 8                                         551       - 8
927       - 4:2:2                                     552       - 4:2:2
928       - Y, Cr, Cb                                 553       - Y, Cr, Cb
929       - No                                        554       - No
930     * - V4L2_PIX_FMT_YUV444M                      555     * - V4L2_PIX_FMT_YUV444M
931       - 'YM24'                                    556       - 'YM24'
932       - 8                                         557       - 8
933       - 4:4:4                                     558       - 4:4:4
934       - Y, Cb, Cr                                 559       - Y, Cb, Cr
935       - No                                        560       - No
936     * - V4L2_PIX_FMT_YVU444M                      561     * - V4L2_PIX_FMT_YVU444M
937       - 'YM42'                                    562       - 'YM42'
938       - 8                                         563       - 8
939       - 4:4:4                                     564       - 4:4:4
940       - Y, Cr, Cb                                 565       - Y, Cr, Cb
941       - No                                        566       - No
942                                                   567 
943 .. raw:: latex                                 !! 568 .. note::
944                                                << 
945     \normalsize                                << 
946                                                   569 
947 .. [4] Order of luma and chroma planes         !! 570    .. [4] Order of luma and chroma planes
948 .. [5] Indicates if planes have to be contiguo !! 571    .. [5] Indicates if planes have to be contiguous in memory or can be
949        disjoint                                !! 572       disjoint
950                                                   573 
951                                                   574 
952 **Color Sample Location:**                        575 **Color Sample Location:**
953 Chroma samples are :ref:`interstitially sited<    576 Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
954 horizontally.                                     577 horizontally.
955                                                   578 
956 .. _V4L2-PIX-FMT-YUV410:                          579 .. _V4L2-PIX-FMT-YUV410:
957 .. _V4L2-PIX-FMT-YVU410:                          580 .. _V4L2-PIX-FMT-YVU410:
958                                                   581 
959 YUV410 and YVU410                                 582 YUV410 and YVU410
960 -----------------                                 583 -----------------
961                                                   584 
962 Planar YUV 4:1:0 formats. The chroma planes ar    585 Planar YUV 4:1:0 formats. The chroma planes are subsampled by 4 in each
963 direction. Chroma lines contain a quarter of t    586 direction. Chroma lines contain a quarter of the number of pixels and bytes of
964 the luma lines, and the chroma planes contain     587 the luma lines, and the chroma planes contain a quarter of the number of lines
965 of the luma plane.                                588 of the luma plane.
966                                                   589 
967 .. flat-table:: Sample 4x4 YUV410 Image           590 .. flat-table:: Sample 4x4 YUV410 Image
968     :header-rows:  0                              591     :header-rows:  0
969     :stub-columns: 0                              592     :stub-columns: 0
970                                                   593 
971     * - start + 0:                                594     * - start + 0:
972       - Y'\ :sub:`00`                             595       - Y'\ :sub:`00`
973       - Y'\ :sub:`01`                             596       - Y'\ :sub:`01`
974       - Y'\ :sub:`02`                             597       - Y'\ :sub:`02`
975       - Y'\ :sub:`03`                             598       - Y'\ :sub:`03`
976     * - start + 4:                                599     * - start + 4:
977       - Y'\ :sub:`10`                             600       - Y'\ :sub:`10`
978       - Y'\ :sub:`11`                             601       - Y'\ :sub:`11`
979       - Y'\ :sub:`12`                             602       - Y'\ :sub:`12`
980       - Y'\ :sub:`13`                             603       - Y'\ :sub:`13`
981     * - start + 8:                                604     * - start + 8:
982       - Y'\ :sub:`20`                             605       - Y'\ :sub:`20`
983       - Y'\ :sub:`21`                             606       - Y'\ :sub:`21`
984       - Y'\ :sub:`22`                             607       - Y'\ :sub:`22`
985       - Y'\ :sub:`23`                             608       - Y'\ :sub:`23`
986     * - start + 12:                               609     * - start + 12:
987       - Y'\ :sub:`30`                             610       - Y'\ :sub:`30`
988       - Y'\ :sub:`31`                             611       - Y'\ :sub:`31`
989       - Y'\ :sub:`32`                             612       - Y'\ :sub:`32`
990       - Y'\ :sub:`33`                             613       - Y'\ :sub:`33`
991     * - start + 16:                               614     * - start + 16:
992       - Cr\ :sub:`00`                             615       - Cr\ :sub:`00`
993     * - start + 17:                               616     * - start + 17:
994       - Cb\ :sub:`00`                             617       - Cb\ :sub:`00`
995                                                   618 
996                                                   619 
997 .. _V4L2-PIX-FMT-YUV411P:                         620 .. _V4L2-PIX-FMT-YUV411P:
998                                                   621 
999 YUV411P                                           622 YUV411P
1000 -------                                          623 -------
1001                                                  624 
1002 Planar YUV 4:1:1 formats. The chroma planes a    625 Planar YUV 4:1:1 formats. The chroma planes are subsampled by 4 in the
1003 horizontal direction. Chroma lines contain a     626 horizontal direction. Chroma lines contain a quarter of the number of pixels
1004 and bytes of the luma lines, and the chroma p    627 and bytes of the luma lines, and the chroma planes contain the same number of
1005 lines as the luma plane.                         628 lines as the luma plane.
1006                                                  629 
1007 .. flat-table:: Sample 4x4 YUV411P Image         630 .. flat-table:: Sample 4x4 YUV411P Image
1008     :header-rows:  0                             631     :header-rows:  0
1009     :stub-columns: 0                             632     :stub-columns: 0
1010                                                  633 
1011     * - start + 0:                               634     * - start + 0:
1012       - Y'\ :sub:`00`                            635       - Y'\ :sub:`00`
1013       - Y'\ :sub:`01`                            636       - Y'\ :sub:`01`
1014       - Y'\ :sub:`02`                            637       - Y'\ :sub:`02`
1015       - Y'\ :sub:`03`                            638       - Y'\ :sub:`03`
1016     * - start + 4:                               639     * - start + 4:
1017       - Y'\ :sub:`10`                            640       - Y'\ :sub:`10`
1018       - Y'\ :sub:`11`                            641       - Y'\ :sub:`11`
1019       - Y'\ :sub:`12`                            642       - Y'\ :sub:`12`
1020       - Y'\ :sub:`13`                            643       - Y'\ :sub:`13`
1021     * - start + 8:                               644     * - start + 8:
1022       - Y'\ :sub:`20`                            645       - Y'\ :sub:`20`
1023       - Y'\ :sub:`21`                            646       - Y'\ :sub:`21`
1024       - Y'\ :sub:`22`                            647       - Y'\ :sub:`22`
1025       - Y'\ :sub:`23`                            648       - Y'\ :sub:`23`
1026     * - start + 12:                              649     * - start + 12:
1027       - Y'\ :sub:`30`                            650       - Y'\ :sub:`30`
1028       - Y'\ :sub:`31`                            651       - Y'\ :sub:`31`
1029       - Y'\ :sub:`32`                            652       - Y'\ :sub:`32`
1030       - Y'\ :sub:`33`                            653       - Y'\ :sub:`33`
1031     * - start + 16:                              654     * - start + 16:
1032       - Cb\ :sub:`00`                            655       - Cb\ :sub:`00`
1033     * - start + 17:                              656     * - start + 17:
1034       - Cb\ :sub:`10`                            657       - Cb\ :sub:`10`
1035     * - start + 18:                              658     * - start + 18:
1036       - Cb\ :sub:`20`                            659       - Cb\ :sub:`20`
1037     * - start + 19:                              660     * - start + 19:
1038       - Cb\ :sub:`30`                            661       - Cb\ :sub:`30`
1039     * - start + 20:                              662     * - start + 20:
1040       - Cr\ :sub:`00`                            663       - Cr\ :sub:`00`
1041     * - start + 21:                              664     * - start + 21:
1042       - Cr\ :sub:`10`                            665       - Cr\ :sub:`10`
1043     * - start + 22:                              666     * - start + 22:
1044       - Cr\ :sub:`20`                            667       - Cr\ :sub:`20`
1045     * - start + 23:                              668     * - start + 23:
1046       - Cr\ :sub:`30`                            669       - Cr\ :sub:`30`
1047                                                  670 
1048                                                  671 
1049 .. _V4L2-PIX-FMT-YUV420:                         672 .. _V4L2-PIX-FMT-YUV420:
1050 .. _V4L2-PIX-FMT-YVU420:                         673 .. _V4L2-PIX-FMT-YVU420:
1051 .. _V4L2-PIX-FMT-YUV420M:                        674 .. _V4L2-PIX-FMT-YUV420M:
1052 .. _V4L2-PIX-FMT-YVU420M:                        675 .. _V4L2-PIX-FMT-YVU420M:
1053                                                  676 
1054 YUV420, YVU420, YUV420M and YVU420M              677 YUV420, YVU420, YUV420M and YVU420M
1055 -----------------------------------              678 -----------------------------------
1056                                                  679 
1057 Planar YUV 4:2:0 formats. The chroma planes a    680 Planar YUV 4:2:0 formats. The chroma planes are subsampled by 2 in each
1058 direction. Chroma lines contain half of the n    681 direction. Chroma lines contain half of the number of pixels and bytes of the
1059 luma lines, and the chroma planes contain hal    682 luma lines, and the chroma planes contain half of the number of lines of the
1060 luma plane.                                      683 luma plane.
1061                                                  684 
1062 .. flat-table:: Sample 4x4 YUV420 Image          685 .. flat-table:: Sample 4x4 YUV420 Image
1063     :header-rows:  0                             686     :header-rows:  0
1064     :stub-columns: 0                             687     :stub-columns: 0
1065                                                  688 
1066     * - start + 0:                               689     * - start + 0:
1067       - Y'\ :sub:`00`                            690       - Y'\ :sub:`00`
1068       - Y'\ :sub:`01`                            691       - Y'\ :sub:`01`
1069       - Y'\ :sub:`02`                            692       - Y'\ :sub:`02`
1070       - Y'\ :sub:`03`                            693       - Y'\ :sub:`03`
1071     * - start + 4:                               694     * - start + 4:
1072       - Y'\ :sub:`10`                            695       - Y'\ :sub:`10`
1073       - Y'\ :sub:`11`                            696       - Y'\ :sub:`11`
1074       - Y'\ :sub:`12`                            697       - Y'\ :sub:`12`
1075       - Y'\ :sub:`13`                            698       - Y'\ :sub:`13`
1076     * - start + 8:                               699     * - start + 8:
1077       - Y'\ :sub:`20`                            700       - Y'\ :sub:`20`
1078       - Y'\ :sub:`21`                            701       - Y'\ :sub:`21`
1079       - Y'\ :sub:`22`                            702       - Y'\ :sub:`22`
1080       - Y'\ :sub:`23`                            703       - Y'\ :sub:`23`
1081     * - start + 12:                              704     * - start + 12:
1082       - Y'\ :sub:`30`                            705       - Y'\ :sub:`30`
1083       - Y'\ :sub:`31`                            706       - Y'\ :sub:`31`
1084       - Y'\ :sub:`32`                            707       - Y'\ :sub:`32`
1085       - Y'\ :sub:`33`                            708       - Y'\ :sub:`33`
1086     * - start + 16:                              709     * - start + 16:
1087       - Cr\ :sub:`00`                            710       - Cr\ :sub:`00`
1088       - Cr\ :sub:`01`                            711       - Cr\ :sub:`01`
1089     * - start + 18:                              712     * - start + 18:
1090       - Cr\ :sub:`10`                            713       - Cr\ :sub:`10`
1091       - Cr\ :sub:`11`                            714       - Cr\ :sub:`11`
1092     * - start + 20:                              715     * - start + 20:
1093       - Cb\ :sub:`00`                            716       - Cb\ :sub:`00`
1094       - Cb\ :sub:`01`                            717       - Cb\ :sub:`01`
1095     * - start + 22:                              718     * - start + 22:
1096       - Cb\ :sub:`10`                            719       - Cb\ :sub:`10`
1097       - Cb\ :sub:`11`                            720       - Cb\ :sub:`11`
1098                                                  721 
1099 .. flat-table:: Sample 4x4 YUV420M Image         722 .. flat-table:: Sample 4x4 YUV420M Image
1100     :header-rows:  0                             723     :header-rows:  0
1101     :stub-columns: 0                             724     :stub-columns: 0
1102                                                  725 
1103     * - start0 + 0:                              726     * - start0 + 0:
1104       - Y'\ :sub:`00`                            727       - Y'\ :sub:`00`
1105       - Y'\ :sub:`01`                            728       - Y'\ :sub:`01`
1106       - Y'\ :sub:`02`                            729       - Y'\ :sub:`02`
1107       - Y'\ :sub:`03`                            730       - Y'\ :sub:`03`
1108     * - start0 + 4:                              731     * - start0 + 4:
1109       - Y'\ :sub:`10`                            732       - Y'\ :sub:`10`
1110       - Y'\ :sub:`11`                            733       - Y'\ :sub:`11`
1111       - Y'\ :sub:`12`                            734       - Y'\ :sub:`12`
1112       - Y'\ :sub:`13`                            735       - Y'\ :sub:`13`
1113     * - start0 + 8:                              736     * - start0 + 8:
1114       - Y'\ :sub:`20`                            737       - Y'\ :sub:`20`
1115       - Y'\ :sub:`21`                            738       - Y'\ :sub:`21`
1116       - Y'\ :sub:`22`                            739       - Y'\ :sub:`22`
1117       - Y'\ :sub:`23`                            740       - Y'\ :sub:`23`
1118     * - start0 + 12:                             741     * - start0 + 12:
1119       - Y'\ :sub:`30`                            742       - Y'\ :sub:`30`
1120       - Y'\ :sub:`31`                            743       - Y'\ :sub:`31`
1121       - Y'\ :sub:`32`                            744       - Y'\ :sub:`32`
1122       - Y'\ :sub:`33`                            745       - Y'\ :sub:`33`
1123     * -                                          746     * -
1124     * - start1 + 0:                              747     * - start1 + 0:
1125       - Cb\ :sub:`00`                            748       - Cb\ :sub:`00`
1126       - Cb\ :sub:`01`                            749       - Cb\ :sub:`01`
1127     * - start1 + 2:                              750     * - start1 + 2:
1128       - Cb\ :sub:`10`                            751       - Cb\ :sub:`10`
1129       - Cb\ :sub:`11`                            752       - Cb\ :sub:`11`
1130     * -                                          753     * -
1131     * - start2 + 0:                              754     * - start2 + 0:
1132       - Cr\ :sub:`00`                            755       - Cr\ :sub:`00`
1133       - Cr\ :sub:`01`                            756       - Cr\ :sub:`01`
1134     * - start2 + 2:                              757     * - start2 + 2:
1135       - Cr\ :sub:`10`                            758       - Cr\ :sub:`10`
1136       - Cr\ :sub:`11`                            759       - Cr\ :sub:`11`
1137                                                  760 
1138                                                  761 
1139 .. _V4L2-PIX-FMT-YUV422P:                        762 .. _V4L2-PIX-FMT-YUV422P:
1140 .. _V4L2-PIX-FMT-YUV422M:                        763 .. _V4L2-PIX-FMT-YUV422M:
1141 .. _V4L2-PIX-FMT-YVU422M:                        764 .. _V4L2-PIX-FMT-YVU422M:
1142                                                  765 
1143 YUV422P, YUV422M and YVU422M                     766 YUV422P, YUV422M and YVU422M
1144 ----------------------------                     767 ----------------------------
1145                                                  768 
1146 Planar YUV 4:2:2 formats. The chroma planes a    769 Planar YUV 4:2:2 formats. The chroma planes are subsampled by 2 in the
1147 horizontal direction. Chroma lines contain ha    770 horizontal direction. Chroma lines contain half of the number of pixels and
1148 bytes of the luma lines, and the chroma plane    771 bytes of the luma lines, and the chroma planes contain the same number of lines
1149 as the luma plane.                               772 as the luma plane.
1150                                                  773 
1151 .. flat-table:: Sample 4x4 YUV422P Image         774 .. flat-table:: Sample 4x4 YUV422P Image
1152     :header-rows:  0                             775     :header-rows:  0
1153     :stub-columns: 0                             776     :stub-columns: 0
1154                                                  777 
1155     * - start + 0:                               778     * - start + 0:
1156       - Y'\ :sub:`00`                            779       - Y'\ :sub:`00`
1157       - Y'\ :sub:`01`                            780       - Y'\ :sub:`01`
1158       - Y'\ :sub:`02`                            781       - Y'\ :sub:`02`
1159       - Y'\ :sub:`03`                            782       - Y'\ :sub:`03`
1160     * - start + 4:                               783     * - start + 4:
1161       - Y'\ :sub:`10`                            784       - Y'\ :sub:`10`
1162       - Y'\ :sub:`11`                            785       - Y'\ :sub:`11`
1163       - Y'\ :sub:`12`                            786       - Y'\ :sub:`12`
1164       - Y'\ :sub:`13`                            787       - Y'\ :sub:`13`
1165     * - start + 8:                               788     * - start + 8:
1166       - Y'\ :sub:`20`                            789       - Y'\ :sub:`20`
1167       - Y'\ :sub:`21`                            790       - Y'\ :sub:`21`
1168       - Y'\ :sub:`22`                            791       - Y'\ :sub:`22`
1169       - Y'\ :sub:`23`                            792       - Y'\ :sub:`23`
1170     * - start + 12:                              793     * - start + 12:
1171       - Y'\ :sub:`30`                            794       - Y'\ :sub:`30`
1172       - Y'\ :sub:`31`                            795       - Y'\ :sub:`31`
1173       - Y'\ :sub:`32`                            796       - Y'\ :sub:`32`
1174       - Y'\ :sub:`33`                            797       - Y'\ :sub:`33`
1175     * - start + 16:                              798     * - start + 16:
1176       - Cb\ :sub:`00`                            799       - Cb\ :sub:`00`
1177       - Cb\ :sub:`01`                            800       - Cb\ :sub:`01`
1178     * - start + 18:                              801     * - start + 18:
1179       - Cb\ :sub:`10`                            802       - Cb\ :sub:`10`
1180       - Cb\ :sub:`11`                            803       - Cb\ :sub:`11`
1181     * - start + 20:                              804     * - start + 20:
1182       - Cb\ :sub:`20`                            805       - Cb\ :sub:`20`
1183       - Cb\ :sub:`21`                            806       - Cb\ :sub:`21`
1184     * - start + 22:                              807     * - start + 22:
1185       - Cb\ :sub:`30`                            808       - Cb\ :sub:`30`
1186       - Cb\ :sub:`31`                            809       - Cb\ :sub:`31`
1187     * - start + 24:                              810     * - start + 24:
1188       - Cr\ :sub:`00`                            811       - Cr\ :sub:`00`
1189       - Cr\ :sub:`01`                            812       - Cr\ :sub:`01`
1190     * - start + 26:                              813     * - start + 26:
1191       - Cr\ :sub:`10`                            814       - Cr\ :sub:`10`
1192       - Cr\ :sub:`11`                            815       - Cr\ :sub:`11`
1193     * - start + 28:                              816     * - start + 28:
1194       - Cr\ :sub:`20`                            817       - Cr\ :sub:`20`
1195       - Cr\ :sub:`21`                            818       - Cr\ :sub:`21`
1196     * - start + 30:                              819     * - start + 30:
1197       - Cr\ :sub:`30`                            820       - Cr\ :sub:`30`
1198       - Cr\ :sub:`31`                            821       - Cr\ :sub:`31`
1199                                                  822 
1200 .. flat-table:: Sample 4x4 YUV422M Image         823 .. flat-table:: Sample 4x4 YUV422M Image
1201     :header-rows:  0                             824     :header-rows:  0
1202     :stub-columns: 0                             825     :stub-columns: 0
1203                                                  826 
1204     * - start0 + 0:                              827     * - start0 + 0:
1205       - Y'\ :sub:`00`                            828       - Y'\ :sub:`00`
1206       - Y'\ :sub:`01`                            829       - Y'\ :sub:`01`
1207       - Y'\ :sub:`02`                            830       - Y'\ :sub:`02`
1208       - Y'\ :sub:`03`                            831       - Y'\ :sub:`03`
1209     * - start0 + 4:                              832     * - start0 + 4:
1210       - Y'\ :sub:`10`                            833       - Y'\ :sub:`10`
1211       - Y'\ :sub:`11`                            834       - Y'\ :sub:`11`
1212       - Y'\ :sub:`12`                            835       - Y'\ :sub:`12`
1213       - Y'\ :sub:`13`                            836       - Y'\ :sub:`13`
1214     * - start0 + 8:                              837     * - start0 + 8:
1215       - Y'\ :sub:`20`                            838       - Y'\ :sub:`20`
1216       - Y'\ :sub:`21`                            839       - Y'\ :sub:`21`
1217       - Y'\ :sub:`22`                            840       - Y'\ :sub:`22`
1218       - Y'\ :sub:`23`                            841       - Y'\ :sub:`23`
1219     * - start0 + 12:                             842     * - start0 + 12:
1220       - Y'\ :sub:`30`                            843       - Y'\ :sub:`30`
1221       - Y'\ :sub:`31`                            844       - Y'\ :sub:`31`
1222       - Y'\ :sub:`32`                            845       - Y'\ :sub:`32`
1223       - Y'\ :sub:`33`                            846       - Y'\ :sub:`33`
1224     * -                                          847     * -
1225     * - start1 + 0:                              848     * - start1 + 0:
1226       - Cb\ :sub:`00`                            849       - Cb\ :sub:`00`
1227       - Cb\ :sub:`01`                            850       - Cb\ :sub:`01`
1228     * - start1 + 2:                              851     * - start1 + 2:
1229       - Cb\ :sub:`10`                            852       - Cb\ :sub:`10`
1230       - Cb\ :sub:`11`                            853       - Cb\ :sub:`11`
1231     * - start1 + 4:                              854     * - start1 + 4:
1232       - Cb\ :sub:`20`                            855       - Cb\ :sub:`20`
1233       - Cb\ :sub:`21`                            856       - Cb\ :sub:`21`
1234     * - start1 + 6:                              857     * - start1 + 6:
1235       - Cb\ :sub:`30`                            858       - Cb\ :sub:`30`
1236       - Cb\ :sub:`31`                            859       - Cb\ :sub:`31`
1237     * -                                          860     * -
1238     * - start2 + 0:                              861     * - start2 + 0:
1239       - Cr\ :sub:`00`                            862       - Cr\ :sub:`00`
1240       - Cr\ :sub:`01`                            863       - Cr\ :sub:`01`
1241     * - start2 + 2:                              864     * - start2 + 2:
1242       - Cr\ :sub:`10`                            865       - Cr\ :sub:`10`
1243       - Cr\ :sub:`11`                            866       - Cr\ :sub:`11`
1244     * - start2 + 4:                              867     * - start2 + 4:
1245       - Cr\ :sub:`20`                            868       - Cr\ :sub:`20`
1246       - Cr\ :sub:`21`                            869       - Cr\ :sub:`21`
1247     * - start2 + 6:                              870     * - start2 + 6:
1248       - Cr\ :sub:`30`                            871       - Cr\ :sub:`30`
1249       - Cr\ :sub:`31`                            872       - Cr\ :sub:`31`
1250                                                  873 
1251                                                  874 
1252 .. _V4L2-PIX-FMT-YUV444M:                        875 .. _V4L2-PIX-FMT-YUV444M:
1253 .. _V4L2-PIX-FMT-YVU444M:                        876 .. _V4L2-PIX-FMT-YVU444M:
1254                                                  877 
1255 YUV444M and YVU444M                              878 YUV444M and YVU444M
1256 -------------------                              879 -------------------
1257                                                  880 
1258 Planar YUV 4:4:4 formats. The chroma planes a    881 Planar YUV 4:4:4 formats. The chroma planes are no subsampled. Chroma lines
1259 contain the same number of pixels and bytes o    882 contain the same number of pixels and bytes of the luma lines, and the chroma
1260 planes contain the same number of lines as th    883 planes contain the same number of lines as the luma plane.
1261                                                  884 
1262 .. flat-table:: Sample 4x4 YUV444M Image         885 .. flat-table:: Sample 4x4 YUV444M Image
1263     :header-rows:  0                             886     :header-rows:  0
1264     :stub-columns: 0                             887     :stub-columns: 0
1265                                                  888 
1266     * - start0 + 0:                              889     * - start0 + 0:
1267       - Y'\ :sub:`00`                            890       - Y'\ :sub:`00`
1268       - Y'\ :sub:`01`                            891       - Y'\ :sub:`01`
1269       - Y'\ :sub:`02`                            892       - Y'\ :sub:`02`
1270       - Y'\ :sub:`03`                            893       - Y'\ :sub:`03`
1271     * - start0 + 4:                              894     * - start0 + 4:
1272       - Y'\ :sub:`10`                            895       - Y'\ :sub:`10`
1273       - Y'\ :sub:`11`                            896       - Y'\ :sub:`11`
1274       - Y'\ :sub:`12`                            897       - Y'\ :sub:`12`
1275       - Y'\ :sub:`13`                            898       - Y'\ :sub:`13`
1276     * - start0 + 8:                              899     * - start0 + 8:
1277       - Y'\ :sub:`20`                            900       - Y'\ :sub:`20`
1278       - Y'\ :sub:`21`                            901       - Y'\ :sub:`21`
1279       - Y'\ :sub:`22`                            902       - Y'\ :sub:`22`
1280       - Y'\ :sub:`23`                            903       - Y'\ :sub:`23`
1281     * - start0 + 12:                             904     * - start0 + 12:
1282       - Y'\ :sub:`30`                            905       - Y'\ :sub:`30`
1283       - Y'\ :sub:`31`                            906       - Y'\ :sub:`31`
1284       - Y'\ :sub:`32`                            907       - Y'\ :sub:`32`
1285       - Y'\ :sub:`33`                            908       - Y'\ :sub:`33`
1286     * -                                          909     * -
1287     * - start1 + 0:                              910     * - start1 + 0:
1288       - Cb\ :sub:`00`                            911       - Cb\ :sub:`00`
1289       - Cb\ :sub:`01`                            912       - Cb\ :sub:`01`
1290       - Cb\ :sub:`02`                            913       - Cb\ :sub:`02`
1291       - Cb\ :sub:`03`                            914       - Cb\ :sub:`03`
1292     * - start1 + 4:                              915     * - start1 + 4:
1293       - Cb\ :sub:`10`                            916       - Cb\ :sub:`10`
1294       - Cb\ :sub:`11`                            917       - Cb\ :sub:`11`
1295       - Cb\ :sub:`12`                            918       - Cb\ :sub:`12`
1296       - Cb\ :sub:`13`                            919       - Cb\ :sub:`13`
1297     * - start1 + 8:                              920     * - start1 + 8:
1298       - Cb\ :sub:`20`                            921       - Cb\ :sub:`20`
1299       - Cb\ :sub:`21`                            922       - Cb\ :sub:`21`
1300       - Cb\ :sub:`22`                            923       - Cb\ :sub:`22`
1301       - Cb\ :sub:`23`                            924       - Cb\ :sub:`23`
1302     * - start1 + 12:                             925     * - start1 + 12:
1303       - Cb\ :sub:`20`                            926       - Cb\ :sub:`20`
1304       - Cb\ :sub:`21`                            927       - Cb\ :sub:`21`
1305       - Cb\ :sub:`32`                            928       - Cb\ :sub:`32`
1306       - Cb\ :sub:`33`                            929       - Cb\ :sub:`33`
1307     * -                                          930     * -
1308     * - start2 + 0:                              931     * - start2 + 0:
1309       - Cr\ :sub:`00`                            932       - Cr\ :sub:`00`
1310       - Cr\ :sub:`01`                            933       - Cr\ :sub:`01`
1311       - Cr\ :sub:`02`                            934       - Cr\ :sub:`02`
1312       - Cr\ :sub:`03`                            935       - Cr\ :sub:`03`
1313     * - start2 + 4:                              936     * - start2 + 4:
1314       - Cr\ :sub:`10`                            937       - Cr\ :sub:`10`
1315       - Cr\ :sub:`11`                            938       - Cr\ :sub:`11`
1316       - Cr\ :sub:`12`                            939       - Cr\ :sub:`12`
1317       - Cr\ :sub:`13`                            940       - Cr\ :sub:`13`
1318     * - start2 + 8:                              941     * - start2 + 8:
1319       - Cr\ :sub:`20`                            942       - Cr\ :sub:`20`
1320       - Cr\ :sub:`21`                            943       - Cr\ :sub:`21`
1321       - Cr\ :sub:`22`                            944       - Cr\ :sub:`22`
1322       - Cr\ :sub:`23`                            945       - Cr\ :sub:`23`
1323     * - start2 + 12:                             946     * - start2 + 12:
1324       - Cr\ :sub:`30`                            947       - Cr\ :sub:`30`
1325       - Cr\ :sub:`31`                            948       - Cr\ :sub:`31`
1326       - Cr\ :sub:`32`                            949       - Cr\ :sub:`32`
1327       - Cr\ :sub:`33`                            950       - Cr\ :sub:`33`
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php