説明

画像形成装置、方法及びプログラム

【課題】本発明は、描画時間を自動最適化する新規な画像形成装置、方法及びプログラムを提供することを目的とする。
【解決手段】本発明の画像形成装置におけるレンダラー切替制御部は、未処理の中間データについてHW描画不可コマンドの有無を検出し、検出したHW描画不可コマンドまでに存在する全ての描画コマンドをソフトウェアで描画するのに要する第1の時間を予測する手段と、検出したHW描画不可コマンドまでに存在する描画コマンドについてハードウェアとソフトウェアで描画するのに要する時間であって、レンダラー切り替えに伴うオーバーヘッドを含む時間である第2の時間を予測する手段と、第1の時間が第2の時間より大きい場合に、当該描画コマンドについてハードウェアとソフトウェアで描画させる手段と、第1の時間が第2の時間より大きくない場合に、当該描画コマンドをソフトウェア・レンダラーに描画させる手段とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置、方法及びプログラムに関する。
【背景技術】
【0002】
近年の高解像度化・多機能化の要請に伴って、印刷装置におけるPDL部の処理量は増加の一途を辿っており、この点につき、現在、高性能印刷装置の多くは、処理速度が速いハードウェアアクセラレータに一部の描画コマンド(文字や直線など)を処理させることによってスループットの低下を防止している。
【0003】
この点につき、特許第2875725号公報(特許文献1)は、ハードウェアでレンダリングできる描画コマンドについては、ハードウェアでレンダリングし、ハードウェアでレンダリングできない高度な論理描画コマンドについてソフトウェアでレンダリングする印刷制御装置を開示する。
【0004】
しかしながら、描画コマンドの種類に応じて、描画性能差のある2つのレンダラー(ハードウェア・レンダラー/ソフトウェア・レンダラー)を無条件に切り替える方法では、ケースによって、ハードウェア・レンダラーを使用することで短縮された時間よりもレンダラーの切り替えに伴って生じるオーバーヘッドの方が大きくなり、結果的にスループットが低下するという問題があった。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、上記従来技術における課題に鑑みてなされたものであり、本発明は、描画時間を自動最適化する新規な画像形成装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明者は、描画時間を自動最適化する新規な画像形成装置、方法及びプログラムにつき鋭意検討した結果、以下の構成に想到し、本発明に至ったのである。
【0007】
すなわち、本発明によれば、印刷データを解析して得られる中間データに基づいて描画処理を実行するための描画実行部とハードウェア・レンダラーを備える画像形成装置であって、該描画実行部は、前記中間データを構成する各描画コマンドの描画を実行するレンダラーを切替制御するレンダラー切替制御部と、ソフトウェア・レンダラーと、前記ハードウェア・レンダラーを制御するハードウェア・レンダラー制御部とを含み、前記レンダラー切替制御部は、未処理の前記中間データにおいて、前記ハードウェア・レンダラーが処理できない描画コマンドであるHW描画不可コマンドの有無を検出する手段と、検出した前記HW描画不可コマンドまでに存在する全ての描画コマンドを前記ソフトウェア・レンダラーで描画するのに要する第1の時間を予測する手段と、検出した前記HW描画不可コマンドの手前に存在するその余の描画コマンドを前記ハードウェア・レンダラーで描画した後に、検出した前記HW描画不可コマンドを前記ソフトウェア・レンダラーで描画するのに要する時間であって、レンダラー切り替えに伴うオーバーヘッドを含む時間である第2の時間を予測する手段と、前記第1の時間が前記第2の時間より大きい場合に、前記HW描画不可コマンドまでに存在する描画コマンドのうち、前記HW描画不可コマンドを前記ソフトウェア・レンダラーに描画させ、前記その余の描画コマンドを前記ハードウェア・レンダラー制御部を制御して前記ハードウェア・レンダラーに描画させる手段と、前記第1の時間が前記第2の時間より大きくない場合に、前記HW描画不可コマンドまでに存在する全ての描画コマンドを前記ソフトウェア・レンダラーに描画させる手段とを含む画像形成装置が提供される。
【図面の簡単な説明】
【0008】
【図1】本実施形態の画像形成装置のハードウェア構成図。
【図2】本実施形態の画像形成装置のソフトウェア構成図。
【図3】本実施形態におけるPDL部の機能ブロック図。
【図4】レンダラー切替制御部が実行する処理のフローチャート。
【図5】レンダラー切替制御部の処理の内容を説明するための概念図。
【図6】レンダラー切替制御部の処理の内容を説明するための概念図。
【図7】レンダラー切替制御部の処理の内容を説明するための概念図。
【図8】レンダラー切替制御部の処理の内容を説明するための概念図。
【図9】レンダラー切替制御部の処理の内容を説明するための概念図。
【図10】レンダラー切替制御部の処理の内容を説明するための概念図。
【発明を実施するための形態】
【0009】
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
【0010】
図1は、本発明の実施形態である画像形成装置100のハードウェア構成図を示す。画像形成装置100は、装置全体を制御するためのコントローラ10と、コントローラ10が生成した印刷用画像データに基づいて用紙に画像を印刷するためのプリンタエンジン20と、表示部および操作部を備え、ユーザーインターフェースとして機能するパネル装置22と、ハードウェア・レンダラー26を含んで構成されている。
【0011】
ハードウェア・レンダラー26は、例えば、ASICとして構成することができ、描画コマンドの種類(矩形、文字、直線など)を限定して、描画処理(レンダリング)を実行するハードウェアアクセラレータである。
【0012】
コントローラ10は、ホストPC24から受信した印刷データ(PDLデータ)に基づいて実行される各種の描画処理を経て出力用画像データを生成し、当該出力用画像データをプリンタエンジン20に出力する。
【0013】
コントローラ10は、ソフトウェアプログラムの命令を実行するためのCPU12と、コントローラ10上で動作するプログラムを格納するためのROM13と、コントローラソフトが作成するページメモリやソフトウェアが動作するために必要なワークメモリを提供するRAM14と、印刷条件設定などを保存するための不揮発性メモリとして例示されるNVRAM15と、ネットワーク上に接続されたホストPC24とデータのやり取りを行うためのネットワークI/F16と、プリンタエンジン20に対して印刷指示等を行うためのエンジンI/F17と、パネル装置22との入出力を行うためのパネルI/F18と、ハードウェア・レンダラー26に対して描画指示等を行うためのハードウェアI/F19とを含んで構成されており、各要素は、内部バス28を介して相互に接続されている。
【0014】
図2は、本実施形態の画像形成装置100のソフトウェア構成図を示す。画像形成装置100のコントローラ10は、図1に示したCPU12がROM13に格納されるコントローラソフトを実行することによって、コントローラ10全体を制御するためのプリンタ制御システム部30と、ホストPC24から受信したPDLデータに基づいて出力用画像データを生成するためのPDL部40とを含んで構成されている。
【0015】
図3は、PDL部40の機能ブロック図を示す。PDL部40は、PostScript(登録商標)、PCL(登録商標)、RPCS(登録商標)などの各種ページ記述言語の構文解析を行うPDLパーサ部41と、PDLパーサ部41の解析結果として得られる描画条件に従って出力用画像データを生成する描画実行部42とを含んで構成される。
【0016】
描画実行部42は、描画モジュールI/F部43と、中間データ保存部44と、レンダラー切替制御部45と、ソフトウェア・レンダラー46と、ハードウェア・レンダラー制御部47とを含んで構成される。
【0017】
PDLパーサ部41は、PDLデータを構文解析し、描画条件としてテキスト、イメージ、ベクターグラフィックスなどの描画コマンドと色や透過設定などの描画設定情報を得ると、これらの描画条件を描画モジュールI/F部43を介して中間データ保存部44に渡す。
【0018】
中間データ保存部44は、PDLパーサ部41から受領した描画条件(描画コマンドおよび描画設定情報)を中間データとして中間データメモリ48に保存し、中間データの保存が完了した時点で、その旨をレンダラー切替制御部45に通知する。
【0019】
レンダラー切替制御部45は、中間データ保存部44から中間データ保存完了通知を受領したことに応答して、描画時間を最適化(最小化)すべく、各描画コマンドの描画処理を実行するレンダラー(ソフトウェア・レンダラー46またはハードウェア・レンダラー26)を適応的に決定する。
【0020】
レンダラー切替制御部45は、所定の描画コマンドのレンダラーをソフトウェア・レンダラー46に決定した場合には、その旨をソフトウェア・レンダラー46に通知し、ソフトウェア・レンダラー46に描画処理を実行させる。一方、所定の描画コマンドのレンダラーをハードウェア・レンダラー26に決定した場合には、その旨をハードウェア・レンダラー制御部47に通知し、ハードウェア・レンダラー制御部47を制御して、ハードウェア・レンダラー26に描画処理を実行させる。
【0021】
ソフトウェア・レンダラー46は、レンダラー切替制御部45から通知を受けると、中間データメモリ48に保存される中間データを参照しながらバンドメモリ49へのレンダリングを実行する。一方、ハードウェア・レンダラー制御部47は、レンダラー切替制御部45から通知を受けると、ハードウェア・レンダラー26を制御して中間データメモリ48に保存される中間データを参照させ、バンドメモリ49へのレンダリングを実行させる。以上、PDL部40を構成する各機能部について説明してきたが、次に、レンダラー切替制御部45が実行する処理について、図4〜図10に基づいて説明する。
【0022】
図4は、レンダラー切替制御部45が実行する処理のフローチャートを示し、図5〜10は、レンダラー切替制御部45が実行する処理の内容を説明するための概念図を示す。なお、図5〜10は、ハードウェア・レンダラー26の描画性能がソフトウェア・レンダラー46のそれの2倍である場合を想定している。また、以下の説明においては、ハードウェアが描画できる描画コマンドをHW描画可能コマンドとして参照し、図5〜10において「可」と示し、ハードウェアが描画できない描画コマンドをHW描画不可コマンドとして参照し、図5〜10において「不可」と示す。
【0023】
レンダラー切替制御部45は、中間データ保存部44から中間データ保存完了通知を受領したことに応答して、以下の処理を開始する。まず、ステップ101において、中間データメモリ48に保存された中間データを参照し、その先頭から終端に向かってHW描画不可コマンドの有無を検出する。ここでいうHW描画不可コマンドとしては、ベクターグラフィックの描画コマンドを例示することができる。
【0024】
例えば、3つのHW描画可能コマンドと3つのHW描画不可コマンドが図5(a)に示すように混在してなる中間データの場合には、ステップ101において、最初のHW描画不可コマンドとしてコマンド003が検出され(ステップ102、Yes)、ステップ103に進む。
【0025】
ステップ103においては、検出したHW描画不可コマンド(コマンド003)までを描画するのに要する第1の時間を予測する。ここで、第1の時間とは、検出したHW描画不可コマンド(コマンド003)に至るまでに存在する全ての描画コマンド(コマンド001、コマンド002、コマンド003)をソフトウェア・レンダラー46で描画するのに要する時間をいう。各描画コマンドをソフトウェア・レンダラー46で描画するのに要する時間(以下、ソフト描画時間という)は、描画コマンドの種類およびその描画範囲に基づいて既知の手法によって予測することができる。
【0026】
続いて、ステップ104においては、検出したHW描画不可コマンド(コマンド003)までを描画するのに要する第2の時間を予測する。ここで、第2の時間とは、検出したHW描画不可コマンド(コマンド003)の手前に存在するHW描画可能コマンド(コマンド001、コマンド002)をハードウェア・レンダラー26で描画した後に、検出したHW描画不可コマンド(コマンド003)をソフトウェア・レンダラー46で描画するのに要する時間であって、レンダラー切り替えに伴うオーバーヘッドを含む時間をいう。各描画コマンドをハードウェア・レンダラー26で描画するのに要する時間(以下、ハードウェア描画時間という)は、描画コマンドの種類およびその描画範囲に基づいて既知の手法によって予測することができる。なお、本実施形態は、上述したステップ103および104の順序を限定するものではなく、両ステップは並列的に実行されても良い。
【0027】
検出したHW描画不可コマンド(コマンド003)までを描画するのに要する第1の時間および第2の時間は、図5(b)に示すようになる。すなわち、第1の時間は、コマンド001〜003のそれぞれのソフトウェア描画時間の合計時間となり、第2の時間は、コマンド001およびコマンド002のそれぞれのハードウェア描画時間と、コマンド003のソフトウェア描画時間と、オーバーヘッド(図5において「OH」と示す)の合計時間となる。ここで、オーバーヘッドとは、レンダラーの切り替えに伴うバンドメモリ49のオープン・クローズのやり直しやハードウェア・レンダラー26の初期化処理等に要する時間に該当する。
【0028】
続くステップ105においては、第1の時間が第2の時間より大きいか否かが判断される。図5(b)に示す例の場合、第1の時間は第2の時間より大きいので(ステップ105、Yes)、ステップ106に進む。
【0029】
ステップ106においては、ハードウェア・レンダラー制御部47を制御してコマンド003の手前に存在するコマンド001およびコマンド002をハードウェア・レンダラー26に描画させるとともに、ソフトウェア・レンダラー46を制御してコマンド003を描画させる。その後、図5(c)に示すように、中間データのコマンド001〜003を描画処理済みとしてマークする。
【0030】
続いて、ステップ109において、全ての描画コマンドの描画処理が完了したか否かが判断される。この場合、未だ、コマンド004〜006が描画されていないので(ステップ109、No)、処理は、ステップ101に戻る。
【0031】
再び、ステップ101において、未処理の中間データの先頭(コマンド004)から終端にかけてHW描画不可コマンドの有無を検出する処理が実行されると、今度は、HW描画不可コマンドとしてコマンド006が検出され(ステップ102、Yes)、ステップ103に進む。
【0032】
ステップ103においては、検出したHW描画不可コマンド(コマンド006)までを描画するのに要する第1の時間を予測し、続く、ステップ104においては、検出したHW描画不可コマンド(コマンド006)までを描画するのに要する第2の時間を予測する。
【0033】
続くステップ105においては、第1の時間が第2の時間より大きいか否かが判断される。この場合、図5(d)に示すように、第1の時間が第2の時間より大きいので(ステップ105、Yes)、ステップ106に進み、ハードウェア・レンダラー制御部47を制御してコマンド006の手前に存在するコマンド004およびコマンド005をハードウェア・レンダラー26に描画させるとともに、ソフトウェア・レンダラー46を制御してコマンド006を描画させる。その後、図5(e)に示すように、コマンド004〜006を描画処理済みとしてマークする。
【0034】
続くステップ109において、全ての描画コマンドの描画処理が完了したか否かが判断される。図5(e)に示す状態においては、全ての描画コマンド(コマンド001〜006)が描画されているので(ステップ109、Yes)、レンダラー切替制御部45は、処理を終了する。
【0035】
図6は、図5(a)に示した中間データの描画時間について、本実施形態による描画時間と従来技術による描画時間を並べて示す。なお、ここでいう従来技術とは、HW描画不可コマンドに対してはソフトウェア・レンダラーを、HW描画可能コマンドに対してはハードウェア・レンダラーを、それぞれ無条件に割り当てる技術をいうものとする。図6に示すように、図5(a)に示した中間データの場合は、本実施形態による描画時間と従来技術による描画時間の間に差は生じない。
【0036】
続いて、図7(a)に示すように、3つのHW描画不可コマンドが前半に連続して存在し、その後に3つのHW描画可能コマンドが連続して存在する中間データを例にとってレンダラー切替制御部45の処理を説明する。
【0037】
このケースの場合、ステップ101において、HW描画不可コマンドとして最初にコマンド001が検出され(ステップ102、Yes)、ステップ103に進む。
【0038】
ステップ103においては、検出したHW描画不可コマンド(コマンド001)までを描画するのに要する第1の時間を予測され、ステップ104においては、検出したHW描画不可コマンド(コマンド003)までを描画するのに要する第2の時間が予測される。しかしながら、この場合、コマンド001の手前にはHW描画可能コマンドが存在しないので、図7(b)に示すように、第1の時間=第2の時間となる。
【0039】
その結果、ステップ105においては、第1の時間が第2の時間より大きくないと判断され(ステップ105、No)、ステップ107に進む。ステップ107においては、ソフトウェア・レンダラー46を制御して、検出したHW描画不可コマンド(コマンド001)までの全ての描画コマンド(この場合、コマンド001のみ)を描画させる。
【0040】
続いて、ステップ109において、全ての描画コマンドの描画処理が完了したか否かが判断され(ステップ109、No)、処理は、ステップ101に戻る。ステップ101においては、2番目のHW描画不可コマンドとしてコマンド002が検出される。この場合も、コマンド002の手前にはHW描画可能コマンドが存在しないので、図7(b)に示すように、第1の時間=第2の時間となる。したがって、コマンド001について上述したステップ102〜109の一連の処理が繰り返され、再び、ステップ101に戻る。次のステップ101においては、3番目のHW描画不可コマンドとしてコマンド003が検出される。この場合も、コマンド003の手前にはHW描画可能コマンドが存在しないので、図7(b)に示すように、第1の時間=第2の時間となる。したがって、コマンド001について上述したステップ102〜109の一連の処理が繰り返され、再び、ステップ101に戻る。この間、図7(c)に示すように、コマンド001〜003が描画処理済みとしてマークされる。
【0041】
ステップ101においては、残る描画コマンド(コマンド004〜006)は、全てHW描画可能コマンドであるため、HW描画不可コマンドは、中間データの終端に至っても検出されない(ステップ102、No)。その結果、処理は、ステップ108に進み、ハードウェア・レンダラー制御部47を制御して未処理の描画コマンド(この場合は、コマンド004〜006)をハードウェア・レンダラー26に描画させるとともに、図7(d)に示すように、コマンド004〜006を描画処理済みとしてマークする。
【0042】
続くステップ109において、全ての描画コマンドの描画処理が完了したか否かが判断される。この場合、全ての描画コマンド(コマンド001〜006)が描画されているので(ステップ109、Yes)、レンダラー切替制御部45は、処理を終了する。
【0043】
図8は、図7(a)に示した中間データの描画時間について、本実施形態による描画時間と従来技術による描画時間を並べて示す。図8に示すように、図7(a)に示した中間データの場合も、本実施形態による描画時間と従来技術による描画時間の間に差は生じない。
【0044】
続いて、図9(a)に示すように、HW描画可能コマンドとHW描画不可コマンドが交互に存在する中間データを例にとってレンダラー切替制御部45の処理を説明する。
【0045】
このケースの場合、ステップ101において、HW描画不可コマンドとして最初にコマンド002が検出され(ステップ102、Yes)、ステップ103に進む。
【0046】
ステップ103においては、検出したHW描画不可コマンド(コマンド002)までを描画するのに要する第1の時間を予測され、ステップ104においては、検出したHW描画不可コマンド(コマンド002)までを描画するのに要する第2の時間が予測される。この場合、図9(b)に示すように、第1の時間が第2の時間より大きくなる。
【0047】
その結果、ステップ105においては、第1の時間が第2の時間より大きいと判断され(ステップ105、Yes)、ステップ106に進み、ハードウェア・レンダラー制御部47を制御してコマンド002の手前に存在するコマンド001をハードウェア・レンダラー26に描画させるとともに、ソフトウェア・レンダラー46を制御してコマンド002を描画させるとともに、コマンド001およびコマンド002を描画処理済みとしてマークする。
【0048】
続いて、ステップ109において、全ての描画コマンドの描画処理が完了したか否かが判断され(ステップ109、No)、処理は、ステップ101に戻る。ステップ101においては、2番目のHW描画不可コマンドとしてコマンド004が検出され(ステップ102、Yes)、ステップ103に進む。
【0049】
ステップ103においては、検出したHW描画不可コマンド(コマンド004)までを描画するのに要する第1の時間を予測され、ステップ104においては、検出したHW描画不可コマンド(コマンド004)までを描画するのに要する第2の時間が予測される。この場合、図9(c)に示すように、第1の時間は、第2の時間より小さくなる。なぜなら、この場合の第2の時間には、ソフトウェアからハードウェアへ切り替えるためのオーバーヘッドとハードウェアからソフトウェアへ切り替えるためのオーバーヘッドという2つのオーバーヘッドが加算されるからである。
【0050】
その結果、ステップ105においては、第1の時間が第2の時間より大きくないと判断され(ステップ105、No)、ステップ107に進む。ステップ107においては、ソフトウェア・レンダラー46を制御して、検出したHW描画不可コマンド(コマンド004)までの全ての描画コマンド(この場合、コマンド003およびコマンド004)を描画させるとともに、コマンド003およびコマンド004を描画処理済みとしてマークする。
【0051】
続いて、ステップ109において、全ての描画コマンドの描画処理が完了したか否かが判断され(ステップ109、No)、処理は、再び、ステップ101に戻る。ステップ101においては、3番目のHW描画不可コマンドとしてコマンド006が検出され(ステップ102、Yes)ステップ103に進む。
【0052】
ステップ103においては、検出したHW描画不可コマンド(コマンド006)までを描画するのに要する第1の時間を予測され、ステップ104においては、検出したHW描画不可コマンド(コマンド004)までを描画するのに要する第2の時間が予測される。この場合も図9(d)に示すように、コマンド003について説明したのと同じ理由から、第1の時間は第2の時間より小さくなる。
【0053】
その結果、ステップ105においては、第1の時間が第2の時間より大きくないと判断され(ステップ105、No)、ステップ107に進む。ステップ107においては、ソフトウェア・レンダラー46を制御して、検出したHW描画不可コマンド(コマンド006)までの全ての描画コマンド(すなわち、コマンド005およびコマンド006)を描画させるとともに、コマンド005およびコマンド006を描画処理済みとしてマークする。
【0054】
続くステップ109において、全ての描画コマンドの描画処理が完了したか否かが判断される。この時点では、図9(e)に示すように、コマンド001〜006が描画処理済みとしてマークされているので(ステップ109、Yes)、レンダラー切替制御部45は、処理を終了する。
【0055】
図10は、図9(a)に示した中間データの描画時間について、本実施形態による描画時間と従来技術による描画時間を並べて示す。図10に示すように、図9(a)に示した中間データの場合は、本実施形態によって描画時間が最適化されることが理解されるであろう。
【0056】
以上、説明したように、本発明によれば、描画時間が自動最適化され、高性能印刷装置の描画処理におけるスループットの低下が好適に防止される。
【0057】
上述した実施形態の各機能は、C、C++、C#、Java(登録商標)などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【0058】
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、例えば、HW描画不可コマンドの割合(HW描画不可コマンド数/全コマンド数)について所定の閾値を定義した上で、HW描画不可コマンドの割合が閾値を超える場合は、中間データの全ての描画コマンドをソフトウェア・レンダラーに描画させ、HW描画不可コマンドの割合が閾値を超えない場合には、HW描画不可コマンドに対してはソフトウェア・レンダラーを、HW描画可能コマンドに対してはハードウェア・レンダラーを、それぞれ割り当てるようにレンダラー切替制御部を構成することもできる。その他、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0059】
10…コントローラ
12…CPU
13…ROM
14…RAM
15…NVRAM
16…ネットワークI/F
17…エンジンI/F
18…パネルI/F
19…ハードウェアI/F
20…プリンタエンジン
22…パネル装置
24…ホストPC
26…ハードウェア・レンダラー
28…内部バス
30…プリンタ制御システム部
40…PDL部
41…PDLパーサ部
42…描画実行部
43…描画モジュールI/F部
44…中間データ保存部
45…レンダラー切替制御部
46…ソフトウェア・レンダラー
47…ハードウェア・レンダラー制御部
48…中間データメモリ
49…バンドメモリ
100…画像形成装置
【先行技術文献】
【特許文献】
【0060】
【特許文献1】特許第2875725号公報

