2.13.2. V4L2_META_FMT_D4XX (‘D4XX’)¶
Intel D4xx UVC 攝像頭元資料
2.13.2.1. 描述¶
Intel D4xx(D435、D455 及其他)攝像頭在其 UVC 有效負載頭部中包含每幀元資料,遵循 Microsoft(R) UVC 擴充套件提案 [1]。這意味著,在標準 UVC 頭部之後的私有 D4XX 元資料以塊的形式組織。D4XX 攝像頭實現了 Microsoft 提出的幾種標準塊型別以及幾種專有塊型別。支援的標準元資料型別包括 MetadataId_CaptureStats(ID 3)、MetadataId_CameraExtrinsics(ID 4)和 MetadataId_CameraIntrinsics(ID 5)。有關其描述,請參閱 [1]。本文件描述了 D4xx 攝像頭使用的專有元資料型別。
V4L2_META_FMT_D4XX 緩衝區遵循 V4L2_META_FMT_UVC 的元資料緩衝區佈局,唯一的區別是它還包含專有的有效負載頭部資料。D4xx 攝像頭使用批次傳輸,每幀只發送一個有效負載,因此它們的頭部不能大於 255 位元組。
本文件實現了 Intel 配置版本 3 [9]。
以下是 D4xx 攝像頭使用的專有 Microsoft 風格元資料型別,所有欄位均為小端序
欄位 |
描述 |
|---|---|
深度控制 |
|
__u32 ID |
0x80000000 |
__u32 Size |
大小(位元組),包含 ID(所有協議版本:60) |
__u32 Version |
本結構的版本。本文件涵蓋版本 1、2 和 3。新增新欄位時,版本號將遞增。 |
__u32 Flags |
標誌位掩碼:請參閱 [2] 下文 |
__u32 Gain |
增益值(內部單位),與用於捕獲幀的 V4L2_CID_GAIN 控制相同 |
__u32 Exposure |
曝光時間(微秒),用於捕獲幀 |
__u32 Laser power |
雷射 LED 功率 0-360,用於深度測量 |
__u32 AE mode |
0: 手動;1: 自動曝光 |
__u32 Exposure priority |
曝光優先順序值:0 - 恆定幀率 |
__u32 AE ROI left |
AE 感興趣區域的左邊界(所有 ROI 值均以畫素為單位,介於 0 和最大寬度或高度之間) |
__u32 AE ROI right |
AE 感興趣區域的右邊界 |
__u32 AE ROI top |
AE 感興趣區域的上邊界 |
__u32 AE ROI bottom |
AE 感興趣區域的下邊界 |
__u32 Preset |
預設選擇器值,預設值:0,除非使用者更改 |
__u8 Emitter mode (v3 only) (__u32 Laser mode for v1) [8] |
0: 關,1: 開,與 v1 中的 __u32 Laser 模式相同 |
__u8 RFU byte (v3 only) |
備用位元組,供將來使用 |
__u16 LED Power (v3 only) |
LED 功率值 0-360 (F416 SKU) |
捕獲時序 |
|
__u32 ID |
0x80000001 |
__u32 Size |
大小(位元組),包含 ID(所有協議版本:40) |
__u32 Version |
本結構的版本。本文件對應版本 xxx。新增新欄位時,版本號將遞增。 |
__u32 Flags |
標誌位掩碼:請參閱 [3] 下文 |
__u32 Frame counter |
單調遞增計數器 |
__u32 Optical time |
從幀開始到幀中間的微秒時間 |
__u32 Readout time |
用於讀取幀的微秒時間 |
__u32 Exposure time |
幀曝光時間(微秒) |
__u32 Frame interval |
微秒 = 1000000 / 幀率 |
__u32 Pipe latency |
從幀開始到 USB 緩衝區資料寫入的微秒時間 |
配置 |
|
__u32 ID |
0x80000002 |
__u32 Size |
大小(位元組),包含 ID (v1:36, v3:40) |
__u32 Version |
本結構的版本。本文件對應版本 xxx。新增新欄位時,版本號將遞增。 |
__u32 Flags |
標誌位掩碼:請參閱 [4] 下文 |
__u8 Hardware type |
攝像頭硬體版本 [5] |
__u8 SKU ID |
攝像頭硬體配置 [6] |
__u32 Cookie |
內部同步 |
__u16 Format |
影像格式程式碼 [7] |
__u16 Width |
寬度(畫素) |
__u16 Height |
高度(畫素) |
__u16 Framerate |
每秒請求幀率 |
__u16 Trigger |
位元組 0:位 0:深度和 RGB 同步,位 1:外部觸發 |
__u16 Calibration count (v3 only) |
校準計數器,請參閱 [4] 下文 |
__u8 GPIO input data (v3 only) |
GPIO 讀取,請參閱 [4] 下文(從 FW 5.12.7.0 開始支援) |
__u32 Sub-preset info (v3 only) |
子預設選擇資訊,請參閱 [4] 下文 |
__u8 reserved (v3 only) |
RFU 位元組。 |
[1] https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/uvc-extensions-1-5
[2] 深度控制標誌指定哪些欄位有效
0x00000001 Gain
0x00000002 Exposure
0x00000004 Laser power
0x00000008 AE mode
0x00000010 Exposure priority
0x00000020 AE ROI
0x00000040 Preset
0x00000080 Emitter mode
0x00000100 LED Power
[3] 捕獲時序標誌指定哪些欄位有效
0x00000001 Frame counter
0x00000002 Optical time
0x00000004 Readout time
0x00000008 Exposure time
0x00000010 Frame interval
0x00000020 Pipe latency
[4] 配置標誌指定哪些欄位有效
0x00000001 Hardware type
0x00000002 SKU ID
0x00000004 Cookie
0x00000008 Format
0x00000010 Width
0x00000020 Height
0x00000040 Framerate
0x00000080 Trigger
0x00000100 Cal count
0x00000200 GPIO Input Data
0x00000400 Sub-preset Info
[5] 攝像頭型號
0 DS5
1 IVCAM2
[6] 8 位攝像頭硬體配置位域
[1:0] depthCamera
00: no depth
01: standard depth
10: wide depth
11: reserved
[2] depthIsActive - has a laser projector
[3] RGB presence
[4] Inertial Measurement Unit (IMU) presence
[5] projectorType
0: HPTG
1: Princeton
[6] 0: a projector, 1: an LED
[7] reserved
[7] 各影片流介面的影像格式程式碼
深度
1 Z16
2 Z
左側感測器
1 Y8
2 UYVY
3 R8L8
4 Calibration
5 W10
魚眼感測器
1 RAW8
[8] “雷射模式”在版本 3 中被替換為三個不同的欄位。“雷射”已更名為“發射器”,因為攝像頭投影儀有多種技術。由於我們有另一個“雷射功率”欄位,我們引入了“LED 功率”作為額外的發射器。
- “雷射模式”__u32 欄位已拆分為::
1 __u8 Emitter mode 2 __u8 RFU byte 3 __u16 LED Power
這是版本 1 和版本 3 之間的更改。所有版本 1、2 和 3 都與相同的資料格式向後相容,並且都受支援。有關哪些屬性有效,請參閱 [2]。
[9] LibRealSense SDK 元資料來源: https://github.com/IntelRealSense/librealsense/blob/master/src/metadata.h