aspose.info
JA

LZ4 - LZ4 圧縮ファイル形式

更新日

.LZ4 ファイルとは何ですか?

拡張子が .lz4 のファイルは、LZ4 圧縮をサポートするアプリケーション/ユーティリティで作成された圧縮アーカイブ ファイルです。 LZ4 アルゴリズムは、速度と圧縮率の間のトレードオフに重点を置いています。圧縮された LZ4 アーカイブは、LZ4 コマンドライン ユーティリティを使用して作成でき、同じものを使用して解凍できます。

LZ4 ファイル形式

LZ4 圧縮アルゴリズムに基づく LZ4 ファイル形式は、CPU の種類、オペレーティング システム、ファイル システム、および文字セットに依存しません。 LZ4 アルゴリズムを使用したファイル圧縮およびストリーミング圧縮に適しています。 LZ4 形式の最初の実装は、2011 年に Yann Collet によって C 言語で実行され、Github で開発者の参照用に利用できます。 .

LZ4 フレーム形式

LZ4 ファイル形式の一般的な構造は次のとおりです。

MagicNbF.記述子ブロック(…)エンドマークC.チェックサム
4バイト3~15バイト4 バイト0 ~ 4 バイト

マジックナンバー

4 バイト、リトルエンディアン形式。値: 0x184D2204

フレーム記述子

フレーム記述子は 3 t0 15 バイトで構成され、仕様の最も重要な部分です。 Magic_Number フィールドと Frame_Descriptor フィールドは合わせて LZ4 フレーム ヘッダーと呼ばれ、そのサイズは 7 ~ 19 バイトです。下図のとおりです。

FLGBD(コンテンツ サイズ)(辞書 ID)HC
1バイト1 バイト0 - 8 バイト0 - 4 バイト1 バイト

データ ブロック

各データ ブロックは、次の順序に従います。

ブロックサイズデータ(ブロック チェックサム)
4バイト0 - 4 バイト

エンドマーク

ブロックのフローは、最後のデータ ブロックの後に 32 ビット値 0x00000000 が続くと終了します。

コンテンツ チェックサム

Content_Checksum は、正しくデコードされたコンテンツの有効性を検証し、xxHash-32 アルゴリズムの結果を使用して実行されます。すべてのブロックが正しい順序でエラーなしで正常に送信された結果を検証します。

参考文献

関連項目