(57)【要約】【課題】ＰＤＬ（ページ記述言語）を並列処理に適したブロックに分割し、関連付けられた描画オブジェクト数の異なる個々のブロックをより均等な時間で描画することができる画像形成装置を提供する。【解決手段】画像形成装置は、複数の画像処理プロセッサ（１０２〜１０４）と、ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割部（１０１）と、アクセス速度の異なる２つ以上のメモリ（１０６，１０７）を有し、前記ページ記述言語又は前記画像処理プロセッサにより処理される中間データを格納する格納部（１０６，１０７）と、画像処理プロセッサからメモリへのアクセスを調停するメモリアクセス調停部（１０８）とを備え、メモリアクセス調停部は、格納部へのアクセス頻度が高い画像処理プロセッサを優先的にアクセス速度の速いメモリ（１０６）に割り当てる。【選択図】図１
2007237510.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語の入力データに対して並列に描画処理が実行可能な複数の画像処理手段と、
ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割手段と、
アクセス速度の異なる２つ以上のメモリを有し、前記ページ記述言語又は前記画像処理手段により処理される中間データを格納する格納手段と、
前記画像処理手段から前記格納手段へのアクセスを調停するメモリアクセス調停手段とを備え、
前記メモリアクセス調停手段は、前記格納手段へのアクセス頻度が高い画像処理手段を優先的にアクセス速度の速いメモリに割り当てることを特徴とする画像形成装置。
【請求項２】
前記ブロック分割手段は、描画オブジェクトごとに、これを包含する概形を生成する概形生成手段を備え、
前記メモリアクセス調停手段は、ブロック毎に含まれる、前記概形生成手段により生成された概形の数に基づいて、前記画像処理手段のメモリへの割り当てを決定することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記ブロック分割手段は、
描画オブジェクト数の最も多いブロックの描画命令を選択する選択手段と、
前記複数の画像処理手段の実行状況を確認する確認手段と、
アイドル状態の画像処理手段があるか否かを判別するアイドル状態判別手段と、
前記アクセス速度の速いメモリの使用状況を確認するメモリ使用状況確認手段と、
前記アクセス速度の速いメモリに描画処理に必要な作業領域を確保できるか否かを判別する作業領域判別手段とを備え、
前記メモリアクセス調停手段は、
前記作業領域判別手段で前記アクセス速度の速いメモリに描画処理に必要な作業領域を確保できると判別される場合に、前記画像処理手段をアクセス速度の異なる２つ以上のメモリのうちアクセス速度の速いメモリに割り当て、
前記作業領域判別手段で前記アクセス速度の速いメモリに描画処理に必要な作業領域を確保できないと判別される場合に、前記画像処理手段をアクセス速度の異なる２つ以上のメモリのうちアクセス速度の遅いメモリに割り当てることを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記ブロック分割手段は、前記選択手段で選択したブロックの描画命令を、前記アクセス速度の速いメモリに割り当てられた画像処理手段又は前記アクセス速度の遅いメモリに割り当てられた画像処理手段に割り当てることを特徴とする請求項３記載の画像形成装置。
【請求項５】
前記ブロックの形状は、格子状であることを特徴とする請求項１乃至４のいずれか１項記載の画像形成装置。
【請求項６】
ページ記述言語の入力データに対して並列に描画処理が実行可能な複数の画像処理手段と、アクセス速度の異なる２つ以上のメモリを有し、前記ページ記述言語又は前記画像処理手段により処理される中間データを格納する格納手段とを備える画像形成装置で実行される画像形成方法であって、
ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割工程と、
前記画像処理手段から前記格納手段へのアクセスを調停するメモリアクセス調停工程とを備え、
前記メモリアクセス調停工程は、前記格納手段へのアクセス頻度が高い画像処理手段を優先的にアクセス速度の速いメモリに割り当てることを特徴とする画像形成装置で実行される画像形成方法。
【請求項７】
ページ記述言語の入力データに対して並列に描画処理が実行可能な複数の画像処理手段と、アクセス速度の異なる２つ以上のメモリを有し、前記ページ記述言語又は前記画像処理手段により処理される中間データを格納する格納手段とを備える画像形成装置で実行される画像形成プログラムであって、
ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割モジュールと、
前記画像処理手段から前記格納手段へのアクセスを調停するメモリアクセス調停モジュールとを備え、
前記メモリアクセス調停モジュールは、前記格納手段へのアクセス頻度が高い画像処理手段を優先的にアクセス速度の速いメモリに割り当てることを特徴とする画像形成装置で実行される画像形成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ記述言語（ＰＤＬ）で記述された印刷データを解釈し、画像データを生成する画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラムに関する。
【背景技術】
【０００２】
画像形成装置に対し、ＰｏｓｔＳｃｒｉｐｔやＰＤＦ等のページ記述言語（ＰＤＬ）で記述された描画データが入力されると、その描画データが解釈されて各ページの画像データが形成される。入力される描画データは、複数種類のオブジェクト（描画オブジェクト）の集合として構成され、そのオブジェクトとしては図形、テキスト、その他の画像がある。出力される画像データは、１ページのラスタ画像又は圧縮形式の画像等である。画像形成装置が出力する画像は、必要に応じて一旦記憶装置に蓄積されたり、ページ合成や回転等の画像処理が実行された後、プリンタエンジンに送出されて、印刷される。
【０００３】
画像形成にかかる時間を削減する手法として、必要な画像形成過程を並列化する方法が考えられている。特許文献１では、線又は短冊状に分割した描画領域に対して並列処理を行う描画処理装置が開示され、特許文献２では描画対象となる二次元領域を複数のブロックに分割する画像処理装置が開示されている。
【０００４】
図９は、従来の画像形成装置の概略構成を示すブロック図である。
【０００５】
従来の画像形成装置は、入力処理部としてのブロック分割部９０１、１つ以上の画像処理プロセッサ９０２，９０３，９０４、描画オブジェクト情報やページ画像データ等が書き込まれるメモリ９０５、及びＣＰＵ９０６によって構成される。
【０００６】
ブロック分割部９０１はＰＤＬを受け取り、そのデータをＰＤＬの規約に沿って解釈する機能と、描画オブジェクト毎に描画命令（コマンド群）を切り出す機能と、ＰＤＬの描画領域を格子状の領域（以下ブロック）に分割する機能とを有する。
【０００７】
一般に、ブロック分割部９０１に入力されるＰＤＬは、直線や曲線によって囲まれた閉領域の塗り潰し、直線や曲線そのもの、文字など描画オブジェクトの描画操作に相当する。
【０００８】
ブロック分割部９０１は、このような描画オブジェクトが存在する領域を、ＰＤＬの描画命令から抽出した座標情報によって定義する。描画時間を短縮するため、円や曲線等、交点座標とブロック境界の交点演算が複雑になるものに対しては、まず、印刷データから抽出した座標情報に基づいて描画オブジェクトの存在する可能性のある領域（以下、概形）を求める。そして、概形が重複しているかいないかによって交点演算の実行を判断する。
【０００９】
例えば、三角形の描画オブジェクトは、頂点座標の最大および最小のＸおよびＹ値に囲まれた矩形領域内に必ず存在する。また、ベジエ曲線では、４点の制御点の座標が得られれば、ベジエ曲線の存在する領域は制御点に囲まれた領域内に限定できる。
【００１０】
以上のように、ある領域に描画オブジェクト全体が含まれる領域を概形として求めている。概形は、ある描画オブジェクトがその描画オブジェクトの概形からはみ出ないという条件を満たす他の方法によって決定してもよい。
【００１１】
以下、概形は描画オブジェクト全体を含む矩形と定義する。
【００１２】
ブロック分割部９０１の動作を説明する。概形を矩形に限定した場合、単純な演算で描画オブジェクトの概形を含むブロックを判定可能である。ブロック分割部９０１では、このような描画オブジェクトの概形情報を用いて、他の描画オブジェクトとの交点演算の必要性を判定する。概形が重複しない場合、交点演算が不必要と判断され、描画オブジェクトの描画処理は他の描画オブジェクトと依存関係がなく独立して実行できる。このようにして、ブロック分割部９０１では、概形情報から独立に描画処理が行える描画オブジェクトの描画命令を、入力された描画命令から分割し、画像処理プロセッサ９０２〜９０４に適宜割り当てる。
【００１３】
画像処理プロセッサ９０２〜９０４は受け取った描画命令を元に描画処理を行う。描画処理時に必要な記憶領域は、画像処理プロセッサごとに割り当てられたメモリ９０５の領域を用いる。また、画像処理プロセッサ９０２〜９０４によって形成された画像データはメモリ９０５に格納される。この他、形成された画像データをそのまま後段の画像処理装置や出力装置、表示装置等に転送する場合もある。
【特許文献１】特開平９−１６７２４２号公報
【特許文献２】特開平４−１７０６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、ＰＤＬで記述された描画情報を均等なブロック単位の描画情報に分割しただけでは、各ブロックに含まれるオブジェクト数の偏りによって、各ブロックの描画処理に要するメモリアクセスの回数にばらつきが生じていた。
【００１５】
このようなメモリアクセス回数のばらつきにより、画像形成装置によるブロック単位の出力に対するラスタ画像処理を行う際にレイテンシ（遅延）が発生する問題が生じていた。また、印刷処理などライン単位の処理を行う場合に、スループット（単位時間あたりの処理能力）がメモリアクセス回数の多いブロックによって制限されてしまう問題が生じていた。
【００１６】
本発明の目的は、ＰＤＬ（ページ記述言語）を並列処理に適したブロックに分割し、関連付けられた描画オブジェクト数の異なる個々のブロックをより均等な時間で描画することができる画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラムを提供することにある。
【課題を解決するための手段】
【００１７】
上記目的を達成するため、請求項１の画像形成装置は、ページ記述言語の入力データに対して並列に描画処理が実行可能な複数の画像処理手段と、ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割手段と、アクセス速度の異なる２つ以上のメモリを有し、前記ページ記述言語又は前記画像処理手段により処理される中間データを格納する格納手段と、前記画像処理手段から前記格納手段へのアクセスを調停するメモリアクセス調停手段とを備え、前記メモリアクセス調停手段は、前記格納手段へのアクセス頻度が高い画像処理手段を優先的にアクセス速度の速いメモリに割り当てることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、ＰＤＬを並列化に適したブロックに分割し、関連付けられた描画オブジェクト数の異なる個々のブロックをより均等な時間で描画することが可能となる。また、メモリ装置を拡張することなくバンド単位の描画時間を平滑化することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明の実施の形態を説明する。
【００２０】
図１は、本発明の実施の形態に係る画像形成装置の構成を示すブロック図である。
【００２１】
この画像形成装置は、例えば、印刷データとしてＰｏｓｔＳｃｒｉｐｔやＰＤＦ等のＰＤＬを入力とし、該ＰＤＬに基づいて画像データを形成する。
【００２２】
図１の画像形成装置は、入力処理部としてのブロック分割部１０１と、画像処理部であるところの画像処理プロセッサ１０２，１０３，１０４と、ＣＰＵ１０５と、描画オブジェクト情報やページ画像データ等が書き込まれる高速メモリ部１０６及び低速メモリ部１０７と、画像処理プロセッサ１０２，１０３，１０４から高速メモリ部１０６及び低速メモリ部１０７へのアクセスを制御するメモリアクセス調停部１０８とによって構成されている。
【００２３】
画像処理プロセッサ１０２，１０３，１０４が処理中の中間データ、及び印刷データを格納するメモリはアクセス速度の異なる高速メモリ部１０６及び低速メモリ部１０７で構成されている。例えばアクセス速度の高速な高速メモリ部１０６はＳＲＡＭ（Static Random Access Memory）、アクセス速度の低速な低速メモリ部１０７はＤＲＡＭ（Dynamic Random Access Memory）などである。
【００２４】
図２は、図１に示したブロック分割部１０１に入力されるＰｏｓｔＳｃｒｉｐｔ言語で記述された印刷データの一例を示す図である。また、図３は、図２の印刷データによって描画される画像データを示す図である。
【００２５】
符号２２０、符号２２１、符号２２２、符号２２３、符号２２４は各描画オブジェクトの描画命令に相当し、それぞれ図３の円オブジェクト３５１、三角形オブジェクト３５２、曲線オブジェクト３５３、直線オブジェクト３５４、直線オブジェクト３５５を描画する。また、図３の個々の描画オブジェクトの外側にある点線の領域が概形となる。
【００２６】
図３の概形３６１，３６２，３６３，３６４，３６５は、それぞれ、円オブジェクト３５１、三角オブジェクト３５２、曲線オブジェクト３５３、直線オブジェクト３５４、直線オブジェクト３５５の概形となる。
【００２７】
図４は画像形成装置の描画処理の手順を示したフローチャートである。ここでは、図３に示した図形が描画されるものとする。
【００２８】
まず、ブロック分割部１０１は描画命令を読み込み、解釈を行う（ステップＳ４０１）。描画命令とは、例えば図２に示したＰｏｓｔＳｃｒｉｐｔ言語で記述された印刷データである。
【００２９】
図２に示したＰｏｓｔＳｃｒｉｐｔの描画コマンドにおいて、描画命令群２２０は中心座標（１２０，２００）で半径２０の円を記述し、色０１０（緑）で円を塗りつぶす描画命令である。同じように描画命令群２２１，２２２， ２２３，２２４はそれぞれ、三角形オブジェクト、ぺジェ曲線オブジェクト、直線オブジェクト、直線オブジェクトを記述する命令である。
【００３０】
ここで、ブロック分割部１０１の描画命令の解釈により得られたオブジェクト情報は、オブジェクトテーブルに登録される。図５にオブジェクトテーブル５００の一例を示す。オブジェクトテーブル５００には、解釈した描画命令を示すポインタ５１１〜５１５に、オブジェクトを識別する識別子５０１〜５０５が付加されている。
【００３１】
ステップＳ４０１の描画命令解釈終了後、ブロック分割部１０１は描画オブジェクトの概形を算出する（ステップＳ４０２）。概形の算出は以下のように行う。
【００３２】
まず、ブロック分割部１０１は、図２の円オブジェクトの描画命令２２０を解釈し、中心座標（１２０，２００）と半径２０の円オブジェクトの取りうるＸおよびＹ座標の範囲を計算し概形を求める。円オブジェクトの概形は図３の矩形領域３６１に相当する。この円のＸ，Ｙの最小値は、（Ｘ，Ｙ）＝（１２０−２０，２００−２０）＝（１００，１８０）、同様に最大値は（Ｘ，Ｙ）＝（１２０＋２０，２００＋２０）＝（１４０，２２０）となる。
【００３３】
次に、ブロック分割部１０１は、三角形オブジェクトの描画命令２２１を解釈し、概形を計算する。最初に、moveto命令によってペン座標を（Ｘ，Ｙ）＝（９０，１４０）に移動させる。ここから、順にlineto命令によって座標（１５０，９０）、（６０，４０）、（９０，１４０）に直線を引き、三角形を描く。このように三角形オブジェクト３５２は直線から構成される図形である。したがって、ブロック分割部部１０１は、描画命令２２０の解釈終了まで、描画オブジェクトの各頂点の最大値、および最小値を単純に更新しつづけることで、オブジェクトを包含する領域を特定することが可能である。ここでは、３つの頂点の座標から、ＸおよびＹの最小値は（Ｘ，Ｙ）＝（６０，４０）、最大値は（Ｘ，Ｙ）＝（１５０，１４０）であることがわかる。求まる三角形オブジェクト３５２の概形は、図３の矩形３６２となる。
【００３４】
次にブロック分割部１０１は、曲線オブジェクト３５３の描画命令２２２を解釈し、概形を計算する。ここでは最初に、ペンの座標を（２０，１０）に移動させ、現在のペン座標と（４０，６０）、（８０，２５）、（７０，１０）の４点で囲まれるベジエ曲線を描く。ベジエ曲線は、各制御点のＸおよびＹの最小値、および最大値から描画オブジェクトを包含する矩形領域を判定可能である。
【００３５】
このベジエ曲線を含む領域は、（Ｘ，Ｙ）＝（２０，１０），（８０，６０）の矩形内である。これは、図３の矩形３６３に示される領域に相当する。このようにして各描画オブジェクトの概形を算出する。
【００３６】
最後にブロック分割部１０１は、直線オブジェクト３５４の描画命令２２３を解釈する。直線オブジェクトはmoveto命令によってペン座標を（Ｘ，Ｙ）＝（７０，２２５）に移動させ、lineto命令によって座標（１１０，２４５）に直線を引く。直線オブジェクトは、始点、終点の座標からＸおよびＹの最小値、最大値が求められる。ＸおよびＹの最小値は（Ｘ，Ｙ）＝（７０、２２５）、最大値は（Ｘ，Ｙ）＝（１１０、２４５）であることがわかる。次に解釈する直線オブジェクト３５５の描画命令２２４も同様の方法で概形を計算する。上記のようにブロック分割部１０１で算出された各オブジェクトの概形情報の一例を図６に示す。図６のリストには、各オブジェクトの識別子６１１〜６１５と、各オブジェクトに対応する概形情報６０１〜６０５とが記録される。
【００３７】
図４に戻り、ブロック分割部１０１は、各描画オブジェクトの概形を算出した後（ステップＳ４０２）、描画領域をブロック状に分割する（ステップＳ４０３）。ここでブロックとは、１ページ内を格子状に分割する各領域である。本実施の形態ではブロックをＸ方向５０、Ｙ方向５０の矩形領域とする。
【００３８】
次いで、ブロック分割部１０１はブロック内に概形が存在するか判定を行い、ブロックと概形の対応情報を取得し、ブロック―オブジェクト対応テーブル７００（図７）を作成する（ステップＳ４０４）。ブロック―オブジェクト対応テーブルは、各ブロックに含まれる概形数７４０とその概形を持つオブジェクトの識別子であるオブジェクト識別子７５０を記録している。
【００３９】
ここで、ブロック分割部１０１によるブロック―オブジェクト対応テーブル７００の作成方法について説明する。図３に示すブロック３４０は（Ｘ，Ｙ）＝（０，０），（５０，５０）の矩形であり、ステップＳ４０２で算出した図６の概形情報を用い矩形内に概形が存在するか判定を行う。ブロック３４０の範囲は（Ｘ，Ｙ）＝（０，０），（５０，５０）なので、概形情報６０３（（Ｘ，Ｙ）＝（２０，１０），（８０，６０））を持った概形が含まれる。ブロック３４０に含まれている概形は１つなので、ブロック３４０の概形数７４０は１にセットされる。さらに、概形情報６０３を参照し、これ含まれる概形に対応するオブジェクト識別子６１３をブロック―オブジェクト対応テーブルのオブジェクト識別子７５０に登録する。
【００４０】
次いで、ブロック分割部１０１はブロック３４１のブロック―オブジェクト対応情報を作成する。図６の概形情報から、（Ｘ，Ｙ）＝（２０，１０），（８０，６０）、（Ｘ，Ｙ）＝（６０，４０），（１５０，１４０）、（Ｘ，Ｙ）＝（９０，１０），（１２０，１５）の領域を持つ概形がブロック３４１の領域（Ｘ，Ｙ）＝（０，５０），（１００，５０）に含まれていると判断される。それぞれの概形のオブジェクト識別子は、１、２、４でありブロック―オブジェクト対応テーブル７００に登録される。ブロックに含まれる概形数は３つなので、概形数は３と記録される。このようにしてすべてのブロックについて含まれる概形の数７４０と、概形と対応するオブジェクト識別子７５０をブロック―オブジェクト対応テーブルに記録する。描画領域すべてのブロックに対して以上の処理を行うと、ブロック―オブジェクト対応テーブル７００が得られる。
【００４１】
次に、ブロック分割部１０１は、前述のように分割したブロック７０１〜７２０の中で描画処理が行われていないブロックが存在するか否かの判定を行う（ステップＳ４１０）。この場合、いずれのブロックも描画処理は行われていない。よってステップ４１１に移る。
【００４２】
ステップ４１１では、ブロック分割部１０１は、バンド内で最も概形数７４０が多いブロックを描画処理を行うブロックとして選択する。バンドとは描画対象を短冊型に分割した領域であり、副走査線方向の座標が等しいブロック群で構成される。この場合、ブロック７０１〜７０４で構成されるバンドが描画対象となり、バンド内で最も概形数が多いブロックの描画処理が描画対象として選択される。ブロック分割部１０１は、バンド内で最も概形数が多い概形数３を持ったブロック７０３を処理対象として選択する。
【００４３】
次いで、ブロック分割部１０１は、画像処理プロセッサ群１０２〜１０４の実行状況を確認する（ステップＳ４１２）。一回目の確認では、いずれの画像処理プロセッサ１０２、１０３、１０４も描画処理を実行しておらず、アイドル状態として認識される。
【００４４】
次に、ブロック分割部１０１は、アイドル状態の画像処理プロセッサの有無を判定する（ステップＳ４２０）。画像処理プロセッサ１０２、１０３、１０４はすべてアイドル状態であるので、アイドル状態の画像処理プロセッサがあると判定される。ステップＳ４２０で、アイドル状態の画像処理プロセッサがないと判定された場合にはステップＳ４１２に戻る。
【００４５】
ステップＳ４２０でアイドル状態の画像処理プロセッサがあると判定されると、ブロック分割部１０１は、高速メモリ部１０６の使用状況を確認する（ステップＳ４２１）。
【００４６】
本実施の形態では、高速メモリ部１０６は１ブロックの描画処理に必要な作業領域を持っているとする。なお、高速メモリ部１０６の使用状況を確認する手段としては、さまざまな方法が考えられる。オブジェクトの種類、個数から必要となる作業領域を算出し、高速メモリ部の未使用領域と比較する方法なども、本発明の範囲に含まれる。ここでは、高速メモリ部１０６はいずれのブロックの描画命令も割り当てられていないため、未使用であることが確認される。
【００４７】
ブロック分割部１０１は、描画処理に必要な作業領域を高速メモリ部１０６に確保できるか否かの判定を行う（ステップＳ４３０）。ここでは、ブロック分割部１０１は、ステップＳ４２１で高速メモリ部１０６が未使用であることを確認しており、作業領域を高速メモリ部１０６に確保できる。したがって、メモリアクセス調停部１０８がアイドル状態の画像処理プロセッサ１０２の作業領域を高速メモリ部１０６に割り当てる（ステップＳ４３１）。
【００４８】
その後、ブロック分割部１０１がステップ４１１で選択されたブロック７０２の描画命令を画像処理プロセッサ１０２に割り当てる。描画命令を割り当てられた画像処理プロセッサ１０２は、高速メモリ部１０６を作業領域として用いて描画処理を行う（ステップＳ４３２）。画像処理プロセッサ１０２は、ブロック―オブジェクト対応テーブル７００と、オブジェクトテーブル５００からブロックの描画に必要な描画命令を実行し描画処理を行う。
【００４９】
次にステップＳ４１０に戻り、ブロック分割部１０１は、描画処理の終了していないブロックが存在するか確認する。描画処理が行われていないブロックが存在するので、ブロック分割部１０１は、バンド内で概形数が最も多いブロックを選択する（ステップＳ４１１）。概形数２のブロック７０３が選択される。
【００５０】
次に、ブロック分割部１０１は、画像処理プロセッサ群１０２〜１０４の実行状況を確認する（ステップ４１２）。画像処理プロセッサ１０２はブロック７０２を描画処理中なので、画像処理プロセッサ１０３，１０４がアイドル状態であると確認され、ステップＳ４２０の判定では、アイドル状態の画像プロセッサが存在するので、ステップＳ４２１に移る。
【００５１】
ブロック分割部１０１は、高速メモリ部１０６の使用状況を確認する（ステップＳ４２１）。高速メモリ部１０６は１ブロック分の作業領域を持っているが、画像処理プロセッサ１０２がブロック７０２の描画処理の作業領域として使用されているので、使用中と判断される（ステップＳ４３０でＮＯ）。したがって、メモリアクセス調停部１０８は、アイドル状態の画像処理プロセッサ１０３の作業領域を低速メモリ部１０７に割り当てる（ステップＳ４３３）。ブロック分割部１０１は、ステップＳ４１１で選択したブロック７０３の描画命令を画像処理プロセッサ１０３に割り当てる。描画命令を割り当てられた画像処理プロセッサ１０３は、低速メモリ部１０７を作業領域として用いて描画処理を行う（ステップＳ４３４）。
【００５２】
再度ステップＳ４１０に戻り、ブロック分割部１０１は、未処理の描画領域を確認し、ステップＳ４１１で次に概形数の多いブロック７０１を選択し、ステップＳ４１２で画像処理プロセッサ１０４がアイドル状態であることを確認する。ステップＳ４２０ではアイドル状態の画像プロセッサが存在するので処理はステップＳ４２１へ移る。ステップＳ４２１でブロック分割部１０１は、高速メモリ部１０６の使用状況を確認し、ステップＳ４３０の判定では高速メモリ部１０６が使用中なので、処理はステップＳ４３３へ移る。
【００５３】
ステップＳ４３３において、メモリアクセス調停部１０８は、アイドル状態の画像処理プロセッサ１０４の作業領域を低速メモリ部１０７に割り当てる。ブロック分割部１０１は、ステップＳ４１１で選択したブロック７０１の描画命令を画像処理プロセッサ１０４に割り当てる。描画命令を割り当てられた画像処理プロセッサ１０４は、低速メモリ部１０７を作業領域として用いて描画処理を行う（ステップＳ４３４）。
【００５４】
再度ステップＳ４１０に戻り、ブロック分割部１０１は、未処理の描画領域を確認し、バンド内の残りのブロック７０４を選択する（ステップＳ４１１）。
【００５５】
ステップ４１２において、ブロック分割部１０１は、画像処理プロセッサ１０２〜１０４の実行状況確認を行うと、画像処理プロセッサ１０２，１０３，１０４はそれぞれブロック７０２，７０３，７０１を描画処理中であり、アイドル状態の画像処理プロセッサは存在しない。
【００５６】
ステップＳ４２０では、アイドル状態の画像処理プロセッサが無いため、ステップ４１２に戻る。ブロック分割部１０１は、ブロックの処理が終了し、画像処理プロセッサがアイドル状態になるまで、画像処理プロセッサの実行状況の確認を繰り返す。
【００５７】
次に、画像処理プロセッサ１０４に割り当てられたブロック７０１の描画処理が完了したとする。
【００５８】
画像処理プロセッサ１０４はアイドル状態となり、ステップＳ４２０の判定で、ブロック分割部１０１は、アイドル状態の画像処理プロセッサを検知し、高速メモリ部１０６の使用状況を確認する（ステップＳ４２１）。
【００５９】
その後、ステップＳ４３０の判定では、高速メモリ部１０６は画像処理プロセッサ１０２で使用されているので、ステップＳ４３３に移る。
【００６０】
ステップＳ４３３において、メモリアクセス調停部１０８は、アイドル状態の画像処理プロセッサ１０４の作業領域を低速メモリ部１０７に割り当てる。ブロック分割部１０１は、ステップＳ４１１で選択したブロック７０４の描画命令を画像処理プロセッサ１０４に割り当てる。描画命令を割り当てられた画像処理プロセッサ１０４は、低速メモリ部１０７を作業領域として用いて描画処理を行う（ステップＳ４３４）。
【００６１】
最後にすべてのブロックを画像処理プロセッサに割り当てた後の動作について説明する。ブロック３０４の描画処理が画像プロセッサに割り当てられた状態でステップ４１０に戻った場合について説明する。ステップＳ４１０では、ブロック分割部１０１は、未描画ブロックが残されていないので、ステップＳ４４１に移る。
【００６２】
次いで、ブロック分割部１０１は、各画像処理プロセッサにおける描画処理の完了を検知するまで待機する（ステップＳ４４１）。
【００６３】
ブロック分割部１０１が描画処理終了を確認後、ＣＰＵ１０５に描画処理終了を通知する。その後、ＣＰＵ１０５は、ラスタ画像の統合を行う（ステップＳ４４２）。この統合処理は各画像処理プロセッサが形成したラスタ画像を統合し、入力された描画命令を処理した場合に形成される画像と同等の画像を生成する処理である。
【００６４】
分割した描画命令の描画範囲はブロックの領域であるので、その描画範囲にあたる所定のアドレスにラスタ画像を出力するように予め画像処理プロセッサに設定することで画像を統合することができる。もしくは、画像処理プロセッサは任意のアドレスにラスタ画像を出力し、全体の描画画像３００から任意のアドレスに出力されたブロックのラスタ画像へリンクする処理を行ってもよい。前述の統合処理が終了すると描画処理は終了となる。統合処理を行うことで、領域を分割して描画処理を行っても入力された描画命令と等価な画像が得られる。
【００６５】
図８（Ａ）は、従来例の画像形成装置の各画像プロセッサ１０２、１０３、１０４における、１バンドに含まれるブロックの描画処理の実行状況を説明する図である。また、図８（Ｂ）は、本実施の形態にかかる画像形成装置の各画像プロセッサ１０２、１０３、１０４における、１バンドに含まれるブロックの描画処理の実行状況を説明する図である。図８（Ｃ）は、従来の画像プロセッサ１０２と本発明の画像プロセッサ１０２における、１バンドに含まれるブロックの描画処理の実行状況を説明する図である。図８（Ｄ）は、従来の画像プロセッサ１０３と本発明の画像プロセッサ１０３における、１バンドに含まれるブロックの描画処理の実行状況を説明する図である。
【００６６】
図８（Ａ）における従来例の画像形成装置では、時刻８１０にブロック分割部１０１が描画領域分割を開始し、時刻８１１に分割したブロックを各画像処理プロセッサに割り当てを行う。
【００６７】
まず、ブロック分割部１０１が最も概形数の多いブロック３４１を選択し、高速メモリ部１０６を作業領域として画像処理プロセッサ１０２に描画命令を割り当てる。
【００６８】
画像処理プロセッサ１０２は、時刻８１２から描画を開始する。同様に、画像処理プロセッサ１０３，１０４がそれぞれブロック３４２，３４０の描画処理を時刻８１３，８１４から開始する。
【００６９】
ブロック３４０はオブジェクトを１つしか含まないために処理時間も短く、画像処理プロセッサ１０４は時刻８１５に描画処理を終える。
【００７０】
アイドル状態となった画像処理プロセッサ１０４は、ブロック分割部１０１から割り当てられたブロック３４３の描画処理を時刻８１６から行う。
【００７１】
ブロック３４３はオブジェクトを含まないため描画時間は短く、画像処理プロセッサ１０４は時刻８１７に描画処理を終える。
【００７２】
次にオブジェクトを２つ含んでいたブロック３４２の描画処理を画像処理プロセッサ１０３が時刻８１８に終える。
【００７３】
さらに遅れて、オブジェクトを３つ含むブロック３４１の描画処理を画像処理プロセッサ１０２が時刻８１９に終え、１バンドの描画処理が完了する。
【００７４】
従来例では、メモリがキャッシュシステムを持っているとすると、キャッシュがヒットした場合にはアクセスタイム８３０、キャッシュがミスした場合にはアクセスタイム８４０を要していた。従来例では、ブロックの描画処理の負荷によらず、一様に各画像処理プロセッサはメモリにアクセスしていた。そのため、オブジェクト数の不均衡により、オブジェクトを多く含むブロック３４１の描画処理は他のブロックと比べ長い時間を要してしまい、バンド単位の描画処理のボトルネックとなってしまう。
【００７５】
本実施の形態における描画処理の実行を図８（Ｂ）を用いて説明する。本実施の形態ではブロックの描画処理の負荷によって、メモリアクセス調停部１０８が、描画処理に用いる作業領域に割り当てる高速メモリ部１０６又は低速メモリ部１０７を変更する。
【００７６】
本実施の形態に示される画像形成装置における描画領域分割開始時刻８２０と、ブロックを各画像処理プロセッサに割り当てを開始する時刻８２１と、各画像処理プロセッサが描画を開始する時刻８２２，８２３，８２４は、それぞれ、従来例の時刻８１０，８１１，８１２，８１３，８１４と等しい。ブロック３４０の描画処理終了時刻は、描画処理終了時刻は従来例よりも遅く時刻８２５に描画処理を終える。
【００７７】
本実施の形態では、ブロック３４０の描画処理を行っている画像処理プロセッサは作業領域として低速メモリ部１０７をメモリアクセス調停部１０８により割り当てられているため常に低速メモリ部アクセスタイムを要する。そのため、描画処理終了時刻は従来例よりも遅くなり時刻８１５となる。
【００７８】
しかし、本実施の形態では従来例でボトルネックになっていたオブジェクトを３つ含むブロック３４１の描画処理に高速メモリ部１０６をメモリアクセス調停部１０８により割り当てるため、終了時刻は時刻８１９となる。したがって、従来例の時刻８１９よりも短い時間で、１バンドの描画処理を完了する。
【００７９】
本実施の形態では、オブジェクト数が多くメモリアクセス回数が多いブロックの描画処理を行う画像処理プロセッサに高速メモリ部１０６を割り当てるため、メモリアクセスは常に高速メモリ部１０６のアクセスタイムで可能となる。そのため、本実施の形態では、従来例のバンド処理が終了した時刻８１９よりも早い時刻８２９でバンド単位の処理を終了させることができる。
【００８０】
以上詳細に説明したように、本実施の形態では、ページ記述言語の入力データに対して並列に描画処理が実行可能な複数の画像処理プロセッサ（１０２〜１０４）と、ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割部（１０１）と、アクセス速度の異なる２つ以上のメモリ（１０６，１０７）を有し、前記ページ記述言語又は前記画像処理プロセッサにより処理される中間データを格納する格納部（１０６，１０７）と、画像処理プロセッサからメモリへのアクセスを調停するメモリアクセス調停部（１０８）とを備え、メモリアクセス調停部（１０８）は、格納部（１０６，１０７）へのアクセス頻度が高い画像処理プロセッサを優先的にアクセス速度の速いメモリ（１０６）に割り当てる。また、本実施の形態によれば、ＰＤＬ（ページ記述言語）を並列処理に適したブロックに分割し、関連付けられた描画オブジェクト数の異なる個々のブロックをより均等な時間で描画することができる。さらに、メモリ装置を拡張することなくバンド単位の描画時間を平滑化することができる。
【００８１】
また、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【００８２】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８３】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００８４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現される場合には限られない。すなわち、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【００８５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施の形態に係る画像形成装置の構成を示すブロック図である。
【図２】図１に示したブロック分割部１０１に入力されるＰｏｓｔＳｃｒｉｐｔ言語で記述された印刷データの一例を示す図である。
【図３】図２の印刷データによって描画される画像データを示す図である。
【図４】画像形成装置の描画処理の手順を示したフローチャートである。
【図５】オブジェクトテーブル５００の一例を示す図である。
【図６】ブロック分割部１０１で算出された各オブジェクトの概形情報の一例を示す図である。
【図７】ブロック―オブジェクト対応テーブルの一例を示す図である。
【図８】（Ａ）は、従来例の画像形成装置の各画像プロセッサ１０２、１０３、１０４における、１バンドに含まれるブロックの描画処理の実行状況を説明する図である。（Ｂ）は、本実施の形態にかかる画像形成装置の各画像プロセッサ１０２、１０３、１０４における、１バンドに含まれるブロックの描画処理の実行状況を説明する図である。（Ｃ）は、従来の画像プロセッサ１０２と本発明の画像プロセッサ１０２における、１バンドに含まれるブロックの描画処理の実行状況を説明する図である。（Ｄ）は、従来の画像プロセッサ１０３と本発明の画像プロセッサ１０３における、１バンドに含まれるブロックの描画処理の実行状況を説明する図である。
【図９】従来の画像形成装置の概略構成を示すブロック図である。
【符号の説明】
【００８７】
１０１  ブロック分割部
１０２，１０３，１０４  画像処理プロセッサ
１０５  ＣＰＵ
１０６  高速メモリ部
１０７  低速メモリ部
１０８  メモリアクセス調停部
【図１】
2007237510.tif 000003
【図２】
2007237510.tif 000004
【図３】
2007237510.tif 000005
【図４】
2007237510.tif 000006
【図５】
2007237510.tif 000007
【図６】
2007237510.tif 000008
【図７】
2007237510.tif 000009
【図８】
2007237510.tif 000010
【図９】
2007237510.tif 000011