hi_mpi_vpc_resize

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

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

Prototype

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)

Parameters

Parameter

Input/Output

Description

chn

Input

Channel ID for image processing.

Atlas 350 Accelerator Card: The value range is [0, 256). The maximum number of channels is 256.

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

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

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

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

source_pic

Input

Pointer to the source image information.

dest_pic

Input

Pointer to the destination image information.

fx

Input

Resize factor for the width.

fy

Input

Resize factor for the height.

interpolation

Input

Resizing algorithm. You are advised to use the same resizing algorithm as in model training. The following resizing algorithms are supported:

  • 0: the conventional bilinear algorithm
  • 1: the conventional nearest neighbor algorithm

The computation process of the bilinear algorithm is similar to that of the OpenCV algorithm. When both the input and output images are in RGB format, the maximum difference between the value of Atlas inference product and a single pixel value of OpenCV is ±1 within the resizing range of [1/32, 512]. The calculation process of the nearest neighbor algorithm commonly used in the industry is similar to that of the OpenCV algorithm.

In Atlas A2 training product / Atlas A2 inference product , the calculation results of each resizing algorithm are the same as those of the OpenCV-3.4.2 algorithm.

Atlas 200I/500 A2 inference product . The calculation result of each resizing algorithm is the same as that of the OpenCV-3.4.2 algorithm.

Atlas A3 training product / Atlas A3 inference product . The calculation result of each resizing algorithm is the same as that of the OpenCV-3.4.2 algorithm.

For the Atlas 350 Accelerator Card, the compute result of each resizing algorithm is the same as that of the OpenCV-3.4.2 algorithm.

task_id

Output

Pointer to the task ID, 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

Restrictions

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 enumerated 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 and buffer size of each 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.
  • The resizing can be specified by the fx and fy pair or the width and height of the destination image. If both of them are configured, the width and height of the destination image takes precedence. They must not be 0 at the same time.

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

  • The requirements for the input and output image resolutions are as follows:
    • Input image resolution: [10 × 6, 16384 × 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 × 6, 16384 × 16384]
  • For details about the restrictions on the 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.
  • To specify the fx and fy pair, ensure that the destination image resolution is in the range of [10 x 6, 16384 x 16384]. Otherwise, an error code is returned.
  • The resizing can be specified by the fx and fy pair or the width and height of the destination image. If both of them are configured, the width and height of the destination image takes precedence. They must not be 0 at the same time.

See Also

For details about the API call sequence and example, see Typical Functions of VPC.