下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)霍夫曼二元編碼% function h,l=huffman(p)clear;clc;p=0.1 0.3 0.05 0.09 0.21 0.25;%p=0.2 0.19 0.18 0.17 0.15 0.10 0.01;%測(cè)試用數(shù)據(jù)%檢測(cè)概率有無數(shù)值小于0,小于0時(shí)報(bào)錯(cuò)if (length(find(p10e-10) error(Not a prob vector,component do not add to 1)endn=length(p);%檢測(cè)有幾個(gè)概率事件q=p
2、;m=zeros(n-1,n); %生成0矩陣for i=1:n-1; q,l=sort(q);%對(duì)q進(jìn)行升序排序,排序結(jié)果存放在q中,元素位置存放在l中。 m(i,:)=l(1:n-i+1),zeros(1,i-1);%相加后少的那一位位號(hào)置0 q=q(1)+q(2),q(3:n),1;%把最小兩個(gè)概率相加,由于相加后少一位,將該位置1end%生成空矩陣,大小為n*n2,其中每個(gè)碼最多占用n個(gè)。for i=1:n-1 c(i,:)=blanks(n*n);%blanks是空格函數(shù)end% 以下計(jì)算各個(gè)元素碼字%如m所示,矩陣最后一行的兩個(gè)非零值先置為1和0。每一位占用7bitc(n-1,n)
3、=1;%c存放編碼,開始編碼c(n-1,2*n)=0;%先設(shè)置第一次的兩個(gè)分支for i=2:n-1%繼續(xù)編碼%find(m(n-i+1,:)=1),查找位置號(hào)為1的元素。%n*(find(m(n-i+1,:)=1)-(n-2):n*(find(m(n-i+1,:)=1);此條語句作用是對(duì)應(yīng)到碼字所在的%后四位移到上一行的第一個(gè)元素的前四位,所得到的最后一位用于添加1或0 c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)=1)-(n-2):n*(find(m(n-i+1,:)=1);% c(n-i,n)=1; c(n-i,n+1:2*n-1)=c(n-i,1:n-
4、1); c(n-i,2*n)=0; for j=1:i-1 %此語句作用是把此次未編碼的移到上一行對(duì)應(yīng)位置去 c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)=j+1)-1)+1:n*find(m(n-i+1,:)=j+1); endend for i=1:n%將最終的編碼存放在h中,ll存放每位編碼的長(zhǎng)度 h(i,1:n)=c(1,n*(find(m(1,:)=i)-1)+1:find(m(1,:)=i)*n); ll(i)=length(find(abs(h(i,:)=32);%計(jì)算最終得到各碼的碼長(zhǎng)。 endl=sum(p.*ll);
5、%平均碼長(zhǎng)H=-sum(p.*log2(p);%顯示各參數(shù)str = sprintf(信源熵:H=%0.3f,H);disp(str);str = sprintf(平均碼長(zhǎng)為:l=%0.4f,l);disp(str);str = sprintf(編碼效率:=%0.4f,H/l);disp(str);disp(二元霍夫曼編碼為:),disp(h)霍夫曼三元編碼%function h,l=huffman(p);clear;clc;p=0.1 0.3 0.05 0.09 0.21 0.25;% disp(概率分布);% pN=length(p);%統(tǒng)計(jì)事件個(gè)數(shù)r=3;%三元% kk=ceil(N-r
6、)/(r-1)*(r-1)+r-N% (N-r)/(r-1)*(r-1)q=p(1:N),zeros(1,ceil(N-r)/(r-1)*(r-1)+r-N);n=length(q);A=(n-r)/(r-1)+1;m=zeros(A,n);for i=1:A q,l=sort(q); m(i,:)=l(1:n-2*(i-1),zeros(1,2*(i-1); q=sum(q(1:r),q(r+1:n),ones(1,r-1);end for i=1:A c(i,:)=blanks(n*n);endc(A,n)=0;c(A,2*n)=1;c(A,3*n)=2;for i=1:(A-1) c(A
7、-i,1:n-1)=c(A-i+1,n*(find(m(A-i+1,:)=1)-(n-2):n*(find(m(A-i+1,:)=1); c(A-i,n)=0; c(A-i,n+1:2*n-1)=c(A-i,1:n-1); c(A-i,2*n)=1; c(A-i,2*n+1:3*n-1)=c(A-i,1:n-1); c(A-i,3*n)=2; for j=1:2*i c(A-i,(j+2)*n+1:(j+3)*n)=c(A-i+1,n*(find(m(A-i+1,:)=j+1)-1)+1:n*find(m(A-i+1,:)=j+1); endendfor i=1:N h(i,1:n)=c(1,
8、n*(find(m(1,:)=i)-1)+1:find(m(1,:)=i)*n); ll(i)=length(find(abs(h(i,:)=32); endH=-sum(p.*log2(p);l=sum(p.*ll);str = sprintf(信源熵:H=%0.3f,H);disp(str);str = sprintf(三元霍夫曼編碼平均碼長(zhǎng):l=%0.2f,l);disp(str);str = sprintf(編碼效率:=%0.4f,H/(l*log2(r);disp(str);disp(三元霍夫曼編碼為:),disp(h)%利用DCT變換進(jìn)行圖像壓縮的MATLAB程序clc;clear
9、;%清屏和數(shù)據(jù)空間RGB=imread(lenna.bmp);%讀取圖片I=rgb2gray(RGB);%灰度變換J=dct2(I);%DCT變換imshow(log(abs(J),)%用指定的灰度范圍 low high且用指數(shù)形式顯示灰度圖像J。colormap(jet(64);%colormap來定義圖像顯示用的顏色查找表。colorbar;%在坐標(biāo)軸旁邊顯示顏色條J(abs(J)10)=0; % 將J中小于10的值置零K=idct2(J);%DCT反變換figure,imshow(I);title(壓縮前);%顯示灰度圖figure,imshow(K,0 255);title(解壓后);
10、%重構(gòu)圖像顯示。在灰度范圍0 255內(nèi)顯示。%利用離散余弦變換進(jìn)行JPEG圖像壓縮clear;clc;I=imread(lenna.bmp);%讀入原圖像%I=imread(rice.tif);%讀入原圖像I=rgb2gray(I);%轉(zhuǎn)換成灰度用原圖不會(huì)報(bào)錯(cuò);I=im2double(I);%將原圖像轉(zhuǎn)換為雙精度數(shù)據(jù)類型T=dctmtx(8);%產(chǎn)生二維DCT變換矩陣B=blkproc(I,8 8,P1*x*P2,T,T);%計(jì)算二維DCT,矩陣T及其轉(zhuǎn)置T是DCT函數(shù)P1*x*P2的參數(shù)%二值掩膜,用來壓縮DCT系數(shù),只取系數(shù)左上角的10個(gè);Mask=1 1 1 1 0 0 0 0 1 1
11、1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%數(shù)據(jù)壓縮,丟棄右下角高頻數(shù)據(jù)B2=blkproc(B,8 8,P1.*x,Mask);%只保留DCT變換的10個(gè)系數(shù);I2=blkproc(B2,8 8,P1*x*P2,T,T);%進(jìn)行DCT反變換,得到壓縮后的圖像subplot(1,2,1);imshow(I);title(原圖像);%顯示原圖像subplot(1,2,2);imshow(I2);title(壓縮圖像);%顯示壓縮后的圖像。% 對(duì)比原始圖像和壓縮后的圖像,雖然舍棄了85%的DCT系數(shù),但圖像任然清晰。%利用游程編碼(RLE)進(jìn)行圖像壓縮clear;clc;% I=checkerboard(10,2);%生成棋盤圖像% imshow(I);%顯示圖像I=imread(rice.tif);% imshow(I);m n=size(I);J=;for i=1:m value=I(i,1); num=1; for j=2:n if I(i,j)=value num=num+1; else J=J n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 響應(yīng)式編程語言性能分析-洞察分析
- 衛(wèi)星導(dǎo)航系統(tǒng)定位算法-洞察分析
- 塑膠場(chǎng)地污染控制技術(shù)-洞察分析
- 油斑治理技術(shù)研究-洞察分析
- 油氣管道安全監(jiān)測(cè)-洞察分析
- 牙齦囊腫切除術(shù)后生活質(zhì)量影響研究-洞察分析
- 《電磁防蠟技術(shù)介紹》課件
- 《燈箱制作教程》課件
- 2024年05月廣西桂林銀行容縣村行社會(huì)招考(524)筆試歷年參考題庫附帶答案詳解
- 2024年柳城縣中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 2024年03月中國農(nóng)業(yè)發(fā)展銀行內(nèi)蒙古分行校園招考擬招錄人員筆試歷年參考題庫附帶答案詳解
- 2024年盾構(gòu)操作工職業(yè)技能競(jìng)賽理論考試題庫(含答案)
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之8:“5領(lǐng)導(dǎo)作用-5.2創(chuàng)新方針”(雷澤佳編制-2025B0)
- (西北卷)名校教研聯(lián)盟2025屆高三12月聯(lián)考英語試卷(含答案解析)
- 金科新未來大聯(lián)考2025屆高三12月質(zhì)量檢測(cè)語文試題(含答案解析)
- 江蘇省2025年高中學(xué)業(yè)水平合格考?xì)v史試卷試題(含答案詳解)
- 《地下水環(huán)境背景值統(tǒng)計(jì)表征技術(shù)指南(試行)》
- 大學(xué)試卷(示范)
- 高職院校智能制造實(shí)驗(yàn)室實(shí)訓(xùn)中心建設(shè)方案
- 房產(chǎn)交易管理平臺(tái)行業(yè)發(fā)展預(yù)測(cè)分析
- 檔案工作人員分工及崗位責(zé)任制(4篇)
評(píng)論
0/150
提交評(píng)論