Lines Matching +full:non +full:- +full:identical
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
3 .. planar-yuv:
12 - Semi-planar formats use two planes. The first plane is the luma plane and
16 - Fully planar formats use three planes to store the Y, Cb and Cr components
26 and applications that support the multi-planar API, described in
27 :ref:`planar-apis`. Unless explicitly documented as supporting non-contiguous
31 Semi-Planar YUV Formats
41 chroma lines is identical to the padding of the luma lines. Without horizontal
46 For non-contiguous formats, no constraints are enforced by the format on the
57 .. flat-table:: Overview of Semi-Planar YUV Formats
58 :header-rows: 1
59 :stub-columns: 0
61 * - Identifier
62 - Code
63 - Bits per component
64 - Subsampling
65 - Chroma order [1]_
66 - Contiguous [2]_
67 - Tiling [3]_
68 * - V4L2_PIX_FMT_NV12
69 - 'NV12'
70 - 8
71 - 4:2:0
72 - Cb, Cr
73 - Yes
74 - Linear
75 * - V4L2_PIX_FMT_NV21
76 - 'NV21'
77 - 8
78 - 4:2:0
79 - Cr, Cb
80 - Yes
81 - Linear
82 * - V4L2_PIX_FMT_NV12M
83 - 'NM12'
84 - 8
85 - 4:2:0
86 - Cb, Cr
87 - No
88 - Linear
89 * - V4L2_PIX_FMT_NV21M
90 - 'NM21'
91 - 8
92 - 4:2:0
93 - Cr, Cb
94 - No
95 - Linear
96 * - V4L2_PIX_FMT_NV12MT
97 - 'TM12'
98 - 8
99 - 4:2:0
100 - Cb, Cr
101 - No
102 - 64x32 tiles
105 * - V4L2_PIX_FMT_NV12MT_16X16
106 - 'VM12'
107 - 8
108 - 4:2:2
109 - Cb, Cr
110 - No
111 - 16x16 tiles
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
141 - 'NV15'
142 - 10
143 - 4:2:0
144 - Cb, Cr
145 - Yes
146 - Linear
147 * - V4L2_PIX_FMT_NV15_4L4
148 - 'VT15'
149 - 15
150 - 4:2:0
151 - Cb, Cr
152 - Yes
153 - 4x4 tiles
154 * - V4L2_PIX_FMT_MT2110T
155 - 'MT2T'
156 - 15
157 - 4:2:0
158 - Cb, Cr
159 - No
160 - 16x32 / 16x16 tiles tiled low bits
161 * - V4L2_PIX_FMT_MT2110R
162 - 'MT2R'
163 - 15
164 - 4:2:0
165 - Cb, Cr
166 - No
167 - 16x32 / 16x16 tiles raster low bits
168 * - V4L2_PIX_FMT_NV16
169 - 'NV16'
170 - 8
171 - 4:2:2
172 - Cb, Cr
173 - Yes
174 - Linear
175 * - V4L2_PIX_FMT_NV61
176 - 'NV61'
177 - 8
178 - 4:2:2
179 - Cr, Cb
180 - Yes
181 - Linear
182 * - V4L2_PIX_FMT_NV16M
183 - 'NM16'
184 - 8
185 - 4:2:2
186 - Cb, Cr
187 - No
188 - Linear
189 * - V4L2_PIX_FMT_NV61M
190 - 'NM61'
191 - 8
192 - 4:2:2
193 - Cr, Cb
194 - No
195 - Linear
196 * - V4L2_PIX_FMT_NV20
197 - 'NV20'
198 - 10
199 - 4:2:2
200 - Cb, Cr
201 - Yes
202 - Linear
203 * - V4L2_PIX_FMT_NV24
204 - 'NV24'
205 - 8
206 - 4:4:4
207 - Cb, Cr
208 - Yes
209 - Linear
210 * - V4L2_PIX_FMT_NV42
211 - 'NV42'
212 - 8
213 - 4:4:4
214 - Cr, Cb
215 - Yes
216 - Linear
229 Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
233 .. _V4L2-PIX-FMT-NV12:
234 .. _V4L2-PIX-FMT-NV21:
235 .. _V4L2-PIX-FMT-NV12M:
236 .. _V4L2-PIX-FMT-NV21M:
237 .. _V4L2-PIX-FMT-P010:
240 ---------------------------
242 Semi-planar YUV 4:2:0 formats. The chroma plane is subsampled by 2 in each
247 .. flat-table:: Sample 4x4 NV12 Image
248 :header-rows: 0
249 :stub-columns: 0
251 * - start + 0:
252 - Y'\ :sub:`00`
253 - Y'\ :sub:`01`
254 - Y'\ :sub:`02`
255 - Y'\ :sub:`03`
256 * - start + 4:
257 - Y'\ :sub:`10`
258 - Y'\ :sub:`11`
259 - Y'\ :sub:`12`
260 - Y'\ :sub:`13`
261 * - start + 8:
262 - Y'\ :sub:`20`
263 - Y'\ :sub:`21`
264 - Y'\ :sub:`22`
265 - Y'\ :sub:`23`
266 * - start + 12:
267 - Y'\ :sub:`30`
268 - Y'\ :sub:`31`
269 - Y'\ :sub:`32`
270 - Y'\ :sub:`33`
271 * - start + 16:
272 - Cb\ :sub:`00`
273 - Cr\ :sub:`00`
274 - Cb\ :sub:`01`
275 - Cr\ :sub:`01`
276 * - start + 20:
277 - Cb\ :sub:`10`
278 - Cr\ :sub:`10`
279 - Cb\ :sub:`11`
280 - Cr\ :sub:`11`
282 .. flat-table:: Sample 4x4 NV12M Image
283 :header-rows: 0
284 :stub-columns: 0
286 * - start0 + 0:
287 - Y'\ :sub:`00`
288 - Y'\ :sub:`01`
289 - Y'\ :sub:`02`
290 - Y'\ :sub:`03`
291 * - start0 + 4:
292 - Y'\ :sub:`10`
293 - Y'\ :sub:`11`
294 - Y'\ :sub:`12`
295 - Y'\ :sub:`13`
296 * - start0 + 8:
297 - Y'\ :sub:`20`
298 - Y'\ :sub:`21`
299 - Y'\ :sub:`22`
300 - Y'\ :sub:`23`
301 * - start0 + 12:
302 - Y'\ :sub:`30`
303 - Y'\ :sub:`31`
304 - Y'\ :sub:`32`
305 - Y'\ :sub:`33`
306 * -
307 * - start1 + 0:
308 - Cb\ :sub:`00`
309 - Cr\ :sub:`00`
310 - Cb\ :sub:`01`
311 - Cr\ :sub:`01`
312 * - start1 + 4:
313 - Cb\ :sub:`10`
314 - Cr\ :sub:`10`
315 - Cb\ :sub:`11`
316 - Cr\ :sub:`11`
319 .. _V4L2-PIX-FMT-NV15:
322 ----
324 Semi-planar 10-bit YUV 4:2:0 format similar to NV12, using 10-bit components
328 .. flat-table:: Sample 4x4 NV15 Image (1 byte per cell)
329 :header-rows: 0
330 :stub-columns: 0
332 * - start + 0:
333 - Y'\ :sub:`00[7:0]`
334 - Y'\ :sub:`01[5:0]`\ Y'\ :sub:`00[9:8]`
335 - Y'\ :sub:`02[3:0]`\ Y'\ :sub:`01[9:6]`
336 - Y'\ :sub:`03[1:0]`\ Y'\ :sub:`02[9:4]`
337 - Y'\ :sub:`03[9:2]`
338 * - start + 5:
339 - Y'\ :sub:`10[7:0]`
340 - Y'\ :sub:`11[5:0]`\ Y'\ :sub:`10[9:8]`
341 - Y'\ :sub:`12[3:0]`\ Y'\ :sub:`11[9:6]`
342 - Y'\ :sub:`13[1:0]`\ Y'\ :sub:`12[9:4]`
343 - Y'\ :sub:`13[9:2]`
344 * - start + 10:
345 - Y'\ :sub:`20[7:0]`
346 - Y'\ :sub:`21[5:0]`\ Y'\ :sub:`20[9:8]`
347 - Y'\ :sub:`22[3:0]`\ Y'\ :sub:`21[9:6]`
348 - Y'\ :sub:`23[1:0]`\ Y'\ :sub:`22[9:4]`
349 - Y'\ :sub:`23[9:2]`
350 * - start + 15:
351 - Y'\ :sub:`30[7:0]`
352 - Y'\ :sub:`31[5:0]`\ Y'\ :sub:`30[9:8]`
353 - Y'\ :sub:`32[3:0]`\ Y'\ :sub:`31[9:6]`
354 - Y'\ :sub:`33[1:0]`\ Y'\ :sub:`32[9:4]`
355 - Y'\ :sub:`33[9:2]`
356 * - start + 20:
357 - Cb\ :sub:`00[7:0]`
358 - Cr\ :sub:`00[5:0]`\ Cb\ :sub:`00[9:8]`
359 - Cb\ :sub:`01[3:0]`\ Cr\ :sub:`00[9:6]`
360 - Cr\ :sub:`01[1:0]`\ Cb\ :sub:`01[9:4]`
361 - Cr\ :sub:`01[9:2]`
362 * - start + 25:
363 - Cb\ :sub:`10[7:0]`
364 - Cr\ :sub:`10[5:0]`\ Cb\ :sub:`10[9:8]`
365 - Cb\ :sub:`11[3:0]`\ Cr\ :sub:`10[9:6]`
366 - Cr\ :sub:`11[1:0]`\ Cb\ :sub:`11[9:4]`
367 - Cr\ :sub:`11[9:2]`
370 .. _V4L2-PIX-FMT-NV12MT:
371 .. _V4L2-PIX-FMT-NV12MT-16X16:
372 .. _V4L2-PIX-FMT-NV12-4L4:
373 .. _V4L2-PIX-FMT-NV12-16L16:
374 .. _V4L2-PIX-FMT-NV12-32L32:
375 .. _V4L2-PIX-FMT-NV12M-8L128:
376 .. _V4L2-PIX-FMT-NV12-8L128:
377 .. _V4L2-PIX-FMT-MM21:
380 ----------
382 Semi-planar YUV 4:2:0 formats, using macroblock tiling. The chroma plane is
391 The layouts of the luma and chroma planes are identical.
395 Z-order in memory, alternating Z and mirrored Z shapes horizontally.
400 planes are identical.
404 .. kernel-figure:: nv12mt.svg
412 .. kernel-figure:: nv12mt_example.svg
421 identical.
426 identical.
431 identical.
436 The layouts of the luma and chroma planes are identical.
444 tiles are identical, even though the tile size differ. The image is formed of
445 two non-contiguous planes.
448 .. _V4L2-PIX-FMT-NV15-4L4:
449 .. _V4L2-PIX-FMT-NV12M-10BE-8L128:
450 .. _V4L2-PIX-FMT-NV12-10BE-8L128:
451 .. _V4L2-PIX-FMT-MT2110T:
452 .. _V4L2-PIX-FMT-MT2110R:
455 ----------
457 ``V4L2_PIX_FMT_NV15_4L4`` Semi-planar 10-bit YUV 4:2:0 formats, using 4x4 tiling.
459 As a side-effect, each group of 4 components are stored over 5 bytes
466 The layouts of the luma and chroma planes are identical.
469 The 10 bit pixels are packed, so 5 bytes contain 4 10-bit pixels layout like
471 byte 0: Y0(bits 9-2)
472 byte 1: Y0(bits 1-0) Y1(bits 9-4)
473 byte 2: Y1(bits 3-0) Y2(bits 9-6)
474 byte 3: Y2(bits 5-0) Y3(bits 9-8)
475 byte 4: Y3(bits 7-0)
488 .. kernel-figure:: mt2110t.svg
495 ``V4L2_PIX_FMT_MM21`` frame. A partition is a sub-tile of size 16 x 4. The
500 .. flat-table:: MT2110T LSB bits layout
501 :header-rows: 1
502 :stub-columns: 1
504 * -
505 - start + 0:
506 - start + 1:
507 - . . .
508 - start\ +\ 15:
509 * - Bits 1:0
510 - Y'\ :sub:`0:0`
511 - Y'\ :sub:`0:1`
512 - . . .
513 - Y'\ :sub:`0:15`
514 * - Bit 3:2
515 - Y'\ :sub:`1:0`
516 - Y'\ :sub:`1:1`
517 - . . .
518 - Y'\ :sub:`1:15`
519 * - Bits 5:4
520 - Y'\ :sub:`2:0`
521 - Y'\ :sub:`2:1`
522 - . . .
523 - Y'\ :sub:`2:15`
524 * - Bits 7:6
525 - Y'\ :sub:`3:0`
526 - Y'\ :sub:`3:1`
527 - . . .
528 - Y'\ :sub:`3:15`
530 ``V4L2_PIX_FMT_MT2110R`` is identical to ``V4L2_PIX_FMT_MT2110T`` except that
534 .. flat-table:: MT2110R LSB bits layout
535 :header-rows: 2
536 :stub-columns: 1
538 * -
539 - :cspan:`3` Byte 0
540 - ...
541 - :cspan:`3` Byte 3
542 * -
543 - 7:6
544 - 5:4
545 - 3:2
546 - 1:0
547 - ...
548 - 7:6
549 - 5:4
550 - 3:2
551 - 1:0
552 * - start + 0:
553 - Y'\ :sub:`0:3`
554 - Y'\ :sub:`0:2`
555 - Y'\ :sub:`0:1`
556 - Y'\ :sub:`0:0`
557 - ...
558 - Y'\ :sub:`0:15`
559 - Y'\ :sub:`0:14`
560 - Y'\ :sub:`0:13`
561 - Y'\ :sub:`0:12`
562 * - start + 4:
563 - Y'\ :sub:`1:3`
564 - Y'\ :sub:`1:2`
565 - Y'\ :sub:`1:1`
566 - Y'\ :sub:`1:0`
567 - ...
568 - Y'\ :sub:`1:15`
569 - Y'\ :sub:`1:14`
570 - Y'\ :sub:`1:13`
571 - Y'\ :sub:`1:12`
572 * - start + 8:
573 - Y'\ :sub:`2:3`
574 - Y'\ :sub:`2:2`
575 - Y'\ :sub:`2:1`
576 - Y'\ :sub:`2:0`
577 - ...
578 - Y'\ :sub:`2:15`
579 - Y'\ :sub:`2:14`
580 - Y'\ :sub:`2:13`
581 - Y'\ :sub:`2:12`
582 * - start\ +\ 12:
583 - Y'\ :sub:`3:3`
584 - Y'\ :sub:`3:2`
585 - Y'\ :sub:`3:1`
586 - Y'\ :sub:`3:0`
587 - ...
588 - Y'\ :sub:`3:15`
589 - Y'\ :sub:`3:14`
590 - Y'\ :sub:`3:13`
591 - Y'\ :sub:`3:12`
594 .. _V4L2-PIX-FMT-NV16:
595 .. _V4L2-PIX-FMT-NV61:
596 .. _V4L2-PIX-FMT-NV16M:
597 .. _V4L2-PIX-FMT-NV61M:
600 ---------------------------
602 Semi-planar YUV 4:2:2 formats. The chroma plane is subsampled by 2 in the
607 .. flat-table:: Sample 4x4 NV16 Image
608 :header-rows: 0
609 :stub-columns: 0
611 * - start + 0:
612 - Y'\ :sub:`00`
613 - Y'\ :sub:`01`
614 - Y'\ :sub:`02`
615 - Y'\ :sub:`03`
616 * - start + 4:
617 - Y'\ :sub:`10`
618 - Y'\ :sub:`11`
619 - Y'\ :sub:`12`
620 - Y'\ :sub:`13`
621 * - start + 8:
622 - Y'\ :sub:`20`
623 - Y'\ :sub:`21`
624 - Y'\ :sub:`22`
625 - Y'\ :sub:`23`
626 * - start + 12:
627 - Y'\ :sub:`30`
628 - Y'\ :sub:`31`
629 - Y'\ :sub:`32`
630 - Y'\ :sub:`33`
631 * - start + 16:
632 - Cb\ :sub:`00`
633 - Cr\ :sub:`00`
634 - Cb\ :sub:`01`
635 - Cr\ :sub:`01`
636 * - start + 20:
637 - Cb\ :sub:`10`
638 - Cr\ :sub:`10`
639 - Cb\ :sub:`11`
640 - Cr\ :sub:`11`
641 * - start + 24:
642 - Cb\ :sub:`20`
643 - Cr\ :sub:`20`
644 - Cb\ :sub:`21`
645 - Cr\ :sub:`21`
646 * - start + 28:
647 - Cb\ :sub:`30`
648 - Cr\ :sub:`30`
649 - Cb\ :sub:`31`
650 - Cr\ :sub:`31`
652 .. flat-table:: Sample 4x4 NV16M Image
653 :header-rows: 0
654 :stub-columns: 0
656 * - start0 + 0:
657 - Y'\ :sub:`00`
658 - Y'\ :sub:`01`
659 - Y'\ :sub:`02`
660 - Y'\ :sub:`03`
661 * - start0 + 4:
662 - Y'\ :sub:`10`
663 - Y'\ :sub:`11`
664 - Y'\ :sub:`12`
665 - Y'\ :sub:`13`
666 * - start0 + 8:
667 - Y'\ :sub:`20`
668 - Y'\ :sub:`21`
669 - Y'\ :sub:`22`
670 - Y'\ :sub:`23`
671 * - start0 + 12:
672 - Y'\ :sub:`30`
673 - Y'\ :sub:`31`
674 - Y'\ :sub:`32`
675 - Y'\ :sub:`33`
676 * -
677 * - start1 + 0:
678 - Cb\ :sub:`00`
679 - Cr\ :sub:`00`
680 - Cb\ :sub:`02`
681 - Cr\ :sub:`02`
682 * - start1 + 4:
683 - Cb\ :sub:`10`
684 - Cr\ :sub:`10`
685 - Cb\ :sub:`12`
686 - Cr\ :sub:`12`
687 * - start1 + 8:
688 - Cb\ :sub:`20`
689 - Cr\ :sub:`20`
690 - Cb\ :sub:`22`
691 - Cr\ :sub:`22`
692 * - start1 + 12:
693 - Cb\ :sub:`30`
694 - Cr\ :sub:`30`
695 - Cb\ :sub:`32`
696 - Cr\ :sub:`32`
699 .. _V4L2-PIX-FMT-NV20:
702 ----
704 Semi-planar 10-bit YUV 4:2:2 format similar to NV16, using 10-bit components
708 .. flat-table:: Sample 4x4 NV20 Image (1 byte per cell)
709 :header-rows: 0
710 :stub-columns: 0
712 * - start + 0:
713 - Y'\ :sub:`00[7:0]`
714 - Y'\ :sub:`01[5:0]`\ Y'\ :sub:`00[9:8]`
715 - Y'\ :sub:`02[3:0]`\ Y'\ :sub:`01[9:6]`
716 - Y'\ :sub:`03[1:0]`\ Y'\ :sub:`02[9:4]`
717 - Y'\ :sub:`03[9:2]`
718 * - start + 5:
719 - Y'\ :sub:`10[7:0]`
720 - Y'\ :sub:`11[5:0]`\ Y'\ :sub:`10[9:8]`
721 - Y'\ :sub:`12[3:0]`\ Y'\ :sub:`11[9:6]`
722 - Y'\ :sub:`13[1:0]`\ Y'\ :sub:`12[9:4]`
723 - Y'\ :sub:`13[9:2]`
724 * - start + 10:
725 - Y'\ :sub:`20[7:0]`
726 - Y'\ :sub:`21[5:0]`\ Y'\ :sub:`20[9:8]`
727 - Y'\ :sub:`22[3:0]`\ Y'\ :sub:`21[9:6]`
728 - Y'\ :sub:`23[1:0]`\ Y'\ :sub:`22[9:4]`
729 - Y'\ :sub:`23[9:2]`
730 * - start + 15:
731 - Y'\ :sub:`30[7:0]`
732 - Y'\ :sub:`31[5:0]`\ Y'\ :sub:`30[9:8]`
733 - Y'\ :sub:`32[3:0]`\ Y'\ :sub:`31[9:6]`
734 - Y'\ :sub:`33[1:0]`\ Y'\ :sub:`32[9:4]`
735 - Y'\ :sub:`33[9:2]`
736 * - start + 20:
737 - Cb\ :sub:`00[7:0]`
738 - Cr\ :sub:`00[5:0]`\ Cb\ :sub:`00[9:8]`
739 - Cb\ :sub:`01[3:0]`\ Cr\ :sub:`00[9:6]`
740 - Cr\ :sub:`01[1:0]`\ Cb\ :sub:`01[9:4]`
741 - Cr\ :sub:`01[9:2]`
742 * - start + 25:
743 - Cb\ :sub:`10[7:0]`
744 - Cr\ :sub:`10[5:0]`\ Cb\ :sub:`10[9:8]`
745 - Cb\ :sub:`11[3:0]`\ Cr\ :sub:`10[9:6]`
746 - Cr\ :sub:`11[1:0]`\ Cb\ :sub:`11[9:4]`
747 - Cr\ :sub:`11[9:2]`
748 * - start + 30:
749 - Cb\ :sub:`20[7:0]`
750 - Cr\ :sub:`20[5:0]`\ Cb\ :sub:`20[9:8]`
751 - Cb\ :sub:`21[3:0]`\ Cr\ :sub:`20[9:6]`
752 - Cr\ :sub:`21[1:0]`\ Cb\ :sub:`21[9:4]`
753 - Cr\ :sub:`21[9:2]`
754 * - start + 35:
755 - Cb\ :sub:`30[7:0]`
756 - Cr\ :sub:`30[5:0]`\ Cb\ :sub:`30[9:8]`
757 - Cb\ :sub:`31[3:0]`\ Cr\ :sub:`30[9:6]`
758 - Cr\ :sub:`31[1:0]`\ Cb\ :sub:`31[9:4]`
759 - Cr\ :sub:`31[9:2]`
762 .. _V4L2-PIX-FMT-NV24:
763 .. _V4L2-PIX-FMT-NV42:
766 -------------
768 Semi-planar YUV 4:4:4 formats. The chroma plane is not subsampled.
773 .. flat-table:: Sample 4x4 NV24 Image
774 :header-rows: 0
775 :stub-columns: 0
777 * - start + 0:
778 - Y'\ :sub:`00`
779 - Y'\ :sub:`01`
780 - Y'\ :sub:`02`
781 - Y'\ :sub:`03`
782 * - start + 4:
783 - Y'\ :sub:`10`
784 - Y'\ :sub:`11`
785 - Y'\ :sub:`12`
786 - Y'\ :sub:`13`
787 * - start + 8:
788 - Y'\ :sub:`20`
789 - Y'\ :sub:`21`
790 - Y'\ :sub:`22`
791 - Y'\ :sub:`23`
792 * - start + 12:
793 - Y'\ :sub:`30`
794 - Y'\ :sub:`31`
795 - Y'\ :sub:`32`
796 - Y'\ :sub:`33`
797 * - start + 16:
798 - Cb\ :sub:`00`
799 - Cr\ :sub:`00`
800 - Cb\ :sub:`01`
801 - Cr\ :sub:`01`
802 - Cb\ :sub:`02`
803 - Cr\ :sub:`02`
804 - Cb\ :sub:`03`
805 - Cr\ :sub:`03`
806 * - start + 24:
807 - Cb\ :sub:`10`
808 - Cr\ :sub:`10`
809 - Cb\ :sub:`11`
810 - Cr\ :sub:`11`
811 - Cb\ :sub:`12`
812 - Cr\ :sub:`12`
813 - Cb\ :sub:`13`
814 - Cr\ :sub:`13`
815 * - start + 32:
816 - Cb\ :sub:`20`
817 - Cr\ :sub:`20`
818 - Cb\ :sub:`21`
819 - Cr\ :sub:`21`
820 - Cb\ :sub:`22`
821 - Cr\ :sub:`22`
822 - Cb\ :sub:`23`
823 - Cr\ :sub:`23`
824 * - start + 40:
825 - Cb\ :sub:`30`
826 - Cr\ :sub:`30`
827 - Cb\ :sub:`31`
828 - Cr\ :sub:`31`
829 - Cb\ :sub:`32`
830 - Cr\ :sub:`32`
831 - Cb\ :sub:`33`
832 - Cr\ :sub:`33`
835 .. _V4L2-PIX-FMT-P010-4L4:
838 -------------------
843 .. flat-table:: Sample 4x4 P010 Image
844 :header-rows: 0
845 :stub-columns: 0
847 * - start + 0:
848 - Y'\ :sub:`00`
849 - Y'\ :sub:`01`
850 - Y'\ :sub:`02`
851 - Y'\ :sub:`03`
852 * - start + 8:
853 - Y'\ :sub:`10`
854 - Y'\ :sub:`11`
855 - Y'\ :sub:`12`
856 - Y'\ :sub:`13`
857 * - start + 16:
858 - Y'\ :sub:`20`
859 - Y'\ :sub:`21`
860 - Y'\ :sub:`22`
861 - Y'\ :sub:`23`
862 * - start + 24:
863 - Y'\ :sub:`30`
864 - Y'\ :sub:`31`
865 - Y'\ :sub:`32`
866 - Y'\ :sub:`33`
867 * - start + 32:
868 - Cb\ :sub:`00`
869 - Cr\ :sub:`00`
870 - Cb\ :sub:`01`
871 - Cr\ :sub:`01`
872 * - start + 40:
873 - Cb\ :sub:`10`
874 - Cr\ :sub:`10`
875 - Cb\ :sub:`11`
876 - Cr\ :sub:`11`
878 .. _V4L2-PIX-FMT-P012:
879 .. _V4L2-PIX-FMT-P012M:
882 --------------
887 .. flat-table:: Sample 4x4 P012 Image
888 :header-rows: 0
889 :stub-columns: 0
891 * - start + 0:
892 - Y'\ :sub:`00`
893 - Y'\ :sub:`01`
894 - Y'\ :sub:`02`
895 - Y'\ :sub:`03`
896 * - start + 8:
897 - Y'\ :sub:`10`
898 - Y'\ :sub:`11`
899 - Y'\ :sub:`12`
900 - Y'\ :sub:`13`
901 * - start + 16:
902 - Y'\ :sub:`20`
903 - Y'\ :sub:`21`
904 - Y'\ :sub:`22`
905 - Y'\ :sub:`23`
906 * - start + 24:
907 - Y'\ :sub:`30`
908 - Y'\ :sub:`31`
909 - Y'\ :sub:`32`
910 - Y'\ :sub:`33`
911 * - start + 32:
912 - Cb\ :sub:`00`
913 - Cr\ :sub:`00`
914 - Cb\ :sub:`01`
915 - Cr\ :sub:`01`
916 * - start + 40:
917 - Cb\ :sub:`10`
918 - Cr\ :sub:`10`
919 - Cb\ :sub:`11`
920 - Cr\ :sub:`11`
922 .. flat-table:: Sample 4x4 P012M Image
923 :header-rows: 0
924 :stub-columns: 0
926 * - start0 + 0:
927 - Y'\ :sub:`00`
928 - Y'\ :sub:`01`
929 - Y'\ :sub:`02`
930 - Y'\ :sub:`03`
931 * - start0 + 8:
932 - Y'\ :sub:`10`
933 - Y'\ :sub:`11`
934 - Y'\ :sub:`12`
935 - Y'\ :sub:`13`
936 * - start0 + 16:
937 - Y'\ :sub:`20`
938 - Y'\ :sub:`21`
939 - Y'\ :sub:`22`
940 - Y'\ :sub:`23`
941 * - start0 + 24:
942 - Y'\ :sub:`30`
943 - Y'\ :sub:`31`
944 - Y'\ :sub:`32`
945 - Y'\ :sub:`33`
946 * -
947 * - start1 + 0:
948 - Cb\ :sub:`00`
949 - Cr\ :sub:`00`
950 - Cb\ :sub:`01`
951 - Cr\ :sub:`01`
952 * - start1 + 8:
953 - Cb\ :sub:`10`
954 - Cr\ :sub:`10`
955 - Cb\ :sub:`11`
956 - Cr\ :sub:`11`
967 chroma lines is identical to the padding of the luma lines. The chroma line
972 For non-contiguous formats, no constraints are enforced by the format on the
979 a multiple of 4. The layouts of the luma and chroma planes are identical.
987 .. flat-table:: Overview of Fully Planar YUV Formats
988 :header-rows: 1
989 :stub-columns: 0
991 * - Identifier
992 - Code
993 - Bits per component
994 - Subsampling
995 - Planes order [4]_
996 - Contiguous [5]_
998 * - V4L2_PIX_FMT_YUV410
999 - 'YUV9'
1000 - 8
1001 - 4:1:0
1002 - Y, Cb, Cr
1003 - Yes
1004 * - V4L2_PIX_FMT_YVU410
1005 - 'YVU9'
1006 - 8
1007 - 4:1:0
1008 - Y, Cr, Cb
1009 - Yes
1010 * - V4L2_PIX_FMT_YUV411P
1011 - '411P'
1012 - 8
1013 - 4:1:1
1014 - Y, Cb, Cr
1015 - Yes
1016 * - V4L2_PIX_FMT_YUV420M
1017 - 'YM12'
1018 - 8
1019 - 4:2:0
1020 - Y, Cb, Cr
1021 - No
1022 * - V4L2_PIX_FMT_YVU420M
1023 - 'YM21'
1024 - 8
1025 - 4:2:0
1026 - Y, Cr, Cb
1027 - No
1028 * - V4L2_PIX_FMT_YUV420
1029 - 'YU12'
1030 - 8
1031 - 4:2:0
1032 - Y, Cb, Cr
1033 - Yes
1034 * - V4L2_PIX_FMT_YVU420
1035 - 'YV12'
1036 - 8
1037 - 4:2:0
1038 - Y, Cr, Cb
1039 - Yes
1040 * - V4L2_PIX_FMT_YUV422P
1041 - '422P'
1042 - 8
1043 - 4:2:2
1044 - Y, Cb, Cr
1045 - Yes
1046 * - V4L2_PIX_FMT_YUV422M
1047 - 'YM16'
1048 - 8
1049 - 4:2:2
1050 - Y, Cb, Cr
1051 - No
1052 * - V4L2_PIX_FMT_YVU422M
1053 - 'YM61'
1054 - 8
1055 - 4:2:2
1056 - Y, Cr, Cb
1057 - No
1058 * - V4L2_PIX_FMT_YUV444M
1059 - 'YM24'
1060 - 8
1061 - 4:4:4
1062 - Y, Cb, Cr
1063 - No
1064 * - V4L2_PIX_FMT_YVU444M
1065 - 'YM42'
1066 - 8
1067 - 4:4:4
1068 - Y, Cr, Cb
1069 - No
1081 Chroma samples are :ref:`interstitially sited<yuv-chroma-centered>`
1084 .. _V4L2-PIX-FMT-YUV410:
1085 .. _V4L2-PIX-FMT-YVU410:
1088 -----------------
1095 .. flat-table:: Sample 4x4 YUV410 Image
1096 :header-rows: 0
1097 :stub-columns: 0
1099 * - start + 0:
1100 - Y'\ :sub:`00`
1101 - Y'\ :sub:`01`
1102 - Y'\ :sub:`02`
1103 - Y'\ :sub:`03`
1104 * - start + 4:
1105 - Y'\ :sub:`10`
1106 - Y'\ :sub:`11`
1107 - Y'\ :sub:`12`
1108 - Y'\ :sub:`13`
1109 * - start + 8:
1110 - Y'\ :sub:`20`
1111 - Y'\ :sub:`21`
1112 - Y'\ :sub:`22`
1113 - Y'\ :sub:`23`
1114 * - start + 12:
1115 - Y'\ :sub:`30`
1116 - Y'\ :sub:`31`
1117 - Y'\ :sub:`32`
1118 - Y'\ :sub:`33`
1119 * - start + 16:
1120 - Cr\ :sub:`00`
1121 * - start + 17:
1122 - Cb\ :sub:`00`
1125 .. _V4L2-PIX-FMT-YUV411P:
1128 -------
1135 .. flat-table:: Sample 4x4 YUV411P Image
1136 :header-rows: 0
1137 :stub-columns: 0
1139 * - start + 0:
1140 - Y'\ :sub:`00`
1141 - Y'\ :sub:`01`
1142 - Y'\ :sub:`02`
1143 - Y'\ :sub:`03`
1144 * - start + 4:
1145 - Y'\ :sub:`10`
1146 - Y'\ :sub:`11`
1147 - Y'\ :sub:`12`
1148 - Y'\ :sub:`13`
1149 * - start + 8:
1150 - Y'\ :sub:`20`
1151 - Y'\ :sub:`21`
1152 - Y'\ :sub:`22`
1153 - Y'\ :sub:`23`
1154 * - start + 12:
1155 - Y'\ :sub:`30`
1156 - Y'\ :sub:`31`
1157 - Y'\ :sub:`32`
1158 - Y'\ :sub:`33`
1159 * - start + 16:
1160 - Cb\ :sub:`00`
1161 * - start + 17:
1162 - Cb\ :sub:`10`
1163 * - start + 18:
1164 - Cb\ :sub:`20`
1165 * - start + 19:
1166 - Cb\ :sub:`30`
1167 * - start + 20:
1168 - Cr\ :sub:`00`
1169 * - start + 21:
1170 - Cr\ :sub:`10`
1171 * - start + 22:
1172 - Cr\ :sub:`20`
1173 * - start + 23:
1174 - Cr\ :sub:`30`
1177 .. _V4L2-PIX-FMT-YUV420:
1178 .. _V4L2-PIX-FMT-YVU420:
1179 .. _V4L2-PIX-FMT-YUV420M:
1180 .. _V4L2-PIX-FMT-YVU420M:
1183 -----------------------------------
1190 .. flat-table:: Sample 4x4 YUV420 Image
1191 :header-rows: 0
1192 :stub-columns: 0
1194 * - start + 0:
1195 - Y'\ :sub:`00`
1196 - Y'\ :sub:`01`
1197 - Y'\ :sub:`02`
1198 - Y'\ :sub:`03`
1199 * - start + 4:
1200 - Y'\ :sub:`10`
1201 - Y'\ :sub:`11`
1202 - Y'\ :sub:`12`
1203 - Y'\ :sub:`13`
1204 * - start + 8:
1205 - Y'\ :sub:`20`
1206 - Y'\ :sub:`21`
1207 - Y'\ :sub:`22`
1208 - Y'\ :sub:`23`
1209 * - start + 12:
1210 - Y'\ :sub:`30`
1211 - Y'\ :sub:`31`
1212 - Y'\ :sub:`32`
1213 - Y'\ :sub:`33`
1214 * - start + 16:
1215 - Cr\ :sub:`00`
1216 - Cr\ :sub:`01`
1217 * - start + 18:
1218 - Cr\ :sub:`10`
1219 - Cr\ :sub:`11`
1220 * - start + 20:
1221 - Cb\ :sub:`00`
1222 - Cb\ :sub:`01`
1223 * - start + 22:
1224 - Cb\ :sub:`10`
1225 - Cb\ :sub:`11`
1227 .. flat-table:: Sample 4x4 YUV420M Image
1228 :header-rows: 0
1229 :stub-columns: 0
1231 * - start0 + 0:
1232 - Y'\ :sub:`00`
1233 - Y'\ :sub:`01`
1234 - Y'\ :sub:`02`
1235 - Y'\ :sub:`03`
1236 * - start0 + 4:
1237 - Y'\ :sub:`10`
1238 - Y'\ :sub:`11`
1239 - Y'\ :sub:`12`
1240 - Y'\ :sub:`13`
1241 * - start0 + 8:
1242 - Y'\ :sub:`20`
1243 - Y'\ :sub:`21`
1244 - Y'\ :sub:`22`
1245 - Y'\ :sub:`23`
1246 * - start0 + 12:
1247 - Y'\ :sub:`30`
1248 - Y'\ :sub:`31`
1249 - Y'\ :sub:`32`
1250 - Y'\ :sub:`33`
1251 * -
1252 * - start1 + 0:
1253 - Cb\ :sub:`00`
1254 - Cb\ :sub:`01`
1255 * - start1 + 2:
1256 - Cb\ :sub:`10`
1257 - Cb\ :sub:`11`
1258 * -
1259 * - start2 + 0:
1260 - Cr\ :sub:`00`
1261 - Cr\ :sub:`01`
1262 * - start2 + 2:
1263 - Cr\ :sub:`10`
1264 - Cr\ :sub:`11`
1267 .. _V4L2-PIX-FMT-YUV422P:
1268 .. _V4L2-PIX-FMT-YUV422M:
1269 .. _V4L2-PIX-FMT-YVU422M:
1272 ----------------------------
1279 .. flat-table:: Sample 4x4 YUV422P Image
1280 :header-rows: 0
1281 :stub-columns: 0
1283 * - start + 0:
1284 - Y'\ :sub:`00`
1285 - Y'\ :sub:`01`
1286 - Y'\ :sub:`02`
1287 - Y'\ :sub:`03`
1288 * - start + 4:
1289 - Y'\ :sub:`10`
1290 - Y'\ :sub:`11`
1291 - Y'\ :sub:`12`
1292 - Y'\ :sub:`13`
1293 * - start + 8:
1294 - Y'\ :sub:`20`
1295 - Y'\ :sub:`21`
1296 - Y'\ :sub:`22`
1297 - Y'\ :sub:`23`
1298 * - start + 12:
1299 - Y'\ :sub:`30`
1300 - Y'\ :sub:`31`
1301 - Y'\ :sub:`32`
1302 - Y'\ :sub:`33`
1303 * - start + 16:
1304 - Cb\ :sub:`00`
1305 - Cb\ :sub:`01`
1306 * - start + 18:
1307 - Cb\ :sub:`10`
1308 - Cb\ :sub:`11`
1309 * - start + 20:
1310 - Cb\ :sub:`20`
1311 - Cb\ :sub:`21`
1312 * - start + 22:
1313 - Cb\ :sub:`30`
1314 - Cb\ :sub:`31`
1315 * - start + 24:
1316 - Cr\ :sub:`00`
1317 - Cr\ :sub:`01`
1318 * - start + 26:
1319 - Cr\ :sub:`10`
1320 - Cr\ :sub:`11`
1321 * - start + 28:
1322 - Cr\ :sub:`20`
1323 - Cr\ :sub:`21`
1324 * - start + 30:
1325 - Cr\ :sub:`30`
1326 - Cr\ :sub:`31`
1328 .. flat-table:: Sample 4x4 YUV422M Image
1329 :header-rows: 0
1330 :stub-columns: 0
1332 * - start0 + 0:
1333 - Y'\ :sub:`00`
1334 - Y'\ :sub:`01`
1335 - Y'\ :sub:`02`
1336 - Y'\ :sub:`03`
1337 * - start0 + 4:
1338 - Y'\ :sub:`10`
1339 - Y'\ :sub:`11`
1340 - Y'\ :sub:`12`
1341 - Y'\ :sub:`13`
1342 * - start0 + 8:
1343 - Y'\ :sub:`20`
1344 - Y'\ :sub:`21`
1345 - Y'\ :sub:`22`
1346 - Y'\ :sub:`23`
1347 * - start0 + 12:
1348 - Y'\ :sub:`30`
1349 - Y'\ :sub:`31`
1350 - Y'\ :sub:`32`
1351 - Y'\ :sub:`33`
1352 * -
1353 * - start1 + 0:
1354 - Cb\ :sub:`00`
1355 - Cb\ :sub:`01`
1356 * - start1 + 2:
1357 - Cb\ :sub:`10`
1358 - Cb\ :sub:`11`
1359 * - start1 + 4:
1360 - Cb\ :sub:`20`
1361 - Cb\ :sub:`21`
1362 * - start1 + 6:
1363 - Cb\ :sub:`30`
1364 - Cb\ :sub:`31`
1365 * -
1366 * - start2 + 0:
1367 - Cr\ :sub:`00`
1368 - Cr\ :sub:`01`
1369 * - start2 + 2:
1370 - Cr\ :sub:`10`
1371 - Cr\ :sub:`11`
1372 * - start2 + 4:
1373 - Cr\ :sub:`20`
1374 - Cr\ :sub:`21`
1375 * - start2 + 6:
1376 - Cr\ :sub:`30`
1377 - Cr\ :sub:`31`
1380 .. _V4L2-PIX-FMT-YUV444M:
1381 .. _V4L2-PIX-FMT-YVU444M:
1384 -------------------
1390 .. flat-table:: Sample 4x4 YUV444M Image
1391 :header-rows: 0
1392 :stub-columns: 0
1394 * - start0 + 0:
1395 - Y'\ :sub:`00`
1396 - Y'\ :sub:`01`
1397 - Y'\ :sub:`02`
1398 - Y'\ :sub:`03`
1399 * - start0 + 4:
1400 - Y'\ :sub:`10`
1401 - Y'\ :sub:`11`
1402 - Y'\ :sub:`12`
1403 - Y'\ :sub:`13`
1404 * - start0 + 8:
1405 - Y'\ :sub:`20`
1406 - Y'\ :sub:`21`
1407 - Y'\ :sub:`22`
1408 - Y'\ :sub:`23`
1409 * - start0 + 12:
1410 - Y'\ :sub:`30`
1411 - Y'\ :sub:`31`
1412 - Y'\ :sub:`32`
1413 - Y'\ :sub:`33`
1414 * -
1415 * - start1 + 0:
1416 - Cb\ :sub:`00`
1417 - Cb\ :sub:`01`
1418 - Cb\ :sub:`02`
1419 - Cb\ :sub:`03`
1420 * - start1 + 4:
1421 - Cb\ :sub:`10`
1422 - Cb\ :sub:`11`
1423 - Cb\ :sub:`12`
1424 - Cb\ :sub:`13`
1425 * - start1 + 8:
1426 - Cb\ :sub:`20`
1427 - Cb\ :sub:`21`
1428 - Cb\ :sub:`22`
1429 - Cb\ :sub:`23`
1430 * - start1 + 12:
1431 - Cb\ :sub:`20`
1432 - Cb\ :sub:`21`
1433 - Cb\ :sub:`32`
1434 - Cb\ :sub:`33`
1435 * -
1436 * - start2 + 0:
1437 - Cr\ :sub:`00`
1438 - Cr\ :sub:`01`
1439 - Cr\ :sub:`02`
1440 - Cr\ :sub:`03`
1441 * - start2 + 4:
1442 - Cr\ :sub:`10`
1443 - Cr\ :sub:`11`
1444 - Cr\ :sub:`12`
1445 - Cr\ :sub:`13`
1446 * - start2 + 8:
1447 - Cr\ :sub:`20`
1448 - Cr\ :sub:`21`
1449 - Cr\ :sub:`22`
1450 - Cr\ :sub:`23`
1451 * - start2 + 12:
1452 - Cr\ :sub:`30`
1453 - Cr\ :sub:`31`
1454 - Cr\ :sub:`32`
1455 - Cr\ :sub:`33`