hi_mpi_vpc_warp_affine

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

Performs affine transformation on the input image.

Prototype

hi_s32 hi_mpi_vpc_warp_affine(hi_vpc_chn chn, hi_transform_matrix *matrix, hi_warp_transform_param *transform_param, 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.

matrix

Input

Affine transformation matrix obtained by calling hi_mpi_vpc_get_affine_transform or hi_mpi_vpc_get_rotation_matrix.

transform_param

Input

Affine transformation parameter. The input and output image information is configured in the hi_warp_transform_param structure.

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.

task_id

Output

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

Returns

Restrictions

The requirements on the input and output image formats are as follows (for details about the restrictions on the image width and height alignment and memory, see Restrictions):

Model

Restrictions

Atlas 200I/500 A2 inference product

  • The input and output image resolutions must be in the range of [10 × 6, 4096 × 8192].
  • The following input image formats 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_RGB_888 = 12,           // RGB888
    HI_PIXEL_FORMAT_BGR_888 = 13,           // BGR888
    HI_PIXEL_FORMAT_YUV_PACKED_444 = 11,    // YUV444P 8bit
    HI_PIXEL_FORMAT_YVU_PACKED_444 = 58,    // YVU444P 8bit
  • The following output image formats 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_RGB_888 = 12,           // RGB888
    HI_PIXEL_FORMAT_BGR_888 = 13,           // BGR888
    HI_PIXEL_FORMAT_YUV_PACKED_444 = 11,    // YUV444P 8bit
    HI_PIXEL_FORMAT_YVU_PACKED_444 = 58,    // YVU444P 8bit
    HI_PIXEL_FORMAT_YUYV_PACKED_422 = 7,    // YUV422P YUYV 8bit 
    HI_PIXEL_FORMAT_UYVY_PACKED_422 = 8,    // YUV422P UYVY 8bit
    HI_PIXEL_FORMAT_YVYU_PACKED_422 = 9,    // YUV422P YVYU 8bit 
    HI_PIXEL_FORMAT_VYUY_PACKED_422 = 10,   // YUV422P VYUY 8bit 
  • During task execution, temporary cache is required. Therefore, before executing this API for the first time, each channel needs to call the hi_mpi_vpc_set_chn_workspace API to apply for internal temporary cache.
  • Due to restrictions on downsampling of YUV images, when the output image format is YUV420SP or YUV422SP, you are advised to set the border making mode to Boundary Copy Mode to avoid abnormal edge data of the output image.

Atlas 350 Accelerator Card

Atlas A3 training product/Atlas A3 inference product

Atlas A2 training product/Atlas A2 inference product

  • The input and output image resolutions must be in the range of [10 × 6, 4096 × 8192].
  • The following input image formats 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_RGB_888 = 12,           // RGB888
    HI_PIXEL_FORMAT_BGR_888 = 13,           // BGR888
    HI_PIXEL_FORMAT_YUV_PACKED_444 = 11,    // YUV444P 8bit
    HI_PIXEL_FORMAT_YVU_PACKED_444 = 58,    // YVU444P 8bit
    HI_PIXEL_FORMAT_YUV400_FP32 = 138,      // YUV400 FP32. If this input image format is selected, the output image format must be the same as the input image format.
    HI_PIXEL_FORMAT_RGB_888_FP32 = 1012,    // RGB888 FP32. If this input image format is selected, the output image format must be the same as the input image format.
    HI_PIXEL_FORMAT_BGR_888_FP32 = 1013,    // BGR888 FP32. If this input image format is selected, the output image format must be the same as the input image format.
  • The following output image formats 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_RGB_888 = 12,           // RGB888
    HI_PIXEL_FORMAT_BGR_888 = 13,           // BGR888
    HI_PIXEL_FORMAT_YUV_PACKED_444 = 11,    // YUV444P 8bit
    HI_PIXEL_FORMAT_YVU_PACKED_444 = 58,    // YVU444P 8bit
    HI_PIXEL_FORMAT_YUYV_PACKED_422 = 7,    // YUV422P YUYV 8bit 
    HI_PIXEL_FORMAT_UYVY_PACKED_422 = 8,    // YUV422P UYVY 8bit
    HI_PIXEL_FORMAT_YVYU_PACKED_422 = 9,    // YUV422P YVYU 8bit 
    HI_PIXEL_FORMAT_VYUY_PACKED_422 = 10,   // YUV422P VYUY 8bit
    HI_PIXEL_FORMAT_YUV400_FP32 = 138,    // YUV400 FP32. If this output image format is selected, the input image format must be the same as the output image format.
    HI_PIXEL_FORMAT_RGB_888_FP32 = 1012,    // RGB888 FP32. If this output image format is selected, the input image format must be the same as the output image format.
    HI_PIXEL_FORMAT_BGR_888_FP32 = 1013,    // BGR888 FP32. If this output image format is selected, the input image format must be the same as the output image format.
  • During task execution, temporary cache is required. Therefore, before executing this API for the first time, each channel needs to call the hi_mpi_vpc_set_chn_workspace API to apply for internal temporary cache.
  • Due to restrictions on downsampling of YUV images, when the output image format is YUV420SP or YUV422SP, you are advised to set the border making mode to Boundary Copy Mode to avoid abnormal edge data of the output image.