HOME
Shop
  • English
  • 简体中文
HOME
Shop
  • English
  • 简体中文
  • Product Series

    • FPGA+ARM

      • GM-3568JHF

        • Introduction

          • GM-3568JHF Introduction
        • Quick Start

          • Preface
          • Environment Setup
          • Compilation Notes
          • Flashing Guide
          • Debugging Tools
          • Software Update
          • Viewing System Information
          • Test Commands
          • Application Compilation
          • Source Code Access
        • Peripherals & Interfaces

          • USB
          • Display and Touch
          • Ethernet
          • WIFI
          • Bluetooth
          • TF-Card
          • Audio
          • Serial Port
          • CAN
          • RTC
        • Application Development

          • UART Read/Write Demo
          • Key Detection Demo
          • LED Blink Demo
          • MIPI Screen Detection Demo
          • Read USB Device Information Demo
          • FAN Detection Demo
          • FPGA FSPI Communication Demo
          • FPGA DMA Read/Write Demo
          • GPS Debugging Demo
          • Ethernet Test Demo
          • RS485 Read/Write Demo
          • FPGA I2C Read/Write Demo
          • PN532 NFC Card-Reading Demo
          • TF Card Read/Write Demo
        • QT Development

          • ARM64 Cross-Compiler Environment Setup
          • Adding a QT Program to Boot Auto-Start
        • RKNN_NPU Development

          • RK3568 NPU Overview
          • Development Environment Setup
          • Run the Official YOLOv5 Example
        • FPGA Development

          • ARM and FPGA Communication
          • FPGA Development Manual
        • Others

          • Modifying the Root Filesystem
          • System Auto-Start Services
        • Downloads

          • Downloads
      • MB-E30P

        • Introduction

          • MB-E30P Introduction
        • Quick Start

          • Preface
          • Environment Setup
          • Compilation Instructions
          • Flashing Guide
          • Debugging Tools
          • Software Update
          • Viewing Information
          • Test Commands
          • Application Compilation
          • Source Code Acquisition
        • Peripherals & Interfaces

          • USB
          • Display and Touch
          • Ethernet
          • WIFI
          • Bluetooth
          • TF-Card
          • Audio
          • RTC
        • Application Development

          • Key Detection Demo
          • LED Blink Demo
          • MIPI Screen Detection Demo
          • Read USB Device Information Demo
          • FAN Detection Demo
          • FPGA FSPI Communication Demo
          • FPGA DMA Read/Write Demo
          • Ethernet Test Demo
          • FPGA IIC Read/Write Demo
          • PN532 NFC Card Reading Demo
          • TF Card Read/Write Demo
        • QT Development

          • ARM64 Cross-Compiler Environment Setup
          • Adding a QT Program to the Boot Auto-Start Service
        • RKNN_NPU Development

          • RK3568 NPU Overview
          • Development Environment Setup
          • Run the Official YOLOv5 Example
          • Model Conversion In Detail
          • Run Custom Models on the Board
        • FPGA Development

          • ARM and FPGA Communication
          • FPGA Development Manual
        • Others

          • Modifying the Root Filesystem
          • System Auto-Start Service
        • Downloads

          • Downloads
    • ShimetaPi

      • M4-R1

        • Introduction

          • M4-R1 Introduction
        • Quick Start

          • OpenHarmony Overview
          • Image Burning
          • Application Development Quick Start
          • Device Development Quick Start
        • Application Development

          • ArkUI

            • ArkTS Language Overview
            • UI Components - Row Container Introduction
            • UI Components - Column Container Introduction
            • UI Components - Text Component
            • UI Components - Toggle Component
            • UI Components - Slider Component
            • UI Components - Animation Component & Transition Component
          • Documentation

            • OpenHarmony Official Materials
          • Development Notes

            • Full-SDK Replacement Tutorial
            • Introducing and Using Third-Party Libraries
            • HDC Debugging
            • Restore Factory Mode via Command Line
            • Upgrade App to System Permission
          • First App

            • Build Your First ArkTS Application - HelloWorld
          • Demos

            • Serial-Debug-Assistant Application Demo
            • Writing-Board Application Demo
            • Digital Clock Application Demo
            • Wi-Fi Information Acquisition Application Demo
        • Device Development

          • Ubuntu Development

            • Environment Setup
            • Download Source Code
            • Compile Source Code
          • DevEco Device Tool

            • Tool Introduction
            • Development Environment Construction
            • Import the SDK
            • HUAWEI DevEco Tool Function Introduction
        • Kernel Peripherals & Interfaces

          • Guide
          • Device Tree Introduction
          • NAPI Introduction
          • ArkTS Introduction
          • NAPI Development Hands-on Demo
          • GPIO Introduction
          • I2C Communication
          • SPI Communication
          • PWM Control
          • UART Communication
          • TF Card (MicroSD)
          • Screen (Display)
          • Touch
          • Ethernet
          • M.2 SSD
          • Audio
          • WIFI & BT
          • Camera
        • Downloads

          • Downloads
      • M5-R1

        • Introduction

          • M5-R1 Development Docs
        • Quick Start

          • Image Burning
          • Environment Setup
          • Download Source Code
        • Peripherals & Interfaces

          • Raspberry Pi Interfaces
          • GPIO Interface
          • I2C Interface
          • SPI Communication
          • PWM Control
          • Serial Port Communication
          • TF Card
          • Display
          • Touch
          • Audio
          • RTC
          • Ethernet
          • M.2
          • MINI-PCIE
          • Camera
          • WIFI & BT
        • Downloads

          • Downloads
      • Pico-G1

        • Product Overview

          • Product Introduction
          • SDK Version Information
        • Quick Start

          • Development Environment Setup
          • Image Build
          • Image Flashing
          • System Login
          • Network Configuration
          • File Transfer
          • SDK Directory Structure
          • Deploying Your First Application
          • Deploying Your First Driver
          • Mounting an SD Card
        • Peripherals & Interfaces

          • GPIO Control
          • UART Serial Communication
          • I2C Communication
          • SPI Communication
        • MPP Media Development

          • MPP Media Processing Software
          • Image Processing Chain
          • Video Input
          • Image Encoding
        • NPU & AI

          • NPU Driver and Runtime Library Architecture
          • .xmm Model Loading
          • SVP Video Processing
          • AI Noise Reduction (AI_NR)
        • Application Samples

          • Encryption/Decryption Application
          • ADC Acquisition Application
          • Low-Power Application
          • Audio Processing Application
          • Video Encoding Application
          • Video Input Application
          • Video Graphics Subsystem (VGS) Application
          • 08 Region Overlay Application
          • 09 Intelligent Video Engine Application
          • 10 UVC Webcam Application
          • 11 All-in-One Quickstart Application
          • 12 FPN Correction Application
          • 13 Regional Motion Detection Application
          • 14 MTCNN Face Detection Application
        • Expansion Board Peripheral Examples

          • 00 - Pico Expansion Board Peripheral Examples Overview
          • 01 - OLED Display Application
          • 02 - TFT Display Application
          • 03 - MPU6050 Gyroscope Application
          • 04 - ADC Acquisition Application
          • 05 - Passive Buzzer Application
          • 06 - MQ Gas Sensor Application
          • 07 - GPS Positioning Application
          • 08 - SHT20 Temperature & Humidity Application
          • 09 - Ultrasonic Ranging Application
          • 10 - SpO2 Sensor Application
          • 11 - DC Motor Control Application
          • 12 - Servo Control Application
    • OpenHarmony

      • SC-3568HA

        • Introduction

          • SC-3568HA Overview
        • Quick Start Guide

          • OpenHarmony Overview
          • Image Flashing
          • Setting Up the Development Environment
          • Hello World Application and Deployment
        • Application Development

          • ArkUI

            • Introduction to ArkTS Language
            • Introduction to UI Components and Practical Applications (Part 1)
            • Introduction to UI Components and Practical Applications (Part 2)
            • Introduction to UI Components and Practical Applications (Part 3)
          • Expand

            • Getting Started Guide
            • Referencing and Using Third-Party Libraries
            • Application Compilation and Deployment
            • Command-Line Factory Reset
            • System Debugging -- HDC Debugging
            • APP Stability Testing
            • Chapter 7 Application Testing
        • Device Development

          • Environment Setup
          • Download Source Code
          • Compiling Source Code
        • Peripheral And Interface

          • Raspberry Pi interface
          • GPIO Interface
          • I2C Interface
          • SPI communication
          • PWM (Pulse Width Modulation) control
          • Serial port communication
          • TF Card
          • Display Screen
          • Touch
          • Audio
          • RTC
          • Ethernet
          • M.2
          • MINI-PCIE
          • Camera
          • WIFI&BT
          • Raspberry Pi expansion board
        • Downloads

          • Downloads
      • M-K1HSE

        • Introduction

          • M-K1HSE Introduction
        • Quick Start

          • Development environment construction
          • Source code acquisition
          • Compilation Notes
          • Burning Guide
        • Application Development

          • Application Development Environment Setup
          • First Application - Hello World
        • Peripherals and interfaces

          • 01 Audio
          • 02 RS485
          • 03 Display
        • System customization development

          • System transplant
          • System customization
          • Driver Development
          • System Debugging
          • OTA Update
        • Downloads

          • Downloads
    • HVS Camera

      • Quick Start

        • SDK Overview
        • Downloads
        • Your First C++ Program
        • Python Data Analysis
        • MultiVision Studio
      • Development

        • Programming Guides

          • Open Camera
          • Read Events
          • Recording & Replay
          • Event Processing (Denoising)
          • Display & Visualization
          • Tuning
          • Capture APS Image
        • Toolkit SDK

          • Hybrid Vision Toolkit
          • Quick Start
          • C++ API
          • Python API
        • Algorithm

          • Hybrid Vision Algo
          • Hybrid Vision Algo API
          • Windows Algo SDK
        • Samples Overview
        • Applications
      • Fundamentals

        • Event Camera Fundamentals
        • HVS Hybrid Vision
        • Event Visualization
        • Data Formats Reference
        • Glossary
        • Bias & Tuning
        • Video Tutorials
      • USB Cameras

        • HVS Camera Quick Start
        • Networking Capabilities

          • HVS Camera System Architecture
          • EVS Network Server
          • EVS Time Sync
          • Web Window
        • HVS Camera Compatibility Matrix
        • FAQ & Troubleshooting Guide
        • Products

          • CF-NRS1 (Lingguang No.1 Hybrid Vision Camera)
      • MIPI Modules

        • MIPI Module Quick Start
        • Carrier Boards

          • RDK X5 Carrier Board Adaptation
          • Raspberry Pi Carrier Board Adaptation
          • Digua Pi Carrier Board Adaptation
          • ShimeTai Board Carrier Board Adaptation
        • MIPI Module Compatibility Matrix
        • Products

          • EVS_003 Sensor Module
    • AI-model

      • 1684XB-32T

        • Introduction

          • AIBOX-1684XB-32 Introduction
        • Quick Start

          • First Use
          • Network Configuration
          • Disk Usage
          • Memory Allocation
          • Fan Control Strategy
          • Firmware Upgrade
          • Cross Compilation
          • Model Quantization
        • Application Development

          • Development Overview

            • Sophgo SDK Development
            • Sophgo Demo Introduction
          • Large Language Models

            • Deploying Llama3 Example
            • Sophon LLM_api_server Development
            • Deploying MiniCPM-V-2_6
            • Qwen-2-5-VL Image and Video Recognition Demo
            • Qwen3-chat Demo
            • Qwen3-Qwen Agent-MCP Development
            • Qwen3-langchain-AI Agent
          • Deep Learning

            • ResNet (Image Classification)
            • LPRNet (License Plate Recognition)
            • SAM (General Image Segmentation Foundation Model)
            • YOLOv5 (Object Detection)
            • OpenPose (Human Keypoint Detection)
            • PP-OCR (Optical Character Recognition)
        • Downloads

          • Downloads
      • 1684X-416T

        • Introduction

          • AIBOX-1684X-416 Introduction
        • Demo Quick Guide

          • ShimeTai Intelligent Monitoring Demo Quick Usage Guide
      • RDK-X5

        • Introduction

          • RDK-X5 Hardware Introduction
        • Quick Start

          • RDK-X5 Quick Start
        • Application Development

          • AI Online Model Development

            • Experiment 01 - Access Volcengine Doubao AI
            • Experiment 02 - Image Analysis
            • Experiment 03 - Multimodal Visual Analysis & Localization
            • Experiment 04 - Multimodal Image-Text Comparison
            • Experiment 05 - Multimodal Document/Table Analysis
            • Experiment 06 - Camera-based AI Visual Analysis
          • Large Language Models

            • Experiment 01 - Speech Recognition
            • Experiment 02 - Voice Conversation
            • Experiment 03 - Multimodal Image Analysis - Voice
            • Experiment 04 - Multimodal Image Comparison - Voice
            • Experiment 05 - Multimodal Document Analysis - Voice
            • Experiment 06 - Multimodal Vision Application - Voice
          • ROS2 Basics

            • Experiment 01 - Environment Setup
            • Experiment 02 - Create & Build a Workspace Package
            • Experiment 03 - Run ROS2 Topic Communication Node
            • Experiment 04 - ROS2 Camera Application
          • 40-pin IO Development

            • Experiment 01 - GPIO Output (LED Blink)
            • Experiment 02 - GPIO Input
            • Experiment 03 - Button-controlled LED
            • Experiment 04 - PWM Output
            • Experiment 05 - Serial Output
            • Experiment 06 - I2C Experiment
            • Experiment 07 - SPI Experiment
          • USB Module Usage

            • Experiment 01 - USB Voice Module Usage
            • Experiment 02 - Sound Source Localization Module
          • Machine Vision Practice

            • Experiment 01 - Open USB Camera
            • Experiment 02 - Color Recognition
            • Experiment 03 - Gesture Recognition
            • Experiment 04 - YOLOv5 Object Detection
      • RDK-S100

        • Introduction

          • RDK-S100 Hardware Introduction
        • Quick Start

          • RDK-S100 Quick Start
        • Application Development

          • AI Online Model Development

            • Experiment 01 - Access Volcengine Doubao AI
            • Experiment 02 - Image Analysis
            • Experiment 03 - Multimodal Visual Analysis & Localization
            • Experiment 04 - Multimodal Image-Text Comparison
            • Experiment 05 - Multimodal Document/Table Analysis
            • Experiment 06 - Camera-based AI Visual Analysis
          • Large Language Models

            • Experiment 01 - Speech Recognition
            • Experiment 02 - Voice Conversation
            • Experiment 03 - Multimodal Image Analysis - Voice
            • Experiment 04 - Multimodal Image Comparison - Voice
            • Experiment 05 - Multimodal Document Analysis - Voice
            • Experiment 06 - Multimodal Vision Application - Voice
          • ROS2 Basics

            • Experiment 01 - Environment Setup
            • Experiment 02 - Create & Build a Workspace Package
            • Experiment 03 - Run ROS2 Topic Communication Node
            • Experiment 04 - ROS2 Camera Application
          • 40-pin IO Development

            • Experiment 01 - GPIO Output (LED Blink)
            • Experiment 02 - GPIO Input
            • Experiment 03 - Button-controlled LED
            • Experiment 04 - PWM Output
            • Experiment 05 - Serial Output
            • Experiment 06 - I2C Experiment
            • Experiment 07 - SPI Experiment
          • USB Module Usage

            • Experiment 01 - USB Voice Module Usage
            • Experiment 02 - Sound Source Localization Module
          • Machine Vision Practice

            • Experiment 01 - Open USB Camera
            • Experiment 02 - Image Processing Basics
            • Experiment 03 - Object Detection
            • Experiment 04 - Image Segmentation
      • RK1828

        • Introduction

          • M5-182X-A1 AI Edge Box - Product Introduction
          • M5-182X-A1 Hardware Specifications
          • M5-182X-A1 Usage & Safety
        • Quick Start

          • M5-182X-A1 Image Flashing
          • RK182X Hardware Installation & Verification
          • RK182X Development Environment Quick Setup
          • RK182X SDK Overview
          • RK182X Environment Setup in Detail
          • RK182X Quick Start
          • Vendor SDK Data Extraction Record
        • Development Guide

          • ClawChips Architecture and Principles
          • SKILL User Manual
          • RK182X Series LLM Inference (RK1828 Model)
          • RK182X Series CNN Inference (RK1828 Model)
          • Model Conversion
          • RK182X AI Agent Application Development Guide
          • RK182X Industrial Anomaly Detection Application
        • SDK Reference

          • RKNN3-SDK Overview

            • RKNN3 SDK Overview
          • RKNN3-Toolkit

            • RKNN3 Toolkit Installation and Usage
          • RKLLM

            • RKLLM On-Device LLM Inference
          • RK182X Series NPU Overview and Architecture (RK1828 Model)
          • RK182X INT8 Quantized Inference Deployment
          • RK182X MPP Multimedia Framework
          • MPP Details

            • RK182X Video Decoding
            • RK182X Video Encoding
          • NPU Details

            • RKNN Model Conversion
            • RK182X NPU INT8 Quantized Inference
            • RK182X Multi-Model Parallel Inference
          • RGA Details

            • RK182X RGA 2D Graphics Acceleration
          • VPU Details

            • RK182X VPU Codec
        • Hardware Reference

          • RK182X Series Hardware Architecture Overview (RK1828 Model)
          • RK182X Pin Definitions and Multiplexing Configuration
          • RK182X Pin Definitions
          • RK182X Power Management
          • RK182X Clock and PLL Configuration
          • RK182X Clock and Frequency Configuration
        • Tutorials

          • Hello World
          • Hello RK1828 - The First Program
          • RTSP Streaming
          • RTSP Streaming + AI Analysis
          • ShiMetaPi AI Lobster One-Click Deployment
          • PaddleOCR-VL Text Recognition
          • Qwen3-1.7B LLM Text Chat
          • AI Multi-View Inspection (Qwen3-VL Wrapper)
          • YOLOv5 Object Detection
        • Downloads

          • Downloads
        • FAQ

          • FAQ
    • Core-Board

      • C-3568BQ

        • Introduction

          • C-3568BQ Overview
      • C-3588LQ

        • Introduction

          • C-3588LQ Overview
      • GC-3568JBAF

        • Introduction

          • GC-3568JBAF Overview
      • C-K1BA

        • Introduction

          • C-K1BA Overview
    • Software Platform

      • ShiMetaPi Workbench

        • Introduction

          • Product Overview
          • Core Architecture
          • Feature Entries
          • Supported Hardware
          • Release Notes
        • Quick Start

          • Install & Login
          • Connect the Device
          • Set Up the Environment
          • Connect to AIHub
          • First Inference
        • User Guide

          • Workspace Overview
          • Device Manager
          • Model Market
          • One-Click Deploy
          • Vision — SVP
          • Vision - Custom Models
          • shimeta-py IDE
          • Terminal
          • Agent Debug Assistant
          • Settings and Resources
        • FAQ

          • Installation & Login
          • Device Connection
          • Models & Deployment
          • Vision & Runtime
          • Settings & Other
      • ShimetaPi Repository

        • Introduction

          • ShimetaPi Software Repository
        • Pico G1 (GK7206)

          • Quick Start

            • Installation & First Inference
            • shimeta_infer — Image Inference
            • shimeta_camera — Real-time Camera Inference
            • SVP Scene Detection
            • File Transfer & Built-in Model Reference
            • FAQ
          • HTTP API & Python SDK

            • HTTP API Reference
      • Model Fine-tuning Platform

        • Introduction

          • Model Training Platform
        • Quick Start

          • Register & Login
          • Create Your First Model (30-Minute Quick Experience)
        • Training Guide

          • Data Preparation & Annotation
          • Training Parameter Configuration
          • Start & Monitor Training
          • Model Evaluation & Testing
        • Model Deployment

          • Export Model
          • Deploy to Edge Device

