信息論霍夫曼、香農(nóng)-費諾編碼_第1頁
信息論霍夫曼、香農(nóng)-費諾編碼_第2頁
信息論霍夫曼、香農(nóng)-費諾編碼_第3頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、信息論第二次作業(yè)數(shù)據(jù)壓縮算法的實現(xiàn) 班別:1307011班 學號姓名:黃丹丹實驗目的:通過該實驗,利用香農(nóng)編碼-費諾編碼和霍夫曼編碼實現(xiàn)圖像數(shù)據(jù)壓縮。二、實驗原理:香農(nóng)-費諾編碼 首先,將 HYPERLINK /lemma/ShowInnerLink.htm?lemmaId=41568 t /_blank 信源符號以概率遞減的次序排列進來,將排列好的信源符號劃分為兩大組,使第組的概率和近于相同,并各賦于一個二元碼符號”0”和”1”.然后,將每一大組的信源符號再分成兩組,使同一組的兩個小組的概率和近于相同,并又分別賦予一個二元碼符號。依次下去,直至每一個小組只剩下一個信

2、源符號為止。這樣,信源符號所對應的碼符號序列則為編得的碼字。譯碼原理,按照編碼的 HYPERLINK /lemma/ShowInnerLink.htm?lemmaId=111776 t /_blank 二叉樹從樹根開始,按譯碼序列進行逐個的向其 HYPERLINK /lemma/ShowInnerLink.htm?lemmaId=56076517 t /_blank 葉子結(jié)點走,直到找到相應的信源符號為止。之后再把指示標記回調(diào)到樹根,按照同樣的方式進行下一序列的譯碼到序列結(jié)束。如果整個譯碼序列能夠完整的譯出則返回成功,否則則返回譯碼失敗。2、霍夫曼編碼 霍夫曼編碼屬于碼詞長度可變的編碼類,是霍

3、夫曼在1952年提出的一種編碼方法,即從下到上的編碼方法。同其他碼詞長度可變的編碼一樣,可區(qū)別的不同碼詞的生成是基于不同符號出現(xiàn)的不同概率。生成霍夫曼編碼算法基于一種稱為“編碼樹”(codingtree)的技術(shù)。算法步驟如下:(1)初始化,根據(jù)符號概率的大小按由大到小順序?qū)Ψ栠M行排序。(2)把概率最小的兩個符號組成一個新符號(節(jié)點),即新符號的概率等于這兩個符號概率之和。重復第2步,直到形成一個符號為止(樹),其概率最后等于1。從編碼樹的根開始回溯到原始的符號,并將每一下分枝賦值為1,上分枝賦值為0。三、實驗環(huán)境 matlab7.1實驗內(nèi)容對于給定的信源的概率分布,用香農(nóng)-費諾編碼實現(xiàn)圖像壓

4、縮對于給定的信源的概率分布,用霍夫曼編碼實現(xiàn)圖像壓縮五、實驗過程1.香農(nóng)-費諾編碼編碼1function c=shannon(p) %p=0.2 0.15 0.15 0.1 0.1 0.1 0.1 0.1 %shannon(p) p,index=sort(p) p=fliplr(p) n=length(p) pa=0 for i=2:n pa(i)= pa(i-1)+p(i-1) end k=ceil(-log2(p) c=cell(1,n) for i=1:n ci=” tmp=pa(i) for j=1:k(i) tmp=tmp*2 if tmp=1 tmp=tmp-1 ci(j)=1 e

5、lse ci(j) = 0 end end end c = fliplr(c) c(index)=c編碼2clc;clear;A=0.4,0.3,0.1,0.09,0.07,0.04;A=fliplr(sort(A);%降序排列m,n=size(A);for i=1:nB(i,1)=A(i);%生成B的第1列end%生成B第2列的元素a=sum(B(:,1)/2;for k=1:n-1if abs(sum(B(1:k,1)-a)=abs(sum(B(1:k+1,1)-a)break;endendfor i=1:n%生成B第2列的元素if i=kB(i,2)=0;elseB(i,2)=1;end

6、end%生成第一次編碼的結(jié)果END=B(:,2);END=sym(END);%生成第3列及以后幾列的各元素j=3;while (j=0)p=1;while(p=n)x=B(p,j-1);for q=p:nif x=-1break;elseif B(q,j-1)=xy=1;continue;elsey=0;break;endendendif y=1q=q+1;endif q=p|q-p=1B(p,j)=-1;elseif q-p=2B(p,j)=0;END(p)=char(END(p),0;B(q-1,j)=1;END(q-1)=char(END(q-1),1;elsea=sum(B(p:q-1

7、,1)/2;for k=p:q-2if abs(sum(B(p:k,1)-a)=abs(sum(B(p:k+1,1)-a);break;endendfor i=p:q-1if i=kB(i,j)=0;END(i)=char(END(i),0;elseB(i,j)=1;END(i)=char(END(i),1;endendendendp=q;endC=B(:,j);D=find(C=-1);e,f=size(D);if e=nj=0;elsej=j+1;endendBAENDfor i=1:nu,v=size(char(END(i);L(i)=v;endavlen=sum(L.*A)2.霍夫曼編碼functionc=huffman(p)n=size(p,2)if n=1 c=cell(1,1) c1= returnendp1,i1=min(p)index=(1:i1-1),(i1+1:n)p=p(index)n=n-1p2,i2=min(p)index2=(1:i2-1),(i2+1:n)p=p(in

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論