The ADSD3100 and ADSD3030 generate raw depth data which is processed using ADI's proprietary depth compute pipeline. The user is able to modify some of the depth compute parameters to tune performance to a specific application.
While running the SDK, one of the inputs for initializing the camera is an ini file. This file contains control to depth compute parameters as well as ADSD3500 control (only enabled if used).
For example:
DEPTH COMPUTE PARAMETERS (Recommended Settings)
ADSD3500 Configuration Parameters (Depends on mode)
Name | Unit | Function | Range | Notes |
---|---|---|---|---|
abThreshMin | - | Per-frequency active brightness invalidation threshold. Any pixel with at least one per-frequency active brightness value below abThreshMin will have an invalid depth value. To turn off per-frequency active brightness invalidation, set abThreshMin=0. | AB output bitwidth (16-bit = 0 – 65,535) | ADSD3500 Command: SET AB INVALIDATION THRESHOLD |
| - | | | N/A |
confThresh | degrees | Phase unwrapping confidence invalidation threshold. Any pixel with a phase unwrapping confidence value larger than confThresh will have an invalid depth value. To turn off, set confThresh to 360 | 0 – 360 | ADSD3500 Command: SET CONFIDENCE THRESHOLD |
radialThreshMin | mm | Minimum distance radial distance invalidation threshold. Any pixel with radial depth less than radialThreshMin is invalidated | ADSD3500 Command: SET RADIAL THRESHOLD MIN | |
radialThreshMax | mm | Maximum distance radial distance invalidation threshold. Any pixel with radial depth higher than radialThreshMin is invalidated | ADSD3500 Command: SET RADIAL THRESHOLD MAX | |
jblfApplyFlag | bool | Enable or Disable JBLF filter (Noise reduction). jblfApplyFlag=0 disables filter. jblfApplyFlag=1 enables filter. | [0,1] | ADSD3500 Command: ENABLE/DISABLE JBLF FILTER |
jblfWindowSize | pixel | Select JBLF filter window size. Size of kernel is set to jblfWindowSize pixels x jblfWindowSize pixels. Increasing the size will further reduce noise at the expense of computation cost (compute power). | [3, 5, 7] | ADSD3500 Command: SET JBLF FILTER SIZE |
jblfGaussianSigma | pixel | Noise reduction filter spatial Gaussian kernel width. Defines the width of the Gaussian kernel in the noise reduction filter. Setting a small value (such as 0.1) effectively disables the noise reduction. Setting a value much larger than jblfWindowSize (such as 100) provides the largest amount of noise reduction (increases depth range) at the expense of a blurrier depth image. | N/A to the ADSD3500 | |
jblfExponentialTerm | Noise reduction filter edge preservation strength. Defines the amount of depth edge preservation in the noise reduction filter. Set jblfExponentialTerm=0 to disable edge preservation. Set large value to preserve more depth edges. | N/A to the ADSD3500 | ||
jblfMaxEdge | Noise reduction filter edge invalidation threshold. Defines the depth “edgeness” above which a pixel depth value is invalid. If a pixel per-frequency active brightness is below jblfABThreshold, jblfMaxEdge is set to infinity for that pixel, which disables edge invalidation for that pixel | N/A to the ADSD3500 | ||
jblfABThreshold | See jblfMaxEdge. | N/A to the ADSD3500 | ||
headerSize | Embedded header size (RAW8 / bytes). It can be either 0 or 128 | |||
deltaCompEnable | Instructs the depth compute library to Delta de-compression the data from the imager. 0 - Data is already decompressed ;1 - decompress the data from the imager. | Consumed by depth compute library | ||
inputFormat | MIPI input data from from the ADSD3500. See inputFormat | Consumed by depth compute library | ||
depthComputeIspEnable | Instructs depth compute library whether it is ISP use case .1 - depth/phase is computed using ADSD3500; 0 - Depth is computed using depth compute library. | Consumed by depth compute library | ||
partialDepthEnable | Instructs the depth compute library whether is a full depth use case or partial depth use case .1- Phase unwrapping is done using depth compute library (MP resolution);0 - depth is computed using ADSD3500 (QMP resolution). Radial to XYZ is done using depth compute library | Consumed by depth compute library and ADSD3500 Command: SET IMAGER MODE COMMAND (bits 0 and 3) | ||
interleavingEnable | Instructs the ADSD3500 to generated interleaved data on MIPI or use virtual channels. See interleavingEnable | ADSD3500 Command: SET IMAGER MODE COMMAND (bit 1) | ||
bitsInPhaseOrDepth | Instructs the ADSD3500 how many bits to use for the phase or depth frames. See bitsInPhaseOrDepth | ADSD3500 Command: SET IMAGER MODE COMMAND (bits 6:4) | ||
bitsInConf | Instructs the ADSD3500 how many bits to use for Confidence data or to disable Confidence data. See bitsInConf | ADSD3500 Command: SET IMAGER MODE COMMAND (bits 11:10) | ||
bitsInAB | Instructs the ADSD3500 how many bits to use for AB data. See bitsInAB | ADSD3500 Command: SET IMAGER MODE COMMAND (bits 9:7) | ||
phaseInvalid | Instructs depth compute library to invalidate the pixel based on this value. It is introduced to make depth compute library in line with ADSD3500 | Consumed by depth compute library | ||
xyzEnable | bool | Enables generation of XYZ frames by depth compute library. 0 - disable generation of XYZ frames; 1 - enable generation of XYZ frames | Consumed by depth compute library |
Instructs the ADSD3500 to generated interleaved data on MIPI or use virtual channels.
Instructs the ADSD3500 how many bits to use for the phase or depth frames.
Instructs the ADSD3500 how many bits to use for Confidence data or to disable Confidence data.
Instructs the ADSD3500 how many bits to use for AB data.