繁体   English   中英

如何解码没有前缀属性的霍夫曼编码

[英]How to decode a huffman coding without the prefix property

我正在尝试解码使用Modified Huffman Coding 编码的缓冲区。

这是缓冲区的开头: 000111100001111011111010001000011101000011101000011110

通过查看转换表,似乎不能保证 Modified Huffman 所需的前缀属性。 根据表格,我看到00011表示7B ,但000111表示1W 在这种情况下,我如何解码上面的缓冲区? 我读错了表格还是我遗漏的算法有一些细微差别?

改进的霍夫曼编码使用白色和黑色像素的交替编码。 编码总是以白色像素开始。 因此,在您的示例中,缓冲区解码为000111=1W10=3B000111=1W等。

修改后的霍夫曼编码假设您从一系列白色像素开始,如链接中的翻译表中所述。 如果不是,则使用运行“0”白色像素的代码。

00110101 = 0W
000111   = 1W
and so on...

在您的示例中,您从 1W 000111开始,然后是 3B 10等等......

正如约翰所指出的,您的翻译表是错误的。 正确的表可以在这里找到:正确的修改后的霍夫曼编码转换表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM