PVA Solutions#
The PVA Solutions project offers source code and samples for optimized PVA operators, designed to accelerate application development across a diverse range of domains. Utilize the code as is, or customize it to suit your specific requirements.
PVA Operator C APIs can be seamlessly integrated with cuPVA and NVCV APIs to develop high-performance PVA applications. These operators include both host and device code and can be scheduled on the PVA for execution using cuPVA Stream and Scheduling Host APIs. For detailed information on the cuPVA APIs, refer to the PVA SDK documentation.
Operators use NVCV Tensor data structures as input and output data containers. NVCV APIs are part of the NVIDIA CV-CUDA™ open-source project, which can be found at: CVCUDA/CV-CUDA.
The PVA Solutions repository includes the CV-CUDA project as a submodule to build and utilize the NVCV APIs. For detailed information on the NVCV APIs, refer to the CV-CUDA Documentation and the repository.
A sample application is provided to demonstrate the usage of the operators.
Release Notes#
PVA Solutions v0.5.0#
Automotive Radar Processing Pipeline and Operators:
RadarPipeline (8T8R): A new complete radar processing pipeline for an 8-transmitter, 8-receiver FMCW-DDMA MIMO radar configuration. Produces a point cloud with polar (range, radial velocity, azimuth, elevation) and Cartesian (X, Y, Z) coordinates from raw ADC samples. Both the existing 4T4R and the new 8T8R pipelines are now exposed through a unified
IRadarPipelineinterface.2 New Standard Radar Operators:
SnapshotExtraction: Performs Doppler-Division Multiplexing (DDM) disambiguation and gathers the virtual-antenna snapshot for each detection.
DOA Bartlett Beamforming: Estimates azimuth and elevation via Bartlett beamforming over a precomputed azimuth × elevation grid; supports arbitrary antenna geometries through external steering vectors.
2 New Custom Radar Operators for 8-transmitter, 8-receiver FMCW-DDMA radar sensor configuration:
DOA 2D Angle FFT: Estimates azimuth and elevation via a 2D FFT over the virtual antenna aperture.
TargetProcessing: Converts detected targets from (range-bin, Doppler-bin, azimuth, elevation) to physical units with range-velocity decoupling and Cartesian conversion.
Enhancements to existing radar operators:
RadarRangeFFT and RadarDopplerFFT: Added mixed-radix support (radix-3 and radix-5) to enable additional sample and chirp counts beyond powers of two.
RadarDopplerFFT: Added
[rangeBins][dopplerBins][Rx]output layout, optimized for the 8T8R pipeline’s snapshot-gathering access pattern.RadarNCI: Added support for non-power-of-2 Doppler folds and Rx channels.
RadarCFAR: Added GO-CFAR and SO-CFAR algorithm variants and range-adaptive PFA (probability of false alarm) scaling. Removed input row/column sum restrictions through internal overflow handling.
LiDAR Processing:
LidarHistogramConversion: A new operator that converts per-pixel LiDAR histogram data into range, Cartesian XYZ, and reflectance outputs.
3 New Image Processing and Optimization Operators:
CCL: Connected Component Labeling on binary images with 4- or 8-connectivity.
HOG: Histogram of Oriented Gradients feature extraction, commonly used for pedestrian detection and shape description.
FloydWarshall: All-pairs shortest-path computation on weighted graphs without negative cycles.
Enhancements to Existing Image Processing Operators:
FAST corner detector: Top-K keypoint selection.
Brute Force Matcher: Support for up to 4K descriptors.
DL Inference: Added YOLOv26s detection model support.
PVA Solutions v0.4.0#
CUDA Stream Submission Support: PVA operators can now be directly submitted to CUDA streams for seamless integration with CUDA-based processing pipelines, enabling heterogeneous GPU-PVA workflows with unified stream management. Requires PVA SDK 2.7.0 or later, Jetpack 7.0 or later, and DriveOS 7.0 or later (PVA driver version 2007+).
Automotive Radar Processing Pipeline and Operators:
RadarPipeline: A complete radar processing pipeline for a 4-transmitter, 4-receiver FMCW-DDM radar sensor configuration. The pipeline generates point cloud output (velocity, range, azimuth, elevation, and X, Y, Z coordinates) from raw radar data (ADC samples). by combining standard operators with sensor-specific custom operators.
4 Standard Radar Operators:
RangeFFT: Performs range FFT on the fast time dimension of raw radar data.
DopplerFFT: Performs Doppler FFT on the slow time dimension to generate a range-doppler map.
NCI: Performs non-coherent integration on a range-doppler map to improve SNR.
CFAR: Performs Constant False Alarm Rate (CFAR) target detection on a range-doppler map.
2 Custom Radar Operators for 4-transmitter, 4-receiver FMCW-DDM radar sensor configuration:
PeakDetection: Performs target peak detection on a range-doppler map using noise estimates.
DOAProcessing: Performs Direction of Arrival (DOA) estimation to compute target angles and generates point cloud output.
6 New Image Processing and Computer Vision Operators:
BoxFilter: Smooths an image by averaging pixel values within a square neighborhood.
Conv2d: Performs 2D convolution on an image with a provided kernel.
GaussianPyramid: Extracts downscaled versions of an image using Gaussian smoothing and downsampling.
ImageFlip: Flips an image horizontally, vertically, or both directions.
ORBDescExtractor: Extracts rotation-invariant 256-bit ORB (rBRIEF) binary descriptors from pre-detected keypoints.
Remap: Applies a generic geometric transformation to an image using a coordinate mapping lookup table.
2 New DL Inference Samples: ResNet50 classification and YOLOv5s detection samples added on top of existing Swin-T classification sample.
PVA Solutions v0.3.0#
11 New Operators:
BackgroundSubtractor: Separates the foreground objects from the background image.
BilateralFilter: Smooths an image using Bilateral Filter.
BlurFilterROI: Applies blur filter to a set of image regions.
BruteForceMatcher: Finds the closest reference descriptor for every query descriptor.
CannyEdgeDetector: Performs the Canny Edge Detection on an Image, excluding edge hysteresis.
DistanceTransform: Calculates the distance to the closest on-pixel for each off-pixel of a binary image.
HistogramEqualization: Adjusts image contrast using the histogram.
ImageStats: Computes various statistics for an image.
DLInference: Runs ONNX models using the network function generated by
pva-onnx-compilerand the kernel library. Thepva-onnx-compilerand kernel library are currently in early development, with limited operator support.MedianFilter: Runs a 2D median filter over an image.
WarpPerspective: Warps an image to correct perspective distortion.
2 New Device Primitives:
Sort: Sorts a given array.
Sort with payload: Sorts a given array and associated payload.
Utility functions for wrapping and importing CUDA and NvSci buffers as NVCV tensors and images.
PVA Solutions v0.2.0#
7 New Operators:
BatchSVD: Performs batch Singular Value Decomposition.
BlToPl: Converts block linear format to pitch linear format.
ConvertImageFormat: Performs image format conversions.
FastCorner: Detects corners in images using the FAST algorithm.
GaussianFilter: Applies Gaussian blur to images.
ImageBlend: Blends multiple images together.
ImageResize: Resizes images to specified dimensions.
Device Primitives:
2D Convolution
QNX Support: Added support for building for QNX OS.
Pre-built device target binaries: Build and run PVA Solutions on hardware without the Synopsys ASIP Programmer.
Note
To customize the kernels and compile for hardware, the ASIP Programmer is needed.
PVA Solutions v0.1.0#
7 Image Processing / Deep Learning Operators with C APIs.
CornerSubPix: Refines the corner locations to sub-pixel accuracy.
DepthToSpace: Rearranges data from depth into blocks of spatial data.
ImageHistogram: Computes the histogram of an image.
MinMaxLoc: Finds the minimum and maximum values with their locations.
MixChannels: Splits and merges image channels.
Morphology: Performs morphological transformations such as erosion and dilation.
TemplateMatching: Finds the location of a template image within a larger image.
Sample Applications: Practical examples demonstrating the usage of the operators.