(57)【要約】【課題】  ハードウエアリソースの無駄を減らし、描画処理を高速に行なう描画処理方法とその回路、及び印刷制御装置を提供する。【解決手段】  並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段を有し、オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換するステップと、展開処理を実行する前に、中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、プロセッサの再構成のスケジューリングデータを生成するステップと、スケジューリングデータに基づいてプロセッサを再構成しながら、複数の展開手段によって中間データに基づいてビットマップデータに展開するステップとを有する。スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定するステップと、複数の展開手段の処理時間が略同じとなるように、スケジューリングデータを修正するステップとを更に有する。【選択図】      図３
2006088433.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換する変換手段と、
該中間データからビットマップデータに展開する複数の展開手段であって、並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段と、
前記展開処理を実行する前に、前記中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、前記プロセッサの再構成のスケジューリングデータを生成する生成手段と、
該スケジューリングデータに基づいて前記プロセッサを再構成する再構成手段とを有することを特徴とする描画処理回路。
【請求項２】
前記スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定する処理時間判定手段と、
前記複数の展開手段の処理時間が略同じとなるように、前記スケジューリングデータを修正する修正手段とを有することを特徴とする請求項１記載の描画処理回路。
【請求項３】
前記複数の展開手段は、それぞれが前記中間データの表す異なる属性を展開処理可能に再構成されることを特徴とする請求項１又は２記載の描画処理回路。
【請求項４】
前記中間データの表す異なる属性は、描画領域、描画形状（又は輪郭）、描画色、描画模様を含むことを特徴とする請求項３記載の描画処理回路。
【請求項５】
前記複数の展開手段は、１ページ分の描画処理を複数のバンドに分割したバンド単位の展開処理を行なうことを特徴とする請求項1記載の描画処理回路。
【請求項６】
オブジェクト記述言語で記述されたデータを受信してビットマップデータに展開する描画処理回路を有し、該描画処理回路で展開されたビットマップデータを出力手段に出力する画像出力制御装置であって、
前記描画処理回路が、
オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換する変換手段と、
該中間データに基づいてビットマップデータを生成する複数の展開手段であって、並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段と、
前記展開処理を実行する前に、前記中間データから前記複数の展開処理における各々の処理時間を見積り、前記プロセッサの再構成のスケジューリングデータを生成する生成手段と、
該スケジューリングデータに基づいて前記プロセッサを再構成する再構成手段とを有することを特徴とする画像出力制御装置。
【請求項７】
前記描画処理回路は、
前記スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定する処理時間判定手段と、
前記複数の展開手段の処理時間が略同じとなるように、前記スケジューリングデータを修正する修正手段とを更に有することを特徴とする請求項６記載の画像出力制御装置。
【請求項８】
並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段を有し、オブジェクト記述言語で記述されたデータを受信してビットマップデータに展開する描画処理方法であって、
オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換するステップと、
前記展開処理を実行する前に、前記中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、前記プロセッサの再構成のスケジューリングデータを生成するステップと、
該スケジューリングデータに基づいて前記プロセッサを再構成しながら、前記複数の展開手段によって前記中間データに基づいてビットマップデータに展開するステップとを有することを特徴とする描画処理方法。
【請求項９】
前記スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定するステップと、
前記複数の展開手段の処理時間が略同じとなるように、前記スケジューリングデータを修正するステップとを更に有することを特徴とする請求項８記載の描画処理方法。
【請求項１０】
並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段を使って、オブジェクト記述言語で記述されたデータを受信してビットマップデータに展開するコンピュータ実行可能な制御プログラムであって、
オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換するステップと、
前記展開処理を実行する前に、前記中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、前記プロセッサの再構成のスケジューリングデータを生成するステップと、
該スケジューリングデータに基づいて前記プロセッサを再構成しながら、前記複数の展開手段によって前記中間データに基づいてビットマップデータに展開するステップとを有することを特徴とする制御プログラム。
【請求項１１】
前記スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定するステップと、
前記複数の展開手段の処理時間が略同じとなるように、前記スケジューリングデータを修正するステップとを更に有することを特徴とする請求項１０記載の制御プログラム。
【請求項１２】
並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段を使って、オブジェクト記述言語で記述されたデータを受信してビットマップデータに展開する制御プログラムをコンピュータ読み出し可能に記憶する記憶媒体であって、
前記制御プログラムは、
オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換するステップと、
前記展開処理を実行する前に、前記中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、前記プロセッサの再構成のスケジューリングデータを生成するステップと、
該スケジューリングデータに基づいて前記プロセッサを再構成しながら、前記複数の展開手段によって前記中間データに基づいてビットマップデータに展開するステップとを有することを特徴とする記憶媒体。
【請求項１３】
前記制御プログラムは、
前記スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定するステップと、
前記複数の展開手段の処理時間が略同じとなるように、前記スケジューリングデータを修正するステップとを更に有することを特徴とする請求項１２記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は描画処理方法とその回路、及び画像出力制御装置、例えば、ホストコンピュータから印刷ジョブとしてPDLなどのObject記述言語で記述されたデータを受信し、１ページ分の前記データを複数のBandに分割してBand単位ごとの中間データに変換し、前記中間データに含まれている描画Objectの各属性に応じてbitmapへ展開する描画処理方法とその回路、及び画像出力制御装置に関するものである。
【背景技術】
【０００２】
以下、本明細書では、画像出力制御装置として画像を印刷する印刷手段への画像出力を制御する印刷制御装置に基づいて説明する。しかし、本発明は表示手段への画像出力の制御においても適用でき、それらも本発明に含まれる。
【０００３】
本発明に関連する描画処理技術としては、例えば特許文献１のような技術が一般的であった。特許文献１では、印刷データから生成される中間データと、印刷出力を行う出力手段の属性（プリンタエンジンがカラーか白黒かなど）とに基づいて、再構成制御手段によって、中間データを出力手段の仕様に合わせた描画データ（bitmap）に展開するように展開処理手段の再構成を行っている。
【０００４】
又、本出願人が先に出願した特許文献２には、中間データに含まれている描画Objectの各属性に応じてbitmapへ展開する場合に、各属性のデータをＤＭＡで短時間に読み出すのに好適なDL(Display List)構造やその手順が示されている。
【特許文献１】特開平11-105371号公報
【特許文献２】特開2003-241917公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１における再構成は、複数のハードウエアリソースを設けてこの固定したリソースを所望の展開処理となるように、選択あるいは接続を変えるものであり、少なくとも１つのObjectを描画する間の展開処理手段の構成は固定されたものである。同様に、特許文献２においても、ＤＭＡで読み出した各属性のデータはそれぞれ専用の固定データ生成部で展開される構成である。従って、各Objectの描画において各属性の展開処理の時間が変化しても、極端な場合は展開処理の無い属性がある場合でも、常に最も時間がかかる属性の展開処理に処理時間が拘束されてしまう。また、展開処理の無い属性のハードウエアリソースはその間、アイドル状態となるので、ハードウエアリソースの無駄が増えることになる。
【０００６】
本発明は、上記従来技術の問題点に鑑み、Objectベースの出力データの属性に応じてハードウエアリソースを再構成できるよう構成し、その再構成のスケジューリング、更に動的スケジューリングを行なうことによって、ハードウエアリソースの無駄を減らし、描画処理を高速に行なう描画処理方法とその回路、及び印刷制御装置を提供する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の描画処理回路は、オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換する変換手段と、該中間データからビットマップデータに展開する複数の展開手段であって、並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段と、前記展開処理を実行する前に、前記中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、前記プロセッサの再構成のスケジューリングデータを生成する生成手段と、該スケジューリングデータに基づいて前記プロセッサを再構成する再構成手段とを有することを特徴とする。
【０００８】
更に、前記スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定する処理時間判定手段と、前記複数の展開手段の処理時間が略同じとなるように、前記スケジューリングデータを修正する修正手段とを有する。ここで、前記複数の展開手段は、それぞれが前記中間データの表す異なる属性を展開処理可能に再構成される。また、前記中間データの表す異なる属性は、描画領域、描画形状（又は輪郭）、描画色、描画模様を含む。また、前記複数の展開手段は、１ページ分の描画処理を複数のバンドに分割したバンド単位の展開処理を行なう。
【０００９】
又、本発明の画像出力制御装置は、オブジェクト記述言語で記述されたデータを受信してビットマップデータに展開する描画処理回路を有し、該描画処理回路で展開されたビットマップデータを出力手段に出力する画像出力制御装置であって、前記描画処理回路が、オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換する変換手段と、該中間データに基づいてビットマップデータを生成する複数の展開手段であって、並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段と、前記展開処理を実行する前に、前記中間データから前記複数の展開処理における各々の処理時間を見積り、前記プロセッサの再構成のスケジューリングデータを生成する生成手段と、該スケジューリングデータに基づいて前記プロセッサを再構成する再構成手段とを有することを特徴とする。
【００１０】
前記描画処理回路は、前記スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定する処理時間判定手段と、前記複数の展開手段の処理時間が略同じとなるように、前記スケジューリングデータを修正する修正手段とを更に有する。
【００１１】
又、本発明の描画処理方法は、並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段を有し、オブジェクト記述言語で記述されたデータを受信してビットマップデータに展開する描画処理方法であって、オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換するステップと、前記展開処理を実行する前に、前記中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、前記プロセッサの再構成のスケジューリングデータを生成するステップと、該スケジューリングデータに基づいて前記プロセッサを再構成しながら、前記複数の展開手段によって前記中間データに基づいてビットマップデータに展開するステップとを有することを特徴とする。前記スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定するステップと、前記複数の展開手段の処理時間が略同じとなるように、前記スケジューリングデータを修正するステップとを更に有する。
【００１２】
又、本発明の制御プログラムは、並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段を使って、オブジェクト記述言語で記述されたデータを受信してビットマップデータに展開するコンピュータ実行可能な制御プログラムであって、オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換するステップと、前記展開処理を実行する前に、前記中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、前記プロセッサの再構成のスケジューリングデータを生成するステップと、該スケジューリングデータに基づいて前記プロセッサを再構成しながら、前記複数の展開手段によって前記中間データに基づいてビットマップデータに展開するステップとを有することを特徴とする。前記スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定するステップと、前記複数の展開手段の処理時間が略同じとなるように、前記スケジューリングデータを修正するステップとを更に有する。
【００１３】
又、本発明の記憶媒体は、並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段を使って、オブジェクト記述言語で記述されたデータを受信してビットマップデータに展開する制御プログラムをコンピュータ読み出し可能に記憶する記憶媒体であって、前記制御プログラムは、オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換するステップと、前記展開処理を実行する前に、前記中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、前記プロセッサの再構成のスケジューリングデータを生成するステップと、該スケジューリングデータに基づいて前記プロセッサを再構成しながら、前記複数の展開手段によって前記中間データに基づいてビットマップデータに展開するステップとを有することを特徴とする。前記制御プログラムは、前記スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定するステップと、前記複数の展開手段の処理時間が略同じとなるように、前記スケジューリングデータを修正するステップとを更に有する。
【発明の効果】
【００１４】
以上説明したように、本発明は、Objectベースの出力データの属性に応じてハードウエアリソースを再構成できるよう構成し、その再構成のスケジューリング、更に動的スケジューリングを行なうことによって、ハードウエアリソースの無駄を減らし、描画処理を高速に行なう描画処理方法とその回路、及び印刷制御装置を提供できる。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明の最良の実施形態として、Objectベースの印刷データの属性に応じてハードウエアリソースを再構成できるよう構成し、その再構成のスケジューリング、更に動的スケジューリングを行なうことの可能な描画処理回路とそれを有する画像出力制御装置を詳細に説明する。尚、前述の如く、本実施形態では、画像出力制御装置として画像を印刷する印刷手段への画像出力を制御する印刷制御装置に基づいて説明するが、本発明は表示手段への画像出力の制御においても適用でき、それらも本発明に含まれる。
【００１６】
＜本実施形態の画像出力制御装置の構成例＞
図１は、本実施形態の画像出力制御装置を含む印刷装置の構成例を示す図である。例えば印刷装置の例としてはレーザビームプリンタの場合に対応する。
【００１７】
図１において、101は、図示していないホストコンピュータより転送された印刷コマンド・データを受信するHost_I/F_Logicである。このHost_I/F_Logic１０１は、DRAM_cont.102aを介して、受信された印刷コマンド・データをDRAM102へ格納する。尚、DMA_cont.102bは、DRAM102に格納されたDLをRasterize_mod.107に転送する場合などに使用される。
【００１８】
106はCPUであり、後述するROM105に格納されたプログラムにしたがって印刷装置本体の全制御を行う演算・制御部である。CPU106は、各構成要素間の処理手順や同期制御、あるいは共通バスの制御(DMA_cont.と協働)を行なう。特に、CPU106はRasterize_mod.やShipping_mod.やVideo_I/F_LogicのＹＭＣＫプレーンに対する同期制御を行なう。尚、CPU106がRasterize_mod.107やData_compress109や拡大／縮小_mod.110やData_uncompress111などの処理を行なっても良いが、CPU106に負荷が集中して処理の高速化を妨げるので、Rasterize_mod.107の各planeそれぞれに、あるいはData_compress109や拡大／縮小_mod.110やData_uncompress111に共通、又はそれぞれに独立したCPUを有するのが望ましい。特に、本例では、Rasterize_mod.107の各planeそれぞれが独立したCPUを有して、他のplaneとは独立に展開処理を行なう（尚、同じObjectのplane間の同期はCPU106が制御する）。
【００１９】
102はDRAMで、ホストコンピュータからのコマンドおよびデータ等の受信データを一時的に蓄えるpageメモリである。あるいは前述のROM105内に記述されたプログラムに従って生成されるDLを格納するMainメモリとして使用される。また、Font cache領域として使用される。さらに前記の用途の他にCPU106が各プログラムを実行する際のワークエリアとしても使用される。105は、CPU106の制御プログラム、あるいは後述する図３及び図６に示すフローチャートによる一連の制御を実現するためのプログラムデータ、Fontデータなどを格納しているROMである。尚、図３及び図６に示すフローチャートはRasterize_mod.107の各planeの制御を示すものである。この制御はROM105から読出しながら動作するのではなく、Rasterize_mod.107の各plane（以下の図２参照）が有するRAM（Config._control202の制御やConfig._data_memory210と共有でもよい）にロードして実行されるのが望ましい。また、DMA_cont.105aは、ROM105に格納されたFontデータの読出しや、Rasterize_mod.107への制御プリグラムのロードなどで使用される。
【００２０】
103はHard_Disk、103aはHard_Disk_I/F_Logic、104はNV(non-volatile)RAM、104aはNVRAM_I/Fである。Hard Disk103及びNVRAM104は不揮発性の書換可能なメモリであり、大容量のデータや変更可能なプログラムなどが格納される。
【００２１】
107は描画処理を実行する４つのplaneに分かれたRasterize_mod.である。Rasterize_mod.107は、DRAM102から読み込んだDLをROM105に格納されたプログラム（あるいはRasterize_mod.107にロードされたプログラム）に従ってbitmapデータへ展開し、Band Memory108へ格納する。109は前記のRasterize_mod.107が展開したデータを圧縮するData_compress_moduleである。110は縮小印字や文字の拡大処理を行うための拡大／縮小moduleである。111はBand Mem.108に格納された圧縮データを伸張するためのData_uncompress_moduleである。
【００２２】
また、112は,カラーの4-Drumエンジンの紙搬送に対応して画像データを前記Band Mem.108から読み出して、video_I/F_logic114へ出力するための同期回路(Shipping_mod.)である。113はプリンタエンジンを制御するcommand/statusの制御信号である。114,115はプリンタエンジンとそのI/F_logicである。116,117はプリンタの表示パネルとそのI/F_logicである。
【００２３】
＜本実施形態の描画処理例＞
次に、本実施形態の描画処理における、Object描画処理での属性の種類と、DL(Display List)の構成例、出力画像との関係について説明する。但し、本発明は描画処理におけるハードウエアリソースの再構成、その再構成のスケジューリング、更に動的スケジューリングに特徴があり、Object上が処理での属性の種類や、DLの構成例等に限定されるものではない。
【００２４】
（本実施形態における属性例）
本実施形態の描画回路においては、PDLを中間コード(DL)へ変換し、この中間コードが有する以下の４つの属性データを元にして描画イメージを生成するものとする。
【００２５】
第１の属性は、描画オブジェクトの１つ１つについて印刷イメージ上で占有する領域データを示す属性データである。第２の属性は、多角形、円などの図形や文字の輪郭に代表されるような ForegroundとBackgroundとの境界を表す属性データである。第３の属性は、描画オブジェクトを塗りつぶす模様に代表されるようなForegroundの模様（あるいはBackgoundの色or模様）を示す属性データである。第４の属性は、その塗りつぶす色を示すForegroundの色（あるいはBackgroungの色or模様）を示す属性データである。
【００２６】
ここで、Foregroundの色とは描画対象の主体の色を意味しており、文字などを描画する場合に文字自体に付けられる色を指している。Backgroundとは描画プレーン１つで２値データを扱う場合には描画を行うプレーンのハッチングパターンとなり、多値データを扱う場合にはフォアグランドの色を意味している。
【００２７】
前記４種類の属性に基づくデータは、描画展開後に印刷する背景のイメージデータの上にそれぞれを重ねあわせる処理を行った後に、Band_Memory108へ格納される。図５は、あるオブジェクトについての各属性と描画処理の一例の概略を示したものである。
【００２８】
（本実施形態におけるDLの構成例）
図９に、座標情報と描画objectの属性とを示した中間データ（display list）のコード例と構成例を示す。
【００２９】
各リスト中でのaddr.指定は、データの管理上、pointer形式の間接指定になっている。例えばリスト中の"obj._addr._pointer#" (#: 1,2,3....)は各描画objectのHeaderを格納しているMemory_addr.を示すaddr._pointerである。ObjectのHeaderは、描画objectの種類（文字、図形、イメージ、背景データ、色データなど）を示すFunction_codeと幅・高さのパラメータ、及び、文字の圧縮code本体を格納しているMem.の先頭Addressを示すaddr._pointerから構成されている。
【００３０】
図９においては、Object_No.1とObject_No.2とがリストされている。
【００３１】
第１行から第７行まではObject_No.1の共通の属性である、領域及び形状（外形、輪郭）に係る情報である。第８行から第１０行はObject_No.1のシアン（Ｃ）の属性、色(Color_Gradation)及び模様(Fill_Pattern)に係る情報である。第１１行から第１３行はObject_No.1のイエロー（Ｙ）の属性、色及び模様に係る情報である。Object_No.1にはマゼンタ（Ｍ）とブラック（Ｋ）の情報は無い。
【００３２】
第１４行から第２０行まではObject_No.2の共通の属性である、領域及び形状（外形、輪郭）に係る情報である。第２１行から第２３行はObject_No.2のシアン（Ｃ）の属性、色及び模様に係る情報である。第２４行から第２６行はObject_No.2のマゼンタ（Ｍ）の属性、色及び模様に係る情報である。Object_No.2にはイエロー（Ｙ）とブラック（Ｋ）の情報は無い。
【００３３】
（本実施形態の出力画像の描画例）
図１０は、図９の前記display listの各パラメータと実際の描画Objectとの関係を示す図である。同図において文字 "Ａ", "Ａ", "Ａ", "Ｓ", "Ｕ"の各１文字がひとつの描画objectの単位となっている。以下に、図９の値と図１０の関係を簡単に説明する。図９はObject_No.1とObject_No.2しか記載されていないので、これらは図１０の左の文字 "Ａ",と次の文字"Ａ"に対応させて説明する。
【００３４】
図９の第２行の描画高さ(Ha1)と幅(Wa1)とが、図１０の最初の文字 "Ａ"の高さ(Ha)と幅(Wa)とにそれぞれ対応する。ここでは、各文字の高さ及び幅は同じなので、Object_No.1の高さ(Ha1)及び幅(Wa1)を示す値とObject_No.2の高さ(Ha2)及び幅(Wa2)を示す値とは等しい。第３行の描画開始座標(Xa1,Ya1)は図１０のXa,Yaである。更に、第４行のOffset座標(Off_Xa1,Off_Ya1)は図１０のOff_Xa1,Off_Ya1に相当する。すなわち、最小の文字 "Ａ"の描画開始位置（領域の左上）は、図１０の描画座標基準点からＸ方向（右方向）に(Xa＋Off_Xa1)、Ｙ方向（下方向）に(Ya＋Off_Ya)である。ここで、Xa1=Xa2, Ya1=Ya2, Off_Ya1=Off_Ya2なので図１０ではXa, Ya, Off_Yaと表示している。
【００３５】
この描画開始位置(Xa＋Off_Xa1, Ya＋Off_Ya)から高さ（下方向）Ha, 幅（右方向）Waの矩形が属性の「領域」に相当する。
【００３６】
第５行のobj._addr._pointer1の先のObject_HeaderからObj._Func.が文字（フォントの種類なども含む）を特定する情報である。幅(width)及び高さ(Height)は領域の幅及び高さと同じである。、また、Obj._Body_addr._pointerが指し示すobjectの形状の圧縮dataとして文字"Ａ"の圧縮データがObject_NO.1_codeに記憶されている。このObject_NO.1_codeが属性の「外形（輪郭）」に相当する。
【００３７】
そして、上述のColor_Gradiationが属性の「色」に、Fill_Patternが属性の「模様」に相当する。
【００３８】
次のObject_No.2の文字"Ａ"についても、上記の構成とほぼ同様である。但し、Object_No.1の文字"Ａ"とは色が異なる。尚、図９には第１８行のobj._addr._pointer2がObject_NO.2_codeを指し示すように図示されているが、図１０のように同じ文字"Ａ"の場合は、Object_NO.1_codeを指し示す。
【００３９】
（本実施形態における展開処理の分割例）
次に、本実施形態における展開処理をどのように分割して、複数のリコンフィギュラブルプロセッサで実行できるのかを説明する。
【００４０】
本実施形態の展開処理は、基本的にライン単位である。すなわち、どの属性においても中間データはライン単位で一区切りとなるような構造になっている。従って、ページデータをライン単位で分割し、展開処理可能な構成である。その場合に、例えば「色(BG)」においては縦64pixel×横64Pixelの矩形領域単位で分割が可能である。又、「輪郭(MSK)」の処理においては、line_skip機能が備わっている。このline_skip機能とは、例えば展開領域の上半分のラインと下半分のラインを分割しても、上半分のラインを読み飛ばして下半分のラインの先頭から展開を可能とする機能である。
【００４１】
以上説明したように、本実施形態ではライン単位の分割という規則による制限があるが、これは一例であり他の分割が可能な展開であればどのような処理でもよく、これらも本発明に含まれる。
【００４２】
＜本実施形態の描画処理回路の構成例＞
図２は、図１におけるK, Y, M, C-plane用の描画処理回路であるRasterize_moduleの構成例を示したものである。前記各plane毎にこの図２で示す回路があり、計４個存在している。以下に各構成要素について説明を行う。
【００４３】
図２において、205に示されているRM1〜RM4は、本実施形態で使用するリコンフィギュラブルプロセッサモジュール（再構成可能な処理回路モジュールの意）である。RMが行う処理については後述する。206は前記RM1〜RM4からの出力データを格納するためのFIFOである。FIFO206は、RM1〜RM4が描画領域の描画開始位置（通常、左上）からPixel単位（描画画素単位）に展開した出力データを順に記憶する。また、201は描画回路を再構成するためのデータを格納しているConfig._data_memoryである。202は前記データをRM1〜RM4のどのリコンフィギュラブルプロセッサにloadするかを監視し、前記memoryからデータを読み出して各モジュールの回路再構成を制御している制御部(Config._control)である。尚、Config._data_memory201には、Config._control202がRM1〜RM4をリコンフィギュアするスケジュールを管理するプログラムも格納されている。
【００４４】
203はPDL（プリンタ記述言語）から変換された中間コード(display list；図９参照)を解析して、描画Objectの属性毎にRM1〜RM4で描画展開が可能なデータ（あるいは対応する中間コードそのままでもよい）を作成するDisplay_List解析部である。204は前記中間コードから各属性毎の描画展開に係る処理時間を予測し、後述の描画演算処理部207から進行状況のフィードバックをうけて、予測時間の補正を行う描画計測部である。描画演算処理部207は、前記RM1〜RM4が展開した各属性毎の描画データをdisplay listに記載されている描画論理に従って、レイヤーのon/off、重ね合わせなどの演算をpixel単位で行う描画演算部である。208は前記の演算を行ったデータをプリンタエンジンに送出する前段のbufferであるBand_Mem.を示す。
【００４５】
ここで、図１のBand_Mem.108は、少なくともBand_Mem.208が４plane分記憶できる容量が必要である。高速処理のためにバッファすることを考慮すると８plane分を用意するのが好適である。209は、図１のHard_Disk103などにオペレータによって予め格納してある図５の背景データ（例えば、フォームオーバーレイ、社標のロゴ、すかし文字、罫線など）を、展開処理されたホストからの描画データに重ね合わせるための加算器である。
【００４６】
尚、FIFO206にRM1〜RM4で展開処理したデータをどのように記憶し、描画演算処理部207でどのようにビット単位で合成するかについては、以下のような種々の方法があり、どの方法をとっても構わない。
(1) RM1〜RM4より出力するデータの先頭に属性とObject_Noを識別可能なタグを付けて識別する。
(2) 図２のconfig._Cotrol202からBPU207に対して描画Obj. No.と各RMで処理している属性の種類の対応を示す信号を出力する。
(3) RMの後段にあるFIFO206を領域、輪郭、色、模様の各１つずつに割り当てておき、BPU207は例えばFIFO_1からFIFO_4までそれぞれから読み出したデータと前記属性と対応させる。
【００４７】
又、図２では、Config._control202や、Display_List解析部203、描画計測部204、描画演算部207などを独立した構成要素として図示しているが、これらはCPUとmemoryとで構成された共通のコンピュータでソフト的に実現するものでよい。その場合に、Config._data_memory201や、CPUのプログラムがロードされるmemory、Display_Listをロードするmomoryなどは、１つのmemoryを共有してもよい。
【００４８】
（リコンフィギュラブルプロセッサモジュール）
ここで、リコンフィギュラブルプロセッサモジュールについて簡単に説明を行う。
【００４９】
リコンフィギュラブルプロセッサと称されるものは動的再構成（再構築）可能な論理装置である。これらは、機能分けされた専用回路ではなく、あらかじめ用意した複数の必要な回路の接続構成と動作設定をソフトウェアによって切り替えることで、専用回路と同等の機能を実現するものである。また、動作中にもそうした切り替えを可能とする特徴をも有するものがある。特に、動的に再構成が可能なリコンフィギュラブルプロセッサは、ダイナミックリコンフィギュラブルプロセッサと称されることが多い。
【００５０】
一般的に、ダイナミックリコンフィギュラブルプロセッサは、チップ（論理装置）内に必要な回路を部分的にユニット化したハードウエア要素を予め複数準備する。そして、ユニットの選択や接続順序、動作設定といったパラメータやプログラムを事前にメモリに格納しておき、その格納したプログラムやパラメータをソフトウェアによって動作中に瞬時に切り替えることにより、処理内容に応じて専用回路をもつチップのように振舞うものである。つまり、本実施形態のリコンフィギュラブルプロセッサ（RM）は、パラメータやプログラムを切り替えることで、たとえば、領域(AR)用描画回路として動作させた後に、輪郭(MSK)用描画回路として再構成させ、動作させることも可能となる。
【００５１】
こうした思想に基づく技術は、ＦＰＧＡなどに代表されるように古くから存在しているが、ダイナミックリコンフィギュラブルプロセッサは、集積度の向上や動的な切り替えが実現できる高速性において、ＦＰＧＡよりも優れている。
【００５２】
ＦＰＧＡを構成するコンポーネントはゲートアレイであるため、実行できる処理も予め有する論理ゲート相当の機能となる。これに対してリコンフィギュラブルプロセッサを構成するユニットは小規模なプロセッサ相当か、プロセッサデータパス内の機能ブロック相当であるのが一般的となっている。そのため、当然ながらＦＰＧＡに比べてリコンフィギュラブルプロセッサの方が、高度な処理を実現可能である。
【００５３】
なお、本発明を説明するためのいくつかの実施形態では、描画回路としてダイナミックリコンフィギュラブル技術を採用しているが、同様の処理が可能な構成であればこれに限定されない。
【００５４】
＜本実施形態の描画処理回路の動作例＞
図３は、前記図１及び図２で示されるような画像出力制御装置において、各描画処理回路の再構成の手順例を示したフローチャートである。本実施形態では、この手順は各描画処理回路の独立したCPUで実行されるのが好ましいが、各構成要素がそれぞれのステップを実行する構成であっても、高速であって負担がなければ図１のCPU106が実行してもよい。
【００５５】
まず、ステップS301において該当Band内の描画Objectの属性から図２の描画計測部204が1Bandの描画あたりに要する描画処理時間を見積もる。そして、ステップS302において各描画Object毎に描画回路での処理時間を予測する。この予測結果を基にして、ステップS303で描画回路をどのように再構成(リコンフィギュレーション)するかについての順番を、図２のconfig._Control部202でスケジューリングし、その情報（スケジューリングデータ）を図２のconfig._Data_memory201へ格納する。
【００５６】
そして、ステップS304で、前記スケジューリングデータに従って１個目の描画Objectを描画するために必要な描画回路のコンフィギュレーションデータを図２のconfig._Data_memory201から読み出して、図２のRM1〜RM4を構成する。そして、ステップS305で描画ハードウエアを起動する。ハードウエアが起動すると、コンフィギュレーションデータに基づいて構成されたRM1〜RM4が各描画Object毎の属性に応じた描画データの展開を開始し、展開が終了したデータを図２のFIFO206へ順次格納していく。
【００５７】
また、ステップS306では、RM1〜RM4の各moduleからのステータス信号を受けて、描画処理が早めに終了しているものがないかを判定する。なお、このステップは図２の描画計測部204が実行する。その後、ステップS307では、前記描画計測部204からの予測情報と現状の処理ステータス（描画実行中 or 描画終了）を受けて、未だ描画処理に時間がかかるようなobjectの属性のものがあるか否かを判断する。そして、特定の属性のものが他の属性に比べて処理時間がかかると予測される場合には、ステップS308で負荷を分散するように図２のconfig._Data_memory201に格納されているスケジューリングデータを修正し、これに基づいてステップS304からの処理を再度行う。
【００５８】
一方、ステップS306で描画処理が早めに終了しているものが無い、またはステップS307でボトルネックとなるような属性を持った描画Objectが無いと判断された場合には、ステップS309で描画論理演算（BPU）を実行し、当該描画objectの処理を終了する。その後、ステップS311で現在描画処理をしているBandにおいて全ての描画Objectの展開が終了するまでチェックをし、繰り返し前記の処理を行うものである。
【００５９】
（本実施形態の描画処理のタイミング例）
図４の下段は、図３のフローチャートに従ってスケジューリングを修正して描画回路（RM）の再構成を行う場合について、従来の固定した回路構成での処理時間（図４の上段）と比較して示したものである。RM1〜RM4は、描画Objectの属性である領域データ（AR）、輪郭データ（MSK）、色データ(BG)、模様データ(GD)を並列で処理するためのリコンフィギュラブルな回路モジュールである。タイミングチャートの横軸が、各RM1〜RM4が各々の処理に要する時間を示している。
【００６０】
図４の上段に記載している従来例においては、描画Object1を描画する際において、例えばRM1やRM2の「領域(AR)」と「輪郭(MSK)」の処理が早く終了しても、RM4の「模様(GD)」の処理が終わるまでは図２の描画演算モジュール: Bit Processing Uint207で次のObject 2の描画処理を開始できないため、待たされる状態（idle状態）になっていた。
【００６１】
一方、図４の下段に記載している本実施形態の例では、従来例で描画処理が早く終了したRM1, RM2などのモジュールについては、回路の再構成が行われたことによって、描画Object1の展開処理が従来例よりも早く終了し、最終的に描画Object2についての描画演算モジュール(BPU)の処理を早く開始することが可能となる。以下、描画Object 2,3,4...についても同様である。
【００６２】
このように、本発明を適用することにより、描画Object1〜4までに要する時間が従来の固定した処理回路の場合と比較して処理時間を大幅に短縮することが可能となる。
【００６３】
具体的には、PDLを解析して中間コード(display list)に変換した後の描画処理をハードウエアの固定した処理によって行うのではなく、実際の回路の処理時間と処理に必要なデータサイズを鑑みて動的に回路構成を変更することにより、１Bandあたりの描画ObjectをBit Map Dataへ展開するために要する処理時間を短縮させるという効果がある。
【００６４】
尚、図４の下段の再構成はかなりの時間幅で表示しているが、実際の再構成の処理はシステムクロックの１cycleで実現でき、全体の処理にははとんど影響しない。RM1〜RM4の再構成は、ソフトプログラムとパラメータを入れ替えるものであっても、一部ハードウエアの選択や繋ぎ変えなどを含んでもよい。
【００６５】
＜本実施形態の描画処理回路の他の動作例＞
上記実施形態においては、描画回路を再構成する際の判断基準として各属性の描画が終了したという実時間の処理状態を元にしてスケジューリング、あるいは見積もり時間の補正をしていた。本実施形態の動作例では予め各属性に係る描画処理時間を見積もった後で、負荷（時間）のかかる属性の回路を優先的に再構成をするというものである。
【００６６】
図６は、本実施形態の処理手順を示すフローチャートであり、以下順を追って処理を説明する。
【００６７】
まず、ステップS601で描画Objectの属性から描画処理時間を見積もり、ステップS602で各Objectの属性毎の処理時間をtotalデータとして格納しておく。
【００６８】
図７は、図６のステップS602で格納しているtotalデータの例である。図７において、1 Band目はN個の描画Objectが存在し、2 Band目にはM個の描画Objectが存在するものとする。各Object毎の描画処理時間の予測値を格納した後で、各BandにおいてA.領域、B. 輪郭、 C. 色、 D.模様の各属性毎の描画処理時間の合計を示すtotal_time（実際はsystem clockのサイクル数で表す）についても予測を行う。次に、前記のtotalデータを基にして、ステップS603で描画回路を再構成する順番をスケジューリングし、ステップS604で前記totalデータに格納されているtotal_timeの大きい属性のものから優先的に回路の再構成を行う順番を決定する。
【００６９】
そして、この結果は、図２のConfig._data_memory201へ格納された後に、ステップS605で描画ハードウエアが起動される。ハードウエアが起動されると、RM1〜RM4が各描画Object毎の属性に応じた描画データの展開処理を開始し、展開が終了したデータを図２のFIFO206へ順次格納していく。また、図２の描画計測部204はRM1〜RM4までの各moduleからのステータス信号を受けて、ステップS606で描画処理が早めに終了しているものがないかをセンスする。その後、前記描画計測部204からの予測情報と現状の処理ステータス（描画実行中 or 描画終了）を受けて、ステップS607で現在のBandにおいて描画処理のtotal_time=0 (system cycle)のものが存在するか否かを判断する。ここで、total_time = 0となる属性のものが存在する場合には、ステップS608で負荷を分散するように図２のconfig. Data memory201に格納されているスケジューリングデータを修正し、これに基づいてステップS604からの処理を再度行う。
【００７０】
一方、ステップS606で描画処理が早めに終了しているものが無い、またはステップS607でボトルネックとなるような属性を持った描画Objectが無いと判断された場合には、ステップS609でBPUの描画論理演算を実行し、当該描画objectの処理を終了する。その後、ステップS611で現在描画処理をしているBandにおいて全ての描画Objectの展開が終了するまでチェックをし、繰り返し前記の処理を行うものである。
【００７１】
（本実施形態の描画処理のタイミング例）
図８は、図６のフローチャートにともづいて、図２のRP1〜RP4までの回路を再構成したときの例を示したものである。
【００７２】
先の実施形態で示した図４との違いは、obj.1の処理において最も処理時間を要する属性である「模様(GD)」「色(BG)」から再構成を行い、それが終了した後で属性「領域(AR)」「輪郭(MSK)」の処理回路を再構成している点である。
【００７３】
このように再構成のスケジューリングを実行することで、さらに展開処理を高速に実行することができる。
【図面の簡単な説明】
【００７４】
【図１】本実施形態に係る画像出力制御装置の構成を示す図である。
【図２】本実施形態に係る画像出力制御装置におけるRasterize_moduleの構成を示す図である。
【図３】本実施形態に係る画像出力制御装置の処理の第１例の処理手順を説明するフローチャートである。
【図４】本実施形態に係わる描画処理回路の再構成タイミングの第１例を示す図である。
【図５】本実施形態に係わる描画処理回路で展開する描画Objectの属性を示す図である。
【図６】本実施形態に係る画像出力制御装置の第２例の処理手順を説明するフローチャートである。
【図７】本実施形態に係る描画処理回路の描画処理時間を格納するtableデータの構成を示す図である。
【図８】本実施形態に係わる描画処理回路の第２例の再構成タイミングを示す図である。
【図９】本実施形態に係わる描画処理回路がdecodeする中間コード(display list)の例を示す図である。
【図１０】本実施形態に係わる描画objectと描画座標の関係を示す図である。
【図１】
2006088433.tif 000003
【図２】
2006088433.tif 000004
【図３】
2006088433.tif 000005
【図４】
2006088433.tif 000006
【図５】
2006088433.tif 000007
【図６】
2006088433.tif 000008
【図７】
2006088433.tif 000009
【図８】
2006088433.tif 000010
【図９】
2006088433.tif 000011
【図１０】
2006088433.tif 000012