我正在解码jpeg文件。我已经生成了霍夫曼表和量化表,并且我已经到了必须解码DC和AC元素的地步。例如可以说我有一个数据从jpeg文件生成交流元素
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时非零的情况下的标准吗? TNX!
我可以推荐一个叫冲动的冒险网站,解释了JPEG – Jimmy 2011-12-20 14:55:33
需要大量的解码我已经访问过并分析了推荐页面,但是当交流元素为零时有例子。 – MrD 2011-12-21 01:00:35
你可以从上面的网站下载jpeg snoop源代码,这应该回答你有关于jpeg解码的任何其他问题 – Jimmy 2011-12-21 13:28:16