哈夫曼編碼的擴充套件操作碼是怎麼算的?假設用於通訊的電文由字符集{a,b,c,d,e,f,g,h}中的字母構成,這8個字母在電文中出現的機率分別為{0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10}。
哈夫曼編碼 根據上面可得編碼表: a:1001 b:01 c:10111 d:1010 e:11 f:10110 g:00 h:1000
用三位二進行數進行的等長編碼平均長度為3,而根據哈夫曼樹編碼的平均碼長為:4*0.07+2*0.19+5*0.02+4*0.06+2*0.32+5*0.03+2*0.21+4*0.10=2.61 2.61/3=0.87=87%其平均碼長是等長碼的87%,所以平均壓縮率為13%。
因為定長編碼已經用相同的位數這個條件保證了任一個字元的編碼都不會成為其它編碼的字首,所以這種情況只會出現在變長編碼當中,要想避免這種情況,
就必須用一個條件來制約定長編碼,這個條件就是要想成為壓縮編碼,變長編碼就必須是字首編碼,所謂的字首編碼就是任何一個字元的編碼都不能是另一個字元編碼的字首。
哈夫曼編碼的擴充套件操作碼是怎麼算的?假設用於通訊的電文由字符集{a,b,c,d,e,f,g,h}中的字母構成,這8個字母在電文中出現的機率分別為{0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10}。
哈夫曼編碼 根據上面可得編碼表: a:1001 b:01 c:10111 d:1010 e:11 f:10110 g:00 h:1000
用三位二進行數進行的等長編碼平均長度為3,而根據哈夫曼樹編碼的平均碼長為:4*0.07+2*0.19+5*0.02+4*0.06+2*0.32+5*0.03+2*0.21+4*0.10=2.61 2.61/3=0.87=87%其平均碼長是等長碼的87%,所以平均壓縮率為13%。
因為定長編碼已經用相同的位數這個條件保證了任一個字元的編碼都不會成為其它編碼的字首,所以這種情況只會出現在變長編碼當中,要想避免這種情況,
就必須用一個條件來制約定長編碼,這個條件就是要想成為壓縮編碼,變長編碼就必須是字首編碼,所謂的字首編碼就是任何一個字元的編碼都不能是另一個字元編碼的字首。