.BZ2 ファイル拡張子
.BZ2 拡張子を持つファイルは、BZIP2 アルゴリズムを使用して圧縮されます。 Julian Seward によって開発されたこの無料のオープンソース ツールは、優れた圧縮率を実現し、大きなファイルやデータセットの圧縮に最適です。 ZIP のようなアーカイブ形式とは異なり、BZIP2 は単一ファイルのみを圧縮します。ありがたいことに、BZ2 ファイルの作成と抽出は、この形式をサポートするほとんどのファイル アーカイバで簡単に行えます。 BZIP2 は圧縮と解凍の効率が高いため、ソフトウェアの配布、データのバックアップ、インターネット送信に広く使用されています。
BZIP2 アーカイブについて
GZIP と同様に、BZ2 はデータ圧縮プログラムとして機能しますが、 TAR や ZIP などのアーカイバのような汎用性がありません。これらの形式とは異なり、BZIP2 は複数のファイルを 1 つのアーカイブに圧縮することをサポートしておらず、暗号化やアーカイブの分割機能も提供しません。 UNIX の伝統では、通常、アーカイブは個別に処理され、BZIP2 は圧縮のみに使用されます。ただし、BZIP2 による解凍は、特に圧縮速度が遅いことに比べて、著しく効率的です。この不均衡に対処するために、2003 年に PBZIP2 と呼ばれる修正バージョンが登場しました。これはマルチスレッドを利用して、最新のマルチ CPU およびマルチコア システムでの圧縮時間を劇的に改善しました。
.BZ2 アーカイブ ファイル形式の履歴情報
BZIP2 圧縮に関連する .BZ2 ファイル形式の起源は、1990 年代後半の UNIX コミュニティ内での Julian Seward の開発活動に遡ります。長年にわたり、このアルゴリズムはメンテナンスにおいて何度かの移行を経て、2021 年 6 月に Micah Snyder がメンテナンス担当者に就任しました。この進化に伴い、PBZIP2 のような修正が登場し、マルチスレッド機能を活用して最新のマルチ CPU での圧縮速度を向上させています。 、およびマルチコア システム。これらの進歩にもかかわらず、.BZ2 形式の中心原理は、Burrows-Wheeler 変換、move-to-front 変換、およびハフマン コーディング技術の効率的な使用に基づいています。
BZIP2 アーカイブの構造
BZIP2 はブロックベースの圧縮を採用しており、通常はサイズが 100 ~ 900 KB の範囲のブロックでデータを圧縮します。 Burrows-Wheeler 変換を利用して、繰り返しの文字シーケンスを同一の文字の文字列に変換し、その後、move-to-front 変換とハフマン コーディングを行います。特に、その前身である bzip は、圧縮にハフマンの代わりに算術符号化を利用していました。
BZIP2 圧縮方法
- ブロック ソート: BZIP2 は、個別の圧縮のためにデータを小さなブロックに分割します。
- Burrows-Wheeler 変換: このステップでは、各ブロック内のデータを再配置し、繰り返しパターンを識別することで圧縮効率を向上させます。
- 後方への移動: 次に、アルゴリズムは、変換されたデータを後方へ反復処理し、ハフマン コーディングを適用してさらなる圧縮を行います。
- ランレングス エンコーディング: この技術は、データ ブロック内の繰り返し文字を識別してエンコードし、さらにスペースを節約します。
残念ながら、BZIP2 には、一部の対応物に見られる多様な圧縮技術がありません。代わりに、データ圧縮に対する、細心の注意を払って作成された独自のアプローチに依存しています。このテクニックの特徴は次のとおりです。
BZIP2 アーカイブでサポートされる操作
Aspose.ZIP は、抽出、圧縮、ファイルのパッキング、結合、アーカイブ変換など、.BZ2 ファイル アーカイブに対するさまざまな操作を容易にします。ユーザーは、.BZ2 アーカイブからのデータのシームレスな抽出、ファイルの圧縮、アーカイブの結合、および異なるアーカイブ形式間の変換を簡単に行うことができます。さらに、 Aspose.ZIP は、管理性とストレージ効率を向上させるために、大規模な .BZ2 アーカイブを複数のボリュームに分割することをサポートしています。
BZIP2 - 内部構造
bzip2 には正式な仕様はありませんが、リファレンス実装のリバース エンジニアリングを通じて非公式の仕様が導出されています。本質的に、.bz2 ストリームは簡潔な 4 バイトのヘッダーで始まり、その後に任意の数の圧縮ブロックが続き、処理された平文ストリーム全体の 32 ビット CRC チェックサムを特徴とするストリーム終了マーカーでシームレスに終了します。特に、圧縮ブロックは追加のパディングを必要とせずにビット レベルに合わせて配置されます。この合理化された構造は、bzip2 圧縮形式の効率性とシンプルさを強調しています。
初期段階で RLE 圧縮を受けた後 (上記を参照)、bzip2 の 1 つの 900 KB ブロックに収まる非圧縮テキストの最大長は、約 46 MB (45,899,236 バイト)。このシナリオは、非圧縮テキスト全体が繰り返し値のみで構成されている場合に発生します (その結果、わずか 46 バイトの .bz2 ファイルになります)。値 251 だけで構成される入力データを利用することで、40 バイトほどのさらに小さなファイルも実現でき、その結果、1,147,480.9:1 という驚異的な圧縮率が得られます。この注目すべき偉業は、bzip2 圧縮アルゴリズムの驚くべき効率性と多用途性を示しています。
BZIP2 アーカイブとサポートの人気
.BZ2 アーカイブは、.ZIP や .7z 形式ほど普及していませんが、特定のアプリケーション、特に Unix および Linux 環境で依然として有用です。これらは強力な圧縮機能を提供し、さまざまなオペレーティング システムやソフトウェア ツールで十分にサポートされています。 BZIP2 アーカイブは、そのニッチな地位にもかかわらず、ソフトウェア配布とデータ バックアップのパッケージ化には依然として信頼できる選択肢です。 .BZ2 ファイルのサポートは広く普及しており、多くのアーカイブ ツールやスクリプト言語では、ファイルを作成および抽出するための組み込み機能が提供されています。ただし、新しい圧縮アルゴリズムが登場するにつれて、BZIP2 アーカイブの人気と使用法は進化し続ける可能性があります。
BZIP2の使用例
Aspose.ZIP は、Bzip2 圧縮を次のレベルに引き上げます。 CPU の並列処理能力を活用することで、Aspose.ZIP は圧縮ワークロードを複数のコアに分割できます。これにより、特に大規模なデータセットの場合、圧縮時間が大幅に短縮されます。 Aspose.ZIP を使用して並列圧縮を有効にするのは、CompressionThreads プロパティを 1 より大きい値に設定するのと同じくらい簡単です。
Parallel Compression for BZ2 Files
This simple configuration unlocks the full potential of your multi-core processor, dramatically accelerating your Bzip2 compression tasks.
using (Bzip2Archive archive = new Bzip2Archive())
{
archive.SetSource("data.bin");
archive.Save("result.bz2", new Bzip2SaveOptions() { CompressionThreads = Environment.ProcessorCount });
}
Bzip2SaveOptions.CompressionThreads property
This setting controls the number of compression threads. When set to a value greater than 1, multithreading compression is activated. Read more .
public int CompressionThreads { get; set; }
BZIP2 アーカイブに関する追加情報
人々は尋ねてきました
1. BZIP2は安全ですか?ファイルを暗号化できますか?
これにより、データ セキュリティに関する一般的な懸念に対処できます。 BZIP2 自体は暗号化を提供しないことを明確にすることが重要です。ユーザーは、BZIP2 で圧縮する前にファイルを暗号化するための別のツールが必要になる場合があります。たとえば、 強力なパスワード は、別の暗号化ツールを使用して、以前に作成されたアーカイブに対して生成できます。
2. BZIP2 圧縮を使用する利点と制限は何ですか?
BZIP2 の主な利点は、高い圧縮率を達成できることですが、他のアルゴリズムと比較してより多くの計算リソースと時間を必要とする場合があります。さらに、BZIP2 アーカイブは、複数のファイルを 単一の圧縮ファイル に保存することをサポートしていません。
3. BZIP2 と ZIP や TAR などのアーカイブ形式の違いは何ですか?
複数のファイルを 1 つのパッケージにアーカイブできる ZIP や TAR とは異なり、BZIP2 は単一のファイルのみを圧縮するため、これは非常に重要です。この制限に対処するには、Aspose.ZIP API を使用して 圧縮せずに ZIP アーカイブにファイルを追加 できます。