2017-08-31 116 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),那麼圖像可能以前沒有被壓縮過。