开发者
资源

VPC约束说明

图片分辨率约束

  • 输入图片分辨率

    VPC处理图片时,通用的输入分辨率范围为10*6~8192*8192,其中部分接口的分辨率限制可能不同,请以具体接口内的说明为准,请参见VPC图像处理功能下各接口的说明。其中,当输入图片格式为YUV440SP、YUV440P时,输入图片的宽最大值为4096。

  • 输出图片分辨率

    型号

    分辨率范围

    Atlas 推理系列产品

    10*6~4096*4096

    Atlas 350 加速卡

    Atlas A3 训练系列产品 / Atlas A3 推理系列产品

    Atlas A2 训练系列产品 / Atlas A2 推理系列产品

    Atlas 200I/500 A2 推理产品

    10*6~4096*8192

内存申请/释放接口说明

VPC在处理图片时,需调用hi_mpi_dvpp_malloc接口申请Device上的输入、输出内存,调用hi_mpi_dvpp_free接口释放输入、输出内存,这部分内存的生命周期由用户自行管理。输入、输出内存大小要求请参见图片格式、宽高对齐、内存约束中的计算公式。

针对以下产品型号,还支持调用aclrtMalloc\aclrtFree接口申请\释放Device上的输入、输出内存,这部分内存的生命周期由用户自行管理:

Atlas 350 加速卡

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

调用hi_mpi_dvpp_malloc接口申请的内存为媒体数据处理的专用内存,但专用内存的地址空间有限,若关注内存规划或内存资源有限时,建议调用aclrtMalloc接口申请内存。调用aclrtMalloc接口申请内存时,建议申请ACL_MEM_MALLOC_HUGE_FIRST类型的内存,优先申请大页内存,大页性能更优。

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

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

不同产品型号的图片格式、宽高对齐、内存约束不同。

表1 Atlas 350 加速卡输入图片格式、宽高对齐、内存大小约束

图片格式

图片宽、高对齐要求

图片宽stride、高stride对齐要求

内存大小要求(单位Byte)

YUV400 8bit

无对齐要求

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

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

宽stride * 高stride

YUV420SP NV12 8bit

YUV420SP NV21 8bit

宽2对齐

高2对齐

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

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

宽stride * 高stride * 3/2

YUV422SP 8bit

YVU422SP 8bit

宽2对齐

高无对齐要求

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

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

宽stride * 高stride * 2

YUV422Packed YUYV 8bit

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

宽2对齐

高无对齐要求

宽stride为宽*2的值;

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

宽stride * 高stride

YUV444Packed 8bit

RGB888

BGR888

无对齐要求

宽stride为宽*3的值;

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

宽stride * 高stride

YUV444SP 8bit

YVU444SP 8bit

无对齐要求

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

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

宽stride * 高stride * 3

ARGB8888

ABGR8888

RGBA8888

BGRA8888

无对齐要求

宽stride为宽*4的值;

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

宽stride * 高stride

YUV440SP 8bit

YVU440SP 8bit

宽无对齐要求,但宽≤4096

高2对齐

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

高stride为高2对齐后的值。

宽stride * 高stride * 2

表2 Atlas 350 加速卡输出图片格式、宽高对齐、内存大小约束

图片格式

图片宽、高对齐要求

图片宽stride、高stride对齐要求

内存大小要求(单位Byte)

YUV400 8bit

无对齐要求

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

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

宽stride * 高stride

YUV420SP NV12 8bit

YUV420SP NV21 8bit

宽2对齐

高2对齐

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

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

宽stride * 高stride * 3/2

YUV422SP 8bit

YVU422SP 8bit

宽2对齐

高无对齐要求

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

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

宽stride * 高stride * 2

YUV444Packed 8bit

RGB888

BGR888

无对齐要求

宽stride为宽*3的值;

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

宽stride * 高stride

ARGB8888

ABGR8888

RGBA8888

BGRA8888

无对齐要求

宽stride为宽*4的值;

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

宽stride * 高stride

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

图片格式

图片宽、高对齐要求

图片宽stride、高stride对齐要求

内存大小要求(单位Byte)

