xref: /linux/Documentation/userspace-api/media/v4l/metafmt-generic.rst (revision 24168c5e6dfbdd5b414f048f47f75d64533296ca)
1.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
2
3********************************************************************************************************************************************************************************************************************************************************************************
4V4L2_META_FMT_GENERIC_8 ('MET8'), V4L2_META_FMT_GENERIC_CSI2_10 ('MC1A'), V4L2_META_FMT_GENERIC_CSI2_12 ('MC1C'), V4L2_META_FMT_GENERIC_CSI2_14 ('MC1E'), V4L2_META_FMT_GENERIC_CSI2_16 ('MC1G'), V4L2_META_FMT_GENERIC_CSI2_20 ('MC1K'), V4L2_META_FMT_GENERIC_CSI2_24 ('MC1O')
5********************************************************************************************************************************************************************************************************************************************************************************
6
7
8Generic line-based metadata formats
9
10
11Description
12===========
13
14These generic line-based metadata formats define the memory layout of the data
15without defining the format or meaning of the metadata itself.
16
17.. _v4l2-meta-fmt-generic-8:
18
19V4L2_META_FMT_GENERIC_8
20-----------------------
21
22The V4L2_META_FMT_GENERIC_8 format is a plain 8-bit metadata format. This format
23is used on CSI-2 for 8 bits per :term:`Data Unit`.
24
25Additionally it is used for 16 bits per Data Unit when two bytes of metadata are
26packed into one 16-bit Data Unit. Otherwise the 16 bits per pixel dataformat is
27:ref:`V4L2_META_FMT_GENERIC_CSI2_16 <v4l2-meta-fmt-generic-csi2-16>`.
28
29**Byte Order Of V4L2_META_FMT_GENERIC_8.**
30Each cell is one byte. "M" denotes a byte of metadata.
31
32.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|
33
34.. flat-table:: Sample 4x2 Metadata Frame
35    :header-rows:  0
36    :stub-columns: 0
37    :widths: 12 8 8 8 8
38
39    * - start + 0:
40      - M\ :sub:`00`
41      - M\ :sub:`10`
42      - M\ :sub:`20`
43      - M\ :sub:`30`
44    * - start + 4:
45      - M\ :sub:`01`
46      - M\ :sub:`11`
47      - M\ :sub:`21`
48      - M\ :sub:`31`
49
50.. _v4l2-meta-fmt-generic-csi2-10:
51
52V4L2_META_FMT_GENERIC_CSI2_10
53-----------------------------
54
55V4L2_META_FMT_GENERIC_CSI2_10 contains 8-bit generic metadata packed in 10-bit
56Data Units, with one padding byte after every four bytes of metadata. This
57format is typically used by CSI-2 receivers with a source that transmits
58MEDIA_BUS_FMT_META_10 and the CSI-2 receiver writes the received data to memory
59as-is.
60
61The packing of the data follows the MIPI CSI-2 specification and the padding of
62the data is defined in the MIPI CCS specification.
63
64This format is also used in conjunction with 20 bits per :term:`Data Unit`
65formats that pack two bytes of metadata into one Data Unit. Otherwise the
6620 bits per pixel dataformat is :ref:`V4L2_META_FMT_GENERIC_CSI2_20
67<v4l2-meta-fmt-generic-csi2-20>`.
68
69This format is little endian.
70
71**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_10.**
72Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding.
73
74.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{.8cm}|
75
76.. flat-table:: Sample 4x2 Metadata Frame
77    :header-rows:  0
78    :stub-columns: 0
79    :widths: 12 8 8 8 8 8
80
81    * - start + 0:
82      - M\ :sub:`00`
83      - M\ :sub:`10`
84      - M\ :sub:`20`
85      - M\ :sub:`30`
86      - x
87    * - start + 5:
88      - M\ :sub:`01`
89      - M\ :sub:`11`
90      - M\ :sub:`21`
91      - M\ :sub:`31`
92      - x
93
94.. _v4l2-meta-fmt-generic-csi2-12:
95
96V4L2_META_FMT_GENERIC_CSI2_12
97-----------------------------
98
99V4L2_META_FMT_GENERIC_CSI2_12 contains 8-bit generic metadata packed in 12-bit
100Data Units, with one padding byte after every two bytes of metadata. This format
101is typically used by CSI-2 receivers with a source that transmits
102MEDIA_BUS_FMT_META_12 and the CSI-2 receiver writes the received data to memory
103as-is.
104
105The packing of the data follows the MIPI CSI-2 specification and the padding of
106the data is defined in the MIPI CCS specification.
107
108This format is also used in conjunction with 24 bits per :term:`Data Unit`
109formats that pack two bytes of metadata into one Data Unit. Otherwise the
11024 bits per pixel dataformat is :ref:`V4L2_META_FMT_GENERIC_CSI2_24
111<v4l2-meta-fmt-generic-csi2-24>`.
112
113This format is little endian.
114
115**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_12.**
116Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding.
117
118.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{.8cm}|p{.8cm}|
119
120.. flat-table:: Sample 4x2 Metadata Frame
121    :header-rows:  0
122    :stub-columns: 0
123    :widths: 12 8 8 8 8 8 8
124
125    * - start + 0:
126      - M\ :sub:`00`
127      - M\ :sub:`10`
128      - x
129      - M\ :sub:`20`
130      - M\ :sub:`30`
131      - x
132    * - start + 6:
133      - M\ :sub:`01`
134      - M\ :sub:`11`
135      - x
136      - M\ :sub:`21`
137      - M\ :sub:`31`
138      - x
139
140.. _v4l2-meta-fmt-generic-csi2-14:
141
142V4L2_META_FMT_GENERIC_CSI2_14
143-----------------------------
144
145V4L2_META_FMT_GENERIC_CSI2_14 contains 8-bit generic metadata packed in 14-bit
146Data Units, with three padding bytes after every four bytes of metadata. This
147format is typically used by CSI-2 receivers with a source that transmits
148MEDIA_BUS_FMT_META_14 and the CSI-2 receiver writes the received data to memory
149as-is.
150
151The packing of the data follows the MIPI CSI-2 specification and the padding of
152the data is defined in the MIPI CCS specification.
153
154This format is little endian.
155
156**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_14.**
157Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding.
158
159.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{.8cm}|p{.8cm}|p{.8cm}|
160
161.. flat-table:: Sample 4x2 Metadata Frame
162    :header-rows:  0
163    :stub-columns: 0
164    :widths: 12 8 8 8 8 8 8 8
165
166    * - start + 0:
167      - M\ :sub:`00`
168      - M\ :sub:`10`
169      - M\ :sub:`20`
170      - M\ :sub:`30`
171      - x
172      - x
173      - x
174    * - start + 7:
175      - M\ :sub:`01`
176      - M\ :sub:`11`
177      - M\ :sub:`21`
178      - M\ :sub:`31`
179      - x
180      - x
181      - x
182
183.. _v4l2-meta-fmt-generic-csi2-16:
184
185V4L2_META_FMT_GENERIC_CSI2_16
186-----------------------------
187
188V4L2_META_FMT_GENERIC_CSI2_16 contains 8-bit generic metadata packed in 16-bit
189Data Units, with one padding byte after every byte of metadata. This format is
190typically used by CSI-2 receivers with a source that transmits
191MEDIA_BUS_FMT_META_16 and the CSI-2 receiver writes the received data to memory
192as-is.
193
194The packing of the data follows the MIPI CSI-2 specification and the padding of
195the data is defined in the MIPI CCS specification.
196
197Some devices support more efficient packing of metadata in conjunction with
19816-bit image data. In that case the dataformat is
199:ref:`V4L2_META_FMT_GENERIC_8 <v4l2-meta-fmt-generic-8>`.
200
201This format is little endian.
202
203**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_16.**
204Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding.
205
206.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{1.2cm}|p{.8cm}|
207
208.. flat-table:: Sample 4x2 Metadata Frame
209    :header-rows:  0
210    :stub-columns: 0
211    :widths: 12 8 8 8 8 8 8 8 8
212
213    * - start + 0:
214      - M\ :sub:`00`
215      - x
216      - M\ :sub:`10`
217      - x
218      - M\ :sub:`20`
219      - x
220      - M\ :sub:`30`
221      - x
222    * - start + 8:
223      - M\ :sub:`01`
224      - x
225      - M\ :sub:`11`
226      - x
227      - M\ :sub:`21`
228      - x
229      - M\ :sub:`31`
230      - x
231
232.. _v4l2-meta-fmt-generic-csi2-20:
233
234V4L2_META_FMT_GENERIC_CSI2_20
235-----------------------------
236
237V4L2_META_FMT_GENERIC_CSI2_20 contains 8-bit generic metadata packed in 20-bit
238Data Units, with alternating one or two padding bytes after every byte of
239metadata. This format is typically used by CSI-2 receivers with a source that
240transmits MEDIA_BUS_FMT_META_20 and the CSI-2 receiver writes the received data
241to memory as-is.
242
243The packing of the data follows the MIPI CSI-2 specification and the padding of
244the data is defined in the MIPI CCS specification.
245
246Some devices support more efficient packing of metadata in conjunction with
24716-bit image data. In that case the dataformat is
248:ref:`V4L2_META_FMT_GENERIC_CSI2_10 <v4l2-meta-fmt-generic-csi2-10>`.
249
250This format is little endian.
251
252**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_20.**
253Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding.
254
255.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{.8cm}|
256
257.. flat-table:: Sample 4x2 Metadata Frame
258    :header-rows:  0
259    :stub-columns: 0
260    :widths: 12 8 8 8 8 8 8 8 8 8 8
261
262    * - start + 0:
263      - M\ :sub:`00`
264      - x
265      - M\ :sub:`10`
266      - x
267      - x
268      - M\ :sub:`20`
269      - x
270      - M\ :sub:`30`
271      - x
272      - x
273    * - start + 10:
274      - M\ :sub:`01`
275      - x
276      - M\ :sub:`11`
277      - x
278      - x
279      - M\ :sub:`21`
280      - x
281      - M\ :sub:`31`
282      - x
283      - x
284
285.. _v4l2-meta-fmt-generic-csi2-24:
286
287V4L2_META_FMT_GENERIC_CSI2_24
288-----------------------------
289
290V4L2_META_FMT_GENERIC_CSI2_24 contains 8-bit generic metadata packed in 24-bit
291Data Units, with two padding bytes after every byte of metadata. This format is
292typically used by CSI-2 receivers with a source that transmits
293MEDIA_BUS_FMT_META_24 and the CSI-2 receiver writes the received data to memory
294as-is.
295
296The packing of the data follows the MIPI CSI-2 specification and the padding of
297the data is defined in the MIPI CCS specification.
298
299Some devices support more efficient packing of metadata in conjunction with
30016-bit image data. In that case the dataformat is
301:ref:`V4L2_META_FMT_GENERIC_CSI2_12 <v4l2-meta-fmt-generic-csi2-12>`.
302
303This format is little endian.
304
305**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_24.**
306Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding.
307
308.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{.8cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{.8cm}|
309
310.. flat-table:: Sample 4x2 Metadata Frame
311    :header-rows:  0
312    :stub-columns: 0
313    :widths: 12 8 8 8 8 8 8 8 8 8 8 8 8
314
315    * - start + 0:
316      - M\ :sub:`00`
317      - x
318      - x
319      - M\ :sub:`10`
320      - x
321      - x
322      - M\ :sub:`20`
323      - x
324      - x
325      - M\ :sub:`30`
326      - x
327      - x
328    * - start + 12:
329      - M\ :sub:`01`
330      - x
331      - x
332      - M\ :sub:`11`
333      - x
334      - x
335      - M\ :sub:`21`
336      - x
337      - x
338      - M\ :sub:`31`
339      - x
340      - x
341