霍夫曼編碼

在傳統資料壓縮中,霍夫曼編碼(Huffman coding)也是利用統計的方式,將常出現的字元用較短的編碼表示。

 

下圖“ I LOVE PEACE” 總共有10個字母,其字母出現的機率為A=0.1,C=0.1,E=0.3,I=0.1,L=0.1,O=0.1,P=0.1,V=0.1。

 

首先,從挑出兩個機率最小的字母來組合,如(A,C)=0.2,再從新的機率中繼續挑出兩個機率最小字母來組合(I,L)=0.2,直到組合剩下一個機率為1的時候,即為結束。

 

建出一棵二元樹,左側用0表示,右側用1表示,字母E被表示成00,字母I被表示成010,字母L被表示成0110,字母O被表示成0111,字母V被表示成100,字母P被表示成101,字母A被表示成110,字母C被表示成111。當我們要表示出I LOVEP EACE時,只要送出010 0110 0111 100 00 101 00 110 111 00即可表示。