情報処理装置、情報処理装置の制御方法、及びコンピュータプログラム
【課題】描画命令に基づく中間データの生成処理と、中間データに基づくページ画像の生成処理との間の適切な負荷分散を行う情報処理装置を提供する。
【解決手段】情報処理装置が、入力される描画命令に基づいてジョブデータを生成してジョブキュー12に格納するジョブ生成処理部11と、ジョブキュー12に格納されたジョブデータに基づいて、印刷対象のページ画像を生成するH/Wレンダラ23を有するジョブ描画部2とを備える。上記ジョブ生成処理部11が、ジョブキュー12の負荷状態とジョブ描画部2の負荷状態とに基づいて、ジョブデータについての第1、第2の抽象度のうち、1つの抽象度を選択し、選択した抽象度に対応するジョブデータを生成する。
【解決手段】情報処理装置が、入力される描画命令に基づいてジョブデータを生成してジョブキュー12に格納するジョブ生成処理部11と、ジョブキュー12に格納されたジョブデータに基づいて、印刷対象のページ画像を生成するH/Wレンダラ23を有するジョブ描画部2とを備える。上記ジョブ生成処理部11が、ジョブキュー12の負荷状態とジョブ描画部2の負荷状態とに基づいて、ジョブデータについての第1、第2の抽象度のうち、1つの抽象度を選択し、選択した抽象度に対応するジョブデータを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理装置の制御方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
多機能化されたレーザービームプリンタやインクジェットプリンタが提案されている。例えば、各種のPDL(Page Description Language )をサポートするプリンタが増えている。これらのプリンタは、ホストコンピュータやインターネットなどからPDF(Portable Document Format:米国Adobe Systems社の登録商標)などのPDLデータを受け取る。PDLデータを受け取ったプリンタは、PDLインタープリタプログラムによりPDLデータを解釈し、描画命令(文字、グラフィックス、及び画像)に分解する。そして、プリンタは、分解によって生成した描画命令をレンダリングシステムに入力する。レンダリングシステムは、各描画命令を解釈し、文字、グラフィックス及び画像の描画処理を実行し、画像データを生成する。プリンタは、生成された画像データを印刷に適した形式に変換(RGBからCMYKへの変換、ハーフトーン処理等)した後、画像データをプリンタエンジンに送り、印刷処理を実行させる。
【0003】
図11は、レンダリングシステムの構成例を示す図である。レンダリングシステム200に、文字、グラフィックス、及び画像などの描画命令が入力されると、レンダリングシステム200が備えるジョブ生成部201が、この描画命令を解釈し、ジョブデータという中間データを生成する。ジョブ生成部201は、ジョブ描画部202の状態にかかわらず、所定の抽象度を持つジョブデータを生成する。ジョブ生成部201は、生成したジョブデータを1ページ分ずつバッファリングする。ジョブ生成部201は、1ページ分のジョブデータの生成が完了すると、このジョブデータをジョブ描画部202に渡す。ジョブ描画部202は、ジョブ生成部201から渡されたジョブデータを解析して、ページ画像に展開する。ページ画像は1ページ分の画像データである。
【0004】
なお、下記の特許文献1は、画像処理装置の処理ステータスに応じて、プリンタに出力する印刷データの出力形態を変化させる画像処理システムを開示している。また、下記の特許文献2は、印刷データ生成処理時に、データ処理負担を監視して、印刷装置に転送すべき印刷データの加工種別を切り換え制御するデータ処理装置を開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−155307号公報
【特許文献2】特開平10−293659号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
図12は、図11に示すレンダリングシステムが実行するジョブ描画処理に掛かる時間(描画時間)を示す図である。図中の901乃至905は、ジョブ生成部201が生成するジョブデータを示す。また、図中の906乃至909は、各々のジョブデータについてのジョブ描画処理に掛かる時間を示す。図11に示すレンダリングシステム200は、ジョブ描画部202の状態にかかわらず、所定の抽象度を持つジョブデータを生成するので、ジョブ描画処理に時間が掛かっていても、生成するジョブデータの抽象度を切替えない。その結果、ジョブ描画処理がボトルネックとなって、トータルの描画時間が長くなってしまう。
【0007】
ここで、抽象度の異なる2種類のジョブデータ形式を持ち、いずれの抽象度に対応するジョブデータも描画できるレンダリングシステムが提案されている。このレンダリングシステムでは、抽象の高いジョブデータ形式の場合には、ジョブ生成部の負荷が軽くなるので高速にジョブ生成処理を実行できる一方で、ジョブ描画部の処理(ジョブ描画処理)が遅くなるという問題がある。また、抽象度の低いジョブデータ形式の場合には、描画命令は実際に生成されるピクセルに近い形式まで噛み砕かれているので、ジョブ描画処理は高速に処理できる一方、ジョブ生成部の負荷が高くなり、ジョブ生成処理が遅くなる。
【0008】
レンダリングシステムが、上記2種類のジョブデータ形式のいずれかを持つジョブデータを生成する際に、入力された描画命令の複雑さのみに基づいて、ジョブデータの抽象度を切替えることが考えられる。例えば、描画命令が複雑であって、ジョブ描画処理が極端に遅くなることが予測される場合には、レンダリングシステムは、抽象度の低いジョブデータを生成してジョブ描画処理を高速に実行できるようにする。一方、描画命令が複雑でない場合には、レンダリングシステムは、抽象度の高いジョブデータを生成してジョブ生成処理を高速化する。
【0009】
しかし、描画命令の複雑さのみに基づいてジョブデータの抽象度を切替えるレンダリングシステムでは、ジョブ描画部の負荷が軽い状態(ジョブ描画処理に余裕がある状態)においても、ジョブ生成部が抽象度の低いジョブデータを生成する場合がある。このような場合には、ジョブデータの生成がジョブ描画処理に間に合わなくなる。また、上記のレンダリングシステムでは、ジョブ描画部がビジー(Busy)状態であるにも関わらずジョブ生成部が抽象度の高いジョブデータを生成してしまう場合がある。このような場合には、ジョブ描画部の負荷が高くなってしまい、ジョブ描画処理に時間が掛かってしまうという問題がある。従って、上記のレンダリングシステムでは、ジョブ生成処理とジョブ描画処理との間の適切な負荷分散を行うことができず、その結果、効率的な印刷処理を実行できない。
【0010】
本発明は、描画命令に基づく中間データの生成処理と、中間データに基づくページ画像の生成処理との間の適切な負荷分散を行う情報処理装置の提供を目的とする。
【課題を解決するための手段】
【0011】
本発明の一実施形態の情報処理装置は、入力される描画命令に基づいて中間データを生成して所定の記憶手段に格納する中間データ生成手段と、前記記憶手段に格納された中間データに基づいて、印刷対象のページ画像を生成する画像生成手段とを備える。前記中間データ生成手段は、前記記憶手段の負荷状態と前記画像生成手段の負荷状態とに基づいて、前記中間データについての第1、第2の抽象度のうち、1つの抽象度を選択し、選択した抽象度に対応する中間データを生成する。
【発明の効果】
【0012】
本発明の情報処理装置によれば、描画命令に基づく中間データの生成処理と、中間データに基づくページ画像の生成処理との間の適切な負荷分散を行うことができる。その結果、印刷データについての描画のスループットを向上させることが可能になる。
【図面の簡単な説明】
【0013】
【図1】本発明の第1の実施形態の情報処理装置の構成を示す図である。
【図2】ジョブデータに対応する第1、第2の抽象度を説明する図である。
【図3】ジョブ生成処理フローを示す図である。
【図4】ジョブキュー管理処理フローを示す図である。
【図5】ジョブデータの受信処理フローを示す図である。
【図6】ジョブ描画処理フローを示す図である。
【図7】第1の実施形態の情報処理装置の適用の効果を説明する図である。
【図8】第2の実施の形態の情報処理装置の構成を示す図である。
【図9】ジョブ生成処理フローを示す図である。
【図10】ジョブキュー管理処理フローを示す図である。
【図11】レンダリングシステムの構成例を示す図である。
【図12】レンダリングシステムが実行するジョブ描画処理に掛かる時間を示す図である。
【発明を実施するための形態】
【0014】
図1は、本発明の第1の実施形態の情報処理装置の構成を示す図である。図1に示す情報処理装置は、例えば印刷制御装置であって、入力された描画命令を処理して印刷対象のページ画像を生成する。入力される描画命令は、例えば、PDLデータ等の、ページに配置されるオブジェクトを含む印刷データに対応する描画命令である。情報処理装置は、描画命令に基づいて、中間データであるジョブデータをページ単位に生成するジョブ生成部1と、ジョブデータに基づいて、ページ画像を生成するジョブ描画部2とを備える。図1中のJobNが、ジョブ生成部1により生成されたジョブデータを示す。ジョブ生成部1は、生成したジョブデータを所定の記憶手段であるジョブキュー12にキューイング(登録)する。ジョブ生成部1とジョブ描画部2とは、互いに独立したハードウェア上で動作する。
【0015】
ジョブ生成部1は、ジョブ生成処理部11、ジョブキュー12、ステータス管理部13を備える。ジョブ生成処理部11、ステータス管理部13は、情報処理装置全体を制御する制御装置であるCPU(Central Processing Unit )の指示に従って、それぞれの処理を実行する。ジョブ生成処理部11は、中間データ生成手段として機能する。例えば、ジョブ生成処理部11は、ジョブ生成部1に入力された描画命令を受け取る。また、ジョブ生成処理部11は、ステータス管理部13からステータス管理情報を受け取る。ステータス管理情報は、ジョブキュー12の負荷状態を示す情報とジョブ描画部2の負荷状態を示す情報とを含む。ジョブ生成処理部11は、ステータス管理情報に含まれるジョブキュー12の負荷状態を示す情報とジョブ描画部2の負荷状態を示す情報とに基づいて、ジョブデータについての第1、第2の抽象度のうち、1つの抽象度を選択する。そして、描画命令に基づいて、上記選択した抽象度に対応するジョブデータを生成する(ジョブ生成処理を実行する)。ジョブ生成処理部11は、生成したジョブデータをジョブキュー12に格納する。なお、ジョブ生成処理部11が、ステータス管理情報に基づいて、2種類以上の任意の種類の抽象度のうち、1つの抽象度を選択するようにしてもよい。
【0016】
ジョブキュー12は、ジョブ生成処理部11が生成したページ単位のジョブデータをFirst−In First−Out(先入れ先出し方式)で管理する。図1中のJob3乃至5が、ジョブキュー12に登録されているジョブデータを示す。ジョブ生成部1は、ジョブキューに登録したジョブデータを、ジョブ描画部2がレディ(Ready)状態になる度に、先に登録されたものから順にジョブ描画部2に送信する。ステータス管理部13は、ジョブキュー12の(負荷)状態とジョブ描画部2の(負荷)状態を監視して、上述したステータス管理情報を取得する。ステータス管理部13は、取得したステータス管理情報をジョブ生成処理部11に渡す。ここでジョブキューの状態は、下記の3種類からなる。「Full」は、ジョブキューが満杯でこれ以上ジョブを受け付けられない状態(フル状態)である。「Empty」は、ジョブキューにジョブが一つも登録されていない状態である。「その他」は、上記のいずれでもない状態である。また、ジョブ描画部2の状態は、ジョブデータの受信処理(後述)において、ジョブバッファ21の状態とH/Wレンダラ23の状態に基づいて決定され、以下の2つの状態を持つ。「Busy」は、ジョブバッファ21がFullかつH/Wレンダラ23が動作中であり、ジョブの受け入れは不可の状態(ビジー状態)である。「Ready」は、ジョブバッファ21に余裕があり、ジョブを受け入れ可能な状態である。ジョブ描画部2のジョブバッファ21の状態も下記の3種類からなる。「Full」は、ジョブバッファ21が満杯で、これ以上ジョブを受け付けられない状態である。「Empty」は、ジョブバッファ21にジョブが一つも登録されていない状態である。「その他」は、上記のいずれでもない状態である。また、H/Wレンダラ23の状態は、下記のいずれかである。「Busy」は、描画中の状態である。「Ready」は、描画を行っていない状態である。
【0017】
ジョブ描画部2は、ジョブバッファ21、ページバッファ22、H/Wレンダラ23を備え、画像生成手段として機能する。ジョブバッファ21は、ジョブ生成部1から送信されたジョブデータを1個保存する。図1中では、Job2がジョブバッファ21に保存されている。H/Wレンダラ23は、ジョブバッファ21に保存されたジョブデータ、すなわちジョブキュー12に格納された中間データに基づいて、印刷対象のページ画像を生成する。具体的には、H/Wレンダラ23は、ジョブバッファ21に保存されたジョブデータをジョブバッファ21から取り出す。そして、H/Wレンダラ23は、取り出したジョブデータについて描画処理を実行して、ページ画像を生成する(ジョブ描画処理を実行する)。H/Wレンダラ23は、生成したページ画像をページバッファ22に格納する。ページバッファ22には、ページ画像(図1中ではPage1)が格納される。ジョブ描画部2は、ページバッファに格納されたページ画像をプリンタエンジンに出力する。本実施形態の情報処理装置の制御方法及びそのコンピュータプログラムは、図1に示す情報処理装置が備える各処理部の機能によって実現される。
【0018】
図2は、ジョブ生成処理部が生成するジョブデータに対応する第1、第2の抽象度を説明する図である。本実施形態において、第1の抽象度は、第2の抽象度よりも、抽象度が高いものとする。図2(A)は、第1の抽象度に対応するジョブデータ形式の例を示す。図2(A)中の301は、ジョブ生成部1に入力される描画命令を示す。描画命令301に従うと、グレーの台形3011、グラデーションの円3012、白の三角形3013の順で3つの図形が描画され、かつ、最上位の三角形3013が透過となる。この描画命令301に従って生成されるジョブデータは、描画図形を直線の線分に分割したセグメント情報、各々の図形の上下関係及び透過・論理演算を表すレベル情報(302乃至304)、及び、各図形の塗りを表す塗り情報(305乃至307)を含む。
【0019】
第1の抽象度に対応するジョブデータ形式では、ジョブ描画部2が、セグメント情報から各線分上のピクセル位置を計算するエッジ・トラッキング処理を行う。また、ジョブ描画部2は、図形間の上下関係及び論理演算の処理を行うレベル処理を行う。その結果、ジョブ生成部1の負荷は小さくなって、ジョブ生成処理が高速化される一方で、ジョブ描画部2の負荷が大きくなってジョブ描画処理が遅くなる。
【0020】
図2(B)は、第2の抽象度に対応するジョブデータ形式の例を示す。図2(B)中の401は、ジョブ生成部1に入力される描画命令を示す。描画命令401に従うと、グラデーションの矩形4011の上に透過のグレーの矩形4012が描画される。描画命令401に従って生成されるジョブデータは、描画開始位置を表すエッジ情報402、各エッジにおける塗り及び塗り間の論理演算を表す論理演算情報403、及び塗り情報404を含む。エッジ情報402は、ピクセル単位での描画開始位置を表すデータである。図中の4021は、背景のエッジ、4022はグレーの矩形のエッジ、4023はグレーの矩形4012とグラデーション矩形4011の透過・重なり部分のエッジ、4024は、グラデーションの矩形の残り部分のエッジをそれぞれ表す。各エッジは、論理演算情報403を参照する。論理演算情報403は、塗り情報404を用いた論理演算(上書き、論理和など)の情報を含む。図中の4031乃至4034が各々の論理演算の情報を示す。例えば、4021のエッジは背景のみの論理演算情報4031を参照し、該論理演算情報は背景の塗り情報(白)4041を参照する。一方、エッジ4023は、グレー、グラデーション、及び背景の3つの要素を用いた論理演算の情報4033を参照する。そして、この論理演算の情報4033は、塗り情報404に含まれる、白4041、グレー4042、及びグラデーション4043を参照する。
【0021】
第2の抽象度に対応するジョブデータ形式では、ジョブ生成部1が、エッジ・トラッキング処理及びレベル処理を実行する。従って、ジョブ生成部1の負荷が大きくなって、ジョブ生成処理が遅くなる一方で、ジョブ描画部2の負荷が小さくなって、ジョブ描画処理が高速化される。
【0022】
図3は、第1の実施の形態におけるジョブ生成処理フローを示す図である。まず、ジョブ生成処理部11が起動し、ジョブ生成処理部11が、1ページ分の描画命令を取得する(ステップS1)。次に、ジョブ生成処理部11が、ステータス管理部13を呼び出して、ステータス管理部13からステータス管理情報を取得する(ステップS2)。続いて、ジョブ生成処理部11が、ステータス管理情報に含まれるジョブキュー12の負荷状態を示す情報に基づいて、ジョブキュー12がFullであるかを判断する(ステップS3)。ジョブ生成処理部11が、ジョブキュー12がFullであると判断した場合は、ジョブ生成処理部11が、第2の抽象度を選択し、描画命令に基づいて第2の抽象度に対応する第2の中間データ形式のジョブデータを生成する(ステップS4)。そして、ジョブ生成処理部11は、生成したジョブデータをジョブキュー12の終端に登録する(ステップS5)。続いて、ジョブ生成処理部11が、全ページのジョブ生成処理が終了したかを判断する(ステップS6)。ジョブ生成処理部11が、全ページのジョブ生成処理が終了したと判断した場合は、処理を終了する。ジョブ生成処理部11が、ジョブ生成処理が終了していないページがあると判断した場合は、上記ステップS1に戻る。
【0023】
上記ステップS3において、ジョブ生成処理部11が、ジョブキュー12がFullでない、すなわち、空きがあると判断した場合は、ジョブ生成処理部11は、以下の処理を行う。ジョブ生成処理部11は、ステータス管理情報に基づいて、ジョブ描画部2の状態がBusyであるかを判断する(ステップS7)。ジョブ生成処理部11が、ジョブ描画部2の状態がBusyであると判断した場合は、上記ステップS4に進む。ジョブ生成処理部11が、ジョブ描画部2の状態がBusyでないと判断した場合は、ジョブ生成処理部11は、以下の処理を行う。すなわち、ジョブ生成処理部11は、第1の抽象度を選択し、描画命令に基づいて第1の抽象度に対応する第1の中間データ形式のジョブデータを生成し(ステップS8)、上記ステップS5に進む。
【0024】
すなわち、ジョブ生成処理部11は、ジョブキュー12の状態がFullでなく(ステップS3でNo)、かつ、ジョブ描画部2の状態がBusyである場合に(ステップS7でYes)、以下の処理を行う。ジョブ生成処理部11は、生成するジョブデータに対応する抽象度として、第1、第2の抽象度のうち抽象度の低い方の抽象度である第2の抽象度を選択する(ステップS4)。その結果、ページ画像の生成処理の負荷が軽くなる。また、ジョブ生成処理部11は、ジョブキュー12の状態がFullでなく(ステップS3でNo)、かつ、ジョブ描画部2の状態がBusyでない場合に(ステップS7でNo)、以下の処理を行う。ジョブ生成処理部11は、生成するジョブデータに対応する抽象度として、第1、第2の抽象度のうち抽象度の高い方の抽象度である第1の抽象度を選択する(ステップS8)。その結果、ジョブデータの生成処理の負荷が軽くなる。従って、図3を参照して説明した第1の実施形態におけるジョブ生成処理によれば、描画命令に基づくジョブデータの生成処理と、ジョブデータに基づくページ画像の生成処理との間の適切な負荷分散を行うことが可能となる。
【0025】
図4は、第1の実施の形態におけるジョブキュー管理処理フローを示す図である。ジョブキュー管理処理は、図3を参照して説明したジョブ生成処理とは独立したスレッドとして実行され、ジョブキューの負荷状態を監視する処理である。ジョブキュー管理処理は、ジョブ生成処理部11によって実行される。まず、ジョブ生成処理部11が、ジョブキュー12がEmpty(空)かを判断する(ステップS1)。ジョブ生成処理部11が、ジョブキュー12が空である、すなわち、ジョブキュー12の中にジョブデータが存在していないと判断した場合は、ステップS11に戻る。ジョブ生成処理部11が、ジョブキュー12が空でない、すなわち、ジョブキュー12の中にジョブデータが存在していると判断した場合は、ジョブ生成処理部11は、ジョブ終了かを判断する(ステップS12)。ステップS12においては、ジョブ生成処理部11は、ジョブ生成処理部11に入力されるジョブが印刷の終了を示す終了ジョブであるかを判断し、ジョブが終了ジョブである場合には、ジョブ終了と判断する。
【0026】
ジョブ生成処理部11が、ジョブ終了であると判断した場合には、ジョブ生成処理部11は、ジョブキュー管理処理を終了する。ジョブ生成処理部11が、ジョブ終了でないと判断した場合には、ジョブ生成処理部11は、ジョブ描画部2がBusyであるかを判断する(ステップS13)。ジョブ生成処理部11が、ジョブ描画部2がBusyであると判断した場合は、上記ステップS13に戻る。ジョブ生成処理部11が、ジョブ描画部2がBusyでないと判断した場合は、ジョブ生成処理部11は、ジョブキュー12に登録されているジョブデータのうち、先頭のジョブデータを取り出してジョブ描画部2に出力する(ステップS14)。そして、ジョブ生成処理部11が、上記ステップS14において出力したジョブデータをジョブキュー12から削除する(ステップS15)。
【0027】
図5は、第1の実施の形態におけるジョブデータの受信処理フローを示す図である。ジョブ描画部2は以下のようにしてジョブデータの受信処理を実行する。まず、ジョブ描画部2は、ジョブバッファ21がFullであるかを判断する(ステップS21)。ジョブ描画部2は、ジョブバッファ21がFullでないと判断した場合は、ジョブ描画部2の状態をReadyに設定する(ステップS22)。続いて、ジョブ描画部2は、ジョブ生成部1から受信したジョブデータをジョブバッファ21に格納して(ステップS23)、ステップS21に戻る。上記ステップS21において、ジョブ描画部2が、ジョブバッファ21がFullであると判断した場合は、ジョブ描画部2は、H/Wレンダラ23が描画中であるか判断する(ステップS24)。ジョブ描画部2が、H/Wレンダラ23が描画中であると判断した場合、ジョブ描画部2は、ジョブ描画部2の状態をBusyに設定する(ステップS25)。ジョブ描画部2が、H/Wレンダラが描画中でないと判断した場合、ジョブ描画部2は、ジョブ描画部2の状態をReadyに設定し(ステップS26)、ステップS21に戻る。図5に示す処理フローを通じて設定されたジョブ描画部2の状態は、ステータス管理部13が取得するステータス管理情報に反映される。
【0028】
図6は、第1の実施の形態におけるジョブ描画処理フローを示す図である。ジョブ描画処理は、図5を参照して説明したジョブデータの受信処理とは独立して実行される。まず、ジョブ描画部2が、ジョブバッファ21にジョブデータが存在するかを判断する(ステップS31)。ジョブ描画部2が、ジョブバッファ21にジョブデータが存在しないと判断した場合は、上記ステップS31に戻る。ジョブ描画部2が、ジョブバッファ21にジョブデータが存在すると判断した場合は、ジョブ描画部2が、ジョブバッファ21内のジョブデータをH/Wレンダラ23に渡す(ステップS32)。続いて、ジョブ描画部2が、H/Wレンダラ23によるジョブデータの描画処理、すなわちページ画像の生成処理が完了したかを判断する(ステップS33)。ジョブ描画部2が、ジョブデータの描画処理が完了していないと判断した場合は、上記ステップS33に戻る。ジョブ描画部2が、ジョブデータの描画処理が完了したと判断した場合は、ジョブ描画部2が、生成されたページ画像をページバッファ22に格納する(ステップS34)。そして、ジョブ描画部2が、ページバッファ22に格納したページ画像をジョブバッファ21から削除して(ステップS35)、上記ステップS31に戻る。
【0029】
図7は、第1の実施形態の情報処理装置の適用の効果を説明する図である。図中の1001乃至1005は、ジョブ生成処理部11が生成するジョブデータを示す。また、図中の1006乃至1009は、各々のジョブデータについてのジョブ描画処理に掛かる時間を示す。第1の実施形態の情報処理装置が備えるジョブ生成部1は、例えば、Job3B、Job4Bの生成時に、ステータス管理情報に基づいて、ジョブ描画部2がBusyであると判断する。従ってジョブ生成部1は、Job3B、Job4Bを、抽象度の低い第2の抽象度で生成する。その結果、ジョブ描画部2によるJob3B、Job4Bについてのジョブ描画処理が高速化され、トータルでの描画処理時間が短くなる。
【0030】
図8は、第2の実施の形態の情報処理装置の構成を示す図である。図8に示す情報処理装置が備える処理部のうち、図1に示す情報処理装置が備える処理部と同一の符号のものは、図1に示す情報処理装置が備える処理部と同様である。図8に示す情報処理装置は、ジョブ生成部3とジョブ描画部2とを備える。ジョブ生成部3は、ジョブキュー12、ステータス管理部13、ジョブ生成処理部14、CPU負荷管理部15を備える。
【0031】
ジョブ生成処理部14は、ジョブ生成部1に入力された描画命令を受け取る。また、ジョブ生成処理部14は、ステータス管理部13から、前述したステータス管理情報を受け取る。また、ジョブ生成処理部14は、CPU負荷管理部15からCPUの負荷状態を示す情報を受け取る。CPUの負荷状態を示す情報は、例えば、CPU負荷率である。ジョブ生成処理部14は、ステータス管理情報とCPUの負荷状態を示す情報とに基づいて、ジョブデータについての第1、第2の抽象度のうち、1つの抽象度を選択する。そして、ジョブ生成処理部14は、描画命令に基づいて、上記選択した抽象度に対応するジョブデータを生成する。ジョブ生成処理部14が、更に、情報処理装置の動作モードが印刷処理を優先するモードであるかを判断し、該判断結果に基づいて、ジョブデータについての抽象度を選択するようにしてもよい。なお、情報処理装置の動作モードは、例えば、情報処理装置のユーザの操作入力に従って情報処理装置が予め設定する。CPU負荷管理部15は、CPUの負荷状態を示す情報を取得し、取得した情報をジョブ生成処理部14に渡す。CPU負荷管理部15は、例えば、情報処理装置上で動作するOS(Operating System)からCPU負荷率を取得する。
【0032】
図9は、第2の実施の形態におけるジョブ生成処理フローを示す図である。図9に示すステップS45乃至S51は、図3に示すステップS3乃至S8と同様であるので、ステップS45乃至S51についての説明は省略する。まず、ジョブ生成処理部11が、1ページ分の描画命令を取得する(ステップS41)。次に、ジョブ生成処理部11が、CPU負荷管理部15を呼び出して、CPU負荷管理部15からCPU負荷率を取得する(ステップS42)。続いて、ジョブ生成処理部11が、情報処理装置が印刷処理を優先する動作モードであるかを判断する(ステップS43)。ジョブ生成処理部11が、情報処理装置が印刷処理を優先する動作モードであると判断した場合は、ステップS45に進む。ジョブ生成処理部11が、情報処理装置が印刷処理を優先する動作モードでない、すなわち、印刷処理以外の処理を行うアプリケーションの実行を優先する動作モードであると判断した場合は、ジョブ生成処理部11は、以下の処理を実行する。すなわち、ジョブ生成処理部11は、CPUが高負荷か、すなわち、CPU負荷率が所定の閾値を超えるかを判断する(ステップS44)。ジョブ生成処理部11が、CPU負荷率が所定の閾値を超えると判断した場合は、ステップS51に進む。ジョブ生成処理部11が、CPU負荷率が所定の閾値を超えないと判断した場合は、ステップS45に進む。
【0033】
なお、第2の実施形態のジョブキュー管理処理、ジョブデータの受信処理、ジョブ描画処理は、それぞれ、図4、図5、図6を参照して説明した処理と同様である。第2の実施形態の情報処理装置によれば、印刷処理以外の処理を行うアプリケーションの動作を優先する動作モードの場合に、ジョブ生成処理の負荷を軽減し、より多くのCPU時間を印刷処理以外の処理を行うアプリケーションに割り当てることが可能になる。一方、印刷処理を優先する動作モードの場合には、第1の実施形態の情報処理装置と同様に、描画命令に基づくジョブデータの生成処理と、ジョブデータに基づくページ画像の生成処理との間の適切な負荷分散を行うことが可能となる。
【0034】
次に、本発明の第3の実施形態について説明する。第3の実施形態の情報処理装置は、図8に示す第2の実施形態の情報処理装置と同様の構成を備える。そして、第3の実施形態の情報処理装置においては、ジョブ生成処理部14が、更に、CPU負荷管理部15から取得したCPU負荷率に基づいて、ジョブキュー12に格納されているジョブデータの抽象度を変更する処理を行う。
【0035】
図10は、第3の実施の形態におけるジョブキュー管理処理フローを示す図である。図10中に示すステップS61乃至S65は、図4中に示すステップS11乃至S15と同様であるので、ステップS61乃至S65についての説明は省略する。図10のステップS63において、ジョブ生成処理部11が、ジョブ描画部2がBusyであると判断した場合は、ステップS66に進む。続いて、ジョブ生成処理部11が、CPUが低負荷か、すなわち、CPU負荷率が所定の閾値以下であるかを判断する(ステップS66)。ジョブ生成処理部11が、CPU負荷率が所定の閾値以下でないと判断した場合は、ステップS63に戻る。ジョブ生成処理部11が、CPU負荷率が所定の閾値以下であると判断した場合は、ステップS67に進む。
【0036】
次に、ジョブ生成処理部11が、ジョブキュー12中の終端に登録されているジョブデータが第1の抽象度に対応するかを判断する(ステップS67)。ジョブ生成処理部11が、ジョブキュー12中の終端に登録されているジョブデータが第1の抽象度に対応しないと判断した場合は、ステップS70に進む。ジョブ生成処理部11が、ジョブキュー12中の終端に登録されているジョブデータが第1の抽象度に対応すると判断した場合は、ジョブ生成処理部11は、このジョブデータを第2の抽象度に対応するジョブデータに変換する(ステップS68)。そして、ジョブ生成処理部11が、変換後のジョブデータをジョブキュー12に戻す(ステップS69)。
【0037】
続いて、ジョブ生成処理部11が、ジョブキュー12内の次のジョブデータを検索する(ステップS70)。そして、ジョブ生成処理部11が、ジョブキュー12内にジョブデータが残っているかを判断する(ステップS71)。ジョブ生成処理部11が、ジョブキュー12内にジョブデータが残っていないと判断した場合は、ステップS63に戻る。ジョブ生成処理部11が、ジョブキュー12内にジョブデータが残っていると判断した場合は、ステップS67に戻る。
【0038】
なお、第3の実施形態のジョブ生成処理は、図9を参照して説明した処理と同様である。また、第3の実施形態のジョブデータの受信処理、ジョブ描画処理は、それぞれ、図5、図6を参照して説明した処理と同様である。第3の実施形態によれば、一旦ジョブデータを生成した後であっても、その後ジョブ生成処理の負荷が軽くなった時点(CPUが低負荷になった時点)で、ジョブキュー12中のジョブデータを抽象度の低い第2の抽象度に対応するジョブデータに変換できる。その結果、ジョブ描画処理の負荷を低減することが可能になる。
【0039】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0040】
1 ジョブ生成部
2 ジョブ描画部
11 ジョブ生成処理部
12 ジョブキュー
13 ステータス管理部
21 ジョブバッファ
22 ページバッファ
23 H/Wレンダラ
【技術分野】
【0001】
本発明は、情報処理装置、情報処理装置の制御方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
多機能化されたレーザービームプリンタやインクジェットプリンタが提案されている。例えば、各種のPDL(Page Description Language )をサポートするプリンタが増えている。これらのプリンタは、ホストコンピュータやインターネットなどからPDF(Portable Document Format:米国Adobe Systems社の登録商標)などのPDLデータを受け取る。PDLデータを受け取ったプリンタは、PDLインタープリタプログラムによりPDLデータを解釈し、描画命令(文字、グラフィックス、及び画像)に分解する。そして、プリンタは、分解によって生成した描画命令をレンダリングシステムに入力する。レンダリングシステムは、各描画命令を解釈し、文字、グラフィックス及び画像の描画処理を実行し、画像データを生成する。プリンタは、生成された画像データを印刷に適した形式に変換(RGBからCMYKへの変換、ハーフトーン処理等)した後、画像データをプリンタエンジンに送り、印刷処理を実行させる。
【0003】
図11は、レンダリングシステムの構成例を示す図である。レンダリングシステム200に、文字、グラフィックス、及び画像などの描画命令が入力されると、レンダリングシステム200が備えるジョブ生成部201が、この描画命令を解釈し、ジョブデータという中間データを生成する。ジョブ生成部201は、ジョブ描画部202の状態にかかわらず、所定の抽象度を持つジョブデータを生成する。ジョブ生成部201は、生成したジョブデータを1ページ分ずつバッファリングする。ジョブ生成部201は、1ページ分のジョブデータの生成が完了すると、このジョブデータをジョブ描画部202に渡す。ジョブ描画部202は、ジョブ生成部201から渡されたジョブデータを解析して、ページ画像に展開する。ページ画像は1ページ分の画像データである。
【0004】
なお、下記の特許文献1は、画像処理装置の処理ステータスに応じて、プリンタに出力する印刷データの出力形態を変化させる画像処理システムを開示している。また、下記の特許文献2は、印刷データ生成処理時に、データ処理負担を監視して、印刷装置に転送すべき印刷データの加工種別を切り換え制御するデータ処理装置を開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−155307号公報
【特許文献2】特開平10−293659号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
図12は、図11に示すレンダリングシステムが実行するジョブ描画処理に掛かる時間(描画時間)を示す図である。図中の901乃至905は、ジョブ生成部201が生成するジョブデータを示す。また、図中の906乃至909は、各々のジョブデータについてのジョブ描画処理に掛かる時間を示す。図11に示すレンダリングシステム200は、ジョブ描画部202の状態にかかわらず、所定の抽象度を持つジョブデータを生成するので、ジョブ描画処理に時間が掛かっていても、生成するジョブデータの抽象度を切替えない。その結果、ジョブ描画処理がボトルネックとなって、トータルの描画時間が長くなってしまう。
【0007】
ここで、抽象度の異なる2種類のジョブデータ形式を持ち、いずれの抽象度に対応するジョブデータも描画できるレンダリングシステムが提案されている。このレンダリングシステムでは、抽象の高いジョブデータ形式の場合には、ジョブ生成部の負荷が軽くなるので高速にジョブ生成処理を実行できる一方で、ジョブ描画部の処理(ジョブ描画処理)が遅くなるという問題がある。また、抽象度の低いジョブデータ形式の場合には、描画命令は実際に生成されるピクセルに近い形式まで噛み砕かれているので、ジョブ描画処理は高速に処理できる一方、ジョブ生成部の負荷が高くなり、ジョブ生成処理が遅くなる。
【0008】
レンダリングシステムが、上記2種類のジョブデータ形式のいずれかを持つジョブデータを生成する際に、入力された描画命令の複雑さのみに基づいて、ジョブデータの抽象度を切替えることが考えられる。例えば、描画命令が複雑であって、ジョブ描画処理が極端に遅くなることが予測される場合には、レンダリングシステムは、抽象度の低いジョブデータを生成してジョブ描画処理を高速に実行できるようにする。一方、描画命令が複雑でない場合には、レンダリングシステムは、抽象度の高いジョブデータを生成してジョブ生成処理を高速化する。
【0009】
しかし、描画命令の複雑さのみに基づいてジョブデータの抽象度を切替えるレンダリングシステムでは、ジョブ描画部の負荷が軽い状態(ジョブ描画処理に余裕がある状態)においても、ジョブ生成部が抽象度の低いジョブデータを生成する場合がある。このような場合には、ジョブデータの生成がジョブ描画処理に間に合わなくなる。また、上記のレンダリングシステムでは、ジョブ描画部がビジー(Busy)状態であるにも関わらずジョブ生成部が抽象度の高いジョブデータを生成してしまう場合がある。このような場合には、ジョブ描画部の負荷が高くなってしまい、ジョブ描画処理に時間が掛かってしまうという問題がある。従って、上記のレンダリングシステムでは、ジョブ生成処理とジョブ描画処理との間の適切な負荷分散を行うことができず、その結果、効率的な印刷処理を実行できない。
【0010】
本発明は、描画命令に基づく中間データの生成処理と、中間データに基づくページ画像の生成処理との間の適切な負荷分散を行う情報処理装置の提供を目的とする。
【課題を解決するための手段】
【0011】
本発明の一実施形態の情報処理装置は、入力される描画命令に基づいて中間データを生成して所定の記憶手段に格納する中間データ生成手段と、前記記憶手段に格納された中間データに基づいて、印刷対象のページ画像を生成する画像生成手段とを備える。前記中間データ生成手段は、前記記憶手段の負荷状態と前記画像生成手段の負荷状態とに基づいて、前記中間データについての第1、第2の抽象度のうち、1つの抽象度を選択し、選択した抽象度に対応する中間データを生成する。
【発明の効果】
【0012】
本発明の情報処理装置によれば、描画命令に基づく中間データの生成処理と、中間データに基づくページ画像の生成処理との間の適切な負荷分散を行うことができる。その結果、印刷データについての描画のスループットを向上させることが可能になる。
【図面の簡単な説明】
【0013】
【図1】本発明の第1の実施形態の情報処理装置の構成を示す図である。
【図2】ジョブデータに対応する第1、第2の抽象度を説明する図である。
【図3】ジョブ生成処理フローを示す図である。
【図4】ジョブキュー管理処理フローを示す図である。
【図5】ジョブデータの受信処理フローを示す図である。
【図6】ジョブ描画処理フローを示す図である。
【図7】第1の実施形態の情報処理装置の適用の効果を説明する図である。
【図8】第2の実施の形態の情報処理装置の構成を示す図である。
【図9】ジョブ生成処理フローを示す図である。
【図10】ジョブキュー管理処理フローを示す図である。
【図11】レンダリングシステムの構成例を示す図である。
【図12】レンダリングシステムが実行するジョブ描画処理に掛かる時間を示す図である。
【発明を実施するための形態】
【0014】
図1は、本発明の第1の実施形態の情報処理装置の構成を示す図である。図1に示す情報処理装置は、例えば印刷制御装置であって、入力された描画命令を処理して印刷対象のページ画像を生成する。入力される描画命令は、例えば、PDLデータ等の、ページに配置されるオブジェクトを含む印刷データに対応する描画命令である。情報処理装置は、描画命令に基づいて、中間データであるジョブデータをページ単位に生成するジョブ生成部1と、ジョブデータに基づいて、ページ画像を生成するジョブ描画部2とを備える。図1中のJobNが、ジョブ生成部1により生成されたジョブデータを示す。ジョブ生成部1は、生成したジョブデータを所定の記憶手段であるジョブキュー12にキューイング(登録)する。ジョブ生成部1とジョブ描画部2とは、互いに独立したハードウェア上で動作する。
【0015】
ジョブ生成部1は、ジョブ生成処理部11、ジョブキュー12、ステータス管理部13を備える。ジョブ生成処理部11、ステータス管理部13は、情報処理装置全体を制御する制御装置であるCPU(Central Processing Unit )の指示に従って、それぞれの処理を実行する。ジョブ生成処理部11は、中間データ生成手段として機能する。例えば、ジョブ生成処理部11は、ジョブ生成部1に入力された描画命令を受け取る。また、ジョブ生成処理部11は、ステータス管理部13からステータス管理情報を受け取る。ステータス管理情報は、ジョブキュー12の負荷状態を示す情報とジョブ描画部2の負荷状態を示す情報とを含む。ジョブ生成処理部11は、ステータス管理情報に含まれるジョブキュー12の負荷状態を示す情報とジョブ描画部2の負荷状態を示す情報とに基づいて、ジョブデータについての第1、第2の抽象度のうち、1つの抽象度を選択する。そして、描画命令に基づいて、上記選択した抽象度に対応するジョブデータを生成する(ジョブ生成処理を実行する)。ジョブ生成処理部11は、生成したジョブデータをジョブキュー12に格納する。なお、ジョブ生成処理部11が、ステータス管理情報に基づいて、2種類以上の任意の種類の抽象度のうち、1つの抽象度を選択するようにしてもよい。
【0016】
ジョブキュー12は、ジョブ生成処理部11が生成したページ単位のジョブデータをFirst−In First−Out(先入れ先出し方式)で管理する。図1中のJob3乃至5が、ジョブキュー12に登録されているジョブデータを示す。ジョブ生成部1は、ジョブキューに登録したジョブデータを、ジョブ描画部2がレディ(Ready)状態になる度に、先に登録されたものから順にジョブ描画部2に送信する。ステータス管理部13は、ジョブキュー12の(負荷)状態とジョブ描画部2の(負荷)状態を監視して、上述したステータス管理情報を取得する。ステータス管理部13は、取得したステータス管理情報をジョブ生成処理部11に渡す。ここでジョブキューの状態は、下記の3種類からなる。「Full」は、ジョブキューが満杯でこれ以上ジョブを受け付けられない状態(フル状態)である。「Empty」は、ジョブキューにジョブが一つも登録されていない状態である。「その他」は、上記のいずれでもない状態である。また、ジョブ描画部2の状態は、ジョブデータの受信処理(後述)において、ジョブバッファ21の状態とH/Wレンダラ23の状態に基づいて決定され、以下の2つの状態を持つ。「Busy」は、ジョブバッファ21がFullかつH/Wレンダラ23が動作中であり、ジョブの受け入れは不可の状態(ビジー状態)である。「Ready」は、ジョブバッファ21に余裕があり、ジョブを受け入れ可能な状態である。ジョブ描画部2のジョブバッファ21の状態も下記の3種類からなる。「Full」は、ジョブバッファ21が満杯で、これ以上ジョブを受け付けられない状態である。「Empty」は、ジョブバッファ21にジョブが一つも登録されていない状態である。「その他」は、上記のいずれでもない状態である。また、H/Wレンダラ23の状態は、下記のいずれかである。「Busy」は、描画中の状態である。「Ready」は、描画を行っていない状態である。
【0017】
ジョブ描画部2は、ジョブバッファ21、ページバッファ22、H/Wレンダラ23を備え、画像生成手段として機能する。ジョブバッファ21は、ジョブ生成部1から送信されたジョブデータを1個保存する。図1中では、Job2がジョブバッファ21に保存されている。H/Wレンダラ23は、ジョブバッファ21に保存されたジョブデータ、すなわちジョブキュー12に格納された中間データに基づいて、印刷対象のページ画像を生成する。具体的には、H/Wレンダラ23は、ジョブバッファ21に保存されたジョブデータをジョブバッファ21から取り出す。そして、H/Wレンダラ23は、取り出したジョブデータについて描画処理を実行して、ページ画像を生成する(ジョブ描画処理を実行する)。H/Wレンダラ23は、生成したページ画像をページバッファ22に格納する。ページバッファ22には、ページ画像(図1中ではPage1)が格納される。ジョブ描画部2は、ページバッファに格納されたページ画像をプリンタエンジンに出力する。本実施形態の情報処理装置の制御方法及びそのコンピュータプログラムは、図1に示す情報処理装置が備える各処理部の機能によって実現される。
【0018】
図2は、ジョブ生成処理部が生成するジョブデータに対応する第1、第2の抽象度を説明する図である。本実施形態において、第1の抽象度は、第2の抽象度よりも、抽象度が高いものとする。図2(A)は、第1の抽象度に対応するジョブデータ形式の例を示す。図2(A)中の301は、ジョブ生成部1に入力される描画命令を示す。描画命令301に従うと、グレーの台形3011、グラデーションの円3012、白の三角形3013の順で3つの図形が描画され、かつ、最上位の三角形3013が透過となる。この描画命令301に従って生成されるジョブデータは、描画図形を直線の線分に分割したセグメント情報、各々の図形の上下関係及び透過・論理演算を表すレベル情報(302乃至304)、及び、各図形の塗りを表す塗り情報(305乃至307)を含む。
【0019】
第1の抽象度に対応するジョブデータ形式では、ジョブ描画部2が、セグメント情報から各線分上のピクセル位置を計算するエッジ・トラッキング処理を行う。また、ジョブ描画部2は、図形間の上下関係及び論理演算の処理を行うレベル処理を行う。その結果、ジョブ生成部1の負荷は小さくなって、ジョブ生成処理が高速化される一方で、ジョブ描画部2の負荷が大きくなってジョブ描画処理が遅くなる。
【0020】
図2(B)は、第2の抽象度に対応するジョブデータ形式の例を示す。図2(B)中の401は、ジョブ生成部1に入力される描画命令を示す。描画命令401に従うと、グラデーションの矩形4011の上に透過のグレーの矩形4012が描画される。描画命令401に従って生成されるジョブデータは、描画開始位置を表すエッジ情報402、各エッジにおける塗り及び塗り間の論理演算を表す論理演算情報403、及び塗り情報404を含む。エッジ情報402は、ピクセル単位での描画開始位置を表すデータである。図中の4021は、背景のエッジ、4022はグレーの矩形のエッジ、4023はグレーの矩形4012とグラデーション矩形4011の透過・重なり部分のエッジ、4024は、グラデーションの矩形の残り部分のエッジをそれぞれ表す。各エッジは、論理演算情報403を参照する。論理演算情報403は、塗り情報404を用いた論理演算(上書き、論理和など)の情報を含む。図中の4031乃至4034が各々の論理演算の情報を示す。例えば、4021のエッジは背景のみの論理演算情報4031を参照し、該論理演算情報は背景の塗り情報(白)4041を参照する。一方、エッジ4023は、グレー、グラデーション、及び背景の3つの要素を用いた論理演算の情報4033を参照する。そして、この論理演算の情報4033は、塗り情報404に含まれる、白4041、グレー4042、及びグラデーション4043を参照する。
【0021】
第2の抽象度に対応するジョブデータ形式では、ジョブ生成部1が、エッジ・トラッキング処理及びレベル処理を実行する。従って、ジョブ生成部1の負荷が大きくなって、ジョブ生成処理が遅くなる一方で、ジョブ描画部2の負荷が小さくなって、ジョブ描画処理が高速化される。
【0022】
図3は、第1の実施の形態におけるジョブ生成処理フローを示す図である。まず、ジョブ生成処理部11が起動し、ジョブ生成処理部11が、1ページ分の描画命令を取得する(ステップS1)。次に、ジョブ生成処理部11が、ステータス管理部13を呼び出して、ステータス管理部13からステータス管理情報を取得する(ステップS2)。続いて、ジョブ生成処理部11が、ステータス管理情報に含まれるジョブキュー12の負荷状態を示す情報に基づいて、ジョブキュー12がFullであるかを判断する(ステップS3)。ジョブ生成処理部11が、ジョブキュー12がFullであると判断した場合は、ジョブ生成処理部11が、第2の抽象度を選択し、描画命令に基づいて第2の抽象度に対応する第2の中間データ形式のジョブデータを生成する(ステップS4)。そして、ジョブ生成処理部11は、生成したジョブデータをジョブキュー12の終端に登録する(ステップS5)。続いて、ジョブ生成処理部11が、全ページのジョブ生成処理が終了したかを判断する(ステップS6)。ジョブ生成処理部11が、全ページのジョブ生成処理が終了したと判断した場合は、処理を終了する。ジョブ生成処理部11が、ジョブ生成処理が終了していないページがあると判断した場合は、上記ステップS1に戻る。
【0023】
上記ステップS3において、ジョブ生成処理部11が、ジョブキュー12がFullでない、すなわち、空きがあると判断した場合は、ジョブ生成処理部11は、以下の処理を行う。ジョブ生成処理部11は、ステータス管理情報に基づいて、ジョブ描画部2の状態がBusyであるかを判断する(ステップS7)。ジョブ生成処理部11が、ジョブ描画部2の状態がBusyであると判断した場合は、上記ステップS4に進む。ジョブ生成処理部11が、ジョブ描画部2の状態がBusyでないと判断した場合は、ジョブ生成処理部11は、以下の処理を行う。すなわち、ジョブ生成処理部11は、第1の抽象度を選択し、描画命令に基づいて第1の抽象度に対応する第1の中間データ形式のジョブデータを生成し(ステップS8)、上記ステップS5に進む。
【0024】
すなわち、ジョブ生成処理部11は、ジョブキュー12の状態がFullでなく(ステップS3でNo)、かつ、ジョブ描画部2の状態がBusyである場合に(ステップS7でYes)、以下の処理を行う。ジョブ生成処理部11は、生成するジョブデータに対応する抽象度として、第1、第2の抽象度のうち抽象度の低い方の抽象度である第2の抽象度を選択する(ステップS4)。その結果、ページ画像の生成処理の負荷が軽くなる。また、ジョブ生成処理部11は、ジョブキュー12の状態がFullでなく(ステップS3でNo)、かつ、ジョブ描画部2の状態がBusyでない場合に(ステップS7でNo)、以下の処理を行う。ジョブ生成処理部11は、生成するジョブデータに対応する抽象度として、第1、第2の抽象度のうち抽象度の高い方の抽象度である第1の抽象度を選択する(ステップS8)。その結果、ジョブデータの生成処理の負荷が軽くなる。従って、図3を参照して説明した第1の実施形態におけるジョブ生成処理によれば、描画命令に基づくジョブデータの生成処理と、ジョブデータに基づくページ画像の生成処理との間の適切な負荷分散を行うことが可能となる。
【0025】
図4は、第1の実施の形態におけるジョブキュー管理処理フローを示す図である。ジョブキュー管理処理は、図3を参照して説明したジョブ生成処理とは独立したスレッドとして実行され、ジョブキューの負荷状態を監視する処理である。ジョブキュー管理処理は、ジョブ生成処理部11によって実行される。まず、ジョブ生成処理部11が、ジョブキュー12がEmpty(空)かを判断する(ステップS1)。ジョブ生成処理部11が、ジョブキュー12が空である、すなわち、ジョブキュー12の中にジョブデータが存在していないと判断した場合は、ステップS11に戻る。ジョブ生成処理部11が、ジョブキュー12が空でない、すなわち、ジョブキュー12の中にジョブデータが存在していると判断した場合は、ジョブ生成処理部11は、ジョブ終了かを判断する(ステップS12)。ステップS12においては、ジョブ生成処理部11は、ジョブ生成処理部11に入力されるジョブが印刷の終了を示す終了ジョブであるかを判断し、ジョブが終了ジョブである場合には、ジョブ終了と判断する。
【0026】
ジョブ生成処理部11が、ジョブ終了であると判断した場合には、ジョブ生成処理部11は、ジョブキュー管理処理を終了する。ジョブ生成処理部11が、ジョブ終了でないと判断した場合には、ジョブ生成処理部11は、ジョブ描画部2がBusyであるかを判断する(ステップS13)。ジョブ生成処理部11が、ジョブ描画部2がBusyであると判断した場合は、上記ステップS13に戻る。ジョブ生成処理部11が、ジョブ描画部2がBusyでないと判断した場合は、ジョブ生成処理部11は、ジョブキュー12に登録されているジョブデータのうち、先頭のジョブデータを取り出してジョブ描画部2に出力する(ステップS14)。そして、ジョブ生成処理部11が、上記ステップS14において出力したジョブデータをジョブキュー12から削除する(ステップS15)。
【0027】
図5は、第1の実施の形態におけるジョブデータの受信処理フローを示す図である。ジョブ描画部2は以下のようにしてジョブデータの受信処理を実行する。まず、ジョブ描画部2は、ジョブバッファ21がFullであるかを判断する(ステップS21)。ジョブ描画部2は、ジョブバッファ21がFullでないと判断した場合は、ジョブ描画部2の状態をReadyに設定する(ステップS22)。続いて、ジョブ描画部2は、ジョブ生成部1から受信したジョブデータをジョブバッファ21に格納して(ステップS23)、ステップS21に戻る。上記ステップS21において、ジョブ描画部2が、ジョブバッファ21がFullであると判断した場合は、ジョブ描画部2は、H/Wレンダラ23が描画中であるか判断する(ステップS24)。ジョブ描画部2が、H/Wレンダラ23が描画中であると判断した場合、ジョブ描画部2は、ジョブ描画部2の状態をBusyに設定する(ステップS25)。ジョブ描画部2が、H/Wレンダラが描画中でないと判断した場合、ジョブ描画部2は、ジョブ描画部2の状態をReadyに設定し(ステップS26)、ステップS21に戻る。図5に示す処理フローを通じて設定されたジョブ描画部2の状態は、ステータス管理部13が取得するステータス管理情報に反映される。
【0028】
図6は、第1の実施の形態におけるジョブ描画処理フローを示す図である。ジョブ描画処理は、図5を参照して説明したジョブデータの受信処理とは独立して実行される。まず、ジョブ描画部2が、ジョブバッファ21にジョブデータが存在するかを判断する(ステップS31)。ジョブ描画部2が、ジョブバッファ21にジョブデータが存在しないと判断した場合は、上記ステップS31に戻る。ジョブ描画部2が、ジョブバッファ21にジョブデータが存在すると判断した場合は、ジョブ描画部2が、ジョブバッファ21内のジョブデータをH/Wレンダラ23に渡す(ステップS32)。続いて、ジョブ描画部2が、H/Wレンダラ23によるジョブデータの描画処理、すなわちページ画像の生成処理が完了したかを判断する(ステップS33)。ジョブ描画部2が、ジョブデータの描画処理が完了していないと判断した場合は、上記ステップS33に戻る。ジョブ描画部2が、ジョブデータの描画処理が完了したと判断した場合は、ジョブ描画部2が、生成されたページ画像をページバッファ22に格納する(ステップS34)。そして、ジョブ描画部2が、ページバッファ22に格納したページ画像をジョブバッファ21から削除して(ステップS35)、上記ステップS31に戻る。
【0029】
図7は、第1の実施形態の情報処理装置の適用の効果を説明する図である。図中の1001乃至1005は、ジョブ生成処理部11が生成するジョブデータを示す。また、図中の1006乃至1009は、各々のジョブデータについてのジョブ描画処理に掛かる時間を示す。第1の実施形態の情報処理装置が備えるジョブ生成部1は、例えば、Job3B、Job4Bの生成時に、ステータス管理情報に基づいて、ジョブ描画部2がBusyであると判断する。従ってジョブ生成部1は、Job3B、Job4Bを、抽象度の低い第2の抽象度で生成する。その結果、ジョブ描画部2によるJob3B、Job4Bについてのジョブ描画処理が高速化され、トータルでの描画処理時間が短くなる。
【0030】
図8は、第2の実施の形態の情報処理装置の構成を示す図である。図8に示す情報処理装置が備える処理部のうち、図1に示す情報処理装置が備える処理部と同一の符号のものは、図1に示す情報処理装置が備える処理部と同様である。図8に示す情報処理装置は、ジョブ生成部3とジョブ描画部2とを備える。ジョブ生成部3は、ジョブキュー12、ステータス管理部13、ジョブ生成処理部14、CPU負荷管理部15を備える。
【0031】
ジョブ生成処理部14は、ジョブ生成部1に入力された描画命令を受け取る。また、ジョブ生成処理部14は、ステータス管理部13から、前述したステータス管理情報を受け取る。また、ジョブ生成処理部14は、CPU負荷管理部15からCPUの負荷状態を示す情報を受け取る。CPUの負荷状態を示す情報は、例えば、CPU負荷率である。ジョブ生成処理部14は、ステータス管理情報とCPUの負荷状態を示す情報とに基づいて、ジョブデータについての第1、第2の抽象度のうち、1つの抽象度を選択する。そして、ジョブ生成処理部14は、描画命令に基づいて、上記選択した抽象度に対応するジョブデータを生成する。ジョブ生成処理部14が、更に、情報処理装置の動作モードが印刷処理を優先するモードであるかを判断し、該判断結果に基づいて、ジョブデータについての抽象度を選択するようにしてもよい。なお、情報処理装置の動作モードは、例えば、情報処理装置のユーザの操作入力に従って情報処理装置が予め設定する。CPU負荷管理部15は、CPUの負荷状態を示す情報を取得し、取得した情報をジョブ生成処理部14に渡す。CPU負荷管理部15は、例えば、情報処理装置上で動作するOS(Operating System)からCPU負荷率を取得する。
【0032】
図9は、第2の実施の形態におけるジョブ生成処理フローを示す図である。図9に示すステップS45乃至S51は、図3に示すステップS3乃至S8と同様であるので、ステップS45乃至S51についての説明は省略する。まず、ジョブ生成処理部11が、1ページ分の描画命令を取得する(ステップS41)。次に、ジョブ生成処理部11が、CPU負荷管理部15を呼び出して、CPU負荷管理部15からCPU負荷率を取得する(ステップS42)。続いて、ジョブ生成処理部11が、情報処理装置が印刷処理を優先する動作モードであるかを判断する(ステップS43)。ジョブ生成処理部11が、情報処理装置が印刷処理を優先する動作モードであると判断した場合は、ステップS45に進む。ジョブ生成処理部11が、情報処理装置が印刷処理を優先する動作モードでない、すなわち、印刷処理以外の処理を行うアプリケーションの実行を優先する動作モードであると判断した場合は、ジョブ生成処理部11は、以下の処理を実行する。すなわち、ジョブ生成処理部11は、CPUが高負荷か、すなわち、CPU負荷率が所定の閾値を超えるかを判断する(ステップS44)。ジョブ生成処理部11が、CPU負荷率が所定の閾値を超えると判断した場合は、ステップS51に進む。ジョブ生成処理部11が、CPU負荷率が所定の閾値を超えないと判断した場合は、ステップS45に進む。
【0033】
なお、第2の実施形態のジョブキュー管理処理、ジョブデータの受信処理、ジョブ描画処理は、それぞれ、図4、図5、図6を参照して説明した処理と同様である。第2の実施形態の情報処理装置によれば、印刷処理以外の処理を行うアプリケーションの動作を優先する動作モードの場合に、ジョブ生成処理の負荷を軽減し、より多くのCPU時間を印刷処理以外の処理を行うアプリケーションに割り当てることが可能になる。一方、印刷処理を優先する動作モードの場合には、第1の実施形態の情報処理装置と同様に、描画命令に基づくジョブデータの生成処理と、ジョブデータに基づくページ画像の生成処理との間の適切な負荷分散を行うことが可能となる。
【0034】
次に、本発明の第3の実施形態について説明する。第3の実施形態の情報処理装置は、図8に示す第2の実施形態の情報処理装置と同様の構成を備える。そして、第3の実施形態の情報処理装置においては、ジョブ生成処理部14が、更に、CPU負荷管理部15から取得したCPU負荷率に基づいて、ジョブキュー12に格納されているジョブデータの抽象度を変更する処理を行う。
【0035】
図10は、第3の実施の形態におけるジョブキュー管理処理フローを示す図である。図10中に示すステップS61乃至S65は、図4中に示すステップS11乃至S15と同様であるので、ステップS61乃至S65についての説明は省略する。図10のステップS63において、ジョブ生成処理部11が、ジョブ描画部2がBusyであると判断した場合は、ステップS66に進む。続いて、ジョブ生成処理部11が、CPUが低負荷か、すなわち、CPU負荷率が所定の閾値以下であるかを判断する(ステップS66)。ジョブ生成処理部11が、CPU負荷率が所定の閾値以下でないと判断した場合は、ステップS63に戻る。ジョブ生成処理部11が、CPU負荷率が所定の閾値以下であると判断した場合は、ステップS67に進む。
【0036】
次に、ジョブ生成処理部11が、ジョブキュー12中の終端に登録されているジョブデータが第1の抽象度に対応するかを判断する(ステップS67)。ジョブ生成処理部11が、ジョブキュー12中の終端に登録されているジョブデータが第1の抽象度に対応しないと判断した場合は、ステップS70に進む。ジョブ生成処理部11が、ジョブキュー12中の終端に登録されているジョブデータが第1の抽象度に対応すると判断した場合は、ジョブ生成処理部11は、このジョブデータを第2の抽象度に対応するジョブデータに変換する(ステップS68)。そして、ジョブ生成処理部11が、変換後のジョブデータをジョブキュー12に戻す(ステップS69)。
【0037】
続いて、ジョブ生成処理部11が、ジョブキュー12内の次のジョブデータを検索する(ステップS70)。そして、ジョブ生成処理部11が、ジョブキュー12内にジョブデータが残っているかを判断する(ステップS71)。ジョブ生成処理部11が、ジョブキュー12内にジョブデータが残っていないと判断した場合は、ステップS63に戻る。ジョブ生成処理部11が、ジョブキュー12内にジョブデータが残っていると判断した場合は、ステップS67に戻る。
【0038】
なお、第3の実施形態のジョブ生成処理は、図9を参照して説明した処理と同様である。また、第3の実施形態のジョブデータの受信処理、ジョブ描画処理は、それぞれ、図5、図6を参照して説明した処理と同様である。第3の実施形態によれば、一旦ジョブデータを生成した後であっても、その後ジョブ生成処理の負荷が軽くなった時点(CPUが低負荷になった時点)で、ジョブキュー12中のジョブデータを抽象度の低い第2の抽象度に対応するジョブデータに変換できる。その結果、ジョブ描画処理の負荷を低減することが可能になる。
【0039】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0040】
1 ジョブ生成部
2 ジョブ描画部
11 ジョブ生成処理部
12 ジョブキュー
13 ステータス管理部
21 ジョブバッファ
22 ページバッファ
23 H/Wレンダラ
【特許請求の範囲】
【請求項1】
入力される描画命令に基づいて中間データを生成して所定の記憶手段に格納する中間データ生成手段と、
前記記憶手段に格納された中間データに基づいて、印刷対象のページ画像を生成する画像生成手段とを備え、
前記中間データ生成手段は、前記記憶手段の負荷状態と前記画像生成手段の負荷状態とに基づいて、前記中間データについての第1、第2の抽象度のうち、1つの抽象度を選択し、選択した抽象度に対応する中間データを生成する
ことを特徴とする情報処理装置。
【請求項2】
前記中間データ生成手段は、前記記憶手段の負荷状態がフル状態でなく、かつ、前記画像生成手段の負荷状態がビジー状態である場合に、前記生成する中間データに対応する抽象度として前記第1、第2の抽象度のうち抽象度の低い方の抽象度を選択する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記中間データ生成手段は、前記記憶手段の負荷状態がフル状態でなく、かつ、前記画像生成手段の負荷状態がビジー状態でない場合に、前記生成する中間データに対応する抽象度として前記第1、第2の抽象度のうち抽象度の高い方の抽象度を選択する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記中間データ生成手段は、更に、前記中間データ生成手段による前記中間データの生成処理を制御する制御装置の負荷状態を取得し、該取得された制御装置の負荷状態に基づいて、前記中間データに対応する抽象度を選択する
ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記中間データ生成手段は、更に、前記情報処理装置の動作モードが印刷処理を優先するモードであるかを判断し、該判断結果に基づいて、前記中間データに対応する抽象度を選択する
ことを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記中間データ生成手段は、更に、前記取得された制御装置の負荷状態に基づいて、前記記憶手段に格納されている中間データの抽象度を変更する
ことを特徴とする請求項4に記載の情報処理装置。
【請求項7】
情報処理装置が備える中間データ生成手段が、入力される描画命令に基づいて中間データを生成して所定の記憶手段に格納し、
情報処理装置が備える画像生成手段が、前記記憶手段に格納された中間データに基づいて、印刷対象のページ画像を生成し、
前記中間データ生成手段が、前記記憶手段の負荷状態と前記画像生成手段の負荷状態とに基づいて、前記中間データについての第1、第2の抽象度のうち、1つの抽象度を選択し、選択した抽象度に対応する中間データを生成する
ことを特徴とする情報処理装置の制御方法。
【請求項8】
請求項7に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項1】
入力される描画命令に基づいて中間データを生成して所定の記憶手段に格納する中間データ生成手段と、
前記記憶手段に格納された中間データに基づいて、印刷対象のページ画像を生成する画像生成手段とを備え、
前記中間データ生成手段は、前記記憶手段の負荷状態と前記画像生成手段の負荷状態とに基づいて、前記中間データについての第1、第2の抽象度のうち、1つの抽象度を選択し、選択した抽象度に対応する中間データを生成する
ことを特徴とする情報処理装置。
【請求項2】
前記中間データ生成手段は、前記記憶手段の負荷状態がフル状態でなく、かつ、前記画像生成手段の負荷状態がビジー状態である場合に、前記生成する中間データに対応する抽象度として前記第1、第2の抽象度のうち抽象度の低い方の抽象度を選択する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記中間データ生成手段は、前記記憶手段の負荷状態がフル状態でなく、かつ、前記画像生成手段の負荷状態がビジー状態でない場合に、前記生成する中間データに対応する抽象度として前記第1、第2の抽象度のうち抽象度の高い方の抽象度を選択する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記中間データ生成手段は、更に、前記中間データ生成手段による前記中間データの生成処理を制御する制御装置の負荷状態を取得し、該取得された制御装置の負荷状態に基づいて、前記中間データに対応する抽象度を選択する
ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記中間データ生成手段は、更に、前記情報処理装置の動作モードが印刷処理を優先するモードであるかを判断し、該判断結果に基づいて、前記中間データに対応する抽象度を選択する
ことを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記中間データ生成手段は、更に、前記取得された制御装置の負荷状態に基づいて、前記記憶手段に格納されている中間データの抽象度を変更する
ことを特徴とする請求項4に記載の情報処理装置。
【請求項7】
情報処理装置が備える中間データ生成手段が、入力される描画命令に基づいて中間データを生成して所定の記憶手段に格納し、
情報処理装置が備える画像生成手段が、前記記憶手段に格納された中間データに基づいて、印刷対象のページ画像を生成し、
前記中間データ生成手段が、前記記憶手段の負荷状態と前記画像生成手段の負荷状態とに基づいて、前記中間データについての第1、第2の抽象度のうち、1つの抽象度を選択し、選択した抽象度に対応する中間データを生成する
ことを特徴とする情報処理装置の制御方法。
【請求項8】
請求項7に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−95845(P2011−95845A)
【公開日】平成23年5月12日(2011.5.12)
【国際特許分類】
【出願番号】特願2009−246845(P2009−246845)
【出願日】平成21年10月27日(2009.10.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年5月12日(2011.5.12)
【国際特許分類】
【出願日】平成21年10月27日(2009.10.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]