了解一下数据压缩算法:
压缩算法主要分为两类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% |
优点 | 无 | 一次优化 | 二次优化,压缩比最低,速度快 | 能够使用二分查找快速遍历数据,适用于数组,对重复数据较大有较好的压缩效果 |