JP5766059B2 - Image forming apparatus, image forming apparatus control method, and program - Google Patents

Image forming apparatus, image forming apparatus control method, and program Download PDF

Info

Publication number
JP5766059B2
JP5766059B2 JP2011161527A JP2011161527A JP5766059B2 JP 5766059 B2 JP5766059 B2 JP 5766059B2 JP 2011161527 A JP2011161527 A JP 2011161527A JP 2011161527 A JP2011161527 A JP 2011161527A JP 5766059 B2 JP5766059 B2 JP 5766059B2
Authority
JP
Japan
Prior art keywords
generation
task
drawing command
intermediate code
forming apparatus
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.)
Expired - Fee Related
Application number
JP2011161527A
Other languages
Japanese (ja)
Other versions
JP2013022889A (en
Inventor
大野 隆
隆 大野
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 JP2011161527A priority Critical patent/JP5766059B2/en
Publication of JP2013022889A publication Critical patent/JP2013022889A/en
Application granted granted Critical
Publication of JP5766059B2 publication Critical patent/JP5766059B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)

Description

本発明は、ページ記述言語(PDL)のデータを複数のプロセッサにより処理する画像形成装置の制御に関するものである。   The present invention relates to control of an image forming apparatus that processes page description language (PDL) data by a plurality of processors.

近年、ハードウェア技術の向上により、マルチコアのCPUが開発され、パーソナルコンピュータ(PC)等では、複数のアプリケーションを同時実行可能となっている。
マルチファンクションプリンタ(MFP;Multifunction Printer又はMultifunction Peripheral)においても、コピー、プリント等の複数の機能をストレスなく並列実行するために、マルチコアのCPUが搭載されるようになっている。
In recent years, due to improvements in hardware technology, a multi-core CPU has been developed, and a personal computer (PC) or the like can simultaneously execute a plurality of applications.
In a multi-function printer (MFP; Multifunction Printer or Multifunction Peripheral), a multi-core CPU is mounted in order to execute a plurality of functions such as copying and printing in parallel without stress.

ページ記述言語(PDL;Page Description Language)データの印刷処理を行う場合、各描画コマンドをマルチコアのCPUによりそれぞれ並列に処理し、マルチコアのCPUにより高速に処理する方法が提案されている(特許文献1参照)。   When printing processing of page description language (PDL) data, a method has been proposed in which drawing commands are processed in parallel by a multi-core CPU and processed at high speed by the multi-core CPU (Patent Document 1). reference).

また、PDLデータ内の描画コマンドの並べ替えをしてから、各描画コマンドをそれぞれのCPUで並列に処理し、効率よくマルチコアのCPUで処理する方法も提案されている(特許文献2参照)。   There has also been proposed a method in which drawing commands in PDL data are rearranged, and then each drawing command is processed in parallel by each CPU and efficiently processed by a multi-core CPU (see Patent Document 2).

特開2009−116450号公報JP 2009-116450 A 特開2009−259231号公報JP 2009-259231 A

しかし、特許文献1に示すように、PDLを並列に処理する場合、生成される中間コードの順序は保証されないため、ページ終了後、生成された中間コードの並べ替えを行う必要があり、並べ替えの処理に時間がかかってしまう。   However, as shown in Patent Document 1, when the PDL is processed in parallel, the order of the generated intermediate codes is not guaranteed, so it is necessary to rearrange the generated intermediate codes after the page ends. It takes time to process.

また、特許文献2に示すように、事前にコマンドの並べ替えをする場合、全てのデータを事前に受け取る必要があり、メモリ資源を圧迫するとともに、最初の印刷を行うまで時間がかかってしまう。   Further, as shown in Patent Document 2, when rearranging commands in advance, it is necessary to receive all data in advance, and it takes time until initial printing is performed while memory resources are compressed.

本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ページ記述言語データの描画コマンドから中間コードを生成するまでの処理を、事前の並べ替えや事後の並べ替えを行うことなくマルチコアCPUを用いて並列に行っても、順序を変更できない描画コマンドについてはシーケンシャルのまま処理できるようにし、マルチコアCPUを無駄なく使用し、CPUコア数に応じてページ記述言語データ処理のパフォーマンスを向上して、少ないメモリ資源でページ記述言語データを高速に処理し、印刷時間を短縮することができる仕組みを提供することである。   The present invention has been made to solve the above problems. The object of the present invention is to perform the process from the drawing command of the page description language data to the generation of the intermediate code in parallel using the multi-core CPU without performing the rearrangement in advance or the rearrangement. Drawing commands that cannot be changed can be processed sequentially, using a multi-core CPU without waste, improving the performance of page description language data processing according to the number of CPU cores, and speeding up page description language data with less memory resources To provide a mechanism that can reduce the printing time.

本発明は、ページ記述言語データに基づいて印刷を行う画像形成装置であって、前記ページ記述言語データに含まれる描画コマンドを順次解析する解析手段と、前記解析手段により解析された描画コマンドから描画コマンド単位で中間コードをそれぞれ並列に生成する複数の生成手段と、前記複数の生成手段により生成された中間コードからイメージデータを生成するレンダリング手段と、前記レンダリング手段により生成されたイメージデータを印刷する印刷手段と、前記解析手段により解析された描画コマンドが、当該描画コマンドより先に解析され中間コード生成が終了していない各描画コマンドと処理順序を変更可能かどうか判定する判定手段と、前記判定手段により前記いずれの描画コマンドとも処理順序変更可能と判定された描画コマンドについては、前記先に解析された描画コマンドの中間コード生成終了状況に関係なく前記生成手段に中間コード生成を依頼し、一方、前記判定手段により1又は複数の特定の描画コマンドと処理順序変更不可能と判定された描画コマンドについては、前記特定の描画コマンドの中間コード生成終了を待って前記生成手段に中間コード生成を依頼するように制御する管理手段と、を有することを特徴とする。   The present invention is an image forming apparatus that performs printing based on page description language data, and that sequentially analyzes drawing commands included in the page description language data, and draws from drawing commands analyzed by the analyzing means A plurality of generation units that generate intermediate codes in parallel in units of commands, a rendering unit that generates image data from the intermediate codes generated by the plurality of generation units, and printing the image data generated by the rendering unit A determination unit that determines whether or not the drawing command analyzed by the analyzing unit can be changed in processing order with each drawing command that has been analyzed before the drawing command and intermediate code generation has not ended; The drawing order determined to be changeable by any of the drawing commands by the means. For the command, the generation unit is requested to generate intermediate code regardless of the intermediate code generation end status of the previously analyzed drawing command, while the determination unit changes one or more specific drawing commands and processing order. The drawing command determined to be impossible has management means for controlling to wait for completion of intermediate code generation of the specific drawing command and to request generation of intermediate code from the generation means.

本発明によれば、ページ記述言語データの描画コマンドから中間コードを生成するまでの処理を、事前の並べ替えや事後の並べ替えを行うことなくマルチコアCPUを用いて並列に行っても、順序を変更できない描画コマンドについてはシーケンシャルのまま処理できるようにし、マルチコアCPUを無駄なく使用し、CPUコア数に応じてページ記述言語データ処理のパフォーマンスを向上して、少ないメモリ資源でページ記述言語データを高速に処理し、印刷時間を短縮することができる。   According to the present invention, even if the processing from the drawing command of page description language data to the generation of the intermediate code is performed in parallel using the multi-core CPU without performing the rearrangement in advance or the rearrangement, the order can be changed. Drawing commands that cannot be changed can be processed sequentially, using a multi-core CPU without waste, improving the performance of page description language data processing according to the number of CPU cores, and speeding up page description language data with less memory resources The printing time can be shortened.

本発明の一実施例を示す画像形成装置の構成の一例を示すブロック図である。1 is a block diagram illustrating an example of a configuration of an image forming apparatus according to an embodiment of the present invention. 本発明におけるPDL全体のデータフローの一例を示す図である。It is a figure which shows an example of the data flow of the whole PDL in this invention. 本発明におけるPDL全体のタスク制御の一例を示す図である。It is a figure which shows an example of the task control of the whole PDL in this invention. 画像形成装置101の電源投入時の処理の一例を示すフローチャートである。5 is a flowchart illustrating an example of processing when the image forming apparatus 101 is turned on. 実施例1における受信タスク401が実行する受信処理301の一例を示すフローチャートである。6 is a flowchart illustrating an example of a reception process 301 executed by a reception task 401 according to the first embodiment. 実施例1におけるPDLタスク402が実行するPDL処理302の一例を示すフローチャートである。6 is a flowchart illustrating an example of a PDL process 302 executed by a PDL task 402 according to the first exemplary embodiment. 本発明におけるPDL全体のタスク制御の一例を示す図である。It is a figure which shows an example of the task control of the whole PDL in this invention. 実施例1におけるDL生成管理タスク403が実行するDL生成管理処理303の一例を示すフローチャートである。10 is a flowchart illustrating an example of a DL generation management process 303 executed by a DL generation management task 403 according to the first exemplary embodiment. 図8のS1361に示したDL生成終了処理の一例を示すフローチャートである。It is a flowchart which shows an example of the DL production | generation end process shown to S1361 of FIG. 描画オブジェクトの描画イメージの一例を示す図である。It is a figure which shows an example of the drawing image of a drawing object. 実施例1におけるDL生成管理タスク実行中のDL生成管理テーブルの変化を説明するための図である。It is a figure for demonstrating the change of the DL generation management table in execution of the DL generation management task in Example 1. FIG. 実施例1における各DL生成タスク404が実行するDL生成処理304の一例を示すフローチャートである。6 is a flowchart illustrating an example of a DL generation process 304 executed by each DL generation task 404 according to the first exemplary embodiment. 実施例1におけるレンダラタスク405が実行するレンダリング処理305の一例を示すフローチャートである。10 is a flowchart illustrating an example of a rendering process 305 executed by a renderer task 405 according to the first exemplary embodiment. 実施例2におけるPDLデータの一例を示す図である。6 is a diagram illustrating an example of PDL data in Embodiment 2. FIG. 実施例2におけるDL生成管理タスク403の一例を示すフローチャートである。10 is a flowchart illustrating an example of a DL generation management task 403 according to the second embodiment. 描画オブジェクトの描画結果の一例を示す図である。It is a figure which shows an example of the drawing result of a drawing object. 実施例2におけるDL生成管理タスク実行中のDL生成管理テーブルの変化を説明するための図である。It is a figure for demonstrating the change of the DL generation management table in execution of the DL generation management task in Example 2. FIG. 2コアのCPUにおける各処理の積み上げた時間を示す図である。It is a figure which shows the accumulated time of each process in 2 core CPU.

以下、本発明を実施するための形態について、図面を参照して説明する。   Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings.

図1は、本発明の一実施例を示す画像形成装置の構成の一例を示すブロック図である。
図1において、101は画像形成装置である。204は、画像形成装置101の演算処理や制御などを並列で行うことができるマルチコアの中央演算処理装置(CPU)である。即ち、CPU204は、複数のプロセッサに対応するものである。CPU204は、複数のコア(演算ユニット)により、複数の処理(例えば、後述する複数のDL生成タスク)を並列処理可能である。
FIG. 1 is a block diagram illustrating an example of the configuration of an image forming apparatus according to an embodiment of the present invention.
In FIG. 1, reference numeral 101 denotes an image forming apparatus. A multi-core central processing unit (CPU) 204 can perform arithmetic processing and control of the image forming apparatus 101 in parallel. That is, the CPU 204 corresponds to a plurality of processors. The CPU 204 can process a plurality of processes (for example, a plurality of DL generation tasks described later) in parallel by a plurality of cores (arithmetic units).

201はROMで、CPU204の制御コード等をコンピュータ読取可能に格納する。ROM201に格納される制御コードは、後述する受信部211、解析部212、中間コード生成管理部213、中間コード生成部214、展開処理部215等として、CPU204を機能させるためのものである。   Reference numeral 201 denotes a ROM which stores a control code of the CPU 204 and the like so as to be readable by a computer. The control code stored in the ROM 201 is for causing the CPU 204 to function as a receiving unit 211, an analysis unit 212, an intermediate code generation management unit 213, an intermediate code generation unit 214, an expansion processing unit 215, and the like, which will be described later.

202はRAMで、様々な情報を一時格納する。RAM202は、受信バッファ221、ワークメモリ222、フレームバッファ223、ラスタメモリ224等として利用される。   Reference numeral 202 denotes a RAM which temporarily stores various information. The RAM 202 is used as a reception buffer 221, a work memory 222, a frame buffer 223, a raster memory 224, and the like.

203はネットワークインターフェース(ネットワークI/F)で、PC等外部デバイスとネットワーク102を介して情報の入出力を行うためのものであり、外部デバイスから送信された印刷データを受信する。   A network interface (network I / F) 203 is used to input / output information to / from an external device such as a PC via the network 102, and receives print data transmitted from the external device.

受信部211は、ネットワークI/F203を介して受信したデータを受信バッファ221にデータを格納する。また、受信部211は、受信バッファ221から印刷データを読み出し、該読み出した印刷データからPDL(Page Discription Language)を特定し、PDLデータをワークメモリ222に格納し、解析部212にPDLデータ(ページ記述言語データ)を渡す。   The reception unit 211 stores the data received via the network I / F 203 in the reception buffer 221. The reception unit 211 reads print data from the reception buffer 221, specifies PDL (Page Discription Language) from the read print data, stores the PDL data in the work memory 222, and stores the PDL data (page data) in the analysis unit 212. Description language data).

解析部212は、受信部211から渡されたPDLデータをワークメモリ222から読み出し、コマンドを解析する。
中間コード生成管理部213は、解析部212において解析されたデータを判定し、中間コード生成を制御するための情報をワークメモリ222に格納する。
The analysis unit 212 reads the PDL data passed from the reception unit 211 from the work memory 222 and analyzes the command.
The intermediate code generation management unit 213 determines the data analyzed by the analysis unit 212 and stores information for controlling intermediate code generation in the work memory 222.

中間コード生成部214は、解析部212において解析されたデータから描画を行なうための内部情報である中間コード(DL:Display List(中間データともいう))を生成し、フレームバッファ223に格納する。なお、中間コード(DL)は、レンダラ(Renderer)207により、ラスタイメージの生成が可能なデータである。   The intermediate code generation unit 214 generates an intermediate code (DL: Display List (also referred to as intermediate data)) that is internal information for performing drawing from the data analyzed by the analysis unit 212 and stores the generated intermediate code in the frame buffer 223. The intermediate code (DL) is data for which a raster image can be generated by a renderer 207.

