游程编码

運行長度編碼（，缩写RLE），又称行-{}-程長度編碼或變動長度編碼法，是一種與資料性質無關的无损数据压缩技术，基于「使用變動長度的碼來取代連續重複出現的原始資料」来实现壓縮。

 說明 

舉例來說，一組資料串"AAAABBBCCDEEEE"，由4個A、3個B、2個C、1個D、4個E組成，經過變動長度編碼法可將資料壓縮為4A3B2C1D4E（由14個單位轉成10個單位）。

簡言之，其優點在於將重複性高的資料量壓縮成小單位；然而，其缺點在於─若該資料出現頻率不高，可能導致壓縮結果資料量比原始資料大，例如：原始資料"ABCDE"，壓縮結果為"1A1B1C1D1E"（由5個單位轉成10個單位）。

 整數（出現次數）表示法 

 整數變動長度表示法 

 整數固定長度表示法 
 4位元表示法 
顧名思義，利用4個位元來儲存整數，以符號C表示整數值。其可表現的最大整數值為15，因此，若資料重複出現次數超過15，便以「分段」方式處理。

假設某資料出現N次，則可以將其分成(N/15)+1段落來處理，其中N/15的值為無條件捨去。例如連續出現33個A：

原始資料：

AAAAAAAAAAAAAAA AAAAAAAAAAAAAAA AAA

壓縮結果：

      15A          15A         3A

內部儲存碼：

1111 01000001 1111 01000001 0011 01000001
 15   A    15    A     3     A

 8位元表示法 
同4位元表示法的概念，其能表示最大整數為255。假設某資料出現N次，則可以將其分成(N/255)+1段落來處理，其中N/255的值為無條件捨去。

 壓縮策略 
 壓縮 
先使用一個暫存函數Q讀取第一個資料，接著將下一個資料與Q值比，若資料相同，則計數器加1；若資料不同，則將計數器存的數值以及Q值輸出，再初始計數器為，Q值改為下一個資料。以此類推，完成資料壓縮。

以下為簡易的演算法：

 input：AAABCCBCCCCAA

 for i=1:size (input)
  if(Q = input(i))
     計數器+1
  else
    output的前項=計數器的值, output的下一項=Q值,
    Q換成input(i)，計數器值換成0
  end
 end

 解壓縮 
其方法為逐一讀取整數（以C表示）與資料（以B表示），將C與B的二進位碼分別轉成十進位整數以及原始資料符號，最後輸出共C次資料B，即完成一次資料解壓縮；接著重複上述步驟，完成所有資料輸出。

 應用 
 大量白色或黑色的區域單色影像圖
 電腦生成的同色區塊的彩色圖像（如建築繪圖紙）
 TIFF文件
 PDF文件

 參考資料 
 資料壓縮原理與實務。張真誠，蔡文輝著。松崗電腦圖書資料股份有限公司。1994/4/12。
 Bassiouni, M.A., "Data Compression in Scientific and Statistical Databases" , IEEE Trans. Software Eng., Vol. SE-11, No. 10, Oct.1985, pp. 1047–1058.
 Reghbati, H.K. "An Overview of Data Compression Techniques", Computer, Vol. 14, No. 4, May 1981, pp. 71–76

 參見 
 Burrows-Wheeler轉換
 外觀數列

Category:无损压缩算法