1 .. Permission is granted to copy, distribute and/or modify this
2 .. document under the terms of the GNU Free Documentation License,
3 .. Version 1.1 or any later version published by the Free Software
4 .. Foundation, with no Invariant Sections, no Front-Cover Texts
5 .. and no Back-Cover Texts. A copy of the license is included at
6 .. Documentation/media/uapi/fdl-appendix.rst.
8 .. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
15 .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
17 .. c:type:: v4l2_mbus_framefmt
19 .. flat-table:: struct v4l2_mbus_framefmt
26 - Image width in pixels.
29 - Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``,
30 ``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height
31 refers to the number of lines in the field, otherwise it refers to
32 the number of lines in the frame (which is twice the field height
33 for interlaced formats).
36 - Format code, from enum
37 :ref:`v4l2_mbus_pixelcode <v4l2-mbus-pixelcode>`.
40 - Field order, from enum :c:type:`v4l2_field`. See
41 :ref:`field-order` for details.
44 - Image colorspace, from enum
45 :c:type:`v4l2_colorspace`. See
46 :ref:`colorspaces` for details.
49 - Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`.
50 This information supplements the ``colorspace`` and must be set by
51 the driver for capture streams and by the application for output
52 streams, see :ref:`colorspaces`.
55 - Quantization range, from enum :c:type:`v4l2_quantization`.
56 This information supplements the ``colorspace`` and must be set by
57 the driver for capture streams and by the application for output
58 streams, see :ref:`colorspaces`.
61 - Transfer function, from enum :c:type:`v4l2_xfer_func`.
62 This information supplements the ``colorspace`` and must be set by
63 the driver for capture streams and by the application for output
64 streams, see :ref:`colorspaces`.
67 - Reserved for future extensions. Applications and drivers must set
72 .. _v4l2-mbus-pixelcode:
77 The media bus pixel codes describe image formats as flowing over
78 physical buses (both between separate physical components and inside
79 SoC devices). This should not be confused with the V4L2 pixel formats
80 that describe, using four character codes, image formats as stored in
83 While there is a relationship between image formats on buses and image
84 formats in memory (a raw Bayer image won't be magically converted to
85 JPEG just by storing it to memory), there is no one-to-one
86 correspondence between them.
88 The media bus pixel codes document parallel formats. Should the pixel data be
89 transported over a serial bus, the media bus pixel code that describes a
90 parallel format that transfers a sample on a single clock cycle is used. For
91 instance, both MEDIA_BUS_FMT_BGR888_1X24 and MEDIA_BUS_FMT_BGR888_3X8 are used
92 on parallel busses for transferring an 8 bits per sample BGR data, whereas on
93 serial busses the data in this format is only referred to using
94 MEDIA_BUS_FMT_BGR888_1X24. This is because there is effectively only a single
95 way to transport that format on the serial busses.
100 Those formats transfer pixel data as red, green and blue components. The
101 format code is made of the following information.
103 - The red, green and blue components order code, as encoded in a pixel
104 sample. Possible values are RGB and BGR.
106 - The number of bits per component, for each component. The values can
107 be different for all components. Common values are 555 and 565.
109 - The number of bus samples per pixel. Pixels that are wider than the
110 bus width must be transferred in multiple samples. Common values are
115 - For formats where the total number of bits per pixel is smaller than
116 the number of bus samples per pixel times the bus width, a padding
117 value stating if the bytes are padded in their most high order bits
118 (PADHI) or low order bits (PADLO). A "C" prefix is used for
119 component-wise padding in the most high order bits (CPADHI) or low
120 order bits (CPADLO) of each separate component.
122 - For formats where the number of bus samples per pixel is larger than
123 1, an endianness value stating if the pixel is transferred MSB first
124 (BE) or LSB first (LE).
126 For instance, a format where pixels are encoded as 5-bits red, 5-bits
127 green and 5-bit blue values padded on the high bit, transferred as 2
128 8-bit samples per pixel with the most significant bits (padding, red and
129 half of the green value) transferred first will be named
130 ``MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE``.
132 The following tables list existing packed RGB formats.
134 .. HACK: ideally, we would be using adjustbox here. However, Sphinx
135 .. is a very bad behaviored guy: if the table has more than 30 cols,
136 .. it switches to long table, and there's no way to override it.
139 .. tabularcolumns:: |p{4.0cm}|p{0.7cm}|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}|p{0.22cm}|
141 .. _v4l2-mbus-pixelcode-rgb:
147 \setlength{\tabcolsep}{2pt}
149 .. flat-table:: RGB formats
152 :widths: 36 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
157 - :cspan:`31` Data organization
193 * .. _MEDIA-BUS-FMT-RGB444-1X12:
195 - MEDIA_BUS_FMT_RGB444_1X12
230 * .. _MEDIA-BUS-FMT-RGB444-2X8-PADHI-BE:
232 - MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE
302 * .. _MEDIA-BUS-FMT-RGB444-2X8-PADHI-LE:
304 - MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE
374 * .. _MEDIA-BUS-FMT-RGB555-2X8-PADHI-BE:
376 - MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE
446 * .. _MEDIA-BUS-FMT-RGB555-2X8-PADHI-LE:
448 - MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE
518 * .. _MEDIA-BUS-FMT-RGB565-1X16:
520 - MEDIA_BUS_FMT_RGB565_1X16
555 * .. _MEDIA-BUS-FMT-BGR565-2X8-BE:
557 - MEDIA_BUS_FMT_BGR565_2X8_BE
627 * .. _MEDIA-BUS-FMT-BGR565-2X8-LE:
629 - MEDIA_BUS_FMT_BGR565_2X8_LE
699 * .. _MEDIA-BUS-FMT-RGB565-2X8-BE:
701 - MEDIA_BUS_FMT_RGB565_2X8_BE
771 * .. _MEDIA-BUS-FMT-RGB565-2X8-LE:
773 - MEDIA_BUS_FMT_RGB565_2X8_LE
843 * .. _MEDIA-BUS-FMT-RGB666-1X18:
845 - MEDIA_BUS_FMT_RGB666_1X18
880 * .. _MEDIA-BUS-FMT-RBG888-1X24:
882 - MEDIA_BUS_FMT_RBG888_1X24
917 * .. _MEDIA-BUS-FMT-RGB666-1X24_CPADHI:
919 - MEDIA_BUS_FMT_RGB666_1X24_CPADHI
954 * .. _MEDIA-BUS-FMT-BGR888-1X24:
956 - MEDIA_BUS_FMT_BGR888_1X24
991 * .. _MEDIA-BUS-FMT-BGR888-3X8:
993 - MEDIA_BUS_FMT_BGR888_3X8
1098 * .. _MEDIA-BUS-FMT-GBR888-1X24:
1100 - MEDIA_BUS_FMT_GBR888_1X24
1135 * .. _MEDIA-BUS-FMT-RGB888-1X24:
1137 - MEDIA_BUS_FMT_RGB888_1X24
1172 * .. _MEDIA-BUS-FMT-RGB888-2X12-BE:
1174 - MEDIA_BUS_FMT_RGB888_2X12_BE
1244 * .. _MEDIA-BUS-FMT-RGB888-2X12-LE:
1246 - MEDIA_BUS_FMT_RGB888_2X12_LE
1316 * .. _MEDIA-BUS-FMT-RGB888-3X8:
1318 - MEDIA_BUS_FMT_RGB888_3X8
1423 * .. _MEDIA-BUS-FMT-ARGB888-1X32:
1425 - MEDIA_BUS_FMT_ARGB888_1X32
1460 * .. _MEDIA-BUS-FMT-RGB888-1X32-PADHI:
1462 - MEDIA_BUS_FMT_RGB888_1X32_PADHI
1497 * .. _MEDIA-BUS-FMT-RGB101010-1X30:
1499 - MEDIA_BUS_FMT_RGB101010_1X30
1540 The following table list existing packed 36bit wide RGB formats.
1542 .. tabularcolumns:: |p{4.0cm}|p{0.7cm}|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}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
1544 .. _v4l2-mbus-pixelcode-rgb-36:
1550 \setlength{\tabcolsep}{2pt}
1552 .. flat-table:: 36bit RGB formats
1555 :widths: 36 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
1560 - :cspan:`35` Data organization
1600 * .. _MEDIA-BUS-FMT-RGB121212-1X36:
1602 - MEDIA_BUS_FMT_RGB121212_1X36
1647 The following table list existing packed 48bit wide RGB formats.
1649 .. tabularcolumns:: |p{4.0cm}|p{0.7cm}|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}|p{0.22cm}|
1651 .. _v4l2-mbus-pixelcode-rgb-48:
1657 \setlength{\tabcolsep}{2pt}
1659 .. flat-table:: 48bit RGB formats
1662 :widths: 36 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
1667 - :cspan:`31` Data organization
1738 * .. _MEDIA-BUS-FMT-RGB161616-1X48:
1740 - MEDIA_BUS_FMT_RGB161616_1X48
1815 On LVDS buses, usually each sample is transferred serialized in seven
1816 time slots per pixel clock, on three (18-bit) or four (24-bit)
1817 differential data pairs at the same time. The remaining bits are used
1818 for control signals as defined by SPWG/PSWG/VESA or JEIDA standards. The
1819 24-bit RGB format serialized in seven time slots on four lanes using
1820 JEIDA defined bit mapping will be named
1821 ``MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA``, for example.
1827 .. _v4l2-mbus-pixelcode-rgb-lvds:
1829 .. flat-table:: LVDS RGB formats
1837 - :cspan:`3` Data organization
1846 * .. _MEDIA-BUS-FMT-RGB666-1X7X3-SPWG:
1848 - MEDIA_BUS_FMT_RGB666_1X7X3_SPWG
1904 * .. _MEDIA-BUS-FMT-RGB888-1X7X4-SPWG:
1906 - MEDIA_BUS_FMT_RGB888_1X7X4_SPWG
1962 * .. _MEDIA-BUS-FMT-RGB888-1X7X4-JEIDA:
1964 - MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA
2029 Those formats transfer pixel data as red, green and blue components. The
2030 format code is made of the following information.
2032 - The red, green and blue components order code, as encoded in a pixel
2033 sample. The possible values are shown in :ref:`bayer-patterns`.
2035 - The number of bits per pixel component. All components are
2036 transferred on the same number of bits. Common values are 8, 10 and
2039 - The compression (optional). If the pixel components are ALAW- or
2040 DPCM-compressed, a mention of the compression scheme and the number
2041 of bits per compressed pixel component.
2043 - The number of bus samples per pixel. Pixels that are wider than the
2044 bus width must be transferred in multiple samples. Common values are
2049 - For formats where the total number of bits per pixel is smaller than
2050 the number of bus samples per pixel times the bus width, a padding
2051 value stating if the bytes are padded in their most high order bits
2052 (PADHI) or low order bits (PADLO).
2054 - For formats where the number of bus samples per pixel is larger than
2055 1, an endianness value stating if the pixel is transferred MSB first
2056 (BE) or LSB first (LE).
2058 For instance, a format with uncompressed 10-bit Bayer components
2059 arranged in a red, green, green, blue pattern transferred as 2 8-bit
2060 samples per pixel with the least significant bits transferred first will
2061 be named ``MEDIA_BUS_FMT_SRGGB10_2X8_PADHI_LE``.
2066 .. kernel-figure:: bayer.svg
2070 **Figure 4.8 Bayer Patterns**
2072 The following table lists existing packed Bayer formats. The data
2073 organization is given as an example for the first pixel only.
2076 .. HACK: ideally, we would be using adjustbox here. However, Sphinx
2077 .. is a very bad behaviored guy: if the table has more than 30 cols,
2078 .. it switches to long table, and there's no way to override it.
2085 \setlength{\tabcolsep}{2pt}
2087 .. tabularcolumns:: |p{4.0cm}|p{0.7cm}|p{0.3cm}|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}|
2089 .. _v4l2-mbus-pixelcode-bayer:
2091 .. cssclass: longtable
2093 .. flat-table:: Bayer Formats
2100 - :cspan:`15` Data organization
2120 * .. _MEDIA-BUS-FMT-SBGGR8-1X8:
2122 - MEDIA_BUS_FMT_SBGGR8_1X8
2141 * .. _MEDIA-BUS-FMT-SGBRG8-1X8:
2143 - MEDIA_BUS_FMT_SGBRG8_1X8
2162 * .. _MEDIA-BUS-FMT-SGRBG8-1X8:
2164 - MEDIA_BUS_FMT_SGRBG8_1X8
2183 * .. _MEDIA-BUS-FMT-SRGGB8-1X8:
2185 - MEDIA_BUS_FMT_SRGGB8_1X8
2204 * .. _MEDIA-BUS-FMT-SBGGR10-ALAW8-1X8:
2206 - MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8
2225 * .. _MEDIA-BUS-FMT-SGBRG10-ALAW8-1X8:
2227 - MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8
2246 * .. _MEDIA-BUS-FMT-SGRBG10-ALAW8-1X8:
2248 - MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8
2267 * .. _MEDIA-BUS-FMT-SRGGB10-ALAW8-1X8:
2269 - MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8
2288 * .. _MEDIA-BUS-FMT-SBGGR10-DPCM8-1X8:
2290 - MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8
2309 * .. _MEDIA-BUS-FMT-SGBRG10-DPCM8-1X8:
2311 - MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8
2330 * .. _MEDIA-BUS-FMT-SGRBG10-DPCM8-1X8:
2332 - MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8
2351 * .. _MEDIA-BUS-FMT-SRGGB10-DPCM8-1X8:
2353 - MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8
2372 * .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADHI-BE:
2374 - MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_BE
2412 * .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADHI-LE:
2414 - MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_LE
2452 * .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADLO-BE:
2454 - MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_BE
2492 * .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADLO-LE:
2494 - MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_LE
2532 * .. _MEDIA-BUS-FMT-SBGGR10-1X10:
2534 - MEDIA_BUS_FMT_SBGGR10_1X10
2553 * .. _MEDIA-BUS-FMT-SGBRG10-1X10:
2555 - MEDIA_BUS_FMT_SGBRG10_1X10
2574 * .. _MEDIA-BUS-FMT-SGRBG10-1X10:
2576 - MEDIA_BUS_FMT_SGRBG10_1X10
2595 * .. _MEDIA-BUS-FMT-SRGGB10-1X10:
2597 - MEDIA_BUS_FMT_SRGGB10_1X10
2616 * .. _MEDIA-BUS-FMT-SBGGR12-1X12:
2618 - MEDIA_BUS_FMT_SBGGR12_1X12
2637 * .. _MEDIA-BUS-FMT-SGBRG12-1X12:
2639 - MEDIA_BUS_FMT_SGBRG12_1X12
2658 * .. _MEDIA-BUS-FMT-SGRBG12-1X12:
2660 - MEDIA_BUS_FMT_SGRBG12_1X12
2679 * .. _MEDIA-BUS-FMT-SRGGB12-1X12:
2681 - MEDIA_BUS_FMT_SRGGB12_1X12
2700 * .. _MEDIA-BUS-FMT-SBGGR14-1X14:
2702 - MEDIA_BUS_FMT_SBGGR14_1X14
2721 * .. _MEDIA-BUS-FMT-SGBRG14-1X14:
2723 - MEDIA_BUS_FMT_SGBRG14_1X14
2742 * .. _MEDIA-BUS-FMT-SGRBG14-1X14:
2744 - MEDIA_BUS_FMT_SGRBG14_1X14
2763 * .. _MEDIA-BUS-FMT-SRGGB14-1X14:
2765 - MEDIA_BUS_FMT_SRGGB14_1X14
2784 * .. _MEDIA-BUS-FMT-SBGGR16-1X16:
2786 - MEDIA_BUS_FMT_SBGGR16_1X16
2805 * .. _MEDIA-BUS-FMT-SGBRG16-1X16:
2807 - MEDIA_BUS_FMT_SGBRG16_1X16
2826 * .. _MEDIA-BUS-FMT-SGRBG16-1X16:
2828 - MEDIA_BUS_FMT_SGRBG16_1X16
2847 * .. _MEDIA-BUS-FMT-SRGGB16-1X16:
2849 - MEDIA_BUS_FMT_SRGGB16_1X16
2877 Those data formats transfer pixel data as (possibly downsampled) Y, U
2878 and V components. Some formats include dummy bits in some of their
2879 samples and are collectively referred to as "YDYC" (Y-Dummy-Y-Chroma)
2880 formats. One cannot rely on the values of these dummy bits as those are
2883 The format code is made of the following information.
2885 - The Y, U and V components order code, as transferred on the bus.
2886 Possible values are YUYV, UYVY, YVYU and VYUY for formats with no
2887 dummy bit, and YDYUYDYV, YDYVYDYU, YUYDYVYD and YVYDYUYD for YDYC
2890 - The number of bits per pixel component. All components are
2891 transferred on the same number of bits. Common values are 8, 10 and
2894 - The number of bus samples per pixel. Pixels that are wider than the
2895 bus width must be transferred in multiple samples. Common values are
2896 0.5 (encoded as 0_5; in this case two pixels are transferred per bus
2897 sample), 1, 1.5 (encoded as 1_5) and 2.
2899 - The bus width. When the bus width is larger than the number of bits
2900 per pixel component, several components are packed in a single bus
2901 sample. The components are ordered as specified by the order code,
2902 with components on the left of the code transferred in the high order
2903 bits. Common values are 8 and 16.
2905 For instance, a format where pixels are encoded as 8-bit YUV values
2906 downsampled to 4:2:2 and transferred as 2 8-bit bus samples per pixel in
2907 the U, Y, V, Y order will be named ``MEDIA_BUS_FMT_UYVY8_2X8``.
2909 :ref:`v4l2-mbus-pixelcode-yuv8` lists existing packed YUV formats and
2910 describes the organization of each pixel data in each sample. When a
2911 format pattern is split across multiple samples each of the samples in
2912 the pattern is described.
2914 The role of each bit transferred over the bus is identified by one of
2915 the following codes.
2917 - y\ :sub:`x` for luma component bit number x
2919 - u\ :sub:`x` for blue chroma component bit number x
2921 - v\ :sub:`x` for red chroma component bit number x
2923 - a\ :sub:`x` for alpha component bit number x
2925 - for non-available bits (for positions higher than the bus width)
2929 .. HACK: ideally, we would be using adjustbox here. However, this
2930 .. will never work for this table, as, even with tiny font, it is
2931 .. to big for a single page. So, we need to manually adjust the
2938 \setlength{\tabcolsep}{2pt}
2940 .. tabularcolumns:: |p{4.0cm}|p{0.7cm}|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}|p{0.22cm}|
2942 .. _v4l2-mbus-pixelcode-yuv8:
2944 .. flat-table:: YUV Formats
2947 :widths: 36 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2952 - :cspan:`31` Data organization
2988 * .. _MEDIA-BUS-FMT-Y8-1X8:
2990 - MEDIA_BUS_FMT_Y8_1X8
3025 * .. _MEDIA-BUS-FMT-UV8-1X8:
3027 - MEDIA_BUS_FMT_UV8_1X8
3097 * .. _MEDIA-BUS-FMT-UYVY8-1_5X8:
3099 - MEDIA_BUS_FMT_UYVY8_1_5X8
3309 * .. _MEDIA-BUS-FMT-VYUY8-1_5X8:
3311 - MEDIA_BUS_FMT_VYUY8_1_5X8
3521 * .. _MEDIA-BUS-FMT-YUYV8-1_5X8:
3523 - MEDIA_BUS_FMT_YUYV8_1_5X8
3733 * .. _MEDIA-BUS-FMT-YVYU8-1_5X8:
3735 - MEDIA_BUS_FMT_YVYU8_1_5X8
3945 * .. _MEDIA-BUS-FMT-UYVY8-2X8:
3947 - MEDIA_BUS_FMT_UYVY8_2X8
4087 * .. _MEDIA-BUS-FMT-VYUY8-2X8:
4089 - MEDIA_BUS_FMT_VYUY8_2X8
4229 * .. _MEDIA-BUS-FMT-YUYV8-2X8:
4231 - MEDIA_BUS_FMT_YUYV8_2X8
4371 * .. _MEDIA-BUS-FMT-YVYU8-2X8:
4373 - MEDIA_BUS_FMT_YVYU8_2X8
4513 * .. _MEDIA-BUS-FMT-Y10-1X10:
4515 - MEDIA_BUS_FMT_Y10_1X10
4550 * .. _MEDIA-BUS-FMT-Y10-2X8-PADHI_LE:
4552 - MEDIA_BUS_FMT_Y10_2X8_PADHI_LE
4622 * .. _MEDIA-BUS-FMT-UYVY10-2X10:
4624 - MEDIA_BUS_FMT_UYVY10_2X10
4764 * .. _MEDIA-BUS-FMT-VYUY10-2X10:
4766 - MEDIA_BUS_FMT_VYUY10_2X10
4906 * .. _MEDIA-BUS-FMT-YUYV10-2X10:
4908 - MEDIA_BUS_FMT_YUYV10_2X10
5048 * .. _MEDIA-BUS-FMT-YVYU10-2X10:
5050 - MEDIA_BUS_FMT_YVYU10_2X10
5190 * .. _MEDIA-BUS-FMT-Y12-1X12:
5192 - MEDIA_BUS_FMT_Y12_1X12
5227 * .. _MEDIA-BUS-FMT-UYVY12-2X12:
5229 - MEDIA_BUS_FMT_UYVY12_2X12
5369 * .. _MEDIA-BUS-FMT-VYUY12-2X12:
5371 - MEDIA_BUS_FMT_VYUY12_2X12
5511 * .. _MEDIA-BUS-FMT-YUYV12-2X12:
5513 - MEDIA_BUS_FMT_YUYV12_2X12
5653 * .. _MEDIA-BUS-FMT-YVYU12-2X12:
5655 - MEDIA_BUS_FMT_YVYU12_2X12
5795 * .. _MEDIA-BUS-FMT-UYVY8-1X16:
5797 - MEDIA_BUS_FMT_UYVY8_1X16
5867 * .. _MEDIA-BUS-FMT-VYUY8-1X16:
5869 - MEDIA_BUS_FMT_VYUY8_1X16
5939 * .. _MEDIA-BUS-FMT-YUYV8-1X16:
5941 - MEDIA_BUS_FMT_YUYV8_1X16
6011 * .. _MEDIA-BUS-FMT-YVYU8-1X16:
6013 - MEDIA_BUS_FMT_YVYU8_1X16
6083 * .. _MEDIA-BUS-FMT-YDYUYDYV8-1X16:
6085 - MEDIA_BUS_FMT_YDYUYDYV8_1X16
6225 * .. _MEDIA-BUS-FMT-UYVY10-1X20:
6227 - MEDIA_BUS_FMT_UYVY10_1X20
6297 * .. _MEDIA-BUS-FMT-VYUY10-1X20:
6299 - MEDIA_BUS_FMT_VYUY10_1X20
6369 * .. _MEDIA-BUS-FMT-YUYV10-1X20:
6371 - MEDIA_BUS_FMT_YUYV10_1X20
6441 * .. _MEDIA-BUS-FMT-YVYU10-1X20:
6443 - MEDIA_BUS_FMT_YVYU10_1X20
6513 * .. _MEDIA-BUS-FMT-VUY8-1X24:
6515 - MEDIA_BUS_FMT_VUY8_1X24
6550 * .. _MEDIA-BUS-FMT-YUV8-1X24:
6552 - MEDIA_BUS_FMT_YUV8_1X24
6587 * .. _MEDIA-BUS-FMT-UYYVYY8-0-5X24:
6589 - MEDIA_BUS_FMT_UYYVYY8_0_5X24
6659 * .. _MEDIA-BUS-FMT-UYVY12-1X24:
6661 - MEDIA_BUS_FMT_UYVY12_1X24
6731 * .. _MEDIA-BUS-FMT-VYUY12-1X24:
6733 - MEDIA_BUS_FMT_VYUY12_1X24
6803 * .. _MEDIA-BUS-FMT-YUYV12-1X24:
6805 - MEDIA_BUS_FMT_YUYV12_1X24
6875 * .. _MEDIA-BUS-FMT-YVYU12-1X24:
6877 - MEDIA_BUS_FMT_YVYU12_1X24
6947 * .. _MEDIA-BUS-FMT-YUV10-1X30:
6949 - MEDIA_BUS_FMT_YUV10_1X30
6984 * .. _MEDIA-BUS-FMT-UYYVYY10-0-5X30:
6986 - MEDIA_BUS_FMT_UYYVYY10_0_5X30
7056 * .. _MEDIA-BUS-FMT-AYUV8-1X32:
7058 - MEDIA_BUS_FMT_AYUV8_1X32
7100 The following table list existing packed 36bit wide YUV formats.
7106 \setlength{\tabcolsep}{2pt}
7108 .. tabularcolumns:: |p{4.0cm}|p{0.7cm}|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}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
7110 .. _v4l2-mbus-pixelcode-yuv8-36bit:
7112 .. flat-table:: 36bit YUV Formats
7115 :widths: 36 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
7120 - :cspan:`35` Data organization
7160 * .. _MEDIA-BUS-FMT-UYYVYY12-0-5X36:
7162 - MEDIA_BUS_FMT_UYYVYY12_0_5X36
7240 * .. _MEDIA-BUS-FMT-YUV12-1X36:
7242 - MEDIA_BUS_FMT_YUV12_1X36
7288 The following table list existing packed 48bit wide YUV formats.
7294 \setlength{\tabcolsep}{2pt}
7296 .. tabularcolumns:: |p{4.0cm}|p{0.7cm}|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}|p{0.22cm}|
7298 .. _v4l2-mbus-pixelcode-yuv8-48bit:
7300 .. flat-table:: 48bit YUV Formats
7303 :widths: 36 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
7308 - :cspan:`31` Data organization
7379 * .. _MEDIA-BUS-FMT-YUV16-1X48:
7381 - MEDIA_BUS_FMT_YUV16_1X48
7451 * .. _MEDIA-BUS-FMT-UYYVYY16-0-5X48:
7453 - MEDIA_BUS_FMT_UYYVYY16_0_5X48
7602 Those formats transfer pixel data as RGB values in a
7603 cylindrical-coordinate system using Hue-Saturation-Value or
7604 Hue-Saturation-Lightness components. The format code is made of the
7605 following information.
7607 - The hue, saturation, value or lightness and optional alpha components
7608 order code, as encoded in a pixel sample. The only currently
7609 supported value is AHSV.
7611 - The number of bits per component, for each component. The values can
7612 be different for all components. The only currently supported value
7615 - The number of bus samples per pixel. Pixels that are wider than the
7616 bus width must be transferred in multiple samples. The only currently
7617 supported value is 1.
7621 - For formats where the total number of bits per pixel is smaller than
7622 the number of bus samples per pixel times the bus width, a padding
7623 value stating if the bytes are padded in their most high order bits
7624 (PADHI) or low order bits (PADLO).
7626 - For formats where the number of bus samples per pixel is larger than
7627 1, an endianness value stating if the pixel is transferred MSB first
7628 (BE) or LSB first (LE).
7630 The following table lists existing HSV/HSL formats.
7637 \setlength{\tabcolsep}{2pt}
7639 .. tabularcolumns:: |p{3.9cm}|p{0.73cm}|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}|p{0.22cm}|
7641 .. _v4l2-mbus-pixelcode-hsv:
7643 .. flat-table:: HSV/HSL formats
7646 :widths: 28 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
7651 - :cspan:`31` Data organization
7687 * .. _MEDIA-BUS-FMT-AHSV8888-1X32:
7689 - MEDIA_BUS_FMT_AHSV8888_1X32
7730 JPEG Compressed Formats
7731 ^^^^^^^^^^^^^^^^^^^^^^^
7733 Those data formats consist of an ordered sequence of 8-bit bytes
7734 obtained from JPEG compression process. Additionally to the ``_JPEG``
7735 postfix the format code is made of the following information.
7737 - The number of bus samples per entropy encoded byte.
7741 For instance, for a JPEG baseline process and an 8-bit bus width the
7742 format will be named ``MEDIA_BUS_FMT_JPEG_1X8``.
7744 The following table lists existing JPEG compressed formats.
7747 .. _v4l2-mbus-pixelcode-jpeg:
7749 .. tabularcolumns:: |p{6.0cm}|p{1.4cm}|p{10.1cm}|
7751 .. flat-table:: JPEG Formats
7758 * .. _MEDIA-BUS-FMT-JPEG-1X8:
7760 - MEDIA_BUS_FMT_JPEG_1X8
7762 - Besides of its usage for the parallel bus this format is
7763 recommended for transmission of JPEG data over MIPI CSI bus using
7764 the User Defined 8-bit Data types.
7768 .. _v4l2-mbus-vendor-spec-fmts:
7770 Vendor and Device Specific Formats
7771 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
7773 This section lists complex data formats that are either vendor or device
7776 The following table lists the existing vendor and device specific
7780 .. _v4l2-mbus-pixelcode-vendor-specific:
7782 .. tabularcolumns:: |p{8.0cm}|p{1.4cm}|p{7.7cm}|
7784 .. flat-table:: Vendor and device specific formats
7791 * .. _MEDIA-BUS-FMT-S5C-UYVY-JPEG-1X8:
7793 - MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8
7795 - Interleaved raw UYVY and JPEG image format with embedded meta-data
7796 used by Samsung S3C73MX camera sensors.