[Opfc-developer 169] Re: update PDF filters

Back to archive index

Koji Otani sho****@bbr*****
2009年 2月 3日 (火) 13:35:10 JST


大谷です。

From: TORATANI Yasumasa <torat****@canon*****>
Subject: Re: [Opfc-developer 167] update PDF filters
Date: Tue, 03 Feb 2009 11:46:59 +0900
Message-ID: <20090****@canon*****>

toratani.yasumasa> 大谷さん、
toratani.yasumasa> 
toratani.yasumasa> 虎谷です。
toratani.yasumasa> 対応頂、有難う御座います。
toratani.yasumasa> 
toratani.yasumasa> On Mon, 02 Feb 2009 19:53:23 +0900 (JST)
toratani.yasumasa> Koji Otani <sho****@bbr*****> wrote:
toratani.yasumasa> 
toratani.yasumasa> (中略)
toratani.yasumasa> 
toratani.yasumasa> >  ・popplerに対するcolor managementパッチを最新版に変更
toratani.yasumasa> >     CMYKプロファイルの場合の不具合修正
toratani.yasumasa> >     Fill Patternが、場合によっては非常に遅かったのを高速化
toratani.yasumasa> 
toratani.yasumasa> 既にパフォーマンスを測定しているようでしたら、結果をアップして
toratani.yasumasa> もらえますでしょうか?
toratani.yasumasa> 

曖昧だったので、もう少し説明します。
この高速化は、ColorManagementを入れたことによる速度低下を補うものです。
Color Managementと関係ない部分の高速化ではありません。
Color Managementをいれることにより、あるPDFが非常に遅くなったので、そ
れの高速化をしました。
テストに使用したのは、PDF Specification 1.7の831ページです。
popplerのdemoプログラムでの計測です。
ColorManagementを入れる前: 約0.2秒
ColorManagementを入れた後: 約126秒
高速化後         : 約0.2秒

おそくなった原因は、popplerのFill Patternのアルゴリズムにあります。
popplerでは、Fill Patternを行う場合、Patternが繰り返されると、その都度、
パターンのPDFを解釈実行します。
もし、パターン内にICCBased Colorの指定があると、その度に「Color Profile
の読み込み解釈実行、変換データの作成」という、時間のかかる処理を行って
しまいます。例えば、上記のPDFだと272回もこれを行ってしまいます。
そのため、非常に遅くなってしまいました。
高速化は、変換データをキャッシュするようにしたものです。




Opfc-developer メーリングリストの案内
Back to archive index