ZIPXは、広く使用されているZIP形式を基盤として拡張したアーカイブファイル形式です。ZIPXは、既存のZIPツールとの互換性を維持しながら、高度な圧縮と暗号化機能を追加する方法として、元のZIP形式の背後にある同じ会社であるPKWAREによって開発されました。ZIPXは、従来のZIPアーカイブと比較して、より優れた圧縮率、より強力なセキュリティ、より大きなファイルサイズのサポートを提供することを目的としています。
ZIPXの重要な機能の1つは、複数の圧縮方法をサポートしていることです。ZIPファイルで使用される標準のDEFLATE圧縮に加えて、ZIPXはいくつかの新しい圧縮アルゴリズムを導入しています。これらには、優れた圧縮率で知られる高性能圧縮方法であるBZIP2と、さらに優れた圧縮結果を実現できるコンテキストベースの統計圧縮アルゴリズムであるPPMdが含まれます。ZIPXは、Lempel-Ziv-Markov連鎖アルゴリズムに基づいており、圧縮率と速度のバランスが優れているLZMA圧縮方法もサポートしています。
ZIPXのもう1つの重要な強化点は、高度な暗号化機能の導入です。ZIPファイルは、比較的弱いZipCryptoアルゴリズムを使用した基本的なパスワード保護を長い間サポートしてきましたが、ZIPXは強力な暗号化方法を組み込むことでセキュリティゲームを強化します。128、192、または256ビットのキー長を持つAES(Advanced Encryption Standard)の使用をサポートしています。AESは広く受け入れられている安全な暗号化アルゴリズムであり、アーカイブの内容への不正アクセスに対する堅牢な保護を提供します。
ZIPXは、ファイルサイズに関して元のZIP形式の制限にも対処しています。従来のZIPファイルは32ビットフィールドを使用してファイルサイズとオフセットを格納するため、個々のファイルの最大サイズと全体のアーカイブが4GBに制限されます。これは、この制限を超える大規模なファイルやファイルのコレクションを扱う場合に問題になります。ZIPXは64ビット拡張を導入することでこの制限を克服し、最大18エクサバイト(約1800万テラバイト)のファイルサイズとアーカイブサイズを可能にします。これにより、ZIPXは非常に大規模なデータセットを処理し、デジタルファイルの増大するサイズに対応できます。
ファイル形式の構造に関して、ZIPXは新しい機能と拡張機能を導入しながら、基本的なZIP形式との互換性を維持しています。ZIPXファイルは、それぞれが圧縮されたファイルまたはディレクトリを表す一連のファイルレコードで構成されています。ファイルレコードの後に、アーカイブされたファイルに関するメタデータ(名前、サイズ、圧縮方法など)を含む中央ディレクトリが続きます。ZIPXは、高度な機能に対応するために新しいレコードタイプと追加フィールドを導入しています。
ZIPXの新しいレコードタイプの1つは「追加フィールド」レコードです。このレコードを使用すると、選択した圧縮方法、暗号化アルゴリズム、その他の関連情報など、ZIPXに固有の追加メタデータを含めることができます。追加フィールドは一意のヘッダーIDによって識別され、ZIPX対応ソフトウェアによって簡単に解析できます。
ZIPXは、大規模なアーカイブをより小さく管理しやすい部分に分割できる新しい「分割アーカイブ」機能も導入しています。これは、サイズ制限のあるネ ットワークまたはストレージメディアを介して大規模なZIPXファイルを転送する場合に特に役立ちます。分割アーカイブ機能を使用すると、元のアーカイブを再構築するために連結できる複数のZIPXファイルを作成できます。各分割ファイルには、シーケンス内の位置と部分の総数を示す特別なヘッダーが含まれています。
互換性は、アーカイブ形式に関して重要な考慮事項です。ZIPXは従来のZIP形式よりも高度な機能と改善を提供しますが、ある程度は下位互換性を維持しています。ZIPXファイルは、すべての高度な機能をサポートしていない可能性がありますが、多くの既存のZIPツールで引き続き開いて抽出できます。ただし、ZIPXの機能(改善された圧縮や強力な暗号化など)を最大限に活用するには、専用のZIPX対応ソフトウェアが必要です。
PKWAREは、ZIPXファイルの作成と操作を容易にする「PKZIP SDK」として知られる一連のツールとライブラリを提供しています。SDKには、ZIPXアーカイブの圧縮と抽出用のコマンドラインユーティリティ、およびZIPXサポートをカスタムアプリケーションに統合するためのAPIとライブラリが含まれています。これらのツールはさまざまなプログラミング言語とプラットフォームをサポートしており、開発者がソフトウェアプロジェクトでZIPXを使用しやすくなっています。
ZIPXの導入により、大量のデータを扱うユーザーや組織にいくつかの利点があります。ZIPXの改善された圧縮方法は、ファイルサイズを小さくし、ストレージ要件を削減し、ネットワークを介したデータ転送を高速化します。強力な暗号化機能により、ZIPXアーカイブに格納された機密情報の機密性と整合 性が確保されます。さらに、大規模なファイルサイズを処理する機能により、面倒な回避策の必要性がなくなり、大規模なデータセットの効率的なアーカイブと配布が可能になります。
その利点にもかかわらず、ZIPXの採用は、ユビキタスなZIP形式と比較して比較的遅れています。これは、ZIPの広範なサポートと使い慣れたことに起因する可能性があります。また、多くのユーザーはZIPXが提供する高度な機能を必要としない可能性があります。ただし、データ量が継続的に増加し、セキュリティがますます重要になるにつれて、ZIPXのようなより高性能なアーカイブ形式の需要は増加する可能性があります。
結論として、ZIPXはZIP形式のレガシーに基づいて構築された、強力で機能豊富なアーカイブファイル形式です。高度な圧縮方法、強力な暗号化、大規模なファイルサイズをサポートするZIPXは、従来のZIPアーカイブに大幅な改善をもたらします。既存のZIPツールとの互換性は一定程度維持されていますが、ZIPXの完全な可能性は、専用のソフトウェアとライブラリを使用することで実現されます。データストレージと転送の要件が進化し続ける中、ZIPXはパーソナルコンピューティングからエンタープライズデータ管理まで、さまざまなドメインで効率的かつ安全なアーカイブのための貴重なツールです。
ファイル圧縮は冗長性を減らすことで、同じ情報がより少ないビットで済むようにします。どこまで圧縮できるかの上限は情報理論によって定められています。可逆圧縮の場合、その限界はソースのエントロピーです(シャノンの ソース符号化定理 と彼の1948年の独創的な論文 「通信の数学的理論」を参照)。非可逆圧縮の場合、レートと品質のトレードオフは レート歪み理論によって捉えられます。
ほとんどの圧縮プログラムには2つの段階があります。まず、モデルがデータ内の構造を予測または公開します。 次に、コーダーがそれらの予測をほぼ最適なビットパターンに変換します。古典的なモデリング ファミリーはレンペル–ジブです。 LZ77 (1977) とLZ78 (1978)は、繰り返される部分文字列を検出し、生のバイトの代わりに参照を出力します。 コーディング側では、 ハフマン符号化 (元の論文 1952を参照)は、より可能性の高いシンボルに短いコードを割り当てます。 算術符号化 と 範囲符号化 は、エントロピー限界に近づけるためのよりきめ細かい代替手段であり、現代の 非対称数系(ANS) は、高速なテーブル駆動の実装で同様の圧縮を実現します。
DEFLATE(gzip、zlib、ZIPで使用)は、LZ77とハフマン符号化を組み合わせたものです。その仕様は公開されています: DEFLATE RFC 1951、zlibラッパー RFC 1950、およびgzipファイル形式 RFC 1952。Gzipはストリーミング用にフレーム化されており、明示的に ランダムアクセスを提供しようとはしません。PNG画像は、PNG仕様書によれば、DEFLATEを唯一の圧縮方法として標準化しています(最大32 KiBのウィンドウ)。 「圧縮方法0… deflate/inflate… 最大32768バイト」 および W3C/ISO PNG第2版。
Zstandard (zstd): 非常に高速な 解凍で高い圧縮率を実現するために設計された、新しい汎用圧縮プログラムです。この形式は RFC 8878 ( HTMLミラーも参照)および参照仕様書 GitHubで文書化されています。gzipと同様に、基本フレームは ランダムアクセスを目的としていません。zstdのスーパーパワーの1つは辞書です。コーパスからの小さなサンプルで、多数の小さなファイルや類似のファイルで 圧縮を劇的に改善します( python-zstandard辞書ドキュメント および Nigel Taoの実例を参照)。実装は、「非構造化」と「構造化」の両方の辞書を受け入れます (ディスカッション)。
Brotli: ウェブコンテンツ(例:WOFF2フォント、HTTP)に最適化されています。静的辞書と DEFLATEのようなLZ+エントロピーコアを組み合わせます。仕様は RFC 7932で、2WBITS−16のスライディングウィンドウ(WBITSは[10, 24]、1 KiB−16 Bから 16 MiB−16 Bまで)と、 ランダムアクセスを試みないことも記されています。Brotliは、ウェブテキストでgzipをしばしば上回り、高速にデコードします。
ZIPコンテナ: ZIPは、さまざまな圧縮方法 (deflate、store、zstdなど)でエントリを保存できるファイルアーカイブです。事実上の標準はPKWAREのAPPNOTEです( APPNOTEポータル、 ホストされているコピー、およびLCの概要 ZIPファイル形式(PKWARE) / ZIP 6.3.3を参照)。
LZ4は、控えめな圧縮率で生の速度を目標としています。その プロジェクトページ (「非常に高速な圧縮」)と フレーム形式を参照してください。メモリ内キャッシュ、テレメトリ、または解凍がRAM速度に近い必要があるホットパスに最適です。
XZ / LZMAは、比較的遅い圧縮で密度(優れた圧縮率)を追求します。XZはコンテナです。 重労働は通常、LZMA/LZMA2(LZ77のようなモデリング+範囲符号化)によって行われます。 .xzファイル形式、 LZMA仕様(Pavlov)、およびLinuxカーネルのメモ XZ Embeddedについてを参照してください。XZは通常、gzipを上回り、高圧縮率の最新コーデックとしばしば競合しますが、エンコード時間は遅くなります。
bzip2は、 Burrows–Wheeler変換(BWT)、move-to-front、RLE、およびハフマン符号化を適用します。通常、gzipよりも小さいですが遅いです。 公式マニュアル およびmanページ (Linux)を参照してください。
「ウィンドウサイズ」は重要です。DEFLATE参照は32 KiBしか遡れません (RFC 1951 およびPNGの32 KiBキャップ ここに記載)。Brotliのウィンドウは、約1 KiBから16 MiBの範囲です (RFC 7932)。Zstdは、レベルごとにウィンドウと検索深度を調整します (RFC 8878)。基本的なgzip/zstd/brotliストリームは、シーケンシャル デコード用に設計されています。基本形式は ランダムアクセスを約束しませんが、コンテナ(例:tarインデックス、チャンク化されたフレーミング、または形式固有のインデックス)でそれを階層化できます。
上記の形式は可逆です。正確なバイトを再構築できます。メディアコーデックはしばしば非可逆です。 より低いビットレートを達成するために、知覚できない詳細を破棄します。画像では、古典的なJPEG(DCT、量子化、エントロピー 符号化)は ITU-T T.81 / ISO/IEC 10918-1で標準化されています。音声では、MP3(MPEG-1 Layer III)とAAC(MPEG-2/4)は、知覚モデルとMDCT変換に依存しています( ISO/IEC 11172-3、 ISO/IEC 13818-7、およびMDCTの概要 こちらを参照)。非可逆と可逆は共存できます(例:UIアセット用のPNG、画像/動画/音声用のWebコーデック)。
理論: シャノン 1948 · レート歪み · 符号化: ハフマン 1952 · 算術符号化 · 範囲符号化 · ANS. フォーマット: DEFLATE · zlib · gzip · Zstandard · Brotli · LZ4フレーム · XZ形式. BWTスタック: Burrows–Wheeler (1994) · bzip2マニュアル. メディア: JPEG T.81 · MP3 ISO/IEC 11172-3 · AAC ISO/IEC 13818-7 · MDCT.
結論:データと制約に合った圧縮プログラムを選択し、実際の入力で測定し、 辞書とスマートフレーミングによる利点を忘れないでください。適切な組み合わせで、 より小さなファイル、より速い転送、より軽快なアプリを手に入れることができます—正確さや移植性を犠牲にすることなく。
ファイルの圧縮は、ファイルやファイルのサイズを減らすプロセスで、通常はストレージスペースを節約したり、ネットワークを介した伝送を高速化するために使用されます。
ファイルの圧縮は、データの冗長性を識別して削除することで機能します。それはアルゴリズムを使用して、元のデータをより小さいスペースでエンコードします。
ファイルの圧縮の主要な2つのタイプはロスレス圧縮とロッシー圧縮です。ロスレス圧縮では、元のファイルを完全に復元することができますが、ロッシー圧縮ではデータ品質の若干の損失を伴うより大きなサイズの削減が可能になります。
ファイルの圧縮ツールの人気の例はWinZipで、ZIPとRARを含む複数の圧縮形式をサポートしています。
ロスレス圧縮では品質は変わりません。しかし、ロッシー圧縮では、それほど重要ではないデータを削除してファイルサイズをより大幅に削減するため、品質の低下が目立つことがあります。
はい、データの整合性の面では、特にロスレス圧縮ではファイルの圧縮は安全です。しかし、他のファイルと同様に、圧縮ファイルはマルウェアやウイルスの標的になる可能性があるため、常に信頼することができるセキュリティソフトウェアを用意しておくことが重要です。
ほぼすべてのタイプのファイルが圧縮可能であり、テキストファイル、画像、音声、動画、ソフトウェアファイルなどがあります。ただし、圧縮可能なレベルは、ファイルタイプによって大幅に異なることがあります。
ZIPファイルは、1つ以上のファイルのサイズを減らすためにロスレス圧縮を使用するファイル形式の一種です。ZIPファイルの中の複数のファイルは、実質的に1つのファイルにまとめられるため、共有も簡単になります。
技術的にははい、ですが、さらなるサイズ縮小は最小限で、あるいは逆効果となる可能性があります。既に圧縮されたファイルを圧縮すると、圧縮アルゴリズムによって追加されたメタデータにより、そのサイズが増えることがあります。
ファイルを解凍するには、通常、解凍ツールやアンジッパーといったツール、例えばWinZipや7-Zipが必要です。これらのツールは、圧縮形式から元のファイルを抽出することができます。