18c2ecf20Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ci.. _v4l2-meta-fmt-d4xx: 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci******************************* 68c2ecf20Sopenharmony_ciV4L2_META_FMT_D4XX ('D4XX') 78c2ecf20Sopenharmony_ci******************************* 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciIntel D4xx UVC Cameras Metadata 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciDescription 138c2ecf20Sopenharmony_ci=========== 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciIntel D4xx (D435 and other) cameras include per-frame metadata in their UVC 168c2ecf20Sopenharmony_cipayload headers, following the Microsoft(R) UVC extension proposal [1_]. That 178c2ecf20Sopenharmony_cimeans, that the private D4XX metadata, following the standard UVC header, is 188c2ecf20Sopenharmony_ciorganised in blocks. D4XX cameras implement several standard block types, 198c2ecf20Sopenharmony_ciproposed by Microsoft, and several proprietary ones. Supported standard metadata 208c2ecf20Sopenharmony_citypes are MetadataId_CaptureStats (ID 3), MetadataId_CameraExtrinsics (ID 4), 218c2ecf20Sopenharmony_ciand MetadataId_CameraIntrinsics (ID 5). For their description see [1_]. This 228c2ecf20Sopenharmony_cidocument describes proprietary metadata types, used by D4xx cameras. 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciV4L2_META_FMT_D4XX buffers follow the metadata buffer layout of 258c2ecf20Sopenharmony_ciV4L2_META_FMT_UVC with the only difference, that it also includes proprietary 268c2ecf20Sopenharmony_cipayload header data. D4xx cameras use bulk transfers and only send one payload 278c2ecf20Sopenharmony_ciper frame, therefore their headers cannot be larger than 255 bytes. 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ciBelow are proprietary Microsoft style metadata types, used by D4xx cameras, 308c2ecf20Sopenharmony_ciwhere all fields are in little endian order: 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{5.0cm}|p{12.5cm}| 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci.. flat-table:: D4xx metadata 368c2ecf20Sopenharmony_ci :widths: 1 2 378c2ecf20Sopenharmony_ci :header-rows: 1 388c2ecf20Sopenharmony_ci :stub-columns: 0 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci * - **Field** 418c2ecf20Sopenharmony_ci - **Description** 428c2ecf20Sopenharmony_ci * - :cspan:`1` *Depth Control* 438c2ecf20Sopenharmony_ci * - __u32 ID 448c2ecf20Sopenharmony_ci - 0x80000000 458c2ecf20Sopenharmony_ci * - __u32 Size 468c2ecf20Sopenharmony_ci - Size in bytes (currently 56) 478c2ecf20Sopenharmony_ci * - __u32 Version 488c2ecf20Sopenharmony_ci - Version of this structure. The documentation herein corresponds to 498c2ecf20Sopenharmony_ci version xxx. The version number will be incremented when new fields are 508c2ecf20Sopenharmony_ci added. 518c2ecf20Sopenharmony_ci * - __u32 Flags 528c2ecf20Sopenharmony_ci - A bitmask of flags: see [2_] below 538c2ecf20Sopenharmony_ci * - __u32 Gain 548c2ecf20Sopenharmony_ci - Gain value in internal units, same as the V4L2_CID_GAIN control, used to 558c2ecf20Sopenharmony_ci capture the frame 568c2ecf20Sopenharmony_ci * - __u32 Exposure 578c2ecf20Sopenharmony_ci - Exposure time (in microseconds) used to capture the frame 588c2ecf20Sopenharmony_ci * - __u32 Laser power 598c2ecf20Sopenharmony_ci - Power of the laser LED 0-360, used for depth measurement 608c2ecf20Sopenharmony_ci * - __u32 AE mode 618c2ecf20Sopenharmony_ci - 0: manual; 1: automatic exposure 628c2ecf20Sopenharmony_ci * - __u32 Exposure priority 638c2ecf20Sopenharmony_ci - Exposure priority value: 0 - constant frame rate 648c2ecf20Sopenharmony_ci * - __u32 AE ROI left 658c2ecf20Sopenharmony_ci - Left border of the AE Region of Interest (all ROI values are in pixels 668c2ecf20Sopenharmony_ci and lie between 0 and maximum width or height respectively) 678c2ecf20Sopenharmony_ci * - __u32 AE ROI right 688c2ecf20Sopenharmony_ci - Right border of the AE Region of Interest 698c2ecf20Sopenharmony_ci * - __u32 AE ROI top 708c2ecf20Sopenharmony_ci - Top border of the AE Region of Interest 718c2ecf20Sopenharmony_ci * - __u32 AE ROI bottom 728c2ecf20Sopenharmony_ci - Bottom border of the AE Region of Interest 738c2ecf20Sopenharmony_ci * - __u32 Preset 748c2ecf20Sopenharmony_ci - Preset selector value, default: 0, unless changed by the user 758c2ecf20Sopenharmony_ci * - __u32 Laser mode 768c2ecf20Sopenharmony_ci - 0: off, 1: on 778c2ecf20Sopenharmony_ci * - :cspan:`1` *Capture Timing* 788c2ecf20Sopenharmony_ci * - __u32 ID 798c2ecf20Sopenharmony_ci - 0x80000001 808c2ecf20Sopenharmony_ci * - __u32 Size 818c2ecf20Sopenharmony_ci - Size in bytes (currently 40) 828c2ecf20Sopenharmony_ci * - __u32 Version 838c2ecf20Sopenharmony_ci - Version of this structure. The documentation herein corresponds to 848c2ecf20Sopenharmony_ci version xxx. The version number will be incremented when new fields are 858c2ecf20Sopenharmony_ci added. 868c2ecf20Sopenharmony_ci * - __u32 Flags 878c2ecf20Sopenharmony_ci - A bitmask of flags: see [3_] below 888c2ecf20Sopenharmony_ci * - __u32 Frame counter 898c2ecf20Sopenharmony_ci - Monotonically increasing counter 908c2ecf20Sopenharmony_ci * - __u32 Optical time 918c2ecf20Sopenharmony_ci - Time in microseconds from the beginning of a frame till its middle 928c2ecf20Sopenharmony_ci * - __u32 Readout time 938c2ecf20Sopenharmony_ci - Time, used to read out a frame in microseconds 948c2ecf20Sopenharmony_ci * - __u32 Exposure time 958c2ecf20Sopenharmony_ci - Frame exposure time in microseconds 968c2ecf20Sopenharmony_ci * - __u32 Frame interval 978c2ecf20Sopenharmony_ci - In microseconds = 1000000 / framerate 988c2ecf20Sopenharmony_ci * - __u32 Pipe latency 998c2ecf20Sopenharmony_ci - Time in microseconds from start of frame to data in USB buffer 1008c2ecf20Sopenharmony_ci * - :cspan:`1` *Configuration* 1018c2ecf20Sopenharmony_ci * - __u32 ID 1028c2ecf20Sopenharmony_ci - 0x80000002 1038c2ecf20Sopenharmony_ci * - __u32 Size 1048c2ecf20Sopenharmony_ci - Size in bytes (currently 40) 1058c2ecf20Sopenharmony_ci * - __u32 Version 1068c2ecf20Sopenharmony_ci - Version of this structure. The documentation herein corresponds to 1078c2ecf20Sopenharmony_ci version xxx. The version number will be incremented when new fields are 1088c2ecf20Sopenharmony_ci added. 1098c2ecf20Sopenharmony_ci * - __u32 Flags 1108c2ecf20Sopenharmony_ci - A bitmask of flags: see [4_] below 1118c2ecf20Sopenharmony_ci * - __u8 Hardware type 1128c2ecf20Sopenharmony_ci - Camera hardware version [5_] 1138c2ecf20Sopenharmony_ci * - __u8 SKU ID 1148c2ecf20Sopenharmony_ci - Camera hardware configuration [6_] 1158c2ecf20Sopenharmony_ci * - __u32 Cookie 1168c2ecf20Sopenharmony_ci - Internal synchronisation 1178c2ecf20Sopenharmony_ci * - __u16 Format 1188c2ecf20Sopenharmony_ci - Image format code [7_] 1198c2ecf20Sopenharmony_ci * - __u16 Width 1208c2ecf20Sopenharmony_ci - Width in pixels 1218c2ecf20Sopenharmony_ci * - __u16 Height 1228c2ecf20Sopenharmony_ci - Height in pixels 1238c2ecf20Sopenharmony_ci * - __u16 Framerate 1248c2ecf20Sopenharmony_ci - Requested frame rate per second 1258c2ecf20Sopenharmony_ci * - __u16 Trigger 1268c2ecf20Sopenharmony_ci - Byte 0: bit 0: depth and RGB are synchronised, bit 1: external trigger 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci.. _1: 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci[1] https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/uvc-extensions-1-5 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_ci.. _2: 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ci[2] Depth Control flags specify which fields are valid: :: 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ci 0x00000001 Gain 1378c2ecf20Sopenharmony_ci 0x00000002 Exposure 1388c2ecf20Sopenharmony_ci 0x00000004 Laser power 1398c2ecf20Sopenharmony_ci 0x00000008 AE mode 1408c2ecf20Sopenharmony_ci 0x00000010 Exposure priority 1418c2ecf20Sopenharmony_ci 0x00000020 AE ROI 1428c2ecf20Sopenharmony_ci 0x00000040 Preset 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci.. _3: 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ci[3] Capture Timing flags specify which fields are valid: :: 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ci 0x00000001 Frame counter 1498c2ecf20Sopenharmony_ci 0x00000002 Optical time 1508c2ecf20Sopenharmony_ci 0x00000004 Readout time 1518c2ecf20Sopenharmony_ci 0x00000008 Exposure time 1528c2ecf20Sopenharmony_ci 0x00000010 Frame interval 1538c2ecf20Sopenharmony_ci 0x00000020 Pipe latency 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ci.. _4: 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci[4] Configuration flags specify which fields are valid: :: 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci 0x00000001 Hardware type 1608c2ecf20Sopenharmony_ci 0x00000002 SKU ID 1618c2ecf20Sopenharmony_ci 0x00000004 Cookie 1628c2ecf20Sopenharmony_ci 0x00000008 Format 1638c2ecf20Sopenharmony_ci 0x00000010 Width 1648c2ecf20Sopenharmony_ci 0x00000020 Height 1658c2ecf20Sopenharmony_ci 0x00000040 Framerate 1668c2ecf20Sopenharmony_ci 0x00000080 Trigger 1678c2ecf20Sopenharmony_ci 0x00000100 Cal count 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci.. _5: 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci[5] Camera model: :: 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci 0 DS5 1748c2ecf20Sopenharmony_ci 1 IVCAM2 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci.. _6: 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci[6] 8-bit camera hardware configuration bitfield: :: 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci [1:0] depthCamera 1818c2ecf20Sopenharmony_ci 00: no depth 1828c2ecf20Sopenharmony_ci 01: standard depth 1838c2ecf20Sopenharmony_ci 10: wide depth 1848c2ecf20Sopenharmony_ci 11: reserved 1858c2ecf20Sopenharmony_ci [2] depthIsActive - has a laser projector 1868c2ecf20Sopenharmony_ci [3] RGB presence 1878c2ecf20Sopenharmony_ci [4] Inertial Measurement Unit (IMU) presence 1888c2ecf20Sopenharmony_ci [5] projectorType 1898c2ecf20Sopenharmony_ci 0: HPTG 1908c2ecf20Sopenharmony_ci 1: Princeton 1918c2ecf20Sopenharmony_ci [6] 0: a projector, 1: an LED 1928c2ecf20Sopenharmony_ci [7] reserved 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_ci.. _7: 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci[7] Image format codes per video streaming interface: 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_ciDepth: :: 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci 1 Z16 2018c2ecf20Sopenharmony_ci 2 Z 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ciLeft sensor: :: 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci 1 Y8 2068c2ecf20Sopenharmony_ci 2 UYVY 2078c2ecf20Sopenharmony_ci 3 R8L8 2088c2ecf20Sopenharmony_ci 4 Calibration 2098c2ecf20Sopenharmony_ci 5 W10 2108c2ecf20Sopenharmony_ci 2118c2ecf20Sopenharmony_ciFish Eye sensor: :: 2128c2ecf20Sopenharmony_ci 2138c2ecf20Sopenharmony_ci 1 RAW8 214