H.264视频压缩域水印嵌入位置的分析

2014-09-12 03:01谢金宝隋爱娜
关键词:码流解码矢量

谢金宝,隋爱娜

(中国传媒大学计算机学院,北京 100024)

1 引言

近年来,随着信息技术的快速发展,多媒体产品特别是图像、视频等数字化产品大量涌现。各种问题接踵而至,多媒体产品被非法篡改,随意复制传播的现象时有发生,危害着版权所有者的合法权益。因而在通信和互联网领域,如何有效保护知识产权是一个重要的研究领域。

数字水印技术是指在载体中加入一些标示信息,同时不影响原载体内容的信息隐藏技术[1],自提出以来已经成为数字产品版权保护的重要手段。

基本思路就是在图片、音频、视频等多媒体文件中加入一些版权相关信息,在必要的时候为版权所有人提供证据。

数字水印技术主要分为空域水印和频域水印。由于频域水印具有更好的鲁棒性和抗攻击性,在数字图像领域得到大量的应用,具有非常好的研究基础[1]。现在视频水印技术更多的是借鉴图像水印技术的研究成果,但没有更好地利用视频序列的时间相关性。本文就是为更好地利用视频时间特性有效地嵌入水印提供一种可行方案。

视频水印技术是一种针对数字视频载体的时间冗余和空间冗余加入信息,既不影响视频质量,又能用于版权保护和内容完整性检验的水印技术[2]。

视频水印技术根据与视频编码系统的结合方式不同,可以分为基于原始视频的嵌入方法和基于压缩域视频的嵌入方法[3]〗。

现有的视频水印研究主要集中在基于原始视频的嵌入方法上,也就是基于视频完全解码的基础上。

在H.264压缩码流中嵌入水印信息时,由于压缩码流中并不携带图像信息,而是以残差图像和运动矢量的形式存在。因而在原始视频图像中嵌入水印,需要在视频数据被完全解码后进行。

H&G算法是视频压缩域水印算法,该算法直接针对已编码的视频压缩码流嵌入水印,在设计策略上只需进行部分解码,无需进行完全视频解码再嵌入水印这一复杂过程。这一算法因为节省了硬件资源实现成本更低等优点,对现有数字视频产品的版权保护具有重要的实用价值,但该算法受到相应视频压缩算法和视频编码标准的局限[4-5]。H&G算法当初设计是针对MPEG2视频压缩标准的,并不完全适用于H.264视频压缩标准。

本文首先改进H&G算法,使其适用于H.264压缩码流;然后通过选择合理的水印嵌入位置,提升水印的性能。本文的改进方法可以在保证视频质量不受影响的前提下,增加水印容量,进而使视频水印有更好的鲁棒性。

2 方法

2.1 视频压缩的相关原理

视频序列是大量连续运动图像的集合,由于前后图像在时间上存在大量的冗余信息,考虑在此基础上压缩图像实现压缩编码。对于视频序列,根据帧的作用分为I、P和B三种帧类型,在H.264中还有SP和SB两种用于动态码率的切换。

I帧也就是关键帧,在编解码时不参考其他帧图像,只使用帧内预测模式。GOP组是视频序列中的一组帧序列,同一个GOP组帧只参考本组帧,不同的GOP组互不干扰。I帧可以被单独解码,可以认为是一个GOP组中最原始的参考帧[6];P帧在编码解时使用单向前向帧间预测,参考前边的I或P帧,根据被参考帧计算运动矢量;B帧在编解码时使用双向帧间预测,同时参考前向和后向的帧,可以达到更好的压缩效率。

2.2 改进思路

H&G算法是最先由Frank Hartung和Bernd Girod提出的一种可以将水印信息直接嵌入到码流中的方法。此算法不需要考虑编解码过程,从码流中找到DCT系数嵌入水印信息,然后重新编码回去。速度极快,且不会改变原有码流的结构[5]。

此算法适用于I帧中携带视频原始数据的压缩流,但H.264压缩码流I帧中并不携带原始视频信息,为使该算法适用于H.264压缩码流,在嵌入水印时仍然需要完全解码H.264压缩码流中的I帧。

H&G算法可以嵌入的水印容量有限,因非参考帧运动矢量没有做相应改变容易造成运动图像的偏移,影响视频质量。本文通过选择嵌入位置,在一定程度上提升水印的嵌入容量。

