JP2004013770A - 画像処理装置および画像処理方法 - Google Patents
画像処理装置および画像処理方法 Download PDFInfo
- Publication number
- JP2004013770A JP2004013770A JP2002169560A JP2002169560A JP2004013770A JP 2004013770 A JP2004013770 A JP 2004013770A JP 2002169560 A JP2002169560 A JP 2002169560A JP 2002169560 A JP2002169560 A JP 2002169560A JP 2004013770 A JP2004013770 A JP 2004013770A
- Authority
- JP
- Japan
- Prior art keywords
- intermediate code
- command
- application program
- image processing
- abstraction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【解決手段】中間コード生成部13で中間コードを生成するときの負荷およびプリントコマンド生成部16でプリントコマンドを生成するときの負荷を予測するドライバ処理負荷予測部19と、この予測結果からドライバ処理負荷予測部19の中間コード生成部13に対して中間コードの抽象度レベルを指定する中間コード抽象度設定部20と、ドライバ処理負荷予測部19の予測結果を基に印刷完了通知タイミングを変更する印刷完了通知部18とを設け、描画するページの処理負荷に応じて中間コードの抽象度を変更し、最適なタイミングでアプリケーションプログラムをプリント処理から解放するようにする。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送する画像処理装置および画像処理方法に関し、特に描画するページの処理負荷に応じて出力ドライバの内部処理を自動的に変更可能な画像処理装置および画像処理方法に関する。
【0002】
【従来の技術】
ホストコンピュータ上で動作するアプリケーションプログラムを使用して作成した文書を出力(例えば、印刷)する場合、アプリケーションプログラムの印刷指示によってプリンタドライバが起動される。すると、プリンタドライバは、そのアプリケーションプログラムからの印刷指示に従って、アプリケーションプログラムが生成する描画命令を出力装置、即ちプリンタで解釈可能なプリントコマンドに変換してプリンタに転送する。
【0003】
このとき、アプリケーションプログラムが生成する描画命令は、OS(Operating System)の描画モジュールが持つ描画関数の集合である。この描画モジュールの代表例としては、GDI(Graphics Device Interface)などが挙げられる。これらの描画命令としては、文字、図形、ビットマップなどの描画オブジェクト毎に異なった描画命令が用意されている。プリンタドライバでは、アプリケーションプログラムが生成するこれらの描画命令を、OSの描画モジュールを経由して受信した順番に処理を行い、プリントコマンドに変換していく。
【0004】
ここで、Windows(登録商標)を例に挙げてホストコンピュータ内でのプリント処理シーケンスについて説明する。通常、アプリケーションプログラムから印刷指示があると、Windows(登録商標)の描画モジュールであるGDIは、プリンタドライバを起動して描画命令をプリンタドライバに対して発行する。プリンタドライバでは、受信した描画命令をプリンタで解釈可能なプリントコマンドに変換してGDIに返す。
【0005】
次に、GDIは受け取ったプリントコマンドをスプーラに渡す。スプーラは、スプールファイルとしてプリントコマンドをHDD等の記憶装置に記憶する。プリンタドライバが当該ジョブの描画命令すべてをプリントコマンドに変換してGDIを経由してスプールに書き出した時点で、アプリケーションプログラムはプリント処理から解放される。その後、スプールされたプリントコマンドは、プリントプロバイダによってディスプールされて、ポートを通してプリンタに送信される。
【0006】
プリンタドライバは、その機能から2つのタイプに分類される。一つは、PostScript等に代表されるPDL(Page Description Language)を生成するPDLドライバである。PDLドライバは、通常、OSの描画モジュールからの描画命令を、当該描画命令が与えられる都度PDLコマンドに変換する機能を持っている。一般的に、このタイプの場合は、内部的に描画命令を蓄積することを必要としないのが特徴である。
【0007】
一方、もう一つのタイプのプリンタドライバは、プリンタドライバでレンダリングしてプリンタにイメージデータを出力するラスタドライバである。ラスタドライバは、通常、OSの描画モジュールからの描画命令を、まず中間的なデータを中間コードとして蓄積する。中間コードとして少なくとも1ページ分のデータを蓄積した時点で、レンダリング対象となるページをレンダリングし、イメージデータをプリンタに対して出力する。プリンタに対して出力するイメージデータは、何らかのデータ圧縮処理を施されるのが一般的である。
【0008】
【発明が解決しようとする課題】
上述したように、ラスタドライバタイプのプリンタドライバでは、プリンタドライバでページをレンダリングするために、レンダリング対象となるページの描画命令を中間コードとして内部的に蓄積し、さらにレンダリングしてイメージデータを生成する。従って、当該ジョブの描画命令すべてをレンダリングしてGDIを経由してスプールに書き出し、アプリケーションプログラムがプリント処理から解放されるまでの時間は、PDLドライバに比べて長くなるという問題があった。
【0009】
また、中間コード生成時に、アプリケーションプログラムからの複数の描画命令をまとめて一つの描画オブジェクトとして表現したりする処理を導入することなどの付加的な処理を行うために中間コード生成に時間を要する場合もあった。例えば、Raster Operation(以下、ROPと記す)として知られる描画命令の使い方として、3種類の連続したROP描画命令によって、一つの半透明描画オブジェクトを形成する描画方法が採用されることが知られている。この場合、各ROP描画命令毎に各画素毎の論理演算を実行する必要があるため、非常に負荷のかかる処理になっていた。
【0010】
それを軽減するために、この連続した描画命令を中間コード生成部において一旦蓄積し、まとめて一つの描画命令に置き換え、このときROPを使用しない描画命令に置き換えることによって負荷のかかるROP描画を除いた中間コードを生成するようにした画像処理装置がある(特許第3008943号公報参照)。ただし、この処理自身も複雑な処理が必要なため、ページ内に大量に出現した場合、ROPを実行するよりは負荷は軽いものの、中間コード生成に時間を要してしまう場合もあった。
【0011】
この問題を解決するために、プリンタドライバ内部で中間コードを蓄積し終わった時点で、一旦、アプリケーションプログラムのプリント処理を終了し、バックグランドで中間コードをレンダリングすることで、アプリケーションプログラムのプリント処理による占有時間を見かけ上短くする方法も一般的に採用されている。
【0012】
しかしながら、バックグランドでレンダリングを行う場合、アプリケーションプログラムの解放は早くなるものの、ホストコンピュータからプリンタへプリントコマンドが送信されるまでの絶対時間が遅くなるため、プリント処理全体のスループットは低下してしまっていた。特に、全体的に負荷の軽いジョブの場合でも、レンダリングまで一気に行った方がスループットが速いにも拘わらず、同一の処理シーケンスを通るため、スループットの低下を招くことになっていた。また、ジョブによっては、中間コードを生成する処理の方が実際にレンダリングする処理よりも負荷が重く、中間コードを生成するまでに時間がかかってしまい、結局アプリケーションプログラムの解放が遅くなってしまう場合もあった。
【0013】
本発明は、上記課題に鑑みてなされたものであり、その目的とするところは、ジョブ毎にその負荷に応じた最適なアプリケーションプログラムの解放タイミングとプリント処理のスループットを得ることを可能とした画像処理装置および画像処理方法を提供することにある。
【0014】
【課題を解決するための手段】
上記目的を達成するために、本発明では、ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送するに際して、アプリケーションプログラムが生成する描画命令から描画抽象度を落とした中間コードを生成するとともに、その生成した中間コードから出力装置が解釈可能なコマンドを生成する一方、前記中間コードおよび前記コマンドを生成するときの負荷を予測または前記中間コードを生成するために要する時間を累積し、その予測結果または累積値を基に前記中間コードの抽象度を変更するとともに、アプリケーションプログラムに対して処理の完了を通知するタイミングを変更するようにしている。
【0015】
すなわち、中間コードおよびコマンドを生成するときの負荷の軽重を予測、または実際に中間コードを生成するのに要する時間の累積値から負荷の軽重を判断する。そして、ジョブの負荷に応じて中間コードの抽象度を変更するとともに、アプリケーションプログラムの解放タイミングを変更する。具体的には、負荷が軽いジョブの場合には、処理全体のスループットを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定し、負荷が重いジョブの場合には、アプリケーションプログラムの解放時間を早くすることを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定する。これにより、ジョブ毎により最適なタイミングでアプリケーションプログラムを処理から解放することができる。
【0016】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0017】
[第1実施形態]
図1は、本発明の第1実施形態に係る画像処理装置を備えた画像処理形成システムの概略構成を示すブロック図である。本画像処理形成システムは、画像処理装置10と、画像出力装置、例えば画像形成装置(プリンタ)30とを備えた構成となっており、プリントコマンドを送受信するためのインターフェイス(図示せず)を介して所定の通信媒体、例えば伝送路50によって画像処理装置10と画像形成装置30とが接続されている。
【0018】
本実施形態に係る画像処理装置10は、描画命令を生成・編集してそれらからプリントコマンドを生成して画像形成装置30に送出するものである。本実施形態に係る画像処理装置10は、例えば、CPUやメモリ等のハードウェアを内蔵するパーソナルコンピュータ等によって実現される。また、画像処理装置10には、キーボードやマウス等の入力装置、CRT等の表示装置、ハードディスクやCD−ROMドライバ等の外部記憶装置等が接続されている。
【0019】
本実施形態に係る画像処理装置10は、描画命令生成部11、描画命令入力部12、中間コード生成部13、中間コード蓄積部14、蓄積中間コード解析部15、プリントコマンド生成部16、プリントコマンド送信部17、印刷完了通知部(タイミング設定手段)18、ドライバ処理負荷予測部19および中間コード抽象度設定部20を有する構成となっている。これらの構成要素のうち、描画命令生成部11は、描画命令を生成するためのアプリケーションプログラムであって画像処理装置10上で動作する。その他の構成要素は、画像処理装置10上で動作するプリンタドライバ(出力ドライバ)を構成している。
【0020】
また、画像処理装置10は、上述した内蔵のハードウェア、入力装置、表示装置、外部記憶装置、アプリケーションプログラムおよびプリンタドライバを制御・管理するオペレーティングシステム(OS)を備える。特に、描画命令生成部11が生成する描画命令は、オペレーティングシステムの描画モジュールが持つ描画関数の集合である。描画命令生成部11は、描画モジュールと協調して描画命令を生成する。
【0021】
プリンタドライバは、画像形成装置30に付属して提供されるソフトウェアであり、画像処理装置10に組み込まれて動作する。通常、当該プリンタドライバは、画像形成装置30で用いられるデータ形式に画像処理装置10のデータ形式を対応させるために使用される。画像処理装置10のプリンタドライバは、描画命令生成部11、即ちアプリケーションプログラムから出力された描画命令を受信し、その描画命令に対して所定の処理を施した後に、プリントコマンドとしてそれらのデータを画像形成装置30に送信する。
【0022】
プリンタドライバの構成要素についてさらに具体的に説明する。描画命令入力部12は、描画命令生成部11、即ちアプリケーションプログラムから描画命令を受け取ると、これを中間コード生成部13に渡す。中間コード生成部13は、受け取った描画命令から描画抽象度(以下、抽象度レベルと記す)を落とした中間コードを生成する。このときの中間コードの抽象度レベルは、中間コード抽象度設定部20によって設定される。
【0023】
ここで、中間コードの抽象度レベルとは、中間コード内のデータ形式として描画命令にどの程度の抽象度を持たせるかを示すレベルであり、アプリケーションプログラムから受け取った描画命令の抽象度が最もレベルが高い(最高位の抽象度)。図形要素では、円、楕円、矩形などの描画オブジェクトなどから成る中間コードである。いわゆる一般的なPDLでサポートされた描画オブジェクトを持ったデータ形式である。
【0024】
一方、最も抽象度レベルが低い中間コードは、ビットマップまで展開されたデータであり、もはや中間コードというよりも、最終的な出力データということになる。ここでは、最高位の抽象度を持った描画命令と最低位の抽象度をもったデータ形式についても、便宜上、中間コードの一種として取り扱うこととする。最高位の抽象度レベルと最低位の抽象度レベルの間に、いくつかの抽象度レベルを持った中間コードが存在する。
【0025】
これらは、図2に示す円や楕円等の曲線描画命令を、直線近似した直線だけで表現したレベル(図3)や、各描画命令を台形分割し、台形の集合として表現したレベル(図4)や、さらに走査線毎に描画範囲を既定したエッジリストレベル(図5)の中間コード等がある。そして、最終的にビットマップデータ(図6)となる。デフォルト状態においては、中間コードの抽象度レベルは、各描画オブジェクトを台形分割し、台形の集合として表現したレベルであるとする。
【0026】
中間コード生成部13で生成された中間コードは、中間コード蓄積部14に順次蓄積される。蓄積中間コード解析部15は、中間コード蓄積部14に蓄積されている中間コードを解釈し、その解釈結果をプリントコマンド生成部16に与える。プリントコマンド生成部16は、レンダリング部および圧縮処理部(共に図示せず)を内蔵しており、中間コード蓄積部14に描画領域の中間コードが蓄積された時点で、レンダリング処理を開始する。このレンダリング処理では、蓄積中間コード解析部15での解釈結果を基にレンダリングを行い、圧縮データを生成するとともに、その圧縮データについてプリントコマンドとしての体裁を整える。この圧縮データは、プリントコマンド送信部17を通して出力される。
【0027】
ドライバ処理負荷予測部19は、中間コード生成部13で生成される中間コードを監視し、この中間コードを基に中間コード生成部13で中間コードを生成するときの負荷およびプリントコマンド生成部16でプリントコマンドを生成するときの負荷を予測し、その予測結果を印刷完了通知部18および中間コード抽象度設定部20に対して与える。中間コード抽象度設定部20は、ドライバ処理負荷予測部19の予測結果から、中間コード生成部13に対して中間コードの抽象度レベルを設定する。印刷完了通知部18は、アプリケーションプログラムに対して印刷処理の完了を通知するとともに、ドライバ処理負荷予測部19の予測結果を基に印刷完了通知タイミングを変更する。
【0028】
一方、画像形成装置30は、プリントコマンド受信部31および画像形成部32を有する構成となっている。プリントコマンド受信部31は、画像処理装置10から伝送路50を介して送られてきたプリントコマンドを受信する。画像形成部32は、プリントコマンド受信部31で受信したプリントコマンドに基づいて紙などの記録媒体上に画像を形成する。
【0029】
上記構成の第1実施形態に係る画像処理装置10おいて、アプリケーションプログラム(描画命令生成部11)は、描画命令をページ単位あるいはバンド単位など、プリンタドライバの設定に基づいた描画領域単位で生成する。この場合、描画命令は必ずしも描画領域の走査順に生成されるものではなく、描画オブジェクト単位で生成される。すなわち、描画命令は、描画領域中の任意の位置に配置されたオブジェクトが記述された順番で生成される。
【0030】
次に、第1実施形態に係るプリンタドライバの処理手順について、図7のフローチャートに従って説明する。
【0031】
まず、アプリケーションプログラムからの描画命令を描画命令入力部12が受け取ると(ステップS11)、中間コード抽象度設定部20が抽象度レベルを設定し(ステップS12)、印刷完了通知部18が印刷完了通知タイミングを設定する(ステップS13)。次いで、中間コード生成部13が中間コードを生成する(ステップS14)。このとき生成される中間コードには、中間コード抽象度設定部20で指定された抽象度レベルが設定される。
【0032】
続いて、ドライバ処理負荷予測部19が中間コード生成部13で生成される中間コードを基に、中間コード生成部13で中間コードを生成するときの負荷およびプリントコマンド生成部16でプリントコマンドを生成するときの負荷を予測する(ステップS15)。そして、その予測結果から現在の中間コードの抽象度レベルが処理中のジョブにとって適切であるか否か、即ち抽象度レベルを変更する必要があるか否かを判断し(ステップS16)、さらに印刷完了通知タイミングを変更する必要があるか否かを判断する(ステップS17)。
【0033】
例えば、デフォルト状態で設定される抽象度レベルが各描画オブジェクトを台形分割し、台形の集合として表現したレベルであり、さらにROPの置き換えを中間コード生成部13において実行する場合において、大量のROP描画命令を受信して、中間コードの生成に負荷がかかっているときは、ドライバ処理負荷予測部19は現在の中間コード抽象度レベルが適切でなく、さらにアプリケーションプログラムの解放に時間がかかってしまうと判断する。
【0034】
この判断結果を基に、ドライバ処理負荷予測部19は、中間コード抽象度設定部20に対してより高い抽象度レベルを設定し(ステップS18)、さらに中間コード蓄積完了時点でアプリケーションプログラムに対して印刷完了を通知するように印刷完了通知部18に指示する、即ち印刷完了通知タイミングを変更する(ステップS19)。このとき、設定される抽象度レベルは、例えば最高位のレベルで、受信した描画命令をほぼそのままのデータ形式で記憶する。従って、ROPの置き換えもこの時点では行われなくなる。
【0035】
中間コード生成部13で生成された中間コードは、中間コード蓄積部14に順次蓄積される(ステップS20)。以上の一連の処理を、ステップS21で描画領域の中間コードの蓄積が完了したと判定するまで繰り返す。そして、描画領域の中間コードの蓄積された時点で、印刷完了通知部18がアプリケーションプログラムに対して印刷完了を通知した後、バックグランドで、中間コード蓄積部14に蓄積された中間コードを蓄積中間コード解析部15が解釈し、プリントコマンド生成部16のレンダリング部がレンダリングを行い、圧縮処理部が圧縮データを生成する。
【0036】
このとき、蓄積中間コード解析部15は、ROPの置き換えをこの時点で実行する。生成された圧縮データは、プリントコマンドとしての体裁をプリントコマンド生成部16によって整えられた後、プリントコマンド送信部17を通して出力される。デフォルト状態においては、ジョブに含まれる全てのページが出力された時点で、印刷完了通知部18からアプリケーションプログラムに対して印刷完了が通知され、アプリケーションプログラムが印刷処理から解放される。
【0037】
ここで、ドライバ処理負荷予測部19が中間コード抽象度設定部20に対して抽象度レベルの変更を指示するとともに、印刷完了通知部18に対して印刷完了通知タイミングの変更を指示する条件としては、受信した描画命令に含まれる特定のROP描画命令の種類とその数(出現パターン)が、既定の閾値を越えた場合が一例として挙げられる。すなわち、図8に示すように、特定のROP描画命令の種類とその数が既定の閾値を越えたか否かを判断し(ステップS31)、越えていれば、中間コード抽象度設定部20に対して抽象度レベルの変更を設定し(ステップS32)、次いで印刷完了通知部18に対して通知タイミングを変更指示する(ステップS33)。
【0038】
また、負荷予測の他の例としては、ドライバ処理負荷予測部19が、ROP命令が中間コード中に既定の閾値を超えて残っているため、生成した中間コードをレンダリング部がレンダリング処理する負荷が重くなると判断した場合、中間コードの抽象度レベルはそのままに、印刷完了通知部18に対して中間コード蓄積完了時点でアプリケーションプログラムに対して印刷完了を通知するように指示する例が挙げられる。すなわち、図9に示すように、残存ROP命令の種類とその数(出現パターン)が既定の閾値を越えているか否かを判断し(ステップS41)、越えていれば、印刷完了通知部18に対して通知タイミングを変更指示する(ステップS42)。
【0039】
負荷予測のさらに他の例としては、ドライバ処理負荷予測部19が、受信した描画命令に含まれるイメージ描画命令の数またはイメージデータのサイズが、既定の閾値を超えた場合があり、この場合もレンダリング処理の負荷が重くなるため、中間コードの抽象度レベルはそのままに、印刷完了通知部18に対して中間コード蓄積完了時点で印刷完了を通知するように指示する例が挙げられる。すなわち、図10に示すように、受信した描画命令に含まれるイメージ描画命令の数またはイメージデータのサイズが既定の閾値を越えているか否かを判断し(ステップS51)、越えていれば、印刷完了通知部18に対して通知タイミングを変更指示する(ステップS52)。
【0040】
上述したように、第1実施形態に係る画像処理装置10では、中間コードを生成するときの負荷、さらに生成した中間コードをレンダリングするとき、即ちプリントコマンドを生成するときの負荷を予測し、負荷が軽いジョブの場合には、プリント処理全体のスループットを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定し、負荷が重いジョブの場合には、アプリケーションプログラムの解放時間を早くすることを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定することで、ジョブ毎にその負荷に応じた最適なタイミングでアプリケーションプログラムをプリント処理から解放することができる。従って、プリント処理のスループットとユーザが感じるストレスとのバランスをとることができる。
【0041】
[第2実施形態]
図11は、本発明の第2実施形態に係る画像処理装置を備えた画像処理形成システムの概略構成を示すブロック図であり、図中、図1と同等部分には同一符号を付して示している。本画像処理形成システムでは、画像処理装置10′の具体的な構成において第1実施形態に係る画像処理装置10と相違している。
【0042】
すなわち、本実施形態に係る画像処理装置10′は、描画命令生成部11、描画命令入力部12、中間コード生成部13、中間コード蓄積部14、蓄積中間コード解析部15、プリントコマンド生成部16、プリントコマンド送信部17、印刷完了通知部18および中間コード抽象度設定部20と共に、第1実施形態のドライバ処理負荷予測部19に代えて中間コード生成時間計測部23を有する構成となっている。これらの構成要素のうち、描画命令生成部11は、描画命令を生成するためのアプリケーションプログラムであって画像処理装置10′上で動作する。その他の構成要素は、画像処理装置10′上で動作するプリンタドライバを構成している。
【0043】
上記構成の画像処理装置10′において、第1実施形態に係る画像処理装置10と同じ構成要素の具体的な説明については重複するのでここではその説明を省略するものとする。中間コード生成時間計測部21は、中間コード生成部13で中間コードを生成するのに要する時間を計測しかつ累積し、その累積値を印刷完了通知部18および中間コード抽象度設定部20に与える。
【0044】
中間コード抽象度設定部20は、中間コード生成時間計測部21から与えられる累積値に基づいて中間コード生成部13が生成する中間コードの抽象度を変更する。印刷完了通知部18は、アプリケーションプログラムに対して印刷処理の完了を通知するとともに、中間コード生成時間計測部21から与えられる累積値を基にアプリケーションプログラムに対して印刷処理の完了を通知するタイミングを変更する。
【0045】
本実施形態に係る画像処理装置10′において、アプリケーションプログラムは、第1実施形態に係る画像処理装置10の場合と同様に、描画命令をページ単位あるいはバンド単位など、プリンタドライバの設定に基づいた描画領域単位で生成する。この場合、描画命令は必ずしも描画領域の走査順に生成されるものではなく、描画オブジェクト単位で生成される。すなわち、描画命令は、描画領域中の任意の位置に配置されたオブジェクトが記述された順番で生成される。
【0046】
次に、第2実施形態に係るプリンタドライバの処理手順について、図11のフローチャートに従って説明する。
【0047】
まず、アプリケーションプログラムからの描画命令を描画命令入力部12が受け取ると(ステップS61)、中間コード抽象度設定部20が抽象度レベルを設定し(ステップS62)、印刷完了通知部18が印刷完了通知タイミングを設定する(ステップS63)。次いで、中間コード生成部13が中間コードを生成する(ステップS64)。このとき生成される中間コードには、中間コード抽象度設定部20で指定された抽象度レベルが設定される。
【0048】
続いて、中間コード生成時間計測部21が中間コード生成部13で中間コードを生成するのに要する時間を計測しかつ累積する(ステップS65)。そして、その累積値を既定の閾値と比較し、その比較結果から現在の中間コードの抽象度レベルが処理中のジョブにとって適切であるか否か、即ち抽象度レベルを変更する必要があるか否かを判断し(ステップS66)、さらに印刷完了通知タイミングを変更する必要があるか否かを判断する(ステップS67)。
【0049】
ここで、抽象度レベルを変更する必要があると判断した場合には抽象度レベルを変更し(ステップS68)、また印刷完了通知タイミングを変更する必要があると判断した場合には中間コード蓄積完了時点でアプリケーションに対して印刷完了を通知するように印刷完了通知部18に指示する、即ち印刷完了通知タイミングを変更する(ステップS69)。このとき、設定される抽象度レベルは、例えば最高位のレベルで、受信した描画命令をほぼそのままのデータ形式で記憶する。従って、ROPの置き換えもこの時点では行われなくなる。
【0050】
中間コード生成部13で生成された中間コードは、中間コード蓄積部14に順次蓄積される(ステップS70)。以上の一連の処理を、ステップS71で描画領域の中間コードの蓄積が完了したと判定するまで繰り返す。そして、描画領域の中間コードの蓄積された時点で、印刷完了通知部18がアプリケーションプログラムに対して印刷完了を通知した後、バックグランドで、中間コード蓄積部14に蓄積された中間コードを蓄積中間コード解析部15が解釈し、プリントコマンド生成部16のレンダリング部がレンダリングを行い、圧縮処理部が圧縮データを生成する。
【0051】
このとき、蓄積中間コード解析部15は、ROPの置き換えをこの時点で実行する。生成された圧縮データは、プリントコマンドとしての体裁をプリントコマンド生成部16によって整えられた後、プリントコマンド送信部17を通して出力される。デフォルト状態においては、ジョブに含まれる全てのページが出力された時点で、印刷完了通知部18からアプリケーションプログラムに対して印刷完了が通知され、アプリケーションプログラムは印刷処理から解放される。
【0052】
ここで、中間コード生成時間計測部21が中間コード抽象度設定部20に対して抽象度レベルの変更を指示するとともに、印刷完了通知部18に対して印刷完了通知タイミングの変更を指示する条件としては、中間コードを生成するためにかかった時間の累積値が既定の閾値を越えた場合が挙げられる。すなわち、図13に示すように、中間コードを生成するためにかかった累積時間が既定の閾値を越えたか否かを判断し(ステップS81)、越えてしまった場合、中間コード生成に時間がかかってしまうほどの負荷をもったジョブであると判断し、中間コード抽象度設定部20に対して抽象度レベルの変更を設定し(ステップS82)、次いで印刷完了通知部18に対して通知タイミングを変更指示する(ステップS83)。
【0053】
上述したように、第2実施形態に係る画像処理装置10′では、実際に中間コードを生成するのに要する時間を計測しかつ累積し、その累積値からジョブの負荷の軽重を判断し、負荷が軽いジョブの場合には、プリント処理全体のスループットを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定し、負荷が重いジョブの場合には、アプリケーションプログラムの解放時間を早くすることを重視した中間コードの抽象度と、アプリケーションプログラムの解放タイミングを設定することで、ジョブ毎にその負荷に応じた最適なタイミングでアプリケーションプログラムをプリント処理から解放することができる。従って、プリント処理のスループットとユーザが感じるストレスとのバランスをとることができる。
【0054】
【発明の効果】
以上説明したように、本発明によれば、描画するページの処理負荷に応じて中間コードの抽象度を変更し、ジョブ毎にその負荷に応じた最適なタイミングでアプリケーションプログラムをプリント処理から解放することが可能になるので、他の処理により迅速に移行でき、プリント処理のスループットとユーザが感じるストレスとのバランスをとったプリントシステムを構築できる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係る画像処理装置を備えた画像処理形成システムの概略構成を示すブロック図である。
【図2】曲線描画命令の一例を示す図である。
【図3】曲線描画命令を直線近似した直線だけで表現した抽象度レベルを示す図である。
【図4】曲線描画命令を台形の集合として表現した抽象度レベルを示す図である。
【図5】曲線描画命令を走査線毎に描画範囲を既定エッジリストレベルを示す図である。
【図6】最終的なラスターデータを示す図である。
【図7】本発明の第1実施形態に係る画像処理方法の処理手順を示すフローチャートである。
【図8】第1実施形態における抽象度レベルおよび印刷完了通知タイミングの変更条件の一例を示すフローチャートである。
【図9】第1実施形態における抽象度レベルおよび印刷完了通知タイミングの変更条件の他の例を示すフローチャートである。
【図10】第1実施形態における抽象度レベルおよび印刷完了通知タイミングの変更条件のさらに他の例を示すフローチャートである。
【図11】本発明の第2実施形態に係る画像処理装置を備えた画像処理形成システムの概略構成を示すブロック図である。
【図12】本発明の第2実施形態に係る画像処理方法の処理手順を示すフローチャートである。
【図13】第2実施形態における抽象度レベルおよび印刷完了通知タイミングの変更条件の一例を示すフローチャートである。
【符号の説明】
10,10′…画像処理装置、11…描画命令生成部、12…描画命令入力部、13…中間コード生成部、14…中間コード蓄積部、15…蓄積中間コード解析部、16…プリントコマンド生成部、17…プリントコマンド送信部、18…印刷完了通知部、19…ドライバ処理負荷予測部、20…中間コード抽象度設定部、21…中間コード生成時間計測部、30…画像形成装置、31…プリントコマンド受信部、32…画像形成部
Claims (8)
- ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送する画像処理装置であって、
アプリケーションプログラムが生成する描画命令から描画抽象度を落とした中間コードを生成する中間コード生成手段と、
前記中間コード生成手段が生成した中間コードから出力装置が解釈可能なコマンドを生成するコマンド生成手段と、
前記中間コードおよび前記コマンドを生成するときの負荷を予測する負荷予測手段と、
前記負荷予測手段の予測結果を基に前記中間コード生成部が生成する中間コードの抽象度を変更する抽象度設定手段と、
前記予測結果を基にアプリケーションプログラムに対して処理の完了を通知するタイミングを変更するタイミング設定手段と
を備えることを特徴とする画像処理装置。 - 前記負荷予測手段は、描画命令の種類と出現パターンから前記中間コードおよび前記コマンドを生成するときの負荷を予測する
ことを特徴とする請求項1記載の画像処理装置。 - 前記負荷予測手段は、描画命令に含まれるROP命令の種類と出現パターンから前記中間コードおよび前記コマンドを生成するときの負荷を予測する
ことを特徴とする請求項1記載の画像処理装置。 - 前記負荷予測手段は、描画命令に含まれるイメージ描画命令の数またはイメージデータのサイズから前記中間コードおよび前記コマンドを生成するときの負荷を予測する
ことを特徴とする請求項1記載の画像処理装置。 - ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送する画像処理装置であって、
アプリケーションプログラムの生成する描画命令から描画抽象度を落とした中間コードを生成する中間コード生成手段と、
前記中間コード生成手段が生成した中間コードから出力装置が解釈可能なコマンドを生成するコマンド生成手段と、
前記中間コード生成手段で中間コードを生成するために要する時間を累積する時間計測手段と、
前記時間計測手段で得られる累積値を基に前記中間コード生成手段が生成する中間コードの抽象度を変更する抽象度設定手段と、
前記時間累積値を基にアプリケーションプログラムに対して処理の完了を通知するタイミングを変更するタイミング設定手段と
を備えることを特徴とする画像処理装置。 - 前記抽象度設定手段および前記タイミング設定手段は、前記時間累積値が既定の閾値を越えた場合に抽象度およびタイミングを変更する
ことを特徴とする請求項5記載の画像処理装置。 - ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送するに際して、
アプリケーションプログラムが生成する描画命令から描画抽象度を落とした中間コードを生成するとともに、その生成した中間コードから出力装置が解釈可能なコマンドを生成する一方、
前記中間コードおよび前記コマンドを生成するときの負荷を予測し、
その予測結果を基に前記中間コードの抽象度を変更するとともに、アプリケーションプログラムに対して処理の完了を通知するタイミングを変更する
ことを特徴とする画像処理方法。 - ホストコンピュータ上で動作するアプリケーションプログラムで作成した描画命令から、出力装置が解釈可能なコマンドを出力ドライバによって形成し、それを所定の通信媒体を介して当該出力装置に転送するに際して、
アプリケーションプログラムの生成する描画命令から描画抽象度を落とした中間コードを生成するとともに、この中間コードから出力装置が解釈可能なコマンドを生成する一方、
前記中間コードを生成するために要する時間を累積し、
その累積値を基に前記中間コードの抽象度を変更するとともに、アプリケーションプログラムに対して処理の完了を通知するタイミングを変更する
ことを特徴とする画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002169560A JP2004013770A (ja) | 2002-06-11 | 2002-06-11 | 画像処理装置および画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002169560A JP2004013770A (ja) | 2002-06-11 | 2002-06-11 | 画像処理装置および画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004013770A true JP2004013770A (ja) | 2004-01-15 |
Family
ID=30436085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002169560A Pending JP2004013770A (ja) | 2002-06-11 | 2002-06-11 | 画像処理装置および画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004013770A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647067B2 (en) * | 2003-11-27 | 2010-01-12 | Sony Ericsson Mobile Communications Japan, Inc. | Information processing apparatus and a cellular phone |
JP2010099973A (ja) * | 2008-10-24 | 2010-05-06 | Kyocera Mita Corp | 画像形成装置及び画像形成プログラム |
JP2015020384A (ja) * | 2013-07-22 | 2015-02-02 | キヤノン株式会社 | ディスプレイリストを生成する装置、方法、プログラム |
-
2002
- 2002-06-11 JP JP2002169560A patent/JP2004013770A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647067B2 (en) * | 2003-11-27 | 2010-01-12 | Sony Ericsson Mobile Communications Japan, Inc. | Information processing apparatus and a cellular phone |
JP2010099973A (ja) * | 2008-10-24 | 2010-05-06 | Kyocera Mita Corp | 画像形成装置及び画像形成プログラム |
JP2015020384A (ja) * | 2013-07-22 | 2015-02-02 | キヤノン株式会社 | ディスプレイリストを生成する装置、方法、プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6493099B2 (en) | Print control apparatus and method | |
EP0750250B1 (en) | Print control apparatus, print control method, information processing apparatus, information processing method, and storage medium storing control program | |
US8625133B2 (en) | Print data processing apparatus, print data processing method, and storage medium | |
JP2002041261A (ja) | 情報処理装置及び情報処理方法及びコンピュータ読み取り可能なプログラムを格納した記憶媒体 | |
US7253914B2 (en) | Print data processing apparatus, print control method, and print control program | |
JP5051327B1 (ja) | 画像処理装置及びプログラム | |
US11720769B2 (en) | Methods and systems for enhancing raster image processing using artificial intelligence | |
US8054478B2 (en) | Image forming apparatus, and method for changing number of lines in band buffer based on memory size to be required | |
JP2001356893A (ja) | 印刷制御装置および方法 | |
JP2005316950A (ja) | データ処理装置およびデータ処理方法およびプリンタドライバプログラムおよび印刷制御装置および印刷制御方法および印刷システム | |
JP2004013770A (ja) | 画像処理装置および画像処理方法 | |
JP4472643B2 (ja) | 画像形成装置及び制御プログラム | |
JPH11143656A (ja) | 印刷システムおよび印刷システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
US20040263892A1 (en) | Information processisng apparatus, information processing method, and control program | |
JP2007152898A (ja) | 印刷処理装置 | |
JP2005070957A (ja) | 変換制御装置および変換制御プログラム | |
US8023124B2 (en) | Printing apparatus and printing method | |
JP5576033B2 (ja) | データ処理装置 | |
JP2014215836A (ja) | 印刷制御装置、印刷制御方法、およびプログラム | |
JP3896619B2 (ja) | 印刷制御システム | |
EP2293180B1 (en) | PDL data processing device and PDL data creating device | |
JP3408107B2 (ja) | データ処理装置および印刷制御装置およびデータ処理装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
US20200329173A1 (en) | Image processing apparatus, image processing method, and non-transitory computer-readable storage medium | |
JP2001282482A (ja) | データ処理装置、および、該データの処理方法 | |
JP4467715B2 (ja) | 画像出力制御装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050523 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080321 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080415 |