李 蓉
(廣東農(nóng)工商職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)學(xué)院,廣東 廣州 510507)
隨著互聯(lián)網(wǎng)和數(shù)字信息的飛速發(fā)展,信息安全的需求越來(lái)越迫切。圖像可逆數(shù)據(jù)隱藏(reversible data hiding,RDH)是利用圖像作為隱秘載體來(lái)保障信息安全的一種新興技術(shù),因其失真小且無(wú)損恢復(fù)的優(yōu)點(diǎn)被廣泛應(yīng)用于隱秘通信、版權(quán)保護(hù)、數(shù)字認(rèn)證、遙感技術(shù)、醫(yī)學(xué)圖像處理等領(lǐng)域。
圖像可逆數(shù)據(jù)隱藏領(lǐng)域具有代表性的算法包括:①基于無(wú)損壓縮的可逆數(shù)據(jù)隱藏方法[1-2],主要是對(duì)原始圖像通過(guò)無(wú)損壓縮釋放一些空間,將節(jié)省出來(lái)的空間用于存儲(chǔ)秘密信息,這類(lèi)算法因隱藏容量有限且對(duì)原始圖像改動(dòng)較大,在實(shí)際使用中存在局限性;②基于直方圖平移的可逆數(shù)據(jù)隱藏方法[3-5],先生成原始圖像直方圖,再利用圖像自身的統(tǒng)計(jì)特性通過(guò)平移直方圖來(lái)實(shí)現(xiàn)可逆嵌入,方法簡(jiǎn)單,但嵌入量過(guò)分依賴(lài)于圖像自身特點(diǎn);③基于整數(shù)變換的可逆數(shù)據(jù)隱藏方法[6-8],利用數(shù)學(xué)上的整數(shù)變換原理實(shí)現(xiàn)可逆的信息嵌入和提取,優(yōu)點(diǎn)是嵌入容量大且計(jì)算復(fù)雜度低,但嵌入效率較低;④基于預(yù)測(cè)誤差擴(kuò)展的可逆數(shù)據(jù)隱藏方法[9-10],核心思想是以預(yù)測(cè)誤差代替原有的實(shí)際差值從而實(shí)現(xiàn)信息嵌入,能夠更好地利用圖像相關(guān)性,在嵌入容量和嵌入性能上均有較大提高。近年來(lái),Li等[11]在預(yù)測(cè)誤差擴(kuò)展思想基礎(chǔ)上提出基于像素值排序(pixel value ordering,PVO)的數(shù)據(jù)隱藏方法,極大地改善了嵌入性能和載秘圖片視覺(jué)效果;Ou等[12]提出基于多直方圖修改的PVO算法,引入對(duì)嵌入誤差的優(yōu)選過(guò)程,提高了載秘圖像的信噪比;文獻(xiàn)[13]提出一種圖像分區(qū)優(yōu)選思想,利用圖像嵌入空間改善PVO算法的嵌入性能;Peng等[14]提出一種改進(jìn)的像素值排序可逆數(shù)據(jù)隱藏方案(improved PVO,IPVO),延展利用了最大像素值與次大像素值相等的像素,利用預(yù)測(cè)誤差值“0”和“1”嵌入秘密信息,提高了嵌入容量。文獻(xiàn)[15]基于IPVO算法,提出浮動(dòng)預(yù)測(cè)差值思想,針對(duì)不同的嵌入容量選擇適當(dāng)?shù)牟钪低瓿蓴?shù)據(jù)隱藏,能更好地利用圖像冗余空間,提高算法性能。之后陸續(xù)出現(xiàn)多種基于像素值排序思想的改進(jìn)方法[16-17],來(lái)進(jìn)一步優(yōu)化隱藏性能。
由以上研究可知,像素值排序算法性能與圖像自身特性有一定的相關(guān)性,為充分提高圖像冗余空間的利用率,本研究在考慮IPVO算法與圖像像素分布相關(guān)性的基礎(chǔ)上,以滿(mǎn)足嵌入需求為前提,提出自適應(yīng)壓縮移位區(qū)間方法。首先,統(tǒng)計(jì)最大值預(yù)測(cè)差值和最小值預(yù)測(cè)差值的分布情況,利用頻率為0次的預(yù)測(cè)差值獲取其連續(xù)分布區(qū)間;其次,計(jì)算各區(qū)域嵌入差值密度;然后,根據(jù)處理圖像特征和嵌入需求優(yōu)先選擇合適的連續(xù)分布區(qū)間和嵌入差值比較集中的區(qū)域進(jìn)行信息嵌入,使其與圖像嵌入差值統(tǒng)計(jì)分布特征相適應(yīng),從而減少移位像素?cái)?shù)量,提高圖像的嵌入性能和載秘圖像的質(zhì)量。
Peng等[14]提出的IPVO數(shù)據(jù)隱藏方案使用預(yù)測(cè)誤差“0”和“1”進(jìn)行信息嵌入,算法過(guò)程為:
1) 將圖像分成若干非重疊的像素組,假設(shè)某像素組中包含n個(gè)像素,其像素值分別為x1,x2,…,xn。
2) 將組中像素按像素值升序排序,記為xσ(1),xσ(2),…,xσ(n-1),xσ(n),且滿(mǎn)足xσ(1)≤xσ(2)≤…≤xσ(n-1)≤xσ(n),σ(1),σ(2),…,σ(n-1),σ(n)為像素在原始像素組中的位置順序。
3) 計(jì)算最大值像素預(yù)測(cè)誤差
emax=xu-xv。
(1)
其中,u=min (σ(n-1),σ(n)),v=max(σ(n-1),σ(n))。
4) 使用預(yù)測(cè)誤差“0”和“1”嵌入秘密數(shù)據(jù),s為嵌入的秘密信息,最大值預(yù)測(cè)差值的變化公式為:
(2)
最大值像素變化過(guò)程為:
(3)
5) 采用與最大值預(yù)測(cè)差值和最大值像素變化的類(lèi)似過(guò)程,計(jì)算最小值像素預(yù)測(cè)誤差emin,并使用預(yù)測(cè)誤差“0”和“1”嵌入秘密數(shù)據(jù)。嵌入過(guò)程沒(méi)有改變xσ(n)和xσ(1)的排序位置,利用文獻(xiàn)[14]的方法提取隱秘信息并無(wú)損恢復(fù)原始圖像。
對(duì)于256階灰度圖像,IPVO算法預(yù)測(cè)差值分布于區(qū)間[-255,255],采用預(yù)測(cè)差值“0”“1”完成信息嵌入時(shí),大于1的最大值(或最小值)像素預(yù)測(cè)差值右移1像素;小于0的最大值(或最小值)像素預(yù)測(cè)差值左移1像素,為預(yù)測(cè)差值“0”“1”隱藏信息預(yù)留空間,保證順利實(shí)現(xiàn)信息提取。
事實(shí)上,每幅圖像的最大值像素預(yù)測(cè)差值與最小值像素預(yù)測(cè)差值的分布不一致。一方面,預(yù)測(cè)差值通常集中在靠近差值“0”的區(qū)域,使得在使用差值“0”或“1”完成信息嵌入時(shí)能夠盡可能提高圖像的載荷容量;另一方面,預(yù)測(cè)差值區(qū)間的兩端分布較為稀疏,經(jīng)常有某些差值出現(xiàn)頻率為0的情況,分布往往呈現(xiàn)不均勻不連續(xù)的狀態(tài)。基于以上考慮,在像素執(zhí)行移位操作中,當(dāng)預(yù)測(cè)差值大于1時(shí),IPVO移位差值區(qū)間[2,255]可壓縮為[2,er-1],er為所有大于1且出現(xiàn)頻率為0的預(yù)測(cè)差值中的最小差值;當(dāng)預(yù)測(cè)差值小于0時(shí),移位差值區(qū)間[-255,-1]可壓縮為[el+1,-1],el為所有小于0且出現(xiàn)頻率為0的預(yù)測(cè)差值中的最大差值。將[2,er-1]和[el+1,-1]作為壓縮后的連續(xù)差值分布區(qū)間,利用壓縮移位區(qū)間實(shí)現(xiàn)數(shù)據(jù)隱藏的差值直方圖變化,如圖1所示。若將圖像劃分為若干個(gè)區(qū)域[13],尋找每個(gè)區(qū)域差值出現(xiàn)頻率為0的er和el,預(yù)期可進(jìn)一步減少對(duì)直方圖的修改,降低信息隱藏過(guò)程的移位率,提高隱秘圖像的信噪比。
圖1 壓縮移位區(qū)間的差值直方圖變化過(guò)程Fig. 1 Histogram modification after compression shift interval
對(duì)于灰度圖像,假設(shè)最大值像素預(yù)測(cè)差值為emax,t(t=-255,…,255),每個(gè)差值出現(xiàn)頻率為nmax,t(t=-255,…,255),若nmax,t=0,則稱(chēng)差值emax,t為最大值像素預(yù)測(cè)差值的零次差值。同理,最小值像素預(yù)測(cè)差值為emin,t(t=-255,…,255),每個(gè)差值出現(xiàn)頻率為nmin,t(t=-255,…,255),若nmin,t=0,則稱(chēng)差值emin,t為最小值像素預(yù)測(cè)差值的零次差值。
統(tǒng)計(jì)嵌入差值“0”和“1”在差值連續(xù)分布區(qū)間中出現(xiàn)的比率,稱(chēng)為嵌入差值密度DS,其值為:
(4)
2.2.1 信息嵌入過(guò)程
將秘密信息嵌入圖像中可得載秘圖像,嵌入過(guò)程如下。
1) 對(duì)于M×N像素的原始圖像I,將圖像平均分為互不重疊的B個(gè)區(qū)域,記每個(gè)區(qū)域?yàn)镮b(b=1,2,…,B),每個(gè)區(qū)域像素個(gè)數(shù)P=(M×N)/B。
2) 將區(qū)域Ib像素按2×2的大小分組,設(shè)分組數(shù)為U,則U=P/(2×2)。
(5)
(6)
7) 利用式(4)計(jì)算區(qū)域Ib每個(gè)分區(qū)的嵌入差值密度DSb(b=1,2,…,B)。
8) 對(duì)序列{DS1,DS2,…,DSB}進(jìn)行降序排列,得到新序列{DSδ(1),DSδ(2),…,DSδ(B)},滿(mǎn)足DSδ(1)≥DSδ(2)≥…≥DSδ(B),δ:{1,2,…,B}→{δ(1),δ(2),…,δ(B)}為一一映射關(guān)系。當(dāng)DSδ(m)=DSδ(n)且m>n時(shí),δ(m)>δ(n)(m,n=1,2,…,B)。以滿(mǎn)足嵌入需求為前提,結(jié)合嵌入差值統(tǒng)計(jì)分布特征,自動(dòng)優(yōu)先選擇密度較大區(qū)域進(jìn)行信息嵌入。
9) 假設(shè)位串M=m0m1…ml-1是需嵌入的l位秘密消息,其中mj∈{0,1},0≤j≤l。
(7)
(8)
(9)
(10)
其中:b=1,2,…,B;u=1,2,…,U;0≤j≤l-1。利用式(9)、式(10)嵌入所有信息M,可得到標(biāo)記圖像。在算法改進(jìn)過(guò)程中,映射σ保持不變,因此可以實(shí)現(xiàn)秘密數(shù)據(jù)的提取和圖像的無(wú)損恢復(fù)。
2.2.2 信息提取過(guò)程
1) 讀取負(fù)載圖像I′中前l(fā)s+l1c+l2c個(gè)像素的LSB,獲取信息提取所需的輔助頭信息SI、H1c和H2c,并利用H1c和H2c解壓縮得到位圖H1和H2。
2) 使用與嵌入過(guò)程相同的規(guī)則,將載秘圖像I′分為互不重疊的B個(gè)區(qū)域,記每個(gè)區(qū)域?yàn)镮′b(b=1,2,…,B)。
4) 對(duì)區(qū)域I′b第u組像素,若h1b,u=0且h2b,u=0,計(jì)算最大值像素預(yù)測(cè)差值
(11)
同理,計(jì)算最小值像素預(yù)測(cè)差值
(12)
5) 對(duì)區(qū)域I′b第u組像素,秘密信息mj(0≤j≤l-1)通過(guò)式(13)、式(14)進(jìn)行提取。
(13)
(14)
(15)
(16)
7) 根據(jù)區(qū)域索引和像素組索引排列組合從各像素組中提取秘密消息mj(0≤j≤l-1)。對(duì)圖像的剩余區(qū)塊,提取嵌入過(guò)程生成的序列SLSB并替換圖像中長(zhǎng)度為ls+l1c+l2c像素的LSB。至此,獲得秘密信息M并無(wú)損地恢復(fù)原始圖像I。
為驗(yàn)證改進(jìn)后的IPVO算法有效性,使用Matlab(R2015b)進(jìn)行仿真實(shí)驗(yàn),將改進(jìn)后IPVO算法與其他4種算法進(jìn)行比較。測(cè)試圖像為512×512灰度圖像,像素值在0到255之間,如圖2所示。
圖2 用于嵌入信息的原始圖像Fig. 2 Original image for embedding information
通??赡鏀?shù)據(jù)隱藏使用峰值信噪比(peak signal-to-noise ratio,PSNR)來(lái)衡量算法性能,PSNR值越大,載秘圖像性能越高,越不容易被肉眼察覺(jué)。選用文獻(xiàn)[11,13-15]中算法與本研究算法(簡(jiǎn)稱(chēng)本算法)進(jìn)行比較,將圖像劃分為8×8個(gè)區(qū)域進(jìn)行實(shí)驗(yàn),分別使用圖2(a)~2(f)中6幅圖像進(jìn)行信息嵌入,改進(jìn)后的IPVO方法與其他方法的性能比較如圖3(a)~3(f)所示。
圖3 不同算法的載秘圖像PSNR比較Fig. 3 PSNR comparison of different algorithms for stego-image
由圖3可知,隨著嵌入容量增加,PSNR值逐漸減小,符合理論特征。圖像Aerial、Elaine、Plane、Girl-g的測(cè)試結(jié)果顯示,不論是低負(fù)載還是高負(fù)載嵌入,本算法的PSNR值均大于其他方法;圖像Lena在高負(fù)載嵌入情況下和圖像Grass在低負(fù)載嵌入情況下,本算法優(yōu)于其他方法。實(shí)驗(yàn)整體效果說(shuō)明,在IPVO算法基礎(chǔ)上采用移位區(qū)間壓縮思想,在信息嵌入過(guò)程中使用零次差值縮小執(zhí)行移位操作的區(qū)間范圍,以滿(mǎn)足嵌入需求為前提,自適應(yīng)選擇差值連續(xù)分布區(qū)間,優(yōu)先選擇嵌入差值密度較大區(qū)域進(jìn)行信息嵌入,在相同嵌入量的條件下,本算法的PSNR值較之前有進(jìn)一步提高,圖片的載秘質(zhì)量和視覺(jué)感受相對(duì)較好。
為進(jìn)一步說(shuō)明本算法預(yù)測(cè)差值區(qū)間分布變化情況,以圖像Lena為例,當(dāng)劃分區(qū)域?yàn)?×1時(shí),最大值預(yù)測(cè)差值和最小值預(yù)測(cè)差值的連續(xù)分布區(qū)間分別為[-43,51]和[-47,62],移位像素為34 807 bits;當(dāng)劃分區(qū)域?yàn)?×4時(shí),各區(qū)域最大值預(yù)測(cè)差值和最小值預(yù)測(cè)差值的連續(xù)分布區(qū)間及嵌入差值數(shù)量如表1所示。
表1 各區(qū)域預(yù)測(cè)差值區(qū)間分布情況Tab. 1 Interval distribution of prediction differencein each regions
可以看出,每個(gè)區(qū)域的差值連續(xù)分布區(qū)間存在差異,比劃分區(qū)域?yàn)?×1時(shí)的差值分布區(qū)間更加集中。當(dāng)嵌入量為10 000 bits,完成信息嵌入執(zhí)行移位操作的像素?cái)?shù)量為12 791,較原始IPVO算法移位13 717像素減少926;當(dāng)嵌入量為20 000 bits時(shí),移位的像素?cái)?shù)量為26 818 bits,較原始IPVO方法移位34 838像素減少8 020,降幅為23%,大大降低移位率,有效提高載秘圖像質(zhì)量。
在不同區(qū)域劃分情況下的性能指標(biāo)比較如表2所示。其中圖像Grass因受最大嵌入容量限制,嵌入量為6 000 bits,其他圖像的嵌入量為10 000 bits??梢钥闯?,隨著分區(qū)數(shù)量的增加,圖像執(zhí)行嵌入過(guò)程的移位率逐漸減小,PSNR值逐漸增加。
表2 不同區(qū)域數(shù)量情況下的算法性能指標(biāo)Tab. 2 Comparison of algorithm performance under different regions division
衡量算法性能的另一重要指標(biāo)是嵌入量(embedding capacity,EC),嵌入量越大,算法的秘密信息負(fù)載能力就越強(qiáng)。將本算法與其他算法的嵌入量進(jìn)行比較,結(jié)果如表3所示。
表3 不同算法的嵌入容量比較Tab. 3 Comparison of embedding capacity for different algorithms
文獻(xiàn)[11]采用差值“-1”和“1”完成信息嵌入過(guò)程,嵌入容量略低;文獻(xiàn)[14]與本算法均采用差值“0”和“1”完成信息嵌入,嵌入容量指標(biāo)略高;文獻(xiàn)[13]采取了分區(qū)和差值優(yōu)選策略,嵌入量比文獻(xiàn)[11]稍高,但較本算法明顯偏低;文獻(xiàn)[15]采取浮動(dòng)預(yù)測(cè)差值策略,可根據(jù)不同嵌入需求選擇合適的嵌入差值,在高負(fù)載嵌入情況下,仍采用差值“0”和“1”完成嵌入,與本算法的嵌入容量一致。在相同嵌入率情況下,本算法具有更高的信噪比,載秘圖像質(zhì)量得到改進(jìn)。
魯棒性反映信息隱藏技術(shù)的抗干擾能力。為驗(yàn)證本算法的魯棒性,分別進(jìn)行加噪攻擊、縮放攻擊和剪貼攻擊[18]來(lái)測(cè)試算法的可靠性。圖像在傳播過(guò)程中最易受到的攻擊就是加入噪聲,因此對(duì)圖像進(jìn)行均值為0、方差為0.000 1的噪聲攻擊;其次進(jìn)行縮放攻擊,將圖像寬度和高度的尺寸縮小為原來(lái)的一半;剪貼攻擊使用大小為64×64、像素值為192的區(qū)域來(lái)替代載密圖像的一部分。針對(duì)這些攻擊方式,采用Lena的載秘圖像作為測(cè)試對(duì)象,得到被攻擊的載秘圖像和恢復(fù)后的圖像如圖4所示。
圖4 被攻擊的載秘圖像和恢復(fù)后的圖像(Lena)Fig. 4 attracked stego-imageand restored image(Lena)
由圖4可以看出,圖像在受到幾種攻擊后未出現(xiàn)畫(huà)面質(zhì)量的明顯下降,視覺(jué)系統(tǒng)對(duì)信號(hào)感知微弱,噪聲攻擊后的視覺(jué)恢復(fù)效果比較理想。表4為不同圖像在嵌入量為10 000 bits(其中Grass圖像為5 000 bits)情況下,受到加噪、縮放和剪貼攻擊后的峰值信噪比變化情況。
由表4可以看出,噪聲攻擊的平均PSNR值在39 dB以上,圖像的不可感知性較好,抗噪聲攻擊能力較強(qiáng);縮放和剪貼攻擊對(duì)大多數(shù)測(cè)試圖像來(lái)說(shuō)PSNR值都在31 dB以上,在縮放攻擊中,Aerial圖像的PSNR值為27.308 8 dB,Grass圖像的PSNR值為21.539 3 dB;剪貼攻擊中,Aerial圖像的PSNR值為28.009 2 dB,相對(duì)抗攻擊能力而言較弱??傮w來(lái)看,抗縮放攻擊和剪貼攻擊的能力均較為理想。
通過(guò)上述實(shí)驗(yàn)結(jié)果分析,本算法在同等嵌入率情況下,具有更高的載秘圖像信噪比,且沒(méi)有降低嵌入容量性能,對(duì)圖像的攻擊(如噪聲、剪貼、縮放等)具有較好的魯棒性。
表4 不同圖像受到攻擊后的PSNR值Tab. 4 PSNR value of different images after being attacked dB
為使數(shù)據(jù)隱藏取得更好的處理效果,本研究設(shè)計(jì)并實(shí)現(xiàn)了一種基于自適應(yīng)壓縮移位區(qū)間的可逆數(shù)據(jù)隱藏算法。該算法對(duì)圖像分區(qū)后進(jìn)行像素值分組排序,計(jì)算最大(小)值像素預(yù)測(cè)差值并生成預(yù)測(cè)差值直方圖,考慮不同圖像差值直方圖分布特征的差異性,利用預(yù)測(cè)差值統(tǒng)計(jì)頻率為0次的差值壓縮移位區(qū)間,用戶(hù)根據(jù)自身需求優(yōu)先選擇嵌入差值密度較大的區(qū)域進(jìn)行嵌入,改進(jìn)信息嵌入過(guò)程,實(shí)現(xiàn)信息的可逆隱藏。從圖像感知質(zhì)量、嵌入容量和魯棒性三方面進(jìn)行仿真實(shí)驗(yàn),數(shù)據(jù)結(jié)果顯示:改進(jìn)后的算法充分利用了圖像自身相鄰像素的冗余性,實(shí)現(xiàn)了自適應(yīng)調(diào)整移位區(qū)間,較原始IPVO方法減少了像素修改數(shù)量,無(wú)論在低負(fù)載嵌入還是高負(fù)載嵌入條件下,都具有良好的不可感知性,同時(shí)算法有較好的抗噪聲攻擊性能,滿(mǎn)足數(shù)據(jù)隱藏的可靠性和安全性要求。