文档
注册

约束说明

本节中8K、非8K的概念如下:

  • 非8K:宽*高在10*6~4096*4096范围内,包括4096。
  • 8K:宽或高在4096~8192,不包括4096。

图片分辨率约束

  • 输入图片分辨率

    10*6~8192*8192

    在调用接口实现VPC功能时,各接口对分辨率的要求可能不同,请参见VPC功能下各接口的说明。其中,当输入图片格式为YUV440SP、YUV440P时,输入图片的宽最大值为4096。

  • 输出图片分辨率

    版本

    分辨率范围

    Atlas 200/300/500 推理产品

    Atlas 训练系列产品

    Atlas 推理系列产品(Ascend 310P处理器)

    10*6~4096*4096

    Atlas A2训练系列产品

    Atlas 200/500 A2推理产品

    10*6~4096*8192

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

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

图片格式、宽高对齐约束请参见表1表2

Atlas 200/300/500 推理产品,在8K场景下,输入图片格式仅支持YUV420SP NV12 8bit和YUV420SP NV21 8bit。

Atlas 训练系列产品,在8K场景下,输入图片格式仅支持YUV420SP NV12 8bit和YUV420SP NV21 8bit。

Atlas 推理系列产品(Ascend 310P处理器),在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
Atlas A2训练系列产品,在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
Atlas 200/500 A2推理产品,在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。
  • 宽stride最小10、最大16384(16384=4096*4,宽是4096的argb格式的图像,1个像素占用4个字节,一行像素就占用4096*4,即宽stride);高stride最小6、最大16384。
表1 输入图片格式、宽高对齐、内存大小约束

版本

输入图片格式

输入图片宽、高对齐要求

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

Atlas 200/300/500 推理产品

Atlas 训练系列产品

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

Atlas 推理系列产品(Ascend 310P处理器)

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

Atlas 200/500 A2推理产品

Atlas A2训练系列产品

通用格式,各版本都支持

YUV400 8bit

无对齐要求

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

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

宽stride为宽16对齐后的值。

高stride无对齐要求,与高相同即可。

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

宽stride无对齐要求,与宽相同即可。

高stride无对齐要求,与高相同即可。

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

YUV420SP NV12 8bit

宽2对齐

高2对齐

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

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

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

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

宽stride无对齐要求,与宽相同即可。

高stride为高2对齐后的值。

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

YUV420SP NV21 8bit

YUV422SP 8bit

宽2对齐

高无对齐要求

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

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

宽stride为宽16对齐后的值。

高stride无对齐要求,与高相同即可。

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

宽stride无对齐要求,与宽相同即可。

高stride无对齐要求,与高相同即可。

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

YVU422SP 8bit

YUV444SP 8bit

无对齐要求

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

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

宽stride为宽16对齐后的值。

高stride无对齐要求,与高相同即可。

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

宽stride无对齐要求,与宽相同即可。

高stride无对齐要求,与高相同即可。

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

YVU444SP 8bit

YUV422Packed YUYV 8bit

宽2对齐

高无对齐要求

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

高stride为高2对齐后的值。

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

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

高stride无对齐要求,与高相同即可。

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

宽stride为宽乘以2的值。

高stride无对齐要求,与高相同即可。

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

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

YUV444Packed 8bit

无对齐要求

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

高stride为高2对齐后的值。

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

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

高stride无对齐要求,与高相同即可。

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

宽stride为宽乘以3的值。

高stride无对齐要求,与高相同即可。

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

RGB888

BGR888

ARGB8888

无对齐要求

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

高stride为高2对齐后的值。

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

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

高stride无对齐要求,与高相同即可。

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

宽stride为宽乘以4的。

高stride无对齐要求,与高相同即可。

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

ABGR8888

RGBA8888

BGRA8888

该部分格式仅以下版本支持:

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 200/500 A2推理产品

Atlas A2训练系列产品

YUV440SP 8bit

宽无对齐要求

高2对齐

-

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

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

宽stride无对齐要求,与宽相同即可。

高stride为高2对齐后的值。

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

YVU440SP 8bit

