范围编码没有模棱两可或非法输出



在范围编码器中,使用有限优先算术可能会导致不可能在不先应用某种冲洗或调整的情况下对下一个符号进行编码的情况,以打开工作中的空间寄存器。

的结果是,根据如何调整事物,可能会在合法的bitstreams集中留下一些小差距。

例如,Wikipedia页面建议将输出范围缩小到允许更多位移出的东西,而原始范围的某些部分则为未定义。

在解码器中可以到达同一点,然后发现输入bitstream本身与编码器的调整不符,而是继续沿编码器丢弃的差距。没有正确的bitstream解码。

将其与诸如Huffman之类的东西进行了对比,后者通常在没有任何模棱两可的输入配置(在流可能存在不完整符号的流的末端)的情况下定义。因此,可以将任意的bitstream解码为一条消息,然后将其重新编码为原始的bitstream。

我的问题是:是否有可能制定某种调整,以处理精确限制,但不会产生不可判断或模棱两可的bitstream的可能性?因此,给定任意的botstream,可以将其解码为某些可以重新编码回原始bitstream的符号?

凭直觉,似乎应该是不可能的,我不应该抗这个问题。但是我看着霍夫曼,原因是它具有我应该能够模拟的属性。

,在编写问题的过程中,我相信我可能已经找到了解决方案;但是我还不确定。我会把它留在这里,要么(可能是我自己)都会告诉我为什么我错了,要么是正确的,或者对他人来说是正确的且可能有用的...

当您到达输出范围太小而无法实现下一个符号时,这意味着该范围跨越了一个大幂的值,这就是低和低的点。高边界最终在最重要的位上有所不同。

因此,请拿起符号频率表,并在与范围内的锅边界相同的位置进行划分。然后根据符号是第一分区还是第二个分区,将高边界或低边界设置为锅;然后冲洗新释放的位,然后对分区进行编码,好像是一个完整的符号并继续。

也许有一种在功能上等效的方法,但是

最新更新