(57)【要約】    【課題】  バンド単位の描画処理においてボトルネックとなる演算量が多いブロックの描画処理時間を短縮化し、ブロック毎のスループットを平滑化することによって、後段のバンド処理におけるレイテンシの短縮化を図ることができる画像処理装置を提供する。    【解決手段】  ブロック分割部１０１は、印刷データが規定する１ページの描画対象領域を複数のブロックに分割し、所定数のブロックを含むバンド毎にバンド内の各ブロックの描画処理を対応する画像処理プロセッサ１０２，１０３，１０４に割り当てる。そして、処理中のバンドにおいて、複数のサブブロックに分割する必要がある描画処理中のブロックがあると、該描写処理中のブロックが複数のサブブロックに分割され、該分割された複数のサブブロックがそれぞれ対応する画像処理プロセッサ１０２，１０３，１０４に割り当てられる。【選択図】      図１
2006092125.tif 000002
【特許請求の範囲】
【請求項１】
複数の描画処理手段を備える画像処理装置であって、
印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割手段と、
所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当て手段と、
前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定手段と、
前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当て手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記サブブロック割り当て手段は、前記分割された複数のサブブロックのうち、１つのサブブロックの描画処理を前記複数のサブブロックに分割する必要があるブロックの描画処理が割り当てられている描画処理手段に、他のブロックの描画処理を待機状態にある描画処理手段にそれぞれ割り当てることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記判定手段は、前記バンドに含まれるブロックの描画処理を実行している描画処理手段から通知される未描画処理残量に基づいて、前記バンド内に複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定することを特徴とする請求項１または２記載の画像処理装置。
【請求項４】
複数の描画処理手段を備える画像処理装置の画像処理方法であって、
印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割工程と、
所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当て工程と、
前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定工程と、
前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当て工程と
を有することを特徴とする画像処理方法。
【請求項５】
前記サブブロック割り当て工程では、前記分割された複数のサブブロックのうち、１つのサブブロックの描画処理を前記複数のサブブロックに分割する必要があるブロックの描画処理が割り当てられている描画処理手段に、他のブロックの描画処理を待機状態にある描画処理手段にそれぞれ割り当てることを特徴とする請求項４記載の画像処理方法。
【請求項６】
前記判定工程では、前記バンドに含まれるブロックの描画処理を実行している描画処理手段から通知される未描画処理残量に基づいて、前記バンド内に複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定することを特徴とする請求項４または５記載の画像処理方法。
【請求項７】
複数の描画処理手段を備える画像処理装置により実行されるプログラムであって、
印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割モジュールと、
所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当てモジュールと、
前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定モジュールと、
前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当てモジュールと
を有することを特徴とするプログラム。
【請求項８】
請求項７記載のプログラムをコンピュータ読み取り可能に格納したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ記述言語で記述された印刷データを解釈し、この解釈に基づいて画像データを生成するための画像処理装置、画像処理方法、プログラムおよび記憶媒体に関する。
【背景技術】
【０００２】
一般に、画像形成装置においては、入力された、PostScriptやPDFなどのＰＤＬ（ページ記述言語）で記述された印刷データを解釈し、この解釈に基づいて各ページの画像データを生成するための画像処理装置が設けられている。ここで、印刷データは、複数種のオブジェクト（描画オブジェクト）の集合として構成することができ、そのオブジェクトとしては、図形、テキスト、その他の画像などがある。また、印刷データに基づいて生成される画像データは、１ページのラスタ画像、または圧縮形式の画像などである。この画像データは、必要に応じてページ合成や回転などの画像処理が施された後、プリンタエンジンに送出される。プリンタエンジンは、画像データに基づいて画像を用紙上に形成する。
【０００３】
画像処理装置における印刷データの解釈には、一般に多くの演算が必要であり、この演算量は、通常、印刷データが複雑になるほど大きくなる。
【０００４】
印刷処理の高速化を図るためには，画像形成までの時間をできる限り短縮する必要がある。画像形成に掛かる時間を削減するためには、必要な画像形成処理を並列化する方法が考えられる。画像形成処理の並列化としては、例えば、複数ページの画像データを並列に処理する方法、画像処理装置により生成されたラスタ画像をタイル分割して処理する方法などがある。しかし、これらの方法を用いても、処理負荷が重い画像形成処理を高速化することは難しい。
【０００５】
このため、印刷処理の高速化手法として、線または短冊状に描画対象を分割し、分割された各領域に対して並列処理を行うもの（例えば特許文献１を参照）、描画対象となる二次元領域を複数のブロックに分割するもの（例えば特許文献２を参照）などが提案されている。
【特許文献１】特開平９−１６７２４２号公報
【特許文献２】特開平４−１７０６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＰＤＬで記述された描画情報を均等なブロック単位の描画情報に分割するのみでは、各ブロックに含まれるオブジェクト数の偏りによって、各ブロックの描画処理に要する演算量にばらつきが生じる。このような演算量のばらつきは、画像形成装置によるブロック単位のラスタ画像出力に対してラスタ画像処理を行う際のレイテンシのばらつきを生じさせる。そして、レイテンシが大きいブロックにより印刷処理などのライン単位の処理を行う場合、そのスループットが制限されることがある。また、演算量が多いブロックに対して最適化されたハードウェアリソースを実装すれば、レイテンシが大きくなることを抑制することは可能であるが、これには、余分なコストが掛かる。
【０００７】
本発明の目的は、バンド単位の描画処理においてボトルネックとなる演算量が多いブロックの描画処理時間を短縮化し、ブロック毎のスループットを平滑化することによって、後段のバンド処理におけるレイテンシの短縮化を図ることができる画像処理装置、画像処理方法、プログラムおよび記憶媒体を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、上記目的を達成するため、複数の描画処理手段を備える画像処理装置であって、印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割手段と、所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当て手段と、前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定手段と、前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当て手段とを有することを特徴とする画像処理装置を提供する。
【０００９】
本発明は、上記目的を達成するため、複数の描画処理手段を備える画像処理装置の画像処理方法であって、印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割工程と、所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当て工程と、前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定工程と、前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当て工程とを有することを特徴とする画像処理方法を提供する。
【００１０】
本発明は、上記目的を達成するため、複数の描画処理手段を備える画像処理装置により実行されるプログラムであって、印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割モジュールと、所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当てモジュールと、前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定モジュールと、前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当てモジュールとを有することを特徴とするプログラムを提供する。
【００１１】
本発明は、上記目的を達成するため、上記プログラムをコンピュータ読み取り可能に格納したことを特徴とする記憶媒体を提供する。
【発明の効果】
【００１２】
本発明によれば、バンド単位の描画処理においてボトルネックとなる演算量が多いブロックの描画処理時間を短縮化し、ブロック毎のスループットを平滑化することによって、後段のバンド処理におけるレイテンシの短縮化を図ることができる。これにより、画像処理装置全体の応答時間の短縮化を図ることができる。また、並行処理を行うための回路規模を増大させることなく、バンド単位の描画時間を短縮することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１４】
図１は本発明の一実施の形態に係る画像処理装置の構成を示すブロック図である。
【００１５】
画像処理装置は、レーザビームプリンタなどの画像形成装置に組み込まれ、例えばPostScriptやPDなどのＰＤＬで記述されたページ単位の印刷データを入力とし、この入力された印刷データに基づいて画像データを生成する。この生成された画像データは、プリンタエンジン（図示せず）に送出される。
【００１６】
画像処理装置は、図１に示すように、ブロック分割部１０１と、複数の画像処理プロセッサ１０２，１０３，１０４と、描画オブジェクト情報やページ画像データなどが書き込まれるメモリ１０５と、ＣＰＵ１０６とを備える。
【００１７】
ブロック分割部１０１は、入力されたページ単位の印刷データをＰＤＬの規約に従って解釈し、印刷データが規定する１ページの描画対象領域を、複数のブロックに分割する機能を有する。ここでは、ブロックとは、個別に描画処理を行うことが可能な矩形領域からなり、分割されるブロックの数は、予め設定されている数である。ブロック分割部１０１は、分割されたブロックの描画を命令するための描画命令を抽出し、各ブロックの描画命令（ブロックの描画処理）をジョブとして対応する画像処理プロセッサ１０２，１０３，１０４に割り当てる。この割り当ては、所定数のブロックを含むバンドを単位として行われる。そして、バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かの判定が行われ、複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックが複数のサブブロックに分割され、該分割された複数のサブブロックがそれぞれ対応する画像処理プロセッサ１０２，１０３，１０４に割り当てられる。
【００１８】
各画像処理プロセッサ１０２，１０３，１０４は、割り当てられたブロックの描画処理を実行し、ラスタ画像データを生成する。画像処理プロセッサ１０２，１０３，１０４で生成されたラスタ画像データは、メモリ１０５に格納される。また、上記ラスタ画像データは、そのまま、後段の画像処理装置や出力装置、表示装置などに転送される場合もある。
【００１９】
次に、ブロック分割部１０１に入力される印刷データについて図２および図３を参照しながら説明する。図２は図１のブロック分割部１０１に入力されるPostScirpt言語で記述された印刷データの一例を示す図、図３は図２の印刷データによって描画されるデータを示す図である。
【００２０】
本画像処理装置のブロック分割部１０１には、例えば図２に示すような、PostScirpt言語で記述されたページ単位の印刷データが入力される。この印刷データは、複数の描画命令を含み、例えば円オブジェクトの描画コマンド２２０、三角オブジェクトの描画コマンド２２１、曲線オブジェクトの描画コマンド２２２、直線オブジェクトの描画コマンド２２３、直線オブジェクトの描画コマンド２２４は、それぞれ、図３に示す円オブジェクト３２１、三角形オブジェクト３２２、曲線オブジェクト３２３、直線オブジェクト３２４、直線オブジェクト３２５を描画するものである。円オブジェクトの描画コマンド２２０は、円オブジェクトの形状を定義するコマンド２１０、円オブジェクトの色を定義するコマンド２１１、および円オブジェクトを塗りつぶすコマンド２１２から構成される。三角オブジェクトの描画コマンド２２１は、三角オブジェクトの形状を定義するコマンド２１３、三角オブジェクトの色を定義するコマンド２１４および三角オブジェクトの塗りつぶすコマンド２１５から構成される。曲線オブジェクトの描画コマンド２２２は、曲線オブジェクトの形状を定義するコマンド２１７から構成され、直線オブジェクトの描画コマンド２２３は、直線オブジェクトの形状を定義するコマンド２１８から構成される。直線オブジェクトの描画コマンド２２４は、直線オブジェクトの形状を定義するコマンド２１９から構成される。また、コマンド２３０は、１ページとして出力することを指示するコマンドである。
【００２１】
次に、本画像処理装置の描画処理について図４および図５を参照しながら説明する。図４および図５は図１の画像処理装置による描画処理の手順を示すフローチャートである。ここで、図４および図５の描画処理の手順は、ＣＰＵ１０６の制御下においてブロック分割部１０１により実行されるものである。
【００２２】
本画像処理装置においては、図４に示すように、ブロック分割部１０１が、まず、例えば図２に示すようなPostScript言語で記述された印刷データを読み込み（ステップＳ４０１）、入力されたページ単位の印刷データを矩形状の複数のブロックに分割する（ステップＳ４０２）。この印刷データの分割においては、例えば図３に示すように、描画対象領域３００が各ブロック３０７，３０８，３０９，…に分割され、各ブロック３０７，３０８，３０９，…に対しては、それぞれ独立して描画処理を行うことが可能である。
【００２３】
次いで、ブロック分割部１０１は、各画像処理プロセッサ１０２，１０３，１０４の実行状況を確認し（ステップＳ４０３）、この確認結果に基づいてアイドル状態の画像処理プロセッサがあるか否かを判定する（ステップＳ４０４）。最初は、各画像処理プロセッサ１０２，１０３，１０４には、描画対象となるブロックが割り当てられていないため、画像処理プロセッサ１０２，１０３，１０４の全てがアイドル状態にある。
【００２４】
上記ステップＳ４０４においてアイドル状態の画像処理プロセッサがあると判定されると、ＣＰＵ１０６は、バンド内の終端ブロックが画像処理プロセッサ１０２，１０３，１０４いずれかに割り当てられてその描画処理が実行中または終了しているか否かを判定する（ステップＳ４０５）。ここで、例えば処理対象としてのバンドが、ブロック３０７，３０８，３０９，３３１で構成されている場合（図３を参照）、このバンド内の終端ブロックはブロック３３１である。
【００２５】
上記ステップＳ４０５においてバンド内の終端ブロックが画像処理プロセッサ１０２，１０３，１０４いずれかに割り当てられてその描画処理が実行中または終了していないと判定されると、ブロック分割部１０１は、処理対象のバンド内の次のブロックを選択する（ステップＳ４０６）。ここでは、この選択方法としては、Ｘ方向にソートされた順にブロックを選択する方法などが用いられる。但し、ブロック間に依存関係は無いので、どのような順番でブロックを選択してもよく、ブロックの選択方法として他の方法を用いることも可能である。
【００２６】
次いで、ブロック分割部１０１は、選択したブロックの描画処理をアイドル状態にある画像処理プロセッサに割り当てる（ステップＳ４０７）。この画像処理プロセッサは、割り当てられたブロックの描画処理を実行する。そして、ブロック分割部１０１は、ステップＳ４０３に戻り、再度、画像処理プロセッサの実行状況を確認する。以降、同様の処理が繰り返され、アイドル状態にある画像処理プロセッサがあると、この画像処理プロセッサに選択されたブロックが割り当てられ、画像処理プロセッサは、割り当てられたブロックの描画処理を実行する。最終的には、バンド内の終端ブロックが選択され、画像処理プロセッサ１０２，１０３，１０４のうち、いずれかのアイドル状態へ移行した画像処理プロセッサに対して割り当てられ、当該画像処理プロセッサにより終端ブロックの描画処理が実行されることになる。
【００２７】
次いで、上記ステップＳ４０４において画像処理プロセッサ１０２，１０３，１０４のうち、いずれか１つの画像処理プロセッサがアイドル状態にあると判定されると、上記ステップＳ４０５においてバンド内の終端ブロックが画像処理プロセッサに割り当てられているか否か（終端ブロックの描画処理が実行中または終了しているか否か）の判定が行われる。ここで、バンド内の終端ブロックが画像処理プロセッサに割り当てられていると判定されると、ブロック分割部１０１は、図５に示すように、描画処理実行中の画像処理プロセッサ（アイドル状態の画像処理プロセッサを除く）の描画状況を確認し、描画処理実行中の画像処理プロセッサから描画処理中のブロックに対して残されている描画処理量を取得する（ステップＳ４１０）。この残されている描画処理量は、ブロック未描画残量と呼ぶこととする。
【００２８】
次いで、ブロック分割部１０１は、描画処理実行中の画像処理プロセッサから取得されたブロック未描画残量に基づいて、それぞれ予め設定されている閾値以上のブロック未描画残量を有する描画処理中のブロックがあるか否かを判定する（ステップＳ４１１）。閾値以上のブロック未描画残量を有する描画処理中のブロックがある場合、ブロック分割部１０１は、閾値以上のブロック未描画残量を有する描画処理中のブロックを複数のサブブロックに分割する（ステップＳ４１２）。ここで、閾値以上のブロック未描画残量を有する描画処理中のブロックとして、複数のブロックがある場合は、複数のブロックのうち、最大のブロック未描画残量を有する描画処理中の１つのブロックが、閾値以上のブロック未描画残量を有する描画処理中のブロックとして特定され、この特定されたブロックが複数のサブブロックに分割されるものとする。閾値以上のブロック未描画残量のブロックを特定する方法は、上記の方法に限定されることはない。また、ブロックの分割方法としては、様々な方法が考えられる。例えば、未描画部分を等分に分割する方法などが考えられる。また、分割数は、アイドル状態の画像処理プロセッサの数に応じて決定される。アイドル状態の画像処理プロセッサの数が１つであれば、分割数は、２である。また、上記閾値は、ブロックを複数のサブブロックに分割した際に、バンド単位の描画処理時間が短縮される値とすることが望ましい。
【００２９】
次いで、ブロック分割部１０１は、分割された各サブブロックの範囲を明示するために、描画処理対象のブロックの範囲情報を更新し（ステップＳ４１３）、更新されたブロック範囲情報に基づいて各サブブロックを対応する画像処理プロセッサに割り当てる（ステップＳ４１４）。ここでは、分割された複数のサブブロックのうち、１つのサブブロックの描画処理は、サブブロックへの分割前のブロックの描画処理が割り当てられている画像処理プロセッサに割り当てられ、他のブロックの描画処理は、アイドル状態にある画像処理プロセッサに割り当てられる。サブブロックが割り当てられた画像処理プロセッサのそれぞれは、割り当てられたサブブロックの描画処理を実行する。そして、ＣＰＵ１０６は、上記ステップＳ４０３に戻る。
【００３０】
上記ステップＳ４１１において閾値以上のブロック未描画残量を有する描画処理中のブロックがないと判定された場合、ブロック分割部１０１は、処理対象のバンドが最終段のものであるか否かを判定する（ステップＳ４２０）。ここで、処理対象のバンドが最終段のものでなければ、ブロック分割部１０１は、処理対象のバンドを次のバンドへ移行させるためのバンドのインクリメントを行い（ステップＳ４２１）、次のバンド内のブロックをアイドル状態にある画像処理プロセッサに割り当てる（ステップＳ４２２）。これにより、ブロックが割り当てられた画像処理プロセッサは、当該ブロックの描画処理を実行する。そして、ブロック分割部１０１は、上記ステップＳ４０３に戻る。すなわち、ブロック３０７，３０８，３０９，３３１で構成されているバンドの終端ブロック３３１を割り当てた後は、ステップＳ４０３に戻って、次のバンドの割り当てを行う。
【００３１】
これに対し、上記ステップＳ４２０において処理対象のバンドが最終段のものであると判定された場合、ブロック分割部１０１は、各画像処理プロセッサ１０２，１０３，１０４による、最終段のバンド内の全てのブロックに対する描画処理を終了するまで待機した後（ステップＳ４３１）、本処理を終了する。
【００３２】
次に、図２の印刷データを描画する場合の描画処理を図６および図７を参照しながら説明する。図６は図５のステップＳ４１２で、描画実行中のブロックをサブブロックに分割した例を示す図、図７は描画処理における各画像処理プロセッサ１０２，１０３，１０４の実行状況の一例を模式的に示す図である。
【００３３】
ブロック分割部１０１により、図２に示すようなPostScript言語で記述された印刷データが読み込まれると（ステップＳ４０１）、この１ページの印刷データは、矩形状の複数のブロックに分割される（ステップＳ４０２）。この印刷データの分割においては、例えば図３に示すように、描画対象領域３００が各ブロック３０７，３０８，３０９，…に分割される。
【００３４】
最初は、各画像処理プロセッサ１０２，１０３，１０４には、描画対象となるブロックが割り当てられていないため、画像処理プロセッサ１０２，１０３，１０４の全てがアイドル状態にある。すなわち、各画像処理プロセッサ１０２，１０３，１０４の実行状況は、図７に示す状態６００のようにすべてアイドル状態である。
【００３５】
ここで、アイドル状態の画像処理プロセッサがあると（ステップＳ４０４）、終端ブロックが画像処理プロセッサに割り当てられているか否かの判定が行われる（ステップＳ４０５）。処理対象としてのバンドが、例えば図３に示すように、ブロック３０７，３０８，３０９，３３１で構成されている場合、このバンド内の終端ブロックはブロック３３１であり、この時点では、この終端ブロックであるブロック３３１は、まだいずれの画像処理プロセッサにも割り当てられていないとする。
【００３６】
バンド内の終端ブロックが画像処理プロセッサに割り当てられていない場合、処理対象のバンド内の次のブロックが選択される（ステップＳ４０６）。ここでは、Ｘ方向にソートされた順にブロックが選択され、図３に示す例の場合においては、ブロック３０７が次のブロックとして選択される。
【００３７】
次いで、選択されたブロックの描画処理がアイドル状態にある画像処理プロセッサに割り当てられる（ステップＳ４０７）。例えば次のブロックとして選択されたブロック３０７が画像処理プロセッサ１０２に割り当てられると、画像処理プロセッサの全体の実行状況は、図７に示す状態６０１に遷移する。そして、再度、画像処理プロセッサの実行状況の確認が行われる（ステップＳ４０３）。ここでは、画像処理プロセッサ１０２がブロック３０７を描画処理中のため、画像処理プロセッサ１０２は実行状態、画像処理プロセッサ１０３，１０４は、アイドル状態にある。
【００３８】
以降、同様の処理が繰り返され、図３に示す例の場合、次のブロックとしてブロック３０８が選択され、選択されたブロック３０８は、画像処理プロセッサ１０３に割り当てられる。これにより、画像処理プロセッサの実行状況は、図７に示す状態６０２に遷移する。さらに、次のブロックとしてブロック３０９が選択され、このブロック３０９は、画像処理プロセッサ１０４に割り当てられる。そして、画像処理プロセッサの実行状況は、図７に示す状態６０３に遷移する。
【００３９】
このようにして、画像処理プロセッサ１０２，１０３，１０４の全てが描画処理を実行する状態になると、各画像処理プロセッサ１０２，１０３，１０４の実行状況の確認がアイドル状態の画像処理プロセッサが確認されるまで繰り返される（ステップＳ４０３〜ステップＳ４０４）。そして、アイドル状態の画像処理プロセッサが確認される毎に、当該画像処理プロセッサに次のブロックが割り当てられる。
【００４０】
画像処理プロセッサ１０２，１０３，１０４のうち、画像処理プロセッサ１０２によるブロック３０７の描画処理が終了したとすると、画像処理プロセッサ１０２はアイドル状態となり、画像処理プロセッサの全体の実行状況は、図７に示す状態６０４へ遷移する。そして、描画処理が終了していないバンド内の終端ブロック３３１が選択され、このブロック３３１が画像処理プロセッサ１０２に割り当てられる。これにより、画像処理プロセッサの実行状況は、図７に示す状態６０５に遷移する。そして、再度、アイドル状態の画像処理プロセッサが確認されるまで、各画像処理プロセッサ１０２，１０３，１０４の実行状況の確認が繰り返される。
【００４１】
ここで、図３に示すブロック３０８は、２つの直線、１つの円の計３つのオブジェクトを含むため、ブロック３０８に対する描画処理は、他のブロック３０７，３０９，３３１に対する描画処理より多くの時間を要するものとし、１つのオブジェクトも含まないブロック３３１の描画処理は、他のブロック３０８，３０９の描画処理より先に終了するとする。この場合、画像処理プロセッサ１０２によるブロック３３１の描画処理が他の画像処理プロセッサ１０３，１０４による描画処理より先に終了し、画像処理プロセッサの実行状況は、図７に示す状態６０６となる。
【００４２】
このようにして、画像処理プロセッサ１０２により、バンド内の終端ブロック３３１の描画処理が終了していると（ステップＳ４０５）、各画像処理プロセッサ１０２，１０３，１０４の描画状況の確認が行われる（ステップＳ４１０）。ここでは、画像処理プロセッサ１０２の描画処理は終了しているので、各画像処理プロセッサ１０３，１０４が描画処理中のブロックに対するブロック未描画残量が取得される。ここで、画像処理プロセッサ１０３は、ブロック３０８を描画処理しており、このブロック３０８に対するブロック未描画残量は、７０％とする。画像処理プロセッサ１０４は、ブロック３０９を描画処理しており、このブロック３０９に対するブロック未描画残量は、２０％とする。
【００４３】
次いで、画像処理プロセッサ１０３，１０４のブロック未描画残量に基づいて、それぞれ予め設定されている閾値以上のブロック未描画残量を有する描画処理中のブロックがあるか否かの判定が行われる（ステップＳ４１１）。ここでは、閾値が６０％とされ、閾値以上のブロック未描画残量のブロックとしてブロック３０８が特定されることになる。よって、画像処理プロセッサ１０３で描画処理中のブロック３０８は、図６に示すように、２つのサブブロック５０１，５０２に分割される（ステップＳ４１２）。本例においては、ブロック３０８の未描画部分が等分に分割され、Ｙ軸方向の座標が大きいものがサブブロック５０１、小さいものがサブブロック５０２とされている。
【００４４】
そして、画像処理プロセッサ１０３により描画処理中のブロック３０８が２つのサブブロック５０１，５０２に分割されたので、処理対象のブロックの範囲が更新され、その旨が画像処理プロセッサ１０３に通知される（ステップＳ４１３）。この通知を受けた画像処理プロセッサ１０３は、更新されたブロックの終端情報により示される領域まで描画処理を行う。すなわち、画像処理プロセッサ１０３は、サブブロック５０１の描画処理を実行する。これに対し、上記分割されたサブブロック５０２はアイドル状態にある画像処理プロセッサ１０２に割り当てられる（ステップＳ４１４）。これにより、画像処理プロセッサの実行状況は、図７に示す状態６０７に移行する。
【００４５】
次いで、再び、画像処理プロセッサの実行状況が確認される（ステップＳ４０３）。ここでは、画像処理プロセッサ１０４がブロック３０９の描画処理を終了し、アイドル状態にあるとする。よって、アイドル状態の画像処理プロセッサとして画像処理プロセッサ１０４が確認されるので、バンド内の終端ブロックが画像処理プロセッサに割り当てられてその描画処理が実行中または終了しているか否かの判定が行われる（ステップＳ４０５）。ここでは、バンド内の終端ブロック３３１の描画処理は既に完了されており、画像処理プロセッサ１０４がアイドル状態にあるので、上記分割されたサブブロック５０１，５０２の描画処理をそれぞれ実行中である画像処理プロセッサ１０２，１０３での描画処理中のブロックに対するブロック未描画残量が確認される（ステップＳ４１０）。ここで、画像処理プロセッサ１０２，１０３によるサブブロック５０１，５０２のブロック未描画残量は、それぞれ、１０％，５％であるとすると、閾値以上のブロック未描画残量のブロックはないと判定され（ステップＳ４１１）、処理対象であるバンドが最終段であるか否かの判定が行われる（ステップＳ４２０）。ここで、描画処理が行われたブロック３０７，３０８，３０９，３３１を含むバンドは、処理対象の描画対象領域３００における最終段のバンドではないので、現在の処理対象のバンドに対してＹ軸方向に隣接するバンドが次の処理対象のバンドとして選択される（ステップＳ４２１）。そして、次のバンド内のブロック３１０が画像処理プロセッサ１０４に割り当てられ（ステップＳ４２２）、ブロック３１０の描画処理が実行される。ここでの画像処理プロセッサ１０２，１０３，１０４の実行状況は、図７に示す状態６０９となる。
【００４６】
このようにして、バンド単位での描画処理が繰り返し行われ、処理対象のバンドが描画対象領域３００の最終段のバンドである場合（ステップＳ４２０）、最終段のバンド内の各ブロック３４０，３４１，３４２，３４３に対する描画処理の終了が待たれる（ステップＳ４３１）。
【００４７】
この最終段のバンドの描画処理においては、バンド内の終端ブロック３４３の描画中または描画完了している場合は、他のブロックのブロック未描画残量が閾値以下であるとする。よって、サブブロックへの分割は行われることなく、最終段のバンド内のブロックの描画処理が行われるものとする。
【００４８】
以上より、本実施の形態によれば、バンド単位での描画処理においてボトルネックとなる演算量が多いブロックを複数のサブブロックに分割し、対応するサブブロックの描画処理をアイドル状態の画像処理プロセッサに割り当てることによって、ブロック毎のスループットが平滑化され、後段のバンド処理におけるレイテンシの短縮化を図ることができる。これにより、画像処理装置全体の応答時間の短縮化を図ることができる。また、並行処理を行うための回路規模を増大させることなく、バンド単位の描画時間を短縮することができる。
【００４９】
本実施の形態においては、図４および図５に示される処理がブロック分割部１０１により実行される場合について説明したが、ブロック分割部１０１の処理可能な範囲は、これに限定されることはなく、例えば、ブロック分割部１０１は、ブロック分割のみを行い、分割されたブロックの割り当てなどは、ＣＰＵ１０６により行われるようにすることも可能である。また、ブロック分割部１０１に対応するモジュールを、ＣＰＵ１０６がメモリ１０５に格納されているプログラムを実行することによって構成することもできる。この場合、図４および図５に示す処理の手順は、ＣＰＵ１０６がメモリ１０５内のプログラムに従って実行されることになる。
【００５０】
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることはいうまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５１】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードを、ネットワークを介してダウンロードしてもよい。
【００５２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００５３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００５４】
【図１】本発明の一実施の形態に係る画像処理装置の構成を示すブロック図である。
【図２】図１のブロック分割部１０１に入力されるPostScirpt言語で記述された印刷データの一例を示す図である。
【図３】図２の印刷データによって描画されるデータを示す図である。
【図４】図１の画像処理装置による描画処理の手順を示すフローチャートである。
【図５】図１の画像処理装置による描画処理の手順を示すフローチャートである。
【図６】図５のステップＳ４１２で、描画実行中のブロックをサブブロックに分割した例を示す図である。
【図７】描画処理における各画像処理プロセッサ１０２，１０３，１０４の実行状況の一例を模式的に示す図である。
【符号の説明】
【００５５】
１０１  ブロック分割部
１０２，１０３，１０４  画像処理プロセッサ
１０５  メモリ
１０６  ＣＰＵ
３００  描画領域
３０7〜３１０，３３１，３４０〜３４３  ブロック
５０１，５０２  サブブロック
【図１】
2006092125.tif 000003
【図２】
2006092125.tif 000004
【図３】
2006092125.tif 000005
【図４】
2006092125.tif 000006
【図５】
2006092125.tif 000007
【図６】
2006092125.tif 000008
【図７】
2006092125.tif 000009