



H.264/SVC是一种广泛应用于网络视频会议、视频监控、视频流服务等场景的视频编解码标准,由ITU与ISO/IEC共同成立的联合视频小组(Joint Video Team,JVT)开发制定。H.264/SVC是对H.264/AVC标准的扩展,也被称为H.264/AVC附加G扩展标准,它在后者的基础上添加了可伸缩性,编码后的视频流中包含多个可以提取的子流。就编码效率而言,2007年标准化的H.264/SVC相较于之前提出的编码标准有了很大的提高,即在相同比特率的情况下,H.264/SVC能够提供更好的视频图像质量 [18] 。
H.264/SVC编码中采用了宏块的编码形式,将输入的原始视频帧划分为较小单元的宏块,通过计算同一帧或相邻帧之间的宏块相似度,实现宏块之间的预测。宏块根据其预测模式的不同,可以分为三类,即I宏块、P宏块和B宏块,对应的视频帧称为I帧、P帧和B帧。I帧表示该宏块的预测只在本帧内进行,P帧和B帧表示宏块预测在帧之间进行,其中P帧宏块的预测基于该帧之前或之后的帧内容,B帧宏块的预测可以同时基于该帧之前和之后的帧内容。H.264/SVC以GOP(Group Of Pictures,图像组)为单位进行编码,一个图像组包含一些连续的视频帧,其中第一帧为IDR(Instantaneous Decoding Refresh,即时解码刷新)访问单元,由一个I帧和一些编码参数构成。
H.264/SVC编码的可伸缩性体现在时域、空域和质量域三个层面,通过设置相应基础层和增强层数据单元实现视频流的可伸缩。时域的可伸缩性指的是在图像组中有基础层和增强层,每个访问单元对应一个解码后的帧图像,而高层时域访问单元由低层时域内的访问单元预测编码得到。图2-5所示为图像组中的时域帧预测模式,其包含8个时域帧、4个时域层,如时域层T 2 中的帧4是由时域层T 1 中的帧2和时域层T 0 中的帧1联合预测编码得到的。通过丢弃较高时域层中的帧,视频流可以提供较低比特率的子流,其中由基础层帧构成的视频流比特率最低,能提供最低限度的视频帧图像质量。
图2-5 图像组中的时域帧预测模式
空域的可伸缩性体现在H.264/SVC编码后的流中每个时域帧包含不同解析度的帧,空域由一个基础层和多个增强层构成。对于每个空域层数据,也采用了帧间预测,并且H.264/SVC为了减少内存消耗和降低解码复杂度,约定所有空域层的解码次序相同 [19] 。
质量域的可伸缩性指的是对于同一个时域帧,可以提供不同PSNR(Peak Signal to Noise Ratio,峰值信噪比)的图像质量。质量域与空域类似,也包含一个基础层和多个增强层。质量域的可伸缩性有两种实现方式:一种实现方式是采用CGS(Coarse Grain Scalability,粗粒度可伸缩性)方式,其与空域的可伸缩性实现过程类似,区别在于不同质量层之间使用相同的解析度、不同大小的量化系数;另一种实现方式是采用MGS(Medium Grain Scalability,中等粒度可伸缩性)方式,即将一个空域层中的DCT(Discrete Cosine Transform,离散余弦变换)系数分别放置在不同的质量层数据单元中 [12] 。MGS相对于CGS能够提供更好的可伸缩性,若提取子流时丢弃任意数量的MGS数据,则剩下的MGS数据仍然能够用于解码,因此应用较多。
H.264/SVC编码后的视频数据单元通过( D x , T y , Q z )标识来表明当前视频数据单元的位置。其中, D x 为空域层标识,从0开始依次递增,0表示基础层; T y 为时域层标识; Q z 为质量层标识。例如,(0,1,0)表示当前视频数据单元位于时域层1、空域基础层和质量基础层。H.264/SVC编码规定空域层最大数为8,时域层最大数为16,质量层最大数为7。
为使编码后的数据能够在互联网中传输,视频流数据以NAL单元的形式进行组织和封装。NAL单元主要包括两类:VCL(Video Coding Layer,视频编码层)NAL单元和non-VCL NAL单元。前者用于存放视频内容的编码数据,后者用于存放解码所需要的参数集合。对于编码后的流,可以通过编程读取相应的NAL单元中的参数标识信息,以判断流中时域帧、图像组等逻辑边界。在NAL单元中,SEI NAL单元通常用于存放一些额外信息,这些信息用于帮助解码,可以根据用户的需要添加该单元。本章将利用SEI NAL单元存放签名数据。
针对视频流认证,目前已有一些相关的研究,代表性研究有基于哈希链、树状结构、蝴蝶型结构的流认证方法,此类研究因为设计的认证过程与视频编码无关,所以认证效果不够好。针对H.264/AVC的认证,代表性研究有基于NAL参数解码次序 [11] 、基于联合信源信道编码的非均等认证方案 [14] ;针对H.264/SVC的认证,代表性研究主要有基于FEC的认证方案 [13] 、基于混合的认证方案 [15] 、基于ECC的认证方案 [17] 。基于FEC的认证方案的优点在于提出了一种考虑网络带宽的认证负载降低方法,缺点在于时域、空域认证时采用了链式结构,抗丢包率不够好。基于混合的认证方案和基于ECC的认证方案都无法提供质量层的认证可伸缩性,且空域层认证方法也采用了链式结构,认证效果有待提高。
结合前面的分析,本章对H.264/SVC的认证进行了研究,提出了一种基于解码关系图拓扑排序的视频流认证方法,并且在考虑质量层认证的可伸缩性时,采用基于质量层的认证负载优化方案。与Mokhtarian等人 [12] 的研究不同的是,此认证方法考虑了认证分组大小的上下界,有利于提高网络丢包的抵抗能力,并且考虑到了质量层数据中不同部分的重要性,采用与解码重要性有关的认证长度大小来保护质量层分组数据,有利于提高接收端的帧恢复质量 [20-21] 。