hi_mpi_vpc_crop_resize_make_border

Applicability

Product

Supported

Atlas A3 training products/Atlas A3 inference products

Atlas A2 training products/Atlas A2 inference products

Atlas 200I/500 A2 inference products

Atlas inference products

Atlas training products

Description

Crops one or more ROIs from an image, resizes the crop ROIs, and then pads each ROI based on the specific type to form one or more destination images. This API is mainly used for resizing with the aspect ratio preserved. This API is asynchronous.

Prototype

hi_s32 hi_mpi_vpc_crop_resize_make_border (hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_crop_resize_border_region crop_resize_make_border_info[], hi_u32 count, hi_u32 *task_id, hi_s32 milli_sec)

Parameters

Parameter

Input/Output

Description

chn

Input

Channel ID for image processing.

Atlas A3 training products/Atlas A3 inference products: The value range of this parameter is [0, 256). The maximum number of channels is 256.

Atlas A2 training products/Atlas A2 inference products: The value range of this parameter is [0, 256). The maximum number of channels is 256.

Atlas 200I/500 A2 inference products: The value range of this parameter is [0, 128). The maximum number of channels is 128.

Atlas inference products: The value range of this parameter is [0, 256). The maximum number of channels is 256.

source_pic

Input

Pointer to the source image information.

crop_resize_make_border_info

Input

Array for crop, resize, and border making information. You need to set the buffer address of the destination image for storing this information. If the data of multiple padding results points to the same buffer address, the data of the later result overwrites that of the previous one. Consequently, the output image is inconsistent with the desired image.

Currently, only the HI_BORDER_CONSTANT and HI_BORDER_REPLICATE types are supported, which allow padding to 4096 x 4096. The length of the crop_resize_make_border_info array must be the same as that of the count value.

count

Input

Number of cropped, resized, and padded ROIs. Must be in the range of [1, 256].

task_id

Output

Pointer to the task ID, which is used to identify a task.

milli_sec

Input

Timeout interval (ms):
  • –1: blocking mode
  • 0: non-blocking mode
  • > 0: timeout interval (timeout mode). The timeout interval varies with the operating system. The deviation is generally within a time slice of an operating system. For example, if the time slice of an operating system is 4 ms and the value of milli_sec is set to 1, the actual timeout interval ranges from 1 ms to 5 ms. When the CPU load is high, the timeout interval may fluctuate.

Returns

Restrictions

Model

Restriction

Atlas inference products

  • Input image resolution and format:
    • If the input image resolution is within the range of [10 x 6, 4096 x 4096], the input image formats described in Restrictions on Image Formats, Width and Height Alignment, and Buffers are 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 hi_pixel_format are supported:
      HI_PIXEL_FORMAT_YUV_400 = 0,               // YUV400 8bit
      HI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1,    // YUV420SP NV12 8bit   
      HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2,    // YUV420SP NV21 8bit 
      HI_PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3,    // YUV422SP 8bit
      HI_PIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4,    // YVU422SP 8bit
      HI_PIXEL_FORMAT_YUV_SEMIPLANAR_444 = 5,    // YUV444SP 8bit
      HI_PIXEL_FORMAT_YVU_SEMIPLANAR_444 = 6,    // YVU444SP 8bit
      HI_PIXEL_FORMAT_YUYV_PACKED_422 = 7,       // YUV422Packed YUYV 8bit
      HI_PIXEL_FORMAT_UYVY_PACKED_422 = 8,       // YUV422Packed UYVY 8bit
      HI_PIXEL_FORMAT_YVYU_PACKED_422 = 9,       // YUV422Packed YVYU 8bit
      HI_PIXEL_FORMAT_VYUY_PACKED_422 = 10,      // YUV422Packed VYUY 8bit
    • For details about the restrictions on the width and height alignment, buffer size, and image format, see Restrictions on Image Formats, Width and Height Alignment, and Buffers.
  • For details about the restrictions on the output image resolution, image format, width and height alignment, and buffer size, see Restrictions.
  • When the input and output images are in ARGB8888, ABGR8888, RGBA8888, or BGRA8888 format, the A component value changes to 0 after resizing by calling this API.
  • hi_vpc_crop_resize_border_region allows for diverse setting combinations. However, if the desired size for resizing is the same as the crop ROI size, resizing is not performed. If the offset values are 0, padding is not performed.
  • For details about the API description and restrictions, see Restrictions on Image Cropping and Pasting.
  • Due to restrictions on downsampling of YUV images, note that:
    • For the YUV420SP output format, even numbers are recommended for the border lengths at the top, bottom, left, and right of the image.
    • For the YUV422SP output format, even numbers are recommended for the border lengths at the left and right of the image.

Atlas A3 training products/Atlas A3 inference products

Atlas A2 training products/Atlas A2 inference products

Atlas 200I/500 A2 inference products

  • For details about the restrictions on the image resolution, image format, width and height alignment, and buffer size, see Restrictions.
  • Ensure that the destination image resolution is in the range of [10 x 6, 16384 x 16384]. Otherwise, an error code is returned.
  • When the input and output images are in ARGB8888, ABGR8888, RGBA8888, or BGRA8888 format, the A component value changes to 0 after resizing by calling this API.
  • hi_vpc_crop_resize_border_region allows for diverse setting combinations. However, if the desired size for resizing is the same as the crop ROI size, resizing is not performed. If the offset values are 0, padding is not performed.
  • For details about the API description and restrictions, see Restrictions on Image Cropping and Pasting.
  • Due to restrictions on downsampling of YUV images, note that:
    • For the YUV420SP output format, even numbers are recommended for the border lengths at the top, bottom, left, and right of the image.
    • For the YUV422SP output format, even numbers are recommended for the border lengths at the left and right of the image.