了解一下数据压缩算法:
压缩算法主要分为两类1.有损压缩 2.无损压缩
有损压缩有很多种,这里说一下无损压缩。
无损压缩算法:行程编码(游程编码)[RLE(RUN-LENGTH ENCODING)] ,哈夫曼编码。
RLE算法
游程编码:例如:信息单元0304,03表示其后的象素个数是3个,04表示这些象素使用的是颜色索引表中的第五项的值。压缩数据展开后就是04 04 04 .同理04 05 可以展开为05 05 0505. 信息单元的第一个字节也可以是00,这种情况下信息单元并不表示数据单元,而是表示一些特殊的含义。这些含义通常由信息单元的第二个字节的值来描述。
数据压缩实例:
数据类型 |
原始数据 |
字符+计数值 |
字符+字符计数值(去1) |
字符+字符位置 |
数据 |
aaaaaabbbaccxxxyyyzyx |
a6b3a1c2x3y3z1y1x1 |
a6b3ac2x3y3zyx |
a0b6a9c10x12y15z18y19x20 |
长度 |
21 |
18 |
14 |
24 |
压缩比 |
100% |
85.7% |
66.7% |
114.2% |
优点 |
无 |
一次优化 |
二次优化,压缩比最低,速度快 |
能够使用二分查找快速遍历数据,适用于数组,对重复数据较大有较好的压缩效果 |