Skip to main content

函数:dvpp_set_jpege_config_level

函数:dvpp_jpeg_predict_enc_size

C函数原型aclError acldvppJpegPredictEncSize(const acldvppPicDesc *inputDesc, const acldvppJpegeConfig *config, uint32_t *size)
Python函数size, ret = acl.media.dvpp_jpeg_predict_enc_size(input_dvpp_pic_desc, config)
函数功能根据输入图片描述信息、图片编码配置数据预估图片编码后所需的输出内存的大小。
输入说明input_dvpp_pic_desc: int,输入图片描述信息。
- 调用acl.media.dvpp_create_pic_desc接口创建图片描述信息。
- 调用acl.media.dvpp_set_pic_desc系列接口设置图片描述参数(例如,图片格式、宽、高等)。 config:int,图片编码配置数据。 调用acl.media.dvpp_create_jpege_config接口创建图片编码配置数据。
返回值说明size:int,预估JPEG图片编码后所需的输出内存的大小,单位为Byte。 预估的输出内存会大于实际输出内存,实际输出内存需从acl.media.dvpp_jpeg_encode_async接口的输出参数size获取。 ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
参考资源接口调用流程及示例,参见JPEGE图片编码

父主题: JPEGE功能

函数:dvpp_create_jpege_config

C函数原型acldvppJpegeConfig *acldvppCreateJpegeConfig()
Python函数dvpp_jpege_config = acl.media.dvpp_create_jpege_config()
函数功能创建acldvppJpegeConfig类型的数据,表示图片编码配置数据。同步接口。 如需销毁acldvppJpegeConfig类型的数据,请参见acl.media.dvpp_destroy_jpege_config
返回值说明dvpp_jpege_config:int,acldvppJpegeConfig类型的指针地址。
- 返回非0值,表示成功。
- 返回0,表示失败。

父主题: JPEGE功能

函数:dvpp_destroy_jpege_config

C函数原型aclError acldvppDestroyJpegeConfig(acldvppJpegeConfig *jpegeConfig)
Python函数ret = acl.media.dvpp_destroy_jpege_config(dvpp_jpege_config)
函数功能销毁通过acl.media.dvpp_create_jpege_config接口创建的编码配置数据。同步接口。
输入说明dvpp_jpege_config:int,指定待销毁数据的指针地址。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。

父主题: JPEGE功能

函数:dvpp_set_jpege_config_level

C函数原型aclError acldvppSetJpegeConfigLevel(acldvppJpegeConfig *jpegeConfig, uint32_t level)
Python函数ret = acl.media.dvpp_set_jpege_config_level(dvpp_jpege_config, level)
函数功能设置编码配置数据。同步接口。
输入说明dvpp_jpege_config:int,指定编码配置数据。调用acl.media.dvpp_create_jpege_config接口创建的编码配置数据。 level:int,编码质量范围。 Atlas 200/500 A2推理产品,该参数取值范围:[1, 100],数值越小输出图片质量越差。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。

父主题: JPEGE功能

函数:dvpp_get_jpege_config_level

C函数原型uint32_t acldvppGetJpegeConfigLevel(const acldvppJpegeConfig *jpegeConfig)
Python函数level = acl.media.dvpp_get_jpege_config_level(dvpp_jpege_config)
函数功能获取编码配置数据。同步接口。
输入说明dvpp_jpege_config:int,指定编码配置数据的指针地址。调用acl.media.dvpp_create_jpege_config接口创建acldvppJpegeConfig类型的数据,调用acl.media.dvpp_set_jpege_config_level接口设置编码配置数据。
返回值说明level:int,返回编码质量范围。 Atlas 200/500 A2推理产品,该参数取值范围:[1, 100],数值越小输出图片质量越差。

父主题: JPEGE功能

功能及约束说明

功能说明

VDEC(Video Decoder)实现视频的解码,VDEC内部经过VPC处理后,输出指定格式的图片,参见码流/图片格式、宽高对齐、内存约束