该部分格式仅以下版本支持:

Atlas 200/500 A2推理产品

Atlas A2训练系列产品

YVU420Planar

宽2对齐,高2对齐

-

-

宽stride无对齐要求,与宽相同即可。

高stride无对齐要求,与高相同即可。

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

YUV420Planar

YVU422Planar

无对齐要求

宽stride无对齐要求,与宽相同即可。

高stride无对齐要求,与高相同即可。

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

YUV422Planar

YVU444Planar

无对齐要求

宽stride无对齐要求,与宽相同即可。

高stride无对齐要求,与高相同即可。

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

YUV444Planar

YVU444Packed 8bit

无对齐要求

宽stride无对齐要求,宽stride为宽乘以3的值。

高stride无对齐要求,与高相同即可。

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

YUV440Planar

宽无对齐要求,但宽≤4096

高2对齐

宽stride无对齐要求,与宽相同即可。

高stride无对齐要求,与高相同即可。

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

YVU440Planar

RGB888Planar

无对齐要求

宽stride无对齐要求,与宽相同即可。

高stride无对齐要求,与高相同即可。

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

BGR888Planar

Atlas A2训练系列产品

YUV400 FP32

无对齐要求

-

-

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

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

RGB888 FP32

BGR888 FP32

RGB888Planar FP32

BGR888Planar FP32

无对齐要求

宽stride无对齐要求,与宽相同即可;高stride无对齐要求,与高相同即可。

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

表2 输出图片格式、宽高对齐、内存大小约束

版本

输出图片格式

输出图片宽、高对齐要求

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

Atlas 200/300/500 推理产品

Atlas 训练系列产品

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

Atlas 推理系列产品(Ascend 310P处理器)

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

Atlas 200/500 A2推理产品

Atlas A2训练系列产品

通用格式,各版本都支持

YUV420SP NV12 8bit

宽2对齐

高2对齐

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

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

宽stride为宽16对齐后的值。

高stride为高2对齐后的值。

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

宽stride无对齐要求,与宽相同即可。

高stride为高2对齐后的值。

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

YUV420SP NV21 8bit

该部分格式仅以下版本支持:

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 200/500 A2推理产品

Atlas A2训练系列产品

YUV400 8bit

无对齐要求

-

宽stride为宽16对齐后的值。

高stride无对齐要求,与高相同即可。

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

宽stride无对齐要求,与宽相同即可;高stride无对齐要求,与高相同即可。

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

YUV422SP 8bit

宽2对齐

高无对齐要求

宽stride为宽16对齐后的值。

高stride无对齐要求,与高相同即可。

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

宽stride无对齐要求,与宽相同即可;高stride无对齐要求,与高相同即可。

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

YVU422SP 8bit

YUV444Packed 8bit

无对齐要求

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

高stride无对齐要求,与高相同即可。

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

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

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

RGB888

BGR888

ARGB8888

无对齐要求

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

高stride无对齐要求,与高相同即可。

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

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

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

ABGR8888

RGBA8888

BGRA8888

该部分格式仅以下版本支持:

Atlas 200/500 A2推理产品

Atlas A2训练系列产品

YVU444Packed

无对齐要求

-

-

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

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

RGB888Planar

BGR888Planar

无对齐要求

-

-

宽stride无对齐要求,与宽相同即可;高stride无对齐要求,与高相同即可。

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

该部分格式仅以下版本支持:

Atlas A2训练系列产品

YUV400 FP32

RGB888 FP32

BGR888 FP32

无对齐要求

-

-

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

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

RGB888Planar FP32

BGR888Planar FP32

无对齐要求

宽stride无对齐要求,与宽相同即可;高stride无对齐要求,与高相同即可。

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

