(57)【要約】【課題】ハードウェア及びソフトウェアによって描画処理可能な画像形成装置において、ハードウェアの処理状態を簡易な構成によって把握し、ハードウェアとソフトウェアとの処理の分散の最適化を可能とすること。【解決手段】描画処理をハードウェアとして実行するハードウェアアクセラレータ２３０と、描画処理部２２５及びハードウェアアクセラレータ２３０が実行する描画処理の割合を制御するハードウェア描画処理制御部２２３とを含み、ハードウェアアクセラレータ２３０は、描画処理を実行する際の動作クロックをカウントする動作クロックカウンタ２３１と、ＲＡＭ２０へアクセスするために待機している期間のクロックをカウントするＷＡＩＴクロックカウンタ２３２とを含み、ハードウェア描画処理制御部２２３は、カウント値に基づいて描画処理の割合を制御することを特徴とする。【選択図】図４
2012161993.tif 000002
【特許請求の範囲】
【請求項１】
画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像形成装置であって、
ページ記述言語に基づいて得られた描画命令に基づき、描画すべき図形毎に情報がまとめられた図形情報を生成して記憶媒体に記憶させる図形情報生成部と、
前記記憶された図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をソフトウェア処理によって実行する描画情報生成部と、
前記描画処理をハードウェアとして実行する描画情報生成回路と、
前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御する描画処理制御部とを含み、
前記描画情報生成回路は、
前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、
前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、
前記描画処理制御部は、前記動作クロックカウント部及び前記待機クロックカウント部のカウント値に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする画像形成装置。
【請求項２】
前記描画処理制御部は、前記動作クロックカウント部のカウント値に対する前記待機クロックカウント部のカウント値の割合が所定の上限値よりも大きい場合、前記描画情報生成回路が実行する描画処理の割合を増やすように制御することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記描画処理制御部は、前記動作クロックカウント部のカウント値に対する前記待機クロックカウント部のカウント値の割合が所定の下限値よりも小さい場合、前記描画情報生成部が実行する描画処理の割合を増やすように制御することを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記描画処理制御部は、前記動作クロックカウント部のカウント値に対する前記待機クロックカウント部のカウント値の割合が所定の下限値よりも小さい場合、前記描画情報生成回路が実行する描画処理の割合を増やすように制御し、その後前記動作クロックカウント部のカウント値に対する前記待機クロックカウント部のカウント値の割合が減少した場合、前記描画情報生成部が実行する描画処理の割合を増やすように制御することを特徴とする請求項１または２に記載の画像形成装置。
【請求項５】
前記図形情報生成部は、単位ページが複数の領域に分割された分割領域毎に前記図形情報を生成して前記記憶媒体に記憶させ、
前記描画処理制御部は、一の前記分割領域について前記描画情報生成回路が前記描画情報を生成する間の前記動作クロックカウント部及び前記待機クロックカウント部のカウント値に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする請求項１乃至４いずれかに記載の画像形成装置。
【請求項６】
前記描画処理制御部は、前記図形情報から前記描画情報を生成するまでに実行される複数種類の処理を分割して前記描画情報生成部及び前記描画情報生成回路に割り振ることにより、前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする請求項１乃至５いずれか１項に記載の画像形成装置。
【請求項７】
前記描画処理制御部は、前記動作クロックカウント部及び前記待機クロックカウント部のカウント値と、前記描画情報生成部を実現するための演算装置の負荷状況に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする請求項１乃至６いずれかに記載の画像形成装置。
【請求項８】
前記描画処理制御部は、前記動作クロックカウント部のカウント値に対する前記待機クロックカウント部のカウント値の割合が所定の下限値よりも小さい場合に、前記描画情報生成部を実現するための演算装置の負荷状況に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする請求項７に記載の画像形成装置。
【請求項９】
画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像形成装置において、画像形成出力において描画すべき図形毎に情報がまとめられた図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をハードウェアとして実行する描画情報生成回路であって、
前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、
前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、
前記動作クロックカウント部及び前記待機クロックカウント部は、前記描画処理をソフトウェアによって実行する描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御するための情報として夫々のカウント値を出力することを特徴とする描画情報生成回路。
【請求項１０】
画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像処理制御システムであって、
画像形成出力において描画すべき図形毎に情報がまとめられた図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をハードウェアとして実行する描画情報生成回路と、
前記描画処理をソフトウェアによって実行する描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御する描画処理制御プログラムとを含み、
前記描画情報生成回路は、
前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、
前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、
前記描画処理制御プログラムは、
前記動作クロックカウント部及び前記待機クロックカウント部のカウント値を取得するステップと、
前記取得したカウント値に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御するステップとを情報処理装置に実行させることを特徴とする画像処理制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、描画情報生成回路、画像処理制御システムに関し、特に、画像形成装置における画像処理の制御に関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ及び書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。
【０００３】
このような画像処理装置のうち、電子化された情報の出力に用いるプリンタにおいては、入力された画像情報に基づいてプリントエンジンが画像形成出力を実行するための描画情報を生成する画像処理（以降、描画処理とする）が行われる。この画像処理は、専用のハードウェアによって実行される他、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算手段がソフトウェアに従って動作することにより実行される。
【０００４】
また、上述したような描画処理は、“バンド”と呼ばれる領域毎に実行されることがある。“バンド”とは、１ページを副走査方向に複数段に分割した夫々の領域である。このようなハードウェア及びソフトウェアによって描画処理可能な画像形成装置において、描画処理を行うバンド毎に、ソフト若しくはハードによっての描画処理が可能か否かに基づき、描画処理の分担を決定する方法が既に提案されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このようなハードウェア及びソフトウェアによって描画処理可能な画像形成装置においては、ハードウェアとソフトウェアとの処理の分散割合を最適化し、いずれか一方が処理を終了した状態で他方の処理が終了するまで待機するような状態（以降、ウェイト状態とする）が可能な限り発生しないようにする必要がある。しかしながら、特許文献１に開示された方法においては、そのような考慮はされていない。
【０００６】
また、ソフトウェアの処理状況はソフトウェアによって容易に把握することができるが、ハードウェアの処理状況やウェイト状態の有無を把握するためには、そのような情報の把握が可能なように回路を作りこむ必要があり、困難であると共にコストの増大にもなってしまう。
【０００７】
本発明は、上記実情を考慮してなされたものであり、ハードウェア及びソフトウェアによって描画処理可能な画像形成装置において、ハードウェアの処理状態を簡易な構成によって把握し、ハードウェアとソフトウェアとの処理の分散の最適化を可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様は、画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像形成装置であって、ページ記述言語に基づいて得られた描画命令に基づき、描画すべき図形毎に情報がまとめられた図形情報を生成して記憶媒体に記憶させる図形情報生成部と、前記記憶された図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をソフトウェア処理によって実行する描画情報生成部と、
前記描画処理をハードウェアとして実行する描画情報生成回路と、前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御する描画処理制御部とを含み、前記描画情報生成回路は、前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、前記描画処理制御部は、前記動作クロックカウント部及び前記待機クロックカウント部のカウント値に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする。
【０００９】
また、本発明の他の態様は、画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像形成装置において、画像形成出力において描画すべき図形毎に情報がまとめられた図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をハードウェアとして実行する描画情報生成回路であって、前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、前記動作クロックカウント部及び前記待機クロックカウント部は、前記描画処理をソフトウェアによって実行する描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御するための情報として夫々のカウント値を出力することを特徴とする。
【００１０】
また、本発明の更に他の態様は、画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像処理制御システムであって、画像形成出力において描画すべき図形毎に情報がまとめられた図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をハードウェアとして実行する描画情報生成回路と、前記描画処理をソフトウェアによって実行する描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御する描画処理制御プログラムとを含み、前記描画情報生成回路は、前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、前記描画処理制御プログラムは、前記動作クロックカウント部及び前記待機クロックカウント部のカウント値を取得するステップと、前記取得したカウント値に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御するステップとを情報処理装置に実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ハードウェア及びソフトウェアによって描画処理可能な画像形成装置において、ハードウェアの処理状態を簡易な構成によって把握し、ハードウェアとソフトウェアとの処理の分散の最適化を可能とすることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係る画像形成装置のハードウェア構成を示すブロック図である。
【図２】本発明の実施形態に係る画像形成装置の機能構成を示す図である。
【図３】本発明の実施形態に係る画像処理部に含まれる機能を示す図である。
【図４】本発明の実施形態に係る描画コアモジュール及びハードウェアアクセラレータの機能構成を示す図である。
【図５】本発明の実施形態に係る描画処理の順序を示す図である。
【図６】本発明の実施形態に係る処理分散を変更する際の条件を示す図である。
【図７】本発明の実施形態に係る描画コアモジュールの動作を示すフローチャートである。
【図８】本発明の実施形態及び比較例の処理のタイミングを示す図である。
【図９】本発明の他の実施形態に係る分散割合の制御動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、プリンタ、スキャナ、複写機等の機能を含む複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）としての画像形成装置を例として説明する。
【００１４】
図１は、本実施形態に係る画像形成装置１のハードウェア構成を示すブロック図である。図１に示すように、本実施形態に係る画像形成装置１は、一般的なサーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理端末と同様の構成に加えて、画像形成を実行するエンジンを有する。即ち、本実施形態に係る画像形成装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、エンジン４０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）５０及びＩ／Ｆ６０がバス９０を介して接続されている。また、Ｉ／Ｆ６０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）７０及び操作部８０が接続されている。
【００１５】
ＣＰＵ１０は演算装置であり、画像形成装置１全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。エンジン４０は、画像形成装置１において実際に画像形成を実行する機構である。
【００１６】
ＨＤＤ５０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納されている。Ｉ／Ｆ６０は、バス９０と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ７０は、ユーザが画像形成装置１の状態を確認するための視覚的ユーザインタフェースである。操作部８０は、キーボードやマウス等、ユーザが画像形成装置１に情報を入力するためのユーザインタフェースである。
【００１７】
このようなハードウェア構成において、ＲＯＭ３０やＨＤＤ５０若しくは図示しない光学ディスク等の記録媒体に格納されたプログラムがＲＡＭ２０に読み出され、ＣＰＵ１０がそれらのプログラムに従って演算を行うことによりソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る画像形成装置１の機能を実現する機能ブロックが構成される。
【００１８】
次に、図２を参照して、本実施形態に係る画像形成装置１の機能構成について説明する。図２は、本実施形態に係る画像形成装置１の機能構成を示すブロック図である。図２に示すように、本実施形態に係る画像形成装置１は、コントローラ１００、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｎｔ  Ｆｅｅｄｅｒ：原稿自動搬送装置）１１０、スキャナユニット１２０、排紙トレイ１３０、ディスプレイパネル１４０、給紙テーブル１５０、プリントエンジン１６０、排紙トレイ１７０及びネットワークＩ／Ｆ１８０を有する。
【００１９】
また、コントローラ１００は、主制御部１０１、エンジン制御部１０２、入出力制御部１０３、画像処理部１０４及び操作表示制御部１０５を有する。図２に示すように、本実施形態に係る画像形成装置１は、スキャナユニット１２０、プリントエンジン１６０を有する複合機として構成されている。尚、図２においては、電気的接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。
【００２０】
ディスプレイパネル１４０は、画像形成装置１の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが画像形成装置１を直接操作し若しくは画像形成装置１に対して情報を入力する際の入力インタフェース（操作部）でもある。ネットワークＩ／Ｆ１８０は、画像形成装置１がネットワークを介して他の機器と通信するためのインタフェースであり、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースが用いられる。
【００２１】
コントローラ１００は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ＲＯＭ３０や不揮発性メモリ並びにＨＤＤ５０や光学ディスク等の不揮発性記録媒体に格納されたファームウェア等の制御プログラムが、ＲＡＭ２０等の揮発性メモリ（以下、メモリ）にロードされ、ＣＰＵ１０がそれらのプログラムに従って演算を行うことにより構成されるソフトウェア制御部と、集積回路などのハードウェアとによってコントローラ１００が構成される。コントローラ１００は、画像形成装置１全体を制御する制御部として機能する。
【００２２】
主制御部１０１は、コントローラ１００に含まれる各部を制御する役割を担い、コントローラ１００の各部に命令を与える。エンジン制御部１０２は、プリントエンジン１６０やスキャナユニット１２０等を制御若しくは駆動する駆動手段としての役割を担う。入出力制御部１０３は、ネットワークＩ／Ｆ１８０を介して入力される信号や命令を主制御部１０１に入力する。また、主制御部１０１は、入出力制御部１０３を制御し、ネットワークＩ／Ｆ１８０を介して他の機器にアクセスする。
【００２３】
画像処理部１０４は、主制御部１０１の制御に従い、入力された印刷ジョブに含まれる印刷情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン１６０が画像形成動作において形成すべき画像を描画するための情報である。また、印刷ジョブに含まれる印刷情報とは、ＰＣ等の情報処理装置にインストールされたプリンタドライバによって画像形成装置１が認識可能な形式に変換された情報であり、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）によって記述された情報である。換言すると、上記印刷情報とは、画像形成出力すべきページの情報が記述されたページ情報である。尚、本実施形態においては、ページ記述言語としてＰＤＬを用いる場合を例とするが、他の言語であっても良い。
【００２４】
本実施形態においては、画像処理部１０４による上記描画情報の生成処理が要旨であり、より具体的には、画像処理部１０４を構成するハードウェアを効率的に動作させるための制御が要旨である。画像処理部１０４の機能については、後に詳述する。操作表示制御部１０５は、ディスプレイパネル１４０に情報表示を行い若しくはディスプレイパネル１４０を介して入力された情報を主制御部１０１に通知する。
【００２５】
画像形成装置１がプリンタとして動作する場合は、まず、入出力制御部１０３がネットワークＩ／Ｆ１８０を介して印刷ジョブを受信する。入出力制御部１０３は、受信した印刷ジョブを主制御部１０１に転送する。主制御部１０１は、印刷ジョブを受信すると、画像処理部１０４を制御して、印刷ジョブに含まれる印刷情報に基づいて描画情報を生成させる。
【００２６】
画像処理部１０４によって描画情報が生成されると、エンジン制御部１０２は、生成された描画情報に基づき、給紙テーブル１５０から搬送される用紙に対して画像形成を実行する。即ち、プリントエンジン１６０が画像形成部として機能する。プリントエンジン１６０の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン１６０によって画像形成が施された文書は排紙トレイ１７０に排紙される。
【００２７】
画像形成装置１がスキャナとして動作する場合は、ユーザによるディスプレイパネル１４０の操作若しくはネットワークＩ／Ｆ１８０を介して外部のクライアント用の情報処理端末等から入力されるスキャン実行指示に応じて、操作表示制御部１０５若しくは入出力制御部１０３が主制御部１０１にスキャン実行信号を転送する。主制御部１０１は、受信したスキャン実行信号に基づき、エンジン制御部１０２を制御する。
【００２８】
エンジン制御部１０２は、ＡＤＦ１１０を駆動し、ＡＤＦ１１０にセットされた撮像対象原稿をスキャナユニット１２０に搬送する。また、エンジン制御部１０２は、スキャナユニット１２０を駆動し、ＡＤＦ１１０から搬送される原稿を撮像する。また、ＡＤＦ１１０に原稿がセットされておらず、スキャナユニット１２０に直接原稿がセットされた場合、スキャナユニット１２０は、エンジン制御部１０２の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット１２０が撮像部として動作する。
【００２９】
撮像動作においては、スキャナユニット１２０に含まれるＣＣＤ等の撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部１０２は、スキャナユニット１２０が生成した撮像情報を画像処理部１０４に転送する。画像処理部１０４は、主制御部１０１の制御に従い、エンジン制御部１０２から受信した撮像情報に基づき画像情報を生成する。画像処理部１０４が生成した画像情報はＨＤＤ４０等の画像形成装置１に装着された記憶媒体に保存される。
【００３０】
画像処理部１０４によって生成された画像情報は、ユーザの指示に応じてそのままＨＤＤ４０等に格納され若しくは入出力制御部１０３及びネットワークＩ／Ｆ１８０を介して外部の装置に送信される。即ち、スキャナユニット１２０及びエンジン制御部１０２が画像入力部として機能する。
【００３１】
また、画像形成装置１が複写機として動作する場合は、エンジン制御部１０２がスキャナユニット１２０から受信した撮像情報若しくは画像処理部１０４が生成した画像情報に基づき、画像処理部１０４が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部１０２がプリントエンジン１６０を駆動する。
【００３２】
図３は、本実施形態に係る画像処理部１０４に含まれる機能を示すブロック図である。図３に示すように、本実施形態に係る画像処理部１０４は、ＰＤＬ解析部２１０、描画コアモジュール２２０を含み、ソフトウェア・プログラムに従ってＣＰＵ１０が演算を行うことにより構成されるＰＤＬアプリケーション２００と、集積回路によって構成されるハードウェアアクセラレータ２３０とを含む。
【００３３】
ＰＤＬ解析部２１０は、ＰＤＬで記述された印刷情報を取得し、描画コアモジュール２２０が処理可能な形式に変換する。この変換された形式の情報が、ＰＤＬアプリケーション２００において描画命令として処理される。
【００３４】
描画コアモジュール２２０は、ＰＤＬ解析部２１０によって変換された描画命令に基づき、プリントエンジン１６０が画像形成出力を実行するための描画情報を生成する処理（以降、描画処理とする）を実行する。また、描画コアモジュール２２０は、ハードウェアアクセラレータ２３０を制御するための機能も含む。
【００３５】
ハードウェアアクセラレータ２３０は、描画コアモジュール２２０が実行する描画処理をＣＰＵ１０とは独立して実行するハードウェアである。本実施形態に係るハードウェアアクセラレータ２３０は、描画コアモジュール２２０がハードウェアアクセラレータ２３０の処理状況を把握するための簡易な構成を含む。
【００３６】
図４は、本実施形態に係る描画コアモジュール２２０及びハードウェアアクセラレータ２３０の機能構成を示すブロック図である。図４に示すように、描画コアモジュール２２０は、描画コアモジュールＩ／Ｆ２２１、ＤＬ（Ｄｉｓｐｌａｙ  Ｌｉｓｔ）処理部２２２、ハードウェア描画処理制御部２２３、中間データ記憶部２２４、描画処理部２２５及びバンドメモリ２２６を含む。
【００３７】
描画コアモジュールＩ／Ｆ２２１は、ＰＤＬ解析部２１０によって変換された描画命令をＰＤＬ解析部２１０から取得し、ＤＬ処理部２２２に入力する。ＤＬ処理部２２２は、描画コアモジュール２２１から取得した描画命令に基づき、画像形成出力するべき各ページにおいて描画されるべきオブジェクトの情報が記述されたディスプレイリストを生成し、中間データ記憶部２２４に格納する。本実施形態において、ＤＬ処理部２２２は、１ページを副走査方向に複数段に分割した“バンド”と呼ばれる夫々の分割領域毎にディスプレイリストを生成し、中間データ記憶部２２４に格納する。
【００３８】
上記ディスプレイリストとは、換言すると、描画すべき図形毎に情報がまとめられた図形情報である。即ち、ＤＬ処理部２２２は、図形情報生成部として機能する。ハードウェア描画処理制御部２２３は、ハードウェアアクセラレータ２３０の制御を行う。図４に示すように、ハードウェアアクセラレータ２３０は、動作クロックカウンタ２３１、ＷＡＩＴクロックカウンタ２３２及びハードウェア描画処理部２３３を含む。
【００３９】
動作クロックカウンタ２３１は、ハードウェアアクセラレータ２３０における動作クロックをカウントする動作クロックカウント部である。これに対してＷＡＩＴクロックカウンタ２３１は、ハードウェアアクセラレータ２３０が処理待ち状態、即ち待機状態となっている間のハードウェアアクセラレータ２３０における動作クロックをカウントする待機クロックカウント部である。ハードウェア描画処理部２３３は、中間データ記憶部２２４に格納された中間データに基づき、描画処理を実行する。即ち、ハードウェアアクセラレータ２３０が、描画情報生成回路として機能する。
【００４０】
このようなハードウェアアクセラレータ２３０の構成に対して、ハードウェア描画処理制御部２２３は、動作クロックカウンタ２３１及びＷＡＩＴクロックカウンタ２３２のカウント値に基づいてハードウェアアクセラレータ２３３の処理状況を判断し、描画コアモジュール２２０による描画処理と、ハードウェア描画処理部２３３による描画処理との分散割合を決定して、描画処理部２２５及びハードウェア描画処理部２３３に描画処理を実行させる描画処理制御部として機能する。
【００４１】
中間データ記憶部２２４は、ＤＬ処理部２２２によって変換された描画命令や、描画処理部２２５及びハードウェア描画処理部２３３によって処理された情報を一時的に記憶する記憶領域であり、ＲＡＭ２０において確保された記憶領域である。
【００４２】
描画処理部２２５は、描画コアモジュール２２０の機能、即ち、ソフトウェア・プログラムに従って演算を行うＣＰＵ１０によって構成されるソフトウェア制御部として描画処理を実現する描画情報生成部である。描画処理部２２５は、ＤＬ処理部２２２によって生成されて中間データ記憶部２２４に格納されたディスプレイリストに基づき、描画処理を実行する。
【００４３】
上述したように、ディスプレイリストは、バンド毎に中間データ記憶部２２４に記憶される。従って、ハードウェア描画処理部２３３及び描画処理部２２５は、バンド毎に描画処理を実行する。
【００４４】
バンドメモリ２２６は、上述したように、ハードウェア描画処理部２３３及び描画処理部２２５によって生成された描画情報をバンド毎に記憶する記憶媒体である。バンドメモリ２２６は、ＲＡＭ２０において確保された記憶領域である。
【００４５】
本実施形態においては、描画処理部２２５が描画処理の前半を実行し、描画情報になる前の処理途中のデータを中間データ記憶部２２４に再度記憶させ、ハードウェア描画処理部２３３が、描画処理を最後まで実行して描画情報を生成する。従って、バンドメモリ２２６に描画情報を格納するのはハードウェア描画処理部２３３のみである。
【００４６】
図５は、本実施形態に係る描画処理の流れ及び処理負荷分散の例を示す図である。図５に示す描画処理の流れは、イメージオブジェクトを含むバンドの描画処理の流れである。図５に示すように、本実施形態に係る描画処理は、“入力”、“フォーマット変換”、“カラーマッチング”、“ＢＧ（Ｂａｃｋ  Ｇｒｏｕｎｄ）／ＵＣＲ（Ｕｎｄｅｒ  Ｃｏｌｏｒ  Ｒｅｍｏｖａｌ）”、“γ変換”、“少値化（ディザリング）”、“バンドメモリへの描画”という処理を含む。
【００４７】
そして、図５における“例１”は、ＤＬ処理部２２２による中間データ記憶部２２４へのディスプレイリストの格納処理である“入力”処理及びフォーマット変換のみを描画コアモジュール２２０側で行い、以降の処理をハードウェア描画処理部２３３において行う態様である。
【００４８】
また、“例２”は、例１の態様に加えて、カラーマッチングをも描画コアモジュール２２０側で行う態様であり、例１よりも描画コアモジュール２２０、即ちＣＰＵ１０の処理負荷を増やした態様である。また、“例３”は、例の２の態様に加えて、更にＢＧ／ＵＣＲ処理及びγ変換処理をも描画コアモジュール２２０側で行う態様であり、例２よりも更に２段階ＣＰＵ１０の処理負荷を増やした態様である。
【００４９】
図５に示すように、本実施形態においては、ハードウェア描画処理部２２３が、動作クロックカウンタ２３１のカウント値及びＷＡＩＴクロックカウント値に基づき、描画処理部２２５とハードウェア描画処理部２３３との処理の分散態様を決定する。描画処理部２２５及びハードウェア描画処理部２３３は、ハードウェア描画処理制御部２２３の制御に従い、図５に示すような分散態様に従って描画処理を実行する。
【００５０】
本実施形態において、ハードウェア描画処理制御部２２３は、動作クロックカウンタ２３１のカウント値（以降、動作クロックカウント値）及びＷＡＩＴクロックカウンタ２３２のカウント値（以降、ＷＡＩＴクロックカウント値）に基づき、以下の式（１）に基づいてハードウェアアクセラレータ２３０の負荷状況εを算出する。
2012161993.tif 000003
【００５１】
式（１）の計算結果により、動作クロックカウント値に対するＷＡＩＴクロックカウント値の割合、即ち、ハードウェアアクセラレータ２３０が動作している間において、処理が終了している若しくは次の処理に進めるにも関わらず、ＲＡＭ２０へのアクセス待ちにより待機している間の割合をεとして求めることができる。ハードウェア描画処理制御部２２３は、このεをハードウェアアクセラレータ２３０の負荷状況として参照することにより、図５の例１〜３に示すように、描画処理部２２５とハードウェア描画処理部２３３との処理の分散を判断する。
【００５２】
図６は、ハードウェア描画処理制御部２２３が描画処理部２２５とハードウェア描画処理部２３３との処理の分散を判断する際の判断基準の例を示す図である。図６に示すように、本実施形態においては、２つの基準値Ｋ１、Ｋ２が設定されており、２つの数値の関係はＫ１＜Ｋ２である。そして、εがＫ１以上Ｋ２未満であれば、ハードウェア描画処理制御部２２３は、現在の分散設定が好適な設定であると判断し、現在の設定を維持する。
【００５３】
εがＫ１未満である場合、即ち、ハードウェア描画処理部２３３の待機時間の割合が低い場合、ハードウェア描画処理制御部２２３は、ハードウェア描画処理部２３３の負荷、即ちＨＡ（Ｈａｒｄｗａｒｅ  Ａｃｃｅｌｅｒａｔｏｒ：ハードウェアアクセラレータ）の負荷が高く、描画処理部２２５の負荷、即ちＣＰＵ１０の負荷が低いと判断し、ＣＰＵ１０の負荷を上げると共に、ハードウェアアクセラレータ２３０の負荷を下げるように制御する。
【００５４】
εがＫ２以上である場合、即ち、ハードウェア描画処理部２３３の待機時間の割合が高い場合、ハードウェア描画処理制御部２２３は、ハードウェアアクセラレータ２３０の負荷が低く、ＣＰＵ１０の負荷が高いと判断し、ＣＰＵ１０の負荷を下げると共に、ハードウェアアクセラレータ２３０の負荷を上げるよう制御する。
【００５５】
ここで、ＣＰＵ１０の負荷を下げると共に、ハードウェアアクセラレータ２３０の負荷を上げるような制御や、ＣＰＵ１０の負荷を上げると共に、ハードウェアアクセラレータ２３０の負荷を下げるような制御とは、図５の例において、例１〜３のように、線を引く場所を変更することである。
【００５６】
例えば、ＣＰＵ１０の負荷を上げると共に、ハードウェアアクセラレータ２３０の負荷を下げる制御は、図５において線を引く場所を下に変更する。例えば、図５に示す例１から例２に変更する。これにより、例１においてはフォーマット変換までであったＣＰＵ１０の処理に、新たにカラーマッチングの処理が加わり、その分ＣＰＵ１０の負荷が増大することとなる。
【００５７】
尚、このような変更は、ハードウェア描画処理制御部２２３がレジスタ値を書き換え、ハードウェア描画処理部２３３及び描画処理部２２５が、レジスタ値に従って描画処理を実行することにより実現可能である。即ち、ハードウェア描画処理部２２３は、図５に示すような処理の分岐点、即ち、ＣＰＵ１０とハードウェアアクセラレータ２３０との処理の分岐点を示すレジスタ値を、ハードウェアアクセラレータ２３０の負荷状況の判断結果に応じて書き換える。そして、ハードウェア描画処理部２３３及び描画処理部２２５が、書き換えられたレジスタ値に従って描画処理を実行することにより、ハードウェア描画処理制御部２２３による分散割合の判断結果に応じた処理が実行される。
【００５８】
次に、本実施形態に係る画像処理部１０４の処理の詳細について、図７を参照して説明する。図７は、本実施形態に係る画像処理部１０４の動作を示すフローチャートである。図７に示すように、描画処理部２２５による描画処理、即ち、ＣＰＵ１０の処理が完了し（Ｓ７０１／ＹＥＳ）、処理済みのデータが中間データ記憶部２２４に記憶されると、ハードウェア描画処理制御部２２３が、動作クロックカウンタ２３１及びＷＡＩＴクロックカウンタ２３２のカウント値を初期化する（Ｓ７０２）。
【００５９】
そして、ハードウェア描画処理制御部２２３は、中間データ記憶部２２４に記憶された中間データのアドレスをハードウェア描画処理部２３３に通知する。これにより、ハードウェア描画処理部２３３が、通知されたアドレスに記憶されている中間データに基づいて１バンド分の描画処理を実行する（Ｓ７０３）。
【００６０】
ハードウェア描画処理部２３３が１バンド分の描画処理を完了すると（Ｓ７０４／ＹＥＳ）、ハードウェア描画処理制御部２２３は、動作クロックカウンタ２１３及びＷＡＩＴクロックカウンタ２３２のカウント値を参照し（Ｓ７０５）、上述した式（１）に基づいてεの値を算出する。
【００６１】
εの値を算出したハードウェア描画処理制御部２２３は、算出したεの値に基づき、図５、図６において説明したように、描画処理部２２５とハードウェア描画処理部２３３との処理分散の割合を調整する（Ｓ７０６）。そして、Ｓ７０６の処理を完了すると、ハードウェア描画処理制御部２２３は、１ページ分の描画処理が完了したか否か判断し（Ｓ７０７）、完了していなければ（Ｓ７０７／ＮＯ）、Ｓ７０１からの処理を繰り返し、完了していれば（Ｓ７０７／ＹＥＳ）、そのまま処理を終了する。
【００６２】
このような処理により、本実施形態に係る描画処理部１０４による描画処理が完了する。即ち、本実施形態に係る描画処理において、ハードウェア描画処理制御部２２３は、ハードウェア描画処理部２３３が１バンド分の描画処理を完了する毎にハードウェア描画処理部２３３の負荷状況を判断し、処理の分散割合を変更する。これにより、次のバンドの処理においては、処理の分散割合が変更された状態で処理が実行されるため、前のバンドの処理よりも処理の分散割合が最適化される。
【００６３】
本実施形態に係る分散割合の変更の具体的な例について、図８（ａ）、（ｂ）を参照して説明する。図８（ａ）、（ｂ）は、描画処理においてＣＰＵ１０、即ち描画処理部２２５による処理と、ＨＡ（Ｈａｒｄｗａｒｅ  Ａｃｃｅｌｅｒａｔｏｒ：ハードウェアアクセラレータ２３０）、即ち、ハードウェア描画処理部２３３による処理とのタイミングを示すタイミングチャートであり、斜線部分は、ハードウェア描画処理部２３３がＲＡＭ２０へのアクセスのために待機している期間、即ちＷＡＩＴクロックカウンタ２３２がクロックをカウントしている期間を示している。
【００６４】
また、図８（ａ）は、本実施形態に係る分散割合の判断を行わない場合の比較例を示すタイミングチャートであり、図８（ｂ）が、本実施形態に係る分散割合の判断を行った場合のタイミングチャートである。図８（ａ）、（ｂ）のタイミングチャートにおいては、時間軸が共通化されている。
【００６５】
図８（ａ）に示すように、分散割合の変更を行わずに一定の分散割合で描画処理を行う場合、ＨＡ処理における斜線部分の割合は略変わらない。これに対して、図８（ｂ）に示すように、本実施形態に係る分散割合の判断を適用する場合、まずタイミングｔ１において、１バンド目の描画処理部２２５による処理が完了し、ハードウェア描画処理部２３３が１バンド目の残りの描画処理を開始する。それと同時に、描画処理部２２５は、次のバンドについての処理を開始する。この時点では、また、ハードウェア描画処理部２３３による描画処理が完了していないため、分散割合の判断は行われない。
【００６６】
次に、図８（ｂ）に示すタイミングｔ２において、ハードウェア描画処理部２３３によって１バンド目の描画処理が完了する。これにより、ハードウェア描画処理制御部２２３が、図７において説明したように、分散割合を判断する。図８（ｂ）の例においては、ハードウェア描画処理部２３３の負荷を上げるように判断され、分散割合が変更されたものとする。
【００６７】
この場合、タイミングｔ２の次のＣＰＵ処理、即ち３バンド目におけるＣＰＵ処理は、負荷が低減されているため、図８（ｂ）に示すように、２バンド面の処理の期間よりも短くなる。ＣＰＵ処理の負荷が低減されるということは、それだけＣＰＵ１０がＲＡＭ２０にアクセスする機会が減るということであるため、図８（ｂ）に示すように、３バンド目についてのＣＰＵ処理と並行して実行されるハードウェア描画処理部２３３による２バンド目についての描画処理においては、ＲＡＭ２０へのアクセス待機期間が減少する。
【００６８】
次に、タイミングｔ３に達すると、ハードウェア描画処理制御部２２３が再度分散割合の判断を行うが、ここではεがＫ１以上Ｋ２未満であり、分散割合が維持されたものとする。その場合、次にハードウェア描画処理部２３３が描画処理を実行する３バンド目のデータは、タイミングｔ２において分散割合が変更された後にＣＰＵ１０によって処理された中間データである。そのため、描画処理部２３３が実行するべき処理量、即ち、図８（ｂ）に示すＨＡ処理のブロックのうち、無地で示される部分の面積は、２バンド目のデータよりも増えている。しかしながら、ＣＰＵ処理の量が減っており、ＲＡＭ２０へのアクセス待機時間が低減されるため、トータルでの処理期間の増大は、処理量の増大よりも低減される。
【００６９】
このように処理が実行された結果、図８（ｂ）の例においては、図８（ａ）の例における５バンド目の終了タイミングであるタイミングｔ７よりも速いタイミングｔ６において、５バンド目の描画処理が完了する。このように、本実施形態に係るＣＰＵ１０とハードウェアアクセラレータ２３０との処理の分散割合の判断方法を用いることにより、処理の分散割合を最適化し、描画処理の終了タイミングを早めることができる。
【００７０】
以上、説明したように、本実施形態に係る画像形成装置においては、ハードウェアによって描画処理を実行するハードウェアアクセラレータ２３０において、動作クロックカウンタ２３１及びＷＡＩＴクロックカウンタ２３２が設けられている。そして、描画コアモジュール２２０の機能の１つであるハードウェア描画処理制御部２２３が、動作クロックカウンタ２３１及びＷＡＩＴクロックカウンタ２３２のカウント値に基づいてハードウェアアクセラレータ２３０の負荷状態を判断し、その判断結果に従ってＣＰＵ１０とハードウェアアクセラレータ２３０との描画処理の分散割合を変更する。
【００７１】
これにより、ハードウェア及びソフトウェアによって描画処理可能な画像形成装置において、ハードウェアの処理状態を簡易な構成によって把握可能であり、ハードウェアとソフトウェアとの処理の分散の最適化を可能とすることができる。
【００７２】
尚、本実施形態においては、図５において説明したように、ディスプレイリストとして中間データ記憶部２２４に記憶された状態からビットマップデータとしてバンドメモリ２２６に格納されるまでの一連の処理における、ＣＰＵ１０とハードウェアアクセラレータ２３０との処理の分岐点を変更する場合を例として説明した。
【００７３】
即ち、本実施形態においては、ディスプレイリストからビットマップデータへの一連の処理をＣＰＵ１０とハードウェアアクセラレータ２３０とで分担することが前提となっている。しかしながら、ＣＰＵ１０とハードウェアアクセラレータ２３０との処理の分散態様としては、上記の例の他、描画処理を実行するバンドの割り振りによって処理を分散する態様もあり得る。例えば、ハードウェア描画処理部２３３が２バンド分の描画処理を実行する間に、描画処理部２２５が１バンド分の描画処理を実行する場合等である。
【００７４】
この場合であっても、上記実施形態と同様、ハードウェア描画処理制御部２２３が、動作クロックカウンタ２３１及びＷＡＩＴクロックカウンタ２３２のカウント値に基づいて算出したεの値に応じてハードウェアアクセラレータ２３０とＣＰＵ１０との処理の分散割合を判断することにより、上記と同様に実現可能である。
【００７５】
また、上記実施形態においては、図６において説明したように、ハードウェアアクセラレータ２３０の負荷状態を示すεの値に対して、Ｋ１及びＫ２のように上下に閾値が設けられており、εの値がＫ２の値よりも高い場合は、ＣＰＵ１０の負荷が高く、ハードウェアアクセラレータ２３０の負荷が低い状態であり、εの値がＫ１の値よりも低い場合は、ＣＰＵ１０の負荷が低く、ハードウェアアクセラレータ２３０の負荷が高い状態であると判断する場合を例として説明した。
【００７６】
εの値が高すぎる場合というのは、ハードウェア描画処理部２３３においてＲＡＭ２０へのアクセス待ちが多く発生しており、ハードウェア描画処理部２３３が処理を行っていない状態が多いのに対して、ＣＰＵ１０においてはＲＡＭ２０へのアクセスが多く発生しており、ＣＰＵ１０の負荷が高く、ハードウェアアクセラレータ２３０の負荷が低い状態と判断することが容易である。
【００７７】
これに対して、εの値が低い場合というのは、ハードウェア描画処理部２３３においてＲＡＭ２０へのアクセス待ちがあまり発生しておらず、ＣＰＵ１０によるＲＡＭ２０へのアクセスがハードウェア描画処理部２３３によるＲＡＭ２０へのアクセスの障害になっていないということである。このため、上記実施形態において、ハードウェア描画処理制御部２２３は、ＣＰＵ１０の負荷が低く、ハードウェアアクセラレータ２３０の負荷が高い状態であると判断している。
【００７８】
しかしながら、ハードウェア描画処理部２３３においてＲＡＭ２０へのアクセス待ちがあまり発生していない状態というのは、ハードウェア描画処理部２３３による処理がスムーズに実行されているとも判断できる。即ち、εの値が低い場合について、ハードウェアアクセラレータ２３０の負荷状態を一概に判断することは困難であるため、少なくともＫ２のような上の閾値のみを設定することによって、上述した効果と同様の効果を得ることが可能である。
【００７９】
即ち、ハードウェア描画処理制御部２２３が動作するためのパラメータ値として、許容されるεの上限値（図６においてＫ２に相当する値）のみを定めておく。そして、ハードウェア描画処理制御部２２３は、εの値が定められた上限値を超えるまで、ハードウェア描画処理部２３３の負荷を下げる。そして、εの値が定められた上限値を超えたら、ハードウェア描画処理部２３３は、ハードウェア描画処理部２３３の負荷を上げる。これにより、簡易な構成及び処理によって、ハードウェアアクセラレータ２３０の負荷の判断及び処理分散の最適化を行うことができる。
【００８０】
また、εがＫ１以下であった場合において、ハードウェアアクセラレータ２３０の負荷がまだ低い可能性を考慮し、一度ハードウェアアクセラレータ２３０の負荷を上げると共にＣＰＵ１０の負荷を下げ、その後のεの値の変化に基づいて更に負荷分散の制御を行うことも可能である。そのような例について、図９を参照して説明する。
【００８１】
図９は、上述したように、εがＫ１以下であった場合において、一度ハードウェアアクセラレータ２３０の負荷を上げると共にＣＰＵ１０の負荷を下げる場合のハードウェア描画処理制御部２２３の動作を示すフローチャートであり、図７のＳ７０６における詳細な動作に相当する。即ち、図９の動作の前提として、既に図７のＳ７０５までの処理が実行され、εの値が算出されている。
【００８２】
εの値を算出すると、ハードウェア描画処理制御部２２３は、εの値がＫ１以下であるか否かが判断し（Ｓ９０１）、Ｋ１以下であった場合（Ｓ９０１／ＹＥＳ）、ハードウェア描画処理制御部２２３の内部パラメータであるフラグの値を確認する（Ｓ９０２）。このフラグとは、１ビットのデータであり、上述したように、一度ハードウェアアクセラレータ２３０の負荷を上げると共にＣＰＵ１０の負荷を下げる制御を実行したか否かを判断するためのフラグである。
【００８３】
フラグがオフであれば（Ｓ９０２／ＮＯ）、一度ハードウェアアクセラレータ２３０の負荷を上げると共にＣＰＵ１０の負荷を下げる制御が未だ実行されていないということであるため、ハードウェア描画処理制御部２２３は、上述したように、一度ハードウェアアクセラレータ２３０の負荷を上げると共にＣＰＵ１０の負荷を下げる制御を実行する（Ｓ９０６）と共に、フラグの値をオンにし、現在算出されているεの値をε０として記憶して（Ｓ９０７）、処理を終了する。
【００８４】
他方、既に一度Ｓ９０６及びＳ９０７の処理が実行されており、フラグがオンであった場合（Ｓ９０２／ＹＥＳ）、一度ハードウェアアクセラレータ２３０の負荷を上げると共にＣＰＵ１０の負荷を下げる制御が既に実行されているということであるため、ハードウェア描画処理制御部２２３は、現在のεの値と、記憶されているε０の値とを比較する（Ｓ９０３）。比較の結果、εの値がε０の値よりも大きければ、前回のＳ９０６の制御による効果が確認できるため、再度Ｓ９０６以降の処理に進む。
【００８５】
εの値がε０の値以下である場合、前回のＳ９０６の制御によって更にεの値が低下しており、εの値の好ましい範囲として定められたＫ１からＫ２の範囲から更に遠ざかっている。従って、ハードウェア描画処理制御部２２３は、前回のＳ９０６の制御が誤った制御であったものと認識し、前回の制御を打ち消して更に好適に方向に制御を行うため、ハードウェアアクセラレータ２３０の負荷を２段階下げると共にＣＰＵ１０の負荷を２段階上げる制御を実行する（Ｓ９０４）。そして、フラグをオフに更新し（Ｓ９０５）、処理を終了する。
【００８６】
ここで、上述したハードウェアアクセラレータ２３０の負荷を２段階下げると共に、ＣＰＵ１０の負荷を２段階上げる制御とは、例えば、図５の例において線を引く位置を例２から例３に変更するように、２段階下げることである。
【００８７】
また、εの値がＫ１を超えていた場合（Ｓ９０１／ＮＯ）、ハードウェア描画処理制御部２２３は、フラグがオンであればオフに更新し（Ｓ９０８）、εの値がＫ２以上であるか否か判断する（Ｓ９０９）。εの値がＫ２以上であった場合（Ｓ９０９／ＹＥＳ）、ハードウェア描画処理制御部２２３は、図６において説明した制御態様と同様に、ハードウェアアクセラレータ２３０の負荷を上げると共にＣＰＵ１０の負荷を下げる制御を実行し（Ｓ９１０）、処理を終了する。
【００８８】
また、εの値がＫ２未満であれば（Ｓ９０９／ＮＯ）、ハードウェア描画処理制御部２２３は、負荷分散の状態が好適な範囲内であると判断し、そのまま処理を終了する。このような処理により、εの変化に基づいて好適な制御の方向性を判断することができ、ハードウェアとソフトウェアとの処理の分散をより好適に最適化することができる。
【００８９】
また、上記実施形態においては、ハードウェア描画処理制御部２２３が、動作クロックカウンタ２３１及びＷＡＩＴクロックカウンタ２３２のカウント値のみを参照して処理の分散割合を制御する場合を例として説明した。この他、上記カウント値に加えて、ＣＰＵ１０の負荷状況を参照しても良い。一般的な情報処理装置であれば、ＣＰＵ１０の負荷状況を確認するための機能が備わっているため、ハードウェア描画処理制御部２２３は、その機能によってＣＰＵ１０の負荷状況を確認し、処理の分散割合の制御に用いることができる。
【００９０】
ＣＰＵ１０の負荷状況を処理の分散割合の制御に用いる際の例としては、例えば、ハードウェア描画処理制御部２２３は、描画処理部２２５が、その時点の分散割合に従って１バンド分の描画処理を実行する間のＣＰＵ１０の負荷状況をモニタリングして記憶しておく。ここで、ハードウェア描画処理制御部２２３が記憶するＣＰＵ１０の負荷状況とは、描画処理部２２５が１バンド分の描画処理を実行する間のＣＰＵ１０の使用率の平均値や最大値である。
【００９１】
そして、図９のＳ９０１においてεがＫ１以下である場合、ハードウェア描画処理制御部２２３は、上記記憶したＣＰＵ１０の負荷状況を参照し、ＣＰＵ１０の負荷が所定の上限値以上である場合、ハードウェアアクセラレータ２３０側の負荷が低く、ＣＰＵ１０側の負荷が高いと判断し、ＣＰＵ１０の負荷を下げると共にハードウェアアクセラレータ２３０の負荷を上げるように制御する。
【００９２】
他方、ＣＰＵ１０の負荷が所定の下限値未満である場合、ハードウェア描画処理制御部２２３は、ハードウェアアクセラレータ２３０側の負荷が高く、ＣＰＵ１０側の負荷が低いと判断し、ＣＰＵ１０の負荷を上げると共にハードウェアアクセラレータ２３０の負荷を下げるように制御する。このように、動作クロックカウンタ２３１及びＷＡＩＴクロックカウンタ２３２のカウント値に基づいて推測されるハードウェアアクセラレータ２３０の負荷状況に加えて、ＣＰＵ１０の負荷状況をも参照することにより、ハードウェアとソフトウェアとの処理の分散をより好適に最適化することができる。
【００９３】
尚、上記実施形態においては、ハードウェアアクセラレータ２３０を含む画像形成装置１を例として説明した。しかしながら、上記実施形態の要旨は、動作クロックカウンタ２３１及びＷＡＩＴクロックカウンタ２３２を含むハードウェアアクセラレータ２３０であり、ハードウェアアクセラレータ２３０単品での流通も可能である。また、ハードウェアアクセラレータ２３０を好適に動作させるため、ハードウェア描画処理制御部２３３に相当するドライバ・プログラムが必要であり、ハードウェアアクセラレータ２３０と上記ドライバ・プログラムとのセットでの流通も可能である。
【００９４】
また、上記ハードウェアアクセラレータ２３０と上記ドライバ・プログラムとのセットでの流通形態としては、ハードウェアアクセラレータ２３０と上記ドライバ・プログラムが記憶された記憶媒体とのセットの他、ハードウェアアクセラレータ２３０内に設けられた記憶媒体に上記ドライバ・プログラムを格納した状態での流通も可能である。
【符号の説明】
【００９５】
１  画像形成装置
１０  ＣＰＵ
２０  ＲＡＭ
３０  ＲＯＭ
４０  エンジン
５０  ＨＤＤ
６０  Ｉ／Ｆ
７０  ＬＣＤ
８０  操作部
９０  バス
１００  コントローラ
１０１  主制御部
１０２  エンジン制御部
１０３  入出力制御部
１０４  画像処理部
１０５  操作表示制御部
１１０  ＡＤＦ
１２０  スキャナユニット
１３０  排紙トレイ
１４０  ディスプレイパネル
１５０  給紙テーブル
１６０  プリントエンジン
１７０  排紙トレイ
１８０  ネットワークＩ／Ｆ
２００  ＰＤＬアプリケーション
２１０  ＰＤＬ解析部
２２０  描画コアモジュール
２２１  描画コアモジュールＩ／Ｆ
２２２  ＤＬ処理部
２２３  ハードウェア描画処理制御部
２２４  中間データ記憶部
２２５  描画処理部
２２６  バンドメモリ
２３０  ハードウェアアクセラレータ
２３１  動作クロックカウンタ
２３２  ＷＡＩＴクロックカウンタ
２３３  ハードウェア描画処理部
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開平８−１３９９５３号公報
【図１】
2012161993.tif 000004
【図２】
2012161993.tif 000005
【図３】
2012161993.tif 000006
【図４】
2012161993.tif 000007
【図５】
2012161993.tif 000008
【図６】
2012161993.tif 000009
【図７】
2012161993.tif 000010
【図８】
2012161993.tif 000011
【図９】
2012161993.tif 000012