展開処理部215は、フレームバッファ223に格納された中間コード(DL)をラスタイメージ(ビットマップデータ)に展開し、該展開したラスタイメージをラスタメモリ224に格納する。なお、展開処理部215は、処理に時間がかかるため、専用ハードウェアであるレンダラ207を用いて高速に処理を行っている。   The expansion processing unit 215 expands the intermediate code (DL) stored in the frame buffer 223 into a raster image (bitmap data), and stores the expanded raster image in the raster memory 224. The expansion processing unit 215 performs processing at high speed using the renderer 207, which is dedicated hardware, because processing takes time.

受信バッファ221は、ネットワークI/F203を介して受信した印刷データを格納するメモリである。ワークメモリ222は、入力された印刷データから特定されたPDLデータや、中間コードに変換するときに一時的に使用するメモリである。   The reception buffer 221 is a memory that stores print data received via the network I / F 203. The work memory 222 is a memory that is temporarily used when converted into PDL data specified from input print data or an intermediate code.

フレームバッファ223は、中間コード生成部214で生成された中間コードを格納するメモリである。ラスタメモリ224は、フレームバッファ223に格納された中間コードから展開処理部215により展開制御されたラスタイメージを格納するメモリである。   The frame buffer 223 is a memory that stores the intermediate code generated by the intermediate code generation unit 214. The raster memory 224 is a memory for storing a raster image whose development is controlled by the development processing unit 215 from the intermediate code stored in the frame buffer 223.

レンダラ207は、上述したように、展開処理部215の制御により、フレームバッファ223に格納されているディスプレイリスト(DL)を入力として、ラスタイメージを生成する専用ハードウェアである。   As described above, the renderer 207 is dedicated hardware that generates a raster image with the display list (DL) stored in the frame buffer 223 as an input under the control of the expansion processing unit 215.

205はエンジンI/Fで、プリンタエンジン206との信号の入出力を行う。プリンタエンジン206は、ラスタイメージデータに基づいて、例えば、周知の電子写真プロセスによって感光ドラム上に潜像を形成し、用紙に転写して定着し印字を行う。なお、プリンタエンジン206の印刷方法は、電子写真プロセスによる印刷方法に限定されるものではなく、どのような印刷方法であってもよく、例えばインクジェット方式、昇華式等の他の印刷方法でもよい。   Reference numeral 205 denotes an engine I / F that inputs and outputs signals to and from the printer engine 206. Based on the raster image data, the printer engine 206 forms a latent image on a photosensitive drum by, for example, a well-known electrophotographic process, transfers the image onto a sheet, fixes it, and performs printing. The printing method of the printer engine 206 is not limited to the printing method by the electrophotographic process, and any printing method may be used, for example, other printing methods such as an ink jet method and a sublimation method.

図2は、本発明におけるPDL全体のデータフローの一例を示す図である。なお、図2に示す各処理はインプットとアウトプットのデータがあり、それぞれRAM202に一時的に格納される。   FIG. 2 is a diagram showing an example of the data flow of the entire PDL in the present invention. Each process shown in FIG. 2 has input and output data, which are temporarily stored in the RAM 202.

受信処理301は、受信部211で実行される処理である。受信処理301は、受信バッファ221に格納された受信データからPDLを特定し、PDLデータ311をワークメモリ222に格納する。   A reception process 301 is a process executed by the reception unit 211. The reception process 301 specifies PDL from the reception data stored in the reception buffer 221 and stores the PDL data 311 in the work memory 222.

PDL処理302は、解析部212で実行される処理である。PDL処理302は、ワークメモリ222に格納されたPDLデータ311を解析し、解析したコマンドに従って中間コード生成コマンド(DL生成コマンド312)をワークメモリ222に格納する。なお、DL生成コマンド312とは、PDLデータから解析された描画コマンド毎に生成されるものであり、該描画コマンドから中間コードを生成するための命令である。   The PDL process 302 is a process executed by the analysis unit 212. The PDL processing 302 analyzes the PDL data 311 stored in the work memory 222 and stores an intermediate code generation command (DL generation command 312) in the work memory 222 according to the analyzed command. The DL generation command 312 is generated for each drawing command analyzed from the PDL data, and is an instruction for generating an intermediate code from the drawing command.

DL生成管理処理303は、中間コード生成管理部213で実行される処理である。DL生成管理処理303は、ワークメモリ222に格納されたDL生成コマンド312に従って判定を行う。そして、判定結果に基づいて、DL生成管理処理303は、ワークメモリ222内のDL生成管理テーブル315に、DL生成コマンドの描画情報(描画オブジェクト)を格納(順次登録)し、DL生成実行を管理する。   The DL generation management process 303 is a process executed by the intermediate code generation management unit 213. The DL generation management process 303 makes a determination according to the DL generation command 312 stored in the work memory 222. Based on the determination result, the DL generation management process 303 stores (sequentially registers) the drawing information (drawing object) of the DL generation command in the DL generation management table 315 in the work memory 222, and manages the DL generation execution. To do.

DL生成処理304は、中間コード生成部214で実行される処理である。DL生成処理304は、ワークメモリ222に格納されたDL生成コマンド312に従って、DL313を生成し、フレームバッファ223に格納する。   The DL generation process 304 is a process executed by the intermediate code generation unit 214. The DL generation process 304 generates a DL 313 according to the DL generation command 312 stored in the work memory 222 and stores it in the frame buffer 223.

レンダリング処理305は、展開処理部215で実行され処理である。レンダリング処理305は、レンダラ207を用いて、フレームバッファ223に格納されたDL313からビットマップ314を生成し、ラスタメモリ224に格納する。
なお、PDLにおいては、以上説明した各処理をシーケンシャルに実行し、通常、PDLデータのコマンド順にDLを生成する必要がある。
The rendering process 305 is executed by the development processing unit 215. The rendering process 305 generates a bitmap 314 from the DL 313 stored in the frame buffer 223 using the renderer 207 and stores the bitmap 314 in the raster memory 224.
In PDL, it is necessary to sequentially execute the processes described above and generate DLs in order of commands of PDL data.

図3は、本発明におけるPDL全体のタスク制御の一例を示す図である。なお、図3に示す各タスクは、画像形成装置101の電源投入時に生成され、他のタスクからの指示に従って各タスクの処理が実行される。   FIG. 3 is a diagram showing an example of task control of the entire PDL in the present invention. Note that each task shown in FIG. 3 is generated when the image forming apparatus 101 is powered on, and processing of each task is executed in accordance with an instruction from another task.

受信タスク401は、ネットワークI/F203からの指示に従って受信処理301を実行し、PDLタスク402にジョブ開始を依頼する。
PDLタスク402は、受信タスク401にPDLデータを要求し、PDL処理302の解析結果からDL生成管理タスク403に処理依頼する。
DL生成管理タスク403は、PDLタスク402から処理依頼されたデータの判定と複数のDL生成タスク404の動作状況を管理し、DL生成タスク404に処理依頼をする。また、DL生成管理タスク403は、1ページ分のDL生成を終了するとレンダラタスク405に処理を依頼する。
The reception task 401 executes a reception process 301 in accordance with an instruction from the network I / F 203 and requests the PDL task 402 to start a job.
The PDL task 402 requests PDL data from the reception task 401, and requests the DL generation management task 403 to process from the analysis result of the PDL processing 302.
The DL generation management task 403 manages the determination of data requested for processing from the PDL task 402 and the operation status of the plurality of DL generation tasks 404, and requests the DL generation task 404 to perform processing. Also, the DL generation management task 403 requests the renderer task 405 to perform processing when the DL generation for one page is completed.

各DL生成タスク404はそれぞれ、DL生成管理タスク403から処理依頼された描画コマンドから描画コマンド単位で中間コード(DL)を生成するDL生成処理304を行う。
レンダラタスク405は、DL生成管理タスク403からの依頼に従ってレンダリング処理305を実行し、不図示のエンジンタスクに渡して印刷処理を依頼する。
なお、各タスクは全て独立であり、マルチコアのCPU204において、複数のタスクを並列に実行できる。
Each DL generation task 404 performs DL generation processing 304 for generating an intermediate code (DL) in units of drawing commands from the drawing commands requested to be processed by the DL generation management task 403.
The renderer task 405 executes the rendering process 305 in accordance with the request from the DL generation management task 403, passes it to an engine task (not shown), and requests a print process.
Each task is independent, and a multi-core CPU 204 can execute a plurality of tasks in parallel.

以下、画像形成装置101処理についてフローチャートを参照して説明する。
図4は、画像形成装置101の電源投入時の処理の一例を示すフローチャートである。なお、このフローチャートの処理(S1001〜S1005等の各ステップ)は、画像形成装置101のCPU204がROM201にコンピュータ読み取り可能に記録されたプログラムを実行することにより実現されるものである。
Hereinafter, the image forming apparatus 101 process will be described with reference to flowcharts.
FIG. 4 is a flowchart illustrating an example of processing when the image forming apparatus 101 is turned on. Note that the processing of this flowchart (each step such as S1001 to S1005) is realized by the CPU 204 of the image forming apparatus 101 executing a program recorded in the ROM 201 so as to be readable by a computer.

S1001において、CPU204は、受信タスク401を起動し、受信処理301を実行可能にする。
次に、S1002において、CPU204は、PDLタスク402を起動し、PDL処理302を実行できるようにする。
次に、S1003において、CPU204は、DL生成管理タスク403を起動し、DL生成管理処理303を実行できるようにする。
In step S <b> 1001, the CPU 204 activates the reception task 401 to enable the reception process 301.
In step S <b> 1002, the CPU 204 activates the PDL task 402 so that the PDL process 302 can be executed.
In step S <b> 1003, the CPU 204 activates the DL generation management task 403 so that the DL generation management process 303 can be executed.

次に、S1004において、CPU204は、1つまたは複数のDL生成タスク404を起動し、DL生成処理304を実行できるようにする。CPU204は、CPUコアの数だけDL生成タスク404を起動し、各CPUコアにより並列に実行するようにする。
次に、S1005において、CPU204は、レンダラタスク405を起動し、レンダリング処理305を実行できるようにする。
なお、各ステップは、順不同で実行することができ、各タスク間で通信できるようにする。
In step S <b> 1004, the CPU 204 activates one or more DL generation tasks 404 so that the DL generation processing 304 can be executed. The CPU 204 activates DL generation tasks 404 by the number of CPU cores and executes the DL generation tasks 404 in parallel by the CPU cores.
In step S <b> 1005, the CPU 204 activates the renderer task 405 so that the rendering process 305 can be executed.
Each step can be executed in any order, and communication between tasks can be performed.

