结构化消息压缩

时间:2019-11-07 00:04:54

标签: compression protocol-buffers

是否有用于压缩结构化消息的库? (如protobufs)

我正在寻找比通过GZip传递序列化流更好的东西。例如,如果我的消息存储了一个三角形网格,则相邻顶点的坐标将高度相关,因此智能压缩程序可以存储增量而不是原始坐标,这将需要较少的位进行编码。
而对流结构一无所知的通用压缩器将寻找重复的字节序列,在这样的数据中,字节序列不会太多。

理想情况下,在提供了架构后,它应该可以完全自动地工作,但是我不介意在架构中添加注释。

1 个答案:

答案 0 :(得分:0)

这里的主要问题是,在大多数情况下,编写某种模式将与自己为数据编程预处理器进行类似的工作。例如。对于您的三角形网格示例,可以很容易地实现对数据进行重新排序或对坐标进行增量操作,并且可以很好地支持任何后续压缩器。

朝该方向移动的压缩机为ZPAQ。它可以使用针对特定数据量身定制的配置文件(sample configuration site包括EXE,JPG,BMP配置以及用于压缩包含数学常数pi的专用文件)。缺点是,此处使用的脚本语言(ZPAQL)使用起来非常复杂,您必须了解许多ZPAQ内部信息。

较早版本的WinRAR使用名为RarVM的虚拟机(尽管现在已弃用),该虚拟机允许使用类似汇编程序的代码进行自定义数据转换,GitHub上有open source project named rarvmtools,其中包含一些相关工具。

对于原始气泡压缩,有一个Google project called riegeli可以进一步压缩它们。

相关问题