RadarSnapshotExtraction#

Functions#

NVCVStatus pvaSnapshotExtractionCreate(NVCVOperatorHandle *handle, NVCVTensorRequirements const *const foldedDetectionListTensorRequirements, NVCVTensorRequirements const *const ddmDopplerOffsetsTensorRequirements, NVCVTensorRequirements const *const nciRxTensorRequirements, NVCVTensorRequirements const *const rangeDopplerMapTensorRequirements, NVCVTensorRequirements const *const detectionListTensorRequirements, NVCVTensorRequirements const *const snapshotsTensorRequirements, NVCVTensorRequirements const *const calibrationWeightsTensorRequirements, PVASnapshotExtractionParams const *const params)

Constructs an instance of the Snapshot Extraction operator.

NVCVStatus pvaSnapshotExtractionSubmit(NVCVOperatorHandle handle, cudaStream_t stream, NVCVTensorHandle const detectionCount, NVCVTensorHandle const foldedDetectionList, NVCVTensorHandle const ddmDopplerOffsets, NVCVTensorHandle const nciRx, NVCVTensorHandle const rangeDopplerMap, NVCVTensorHandle const calibrationWeights, NVCVTensorHandle detectionList, NVCVTensorHandle snapshots)

Submits the Snapshot Extraction operator to a CUDA stream.

NVCVStatus pvaSnapshotExtractionSubmit(NVCVOperatorHandle handle, cupvaStream_t stream, NVCVTensorHandle const detectionCount, NVCVTensorHandle const foldedDetectionList, NVCVTensorHandle const ddmDopplerOffsets, NVCVTensorHandle const nciRx, NVCVTensorHandle const rangeDopplerMap, NVCVTensorHandle const calibrationWeights, NVCVTensorHandle detectionList, NVCVTensorHandle snapshots)

Submits the Snapshot Extraction operator to a cuPVA stream.

Functions#

NVCVStatus pvaSnapshotExtractionCreate(
NVCVOperatorHandle *handle,
NVCVTensorRequirements const *const foldedDetectionListTensorRequirements,
NVCVTensorRequirements const *const ddmDopplerOffsetsTensorRequirements,
NVCVTensorRequirements const *const nciRxTensorRequirements,
NVCVTensorRequirements const *const rangeDopplerMapTensorRequirements,
NVCVTensorRequirements const *const detectionListTensorRequirements,
NVCVTensorRequirements const *const snapshotsTensorRequirements,
NVCVTensorRequirements const *const calibrationWeightsTensorRequirements,
PVASnapshotExtractionParams const *const params,
)#

Constructs an instance of the Snapshot Extraction operator.

This operator performs DDM (Doppler Division Multiplexing) disambiguation and gathers snapshots from the Range-Doppler map for detected targets.

Limitations:

 The maximum number of detections is 8192.
 The only valid numTx X numRx configurations are 4x4 and 8x8.
 The maximum number of range bins is 512.
 The maximum number of doppler bins is 512 and the minimum number of doppler bins is 4.
 The valid number of doppler fold should be greater than or equal to the number of Tx antennas and less than or equal to 16.
 The valid number of doppler fold should be able to divide the number of doppler bins evenly.
 The maximum number of doppler folds is 16 and the minimum number of doppler folds is 4.

