Compression 结构化消息压缩

Compression 结构化消息压缩,compression,protocol-buffers,Compression,Protocol Buffers,是否有用于压缩结构化消息的库?(像protobufs) 我正在寻找比通过GZip传递序列化流更好的方法。例如,如果我的消息存储三角形网格,相邻顶点的坐标将高度相关,因此智能压缩器可以存储三角形而不是原始坐标,这将需要更少的位进行编码。 而一般的压缩器,对流结构一无所知,会寻找重复的字节序列,在这样的数据中,不会有很多 理想情况下,这应该在提供模式后完全自动工作,但如果是这样的话,我不介意在我的模式中添加注释。这里的主要问题是,在大多数情况下,编写一些模式将与自己为数据编写预处理器的工作类似。例如

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

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


理想情况下,这应该在提供模式后完全自动工作,但如果是这样的话,我不介意在我的模式中添加注释。

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

向那个方向运行的压缩机是空的。它可以使用针对特定数据定制的配置文件(包括EXE、JPG、BMP配置以及一个专门的配置文件,用于压缩包含数学常数pi的文件)。缺点是这里使用的脚本语言(ZPAQL)使用起来相当复杂,您必须了解很多ZPAQ的内部结构

WinRAR的较旧版本使用了一个名为RarVM的虚拟机(尽管现在已弃用),该虚拟机允许使用类似汇编程序的代码进行自定义数据转换,GitHub上有一个带有一些相关工具的虚拟机


对于protobuf压缩,有一种方法可能能够进一步压缩它们。

这里的主要问题是,大多数时候编写一些模式与自己为数据编写预处理器的工作类似。例如,对于三角形网格示例,可以很容易地对数据重新排序或在坐标上进行三角形运算,并且可以很好地支持任何后续压缩程序

向那个方向运行的压缩机是空的。它可以使用针对特定数据定制的配置文件(包括EXE、JPG、BMP配置以及一个专门的配置文件,用于压缩包含数学常数pi的文件)。缺点是这里使用的脚本语言(ZPAQL)使用起来相当复杂,您必须了解很多ZPAQ的内部结构

WinRAR的较旧版本使用了一个名为RarVM的虚拟机(尽管现在已弃用),该虚拟机允许使用类似汇编程序的代码进行自定义数据转换,GitHub上有一个带有一些相关工具的虚拟机


对于protobuf压缩,有一种方法可以进一步压缩它们。

在本例中,由于其他原因,我已经有protobuf格式的数据。但现在我需要在有限带宽的信道上传输它。正如您所建议的,我可以滚动一个手写编码器,但是我必须使它与protobuf模式保持同步。我希望找到一个protobuf模式驱动的压缩过滤器,它将更加自动化。Riegeli看起来可能很有趣,但不清楚它是否会在。。。重复浮点数,或者它只是通过通用压缩器传递序列化消息?此外,它的主要重点似乎是提供随机访问和数据完整性。在本例中,由于其他原因,我已经有protobuf格式的数据。但现在我需要在有限带宽的信道上传输它。正如您所建议的,我可以滚动一个手写编码器,但是我必须使它与protobuf模式保持同步。我希望找到一个protobuf模式驱动的压缩过滤器,它将更加自动化。Riegeli看起来可能很有趣,但不清楚它是否会在。。。重复浮点数,或者它只是通过通用压缩器传递序列化消息?此外,它的主要重点似乎是提供随机访问和数据完整性。