分辨率约束

  • 输入码流分辨率:

    昇腾AI处理器分辨率范围
    Atlas 200/500 A2推理产品对于H264输入码流,最大分辨率8192*8192,最小分辨率128*128。 对于H265输入码流,最大分辨率5400*8192,最小分辨率128*128。
  • 输出图片分辨率:

    昇腾AI处理器分辨率范围
    Atlas 200/500 A2推理产品输出图片最大分辨率8192*8192;当输入码流宽度小于或等于4096时,输出图片最小分辨率为10*6,当输入码流宽度大于4096时,输出图片最小分辨率为128*128。

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

实现VDEC视频解码功能时,输入或输出内存的生命周期由用户自行管理:

:::note 说明 输出图片格式的定义请参见acldvppPixelFormat,宽stride、高stride等概念请参见基本概念。 :::

VDEC视频解码时,输入码流支持如下格式:

  • H264 bp/mp/hp level5.1 YUV420编码的码流,当前只支持annex-B的裸码流。
  • H265 8/10bit level5.1 YUV420编码的码流,当前只支持annex-B的裸码流。

VDEC视频解码时,输出图片格式、宽高对齐要求等如下表所示:

表1 码流/图片格式、宽高对齐、内存大小约束

版本

输出图片格式

输出图片宽、高对齐要求

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

Atlas 200/500 A2推理产品

通用格式,各版本都支持

YUV420SP NV12 8bit

宽2对齐

高2对齐

宽stride无对齐要求,与宽相同即可,最小10,最大24576。

高stride无对齐要求,与高相同即可,最小6,最大24576。

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

YUV420SP NV21 8bit

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

Atlas 200/500 A2推理产品

RGB888

无对齐要求

宽stride为宽乘以3的值,最小30,最大24576。

高stride无对齐要求,最小6,最大24576。

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

BGR888

其它约束

  • VDEC只支持按帧输入码流进行解码。
  • 若码流中有坏帧、缺帧等情况,解码器VDEC可能会丢帧。
  • 通过隔行扫描方式编码出来的码流,VDEC仅支持解码H264 8bit编码的码流。

父主题: VDEC功能

性能指标说明

性能指标说明

1080p指分辨率为1920*1080的图片。单个Device的基本场景性能指标参考如下(1路对应一个通道,一个通道对应一个线程):

场景举例总帧率
720p*n路(1≤n≤4)n*600fps
720p*n路(n>4)2400fps
1080p*n路(1≤n≤4)n*300fps
1080p*n路(n>4)1200fps
4k*n路(1≤n≤4)n*75fps
4k*n路(n>4)300fps

下表说明了典型场景下每路VDEC解码的内存消耗,在内存消耗的计算公式中:

  • 输入码流缓存大小:等于输入码流的宽*高*2。
  • 解码图像帧存大小:1080P分辨率的输入码流,该参数值为3MB。其它分辨率时参数值可等量折算。
  • 视频解码图像Tmv缓存大小:H264格式、1080P分辨率的输入码流,该参数值为0.5MB;H265格式、1080P分辨率的输入码流,该参数值为1MB。其它分辨率时参数值可等量折算。
  • 参考帧数量可由用户调用acl.media.vdec_set_channel_desc_ref_frame_num接口设置。
  • 解码后缓存图像帧数固定为2个。

每路VDEC解码的内存消耗计算公式

场景举例

内存消耗(单位为MB)

16MB + 输入码流缓存大小 * 2 + (解码图像帧存大小 + 视频解码图像Tmv缓存大小) * (参考帧数量 + 解码后缓存图像帧数 +1 )

  • 输入码流格式H264
  • 输入码流分辨率1080P
  • 输入码流缓存大小为4MB
  • 解码图像帧存大小为3MB
  • 视频解码图像Tmv缓存大小为0.5MB
  • 解码后缓存图像帧数2个

62.5MB(参考帧数量8个)

41.5MB(参考帧数量2个)

  • 输入码流格式H265
  • 输入码流分辨率1080P
  • 输入码流缓存大小为4MB
  • 解码图像帧存大小为3MB
  • 视频解码图像Tmv缓存大小为1MB
  • 解码后缓存图像帧数2个

68MB(参考帧数量8个)

44MB(参考帧数量2个)

父主题: VDEC功能

在线提单