vpc_resize

Applicability

Product

Supported (√/x)

Atlas A3 training products / Atlas A3 inference products

Atlas A2 training products / Atlas A2 inference products

Atlas training products

x

Atlas inference products

Atlas 200I/500 A2 inference products

Function Usage

Resizes an input image with the aspect ratio preserved or to specific width and height. This API is asynchronous.

Prototype

  • C Prototype
    1
    hi_s32 hi_mpi_vpc_resize (hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_pic_info *dest_pic, hi_double fx, hi_double fy, hi_u32 interpolation, hi_u32 *task_id, hi_s32 milli_sec);
    
  • Python Function
    1
    task_id, ret = acl.himpi.vpc_resize(chn, source_pic, dest_pic, fx, fy, interpolation, milli_sec)
    

Parameter Description

Parameter

Description

chn

Int, channel ID for image processing.

  • Atlas 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 A3 training products / Atlas A3 inference products : The value range of this parameter is [0, 256). The maximum number of channels is 256.

source_pic

Dict, source image information. For details about the restrictions, see Restrictions.

dest_pic

Dict, destination image information.

fx

Float, resize factor for the width.

fy

Float, resize factor for the height.

interpolation

Int, resizing algorithm. You are advised to use the same resizing algorithm as that in model training.

Atlas inference products : The following resizing algorithms are supported:
  • 0: conventional bilinear algorithm, whose compute process is close to that of OpenCV. When the input and output images are both in RGB format and the resizing range is [1/32, 512], the maximum value difference of a single pixel from OpenCV is ±1.
  • 1: conventional nearest neighbor algorithm, whose compute process is close to that of OpenCV.
For the Atlas A2 training products / Atlas A2 inference products , the following resizing algorithms are supported:
  • 0: conventional bilinear algorithm, whose compute result is close to that of OpenCV-3.4.2.
  • 1: conventional nearest neighbor algorithm, whose compute result is close to that of OpenCV-3.4.2.
For the Atlas 200I/500 A2 inference products , the following resizing algorithms are supported:
  • 0: conventional bilinear algorithm, whose compute result is close to that of OpenCV-3.4.2.
  • 1: conventional nearest neighbor algorithm, whose compute result is close to that of OpenCV-3.4.2.
For the Atlas A3 training products / Atlas A3 inference products , the following resizing algorithms are supported:
  • 0: conventional bilinear algorithm, whose compute result is close to that of OpenCV-3.4.2.
  • 1: conventional nearest neighbor algorithm, whose compute result is close to that of OpenCV-3.4.2.

milli_sec

Int, timeout interval, in milliseconds.
  • -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.

Return Value Description

Return Value

Description

task_id

Int, task ID, used to identify a task.

ret

Int, error code.

Reference

For the API call sequence, see VPC.

Restrictions

Version

Restrictions

Atlas inference products

  • Input image size and format:
    • When the input image resolution is in 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 in 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 being resized by this API.
  • To specify the fx and fy pair, ensure that the destination image resolution is in the range of [10 x 6, 4096 x 4096]. Otherwise, an error code is returned.
  • Set the destination image size in dest_pic or by using the fx and fy pair. If both are specified, that specified in dest_pic applies. They must not be 0 at the same time.

Atlas 200I/500 A2 inference products

Atlas A2 training products / Atlas A2 inference products

Atlas A3 training products / Atlas A3 inference products

  • The requirements for the input and output image resolutions are as follows:
    • Input image resolution: 10 x 6 to 16384 x 16384

      When the width of the output image is greater than 4096 pixels, the minimum resolution of the input image is 128 x 16.

      When the width of the input image is greater than 8192 pixels, the minimum height of the input image is 16.

    • Output image resolution: 10 x 6 to 16384 x 16384
  • For details about the restrictions on the image format, width and height alignment, and buffer size, 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.
  • To specify the fx and fy pair, ensure that the destination image size is in the range of [10 × 6, 16384 × 16384]. Otherwise, an error code is returned.
  • Set the destination image size in dest_pic or by using the fx and fy pair. If both are specified, that specified in dest_pic applies. They must not be 0 at the same time.