- 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]