acldvppVpcPyrDownAsync
acldvppVpcBatchCropResizeMakeBorderAsync
函数功能
支持从一张或多张输入图片中抠出一张或多张子图,对每个子图进行缩放,扩边填充后输出至目标图像内存地址。异步接口。
约束说明
| 版本 | 约束 |
|---|---|
| Atlas 200/500 A2推理产品 | - 关于图片分辨率、图片格式、宽高对齐、内存等总体约束,请参见图片格式、宽高对齐、内存约束。 - 当输入、输出图片格式都为ARGB8888、ABGR8888、RGBA8888、BGRA8888格式时,在经过本接口缩放处理后,A分量值会变为0。 - 使用本接口实现等比例缩放功能时,相关的描述及约束请参见抠图、贴图约束。 - 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,需注意: - 对于YUV420SP输出格式,上下左右填充的尺寸建议为偶数; - 对于YUV422SP输出格式,左右填充的尺寸建议为偶数。 |
函数原型
aclError acldvppVpcBatchCropResizeMakeBorderAsync(****acldvppChannelDesc *channelDesc,
acldvppBatchPicDesc *srcBatchPicDescs,
uint32_t *roiNums,
uint32_t size,
acldvppBatchPicDesc *dstBatchPicDescs,
acldvppRoiConfig *cropAreas[],
acldvppBorderConfig *borderCfgs[],
acldvppResizeConfig *resizeConfig,
aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| channelDesc | 输入 | 通道描述信息的指针。 与调用acldvppCreateChannel接口创建通道时指定的channelDesc保持一致。 |
| srcBatchPicDescs | 输入 | 批量输入图片描述信息的指针。 - 调用acldvppCreateBatchPicDesc接口创建批量图片描述信息。 - 调用acldvppGetPicDesc接口获取指定图片的图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 |
| roiNums | 输入 | 每个输入图片抠图数量的指针,当前最大抠图数量为256。 roiNums为数组,数组总和小于等于256,与dstBatchPicDescs结构体中的batchSize值保持一致。 roiNums[0]+...+roiNums[size-1] <= 256 |
| size | 输入 | 表示roiNums数组中的元素个数,个数小于等于256。 |
| dstBatchPicDescs | 输入&输出 | 批量输出图片描述信息的指针。 dstBatchPicDescs参数作为输入时,需要用户调用如下接口: - 调用acldvppCreateBatchPicDesc接口创建批量图片描述信息。 - 调用acldvppGetPicDesc接口获取指定图片的图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 |
| cropAreas | 输入 | 抠图区域位置的指针数组。 需提前调用acldvppCreateRoiConfig接口创建区域位置数据。 cropAreas、borderCfgs数组中的元素个数与dstBatchPicDescs结构体中的batchSize值相等。 |
| borderCfgs | 输入 | 扩边填充配置的指针数组。 borderCfgs数组中的元素与cropAreas数组中的元素一一对应。 扩边填充配置参数中的borderType参数值仅支持BORDER_CONSTANT和BORDER_REPLICATE。 |
| resizeConfig | 输入 | 图片缩放配置数据的指针。 需提前调用acldvppCreateResizeConfig接口创建图片缩放配置数据。本接口不支持“自研的高阶滤波算法”。 VPC进行缩放处理时,缩放后的宽/高是输出图片的宽/高减去扩边的值。 |
| stream | 输入 | 指定Stream。 |
返回值说明
返回0表示任务下发成功,返回非0表示任务下发失败。
父主题: VPC功能
acldvppVpcConvertColorAsync
函数功能
转换图片的格式,输出图片的宽高须与输入图片的宽高一致。异步接口。
约束说明
- 输入、输出图片分辨率为10*6~4096*4096(包括4096)。
- 输入、输出图片的格式请参见图片格式、宽高对齐、内存约束。
函数原型
aclError acldvppVpcConvertColorAsync(****acldvppChannelDesc *channelDesc,
acldvppPicDesc *inputDesc,
acldvppPicDesc *outputDesc,
aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| channelDesc | 输入 | 通道描述信息的指针。 与调用acldvppCreateChannel接口创建通道时指定的channelDesc保持一致。 |
| inputDesc | 输入 | 输入图片信息的指针。 - 调用acldvppCreatePicDesc接口创建图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 |
| outputDesc | 输入&输出 | 输出图片信息的指针。 outputDesc参数作为输入时,需要用户调用如下接口: - 调用acldvppCreatePicDesc接口创建图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 需指定输出图片的宽、高、宽stride、高stride、内存地址、内存大小、格式等。 - 配置输出图片的宽、高时,需与输入图片的宽、高保持一致,否则会返回报错。 如果将输出图片的宽或高配置为0,则VPC内部会将输入图片的宽、高分别作为输出图片的宽、高;同时,VPC内部会按对齐要求计算宽stride、高stride,不同图片格式的对齐要求不同,请参见图片格式、宽高对齐、内存约束。 - 配置输出图片的宽stride、高stride时,满足对齐要求即可,不同图片格式的对齐要求不同,请参见图片格式、宽高对齐、内存约束。 |
| stream | 输入 | 指定Stream。 |
返回值说明
返回0表示任务下发成功,返回非0表示任务下发失败。
参考资源
接口调用示例,参见格式转换示例代码。
父主题: VPC功能
acldvppVpcPyrDownAsync
函数功能
对图像进行金字塔缩放,将输出图片缩放为输入图片的一半。异步接口。
Atlas 200/500 A2推理产品,不支持该接口。
约束说明
- 关于输入图片
- 输入图片分辨率:20*12~2048*2048
- 输入图片格式:PIXEL_FORMAT_YUV_400
- 关于输出图片
- 输出图像分辨率:输入图像分辨率/2
- 图像格式:PIXEL_FORMAT_YUV_400
- PIXEL_FORMAT_YUV_400图片格式的对齐要求请参见图片格式、宽高对齐、内存约束
函数原型
aclError acldvppVpcPyrDownAsync(****acldvppChannelDesc *channelDesc,
acldvppPicDesc *inputDesc,
acldvppPicDesc *outputDesc,
void *reserve,
aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| channelDesc | 输入 | 通道描述信息的指针。 与调用acldvppCreateChannel接口创建通道时指定的channelDesc保持一致。 |
| inputDesc | 输入 | 输入图片信息的指针。 - 调用acldvppCreatePicDesc接口创建图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 |
| outputDesc | 输入&输出 | 输出图片信息的指针。 outputDesc参数作为输入时,需要用户调用如下接口: - 调用acldvppCreatePicDesc接口创建图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 |
| reserve | 输入 | 金字塔缩放配置参数的指针,预留参数。 |
| stream | 输入 | 指定Stream。 |
返回值说明
返回0表示任务下发成功,返回非0表示任务下发失败。
父主题: VPC功能
acldvppVpcEqualizeHistAsync
函数功能
实现图片的色彩重映射。异步接口。
约束说明
-
输入图片分辨率为10*6~4096*4096(包括4096)。
-
输入图片格式支持acldvppPixelFormat枚举值中的如下枚举项:
PIXEL_FORMAT_YUV_400 = 0, // YUV400 8bitPIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1, // YUV420SP NV12 8bitPIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2, // YUV420SP NV21 8bitPIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3, // YUV422SP 8bitPIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4, // YVU422SP 8bitPIXEL_FORMAT_YUV_PACKED_444 = 11, // YUV444P 8bitPIXEL_FORMAT_RGB_888 = 12, // RGB888PIXEL_FORMAT_BGR_888 = 13, // BGR888 -
输出图片分辨率、输出图片格式、widthStride对齐要求、heightStride对齐要求等,必须与输入图片格的要求保持一致。
-
不同图片格式的对齐要求请参见图片格式、宽高对齐、内存约束。
函数原型
aclError acldvppVpcEqualizeHistAsync(const acldvppChannelDesc *channelDesc,
const acldvppPicDesc *inputDesc,
acldvppPicDesc *outputDesc,
const acldvppLutMap *lutMap,
aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| channelDesc | 输入 | 通道描述信息的指针。 与调用acldvppCreateChannel接口创建通道时指定的channelDesc保持一致。 |
| inputDesc | 输入 | 输入图片信息的指针。 - 调用acldvppCreatePicDesc接口创建图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 |
| outputDesc | 输入&输出 | 输出图片信息的指针。 outputDesc参数作为输入时,需要用户调用如下接口: - 调用acldvppCreatePicDesc接口创建图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 |
| lutMap | 输入 | 色彩重映射表的指针。 调用acldvppCreateLutMap接口创建acldvppLutMap类型的数据(表示色彩重映射表),再调用acldvppGetLutMapData获取内存指针,由用户自行向该内存中写入色彩重映射表数据,写完数据后,再将acldvppLutMap类型的数据作为入参传入acldvppVpcEqualizeHistAsync。 |
| stream | 输入 | 指定Stream。 |
返回值说明
返回0表示任务下发成功,返回非0表示任务下发失败。
父主题: VPC功能
acldvppVpcMakeBorderAsync
函数功能
实现图片边界填充功能。异步接口。
约束说明
- 输入图片分辨率为10*6~4096*4096(包括4096),输入图片格式、对齐、内存等约束,请参见图片格式、宽高对齐、内存约束。
- 输出图片分辨率、图片格式、对齐、内存等约束,请参见约束说明。
- 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,需注意:
- 对于YUV420SP输出格式,上下左右填充的尺寸建议为偶数;
- 对于YUV422SP输出格式,左右填充的尺寸建议为偶数。
函数原型
aclError acldvppVpcMakeBorderAsync(const acldvppChannelDesc *channelDesc,
const acldvppPicDesc *inputDesc,
acldvppPicDesc *outputDesc,
const acldvppBorderConfig *borderConfig,
aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| channelDesc | 输入 | 通道描述信息的指针。 与调用acldvppCreateChannel接口创建通道时指定的channelDesc保持一致。 |
| inputDesc | 输入 | 输入图片信息的指针。 - 调用acldvppCreatePicDesc接口创建图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 |
| outputDesc | 输入&输出 | 输出图片信息的指针。 outputDesc参数作为输入时,需要用户调用如下接口: - 调用acldvppCreatePicDesc接口创建图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 |
| borderConfig | 输入 | 填充边界配置的指针。 调用acldvppCreateBorderConfig接口创建填充边界配置。 |
| stream | 输入 | 指定Stream。 |
返回值说明
返回0表示任务下发成功,返回非0表示任务下发失败。
父主题: VPC功能
acldvppVpcCalcHistAsync
函数功能
统计图像中每个像素的各颜色分量的分布。异步接口。
约束说明
-
关于输入图片分辨率的要求:
版本 约束 Atlas 200/500 A2推理产品 输入图片分辨率:10*6~4096*8192(包括4096*8192)。 -
输入图片格式支持acldvppPixelFormat枚举值中的如下枚举项:
PIXEL_FORMAT_YUV_400 = 0, // YUV400 8bitPIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1, // YUV420SP NV12 8bitPIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2, // YUV420SP NV21 8bitPIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3, // YUV422SP 8bitPIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4, // YVU422SP 8bitPIXEL_FORMAT_YUV_SEMIPLANAR_444 = 5, // YUV444SP 8bitPIXEL_FORMAT_YVU_SEMIPLANAR_444 = 6, // YVU444SP 8bitPIXEL_FORMAT_YUYV_PACKED_422 = 7, // YUV422Packed YUYV 8bitPIXEL_FORMAT_UYVY_PACKED_422 = 8, // YUV422Packed UYVY 8bitPIXEL_FORMAT_YVYU_PACKED_422 = 9, // YUV422Packed YVYU 8bitPIXEL_FORMAT_VYUY_PACKED_422 = 10, // YUV422Packed VYUY 8bitPIXEL_FORMAT_YUV_PACKED_444 = 11, // YUV444P 8bitPIXEL_FORMAT_RGB_888 = 12, // RGB888PIXEL_FORMAT_BGR_888 = 13, // BGR888PIXEL_FORMAT_YUV_SEMIPLANAR_440 = 1000, // YUV440SP 8bitPIXEL_FORMAT_YVU_SEMIPLANAR_440 = 1001, // YVU440SP 8bit -
关于图片格式、宽高对齐、内存等总体约束,请参见图片格式、宽高对齐、内存约束。
函数原型
aclError acldvppVpcCalcHistAsync(****acldvppChannelDesc *channelDesc,
acldvppPicDesc *srcPicDesc,
acldvppHist *hist,
void *reserve,
aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| channelDesc | 输入 | 通道描述信息的指针。 与调用acldvppCreateChannel接口创建通道时指定的channelDesc保持一致。 |
| srcPicDesc | 输入 | 输入图片信息的指针。 - 调用acldvppCreatePicDesc接口创建图片描述信息。 - 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,内存地址、内存大小、图片格式、宽、高等)。 说明: 当图片格式为YUV440SP 8bit、YVU440SP 8bit时,Y分量统计准确,UV分量统计上存在误差。 |
| hist | 输入&输出 | 直方图描述信息的指针。 调用acldvppCreateHist接口创建直方图描述信息作为输入。 调用本接口后,输出每张图像各颜色分量的像素值(0-255)分布情况。 |
| reserve | 输入 | 直方图统计配置的指针,预留,当前可填NULL。 |
| stream | 输入 | 指定Stream。 |
返回值说明
返回0表示任务下发成功,返回非0表示任务下发失败。
父主题: VPC功能
在线提单