Versatility: Supports a wide range of neural network models.
Hardware Acceleration: Optimized for AMD Versal hardware, ensuring high performance.
Easy Integration: Compatible with standard GStreamer pipelines.
VART and ONNX Runtime Support: Compatible with both VART and ONNX Runtime (CPU/Vitis-AI EP) inference engines.
CPU Subgraph Support: Extends model support to mixed execution — NPU-offloaded subgraphs alongside CPU subgraphs.
Pre-Processing: Uses VvasCore’s ImageProcess module for scaling, color space conversion, cropping, and normalization.
Post Processing: Uses VvasCore’s PostProcess module for interpreting the inference output and transforming it to meaningful information.
Wide Input Format Support: Handles a broad spectrum of input video formats.
VART Zero-Copy: Uses zero-copy data transfers between preprocessing and hardware accelerators for optimal latency with VART backend runtime.
DMA-BUF Input: Accepts DMA-BUF buffers from upstream elements (for example,
v4l2src io-mode=dmabuf-import). When HW pre-processing is enabled or when the runtime is VART with HW input tensor, the proposed allocator exports DMA-BUF file descriptors so capture sources can write directly into XRT memory. See vvas_xinfer Buffer Allocation Strategies for the full negotiation matrix.Multi-level and Cascade Inference: Supports multi-level inference pipelines for complex analytics tasks.
Inference Metadata: Uses
GstInferenceMetato store and attach inference results to GstBuffer.Profiler Support: Built-in profiling capabilities to monitor performance.
Batch Support: Capable of processing multiple frames in a single batch for improved throughput with VART backend runtime.
VART Post-Processing: Allows integration of newly added VART post-processing libraries for various post process operations (Softmax/NMS etc).
The vvas_xinfer plug-in leverages the VvasCore's ImageProcess module for pre-processing tasks. This module handles essential pre-processing functions including scaling, color space conversion, cropping, and normalization. Pre-processing uses the hardware image_processing kernel through libvvas_image_process_hw_lib.so unless you supply a compatible custom image-process library via configuration.