云风, 你的JPEG 文档里说 JPEG Huffman编码使用的是 Canonical Huffman Code. 但我查阅了一些Canonical Huffman的资料发现其算法都跟你的文档里面不一样(如: http://www.arturocampos.com/ac_canonical_huffman.html 但是看上去原理都是一样,就是利用长度信息编码.) 但JPEG似乎用的是Canonical 相反的算法.如: Canonical 解码是将读入的 n 个bits 的值 value 与长度为n的Huffman code 的第一个code 比较,如果value < first(n), 则继续读入bit.而JPEG的算法看上去像是将这个value 与 长度为n的Huffman code的最后一个code比较, 如果 value > last(n) 则继续读入bit.非常困惑, 能否指点一下.
canonical huffman 只是一个算法而已,怎么实现跟实现的人有关。至于 jpeg 里的定义是如何实现的,可以依据我写的文档来实现。因为 jpeg 的 decoder 我自己实现并正常工作。所以应当记录的没有什么错,那些文字是值得信赖的。时间太久,我现在不太想重新去研究它了,不可能现在再给你做详细解释。 - 回复 | (1040) | 云风 | 2006-04-04 05:09:23
Thanks anyway! 实事上这份文档对于编码实现JPEG解码来说太有用了,让我在阅读JPEG资料的时候基本不用再做笔记 :-) - 回复 | (1041) | sword007 | 2006-04-06 10:20:43