游程编码

游程编码（英语：run-length encoding，缩写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，即完成一次数据解压缩；接着重复上述步骤，完成所有数据输出。