web-dev-qa-db-ja.com

GhostScriptを高速化するためのヒントはありますか?

100ページありますPDFこれは約50MBです。以下のスクリプトを実行しています。1ページあたり約23秒かかります。PDF is紙の文書のスキャン。

gswin32.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 
            -dPDFSETTINGS=/screen -sOutputFile=out4.pdf 09.pdf

これをスピードアップするために私にできることはありますか? -dPDFSettings=/screenが非常に遅くなっている原因であると判断しましたが、それなしでは適切な圧縮が得られません...

PDATE: OK以下のように更新してみました。 -c 30000000 setvmthreshold部分を正しく使用していますか?

gswin32.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 
            -dPDFSETTINGS=/screen -dNumRenderingThreads=2 -sOutputFile=out7.pdf 
            -c 30000000 setvmthreshold -f 09.pdf
28
Abe Miessler

マルチコアシステムを使用している場合は、次の機能を備えた複数のCPUコアを使用するようにします。

-dNumRenderingThreads=<number of cpus>

最大30MBのRAMを使用します。

-c "30000000 setvmthreshold"

ガベージコレクタを無効にしてみてください。

-dNOGC

詳細については、 Improving Performance Ghoscriptドキュメントのセクション。

31
ismail

私は~300ページPDFコア上i7そして、次のオプションを追加すると、大幅なスピードアップが得られることがわかりました。

                            %-> comments to the right 
-dNumRenderingThreads=8     % increasing up to 64 didn't make much difference
-dBandHeight=100            % didn't matter much
-dBandBufferSpace=500000000 % (500MB)
-sBandListStorage=memory    % may or may not need to be set when gs is compiled
-dBufferSpace=1000000000    % (1GB)

-c 1000000000 setnvmthreshold -f物事は私にとってあまり違いはありませんでした、FWIW。

11
wpgalle3

コンピュータに搭載されているCPUと量RAM)はわかりません。

あなたの状況はこれです:

  • PDFとしてスキャンされたドキュメント。平均サイズは1ページあたり約500kBです。つまり、各ページは基本的に、スキャン解像度(少なくとも200 dpi、場合によっては600 dpi)を使用した画像です。
  • -dPDFSETTINGS=/screenを使用して、Ghostscriptで再蒸留しています。この設定は、ファイルサイズを小さくするためにかなりのことを行います。最も重要なものは次のとおりです。
    1. すべての(カラーまたはグレースケール)画像を72dpiに再サンプリングします
    2. すべての色をsRGBに変換します

これらの操作は両方とも、CPUおよび/またはRAM使用量の点で非常に「高価」になる可能性があります。

ところで、-dCompatibilityLevel=1.3の設定は必要ありません。すでに-dPDFSETTINGS=/screenによって暗黙的に設定されています。

これを試して:

gswin32.exe ^
 -o output.pdf ^
 -sDEVICE=pdfwrite ^
 -dPDFSETTINGS=/screen ^
 -dNumRenderingThreads=2 ^
 -dMaxPatternBitmap=1000000 ^
 -c "60000000 setvmthreshold" ^
 -f input.pdf

また、64ビットシステムを使用している場合は、最新の32ビットGhostscriptバージョン(9.00)をインストールしてみてください。 64ビットバージョンよりもパフォーマンスが優れています。

600dpiのスキャンされたページ画像を72dpiにダウンサンプリングするのに、通常23秒はかかりませんが、1秒未満です。

6
Kurt Pfeifle

私はここで完全に場違いかもしれませんが、Djvuファイル形式を試してみましたか?これは、一般的にスキャンされたドキュメントの魅力のように機能し(写真がたくさんある場合でも)、はるかに優れた圧縮ファイルを提供します。白黒の科学論文では、一般に2倍の可逆サイズの増加が得られます。

1