Parameters:
  • handle[out] Where the operator instance handle will be written to.

    • Must not be NULL.

  • foldedDetectionListTensorRequirements[in] Folded Detection List tensor requirements

    • Data Layout: [HW] — H: number of detections (numDetections); W: 2 (rangeIdx, foldedDopplerIdx)

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_S32

  • ddmDopplerOffsetsTensorRequirements[in] DDM Doppler Offsets tensor requirements

    • Data Layout: [W] — W: number of Doppler folds (numDopplerFolds)

    • Rank: 1

    • Data Type: NVCV_DATA_TYPE_F32

  • nciRxTensorRequirements[in] nciRx tensor requirements (magnitude accumulated over Rx channels)

    • Data Layout: [HW] — H: number of range bins (numRangeBins); W: number of Doppler bins (numDopplerBins)

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_U32

  • rangeDopplerMapTensorRequirements[in] Range-Doppler Map tensor requirements

    • Data Layout: [HCW] or [NHCW] (with N = 1). If rangeDopplerFormat is PVA_DOPPLER_FFT_OUTPUT_LAYOUT_RANGE_RX_DOPPLER: H: number of range bins (numRangeBins) C: number of Rx channels (numRx) W: number of Doppler bins (numDopplerBins) If rangeDopplerFormat is PVA_DOPPLER_FFT_OUTPUT_LAYOUT_RANGE_DOPPLER_RX: H: number of range bins (numRangeBins) C: number of Doppler bins (numDopplerBins) W: number of Rx channels (numRx)

    • Rank: 3 for [HCW]; 4 for [NHCW] (only when N = 1)

    • Data Type: NVCV_DATA_TYPE_2S32 (Complex SQ11.20)

  • detectionListTensorRequirements[in] Range-Doppler Detection List (unfolded) tensor requirements

    • Data Layout: [HW] — H: number of detections (numDetections); W: 2 (rangeIdx, dopplerIdx)

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_S32

  • snapshotsTensorRequirements[in] Snapshots tensor requirements

    • Data Layout: [CHW] — C: number of detections (numDetections); H: number of Tx antennas; W: number of Rx antennas

    • Rank: 3

    • Data Type: NVCV_DATA_TYPE_2S32 (Complex SQ11.20)

  • calibrationWeightsTensorRequirements[in] Calibration Weights tensor requirements (optional)

    • Data Layout: [HW] — H: number of Tx antennas (numTx); W: number of Rx antennas (numRx)

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_2S32 (Complex Q28 fixed-point)

    • Description: Can be NULL to use DDMA weights instead of calibration weights.

  • params[in] Pointer to the SnapshotExtraction parameters. PVASnapshotExtractionParams.

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null or some parameter is outside valid range.

  • NVCV_ERROR_OUT_OF_MEMORY – Not enough memory to create the operator.

  • NVCV_ERROR_INVALID_IMAGE_FORMAT – Image format is invalid.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus pvaSnapshotExtractionSubmit(
NVCVOperatorHandle handle,
cudaStream_t stream,
NVCVTensorHandle const detectionCount,
NVCVTensorHandle const foldedDetectionList,
NVCVTensorHandle const ddmDopplerOffsets,
NVCVTensorHandle const nciRx,
NVCVTensorHandle const rangeDopplerMap,
NVCVTensorHandle const calibrationWeights,
NVCVTensorHandle detectionList,
NVCVTensorHandle snapshots,
)#

Submits the Snapshot Extraction operator to a CUDA stream.

Note

CUDA stream support requirements:

  • PVA SDK 2.7.0 or later

  • Jetpack 7 or later

  • DriveOS 7 or later

  • x86 Emulator is not supported

