Skip to content

Latest commit

 

History

History
56 lines (44 loc) · 1.93 KB

File metadata and controls

56 lines (44 loc) · 1.93 KB

Background

JPEG 2000 uses two wavelets:

  • The LeGall-Tabatabai 5/3 (LGT 5/3) for lossless compression and
  • The Cohen–Daubechies–Feauveau 9/7 (CDF 9/7) wavelet for lossy compression:

For these, we denote a row of extended pixels in a tile by $P(k), P(k+1), \dots , P(m)$. Since the pixels have been extended, index values below $k$ and above $m$ can be used.

LGT 5/3

The LGT 5/3 transform computes wavelet coefficients $C(i)$ in two successive steps:

$$ \begin{alignat*}{4} C(2i + 1) &= P(2i + 1) - \left\lfloor \frac{P(2i) + P(2i + 2)}{2} \right\rfloor &\quad& k - 1 \le 2i + 1 < m+ 1 &\quad& \text{step 1}\\ C(2i) &= P(2i) + \left\lfloor \frac{ C(2i - 1) + C(2i + 1) + 2 }{4} \right\rfloor &\quad& k \le 2i < m+ 1 &\quad& \text{step 2}. \end{alignat*} $$

CDF 9/7

The CDF 9/7 wavelet transform involves six steps: $$ \begin{alignat*}{4} C(2i + 1) &= P(2i + 1) + \alpha [P(2i) + P(2i + 2)], &\quad & k-3 \le 2i+1 < m+3 & \quad& \text{step 1}\ C(2i) &= P(2i) + \beta[C(2i - 1) + C(2i + 1)], &\quad& k-2 \le 2i < m+2 &\quad& \text{step 2}\ C(2i + 1) &= C(2i + 1) + \gamma[C(2i) + C(2i + 2)], &\quad& k-1 \le 2i+1 < m+1 &\quad& \text{step 3}\ C(2i) &= C(2i) + \delta[C(2i - 1) + C(2i + 1)], &\quad& k \le 2i < m &\quad& \text{step 4}\ C(2i + 1) &= -K C(2i + 1), &\quad& k \le 2i + 1 < m &\quad& \text{step 5}\ C(2i) &= \frac{1}{K} C(2i), &\quad& k \le 2i < m &\quad& \text{step 6} \end{alignat*} $$

For CDF 9/7, the five constants (wavelet filter coefficients) used by JPEG 2000 are:

  • $\alpha = -1.586134342$,
  • $\beta = -0.052980118$,
  • $\gamma = 0.882911075$,
  • $\delta = 0.443506852$, and
  • $K = 1.230174105$.

Note the 2-step iterators for odd vs even steps in both cases.

Task

  • Type: Implement
  • Task: Implement the LeGall-Tabatabai 5/3 (LGT 5/3) and The Cohen–Daubechies–Feauveau 9/7 (CDF 9/7) processes set out above.
  • Reference implementation: jpeg2000.lgt_5_3 and jpeg2000.cdf_9_7