关于检测JPEG图像的二次压缩算法研究

2022-02-09 12:15梁文龙
无线互联科技 2022年21期
关键词:直方图步长像素

刘 婷,梁文龙

(湖南信息职业技术学院,湖南 长沙 410200)

0 引言

随着科技的不断进步与多媒体技术的快速发展,人类社会已经步入高速发展的时代。多媒体技术的快速发展在很大程度上改变了人们的生活方式,众多的多媒体资源丰富着人们的生活。对于数字图像的研究也越来越多,大家对图像的质量的要求也越来越高。但在介绍图像压缩编码之前,首先考虑压缩的原因。因为图像信息量惊人,举例来说:一张A4大小的照片用中分辨率扫描仪进行真彩色扫描,可以得到数据量为30兆左右,一般比较大。如今,在互联网上,基于字符界面的传统应用逐渐可以被浏览图像信息的互联网所取代。互联网虽然方便,但也带来了一些问题:图像信息数据量过大,本就紧张的网络带宽变得更加不堪重负。因此,大量的图像信息会对内存的存储容量、通信干线通道的带宽和计算机的处理速度造成很大的压力[1-2]。而且,仅仅通过增加内存容量、提高通道带宽和计算机处理速度是无法解决这类问题的。这时候需要考虑使用图像压缩了。压缩的理论基础是信息论。从信息论的角度来看,压缩就是去除图像信息中的冗余,从而保留不确定的信息,去除确定的信息,即用更接近信息本质的描述代替对图像的描述。原始冗余图像信息,图像压缩通常是通过改变图像的表示来实现的,所以压缩和编码是密不可分的[3-4]。

1 检测相同量化表二次压缩研究

在图像压缩中,至少有两个篡改研究的理由对检测二次压缩的注意,一是二次压缩常常造成图片篡改,例如图片中的一小块图片被复制到一个目标图片中产生一个新的组合图片,如果原始图以及目标图是JPEG图片,分割的图片应该要进行图片压缩处理,因此追踪二次压缩的途径;二是一些JPEG隐写的片段可能产生二次压缩图片[5-6]。可以将每个区块进一步分割,称为像素或像点,像素是构成图像的最小单位。对于数字图像来说,每一个像素作为一个取样点,有一个对应的取样数值。这样可以看出,图像分割越细,像素数越多,取样点越多,图像清晰度越高;反之,像素数越少,图像清晰度越低。实际上,对图像压缩处理,就是对图像区块的数据、像素的数据进行压缩处理[7-8]。

在本论文中,研究了一种使用相同量化表压缩检测双压缩的方法;由于在JPEG压缩与解压缩过程中,会产生量化误差,截断误差以及取整误差,一些JPEG的DCT系数将可能会被修改,得到的二次压缩图片可能与单次压缩图片的系数有些不同。而且,当JPEG图片一次又一次的重压缩,两次压缩阶段中的不同DCT系数的数量会单调性的减少;测试方法是基于采取一个随机策略,随机对一个压缩测试图片的DCT系数进行任意的加1或减1,通过使用这种策略,一个适当的比率应当会被发现。对于不同的图片,这种普遍的适当比率将会产生一个动态的值域,可以用来区分一次压缩还是二次压缩,而且如果选择了一个适当的比率,对于检测三次压缩或四次压缩也是有效的。

1.1 相同量化矩阵的压缩的特征

在本文开始部分分析了在使用相同量化表压缩时的一些特征。

(1)相同量化表压缩,Dn>Dn+1,呈现下降趋势;其中Dn是图片A与从A压缩成B的图片中对应位置的DCT系数的数量统计。

