那里有大量的压缩算法。您需要的是一种无损压缩算法。无损压缩算法对数据进行压缩,以便可以对数据进行解压缩以实现压缩之前的精确数据。相反的是有损压缩算法。有损压缩会从文件中删除数据。PNG图像使用无损压缩,而JPEG图像可以并且经常使用无损压缩。
一些最广为人知的压缩算法包括:
- RLE
- 霍夫曼
- LZ77
ZIP归档文件结合使用了霍夫曼编码和LZ77,以提供快速的压缩和解压缩时间 以及 合理的压缩率。
LZ77几乎是RLE的广义形式,它通常会产生更好的结果。
Huffman允许重复最多的字节代表最少的位数。想象一个看起来像这样的文本文件:
aaaaaaaabbbbbcccdd
Huffman的典型实现将产生以下地图:
Bits Character 0 a 10 b 110 c1110 d
因此文件将被压缩为:
00000000 10101010 10110110 11011101 11000000 ^^^^^ Padding bits required
18个字节降为5。当然,该表必须包含在文件中。该算法在处理更多数据时效果更好:P
如果Wiki不足够,Alex
Allain会写一篇关于霍夫曼压缩算法的好文章。
随时要求更多信息。这个话题范围很广。



