説明

データ処理装置、データ処理装置の制御方法、記憶媒体及びプログラム

【課題】 複数のデータ処理部を用いて、複数のジョブを並行して処理する場合に、各処理部におけるデータ処理の負荷が分散するように、処理するジョブのデータ形式を決定する。
【解決手段】
ジョブのデータを、複数のデータ処理部に処理させるデータ処理手段と、当該データ処理手段によって第1のジョブのデータを、第1のデータ処理部を用いた処理よりも第2のデータ処理部を用いた処理に長い時間を要する第1のデータ形式のデータを用いて処理させるか、第2のデータ処理部を用いた処理よりも第1のデータ処理部を用いた処理に長い時間を要する第2のデータ形式のデータを用いて処理させるかを決定する決定手段とを備え、決定手段は、第1のジョブと並行して実行する第2のジョブのデータが第1のデータ処理部を用いた処理と第2のデータ処理部を用いた処理のいずれに、より長い時間を要するデータであるかに基づいて、上述した決定を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、データ処理装置の制御方法、記憶媒体及びプログラムに関するものである。
【0002】
近年、原稿画像から読み取った画像データに基づいて処理を行うデータ処理装置が使用されている。この種のデータ処理装置では原稿の画像情報がスキャナ等により読み込まれ、その原稿の画像データが一旦、メモリに蓄えられる。また、ネットワークを通じて各クライアントより送信されてきたプリントジョブの画像データがメモリに蓄えられる。
【0003】
そして、該メモリに蓄えられた画像データは、ユーザの要求に応じて画像の縮小、拡大及び回転などの画像処理が施される。これにより、画像処理された画像データに基づいてその原稿の画像を出力することができる。
【0004】
ところで、この種のデータ処理装置では、メモリを用いて、画像データを効率良くデータ転送する技術や、また送信されてきた印刷データにレンダリング処理を行い展開する技術が必要になる。
【0005】
図12は、この種のメモリを用いた従来のデータ処理装置10000の構成例を示すブロック図である。
【0006】
このデータ処理装置10000は、図2に示すCPUバス1を有している。このCPUバス1には、システム制御部2、メモリ制御部3、ダイレクトメモリアクセスコントローラ(以下DMACという)4、画像読込部5、画像形成部6、及び画像展開部7、通信部8が接続されている。
【0007】
このCPUバス1に接続されたシステム制御部2はCPU2a,ROM2b,RAM2c及び操作部2dを有している。CPU2aはデータ処理装置10000の全体制御を行い、その制御プログラムはROM2bに格納されている。RAM2cはCPU2aが演算を行うときに、一時的に使用されるメモリであり、制御プログラムの実行上必要になるものである。
【0008】
例えば、画像読込部5、画像展開部7及び画像形成部6に起動指示などの制御命令が出力されたとき、CPU2aによってRAM2cにその制御命令が書き込まれる。その後、CPU2aによって画像データの書き込み終了通知などがあった場合にこの制御命令に対するものかが照合される。
【0009】
また、操作部2dはユーザとデータ処理装置10000との間のインタフェースに必要なものであり、操作部2dの指示によりCPU2aは所定のデータ処理を実行する。
【0010】
CPUバス1に接続されたメモリコントローラ3aは複数ページ分の容量をもつ比較的大きな容量の画像メモリ3bとのインタフェースで、メモリバス3cにより接続されている。
【0011】
また、図示しないが符号化処理を行うことにより符号データの蓄積も行われる。DMAC4はCPU2aの介在なしに各デバイス間のデータ転送を実行するもので、CPU2aに比べ高速にデータ転送を行うことができる。
【0012】
このCPUバス1に接続された画像読込部5はスキャナ用インタフェース5a、スキャナ部200及びページメモリ5bを有している。
【0013】
スキャナ用インタフェース5aはスキャナ部200の駆動制御及びページメモリ5bにおける画像データ(DATA)の書き込み読み出し制御を行うものである。
【0014】
ページメモリ5bはスキャナ部200からの画像データを1ページ分格納するメモリで、スキャナ部200とCPU2aのデータ転送速度の整合及びCPUバス1の使用効率の向上のため必要になるものである。
【0015】
また、CPUバス1に接続された画像展開部7は、ネットワークとのインタフェースの役割を担う通信部8を介してネットワーク上の外部装置よりプリントジョブを受信する。そして、画像展開部7内にあるレンダリング部7aにてCPUバス1によって接続されている各処理部にて扱えるデータに、併設されているワークメモリ7bを使用しながらレンダリングし、展開処理を実行する。
【0016】
更に、CPUバス1に接続された画像形成部6はプリンタ用インタフェース6a,ページメモリ6b及びプリンタ部100を有している。
【0017】
プリンタ用インタフェース6aは、プリンタ部100の駆動制御及びページメモリ6bにおける画像データの書き込み読み出し制御を行うものである。
【0018】
ページメモリ6bは、プリンタ部100への書き込みデータを1ページ分格納するメモリで、プリンタ部100とCPU2aのデータ転送速度の整合及びCPUバス1の使用効率の向上のため必要になるものである。
【0019】
次に、データ処理装置10000の動作を説明する。
【0020】
始めに、1枚の原稿をコピーする際のコピー動作について説明する。
【0021】
まず、操作部2dからコピーの指示を受けると、CPU2aから画像読込部5へスキャナ駆動が指示される。この指示を受けたスキャナ用インタフェース5aではスキャナ部200が駆動されると共に、スキャナ部200から原稿の画像データが取得され、ページメモリ5bに格納される。1ページ分の画像データがページメモリ5bに格納されると、スキャナ用インタフェース5aはCPU2aに対して画像データの読み取り終了を通知する。
【0022】
この通知を受けたCPU2aからDMAC4に対して、スキャナ用インタフェース5aからプリンタ用インタフェース6aへ画像データを転送するように指示が与えられる。
【0023】
そして、1ページ分の画像データがスキャナ用のページメモリ5bからプリンタ用のページメモリ6bに転送される。この1ページの画像データの転送が終わると、DMAC4からCPU2aに対して、転送終了が通知される。
【0024】
この通知を受けたCPU2aから画像形成部6へプリンタ駆動が指示される。この指示を受けたプリンタ用インタフェース6aによって、ページメモリ6bから画像データが読み出され、その画像データがプリンタ部100に出力される。プリンタ部100では1ページの画像データに基づいて、原稿の画像をシートに複写することができる。
【0025】
次に、複数枚の原稿を複数部コピーするときの動作について説明する。
【0026】
まず、操作部2dからの指示を受けたCPU2aによって画像読込部5に対してスキャナ駆動が指示される。この指示を受けたスキャナ用インタフェース5aでは、スキャナ部200によって取得された1ページ分の画像データがページメモリ5bに格納される。その後、スキャナ用インタフェース5aからCPU2aへ1ページ分の画像データの読み取り終了が通知される。
【0027】
この通知を受けたCPU2aからDMAC4にデータ転送が指示されるので、ページメモリ5bに格納された画像データがメモリコントローラ3aを介し、画像メモリ3bに順次書き込まれる。
【0028】
この一連の動作が原稿枚数分だけ繰り返され、全ての画像データが画像メモリ3bに蓄積される。
【0029】
その後、蓄積された画像データはCPU2aの指示により画像メモリ3bから順次読み出され、プリンタ用インタフェース6aに転送される。
【0030】
このとき、DMAC4により1ページ分の画像データが画像メモリ3bからプリンタ用のページメモリ6bに格納されると、CPU2aからプリンタ用インタフェース6aに対してプリンタ起動が指示される。
【0031】
この指示を受けたプリンタ用インタフェース6aによって1ページ分の画像データがプリンタ部100に転送されると、CPU2aに対して1ページ目のデータの転送終了が通知される。この通知を受けたCPU2aからDMAC4へ次ページの画像データの転送が指示され、その印刷が開始される。
【0032】
この一連の動作がページ数分だけ繰り返されることによって、最初の1部のコピーが完了する。
【0033】
この例ではCPU2aに対して複数部のコピーが指示されているので、DMAC4に対して、再度1ページ目の画像データを画像メモリ3bからプリンタ用インタフェース6aへ転送するように指示される。これ以降は、同一動作を設定された部数分だけ繰り返すことにより、複数部のコピーを行うことができる。
【0034】
次に、ネットワークを介して受信したプリントジョブが有する、複数ページのプリントデータを複数部プリントするときの動作について説明する。
【0035】
まず、外部ネットワークのインタフェースである通信部8より、クライアント端末等より送信されてくるプリントジョブに含まれるコードデータを受信する。受信したコードデータはCPUバス1を介して一旦、画像メモリ3bへ順次格納していく。
【0036】
画像メモリ3bに1ページ分のコードデータが受信された時点で、逐次画像メモリ3bよりコードデータを画像展開部7のレンダリング部7aへ転送する。
【0037】
レンダリング部7aは、当該レンダリング部7aに併設されているワークメモリ7bを使用し、コードデータを各処理部で扱える画像データに展開し、ワークメモリ7bに書き込んでいく。その後レンダリング部7aからCPU2aへ1ページ分のプリントジョブの展開終了が通知される。
【0038】
こうして展開された画像データはコピー動作時と同様に、CPU2aからDMAC4にデータ転送が指示されるので、ワークメモリ7bに格納された画像データが画像メモリ3bに順次書き込まれる。
【0039】
この一連の動作がプリントジョブのページ分だけ繰り返され、全てのページの画像データが画像メモリ3bに蓄積される。
【0040】
その後、画像メモリ3bに蓄積された画像データはCPU2aの指示により画像メモリ3bから順次読み出され、プリンタ用インタフェース6aに転送される。
【0041】
このとき、DMAC4により1ページ分の画像データが画像メモリ3bからプリンタ用のページメモリ6dに格納されると、CPU2aからプリンタ用インタフェース6aに対してプリンタ起動が指示される。
【0042】
この指示を受けたプリンタ用インタフェース6aによって1ページ分の画像データがプリンタ部100に転送されると、CPU2aに対して1ページ目のデータの転送終了が通知される。この通知を受けたCPU2aからDMAC4へ次ページの画像データの転送が指示され、その印刷が開始される。
【0043】
さらにコピー動作時と同様に、一連の動作がページ数分だけ繰り返されることによって、最初の1部のプリントが完了する。
【0044】
ここでは、CPU2aに対して複数部のプリントが指示されているので、DMAC4に対して、再度1ページ目の画像データを画像メモリ3bからプリンタ用インタフェース6aへ転送するように指示される。これ以降は、同一動作を設定された部数分だけ繰り返すことにより、複数部のプリントを行うことができる。
【0045】
一方、近年ではレンダリング技術の向上により、上記のコードデータをレンダリング部7aで展開する時間が短くなっている。したがって、上記従来のように複数部プリントする場合において、2部目以降は画像メモリ3bに展開され格納されている画像データを読み出して使用する処理以外にも処理方法がある。例えば、ページ毎のコードデータを展開するのに要した時間が所定時間(例えば画像形成部6によるプリントに必要な時間)より小さい場合がる。このような場合には、画像展開部7で展開されていない、サイズの小さいコードデータを2部目以降のデータ用に使用する技術が知られている(特許文献1参照)。
【0046】
また、プリントジョブの時に最初に通信部8からCPUバス1を介して逐次画像メモリ3bに書き込まれるコードデータは各ページに存在する各オブジェクトの描画命令をリスト化したものである。従来は、プリントジョブデータを、レンダリング部7aで展開した後の画像データとして保持しておき、プリント時には、展開した後の画像データを用いてプリントしていた。しかし、上述したコードデータは、オブジェクト毎の編集(回転、変倍等)が容易であることから、データ処理装置10000で、展開した後の画像データと、コードデータとを合わせて保持しておくことも考えられている。
【特許文献1】特開2003−182164号公報
【発明の開示】
【発明が解決しようとする課題】
【0047】
また、上記のように構成されたデータ処理装置の中では、複写機能に基づくコピー動作やプリント機能に基づくプリント動作の実行要求が同時に発生する場合がある。
【0048】
この場合に、画像メモリ3bでは、2つのリード/ライト動作(読出処理と書込処理)が発生する。1つは、コピー動作における画像読込部5より送信されてきた画像データの画像メモリ3bにおけるリード/ライト動作である。もう1つは、プリント動作における画像展開部7より展開された画像データのリード/ライト動作である。このような、2つのリード/ライト動作を同時に行う場合、画像メモリ3bでのデータ転送をそれぞれメモリコントローラ3aで時分割に処理しなければならない状態となる。
【0049】
この結果、コピー動作やプリント動作に対する各々のデータ転送速度を低下させてしまい、両方の動作のパフォーマンスが落ちる場合があった。
【0050】
また、例えば画像メモリ3bに保存してある展開前のコードデータのプレビュー動作の実行要求と上述した通常のプリント動作が同時に発生する場合があった。
【0051】
この場合には、両動作ともに画像展開部7内のレンダリング部7aのレンダリング処理とワークメモリ7bのリード/ライト動作が必要であり、画像展開部7は、これらの動作を時系列に処理しなくてはならない。
【0052】
従って、プリント動作中にプレビュー動作の要求が発生した場合は、先に実行されているプリント動作が終了しなければプレビュー動作ができない等の場合も生じる。
【0053】
本発明は、上記の課題を解決するためになされたものである。本発明の目的は、複数のデータ処理部を用いて、複数のジョブを並行して処理する場合に、各処理部におけるデータ処理の負荷が分散するように、処理するジョブのデータ形式を決定する仕組みを提供することである。
【課題を解決するための手段】
【0054】
上記目的を達成する本発明のデータ処理装置は以下に示す構成を備える。
【0055】
ジョブのデータを、複数のデータ処理部に処理させるデータ処理手段と、当該データ処理手段によって第1のジョブのデータを、第1のデータ処理部を用いた処理よりも第2のデータ処理部を用いた処理に長い時間を要する第1のデータ形式のデータを用いて処理させるか、第2のデータ処理部を用いた処理よりも第1のデータ処理部を用いた処理に長い時間を要する第2のデータ形式のデータを用いて処理させるかを決定する決定手段とを備え、決定手段は、第1のジョブと並行して実行する第2のジョブのデータが第1のデータ処理部を用いた処理と第2のデータ処理部を用いた処理のいずれに、より長い時間を要するデータであるかに基づいて、上述した決定を行う。
【発明の効果】
【0056】
本発明によれば、複数のデータ処理部を用いて、複数のジョブを並行して処理する場合に、各処理部におけるデータ処理の負荷が分散するように、処理するジョブのデータ形式を決定することができる。
【発明を実施するための最良の形態】
【0057】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【0058】
<システム構成の説明>
〔第1実施形態〕
図1は、本実施形態を示すデータ処理装置の一例である画像処理装置を示す断面図である。本例は、MultiFunctionPeripheral(MFP)であって、スキャナ部と、プリンタ部とが通信してスキャン機能、コピー機能、プリント機能等を並列的に処理可能に構成されている。なお、プリント機能には、通信インタフェースを介して、情報処理装置から印刷ジョブを解析して、印刷ジョブに含まれるデータをレンダリングする処理が含まれる。
【0059】
図1において、200はスキャナ部である。201は原稿積載台ガラス(プラテンガラス)である。202は原稿走査ユニットであり、不図示の原稿照明ランプ、走査ミラー等で構成される。スキャナ部200は画像取り込み処理が開始されると、原稿走査ユニット202が所定方向に往復走査される。この間、原稿の反射光は、走査ミラー204〜206を介してレンズ207を透過してイメージセンサ部208内のCCDセンサに結像する。
【0060】
なお、スキャナ部200上には、ADF(自動原稿送り器)もしくは圧板カバーが乗せられる(不図示)。
【0061】
プリンタ部100は大別して、画像形成部10(4つの画像形成部Y,M,C,Kが並設されており、その構成は同一である。)、給紙ユニット20、中間転写ユニット30、定着ユニット40及び制御ユニット(不図示)から構成される。
【0062】
さらに、個々のユニットについて詳しく説明する。
【0063】
画像形成部10は、次に述べるような構成になっている。像担持体としての感光ドラム11Y,11M,11C,11Kがその中心で軸支され、矢印方向に回転駆動される。
【0064】
感光ドラム11Y,11M,11C,11Kの外周面に対向してその回転方向に一次帯電器12Y,12M,12C,12K、光学系13Y,13M,13C,13K、現像装置14Y,14M,14C,14Kが配置されている。
【0065】
一次帯電器12Y,12M,12C,12Kにおいて感光ドラム11Y,11M,11C,11Kの表面に均一な帯電量の電荷を与える。次いで光学系13Y,13M,13C,13Kにより、記録画像信号に応じて変調した例えばレーザービームなどの光線を感光ドラム11Y,11M,11C,11K上に露光させることによって、そこに静電潜像を形成する。
【0066】
さらに、イエロー(Y),マゼンタ(Y),シアン(C),ブラック(K)といった4色の現像剤(トナー)をそれぞれ収納した現像装置14Y,14M,14C,14Kによって上記静電潜像を顕像化する。顕像化された可視画像を中間転写体に転写する画像転写領域Ty,Tm,Tc,Tkの下流側では、クリーニング装置15Y,15M,15C,15Kにより転写ベルト31に転写されずに感光ドラム11Y,11M,11C,11K上に残されたトナーを掻き落とす。それによってドラム表面の清掃を行う。以上に示したプロセスにより、各トナーによる画像形成が順次行われる。なお、転写ベルト31はローラ32,33,34により回動される。
【0067】
給紙ユニット20は、シートPを収納するためのカセット21a、21bおよび手差しトレイ27を有する。また、給紙ユニット20は、カセット21a、21b内もしくは手差しトレイ27よりシートPを一枚ずつ送り出すためのピックアップローラ22a、22b、26を有する。さらに、給紙ユニット20は、各ピックアップローラ22a、22b、26から送り出されたシートPをレジストローラ25a,25bまで搬送するための給紙ローラ対23及び給紙ガイド24を有する。また、給紙ユニット20は、画像形成部10の画像形成タイミングに合わせてシートPを二次転写領域Teへ送り出すためのレジストローラ25a,25bを有する。
【0068】
制御ユニットは、上記各ユニット内の機構の動作を制御するための制御基板(不図示)や、モータドライブ基板(不図示)などから成る。
【0069】
定着ユニット40は、二次転写領域Teにて転写ローラ36により転写された画像を載せたシートPを加熱・加圧することで画像を定着させる。このように画像が定着されたシートPは排出ローラ45により排出されて画像形成動作を終了する。なお、両面ユニットを備える場合には、再給送搬送路を介して、シートを反転して再給紙される。
【0070】
図2は、本実施形態を示す画像処理装置2000の構成を説明するブロック図である。
【0071】
図2において、画像処理装置2000はCPUバス1を有している。このCPUバス1には、システム制御部2、メモリ制御部3、ダイレクトメモリアクセスコントローラ(以下単にDMACという)4、画像読込部5、画像形成部6、及び画像展開部7、通信部8、データ選択部9とが接続されている。
【0072】
このCPUバス1に接続されたシステム制御部2はCPU2a,ROM2b,RAM2c及び操作部2dを有している。CPU2aは上述した複合機1000の全体制御を行うICで、その制御プログラムはROM2bに格納されている。RAM2cはCPU2aが演算を行うときに、一時的に使用されるメモリで、制御プログラムの実行上必要になるものである。
【0073】
例えば、画像読込部5、画像形成部6及び画像展開部7に起動指示などの制御命令が出力されたとき、CPU2aによってRAM2cにその制御命令が書き込まれる。その後、画像データの書込み終了通知などがあった場合に、この制御命令に対するものかが照合される。
【0074】
また、操作部2dはユーザと画像処理装置2000との間のインタフェースに必要なものであり、この指示によりCPU2aは所定のデータ処理を実行する。CPUバス1に接続されたメモリコントローラ3aは複数ページ分の容量をもつ比較的大きな容量の画像メモリ3bとのインタフェースで、メモリバス3cにより接続されている。また、操作部2dには、図示しないユーザインタフェースを介して、画像メモリ3bに保持される画像データに対してプレビュー要求を処理する機能を備える。
【0075】
また、図示しないが符号化処理を行うことにより符号データの蓄積も行われる。DMAC4は、CPU2aの介在なしに各デバイス間のデータ転送を実行するもので、CPU2aに比べ高速にデータ転送を行うことができる。
【0076】
このCPUバス1に接続された画像読込部5は上述したスキャナ部200より原稿走査ユニット202によって、読み取られた原稿データの処理を行うものであり、スキャナ用インタフェース5a、スキャナ部200及びページメモリ5bを有している。
【0077】
スキャナ用インタフェース5aは、スキャナ部200の駆動制御及びページメモリ5bにおける画像データ(DATA)の書き込み読み出し制御を行うものである。ページメモリ5bは、スキャナ部200からの画像データを1ページ分格納するメモリで、スキャナ部200とCPU2aのデータ転送速度の整合及びCPUバス1の使用効率の向上のため必要になるものである。
【0078】
また、CPUバス1に接続された画像展開部7は、通信部8を介してネットワーク上のクライアント端末等より各アプリケーションソフト等で作成されているプリントジョブを受信する。画像展開部7内にあるレンダリング部7aは、プリントジョブに含まれるコードデータをCPUバス1によって接続されている各処理部にて扱えるデータにするために、ワークメモリ7bを使用しながらレンダリングして展開する。ここで、レンダリング部7aは、コード形式のデータをビットマップ形式の画像データに変換することができる。また、画像展開部7は、画像メモリ3bに格納されたコードデータを受信して同様の処理を行うこともできる。
【0079】
更に、CPUバス1に接続された画像形成部6は、上述したプリンタ部100へ、処理された画像データを入力するものであり、プリンタ用インタフェース6a,ページメモリ6b及びプリンタ部100を有している。なお、画像形成部6は、画像メモリ3bに保持される画像データ或いはレンダリング部7aでレンダリングされた画像データを印刷する印刷要求に応じて、印刷を実行する。
【0080】
プリンタ用インタフェース6aは、プリンタ部100の駆動制御及びページメモリ6bにおける画像データの書き込み読み出し制御を行うものである。ページメモリ6bは、プリンタ部100への書き込みデータを1ページ分格納するメモリで、プリンタ部100とCPU2aのデータ転送速度の整合及びCPUバス1の使用効率の向上のため必要になるものである。
【0081】
更に、CPUバス1に接続されたデータ選択部9は、内部にジョブ管理部9aと、リソース処理演算部9bを有している。ここで、ジョブ管理部9aは、上述したスキャナ部200より原稿データを読み込みコピーするコピー動作と、プリントジョブを展開し、プリントするプリント動作とのジョブ情報を同時に管理する。
【0082】
また、ジョブ管理部9aは、その他図示していない外部からの電話回線等より入力されたファックスデータを出力するファックスジョブを管理するものである。
【0083】
さらに、ジョブ管理部9aは、さらにユーザが操作部2dにより、予め画像メモリ3bに格納されている画像データをプレビューしたい場合のプレビュー動作を1つのジョブとして管理するものである。
【0084】
リソース処理演算部9bは、上記ジョブ管理部9aにより管理されている各ジョブの情報に基づいて、画像処理装置2000における各リソースの使用状態や、各リソースに対するリソースの処理時間を演算する。リソースとは、画像処理装置2000が備える画像展開部7や、画像メモリ3bへのデータの読出処理/書込処理部等のことである。
【0085】
具体的には、画像メモリ3bにリード/ライトする転送時間、画像展開部7における展開時間等をリソース処理演算部9bが演算する。
【0086】
上記構成を備える画像処理装置2000において、プリントする動作と、それに続いてコピー動作が実行された場合について説明する。ここで、プリントする動作とは、予め画像メモリ3bに格納してある編集用のコードデータ(ベクタデータ)またはそれに対応するプリント出力用に展開されたビットマップデータを使用してプリントする動作である。
【0087】
図3は、図2に示した画像メモリ3bに格納されている編集用のコードデータ3001とそれに基づいて展開されたビットマップデータ3002を模式的に示す図である。
【0088】
図3において、コードデータ3001(ベクタデータ)は、プリントデータ内のオブジェクト群と上述したレンダリング部7aに展開するための命令群をリスト化したものである。本例は、線画や円等の図形とそれに対応するカラー等の描画命令を記述した例である。
【0089】
一方、コードデータ3001が画像展開部7にて展開されると、プリント出力用のビットマップデータ3002が生成される。ここで、3002Aはヘッダ情報で、データ形式とデータサイズが記述されている。
【0090】
本例のようにビットマップデータはプリンタ出力部の解像度により画素に分割し、その分割された画素毎の色情報をリスト化したものである。
【0091】
なお、本実施形態においてはどのデータ形式においてもデータを識別するためのヘッダ情報を有し、データ形式の種類とデータサイズを記述しているものとする。
【0092】
ここで上記コードデータ3001または画像データ3002のプリント命令が要求された場合に一旦、データ選択部9内のジョブ管理部9aに各データのヘッダ情報が転送され、ジョブとして登録される。なお、ユーザにより、ある印刷対象のデータが選択され、当該データに対してプリント要求を受けた場合に、CPU2aは、そのデータに対応するコードデータの有無、画像データの有無を判定する。そして、CPU2aは、コードデータと画像データの両方のデータが有ると判定した場合に、それぞれのデータ処理にかかる時間に基づいて、何れのデータを用いてプリントを行うかを決定する。データ処理にかかる時間は、データのサイズや、画像展開部7によるレンダリングや、画像メモリ3bに対するデータの読出し/書込みにかかる時間によって異なる。そのため、CPU2aは、それらに基づいて、データ処理にかかる時間を決定する。
【0093】
図4は、図2に示したジョブ管理部9aに登録されるヘッダ情報の一例を示す図である。本例は、処理要求別にジョブ管理情報を保持する例である。
【0094】
なお、図4の(a)はジョブ番号4001が「JOB1」が登録された状態に対応する。同様に、図4の(b)、(c)はジョブ番号4001が「JOB1」、「JOB2」が登録された状態に対応する。ただし、図4の(b)、(c)に示す各JOB2はそれぞれ異なるジョブである。
【0095】
図4において、プリント命令の要求によりジョブ種別4002が「メモリプリント」のジョブとしてジョブ番号4001にて「JOB1」として登録される。「メモリプリント」のジョブとは、画像メモリ3bに格納されているデータを、画像出力部6によってシートに印刷するジョブである。例えば、CPU2aは、クライアントコンピュータ等の外部の装置から通信部8を介して受信したプリントジョブに含まれるコードデータを画像メモリ3bに格納する。また、CPU2aは、一旦画像メモリ3bに格納されたコードデータを、任意のタイミングで、レンダリング部7で展開し、展開後のビットマップ形式の画像データを画像メモリ3bに格納する。それによって、1つのジョブのデータを、複数のデータ形式のデータとして画像メモリ3bに格納することができる。なお、任意のタイミングとは、レンダリング部7aが、他の処理に使用されていないタイミングであることが好ましい。ユーザは、メモリ3bに格納された複数のデータ形式のデータのうち、所望のデータ形式のデータを選択して、印刷指示やプレビューの指示を行うことができる。
【0096】
さらに、コードデータに添付されているヘッダ情報よりデータ形式4003とデータサイズ4004、処理すべきページ番号4005等の情報も併せて登録する。
【0097】
次に、このジョブ管理部9aにより登録されたデータを上述したリソース処理演算部9bにて各リソースを使用する処理に要する時間を演算により求める。
【0098】
図5は、図2に示したジョブ管理部9aで管理されるジョブ管理情報を説明する図である。本例は、処理要求別にジョブ管理情報を保持する例である。
【0099】
図5において、5001はジョブ番号で、登録されるジョブを識別するための番号であり、ジョブが登録される際に、ジョブに割振られる。
【0100】
本実施形態では、ジョブ番号5001毎に、ページ番号5002、データ形式5003、画像メモリ(READ)5004、画像メモリ(WRITE)5005、レンダリング処理5006が管理される。画像メモリ(READ)5004は、画像メモリ3bから画像データを読み出す処理に要する時間である。例えば、メモリプリントジョブの場合、データを印刷するために画像メモリ3bに格納されたデータを読み出す必要があるため、画像メモリ(READ)5004の読出しに要する時間が記録される。この画像メモリ(READ)5004の値は、リソース処理演算部9bが、CPU2aやDMAC4によるデータの読出速度や、読み出すデータのサイズに基づいて演算する。なお、コピー動作は、スキャナ部200によって読み取ったデータを画像メモリ3bに書込み、書き込んだ画像データを読み出すことによって処理を行う。しかし、このコピー動作に関しては、コピー時の画像の読出し/書込みに要する時間を、画像メモリ(WRITE)5005に記録せず、画像メモリ(READ)の値にのみ記録する。画像メモリ(WRITE)5005には、外部装置から受信したデータやスキャナ部200によって読み取ったデータを画像メモリ3bに記録するメモリストアジョブに要する時間を記録する。
【0101】
レンダリング処理5006は、コードデータを印刷するために、当該コードデータをレンダリングするために要する時間である。例えば、画像メモリ3bに記憶されたコードデータを印刷する場合には、レンダリングが必要であるため、レンダリング処理5006にレンダリングに要する時間が記録される。リソース処理演算部9bは、レンダリング処理5006の値を、画像展開部7の展開処理能力と、展開される画像データのデータサイズに基づいて演算する。なお、同様の画像データを含む場合、コードデータは、ビットマップ形式のデータよりもデータサイズが小さいため、画像メモリ3bからの読出し、書込みに要する時間が短い。
【0102】
図5の(a)は、図4に示したジョブ種別4002により求められた各リソースの使用状況と演算により算出された各リソースの処理時間を説明するための図である。本実施形態では、ジョブの印刷時に、各リソースを用いた処理にかかる時間を例にとって説明する。
【0103】
図5の(a)のように、ジョブ番号「JOB1」として登録されたデータについて、各リソースの使用に要する時間がジョブ管理部9aに登録されたデータよりページ毎に算出される。
【0104】
図5の(a)では使用されないリソース欄は"NONE"として示している。
【0105】
このようにリソース処理演算部9bにより算出されたデータを元に、データ選択部9は、以下のようにページ毎に、印刷に使用するデータ形式を選択する。
【0106】
まず、印刷するように指定されたJOB1について、ユーザがコードデータを指定して印刷するように要求した場合について説明する。
【0107】
図5に示す例では、CPU2aがJOB1の4ページ目まで印刷を完了し、これから5ページ目を処理しようとするタイミングで用いられる情報を示している。
【0108】
JOB1の5ページ目の場合、コードデータを画像メモリ5bから読出す時間は、ビットマップデータを画像メモリ3bから読出す時間に比べて時間がかからない。これは、コードデータのサイズが、当該コードデータに対応するビットマップデータよりもデータサイズが小さいためである。具体的に、JOB1の場合、コードデータを読み出すために要する時間は、10msecである。しかし、コードデータの場合、印刷するためにはレンダリングを必要とする。図5に示す例では、レンダリングに125msecかかるとリソース処理演算部9bによって演算されている。図5の(a)のように、JOB1を印刷する際のボトルネックになる処理は、データ形式5003がコードデータの場合では、レンダリング処理5006である。
【0109】
一方、ビットマップ形式のデータを用いて印刷する場合、ボトルネックは画像メモリ(READ)5004であり、100msecである。したがって、このときデータ選択部9は、100msec<125msecとなる結果に基づいて、より速く処理できるデータ形式であるビットマップデータが、データ選択部9によって選択される。つまり、JOB1を実行して印刷をおこなう場合に、CPU2aは、JOB1の5ページ目については、DMAC4に対してビットマップデータを画像出力部6に転送させるように制御する。そして、画像出力部6は、転送されたビットマップデータを用いて印刷を行う。
【0110】
このようにして、データ選択部9は、ジョブに含まれるページ数の分だけ、ページ毎にプリント処理に使用するデータとしていずれのデータ形式を用いるかを選択していく。より具体的に説明すると、データ選択部9のジョブ管理部9aは、CPU2aからのページの呼出要求のたびに、選択されたページ毎のデータ形式情報に基づくデータ選択信号をCPU2aに送信する。
【0111】
これによりCPU2aは、DMAC4へ設定する読み出しアドレスを選択されたデータ形式のデータが格納されている先頭アドレスを設定する。それにより、最適なデータ形式(この場合ビットマップデータ)のプリントデータが呼び出される。
【0112】
呼び出されたデータは上述で説明したようにCPUバス1を介して、データ形式により所定のパスを通り各リソースで処理され、最終的にプリンタ用インタフェース6aに転送される。
【0113】
このとき、DMAC4により1ページ分の画像データが画像メモリ3bからプリンタ用のページメモリ6bに格納されると、CPU2aからプリンタ用インタフェース6aに対してプリンタ起動が指示される。
【0114】
この指示を受けたプリンタ用インタフェース6aによって1ページ分の画像データがページメモリ6bからプリンタ部100に出力されると、CPU2aに対して1ページ目の印刷終了が通知される。この通知を受けたCPU2aからDMAC4へ次のページの画像データの転送が指示される。なお、次のページの画像データの転送の指示は、前のページの印刷が終了する前に行うことによって、次のページの印刷開始を早くするようにしてもよい。
【0115】
さらに、上記の処理をページ分繰り返せば、複数部のプリントが完了するが、本実施形態に示す構成に基づくさらなる効果を示すために、上記のプリント動作中にコピー動作ジョブが投入された場合について説明する。
【0116】
ここで、コピー動作ジョブは、図4の(b)において、ジョブ番号4001が「JOB2」に対応する。
【0117】
まず、操作部2dからコピーの指示を受けると、CPU2aから画像読込部5へスキャナ駆動が指示される。この指示を受けたスキャナ用インタフェース5aではスキャナ部200が駆動されると共に、スキャナ部200から原稿の画像データが読み取られ、ページメモリ5bに格納しにいく。
【0118】
このようにして1ページ分の画像データがページメモリ5bに格納されると、スキャナ用インタフェース5aはCPU2aに対して画像データの読み取り終了を通知する。
【0119】
この際、データ選択部9内のジョブ管理部9aに1ページ分のジョブ情報が登録される。これにより、ジョブ管理部9aに登録されたジョブ管理情報の状態は、図4の(a)に示す状態から図4の(b)に示す状態に遷移する。
【0120】
図4の(b)には、次に実行するジョブ情報(JOB1:メモリプリント:5ページ目)に加えて、コピー動作によるJOB2(コピー:1ページ目)が新たに登録されている。
【0121】
次に、リソース処理演算部9bは、上述したように登録されたジョブ番号JOB2のジョブ情報に基づいて、リソース処理演算部9bにより同様の演算が施される。
【0122】
図5の(b)は、追加されたジョブ番号5001が「JOB2」のジョブ情報に基づいて、リソース処理演算部9bにより算出されたリソースの処理時間を示す。
【0123】
これにより、図5の(a)で説明した先ほどの単一ジョブであったジョブ番号5001の「JOB1」の処理におけるビットマップデータでの画像メモリ(READ)5004は「100」msecが「200」msecになっていることが分かる。ここで、画像メモリ(READ)5004は、1ページに必要とするリード時間を示している。
【0124】
ここで、「100」msecが「200」msecとなったのは、ジョブ番号5001の「JOB2」のジョブ情報が追加登録され、同時に実行されるために互いに画像メモリ3bのメモリバス3cの帯域を占有するからである。つまり、ジョブ番号5001が「JOB1」と「JOB2」の各ページにおける画像メモリ3bからのリードライト動作を同時に行うことを考慮した結果、画像メモリ(READ)5004が「100」msecが「200」msecとなるわけである。これらは、リソース処理演算部9bによって演算される。
【0125】
なお、本実施形態においては、画像メモリ3bにアクセスするためのメモリコントローラ3aにおけるバスのアービトレーションは各データのリードライト動作に対して互いに均等であるものとする。
【0126】
これにより、ジョブ番号5001が「JOB1」のジョブの場合では5ページ目はビットマップデータが選択されていたものが、画像メモリ(READ)5004のリード時間が「200」msecに低下する。このため、データ選択部9は、データがより速く処理されるデータとして、先ほどとは異なりレンダリング部7aにて画像を展開する処理を要するコードデータを選択する。
【0127】
一方のジョブ番号5001が「JOB2」のコピー動作で生成されたデータはビットマップデータのみであるので、データ選択部9によるデータ選択は行われず、以降の処理はビットマップデータで処理される。
【0128】
ここで、ジョブ番号5001の「JOB1」の処理データとしてコードデータが選択されると、単一ジョブにて説明した場合と同様に、データ選択部9は、以下の処理を実行する。ここで、データ選択部9は、選択されたページ毎のデータ形式情報(この場合コードデータ)をCPU2aからのページの呼出要求のたびにデータ選択信号をCPU2aに送信する。
【0129】
これによりCPU2aは、DMAC4へ設定する読み出しアドレスを選択されたデータ形式のデータが格納されている先頭アドレスを設定することにより、最適なデータ形式のプリントデータが呼び出される。このようにして呼び出されたデータは所望のパスにて各リソースにて処理をされ、プリンタ部100でプリントされていく。
【0130】
図6は、本実施形態を示す画像処理装置2000におけるCPU2aとデータ選択部9による第1のデータ処理手順の一例を示すフローチャートである。本例は、CPU2aがジョブを処理する場合に、データ選択部9によって選択されるデータ処理形式に従い、ジョブのデータ処理形式を動的に決定する処理例である。なお、S1〜S5は各ステップを示し、各ステップは、CPU2aやデータ選択部9がROM2bに記憶される制御プログラムをRAM2cにロードして実行することで実現される。
【0131】
まず、S1で、ジョブ管理部9aは、ジョブの実行要求を受付け、画像処理装置2000にジョブが登録されたか否かを図4に示したテーブルを参照して判断する。ここで、ジョブ管理部9aが何らかのジョブが図4に示したテーブルに登録されていると判断した場合はS2へ進む。
【0132】
そして、S2において、ジョブ管理部9aは、ジョブのデータ群における先頭ページよりヘッダ情報を呼び出し、ジョブ管理部9aにジョブ種別4002、データ形式4003、データサイズ4004、ページ番号4005を順番に登録していく。
【0133】
さらに、S3で、リソース処理演算部9bは、登録されたページ番号から、そのページについて各リソースの処理時間をジョブ管理部9aに登録されているすべてのジョブ情報に基づいて演算する。
【0134】
次に、S4で、リソース処理演算部9bにて演算された結果より、ジョブ毎の各リソースにおける処理時間を比較し、ボトルネックを算出する。
【0135】
そして、データ選択部9は、算出されたボトルネックにおける処理時間を減少させるためのデータ形式を選択し、選択したデータ形式を示すデータ選択信号をCPU2aに送信する。
【0136】
これにより、CPU2aからDMAC4に呼び出すデータ形式の先頭アドレスをセットし、最適なデータ形式に対して処理を開始する。
【0137】
次に、S5で、1ページ分のデータ形式の選択が終了すると、登録されているすべてのジョブのページに対するデータ選択が終了したか否かをジョブ管理部9aが判断する(S5)。
【0138】
ここで、すべてのジョブのページに対するデータ選択が終了しているとジョブ管理部9aが判断した場合は、本処理を終了する。
【0139】
一方、S5において、すべてのジョブのページに対するデータ選択が終了していないとジョブ管理部9aが判断した場合は、S2に戻り、次ページのヘッダ情報の呼び出しから処理を繰り返す。
【0140】
そして、登録されたジョブ全てのページのデータ形式の選択処理が終了した場合にデータ形式の選択処理およびジョブの処理が完了した時点でデータ処理システムの動作を終了する。
【0141】
以上のように、本実施形態に示す画像処理装置2000においては、新たにジョブが投入された場合においても、複数のジョブの情報を考慮して、各ジョブに対するページ毎の処理時間を動的に算出する。そして、算出した処理時間に基づいて、各ジョブに対して使用するデータ形式を逐次選択して処理をする。それにより、画像処理装置2000として処理効率を向上させることができる。
【0142】
〔第2実施形態〕
図7は、本実施形態を示す画像処理装置7000の構成を説明するブロック図である。本実施形態において、画像処理装置7000は、スキャナ部200や後述する通信部8により入力された画像データを処理し、出力する。なお、本実施形態に係る画像処理装置7000の構成のうち、第1実施形態で説明した画像処理装置2000と同様の構成については、同じ符号を用いて説明し、詳しい説明は省略する。
【0143】
図7に示すように、本実施形態では、上述した画像処理装置7000内のデータ選択部9にジョブ管理部9a、リソース処理演算部9bに加えて、ジョブ種別によるジョブの優先順位の情報を格納している優先順位管理テーブル9cを備える。
【0144】
以下、本実施形態において、プリントする動作と、それに続いてプレビュー動作が実行された場合について説明する。
【0145】
次に、第1実施形態と同様に、上記プリントデータのプリント命令が要求された場合に一旦、データ選択部9内のジョブ管理部9aにプリントデータのヘッダ情報が転送され、ジョブとして登録される。
【0146】
ここで、登録されたヘッダ情報の内容は第1実施形態と同じく図4の(a)に示す。図4の(a)のようにプリント命令の要求によりジョブ種別4002がメモリプリントのジョブとしてジョブ番号4001にてJOB1として登録される。
【0147】
さらにコードデータに添付されているヘッダ情報よりデータ形式4003とデータサイズ4004、処理すべきページ番号4005の情報も併せて登録する。
【0148】
次に、このジョブ管理部9aにより登録されたデータを上述したリソース処理演算部9bにて各リソースを使用する際にかかる時間を、リソースの使用状況を考慮して求める。
【0149】
図8は、図2に示したリソース処理演算部9bによる演算処理を説明する図である。
【0150】
図8の(a)は本実施形態のジョブ種別により求められた各リソースを使用する際にかかる処理時間、さらに新たにパラメータとして、処理優先度5007の情報を加えたものである。
【0151】
図8の(a)のようにジョブ番号JOB1として登録されたプリントデータは、各リソースを使用した際に要する時間がジョブ管理部9aに登録されたデータよりページ毎に算出される。上述したように、各ジョブで使用されないリソース欄は"NONE"として表示している。
【0152】
本実施形態ではさらにジョブ種別4002より、予め処理すべき優先度が設定されている。
【0153】
図9は、図7に示した優先順位管理テーブル9cの内容を示す図である。
【0154】
図9に示すように、本実施形態では、ジョブの種別とそれに対する優先順位が対応付けられて保存されている。本実施形態において優先順位はジョブ種別によって順位が同じのものが複数存在しても構わないし、全てのジョブ種別に対して異なる順位を割り振っても構わない。
【0155】
また、優先順位管理テーブル9cの優先順位は、ユーザが操作部2d上にて参照できるようにして、随時変更できる構成であっても、予め向上出荷時などに一意に決定されていても構わない。
【0156】
従って、複数のジョブが、実行すべきジョブとして登録された場合は、データ選択部9は、優先順位管理テーブル9cを参照することにより処理のパラメータとしてのジョブの処理を行う優先順位を算出する。
【0157】
まず、単一のジョブが登録されている場合(この場合はメモリプリント)は、図8の(a)のようにジョブ種別に関わらず登録されている唯一のジョブが優先順位1として算出される。
【0158】
このように算出されたデータを元にページ毎に使用するデータ形式を選択していく。
【0159】
本ジョブの5ページ目の場合を例にとると、図8の(a)のようにボトルネックになる処理は、画像メモリ(READ)5004のリード時間(この場合150msec)である。この場合、レンダリング部7aのレンダリング処理5006における処理時間(60msec)の方が速い。
【0160】
従って、データ選択部9は、ジョブ番号JOB1のデータ形式をコードデータとして選択する。このようにして、第1実施形態と同様に順次ページ毎にプリント処理に使用するデータを選択していき、ページ毎に画像メモリ3bからデータ選択部9より選択されたデータ(この場合コードデータ)を読み出す。そして、所定の処理を実行した後、逐次処理された画像データがプリンタ用インタフェース6aに転送されていく。
【0161】
1ページ分の画像データがプリンタ部100に転送されると、CPU2aに対して1ページ分の画像の転送終了が通知される。この通知を受けたCPU2aは、DMAC4に次ページの画像データの転送を指示し、複数ページのプリント動作を継続していく。
【0162】
そして、上記の処理をページ分繰り返すことによって、複数部のプリントが完了する。ここで、本実施形態におけるさらなる効果を説明するために、以下の状態における処理について説明する。具体的には、上述したようにメモリプリントを実行している際に、新たに画像メモリ3bに格納されているコードデータをユーザがプレビューするジョブを要求した場合について説明する。
【0163】
ユーザが操作部2dより画像メモリ3b内のデータを選択し、プレビューを実行させる。
【0164】
これによりCPU2aからデータ選択部9内のジョブ管理部9aに画像メモリ3bに格納されている選択されたコードデータのジョブ情報が登録される。このときのジョブ管理情報を図4の(c)に示す。
【0165】
本状態では、図4の(c)のように、次に実行するジョブ情報(JOB1:メモリプリント:5ページ目)に加えてプレビュー動作によるJOB2(プレビュー:1ページ目)がジョブ種別のプレビューとして新たに登録される。これにより、登録されるジョブ番号4001が「JOB2」のジョブは、対応するコードデータのヘッダ情報よりデータ形式4003、データサイズ4004、ページ番号4005が処理情報として格納される。
【0166】
上述したようにジョブ管理部9aに登録されたジョブ情報に基づいて、リソース処理演算部9bにより同様に演算が施されるとともに、登録されているジョブ種別により優先順位管理テーブル9cにて各ジョブに対する処理の優先順位を決定する。
【0167】
図8の(b)は追加されたジョブに基づいてリソース処理演算部9bにより処理時間が算出されたものである。
【0168】
ここでは第1実施形態と同様に登録されているジョブに対して、各リソースを使用する際にかかる時間を優先順位とともに示している。
【0169】
図8の(b)によると、先ほどのジョブ番号5001が「JOB1」のみでの処理でコードデータのレンダリング部7aでの1ページの処理時間が60msecであったものが120msecになっていることが分かる。
【0170】
これは、ジョブ番号5001が「JOB2」が追加登録され、ジョブ番号5001が「JOB1」と「JOB2」の各ページにおけるレンダリング動作をレンダリング部7aを用いて同時に行う必要があることを考慮したものである。
【0171】
なお、本実施形態においてはレンダリング部7aにおけるレンダリング処理は、レンダリング部7aが、所定の時間単位で、複数のデータを時分割で処理していくものとする。
【0172】
これにより、ジョブ番号5001が「JOB1」のジョブだけが登録されている場合、データ選択部9によって、5ページ目のデータとしてコードデータが選択される。そして新たにジョブ番号5001が「JOB2」となるジョブが登録された場合でも、画像メモリ3bのビットマップデータのリード動作155msecがボトルネックとなる。
【0173】
しかし、ここでは、図5に示すテーブルで管理される新たに追加された処理優先度5007を比較することにより、ジョブ番号5001が「JOB2」のプレビュー動作の優先順位が「1」と最も高く決定されている。このため、CPU2aは、ジョブ番号5001が「JOB1」のジョブよりジョブ番号5001が「JOB2」のジョブを優先的に処理する必要がある。
【0174】
従って、データ選択部9は、リソース処理演算部9bより算出された各リソースの処理時間よりもジョブの種別ごとの優先順位を優先し、ジョブ番号5001が「JOB2」が優先的に処理されるように各ジョブのデータを選択する。
【0175】
この場合では、優先順位の高いジョブ番号5001が「JOB2」のジョブは、レンダリング処理に時間がかかることを示している。そこで、ジョブ番号5001が「JOB1」のジョブでは、レンダリング処理を行わないほうが好ましい。そのため、ジョブ番号5001が「JOB1」は、レンダリング処理を必要としてないビットマップデータがデータ選択部9により選択される。
【0176】
従って、データ選択部9は、ジョブ番号5001が「JOB1」に対してビットマップデータが選択されたことを示す信号をCPU2aに送信する。
【0177】
CPU2aはDMAC4へ設定する読み出しアドレスを、選択されたデータ形式のデータが格納されている先頭アドレスへ変更する。それにより、最適なデータ形式(この場合ビットマップデータ)のプリントデータが呼び出される。
【0178】
このようにして、ジョブ番号5001が「JOB1」のジョブが呼び出されるデータ形式がコードデータからビットマップデータに変更される。これにより、ジョブ番号5001が「JOB1」のジョブによるレンダリング部7aの処理は行われなくなり、ジョブ番号5001が「JOB2」のコードデータの処理が優先的に処理されていく。
【0179】
これにより、ジョブ番号5001が「JOB2」のコードデータがレンダリング部7aにて高速にレンダリング処理される。そして、レンダリング部7aでレンダリングされた画像データをRAM2cに展開した後、図示しない表示ドライバにより、操作部2dにユーザが選択したコードデータの描画情報をプレビューする。
【0180】
上記のような第2実施形態の処理を図10のフローチャートを用いて再度フローを説明する。
【0181】
図10は、本実施形態を示す画像処理装置7000におけるCPU2aとデータ選択部9による第2のデータ処理手順の一例を示すフローチャートである。本例は、CPU2aがジョブを処理する場合に、データ選択部9によって選択されるデータ処理形式に従い、ジョブのデータ処理形式を動的に決定する処理例である。なお、S11〜S17は各ステップを示し、各ステップは、CPU2aやデータ選択部9がROM2bに記憶される制御プログラムをRAM2cにロードして実行することで実現される。
【0182】
まず、S11で、ジョブ管理部9aは、ジョブの実行要求がなされ、画像処理装置7000にジョブが登録されたか否かを随時判断する。ここで、何らかのジョブが登録されているとジョブ管理部9aが判断した場合、S12へ進む。そして、S12で、ジョブのデータ群における先頭ページよりヘッダ情報を呼び出し、順番にジョブ管理部9aにジョブ種別4002、データ形式4003、データサイズ4004、ページ番号4005を登録していく。
【0183】
ここで、リソース処理演算部9bは、テーブルに登録されたページ番号4005から、ページ当たりの各リソースの処理にかかる時間をジョブ管理部9aに登録されている情報に基づいて算出する。
【0184】
次に、S13で、登録されたジョブ種別と、他の登録されているジョブ種別を優先順位管理テーブル9cにて照合し、各ジョブに対して処理すべき優先順位をジョブ管理部9aが決定する。次に、S14で、各ジョブに対して割り振られた優先順位を比較し、すべてのジョブの優先順位が同じであるかをジョブ管理部9aが判断する。
【0185】
ここで、全てのジョブの優先度が同じでないとジョブ管理部9aが判断した場合は、S15へ進む。
【0186】
なお、各ジョブの処理優先度を比較して各ジョブの処理優先度が異なっている場合には、最も処理優先度の高いジョブで使用しうる処理部のリソースと、処理優先度が下位であるジョブで使用しうる処理部のリソースが重なることを避ける必要がある。
【0187】
そこで、S15で、処理優先度が下位であるジョブは算出されたボトルネックとは関係なく、処理優先度の高いジョブが使用しない処理部のリソースで処理が可能なデータ形式を優先的に選択して、S17へ進む。
【0188】
一方、S14で、全てのジョブの処理優先度が同じであると判断した場合、S16へ進む。
【0189】
次に、S16で、第1実施形態と同様にデータ毎の各リソースにおける処理時間を比較し、ボトルネックを算出してボトルネックとなる処理にかかる時間を減少させるためのデータ形式をデータ選択部9が選択する。さらに、データ選択部9よりデータ選択信号をCPU2aに送信する。これにより、CPU2aからDMAC4に呼び出すデータ形式の先頭アドレスをセットし、最適なデータ形式に対して処理を開始する。
【0190】
次に、S17において、S15、S16にて選択されたジョブのデータ形式により、1ページ分のデータ形式の選択が終了すると、登録されているすべてのジョブのページに対するデータ選択が終了したか否かをジョブ管理部9aが判断する。
【0191】
ここで、登録された全てのジョブの各ページに対するデータ形式の選択処理が終了していないとジョブ管理部9aが判断した場合は、S12に戻り、次のページのヘッダ情報の呼び出しから処理を繰り返す。
【0192】
一方、S17で、登録された全てのジョブの各ページに対するデータ形式の選択処理が終了しているとジョブ管理部9aが判断した場合は、データ形式の選択処理およびジョブの処理が完了した時点で画像処理装置7000の動作を終了する。
【0193】
本実施形態では、新たにジョブが投入された場合においても、複数のジョブの情報を考慮して、各ジョブに対するページ毎の処理時間を算出する。そして、処理の優先順位を動的に決定する。また、決定された処理優先度の高いジョブを優先的に処理するために、処理優先度の低いジョブが、処理優先度の高いジョブで主に用いるリソースと重ならないように、データ選択部9は最適なデータ形式を選択する。これにより、処理優先度の最も高いジョブは画像処理装置7000全体で有するリソースを最大限に活用できる処理を実施することができる。さらに、処理優先度の低いジョブに対してもデータ形式を変更することにより、データ処理を停止させることなく処理を継続することが可能となる。
【0194】
なお、上述した実施形態において、データ選択部9は、ボトルネックとなる処理に要する時間が短いと判定されるデータ形式のデータを用いて印刷や、プレビュー等の処理を行うように制御していた。しかし、これに限らず、データ選択部9は、リソース処理演算部9bによって演算される各処理に要する時間の和が最も短いデータ形式のデータを用いて印刷やプレビュー等の処理を行ってもよい。
【0195】
上述した実施形態で説明した制御で特に重要な構成の1例を以下に例示する。例えば、画像処理装置のようなデータ処理装置は、ジョブのデータを、複数のデータ処理部に処理させるデータ処理手段を有する。そして、当該データ処理手段によって第1のジョブのデータを、第1のデータ処理部を用いた処理よりも第2のデータ処理部を用いた処理に長い時間を要する第1のデータ形式のデータを用いて処理させるか決定する。または、第2のデータ処理部を用いた処理よりも第1のデータ処理部を用いた処理に長い時間を要する第2のデータ形式のデータを用いて処理させるかを決定する。このような決定を行う際に、データ処理装置は、第1のジョブと並行して実行する第2のジョブのデータが第1のデータ処理部を用いた処理と第2のデータ処理部を用いた処理のいずれに、より長い時間を要するデータであるかに基づいて決定を行う。
【0196】
〔第3実施形態〕
以下、図11に示すメモリマップを参照して本発明に係る画像処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【0197】
図11は、本発明に係る画像処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【0198】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0199】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0200】
本実施形態における図7、図10に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0201】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0202】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0203】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0204】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0205】
この場合、コンピュータ読取可能な記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0206】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやftpサーバ等も本発明の請求項に含まれるものである。
【0207】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0208】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0209】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0210】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【0211】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【0212】
【図1】本実施形態を示すデータ処理装置を適用する画像処理装置の一例を示す断面図である。
【図2】本実施形態を示すデータ処理装置の構成を説明するブロック図である。
【図3】図2に示した画像メモリに格納されている編集用のコードデータとそれに基づいて展開されたビットマップデータを模式的に示す図である。
【図4】図2に示したジョブ管理部に登録されるヘッダ情報の一例を示す図である。
【図5】図2に示したジョブ管理部で管理されるジョブ管理情報を説明する図である。
【図6】本実施形態を示すデータ処理装置における第1のデータ処理手順の一例を示すフローチャートである。
【図7】本実施形態を示すデータ処理装置の構成を説明するブロック図である。
【図8】図2に示したリソース処理演算部による演算処理を説明する図である。
【図9】図7に示した優先順位管理テーブルの内容を示す図である。
【図10】本実施形態を示すデータ処理装置における第2のデータ処理手順の一例を示すフローチャートである。
【図11】本発明に係るデータ処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図12】この種の画像メモリを用いた従来方式のデータ処理システムの構成例を示すブロック図である。
【符号の説明】
【0213】
2 システム制御手段
3 メモリ制御手段
4 DMAC
5 画像読み取り部
6 画像形成部
7 画像展開部
8 通信部
9 データ選択部

