資源描述:
《數(shù)字圖像處理實驗六壓縮編碼》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學術(shù)論文-天天文庫。
1、實驗六統(tǒng)計壓縮編碼一、實驗目的:1,掌握不等長編碼的基本原理及方法2,掌握衡量壓縮效果的技術(shù)指標3,掌握Huffman編碼的方法二,實驗條件1,MATLAB2,典型的灰度、彩色圖像文件三,原理1.去除數(shù)據(jù)冗余度可以有效的壓縮數(shù)據(jù)2.圖像編碼的主要技術(shù)指標:壓縮比、客觀評價值SNR、主觀評價值四,實驗內(nèi)容:1,通過MATLAB編程,對8*8圖像子塊實施Hiffman編碼并計算平均碼長2,計算上述編碼的效率,壓縮比并對相應數(shù)據(jù)作出解釋。五,實驗步驟1,Huffman編碼的方法與步驟如下所示:(1)將概率按
2、從小到大的順序排列(2)給兩個概率最小的信源符號和八〃2)各分配一個碼位“0”和“1”,將這兩個信源符號合并成一個新符號,并用這兩個最小的概率之和最為新符號的概率,結(jié)果得到一個只包含(n-1)個信源符號的新信源,稱為信源的第一次縮減信源,用S1表不。(3)將縮減信源S1的符號仍按概率從大到小的順序排列,重復步驟2,得到只含(n-2)個符號的縮減信源S2。(4)重復上述步驟,直至縮減信源只剩兩個符號為止,此時所剩的兩個符號的概率之和為1。然后從最后一級縮減信源開始,依編碼路徑向前返回,就得到各信源符號所
3、對應的碼字。2,假設(shè)這個8*8的字塊是由0-5這六個像素組成,對這個字塊進行概率統(tǒng)計,并按概率從小到大的順序排列,如下所示:P=(0.250.250.20.150.10.05)則對于假設(shè)的字塊進行Huffman編碼的matlab程序如下所;:n=input('N-);%L=0;H=0;fori=l:nP(i)=input('P=’);%輸入像素概率分布s=s+P(i);endifs?=1errorf不符合概率分布*);endP=sort(P);P=P;mark=zeros(n-l,n);%mark為n
4、-1行,n列矩陣,用來記錄甸行概率排列次序fori=l:n-l[P,num]=sort(P);%對輸入元素排序并記錄mark(i,:)=[num(1:n-i+1),zeros(1,i-1)];P=[P(l)+P(2),P(3:n),l];endfori=l:n-ltable(i,:)=blanks(n*n);%blanks創(chuàng)建空格串endtable(n-l,n)=T;table(n-l,2*n)-0ffori=2:n-ltable(n-i,l:n-l)=table(n-i+1,n*(find(mark
5、(n-i+l,:)==1))-(n-2):n*(find(mark(n-i+l,:)==l)));°/(^mark的記錄依次賦值table(n-i,n)='r;table(n-i,n+1:2*n-l)=table(n-i,l:n-l);table(n-i,2*n)-0,;forj=l:i-ltable(n-i,(j+1)*n+1:(j+2)*n)=table(n-i+1,n*(find(mark(n-i+1,:)==j+1)-1)+1:n*find(mark(n-i+1,:)==j+1));%mark
6、的記錄依次賦值endend%得到編碼后的碼字fori=l:nW(i,1:n)=table(l,n*(find(mark(l,:)==i)-1)+1:find(mark(l,:)==i)*n);l(i)=length(find(abs(W(i,:))?=32));%32表示空字符,要找不是空字符的個數(shù),即為每個數(shù)編碼的個數(shù)L=L+p(i)*l(i);%計算平均碼長H=H-p(i)*log2(p(i));%計算信源摘endxiaolv=H/L;%計算編碼效率disp(’輸出每個概率的編碼’);disp(W
7、);disp(’輸出平均碼長L:?);disp(L);disp(’輸出編碼效率xiaolv:’);disp(xiaolv);3,計算結(jié)果如下:(1)輸出每個灰度級的編碼00010000001111001(2)計算其平均碼長和編碼效率平均碼長L=2.4500編碼效率xiaolv=0.9891KATLABFileEditDebugDesktopWindowHelpDfi?
8、"li舞137CurrentDirectory:C:PrograinFilesHATLAB71work[…jShortcu
9、tsLfJHowtoAddVhtt?sMtwV/orksDaceCommandWindowHLpwijI?!田田田S田田SEcha6dou4dou(4439991HnuaStartCurrentDirectoryWorkspaceCommandHistory