约束说明

图片分辨率约束

图片格式、宽高对齐、内存约束

VPC在处理图片时,需调用acldvppMalloc接口申请Device上的输入、输出内存,调用acldvppFree接口释放输入、输出内存,这部分内存的生命周期由用户自行管理。

Atlas 200/300/500 推理产品Atlas 训练系列产品的图片格式、宽高对齐约束如下,参见表1表2,其中,8K场景下,输入图片格式仅支持YUV420SP NV12 8bit和YUV420SP NV21 8bit。

Atlas 推理系列产品的图片格式、宽高对齐约束如下,参见表3表4,其中,8K场景下,输入图片格式支持如下格式:
  • YUV400 8bit
  • YUV420SP NV12 8bit、YUV420SP NV21 8bit
  • YUV422SP 8bit、YVU422SP 8bit
  • YUV444SP 8bit、YVU444SP 8bit
  • YUV422P YUYV 8bit、YUV422P UYVY 8bit、YUV422P YVYU 8bit、YUV422P VYUY 8bit

在调用接口实现VPC功能时:

  • 图片格式的定义请参见acldvppPixelFormat,宽stride、高stride、8K等概念请参见基本概念
  • 宽stride最小32、最大16384(16384=4096*4,宽是4096的argb格式的图像,1个像素占用4个字节,一行像素就占用4096*4,即宽stride);高stride最小6、最大16384。
表1 Atlas 200/300/500 推理产品Atlas 训练系列产品的输入图片格式、宽高对齐、内存大小约束

输入图片格式

输入图片宽、高对齐要求

输入图片宽stride、高stride、内存大小要求

YUV400 8bit

无对齐要求

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride * 3/2

YUV420SP NV12 8bit

宽2对齐

高2对齐

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride * 3/2

YUV420SP NV21 8bit

YUV422SP 8bit

宽2对齐

高无对齐要求

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride * 2

YVU422SP 8bit

YUV444SP 8bit

无对齐要求

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride * 3

YVU444SP 8bit

YUV422Packed YUYV 8bit

宽2对齐

高无对齐要求

宽stride为宽16对齐后、再乘以2的值。

高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

YUV444Packed 8bit

无对齐要求

宽stride为宽16对齐后、再乘以3的值。

高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride

RGB888

BGR888

ARGB8888

无对齐要求

宽stride为宽16对齐后、再乘以4的值。

高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride

ABGR8888

RGBA8888

BGRA8888

表2 Atlas 200/300/500 推理产品Atlas 训练系列产品的输出图片格式、宽高对齐、内存大小约束

输出图片格式

输出图片宽、高对齐要求

输出图片宽stride、高stride、内存大小要求

YUV420SP NV12 8bit

宽2对齐

高2对齐

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride * 3/2

YUV420SP NV21 8bit

表3 Atlas 推理系列产品的输入图片格式、宽高对齐、内存大小约束

输入图片格式

输入图片宽、高对齐要求

输入图片宽stride、高stride、内存大小要求

YUV400 8bit

无对齐要求

宽stride为宽16对齐后的值;高stride无对齐要求,与高相同即可。

内存大小(单位Byte)= 宽stride * 高stride

YUV420SP NV12 8bit

宽2对齐

高2对齐

宽stride为宽16对齐后的值;高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride * 3/2

YUV420SP NV21 8bit

YUV422SP 8bit

宽2对齐

高无对齐要求

宽stride为宽16对齐后的值;高stride无对齐要求,与高相同即可。

内存大小(单位Byte)= 宽stride * 高stride * 2

YVU422SP 8bit

YUV444SP 8bit

无对齐要求

宽stride为宽16对齐后的值;高stride无对齐要求,与高相同即可。

内存大小(单位Byte)= 宽stride * 高stride * 3

YVU444SP 8bit

YUV422Packed YUYV 8bit

宽2对齐

高无对齐要求

宽stride为宽16对齐后、再乘以2的值;高stride无对齐要求,与高相同即可。

内存大小(单位Byte)= 宽stride * 高stride

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

YUV444Packed 8bit

无对齐要求

宽stride为宽16对齐后、再乘以3的值;高stride无对齐要求,与高相同即可。

内存大小(单位Byte)= 宽stride * 高stride

RGB888

BGR888

ARGB8888

无对齐要求

宽stride为宽16对齐后、再乘以4的值;高stride无对齐要求,与高相同即可。

内存大小(单位Byte)= 宽stride * 高stride

ABGR8888

RGBA8888

BGRA8888

YUV440SP 8bit

宽无对齐要求

高2对齐

宽stride为宽16对齐后的值;高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride * 2

YVU440SP 8bit

表4 Atlas 推理系列产品的输出图片格式、宽高对齐、内存大小约束

输出图片格式

输出图片宽、高对齐要求

输出图片宽stride、高stride、内存大小要求

YUV400 8bit

无对齐要求

宽stride为宽16对齐后的值;高stride无对齐要求,与高相同即可。

内存大小(单位Byte)= 宽stride * 高stride

YUV420SP NV12 8bit

宽2对齐

高2对齐

宽stride为宽16对齐后的值;高stride为高2对齐后的值。

内存大小(单位Byte)= 宽stride * 高stride * 3/2

YUV420SP NV21 8bit

YUV422SP 8bit

宽2对齐

高无对齐要求

宽stride为宽16对齐后的值;高stride无对齐要求,与高相同即可。

内存大小(单位Byte)= 宽stride * 高stride * 2

YVU422SP 8bit

YUV444Packed 8bit

无对齐要求

宽stride为宽16对齐后、再乘以3的值;高stride无对齐要求,与高相同即可。

内存大小(单位Byte)= 宽stride * 高stride

RGB888

BGR888

ARGB8888

无对齐要求

宽stride为宽16对齐后、再乘以4的值;高stride无对齐要求,与高相同即可。

内存大小(单位Byte)= 宽stride * 高stride

ABGR8888

RGBA8888

BGRA8888

抠图、贴图约束

精度相关约束

VPC的输出作为模型推理的输入时:

Atlas 200/300/500 推理产品Atlas 训练系列产品上,VPC功能中,贴图区域的宽*高有16*2对齐的约束,贴图有效区域的宽*高不满足16*2对齐时,贴图区域中会存在一些补边的无效数据,为保证推理精度,贴图有效区域的宽*高不满足16*2对齐时,用户需借助AIPP抠出有效区域,去除无效数据。

Atlas 推理系列产品上,VPC功能中,贴图区域的宽有16对齐的约束,贴图有效区域的宽不满足16对齐时,贴图区域中会存在一些补边的无效数据,为保证推理精度,贴图有效区域的宽不满足16对齐时,用户需借助AIPP抠出有效区域,去除无效数据。