更新时间:2021-03-18 GMT+08:00
分享

VDEC功能

功能及约束说明

实现视频的解码。

  • VDEC支持两种输入格式:

    H264 bp/mp/hp level5.1 yuv420sp编码的码流。

    H265 8/10bit level5.1 yuv420sp编码的码流。

  • VDEC支持的分辨率

    最大分辨率4096 * 4096,最小分辨率128 * 128。

  • VDEC输出格式为:yuv420sp压缩后的HFBC数据。

    HFBC,是VDEC输出的一种压缩图像格式,使用这种方式压缩图像,VDEC的处理性能更优。

  • 若码流中有坏帧、缺帧等情况,解码器VDEC可能会丢帧。
  • 通过隔行扫描方式编码出来的码流,VDEC不支持解码。
  • VDEC比较特殊,由于当前内部不是单例模式,所以其对外提供C接口函数与其他不同。

性能指标说明

场景举例

总帧率

1080p n路(n>=2且n<=16)

480fps

1080p *1路

240fps

4k * n路(n>=2且n<=16)

120fps

4k * 1路

60fps

如果用户使用Matrix模块编排应用的流程,那么在使用DVPP对多路(Channel)输入的视频流进行解码时,由于视频流中每帧的数据之间有关联关系,因此为保证同一个视频流中每帧数据的顺序,要求每个VDEC固定对应一路视频流,否则DVPP中的VDEC无法解码视频流。

  • 多路视频流解码时,为保证视频流中每帧数据的顺序,可能存在多种实现方式,推荐使用以下配置:
    • 在Graph配置文件中,在graphs配置段内,配置多个进行视频解码的Engine,一路视频流对应一个Engine。
    • 在Graph配置文件中,在视频解码的engine配置段内,将thread_num配置为1,一个Engine对应一个线程。
    • 关于Matrix的功能及其Graph配置文件的配置,请参见《 Matrix API参考》
    • 一个Graph(一个进程)最大可以对应16路的视频流。
  • 如果在多路视频流解码时,在Graph配置文件中,仅配置一个视频解码的Engine,并将thread_num配置为n(n的值就是视频流channel的数量),在不同时刻,在Matrix中各路视频流可能会在不同的Thread处理,但是在DVPP中,一个VDEC需要固定一路视频流数据,一路视频流数据对应一个线程,这样可能导致VDEC解码时无法保证视频流中每帧数据的顺序,如图所示。
    图1 VDEC处理流程
分享:

    相关文档

    相关产品