acldvppVpcBatchCropResizeMakeBorderAsync

Applicability

Product

Supported

Atlas 350 Accelerator Card

Atlas A3 training product / Atlas A3 inference product

Atlas A2 training product / Atlas A2 inference product

Atlas 200I/500 A2 inference product

Atlas inference product

Atlas training product

Function Description

The function allows you to crop one or more sub-images from one or more input images, resize each sub-image, and output the cropped sub-images to the buffer address of the destination image. Asynchronous API.

Prototype

1
2
3
4
5
6
7
8
9
aclError acldvppVpcBatchCropResizeMakeBorderAsync(acldvppChannelDesc *channelDesc,
acldvppBatchPicDesc *srcBatchPicDescs,
uint32_t *roiNums,
uint32_t size,
acldvppBatchPicDesc *dstBatchPicDescs,
acldvppRoiConfig *cropAreas[],
acldvppBorderConfig *borderCfgs[],
acldvppResizeConfig *resizeConfig,
aclrtStream stream)

Parameters

Parameter

Input/Output

Description

channelDesc

Input

Pointer to the channel description.

The value must be the same as that of channelDesc specified when the acldvppCreateChannel API is called to create a channel.

srcBatchPicDescs

Input

Pointer to the description of batch input images.

roiNums

Input

Pointer to the number of crop ROIs of each input image. The maximum number of crop ROIs is 256.

roiNums is an array. The sum of the elements is up to 256, which must be consistent with batchSize in the dstBatchPicDescs struct.

roiNums[0]+...+roiNums[size-1] <= 256

size

Input

Length of the roiNums array, up to 256.

dstBatchPicDescs

Input/Output

Pointer to the description of batch output images.

When dstBatchPicDescs is used as an input, the user needs to:

cropAreas

Input

Pointer array for the crop ROIs.

You need to call the acldvppCreateRoiConfig API to create region location data in advance.

The cropAreas or borderCfgs array length is the same as the value of batchSize in the dstBatchPicDescs struct.

borderCfgs

Input

Pointer array of the edge expansion configuration.

The elements in the borderCfgs array match those in cropAreas with ordering preserved.

The borderType member can only be set to BORDER_CONSTANT or BORDER_REPLICATE.

resizeConfig

Input

Pointer to the image resizing configuration.

Call acldvppCreateResizeConfig to create an image resizing configuration in advance.

The width or height of the resized image output by VPC is that of the output image minus the padding length.

stream

Input

Stream. For details about the type definition, see aclrtStream.

Returns

If the return value is 0, the task is successfully delivered. If the return value is not 0, the task fails to be delivered. For details, see aclError.

Restrictions

Model

Restriction

Atlas inference product

  • Input image resolution and format:
    • If the input image resolution is within the range of [10 x 6, 4096 x 4096], the input image format described in Restrictions on Image Formats, Width and Height Alignment, and Buffers is supported.
    • When the width or height of the input image is within the range of (4096, 8192], the supported formats are as follows:
      The following enum values of acldvppPixelFormat are supported:
      PIXEL_FORMAT_YUV_400 = 0,               // YUV400 8bit
      PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1,    // YUV420SP NV12 8bit   
      PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2,    // YUV420SP NV21 8bit 
      PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3,    // YUV422SP 8bit
      PIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4,    // YVU422SP 8bit
      PIXEL_FORMAT_YUV_SEMIPLANAR_444 = 5,    // YUV444SP 8bit
      PIXEL_FORMAT_YVU_SEMIPLANAR_444 = 6,    // YVU444SP 8bit
      PIXEL_FORMAT_YUYV_PACKED_422 = 7,       // YUV422Packed YUYV 8bit
      PIXEL_FORMAT_UYVY_PACKED_422 = 8,       // YUV422Packed UYVY 8bit
      PIXEL_FORMAT_YVYU_PACKED_422 = 9,       // YUV422Packed YVYU 8bit
      PIXEL_FORMAT_VYUY_PACKED_422 = 10,      // YUV422Packed VYUY 8bit
  • For details about the output image resolution and format, see Restrictions on Image Formats, Width and Height Alignment, and Buffers.
  • For details about the restrictions on the width and height alignment and buffer size of each image format, see Restrictions on Image Formats, Width and Height Alignment, and Buffers.
  • When the input and output images are in ARGB8888, ABGR8888, RGBA8888, or BGRA8888 format, the A component value changes to 0 after being resized by this API.
  • For details about the description and restrictions when this API is used to implement the proportional scaling function, see Restrictions on Image Cropping and Pasting.
  • Due to restrictions on downsampling of YUV images, pay attention to the following when the output image format is YUV420SP or YUV422SP:
    • For the YUV420SP output format, it is recommended that the border lengths at the top, bottom, left, and right of the image be even numbers.
    • For the YUV422SP output format, it is recommended that the border lengths at the left and right of the image be even numbers.

Atlas A3 training product / Atlas A3 inference product

Atlas A2 training product / Atlas A2 inference product

Atlas 200I/500 A2 inference product

  • For details about the restrictions on the image resolution, image format, width and height alignment, and memory, see Restrictions on Image Formats, Width and Height Alignment, and Buffers.
  • When the input and output images are in ARGB8888, ABGR8888, RGBA8888, or BGRA8888 format, the A component value changes to 0 after being resized by this API.
  • For details about the description and restrictions when this API is used to implement the proportional scaling function, see Restrictions on Image Cropping and Pasting.
  • Due to restrictions on downsampling of YUV images, pay attention to the following when the output image format is YUV420SP or YUV422SP:
    • For the YUV420SP output format, it is recommended that the border lengths at the top, bottom, left, and right of the image be even numbers.
    • For the YUV422SP output format, it is recommended that the border lengths at the left and right of the image be even numbers.