**小波壓縮**是一種資料壓縮（data compression）的方式，主要的方式是利用離散小波轉換來處理。同時也能適用於图像壓縮（image compression）、視訊壓縮（video compression）、音訊壓縮（audio compression）。較廣為人知的影像應用是JPEG 2000、DjVu、ECW（Enhanced Compression Wavelet）；在視訊方面則有CineForm。這些方法都是為了將影像資料用更少的空間來儲存檔案，其中依據壓縮方式又可以分成**失真**和**無失真**。

壓縮方法
----

以影像來說，是用二維離散的小波轉換做壓縮，以下就針對此方法做介紹。

圖一
圖一是二維離散小波轉換的結構圖，輸入訊號{\mathit {x[m,n]}}，由結構圖順序可以得到

1.先沿n方向做離散小波轉換得
{\mathit {v\_{{1,L}}[m,n]}}=\sum \_{{k=0}}^{{K-1}}x[m,2n-k]g[k]
{\mathit {v\_{{1,H}}[m,n]}}=\sum \_{{k=0}}^{{K-1}}x[m,2n-k]h[k]
2.再沿m方向得
{\mathit {x\_{{1,L}}[m,n]}}=\sum \_{{k=0}}^{{K-1}}v\_{{1,L}}[2m-k,n]g[k]
{\mathit {x\_{{1,H\_{{1}}}}[m,n]}}=\sum \_{{k=0}}^{{K-1}}v\_{{1,L}}[2m-k,n]h[k]
{\mathit {x\_{{1,H\_{{2}}}}[m,n]}}=\sum \_{{k=0}}^{{K-1}}v\_{{1,H}}[2m-k,n]g[k]
{\mathit {x\_{{1,H\_{{3}}}}[m,n]}}=\sum \_{{k=0}}^{{K-1}}v\_{{1,H}}[2m-k,n]h[k]
上述過程即做完一階二維的離散小波轉換。圖二是將影像經過處理的結果，可以看出在高頻部分，左下角為水平方向的邊緣；右上方為垂直方向的邊緣；右下方為圖形的角落。而左上角為低頻，可繼續做小波轉換，分出更粗略、接近原影像的縮圖，來達到壓縮效果。

圖二

JPEG 2000
---------

在小波壓縮上應用最廣的是在二維的影像處理，其中又以JPEG 2000為主。以下將針對JPEG 2000壓縮流程作介紹。

圖三
圖三是JPEG 2000壓縮加密的流程圖，用以下步驟來說明：

### 向前小波轉換

在做離散小波轉換前，先將輸入影像分割成磚塊狀格子（tiling），如圖四

圖四
將影像分成格子狀，這麼做可以增加想要凸顯部分的品質；此外，即使某些方格內的訊號在傳輸的過程中受到雜訊破壞，還是能還原到肉眼所分辨不出來的程度。再用二維離散小波轉換把格子分成許多頻率子帶（subband）組成。依離散小波轉換的方式又可分為**可逆**與**不可逆**。可逆離散小波轉換是**Cohen-Daubechies-Feauveau（CDF）5/3小波**，可分別應用於失真與無失真壓縮，如下表

| *k* | Analysis lowpass filter
*{\mathit {h\_{{L}}}}(n)* | Analysis highpass filter
*{\mathit {h\_{{H}}}}(n)* | **Synthesis lowpass filter**
*{\mathit {g\_{{L}}}}(n)* | **Synthesis highpass filter**
*{\mathit {g\_{{H}}}}(n)* |
| --- | --- | --- | --- | --- |
| -2 | -1/8 | 0 | 0 | -1/8 |
| -1 | 2/8 | -1/2 | 1/2 | -2/8 |
| 0 | 6/8 | 1 | 1 | 6/8 |
| 1 | 2/8 | -1/2 | 1/2 | -2/8 |
| 2 | -1/8 | 0 | 0 | -1/8 |
|

