陳 亮 劉惠文 鄧小鴻
基于整數(shù)小波變換的數(shù)字圖像可逆水印算法
陳 亮 劉惠文 鄧小鴻
(江西理工大學(xué)應(yīng)用科學(xué)學(xué)院 江西 贛州 341000)
針對現(xiàn)有基于頻域的無損數(shù)字水印算法在實施可逆性和嵌入容量上的不足,提出一種基于整數(shù)小波變換的無損數(shù)字圖像水印算法,用于圖像的大容量可逆信息隱藏。首先對圖像進行LeGall5/3整數(shù)小波變換,然后在高頻子帶中采用直方圖平移方法嵌入水印。為了獲取最大的嵌入容量和減少圖像的失真,分別提出嵌入?yún)?shù)和停止參數(shù)選擇方法。同時,為了防止溢出現(xiàn)象和減少附加信息,提出新的產(chǎn)生位置映射圖方法。實驗結(jié)果證明了該算法在水印圖像的保真度和嵌入容量上面具有較好性能。另外,與相似算法的比較證明了該算法的優(yōu)越性。該算法適合于數(shù)字圖像載體中實施隱秘通信。
整數(shù)小波變換 可逆數(shù)字水印 直方圖平移 信息隱藏
可逆數(shù)字水印又稱為無損或無失真數(shù)字水印,由于其獨特的無損特性已經(jīng)成為數(shù)字水印技術(shù)的一個重要研究方向[1,2]。無損數(shù)字水印能將具有特定功能的水印信息嵌入在多媒體載體中,對多媒體的內(nèi)容進行保護或?qū)嵤╇[秘通信。在提取端提取水印后,能將水印載體無損恢復(fù)到原始的狀態(tài)。無損數(shù)字水印技術(shù)能廣泛應(yīng)用于一些需要水印來實現(xiàn)內(nèi)容保護又對原始載體完整性有特殊要求特定的領(lǐng)域。如在醫(yī)學(xué)圖像應(yīng)用中,可以將病人的電子病歷等隱私數(shù)據(jù)以水印方式嵌入對應(yīng)的醫(yī)學(xué)圖像中,在提取時可以得到原始的醫(yī)學(xué)圖像,進行高質(zhì)量的診斷和下一步處理[3,4]。
利用無損數(shù)字水印技術(shù)在圖像中進行信息隱藏屬于脆弱水印方法,意味著只要含水印的載體一旦被修改,嵌入在原始載體中的水印信息將不可恢復(fù)或者不可讀。目前算法主要分為基于空域和頻域算法,具有代表性的空域算法如基于差值擴展[5-7]和基于直方圖平移的方法[8-10],前者嵌入容量更大,隱秘圖像的質(zhì)量較低,運行效率也更低,后者具有操作簡單,嵌入容量可預(yù)先估計等優(yōu)點。基于空域方法直接在圖像像素級進行操作,算法執(zhí)行效率較高,嵌入容量較大,但存在著隱秘圖像質(zhì)量較差和魯棒性差的特點。研究者們開始研究基于頻域的可逆水印算法。在變換域中隱藏信息首先將原始載體圖像進行頻域上的正變換,然后選取不同頻域系數(shù)進行水印嵌入,最后進行逆變換得到水印圖像。由于圖像的頻域變換比空域方法具接近于人類視覺系統(tǒng)HVS(Human Visual System)特性,能充分利用各種視覺掩蔽特性,水印圖像的隱秘性和魯棒性更好。曾驍?shù)热薣11]利用圖像離散余弦變換DCT(Discrete Cosine Transform)后,中低頻系數(shù)大量為零的現(xiàn)象,利用零系數(shù)索引值進行水印的嵌入。但DCT變換過程中涉及到浮點數(shù)操作,水印算法實施可逆性困難。呂皖麗等人[12]利用Berkeley正交小波變換符合HVS的特點,在圖像的感興趣區(qū)域嵌入水印。圖像的感興趣區(qū)域限制了水印嵌入位置,嵌入容量不高。Chang等人[13]提出了將圖像進行Haar小波變換,用自適應(yīng)的算術(shù)編碼方法對高頻子帶進行編碼來嵌入隱秘數(shù)據(jù)。但自適應(yīng)的編碼方法增大了算法的復(fù)雜度。綜上,基于頻域的算法存在著嵌入容量小、算法復(fù)雜度高和實施可逆性困難等問題。
針對上述基于頻域方法的不足,本文提出一種基于整數(shù)小波變換的數(shù)字圖像可逆水印算法,算法充分利用圖像小波變換后的高頻子帶系數(shù)進行水印嵌入,對傳統(tǒng)的直方圖平移方法進行改進,設(shè)計了嵌入?yún)?shù)選擇算法。為了保證高嵌入容量的同時注重隱秘圖像失真度,設(shè)計了嵌入停止參數(shù)選擇算法和防止溢出算法。
1.1 整數(shù)小波變換
在介紹整數(shù)小波變換技術(shù)之前,簡單介紹一下小波變換技術(shù)。小波變換能將圖像進行多分辨率的分解,每級小波變換將得到4個頻率子圖,分別為LL(低頻子圖)、HL(垂直方向中高頻子圖)、LH(水平方向中高頻子圖)和HH(高頻子圖)。其中,LL子圖集中了圖像的絕大部分能量,是原始圖像的逼近子圖,可以進行更高級別的小波分級,即可得到第二級的4個頻率子圖(LL2, HL2, Lp和Hp),中高頻子圖代表了圖像的邊緣和紋理信息。如果要追求水印的不可見性,則可選擇中高頻子帶進行水印嵌入,因為這一部分是人類視覺不敏感區(qū)域,如果要選擇追求水印的魯棒性,則可選擇在低頻子帶中進行水印嵌入,因為這一部分內(nèi)容能更好地抵抗一般的圖像處理,如壓縮等。圖1給出了圖像進行三級小波分解的示意圖。箭頭方向代表能量的逐級遞減。
圖1 圖像三級小波分解示意圖
普通的小波轉(zhuǎn)換并不能被利用到可逆水印方法中,因為不支持完全的可逆性。比如一個8 bit灰度的圖像,像素值是0~255之間的整數(shù),普通的小波變換后的系數(shù)修改可能造成水印圖像中的像素值是非整數(shù),這使得可逆性實施困難。為了避免這些問題和保證圖像變換的可逆性,可逆的基于提升方案的整數(shù)-整數(shù)小波變換被采用?;谔嵘桨傅恼麛?shù)—整數(shù)小波變換將整數(shù)映射到整數(shù),在小波正變換和逆變換中并不產(chǎn)生任何信息的丟失,在本文的水印策略中采用LeGall5/3整數(shù)小波變換[14]。在一個一維的信號s=[s0,1,s0,2,…,s0,N],這里s0,i是整數(shù),s1,n代表一級小波正變換分解后的低頻系數(shù),d1,n代表高頻系數(shù)??杀硎緸椋?/p>
d1,n=s0,2n+1-?1/2(s0,2n+s0,2n+2)+1/2」s1,n=s0,2n+?1/4(d1,n-1+d1,n)+1/2」
(1)
其中,sj,n和dj,n分別代表第j級小波轉(zhuǎn)換的第n個低頻和高頻小波系數(shù)。函數(shù)?·」代表向下取整函數(shù)。和一般的小波變換方法一樣,第一級分解得到的小波低高頻系數(shù)可以進一步分解為更高的級數(shù)。為了將二維的信號如圖像進行一級分解,利用式(1)分別在水平和垂直兩個方向進行。分級的逆向轉(zhuǎn)換可用下式表示:
s0,2n=s1,n-?1/4(d1,n-1+d1,n)+1/2」s0,2n+1=d1,n+?1/2(sj,ndj,n+s0,2n+2)+1/2」
(2)
1.2 直方圖平移
直方圖平移方法是常用的一種無損數(shù)據(jù)隱藏方法。直方圖平移方法的嵌入原理是產(chǎn)生一個間隙,這個間隙就是在原始圖像直方圖或者轉(zhuǎn)換域直方圖中嵌入數(shù)據(jù)能利用的自由空間。用一個例子來說明直方圖方法嵌入數(shù)據(jù)的過程。圖2給出了一個灰度圖像的HH子帶系數(shù)的直方圖,注意高頻子帶的系數(shù)集中于0值點附近。
圖2 灰度圖像的HH子帶系數(shù)直方圖
為了在系數(shù)值為n處嵌入數(shù)據(jù),首先要產(chǎn)生嵌入間隙,將所有值大于n的系數(shù)值加1,如圖3所示,這里n=0。在間隙產(chǎn)生后,二進制的水印消息可以嵌入在自由空間。當然,也可以將系數(shù)向反方向進行調(diào)整,例如,選擇系數(shù)為-1的嵌入水印,那么所有小于-1的系數(shù)往負方向調(diào)整一個幅度來產(chǎn)生間隙。
圖3 直方圖間隙示意圖
在嵌入時,掃描系數(shù)值,所有系數(shù)值等于0的系數(shù)為可嵌入水印的系數(shù)。如果待嵌入的水印為0,那么當前的系數(shù)保持不變;如果待嵌入的水印為1,那么將當前的系數(shù)加1。如果帶嵌入數(shù)據(jù)的總量大于系數(shù)值等于n的系數(shù)個數(shù),那么可以繼續(xù)利用其他的系數(shù)值來產(chǎn)生更多的自由空間。在提取端,掃描所有的系數(shù),所有值等于n或者n+1的系數(shù)含有水印信息。如果當前系數(shù)值等于n,那么解碼水印位0;如果當前系數(shù)值等于n+1,解碼水印位1,并且將系數(shù)值減去1恢復(fù)原始系數(shù)值。通過這種方法可以將嵌入過程中所有修改后的系數(shù)恢復(fù),從而無損恢復(fù)出原始圖像。
基于整數(shù)小波變換的數(shù)字圖像可逆水印算法嵌入過程如圖4所示。嵌入算法主要由6個主要模塊組成,其中,整數(shù)—整數(shù)小波正變換和逆變換分別將圖像從空域轉(zhuǎn)換為頻域和從頻域轉(zhuǎn)換為空域。嵌入?yún)?shù)選擇模塊用于選擇水印嵌入的位置,防溢出模塊用于防止嵌入過程中由于溢出而引起的圖像嚴重失真現(xiàn)象,并減少附加信息的長度。直方圖平移模塊用來進行水印嵌入,嵌入停止參數(shù)選擇模塊用于在嵌入過程中控制算法的嵌入容量和圖像失真。
圖4 算法嵌入過程圖
2.1 防溢出處理
在圖像的小波系數(shù)上采用直方圖平移方法嵌入數(shù)據(jù)會引起空域上像素值的變化,這種變化可能會導(dǎo)致不可避免的上溢和下溢現(xiàn)象。以8 bit深度的數(shù)字圖像為例,上溢代表像素值超過了255,下溢代表像素值小于0,雖然在圖像顯示的時候,大于255的像素值會產(chǎn)生截斷,如257的像素值會突變成1,從直觀上看一個白色的像素點突變成黑色的點,這就會造成圖像顯示時出現(xiàn)鹽椒噪聲現(xiàn)象,嚴重影響圖像質(zhì)量。為了防止溢出,大多數(shù)解決方法均利用位置映射圖來標明哪些系數(shù)不能更改。為了將映射圖傳遞給解碼端,映射圖一般會經(jīng)過壓縮處理并且嵌入在宿主媒體中。如果采用的壓縮方法是無損的,那么壓縮率通常不會很大,映射圖信息會占用大部分的嵌入容量空間,從而使得實際可嵌入水印信息減少。上述問題在早些的基于差值擴展的無損水印算法中尤為明顯。
本文提出了一個新的產(chǎn)生映射圖的方法,新方法充分利用小波轉(zhuǎn)換的特點來減少系數(shù)映射圖大尺寸的問題。小波轉(zhuǎn)換顯示出了在圖像空域和頻域中的良好關(guān)聯(lián)性和分辨率,其高頻子帶攜帶了圖像的空域信息。由于溢出問題的產(chǎn)生源于那些處于邊界的像素,所以在頻域上定位相應(yīng)系數(shù)是可能的。在定位這些特別的系數(shù)后,在嵌入過程中,映射圖被參照來排除這些接近邊界值的像素。為了更清楚地說明本文采用的防溢出方法,以一個實例說明。假設(shè)原始的信號是一個4×4的二維數(shù)組,數(shù)組的值為像素值,并且在嵌入過程中要排除小于10和大于250灰度的像素值。原始信號數(shù)組如圖5所示。
圖5 原始信號數(shù)組
引入一個4×4的二進制系數(shù)映射數(shù)組,數(shù)組的值取1和0,取1的點對應(yīng)圖4中的相同位置的像素值可以被修改,取0的不能修改,則映射數(shù)組如下所示:
為了找到相應(yīng)的小波系數(shù),首先將圖5的原始信號進行整數(shù)小波變換。為不失一般性,假設(shè)嵌入過程選取HH子帶中嵌入1 bit信息“1”。圖6給出了原始信號進行整數(shù)小波變換后獲取的HH子帶系數(shù)。
圖6 整數(shù)小波變換后獲取的高頻子帶系數(shù)
為了處理HH子帶的尺寸和減小二進制映射數(shù)組的大小,可以利用降低采樣的方法得到新的二進制映射數(shù)組[1 1;1 0],即使映射數(shù)組的維數(shù)不一樣,但是HH子帶包含了大量的原始圖像的空域信息,這個方法是有效的,這樣嵌入過程中選擇{-130,-203,-198}進行嵌入。原始的映射數(shù)組的維數(shù)和原始圖像的一致,在絕大多數(shù)圖像中存在大量的冗余信息,因為除了在圖像的邊緣部分,圖像的像素變化平緩,很少有突變的情況發(fā)生。所以,為了減少映射數(shù)組的大小,原始的映射數(shù)組能容易被降低采樣。實驗結(jié)果也證明,從Hp子帶中通過提升采樣的方法能產(chǎn)生HH1的映射數(shù)組。這意味著,總的系數(shù)映射數(shù)組的尺寸能限定到一個子帶的系數(shù)映射數(shù)組的尺寸,為了使方法更加有效,映射數(shù)組的尺寸可以進一步減小。在提出的方法中,選擇的小波映射數(shù)組為Hp子帶的大小,僅為原始圖像的1/64。這個映射信息作為水印的附加信息嵌入,并且用于解碼端的數(shù)據(jù)提取和圖像恢復(fù)。
2.2 嵌入?yún)?shù)選擇
在本文的方法中,水印信息嵌入在轉(zhuǎn)換域圖像的高頻系數(shù)中。高頻子帶又稱為細節(jié)子帶,其分布特點近似為中值為0的拉普拉斯分布。事實上,為了最小化嵌入帶來的失真和最大化嵌入容量,直方圖平移從0值點開始,數(shù)據(jù)嵌入在第一次產(chǎn)生的間隙中。如果在所有0值點的系數(shù)都被利用完后還有數(shù)據(jù)沒有嵌入,系數(shù)等于-1的繼續(xù)被平移。通過連續(xù)的操作,系數(shù)值等于2(原始系數(shù)等于1,但是由于第一次平移后變成了2),等于-3,4,-5等等系數(shù)依次被平移直到所有的數(shù)據(jù)都被嵌入,或者是滿足算法停止條件為止。如果算法停止條件滿足,嵌入算法轉(zhuǎn)到另一個子帶或者更深級別的小波分解的系數(shù)中開始上述的多級嵌入過程。
在每個子帶中從值等于0的系數(shù)開始進行直方圖平移嵌入數(shù)據(jù)的優(yōu)勢在于,在嵌入相同數(shù)量的數(shù)據(jù)時只需要更小幅度的平移調(diào)整。直方圖中平移的數(shù)量直接影響到了最高幅度處的系數(shù),并導(dǎo)致水印圖像失真。另外,不同子帶的小波系數(shù)具有不同的能量,對最后形成的水印圖像和失真級別的影響也不一樣。提出的方法利用這些特性來獲得水印圖像的更高視覺質(zhì)量和峰值信噪比。所以,嵌入過程總是首先選擇在第一級整數(shù)小波轉(zhuǎn)換的HH1子帶中嵌入數(shù)據(jù)。為了獲得最好的視覺質(zhì)量和最小的失真,定義了一個算法停止參數(shù)γ1,γ1為所有可選擇系數(shù)集合{0,-1,2,-3,…,m}的順序,這里m就是當前子帶中最后一個可利用的系數(shù)。例如γ1=4意味著平移操作一直執(zhí)行到系數(shù)集合中的第4個值為止,即-3是最后一個進行平移嵌入數(shù)據(jù)的系數(shù)。如果γ1已經(jīng)滿足情況下,嵌入所需的空間并未滿足,那么轉(zhuǎn)向HL1和LH1子帶進行操作,同時要考慮在這些子帶中操作造成的失真和容量等性能。之后,最有效的停止參數(shù)γ2也會被找到。如果需要更多的嵌入空間,這個過程會一直持續(xù)到更深級別的小波變換(如Hp,HL2/Lp等)。值得注意的是,γ1被限定為嵌入過程中所有HH子帶中的停止參數(shù),而γ2是不同小波級別中所有HL和LH子帶中的參數(shù)。雖然可以為每一個分解級別的每一個子帶制定停止參數(shù),但考慮到算法的復(fù)雜度和對算法性能的改進并不明顯,本文的算法僅僅討論γ1和γ2兩個參數(shù)。停止參數(shù)的選擇確保了參加平移操作的系數(shù)總和大于待嵌入的水印信息和附加信息。如果帶嵌入的數(shù)據(jù)量大于了所有小波級別中可利用系數(shù)的總和,那么算法僅采用單層嵌入過程是不可行的,必須進行多層嵌入。多層嵌入的意思是當?shù)谝淮吻度脒^程全部結(jié)束后,在得到的第一層水印圖像中繼續(xù)采用相同的方法進行第二次嵌入,由于算法的可逆性,多層嵌入策略是可取的。
2.3 嵌入停止參數(shù)選擇
該算法一個顯著創(chuàng)新點就是選擇最佳的停止條件和參數(shù)來最大化嵌入容量和將失真級別控制到最低。γ1和γ2兩個參數(shù)對算法性能起著至關(guān)重要的作用,并且分別被用于嵌入過程中的編碼和提取過程中的解碼操作,獲取兩個參數(shù)過程如下所示:
(1) 算法開始時,設(shè)γ1和γ2的初值為0,并且對載體圖像進行1級整數(shù)—整數(shù)的小波變換。
(2) 一個循環(huán)過程用來評估不同階段下的水印圖像性能。這個過程開始時,根據(jù)γ1的值(其值可能有正數(shù)或者負數(shù))平移所有HH1子帶中的系數(shù),在第一次循環(huán)時,γ1=1,所以第一次平移嵌入將所有的系數(shù)值變?yōu)榇笥诨蛘叩扔?。然后,開始檢查平移產(chǎn)生的自由空間(要考慮2.1節(jié)中系數(shù)映射圖)是否足夠嵌入總的水印負載。如果需要更多的嵌入空間,計算將γ1的值加1情況下,平移HH1子帶中的系數(shù)形成的圖像的峰值信噪比PSNR1。另外,計算在γ1=0時平移HL1和LH1子帶后形成圖像的峰值信噪比PSNR2。如果PSNR1≥PSNR2,那么循環(huán)繼續(xù),否則重置γ1。這個步驟確保了最后獲得較好的γ1,使得直方圖平移嵌入數(shù)據(jù)具有最高的水印圖像質(zhì)量,即最大的PSNR值。
(3) 如果在子帶HL1和LH1中平移得到的圖像質(zhì)量更高,則需要確定第二個停止參數(shù)γ2。選擇的子帶名需要被記錄下來,表示為subidx,作為附加信息或者頭信息在嵌入過程中指明HH1子帶后參與操作的子帶是HL1還是LH1。這些信息作為數(shù)據(jù)提取和原始圖像恢復(fù)時的依據(jù)。
(5) 一旦獲得了γ1和γ2,將兩個停止參數(shù)用來檢查是否有足夠的空間來嵌入水印負載。如果宿主圖像可以滿足,停止參數(shù)被用來指導(dǎo)不同小波級系數(shù)中的數(shù)據(jù)嵌入,并且能保證水印圖像的最小失真。另外一種情況是宿主圖像不能滿足嵌入要求,策略要犧牲一定的失真級別來增加嵌入容量,在γ1和γ2的值基礎(chǔ)上繼續(xù)進行平移嵌入。雖然最終導(dǎo)致停止參數(shù)會偏離最優(yōu)點,但是可以增加數(shù)據(jù)的嵌入容量,當然必須保證形成的水印圖像具有可接受的視覺質(zhì)量。
2.4 水印嵌入和提取過程
圖7給出了本文算法設(shè)計的單層水印嵌入流程。
圖7 單層水印嵌入過程圖
水印提取是嵌入的逆過程,其過程簡要說明如下:
(1) 將水印圖像進行整數(shù)小波變換,提取頭信息;
(2) 利用頭信息提取總的負載,利用可逆直方圖變換將不同小波級別的不同子帶的系數(shù)進行恢復(fù);
(3) 如果根據(jù)頭信息判斷出仍然有剩余部分的水印信息沒有提取完,則重復(fù)提取過程,直到最后一個部分的水印信息被提取。換句話說,提取過程要進行與嵌入過程中相同的次數(shù);
(4) 當所有的水印被提取后,也就是說所有被修改的系數(shù)被恢復(fù),采用可逆整數(shù)小波變換得到原始圖像。提取出的水印按照之前劃分的順序進行重組,并且使用解密密鑰進行解密得到恢復(fù)后的水印。
水印嵌入和提取算法偽碼描述如下:
算法1:水印嵌入算法
1: 讀取原始圖像,并生成系數(shù)映射矩陣
2: 讀取原始水印信息,獲取水印總長度
3: 將原始圖像進行整數(shù)—整數(shù)小波變換
4: 根據(jù)系數(shù)映射矩陣,獲取嵌入停止參數(shù)
5: 記錄附加信息與原始水印信息一起形成總的嵌入負載
6: 直方圖平移嵌入數(shù)據(jù)
7: if 單次嵌入不能嵌入所有負載 then
8: 將水印圖像作為原始圖像,將剩余水印信息作為原始水印,轉(zhuǎn)步驟1執(zhí)行
9: end if
10: 得到最終水印圖像
在嵌入過程中,為了保證水印信息的安全,對其進行加密處理,嵌入的數(shù)據(jù)包含水印負載和頭信息,頭信息包含了系數(shù)映射信息、停止參數(shù)、小波分解級數(shù)和水印嵌入重數(shù)。
算法2:水印提取算法
1: 讀取原始水印圖像
2: 將水印圖像進行整數(shù)—整數(shù)小波正變換
3: 進行水印負載提取
4: 對水印負載進行分解,得到附加信息和水印負載
5: 可逆直方圖平移恢復(fù)系數(shù)
6: if 水印提取未完成 then
7: 轉(zhuǎn)步驟2執(zhí)行
8: end if
9: 將水印圖像進行整數(shù)—整數(shù)小波逆變換
10: 得到原始宿主圖像
實驗隨機選取了3副常見的自然灰度圖像(Lena, Baboon, Peppers均來自網(wǎng)絡(luò),512×512×8 bit深度,BMP格式,水平和垂直分辨率均為71 DPI,大小均為257 KB)和3幅醫(yī)學(xué)灰度圖像(MRI_Skull, CT_Lung和US_Womb來自中南大學(xué)湘雅醫(yī)院數(shù)據(jù)中心,512×512×8 bit深度,JPG格式,水平和垂直分辨率均為72 DPI,大小均為39.7 KB),如圖8所示。編程環(huán)境為Matlab 7.0和Windows XP操作系統(tǒng)(主頻1.6 GHz,內(nèi)存1.25 GB)。
圖8 試驗中選取的測試圖像
水印嵌入容量用bpp衡量,嵌入水印信息使用Matlab中的rand()隨機函數(shù)產(chǎn)生。圖像失真度衡量PSNR計算公式如下:
(3)
其中,M,N,P分別代表圖像的寬、高和位深度,I(i,j)和Iw(i,j)分別代表原始圖像和水印圖像像素值。
3.1 算法復(fù)雜度分析
本文算法的計算復(fù)雜度取決于小波轉(zhuǎn)換和直方圖平移的操作。標準離散小波轉(zhuǎn)換的時間復(fù)雜度是O(N)。直方圖平移的計算復(fù)雜度與輸入像素的個數(shù)N和平移次數(shù)k1直接相關(guān),時間復(fù)雜度為O(k1×N)。另外,本文的算法需要計算在第一級小波轉(zhuǎn)換中的高頻子帶中進行調(diào)整造成水印圖像的PSNR值,用來決定停止參數(shù)。這些計算的花費與第一級小波轉(zhuǎn)換的高頻子帶中直方圖調(diào)整的總次數(shù)k2成正比,與每一步中的小波分解也成正比關(guān)系。所以,算法總的時間復(fù)雜度為O(k1×N2)。
3.2 實驗結(jié)果
圖9給出了不同的載體圖像在不同的嵌入容量下的PSNR值測試結(jié)果。
圖9 不同載體圖像在不同的嵌入容量下的PSNR測試結(jié)果
從圖9中可以看出,首先除Baboon圖像外,其他圖像能在嵌入容量達到接近1 bpp時保持較好的水印圖像質(zhì)量,PSNR值在30 dB以上。其次,醫(yī)學(xué)圖像的實際嵌入性能明顯優(yōu)于自然圖像,由于醫(yī)學(xué)圖像的特點,小波系數(shù)的直方圖更加集中于0點,并且仍然保持拉普拉斯分布。這表明少量的直方圖平移能產(chǎn)生高的水印嵌入空間,并且?guī)砀〉氖д?,這個特點比自然圖像具有優(yōu)勢。另外,同樣類型的圖像,由于其自身紋理特征不同,嵌入性能有著明顯差異,如Baboon圖像紋理最為復(fù)雜,其高頻系數(shù)直方圖中分布相對均勻,造成更多的系數(shù)用來嵌入數(shù)據(jù),相比實驗中其他的自然圖像具有最低的PSNR值,在目前的算法中,很少有算法能在Baboon這樣的圖像載體中單層嵌入容量達到1 bpp。醫(yī)學(xué)圖像中,US_Womb圖像的紋理最為復(fù)雜,相鄰像素間相關(guān)性較差,其嵌入性能最差,接近于一般的自然圖像,如Lena。由于數(shù)據(jù)嵌入在高頻小波子帶中,每一個水印圖像具有高頻噪聲,并且由于更高高頻系數(shù)的存在,比原始圖像更加銳化,但是即使在較低的PSNR值情況下,也沒有對圖像的視覺質(zhì)量造成嚴重的影響??傮w上來看,在每一個負載容量下的失真性能取決于每個圖像本身的特征,這是因為每一幅圖像的高頻和低頻系數(shù)的數(shù)量不同,并且灰度直方圖的形狀影響了防止溢出過程中的系數(shù)映射矩陣。另外由于醫(yī)學(xué)圖像通常具有12 bit位深度,本文研究了圖像位深度對本文算法的影響,通過實驗分析發(fā)現(xiàn),同一幅MRI_Skull的醫(yī)學(xué)圖像,12 bit位深度的嵌入容量要遠遠高于8 bit位深度的圖像,因為在用12 bit位深度表示圖像像素時,最高的像素值達到4095,一般的圖像像素值不會利用到如此大的空間,處于上溢邊緣的像素大大減少,減小了附加信息的長度。另外通過小波分解后,高頻子帶系數(shù)處于0值附近的數(shù)量大幅增加,增加了嵌入容量。
為了得到更高的嵌入容量,可以采用多層嵌入策略。在多層嵌入策略中,水印圖像被多次用來執(zhí)行嵌入過程,從而嵌入更多的數(shù)據(jù)。圖10給出了Lena在采用本文算法進行多層嵌入后的結(jié)果。為了更好觀測失真現(xiàn)象,對圖像進行放大處理,Lena測試圖像在經(jīng)歷2層和3層嵌入后得到的水印圖像,其嵌入容量可以得到2.7 bpp。通過比較原始圖像和高嵌入容量的水印圖像發(fā)現(xiàn),具有低的PSNR的圖像并不一定意味著低的視覺質(zhì)量。雖然銳化影響加強了并且比較容易被察覺,但是圖像的視覺質(zhì)量對肉眼是可接受的。
圖10 Lena多層嵌入測試結(jié)果
為了比較本文算法與相似方法的性能,選取了2個具有代表性的算法,分別為文獻[6]提出的方法,該方法在基于差值擴展方法中具有較好的性能,另外一個為文獻[15]提出的方法,該方法利用直方圖平移和差分直方圖嵌入數(shù)據(jù)。嵌入圖像以Baboon為例,實驗結(jié)果如圖11所示。
從圖11可以看出,相比其他的方法而言,本文方法在嵌入容量bpp>0.4時具有高的嵌入性能,在低的嵌入容量時,文獻[6]的方法具有更高的PSNR值,因為對嵌入塊的選擇進行了優(yōu)化,而本文提出的方法對所有具有相同值的系數(shù)進行了統(tǒng)一調(diào)整。文獻[6]的方法的最高嵌入容量只有0.7 bpp。文獻[15]通過仔細選擇和調(diào)整直方圖平移開始系數(shù)和限制待嵌入數(shù)據(jù)的數(shù)量可以得到更高的PSNR值,這樣,算法的復(fù)雜度將會顯著增大,然而帶來的視覺質(zhì)量的提升確是十分有限的。另外,從實驗結(jié)果中可以看出,通常情況下,基于頻域的算法比基于空域的算法具有更好的性能,這是因為在頻域數(shù)據(jù)的相關(guān)性更好,能夠產(chǎn)生更多的空間來進行信息隱藏,并且能將失真級別控制在可接受的范圍。這一點在嵌入高容量數(shù)據(jù)時體現(xiàn)的尤為明顯。
圖11 與相似方法比較結(jié)果
本文提出了一種基于整數(shù)小波變換和直方圖平移的數(shù)字圖像可逆水印算法。利用整數(shù)小波分解后的高頻系數(shù)進行水印嵌入,嵌入?yún)?shù)的選擇算法保證了高的嵌入容量,嵌入停止參數(shù)選擇算法保證了水印圖像的保真度。另外為了有效防止嵌入過程中產(chǎn)生的溢出現(xiàn)象,提出了新的位置映射方法。實驗結(jié)果表明,該方法具有較大的嵌入容量并將圖像失真控制在較好的范圍內(nèi)。另外,本文方法可以執(zhí)行多級嵌入以獲得更高的嵌入容量。該方法可用于在醫(yī)學(xué)數(shù)字圖像中進行病人電子病歷隱藏,實現(xiàn)診斷圖像與電子病歷的有效匹配,并能節(jié)省存儲空間和傳輸帶寬,具有較好的應(yīng)用前景。
[1] 王繼軍.圖像差值空間大容量可逆數(shù)字水印算法[J].中國圖象圖形學(xué)報,2014,19(4):527-533.
[2] Deng X H,Chen Z G,Zeng F,et al.Authentication and Recovery of Medical Diagnostic Image Using Dual Reversible Digital Watermarking[J].Journal of Nanoscience and Nanotechnology,2013,13(3):2099-2107.
[3] 高海波,鄧小鴻,陳志剛.基于可逆可見水印的醫(yī)學(xué)圖像隱私保護算法[J].計算機應(yīng)用,2014,34(1):119-123.
[4] 李文娜,高立群,孔祥勇,等.ROI和輪廓波結(jié)合的醫(yī)學(xué)圖像盲水印算法[J].哈爾濱工程大學(xué)學(xué)報,2013,34(7):918-923.
[5] Tian J.Reversible Data Embedding Using a Difference Expansion[J].IEEE Transactions on Circuits and System for Video Technology,2003,13(8):890-896.
[6] Lee C F,Chen H L,Tso H K.Embedding Capacity Raising in Reversible Data Hiding on Prediction of Difference Expansion[J].The Journal of Systems and Software,2010,83(10):1864-1872.
[7] 邱應(yīng)強,余輪.基于整數(shù)變換的自適應(yīng)圖像可逆水印方法[J].電子與信息學(xué)報,2014,36(6):1278-1284.
[8] Ni Z,Shi Y Q,Ansari N,et al.Reversible Data Hiding[J].IEEE Transactions on Circuits and System for Video Technology,2006,16(3):354-362.
[9] 劉芳,汪玉凱.一種基于差值直方圖平移的多層可逆水印算法[J].計算機應(yīng)用與軟件,2014,31(1):303-307.
[10] 王祥,李可,付凱元,等.直方圖平移的自適應(yīng)大容量可逆水印算法[J].西安電子科技大學(xué)學(xué)報,2014,41(1):124-129.
[11] 曾驍,陳真勇,陳明,等.基于零系數(shù)索引的可逆圖像水印[J].計算機研究與發(fā)展,2010,47(7):1304-1312.
[12] 呂皖麗,郭玉堂,羅斌.結(jié)合初級視皮層特性的感興趣區(qū)域數(shù)字水印算法[J].電子科技大學(xué)學(xué)報,2011,40(6):915-920.
[13] Chang C C,Pai P Y,Yeh C M,et al.A High Payload Frequency-based Reversible Image Hiding Method[J].Information Sciences,2010,180(11):2286-2298.
[14] 高廣春,趙勝穎,朱紅麗,等.基于提升格式的自適應(yīng)預(yù)測小波變換算法[J].電路與系統(tǒng)學(xué)報,2010,15(5):31-34.
[15] 鄭淑麗,邢慧芬,王美玲,等.基于直方圖平移和差分直方圖的可逆水印[J].系統(tǒng)仿真學(xué)報,2013,25(11):2717-2722.
A DIGITAL IMAGE REVERSIBLE WATERMARKING ALGORITHM BASED ON INTEGER WAVELET TRANSFORM
Chen Liang Liu Huiwen Deng Xiaohong
(CollegeofAppliedScience,JiangxiUniversityofScienceandTechnology,Ganzhou341000,Jiangxi,China)
In order to overcome the deficiencies of execution reversibility and embedding capacity in frequent domain-based lossless digital watermarking algorism, we presented an integer wavelet transform-based lossless digital image watermarking algorithm for image’s reversible data hiding with high capacity. First we conducted the LeGall5/3 integer wavelet transform on original image, and then embedded watermark into high frequency sub-bands using histogram shifting method. In order to obtain the maximum embedding capacity and to reduce image distortion, we proposed the embedding parameters and stopping parameters selection method respectively. At the same time, in order to prevent overflow phenomenon and to reduce additional information, we proposed a new location mapping generation method. Experimental results showed that the proposed algorithm had good performances in fidelity of watermarked image and embedding capacity. In addition, the comparison with similar method also proved the superiority of the proposed algorithm. The algorithm is applicable to carrying out secret communication in digital image carries.
Integer wavelet transform Reversible digital watermarking Histogram shifting Information hiding
2014-11-07。國家自然科學(xué)基金項目(61272494,4136 2015);江西省教育廳教改項目(JZJG14341)。陳亮,講師,主研領(lǐng)域:信息安全。劉惠文,助教。鄧小鴻,副教授。
TP391
A
10.3969/j.issn.1000-386x.2016.04.067