ZIP圧縮では何も圧縮されないのはなぜですか?


18

398MBのディレクトリは、7Zおよび通常のZIP圧縮を使用して393MBにのみ圧縮されました。これは正常ですか?もしそうなら、なぜ人々はWindowsでZIPを使い続けるのですか?

回答:


70

すでに圧縮されているもの(AVI、JPEG、MP3)を圧縮している場合、すべてを1つのファイルにパックする以外に多くのことは得られません。


1
そして、私はそれが逆に動作し、圧縮アーカイブが個々の圧縮ファイルよりも大きくなるのを見てきました。
Fiasco Labs

32

圧縮は、圧縮するアイテム内の反復パターンを探すことで機能します。また、ファイルの圧縮中にデータを失いたくないので、圧縮は無損失(*)でなければなりません。
次に、頭の後ろに置いて、ファイル(アイテム)をコンピューターに保存する方法を考えます。最下位レベルでは、それらはすべて0と1の単なる束です。

したがって、質問は「1と0の束を元の表現よりもコンパクトな方法で表現するにはどうすればよいですか?

では、最初から始めましょう。どのようにして、単一ビット(単一の1または単一の0)の通常の表現を圧縮できますか?
答えは本当に簡単です。できません!...単一ビットが可能な限りコンパクトな方法で表されます。

それでは、もっと大きな例を見てみましょう。01110111 0100 0111のようなバイナリ文字列をどのように圧縮しますか?
個々のビットを見てもまったく役に立たないことは既にわかっているので、より大きなスケールを調べる必要があることはわかっています。たとえば、一度に4ビットを使用してみましょう。この例では、バイナリ文字列"0111"が3回出現することがわかりました。それで、なぜそれを1ビットで表現しないのですか?0?しかし、これはまだ暗闇の中で0100を離れるので、私たちは「1」とすることを表すもの
:私たちは知っているにオリジナルを圧縮している「0010」

それはすごくいいね!ただし、これは「ハフマンエンコーディングアルゴリズム」の基本の基本に過ぎず、実際にはそれよりも少し複雑になります(また、エンコーディング情報を含むテーブルを保存する必要がありますが、それはこの質問に答えるために少し))。

さて、本当にあなたの質問に答えるために:なぜすべてのデータをそれほど圧縮できないのでしょうか?別の例を見てみましょう: "0001 0110 1000 1111"、上記と同じ手法を使用する場合、データを圧縮できません(繰り返しは見つかりません)、したがって圧縮の恩恵を受けません...


(*)もちろんこれには例外があります。最もよく知られている例は、MP3ファイルに使用される圧縮です。ここで、サウンドに関するいくつかの情報は、生の元のファイルからMP3形式に変換するときに失われるため、この圧縮は損失を伴います。別の例は、画像の.JPG形式です


6

圧縮プロセスでは、繰り返し可能なパターンを取得し、それらを短いパターンにトークン化します。この場合、出力はほとんど繰り返し不可能であるため、圧縮することはできません。


6

ロスレス圧縮に関するウィキペディアの記事の制限セクションから:

ロスレスデータ圧縮アルゴリズムは、すべての入力データセットの圧縮を保証することはできません。言い換えると、(ロスレス)データ圧縮アルゴリズムには、アルゴリズムによって処理されたときに小さくならない入力データセットがあります。これは、カウント引数を使用した初等数学で簡単に証明されます。...

基本的に、すべての可能な入力データをロスレスで圧縮することは理論的に不可能です。


すでに圧縮されているデータを圧縮することは困難です。イメージ、元のサイズが非常に大きくなりますので、動画のほとんどは圧縮されている
phuclv

4

これは正常ですか?

いいえ。「通常の」ファイルではありません。どのような種類のファイルを圧縮していましたか?JPG、GIF、PNG、ビデオ、またはその他のzipファイルなど、すでに圧縮されている場合は、アルゴリズムによってあまり圧縮されません。テキスト、XML、非圧縮BMP、ソースコードなどのファイルを圧縮しようとすると、zipは十分な圧縮を提供しますが、おそらく最良の圧縮ではありません。

なぜ人々はWindowsでZIPを使い続けるのですか?

1つの理由は、システムに組み込まれた優れたzip処理があることです。どこでも右クリックして新しいzipファイルを作成し、そこにデータをドロップできます。zipファイルをダブルクリックするだけで、フォルダーのように開きます。あなたはそこからものをコピーすることができ、時にはそれをその場で使うことさえできます。WinZipや7z、その他のプログラムをインストールする必要はありません。私は通常、人々はしないことをお勧めします。


2

多くのファイルを含むzipアーカイブでは、各ファイルは個別に圧縮されます。ファイル間に非常に多くの類似性がある場合、別のツールを使用すると圧縮率が大幅に向上する可能性があります。

たとえば、tar.gzはファイルを結合し、結果を圧縮します。同様に、「固体」rarファイルはファイル間の類似性を利用します。

tar.gzまたは堅牢なrarのマイナス面は、必要なファイルがある場所までアーカイブを解凍しないと、大きなアーカイブから単一のファイルを抽出できなくなることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.