基于H.264误差漂移补偿的鲁棒性视频水印算法
2016-11-01谢斌,彭林
谢 斌,彭 林
(江西理工大学 信息工程学院,江西 赣州 341000)
基于H.264误差漂移补偿的鲁棒性视频水印算法
谢斌,彭林
(江西理工大学信息工程学院,江西 赣州 341000)
针对现有基于H.264的视频水印算法存在误差漂移的问题,在分析了误差漂移产生原因的基础上,提出了一种抑制误差漂移的鲁棒性视频水印新算法。通过调制H.264编码中I帧量化后的4×4 DCT系数来实现水印的嵌入,并对帧内预测量化后满足特定条件的DCT子块的最后一行、列进行补偿和对帧间预测进行补偿,有效地抑制了帧内、帧间误差漂移。另外,该算法结合CAVLC编码来调制量化后的DCT残差系数,使整体码流变动较小,并且算法能够根据不同视频序列自适应地调节嵌入容量及嵌入位置,具有较好的灵活性和鲁棒性。在水印提取过程中,不需要原始视频的参与,即可实现盲提取。仿真实验结果表明,该算法在具有良好不可见性的前提下,对压缩码率影响较小,能够较好地抵抗噪声、帧剪切、重编码等攻击。
视频水印;误差漂移;鲁棒性;DCT变换;帧内预测
视频水印技术是当前保护视频版权最有效的手段之一,H.264采用先进的编码标准,以其低码率、高质量、网络适应性强等优点被广泛应用于数字媒体中。因此,研究适用于H.264编解码标准的视频水印算法具有较好的现实意义[1-2]。基于H.264标准的压缩域水印算法主流设计方案大致包括DCT系数嵌入法[3-5]和运动矢量嵌入法[6]。但不管使用上述何种嵌入方法,误差漂移失真始终是H.264压缩域算法中面临的最大问题。
文献[7]利用双树复小波变换提取视觉特征,并结合纹理掩蔽效应确定嵌入位置,该算法具有较好不可见性,但并没有从根本上解决误差漂移的问题。文献[8]提出一种低复杂度的误差补偿算法,该算法在DCT系数中嵌入水印信息,利用误差预测模板对当前块进行动态补偿,该算法虽然复杂度低,但并没有完全消除误差漂移。文献[9]较详细地分析了由于水印嵌入而产生误差漂移的机制,并通过水印模版对帧内4×4子块最后一行(一列)进行补偿,虽然消除了帧内误差漂移,却没有考虑帧间误差漂移。
针对上述问题,文中提出了一种能有效消除帧内、帧间误差漂移的鲁棒性盲视频水印算法。该算法在I帧量化后的4×4 DCT系数中嵌入水印信息,结合H.264编解码标准对嵌入操作中产生的漂移误差进行补偿,从而有效地减小了帧内、帧间误差漂移。 另外,该算法能根据不同运动程度画面的视频序列自适应地选择满足条件的DCT子块进行水印嵌入。并且,嵌入容量也随着不同运动程度画面的视频序列自适应调整,因此,算法更具有较好的灵活性和鲁棒性。
1 H.264编解码标准的关键技术
1.1亮度4×4块帧内预测
帧内预测是H.264提出的一种特有的编码技术,它使用空间中相邻块间的空间相关性进行预测。在H.264基本档次中包括4种帧内预测方式,即4×4亮度块的帧内预测(INTRA_4×4)、16×16亮度块的帧内预测(INTRA_16×16)、8×8色度块的帧内预测和PCM预测。
INTRA_4×4有9种预测模式,图1所示为亮度4×4帧内预测及8种预测方向(除了DC预测模式)示意图,其中图1a为当前4×4块与其周边相邻各像素值,其中a~p为当前4×4块像素值,A~M为其左边和上边已编码块的边缘像素值。其预测值p是根据A~M的值按9种不同的方向进行预测取最优得到,图1b为帧内4×4子块除了DC模式之外的8种预测方向,其第一个编码的宏块预测值为128。
图1 亮度4×4帧内预测及8种预测方向
1.2亮度块残差编解码过程
H.264视频编解码标准采用4×4的整数DCT变换,在降低算法复杂度的同时也有效降低了块内失真。DCT变换因其简单、快速、易实现等优点而被多数视频压缩标准所采用。在编码端,基于4×4块的整数离散余弦核变换公式为
(1)
式中:R是残差矩阵;Y是残差矩阵R的整数DCT变换结果,该结果未经尺度变换处理,其中
(2)
尺度变换归入量化阶段进行
(3)
(4)
(5)
其中
(6)
2 误差漂移的成因及补偿方法
2.1嵌入失真分析
(7)
CT(Δ×Qstep×PF)C]
(8)
用嵌入信息前后残差矩阵元素的变化表示嵌入误差,则嵌入误差E如下
E=R″-R″=CT(Δ×Qstep×PF)C
(9)
下面以foreman视频的I帧第一个宏块第3个4×4子块为例,该4×4经量化后的DCT残差矩阵A如下
(10)
对A进行反量化反DCT变换操作再加上预测值矩阵P得到重构的4×4像素值矩阵
(11)
假设嵌入信息使矩阵A中某元素值作微小变动,不妨将A1,2中的-16改为-15,即得到嵌入信息后的4×4量化DCT残差矩阵A′,然后对A′进行反量化反DCT变换操作,再加上预测值P得到重构的嵌入水印信息的4×4像素值矩阵
(12)
则嵌入误差E为
(13)
由此可见即使对量化后的DCT系数矩阵作轻微的改动,也会引起矩阵中所有元素的变动,而该子块又作为其他块的参考子块,如此误差一直传递下去,并逐步积累,最终引起严重的视觉失真。
2.2误差漂移补偿
由上节可知,在帧内预测中,当前块的预测值与相邻块的边缘像素值(最后一行或最后一列)有关,可以考虑在嵌入信息过程中进行误差补偿,使相邻块的最后一行或最后一列保持不变,那么后续的待预测块便能准确地根据参考像素值进行预测,从而防止误差扩散,视频质量得到有效的保证。
(14)
同时设
(15)
(16)
图2 误差补偿嵌入
通过误差补偿嵌入能保证信息嵌入前后当前块边缘像素值不变,从而有效解决了I帧帧内失真漂移问题。但后续P和B帧需要I帧信息作为帧间预测参考帧,仅保证误差矩阵最后一行(列)为0并不能解决帧间误差漂移问题。继续求解式(15)可得第二行元素值的解。
(17)
(18)
由式(18)知,解中对应列号相同的两个元素改变量一样且为常量(α为常量),这样在进行帧间预测前可以通过误差补偿使误差矩阵E的第二行为0,从而可以有效避免帧间误差漂移,较好地解决了因误差漂移引起的视频失真问题。同理,对列操作也可以得到类似的结果,这里不再论述。
3 水印的嵌入及提取
3.1水印的嵌入
1) 将视频流进行熵解码得到量化后的DCT残差矩阵Y,为保证残差矩阵有较大的系数能量,这里设定一个阈值T(本文中T=5)。如果Y中非零元素大于阈值T则进行下一步操作,否则转取下一个DCT残差矩阵,直到满足条件。
2) 判断(Y12,Y32)或(Y13,Y33)是否非零,如果Y12和Y32均不为零则进一步判断是否满足Y12≠-1,-2,Y32≠1,2,(Y12,Y32)不满足条件再判断(Y13,Y33),若满足条件则进行下一步操作,否则转入步骤1)。
3) 将水印信息W置乱操作,并转化为一维随机的(0,1)序列,即Wi=0或1,其中i=1,2,…,length(W)。
4)进行水印嵌入操作
(1)当水印序列为Wi=1时,若Y中元素Y12为奇数则不变,如果为偶数,将Y12加1同时将Y32减1作为误差补偿
(19)
(2)当水印序列为Wi=0,若Y中元素Y12为偶数则不变,如果为奇数,将Y12加1同时将Y32减1作为误差补偿
(20)
5) 嵌入信息后得到的残差矩阵为Y′,在进行帧间预测前对Y′第二、三行进行补偿处理使其恢复为原来的残差矩阵Y,便于帧间预测的准确进行,并记录嵌入水印子块的相关信息。最后将该子块重新熵编码归入原始视频流中。
3.2水印的提取
1)将视频流进行熵解码,得到量化后含水印信息的DCT残差矩阵Y′,如果Y′中非零元素大于阈值T则进行下一步操作,否则取下一个DCT残差矩阵,直到满足条件。
2)提取嵌入过程中记录的嵌入子块判断Y12或Y13,如果Y12或Y13为奇,则提取水印为1,否则为0。重复1)~2)直至完全提取出水印信息。
4 实验结果及分析
文中在VC++6.0和MATLABR2014a平台下,采用H.264/AVC编码标准的参考软件JM8.6基本档次及参考视频foreman,carphone,bus,football,测试视频长度50帧(QCIF176×144),视频帧结构为IPPPP格式,I帧周期为10,帧率为30 帧/秒(f/s),量化参数QP=28,水印取值为(0,1)序列,用MATLABR2014a对水印序列进行相关处理。
4.1不可见性分析
视频水印的最基本要求是满足不可见性,图3所示为水印嵌入前后重建图像的比较,分别给出了foreman,carphone,bus,football视频序列第21帧水印嵌入前后解码的视频帧图像。图3a所示依次为foreman,carphone,bus,football视频第21帧原始重建图像,图3b所示为它们嵌入水印后的重建图像。
图3 水印嵌入前后重建图像的比较
从图3可以看出,该算法嵌入水印信息并没有引起重建图像的视觉失真。为了更好更科学地评价视频质量,这里引入基于人眼视觉模型的视频质量客观评价指标PSNR(PeakSignaltoNoiseRatio),即峰值信噪比。图4所示为嵌入水印前后视频PSNR值,分别给出了foreman,carphone,bus,football视频在没有嵌入水印信息和嵌入水印信息情况下的PSNR值。
图4 嵌入水印前后视频PSNR值
由图4知,通过对foreman,carphone,bus,football视频序列的统计,发现水印信息嵌入前后视频PSNR值的变化并不大,对于运动较缓慢的foreman、carphone视频序列PSNR大约下降1.4dB和0.5dB,而对运动较复杂的bus,football视频序列分别下降约0.7dB和0.1dB,通过主观观察和客观评价指标显示水印信息的嵌入并没有给视频质量带来较大影响。
表1水印嵌入前后比特率及码率变化
视频序列嵌入前比特量/bit嵌入后比特量/bit比特变化率/%文献[4]比特变化率/%码率增量/(kbit·s-1)foreman3688483694480.1630.850.36carphone2250162253120.1320.880.18bus8267288279600.149—0.74football115147211526320.101—0.70
由此可见,水印信息的嵌入对码流影响并不大,能很好地满足码流稳定性要求。
4.2抗攻击能力分析
为了更好地评估该算法性能,将视频序列进行各种攻击实验。水印检测结果采用归一化相关系数NC值及位错误率BER来共同衡量,归一化相关系数公式如下
(21)
式中:W(i,j)和W*(i,j)分别为原始水印和提取后水印的像素值;m,n分别为水印的长和宽;NC表示提取水印信息与原始水印信息的相似程度。
位错误率公式为
(22)
式中:W,W′分别为原始水印序列和提取的水印序列;N为水印序列长度;BER表示提取的水印序列与原始水印序列不同的个数占水印序列总长度的百分比,即提取水印的误码率。
下面对视频序列进行各种攻击实验(限于篇幅,这里仅以foreman图像帧为例)。图5所示从左至右依次为foreman视频序列进行方差为δ=0.002的高斯噪声攻击、密度为0.01的椒盐噪声攻击、左上角剪切1/16、QP=30的重压缩攻击经各种攻击后重建的第一帧图像。
图5 foreman视频经过各种攻击后的视频帧
图6描述了对foreman,carphone,bus,football视频序列分别进行高斯噪声、椒盐噪声、剪切、重量等攻击得到的NC值。
图6 各种攻击下提取水印的NC值
图6各种攻击下提取水印的NC值
由图6可知,将foreman,carphone,bus,football视频经过一序列攻击后提取水印的NC值均在0.85以上,其中foreman和bus视频序列提取的NC值较文献[11]高,说明该算法具有较强的抗攻击能力。下面接着分析在各种攻击下提取水印的误码率情况,如图7所示为各种攻击下提取水印的BER值。由图7可知,水印经各种攻击后,提取水印的误码率均在10%以下(除了QP=30重量化时football提取为10.29%),且与文献[11]做对比,误码率得到大幅降低,表明该算法具有较好的稳健性。
图7 各种攻击下提取水印的误码率对比
5 小结
文中针对现有基于H.264的视频水印算法存在误差漂移的问题,提出了一种基于H.264误差漂移补偿的视频水印算法。通过对误差漂移的成因进行深入分析,进而调制量化后的DCT系数进行误差漂移补偿,有效地消除了帧内帧间误差漂移。另外,文中算法自适应地选取满足条件的4×4子块进行水印嵌入,使攻击者不能轻易提取出水印信息。水印提取时,使用嵌入过程中记录的嵌入子块信息进行水印提取,保证了提取水印的准确率,且不需要原始视频参与,实现了盲提取。如何结合人眼视觉系统和视频纹理特征进行水印嵌入及水印容量问题是下一步的研究方向。
[1]KIMDW,CHOIYG,KIMHS,et al. The problems in digital watermarking into intra-frames of H.264/AVC[J].Image and vision computing,2010,28(8):1220-1228.
[2]何英亮,杨高波,许拔,等.一种基于整数变换DC分量的自适应视频水印算法[J].计算机工程与科学,2010,32(3):72-75.
[3]丁晓艳,赵慧民,郭一缜.一种基于H.264 /AVC的鲁棒性视频水印算法[J].电视技术,2014,38(5):16-19.
[4]张维纬,赵宸,黄德天,等.基于代价策略的H.264/AVC半脆弱水印算法[J].通信学报,2015,33(10):110-118.
[5]张维纬,张茹,刘建毅,等.一种基于H.264/AVC的视频可逆脆弱水印算法[J].电子与信息学报,2013,35(1):106-112.
[6]王丽娜,王旻杰,翟黎明,等.基于相关性异常的H.264/AVC视频运动矢量隐写分析算法[J].电子学报,2014,8(8):1457-1464.
[7]张敏情,王珏,钮可.结合视觉感知特性和湿纸编码的视频隐写算法[J].计算机应用研究,2012,29(6):2228-2231.
[8]张李伟,朱跃生,布礼文.用于H.264/AVC水印嵌入的低复杂度误差补偿算法[J].北京大学学报(自然科学版),2013,49(2):227-233.
[9]尤星,谢东峰,李宝清,等.基于H.264的漂移深度控制视频隐写算法[J].电子学报,2014,7(7):1284-1290.
[10]徐达文,王让定.抗重量化转码的H.264/AVC视频水印算法[J].电子与信息学报,2013,35(5):1229-1235.
[11]蒋刚毅,李文锋,郁梅,等.H.264/AVC压缩域鲁棒视频水印[J].光学精密工程,2015,23(1):260- 270.
谢斌(1977— ),副教授/硕士,硕士生导师,主研领域为信号处理与信息安全;
彭林(1990— ),硕士生,主研信号处理。
责任编辑:时雯
Robust video watermarking algorithm based on H.264 error drift compensation
XIE Bin,PENG Lin
(FacultyofInformationEngineering,JiangxiUniversityofScienceandTechnology,JiangxiGanzhou341000,China)
Based on the presence of the existing H.264 video watermarking algorithm error drift problems, the system based on the error drift causes is analyzed, the robustness of the proposed video watermarking algorithm suppress error drift.By modulating the H.264 coding coefficients in 4×4 DCT quantized I frame to the watermark embedding, and specific conditions are met after the last line of the intra prediction quantized DCT subblock column and compensating inter-frame prediction compensation, frame effectively suppressed interframe error drift. In addition, the algorithm combines CAVLC residual coding modulation DCT coefficients after quantization, so that changes in the overall stream is small, and the algorithm can adaptively adjust the embedding capacity and embedding position according to different video sequences, it has good flexibility and Lu stick properties.In the watermark extraction process, is not involved in the original video, you can realize blind extraction. Simulation results show that the algorithm has good invisibility under the premise of the compression rate has little effect, better able to resist noise, frame cropping, re-encoding and other attacks.
video watermarking; error drift; robustness; DCT transform; intra prediction
TN929.56
ADOI:10.16280/j.videoe.2016.10.004
国家自然科学基金项目(61363076);江苏省自然科学基金项目(120142BAB207020)
2016-03-29
文献引用格式:谢斌,彭林.基于H.264误差漂移补偿的鲁棒性视频水印算法[J].电视技术,2016,40(10):15-21.
XIE B,PENG L.Robust video watermarking algorithm based on H.264 error drift compensation[J].Video engineering,2016,40(10):15-21.