SVP Video Processing

SVP (Smart Video Processing) is the core module for smart video processing, providing a complete set of API interfaces that support intelligent analysis algorithms such as person, face, vehicle, fire/smoke, and DMS (Driver Monitoring System).

This document uses YOLOv5 person detection as an example to walk through the complete smart vision pipeline of the NPU, from model loading to inference result output.


1. Overall Architecture Overview

The GK7206 chip integrates a dedicated NPU (Neural Processing Unit) that efficiently executes convolutional neural network inference. The overall data flow is:

NPU inference architecture

Key hardware modules:

ModuleFull nameFunction
VIVideo InputReceives the raw image captured by the sensor
VPSSVideo Processing Sub-SystemImage scaling and cropping; outputs multiple resolutions
NPUNeural Processing UnitNeural network inference (convolution, pooling, activation, etc.)
VGSVideo Graphics Sub-SystemOverlays OSD information such as rectangles and text on the image
VENCVideo EncoderH.264 / H.265 video encoding
MMZMedia Memory ZoneMedia-dedicated physically contiguous memory management

2. SVP Video Development Pipeline

Before the camera image reaches the NPU, it is processed by a series of hardware modules:

Sensor -> VI -> VPSS -> Channel 0: large image (1920x1080) -> VENC (main stream) / VO (display)
                  |-> Channel 1: small image (640x360)  -> NPU inference
                  |-> Channel 2: medium image (1280x720) -> VENC (sub stream) / NPU (large-image model)

