牛骨文教育服务平台(让学习变的简单)

编码结构之编码完后码流的语法架构

      本博文主要介绍HEVC编码结构,从编码完后码流的语法架构这一方面进行描述。

      在码流结构方面,HEVC采用了类似于H.264的分层结构,将属于GOP层、Slice层中共用的大部分语法游离出来,组成序列参数集SPS(Sequence Parameter Set)和图像参数集PPS(Picture Parameter Set)。此外,为了兼容标准在其他应用上的扩展,例如可分级视频编码器、多视点视频编码器,HEVC的语法架构中增加了视频参数集VPS(Video Parameter Set)。

      参数集是一个独立的数据单元,它包含视频的不同层级编码单元的共享信息,只有当参数集直接或间接被片段SS(Slice Segment)引用时才有效。SS是视频编码数据的基本单位,对于一个SS,通过引用它所使用的PPS,该PPS又引用其对应的SPS,该SPS又引用它对应的VPS,最终得到SS的公用信息,HEVC的压缩码流结构如下图所示。

1、视频参数集VPS(Video Parameter Set)

      VPS的内容大致包括多个子层共享的语法元素,其他不属于SPS的特定信息等。

      在H.264的码流结构中,没有类似VPS这样的参数集去描述时域各层之间的依赖关系。它的扩展部分可伸缩视频编码中,SEI信息提供了相关各层信息,以用于不同业务和不同终端的访问。但是在某些场合,例如广播和多播,由于SEI中的部分信息会重复出现在SPS中,这样会造成参数重传而引起延迟等问题,因此在HEVC中引入了VPS。

      VPS主要用于传输视频分级信息,有利于兼容标准在可分级视频编码或多视点视频编码的扩展。一个给定的视频序列,无论它每一层的SPS是否相同,都参考相同的VPS,VPS包含的信息有:

(1)、多个子层和操作点共享的语法元素;

(2)、会话所需的有关操作点的关键信息,如档次、级别;

(3)、其他不属于SPS的操作点特性信息,例如与多层或子层相关的虚拟参考解码器HRD(Hypothetical Reference Decoder)参数。

2、序列参数集SPS(Sequence Parameter Set)

      SPS的内容大致包括解码相关信息,如档次级别、分辨率、某档次中编码工具开关标识和涉及的参数、时域可分级信息等。SPS还包含了一个CVS(Coded Video Sequence)中所有图像共用的信息,其中CVS被定义为一个GOP编码后所生产的压缩数据。

3、图像参数集PPS(Picture Parameter Set)

      PPS的内容大致包括初始图像控制信息,如量化参数QP、分块信息等。即PPS包含了一幅图像所用的公共参数,也就是说,一幅图像中的所有SS引用同一个PPS。

4、扩展知识点:档次(Profile)、层(Tier)和级别(Level)

      档次主要规定编码器可采用哪些编码工具或算法。

      级别则是指根据解码端的负载和存储空间情况对关键参数(最大采样率、最大图像尺寸、分辨率、最小压缩比、最大比特率、解码缓冲区DPB大小等)加以限制。

      考虑到应用可根据最大的码率和CPB大小来区分,因此有些级别定义了两个层Tier:主层和高层,主层用于大多数应用,而高层用于那些最严苛的应用。