我正在解碼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