xref: /OK3568_Linux_fs/kernel/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun.. _pixfmt-reserved:
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun***************************
6*4882a593SmuzhiyunReserved Format Identifiers
7*4882a593Smuzhiyun***************************
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunThese formats are not defined by this specification, they are just
10*4882a593Smuzhiyunlisted for reference and to avoid naming conflicts. If you want to
11*4882a593Smuzhiyunregister your own format, send an e-mail to the linux-media mailing list
12*4882a593Smuzhiyun`https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__
13*4882a593Smuzhiyunfor inclusion in the ``videodev2.h`` file. If you want to share your
14*4882a593Smuzhiyunformat with other developers add a link to your documentation and send a
15*4882a593Smuzhiyuncopy to the linux-media mailing list for inclusion in this section. If
16*4882a593Smuzhiyunyou think your format should be listed in a standard format section
17*4882a593Smuzhiyunplease make a proposal on the linux-media mailing list.
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun.. _reserved-formats:
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun.. flat-table:: Reserved Image Formats
25*4882a593Smuzhiyun    :header-rows:  1
26*4882a593Smuzhiyun    :stub-columns: 0
27*4882a593Smuzhiyun    :widths:       3 1 4
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun    * - Identifier
30*4882a593Smuzhiyun      - Code
31*4882a593Smuzhiyun      - Details
32*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-DV:
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_DV``
35*4882a593Smuzhiyun      - 'dvsd'
36*4882a593Smuzhiyun      - unknown
37*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-ET61X251:
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_ET61X251``
40*4882a593Smuzhiyun      - 'E625'
41*4882a593Smuzhiyun      - Compressed format of the ET61X251 driver.
42*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-HI240:
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_HI240``
45*4882a593Smuzhiyun      - 'HI24'
46*4882a593Smuzhiyun      - 8 bit RGB format used by the BTTV driver.
47*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-HM12:
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_HM12``
50*4882a593Smuzhiyun      - 'HM12'
51*4882a593Smuzhiyun      - YUV 4:2:0 format used by the IVTV driver.
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun	The format is documented in the kernel sources in the file
54*4882a593Smuzhiyun	``Documentation/userspace-api/media/drivers/cx2341x-uapi.rst``
55*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-CPIA1:
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_CPIA1``
58*4882a593Smuzhiyun      - 'CPIA'
59*4882a593Smuzhiyun      - YUV format used by the gspca cpia1 driver.
60*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-JPGL:
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_JPGL``
63*4882a593Smuzhiyun      - 'JPGL'
64*4882a593Smuzhiyun      - JPEG-Light format (Pegasus Lossless JPEG) used in Divio webcams NW
65*4882a593Smuzhiyun	80x.
66*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-SPCA501:
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_SPCA501``
69*4882a593Smuzhiyun      - 'S501'
70*4882a593Smuzhiyun      - YUYV per line used by the gspca driver.
71*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-SPCA505:
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_SPCA505``
74*4882a593Smuzhiyun      - 'S505'
75*4882a593Smuzhiyun      - YYUV per line used by the gspca driver.
76*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-SPCA508:
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_SPCA508``
79*4882a593Smuzhiyun      - 'S508'
80*4882a593Smuzhiyun      - YUVY per line used by the gspca driver.
81*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-SPCA561:
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_SPCA561``
84*4882a593Smuzhiyun      - 'S561'
85*4882a593Smuzhiyun      - Compressed GBRG Bayer format used by the gspca driver.
86*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-PAC207:
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_PAC207``
89*4882a593Smuzhiyun      - 'P207'
90*4882a593Smuzhiyun      - Compressed BGGR Bayer format used by the gspca driver.
91*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-MR97310A:
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_MR97310A``
94*4882a593Smuzhiyun      - 'M310'
95*4882a593Smuzhiyun      - Compressed BGGR Bayer format used by the gspca driver.
96*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-JL2005BCD:
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_JL2005BCD``
99*4882a593Smuzhiyun      - 'JL20'
100*4882a593Smuzhiyun      - JPEG compressed RGGB Bayer format used by the gspca driver.
101*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-OV511:
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_OV511``
104*4882a593Smuzhiyun      - 'O511'
105*4882a593Smuzhiyun      - OV511 JPEG format used by the gspca driver.
106*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-OV518:
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_OV518``
109*4882a593Smuzhiyun      - 'O518'
110*4882a593Smuzhiyun      - OV518 JPEG format used by the gspca driver.
111*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-PJPG:
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_PJPG``
114*4882a593Smuzhiyun      - 'PJPG'
115*4882a593Smuzhiyun      - Pixart 73xx JPEG format used by the gspca driver.
116*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-SE401:
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_SE401``
119*4882a593Smuzhiyun      - 'S401'
120*4882a593Smuzhiyun      - Compressed RGB format used by the gspca se401 driver
121*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-SQ905C:
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_SQ905C``
124*4882a593Smuzhiyun      - '905C'
125*4882a593Smuzhiyun      - Compressed RGGB bayer format used by the gspca driver.
126*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-MJPEG:
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_MJPEG``
129*4882a593Smuzhiyun      - 'MJPG'
130*4882a593Smuzhiyun      - Compressed format used by the Zoran driver
131*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-PWC1:
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_PWC1``
134*4882a593Smuzhiyun      - 'PWC1'
135*4882a593Smuzhiyun      - Compressed format of the PWC driver.
136*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-PWC2:
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_PWC2``
139*4882a593Smuzhiyun      - 'PWC2'
140*4882a593Smuzhiyun      - Compressed format of the PWC driver.
141*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-SN9C10X:
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_SN9C10X``
144*4882a593Smuzhiyun      - 'S910'
145*4882a593Smuzhiyun      - Compressed format of the SN9C102 driver.
146*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-SN9C20X-I420:
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_SN9C20X_I420``
149*4882a593Smuzhiyun      - 'S920'
150*4882a593Smuzhiyun      - YUV 4:2:0 format of the gspca sn9c20x driver.
151*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-SN9C2028:
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_SN9C2028``
154*4882a593Smuzhiyun      - 'SONX'
155*4882a593Smuzhiyun      - Compressed GBRG bayer format of the gspca sn9c2028 driver.
156*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-STV0680:
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_STV0680``
159*4882a593Smuzhiyun      - 'S680'
160*4882a593Smuzhiyun      - Bayer format of the gspca stv0680 driver.
161*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-WNVA:
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_WNVA``
164*4882a593Smuzhiyun      - 'WNVA'
165*4882a593Smuzhiyun      - Used by the Winnov Videum driver,
166*4882a593Smuzhiyun	`http://www.thedirks.org/winnov/ <http://www.thedirks.org/winnov/>`__
167*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-TM6000:
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_TM6000``
170*4882a593Smuzhiyun      - 'TM60'
171*4882a593Smuzhiyun      - Used by Trident tm6000
172*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-CIT-YYVYUY:
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_CIT_YYVYUY``
175*4882a593Smuzhiyun      - 'CITV'
176*4882a593Smuzhiyun      - Used by xirlink CIT, found at IBM webcams.
177*4882a593Smuzhiyun
178*4882a593Smuzhiyun	Uses one line of Y then 1 line of VYUY
179*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-KONICA420:
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_KONICA420``
182*4882a593Smuzhiyun      - 'KONI'
183*4882a593Smuzhiyun      - Used by Konica webcams.
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun	YUV420 planar in blocks of 256 pixels.
186*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-YYUV:
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_YYUV``
189*4882a593Smuzhiyun      - 'YYUV'
190*4882a593Smuzhiyun      - unknown
191*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-Y4:
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_Y4``
194*4882a593Smuzhiyun      - 'Y04 '
195*4882a593Smuzhiyun      - Old 4-bit greyscale format. Only the most significant 4 bits of
196*4882a593Smuzhiyun	each byte are used, the other bits are set to 0.
197*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-Y6:
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_Y6``
200*4882a593Smuzhiyun      - 'Y06 '
201*4882a593Smuzhiyun      - Old 6-bit greyscale format. Only the most significant 6 bits of
202*4882a593Smuzhiyun	each byte are used, the other bits are set to 0.
203*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-S5C-UYVY-JPG:
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_S5C_UYVY_JPG``
206*4882a593Smuzhiyun      - 'S5CI'
207*4882a593Smuzhiyun      - Two-planar format used by Samsung S5C73MX cameras. The first plane
208*4882a593Smuzhiyun	contains interleaved JPEG and UYVY image data, followed by meta
209*4882a593Smuzhiyun	data in form of an array of offsets to the UYVY data blocks. The
210*4882a593Smuzhiyun	actual pointer array follows immediately the interleaved JPEG/UYVY
211*4882a593Smuzhiyun	data, the number of entries in this array equals the height of the
212*4882a593Smuzhiyun	UYVY image. Each entry is a 4-byte unsigned integer in big endian
213*4882a593Smuzhiyun	order and it's an offset to a single pixel line of the UYVY image.
214*4882a593Smuzhiyun	The first plane can start either with JPEG or UYVY data chunk. The
215*4882a593Smuzhiyun	size of a single UYVY block equals the UYVY image's width
216*4882a593Smuzhiyun	multiplied by 2. The size of a JPEG chunk depends on the image and
217*4882a593Smuzhiyun	can vary with each line.
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun	The second plane, at an offset of 4084 bytes, contains a 4-byte
220*4882a593Smuzhiyun	offset to the pointer array in the first plane. This offset is
221*4882a593Smuzhiyun	followed by a 4-byte value indicating size of the pointer array.
222*4882a593Smuzhiyun	All numbers in the second plane are also in big endian order.
223*4882a593Smuzhiyun	Remaining data in the second plane is undefined. The information
224*4882a593Smuzhiyun	in the second plane allows to easily find location of the pointer
225*4882a593Smuzhiyun	array, which can be different for each frame. The size of the
226*4882a593Smuzhiyun	pointer array is constant for given UYVY image height.
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun	In order to extract UYVY and JPEG frames an application can
229*4882a593Smuzhiyun	initially set a data pointer to the start of first plane and then
230*4882a593Smuzhiyun	add an offset from the first entry of the pointers table. Such a
231*4882a593Smuzhiyun	pointer indicates start of an UYVY image pixel line. Whole UYVY
232*4882a593Smuzhiyun	line can be copied to a separate buffer. These steps should be
233*4882a593Smuzhiyun	repeated for each line, i.e. the number of entries in the pointer
234*4882a593Smuzhiyun	array. Anything what's in between the UYVY lines is JPEG data and
235*4882a593Smuzhiyun	should be concatenated to form the JPEG stream.
236*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-MT21C:
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_MT21C``
239*4882a593Smuzhiyun      - 'MT21'
240*4882a593Smuzhiyun      - Compressed two-planar YVU420 format used by Mediatek MT8173.
241*4882a593Smuzhiyun	The compression is lossless.
242*4882a593Smuzhiyun	It is an opaque intermediate format and the MDP hardware must be
243*4882a593Smuzhiyun	used to convert ``V4L2_PIX_FMT_MT21C`` to ``V4L2_PIX_FMT_NV12M``,
244*4882a593Smuzhiyun	``V4L2_PIX_FMT_YUV420M`` or ``V4L2_PIX_FMT_YVU420``.
245*4882a593Smuzhiyun    * .. _V4L2-PIX-FMT-SUNXI-TILED-NV12:
246*4882a593Smuzhiyun
247*4882a593Smuzhiyun      - ``V4L2_PIX_FMT_SUNXI_TILED_NV12``
248*4882a593Smuzhiyun      - 'ST12'
249*4882a593Smuzhiyun      - Two-planar NV12-based format used by the video engine found on Allwinner
250*4882a593Smuzhiyun	(codenamed sunxi) platforms, with 32x32 tiles for the luminance plane
251*4882a593Smuzhiyun	and 32x64 tiles for the chrominance plane. The data in each tile is
252*4882a593Smuzhiyun	stored in linear order, within the tile bounds. Each tile follows the
253*4882a593Smuzhiyun	previous one linearly in memory (from left to right, top to bottom).
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun	The associated buffer dimensions are aligned to match an integer number
256*4882a593Smuzhiyun	of tiles, resulting in 32-aligned resolutions for the luminance plane
257*4882a593Smuzhiyun	and 16-aligned resolutions for the chrominance plane (with 2x2
258*4882a593Smuzhiyun	subsampling).
259