Compression 如何识别压缩/未压缩位组?
我正在使用一个静态字典文件,其中包含一些单词和这些单词的值。这些值的大小不是固定的,例如Compression 如何识别压缩/未压缩位组?,compression,byte,bit,delimiter,Compression,Byte,Bit,Delimiter,我正在使用一个静态字典文件,其中包含一些单词和这些单词的值。这些值的大小不是固定的,例如the是1,love是01,kill是101等等。当我试图压缩一组单词时,我遍历每个单词并查找字典,看是否存在该单词的值。如果存在,我用值更改单词,如果不存在,我将单词编码为字节。在压缩之后,我得到了一块比特,因为这些字典值和未压缩的单词的大小不是固定的,所以我无法对比特进行分组和解码 我曾考虑过对每一组位使用1位标志来确定它是压缩的还是未压缩的,但我无法检测标志位,因为一个码字或常规字的长度未知 如果我使用
the
是1
,love
是01
,kill
是101
等等。当我试图压缩一组单词时,我遍历每个单词并查找字典,看是否存在该单词的值。如果存在,我用值更改单词,如果不存在,我将单词编码为字节。在压缩之后,我得到了一块比特,因为这些字典值和未压缩的单词的大小不是固定的,所以我无法对比特进行分组和解码
我曾考虑过对每一组位使用1位标志来确定它是压缩的还是未压缩的,但我无法检测标志位,因为一个码字或常规字的长度未知
如果我使用1字节分隔符,它仍然有问题。假设我的定界符是00000000
,在定界符之前我有100
,在定界符之后我有001
,那么我们有100000000001
,我怎么知道这组位是我的定界符呢?
我可以使用其他方法对这些压缩/未压缩位进行分组以解码吗?谢谢。首先,您打算部署什么语言和系统?许多语言都提供了自己的压缩库和工具,可以满足您的需要,而无需大量的低级设计工作 这里的答案是建立更严格的簿记和文件格式,以便能够撤消压缩。大多数压缩系统在其文件格式中都有一定的开销,这就是为什么当您将某个文件压缩两次时,您不必保存任何内容,并且实际上可以增加文件的大小 文件通常利用文件开头的头来提供关键信息。这将是定义特定于压缩文件的任何规则的好地方
我应该为一个特定的项目开发这个,所以我不能使用任何库或工具。关于固定尺寸测力仪的问题在最后一段。