趙宇杰 石海麗 張妍 高楠 蘭州城市學(xué)院電子與信息工程學(xué)院
隨著信息處理技術(shù)和計算機技術(shù)的飛速發(fā)展,數(shù)字圖像處理技術(shù)在各個領(lǐng)域受到了廣泛重視并取得了眾多成就。語音、圖像、數(shù)據(jù)等多媒體的傳輸、處理、存儲、檢索技術(shù)成為網(wǎng)絡(luò)技術(shù)的重要組成部分,圖像壓縮技術(shù)尤為重要。離散余弦變換在圖像壓縮和其他處理中具有計算速度快的優(yōu)勢。
DFT是數(shù)字圖像處理中常用變換,離散余弦變換(DCT)是其中的一種特殊情況。傅里葉變換使用無窮區(qū)間上的復(fù)正弦基函數(shù)和信號的內(nèi)機描述信號中的總體頻率分布,或者是將信號向不同頻率變量基函數(shù)矢量投影。它存在的一個很大問題是參量均是復(fù)數(shù),在數(shù)據(jù)的描述上相當(dāng)于實數(shù)的兩倍。DCT的變換核為實數(shù),計算復(fù)雜性低、可分離、有快速算法,因此計算速度比DFT 要快得多,被廣泛地使用。
其中,
其中
通常,數(shù)字圖像的DCT系數(shù)的值很接近于0,若忽略這些值,在進行圖像重構(gòu)時不會使圖像質(zhì)量明顯下降[2]。在合理近似時,壓縮技術(shù)應(yīng)該使用最少的系數(shù),壓縮大小取決于系數(shù)多少。DCT壓縮原理如圖1所示,G為輸入數(shù)字圖像,G′為逆變換后的復(fù)原圖像,U為二維正交變換,U′為二維正交逆變換,A為變換域中的變換系數(shù),A′為量化后的變換系數(shù)。
DCT的Matlab實現(xiàn)有兩種方法:一種是基于FFT的快速算法,通過工具箱中的dct2函數(shù)實現(xiàn);另一種是DCT變換矩陣法[3]。變換矩陣法常做8行8列或16行16列的DCT變換:首先進行圖像分解,然后進行二維DCT,再將DCT系數(shù)進行編碼和傳送,解碼時進行逆變換,最后進行圖像組合。在此過程中,工具箱中的dctmtx函數(shù)能夠用來計算變換矩陣。
通過使用Matlab語言中的imread、rgb2gray、dct2函數(shù)讀取圖片信息、進行灰度轉(zhuǎn)換、圖像余弦變換系數(shù)計算后,按照變換矩陣法,使用dctmtx、mask、blkproc等函數(shù)將圖像進行壓縮的效果如圖2所示。
圖2 原始圖像及其經(jīng)壓縮、解壓縮后的效果對比
在上述采用DCT進行圖像壓縮的實例中,去掉了一些允許忽略的高頻成分,很好的保留了圖像的絕大部分成分,保證了圖像重構(gòu)后失真很少,壓縮與解壓效果良好。
[1]趙小川,何灝,繆遠(yuǎn)誠.MATLAB數(shù)字圖像處理實踐[M].北京:機械工業(yè)出版社,2013:42-75.
[2]崔春燕,李彩霞.基于DCT變換的數(shù)字圖像壓縮技術(shù)及其MATLAB實現(xiàn)[J].現(xiàn)代電子技術(shù),2002,(9):7-9.
[3] 張汗靈.MATLAB在圖像處理中的應(yīng)用[M].北京:清華大學(xué)出版社,2008:81-95.