第二次作業

2022-07-28 07:39:12 字數 2996 閱讀 2822

1、 參考書《資料壓縮導論(第4版)》page 66

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

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

(b) 編寫一段程式,得到相鄰之差,然後利用huffman對差值影象進行編碼。

(c)  使用adap_huff重複(a)和(b)。

答案:(a)。

① 對sena影象時行編碼。

②對sensin影象時行編碼。

③對omaha影象時行編碼.

綜上觀察得表:

壓縮前壓縮後

計算檔名

大小檔名

大小壓縮比

①sena.img

64kb

①sena.huff

57kb

89.0625%

②sinan.img

64kb

②sinan.huff

61kb

95.3125%

③omaha.img

64kb

③omaha.huff

58kb

90.625%

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

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

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

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

解:(a)h=-0.15*log20.15-0.04*log20.04-0.26*log20.26-0.05*log20.05-0.50*log20.50

=0.547177bit

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

答:將a排序得:a

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

答:根據平均碼長計算公式l=

∑i=1,2,3....n

p(ai)*l(ai)以及(b)中求出的碼長得:

l=p(a1

)×l(a1

)+p(a2

)×l(a2

)+p(a3

)×l(a3

)+p(a4

)×l(a4

)+p(a5

)×l(a5

)=0.15×3+0.04×4+0.26×2+0.05×4+0.50×1

=1.83(bits)

冗餘度:r=l-h  

h=-0.15*log2(0.15)+[-0.04*log2(0.04)]+[-0.26*log2(0.26)]+[0.05*log2(0.05)]+[-0.50*log2(0.50)]

=1.83 - h

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

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

答:步驟過程:

1.將信源符號案出現概率的大小排序。

2.將兩個最小的概率組合相加,並繼續這一步驟始終將較高的概率分支放在上部,直到概率達到1為止。

3.對每對組合中的上邊乙個指定為1,下邊乙個指定為0(或者相反)。

4.畫出由概率1出到每個信源符號概率的路徑,順序記下沿路徑的1和0,所得即為該符號的霍夫曼編碼。

對其進行霍夫曼編碼:

其概率由大到小排列為a4 (0.35)>a2

(b)最小方差過程。

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

綜上兩種霍夫曼編碼計算得出,其平均碼長均為2,

方差第一種:s2=0.1(3-2)2+0.3(2-2)2+0.25(3-2)2+0.35(1-2)2=0.70

方差第二種:s2=0.1(2-2)2+0.3(2-2)2+0.25(2-2)2+0.35(2-2)2 =0

最小方差過程就是在不同的霍夫曼編碼中,選擇編碼的方差最小情況。即選擇最優二叉樹。所以第二種最優。

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

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

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

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

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

答案:    分別對.img格式,.txt格式,.raw格式的一二差分熵的計算:

檔名一階熵

二階熵差分熵

earth.img

4.770801

2.568358

3.962697

text.txt

4.315677

3.122731

6.099982

berk.raw

7.151537

6.705169

83976150

.......

........

........

.......

第二次作業

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