Why scale?

  • NPU models are trained at a fixed resolution (such as 640x360).
  • VPSS hardware performs the scaling automatically, without CPU involvement.
  • The scaled frames are passed to the NPU directly in physical memory, achieving zero copy.

Related code location: sample_svp_main.c:1108-1161


3. Complete SVP Video Processing Flow

3.1 Initialize the SVP Subsystem

SVP (Smart Vision Platform) is the GK7206 smart vision platform interface. It must be initialized before using the NPU:

// File: sample_svp_main.c -> sample_svp_start()

xmedia_s32 ret;

// Step 1: Initialize the SVP subsystem
ret = xmedia_svp_init();
if (ret != XMEDIA_SUCCESS) {
    printf("xmedia_svp_init error.\n");
    return XMEDIA_FAILURE;
}

Note: xmedia_svp_init() should be called only once during the application lifecycle.


3.2 Load the Model and Allocate Memory

The NPU requires dedicated physically contiguous memory to hold the model weights and intermediate computation results.

3.2.1 Configure the Model Information

Taking person detection as an example, configure the model parameters:

xmedia_svp_modules modules[8];  // Supports up to 8 models
xmedia_svp_task_cfg task_cfg;

// Configure model 0: person detection
modules[0].alg_type  = XMEDIA_SVP_ALG_TYPE_PERSON;           // Algorithm type
modules[0].load_mode = XMEDIA_SVP_MODEL_FILE;                 // Load from file
modules[0].format    = XMEDIA_SVP_INPUTDATA_FORMAT_RGB888;    // Input format
modules[0].pathname  = "./model/gnn_person_detect_640x360_rgb888hwc_v0103_20251203.bin";

