是否存在快速压缩/慢速解压缩的非对称压缩算法?

时间:2013-05-16 04:15:53

标签: c performance compression

我看过许多“快速压缩”库,但它们都具有快速解压缩而不是快速压缩。

我正在研究一种系统,其中快速压缩比快速解压缩更有价值。 有没有这样的算法?如果是这样,是否有C库实现它?

更新:我正在压缩物理内存页面,我要求压缩吞吐量等于或快于直接复制。我正在使用检测算法来发现具有低熵的页面,以保证我尝试压缩的页面实际上是可压缩的概率很高。

4 个答案:

答案 0 :(得分:4)

嗯,你可以随心所欲地制作任何东西,但我不知道任何算法本身在压缩时速度快,在解压缩时速度慢。

如果您想象某种交易可以让压缩更快,如果您允许压缩速度更慢,那么不,没有。

lz4提供非常快速的压缩,甚至更快的解压缩。

答案 1 :(得分:2)

Large Text Compression Benchmark有很多关于压缩性能的数据,包括一些图表。虽然它专注于高压缩,但它应该让你很好地了解速度,内存使用和压缩比之间的权衡。压缩器大致分为两类:对称的压缩和解压缩需要相同的时间(这些也往往是高压缩的慢速),而非压缩的解压缩比压缩更快(这些更受欢迎) )。在任何情况下我都不知道压缩比解压缩速度快得多。

我所知道的最广泛使用的“快速”压缩器是snappyLZO。 @MarkAdler提到了lz4,它看起来也很不错。

答案 2 :(得分:1)

您是否尝试过density

这是一个压缩速度极快(比lz4快)的BSD库。 如following benchmark中所述,减压也非常快。

对于测试,有一个名为“sharc”的开源命令行客户端,也可以在github上使用。

答案 3 :(得分:0)

您可以做的最好的事情是查看压缩基准。他们报告至少两个数字:压缩大小和压缩速度。在你的情况下,解压缩速度无关紧要,只需看看压缩速度。

一些算法将形成Pareto Frontier。选择其中一个。