跳轉到

第5章 文字壓縮一:統計式壓縮#

檔案為什麼能壓縮?因為文字不是等機率的隨機訊號:英文裡 'e' 遠比 'z' 常見,中文裡「的」遠比「鑿」常見,且字與字之間有強烈的相依性(「演算法」後面接著「分析」的機率高於接著「蘋果」)。統計式壓縮的核心是:把「常出現的」用短編碼、「少出現的」用長編碼,使平均長度逼近資訊理論的極限。

本章先建立理論地基:5.1 節介紹資訊熵——一個符號源最少「每符號需要多少位元」的下界,以及可解析編碼(prefix code)的性質;5.2 節介紹最經典的 Huffman 編碼,用貪婪法建出最佳前綴碼,並實作完整的編碼與解碼;5.3 節介紹算術編碼,突破 Huffman 的「整數位元」限制,讓平均長度真正達到熵極限,也是 JPEG、H.264 等 CABAC 的基礎。

學完本章,讀者應能計算一份文字的熵、說明為何壓縮比有上限、並親手實作兩大編碼器。字典式壓縮(下一章)則從另一個角度——重複片段——逼近同樣的目標。