採用霍夫曼編碼(Huffman)畫出字符串各字符編碼的過程並求出各字符編碼 --多媒體技術與應用

題目:有一個字符串:cabcedeacacdeddaaaba,問題:
(1)採用霍夫曼編碼畫出編碼的過程,並寫出各字符的編碼
(2)根據求得的編碼,求得各編碼須要的總位數
(3)求出整個字符串總編碼長度,並計算出字符串位數在編碼前與編碼後的比值

解答:
(1)各字符出現頻率統計以下表所示。
|符號 |出現次數 |出現頻率|
|--|--|--|
| a |7|0.35|
|b|2|0.1|
|c|4|0.2|
|d|4|0.2|
|e|3|0.15|
編碼過程以下圖所示:
在這裏插入圖片描述
各字符編碼以下表所示:
|符號|編碼(碼字) |
|--|--|
| a | 11 |
| b| 100 |
| c| 00 |
| d| 01|
| e|101 |
(2)由(1)可進一步知道字符編碼的碼長和須要的位數
|符號|符號出現次數 |機率|編碼(碼字)|碼長|須要的位數
|--|--|--|--|--|--
| a |7|0.35|11|2|14
|b|2|0.1|100|3|6
|c|4|0.2|00|2|8
|d|4|0.2|01|2|8
|e|3|0.15|101|3|9
根據求得的編碼,求得各編碼須要的總位數是:45位(14+6+8+8+9=45)。
(3)字符串總編碼長度:60bit(20 x 3 = 60)。
編碼前與編碼後的比值:4/3(編碼前是60,編碼後是45)編碼

相關文章
相關標籤/搜索