最好的压缩算法?(见下文最佳定义)

Han*_*etz 8 compression algorithm

我想以压缩格式存储以下元组的列表,我想知道哪种算法给了我

  • 压缩尺寸最小
  • 最快/压缩
  • 权衡最优(权衡曲线的"拐点")

我的数据如下:

(<int>, <int>, <double>), 
(<int>, <int>, <double>), 
...
(<int>, <int>, <double>)
Run Code Online (Sandbox Code Playgroud)

两个整数中的一个指的是一个时间点,并且结果在一个列表中的数字很可能彼此接近.另一个int表示一个抽象id,值不太可能接近,尽管它们也不会完全随机.双重表示传感器读数,虽然值之间存在某种相关性,但它可能没什么用处.

sch*_*der 4

由于“时间”整数可以彼此接近,因此尝试仅存储第一个,然后将差异保存到之前的整数(增量编码)。您也可以对第二个 int 尝试相同的操作。

您可以尝试的另一件事是将数据从 [int1, int2, double], [int1, int2, double]... 重新组织为 [int1, int1...], [int2, int2...], [double , 双倍的...]。

要找出结果的压缩范围,您可以将数据写入文件并从 Christian Martelock此处下载压缩器 CCM 。我发现它对于此类数据收集表现非常好。它使用相当快的上下文混合算法。您还可以将其与 WinZIP 等其他压缩器进行比较,或使用 zLib 等压缩库来看看它是否值得。