編碼 | 解碼 | 壓縮

> rle | 壓縮 | 重複 <

// Run-Length Encoding - 專為重複資料設計的簡單壓縮演算法

[COMPRESS]

資料壓縮

透過有效編碼重複序列,大幅減少檔案大小。

[SIMPLE]

演算法簡單

邏輯清楚、實作容易,壓縮與解壓速度都很快。

[FORMATS]

多格式支援

同時支援簡單 RLE 與 PackBits(常用於 TIFF)格式。

>> 技術說明

RLE 的運作方式:

遊程編碼會把連續重複的資料片段替換為「重複次數 + 單一值」。簡單 RLE 使用次數+值配對,而 PackBits 則透過控制位元組區分「遊程區段」與「原始資料區段」。

壓縮範例:

Simple RLE: AAAABBBCC → 4A3B2C ABCDE → 1A1B1C1D1E PackBits: [Run] AAA → FD 41 (3 × 'A') [Literal] ABC → 02 41 42 43

RLE 的常見用途:

  • >影像壓縮(BMP、PCX、TIFF 等)
  • >傳真資料傳輸
  • >圖示與 Sprite 圖格儲存
  • >稀疏資料壓縮
  • >實作成本極低

>> 常見問題

什麼是 Run-Length Encoding(RLE)?

RLE 是一種非常簡單的無失真壓縮演算法,會把連續相同的元素替換為「次數 + 單一值」。對於包含大量重複內容的資料(例如簡單點陣圖或稀疏矩陣),可以明顯降低容量。

簡單 RLE 和 PackBits 有什麼不同?

簡單 RLE 直接使用「次數+值」配對(例如 4A = AAAA)。PackBits 透過控制位元組:負值表示後面是重複遊程,正值表示後面是原始資料。PackBits 常見於 TIFF 影像格式,對混合型資料較為友善。

RLE 在什麼情況下效果最好?

當資料中存在許多長度較長的重複序列時,RLE 的壓縮效果最佳。若資料接近隨機、幾乎沒有重複,RLE 不但壓不下去,甚至可能讓檔案變大。

RLE 和其他壓縮演算法相比如何?

相較於 LZ77、Huffman 編碼等演算法,RLE 結構更簡單、實作更容易,但壓縮比通常較低。常被用作前處理步驟,或用在重視簡單性的情境,例如傳真或某些嵌入式格式。

其他語言