是否有可能使lzw压缩/解压缩并行?

时间:2012-05-21 11:16:15

标签: parallel-processing compression lzw

我已阅读this article关于如何使用LZW压缩/解压缩数据,但我希望让它使用多个线程...但我认为这是不可能的。你怎么看?关于这个主题的任何论文或文章?甚至暗示如何做到这一点。

3 个答案:

答案 0 :(得分:2)

您可能需要阅读this paper,特别是第2.2节解释了如何并行化LZW方案。

答案 1 :(得分:2)

将压缩算法并行化在低水平将提供有限的加速,并且可能比它的价值更麻烦。原因是真正的好处是压缩大量数据。在这种情况下,简单地将数据分解为多个部分并使用常规算法单独压缩它们要容易得多。

LZW老了,效果不是很好。其他方法可以更快,更有效地压缩。您可以查看从lz4zliblzma到ppmd,paq等的各种方案,顺序从最快压缩到最慢压缩到最慢。并行化的一个示例是pigz,它使用zlib使用尽可能多的处理器和内核将大文件压缩到gzip format。它以并行方式提供从先前块到后续块的历史记录,以便与串行单处理器gzip压缩相比不会失去压缩效率。

答案 2 :(得分:0)

当有很多整数运算要做时,使用多个线程的压缩或解压缩算法的并行化是合理的。但是lzw不需要它。例如,您可以查看lzws的来源。

整数运算量很低。主要瓶颈是dictionary。使用内存超频和自定义malloc重新分配策略,您可以获得更高的性能。