acl.himpi.vpc_calc_hist

This API will be deprecated in future releases. Use acl.himpi.vpc_calc_hist_v2 instead.

C Prototype

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

hist_config, task_id, ret = acl.himpi.vpc_calc_hist(chn, source_pic, milli_sec)

Function Usage

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

The Atlas 200/300/500 Inference Product does not support this API in the current version.

The Atlas Training Series Product does not support this API in the current version.

Input Description

chn: int, image processing channel ID.

source_pic: source image information.
  • 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 
    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 (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.

Return Value

hist_config: result histogram.

hist_config is a struct that contains three arrays, which store the distribution (0–255) of the three components of each image.

This API will be discarded. The value of hist_config obtained by calling this API is all 0s. Replace it with acl.himpi.vpc_calc_hist_v2.

task_id: task ID, used to identify a task.

ret: int, error code.