【特許請求の範囲】
【請求項1】
印刷データを解析して得られる中間データに基づいて描画処理を実行するための描画実行部とハードウェア・レンダラーを備える画像形成装置であって、該描画実行部は、
前記中間データを構成する各描画コマンドの描画を実行するレンダラーを切替制御するレンダラー切替制御部と、
ソフトウェア・レンダラーと、
前記ハードウェア・レンダラーを制御するハードウェア・レンダラー制御部と
を含み、
前記レンダラー切替制御部は、
未処理の前記中間データにおいて、前記ハードウェア・レンダラーが処理できない描画コマンドであるHW描画不可コマンドの有無を検出する手段と、
検出した前記HW描画不可コマンドまでに存在する全ての描画コマンドを前記ソフトウェア・レンダラーで描画するのに要する第1の時間を予測する手段と、
検出した前記HW描画不可コマンドの手前に存在するその余の描画コマンドを前記ハードウェア・レンダラーで描画した後に、検出した前記HW描画不可コマンドを前記ソフトウェア・レンダラーで描画するのに要する時間であって、レンダラー切り替えに伴うオーバーヘッドを含む時間である第2の時間を予測する手段と、
前記第1の時間が前記第2の時間より大きい場合に、前記HW描画不可コマンドまでに存在する描画コマンドのうち、前記HW描画不可コマンドを前記ソフトウェア・レンダラーに描画させ、前記その余の描画コマンドを前記ハードウェア・レンダラー制御部を制御して前記ハードウェア・レンダラーに描画させる手段と、
前記第1の時間が前記第2の時間より大きくない場合に、前記HW描画不可コマンドまでに存在する全ての描画コマンドを前記ソフトウェア・レンダラーに描画させる手段とを含む
画像形成装置。
【請求項2】
前記レンダラー切替制御部は、未処理の前記中間データにHW描画不可コマンドが検出されない場合、該中間データに含まれる全ての描画コマンドを前記ハードウェア・レンダラー制御部を制御して前記ハードウェア・レンダラーに描画させる手段をさらに含む、請求項1に記載の画像形成装置。
【請求項3】
コンピュータに、印刷データを解析して得られる中間データに基づいて描画処理を実行させる方法であって、
未処理の前記中間データにおいて、ハードウェア・レンダラーが処理できない描画コマンドであるHW描画不可コマンドの有無を検出するステップと、
検出した前記HW描画不可コマンドに至るまでに存在する全ての描画コマンドをソフトウェア・レンダラーで描画するのに要する第1の時間を予測するステップと、
検出した前記HW描画不可コマンドの手前に存在するその余の描画コマンドを前記ハードウェア・レンダラーで描画した後に、検出した前記HW描画不可コマンドを前記ソフトウェア・レンダラーで描画するのに要する時間であって、レンダラー切り替えに伴うオーバーヘッドを含む時間である第2の時間を予測するステップと、
前記第1の時間が前記第2の時間より大きい場合に、前記HW描画不可コマンドまでに存在する描画コマンドのうち、前記HW描画不可コマンドを前記ソフトウェア・レンダラーに描画させ、前記その余の描画コマンドを前記ハードウェア・レンダラーに描画させるステップと、
前記第1の時間が前記第2の時間より大きくない場合に、前記HW描画不可コマンドまでに存在する全ての描画コマンドを前記ソフトウェア・レンダラーに描画させるステップとを
実行させる方法。
【請求項4】
さらに、未処理の前記中間データに前記HW描画不可コマンドが検出されない場合、該中間データに含まれる全ての描画コマンドを前記ハードウェア・レンダラーに描画させるステップを含む、請求項3に記載の方法。
【請求項5】
コンピュータに請求項3または4に記載の方法の各ステップを実行させるためのコンピュータ実行可能なプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−103458(P2013−103458A)
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願番号】特願2011−250325(P2011−250325)
【出願日】平成23年11月16日(2011.11.16)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】