重複排除も行うWindows用の圧縮プログラムまたはアーカイバプログラムはありますか?[閉まっている]


12

アーカイブ対象のファイルで重複排除(重複排除)を実行できるアーカイバプログラムを探しています。アーカイブを解凍すると、ソフトウェアは圧縮プロセス中に削除したファイルを戻します。

これまでのところ、私は見つけた:

他のことを知っている人はいますか?

これはおそらく、7-zipへのすばらしい追加でしょう。

回答:


12

ほとんどすべての最新のアーカイバーはこれを正確に行いますが、唯一の違いは、すべてのファイルが圧縮アルゴリズムに送られる前に単一のストリームに連結されるため、これを「ソリッド」アーカイブと呼ぶことです。これは、各ファイルを1つずつ圧縮し、各圧縮ファイルをアーカイブに追加する標準のzip圧縮とは異なります。

7-zipはその性質上、重複排除を効果的に実現します。たとえば、7-Zipはファイルを検索し、同様のファイルタイプとファイル名でそれらをソートします。そのため、同じタイプとデータの2つのファイルが、コンプレッサーアルゴリズムに向かうストリームに並んで配置されます。コンプレッサーは、ごく最近見た多くのデータを見ることになり、これら2つのファイルは、ファイルを1つずつ圧縮するのに比べて、圧縮効率が大幅に向上します。

Linuxは、「。tgz」形式(または「.tar.gz」を使用して完全な形式を使用)が普及しているため、tarがすべてのファイルを単一のストリームにマージしているため(ファイルの並べ替えとグループ化)、gzipでの圧縮。これが見落としているのは、7-zipが行っている並べ替えです。これにより、効率がわずかに低下する可能性がありますが、zipのように個別に圧縮されたファイルを大量にまとめて処理するよりもはるかに優れています。


毎日新しいことを学びます。私はzipが各ファイルを個別に圧縮することを知りませんでしたが、私のコンピューターで2、3のテストを実行した後、私はあなたが本当に正しいことに気付きました。非常に興味深い、ありがとう!
CenterOrbit

7ipは重複排除の公平な仕事をしますが、重複しないデータを効率的に圧縮するように設計されており、それを達成するために大量のCPUとメモリを使用するため、データを重複排除する非常に非効率的な方法になります。2つの同一の100MBファイルを圧縮する場合、最初のファイルを効率的に圧縮しようとすると多くの手間がかかり、その後(辞書サイズが十分に大きい場合)2番目のファイルを最初のファイルの複製として圧縮します。
mwfearnley

.tar.gz一度に比較的小さなブロック(900KBなど)のみを互いに完全に独立して圧縮するgzipではないため、2つの大きいが同一のファイル(たとえば、4MBのイメージ)を重複排除することはできませんか?
ビンキ

たとえば、7zは大きなファイル間で重複排除できましたが、gzipはそうではありませんでした:gist.github.com/binki/4cf98fb4f1f4aa98ee4a00edaf6048fa
binki

4

圧縮プロセスで重複排除を使用しても意味がありません。ほとんどの圧縮アルゴリズムは、「辞書」と呼ばれるものを作成し、最も一般的な、または再利用されたデータの一部を探します。そこから「単語」全体を書き直すのではなく、辞書エントリを参照するだけです。このようにして、ほとんどの圧縮プロセスは、すべてのファイルから冗長データまたは重複データをすでに切り取っています。

たとえば、1 MBのファイルを取得し、毎回異なる名前(合計100 MBのディスクスペース)で100回コピーした場合、7zipまたはzipファイルで圧縮すると、合計1 MBのzipファイルになります。これは、すべてのデータが1つのディクショナリエントリに入れられ、100回参照されたため、スペースをほとんど消費しないためです。

これは何が起こるかについての非常に簡単な説明ですが、ポイントはまだうまく伝えられています。


1
辞書のサイズはほとんどの圧縮アーカイブで非常に制限されているため、日常の使用では有効ではありません。50MBのファイルでこれを試してみてください。2つの同一の入力ファイルで圧縮サイズが2倍になります。
Chaos_99

1
Zipファイルは、7zipファイルとは異なり、ファイル間の重複排除をサポートしていません。Zipファイルは各ファイルを個別に圧縮して保存するため、重複ファイルはアーカイブに複数回保存されるだけです。
mwfearnley

1
7zipはファイル間の重複排除をサポートしていますが、はるかに短い一致を見つけて圧縮するように設計されています。そのアルゴリズムは、大規模なデータ複製を見つけるために設計されたものに対して潜在的に可能なものよりもはるかに遅く、より多くのメモリを消費します。
mwfearnley

4

7-Zip、zip、gzip、および他のすべてのアーカイバは、同じファイル内または異なるファイル内の異なる位置に配置された、わずか数メガバイト以上など、互いに離れた同一領域を検出しません。

そのため、一部の状況では、通常のアーカイバーは除外やその他のパフォーマンスを発揮しません。これは、一部の仮想マシンまたはその他のものを圧縮すると表示されます。


1
正解です。一意のデータ量がコンプレッサー辞書のサイズを超えるとすぐに、圧縮が低下します。exdupeは、大量のデータに対して優れたパフォーマンスを提供します。
usr
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.