基于DWT-DCT-SVD的鲁棒盲视频水印算法
2015-12-05陈玉麟鲍文霞
陈玉麟,梁 栋,张 成,鲍文霞
(安徽大学 计算机智能与信号处理教育部重点实验室,安徽 合肥 230039)
由于互联网技术和数字多媒体技术的快速发展,大量的多媒体数据都可以通过网络被人们轻松的访问、拷贝和传播.因此,寻求有效的方法来解决多媒体数据的版权保护问题日益受到人们重视,其中,数字水印技术成为一种非常有效的版权保护方法[1].近年来,人们对数字图像水印技术的研究已日趋成熟,而视频水印正处于研究阶段.文献[2]提出了三维Gabor变换的视频水印算法,将水印信息嵌入到三维Gabor变换的系数中,该算法计算复杂度较高,不满足水印的实时性要求.文献[3]基于三维小波变换的空时多分辨率特性,将扩频水印自适应地嵌入到三维小波系数中,鲁棒性较好,但实时性较差且水印为非盲提取.文献[4]中对每4帧图像进行三维小波变换,将水印自适应地嵌入到视频的低频与高频帧中,水印为盲提取且鲁棒性较好.文献[5-6]中的算法对几何攻击都具有较强的鲁棒性,但对于帧置乱、帧丢失等时间同步攻击鲁棒性较弱.文献[7]利用压缩传感和Arnold变换对水印进行加密,然后将视频关键帧的某一颜色分量进行SVD分解,将加密后的水印嵌入到相应的奇异值中,该算法使水印具有较好的保密性和鲁棒性.文献[8]提出了一种盲视频水印算法,但该算法将视频中的每一帧图像都进行DWT变换与SVD分解,计算量大且对噪声的鲁棒性较差.
文中提出一种基于DWT-DCT-SVD结合的非压缩域视频水印算法,采用灰度图像作为水印.利用帧内R、G通道的颜色差值进行快速关键帧选取.充分利用小波变换的多分辨率特性,对关键帧的B分量进行多级DWT变换,将变换后的高频子带进行Arnold置乱,对置乱后的子带进行DWT和DCT变换,最后将水印嵌入到变换后的子带奇异值中,完成水印的嵌入.同时能对几何步攻击及帧攻击实现水印的盲提取.实验表明,该算法具有较好的不可见性和鲁棒性.
1 Arnold变换
Arnold变换又称猫脸变换,由于其具有良好的周期性和分散性[9],能够降低图像像素间的空间相关性,增强水印的安全性,同时能够增强水印的抗剪切能力,因此在数字图像中得到广泛的应用.对于一幅N×N的图像,二维Arnold变换定义如下
其中:(x,y)表示原始图像矩阵中像素点的坐标,(x′,y′)表示变换后新图像矩阵中的坐标,且x,y∈{0,1,2,…,N-1}.Arnold变换的实质是经过多次迭代后改变原始图像矩阵中所有像素点的空间位置,从而得到一幅置乱后的图像.
2 奇异值分解
奇异值分解作为一种矩阵分解的方法,在图像压缩、信息隐藏和数字水印等方面得到广泛应用,主要由于其具有以下显著特性[10]:一幅图像的奇异值具有很好的稳定性,当图像受到很小的扰动时,奇异值不会发生太大变化;奇异值对应图像的亮度特性,奇异值向量反映图像的几何特性;利用奇异值矩阵来重构图像时,即使忽略后面很小的奇异值也不影响重构图像的整体质量.
从线性代数的角度可以将一幅图像当作一个非负矩阵,记为A∈Rm×n,则大小为m×n的矩阵A的奇异值分解为
其中:U∈Rm×m,V∈Rn×n都为酉矩阵.U矩阵的列被称为左奇异值向量,V矩阵的列被称为右奇异值向量S∈Rm×n,为一个对角矩阵,对角线上的元素为奇异值,其主对角线元素满足如下关系
由于对角矩阵S中每一个奇异值都为非负值,因此可以将它们作为水印嵌入的区域.
3 视频水印算法
3.1 水印的预处理
为提高水印的安全性,对大小为64×64的原始水印W进行Arnold变换,得到置乱后的水印W1,置乱效果如图1所示.
3.2 关键帧的选取
因视频中所含的信息量较大且连续帧之间存在大量的冗余信息,因此文中通过提取视频的关键帧来实现水印的嵌入.根据人眼视觉系统对蓝色最不敏感特性,将水印嵌入到RGB帧的B分量中,因此水印的嵌入对R、G分量不会造成影响.针对传统的基于镜头分割和颜色直方图[11]来选取关键帧,计算复杂度较高,文中提出了一种简单、快速的关键帧选取方法.
具体步骤如下:
(1)对原始视频进行分帧处理,根据公式(4)计算帧图像R、G颜色分量之间差值的绝对值的和,记为Sk
其中:k为帧图像的编号,Rk(x,y,1)、Rk(x,y,2)表示第k帧图像分别在R、G分量(x,y)处的像素值.
(2)从大到小依次选取Sk值对应的前20帧作为关键帧,将选取的关键帧的帧编号位置用密钥key进行保存.
3.3 水印的嵌入算法
该算法将水印嵌入到关键帧的B分量中,具体的嵌入过程如图2所示.
水印嵌入的主要步骤如下:
(1)将视频序列进行分帧处理,选取Sk值较大的前20帧作为水印嵌入的载体.
(2)取关键帧的B分量进行2-DWT变换,得到子带LH2.
(3)将LH2进行Arnold变换,置乱的迭代次数用key1保存,对置乱后的子带进行DWT变换,得到子带HH3.
(4)将HH3进行DWT变换,然后对各子带进行DCT变换,得到的4个子带分别记为LL4、LH4、HL4、HH4,将各子带进行SVD分解,得到各子带的奇异值矩阵Sa1、Sh1、Sv1、Sd1与对应的U、V矩阵.
(5)将水印进行Arnold变换,对置乱后的水印W1进行DWT和DCT变换,对变换后的各子带进行SVD分解,得到水印各子带的奇异值矩阵Swa1、Swh1、Swv1、Swd1和对应的Uw、Vw矩阵.
(6)按照水印嵌入的加性公式,将水印各子带的奇异值分别嵌入到对应子带LL4、LH4、HL4、HH4的奇异值中
其中:Sk表示Sa1、Sh1、Sv1、Sd1;Swk表示Swa1、Swh1、Swv1、Swd1;ak表示不同子带的嵌入强度.
(7)对LL4、LH4、HL4、HH4各块进行奇异值重构,再经过DCT逆变换和2级DWT逆变换得到含水印的子带LH2new.
(8)将LH2new进行Arnold反置乱,然后进行2-IDWT变换,得到含水印的视频帧图像.
(9)按上述步骤将水印重复嵌入到选取的关键帧中,然后将嵌入水印的关键帧放回原始视频中对应位置,得到含水印的视频序列.
3.4 水印的提取算法
水印提取算法无需原始视频,直接用含水印视频的G分量代替原始视频B分量,将其作为水印提取时的原始数据,为减少G分量受噪声影响,文中用模板为3×3,标准差为0.7的高斯滤波器对其进行滤波.具体的提取过程如图3所示.
水印提取的具体步骤如下:
(1)将待测视频进行分帧处理,按相同算法选取20帧关键帧,从中找到与密钥key中保存的帧编号位置相同的关键帧来进行水印的提取.
(2)对待测视频的G分量进行高斯滤波,然后分别将待测视频的B分量和G分量分别进行2-DWT,得到LH2′和LH2*.
(3)分别对LH2′和LH2*进行与密钥key1相同的Arnold变换,对置乱后的子带进行2级DWT变换.
(4)对变换后的各子带进行DCT变换和分解,得到待测视频B分量和G分量的奇异值矩阵分别记为Sn′k和Sg′k.
(5)利用下式进行水印奇异值的提取
(6)水印各块进行奇异值重构,再对各块进行DCT逆变换和离散小波逆变换,得到完整的置乱水印图像.
(7)经Arnold反变换后得到提取后的水印图像.
文中用NC(归一化相关系数)值作为水印提取效果的评价标准,定义如下
其中:W表示原始水印;W′表示提取后的水印.
4 实验结果与分析
选取未压缩的AVI格式的foreman和football视频序列作为测试视频,采用RGB颜色空间,帧率为25f/s,两段视频帧数分别为100帧和173帧,视频帧图像的大小为512×512,水印为64×64的灰度图像.
4.1 不可见性
用PSNR(峰值信噪比)来评价嵌入水印后视频关键帧的质量.foreman和football视频嵌入水印后所有关键帧的平均PSNR分别为50.13dB和50.67dB,此PSNR值下人眼是无法感知嵌入水印视频帧图像质量下降的,同时图4给出了foreman和football视频嵌入水印前后视频关键帧图像.
4.2 鲁棒性分析
一般对视频水印的攻击可分为两类:一类是一般攻击方式,如噪声、滤波、旋转、缩放、JPEG压缩等攻击;另一类是针对视频的帧攻击方式,如帧置乱、帧丢失、帧平均、MPEG压缩等攻击.为验证文中视频水印算法的有效性,对水印的鲁棒性进行如下测试,并给出相应的实验结果.
4.2.1 一般攻击的鲁棒性分析
从嵌入水印视频和原始视频的帧编号位置相同的关键帧中取1帧作为测试样本,表1给出了该算法在一般攻击下从foreman和football视频中提取的水印NC值,图5给出了football视频在不同攻击下重构水印图像.
表1 一般攻击下该算法提取的水印NC值Tab.1 The algorithm extracted watermark NC values under the general attacks
为验证该算法的有效性,保证试验在尽可能相同的情况下进行,文中选取64×64大小的二值图像作为水印,为提高水印的提取效果,需先对水印进行二极化处理.取foreman视频作为水印的载体数据,表2给出了该算法与文献[12]的比较结果,同时图6给出了该算法在不同攻击下水印重构的结果.
表2 该算法与文献[12]的比较结果Tab.2 Comparison between NC values obtained by this algorithm and reference[12]
由表2可知,论文算法对噪声、滤波、剪切、亮度变化、缩放和JPEG压缩等攻击明显优于文献[12].在抗旋转攻击能力方面较弱,但在较小角度旋转的情况下提取的水印还是能够清晰地辨别.
4.2.2 帧攻击的鲁棒性分析
视频的帧攻击方式是目前视频应用的主要问题,由于帧置乱、帧丢失、帧平均等攻击能破坏视序列的时间同步性,从而使嵌入的水印无法被检测或提取.从选取的关键帧中取1帧作为测试样本,图7的(a)、(b)、(c)给出了该算法在帧攻击下从foreman和football视频中提取的水印 NC值,图(d)、(e)、(f)分别为在不同的帧攻击下从foreman视频中重构的水印图像.
由图7可见,该算法对于帧置乱、帧丢失、帧平均具有较强的鲁棒性.由于水印嵌在B分量中,对帧的R、G分量值无干扰,因此利用文中关键帧提取算法能够将含水印的帧检测出来,并从Sk值较大的关键帧中提取水印.
MPEG压缩攻击是视频水印较常见的攻击方式,该文将foreman和football的含水印视频以1.2 Mbps的码率进行压缩,提取后水印NC值分别为0.970 1和0.960 0.该结果表明该算法对于MPEG压缩也具有较强的鲁棒性.
5 结束语
为满足水印的实时性与盲提取,文中提出了基于DWT、DCT与SVD结合的鲁棒盲视频水印算法.只利用视频帧内R、G通道颜色差值选取关键帧,将关键帧进行2-DWT变换,然后对子带进行Arnold变换,利用奇异值分解的性质和小波变换的多分辨率特性,将水印嵌入到置乱后的子带奇异值中,且当视频受到不同攻击时能实现水印的盲提取.实验表明,该算法对视频水印的多种攻击具有较强的鲁棒性,但水印提取过程中需要用到部分水印数据.因此,下一步主要研究工作是在不使用原始水印数据的情况下进行水印的盲提取.
[1]Podilchuk C I,Delp E J.Digital watermarking:algorithms and applications[J].IEEE Signal Processing Magazine,2001,18(4):33-46.
[2]张立和,伍宏涛,胡昌利.基于三维 Gabor变换的视频水印算法[J].软件学报,2004(8):1252-1258.
[3]李英,高新波,姬红兵.一种基于三维小波的视频水印空时算法[J].系统工程与电子技术,2005(1):16-19.
[4]霍菲菲,高新波.基于三维小波变换的视频水印嵌入与盲提取算法[J].电子与信息学报,2007(2):447-450.
[5]杨晓元,钮可,魏萍,等.一种抗几何攻击的视频水印算法[J].计算机工程,2007(8):142-144.
[6]楼偶俊,王相海,王钲旋.抗几何攻击的量化鲁棒视频水印技术研究[J].计算机研究与发展,2007(7):1211-1218.
[7]Jyothish L G,Veena V K,Soman K P.A cryptographic approach to video watermarking based on compressive sensing,arnold transform,sum of absolute deviation and SVD[C]//Emerging Research Areas and International Conference on Microelectronics,Communications and Renewable Energy(AICERA/ICMiCR),2013:1-5.
[8]Rajab L,Al-Khatib T,Al-Haj A.Hybrid DWT-SVD video watermarking[C]//International Conference on Innovation in Information Technology,2008:588-592.
[9]Wu L,Zhang J,Deng W,et al.Arnold transformation algorithm and anti-arnold transformation algorithm[C]//International Conference on Information Science and Engineering(ICISE),2009:1164-1167.
[10]Liu R,Tan T.An SVD-based watermarking scheme for protecting rightful ownership[J].IEEE Transactions on Multimedia,2002,4(1):121-128.
[11]刘政凯,汤晓鸥.视频检索中镜头分割方法综述[J].计算机工程与应用,2002,23:84-87.
[12]毛运柳,黄东军.基于SURF视频分割的视频水印算法[J].计算机工程,2010,19:241-243.