(57)【要約】【課題】本発明は、描画時間を自動最適化する新規な画像形成装置、方法及びプログラムを提供することを目的とする。【解決手段】本発明の画像形成装置におけるレンダラー切替制御部は、未処理の中間データについてＨＷ描画不可コマンドの有無を検出し、検出したＨＷ描画不可コマンドまでに存在する全ての描画コマンドをソフトウェアで描画するのに要する第１の時間を予測する手段と、検出したＨＷ描画不可コマンドまでに存在する描画コマンドについてハードウェアとソフトウェアで描画するのに要する時間であって、レンダラー切り替えに伴うオーバーヘッドを含む時間である第２の時間を予測する手段と、第１の時間が第２の時間より大きい場合に、当該描画コマンドについてハードウェアとソフトウェアで描画させる手段と、第１の時間が第２の時間より大きくない場合に、当該描画コマンドをソフトウェア・レンダラーに描画させる手段とを含む。【選択図】図３
2013103458.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを解析して得られる中間データに基づいて描画処理を実行するための描画実行部とハードウェア・レンダラーを備える画像形成装置であって、該描画実行部は、
前記中間データを構成する各描画コマンドの描画を実行するレンダラーを切替制御するレンダラー切替制御部と、
ソフトウェア・レンダラーと、
前記ハードウェア・レンダラーを制御するハードウェア・レンダラー制御部と
を含み、
前記レンダラー切替制御部は、
未処理の前記中間データにおいて、前記ハードウェア・レンダラーが処理できない描画コマンドであるＨＷ描画不可コマンドの有無を検出する手段と、
検出した前記ＨＷ描画不可コマンドまでに存在する全ての描画コマンドを前記ソフトウェア・レンダラーで描画するのに要する第１の時間を予測する手段と、
検出した前記ＨＷ描画不可コマンドの手前に存在するその余の描画コマンドを前記ハードウェア・レンダラーで描画した後に、検出した前記ＨＷ描画不可コマンドを前記ソフトウェア・レンダラーで描画するのに要する時間であって、レンダラー切り替えに伴うオーバーヘッドを含む時間である第２の時間を予測する手段と、
前記第１の時間が前記第２の時間より大きい場合に、前記ＨＷ描画不可コマンドまでに存在する描画コマンドのうち、前記ＨＷ描画不可コマンドを前記ソフトウェア・レンダラーに描画させ、前記その余の描画コマンドを前記ハードウェア・レンダラー制御部を制御して前記ハードウェア・レンダラーに描画させる手段と、
前記第１の時間が前記第２の時間より大きくない場合に、前記ＨＷ描画不可コマンドまでに存在する全ての描画コマンドを前記ソフトウェア・レンダラーに描画させる手段とを含む
画像形成装置。
【請求項２】
前記レンダラー切替制御部は、未処理の前記中間データにＨＷ描画不可コマンドが検出されない場合、該中間データに含まれる全ての描画コマンドを前記ハードウェア・レンダラー制御部を制御して前記ハードウェア・レンダラーに描画させる手段をさらに含む、請求項１に記載の画像形成装置。
【請求項３】
コンピュータに、印刷データを解析して得られる中間データに基づいて描画処理を実行させる方法であって、
未処理の前記中間データにおいて、ハードウェア・レンダラーが処理できない描画コマンドであるＨＷ描画不可コマンドの有無を検出するステップと、
検出した前記ＨＷ描画不可コマンドに至るまでに存在する全ての描画コマンドをソフトウェア・レンダラーで描画するのに要する第１の時間を予測するステップと、
検出した前記ＨＷ描画不可コマンドの手前に存在するその余の描画コマンドを前記ハードウェア・レンダラーで描画した後に、検出した前記ＨＷ描画不可コマンドを前記ソフトウェア・レンダラーで描画するのに要する時間であって、レンダラー切り替えに伴うオーバーヘッドを含む時間である第２の時間を予測するステップと、
前記第１の時間が前記第２の時間より大きい場合に、前記ＨＷ描画不可コマンドまでに存在する描画コマンドのうち、前記ＨＷ描画不可コマンドを前記ソフトウェア・レンダラーに描画させ、前記その余の描画コマンドを前記ハードウェア・レンダラーに描画させるステップと、
前記第１の時間が前記第２の時間より大きくない場合に、前記ＨＷ描画不可コマンドまでに存在する全ての描画コマンドを前記ソフトウェア・レンダラーに描画させるステップとを
実行させる方法。
【請求項４】
さらに、未処理の前記中間データに前記ＨＷ描画不可コマンドが検出されない場合、該中間データに含まれる全ての描画コマンドを前記ハードウェア・レンダラーに描画させるステップを含む、請求項３に記載の方法。
【請求項５】
コンピュータに請求項３または４に記載の方法の各ステップを実行させるためのコンピュータ実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、方法及びプログラムに関する。
【背景技術】
【０００２】
近年の高解像度化・多機能化の要請に伴って、印刷装置におけるＰＤＬ部の処理量は増加の一途を辿っており、この点につき、現在、高性能印刷装置の多くは、処理速度が速いハードウェアアクセラレータに一部の描画コマンド（文字や直線など）を処理させることによってスループットの低下を防止している。
【０００３】
この点につき、特許第２８７５７２５号公報（特許文献１）は、ハードウェアでレンダリングできる描画コマンドについては、ハードウェアでレンダリングし、ハードウェアでレンダリングできない高度な論理描画コマンドについてソフトウェアでレンダリングする印刷制御装置を開示する。
【０００４】
しかしながら、描画コマンドの種類に応じて、描画性能差のある２つのレンダラー（ハードウェア・レンダラー／ソフトウェア・レンダラー）を無条件に切り替える方法では、ケースによって、ハードウェア・レンダラーを使用することで短縮された時間よりもレンダラーの切り替えに伴って生じるオーバーヘッドの方が大きくなり、結果的にスループットが低下するという問題があった。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記従来技術における課題に鑑みてなされたものであり、本発明は、描画時間を自動最適化する新規な画像形成装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明者は、描画時間を自動最適化する新規な画像形成装置、方法及びプログラムにつき鋭意検討した結果、以下の構成に想到し、本発明に至ったのである。
【０００７】
すなわち、本発明によれば、印刷データを解析して得られる中間データに基づいて描画処理を実行するための描画実行部とハードウェア・レンダラーを備える画像形成装置であって、該描画実行部は、前記中間データを構成する各描画コマンドの描画を実行するレンダラーを切替制御するレンダラー切替制御部と、ソフトウェア・レンダラーと、前記ハードウェア・レンダラーを制御するハードウェア・レンダラー制御部とを含み、前記レンダラー切替制御部は、未処理の前記中間データにおいて、前記ハードウェア・レンダラーが処理できない描画コマンドであるＨＷ描画不可コマンドの有無を検出する手段と、検出した前記ＨＷ描画不可コマンドまでに存在する全ての描画コマンドを前記ソフトウェア・レンダラーで描画するのに要する第１の時間を予測する手段と、検出した前記ＨＷ描画不可コマンドの手前に存在するその余の描画コマンドを前記ハードウェア・レンダラーで描画した後に、検出した前記ＨＷ描画不可コマンドを前記ソフトウェア・レンダラーで描画するのに要する時間であって、レンダラー切り替えに伴うオーバーヘッドを含む時間である第２の時間を予測する手段と、前記第１の時間が前記第２の時間より大きい場合に、前記ＨＷ描画不可コマンドまでに存在する描画コマンドのうち、前記ＨＷ描画不可コマンドを前記ソフトウェア・レンダラーに描画させ、前記その余の描画コマンドを前記ハードウェア・レンダラー制御部を制御して前記ハードウェア・レンダラーに描画させる手段と、前記第１の時間が前記第２の時間より大きくない場合に、前記ＨＷ描画不可コマンドまでに存在する全ての描画コマンドを前記ソフトウェア・レンダラーに描画させる手段とを含む画像形成装置が提供される。
【図面の簡単な説明】
【０００８】
【図１】本実施形態の画像形成装置のハードウェア構成図。
【図２】本実施形態の画像形成装置のソフトウェア構成図。
【図３】本実施形態におけるＰＤＬ部の機能ブロック図。
【図４】レンダラー切替制御部が実行する処理のフローチャート。
【図５】レンダラー切替制御部の処理の内容を説明するための概念図。
【図６】レンダラー切替制御部の処理の内容を説明するための概念図。
【図７】レンダラー切替制御部の処理の内容を説明するための概念図。
【図８】レンダラー切替制御部の処理の内容を説明するための概念図。
【図９】レンダラー切替制御部の処理の内容を説明するための概念図。
【図１０】レンダラー切替制御部の処理の内容を説明するための概念図。
【発明を実施するための形態】
【０００９】
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
【００１０】
図１は、本発明の実施形態である画像形成装置１００のハードウェア構成図を示す。画像形成装置１００は、装置全体を制御するためのコントローラ１０と、コントローラ１０が生成した印刷用画像データに基づいて用紙に画像を印刷するためのプリンタエンジン２０と、表示部および操作部を備え、ユーザーインターフェースとして機能するパネル装置２２と、ハードウェア・レンダラー２６を含んで構成されている。
【００１１】
ハードウェア・レンダラー２６は、例えば、ＡＳＩＣとして構成することができ、描画コマンドの種類（矩形、文字、直線など）を限定して、描画処理（レンダリング）を実行するハードウェアアクセラレータである。
【００１２】
コントローラ１０は、ホストＰＣ２４から受信した印刷データ（ＰＤＬデータ）に基づいて実行される各種の描画処理を経て出力用画像データを生成し、当該出力用画像データをプリンタエンジン２０に出力する。
【００１３】
コントローラ１０は、ソフトウェアプログラムの命令を実行するためのＣＰＵ１２と、コントローラ１０上で動作するプログラムを格納するためのＲＯＭ１３と、コントローラソフトが作成するページメモリやソフトウェアが動作するために必要なワークメモリを提供するＲＡＭ１４と、印刷条件設定などを保存するための不揮発性メモリとして例示されるＮＶＲＡＭ１５と、ネットワーク上に接続されたホストＰＣ２４とデータのやり取りを行うためのネットワークＩ／Ｆ１６と、プリンタエンジン２０に対して印刷指示等を行うためのエンジンＩ／Ｆ１７と、パネル装置２２との入出力を行うためのパネルＩ／Ｆ１８と、ハードウェア・レンダラー２６に対して描画指示等を行うためのハードウェアＩ／Ｆ１９とを含んで構成されており、各要素は、内部バス２８を介して相互に接続されている。
【００１４】
図２は、本実施形態の画像形成装置１００のソフトウェア構成図を示す。画像形成装置１００のコントローラ１０は、図１に示したＣＰＵ１２がＲＯＭ１３に格納されるコントローラソフトを実行することによって、コントローラ１０全体を制御するためのプリンタ制御システム部３０と、ホストＰＣ２４から受信したＰＤＬデータに基づいて出力用画像データを生成するためのＰＤＬ部４０とを含んで構成されている。
【００１５】
図３は、ＰＤＬ部４０の機能ブロック図を示す。ＰＤＬ部４０は、PostScript（登録商標）、PCL（登録商標）、RPCS（登録商標）などの各種ページ記述言語の構文解析を行うＰＤＬパーサ部４１と、ＰＤＬパーサ部４１の解析結果として得られる描画条件に従って出力用画像データを生成する描画実行部４２とを含んで構成される。
【００１６】
描画実行部４２は、描画モジュールＩ／Ｆ部４３と、中間データ保存部４４と、レンダラー切替制御部４５と、ソフトウェア・レンダラー４６と、ハードウェア・レンダラー制御部４７とを含んで構成される。
【００１７】
ＰＤＬパーサ部４１は、ＰＤＬデータを構文解析し、描画条件としてテキスト、イメージ、ベクターグラフィックスなどの描画コマンドと色や透過設定などの描画設定情報を得ると、これらの描画条件を描画モジュールＩ／Ｆ部４３を介して中間データ保存部４４に渡す。
【００１８】
中間データ保存部４４は、ＰＤＬパーサ部４１から受領した描画条件（描画コマンドおよび描画設定情報）を中間データとして中間データメモリ４８に保存し、中間データの保存が完了した時点で、その旨をレンダラー切替制御部４５に通知する。
【００１９】
レンダラー切替制御部４５は、中間データ保存部４４から中間データ保存完了通知を受領したことに応答して、描画時間を最適化（最小化）すべく、各描画コマンドの描画処理を実行するレンダラー（ソフトウェア・レンダラー４６またはハードウェア・レンダラー２６）を適応的に決定する。
【００２０】
レンダラー切替制御部４５は、所定の描画コマンドのレンダラーをソフトウェア・レンダラー４６に決定した場合には、その旨をソフトウェア・レンダラー４６に通知し、ソフトウェア・レンダラー４６に描画処理を実行させる。一方、所定の描画コマンドのレンダラーをハードウェア・レンダラー２６に決定した場合には、その旨をハードウェア・レンダラー制御部４７に通知し、ハードウェア・レンダラー制御部４７を制御して、ハードウェア・レンダラー２６に描画処理を実行させる。
【００２１】
ソフトウェア・レンダラー４６は、レンダラー切替制御部４５から通知を受けると、中間データメモリ４８に保存される中間データを参照しながらバンドメモリ４９へのレンダリングを実行する。一方、ハードウェア・レンダラー制御部４７は、レンダラー切替制御部４５から通知を受けると、ハードウェア・レンダラー２６を制御して中間データメモリ４８に保存される中間データを参照させ、バンドメモリ４９へのレンダリングを実行させる。以上、ＰＤＬ部４０を構成する各機能部について説明してきたが、次に、レンダラー切替制御部４５が実行する処理について、図４〜図１０に基づいて説明する。
【００２２】
図４は、レンダラー切替制御部４５が実行する処理のフローチャートを示し、図５〜１０は、レンダラー切替制御部４５が実行する処理の内容を説明するための概念図を示す。なお、図５〜１０は、ハードウェア・レンダラー２６の描画性能がソフトウェア・レンダラー４６のそれの２倍である場合を想定している。また、以下の説明においては、ハードウェアが描画できる描画コマンドをＨＷ描画可能コマンドとして参照し、図５〜１０において「可」と示し、ハードウェアが描画できない描画コマンドをＨＷ描画不可コマンドとして参照し、図５〜１０において「不可」と示す。
【００２３】
レンダラー切替制御部４５は、中間データ保存部４４から中間データ保存完了通知を受領したことに応答して、以下の処理を開始する。まず、ステップ１０１において、中間データメモリ４８に保存された中間データを参照し、その先頭から終端に向かってＨＷ描画不可コマンドの有無を検出する。ここでいうＨＷ描画不可コマンドとしては、ベクターグラフィックの描画コマンドを例示することができる。
【００２４】
例えば、３つのＨＷ描画可能コマンドと３つのＨＷ描画不可コマンドが図５（ａ）に示すように混在してなる中間データの場合には、ステップ１０１において、最初のＨＷ描画不可コマンドとしてコマンド００３が検出され（ステップ１０２、Ｙｅｓ）、ステップ１０３に進む。
【００２５】
ステップ１０３においては、検出したＨＷ描画不可コマンド（コマンド００３）までを描画するのに要する第１の時間を予測する。ここで、第１の時間とは、検出したＨＷ描画不可コマンド（コマンド００３）に至るまでに存在する全ての描画コマンド（コマンド００１、コマンド００２、コマンド００３）をソフトウェア・レンダラー４６で描画するのに要する時間をいう。各描画コマンドをソフトウェア・レンダラー４６で描画するのに要する時間（以下、ソフト描画時間という）は、描画コマンドの種類およびその描画範囲に基づいて既知の手法によって予測することができる。
【００２６】
続いて、ステップ１０４においては、検出したＨＷ描画不可コマンド（コマンド００３）までを描画するのに要する第２の時間を予測する。ここで、第２の時間とは、検出したＨＷ描画不可コマンド（コマンド００３）の手前に存在するＨＷ描画可能コマンド（コマンド００１、コマンド００２）をハードウェア・レンダラー２６で描画した後に、検出したＨＷ描画不可コマンド（コマンド００３）をソフトウェア・レンダラー４６で描画するのに要する時間であって、レンダラー切り替えに伴うオーバーヘッドを含む時間をいう。各描画コマンドをハードウェア・レンダラー２６で描画するのに要する時間（以下、ハードウェア描画時間という）は、描画コマンドの種類およびその描画範囲に基づいて既知の手法によって予測することができる。なお、本実施形態は、上述したステップ１０３および１０４の順序を限定するものではなく、両ステップは並列的に実行されても良い。
【００２７】
検出したＨＷ描画不可コマンド（コマンド００３）までを描画するのに要する第１の時間および第２の時間は、図５（ｂ）に示すようになる。すなわち、第１の時間は、コマンド００１〜００３のそれぞれのソフトウェア描画時間の合計時間となり、第２の時間は、コマンド００１およびコマンド００２のそれぞれのハードウェア描画時間と、コマンド００３のソフトウェア描画時間と、オーバーヘッド（図５において「ＯＨ」と示す）の合計時間となる。ここで、オーバーヘッドとは、レンダラーの切り替えに伴うバンドメモリ４９のオープン・クローズのやり直しやハードウェア・レンダラー２６の初期化処理等に要する時間に該当する。
【００２８】
続くステップ１０５においては、第１の時間が第２の時間より大きいか否かが判断される。図５（ｂ）に示す例の場合、第１の時間は第２の時間より大きいので（ステップ１０５、Ｙｅｓ）、ステップ１０６に進む。
【００２９】
ステップ１０６においては、ハードウェア・レンダラー制御部４７を制御してコマンド００３の手前に存在するコマンド００１およびコマンド００２をハードウェア・レンダラー２６に描画させるとともに、ソフトウェア・レンダラー４６を制御してコマンド００３を描画させる。その後、図５（ｃ）に示すように、中間データのコマンド００１〜００３を描画処理済みとしてマークする。
【００３０】
続いて、ステップ１０９において、全ての描画コマンドの描画処理が完了したか否かが判断される。この場合、未だ、コマンド００４〜００６が描画されていないので（ステップ１０９、Ｎｏ）、処理は、ステップ１０１に戻る。
【００３１】
再び、ステップ１０１において、未処理の中間データの先頭（コマンド００４）から終端にかけてＨＷ描画不可コマンドの有無を検出する処理が実行されると、今度は、ＨＷ描画不可コマンドとしてコマンド００６が検出され（ステップ１０２、Ｙｅｓ）、ステップ１０３に進む。
【００３２】
ステップ１０３においては、検出したＨＷ描画不可コマンド（コマンド００６）までを描画するのに要する第１の時間を予測し、続く、ステップ１０４においては、検出したＨＷ描画不可コマンド（コマンド００６）までを描画するのに要する第２の時間を予測する。
【００３３】
続くステップ１０５においては、第１の時間が第２の時間より大きいか否かが判断される。この場合、図５（ｄ）に示すように、第１の時間が第２の時間より大きいので（ステップ１０５、Ｙｅｓ）、ステップ１０６に進み、ハードウェア・レンダラー制御部４７を制御してコマンド００６の手前に存在するコマンド００４およびコマンド００５をハードウェア・レンダラー２６に描画させるとともに、ソフトウェア・レンダラー４６を制御してコマンド００６を描画させる。その後、図５（ｅ）に示すように、コマンド００４〜００６を描画処理済みとしてマークする。
【００３４】
続くステップ１０９において、全ての描画コマンドの描画処理が完了したか否かが判断される。図５（ｅ）に示す状態においては、全ての描画コマンド（コマンド００１〜００６）が描画されているので（ステップ１０９、Ｙｅｓ）、レンダラー切替制御部４５は、処理を終了する。
【００３５】
図６は、図５（ａ）に示した中間データの描画時間について、本実施形態による描画時間と従来技術による描画時間を並べて示す。なお、ここでいう従来技術とは、ＨＷ描画不可コマンドに対してはソフトウェア・レンダラーを、ＨＷ描画可能コマンドに対してはハードウェア・レンダラーを、それぞれ無条件に割り当てる技術をいうものとする。図６に示すように、図５（ａ）に示した中間データの場合は、本実施形態による描画時間と従来技術による描画時間の間に差は生じない。
【００３６】
続いて、図７（ａ）に示すように、３つのＨＷ描画不可コマンドが前半に連続して存在し、その後に３つのＨＷ描画可能コマンドが連続して存在する中間データを例にとってレンダラー切替制御部４５の処理を説明する。
【００３７】
このケースの場合、ステップ１０１において、ＨＷ描画不可コマンドとして最初にコマンド００１が検出され（ステップ１０２、Ｙｅｓ）、ステップ１０３に進む。
【００３８】
ステップ１０３においては、検出したＨＷ描画不可コマンド（コマンド００１）までを描画するのに要する第１の時間を予測され、ステップ１０４においては、検出したＨＷ描画不可コマンド（コマンド００３）までを描画するのに要する第２の時間が予測される。しかしながら、この場合、コマンド００１の手前にはＨＷ描画可能コマンドが存在しないので、図７（ｂ）に示すように、第１の時間＝第２の時間となる。
【００３９】
その結果、ステップ１０５においては、第１の時間が第２の時間より大きくないと判断され（ステップ１０５、Ｎｏ）、ステップ１０７に進む。ステップ１０７においては、ソフトウェア・レンダラー４６を制御して、検出したＨＷ描画不可コマンド（コマンド００１）までの全ての描画コマンド（この場合、コマンド００１のみ）を描画させる。
【００４０】
続いて、ステップ１０９において、全ての描画コマンドの描画処理が完了したか否かが判断され（ステップ１０９、Ｎｏ）、処理は、ステップ１０１に戻る。ステップ１０１においては、２番目のＨＷ描画不可コマンドとしてコマンド００２が検出される。この場合も、コマンド００２の手前にはＨＷ描画可能コマンドが存在しないので、図７（ｂ）に示すように、第１の時間＝第２の時間となる。したがって、コマンド００１について上述したステップ１０２〜１０９の一連の処理が繰り返され、再び、ステップ１０１に戻る。次のステップ１０１においては、３番目のＨＷ描画不可コマンドとしてコマンド００３が検出される。この場合も、コマンド００３の手前にはＨＷ描画可能コマンドが存在しないので、図７（ｂ）に示すように、第１の時間＝第２の時間となる。したがって、コマンド００１について上述したステップ１０２〜１０９の一連の処理が繰り返され、再び、ステップ１０１に戻る。この間、図７（ｃ）に示すように、コマンド００１〜００３が描画処理済みとしてマークされる。
【００４１】
ステップ１０１においては、残る描画コマンド（コマンド００４〜００６）は、全てＨＷ描画可能コマンドであるため、ＨＷ描画不可コマンドは、中間データの終端に至っても検出されない（ステップ１０２、Ｎｏ）。その結果、処理は、ステップ１０８に進み、ハードウェア・レンダラー制御部４７を制御して未処理の描画コマンド（この場合は、コマンド００４〜００６）をハードウェア・レンダラー２６に描画させるとともに、図７（ｄ）に示すように、コマンド００４〜００６を描画処理済みとしてマークする。
【００４２】
続くステップ１０９において、全ての描画コマンドの描画処理が完了したか否かが判断される。この場合、全ての描画コマンド（コマンド００１〜００６）が描画されているので（ステップ１０９、Ｙｅｓ）、レンダラー切替制御部４５は、処理を終了する。
【００４３】
図８は、図７（ａ）に示した中間データの描画時間について、本実施形態による描画時間と従来技術による描画時間を並べて示す。図８に示すように、図７（ａ）に示した中間データの場合も、本実施形態による描画時間と従来技術による描画時間の間に差は生じない。
【００４４】
続いて、図９（ａ）に示すように、ＨＷ描画可能コマンドとＨＷ描画不可コマンドが交互に存在する中間データを例にとってレンダラー切替制御部４５の処理を説明する。
【００４５】
このケースの場合、ステップ１０１において、ＨＷ描画不可コマンドとして最初にコマンド００２が検出され（ステップ１０２、Ｙｅｓ）、ステップ１０３に進む。
【００４６】
ステップ１０３においては、検出したＨＷ描画不可コマンド（コマンド００２）までを描画するのに要する第１の時間を予測され、ステップ１０４においては、検出したＨＷ描画不可コマンド（コマンド００２）までを描画するのに要する第２の時間が予測される。この場合、図９（ｂ）に示すように、第１の時間が第２の時間より大きくなる。
【００４７】
その結果、ステップ１０５においては、第１の時間が第２の時間より大きいと判断され（ステップ１０５、Ｙｅｓ）、ステップ１０６に進み、ハードウェア・レンダラー制御部４７を制御してコマンド００２の手前に存在するコマンド００１をハードウェア・レンダラー２６に描画させるとともに、ソフトウェア・レンダラー４６を制御してコマンド００２を描画させるとともに、コマンド００１およびコマンド００２を描画処理済みとしてマークする。
【００４８】
続いて、ステップ１０９において、全ての描画コマンドの描画処理が完了したか否かが判断され（ステップ１０９、Ｎｏ）、処理は、ステップ１０１に戻る。ステップ１０１においては、２番目のＨＷ描画不可コマンドとしてコマンド００４が検出され（ステップ１０２、Ｙｅｓ）、ステップ１０３に進む。
【００４９】
ステップ１０３においては、検出したＨＷ描画不可コマンド（コマンド００４）までを描画するのに要する第１の時間を予測され、ステップ１０４においては、検出したＨＷ描画不可コマンド（コマンド００４）までを描画するのに要する第２の時間が予測される。この場合、図９（ｃ）に示すように、第１の時間は、第２の時間より小さくなる。なぜなら、この場合の第２の時間には、ソフトウェアからハードウェアへ切り替えるためのオーバーヘッドとハードウェアからソフトウェアへ切り替えるためのオーバーヘッドという２つのオーバーヘッドが加算されるからである。
【００５０】
その結果、ステップ１０５においては、第１の時間が第２の時間より大きくないと判断され（ステップ１０５、Ｎｏ）、ステップ１０７に進む。ステップ１０７においては、ソフトウェア・レンダラー４６を制御して、検出したＨＷ描画不可コマンド（コマンド００４）までの全ての描画コマンド（この場合、コマンド００３およびコマンド００４）を描画させるとともに、コマンド００３およびコマンド００４を描画処理済みとしてマークする。
【００５１】
続いて、ステップ１０９において、全ての描画コマンドの描画処理が完了したか否かが判断され（ステップ１０９、Ｎｏ）、処理は、再び、ステップ１０１に戻る。ステップ１０１においては、３番目のＨＷ描画不可コマンドとしてコマンド００６が検出され（ステップ１０２、Ｙｅｓ）ステップ１０３に進む。
【００５２】
ステップ１０３においては、検出したＨＷ描画不可コマンド（コマンド００６）までを描画するのに要する第１の時間を予測され、ステップ１０４においては、検出したＨＷ描画不可コマンド（コマンド００４）までを描画するのに要する第２の時間が予測される。この場合も図９（ｄ）に示すように、コマンド００３について説明したのと同じ理由から、第１の時間は第２の時間より小さくなる。
【００５３】
その結果、ステップ１０５においては、第１の時間が第２の時間より大きくないと判断され（ステップ１０５、Ｎｏ）、ステップ１０７に進む。ステップ１０７においては、ソフトウェア・レンダラー４６を制御して、検出したＨＷ描画不可コマンド（コマンド００６）までの全ての描画コマンド（すなわち、コマンド００５およびコマンド００６）を描画させるとともに、コマンド００５およびコマンド００６を描画処理済みとしてマークする。
【００５４】
続くステップ１０９において、全ての描画コマンドの描画処理が完了したか否かが判断される。この時点では、図９（ｅ）に示すように、コマンド００１〜００６が描画処理済みとしてマークされているので（ステップ１０９、Ｙｅｓ）、レンダラー切替制御部４５は、処理を終了する。
【００５５】
図１０は、図９（ａ）に示した中間データの描画時間について、本実施形態による描画時間と従来技術による描画時間を並べて示す。図１０に示すように、図９（ａ）に示した中間データの場合は、本実施形態によって描画時間が最適化されることが理解されるであろう。
【００５６】
以上、説明したように、本発明によれば、描画時間が自動最適化され、高性能印刷装置の描画処理におけるスループットの低下が好適に防止される。
【００５７】
上述した実施形態の各機能は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００５８】
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、例えば、ＨＷ描画不可コマンドの割合（ＨＷ描画不可コマンド数／全コマンド数）について所定の閾値を定義した上で、ＨＷ描画不可コマンドの割合が閾値を超える場合は、中間データの全ての描画コマンドをソフトウェア・レンダラーに描画させ、ＨＷ描画不可コマンドの割合が閾値を超えない場合には、ＨＷ描画不可コマンドに対してはソフトウェア・レンダラーを、ＨＷ描画可能コマンドに対してはハードウェア・レンダラーを、それぞれ割り当てるようにレンダラー切替制御部を構成することもできる。その他、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００５９】
１０…コントローラ
１２…ＣＰＵ
１３…ＲＯＭ
１４…ＲＡＭ
１５…ＮＶＲＡＭ
１６…ネットワークＩ／Ｆ
１７…エンジンＩ／Ｆ
１８…パネルＩ／Ｆ
１９…ハードウェアＩ／Ｆ
２０…プリンタエンジン
２２…パネル装置
２４…ホストＰＣ
２６…ハードウェア・レンダラー
２８…内部バス
３０…プリンタ制御システム部
４０…ＰＤＬ部
４１…ＰＤＬパーサ部
４２…描画実行部
４３…描画モジュールＩ／Ｆ部
４４…中間データ保存部
４５…レンダラー切替制御部
４６…ソフトウェア・レンダラー
４７…ハードウェア・レンダラー制御部
４８…中間データメモリ
４９…バンドメモリ
１００…画像形成装置
【先行技術文献】
【特許文献】
【００６０】
【特許文献１】特許第２８７５７２５号公報
【図１】
2013103458.tif 000003
【図２】
2013103458.tif 000004
【図３】
2013103458.tif 000005
【図４】
2013103458.tif 000006
【図５】
2013103458.tif 000007
【図６】
2013103458.tif 000008
【図７】
2013103458.tif 000009
【図８】
2013103458.tif 000010
【図９】
2013103458.tif 000011
【図１０】
2013103458.tif 000012