不可逆離散小波轉換是**Cohen-Daubechies-Feauveau（CDF）9/7小波**，只用於失真壓縮，如下表所示

| *k* | Analysis lowpass filter
*{\mathit {h\_{{L}}}}(n)* | Analysis highpass filter
*{\mathit {h\_{{H}}}}(n)* | **Synthesis lowpass filter**
*{\mathit {g\_{{L}}}}(n)* | **Synthesis highpass filter**
*{\mathit {g\_{{H}}}}(n)* |
| --- | --- | --- | --- | --- |
| -4 | 0.026748757411 | 0 | 0 | 0.026748757411 |
| -3 | -0.016864118443 | 0.091271763114 | -0.091271763114 | 0.016864118443 |
| -2 | -0.078223266529 | -0.057543526229 | -0.057543526229 | -0.078223266529 |
| -1 | 0.266864118443 | -0.591271763114 | 0.591271763114 | -0.266864118443 |
| 0 | 0.602949018236 | 1.11508705 | 1.11508705 | 0.602949018236 |
| 1 | 0.266864118443 | -0.591271763114 | 0.591271763114 | -0.266864118443 |
| 2 | -0.078223266529 | -0.057543526229 | -0.057543526229 | -0.078223266529 |
| 3 | -0.016864118443 | 0.091271763114 | -0.091271763114 | 0.016864118443 |
| 4 | 0.026748757411 | 0 | 0 | 0.026748757411 |
|

### 量子化

量子化值會隨著不同子帶有所調整，每個子帶（以{\mathit {b}}表示）原本的量子化小波係數為{\mathit {a\_{{b}}}}(u,v)，經過調整後為{\mathit {q\_{{b}}}}(u,v)，定義如下

{\mathit {q\_{{b}}}}(u,v)=sign[{\mathit {a\_{{b}}}}(u,v)] \left\lfloor {\frac {a\_{{b}}(u,v)}{\triangle \_{{b}}}}\right\rfloor 
其中\triangle \_{{b}}為量化步階，且\triangle \_{{b}}=2^{{{\mathit {R\_{{b}}}}-{\mathit {\varepsilon \_{{b}}}}}}\left(1+{\frac {\mu \_{{b}}}{2^{{11}}}}\right)
{\mathit {R\_{{b}}}}代表子帶{\mathit {b}}標稱動態範圍（nominal dynamic range），游子袋中的最大值決定
{\mathit {\varepsilon \_{{b}}}}和\mu \_{{b}}用來調整量化強度

另外，在無失真壓縮，當\mu \_{{b}}=0且{\mathit {R\_{{b}}}}=\varepsilon \_{{b}}，量化步階\triangle \_{{b}}=1
對失真壓縮而言，0\leq \varepsilon \_{{b}}<2^{5}且0\leq \mu \_{{b}}<2^{{11}}，量化步階\triangle \_{{b}}>1

### Tier編碼器

tier編碼器將量子化後的資料分成相關的位元及不相關的位元，變成有連貫性的訊息後再經過算術編碼，最後以封包的形式傳送。

### 效率控制

效率控制將傳輸影像位元速率（bit rate）最佳化達到最小失真，使影像達到最佳品質。

參考
--

* Jian-Jiun Ding, Time frequency analysis and wavelet transform class note, the Department of Electrical Engineering, National Taiwan University (NTU), Taipei, Taiwan, 2009. （页面存档备份，存于）
* Wei-Yi Wei, "Image Coding by Adaptive Golomb Codes and the information of Adjacent Block," Graduate Institute of Communication Engineering, College of Electrical Engineering and Computer Science, National Taiwan University, Master Thesis, June 2010.
* Rafael C. Gonzalez, Richard E. Woods, "Digital Image Processing", 2nd 2002, ISBN 0-20-118075-8
* N. C. Shen, "Sectioned Convolution for Discrete Wavelet Transform", Graduate Institute of Communication Engineering, National Taiwan University, 2008.