これまでのコメントでは、圧縮する必要があるファイル形式を指定しておらず、明確な回答も提示できませんでした。
PDF、djvuでいっぱいの1TBハードドライブがあり、残りはできるだけ小さいサイズに圧縮する必要がある画像であり、速度には気にしません。
kgbを試しましたが、CPUを完全に活用できませんでした。
私はtar.lzr、tar.lzma、tar.7zを試しました。 tar.lzrは最高ですが、期待していたほど多くの機能を提供しません。
私もnanozipについて知っていますが、私が見たベンチマークの中で最も高い割合を持っているにもかかわらず、多くの人がそれに関する問題を報告しているのを見ました。これまでに経験した人はいますか?
答え1
7zとlzmaは同じ圧縮アルゴリズムですが、コンテナは異なります。 7z
安定したアーカイブモードを有効にすると同じことができtar.7z
、個々のファイルへのランダムアクセスを提供することも悪くありません。 (それでもまだ迷惑ですが。)
pdfは内部的にgzipを使用しているため、圧縮率が低くなります。ほとんどの画像フォーマットは同じです(エントロピーエンコーダの選択はさまざまですが、IIRC JPEGのエントロピーエンコーダはより簡単です)。
理論的には、このアイデアの実装について知りません。単純なgzipやpdf、png、jpeg、その他のさまざまな圧縮ファイル形式のその他のエントロピーエンコーディングを元に戻すアーカイバを持つことができます。その後、LZMAのような良いものとしてそのストリームを圧縮します。抽出時にLZMAストリームからデータを抽出し、必要な部分に対して内部的にPDFを再圧縮できます。出力はpdf/jpg/何でも同じですが、ファイルのチェックサム/ハッシュが異なる場合があります。 (したがって、最終レンダリングされたピクセル側ではロスはありませんが、ファイルバイト側では損失はありません。)
PNGとjpegオプティマイザは、個々のファイルに対してこのアイデアをある程度実装します。内部圧縮は、デフォルトではなくgzip -9と同等の機能を使用して再実行されます。
最良の方法は、さまざまなコンプレッサーを使用して約1GBのサンプルを圧縮し、どちらが最も適切かを確認することです。 1GBはコンピュータに適したサイズなので、代表的に使用する必要があります。辞書サイズ。