

算法 5.5 DCT隐秘载体编码过程
for i=1,…,l (M) do
选取一隐蔽数据块b i
B i=D{bi }
if m i=0 then
if B i (u1,v1 1)〉B i(u2,v2) then
交换B i (u1,v1 1)且B i(u2,v2)
end if
else
if B i (u1,v1 1)〈B i(u2,v2) then
交换B i (u1,v1 1)且B i(u2,v2)
End if
End if
调整两个数据块的值以使得| B i (u1,v1 1)-B i(u2,v2)〉x
bi=d-1{Bi}
endfor
由所有的 b i' 来创立隐蔽图像
算法 5.6 DCT隐秘载体解码过程
for i=1,…,l (M) do
获取与第 i位相关的隐蔽数据块 b i
B i=D{ bi }
if B i (u1,v1 1)≤B i(u2,v2) then
m i=0
else
m i=1
end if
end for
如果所使用的DCT系数的位置和常数 x选择合适的话,嵌入处理不会对载体产生视觉上的降质。由于在量化处理中两个系数被除以相等的量化值,我们能预见这种方法对 JPEG压缩是健壮的。因此,它们的相对大小仅受取整的影响。上面提到的系统昀大的缺点可能是算法 5.5不能废弃某些图像块,在那些图像块里若让 DCT系数满足所需要的关系,会严重地破坏图像数据。
Zhao和 Koch提出了一个相似的系统,它没有这种缺点。它们是对量化后的 DCT系数进行操作,并使用块中三个 DCT系数之间的关系来保存信息。发送者对图像块 b i进行 DCT变换,并对其量化得到B iQ。若一个块对比特1进行编码时,让 B iQ( uv1, 1)> B Qi( 3,)+D和 B Q ,i(u3,v3) 和B Q i( u2v2)>Bi Q (u3,v3)+D。另一方面,如对 0进行编码,i( , 1)+D <B Qi( uv3 i(uv(2)2 +D<B Q 3,)。参数 D是描述一个嵌入位所需两个系数的最小距离,通常D=1。D越大,方法相对于图像处理技术就越健壮。再一次强调,应该在中频选择这三个系数。在编码时,改变这三个系数的关系使得它们能代表一个秘密信息位。若在编码一个秘密信息位时,所需要的修改太大,那么将这块标识为“无效”,不用于信息传输。如过最大和昀最小的系数差大于某一常数MD,就属这种情况。MD越大,就有更多的块可用于通信。考虑到正确译码,需修改无效块的量化 DCT系数,让它们满足下面条件之一:

然后对块进行逆量化和逆DCT变换
接收者通过应用DCT变换和块量化恢复信息。如果在块中选择的三个系数满足式(5.2)或( 5.3),就忽略该块。否则,通过比较 Bi Q (u1v1)、Bi Q(u2v2)和 B iQ(u3,v3)就可以恢复编码的信息。由于所有修改是在有损量化阶段之后进行的,所以作者称这种嵌入方法对JPEG压缩(质量因子是 50%时)是健壮的。
| 各省软考办 | ||||||||||