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.