説明

画像形成装置、描画情報生成回路、画像処理制御システム

【課題】ハードウェア及びソフトウェアによって描画処理可能な画像形成装置において、ハードウェアの処理状態を簡易な構成によって把握し、ハードウェアとソフトウェアとの処理の分散の最適化を可能とすること。
【解決手段】描画処理をハードウェアとして実行するハードウェアアクセラレータ230と、描画処理部225及びハードウェアアクセラレータ230が実行する描画処理の割合を制御するハードウェア描画処理制御部223とを含み、ハードウェアアクセラレータ230は、描画処理を実行する際の動作クロックをカウントする動作クロックカウンタ231と、RAM20へアクセスするために待機している期間のクロックをカウントするWAITクロックカウンタ232とを含み、ハードウェア描画処理制御部223は、カウント値に基づいて描画処理の割合を制御することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置、描画情報生成回路、画像処理制御システムに関し、特に、画像形成装置における画像処理の制御に関する。
【背景技術】
【0002】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ及び書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。
【0003】
このような画像処理装置のうち、電子化された情報の出力に用いるプリンタにおいては、入力された画像情報に基づいてプリントエンジンが画像形成出力を実行するための描画情報を生成する画像処理(以降、描画処理とする)が行われる。この画像処理は、専用のハードウェアによって実行される他、CPU(Central Processing Unit)等の演算手段がソフトウェアに従って動作することにより実行される。
【0004】
また、上述したような描画処理は、“バンド”と呼ばれる領域毎に実行されることがある。“バンド”とは、1ページを副走査方向に複数段に分割した夫々の領域である。このようなハードウェア及びソフトウェアによって描画処理可能な画像形成装置において、描画処理を行うバンド毎に、ソフト若しくはハードによっての描画処理が可能か否かに基づき、描画処理の分担を決定する方法が既に提案されている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0005】
このようなハードウェア及びソフトウェアによって描画処理可能な画像形成装置においては、ハードウェアとソフトウェアとの処理の分散割合を最適化し、いずれか一方が処理を終了した状態で他方の処理が終了するまで待機するような状態(以降、ウェイト状態とする)が可能な限り発生しないようにする必要がある。しかしながら、特許文献1に開示された方法においては、そのような考慮はされていない。
【0006】
また、ソフトウェアの処理状況はソフトウェアによって容易に把握することができるが、ハードウェアの処理状況やウェイト状態の有無を把握するためには、そのような情報の把握が可能なように回路を作りこむ必要があり、困難であると共にコストの増大にもなってしまう。
【0007】
本発明は、上記実情を考慮してなされたものであり、ハードウェア及びソフトウェアによって描画処理可能な画像形成装置において、ハードウェアの処理状態を簡易な構成によって把握し、ハードウェアとソフトウェアとの処理の分散の最適化を可能とすることを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の一態様は、画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像形成装置であって、ページ記述言語に基づいて得られた描画命令に基づき、描画すべき図形毎に情報がまとめられた図形情報を生成して記憶媒体に記憶させる図形情報生成部と、前記記憶された図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をソフトウェア処理によって実行する描画情報生成部と、
前記描画処理をハードウェアとして実行する描画情報生成回路と、前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御する描画処理制御部とを含み、前記描画情報生成回路は、前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、前記描画処理制御部は、前記動作クロックカウント部及び前記待機クロックカウント部のカウント値に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする。
【0009】
また、本発明の他の態様は、画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像形成装置において、画像形成出力において描画すべき図形毎に情報がまとめられた図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をハードウェアとして実行する描画情報生成回路であって、前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、前記動作クロックカウント部及び前記待機クロックカウント部は、前記描画処理をソフトウェアによって実行する描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御するための情報として夫々のカウント値を出力することを特徴とする。
【0010】
また、本発明の更に他の態様は、画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像処理制御システムであって、画像形成出力において描画すべき図形毎に情報がまとめられた図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をハードウェアとして実行する描画情報生成回路と、前記描画処理をソフトウェアによって実行する描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御する描画処理制御プログラムとを含み、前記描画情報生成回路は、前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、前記描画処理制御プログラムは、前記動作クロックカウント部及び前記待機クロックカウント部のカウント値を取得するステップと、前記取得したカウント値に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御するステップとを情報処理装置に実行させることを特徴とする。
【発明の効果】
【0011】
本発明によれば、ハードウェア及びソフトウェアによって描画処理可能な画像形成装置において、ハードウェアの処理状態を簡易な構成によって把握し、ハードウェアとソフトウェアとの処理の分散の最適化を可能とすることができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態に係る画像形成装置のハードウェア構成を示すブロック図である。
【図2】本発明の実施形態に係る画像形成装置の機能構成を示す図である。
【図3】本発明の実施形態に係る画像処理部に含まれる機能を示す図である。
【図4】本発明の実施形態に係る描画コアモジュール及びハードウェアアクセラレータの機能構成を示す図である。
【図5】本発明の実施形態に係る描画処理の順序を示す図である。
【図6】本発明の実施形態に係る処理分散を変更する際の条件を示す図である。
【図7】本発明の実施形態に係る描画コアモジュールの動作を示すフローチャートである。
【図8】本発明の実施形態及び比較例の処理のタイミングを示す図である。
【図9】本発明の他の実施形態に係る分散割合の制御動作を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、プリンタ、スキャナ、複写機等の機能を含む複合機(MFP:Multi Function Peripheral)としての画像形成装置を例として説明する。
【0014】
図1は、本実施形態に係る画像形成装置1のハードウェア構成を示すブロック図である。図1に示すように、本実施形態に係る画像形成装置1は、一般的なサーバやPC(Personal Computer)等の情報処理端末と同様の構成に加えて、画像形成を実行するエンジンを有する。即ち、本実施形態に係る画像形成装置1は、CPU(Central Processing Unit)10、RAM(Random Access Memory)20、ROM(Read Only Memory)30、エンジン40、HDD(Hard Disk Drive)50及びI/F60がバス90を介して接続されている。また、I/F60にはLCD(Liquid Crystal Display)70及び操作部80が接続されている。
【0015】
CPU10は演算装置であり、画像形成装置1全体の動作を制御する。RAM20は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU10が情報を処理する際の作業領域として用いられる。ROM30は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。エンジン40は、画像形成装置1において実際に画像形成を実行する機構である。
【0016】
HDD50は、情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム等が格納されている。I/F60は、バス90と各種のハードウェアやネットワーク等を接続し制御する。LCD70は、ユーザが画像形成装置1の状態を確認するための視覚的ユーザインタフェースである。操作部80は、キーボードやマウス等、ユーザが画像形成装置1に情報を入力するためのユーザインタフェースである。
【0017】
このようなハードウェア構成において、ROM30やHDD50若しくは図示しない光学ディスク等の記録媒体に格納されたプログラムがRAM20に読み出され、CPU10がそれらのプログラムに従って演算を行うことによりソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る画像形成装置1の機能を実現する機能ブロックが構成される。
【0018】
次に、図2を参照して、本実施形態に係る画像形成装置1の機能構成について説明する。図2は、本実施形態に係る画像形成装置1の機能構成を示すブロック図である。図2に示すように、本実施形態に係る画像形成装置1は、コントローラ100、ADF(Auto Documennt Feeder:原稿自動搬送装置)110、スキャナユニット120、排紙トレイ130、ディスプレイパネル140、給紙テーブル150、プリントエンジン160、排紙トレイ170及びネットワークI/F180を有する。
【0019】
また、コントローラ100は、主制御部101、エンジン制御部102、入出力制御部103、画像処理部104及び操作表示制御部105を有する。図2に示すように、本実施形態に係る画像形成装置1は、スキャナユニット120、プリントエンジン160を有する複合機として構成されている。尚、図2においては、電気的接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。
【0020】
ディスプレイパネル140は、画像形成装置1の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが画像形成装置1を直接操作し若しくは画像形成装置1に対して情報を入力する際の入力インタフェース(操作部)でもある。ネットワークI/F180は、画像形成装置1がネットワークを介して他の機器と通信するためのインタフェースであり、Ethernet(登録商標)やUSB(Universal Serial Bus)インタフェースが用いられる。
【0021】
コントローラ100は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ROM30や不揮発性メモリ並びにHDD50や光学ディスク等の不揮発性記録媒体に格納されたファームウェア等の制御プログラムが、RAM20等の揮発性メモリ(以下、メモリ)にロードされ、CPU10がそれらのプログラムに従って演算を行うことにより構成されるソフトウェア制御部と、集積回路などのハードウェアとによってコントローラ100が構成される。コントローラ100は、画像形成装置1全体を制御する制御部として機能する。
【0022】
主制御部101は、コントローラ100に含まれる各部を制御する役割を担い、コントローラ100の各部に命令を与える。エンジン制御部102は、プリントエンジン160やスキャナユニット120等を制御若しくは駆動する駆動手段としての役割を担う。入出力制御部103は、ネットワークI/F180を介して入力される信号や命令を主制御部101に入力する。また、主制御部101は、入出力制御部103を制御し、ネットワークI/F180を介して他の機器にアクセスする。
【0023】
画像処理部104は、主制御部101の制御に従い、入力された印刷ジョブに含まれる印刷情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン160が画像形成動作において形成すべき画像を描画するための情報である。また、印刷ジョブに含まれる印刷情報とは、PC等の情報処理装置にインストールされたプリンタドライバによって画像形成装置1が認識可能な形式に変換された情報であり、PDL(Page Description Language)によって記述された情報である。換言すると、上記印刷情報とは、画像形成出力すべきページの情報が記述されたページ情報である。尚、本実施形態においては、ページ記述言語としてPDLを用いる場合を例とするが、他の言語であっても良い。
【0024】
本実施形態においては、画像処理部104による上記描画情報の生成処理が要旨であり、より具体的には、画像処理部104を構成するハードウェアを効率的に動作させるための制御が要旨である。画像処理部104の機能については、後に詳述する。操作表示制御部105は、ディスプレイパネル140に情報表示を行い若しくはディスプレイパネル140を介して入力された情報を主制御部101に通知する。
【0025】
画像形成装置1がプリンタとして動作する場合は、まず、入出力制御部103がネットワークI/F180を介して印刷ジョブを受信する。入出力制御部103は、受信した印刷ジョブを主制御部101に転送する。主制御部101は、印刷ジョブを受信すると、画像処理部104を制御して、印刷ジョブに含まれる印刷情報に基づいて描画情報を生成させる。
【0026】
画像処理部104によって描画情報が生成されると、エンジン制御部102は、生成された描画情報に基づき、給紙テーブル150から搬送される用紙に対して画像形成を実行する。即ち、プリントエンジン160が画像形成部として機能する。プリントエンジン160の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン160によって画像形成が施された文書は排紙トレイ170に排紙される。
【0027】
画像形成装置1がスキャナとして動作する場合は、ユーザによるディスプレイパネル140の操作若しくはネットワークI/F180を介して外部のクライアント用の情報処理端末等から入力されるスキャン実行指示に応じて、操作表示制御部105若しくは入出力制御部103が主制御部101にスキャン実行信号を転送する。主制御部101は、受信したスキャン実行信号に基づき、エンジン制御部102を制御する。
【0028】
エンジン制御部102は、ADF110を駆動し、ADF110にセットされた撮像対象原稿をスキャナユニット120に搬送する。また、エンジン制御部102は、スキャナユニット120を駆動し、ADF110から搬送される原稿を撮像する。また、ADF110に原稿がセットされておらず、スキャナユニット120に直接原稿がセットされた場合、スキャナユニット120は、エンジン制御部102の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット120が撮像部として動作する。
【0029】
撮像動作においては、スキャナユニット120に含まれるCCD等の撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部102は、スキャナユニット120が生成した撮像情報を画像処理部104に転送する。画像処理部104は、主制御部101の制御に従い、エンジン制御部102から受信した撮像情報に基づき画像情報を生成する。画像処理部104が生成した画像情報はHDD40等の画像形成装置1に装着された記憶媒体に保存される。
【0030】
画像処理部104によって生成された画像情報は、ユーザの指示に応じてそのままHDD40等に格納され若しくは入出力制御部103及びネットワークI/F180を介して外部の装置に送信される。即ち、スキャナユニット120及びエンジン制御部102が画像入力部として機能する。
【0031】
また、画像形成装置1が複写機として動作する場合は、エンジン制御部102がスキャナユニット120から受信した撮像情報若しくは画像処理部104が生成した画像情報に基づき、画像処理部104が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部102がプリントエンジン160を駆動する。
【0032】
図3は、本実施形態に係る画像処理部104に含まれる機能を示すブロック図である。図3に示すように、本実施形態に係る画像処理部104は、PDL解析部210、描画コアモジュール220を含み、ソフトウェア・プログラムに従ってCPU10が演算を行うことにより構成されるPDLアプリケーション200と、集積回路によって構成されるハードウェアアクセラレータ230とを含む。
【0033】
PDL解析部210は、PDLで記述された印刷情報を取得し、描画コアモジュール220が処理可能な形式に変換する。この変換された形式の情報が、PDLアプリケーション200において描画命令として処理される。
【0034】
描画コアモジュール220は、PDL解析部210によって変換された描画命令に基づき、プリントエンジン160が画像形成出力を実行するための描画情報を生成する処理(以降、描画処理とする)を実行する。また、描画コアモジュール220は、ハードウェアアクセラレータ230を制御するための機能も含む。
【0035】
ハードウェアアクセラレータ230は、描画コアモジュール220が実行する描画処理をCPU10とは独立して実行するハードウェアである。本実施形態に係るハードウェアアクセラレータ230は、描画コアモジュール220がハードウェアアクセラレータ230の処理状況を把握するための簡易な構成を含む。
【0036】
図4は、本実施形態に係る描画コアモジュール220及びハードウェアアクセラレータ230の機能構成を示すブロック図である。図4に示すように、描画コアモジュール220は、描画コアモジュールI/F221、DL(Display List)処理部222、ハードウェア描画処理制御部223、中間データ記憶部224、描画処理部225及びバンドメモリ226を含む。
【0037】
描画コアモジュールI/F221は、PDL解析部210によって変換された描画命令をPDL解析部210から取得し、DL処理部222に入力する。DL処理部222は、描画コアモジュール221から取得した描画命令に基づき、画像形成出力するべき各ページにおいて描画されるべきオブジェクトの情報が記述されたディスプレイリストを生成し、中間データ記憶部224に格納する。本実施形態において、DL処理部222は、1ページを副走査方向に複数段に分割した“バンド”と呼ばれる夫々の分割領域毎にディスプレイリストを生成し、中間データ記憶部224に格納する。
【0038】
上記ディスプレイリストとは、換言すると、描画すべき図形毎に情報がまとめられた図形情報である。即ち、DL処理部222は、図形情報生成部として機能する。ハードウェア描画処理制御部223は、ハードウェアアクセラレータ230の制御を行う。図4に示すように、ハードウェアアクセラレータ230は、動作クロックカウンタ231、WAITクロックカウンタ232及びハードウェア描画処理部233を含む。
【0039】
動作クロックカウンタ231は、ハードウェアアクセラレータ230における動作クロックをカウントする動作クロックカウント部である。これに対してWAITクロックカウンタ231は、ハードウェアアクセラレータ230が処理待ち状態、即ち待機状態となっている間のハードウェアアクセラレータ230における動作クロックをカウントする待機クロックカウント部である。ハードウェア描画処理部233は、中間データ記憶部224に格納された中間データに基づき、描画処理を実行する。即ち、ハードウェアアクセラレータ230が、描画情報生成回路として機能する。
【0040】
このようなハードウェアアクセラレータ230の構成に対して、ハードウェア描画処理制御部223は、動作クロックカウンタ231及びWAITクロックカウンタ232のカウント値に基づいてハードウェアアクセラレータ233の処理状況を判断し、描画コアモジュール220による描画処理と、ハードウェア描画処理部233による描画処理との分散割合を決定して、描画処理部225及びハードウェア描画処理部233に描画処理を実行させる描画処理制御部として機能する。
【0041】
中間データ記憶部224は、DL処理部222によって変換された描画命令や、描画処理部225及びハードウェア描画処理部233によって処理された情報を一時的に記憶する記憶領域であり、RAM20において確保された記憶領域である。
【0042】
描画処理部225は、描画コアモジュール220の機能、即ち、ソフトウェア・プログラムに従って演算を行うCPU10によって構成されるソフトウェア制御部として描画処理を実現する描画情報生成部である。描画処理部225は、DL処理部222によって生成されて中間データ記憶部224に格納されたディスプレイリストに基づき、描画処理を実行する。
【0043】
上述したように、ディスプレイリストは、バンド毎に中間データ記憶部224に記憶される。従って、ハードウェア描画処理部233及び描画処理部225は、バンド毎に描画処理を実行する。
【0044】
バンドメモリ226は、上述したように、ハードウェア描画処理部233及び描画処理部225によって生成された描画情報をバンド毎に記憶する記憶媒体である。バンドメモリ226は、RAM20において確保された記憶領域である。
【0045】
本実施形態においては、描画処理部225が描画処理の前半を実行し、描画情報になる前の処理途中のデータを中間データ記憶部224に再度記憶させ、ハードウェア描画処理部233が、描画処理を最後まで実行して描画情報を生成する。従って、バンドメモリ226に描画情報を格納するのはハードウェア描画処理部233のみである。
【0046】
図5は、本実施形態に係る描画処理の流れ及び処理負荷分散の例を示す図である。図5に示す描画処理の流れは、イメージオブジェクトを含むバンドの描画処理の流れである。図5に示すように、本実施形態に係る描画処理は、“入力”、“フォーマット変換”、“カラーマッチング”、“BG(Back Ground)/UCR(Under Color Removal)”、“γ変換”、“少値化(ディザリング)”、“バンドメモリへの描画”という処理を含む。
【0047】
そして、図5における“例1”は、DL処理部222による中間データ記憶部224へのディスプレイリストの格納処理である“入力”処理及びフォーマット変換のみを描画コアモジュール220側で行い、以降の処理をハードウェア描画処理部233において行う態様である。
【0048】
また、“例2”は、例1の態様に加えて、カラーマッチングをも描画コアモジュール220側で行う態様であり、例1よりも描画コアモジュール220、即ちCPU10の処理負荷を増やした態様である。また、“例3”は、例の2の態様に加えて、更にBG/UCR処理及びγ変換処理をも描画コアモジュール220側で行う態様であり、例2よりも更に2段階CPU10の処理負荷を増やした態様である。
【0049】
図5に示すように、本実施形態においては、ハードウェア描画処理部223が、動作クロックカウンタ231のカウント値及びWAITクロックカウント値に基づき、描画処理部225とハードウェア描画処理部233との処理の分散態様を決定する。描画処理部225及びハードウェア描画処理部233は、ハードウェア描画処理制御部223の制御に従い、図5に示すような分散態様に従って描画処理を実行する。
【0050】
本実施形態において、ハードウェア描画処理制御部223は、動作クロックカウンタ231のカウント値(以降、動作クロックカウント値)及びWAITクロックカウンタ232のカウント値(以降、WAITクロックカウント値)に基づき、以下の式(1)に基づいてハードウェアアクセラレータ230の負荷状況εを算出する。

