- RLE压缩算法形成长度压缩算法,Run Length Encoding.
- 主要用途:对黑白图像和基于调色板的单调图像有很高的压缩性能。
压缩算法基本思想
基本:数据块的长度设定为1Bite,表示块数的的属性为1Bite,所以对于小于256色的图像文件或文本文件,块长度选择1Bite比较合适
连续的重复数据块
用两个字节表示原来多个字节重复数据
[data][data][data][data][data] => [5][data]
若重复次数超过一字节所能计数,则重头开始
连续非重复数据块
方法1
将每个不重复的数据当做只重复一次的连续重复数据处理
问题:对于连续出现的不重复数据,会因为插入太多块属性字节而数据膨胀一倍,数据足够随机的话,只会恶化
[data1][data2][data3][data4][data5] =>>[1][data1][1][data2][1][data3][1][data4][1][data5]
岂止是恶化简直是崩溃
方法2
将数据分为连续的重复数据和连续的非重复数据,连续的非重复数据不处理直接把数据扔进去,通过一个长度属性的最高位来标识后续是什么类型,长度属性的其余位来标识有多少的数位(高位1后续位连续数据块,高位0后续位非连续数据块)
case:[data][data][data][data1][data2][data3][data4][data4] =>
[131][data][3][data1][data2][data3][130][data4]