task_cfg.module_num = 1;                     // This task uses 1 model
task_cfg.task_type  = XMEDIA_SVP_TASK_DETECT; // Detection task
task_cfg.modules    = modules;

Model configuration field descriptions:

FieldDescriptionOptional values
alg_typeAlgorithm categoryXMEDIA_SVP_ALG_TYPE_PERSON, XMEDIA_SVP_ALG_TYPE_FACE, XMEDIA_SVP_ALG_TYPE_CAR, etc.
load_modeLoad methodXMEDIA_SVP_MODEL_FILE (from file), XMEDIA_SVP_MODEL_MEM (from memory)
formatInput image formatXMEDIA_SVP_INPUTDATA_FORMAT_RGB888, XMEDIA_SVP_INPUTDATA_FORMAT_YUV420SP
pathnameModel file pathA .bin NPU-specific model file

3.2.2 Query Model Memory Requirements

// Query the memory sizes required by the model
xmedia_cl_mem_info model_mem_info;
ret = xmedia_cl_graph_query_model_info_from_file(
    modules[0].pathname,
    &model_mem_info,
    XMEDIA_CL_MEM_INFO
);

// model_mem_info contains:
//   worksize  - NPU workspace size (for intermediate computation)
//   inputsize - Input buffer size (to hold the input image)
//   outputsize- Output buffer size (to hold the raw inference result)

3.2.3 Allocate NPU-Private Memory

xmedia_svp_cfg svp_cfg;
xmedia_svp_get_config(&svp_cfg);

svp_cfg.reuse_type = XMEDIA_SVP_MEM_TYPE_BLOCK;  // Block reuse mode

// Allocate the workspace (used internally by the NPU; needs cache attribute)
sample_mmz_alloc_and_map_cache(
    XMEDIA_NULL, "npu_work_mem",
    &svp_cfg.workbuf_reuse_mem.phyaddr,   // Physical address
    &svp_cfg.workbuf_reuse_mem.viraddr,   // Virtual address
    svp_cfg.workbuf_reuse_mem.size         // Size
);

// Allocate the input buffer (to hold the input image data)
sample_mmz_alloc_and_map(
    XMEDIA_NULL, "npu_input_mem",
    &svp_cfg.input_reuse_mem.phyaddr,
    &svp_cfg.input_reuse_mem.viraddr,
    svp_cfg.input_reuse_mem.size
);

