摘 要: 提出了一種先去噪再利用小波變換的圖像壓縮方法,用Matlab軟件編程實現算法。實驗仿真結果顯示,圖像在具有高壓縮比的同時,重構圖像的質量也較優;使用不同的小波基函數,效果不同。
關鍵詞: 小波變換;圖像壓縮;圖像去噪;重構圖像
隨著計算機、通信、電子信息技術的快速發展,人們的生活與圖像緊密相連,如數字電視圖像、3G通信、彩信、導航系統圖像、視頻圖像防盜系統等。然而圖像信息包含的信息量巨大,這給儲存、處理和傳輸帶來了很多困難,這也是相關技術發展的瓶頸。不斷地增加信道帶寬和儲存容量并不能解決根本問題,而現有技術已經顯得力不從心。解決問題的根本就是必須要對圖像信息進行壓縮處理,在保證一定圖像質量的基礎上,能用盡可能少的信息量表示重構的原始圖像,即用最少的信息還原出最近似原始圖像的重構圖像。圖像壓縮技術在20世紀60年代后開始發展起來,80年代小波變換的理論被提出后,圖像壓縮技術備受關注并成為熱門的研究技術。
1 圖像壓縮技術
1.1 圖像壓縮的可能性
圖像信息能夠進行壓縮處理是因為圖像具有以下特點:(1)在空域上,圖像具有很強的相關性;(2)在頻域上,圖像的低頻分量多,高頻分量少;(3)人眼在觀察圖像時有暫留和掩蓋現象,因此,可以去除一些信息又不至于影響視覺效果。
1.2 圖像壓縮技術的發展
一般將基于信息論和數字信號處理的圖像壓縮技術稱為第一代壓縮技術,而將結合人類視覺特性、心理特性的圖像壓縮技術稱為第二代壓縮技術。第一代壓縮技術以信源編碼理論為基礎,使信源的概率分布盡可能非均勻或是去除信源符號間的相關性,從而達到壓縮的目的。第二代壓縮技術則注重于利用人類的生理特點來獲得高壓縮比,涉及的理論領域多,如基于分形理論、小波理論等。小波理論在近三十年發展迅速,成為圖像處理的核心理論。圖像壓縮的國際新標準JPEG2000就是采用基于小波理論的新一代壓縮技術。
2 小波變換
2.1 小波及相關概念
小波是一類在有限區間內快速衰減到0的函數。小波分析就是將信號分解為原小波(也叫小波基)函數不同位移和膨脹的小波。而小波變換就是采用小波理論,將原始信號進行處理,使其具有某些更適合后續處理的時頻特性。小波變換因具有良好的空域、頻域局部化,多分辨率,時間復雜度低等特性,特別適合處理非平穩信號,數字圖像是典型的非平穩二維信號。
2.2 圖像的小波變換
圖像小波變換采用二維小波變換快速算法,就是不斷將上一級圖像分解成4個子帶。以原圖像為初始信號,經過一組高通和低通濾波器,將原始信號分解成4個子帶,即一個低頻子帶(LL)和3個高頻子帶(HL、LH、HH)。其中,LL是近似圖像,HL是水平細節圖像,LH是垂直細節圖像,HH是對角細節圖像。這叫作一級小波分解,這種分解可以迭代,但是只針對上一級的低頻子圖像,理論上可以進行無限級分解,但是在圖像壓縮上,需要考慮重構圖像的質量,所以最好不超過5級,一般采用3級小波分解。圖1是小波三層小波分解示意圖。
圖像進行小波變換后,并沒有實現能量的壓縮,而只是對整個圖像的信號能量進行重新分配。低頻子圖像包含了大部分的圖像信息,高頻子圖像上大部分點的數值都接近0,越是高頻這種現象越明顯。對于一個圖像來說,表現一個圖像最主要的部分就是低頻部分。所以可以充分利用這一變換后的特性,采用適當的方法對變換后的小波系數進行組織,最常用的方法就是只保留低頻系數,對其進行小量化,而用大量化將高頻系數盡可能置0,以實現圖像信息的有效壓縮。基于小波變換的圖像壓縮處理過程是:將輸入的原始圖像進行小波變換,根據處理需要將小波變換的系數矩陣進行量化編碼,再通過小波逆變換重構圖像。
3 算法與實現
3.1 算法描述
任何圖像信號經過拍攝、掃描、傳輸等方法存儲到計算機內進行處理時,都不可避免地包含各種噪聲信號,而噪聲信號往往是導致信噪比下降的主要因素,導致原始圖像在后續的處理中效果不盡人意。研究發現,所有噪聲幾乎都集中在高頻率部分,所以可以先對圖像進行高頻去噪處理。
本文算法步驟如下:
(1)利用Matlab軟件提供的小波工具箱中的函數ddencmp和wdencmp函數對輸入的圖像用小波進行除噪處理。利用這兩個函數去噪,有4個去噪參數可供選擇,不同的參數有不同的效果。
(2)將經過小波去噪處理后的圖像進行小波變換。在這里最關鍵的就是對小波基的選擇,因為不同的小波函數具有不同的時頻局域性,對恢復的圖像質量至關重要。小波基函數在選擇上一般要遵循的原則是:具有緊支集、正則性好、消失矩大。緊支集可以無冗余地表征圖像信號;正則性可獲得好的圖像特征,即小波的正則性越大,分解后的小波圖像各高頻子帶的能量就越集中于圖像的邊緣附近;消失矩則表明了小波變換后信息能量的集中程度,消失矩越大,分解后的能量就越集中在低頻子帶。Haar小波基是最早、最簡單的具有上述特性的函數,本文分別采用bior2.6和Haar小波基函數進行小波分解。
(3)采用量化編碼對小波變換后的圖像信號進行壓縮處理。
(4)對以上3個步驟進行逆變換,重構原始圖像。
3.2 算法的實現
使用Matlab軟件編寫程序實現算法。
(1)圖像去噪程序
load zhxh %裝入要處理的小孩頭像圖片
x=zhxh;
subplot(121);colormap(map);image(x);title(′原始圖像′);axis square;
[thr,sorh,keepapp]=ddencmp(′den′,′wv′,x);
thr=thselect(x,′rigrsure′); %采用去噪參數’rigrsure’,
還可以使用參數’heursure’,’sqtwolog’,’minimaxi’
[xc,perf0,perfl2]=wdencmp(′gbl′,x,′bior2.6′,3,thr,sorh,keepapp);
subplot(122);colormap(map);image(xc);title(′去噪后圖像′);axis square;
表1為使用不同的去噪參數,對圖像能量的處理結果。
通過表1可見,對于本仿真實驗使用的小孩頭像圖片來說,當使用參數rigrsure時,小波分解后置0的個數多,有效地減少了后續處理的圖像信息量,去噪后信息剩余能量也較大,說明較好地保留了圖像的信息,此效果最好。因此,本文算法使用此參數。
(2)圖像小波變換及壓縮處理(分別使用bior2.6和haar小波仿真)
下面程序是使用bior2.6小波處理圖像,使用haar小波處理則將小波改變成haar即可。
[thr,sorh,keepapp]=ddencmp(′cmp′,′wv′,xc);
thr=10;sorh=′h′;keepapp=0;
[xc1,c,s,perf0,perfl2]=wdencmp(′gbl′,xc,′bior2.6′,3,thr,sorh,keepapp);
ca1=appcoef2(c,s,′bior2.6′,1);
ca2=appcoef2(c,s,′bior2.6′,2);
ca3=appcoef2(c,s,′bior2.6′,3);
ys1=wcodemat(ca1,220);
ys2=wcodemat(ca2,220);
ys3=wcodemat(ca3,220);
whos x ys1 ys2 ys3
圖2和圖3所示是去噪后使用不同小波壓縮圖像后重構圖像的效果。
表2所示為兩種小波處理圖像時得到的效果比較。
算法仿真結果表明,選用不同的小波基函數,圖像的壓縮率不同,Haar比bior2.6小波得到的壓縮比高,小波分解級越高越明顯。在相同的壓縮級上,bior2.6的重構圖像質量在細節方面質量高,但在低頻輪廓部分效果稍差;而在相同的壓縮比上看,Haar小波的重構圖像整體質量還是比較好的。本算法的另一個特點就是圖像經過去噪處理后,在小波變換時,置0的高頻系數數量增加了,有利于后續的壓縮處理,但并沒有使重構圖像效果降低很多。
可以根據重構圖像質量的要求對現有的算法改進,選擇合適的小波基函數,使圖像壓縮效果盡如人意。本文算法提供了研究圖像壓縮方法的一種思路,也具有一定的價值。
參考文獻
[1] 姚天任.現代數字信號處理[M].武漢:華中科技大學出版社,1996.
[2] 何小海.圖像通信[M].西安:西安電子科技大學出版社,2005.
[3] 張德豐.數字圖像處理(MATLAB版)[M].北京:人民郵電出版社,2009.
[4] 陳桂明.應用MATLAB語言處理數字信號與數字圖像[M].北京:科學出版社,2001.
[5] 蔡旭暉.MATLAB基礎與應用教程[M].北京:人民郵電出版社,2009.
[6] 清源計算機工作室.MATLAB高級應用[M].北京:機械工業出版社,2000.
[7] 郭錦.一種基于小波變換的圖像壓縮技術研究與實現[J].科學技術與工程,2006:2290-2293.