基于连“1”特性的jpeg图像再次编码检测方法

文档序号:7924275阅读:236来源:国知局
专利名称:基于连“1”特性的jpeg图像再次编码检测方法
技术领域
本发明是一种基于连"1 "特性检测JPEG图像是否经过再次编码的方法。该发明提取JPEG 文件中的连"1 "比例特征量,在不对JPEG图像进行解码的条件下检测图像是否经过再次JPEG 编码。
背景技术
JPEG是一种使用广泛的静态图像编码格式。检测JPEG图像是否经过篡改以及检测JPEG 图像中是否含有隐蔽信息对信息安全具有重要意义。大多数图像篡改方法如下从多幅JPEG 图像中分割出需要的对象,然后放置在背景JPEG图像中的合适位置,然后对合成内容进行 再次JPEG编码得到篡改后的JPEG图像。而JPEG图像中的信息隐藏则通常在调整JPEG图 像的DCT系数后,进行再次JPEG编码得到含密的JPEG图像。由此可见,图像篡改以及在 图像中隐藏秘密信息往往要对JPEG图像进行再次编码。因此,检测JPEG图像是否经过再次 编码对检测图像篡改、判别图像是否含密有重要意义。

发明内容
本发明的目的在于针对已有技术存在的问题,提供一种基于连"1"特性的JPEG图像再 次编码检测方法,无需对JPEG图像进行解码即可判别图像是否经过再一次编码,实现简单, 计算效率高。
为达到上述目的,本发明的构思是
利用JPEG标准中的无损熵编码的相关特性。JPEG标准中,无损熵编码由"范式"哈夫 曼编码实现。"范式"哈夫曼编码规定了码长最短的第一个码字必须为全"0"而码长最长的 最后一个码字必须为全"1"。此外,"范式"哈夫曼编码还要求如果后一个码字的码长与 前一个码字的码长相同,后一个码字由前一个码字加1得到;如果后一个码字的码长与前一 个码字的码长不同,后一个码字由前一个码字加1并在最右端补一个"0"。假设一个哈夫曼 码表的最长码长是8,最长码长的码字有两个,那么最后一个码字应为"1111 1111B"。并 且可以推出前一个码字为"1111 1110B",再前一个码字为"111 1110B"。可见,对于码长 大于6的长码而言,其前几比特的通常会由多个连续的"1"构成;反之,对于码长小于等于 6的短码而言,其中不会包含很多"1",出现连"1"的可能性也较小。因此,"范式"哈 夫曼编码具有码长越长,连续"l"的个数就越多的特点。
如前所述,JPEG图像的哈夫曼编码具有码字越长,连续"1"的个数就越多的特性。在 JPEG图像再次编码时,为提高压維率,,会增大JPEG图像的DCT系数量化步长,或依据图像内容重新编制哈夫曼码表,这样便会使原始文件中的长码字变为短码字。因此,经过 再次编码的JPEG文件中连续出现多个"1"的可能性也随之降低。本发明利用此特性在不对 JPEG图像进行解码的前提下,仅统计JPEG压縮数据中的连"1"比例特性来检测JPEG图像 是否经过重新编码。实现简单,计算效率高。 为达到以上目的,本发明采用如下方案
一种基于连"1"特性的JPEG图像再次编码检测方法,其特征在于利用JPEG压缩标准中 的"范式"哈夫曼编码所具有的码长越长连"1"个数越多的性质,通过图像中连"1"比例 特性判断图像是否经过再次压缩先搜索JPEG图像中的压縮数据,统计二进制压縮数据中连 续额2个"1"、连续6个"1"、连续7个"1"和连续8个"1"出现的次数在"1"的总数中 所占的比例,以这四个比例作为连"1"比例特征量;将这四个特征量与阈值相比较,判断该 JPEG图像是否经过再次编码。
具体检测步骤为
a. 以二进制形式读取JPEG图像文件,搜索压縮数据的开始标志0xFFDA (其二进制形 式为1111 1111 1101 1010 B),将该标志的字节位置记为根据JPEG压縮 标准,此标志后的两个字节表示参数长度/,因此实际JPEG压縮数据的首字节位置
/7一(iflto为
<formula>formula see original document page 5</formula> (1)
b. 设置4个计数器C2、 C6、 C7、 C8,分别用于存放压缩数据中连续2个"1"、连续6个
"1"、连续7个"1"、连续8个"1"出现的次数;设置计数器S用于记录二进制压 縮数据中"1"的总数;设置计数器"用于记录每个"0"之前连续"1"的个数;初 始化使5=0, C2=0, C6=0, C7=0, C8=0, w=0;
c. 统计JPEG压缩数据中连"1"次数C2、 C6、 C7、 C8,同时统计二进制数据中的"1" 的总数S(如图一所示)以二进制形式从户—^ to开始读取数据,直至JPEG压縮数据 的终止位置0xFFD9 (1111 1111 1101 1001 B),若读取的数据为"1"则"与S同时加 1;若读取的数据为"0"且此时"为2、 6、 7或8,则将"对应的计数器C 加1 ,同 时"置为零,若读取的数据为"0"且此时"不等于2、 6、 7、 8中的任何一个,则直 接将 置为零;
d. 根据下式计算4个连"1"比例特征值P2、尸6、 iV户8;<formula>formula see original document page 5</formula>e.根据下式由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图像曾经过再次JPEG编码;若"<0,则认为该JPEG图像没有经过 再次JPEG编码。
经大量实验验证,再次JPEG编码对A、 P6、户7、尸s具有显著影响。JPEG图像经再次压 縮后尸2的值会明显大于阈值《2,而尸6、 ^、尸8的值会明显小于阈值&、 &、 &。因此本
发明选取尸2、尸6、尸7、尸8作为特征量,选取《2、 X6、《7、《s作为阈值。
本发明与现有技术相比,具有如下显而意见的突出实质性特点和显著优点现有的JPEG
图像经过再次编码的检测技术很少。通常的方法是需要先将图像解压縮到DCT系数再进行分 析,不仅计算复杂度高,而且必须对JPEG压縮格式有深入认识到专业人士才能操作。本发 明无需对JPEG图像进行解码,无需了解JPEG压縮编码的编码方式,只需统计JPEG压缩数 据中的连"l"比例即可判别图像是否再次压縮,计算复杂度和操作难度都大大降低。


图1是本发明一个实施例的流程框图。 具体实施方法
技术领域
本发明的一个优选实施例详述如下 一种基于连"1"特性的JPEG图像再次编码检测方 法,其特征在于利用JPEG压縮标准中的"范式"哈夫曼编码所具有的码长越长连"1"个数 越多的性质,通过图像中连"l"比例特性判断图像是否经过再次压縮先搜索JPEG图像中 的压縮数据,统计二进制压縮数据中连续额2个"1"、连续6个"1"、连续7个"1"和连续8个"1"出现的次数在"1"的总数中所占的比例,以这四个比例作为连"1"比例特征量; 将这四个特征量与阈值相比较,判断该JPEG图像是否经过再次编码。
以下结合附图描述本实施例图像二次压缩检査,参见图1,本检测方法的具体检测步骤为-
1. 读取JPEG文件,得到十六进制数据,如下所示-
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数据开始标志OxFFOxDA,该标志后的第一个字节的地址,g卩0x00
的地址记为JPEG压缩数据起始地址/7jto吋。OxDA后两个字节,即OxOOOxOC,表示参
数长度。实际压縮数据的"i地址通过下式计算得到。
ctoa = 加W + OxOOOC (8)
本例中压缩数据的首地址为"0xF7"的地址。
2. 设置计数器C2、 C6、 C7、 C8, S,"并初始化,使5=0, C2=0, C6=0, C7=0, C8=0, "=0;
3. 将十六进制数据转化为二进制数,从p一Jato的位置开始扫描。当扫描到"O"时,计数器 "记录了此前连续"1"的个数,若"=2、 6、 7、 8,则对应的计数器C2、 C6、 C7、 C8自 动加l,同时"清零。若n为其他值,则直接将"清零。用S记录整个扫描过程中"1" 出现的总次数。连续扫描直至唯一的终止标志0xFF0xD9出现;本例中,"0xF7 0xEA…" 转化为二进制数为"11110111 1110 1001 扫描到第一个"0"时,"=4不在2、 6、 7、 8内,因此直接将"清零,扫描到第二个"O"时,《=6,则Ce自动加l,"清零;连续扫 描直至终止标志出现。
4. 按照公式(2)计算连"1"出现的概率尸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”个数越多的性质,通过图像中连“1”比例特性判断图像是否经过再次压缩先搜索JPEG图像中的压缩数据,统计二进制压缩数据中连续额2个“1”、连续6个“1”、连续7个“1”和连续8个“1”出现的次数在“1”的总数中所占的比例,以这四个比例作为连“1”比例特征量;将这四个特征量与阈值相比较,判断该JPEG图像是否经过再次编码。
2. 根据权利要求1所述的基于连"1 "特性的JPEG图像再次编码检测方法,其特征在于检测 具体步骤为a. 以二进制形式读取JPEG图像文件,搜索压縮数据的开始标志0xFFDA,其二进制形 式为1111 1111 1101 IOIOB,将该标志的字节位置记为对art,根据JPEG压縮标 准,此标志后的两个字节表示参数长度/,因此实际JPEG压缩数据的首字节位置p^/"to 为<formula>formula see original document page 2</formula> (1)b. 设置4个计数器C2、 C6、 C7、 G,分别用于存放压縮数据中连续2个"1"、连续6 个"1"、连续7个"1"、连续8个"1"出现的次数;设置计数器S用于记录二进制 压縮数据中"1"的总数;设置计数器"用于记录每个"0"之前连续"1"的个数; 初始化使5=0, C2=0, C6=0, C7-0, C8=0, "=0;c. 统计JPEG压縮数据中连"1"次数C2、 C6、 C7、 C8,同时统计二进制数据中的"1" 的总数S:以二进制形式从开始读取数据,直至JPEG压縮数据的终止位置 0xFFD9 (1111 1111 1101 1001 B),若读取的数据为"1"则"与S同吋加1;若读取 的数据为"0"且此时w为2、 6、 7或8,则将《对应的计数器C"加1,同时"置为 零,若读取的数据为"0"且此时"不等于2、 6、 7、 8中的任何一个,则直接将"置 为零;d. 根据下式计算4个连"1"比例特征值P2、P6、P7、P8;<formula>formula see original document page 2</formula>(2)e. 根据下式由户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图像曾经过再次JPEG编码;若〃<0,则认为该JPEG图像没有经过 再次JPEG编码。
全文摘要
本发明是一种基于连“1”特性的JPEG图像再次编码检测方法。它利用JPEG压缩标准中的“范式”哈夫曼编码所具有的码长越长连“1”个数越多的性质,通过图像中连“1”比例特性判断图像是否经过再次压缩。本发明先搜索JPEG图像中的压缩数据,统计二进制压缩数据中连续2个“1”、连续6个“1”、连续7个“1”和连续8个“1”出现的次数在“1”的总数中所占的比例,以这4个比例作为连“1”比例特征量。将这四个特征量与阈值相比较,判断该JPEG图像是否经过再次编码。本发明无需对JPEG图像进行解码即可判别图像是否经过再次编码,实现简单,计算效率高。
文档编号H04N1/00GK101409759SQ20081020297
公开日2009年4月15日 申请日期2008年11月19日 优先权日2008年11月19日
发明者张新鹏, 王朔中, 轶 陈, 魏为民 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1