web-dev-qa-db-ja.com

最高の標準Zip圧縮を実現するにはどうすればよいですか?

圧縮にどれくらい時間がかかるかは気にせず、達成したいのは次の2つだけです。

  • 可能な限り最高の圧縮比
  • WindowsやWinZipなどの標準リーダーとの互換性

したがって、7-Zipなどの提案は、(非常に優れた.7z形式を使用するのではなく)7-Zipが標準のZip圧縮で少し優れている場合を除いて、あまり役に立ちません。

理想的には私が探しています:

  • ソフトウェアの推奨事項
  • 最高の圧縮を可能にするソフトウェアの特定の設定
  • 無料のもの

圧縮にかかる時間は問題ではありません。

最後に、「Wordサイズ」や「Dictionaryサイズ」など、いくつかのファイルは異なる設定で圧縮した方がよい場合があります-ファイルを分析して最も適切な圧縮率を選択できるツール、またはWinZip、7-Zipなどはすでにそれをしますか?

20
Josh Comley

Windows XPに組み込まれているZipフォルダー機能との互換性が必要な場合は、Deflate圧縮を使用できません。最近のバージョンのwinZipとPowerArchiverで利用できる高度な圧縮方法(LZMA、PPMD、WavPack、Bzip2など)をはるかに下回って、Deflate64を使用することさえできないと思います。 PowerArchiverは、少なくともデフォルトでそれらのファイルに.zipx拡張子を使用します-WinZipはまだそれを行っていないと思います。

7-Zipが作成できる最小のZipファイルは、次のコマンドラインで実行できます。

7za a -mm=Deflate -mfb=258 -mpass=15 -r C:\Path\To\Archive.Zip C:\Path\To\Files\*

特に注意:7-Zipのワイルドカードパーサーは、システムの他のほとんどのパーサーと同じではありません。 *.*は、拡張子を持つすべてのファイルを意味します。 *allファイルを意味します。

この方法で.Zipファイルを作成する(そしておそらく、より小さな「標準」.Zipファイルを作成しようとする他のツールを使用する)には、本当に非常に時間がかかります。 7-ZipまたはWinRarを使用して自己解凍アーカイブを作成することにより、時間とスペースを大幅に節約することができます。

22
afrazier

私が知っている最高のdeflate(標準のZipで使用される圧縮形式)コンプレッサーは次のとおりです。

Zopfliを使用したデータ圧縮元の からアーカイブ)から、ファイルの圧縮ファイルサイズ比較をデフレートします。

╔══════════════╦═══════════╦═════════╦═════════╦═════════╦═════════╗
║              ║Corpus size║gzip ­-9  ║7-­Zip    ║kzip     ║Zopfli   ║
╠══════════════╬═══════════╬═════════╬═════════╬═════════╬═════════╣
║Alexa-top-10k ║  693108837║128498665║125599259║125163521║123755118║
║Calgary       ║    3141622║  1017624║   980674║   978993║   974579║
║Canterbury    ║    2818976║   730732║   675163║   674321║   669933║
║enwik8        ║  100000000║ 36445248║ 35102976║ 35025767║ 34995756║
╚══════════════╩═══════════╩═════════╩═════════╩═════════╩═════════╝

ランダムなPNGでも、Zopfliは pngoutより0.5%優れている でした。 Zopfliはそれらすべての中で最小になります。

8
Anon

Windowsを使用している場合:Zip形式を引き続き使用する場合は、 こちら にあるKen Silvermanの無料のKZIPコマンドラインユーティリティを使用することをお勧めします。圧縮する必要があるすべてのファイルを含むフォルダー内にコピーし、CMDを使用してそのフォルダーに移動して、次のコマンドを実行します。

kzip /r <filename of Zip file> *.*

Roaldが示唆するように、kzip.exeは、システムのPATH変数に常駐して、アーカイブ/ Zipファイルに含まれないようにします。

これまでのところ、KZIPで作成されたZipファイルは、他のZip圧縮プログラムで作成されたファイルよりも約10〜20%小さいことがわかりました。また、他のアーカイブソフトウェア(Winzip、WinRAR、7-Zipなど)やWindowsでも完全に開くことができます。

5
Isxek

.ZipファイルタイプとDeflate64圧縮方法を使用して、フォルダー内のすべてのフォルダーを個々のZipファイルに圧縮する非常にシンプルなスクリプト。

@echo off
for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.Zip" "%%X\" -tzip -mx9 -mm=Deflate64
1
SuperMar1o