acldvppVpcBatchCropResizeMakeBorderAsync

函数功能

支持从一张或多张输入图片中抠出一张或多张子图,对每个子图进行缩放,扩边填充后输出至目标图像内存地址。异步接口。

Atlas 200/300/500 推理产品,不支持该接口。

Atlas 训练系列产品,不支持该接口。

约束说明

版本

约束

Atlas 200/300/500 推理产品

Atlas 训练系列产品

  • 关于输入图片分辨率、图片格式:
    • 输入图片分辨率在10*6~4096*4096(包括4096)范围内时,支持图片格式、宽高对齐、内存约束处说明的输入图片格式。
    • 输入图片的宽或高在4096~8192(包括8192)范围内时,支持格式如下:
      支持acldvppPixelFormat枚举值中的如下枚举项:
      PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1,       // YUV420SP NV12 8bit   
      PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2,       // YUV420SP NV21 8bit 
  • 关于输出图片分辨率、图片格式请参见图片格式、宽高对齐、内存约束
  • 关于各图片格式的宽高对齐、内存大小约束,请参见图片格式、宽高对齐、内存约束
  • 使用本接口实现等比例缩放功能时,相关的描述及约束请参见抠图、贴图约束
  • 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,需注意:
    • 对于YUV420SP输出格式,上下左右填充的尺寸建议为偶数;
    • 对于YUV422SP输出格式,左右填充的尺寸建议为偶数。

Atlas 推理系列产品

  • 关于输入图片分辨率、图片格式:
    • 输入图片分辨率在10*6~4096*4096(包括4096)范围内时,支持图片格式、宽高对齐、内存约束处说明的输入图片格式。
    • 输入图片的宽或高在4096~8192(包括8192)范围内时,支持格式如下:
      支持acldvppPixelFormat枚举值中的如下枚举项:
      PIXEL_FORMAT_YUV_400 = 0,               // YUV400 8bit
      PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1,    // YUV420SP NV12 8bit   
      PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2,    // YUV420SP NV21 8bit 
      PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3,    // YUV422SP 8bit
      PIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4,    // YVU422SP 8bit
      PIXEL_FORMAT_YUV_SEMIPLANAR_444 = 5,    // YUV444SP 8bit
      PIXEL_FORMAT_YVU_SEMIPLANAR_444 = 6,    // YVU444SP 8bit
      PIXEL_FORMAT_YUYV_PACKED_422 = 7,       // YUV422Packed YUYV 8bit
      PIXEL_FORMAT_UYVY_PACKED_422 = 8,       // YUV422Packed UYVY 8bit
      PIXEL_FORMAT_YVYU_PACKED_422 = 9,       // YUV422Packed YVYU 8bit
      PIXEL_FORMAT_VYUY_PACKED_422 = 10,      // YUV422Packed VYUY 8bit
  • 关于输出图片分辨率、图片格式请参见图片格式、宽高对齐、内存约束
  • 关于各图片格式的宽高对齐、内存大小约束,请参见图片格式、宽高对齐、内存约束
  • 当输入、输出图片格式都为ARGB8888、ABGR8888、RGBA8888、BGRA8888格式时,在经过本接口处理后,A分量值会变为0。
  • 使用本接口实现等比例缩放功能时,相关的描述及约束请参见抠图、贴图约束
  • 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,需注意:
    • 对于YUV420SP输出格式,上下左右填充的尺寸建议为偶数;
    • 对于YUV422SP输出格式,左右填充的尺寸建议为偶数。

Atlas A2训练系列产品

  • 关于图片分辨率、图片格式、宽高对齐、内存等总体约束,请参见图片格式、宽高对齐、内存约束
  • 使用本接口实现等比例缩放功能时,相关的描述及约束请参见抠图、贴图约束
  • 由于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

输入

批量输入图片描述信息的指针。

roiNums

输入

每个输入图片抠图数量的指针,当前最大抠图数量为256。

roiNums为数组,数组总和小于等于256,与dstBatchPicDescs结构体中的batchSize值保持一致。

roiNums[0]+...+roiNums[size-1] <= 256

size

输入

表示roiNums数组中的元素个数,个数小于等于256。

dstBatchPicDescs

输入&输出

批量输出图片描述信息的指针。

dstBatchPicDescs参数作为输入时,需要用户调用如下接口:

cropAreas

输入

抠图区域位置的指针数组。

需提前调用acldvppCreateRoiConfig接口创建区域位置数据。

cropAreas、borderCfgs数组中的元素个数与dstBatchPicDescs结构体中的batchSize值相等。

borderCfgs

输入

扩边填充配置的指针数组。

borderCfgs数组中的元素与cropAreas数组中的元素一一对应。

扩边填充配置参数中的borderType参数值仅支持BORDER_CONSTANT和BORDER_REPLICATE。

resizeConfig

输入

图片缩放配置数据的指针。

需提前调用acldvppCreateResizeConfig接口创建图片缩放配置数据。Atlas A2训练系列产品,本接口不支持“自研的高阶滤波算法”。

VPC进行缩放处理时,缩放后的宽/高是输出图片的宽/高减去扩边的值。

stream

输入

指定Stream。

返回值说明

返回0表示任务下发成功,返回非0表示任务下发失败。