[摘 要]為了提升數字多媒體數據的傳輸效能及安全,學者們在壓縮域紛紛提出許多信息隱藏技術。本文提出一個兩階段藏密法,期能達到高藏量又不會造成解壓縮后影像有不合理的失真效果。第一階段采用Wu et al.的區塊編碼策略,在不需額外記錄位即可在譯碼階段判別哪一個區塊為可藏。雖然,此階段不用輔助位所以信息藏量相對較高,影像失真度亦在可容忍的范圍內;然而,受限于可藏區塊為相對平滑,故在不影響影像質量的情況之下,欲再提升藏量的就必須采用可回復式藏密法。因此,本文在第二階段提出植基于區塊內插預測之無失真式可連索編碼位移之隱藏技術,使用內插法對SMVQ區塊預測中的狀態編碼簿,進行編碼字擴充程序,能夠在不影響原影像質量的情況之下,利用大小為2n-1的狀態編碼簿,藏入n個位的秘密信息。根據本研究的實驗證明,此方法較Wu et al.所提出的方法,能夠有效提升大約16%的信息藏入量,同時可以將機密訊息完整取回,并將影像無損還原至第一階段,再藉由Wu et al.的方法取出第一階段的秘密位并解壓縮影像。
[關鍵詞]信息隱藏;藏密學;SMVQ預測法;可逆式信息隱藏技術;直方圖位移法
doi:10.3969/j.issn.1673-0194.2009.15.009
[中圖分類號]TP37[文獻標識碼]A[文章編號]1673-0194(2009)15-0028-03
1 前 言
藏密學(Steganograph)是信息隱藏技術中重要一環,其目標是希望在不被第三者發覺的情況下,讓重要的秘密訊息藏匿在掩護媒體(Cover Media)中而成偽裝媒體(Stego Media)。如此,便可以利用傳送偽裝媒體的過程,一并傳達秘密訊息,同時不被任何人察覺。然而對于應用于影像的藏密技術而言,必須在影像的質量以及秘密訊息的藏量中進行取舍。因為通常藏入較多的秘密訊息時,容易被有心人士發覺并進而加以破解。因此,為了防止影像質量被破壞得太嚴重,故無法藏入過多的信息。如何能夠保持高水平的影像質量,并且能夠達到最大秘密訊息藏量,一直是學者們所追求的目標。此外,為了節省網絡占用太大的帶寬,增加數據傳送效能及降低數據儲存容量,多媒體數據皆需經由壓縮技術先行處理。因此,一般較為常見的藏密技術建構于VQ[1]、SMVQ[2]等壓縮域上發展。
屬于壓縮域的信息隱藏技術為了維持解壓后的影像質量,通常都會結合多種影像壓縮技術對影像進行處理,此時便必須使用一些額外的指示位,記錄每個壓縮區塊所使用的壓縮方法,使接收方獲得壓縮后的影像后,能夠根據這些指示位,正確地分辨,應該使用何種壓縮技術將每個區塊影像還原。然而,這些用來記錄額外指示位的藏匿空間,無疑是一項額外的成本付出。Wu et al. [3]提出了不需使用額外指示位做記錄的信息隱藏技術。此技術藉由更改壓縮影像索引值達到藏入秘密訊息的目的。且藏入秘密訊息后的偽裝影像,信息藏量相當高,同時可以呈現良好的影像質量。
另外一個信息隱藏技術中較為熱門的議題,便是可逆式信息隱藏技術,其特點為使用此技術在掩護影像中藏入秘密訊息進而成為的偽裝影像,當接收方提取出秘密訊息后,可以完整還原為原始影像。直方圖位移法(Histogram Shifting)是Ni et al.[4]在空間域上提出的可逆式信息隱藏技術。其方法通過將掩護影像中的每個像素值進行累計,而將所獲得的數據以直方圖呈現,標示出直方圖內出現最高頻的峰點(Peak Point) 像素值(簡稱P)及沒有出現的像素值稱為零點(Zero Point)(簡稱Z),然后將將[P+1, Z-1]范圍內的像素值全部加1,便能創造P+1作為藏入秘密訊息的空間。當欲藏入的秘密訊息為02時便可藏入P點,當欲藏入的秘密訊息為12時便可以藏P+1點。此方法的總藏量為P點的數量。
因此本研究將上述兩個方法的特點加以結合并改進其缺點,提出能夠有效提升信息藏量的信息隱藏技術。在本研究所使用的方法中,將秘密訊息的藏入動作分為兩個階段。第一階段改良Wu et al.[3]所提出的方法,本文提出在狀態編碼簿(State Codebook)中,使用內插法對狀態編碼簿進行編碼字的擴充的程序,能夠有效地大幅減少,編碼值在經過第二階段藏入秘密訊息的更改后,還原影像時可能會造成的區塊預測失敗的問題。另外第二階段則根據直方圖位移法的概念,提出將直方圖中的每個編碼值皆視為可藏入秘密訊息的峰值,藉此增加秘密訊息的藏量。當然此方法一樣不需記錄額外的指示位,便可無損地將影像還原至第一階段壓縮影像質量,所以信息藏入量將充分地獲得使用。
本文將于第2章探討Wu et al.[3]所提出的方法,接著在第3章介紹本研究所使用的方法,第4章為本研究的實驗結果,最后根據研究結果,于第5章提出結論。
2 文獻探討
Wu et al. [3]所提出的方法,首先必須運用LBG算法[5]對多張訓練影像進行編碼簿訓練,進而產生一本編碼簿,接著再將上述多張訓練影像,分別切割成K個大小相同的不重復區塊,然后再利用公式1,依照目前處理區塊的上方區塊(U)以及左方區塊(L)所提供的邊緣像素值信息,將區塊進行依照類型分類,之后所有的區塊便可以分成4種不同類型,接著再次使用運用LBG算法[5]對每個類型的區塊單獨進行編碼簿訓練,藉此產出C1、C2、C3及C4四本不相同的編碼簿。公式1區塊類型分類方法[3]如下:Type(1):if var(U)>THvar var(L)>THvar;Type(2):if var(U)>THvar var(L) THvar;Type(3):if var(U) THvar var(L)>THvar;Type(4):if var(U) THvar var(L) THvar。
然后將遮蔽影像(Cover Imager) I,以同樣的大小切割成K個大小相同的不重復區塊,再依據每個區塊的變異程度(THvar)不同,將區塊依據不同的類型進行分類。分類后的區塊,將會分成4種不同類型,每種類型會有相對應的編碼簿及編碼策略,屬于第一、二、三類型區塊,將分別使用相對應的C1、C2、C3編碼簿,進行 VQ編碼,同時這3類的區塊中將不會進行秘密訊息的藏入。至于第四類型的區塊,則使用C4編碼簿進行SMVQ編碼,并且更進一步地判斷是否能夠藏入機密訊息。此方法是以SMVQ編碼后的失真度(THsmd),判別該區塊是否適合進行秘密訊息藏入的關鍵。假若區塊(X)進行SMVQ編碼所產生的狀態編碼簿大小為n,與編碼區塊(X)最為相似的編碼字為sw(X)。令d=(X, sw(X)) 表示編碼區塊(X)與sw(X)編碼字的歐幾里得距離,若d>THsmd代表該區塊失真過大,不適合藏入秘密訊息,因此使用C4編碼簿對該進行VQ編碼,并在最后加入一個領導位串(leading bitstream)作為標識,該領導值的二進制值為(n-1),代表此編碼區塊不藏入秘密訊息;反之,若d≤THsmd,則表示區塊的失真在可容忍范圍內,故藏入秘密訊息。
3 本文提出的方法
首先,將狀態編碼簿中的n編碼字,使用內插法進行擴充,擴充成2n-1個編碼字,以提高每個編碼字之間的相似度,如此將可以改善解壓縮影像時失真的問題。接著便可將第一階段藏入機密訊息后的編碼表由左而右、由上而下依序掃描,找出屬于相對平滑的第四種類型區塊之編碼值,并將這些編碼值依其出現頻率進行統計,制作編碼直方圖。以下舉例說明秘密訊息藏入過程。假設圖1(a)表示整張表皆為第四種類型的可藏區塊編碼值,圖1(b)為編碼值表之直方圖例。然后便可根據編碼值由大至小將秘密訊息藏入,編碼值本身為峰值,當秘密訊息為02時,則編碼值不變動;但當欲藏入的秘密訊息為12時,則將編碼值加1。在圖1(a) 共有9個皆為第四種類型的可藏區塊編碼值,因此亦可藏入9個位。假設機密串流為S=(101011101)2,按照此方法將秘密訊息藏入后的編碼值過程如下:首先觀察圖1(b)中最大的編碼值為7,其數量為1,因此我們可以藏入1個位的秘密訊息(1)2。依照上述藏入方法將編碼值7加1,藏入秘密訊息后的編碼表如圖2(b)所示。
圖1 編碼表與相對應的直方圖
圖2 藏入(1)2后的編碼表與相對應的直方圖
接著觀察圖1(b)中第二大的編碼值為6,其數量為1。先將編碼值6之后的所有編碼值皆加1(向右位移),藉以創造藏匿空間,接著依照上述藏入方法操作可以藏入1個位的秘密訊息(0)2,因此編碼值6不變動,藏入秘密訊息后的編碼表如圖3(a)所示。
圖3 藏入(0)2后的編碼表與相對應的直方圖
圖4 藏入(10)2后的編碼表與相對應的直方圖
觀察圖1(b)中第三大的編碼值為5,其數量為2,因此先將編碼值5之后的所有編碼值皆加1以向右位移,藉以創造藏匿空間,接著依照上述藏入方法操作可以藏入2個位的秘密訊息(10)2,如圖4(a)所示。依照此方法對編碼表進行操作,直到編碼表中的最小編碼值完成秘密訊息的藏入,并另行記錄最大編碼值相關信息后,便完成第二階段秘密訊息的藏入。本文先進行直方圖向左位移的方式還原編碼值后并同時提取機密訊息后,再提取Wu et al.的取出秘密訊息程序。先行左而右上而下掃描整張編碼表,找出編碼表內為第四種類型可藏的區塊,并將編碼值依其出現頻率累計,制作為編碼直方圖。如圖5所示,已知編碼表最大編碼值為13,數量為1,可以取出藏入的秘密訊息為(1)2。取出秘密訊息后,再將編碼值13減1進行向左位移還原,如圖6所示。照理接著要處理編碼值11,但是編碼值11為空值(圖6(b)),先將11之右的值全減1,再往左找到編碼值10,其數量為1。此時,可以取回秘密訊息(0)2,并將編碼值10之后的編碼值,全部減1進行位移還原。
圖5 完成二度藏密后的編碼表與相對應直方圖
圖6 取出機密訊息(1)2的編碼表與相對應直方圖
以此方法對編碼表進行操作,直到編碼表中的最小編碼值完成秘密訊息的提取,便完成第一階段秘密訊息的提取,并且將編碼表還原到使用Wu et al. [3]所提出藏入法的編碼串流。
4 實驗結果
本文所進行的實驗過程,首先運用LBG算法[5]對5張512×512的灰階影像分別為Lena、Airplane、Boat、Peppers以及Toy進行編碼簿訓練以產生一本原始編碼簿。然后將4張512×512的灰階影像Lena、Airplane、Peppers及Boat,以4×4為區塊大小,將影像切割成為多個不重疊區塊,接著利用公式1將區塊分類后,再根據區塊的類型分別進行訓練,以產生C1, C2, C3以及C4等4本編碼簿,每一編碼簿的大小為512×512。針對可藏區塊,則是以大小為32的狀態編碼簿來進行Wu et al[3]、結合區塊預測及編碼連索位移之信息隱[6]本文所提出的區塊內插預測法,以便將可藏編碼以連索位移的可回復式藏密方式,將秘密訊息藏入影像中。
經實驗證實,當在影像中藏入18 593個位的數據量時,Lena影像的PSNR值達31.45dB,Airplane影像的PSNR值為30.85dB,Boat影像的PSNR值為30.52dB,Peppers影像的PSNR值為29.54dB。當影像質量PSNR值維持為31.45時,Wu et al[3]的總藏入量為16 000 bits,而沒有使用內插法在SMVQ預測中進行編碼字擴充的編碼連鎖位移信息隱藏技術[6] 總藏入量為18 417 bits,至于本文所提出的方法總藏入量高達18 593 bits。由圖7及圖8的實驗結果可以看出,在相同的PSNR值之下,本文所提出的方法相較于Wu et al[3]可使信息總藏入量提升約16%,相較于沒有運用內插法的連鎖位移信息隱藏技術[6],本研究使用內插法來產生狀態代碼的信息總藏入量可以再提升約1%,由此可知本文所提出的方法較為勝出。
圖7 Lena(上)、Airplane(下),在相同影像質量下,Wu
et al. 的方法[3]與本文提出的方法信息藏量比較
5 結 論
本文所提出的方法,經由改良并強化Wu et al.[3] 所提出的方法后,再通過直方圖連索位移可逆式信息隱藏法,在不需記錄額外的信息,便可完整取回秘密訊息,并擁有能夠完整還原成第一階段的影像的能力,因此本文所提出的方法,不僅擁有令人滿意的解壓縮影像質量,同時擁有較高的信息藏入量。
主要參考文獻
[1] R M Gray. Vector Quantization[J]. IEEE Acoustics, Speech and Sidnal Processing Magazine, 1984,1(2): 4-29.
[2] T Kim. Side Match and Overlap Match Vector Quantizes for Images[J]. IEEE Transactions on Image Processing, 1992, 1(2): 170-185.
[3] M N Wu, C C Lin, and C C Chang. An Embedding Technique Dased upon Block Prediction[J]. Journal of Systems and Software, 2008, 81(9): 1505-1516.
[4] Z Ni, Y Q Shi. et al. Reversible Data Hiding[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2006,16(3): 354-362.
[5] Y Linde, A Buzo, and R M Gray. An Algorithm for Vector Quantizer Design[J]. IEEE Transactions on Communications, 1980, 28(1): 84-85.
[6] 李金鳳,陳昭仁,林冠霆.結合區塊預測及編碼連索位移之信息隱藏技術[C].2009信息管理技術與實務應用發展暨信息人才培育研討會, 臺北: 圣約翰科技大學出版社,2009.