---
title: vpc_calc_hist_v2
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/dvpp/aclpythondevg_01_0443.html
sourcePath: /source/zh/canncommercial/900/API/dvpp/aclpythondevg_01_0443.html
indexId: 862dbdebc420fc4556ec2a28b182681305bc12f7318d72a54a352e1702f08a5365
---
# vpc_calc_hist_v2

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 训练系列产品 | x |
| Atlas 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |


#### 功能说明

统计图像每个通道的像素值分布。异步接口。


#### 函数原型

- C函数原型
  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函数
  1 task_id, ret = acl.himpi.vpc_calc_hist_v2(chn, source_pic, milli_sec, hist_config)


#### 参数说明

| 参数名 | 说明 |
| --- | --- |
| chn | int，图片处理通道号。 Atlas 350 加速卡，该参数的取值范围：[0, 256)，通道总数最多25 Atlas 推理系列产品 ，该参数的取值范围：[0, 256)，通道总数最多256。 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ，该参数的取值范围：[0, 256)，通道总数最多256。 Atlas 200I/500 A2 推理产品 ，该参数的取值范围：[0, 128)，通道总数最多128。 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 ，该参数的取值范围：[0, 256)，通道总数最多256。 |
| source\_pic | dict，输入图片信息，具体请参见hi\_vpc\_pic\_info，相关约束请参见约束说明。 说明： 当图片格式为YUV440SP 8bit、YVU440SP 8bit时，Y分量统计准确，UV分量统计上存在误差。 |
| milli\_sec | int，超时时间配置，单位是毫秒，取值范围如下。 “\-1”：阻塞方式。 “0”：非阻塞方式。 >0：超时方式，配置具体的超时时间。超时时间受操作系统影响，一般偏差在操作系统的一个时间片内，例如，操作系统的一个时间片为4ms，用户设置的milli\_sec参数值为1，则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下，超时时间仍可能存在波动。 |
| hist\_config | int，统计结果指针地址。 “hist\_config”中的地址指向包含统计结果的结构体，用来存放每张图像3个分量0~255的分布情况。 调用np\_out\_size = np.array([out\_buffer\_size], dtype=np.int32)创建numpy array类型数据。 再调用bytes\_data = np\_out\_size.tobytes()\-> \\->size\_ptr = acl.util.bytes\_to\_ptr(bytes\_data)，将数据转换为对象作为入参。函数调用成功后，“size\_ptr”指向的数据（即np\_out\_size）会发生改变。 |


#### 返回值说明

| 返回值 | 说明 |
| --- | --- |
| task\_id | int，任务分配的ID，用来区分任务。 |
| ret | int，错误码。 返回0表示成功。 返回非0表示失败，参见VPC图像处理返回码。 |


#### 约束说明

- 关于输入分辨率的要求：| 版本 | 约束 |
| --- | --- |
| Atlas 推理系列产品 | 输入图片分辨率：10 \* 6 ~ 4096 \* 4096（包括4096 \* 4096）。 |
| Atlas 350 加速卡 Atlas 200I/500 A2 推理产品 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | 输入图片分辨率：10 \* 6 ~ 4096 \* 8192（包括4096 \* 8192）。 |


- 输入图片格式支持  hi_pixel_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
```


- 关于各图片格式的宽高对齐、内存大小约束，请参见  图片格式、宽高对齐、内存约束
。