// Allocate the output buffer (to hold the raw inference result)
sample_mmz_alloc_and_map_cache(
    XMEDIA_NULL, "npu_output_mem",
    &svp_cfg.output_reuse_mem.phyaddr,
    &svp_cfg.output_reuse_mem.viraddr,
    svp_cfg.output_reuse_mem.size
);

// Set the memory configuration to SVP
xmedia_svp_set_config(&svp_cfg);

3.3 Create the Inference Task

With the model configuration and memory ready, create the SVP task (the model is actually loaded into the NPU at this point):

xmedia_s32 svp_handle;
ret = xmedia_svp_task_create(&svp_handle, task_cfg);
if (ret != XMEDIA_SUCCESS) {
    printf("xmedia_svp_task_create failed!\n");
    return XMEDIA_FAILURE;
}
// svp_handle is the handle for all subsequent inference operations

Core concept: A svp_handle represents a complete inference flow, including all resources such as model loading and pre/post-processing.


3.4 Set Inference Parameters

After creating the task, you can tune the inference parameters (thresholds, tracking, etc.):

// YOLOv5 detection attributes
xmedia_svp_yolov5_attr yolov5_attr;

yolov5_attr.detect_threshold     = 0.65f;   // Detection confidence threshold (targets below this are discarded)
yolov5_attr.classifier_threshold = 0.8f;    // Classifier confidence threshold
yolov5_attr.iou_threshold        = 0.5f;    // NMS IoU threshold (overlapping-box filtering)
yolov5_attr.max_target_num       = 10;      // Maximum targets per frame (no more than 50)
yolov5_attr.bytetrack_enable     = XMEDIA_TRUE;  // Enable ByteTrack object tracking
yolov5_attr.motionless_filter_enable = XMEDIA_TRUE; // Enable motion-state detection
yolov5_attr.stillness_thres      = 0.9f;    // Stillness sensitivity
yolov5_attr.movement_fps_thres   = 5;       // Consecutive-frame threshold
yolov5_attr.smart_venc_enable    = XMEDIA_FALSE; // Smart encoding
yolov5_attr.smart_ae_enable      = XMEDIA_FALSE; // Smart exposure

ret = xmedia_svp_task_set_attr(svp_handle, &yolov5_attr);

Parameter tuning suggestions:

ParameterSuggested valueEffect of raisingEffect of lowering
detect_threshold0.65More misses, fewer false positivesFewer misses, more false positives
iou_threshold0.5Keep more overlapping boxesMerge more overlapping boxes
max_target_num10Process more targets, slightly higher latencyLimit the target count, more stable performance
bytetrack_enableTRUECross-frame tracking, outputs tracker_idSingle-frame detection only, no tracking

3.5 Start the Inference Thread

After initialization, start an independent thread that enters the inference loop:

// The sample_svp_info structure holds all runtime information
sample_svp_info svp_info;
svp_info.detect_type = SAMPLE_SVP_ALG_TYPE_PERSON;
svp_info.svp_handle  = svp_handle;
svp_info.vpss_pipe   = vpss_pipe;
svp_info.vpss_ochn[1] = small_channel;  // Small-image channel
svp_info.venc_chn[1]  = venc_channel;    // Encoding channel
svp_info.big_stream   = XMEDIA_FALSE;

g_svp_start_flag = XMEDIA_TRUE;

// Create the inference thread
pthread_create(&g_svp_thread, NULL, sample_svp_proc, &svp_info);

4. Frame Acquisition and the Inference Loop

sample_svp_proc() is the main loop thread of the inference, continuously taking frames from VPSS, sending them to the NPU for inference, and processing the results.

4.1 Acquire a Camera Frame

// sample_svp_main.c -> sample_svp_proc()

