申金媛,胡青云,刘润杰,张文英
(郑州大学 信息工程学院,河南 郑州450001)
近年来,数字产品的版权保护问题日益受到关注,数字水印技术作为一种较为有效的方法成为研究热点,大量视频消费产品的出现也使得视频水印的市场需求更为迫切[1].
最新的H.264编码标准具有优异的压缩性能和良好的网络亲和力[2],是目前国际上主流的视频压缩编码标准,它优异的压缩性能对视频水印技术来说是一个很大的挑战.因此,研究基于H.264的视频水印技术具有重要的现实意义.由于H.264采用了一些与MPEG视频不同的技术,如预测技术和4×4的整数变换量化技术,使得一些传统的视频水印算法不再适用.已提出的H.264视频水印方法大都选择在DCT系数中嵌入鲁棒性水印,在运动向量中嵌入脆弱性水印.
文献[3]应用Watson感知模型将4×4子块的DCT系数的JND作为嵌入水印的DCT系数的量化参数;该算法有较好的顽健性,但提取水印时需要原始视频确定水印的精确位置,这种非盲水印算法限制了其应用范围;文献[4]提出一种基于H.264的顽健视频水印算法,该算法将水印图像进行压缩,之后对其二值序列进行扩频处理,最后将水印信息嵌在DCT域的某个对角线系数中,该算法虽具有一定的顽健性,但是算法较为复杂;文献[5]提出的算法是通过修改压缩后CABAC码流中的句法元素来嵌入水印的,虽然算法的复杂度较低,但稳健性较差;文献[6]提出了一种盲水印算法,选择在4×4帧内预测的子块中嵌入水印,用3个参数控制水印对视频码率和质量以及水印安全性的影响,较好地平衡了视频水印的不可见性与鲁棒性之间的矛盾,但是限制了水印容量的大小.
由于文献[6]在两个子块中嵌入一位水印,水印容量因此受到限制.笔者在此基础上对水印算法进行改进,综合人类视觉特性和帧内预测的特点自适应选择嵌入位置,利用DCT系数的特点提出一种基于H.264的盲视频水印算法,实验结果表明该算法在保证水印不可见性与鲁棒性的同时,提高了水印嵌入容量,视频码率也没有增加.
在帧内预测模式中,对于亮度像素而言,可以针对整个16×16宏块进行(I16MB)预测,也可将其划分成16个4×4子块分别进行预测(I4MB).为了保证不引起严重的视觉质量下降,应该选择在纹理复杂区域嵌入水印.文献[6]将水印嵌在I4MB中,但两个4×4子块只嵌入一位水印,因此,限制了水印容量.笔者同样选择在I帧的I4MB中嵌入水印,而且每个4×4子块嵌入一位水印,为了便于水印的随机检测,每个I帧中嵌入相同的水印信息,显然只要I帧没有被完全破坏,水印信息总是能够被正确提取出来.
残差块的非零量化系数个数(the number of nonzero,NNZ)可表明残差块的纹理复杂性.NNZ越大的残差块越不平坦,纹理越复杂.如果选择在该残差块嵌入水印,其对视频质量的影响也较小.因此,统计残差块的非零量化系数个数,并设定一个阈值K,选择在NNZ大于或等于K且DC系数为非零的子残差块中嵌入水印.显然,阈值K的大小影响水印的容量,K值越大,水印容量就越小,但视频的视觉质量就越好,反之亦然.笔者对不同视频序列(QCIF格式)的第一个I帧的I4宏块中阈值K与子残差块的个数(NNZ>=K)之间的关系进行了统计研究,如图1所示,对于不同的视频序列,依据水印容量可以选择不同的阈值K.
图1 I帧中阈值K与残差子块之间的关系Fig.1 The relationship between the threshold K and residuals in I frames
分析统计认为H.264的帧内编码图像的DCT系数分布可近似用拉普拉斯分布表示[7].
其概率密度函数为
式中:x为DCT系数,μ是Laplacian参数.如图2所示,当DCT系数值小于某值(该值的大小与量化步长相关)时,量化之后就会变成零,因此,量化后为非零的概率为
根据Laplacian分布的特点,当概率密度函数“瘦且高”时,表明其具有较小方差,量化为零的概率较大,反之若其有较大方差,那么量化为零的概率就较小.在H.264的I帧图像中,4×4亮度预测一共有9种预测模式,在此将这9种预测模式分成三大类[6]:垂直模式(模式 0,模式 3,模式 4,模式5,模式7);水平模式(模式1,模式6,模式8);DC模式(模式2),据此来确定子块的预测模式.对不同预测模式下不同位置的16个系数分别进行分析研究,在确定残差块的帧内预测模式之后,考虑每个系数的概率密度函数,可依据其方差确定一个4×4的概率矩阵,矩阵的每个值代表了该位置的系数量化为零的概率.根据这个概率矩阵就可以选择合适的系数进行修改以嵌入水印.
图2 I帧DCT系数的Laplacian分布Fig.2 DCT coefficient of I frames with Laplacian distribution
依据上述原理,笔者设计出一种基于H.264压缩域的鲁棒性水印算法.
(1)水印图像置乱.对原始二值水印图像进行Arnold置乱处理,然后对置乱后的水印图像进行按行或者按列扫描,映射成为一维二值序列,得到水印信息序列W.
(2)嵌入子块的确定.在H.264视频的I帧的I4宏块中选择在NNZ不小于阈值K且DC系数不为零(依据视频序列而定)的4×4残差块中嵌入水印.
(3)嵌入过程.嵌入水印比特Wi=0时,如果该残差块的NNZ为偶数且不等于阈值K,那么就根据概率矩阵在16个量化系数中选择一个合适的非零量化系数(该系数量化为零的概率较大)将其变成零;如果该残差块的NNZ为偶数且等于阈值K,那么就根据概率矩阵选择一个合适的量化为零的系数(该系数量化为非零的概率较大)将其变成,即使该残差块在水印比特Wi=0时的非零量化系数个数保持为奇数.反之,嵌入水印比特Wi=1时,依据概率矩阵选择合适的量化系数进行修改以使该残差块的NNZ保持为偶数,具体的嵌入公式
依据嵌入过程可设计出提取算法,该提取算法实现了盲检测.
(1)对H.264压缩码流进行非完全解码,提取I帧的4×4亮度残差子块的量化系数.
(2)对每个子块的非零量化系数进行统计,选取NNZ不小于阈值K且DC系数不为零的子块.
(3)根据该子块的非零量化系数个数NNZ按如下规则提取水印序列:
在对笔者所提出的水印算法进行仿真和性能测试时,H.264编解码模型采用H.264的官方参考软件 JM10.1[8].视频序列为 QCIF(176 ×144)格式的mobile和news等,视频按照I、B、P的顺序进行编码,量化步长QP=28,嵌入的水印图像为16×16的二值图像,水印位数为256 bit.
图3为嵌入水印前后视频序列对比.由图3可见水印嵌入前后的视频图像没有明显的区别,因此实验表明该算法可以使嵌入水印后的视频保持较好的主观视觉效果.
通过计算信噪比PSNR对水印的不可见性进行评价.mobile和news两个视频序列的I帧在嵌入水印前后亮度分量的PSNR变化如图4所示.嵌入水印后,虽然PSNR值有所下降,但是最多也下降在1 dB左右.水印的嵌入对不同视频序列的影响不一样,一般来说,当PSNR的值在30 dB以上时,人眼就不容易分辨出两幅图像的差别,实验结果表明该算法可以获得较好的不可见性效果.
图3 嵌入水印前后视频序列的主观不可见性对比Fig.3 The comparing of visual imperceptibility between the original compressed and watermarked sequences
图4 嵌入水印前后视频序列的PSNR对比Fig.4 The comparing of PSNR between original video and watermarked sequences
视频水印算法是依据视频的编码原理和特性进行的,因此,水印算法在理论上应对重压缩有着较好的鲁棒性.为了对笔者所提出的水印算法的鲁棒性进行测试,将嵌入水印后的视频序列进行重压缩,经过重压缩后水印比特的提取率如图5所示.
图5 视频重量化后的水印提取率Fig.5 Bit extraction efficiency after re-encoding
实验数据表明重压缩对纹理稍微简单一些的Carphone序列影响比较大,而纹理较为复杂的Mobile视频序列有着比较好的抗重压缩性能.相比于其他的某些算法,经过重压缩后,本算法能较为正确的提取水印序列,因此具有较好的鲁棒性.
视频水印算法中,尤其是针对H.264这样的低码率视频,码率的增加是个重要的影响因素.码率的增加与水印的嵌入容量有关,定义比特增加率 BIR[7]为
式中:BR表示嵌入水印前的比特率;BR'表示嵌入水印之后的比特率.不同序列的BIR值如表1所示,实验结果表明,水印嵌入之后,但视频流的码率并没有增加.
表1 不同序列的比特增加率(BIR)Tab.1 Bit-rate increase of different sequences
一般来说,一个好的视频水印算法还应该同时满足实时性要求,笔者算法是在I帧的亮度块变换量化之后嵌入水印,而且计算复杂度低,能够很好的满足其实时性,I帧的嵌入水印前后的编码时间如表2所示.
表2 水印嵌入前后I帧的编码时间Tab.2 Coding time of I frame after watermarking
笔者算法的水印嵌入容量可以依据视频的纹理复杂度的不同而自适应的选择,即在考虑视频质量的前提下依据阈值参数确定嵌入容量,实验中的水印嵌入容量为256 bit,而文献[6]的嵌入容量为93 bit,相比之下,在保证视频质量的同时,该算法使得嵌入容量有了大大提高.
针对已有算法的不足,笔者提出了一种低复杂度的水印嵌入方法,通过对宏块纹理复杂性的分析,选择I4宏块(4×4帧内预测)中有较多非零量化系数的4×4子块作为嵌入区域,以提高水印的鲁棒性.以DCT系数的分布特点为基础,在不同的帧内预测模式下,利用宏块中不同位置的DCT系数的方差确定一个概率矩阵,据此对I帧亮度子块的量化后的DCT系数进行修改,通过改变该子块非零量化系数个数的奇偶性来嵌入水印信息.仿真实验结果表明,笔者算法在保证视频水印不可见性和实时性的前提下,改善了一般视频水印算法中的码率的增加的问题,此外,水印的嵌入容量也有了较大提高,水印的嵌入和提取算法较为简单,易于实现,而且水印的提取过程实现了盲检测,因此针对H.264视频的版权保护问题,该算法能够得以广泛应用.
[1]张维纬,张茹,刘建毅,等.基于纹理特征的H.264/AVC顽健视频水印算法[J].通信学报,2012,33(3):82-89.
[2]毕厚杰,王健.新一代视频压缩编码标准—H.264/AVC[M].北京:人民邮电出版社,2009.
[3]NOORKAMI M,MERSEREAU R M.A framework for robust watermarking of H.264 encoded video with controllable detection performance[J].IEEE Transactions on Information Forensics and Security,2007,2(1):14-23.
[4]ZHANG Jing,ANYHONY T S H,QIU Gang,et al.Robust video watermarking of H.264/AVC[J].IEEE Transactions on Circuits and Systems,2007,54(2):205-209.
[5]DEKUN Z,JEFFREY A B.H.264 stream replacement watermarking with CABAC encoding[C].IEEE International Conference on Multimedia and Expo,2010.117-121.
[6]MANSOURI A,AZNAVEH A M,TORKAMANI F.A low complexity video watermarking in H.264 compressed domain[J].IEEE Transactions on Information Forensics and Security,2010,5(4):649-657.
[7]FAN Xiao-peng,LU Yan,GAO Wen.A novel coefficient scanning scheme for directional spatial prediction-based image compression[C].International Conference on Multimedia and Expo,2003.557-560.
[8]马兰,沈笑云,万棣.Visual C++视频/音频编解码技术[M].北京:人民邮电出版社,2008.
[9]XU Da-wen,WANG Rang-ding,WANG Ji-cheng.Blind digital wat-ermarking of low bit-rate advanced H.264/AVC compressed video[C].Digital watermarking,2009.96-109.
[10]NOORKAMI M,MERSEREAU R M.Compressed domain video watermarking for H.264[C].In Proc.IEEE Int.Cof.Image Pro-cessing.2005.890-893.