功能及约束说明
功能说明
VDEC(Video Decoder)实现视频的解码,VDEC内部经过VPC处理后,输出指定格式的图片,参见码流/图片格式、宽高对齐、内存约束。
分辨率约束
- 输入码流分辨率:
版本
分辨率范围
Atlas 200/300/500 推理产品
Atlas 训练系列产品
Atlas 推理系列产品
Atlas A2训练系列产品/Atlas 800I A2推理产品
最大分辨率4096 * 4096,最小分辨率128 * 128。
Atlas 200I/500 A2推理产品
对于H.264输入码流,最大分辨率8192 * 8192,最小分辨率128 * 128。
对于H.265输入码流,最大分辨率5400 * 8192,最小分辨率128 * 128。
- 输出图片分辨率:
版本
分辨率范围
Atlas 200/300/500 推理产品
Atlas 训练系列产品
Atlas 推理系列产品
Atlas A2训练系列产品/Atlas 800I A2推理产品
最大分辨率4096 * 4096,最小分辨率10 * 6。
Atlas 200I/500 A2推理产品
输出图片最大分辨率8192 * 8192,当输入码流宽度小于或等于4096时,输出图片最小分辨率为10 * 6,当输入码流宽度大于4096时,输出图片最小分辨率为128 * 128。
码流/图片格式、宽高对齐、内存约束
实现VDEC视频解码功能时,输入或输出内存的生命周期由用户自行管理:
- 输入内存
调用acl.media.dvpp_malloc/acl.media.dvpp_free接口申请/释放内存或调用acl.rt.malloc/acl.rt.free接口申请/释放内存,内存大小就是指实际的输入码流所占用的大小。
调用acl.media.dvpp_malloc接口申请的内存为媒体数据处理的专用内存,但专用内存的地址空间有限,若关注内存规划或内存资源有限时,使用VDEC视频解码功能时,建议调用acl.rt.malloc接口申请内存。
- 输出内存
需调用acl.media.dvpp_malloc接口申请Device上的输出内存,调用acl.media.dvpp_free接口释放输出内存,内存大小请参见下表中的计算公式。
输出图片格式的定义请参见acldvppPixelFormat,宽Stride、高Stride等概念请参见基本概念。
- H.264 bp/mp/hp level5.1 YUV420编码的码流,当前只支持annex-B的裸码流。
- H.265 8/10bit level5.1 YUV420编码的码流,当前只支持annex-B的裸码流。
VDEC视频解码时,输出图片格式、宽高对齐要求等如下表所示:
版本 |
输出图片格式 |
输出图片宽、高对齐要求 |
输出图片宽Stride、高Stride、内存大小要求 Atlas 200/300/500 推理产品 Atlas 训练系列产品 Atlas 推理系列产品 |
输出图片宽Stride、高Stride、内存大小要求 Atlas 200I/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
---|---|---|---|---|
通用格式,各版本都支持 |
YUV420SP NV12 8bit |
宽2对齐 高2对齐 |
宽Stride为宽16对齐后的值。 如果用户设置的输出图片宽度小于16,则宽Stride最小为32。 高Stride为高2对齐后的值。 内存大小(单位Byte)≥ 宽Stride * 高Stride * 3/2 |
宽Stride无对齐要求,与宽相同即可,最小10,最大24576。 高Stride无对齐要求,与高相同即可,最小6,最大24576。 内存大小(单位Byte)≥ 宽Stride * 高Stride * 3/2 |
YUV420SP NV21 8bit |
||||
该部分格式仅以下版本支持: Atlas 推理系列产品 Atlas 200I/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
RGB888 |
无对齐要求 |
宽Stride为宽16对齐后再乘以3的值。 高Stride无对齐要求。 内存大小(单位Byte)≥ 宽Stride * 高Stride |
宽Stride为宽乘以3的值,最小30,最大24576。 高Stride无对齐要求,最小6,最大24576。 内存大小(单位Byte)≥ 宽Stride * 高Stride |
BGR888 |
其它约束
- VDEC只支持按帧输入码流进行解码。
- 若码流中有坏帧、缺帧等情况,解码器VDEC可能会丢帧。
- 通过隔行扫描方式编码出来的码流,VDEC仅支持解码H.264 8bit编码的码流。