熵和熵編碼

熵是借用了物理上的一個概念,簡單來說表示的是物質的無序度,混亂度。信息學裏的熵表示數據的無序度,熵越高,則包含的信息越多。其實這個概念還是很抽象,舉個最簡單的例子,假如一段文字全是字母A,則它的熵就是0,因爲根本沒有任何變化。如果有一半A一半B,則它可以包含的信息就多了,熵也就高。如果有90%的A和10%的B,則熵比剛纔的一半A一半B要低,因爲大多數字母都是A。

熵編碼就是根據數據中不同字符出現的概率,用不同長度的編碼來表示不同字符。出現概率越高的字符,則用越短的編碼表示;出現概率地的字符,可以用比較長的編碼表示。這種思想在哈夫曼編碼中其實已經很清晰地體現出來了。那麼給定一段數據,用二進制表示,最少需要多少bit才能編碼呢?或者說平均每個字符需要幾個bit表示?其實這就是信息熵的概念,如果從數學上理論分析,香農天才地給出瞭如下公式:

 


其中 p (xi) 表示每個字符出現的概率。log對數計算的是每一個字符需要多少bit表示,對它們進行概率加權求和,可以理解爲是求數學期望值,最後的結果即表示最少平均每個字符需要多少bit表示,即信息熵,它給出了編碼率的極限。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章