当前位置:
文档之家› 第七章 数字水印技术-变换域算法
第七章 数字水印技术-变换域算法
1 '
x(i, j)
m i
特点: 强度值选定后,按系数的大小,呈比例嵌入信息。
方式三(嵌入、提取)
• 在选出的中频系数中叠加秘密信息
x'(i, j) x(i, j)emi
• 在约定的中频系数中提取信息
ln x''(i, j)
m'i
x(i, j)
思考 • 水印算法如何设计才能提高嵌入容量?
error ('图像大小不一致'); end DCTI = dct2 (I); DCTJ = dct2 (J); index = FindNLargest (abs(DCTI), N); for i = 1:N
Wd(i) = (DCTJ(index(1,i),index(2,i))/DCTI(index(1,i),index(2,i))1)/alpha; end
修改高频AC系数对视觉的影响 • ACH′= ACH(1+25%)
修改高频AC系数对视觉的影响 • ACH′= ACH(1+50%)
NEC算法的原理
• 考查DCT变换域中什么位置适合嵌入水印? – 从水印不可见性考虑
• 将水印嵌入DCT变换域的AC高频系数
– 从水印鲁棒性考虑
• 将水印嵌入什么位置?
NEC算法的原理
• 在DCT变换域嵌入水印 • 考查DCT变换域中什么位置适合嵌入水印?
DCT变换
• I=imread('lena.bmp'); • J=dct2(I);
256*256 灰度图像lena
变换域: DCT变换系数
• DC系数 • AC系数:低频系数、中频系数、高频系数
12
…
256
修改低频AC系数对视觉的影响 • ACL′= ACL(1+50%)
修改中频AC系数对视觉的影响 • ACM′= ACM(1+5%)
修改中频AC系数对视觉的影响 • ACM′= ACM(1+25%)
修改中频AC系数对视觉的影响 • ACM′= ACM(1+50%)
修改高频AC系数对视觉的影响 • ACH′= ACH(1+5%)
0.7093 0.2803 0.8678
0.1768
236.25 D 0.4059
1.25 0.9799
5.1702 0.1768 0.2146 0.2803
1.75 1.8245 2.25 1.1384
1.3762
0.7803
1.4419
0.1768
扩频通信
• 扩展频谱通信(spread spectrum communication) – 起源于通信系统,其理论基础来源于信息论和抗干 扰理论 – 是一种信息传输方式,其信号所占有的频带带宽远 大于信息必需的最小带宽,以此来改善通信质量, 保持可靠通信
error('错误:y应为矢量'); end sim=sum(x(1:n).*y(1:b))/sum(y(1:b).*y(1:b));
NEC算法的性能分析
• 水印容量? – 嵌入1bit水印
• 水印不可见性? –好
• 水印鲁棒性? –好
水印性能评价
水印不可见性分析
水印鲁棒性分析 • 相似度高,可以正确检测
提示
index = FindNLargest (A, N); %index寻找到的A中最大N个值的坐标, index(1,:),行坐标;index(2,:),列坐标
NEC算法:嵌入算法
function J = Cox_Embed (I, W, alpha, N) [m, n] = size(I); If (m*n<N)
算法一
• 提取 –接收者进行二维DCT变换,比较每一块中约定位置 的DCT系数值,根据其相对大小,得到隐藏信息的 比特串,从而恢复出秘密信息
NEC算法的原理
• 原始图像的频域看作通信信道,水印看作通过信道传 输的信号,利用扩频通信原理,将1bit水印分布在图 像的多个感知重要频域系数(DCT变换域的AC低频系 数)中,加在每个频域系数上的信号能量很小且不可 随意检测;水印检测时,需要知道水印的位置和内容, 将许多虚弱的信号集中起来得到水印。
方式一(嵌入)
• 在选出的中频系数中叠加秘密信息
x'(i, j) x(i, j) mi
• x(i, j):DCT系数
• x'(i, j) :隐藏后的DCT系数
• mi :第 i 个秘密信息比特
•
:可调参数,控制嵌入强度
特点: 强度值选定后,不管所选定的DCT系数的大小,加上的
都是固定值。对较大系数的影响小,对较小系数的影响大。
• Wi ' =[(Yi-Xi) /Xi]α,其中Y是可能含有水印信息的n个 DCT系数
NEC算法描述
• 水印的检测 – 通过下式计算原始水印W与提取水印W'之间的相似 程度sim(W,W')
sim(W ,W ') W 'W W W
– 然后将sim(W,W')与预先设定的阈值进行比较,判断 水印的存在与否。阈值可以通过实验的方法获得, 也可以通过一些统计和假设的方法获得
方式一(提取)
• 在约定的中频系数中提取信息
m
' i
x''(i,
j)
x(i,
j)
• x''(i, j) :待测图像的对应中频系数
• m'i :提取出的隐藏信息
方式二(嵌入、提取)
• 在选出的中频系数中叠加秘密信息
x'(i, j) x(i, j)(1 mi )
• 在约定的中频系数中提取信息
x ''(i , j )
第七章 数字水印技术 —变换域算法
1
水印技术
• 从加载方式上分类 – 空间域水印:直接在载体数据上加载水印信息
• LSB算法 • 拼凑算法
– 变换域水印:载体数据经过变换后添加水印信息
• NEC算法
2
内容
• 变换域算法: NEC算法 – 设计原理 – 算法描述 – 程序代码 – 性能分析
背景介绍 • NEC算法( COX算法/ 基于扩频技术的算法)
• 将水印嵌入“经量化后被保存的DCT变换域系数”可 以抵抗压缩攻击
NEC算法的原理
• 考查DCT变换域中什么位置适合嵌入水印? – 从水印不可见性考虑
• 将水印嵌入DCT变换域的AC高频系数
– 从水印鲁棒性考虑
• 将水印嵌入DCT变换域的DC系数或AC低频系数
NEC算法的原理
• 为了解决水印不可见性和鲁棒性的矛盾,COX等人通 过类比通信中的扩频技术,将水印信息嵌入到图像的 AC低频系数,产生了第一个基于扩频思想的数字水印 算法。
error ('载体图像太小'); end DCTI = dct2(I); index = FindNLargest (abs(DCTI), N); %index寻找到的DCT系数坐标,index(1,:),行坐标;index(2,:),列坐标 for i = 1:N
DCTI(index(1,i),index(2,i))=DCTI(index(1,i),index(2,i))*(1+alpha* W(i)); end J = idct2(DCTI); J = abs(J); J = uint8(J);
如何添加水印?
59 60 58 57 F 61 59 59 57
62 59 60 58 59 61 60 56
DCT变换 236.25 4.5169 1.75 1.1056
D 1.0592 0.1768 1.1713 0.7803
1.25 0.4387 2.25 1.7125
IDCT变换
1
2 :
:
256
修改DC系数对视觉的影响 • DC′= DC(1+5%)
修改DC系数对视觉的影响 • DC′= DC(1+25%)
修改DC系数ห้องสมุดไป่ตู้视觉的影响 • DC′= DC(1+50%)
修改低频AC系数对视觉的影响 • ACL′= ACL(1+5%)
修改低频AC系数对视觉的影响 • ACL′= ACL(1+25%)
0.7093
0.2803 0.8678
0.1768
60 60 58 57 F~ 61 59 59 57
62 59 60 58 59 61 60 55
236.25 5.5169 1.75 1.1056
D 0.0592 0.1768 1.1713 0.7803
IDCT变换
1.25 0.4387 2.25 1.7125
NEC算法:检测算法
sim(W ,W ') W 'W W W
function sim=Similar(x,y) [m,n]=size(x); %m=1,行向量;n=1,列向量 if(m~=1&n~=1)
error('错误:x应为矢量'); end [a,b]=size(y); if(a~=1&b~=1)
0.7803 1.7125
59 61 60 56
0.7093
0.2803 0.8678
0.1768
除以量化系数,取整
16 11 11 16 C 12 12 14 19
14 13 16 24 14 17 22 29
15 0 0 0
D
0
0 0 0
0 0 0 0
0
0 0 0
压缩攻击对AC系数的影响
改进思路
• 扩大水印嵌入容量 – 图像分块,DCT变换,每块嵌入至少一位水印