專利名稱:基于連“1”特性的jpeg圖像再次編碼檢測方法
技術領域:
本發(fā)明是一種基于連"1 "特性檢測JPEG圖像是否經(jīng)過再次編碼的方法。該發(fā)明提取JPEG 文件中的連"1 "比例特征量,在不對JPEG圖像進行解碼的條件下檢測圖像是否經(jīng)過再次JPEG 編碼。
背景技術:
JPEG是一種使用廣泛的靜態(tài)圖像編碼格式。檢測JPEG圖像是否經(jīng)過篡改以及檢測JPEG 圖像中是否含有隱蔽信息對信息安全具有重要意義。大多數(shù)圖像篡改方法如下從多幅JPEG 圖像中分割出需要的對象,然后放置在背景JPEG圖像中的合適位置,然后對合成內(nèi)容進行 再次JPEG編碼得到篡改后的JPEG圖像。而JPEG圖像中的信息隱藏則通常在調(diào)整JPEG圖 像的DCT系數(shù)后,進行再次JPEG編碼得到含密的JPEG圖像。由此可見,圖像篡改以及在 圖像中隱藏秘密信息往往要對JPEG圖像進行再次編碼。因此,檢測JPEG圖像是否經(jīng)過再次 編碼對檢測圖像篡改、判別圖像是否含密有重要意義。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對已有技術存在的問題,提供一種基于連"1"特性的JPEG圖像再 次編碼檢測方法,無需對JPEG圖像進行解碼即可判別圖像是否經(jīng)過再一次編碼,實現(xiàn)簡單, 計算效率高。
為達到上述目的,本發(fā)明的構思是
利用JPEG標準中的無損熵編碼的相關特性。JPEG標準中,無損熵編碼由"范式"哈夫 曼編碼實現(xiàn)。"范式"哈夫曼編碼規(guī)定了碼長最短的第一個碼字必須為全"0"而碼長最長的 最后一個碼字必須為全"1"。此外,"范式"哈夫曼編碼還要求如果后一個碼字的碼長與 前一個碼字的碼長相同,后一個碼字由前一個碼字加1得到;如果后一個碼字的碼長與前一 個碼字的碼長不同,后一個碼字由前一個碼字加1并在最右端補一個"0"。假設一個哈夫曼 碼表的最長碼長是8,最長碼長的碼字有兩個,那么最后一個碼字應為"1111 1111B"。并 且可以推出前一個碼字為"1111 1110B",再前一個碼字為"111 1110B"??梢姡瑢τ诖a長 大于6的長碼而言,其前幾比特的通常會由多個連續(xù)的"1"構成;反之,對于碼長小于等于 6的短碼而言,其中不會包含很多"1",出現(xiàn)連"1"的可能性也較小。因此,"范式"哈 夫曼編碼具有碼長越長,連續(xù)"l"的個數(shù)就越多的特點。
如前所述,JPEG圖像的哈夫曼編碼具有碼字越長,連續(xù)"1"的個數(shù)就越多的特性。在 JPEG圖像再次編碼時,為提高壓維率,,會增大JPEG圖像的DCT系數(shù)量化步長,或依據(jù)圖像內(nèi)容重新編制哈夫曼碼表,這樣便會使原始文件中的長碼字變?yōu)槎檀a字。因此,經(jīng)過 再次編碼的JPEG文件中連續(xù)出現(xiàn)多個"1"的可能性也隨之降低。本發(fā)明利用此特性在不對 JPEG圖像進行解碼的前提下,僅統(tǒng)計JPEG壓縮數(shù)據(jù)中的連"1"比例特性來檢測JPEG圖像 是否經(jīng)過重新編碼。實現(xiàn)簡單,計算效率高。 為達到以上目的,本發(fā)明采用如下方案
一種基于連"1"特性的JPEG圖像再次編碼檢測方法,其特征在于利用JPEG壓縮標準中 的"范式"哈夫曼編碼所具有的碼長越長連"1"個數(shù)越多的性質,通過圖像中連"1"比例 特性判斷圖像是否經(jīng)過再次壓縮先搜索JPEG圖像中的壓縮數(shù)據(jù),統(tǒng)計二進制壓縮數(shù)據(jù)中連 續(xù)額2個"1"、連續(xù)6個"1"、連續(xù)7個"1"和連續(xù)8個"1"出現(xiàn)的次數(shù)在"1"的總數(shù)中 所占的比例,以這四個比例作為連"1"比例特征量;將這四個特征量與閾值相比較,判斷該 JPEG圖像是否經(jīng)過再次編碼。
具體檢測步驟為
a. 以二進制形式讀取JPEG圖像文件,搜索壓縮數(shù)據(jù)的開始標志0xFFDA (其二進制形 式為1111 1111 1101 1010 B),將該標志的字節(jié)位置記為根據(jù)JPEG壓縮 標準,此標志后的兩個字節(jié)表示參數(shù)長度/,因此實際JPEG壓縮數(shù)據(jù)的首字節(jié)位置
/7一(iflto為
<formula>formula see original document page 5</formula> (1)
b. 設置4個計數(shù)器C2、 C6、 C7、 C8,分別用于存放壓縮數(shù)據(jù)中連續(xù)2個"1"、連續(xù)6個
"1"、連續(xù)7個"1"、連續(xù)8個"1"出現(xiàn)的次數(shù);設置計數(shù)器S用于記錄二進制壓 縮數(shù)據(jù)中"1"的總數(shù);設置計數(shù)器"用于記錄每個"0"之前連續(xù)"1"的個數(shù);初 始化使5=0, C2=0, C6=0, C7=0, C8=0, w=0;
c. 統(tǒng)計JPEG壓縮數(shù)據(jù)中連"1"次數(shù)C2、 C6、 C7、 C8,同時統(tǒng)計二進制數(shù)據(jù)中的"1" 的總數(shù)S(如圖一所示)以二進制形式從戶—^ to開始讀取數(shù)據(jù),直至JPEG壓縮數(shù)據(jù) 的終止位置0xFFD9 (1111 1111 1101 1001 B),若讀取的數(shù)據(jù)為"1"則"與S同時加 1;若讀取的數(shù)據(jù)為"0"且此時"為2、 6、 7或8,則將"對應的計數(shù)器C 加1 ,同 時"置為零,若讀取的數(shù)據(jù)為"0"且此時"不等于2、 6、 7、 8中的任何一個,則直 接將 置為零;
d. 根據(jù)下式計算4個連"1"比例特征值P2、尸6、 iV戶8;<formula>formula see original document page 5</formula>e.根據(jù)下式由i52、尸6、尸7、尸8得到"2、 "6、 "7、 "s,
<formula>formula see original document page 6</formula>其中<formula>formula see original document page 6</formula>再將《2、 a6 、 "7 、 "8代入下式,得到"
<formula>formula see original document page 6</formula>(7)
若/ >0,則認為該JPEG圖像曾經(jīng)過再次JPEG編碼;若"<0,則認為該JPEG圖像沒有經(jīng)過 再次JPEG編碼。
經(jīng)大量實驗驗證,再次JPEG編碼對A、 P6、戶7、尸s具有顯著影響。JPEG圖像經(jīng)再次壓 縮后尸2的值會明顯大于閾值《2,而尸6、 ^、尸8的值會明顯小于閾值&、 &、 &。因此本
發(fā)明選取尸2、尸6、尸7、尸8作為特征量,選取《2、 X6、《7、《s作為閾值。
本發(fā)明與現(xiàn)有技術相比,具有如下顯而意見的突出實質性特點和顯著優(yōu)點現(xiàn)有的JPEG
圖像經(jīng)過再次編碼的檢測技術很少。通常的方法是需要先將圖像解壓縮到DCT系數(shù)再進行分 析,不僅計算復雜度高,而且必須對JPEG壓縮格式有深入認識到專業(yè)人士才能操作。本發(fā) 明無需對JPEG圖像進行解碼,無需了解JPEG壓縮編碼的編碼方式,只需統(tǒng)計JPEG壓縮數(shù) 據(jù)中的連"l"比例即可判別圖像是否再次壓縮,計算復雜度和操作難度都大大降低。
圖1是本發(fā)明一個實施例的流程框圖。 具體實施方法
技術領域:
本發(fā)明的一個優(yōu)選實施例詳述如下 一種基于連"1"特性的JPEG圖像再次編碼檢測方 法,其特征在于利用JPEG壓縮標準中的"范式"哈夫曼編碼所具有的碼長越長連"1"個數(shù) 越多的性質,通過圖像中連"l"比例特性判斷圖像是否經(jīng)過再次壓縮先搜索JPEG圖像中 的壓縮數(shù)據(jù),統(tǒng)計二進制壓縮數(shù)據(jù)中連續(xù)額2個"1"、連續(xù)6個"1"、連續(xù)7個"1"和連續(xù)8個"1"出現(xiàn)的次數(shù)在"1"的總數(shù)中所占的比例,以這四個比例作為連"1"比例特征量; 將這四個特征量與閾值相比較,判斷該JPEG圖像是否經(jīng)過再次編碼。
以下結合附圖描述本實施例圖像二次壓縮檢査,參見圖1,本檢測方法的具體檢測步驟為-
1. 讀取JPEG文件,得到十六進制數(shù)據(jù),如下所示-
0xFF 0xD8 ...... OxFF OxDA 0x00 OxOC 0x03 0x01 0x00 0x02 Oxll 0x03 0x00
0x00 Ox3F 0x00 0xF7 OxEA 0x28 0xA2 ...... 0x80 0x3F OxFF 0xD9
搜索唯一的JPEG數(shù)據(jù)開始標志OxFFOxDA,該標志后的第一個字節(jié)的地址,g卩0x00
的地址記為JPEG壓縮數(shù)據(jù)起始地址/7jto吋。OxDA后兩個字節(jié),即OxOOOxOC,表示參
數(shù)長度。實際壓縮數(shù)據(jù)的"i地址通過下式計算得到。
ctoa = 加W + OxOOOC (8)
本例中壓縮數(shù)據(jù)的首地址為"0xF7"的地址。
2. 設置計數(shù)器C2、 C6、 C7、 C8, S,"并初始化,使5=0, C2=0, C6=0, C7=0, C8=0, "=0;
3. 將十六進制數(shù)據(jù)轉化為二進制數(shù),從p一Jato的位置開始掃描。當掃描到"O"時,計數(shù)器 "記錄了此前連續(xù)"1"的個數(shù),若"=2、 6、 7、 8,則對應的計數(shù)器C2、 C6、 C7、 C8自 動加l,同時"清零。若n為其他值,則直接將"清零。用S記錄整個掃描過程中"1" 出現(xiàn)的總次數(shù)。連續(xù)掃描直至唯一的終止標志0xFF0xD9出現(xiàn);本例中,"0xF7 0xEA…" 轉化為二進制數(shù)為"11110111 1110 1001 掃描到第一個"0"時,"=4不在2、 6、 7、 8內(nèi),因此直接將"清零,掃描到第二個"O"時,《=6,則Ce自動加l,"清零;連續(xù)掃 描直至終止標志出現(xiàn)。
4. 按照公式(2)計算連"1"出現(xiàn)的概率尸2、 iV尸7、 P8。本例中尸2=0. 262311,尸6=0. 040835, 尸7=0. 022614, _P8=0. 0127355。
5. 將尸2、 A、 P7、尸8分別與閾值《2、 X6、《7、 &比較,得到"2、 a6、 a7、 a8,再由(7)
式得到最終的判決值-。本例中P^K2, P6<K6,P7<K7,P8<K8,因此《2 = 6 = 7= 8=+1, 由(7)式
=2x( + l) + lx( + l) + lx( + l) + lx( + l) = 5>0
因此可以判斷本例中的待測圖像為二次壓縮后的JPEG圖像。
權利要求
1.一種基于連“1”特性的JPEG圖像再次編碼檢測方法,其特征在于利用JPEG壓縮標準中的“范式”哈夫曼編碼所具有的碼長越長連“1”個數(shù)越多的性質,通過圖像中連“1”比例特性判斷圖像是否經(jīng)過再次壓縮先搜索JPEG圖像中的壓縮數(shù)據(jù),統(tǒng)計二進制壓縮數(shù)據(jù)中連續(xù)額2個“1”、連續(xù)6個“1”、連續(xù)7個“1”和連續(xù)8個“1”出現(xiàn)的次數(shù)在“1”的總數(shù)中所占的比例,以這四個比例作為連“1”比例特征量;將這四個特征量與閾值相比較,判斷該JPEG圖像是否經(jīng)過再次編碼。
2. 根據(jù)權利要求1所述的基于連"1 "特性的JPEG圖像再次編碼檢測方法,其特征在于檢測 具體步驟為a. 以二進制形式讀取JPEG圖像文件,搜索壓縮數(shù)據(jù)的開始標志0xFFDA,其二進制形 式為1111 1111 1101 IOIOB,將該標志的字節(jié)位置記為對art,根據(jù)JPEG壓縮標 準,此標志后的兩個字節(jié)表示參數(shù)長度/,因此實際JPEG壓縮數(shù)據(jù)的首字節(jié)位置p^/"to 為<formula>formula see original document page 2</formula> (1)b. 設置4個計數(shù)器C2、 C6、 C7、 G,分別用于存放壓縮數(shù)據(jù)中連續(xù)2個"1"、連續(xù)6 個"1"、連續(xù)7個"1"、連續(xù)8個"1"出現(xiàn)的次數(shù);設置計數(shù)器S用于記錄二進制 壓縮數(shù)據(jù)中"1"的總數(shù);設置計數(shù)器"用于記錄每個"0"之前連續(xù)"1"的個數(shù); 初始化使5=0, C2=0, C6=0, C7-0, C8=0, "=0;c. 統(tǒng)計JPEG壓縮數(shù)據(jù)中連"1"次數(shù)C2、 C6、 C7、 C8,同時統(tǒng)計二進制數(shù)據(jù)中的"1" 的總數(shù)S:以二進制形式從開始讀取數(shù)據(jù),直至JPEG壓縮數(shù)據(jù)的終止位置 0xFFD9 (1111 1111 1101 1001 B),若讀取的數(shù)據(jù)為"1"則"與S同吋加1;若讀取 的數(shù)據(jù)為"0"且此時w為2、 6、 7或8,則將《對應的計數(shù)器C"加1,同時"置為 零,若讀取的數(shù)據(jù)為"0"且此時"不等于2、 6、 7、 8中的任何一個,則直接將"置 為零;d. 根據(jù)下式計算4個連"1"比例特征值P2、P6、P7、P8;<formula>formula see original document page 2</formula>(2)e. 根據(jù)下式由戶2、 P6、 iV Ps得到a、 a6、 a7、 a8,<formula>formula see original document page 2</formula> (3)<formula>formula see original document page 3</formula>其中夂2 = 0.242、《6=0.046、《7=0.027、尺8=0.014,再將《2、 "6 、 "7 、 "8代入下式,/5 = 2a2 + ar6 + a7 + 8 (7) 若/ >0,則認為該JPEG圖像曾經(jīng)過再次JPEG編碼;若〃<0,則認為該JPEG圖像沒有經(jīng)過 再次JPEG編碼。
全文摘要
本發(fā)明是一種基于連“1”特性的JPEG圖像再次編碼檢測方法。它利用JPEG壓縮標準中的“范式”哈夫曼編碼所具有的碼長越長連“1”個數(shù)越多的性質,通過圖像中連“1”比例特性判斷圖像是否經(jīng)過再次壓縮。本發(fā)明先搜索JPEG圖像中的壓縮數(shù)據(jù),統(tǒng)計二進制壓縮數(shù)據(jù)中連續(xù)2個“1”、連續(xù)6個“1”、連續(xù)7個“1”和連續(xù)8個“1”出現(xiàn)的次數(shù)在“1”的總數(shù)中所占的比例,以這4個比例作為連“1”比例特征量。將這四個特征量與閾值相比較,判斷該JPEG圖像是否經(jīng)過再次編碼。本發(fā)明無需對JPEG圖像進行解碼即可判別圖像是否經(jīng)過再次編碼,實現(xiàn)簡單,計算效率高。
文檔編號H04N1/00GK101409759SQ20081020297
公開日2009年4月15日 申請日期2008年11月19日 優(yōu)先權日2008年11月19日
發(fā)明者張新鵬, 王朔中, 軼 陳, 魏為民 申請人:上海大學