近年来,非法使用数字化视频的问题日益严重,视频的版权问题变得尤为突出。因此,数字视频水印技术成为研究的热点[1]。随着高清、超高清视频的应用逐渐进入到人们的视野[2],视频压缩技术受到了巨大的挑战,为了应对这亟待解决的问题,国际电信标准化部门和国际标准化组织的视频编码专家组联合制定了新一代高效视频压缩编码标准(High Efficiency Video Coding, HEVC)。
现阶段, H.264/AVC的视频水印技术比较成熟,Noorkami等[3]提出将水印嵌入到4×4帧内预测模式的I宏块的直流系数上。该算法具有一定的安全性,但根据密钥选择嵌入位置,对水印的不可见性造成影响。Mansouria等[4]提出在纹理复杂的4×4子块嵌入水印,该算法对水印的视频质量影响较小,但是一旦编码模式发生变化,将会导致嵌入水印与提取水印不同步。Kim等[5]提出了基于H.264帧内编码的数字水印存在的若干问题,通过实验验证了重编码会使离散余弦变换(Discrete Cosine Transform, DCT)系数和帧内编码模式发生改变。张维伟等[6]提出将水印嵌入到纹理度复杂的4×4块量化DCT系数中,该算法的鲁棒性较好,但嵌入水印后视频的质量下降较大。随着新一代高效视频编码的出现,基于HEVC的数字水印成为研究热门。王家骥等[7]提出修改帧内预测模式的奇偶性,该算法对视频质量影响较小,一旦含水印视频受到常规攻击后,预测模式容易改变,使得水印不能正常提取,鲁棒性较低。张明辉等[8]提出将水印嵌入到预测模式的水平模式和垂直模式中,通过预测模式进行水印的提取,在解码端用两个纹理方向值的对比还原水印,当水印遭到攻击时,一旦像素点的值改变,会对水印的提取造成误判。鉴于以上分析,本文提出一种基于帧内预测模式多划分的HEVC视频水印。本文算法首先为了消除嵌入水印时的帧内误差传播,对4×4亮度块进行可嵌区域的选择,随后将33种角度模式划分为四个模式集,通过判断当前待嵌入和下一水印的值符合哪个模式集来嵌入水印。在解码端,当水印遭到攻击导致预测模式发生改变时,通过纹理方向准确定位模式集能正常提取水印,使得误码率降低,鲁棒性能提高。
1 水印的嵌入与提取 1.1 帧内误差传播分析与纹理计方向计算相较与以往的视频编码标准(如H.264/AVC), HEVC引入了全新的编码结构——编码单元(Coding Unit, CU)、预测单元(Prediction Unit, PU)和变换单元(Transform Unit, TU)3个基本单元。CU的尺寸大小可以为8×8到64×64,CU根据预测模式又可划分为一个或多个不重叠的PU,同时一个CU还可以按照四叉树方式划分为一个或多个变换单元(Transform Unit, TU)。这些特性使得一个8×8以上的PU邻近块可能存在着不同尺寸的PU,可能为DCT或离散正弦变换(Discrete Sine Transform, DST)变换,会给消除帧内误差的分析带来不便。而4×4 PU邻近块不存在着更小的尺寸,只存在DST变化,可以简化水印的嵌入,又考虑到HEVC中不同尺寸的PU有着不同的纹理特性,其中越小的块代表着纹理越复杂的区域,因此最终选定4×4 PU。
对于任意尺寸的PU都有35种预测模式,其中模式0为Planar模式,模式1为DC模式,模式2~33为角度模式。所有的预测模式都使用邻近预测块的像素作为参考样本,通过邻近块编码预测得到当前块。模板如图 1所示,RX, Y表示相邻块的像素重建值,用作参考样本,PX, Y表示当前块的像素。
为了考虑消除嵌入水印时的帧内误差传播[9],根据上述帧内预测模板可推论,当对右上、右边、右下、下面、左下PU进行预测时,会选用邻近块的参考样本进行预测。当选用图 2中4×4块作为参考块时,选用的参考样本区域如表 1所示,即右上块作为当前预测块时,会以1、2、3和4像素点作为参考样本,同理,其他块选用像素点的方法类似。由此推论,若水印嵌入到图 2中4×4区域的灰色部分,会对右上、右边、右下、下面、左下像素块的重建造成影响,由此类推,帧内误差传播的累加会对视频的质量产生影响。若不在4×4亮度块中的灰色区域嵌入水印,继而可以消除帧内误差传播。
接下来,计算出当前4×4亮度块的纹理方向,Tsai等[10]提出了一种简单、准确的纹理算法,描述如下:把4×4像素块分为4个2×2子块和一个2×2的内部子块,如图 3所示。利用式(1) 分别计算每个子块的平均值P0、P1、P2、P3、P4:
$ \begin{array}{l} {P_K} = {\rm{\{ }}\;f\left( {{x_{K, }}{y_K}} \right) + f\left( {{x_{K + 1, }}{y_K}} \right) + f\left( {{x_{K, }}{y_{K + 1}}} \right) + \\ \;\;\;\;\;\;\;\;\;f\left( {{x_{K + 1, }}{y_{K + 1}}} \right)\;{\rm{\} }} \end{array} $ | (1) |
其中:K=0, 1, 2, 3, 4; f(x, y)表示在坐标(x, y)处的像素值,且(xK, yK)表示第K个2×2块的起始位置,如图 4所示。
PK值表示两个对角方向,一个水平方向和一个垂直方向,依次记为方向d45°、方向d135°、方向d0°、方向d90°。利用这4个角度可以进一步计算出方向d22.5°、方向d67.5°、方向d167.5°、方向d112.5°,计算式如下:
$ {d^{{0^o}}} = |{P_1}-{P_0}| + |{P_3}-{P_2}| $ | (2) |
$ {d^{9{0^o}}} = |{P_2}-{P_0}| + |{P_3}-{P_1}| $ | (3) |
$ {d^{4{5^o}}} = |{P_4}-{P_1}| + |{P_2}-{P_4}| $ | (4) |
$ {d^{13{5^o}}} = |{P_4}-{P_0}| + |{P_3}-{P_4}| $ | (5) |
$ {d^{22.{5^o} }} = ({d^{{0^o}}} + {d^{4{5^o}}})/2 $ | (6) |
$ {d^{67.5{ ^o}}} = ({d^{4{5^o}}} + {d^{9{0^o}}})/2 $ | (7) |
$ {d^{112.5{ ^o}}} = ({d^{9{0^o}}} + {d^{13{5^o}}})/2 $ | (8) |
$ {d^{157.5{ ^o}}} = ({d^{{0^o}}} + {d^{13{5^o}}})/2 $ | (9) |
选取d22.5°、d157.5°、d112.5°、d67.5°中最小的值作为当前4×4亮度块的纹理方向。
根据前文论述可知,纹理方向与角度预测模式存在着很强的联系,如图 5所示,d22.5°、d157.5°、d112.5°、d67.5°分别落在预测模式2~10、11~18、19~26、27~34,依次记为上水平模式、下水平模式、上垂直模式和下垂直模式,且分别对应于角度模式6、14、22和30。
令二值待嵌入水印序列为Wpri, 利用密钥k1产生的双极性随机序列为randpri,进行如下加密:
W =randpri×Wpri
其中:W={Wi|i=1, 2, …, M, Wi∈{-1, 1}}。水印的嵌入是在HEVC的I帧编码中进行的,现描述如下:
步骤1 在I帧中,第一个编码树单元开始,找出其中尺寸为8×8的CU。
步骤2 在进行N×N编码时,选择4×4的PU并计算其纹理方向,若纹理方向的最小值Min为d22.5°时,记为上水平模式;Min为d157.5°时,记为下水平模式;Min为d112.5°时,记为上垂直模式;Min为d67.5°时,记为下垂直模式。
步骤3 假设当水印组合(Wpri, Waft)=(-1,1) 时,且纹理方向为上水平模式,则嵌入水印;当(Wpri, Waft)=(-1,-1) 时,且纹理方向为下水平模式,则嵌入水印;当(Wpri, Waft)=(1,-1) 时,且纹理方向为上垂直模式,则嵌入水印;当(Wpri, Waft)=(1,1) 时,且纹理方向为下垂直模式,则嵌入水印。其中:Wpri、Waft分别表示当前和下一待嵌入水印的值。
步骤4 若符合水印嵌入要求,则在模式粗选之前将33种角度预测模式进行截断处理,处理方式为:当纹理方向判断为上水平模式,则预测模式截断为2~10;当纹理方向判断为下水平模式时,则截断为11~18;当纹理方向判断为上垂直方式时,则截断为19~26;当纹理方向判断为下垂直方式时,则截断为27~33。
步骤5 若当前PU总的率失真代价小于2N×2N分割模式,则保留水印,否则对水印位进行相应的调整,不保留嵌入信息,进行下个PU,转到步骤2。
步骤6 记录已嵌入水印中像素的位置, 作为密钥k2。
1.3 提取水印水印的嵌入根据像素块的纹理方向与帧内预测模式的关系进行嵌入,因此解码端在提取水印时只需计算像素块的纹理方向即可。具体过程如下:
步骤1 根据密钥k2,先获取对应位置4×4亮度块预测模式的值Mode,再计算亮度块的4个纹理方向d22.5°、d157.5°、d112.5°和d67.5°,最后求最小值Min。
步骤2 在视频遭到攻击时,预测模式有可能发生改变。为了解决这个问题,提出以下两种方法:
1) 当预测模式为2~34时,利用式(10) 进行水印的提取:
$ W = \left\{ \begin{array}{l} -1, \;\;\;2 \le Mode \le 18\\ 1, \;\;\;\;19 \le Mode \le 34 \end{array} \right. $ | (10) |
2) 当预测模式为0、1时,利用式(11) 进行水印的提取:
$ W = \left\{ \begin{array}{l} -1, \;\;\;\;\;Min = {d^{{{22.5}^ \circ }}}\;或Min{\rm{ = }}{d^{{{157.5}^ \circ }}}\\ 1, \;\;\;\;\;\;\;\;其他 \end{array} \right. $ | (11) |
步骤3 将提取出的水印序列与双极性随机序列randpri相乘,得到最终的二值水印序列。
1.4 整体算法算法首先进行帧内误差传播的分析,由此选定3×3可嵌区域,并计算4×4 PU纹理方向,最后利用纹理方向和预测模式紧密的联系进行水印嵌入,根据预测模式和纹理方向进行水印的提取。
2 实验结果与分析算法在HEVC参考软件HM14.0进行测试。编码方式为IPPP…,参考软件的主要编码配置参数如下:原始QP(Quantization Parameter)为28,编码24帧,图像组(Group Of Picture, GOP)为12,率失真优化量化(Rate-Distortion Optimized Quantization, RDOQ)为1,其余参数采用默认配置。电脑基本配置:CPU为intel Core i5-6300HQ 2.3 GHz, 内存为8 GB。通过在单帧(I帧)进行水印嵌入, 而不是在每帧进行水印嵌入。测试了9个具有3种分辨率的序列,分别为3个416×240的BlowingBubles、RaceHorses和BaketballPass,3个832×480的BQMall、PartyScene和RaceHorse,以及3个1 280×720的FourPeople、SlideEditing和Slideshow。
2.1 视频质量和鲁棒性分析表 2列出了不同的测试序列嵌入水印前后的峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)和码率的变化(用码率增长率表示)以及单帧水印的嵌入容量(Capacity, C)。PSNR的变化用ΔP=Pemb-Pori表示,码率增长率用ΔBIR=(Remb-Rori)/ Rori表示。其中:Pori表示原始测试序列的PSNR; Pemb表示嵌入水印后测试序列的PSNR; Rori表示原始测试序列的码率; Remb表示嵌入水印后测试序列的码率; C表示水印嵌入的总比特数。从表 2中可知,PSNR下降最多的为-0.01 dB, 部分序列的PSNR还增加了,总体PSNR的平均变化为0,这是由于本文通过纹理方向与预测模式紧密的联系把33种角度模式划分为4个模式集,用4个角度来表示。随后根据角度来定位当前纹理方向属于哪个模式集,模式的精确划分减小了纹理方向的误判率,所以嵌入水印后对视频质量的影响不大。
除了表 2的客观验证外,本文还给出了主观验证效果。图 6为832×480的BQMall序列在嵌入水印前后第一帧视频质量的对比。由图 6可知,虽然嵌入水印后,PSNR有一定的下降,但是对视频质量几乎是没有影响的。
本文的鲁棒性用误码率(Bit Error Rate, BER)来评价,计算式为:
BER=biterror/bittotal
其中:biterror表示提取错误的比特数;bittotal表示总的嵌入水印的比特数;BER越小,说明该算法的鲁棒性能更好。在视频遭到重编码的攻击时,4×4亮度块的帧内预测模式可能为0或1。为了能够准确提取出水印信息,在解码端计算4×4块的4个纹理角度:d22.5°、d157.5°、d112.5°和d67.5°,并求其最小值Min。若Min为d22.5°或d157.5°,则提取的水印信息为-1,反之,水印信息为1。本文算法的优势在于,若当前4×4块的像素值发生变化,有可能导致d22.5°、d157.5°、d112.5°和d67.5°值的微小变化,但最小值Min变化的概率很小,因此不会造成水印信息恢复的较大失真。鲁棒性测试结果如表 3所示。
由表 3可知,无攻击时,BER为0;在5个不同QP重编码攻击下,BER最小值为QP=28时的FourPeople序列,为0.012,BER最大值为QP=34时的BasketballPass序列,为0.361,都在可接受的范围内。所有测试序列的BER平均值为0.141,因此具有良好的鲁棒性。
2.2 对比测试为验证本文算法的性能,将本文算法与文献[7-8]算法进行对比测试,采用文献[7]的编码参数配置,参数设置如下:QP为26,GOP为8,RDOQ为1,周期为16,帧率为每秒30帧,编码96帧,剩余参数均为默认参数。对416×240的BlowingBubbles序列分别用本文算法与文献[7-8]算法进行测试,结果如表 4所示。本文算法与文献[7-8]的算法在PSNR上变化都很小,但本文算法的码率增长率比文献[7-8]算法小,且在QP为26的重编码攻击时,本文算法的BER为0.049,而文献[7]算法与文献[8]算法的BER分别为0.400和0.072,说明本文算法的鲁棒性能比文献[7-8]算法更优。这主要是由于文献[7]算法只根据修改帧内预测模式奇偶性来嵌入水印,而奇偶性的鲁棒性能并不好,文献[8]算法直接用两个角度值的对比来恢复水印信息,一旦某个角度值发生变化,会造成结果误判。虽然文献[7]算法的水印容量较高,但是文献[7]算法的BER高达0.400,而本文算法的BER平均值为0.141。因此本文在重编码攻击下的鲁棒性更好。
针对现有基于HEVC的水印算法鲁棒性不足的问题,本文提出一种基于帧内预测模式多划分的HEVC鲁棒视频水印算法。首先,该算法进行帧内误差传播的分析,并对4×4块的纹理方向进行计算,随后将33种角度模式划分为4种模式集,用4个纹理方向来准确定位该模式集,通过判定当前待嵌入水印和下一水印的值符合哪种模式集来嵌入水印。由实验结果可知,与文献[7-8]算法相比,本文算法码率增加得更少,因此本文算法对视频质量影响更小,且抗重编码攻击的性能更好。但是本文算法的水印容量存在不足,因此下一步将从提高水印容量这方向进行研究。
[1] | COX I J, MILLER M L, BLOOM J A. Digital Watermarking[M]. San Francisco, CA: Morgan Kaufmann, 2002 : 11 -15. |
[2] | SULLIVAN G J, OHM J R, HAN W J, et al. Overview of the High Efficiency Video Coding (HEVC) standard[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2012, 22(12): 1649-1668. doi: 10.1109/TCSVT.2012.2221191 |
[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. doi: 10.1109/TIFS.2006.890306 |
[4] | MANSOURIA A, AZNAVEH A M, TORKAMANI-AZAR F, et al. Alow complexity video watermarking in H.264 compressed domain[J]. IEEE Transactions on Information Forensics and Security, 2010, 5(4): 649-657. doi: 10.1109/TIFS.2010.2076280 |
[5] | KIM D W, CHOI Y G, KIM H S, et al. The problems in digital watermarking into intra-frames of H.264/AVC[J]. Image and Vision Computing, 2010, 28(8): 1220-1228. doi: 10.1016/j.imavis.2009.12.006 |
[6] | 张维纬, 张茹, 刘建毅, 等. 基于纹理特征的H.264/AVC顽健视频水印算法[J]. 通信学报, 2012, 33(3): 82-89. ( ZHANG W W, ZHANG R, LIU J Y, et al. Robust video watermarking algorithm for H.264/AVC based on texture feature[J]. Journal on Communications, 2012, 33(3): 82-89. ) |
[7] | 王家骥, 王让定, 李伟, 等. 一种基于帧内预测模式的HEVC视频信息隐藏算法[J]. 光电子·激光, 2014, 25(8): 1578-1585. ( WANG J J, WANG R D, LI W, et al. An information hiding algorithm for HEVC based on intra prediction[J]. Journal of Optoelectronics·Laser, 2014, 25(8): 1578-1585. ) |
[8] | 张明辉, 冯桂. 基于纹理方向的高效视频编码鲁棒视频水印[J]. 计算机应用, 2015, 35(9): 2531-2534. ( ZHANG M H, FENG G. Robust video watermarking algorithm for high efficiency video coding based on texture direction[J]. Journal of Computer Applications, 2015, 35(9): 2531-2534. doi: 10.11772/j.issn.1001-9081.2015.09.2531 ) |
[9] | LIU Y X, JU L M, HU MS, et al. A robust reversible data hiding scheme for H.264 without distortion drift[J]. Neurocomputing, 2015, 151(3): 1053-1062. |
[10] | TSAI A C, WANG J F, LIN W G, et al. A simple and robust direction detection algorithm for fast H.264 intra prediction[C]//Proceedings of the 2007 IEEE International Conference on Multimedia and Expo. Piscataway, NJ:IEEE, 2007:1587-1590. |
[11] | QIN C, CHANG C C, CHEN P Y. Self-embedding fragile watermarking with restoration capability based on adaptive bit allocation mechanism[J]. Signal Processing, 2012, 92(4): 1137-1150. doi: 10.1016/j.sigpro.2011.11.013 |
[12] | XU D W, WANG R D. Watermarking in H.264/AVC compressed domain using Exp-Golomb code words maping[J]. Optical Engineering, 2011, 50(9): 097402. doi: 10.1117/1.3622759 |
[13] | HOHENBERGER S, WATERS B. Online/offline attribute-based encryption[C]//PKC 2014:Proceedings of the 17th International Conference on Practice and Theory in Public-Key Cryptography, LNCS 8383. Berlin:Springer, 2014:293-310. |
[14] | LAINEMA J, BOSSEN F, HAN W, et al. Intra coding of the HEVC standard[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2012, 22(12): 1792-1801. doi: 10.1109/TCSVT.2012.2221525 |
[15] | CHANG P C, CHUNG K L, CHEN J J, et al. A DCT/DST-based error propagation-free data hiding algorithm for HEVC intra-coded frames[J]. Journal of Visual Communication and Image Representation, 2014, 25(2): 239-253. doi: 10.1016/j.jvcir.2013.10.007 |
[16] | ZHAO J, LI Z T, FENG B. A novel two-dimensional histogram modification for reversible data embedding into stereo H.264 video[J]. Multimedia Tools & Applications, 2016, 75(10): 5959-5980. |
[17] | 张明辉, 冯桂. 消除帧内误差传播的HEVC可逆水印算法[J]. 信号处理, 2016, 32(2): 220-226. ( ZHANG M H, FENG G. A reversible watermarking algorithm for HEVC intra-coded frames without error propagation[J]. Journal of Signal Processing, 2016, 32(2): 220-226. ) |