張潤生,祁 燕,劉麗萍
(沈陽理工大學 信息科學與工程學院,遼寧 沈陽 110159)
一種改進的基于預測誤差擴展的可逆水印算法
張潤生,祁 燕,劉麗萍
(沈陽理工大學 信息科學與工程學院,遼寧 沈陽 110159)
提出一種具有低失真特點的可逆數(shù)字水印算法。通過擴展像素預測值將水印數(shù)據(jù)嵌入到原始圖像中,可在提取水印后準確恢復原始圖像。針對傳統(tǒng)預測算子不夠精確,提出了一種新的具有根據(jù)上下文自適應預測能力的預測器,以提高預測精度;并將排序的思想應用到算法中,減小了含水印圖像的失真度。實驗結果表明,自適應預測器能有效提高預測精度,利用該算法嵌入數(shù)據(jù)后,水印具有良好的不可見性,在提取水印后能無損地恢復原始圖像。
預測誤差;可逆;自適應;數(shù)字水印
數(shù)字水印技術是一種保護圖像安全的有效手段,它將一些信息隱藏在圖像中,傳統(tǒng)的數(shù)字水印算法中,在提取水印的同時會對宿主圖像造成不可逆的損害,這在衛(wèi)星遙感、軍事、醫(yī)學等對圖像保真度要求極高的特殊領域是不可接受的。如果可以在提取水印的同時無損地恢復原始圖像,這種技術則稱為可逆數(shù)字水印技術,該類水印屬于脆弱性水印。
Tian首次提出基于像素差值擴展的可逆數(shù)字水印算法[1]。該算法利用Haar整數(shù)小波變換具有可逆性,可以將已嵌入的水印信息提取出來并恢復原始載體圖像。Thodi等人首次提出了基于預測誤差擴展的可逆數(shù)字水印算法[2]。該算法選取一個相對簡單的預測算子對圖像內(nèi)的像素值進行預測,將預測誤差擴展后嵌入水印。相較于差值擴展算法該算法在嵌入容量和圖像保真度方面都有較大提升。熊志勇等人提出將Tian差值擴展的技術應用到彩色圖像中[3]。Sachnev等人提出了一種四領域預測算子,選取相鄰的四個像素對當前像素預測,利用預測誤差嵌入水印[4]。Jung的算法在嵌入信息前搬移了載體圖像的直方圖[5]。以上算法在預測精度上雖有改善,但對于內(nèi)容變化較大的圖像,預測算子仍然不夠精確。本文通過分析多種預測算子,提出一種新的具有自適應能力的預測算子,并將其應用到預測誤差擴展算法中,和其他算法相比在嵌入等量的水印數(shù)據(jù)時,圖像的失真度更低,達到了良好的可逆水印效果,并經(jīng)過實驗驗證了該方案的有效性和可靠性。
1.1 差值擴展
文獻[1]提出的差值擴展算法是對兩個相鄰像素之間差值進行擴展,將水印嵌入到擴展后差值的最低位,嵌入和提取的可逆變換如下:假設a、b是宿主圖像的兩個鄰近像素的灰度值,a、b是整數(shù)且0≤a,b≤255。首先計算a、b差值h和平均值l。
(1)
然后在h中嵌入1位數(shù)據(jù)i,i=0或1:
h′=2h+i
(2)
最后用逆變換求出擴展后的像素值a′,b′:
(3)
1.2 預測誤差擴展
針對差值擴展算法中嵌入容量較小,一次擴展中一個像素對僅能嵌入1bit水印數(shù)據(jù),因此該水印算法只有0.5 bpp的容量上限。根據(jù)相鄰像素的相關性,可以用鄰近的像素的灰度值來預測當前像素的灰度值,以此得到一個當前像素的預測值,當前像素值和預測值的差就是預測誤差。Thodi提出的基于預測誤差擴展的可逆水印算法是對預測誤差進行差值擴展,理論上一個像素一次擴展能嵌入1 bit數(shù)據(jù),具有1 bpp容量上限。若假設像素的預測值為I’(i,j)則預測誤差p為
p=I(i,j)-I′(i,j)
(4)
該算法預測誤差擴展并嵌入1位數(shù)據(jù)i,i=0或1,嵌入公式為
p′=2p+i
(5)
那么嵌入后的像素值I0為
I0=I(i,j)+p+iI0∈[0,255]
(6)
提取嵌入信息i時:
i=p′-2?p′/2」
(7)
恢復原始的預測誤差p和像素值I(i,j)
p=?p′/2」,I(i,j)=I0-p-i
(8)
1.3 預測算子
在預測誤差算法中,預測算子越準確,預測誤差就越小,宿主冗余就能利用的更加充分,算法也因此具有更好的性能。
1.3.1Thodi預測算子
a6a2a5a1a0
圖1 預測模板
Thodi提出的預測誤差差值擴展算法中,利用周圍像素對當前像素值預測,對圖像中要預測的像素I(i,j)像素值定義為a0,周圍像素值分別為a1、a2、a5、a6,如圖1所示,像素預測方法如式(9)。
(9)
該預測算子中只根據(jù)a1、a2、a6的值對預測,而忽略了周圍的其他像素,如果a0和其他像素較為接近,如圖2、圖3所示,三角形代表和a0比較接近的區(qū)域,如果繼續(xù)采用該預測算子會對預測值造成較大的誤差,影響預測精度。
a6a2△a1a0△△△
圖2a0和右邊像素值較為接近
a6a2a5a1a0△△△△
圖3a0和下邊像素值較為接近
1.3.2 本文預測算子
針對以上不足,本文采用一種自適應的預測方法,充分考慮到不同圖像的差異和同一圖像中不同位置的差異,利用圖像中相鄰像素的內(nèi)在聯(lián)系更精確地預測初始像素值,像素示意分布如圖4所示。
a6a2a5a1a0a3a8a4a7
圖4 像素分布示意圖
如圖要預測像素I(i,j)像素的值為a0,預測值為I′(i,j),a1~a8均為像素點I(i,j)周圍像素的值。Dh、Dv、Dd、Da為其三個相關聯(lián)像素對應的均值與a0的差值的絕對值如式(10),值越小說明預測值與實際值越接近,預測誤差越小,嵌入水印后失真度越小。相對應預測算子如式(11)。
(10)
1.3.3 兩種預測算子比較
用兩種預測算子對分別計算lena圖像前1000個像素的預測誤差p。如圖5所示,圖5a表示測試的lena圖像,圖5b、圖5c分別代表本文預測算子和Thodi預測算子所得到的預測誤差p的值,預測誤差p是指預測像素值與原始像素值的差,所以p值越小越好,即越接近于0越好。從圖5b、圖5c中可以看出,本文提出的預測算子計算出的預測誤差在0值附近分布更加集中,本文算法中的預測誤差明顯要比Thodi算法中的預測誤差小,預測精度更高,預測值更接近原始值。
(11)
1.4 像素平滑度值排序
局部圖像越平滑,相關像素間差值越小,預測誤差值越?。痪植繄D像越粗糙,相關像素間差值越大,預測誤差越大[4,6]。優(yōu)先選取圖像中較為平滑的區(qū)域進行水印嵌入可有效減小圖像的失真,為此,構造平滑度近似度量函數(shù)為ρ(x),像素分布如圖4所示,假設計算a0的平滑度值,ρ(x)計算公式為式(12),對ρ(x)的值進行升序排列,在排列后像素點中嵌入水印可有效地降低圖像失真度。
(12)
以圖5a的lena圖像為實驗對象,對其進行像素值預測,并依據(jù)ρ(x)值排序,由于篇幅有限只展示部分結果如圖6所示,第1列為ρ(x)的值,第2列為預測誤差,第3列為預測值,第4、5列分別為該像素值在圖像中對應的行和列。
(a)lena圖像
(b)本文預測算子得到的預測誤差
(c)Thodi預測算子得到的預測誤差
圖6 像素值排序結果示意圖
1.5 直方圖平移
為使圖像失真在特定的嵌入量時盡可能低,本文采用直方圖平移技術[7]。根據(jù)水印嵌入量大小確定閾值T1、Tr,把直方圖劃分為內(nèi)部區(qū)域和外部區(qū)域。內(nèi)部區(qū)域為p∈[T1,Tr]所對應的差值,差值p∈[T1,Tr]時且擴展用式(13)擴展后滿足式(6)條件的則成為可擴展區(qū)域,而外部區(qū)域[-p,T1-1]和[Tr+1,p]的用式(13)擴展后滿足式(6)條件的稱為可移動區(qū)域,該區(qū)域差值沿橫軸向外側(cè)平移,以避免擴展后的內(nèi)部區(qū)域和外部區(qū)域重疊。
水印嵌入時誤差p根據(jù)不同的范圍做如下變換:
(13)
恢復時是變換的逆過程根據(jù)式(14)、(15)恢復誤差p和水印數(shù)據(jù)i:
(14)
i=p′-2?p′/2」 ifp′∈[2T1,2Tr+1]
(15)
2.1 水印嵌入過程
本文所采用水印為隨機生成的二值數(shù)據(jù),具體嵌入過程如下:
(1)對宿主圖像中每一個像素進行下列操作:
a)用式(10)、(11)計算該像素的預測值I′(i,j);
b)用式(4)計算預測誤差p;
c)用式(12)計算平滑度值ρ(x0)。
(2)對所有像素根據(jù)ρ(x0)值的大小進行升序排序,并收集序列的前34個像素的最低位組成序列Slb,并將Slb和要嵌入的水印信息歸入有效負載V中;
(3)根據(jù)嵌入水印的多少計算合適的T1、Tr的值;
(4)根據(jù)V的大小將宿主圖像的像素點分為可擴展類區(qū)間和可移動類區(qū)間,并且生成一個相應的位置圖,位置圖長度為L,其中可擴展類區(qū)間包含像素的總個數(shù)用E表示。從像素序列的第35個像素開始,對每一個像素進行如下計算:
a)如果該像素點擴展后沒有溢出且屬于可擴展區(qū)間,相應的位置圖標記為0,否則標記為1;
b)判斷是否已找到足夠的嵌入空間,如果V+L<=E則進行步驟(5),如果當前為最后一個像素且V+L>E,則調(diào)整T1、Tr的值,重復第(4)步;
(5)將有效負載V和位置圖嵌入載體圖像中;
(6)將T1、Tr以及有效負載V的長度嵌入前34個像素點的最低位;
(7)計算嵌入數(shù)據(jù)后的圖像的像素值,獲得一個嵌入水印信息后的圖像。
2.2 水印提取和圖像恢復過程
水印提取是水印嵌入的一個逆過程,不需要原始圖像,提取端需要三個參數(shù),T1、Tr的值,有效負載V的長度。
(1)參照嵌入過程的第一步,計算出預測值,預測誤差及平滑度值;
(2)根據(jù)ρ(x0)值對像素點按升序排列,提取前34個像素點的最低有效位,恢復T1、Tr以及負載V的長度;
(3)依據(jù)T1、Tr將像素點分為可擴展類區(qū)間和可移動類區(qū)間;
(4)根據(jù)直方圖平移原理計算出初始的預測誤差p,位置圖的長度L,以及有效負載V。將Slb從V中分離出來;
(5)利用式(8)、(14)、(15)恢復原始像素值;
(6)根據(jù)Slb恢復前34個像素的最低有效位。
本節(jié)通過實驗對算法進行驗證,實驗環(huán)境為Matlab 2012,測試圖像為256×256的lena灰度圖像如圖5a所示,水印數(shù)據(jù)隨機產(chǎn)生。水印嵌入容量為0.9bpp時,圖像含水印圖像與初始圖像分別為圖7a和圖7b,圖像嵌入水印前后同一位置的部分像素值變化如圖8所示,圖8a表示初始圖像中的部分位置的像素值,圖8b表示含水印圖像中部分位置像素值。
(a)原始圖像 (b)含水印圖像
(a)初始圖像部分位置像素值
(b)嵌入水印后該位置像素值
(16)
表1 lena圖像不同的算法嵌入容量和失真度對比
測試lena圖像采用不同算法嵌入水印時嵌入容量與峰值信噪比的曲線對比如圖9所示。從圖9中可以更加直觀地看出,本文算法優(yōu)于Sachnnev和Thodi提出的算法。
圖9 嵌入容量與峰值信噪比對比圖
針對以往的預測誤差擴展算法中過分利用預測誤差而導致預測精度不高的缺點,提出一種基于排序和自適應預測的可逆水印算法。本文算法根據(jù)嵌入水印容量的大小,有選擇地確定閾值T1、Tr;自適應地對當前像素值進行預測,使預測值更加接近原始值;尋找平滑區(qū)域,并依據(jù)當前像素點的特征值對其排序,嵌入水印后有效地減小了圖像失s真。實驗結果表明,該算法在保證圖像質(zhì)量的同時,能夠無損地恢復原始圖像。
[1]Tian J.Reversible data embedding using a difference expansion[J].IEEE Trans on Circuits and Systems for Video Technology,2003,13(8):890-896.
[2]Thodi D M,Rodriguez J J.Prediction-error based reversible watermarking[C].Proc of Int Conf on Image Processing.Piscataway,NJ:IEEE,2004:1549-1552.
[3]熊志勇,蔣天發(fā).基于預測誤差差值擴展的彩色圖像無損數(shù)據(jù)隱藏[J].計算機應用,2010,30(1):186-200.
[4]Sachnev V,Kjm H J,Nam J,et al.Reversible watermarking algorithm using sorting and prediction[J].IEEE Transact Circults and Systems for Video Technology,2009,19(7):989-999.
[5]Jung,Le Thanh Ha,SJ Ko.A new histogram modification based reversible data hiding algorithm considering the human visual system[J].IEEE Signal Processing Letters,2011,18(2):95-98.
[6]常志國.可逆水印與圖像技術保護研究[D].上海:上海交通大學,2009.
[7]Thodi D M,Rodriguez J J.Expansion embedding techniques for reversible watermarking[J].IEEE Transaction on Image Processing,2007,16(3):721-730.
(責任編輯:馬金發(fā))
An Improved Reversible Watermarking Algorithm Based on Prediction Error Expansion
ZHANG Runsheng,QI Yan,LIU Liping
(Shenyang Ligong University,Shenyang 110159,China)
A watermark hiding algorithm is proposed with low distortion.This algorithm employs prediction errors to embed watermark into an image.The original image can be exactly recovered after the embedded watermark is extracted.In view of the fact that the traditional prediction errors are not too accurate,a new method is presented to use other neighboring pixels to predict the present pixel value.The algorithm adopts a sorting technique to embed data with a low distortion.The experimental results indicate that the auto predict method can improve the prediction accuracy which can embed date with low distortion.The original host image can still be recovered after the hidden watermark is extracted.
prediction error;reversible;auto;watermarking
2014-11-07
遼寧省教育廳科學研究一般項目(L2014077)
張潤生(1990—),男,碩士研究生;通訊作者:祁燕(1978—),女,副教授,研究方向:數(shù)字圖像處理.
1003-1251(2015)04-0084-06
TP391
A