2017-02-07 14 views
0

私はdeflateまたはgzipデコンプレッサのFPGA実装を行っています。私はいくつかのコーディングを行う前に、圧縮されたデータストリームのフォーマットを最初に理解する必要があります。ストリームフォーマットのデフレートとgzip - 詳細

私は木がデータストリームすなわち内部に存在する方法を知りたい私はドキュメンテーションを読んで、私は常にハフマン符号化について見ると木々に読み、

。 in gzip {HEADERS、etc etc、COMPRESSED PAYLOAD、CRC/ISIZE FOOTER}圧縮されたペイロードがどのように表示されているのか、それが何であるかを教えてくれません。

deflateの場合、ブロックごとに3ビットのHEADERがありますが、ブロックの長さや、それが別のブロックであるかどうかはどのようにわかりますか?

この後、私はその文書がアルゴリズムを手助けするのに十分だと思いますが、正確に私が扱っている/触っていることは分かりません。

+0

だから、基本的にあなたが言っている - 私はドキュメントを理解していないのですか?当時私たちは何を期待していますか? –

答えて

0

「圧縮されたペイロード」は、RFC 1951に記載されています。詳細については、圧縮形式を説明しています。それを数回読んでから、具体的な質問があればここに戻ってくることができます。

+0

gzipが1と0の点でどのように見えるかを確認することができます。 –

+0

[RFC 1952](https://tools.ietf.org/html/rfc1952)を参照してください。 –

+0

申し訳ありません本当に混乱しています 私が理解する限り、これは次のようになります。 1と0のファイルです。 StartOfFile 010 ... 010 EndOfFile。 ファイル名をgzip形式とするID1とID2は、次のようになります。 ファイルの開始0001 1111 1000 1011 ......その他の部分...ファイルの最後。 したがって、ヘッダーは| ID1 | ID2 | = | 0x1f | 0x8b | ? Mtime = SoF ||のようなマルチバイトヘッダーLSBバイト| ... | MSBバイト|| EoF。 データブロック(非圧縮) SoF ... 0 00(ヘッダーBfinal、btype)|| LEN LSB | LEN MSB || || NLEN ... ||すなわちリテラル。 00001001 =アルファベット#9 || .... EoF。 –