【发布时间】:2018-08-02 09:55:12
【问题描述】:
我正在尝试解码 JPG 文件,整个标题部分已正确读取。在读取照片体本身(SOS,0xFFDA)的过程中,在霍夫曼表中查找对应关系的函数会进入无限循环。如果您在十六进制编辑器中查看该文件,您可以在错误位置找到以下字节序列:
7F FF 00 61
FF 00 => FF
7F FF 61
二进制代码
0111 1111 1111 1111 0110 0001
第一位已被过去的 MCU 使用,现在它是连续 15 个“一”,然后是零。在相应的霍夫曼表中,最大代码为 8 个 1 和 1 个 0。我得出结论,字节 7F 直到最后才被填充。但这不是文件的结尾。我怎样才能知道什么时候需要跳过一个字节,什么时候不需要?
【问题讨论】:
-
什么功能?谁写的?进入无限循环的霍夫曼解码函数有一个错误。它应该总是解码或报告错误。
-
我希望他没有使用我的 JPEG 源代码。 :-)
标签: jpeg huffman-code