vpc_calc_hist_v2

Applicability

Product

Supported

Atlas 350 Accelerator Card

Atlas A3 training product/Atlas A3 inference product

Atlas A2 training product/Atlas A2 inference product

Atlas training product

x

Atlas inference product

Atlas 200I/500 A2 inference product

Description

Calculates a histogram of image channels. This API is asynchronous.

Prototype

  • C Prototype
    1
    hi_s32 hi_mpi_vpc_calc_hist(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_histogram_config *hist_config, hi_u32 *task_id, hi_s32 milli_sec);
    
  • Python Function
    1
    task_id, ret = acl.himpi.vpc_calc_hist_v2(chn, source_pic, milli_sec, hist_config)
    

Parameters

Parameter

Description

chn

Int, channel ID for image processing.

source_pic

Dict, input image information. For details, see hi_vpc_pic_info. For details about related restrictions, see Restrictions.
NOTE:

When the image format is YUV440SP 8-bit or YVU440SP 8-bit, the Y component statistics are accurate, but the UV component statistics are inaccurate.

milli_sec

Int, timeout interval, in milliseconds.

hist_config

Int, pointer address of the statistics result.

The address in hist_config points to the struct that contains the statistics result and stores the distribution (0–255) of the three components of each image.

np_out_size = np.array([out_buffer_size], dtype=np.int32) is called to create data of a NumPy array.

Then bytes_data = np_out_size.tobytes()-> \->size_ptr = acl.util.bytes_to_ptr(bytes_data) is called to convert the data into an object as the argument. After the function is called successfully, the data (np_out_size) converted by size_ptr changes.

Return Value

Return Value

Description

task_id

Int, task ID, used to identify a task.

ret

Int, error code.
  • 0 indicates success.
  • Other values indicate failure. For details, see VPC Return Codes.

Restrictions

  • Requirements on the input resolution:

    Version

    Restrictions

    Atlas inference product

    Input image resolution: [10 x 6, 4096 x 4096].

    Atlas 350 Accelerator Card

    Atlas 200I/500 A2 inference product

    Atlas A2 training product/Atlas A2 inference product

    Atlas A3 training product/Atlas A3 inference product

    Input image resolution: [10 x 6, 4096 x 8192].

  • The following enum values of hi_pixel_format are supported for the source image format:
    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
    HI_PIXEL_FORMAT_YUV_PACKED_444 = 11,       // YUV444P 8bit
    HI_PIXEL_FORMAT_RGB_888 = 12,              // RGB888
    HI_PIXEL_FORMAT_BGR_888 = 13,              // BGR888
    HI_PIXEL_FORMAT_YUV_SEMIPLANAR_440 = 1000, // YUV440SP 8bit 
    HI_PIXEL_FORMAT_YVU_SEMIPLANAR_440 = 1001, // YVU440SP 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.