10-HEVC的高层语法结构

来源:互联网 发布:安卓局域网软件 编辑:程序博客网 时间:2024/05/17 02:18
一、概述
参考文献“Overview of HEVC High-Level Syntax and Reference Picture Management”简述了HEVC的高层语法结构,并着重于提供新功能,提高抗误码鲁棒性的新语法元素。

H.264等前代标准考虑的是连续的视频的视频码流,尽管有条带等概念,但是这些标准在条带上层(如帧一级)上未能考虑抗误码性。H.264可以流的形式传输,但是从开始便被设计成以分包的形式发送。H.264 NAL提供了独立分包,使得视频层数据在不同网络环境下保持一致。数据头参数由参数集NAL单元标记,并且编码视频NAL单元会参考其数据。

HEVC继承了H.264的一些概念,如NAL单元、参数集合、POC和SEI等概念。在舍弃了H.264一些设计的同时,加入了一些新的模型,如VPS, CRA, BLA,TSA, Tiles, WPP,依赖性条带、RPS等概念。

二、NAL单元头
编码后的视频码流分割为NAL单元在有损网络环境中进行传输,每个单元的长度应小于指定最大长度MTU。每一个NAL单元由NAL头和NAL有效载荷组成。不同的NAL单元分为VCL NAL和非VCL NAL单元,前者携带编码过的图像数据,后者包含多帧共享的元数据。NAL的头采用固定的结构。

H.264的NAL头为1个字节长度,在其可分级和多视点扩展(SVC和MVC)中扩展为3个字节长度。在HEVC中,NAL头数据指定为2个字节长度,并支持可分级和3D等等多种扩展。HEVC的NAL头包含一个必须为0的forbidden−zero位,6位的NALType位,6个保留位为0, 还有3bit的temporal−id−plus1(用于支持时间可分级)。

三、参数集合
HEVC的参数集合是H.264对应概念的修改和升级,主要针对三个方面:编码工具的升级、H.264的应用经验和新引入的VPS概念。

由于序列和图像的头数据包含解码的关键信息,因此至关重要。参数集合的概念引入主要是基于避免“把所有鸡蛋放进一个篮子里”的考虑。参数集可以在比特流中传输也可以使用其他方式传输,其中携带有可供slice头所参考的识别信息(该过程称作“激活”)。

引入VPS主要用来传输应用于视频分级的信息,并用于处理在H.264中由于参数重传引起的延迟等问题,并为设计简洁可扩展的多层视频编码器提供方便。据此,视频的参数信息分别在VPS和SPS中保存有副本,这样解码器在没有VPS NAL单元的情况下也可以解码出视频信号。SPS包含所有slice解码所需要的参数信息,其中的内容大致可分为:(1)自引值(ID)、(2)解码操作相关信息(档、级、尺寸等)、(3)该档次中编码工具的启动标识及其附属参数集、(4)结构可变与变换系数编码控制信息、(5)时域分级控制和(6)视觉可用性信息。图像参数集PPS包含的每一帧图像的参数,每张图像的PPS可能不同,包含的数据有(1)自引值、(2)初始QP等初始图像控制信息、(3)tile化信息。Slice头信息包含每个条带所不通过的信息,其尺寸可能大于PPS,尤其是在包含tile和wavefront信息时。在参数集的激活过程中,Slice头包含PPS的参考,PPS包含SPS的参考,SPS则包含VPS的参考。

每一种类型的参数集合都包含扩展机制以适应HEVC标准的扩展,而且不会依赖于解析VPS和SPS中携带的档次/级别信息。

四、图像类型
总体来讲,HEVC中图像可分为4中类型:随机接入点图像,Leading图像,子层接入图像和其他。前两种图像之前已经详细讨论过,此处讨论第三种。此类图像是指在解码顺序上,某一子层中与该子层其他图像没有依赖性的图像。

所谓“时域降档,temporal down-switching”的概念,是由于指低子层的图像与更高子层的图像没有依赖关系,因此将比特流中属于高子层图像信息的NAL单元全部舍弃后,依然不影响低子层视频信号的解码。其相反过程也就是“时域升档,temporal up-switching”。

在HEVC中,设置SPS参数sps−temporal−id−nesting−flag为1,即意味着参数TemporalId大于0的图像属于子层接入图像。其中包含两种类型,即TSA和STSA。TSA定义为“转向”节点,即若图像按TSA进行编码,则可以进行子层转换至该帧所在的子层。该类型对该TSA帧以及同子层以及更高子层内按解码顺序在该帧之后的图像添加了限制,即这些图像的帧间预测信息不能源自该TSA之前的图像。STSA的定义域TSA类似,区别仅仅在于不限制对更高子层图像的参考,这样可以向STSA帧所在的高子层进行“升档”操作。
原创粉丝点击