本文具体思路:

1)分析I帧后续P帧和B帧的运动矢量,做统计和分析。通过分析后续P帧和B帧的运动矢量指向,选择运动矢量指向较少的I帧宏块嵌入水印,这样可以对后续P帧和B帧造成较小的影响。首先对于P帧和B帧运动矢量做统计。

表1是针对高清和标清两种分辨率视频运动矢量的统计结果,分析数据发现多个宏块指向一个关键帧宏块的比例较小,在skip模式下宏块的编码采用直接编码的方式,不用经过任何的编码预测和变换,可以直接嵌入水印,并且有很好的效果。而大多数的宏块没有发生运动矢量的偏移,或者偏移时影响的范围有限。

表1 关键帧运动矢量被后续P和B帧指向的数目

2)由于P帧宏块中,也可以采用帧内预测的方式。在考虑帧间预测的同时考虑P帧帧内预测,选择被指向较少的关键帧宏块。

3)对于直接预测方式和skip方式的宏块,由于其采用直接编码的方式,可以嵌入水印。

2.3 水印具体嵌入过程

图1为水印嵌入流程。

1)对于一个具体的视频流E,解码I帧。得到I帧的所有图像信息一个二维图像像素矩阵Yij。

2)解码该I帧的后续PBBPBB六帧,得到并分析其运动矢量。由于距离该I帧的距离不同,距离越远I帧对其参考价值越低,同时B帧还要参考后续帧,权值适度降低。因而按照100:50:50:75:25:25的权值统计其运动矢量的指向,得到一个指向矩阵Eij。

3)寻找指向矩阵Eij中最小的几项,即运动矢量指向较少的I帧宏块。得到将要嵌入水印的I帧宏块的下标为ij。

4)根据I帧宏块的下标ij,找到I帧图像像素矩阵中的对应位置ij,对该像素宏块做DCT(离散余弦变换),得到其变换后的系数Xij。

图1 水印嵌入流程

5)嵌入水印信息时,水印信息用DCT系数的相对大小关系体现,具体方法如下:

(1) 将水印信息(文字或者图片)变成01序列,Wi,为保证一定的提取成功率,将次序列扩频10次

(2)对要嵌入的宏块像素做DCT变换,选取中频系数。综合考虑水印的鲁棒性和不可见性,选择中频系数比较好。

(3) 对于I帧中的i行,j列宏块,其变换域系数为一个16x16的矩阵,我们用Dij来表示:

如果Dij>Dji且当时水印序列 Wk=1 则 交换 Dij与Dji的位置

如果Dij

3 改进效果分析

我们对上述方法的实验结果进行分析,在使用选择方案进行宏块选择和随机选择宏块两种方法之间进行比较分析,使用相同的水印算法。因为随机选择的随机性,在不使用本文所提方法嵌入水印时,多次选择不同的块,比较其效果。

首先从嵌入速度上进行分析,x264是一个由开源社区维护和开发的H.264压缩标准的高效编码器。在不考虑硬件加速条件下,被认为是目前最好的264编码器。首先看在x264编码器中,各个部分所占的时间比例。从理论上分析,本方法在速度上的提升。

图2 x264编码中各部分所占时间比

图2为x264编码主要功能模块,filter模块主要完成环路滤波及参数解析;encode模块完成每帧主要参数的编码工作;cabac模块完成残差数据的压缩编码。x264编码的过程中analyse部分占用大约60%左右的时间,其主要工作是执行运动矢量搜索算法,进行像素插值的计算,选择最优的预测模式并计算得到运动矢量[7-8]。

对于I帧采用帧内预测模式,宏块编码根据最优函数选择预测模式,根据周围宏块计算得到预测值,不需要运动矢量的计算和图像重建过程。而对于P帧,采用帧间预测来消除视频序列的时间冗余,需要在对应参考帧的位置执行运动矢量搜索算法,根据最优函数得到最优运动矢量,耗费大量时间。

因此对一帧I帧的编解码速度要快于编解码一帧P帧;而对于B帧而言,要进行双向运动矢量计算,参考图像的列表较长,需要进行较多的运动矢量估计和计算,要耗费更长时间。

