哈夫曼編碼的程序流程圖 越贊越長(zhǎng)的符號(hào)怎么打?
越贊越長(zhǎng)的符號(hào)怎么打?霍夫曼編碼的原理是,符號(hào)的頻率越高,其碼長(zhǎng)越短,反之亦然。很好理解:要使總長(zhǎng)度最短,出現(xiàn)的符號(hào)越多,編碼就越短。打個(gè)不恰當(dāng)?shù)谋确健?漢字的筆畫(huà)很少嗎?"g哈夫曼編碼效率怎么計(jì)算?
越贊越長(zhǎng)的符號(hào)怎么打?
霍夫曼編碼的原理是,符號(hào)的頻率越高,其碼長(zhǎng)越短,反之亦然。
很好理解:要使總長(zhǎng)度最短,出現(xiàn)的符號(hào)越多,編碼就越短。打個(gè)不恰當(dāng)?shù)谋确健?漢字的筆畫(huà)很少嗎?"g
哈夫曼編碼效率怎么計(jì)算?
霍夫曼編碼原理
霍夫曼編碼是在1952年為文本文件建立的,它是一種統(tǒng)計(jì)編碼。屬于無(wú)損壓縮編碼。
霍夫曼編碼的碼長(zhǎng)是變化的,對(duì)于頻率高的信息,碼長(zhǎng)更短。對(duì)于頻率較低的信息,編碼長(zhǎng)度較長(zhǎng)。這樣,處理所有信息的總碼長(zhǎng)必須小于實(shí)際信息的符號(hào)長(zhǎng)度。
步驟如下:
l)按照出現(xiàn)概率遞減的順序排列信號(hào)源的符號(hào)。
2)將兩個(gè)最小出現(xiàn)概率合并相加,所得結(jié)果作為新符號(hào)的出現(xiàn)概率。
3)重復(fù)步驟1和2,直到概率相加的結(jié)果等于1。
4)在合并操作中,高概率的符號(hào)用代碼0表示,低概率的符號(hào)用代碼1表示。
5)記錄概率為1的點(diǎn)到當(dāng)前信號(hào)源符號(hào)的0,L序列,從而得到每個(gè)符號(hào)的編碼。
示例:
設(shè)信號(hào)源是s {S1,S2,S3,S4,S5}
對(duì)應(yīng)的概率是p {0.25,0.22,0.20,0.18,0.15}。
根據(jù)字符出現(xiàn)的概率,構(gòu)造平均長(zhǎng)度最短的異前綴碼字。
Houweimann編碼通常采用兩次掃描的方法,第一次掃描得到統(tǒng)計(jì)結(jié)果,第二次掃描用于編碼。
霍夫曼編碼有一些明顯的特點(diǎn):
1)編碼后的碼都是不同的前綴碼,保證了碼的唯一可譯性。
2)因?yàn)榫幋a長(zhǎng)度是可變的。所以解碼時(shí)間長(zhǎng),使得霍夫曼編碼的壓縮和恢復(fù)非常耗時(shí)。
3)編碼長(zhǎng)度不統(tǒng)一,硬件實(shí)現(xiàn)困難。
4)不同信號(hào)源的編碼效率不同。當(dāng)信號(hào)源的符號(hào)概率為2的負(fù)冪時(shí),編碼效率達(dá)到100%;如果信號(hào)源符號(hào)的概率相等,則編碼效率最低。
5)由于#340#34和#341#34的指定是任意的,上述過(guò)程編譯的最佳碼不是唯一的,但其平均碼長(zhǎng)是相同的,因此編碼效率和數(shù)據(jù)壓縮性能不受影響。