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.

Sample

We use batch image cropping, resizing. and padding as an example to describe how to call the multi-function API hi_mpi_vpc_batch_crop_resize_make_border.

You can click sample_comm_vpc_batchCropResizeMakeBorder to obtain the sample.