【特許請求の範囲】
【請求項1】
ジョブのデータを、複数のデータ処理部に処理させるデータ処理手段と、
前記データ処理手段によって、第1のジョブのデータを、
第1のデータ処理部を用いた処理よりも第2のデータ処理部を用いた処理に長い時間を要する第1のデータ形式のデータを用いて処理させるか、
前記第2のデータ処理部を用いた処理よりも前記第1のデータ処理部を用いた処理に長い時間を要する第2のデータ形式のデータを用いて処理させるかを決定する決定手段とを備え、
前記決定手段は、前記第1のジョブと並行して実行する前記第2のジョブのデータが前記第1のデータ処理部を用いた処理と前記第2のデータ処理部を用いた処理のいずれに、より長い時間を要するデータであるかに基づいて、前記決定を行うことを特徴とするデータ処理装置。
【請求項2】
前記決定手段は、前記第2のジョブのデータが、第1のデータ処理部を用いた処理よりも第2のデータ処理部を用いた処理に長い時間を要するデータである場合に、
前記第1のジョブのデータを、前記第2のデータ処理部を用いた処理よりも前記第1のデータ処理部を用いた処理に長い時間を要する前記第2のデータ形式のデータを用いて処理するよう決定することを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記ジョブは、複数ページのデータを含むジョブであり、
前記決定手段は、前記複数ページに含まれるページごとに、前記決定を行うことを特徴とする請求項1または2に記載のデータ処理装置。
【請求項4】
前記第1のデータ形式は、展開部で展開を行う前のデータであり、
前記第2のデータ形式は、展開部で展開を行った後のデータであることを特徴とする請求項1乃至3のいずれかに記載のデータ処理装置。
【請求項5】
前記第1のデータ処理部による処理は、記憶手段からのデータの読出処理、または、書込処理であり、
前記第2のデータ処理部による処理は、展開する前の画像データを展開する展開処理であることを特徴とする請求項1乃至4のいずれかに記載のデータ処理装置。
【請求項6】
ジョブのデータを、複数のデータ処理部に処理させるデータ処理工程と、
前記データ処理工程で、第1のジョブのデータを、
第1のデータ処理部を用いた処理よりも第2のデータ処理部を用いた処理に長い時間を要する第1のデータ形式のデータを用いて処理させるか、
前記第2のデータ処理部を用いた処理よりも前記第1のデータ処理部を用いた処理に長い時間を要する第2のデータ形式のデータを用いて処理させるかを決定する決定工程とを備え、
前記決定工程では、前記第1のジョブと並行して実行する前記第2のジョブのデータが前記第1のデータ処理部を用いた処理と前記第2のデータ処理部を用いた処理のいずれに、より長い時間を要するデータであるかに基づいて、前記決定を行うことを特徴とするデータ処理装置の制御方法。
【請求項7】
前記決定工程では、前記第2のジョブのデータが、第1のデータ処理部を用いた処理よりも第2のデータ処理部を用いた処理に長い時間を要するデータである場合に、
前記第1のジョブのデータを、前記第2のデータ処理部を用いた処理よりも前記第1のデータ処理部を用いた処理に長い時間を要する前記第2のデータ形式のデータを用いて処理するよう決定することを特徴とする請求項6に記載のデータ処理装置の制御方法。
【請求項8】
前記ジョブは、複数ページのデータを含むジョブであり、
前記決定工程では、前記複数ページに含まれるページごとに、前記決定を行うことを特徴とする請求項6または7に記載のデータ処理装置の制御方法。
【請求項9】
前記第1のデータ形式は、展開部で展開を行う前のデータであり、
前記第2のデータ形式は、展開部で展開を行った後のデータであることを特徴とする請求項6乃至8のいずれかに記載のデータ処理装置の制御方法。
【請求項10】
前記第1のデータ処理部による処理は、記憶手段からのデータの読出処理、または、書込処理であり、
前記第2のデータ処理部による処理は、展開する前の画像データを展開する展開処理であることを特徴とする請求項6乃至9のいずれかに記載のデータ処理装置の制御方法。
【請求項11】
請求項6乃至10のいずれかに記載のデータ処理装置の制御方法を、コンピュータに実行させるためのプログラムを記憶するコンピュータ読取可能な記憶媒体。
【請求項12】
請求項6乃至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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2010−28431(P2010−28431A)
【公開日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願番号】特願2008−187117(P2008−187117)
【出願日】平成20年7月18日(2008.7.18)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】