JP2016107570A - Control device, control method, and program - Google Patents
Control device, control method, and program Download PDFInfo
- Publication number
- JP2016107570A JP2016107570A JP2014249379A JP2014249379A JP2016107570A JP 2016107570 A JP2016107570 A JP 2016107570A JP 2014249379 A JP2014249379 A JP 2014249379A JP 2014249379 A JP2014249379 A JP 2014249379A JP 2016107570 A JP2016107570 A JP 2016107570A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- image processing
- unit
- cpu
- time
- 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
Landscapes
- Record Information Processing For Printing (AREA)
- Facsimiles In General (AREA)
Abstract
Description
本発明は、複数の画像処理部を有する画像処理手段の制御装置、制御方法、及びプログラムに関するものである。 The present invention relates to a control apparatus, control method, and program for image processing means having a plurality of image processing units.
プリンタなどに代表される印刷装置において、印刷ジョブを複数のプロセッサに割り当て、該複数のプロセッサにおいて並行して画像生成を行うことで画像処理時間を短縮する方法が知られている。この際、各プロセッサに割り当てられる処理内容が異なるため、処理量が多い処理内容を割り当てられたプロセッサに比べて処理量が少ない処理内容を割り当てられたプロセッサの稼働時間が減ってしまう。 In a printing apparatus typified by a printer or the like, a method for shortening image processing time by assigning a print job to a plurality of processors and generating images in parallel in the plurality of processors is known. At this time, since the processing content assigned to each processor is different, the operating time of the processor assigned the processing content having a smaller processing amount is reduced as compared with the processor assigned the processing content having a larger processing amount.
そこで、特許文献1には、印刷ジョブの画像データの処理を複数の処理プロセス(以下、ステージともいう)に分割し、複数のプロセッサでそれぞれ処理させる画像形成装置において、複数のプロセッサ間で処理分担を変更することが開示されている。具体的には、あるステージの処理を終えたプロセッサに対し他のステージの処理を割り振ることで、割り振られた処理量が少ないプロセッサも休止することなく稼働させる。
Therefore, in
しかしながら、特許文献1では、各プロセッサが複数種の画像処理を実行しており、特定の画像処理を実行するプロセッサを複数用いる場合については言及されていなかった。なお、特許文献1に記載の方法を、特定の画像処理を実行するプロセッサを複数有する画像処理部を複数用いる画像処理装置に適用した場合、画像処理を高速化できないことがある。画像処理部を複数用いる際に、あるステージの処理を終えたプロセッサに対し他のステージの処理を割り振った場合の問題点について図15及び図16を用いて説明する。
However,
図15(a)は印刷ジョブの画像処理を複数のプロセッサ(CPU)で並行に行う画像処理装置の構成図である。ここではCPU数は3つとし、それぞれ画像補正ステージ、リッピング(RIP)ステージ、面付けステージを処理することとする。この画像処理装置に複数印刷ジョブを投入した際の各CPUの処理内容を図15(b)に示す。図15(b)に示すように、ジョブA,B,Cが画像処理装置に投入され、それぞれのジョブのステージ1(画像補正),2(RIP),3(面付け)をCPU1,2,3で処理する。具体的には、まず、ジョブAのステージ1の処理をCPU1で行い、処理結果がバッファに保持される。CPU2は、ステージ1の処理結果をバッファから取得し、ステージ2の処理を行う。CPU1は、ジョブAのステージ1の処理を終えた後、ジョブBのステージ1の処理を開始する。このように、3つのCPUが異なるジョブの処理を並行して行うことで、処理時間の高速化を図ることができる。ここで、各CPUにおける各ステージの処理時間が図15(b)のようにCPU間でばらつきが無い場合は、ジョブが投入され続ける限りCPUは動作し続けることが可能である。しかしながら、実際には印刷ジョブを構成する要素はジョブによって異なるため、各ステージの処理にかかる時間はジョブによって異なる。
FIG. 15A is a configuration diagram of an image processing apparatus that performs image processing of a print job in parallel with a plurality of processors (CPUs). Here, the number of CPUs is three, and an image correction stage, a ripping (RIP) stage, and an imposition stage are processed, respectively. FIG. 15B shows the processing contents of each CPU when a plurality of print jobs are input to the image processing apparatus. As shown in FIG. 15B, jobs A, B, and C are input to the image processing apparatus, and stages 1 (image correction), 2 (RIP), and 3 (imposition) of each job are assigned to
図16(a)はステージ1の処理がステージ2やステージ3よりも重いジョブが3つ投入された時の動作例である。CPU2は、ステージ1の処理が終わるまではステージ2の処理を開始することができないため、ジョブAのステージ2の処理を終えた後、ジョブBのステージ2の処理を開始するまでに稼働していない時間が存在する。ここで、図16(a)の画像処理装置1と並列に動作する画像処理装置2が存在する場合について説明する。図16(b)は、画像処理装置2にステージ2の処理が重いジョブが3つ投入された場合の動作例を示す図である。画像処理装置2でも画像処理装置1と同様に、CPU6は、ジョブDのステージ3の処理を終えた後、ジョブEのステージ3の処理を開始するまでに稼働していない時間が存在する。そこで、稼働していないCPUに対して未処理のステージの処理を割り振ると、図17のようになる。
FIG. 16A shows an operation example when three jobs whose processing in
図17は、画像処理装置1のCPU2がジョブAの処理を終えた後の非稼働時に、画像処理装置2のCPU5が行う予定だったジョブFの処理を割り振った際の画像処理装置1、2の動作例である。図17に示すように、画像処理装置2は処理負荷の高いステージ2の処理を画像処理装置1に割り振ることによって、処理の終了時間が早くなる。一方、画像処理装置1はCPU2の非稼働時間に画像処理装置2のステージ2の処理を行う。これにより、本来CPU1がジョブBの処理を完了したあと開始するはずだったCPU2のジョブBの処理が、割り込まれたジョブFの処理により開始が遅れ、結果としてジョブBの終了時間が割り込まれなかった場合に比べて遅延してしまう。このように、あるタイミングで手が空いているCPUに単純に処理を割り振るだけでは、従来行われる予定だった処理の開始が遅れることになってしまう。特に、描画完了したラスターイメージを印刷しながら次の印刷のための画像処理を行う印刷装置では、予定通りに処理が終わらなくなると印刷装置がストップしてしまい、生産性を著しく下げてしまう。
本発明はこのような事情に鑑み、画像処理の終了時間をより確実に短縮させることができる制御装置、制御方法、及びプログラムを提供することを目的とする。
FIG. 17 shows the
In view of such circumstances, it is an object of the present invention to provide a control device, a control method, and a program that can more reliably reduce the end time of image processing.
上記目的を達成するため、本発明に係る制御装置は、印刷データを受信する受信手段と、前記受信手段により受信した印刷データに対して複数の画像処理をそれぞれ異なる処理部により順に実行する画像処理手段と、一の画像処理手段に割当てられている第1印刷データの第1画像処理を、他の画像処理手段に委譲させるか判定する判定手段と、を有し、前記判定手段は、他の画像処理手段において前記第1画像処理が割当てられている処理部が、次に実行予定の印刷データの第1画像処理を実行するまでに前記第1印刷データの第1画像処理を完了できる場合、委譲させると判定する。 In order to achieve the above object, a control device according to the present invention includes: a receiving unit that receives print data; and an image process that sequentially executes a plurality of image processes on the print data received by the receiving unit by different processing units. And a determination unit that determines whether or not to delegate the first image processing of the first print data assigned to one image processing unit to another image processing unit. When the processing unit to which the first image processing is assigned in the image processing means can complete the first image processing of the first print data before executing the first image processing of the print data scheduled to be executed next, Determine to delegate.
以上説明したように、本発明によれば、複数の画像処理をそれぞれ異なる処理部により順に実行する画像処理手段を複数用いる場合、画像処理の終了時間をより確実に短縮させることができる。 As described above, according to the present invention, when a plurality of image processing units that sequentially execute a plurality of image processes by different processing units are used, the end time of the image processing can be more reliably shortened.
(実施形態1)
以下、添付図面を参照して本発明の好適な実施の形態を例示的に詳細に説明する。但し、この実施の形態に記載されている構成要素の相対配置、装置形状等は、あくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
(Embodiment 1)
Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the relative arrangement of the constituent elements described in this embodiment, the device shape, and the like are merely examples, and the scope of the present invention is not intended to be limited thereto.
本実施形態では、制御装置を含む印刷装置を例に挙げて説明する。本明細書において「印刷装置」とは、印刷機能に特化した専用機に限らず、印刷機能とその他の機能を複合した複合機や、記録紙上に画像やパターンを形成する製造装置等も含むものとする。 In the present embodiment, a printing apparatus including a control device will be described as an example. In this specification, “printing apparatus” is not limited to a dedicated machine specialized for printing functions, but includes a multifunction machine that combines printing functions and other functions, a manufacturing apparatus that forms images and patterns on recording paper, and the like. Shall be.
図1は、本実施形態に係る印刷装置のハードウェアの構成を示す概略ブロック図である。印刷装置100は、図1に示すように、中央処理装置(CPU)101と、ROM102と、RAM103と、通信部104と、記録部105と、操作部106と、表示部107とを有する。なお、これらはシステムバスを介して互いに接続されている。
FIG. 1 is a schematic block diagram illustrating a hardware configuration of a printing apparatus according to the present embodiment. As illustrated in FIG. 1, the
CPU101は、ROM102に記憶されているプログラムに従って、RAM103、通信部104、記録部105、操作部106及び表示部107を制御する。
The
ROM102は、CPU101が実行する各種制御プログラムや印刷装置100の各種動作に必要な固定データを格納する。例えば、印刷装置100の記録(印刷)処理を実行するプログラムを記憶する。
The
RAM103は、CPU101の作業エリアとして用いられたり、種々の受信データの一時格納領域として用いられたり、各種設定データを記憶させたりする。外部装置10から送られてくる記録データ(印刷データ)、即ち、記録部105で記録(印刷)される記録データは、RAM103に一時的に記憶される。
The
通信部104は、外部装置と印刷装置100との通信を制御する。
記録部(印刷部)105は、後述するプリンタエンジン部を有する。
操作部106は、電源ボタン、リセットボタンなどの各種ボタンを含み、ユーザが印刷装置100を操作する際に使用される。
The
The recording unit (printing unit) 105 has a printer engine unit described later.
The
表示部107は、例えば、タッチパネルの液晶ディスプレイで構成され、印刷装置100の状態や各種設定を表示する。なお、ユーザは、表示部107を介して、各種設定の入力を行うこともできる。表示部107は、操作指示の受付や装置状態の表示を行う。
The
図2は、本実施形態に係る印刷装置における制御の構成を説明するためのブロック図である。実施形態1に係る印刷装置100は、コントローラ部210と、プリンタエンジン220と、複数のレンダリング部230とを有する。これらの構成要素は、それぞれ、例えば、図1の印刷装置100に実装されるハードウェアとして実現されてもよいし、ハードウェアとソフトウェアと協働して実現されてもよい。
FIG. 2 is a block diagram for explaining a control configuration in the printing apparatus according to the present embodiment. The
データに基づき画像を印刷する印刷装置100は、HostPC300からPDL等の印刷ジョブデータ(印刷データともいう)を受信する。そして、印刷装置100は、印刷ジョブデータに画像処理をすることにより画像データ(ビットマップデータ)を生成し、画像データに基づいて、カット紙や連続紙などの印刷メディアに印刷を行う。
The
コントローラ部210は、外部装置から印刷データ等を受信する受信部211と、受信した印刷データを保存するスプーラ212と、レンダリング部と通信する通信部213と、を有する。コントローラ部210は、HostPC300から受信した印刷ジョブデータ102を受信部211において受信し、スプーラ212に保持する。一旦保持した印刷ジョブデータに対し、印刷ジョブの内容やユーザーインターフェース部140からの指示に基づきコマンドやデータを作成する。また、コントローラ部210は、作成したコマンドやデータを、画像装置通信部213を介して後述するレンダリング部230に送信する。そして、レンダリング部230からレンダリング後のビットマップデータを受け取ると、受け取ったビットマップデータをプリンタエンジン部220へ送信する。
The
レンダリング部230は、コントローラ部210が作成したコマンドやデータに基づきレンダリング処理を行い、印刷用ビットマップデータの生成を行う。印刷装置100は、レンダリング部230を複数有し、各レンダリング部230は、一以上のプロセッサ(本実施形態では、CPU)を有する。図2に示すように、レンダリング部230は、3つのCPU(CPU231〜233)と、CPUの前段に設けられるバッファと、CPUの後段に設けられるバッファと、負荷監視部234と、処理負荷管理テーブル235と、通信コントロール部236とを有する。本実施形態では、各レンダリング部230は、いずれも同じ構成を有するものとするが、一部が異なる構成となっていてもよい。
The
本実施形態では、レンダリング部230の各CPU(CPU231〜233)は、図1に示すCPU101とは異なるものであり、図示しないRAMに記憶されているプログラムに従って、画像処理(描画処理ともいう)を実行する。具体的には、CPUの前段に配置されたバッファから入力データを取得し、特定の処理(ステージ処理)を行い、後段のバッファに処理結果を出力する。ここで、ステージ処理とは、例えば、画像補正処理、RIP処理、面付け処理である。なお、RIP処理は、画像補正処理済みのデータに実行することができ、面付け処理は、RIP処理済みのデータの実行することができる。本実施形態では、各CPUに、それぞれ異なるステージの処理を分担させる(割当てる)。本実施形態では、詳細は後述するが、レンダリング部1のCPU231に画像補正処理、CPU232にRIP処理、CPU233に面付け処理を実行させる。
In the present embodiment, each CPU (
CPUから出力された処理結果は、次のステージの入力データとなり、次のステージを処理するCPUが、上記と同様にステージ処理を行う。印刷ジョブデータに対して、全てのステージ処理を行うと、ビットマップデータが生成される。なお、本実施形態では、CPU231の画像補正処理の処理結果は、CPU232の入力データとなり、CPU232のRIP処理の処理結果は、CPU233の入力データとなり、CPU233の画像補正処理の処理結果は、ビットマップデータとなる。
The processing result output from the CPU becomes input data for the next stage, and the CPU that processes the next stage performs stage processing in the same manner as described above. When all the stage processes are performed on the print job data, bitmap data is generated. In this embodiment, the processing result of the image correction processing of the
負荷監視部234は、各CPUの処理の開始タイミング及び処理の終了タイミングを監視し、その結果を処理負荷管理テーブル235に記録する。すなわち、各プロセッサの所定単位(本実施形態では、ジョブ単位)の処理が開始する毎に開始タイミングを更新し、各プロセッサの所定単位(本実施形態では、ジョブ単位)の処理が終了する毎に、処理の終了タイミングを更新する。
The
通信コントロール部236は、コントローラ部210から印刷ジョブデータを受信し、CPU231の前段に設けられるバッファに保持する。さらに、通信コントロール部1236は、CPU233の処理結果をCPU233の後段に設けられるバッファから取得し、ビットマップデータとしてコントローラ部210へ送信する。さらに、本実施形態では、通信コントロール部236は、特定のCPUの処理結果をそのCPUの後段に設けられるバッファから取得し、他のレンダリング部230に送信し、特定のCPUのステージ処理を他のレンダリング部のCPUに委譲する。処理ステージの委譲方法の詳細については後述する。
The
プリンタエンジン部220は、記録部105が備える。プリンタエンジン部220は、例えば、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ及び記録紙の搬送機構を含む記録ユニットと、記録データに基づいて記録用パルスを生成するASICを含む電気回路と、を含む。プリンタエンジン部220は、ビットマップデータを受信すると、ビットマップデータに基づいて、画像をシートに印刷する。印刷の際には、プリンタエンジン部220は、ビットマップデータに対してプリンタエンジンの扱う色空間であるCMYK等への変換処理や、必要に応じて2値化処理等を行う。
The
HostPC300は、印刷装置100の外部に接続され、印刷装置100に印刷を行わせるための印刷ジョブデータの供給源となる装置であり、種々の印刷ジョブのオーダーを発行する。HostPC300は、本実施形態では、汎用のパーソナルコンピュータ(PC)としたが、これに限定されず、他のタイプのデータ供給装置としてもよい。他のタイプのデータ供給装置としては、画像をキャプチャーして画像データを生成する画像キャプチャー装置がある。画像キャプチャー装置は、原稿上の画像を読取って画像データを生成するリーダ(スキャナ)、ネガフィルムやポジフィルムを読取って画像データを生成するフィルムスキャナなどである。また、画像キャプチャー装置の他の例として静止画を撮影してデジタル画像データを生成するデジタルカメラ、動画を撮影して動画像データを生成するデジタルビデオもある。その他、ネットワーク上にフォトストレイジを設置したり、着脱可能な可搬性メモリを挿入するソケットを設けたりし、フォトストレイジや可搬性メモリに格納された画像ファイルを読み出して画像データに生成して印刷するものとしてもよい。また、汎用的なPCに代え、印刷装置専用の端末とするなど、種々のデータ供給装置としてもよい。これらのデータ供給装置は印刷装置100の構成要素としてもよいし、印刷装置100の外部に接続した別の装置としてもよい。
The
図4のフローチャートを用いて、本実施形態に係るコントローラ部210の処理の流れを説明する。図4のフローチャートは、図1のCPU101が、ROM102に格納されている制御プログラムをRAM103にロードし、それを実行することにより行われる処理の流れを示す。
A processing flow of the
まず、ステップS301で、HostPC300から印刷ジョブデータを受信すると、スプーラ212に印刷ジョブデータを保持する。
First, when print job data is received from the
次に、ステップS302で、あるレンダリング部230に対して印刷ジョブデータを送信してレンダリング処理を依頼する。レンダリング部230が複数ある場合に、いずれのレンダリング部に処理を依頼する(割り振る)かを決定する方法は種々あり、特に限定されないが、本実施形態では、処理を依頼した時間が最も古いレンダリング部230に対して処理を依頼する。例えば、レンダリング部230が2つある場合、4つの印刷ジョブをレンダリング部1、2、1、2の順で処理を依頼する。なお、他の割り振り方法としては、各レンダリング部230の処理性能を監視して最も処理性能が高いものに割り振る方法、各レンダリング部230の処理負荷を監視して最も処理負荷が低いものに割り振る方法が挙げられる。
Next, in step S302, print job data is transmitted to a
ステップS303で、コントローラ部210は、通信部213を介してビットマップデータを受信する(ステップS303)。具体的には、レンダリング部230は、依頼された印刷ジョブデータをレンダリングしてビットマップデータを生成し、通信コントロール部236を介してコントローラ部210へ送信すると、これを受信する。
In step S303, the
ステップS304で、受信したビットマップデータをプリンタエンジン部220へ送信する。プリンタエンジン部220は受信したビットマップデータを紙などの印刷メディア(記録媒体ともいう)に印刷する。
In step S304, the received bitmap data is transmitted to the
ステップS305で、HostPC300から印刷ジョブデータが投入されているか判定する。印刷ジョブが投入されていた場合(S305でYes)、ステップS301へ戻り、上述した処理を繰り返す。投入されていなければコントローラ部210は処理を終了し、次の印刷ジョブデータの投入に備える。なお、S302〜S304の実行中に印刷ジョブデータが投入された場合は、並行してS301〜S304の処理を実行する。
In step S305, it is determined whether print job data is input from the
レンダリング部230の処理の流れを図4のフローチャートを用いて説明する。図4のフローチャートは、図1のCPU101が、ROM102に格納されている制御プログラムをRAM103にロードし、それを実行することにより行われる処理の流れを示す。
The processing flow of the
ステップS401で、コントローラ部210から印刷ジョブデータを受信するとバッファに保持する。
In step S401, when print job data is received from the
レンダリング部230は、一以上のプロセッサ(CPU)を有しており、一つの印刷ジョブデータに対して各ステージの処理を行う。レンダリング部が持つCPUの数分、以下に示すS403〜S409を繰り返す。なお、各CPUで行うステージ処理はCPU毎に異なるが、処理の流れは同じである。
The
まず、ステップS403で、処理負荷管理テーブル235を参照し、レンダリング部230で実行予定のステージ処理を処理委譲するかを判断する。ここで、処理委譲とは、一のレンダリング部に割当てられた処理を他のレンダリング部に受け渡して実行させることを指す。なお、ステップS403の本処理の詳細は別途図を用いて説明する。
First, in step S403, the processing load management table 235 is referred to, and it is determined whether or not the
ステップS404で、ステップS403において、ステージ処理を処理委譲したか判定する。処理委譲したと判定した場合(S404でYes)、ステップ402へ戻って、次のCPUのステージ処理に進む。例えば、画像補正ステージの処理を他のレンダリング部に委譲した場合(S404でYes)、RIP処理のループに進む(S402)。処理委譲していないと判定した場合(S404でNo)、ステップS405へ進む。 ステップS405で、処理負荷の監視を開始する。この処理については、詳細は後述する。 In step S404, it is determined whether or not the stage process is delegated in step S403. If it is determined that the process has been delegated (Yes in S404), the process returns to step 402 and proceeds to the next CPU stage process. For example, when the processing of the image correction stage is delegated to another rendering unit (Yes in S404), the process proceeds to the RIP processing loop (S402). If it is determined that the processing is not delegated (No in S404), the process proceeds to step S405. In step S405, monitoring of the processing load is started. Details of this process will be described later.
ステップS406で、CPUは、前段に配備されたバッファからデータを取得する。このデータは、最初のステージ処理を行うCPUの場合、コントローラ部210から受信した印刷ジョブデータであり、以降のステージ処理を行うCPUの場合は、前段のCPUがステージ処理を行った後のデータである。
In step S406, the CPU acquires data from the buffer arranged in the previous stage. This data is the print job data received from the
ステップS407で、CPUは、バッファから取得したデータに対して、それぞれのCPUに割当てられたステージ処理を行う。 In step S407, the CPU performs stage processing assigned to each CPU on the data acquired from the buffer.
ステップS408で、CPUは処理結果を後段に配備されたバッファに保持させる。 In step S408, the CPU holds the processing result in a buffer provided in the subsequent stage.
ステップS409で、処理負荷の監視を終了する。 In step S409, the monitoring of the processing load ends.
ステップS402からステップS410までが一つのCPUの処理の流れである。このようにCPUは、自身のステージ処理を終えたら、該ステージ処理を含む印刷ジョブデータの全ステージ処理が終わるのを待たずに、次の印刷ジョブデータのステージ処理を行うことができる。これにより、複数の印刷ジョブを複数CPUで並行して処理できる。最後のステージ処理が終了すると、ビットマップデータが生成され、ステップS411で該ビットマップデータをコントローラ部210へ送信する。
Steps S402 to S410 are the process flow of one CPU. As described above, when the CPU completes its own stage processing, it can perform the next print job data stage processing without waiting for the completion of all the stage processing of the print job data including the stage processing. Thereby, a plurality of print jobs can be processed in parallel by a plurality of CPUs. When the final stage processing is completed, bitmap data is generated, and the bitmap data is transmitted to the
ステップS412でコントローラ部210から新たな印刷ジョブデータが投入されているか判定する。新たな印刷ジョブデータが投入されていたら(ステップS412でYes)、ステップS401へ戻って、上述した処理を繰り返す。新たな印刷ジョブデータが投入されていなければ(ステップS412でNo)、レンダリング部230は、処理を終え次の印刷ジョブデータの投入に備える。
In step S412, it is determined whether new print job data is input from the
図6は、負荷監視部234の処理の流れを示すフローチャートである。図6のフローチャートは、CPU101が、ROM102に格納されている制御プログラムをRAM103にロードし、それを実行することにより行われる処理の流れを示す。図6に示すフローチャートは、図4のステップS405及びS409の処理を詳細に説明するためのものである。
FIG. 6 is a flowchart showing a processing flow of the
ステップS501で、CPU231の処理が開始した時刻を取得し、処理負荷監視テーブル235に保存する。ステップS502でCPU231の処理が終了した時刻を取得し、処理負荷監視テーブル235に保存する。ステップS503で処理負荷管理テーブル235を更新し、処理を終了する。具体的には、後述する通り、各CPUの処理ステージの平均処理時間、平均待ち時間、処理委譲希望フラグ、他ジョブ処理可能フラグを更新する。なお、負荷監視部234は各CPUの処理が開始・終了する毎に同様の処理を繰り返す。
In step S <b> 501, the time when the processing of the
ここで、図7を用いて、処理管理テーブルの情報管理について説明する。図7(a)は、処理負荷管理テーブル235の一例を示す図である。本実施形態では、図7(b)に示すように、レンダリング部230は、三つのCPU1、2、3(それぞれ231,214,215)を持ち、それぞれ画像補正、リッピング(RIP)、面付けのステージ処理を行う。一つの印刷ジョブに対して、上述した三つのステージ処理を全て行うことで、ビットマップデータが完成する。処理負荷管理テーブル235は、各CPUが処理する処理ステージ、その処理ステージの平均処理時間、平均待ち時間、処理委譲希望フラグ、他ジョブ処理可能フラグを有する。
Here, information management of the process management table will be described with reference to FIG. FIG. 7A is a diagram illustrating an example of the processing load management table 235. In the present embodiment, as shown in FIG. 7B, the
平均処理時間は、ある印刷ジョブに対する各ステージの処理時間の平均値である。具体的には、ステップS501により取得された処理開始時間及びS502により取得された処理終了時間に基づいて特定される処理時間を平均した値である。例えば、二つの印刷ジョブに対してCPU1の画像補正ステージでかかった処理時間がそれぞれ70msec、90msecであった場合、CPU1の平均処理時間は80msecとなる。本実施形態では、これまでに投入された全ジョブの平均を算出するようにしたが、これに限定されず、近傍数ジョブの平均を算出するようにしても良い。ここで、例えば、アルバムを連続して印刷する商業用印刷装置や、カタログを連続して印刷する商業用印刷装置の場合、同程度のデータサイズのジョブが連続して投入されることが多い。したがって、平均処理時間を特定することにより、これから処理予定のデータの処理時間を予測することができる。
The average processing time is an average value of the processing time of each stage for a certain print job. Specifically, it is a value obtained by averaging the processing times specified based on the processing start time acquired in step S501 and the processing end time acquired in step S502. For example, if the processing time taken by the image correction stage of the
平均待ち時間は、印刷ジョブ毎の待ち時間の平均である。具体的には、前回の印刷ジョブのステップS502で取得したステージ処理終了時間と、今回の印刷ジョブのステップS501で取得したステージ処理開始時間の差の平均時間である。例えば、CPU1の画像補正ステージが最初の印刷ジョブの処理を終了した時間が12時00分で、次のジョブの処理を終了した時間が12時00分10秒だったとすると、待ち時間は10秒となる。上述した通り、例えば、アルバムを連続して印刷する商業用印刷装置や、カタログを連続して印刷する商業用印刷装置の場合、同程度のデータサイズのジョブが連続して投入されることが多い。したがって、平均待ち時間を特定することにより、これから処理予定のデータの処理開始までの時間を予測することができる。
The average waiting time is the average waiting time for each print job. Specifically, it is the average time of the difference between the stage processing end time acquired in step S502 of the previous print job and the stage processing start time acquired in step S501 of the current print job. For example, if the time when the image correction stage of the
処理委譲希望フラグは、該CPUの平均処理時間が他のCPUの平均処理時間に比べて設定した閾値以上に大きい場合にONとなるフラグである。他のCPUに処理を委譲する際の通信やデータコピーのコストを鑑み、平均処理時間にそれほどの差が無い場合は処理を委譲しないほうが速度的に有利な場合がある。このため、本実施形態では、閾値を設けることにより、平均処理時間の差が小さい場合は、委譲しないようにする。閾値は、レンダリング部230に予め設定されていてもよいし、ユーザが設定してもよいし、レンダリング部230に予め設定された値を変更できるようにしてもよい。なお、本実施形態においては、通信やデータコピーのコストはないものとし、閾値=0とする。
The processing delegation request flag is a flag that is turned ON when the average processing time of the CPU is larger than a set threshold value compared to the average processing time of other CPUs. In view of communication and data copy costs when delegating processing to other CPUs, it may be advantageous in terms of speed to not delegate processing if there is no significant difference in average processing time. For this reason, in this embodiment, by providing a threshold value, when the difference in the average processing time is small, the delegation is not performed. The threshold value may be set in advance in the
他ジョブ処理可能フラグは、該CPUの平均待ち時間が他のCPUの平均待ち時間に比べて設定した閾値以上に大きい場合にONとなるフラグである。なお、閾値を設けている理由は、処理委譲希望フラグの場合と同様に、処理を委譲しないほうが速度的に有利な場合があるためである。ただし、本実施形態では、通信やデータコピーのコストはないものとし、閾値=0とする。 The other job processable flag is a flag that is turned on when the average waiting time of the CPU is larger than a set threshold value compared to the average waiting time of the other CPU. The reason why the threshold is provided is that, as in the case of the process delegation request flag, it may be advantageous in speed not to delegate the process. However, in this embodiment, it is assumed that there is no cost for communication and data copying, and threshold = 0.
図7(a)では、CPU1の平均処理時間(80msec)は、CPU2の平均処理時間(20msec)やCPU3の平均処理時間(20msec)との差が60msecであり、閾値0よりも大きい。したがって、処理委譲希望フラグはONとなる。また、CPU2の平均待ち時間(30msec)は、CPU1の平均待ち時間(0msec)との差が30msecであり、閾値0よりも大きい。したがって、他ジョブ処理可能フラグはONとなる。
In FIG. 7A, the average processing time (80 msec) of
図8は、処理委譲判定の処理の流れを示すフローチャートである。図8のフローチャートは、CPU101が、ROM102に格納されている制御プログラムをRAM103にロードし、それを実行することにより行われる処理の流れを示す。図8は、図4のステップS403の処理を詳細に説明するためのものである。
FIG. 8 is a flowchart showing the flow of processing delegation determination. The flowchart of FIG. 8 shows the flow of processing performed when the
ステップS701で、処理負荷管理テーブル235から、各CPUの平均処理時間の情報、各CPUの処理委譲希望フラグの情報を取得する。 In step S701, information on the average processing time of each CPU and information on the processing delegation request flag of each CPU are acquired from the processing load management table 235.
ステップS702で、各CPUのステージ処理の処理委譲希望フラグがONか判定する。処理委譲希望フラグがOFFであれば(S702でNo)、処理委譲判定を終了する。処理委譲希望フラグがONであれば(S702でYes)、ステップS703で他のレンダリング部230の通信コントロール部236に問い合わせを行い、S704へ進む。具体的には、他のレンダリング部230に対して、処理委譲希望フラグがONのCPUと同じステージを処理するCPUの他ジョブ処理可能フラグがONであるか問合せをする。なお、問合せを受けた他のレンダリング部230は、処理負荷管理テーブル235から他ジョブ処理可能フラグの情報を取得する。
In step S702, it is determined whether the processing delegation request flag for the stage processing of each CPU is ON. If the process delegation request flag is OFF (No in S702), the process delegation determination is terminated. If the processing delegation request flag is ON (Yes in S702), an inquiry is made to the
ステップS704で、対象のレンダリング部230において処理委譲希望フラグがONの処理ステージと同じステージを処理するCPUであって、他ジョブ処理可能フラグがONのCPUが存在するか判定する。他のレンダリング部230において一つも上述したCPUが存在しない場合(ステップS704でNo)、処理委譲判定を終了する。他のレンダリング部230において該当するCPUが存在した場合(ステップS704でYes)、ステップS705へ進む。
In step S <b> 704, it is determined whether there is a CPU that processes the same stage as the processing stage whose processing delegation request flag is ON in the
ステップS705で、他のレンダリング部230において、委譲希望フラグがONの処理が割当てられているCPUが、次に実行予定の印刷データの処理を実行するまでに、委譲されるデータの処理を完了できるか判定する。本実施形態では、処理委譲希望フラグがONとなっているCPUのステージ処理の平均処理時間が、他のレンダリング部230の処理可能フラグがONとなっているCPUのステージ処理の平均待ち時間以下か判定する。平均処理時間が平均待ち時間より長い場合は、元々そのレンダリング部230に割当てられていたステージ処理が遅れる可能性があるためである。
In step S <b> 705, the processing of the data to be delegated can be completed before the CPU to which the process for which the delegation request flag is ON is assigned in the
平均処理時間が平均待ち時間より大きいと判定された場合(S705でNo)、処理委譲判定を終了する。 If it is determined that the average processing time is greater than the average waiting time (No in S705), the process delegation determination is terminated.
平均処理時間が平均待ち時間以下と判定された場合(S705でYes)、S706で、他のレンダリング部230の処理可能フラグがONとなっているCPUにステージ処理を委譲する。具体的には、処理委譲希望フラグがONとなっているCPUでステージ処理をする予定であったデータをバッファから取得し、通信コントロール部236を介して他のレンダリング部230に送信する。図示しないが、他のレンダリング部230では送信されたデータを該CPUの前段のバッファに保持し、ステージ処理を行った後、処理前のデータを送信したレンダリング部230へ処理後のデータを返信する。
When it is determined that the average processing time is equal to or less than the average waiting time (Yes in S705), in S706, the stage processing is transferred to the CPU whose processing enable flag of the
ステップS707で、他のレンダリング部230で処理を終えたデータ、すなわち、他のレンダリング部230から返信された処理後のデータを受け取り、該CPUの後段のバッファに格納する。
In step S707, the data that has been processed by the
最後に、ステップS708で処理負荷管理テーブル235を更新し、処理委譲希望フラグをOFFにする。 Finally, in step S708, the processing load management table 235 is updated, and the processing delegation request flag is turned OFF.
処理を委譲する際の実際の動作例を図3及び図9を用いて説明する。 An actual operation example when delegating the process will be described with reference to FIGS.
図3は、本実施形態に係る図1のブロック図をより具体的に表した図である。図3に示すように、本実施形態では、印刷装置100はレンダリング部を二つ有するものとし、それぞれレンダリング部1(230a)、レンダリング部2(230b)とする。レンダリング部1(230a)は、三つのCPU1,2,3(それぞれ231a、232a、233a)を有し、それぞれ画像補正、リッピング(RIP)、面付けの各ステージ処理を行うものとする。一つの印刷ジョブに対して三つのステージ処理を行うことで、ビットマップデータが完成する。レンダリング部2(230b)もレンダリング部1(230a)と同様、三つのCPU4,5,6(それぞれ231b、232b、233b)を有するものとし、それぞれ画像補正、リッピング(RIP)、面付けの各ステージ処理を行うものとする。また、CPU1の後段に設けられるバッファは、CPU2の前段に設けられるバッファを兼ねており、CPU2の後段に設けられるバッファは、CPU3の前段に設けられるバッファを兼ねている。
FIG. 3 is a diagram more specifically showing the block diagram of FIG. 1 according to the present embodiment. As shown in FIG. 3, in this embodiment, the
図3における印刷装置100のレンダリング部以外の構成は図1と同じであるため、説明を省略する。
The configuration other than the rendering unit of the
図9は、図3の構成におけるレンダリング部1(230a)およびレンダリング部2(230b)の図中に示した時点(図中、「現在時点」と表記する)での処理状況を示す例である。図9(a)は、横軸は処理時間を示し、処理時間が進むにつれ各CPUでどのジョブを処理中かを示している。なお、現在時点までは、実際に処理にかかった時間であり、現在時点以降の時間は予想時間である。 FIG. 9 is an example showing the processing status of the rendering unit 1 (230a) and the rendering unit 2 (230b) in the configuration of FIG. 3 at the time shown in the drawing (denoted as “current time” in the drawing). . In FIG. 9A, the horizontal axis indicates the processing time, and as the processing time progresses, which job is being processed by each CPU. Note that the time up to the current time is the actual time taken for processing, and the time after the current time is the expected time.
レンダリング部1(230a)には、ジョブA,B,Cが投入されており、現在CPU1(231a)ではジョブCの1ステージ目を、CPU2(232a)ではジョブBの2ステージ目を処理中である。ジョブA,B,Cはいずれもステージ1の処理に時間がかかっており、ステージ2,3の処理は、それに引きずられて次の処理開始までに間がある。すなわち、図中の「現在時点」までに、CPU2(232a),3(233a)が稼働していない時間が存在する。
Jobs A, B, and C are input to the rendering unit 1 (230a). Currently, the first stage of job C is being processed by the CPU 1 (231a), and the second stage of job B is being processed by the CPU 2 (232a). is there. Jobs A, B, and C all take time for processing in
レンダリング部2(230b)には、ジョブD,E,F,Gが投入されており、現在CPU4(231b)ではジョブGの1ステージ目を、CPU5(232b)ではジョブEの2ステージ目を処理中である。ジョブD,E,F,Gはいずれもステージ2の処理に時間がかかっており、ステージ3の処理は、それに引きずられて次の処理開始までに間があり、CPU6(233b)が稼働していない時間が存在する。この「現在時点」での処理負荷管理テーブルを図9(b)に示す。レンダリング部1(230a)はCPU1(231a)の平均処理時間がCPU2(232a),3(233a)に比べて長いため処理委譲希望フラグがONになっている。CPU2(232a)はCPU1(231a)の処理時間に引きずられてステージ処理の開始時間が遅れて平均待ち時間が長くなっているため、他ジョブ処理可能フラグがONになっている。レンダリング部2(230b)はCPU5(233b)の平均処理時間がCPU4(231b),6(232b)に比べて長いため処理委譲希望フラグがONになっている。また、CPU6(233b)は、図示していないがジョブD以前に受け付けていたジョブも、ジョブD同様にステージ3の処理時間が比較的短かったため、平均待ち時間が長くなっている。したがって、他ジョブ処理可能フラグがONになっている。
Jobs D, E, F, and G are input to the rendering unit 2 (230b). Currently, the CPU 4 (231b) processes the first stage of the job G, and the CPU 5 (232b) processes the second stage of the job E. It is in. Jobs D, E, F, and G all take time for
この時点でレンダリング部2(230b)で処理を実行中のジョブGについて考える。まず、ジョブGが投入された時点で図5のステップS403においてCPU4(231b)の画像補正の処理委譲判定を行う。図8のステップS702で、図9(b)に示すレンダリング部2の処理負荷管理テーブル235の画像補正の処理委譲希望フラグを確認する(S701)。レンダリング部2の処理負荷管理テーブル235の画像補正の処理委譲希望フラグはOFFのため(S702でNo)、処理委譲の判定処理を終え、処理委譲することなくレンダリング部2(230b)で処理を行う。次に、ジョブGのCPU5(232b)のRIP処理の処理委譲判定を行う。図8のステップS702で、RIP処理の処理委譲希望フラグを確認し(S701)、処理委譲希望フラグがONのため(S702でYes)ステップS703に進む。レンダリング部1(230a)ではRIP処理の他ジョブ処理可能フラグがONになっているため(S704でYes)、ステップS705に進む。処理を委譲しようとしているCPU5(232b)の平均処理時間は50msecで、委譲処理を受け付けようとしているレンダリング部1(231a)のCPU2(232a)の平均待ち時間30msecよりも大きい。よって、処理委譲不可と判定し、処理委譲判定を終了する。したがって、ジョブGのRIP処理は委譲することなく、レンダリング部2(230b)で処理することとなる。
Consider a job G that is being processed by the rendering unit 2 (230b) at this point. First, at the time when the job G is submitted, the CPU 4 (231b) performs the image correction process delegation determination in step S403 in FIG. In step S702 of FIG. 8, the image correction processing delegation request flag in the processing load management table 235 of the
仮に、ジョブGのRIP処理をレンダリング部1(230a)に委譲した場合について説明する。この場合、レンダリング部1(230a)において、ジョブCの画像補正処理が終わった段階でも委譲されたジョブGのRIP処理が終わらず、ジョブGが委譲されていない場合に即座に処理可能だったジョブCのRIP処理が待たされることになる。ジョブCのRIP処理が遅れることによりコントローラ部210からプリンタエンジン部220へのジョブCのビットマップデータの供給に遅れが生じ、プリンタエンジン部220の動作を止めてしまう恐れがある。これに対し、本実施形態では、S705の判断により、ビットマップデータの供給に遅れが生じるのを抑制することができる。
A case where the RIP processing of job G is transferred to the rendering unit 1 (230a) will be described. In this case, in the rendering unit 1 (230a), even when the image correction processing of the job C is finished, the RIP processing of the delegated job G does not end, and the job that can be immediately processed when the job G is not delegated C's RIP processing is awaited. Since the RIP processing of job C is delayed, the supply of the bitmap data of job C from the
図10は、図3の構成におけるレンダリング部1(230a)およびレンダリング部2(230b)の図中に示した時点(図中、「現在時点」と表記する)での処理状況を示す例である。図10(a)は、横軸は処理時間を示し、処理時間が進むにつれ各CPUでどのジョブを処理中かを示している。なお、現在時点までは、実際に処理にかかった時間であり、現在時点以降の時間は予想時間である。 FIG. 10 is an example showing the processing status of the rendering unit 1 (230a) and the rendering unit 2 (230b) in the configuration of FIG. 3 at the time shown in the drawing (denoted as “current time” in the drawing). . In FIG. 10A, the horizontal axis indicates the processing time, and as the processing time advances, which job is being processed by each CPU. Note that the time up to the current time is the actual time taken for processing, and the time after the current time is the expected time.
図10(a)では、レンダリング部1(230a)には、ジョブA,B,Cが投入されており、現在、ジョブCの1ステージ目を処理中である。ジョブA,B,Cは、いずれも画像補正の処理に時間がかかっているのは、図9に示す例と同じであるが、画像補正の平均処理時間が図9よりも長い。レンダリング部2(230b)にはジョブD,E,F,Gが投入されており、その状況は図9と同様であるため、説明を省略する。この「現在時点」での処理負荷管理テーブルを図10(b)に示す。レンダリング部1(230a)は、CPU1(231a)の平均処理時間(画像補正の平均処理時間)がCPU2(232a),3(233a)に比べて長いため処理委譲希望フラグがONになっている。CPU2(232a)はCPU1(231a)の処理時間に引きずられてステージ処理の開始時間が遅れて平均待ち時間が長くなっているため、他ジョブ処理可能フラグがONになっている。レンダリング部2(230b)は、CPU5(233b)の平均処理時間がCPU4(231b),6(232b)に比べて長いため処理委譲希望フラグがONになっている。また、CPU6(233b)は、平均待ち時間が長くなっているため、他ジョブ処理可能フラグがONになっている。 In FIG. 10A, jobs A, B, and C are input to the rendering unit 1 (230a), and the first stage of job C is currently being processed. Jobs A, B, and C all take time for image correction processing, as in the example shown in FIG. 9, but the average processing time for image correction is longer than that in FIG. Jobs D, E, F, and G are input to the rendering unit 2 (230b), and the situation is the same as in FIG. The processing load management table at this “current time” is shown in FIG. In the rendering unit 1 (230a), since the average processing time (average processing time for image correction) of the CPU 1 (231a) is longer than that of the CPUs 2 (232a) and 3 (233a), the processing delegation request flag is ON. Since the CPU 2 (232a) is dragged by the processing time of the CPU 1 (231a) and the start time of the stage processing is delayed and the average waiting time is increased, the other job processable flag is ON. In the rendering unit 2 (230b), since the average processing time of the CPU 5 (233b) is longer than that of the CPUs 4 (231b) and 6 (232b), the processing delegation request flag is ON. Further, since the CPU 6 (233b) has a longer average waiting time, the other job processable flag is ON.
この「現在時点」でのレンダリング部2(230b)のジョブGのRIP処理の委譲について説明する。図8のステップS705までは、図9のときと同じ処理フローとなるため説明を省略する。ステップS705において、処理を委譲しようとしているCPU5(232b)の平均処理時間は50msecで、委譲処理を受け付けようとしているレンダリング部1(233a)のCPU2(232a)の平均待ち時間60msecよりも小さい。よって、処理委譲が可能と判断しレンダリング部2(230b)のジョブGのRIPステージ処理をレンダリング部1(230a)に処理委譲する。 The delegation of the RIP processing of the job G of the rendering unit 2 (230b) at the “current time” will be described. Since the processing flow up to step S705 in FIG. 8 is the same as that in FIG. 9, the description thereof is omitted. In step S705, the average processing time of the CPU 5 (232b) trying to delegate processing is 50 msec, which is shorter than the average waiting time of 60 msec of the CPU 2 (232a) of the rendering unit 1 (233a) attempting to accept the delegation processing. Therefore, it is determined that the processing can be transferred, and the RIP stage processing of the job G of the rendering unit 2 (230b) is transferred to the rendering unit 1 (230a).
ジョブGのRIP処理の処理委譲を行って所定時間を経過した時点の処理状況の例を図11に示す。図11では、ジョブGのRIP処理は、画像補正処理が終わったと同時にレンダリング部2(230b)からレンダリング部1(230a)に送信されている。レンダリング部1(230a)のCPU2(232a)では、ジョブBのRIP処理を終えた後、委譲されたジョブGのRIP処理を行い、処理結果をレンダリング部2(230b)に返す。その後CPU2(232a)ではジョブCのRIP処理を行っている。このとき、ジョブCのRIP処理の開始時間は、ジョブGの処理を委譲されなかった場合と同じであり、ジョブCの終了時間が遅延していない。レンダリング部2(230b)ではジョブGのRIP処理をレンダリング部1(230a)に委譲したため、CPU5(233b)では、ジョブFのRIP処理を終えた後にジョブHのRIP処理を開始することが可能となる。また、ジョブGの処理委譲によりジョブGのRIP処理終了時間が早まりCPU6(233b)においてジョブGの面付け処理開始時間が早まる。結果として、CPU6(233b)は、無稼働時間が短縮され、ジョブGの終了時間が早まる。 FIG. 11 shows an example of the processing status when a predetermined time has elapsed after delegation of the RIP processing of job G. In FIG. 11, the RIP processing for job G is transmitted from the rendering unit 2 (230b) to the rendering unit 1 (230a) at the same time as the image correction processing is completed. The CPU 2 (232a) of the rendering unit 1 (230a), after finishing the RIP processing of the job B, performs the RIP processing of the delegated job G and returns the processing result to the rendering unit 2 (230b). Thereafter, the CPU 2 (232a) performs the RIP process for job C. At this time, the start time of RIP processing for job C is the same as when job G processing is not delegated, and the end time of job C is not delayed. Since the rendering unit 2 (230b) delegates the RIP processing of the job G to the rendering unit 1 (230a), the CPU 5 (233b) can start the RIP processing of the job H after finishing the RIP processing of the job F. Become. Also, the job G process delegation increases the RIP processing end time of the job G and the imposition processing start time of the job G in the CPU 6 (233b). As a result, the CPU 6 (233b) shortens the non-operation time and increases the end time of the job G.
本実施形態では、複数の画像処理部(レンダリング部1及びレンダリング部2)を備え、一の画像処理部(レンダリング部1)が有するCPU2に、異なる画像処理部(レンダリング部2)の処理を実行させる。具体的には、処理委譲を希望するCPU(画像処理部)の平均処理時間と、他ジョブの処理を可能とするCPU(画像処理部)の平均待ち時間を比較して、処理の委譲をするか判定する。これにより、他ジョブの処理を可能とするCPU(画像処理部)に元々割当てられていたジョブの印刷データの終了時間を変更させることなく、処理委譲を希望するCPUを備えるレンダリング部の処理時間を短縮することができる。
In the present embodiment, a plurality of image processing units (
本実施形態では、上述した通り、他ジョブの処理を可能とするCPU(画像処理部)に元々割当てられていたジョブの印刷データの終了時間を変更させることなく、処理委譲を希望するCPUを備えるレンダリング部の処理時間を短縮することができる。すなわち、他の画像処理部に処理を渡さない場合に比べて、他の画像処理部に処理を委譲した画像処理の終了時間を早くすることができ、受信した印刷ジョブデータの全体の処理速度を向上させることができる。 In the present embodiment, as described above, a CPU that wishes to transfer processing is provided without changing the end time of print data of a job originally assigned to a CPU (image processing unit) that can process other jobs. Processing time of the rendering unit can be shortened. That is, compared with the case where the processing is not passed to another image processing unit, the end time of the image processing delegated to the other image processing unit can be shortened, and the overall processing speed of the received print job data can be increased. Can be improved.
(実施形態2)
本実施形態では、画像処理部(レンダリング部)間のデータの通信速度を考慮して、委譲を行うか判定する。なお、本実施形態のハードウェアの構成は実施形態1と同様であるため、ハードウェアの構成については説明を省略する。なお、図12を用いて、本実施形態について説明するが、図3と同様の構成については、図3と同一番号を付し、説明を省略する。
(Embodiment 2)
In the present embodiment, it is determined whether to perform delegation in consideration of the data communication speed between image processing units (rendering units). Note that the hardware configuration of the present embodiment is the same as that of the first embodiment, and thus the description of the hardware configuration is omitted. Although the present embodiment will be described with reference to FIG. 12, the same components as those in FIG. 3 are denoted by the same reference numerals as those in FIG.
実施形態2に係る印刷装置100は、コントローラ部210と、プリンタエンジン220と、複数のレンダリング部230とを有する。コントローラ部210及びプリンタエンジン220は、実施形態1と同様であるため、説明を省略する。
The
レンダリング部1230は、コントローラ部1210が作成したコマンドやデータに基づきレンダリング処理を行い、印刷用ビットマップデータの生成を行う。印刷装置100は、レンダリング部1230を複数有し、各レンダリング部1230は、一以上のCPUを有する。図3に示すように、レンダリング部1230は、3つのCPU(CPU231〜233)と、バッファと、バッファと、負荷監視部234と、処理負荷管理テーブル235と、通信コントロール部1236と、を有する。なお、3つのCPU(CPU231〜233)、バッファ、負荷監視部234、及び処理負荷管理テーブル235は、実施形態1と同様であるため説明を省略する。また、本実施形態では、各レンダリング部1230は、いずれも同じ構成を有するものとするが、一部が異なる構成となっていてもよい。
The rendering unit 1230 performs rendering processing based on commands and data created by the controller unit 1210, and generates printing bitmap data. The
本実施形態に係る通信コントロール部1236は、レンダリング部間の通信速度情報1237を保持する。また、通信コントロール部1236は、コントローラ部210から印刷ジョブデータを受信し、バッファに保持する。また、通信コントロール部1236は、CPU233の処理結果をCPU233の後段のバッファから取得し、ビットマップデータとしてコントローラ部210へ送信する。さらに、本実施形態では、通信コントロール部236は、特定のCPUの処理結果をそのCPUの後段に設けられるバッファから取得し、他のレンダリング部1230に送信し、特定のCPUのステージ処理を他のレンダリング部のCPUに委譲する。
The communication control unit 1236 according to the present embodiment holds communication speed information 1237 between rendering units. Further, the communication control unit 1236 receives the print job data from the
図14のフローチャートを用いて、本実施形態の処理委譲の判定処理について説明する。図13のフローチャートは、CPU101が、ROM102に格納されている制御プログラムをRAM103にロードし、それを実行することにより行われる処理の流れを示す。図13は、図4のステップS403の処理を詳細に説明するものである。
The process delegation determination process of this embodiment will be described with reference to the flowchart of FIG. The flowchart of FIG. 13 shows the flow of processing performed when the
ステップS704までは、図8と同じ処理フローのため説明を省略する。S704でYesと判定された場合、ステップS1301で、処理委譲希望フラグがONのステージ処理のデータサイズをバッファから取得する。本実施形態では、データサイズの取得は、処理委譲希望フラグがONのステージ処理の前段のステージ処理が終わった処理済データのサイズを取得する。なお、データサイズの取得はこれに限定されず、前段のステージ処理が終わっていなかった場合でも、近傍数ジョブの該処理委譲希望フラグがONのステージ処理のデータサイズの平均値を取得してもよい。 Up to step S704, the processing flow is the same as that in FIG. If YES in step S704, the data size of the stage process whose process delegation request flag is ON is acquired from the buffer in step S1301. In the present embodiment, the data size is acquired by acquiring the size of the processed data after the stage processing preceding the stage processing whose processing delegation request flag is ON. The acquisition of the data size is not limited to this, and even if the previous stage processing has not been completed, even if the average value of the data size of the stage processing in which the processing delegation request flag of the number of neighboring jobs is ON is acquired. Good.
次に、ステップ1302で、通信コントロール部1236は、レンダリング部間の通信速度情報1237を参照し、他のレンダリング部1230に該データサイズを送信する際に必要な転送時間を計算する。なお、本実施形態では、転送時間を計算するものとしたが、これに限定されず、バッファ等に保持されたデータサイズと転送時間のテーブルに基づいて転送時間を取得してもよい。レンダリング部間の通信速度情報1237の例を図13に示す。図13は、レンダリング部2(1230b)の通信コントロール部236bが他のレンダリング部を通信相手とした場合の通信速度情報1237を示す。図13に示すように、レンダリング部2は、通信相手がレンダリング部1(1230a)である場合、通信速度は100Mbpsである。なお、自身と通信することは無いため、レンダリング部2(1230b)との通信速度情報は無い。本実施形態では、レンダリング部1230を二つ有する印刷装置100を例に挙げて説明するが、印刷装置100が3以上のレンダリング部1230を有する場合や、さらに他のレンダリング部を用いる場合は、各レンダリング部に対する通信速度情報を保持する。ステップS1302では、図12に記載のようなレンダリング部間の通信速度情報1237b用いてデータ転送時間を算出する。例えば、処理委譲しようとしているステージ処理のデータサイズが10MByteだった場合、レンダリング部2とレンダリング部1で該データを送受信するのにかかる時間は、
10MByte/100Mbps/8bit×通信回数2=0.025sec=25msecとなる。なお、通信回数が2回とは、1回目は処理前のデータの送信であり、2回目は処理後の印刷データの受信である。
Next, in step 1302, the communication control unit 1236 refers to the communication speed information 1237 between the rendering units, and calculates a transfer time necessary for transmitting the data size to the other rendering units 1230. In this embodiment, the transfer time is calculated. However, the present invention is not limited to this, and the transfer time may be acquired based on a data size and transfer time table held in a buffer or the like. An example of communication speed information 1237 between rendering units is shown in FIG. FIG. 13 shows communication speed information 1237 when the
10 MByte / 100 Mbps / 8 bit × number of
ステップS1303で、処理委譲希望フラグがONのCPUのステージ処理の平均処理時間とステップS1302で導出した転送時間との合計時間が、他のレンダリング部の他ジョブ処理可能フラグがONとなっているステージ処理の平均待ち時間以下か判定する。例えば、レンダリング部1(1230a)、2(1230b)が、図10に示した処理状況である場合、処理を委譲しようとしているCPU5(232b)の平均処理時間は50msecで、データ転送時間は上述の通り25msecである。これらの和である75msecは、委譲処理を受け付けようとしているCPU2(232a)の平均待ち時間60msecよりも大きい(S1303でNo)。したがって、処理委譲は不可と判定し処理委譲の判定を終了する。この場合、ジョブGのRIP処理は委譲することなく、レンダリング部2(1230b)で処理することとなる。仮に、ジョブGのRIP処理をレンダリング部1(1230a)に委譲した場合、レンダリング部1(1230a)において、ジョブCの画像補正処理が終わった段階でも委譲されたジョブGのRIP処理は実行中となる。したがって、ジョブGが委譲されなかった場合に即座に処理可能だったジョブCのRIP処理が待たされることになってしまう。ジョブCのRIP処理が遅れることによりコントローラ部210からプリンタエンジン部220へのジョブCのビットマップデータの供給に遅れが生じ、プリンタエンジン部220の動作を止めてしまう恐れがある。これに対し、本実施形態では、S1303の判断により、ビットマップデータの供給に遅れが生じるのを抑制することができる。本実施形態では、複数のレンダリング部が処理中の複数のステージの処理状況を管理し、複数のレンダリング部間で、処理負荷が重い処理を他の処理に影響しない範囲で委譲しあうことで処理速度を向上させることができる。その結果、ユーザは、より高速にレンダリング結果を得ることができる。
In step S1303, the total time of the stage processing average processing time of the CPU whose processing delegation request flag is ON and the transfer time derived in step S1302 is the stage in which the other job processing enable flag of other rendering units is ON. It is determined whether it is below the average waiting time for processing. For example, when the rendering units 1 (1230a) and 2 (1230b) are in the processing state shown in FIG. 10, the average processing time of the CPU 5 (232b) trying to delegate processing is 50 msec, and the data transfer time is The street is 25 msec. The sum of 75 msec is larger than the average waiting time of 60 msec of the CPU 2 (232a) that is about to accept the delegation process (No in S1303). Therefore, it is determined that the process delegation is not possible, and the process delegation determination ends. In this case, the RIP processing of job G is processed by the rendering unit 2 (1230b) without delegation. If the RIP process of job G is delegated to the rendering unit 1 (1230a), the RIP process of the delegated job G is being executed in the rendering unit 1 (1230a) even when the image correction process of the job C is completed. Become. Therefore, when the job G is not delegated, the RIP processing of the job C that can be immediately processed is awaited. Since the RIP processing of job C is delayed, the supply of the bitmap data of job C from the
(他の実施形態)
本発明は上述した実施形態に限定されるものではない。例えば、上述した実施形態では、レンダリング部は、印刷装置が全て備えるものとしたが、一部又は全部を印刷装置に接続される外部装置が備えるものとしてもよい。この場合は、処理負荷管理テーブルでは、通信速度も考慮して閾値を設定するようにすればよい。
(Other embodiments)
The present invention is not limited to the embodiment described above. For example, in the above-described embodiment, the rendering unit is all included in the printing apparatus, but a part or all of the rendering unit may be included in an external apparatus connected to the printing apparatus. In this case, in the processing load management table, the threshold may be set in consideration of the communication speed.
上述した実施形態では、複数の印刷ジョブ(印刷ジョブデータ)を受信した場合に複数のレンダリング部にジョブを振り分ける場合を例に挙げて説明したが、これに限定されるものではなく、複数の処理単位を有する印刷ジョブデータの画像処理にも適用できる。具体的には、例えば、1つの印刷ジョブデータが複数ページを有している場合、印刷ジョブデータを分割して、各レンダリング部にそれぞれ数ページずつ振り分けてもよい。 In the above-described embodiment, a case where a job is distributed to a plurality of rendering units when a plurality of print jobs (print job data) is received has been described as an example. However, the present invention is not limited to this, and a plurality of processes are performed. The present invention can also be applied to image processing of print job data having units. Specifically, for example, when one print job data has a plurality of pages, the print job data may be divided and distributed to each rendering unit by several pages.
また、上述した実施形態では、処理委譲を希望するレンダリング部のステージの平均処理時間と、他ジョブの処理が可能なレンダリング部のステージの平均待ち時間に基づいて、処理委譲をするか判定したが、これに限定されるものではない。受け渡し先となるレンダリング部において、その受け渡し先となるレンダリング部のCPUの処理の空き時間に、処理委譲を希望するレンダリング部から受け渡したいデータの処理ができるか判定できるものであればよい。すなわち、受け渡し先となるレンダリング部のCPUが既に割当てられている実行予定の印刷データの処理を開始するまでに、受け渡したい印刷データの処理が完了できるか判定できるものであればよい。例えば、処理委譲したいデータのデータサイズに基づいて、受け渡し先となるレンダリング部における処理委譲したいデータの処理時間を算出し、受け渡し先となるレンダリングの次の処理開始までの時間と比較してもよい。この場合は、受け渡し先となるレンダリングの次の処理開始までの時間も、例えば、処理中のデータのデータサイズに基づいて算出してもよい。 In the embodiment described above, it is determined whether to delegate processing based on the average processing time of the stage of the rendering unit that desires processing delegation and the average waiting time of the stage of the rendering unit that can process other jobs. However, the present invention is not limited to this. The rendering unit that is the delivery destination may be anything as long as it can determine whether the processing of the data desired to be delivered from the rendering unit that is desired to be delegated can be performed during the processing time of the CPU of the rendering unit that is the delivery destination. That is, it is only necessary to be able to determine whether or not the processing of the print data to be delivered can be completed before the CPU of the rendering unit that is the delivery destination starts the processing of the print data that is scheduled to be executed. For example, based on the data size of the data to be transferred, the processing time of the data to be transferred in the rendering unit that is the transfer destination may be calculated and compared with the time until the start of the next process of the rendering that is the transfer destination. . In this case, the time until the start of the next processing of rendering that is a delivery destination may be calculated based on the data size of the data being processed, for example.
また、上述した実施形態では、各レンダリング部がCPUを複数備えるものとしたが、これに限定されず、各ステージ処理を実行できるステージ処理部であればよい。例えば、ステージ処理専用のハードウェアであってもよいし、GPU等であってもよい。 In the above-described embodiment, each rendering unit includes a plurality of CPUs. However, the present invention is not limited to this, and any stage processing unit that can execute each stage process may be used. For example, hardware dedicated to stage processing may be used, or a GPU or the like may be used.
また、上述した実施形態では、各レンダリング部230が負荷監視部234及び処理負荷管理テーブル235を備えるものとしたが、これに限定されるものではない。例えば、複数のレンダリング部230で共通の負荷監視部234としてもよいし、複数のレンダリング部で共通の処理負荷管理テーブル235としてもよい。
In the above-described embodiment, each
上述した実施形態では、レンダリング部を2つ用いる場合について説明したが、3つ以上のレンダリング部を用いる場合についても同様である。 In the above-described embodiment, the case where two rendering units are used has been described, but the same applies to the case where three or more rendering units are used.
上述した実施形態では、CPU101が処理委譲の判定を行うものとしたが、これに限定されず、各レンダリング部が判定を行う手段を備えていてもよい。
In the above-described embodiment, the
上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウエア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウエアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしてもよい。また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしてもよい。 The above-described embodiment can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (CPU, MPU, etc.) of the system or apparatus reads the program. It is a process to be executed. Further, the program may be executed by one computer or may be executed in conjunction with a plurality of computers. Further, it is not necessary to implement all of the above-described processing by software, and part or all of the processing may be realized by hardware such as an ASIC. Further, the CPU is not limited to the one that performs all the processing by one CPU, and a plurality of CPUs may perform the processing while appropriately cooperating.
100 印刷装置
101 CPU
102 ROM
103 RAM
210 コントローラ部
220 プリンタエンジン部
230 レンダリング部
100
102 ROM
103 RAM
210
Claims (10)
前記受信手段により受信した印刷データに対して複数の画像処理をそれぞれ異なる処理部により順に実行する画像処理手段と、
一の画像処理手段に割当てられている第1印刷データの第1画像処理を、他の画像処理手段に委譲させるか判定する判定手段と、
を有し、 前記判定手段は、他の画像処理手段において前記第1画像処理が割当てられている処理部が、次に実行予定の印刷データの第1画像処理を実行するまでに前記第1印刷データの第1画像処理を完了できる場合、委譲させると判定することを特徴とする制御装置。 Receiving means for receiving print data;
Image processing means for sequentially executing a plurality of image processing on the print data received by the receiving means by different processing units;
Determining means for determining whether or not to delegate the first image processing of the first print data assigned to one image processing means to another image processing means;
The determination unit includes the first printing until the processing unit to which the first image processing is assigned in another image processing unit executes the first image processing of print data to be executed next. A control device that determines to delegate when the first image processing of data can be completed.
前記判定手段は、前記管理手段により管理された処理状況に基づいて委譲させるか判定することを特徴とする請求項1〜4のいずれか1項に記載の制御装置。 A management unit that manages the processing status of each processing unit of each image processing unit;
The control device according to claim 1, wherein the determination unit determines whether to delegate based on the processing status managed by the management unit.
第1画像処理手段に割当てられている第1印刷データの第1画像処理を、他の画像処理手段に委譲させるか判定する判定工程を備え、
前記判定工程では、他の画像処理手段において前記第1画像処理が割当てられている処理部が、次に実行予定の印刷データの第1画像処理を実行するまでに前記第1印刷データの第1画像処理を完了できる場合、委譲させると判定することを特徴とする制御方法。 A control method for an apparatus including a plurality of image processing means for sequentially executing a plurality of image processing on print data by different processing units,
A determination step of determining whether to delegate the first image processing of the first print data assigned to the first image processing means to another image processing means;
In the determination step, the processing unit to which the first image processing is assigned in another image processing unit executes the first image processing of the first print data before executing the first image processing of the print data to be executed next. A control method characterized in that when image processing can be completed, it is determined to delegate.
The program which makes a computer function as each means of the control apparatus of any one of Claims 1-8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014249379A JP2016107570A (en) | 2014-12-09 | 2014-12-09 | Control device, control method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014249379A JP2016107570A (en) | 2014-12-09 | 2014-12-09 | Control device, control method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016107570A true JP2016107570A (en) | 2016-06-20 |
Family
ID=56121733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014249379A Pending JP2016107570A (en) | 2014-12-09 | 2014-12-09 | Control device, control method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016107570A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020086516A (en) * | 2018-11-15 | 2020-06-04 | キヤノン株式会社 | Information processing device, control method of information processing device, and program |
-
2014
- 2014-12-09 JP JP2014249379A patent/JP2016107570A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020086516A (en) * | 2018-11-15 | 2020-06-04 | キヤノン株式会社 | Information processing device, control method of information processing device, and program |
US11556632B2 (en) | 2018-11-15 | 2023-01-17 | Canon Kabushiki Kaisha | Information processing apparatus and method of controlling information processing apparatus |
JP7210238B2 (en) | 2018-11-15 | 2023-01-23 | キヤノン株式会社 | Information processing device, control method for information processing device, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8493597B2 (en) | Image processing apparatus with a change processing section and a change requesting section for processing instructions of change | |
US20140043632A1 (en) | Image forming apparatus, method of controlling the same, and image forming system | |
JP6238711B2 (en) | Printing apparatus, printing control method, and program | |
US9338320B2 (en) | Image forming apparatus and method of controlling the same | |
US8730506B2 (en) | Image forming apparatus that can request ending time for processing print data by an external apparatus from the external apparatus and control method thereof | |
JP5673968B2 (en) | Image forming apparatus and image forming system | |
US20140043631A1 (en) | Image forming apparatus and method of controlling the same | |
JP2022164669A (en) | Image formation device, method for controlling image formation device and program | |
JP4696748B2 (en) | Image forming system, interrupt processing method, and printing apparatus | |
JP6127689B2 (en) | Printing apparatus and printing system | |
JP6512902B2 (en) | Image processing apparatus, control method thereof and control program | |
EP3336683A1 (en) | Image processing apparatus and method to form image on sheet using page image data and object information | |
JP5929431B2 (en) | Image recording apparatus, control method for image recording apparatus, and control program | |
JP2008077209A (en) | Device management method and device management system | |
JP2016107570A (en) | Control device, control method, and program | |
JP2016172331A (en) | Image formation method, information processing method and program | |
US9047552B2 (en) | Forming system and image forming apparatus that generate image log data to server | |
JP5326595B2 (en) | Image forming apparatus and program | |
US9811769B2 (en) | Printing apparatus, information processing apparatus and method for controlling the information processing apparatus, and storage medium for spooling data to perform print processing | |
JP2014235679A (en) | Server device, control method of server device, and program | |
JP6127716B2 (en) | Printing device | |
US20150271362A1 (en) | Image processing apparatus, image processing method, and non-transitory recording medium storing image processing program | |
JP2015176604A (en) | Image forming system, information processor, and image forming apparatus | |
JP6550874B2 (en) | Image forming apparatus, control method and control program | |
JP6344145B2 (en) | Image forming apparatus and image forming program |