1.
利用程式
huff_enc
和huff_dec
進行以下操作(在每種情況下,利用由被壓縮影象生成的碼本) (
a)對sena
、sensin
和omaha
影象進行編碼。 (
b)編寫一段程式,得到相鄰畫素之差,然後利用
huffman
對差值影象進行編碼。
給出以上每一次試驗得出的檔案大小,並解釋其差別。 (
a)以sensin.img
為例,首先輸入引數,
sensin.img
為輸入,
sensini.img
為輸出,
storecode
為碼表。 對
sena
、sensin
和omaha
影象進行編碼如下:
壓縮前壓縮後
壓縮比
檔名稱
檔案大小
檔名稱
檔案大小
sena.img
64kb
sena.img
55kb
85.93%
sinan.img
64kb
sinan.img
59 kb
92.19%
omaha.img
64kb
omaha.img
56 kb
87.50%
(b)
影象 直接對畫素編碼
對差分影象編碼
sena
55kb
32kb
sinan
59kb
35kb
omaha
56kb
52kb
三幅影象中
sena
壓縮比最大,
sinan
壓縮比最小。壓縮比越大影象被壓縮的程度也就越大,說明影象的冗餘資訊越多。
檔名(壓縮前)
檔案大小
壓縮大小
檔名(壓縮後)
sensin
碼本壓縮大小
sena.img
64kb(65536位元組)
55kb
(56623
位元組)
s_sena.img
55kb
(56623
位元組)
bookshelf1.img
64kb(65536位元組)
58kb (59667位元組)
s_bookshelf.img
56kb
(57094
位元組)
哈夫曼編碼 哈夫曼樹
1.定義 哈夫曼編碼主要用於資料壓縮。哈夫曼編碼是一種可變長編碼。該編碼將出現頻率高的字元,使用短編碼 將出現頻率低的字元,使用長編碼。變長編碼的主要問題是,必須實現非字首編碼,即在乙個字符集中,任何乙個字元的編碼都不是另乙個字元編碼的字首。如 0 10就是非字首編碼,而0 01不是非字首編碼。2....
哈夫曼樹 哈夫曼編碼
定義從a結點到b結點所經過的分支序列為從a結點到b結點的路徑 定義從a結點到b結點所進過的分支個數為從a結點到b結點的路徑長度 從二叉樹的根結點到二叉樹中所有結點的路徑長度紙盒為該二叉樹的路徑長度 huffman樹 帶權值路徑長度最小的擴充二叉樹應是權值大的外界點舉例根結點最近的擴充二叉樹,該樹即為...
哈夫曼編碼 哈夫曼樹
哈夫曼樹是乙個利用權值進行優化編碼的乙個比較奇怪的樹,他的實現比較簡單,用途也比較單一。哈夫曼樹的實現,實現要求 通過哈夫曼樹可以保證在編碼過程中不會出現例如 1000和100這樣的編碼規則,否則就會編碼失敗,因為1000和100在某些情況下的編碼會一模一樣。通過哈夫曼樹可以保證權值大的值進行編碼時...