【发布时间】:2011-08-22 10:01:11
【问题描述】:
有谁知道免费(非 GPL)、性能良好的压缩库,它支持 C/C++ 中面向数据包的压缩?
对于面向数据包,我的意思是QuickLZ (GPL) 具有的那种功能,其中可以单独压缩和解压缩流的多个数据包,同时跨数据包维护历史记录以实现合理压缩。
只要 CPU 使用率不高,我更倾向于压缩比而不是 CPU 使用率,但我很难找到这个功能,所以任何东西都很有趣。
【问题讨论】:
-
面向数据包的压缩有什么好处?当您维护以前数据包的字典时,无论如何都需要解压缩所有以前的数据包。
-
当然需要解压“所有以前的数据包”。但是许多应用程序在每个单独的数据包到达时对它们自己感兴趣。另一方面,压缩算法对作为流的数据感兴趣,以检测熵,因此希望随着时间的推移建立它的状态。目标应该很明显:允许发送方传输包含详细(即低熵)数据的数据包,并让压缩算法自动最小化实际发送的比特数。
-
面向数据包的压缩的目的对我来说仍然不是很明显。如果需要,应该很容易将解压后的流分割成原始数据包。
-
我认为 OP 希望保证他会及时获得小块解压数据,而不是在获得任何数据之前等待完全解压。
-
“免费(非 GPL)”是什么意思? BSD 许可证是否符合要求?
标签: c++ c compression