~ [ 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 (Architecture m68k) and /Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst (Architecture mips)


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