PvaLidarHistogramSpecRec#

Defined in public/src/operator/include/OpLidarHistogramConversion.h

struct PvaLidarHistogramSpecRec#

LiDAR histogram specification.

Metadata that defines how to interpret the layout in the C dimension of the input and output tensors. A ‘pixel’ in this context is defined as the collection of all elements in the C dimension for a given 2D index i,j where i is in [0, H) and j is in [0, W).

  • packingType: The PvaLidarDataPackingType of the input tensor data. See PvaLidarDataPackingType for more details.

  • numHistPerPixel: Number of histograms within one pixel (1 to 8).

  • numBinsPerHist: Number of bins per histogram (3 to 2048).

  • numPeaksPerHist: Number of peaks to detect and output per histogram (1 to 8).

  • pixelHeaderSize: Size in elements of the header preceding the pixel data (0 to 64).

  • histHeaderSize: Size in elements of the header preceding each histogram within a pixel (0 to 16).

The packingType determines the size of one pixel element, either 16 bits (NONE) or 12 bits (RAW12).

Multiple histograms may be present at each pixel. Layout of one pixel: {[pixelHeader,] histogram0, histogram1, …, histogramN-1} where the pixelHeader size in bits is pixelHeaderSize*pixelElementBits and N = numHistPerPixel.

Layout of one histogram: {[histHeader,] bin0, bin1, bin2, …, binK-1} where histHeader size in bits is histHeaderSize*pixelElementBits, each bin is one pixel element, and K = numBinsPerHist.

Total size in bits of one input pixel is therefore: pixelBits = (pixelHeaderSize + numHistPerPixel*(histHeaderSize + numBinsPerHist))*pixelElementBits The tensor C dimension must be at least large enough to hold all pixel elements, ie C*sizeof(T) >= pixelBits/8.

The size of an output pixel depends on the output tensor and numPeaksPerHist. See pvaLidarHistogramConversionSubmit.

Note: The pixel and histogram headers (if present) contain sensor-specific information and therefore are treated as opaque data at the host API level. The implementation of this operator ignores the header data, but unpacks it into separate buffers in VMEM prior to processing the histogram data.

Note: When using RAW12 packing type, the pixelHeaderSize, histHeaderSize, and numBinsPerHist must be even numbers.

Public Members

PvaLidarDataPackingType packingType#

The packing type of the input tensor data.

int32_t numHistPerPixel#

The number of histograms per pixel.

int32_t numBinsPerHist#

The number of bins per histogram of the input.

int32_t numPeaksPerHist#

The number of peaks per histogram to detect and output.

int32_t pixelHeaderSize#

The size of the pixel header in elements.

int32_t histHeaderSize#

The size of the histogram header in elements.