700MB程度のデータを30-50MB程度に圧縮するなど、高度に圧縮されたファイルをいくつか見ました。
しかし、どのようにしてそのような圧縮ファイルを取得しますか? WinRARや7Zipなどのソフトウェアを使用してみましたが、そのような高圧縮は実現できていません。
ファイルを非常によく圧縮するためのテクニック/ソフトウェアは何ですか?
(私はWindows XPを使用しています)
データの圧縮にかかる時間が問題にならない場合は、いくつかの異なるツールを一緒に使用して、圧縮サイズを最適化できます。
7Zip、winrar(Zip用)、bjwflateなどのさまざまなツールを使用して、データを数回圧縮します。
(これはZipファイルを繰り返し圧縮することを意味するのではなく、さまざまなツールを使用して多数の代替Zipファイルを作成することに注意してください)
次に、各アーカイブで deflopt を実行して、各アーカイブをもう少し減らします。
最後に、アーカイブのコレクションに対して zipmix を実行します。さまざまなZipツールの方がさまざまなファイルに適しているため、zipmixは各アーカイブから各ファイルの最適な圧縮バージョンを選択し、Zipツールのいずれかが個別に生成したものよりも小さい出力を生成します。
ただし、これがファイルに何らかの魔法をかけるとは限らないことに注意してください。 JPEGやMP3のように、特定のタイプのデータは単純にあまり圧縮されません。これらのファイルはすでに内部で圧縮されています。
これは、圧縮されるデータに完全に依存します。
テキストは非常によく圧縮され、バイナリ形式はあまりよくなく、データ(mp3、jpg、mpeg)はまったく圧縮されません。
以下は、ウィキペディアの優れた 圧縮比較表 です。
以前の答えは桁違いです!
私が個人的に経験した中で最高の圧縮アルゴリズムは paq8o10t です( zpaq ページと [〜#〜] pdf [〜#〜] を参照) 。
ヒント:files_or_foldersを圧縮するコマンドは次のようになります。
paq8o10t -5 archive files_or_folders
ソース: 増分ジャーナリングバックアップユーティリティとアーカイバ
ソースコードのミラーは GitHub にあります。
少し優れた圧縮アルゴリズムであり、 Hutter Prize の勝者はdecomp8です(賞のページのリンクを参照)。ただし、実際に使用できる圧縮プログラムはありません。
reallyの大きなファイルの場合 lrzip は単にcomicalの圧縮率を実現できます。
README.benchmarksの例:
Linux-2.6.31からlinux-2.6.36までのtarballとして、6つのカーネルツリーを1つのバージョンで分けてみましょう。これらは多くの冗長な情報を示しますが、数百メガバイト離れており、lrzipは圧縮に非常に適しています。簡単にするために、現時点ではこれが群を抜いて最高の汎用コンプレッサーであるため、7zのみが比較されます。
これらは、2.53GhzデュアルコアIntel Core2と4GB RAMでlrzip v0.5.1を使用して実行されたベンチマークです。 32ビットのユーザースペースで実行されていたため、2GBのアドレス指定しかできなかったことに注意してください。ただし、ベンチマークは-Uオプションを使用して実行され、ファイル全体を1つの大きな圧縮ウィンドウとして扱うことができました。
6つの連続したカーネルツリーのターボール。
Compression Size Percentage Compress Decompress
None 2373713920 100 [n/a] [n/a]
7z 344088002 14.5 17m26s 1m22s
lrzip 104874109 4.4 11m37s 56s
lrzip -l 223130711 9.4 05m21s 1m01s
lrzip -U 73356070 3.1 08m53s 43s
lrzip -Ul 158851141 6.7 04m31s 35s
lrzip -Uz 62614573 2.6 24m42s 25m30s
Squeezechart.com には、さまざまな圧縮率の比較が含まれています。ただし、Nifleの回答で述べられているように、バイナリ形式でこのような高い圧縮率が得られることはほとんどありません。
複数ファイル圧縮ベンチマークテストの概要 を確認するだけです 最良の圧縮リスト があり、完全な圧縮ベンチマークを構成しています。
このテストで(圧縮に基づく)最高のパフォーマンスを示したのは、PAQ8とWinRK(PWCM)です。 300Mb以上のテストセットを62Mb未満(サイズを80%削減)に圧縮できますが、テストを完了するには最低でも8時間5分かかります。ナンバーワンプログラム(PAQ8P)はほぼ12時間、ナンバー4プログラム(PAQAR)は17時間でテストを完了します。 WinRK、2番目に圧縮率の高いプログラム(79.7%)は、約8,5時間かかります。当然のことながら、言及されているすべてのプログラムは、圧縮にPAQ(のような)エンジンを使用しています。画像が埋め込まれたファイルがある場合(例:Word DOC files)はPAQ8を使用し、それらを認識して個別に圧縮し、大幅に圧縮を強化します。上記のすべてのプログラム(WinRKを除く)は無料です。
ほとんどの圧縮ツールには、より遅い圧縮/解凍時間とより多くのRAM使用率の妥協点)でより高い圧縮率を達成できるようにする設定があります。
7-Zipの場合、詳細については、組み込みヘルプで「アーカイブへの追加ダイアログボックス」を検索してください。
次のウルトラ設定で7Zipを試すことができます。
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on big_file.mysql.7z big_file.mysql
Nanozip FreeArcと一緒に圧縮率が最も高いようです。しかし、それはまだ最終バージョンではありません。 Nanozipが達成する優れた圧縮方法 があります。圧縮率が非常に高く、時間がかかりません。 複数ファイル圧縮ベンチマークテストの概要 を確認してください。ただし、FreeArcの方が高速です。
ここでの最善の策は試行錯誤のようです。各ファイルで使用可能なすべての圧縮技術を試し、あなたのウェブサイトに配置するために最適なものを選択してください。幸いなことに、コンピュータはこの種のことをかなり高速に実行し、飽きません。プロセスを自動化するための簡単なスクリプトを作成して、「比較的簡単」にすることができます。
奇跡を期待しないでください-700 mbから30 mbまではそれほど頻繁には起こりません。上記のログファイル-はい。 「あなたの平均的なファイル」-方法はありません。