我有一个10345字节的数组,我想压缩数组,然后解压缩,请建议我压缩算法,可以减少数组的大小。我使用的是c语言,数组是unsigned char类型。
换句话说:有人能为C/C++推荐一个通用的压缩算法(或库)吗?
发布于 2010-08-09 00:35:30
zlib
Lossless Compression Algorithms
发布于 2010-08-09 00:44:02
这篇文章是一个社区维基。我不想要任何分数--我已经投票决定结束这个问题。
要压缩的字节数与压缩算法的选择关系不大,尽管它确实会影响实现。例如,当要压缩的字节少于2^15字节时,如果使用的是ZLib,则需要指定小于15的压缩级别。Zlib中的压缩级别(两个这样的参数之一)控制“回看”字典的深度。如果您的文件小于16k字节,那么32k的回看字典永远不会半满;在这种情况下,与将ZLib设置为“max”相比,在回看中少使用一位指针,以便压缩到1/15的边缘。
重要的是数据的内容。如果您发送的图像主要是背景图像,那么您可能需要运行长度编码(例如,Windows .BMP使用的)。
如果您主要发送英文文本,那么您可以使用诸如ZLib之类的东西,它实现了霍夫曼编码和LZW风格的回看字典压缩。
如果您的数据已加密,则尝试压缩它将不会成功。
如果您的数据是一种特定类型的信号,并且您可以容忍一些细节的丢失,那么您可能希望将其转换到频率空间并仅发送主分量。(例如,JPEG、MP3)
https://stackoverflow.com/questions/3435109
复制相似问题