-1

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

有零位序列和位序列,它们携带信息(1或0)。序列通常为 8-24 位长。我需要一个无损压缩来利用那些零位。

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

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

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

RLE - 信息序列会弄乱结果

一些符号编码(霍夫曼等) - 数据可能不会共享太多“符号”,它不是文本并且序列很短。整个数组的长度通常约为 1000 字节。

4

1 回答 1

0

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

于 2013-05-12T17:05:14.697 回答