Functions and Restrictions
Typical Functions of Image/Video/Audio Data Processing

The following table describes the functions. For details about the media data processing functions supported by each product model, see Functions supported by each product model. The current AIPP versions support all the functions.
Functions supported by each product model
The following table describes the functions of media data processing V2 supported by each product model.
- √: Yes
- x: Not supported
Model |
VPC |
JPEGD |
JPEGE |
PNGD |
VDEC |
VENC |
Video Data Obtaining |
VPSS Video Processing |
Audio Functions (Recording/Playing/Volume Adjustment) |
Video Data Display |
Region Management |
|---|---|---|---|---|---|---|---|---|---|---|---|
☓ |
☓ |
☓ |
☓ |
☓ |
☓ |
☓ |
☓ |
☓ |
☓ |
☓ |
|
√ |
√ |
√ |
√ |
√ |
√ |
☓ |
☓ |
☓ |
☓ |
☓ |
|
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
|
√ |
√ |
√ |
√ |
√ |
☓ |
☓ |
☓ |
☓ |
☓ |
☓ |
|
√ |
√ |
√ |
√ |
√ |
☓ |
☓ |
☓ |
☓ |
☓ |
☓ |
|
Atlas 350 Accelerator Card |
√ |
√ |
√ |
√ |
☓ |
☓ |
☓ |
☓ |
☓ |
☓ |
☓ |
Restrictions
When using the APIs described in this chapter, pay attention to the following points:
- About memory allocation and deallocation:
- Before implementing some media data processing functions such as VPC, JPEGD, and JPEGE, you need to allocate memory to store the input or output data. The media data processing functions have higher requirements on the memory for storing the input and output data. Therefore, you need to call dedicated memory allocation APIs. For details, see the restrictions in sections that describe the functions. If multiple functions are used in cascade and the same memory segment needs to be reused, allocate the maximum allowed memory.
- The memory allocated in 1 can be used for media data processing and other tasks. For example, the output of media data processing can be used as the input of model inference to implement memory reuse and reduce memory copy.
- However, the address space accessed by media data processing is limited. To ensure sufficient memory during media data processing, you are advised to call other memory allocation APIs (such as aclrtMalloc) for other functions (such as model loading) except media data processing.
- About channel requirements
Before implementing the media data processing function, you must call the corresponding API to create a channel. For details, see the channel creation and destruction APIs in the VPC, VDEC/JPEGD, Video Encoding (VENC) and JPEG Encoder (JPEGE), and PNG Decoder (PNGD) sections.
Channel creation and destruction involve resource allocation and release. Repeated channel creation and destruction, however, affect service performance. Therefore, you are advised to manage channels based on your actual scenario. For example, to process VPC images continuously, create VPC channels, wait until all VPC functions are called, and then destroy the VPC channels.
A too large number of channels would affect the CPU usage and memory usage of the device. For details about the number of channels, see the performance specifications in the corresponding function sections.
- This section describes the structs and enumerations. The reserved fields must be manually set to 0 to avoid incompatibility with future versions.
The reserved fields in the structs and enumerations contain a _BUTT suffix, for example, HI_COMPRESS_MODE_BUTT.