cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pixfmt-meta-d4xx.rst (5964B)


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