我目前正在實施一個png閱讀器,但我對數據的位順序和一般格式感到困惑。放氣格式尤其是動態哈夫曼編碼
我無權訪問libpng,zlib或類似文件。
請注意,我寫的任何位串都是最重要的位。
根據RFC1951「的數據元素被打包[...]開始與所述至少顯著位」
我的樣本圖像的第一個字節是:11101101
要讀取頭,我反轉位訂單,並得到:10110111
第一位是說這是最後一塊,這是有道理的。接下來的2位是「01」,這是否意味着靜態或動態huffman編碼? RFC僅將它們提及爲位,但不以它們的順序或它們的數值。
假設動態哈夫曼編碼,頭後面跟着2個霍夫曼字母。但是,這些也是編碼的。 0-15作爲文字,16以前重複(3 + 2位)次。我是否正確地假設17和18重複了字面0?
進一步的問題是:
- 我才明白這一切是否正確?
- 我如何知道字母編碼結束和下一個開始?
- 與比特頭比特相比,哪個比特順序是字母表和實際壓縮數據?
我想我不明白,大多數章3.2.7 ...