Han*_*etz 8 compression algorithm
我想以压缩格式存储以下元组的列表,我想知道哪种算法给了我
我的数据如下:
(<int>, <int>, <double>),
(<int>, <int>, <double>),
...
(<int>, <int>, <double>)
Run Code Online (Sandbox Code Playgroud)
两个整数中的一个指的是一个时间点,并且结果在一个列表中的数字很可能彼此接近.另一个int表示一个抽象id,值不太可能接近,尽管它们也不会完全随机.双重表示传感器读数,虽然值之间存在某种相关性,但它可能没什么用处.
由于“时间”整数可以彼此接近,因此尝试仅存储第一个,然后将差异保存到之前的整数(增量编码)。您也可以对第二个 int 尝试相同的操作。
您可以尝试的另一件事是将数据从 [int1, int2, double], [int1, int2, double]... 重新组织为 [int1, int1...], [int2, int2...], [double , 双倍的...]。
要找出结果的压缩范围,您可以将数据写入文件并从 Christian Martelock此处下载压缩器 CCM 。我发现它对于此类数据收集表现非常好。它使用相当快的上下文混合算法。您还可以将其与 WinZIP 等其他压缩器进行比较,或使用 zLib 等压缩库来看看它是否值得。