2014-04-28 79 views
0

我已經做了一個程序,從輸入文件生成一個霍夫曼代碼。現在我不知道如何結束輸出文件(它應該根據輸入文件和生成的代碼進行壓縮)。讓我們說我們有43位來保存文件如何結束?我可以在最後添加5個零,但代碼可能是錯誤的。有任何想法嗎? PS抱歉我的英文不好。生成huffman樹後壓縮文件

回答

1

有兩種方法來解決這個,我能想到的:

  • 將未壓縮數據的長度壓縮數據的前面。然後,當您解壓時,請計算您已解壓縮的字符數,並在正確的數字後停止。
  • 將一個特殊的結束符號放入您只在文件末尾使用的huffman樹中。然後,當解壓時,停止當你看到那個符號。
1

維基百科:

在任何情況下,由於被壓縮的數據可包括未使用的「尾比特」解壓器必須能夠確定何時停止產生輸出。這可以通過傳輸解壓縮數據的長度以及壓縮模型,或者通過定義一個特殊的代碼符號來表示輸入的結束來實現(然而,後一種方法會對代碼長度最優性產生不利影響)。