在Jpeg中Huffman采用的是范式Huffman編碼。經(jīng)過(guò)查相關(guān)資料有兩種不同說(shuō)法,請(qǐng)高手指點(diǎn)。謝謝!
1、構(gòu)造范式 Huffman 編碼的方法大致是:
分別統(tǒng)計(jì)從最大編碼長(zhǎng)度 maxlength 到 1 的每個(gè)長(zhǎng)度對(duì)應(yīng)了多少個(gè)符號(hào)。根據(jù)這一信息從 maxlength 個(gè) 0 開(kāi)始以遞增順序?yàn)槊總€(gè)符號(hào)分配編碼。例如,編碼長(zhǎng)度為 5 的符號(hào)有 4 個(gè),長(zhǎng)度為 3 的有 1 個(gè),長(zhǎng)度為 2 的有 3 個(gè),則分配的編碼依次為: 00000 00001 00010 00011 001 01 10 11
問(wèn)題:如果按照這種說(shuō)法那么我在一付圖像中渡到的數(shù)據(jù)是:編碼長(zhǎng)度為 6 的符號(hào)有 1 個(gè),長(zhǎng)度為 5 的有 1 個(gè),長(zhǎng)度為 4 的有 3 個(gè),長(zhǎng)度為3的個(gè)數(shù)為4個(gè),長(zhǎng)度為2的個(gè)數(shù)為1個(gè)。按照以上的算法得到的編碼為:000000;00001;0010;0011;001;010;011;100;01。出現(xiàn)001是0011的前綴。在讀取數(shù)據(jù)流的時(shí)候?qū)⒉荒軈^(qū)別。
2、另外一種說(shuō)法,曾經(jīng)發(fā)帖問(wèn)過(guò)。前面的長(zhǎng)度編碼加1左移一位得到后面長(zhǎng)度的編碼。像我這個(gè)例子如何確定最短碼的起始值?
謝謝大家指點(diǎn)具體的范式Huffman編碼實(shí)現(xiàn)
標(biāo)簽:
Huffman
Jpeg
編碼
上傳時(shí)間:
2015-11-15
上傳用戶(hù):蠢蠢66