1

我正在寻求有关如何更好地帮助压缩工具获得更好的无损压缩的建议。

我有许多大文件(>100meg),其中包含来自各种传感器的传感器读数。来自各种传感器的样本具有不同的位大小(16 位、24 位、32 位)和不同的频率(70Hz 到 250Hz)。使用我知道的常用压缩器(zip、gzip、bzip2),我可以获得大约 70% 的原始文件大小的压缩文件。在我看来,如果我可以告诉压缩工具这些字节是这种类型的样本,而这些字节是另一种样本类型,可能会有压缩增益,但我不知道有什么可以让我这样做。

4

1 回答 1

1

第 0 步是以二进制编码数据。(两个字节中的 16 位,三个字节中的 24 位等)我希望您已经这样做了。

第一步是使用差异。根据您的描述,我敢打赌,连续的值变化不大。因此差异很小并且有许多前导零位。尝试一下,然后使用通用压缩器。

第 2 步是使用可变长度整数编码。每个字节的高位决定了每个整数的跨度。整数的第一个字节的高位始终为零。同一整数的所有后续字节的高位为 1。从每个字节的低七位构建整数。(我将第一个字节设为最低有效位,但您也可以按最高有效位顺序进行。)这会将您的微小差异编码在一个字节中。此外,此编码将处理样本中的任意数量的位,这在您的应用程序中很方便。试试这个,然后是通用压缩机。

第 3 步可能会更详细地分析波形以获得更好的预测器。第 1 步只是使用最后一个值作为预测变量。您可以将前n 个值的更复杂函数用作下一个值的预测器。这是否有帮助在很大程度上取决于您的数据。

于 2013-02-09T00:36:41.657 回答