JP2016107570A - Control device, control method, and program - Google Patents

Control device, control method, and program Download PDF

Info

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
Application number
JP2014249379A
Other languages
Japanese (ja)
Inventor
達彦 冨田
Tatsuhiko Tomita
達彦 冨田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014249379A priority Critical patent/JP2016107570A/en
Publication of JP2016107570A publication Critical patent/JP2016107570A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Facsimiles In General (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a control device, a control method, and a program that can more certainly reduce the time required for image processing operations.SOLUTION: A control device includes: a receiving unit 211 that receives print data; and a plurality of image processing units 230 each of which assigns and executes a plurality of image processing operations on the received print data to a plurality of CPUs 231 to 233. The control device determines whether to transfer a first image processing operation on first print data, which is assigned to a first CPU of a first rendering unit, to a first CPU of a second rendering unit. The control device determines to transfer the operation if the first image processing operation on the first print data can be completed before execution of a first image processing operation on print data that will be subsequently executed by the first CPU of the second rendering unit.SELECTED DRAWING: Figure 2

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 Patent Document 1, in an image forming apparatus in which image data processing of a print job is divided into a plurality of processing processes (hereinafter also referred to as “stages”) and processed by a plurality of processors, the processing sharing is performed among the plurality of processors. Is disclosed. Specifically, by assigning the processing of another stage to a processor that has finished processing of a certain stage, a processor with a small amount of processing allocated can be operated without pausing.

特開2004−326307号公報JP 2004-326307 A

しかしながら、特許文献1では、各プロセッサが複数種の画像処理を実行しており、特定の画像処理を実行するプロセッサを複数用いる場合については言及されていなかった。なお、特許文献1に記載の方法を、特定の画像処理を実行するプロセッサを複数有する画像処理部を複数用いる画像処理装置に適用した場合、画像処理を高速化できないことがある。画像処理部を複数用いる際に、あるステージの処理を終えたプロセッサに対し他のステージの処理を割り振った場合の問題点について図15及び図16を用いて説明する。   However, Patent Document 1 does not mention a case in which each processor executes a plurality of types of image processing and a plurality of processors that execute specific image processing are used. Note that when the method described in Patent Document 1 is applied to an image processing apparatus that uses a plurality of image processing units including a plurality of processors that execute specific image processing, the image processing may not be accelerated. When using a plurality of image processing units, a problem that occurs when processing of another stage is assigned to a processor that has finished processing of a certain stage will be described with reference to FIGS. 15 and 16.

図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 CPUs 1, 2, 3 is processed. Specifically, first, the processing of stage 1 of job A is performed by the CPU 1, and the processing result is held in the buffer. The CPU 2 acquires the processing result of the stage 1 from the buffer and performs the processing of the stage 2. After finishing the processing of stage 1 of job A, CPU 1 starts the processing of stage 1 of job B. In this way, the processing time can be increased because the three CPUs process different jobs in parallel. Here, when the processing time of each stage in each CPU does not vary among CPUs as shown in FIG. 15B, the CPU can continue to operate as long as jobs continue to be submitted. However, since the elements that make up a print job actually differ from job to job, the time taken to process each stage varies from job to job.

図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 stage 1 is heavier than those in stage 2 and stage 3 are input. Since the CPU 2 cannot start the stage 2 process until the stage 1 process ends, the CPU 2 is operating after the job A stage 2 process is completed and before the job B stage 2 process is started. There is no time. Here, a case where there is an image processing apparatus 2 that operates in parallel with the image processing apparatus 1 of FIG. FIG. 16B is a diagram illustrating an operation example when three jobs with heavy processing in the stage 2 are input to the image processing apparatus 2. In the image processing apparatus 2, as in the image processing apparatus 1, after the processing of the stage 3 of the job D is completed, the CPU 6 has a period of not operating until the processing of the stage 3 of the job E is started. Therefore, when processing of an unprocessed stage is assigned to a CPU that is not operating, the result is as shown in FIG.

図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 image processing apparatuses 1 and 2 when the processing of the job F that is scheduled to be performed by the CPU 5 of the image processing apparatus 2 is allocated when the CPU 2 of the image processing apparatus 1 is not in operation after finishing the processing of the job A. It is an operation example. As illustrated in FIG. 17, the image processing apparatus 2 allocates the processing of the stage 2 with a high processing load to the image processing apparatus 1, thereby shortening the processing end time. On the other hand, the image processing apparatus 1 performs processing of the stage 2 of the image processing apparatus 2 during the non-operating time of the CPU 2. As a result, the start of processing of job B of CPU 2 that was supposed to start after CPU 1 completed processing of job B is delayed due to processing of interrupted job F, and as a result, the end time of job B is not interrupted. It will be delayed compared to the case. In this way, simply assigning a process to a CPU that is free at a certain timing delays the start of the process that was scheduled to be performed in the past. In particular, in a printing apparatus that performs image processing for the next printing while printing a raster image that has been drawn, the printing apparatus stops when the processing is not completed as scheduled, and productivity is significantly reduced.
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.

本発明の一実施形態に係る印刷装置のハードウェアの構成を示す図である。FIG. 2 is a diagram illustrating a hardware configuration of a printing apparatus according to an embodiment of the present invention. 本発明の一実施形態に係る印刷装置における制御の構成を説明するためのブロック図である。It is a block diagram for demonstrating the structure of control in the printing apparatus which concerns on one Embodiment of this invention. 本発明の一実施形態に係る印刷装置における制御の構成を説明するためのブロック図である。It is a block diagram for demonstrating the structure of control in the printing apparatus which concerns on one Embodiment of this invention. 本発明の一実施形態に係るコントローラ部の処理を示すフローチャートである。It is a flowchart which shows the process of the controller part which concerns on one Embodiment of this invention. 本発明の一実施形態に係る各レンダリング部の処理を示すフローチャートである。It is a flowchart which shows the process of each rendering part which concerns on one Embodiment of this invention. 本発明の一実施形態に係る負荷監視部の処理を示すフローチャートである。It is a flowchart which shows the process of the load monitoring part which concerns on one Embodiment of this invention. 本発明の一実施形態に係る処理負荷管理テーブルの例を示す図である。It is a figure which shows the example of the processing load management table which concerns on one Embodiment of this invention. 本発明の一実施形態に係る処理委譲判定の第一処理を示すフローチャートである。It is a flowchart which shows the 1st process of the process transfer determination which concerns on one Embodiment of this invention. 本発明の一実施形態に係る第一動作例を示す図である。It is a figure which shows the 1st operation example which concerns on one Embodiment of this invention. 本発明の一実施形態に係る第二動作例を示す図である。It is a figure which shows the 2nd operation example which concerns on one Embodiment of this invention. 本発明の一実施形態に係る第三動作例を示す図である。It is a figure which shows the 3rd operation example which concerns on one Embodiment of this invention. 本発明の一実施形態に係る印刷装置における制御の構成を説明するためのブロック図である。It is a block diagram for demonstrating the structure of control in the printing apparatus which concerns on one Embodiment of this invention. 本発明の一実施形態に係るレンダリング部間通信速度情報例である。It is an example of the communication speed information between the rendering parts which concerns on one Embodiment of this invention. 本発明の一実施形態に係る処理委譲判定の第二処理を示すフローチャートである。It is a flowchart which shows the 2nd process of the process transfer determination which concerns on one Embodiment of this invention. 複数のプロセッサで複数のステージ処理を並行して処理する例を説明する図である。It is a figure explaining the example which processes a some stage process in parallel with a some processor. 複数のプロセッサ間で複数のステージ処理を並行して処理する際の状況を示す図である。It is a figure which shows the condition at the time of processing a several stage process in parallel between several processors. 複数のプロセッサ間でステージ処理を委譲した際の状況を示す図である。It is a figure which shows the condition at the time of delegating a stage process between several processors.

(実施形態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 printing apparatus 100 includes a central processing unit (CPU) 101, a ROM 102, a RAM 103, a communication unit 104, a recording unit 105, an operation unit 106, and a display unit 107. These are connected to each other via a system bus.

CPU101は、ROM102に記憶されているプログラムに従って、RAM103、通信部104、記録部105、操作部106及び表示部107を制御する。   The CPU 101 controls the RAM 103, the communication unit 104, the recording unit 105, the operation unit 106, and the display unit 107 in accordance with a program stored in the ROM 102.

ROM102は、CPU101が実行する各種制御プログラムや印刷装置100の各種動作に必要な固定データを格納する。例えば、印刷装置100の記録(印刷)処理を実行するプログラムを記憶する。   The ROM 102 stores various control programs executed by the CPU 101 and fixed data necessary for various operations of the printing apparatus 100. For example, a program for executing a recording (printing) process of the printing apparatus 100 is stored.

RAM103は、CPU101の作業エリアとして用いられたり、種々の受信データの一時格納領域として用いられたり、各種設定データを記憶させたりする。外部装置10から送られてくる記録データ(印刷データ)、即ち、記録部105で記録(印刷)される記録データは、RAM103に一時的に記憶される。   The RAM 103 is used as a work area for the CPU 101, used as a temporary storage area for various received data, and stores various setting data. Record data (print data) sent from the external device 10, that is, record data recorded (printed) by the recording unit 105 is temporarily stored in the RAM 103.

通信部104は、外部装置と印刷装置100との通信を制御する。
記録部(印刷部)105は、後述するプリンタエンジン部を有する。
操作部106は、電源ボタン、リセットボタンなどの各種ボタンを含み、ユーザが印刷装置100を操作する際に使用される。
The communication unit 104 controls communication between the external apparatus and the printing apparatus 100.
The recording unit (printing unit) 105 has a printer engine unit described later.
The operation unit 106 includes various buttons such as a power button and a reset button, and is used when the user operates the printing apparatus 100.

表示部107は、例えば、タッチパネルの液晶ディスプレイで構成され、印刷装置100の状態や各種設定を表示する。なお、ユーザは、表示部107を介して、各種設定の入力を行うこともできる。表示部107は、操作指示の受付や装置状態の表示を行う。   The display unit 107 is configured by, for example, a liquid crystal display such as a touch panel, and displays the state of the printing apparatus 100 and various settings. The user can also input various settings via the display unit 107. The display unit 107 receives an operation instruction and displays an apparatus state.

図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 printing apparatus 100 according to the first embodiment includes a controller unit 210, a printer engine 220, and a plurality of rendering units 230. Each of these components may be realized, for example, as hardware implemented in the printing apparatus 100 in FIG. 1, or may be realized in cooperation with hardware and software.

データに基づき画像を印刷する印刷装置100は、HostPC300からPDL等の印刷ジョブデータ(印刷データともいう)を受信する。そして、印刷装置100は、印刷ジョブデータに画像処理をすることにより画像データ(ビットマップデータ)を生成し、画像データに基づいて、カット紙や連続紙などの印刷メディアに印刷を行う。   The printing apparatus 100 that prints an image based on the data receives print job data (also referred to as print data) such as PDL from the Host PC 300. The printing apparatus 100 generates image data (bitmap data) by performing image processing on the print job data, and performs printing on a print medium such as cut paper or continuous paper based on the image data.

コントローラ部210は、外部装置から印刷データ等を受信する受信部211と、受信した印刷データを保存するスプーラ212と、レンダリング部と通信する通信部213と、を有する。コントローラ部210は、HostPC300から受信した印刷ジョブデータ102を受信部211において受信し、スプーラ212に保持する。一旦保持した印刷ジョブデータに対し、印刷ジョブの内容やユーザーインターフェース部140からの指示に基づきコマンドやデータを作成する。また、コントローラ部210は、作成したコマンドやデータを、画像装置通信部213を介して後述するレンダリング部230に送信する。そして、レンダリング部230からレンダリング後のビットマップデータを受け取ると、受け取ったビットマップデータをプリンタエンジン部220へ送信する。   The controller unit 210 includes a receiving unit 211 that receives print data and the like from an external device, a spooler 212 that stores the received print data, and a communication unit 213 that communicates with the rendering unit. The controller unit 210 receives the print job data 102 received from the Host PC 300 at the reception unit 211 and stores it in the spooler 212. For the print job data once held, commands and data are created based on the contents of the print job and instructions from the user interface unit 140. In addition, the controller unit 210 transmits the created command and data to the rendering unit 230 described later via the image device communication unit 213. When the rendered bitmap data is received from the rendering unit 230, the received bitmap data is transmitted to the printer engine unit 220.

レンダリング部230は、コントローラ部210が作成したコマンドやデータに基づきレンダリング処理を行い、印刷用ビットマップデータの生成を行う。印刷装置100は、レンダリング部230を複数有し、各レンダリング部230は、一以上のプロセッサ(本実施形態では、CPU)を有する。図2に示すように、レンダリング部230は、3つのCPU(CPU231〜233)と、CPUの前段に設けられるバッファと、CPUの後段に設けられるバッファと、負荷監視部234と、処理負荷管理テーブル235と、通信コントロール部236とを有する。本実施形態では、各レンダリング部230は、いずれも同じ構成を有するものとするが、一部が異なる構成となっていてもよい。   The rendering unit 230 performs rendering processing based on the command and data created by the controller unit 210, and generates bitmap data for printing. The printing apparatus 100 includes a plurality of rendering units 230, and each rendering unit 230 includes one or more processors (CPU in this embodiment). As illustrated in FIG. 2, the rendering unit 230 includes three CPUs (CPUs 231 to 233), a buffer provided in front of the CPU, a buffer provided in the subsequent stage of the CPU, a load monitoring unit 234, and a processing load management table. 235 and a communication control unit 236. In the present embodiment, each rendering unit 230 has the same configuration, but some of the rendering units 230 may have different configurations.

本実施形態では、レンダリング部230の各CPU(CPU231〜233)は、図1に示すCPU101とは異なるものであり、図示しないRAMに記憶されているプログラムに従って、画像処理(描画処理ともいう)を実行する。具体的には、CPUの前段に配置されたバッファから入力データを取得し、特定の処理(ステージ処理)を行い、後段のバッファに処理結果を出力する。ここで、ステージ処理とは、例えば、画像補正処理、RIP処理、面付け処理である。なお、RIP処理は、画像補正処理済みのデータに実行することができ、面付け処理は、RIP処理済みのデータの実行することができる。本実施形態では、各CPUに、それぞれ異なるステージの処理を分担させる(割当てる)。本実施形態では、詳細は後述するが、レンダリング部1のCPU231に画像補正処理、CPU232にRIP処理、CPU233に面付け処理を実行させる。   In the present embodiment, each CPU (CPU 231 to 233) of the rendering unit 230 is different from the CPU 101 shown in FIG. 1, and performs image processing (also referred to as drawing processing) according to a program stored in a RAM (not shown). Run. Specifically, input data is acquired from a buffer arranged in the preceding stage of the CPU, a specific process (stage process) is performed, and the processing result is output to the subsequent buffer. Here, the stage processing is, for example, image correction processing, RIP processing, and imposition processing. Note that the RIP process can be performed on the data that has undergone the image correction process, and the imposition process can be performed on the data that has been subjected to the RIP process. In this embodiment, each CPU is assigned (assigned) a process of a different stage. Although details will be described later in this embodiment, the CPU 231 of the rendering unit 1 causes the CPU 231 to execute image correction processing, the CPU 232 to execute RIP processing, and the CPU 233 to execute imposition processing.

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 CPU 231 is input data of the CPU 232, the processing result of the RIP processing of the CPU 232 is input data of the CPU 233, and the processing result of the image correction processing of the CPU 233 is a bitmap. It becomes data.

負荷監視部234は、各CPUの処理の開始タイミング及び処理の終了タイミングを監視し、その結果を処理負荷管理テーブル235に記録する。すなわち、各プロセッサの所定単位(本実施形態では、ジョブ単位)の処理が開始する毎に開始タイミングを更新し、各プロセッサの所定単位(本実施形態では、ジョブ単位)の処理が終了する毎に、処理の終了タイミングを更新する。   The load monitoring unit 234 monitors the process start timing and process end timing of each CPU, and records the results in the process load management table 235. That is, the start timing is updated every time processing of a predetermined unit (job unit in this embodiment) of each processor is started, and every time processing of a predetermined unit (job unit in this embodiment) of each processor is completed. The processing end timing is updated.

通信コントロール部236は、コントローラ部210から印刷ジョブデータを受信し、CPU231の前段に設けられるバッファに保持する。さらに、通信コントロール部1236は、CPU233の処理結果をCPU233の後段に設けられるバッファから取得し、ビットマップデータとしてコントローラ部210へ送信する。さらに、本実施形態では、通信コントロール部236は、特定のCPUの処理結果をそのCPUの後段に設けられるバッファから取得し、他のレンダリング部230に送信し、特定のCPUのステージ処理を他のレンダリング部のCPUに委譲する。処理ステージの委譲方法の詳細については後述する。   The communication control unit 236 receives print job data from the controller unit 210 and stores it in a buffer provided in the preceding stage of the CPU 231. Further, the communication control unit 1236 obtains the processing result of the CPU 233 from a buffer provided at the subsequent stage of the CPU 233, and transmits it to the controller unit 210 as bitmap data. Further, in the present embodiment, the communication control unit 236 acquires the processing result of a specific CPU from a buffer provided at the subsequent stage of the CPU, transmits the result to another rendering unit 230, and performs the stage processing of the specific CPU on the other CPU. Delegate to the CPU of the rendering unit. Details of the process stage delegation method will be described later.

プリンタエンジン部220は、記録部105が備える。プリンタエンジン部220は、例えば、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ及び記録紙の搬送機構を含む記録ユニットと、記録データに基づいて記録用パルスを生成するASICを含む電気回路と、を含む。プリンタエンジン部220は、ビットマップデータを受信すると、ビットマップデータに基づいて、画像をシートに印刷する。印刷の際には、プリンタエンジン部220は、ビットマップデータに対してプリンタエンジンの扱う色空間であるCMYK等への変換処理や、必要に応じて2値化処理等を行う。   The printer engine unit 220 is included in the recording unit 105. The printer engine unit 220 includes, for example, a recording unit including an inkjet recording head, each color ink, a carriage, and a recording paper conveyance mechanism, and an electric circuit including an ASIC that generates a recording pulse based on the recording data. Including. When receiving the bitmap data, the printer engine unit 220 prints an image on a sheet based on the bitmap data. At the time of printing, the printer engine unit 220 performs conversion processing on bitmap data to CMYK, which is a color space handled by the printer engine, and binarization processing as necessary.

HostPC300は、印刷装置100の外部に接続され、印刷装置100に印刷を行わせるための印刷ジョブデータの供給源となる装置であり、種々の印刷ジョブのオーダーを発行する。HostPC300は、本実施形態では、汎用のパーソナルコンピュータ(PC)としたが、これに限定されず、他のタイプのデータ供給装置としてもよい。他のタイプのデータ供給装置としては、画像をキャプチャーして画像データを生成する画像キャプチャー装置がある。画像キャプチャー装置は、原稿上の画像を読取って画像データを生成するリーダ(スキャナ)、ネガフィルムやポジフィルムを読取って画像データを生成するフィルムスキャナなどである。また、画像キャプチャー装置の他の例として静止画を撮影してデジタル画像データを生成するデジタルカメラ、動画を撮影して動画像データを生成するデジタルビデオもある。その他、ネットワーク上にフォトストレイジを設置したり、着脱可能な可搬性メモリを挿入するソケットを設けたりし、フォトストレイジや可搬性メモリに格納された画像ファイルを読み出して画像データに生成して印刷するものとしてもよい。また、汎用的なPCに代え、印刷装置専用の端末とするなど、種々のデータ供給装置としてもよい。これらのデータ供給装置は印刷装置100の構成要素としてもよいし、印刷装置100の外部に接続した別の装置としてもよい。   The Host PC 300 is an apparatus connected to the outside of the printing apparatus 100 and serving as a supply source of print job data for causing the printing apparatus 100 to perform printing, and issues various print job orders. In this embodiment, the Host PC 300 is a general-purpose personal computer (PC). However, the present invention is not limited to this, and another type of data supply device may be used. As another type of data supply device, there is an image capture device that captures an image and generates image data. The image capture device is a reader (scanner) that reads an image on a document and generates image data, a film scanner that reads a negative film or a positive film, and generates image data. Other examples of the image capture device include a digital camera that captures a still image and generates digital image data, and a digital video that captures a moving image and generates moving image data. In addition, a photo storage is installed on the network, or a socket for inserting a removable portable memory is provided, and an image file stored in the photo storage or the portable memory is read and generated as image data for printing. It may be a thing. Further, instead of a general-purpose PC, various data supply devices such as a terminal dedicated to a printing device may be used. These data supply apparatuses may be components of the printing apparatus 100 or may be other apparatuses connected to the outside of the printing apparatus 100.

図4のフローチャートを用いて、本実施形態に係るコントローラ部210の処理の流れを説明する。図4のフローチャートは、図1のCPU101が、ROM102に格納されている制御プログラムをRAM103にロードし、それを実行することにより行われる処理の流れを示す。   A processing flow of the controller unit 210 according to the present embodiment will be described with reference to the flowchart of FIG. The flowchart in FIG. 4 shows the flow of processing performed by the CPU 101 in FIG. 1 loading the control program stored in the ROM 102 into the RAM 103 and executing it.

まず、ステップS301で、HostPC300から印刷ジョブデータを受信すると、スプーラ212に印刷ジョブデータを保持する。   First, when print job data is received from the Host PC 300 in step S301, the print job data is held in the spooler 212.

次に、ステップS302で、あるレンダリング部230に対して印刷ジョブデータを送信してレンダリング処理を依頼する。レンダリング部230が複数ある場合に、いずれのレンダリング部に処理を依頼する(割り振る)かを決定する方法は種々あり、特に限定されないが、本実施形態では、処理を依頼した時間が最も古いレンダリング部230に対して処理を依頼する。例えば、レンダリング部230が2つある場合、4つの印刷ジョブをレンダリング部1、2、1、2の順で処理を依頼する。なお、他の割り振り方法としては、各レンダリング部230の処理性能を監視して最も処理性能が高いものに割り振る方法、各レンダリング部230の処理負荷を監視して最も処理負荷が低いものに割り振る方法が挙げられる。   Next, in step S302, print job data is transmitted to a rendering unit 230 to request rendering processing. When there are a plurality of rendering units 230, there are various methods for determining which rendering unit to request (allocate) for processing. Although there is no particular limitation, in this embodiment, the rendering unit with the oldest time for which processing has been requested. 230 is requested for processing. For example, when there are two rendering units 230, processing of four print jobs is requested in the order of rendering units 1, 2, 1, and 2. As other allocation methods, a method of monitoring the processing performance of each rendering unit 230 and allocating it to the one with the highest processing performance, and a method of monitoring the processing load of each rendering unit 230 and allocating it to the one with the lowest processing load. Is mentioned.

ステップS303で、コントローラ部210は、通信部213を介してビットマップデータを受信する(ステップS303)。具体的には、レンダリング部230は、依頼された印刷ジョブデータをレンダリングしてビットマップデータを生成し、通信コントロール部236を介してコントローラ部210へ送信すると、これを受信する。   In step S303, the controller unit 210 receives bitmap data via the communication unit 213 (step S303). Specifically, the rendering unit 230 generates bitmap data by rendering the requested print job data, and receives the data when transmitted to the controller unit 210 via the communication control unit 236.

ステップS304で、受信したビットマップデータをプリンタエンジン部220へ送信する。プリンタエンジン部220は受信したビットマップデータを紙などの印刷メディア(記録媒体ともいう)に印刷する。   In step S304, the received bitmap data is transmitted to the printer engine unit 220. The printer engine unit 220 prints the received bitmap data on a print medium (also called a recording medium) such as paper.

ステップS305で、HostPC300から印刷ジョブデータが投入されているか判定する。印刷ジョブが投入されていた場合(S305でYes)、ステップS301へ戻り、上述した処理を繰り返す。投入されていなければコントローラ部210は処理を終了し、次の印刷ジョブデータの投入に備える。なお、S302〜S304の実行中に印刷ジョブデータが投入された場合は、並行してS301〜S304の処理を実行する。   In step S305, it is determined whether print job data is input from the Host PC 300. If a print job has been input (Yes in S305), the process returns to step S301, and the above processing is repeated. If not, the controller unit 210 ends the process and prepares for the next print job data input. If print job data is input during the execution of S302 to S304, the processes of S301 to S304 are executed in parallel.

レンダリング部230の処理の流れを図4のフローチャートを用いて説明する。図4のフローチャートは、図1のCPU101が、ROM102に格納されている制御プログラムをRAM103にロードし、それを実行することにより行われる処理の流れを示す。   The processing flow of the rendering unit 230 will be described with reference to the flowchart of FIG. The flowchart in FIG. 4 shows the flow of processing performed by the CPU 101 in FIG. 1 loading the control program stored in the ROM 102 into the RAM 103 and executing it.

ステップS401で、コントローラ部210から印刷ジョブデータを受信するとバッファに保持する。   In step S401, when print job data is received from the controller unit 210, it is held in a buffer.

レンダリング部230は、一以上のプロセッサ(CPU)を有しており、一つの印刷ジョブデータに対して各ステージの処理を行う。レンダリング部が持つCPUの数分、以下に示すS403〜S409を繰り返す。なお、各CPUで行うステージ処理はCPU毎に異なるが、処理の流れは同じである。   The rendering unit 230 includes one or more processors (CPUs), and processes each stage for one print job data. The following S403 to S409 are repeated for the number of CPUs of the rendering unit. The stage processing performed by each CPU differs for each CPU, but the processing flow is the same.

まず、ステップ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 rendering unit 230 is to delegate the process to be executed. Here, the process delegation means that a process assigned to one rendering unit is transferred to another rendering unit and executed. Details of this process in step S403 will be described with reference to the drawings.

ステップ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 controller unit 210 in the case of the CPU that performs the first stage processing, and the data after the stage processing by the preceding CPU in the case of the CPU that performs the subsequent stage processing. is there.

ステップ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 controller unit 210 in step S411.

ステップS412でコントローラ部210から新たな印刷ジョブデータが投入されているか判定する。新たな印刷ジョブデータが投入されていたら(ステップS412でYes)、ステップS401へ戻って、上述した処理を繰り返す。新たな印刷ジョブデータが投入されていなければ(ステップS412でNo)、レンダリング部230は、処理を終え次の印刷ジョブデータの投入に備える。   In step S412, it is determined whether new print job data is input from the controller unit 210. If new print job data has been input (Yes in step S412), the process returns to step S401 and the above-described processing is repeated. If new print job data has not been input (No in step S412), the rendering unit 230 finishes the process and prepares for input of the next print job data.

図6は、負荷監視部234の処理の流れを示すフローチャートである。図6のフローチャートは、CPU101が、ROM102に格納されている制御プログラムをRAM103にロードし、それを実行することにより行われる処理の流れを示す。図6に示すフローチャートは、図4のステップS405及びS409の処理を詳細に説明するためのものである。   FIG. 6 is a flowchart showing a processing flow of the load monitoring unit 234. The flowchart of FIG. 6 shows the flow of processing performed when the CPU 101 loads the control program stored in the ROM 102 into the RAM 103 and executes it. The flowchart shown in FIG. 6 is for explaining the processing of steps S405 and S409 in FIG. 4 in detail.

ステップS501で、CPU231の処理が開始した時刻を取得し、処理負荷監視テーブル235に保存する。ステップS502でCPU231の処理が終了した時刻を取得し、処理負荷監視テーブル235に保存する。ステップS503で処理負荷管理テーブル235を更新し、処理を終了する。具体的には、後述する通り、各CPUの処理ステージの平均処理時間、平均待ち時間、処理委譲希望フラグ、他ジョブ処理可能フラグを更新する。なお、負荷監視部234は各CPUの処理が開始・終了する毎に同様の処理を繰り返す。   In step S <b> 501, the time when the processing of the CPU 231 starts is acquired and stored in the processing load monitoring table 235. In step S <b> 502, the time when the processing of the CPU 231 is completed is acquired and stored in the processing load monitoring table 235. In step S503, the processing load management table 235 is updated, and the process ends. Specifically, as will be described later, the average processing time, average waiting time, processing delegation request flag, and other job processable flag of each CPU processing stage are updated. The load monitoring unit 234 repeats the same processing every time the processing of each CPU starts and ends.

ここで、図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 rendering unit 230 includes three CPUs 1, 2, 3 (231, 214, 215, respectively), and image correction, ripping (RIP), and imposition, respectively. Perform stage processing. Bit map data is completed by performing all the above-described three stage processes for one print job. The processing load management table 235 includes a processing stage processed by each CPU, an average processing time of the processing stage, an average waiting time, a processing delegation request flag, and another job processing enable flag.

平均処理時間は、ある印刷ジョブに対する各ステージの処理時間の平均値である。具体的には、ステップ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 CPU 1 for two print jobs is 70 msec and 90 msec, respectively, the average processing time of the CPU 1 is 80 msec. In the present embodiment, the average of all jobs submitted so far is calculated. However, the present invention is not limited to this, and the average of the number of neighboring jobs may be calculated. Here, for example, in the case of a commercial printing apparatus that continuously prints albums or a commercial printing apparatus that continuously prints catalogs, jobs of the same data size are often continuously input. Therefore, by specifying the average processing time, the processing time of data scheduled to be processed can be predicted.

平均待ち時間は、印刷ジョブ毎の待ち時間の平均である。具体的には、前回の印刷ジョブのステップ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 1 finishes the processing of the first print job is 12:00 and the time when the processing of the next job is finished is 12:00:10, the waiting time is 10 seconds. It becomes. As described above, for example, in the case of a commercial printing apparatus that continuously prints albums or a commercial printing apparatus that continuously prints catalogs, jobs having the same data size are often continuously input. . Therefore, by specifying the average waiting time, it is possible to predict the time until the start of processing of data scheduled to be processed.

処理委譲希望フラグは、該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 rendering unit 230, may be set by the user, or may change a value set in advance in the rendering unit 230. In this embodiment, it is assumed that there is no communication or data copy cost, and threshold = 0.

他ジョブ処理可能フラグは、該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 CPU 1 is 60 msec, which is different from the average processing time (20 msec) of CPU 2 and the average processing time (20 msec) of CPU 3, and is larger than threshold 0. Therefore, the processing delegation request flag is turned ON. The average waiting time (30 msec) of the CPU 2 is 30 msec, which is different from the average waiting time (0 msec) of the CPU 1 and is larger than the threshold 0. Therefore, the other job processable flag is ON.

図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 CPU 101 loads the control program stored in the ROM 102 into the RAM 103 and executes it. FIG. 8 is a diagram for explaining the processing of step S403 in FIG. 4 in detail.

ステップ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 communication control unit 236 of the other rendering unit 230 in step S703, and the process proceeds to S704. Specifically, an inquiry is made to another rendering unit 230 as to whether the other job processable flag of the CPU that processes the same stage as the CPU whose processing delegation request flag is ON is ON. In response to the inquiry, the other rendering unit 230 acquires information on the other job processable flag from the processing load management table 235.

ステップ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 target rendering unit 230, and whose other job processing enable flag is ON. If none of the above-described CPUs exist in the other rendering units 230 (No in step S704), the process delegation determination ends. If there is a corresponding CPU in the other rendering unit 230 (Yes in step S704), the process proceeds to step S705.

ステップ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 other rendering unit 230 executes the process of the print data to be executed next. To determine. In this embodiment, the average processing time of the stage processing of the CPU whose processing delegation request flag is ON is equal to or less than the average waiting time of the stage processing of the CPU whose processing enable flag of the other rendering unit 230 is ON. judge. This is because if the average processing time is longer than the average waiting time, the stage processing originally assigned to the rendering unit 230 may be delayed.

平均処理時間が平均待ち時間より大きいと判定された場合(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 other rendering unit 230 is ON. Specifically, data that is scheduled to be staged by the CPU whose processing delegation request flag is ON is acquired from the buffer and transmitted to the other rendering unit 230 via the communication control unit 236. Although not shown, other rendering units 230 hold the transmitted data in a buffer in the previous stage of the CPU, perform stage processing, and return the processed data to the rendering unit 230 that transmitted the pre-processing data. .

ステップS707で、他のレンダリング部230で処理を終えたデータ、すなわち、他のレンダリング部230から返信された処理後のデータを受け取り、該CPUの後段のバッファに格納する。   In step S707, the data that has been processed by the other rendering unit 230, that is, the processed data returned from the other rendering unit 230 is received and stored in a buffer subsequent to the CPU.

最後に、ステップ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 printing apparatus 100 includes two rendering units, which are a rendering unit 1 (230a) and a rendering unit 2 (230b), respectively. The rendering unit 1 (230a) has three CPUs 1, 2, and 3 (231a, 232a, and 233a, respectively), and performs each stage process of image correction, ripping (RIP), and imposition, respectively. Bit map data is completed by performing three stage processes for one print job. Similarly to the rendering unit 1 (230a), the rendering unit 2 (230b) includes three CPUs 4, 5, and 6 (231b, 232b, and 233b, respectively), and image correction, ripping (RIP), and imposition stages, respectively. Processing shall be performed. The buffer provided in the subsequent stage of the CPU 1 also serves as a buffer provided in the previous stage of the CPU 2, and the buffer provided in the subsequent stage of the CPU 2 also serves as a buffer provided in the previous stage of the CPU 3.

図3における印刷装置100のレンダリング部以外の構成は図1と同じであるため、説明を省略する。   The configuration other than the rendering unit of the printing apparatus 100 in FIG. 3 is the same as that in FIG.

図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 stage 1, and the processing in stages 2 and 3 is dragged by this, and there is a time until the next processing starts. That is, there is a time during which the CPUs 2 (232a) and 3 (233a) are not operating by the “current time” in the figure.

レンダリング部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 stage 2 processing, and stage 3 processing is dragged by this until the next processing starts, and CPU 6 (233b) is operating. There is no time. The processing load management table at this “current time” is shown in FIG. In the rendering unit 1 (230a), since the average processing time 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), the processing delegation request flag is ON because the average processing time of the CPU 5 (233b) is longer than that of the CPUs 4 (231b) and 6 (232b). Further, the CPU 6 (233b), although not shown, has a longer average waiting time for jobs received before the job D because the processing time of the stage 3 is relatively short like the job D. Therefore, the other job processable flag is ON.

この時点でレンダリング部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 rendering unit 2 shown in FIG. 9B is confirmed (S701). Since the processing delegation request flag for image correction in the processing load management table 235 of the rendering unit 2 is OFF (No in S702), the processing delegation determination process is finished, and the rendering unit 2 (230b) performs the process without delegating the process. . Next, the process delegation determination of the RIP process of the CPU 5 (232b) of the job G is performed. In step S702 of FIG. 8, the processing delegation request flag of the RIP process is confirmed (S701). Since the process delegation request flag is ON (Yes in S702), the process proceeds to step S703. In the rendering unit 1 (230a), the other job processing possible flag for the RIP process is ON (Yes in S704), and the process proceeds to step S705. The average processing time of the CPU 5 (232b) trying to delegate processing is 50 msec, which is longer than the average waiting time of 30 msec of the CPU 2 (232a) of the rendering unit 1 (231a) trying to accept the delegation processing. Therefore, it is determined that the process delegation is impossible, and the process delegation determination is terminated. Therefore, the RIP processing of job G is processed by the rendering unit 2 (230b) without delegation.

仮に、ジョブ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 controller unit 210 to the printer engine unit 220 may be delayed, and the operation of the printer engine unit 220 may be stopped. On the other hand, in this embodiment, it is possible to suppress a delay in the supply of bitmap data based on the determination in S705.

図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 (rendering unit 1 and rendering unit 2) are provided, and processing of different image processing units (rendering unit 2) is executed on CPU 2 included in one image processing unit (rendering unit 1). Let Specifically, processing is delegated by comparing the average processing time of a CPU (image processing unit) that desires processing delegation with the average waiting time of a CPU (image processing unit) that enables processing of other jobs. To determine. As a result, the processing time of the rendering unit including the CPU desiring to transfer the processing is changed without changing the end time of the print data of the job originally assigned to the CPU (image processing unit) that can process other jobs. It can be shortened.

本実施形態では、上述した通り、他ジョブの処理を可能とする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 printing apparatus 100 according to the second embodiment includes a controller unit 210, a printer engine 220, and a plurality of rendering units 230. Since the controller unit 210 and the printer engine 220 are the same as those in the first embodiment, description thereof is omitted.

レンダリング部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 printing apparatus 100 includes a plurality of rendering units 1230, and each rendering unit 1230 includes one or more CPUs. As illustrated in FIG. 3, the rendering unit 1230 includes three CPUs (CPUs 231 to 233), a buffer, a buffer, a load monitoring unit 234, a processing load management table 235, and a communication control unit 1236. Note that the three CPUs (CPUs 231 to 233), the buffer, the load monitoring unit 234, and the processing load management table 235 are the same as those in the first embodiment, and thus description thereof is omitted. In the present embodiment, each rendering unit 1230 has the same configuration, but some of the rendering units 1230 may have different configurations.

本実施形態に係る通信コントロール部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 controller unit 210 and stores it in the buffer. In addition, the communication control unit 1236 acquires the processing result of the CPU 233 from the buffer at the subsequent stage of the CPU 233 and transmits it to the controller unit 210 as bitmap data. Further, in the present embodiment, the communication control unit 236 acquires a processing result of a specific CPU from a buffer provided at a subsequent stage of the CPU, transmits the result to another rendering unit 1230, and performs the stage processing of the specific CPU on the other CPU. Delegate to the CPU of the rendering unit.

図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 CPU 101 loads a control program stored in the ROM 102 into the RAM 103 and executes it. FIG. 13 explains the process in step S403 in FIG. 4 in detail.

ステップ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 communication control unit 236b of the rendering unit 2 (1230b) uses another rendering unit as a communication partner. As shown in FIG. 13, when the communication partner is the rendering unit 1 (1230a), the rendering unit 2 has a communication speed of 100 Mbps. Since there is no communication with itself, there is no communication speed information with the rendering unit 2 (1230b). In this embodiment, the printing apparatus 100 having two rendering units 1230 will be described as an example. However, when the printing apparatus 100 has three or more rendering units 1230 or when another rendering unit is used, Holds communication speed information for the rendering unit. In step S1302, the data transfer time is calculated using communication speed information 1237b between rendering units as shown in FIG. For example, when the data size of the stage process to be transferred is 10 Mbytes, the time taken to transmit / receive the data between the rendering unit 2 and the rendering unit 1 is
10 MByte / 100 Mbps / 8 bit × number of communications 2 = 0.025 sec = 25 msec. Note that the number of times of communication is two times, the first time is transmission of data before processing, and the second time is reception of print data after processing.

ステップ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 controller unit 210 to the printer engine unit 220 may be delayed, and the operation of the printer engine unit 220 may be stopped. On the other hand, in the present embodiment, it is possible to suppress a delay in the supply of bitmap data based on the determination in S1303. In this embodiment, a plurality of rendering units manage the processing status of a plurality of stages being processed, and processing is performed by delegating processing that has a heavy processing load between the plurality of rendering units within a range that does not affect other processing. Speed can be improved. As a result, the user can obtain a rendering result at a higher speed.

(他の実施形態)
本発明は上述した実施形態に限定されるものではない。例えば、上述した実施形態では、レンダリング部は、印刷装置が全て備えるものとしたが、一部又は全部を印刷装置に接続される外部装置が備えるものとしてもよい。この場合は、処理負荷管理テーブルでは、通信速度も考慮して閾値を設定するようにすればよい。
(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 rendering unit 230 includes the load monitoring unit 234 and the processing load management table 235. However, the present invention is not limited to this. For example, the load monitoring unit 234 common to the plurality of rendering units 230 may be used, or the processing load management table 235 common to the plurality of rendering units may be used.

上述した実施形態では、レンダリング部を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 101 performs the process delegation determination. However, the present invention is not limited to this, and each rendering unit may include a determination unit.

上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウエア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(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 Printing apparatus 101 CPU
102 ROM
103 RAM
210 Controller unit 220 Printer engine unit 230 Rendering unit

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画像処理の平均処理時間及び他の画像処理手段の第1画像処理の平均待ち時間に基づいて、委譲させるか判定することを特徴とする請求項1に記載の制御装置。   The determination unit determines whether to delegate based on an average processing time of the first image processing of one image processing unit and an average waiting time of the first image processing of another image processing unit. The control apparatus according to 1. 前記判定手段は、一の画像処理手段の第1画像処理の平均処理時間が他の画像処理手段の第1画像処理の平均待ち時間以下であった場合、委譲させると判定することを特徴とする請求項2に記載の制御装置。   The determination unit determines to delegate when the average processing time of the first image processing of one image processing unit is equal to or less than the average waiting time of the first image processing of another image processing unit. The control device according to claim 2. 前記判定手段は、一の画像処理手段の第1画像処理の平均処理時間、他の画像処理手段の第1画像処理の平均待ち時間、及び前記一の画像処理手段と前記他の画像処理手段との間のデータの転送時間に基づいて、委譲させるか判定することを特徴とする請求項1〜3のいずれか1項に記載の制御装置。   The determination means includes an average processing time of the first image processing of one image processing means, an average waiting time of the first image processing of other image processing means, and the one image processing means and the other image processing means. 4. The control device according to claim 1, wherein it is determined whether to perform delegation based on a data transfer time between the two. 各画像処理手段の各処理部の処理状況を管理する管理手段をさらに備え、
前記判定手段は、前記管理手段により管理された処理状況に基づいて委譲させるか判定することを特徴とする請求項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.
前記管理手段は、各処理部の処理状況を管理する管理テーブルを備え、各処理部の所定単位の処理が終了する毎に前記管理テーブルを更新することを特徴とする請求項5に記載の制御装置。   6. The control according to claim 5, wherein the management unit includes a management table for managing a processing status of each processing unit, and updates the management table every time a predetermined unit of processing of each processing unit is completed. apparatus. 各処理部は、それぞれ実行する画像処理の内容が予め決められていることを特徴とする請求項1〜6のいずれか1項に記載の制御装置。   The control device according to claim 1, wherein the content of image processing to be executed by each processing unit is determined in advance. 前記画像処理手段により処理済みのデータに基づいて印刷を実行する印刷部をさらに備えることを特徴とする請求項1〜7のいずれか1項に記載の制御装置。   The control apparatus according to claim 1, further comprising a printing unit that performs printing based on data processed by the image processing 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.
請求項1〜8のいずれか1項に記載の制御装置の各手段としてコンピュータを機能させるプログラム。
The program which makes a computer function as each means of the control apparatus of any one of Claims 1-8.
JP2014249379A 2014-12-09 2014-12-09 Control device, control method, and program Pending JP2016107570A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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