# 编码结构之编码完后码流的语法架构
本博文主要介绍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的压缩码流结构如下图所示。
![](https://box.kancloud.cn/2016-07-05_577af7b2d9b25.jpg)
### 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:主层和高层,主层用于大多数应用,而高层用于那些最严苛的应用。
- 前言
- HEVC算法和体系结构:资源获取和章节安排
- HEVC算法和体系结构:HEVC概括性介绍
- HEVC算法和体系结构:环路滤波技术
- HEVC算法和体系结构:编码框架
- HEVC算法和体系结构:编码结构之编码时的分层处理架构
- HEVC算法和体系结构:编码结构之编码完后码流的语法架构
- HEVC算法和体系结构:预测编码之帧内预测
- HEVC算法和体系结构:预测编码之帧间预测
- x265探索与研究(一):x265下载安装与配置
- x265探索与研究(二):x265使用基本方法
- x265探索与研究(三):如何播放*.265格式的视频或解码视频流
- x265探索与研究(四):如何编码视频?
- x265探索与研究(五):如何用VS调试x265?