我已經做了一個程序,從輸入文件生成一個霍夫曼代碼。現在我不知道如何結束輸出文件(它應該根據輸入文件和生成的代碼進行壓縮)。讓我們說我們有43位來保存文件如何結束?我可以在最後添加5個零,但代碼可能是錯誤的。有任何想法嗎? PS抱歉我的英文不好。生成huffman樹後壓縮文件
0
A
回答
1
有兩種方法來解決這個,我能想到的:
- 將未壓縮數據的長度壓縮數據的前面。然後,當您解壓時,請計算您已解壓縮的字符數,並在正確的數字後停止。
- 將一個特殊的結束符號放入您只在文件末尾使用的huffman樹中。然後,當解壓時,停止當你看到那個符號。
1
維基百科:
在任何情況下,由於被壓縮的數據可包括未使用的「尾比特」解壓器必須能夠確定何時停止產生輸出。這可以通過傳輸解壓縮數據的長度以及壓縮模型,或者通過定義一個特殊的代碼符號來表示輸入的結束來實現(然而,後一種方法會對代碼長度最優性產生不利影響)。
相關問題
- 1. 在壓縮後將huffman樹寫入文件
- 2. huffman壓縮
- 3. 保存huffman壓縮文件/字符串
- 4. 如何生成文件,然後用Heroku壓縮/壓縮?
- 5. Huffman壓縮的最後一個字節
- 6. 壓縮文件生成的文件
- 7. 生成文檔,然後用php壓縮
- 8. 預測Huffman壓縮比率而不構建樹
- 9. 無法在Java中的Huffman編碼期間壓縮文件
- 10. 第一次執行後CPU huffman壓縮更快嗎?
- 11. JT文件格式:建築huffman樹
- 12. 如何直接將csv文件壓縮成zip壓縮文件?
- 13. 使用Enunciate生成的壓縮文檔
- 14. 使用PHP生成tar.gz文件,文件被雙重壓縮
- 15. eclipse在生成war文件時壓縮了什麼文件
- 16. 後postrotate腳本後logrotate壓縮文件
- 17. Django壓縮器無法壓縮生產中的coffeeScript文件
- 18. 將壓縮目錄壓縮成帶有Commons IO的壓縮文件
- 19. 將文件夾壓縮成零件?
- 20. 壓縮文件
- 21. 如何將「tail -f」壓縮成壓縮(gziped)文件?
- 22. 最後一天修改過的壓縮/壓縮文件
- 23. 壓縮一些文件,然後壓縮zip節點js
- 24. 用PHP壓縮文件解壓後得到cpgz文件
- 25. 壓縮文件未解壓
- 26. Node.js - 壓縮/解壓縮文件夾
- 27. Magick ++壓縮和解壓縮文件
- 28. 壓縮未壓縮的MSI文件
- 29. 與django_compressor壓縮文件以gzip壓縮
- 30. 在yii中壓縮/解壓縮文件