【发布时间】:2011-12-19 19:28:32
【问题描述】:
我正在解码 jpeg 文件。我已经生成了霍夫曼表和量化表,并且已经到了必须解码 DC 和 AC 元素的地步。例如,假设我有下一个数据
FFDA 00 0C 03 01 00 02 11 03 11 00 3F 00 F2 A6 2A FD 54 C5 5F FFD9
如果我们忽略 SOS 标记中的几个字节,我的真实数据是从 F2 字节开始的。所以让我们把它写成二进制(从 F2 字节开始):
1111 0010 1010 0110 0010 1010 1111 1101 0101 0100 1100 0101 0101 1111
F 2 A 6 2 A F D 5 4 C 5 5 F
解码时,第一个元素是亮度 DC 元素,所以让我们对其进行解码。
[1111 0]010 1010 0110 0010 1010 1111 1101 0101 0100 1100 0101 0101 1111
F 2 A 6 2 A F D 5 4 C 5 5 F
所以 11110 是元素 08 的霍夫曼代码(在我的例子中)。这意味着接下来的 8 位是我的 DC 值。当我取接下来的 8 位时,值为:
1111 0[010 1010 0]110 0010 1010 1111 1101 0101 0100 1100 0101 0101 1111
F 2 A 6 2 A F D 5 4 C 5 5 F
DC 元素值为 -171。
这是我的问题:接下来是亮度 AC 值,但在 AC 非零的情况下,我不太了解标准?天呐!
【问题讨论】:
-
我可以推荐一个名为 impulsion Adventure 的网站,它解释了 jpeg 所需的大量解码
-
我已经访问并分析了推荐页面,但是有解释,例如当AC元素为零时。
-
您可以从上述站点下载 jpeg snoop 源代码,这应该可以回答您对 jpeg 解码的任何其他问题
标签: jpeg huffman-code