基于图像内容的小波包数字水印算法
2009-08-31
作者:杨红颖 王向阳
摘 要: 以最优小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包" title="小波包">小波包变换与人眼视觉特性为基础,提出了一种基于图像内容的小波包数字水印算法,并对其透明性与鲁棒性进行了实验分析。
关键词: 数字水印 小波包变换 人眼视觉特性 纹理子块
近年来,图像数字水印技术的研究取得了很大进展,陆续提出了诸如空域、变换域、压缩域、基于统计学、基于生理模型等多种数字水印算法。其中,基于小波变换域的数字水印技术因其具有良好的多分辨率表示、时频局部分析等特性,且易于兼容JPEG2000、MPEG4压缩标准等特点,得到了普遍关注。然而,理论分析和实验结果表明:小波变换域数字水印算法在处理诸如Mandrill、Flower之类纹理图像时却普遍存在透明性与鲁棒性不甚理想等问题。其根本原因在于传统的塔式小波仅仅递归分解了低频子带,未能对纹理细节丰富的高频子带实施分解处理。
本文将以最优小波包变换与人眼视觉特性为基础,提出一种基于图像内容的小波包数字水印算法。该算法能够通过水印图像降维与随机置乱、最优小波包基选择、图像子块划分、纹理子块选取、小波包系数修改等措施,将数字水印信息自适应地嵌入到小波包图像高频子带的纹理区内。实验结果表明:该数字水印算法不仅具有较好的透明性,而且对诸如叠加噪声、JPEG压缩、平滑滤波、几何剪切、图像增强、马赛克等攻击均具有较好的鲁棒性,整体性能优于传统小波域数字水印方案。
1 最优小波包基与人眼视觉特性
1.1 最优小波包基的选择
小波包变换是小波变换的推广。与小波变换相比,小波包变换能够为信号频带提供一种更加精细的分析方法,其优势主要表现在:(1)能对频带进行多层次划分。(2)能对高频部分进一步分解。(3)能根据被分析信号特征,自适应地选择相应频带,使之与信号频谱相匹配,从而提高时频分辨率。然而,由于小波包分解形式多种多样,而不同小波包基分解效果又不相同,因此,对于一个特定信号来说,选择合适小波包基是极其重要的。
近年来,人们围绕最优小波包基选择问题开展了大量工作,陆续提出了一系列有效算法。其中,由Ramchandran K和Vetterli M提出的比特-失真率(Rate-Distortion)优化方法被认为是目前国际上比较先进的方法。然而理论分析和实验结果表明,该方法存在计算量巨大的致命弱点。为了有效克服上述比特-失真率优化法的不足,以下通过重新定义费用函数,给出一种全新的最优小波包基选择算法——“熵”优化法。“熵”优化最佳小波包基选择示意图如图1所示。该算法的基本工作步骤如下。
(1)进行N级小波包完全分解,构造深度为N+1的完全四叉树。如图1(a)所示(N=3的情况)。
(2)选取熵值作为费用函数,其定义为,pi为符号(即小波包系数),si为在信源(即子带S)中出现的概率。
(3)按照自底向上规则,比较四叉树中当前结点(即当前子带)费用值X与其4个子女(即子女子带)费用值和Y的关系:
如果X>Y,则令X=Y;否则剪去当前结点的4个子女结点。
四叉树修剪策略如图1中(a)和(b)所示。假设子带I、J为当前结点。
(4)执行步骤(3),直到整个四叉树的根结点。图1(c)为最后得到的最优小波包分解图。
1.2 人眼视觉特性
长期以来,通过对人眼某些视觉现象的观察,并结合视觉生理、心理学等方面研究成果,发现了各种视觉掩盖(Masking)效应。如果能在嵌入数字水印时充分利用人眼的视觉掩盖效应,必将极大地提高数字水印的透明性和鲁棒性。研究表明:(1)人眼对不同的灰度具有不同的敏感性,通常对中等灰度最为敏感,并且向低灰度和高灰度2个方向呈非线性下降。(2)人眼对图像平滑区的噪声较敏感,而对纹理区的噪声不敏感。(3)图像的边缘信息对于人眼非常重要(图像的边缘信息容易受到外来噪声、常规图像处理等因素影响),必须保证边缘的质量不受大的损害。
考虑到所加数字水印不应该影响原图像的可视性(即数字水印的透明性),因此宜将数字水印信息嵌入到小波包图像的高频子带内(即图1(c)的非阴影区域)。而根据人眼视觉特性可知,宜将数字水印信息嵌入到纹理区。可见,应该将数字水印信息嵌入到小波包图像高频子带中的纹理区内,以进一步改善数字水印的隐藏效果。
2 数字水印嵌入算法
设原始图像为I={g(i,j),1≤i≤M,1≤j≤N},二值水印图像为W={w(i,j),1≤i≤P,1≤j≤Q}。其中,g(i,j)和w(i,j)分别代表原始图像和二值水印图像的第i行、第j列象素灰度值。数字水印图像W的嵌入过程如下。
(1)水印的降维与随机置乱。先将二值水印图像利用行扫描形成一维向量,并依次标号为1~P×Q,然后由密钥K1生成由1~P×Q的随机排列,再根据随机排列重新调整向量元素的位置,从而得到由原二值水印图像W转换而来的一维数字水印序列V={v(k),1≤k≤P×Q,v(k)∈{0,1}}。
(2)最优小波包变换。对原始图像实施L级最优小波包变换,以得到一个逼近子图(最低频子带)和若干个细节子图(高频子带)。小波包变换级数L的确定取决于原始图像及待嵌入二值水印图像的大小,小波包变换级数越大,嵌入水印的隐藏效果越好。
(3)子块划分。将最优小波包图像的高频子带划分成大小为m×n的图像子块Bk(k=1,2,……S)。
(4)选取纹理子块。计算每一个图像子块Bk(k=1,2,……S)的熵值和方差。熵值较小的图像子块应该是平滑块,而熵值较大的图像子块是纹理块或边缘块。纹理子块对应的方差较小,边缘子块对应的方差较大。选取合适的熵阈值和方差阈值,可得到用于嵌入水印信息的纹理子块Uk(k=1,2,……P×Q)(相对于给定阈值)。
(5)水印嵌入。修改所选择的纹理子块Uk(k=1,2,……P×Q)内的小波包系数值Ck(i,j)。数字水印的嵌入公式为:
式中,Ck(i,j)为纹理子块Uk内的原小波包系数值,v(k)为一维数字水印序列V的第k个分量,Ck′(i,j)为嵌入水印后纹理子块Uk内的新小波包系数值。参数α为数字水印嵌入的固定深度。
值得注意的是,在嵌入数字水印过程中生成了抽取水印信息的密钥K2,即用于嵌入数字水印信息的纹理子块Uk的位置。
(6)将修改过的高频子带结合最低频子带进行最优小波包逆变换,得到含水印图像I′。
3 数字水印检测算法
对应于以上数字水印嵌入算法,数字水印的检测过程如下。
(1)最优小波包变换。选择嵌入过程所采用的最优小波包基,对原始图像I和含水印图像I′实施L级最优小波包变换,以得到各自的最低频子带(1个)和高频子带(若干个)。
(2)子块划分。将原始图像I和含水印图像I′的最优小波包图像的高频子带划分成大小为m×n的图像子块。
(3)确定纹理子块。根据水印嵌入过程中生成的密钥K2从原始图像I的最优小波包图像高频子带中确定纹理子块集U={Uk,k=1,2,……P×Q},并以这些纹理子块的地址作为索引,从含水印图像I′的最优小波包图像高频子带中选择相应的子块作为待测纹理子块集U′={Uk′,k=1,2,……P×Q}。
(4)抽取数字水印信息V′(一维)。计算纹理子块Uk(k=1,2,……P×Q)和Uk′(k=1,2,……P×Q)的熵值H(Uk)和H(Uk′),并求得二者的熵值之差H(Uk)-H(Uk′)。当二者相应熵值之差大于某个阈值时,可以认为含水印图像的该纹理子块U′k内有水印分量存在,其值为1,否则为0。
(5)水印的升维与逆随机置乱。按照数字水印嵌入算法(1)的相反操作(即升维与逆随机置乱)计算出待测二值水印图像W′={w′(i,j),1≤i≤P,1≤j≤Q}。
(6)水印的评价。为了消除观测者的经验、身体条件、实验条件和设备等主、客观因素的影响,通常采用归一化相关系数ρ对抽取的水印和原始水印的相似性进行定量评价,并定义为:
其中,W′是待判决的二值水印图像,W是嵌入的原始二值水印图像。如果该归一化相关系数ρ超过某一阈值就判定图像中存在此二值数字水印图像(阈值是用户根据数字水印的具体应用背景而确定的)。
4 仿真实验与结论
为了验证本文所给数字水印算法的高效性,以下给出Mandrill标准图像(256×256×8)的实验结果。实验中,以二值图案“Rabbit”作为数字水印,小波算法采用著名的双正交9/7小波滤波器并进行3级小波变换。本文算法也选用双正交9/7小波滤波器,但进行3级自适应最优小波包变换,图像子块大小(m×n)为4×4。
4.1 透明性与检测性测试
仿真实验表明,采用本文算法嵌入水印后的图像峰值信噪比(PSNR)为41.5dB,而采用小波算法嵌入水印后的图像峰值信噪比(PSNR)仅为36.8dB。同时,从含水印图像中抽取出的水印图像归一化相关系数ρ=1.00(未受到任何攻击)。
4.2 抗攻击能力测试
通常,对水印图像的攻击方式主要包括叠加噪声、JPEG压缩、平滑滤波、几何剪切、图像增强和马赛克等。小波包数字水印算法(即本文算法)与小波数字水印算法对常见图像处理与攻击的抵抗能力(归一化相关系数)如表1所示。
不难看出,本文提出的小波包数字水印算法不仅具有较好的透明性,而且对诸如叠加噪声、JPEG压缩、平滑滤波、几何剪切、图像增强和马赛克等攻击均具有较好的鲁棒性,整体性能优于传统小波域数字水印方案。
参考文献
1 Lu C S,Liao H Y.Multipurpose Watermarking for Image Authentication and Protection.IEEE Trans on
Image Processing,2001;10(10)
2 Cox I J,Matt L M.The First 50 Years of Electronic Watermarking.Journal of Applied Signal Processing,
2002;(2)
3 Podichuk C I,Delp E J.Digital Watermarking:Algorithms and Applications.IEEE Signal Processing Magazine,2001;18(4)
4 Leung K H,Zeng B.Wavelet-based Digital Watermarking with Halftoning Technique.in:IEEE International Symposium on Circuits and Systems,Sydney Australia,2001