寻找一种快速无损压缩技术

3

我想压缩一串比特,并在此之后进行解压缩。有没有人能够提供一个快速无损压缩和解压缩技术,并且如果可能的话,附带编程实现。


另外,你要压缩什么?是为了特定的目的,还是在询问未知数据的最佳算法? - Josh
你提到了速度 - 速度比压缩比更重要吗?你是否正在寻找一种针对压缩/解压缩/两者都调整的算法? - Josh
我正在寻找已知数据,即一个位串。我正在寻找一种既适用于压缩又适用于解压缩的算法。 - Arpssss
2
“位串”不是“已知数据”。已知数据可能是“文本”,“格式为X的照片图像”,“格式为Y的声音”等。 - Paŭlo Ebermann
4个回答

7
如果你想要更快的速度,那么考虑使用像LZ4这样的快速压缩算法是明智的选择。这种算法比zlib/gzip快一个数量级(例如快10倍)。http://code.google.com/p/lz4/

或者LZO格式,它被广泛支持,并且根据LZ4网站的说法只稍微劣一些。 - Mechanical snail
1
问题在于LZO是GPL许可证,而LZ4则是BSD许可证,因此从许可证角度来看,选择LZ4是毫无疑问的。 - Cyan
1
你知道lz4有多快吗? 我尝试了使用lz4的-1选项(为最快),但我无法获得比121MB/s更高的速度,但是正如您可能知道的那样,有些人会获得更高的速度!单核心大约550MB/s。 我想知道为什么会这样? - Arash

2
这段话的意思是:“对于那些被称作 gzipbzip2 的经典工具,它们已经作为库存在那里,可以直接使用。”

那些并不是很快。 - Mechanical snail

1
根据Matt Mahoney的大型文本压缩基准测试(http://mattmahoney.net/dc/text.html),有几个压缩比很高且解压速度非常快的解压器:
  • lzturbo 1.1 (-49 -b1000 -p0) 每字节解压时间为9 ns
  • lzham alpha 3 x64 (-m4 -d29) 每字节解压时间为9 ns
  • 4x4 / tornado - 每字节解压时间为9-13 ns
  • libzling 20140430-bugfix (e4) 压缩每字节40 ns,解压每字节10 ns
  • crush 1.00 (cx) 每字节解压时间为13-15 ns

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接