抠图、贴图约束

  • 抠图区域不超出输入图片区域。
  • 贴图区域不超出输出图片区域,最大贴图个数256个。

    对于Atlas 200/300/500 推理产品,贴图区域相对输出图片的左偏移16对齐,贴图时可直接放置在输出图片的最左侧,即相对输出图片的左偏移为0,0也满足16对齐的要求;输出图片的贴图宽度建议16对齐,如果不是16对齐,会多写一段无效数据使其16对齐。见图4图5,贴图区域旁边的绿色框就表示无效数据。

    对于Atlas 训练系列产品,贴图区域相对输出图片的左偏移16对齐,贴图时可直接放置在输出图片的最左侧,即相对输出图片的左偏移为0,0也满足16对齐的要求;输出图片的贴图宽度建议16对齐,如果不是16对齐,会多写一段无效数据使其16对齐。见图4图5,贴图区域旁边的绿色框就表示无效数据。

    对于Atlas 推理系列产品(Ascend 310P处理器),贴图区域相对输出图片的左偏移16对齐,贴图时可直接放置在输出图片的最左侧,即相对输出图片的左偏移为0,0也满足16对齐的要求;输出图片的贴图宽度建议16对齐,如果不是16对齐,会多写一段无效数据使其16对齐。见图4图5,贴图区域旁边的绿色框就表示无效数据。

  • 抠图、贴图区域的奇数、偶数限制为:

    昇腾AI处理器

    约束

    Atlas 200/300/500 推理产品

    输出图片格式为YUV420SP,贴图区域奇数、偶数限制为:左偏移和上偏移为偶数、右偏移和下偏移为奇数。

    Atlas 训练系列产品

    输出图片格式为YUV420SP,贴图区域奇数、偶数限制为:左偏移和上偏移为偶数、右偏移和下偏移为奇数。

    Atlas 推理系列产品(Ascend 310P处理器)

    输出图片格式为YUV420SP,贴图区域奇数、偶数限制为:左偏移和上偏移为偶数、右偏移和下偏移为奇数。

    输出图片格式为YUV422SP,贴图区域奇数、偶数限制为:左偏移为偶数、右偏移为奇数。

    其它格式,贴图区域没有偏移奇偶数的限制。

    Atlas A2训练系列产品

    抠图起始坐标无奇数、偶数限制;

    输出图片格式为YUV420时,贴图区奇数、偶数限制为:左偏移和上偏移为偶数、右偏移和下偏移为奇数;

    输出图片格式为YUV422时,贴图区奇数、偶数限制为:左偏移为偶数、右偏移为奇数。

    抠图起始坐标无奇数、偶数限制;当输出图片格式为YUV420时,贴图区奇数、偶数限制为:左偏移和上偏移为偶数、右偏移和下偏移为奇数;当输出图片格式为YUV422时,贴图区奇数、偶数限制为:左偏移为偶数、右偏移为奇数。

  • Atlas 200/300/500 推理产品上,缩放场景下,贴图/抠图的宽或高缩放比例范围:[1/32, 16]。
  • Atlas 训练系列产品上,缩放场景下,贴图/抠图的宽或高缩放比例范围:[1/32, 16]。
  • 除了Atlas A2训练系列产品,其它昇腾AI处理器在等比例缩放场景下,由于贴图左偏移16对齐的限制,如果直接调用acldvppVpcCropResizePasteAsync接口实现缩放功能,贴图的位置可能不在输出图片的正中心位置,此时可通过抠图、缩放、填充几个功能配合使用(调用acldvppVpcBatchCropResizeMakeBorderAsync接口),实现等比例缩放。

YUV格式图像下采样约束

VPC在处理图片时,会根据输入或输出图片格式,将输入图片格式转换为YUV444或RGB用于内部处理,YUV444或RGB没有宽高奇偶数的限制,但当输出图片格式为YUV420SP或YUV422SP格式时,会进行下采样处理,由于YUV420SP或YUV422SP格式本身的数据排布导致宽高存在奇偶数限制,因此输出图片的边缘可能存在异常数据。

图1 异常效果图片举例

出现异常数据的根因在于,在计算过程中,出现输出图片位置处于奇数起始点时,此时YUV444格式的图片是正确的,但是下采样到YUV420SP格式时,由于奇数行和偶数行是共用同一个uv的,导致图片起始行的Y与上一行的UV组成新的像素,产生异常数据。

精度相关约束

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

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

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

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

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词