以下、画像形成装置101の各タスクについてフローチャートを参照して説明する。
図5は、実施例1における受信タスク401が実行する受信処理301の一例を示すフローチャートである。即ち、このフローチャートの処理(S1101〜S1121等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(受信部211)を実行することにより実現されるものである。
Hereinafter, each task of the image forming apparatus 101 will be described with reference to flowcharts.
FIG. 5 is a flowchart illustrating an example of the reception process 301 executed by the reception task 401 according to the first embodiment. That is, the processing in this flowchart (each step such as S1101 to S1121) is realized by the CPU 204 of the image forming apparatus 101 executing the program (reception unit 211) recorded in the ROM 201.

まず、受信タスク401は、データ受信待ち、又はデータ取得依頼待ちを行う(S1101,S1110)。ネットワークI/F203を介してデータ受信すると(S1101でYes)、受信タスク401は、S1102において、受信バッファ221にデータを格納する。   First, the reception task 401 waits for data reception or a data acquisition request (S1101, S1110). When data is received via the network I / F 203 (Yes in S1101), the reception task 401 stores the data in the reception buffer 221 in S1102.

次に、S1103において、受信タスク401は、ジョブ開始実行済みか否かを判定する。そして、まだジョブ開始実行していないと判定した場合(S1103でNo)、受信タスク401は、S1104によりを進める。S114では、受信タスク401は、PDLタスク402に「ジョブ開始通知」を行う。この「ジョブ開始通知」に応じて、PDLタスク402は「データ取得依頼」を受信タスクに行う。   In step S1103, the reception task 401 determines whether the job has been started. If it is determined that the job has not been started yet (No in S1103), the reception task 401 proceeds with S1104. In S <b> 114, the reception task 401 performs “job start notification” to the PDL task 402. In response to this “job start notification”, the PDL task 402 makes a “data acquisition request” to the reception task.

一方、既にジョブ開始実行していると判定した場合(S1103でYes)、受信タスク401は、S1101に処理を戻す。
また、ネットワークI/F203を介してPDLタスク402から「データ取得依頼」を受信すると(S1110でYes)、受信タスク401は、S1111に処理を進める。
On the other hand, if it is determined that the job has already been started (Yes in S1103), the reception task 401 returns the process to S1101.
When the “data acquisition request” is received from the PDL task 402 via the network I / F 203 (Yes in S1110), the reception task 401 advances the process to S1111.

S1111では、受信タスク401は、受信バッファ221にデータが格納されているか否かを判定する。
そして、受信バッファ221にデータが格納されていると判定した場合(S1111でYes)、受信タスク401は、S1112に処理を進める。
S1112では、受信タスク401は、PDLタスク402からデータ取得依頼時に渡されたワークメモリ222のアドレスに、上記受信バッファ221に格納されたデータをコピーする。
In step S <b> 1111, the reception task 401 determines whether data is stored in the reception buffer 221.
If it is determined that data is stored in the reception buffer 221 (Yes in S1111), the reception task 401 advances the process to S1112.
In step S <b> 1112, the reception task 401 copies the data stored in the reception buffer 221 to the address of the work memory 222 passed from the PDL task 402 when the data acquisition request is made.

次に、S1113において、受信タスク401は、「データ取得完了」をPDLタスク402に通知する。次に、S1114において、受信タスク401は、受信バッファ221を解放し、S1101に処理を戻す。   In step S <b> 1113, the reception task 401 notifies the PDL task 402 of “data acquisition completion”. Next, in S1114, the reception task 401 releases the reception buffer 221 and returns the process to S1101.

一方、受信バッファ221にデータが格納されていないと判定した場合(S1111でNo)、受信タスク401は、S1120において、データ受信待ちを行う。
そして、ネットワークI/F203を介してデータを受信すると(S1120でYes)、受信タスク401は、S1121において、データ取得依頼時に渡されたワークメモリ222のアドレスに、上記受信したデータを格納し、S1112に処理を進める。
On the other hand, if it is determined that no data is stored in the reception buffer 221 (No in S1111), the reception task 401 waits for data reception in S1120.
When the data is received via the network I / F 203 (Yes in S1120), the reception task 401 stores the received data in the address of the work memory 222 passed at the time of the data acquisition request in S1121, and S1112 Proceed with the process.

図6は、実施例1におけるPDLタスク402が実行するPDL処理302の一例を示すフローチャートである。このフローチャートの処理(S1201〜S1223等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(解析部212)を実行することにより実現されるものである。   FIG. 6 is a flowchart illustrating an example of the PDL process 302 executed by the PDL task 402 according to the first embodiment. The processing of this flowchart (steps such as S1201 to S1223) is realized by the CPU 204 of the image forming apparatus 101 executing a program (analysis unit 212) recorded in the ROM 201.

まず、PDLタスク402は、S1201において、受信タスク401からの「ジョブ開始通知」待ちを行う。そして、受信タスク401から「ジョブ開始通知」を受けると、S1202において、PDLタスク402は、受信タスク401にワークメモリ222のアドレスを渡し、「データ取得依頼」を行う。   First, in step S <b> 1201, the PDL task 402 waits for a “job start notification” from the reception task 401. Upon receiving a “job start notification” from the reception task 401, the PDL task 402 passes the address of the work memory 222 to the reception task 401 and performs a “data acquisition request” in S 1202.

次に、S1203において、PDLタスク402は、受信タスク401からのデータ取得完了通知待ちを行う。そして、受信タスク401からデータ取得完了通知を受けると(S1203でYes)、PDLタスク402は、S1204で、上記ワークメモリ222のアドレスに格納されたデータを解析する。   In step S <b> 1203, the PDL task 402 waits for a data acquisition completion notification from the reception task 401. When the data acquisition completion notification is received from the reception task 401 (Yes in S1203), the PDL task 402 analyzes the data stored at the address of the work memory 222 in S1204.

次に、S1205において、PDLタスク402は、上記S1204での解析の結果、上記ワークメモリ222に格納されたデータがページ開始を示すデータか否かを判定する。   In step S1205, the PDL task 402 determines whether the data stored in the work memory 222 is data indicating page start as a result of the analysis in step S1204.

そして、ページ開始を示すデータであると判定した場合(S1205でYes)、PDLタスク402は、S1206において、DL生成管理タスク403に、「ページ開始通知」を行う。   If it is determined that the data indicates page start (Yes in S1205), the PDL task 402 performs a “page start notification” to the DL generation management task 403 in S1206.

次に、S1207において、PDLタスク402は、DL生成管理タスク403からの「ページ開始処理完了通知」待ちを行う。そして、DL生成管理タスク403から「ページ開始処理完了通知」を受けると(S1207でYes)、PDLタスク402は、S1202に処理を戻す。   In step S <b> 1207, the PDL task 402 waits for a “page start process completion notification” from the DL generation management task 403. Upon receiving a “page start process completion notification” from the DL generation management task 403 (Yes in S1207), the PDL task 402 returns the process to S1202.

一方、上記S1205において、ページ開始を示すデータでないと判定した場合(S1205でNo)、PDLタスク402は、S1210に処理を進める。
S1210では、PDLタスク402は、上記ワークメモリ222に格納されたデータがページ終了を示すデータであるか否かを判定する。
そして、ページ終了を示すデータであると判定した場合(S1210でYes)、PDLタスク402は、S1211において、DL生成管理タスク403に、「ページ終了通知」を行う。
On the other hand, if it is determined in S1205 that the data does not indicate page start (No in S1205), the PDL task 402 advances the process to S1210.
In step S1210, the PDL task 402 determines whether the data stored in the work memory 222 is data indicating page end.
If the PDL task 402 determines that the data indicates the page end (Yes in S1210), the PDL task 402 performs a “page end notification” to the DL generation management task 403 in S1211.

さらに、S1212において、PDLタスク402は、DL生成管理タスク403からの「ページ終了処理完了通知」待ちを行う。そして、DL生成管理タスク403から「ページ終了処理完了通知」を受けると(S1212でYes)、PDLタスク402は、S1202に処理を戻す。   In step S <b> 1212, the PDL task 402 waits for a “page end process completion notification” from the DL generation management task 403. When the “page end process completion notification” is received from the DL generation management task 403 (Yes in S1212), the PDL task 402 returns the process to S1202.

一方、上記S1210において、ページ終了を示すデータでないと判定した場合(S1210でNo)、PDLタスク402は、S1220に処理を進める。
S1220では、PDLタスク402は、上記ワークメモリ222に格納されたデータがジョブ終了を示すデータであるか否かを判定する。そして、ジョブ終了示すデータでないと判定した場合(S1220でNo)、PDLタスク402は、S1221に処理を進める。
On the other hand, when it is determined in S1210 that the data does not indicate the end of the page (No in S1210), the PDL task 402 advances the process to S1220.
In step S1220, the PDL task 402 determines whether the data stored in the work memory 222 is data indicating job end. If it is determined that the data does not indicate the job end (No in S1220), the PDL task 402 advances the process to S1221.

S1221では、PDLタスク402は、上記ワークメモリ222に格納されたデータ(描画コマンド)からDL生成コマンドを生成し、ワークメモリ222に格納する。
次に、S1222において、PDLタスク402は、DL生成管理タスク403へDL生成処理依頼を行う。この際、ワークメモリ222を介して、上記S1221で生成したDL生成コマンドをDL生成管理タスク403へ渡す。
In step S <b> 1221, the PDL task 402 generates a DL generation command from the data (drawing command) stored in the work memory 222 and stores the DL generation command in the work memory 222.
Next, in S1222, the PDL task 402 makes a DL generation processing request to the DL generation management task 403. At this time, the DL generation command generated in S1221 is transferred to the DL generation management task 403 via the work memory 222.

さらに、S1223において、PDLタスク402は、DL生成管理タスク403からのDL生成終了通知待ちを行う。そして、DL生成管理タスク403からDL生成終了通知を受けると(S1223でYes)、PDLタスク402は、S1202に処理を戻す。   Further, in step S1223, the PDL task 402 waits for a DL generation end notification from the DL generation management task 403. When the DL generation end notification is received from the DL generation management task 403 (Yes in S1223), the PDL task 402 returns the process to S1202.

一方、上記ワークメモリ222に格納されたデータがジョブ終了を示すデータであると判定した場合(S1220でYes)、PDLタスク402は、S1201に処理を戻す。   On the other hand, when it is determined that the data stored in the work memory 222 is data indicating job end (Yes in S1220), the PDL task 402 returns the process to S1201.

ここで、図7を参照して、DL生成タスク404にてDL生成処理される描画オブジェクトについて説明する。
図7は、実施例1において処理される描画コマンドで描画指示される描画オブジェクトの構成の一例を示す図である。
図7に示すように、描画オブジェクトは、外径1001を形成する複数の頂点座標3(Xn,Yn)の点列を示すデータを含む。また、描画オブジェクトは、その外径1001又は外径内の領域1003を描画する色値(R,G,B)と、その外径1001を包含する矩形1002の左上の描画座標(X,Y)と、矩形1002の幅Wd、高さHtを示すデータを含む。
Here, with reference to FIG. 7, a drawing object subjected to DL generation processing in the DL generation task 404 will be described.
FIG. 7 is a diagram illustrating an example of a configuration of a drawing object instructed to be drawn by a drawing command processed in the first embodiment.
As shown in FIG. 7, the drawing object includes data indicating a point sequence of a plurality of vertex coordinates 3 (Xn, Yn) forming the outer diameter 1001. Further, the drawing object has a color value (R, G, B) for drawing the outer diameter 1001 or a region 1003 within the outer diameter, and drawing coordinates (X, Y) at the upper left of the rectangle 1002 including the outer diameter 1001. And data indicating the width Wd and the height Ht of the rectangle 1002.

後述する重なり判定おいては、各描画オブジェクトの矩形1002の描画座標(X,Y)と、矩形1002の幅Wd、高さHtを用いて判定する。また、後述する色の判定においては、外径1001又は外径に囲まれた領域1003を描画する色値(R,G,B)を用いて判定する。   In the overlap determination described later, the determination is made using the drawing coordinates (X, Y) of the rectangle 1002 of each drawing object and the width Wd and height Ht of the rectangle 1002. In the color determination described later, the determination is performed using the outer diameter 1001 or color values (R, G, B) for drawing the region 1003 surrounded by the outer diameter.

図8は、実施例1におけるDL生成管理タスク403が実行するDL生成管理処理303の一例を示すフローチャートである。このフローチャートの処理(S1301〜S1382等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(中間コード生成管理部213)を実行することにより実現されるものである。   FIG. 8 is a flowchart illustrating an example of the DL generation management process 303 executed by the DL generation management task 403 according to the first embodiment. The processing of this flowchart (each step such as S1301 to S1382) is realized by the CPU 204 of the image forming apparatus 101 executing a program (intermediate code generation management unit 213) recorded in the ROM 201.

DL生成管理タスク403は、他のタスクからの通知を受信すると、該通知がDL生成依頼、DL生成終了通知、ページ開始通知、ページ終了通知かを判定する(S1301、S1360、S1370、S1380)。   When receiving a notification from another task, the DL generation management task 403 determines whether the notification is a DL generation request, a DL generation end notification, a page start notification, or a page end notification (S1301, S1360, S1370, S1380).

そして、受信した通知がPDLタスク402からの「ページ開始通知」であると判定した場合(S1370でYes)、DL生成管理タスク403は、S1371に処理を進める。   When it is determined that the received notification is a “page start notification” from the PDL task 402 (Yes in S1370), the DL generation management task 403 advances the process to S1371.

S1371では、DL生成管理タスク403は、カレントの描画オブジェクトのIDを示すCurIDと、DL生成管理テーブルに登録されている描画オブジェクトの数を示すObjectCount(RAM202内に確保される変数)を「0」に初期化する。なお、CurIDは、カレントの描画オブジェクトのIDを示す変数であり、RAM202内に確保される。また、ObjectCountは、後述するDL生成管理テーブルに登録されている描画オブジェクトの数を示す変数であり、RAM202内に確保される。   In S 1371, the DL generation management task 403 sets “0” to CurID indicating the ID of the current drawing object and ObjectCount (variable reserved in the RAM 202) indicating the number of drawing objects registered in the DL generation management table. Initialize to. CurID is a variable indicating the ID of the current drawing object, and is secured in the RAM 202. Further, ObjectCount is a variable indicating the number of drawing objects registered in a DL generation management table described later, and is secured in the RAM 202.

次に、DL生成管理タスク403は、S1372において、PDLタスク402に「ページ開始処理完了通知」を行い、S1301に処理を戻す。
また、受信した通知がPDLタスク402からの「DL生成依頼」であると判定した場合(S1301でYes)、DL生成管理タスク403は、S1302に処理を進める。
S1302では、DL生成管理タスク403は、CurIDをインクリメントする。
次に、S1303において、DL生成管理タスク403は、DL生成依頼とともにワークメモリ222を介して受け取ったDL生成コマンドから生成されるカレントの描画オブジェクトに、CurIDを割り当てる。なお、この描画オブジェクトは、DL生成コマンドがDL生成を指示する描画コマンドで描画指示される描画オブジェクトに対応する。
Next, in S1372, the DL generation management task 403 performs “page start process completion notification” to the PDL task 402, and returns the process to S1301.
If it is determined that the received notification is a “DL generation request” from the PDL task 402 (Yes in S1301), the DL generation management task 403 advances the process to S1302.
In S1302, the DL generation management task 403 increments CurID.
In step S1303, the DL generation management task 403 assigns a CurID to the current drawing object generated from the DL generation command received via the work memory 222 together with the DL generation request. This drawing object corresponds to a drawing object whose drawing is instructed by a drawing command whose DL generation command instructs DL generation.

次に、S1304において、DL生成管理タスク403は、カレントの描画オブジェクトの描画位置(CurX、CurY)、幅CurWd、高さCurHt、色(CurR、CurG、CurB)を上記DL生成コマンドから取得する。   Next, in S1304, the DL generation management task 403 acquires the drawing position (CurX, CurY), width CurWd, height CurHt, and color (CurR, CurG, CurB) of the current drawing object from the DL generation command.

次に、S1305において、DL生成管理タスク403は、ObjectCountが「0」であるか否かを判定する。
そして、ObjectCountが「0」であると判定した場合(S1305でYes)、DL生成管理タスク403は、S1322に処理を進める。
S1322では、DL生成管理タスク403は、カレントの描画オブジェクトの情報を、DL生成管理テーブルに、「DL生成処理中状態」で登録する。例えば、図11(a)の1221に示すように、CurID、描画位置、幅、高さ、色、及び1222に示すように、DL生成処理中状態(ここでは1211や1212のように「DL生成処理中状態」を示す「Exec」)を、DL生成管理テーブルに登録する。
Next, in S1305, the DL generation management task 403 determines whether or not the ObjectCount is “0”.
If it is determined that the ObjectCount is “0” (Yes in S1305), the DL generation management task 403 advances the process to S1322.
In S1322, the DL generation management task 403 registers the current drawing object information in the “DL generation processing in progress” state in the DL generation management table. For example, as shown by 1221 in FIG. 11A, CurID, drawing position, width, height, color, and 1222 are in a DL generation processing state (here, “DL generation like 1211 and 1212”). “Exec”) indicating “processing state” is registered in the DL generation management table.

次に、DL生成管理タスク403は、S1323において、ObjectCountをインクリメントし、S1324において、空き状態のDL生成タスク404に「DL生成依頼」をして、S1301に処理を戻す。なお、DL生成依頼の際には、DL生成依頼とともにDL生成コマンドをDL生成タスク404に通知する。このDL生成依頼を受けたDL生成タスク404は、DL生成を行い、「DL生成終了通知」をDL生成管理タスク403に返す(詳細は、後述する図12に示す)。   Next, in step S1323, the DL generation management task 403 increments ObjectCount, and in step S1324, the DL generation management task 403 makes a “DL generation request” to the empty DL generation task 404 and returns the process to step S1301. When a DL generation request is made, a DL generation command is notified to the DL generation task 404 together with the DL generation request. Upon receiving this DL generation request, the DL generation task 404 performs DL generation and returns a “DL generation end notification” to the DL generation management task 403 (details are shown in FIG. 12 described later).

また、上記S1305において、ObjectCountが「0」でないと判定した場合(S1305でNo)、DL生成管理タスク403は、S1310に処理を進める。
S1310では、DL生成管理タスク403は、DL生成管理テーブルに登録されている描画オブジェクトを1つ取得し、該取得した描画オブジェクトの描画位置(X、Y)、幅Wd、高さHt、色(R、G、B)、描画オブジェクトIDのObjIDを取得する。
If it is determined in S1305 that the ObjectCount is not “0” (No in S1305), the DL generation management task 403 advances the process to S1310.
In S1310, the DL generation management task 403 acquires one drawing object registered in the DL generation management table, and draws the drawing position (X, Y), width Wd, height Ht, color (of the acquired drawing object). R, G, B) and the ObjID of the drawing object ID are acquired.

そして、S1311において、DL生成管理タスク403は、カレントの描画オブジェクトと上記S1310で取得したDL生成管理テーブルに登録されている描画オブジェクトについて、描画位置、幅、高さをそれぞれ比較し、重なりがあるか否かを判定する。重なりの有無の判定方法は以下の条件文で行う。   In step S1311, the DL generation management task 403 compares the drawing position, width, and height of the current drawing object and the drawing object registered in the DL generation management table acquired in step S1310. It is determined whether or not. The method for determining whether there is an overlap is as follows.

(CurX<X+Wd) AND (CurY<Y+Ht) AND (CurX+CurWd>X) AND (CurY+CurHt>Y)
そして、この条件文を満たす場合には重なりがあると判定し、一方、この条件文を満たさない場合には重なりがないと判定する。
(CurX <X + Wd) AND (CurY <Y + Ht) AND (CurX + CurWd> X) AND (CurY + CurHt> Y)
When this conditional statement is satisfied, it is determined that there is an overlap. On the other hand, when this conditional statement is not satisfied, it is determined that there is no overlap.

そして、重なりがないと判定した場合(S1311でNo)、DL生成管理タスク403は、S1314に処理を進める。
一方、重なりがあると判定した場合(S1311でYes)、DL生成管理タスク403は、S1312に処理を進める。
S1312では、DL生成管理タスク403は、カレントの描画オブジェクトと上記S1310で取得したDL生成管理テーブルに登録されている描画オブジェクトについて、色(R,G,B)を比較し、色が異なるか否かを判定する。色の判定方法は以下の条件文で行う。
If it is determined that there is no overlap (No in S1311), the DL generation management task 403 advances the process to S1314.
On the other hand, if it is determined that there is an overlap (Yes in S1311), the DL generation management task 403 advances the process to S1312.
In S1312, the DL generation management task 403 compares the colors (R, G, B) of the current drawing object and the drawing object registered in the DL generation management table acquired in S1310, and determines whether the colors are different. Determine whether. The color judgment method is performed by the following conditional statement.

(CurR≠R) OR (CurG≠G) OR (CurB≠B)
そして、この条件文を満たす場合には色が同じと判定し、一方、この条件文を満たさない場合には色が異なると判定する。
(CurR ≠ R) OR (CurG ≠ G) OR (CurB ≠ B)
When the conditional statement is satisfied, the colors are determined to be the same. On the other hand, when the conditional statement is not satisfied, the colors are determined to be different.

そして、色が同じと判定した場合(S1312でNo)、DL生成管理タスク403は、S1314に処理を進める。
一方、色が異なると判定した場合(S1312でYes)、DL生成管理タスク403は、S1313に処理を進める。
S1313では、DL生成管理タスク403は、待ち合わせ対象の描画オブジェクトとしてObjIDを保持する。なお、ObjIDは、RAM202内に保持される。
即ち、本実施例の待ち合わせ判定処理では、2つの描画コマンドの描画位置に重なりが有り、且つ、描画する色が異なる場合に、前記2つの描画コマンドについて処理順序変更不可能と判定し、上記場合以外の場合に、前記2つの描画コマンドについて処理順序変更可能と判定する。
次に、S1314において、DL生成管理タスク403は、DL生成管理テーブルに登録されている描画オブジェクトを全てチェックしたか否かを判定する。そして、DL生成管理テーブルに登録されている描画オブジェクトを全てチェックしたと判定するまで、S1310〜S1314を繰り返し実行する。
If it is determined that the colors are the same (No in S1312), the DL generation management task 403 advances the process to S1314.
On the other hand, if it is determined that the colors are different (Yes in S1312), the DL generation management task 403 advances the process to S1313.
In step S1313, the DL generation management task 403 holds ObjID as a drawing object to be waited for. The ObjID is held in the RAM 202.
That is, in the waiting determination process of this embodiment, when there are overlaps in the drawing positions of two drawing commands and the drawing colors are different, it is determined that the processing order of the two drawing commands cannot be changed. In other cases, it is determined that the processing order of the two drawing commands can be changed.
In step S <b> 1314, the DL generation management task 403 determines whether all drawing objects registered in the DL generation management table have been checked. Then, S1310 to S1314 are repeatedly executed until it is determined that all drawing objects registered in the DL generation management table have been checked.

一方、DL生成管理テーブルに登録されている描画オブジェクトを全てチェックしたと判定した場合(S1314でYes)、DL生成管理タスク403は、S1320に処理を進める。   On the other hand, if it is determined that all drawing objects registered in the DL generation management table have been checked (Yes in S1314), the DL generation management task 403 advances the process to S1320.

S1320では、DL生成管理タスク403は、待ち合わせ対象の描画オブジェクトのIDが保持されているか否かを判定する。
そして、待ち合わせ対象の描画オブジェクトのIDが保持されていないと判定した場合(S1320でYes)、DL生成管理タスク403は、S1321に処理を進める。
S1321では、DL生成管理タスク403は、空き状態のDL生成タスク404があるか否かを判定する。
そして、空き状態のDL生成タスク404があると判定した場合(S1321でYes)、DL生成管理タスク403は、上述したS1322〜S1324の処理を実行し、S1301に処理を戻す。
In step S1320, the DL generation management task 403 determines whether the ID of the drawing object to be waited for is held.
If it is determined that the ID of the drawing object to be waited for is not held (Yes in S1320), the DL generation management task 403 advances the process to S1321.
In S1321, the DL generation management task 403 determines whether there is a free DL generation task 404.
If it is determined that there is a free DL generation task 404 (Yes in S1321), the DL generation management task 403 executes the above-described processing of S1322 to S1324, and returns the processing to S1301.

一方、空き状態のDL生成タスクがないと判定した場合(S1321でNo)、DL生成管理タスク403は、S1330に処理を進める。
S1330では、DL生成管理タスク403は、カレントの描画オブジェクトを、DL生成管理テーブルに、「DL生成タスク空き待ち状態」で登録する。例えば、図11(a)の1221に示すように、CurID、描画位置、幅、高さ、色、及び1222に示すように、DL生成タスク空き待ち状態(ここでは1214のように、「DL生成タスク空き待ち状態」を示す「wait=0」)を、DL生成管理テーブルに登録する。
On the other hand, when it is determined that there is no free DL generation task (No in S1321), the DL generation management task 403 advances the process to S1330.
In step S1330, the DL generation management task 403 registers the current drawing object in the “DL generation task idle state” in the DL generation management table. For example, as indicated by 1221 in FIG. 11A, CurID, drawing position, width, height, color, and as shown by 1222, a DL generation task idle state (in this case, “DL generation” as indicated by 1214). "Wait = 0" indicating "task idle state" is registered in the DL generation management table.

さらに、DL生成管理タスク403は、S1350において、ObjectCountをインクリメントし、S1301に処理を戻す。
また、上記S1320において、待ち合わせ対象の描画オブジェクトのIDが保持されていると判定した場合(S1320でNo)、DL生成管理タスク403は、S1340に処理を進める。
Further, the DL generation management task 403 increments ObjectCount in S1350 and returns the process to S1301.
If it is determined in S1320 that the ID of the drawing object to be waited for is held (No in S1320), the DL generation management task 403 advances the process to S1340.

S1340では、DL生成管理タスク403は、カレントの描画オブジェクトを、DL生成管理テーブルに、「待ち合わせ状態」で登録する。例えば、図11(a)の1221に示すように、CurID、描画位置、幅、高さ、色、及び1222に示すように、「待ち合わせ状態」(例えば、待ち合わせIDが「2」の場合、1213のように「ID=2の待ち合わせ状態」を示す「wait=2」)を、DL生成管理テーブルに登録する。なお、待ち合わせIDが複数(例えば、0,2,4)保持されている場合には、「wait=0,2,4」のように、複数の待ち合わせID(待合情報)を登録する。   In S1340, the DL generation management task 403 registers the current drawing object in the “waiting state” in the DL generation management table. For example, as indicated by 1221 in FIG. 11A, CurID, drawing position, width, height, color, and 1222, as shown in “waiting state” (for example, when the waiting ID is “2”, 1213 In this way, “wait = 2” indicating “ID = 2 waiting state” is registered in the DL generation management table. When a plurality of waiting IDs (for example, 0, 2, 4) are held, a plurality of waiting IDs (waiting information) are registered as “wait = 0, 2, 4,”.

そして、DL生成管理タスク403は、ObjectCountをインクリメントし(S1350)、S1301に処理を戻す。
また、DL生成管理タスク403は、受信した通知がDL生成タスク404からの「DL生成終了通知」であると判定した場合(S1360でYes)、DL生成管理タスク403は、S1361に処理を進める。
Then, the DL generation management task 403 increments ObjectCount (S1350), and returns the process to S1301.
When the DL generation management task 403 determines that the received notification is a “DL generation end notification” from the DL generation task 404 (Yes in S1360), the DL generation management task 403 advances the process to S1361.

S1361では、DL生成管理タスク403は、後述する図9に示すDL生成終了処理を行い、S1301に処理を戻す。
また、DL生成管理タスク403は、受信した通知がPDLタスク402からの「ページ終了通知」であると判定した場合(S1380でYes)、DL生成管理タスク403は、S1381に処理を進める。
In S 1361, the DL generation management task 403 performs a DL generation end process shown in FIG. 9 described later, and returns the process to S 1301.
When the DL generation management task 403 determines that the received notification is a “page end notification” from the PDL task 402 (Yes in S1380), the DL generation management task 403 advances the process to S1381.

S1381では、DL生成管理タスク403は、レンダラタスク405に、「レンダリング処理依頼」を行う。
さらに、S1382において、DL生成管理タスク403は、PDLタスク402に、「ページ終了処理完了通知」を行い、S1301に処理を戻す。
In S1381, the DL generation management task 403 makes a “rendering request” to the renderer task 405.
Further, in S1382, the DL generation management task 403 performs “page end process completion notification” to the PDL task 402, and returns the process to S1301.

図9は、図8のS1361に示したDL生成終了処理の一例を示すフローチャートである。このフローチャートの処理(S1401〜S1430等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(中間コード生成管理部213)を実行することにより実現されるものである。   FIG. 9 is a flowchart showing an example of the DL generation end process shown in S1361 of FIG. The process of this flowchart (each step such as S1401 to S1430) is realized when the CPU 204 of the image forming apparatus 101 executes a program (intermediate code generation management unit 213) recorded in the ROM 201.

まず、S1401において、DL生成管理タスク403は、DL生成タスク404から「DL生成終了通知」とともに通知された終了した描画オブジェクトのIDと一致する描画オブジェクト情報をDL生成管理テーブルから削除する。   First, in step S <b> 1401, the DL generation management task 403 deletes from the DL generation management table the drawing object information that matches the ID of the completed drawing object notified from the DL generation task 404 together with the “DL generation end notification”.

次に、S1402において、DL生成管理タスク403は、ObjectCountをデクリメントする。
さらに、S1403において、DL生成管理タスク403は、ObjectCountが「0」か否かを判定する。
そして、ObjectCountが「0」であると判定した場合(S1403でYes)、DL生成管理タスク403は、本DL生成終了処理を終了し、図8のフローチャートに処理を戻す。
Next, in S1402, the DL generation management task 403 decrements ObjectCount.
Further, in S1403, the DL generation management task 403 determines whether or not the ObjectCount is “0”.
If it is determined that ObjectCount is “0” (Yes in S1403), the DL generation management task 403 ends the DL generation end process and returns the process to the flowchart of FIG.

一方、ObjectCountが「0」でないと判定した場合(S1403でNo)、DL生成管理タスク403は、S1404に処理を進める。
S1404では、DL生成管理タスク403は、DL生成管理テーブルに登録されている描画オブジェクトの情報を1つ取得し、該取得した描画オブジェクト(以下、「現在の描画オブジェクト」という)の状態が「DL生成処理中状態」か否かを判定する。
On the other hand, when it is determined that ObjectCount is not “0” (No in S1403), the DL generation management task 403 advances the process to S1404.
In S1404, the DL generation management task 403 acquires one piece of drawing object information registered in the DL generation management table, and the state of the acquired drawing object (hereinafter referred to as “current drawing object”) is “DL”. It is determined whether or not the “generation processing state”.

そして、現在の描画オブジェクトの状態が「DL生成処理中状態」であると判定した場合(S1404でYes)、DL生成管理タスク403は、そのままS1430に処理を進める。   If it is determined that the current drawing object state is the “DL generation processing state” (Yes in S1404), the DL generation management task 403 proceeds directly to S1430.

一方、現在の描画オブジェクトの状態が「DL生成処理中状態」でないと判定した場合(S1404でNo)、DL生成管理タスク403は、S1405に処理を進める。
S1405では、DL生成管理タスク403は、上記終了した描画オブジェクトのIDが、現在の描画オブジェクトの待ち合わせ対象のIDか否かを判定する。
そして、上記終了した描画オブジェクトのIDが現在の描画オブジェクトの待ち合わせ対象のIDでないと判定した場合(S1405でNo)、DL生成管理タスク403は、そのままS1430に処理を進める。
On the other hand, if it is determined that the current drawing object state is not the “DL generation processing state” (No in S1404), the DL generation management task 403 advances the process to S1405.
In step S1405, the DL generation management task 403 determines whether the ID of the finished drawing object is the ID of the current drawing object waiting target.
If it is determined that the ID of the finished drawing object is not the ID of the current drawing object waiting target (No in S1405), the DL generation management task 403 proceeds directly to S1430.

一方、上記終了した描画オブジェクトのIDが現在の描画オブジェクトの待ち合わせ対象のIDであると判定した場合(S1405でYes)、DL生成管理タスク403は、S1406に処理を進める。   On the other hand, when it is determined that the ID of the finished drawing object is the ID of the waiting target of the current drawing object (Yes in S1405), the DL generation management task 403 advances the process to S1406.

S1406では、DL生成管理タスク403は、上記終了した描画オブジェクトのIDを、現在の描画オブジェクトの待ち合わせ対象のIDから削除する。例えば、上記終了した描画オブジェクトのIDが「1」で、現在の描画オブジェクトの状態が「wait=1,2」の場合、待ち合わせ対象のID「1」を削除して「wait=2」のようにする。   In step S1406, the DL generation management task 403 deletes the ID of the finished drawing object from the waiting target ID of the current drawing object. For example, when the finished drawing object ID is “1” and the current drawing object state is “wait = 1, 2”, the waiting target ID “1” is deleted and “wait = 2”. To.

次に、S1407において、DL生成管理タスク403は、現在の描画オブジェクトに、待ち合わせ対象のIDが登録されている(待ち合わせ対象あり)か否かを判定する。
そして、現在の描画オブジェクトに、待ち合わせ対象のIDが登録されている(待ち合わせ対象あり)と判定した場合(S1407でNo)、DL生成管理タスク403は、そのままS1430に処理を進める。
In step S <b> 1407, the DL generation management task 403 determines whether the ID of the waiting target is registered in the current drawing object (there is a waiting target).
If it is determined that the ID of the waiting target is registered in the current drawing object (there is a waiting target) (No in S1407), the DL generation management task 403 proceeds directly to S1430.

一方、現在の描画オブジェクトに、待ち合わせ対象のIDが登録されていない(待ち合わせ対象なし)と判定した場合(S1407でYes)、DL生成管理タスク403は、S1408に処理を進める。   On the other hand, when it is determined that the waiting object ID is not registered in the current drawing object (no waiting object) (Yes in S1407), the DL generation management task 403 advances the process to S1408.

S1408では、DL生成管理タスク403は、空き状態のDL生成タスク404が存在する(DL生成タスク404が空いている)か否かを判定する。
そして、空き状態のDL生成タスク404が存在する(DL生成タスク404が空いている)と判定した場合(S1408でYes)、DL生成管理タスク403は、S1410に処理を進める。
In S1408, the DL generation management task 403 determines whether there is a free DL generation task 404 (the DL generation task 404 is free).
If it is determined that there is a free DL generation task 404 (the DL generation task 404 is free) (Yes in S1408), the DL generation management task 403 advances the process to S1410.

S1410では、DL生成管理タスク403は、DL生成管理テーブルに登録されている現在の描画オブジェクトの状態の「DL生成処理中状態」を示す「Exec」に変更し、S1411において、空き状態のDL生成タスク404にDL生成依頼する。   In S1410, the DL generation management task 403 changes the state of the current drawing object registered in the DL generation management table to “Exec” indicating the “DL generation processing in progress” state. In S1411, the DL generation in the empty state is generated. The task 404 is requested to generate a DL.

一方、空き状態のDL生成タスク404が存在しない(DL生成タスク404が空いていない)と判定した場合(S1408でNo)、DL生成管理タスク403は、S1420に処理を進める。   On the other hand, if it is determined that there is no free DL generation task 404 (DL generation task 404 is not empty) (No in S1408), the DL generation management task 403 advances the process to S1420.

S1420では、DL生成管理タスク403は、現在の描画オブジェクトの状態を「DL生成タスク空き待ち状態」を示す「Wait=0」に変更し、S1430に処理を進める。   In S1420, the DL generation management task 403 changes the state of the current drawing object to “Wait = 0” indicating “DL generation task empty waiting state”, and advances the process to S1430.

S1430では、DL生成管理タスク403は、DL生成管理テーブルの全ての描画オブジェクトについてS1404〜S1430の処理が終わったか否かを判定する。
そして、まだDL生成管理テーブルの描画オブジェクトでS1404〜S1430の処理が終わっていないものがあると判定した場合(S1430でNo)、DL生成管理タスク403は、S1404に処理を進める。
In S1430, the DL generation management task 403 determines whether or not the processing of S1404 to S1430 has been completed for all drawing objects in the DL generation management table.
If it is determined that there is a drawing object in the DL generation management table that has not been subjected to the processing of S1404 to S1430 (No in S1430), the DL generation management task 403 advances the processing to S1404.

一方、既にDL生成管理テーブルの全ての描画オブジェクトについてS1404〜S1430の処理が終わったと判定した場合(S1430でYes)、DL生成管理タスク403は、本DL生成終了処理を終了し、図8のフローチャートに処理を戻す。   On the other hand, when it is determined that the processing of S1404 to S1430 has already been completed for all drawing objects in the DL generation management table (Yes in S1430), the DL generation management task 403 ends this DL generation end processing, and the flowchart of FIG. Return processing to.

以上示した図9の処理は、DL生成タスク404から「DL生成終了通知」を受け取る毎に実行される。即ち、図9の処理は、DL生成タスク404がDL生成を終了するごとに実行される。   The process of FIG. 9 described above is executed every time a “DL generation end notification” is received from the DL generation task 404. That is, the process in FIG. 9 is executed every time the DL generation task 404 finishes DL generation.

以下、図10、図11(a)〜図11(c)を参照して、図8,図9で示したDL生成管理タスク実行中のDL生成管理テーブルの変化を具体的に説明する。
図10、図11(a)〜図11(c)は、実施例1におけるDL生成管理タスク実行中のDL生成管理テーブルの変化を説明するための図である。なお、ここでは、DL生成タスク404が2つの場合を例に、DL生成管理テーブルの登録、削除について説明する。
Hereinafter, with reference to FIGS. 10 and 11A to 11C, changes in the DL generation management table during execution of the DL generation management task shown in FIGS. 8 and 9 will be described in detail.
10 and 11A to 11C are diagrams for explaining changes in the DL generation management table during execution of the DL generation management task in the first embodiment. Here, registration and deletion of the DL generation management table will be described by taking a case where there are two DL generation tasks 404 as an example.

図10は、描画オブジェクトの描画イメージの一例を示す図である。
図10において、1101、1102、1103、1104、1105は、それぞれ描画オブジェクトの描画イメージである。
図11(a)は、図10に示したDL生成管理タスク403が描画オブジェクト1101、1102、1103、1104をDL生成管理テーブルに登録した状態を示す図である。
FIG. 10 is a diagram illustrating an example of a drawing image of a drawing object.
In FIG. 10, reference numerals 1101, 1102, 1103, 1104, and 1105 denote drawing images of drawing objects.
FIG. 11A is a diagram illustrating a state in which the DL generation management task 403 illustrated in FIG. 10 has registered the drawing objects 1101, 1102, 1103, and 1104 in the DL generation management table.

図11(a)において、1201、1202は、それぞれDL生成タスク0、DL生成タスク1で実行している描画オブジェクト情報を指すポインタである。
1203は、登録された描画オブジェクトを管理するDL生成管理テーブル315(図2)である。
1211、1212、1213、1214は、それぞれ図10に示した描画オブジェクト1101、1102、1103、1104に対応して、登録された描画オブジェクト情報である。描画オブジェクト情報には、1221のように、ID、描画位置(X、Y)、幅Wd、高さHt、色(R、G、B)と、1222のように、処理状態等の情報が格納されている。
In FIG. 11A, reference numerals 1201 and 1202 denote pointers to drawing object information executed by the DL generation task 0 and the DL generation task 1, respectively.
Reference numeral 1203 denotes a DL generation management table 315 (FIG. 2) that manages registered drawing objects.
Reference numerals 1211, 1212, 1213, and 1214 denote registered drawing object information corresponding to the drawing objects 1101, 1102, 1103, and 1104 shown in FIG. The drawing object information stores information such as an ID, a drawing position (X, Y), a width Wd, a height Ht, a color (R, G, B), and a processing state as 1222. Has been.

描画オブジェクト情報1211と1212は、それぞれ「DL生成処理中状態」を示す「Exec」となっている。また、描画オブジェクト情報1213は、「ID=2の描画オブジェクトの待ち合わせ状態」を示す「Wait=2」となっている。また、描画オブジェクト情報1214は、「DL生成タスク空き待ち状態」を示す「Wait=0」となっている(待ち合わせ無し)。   The drawing object information 1211 and 1212 are “Exec” indicating “DL generation processing in progress”. Also, the drawing object information 1213 is “Wait = 2” indicating “waiting state of the drawing object with ID = 2”. Further, the drawing object information 1214 is “Wait = 0” indicating “DL generation task idle state” (no waiting).

図11(b)は、描画オブジェクト1105の登録時のDL生成管理テーブルを示す図である。
図11(b)に示すように、1215は描画オブジェクト1105の描画オブジェクト情報である。描画オブジェクト情報1215に示すように、描画オブジェクト1105は、描画位置(230,230)、幅100、高さ100である。
FIG. 11B is a diagram showing a DL generation management table when the drawing object 1105 is registered.
As shown in FIG. 11B, reference numeral 1215 denotes drawing object information of the drawing object 1105. As shown in the drawing object information 1215, the drawing object 1105 has a drawing position (230, 230), a width 100, and a height 100.

描画オブジェクト1105は、ID=1の描画オブジェクト1101に対し、図8のS1311の重なり判定で「重なり無し」と判定される。よって、ID=1の描画オブジェクト1101と描画オブジェクト1105とは、DL生成の順番が入れ替わっても描画結果に影響ない。そのため、ID=1の描画オブジェクト1101は描画オブジェクト1105の待ち合わせ対象とならない。   The drawing object 1105 is determined to be “no overlap” in the overlapping determination in S1311 of FIG. 8 with respect to the drawing object 1101 with ID = 1. Therefore, the drawing object 1101 with ID = 1 and the drawing object 1105 do not affect the drawing result even if the DL generation order is switched. Therefore, the drawing object 1101 with ID = 1 is not a waiting target of the drawing object 1105.

また、描画オブジェクト1105は、ID=2の描画オブジェクト1102に対し、図8のS1311の重なり判定で「重なり有り」と判定され、図8のS1312の色判定が行われる。なお、描画オブジェクト1102の色値(255,0,0)は、描画オブジェクト1105の色値(255,0,0)と同じであり、図8のS1312の色判定で「同色」と判定される。よって、ID=2の描画オブジェクト1102と描画オブジェクト1105とは、DL生成の順番が入れ替わっても描画結果に影響ない。そのため、ID=2の描画オブジェクト1102は描画オブジェクト1105の待ち合わせ対象とならない。   In addition, the drawing object 1105 is determined to have “overlap” in the overlapping determination in S1311 of FIG. 8 with respect to the drawing object 1102 with ID = 2, and the color determination in S1312 of FIG. 8 is performed. Note that the color value (255, 0, 0) of the drawing object 1102 is the same as the color value (255, 0, 0) of the drawing object 1105, and is determined to be “same color” in the color determination in S1312 of FIG. . Therefore, the drawing object 1102 with ID = 2 and the drawing object 1105 do not affect the drawing result even if the order of DL generation is switched. Therefore, the drawing object 1102 with ID = 2 is not a waiting target of the drawing object 1105.

また、描画オブジェクト1105は、ID=3の描画オブジェクト1103に対し、図8のS1311の重なり判定で「重なり有り」と判定され、図8のS1312の色判定が行われることとなる。なお、描画オブジェクト1103の色値(0,0,0)は、描画オブジェクト1105の色値(255,0,0)と異なり、図8のS1312の色判定で「異なる色」と判定される。よって、ID=3の描画オブジェクト1103は、描画オブジェクト1105の待ち合わせ対象となる。このため、待ち合わせ対象としてID=3が「Wait=3」のように、描画オブジェクト情報1215に格納される。   Further, the drawing object 1105 is determined as “overlapping” in the overlapping determination in S1311 of FIG. 8 with respect to the drawing object 1103 with ID = 3, and the color determination of S1312 in FIG. 8 is performed. The color value (0, 0, 0) of the drawing object 1103 is different from the color value (255, 0, 0) of the drawing object 1105, and is determined as “different color” in the color determination of S1312 of FIG. Therefore, the drawing object 1103 with ID = 3 is a waiting target of the drawing object 1105. Therefore, ID = 3 is stored in the drawing object information 1215 as “Wait = 3” as a waiting target.

また、描画オブジェクト1105は、ID=1の描画オブジェクト1101の場合と同様に、ID=4の描画オブジェクト1103と重なりがない。よって、ID=4の描画オブジェクト1104と描画オブジェクト1105とは、DL生成の順番が入れ替わっても描画結果に影響ない。そのため、ID=4の描画オブジェクト1104は描画オブジェクト1105の待ち合わせ対象とならない。   The drawing object 1105 does not overlap with the drawing object 1103 with ID = 4, as in the case of the drawing object 1101 with ID = 1. Therefore, the drawing object 1104 with ID = 4 and the drawing object 1105 do not affect the drawing result even if the DL generation order is switched. Therefore, the drawing object 1104 with ID = 4 is not a waiting target of the drawing object 1105.

図11(c)は、ID=2の描画オブジェクト1102のDL生成終了時のDL生成管理テーブルを示す図である。
図11(c)に示すように、ID=1の描画オブジェクト情報1211は、図9のS1404で「DL生成処理中」と判定され、何も変更されない。
一方、ID=3の描画オブジェクト情報1213は、図11(b)に示したように、図9のS1405で「DL生成終了したID=2の描画オブジェクト1102が待ち合わせ対象である」と判定される。そして、図9のS1406で描画オブジェクト情報1213の「wait=2」から「2」が削除され、「wait=0」に変更される。これにより、描画オブジェクト情報1211は、待ち合わせ対象のIDがなくなり、且つ「DL生成タスク1」が空いている状態となる。このため、図9のS1410で、ID=3の描画オブジェクト情報1213を「DL処理中状態」を示す「Exec」に変更する。この状態を図11(c)に示している。
ID=4の描画オブジェクト情報1214、ID=5の描画オブジェクト情報1215は、それぞれ変更なしである。
FIG. 11C is a diagram illustrating a DL generation management table at the end of DL generation of the drawing object 1102 with ID = 2.
As shown in FIG. 11C, the drawing object information 1211 with ID = 1 is determined as “DL generation processing in progress” in S1404 of FIG. 9, and nothing is changed.
On the other hand, as shown in FIG. 11B, the drawing object information 1213 with ID = 3 is determined as “the drawing object 1102 with ID = 2 for which DL generation has been completed is a waiting target” in S1405 of FIG. . Then, in S1406 of FIG. 9, “2” is deleted from “wait = 2” in the drawing object information 1213 and is changed to “wait = 0”. As a result, the drawing object information 1211 is in a state where there is no waiting target ID and the “DL generation task 1” is empty. Therefore, in S1410 of FIG. 9, the drawing object information 1213 with ID = 3 is changed to “Exec” indicating “DL processing state”. This state is shown in FIG.
The drawing object information 1214 with ID = 4 and the drawing object information 1215 with ID = 5 are not changed.

以下、図12、図13を参照して、DL生成タスク404、レンダラタスク405について説明する。
図12は、実施例1における各DL生成タスク404が実行するDL生成処理304の一例を示すフローチャートである。このフローチャートの処理(S1501〜S1503等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(中間コード生成部214)を実行することにより実現されるものである。
Hereinafter, the DL generation task 404 and the renderer task 405 will be described with reference to FIGS.
FIG. 12 is a flowchart illustrating an example of the DL generation process 304 executed by each DL generation task 404 according to the first embodiment. The processing of this flowchart (each step such as S1501 to S1503) is realized by the CPU 204 of the image forming apparatus 101 executing a program (intermediate code generation unit 214) recorded in the ROM 201.

DL生成タスク404は、S1501において、DL生成管理タスク403からのDL生成依頼待ちを行う。
そして、DL生成管理タスク403からDL生成依頼を受信すると(S1501でYes)、DL生成タスク404は、S1502に処理を進める。
S1502では、DL生成タスク404は、DL生成依頼とともに受けたDL生成コマンドに従ってDL生成を行い、生成したDLをフレームバッファ223に格納する。
そして、S1503において、DL生成タスク404は、DL生成管理タスク403に、DL生成終了通知を行う。なお、DL生成終了通知を行う際には、上記S1502でDL生成したDL生成コマンドのIDもDL生成管理タスク403に通知する。上記S1503の通知処理を終了すると、DL生成タスク404は、S1501に処理を戻す。
In step S1501, the DL generation task 404 waits for a DL generation request from the DL generation management task 403.
When a DL generation request is received from the DL generation management task 403 (Yes in S1501), the DL generation task 404 advances the process to S1502.
In step S1502, the DL generation task 404 generates a DL according to the DL generation command received together with the DL generation request, and stores the generated DL in the frame buffer 223.
In step S1503, the DL generation task 404 notifies the DL generation management task 403 of the DL generation end. When the DL generation end notification is performed, the DL generation management task 403 is also notified of the ID of the DL generation command generated in S1502. When the notification process in S1503 ends, the DL generation task 404 returns the process to S1501.

図13は、実施例1におけるレンダラタスク405が実行するレンダリング処理305の一例を示すフローチャートである。このフローチャートの処理(S1601〜S1603等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(展開処理部215)を実行することにより実現されるものである。   FIG. 13 is a flowchart illustrating an example of the rendering process 305 executed by the renderer task 405 according to the first embodiment. The processing of this flowchart (each step such as S1601 to S1603) is realized by the CPU 204 of the image forming apparatus 101 executing a program (development processing unit 215) recorded in the ROM 201.

レンダラタスク405は、S1601において、DL生成管理タスク403からのレンダリング依頼待ちを行う。
そして、DL生成管理タスク403からレンダリング依頼を受信すると(S1601でYes)、レンダラタスク405は、S1602に処理を進める。
なお、レンダラタスク405は、各DL生成タスク404でのDL生成に応じて、フレームバッファ223上に生成されたDLをフレームバッファ223からレンダラ207内のメモリに転送するDL転送を行っている。このため、「レンダリング処理依頼」があった際には、DL転送はほぼ終了しており、レンダラタスク405は速やかにレンダリングを行うことが可能な状態である。
The renderer task 405 waits for a rendering request from the DL generation management task 403 in S1601.
When a rendering request is received from the DL generation management task 403 (Yes in S1601), the renderer task 405 advances the process to S1602.
The renderer task 405 performs DL transfer for transferring the DL generated on the frame buffer 223 from the frame buffer 223 to the memory in the renderer 207 in accordance with the DL generation in each DL generation task 404. For this reason, when there is a “rendering request”, the DL transfer is almost finished, and the renderer task 405 is ready to perform rendering.

S1602では、レンダラタスク405は、上記DL転送により専用ハードウェアであるレンダラ207内のメモリに格納されたDLに対してレンダリングを行い、レンダラ207でレンダリングされたビットマップデータ(ラスタデータ)を、ラスタメモリ224に格納する。   In step S1602, the renderer task 405 performs rendering on the DL stored in the memory in the renderer 207, which is dedicated hardware, by the DL transfer, and the bitmap data (raster data) rendered by the renderer 207 is rasterized. Store in the memory 224.

次に、S1603において、レンダラタスク405は、エンジンI/F205を介してプリンタエンジン206にビットマップデータを出力し、印刷させ、S1601に処理を戻す。   In step S1603, the renderer task 405 outputs the bitmap data to the printer engine 206 via the engine I / F 205, causes the printer engine 206 to print, and returns the process to step S1601.

以上示したように、実施例1によれば、マルチコアCPUで並列して描画コマンドからDL生成を行う場合において、PDLタスクで順次解析された描画コマンドの順番(処理順序)を、先に解析され未だDL生成終了していない描画コマンドと変更可能かどうか判定するように構成する。そして、順番の変更が可能(処理順序変更可能)な描画コマンドについては順番を考慮することなく(先に解析された描画コマンドの中間コード生成終了状況(DL生成終了状況)に関係なく)DL生成を依頼する。一方、順番の変更が不可能(処理順序変更不可能)な描画コマンドについては順番通り(先の描画コマンドのDL生成終了を待って)にDL生成を依頼するように、DL生成順序を管理(制御)するように構成する。このような構成により、PDLデータの描画コマンドから中間コード(DL)を生成するまでの処理を、事前の並べ替えや事後の並べ替えを行うことなくマルチコアCPUを用いて並列に行っても、順序を変更できない描画コマンドについてはシーケンシャルのまま処理できるようにし、マルチコアCPUを無駄なく使用し、CPUコア数に応じてPDL処理のパフォーマンスを向上して、少ないメモリ資源でPDLデータを高速に処理し、印刷時間を短縮することができる。   As described above, according to the first embodiment, when DL generation is performed from drawing commands in parallel in a multi-core CPU, the order (processing order) of drawing commands sequentially analyzed by the PDL task is analyzed first. It is configured to determine whether or not the drawing command that has not finished DL generation can be changed. For drawing commands whose order can be changed (processing order can be changed), DL generation is performed without considering the order (regardless of the intermediate code generation end status (DL generation end status) of the previously analyzed drawing command). Request. On the other hand, with respect to drawing commands whose order cannot be changed (processing order cannot be changed), the DL generation order is managed so that DL generation is requested in order (waiting for the end of DL generation of the previous drawing command) ( Control). With such a configuration, even if the processing from the PDL data drawing command to the generation of the intermediate code (DL) is performed in parallel using the multi-core CPU without performing prior rearrangement or subsequent rearrangement, For drawing commands that cannot be changed, the multi-core CPU can be processed without waste, the performance of PDL processing can be improved according to the number of CPU cores, and PDL data can be processed at high speed with less memory resources. Printing time can be shortened.

上記実施例1では、DL生成管理テーブルに登録されている全ての描画オブジェクトに対して待ち合わせの判定を行う構成を示した。実施例2では、PDLデータを生成するホストコンピュータで描画オブジェクトを分割して送ってくる場合のように待ち合わせ判定が必要ない場合には、待ち合わせ判定をしないように構成する。以下、図面を用いて詳細に説明する。   In the first embodiment, a configuration is shown in which waiting determination is performed for all drawing objects registered in the DL generation management table. In the second embodiment, when the waiting determination is not necessary as in the case where the drawing object is divided and sent by the host computer that generates the PDL data, the waiting determination is not performed. Hereinafter, it explains in detail using a drawing.

図14は、実施例2におけるPDLデータの一例を示す図である。
描画オブジェクト1403、1404、1405は、一つのイメージデータを分割したイメージである。
なお、拡大描画を行うときに隣接するイメージ間の位相のずれを少なくするために、1443、1444、1445に示すように、描画オブジェクト1403、1404、1405を重ねて描画する場合がある。このような描画オブジェクト1403、1404、1405は重なりが有るが、どの順番で描画しても問題ない。このため、描画オブジェクト1403、1404、1405間での、DL生成管理タスク403での待ち合わせ判定は不要である。
FIG. 14 is a diagram illustrating an example of PDL data according to the second embodiment.
The drawing objects 1403, 1404, and 1405 are images obtained by dividing one image data.
In order to reduce the phase shift between adjacent images when performing enlarged drawing, drawing objects 1403, 1404, and 1405 may be drawn in an overlapping manner as indicated by 1443, 1444, and 1445. Such drawing objects 1403, 1404, and 1405 overlap, but there is no problem even if they are drawn in any order. For this reason, it is not necessary to determine whether to wait in the DL generation management task 403 between the drawing objects 1403, 1404, and 1405.

よって、本実施例では、このような描画オブジェクトに対して、DL生成管理タスク403にて待ち合わせ判定を行わないようにするため、ホストコンピュータにて各イメージの描画コマンドに、示唆情報(ヒント情報)を付加するように構成する。   Therefore, in the present embodiment, in order to prevent the DL generation management task 403 from making a waiting determination for such a drawing object, the host computer includes a suggestion information (hint information) in each image drawing command. Is configured to be added.

例えば、描画オブジェクト1404について、描画オブジェクト1403を待ち合わせ判定対象から外すため、ホストコンピュータ側で、ヒント情報1431を「Hint=1」とし、描画オブジェクト1404の描画コマンド1421に付加する。   For example, in order to remove the drawing object 1403 from the waiting determination target for the drawing object 1404, the hint information 1431 is set to “Hint = 1” on the host computer side and added to the drawing command 1421 of the drawing object 1404.

また、描画オブジェクト1405について、描画オブジェクト1403,1404を待ち合わせ判定対象から外すため、ホストコンピュータ側で、ヒント情報1432を「Hint=2」とし、描画オブジェクト1405の描画コマンド1422に付加する。   For the drawing object 1405, in order to remove the drawing objects 1403 and 1404 from the waiting determination target, the hint information 1432 is set to “Hint = 2” on the host computer side and is added to the drawing command 1422 of the drawing object 1405.

即ち、ネットワーク102を介して画像形成装置101と通知可能なホストコンピュータ(情報処理装置)のプリンタドライバは、一つのイメージデータを分割した複数の描画オブジェクトに対応して生成した各描画コマンドに対して、これらの間で待ち合わせ判定が行われないように、ヒント(Hint)情報を付加するように構成する。なお、ヒント(Hint)情報には、上記各描画コマンドの画像形成装置101への送信順序を示す数字が格納される。先頭の描画コマンドには、ヒント(Hint)情報を付加しないか、「Hint=0」を付加するようにし、以下、「Hint=1」、「Hint=2」、「Hint=3」、「Hint=4」、・・・のようなヒント情報を、分割された一連の描画コマンドにそれぞれ送信順に付加するように構成する。   That is, the printer driver of the host computer (information processing apparatus) that can notify the image forming apparatus 101 via the network 102 responds to each drawing command generated corresponding to a plurality of drawing objects obtained by dividing one image data. In addition, hint information is added so that the waiting determination is not performed between them. In the hint information, a number indicating the order in which the drawing commands are transmitted to the image forming apparatus 101 is stored. Hint information is not added to the first drawing command, or “Hint = 0” is added. Hereinafter, “Hint = 1”, “Hint = 2”, “Hint = 3”, “Hint” = 4 ”,... Are added to the series of divided drawing commands in the order of transmission.

図14の例では、先頭の描画コマンド1420にはヒント情報は付加せず、描画コマンド1421、1422には、順次「Hint=1」、「Hint=2」のように、描画コマンドの画像形成装置101への送信順序を示す数字をヒント情報として付加している。   In the example of FIG. 14, hint information is not added to the first drawing command 1420, and the drawing commands 1421 and 1422 are sequentially set to “Hint = 1”, “Hint = 2”, and so on. A number indicating the transmission order to 101 is added as hint information.

このようにして描画コマンドに付加されたヒント情報は、待ち合わせ判定が不要となる一連の描画コマンドの先頭の位置を示すこととなる。即ち、図14の例では、描画コマンド1421については、1431に示す「Hint=1」が示すように、1つ先に解析される描画コマンド1420を待ち合わせ判定対象外とする。また、描画コマンド1422については、1432に示す「Hint=2」が示すように、2つ先に解析される描画コマンド1420と1つ先に解析される描画コマンド1421を待ち合わせ判定対象外とする。   The hint information added to the drawing command in this way indicates the start position of a series of drawing commands that do not require waiting determination. In other words, in the example of FIG. 14, with respect to the drawing command 1421, the drawing command 1420 analyzed first is excluded from the waiting determination target as indicated by “Hint = 1” indicated by 1431. As for the drawing command 1422, as indicated by “Hint = 2” indicated by 1432, the drawing command 1420 analyzed second and the drawing command 1421 analyzed first are excluded from the waiting determination target.

なお、ここでは、一つのイメージデータを分割した複数の描画オブジェクトに対応して生成した各描画コマンドに対して、ヒント(Hint)情報を付加する場合を示した。しかし、一つのイメージデータを分割した各描画コマンドのみでなく、どのような描画コマンドであっても、ホストコンピュータ側で待ち合わせ判定が必要ないと判っている一連の描画コマンドに対しては、プリンタドライバがヒント(Hint)情報を付加するように構成してもよい。   Here, a case is shown in which hint information is added to each drawing command generated corresponding to a plurality of drawing objects obtained by dividing one image data. However, not only for each drawing command that divides one image data, but for any series of drawing commands that the host computer does not need to determine whether to wait for any drawing command, the printer driver May be configured to add hint information.

なお、ホストコンピュータのプリンタドライバは、ホストコンピュータのCPUがハードディスク等の記録媒体にコンピュータ読み取り可能に記録されたプリンタドライバプログラムを読み出して実行することにより実現されるものである。   The printer driver of the host computer is realized by the CPU of the host computer reading and executing a printer driver program recorded on a recording medium such as a hard disk in a computer-readable manner.

以下、実施例2における画像形成装置101(DL生成管理タスク403)側の処理について説明する。
図15は、実施例2におけるDL生成管理タスク403の一例を示すフローチャートである。このフローチャートの処理(S1301〜S1382、S2001〜S2003等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(中間コード生成管理部213)を実行することにより実現されるものである。なお、図8と同一のステップには同一のステップ番号を付してあり、説明は省略する。
The processing on the image forming apparatus 101 (DL generation management task 403) side in the second embodiment will be described below.
FIG. 15 is a flowchart illustrating an example of the DL generation management task 403 according to the second embodiment. The processing of this flowchart (steps S1301 to S1382, S2001 to S2003, etc.) is realized by the CPU 204 of the image forming apparatus 101 executing a program (intermediate code generation management unit 213) recorded in the ROM 201. is there. In addition, the same step number is attached | subjected to the step same as FIG. 8, and description is abbreviate | omitted.

S2001において、DL生成管理タスク403は、カレントの描画オブジェクトの描画位置(CurX、CurY)、幅CurWd、高さCurHt、色(CurR、CurG、CurB)、HintをDL生成コマンドから取得する。   In step S2001, the DL generation management task 403 acquires the drawing position (CurX, CurY), width CurWd, height CurHt, color (CurR, CurG, CurB), and Hint of the current drawing object from the DL generation command.

次に、S2002において、DL生成管理タスク403は、CheckIDに、CurIDからHintを減算した値を代入する(CheckID=CurID−Hint)。なお、CheckIDは、ホストコンピュータにて待ち合わせ判定が不要とされた一連の描画オブジェクトの先頭のIDを示す変数であり、RAM202内に確保される。   Next, in S2002, the DL generation management task 403 substitutes a value obtained by subtracting Hint from CurID for CheckID (CheckID = CurID−Hint). Note that CheckID is a variable indicating the head ID of a series of drawing objects for which waiting determination is not required by the host computer, and is secured in the RAM 202.

また、S2003において、DL生成管理タスク403は、S1310で取得したDL生成管理テーブルに登録されている描画オブジェクトのIDと、上記S2002でセットしたCheckIDとを比較する。そして、DL生成管理タスク403は、IDがCheckIDより小さい(ID<CheckID)か否かを判定する。   In step S2003, the DL generation management task 403 compares the drawing object ID registered in the DL generation management table acquired in step S1310 with the Check ID set in step S2002. Then, the DL generation management task 403 determines whether the ID is smaller than CheckID (ID <CheckID).

そして、IDがCheckIDより小さい(ID<CheckID)と判定した場合(S2003でYes)、DL生成管理タスク403は、S1311〜S1314にて重なり判定や色判定等の処理を実行し、S1314に処理を進めるように制御する。   If it is determined that the ID is smaller than CheckID (ID <CheckID) (Yes in S2003), the DL generation management task 403 performs processing such as overlap determination and color determination in S1311 to S1314, and performs the processing in S1314. Control to advance.

一方、IDがCheckIDより小さくない(ID≧CheckID)と判定した場合(S2003でNo)、DL生成管理タスク403は、重なり判定や色判定等の処理を実行することなく(スキップして)、そのままS1314に処理を進めるように制御する。なお、その他の処理は、図8と同一のため説明を省略する。   On the other hand, when it is determined that the ID is not smaller than CheckID (ID ≧ CheckID) (No in S2003), the DL generation management task 403 does not perform processing such as overlap determination and color determination (skipping) as it is. Control is performed to proceed to S1314. The other processes are the same as those in FIG.

以下、図16、図17(a)〜図17(c)を参照して、DL生成管理タスク実行中のDL生成管理テーブルの変化を具体的に説明する。
図16、図17(a)〜図17(c)は、実施例2におけるDL生成管理タスク実行中のDL生成管理テーブルの変化を説明するための図である。なお、ここでは、DL生成タスク404が2つの場合を例に、DL生成管理テーブルの登録について説明する。
Hereinafter, changes in the DL generation management table during execution of the DL generation management task will be described in detail with reference to FIGS. 16 and 17A to 17C.
FIGS. 16 and 17A to 17C are diagrams for explaining changes in the DL generation management table during execution of the DL generation management task in the second embodiment. Here, the registration of the DL generation management table will be described by taking the case of two DL generation tasks 404 as an example.

図16は、描画オブジェクトの描画結果の一例を示す図である。
図16において、1401、1402、1403、1404、1405は、それぞれ描画オブジェクトの描画結果を示す。
図17(a)は、DL生成管理タスクが図16の描画オブジェクト1401、1402、1403をDL生成管理テーブルに登録した状態を示す図である。
図17(a)において、1501、1502は、それぞれDL生成タスク0、DL生成タスク1で実行している描画オブジェクト情報を指すポインタである。
1503は、登録された描画オブジェクトを管理するDL生成管理テーブル315である。
1511〜1513は、登録された描画オブジェクト情報であり、ID、描画位置(X、Y)、幅Wd、高さHt、色(R、G、B)またはイメージ種別Imageと、処理状態が格納されている。
FIG. 16 is a diagram illustrating an example of a drawing result of a drawing object.
In FIG. 16, reference numerals 1401, 1402, 1403, 1404, and 1405 denote the drawing results of the drawing objects.
FIG. 17A is a diagram illustrating a state in which the DL generation management task registers the drawing objects 1401, 1402, and 1403 of FIG. 16 in the DL generation management table.
In FIG. 17A, reference numerals 1501 and 1502 denote pointers indicating the drawing object information executed by the DL generation task 0 and the DL generation task 1, respectively.
Reference numeral 1503 denotes a DL generation management table 315 that manages registered drawing objects.
Reference numerals 1511 to 1513 denote registered drawing object information which stores an ID, a drawing position (X, Y), a width Wd, a height Ht, a color (R, G, B) or an image type Image, and a processing state. ing.

ここでは、3個の描画オブジェクト(図16の1401、1402、1403)が、描画オブジェクト情報1511、1512、1513として登録されている。
描画オブジェクト情報1511と1512は、それぞれDL生成状態を示す「Exec」となっている。描画オブジェクト情報1513は、ID=1の描画オブジェクトのDL生成終了待ち状態を示す「Wait=1」となっている。
Here, three drawing objects (1401, 1402, and 1403 in FIG. 16) are registered as drawing object information 1511, 1512, and 1513.
The drawing object information 1511 and 1512 are “Exec” indicating the DL generation state. The drawing object information 1513 is “Wait = 1” indicating the DL generation completion waiting state of the drawing object with ID = 1.

図17(b)は、描画オブジェクト1404の登録時のDL生成管理テーブルを示す図である。
図17(b)において、1506は描画オブジェクト1404の描画コマンドである。1506に示すように、描画オブジェクト1404は、「Hint=1」であるため、図15のS2003で「No」と判定され、待ち合わせ対象外として、ID=3の描画オブジェクト情報1513との重なり判定や色判定は実行されず(省略され)、処理順序変更可能とみなされる。
なお、描画オブジェクト情報1514は、ID=1やID=2の描画オブジェクトとの重なり判定や色判定は実行される。ここでは、ID=1の描画オブジェクトとの重なり判定や色判定で「Yes」と判定され、ID=1の描画オブジェクトのDL生成終了待ち状態を示す「Wait=1」となる。
FIG. 17B is a diagram showing a DL generation management table when the drawing object 1404 is registered.
In FIG. 17B, reference numeral 1506 denotes a drawing command for the drawing object 1404. As indicated by reference numeral 1506, since the drawing object 1404 is “Hint = 1”, it is determined “No” in S2003 in FIG. 15, and the overlap determination with the drawing object information 1513 with ID = 3 is not performed as a waiting target. The color determination is not executed (omitted) and the processing order is considered to be changeable.
Note that the drawing object information 1514 is subjected to overlap determination and color determination with a drawing object with ID = 1 or ID = 2. Here, “Yes” is determined in the overlap determination or color determination with the drawing object with ID = 1, and “Wait = 1” indicating the DL generation completion waiting state of the drawing object with ID = 1.

図17(c)は、描画オブジェクト1405の登録時のDL生成管理テーブルを示す図である。
図17(c)において、1507は描画オブジェクト1405の描画コマンドである。1507に示すように、描画オブジェクト1405は、「Hint=2」であるため、図15のS2003で「No」と判定され、待ち合わせ対象外として、ID=3の描画オブジェクト情報1513及びID=4の描画オブジェクト情報1514との重なり判定や色判定は実行されず(省略され)、処理順序変更可能とみなされる。
なお、描画オブジェクト情報1514は、ID=1やID=2の描画オブジェクトとの重なり判定や色判定は実行される。しかし、ここでは、ID=1、ID=2の描画オブジェクトのいずれの重なり判定や色判定でも「No」と判定され、DL生成スレッド空き待ち状態を示す「Wait=0」となる。
FIG. 17C is a diagram showing a DL generation management table when the drawing object 1405 is registered.
In FIG. 17C, reference numeral 1507 denotes a drawing command for the drawing object 1405. As illustrated in 1507, since the drawing object 1405 is “Hint = 2”, it is determined as “No” in S2003 in FIG. 15, and the drawing object information 1513 with ID = 3 and ID = 4 are excluded from the waiting targets. The overlap determination and color determination with the drawing object information 1514 are not executed (omitted), and it is considered that the processing order can be changed.
Note that the drawing object information 1514 is subjected to overlap determination and color determination with a drawing object with ID = 1 or ID = 2. However, here, “No” is determined in any overlap determination or color determination of the drawing objects of ID = 1 and ID = 2, and “Wait = 0” indicating the DL generation thread idle waiting state is set.

以上示したように、実施例2によれば、ホストコンピュータ側で待ち合わせ判定の必要がないと判断された一連の描画コマンドにヒント情報を付加して画像形成装置に送信するように構成する。そして、画像形成装置側では、ヒント情報に基づいて待ち合わせ判定を省略して処理順序変更可能とみなし、描画コマンドからDL生成を行うように構成する。このような構成により、実施例1の効果に加え、PDLデータに描画データを分割した一連の描画コマンド等の待ち合わせ判定が不要な一連の描画コマンドが含まれている場合には、さらに高速にPDLデータを処理し、印刷時間を短縮することができる。   As described above, according to the second embodiment, the host computer side is configured to add hint information to a series of drawing commands that are determined not to require waiting determination, and transmit the hint information to the image forming apparatus. On the image forming apparatus side, the waiting determination is omitted based on the hint information, the processing order is considered to be changeable, and the DL generation is performed from the drawing command. With such a configuration, in addition to the effects of the first embodiment, when a series of drawing commands such as a series of drawing commands obtained by dividing the drawing data in the PDL data does not require waiting determination, the PDL can be performed at higher speed. Data can be processed and printing time can be reduced.

以下、本発明の効果について従来と比較して説明する。
図18は、2コアのCPUにおける各処理の積み上げた時間を示す図である。
以下に示す積み上げ時間は、PDL処理、DL生成処理、DL転送処理、レンダリング処理の各処理の積み上げ時間である。
なお、レンダリング処理は専用のハードウェアで行い、DL生成時のメモリ領域とは別のメモリ領域から参照する構成のケースを想定しており、DL生成タスク404で生成したDLの転送が実行されるものとしている。この転送処理が、上記DL転送処理となる。
Hereinafter, the effect of the present invention will be described in comparison with the prior art.
FIG. 18 is a diagram illustrating the accumulated time of each process in the 2-core CPU.
The accumulation time shown below is the accumulation time of each process of PDL processing, DL generation processing, DL transfer processing, and rendering processing.
It is assumed that the rendering process is performed by dedicated hardware and is referenced from a memory area different from the memory area at the time of DL generation, and the DL generated by the DL generation task 404 is transferred. It is supposed to be. This transfer process is the DL transfer process.

図18(a)は、DL生成タスク404を1つで動作させたときの積み上げ時間を示す図である。
このケースでは、PDL解析の結果を順次1つのDL生成タスク404でDL生成し、生成したDLをハードウェアがアクセスするメモリ領域にDL転送を並行で行う。ページ終了した時点で、ほぼDL転送は終了しており、レンダリングが実行される。レンダリング実行中には、次のページのPDL解析、DL生成が実行される。
FIG. 18A is a diagram showing the stacking time when one DL generation task 404 is operated.
In this case, the result of the PDL analysis is sequentially generated by one DL generation task 404, and DL transfer is performed in parallel to the memory area where the generated DL accesses the hardware. When the page ends, the DL transfer is almost completed, and rendering is executed. During rendering execution, PDL analysis and DL generation of the next page are executed.

図18(b)は、DL生成タスク404を2つで動作させ、且つ、本発明対応前の積み上げ時間を示す図である。
このケースでは、PDL解析の結果を順次2つのDL生成タスク404でDL生成するため、DL生成タスク404を1つで動作させたときの半分の時間で終了する。しかし、生成されたDLの順番は描画順番とは異なるため、それぞれのDL生成タスク404で作成したDLの結合処理(並べ替え)を必要とする。
FIG. 18B shows the stacking time before the DL generation task 404 is operated by two and before the present invention is supported.
In this case, since the results of PDL analysis are sequentially generated by the two DL generation tasks 404, the processing ends in half the time when the DL generation task 404 is operated alone. However, since the order of the generated DLs is different from the drawing order, the DL combining process (rearrangement) created by each DL generation task 404 is required.

また、各描画オブジェクトのDL生成後は未だレンダリングできる状態でないため、DL転送はDL結合処理終了後となる。また、次のページのDL生成はDL転送後になり、DL生成タスク404を2つで動作させる効果はかなり落ちる。   In addition, after the DL generation of each drawing object, since it is not yet in a state where rendering is possible, the DL transfer is performed after the DL coupling process is completed. Also, DL generation of the next page is after DL transfer, and the effect of operating two DL generation tasks 404 is considerably reduced.

図18(c)は、DL生成タスク404を2つで動作させ、かつ、本発明対応後の積み上げ時間を示す図である。
このケースでも、PDL解析の結果を順次2つのDL生成タスク404でDL生成するため、DL生成タスク404を1つで動作させたときの半分の時間で終了する。
また、生成されたDLの順番は描画順番と常に一致するため、各描画オブジェクトのDL生成後すぐにDL転送が可能である。さらに、次のページのDL生成もすぐに実行することが可能である。これらのため、DL生成タスク404を2つ動作させる効果を無駄なく発揮することができる。このため、CPUコア数に応じてPDL処理のパフォーマンスを向上することができる。
FIG. 18C is a diagram showing the stacking time after the two DL generation tasks 404 are operated and the present invention is supported.
Even in this case, since the result of PDL analysis is DL generated by the two DL generation tasks 404 sequentially, the processing is completed in half the time when the DL generation task 404 is operated by one.
In addition, since the order of the generated DL always matches the drawing order, DL transfer is possible immediately after DL generation of each drawing object. Furthermore, DL generation of the next page can be performed immediately. Therefore, the effect of operating two DL generation tasks 404 can be exhibited without waste. For this reason, the performance of PDL processing can be improved according to the number of CPU cores.

以上示したように、本発明によれば、PDLデータの描画コマンドから中間コード(DL)を生成するまでの処理を、事前の並べ替えや事後の並べ替えを行うことなくマルチコアCPUを用いて並列に行っても、順序を変更できない描画コマンドについてはシーケンシャルのまま処理できるようにし、マルチコアCPUを無駄なく使用し、CPUコア数に応じてPDL処理のパフォーマンスを向上して、少ないメモリ資源でPDLデータを高速に処理し、印刷時間を短縮することができる。   As described above, according to the present invention, the processing from the PDL data drawing command to the generation of the intermediate code (DL) is performed in parallel using the multi-core CPU without performing prior rearrangement or subsequent rearrangement. However, the drawing commands whose order cannot be changed can be processed in a sequential manner, the multi-core CPU can be used without waste, the performance of the PDL processing can be improved according to the number of CPU cores, and the PDL data can be obtained with less memory resources. Can be processed at high speed, and the printing time can be shortened.

なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
It should be noted that the configuration and contents of the various data described above are not limited to this, and it goes without saying that the various data and configurations are configured according to the application and purpose.
Although one embodiment has been described above, the present invention can take an embodiment as, for example, a system, apparatus, method, program, or storage medium. Specifically, the present invention may be applied to a system composed of a plurality of devices, or may be applied to an apparatus composed of a single device.
Moreover, all the structures which combined said each Example are also contained in this invention.

(他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
(Other examples)
The present invention 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 (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.
Further, the present invention may be applied to a system composed of a plurality of devices or an apparatus composed of a single device.
The present invention is not limited to the above embodiments, and various modifications (including organic combinations of the embodiments) are possible based on the spirit of the present invention, and these are excluded from the scope of the present invention. is not. That is, the present invention includes all the combinations of the above-described embodiments and modifications thereof.

101 画像形成装置
201 ROM
202 RAM
204 CPU
206 プリンタエンジン
207 レンダラ
211 受信部
212 解析部
213 中間コード生成管理部
214 中間コード生成部
215 展開処理部
101 Image forming apparatus 201 ROM
202 RAM
204 CPU
206 Printer Engine 207 Renderer 211 Receiving Unit 212 Analysis Unit 213 Intermediate Code Generation Management Unit 214 Intermediate Code Generation Unit 215 Development Processing Unit

Claims (9)

ページ記述言語データに基づいて印刷を行う画像形成装置であって、
前記ページ記述言語データに含まれる描画コマンドを順次解析する解析手段と、
前記解析手段により解析された描画コマンドから描画コマンド単位で中間コードをそれぞれ並列に生成する複数の生成手段と、
前記複数の生成手段により生成された中間コードからイメージデータを生成するレンダリング手段と、
前記レンダリング手段により生成されたイメージデータを印刷する印刷手段と、
前記解析手段により解析された描画コマンドが、当該描画コマンドより先に解析され中間コード生成が終了していない各描画コマンドと処理順序を変更可能かどうか判定する判定手段と、
前記判定手段により前記いずれの描画コマンドとも処理順序変更可能と判定された描画コマンドについては、前記先に解析された描画コマンドの中間コード生成終了状況に関係なく前記生成手段に中間コード生成を依頼し、一方、前記判定手段により1又は複数の特定の描画コマンドと処理順序変更不可能と判定された描画コマンドについては、前記特定の描画コマンドの中間コード生成終了を待って前記生成手段に中間コード生成を依頼するように制御する管理手段と、
を有することを特徴とする画像形成装置。
An image forming apparatus that performs printing based on page description language data,
Analyzing means for sequentially analyzing drawing commands included in the page description language data;
A plurality of generating means for generating in parallel each intermediate code in units of drawing commands from the drawing commands analyzed by the analyzing means;
Rendering means for generating image data from the intermediate code generated by the plurality of generation means;
Printing means for printing the image data generated by the rendering means;
A determination means for determining whether or not the drawing command analyzed by the analyzing means can be changed with each drawing command analyzed before the drawing command and the intermediate code generation is not completed;
For the drawing command determined by the determining means to be able to change the processing order of any of the drawing commands, the generating means is requested to generate intermediate code regardless of the intermediate code generation completion status of the drawing command analyzed earlier. On the other hand, for one or a plurality of specific drawing commands determined by the determination unit and a drawing command determined to be unable to change the processing order, the generation unit generates an intermediate code after waiting for the intermediate code generation of the specific drawing command to end. Management means to control to request,
An image forming apparatus comprising:
前記解析手段により解析され中間コード生成が終了していない描画コマンドを順次登録するための管理テーブルを有し、
前記判定手段は、前記解析手段により解析された描画コマンドが、前記管理テーブルに登録されている各描画コマンドと処理順序を変更可能かどうか判定するものであり、
前記管理手段は、前記判定手段により特定の描画コマンドと処理順序変更不可能と判定された描画コマンドについては、前記特定の描画コマンドを示す待合情報を付加した状態で前記管理テーブルに登録し、一方、前記判定手段により前記いずれの描画コマンドとも処理順序変更可能と判定された描画コマンドについては、前記待合情報なしの状態で前記管理テーブルに登録し、前記管理テーブルに登録されている各描画コマンドの状態に基づいて、前記各描画コマンドの中間コード生成を前記生成手段に依頼する、ことを特徴とする請求項1に記載の画像形成装置。
A management table for sequentially registering drawing commands that have been analyzed by the analyzing means and for which intermediate code generation has not been completed;
The determining means determines whether or not the drawing command analyzed by the analyzing means can change the processing order with each drawing command registered in the management table,
The management means registers a specific drawing command and a drawing command determined to be unchangeable in the processing order by the determining means in the management table with waiting information indicating the specific drawing command added, The drawing command determined by the determining means to be able to change the processing order of any of the drawing commands is registered in the management table without the waiting information, and each drawing command registered in the management table is registered. The image forming apparatus according to claim 1, wherein the generation unit is requested to generate an intermediate code of each drawing command based on a state.
前記管理手段は、前記生成手段が1の描画オブジェクトの中間コード生成を終了すると、その描画オブジェクトを示す待合情報を前記管理テーブルに登録されている描画コマンドから削除し、前記待合情報のない状態で前記管理テーブルに登録されている描画コマンドから中間コード生成を依頼することを特徴とする請求項2に記載の画像形成装置。   When the generation unit finishes generating the intermediate code of one drawing object, the management unit deletes the waiting information indicating the drawing object from the drawing command registered in the management table, and in a state without the waiting information. The image forming apparatus according to claim 2, wherein an intermediate code generation is requested from a drawing command registered in the management table. 前記判定手段は、2つの描画コマンドの描画位置に重なりが有り、且つ、描画する色が異なる場合に、前記2つの描画コマンドについて処理順序変更不可能と判定し、上記場合以外の場合に、前記2つの描画コマンドについて処理順序変更可能と判定する判定処理を行う、ことを特徴とする請求項1乃至3のいずれか1項に記載の画像形成装置。   The determination unit determines that the processing order of the two drawing commands cannot be changed when the drawing positions of the two drawing commands are overlapped and the drawing colors are different, and in the case other than the above, The image forming apparatus according to claim 1, wherein a determination process for determining that the processing order can be changed for two drawing commands is performed. 前記判定手段は、前記解析手段により解析された描画コマンドに、当該描画コマンドと前記処理順序の判定を行わない描画コマンドを示す示唆情報が付加されている場合、当該描画コマンドと前記示唆情報が示す描画コマンドと間では前記判定処理を行うことなく処理順序変更可能であるとみなす、ことを特徴とする請求項4に記載の画像形成装置。   When the suggestion information indicating the drawing command and the drawing command that does not determine the processing order is added to the drawing command analyzed by the analyzing means, the determination means indicates the drawing command and the suggestion information. The image forming apparatus according to claim 4, wherein the processing order is considered to be changeable without performing the determination processing between drawing commands. 前記示唆情報は、前記ページ記述言語データを生成する情報処理装置で動作してプリンタドライバにより付加されることを特徴とする請求項5に記載の画像形成装置。   The image forming apparatus according to claim 5, wherein the suggestion information is added by a printer driver that operates in an information processing apparatus that generates the page description language data. 前記示唆情報は、1の描画データを分割して生成された複数の描画コマンドに対して、該複数の描画コマンドを示す情報として付加されることを特徴とする請求項6に記載の画像形成装置。   The image forming apparatus according to claim 6, wherein the suggestion information is added as information indicating the plurality of drawing commands to a plurality of drawing commands generated by dividing one drawing data. . 情報処理装置から受信するページ記述言語データに基づいて印刷を行う画像形成装置の制御方法であって、
解析手段が、前記ページ記述言語データに含まれる描画コマンドを順次解析する解析ステップと、
生成手段が、前記解析ステップで解析された描画コマンドから描画コマンド単位で中間コードをそれぞれ並列に生成する複数の生成ステップと、
レンダリング手段が、前記複数の生成ステップで生成された中間コードからイメージデータを生成するレンダリングステップと、
印刷手段が、前記レンダリングステップで生成されたイメージデータを印刷する印刷ステップと、
判定手段が、前記解析ステップで解析された描画コマンドが、当該描画コマンドより先に解析され中間コード生成が終了していない各描画コマンドと処理順序を変更可能かどうか判定する判定ステップと、
管理手段が、前記判定ステップで前記いずれの描画コマンドとも処理順序変更可能と判定された描画コマンドについては、前記先に解析された描画コマンドの中間コード生成終了状況に関係なく前記生成手段に中間コード生成を依頼し、一方、前記判定ステップで1又は複数の特定の描画コマンドと処理順序変更不可能と判定された描画コマンドについては、前記特定の描画コマンドの中間コード生成終了を待って前記生成手段に中間コード生成を依頼するように制御する管理ステップと、
を有することを特徴とする画像形成装置の制御方法。
A method of controlling an image forming apparatus that performs printing based on page description language data received from an information processing apparatus,
An analyzing step for sequentially analyzing drawing commands included in the page description language data;
A plurality of generating steps for generating, in parallel, intermediate codes in units of drawing commands from the drawing commands analyzed in the analyzing step;
A rendering step in which rendering means generates image data from the intermediate code generated in the plurality of generation steps;
A printing step for printing the image data generated in the rendering step;
A determination step for determining whether the drawing command analyzed in the analysis step can change the processing order with each drawing command that has been analyzed before the drawing command and the intermediate code generation has not ended;
For the drawing command for which the management unit determines that the processing order can be changed for any of the drawing commands in the determining step, the intermediate code is sent to the generating unit regardless of the intermediate code generation end status of the drawing command analyzed earlier. On the other hand, for the one or more specific drawing commands determined in the determination step and the drawing command determined to be unable to change the processing order, the generation unit waits for the intermediate code generation of the specific drawing command to end Management steps to control to request intermediate code generation to
A control method for an image forming apparatus, comprising:
コンピュータを、請求項1乃至7のいずれか1項に記載された手段として機能させるためのプログラム。   The program for functioning a computer as a means as described in any one of Claims 1 thru | or 7.
JP2011161527A 2011-07-25 2011-07-25 Image forming apparatus, image forming apparatus control method, and program Expired - Fee Related JP5766059B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011161527A JP5766059B2 (en) 2011-07-25 2011-07-25 Image forming apparatus, image forming apparatus control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011161527A JP5766059B2 (en) 2011-07-25 2011-07-25 Image forming apparatus, image forming apparatus control method, and program

Publications (2)

Publication Number Publication Date
JP2013022889A JP2013022889A (en) 2013-02-04
JP5766059B2 true JP5766059B2 (en) 2015-08-19

Family

ID=47781764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011161527A Expired - Fee Related JP5766059B2 (en) 2011-07-25 2011-07-25 Image forming apparatus, image forming apparatus control method, and program

Country Status (1)

Country Link
JP (1) JP5766059B2 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3413829B2 (en) * 1997-11-18 2003-06-09 富士ゼロックス株式会社 Drawing processing apparatus and method
JPH11170657A (en) * 1997-12-16 1999-06-29 Fuji Xerox Co Ltd Image processor
JP2004038527A (en) * 2002-07-03 2004-02-05 Canon Inc Printer driver, printing control method, computer-readable storage medium, and program
JP5317641B2 (en) * 2008-11-17 2013-10-16 キヤノン株式会社 Image processing method, image processing apparatus, and program for executing the image processing method
JP5284076B2 (en) * 2008-12-25 2013-09-11 キヤノン株式会社 Printing apparatus, control method therefor, and program

Also Published As

Publication number Publication date
JP2013022889A (en) 2013-02-04

Similar Documents

Publication Publication Date Title
US8861014B2 (en) Systems and methods for optimized printer throughput in a multi-core environment
JP4738948B2 (en) Information processing apparatus, image processing method, and computer program
JP5226581B2 (en) Method, computer readable medium and computer readable memory for parallel rasterization of display lists
JP2001134394A (en) Information processor information processing method and computer readable storage medium in which program is stored
JP2013001059A (en) Image forming apparatus, method for controlling image forming apparatus, and program
JP5675445B2 (en) Information processing apparatus, information processing apparatus control method, and computer program
JP2012148429A (en) Print data processing apparatus, cache processing method, and program
JP2019025801A (en) Printing system, printer and control method thereof, and program
JP5482238B2 (en) Image processing apparatus, image forming apparatus, image processing method, image forming method, and program
JP6748445B2 (en) Image forming apparatus, control method of image forming apparatus, and program
US8928914B2 (en) Image processing apparatus, information processing method, and storage medium
JP2011167857A (en) Image forming apparatus, image forming method, and image forming program
JP2011230399A (en) Image processing apparatus and image forming apparatus
JP5766059B2 (en) Image forming apparatus, image forming apparatus control method, and program
JP5560823B2 (en) Image processing control apparatus, image processing apparatus, and program
US20190012120A1 (en) Image processing apparatus and image forming apparatus
JP2018144372A (en) Image formation apparatus, control method and program of image formation apparatus
JP5316012B2 (en) Printing system, printing control apparatus, and printer driver program
US8526052B2 (en) Print data processing apparatus, control method for print data processing apparatus, and storage medium
JP6381311B2 (en) Image forming apparatus, image forming method, and program
JP2010111099A (en) Image processing apparatus and its control method
JP5251995B2 (en) Image data generating apparatus, image forming apparatus, and program
KR20180102499A (en) Image forming apparatus and method for controlling image forming apparatus
JP6102595B2 (en) Print job editing method, print job editing program, recording medium recording print job editing program, and print job editing system
JP6331654B2 (en) Image forming apparatus, image forming system, control method thereof, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150519

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150616

LAPS Cancellation because of no payment of annual fees