用于图像篡改定位和恢复的分层半脆弱数字水印算法的详细介绍
·106· 通 信 学 报 第28卷
为素数);
4)根据式(1)计算X′,即块X的Torus自同构映射块;
5)记录所有的X和X′。
当密钥k为素数时,X和X′满足一一映射关系,否则为多对一映射关系。表1给出了当N=16,k=7和N=16,k=6时,X和X′的映射关系。由表1可发现,当k=7时,自同构映射最小周期为16,而k=6时,不为素数,则在X=9处,序列X′开始重复。由此可得,当密钥k不为素数时,自同构映射最小周期小于N,为多对一映射关系。
r是长度为6bit的恢复水印,由图像块A中对应子
块的亮度特征决定。下面以子块B1为例,说明认证水印和恢复水印的产生及嵌入过程:
1)将图像块B的所有像素的2bit LSB置0,并分别计算图像块B的灰度平均值Bavg和子块B1的灰度平均值B1_avg。
2)按照下式生成子块B1的认证水印比特v
Bavg≥B1_avg 1, v= 0, 其他
(2)
3)按照式(3)生成子块B1的奇偶校验比特p 1, N1为奇数
(3) 表1 N=16和k=7、6时,X和X′的映射关系 p=
0,N1为偶数X X′(k=7)X′(k=6)
其中,N1为灰度平均值B1_avg的6bit最高有效1 8 7
2 15 13
比特(MSB,most significant bit)中1的个数。 3 6 3
4 13 9 4)由式(1)计算图像块B的对应映射块。假5 4 15
设计算出图像块A和图像块B是一对Torus自同构6 11 5
7 2 11 映射,即图像块A的亮度特征是嵌入到映射块B中8 9 1
的。计算子块A1的灰度平均值A1_avg。 9 16 7
10 7 13 5)取A1_avg的6bit MSB作为恢复水印r,嵌入11 14 3
到子块B1。 12 5 9
13 12 15
6)将v,k,r串联起来组成一个长度为8bit
14 3 5 15 10 11 的水印信息,并按照如图2所示的方法嵌入到子块16 1 1
B1中4个像素的2bit LSB中,从而得到嵌入水印的
'
图像子块B1。
2.1.2 基于分块的水印生成与嵌入
为了便于分析,假设图像块A和B是原始图像I中的2个分块,它们是一对Torus自同构映射,即A→B,其中图像块A和B的大小均为4×4。现将图像块A和图像块B均划分为大小为2×2的4个子块,分别用A1,A2,A3,A4和B1,B2,B3,B4表示,各子块的对应关系如图1所示。
图2 8bit水印信息嵌入到子块B1的位置
图1 子块水印生成过程
图像块B中,每个子块生成的水印信息用数组(v,p,r)表示,其中v,p,为认证水印,均为1bit,
到目前为止,已经完成了子块B1的水印嵌入,然后再对图像块B中的其他3个子块B2,B3,B4重复步骤1)至6),嵌入8bit水印信息。这时完成了原始图像I中的一个独立块B的水印嵌入过程,最后再重复上述步骤可完成所有其他独立块的水印嵌入,得到水印图像Iw。
2.2 基于分块的分层篡改检测与定位
水印检测是水印嵌入的逆过程,首先将可能遭受篡改的水印图像I′w划分为互不重叠的4×4独立块。再将所有独立块进一步划分为互不重叠