PostScript のレンダリングが PDF のレンダリングよりもずっと遅いのはなぜですか?

PostScript のレンダリングが PDF のレンダリングよりもずっと遅いのはなぜですか?

PostScript はチューリング完全な言語ですが、PDF と PostScript ファイルは非常に似ていると常に思っていました。

PostScript のレンダリングが PDF よりずっと遅い (Ubuntu の evince で試しました) のには理由があるのでしょうか、それともリーダーがあまり最適化されていないだけなのでしょうか?

答え1

現時点では私の仮定が正しいかどうかを確認する方法はありませんが、とにかくここに示します。

容疑者画面上で PostScript を直接レンダリングして表示することはevinceできません。おそらく、PDF に対してのみ可能です。そのため、PostScript ファイルに対しては、ユーザーの知らないうちに一時的な PDF ファイルに変換して、代わりにそれを表示するというトリックを使用する可能性があります。

gvUbuntu に(非常に古い) PostScript ビューアをインストールしてみます。

 sudo apt-get install gv

その後

 gv /path/to/PostScript.ps

より高速になるかどうかを確認してください。(gvレンダリングにはPostScriptも使用しますが、PDFに変換しません。) または、Ghostscriptを直接使用します。

 gs /path/to/PostScript.ps

しかし、一つ忘れてはいけないのは、なぜならPostScriptはプログラミング言語なので、バイト数で言えばかなり短いPostScriptファイルを設計して、インタープリタに何千回もの繰り返しのループを実行させることができます(例えば、計算する+ フラクタルをレンダリングする)を実行してから、ファイルの内容を画面に表示します。

PDF には「ループ」やそのような計算はありません...

答え2

しかし、最も重要なのは、PDF はページ単位で機能することです。各ページはほぼ自己完結型のエンティティであるため、任意のページにスキップすると、リーダーはすぐにそのページのレンダリングを開始できます。

一方、PostScript ドキュメントは単一の大きなプログラムであるため、PS ビューアはそれを必要なページまで実行してからでないと正しく表示できません。

また、PDFにはレンダリングするオブジェクトが含まれていますが、PostScriptはレンダラーにそのようなオブジェクトを描画するように指示するしたがって、PDF は、ある意味では PS に比べて事前に消化されているため、解釈が速くなります。

答え3

ポストスクリプトプログラミング言語

PDF文書フォーマット

PostScript はプログラミング言語であるため、ドキュメントの内容全体を段階的に計算する必要があります。PDF はベクター グラフィックス用の PostScript の限定されたサブセットをサポートしていますが、ドキュメント形式として特別に設計されているため、このような計算は必要ありません。

答え4

それは PostScript コードに依存します。PostScript で 3D レンダリング アルゴリズムを記述し、埋め込まれた AutoCAD ファイルを画像として使用することができます。PDF には事前にラスタライズされた画像が含まれているため、レンダリングに時間がかかります。場合によっては、PostScript の方がレンダリングがはるかに高速です。残念ながら、ほとんどの一般的な出版ソフトウェアは非常に非効率的な PostScript コードを出力します。しかし、PS -> PDF コンバーターは、高速レンダリングのために出力を最適化できます。

関連情報