23. 印刷格物致知
          23.6. 壓縮演算法
 23.6.3. RLE 壓縮

RLE 是 Run Length Encoding (遊程長度編碼) 的縮寫,它是一種無損失演算法,該演算法在特定類型的數據料壓縮上有著驚人的壓縮比。

RLE 如何運作

RLE 可能是最簡單的壓縮演算法,它將檔案中一序列重複相同的數據取代為一個計數和單一數據;假設使用 RLE 壓縮下列字串資料(17 個位元組):

ABBBBBBBBBCDEEEEF

利用 RLE 壓縮後,被壓縮的檔案只佔用 10 位元組,如下所示:

A *8B C D *4E F

正如你所見的,重複的字串的數據被一個控制字元 (*) 加重複次數和重複字元本身所取代,控制字符是非固定不變的,不同的壓縮會有不同的選用字元。

如果檔案內出現控制字元本身,則會套用一個額外的編碼字元。

以上述的作法可以想像出:RLE 只對於字元連續重複 4 或更多次有意義,因為每個 RLE 編碼至少需要三個字元,所以對多是兩個重複字元的資料編碼,甚至會導致增加文件大小。

千萬要理解,實際的運作上會有許多不同的 RLE 編碼方案,上面的例子只是用以展示說明 RLE 編碼的基本原理,RLE 編碼的實際應用上不乏是配合要被壓縮的資料來決定編碼法則;例如早期的 Scitex 組頁系統在儲存黑白(單色)掃描稿件時就是使用 RLE 壓縮,因為掃描解析度極高,所以必然會有很多連續的 0 與 1 (分別代表黑或白)比起直接存放點陣圖壓縮比通常高達百倍以上,編碼的方法當然是配合這種資料的特性,以計算幾個連續 0, 1 位元的方法來處理。

優點和缺點

此演算法很容易製作,也不需要大量的 CPU 馬力,RLE 僅對有需多連續重複資料的檔案有效,例如:含有大量白色或黑色的區域單色影像圖、電腦生成的很多同色區塊的彩色圖像(如建築繪圖紙)都可以獲得不錯的壓縮比。

RLE 壓縮使用於哪裡?

RLE 壓縮可用於下列文件格式:

  • TIFF files
  • PDF files 
Table of contents