「辞書サイズ」は圧縮にどのように影響しますか?


39

サイズを大きくすると圧縮率が向上し、その逆もあることを知っています。しかし、私がより良い決断を下せる方法はありますか?..非常に多くの選択肢があるので 7zip


これまでのところ、辞書サイズ≈ファイルサイズが最適な圧縮をもたらすことに気付きました。 ファイルサイズ
ここで、〜8mbファイルtest.aviは、8mb より大きいすべての辞書サイズに対して同じ圧縮率を持っています。その後、落下し始めます。


2
はい、それはファイル全体がメモリ内にあるためです。ただし、マルチギグファイルを扱う場合、これは不可能な場合があります。投資収益率は高くなるほど低下します。最後の1%が必要な場合、size = file size。注:より大きなデータセットがある場合、128MB以上の辞書サイズにより、ファイルの圧縮に要する時間が大幅に増加します。
サイバーナード

回答:


28

繰り返し可能な項目は辞書に保存され、コードが代替として割り当てられます。

これは簡単すぎです

aaaaaaaaaaaaaaaaaaaaaaaa  0001
bbbbbbbbbbbbbbbbbbbbbbbb  0002
alsdjl;asjdfkl;asdfjkljj  0003

行全体ではなく、コードをその場所に配置するだけです。辞書が大きいほど、処理できるコードが多くなります。通常、辞書がいっぱいになると、その場で新しい辞書が開始されます。新しいコードを開始すると空になり、検出されたパターンに新しいコードが割り当てられます。

一般的に、ポイントが大きいほど良い。辞書全体がメモリに保持されるため、辞書のサイズよりも多くのRAMが必要です。

辞書のサイズは、データの圧縮率、ファイル数、サイズ、および全体的なサイズに依存します。

一般に、32MBで十分ですが、多数のマルチギグファイルを圧縮する場合は、はるかに大きな数を使用できます。辞書が大きいと処理が遅くなることがよくありますが、結果としてファイルが小さくなります。


2
辞書のサイズに制限を設定したサイズですか、それとも実際のサイズですか?プログラム(特に7-zip)は通常、許可した辞書全体を埋める必要があるかどうかをインテリジェントに判断しますか?
スタン

1
はい、それは制限です。いっぱいになると、新しい辞書を開始するか、古いデータをインテリジェントにプッシュします。圧縮するデータが辞書のサイズより大きくない限り、データはいっぱいになります。
サイバーナード

@cybernard「それは満たされます」?明確にするために、ディクショナリのサイズは、埋められていないときの制限より小さくなっていますか?
ロニーベスト

1
@LonnieBestはい、辞書は完全に空から始まります。多くのビット/バイトごとに、新しい辞書エントリがいっぱいになるまで作成されます。
サイバーナード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.