while (g_svp_start_flag == XMEDIA_TRUE) {
    xmedia_video_frame_info video_frame;
    xmedia_s32 milli_sec = 20000;  // 20-second timeout

    // Acquire a small-image frame (640x360) from VPSS
    ret = xmedia_vpss_acquire_ochn_frame(
        svp_info->vpss_pipe,       // VPSS pipe
        svp_info->vpss_ochn[1],    // Output channel 1 (small image)
        &video_frame,              // Output frame info
        milli_sec                  // Timeout
    );
    if (ret != XMEDIA_SUCCESS) {
        printf("get vpss small frame failed!\n");
        continue;  // Frame acquisition failed, retry
    }

Key information in video_frame:

video_frame (xmedia_video_frame_info)
  |- frame.width            = 640
  |- frame.height           = 360
  |- frame.addr.y_phy_addr  -> Y component physical address
  |- frame.addr.uv_phy_addr -> UV component physical address
  |- frame.pixel_format     = YUV420SP
  +- pool_id                -> VB buffer pool ID

Note: The frame data is in physical memory and does not need to be copied. The NPU accesses it directly via the physical address.


4.2 Submit NPU Inference

Package the frame as NPU input and submit the inference:

    // Package the input
    xmedia_svp_task_input task_input;
    xmedia_video_frame_info frame_info[2];

    frame_info[0] = video_frame;       // Frame 0 = small image
    task_input.frame_num = 1;           // Single-frame input
    task_input.frame = frame_info;

    // If a large image is needed (e.g. license-plate recognition needs 1920x1080)
    if (svp_info->big_stream == XMEDIA_TRUE) {
        xmedia_video_frame_info video_frame_big;
        ret = xmedia_vpss_acquire_ochn_frame(
            svp_info->vpss_pipe, svp_info->vpss_ochn[2],
            &video_frame_big, milli_sec
        );
        frame_info[1] = video_frame_big;  // Frame 1 = large image
        task_input.frame_num = 2;          // Dual-frame input
    }

    // *** Core: submit inference (synchronous blocking call) ***
    xmedia_svp_yolov5_output result = {0};
    ret = xmedia_svp_task_process(
        svp_info->svp_handle,   // SVP task handle
        &task_input,            // Input frame
        &result                 // Output detection result
    );
    if (ret != XMEDIA_SUCCESS) {
        printf("xmedia_svp_task_process failed!\n");
    }

4.3 Parse the Detection Result

After inference returns, result already contains the structured detection result:

    if (result.target_num > 0) {
        xmedia_video_rect target_rect[XMEDIA_SVP_MAX_TARGET_NUM];

        for (xmedia_s32 i = 0; i < result.target_num; i++) {
            // Target bounding box (floating-point coordinates, corresponding to the 640x360 image)
            xmedia_float x1 = result.targets[i].rect.x1;
            xmedia_float y1 = result.targets[i].rect.y1;
            xmedia_float x2 = result.targets[i].rect.x2;
            xmedia_float y2 = result.targets[i].rect.y2;

            // Align to even pixels (hardware requirement)
            xmedia_s32 px1 = (xmedia_s32)roundf(x1 / 2) * 2;
            xmedia_s32 py1 = (xmedia_s32)roundf(y1 / 2) * 2;
            xmedia_s32 px2 = (xmedia_s32)roundf(x2 / 2) * 2;
            xmedia_s32 py2 = (xmedia_s32)roundf(y2 / 2) * 2;

            // Target class
            xmedia_svp_class_type cls = result.targets[i].class_type;
            // For example: XMEDIA_SVP_CLASS_TYPE_PERSON

            // Confidence (0.0 ~ 1.0)
            xmedia_float score = result.targets[i].detect_score;

            // Tracker ID (valid when ByteTrack is enabled)
            xmedia_s32 tracker_id = result.targets[i].tracker_id;

            // Motion state
            xmedia_svp_motion_state motion = result.targets[i].motion_state;
            // XMEDIA_SVP_MOTION_STATE_STATIC  = static
            // XMEDIA_SVP_MOTION_STATE_MOVING  = moving

            // Build the rectangle for drawing
            target_rect[i].x      = px1;
            target_rect[i].y      = py1;
            target_rect[i].width  = ABS(px2 - px1);
            target_rect[i].height = ABS(py2 - py1);
        }

4.4 Draw Boxes and Send to the Encoder

        // Step 1: Use the VGS hardware to draw detection boxes on the frame (red rectangles)
        sample_svp_draw(&target_rect[0], &video_frame, result);

        // Step 2 (optional): overlay OSD text information
        // Requires USE_OSD to be defined at compile time
        #ifdef USE_OSD
        xmedia_char info_text[64];
        snprintf(info_text, sizeof(info_text),
            "id[%d]scr[%.2f]cls[%.2f]mv[%d]",
            result.targets[0].tracker_id,
            result.targets[0].detect_score,
            result.targets[0].classfier_score,
            result.targets[0].motion_state);
        sample_target_osd(&video_frame, px1, py1, info_text);
        #endif

    }  // end if (result.target_num > 0)

    // Step 3: Send the frame with boxes drawn to the video encoder
    ret = xmedia_venc_send_frame(
        svp_info->venc_chn[1],
        &video_frame,
        milli_sec
    );

    // Step 4: Release the frame buffer (return it to VPSS)
    ret = xmedia_vpss_release_ochn_frame(
        svp_info->vpss_pipe,
        svp_info->vpss_ochn[1],
        &video_frame
    );

}  // end while -> back to the top of the loop, take the next frame

5. Key Data Structures

5.1 Model Configuration

// Single-model configuration (xmedia_svp.h:173-180)
typedef struct {
    xmedia_svp_model_type      load_mode;    // Load method (file/memory)
    xmedia_svp_inputdata_format format;      // Input format (RGB888/YUV420SP)
    xmedia_char               *pathname;     // Model file path
    xmedia_u8                 *buf;          // Model data in memory mode
    xmedia_u32                 len;          // Model length in memory mode
    xmedia_svp_alg_type        alg_type;     // Algorithm type
    xmedia_void               *priv;         // Private data
} xmedia_svp_modules;

// Task configuration (xmedia_svp.h:182-187)
typedef struct {
    xmedia_svp_task_type  task_type;    // Task type
    xmedia_svp_modules   *modules;      // Model array
    xmedia_u8             module_num;   // Number of models
    xmedia_void          *priv;         // Private data
} xmedia_svp_task_cfg;

5.2 Inference Input

// Task input (xmedia_svp.h:167-170)
typedef struct {
    xmedia_video_frame_info *frame;    // Frame array
    xmedia_u8                frame_num; // Frame count (1=single, 2=dual)
} xmedia_svp_task_input;

5.3 Detection Result

// YOLOv5 detection output (xmedia_svp.h:239-242)
typedef struct {
    xmedia_u32  target_num;                                       // Number of detected targets
    xmedia_svp_detect_result targets[XMEDIA_SVP_MAX_TARGET_NUM];  // Target array (up to 50)
} xmedia_svp_yolov5_output;

// Single detection result (xmedia_svp.h:116-127)
typedef struct {
    xmedia_svp_alg_type    alg_type;        // Algorithm type
    xmedia_svp_class_type  class_type;      // Target class
    xmedia_float           detect_score;    // Detection confidence (0.0~1.0)
    xmedia_float           classfier_score; // Classifier confidence (0.0~1.0)
    xmedia_s32             tracker_id;      // Tracker ID
    xmedia_u32             tracker_age;     // Tracker age (alive frames)
    xmedia_svp_rect        rect;            // Bounding-box coordinates (x1,y1,x2,y2)
    xmedia_bool            special_target;  // Whether it is a special target
    xmedia_float           distance;        // Target distance
    xmedia_svp_motion_state motion_state;   // Motion state
} xmedia_svp_detect_result;

// Bounding-box coordinates (xmedia_svp.h:102-108)
typedef struct {
    xmedia_float x1;   // Top-left X
    xmedia_float y1;   // Top-left Y
    xmedia_float x2;   // Bottom-right X
    xmedia_float y2;   // Bottom-right Y
} xmedia_svp_rect;

5.4 Inference Parameters

// YOLOv5 detection parameters (xmedia_svp.h:225-237)
typedef struct {
    xmedia_float detect_threshold;           // Confidence threshold, suggested 0.65
    xmedia_float classifier_threshold;       // Classifier threshold, suggested 0.8
    xmedia_float iou_threshold;              // NMS IoU threshold, suggested 0.5
    xmedia_u32   max_target_num;             // Maximum number of targets, up to 50
    xmedia_bool  bytetrack_enable;           // Object tracking switch
    xmedia_bool  motionless_filter_enable;   // Motion-state detection switch
    xmedia_float stillness_thres;            // Stillness sensitivity, suggested 0.9
    xmedia_u8    movement_fps_thres;         // Consecutive-frame threshold, suggested 5
    xmedia_bool  smart_venc_enable;          // Smart encoding switch
    xmedia_bool  smart_ae_enable;            // Smart exposure switch
} xmedia_svp_yolov5_attr;

6. Supported Algorithm Types