YUV400 8bit

无对齐要求

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

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

宽stride * 高stride

YUV420SP NV12 8bit

YUV420SP NV21 8bit

宽2对齐

高2对齐

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

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

宽stride * 高stride * 3/2

YUV422SP 8bit

YVU422SP 8bit

宽2对齐

高无对齐要求

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

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

宽stride * 高stride * 2

YUV422Packed YUYV 8bit

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

宽2对齐

高无对齐要求

宽stride为宽*2的值;

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

宽stride * 高stride

YUV444Packed 8bit

RGB888

BGR888

无对齐要求

宽stride为宽*3的值;

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

宽stride * 高stride

YUV444SP 8bit

YVU444SP 8bit

无对齐要求

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

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

宽stride * 高stride * 3

ARGB8888

ABGR8888

RGBA8888

BGRA8888

无对齐要求

宽stride为宽*4的值;

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

宽stride * 高stride

YUV440SP 8bit

YVU440SP 8bit

宽无对齐要求,但宽≤4096

高2对齐

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

高stride为高2对齐后的值。

宽stride * 高stride * 2

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

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

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

图片格式

图片宽、高对齐要求

图片宽stride、高stride对齐要求

内存大小要求(单位Byte)

YUV400 8bit

无对齐要求

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

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

宽stride * 高stride

YUV420SP NV12 8bit

YUV420SP NV21 8bit

宽2对齐

高2对齐

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

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

宽stride * 高stride * 3/2

YUV422SP 8bit

YVU422SP 8bit

宽2对齐

高无对齐要求

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

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

宽stride * 高stride * 2

YUV444Packed 8bit

RGB888

BGR888

无对齐要求

宽stride为宽*3的值;

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

宽stride * 高stride

ARGB8888

ABGR8888

RGBA8888

BGRA8888

无对齐要求

宽stride为宽*4的值;

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

宽stride * 高stride

YUV422Packed YUYV 8bit

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

注意,仅Remap变换功能支持YUV422P的输出图片格式。

宽无对齐要求

高2对齐

宽stride为宽*2的值;

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

宽stride * 高stride

YVU444Packed

无对齐要求

宽stride为宽*3的值;

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

宽stride * 高stride

RGB888Planar

BGR888Planar

无对齐要求

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

宽stride * 高stride * 3

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

表5 Atlas 200I/500 A2 推理产品 输入图片格式、宽高对齐、内存大小约束

图片格式

图片宽、高对齐要求

图片宽stride、高stride对齐要求

内存大小要求(单位Byte)

YUV400 8bit

无对齐要求

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

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

宽stride * 高stride

YUV420SP NV12 8bit

YUV420SP NV21 8bit

宽2对齐

高2对齐

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

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

宽stride * 高stride * 3/2

YUV422SP 8bit

YVU422SP 8bit

宽2对齐

高无对齐要求

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

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

宽stride * 高stride * 2

YUV422Packed YUYV 8bit

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

宽2对齐

高无对齐要求

宽stride为宽*2的值;

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

宽stride * 高stride

YUV444Packed 8bit

RGB888

BGR888

无对齐要求

宽stride为宽*3的值;

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

宽stride * 高stride

YUV444SP 8bit

YVU444SP 8bit

无对齐要求

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

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

宽stride * 高stride * 3

ARGB8888

ABGR8888

RGBA8888

BGRA8888

无对齐要求

宽stride为宽*4的值;

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

宽stride * 高stride

YUV440SP 8bit

YVU440SP 8bit

宽无对齐要求,但宽≤4096

高2对齐

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

高stride为高2对齐后的值。

宽stride * 高stride * 2

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

表6 Atlas 200I/500 A2 推理产品 输出图片格式、宽高对齐、内存大小约束

图片格式

图片宽、高对齐要求

图片宽stride、高stride对齐要求

内存大小要求(单位Byte)

YUV400 8bit

无对齐要求

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

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

宽stride * 高stride

YUV420SP NV12 8bit

YUV420SP NV21 8bit

宽2对齐

高2对齐

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

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

宽stride * 高stride * 3/2

