File Index
Files and directories
Sign in
FILE

metafmt-d4xx.rst

File preview with syntax highlighting.

linux-6.19.14/Documentation/userspace-api/media/v4l/metafmt-d4xx.rst RESTRUCTUREDTEXT
  1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2.. c:namespace:: V4L
  3
  4.. _v4l2-meta-fmt-d4xx:
  5
  6*******************************
  7V4L2_META_FMT_D4XX ('D4XX')
  8*******************************
  9
 10Intel D4xx UVC Cameras Metadata
 11
 12
 13Description
 14===========
 15
 16Intel D4xx (D435, D455 and others) cameras include per-frame metadata in their UVC
 17payload headers, following the Microsoft(R) UVC extension proposal [1_]. That
 18means, that the private D4XX metadata, following the standard UVC header, is
 19organised in blocks. D4XX cameras implement several standard block types,
 20proposed by Microsoft, and several proprietary ones. Supported standard metadata
 21types are MetadataId_CaptureStats (ID 3), MetadataId_CameraExtrinsics (ID 4),
 22and MetadataId_CameraIntrinsics (ID 5). For their description see [1_]. This
 23document describes proprietary metadata types, used by D4xx cameras.
 24
 25V4L2_META_FMT_D4XX buffers follow the metadata buffer layout of
 26V4L2_META_FMT_UVC with the only difference, that it also includes proprietary
 27payload header data. D4xx cameras use bulk transfers and only send one payload
 28per frame, therefore their headers cannot be larger than 255 bytes.
 29
 30This document implements Intel Configuration version 3 [9_].
 31
 32Below are proprietary Microsoft style metadata types, used by D4xx cameras,
 33where all fields are in little endian order:
 34
 35.. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
 36
 37
 38.. flat-table:: D4xx metadata
 39    :widths: 1 2
 40    :header-rows:  1
 41    :stub-columns: 0
 42
 43    * - **Field**
 44      - **Description**
 45    * - :cspan:`1` *Depth Control*
 46    * - __u32 ID
 47      - 0x80000000
 48    * - __u32 Size
 49      - Size in bytes, include ID (all protocol versions: 60)
 50    * - __u32 Version
 51      - Version of this structure. The documentation herein covers versions 1,
 52        2 and 3. The version number will be incremented when new fields are
 53        added.
 54    * - __u32 Flags
 55      - A bitmask of flags: see [2_] below
 56    * - __u32 Gain
 57      - Gain value in internal units, same as the V4L2_CID_GAIN control, used to
 58	capture the frame
 59    * - __u32 Exposure
 60      - Exposure time (in microseconds) used to capture the frame
 61    * - __u32 Laser power
 62      - Power of the laser LED 0-360, used for depth measurement
 63    * - __u32 AE mode
 64      - 0: manual; 1: automatic exposure
 65    * - __u32 Exposure priority
 66      - Exposure priority value: 0 - constant frame rate
 67    * - __u32 AE ROI left
 68      - Left border of the AE Region of Interest (all ROI values are in pixels
 69	and lie between 0 and maximum width or height respectively)
 70    * - __u32 AE ROI right
 71      - Right border of the AE Region of Interest
 72    * - __u32 AE ROI top
 73      - Top border of the AE Region of Interest
 74    * - __u32 AE ROI bottom
 75      - Bottom border of the AE Region of Interest
 76    * - __u32 Preset
 77      - Preset selector value, default: 0, unless changed by the user
 78    * - __u8 Emitter mode (v3 only) (__u32 Laser mode for v1) [8_]
 79      - 0: off, 1: on, same as __u32 Laser mode for v1
 80    * - __u8 RFU byte (v3 only)
 81      - Spare byte for future use
 82    * - __u16 LED Power (v3 only)
 83      - Led power value 0-360 (F416 SKU)
 84    * - :cspan:`1` *Capture Timing*
 85    * - __u32 ID
 86      - 0x80000001
 87    * - __u32 Size
 88      - Size in bytes, include ID (all protocol versions: 40)
 89    * - __u32 Version
 90      - Version of this structure. The documentation herein corresponds to
 91        version xxx. The version number will be incremented when new fields are
 92        added.
 93    * - __u32 Flags
 94      - A bitmask of flags: see [3_] below
 95    * - __u32 Frame counter
 96      - Monotonically increasing counter
 97    * - __u32 Optical time
 98      - Time in microseconds from the beginning of a frame till its middle
 99    * - __u32 Readout time
