佘曉萌 杜 洋 馬文靜 殷趙霞
(多模態(tài)認(rèn)知計算安徽省重點(diǎn)實(shí)驗室(安徽大學(xué)) 合肥 230601)
(安徽大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 合肥 230601)
(e19301227@stu.ahu.edu.cn)
信息隱藏是一種將附加信息嵌入在指定載體中并能正確地提取信息的技術(shù)[1],這種技術(shù)可以有效地保障信息安全性.在2020年中國商務(wù)部、科技部調(diào)整發(fā)布的《中國禁止出口限制出口技術(shù)目錄》(商務(wù)部科技部公告2020年第38號)的公告中,“信息隱藏與發(fā)現(xiàn)技術(shù)”作為新增技術(shù)被列入其中,這直接證明了信息隱藏技術(shù)在安全領(lǐng)域的重要性.目前信息隱藏技術(shù)主要分為數(shù)字水印[2-3]、隱寫術(shù)[4-5]以及可逆信息隱藏[6-7]3個分支.作為信息隱藏的分支之一,可逆信息隱藏技術(shù)不僅能正確地提取被嵌入的信息,還能無損地恢復(fù)原始載體.
基于數(shù)字圖像的明文域可逆信息隱藏算法主要有2個常用的性能評價指標(biāo):一個是用來評價視覺質(zhì)量的峰值信噪比;另一個是用來評價嵌入容量的嵌入率.近年來研究者們陸續(xù)提出許多明文域可逆信息隱藏算法[8-13],并不斷地提高算法的性能使其在現(xiàn)實(shí)生活中更具有應(yīng)用價值.根據(jù)嵌入方式的不同,這些算法主要可以分為3類,分別是基于無損壓縮[8-9]、基于直方圖平移[10-11]和基于差值擴(kuò)展[12-13]的算法.早期的明文域可逆信息隱藏算法主要通過第1類無損壓縮的方法來預(yù)留空間,從而嵌入附加信息.第2類基于直方圖平移的算法主要通過修改圖像的像素直方圖的峰值點(diǎn)和零值點(diǎn)之間的像素來嵌入信息.第3類基于差值擴(kuò)展的算法則通過擴(kuò)展2個像素之間的差值來實(shí)現(xiàn)信息隱藏.
隨著云計算的發(fā)展和對隱私保護(hù)需求的日漸增長[14],基于數(shù)字圖像的密文可逆信息隱藏(reversible data hiding in encrypted images, RDHEI)技術(shù)的研究意義逐漸開始凸顯[15].該技術(shù)將附加信息嵌入在加密圖像中,最終不僅能正確地提取信息和無損地恢復(fù)原始圖像,還能保障原始圖像和附加信息的安全性.由于加密后的圖像失去原始特征,所以不同于明文域可逆信息隱藏,在RDHEI算法中嵌入容量是其最主要的性能評價指標(biāo).在許多注重隱私保護(hù)的場景下,RDHEI技術(shù)都有較強(qiáng)的應(yīng)用價值.比如在云環(huán)境下,原始圖像在傳輸?shù)皆贫酥巴枰M(jìn)行加密,RDHEI可以完美地應(yīng)用于此場景,在保護(hù)原始圖像的同時也能保障信息安全性.此外,在一些醫(yī)學(xué)、軍事及法律等對隱私保護(hù)有特殊需求的領(lǐng)域中,RDHEI也有廣泛的應(yīng)用價值.
根據(jù)算法的不同階段,RDHEI算法主要包含三方操作者:內(nèi)容所有者、信息隱藏者和接收者.內(nèi)容所有者是提供原始圖像的一方,擁有加密密鑰,能夠?qū)υ紙D像進(jìn)行加密處理;信息隱藏者是嵌入附加信息的一方,擁有信息隱藏密鑰,無法獲取到原始圖像的內(nèi)容,僅可以在加密圖像上嵌入附加信息從而生成標(biāo)記加密圖像;接收者則是接收最終的標(biāo)記加密圖像的一方,在同時擁有信息隱藏密鑰與圖像加密密鑰時,可以正確地提取信息和無損地恢復(fù)原始圖像.根據(jù)圖像加密的順序,目前已有的RDHEI算法主要被分為2類[15]:加密后留出空間(vacating room after encryption, VRAE)[16-30]和加密前預(yù)留空間(reserving room before encryption, RRBE)[31-44]的算法.如圖1(a)所示,VRAE算法通過修改加密圖像的像素以留出空間嵌入附加信息[16-30].由于加密圖像的信息熵趨向于最大化,所以這類算法僅能實(shí)現(xiàn)較小的嵌入容量.近年來,在醫(yī)療領(lǐng)域,為了保護(hù)患者的隱私,醫(yī)療圖像往往需要加密后進(jìn)行傳輸,為了將患者的個人信息、診斷信息等附加信息嵌入到加密圖像中,RDHEI算法對嵌入容量不斷有更高的要求,由此RRBE算法逐漸得到了廣泛的研究[31-44].圖1(b)給出RRBE算法的框架圖,這類算法通過分析原始圖像的特征,利用原始像素的相關(guān)性來預(yù)留可嵌入的空間.相較于先前的VRAE算法,RRBE算法能夠兼顧高嵌入容量、可逆性和安全性,本文主要研究的是這種算法.
Fig. 1 Two categorized frameworks of RDHEI algorithms圖1 RDHEI算法的2種框架圖
文獻(xiàn)[31]提出基于RRBE框架下的RDHEI算法,該算法的主要思想是通過選取原始圖像一部分像素的最低有效位嵌入到另一部分像素中來預(yù)留空間,然后生成加密圖像并嵌入附加信息.文獻(xiàn)[32]使用流密碼和塊置亂的方法加密圖像,嵌入信息的思想則與文獻(xiàn)[31]類似.早期的算法多數(shù)是通過最低有效位替換來實(shí)現(xiàn)信息隱藏,很少有在最高有效位(most significant bit, MSB)上嵌入信息的算法,這是因為MSB替換會導(dǎo)致原始圖像出現(xiàn)明顯的失真.由于在RDHEI算法中加密后的圖像已失去原始特征,所以無需和明文域可逆信息隱藏算法保持一致.文獻(xiàn)[33]在圖像的MSB上嵌入附加信息,相較于先前僅使用一部分的最低有效位來嵌入信息的算法,該算法在嵌入容量上具有非常明顯的優(yōu)勢.盡管如此,該算法仍然存在一定的局限性,即僅利用MSB而無法利用其余的位.在該算法中輔助信息在未壓縮的情況下被嵌入,會導(dǎo)致非法者僅通過分析輔助信息獲取原始圖像的內(nèi)容[34].文獻(xiàn)[35]設(shè)計了一種基于二值圖像的RDHEI算法,該算法基于圖像的空間相關(guān)性,通過保留預(yù)測像素的方式,在非預(yù)測像素的位置嵌入附加信息.文獻(xiàn)[36]提出一種擴(kuò)展游程編碼和最高有效位平面重排列的方法,通過壓縮最高有效位平面來留出空間嵌入附加信息.文獻(xiàn)[37]通過二值塊嵌入算法壓縮圖像的位平面,從而提升嵌入容量.文獻(xiàn)[38]采用二叉樹編碼來標(biāo)記像素以預(yù)留空間嵌入附加信息.文獻(xiàn)[39]采用自適應(yīng)像素排序的方法,構(gòu)造2維預(yù)測誤差直方圖以嵌入信息.文獻(xiàn)[40]設(shè)計一種雙線性回歸預(yù)測模型以提高圖像像素的預(yù)測精度,進(jìn)而提升算法的嵌入容量.文獻(xiàn)[41]利用預(yù)測編碼提出基于壓縮感知漸進(jìn)式恢復(fù)的RDHEI算法,在保證可逆性的同時實(shí)現(xiàn)了較高的嵌入容量.文獻(xiàn)[42]提出一種自適應(yīng)的多MSB預(yù)測的RDHEI算法,通過比較圖像的多個有效位來自適應(yīng)地嵌入信息,相較于文獻(xiàn)[33],此算法更進(jìn)一步地提升了嵌入容量.文獻(xiàn)[43]在文獻(xiàn)[38]的基礎(chǔ)上做出改進(jìn),更好地利用圖像像素間的相關(guān)性以預(yù)留空間嵌入附加信息.文獻(xiàn)[44]提出一種基于像素預(yù)測和位平面壓縮的RDHEI算法,通過壓縮預(yù)測誤差位平面來留出空間.相較于先前的算法,該算法的性能更具有優(yōu)勢.
上述RDHEI算法都實(shí)現(xiàn)了較好的性能,但是無法同時實(shí)現(xiàn)高嵌入容量、完全可逆性和安全性.比如文獻(xiàn)[33]中,原始內(nèi)容的安全性無法得到保障.文獻(xiàn)[42]實(shí)現(xiàn)了安全性,但此算法會產(chǎn)生過多的輔助信息,從而導(dǎo)致有效空間會被過多地占用,無法實(shí)現(xiàn)更高的嵌入容量.為保證安全性和完全可逆性的同時能實(shí)現(xiàn)更高的嵌入容量,本文提出一種基于像素預(yù)測和分塊標(biāo)記的RDHEI算法,主要貢獻(xiàn)可總結(jié)為3個方面:
1) 提出了一種基于位平面分塊特征的RDHEI算法,該算法可以充分利用位平面上的位置信息,成功地使用中值邊緣預(yù)測器來計算預(yù)測誤差.相較于原始圖像位平面,計算后所得到的預(yù)測誤差位平面上可嵌入的空間明顯增多,得以進(jìn)一步提升嵌入容量.
2) 自適應(yīng)地標(biāo)記了分塊,使得標(biāo)記分塊所產(chǎn)生的輔助信息具有一定的稀疏特征,從而極大程度地被算術(shù)編碼壓縮.此外,對3種分塊進(jìn)行標(biāo)記可以保證算法的完全可逆性.總體來說本算法不僅能同時保證算法的可逆性,還使得輔助信息占用的空間變少,有效空間能更充分地嵌入附加信息,以進(jìn)一步地提升嵌入容量.
3) 先前的同類算法[35]需要保留分塊的1 b作為預(yù)測值,而本算法能利用分塊內(nèi)的所有位置信息,從而提升RDHEI算法的性能.
Fig. 2 An example of dividing a non-uniform block into four parts圖2 舉例將非統(tǒng)一塊劃分為4塊
像素預(yù)測方案是一種用于二值圖像像素預(yù)測的方案[35].由于二值圖像的像素取值只有2種可能性,且圖像像素具有空間相關(guān)性,因此當(dāng)前的像素值可通過其相鄰像素值的預(yù)測結(jié)果而得.具體步驟是:先將一張未經(jīng)處理的大小為M×N的二值圖像劃分為若干個不重疊的大小為k×k的像素塊(本文k=4);接著根據(jù)這些像素塊的特征將其分為2類,每一類可使用相應(yīng)的預(yù)測方案.本節(jié)將逐一介紹用于這2類像素塊的像素預(yù)測方案.
第1類像素塊為非統(tǒng)一塊,其特點(diǎn)是塊內(nèi)的像素值不全相同.圖2是將一個大小為4×4的非統(tǒng)一塊劃分為4個部分的例子,每部分由中心像素P及其相鄰的3個像素L,R,D組成.根據(jù)像素相關(guān)性以及二值圖像的像素取值只有2種可能(此處用0和1表示)的特性,可得到結(jié)論:當(dāng)非統(tǒng)一塊某一部分的中心像素P取值是0時,那么該像素的3個相鄰像素L,R,D取值是0的概率更大,即這3個相鄰像素值的和,大概率是0或者1;同理,當(dāng)這部分中心像素值是1時,那么該像素的3個相鄰像素值是1的概率會更大,即這3個相鄰像素的和是2或者3的概率更大.
在算法過程中,當(dāng)構(gòu)成非統(tǒng)一塊的4個部分都滿足此條件時,即可根據(jù)相鄰像素的取值,恢復(fù)被改變后的中心像素P的原始值.由此可得到用于非統(tǒng)一塊的像素預(yù)測方案.
另一類像素塊為統(tǒng)一塊,塊內(nèi)像素值全為1或0.由于塊內(nèi)的像素值全部相同,因此僅根據(jù)當(dāng)前塊內(nèi)的一個像素值,即可獲取其余像素值.如圖3所示是一個大小為4×4的統(tǒng)一塊,可直觀看到僅需保留每個統(tǒng)一塊內(nèi)像素R的值不變,即可成功地預(yù)測塊內(nèi)的其他像素值.
Fig. 3 A uniform block圖3 統(tǒng)一塊
本文提出的基于像素預(yù)測和分塊標(biāo)記的RDHEI算法主要可以分為3個部分,具體框架如圖4所示:第1部分由內(nèi)容所有者提供原始圖像,完成預(yù)處理和加密操作,以生成加密圖像;第2部分由信息隱藏者在加密圖像上完成附加信息嵌入操作,以生成標(biāo)記加密圖像;第3部分根據(jù)密鑰的不同,由接收者完成提取信息和恢復(fù)圖像的操作.
Fig. 4 The framework of the proposed algorithm圖4 本文算法框架圖
預(yù)處理階段,主要對原始圖像執(zhí)行3部分操作:1)計算預(yù)測誤差;2)生成預(yù)測誤差位平面;3)分塊標(biāo)記.這3部分的具體操作在下文中逐一介紹.
(1)
其中,1≤i≤M,1≤j≤N.此處將圖像第1行和第1列的原始像素作為參考像素,不改變其像素值.接著根據(jù)xi,j的預(yù)測值,進(jìn)一步計算得到其預(yù)測誤差:
(2)
Fig. 5 The predicted value calculated by the median edge predictor圖5 使用中值邊緣預(yù)測器計算預(yù)測值
其中,1≤i≤M,1≤j≤N.由于后續(xù)需要置亂原始圖像的像素位置,因此為保證算法的完全可逆性,采用一個有效位來表示預(yù)測誤差值的符號位,其余有效位表示其數(shù)值位.具體步驟是先遍歷圖像的所有預(yù)測誤差,將大于64和小于-64的預(yù)測誤差定義為越界像素,并恢復(fù)其原始像素值.此處越界像素僅占極少一部分,所以算法過程中使用“1”標(biāo)記越界像素,“0”標(biāo)記其余像素,以生成一個大小為M×N且具有稀疏特征的標(biāo)記圖.基于此特征,可以用算術(shù)編碼有效地?zé)o損壓縮標(biāo)記圖,以減少空間占用.
2) 生成預(yù)測誤差位平面.將除參考像素和越界像素以外的預(yù)測誤差轉(zhuǎn)換為8 b二進(jìn)制序列:
(3)
對參考像素和越界像素位置的預(yù)測誤差進(jìn)行轉(zhuǎn)換:
(4)
3) 分塊標(biāo)記.由于后續(xù)算法過程中需要置亂分塊的初始位置,因此需使用標(biāo)記圖來記錄初始位置以保證可逆性.為直觀地描述分塊標(biāo)記過程,此處使用一個例子進(jìn)行具體說明.圖6是大小為M×N的預(yù)測誤差位平面的一部分,該部分由4個分塊組成,分別是值全為1的統(tǒng)一塊B1、值全為0的統(tǒng)一塊B0和非統(tǒng)一塊B.按順序遍歷當(dāng)前的位平面,分別記錄B1的數(shù)量N1和B0的數(shù)量N0,并比較N1和N0的大小.由于圖6中N1的值更大,所以此處用“00”標(biāo)記B1,反之用“01”標(biāo)記B0,最后用“10”標(biāo)記B.由此可得到一個大小為(M/4)×(N/4)的稀疏序列,以及一個用來判斷各個位平面中哪種統(tǒng)一塊更多的二值序列.采用算術(shù)編碼可以有效地壓縮該序列,極大地減少空間占用.
Fig. 6 An example of blocks labeling of bit planes圖6 對位平面進(jìn)行塊標(biāo)記的例子
Fig. 7 An example of embedding data into a non-uniform block圖7 在非統(tǒng)一塊中嵌入信息的例子
遍歷所有的非統(tǒng)一塊,對于滿足像素預(yù)測方案的非統(tǒng)一塊,使用“0”標(biāo)記表示可以嵌入信息,反之用“1”標(biāo)記.此外,由于部分位平面的有效空間不足以容納必要的輔助信息,故算法過程中用8 b二值序列來判斷8個位平面是否能執(zhí)行有效嵌入操作.最后重新排列有效位平面,將非統(tǒng)一依次排列在位平面的上方,統(tǒng)一塊排列在下方,采用位替換的方法,將標(biāo)記圖等輔助信息嵌入到統(tǒng)一塊中.
預(yù)處理后,內(nèi)容所有者對輔助信息以外的位置進(jìn)行加密.使用密鑰Ke生成一個大小為M×N的偽隨機(jī)矩陣H,并將其轉(zhuǎn)換為二進(jìn)制序列:
(5)
對于第k個有效位平面的原始預(yù)測誤差值,其加密后的值為
(6)
其中,1≤i≤M,1≤j≤N,⊕表示異或(XOR)操作.
內(nèi)容所有者將處理后的加密圖像上傳給信息隱藏者,由信息隱藏者執(zhí)行嵌入操作.為提高本文算法的安全性,在執(zhí)行嵌入操作前,使用信息隱藏密鑰Kd對附加信息進(jìn)行加密.下文給出嵌入信息的具體步驟:
1) 在非統(tǒng)一塊中嵌入信息.如第1節(jié)所述,當(dāng)非統(tǒng)一塊的4個部分都滿足預(yù)測條件時,則可以嵌入信息.因此,信息隱藏者僅需依次判斷當(dāng)前的非統(tǒng)一塊是否為可嵌入塊,然后采用位替換的方法嵌入附加信息即可.圖7是在非統(tǒng)一塊中嵌入信息的例子,每個塊可分為4個部分,當(dāng)且僅當(dāng)4個部分都滿足預(yù)測條件時,則可以在Pi(i=1,2,3,4)中嵌入信息.
2) 在統(tǒng)一塊中嵌入信息.先前算法為保證可逆性,在統(tǒng)一塊中嵌入附加信息前,需保留塊內(nèi)1 b原始值作為預(yù)測值[35].如此會導(dǎo)致塊內(nèi)的有效空間無法被合理利用,從而限制嵌入容量.為解決此問題,本文提出一種自適應(yīng)標(biāo)記分塊的方法,即2.1節(jié)所介紹的標(biāo)記方法.由于位平面上的3類分塊已被標(biāo)記,故本算法過程中無需保留塊內(nèi)1 b的原始值作為預(yù)測值.在統(tǒng)一塊中嵌入信息的具體過程如圖8所示,4個大小為4×4的非統(tǒng)一塊B、統(tǒng)一塊B1和B0組成位平面的一部分,其中B1和B0的全部位置都可用于嵌入附加信息.
Fig. 8 An example of embedding data into a uniform block圖8 在統(tǒng)一塊中嵌入信息的例子
由于在加密圖像和嵌入信息階段中,所用的密鑰不同,所以根據(jù)相應(yīng)的合法密鑰,接收者可以完成相應(yīng)的操作.
1) 接收者僅用信息隱藏密鑰Kd,可以正確地提取附加信息.接收者將標(biāo)記加密圖像分為8個位平面,根據(jù)最高位平面右下角的輔助信息,依次判斷當(dāng)前位平面是否為可嵌入位平面,并定位附加信息位置.對于所有可嵌入的非統(tǒng)一塊,按照嵌入階段的逆過程來提取附加信息.對于所有的統(tǒng)一塊中的附加信息,根據(jù)其位置依次提取全部的附加信息.最后使用密鑰Kd依次解密,即可獲得正確的附加信息.
2) 接收者僅用圖像加密密鑰Ke,可以無損地恢復(fù)圖像.接收者使用加密密鑰Ke解密圖像,對于位平面中的非統(tǒng)一塊,根據(jù)第1節(jié)提到的預(yù)測方案恢復(fù)嵌入位置的值;對于位平面中的統(tǒng)一塊,根據(jù)所提取的標(biāo)記圖即可判斷當(dāng)前塊的類型并恢復(fù)其原始值.最后,根據(jù)將各個位平面中所有重排列的塊依次恢復(fù)至原位置,即可得到與原始圖像一致的重構(gòu)圖像.
3) 接收者同時用信息隱藏密鑰Kd和圖像加密密鑰Ke,則既可以正確地提取信息,也可以無損地恢復(fù)圖像,具體操作與上述1)2)步驟類似.
為了驗證算法的性能,從安全性、可逆性以及嵌入容量3個方面分析本文算法所實(shí)現(xiàn)的實(shí)驗結(jié)果,并分別在BOSSbase[46],BOWS-2[47],UCID[48]這3個常用圖像數(shù)據(jù)集上進(jìn)行測試.
近年來RDHEI算法的安全性分析逐漸得到廣泛關(guān)注[49],為驗證算法的安全性,以下將從視覺質(zhì)量、直方圖分布和像素改變率這3個方面進(jìn)行詳細(xì)分析.
1) 視覺質(zhì)量.圖9給出Lena圖像的測試結(jié)果:圖9(a)是原始Lena圖像;圖9(b)是由內(nèi)容所有者傳給信息隱藏者的加密圖像;圖9(c)是嵌入附加信息的加密圖像,即標(biāo)記加密圖像;圖9(d)是恢復(fù)的重構(gòu)圖像.原始圖像與加密圖像、標(biāo)記加密圖像之間的視覺差異越大,則表明算法安全性越好.通過人眼觀察,可知原始圖像圖9(a)和加密圖像圖9(b)、標(biāo)記加密圖像圖9(c)之間幾乎不存在視覺相似性,由此從視覺質(zhì)量的角度可知算法具有一定的安全性.
Fig. 9 Results of applying the proposed algorithm toLena image圖9 將本文算法應(yīng)用于Lena圖像上的實(shí)驗結(jié)果
2) 直方圖分布.如圖10所示,2幅灰度直方圖分別展示出不同階段的圖像灰度值分布特征.圖10(a)中原始圖像直方圖呈現(xiàn)出不規(guī)則的分布,其中包含原始圖像的特征信息;而圖10(b)中加密圖像直方圖的分布均勻而平緩,在其中難以獲取像素間的規(guī)律,非法者通過分析加密圖像難以獲取原始圖像的有效特征信息,這也證明了算法具有一定的強(qiáng)加密效果.
Fig. 10 Gray histograms of Lena image圖10 Lena圖像的灰度直方圖
3) 像素改變率.本文算法不僅置亂了圖像的原始位置,還使用偽隨機(jī)生成器對圖像進(jìn)行加密.從理論角度證明算法的安全性,采用像素改變率的結(jié)果來證明加密圖像與原始圖像之間的差異,像素改變率越大,表明加密圖像與原始圖像之間的差異越大,則算法的安全性越高.像素改變率的計算步驟為:
(7)
(8)
其中,1≤i≤M,1≤j≤N,c表示像素改變率,xi,j和Xi,j分別表示原始像素和加密像素,M和N分別表示圖像的長和寬.實(shí)驗結(jié)果表明,加密后圖像的像素改變率非常高.比如,在幾張常用的測試圖像中,加密后原始圖像的像素改變率皆為100%,即算法的安全性得到了保障.
為驗證算法中重構(gòu)圖像的質(zhì)量,即可逆性,此處根據(jù)均方誤差(mean square error, MSE)和結(jié)構(gòu)相似性(structural similarity, SSIM)的值來判斷重構(gòu)圖像與原始圖像是否完全一致.重構(gòu)圖像的MSE越接近于0,SSIM越接近于1,則其失真程度越低.如表1所示,算法在3個常用圖像數(shù)據(jù)集上的測試結(jié)果皆是MSE為0,SSIM為1,此結(jié)果表明重構(gòu)圖像與原始圖像之間不存在失真,即兩者完全一致.由此可知本文算法具有完全可逆性.
Table 1 Results of MSE and SSIM on Three Image Databases表1 3個圖像數(shù)據(jù)集上MSE和SSIM的測試結(jié)果
在實(shí)現(xiàn)安全性和可逆性后,嵌入容量的高低將決定RDHEI算法的現(xiàn)實(shí)應(yīng)用價值,故嵌入容量常作為RDHEI算法的關(guān)鍵指標(biāo).圖11給出在3個常用圖像數(shù)據(jù)集上的嵌入容量的對比結(jié)果.
用每個像素可嵌入的比特數(shù)(bit per pixel, bpp),即嵌入率的大小來衡量嵌入容量的高低.文獻(xiàn)[33]采用位替換的方式,將信息嵌入到圖像的MSB上.如圖11所示,在3個常用數(shù)據(jù)集上使用文獻(xiàn)[33]所提算法進(jìn)行測試,所得到的嵌入率僅為0.966 bpp,0.968 bpp,0.893 bpp,而使用本文算法所得到的嵌入率分別是3.664 bpp,3.584 bpp,2.945 bpp.這是因為文獻(xiàn)[33]所提算法未充分地利用圖像的其他有效位.雖然在文獻(xiàn)[42]中提出使用多個有效位來嵌入信息,但是這種算法產(chǎn)生的輔助信息沒有被有效地壓縮,因此輔助信息會占用較多的有效空間并導(dǎo)致嵌入容量變低.文獻(xiàn)[43]利用像素間的相關(guān)性,采用二叉樹編碼來標(biāo)記像素以進(jìn)一步提升性能.文獻(xiàn)[44]通過壓縮圖像的位平面,從而留出額外空間以嵌入附加信息.但從圖11可直觀看到,相較于RDHEI算法,本文的嵌入容量具有一定的優(yōu)勢.下文詳細(xì)分析存在此優(yōu)勢的原因.
Fig. 11 Average embedding rate comparison in three databases圖11 3個圖像數(shù)據(jù)集上的平均嵌入率對比
1) 在預(yù)測誤差位平面上嵌入信息.在本文算法中,采用中值預(yù)測器計算預(yù)測值.對于不同位置上的預(yù)測值,采用相應(yīng)的方法計算預(yù)測誤差,由此得到的預(yù)測誤差位平面上有更多的可嵌入空間.如圖12所示,相較于圖10(a)中的原始像素直方圖,預(yù)測誤差直方圖的分布范圍更集中.本文算法能更好地利用圖像冗余,這就意味著位平面上有更多相同的值組成統(tǒng)一塊,從而嵌入更多信息.
Fig. 12 Histograms of the prediction errors圖12 預(yù)測誤差的分布直方圖
2) 輔助信息不占用過多的有效空間.本文算法可以有效地壓縮輔助信息,這使得位平面上有更多的空間用于嵌入附加信息,從而極大地提升嵌入容量.如2.1節(jié)所述,越界像素和總像素的標(biāo)記圖是本文算法的輔助信息之一.由于越界像素數(shù)量占總像素數(shù)量的比例非常低,故使用本文的標(biāo)記方法所產(chǎn)生的輔助信息具有很明顯的稀疏特征.例如,Lena圖像的越界像素總數(shù)占總像素數(shù)的百分比僅為0.04%.基于此特征,輔助信息被壓縮后僅占用很小的一部分空間.另一個主要的輔助信息是圖像位平面分塊的原始位置標(biāo)記圖.相較于原始像素,預(yù)測誤差分布集中且數(shù)值較小,所以在大多數(shù)預(yù)測誤差位平面上統(tǒng)一塊的數(shù)量都大于非統(tǒng)一塊的數(shù)量,此外本文算法使用“00”自適應(yīng)地標(biāo)記了數(shù)量較多的統(tǒng)一塊.因此位置標(biāo)記圖也具有一定的稀疏特征,可以被算術(shù)編碼有效地壓縮.
3) 充分地利用像素塊的空間.自適應(yīng)地標(biāo)記了位平面上的3類分塊,根據(jù)標(biāo)記圖算法能實(shí)現(xiàn)可逆性.相較于已有算法,本文算法在統(tǒng)一塊中嵌入信息前無需保留預(yù)測值,即塊中的所有空間皆可用于嵌入信息.
本文提出了一種基于像素預(yù)測和分塊標(biāo)記的高容量RDHEI算法,在保障安全性和可逆性的同時,能實(shí)現(xiàn)更高的嵌入容量,使得算法更具有現(xiàn)實(shí)應(yīng)用價值.比如RDHEI算法可被廣泛地應(yīng)用于醫(yī)療、軍事和法律等領(lǐng)域.在醫(yī)療領(lǐng)域,為了保護(hù)患者的隱私,醫(yī)療圖像往往需要加密后進(jìn)行傳輸,為了將患者的個人信息、診斷信息等附加信息嵌入到加密圖像中,RDHEI算法對嵌入容量不斷有更高的要求.本文算法能更好地利用圖像冗余,在預(yù)處理階段,計算預(yù)測誤差和分塊標(biāo)記的操作都使得圖像中可嵌入空間變多.在圖像加密階段,有效的密鑰使得算法的安全性得到保障.雖然理論分析和實(shí)驗結(jié)果都表明本文算法在安全性、可逆性以及嵌入容量上有較優(yōu)異的表現(xiàn),但是在后續(xù)工作中我們還將繼續(xù)改進(jìn)算法的性能,設(shè)計更準(zhǔn)確的預(yù)測方案來進(jìn)一步提高算法的嵌入容量.
作者貢獻(xiàn)聲明:佘曉萌提出了算法思路和實(shí)驗方案,完成實(shí)驗并撰寫論文;杜洋和殷趙霞對實(shí)驗及論文寫作提出指導(dǎo)性意見;馬文靜協(xié)助檢查論文并提出修改意見.