为了解决正版高清视频节目的网络授权问题,对高清视频文件的网络传输实现常规加密设计,并提出一种以网络为信息加密密文载体,以密钥和部分视频内容为服务器管理对象的新型视频加密保护技术。针对目前广泛使用的H.264高清视频编码格式,通过分析编码层数据,设计了一种视频关键帧的抽取算法,经实验验证,算法可有效提高高清视频的加密保护。
一、网络认证系统总体框架
网络认证系统主要分为抽取模块和后期处理模块2个部分。抽取模块的主要功能是采用文件内容抽取算法对视频数据进行抽取,产生主文件和抽取数据。然后再由后期处理模块对其产生的主文件进行加密,并将抽取数据存放到远程服务器上。最后将加密产生的主文件和相关配置文件进行压制,最终制作成可供免费下载的高清视频文件。
版权保护模块中有效地利用互联网的高速传输能力为用户提供主文件的免费下载,而且用户下载的信息为抽取数据的密文,密钥和抽取数据存放在版权服务器数据库中,以网络为物理载体。这样运用网络将数据的主体与抽取部分在空间上实行分离,以增加视频被破译的难度,安全度比较高,提供可靠的安全性,能很好地适应现行视频网络点播模式。网络认证系统示意图如图1所示。
二、抽取算法的设计
视频数据抽取算法的核心目标是在抽取数据尽量少的情况下,对原始文件的破坏性比较大,影响文件的正常播放。利用H.264编码后音视频文件的特性数据进行分析,进而设计抽取算法。
1、H.264编码分析
在H.264压缩视频流的足由一个一个的序列组成的,每个序列有一系列的I图像、P图像和B图像组成。可以采用帧内编码和帧间编码,其中H.264的帧间编码能够使用已经编码的帧作为参考值,参考帧的数目最多可达32个。帧间编码结构如图2所示。
H.264每个序列开始都有一个参考图像,IDR图像也叫立即刷新图像,其他的图像为非IDR图像。每当解码器遇到IDR图像时,即知道这为一个新的序列,需要马上将旧参考队列清空,并将解码后的数据抛弃或输出,然后开启一个新的序列。如果将IDR图像抽墩出来,填入随机值来实现编码层的版权保护,由于IDR图像数据量所占比例比较大,一般为褴个视频大小的1O%一15%,目前高清节目码率大小一般可以达到20Mbps,如果抽取所有IDR图像蹬于服务器上,实现边下载边播放,至少需要带宽为2—3 Mbps,一方面给现有家庭的网络带来很大压力,另一方面抽取的数据量达到1200 ~1800 MB之多,播放器终端进行数据还原的复杂度也比较大,耗时比较长,而且随着高消视频码率的提高,问题会变得更加严重。因此,结合现有家庭带宽的实际情况和播放器还原问题,需要设计算法,在抽取更少数据量的前提下,达到更好的抽取效果。
H.264码流数据图如图3所示。分析H.264码流序列时图,在每个序列中,不仅有开始的IDR图像,而且有大量的P图像和B图像,它们均包含序列参数集、图像参数集、基本图像和冗余信息等数据单元。
使用工具查看H.264视频流发现,IDR图像数据量比较大,而非IDR图像数据量一般比较小,如图4所示,白色条带为IDR图像,其大小为42014,黑色条带为非IDR图像,选取其中一条P图像,其大小为138940非IDR图像的数量比例比较大,而数据量比IDR图像小得多,而且数据信息的重要性比较强,一旦缺失便无法正确的解码,因此可以考虑抽取非IDR图像中为抽取算法的基础。
2、抽取算法规则
抽取非IDR图像为基础,具体抽取其中的哪些数据,还需要进一步分析,如果将非IDR图像全部抽取,数据量依然很大,不满足实际需求,因此还需要考虑3个问题:总抽取的数据量的大小、抽取哪些非IDR图像和抽取非IDR图像中的哪些数据。鉴于此,设计的抽取算法主要抽取非IDR图像中针对上面提出的3个问题,并且为了确保抽取后破坏效果最佳,对抽取算法设定以下规则:
①抽取内容应该要覆盖视频的各个部分,即整个视频的前面部分、中间部分和后面部分都抽取一定数目的非IDR图像。
②由于人眼对视频的分辨最低为24帧/s,一般视频为25帧/s,因此可以采取对每一个非IDR图像抽取一次的方式。
③整个非IDR图像的数据量比较大,如果仅按规则①和规则②的方式进行抽取,得到的数据量会比抽IDR图像还多,不够现实。由上面的分析可知,当高清节目码率为20 Mbps,家庭带宽为2 Mbps时,为了实现正常播放设定抽取比例的上限为整个视频大小的10%。
④根据每个需要抽取的图像大小占所有要抽取图像大小的比重不同,对每幅图像抽取的大小也不同,比重大的抽取的字节数多,比重小的抽取的字节数少。
⑤针对抽取非IDR图像中的哪些数据的问题,由上面的H.264码流数据图可知,一幅图像中包含分界符、序列参数集、图像参数集、基本图像和冗余信息等数据单元,如果从每幅图像的开头抽取,理论上会破坏其基本的结构,解码器无法解码该图像。由上面几条规则可以计算出每幅图像抽取的大小,然后进行实际抽取发现会出现以下2种情况:①在播放过程中会直接跳过该图像,出现明显的停顿,但是马赛克现象不明显,基本可以正常观看;②破坏整个文件的结构,无法播放。这样效果不稳定,为了达到稳定的效果,从其中的基本图像信息部分开始抽取,一方面由于没有破坏图像的结构,可以解码,另一方面基本图像信息缺失导致无法正确解码,视频观看效果会比较差。
基于以上规则,最终得出设计的抽取算法为:采取对每一个非IDR图像抽取一次的方式,抽取其中的基本图像信息,抽取的总数据量可以由用户指定,其上限为计算得出的抽取总量上限,而每幅图像抽取的多少根据该图像大小占所有要抽取图像大小的比重计算得出,然后根据计算的抽取大小对非IDR图像进行抽取,并将抽取过的部分用随机数进行填充。
三、抽取算法的测试分析
为了进一步从理论上分析验证所设计算法的有效性,做了以下实验:将设计的算法和原有的算法进行比较,分别采用2种算法对同一文件Fls.mp4进行抽取,其中抽取的比例相同,均为5%,然后对比抽取后MP4文件的峰值信噪比(Peak Signal-to-Noise Ratio.PSNR)值。
原有抽取算法为:根据一定的抽取比例,对整个文件进行均匀抽取,抽取数据块的大小为2 KB(2*1024+1024),抽取时不涉及到H.264编码层结构。
PSNR是最常刚的平面图像的客观评价方法,通常被用作处理后视频质量的测量标准。用PSNR值衡量被测图像的质量是通过计算被测图像偏离原始图像的误差来实现的。对于给定的一幅大小为W*H的数字图像f(x,y)和抽取后的图形f(x,y),
式中,(2n-1)2是图像中最大可能信号值的平方,n为每一个像素的比特数,由于图像RGB色彩模式中每个像素RGB分量有效值在0—255,因此测试中取该值为255 *255;MSE为抽取后图像与原始图像之间的均方误差:
首先分别求出R、G、B三色的MSE值,便可以得到MSE的平均值,然后代人式(3),即可求得PSNR值。实验测试在PC机上进行,所使用的操作系统为Windows 7。经2种算法处理后视频的PSNR值,以及最后一帧原始图像和抽取后图像如图5和图6所示。
图5和图6中,位于左边的是原始视频中的图形,右边的为抽取后视频中的图形。其中抽取算法处理后视频的PSNR值为7.846379,均匀抽取算法处理后视频的PSNR值为10.661 0690PSNR值越小,说明同一个视频点抽取后图像与原始图像之间的差异越大,抽取后图像所保留的原始图像质量成分也就越低,得到的图像质量也就越差,抽取达到的效果就越好,而且算法抽取后视频的播放效果也更差,因此在客观上所设计的算法更优。
小知识之H.264
H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式。H.264是ITU-T以H.26x系列为名称命名的视频编解码技术标准之一。H.264是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个数字视频编码标准。该标准最早来自于ITU-T的称之为H.26L的项目的开发。H.26L这个名称虽然不太常见,但是一直被使用着。H.264是ITU-T以H.26x系列为名称命名的标准之一,AVC是ISO/IEC MPEG一方的称呼。