[解決済み】zlib、gzip、zipはどのように関係していますか?これらの共通点と相違点は何ですか?
質問
で使用されている圧縮アルゴリズムは? zlib とは基本的に同じです。 ジージップ と ジップ . とは何ですか? gzip と ジップ ? どのように違って、どのように同じなのですか?
解決方法は?
短い文章です。
.zip
はアーカイブ形式
を使用して、通常は
Deflate圧縮方式
. その
.gz
gzip形式
は単一ファイル用で、Deflate圧縮方式も使用します。 多くの場合、gzipは以下のものと組み合わせて使われます。
tar で圧縮アーカイブ形式
,
.tar.gz
. その
zlib ライブラリ
は、zip や gzip で使用する Deflate 圧縮および解凍コードを提供します。
png
(これは
zlib ラッパー
を使用したもの)、その他多くのアプリケーションがあります。
長文です。
は
ZIP形式
は、Phil Katz氏が開発したオープンな仕様のフォーマットで、同氏の実装であるPKZIPはシェアウェアであった。 ファイルとそのディレクトリ構造を保存するアーカイブ形式で、各ファイルは個別に圧縮されている。 ファイル形式は
.zip
. ファイルおよびディレクトリ構造は、オプションで暗号化することができます。
ZIP形式は、いくつかの圧縮方式をサポートしています。
0 - The file is stored (no compression)
1 - The file is Shrunk
2 - The file is Reduced with compression factor 1
3 - The file is Reduced with compression factor 2
4 - The file is Reduced with compression factor 3
5 - The file is Reduced with compression factor 4
6 - The file is Imploded
7 - Reserved for Tokenizing compression algorithm
8 - The file is Deflated
9 - Enhanced Deflating using Deflate64(tm)
10 - PKWARE Data Compression Library Imploding (old IBM TERSE)
11 - Reserved by PKWARE
12 - File is compressed using BZIP2 algorithm
13 - Reserved by PKWARE
14 - LZMA
15 - Reserved by PKWARE
16 - IBM z/OS CMPSC Compression
17 - Reserved by PKWARE
18 - File is compressed using IBM TERSE (new)
19 - IBM LZ77 z Architecture
20 - deprecated (use method 93 for zstd)
93 - Zstandard (zstd) Compression
94 - MP3 Compression
95 - XZ Compression
96 - JPEG variant
97 - WavPack compressed data
98 - PPMd version I, Rev 1
99 - AE-x encryption marker (see APPENDIX E)
1から7までの方式は歴史的なものであり、使用されていない。 方法9から98は比較的最近追加されたもので、様々な、少量の使用である。 ZIPフォーマットで本当に広く使われている方法は、方法8だけです。
デフレート
また、圧縮を全く行わない方法0もある程度あります。 事実上、すべての
.zip
のファイルでは、メソッド8とメソッド0、おそらくメソッド8のみを使用しています。 (方法8は圧縮せず、比較的少ない拡張で効果的にデータを保存する手段も持っており、方法0はストリーミングできませんが、方法8は可能です)。
その ファイルコンテナに関するISO/IEC 21320-1:2015標準規格 は、Javaアーカイブファイル(.jar)、Office Open XMLファイル(Microsoft Office .docx, .xlsx, .pptx)、Office Document Formatファイル(.odt, .ods, .odp)、EPUBファイル(.epub)などで使用する制限付きのZIP形式です。その規格では、圧縮方式を0と8に限定し、暗号化や署名の禁止など他の制約もある。
1990年頃
Info-ZIPグループ
のポータブルでフリーなオープンソースの実装を書きました。
zip
と
unzip
ユーティリティで、Deflate 形式での圧縮と、それ以前の形式の解凍をサポートしています。 これによって
.zip
というフォーマットがあります。
90年代前半には
gzip形式
に代わるものとして開発されました。
ユニックス
compress
ユーティリティ
Info-ZIPユーティリティのDeflateコードから派生したものです。 Unix
compress
は1つのファイルまたはストリームを圧縮するために設計されており、そのために
.Z
をファイル名に追加します。
compress
は
LZW圧縮アルゴリズム
この特許は当時、特許権者によって自由に使えるかどうかが争われていました。 Deflateのいくつかの特定の実装はPhil Katzによって特許を取得されていましたが、フォーマットはそうではなかったので、どの特許も侵害しないDeflate実装を書くことが可能でした。 その実装は、この20年以上、それほど問題視されていません。 Unixの
gzip
ユーティリティは
compress
を解凍することができ、実際に
compress
-圧縮されたデータです(この文章を解析できたと仮定して)。
gzip
を追加します。
.gz
をファイル名に追加します。
gzip
はDeflate圧縮データ形式を使用しており、Unixの
compress
また、データの整合性チェックとしてCRC-32を付加しています。 また,ヘッダー形式は
compress
の形式を使用することができ、元のファイル名やファイルの変更時間などが含まれます。
しかし
compress
は1つのファイルしか圧縮しませんが、一般的には
tar
ユーティリティを使用して、ファイル、その属性、およびディレクトリ構造のアーカイブを単一の
.tar
ファイルを作成し、それを
compress
を作成し
.tar.Z
ファイルを作成します。 実際には
tar
の出力をパイプする代わりに、同時に圧縮を行うオプションがありましたし、今もあります。
tar
を
compress
. これはすべて gzip 形式に引き継がれ
tar
に直接圧縮するオプションがあります。
.tar.gz
形式を使用します。 また
tar.gz
形式よりも圧縮率が高くなります。
.zip
の圧縮は、そのような場合にも有効であるため
.tar
は、ファイル間の冗長性、特に多くの小さなファイルを利用することができます。
.tar.gz
は移植性が非常に高いため、Unixで最も一般的に使用されているアーカイブ形式ですが、より効果的な圧縮方法もあるため、よく目にするのは
.tar.bz2
と
.tar.xz
のアーカイブを作成します。
とは異なり
.tar
,
.zip
は、最後に中央のディレクトリがあり、そこで内容のリストを提供します。これと、個別の圧縮により、個々のエントリへのランダムアクセスが可能な
.zip
ファイルです。A
.tar
ファイルは、ディレクトリを構築するために解凍され、最初から最後までスキャンされる必要があります。
.tar
ファイルがリストアップされます。
gzip が導入された直後、1990 年代半ばごろ、同じ特許紛争によって、gzip の自由な使用は疑問視されました。
.gif
掲示板やWWW(当時はまだ新しかった)で広く使われていた画像フォーマットです。 そこで、ある小さなグループがPNGという可逆圧縮の画像フォーマットを作り、ファイルタイプは
.png
を置き換えるために
.gif
. また、この形式はDeflate形式を圧縮に使用しており、画像データにフィルタをかけて冗長性を多くした後に適用される。 PNG形式の普及のために、2つのフリーコードライブラリーが作られた。
libpng
と
zlib
libpng は PNG フォーマットのすべての機能を処理し、 zlib は libpng や他のアプリケーションで使用する圧縮・解凍コードを提供します。
gzip
というコードがあります。
記載された特許はすべて期限切れとなっています。
zlib ライブラリは Deflate 圧縮および解凍と、Deflate ストリームの 3 種類のラッピングをサポートしています。 それらは次のとおりです: ラッピングなし ("raw" deflate),
zlib ラッピング
そして、プログラマに gzip ルーチンを提供するための gzip ラッピングです。 zlib と gzip のラッピングの主な違いは、zlib のラッピングは gzip の最低 18 バイトに対して 6 バイトとよりコンパクトで、完全性チェックの Adler-32 は gzip が使う CRC-32 より速く実行されることです。 生の deflate は
.zip
これは、デフレート圧縮されたデータをラップする別のフォーマットである。
zlib は現在、データの伝送や保存に広く使用されています。 例えば、サーバやブラウザによるほとんどの HTTP トランザクションは、zlib を使ってデータを圧縮・解凍しています。具体的には、HTTP ヘッダー
Content-Encoding: deflate
というのは
zlibデータ形式の中に包まれたdeflate圧縮方式
.
zlib と PKZIP は、deflate の圧縮と展開の唯一の実装ではありません。zlib と PKZIP の両方が 7-Zip アーカイブユーティリティ とGoogleの zopfli ライブラリ は、deflate 形式を使用する際に可能な限り最後の数ビットを絞り出すために zlib よりもはるかに多くの CPU 時間を使用する能力を持ち、zlib の最高圧縮レベルと比較して圧縮サイズを数パーセント削減します。その ピッグスユーティリティ gzip の並列実装である zlib (圧縮レベル 1-9) と zopfli (圧縮レベル 11) を使用するオプションを含み、 大きなファイルの圧縮を複数のプロセッサとコアに分割することによって zopfli を使用した場合の時間の影響を多少緩和しています。
関連
-
[解決済み] 7zip 不正なコマンドラインエラー?
-
[解決済み] あらゆるサイズの圧縮をテストするための大きなテキストファイルを探しています。
-
[解決済み] .zstやtar.zstを持つアーカイブファイルを解凍するにはどうすればよいですか?[クローズド]
-
[解決済み] Pythonでファイルを解凍する
-
[解決済み] WindowsとLinuxのディレクトリ名で禁止されている文字は何ですか?
-
[解決済み】zlib、gzip、zipはどのように関係していますか?これらの共通点と相違点は何ですか?
-
[解決済み】tar.xzを1つのコマンドで作成する方法
-
[解決済み】ファイルをzip/unzipするための良いJavaライブラリは何ですか?[クローズド]
-
[解決済み] Google Page Speedのロスレス画像圧縮はどのように機能するのですか?
-
[解決済み] Gzipとminifyの比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 7zip 不正なコマンドラインエラー?
-
[解決済み] あらゆるサイズの圧縮をテストするための大きなテキストファイルを探しています。
-
[解決済み] .zstやtar.zstを持つアーカイブファイルを解凍するにはどうすればよいですか?[クローズド]
-
[解決済み】zlib、gzip、zipはどのように関係していますか?これらの共通点と相違点は何ですか?
-
[解決済み】tar.xzを1つのコマンドで作成する方法
-
[解決済み】ファイルをzip/unzipするための良いJavaライブラリは何ですか?[クローズド]
-
[解決済み] Google Page Speedのロスレス画像圧縮はどのように機能するのですか?
-
[解決済み] Gzipとminifyの比較