约束说明
Atlas 200/300/500 推理产品上,该功能为预留功能,暂不支持。
Atlas 训练系列产品上,该功能为预留功能,暂不支持。
图片分辨率约束
- 输入图片分辨率
VPC处理图片时,通用的输入分辨率范围为10 * 6 ~ 8192 * 8192,其中部分接口的分辨率限制可能不同,请以具体接口内的说明为准,请参见VPC图像处理接口下各接口的说明。其中,当输入图片格式为YUV440SP、YUV440P时,输入图片的宽最大值为4096。
- 输出图片分辨率
产品
分辨率范围
Atlas 推理系列产品
10 * 6 ~ 4096 * 4096
Atlas A2训练系列产品/Atlas 800I A2推理产品
Atlas 200I/500 A2推理产品
10 * 6 ~ 4096 * 8192
内存申请/释放接口说明
输入、输出内存大小要求请参见图片格式、宽高对齐、内存约束中的计算公式。
产品 |
内存申请/释放接口 |
---|---|
Atlas 推理系列产品 |
VPC在处理图片时,需调用acl.himpi.dvpp_malloc接口申请Device上的输入、输出内存,调用acl.himpi.dvpp_free接口释放输入、输出内存,这部分内存的生命周期由用户自行管理。 |
Atlas A2训练系列产品/Atlas 800I A2推理产品 Atlas 200I/500 A2推理产品 |
VPC在处理图片时,支持以下两种内存申请接口:
调用acl.himpi.dvpp_malloc接口申请的内存为媒体数据处理的专用内存,但专用内存的地址空间有限,若关注内存规划或内存资源有限时,建议调用acl.rt.malloc接口申请内存。 |
图片格式、宽高对齐、内存约束
在调用接口实现VPC功能时:
- 图片格式的定义请参见hi_pixel_format,宽Stride、高Stride等概念请参见基本概念。
- 不同版本中,宽Stride、高Stride的最小值、最大值不同,如下:
- Atlas 推理系列产品上,宽Stride最小32、最大16384(16384 = 4096 * 4,宽是4096的argb格式的图像,1个像素占用4个字节,一行像素就占用4096 * 4,即宽Stride);高Stride最小6、最大16384。
- Atlas 200I/500 A2推理产品上,宽Stride最小10、高Stride最小6。
- Atlas A2训练系列产品/Atlas 800I A2推理产品上,宽Stride最小10、高Stride最小6。
- 各接口对图片格式的要求可能不同,请参见VPC图像处理接口下各接口的说明。
产品 |
图片格式 |
图片宽、高对齐要求 |
图片宽Stride、高Stride对齐要求 Atlas 推理系列产品 |
图片宽Stride、高Stride对齐要求 Atlas 200I/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
内存大小要求(单位Byte) |
---|---|---|---|---|---|
通用格式,各版本都支持 |
YUV400 8bit |
无对齐要求 |
宽Stride为宽16对齐后的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride无对齐要求,与宽相同即可; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
YUV420SP NV12 8bit YUV420SP NV21 8bit |
宽2对齐 高2对齐 |
宽Stride为宽16对齐后的值; 高Stride为高2对齐后的值。 |
宽Stride无对齐要求,与宽相同即可; 高stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 3/2 |
|
YUV422SP 8bit YVU422SP 8bit |
宽2对齐 高无对齐要求 |
宽Stride为宽16对齐后的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride无对齐要求,与宽相同即可; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 2 |
|
YUV444SP 8bit YVU444SP 8bit |
无对齐要求 |
宽Stride为宽16对齐后的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride无对齐要求,与宽相同即可; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 3 |
|
YUV422Packed YUYV 8bit YUV422Packed UYVY 8bit YUV422Packed YVYU 8bit YUV422Packed VYUY 8bit |
宽2对齐 高无对齐要求 |
宽Stride为宽16对齐后、再乘以2的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride为宽 * 2的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
|
YUV444Packed 8bit RGB888 BGR888 |
无对齐要求 |
宽Stride为宽16对齐后、再乘以3的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride为宽 * 3的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
|
ARGB8888 ABGR8888 RGBA8888 BGRA8888 |
无对齐要求 |
宽Stride为宽16对齐后、再乘以4的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride为宽 * 4的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
|
YUV440SP 8bit YVU440SP 8bit |
宽无对齐要求,但宽≤4096 高2对齐 |
宽Stride为宽16对齐后的值; 高Stride为高2对齐后的值。 |
宽Stride无对齐要求,与宽相同即可; 高Stride为高2对齐后的值。 |
宽Stride * 高Stride * 2 |
|
该部分格式仅以下版本支持: Atlas 200I/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
YVU420Planar YUV420Planar |
宽2对齐,高2对齐 |
- |
宽Stride无对齐要求,与宽相同即可;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 3/2 |
YVU422Planar YUV422Planar |
无对齐要求 |
- |
宽Stride无对齐要求,与宽相同即可;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 2 |
|
YVU444Planar YUV444Planar |
无对齐要求 |
- |
宽Stride无对齐要求,与宽相同即可;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 3 |
|
YVU444Packed 8bit |
无对齐要求 |
- |
宽Stride无对齐要求,宽Stride为宽 * 3的值;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
|
YUV440Planar YVU440Planar |
宽无对齐要求,但宽 ≤ 4096 高2对齐 |
- |
宽Stride无对齐要求,与宽相同即可;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 2 |
|
RGB888Planar BGR888Planar |
无对齐要求 |
- |
宽Stride无对齐要求,与宽相同即可;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 3 |
|
该部分格式仅以下版本支持: Atlas A2训练系列产品/Atlas 800I A2推理产品 |
YUV400 FP32 |
无对齐要求 |
- |
宽Stride无对齐要求,宽Stride为宽 * 4(4表示FP32占4个字节)的值;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
RGB888 FP32 BGR888 FP32 |
无对齐要求 |
- |
宽Stride无对齐要求,宽Stride为宽 * 3 * 4(4表示FP32占4个字节)的值;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
|
RGB888Planar FP32 BGR888Planar FP32 |
无对齐要求 |
- |
宽Stride无对齐要求,宽Stride为宽 * 4(4表示FP32占4个字节)的值;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 3 |
产品 |
图片格式 |
图片宽、高对齐要求 |
图片宽Stride、高Stride对齐要求 Atlas 推理系列产品 |
图片宽Stride、高Stride对齐要求 Atlas 200I/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
内存大小要求(单位Byte) |
---|---|---|---|---|---|
通用格式,各版本都支持 |
YUV400 8bit |
无对齐要求 |
宽Stride为宽16对齐后的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride无对齐要求,与宽相同即可; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
YUV420SP NV12 8bit YUV420SP NV21 8bit |
宽2对齐 高2对齐 |
宽Stride为宽16对齐后的值; 高Stride为高2对齐后的值。 |
宽Stride无对齐要求,与宽相同即可; 高stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 3/2 |
|
YUV422SP 8bit YVU422SP 8bit |
宽2对齐 高无对齐要求 |
宽Stride为宽16对齐后的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride无对齐要求,与宽相同即可; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 2 |
|
YUV444Packed 8bit RGB888 BGR888 |
无对齐要求 |
宽Stride为宽16对齐后、再乘以3的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride为宽 * 3的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
|
ARGB8888 ABGR8888 RGBA8888 BGRA8888 |
无对齐要求 |
宽Stride为宽16对齐后、再乘以4的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride为宽 * 4的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
|
该部分格式仅以下版本支持: Atlas 200I/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
YUV422Packed YUYV 8bit YUV422Packed UYVY 8bit YUV422Packed YVYU 8bit YUV422Packed VYUY 8bit |
宽无对齐要求 高2对齐 |
- |
宽Stride为宽 * 2的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
该部分格式仅以下版本支持: Atlas 200I/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
YVU444Packed |
无对齐要求 |
- |
宽Stride为宽 * 3的值; 高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
RGB888Planar BGR888Planar |
无对齐要求 |
- |
宽Stride无对齐要求,与宽相同即可;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 3 |
|
该部分格式仅以下版本支持: Atlas A2训练系列产品/Atlas 800I A2推理产品 |
YUV400 FP32 |
无对齐要求 |
- |
宽Stride无对齐要求,宽Stride为宽 * 4(4表示FP32占4个字节)的值;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
RGB888 FP32 BGR888 FP32 |
无对齐要求 |
- |
宽Stride无对齐要求,宽Stride为宽 * 3 * 4(4表示FP32占4个字节)的值;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride |
|
RGB888Planar FP32 BGR888Planar FP32 |
无对齐要求 |
- |
宽Stride无对齐要求,宽Stride为宽 * 4(4表示FP32占4个字节)的值;高Stride无对齐要求,与高相同即可。 |
宽Stride * 高Stride * 3 |
抠图、贴图约束
- 抠图区域不超出输入图片区域。
- 抠图、贴图区域的奇数、偶数限制为:
输出图片格式为YUV420SP,贴图区域奇数、偶数限制为:左偏移和上偏移为偶数、右偏移和下偏移为奇数。
输出图片格式为YUV422SP,贴图区域奇数、偶数限制为:左偏移为偶数、右偏移为奇数。
其它格式,贴图区域没有偏移奇偶数的限制。
- 贴图区域不超出输出图片区域,最大贴图个数256个。
在Atlas 推理系列产品上,由于16对齐的要求,还存在以下约束:
- 贴图区域相对输出图片的左偏移16对齐。贴图时可直接放置在输出图片的最左侧,即相对输出图片的左偏移为0,0也满足16对齐的要求。
- 输出图片的贴图宽度建议16对齐,如果不是16对齐,会多写一段无效数据使其16对齐,如图4、图5所示,贴图区域旁边的绿色框就表示无效数据。
- 等比例缩放场景下,由于贴图左偏移16对齐的限制,如果直接调用acl.himpi.vpc_crop_resize_paste接口实现缩放功能,贴图的位置可能不在输出图片的正中心位置,此时可通过抠图、缩放、填充几个功能配合使用(调用acl.himpi.vpc_crop_resize_make_border或acl.himpi.vpc_batch_crop_resize_make_border接口),实现等比例缩放。
YUV格式图像下采样约束
VPC在处理图片时,会根据输入或输出图片格式,将输入图片格式转换为YUV444或RGB用于内部处理,YUV444或RGB没有宽高奇偶数的限制,但当输出图片格式为YUV420SP或YUV422SP格式时,会进行下采样处理,由于YUV420SP或YUV422SP格式本身的数据排布导致宽高存在奇偶数限制,因此输出图片的边缘可能存在异常数据。
出现异常数据的根因在于,在计算过程中,出现输出图片位置处于奇数起始点时,此时YUV444格式的图片是正确的,但是下采样到YUV420SP格式时,由于奇数行和偶数行是共用同一个UV的,导致图片起始行的Y与上一行的UV组成新的像素,产生异常数据。
精度相关约束(Atlas 推理系列产品)
VPC功能中,贴图区域的宽有16对齐的约束,贴图有效区域的宽不满足16对齐时,贴图区域中会存在一些补边的无效数据,为保证推理精度,贴图有效区域的宽不满足16对齐时,在贴图前用户可先将贴图有效区域缩放成16 * 2对齐,或在推理前借助AIPP抠出有效区域,去除无效数据。