YUV422SP 8bit

YVU422SP 8bit

宽2对齐

高无对齐要求

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

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

宽stride * 高stride * 2

YUV444Packed 8bit

RGB888

BGR888

无对齐要求

宽stride为宽*3的值;

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

宽stride * 高stride

ARGB8888

ABGR8888

RGBA8888

BGRA8888

无对齐要求

宽stride为宽*4的值;

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

宽stride * 高stride

YUV422Packed YUYV 8bit

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

注意,仅Remap变换功能支持YUV422P的输出图片格式。

宽无对齐要求

高2对齐

宽stride为宽*2的值;

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

宽stride * 高stride

YVU444Packed

无对齐要求

宽stride为宽*3的值;

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

宽stride * 高stride

RGB888Planar

BGR888Planar

无对齐要求

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

宽stride * 高stride * 3

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

图片格式

图片宽、高对齐要求

图片宽stride、高stride对齐要求

内存大小要求(单位Byte)

YUV400 8bit

无对齐要求

宽stride为宽16对齐后的值;

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

宽stride * 高stride

YUV420SP NV12 8bit

YUV420SP NV21 8bit

宽2对齐

高2对齐

宽stride为宽16对齐后的值;

高stride为高2对齐后的值。

宽stride * 高stride * 3/2

YUV422SP 8bit

YVU422SP 8bit

宽2对齐

高无对齐要求

宽stride为宽16对齐后的值;

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

宽stride * 高stride * 2

YUV422Packed YUYV 8bit

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

宽2对齐

高无对齐要求

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

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

宽stride * 高stride

YUV444Packed 8bit

RGB888

BGR888

无对齐要求

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

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

宽stride * 高stride

YUV444SP 8bit

YVU444SP 8bit

无对齐要求

宽stride为宽16对齐后的值;

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

宽stride * 高stride * 3

ARGB8888

ABGR8888

RGBA8888

BGRA8888

无对齐要求

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

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

宽stride * 高stride

YUV440SP 8bit

YVU440SP 8bit

宽无对齐要求,但宽≤4096

高2对齐

宽stride为宽16对齐后的值;

高stride为高2对齐后的值。

宽stride * 高stride * 2

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

型号

图片格式

图片宽、高对齐要求

图片宽stride、高stride对齐要求

内存大小要求(单位Byte)

通用格式,各型号都支持

YUV400 8bit

无对齐要求

宽stride为宽16对齐后的值;

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

宽stride * 高stride

YUV420SP NV12 8bit

YUV420SP NV21 8bit

宽2对齐

高2对齐

宽stride为宽16对齐后的值;

高stride为高2对齐后的值。

宽stride * 高stride * 3/2

YUV422SP 8bit

YVU422SP 8bit

宽2对齐

高无对齐要求

宽stride为宽16对齐后的值;

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

宽stride * 高stride * 2

YUV444Packed 8bit

RGB888

BGR888

无对齐要求

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

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

宽stride * 高stride

ARGB8888

ABGR8888

RGBA8888

BGRA8888

无对齐要求

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

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

宽stride * 高stride

不同产品型号中,宽stride、高stride最小值或最大值的要求不同:

  • 宽stride最小10、高stride最小6,适用于以下产品型号:

    Atlas 350 加速卡

    Atlas A3 训练系列产品 / Atlas A3 推理系列产品

    Atlas A2 训练系列产品 / Atlas A2 推理系列产品

    Atlas 200I/500 A2 推理产品

  • 宽stride最小32、最大16384(16384=4096*4,宽是4096的argb格式的图像,1个像素占用4个字节,一行像素就占用4096*4,即宽stride);高stride最小6、最大16384,适用于以下产品型号:

    Atlas 推理系列产品

抠图、贴图约束

  • 抠图区域不超出输入图片区域。
  • 抠图、贴图区域的奇数、偶数限制为:

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

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

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

  • 贴图区域不超出输出图片区域,最大贴图个数256个。
    Atlas 推理系列产品 上,由于16对齐的要求,还存在以下约束:

YUV格式图像下采样约束

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

图1 异常效果图片举例

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