cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pixfmt-rgb.rst (20206B)


      1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
      2
      3.. _pixfmt-rgb:
      4
      5***********
      6RGB Formats
      7***********
      8
      9These formats encode each pixel as a triplet of RGB values. They are packed
     10formats, meaning that the RGB values for one pixel are stored consecutively in
     11memory and each pixel consumes an integer number of bytes. When the number of
     12bits required to store a pixel is not aligned to a byte boundary, the data is
     13padded with additional bits to fill the remaining byte.
     14
     15The formats differ by the number of bits per RGB component (typically but not
     16always the same for all components), the order of components in memory, and the
     17presence of an alpha component or additional padding bits.
     18
     19The usage and value of the alpha bits in formats that support them (named ARGB
     20or a permutation thereof, collectively referred to as alpha formats) depend on
     21the device type and hardware operation. :ref:`Capture <capture>` devices
     22(including capture queues of mem-to-mem devices) fill the alpha component in
     23memory. When the device captures an alpha channel the alpha component will have
     24a meaningful value. Otherwise, when the device doesn't capture an alpha channel
     25but can set the alpha bit to a user-configurable value, the
     26:ref:`V4L2_CID_ALPHA_COMPONENT <v4l2-alpha-component>` control is used to
     27specify that alpha value, and the alpha component of all pixels will be set to
     28the value specified by that control. Otherwise a corresponding format without
     29an 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
     32and :ref:`video output overlay <osd>` devices) read the alpha component from
     33memory. When the device processes the alpha channel the alpha component must be
     34filled with meaningful values by applications. Otherwise a corresponding format
     35without an alpha component (XRGB or XBGR) must be used instead of an alpha
     36format.
     37
     38Formats that contain padding bits are named XRGB (or a permutation thereof).
     39The padding bits contain undefined values and must be ignored by applications,
     40devices 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
     50Less Than 8 Bits Per Component
     51==============================
     52
     53These formats store an RGB triplet in one, two or four bytes. They are named
     54based on the order of the RGB components as seen in a 8-, 16- or 32-bit word,
     55which is then stored in memory in little endian byte order (unless otherwise
     56noted by the presence of bit 31 in the 4CC value), and on the number of bits
     57for each component. For instance, the RGB565 format stores a pixel in a 16-bit
     58word [15:0] laid out at as [R\ :sub:`4` R\ :sub:`3` R\ :sub:`2` R\ :sub:`1`
     59R\ :sub:`0` G\ :sub:`5` G\ :sub:`4` G\ :sub:`3` G\ :sub:`2` G\ :sub:`1`
     60G\ :sub:`0` B\ :sub:`4` B\ :sub:`3` B\ :sub:`2` B\ :sub:`1` B\ :sub:`0`], and
     61stored in memory in two bytes, [R\ :sub:`4` R\ :sub:`3` R\ :sub:`2` R\ :sub:`1`
     62R\ :sub:`0` G\ :sub:`5` G\ :sub:`4` G\ :sub:`3`] followed by [G\ :sub:`2`
     63G\ :sub:`1` G\ :sub:`0` B\ :sub:`4` B\ :sub:`3` B\ :sub:`2` B\ :sub:`1`
     64B\ :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
    6428 Bits Per Component
    643====================
    644
    645These formats store an RGB triplet in three or four bytes. They are named based
    646on the order of the RGB components as stored in memory, and on the total number
    647of bits per pixel. For instance, RGB24 format stores a pixel with [R\ :sub:`7`
    648R\ :sub:`6` R\ :sub:`5` R\ :sub:`4` R\ :sub:`3` R\ :sub:`2` R\ :sub:`1`
    649R\ :sub:`0`] in the first byte, [G\ :sub:`7` G\ :sub:`6` G\ :sub:`5` G\ :sub:`4`
    650G\ :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`
    652B\ :sub:`1` B\ :sub:`0`] in the third byte. This differs from the DRM format
    653nomenclature that instead use the order of components as seen in a 24- or
    65432-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
    766Deprecated RGB Formats
    767======================
    768
    769Formats defined in :ref:`pixfmt-rgb-deprecated` are deprecated and must not be
    770used by new drivers. They are documented here for reference. The meaning of
    771their alpha bits ``(a)`` is ill-defined and they are interpreted as in either
    772the corresponding ARGB or XRGB format, depending on the driver.
    773
    774.. raw:: latex
    775
    776    \begingroup
    777    \tiny
    778    \setlength{\tabcolsep}{2pt}
    779
    780.. 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}|
    781
    782.. _pixfmt-rgb-deprecated:
    783
    784.. flat-table:: Deprecated Packed RGB Image Formats
    785    :header-rows:  2
    786    :stub-columns: 0
    787
    788    * - Identifier
    789      - Code
    790      - :cspan:`7` Byte 0 in memory
    791
    792      - :cspan:`7` Byte 1
    793
    794      - :cspan:`7` Byte 2
    795
    796      - :cspan:`7` Byte 3
    797    * -
    798      -
    799      - 7
    800      - 6
    801      - 5
    802      - 4
    803      - 3
    804      - 2
    805      - 1
    806      - 0
    807
    808      - 7
    809      - 6
    810      - 5
    811      - 4
    812      - 3
    813      - 2
    814      - 1
    815      - 0
    816
    817      - 7
    818      - 6
    819      - 5
    820      - 4
    821      - 3
    822      - 2
    823      - 1
    824      - 0
    825
    826      - 7
    827      - 6
    828      - 5
    829      - 4
    830      - 3
    831      - 2
    832      - 1
    833      - 0
    834    * .. _V4L2-PIX-FMT-RGB444:
    835
    836      - ``V4L2_PIX_FMT_RGB444``
    837      - 'R444'
    838
    839      - g\ :sub:`3`
    840      - g\ :sub:`2`
    841      - g\ :sub:`1`
    842      - g\ :sub:`0`
    843      - b\ :sub:`3`
    844      - b\ :sub:`2`
    845      - b\ :sub:`1`
    846      - b\ :sub:`0`
    847
    848      - a\ :sub:`3`
    849      - a\ :sub:`2`
    850      - a\ :sub:`1`
    851      - a\ :sub:`0`
    852      - r\ :sub:`3`
    853      - r\ :sub:`2`
    854      - r\ :sub:`1`
    855      - r\ :sub:`0`
    856      -
    857    * .. _V4L2-PIX-FMT-RGB555:
    858
    859      - ``V4L2_PIX_FMT_RGB555``
    860      - 'RGBO'
    861
    862      - g\ :sub:`2`
    863      - g\ :sub:`1`
    864      - g\ :sub:`0`
    865      - b\ :sub:`4`
    866      - b\ :sub:`3`
    867      - b\ :sub:`2`
    868      - b\ :sub:`1`
    869      - b\ :sub:`0`
    870
    871      - a
    872      - r\ :sub:`4`
    873      - r\ :sub:`3`
    874      - r\ :sub:`2`
    875      - r\ :sub:`1`
    876      - r\ :sub:`0`
    877      - g\ :sub:`4`
    878      - g\ :sub:`3`
    879      -
    880    * .. _V4L2-PIX-FMT-RGB555X:
    881
    882      - ``V4L2_PIX_FMT_RGB555X``
    883      - 'RGBQ'
    884
    885      - a
    886      - r\ :sub:`4`
    887      - r\ :sub:`3`
    888      - r\ :sub:`2`
    889      - r\ :sub:`1`
    890      - r\ :sub:`0`
    891      - g\ :sub:`4`
    892      - g\ :sub:`3`
    893
    894      - g\ :sub:`2`
    895      - g\ :sub:`1`
    896      - g\ :sub:`0`
    897      - b\ :sub:`4`
    898      - b\ :sub:`3`
    899      - b\ :sub:`2`
    900      - b\ :sub:`1`
    901      - b\ :sub:`0`
    902      -
    903    * .. _V4L2-PIX-FMT-BGR32:
    904
    905      - ``V4L2_PIX_FMT_BGR32``
    906      - 'BGR4'
    907
    908      - b\ :sub:`7`
    909      - b\ :sub:`6`
    910      - b\ :sub:`5`
    911      - b\ :sub:`4`
    912      - b\ :sub:`3`
    913      - b\ :sub:`2`
    914      - b\ :sub:`1`
    915      - b\ :sub:`0`
    916
    917      - g\ :sub:`7`
    918      - g\ :sub:`6`
    919      - g\ :sub:`5`
    920      - g\ :sub:`4`
    921      - g\ :sub:`3`
    922      - g\ :sub:`2`
    923      - g\ :sub:`1`
    924      - g\ :sub:`0`
    925
    926      - r\ :sub:`7`
    927      - r\ :sub:`6`
    928      - r\ :sub:`5`
    929      - r\ :sub:`4`
    930      - r\ :sub:`3`
    931      - r\ :sub:`2`
    932      - r\ :sub:`1`
    933      - r\ :sub:`0`
    934
    935      - a\ :sub:`7`
    936      - a\ :sub:`6`
    937      - a\ :sub:`5`
    938      - a\ :sub:`4`
    939      - a\ :sub:`3`
    940      - a\ :sub:`2`
    941      - a\ :sub:`1`
    942      - a\ :sub:`0`
    943    * .. _V4L2-PIX-FMT-RGB32:
    944
    945      - ``V4L2_PIX_FMT_RGB32``
    946      - 'RGB4'
    947
    948      - a\ :sub:`7`
    949      - a\ :sub:`6`
    950      - a\ :sub:`5`
    951      - a\ :sub:`4`
    952      - a\ :sub:`3`
    953      - a\ :sub:`2`
    954      - a\ :sub:`1`
    955      - a\ :sub:`0`
    956
    957      - r\ :sub:`7`
    958      - r\ :sub:`6`
    959      - r\ :sub:`5`
    960      - r\ :sub:`4`
    961      - r\ :sub:`3`
    962      - r\ :sub:`2`
    963      - r\ :sub:`1`
    964      - r\ :sub:`0`
    965
    966      - g\ :sub:`7`
    967      - g\ :sub:`6`
    968      - g\ :sub:`5`
    969      - g\ :sub:`4`
    970      - g\ :sub:`3`
    971      - g\ :sub:`2`
    972      - g\ :sub:`1`
    973      - g\ :sub:`0`
    974
    975      - b\ :sub:`7`
    976      - b\ :sub:`6`
    977      - b\ :sub:`5`
    978      - b\ :sub:`4`
    979      - b\ :sub:`3`
    980      - b\ :sub:`2`
    981      - b\ :sub:`1`
    982      - b\ :sub:`0`
    983
    984.. raw:: latex
    985
    986    \endgroup
    987
    988A test utility to determine which RGB formats a driver actually supports
    989is available from the LinuxTV v4l-dvb repository. See
    990`https://linuxtv.org/repo/ <https://linuxtv.org/repo/>`__ for access
    991instructions.