(57)【要約】【課題】画像形成に係るＰＤＬ解析処理及びレンダリング処理の高速化のために、従来技術では、複数の異なる処理を、複数の異なる処理装置を用いて実行することで、画像形成に係る処理の高速化を実現している。しかし、画像形成処理に係るＰＤＬデータ解析処理の各々の処理ステップにおいて、その実行中の処理が次のステップの処理速度を低下してしまうか否かに関係なく処理を続行してしまい、結果として処理速度が低下してしまう問題があった。【解決手段】画像形成に係る処理中に、レンダリング処理が高速になるように前もってＰＤＬデータ解析中に処理の最適化を行う。そのために、画像形成に係る処理中にすでに生成された中間データに対する解析中のＰＤＬデータに基づく中間データの追加が、それらの特徴に依存してレンダリング処理の速度を著しく低下させるか否かを判定する。【選択図】 図６
2010264731.tif 000002
【特許請求の範囲】
【請求項１】
描画命令の解析処理と画像形成処理とを行う複数の処理部を有する画像形成装置であって、
前記描画命令に含まれる処理のうち、予め定義された高速化が可能な処理を判定する高速化処理判定手段と、
前記高速化処理判定手段により、高速化が可能と判定された処理に対して、処理の種類それぞれに定義された高速化のための処理を適用した場合と適用しない場合の処理コストを比較し、高速化の処理を適用するか否かを判定する処理コスト判定手段と、
前記処理コスト判定手段による判定結果に基づいて、前記高速化が可能と判定された処理を、前記複数の処理部が処理するための新たな処理単位を生成するか否かを判定する処理単位生成判定手段と、
前記処理単位生成判定手段の判定結果に基づいて、前記高速化が可能と判定された処理を、新たな処理単位にて生成する生成手段と、
前記処理単位生成手段にて生成した新たな処理単位の処理を前記複数の処理部により実行させる高速化処理実行手段と
を有し、
前記高速化処理実行手段は、前記新たな処理単位の少なくとも一部を、前記画像形成処理を行う処理部とは別の処理部にて実行させる
ことを特徴とする画像形成装置。
【請求項２】
前記処理コスト判定手段は、
前記高速化処理判定手段により、高速化が可能と判定された処理に対して、処理の種類それぞれに定義された算出式を用いて高速化して中間データを生成するために必要とする高速化処理コストを求める高速化処理コスト決定手段と、
前記高速化処理判定手段により、高速化が可能と判定された処理に対して、処理の種類それぞれに定義された算出式を用いて高速化を行わず前記中間データを生成するために必要とする中間データ生成コストを求める中間データ生成コスト決定手段と、
前記複数の処理部それぞれにおける処理の占有率を取得する占有率取得手段と、
を有し、
前記処理単位生成判定手段は、前記高速化処理コストが中間データ生成コストより大きく、かつ、前記占有率が予め定義した閾値よりも小さい場合に前記新たな処理単位にて処理を生成することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記高速化処理判定手段は、前記描画命令に含まれる処理のうち、圧縮データにかかる処理、または、シェーディング描画命令処理、または、タイル描画命令処理、または、パス描画命令処理、または、色変換処理、または、フォント描画命令処理、または、ビットマップ描画命令処理、または、エッジ描画命令処理を高速化が可能である処理と判定することを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記高速化処理コスト決定手段は、前記高速化処理判定手段により、高速化が可能と判定された処理の処理特性と前記処理ごとの処理特性に応じた処理の負荷パラメータとから求めることを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記描画命令に含まれる処理において、それぞれの処理が有する前記処理特性は、
前記圧縮データにかかる処理の場合は、圧縮データのサイズ、及び、圧縮方式であり、
前記シェーディング描画命令処理の場合は、シェーディング命令の種類、及び、描画するサイズであり、
前記タイル描画命令処理の場合は、当該タイルとして描画するセルのサイズ、及び、前記タイルを描画するサイズであり、
前記パス描画命令処理の場合は、パスのパス点列数であり、
前記色変換処理の場合は、色変換数、及び、色変換処理の種類であり、
前記フォント描画命令処理の場合は、当該フォントの文字数、フォントの種類数、及び、文字サイズであり、
前記ビットマップ描画命令処理の場合は、当該ビットマップのサイズ、及び、色チャネル数であり、
前記エッジ描画命令処理の場合は、当該エッジの描画すべきサイズ、及び、色チャネル数である
ことを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記中間データ生成コスト決定手段は、すでに生成した前記中間データのサイズが予め定められた閾値以上であれば、前記処理部が設定可能なコストの最大値に設定し、前記中間データのサイズが前記閾値より小さければ、前記処理部が設定可能なコストの最小値を設定することを特徴とする請求項１乃至５のいずれか一項に記載の画像形成装置。
【請求項７】
前記中間データ生成コスト決定手段は、前記描画命令に含まれる処理数と、予め定義した重み付けパラメータとからコストを決定することを特徴とする請求項１乃至６のいずれか一項に記載の画像形成装置。
【請求項８】
前記描画命令に含まれる処理それぞれに対応する中間データ生成のためのコストを定義し、保持するコスト情報保持手段を更に有し、
前記中間データ生成コスト決定手段は、当該処理と同一の種類の処理ですでに処理が済んだ処理数と、予め定義した重み付けパラメータと、前記コスト情報保持手段にて保持するコストの積から中間データ生成コストを決定することを特徴とする請求項１乃至５のいずれか一項に記載の画像形成装置。
【請求項９】
前記処理単位生成判定手段は、前記占有率の値に基づいて、前記複数の処理部の中から前記処理を行う処理部を決定することを特徴とする請求項１乃至８のいずれか一項に記載の画像形成装置。
【請求項１０】
前記新たな処理単位ごとに、前記複数の処理部に対して、前記解析処理と前記画像形成処理との間の負荷分散、または、前記解析処理の最適化を行う手段を更に有することを特徴とする請求項１乃至８のいずれか一項に記載の画像形成装置。
【請求項１１】
描画命令の解析処理と画像形成処理とを行う複数の処理部を有する画像形成装置の制御方法であって、
前記画像形成装置の高速化処理判定手段が、前記描画命令に含まれる処理のうち、予め定義された高速化が可能な処理を判定する高速化処理判定工程と、
前記画像形成装置の処理コスト判定手段が、前記高速化処理判定工程により、高速化が可能と判定された処理に対して、処理の種類それぞれに定義された高速化のための処理を適用した場合と適用しない場合の処理コストを比較し、高速化の処理を適用するか否かを判定する処理コスト判定工程と、
前記画像形成装置の処理単位生成判定手段が、前記処理コスト判定工程による判定結果に基づいて、前記高速化が可能と判定された処理を、前記複数の処理部が処理するための新たな処理単位を生成するか否かを判定する処理単位生成判定工程と、
前記画像形成装置の生成手段が、前記処理単位生成判定工程の判定結果に基づいて、前記高速化が可能と判定された処理を、新たな処理単位にて生成する生成工程と、
前記画像形成装置の高速化処理実行手段が、前記処理単位生成工程にて生成した新たな処理単位の処理を前記複数の処理部により実行させる高速化処理実行工程と
を有し、
前記高速化処理実行工程は、前記新たな処理単位の少なくとも一部を、前記画像形成処理を行う処理部とは別の処理部にて実行させる
ことを特徴とする制御方法。
【請求項１２】
コンピュータを、
描画命令に含まれる処理のうち、予め定義された高速化が可能な処理を判定する高速化処理判定手段と、
前記高速化処理判定手段により、高速化が可能と判定された処理に対して、  処理の種類それぞれに定義された高速化のための処理を適用した場合と適用しない場合の処理コストを比較し、高速化の処理を適用するか否かを判定する処理コスト判定手段と、
前記処理コスト判定手段による判定結果に基づいて、前記高速化が可能と判定された処理を、前記複数の処理部が処理するための新たな処理単位を生成するか否かを判定する処理単位生成判定手段と、
前記処理単位生成判定手段の判定結果に基づいて、前記高速化が可能と判定された処理を、新たな処理単位にて生成する生成手段と、
前記処理単位生成手段にて生成した新たな処理単位の処理を前記複数の処理部により実行させる高速化処理実行手段と
をして機能させ、
前記高速化処理実行手段は、前記新たな処理単位の少なくとも一部を、前記画像形成処理を行う処理部とは別の処理部にて実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許は、画像形成のためのＰＤＬ処理やレンダリング処理と呼ばれる画像形成装置、制御方法、及びプログラム処理に関する。特に、複数の処理装置を持つプリンタや複合機に代表される画像形成装置において、必要なＰＤＬ処理、中間データ生成処理、及びレンダリング処理の高速化に関する。
【背景技術】
【０００２】
従来、画像形成装置内で行われるレンダリングに関する処理は、複数の処理装置が各々画像形成にかかる処理を分担することで、画像形成を可能たらしめている。
【０００３】
また、従来から画像形成処理に係る高速化手法として、異なるデバイス間における処理の分担による高速化が行われてきた。例えば非特許文献２では、情報処理装置（ＰＣ）と、画像形成装置（複合機）との間の処理にかかる高速化手法が示されている。この技術による画像形成処理の特徴は、情報処理装置と画像形成装置とで、画像形成に係る処理の負荷分散を行っている点にある。すなわち、ページレイアウト処理や、グラフィック処理、画像処理などの処理を情報処理装置と画像形成装置との間で処理コストの最適化を行い、情報処理装置からの印刷処理開始から印刷エンジンによって行われる印刷までにかかる時間を短縮している。
【０００４】
また、上記のような画像形成処理を高速化する別の手法として、画像形成装置内の処理装置を複数にすることで高速化が行われてきた。例えば特許文献１では、二つのＣＰＵとレンダリングを行う「レンダリングエンジン」の三つの処理装置で処理を分担し、大量のデータに対し並行処理を行うことで高速に処理する手法が示されている。この技術による画像形成処理は、異なる処理が可能な処理装置を複数接続し、画像形成に係る処理を分割して、各々の処理装置内で画像形成にかかる処理を行うことで高速に画像生成を行っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−３０７９２４号公報
【非特許文献】
【０００６】
【非特許文献１】キヤノン株式会社、”Ｃａｎｏｎ  ｔｅｃｈｎｏｌｏｇｙ  コントローラアーキテクチャ”、［online］、平成２１年、キヤノン株式会社、［平成２１年３月２６日検索］、  インターネット＜ＵＲＬ：http://web.canon.jp/technology/canon_tech/explanation/ir_controller.html＞
【非特許文献２】キヤノン株式会社、”Ｃａｎｏｎ  ｔｅｃｈｎｏｌｏｇｙ  ＵＦＲ／ＬＩＰＳ  Ｖ”、［online］、平成２１年、キヤノン株式会社、［平成２１年３月２６日検索］、  インターネット  、＜ＵＲＬ：http://web.canon.jp/technology/canon_tech/explanation/hspeed_processing.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、従来技術では、複数の異なる処理を、複数の異なる処理装置を用いて実行することで、画像形成に係る処理の高速化を実現している。
【０００８】
しかし、従来手法では、画像形成処理に係る、ＰＤＬ解析処理（すなわち、ＰＤＬインタプリタ）は、ＰＤＬデータに基づきＰＤＬデータ解析し中間データを生成する。そして、レンダリング処理（すなわち、レンダラー）は、生成した中間データに基づき、レンダリング処理を行い、ラスタイメージデータを生成する。上記、各々の処理ステップにおいて、その実行中の処理が次のステップの処理速度を低下せしめるか否かに関係なく処理を続行した結果、処理速度を低下せしめるという問題があった。より具体的には、従来技術に基づくレンダリング処理は、大量に重なった描画命令や、大量の奥行き情報を持つ描画命令を持つ中間データを受け取ると、その中間データが持つ奥行き情報や重なり情報の煩雑さによって処理速度が著しく低下する。従来技術では、このレンダラーの処理速度を著しく低下せしめるかどうかに関係なくＰＤＬ解析処理を行う。つまり、ＰＤＬインタプリタはたとえすでに生成された中間データに、解析中のＰＤＬデータの解析に因る中間データの追加がレンダリング処理の速度を著しく低下させるとしても、ＰＤＬ解析処理を続行する。
【０００９】
よって、従来技術には、画像形成に係る処理中に、すでに生成された中間データに対する解析中のＰＤＬデータに基づく中間データ追加が、その両者の特徴に依存してレンダリング処理の速度を著しく低下せしめるか否かを判断していない。上記判断をしていないことによって、画像形成に係る処理中に、レンダリング処理が高速になるように前もってＰＤＬ解析中に最適化処理を行うことができないという問題があった。
【課題を解決するための手段】
【００１０】
本発明は、上記の従来技術の課題を鑑み、解決するものである。すなわち、本発明は以下のような特徴を持つ。描画命令の解析処理と画像形成処理とを行う複数の処理部を有する画像形成装置であって、前記描画命令に含まれる処理のうち、予め定義された高速化が可能な処理を判定する高速化処理判定手段と、前記高速化処理判定手段により、高速化が可能と判定された処理に対して、  処理の種類それぞれに定義された高速化のための処理を適用した場合と適用しない場合の処理コストとを比較し、高速化の処理を適用するか否かを判定する処理コスト判定手段と、前記処理コスト判定手段による判定結果に基づいて、前記高速化が可能と判定された処理を、前記複数の処理部が処理するための新たな処理単位を生成するか否かを判定する処理単位生成判定手段と、前記処理単位生成判定手段の判定結果に基づいて、前記高速化が可能と判定された処理を、新たな処理単位にて生成する生成手段と、前記処理単位生成手段にて生成した新たな処理単位の処理を前記複数の処理部により実行させる高速化処理実行手段とを有し、前記高速化処理実行手段は、前記新たな処理単位の少なくとも一部を、前記画像形成処理を行う処理部とは別の処理部にて実行させることを特徴とする。
【発明の効果】
【００１１】
本発明では、予めＰＤＬデータ解析中において、レンダリング処理の最適化を行うことにより、画像形成に係る処理中にレンダリング処理が高速になる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態における情報処理装置と画像形成装置とを説明する図。
【図２】本実施形態におけるＰＤＬデータ、及び、中間データを説明する図。
【図３】本実施形態における画像形成に係る処理の流れを説明する図。
【図４】本実施形態における画像形成装置を説明する図。
【図５】本実施形態におけるＰＤＬ解析処理からレンダリング処理までの流れを説明する図。
【図６】本実施形態におけるＰＤＬインタプリタによる高速化処理の流れを説明する図。
【図７】本実施形態におけるソフトウェアモジュールの関係を示す図。
【図８】線形、及び放射シェーディングを説明するための図。
【図９】パターンを説明するための図。
【図１０】文字描画命令の例を説明するための図。
【図１１】ＰＤＬデータによるオブジェクト描画を説明するための図。
【図１２】セルをタイル状に描画することを説明するための図。
【図１３】本実施形態における中間データ生成コストを求める処理のフローチャートを示す図。
【図１４】本実施形態における描画命令それぞれの中間データ生成コストを示す図。
【図１５】本実施形態に係る各処理の処理時間の経過を説明するための図。
【発明を実施するための形態】
【００１３】
＜第一の実施形態＞
以下、本発明を実施するための形態について図面を用いて説明する。なお、本明細書では、ＰＤＬインタプリタがＰＤＬデータを得てＰＤＬデータを解析する処理をＰＤＬ解析処理、もしくはＰＤＬ処理と呼ぶ。また、本明細書では、中間データ生成部が上記ＰＤＬデータの解析に基づき中間データを生成し、レンダラーがこの中間データからラスタイメージデータを得る処理をレンダリング処理と呼ぶ。
【００１４】
［画像形成に係る処理］
図１は本発明の第一の実施形態に係る画像形成装置１２と画像形成装置１２に接続された情報処理装置１１の構成を示すブロック図である。情報処理装置１１は、ＰＣやパーソナルコンピュータ、ワークステーションなどが該当する。情報処理装置１１は同装置上でＰＤＬデータ１００を生成することが出来る。さらに情報処理装置１１はネットワークやＵＳＢに代表されるインタフェースを経由してＰＤＬデータ１００を含むデータを情報処理装置１１の外部の装置に転送することが出来る。画像形成装置１２は、プリンタや複合機などと呼ばれる画像形成装置１２であり、ＰＤＬデータ１００に代表されるデータをもとに、紙に代表されるような媒体に可視像を形成することが出来る。
【００１５】
図２において、図２（ａ）はＰＤＬデータ１００、図２（ｂ）は印刷データ１０２を説明する図である。ＰＤＬデータ１００は描画データ１００−１と印刷制御データ１００−２を含む。描画データ１００−１は画像形成装置が形成する０以上の可視情報を持つ。印刷制御データ１００−２は紙サイズや面付け処理、色変換処理などに係る情報を持つ。
【００１６】
次に、画像形成装置１２の上述した紙などの媒体に可視像を形成するための、画像形成に係る処理を説明する。図３は、画像形成装置１２が行う画像形成に係る処理のフロー図である。先ず、ｓ１０でネットワーク装置１２−１が情報処理装置１１からＰＤＬデータを得る。ネットワーク装置１２−１はＩＥＥＥ８０２．３に代表される手法で他装置と通信を行うことで、上記ＰＤＬデータ含むデータを得ることが出来る。また、このｓ１０の処理はＵＳＢ装置１２−２を用いて他装置と通信を行い、上記ＰＤＬデータ含むデータを得ても本発明を実施できる。このＵＳＢ装置は、ＵＳＢ２．０に代表される手法で他装置と通信可能である。このほかにも画像形成装置１２をＩＥＥＥ１３９４ａやＲＳ−２３２Ｃまたは、ＩＥＥＥ１２８４に準拠したインタフェースを介して他装置と接続することで、上記ＰＤＬデータ含むデータを得ても本発明は実施可能である。上述したような手法で、画像形成装置１２が情報処理装置１１に代表される他装置から得たＰＤＬデータは、次に画像形成装置１２内の画像形成処理装置１２−３が受け取る（ｓ１１）。画像形成処理装置１２−３は、このＰＤＬデータに基づいて印刷データを生成する。
【００１７】
次に、ｓ１１で画像形成処理装置１２−３がＰＤＬデータ１００を得る。画像形成処理装置１２−３は得たＰＤＬデータに基づいてｓ１２で印刷データ１０２を生成する。次にｓ１４で、印刷エンジン１２−４がこの印刷データ１０２を得る。印刷データ１０２は図２（ｂ）が示すように、ラスタイメージデータと、印刷エンジン制御データを持つ。印刷エンジンは得た印刷データ１０２をもとに画像形成を行い、紙などの媒体上に可視像を形成する。
【００１８】
［画像形成処理装置内の処理］
次に画像形成の中でも、上述した画像形成処理装置１２−３内で行われる図３のｓ１２で示した処理についてより詳細に説明する。図４は画像形成装置１２が有する画像形成処理装置１２−３の構成の例を図示している。画像形成処理装置１２−３は、ＣＰＵに代表される汎用プロセッサであるレンダラー装置１２−３−１を備える。レンダラー装置１２−３−１は中間データを得て、ラスタイメージデータを生成する。処理装置１２−３−２及び１２−３−３は、ＰＤＬ解析処理や、中間データの生成処理を行う。処理部としての機能を有し、ＣＰＵなどがこれに該当する。なお、本実施形態では、画像形成処理装置１２−３は処理装置１２−３−２、１２−３−３を二つ有するが、これに限定するわけではなく、二つ以上の複数個であれば本発明を実施することができる。また、本実施形態では画像形成処理装置１２−３はレンダラー装置１２−３−１を一つのみ有するが、これに限定するわけではなく、１つ以上であれば本発明を実施できる。また、本実施形態ではレンダラー装置１２−３−１が中間データを得てラスタイメージデータを生成するが、処理装置（１２−３−２、または１２−３−３）がどのように分担等をして処理を行っても、本発明を実施できる。また、レンダラー装置１２−３−１は、中間データを得てラスターデータを生成するＡＳＩＣやＤＳＰ、ＤＲＰなどＣＰＵ以外の情報処理装置を用いても本発明を実施できる。
【００１９】
メモリコントローラ１２−３−５は、メインメモリ１２−３−６及びＲＯＭ１２−３−９へのインタフェースである。即ち、メモリコントローラ１２−３−５はメインメモリ１２−３−６へのデータの読み込み及び書き込みを可能たらしめる。また、メモリコントローラ１２−３−５はＲＯＭ１２−３−９へのデータの読み込みを可能たらしめる。ＩＯコントローラ１２−３−８は画像形成処理装置（１２−３）外の装置とのインタフェースである。即ち、ＩＯコントローラ１２−３−８は画像形成処理装置（１２−３）外の装置とのデータの交換を可能たらしめる。ローカルバス１２−３−７はレンダラー装置１２−３−１、処理装置（１２−３−２及び１２−３−３）、メモリコントローラ１２−３−５、ＩＯコントローラ１２−３−８を接続する。即ち、ローカルバス１２−３−７はこれら接続した装置間でデータの交換を可能たらしめる。以上、本実施形態では説明した構成にて画像形成処理装置１２−３は、ＰＤＬデータ１００に基づいて印刷データを生成する。
【００２０】
次にこの印刷データ生成に係る処理ステップを、図５を用いながら説明する。先ず、画像生成処理装置１２−３の処理装置（１２−３−２、または１２−３−３）はＰＤＬデータ１００の解析処理を行う（ｓ１２０）。次いで処理装置（１２−３−２、または１２−３−３）は上記ＰＤＬデータ１００の解析から中間データを生成する（ｓ１２１）。ついで、この中間データをもとにレンダラー装置１２−３−１がラスタイメージデータ１３−５を生成する。
【００２１】
なお、このＰＤＬデータ１００は複数の種類がある。例えばＡｄｏｂｅ  Ｓｙｓｔｅｍｓ、ＩｎｃｏｒｐｏｒａｔｅｄのＡｄｏｂｅ  ＰＤＦやＰｏｓｔＳｃｒｉｐｔ、Ｃａｎｏｎ  Ｉｎｃ．のＬＩＰＳなどが知られている。処理装置（１２−３−２、または１２−３−３）上で動作するＰＤＬインタプリタ１３−１及び中間データ生成部１３−２は、これら異なるデータフォーマットが存在するＰＤＬデータ１００から、レンダラーが解析可能な共通のデータ形式である中間データ１０２を生成する。この中間データ１０２に基づき、レンダラー１３−３はレンダラー装置１２−３−１を使いラスターデータ１３−５を生成している。
【００２２】
図７に上記の流れの概要を示した本発明の実施形態におけるソフトウェアモジュールの関係を示す。また、
［ＰＤＬデータ解析処理における高速化処理］
次に、図５にて示した上記ＰＤＬデータの解析の処理（ｓ１２０）について、図６を用いながら説明する。まず、ＰＤＬインタプリタは入力可能なＰＤＬデータ１００の少なくとも一部があるか否かを判定する（ｓ１２０−１）。もしＰＤＬデータ１００がなければ、ＰＤＬ処理を終了する。次にＰＤＬインタプリタは、もしＰＤＬデータ１００の少なくとも一部があれば、ＰＤＬデータを入力する（ｓ１２０−２）。次にＰＤＬインタプリタは、入力したＰＤＬデータは、ＰＤＬインタプリタが高速化処理可能な処理か否かを判定する（ｓ１２０−３）。これにより高速化処理判定を実施する。本実施形態において、高速化処理が可能な処理は以下のものがある。
・圧縮データにかかる処理
・シェーディング描画命令処理
・タイル描画命令処理
・パス描画命令処理
・色変換処理
・フォント描画命令処理
・ビットマップ描画命令処理
・エッジ描画命令処理
しかし、これらの処理に限定するわけではなく、本発明が適用可能な処理は、その他ＰＤＬインタプリタが実行する処理などにも適用可能である。なお、本実施形態において、便宜上、各種処理に対し、高速化処理を施し、中間データを生成するためのコストを高速化処理コストと称し、高速化処理を施さず、中間データを生成するコストを中間データ生成コストと称する。また、本実施形態では、高速化処理を施した場合と施さない場合とのコストを比較し、その差異により、適用を判定する。この処理コスト判定手段について、以下詳細に説明する。
【００２３】
もし、ＰＤＬデータが高速化可能な命令であったならば、ｓ１２０−４に進む。もしＰＤＬが高速化不可能な命令であったならば、ｓ１２０−１１に進む。次に、ＰＤＬインタプリタは、注目ＰＤＬデータ群の高速化処理計算コストを計算する（ｓ１２０−４）。各処理のより詳細なコスト計算方法は、次の項にて述べる。
【００２４】
次に、ＰＤＬインタプリタは、注目ＰＤＬデータ群の中間データ生成コストを求める（ｓ１２０−５）。次に、ＰＤＬインタプリタは上記高速化処理コストと中間データ生成コストとを比較する（ｓ１２０−６）。この比較の結果、中間データ生成コストが大きければ、ｓ１２０−７に進む。逆に中間データ生成コストが高速化処理コスト以下であればｓ１２０−１１に進む。なお、高速化処理コストが大きい場合は、当該注目ＰＤＬデータの処理を、高速化処理を適用せず継続した方が、適していることを示しており、中間データ生成コストが大きい場合は、当該注目ＰＤＬデータの処理を高速化処理を適用して行う方が適していることを示している。
【００２５】
次に、ＰＤＬインタプリタ１３−１は各処理装置（１２−３−２及び１２−３−３）の空き状況（占有率）を問い合わせる（ｓ１２０−７）。次に、ＰＤＬインタプリタは上記取得した各処理装置の空き状況と予め定義している閾値との比較を行う（ｓ１２０−８）。もし、空き状況が、上記閾値を超えていればｓ１２０−９に進む。もし上記閾値を越えていなければｓ１２０−１１に進む。次にＰＤＬインタプリタは高速化処理のためのスレッドを生成する（ｓ１２０−９）。次にＰＤＬインタプリタは生成したスレッドの中で高速化するために注目したＰＤＬデータに対して高速化処理を行う（ｓ１２０−１０）。その後、ＰＤＬインタプリタは中間データ生成部にＰＤＬインタプリタの処理結果を送る（ｓ１２０−１１）。そして、ｓ１２０−１へ戻り、上記の処理を繰り返す。
【００２６】
［注目ＰＤＬデータ群の高速化処理コストを求める手法］
次に、ＰＤＬインタプリタ１３−１が、ｓ１２０−６において、上記中間データ生成コストと比較するための、高速化処理コストを求める手法を述べる。ＰＤＬインタプリタ１３−１が、注目ＰＤＬデータ群の高速化処理コストを求める手法（ｓ１２０−４）の実施形態を説明する。すなわち、高速化処理コスト決定手段の機能を実現する。
【００２７】
ＰＤＬインタプリタ１３−１は、ＰＤＬデータ１００中の高速化処理可能な命令があると（ｓ１２０−３）、高速化処理コストを計算する（ｓ１２０−４）。本実施形態では以下の命令が高速化処理の対象となる。
・圧縮データにかかる処理
・シェーディング描画命令処理
・タイル描画命令処理
・パス描画命令処理
・色変換処理
・フォント描画命令処理
・ビットマップ描画命令処理
・エッジ描画命令処理
本実施形態では、上記それぞれの処理に対して、以下の手法（算出式）にて計算することで高速化処理コストを計算する。
【００２８】
＜圧縮データにかかる処理＞
圧縮データの高速化処理にかかるコストをＣｃｍｐ、圧縮データのサイズをｃｍｐ＿ｓｉｚｅ、圧縮データの圧縮方式ｃｍｐ＿ｔｙｐｅに対応したコストの重み付けパラメータ（負荷パラメータ）をｗｅｉｇｈｔ［ｃｍｐ＿ｔｙｐｅ］、圧縮データ処理の高速化処理にかかる初期コストをｃｍｐ＿ｉｎｉｔとすると、以下の式から圧縮データの高速化処理コストを求めることができる。
【００２９】
【数１】
2010264731.tif 000003
【００３０】
なお、圧縮データの圧縮方式ｃｍｐ＿ｔｙｐｅに対応する重み付けパラメータは、予め定義しておくものとする。
【００３１】
＜シェーディング描画命令処理＞
シェーディング描画命令の高速化処理にかかるコストをＣｓｈａｄｉｎｇ、シェーディングのサイズをｓｈｉｄｉｎｇ＿ｓｉｚｅ、シェーディングタイプｓｈａｄｉｎｇ＿ｔｙｐｅに対応したコストの重みづけパラメータをｗｅｉｇｈｔ［ｓｈａｄｉｎｇ＿ｔｙｐｅ］、シェーディング描画命令高速化処理にかかる初期コストをｓｈａｄｉｎｇ＿ｉｎｉｔとすると、ＰＤＬインタプリタ１３−１は以下の式から圧縮データの高速化処理コストを求めることができる。
【００３２】
【数２】
2010264731.tif 000004
【００３３】
ここで、シェーディング描画命令のシェーディングタイプとは、シェーディング命令の種類を指し、例えば、以下のようなものがある。シェーディングタイプの一つに線形シェーディングがある。線形シェーディングによる描画結果の例を図８（ａ）に示す。図８（ａ）にあるように、線形シェーディングによる描画領域は、二つ以上の制御点間を線形な数式で表わされる色変化に基づき描画する。
【００３４】
また、他のシェーディングタイプの一つに放射シェーディングがある。放射シェーディングによる描画結果の例を図８（ｂ）に示す。この図にあるように、放射シェーディングによる描画領域は、二つ以上の円、または楕円間を線形な数式で表わされる色変化に基づき描画する。
【００３５】
＜タイル描画命令処理＞
タイル描画命令の高速化処理にかかるコストをＣｔｉｌｅ、タイル描画命令の処理コストの重み付けパラメータをｔｉｌｅ＿ｗｅｉｇｈｔ、タイル描画命令で描画する領域のサイズをｔｉｌｅ＿ａｒｅａ＿ｓｉｚｅ、タイル描画命令中のセルのサイズをｔｉｌｅ＿ｃｅｌｌ＿ｓｉｚｅ、タイル描画命令高速化処理にかかる初期コストをｔｉｌｅ＿ｉｎｉｔとすると、ＰＤＬインタプリタ１３−１は以下の式からタイル描画命令の高速化処理コストを求めることができる。
【００３６】
【数３】
2010264731.tif 000005
【００３７】
タイル描画命令で描画する領域とタイルのセルを、図９を使って説明する。タイル描画命令は、ある描画命令を一定の描画領域内で繰り返し描画する描画命令である。この繰り返すべき描画命令をセル３００−１と呼ぶ（図９（ａ）参照）。そして、レンダラー１３−３は、タイル描画命令中に示されるタイル描画命令で描画する領域３００−２に上記タイルのセルを繰り返し描画することで、図９（ｂ）に示されるタイル描画結果を生成する。
【００３８】
＜パス描画命令処理＞
パス描画命令の高速化処理にかかるコストをＣｐａｔｈ、パス描画命令の処理コストの重み付けパラメータをｐａｔｈ＿ｗｅｉｇｈｔ、パス描画命令で描画するパス点列数をｐａｔｈ＿ｓｉｚｅ、パス描画命令高速化処理にかかる初期コストをｐａｔｈ＿ｉｎｉｔとすると、ＰＤＬインタプリタ１３−１は以下の式からパス描画命令の高速化処理コストを求めることができる。
【００３９】
【数４】
2010264731.tif 000006
【００４０】
＜色変換処理＞
色変換処理の高速化にかかるコストをＣｃｍｓ、色変換処理の処理コストの重み付けパラメータをｃｍｓ＿ｗｅｉｇｈｔ、必要な色変換数をｃｍｓ＿ｓｉｚｅ、必要な色変換処理の種類をｃｍｓ＿ｔｙｐｅ、必要な色変換処理の種類ｃｍｓ＿ｔｙｐｅに対応した処理の重みづけパラメータの配列をｃｍｓ＿ｗｅｉｇｈｔ［ｃｍｓ＿ｔｙｐｅ］、色変換処理高速化処理にかかる初期コストをｃｍｓ＿ｉｎｉｔとすると、ＰＤＬインタプリタ１３−１は以下の式から色変換処理の高速化にかかるコストを求めることができる。
【００４１】
【数５】
2010264731.tif 000007
【００４２】
なお、ＰＤＬインタプリタ１３−１は、上記必要な色変換数以下の方法から求めることができる。例えば、ビットマップイメージに対しては、ＰＤＬインタプリタ１３−１は画素数から求めることができる。また、例えば、パス点列で表現される閉空間に内を一色に塗る描画命令に対しては、ＰＤＬインタプリタ１３−１は必要な色変換数は１であると定めることができる。
【００４３】
＜フォント描画命令処理＞
フォント描画命令処理の高速化にかかるコストをＣｆｏｎｔ、フォント描画命令の処理コストの重み付けパラメータをｆｏｎｔ＿ｗｅｉｇｈｔ、フォント描画命令中にあるフォントサイズの種類数をｆｏｎｔ＿ｍａｘ、このフォントサイズ種類数に対応した描画が必要なフォントの文字サイズの配列をｆｏｎｔ＿ｓｉｚｅ［ｉ］、フォントサイズの種類数に対応したフォントの文字数の配列をｆｏｎｔ＿ｎｕｍ［ｉ］、フォント描画命令高速化処理にかかる初期コストをｆｏｎｔ＿ｉｎｉｔとすると、ＰＤＬインタプリタ１３−１は以下の式からフォント描画命令処理にかかるコストを求めることができる。
【００４４】
【数６】
2010264731.tif 000008
【００４５】
なお、上記フォント描画命令と上述したｆｏｎｔ＿ｍａｘ，  ｆｏｎｔ＿ｓｉｚｅ，  ｆｏｎｔ＿ｎｕｍが有する値については図１０を使い例示しながら説明する。フォント描画命令中には同図に示されるような複数の描画すべき文字列２００−０が含まれる。この例においては、フォント描画命令は三つに分類されるフォント描画単位２００−１、２００−２、２００−３を含んでいる。そして、フォント描画命令はそれぞれのフォントサイズごとに描画すべき複数の文字を有する。例えば、フォントサイズが２０の文字の集合２００−１は５つの文字を有する。また、フォントサイズが３０の文字の集合２００−２は４つの文字を有する。また、フォントサイズが１９の文字の集合２００−３は４つの文字を有する。すなわち、図１０の場合は、フォントサイズの種類数ｆｏｎｔ＿ｍａｘは以下の数値が与えられる。
ｆｏｎｔ＿ｍａｘ＝３
また同図の場合は、フォントサイズの種類数に対応した描画が必要なフォントの文字サイズの配列ｆｏｎｔ＿ｓｉｚｅは以下の三つの数値を持つ。
ｆｏｎｔ＿ｓｉｚｅ［０］＝２０
ｆｏｎｔ＿ｓｉｚｅ［１］＝３０
ｆｏｎｔ＿ｓｉｚｅ［２］＝１９
また同図の場合は、フォントサイズの種類数に対応したフォントの文字数の配列ｆｏｎｔ＿ｎｕｍは以下の三つの数値を持つ。
ｆｏｎｔ＿ｎｕｍ［０］＝５
ｆｏｎｔ＿ｎｕｍ［１］＝４
ｆｏｎｔ＿ｎｕｍ［２］＝４
以上の値に基づいて、高速化処理コストを求めることが可能である。
【００４６】
＜ビットマップ描画命令処理＞
ビットマップ描画命令処理の高速化にかかるコストをＣｂｉｔｍａｐ、ビットマップ描画命令の処理コストの重み付けパラメータをｂｉｔｍａｐ＿ｗｅｉｇｈｔ、ビットマップ描画命令中にあるビットマップのサイズをｂｉｔｍａｐ＿ｓｉｚｅ、ビットマップ描画命令中のビットマップの色数（色チャネル数）をｂｉｔｍａｐ＿ｃｈａｎｎｅｌ、ビットマップ描画命令加速処理にかかる初期コストをｂｉｔｍａｐ＿ｉｎｉｔとすると、ＰＤＬインタプリタ１３−１は以下の式からビットマップ描画命令処理にかかるコストを求めることができる。
【００４７】
【数７】
2010264731.tif 000009
【００４８】
＜エッジ描画命令処理＞
エッジ描画命令処理の高速化にかかるコストをＣｅｄｇｅ、エッジ描画命令処理が描画すべき領域サイズをｅｄｇｅ＿ｓｉｚｅ、エッジ描画命令処理中の色数をｅｄｇｅ＿ｃｈａｎｎｅｌ、エッジ描画命令処理中の色数（色チャネル数）ｅｄｇｅ＿ｃｈａｎｎｅｌと処理コストの重み付けパラメータを対応付ける配列をｅｄｇｅ＿ｗｅｉｇｈｔ［ｅｄｇｅ＿ｃｈａｎｎｅｌ］、エッジ描画命令加速処理にかかる初期コストをｅｄｇｅ＿ｉｎｉｔとすると、ＰＤＬインタプリタ１３−１は以下の式からエッジ描画命令処理にかかるコストを求めることができる。
【００４９】
【数８】
2010264731.tif 000010
【００５０】
以上、本実施形態において対象となるそれぞれの処理における、中間データ生成コストを求めることが可能である。
【００５１】
［注目ＰＤＬデータ群の中間データ生成コストを求める手法１］
ＰＤＬインタプリタ１３−１は、ｓ１２０−６にて上記高速化処理コストとの比較対照である中間データ生成コストを求める。本実施形態における、ＰＤＬインタプリタ１３−１が、注目ＰＤＬデータ群の中間データ生成処理コストを求める手法（ｓ１２０−５）を説明する。すなわち、これにより中間データ生成コスト決定手段を実現する。
【００５２】
図１３は注目ＰＤＬデータ群の中間データ生成コストを求める手法（ｓ１２０−５）の処理フローを説明する図である。ｓ１２０−５−１でまず、ＰＤＬインタプリタ１３−１は既にＰＤＬインタプリタ１３−１及び中間データ生成部１３−２によって生成された中間データのサイズを取得する。
【００５３】
次に、ＰＤＬインタプリタ１３−１はｓ１２０−５−２で、求めた中間データのサイズが予め定義した閾値以上であるかを判定する。この判定に用いられる閾値は、予め当該画像形成処理装置の処理能力に依存して定められる。例えば、メインメモリ１２−３−６の容量によって閾値を定める。また、処理装置（１２−３−２、１２−３−３）の処理速度によって定めても、本実施形態を実施できる。また、メインメモリ１２−３−６の容量と処理装置（１２−３−２、１２−３−３）の処理速度との両方の性能を鑑みて定義しても、本実施形態を実施できる。
【００５４】
次に、中間データのサイズが閾値以上であるかの判定が真であれば、ＰＤＬインタプリタ１３−１はｓ１２０−５−３に進む。また、中間データのサイズが閾値以上であるかの判定が偽であれば、ＰＤＬインタプリタ１３−１はｓ１２０−５−４に進む。ＰＤＬインタプリタ１３−１は、上記判定結果に基づき、ｓ１２０−５−３で中間データ生成にかかるコストに設定可能な最大値を設定する。ここでいう最大値とは例えば以下の通りである。すなわち、３２ｂｉｔのデータを扱える処理装置（１２−３−２、１２−３−３）である場合には、ＰＤＬインタプリタ１３−１は中間データ生成にかかるコストに対する変数に３２ｂｉｔの大きさのメモリを割り当てる。よって、ＰＤＬインタプリタ１３−１は最大値として２１４７４８３６４７を設定する。
【００５５】
また、ＰＤＬインタプリタ１３−１は、上記判定に基づき、ｓ１２０−５−４で中間データ生成にかかるコストに設定できる最小値を設定する。ここでいう最小値とは例えば以下の通りである。すなわち、３２ｂｉｔのデータを扱える処理装置（１２−３−２、１２−３−３）である場合には、ＰＤＬインタプリタ１３−１は中間データ生成にかかるコストに対する変数に３２ｂｉｔの大きさのメモリを割り当てる。よって、ＰＤＬインタプリタ１３−１は最小値として−２１４７４８３６４８を設定する。
【００５６】
［高速化処理コストと中間データ生成コストの比較処理］
次に、高速化処理コストと中間データ生成コストとの比較処理（ｓ１２０−６）について、例を用いて説明する。図１１はタイル描画命令とビットマップ描画命令とを有するＰＤＬデータ１００によって描画されるべき画像を例示している。すなわち、ＰＤＬデータ中のビットマップ描画命令に基づき、ＰＤＬインタプリタ１３−１とＰＤＬ最適化モジュール１３−６と中間データ生成部１３−２とレンダラー１３−４とによって描画される（ビットマップ３００−３が描画される）。次に、ＰＤＬデータ中のセル３００−１を領域３００−２にしきつめるタイル描画命令に基づきＰＤＬインタプリタ１３−１とＰＤＬ最適化モジュール１３−６と中間データ生成部１３−２とレンダラー１３−４とによって描画される（セル３００−１が領域３００−２に描画される）。次に、ＰＤＬデータ中のパス描画命令に基づきＰＤＬインタプリタ１３−１とＰＤＬ最適化モジュール１３−６と中間データ生成部１３−２とレンダラー１３−４とによって描画される（パス３００−４が描画される）。この結果、図１１に示される描画結果は得られる。
【００５７】
次に、このＰＤＬデータ１００の例における、中間データ生成コストの比較処理（ｓ１２０−６）を示す。ＰＤＬインタプリタ１３−１は、最初に描画されるビットマップ描画命令においては、先に行われるｓ１２０−５でメモリに最小値が設定されるので、ｓ１２０−６では、偽と判定する。すなわち、ＰＤＬ最適化モジュール１３−６による高速化処理を行うことなく、中間データ生成部１３−２が中間データ１０２を生成することとなる。
【００５８】
また、ＰＤＬインタプリタ１３−１は、次に描画されるタイル描画命令においては、先に行われるｓ１４−０−５でメモリに最大値が設定されるので、ｓ１２０−６では真と判定する。上記判定によって、次にＰＤＬインタプリタ１３−１は、ｓ１２０−７に進む。
【００５９】
ここでＰＤＬインタプリタ１３−１は、各処理装置１２−３−２、１２−３−３の空き状況を取得する。この空き状況は、例えば、ＯＳ１３−７の機能を使うことによって得られる処理装置の占有率から求めることができる。これにより占有率取得手段を実現する。すなわち、処理装置が、既に他の処理によって高負荷にある場合には、高速化処理を行うための新しい処理を開始するだけの処理装置の余裕がない。よって、処理装置によって実行される高速化処理を行うべきではないと判定できる。そして、ＰＤＬインタプリタ１３−１は、ｓ１２０−８にて、予め定められた閾値と上記処理装置の占有率とを比較する。この比較によって、ＰＤＬインタプリタ１３−１は、高速化処理を行うべきか判定できる。もしこの判定が真である場合には、ＰＤＬインタプリタ１３−１は高速化処理のためのスレッドの生成あるいは初期化をＯＳ１３−７の機能を使うことによって実行する（ｓ１２０−９）。この処理によって、処理装置に割り当てるべき高速化処理の処理単位を生成することができる。つまり、この処理により、処理単位生成判定手段を実現する。
【００６０】
もちろん、本実施形態においては、処理単位をスレッドとして説明したが、この新しく割り当てる処理単位がスレッドではなくプロセスであっても本実施形態を実施できる。また、この新しく割り当てる処理単位がスレッドではなくタスクであっても本実施形態を実施できる。さらには、この新しく割り当てる処理単位がスレッドではなくその他並行して動作することができるルーチンや関数の集合であっても本実施形態を実施できる。
【００６１】
次に、ＰＤＬインタプリタ１３−１は上記割り当てた処理単位に注目しているＰＤＬデータ中の命令群の処理を割り当て、高速化処理を行う（ｓ１２０−１０）。すなわち、ＰＤＬインタプリタ１３−１は、上記生成した処理単位にタイル描画命令にかかる処理を割り当てる。そして、この新しく割り当てられた処理単位は、ＰＤＬインタプリタ１３−１によって割り当てられた高速化処理が実行される。なお、高速化処理に関する説明は次の項に記載する。そして、ＰＤＬインタプリタ１３−１は、新しい処理単位によって行われた処理に基づき中間データ生成部１３−２にデータを送り、中間データ生成部１３−３によって、中間データ１０２を生成する（ｓ１２０−１１）。次に、ＰＤＬインタプリタ１３−１は、次のＰＤＬデータ中の命令群を読み込み、処理を続行する（ｓ１２０−１）。
【００６２】
［新しい処理単位によって行われる高速化処理］
次に、ＰＤＬインタプリタ１３−１が、生成する新しい処理単位による高速化処理について以下に説明する（図６におけるｓ１２０−１０）。なお、本実施形態における高速化処理の対象となる処理は先に述べた高速化処理コストを求めたものと同様である。これにより高速化処理実行手段を実現する。なお、高速化処理の内容は、負荷分散や、処理対象データの削減などＰＤＬデータに含まれる処理ごとに異なるため、個別に説明する。
【００６３】
＜圧縮データにかかる処理＞
本実施形態における圧縮データにかかる処理に対する高速化処理は、例えば以下の通りである。即ち、上記新しい処理単位において、圧縮データの伸張ないし、その一部の処理を行う。これによって、ＰＤＬインタプリタ１３−１で行われる圧縮データにかかる処理の負荷を低減せしめる。
【００６４】
＜シェーディング描画命令処理＞
本実施形態におけるシェーディング描画命令処理に対する高速化処理は以下の通りである。即ち、レンダラー装置１２−３−１で行われるべきシェーディング処理を、処理装置（１２−３−２、または１２−３−３）上で行う。これによって、シェーディング描画命令処理の中間データ生成処理を分担し、その負荷を低減せしめる。
【００６５】
＜タイル描画命令処理＞
本実施形態におけるタイル描画命令処理に対する高速化処理は、例えば以下の通りである。即ち、レンダラー装置１２−３−１で行われるべきタイル描画命令に係るセル内部のラスターデータ生成処理を処理装置（１２−３−２、または１２−３−３）上で行う。これによってタイル描画命令処理の中間データ生成処理を分担し、その負荷を低減せしめる。
【００６６】
＜パス描画命令処理＞
本実施形態におけるパス描画命令処理に対する高速化処理は、例えば以下の通りである。即ち、パス点列中の描画に不要な重複する点を削除する。また、パス点列中の三点が直線状に並んでいる場合には、描画に不要な中間点を削除する。これによってパス描画命令処理の中間データ生成処理の負荷を低減せしめる。
【００６７】
＜色変換処理＞
本実施形態における色変換処理に対する高速化処理は、例えば以下の通りである。即ち、ＰＤＬインタプリタ１３−１は、中間データ生成部１３−２で行われるべき色変換処理を行う。これによって色変換処理に係る中間データ生成処理の負荷を低減せしめる。
【００６８】
＜フォント描画命令処理＞
本実施形態におけるフォント描画命令処理に対する高速化処理は、例えば以下の通りである。即ち、連続する文字列からなる描画命令をひとつのエッジ描画命令にまとめる。これによってフォント描画命令処理に係る中間データ生成処理の負荷を低減せしめる。
【００６９】
＜ビットマップ描画命令処理＞
本実施形態におけるビットマップ描画命令処理に対する高速化処理は、例えば以下の通りである。即ち、画像形成に必要な解像度以上の情報を持つビットマップ描画命令処理の解像度変換をする。ここでの解像度変換とは、本実施形態ではバイキュービック法による画像解像度変換によって行われる。もちろん、上記解像度変換は最近傍法によって実装されても、本実施形態を実施できる。また、これに限定されず、解像度変換は線形補完法やその他の方法によって実装されても、本実施形態を実施できる。これによってビットマップ描画命令処理に係る中間データ生成処理の負荷を低減せしめる。
【００７０】
＜エッジ描画命令処理＞
本実施形態におけるエッジ描画命令処理に対する高速化処理は、例えば以下の通りである。エッジ描画命令から両端の点のみを扱い、それ以外の点の処理を省略する。これによってエッジ描画命令処理に係る中間データ生成処理の負荷を低減せしめる。
【００７１】
以上により、各処理ごとに高速化処理の手法を適用し、中間データ生成を行う。なお、ここで挙げた各処理への高速化の手法は一例であり、例えば、ビットマップ描画命令処理などで述べたように、他の方法にて実施しても良い。
【００７２】
［第一の実施形態の効果］
以上、本発明によって以下のような効果がある。すなわち、一般に計算機は、既に多くの処理が行われメモリなどのリソースを多く消費している場合には、処理速度が著しく低下するか、処理を継続することが困難となる。よって、本発明では、ＰＤＬデータに定義された各種処理の独特な処理特性に注目し、予め異なる処理単位で高速化処理を行い、中間データ生成にかかる処理の負荷を低減する。これによって、より高速な画像形成処理を可能とする。具体的には本実施形態では、ＰＤＬインタプリタ１３−１は適用する処理に必要なコストを比較する（ｓ１２０−６）。すなわち、高速化処理を行わずに中間データを生成する場合のコストと、高速化処理を行って中間データを生成した場合のコストとを比較する。すなわち、ＰＤＬインタプリタ１３−１、及び、中間データ生成部１３−２が現状のままＰＤＬデータに対し中間データ生成処理を続けた場合に、画像形成処理装置の制限によって処理速度が低下せしめるかどうかを判定する。
【００７３】
ここでいう、制限とは上述したように、例えばメモリの容量による制限がある。もし、ＰＤＬデータの処理に対し高速化処理を行った方が、中間データ生成のコストが小さいと判定できた場合には、中間データを生成する前に、一旦新しい処理単位を生成すべきかを判定する（ｓ１２０−７、１２０−８）。ここでは、ＰＤＬインタプリタ１３−１は、新しく処理単位による処理を行う余地が処理装置あるかどうかを判定している（１２０−８）。もし、上記判定が真であるならば、ＰＤＬインタプリタ１３−１は、新しい処理単位を処理装置に割り当てて、ＰＤＬデータ中の注目した命令群に係る処理を行う（ｓ１２０−９、ｓ１２０−１０）。
【００７４】
上述したこれらの処理によって、ＰＤＬインタプリタ１３−１は、ＰＤＬデータに独特な処理特性に注目し、実行中の処理が次のステップの処理速度を低下するか否かを判定し、その上で処理速度を向上させている。つまり、図１５に示すように、処理速度が向上することが実験的に明らかとなっている。すなわち、従来手法でタイル描画処理のみを行った時と異なり、先行する描画命令処理によって中間データが生成されていると、次に処理すべき描画命令による処理速度が著しく低下することとなっていた。これに対して本実施形態の手法では、上記ＰＤＬデータに独特な処理特性に注目し、著しい速度低下を防ぐことによって、処理速度を向上させる。
【００７５】
以上、本発明では、大量に重なった描画命令や、大量の奥行き情報を持つ描画命令を持つ中間データを受け取ると、その中間データが有する奥行き情報や重なり情報の煩雑さによって処理速度が著しく低下するという問題に対して、レンダラーの処理速度を著しく低下させるか否かを判定しながらＰＤＬ解析処理を行う。つまり、ＰＤＬインタプリタはすでに生成された中間データの特徴と、解析中のＰＤＬデータの特徴と、複数ある処理装置の占有率情報とを使い、新しく上記処理単位を上記処理装置が実行する処理として生成するか否かを判定する。上記判定に基づき、処理速度が著しく低下する条件を検知し、最適化をすることで、画像形成の処理全体に係る時間を短縮する。
【００７６】
＜第二の実施形態＞
第一の実施形態において、注目ＰＤＬデータ群の中間データ生成コストを求めたが、第二の実施形態として、異なる中間データ生成コストを求める手法を説明する。
【００７７】
［注目ＰＤＬデータ群の中間データ生成コストを求める手法２］
ＰＤＬインタプリタ１３−１は、ｓ１２０−６にて上記高速化処理コストと比較対照となる中間データ生成コストを求める。本実施形態において説明する手法は、ＰＤＬインタプリタ１３−１が、注目ＰＤＬデータ群の中間データ生成コストを求める手法において第一の実施形態とは異なる手段である。
【００７８】
中間データ生成コストをＣｄｌ、中間データ生成部１３−２が生成する中間データ１０２に蓄積された描画命令数（処理数）をｄｌ＿ｏｐ＿ｎｕｍ、中間データ生成コストの重み付けパラメータをｄｌ＿ｗｅｉｇｈｔとすると、ＰＤＬインタプリタ１３−１は、以下の式により中間データ生成コストを求め、決定することができる。
【００７９】
【数９】
2010264731.tif 000011
【００８０】
以上により、本実施形態においても、第一の実施形態と同様の効果を得ることが可能となる。
【００８１】
＜第三の実施形態＞
第一の実施形態において、注目ＰＤＬデータ群の中間データ生成コストを求めたが、第三の実施形態として、異なる中間データ生成コストを求める手法を説明する。
【００８２】
［注目ＰＤＬデータ群の中間データ生成コストを求める手法３］
ＰＤＬインタプリタ１３−１は、ｓ１２０−６にて、上記高速化処理コストと比較対照となる中間データ生成コストを求める。本実施形態において説明する手法は、ＰＤＬインタプリタ１３−１が、注目ＰＤＬデータ群の中間データ生成コストを求める手法において第一の実施形態とは異なる手段である。
【００８３】
中間データ生成コストをＣｄｌ、中間データ生成部１３−２が生成する中間データ１０２に蓄積された描画命令数をｄｌ＿ｏｐ＿ｎｕｍ、中間データ生成コストの重み付けパラメータをｄｌ＿ｗｅｉｇｈｔとすると、ＰＤＬインタプリタ１３−１は、以下の式により中間データ生成コストを求めることができる。
【００８４】
【数１０】
2010264731.tif 000012
【００８５】
以上により、本実施形態においても、第一の実施形態、及び第二の実施形態と同様の効果を得ることが可能となる。
【００８６】
＜第四の実施形態＞
第一の実施形態において、注目ＰＤＬデータ群の中間データ生成コストを求めたが、第四の実施形態として、異なる中間データ生成コストを求める手法を説明する。
【００８７】
［注目ＰＤＬデータ群の中間データ生成コストを求める手法４］
ＰＤＬインタプリタ１３−１は、ｓ１２０−６にて、上記高速化処理コストと比較対照となる中間データ生成コストを求める。本実施形態において説明する手法は、ＰＤＬインタプリタ１３−１が、注目ＰＤＬデータ群の中間データ生成コストを求める手法において第一の実施形態とは異なる手段である。
【００８８】
中間データ生成コストをＣｄｌ、中間データ生成部１３−２が生成する中間データ１０２に蓄積された描画命令数をｄｌ＿ｏｐ＿ｎｕｍ、中間データ生成コストの重み付けパラメータをｄｌ＿ｗｅｉｇｈｔとすると、ＰＤＬインタプリタ１３−１は、以下の式により中間データ生成コストを求めることができる。
【００８９】
【数１１】
2010264731.tif 000013
【００９０】
以上により、本実施形態においても、第一乃至第三の実施形態と同様の効果を得ることが可能となる。
【００９１】
＜第五の実施形態＞
第一の実施形態において、注目ＰＤＬデータ群の中間データ生成コストを求めたが、第五の実施形態として、異なる中間データ生成コストを求める手法を説明する。
【００９２】
［注目ＰＤＬデータ群の中間データ生成コストを求める手法５］
ＰＤＬインタプリタ１３−１は、ｓ１２０−６にて、上記高速化処理コストと比較対照となる中間データ生成コストを求める。本実施形態において説明する手法は、ＰＤＬインタプリタ１３−１が、注目ＰＤＬデータ群の中間データ生成コストを求める手法において第一の実施形態とは異なる手段である。
【００９３】
中間データ生成コストをＣｄｌ、中間データ生成コストの重み付けパラメータをｄｌ＿ｗｅｉｇｈｔおよびｄｌ＿ｗｅｉｇｈｔ２、比較対象となる描画命令の種類を表す値をｏｂｊｅｃｔ＿ｔｙｐｅ、上記オブジェクト種類とＤＬ生成処理のコストを対応付ける配列をｏｂｊｅｃｔ＿ｔｙｐｅ＿２＿ｃｏｓｔ、既に生成した描画命令数をｇｅｎｅｒａｔｅｄ＿ｄｌ＿  ｓｉｚｅとすると、ＰＤＬインタプリタ１３−１は中間データ生成コストを求めることができる。なお、比較対象の描画命令とすでに生成した描画命令との種類は同一のものである。
【００９４】
【数１２】
2010264731.tif 000014
【００９５】
次に、比較対象となる描画命令の種類を表す値ｏｂｊｅｃｔ＿ｔｙｐｅ、及び、オブジェクト種類とＤＬ生成処理のコストを対応付ける配列ｏｂｊｅｃｔ＿ｔｙｐｅ＿２＿ｃｏｓｔについて説明する。図１４は描画命令の種類と描画命令の種類を表す値ｏｂｊｅｃｔ＿ｔｙｐｅとの対応を表す。また、図１４は描画命令の種類を表す値ｏｂｊｅｃｔ＿ｔｙｐｅとＤＬ生成処理のコストを対応付ける配列ｏｂｊｅｃｔ＿ｔｙｐｅ＿２＿ｃｏｓｔとの対応を表す。画像形成装置１２はあらかじめ、この表（図１４）によって定義される情報に対応した配列等を有する。これによりコスト情報保持手段を実現する。
【００９６】
この図１４における予め定義された情報によって、例えば、圧縮データにかかる描画命令であれば、ＰＤＬインタプリタ１３−１はＤＬ生成処理コストが４であることが得られる。
【００９７】
同様に、定義された情報により、第一の実施形態にて挙げた処理それぞれのＤＬ生成処理コストは、シェーディング描画命令処理は１０、タイル描画命令処理は１０、タイル描画命令処理は１、パス描画命令処理は１、色変換命令処理は２、フォント描画命令処理は２、ビットマップ描画命令処理は７、エッジ描画命令処理は３であることを取得できる。
【００９８】
以上により、本実施形態においても、第一乃至第四の実施形態と同様の効果を得ることが可能となる。
【００９９】
＜その他の実施形態＞
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムをコンピュータ（またはＣＰＵやＭＰＵ）が読出し実行することによっても、達成される。この場合、プログラムは図示したフローの手順を実現するためのものを含むこととなる。
【図１】
2010264731.tif 000015
【図２】
2010264731.tif 000016
【図３】
2010264731.tif 000017
【図４】
2010264731.tif 000018
【図５】
2010264731.tif 000019
【図６】
2010264731.tif 000020
【図７】
2010264731.tif 000021
【図８】
2010264731.tif 000022
【図９】
2010264731.tif 000023
【図１０】
2010264731.tif 000024
【図１１】
2010264731.tif 000025
【図１２】
2010264731.tif 000026
【図１３】
2010264731.tif 000027
【図１４】
2010264731.tif 000028
【図１５】
2010264731.tif 000029