資源描述:
《算術(shù)編碼實(shí)驗(yàn)報(bào)告信息論與編碼實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、華僑大學(xué)工學(xué)院實(shí)驗(yàn)報(bào)告課程名稱(chēng):信息論與編碼實(shí)驗(yàn)項(xiàng)目名稱(chēng):算術(shù)編碼學(xué)院:工學(xué)院專(zhuān)業(yè)班級(jí):11級(jí)信息工程姓名:學(xué)號(hào):1195111016指導(dǎo)教師:傅玉青2013年11月25日預(yù)習(xí)報(bào)告一、實(shí)驗(yàn)?zāi)康模?)進(jìn)一步熟悉算術(shù)編碼算法(2)掌握MATLAB語(yǔ)言程序設(shè)計(jì)和調(diào)試過(guò)程中數(shù)值的進(jìn)制轉(zhuǎn)換、數(shù)值與字符串之間的轉(zhuǎn)換等技術(shù)。二、實(shí)驗(yàn)儀器(1)計(jì)算機(jī)(2)編程軟件MATLAB三、實(shí)驗(yàn)原理算術(shù)編碼是圖像壓縮的主要算法之一。是一種無(wú)損數(shù)據(jù)壓縮方法,也是一種熵編碼的方法。和其它熵編碼方法不同的地方在于,其他的熵編碼方法通常是把輸入的消息分割為
2、符號(hào),然后對(duì)每個(gè)符號(hào)進(jìn)行編碼,而算術(shù)編碼是直接把整個(gè)輸入的消息編碼為一個(gè)數(shù),一個(gè)滿(mǎn)足(0.0≤n<1.0)的小數(shù)n。當(dāng)所有的符號(hào)都編碼完畢,最終得到的結(jié)果區(qū)間即唯一的確定了已編碼的符號(hào)串行。任何人使用該區(qū)間和使用的模型參數(shù)即可以解碼重建得到該符號(hào)串行。實(shí)際上我們并不需要傳輸最后的結(jié)果區(qū)間,實(shí)際上,我們只需要傳輸該區(qū)間中的一個(gè)小數(shù)即可。在實(shí)用中,只要傳輸足夠的該小數(shù)足夠的位數(shù)(不論幾進(jìn)制),以保證以這些位數(shù)開(kāi)頭的所有小數(shù)都位于結(jié)果區(qū)間就可以了。預(yù)習(xí)報(bào)告四、實(shí)驗(yàn)內(nèi)容及步驟(1)計(jì)算信源符號(hào)的個(gè)數(shù)n(2)將第i(i=1~n)個(gè)
3、信源符號(hào)變換成二進(jìn)制數(shù)(3)計(jì)算i(i=1~n)個(gè)信源符號(hào)的累加概率Pi為(4)預(yù)先設(shè)定兩個(gè)存儲(chǔ)器,起始時(shí)令,表示空集(5)按以下公式迭代求解C和A對(duì)于二進(jìn)制符號(hào)組成的序列,r=0,1。注意事項(xiàng):計(jì)算C(S,r)時(shí)的加法運(yùn)用的是二進(jìn)制加法(6)計(jì)算序列S編碼后的碼長(zhǎng)度L為(7)如果C在第L位后沒(méi)有尾數(shù),則C的小數(shù)點(diǎn)后L位即為序列S的算術(shù)編碼;如果C在第L位后有尾數(shù),則取C的小數(shù)點(diǎn)后L位,再進(jìn)位到第L位,即為序列S的算術(shù)編碼。實(shí)驗(yàn)報(bào)告五、實(shí)驗(yàn)原始數(shù)據(jù)實(shí)驗(yàn)程序:clcclear;p=input('輸入信源分布p=');S=i
4、nput('輸入待編碼的序列S=');[x,y]=size(p);n=y;n;輸出信源符號(hào)個(gè)數(shù)nfori=1:nz=p(i);forL=1:2temp=z.*2;if(temp<1)s(L)=0;z=temp;elsez=temp-1;s(L)=1;endend%將信源符號(hào)概率轉(zhuǎn)化為二進(jìn)制disp('二進(jìn)制數(shù)'),disp(s);s=0;endP(1:n)=0;fort=1:n-1P(t+1)=p(t)+P(t);enddisp('累加概率'),disp(P);%計(jì)算累加概率并輸出x=length(S);A=1;C=0;
5、fork=1:1:xC=C+A*P(1,S(1,k)+1);A=A*p(1,S(1,k)+1);endL=ceil(abs(log2(1/A)));%編碼后碼長(zhǎng)q=quantizer([3*x,3*x-1]);c=num2bin(q,C);%將累積分布概率轉(zhuǎn)化為二進(jìn)制c_B=c(2:L+1);%取小數(shù)點(diǎn)后長(zhǎng)度為L(zhǎng)的碼字%判斷L位以后是否有尾數(shù),若有尾數(shù)就進(jìn)位到第L位c_D=bin2dec(c_B);%轉(zhuǎn)換成十進(jìn)制c2=c(L+2:3*x);%取C的L+1后幾位c2_D=bin2dec(c2);%將后幾位轉(zhuǎn)換成十進(jìn)制ifc
6、2_D~=0%C后有位數(shù)進(jìn)1c_D=c_D+1;mc_B=dec2bin(c_D,L);%轉(zhuǎn)換成十進(jìn)制else%C后沒(méi)有位數(shù)則保持不變mc_B=c_B;enddisp('編碼后的碼字為'),disp(mc_B);%輸出編碼后的碼字圖1運(yùn)行結(jié)果指導(dǎo)老師簽名:時(shí)間:實(shí)驗(yàn)報(bào)告五、數(shù)據(jù)處理表1算術(shù)編碼結(jié)果信源消息符號(hào)A(s)C(s)空10s10.110.1s20.10010.1s30.0110110.11s40.010100010.11s50.00111100110.111s60.0010110110010.111s70.000
7、010110110010.11011s80.0000010110110010.1101010實(shí)驗(yàn)報(bào)告五、實(shí)驗(yàn)結(jié)論及分析討論通過(guò)這次實(shí)驗(yàn),加深了我對(duì)算術(shù)編碼的理解,尤其是算術(shù)編碼定理及其對(duì)信源進(jìn)行編碼的具體過(guò)程。算術(shù)編碼用到兩個(gè)基本的參數(shù):符號(hào)的概率和它的編碼間隔。信源符號(hào)的概率決定壓縮編碼的效率,也決定編碼過(guò)程中信源符號(hào)的間隔,而這些間隔包含在0到1之間。對(duì)信源進(jìn)行算數(shù)編碼需要兩個(gè)過(guò)程,第一個(gè)過(guò)程立信源概率表,第二個(gè)過(guò)程信源發(fā)出的符號(hào)序列進(jìn)行掃描編碼。預(yù)習(xí)報(bào)告成績(jī)實(shí)驗(yàn)報(bào)告成績(jī)實(shí)驗(yàn)操作成績(jī)總成績(jī)