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