在Jpeg中Huffman采用的是范式Huffman編碼。經過查相關資料有兩種不同說法,請高手指點。謝謝!
1、構造范式 Huffman 編碼的方法大致是:
分別統計從最大編碼長度 maxlength 到 1 的每個長度對應了多少個符號。根據這一信息從 maxlength 個 0 開始以遞增順序為每個符號分配編碼。例如,編碼長度為 5 的符號有 4 個,長度為 3 的有 1 個,長度為 2 的有 3 個,則分配的編碼依次為: 00000 00001 00010 00011 001 01 10 11
問題:如果按照這種說法那么我在一付圖像中渡到的數據是:編碼長度為 6 的符號有 1 個,長度為 5 的有 1 個,長度為 4 的有 3 個,長度為3的個數為4個,長度為2的個數為1個。按照以上的算法得到的編碼為:000000;00001;0010;0011;001;010;011;100;01。出現001是0011的前綴。在讀取數據流的時候將不能區別。
2、另外一種說法,曾經發帖問過。前面的長度編碼加1左移一位得到后面長度的編碼。像我這個例子如何確定最短碼的起始值?
謝謝大家指點具體的范式Huffman編碼實現
標簽:
Huffman
Jpeg
編碼
上傳時間:
2015-11-15
上傳用戶:蠢蠢66