(57)【要約】【課題】バックグランドでレンダリングを行う場合、ホストコンピュータからプリンタへプリントコマンドが送信されるまでの絶対時間が遅くなるため、プリント処理全体のスループットが低下する。【解決手段】中間コード生成部１３で中間コードを生成するときの負荷およびプリントコマンド生成部１６でプリントコマンドを生成するときの負荷を予測するドライバ処理負荷予測部１９と、この予測結果からドライバ処理負荷予測部１９の中間コード生成部１３に対して中間コードの抽象度レベルを指定する中間コード抽象度設定部２０と、ドライバ処理負荷予測部１９の予測結果を基に印刷完了通知タイミングを変更する印刷完了通知部１８とを設け、描画するページの処理負荷に応じて中間コードの抽象度を変更し、最適なタイミングでアプリケーションプログラムをプリント処理から解放するようにする。【選択図】　　　　図１
2004013770.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送する画像処理装置であって、
アプリケーションプログラムが生成する描画命令から描画抽象度を落とした中間コードを生成する中間コード生成手段と、
前記中間コード生成手段が生成した中間コードから出力装置が解釈可能なコマンドを生成するコマンド生成手段と、
前記中間コードおよび前記コマンドを生成するときの負荷を予測する負荷予測手段と、
前記負荷予測手段の予測結果を基に前記中間コード生成部が生成する中間コードの抽象度を変更する抽象度設定手段と、
前記予測結果を基にアプリケーションプログラムに対して処理の完了を通知するタイミングを変更するタイミング設定手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記負荷予測手段は、描画命令の種類と出現パターンから前記中間コードおよび前記コマンドを生成するときの負荷を予測する
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記負荷予測手段は、描画命令に含まれるＲＯＰ命令の種類と出現パターンから前記中間コードおよび前記コマンドを生成するときの負荷を予測する
ことを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記負荷予測手段は、描画命令に含まれるイメージ描画命令の数またはイメージデータのサイズから前記中間コードおよび前記コマンドを生成するときの負荷を予測する
ことを特徴とする請求項１記載の画像処理装置。
【請求項５】
ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送する画像処理装置であって、
アプリケーションプログラムの生成する描画命令から描画抽象度を落とした中間コードを生成する中間コード生成手段と、
前記中間コード生成手段が生成した中間コードから出力装置が解釈可能なコマンドを生成するコマンド生成手段と、
前記中間コード生成手段で中間コードを生成するために要する時間を累積する時間計測手段と、
前記時間計測手段で得られる累積値を基に前記中間コード生成手段が生成する中間コードの抽象度を変更する抽象度設定手段と、
前記時間累積値を基にアプリケーションプログラムに対して処理の完了を通知するタイミングを変更するタイミング設定手段と
を備えることを特徴とする画像処理装置。
【請求項６】
前記抽象度設定手段および前記タイミング設定手段は、前記時間累積値が既定の閾値を越えた場合に抽象度およびタイミングを変更する
ことを特徴とする請求項５記載の画像処理装置。
【請求項７】
ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送するに際して、
アプリケーションプログラムが生成する描画命令から描画抽象度を落とした中間コードを生成するとともに、その生成した中間コードから出力装置が解釈可能なコマンドを生成する一方、
前記中間コードおよび前記コマンドを生成するときの負荷を予測し、
その予測結果を基に前記中間コードの抽象度を変更するとともに、アプリケーションプログラムに対して処理の完了を通知するタイミングを変更する
ことを特徴とする画像処理方法。
【請求項８】
ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送するに際して、
アプリケーションプログラムの生成する描画命令から描画抽象度を落とした中間コードを生成するとともに、この中間コードから出力装置が解釈可能なコマンドを生成する一方、
前記中間コードを生成するために要する時間を累積し、
その累積値を基に前記中間コードの抽象度を変更するとともに、アプリケーションプログラムに対して処理の完了を通知するタイミングを変更する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送する画像処理装置および画像処理方法に関し、特に描画するページの処理負荷に応じて出力ドライバの内部処理を自動的に変更可能な画像処理装置および画像処理方法に関する。
【０００２】
【従来の技術】
ホストコンピュータ上で動作するアプリケーションプログラムを使用して作成した文書を出力（例えば、印刷）する場合、アプリケーションプログラムの印刷指示によってプリンタドライバが起動される。すると、プリンタドライバは、そのアプリケーションプログラムからの印刷指示に従って、アプリケーションプログラムが生成する描画命令を出力装置、即ちプリンタで解釈可能なプリントコマンドに変換してプリンタに転送する。
【０００３】
このとき、アプリケーションプログラムが生成する描画命令は、ＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）の描画モジュールが持つ描画関数の集合である。この描画モジュールの代表例としては、ＧＤＩ（Ｇｒａｐｈｉｃｓ　Ｄｅｖｉｃｅ　Ｉｎｔｅｒｆａｃｅ）などが挙げられる。これらの描画命令としては、文字、図形、ビットマップなどの描画オブジェクト毎に異なった描画命令が用意されている。プリンタドライバでは、アプリケーションプログラムが生成するこれらの描画命令を、ＯＳの描画モジュールを経由して受信した順番に処理を行い、プリントコマンドに変換していく。
【０００４】
ここで、Ｗｉｎｄｏｗｓ（登録商標）を例に挙げてホストコンピュータ内でのプリント処理シーケンスについて説明する。通常、アプリケーションプログラムから印刷指示があると、Ｗｉｎｄｏｗｓ（登録商標）の描画モジュールであるＧＤＩは、プリンタドライバを起動して描画命令をプリンタドライバに対して発行する。プリンタドライバでは、受信した描画命令をプリンタで解釈可能なプリントコマンドに変換してＧＤＩに返す。
【０００５】
次に、ＧＤＩは受け取ったプリントコマンドをスプーラに渡す。スプーラは、スプールファイルとしてプリントコマンドをＨＤＤ等の記憶装置に記憶する。プリンタドライバが当該ジョブの描画命令すべてをプリントコマンドに変換してＧＤＩを経由してスプールに書き出した時点で、アプリケーションプログラムはプリント処理から解放される。その後、スプールされたプリントコマンドは、プリントプロバイダによってディスプールされて、ポートを通してプリンタに送信される。
【０００６】
プリンタドライバは、その機能から２つのタイプに分類される。一つは、ＰｏｓｔＳｃｒｉｐｔ等に代表されるＰＤＬ（Ｐａｇｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）を生成するＰＤＬドライバである。ＰＤＬドライバは、通常、ＯＳの描画モジュールからの描画命令を、当該描画命令が与えられる都度ＰＤＬコマンドに変換する機能を持っている。一般的に、このタイプの場合は、内部的に描画命令を蓄積することを必要としないのが特徴である。
【０００７】
一方、もう一つのタイプのプリンタドライバは、プリンタドライバでレンダリングしてプリンタにイメージデータを出力するラスタドライバである。ラスタドライバは、通常、ＯＳの描画モジュールからの描画命令を、まず中間的なデータを中間コードとして蓄積する。中間コードとして少なくとも１ページ分のデータを蓄積した時点で、レンダリング対象となるページをレンダリングし、イメージデータをプリンタに対して出力する。プリンタに対して出力するイメージデータは、何らかのデータ圧縮処理を施されるのが一般的である。
【０００８】
【発明が解決しようとする課題】
上述したように、ラスタドライバタイプのプリンタドライバでは、プリンタドライバでページをレンダリングするために、レンダリング対象となるページの描画命令を中間コードとして内部的に蓄積し、さらにレンダリングしてイメージデータを生成する。従って、当該ジョブの描画命令すべてをレンダリングしてＧＤＩを経由してスプールに書き出し、アプリケーションプログラムがプリント処理から解放されるまでの時間は、ＰＤＬドライバに比べて長くなるという問題があった。
【０００９】
また、中間コード生成時に、アプリケーションプログラムからの複数の描画命令をまとめて一つの描画オブジェクトとして表現したりする処理を導入することなどの付加的な処理を行うために中間コード生成に時間を要する場合もあった。例えば、Ｒａｓｔｅｒ　Ｏｐｅｒａｔｉｏｎ（以下、ＲＯＰと記す）として知られる描画命令の使い方として、３種類の連続したＲＯＰ描画命令によって、一つの半透明描画オブジェクトを形成する描画方法が採用されることが知られている。この場合、各ＲＯＰ描画命令毎に各画素毎の論理演算を実行する必要があるため、非常に負荷のかかる処理になっていた。
【００１０】
それを軽減するために、この連続した描画命令を中間コード生成部において一旦蓄積し、まとめて一つの描画命令に置き換え、このときＲＯＰを使用しない描画命令に置き換えることによって負荷のかかるＲＯＰ描画を除いた中間コードを生成するようにした画像処理装置がある（特許第３００８９４３号公報参照）。ただし、この処理自身も複雑な処理が必要なため、ページ内に大量に出現した場合、ＲＯＰを実行するよりは負荷は軽いものの、中間コード生成に時間を要してしまう場合もあった。
【００１１】
この問題を解決するために、プリンタドライバ内部で中間コードを蓄積し終わった時点で、一旦、アプリケーションプログラムのプリント処理を終了し、バックグランドで中間コードをレンダリングすることで、アプリケーションプログラムのプリント処理による占有時間を見かけ上短くする方法も一般的に採用されている。
【００１２】
しかしながら、バックグランドでレンダリングを行う場合、アプリケーションプログラムの解放は早くなるものの、ホストコンピュータからプリンタへプリントコマンドが送信されるまでの絶対時間が遅くなるため、プリント処理全体のスループットは低下してしまっていた。特に、全体的に負荷の軽いジョブの場合でも、レンダリングまで一気に行った方がスループットが速いにも拘わらず、同一の処理シーケンスを通るため、スループットの低下を招くことになっていた。また、ジョブによっては、中間コードを生成する処理の方が実際にレンダリングする処理よりも負荷が重く、中間コードを生成するまでに時間がかかってしまい、結局アプリケーションプログラムの解放が遅くなってしまう場合もあった。
【００１３】
本発明は、上記課題に鑑みてなされたものであり、その目的とするところは、ジョブ毎にその負荷に応じた最適なアプリケーションプログラムの解放タイミングとプリント処理のスループットを得ることを可能とした画像処理装置および画像処理方法を提供することにある。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、本発明では、ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送するに際して、アプリケーションプログラムが生成する描画命令から描画抽象度を落とした中間コードを生成するとともに、その生成した中間コードから出力装置が解釈可能なコマンドを生成する一方、前記中間コードおよび前記コマンドを生成するときの負荷を予測または前記中間コードを生成するために要する時間を累積し、その予測結果または累積値を基に前記中間コードの抽象度を変更するとともに、アプリケーションプログラムに対して処理の完了を通知するタイミングを変更するようにしている。
【００１５】
すなわち、中間コードおよびコマンドを生成するときの負荷の軽重を予測、または実際に中間コードを生成するのに要する時間の累積値から負荷の軽重を判断する。そして、ジョブの負荷に応じて中間コードの抽象度を変更するとともに、アプリケーションプログラムの解放タイミングを変更する。具体的には、負荷が軽いジョブの場合には、処理全体のスループットを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定し、負荷が重いジョブの場合には、アプリケーションプログラムの解放時間を早くすることを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定する。これにより、ジョブ毎により最適なタイミングでアプリケーションプログラムを処理から解放することができる。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１７】
［第１実施形態］
図１は、本発明の第１実施形態に係る画像処理装置を備えた画像処理形成システムの概略構成を示すブロック図である。本画像処理形成システムは、画像処理装置１０と、画像出力装置、例えば画像形成装置（プリンタ）３０とを備えた構成となっており、プリントコマンドを送受信するためのインターフェイス（図示せず）を介して所定の通信媒体、例えば伝送路５０によって画像処理装置１０と画像形成装置３０とが接続されている。
【００１８】
本実施形態に係る画像処理装置１０は、描画命令を生成・編集してそれらからプリントコマンドを生成して画像形成装置３０に送出するものである。本実施形態に係る画像処理装置１０は、例えば、ＣＰＵやメモリ等のハードウェアを内蔵するパーソナルコンピュータ等によって実現される。また、画像処理装置１０には、キーボードやマウス等の入力装置、ＣＲＴ等の表示装置、ハードディスクやＣＤ−ＲＯＭドライバ等の外部記憶装置等が接続されている。
【００１９】
本実施形態に係る画像処理装置１０は、描画命令生成部１１、描画命令入力部１２、中間コード生成部１３、中間コード蓄積部１４、蓄積中間コード解析部１５、プリントコマンド生成部１６、プリントコマンド送信部１７、印刷完了通知部（タイミング設定手段）１８、ドライバ処理負荷予測部１９および中間コード抽象度設定部２０を有する構成となっている。これらの構成要素のうち、描画命令生成部１１は、描画命令を生成するためのアプリケーションプログラムであって画像処理装置１０上で動作する。その他の構成要素は、画像処理装置１０上で動作するプリンタドライバ（出力ドライバ）を構成している。
【００２０】
また、画像処理装置１０は、上述した内蔵のハードウェア、入力装置、表示装置、外部記憶装置、アプリケーションプログラムおよびプリンタドライバを制御・管理するオペレーティングシステム（ＯＳ）を備える。特に、描画命令生成部１１が生成する描画命令は、オペレーティングシステムの描画モジュールが持つ描画関数の集合である。描画命令生成部１１は、描画モジュールと協調して描画命令を生成する。
【００２１】
プリンタドライバは、画像形成装置３０に付属して提供されるソフトウェアであり、画像処理装置１０に組み込まれて動作する。通常、当該プリンタドライバは、画像形成装置３０で用いられるデータ形式に画像処理装置１０のデータ形式を対応させるために使用される。画像処理装置１０のプリンタドライバは、描画命令生成部１１、即ちアプリケーションプログラムから出力された描画命令を受信し、その描画命令に対して所定の処理を施した後に、プリントコマンドとしてそれらのデータを画像形成装置３０に送信する。
【００２２】
プリンタドライバの構成要素についてさらに具体的に説明する。描画命令入力部１２は、描画命令生成部１１、即ちアプリケーションプログラムから描画命令を受け取ると、これを中間コード生成部１３に渡す。中間コード生成部１３は、受け取った描画命令から描画抽象度（以下、抽象度レベルと記す）を落とした中間コードを生成する。このときの中間コードの抽象度レベルは、中間コード抽象度設定部２０によって設定される。
【００２３】
ここで、中間コードの抽象度レベルとは、中間コード内のデータ形式として描画命令にどの程度の抽象度を持たせるかを示すレベルであり、アプリケーションプログラムから受け取った描画命令の抽象度が最もレベルが高い（最高位の抽象度）。図形要素では、円、楕円、矩形などの描画オブジェクトなどから成る中間コードである。いわゆる一般的なＰＤＬでサポートされた描画オブジェクトを持ったデータ形式である。
【００２４】
一方、最も抽象度レベルが低い中間コードは、ビットマップまで展開されたデータであり、もはや中間コードというよりも、最終的な出力データということになる。ここでは、最高位の抽象度を持った描画命令と最低位の抽象度をもったデータ形式についても、便宜上、中間コードの一種として取り扱うこととする。最高位の抽象度レベルと最低位の抽象度レベルの間に、いくつかの抽象度レベルを持った中間コードが存在する。
【００２５】
これらは、図２に示す円や楕円等の曲線描画命令を、直線近似した直線だけで表現したレベル（図３）や、各描画命令を台形分割し、台形の集合として表現したレベル（図４）や、さらに走査線毎に描画範囲を既定したエッジリストレベル（図５）の中間コード等がある。そして、最終的にビットマップデータ（図６）となる。デフォルト状態においては、中間コードの抽象度レベルは、各描画オブジェクトを台形分割し、台形の集合として表現したレベルであるとする。
【００２６】
中間コード生成部１３で生成された中間コードは、中間コード蓄積部１４に順次蓄積される。蓄積中間コード解析部１５は、中間コード蓄積部１４に蓄積されている中間コードを解釈し、その解釈結果をプリントコマンド生成部１６に与える。プリントコマンド生成部１６は、レンダリング部および圧縮処理部（共に図示せず）を内蔵しており、中間コード蓄積部１４に描画領域の中間コードが蓄積された時点で、レンダリング処理を開始する。このレンダリング処理では、蓄積中間コード解析部１５での解釈結果を基にレンダリングを行い、圧縮データを生成するとともに、その圧縮データについてプリントコマンドとしての体裁を整える。この圧縮データは、プリントコマンド送信部１７を通して出力される。
【００２７】
ドライバ処理負荷予測部１９は、中間コード生成部１３で生成される中間コードを監視し、この中間コードを基に中間コード生成部１３で中間コードを生成するときの負荷およびプリントコマンド生成部１６でプリントコマンドを生成するときの負荷を予測し、その予測結果を印刷完了通知部１８および中間コード抽象度設定部２０に対して与える。中間コード抽象度設定部２０は、ドライバ処理負荷予測部１９の予測結果から、中間コード生成部１３に対して中間コードの抽象度レベルを設定する。印刷完了通知部１８は、アプリケーションプログラムに対して印刷処理の完了を通知するとともに、ドライバ処理負荷予測部１９の予測結果を基に印刷完了通知タイミングを変更する。
【００２８】
一方、画像形成装置３０は、プリントコマンド受信部３１および画像形成部３２を有する構成となっている。プリントコマンド受信部３１は、画像処理装置１０から伝送路５０を介して送られてきたプリントコマンドを受信する。画像形成部３２は、プリントコマンド受信部３１で受信したプリントコマンドに基づいて紙などの記録媒体上に画像を形成する。
【００２９】
上記構成の第１実施形態に係る画像処理装置１０おいて、アプリケーションプログラム（描画命令生成部１１）は、描画命令をページ単位あるいはバンド単位など、プリンタドライバの設定に基づいた描画領域単位で生成する。この場合、描画命令は必ずしも描画領域の走査順に生成されるものではなく、描画オブジェクト単位で生成される。すなわち、描画命令は、描画領域中の任意の位置に配置されたオブジェクトが記述された順番で生成される。
【００３０】
次に、第１実施形態に係るプリンタドライバの処理手順について、図７のフローチャートに従って説明する。
【００３１】
まず、アプリケーションプログラムからの描画命令を描画命令入力部１２が受け取ると（ステップＳ１１）、中間コード抽象度設定部２０が抽象度レベルを設定し（ステップＳ１２）、印刷完了通知部１８が印刷完了通知タイミングを設定する（ステップＳ１３）。次いで、中間コード生成部１３が中間コードを生成する（ステップＳ１４）。このとき生成される中間コードには、中間コード抽象度設定部２０で指定された抽象度レベルが設定される。
【００３２】
続いて、ドライバ処理負荷予測部１９が中間コード生成部１３で生成される中間コードを基に、中間コード生成部１３で中間コードを生成するときの負荷およびプリントコマンド生成部１６でプリントコマンドを生成するときの負荷を予測する（ステップＳ１５）。そして、その予測結果から現在の中間コードの抽象度レベルが処理中のジョブにとって適切であるか否か、即ち抽象度レベルを変更する必要があるか否かを判断し（ステップＳ１６）、さらに印刷完了通知タイミングを変更する必要があるか否かを判断する（ステップＳ１７）。
【００３３】
例えば、デフォルト状態で設定される抽象度レベルが各描画オブジェクトを台形分割し、台形の集合として表現したレベルであり、さらにＲＯＰの置き換えを中間コード生成部１３において実行する場合において、大量のＲＯＰ描画命令を受信して、中間コードの生成に負荷がかかっているときは、ドライバ処理負荷予測部１９は現在の中間コード抽象度レベルが適切でなく、さらにアプリケーションプログラムの解放に時間がかかってしまうと判断する。
【００３４】
この判断結果を基に、ドライバ処理負荷予測部１９は、中間コード抽象度設定部２０に対してより高い抽象度レベルを設定し（ステップＳ１８）、さらに中間コード蓄積完了時点でアプリケーションプログラムに対して印刷完了を通知するように印刷完了通知部１８に指示する、即ち印刷完了通知タイミングを変更する（ステップＳ１９）。このとき、設定される抽象度レベルは、例えば最高位のレベルで、受信した描画命令をほぼそのままのデータ形式で記憶する。従って、ＲＯＰの置き換えもこの時点では行われなくなる。
【００３５】
中間コード生成部１３で生成された中間コードは、中間コード蓄積部１４に順次蓄積される（ステップＳ２０）。以上の一連の処理を、ステップＳ２１で描画領域の中間コードの蓄積が完了したと判定するまで繰り返す。そして、描画領域の中間コードの蓄積された時点で、印刷完了通知部１８がアプリケーションプログラムに対して印刷完了を通知した後、バックグランドで、中間コード蓄積部１４に蓄積された中間コードを蓄積中間コード解析部１５が解釈し、プリントコマンド生成部１６のレンダリング部がレンダリングを行い、圧縮処理部が圧縮データを生成する。
【００３６】
このとき、蓄積中間コード解析部１５は、ＲＯＰの置き換えをこの時点で実行する。生成された圧縮データは、プリントコマンドとしての体裁をプリントコマンド生成部１６によって整えられた後、プリントコマンド送信部１７を通して出力される。デフォルト状態においては、ジョブに含まれる全てのページが出力された時点で、印刷完了通知部１８からアプリケーションプログラムに対して印刷完了が通知され、アプリケーションプログラムが印刷処理から解放される。
【００３７】
ここで、ドライバ処理負荷予測部１９が中間コード抽象度設定部２０に対して抽象度レベルの変更を指示するとともに、印刷完了通知部１８に対して印刷完了通知タイミングの変更を指示する条件としては、受信した描画命令に含まれる特定のＲＯＰ描画命令の種類とその数（出現パターン）が、既定の閾値を越えた場合が一例として挙げられる。すなわち、図８に示すように、特定のＲＯＰ描画命令の種類とその数が既定の閾値を越えたか否かを判断し（ステップＳ３１）、越えていれば、中間コード抽象度設定部２０に対して抽象度レベルの変更を設定し（ステップＳ３２）、次いで印刷完了通知部１８に対して通知タイミングを変更指示する（ステップＳ３３）。
【００３８】
また、負荷予測の他の例としては、ドライバ処理負荷予測部１９が、ＲＯＰ命令が中間コード中に既定の閾値を超えて残っているため、生成した中間コードをレンダリング部がレンダリング処理する負荷が重くなると判断した場合、中間コードの抽象度レベルはそのままに、印刷完了通知部１８に対して中間コード蓄積完了時点でアプリケーションプログラムに対して印刷完了を通知するように指示する例が挙げられる。すなわち、図９に示すように、残存ＲＯＰ命令の種類とその数（出現パターン）が既定の閾値を越えているか否かを判断し（ステップＳ４１）、越えていれば、印刷完了通知部１８に対して通知タイミングを変更指示する（ステップＳ４２）。
【００３９】
負荷予測のさらに他の例としては、ドライバ処理負荷予測部１９が、受信した描画命令に含まれるイメージ描画命令の数またはイメージデータのサイズが、既定の閾値を超えた場合があり、この場合もレンダリング処理の負荷が重くなるため、中間コードの抽象度レベルはそのままに、印刷完了通知部１８に対して中間コード蓄積完了時点で印刷完了を通知するように指示する例が挙げられる。すなわち、図１０に示すように、受信した描画命令に含まれるイメージ描画命令の数またはイメージデータのサイズが既定の閾値を越えているか否かを判断し（ステップＳ５１）、越えていれば、印刷完了通知部１８に対して通知タイミングを変更指示する（ステップＳ５２）。
【００４０】
上述したように、第１実施形態に係る画像処理装置１０では、中間コードを生成するときの負荷、さらに生成した中間コードをレンダリングするとき、即ちプリントコマンドを生成するときの負荷を予測し、負荷が軽いジョブの場合には、プリント処理全体のスループットを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定し、負荷が重いジョブの場合には、アプリケーションプログラムの解放時間を早くすることを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定することで、ジョブ毎にその負荷に応じた最適なタイミングでアプリケーションプログラムをプリント処理から解放することができる。従って、プリント処理のスループットとユーザが感じるストレスとのバランスをとることができる。
【００４１】
［第２実施形態］
図１１は、本発明の第２実施形態に係る画像処理装置を備えた画像処理形成システムの概略構成を示すブロック図であり、図中、図１と同等部分には同一符号を付して示している。本画像処理形成システムでは、画像処理装置１０′の具体的な構成において第１実施形態に係る画像処理装置１０と相違している。
【００４２】
すなわち、本実施形態に係る画像処理装置１０′は、描画命令生成部１１、描画命令入力部１２、中間コード生成部１３、中間コード蓄積部１４、蓄積中間コード解析部１５、プリントコマンド生成部１６、プリントコマンド送信部１７、印刷完了通知部１８および中間コード抽象度設定部２０と共に、第１実施形態のドライバ処理負荷予測部１９に代えて中間コード生成時間計測部２３を有する構成となっている。これらの構成要素のうち、描画命令生成部１１は、描画命令を生成するためのアプリケーションプログラムであって画像処理装置１０′上で動作する。その他の構成要素は、画像処理装置１０′上で動作するプリンタドライバを構成している。
【００４３】
上記構成の画像処理装置１０′において、第１実施形態に係る画像処理装置１０と同じ構成要素の具体的な説明については重複するのでここではその説明を省略するものとする。中間コード生成時間計測部２１は、中間コード生成部１３で中間コードを生成するのに要する時間を計測しかつ累積し、その累積値を印刷完了通知部１８および中間コード抽象度設定部２０に与える。
【００４４】
中間コード抽象度設定部２０は、中間コード生成時間計測部２１から与えられる累積値に基づいて中間コード生成部１３が生成する中間コードの抽象度を変更する。印刷完了通知部１８は、アプリケーションプログラムに対して印刷処理の完了を通知するとともに、中間コード生成時間計測部２１から与えられる累積値を基にアプリケーションプログラムに対して印刷処理の完了を通知するタイミングを変更する。
【００４５】
本実施形態に係る画像処理装置１０′において、アプリケーションプログラムは、第１実施形態に係る画像処理装置１０の場合と同様に、描画命令をページ単位あるいはバンド単位など、プリンタドライバの設定に基づいた描画領域単位で生成する。この場合、描画命令は必ずしも描画領域の走査順に生成されるものではなく、描画オブジェクト単位で生成される。すなわち、描画命令は、描画領域中の任意の位置に配置されたオブジェクトが記述された順番で生成される。
【００４６】
次に、第２実施形態に係るプリンタドライバの処理手順について、図１１のフローチャートに従って説明する。
【００４７】
まず、アプリケーションプログラムからの描画命令を描画命令入力部１２が受け取ると（ステップＳ６１）、中間コード抽象度設定部２０が抽象度レベルを設定し（ステップＳ６２）、印刷完了通知部１８が印刷完了通知タイミングを設定する（ステップＳ６３）。次いで、中間コード生成部１３が中間コードを生成する（ステップＳ６４）。このとき生成される中間コードには、中間コード抽象度設定部２０で指定された抽象度レベルが設定される。
【００４８】
続いて、中間コード生成時間計測部２１が中間コード生成部１３で中間コードを生成するのに要する時間を計測しかつ累積する（ステップＳ６５）。そして、その累積値を既定の閾値と比較し、その比較結果から現在の中間コードの抽象度レベルが処理中のジョブにとって適切であるか否か、即ち抽象度レベルを変更する必要があるか否かを判断し（ステップＳ６６）、さらに印刷完了通知タイミングを変更する必要があるか否かを判断する（ステップＳ６７）。
【００４９】
ここで、抽象度レベルを変更する必要があると判断した場合には抽象度レベルを変更し（ステップＳ６８）、また印刷完了通知タイミングを変更する必要があると判断した場合には中間コード蓄積完了時点でアプリケーションに対して印刷完了を通知するように印刷完了通知部１８に指示する、即ち印刷完了通知タイミングを変更する（ステップＳ６９）。このとき、設定される抽象度レベルは、例えば最高位のレベルで、受信した描画命令をほぼそのままのデータ形式で記憶する。従って、ＲＯＰの置き換えもこの時点では行われなくなる。
【００５０】
中間コード生成部１３で生成された中間コードは、中間コード蓄積部１４に順次蓄積される（ステップＳ７０）。以上の一連の処理を、ステップＳ７１で描画領域の中間コードの蓄積が完了したと判定するまで繰り返す。そして、描画領域の中間コードの蓄積された時点で、印刷完了通知部１８がアプリケーションプログラムに対して印刷完了を通知した後、バックグランドで、中間コード蓄積部１４に蓄積された中間コードを蓄積中間コード解析部１５が解釈し、プリントコマンド生成部１６のレンダリング部がレンダリングを行い、圧縮処理部が圧縮データを生成する。
【００５１】
このとき、蓄積中間コード解析部１５は、ＲＯＰの置き換えをこの時点で実行する。生成された圧縮データは、プリントコマンドとしての体裁をプリントコマンド生成部１６によって整えられた後、プリントコマンド送信部１７を通して出力される。デフォルト状態においては、ジョブに含まれる全てのページが出力された時点で、印刷完了通知部１８からアプリケーションプログラムに対して印刷完了が通知され、アプリケーションプログラムは印刷処理から解放される。
【００５２】
ここで、中間コード生成時間計測部２１が中間コード抽象度設定部２０に対して抽象度レベルの変更を指示するとともに、印刷完了通知部１８に対して印刷完了通知タイミングの変更を指示する条件としては、中間コードを生成するためにかかった時間の累積値が既定の閾値を越えた場合が挙げられる。すなわち、図１３に示すように、中間コードを生成するためにかかった累積時間が既定の閾値を越えたか否かを判断し（ステップＳ８１）、越えてしまった場合、中間コード生成に時間がかかってしまうほどの負荷をもったジョブであると判断し、中間コード抽象度設定部２０に対して抽象度レベルの変更を設定し（ステップＳ８２）、次いで印刷完了通知部１８に対して通知タイミングを変更指示する（ステップＳ８３）。
【００５３】
上述したように、第２実施形態に係る画像処理装置１０′では、実際に中間コードを生成するのに要する時間を計測しかつ累積し、その累積値からジョブの負荷の軽重を判断し、負荷が軽いジョブの場合には、プリント処理全体のスループットを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定し、負荷が重いジョブの場合には、アプリケーションプログラムの解放時間を早くすることを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定することで、ジョブ毎にその負荷に応じた最適なタイミングでアプリケーションプログラムをプリント処理から解放することができる。従って、プリント処理のスループットとユーザが感じるストレスとのバランスをとることができる。
【００５４】
【発明の効果】
以上説明したように、本発明によれば、描画するページの処理負荷に応じて中間コードの抽象度を変更し、ジョブ毎にその負荷に応じた最適なタイミングでアプリケーションプログラムをプリント処理から解放することが可能になるので、他の処理により迅速に移行でき、プリント処理のスループットとユーザが感じるストレスとのバランスをとったプリントシステムを構築できる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る画像処理装置を備えた画像処理形成システムの概略構成を示すブロック図である。
【図２】曲線描画命令の一例を示す図である。
【図３】曲線描画命令を直線近似した直線だけで表現した抽象度レベルを示す図である。
【図４】曲線描画命令を台形の集合として表現した抽象度レベルを示す図である。
【図５】曲線描画命令を走査線毎に描画範囲を既定エッジリストレベルを示す図である。
【図６】最終的なラスターデータを示す図である。
【図７】本発明の第１実施形態に係る画像処理方法の処理手順を示すフローチャートである。
【図８】第１実施形態における抽象度レベルおよび印刷完了通知タイミングの変更条件の一例を示すフローチャートである。
【図９】第１実施形態における抽象度レベルおよび印刷完了通知タイミングの変更条件の他の例を示すフローチャートである。
【図１０】第１実施形態における抽象度レベルおよび印刷完了通知タイミングの変更条件のさらに他の例を示すフローチャートである。
【図１１】本発明の第２実施形態に係る画像処理装置を備えた画像処理形成システムの概略構成を示すブロック図である。
【図１２】本発明の第２実施形態に係る画像処理方法の処理手順を示すフローチャートである。
【図１３】第２実施形態における抽象度レベルおよび印刷完了通知タイミングの変更条件の一例を示すフローチャートである。
【符号の説明】
１０，１０′…画像処理装置、１１…描画命令生成部、１２…描画命令入力部、１３…中間コード生成部、１４…中間コード蓄積部、１５…蓄積中間コード解析部、１６…プリントコマンド生成部、１７…プリントコマンド送信部、１８…印刷完了通知部、１９…ドライバ処理負荷予測部、２０…中間コード抽象度設定部、２１…中間コード生成時間計測部、３０…画像形成装置、３１…プリントコマンド受信部、３２…画像形成部
【図１】
2004013770.tif 000003
【図２】
2004013770.tif 000004
【図３】
2004013770.tif 000005
【図４】
2004013770.tif 000006
【図５】
2004013770.tif 000007
【図６】
2004013770.tif 000008
【図７】
2004013770.tif 000009
【図８】
2004013770.tif 000010
【図９】
2004013770.tif 000011
【図１０】
2004013770.tif 000012
【図１１】
2004013770.tif 000013
【図１２】
2004013770.tif 000014
【図１３】
2004013770.tif 000015