第二次作業

2022-08-13 06:30:17 字數 1804 閱讀 5870

2.利用程式huff_enc和huff_dec進行以下操作(在每種情況下,利用由被壓縮影象生成的碼本)。

(a)對sena,sensin和omaha影象進行編碼。

解:檔名

壓縮前大小

壓縮後大小

壓縮比sence

64k57k

0.89

sensin

64k61k

0.95

omaha

64k58k

0.91

4.乙個信源從符號集a=中選擇字母,概率為p(a1)=0.15,p(a2)=0.04,p(a3)=0.26,p(a4)=0.05,p(a5)=0.50

(a)計算這個信源的熵。

h=0.15*0.41+0.04*0.186+0.26*0.505+0.05*0.216+0.50*0.5=1.817

(b)求這個信源的霍夫曼碼。

解:根據題目的意思,畫出霍夫曼數,經分析的霍夫曼碼如下

a1:110;a2:1111;a3:10;a4:1110;a5:0

(c)求(b)中**的平均長度及其冗餘度。

平均長度i=0.5*1+0.26*2+0.15*3+(0.04+0.05)*4=1.83

所以冗餘度就是i-h=1.83-1.817=0.013

5.乙個符號集a=,其概率為p(a1)=0.1,p(a2)=0.3,p(a3)=0.25,p(a4)=0.35,使用以下 過程找出一種霍夫曼碼:

(a)本章概述的第一種過程;

shannon-fano編碼

演算法:以空碼開始;

計算所有符號的頻率/概率;

對所有符號集合劃分為兩個概率差異最小集合;

在第乙個集合的碼字前加「0「,在第二個集合的碼字前加」1「;

對劃分得到的兩個子集遞迴編碼,直到每個集合不能被再劃分;

根據以上演算法,得到這個題的編碼為

a1:010,a2:00;a3:01;a4:1

(b)最小方差過程。解釋著兩種霍夫曼碼的區別。

同(a)的演算法,只是選擇方差小的進行編碼,所以編碼為

a1=00   a2=10  a3=01   a4=11

兩種編碼的平均長度為:l=2

所以第一種的方差為:s1

2=(0.1+0.25)*(3-2)2+0.3*(2-2)2+0.35*(1-2)2=0.7

第二種的方差為:s2

2=(0.1+0.25+0.3+0.35)*(2-2)2=0

所以由上可知:根據最小方差過程:a1,a2,a3,a4的霍夫曼碼分別為:a1=00   a2=10  a3=01   a4=11

2. 參考書《資料壓縮導論(第4版)》page 30

6。在本書配套的資料集中有幾個影象和語音檔案。

(a)編寫一段程式,計算其中一些影象和語音檔案的一階熵。

以下的這都是一階熵:

earth.img是4.770801

omaha.img是6.942426

sena.img是6.834299

sensin.img是7.317944

gabe.raw是7.116338

berk.raw是7.151537

(b)選擇乙個影象檔案,並計算其二階熵。試解釋一階熵和二階熵之間的差別。

berk.raw的二階熵是6.705169

由第一題和第二題的結果發現,一階熵和二階熵的差別是一階熵與二階熵的差幾乎是0.5

(c)對於(b)中所用的影象檔案,計算其相鄰畫素之差的熵。試解釋你的發現。

berk.raw的差熵是8.978236

由一,二,三題的結果發現,差熵都比一階熵和二階熵都要大。

第二次作業

execise02 1.查詢85年以後出生的學生姓名 性別和出生日期 2.列表顯示所有可能的學生選課組合 學號 課程號 3.查詢1 2 4班中陳姓同學的資訊 4.查詢所有及格的學生姓名 所選課程名及所得分數 5.統計各門課程的及格人數 課程編號 課程名 及格人數 6.統計各門課程的總人數 及格人數和...

第二次作業

第一題 p1 1 遞迴寫法,效率低 include 1.寫乙個函式返回引數值為1的個數 比如 15 0000 1111 4個1 程式原型 int count one bits unsigned int value int fuc int x else return 0 void mainp1 p1 ...

第二次作業

檔名稱 516.cpp 作 者 闕文榮 完成日期 2016 年 3 月 11 日 版 本 號 v1.1 對任務及求解方法的描述部分 用while語句控制輸出 輸入描述 略 問題描述 現在北京有一套房子,200萬,假設房價每年 10 乙個軟體工程師每年固定能賺40萬。他想買這套房子,多大的 率能夠忍受...