本發(fā)明屬于計算機信息安全技術(shù)領(lǐng)域,涉及一種JPEG圖像信息隱藏方法,尤其涉及一種基于紋理復(fù)雜度的JPEG圖像自適應(yīng)隱寫方法。
背景技術(shù):
隱寫術(shù)是利用信息隱藏技術(shù)實現(xiàn)隱蔽通信的技術(shù)?,F(xiàn)代的隱寫術(shù)主要依托多媒體文件為載體,將秘密信息嵌入其中,從而隱藏消息的存在性。
JPEG作為目前互聯(lián)網(wǎng)上進行圖像傳輸時最常用的圖像格式,以JPEG圖像作為載體的隱寫研究成為了圖像隱寫領(lǐng)域的熱點。
圖像隱寫經(jīng)過最初的LSB替換隱寫,MLSB替換隱寫等,后來將編碼引入,直到現(xiàn)在發(fā)展到了根據(jù)載體內(nèi)容自適應(yīng)嵌入保持最小失真方法。隨著STCs算法的提出,自適應(yīng)隱寫成為了隱寫術(shù)設(shè)計的熱點。STCs算法將卷積編碼和維特比算法結(jié)合起來,通過針對載體的特性設(shè)計不同的失真模型,并據(jù)此選擇嵌入信息的位置?;赟TC算法優(yōu)秀的編碼性能,自適應(yīng)隱寫的設(shè)計可以側(cè)重于失真代價度量函數(shù)的設(shè)計。
目前JPEG圖像隱寫算法大多是基于圖像的某種統(tǒng)計特性,設(shè)計嵌入函數(shù),使得在嵌入時保持整體改動最小。這樣雖然能提高隱寫效率,保持較好的隱蔽性,但從圖像的紋理方面考慮,上述算法可能在一些紋理特征上比較平滑的地方進行改動,從視覺上帶來細微的變化。同時,在一些紋理復(fù)雜的地方改動較少,沒有利用好復(fù)雜紋理所帶來的良好的隱蔽性。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明針對圖像紋理復(fù)雜度設(shè)計相應(yīng)的失真代價函數(shù),提出了一種基于圖像紋理復(fù)雜度的JPEG圖像隱寫方法。
本發(fā)明所采用的技術(shù)方案是:一種基于紋理復(fù)雜度的JPEG圖像自適應(yīng)隱寫方法,其特征在于:包括隱寫嵌入方法和信息提取方法;
所述隱寫嵌入方法,其具體實現(xiàn)包括以下步驟:
步驟A1:對JPEG圖像解壓縮成灰度圖像,對灰度圖進行分塊;
步驟A2:針對每一個分塊計算出基于每個塊的失真代價;
步驟A3:提取出該JPEG圖像所用的量化表,計算出基于每一個DCT系數(shù)的失真代價;
步驟A4:按照先塊內(nèi)行掃描再塊間行掃描的方式,取出值為非0的DCT系數(shù)中的AC系數(shù)的LSB,形成比特流,然后對此比特流進行置亂操作,得到置亂后的比特流c;
步驟A5:利用STCs編碼和已經(jīng)設(shè)計好的失真代價函數(shù)將要嵌入的隱秘信息比特流m嵌入到比特流c中,得到載密比特流s,將s按照密鑰key進行恢復(fù)原始順序,將s比特流和原DCT系數(shù)相結(jié)合得到載密的DCT系數(shù);
步驟A6:對載密的DCT系數(shù)進行JPEG壓縮標準中的后續(xù)操作形成JPEG圖像,完成秘密信息嵌入過程,得到載密圖像;
所述信息提取方法,其具體實現(xiàn)包括以下步驟:
步驟B1:提取出載密圖像的DCT系數(shù),按照先塊內(nèi)再塊間的行掃描方式得到非0的DCT系數(shù)中的AC系數(shù),然后取其LSB位形成比特流s;
步驟B2:利用密鑰key對比特流s進行置亂,然后結(jié)合STCs編碼的提取過程進行計算得到秘密信息比特流m,完成整個提取過程。
本發(fā)明利用與JPEG圖像DCT塊對應(yīng)的像素塊的灰度共生矩陣來計算分塊的紋理復(fù)雜度,并設(shè)計相應(yīng)的失真代價函數(shù),結(jié)合均勻嵌入的思想,使用STCs編碼將嵌入修改均勻分布到絕對值不同的非零DCT系數(shù)上。本發(fā)明生成的圖像具有比特率低,畫面質(zhì)量高,反檢測能力強等優(yōu)點。
具體實施方式
為了便于本領(lǐng)域普通技術(shù)人員理解和實施本發(fā)明,下面結(jié)合實施例對本發(fā)明作進一步的詳細描述,應(yīng)當理解,此處所描述的實施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供的一種基于紋理復(fù)雜度的JPEG圖像自適應(yīng)隱寫方法,包括隱寫嵌入方法和信息提取方法;
隱寫嵌入方法,其具體實現(xiàn)包括以下步驟:
步驟A1:對JPEG圖像解壓縮成灰度圖像,對該灰度圖進行類似JPEG標準壓縮算法中的8×8分塊;
步驟A2:針對每一個分塊計算出基于每個塊的失真代價;
計算出基于每個塊的失真代價,其計算公式為:
ρent=1/T(B(k))θ (式2)
其中,p(i,j)代表圖像的灰度矩陣第i行第j列元素,B(k)代表某一個N×N的子塊,N為子塊的分塊大小,單位為像素,通常設(shè)置為8;θ為失真代價函數(shù)所設(shè)置的參數(shù),通常設(shè)置為2;T(B(k))即代表這一個子塊的紋理復(fù)雜度,ρent為該子塊的失真代價。
步驟A3:提取出該JPEG圖像所用的量化表,計算出基于每一個DCT系數(shù)的失真代價;
計算出基于每一個DCT系數(shù)的失真代價,其計算公式為:
ρf=q2 (式3)
ρk=ρf·ρent (式4)
其中,q為量化步長,ρk為第k個DCT系數(shù)的失真定義,cij是(i,j)位置的DCT系數(shù);αia和αir是為了滿足相加的性質(zhì)而設(shè)置的調(diào)整參數(shù),dia∈Nia,dir∈Nir,Nia和Nir分別表示cij的塊內(nèi)和塊間相鄰系數(shù);
Nia={ci+,j,ci-,j,ci,j+,ci,j-},Nir={ci+8,j,ci-8,j,ci,j+8,ci,j-8};
若cij可能處于圖像的邊界上,則在鄰近系數(shù)的計算上不存在的點不計入計算;ρij即為對應(yīng)塊的DCT系數(shù)失真代價。
步驟A4:按照先塊內(nèi)行掃描再塊間行掃描的方式,取出值為非0的DCT系數(shù)中的AC系數(shù)的LSB,形成比特流,然后對此比特流進行置亂操作,得到置亂后的比特流c;
步驟A5:利用STCs編碼和已經(jīng)設(shè)計好的失真代價函數(shù)將要嵌入的隱秘信息比特流m嵌入到比特流c中,得到載密比特流s,將s按照密鑰key進行恢復(fù)原始順序,將s比特流和原DCT系數(shù)相結(jié)合得到載密的DCT系數(shù);
步驟A6:對載密的DCT系數(shù)進行熵編碼等JPEG壓縮標準中的后續(xù)操作形成JPEG圖像,完成秘密信息嵌入過程,得到載密圖像;
信息提取方法,其具體實現(xiàn)包括以下步驟:
步驟B1:提取出載密圖像的DCT系數(shù),按照先塊內(nèi)再塊間的行掃描方式得到非0的DCT系數(shù)中的AC系數(shù),然后取其LSB位形成比特流s;
步驟B2:利用密鑰key對比特流s進行置亂,然后結(jié)合STCs編碼的提取過程進行計算得到秘密信息比特流m,完成整個提取過程。
本發(fā)明能夠結(jié)合圖像載體自身特點,自適應(yīng)動態(tài)選擇圖像中紋理較復(fù)雜的區(qū)域進行嵌入,且利用STCs編碼能使圖像改動最小,畫面質(zhì)量得到很好保持,并具有很好的反檢測能力。
應(yīng)當理解的是,本說明書未詳細闡述的部分均屬于現(xiàn)有技術(shù)。
應(yīng)當理解的是,上述針對較佳實施例的描述較為詳細,并不能因此而認為是對本發(fā)明專利保護范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護范圍之內(nèi),本發(fā)明的請求保護范圍應(yīng)以所附權(quán)利要求為準。