100      - Time, used to read out a frame in microseconds
101    * - __u32 Exposure time
102      - Frame exposure time in microseconds
103    * - __u32 Frame interval
104      - In microseconds = 1000000 / framerate
105    * - __u32 Pipe latency
106      - Time in microseconds from start of frame to data in USB buffer
107    * - :cspan:`1` *Configuration*
108    * - __u32 ID
109      - 0x80000002
110    * - __u32 Size
111      - Size in bytes, include ID (v1:36, v3:40)
112    * - __u32 Version
113      - Version of this structure. The documentation herein corresponds to
114        version xxx. The version number will be incremented when new fields are
115        added.
116    * - __u32 Flags
117      - A bitmask of flags: see [4_] below
118    * - __u8 Hardware type
119      - Camera hardware version [5_]
120    * - __u8 SKU ID
121      - Camera hardware configuration [6_]
122    * - __u32 Cookie
123      - Internal synchronisation
124    * - __u16 Format
125      - Image format code [7_]
126    * - __u16 Width
127      - Width in pixels
128    * - __u16 Height
129      - Height in pixels
130    * - __u16 Framerate
131      - Requested frame rate per second
132    * - __u16 Trigger
133      - Byte 0: bit 0: depth and RGB are synchronised, bit 1: external trigger
134    * - __u16 Calibration count (v3 only)
135      - Calibration counter, see [4_] below
136    * - __u8 GPIO input data (v3 only)
137      - GPIO readout, see [4_] below (Supported from FW 5.12.7.0)
138    * - __u32 Sub-preset info (v3 only)
139      - Sub-preset choice information, see [4_] below
140    * - __u8 reserved (v3 only)
141      - RFU byte.
142
143.. _1:
144
145[1] https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/uvc-extensions-1-5
146
147.. _2:
148
149[2] Depth Control flags specify which fields are valid: ::
150
151  0x00000001 Gain
152  0x00000002 Exposure
153  0x00000004 Laser power
154  0x00000008 AE mode
155  0x00000010 Exposure priority
156  0x00000020 AE ROI
157  0x00000040 Preset
158  0x00000080 Emitter mode
159  0x00000100 LED Power
160
161.. _3:
162
163[3] Capture Timing flags specify which fields are valid: ::
164
165  0x00000001 Frame counter
166  0x00000002 Optical time
167  0x00000004 Readout time
168  0x00000008 Exposure time
169  0x00000010 Frame interval
170  0x00000020 Pipe latency
171
172.. _4:
173
174[4] Configuration flags specify which fields are valid: ::
175
176  0x00000001 Hardware type
177  0x00000002 SKU ID
178  0x00000004 Cookie
179  0x00000008 Format
180  0x00000010 Width
181  0x00000020 Height
182  0x00000040 Framerate
183  0x00000080 Trigger
184  0x00000100 Cal count
185  0x00000200 GPIO Input Data
186  0x00000400 Sub-preset Info
187
188.. _5:
189
190[5] Camera model: ::
191
192  0 DS5
193  1 IVCAM2
194
195.. _6:
196
197[6] 8-bit camera hardware configuration bitfield: ::
198
199  [1:0] depthCamera
200	00: no depth
201	01: standard depth
202	10: wide depth
203	11: reserved
204  [2]   depthIsActive - has a laser projector
205  [3]   RGB presence
206  [4]   Inertial Measurement Unit (IMU) presence
207  [5]   projectorType
208	0: HPTG
209	1: Princeton
210  [6]   0: a projector, 1: an LED
211  [7]   reserved
212
213.. _7:
214
215[7] Image format codes per video streaming interface:
216
217Depth: ::
218
219  1 Z16
220  2 Z
221
222Left sensor: ::
223
224  1 Y8
225  2 UYVY
226  3 R8L8
227  4 Calibration
228  5 W10
229
230Fish Eye sensor: ::
231
232  1 RAW8
233
234.. _8:
235
236[8] The "Laser mode" has been replaced in version 3 by three different fields.
237"Laser" has been renamed to "Emitter" as there are multiple technologies for
238camera projectors. As we have another field for "Laser Power" we introduced
239"LED Power" for extra emitter.
240
241The "Laser mode" __u32 fields has been split into: ::
242   1 __u8 Emitter mode
243   2 __u8 RFU byte
244   3 __u16 LED Power
245
246This is a change between versions 1 and 3. All versions 1, 2 and 3 are backward
247compatible with the same data format and they are supported. See [2_] for which
248attributes are valid.
249
250.. _9:
251
252[9] LibRealSense SDK metadata source:
253https://github.com/IntelRealSense/librealsense/blob/master/src/metadata.h
~/ Read-only file preview.