优化建议

功能或约束

涉及的AscendCL接口

Atlas 200/300/500 推理产品的实现

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

Atlas 200/300/500 推理产品->Atlas 推理系列产品(Ascend 310P处理器)迁移时,对用户的影响

VPC功能中,设置缩放算法。

acldvppSetResizeConfigInterpolation接口

支持5种算法:

  • 0:默认值。表示华为自研的高阶滤波算法。
  • 1:业界通用的Bilinear算法(与OpenCV算法的计算过程类似)
  • 2:业界通用的Nearest neighbor 算法(与OpenCV算法的计算过程类似)
  • 3:业界通用的Bilinear算法(与Tensorflow算法的计算精过程类似)。
  • 4:业界通用的Nearest neighbor算法(与Tensorflow算法的计算精过程类似)。

支持2种算法:

  • 0:默认值。设置为0时,系统内部也会自动采用1。
  • 1:业界通用的Bilinear算法(与OpenCV算法的计算过程类似)
  • 2:业界通用的Nearest neighbor 算法(与OpenCV算法的计算过程类似)

如果用户没有显式调用该接口,迁移到Atlas 推理系列产品(Ascend 310P处理器)后,无需修改代码,直接使用Atlas 推理系列产品(Ascend 310P处理器)上默认的缩放算法,精度更高

如果用户显式调用该接口将缩放算法设置为1或2,则无需修改代码。

如果用户显式调用该接口将缩放算法设置为3或4,则用户修改代码,设置Atlas 推理系列产品(Ascend 310P处理器)所支持的缩放算法。修改代码后,需要重新编译。

VPC功能中,YUV400格式图像处理

acldvppSetPicDescSize接口

Atlas 200/300/500 推理产品不支持YUV400格式图像处理,使用YUV420格式进行处理(取Y分量数据),因此需要将输入图片的格式设置为YUV420,内存大小设置为不小于 widthStride*heightStride*3/2的值,VPC会根据YUV420图片格式校验内存大小。

Atlas 推理系列产品(Ascend 310P处理器)支持YUV400格式图像处理,因此直接将输入图片的格式设置为YUV400,内存大小设置为不小于 widthStride*heightStride的值,VPC会根据YUV400图片格式校验内存大小。

迁移到Atlas 推理系列产品(Ascend 310P处理器)后,用户可以继续使用“从YUV420格式中取Y分量”来实现YUV400的方式,这样,就不涉及修改代码,也无需重新编译。

另外,由于在Atlas 推理系列产品(Ascend 310P处理器)上扩展支持了YUV400格式,所以如果用户选择直接使用YUV400格式,就需要修改代码,将输出格式设置为YUV400,将内存大小设置为不小于“widthStride*heightStride”的值,节省内存。修改代码后,用户需要重新编译。

VDEC功能中,设置解码码流最大宽度和高度。

aclvdecSetChannelDescOutPicWidth接口

aclvdecSetChannelDescOutPicHeight接口

  • 解码图像帧存大小:创建通道时不会使用解码码流最大宽度和高度申请内部使用的帧存,会在解码过程中根据码流信息获取码流的真实宽高,申请帧存。
  • 输入码流缓存大小:1080P分辨率及以下的输入码流,输入码流缓存大小默认为6M;1080P分辨率以上的输入码流,输入码流缓存大小默认为9M。
  • 解码图像帧存大小:创建通道时不会使用解码码流最大宽度和高度申请内部使用的帧存,会在解码过程中根据码流信息获取码流的真实宽高,申请帧存。
  • 输入码流缓存大小:解码码流最大宽度*解码码流最大高度*2。

迁移到Atlas 推理系列产品(Ascend 310P处理器)后,用户无需修改代码,系统内部会自行根据解码码流的信息申请帧存。

另外,在Atlas 推理系列产品(Ascend 310P处理器)上,系统内部申请的帧存大小需在一个最大值的范围内,该最大值与用户设置的解码码流最大宽度和高度、参考帧数量、码流位宽参数有关,帧存最大值 ≈ (最大宽度 * 最大高度 * 3/2) * 码流位宽 / 8 * (参考帧数量 + 3)

建议用户迁移时合理规划VDEC内存,详细描述请参见性能指标说明(Atlas 推理系列产品(Ascend 310P处理器))

VDEC功能中,设置参考帧数量。

aclvdecSetChannelDescRefFrameNum接口

不支持设置参考帧。

支持设置参考帧,如果不设置,默认参考帧数量是8。

在创建通道时,会根据默认值申请帧存,但在解码过程中,会根据码流信息获取码流的真实参考帧信息,进行帧存自适应。

VENC功能中,指定输出码率。

aclvencSetChannelDescMaxBitRate接口

aclvencSetChannelDescParam接口

输出码率默认值为300。

输出码率默认值为2000。

如果用户没有显式调用接口设置输出码率,迁移到Atlas 推理系列产品(Ascend 310P处理器)后,也无需修改代码,直接使用Atlas 推理系列产品(Ascend 310P处理器)上默认的输出码率值2000,画质更优

如果用户需要调整画质,则需根据实际情况设置输出码率。修改代码后,需要重新编译。

要注意,输出码率不一样,编码输出码流大小会不一样。

设置通道模式。

(提醒:明确图片数据处理通道用于实现哪种功能(目前支持VPC、JPEGD、JPEGE、PNGD功能),若不调用该接口,则系统默认先创建VPC模式的通道,可能会占用VPC通道数,推荐用户根据实际功能指定通道模式。)

acldvppSetChannelDescMode接口

不支持设置通道模式。

支持设置通道模式,如果不设置通道模式,为了减少通道和内存资源的浪费,会默认先创建VPC模式的通道(会占用VPC通道数)。

迁移到Atlas 推理系列产品(Ascend 310P处理器)后,用户可以不调用该接口设置通道模式,就不涉及修改代码,也无需重新编译。此时,系统内部为了减少通道和内存资源的浪费,默认先创建VPC模式的通道(会占用VPC通道数),在用户调用JPEGD或JPEGE或PNGD功能的接口时,会触发系统内部自动创建JPEGD或JPEGE或PNGD模式的通道。

建议用户根据实际业务,调用该接口设置对应的通道模式,减少VPC通道的占用和内存资源的浪费。