(57)【要約】    【課題】  ＰＤＬデータを言語レベルの段階で並列処理することを可能にする。    【解決手段】  並列に描画処理が可能な複数の画像処理プロセッサ１０２〜１０４を備えた画像形成装置において、描画命令分割部１０１が、入力された描画データによって描画されるべき複数の描画オブジェクトに対して交差判定を行い、交差すると判定された複数の描画オブジェクトを１つのオブジェクトグループとするとともに、他の描画オブジェクトと交差しないと判定された１つの描画オブジェクトを１つのグループとする。そして、グループ化された各オブジェクトグループにそれぞれ関連する描画命令を、オブジェクトグループごとに画像処理プロセッサ１０２〜１０４にそれぞれ割り当て、対応する描画処理を並列実行させる。【選択図】      図１
2006331191.tif 000002
【特許請求の範囲】
【請求項１】
並列に描画処理が可能な複数の描画処理装置を備えた画像形成装置において、
入力された描画データによって描画されるべき複数の描画オブジェクトに対して交差判定を行う交差判定手段と、
前記交差判定手段によって交差すると判定された複数の描画オブジェクトを１つのオブジェクトグループとするとともに、他の描画オブジェクトと交差しないと判定された１つの描画オブジェクトを１つのグループとするグループ化手段と、
前記グループ化手段によってグループ化された各オブジェクトグループにそれぞれ関連する描画命令を、オブジェクトグループごとに前記複数の描画処理装置にそれぞれ割り当て、対応する描画処理を並列実行させる実行制御手段と
を有することを特徴とする画像形成装置。
【請求項２】
前記交差判定手段は、
前記複数の描画オブジェクトをそれぞれ包含する各オブジェクト包含領域を生成する領域生成手段と、
前記領域生成手段によって生成された各オブジェクト包含領域における相互間の位置関係の重複を検出する検出手段と、
前記検出手段によって重複が検出された複数のオブジェクト包含領域にそれぞれ対応する複数の描画オブジェクトは互いに交差すると判定する判定手段と
を含むことを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記領域生成手段は、描画オブジェクトを表すＸ座標値およびＹ座標値の各最大値および各最小値から得られる矩形領域を、前記描画オブジェクトを包含するオブジェクト包含領域とすることを特徴とする請求項２記載の画像形成装置。
【請求項４】
前記グループ化手段は、前記交差判定手段によって交差すると判定された複数の描画オブジェクトにそれぞれ関連する各描画命令を連結して描画命令の並び順序を整えることを特徴とする請求項１記載の画像形成装置。
【請求項５】
並列に描画処理が可能な複数の描画処理装置を備えた画像形成装置に適用される描画処理方法において、
入力された描画データによって描画されるべき複数の描画オブジェクトに対して交差判定を行う交差判定ステップと、
前記交差判定ステップにおいて交差すると判定された複数の描画オブジェクトを１つのオブジェクトグループとするとともに、他の描画オブジェクトと交差しないと判定された１つの描画オブジェクトを１つのグループとするグループ化ステップと、
前記グループ化ステップによってグループ化された各オブジェクトグループにそれぞれ関連する描画命令を、オブジェクトグループごとに前記複数の描画処理装置にそれぞれ割り当て、対応する描画処理を並列実行させる実行制御ステップと
を有することを特徴とする描画処理方法。
【請求項６】
前記交差判定ステップは、
前記複数の描画オブジェクトをそれぞれ包含する各オブジェクト包含領域を生成する領域生成ステップと、
前記領域生成ステップにおいて生成された各オブジェクト包含領域における相互間の位置関係の重複を検出する検出ステップと、
前記検出手ステップにおいて重複が検出された複数のオブジェクト包含領域にそれぞれ対応する複数の描画オブジェクトは互いに交差すると判定する判定ステップと
を含むことを特徴とする請求項５記載の描画処理方法。
【請求項７】
前記領域生成ステップでは、描画オブジェクトを表すＸ座標値およびＹ座標値の各最大値および各最小値から得られる矩形領域を、前記描画オブジェクトを包含するオブジェクト包含領域とすることを特徴とする請求項６記載の描画処理方法。
【請求項８】
前記グループ化ステップでは、前記交差判定ステップにおいて交差すると判定された複数の描画オブジェクトにそれぞれ関連する各描画命令を連結して描画命令の並び順序を整えることを特徴とする請求項５記載の描画処理方法。
【請求項９】
並列に描画処理が可能な複数の描画処理装置を備えた画像形成装置に適用される描画処理方法を、コンピュータに実行させるためのプログラムにおいて、
入力された描画データによって描画されるべき複数の描画オブジェクトに対して交差判定を行う交差判定ステップと、
前記交差判定ステップにおいて交差すると判定された複数の描画オブジェクトを１つのオブジェクトグループとするとともに、他の描画オブジェクトと交差しないと判定された１つの描画オブジェクトを１つのグループとするグループ化ステップと、
前記グループ化ステップによってグループ化された各オブジェクトグループにそれぞれ関連する描画命令を、オブジェクトグループごとに前記複数の描画処理装置にそれぞれ割り当て、対応する描画処理を並列実行させる実行制御ステップと
を有することを特徴とするプログラム。
【請求項１０】
描画データを読み込み、オブジェクトの重複を判定する判定手段と、
前記判定手段による判定結果に応じて、描画データを分割する分割手段と、
前記分割手段により分割された描画データの描画処理を実行する複数のプロセッサと
を有することを特徴とする画像形成装置。
【請求項１１】
前記分割手段は、重複しないオブジェクトがそれぞれ個別の描画命令となるように描画データを分割し、重複するオブジェクトが１つのグループの描画命令となるように描画データを分割することを特徴とする請求項１０記載の画像形成装置。
【請求項１２】
描画データを読み込み、オブジェクトの重複を判定する判定ステップと、
前記判定ステップによる判定結果に応じて、描画データを分割する分割ステップと、
前記分割ステップにより分割された描画データの描画処理を複数のプロセッサに実行させるステップと
を有することを特徴とする描画処理方法。
【請求項１３】
前記分割ステップは、重複しないオブジェクトがそれぞれ個別の描画命令となるように描画データを分割し、重複するオブジェクトが１つのグループの描画命令となるように描画データを分割することを特徴とする請求項１２記載の描画処理方法。
【請求項１４】
描画データを読み込み、オブジェクトの重複を判定する判定ステップと、
前記判定ステップによる判定結果に応じて、描画データを分割する分割ステップと、
前記分割ステップにより分割された描画データの描画処理を複数のプロセッサに実行させるステップと
をコンピュータに実行させるプログラム。
【請求項１５】
前記分割ステップは、重複しないオブジェクトがそれぞれ個別の描画命令となるように描画データを分割し、重複するオブジェクトが１つのグループの描画命令となるように描画データを分割することを特徴とする請求項１４記載のプログラム。
【請求項１６】
描画データを読み込み、オブジェクトの重複を判定する判定手段と、
前記判定手段による判定結果に応じて、描画データを分割する分割手段と、
前記分割手段により分割された描画データの描画処理を実行する複数のプロセッサと、
前記複数のプロセッサで描画処理された画像データを印刷する印刷手段と
を有することを特徴とする印刷装置。
【請求項１７】
前記分割手段は、重複しないオブジェクトがそれぞれ個別の描画命令となるように描画データを分割し、重複するオブジェクトが１つのグループの描画命令となるように描画データを分割することを特徴とする請求項１６記載の印刷装置。
【請求項１８】
描画データを読み込み、オブジェクトの重複を判定する判定手段と、
前記判定手段による判定結果に応じて、描画データを分割する分割手段と、
前記分割手段により分割された描画データの描画処理を実行する複数のプロセッサと、
前記複数のプロセッサで描画処理された画像データを表示する表示手段と
を有することを特徴とする表示装置。
【請求項１９】
前記分割手段は、重複しないオブジェクトがそれぞれ個別の描画命令となるように分割し、重複するオブジェクトが１つのグループの描画命令となるように描画データを分割することを特徴とする請求項１８記載の表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、印刷装置、表示装置、描画処理方法、及びプログラムに関し、特に、並列に描画処理が可能な複数の描画処理装置を備え、ページ記述言語（ＰＤＬ）で記述された描画データを解釈し、画像データを生成する画像形成装置、該画像形成装置に適用される描画処理方法、及び該描画処理方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
画像形成装置に対し、ＰｏｓｔＳｃｒｉｐｔ（登録商標）やＰＤＦ（Portable Document Format）等のページ記述言語（ＰＤＬ）で記述された描画データが入力されると、その描画データが画像形成装置において解釈されて各ページの画像データが生成される。入力された描画データは、複数種類のオブジェクト（描画オブジェクト）の集合で構成され、そのオブジェクトとしては図形、テキスト、その他の画像がある。生成される画像データは、１ページ分のラスタ画像のデータや、圧縮された画像データ等である。画像形成装置で生成された画像データは、必要に応じてページ合成や回転等の画像処理を行われた後、プリンタエンジンに送出されて印刷される。
【０００３】
画像形成装置における描画データの解釈では、その内容の複雑さにもよるが、一般に多くの演算が必要である。
【０００４】
印刷処理の高速化を図るためには、画像生成までの時間をできる限り削減する必要がある。
【０００５】
画像生成にかかる時間を削減するためには、複数の画像生成過程を並列に同時に行う並列化方法が有効であり、複数ページの画像データをページごとに並列に処理する方法や、画像形成装置が出力したラスタ画像をタイル状に分割して並列に処理する方法がある。しかし、これらの方法だけでは、処理負荷の重い画像形成処理を高速化することはできない。
【０００６】
このため、画像形成処理の高速化手法として画像形成処理の各過程を並列化する手法が考えられている。例えば特許文献１には、線または短冊状に描画対象を水平方向に分割し、分割された描画対象に対して並列処理を行う装置が開示されている。また、特許文献２には、描画対象となる二次元領域を複数のブロックに分割する画像処理装置が開示されている。
【特許文献１】特開平９−１６７２４２号公報
【特許文献２】特開平４−１７０６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の描画対象となる二次元領域を複数のブロックに分割する従来の画像処理装置において、ページ記述言語（ＰＤＬ）で記述された描画データを均等なブロック単位の描画データに分割した場合、各ブロックに含まれる描画オブジェクトの数に偏りがあり得、この偏りに起因して、各ブロックの描画処理で扱われる演算量にばらつきが生じてしまう。このような演算量のばらつきは、各ブロックのラスタ画像処理におけるレイテンシ（処理に伴う遅延時間）のばらつきの原因となる。
【０００８】
ブロックに含まれる描画オブジェクトの種類にもよるが、一般的に描画オブジェクトを多く含むブロックの描画処理の負荷は、描画オブジェクトの数が少ないブロックに比べ大きくなってしまう。そして、レイテンシの大きいブロックにおいて印刷処理などライン単位の処理を行う場合にスループットが制限されてしまうという問題があった。
【０００９】
また、上記分割ブロックに描画処理を割当てる際に、入力されたＰＤＬデータを言語のレベルで一旦全て解析して、どのブロックにどの描画命令を割当てるかを確定した後に、分割処理を割当てねばならないという問題があった。すなわち、ＰＤＬデータの解析が終了して描画される座標や順序が全て確定してから、分割処理を分割領域に割当てる必要があり、ＰＤＬという言語で記述された高い抽象度レベルでの並列処理やスケジューリングが困難であるという課題があった。
【００１０】
本発明はこのような問題点に鑑みてなされたものであって、ＰＤＬデータを言語レベルの段階で並列処理することを可能にする画像形成装置、印刷装置、表示装置、描画処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１記載の発明によれば、並列に描画処理が可能な複数の描画処理装置を備えた画像形成装置において、入力された描画データによって描画されるべき複数の描画オブジェクトに対して交差判定を行う交差判定手段と、前記交差判定手段によって交差すると判定された複数の描画オブジェクトを１つのオブジェクトグループとするとともに、他の描画オブジェクトと交差しないと判定された１つの描画オブジェクトを１つのグループとするグループ化手段と、前記グループ化手段によってグループ化された各オブジェクトグループにそれぞれ関連する描画命令を、オブジェクトグループごとに前記複数の描画処理装置にそれぞれ割り当て、対応する描画処理を並列実行させる実行制御手段とを有することを特徴とする画像形成装置が提供される。
【００１２】
また、請求項５記載の発明によれば、並列に描画処理が可能な複数の描画処理装置を備えた画像形成装置に適用される描画処理方法において、入力された描画データによって描画されるべき複数の描画オブジェクトに対して交差判定を行う交差判定ステップと、前記交差判定ステップにおいて交差すると判定された複数の描画オブジェクトを１つのオブジェクトグループとするとともに、他の描画オブジェクトと交差しないと判定された１つの描画オブジェクトを１つのグループとするグループ化ステップと、前記グループ化ステップによってグループ化された各オブジェクトグループにそれぞれ関連する描画命令を、オブジェクトグループごとに前記複数の描画処理装置にそれぞれ割り当て、対応する描画処理を並列実行させる実行制御ステップとを有することを特徴とする描画処理方法が提供される。
【００１３】
また、請求項１０記載の発明によれば、描画データを読み込み、オブジェクトの重複を判定する判定手段と、前記判定手段による判定結果に応じて、描画データを分割する分割手段と、前記分割手段により分割された描画データの描画処理を実行する複数のプロセッサとを有することを特徴とする画像形成装置が提供される。
【００１４】
また、請求項１２記載の発明によれば、描画データを読み込み、オブジェクトの重複を判定する判定ステップと、前記判定ステップによる判定結果に応じて、描画データを分割する分割ステップと、前記分割ステップにより分割された描画データの描画処理を複数のプロセッサに実行させるステップとを有することを特徴とする描画処理方法が提供される。
【００１５】
さらに、上記描画処理方法をコンピュータに実行させるためのプログラムが提供される。
【００１６】
また、請求項１６記載の発明によれば、描画データを読み込み、オブジェクトの重複を判定する判定手段と、前記判定手段による判定結果に応じて、描画データを分割する分割手段と、前記分割手段により分割された描画データの描画処理を実行する複数のプロセッサと、前記複数のプロセッサで描画処理された画像データを印刷する印刷手段とを有することを特徴とする印刷装置が提供される。
【００１７】
また、請求項１８記載の発明によれば、描画データを読み込み、オブジェクトの重複を判定する判定手段と、前記判定手段による判定結果に応じて、描画データを分割する分割手段と、前記分割手段により分割された描画データの描画処理を実行する複数のプロセッサと、前記複数のプロセッサで描画処理された画像データを表示する表示手段とを有することを特徴とする表示装置が提供される。
【発明の効果】
【００１８】
本発明によれば、並列に描画処理が可能な複数の描画処理装置を備えた画像形成装置において、入力された描画データによって描画されるべき複数の描画オブジェクトに対して交差判定を行い、交差すると判定された複数の描画オブジェクトを１つのオブジェクトグループとするとともに、他の描画オブジェクトと交差しないと判定された１つの描画オブジェクトを１つのグループとする。そして、グループ化された各オブジェクトグループにそれぞれ関連する描画命令を、オブジェクトグループごとに複数の描画処理装置にそれぞれ割り当て、対応する描画処理を並列実行させる。
【００１９】
これにより、描画データを言語レベルの段階で並列処理することが可能になり、描画処理時間を短縮することができる。したがって、画像形成装置全体の応答時間を短縮できる。
【００２０】
また特に、ページ記述言語のような、ビットマップ処理よりも高い抽象度の処理レベルにおいて分割並列化した描画処理を行えるので、各種の画像処理装置に幅広く対応して並列高速化処理を行なうことができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。
【００２２】
図１は、本発明の一実施の形態に係る画像形成装置の構成を示すブロック図である。
【００２３】
本画像形成装置は、例えばＰｏｓｔＳｃｒｉｐｔやＰＤＦ等のページ記述言語（ＰＤＬ）で記述された描画データ（ＰＤＬデータ）を受け取り、該描画データに基づいて画像データを形成する。
【００２４】
図１に示すように、本画像形成装置は、ＣＰＵ１０６と、描画データを画像データに変換する画像処理プロセッサ１０２，１０３，１０４と、メモリ１０５とによって構成され、各部がバスによって接続される。メモリ１０５には、制御プログラムが格納されるとともに、描画オブジェクト情報や画像処理プロセッサ１０２，１０３，１０４で変換された画像データ等が書き込まれる。なお、本画像形成装置を構成する描画命令分割部１０１は、ＣＰＵ１０６が、メモリ１０５に格納された制御プログラムを読み出して実行することにより実現される機能を示すものである。
【００２５】
描画命令分割部１０１は、ＰＤＬデータ（描画データ）を受け取り、そのＰＤＬデータをページ記述言語（ＰＤＬ）の規約に沿って解釈する機能と、描画オブジェクトを包含する領域（概形）を算出する機能と、描画オブジェクト毎に描画命令（（描画コマンド）を切り出す機能とから成る。
【００２６】
描画命令分割部１０１に入力されるＰＤＬデータは、一般には、直線や曲線によって囲まれ塗り潰される閉領域、直線や曲線そのもの、文字などの描画オブジェクトの描画操作を記述したプログラム言語データである。描画命令分割部１０１は、このような描画オブジェクトが存在する領域を、ＰＤＬデータに含まれる描画命令から抽出した座標情報によって定義する。
【００２７】
本実施の形態では、ＰＤＬデータから抽出した座標情報に基づいて、描画オブジェクトが存在する可能性のある領域（この領域を、以下「概形」とよぶ）を求め、複数の概形が重なり合っているか（位置関係が重複しているか）否かによって交点演算の実行の必要性を判断する。
【００２８】
例えば、三角形の描画オブジェクトにおいて、該三角形の３つの頂点座標のＸ値およびＹ値の各々における最大値および最小値を求め、Ｘ値の最大値および最小値並びにＹ値の最大値および最小値によって囲まれる矩形領域を求める。このとき、この三角形の描画オブジェクトは該矩形領域内に必ず存在する。また、ベジエ曲線の描画オブジェクトの場合は、４点の制御点の座標が得られれば、これらの座標のＸ値およびＹ値の各々における最大値および最小値を基に、同様に矩形領域を求めることができ、該矩形領域内にベジエ曲線の描画オブジェクトが必ず存在する。
【００２９】
以上のように、描画オブジェクト全体が包含される矩形領域を求め、これを概形として用いる。なお、概形は、描画オブジェクトが包含される領域であれば矩形以外の形状でもよく、描画オブジェクトが包含され、はみ出さないという条件を満たす領域であれば、その形状は他のものであってもよく、その決定方法を問わない。
【００３０】
以下の説明では、概形は、描画オブジェクト全体を含む矩形であるものとする。概形を矩形に限定した場合、単純な解釈で、描画オブジェクトの概形が含まれるブロックを判定可能である。
【００３１】
描画命令分割部１０１では、このような描画オブジェクトの概形情報を用いて、複数の描画オブジェクト間の交点演算の必要性を判定する。すなわち、描画オブジェクトの概形が他の描画オブジェクトの概形と重なり合わない場合、交点演算が不必要と判断し、描画オブジェクトの描画処理を、他の描画オブジェクトと無関係に独立して実行する。具体的には、描画命令分割部１０１は、概形情報から、自己の概形が他の概形と重なり合わず、独立して描画処理が行えると判断された描画オブジェクトの描画命令を、入力されたＰＤＬデータの描画命令から分割し、画像処理プロセッサ１０２，１０３，１０４のいずれかに割り当てる。
【００３２】
画像処理プロセッサ１０２，１０３，１０４の各々では、割り当てられた描画命令に基づき描画処理を行って画像データを形成し、該画像データをメモリ１０５に格納する。なお、画像データをそのまま後段の画像処理装置や出力装置、表示装置等に転送する場合もあり得る。
【００３３】
図２は、図１に示す描画命令分割部１０１に入力される描画データの一例を示す図である。この描画データは、ＰｏｓｔＳｃｉｒｐｔ言語で記述されている。また、図３は、図２に示す描画データが表す描画オブジェクトおよび概形を示す図である。以下、図２および図３を参照して説明する。
【００３４】
図２において、２００〜２０５はそれぞれ、各描画オブジェクトの描画命令であり、これらの描画命令によって、図３に示す描画領域３００に、円オブジェクト３０１、円オブジェクト３０２、三角形オブジェクト３０３、直線オブジェクト３０４、直線オブジェクト３０５、曲線オブジェクト３０６がそれぞれ描画される。
【００３５】
図２において、２１０は、円オブジェクト３０１の形状を定義する命令、２１１は、円オブジェクト３０１の色を定義する命令、２１２は、円オブジェクト３０１を塗りつぶす命令である。また、２１３は、円オブジェクト３０２の形状を定義する命令、２１４は、円オブジェクト３０２の色を定義する命令、２１５は、円オブジェクト３０２を塗りつぶす命令である、また、２２０は、三角形オブジェクト３０３の形状を定義する命令、２２１は、三角形オブジェクト３０３の色を定義する命令、２２２は、三角形オブジェクト３０３を塗りつぶす命令である。また、２２３は、直線オブジェクト３０４の形状を定義する命令、２２４は、直線オブジェクト３０５の形状を定義する命令、２２５は、曲線オブジェクト３０６の形状を定義する命令、２３０は、画像データを１ページ分として出力することを指示する命令である。
【００３６】
図３において、３１１が円オブジェクト３０１の概形、３１２が円オブジェクト３０２の概形、３１３が三角オブジェクト３０３の概形、３１４が直線オブジェクト３０４の概形、３１５が直線オブジェクト３０５の概形、３１６が曲線オブジェクト３０６の概形である。
【００３７】
図４は、図１に示す画像形成装置によって行われる描画処理の手順を示すフローチャートである。以下、図３に示す描画オブジェクトおよび概形の例を参照しながら、本描画処理を説明する。
【００３８】
まず、ステップＳ４０１において、描画命令分割部１０１が描画データを読み込み、解釈を行う。この描画データは、例えば図２に示したＰｏｓｔＳｃｒｉｐｔ言語で記述された描画データである。
【００３９】
ステップＳ４０１での描画データ解釈終了後、ステップＳ４０２に移り、描画命令分割部１０１は描画オブジェクトの概形を算出する。この概形の算出を、図２および図３に示す一例を参照して以下に説明する。
【００４０】
まず、図２に示す円オブジェクト３０１の描画命令２００を解釈し、中心座標（８０，２２０）および半径５０である円オブジェクト３０１の取りうるＸ座標およびＹ座標の範囲を計算し、概形を求める。円オブジェクト３０１の概形は、図３の矩形領域３１１に相当する。この円オブジェクト３０１のＸ座標およびＹ座標の最小値は（Ｘ，Ｙ）＝（８０−５０，２２０−５０）＝（３０，１７０）であり、最大値は（Ｘ，Ｙ）＝（８０＋５０，２２０＋５０）＝（１３０，２７０）である。
【００４１】
次に、円オブジェクト３０２の描画命令２０１を解釈し、同様の手法を用いて円オブジェクト３０２の概形３１２についても算出する。
【００４２】
次に、三角形オブジェクト３０３の描画命令２０２を解釈し、概形を計算する。すなわち最初に、ｍｏｖｅｔｏ命令によってペン座標を（Ｘ，Ｙ）＝（８０，６０）に移動させる。ここから、ｌｉｎｅｔｏ命令によって座標（Ｘ，Ｙ）＝（１１０，  １４０）、（２００，９０）、（８０，６０）に順に直線を引き、三角形を描く。このように、三角形オブジェクト３０３は直線から構成される図形であるので、描画命令分割部１０１は、描画命令２０２の解釈終了まで、描画オブジェクトの各頂点の最大値および最小値を単純に更新しつづけることで描画オブジェクトを包含する領域を特定することが可能である。ここでは、３つの頂点の座標から、Ｘ座標およびＹ座標の最小値は（Ｘ，Ｙ）＝（８０，６０）、最大値は（Ｘ，Ｙ）＝（２００，１４０）であることが検出される。こうして得られる三角形オブジェクト３０３の概形は、図３に示す矩形領域３１３となる。
【００４３】
次に描画命令分割部１０１は、直線オブジェクト３０４の描画命令２０３を解釈する。直線オブジェクト３０４は、ｍｏｖｅｔｏ命令によってペン座標を（Ｘ，Ｙ）＝（２０，２６０）に移動させ、ｌｉｎｅｔｏ命令によって座標（Ｘ，Ｙ）＝（７０，３１０）に直線を引く。直線オブジェクトでは、始点、終点の座標値からＸ座標およびＹ座標の最小値、最大値が求められる。ここではＸ座標およびＹ座標の最小値は、（Ｘ，Ｙ）＝（２０、２６０）、最大値は（Ｘ，Ｙ）＝（７０、３１０）である。これによって、直線オブジェクト３０４の概形は、図３に示す矩形領域３１４となる。
【００４４】
次に直線オブジェクト３０５の描画命令２０４も同様に解釈され、直線オブジェクト３０５の概形は、図３に示す矩形領域３１５となる。
【００４５】
最後に、描画命令分割部１０１は、曲線オブジェクト３０６の描画命令２０５を解釈し、概形を計算する。ここでは最初に、ペンの座標を（Ｘ，Ｙ）＝（３０，２０）に移動させ、現在のペン座標と３つの座標（Ｘ，Ｙ）＝（５０，８０）、（１００，４０）、（９０，２０）との４制御点に基づきベジエ曲線を描く。ベジエ曲線は、各制御点のＸ座標およびＹ座標の最小値および最大値から、描画オブジェクトを包含する矩形領域を判定可能である。このベジエ曲線を含む領域は、座標（Ｘ，Ｙ）＝（３０，２０）、（１００，８０）で表される図３の矩形領域３１６となる。
【００４６】
このようにして各描画オブジェクトの概形が算出される。
【００４７】
なお、この概形の算出によって得られた描画オブジェクトごとのＸ座標およびＹ座標が共に最小となる点の座標値（ｍｉｎ）と、共に最大となる点の座標値（ｍａｘ）とを、概形情報としてメモリ１０５に格納する。
【００４８】
図５は、メモリ１０５に格納された各概形の概形情報の一例を示す図である。
【００４９】
６００〜６０５はそれぞれ、円オブジェクト３０１の概形３１１、円オブジェクト３０２の概形３１２、三角形オブジェクト３０３の概形３１３、直線オブジェクト３０４の概形３１４、直線オブジェクト３０５の概形３１５、曲線オブジェクト３０６の概形３１６に対応する。
【００５０】
図４に戻って、ステップＳ４０２で各描画オブジェクトの概形を算出した後、ステップＳ４０３では、メモリ１０５に格納された各概形の概形情報を用いて、概形の相互間に位置関係の重複が発生しているか否かを判定する。すなわち、メモリ１０５に格納された各概形の概形情報を参照して、Ｘ軸方向において同一の範囲内に互いの概形が存在するとともに、Ｙ軸方向においても同一の範囲内に互いの概形が存在するか否かを判定する。その結果、２つの概形が、Ｘ軸方向およびＹ軸方向において、共に重なり合っているならば、これらの２つの概形の間に位置関係の重複が発生していると判定する。一方、２つの概形が、単にＸ軸方向またはＹ軸方向の一方で重なり合っているだけか、またはＸ軸方向でもＹ軸方向でも重なり合っていなければ、これらの２つの概形の間に位置関係の重複が発生していないと判定する。
【００５１】
図５に示す概形情報の一例では、三角形オブジェクト３０３の概形情報６０２と曲線オブジェクト３０６の概形情報６０５とにおいて、Ｘ軸方向の範囲はそれぞれ８０〜２００と３０〜１００となっており、Ｘ軸方向で重なり合いが発生している。さらにＹ軸方向の範囲はそれぞれ６０〜１４０と２０〜８０となっており、Ｙ軸方向でも重なり合いが発生している。したがって、三角形オブジェクト３０３の概形３１３と曲線オブジェクト３０６の概形３１６との間に位置関係の重複が発生していると判定される。
【００５２】
この判定の結果、三角形オブジェクト３０３と曲線オブジェクト３０６とは重なり合う可能性があり、交点演算を行わねばならない可能性がある。
【００５３】
ステップＳ４０３で概形の重複の判定を行った後、ステップＳ４０４に移り、描画データに含まれる描画命令を分割する。すなわち、ステップＳ４０３で概形の重複がないと判定された円オブジェクト３０１、円オブジェクト３０２、直線オブジェクト３０４、直線オブジェクト３０５に関しては、描画オブジェクトが互いに交わることはなく、交点演算が不要であるため、対応の描画命令２００，２０１，２０３，２０４をそれぞれ分割する。これによって、各描画命令に対して同時に並列に描画処理を実行することが可能となる。
【００５４】
一方、ステップＳ４０３で概形が重複していると判定された三角形オブジェクト３０３と曲線オブジェクト３０６とに関しては、両描画オブジェクトの交点演算を行わねばならない可能性があるので、三角形オブジェクト３０３の描画命令２０２と曲線オブジェクト３０６の描画命令２０５とを分割することはできない。ただし、三角形オブジェクト３０３と曲線オブジェクト３０６とが、円オブジェクト３０１、円オブジェクト３０２、直線オブジェクト３０４、直線オブジェクト３０５のいずれとの間でも、重複していないため、三角形オブジェクト３０３の描画命令２０２と曲線オブジェクト３０６の描画命令２０５とを、他の描画命令２００，２０１，２０３，２０４から分割し、並列に描画処理することは可能である。
【００５５】
よって、描画命令分割部１０１は、図２に示す入力描画データを、図６に示すような５つの描画命令に分割する。
【００５６】
図６は、ステップＳ４０４において分割された描画命令の例を示す図である。
【００５７】
すなわち、図２に示す入力描画データは、円オブジェクト３０１の描画命令２００に対応する描画命令（グループ）５０１と、円オブジェクト３０２の描画命令２０１に対応する描画命令（グループ）５０２と、直線オブジェクト３０４の描画命令２０３に対応する描画命令（グループ）５０４と、直線オブジェクト３０５の描画命令２０４に対応する描画命令（グループ）５０５と、三角形オブジェクト３０３の描画命令２０２および曲線オブジェクト３０６の描画命令２０５に対応する描画命令（グループ）５０３とに分割される。
【００５８】
これらの５つの分割された描画命令に対して、互いに独立に描画処理を実行することができ、各描画処理結果は、他の描画処理結果によって影響されることはない。
【００５９】
なお、描画命令（グループ）５０３においては、三角形オブジェクト３０３の描画命令２０２と曲線オブジェクト３０６の描画命令２０５とを連結するようにし、これにより、描画命令の並び順序を再順序化（リオーダリング）した１つのＰＤＬデータとして扱うことができる。
【００６０】
ステップＳ４０６に移り、未処理の描画命令が存在するか否かを判定する。例えば、ステップＳ４０４で描画データを分割して得られた描画命令（グループ）５０１−５０５のうち、描画処理が未だ行われていない描画命令が存在するか否かを判定し、存在するならばステップＳ４０７へ進み、すべての描画命令が処理済みであるならばステップＳ４１０へ進む。
【００６１】
描画命令分割部１０１は、図１に示す画像処理プロセッサ１０２，１０３，１０４の実行状況を監視しており、ステップＳ４０７では、それらの実行状況を確認する。
【００６２】
その確認の結果、ステップＳ４０８では、描画命令を処理していないアイドル状態にある画像処理プロセッサが存在するか否かを判別し、アイドル状態にある画像処理プロセッサが存在するならばステップＳ４０９へ進み、存在しないならばステップＳ４０７へ戻る。
【００６３】
ステップＳ４０９では、アイドル状態の画像処理プロセッサを選択し、ステップＳ４０６で未処理とされた描画命令を、該アイドル状態の画像処理プロセッサに割り当て、該画像処理プロセッサは、割り当てられた描画命令に従い描画処理を実行する。
【００６４】
ステップＳ４０６〜Ｓ４０９を繰り返し実行することで、例えば、ステップＳ４０４で描画データを分割して得られた描画命令５０１−５０５が、画像処理プロセッサ１０２，１０３，１０４にそれぞれ割り当てられ、画像処理プロセッサ１０２，１０３，１０４は、同時並列に描画処理を実行することになる。これにより、単一の画像処理プロセッサで描画処理するよりも、全体の描画処理に要する時間を短縮することができる。
【００６５】
なお、ステップＳ４０６〜Ｓ４０９を繰り返し実行することで、アイドル状態の画像処理プロセッサが存在しないときには、画像処理プロセッサが描画処理の実行を完了するまで待ち、いずれかの画像処理プロセッサがアイドル状態になると、該画像処理プロセッサに未処理の描画命令が割り当てられる。
【００６６】
未処理の描画命令が存在しなくなれば、ステップＳ４１０に進み、各画像処理プロセッサ１０２〜１０４での描画処理が終了するまで待機する。描画処理が完了した画像処理プロセッサは、ラスタ画像を出力するので、該出力によって、描画処理の完了を確認できる。
【００６７】
各画像処理プロセッサでの描画処理の完了を確認した後、ステップＳ４１１において、各画像処理プロセッサ１０２〜１０４が出力したラスタ画像の統合処理を行う。この統合処理は、入力された描画データを分割せずに描画処理した場合に得られる画像データと同等の画像データを生成するための処理である。
【００６８】
例えば、概形情報から、分割された描画命令による描画範囲を算出できるので、その描画範囲を表すアドレスにラスタ画像を出力するように、予め画像処理プロセッサに設定することでラスタ画像を統合することができる。また、画像処理プロセッサが任意のアドレスにラスタ画像を出力し、全体の描画画像（例えば図３の３００相当）から、任意のアドレスに出力されたラスタ画像（例えば図３の３１１〜３１６相当）へリンクする処理を行ってもよい。また、ＣＰＵ１０６が、任意のアドレスに出力されたラスタ画像を統合してもよい。
【００６９】
ステップＳ４１１において、統合処理が終了し、統合されたラスタ画像がメモリ１０５に格納されると、本描画処理が終了となる。
【００７０】
以上のように、本実施の形態では、まず、描画オブジェクトの概形情報より、複数の描画オブジェクトが相互間で重複していないことを確認する。こうしたことが確認された各描画オブジェクトに係る描画命令の相互間では依存関係がないので、こうした複数の描画命令を分割し、該分割された各描画命令を複数の画像処理プロセッサにそれぞれ割り当て、複数の画像処理プロセッサに同時並列に描画処理を実行させる。これにより、単一の画像処理プロセッサで描画処理するよりも、全体の描画処理に要する時間を短縮することができる。
【００７１】
〔他の実施の形態〕
また、本発明の目的は、上記の実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【００７２】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７３】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００７４】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００７５】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００７６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も、本発明に含まれることは言うまでもない。
【００７７】
この場合、上記プログラムは、該プログラムを記憶した記憶媒体から直接、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続された不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【００７８】
また、図１の画像処理プロセッサ１０２〜１０４で処理されメモリ１０５に記憶された画像データを、メモリ１０５から読み出し印刷するための電子写真方式やインクジェット方式のプリンタエンジンを画像形成装置に追加し、こうして構成された印刷装置を提供するようにしてもよい。
【００７９】
また、図１の画像処理プロセッサ１０２〜１０４で処理されメモリ１０５に記憶された画像データを、メモリ１０５から読み出し表示するための表示エンジンを画像形成装置に追加し、こうして構成された表示装置を提供するようにしてもよい。
【図面の簡単な説明】
【００８０】
【図１】本発明の一実施の形態に係る画像形成装置の構成を示すブロック図である。
【図２】図１に示す描画命令分割部に入力される描画データの一例を示す図である。
【図３】図２に示す描画データが表す描画オブジェクトおよび概形を示す図である。
【図４】図１に示す画像形成装置によって行われる描画処理の手順を示すフローチャートである。
【図５】メモリに格納された各概形の概形情報の一例を示す図である。
【図６】図４のステップＳ４０４において分割された描画命令の例を示す図である。
【符号の説明】
【００８１】
１０１  描画命令分割部（交差判定手段、グループ化手段、実行制御手段）
１０２、１０３、１０４  画像処理プロセッサ（描画処理装置）
１０５  メモリ
１０６  ＣＰＵ
２００  円オブジェクト描画命令
２０１  円オブジェクト描画命令
２０２  三角オブジェクト描画命令
２０３  直線オブジェクトの描画命令
２０４  直線オブジェクトの描画命令
２０５  曲線オブジェクトの描画命令
３００  描画領域
３０１  円オブジェクト
３０２  円オブジェクト
３０３  三角形オブジェクト
３０４  直線オブジェクト
３０５  直線オブジェクト
３０６  曲線オブジェクト
６００〜６０５  概形情報
【図１】
2006331191.tif 000003
【図２】
2006331191.tif 000004
【図３】
2006331191.tif 000005
【図４】
2006331191.tif 000006
【図５】
2006331191.tif 000007
【図６】
2006331191.tif 000008