6.1 Single-Model Detection

Algorithm typeEnum valueModel fileTask type
Person detectionXMEDIA_SVP_ALG_TYPE_PERSONgnn_person_detect_640x360_rgb888hwc.binXMEDIA_SVP_TASK_DETECT
Face detectionXMEDIA_SVP_ALG_TYPE_FACEgnn_face_detect_640x360_rgb888hwc.binXMEDIA_SVP_TASK_DETECT
Vehicle detectionXMEDIA_SVP_ALG_TYPE_CARgnn_car_detect_640x360_rgb888hwc.binXMEDIA_SVP_TASK_DETECT
Pet detectionXMEDIA_SVP_ALG_TYPE_PETgnn_pet_detect_640x360_rgb888hwc.binXMEDIA_SVP_TASK_DETECT
Head detectionXMEDIA_SVP_ALG_TYPE_HEADgnn_head_detect_640x360_rgb888hwc.binXMEDIA_SVP_TASK_DETECT
Non-motor vehicleXMEDIA_SVP_ALG_TYPE_NON_MOTORIZED_VEHICLEgnn_nocar_detect_640x360_rgb888hwc.binXMEDIA_SVP_TASK_DETECT
Fire/smoke detectionXMEDIA_SVP_ALG_TYPE_FIREWORKSgnn_fireworks_detect_640x360_rgb888hwc.binXMEDIA_SVP_TASK_DETECT
Package detectionXMEDIA_SVP_ALG_TYPE_PACKAGEgnn_package_detect_640x360_rgb888hwc.binXMEDIA_SVP_TASK_DETECT

6.2 Multi-Model Cascade

Algorithm typeTask typeNumber of modelsDescription
Body key pointsXMEDIA_SVP_TASK_DETECT_AND_KEYPOINT1Person detection + key points
Gesture recognitionXMEDIA_SVP_TASK_GESTURE2Hand detection + gesture classification
Facial expressionXMEDIA_SVP_TASK_EMOTION_CLASSIFITION3Face detection + key points + expression classification
Face recognitionXMEDIA_SVP_TASK_FACE_RECOGNITON3Face detection + key points + feature extraction
Two-stage detectionXMEDIA_SVP_TASK_RCNN2Initial detection + refinement
ADASXMEDIA_SVP_TASK_ADAS5Vehicle + person + non-motor vehicle + license plate + lane line
DMSXMEDIA_SVP_TASK_DMSmultipleFace + fatigue + phone + cigarette
License-plate recognitionXMEDIA_SVP_TASK_PLATEmultipleLicense-plate detection + character recognition
Vehicle recognitionXMEDIA_SVP_TASK_VEHICLEmultipleVehicle detection + color/type recognition

6.3 Output Classes

// Target class enum for detection results (xmedia_svp.h:62-89)
typedef enum {
    XMEDIA_SVP_CLASS_TYPE_PERSON,               // Person
    XMEDIA_SVP_CLASS_TYPE_FACE,                 // Face
    XMEDIA_SVP_CLASS_TYPE_CAR,                  // Vehicle
    XMEDIA_SVP_CLASS_TYPE_PET,                  // Pet
    XMEDIA_SVP_CLASS_TYPE_HEAD,                 // Head
    XMEDIA_SVP_CLASS_TYPE_ELECTRIC_BICYCLE,     // Electric bike
    XMEDIA_SVP_CLASS_TYPE_MASK,                 // Mask
    XMEDIA_SVP_CLASS_TYPE_BIKE,                 // Bicycle
    XMEDIA_SVP_CLASS_TYPE_BIKER,                // Cyclist
    XMEDIA_SVP_CLASS_TYPE_MOTOR,                // Motorcycle
    XMEDIA_SVP_CLASS_TYPE_MOTORER,              // Motorcyclist
    XMEDIA_SVP_CLASS_TYPE_TRICYCLE,             // Tricycle
    XMEDIA_SVP_CLASS_TYPE_TRICYCLER,            // Tricyclist
    XMEDIA_SVP_CLASS_TYPE_FIREWORKS_FIRE,       // Flame
    XMEDIA_SVP_CLASS_TYPE_FIREWORKS_SMOKE,      // Smoke
    XMEDIA_SVP_CLASS_TYPE_PACKAGE,              // Package
} xmedia_svp_class_type;

7. Model File Notes

7.1 Model File Format

The NPU uses .bin dedicated model files with the naming convention:

gnn_<algorithm>_<input-resolution>_<input-format>_<version>_<date>.bin

Example:

gnn_person_detect_640x360_rgb888hwc_v0103_20251203.bin
 |        |         |       |        |       |
 |        |         |       |        |       +- Date: 2025-12-03
 |        |         |       |        +- Version: v01.03
 |        |         |       +- Input format: RGB888 HWC layout
 |        |         +- Input resolution: 640x360
 |        +- Function: person detection
 +- Prefix: GNN (general neural network)

7.2 Model Conversion Flow

Model conversion flow diagram

Note: The .bin file is a quantized and compiled NPU-specific format; the original .pt or .onnx files cannot be used for inference directly.


8. Multi-Model Cascade Example

Taking face recognition as an example, this shows how to use multi-model cascade:

// Face recognition requires 3 cascaded models
xmedia_svp_modules modules[3];

// Model 1: face detection (locates the face)
modules[0].alg_type  = XMEDIA_SVP_ALG_TYPE_FACE;
modules[0].load_mode = XMEDIA_SVP_MODEL_FILE;
modules[0].format    = XMEDIA_SVP_INPUTDATA_FORMAT_RGB888;
modules[0].pathname  = "./model/gnn_face_detect_640x360_rgb888hwc_v0103_20251209.bin";

// Model 2: face key points (locates 5 facial feature points)
modules[1].load_mode = XMEDIA_SVP_MODEL_FILE;
modules[1].format    = XMEDIA_SVP_INPUTDATA_FORMAT_RGB888;
modules[1].pathname  = "./model/gnn_face_keypoint_48x48_rgb888hwc_v0101_20250818.bin";

// Model 3: face feature extraction (generates a 512-dimensional feature vector)
modules[2].load_mode = XMEDIA_SVP_MODEL_FILE;
modules[2].format    = XMEDIA_SVP_INPUTDATA_FORMAT_RGB888;
modules[2].pathname  = "./model/gnn_face_recognition_112x112_rgb888hwc_v0101_20250818.bin";