【0051】
式(1)の計算結果により、動作クロックカウント値に対するWAITクロックカウント値の割合、即ち、ハードウェアアクセラレータ230が動作している間において、処理が終了している若しくは次の処理に進めるにも関わらず、RAM20へのアクセス待ちにより待機している間の割合をεとして求めることができる。ハードウェア描画処理制御部223は、このεをハードウェアアクセラレータ230の負荷状況として参照することにより、図5の例1〜3に示すように、描画処理部225とハードウェア描画処理部233との処理の分散を判断する。
【0052】
図6は、ハードウェア描画処理制御部223が描画処理部225とハードウェア描画処理部233との処理の分散を判断する際の判断基準の例を示す図である。図6に示すように、本実施形態においては、2つの基準値K1、K2が設定されており、2つの数値の関係はK1<K2である。そして、εがK1以上K2未満であれば、ハードウェア描画処理制御部223は、現在の分散設定が好適な設定であると判断し、現在の設定を維持する。
【0053】
εがK1未満である場合、即ち、ハードウェア描画処理部233の待機時間の割合が低い場合、ハードウェア描画処理制御部223は、ハードウェア描画処理部233の負荷、即ちHA(Hardware Accelerator:ハードウェアアクセラレータ)の負荷が高く、描画処理部225の負荷、即ちCPU10の負荷が低いと判断し、CPU10の負荷を上げると共に、ハードウェアアクセラレータ230の負荷を下げるように制御する。
【0054】
εがK2以上である場合、即ち、ハードウェア描画処理部233の待機時間の割合が高い場合、ハードウェア描画処理制御部223は、ハードウェアアクセラレータ230の負荷が低く、CPU10の負荷が高いと判断し、CPU10の負荷を下げると共に、ハードウェアアクセラレータ230の負荷を上げるよう制御する。
【0055】
ここで、CPU10の負荷を下げると共に、ハードウェアアクセラレータ230の負荷を上げるような制御や、CPU10の負荷を上げると共に、ハードウェアアクセラレータ230の負荷を下げるような制御とは、図5の例において、例1〜3のように、線を引く場所を変更することである。
【0056】
例えば、CPU10の負荷を上げると共に、ハードウェアアクセラレータ230の負荷を下げる制御は、図5において線を引く場所を下に変更する。例えば、図5に示す例1から例2に変更する。これにより、例1においてはフォーマット変換までであったCPU10の処理に、新たにカラーマッチングの処理が加わり、その分CPU10の負荷が増大することとなる。
【0057】
尚、このような変更は、ハードウェア描画処理制御部223がレジスタ値を書き換え、ハードウェア描画処理部233及び描画処理部225が、レジスタ値に従って描画処理を実行することにより実現可能である。即ち、ハードウェア描画処理部223は、図5に示すような処理の分岐点、即ち、CPU10とハードウェアアクセラレータ230との処理の分岐点を示すレジスタ値を、ハードウェアアクセラレータ230の負荷状況の判断結果に応じて書き換える。そして、ハードウェア描画処理部233及び描画処理部225が、書き換えられたレジスタ値に従って描画処理を実行することにより、ハードウェア描画処理制御部223による分散割合の判断結果に応じた処理が実行される。
【0058】
次に、本実施形態に係る画像処理部104の処理の詳細について、図7を参照して説明する。図7は、本実施形態に係る画像処理部104の動作を示すフローチャートである。図7に示すように、描画処理部225による描画処理、即ち、CPU10の処理が完了し(S701/YES)、処理済みのデータが中間データ記憶部224に記憶されると、ハードウェア描画処理制御部223が、動作クロックカウンタ231及びWAITクロックカウンタ232のカウント値を初期化する(S702)。
【0059】
そして、ハードウェア描画処理制御部223は、中間データ記憶部224に記憶された中間データのアドレスをハードウェア描画処理部233に通知する。これにより、ハードウェア描画処理部233が、通知されたアドレスに記憶されている中間データに基づいて1バンド分の描画処理を実行する(S703)。
【0060】
ハードウェア描画処理部233が1バンド分の描画処理を完了すると(S704/YES)、ハードウェア描画処理制御部223は、動作クロックカウンタ213及びWAITクロックカウンタ232のカウント値を参照し(S705)、上述した式(1)に基づいてεの値を算出する。
【0061】
εの値を算出したハードウェア描画処理制御部223は、算出したεの値に基づき、図5、図6において説明したように、描画処理部225とハードウェア描画処理部233との処理分散の割合を調整する(S706)。そして、S706の処理を完了すると、ハードウェア描画処理制御部223は、1ページ分の描画処理が完了したか否か判断し(S707)、完了していなければ(S707/NO)、S701からの処理を繰り返し、完了していれば(S707/YES)、そのまま処理を終了する。
【0062】
このような処理により、本実施形態に係る描画処理部104による描画処理が完了する。即ち、本実施形態に係る描画処理において、ハードウェア描画処理制御部223は、ハードウェア描画処理部233が1バンド分の描画処理を完了する毎にハードウェア描画処理部233の負荷状況を判断し、処理の分散割合を変更する。これにより、次のバンドの処理においては、処理の分散割合が変更された状態で処理が実行されるため、前のバンドの処理よりも処理の分散割合が最適化される。
【0063】
本実施形態に係る分散割合の変更の具体的な例について、図8(a)、(b)を参照して説明する。図8(a)、(b)は、描画処理においてCPU10、即ち描画処理部225による処理と、HA(Hardware Accelerator:ハードウェアアクセラレータ230)、即ち、ハードウェア描画処理部233による処理とのタイミングを示すタイミングチャートであり、斜線部分は、ハードウェア描画処理部233がRAM20へのアクセスのために待機している期間、即ちWAITクロックカウンタ232がクロックをカウントしている期間を示している。
【0064】
また、図8(a)は、本実施形態に係る分散割合の判断を行わない場合の比較例を示すタイミングチャートであり、図8(b)が、本実施形態に係る分散割合の判断を行った場合のタイミングチャートである。図8(a)、(b)のタイミングチャートにおいては、時間軸が共通化されている。
【0065】
図8(a)に示すように、分散割合の変更を行わずに一定の分散割合で描画処理を行う場合、HA処理における斜線部分の割合は略変わらない。これに対して、図8(b)に示すように、本実施形態に係る分散割合の判断を適用する場合、まずタイミングtにおいて、1バンド目の描画処理部225による処理が完了し、ハードウェア描画処理部233が1バンド目の残りの描画処理を開始する。それと同時に、描画処理部225は、次のバンドについての処理を開始する。この時点では、また、ハードウェア描画処理部233による描画処理が完了していないため、分散割合の判断は行われない。
【0066】
次に、図8(b)に示すタイミングtにおいて、ハードウェア描画処理部233によって1バンド目の描画処理が完了する。これにより、ハードウェア描画処理制御部223が、図7において説明したように、分散割合を判断する。図8(b)の例においては、ハードウェア描画処理部233の負荷を上げるように判断され、分散割合が変更されたものとする。
【0067】
この場合、タイミングtの次のCPU処理、即ち3バンド目におけるCPU処理は、負荷が低減されているため、図8(b)に示すように、2バンド面の処理の期間よりも短くなる。CPU処理の負荷が低減されるということは、それだけCPU10がRAM20にアクセスする機会が減るということであるため、図8(b)に示すように、3バンド目についてのCPU処理と並行して実行されるハードウェア描画処理部233による2バンド目についての描画処理においては、RAM20へのアクセス待機期間が減少する。
【0068】
次に、タイミングtに達すると、ハードウェア描画処理制御部223が再度分散割合の判断を行うが、ここではεがK1以上K2未満であり、分散割合が維持されたものとする。その場合、次にハードウェア描画処理部233が描画処理を実行する3バンド目のデータは、タイミングtにおいて分散割合が変更された後にCPU10によって処理された中間データである。そのため、描画処理部233が実行するべき処理量、即ち、図8(b)に示すHA処理のブロックのうち、無地で示される部分の面積は、2バンド目のデータよりも増えている。しかしながら、CPU処理の量が減っており、RAM20へのアクセス待機時間が低減されるため、トータルでの処理期間の増大は、処理量の増大よりも低減される。
【0069】
このように処理が実行された結果、図8(b)の例においては、図8(a)の例における5バンド目の終了タイミングであるタイミングtよりも速いタイミングtにおいて、5バンド目の描画処理が完了する。このように、本実施形態に係るCPU10とハードウェアアクセラレータ230との処理の分散割合の判断方法を用いることにより、処理の分散割合を最適化し、描画処理の終了タイミングを早めることができる。
【0070】
以上、説明したように、本実施形態に係る画像形成装置においては、ハードウェアによって描画処理を実行するハードウェアアクセラレータ230において、動作クロックカウンタ231及びWAITクロックカウンタ232が設けられている。そして、描画コアモジュール220の機能の1つであるハードウェア描画処理制御部223が、動作クロックカウンタ231及びWAITクロックカウンタ232のカウント値に基づいてハードウェアアクセラレータ230の負荷状態を判断し、その判断結果に従ってCPU10とハードウェアアクセラレータ230との描画処理の分散割合を変更する。
【0071】
これにより、ハードウェア及びソフトウェアによって描画処理可能な画像形成装置において、ハードウェアの処理状態を簡易な構成によって把握可能であり、ハードウェアとソフトウェアとの処理の分散の最適化を可能とすることができる。
【0072】
尚、本実施形態においては、図5において説明したように、ディスプレイリストとして中間データ記憶部224に記憶された状態からビットマップデータとしてバンドメモリ226に格納されるまでの一連の処理における、CPU10とハードウェアアクセラレータ230との処理の分岐点を変更する場合を例として説明した。
【0073】
即ち、本実施形態においては、ディスプレイリストからビットマップデータへの一連の処理をCPU10とハードウェアアクセラレータ230とで分担することが前提となっている。しかしながら、CPU10とハードウェアアクセラレータ230との処理の分散態様としては、上記の例の他、描画処理を実行するバンドの割り振りによって処理を分散する態様もあり得る。例えば、ハードウェア描画処理部233が2バンド分の描画処理を実行する間に、描画処理部225が1バンド分の描画処理を実行する場合等である。
【0074】
この場合であっても、上記実施形態と同様、ハードウェア描画処理制御部223が、動作クロックカウンタ231及びWAITクロックカウンタ232のカウント値に基づいて算出したεの値に応じてハードウェアアクセラレータ230とCPU10との処理の分散割合を判断することにより、上記と同様に実現可能である。
【0075】
また、上記実施形態においては、図6において説明したように、ハードウェアアクセラレータ230の負荷状態を示すεの値に対して、K1及びK2のように上下に閾値が設けられており、εの値がK2の値よりも高い場合は、CPU10の負荷が高く、ハードウェアアクセラレータ230の負荷が低い状態であり、εの値がK1の値よりも低い場合は、CPU10の負荷が低く、ハードウェアアクセラレータ230の負荷が高い状態であると判断する場合を例として説明した。
【0076】
εの値が高すぎる場合というのは、ハードウェア描画処理部233においてRAM20へのアクセス待ちが多く発生しており、ハードウェア描画処理部233が処理を行っていない状態が多いのに対して、CPU10においてはRAM20へのアクセスが多く発生しており、CPU10の負荷が高く、ハードウェアアクセラレータ230の負荷が低い状態と判断することが容易である。
【0077】
これに対して、εの値が低い場合というのは、ハードウェア描画処理部233においてRAM20へのアクセス待ちがあまり発生しておらず、CPU10によるRAM20へのアクセスがハードウェア描画処理部233によるRAM20へのアクセスの障害になっていないということである。このため、上記実施形態において、ハードウェア描画処理制御部223は、CPU10の負荷が低く、ハードウェアアクセラレータ230の負荷が高い状態であると判断している。
【0078】
しかしながら、ハードウェア描画処理部233においてRAM20へのアクセス待ちがあまり発生していない状態というのは、ハードウェア描画処理部233による処理がスムーズに実行されているとも判断できる。即ち、εの値が低い場合について、ハードウェアアクセラレータ230の負荷状態を一概に判断することは困難であるため、少なくともK2のような上の閾値のみを設定することによって、上述した効果と同様の効果を得ることが可能である。
【0079】
即ち、ハードウェア描画処理制御部223が動作するためのパラメータ値として、許容されるεの上限値(図6においてK2に相当する値)のみを定めておく。そして、ハードウェア描画処理制御部223は、εの値が定められた上限値を超えるまで、ハードウェア描画処理部233の負荷を下げる。そして、εの値が定められた上限値を超えたら、ハードウェア描画処理部233は、ハードウェア描画処理部233の負荷を上げる。これにより、簡易な構成及び処理によって、ハードウェアアクセラレータ230の負荷の判断及び処理分散の最適化を行うことができる。
【0080】
また、εがK1以下であった場合において、ハードウェアアクセラレータ230の負荷がまだ低い可能性を考慮し、一度ハードウェアアクセラレータ230の負荷を上げると共にCPU10の負荷を下げ、その後のεの値の変化に基づいて更に負荷分散の制御を行うことも可能である。そのような例について、図9を参照して説明する。
【0081】
図9は、上述したように、εがK1以下であった場合において、一度ハードウェアアクセラレータ230の負荷を上げると共にCPU10の負荷を下げる場合のハードウェア描画処理制御部223の動作を示すフローチャートであり、図7のS706における詳細な動作に相当する。即ち、図9の動作の前提として、既に図7のS705までの処理が実行され、εの値が算出されている。
【0082】
εの値を算出すると、ハードウェア描画処理制御部223は、εの値がK1以下であるか否かが判断し(S901)、K1以下であった場合(S901/YES)、ハードウェア描画処理制御部223の内部パラメータであるフラグの値を確認する(S902)。このフラグとは、1ビットのデータであり、上述したように、一度ハードウェアアクセラレータ230の負荷を上げると共にCPU10の負荷を下げる制御を実行したか否かを判断するためのフラグである。
【0083】
フラグがオフであれば(S902/NO)、一度ハードウェアアクセラレータ230の負荷を上げると共にCPU10の負荷を下げる制御が未だ実行されていないということであるため、ハードウェア描画処理制御部223は、上述したように、一度ハードウェアアクセラレータ230の負荷を上げると共にCPU10の負荷を下げる制御を実行する(S906)と共に、フラグの値をオンにし、現在算出されているεの値をεとして記憶して(S907)、処理を終了する。
【0084】
他方、既に一度S906及びS907の処理が実行されており、フラグがオンであった場合(S902/YES)、一度ハードウェアアクセラレータ230の負荷を上げると共にCPU10の負荷を下げる制御が既に実行されているということであるため、ハードウェア描画処理制御部223は、現在のεの値と、記憶されているεの値とを比較する(S903)。比較の結果、εの値がεの値よりも大きければ、前回のS906の制御による効果が確認できるため、再度S906以降の処理に進む。
【0085】
εの値がεの値以下である場合、前回のS906の制御によって更にεの値が低下しており、εの値の好ましい範囲として定められたK1からK2の範囲から更に遠ざかっている。従って、ハードウェア描画処理制御部223は、前回のS906の制御が誤った制御であったものと認識し、前回の制御を打ち消して更に好適に方向に制御を行うため、ハードウェアアクセラレータ230の負荷を2段階下げると共にCPU10の負荷を2段階上げる制御を実行する(S904)。そして、フラグをオフに更新し(S905)、処理を終了する。
【0086】
ここで、上述したハードウェアアクセラレータ230の負荷を2段階下げると共に、CPU10の負荷を2段階上げる制御とは、例えば、図5の例において線を引く位置を例2から例3に変更するように、2段階下げることである。
【0087】
また、εの値がK1を超えていた場合(S901/NO)、ハードウェア描画処理制御部223は、フラグがオンであればオフに更新し(S908)、εの値がK2以上であるか否か判断する(S909)。εの値がK2以上であった場合(S909/YES)、ハードウェア描画処理制御部223は、図6において説明した制御態様と同様に、ハードウェアアクセラレータ230の負荷を上げると共にCPU10の負荷を下げる制御を実行し(S910)、処理を終了する。
【0088】
また、εの値がK2未満であれば(S909/NO)、ハードウェア描画処理制御部223は、負荷分散の状態が好適な範囲内であると判断し、そのまま処理を終了する。このような処理により、εの変化に基づいて好適な制御の方向性を判断することができ、ハードウェアとソフトウェアとの処理の分散をより好適に最適化することができる。
【0089】
また、上記実施形態においては、ハードウェア描画処理制御部223が、動作クロックカウンタ231及びWAITクロックカウンタ232のカウント値のみを参照して処理の分散割合を制御する場合を例として説明した。この他、上記カウント値に加えて、CPU10の負荷状況を参照しても良い。一般的な情報処理装置であれば、CPU10の負荷状況を確認するための機能が備わっているため、ハードウェア描画処理制御部223は、その機能によってCPU10の負荷状況を確認し、処理の分散割合の制御に用いることができる。
【0090】
CPU10の負荷状況を処理の分散割合の制御に用いる際の例としては、例えば、ハードウェア描画処理制御部223は、描画処理部225が、その時点の分散割合に従って1バンド分の描画処理を実行する間のCPU10の負荷状況をモニタリングして記憶しておく。ここで、ハードウェア描画処理制御部223が記憶するCPU10の負荷状況とは、描画処理部225が1バンド分の描画処理を実行する間のCPU10の使用率の平均値や最大値である。
【0091】
そして、図9のS901においてεがK1以下である場合、ハードウェア描画処理制御部223は、上記記憶したCPU10の負荷状況を参照し、CPU10の負荷が所定の上限値以上である場合、ハードウェアアクセラレータ230側の負荷が低く、CPU10側の負荷が高いと判断し、CPU10の負荷を下げると共にハードウェアアクセラレータ230の負荷を上げるように制御する。
【0092】
他方、CPU10の負荷が所定の下限値未満である場合、ハードウェア描画処理制御部223は、ハードウェアアクセラレータ230側の負荷が高く、CPU10側の負荷が低いと判断し、CPU10の負荷を上げると共にハードウェアアクセラレータ230の負荷を下げるように制御する。このように、動作クロックカウンタ231及びWAITクロックカウンタ232のカウント値に基づいて推測されるハードウェアアクセラレータ230の負荷状況に加えて、CPU10の負荷状況をも参照することにより、ハードウェアとソフトウェアとの処理の分散をより好適に最適化することができる。
【0093】
尚、上記実施形態においては、ハードウェアアクセラレータ230を含む画像形成装置1を例として説明した。しかしながら、上記実施形態の要旨は、動作クロックカウンタ231及びWAITクロックカウンタ232を含むハードウェアアクセラレータ230であり、ハードウェアアクセラレータ230単品での流通も可能である。また、ハードウェアアクセラレータ230を好適に動作させるため、ハードウェア描画処理制御部233に相当するドライバ・プログラムが必要であり、ハードウェアアクセラレータ230と上記ドライバ・プログラムとのセットでの流通も可能である。
【0094】
また、上記ハードウェアアクセラレータ230と上記ドライバ・プログラムとのセットでの流通形態としては、ハードウェアアクセラレータ230と上記ドライバ・プログラムが記憶された記憶媒体とのセットの他、ハードウェアアクセラレータ230内に設けられた記憶媒体に上記ドライバ・プログラムを格納した状態での流通も可能である。
【符号の説明】
【0095】
1 画像形成装置
10 CPU
20 RAM
30 ROM
40 エンジン
50 HDD
60 I/F
70 LCD
80 操作部
90 バス
100 コントローラ
101 主制御部
102 エンジン制御部
103 入出力制御部
104 画像処理部
105 操作表示制御部
110 ADF
120 スキャナユニット
130 排紙トレイ
140 ディスプレイパネル
150 給紙テーブル
160 プリントエンジン
170 排紙トレイ
180 ネットワークI/F
200 PDLアプリケーション
210 PDL解析部
220 描画コアモジュール
221 描画コアモジュールI/F
222 DL処理部
223 ハードウェア描画処理制御部
224 中間データ記憶部
225 描画処理部
226 バンドメモリ
230 ハードウェアアクセラレータ
231 動作クロックカウンタ
232 WAITクロックカウンタ
233 ハードウェア描画処理部
【先行技術文献】
【特許文献】
【0096】
【特許文献1】特開平8−139953号公報

