1. 小波發展
自從近兩百年前Joseph Fourier在研究熱力學問題提出Fourier分析以後,長期以來許多數學家一直在尋找更廣泛函數空間的性能更好的基底函數族,工程技術領域也一直在尋找更好的時頻分析方法,但收穫甚微。
1984年法國的年輕的地球物理學家Jean Morlet在進行石油勘探的地震數據處理分析時與法國理論物理學家A.Grossman一起提出了小波變換(wavelet transform, WT)的概念並定義了小波函數的伸縮平移系:1987年正在讀碩士的Stephane Mallat將自己熟悉的圖像處理的塔式算法引入小波分析,提出多分辨分析的概念和構造正交小波的快速算法——Mallat算法。
1988年法國女科學家Inrid Daubechies構造出具有緊支集的正交小波基——Daubechies小波。
1990年美籍華裔數學家崔錦泰和武漢大學的數學教授王建忠又構造出基於樣條函數的單正交小波函數——樣條小波。1992年Daubechies在美國費城舉行的CBMS-NFN應用數學大會上作了著名的《小波十講Ten Lectures on Wavelets》報告,掀起了學習與應用小波的高潮。
1994年Wim Swelden提出了一種不依賴於Fourier變換的新的小波構造方法——提升模式(lifting scheme),也叫第二代小波或整數小波變換。連續小波變換
連續小波變換(CWT = Continuous wavelet transform)的定義爲:
離散小波變換
將連續小波變換的縮放因子a離散化,得到二進小波變換;再將其平移因子b也離散化,就得到離散小波變換。
2. 小波變換
在JPEG 2000的核心編碼系統中,對有損壓縮採用的是基於Daubechies 9/7 濾波器之提升實現的不可逆DWT,對無損壓縮採用的則是基於Le Gall 5/3濾波器之提升實現的可逆DWT。
濾波器通過提升實現。提升的方法:
3 第二代小波變換(整數小波變換)
由於一般的小波濾波器的輸出結果是浮點數,因而在對變換後的數據進行壓縮時,要先進行量化,以得到相應的整數,這必然會引入誤差,不適合於圖像的無損壓縮。
1994年Wim Swelden提出了一種新的小波構造方法——提升方案(lifting scheme),也叫第二代小波變換(second generation wavelet transform, SGWT)或[整數到]整數小波變換([integer-to-]integer wavelet transform, [IT]IWT)。
第二代小波變換構造方法的特點是:
- 繼承了第一代小波的多分辨率的特性;
- 不依賴傅立葉變換, 直接在時域完成小波變換;
- 小波變換後的係數可以是整數;
- 圖象的恢復質量與變換時邊界採用何種延拓方式無關。
第二代小波變換是由第一代小波變換的提升實現的。與第一代小波相比,第二代小波還具有以下優點:
- 算法簡單、速度快、適合並行處理;
- 對內存的需求量小,便於DSP芯片實現;
- 可用本位操作進行運算,能實現任意圖像尺寸的小波變換。
由於第二代小波能實現圖象的整數到整數的變換,因此給圖象的無損壓縮提供了理論基礎,是JPEG2000標準的一個組成部分。
提升原理
1) 步驟
提升方案把第一代小波變換過程分爲以下三個階段:分解(split),預測(predict)和更新(update)。
第二代小波變換實現方式相對於第一代小波變換具有如下優勢:在進行提升計算時,可以採用替代的方法,因此能節省大量空間;通過子表達式的重複使用,需要計算輪廓和細節部分的浮點操作數目大大減少,因此能提高效率。
可以用提升方法來構造具緊支集的雙正交小波,那麼就可以通過對每一次濾波後的數據進行取整(用[·]表示)來實現整數小波變換,而且這種變換是完全可逆的,也就是完全重構數據。
Sweldens已經證明在提升的基礎上可以進行整數集到整數集的小波變換,也就是說,一個整數集合通過小波變換得到的仍然是整數集合。這就給數字圖象的壓縮編碼帶來了好處,由於不需要對變換後的係數進行量化,因此提供了實現無損壓縮的可能。4 二維小波變換
5 圖像小波係數特點
圖像小波變換系數具有下面幾個統計特性:空頻局部化,能量壓縮特性,子帶內小波係數的聚類特性,子帶間小波係數的相似性,小波係數幅度從低頻子帶到高頻子帶的衰減特性。
1. 能量集中在低頻子帶,高頻子帶部分會出現大量的0或者接近0的係數。
下圖所示爲3級小波變換系數的分佈結構,可以看出,經過小波變換後,大部分圖像能量集中在少數變換系數中,大多數變換系數存在於最低頻率子帶LL3中,而最高頻率子帶HH1的小波係數絕大多數都接近於零。
2. 同方向多級子帶具有相似性。
即如果小波樹的父節點係數值小於某個閾值,則在更高頻率子帶的相同空間位置和相同方向的子節點係數往往也小於該閾值。
6 二維哈爾小波變換舉例
一個圖像塊是一個二維的數據陣列,可以先對陣列的每一行進行一維小波變換,然後對再行變換之後的陣列的每一列進行一維小波變換,最後對經過變換之後的圖像數據陣列進行編碼。
經過哈爾小波變換後的矩陣如下:左上角的元素表示整個圖像塊的像素值的平均值,其餘是該圖像塊的細節係數。
如果從矩陣中去掉表示圖像的某些細節係數,事實證明重構的圖像質量仍然可以接受。具體做法是設置一個閾值,例如的細節係數δ≤5就把它當作“0”看待,這樣經過變換之後的上面的矩陣就變成