游程编码RLE
基本思想
把输入流中连续重复出现的字符用字符对<出现次数,连续重复出现字符>来替换。游程指的是出现次数。
样例
输入 ABBCAAAAACD
输出 A2BC5ACD
适用范围
文本压缩
图像压缩
算法
RLE文本压缩
-
步骤
counter为字符连续出现次数计数器,SC保存前一个字符,来判断是否与当前字符相同。读入第一个字符时,SC保存该字符,counter=1。
之后每读入一个字符,就与SC比较,若相同则counter+1,若不相同,当counter>1,输出<counter,SC>,counter=1,SC保存当前字符;当counter=1,说明该字符仅出现一次,输出SC即可。
为了区分游程和数字文本,在游程前输出@表示接下去的数字为游程。 -
流程图