陸興 黃方軍
摘? ?要:JPEG(Joint Photographic Experts Group)是目前運(yùn)用最為廣泛的壓縮圖像格式,運(yùn)用可逆信息隱藏技術(shù)對其進(jìn)行原始性和完整性認(rèn)證具有非常重要的意義。文章通過分析JPEG圖像存儲尺寸與系數(shù)分布之間的關(guān)系,提出了一種新的基于二維直方圖修改的JPEG圖像可逆信息隱藏算法。該算法將離散余弦(Discrete Cosine Transform, DCT)系數(shù)對分成七種類型,每一種類型對應(yīng)一種獨(dú)特的映射方式。同時文章還提出了一種新的根據(jù)0系數(shù)量化步長之和排序的塊選擇策略,并將其和頻段選擇結(jié)合起來。實驗結(jié)果表明,我們的方法可有效抑制無效移動,減少嵌入失真,在視覺質(zhì)量以及存儲尺寸保持方面都取得了較好的性能。
關(guān)鍵詞:可逆信息隱藏;JPEG圖像;圖像視覺質(zhì)量;圖像存儲尺寸
1 引言
可逆信息隱藏(Reversible Data Hiding, RDH)是信息隱藏領(lǐng)域一個非常重要的分支,其特點是在正確提取秘密信息的同時還能無損地恢復(fù)原始載體,在軍事、醫(yī)學(xué)、司法等領(lǐng)域得到了廣泛關(guān)注[1]。JPEG是日常生活中使用最為廣泛的一種壓縮圖像格式,因而基于JPEG圖像的可逆信息隱藏研究具有非常重要的應(yīng)用價值。
目前,針對JPEG圖像的可逆信息隱藏算法主要分為三類。一是修改量化表的可逆信息隱藏算法[3-5],二是修改Huffman表的可逆信息隱藏算法[6-9],三是修改量化DCT系數(shù)的可逆信息隱藏算法[10-14]。
(1)基于量化表修改的可逆信息隱藏算法。通過修改量化表來嵌入信息,最早由Fridrich等人[3]提出。為了得到信息嵌入空間,他們將量化步長除2取整,同時將對應(yīng)的量化DCT系數(shù)乘2。最后對修改后的量化DCT系數(shù)進(jìn)行LSB替換從而嵌入信息。Wang等人[5]在此基礎(chǔ)上做了進(jìn)一步優(yōu)化,通過將量化表中的某些量化步長除以整數(shù)k,并將對應(yīng)的量化DCT系數(shù)乘以k,從而得到更多的用于嵌入信息的空間。該方法可以得到較高的嵌入容量以及較好的視覺質(zhì)量,但由于此類方法采用了非標(biāo)準(zhǔn)的量化表,在Huffman編碼時壓縮性能會變差,導(dǎo)致含密圖像的存儲尺寸顯著增加。
(2)基于Huffman表修改的可逆信息隱藏算法。由于JPEG圖像通常只使用了Huffman表中的部分碼元,Mobasseri等人[6]首次提出可以通過部分未使用的碼元來攜帶信息,嵌入信息后載體圖像的存儲尺寸保持不變甚至更小。Qian等人[7]和Qiu等人[8]對Mobasseri算法做了進(jìn)一步改進(jìn),通過構(gòu)造已使用和未使用Huffman碼元之間的優(yōu)化映射,提高了有效載荷,實現(xiàn)了較高的嵌入率。雖然修改Huffman表的可逆信息隱藏算法在嵌入信息后載體圖像的存儲尺寸保持不變甚至更小,但是這種方法的嵌入容量較小并且只能應(yīng)用于用非最優(yōu)Huffman表編碼的JPEG圖像,在實際應(yīng)用中有一定的局限性。
(3)基于量化DCT修改系數(shù)的可逆信息隱藏算法。Xuan等人[10]提出了一種基于直方圖對的可逆信息隱藏算法。Sakai等人[11]對Xuan等人[10]的方法進(jìn)行了改進(jìn),通過自適應(yīng)的選擇JPEG圖像中的平滑區(qū)域嵌入信息,從而得到更好的圖像質(zhì)量。2016年,Huang等人[13]提出了一種新的基于直方圖平移的JPEG圖像可逆信息隱藏算法。該方法中0系數(shù)保持不變,且只有值為±1的DCT交流系數(shù)被選擇用來攜帶信息。同時還采用了一種基于8×8塊中0系數(shù)個數(shù)的塊選擇策略,自適應(yīng)的選擇DCT塊進(jìn)行嵌入。可以實現(xiàn)較高的嵌入容量,同時在圖像視覺質(zhì)量以及文件存儲空間保持方面都取得了較好的性能。Hou等人[14]在Huang等人[13]的基礎(chǔ)上,提出了一種新的基于頻段和子塊相結(jié)合的自適應(yīng)嵌入策略,進(jìn)一步提高了圖像視覺質(zhì)量,并有效降低了圖像尺寸增長。
總體而言,由于比較容易在嵌入容量、視覺質(zhì)量以及圖像存儲空間保持三個方面取得平衡,基于修改量化DCT系數(shù)的可逆信息隱藏算法目前受到的關(guān)注較多。本文提出一種新的基于JPEG圖像二維DCT系數(shù)直方圖平移的可逆信息隱藏算法。實驗結(jié)果表明,相較于已有算法,如Huang等人[13]、Hou等人[14]算法,本文算法在不影響嵌入容量的情況下,在視覺質(zhì)量以及存儲空間保持方面都取得了較好的性能。
2 基于二維直方圖修改的JPEG圖像可逆信息隱藏算法
本節(jié)首先簡要介紹JPEG壓縮標(biāo)準(zhǔn),在此基礎(chǔ)上通過分析JPEG圖像存儲尺寸與DCT系數(shù)分布之間的關(guān)系,提出一種基于JPEG圖像二維DCT系數(shù)直方圖平移的可逆信息隱藏新方法。
2.1 JPEG圖像壓縮標(biāo)準(zhǔn)
JPEG壓縮編解碼流程如圖1所示。JPEG編碼主要包含三個部分,即FDCT(Forward Discrete Cosine Transform)變換、量化以及熵編碼。通過對每個不重疊的8×8塊應(yīng)用二維DCT變換,將原始空間域信號轉(zhuǎn)換為頻域信號。然后根據(jù)量化表對這些獲得的DCT系數(shù)進(jìn)行量化。為了得到更多連續(xù)的0系數(shù),量化后的交流系數(shù)(Alternating Current, AC)以zig-zag掃描順序排列,如圖2所示(左上角第一個點表示DC系數(shù),其余點表示AC系數(shù))。最后,熵編碼獲得壓縮比特流。JPEG解碼是編碼的逆過程,也包含三個部分,即熵解碼、去量化以及IDCT(Inverse Discrete Cosine Transform)變換。
2.2 基于二維直方圖的系數(shù)映射模式
考慮到嵌入容量、視覺質(zhì)量及存儲空間保持等因素,設(shè)計了如圖3所示的二維直方圖系數(shù)對映射模式,圖3中橫縱坐標(biāo)分別代表系數(shù)對中的兩個系數(shù)的值。為了方便解釋,將圖3所示的系數(shù)對劃分為七種類型。其中,類型A-D用于信息嵌入;類型E、類型F用于平移保證可逆性;類型G保持不變。下面詳細(xì)說明信息嵌入過程中每種類型系數(shù)對的具體操作。
2.3 塊選擇策略
如文獻(xiàn)[13]所述,經(jīng)過量化后,平滑塊中的0系數(shù)個數(shù)多于紋理塊中的0系數(shù)個數(shù)。此外,在平滑塊中,大多數(shù)非0系數(shù)的絕對值都很小,而在紋理塊中,非0系數(shù)的絕對值可能較大。因此,塊選擇的主要目的是找到那些0系數(shù)多的8×8塊,將其優(yōu)先用于信息嵌入。另外考慮到壓縮域圖像在反變換回空域圖像時需要進(jìn)行反量化操作,修改量化步長大的系數(shù)將引起較大失真從而降低圖像視覺質(zhì)量。實際中希望被修改的非0系數(shù)對應(yīng)的量化步長盡可能小。因此,本文根據(jù)每個8×8塊中0系數(shù)所對應(yīng)的量化步長之和對塊進(jìn)行排序,并優(yōu)先選擇量化步長之和較大的塊嵌入信息(0系數(shù)量化步長之和較大也就意味著非0系數(shù)量化步長之和較?。?。由圖3可知,在信息嵌入的整個過程中0系數(shù)保持不變,因而根據(jù)該方法進(jìn)行塊排序得到的塊序列在信息嵌入前后保持不變,從而保證了可逆性。
2.4 截止頻段
本文算法中,DC系數(shù)用于嵌入附加信息,AC1至AC62之間的交流系數(shù)用于信息嵌入,每一個塊中DCT系數(shù)都按照zig-zag順序掃描,最多可以得到31對系數(shù)對。如文獻(xiàn)[14]所述,如果所有的頻段均用于信息嵌入,那么可能會產(chǎn)生較多失真。這里通過窮舉搜索的方式確定最優(yōu)截止頻段ACT (1≤T≤63),選定AC1至ACT部分頻段用于信息嵌入(根據(jù)zig-zag順序掃描)。具體嵌入過程中首先根據(jù)待嵌信息的長度確定滿足嵌入容量的截止頻段最小值Tmin,然后在ACTmin到AC62之間采取窮舉搜索的方式,找到對應(yīng)于最大PSNR (Peak Signal-to-Noise Ratio)值的頻段ACT作為最優(yōu)截止頻段。
2.5 信息嵌入
步驟1:對原始JPEG圖像熵解碼得到其量化DCT系數(shù),同時計算每個8×8塊中0系數(shù)量化步長之和,并按照降序排列。
步驟2:根據(jù)步驟1得到的塊序列,隨機(jī)選取16個塊,將其DC系數(shù)的最低有效位抽取出來,作為待嵌信息的一部分。
步驟3:按照圖3所示的映射模式嵌入信息,并依據(jù)2.4所述確定最優(yōu)截止頻段ACT,將系數(shù)兩兩組隊(同一子塊內(nèi)按zig-zag順序),順次完成秘密信息嵌入(包括上一步驟中的16位最低有效位信息)。
步驟4:將最優(yōu)截止頻段信息ACT以及秘密信息的長度L作為附件信息一并嵌入到步驟1中前16個塊中DC系數(shù)的最低有效位中。
步驟5:對信息隱藏后的DCT系數(shù)進(jìn)行熵編碼,生成攜帶秘密信息的JPEG圖像。
2.6 信息提取以及圖像恢復(fù)
步驟1:將含密JPEG圖像熵解碼得到量化DCT系數(shù),同時計算每個8×8塊中0系數(shù)量化步長之和,并按照降序排列。
步驟2:根據(jù)密鑰找到嵌入過程中用到的16個塊,并從其DC系數(shù)的最低有效位中提取附加信息,包括截止頻段信息ACT以及秘密信息的長度L。
步驟3:根據(jù)步驟2得到的附加信息T以及秘密信息的長度L,按照圖3對應(yīng)的逆映射順次提取秘密信息并恢復(fù)系數(shù)對。
步驟4:根據(jù)步驟3提取的秘密信息(前16位),恢復(fù)步驟1得到的選定的16個塊中DC系數(shù)的最低有效位。
步驟5:信息提取完畢后,再對DCT系數(shù)進(jìn)行熵編碼,最終恢復(fù)原始JEPG圖像。
3 實驗結(jié)果及分析
本節(jié)中,通過實驗結(jié)果分別從視覺質(zhì)量以及文件存儲尺寸增長兩方面對本文算法的性能進(jìn)行分析。為了評估該算法的性能,選擇了兩種目前最先進(jìn)的基于直方圖平移的JPEG圖像可逆信息隱藏算法進(jìn)行比較,對比算法包括Huang等人[13]和Hou等人[14]的算法。嵌入過程中秘密信息都是隨機(jī)生成,并且測試圖像都是采用標(biāo)準(zhǔn)Huffman編碼表壓縮生成的JPEG圖像。同時,本實驗中選擇的測試圖像是從USC-SIPI數(shù)據(jù)庫中挑選的大小為512×512的6張圖片并使用IJG工具轉(zhuǎn)換得到了質(zhì)量因子(Quality Factor, QF)分別為70、80、90、100的JPEG圖像,如圖4所示。
4 結(jié)束語
本文通過分析JPEG圖像存儲尺寸與DCT系數(shù)之間的關(guān)系,提出了一種新的基于二維直方圖修改的JPEG圖像可逆信息隱藏算法。結(jié)合新的自適應(yīng)塊選擇及頻段選擇策略,能夠有效減少失真。實驗結(jié)果表明,本文提出的JPEG圖像二維直方圖修改可逆信息隱藏算法與目前主流算法相比在含密圖像的視覺質(zhì)量以及存儲尺寸保持方面都取得了較好的性能。
基金項目:
1.國家自然科學(xué)基金(項目編號: 61772572);
2.中韓國際交流合作項目(項目編號: 61811540409);
3.廣東省自然科學(xué)基金(項目編號:2017A030313366)。
參考文獻(xiàn)
[1] SHI Y Q, LI X L, ZHANG X P, et al. Reversible data hiding: Advances in the past two decades [J]. IEEE Access, 2016, 4: 3210-3237.
[2] 楊翠翠,邵大鵬,周濤,呂美敬.分布式云安全存儲系統(tǒng)的研究與應(yīng)用[J].網(wǎng)絡(luò)空間安全,2019,10(01):47-50.
[3] FRIDRICH J, GOLJAN M, Du R. Lossless data embedding for all image formats [J]. Proceedings of SPIE Security and Watermarking of Multimedia Contents, 2002, 4675: 572-583.
[4] CHANG C C, LIN C C, TSENG C S, et al. Reversible hiding in DCT-based compressed images [J]. Information Sciences, 2007, 177(13): 2768-2786.