Parameters:
  • handle[in] Handle to the operator.

    • Must not be NULL.

  • stream[in] Handle to a valid CUDA stream.

  • detectionCount[in] Input tensor: Detection Count Data Layout: [W] where W=1 Data Type: NVCV_DATA_TYPE_S32

  • foldedDetectionList[in] Input tensor: Folded Detection List Data Layout: [HW] where H=numDetections, W=2 [rangeIdx, foldedDopplerIdx] Data Type: NVCV_DATA_TYPE_S32

  • ddmDopplerOffsets[in] Input tensor: DDM Doppler Offsets Data Layout: [W] where W=numDopplerFolds Data Type: NVCV_DATA_TYPE_F32

  • nciRx[in] Input tensor: nciRx (Magnitude accumulated over Rx channels) Data Layout: [HW] where H=numRangeBins, W=numDopplerBins Data Type: NVCV_DATA_TYPE_U32

  • rangeDopplerMap[in] Input tensor: Range-Doppler Map Data Layout: [HCW], or [NHCW] only when N = 1 If rangeDopplerFormat is PVA_DOPPLER_FFT_OUTPUT_LAYOUT_RANGE_RX_DOPPLER: H: Number of range bins. C: Number of RX channels. W: Number of Doppler bins. If rangeDopplerFormat is PVA_DOPPLER_FFT_OUTPUT_LAYOUT_RANGE_DOPPLER_RX: H: Number of range bins. C: Number of Doppler bins. W: Number of RX channels. Data Type: NVCV_DATA_TYPE_2S32 (Complex SQ11.20)

  • calibrationWeights[in] Input tensor: Calibration Weights (optional) Data Layout: [HW] where H=numTx, W=numRx Data Type: NVCV_DATA_TYPE_2S32 (Complex Q28 fixed-point) Note: Can be NULL if useCalibrationWeights=false

  • detectionList[out] Output tensor: Range-Doppler Detection List (unfolded) Data Layout: [HW] where H=numDetections, W=2 [rangeIdx, dopplerIdx] Data Type: NVCV_DATA_TYPE_S32

  • snapshots[out] Output tensor: Snapshots Data Layout: [CHW] where C=numDetections, H=numTxAntennas, W=numRxAntennas Data Type: NVCV_DATA_TYPE_2S32 (Complex SQ11.20)

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus pvaSnapshotExtractionSubmit(
NVCVOperatorHandle handle,
cupvaStream_t stream,
NVCVTensorHandle const detectionCount,
NVCVTensorHandle const foldedDetectionList,
NVCVTensorHandle const ddmDopplerOffsets,
NVCVTensorHandle const nciRx,
NVCVTensorHandle const rangeDopplerMap,
NVCVTensorHandle const calibrationWeights,
NVCVTensorHandle detectionList,
NVCVTensorHandle snapshots,
)#

Submits the Snapshot Extraction operator to a cuPVA stream.

Parameters:
  • handle[in] Handle to the operator.

    • Must not be NULL.

  • stream[in] Handle to a valid cuPVA stream.

  • detectionCount[in] Input tensor: Detection Count Data Layout: [W] where W=1 Data Type: NVCV_DATA_TYPE_S32

  • foldedDetectionList[in] Input tensor: Folded Detection List Data Layout: [HW] where H=numDetections, W=2 [rangeIdx, foldedDopplerIdx] Data Type: NVCV_DATA_TYPE_S32

  • ddmDopplerOffsets[in] Input tensor: DDM Doppler Offsets Data Layout: [W] where W=numDopplerFolds Data Type: NVCV_DATA_TYPE_F32

  • nciRx[in] Input tensor: nciRx (Magnitude accumulated over Rx channels) Data Layout: [HW] where H=numRangeBins, W=numDopplerBins Data Type: NVCV_DATA_TYPE_U32

  • rangeDopplerMap[in] Input tensor: Range-Doppler Map Data Layout: [HCW], or [NHCW] only when N = 1 If rangeDopplerFormat is PVA_DOPPLER_FFT_OUTPUT_LAYOUT_RANGE_RX_DOPPLER: H: Number of range bins. C: Number of RX channels. W: Number of Doppler bins. If rangeDopplerFormat is PVA_DOPPLER_FFT_OUTPUT_LAYOUT_RANGE_DOPPLER_RX: H: Number of range bins. C: Number of Doppler bins. W: Number of RX channels. Data Type: NVCV_DATA_TYPE_2S32 (Complex SQ11.20)

  • calibrationWeights[in] Input tensor: Calibration Weights (optional) Data Layout: [HW] where H=numTx, W=numRx Data Type: NVCV_DATA_TYPE_2S32 (Complex Q28 fixed-point) Note: Can be NULL if useCalibrationWeights=false

  • detectionList[out] Output tensor: Range-Doppler Detection List (unfolded) Data Layout: [HW] where H=numDetections, W=2 [rangeIdx, dopplerIdx] Data Type: NVCV_DATA_TYPE_S32

  • snapshots[out] Output tensor: Snapshots Data Layout: [CHW] where C=numDetections, H=numTxAntennas, W=numRxAntennas Data Type: NVCV_DATA_TYPE_2S32 (Complex SQ11.20)

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.