第二次作業

2022-09-01 21:21:22 字數 2427 閱讀 1903

第一題

參考書《資料壓縮導論(第4版)》page 66。2(a)(b),4,5

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

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

解:(a)

檔名壓縮前

壓縮後壓縮比

sena

64k56.1k

87.66%

sensin

64k61k

95.31%

omaha

64k57k

89.06%

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

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

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

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

解:信源a的熵的計算公式為-p(a)log2

p(a)得:

(a)該信源的熵h(a)= -0.15*log20.15-0.04*log20.04-0.26*log20.26-0.05*log20.05-0.50*log20.50

=0.15* 2.737+0.04*4.644+0.26*1.943+0.05*4.322+0.5*1

=0.411+0.186+0.505+0.216+0.5

=1.82(bits)  

(b)首先由概率從小到大依次排列,然後再用霍夫曼編碼規則進行編碼,具體編碼如下:

因此,該信源的霍夫曼編碼為如下:

a1001

a20000

a301

a40001a51

(c)平均長度:l=0.15*3+0.04*4+0.26*2+0.05*4+0.5*1

=0.45+0.16+0.52+0.2+0.5

=1.83(bits)

冗餘度:l-h(a)=1.83-1.82=0.01(bits)

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

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

(b)最小方差過程。

解釋這兩種霍夫曼碼的區別。

解:(a)

第一種方法結果如下:符號碼

a1a2

a3a4

第二種方法結果如下:符號碼

a1a2

a3a4

第一種方法的平均碼長=3*0.1+2*0.3+3*0.25+1*0.35=2(bits)

第二種方法的平均碼長=2*0.1+2*0.3+2*0.25+2*0.35=2(bits)

第一種方法的平均方差=0.1(3-2)2+0.3(2-2)2+0.25(3-2)2+0.35(1-2)2=0.70(bits)

第二種方法的平均方差=0.1(2-2)2+0.3(2-2)2+0.25(2-2)2+0.35(2-2)2 =0(bits)

由上可知:兩種方法的平均碼長都是一樣的,就由方差來決定,第二種方法方差為0bits,顯然優於第一種方法,所以綜上,霍夫曼編碼為:a1=00,a2=10,a3=01,a4=11

第二題:

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

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

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

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

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

解:檔名

一階熵二階熵

差階熵gabe.raw

7.116338

6.654578

8.978236

omaha.img

6.942426

4.488626

6.286834

sena.img

6.834299

3.625204

3.856989

sensin.img

7.317944

4.301673

4.541597

berk.raw

7.151537

6.705169

8.976150

earth.img

4.770801

2.568358

3.962697

由上表可知:一階熵比二階熵大的多,並且可以看出,大部分的差階熵都在一階熵和二階熵之間,可能差階熵更適合估計影象檔案的儲存!!!

第二次作業

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萬。他想買這套房子,多大的 率能夠忍受...