2017-08-31 68 views

回答

0

简而言之,JPEG的工作原理是将discrete cosine transform应用于图像的8x8像素块,然后使用得到的8x8矩阵将其压缩成更少的位。

量化是造成JPEG有损的原因。不同的量化矩阵导致不同的压缩级别(和解压缩的图像质量)。

您的问题中的公式代表JPEG压缩,然后是解压缩。 DCT产生8×8的浮点系数矩阵。然后:

  • DCT系数矩阵被量化矩阵逐元素分割。
  • 结果会四舍五入为整数。
  • 整数然后乘以量化系数。

这篇论文的重点在于,当这个过程不止一次完成(可能具有不同的量化系数)时,这是可检测的并且可以用于找到篡改的JPEG图像。

P.S.在我看来,作者的符号有点草率。如果我没有弄错,JPEG会四舍五入到最接近的整数,而纸张使用的是落地函数,该函数向负无穷大舍入。除此之外,论文的主要观点如下。

+0

我还有一个问题,关于这篇论文,我希望你能帮助我。在三步过程开始之前有一个步骤,其中图像水平和垂直移动。我怎么能在python中执行这一步?我还没有找到一个能够水平移动行和垂直移动列的功能。这一步甚至是重要的,即使没有执行转换,幽灵是否能够被检测到? – TheTank

+0

@SanketWagh:如果这是一个单独的问题,请将其作为一个新问题发布。评论并不适合这种讨论。 – NPE

0

⌊⌋是地面操作。该数字的任何小数部分都被删除,将其减小到最大的较小或相等的整数。在Python中,这通过0​​或任何等价物完成。

0

好了,所以下式可以表示为

Quantized Value(i, j) = DCT(i, j)/Quantum(i, j)[Rounded-off to the nearest integer] 

其中DCT =离散余弦变换系数和

For every element position in the DCT matrix, a corresponding value in the 
quantization matrix gives a **Quantum value** indicating what the step size is 
going to be for that element. 

and i, j are the row and column of the quantization matrix respectively. 

下面是示例性矩阵: enter image description here

here所提python的方式为Lossy Data Compression技术(JPEG为实例)。您还可以在here中阅读更多关于公式见解(请参阅本文)。

希望它有帮助...

0

您的来源是一个令人困惑的。量化仅仅是整数除法的一个高效术语。

您有一个8x8量化表(Q)。当量化的8×8DCT矩阵(M)到值(V)这样做

V(N,M)= M(N,M)/ Q(N,M)

JPEG确实做整数除法值向下舍入。

请注意,在压缩过程中,我们的示例中没有乘法后面的乘法。这篇论文显然提出了一个确定图像是否被多次压缩的过程。如果V(n,m)* Q(n,m)!= M(n,m),那么图像可能以前没有被压缩过。