2008-12-22 95 views
1

什么是具有以下特点的最好的压缩算法:最好的压缩算法

  • 应该花费更少的时间来解压缩(可以采取合理的更多的时间压缩)
  • 应该能够压缩整理数据(约3,000,000个字符串/整数的列表...)

请与度量一起建议:压缩比率,压缩和解压缩的算法复杂度(如果可能)?

+0

这个问题没有足够的限制。取决于操作系统,文件系统,被压缩的数据,CPU速度与I/O速度。例如,压缩许多小文件时,通常比解压缩更快,因为文件系统在解压缩时必须创建许多文件条目。 – RedFilter 2008-12-22 18:18:34

+1

嘿,让我们放松一下吧!是的,操作系统和文件系统是相关的,但您仍然可以针对自己的压缩/解压缩时间测量压缩方法。不要憎恨;) – 2008-12-22 18:26:23

回答

11

整个网站致力于压缩标杆here

1

那么如果你只是想加快速度,那么标准的ZIP压缩就好了,它很可能已经集成到你的语言/框架(例如:.NET有它,Java有它)。有时最普遍的解决方案是最好的,ZIP是一种非常成熟的格式,任何ZIP库和应用程序都可以与其他任何工具一起使用。

但是,如果你想要更好的压缩,我会建议7-Zip,因为作者非常聪明,很容易找到并鼓励人们使用这种格式。

向您提供压缩时间是不可能的,因为它与您的硬件直接相关。如果你想要一个基准,你必须自己做。

1

您不必担心减压时间。花费较高压缩级别的时间主要是找到最长的匹配模式。

减压要么

1) Writes the literal 
2) for (backward position, length)=(m,n) pair, 
    goes back, in the output buffer, m bytes, 
    reads n bytes and 
    writes n bytes at the end of the buffer. 

所以其减压时间是独立的压缩级别。而且,凭借我的通用减压虚拟机(RFC3320)的经验,我想对于任何解压缩算法也是如此。