帧内预测模式比较固定,计算量小。P帧和B帧的编码和运动矢量计算耗费大量编解码时间。

改进H&G算法应用于H.264后,不需要解码P帧和B帧,理论上的嵌入速度会加快很多。对于测试视频我们均选用符合广电标准的视频结构,即GOP=50,每个GOP只解码I帧不解码P、B帧,节省98%的时间。嵌入过程处理800帧视频,实际时间如表2所示:

表2 对不同分辨率视频处理过程的耗时

通过表2可以看出,改进H&G算法后速度比全解全编快3-4倍。远没有达到理论值所分析的10倍,甚至20倍。主要原因在于嵌入过程中需要保存I帧大量的数据,涉及大量的内存操作。对于速度上的延迟,主要是因为工程性的原因无法达到理论上的速度。

再者水印的嵌入模块也在一定的程度上对嵌入过程造成影响,嵌入模块需要根据宏块的二维坐标,找到对应宏块,然后做DCT变换,嵌入水印,之后做IDCT变换,还原代替原来的像素值。

图3 两种选择方案的PSNR对比

图3中算法一使用本文提出的选择算法,选择合适位置嵌入水印;仅为比较实验效果,在算法二中选择一半对后续影响小的块,一半对后续影响大的块,比较两者的区别。从数据上看,本文所提方法在嵌入强度增大时PSNR值较大,对图像质量影响较小,效果较好。

如图3所示结果,PSNR值虽然不能完全代替嵌入效果,但可以从具体数据及其走势中看到,嵌入强度带来的阀值变化。

当水印的嵌入量较小,嵌入强度较小的时候,两者的区别很小。这是因为水印嵌入量比较小,并没有对视频图像造成实质影响;当逐渐加大水印嵌入量时,改变宏块的值就会影响到视频的质量,两种方法的区别开始出现。

在嵌入大量水印信息时,本文所提方法可以有效的规避对后续宏块影响较大的宏块,对嵌入位置做出合理的选择,减小对图像造成的影响。

4 总结

本文通过对非参考帧运动矢量的分析,在参考帧I帧中寻找合理的嵌入位置,来减少因在参考帧中嵌入水印对非参考帧造成的影响,仿真实验证明了在大多数情况下可以达到很好的效果。

但通过对运动矢量的统计也可以发现,并不是所有的视频帧都适用于本文的方法。因为存在一些非参考帧运动矢量指向参考帧宏块分布比较均匀的情况,在这种情况下,使用本文选择方法并不能达到理想效果,同时加大了计算量。

再者,在视频中嵌入水印信息,必定会对视频信息造成影响;本文的研究只是努力降低这种影响,并不能从根本上消除这种影响。

[1]Cox I,Miller M,Bloom J.Digital Watermarking [M].Los Altos,CA:Morgan Kaufmann Publishers,2001.

[2]M Cheikhrouhou,P Conti,et al.Intelligent Agents for Network Management :Fault Detection Experiment [D] .Corporate Communication Department,Institute Eurecom,2001.

[3]Zou Xiaoxiang,Peng Cong,Li Jintao,et al.Video watermark technique[J].Journal of Engneering Graphics,2002,3(3):169-179.

[4]Hartung F,Girod B.Watermarking of uncompressed and compressed video [J].Signal Processing,Special Issue on Copyright Protection and Access Control for Multimedia Services,1998,66(3):283-301.

[5]Lancini R,Mapelli F,Tubato S.A robust video watermarking technique in the special domain[C].Processing of International Symposium on Video/Image Processing and Multimedia Communications,Zadar,2002:251-256.

[6]曹华,周敬利.图像和视频水印嵌入新方法研究[D].武汉:华中科技大学,2006.

[7]胡陆建,王让定.基于H.264/AVC的视频水印算法设计[D].宁波:宁波大学,2012.

[8]刘立冬,刘济全,田翔.基于H.264压缩的视频水印算法研究[D].杭州:浙江大学,2013.

猜你喜欢
码流解码矢量
《解码万吨站》
一种适用于高轨空间的GNSS矢量跟踪方案设计
矢量三角形法的应用
解码eUCP2.0
高清网络摄像机图像延迟分析及解决方案
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
如何对数字电视信号进行有效监测
基于矢量最优估计的稳健测向方法
三角形法则在动态平衡问题中的应用