2006-IEEE-Recovering DC coefficients in block-based DCT

【注】此論文中談論的圖像均爲像素值在 (0,255) 範圍內的 RGB 圖像,定義點 (i,j)像素值f(i,j)

1. 拉普拉斯分佈特性

對於自然圖像而言,點 (i,j) 處的相鄰像素點
{\begin{array}{c} \{(i-1,j-1),(i-1,j),(i-1,j+1),(i,j-1),(i,j+1),(i+1,j-1),(i+1,j),(i+1,j+1)\} \end{array}}

對應的相鄰像素點值
{\begin{array}{c} Q(i,j)=\{f(i-1,j-1),f(i-1,j),f(i-1,j+1),f(i,j-1),f(i,j+1),f(i+1,j-1),f(i+1,j),f(i+1,j+1)\} \end{array}}

定義序列
{\begin{array}{c} f(i,j) - q(i,j) & \forall i, j, q(i,j) \in Q(i,j) \end{array}}

則該序列基本符合均值爲 0 ,方差很小的拉普拉斯分佈。此即爲自然圖像相鄰像素值的拉普拉斯分佈特性

2. JPEG 中的 DCT 和 IDCT 公式

JPEG 中採用的是 DCT-II 公式。其中
{\begin{array}{c} C(x) = \left\{ \begin{array}{c} \sqrt{\frac{1}{8}} & x = 0 \\ \frac{1}{2} & x \neq 0 \end{array} \right. \end{array}}

2.1 DCT 公式

{\begin{array}{c} F(u,v) = C(u) C(v) \sum_{i=0}^7 \sum_{j=0}^7 f(i,j) \cdot \cos{\frac{2i+1}{16} u \pi} \cos{\frac{2j+1}{16} v \pi} \end{array}}

2.2 IDCT 公式

{\begin{array}{c} \hat{f}(i,j) = \sum_{u=0}^7 \sum_{v=0}^7 C(u) C(v) F(u,v) \cdot \cos{\frac{2i+1}{16} u \pi} \cos{\frac{2j+1}{16} v \pi} \end{array}}

3. AC 係數預測 DC 係數

3.1 原理

相鄰圖像塊邊界的圖像像素值滿足拉普拉斯分佈,因此可以用來預測相鄰塊的 DC 分量。假設已知相鄰兩個 8 \times 8 圖像塊邊緣相鄰的兩個圖像點像素值:
{\begin{array}{c} p^{(k)} = \rho^{(k)} + \frac{1}{N^2} c_{1,1}^{(k)} \\ p^{(k+1)} = \rho^{(k+1)} + \frac{1}{N^2} c_{1,1}^{(k+1)} \end{array}}
其中,\rho 表示組成像素值 p 的所有 AC 分量部分,c_{1,1} 表示當前塊的 DC 分量(本質上爲 \frac{F(0,0)}{C(0)C(0)})。則根據拉普拉斯特性有:
{\begin{array}{c} & p^{(k+1)} & \approx & p^{(k)} \\ \Rightarrow & \rho^{(k+1)} + \frac{1}{N^2} c_{1,1}^{(k+1)} & \approx & \rho^{(k)} + \frac{1}{N^2} c_{1,1}^{(k)} \\ \Rightarrow & c_{1,1}^{(k+1)} & \approx & c_{1,1}^{(k)} + N^2 (\rho^{(k)} - \rho^{(k+1)}) \end{array}}

因此,如果當前圖像塊的 DC 分量缺失,其實是可以用相鄰塊來進行預測。其主要思想就是用未缺失的 AC 分量結合相鄰塊的 DC 分量來預測當前塊的 DC 分量。

3.2 方式

因爲 JPEG 是以 8 \times 8 大小劃分圖像塊的,以第一種方式爲例,預測得到的當前塊的 DC 係數爲:
{\begin{array}{c} c_{1,1}^{(k+1)} \approx c_{1,1}^{(k)} + \frac{N^2}{8} \sum_{i=1}^8 (\rho^{(k)}_i - \rho^{(k+1)}_i) \end{array}}

4. JPEG 壓縮中 DC 係數與 AC 係數之間的制約關係

由於 DC 係數(\frac{1}{N^2} c_{1,1})是 8 \times 8 圖像塊像素值的均值,且像素值的範圍爲 (0,255),故 DC 係數與 AC 係數之間會相互制約:

  • 若 AC 係數的可變化範圍大,則說明 DC 係數較小。
  • 若 DC 係數較大,則說明 AC 係數的可變化範圍小。

DC 係數和 AC 係數的取值範圍不同,且最值不能同時取到。比如:

  • DC 係數的取值範圍爲 [-1024, 1024]。
  • 某些 AC 係數的取值範圍爲 [-420.3863, 420.3863]。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章