task_cfg.module_num = 3;
task_cfg.task_type  = XMEDIA_SVP_TASK_FACE_RECOGNITON;
task_cfg.modules    = modules;

// Create the task
xmedia_svp_task_create(&handle, task_cfg);

The inference call is the same; the SDK handles the cascade internally:

// The inference call is identical to a single model
xmedia_svp_fr_output fr_output = {0};
ret = xmedia_svp_task_process(handle, &task_input, &fr_output);

// fr_output.face_num     -> number of faces detected
// fr_output.fr_result[i] -> 512-dimensional feature vector + coordinates for each face

9. Memory Management Strategy

9.1 Memory Reuse Modes

The SDK supports three memory reuse modes to save memory:

typedef enum {
    XMEDIA_SVP_MEM_TYPE_BLOCK,       // Block reuse (recommended)
    XMEDIA_SVP_MEM_TYPE_AINR_SHARE,  // Shared with AINR
    XMEDIA_SVP_MEM_TYPE_COMPLETE,    // Fully independent
} xmedia_svp_mem_reuse_type;

9.2 Lifecycle Management

Application start
  |
  |- xmedia_svp_init()                   // Initialize SVP
  |- xmedia_cl_graph_query_model_info()  // Query memory requirements
  |- MMZ allocation (work/input/output)        // Allocate physically contiguous memory
  |- xmedia_svp_set_config()             // Configure memory
  |- xmedia_svp_task_create()            // Create task (load model)
  |
  |   +-- while loop -------------------+
  |   |  acquire_frame -> task_process  |  // Inference loop
  |   |  -> draw -> venc -> release_frame |
  |   +----------------------------------+
  |
  |- xmedia_svp_task_destroy()           // Destroy task (unload model)
  |- MMZ free (work/input/output)        // Free memory
  +- xmedia_svp_uninit()                 // De-initialize SVP

9.3 MMZ Memory Operations

// Allocate physically contiguous memory
xmedia_u64 phy_addr = xmedia_mmz_alloc("mmz_name", "buf_name", size);

// Map to a user-space virtual address
void *virt_addr = xmedia_mmz_map(phy_addr, size, cache_enabled);

// Access the memory (read/write)
memcpy(virt_addr, src, size);

// Unmap
xmedia_mmz_unmap(virt_addr);

// Free physical memory
xmedia_mmz_free(phy_addr);

10. Common Issues and Debugging

10.1 Inference Returns Failure

SymptomPossible causeSolution
xmedia_svp_task_process returns non-zeroModel file corrupted or missingCheck the .bin file path and permissions
Intermittent inference failureFrame acquisition timeoutIncrease the milli_sec timeout
Memory allocation failedInsufficient MMZ spaceCheck the mmz configuration and reduce the buffer size
Zero targetsConfidence threshold too highLower detect_threshold

10.2 Performance Tuning

// Enable timing statistics (define SAMPLE_TIME_DEBUG at compile time)
#define SAMPLE_TIME_DEBUG 1

// Inference time print
TIME_COST_START();
xmedia_svp_task_process(handle, &input, &result);
TIME_COST_END();
TIME_COST_PRINT("svp process all");
// Example output: svp process all cost time: 25000 us

10.3 Offline YUV File Testing

When no camera is available, you can use a YUV file as input for offline testing:

// Define READ_YUV at compile time
#define READ_YUV

// The inference thread automatically reads .yuv files from the ./yuv_dir/ directory
// The file resolution must match the model input (e.g. 640x360 YUV420SP)

10.4 OSD Text Overlay

You need to define the USE_OSD macro at compile time and link the canvas and canvas_font libraries:

#ifdef USE_OSD
xmedia_char text[64];
snprintf(text, sizeof(text), "id[%d] score[%.2f]", id, score);
sample_target_osd(&video_frame, x, y, text);
#endif

11. API Quick Reference

11.1 SVP Lifecycle API

APIFunctionWhen to call
xmedia_svp_init()Initialize the SVP subsystemAt application start, only once
xmedia_svp_uninit()De-initialize SVPAt application exit
xmedia_svp_set_config()Set SVP memory configurationBefore creating a task
xmedia_svp_get_config()Get SVP memory configurationBefore allocating memory
xmedia_svp_task_create()Create an inference taskLoad the model
xmedia_svp_task_destroy()Destroy an inference taskUnload the model
xmedia_svp_task_set_attr()Set task attributesAny time after creation
xmedia_svp_task_get_attr()Get task attributesAny time
xmedia_svp_task_process()Run inferenceIn the loop
xmedia_svp_get_version()Get the SVP versionAny time

11.2 Frame Management API

APIFunction
xmedia_vpss_acquire_ochn_frame()Acquire a frame from VPSS (blocking wait)
xmedia_vpss_release_ochn_frame()Release a frame (return it to the buffer pool)
xmedia_venc_send_frame()Send a frame to the encoder

11.3 Drawing API

APIFunction
xmedia_vgs_init()Initialize VGS
xmedia_vgs_create_job()Create a VGS task
xmedia_vgs_add_task_cover()Add a draw-rectangle task
xmedia_vgs_add_task_line()Add a draw-line task
xmedia_vgs_add_task_osd()Add an OSD overlay task
xmedia_vgs_add_task_scale()Add a scaling task
xmedia_vgs_submit_job()Submit a VGS task
xmedia_vgs_wait_job()Wait for VGS to finish
xmedia_vgs_cancel_job()Cancel a VGS task

11.4 Memory Management API

APIFunction
xmedia_mmz_alloc()Allocate physically contiguous memory
xmedia_mmz_map()Map to a virtual address
xmedia_mmz_unmap()Unmap the virtual address
xmedia_mmz_free()Free physical memory

Appendix: Key Source File Index

File pathDescription
source/gmp/include/xmedia_svp.hSVP API definitions (all structures and function declarations)
sample/npu/demo_ai/sample_svp_main.cComplete SVP video development sample (main flow)
sample/npu/demo_ai/sample_svp_main.hSample header file (type definitions)
source/gmp/usr/svp/src/post_process/yolov5.cYOLOv5 post-processing implementation
source/gmp/usr/svp/src/post_process/yolov5.hYOLOv5 post-processing header
sample/npu/demo_ai/model/Model file directory
source/gmp/include/xmedia_mmz.hMMZ memory management API
source/gmp/include/xmedia_vgs.hVGS graphics drawing API

Edit this page on GitHub
Prev
.xmm Model Loading
Next
AI Noise Reduction (AI_NR)