162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci.. _pixfmt-reserved:
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci***************************
662306a36Sopenharmony_ciReserved Format Identifiers
762306a36Sopenharmony_ci***************************
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciThese formats are not defined by this specification, they are just
1062306a36Sopenharmony_cilisted for reference and to avoid naming conflicts. If you want to
1162306a36Sopenharmony_ciregister your own format, send an e-mail to the linux-media mailing list
1262306a36Sopenharmony_ci`https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__
1362306a36Sopenharmony_cifor inclusion in the ``videodev2.h`` file. If you want to share your
1462306a36Sopenharmony_ciformat with other developers add a link to your documentation and send a
1562306a36Sopenharmony_cicopy to the linux-media mailing list for inclusion in this section. If
1662306a36Sopenharmony_ciyou think your format should be listed in a standard format section
1762306a36Sopenharmony_ciplease make a proposal on the linux-media mailing list.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}|
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci.. raw:: latex
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci    \small
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci.. _reserved-formats:
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci.. flat-table:: Reserved Image Formats
2962306a36Sopenharmony_ci    :header-rows:  1
3062306a36Sopenharmony_ci    :stub-columns: 0
3162306a36Sopenharmony_ci    :widths:       3 1 4
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci    * - Identifier
3462306a36Sopenharmony_ci      - Code
3562306a36Sopenharmony_ci      - Details
3662306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-DV:
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_DV``
3962306a36Sopenharmony_ci      - 'dvsd'
4062306a36Sopenharmony_ci      - unknown
4162306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-ET61X251:
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_ET61X251``
4462306a36Sopenharmony_ci      - 'E625'
4562306a36Sopenharmony_ci      - Compressed format of the ET61X251 driver.
4662306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-HI240:
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_HI240``
4962306a36Sopenharmony_ci      - 'HI24'
5062306a36Sopenharmony_ci      - 8 bit RGB format used by the BTTV driver.
5162306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-CPIA1:
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_CPIA1``
5462306a36Sopenharmony_ci      - 'CPIA'
5562306a36Sopenharmony_ci      - YUV format used by the gspca cpia1 driver.
5662306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-JPGL:
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_JPGL``
5962306a36Sopenharmony_ci      - 'JPGL'
6062306a36Sopenharmony_ci      - JPEG-Light format (Pegasus Lossless JPEG) used in Divio webcams NW
6162306a36Sopenharmony_ci	80x.
6262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-SPCA501:
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_SPCA501``
6562306a36Sopenharmony_ci      - 'S501'
6662306a36Sopenharmony_ci      - YUYV per line used by the gspca driver.
6762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-SPCA505:
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_SPCA505``
7062306a36Sopenharmony_ci      - 'S505'
7162306a36Sopenharmony_ci      - YYUV per line used by the gspca driver.
7262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-SPCA508:
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_SPCA508``
7562306a36Sopenharmony_ci      - 'S508'
7662306a36Sopenharmony_ci      - YUVY per line used by the gspca driver.
7762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-SPCA561:
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_SPCA561``
8062306a36Sopenharmony_ci      - 'S561'
8162306a36Sopenharmony_ci      - Compressed GBRG Bayer format used by the gspca driver.
8262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-PAC207:
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_PAC207``
8562306a36Sopenharmony_ci      - 'P207'
8662306a36Sopenharmony_ci      - Compressed BGGR Bayer format used by the gspca driver.
8762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-MR97310A:
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_MR97310A``
9062306a36Sopenharmony_ci      - 'M310'
9162306a36Sopenharmony_ci      - Compressed BGGR Bayer format used by the gspca driver.
9262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-JL2005BCD:
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_JL2005BCD``
9562306a36Sopenharmony_ci      - 'JL20'
9662306a36Sopenharmony_ci      - JPEG compressed RGGB Bayer format used by the gspca driver.
9762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-OV511:
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_OV511``
10062306a36Sopenharmony_ci      - 'O511'
10162306a36Sopenharmony_ci      - OV511 JPEG format used by the gspca driver.
10262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-OV518:
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_OV518``
10562306a36Sopenharmony_ci      - 'O518'
10662306a36Sopenharmony_ci      - OV518 JPEG format used by the gspca driver.
10762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-PJPG:
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_PJPG``
11062306a36Sopenharmony_ci      - 'PJPG'
11162306a36Sopenharmony_ci      - Pixart 73xx JPEG format used by the gspca driver.
11262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-SE401:
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_SE401``
11562306a36Sopenharmony_ci      - 'S401'
11662306a36Sopenharmony_ci      - Compressed RGB format used by the gspca se401 driver
11762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-SQ905C:
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_SQ905C``
12062306a36Sopenharmony_ci      - '905C'
12162306a36Sopenharmony_ci      - Compressed RGGB bayer format used by the gspca driver.
12262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-MJPEG:
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_MJPEG``
12562306a36Sopenharmony_ci      - 'MJPG'
12662306a36Sopenharmony_ci      - Compressed format used by the Zoran driver
12762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-PWC1:
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_PWC1``
13062306a36Sopenharmony_ci      - 'PWC1'
13162306a36Sopenharmony_ci      - Compressed format of the PWC driver.
13262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-PWC2:
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_PWC2``
13562306a36Sopenharmony_ci      - 'PWC2'
13662306a36Sopenharmony_ci      - Compressed format of the PWC driver.
13762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-SN9C10X:
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_SN9C10X``
14062306a36Sopenharmony_ci      - 'S910'
14162306a36Sopenharmony_ci      - Compressed format of the SN9C102 driver.
14262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-SN9C20X-I420:
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_SN9C20X_I420``
14562306a36Sopenharmony_ci      - 'S920'
14662306a36Sopenharmony_ci      - YUV 4:2:0 format of the gspca sn9c20x driver.
14762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-SN9C2028:
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_SN9C2028``
15062306a36Sopenharmony_ci      - 'SONX'
15162306a36Sopenharmony_ci      - Compressed GBRG bayer format of the gspca sn9c2028 driver.
15262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-STV0680:
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_STV0680``
15562306a36Sopenharmony_ci      - 'S680'
15662306a36Sopenharmony_ci      - Bayer format of the gspca stv0680 driver.
15762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-WNVA:
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_WNVA``
16062306a36Sopenharmony_ci      - 'WNVA'
16162306a36Sopenharmony_ci      - Used by the Winnov Videum driver,
16262306a36Sopenharmony_ci	`http://www.thedirks.org/winnov/ <http://www.thedirks.org/winnov/>`__
16362306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-TM6000:
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_TM6000``
16662306a36Sopenharmony_ci      - 'TM60'
16762306a36Sopenharmony_ci      - Used by Trident tm6000
16862306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-CIT-YYVYUY:
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_CIT_YYVYUY``
17162306a36Sopenharmony_ci      - 'CITV'
17262306a36Sopenharmony_ci      - Used by xirlink CIT, found at IBM webcams.
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci	Uses one line of Y then 1 line of VYUY
17562306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-KONICA420:
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_KONICA420``
17862306a36Sopenharmony_ci      - 'KONI'
17962306a36Sopenharmony_ci      - Used by Konica webcams.
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci	YUV420 planar in blocks of 256 pixels.
18262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-YYUV:
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_YYUV``
18562306a36Sopenharmony_ci      - 'YYUV'
18662306a36Sopenharmony_ci      - unknown
18762306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-Y4:
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_Y4``
19062306a36Sopenharmony_ci      - 'Y04 '
19162306a36Sopenharmony_ci      - Old 4-bit greyscale format. Only the most significant 4 bits of
19262306a36Sopenharmony_ci	each byte are used, the other bits are set to 0.
19362306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-Y6:
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_Y6``
19662306a36Sopenharmony_ci      - 'Y06 '
19762306a36Sopenharmony_ci      - Old 6-bit greyscale format. Only the most significant 6 bits of
19862306a36Sopenharmony_ci	each byte are used, the other bits are set to 0.
19962306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-S5C-UYVY-JPG:
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_S5C_UYVY_JPG``
20262306a36Sopenharmony_ci      - 'S5CI'
20362306a36Sopenharmony_ci      - Two-planar format used by Samsung S5C73MX cameras. The first plane
20462306a36Sopenharmony_ci	contains interleaved JPEG and UYVY image data, followed by meta
20562306a36Sopenharmony_ci	data in form of an array of offsets to the UYVY data blocks. The
20662306a36Sopenharmony_ci	actual pointer array follows immediately the interleaved JPEG/UYVY
20762306a36Sopenharmony_ci	data, the number of entries in this array equals the height of the
20862306a36Sopenharmony_ci	UYVY image. Each entry is a 4-byte unsigned integer in big endian
20962306a36Sopenharmony_ci	order and it's an offset to a single pixel line of the UYVY image.
21062306a36Sopenharmony_ci	The first plane can start either with JPEG or UYVY data chunk. The
21162306a36Sopenharmony_ci	size of a single UYVY block equals the UYVY image's width
21262306a36Sopenharmony_ci	multiplied by 2. The size of a JPEG chunk depends on the image and
21362306a36Sopenharmony_ci	can vary with each line.
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_ci	The second plane, at an offset of 4084 bytes, contains a 4-byte
21662306a36Sopenharmony_ci	offset to the pointer array in the first plane. This offset is
21762306a36Sopenharmony_ci	followed by a 4-byte value indicating size of the pointer array.
21862306a36Sopenharmony_ci	All numbers in the second plane are also in big endian order.
21962306a36Sopenharmony_ci	Remaining data in the second plane is undefined. The information
22062306a36Sopenharmony_ci	in the second plane allows to easily find location of the pointer
22162306a36Sopenharmony_ci	array, which can be different for each frame. The size of the
22262306a36Sopenharmony_ci	pointer array is constant for given UYVY image height.
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ci	In order to extract UYVY and JPEG frames an application can
22562306a36Sopenharmony_ci	initially set a data pointer to the start of first plane and then
22662306a36Sopenharmony_ci	add an offset from the first entry of the pointers table. Such a
22762306a36Sopenharmony_ci	pointer indicates start of an UYVY image pixel line. Whole UYVY
22862306a36Sopenharmony_ci	line can be copied to a separate buffer. These steps should be
22962306a36Sopenharmony_ci	repeated for each line, i.e. the number of entries in the pointer
23062306a36Sopenharmony_ci	array. Anything what's in between the UYVY lines is JPEG data and
23162306a36Sopenharmony_ci	should be concatenated to form the JPEG stream.
23262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-MT21C:
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_MT21C``
23562306a36Sopenharmony_ci      - 'MT21'
23662306a36Sopenharmony_ci      - Compressed two-planar YVU420 format used by Mediatek MT8173, MT8192,
23762306a36Sopenharmony_ci        MT8195 and more. The compression is lossless. This format have
23862306a36Sopenharmony_ci	similitude with ``V4L2_PIX_FMT_MM21`` in term of alignment and tiling.
23962306a36Sopenharmony_ci	It remains an opaque intermediate format and the MDP hardware must be
24062306a36Sopenharmony_ci	used to convert ``V4L2_PIX_FMT_MT21C`` to ``V4L2_PIX_FMT_NV12M``,
24162306a36Sopenharmony_ci	``V4L2_PIX_FMT_YUV420M`` or ``V4L2_PIX_FMT_YVU420``.
24262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-QC08C:
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_QC08C``
24562306a36Sopenharmony_ci      - 'QC08C'
24662306a36Sopenharmony_ci      - Compressed Macro-tile 8-Bit YUV420 format used by Qualcomm platforms.
24762306a36Sopenharmony_ci        It is an opaque intermediate format. The used compression is lossless
24862306a36Sopenharmony_ci        and it is used by various multimedia hardware blocks like GPU, display
24962306a36Sopenharmony_ci        controllers, ISP and video accelerators.
25062306a36Sopenharmony_ci        It contains four planes for progressive video and eight planes for
25162306a36Sopenharmony_ci        interlaced video.
25262306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-QC10C:
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_QC10C``
25562306a36Sopenharmony_ci      - 'QC10C'
25662306a36Sopenharmony_ci      - Compressed Macro-tile 10-Bit YUV420 format used by Qualcomm platforms.
25762306a36Sopenharmony_ci        It is an opaque intermediate format. The used compression is lossless
25862306a36Sopenharmony_ci        and it is used by various multimedia hardware blocks like GPU, display
25962306a36Sopenharmony_ci        controllers, ISP and video accelerators.
26062306a36Sopenharmony_ci        It contains four planes for progressive video.
26162306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-AJPG:
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_AJPG``
26462306a36Sopenharmony_ci      - 'AJPG'
26562306a36Sopenharmony_ci      - ASPEED JPEG format used by the aspeed-video driver on Aspeed platforms,
26662306a36Sopenharmony_ci        which is generally adapted for remote KVM.
26762306a36Sopenharmony_ci        On each frame compression, I will compare the new frame with previous
26862306a36Sopenharmony_ci        one to decide which macroblock's data is changed, and only the changed
26962306a36Sopenharmony_ci        macroblocks will be compressed.
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_ci        The implementation is based on AST2600 A3 datasheet, revision 0.9, which
27262306a36Sopenharmony_ci        is not publicly available. Or you can reference Video stream data format
27362306a36Sopenharmony_ci        – ASPEED mode compression of SDK_User_Guide which available on
27462306a36Sopenharmony_ci        `github <https://github.com/AspeedTech-BMC/openbmc/releases/>`__.
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_ci        Decoder's implementation can be found here,
27762306a36Sopenharmony_ci        `aspeed_codec <https://github.com/AspeedTech-BMC/aspeed_codec/>`__
27862306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-MT2110T:
27962306a36Sopenharmony_ci
28062306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_MT2110T``
28162306a36Sopenharmony_ci      - 'MT2110T'
28262306a36Sopenharmony_ci      - This format is two-planar 10-Bit tile mode and having similitude with
28362306a36Sopenharmony_ci        ``V4L2_PIX_FMT_MM21`` in term of alignment and tiling. Used for VP9, AV1
28462306a36Sopenharmony_ci        and HEVC.
28562306a36Sopenharmony_ci    * .. _V4L2-PIX-FMT-MT2110R:
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ci      - ``V4L2_PIX_FMT_MT2110R``
28862306a36Sopenharmony_ci      - 'MT2110R'
28962306a36Sopenharmony_ci      - This format is two-planar 10-Bit raster mode and having similitude with
29062306a36Sopenharmony_ci        ``V4L2_PIX_FMT_MM21`` in term of alignment and tiling. Used for AVC.
29162306a36Sopenharmony_ci.. raw:: latex
29262306a36Sopenharmony_ci
29362306a36Sopenharmony_ci    \normalsize
294