【特許請求の範囲】
【請求項1】
画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像形成装置であって、
ページ記述言語に基づいて得られた描画命令に基づき、描画すべき図形毎に情報がまとめられた図形情報を生成して記憶媒体に記憶させる図形情報生成部と、
前記記憶された図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をソフトウェア処理によって実行する描画情報生成部と、
前記描画処理をハードウェアとして実行する描画情報生成回路と、
前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御する描画処理制御部とを含み、
前記描画情報生成回路は、
前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、
前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、
前記描画処理制御部は、前記動作クロックカウント部及び前記待機クロックカウント部のカウント値に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする画像形成装置。
【請求項2】
前記描画処理制御部は、前記動作クロックカウント部のカウント値に対する前記待機クロックカウント部のカウント値の割合が所定の上限値よりも大きい場合、前記描画情報生成回路が実行する描画処理の割合を増やすように制御することを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記描画処理制御部は、前記動作クロックカウント部のカウント値に対する前記待機クロックカウント部のカウント値の割合が所定の下限値よりも小さい場合、前記描画情報生成部が実行する描画処理の割合を増やすように制御することを特徴とする請求項1または2に記載の画像形成装置。
【請求項4】
前記描画処理制御部は、前記動作クロックカウント部のカウント値に対する前記待機クロックカウント部のカウント値の割合が所定の下限値よりも小さい場合、前記描画情報生成回路が実行する描画処理の割合を増やすように制御し、その後前記動作クロックカウント部のカウント値に対する前記待機クロックカウント部のカウント値の割合が減少した場合、前記描画情報生成部が実行する描画処理の割合を増やすように制御することを特徴とする請求項1または2に記載の画像形成装置。
【請求項5】
前記図形情報生成部は、単位ページが複数の領域に分割された分割領域毎に前記図形情報を生成して前記記憶媒体に記憶させ、
前記描画処理制御部は、一の前記分割領域について前記描画情報生成回路が前記描画情報を生成する間の前記動作クロックカウント部及び前記待機クロックカウント部のカウント値に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする請求項1乃至4いずれかに記載の画像形成装置。
【請求項6】
前記描画処理制御部は、前記図形情報から前記描画情報を生成するまでに実行される複数種類の処理を分割して前記描画情報生成部及び前記描画情報生成回路に割り振ることにより、前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする請求項1乃至5いずれか1項に記載の画像形成装置。
【請求項7】
前記描画処理制御部は、前記動作クロックカウント部及び前記待機クロックカウント部のカウント値と、前記描画情報生成部を実現するための演算装置の負荷状況に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする請求項1乃至6いずれかに記載の画像形成装置。
【請求項8】
前記描画処理制御部は、前記動作クロックカウント部のカウント値に対する前記待機クロックカウント部のカウント値の割合が所定の下限値よりも小さい場合に、前記描画情報生成部を実現するための演算装置の負荷状況に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御することを特徴とする請求項7に記載の画像形成装置。
【請求項9】
画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像形成装置において、画像形成出力において描画すべき図形毎に情報がまとめられた図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をハードウェアとして実行する描画情報生成回路であって、
前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、
前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、
前記動作クロックカウント部及び前記待機クロックカウント部は、前記描画処理をソフトウェアによって実行する描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御するための情報として夫々のカウント値を出力することを特徴とする描画情報生成回路。
【請求項10】
画像形成出力を実行するための画像処理をハードウェア及びソフトウェアによって実行可能な画像処理制御システムであって、
画像形成出力において描画すべき図形毎に情報がまとめられた図形情報に基づいて画像形成出力を実行するための描画情報を生成する描画処理をハードウェアとして実行する描画情報生成回路と、
前記描画処理をソフトウェアによって実行する描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御する描画処理制御プログラムとを含み、
前記描画情報生成回路は、
前記描画処理を実行する際の動作クロックをカウントする動作クロックカウント部と、
前記動作クロックのうち、前記記憶媒体へアクセスするために待機している期間のクロックをカウントする待機クロックカウント部とを含み、
前記描画処理制御プログラムは、
前記動作クロックカウント部及び前記待機クロックカウント部のカウント値を取得するステップと、
前記取得したカウント値に基づいて前記描画情報生成部及び前記描画情報生成回路が実行する描画処理の割合を制御するステップとを情報処理装置に実行させることを特徴とする画像処理制御システム。

【図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