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

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/v4l/pixfmt-rgb.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 ] ~

  1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2 
  3 .. _pixfmt-rgb:
  4 
  5 ***********
  6 RGB Formats
  7 ***********
  8 
  9 These formats encode each pixel as a triplet of RGB values. They are packed
 10 formats, meaning that the RGB values for one pixel are stored consecutively in
 11 memory and each pixel consumes an integer number of bytes. When the number of
 12 bits required to store a pixel is not aligned to a byte boundary, the data is
 13 padded with additional bits to fill the remaining byte.
 14 
 15 The formats differ by the number of bits per RGB component (typically but not
 16 always the same for all components), the order of components in memory, and the
 17 presence of an alpha component or additional padding bits.
 18 
 19 The usage and value of the alpha bits in formats that support them (named ARGB
 20 or a permutation thereof, collectively referred to as alpha formats) depend on
 21 the device type and hardware operation. :ref:`Capture <capture>` devices
 22 (including capture queues of mem-to-mem devices) fill the alpha component in
 23 memory. When the device captures an alpha channel the alpha component will have
 24 a meaningful value. Otherwise, when the device doesn't capture an alpha channel
 25 but can set the alpha bit to a user-configurable value, the
 26 :ref:`V4L2_CID_ALPHA_COMPONENT <v4l2-alpha-component>` control is used to
 27 specify that alpha value, and the alpha component of all pixels will be set to
 28 the value specified by that control. Otherwise a corresponding format without
 29 an alpha component (XRGB or XBGR) must be used instead of an alpha format.
 30 
 31 :ref:`Output <output>` devices (including output queues of mem-to-mem devices
 32 and :ref:`video output overlay <osd>` devices) read the alpha component from
 33 memory. When the device processes the alpha channel the alpha component must be
 34 filled with meaningful values by applications. Otherwise a corresponding format
 35 without an alpha component (XRGB or XBGR) must be used instead of an alpha
 36 format.
 37 
 38 Formats that contain padding bits are named XRGB (or a permutation thereof).
 39 The padding bits contain undefined values and must be ignored by applications,
 40 devices and drivers, for both :ref:`capture` and :ref:`output` devices.
 41 
 42 .. note::
 43 
 44    - In all the tables that follow, bit 7 is the most significant bit in a byte.
 45    - 'r', 'g' and 'b' denote bits of the red, green and blue components
 46      respectively. 'a' denotes bits of the alpha component (if supported by the
 47      format), and 'x' denotes padding bits.
 48 
 49 
 50 Less Than 8 Bits Per Component
 51 ==============================
 52 
 53 These formats store an RGB triplet in one, two or four bytes. They are named
 54 based on the order of the RGB components as seen in a 8-, 16- or 32-bit word,
 55 which is then stored in memory in little endian byte order (unless otherwise
 56 noted by the presence of bit 31 in the 4CC value), and on the number of bits
 57 for each component. For instance, the RGB565 format stores a pixel in a 16-bit
 58 word [15:0] laid out at as [R\ :sub:`4` R\ :sub:`3` R\ :sub:`2` R\ :sub:`1`
 59 R\ :sub:`0` G\ :sub:`5` G\ :sub:`4` G\ :sub:`3` G\ :sub:`2` G\ :sub:`1`
 60 G\ :sub:`0` B\ :sub:`4` B\ :sub:`3` B\ :sub:`2` B\ :sub:`1` B\ :sub:`0`], and
 61 stored in memory in two bytes, [R\ :sub:`4` R\ :sub:`3` R\ :sub:`2` R\ :sub:`1`
 62 R\ :sub:`0` G\ :sub:`5` G\ :sub:`4` G\ :sub:`3`] followed by [G\ :sub:`2`
 63 G\ :sub:`1` G\ :sub:`0` B\ :sub:`4` B\ :sub:`3` B\ :sub:`2` B\ :sub:`1`
 64 B\ :sub:`0`].
 65 
 66 .. raw:: latex
 67 
 68     \begingroup
 69     \tiny
 70     \setlength{\tabcolsep}{2pt}
 71 
 72 .. tabularcolumns:: |p{2.8cm}|p{2.0cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
 73 
 74 
 75 .. flat-table:: RGB Formats With Less Than 8 Bits Per Component
 76     :header-rows:  2
 77     :stub-columns: 0
 78 
 79     * - Identifier
 80       - Code
 81       - :cspan:`7` Byte 0 in memory
 82       - :cspan:`7` Byte 1
 83       - :cspan:`7` Byte 2
 84       - :cspan:`7` Byte 3
 85     * -
 86       -
 87       - 7
 88       - 6
 89       - 5
 90       - 4
 91       - 3
 92       - 2
 93       - 1
 94       - 0
 95 
 96       - 7
 97       - 6
 98       - 5
 99       - 4
100       - 3
101       - 2
102       - 1
103       - 0
104 
105       - 7
106       - 6
107       - 5
108       - 4
109       - 3
110       - 2
111       - 1
112       - 0
113 
114       - 7
115       - 6
116       - 5
117       - 4
118       - 3
119       - 2
120       - 1
121       - 0
122     * .. _V4L2-PIX-FMT-RGB332:
123 
124       - ``V4L2_PIX_FMT_RGB332``
125       - 'RGB1'
126 
127       - r\ :sub:`2`
128       - r\ :sub:`1`
129       - r\ :sub:`0`
130       - g\ :sub:`2`
131       - g\ :sub:`1`
132       - g\ :sub:`0`
133       - b\ :sub:`1`
134       - b\ :sub:`0`
135       -
136     * .. _V4L2-PIX-FMT-ARGB444:
137 
138       - ``V4L2_PIX_FMT_ARGB444``
139       - 'AR12'
140 
141       - g\ :sub:`3`
142       - g\ :sub:`2`
143       - g\ :sub:`1`
144       - g\ :sub:`0`
145       - b\ :sub:`3`
146       - b\ :sub:`2`
147       - b\ :sub:`1`
148       - b\ :sub:`0`
149 
150       - a\ :sub:`3`
151       - a\ :sub:`2`
152       - a\ :sub:`1`
153       - a\ :sub:`0`
154       - r\ :sub:`3`
155       - r\ :sub:`2`
156       - r\ :sub:`1`
157       - r\ :sub:`0`
158       -
159     * .. _V4L2-PIX-FMT-XRGB444:
160 
161       - ``V4L2_PIX_FMT_XRGB444``
162       - 'XR12'
163 
164       - g\ :sub:`3`
165       - g\ :sub:`2`
166       - g\ :sub:`1`
167       - g\ :sub:`0`
168       - b\ :sub:`3`
169       - b\ :sub:`2`
170       - b\ :sub:`1`
171       - b\ :sub:`0`
172 
173       - x
174       - x
175       - x
176       - x
177       - r\ :sub:`3`
178       - r\ :sub:`2`
179       - r\ :sub:`1`
180       - r\ :sub:`0`
181       -
182     * .. _V4L2-PIX-FMT-RGBA444:
183 
184       - ``V4L2_PIX_FMT_RGBA444``
185       - 'RA12'
186 
187       - b\ :sub:`3`
188       - b\ :sub:`2`
189       - b\ :sub:`1`
190       - b\ :sub:`0`
191       - a\ :sub:`3`
192       - a\ :sub:`2`
193       - a\ :sub:`1`
194       - a\ :sub:`0`
195 
196       - r\ :sub:`3`
197       - r\ :sub:`2`
198       - r\ :sub:`1`
199       - r\ :sub:`0`
200       - g\ :sub:`3`
201       - g\ :sub:`2`
202       - g\ :sub:`1`
203       - g\ :sub:`0`
204       -
205     * .. _V4L2-PIX-FMT-RGBX444:
206 
207       - ``V4L2_PIX_FMT_RGBX444``
208       - 'RX12'
209 
210       - b\ :sub:`3`
211       - b\ :sub:`2`
212       - b\ :sub:`1`
213       - b\ :sub:`0`
214       - x
215       - x
216       - x
217       - x
218 
219       - r\ :sub:`3`
220       - r\ :sub:`2`
221       - r\ :sub:`1`
222       - r\ :sub:`0`
223       - g\ :sub:`3`
224       - g\ :sub:`2`
225       - g\ :sub:`1`
226       - g\ :sub:`0`
227       -
228     * .. _V4L2-PIX-FMT-ABGR444:
229 
230       - ``V4L2_PIX_FMT_ABGR444``
231       - 'AB12'
232 
233       - g\ :sub:`3`
234       - g\ :sub:`2`
235       - g\ :sub:`1`
236       - g\ :sub:`0`
237       - r\ :sub:`3`
238       - r\ :sub:`2`
239       - r\ :sub:`1`
240       - r\ :sub:`0`
241 
242       - a\ :sub:`3`
243       - a\ :sub:`2`
244       - a\ :sub:`1`
245       - a\ :sub:`0`
246       - b\ :sub:`3`
247       - b\ :sub:`2`
248       - b\ :sub:`1`
249       - b\ :sub:`0`
250       -
251     * .. _V4L2-PIX-FMT-XBGR444:
252 
253       - ``V4L2_PIX_FMT_XBGR444``
254       - 'XB12'
255 
256       - g\ :sub:`3`
257       - g\ :sub:`2`
258       - g\ :sub:`1`
259       - g\ :sub:`0`
260       - r\ :sub:`3`
261       - r\ :sub:`2`
262       - r\ :sub:`1`
263       - r\ :sub:`0`
264 
265       - x
266       - x
267       - x
268       - x
269       - b\ :sub:`3`
270       - b\ :sub:`2`
271       - b\ :sub:`1`
272       - b\ :sub:`0`
273       -
274     * .. _V4L2-PIX-FMT-BGRA444:
275 
276       - ``V4L2_PIX_FMT_BGRA444``
277       - 'BA12'
278 
279       - r\ :sub:`3`
280       - r\ :sub:`2`
281       - r\ :sub:`1`
282       - r\ :sub:`0`
283       - a\ :sub:`3`
284       - a\ :sub:`2`
285       - a\ :sub:`1`
286       - a\ :sub:`0`
287 
288       - b\ :sub:`3`
289       - b\ :sub:`2`
290       - b\ :sub:`1`
291       - b\ :sub:`0`
292       - g\ :sub:`3`
293       - g\ :sub:`2`
294       - g\ :sub:`1`
295       - g\ :sub:`0`
296       -
297     * .. _V4L2-PIX-FMT-BGRX444:
298 
299       - ``V4L2_PIX_FMT_BGRX444``
300       - 'BX12'
301 
302       - r\ :sub:`3`
303       - r\ :sub:`2`
304       - r\ :sub:`1`
305       - r\ :sub:`0`
306       - x
307       - x
308       - x
309       - x
310 
311       - b\ :sub:`3`
312       - b\ :sub:`2`
313       - b\ :sub:`1`
314       - b\ :sub:`0`
315       - g\ :sub:`3`
316       - g\ :sub:`2`
317       - g\ :sub:`1`
318       - g\ :sub:`0`
319       -
320     * .. _V4L2-PIX-FMT-ARGB555:
321 
322       - ``V4L2_PIX_FMT_ARGB555``
323       - 'AR15'
324 
325       - g\ :sub:`2`
326       - g\ :sub:`1`
327       - g\ :sub:`0`
328       - b\ :sub:`4`
329       - b\ :sub:`3`
330       - b\ :sub:`2`
331       - b\ :sub:`1`
332       - b\ :sub:`0`
333 
334       - a
335       - r\ :sub:`4`
336       - r\ :sub:`3`
337       - r\ :sub:`2`
338       - r\ :sub:`1`
339       - r\ :sub:`0`
340       - g\ :sub:`4`
341       - g\ :sub:`3`
342       -
343     * .. _V4L2-PIX-FMT-XRGB555:
344 
345       - ``V4L2_PIX_FMT_XRGB555``
346       - 'XR15'
347 
348       - g\ :sub:`2`
349       - g\ :sub:`1`
350       - g\ :sub:`0`
351       - b\ :sub:`4`
352       - b\ :sub:`3`
353       - b\ :sub:`2`
354       - b\ :sub:`1`
355       - b\ :sub:`0`
356 
357       - x
358       - r\ :sub:`4`
359       - r\ :sub:`3`
360       - r\ :sub:`2`
361       - r\ :sub:`1`
362       - r\ :sub:`0`
363       - g\ :sub:`4`
364       - g\ :sub:`3`
365       -
366     * .. _V4L2-PIX-FMT-RGBA555:
367 
368       - ``V4L2_PIX_FMT_RGBA555``
369       - 'RA15'
370 
371       - g\ :sub:`1`
372       - g\ :sub:`0`
373       - b\ :sub:`4`
374       - b\ :sub:`3`
375       - b\ :sub:`2`
376       - b\ :sub:`1`
377       - b\ :sub:`0`
378       - a
379 
380       - r\ :sub:`4`
381       - r\ :sub:`3`
382       - r\ :sub:`2`
383       - r\ :sub:`1`
384       - r\ :sub:`0`
385       - g\ :sub:`4`
386       - g\ :sub:`3`
387       - g\ :sub:`2`
388       -
389     * .. _V4L2-PIX-FMT-RGBX555:
390 
391       - ``V4L2_PIX_FMT_RGBX555``
392       - 'RX15'
393 
394       - g\ :sub:`1`
395       - g\ :sub:`0`
396       - b\ :sub:`4`
397       - b\ :sub:`3`
398       - b\ :sub:`2`
399       - b\ :sub:`1`
400       - b\ :sub:`0`
401       - x
402 
403       - r\ :sub:`4`
404       - r\ :sub:`3`
405       - r\ :sub:`2`
406       - r\ :sub:`1`
407       - r\ :sub:`0`
408       - g\ :sub:`4`
409       - g\ :sub:`3`
410       - g\ :sub:`2`
411       -
412     * .. _V4L2-PIX-FMT-ABGR555:
413 
414       - ``V4L2_PIX_FMT_ABGR555``
415       - 'AB15'
416 
417       - g\ :sub:`2`
418       - g\ :sub:`1`
419       - g\ :sub:`0`
420       - r\ :sub:`4`
421       - r\ :sub:`3`
422       - r\ :sub:`2`
423       - r\ :sub:`1`
424       - r\ :sub:`0`
425 
426       - a
427       - b\ :sub:`4`
428       - b\ :sub:`3`
429       - b\ :sub:`2`
430       - b\ :sub:`1`
431       - b\ :sub:`0`
432       - g\ :sub:`4`
433       - g\ :sub:`3`
434       -
435     * .. _V4L2-PIX-FMT-XBGR555:
436 
437       - ``V4L2_PIX_FMT_XBGR555``
438       - 'XB15'
439 
440       - g\ :sub:`2`
441       - g\ :sub:`1`
442       - g\ :sub:`0`
443       - r\ :sub:`4`
444       - r\ :sub:`3`
445       - r\ :sub:`2`
446       - r\ :sub:`1`
447       - r\ :sub:`0`
448 
449       - x
450       - b\ :sub:`4`
451       - b\ :sub:`3`
452       - b\ :sub:`2`
453       - b\ :sub:`1`
454       - b\ :sub:`0`
455       - g\ :sub:`4`
456       - g\ :sub:`3`
457       -
458     * .. _V4L2-PIX-FMT-BGRA555:
459 
460       - ``V4L2_PIX_FMT_BGRA555``
461       - 'BA15'
462 
463       - g\ :sub:`1`
464       - g\ :sub:`0`
465       - r\ :sub:`4`
466       - r\ :sub:`3`
467       - r\ :sub:`2`
468       - r\ :sub:`1`
469       - r\ :sub:`0`
470       - a
471 
472       - b\ :sub:`4`
473       - b\ :sub:`3`
474       - b\ :sub:`2`
475       - b\ :sub:`1`
476       - b\ :sub:`0`
477       - g\ :sub:`4`
478       - g\ :sub:`3`
479       - g\ :sub:`2`
480       -
481     * .. _V4L2-PIX-FMT-BGRX555:
482 
483       - ``V4L2_PIX_FMT_BGRX555``
484       - 'BX15'
485 
486       - g\ :sub:`1`
487       - g\ :sub:`0`
488       - r\ :sub:`4`
489       - r\ :sub:`3`
490       - r\ :sub:`2`
491       - r\ :sub:`1`
492       - r\ :sub:`0`
493       - x
494 
495       - b\ :sub:`4`
496       - b\ :sub:`3`
497       - b\ :sub:`2`
498       - b\ :sub:`1`
499       - b\ :sub:`0`
500       - g\ :sub:`4`
501       - g\ :sub:`3`
502       - g\ :sub:`2`
503       -
504     * .. _V4L2-PIX-FMT-RGB565:
505 
506       - ``V4L2_PIX_FMT_RGB565``
507       - 'RGBP'
508 
509       - g\ :sub:`2`
510       - g\ :sub:`1`
511       - g\ :sub:`0`
512       - b\ :sub:`4`
513       - b\ :sub:`3`
514       - b\ :sub:`2`
515       - b\ :sub:`1`
516       - b\ :sub:`0`
517 
518       - r\ :sub:`4`
519       - r\ :sub:`3`
520       - r\ :sub:`2`
521       - r\ :sub:`1`
522       - r\ :sub:`0`
523       - g\ :sub:`5`
524       - g\ :sub:`4`
525       - g\ :sub:`3`
526       -
527     * .. _V4L2-PIX-FMT-ARGB555X:
528 
529       - ``V4L2_PIX_FMT_ARGB555X``
530       - 'AR15' | (1 << 31)
531 
532       - a
533       - r\ :sub:`4`
534       - r\ :sub:`3`
535       - r\ :sub:`2`
536       - r\ :sub:`1`
537       - r\ :sub:`0`
538       - g\ :sub:`4`
539       - g\ :sub:`3`
540 
541       - g\ :sub:`2`
542       - g\ :sub:`1`
543       - g\ :sub:`0`
544       - b\ :sub:`4`
545       - b\ :sub:`3`
546       - b\ :sub:`2`
547       - b\ :sub:`1`
548       - b\ :sub:`0`
549       -
550     * .. _V4L2-PIX-FMT-XRGB555X:
551 
552       - ``V4L2_PIX_FMT_XRGB555X``
553       - 'XR15' | (1 << 31)
554 
555       - x
556       - r\ :sub:`4`
557       - r\ :sub:`3`
558       - r\ :sub:`2`
559       - r\ :sub:`1`
560       - r\ :sub:`0`
561       - g\ :sub:`4`
562       - g\ :sub:`3`
563 
564       - g\ :sub:`2`
565       - g\ :sub:`1`
566       - g\ :sub:`0`
567       - b\ :sub:`4`
568       - b\ :sub:`3`
569       - b\ :sub:`2`
570       - b\ :sub:`1`
571       - b\ :sub:`0`
572       -
573     * .. _V4L2-PIX-FMT-RGB565X:
574 
575       - ``V4L2_PIX_FMT_RGB565X``
576       - 'RGBR'
577 
578       - r\ :sub:`4`
579       - r\ :sub:`3`
580       - r\ :sub:`2`
581       - r\ :sub:`1`
582       - r\ :sub:`0`
583       - g\ :sub:`5`
584       - g\ :sub:`4`
585       - g\ :sub:`3`
586 
587       - g\ :sub:`2`
588       - g\ :sub:`1`
589       - g\ :sub:`0`
590       - b\ :sub:`4`
591       - b\ :sub:`3`
592       - b\ :sub:`2`
593       - b\ :sub:`1`
594       - b\ :sub:`0`
595       -
596     * .. _V4L2-PIX-FMT-BGR666:
597 
598       - ``V4L2_PIX_FMT_BGR666``
599       - 'BGRH'
600 
601       - b\ :sub:`5`
602       - b\ :sub:`4`
603       - b\ :sub:`3`
604       - b\ :sub:`2`
605       - b\ :sub:`1`
606       - b\ :sub:`0`
607       - g\ :sub:`5`
608       - g\ :sub:`4`
609 
610       - g\ :sub:`3`
611       - g\ :sub:`2`
612       - g\ :sub:`1`
613       - g\ :sub:`0`
614       - r\ :sub:`5`
615       - r\ :sub:`4`
616       - r\ :sub:`3`
617       - r\ :sub:`2`
618 
619       - r\ :sub:`1`
620       - r\ :sub:`0`
621       - x
622       - x
623       - x
624       - x
625       - x
626       - x
627 
628       - x
629       - x
630       - x
631       - x
632       - x
633       - x
634       - x
635       - x
636 
637 .. raw:: latex
638 
639     \endgroup
640 
641 
642 8 Bits Per Component
643 ====================
644 
645 These formats store an RGB triplet in three or four bytes. They are named based
646 on the order of the RGB components as stored in memory, and on the total number
647 of bits per pixel. For instance, RGB24 format stores a pixel with [R\ :sub:`7`
648 R\ :sub:`6` R\ :sub:`5` R\ :sub:`4` R\ :sub:`3` R\ :sub:`2` R\ :sub:`1`
649 R\ :sub:`0`] in the first byte, [G\ :sub:`7` G\ :sub:`6` G\ :sub:`5` G\ :sub:`4`
650 G\ :sub:`3` G\ :sub:`2` G\ :sub:`1` G\ :sub:`0`] in the second byte and
651 [B\ :sub:`7` B\ :sub:`6` B\ :sub:`5` B\ :sub:`4` B\ :sub:`3` B\ :sub:`2`
652 B\ :sub:`1` B\ :sub:`0`] in the third byte. This differs from the DRM format
653 nomenclature that instead use the order of components as seen in a 24- or
654 32-bit little endian word.
655 
656 .. raw:: latex
657 
658     \small
659 
660 .. flat-table:: RGB Formats With 8 Bits Per Component
661     :header-rows:  1
662     :stub-columns: 0
663 
664     * - Identifier
665       - Code
666       - Byte 0 in memory
667       - Byte 1
668       - Byte 2
669       - Byte 3
670     * .. _V4L2-PIX-FMT-BGR24:
671 
672       - ``V4L2_PIX_FMT_BGR24``
673       - 'BGR3'
674 
675       - B\ :sub:`7-0`
676       - G\ :sub:`7-0`
677       - R\ :sub:`7-0`
678       -
679     * .. _V4L2-PIX-FMT-RGB24:
680 
681       - ``V4L2_PIX_FMT_RGB24``
682       - 'RGB3'
683 
684       - R\ :sub:`7-0`
685       - G\ :sub:`7-0`
686       - B\ :sub:`7-0`
687       -
688     * .. _V4L2-PIX-FMT-ABGR32:
689 
690       - ``V4L2_PIX_FMT_ABGR32``
691       - 'AR24'
692 
693       - B\ :sub:`7-0`
694       - G\ :sub:`7-0`
695       - R\ :sub:`7-0`
696       - A\ :sub:`7-0`
697     * .. _V4L2-PIX-FMT-XBGR32:
698 
699       - ``V4L2_PIX_FMT_XBGR32``
700       - 'XR24'
701 
702       - B\ :sub:`7-0`
703       - G\ :sub:`7-0`
704       - R\ :sub:`7-0`
705       - X\ :sub:`7-0`
706     * .. _V4L2-PIX-FMT-BGRA32:
707 
708       - ``V4L2_PIX_FMT_BGRA32``
709       - 'RA24'
710 
711       - A\ :sub:`7-0`
712       - B\ :sub:`7-0`
713       - G\ :sub:`7-0`
714       - R\ :sub:`7-0`
715     * .. _V4L2-PIX-FMT-BGRX32:
716 
717       - ``V4L2_PIX_FMT_BGRX32``
718       - 'RX24'
719 
720       - X\ :sub:`7-0`
721       - B\ :sub:`7-0`
722       - G\ :sub:`7-0`
723       - R\ :sub:`7-0`
724     * .. _V4L2-PIX-FMT-RGBA32:
725 
726       - ``V4L2_PIX_FMT_RGBA32``
727       - 'AB24'
728 
729       - R\ :sub:`7-0`
730       - G\ :sub:`7-0`
731       - B\ :sub:`7-0`
732       - A\ :sub:`7-0`
733     * .. _V4L2-PIX-FMT-RGBX32:
734 
735       - ``V4L2_PIX_FMT_RGBX32``
736       - 'XB24'
737 
738       - R\ :sub:`7-0`
739       - G\ :sub:`7-0`
740       - B\ :sub:`7-0`
741       - X\ :sub:`7-0`
742     * .. _V4L2-PIX-FMT-ARGB32:
743 
744       - ``V4L2_PIX_FMT_ARGB32``
745       - 'BA24'
746 
747       - A\ :sub:`7-0`
748       - R\ :sub:`7-0`
749       - G\ :sub:`7-0`
750       - B\ :sub:`7-0`
751     * .. _V4L2-PIX-FMT-XRGB32:
752 
753       - ``V4L2_PIX_FMT_XRGB32``
754       - 'BX24'
755 
756       - X\ :sub:`7-0`
757       - R\ :sub:`7-0`
758       - G\ :sub:`7-0`
759       - B\ :sub:`7-0`
760 
761 .. raw:: latex
762 
763     \normalsize
764 
765 
766 10 Bits Per Component
767 =====================
768 
769 These formats store a 30-bit RGB triplet with an optional 2 bit alpha in four
770 bytes. They are named based on the order of the RGB components as seen in a
771 32-bit word, which is then stored in memory in little endian byte order
772 (unless otherwise noted by the presence of bit 31 in the 4CC value), and on the
773 number of bits for each component.
774 
775 .. raw:: latex
776 
777     \begingroup
778     \tiny
779     \setlength{\tabcolsep}{2pt}
780 
781 .. tabularcolumns:: |p{3.2cm}|p{0.8cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
782 
783 
784 .. flat-table:: RGB Formats 10 Bits Per Color Component
785     :header-rows:  2
786     :stub-columns: 0
787 
788     * - Identifier
789       - Code
790       - :cspan:`7` Byte 0 in memory
791       - :cspan:`7` Byte 1
792       - :cspan:`7` Byte 2
793       - :cspan:`7` Byte 3
794     * -
795       -
796       - 7
797       - 6
798       - 5
799       - 4
800       - 3
801       - 2
802       - 1
803       - 0
804 
805       - 7
806       - 6
807       - 5
808       - 4
809       - 3
810       - 2
811       - 1
812       - 0
813 
814       - 7
815       - 6
816       - 5
817       - 4
818       - 3
819       - 2
820       - 1
821       - 0
822 
823       - 7
824       - 6
825       - 5
826       - 4
827       - 3
828       - 2
829       - 1
830       - 0
831     * .. _V4L2-PIX-FMT-RGBX1010102:
832 
833       - ``V4L2_PIX_FMT_RGBX1010102``
834       - 'RX30'
835 
836       - b\ :sub:`5`
837       - b\ :sub:`4`
838       - b\ :sub:`3`
839       - b\ :sub:`2`
840       - b\ :sub:`1`
841       - b\ :sub:`0`
842       - x
843       - x
844 
845       - g\ :sub:`3`
846       - g\ :sub:`2`
847       - g\ :sub:`1`
848       - g\ :sub:`0`
849       - b\ :sub:`9`
850       - b\ :sub:`8`
851       - b\ :sub:`7`
852       - b\ :sub:`6`
853 
854       - r\ :sub:`1`
855       - r\ :sub:`0`
856       - g\ :sub:`9`
857       - g\ :sub:`8`
858       - g\ :sub:`7`
859       - g\ :sub:`6`
860       - g\ :sub:`5`
861       - g\ :sub:`4`
862 
863       - r\ :sub:`9`
864       - r\ :sub:`8`
865       - r\ :sub:`7`
866       - r\ :sub:`6`
867       - r\ :sub:`5`
868       - r\ :sub:`4`
869       - r\ :sub:`3`
870       - r\ :sub:`2`
871     * .. _V4L2-PIX-FMT-RGBA1010102:
872 
873       - ``V4L2_PIX_FMT_RGBA1010102``
874       - 'RA30'
875 
876       - b\ :sub:`5`
877       - b\ :sub:`4`
878       - b\ :sub:`3`
879       - b\ :sub:`2`
880       - b\ :sub:`1`
881       - b\ :sub:`0`
882       - a\ :sub:`1`
883       - a\ :sub:`0`
884 
885       - g\ :sub:`3`
886       - g\ :sub:`2`
887       - g\ :sub:`1`
888       - g\ :sub:`0`
889       - b\ :sub:`9`
890       - b\ :sub:`8`
891       - b\ :sub:`7`
892       - b\ :sub:`6`
893 
894       - r\ :sub:`1`
895       - r\ :sub:`0`
896       - g\ :sub:`9`
897       - g\ :sub:`8`
898       - g\ :sub:`7`
899       - g\ :sub:`6`
900       - g\ :sub:`5`
901       - g\ :sub:`4`
902 
903       - r\ :sub:`9`
904       - r\ :sub:`8`
905       - r\ :sub:`7`
906       - r\ :sub:`6`
907       - r\ :sub:`5`
908       - r\ :sub:`4`
909       - r\ :sub:`3`
910       - r\ :sub:`2`
911     * .. _V4L2-PIX-FMT-ARGB2101010:
912 
913       - ``V4L2_PIX_FMT_ARGB2101010``
914       - 'AR30'
915 
916       - b\ :sub:`7`
917       - b\ :sub:`6`
918       - b\ :sub:`5`
919       - b\ :sub:`4`
920       - b\ :sub:`3`
921       - b\ :sub:`2`
922       - b\ :sub:`1`
923       - b\ :sub:`0`
924 
925       - g\ :sub:`5`
926       - g\ :sub:`4`
927       - g\ :sub:`3`
928       - g\ :sub:`2`
929       - g\ :sub:`1`
930       - g\ :sub:`0`
931       - b\ :sub:`9`
932       - b\ :sub:`8`
933 
934       - r\ :sub:`3`
935       - r\ :sub:`2`
936       - r\ :sub:`1`
937       - r\ :sub:`0`
938       - g\ :sub:`9`
939       - g\ :sub:`8`
940       - g\ :sub:`7`
941       - g\ :sub:`6`
942 
943       - a\ :sub:`1`
944       - a\ :sub:`0`
945       - r\ :sub:`9`
946       - r\ :sub:`8`
947       - r\ :sub:`7`
948       - r\ :sub:`6`
949       - r\ :sub:`5`
950       - r\ :sub:`4`
951 
952 .. raw:: latex
953 
954     \endgroup
955 
956 12 Bits Per Component
957 ==============================
958 
959 These formats store an RGB triplet in six or eight bytes, with 12 bits per component.
960 Expand the bits per component to 16 bits, data in the high bits, zeros in the low bits,
961 arranged in little endian order.
962 
963 .. raw:: latex
964 
965     \small
966 
967 .. flat-table:: RGB Formats With 12 Bits Per Component
968     :header-rows:  1
969 
970     * - Identifier
971       - Code
972       - Byte 1-0
973       - Byte 3-2
974       - Byte 5-4
975       - Byte 7-6
976     * .. _V4L2-PIX-FMT-BGR48-12:
977 
978       - ``V4L2_PIX_FMT_BGR48_12``
979       - 'B312'
980 
981       - B\ :sub:`15-4`
982       - G\ :sub:`15-4`
983       - R\ :sub:`15-4`
984       -
985     * .. _V4L2-PIX-FMT-ABGR64-12:
986 
987       - ``V4L2_PIX_FMT_ABGR64_12``
988       - 'B412'
989 
990       - B\ :sub:`15-4`
991       - G\ :sub:`15-4`
992       - R\ :sub:`15-4`
993       - A\ :sub:`15-4`
994 
995 .. raw:: latex
996 
997     \normalsize
998 
999 16 Bits Per Component
1000 =====================
1001 
1002 These formats store an RGB triplet in six bytes, with 16 bits per component
1003 stored in memory in little endian byte order. They are named based on the order
1004 of the RGB components as stored in memory. For instance, RGB48 stores R\
1005 :sub:`7:0` and R\ :sub:`15:8` in bytes 0 and 1 respectively. This differs from
1006 the DRM format nomenclature that instead uses the order of components as seen in
1007 the 48-bits little endian word.
1008 
1009 .. raw:: latex
1010 
1011     \small
1012 
1013 .. flat-table:: RGB Formats With 16 Bits Per Component
1014     :header-rows:  1
1015 
1016     * - Identifier
1017       - Code
1018       - Byte 0
1019       - Byte 1
1020       - Byte 2
1021       - Byte 3
1022       - Byte 4
1023       - Byte 5
1024 
1025     * .. _V4L2-PIX-FMT-BGR48:
1026 
1027       - ``V4L2_PIX_FMT_BGR48``
1028       - 'BGR6'
1029 
1030       - B\ :sub:`7-0`
1031       - B\ :sub:`15-8`
1032       - G\ :sub:`7-0`
1033       - G\ :sub:`15-8`
1034       - R\ :sub:`7-0`
1035       - R\ :sub:`15-8`
1036 
1037     * .. _V4L2-PIX-FMT-RGB48:
1038 
1039       - ``V4L2_PIX_FMT_RGB48``
1040       - 'RGB6'
1041 
1042       - R\ :sub:`7-0`
1043       - R\ :sub:`15-8`
1044       - G\ :sub:`7-0`
1045       - G\ :sub:`15-8`
1046       - B\ :sub:`7-0`
1047       - B\ :sub:`15-8`
1048 
1049 .. raw:: latex
1050 
1051     \normalsize
1052 
1053 Deprecated RGB Formats
1054 ======================
1055 
1056 Formats defined in :ref:`pixfmt-rgb-deprecated` are deprecated and must not be
1057 used by new drivers. They are documented here for reference. The meaning of
1058 their alpha bits ``(a)`` is ill-defined and they are interpreted as in either
1059 the corresponding ARGB or XRGB format, depending on the driver.
1060 
1061 .. raw:: latex
1062 
1063     \begingroup
1064     \tiny
1065     \setlength{\tabcolsep}{2pt}
1066 
1067 .. tabularcolumns:: |p{2.6cm}|p{0.70cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
1068 
1069 .. _pixfmt-rgb-deprecated:
1070 
1071 .. flat-table:: Deprecated Packed RGB Image Formats
1072     :header-rows:  2
1073     :stub-columns: 0
1074 
1075     * - Identifier
1076       - Code
1077       - :cspan:`7` Byte 0 in memory
1078 
1079       - :cspan:`7` Byte 1
1080 
1081       - :cspan:`7` Byte 2
1082 
1083       - :cspan:`7` Byte 3
1084     * -
1085       -
1086       - 7
1087       - 6
1088       - 5
1089       - 4
1090       - 3
1091       - 2
1092       - 1
1093       - 0
1094 
1095       - 7
1096       - 6
1097       - 5
1098       - 4
1099       - 3
1100       - 2
1101       - 1
1102       - 0
1103 
1104       - 7
1105       - 6
1106       - 5
1107       - 4
1108       - 3
1109       - 2
1110       - 1
1111       - 0
1112 
1113       - 7
1114       - 6
1115       - 5
1116       - 4
1117       - 3
1118       - 2
1119       - 1
1120       - 0
1121     * .. _V4L2-PIX-FMT-RGB444:
1122 
1123       - ``V4L2_PIX_FMT_RGB444``
1124       - 'R444'
1125 
1126       - g\ :sub:`3`
1127       - g\ :sub:`2`
1128       - g\ :sub:`1`
1129       - g\ :sub:`0`
1130       - b\ :sub:`3`
1131       - b\ :sub:`2`
1132       - b\ :sub:`1`
1133       - b\ :sub:`0`
1134 
1135       - a\ :sub:`3`
1136       - a\ :sub:`2`
1137       - a\ :sub:`1`
1138       - a\ :sub:`0`
1139       - r\ :sub:`3`
1140       - r\ :sub:`2`
1141       - r\ :sub:`1`
1142       - r\ :sub:`0`
1143       -
1144     * .. _V4L2-PIX-FMT-RGB555:
1145 
1146       - ``V4L2_PIX_FMT_RGB555``
1147       - 'RGBO'
1148 
1149       - g\ :sub:`2`
1150       - g\ :sub:`1`
1151       - g\ :sub:`0`
1152       - b\ :sub:`4`
1153       - b\ :sub:`3`
1154       - b\ :sub:`2`
1155       - b\ :sub:`1`
1156       - b\ :sub:`0`
1157 
1158       - a
1159       - r\ :sub:`4`
1160       - r\ :sub:`3`
1161       - r\ :sub:`2`
1162       - r\ :sub:`1`
1163       - r\ :sub:`0`
1164       - g\ :sub:`4`
1165       - g\ :sub:`3`
1166       -
1167     * .. _V4L2-PIX-FMT-RGB555X:
1168 
1169       - ``V4L2_PIX_FMT_RGB555X``
1170       - 'RGBQ'
1171 
1172       - a
1173       - r\ :sub:`4`
1174       - r\ :sub:`3`
1175       - r\ :sub:`2`
1176       - r\ :sub:`1`
1177       - r\ :sub:`0`
1178       - g\ :sub:`4`
1179       - g\ :sub:`3`
1180 
1181       - g\ :sub:`2`
1182       - g\ :sub:`1`
1183       - g\ :sub:`0`
1184       - b\ :sub:`4`
1185       - b\ :sub:`3`
1186       - b\ :sub:`2`
1187       - b\ :sub:`1`
1188       - b\ :sub:`0`
1189       -
1190     * .. _V4L2-PIX-FMT-BGR32:
1191 
1192       - ``V4L2_PIX_FMT_BGR32``
1193       - 'BGR4'
1194 
1195       - b\ :sub:`7`
1196       - b\ :sub:`6`
1197       - b\ :sub:`5`
1198       - b\ :sub:`4`
1199       - b\ :sub:`3`
1200       - b\ :sub:`2`
1201       - b\ :sub:`1`
1202       - b\ :sub:`0`
1203 
1204       - g\ :sub:`7`
1205       - g\ :sub:`6`
1206       - g\ :sub:`5`
1207       - g\ :sub:`4`
1208       - g\ :sub:`3`
1209       - g\ :sub:`2`
1210       - g\ :sub:`1`
1211       - g\ :sub:`0`
1212 
1213       - r\ :sub:`7`
1214       - r\ :sub:`6`
1215       - r\ :sub:`5`
1216       - r\ :sub:`4`
1217       - r\ :sub:`3`
1218       - r\ :sub:`2`
1219       - r\ :sub:`1`
1220       - r\ :sub:`0`
1221 
1222       - a\ :sub:`7`
1223       - a\ :sub:`6`
1224       - a\ :sub:`5`
1225       - a\ :sub:`4`
1226       - a\ :sub:`3`
1227       - a\ :sub:`2`
1228       - a\ :sub:`1`
1229       - a\ :sub:`0`
1230     * .. _V4L2-PIX-FMT-RGB32:
1231 
1232       - ``V4L2_PIX_FMT_RGB32``
1233       - 'RGB4'
1234 
1235       - a\ :sub:`7`
1236       - a\ :sub:`6`
1237       - a\ :sub:`5`
1238       - a\ :sub:`4`
1239       - a\ :sub:`3`
1240       - a\ :sub:`2`
1241       - a\ :sub:`1`
1242       - a\ :sub:`0`
1243 
1244       - r\ :sub:`7`
1245       - r\ :sub:`6`
1246       - r\ :sub:`5`
1247       - r\ :sub:`4`
1248       - r\ :sub:`3`
1249       - r\ :sub:`2`
1250       - r\ :sub:`1`
1251       - r\ :sub:`0`
1252 
1253       - g\ :sub:`7`
1254       - g\ :sub:`6`
1255       - g\ :sub:`5`
1256       - g\ :sub:`4`
1257       - g\ :sub:`3`
1258       - g\ :sub:`2`
1259       - g\ :sub:`1`
1260       - g\ :sub:`0`
1261 
1262       - b\ :sub:`7`
1263       - b\ :sub:`6`
1264       - b\ :sub:`5`
1265       - b\ :sub:`4`
1266       - b\ :sub:`3`
1267       - b\ :sub:`2`
1268       - b\ :sub:`1`
1269       - b\ :sub:`0`
1270 
1271 .. raw:: latex
1272 
1273     \endgroup
1274 
1275 A test utility to determine which RGB formats a driver actually supports
1276 is available from the LinuxTV v4l-dvb repository. See
1277 `https://linuxtv.org/repo/ <https://linuxtv.org/repo/>`__ for access
1278 instructions.

~ [ 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