專利名稱:一種jpeg圖像自嵌入數字水印的生成及認證方法
技術領域:
本發明屬于圖像安全認證技術領域,特別涉及一種JPEG圖像自嵌入數字水印的 生成及認證方法。
背景技術:
隨著計算機網絡技術的飛速發展與信息媒體的數字化,數字產品的內容保護問題 顯得尤為重要,而近年來發展起來的脆弱性水印技術為數字產品的內容保護提供了技術保 障。脆弱性水印屬于數字水印的一個分支,除了具有水印的基本特征,如不可感知性、安全 性等,還具有檢測篡改的能力,并且水印的提取不需要原始圖像。目前對該領域的研究主要 包括脆弱性水印、半脆弱性水印、自嵌入水印等幾個層次,而自嵌入水印是將圖像本身作為 水印嵌入到圖像中的技術,這不僅可以對圖像的內容進行驗證,而且可以部分恢復被篡改 或剪貼的區域。當然,不可能將完整的圖像內容信息嵌入到圖像本身。因此,為了降低圖像 的內容信息,要么使用有損壓縮(比如JPEG壓縮),要么只保留圖像的重要信息,如邊緣 fn息等。目前現有的自嵌入水印使用類似于JPEG壓縮過程的算法,其基本原理是將圖像 按8X8大小進行分塊,對每塊執行如下操作先進行DCT變換,然后對DCT系數按50%的 質量因子進行量化,最后將量化后的系數按給定的位圖矩陣進行編碼并將之保存到相應塊 的最不重要信息位(Least Significant Bit,LSB)中。這樣的水印方案由于使用了位圖矩 陣,對于那些DCT系數值的比特位數大于位圖矩陣中相應的比特位時,恢復后的圖像就會 造成失真現象,因此只能對某些特定的圖像進行操作,同時只限于使用小于等于50%的質 量因子對DCT系數進行量化。所以,在實際應用當中受到一定的限制。
發明內容
為了克服上述現有技術的不足,本發明的目的在于提出一種JPEG圖像自嵌入數 字水印的生成及認證方法,不僅不需要受限的位圖矩陣,而且可以使用任何的質量因子進 行量化,不但能檢測到圖像被篡改或損壞的區域,而且可以恢復被保護圖像丟失的信息。為了實現上述目的,本發明采用的技術方案如下一種JPEG圖像自嵌入數字水印的生成方法,包括數字水印信號產生過程,數字水 印嵌入過程和數字水印提取過程。數字水印信號產生過程的具體方法如下A1.將一個JPEG圖像分成四個8 X 8圖像塊,然后縮小為一個8 X 8圖像塊,對縮小 后的圖像塊進行DCT變換,并用質量因子為50的量化表對DCT系數進行量化;A2.對量化后的DCT系數用定長分組編碼法編碼,產生所述圖像塊的水印信號,再 對所有的圖像塊進行量化和編碼;A3.每個8X8圖像塊的碼長取40比特,對整幅圖像的水印信號進行加密處理,產 生用于自嵌入的水印信號mi;
數字水印嵌入過程的具體方法如下將四個8X8塊h的水印信息nii嵌入到另外 四個8X8圖像塊bi+p中,具體為,讀取圖像塊bi+p的DCT系數,然后將水印mi嵌入到塊bi+p 的低頻DCT系數上,得到mi+p,其中,p表示塊bi+p對塊h的偏移距離,p為圖像尺度的三分 之一,嵌入公式如下
Coef+1 If Coef > 0 and Mod{Coef, 2)關 m Coef = Coef -1 If Coef < 0 and Mod{Coef,( 1)
.Coef 其他其中,Coef為嵌入水印前圖像塊bi+p的DCT系數,Coef ‘為嵌入水印后bi+p的DCT 系數,Mod為取余運算;數字水印提取過程的具體方法如下讀取含水印的JPEG圖像的DCT系數,將DCT 系數以四個8X8圖像塊為單位提取水印,提取水印的步驟為B1.對含水印的DCT系數按如下公式提取水印,四個8X8圖像塊共提取40比特水 印信號m,nii = Mod (Coef',2) ;(2)B2.對提取的40比特水印叫進行分組解碼,還原成DCT系數,再進行DCT反變換, 得到一個8X8的灰度圖像。一種JPEG圖像自嵌入數字水印的認證方法,包含篡改檢測與修復過程,包括如下 步驟C1.讀取等待認證的JPEG圖像y的DCT系數,并將其劃分成四個一組的8X8DCT ±夬,計為(31,(2,...,(^,從每四塊8\8001系數的低頻系數中提取水印111',對m'進行解密 后,得到原始嵌入的水印mi -Dyirri^ ;C2.縮小所述步驟C1劃分的四個一組的8X8DCT塊,得到圖像塊,對 每個<進行DCT變換,用質量因子為50的量化表對DCT系數進行量化,用定長分組編碼法對 其編碼,得到水印信號C3.比較嵌入后的水印mi+p和從圖像DCT系數中提取的水印Wi 若力與叫+1)的差值 小于特定門限值,則認為塊Ci和ci+p均未改動;反之,若&與mi+p的差值大于特定門限值, 則認為塊Ci和ci+p中至少有一個被改動了 ;C4.若檢測出塊Ci有篡改,則對未被改動的塊ci+p中的水印信息mi+p進行分組解 碼,逆量化,和DCT反變換,近似地恢復被篡改過的圖像塊Ci。其中,定長分組編碼法具體為將數值按它的絕對值的大小分成若干組,每組的 數據分成兩個部分,第一部分是組號,第二部分是數值在組中的位置,即下標,對不同的組 號分配不同的碼長來表示數值在表中的位置,然后根據不同的碼長對該組內的數據進行編碼。本發明與現有技術相比所具有的優點是(1)本發明采用定長分組編碼法,與現有的等長編碼相比較,在保證相同圖像質量 的前提下,采用定長分組編碼法的碼長是等長編碼碼長的70%左右。如果平均到每個量化
5塊,則采用分組編碼法的碼長比等長編碼碼長平均短20比特左右;(2)本發明不僅不需要受限的位圖矩陣,而且可以使用任何的質量因子進行量 化;(3)本發明在進行完整性驗證時不需要原始圖像,不但能夠對篡改區域進行精確 定位,而且能對篡改區域進行修復。
圖1-1是本發明自嵌入數字水印的產生及嵌入示意圖;圖1-2是本發明自嵌入數字水印的篡改檢測及修復流程圖;圖2是本發明自嵌入數字水印的篡改檢測及修復具體實例示意圖; 圖3是定長分組編碼法中的三位組號的分組編碼表;圖4是定長分組編碼法中的二位組號的分組編碼表。
具體實施例方式本發明的一種JPEG圖像自嵌入數字水印的生成及認證方法,整體包括數字水印 的生成和數字水印的認證兩大部分。JPEG圖像自嵌入數字水印的生成方法,包括數字水印信號產生過程,數字水印嵌 入過程和數字水印提取過程。數字水印信號產生過程的具體方法如下A1.將一個JPEG圖像分成四個8 X 8圖像塊,然后縮小為一個8 X 8圖像塊,對縮小 后的圖像塊進行DCT變換,并用質量因子為50的量化表對DCT系數進行量化;A2.對量化后的DCT系數用定長分組編碼法編碼,產生所述圖像塊的水印信號,再 對所有的圖像塊進行量化和編碼;A3.每個8X8圖像塊的碼長取40比特,對整幅圖像的水印信號進行加密處理,產 生用于自嵌入的水印信號mi;數字水印嵌入過程的具體方法如下將四個8X8塊h的水印信息nii嵌入到另外 四個8X8圖像塊bi+p中,具體為,讀取圖像塊bi+p的DCT系數,然后將水印mi嵌入到塊bi+p 的低頻DCT系數上,得到mi+p,其中,p表示塊bi+p對塊bi的偏移距離,p為圖像尺度的三分 之一,嵌入公式如下
Coef +1 If Coef > 0 and ModiCoef, Coef = Coef -1 If Coef < 0 and ModiCoef,( 1)
.Coef 其他其中,Coef為嵌入水印前圖像塊bi+p的DCT系數,Coef ‘為嵌入水印后bi+p的DCT 系數,Mod為取余運算;該方法相當于將40比特的數據嵌入到四個8X8的DCT塊中,每個 8X8的DCT塊只需嵌入10比特數據,實際平均只需改動5個DCT系數就可嵌入10比特數 據,因此,嵌入水印的圖像失真度非常小,峰值信噪比大都在40左右。水印信號的產生及嵌 入示意圖如圖1-1所示。數字水印提取過程是嵌入算法的逆過程,具體方法如下讀取含水印的JPEG圖像的DCT系數,將DCT系數以四個8X8圖像塊為單位提取水印,提取水印的步驟為
Bi.對含水印的DCT系數按如下公式提取水印,四個8X8圖像塊共提取40比特水 印信號mi <formula>formula see original document page 7</formula>
B2.對提取的40比特水印Hii進行分組解碼,還原成DCT系數,再進行DCT反變換, 得到一個8X8的灰度圖像。JPEG圖像自嵌入數字水印的認證方法,包含篡改檢測與修復過程,流程參看圖 1-2,包括如下步驟Cl.讀取等待認證的JPEG圖像y的DCT系數,并將其劃分成四個一組的8X8DCT ±夬,計為(31,(2,...,(^,從每四塊8\8001系數的低頻系數中提取水印111',對m'進行解密 后,得到原始嵌入的水印<formula>formula see original document page 7</formula>
C2.縮小所述步驟Cl劃分的四個一組的8X8DCT塊,得到圖像塊C;,C2,...,C;,對
每個C;進行DCT變換,用質量因子為50的量化表對DCT系數進行量化,用定長分組編碼法對 其編碼,得到水印信號C3.比較嵌入后的水印mi+p和從圖像DCT系數中提取的水印Wi 若力與叫+1)的差值 小于特定門限值,則認為塊Ci和Ci+P均未改動;反之,若Wi與mi+p的差值大于特定門限值, 則認為塊Ci和ci+p中至少有一個被改動了,具體需要參考mi+p和Wi的情況而定;C4.若檢測出塊Ci有篡改,可以對未被改動的塊ci+p中的水印信息叫+1)進行分組 解碼,逆量化,和DCT反變換,最終可以近似地恢復被篡改過的圖像塊Ci。本發明能夠對攻擊區域進行準確的定位,鑒于嵌入的水印信息位有限,修復的圖 像為原圖的縮小圖像,從而也可以鑒別圖像的真偽,同時原圖的原貌也可以通過修復后的 縮小圖像得知。下面以當前塊Bl為例,詳細說明如何判斷Bl是否被篡改及其修復過程。 設遠距離的4塊圖像為B2 (Bi和B2之間的距離為p,距離ρ —般為圖像尺度的三分之一)。 假設Β0、Bi、Β2、Β3之間的關系如圖2所示,即有如下關系BO的水印=Β3的內容(表示在BO的DCT系數中存放Β3的內容(指對Β3縮小后 按圖1-1生成的水印比特流),以下同);B1的水印=BO的內容;Β2的水印=Bl的內容;Β3的水印=Β2的內容。則圖像的檢測及修復過程如下步驟1 按如下準則判斷Bl是否被篡改如果Bl的內容與Β2的水印不一致(誤差范圍大于某個閾值),且Β2的內容與Β3 的水印一致,則說明Bl的內容損壞。如果Bl的水印與BO的內容不一致,且BO的LSB (最不重要信息位)與Β3的內容 一致,則說明Bl的水印損壞。步驟2 如果Bl的內容及水印均被篡改,則按如下方法進行修復(修復時作如下 假設如果某塊的內容是好的,則它的水印也是好的,反之,如果某塊的水印是好的,則它的內容也是好的)如果Bl的內容損壞,則利用B2的水印修復。由于本發明只修復縮小后的圖像,因此如果Bl的水印損壞,則不加修復。由于B0、Bi、B2、B3之間的距離是p,因此,在實際應用中,被篡改的區域范圍限制 在P之內。對于本發明來說,對圖像的編碼是最關鍵的一步,因為如果編碼過長,必然增加嵌 入到圖像的數據量,從而引起圖像的失真,如果編碼過短,則恢復出來的圖像效果很差。本 發明采用定長分組編碼法,具體是將數值按它的絕對值的大小分成若干組,每組的數據分 成兩個部分,第一部分是組號,第二部分是數值在組中的位置,即下標。組號是由多位二進 制碼組成,如用3位二進制碼表示組號,則組號共有7個,分別是000,001,010,…,111。對 不同的組號,分配不同的碼長來表示數值在表中的位置。對000組分配的碼長是0位,它只 能對數據“0”編碼,對001組分配的碼長是1位,它能對數據“_1、1”編碼,對010組的分配 碼長是2位,它能對數據“_3、_2、2、3”進行編碼,依次類推,對111組分配的碼長是7位,它 能對數據“-127,…-64,64,…127”進行編碼。用定長分組編碼對數據編碼,每個碼有兩部分組成組號加位置下標,組號是定長 的,位置下標是可變的,從上面的分析可知,絕對值越小的數,需要的碼長越短,而絕對值越 大的數,需要的碼位越多。這一特點與自嵌入水印的編碼要求相符合。定長分組編碼表的 構造如圖3和圖4所示。編碼和解碼的具體過程為對于三位或二位分組編碼表,JPEG量化系數值χ的組內下標計算公式為
<formula>formula see original document page 8</formula>其中,η為組內編號。例如對某個JPEG量化系數值χ =-25,由于χ的值是-25, 屬于第5組,組號為101,用公式(3)計算得到,-25在第5組下標的位置是第7個,下標編 碼為00111,因此,對χ的分組編碼為(101,00111)。如果某個系數的絕對值大于分組編碼 表所能編碼的范圍(這種情況出現的概率不會超過5%,見上面論述),則用分組編碼表所 能編碼的最大值對其編碼。解碼時,計算JPEG量化系數值χ的公式如下
<formula>formula see original document page 8</formula>其中η為組號,y為組內的下標值。例如解碼二進制比特流0110111101011101101101100011101101L···.如果確認是3位分組編碼,則先抽取3比特數據011,得知組號值為η = 3,然后連 續提取后面的3個比特數據011,該值就是下標值y = 3,利用公式(4)計算出量化系數值 χ = -4。
如果確認是2位分組編碼,則先抽取2比特數據01,得知組號值為η = 1,然后只 需提取后面的ι位比特數據1,該值就是下標值y = 1,利用公式(4)計算出量化系數值X =1。
按照這種方法解碼,直至比特流全部解完為止。
權利要求
一種JPEG圖像自嵌入數字水印的生成方法,包括數字水印信號產生過程,數字水印嵌入過程和數字水印提取過程,其特征在于,所述數字水印信號產生過程的具體方法如下A1.將一個JPEG圖像分成四個8×8圖像塊,然后縮小為一個8×8圖像塊,對縮小后的圖像塊進行DCT變換,并用質量因子為50的量化表對DCT系數進行量化;A2.對量化后的DCT系數用定長分組編碼法編碼,產生所述圖像塊的水印信號,再對所有的圖像塊進行量化和編碼;A3.每個8×8圖像塊的碼長取40比特,對整幅圖像的水印信號進行加密處理,產生用于自嵌入的水印信號mi;所述數字水印嵌入過程的具體方法如下將四個8×8塊bi的水印信息mi嵌入到另外四個8×8圖像塊bi+p中,具體為,讀取圖像塊bi+p的DCT系數,然后將水印mi嵌入到塊bi+p的低頻DCT系數上,得到mi+p,其中,p表示塊bi+p對塊bi的偏移距離,p為圖像尺度的三分之一,嵌入公式如下其中,Coef為嵌入水印前圖像塊bi+p的DCT系數,Coef′為嵌入水印后bi+p的DCT系數,Mod為取余運算;所述的數字水印提取過程的具體方法如下讀取含水印的JPEG圖像的DCT系數,將DCT系數以四個8×8圖像塊為單位提取水印,提取水印的步驟為B1.對含水印的DCT系數按如下公式提取水印,四個8×8圖像塊共提取40比特水印信號mimi=Mod(Coef′,2);(2)B1.對提取的40比特水印mi進行分組解碼,還原成DCT系數,再進行DCT反變換,得到一個8×8的灰度圖像。FSA00000133502200011.tif
2.根據權利要求1所述的JPEG圖像自嵌入數字水印的生成方法,其特征在于,所述定 長分組編碼法將數值按它的絕對值的大小分成若干組,每組的數據分成兩個部分,第一部 分是組號,第二部分是數值在組中的位置,即下標,對不同的組號分配不同的碼長來表示數 值在表中的位置,然后根據不同的碼長對該組內的數據進行編碼。
3.—種JPEG圖像自嵌入數字水印的認證方法,其特征在于,包含篡改檢測與修復過 程,包括如下步驟C1.讀取等待認證的JPEG圖像y的DCT系數,并將其劃分成四個一組的8 X 8DCT ±夬,計 為(31,(2,...,(^,從每四塊8\8001系數的低頻系數中提取水印111',對m'進行解密后,得到原始嵌入的水印%;C2.縮小所述步驟(1劃分的四個一組的8\8001塊,得到圖像塊<^,^2,...,4,對每個 <進行DCT變換,用質量因子為50的量化表對DCT系數進行量化,用定長分組編碼法對其編 碼,得到水印信號C3.比較嵌入后的水印mi+p和從圖像DCT系數中提取的水印若w,與m1+p的差值小于特定門限值,則認為塊Ci和ci+p均未改動;反之,若與mi+p的差值大于特定門限值,則 認為塊Ci和ci+p中至少有一個被改動了 ;C4.若檢測出塊Ci有篡改,可以對未被改動的塊ci+p中的水印信息mi+p進行分組解碼, 逆量化,和DCT反變換,最終可以近似地恢復被篡改過的圖像塊Ci。
4.根據權利要求3任意一項所述的JPEG圖像自嵌入數字水印的認證方法,其特征在 于,所述定長分組編碼法將數值按它的絕對值的大小分成若干組,每組的數據分成兩個部 分,第一部分是組號,第二部分是數值在組中的位置,即下標,對不同的組號分配不同的碼 長來表示數值在表中的位置,然后根據不同的碼長對該組內的數據進行編碼。
全文摘要
本發明涉及圖像安全認證技術領域,公開的是一種JPEG圖像自嵌入數字水印的生成及認證方法將被保護的JPEG圖像縮小四分之一,應用定長分組編碼法對其進行編碼,將編碼作為水印嵌入到被保護圖像的DCT系數低頻分量上。如果對含水印的JPEG圖像進行篡改、替換等惡意攻擊,根據提取的水印與含水印的圖像進行比對,就可精確地確定篡改區,并且可以近似地恢復出被篡改區域,恢復出的近似圖像是原圖像的四分之一。本發明在分析JPEG系數統計特性的基礎上取得了很好的編碼效果,不僅不需要受限的位圖矩陣,而且可以使用任何的質量因子進行量化。
文檔編號H04N7/26GK101835049SQ201010183658
公開日2010年9月15日 申請日期2010年5月24日 優先權日2010年5月24日
發明者黃繼風 申請人:上海師范大學