论文部分内容阅读
摘要离散余弦变换(Discrete Cosine Transform )和奇异值分解(Singular Value Decomposition)都可以作为数字水印算法有效的工具,现提出了一种基于离散余弦变换和奇异值分解联合的数字水印算法,实验结果表明本算法具有很好的稳健性,嵌入的水印能被可靠地提取和检测。
关键词稳健的数字水印离散余弦变换奇异值分解
中图分类号:TP37文献标识码:A
1 引言
数字水印(Digital Watermarking)是往多媒体数据(如图像、声音、视频信号等)中添加某些数字信息(水印)而不影响原数据的视听效果,运算法则一般由水印结构、水印的嵌入法则、水印的提取和检测法则构成,可以在像素域或者是DCT和小波转换域中嵌入水印。
2 基于离散余弦变换和奇异值分解联合的数字水印算法
2.1 离散余弦(DCT)技术
Cox利用随机数发生器产生标准正态序列作为水印信息对图像进行整体DCT变换后,选取除去DC系数之外部分较低频率系数叠加水印信息。Piva则修改整幅图像的中频部分,对原始信号分块后,再作DCT的算法。有Hsu和Wu把图像进行8*8分块,将一个二进制序列作为水印放入DCT的中频区。有些学者则计算整个图像的DCT,把一个实数序列嵌入DCT的中频系数上。选择中频区的好处是一方面尽量减少嵌入信息对图像主观视觉的影响,同时,尽量避免有损压缩对水印信息可能带来的损失。
2.2 数字图像的奇异值分解
如果从线性代数的角度来看,一幅数字图像可以看成是由许多非负标量组成的矩阵,用A∈RMxM来表示这样一个图像矩阵,其中R表示实数域,每个实数矩阵能分解为三个矩阵,这样A就可以表示成:
A = U∑VT
其中,U∈RMxM,V∈RMxM,U和V都是正交矩阵,∑∈RMxM是一个对角矩阵,
€%L = diag (€%d1, €%d2, €%d3,……),∑的对角线上的元素的值€%d1, €%d2, €%d3,……就叫做图像矩阵A的奇异值(SVs),U的列称为矩阵A的左奇异向量,V的列称为矩阵A的右奇异向量,这种分解A = U∑VT就称为A的奇异值分解,A可以表示成:
这里 r 为矩阵A的秩。在基于奇异值分解的数字水印中,一般是选择随机序列或者是一幅数字图像作为水印,基于块或者是整体来嵌入水印数据。
2.3 离散余弦变换和奇异值分解联合的数字水印算法
在这部分中,我们提出了一种将DCT和SVD联合起来的水印方法,假定水印的长度是n x n,整个图像的长度是2n x 2n
2.3.1 水印的嵌入方法:
(1) 对整个图像应用DCT,按照“之”字型的顺序,绘制DCT系数到四个象限:B1,B2,B3,B4;
(2) 在每个象限,运用SVD:AK = UKA∑KAVKTA,K =1,2,3,4,这里K代表这四个象限;
(3) 对整个水印W运用DCT,然后对已经运用了DCT转换的水印W运用SVD,W = UW∑WVWT;
(4) 利用已经运用了DCT转换的水印W的奇异值,来修改每个象限BK(K =1,2,3,4)的奇异值:€%di*K =€%d i K +a k €%d wi ,i = 1…n,€%d i K(i = 1…n)是∑KA奇异值,€%d wi(i = 1…n)是∑W的奇异值;
(5) 得到四组已经修改了的DCT系数:A*K = UKA∑*KAVKTA, K =1,2,3,4
(6) 利用修改的DCT来嵌入水印。
2.3.2 水印的提取方法:
(1) 对已嵌入了水印的整个图像运用DCT,按照“之”字型的顺序,绘制DCT系数到四个象限:B1,B2,B3,B4;
(2) 在每个象限,运用SVD,A*K = UKA∑*KAVKTA,K =1,2,3,4,这里K代表四个象限;
(3) 提取每个象限BK (K =1,2,3,4)的奇异值:€%d wiK = (€%di*K - €%d i K)/ a k,i = 1…n;
(4)使用奇异向量构造四个水印的DCT系数:WK =UKW∑KWVKTW,K=1,2,3,4;
(5) 利用DCT来提取四个水印。
3 实验结果
实验中,采用256级灰度图像Lena作为要嵌入水印的图像,256级灰度图像Boat作为水印图像,大小均为256 x 256。在实验中,利用Matlab的12种操作类型,比较了基于DCT-SVD水印法则和纯粹基于SVD的水印法则的不同结果来测试本水印算法稳健程度。表一中列出了在两种不同的水印法则下进行各种操作前后水印的相关系数。
从表一的实验结果可知,基于DCT-SVD水印法相对纯粹基于SVD的水印法则,操作前后水印的相关系数要高,而相关系数越高,就表明对各种攻击有越强的抵抗力。从实验结果可以发现,基于DCT-SVD水印法比纯粹基于SVD的水印法则可以提供更好的稳健性和可靠性。
关键词稳健的数字水印离散余弦变换奇异值分解
中图分类号:TP37文献标识码:A
1 引言
数字水印(Digital Watermarking)是往多媒体数据(如图像、声音、视频信号等)中添加某些数字信息(水印)而不影响原数据的视听效果,运算法则一般由水印结构、水印的嵌入法则、水印的提取和检测法则构成,可以在像素域或者是DCT和小波转换域中嵌入水印。
2 基于离散余弦变换和奇异值分解联合的数字水印算法
2.1 离散余弦(DCT)技术
Cox利用随机数发生器产生标准正态序列作为水印信息对图像进行整体DCT变换后,选取除去DC系数之外部分较低频率系数叠加水印信息。Piva则修改整幅图像的中频部分,对原始信号分块后,再作DCT的算法。有Hsu和Wu把图像进行8*8分块,将一个二进制序列作为水印放入DCT的中频区。有些学者则计算整个图像的DCT,把一个实数序列嵌入DCT的中频系数上。选择中频区的好处是一方面尽量减少嵌入信息对图像主观视觉的影响,同时,尽量避免有损压缩对水印信息可能带来的损失。
2.2 数字图像的奇异值分解
如果从线性代数的角度来看,一幅数字图像可以看成是由许多非负标量组成的矩阵,用A∈RMxM来表示这样一个图像矩阵,其中R表示实数域,每个实数矩阵能分解为三个矩阵,这样A就可以表示成:
A = U∑VT
其中,U∈RMxM,V∈RMxM,U和V都是正交矩阵,∑∈RMxM是一个对角矩阵,
€%L = diag (€%d1, €%d2, €%d3,……),∑的对角线上的元素的值€%d1, €%d2, €%d3,……就叫做图像矩阵A的奇异值(SVs),U的列称为矩阵A的左奇异向量,V的列称为矩阵A的右奇异向量,这种分解A = U∑VT就称为A的奇异值分解,A可以表示成:
这里 r 为矩阵A的秩。在基于奇异值分解的数字水印中,一般是选择随机序列或者是一幅数字图像作为水印,基于块或者是整体来嵌入水印数据。
2.3 离散余弦变换和奇异值分解联合的数字水印算法
在这部分中,我们提出了一种将DCT和SVD联合起来的水印方法,假定水印的长度是n x n,整个图像的长度是2n x 2n
2.3.1 水印的嵌入方法:
(1) 对整个图像应用DCT,按照“之”字型的顺序,绘制DCT系数到四个象限:B1,B2,B3,B4;
(2) 在每个象限,运用SVD:AK = UKA∑KAVKTA,K =1,2,3,4,这里K代表这四个象限;
(3) 对整个水印W运用DCT,然后对已经运用了DCT转换的水印W运用SVD,W = UW∑WVWT;
(4) 利用已经运用了DCT转换的水印W的奇异值,来修改每个象限BK(K =1,2,3,4)的奇异值:€%di*K =€%d i K +a k €%d wi ,i = 1…n,€%d i K(i = 1…n)是∑KA奇异值,€%d wi(i = 1…n)是∑W的奇异值;
(5) 得到四组已经修改了的DCT系数:A*K = UKA∑*KAVKTA, K =1,2,3,4
(6) 利用修改的DCT来嵌入水印。
2.3.2 水印的提取方法:
(1) 对已嵌入了水印的整个图像运用DCT,按照“之”字型的顺序,绘制DCT系数到四个象限:B1,B2,B3,B4;
(2) 在每个象限,运用SVD,A*K = UKA∑*KAVKTA,K =1,2,3,4,这里K代表四个象限;
(3) 提取每个象限BK (K =1,2,3,4)的奇异值:€%d wiK = (€%di*K - €%d i K)/ a k,i = 1…n;
(4)使用奇异向量构造四个水印的DCT系数:WK =UKW∑KWVKTW,K=1,2,3,4;
(5) 利用DCT来提取四个水印。
3 实验结果
实验中,采用256级灰度图像Lena作为要嵌入水印的图像,256级灰度图像Boat作为水印图像,大小均为256 x 256。在实验中,利用Matlab的12种操作类型,比较了基于DCT-SVD水印法则和纯粹基于SVD的水印法则的不同结果来测试本水印算法稳健程度。表一中列出了在两种不同的水印法则下进行各种操作前后水印的相关系数。
从表一的实验结果可知,基于DCT-SVD水印法相对纯粹基于SVD的水印法则,操作前后水印的相关系数要高,而相关系数越高,就表明对各种攻击有越强的抵抗力。从实验结果可以发现,基于DCT-SVD水印法比纯粹基于SVD的水印法则可以提供更好的稳健性和可靠性。