vpc_lut_remap

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

x

Atlas 200I/500 A2 inference products

Function Usage

Remaps an image based on the input pixel position remapping LUT. This API is asynchronous.

Prototype

  • C Prototype
    1
    hi_s32 hi_mpi_vpc_lut_remap(hi_vpc_chn chn, hi_warp_transform_param* transform_param, hi_remap_lut *remap_lut, hi_u32 *task_id, hi_s32 milli_sec)
    
  • Python Function
    1
    task_id, ret = acl.himpi.vpc_lut_remap(chn, transform_param, remap_lut, milli_sec)
    

Parameter Description

Parameter

Description

chn

Int, channel ID for image processing.

  • 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.

transform_param

Dict, remapping transformation parameter dictionary. For details, see hi_warp_transform_param.

remap_lut

Dict, information about the pixel position remapping LUT. For details, see hi_remap_lut.

Call acl.himpi.vpc_get_affine_lut, acl.himpi.vpc_get_perspective_lut, or acl.himpi.vpc_get_remap_lut to obtain the pixel position remapping LUT in advance. However, the resizing algorithm of this API must be the same as that of the get API. Otherwise, the remapping result may not meet the expectation.

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.

Restrictions

Version

Restriction

Atlas 200I/500 A2 inference products

  • The resolution of the input and output images ranges from 10 x 6 to 4096 x 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 
  • For details about the restrictions on image width and height alignment and memory, see Restrictions.
  • The task execution requires temporary buffers. Therefore, before calling this API for the first time in each channel, call acl.himpi.vpc_set_chn_workspace to allocate internal buffers.

    Due to hardware restrictions, you do not need to call acl.himpi.vpc_set_chn_workspace to allocate internal temporary buffers when the input and output of images in formats other than YUV420SP NV12 and YUV420SP NV21 are the same.

  • For processing a single 1080p (1920 x 1080) image, you are advised to set the timeout period to 10 ms. For other resolutions, you can calculate the timeout period based on the image size. For example, the recommended timeout period for processing a 4096 x 4096 image is 40 ms.
  • 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 type to border replication mode, to avoid abnormal data on the output image edge.

Atlas A2 training products/Atlas A2 inference products

Atlas A3 training products/Atlas A3 inference products

  • The resolution of the input and output images ranges from 10 x 6 to 4096 x 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.
  • For details about the restrictions on image width and height alignment and memory, see Restrictions.
  • The task execution requires temporary buffers. Therefore, before calling this API for the first time in each channel, call acl.himpi.vpc_set_chn_workspace to allocate internal buffers.

    Due to hardware restrictions, you do not need to call acl.himpi.vpc_set_chn_workspace to allocate internal temporary buffers when the input and output of images in formats other than YUV420SP NV12 and YUV420SP NV21 are the same.

  • For processing a single 1080p (1920 x 1080) image, you are advised to set the timeout period to 10 ms. For other resolutions, you can calculate the timeout period based on the image size. For example, the recommended timeout period for processing a 4096 x 4096 image is 40 ms.
  • 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 type to border replication mode, to avoid abnormal data on the output image edge.