Using Batch Processing APIs of VPC to Reduce Delay
Background
The media data processing section provides the following two types of APIs for operations such as image cropping and resizing:
- APIs that process one image at a time, for example, hi_mpi_vpc_crop_resize_make_border
In this mode, if there are multiple input images, the for loop mode is typically used, which means the hi_mpi_vpc_crop_resize_make_border API is called once for each image.
- APIs that process multiple images at a time (batch processing), for example, hi_mpi_vpc_batch_crop_resize_make_border
In this mode, if there are multiple input images, only the hi_mpi_vpc_batch_crop_resize_make_border API needs to be called once.
The following table lists the mapping between these two types of APIs.
Single-Image Processing API |
Batch Processing API |
|---|---|
hi_mpi_vpc_crop_resize_paste (cropping, resizing, and pasting) |
hi_mpi_vpc_batch_crop_resize_paste (batch cropping, resizing, and pasting) |
hi_mpi_vpc_crop_resize_make_border (cropping, resizing, and padding) |
hi_mpi_vpc_batch_crop_resize_make_border (batch cropping, resizing, and padding) |
Principles
The AI processor has a built-in DVPP unit, which contains multiple VPC modules for functions like image cropping, resizing, and format conversion.
When a batch processing API is called, batch tasks are evenly distributed to multiple VPC modules for parallel processing, reducing the processing delay and improving performance.