web-dev-qa-db-ja.com

2つの類似したファイルで非常に異なる圧縮率

WinRarを使用して、Json構造化テキストを含むほぼ同じサイズ(80Mb)の2つのテキストファイルを圧縮しています。

テキストは同じプログラムによって生成され、それを調べると、2つのファイルの構造に明らかな違いはないようです(Jsonフィールドは同じで、値のみが異なります)。

ただし、それらをZipファイルに圧縮する場合、圧縮率に1:10の不一致があります。つまり、1つのファイルが約に圧縮されます。 2Mbと他の1つを約に。 20Mb。

このような大きなミスマッチの理由は何でしょうか?

1
Constance82

結果を複製しました。

ファイルTicker_May.txtのデータは、デフォルトの圧縮レベル [〜#〜] deflate [〜#〜] には適していないようです。これは、速度を重視しています。最高の圧縮より。

圧縮は、データ内の繰り返しパターンを検出することによって機能するため、データのセグメントを調べるために使用されるバッファーのサイズなどの要因に依存します。ほとんどの圧縮製品は、パラメータを使用して圧縮の品質を決定します。通常、より良い圧縮にはより多くのCPUが必要です。

「Ultra」の圧縮レベルを使用して圧縮すると問題が解決したため、Ticker_May.txtのZipアーカイブのサイズはzip形式のTicker_April.txtのサイズよりも29%小さくなりました。

Zipが「Ultra」圧縮レベルで実行された場合でも、7Zipによるファイルの圧縮はZipの約2倍であったことに注意してください。 7Zipは、Zipで使用されている従来の圧縮アルゴリズム/形式よりもはるかに優れた圧縮アルゴリズム/形式を使用しています。

1
harrymc