(2)如不同量化表C1相对会大(实验中相同量化表C1为 0.036 8,其中使用的质量因子为90,不同量化表C1为0.247 6,其中一次压缩使用的质量因子为90,再次压缩使用的因子为75;其中C1=Dn/Sn;Sn为原始图片中非零DCT系数的值的统计。

1.2 随机策略的检测统计算法步骤

(1) 在进行解压缩图片J到空间域,然后用相同的量化矩阵压缩成J′,D为J与J′中不同JPEG系数的数量统计。

统计的MATLAB算法如下:

function DnNumber=Dn(J1,J2)

DnNumber=0;

[m,n]=size(J1);

for i=1:m

for j=1:n

if J1(i,j)~=J2(i,j)

DnNumber=DnNumber+1;

end

end

end

(2)随机选取J′的DCT系数的修改比例,针对每个随机选择的系数任意的增加或减少1,然后熵编码修改的JPEG系数生成图片Jm′

把修改比例称为mpnc,(每个非零JPEG系数的修改系数的个数);如mpnc为0.02,图片总的像素点为10 000,则修改的像素为10 000×0.02=200个点会随机加1或减1。

(3)解压缩Jm′为空间域,用相同的量化表压缩,我们得到JPEG图片Jm′′,Dm为Jm′与Jm″中不同DCT系数对应位置的统计。

(4)重复第2—3步骤K次,注意在每次J’的JPEG系数被随机的随机选择修改,但是应当修改的JPEG系数比例仍然是相同的。

1.3 mpnc比例的选取

本文中mpnc修改比例的选择主要通过实验来得到的,从0开始,步长为0.01,一直到0.12的值,求出此范围中AR的值,可以得出AR最高一般出现在mpnc为0.018的时候最高。找到一个适当的修改比例,使其单次压缩时Dm的平均值会小于D,二次压缩时不小于D。

通过相关实验,主要是根据实际图片进行压缩来进行测试,当Dm大于等于D时,判断为二次压缩图片,当Dm小于D时,判断为一次压缩图片。

测试数据以及测试场景:

(1)测试数据为447张ucid的图;

(2)横坐标为相同量化表压缩册数;

(3)纵坐标为不同次数压缩之间对应位置DCT系数的不同值的统计数目的平均值;质量因子为70∶5∶90进行对应的选取。

1.4 相同量化表统计

检测使用相同量化矩阵的二次压缩,本文设计了一种基于观察的方法,在重压缩过程中使用相同的量化矩阵进行多次压缩操作,连续两次压缩版本之间的DCT系数不同数量呈单调递减状态;通过实验可以得出本文检测的方法可能不是统计效应;本文的检测无法提示二次压缩的图片是否被篡改。

2 直方图因子估计JPEG二次压缩

预估JPEG压缩历史在图像过程、图像篡改的应用已经越来越受到关注。在本文中,主要采用了直方图因子的统计特性来估计JPEG图像压缩历史。在统计场景中,对于没压缩的图片,随着直方图bin索引的增加,直方图因子统计的值反而减少。然而,它限制了一个本地的最大值,从而使它不在增加;基于这特性,也可以估计每次压缩的量化步长。

该方法主要是通过对直方图因子的处理来估计量化步长。直方图因子估计JPEG压缩情况,其步骤如下:

(1)原图的序列an,经过步长为q量化后的序列为bn,bn= [an/q] ×q;

(2)定义求模的公式F(v) = {u|u∈ N, mod(v,u)=0}

(1)

其中g(x,F(bn))=1 (当x属于F(bn)集合时,其他为0);

步长的估计:

(2)

在进行本实验时,所需实验条件:使用图片大小为512×512/256×256;图片使用灰度图、彩色图;设定质量因子设为80/90/100。

当得到的直方图为递减且前后柱子的相差趋近为0,那么图片未被压缩过;如果得到的直方图从q等于某个值开始,开始比较紊乱的变化,那说明图片已被压缩过,且q为h(f(x))==1时的最大值处;图中的q为4时,达到最大值。

3 结语

随着数字应用的快速发展,信息传播迅速增长,图像传播的数量不容低估。随着不同类型数码相机和各种图像编辑软件的不断出现,数字图像的应用非常广泛,且作为信息的载体,它被广泛应用于各个领域。经过对JPEG图像压缩理论及相关算法的学习,可以对图片处理有了很深的理解,从压缩操作读取图片像素→DCT操作→量化处理到解压缩操作反量化→反IDCT的操作的理解。本文主要提出了一种方法能检测使用相同量化表压缩的二次图片,其中算法主要是基于用相同量化表经过一次又一次的压缩的过程以及不同JPEG系数的数量,并在一定程度上恢复图像在压缩过程中丢失的细节信息,通过实验表明,本文提出的方法是一种有效的JPEG图像检测二次压缩的方法。

猜你喜欢
直方图步长像素
赵运哲作品
符合差分隐私的流数据统计直方图发布
像素前线之“幻影”2000
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
用直方图控制画面影调
基于空间变换和直方图均衡的彩色图像增强方法
基于直方图平移和互补嵌入的可逆水印方案
基于逐维改进的自适应步长布谷鸟搜索算法
一种新型光伏系统MPPT变步长滞环比较P&O法
一种新颖的光伏自适应变步长最大功率点跟踪算法