2017-10-09 97 views
0

我想實現一個放氣壓縮機和我必須決定使用靜態Huffman編碼是否 壓縮塊,或者創建一個動態的。deflate和固定Huffman編碼

什麼是靜態代碼相關聯的長度背後的原理是什麼?

(這是包含在RFC表) Lit Value Bits --------- ---- 0 - 143 8 144 - 255 9 256 - 279 7 280 - 287 8 我認爲靜態代碼是朝着純ASCII文本更偏,而是 看起來更喜歡通過一點點的RLE長度的壓縮

什麼是一個很好的啓發,以決定是否使用靜態代碼?

我正在考慮從 輸入數據的樣本中建立概率分佈,並從靜態代碼中導出 的概率計算距離(也許是EMD?)。

回答

1

我猜測代碼的創建者從壓縮數據中提取了大量的文字和長度樣本,可能包括可執行文件和文本,並在大集合中找到典型的代碼長度。然後他們與所示的表格近似。然而筆者去世很多年以前,讓我們永遠不會知道。

你不需要啓發。一旦你完成了尋找匹配字符串的工作,對於動態和靜態表示來說,計算塊中的位數是相當快的。然後只需選擇較小的一個。或者如果相等,則靜態(解碼更快)。