




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、DCT變換與KLT變換在圖像壓縮中的應用 專業:電子與通信工程 學號:16213026 16213024 姓名: 目錄1 報告簡介12 算法原理12.1 DCT算法原理12.2 KLT算法原理33 仿真分析53.1 DCT仿真分析53.2 KLT仿真分析75 總結8參考文獻9附錄:MATLAB代碼101DCT變換與KLT變換在圖像壓縮中的應用1 報告簡介隨著數據化時代的開啟,圖像壓縮技術越來越成熟并且應用越來越廣泛,本文在研究近年來圖像壓縮一般方法的基礎上,介紹了基于DCT變換的圖像壓縮的基本原理及其實現步驟,以及擴展研究了KL變換的圖像壓縮方法,并使用MATLAB,針對同一幅原始圖像進行不同
2、方法的壓縮比較,給出了實驗仿真結果。本論文首先提出了用MATLAB來實現DCT變換的數字圖像壓縮技術, 方法簡單,快速,且誤差小。然后介紹了KLT圖像壓縮編碼的具體過程和方法。最后分析了圖像經過2種壓縮方法時,圖像質量的變化情況。2 算法原理2.1 DCT算法原理DCT變換利用傅立葉變換的性質。采用圖像邊界褶翻將像變換為偶函數形式,然后對圖像進行二維傅立葉變換,變換后僅包含余弦項,所以稱之為離散余弦變換。DCT編碼屬于正交變換編碼方式,用于去除圖像數據的空間冗余。變換編碼就是將圖像光強矩陣(時域信號)變換到系數空間(頻域信號)上進行處理的方法。在空間上具有強相關的信號,反映在頻域上是在某些特定
3、的區域內能量常常被集中在一起,或者是系數矩陣的分布具有某些規律。我們可以利用這些規律在頻域上減少量化比特數,達到壓縮的目的。圖像經DCT變換以后,DCT系數之間的相關性就會變小。而且大部分能量集中在少數的系數上,因此,DCT變換在圖像壓縮中非常有用,是有損圖像壓縮國際標準JPEG的核心。從原理上講可以對整幅圖像進行DCT變換,但由于圖像各部位上細節的豐富程度不同,這種整體處理的方式效果不好。為此,發送者首先將輸入圖像分解為或塊,然后再對每個圖像塊進行二維DCT變換,接著再對DCT系數進行量化、編碼和傳輸;接收者通過對量化的DCT系數進行解碼,并對每個圖像塊進行的二維DCT反變換。最后將操作完成
4、后所有的塊拼接起來構成一幅單一的圖像。對于一般的圖像而言,大多數DCT系數值都接近于0,所以去掉這些系數不會對重建圖像的質量產生較大影響。因此,利用DCT進行圖像壓縮確實可以節約大量的存儲空間。基于DCT的JPEG圖像壓縮編碼算法原理可用圖1表示:構造N*N塊量化器正向DCT熵編碼壓縮圖像原圖像熵解碼逆向DTC量化器構造N*N塊壓縮圖像重構圖像(a)編碼器(b)解碼器圖1 DCT算法原理框圖在編碼過程中,首先將輸入圖像顏色空間轉換后分解為88大小的數據塊,然后用正向二維DCT把每個塊轉變成64個DCT系數值,其中1個數值是直流(DC)系數,即88空域圖像子塊的平均值,其余的63個是交流(AC)
5、系數,接下來對DCT系數進行量化,量化過程實際上就是對 DCT 系數的一個優化過程,它是利用了人眼對高頻部分不敏感的特性來實現數據的大幅簡化。量化過程實際上是簡單地把頻率領域上每個成份,除以一個對于該成份的常數,且接著四舍五入取最接近的整數。這是整個過程中的主要有損運算。量化是圖像質量下降的最主要原因。量化后的數據,有一個很大的特點,就是直流分量相對于交流分量來說要大,而且交流分量中含有大量的0。這樣,對這個量化后的數據如何來進行簡化,從而再更大程度地進行壓縮呢。將量化后的系數進行“Z”字形編排,這樣做的特點就是會連續出現多個0,即充分利用相鄰兩圖像塊的特性,來再次簡化數據,從而再更大程度地進
6、行壓縮。最后將變換得到的量化的DCT系數進行編碼和傳送,這樣就完成了圖像的壓縮過程。在解碼過程中,形成壓縮后的圖像格式,先對已編碼的量子化的DCT系數進行解碼,然后求逆量化并把DCT系數轉化為88樣本像塊(使用二維DCT反變換),最后將操作完成后的塊組合成一個單一的圖像。這樣就完成了圖像的解壓過程。一個塊的二維DCT的定義如下: (1)對應的塊的二維IDCT則為: (2)式中,空域的、,頻域的、取值集合均為,其中: (3)將離散余弦變換變換寫為矩陣形式為: (4) (5)其中,為正交變換矩陣,為原圖像塊,為變換域圖像塊。2.2 KLT算法原理KLT變換又稱Hotelling變換,特征向量變換或
7、主分量方法。KL變換是遙感圖像增強和信息提取中用得最多的線性變換,是對原波段圖像進行波譜信息的線性投影變換,在盡可能不減少信息量的前提下,將原圖像的高維多光譜空間的像元亮度值投影到新的低維空間,減少特征空間維數,達到數據壓縮、提高信噪比、提取相關信息、降維處理和提取原圖像特征信息的目的,并能有效地提取影像信息。它可使原來多波段圖像經變換后提供出一組不相關的圖像變量,最前面的主分量具有較大的方差,包含了原始影像的主要信息,所以要集中表達信息,突出圖像的某些細部特征,可采用主分量變換來完成。KL變換是圖像壓縮中的一種最優正交變換。KLT的突出優點是去相關性好,它根據具體的圖像統計特性來決定它的變換
8、矩陣,對圖像有最好的匹配效果,能將信號在變換域的相關性全部解除,是最小均方誤差下的最佳變換。恢復圖像KLT變換量化區域抽樣哈弗曼編碼KLT逆變換量化恢復抽樣恢復哈弗曼譯碼原圖像KLT原理框圖可表示為:圖2 KLT算法原理框圖KLT變換就是對8x8的圖像矩陣求自協方差矩陣,對自協方差矩陣做特征值分解,得到由特征值從小到大排列的對角矩陣,和由特征向量組成的矩陣,特征矩陣與圖像矩陣做乘法,稱為正交變換,即KL變換,的到的新的矩陣每一行稱為一個新的變量,其中第一行幾乎包含了總方差以上的信息,其余行包含的信息依次減少,新矩陣的個元素之間是不相關的,因而KL變換去掉了變量之間的相關性。KLT是對向量做的一
9、個正交變換,目的是變換到后去除數據相關性。其中,是特征向量組成的矩陣,滿足,當都是實數時,是正交矩陣。用表示向量的平均值,的協方差矩陣記為,通過變換,得到: (6)寫成矩陣形式: (6)由此可見,做了KLT變換之后呢,成為了對角陣,也就是對于任意,有,當有,因此利用KLT去除了數據相關性。而且,的方差與協方差矩陣的第個特征值相等即。3 仿真分析利用MATLAB對算法進行仿真分析,測試環境為:操作系統為Win7,CPU為i5-3210M,內存為4GB,使用的MATLAB版本為R2012b。利用MATLAB產生仿真圖形界面如圖3所示。圖3 DCT和KLT仿真圖形界面設計3.1 DCT仿真分析輸入一
10、幅圖像,通過改變DCT量化值進行圖像壓縮,同時,利用相關參數對圖像質量進行對比分析,圖4為經過DCT壓縮的效果對比圖。 (a)原始圖像 (b)量化程度為16 (c)量化程度為32 (b)量化程度為64圖3 運用 DCT變化進行圖像壓縮效果對比圖通過肉眼觀察,可以發現量化程度越大圖像越清晰,反之,越模糊,細節信息越差。采用不同的量化程度可以改變圖像的清晰度及文件的大小,本文將利用圖像的相關性能參數對壓縮圖像進行比較。圖像的方差、平均梯度、信息熵及對比度與圖像質量正相關。圖像方差越大,表明圖像灰度層次越豐富;平均梯度越大,圖像層次越多;信息熵越大,表明圖像的信息量越大。通過表1,可以清晰地看出量化
11、程度越大,得到的壓縮圖像性能越好,相對的圖像大小也增大,但原圖相比,圖像性能變化不明顯,但壓縮效果明顯。表1 DCT變換得到壓縮圖像性能參數比較方差平均梯度信息熵(bit)文件大小(KB)圖3(a)1.9545e+035.43047.177126.4圖3(b)1.8785e+033.44707.14129.82圖3(c)1.9011e+034.10217.153812圖3(d)1.9167e+034.38527.155812.73.2 KLT仿真分析利用KLT算法對圖4(a)圖進行圖像壓縮得到圖5。 (a)量化程度為16 (b)量化程度為32 (c)量化程度為32 (b)量化程度為64圖4運用
12、 KLT變化進行圖像壓縮效果對比圖從圖像的方差、信息熵及平均梯度對圖像性能進行分析,得到表2。表2 KLT變換得到壓縮圖像性能參數比較方差平均梯度信息熵(bit)文件大小(KB)圖3(a)1.9545e+035.43047.177126.4圖4(a)1.8484e+032.88657.12269.21圖4(b)1.8759e+033.68477.140411.4圖4(c)1.9031e+034.32257.156112.8圖4(d)1.9212e+034.45887.156312.8由表2可以得到KLT變換可以對圖像進行壓縮,并且采用相同的量化程度,DCT比KLT變化效果較好。5 總結本文敘述
13、的圖像壓縮編碼算法,DCT是正交變換,它可以將8*8圖像的空間表達式轉換為頻率域,只需要用少量的數據點表示圖像;DCT產生的系數很容易被量化,因此能獲得好的塊壓縮;DCT算法的性能很好,它有快速算法,因此它在軟件中容易實現;而且DCT算法是對稱的,所以利用逆DCT算法可以用來解壓縮圖像。由實驗仿真結果可知,當圖像壓縮比增大時,也即壓縮效率減小時,圖像的質量也將降低,人們可以根據需要的圖像的質量來規定壓縮比的大小。圖像經過不同的壓縮比后,圖像的質量變化的同時,圖像的信噪比也跟著變化。壓縮比增大時,則在信道傳輸的時候丟失的信息就越多,這樣使得信號與噪聲的比值變小。利用DCT變換進行圖像壓縮可以節約
14、大量的存儲空間。壓縮應該在最合理地近似原圖像的情況下使用最少的系數。由于之前存在對KLT變換的誤解,在進理論補充后,發現該方法并不能全部消除變換后系數間的相關性,各數據塊之間相關性沒有消除,數據塊也可能存在極弱的相關性。由于水平有限,并不能解決,即使如此,該方法應用于圖像的壓縮編碼中效果也極其明顯。KLT沒有快速算法,因此對信息量大的圖像編碼速度比較慢,但在此次試驗中用的是較小的圖像,所以處理速度效果不明顯。參考文獻1N Ahmed,T Natarajan,K.T.Rao Discrete cosine transformJIEEE TranOn Computers, 1974, C-23:
15、90-93 2 全子一 圖像信源壓縮編碼及信道傳輸理論與新技術M 北京:北京工業大學出版社, 20063 何小海,主編數字圖像通信及其應用M成都:四川大學出版社,2006 4 羅開仲,黃士坦,楊華民DCT算法及其與小波編碼在圖像處理中的比較J 計算機技術 與發展,2006,16(9) 5 Xiong Z,Orchard M,Guleryuz OA DCT-based embedded image coder JIEEE Signal Processing Letters,1996,11(3):289-290 6Shaorong Chang,Lawrence Carin,A modified S
16、PIHT algorithm for image coding with a joint MSE and classification distortion measure J. IEEE Transactions on Image Processing, 2006, 15(3): 713-725 附錄:MATLAB代碼%主程序clc;clearI=imread(football.jpg);clf reset set(gcf,unit,normalized,position,0.1,0.2,0.45,0.45);%設置圖形窗大小set(gcf,defaultuicontrolunits,nor
17、malized);set(gcf,defaultuicontrolfontsize,11);set(gcf,defaultuicontrolfontname,楷書);set(gcf,defaultuicontrolhorizontal,left);% set(gcf,menubar,none); %刪除圖形窗工具條str=KLT DCT性能比較;set(gcf,name,str ,numbertitle,off); %書寫圖形窗名z=32;str1=量化程度;htext=uicontrol(gcf,style,text,. %制作靜態說明文本框 position,0.1,0.8,0.33,0.
18、1,. string,str1,sprintf(%1.4g,z);hslider=uicontrol(gcf,style,slider,. %創建滑動鍵 position,0.1,0.6,0.8,0.1,. max,64,min,0,. %設最大阻尼比為2,最小阻尼比為0.02 sliderstep,1/64,1/64,.%箭頭操縱滑動步長1%,游標滑動步長5% Value,32); %缺省取阻尼比等于0.5 set(hslider,callback,. %操作滑動鍵,引起回調 z=get(gcbo,value);,. %獲得滑動鍵狀態值 callcheck(htext,str1,z); %被
19、回調的函數文件 hpush=uicontrol(gcf,Style,push,. %制作與列表框配用的按鍵 position,0.1,0.05,0.18,0.15,string,原始圖像);set(hpush,callback,jpeg_show(I) hpush=uicontrol(gcf,Style,push,. %制作與列表框配用的按鍵 position,0.4,0.05,0.18,0.15,string,KLT);set(hpush,callback,jpeg_klt(I,z) hpush=uicontrol(gcf,Style,push,. %制作與列表框配用的按鍵 position
20、,0.7,0.05,0.18,0.15,string,DCT);set(hpush,callback,jpeg_dct(I,z) %灰度圖像的klt正反變換 function y=klt(x,mask) IM=x;%讀取圖像 IM=im2uint8(IM); %若圖像尺寸不是8的整數倍,補0,補成8的整數倍 cc1,cc2=size(IM);%cc1為IM的行數,cc2為IM的列數 a=8-mod(cc1,8); b=8-mod(cc2,8); cc3=cc1+a; cc4=cc2+b; IM(cc3,cc4)=IM(cc1,cc2); IM(1:cc1,cc2+1:cc4)=IM(1:cc1
21、,cc2-b+1:cc2); IM(cc1+1:cc3,1:cc2)=IM(cc1-a+1:cc1,1:cc2); IM(cc1+1:cc3,cc2+1:cc4)=IM(cc1,cc2); %若圖像尺寸不是8的整數倍,補成8的整數倍 k=1; for l1=1:8:(cc3-7) %將圖像矩陣-8X8的矩陣存起來 for l2=1:8:(cc4-7) F(:,:,k)=IM(l1:l1+7,l2:l2+7); k=k+1; end %將圖像矩陣-8X8的矩陣存起來 end F=uint8(F); k=k-1; qq=k; d=0; d=uint32(d); IM=uint32(IM); for
22、 n1=1:cc3 %求均值 for n2=1:cc4 d=IM(n1,n2)+d; end end d=d/(cc1*cc2); d=uint8(d); %求均值 IM=uint8(IM); B2=zeros(64); jz=d;%jz為灰度均值 for ee=1:qq A=F(:,:,ee); TZZ;%調用函數求一個8X8的矩陣的特征矩陣 B2=B2+B; end B=B2/ee;%B為均方差矩陣 V,D=eig(B);%求特征向量與特征值 Q=V; for k=1:qq A=F(:,:,k); ee=1; for n1=1:8 %將元素變換成一維 for n2=1:8 %將元素變換成一
23、維 X(ee,1)=A(n1,n2); YSZ(ee,1)=mask(n1,n2);%YSZ為mask變換成的一維數組 ee=ee+1; end %將元素變換成一維 end %將元素變換成一維 X=double(X); Y=Q*X;%變換后的矩陣放在Y中 Y=flipud(Y); Y=Y.*YSZ; Y=flipud(Y); X1(:,:,k)=Q*Y;%求還原后的矩陣 end k=1; for l1=1:8:(cc3-7) %將矩陣8X8矩陣放入IM2中 for l2=1:8:(cc4-7)%將矩陣8X8矩陣放入IM2中 H2=X1(:,:,k); ee=1; for n1=1:8 for
24、n2=1:8 C2(n1,n2)=H2(ee,1); ee=ee+1; end end IM2(l1:l1+7,l2:l2+7)=C2; k=k+1; end %將矩陣8X8矩陣放入IM2中 end %將矩陣8X8矩陣放入IM2中 IM=IM(1:cc1,1:cc2); IM2=IM2(1:cc1,1:cc2); y=uint8(IM2);function jpeg_dct(I,z)tic% I=imread(football.jpg);%讀入原始圖像,該圖片在安裝matlab的目錄中找,原圖為jpeg圖象Y=im2double(I);%圖像存儲類型轉換,matlab讀入圖像的數據是uint8
25、,而matlab中數值一般采用double型(64位)存儲和運算。所以要先將圖像轉為double格式的才能運算T=dctmtx(8);%離散余弦變換矩陣,使用由dctmtx函數返回的DCT變換矩陣,這種方法較適合于較小的輸入方陣(例如88或1616),計算二維DCT,矩陣T及其轉置是DCT函數P1*X*P2的參數%B = blkproc(A,m n,fun, parameter1, parameter2, .)%x就是每一個分成的8*8大小的塊,P1*x*P2相當于像素塊的處理函數,p1=T p2=T,也就是fun=p1*x*p2=T*x*T的功能是進行離散余弦變換%x代表A,對一副原始圖像,
26、選取它的最左上角8x8的矩陣,并將每一個像素值轉換到-128到127的范圍內,得到矩陣x.%RGB圖像分三個通道,分別處理B(:,:,1)=blkproc(Y(:,:,1),8 8,P1*x*P2,T,T);%將原始圖像8x8的像素塊轉換成代表不同頻率分量的系數集,DCT后的64個DCT系數與DCT前的64個像素塊相對應B(:,:,2)=blkproc(Y(:,:,2),8 8,P1*x*P2,T,T);B(:,:,3)=blkproc(Y(:,:,3),8 8,P1*x*P2,T,T);%對原圖像進行DCT變換z=fix(z);%量化,向0靠攏取整t(1:z)=1;t(z+1:64)=0;m
27、ask=jpeg_Dzz8(t);%Z字形掃描B2(:,:,1)=blkproc(B(:,:,1),8 8,P1.*x,mask);%只保留DCT變換的左上角10個系數,數據壓縮,丟棄右下角高頻數據,達到圖像壓縮的目的B2(:,:,2)=blkproc(B(:,:,2),8 8,P1.*x,mask);%變換后的系數值較大的會集中在區域的左上部,即低頻分量都集中在左上部。保留的也是這一部分。B2(:,:,3)=blkproc(B(:,:,3),8 8,P1.*x,mask);%其他部分的系數被舍去,在恢復信號時對它們補 0 。這樣以來,由于保留了大部分圖像信號能量,在恢復信號后,其質量不會產生
28、顯著變化。%數據壓縮,丟棄右下角高頻數據I2(:,:,1)=blkproc(B2(:,:,1),8 8,P1*x*P2,T,T);%重構圖像I2(:,:,2)=blkproc(B2(:,:,2),8 8,P1*x*P2,T,T);I2(:,:,3)=blkproc(B2(:,:,3),8 8,P1*x*P2,T,T);%進行DCT反變換,得到壓縮后的圖像figure;set(gcf,unit,normalized,position,0.4,0.5,0.3,0.3);%設置圖形窗大小set(gcf,menubar,none); %刪除圖形窗工具條str=量化程度;set(gcf,name,str
29、 sprintf(%1.4g,z),numbertitle,off); %書寫圖形窗名imshow(I2)title(DCT變換壓縮后的圖像)imwrite(I2,dct.jpg);%輸出壓縮后的圖像,文件名為football_dct.jpga=toc;uicontrol(style, text, unit, normalized, . position, 0 0 0.2 0.1, string, num2str(a), . FontSize, 18)%搜索方式:對角的Z字形掃描;二維的圖像矩陣利用一維的搜索方式。function y=jpeg_Dzz8(x)t=1;for k=2:9 for
30、 m=1:k-1 if rem(k,2)=0 y(k-m,m)=x(t); t=t+1; else y(m,k-m)=x(t); t=t+1; end endendfor k=10:16 for m=k-8:8 if rem(k,2)=0 y(k-m,m)=x(t); t=t+1; else y(m,k-m)=x(t); t=t+1; end endendfunction callcheck(htext,str1,z)set(htext,string,str1,sprintf(%1.4g,z); %更新靜態文本框內容 2function jpeg_klt(I,z)tic% I=imread(f
31、ootball.jpg);%讀入原始圖像,該圖片在安裝matlab的目錄中找,原圖為jpeg圖象z=fix(z);%量化,向0靠攏取整t(1:z)=1;t(z+1:64)=0;mask=jpeg_Dzz8(t);%Z字形掃描I2(:,:,1)=klt(I(:,:,1),mask);I2(:,:,2)=klt(I(:,:,2),mask);I2(:,:,3)=klt(I(:,:,3),mask);figure;set(gcf,unit,normalized,position,0.2,0.5,0.3,0.3);%設置圖形窗大小set(gcf,menubar,none); %刪除圖形窗工具條str=
32、量化程度;set(gcf,name,str sprintf(%1.4g,z),numbertitle,off); %書寫圖形窗名imshow(I2);title(KLT變換壓縮后的圖像) imwrite(I2,klt.jpg);%輸出壓縮后的圖像,文件名為klt.jpga=toc;uicontrol(style, text, unit, normalized, . position, 0 0 0.2 0.1, string, num2str(a), . FontSize, 18)function jpeg_show(I)% I=imread(football.jpg);figure;set(gcf,unit,normalized,position,0,0.5,0.3,0.3);%設置圖形窗大小set(gcf,menubar,none); %刪除圖形窗工具條str=KLT DCT性能比較;set(gcf,name,str ,numbertitle,off); %書寫圖形窗名imshow(I) %顯示原始圖像title(原始圖像)%求一個8X8的矩陣的特征矩陣,被調用函數 k=1; for n1=1:8 %掃描8X8矩陣 fo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司采購合金管理制度
- 塔吊特種設備管理制度
- 計算機三級考試個性化學習試題及答案
- 員工外出檢測管理制度
- 健全安全生產管理制度
- 嵌入式開發中的數據采集技術試題及答案
- 小區門口車輛管理制度
- 公司禮品預訂管理制度
- 學校基建后勤管理制度
- 塔吊作業前后管理制度
- GB/T 9865.1-1996硫化橡膠或熱塑性橡膠樣品和試樣的制備第一部分:物理試驗
- 大一物理實驗報告 答辯 霍爾效應與應用設計PPT
- GB/T 3921-2008紡織品色牢度試驗耐皂洗色牢度
- 醫療器械質量管理體系文件全套
- 《巡游出租汽車經營申請表》
- 2023年山東高考英語試題答案及詳細解析word版
- 基因藥物課件
- 集成電路引腳排列圖大全
- 水污染控制工程課程設計任務書
- 大學新開課教師試講考核表
- 2022內分泌內科三基考試題庫及答案
評論
0/150
提交評論