压缩零比特序列

compression zero bit sequences

本文关键字:压缩      更新时间:2023-10-16

我试图找到一些库(c++)或算法,可以压缩数组的位与这些属性:

有0位序列和携带信息(1或0)的位序列。序列通常有8-24位长。我需要一种无损压缩来利用那些零比特。

我是如何得到这样的序列的:

我将各种变量序列化成字节数组。我经常这样做来创建快照,所以这些变量通常不会改变太多。我想用这个事实来压缩。我不知道这些变量的类型,只知道字节长度。因此,我使用XOR获取字节并与前一个快照创建diff信息。如果变量只改变了一个位,通常会有很多零位。这就是零比特序列。其余的比特携带信息,这就是信息序列。对于每个变量,可能会有1个0位序列和1个信息序列。

编辑:到目前为止,我正在考虑这些算法:

RLE -信息序列会弄乱结果

一些符号编码(霍夫曼等)-数据可能不会共享太多的"符号",它不是文本,序列很短。整个数组通常在1000字节左右。

如果~1000字节序列有很多零字节,那么只需使用标准的面向字节的压缩算法,例如zlib。你将得到压缩