JP5766059B2 - Image forming apparatus, image forming apparatus control method, and program - Google Patents
Image forming apparatus, image forming apparatus control method, and program Download PDFInfo
- 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
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).
しかし、特許文献1に示すように、PDLを並列に処理する場合、生成される中間コードの順序は保証されないため、ページ終了後、生成された中間コードの並べ替えを行う必要があり、並べ替えの処理に時間がかかってしまう。
However, as shown in
また、特許文献2に示すように、事前にコマンドの並べ替えをする場合、全てのデータを事前に受け取る必要があり、メモリ資源を圧迫するとともに、最初の印刷を行うまで時間がかかってしまう。
Further, as shown in
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ページ記述言語データの描画コマンドから中間コードを生成するまでの処理を、事前の並べ替えや事後の並べ替えを行うことなくマルチコア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.
以下、本発明を実施するための形態について、図面を参照して説明する。 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,
201はROMで、CPU204の制御コード等をコンピュータ読取可能に格納する。ROM201に格納される制御コードは、後述する受信部211、解析部212、中間コード生成管理部213、中間コード生成部214、展開処理部215等として、CPU204を機能させるためのものである。
202はRAMで、様々な情報を一時格納する。RAM202は、受信バッファ221、ワークメモリ222、フレームバッファ223、ラスタメモリ224等として利用される。
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
解析部212は、受信部211から渡されたPDLデータをワークメモリ222から読み出し、コマンドを解析する。
中間コード生成管理部213は、解析部212において解析されたデータを判定し、中間コード生成を制御するための情報をワークメモリ222に格納する。
The
The intermediate code
中間コード生成部214は、解析部212において解析されたデータから描画を行なうための内部情報である中間コード(DL:Display List(中間データともいう))を生成し、フレームバッファ223に格納する。なお、中間コード(DL)は、レンダラ(Renderer)207により、ラスタイメージの生成が可能なデータである。
The intermediate
展開処理部215は、フレームバッファ223に格納された中間コード(DL)をラスタイメージ(ビットマップデータ)に展開し、該展開したラスタイメージをラスタメモリ224に格納する。なお、展開処理部215は、処理に時間がかかるため、専用ハードウェアであるレンダラ207を用いて高速に処理を行っている。
The expansion processing unit 215 expands the intermediate code (DL) stored in the
受信バッファ221は、ネットワークI/F203を介して受信した印刷データを格納するメモリである。ワークメモリ222は、入力された印刷データから特定されたPDLデータや、中間コードに変換するときに一時的に使用するメモリである。
The
フレームバッファ223は、中間コード生成部214で生成された中間コードを格納するメモリである。ラスタメモリ224は、フレームバッファ223に格納された中間コードから展開処理部215により展開制御されたラスタイメージを格納するメモリである。
The
レンダラ207は、上述したように、展開処理部215の制御により、フレームバッファ223に格納されているディスプレイリスト(DL)を入力として、ラスタイメージを生成する専用ハードウェアである。
As described above, the
205はエンジンI/Fで、プリンタエンジン206との信号の入出力を行う。プリンタエンジン206は、ラスタイメージデータに基づいて、例えば、周知の電子写真プロセスによって感光ドラム上に潜像を形成し、用紙に転写して定着し印字を行う。なお、プリンタエンジン206の印刷方法は、電子写真プロセスによる印刷方法に限定されるものではなく、どのような印刷方法であってもよく、例えばインクジェット方式、昇華式等の他の印刷方法でもよい。
図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
受信処理301は、受信部211で実行される処理である。受信処理301は、受信バッファ221に格納された受信データからPDLを特定し、PDLデータ311をワークメモリ222に格納する。
A
PDL処理302は、解析部212で実行される処理である。PDL処理302は、ワークメモリ222に格納されたPDLデータ311を解析し、解析したコマンドに従って中間コード生成コマンド(DL生成コマンド312)をワークメモリ222に格納する。なお、DL生成コマンド312とは、PDLデータから解析された描画コマンド毎に生成されるものであり、該描画コマンドから中間コードを生成するための命令である。
The
DL生成管理処理303は、中間コード生成管理部213で実行される処理である。DL生成管理処理303は、ワークメモリ222に格納されたDL生成コマンド312に従って判定を行う。そして、判定結果に基づいて、DL生成管理処理303は、ワークメモリ222内のDL生成管理テーブル315に、DL生成コマンドの描画情報(描画オブジェクト)を格納(順次登録)し、DL生成実行を管理する。
The DL
DL生成処理304は、中間コード生成部214で実行される処理である。DL生成処理304は、ワークメモリ222に格納されたDL生成コマンド312に従って、DL313を生成し、フレームバッファ223に格納する。
The
レンダリング処理305は、展開処理部215で実行され処理である。レンダリング処理305は、レンダラ207を用いて、フレームバッファ223に格納されたDL313からビットマップ314を生成し、ラスタメモリ224に格納する。
なお、PDLにおいては、以上説明した各処理をシーケンシャルに実行し、通常、PDLデータのコマンド順にDLを生成する必要がある。
The
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
受信タスク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
The
The DL
各DL生成タスク404はそれぞれ、DL生成管理タスク403から処理依頼された描画コマンドから描画コマンド単位で中間コード(DL)を生成するDL生成処理304を行う。
レンダラタスク405は、DL生成管理タスク403からの依頼に従ってレンダリング処理305を実行し、不図示のエンジンタスクに渡して印刷処理を依頼する。
なお、各タスクは全て独立であり、マルチコアのCPU204において、複数のタスクを並列に実行できる。
Each
The
Each task is independent, and a
以下、画像形成装置101処理についてフローチャートを参照して説明する。
図4は、画像形成装置101の電源投入時の処理の一例を示すフローチャートである。なお、このフローチャートの処理(S1001〜S1005等の各ステップ)は、画像形成装置101のCPU204がROM201にコンピュータ読み取り可能に記録されたプログラムを実行することにより実現されるものである。
Hereinafter, the
FIG. 4 is a flowchart illustrating an example of processing when the
S1001において、CPU204は、受信タスク401を起動し、受信処理301を実行可能にする。
次に、S1002において、CPU204は、PDLタスク402を起動し、PDL処理302を実行できるようにする。
次に、S1003において、CPU204は、DL生成管理タスク403を起動し、DL生成管理処理303を実行できるようにする。
In step S <b> 1001, the
In step S <b> 1002, the
In step S <b> 1003, the
次に、S1004において、CPU204は、1つまたは複数のDL生成タスク404を起動し、DL生成処理304を実行できるようにする。CPU204は、CPUコアの数だけDL生成タスク404を起動し、各CPUコアにより並列に実行するようにする。
次に、S1005において、CPU204は、レンダラタスク405を起動し、レンダリング処理305を実行できるようにする。
なお、各ステップは、順不同で実行することができ、各タスク間で通信できるようにする。
In step S <b> 1004, the
In step S <b> 1005, the
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
FIG. 5 is a flowchart illustrating an example of the
まず、受信タスク401は、データ受信待ち、又はデータ取得依頼待ちを行う(S1101,S1110)。ネットワークI/F203を介してデータ受信すると(S1101でYes)、受信タスク401は、S1102において、受信バッファ221にデータを格納する。
First, the
次に、S1103において、受信タスク401は、ジョブ開始実行済みか否かを判定する。そして、まだジョブ開始実行していないと判定した場合(S1103でNo)、受信タスク401は、S1104によりを進める。S114では、受信タスク401は、PDLタスク402に「ジョブ開始通知」を行う。この「ジョブ開始通知」に応じて、PDLタスク402は「データ取得依頼」を受信タスクに行う。
In step S1103, the
一方、既にジョブ開始実行していると判定した場合(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
When the “data acquisition request” is received from the
S1111では、受信タスク401は、受信バッファ221にデータが格納されているか否かを判定する。
そして、受信バッファ221にデータが格納されていると判定した場合(S1111でYes)、受信タスク401は、S1112に処理を進める。
S1112では、受信タスク401は、PDLタスク402からデータ取得依頼時に渡されたワークメモリ222のアドレスに、上記受信バッファ221に格納されたデータをコピーする。
In step S <b> 1111, the
If it is determined that data is stored in the reception buffer 221 (Yes in S1111), the
In step S <b> 1112, the
次に、S1113において、受信タスク401は、「データ取得完了」をPDLタスク402に通知する。次に、S1114において、受信タスク401は、受信バッファ221を解放し、S1101に処理を戻す。
In step S <b> 1113, the
一方、受信バッファ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
When the data is received via the network I / F 203 (Yes in S1120), the
図6は、実施例1におけるPDLタスク402が実行するPDL処理302の一例を示すフローチャートである。このフローチャートの処理(S1201〜S1223等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(解析部212)を実行することにより実現されるものである。
FIG. 6 is a flowchart illustrating an example of the
まず、PDLタスク402は、S1201において、受信タスク401からの「ジョブ開始通知」待ちを行う。そして、受信タスク401から「ジョブ開始通知」を受けると、S1202において、PDLタスク402は、受信タスク401にワークメモリ222のアドレスを渡し、「データ取得依頼」を行う。
First, in step S <b> 1201, the
次に、S1203において、PDLタスク402は、受信タスク401からのデータ取得完了通知待ちを行う。そして、受信タスク401からデータ取得完了通知を受けると(S1203でYes)、PDLタスク402は、S1204で、上記ワークメモリ222のアドレスに格納されたデータを解析する。
In step S <b> 1203, the
次に、S1205において、PDLタスク402は、上記S1204での解析の結果、上記ワークメモリ222に格納されたデータがページ開始を示すデータか否かを判定する。
In step S1205, the
そして、ページ開始を示すデータであると判定した場合(S1205でYes)、PDLタスク402は、S1206において、DL生成管理タスク403に、「ページ開始通知」を行う。
If it is determined that the data indicates page start (Yes in S1205), the
次に、S1207において、PDLタスク402は、DL生成管理タスク403からの「ページ開始処理完了通知」待ちを行う。そして、DL生成管理タスク403から「ページ開始処理完了通知」を受けると(S1207でYes)、PDLタスク402は、S1202に処理を戻す。
In step S <b> 1207, the
一方、上記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
In step S1210, the
If the
さらに、S1212において、PDLタスク402は、DL生成管理タスク403からの「ページ終了処理完了通知」待ちを行う。そして、DL生成管理タスク403から「ページ終了処理完了通知」を受けると(S1212でYes)、PDLタスク402は、S1202に処理を戻す。
In step S <b> 1212, the
一方、上記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
In step S1220, the
S1221では、PDLタスク402は、上記ワークメモリ222に格納されたデータ(描画コマンド)からDL生成コマンドを生成し、ワークメモリ222に格納する。
次に、S1222において、PDLタスク402は、DL生成管理タスク403へDL生成処理依頼を行う。この際、ワークメモリ222を介して、上記S1221で生成したDL生成コマンドをDL生成管理タスク403へ渡す。
In step S <b> 1221, the
Next, in S1222, the
さらに、S1223において、PDLタスク402は、DL生成管理タスク403からのDL生成終了通知待ちを行う。そして、DL生成管理タスク403からDL生成終了通知を受けると(S1223でYes)、PDLタスク402は、S1202に処理を戻す。
Further, in step S1223, the
一方、上記ワークメモリ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
ここで、図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
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
後述する重なり判定おいては、各描画オブジェクトの矩形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
図8は、実施例1におけるDL生成管理タスク403が実行するDL生成管理処理303の一例を示すフローチャートである。このフローチャートの処理(S1301〜S1382等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(中間コード生成管理部213)を実行することにより実現されるものである。
FIG. 8 is a flowchart illustrating an example of the DL
DL生成管理タスク403は、他のタスクからの通知を受信すると、該通知がDL生成依頼、DL生成終了通知、ページ開始通知、ページ終了通知かを判定する(S1301、S1360、S1370、S1380)。
When receiving a notification from another task, the DL
そして、受信した通知が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
S1371では、DL生成管理タスク403は、カレントの描画オブジェクトのIDを示すCurIDと、DL生成管理テーブルに登録されている描画オブジェクトの数を示すObjectCount(RAM202内に確保される変数)を「0」に初期化する。なお、CurIDは、カレントの描画オブジェクトのIDを示す変数であり、RAM202内に確保される。また、ObjectCountは、後述するDL生成管理テーブルに登録されている描画オブジェクトの数を示す変数であり、RAM202内に確保される。
In
次に、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
If it is determined that the received notification is a “DL generation request” from the PDL task 402 (Yes in S1301), the DL
In S1302, the DL
In step S1303, the DL
次に、S1304において、DL生成管理タスク403は、カレントの描画オブジェクトの描画位置(CurX、CurY)、幅CurWd、高さCurHt、色(CurR、CurG、CurB)を上記DL生成コマンドから取得する。
Next, in S1304, the DL
次に、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
If it is determined that the ObjectCount is “0” (Yes in S1305), the DL
In S1322, the DL
次に、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
また、上記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
In S1310, the DL
そして、S1311において、DL生成管理タスク403は、カレントの描画オブジェクトと上記S1310で取得したDL生成管理テーブルに登録されている描画オブジェクトについて、描画位置、幅、高さをそれぞれ比較し、重なりがあるか否かを判定する。重なりの有無の判定方法は以下の条件文で行う。
In step S1311, the DL
(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
On the other hand, if it is determined that there is an overlap (Yes in S1311), the DL
In S1312, the DL
(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
On the other hand, if it is determined that the colors are different (Yes in S1312), the DL
In step S1313, the DL
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
一方、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
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
If it is determined that the ID of the drawing object to be waited for is not held (Yes in S1320), the DL
In S1321, the DL
If it is determined that there is a free DL generation task 404 (Yes in S1321), the DL
一方、空き状態の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
In step S1330, the DL
さらに、DL生成管理タスク403は、S1350において、ObjectCountをインクリメントし、S1301に処理を戻す。
また、上記S1320において、待ち合わせ対象の描画オブジェクトのIDが保持されていると判定した場合(S1320でNo)、DL生成管理タスク403は、S1340に処理を進める。
Further, the DL
If it is determined in S1320 that the ID of the drawing object to be waited for is held (No in S1320), the DL
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
そして、DL生成管理タスク403は、ObjectCountをインクリメントし(S1350)、S1301に処理を戻す。
また、DL生成管理タスク403は、受信した通知がDL生成タスク404からの「DL生成終了通知」であると判定した場合(S1360でYes)、DL生成管理タスク403は、S1361に処理を進める。
Then, the DL
When the DL
S1361では、DL生成管理タスク403は、後述する図9に示すDL生成終了処理を行い、S1301に処理を戻す。
また、DL生成管理タスク403は、受信した通知がPDLタスク402からの「ページ終了通知」であると判定した場合(S1380でYes)、DL生成管理タスク403は、S1381に処理を進める。
In
When the DL
S1381では、DL生成管理タスク403は、レンダラタスク405に、「レンダリング処理依頼」を行う。
さらに、S1382において、DL生成管理タスク403は、PDLタスク402に、「ページ終了処理完了通知」を行い、S1301に処理を戻す。
In S1381, the DL
Further, in S1382, the DL
図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
まず、S1401において、DL生成管理タスク403は、DL生成タスク404から「DL生成終了通知」とともに通知された終了した描画オブジェクトのIDと一致する描画オブジェクト情報をDL生成管理テーブルから削除する。
First, in step S <b> 1401, the DL
次に、S1402において、DL生成管理タスク403は、ObjectCountをデクリメントする。
さらに、S1403において、DL生成管理タスク403は、ObjectCountが「0」か否かを判定する。
そして、ObjectCountが「0」であると判定した場合(S1403でYes)、DL生成管理タスク403は、本DL生成終了処理を終了し、図8のフローチャートに処理を戻す。
Next, in S1402, the DL
Further, in S1403, the DL
If it is determined that ObjectCount is “0” (Yes in S1403), the DL
一方、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
In S1404, the DL
そして、現在の描画オブジェクトの状態が「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
一方、現在の描画オブジェクトの状態が「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
In step S1405, the DL
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
一方、上記終了した描画オブジェクトの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
S1406では、DL生成管理タスク403は、上記終了した描画オブジェクトのIDを、現在の描画オブジェクトの待ち合わせ対象のIDから削除する。例えば、上記終了した描画オブジェクトのIDが「1」で、現在の描画オブジェクトの状態が「wait=1,2」の場合、待ち合わせ対象のID「1」を削除して「wait=2」のようにする。
In step S1406, the DL
次に、S1407において、DL生成管理タスク403は、現在の描画オブジェクトに、待ち合わせ対象のIDが登録されている(待ち合わせ対象あり)か否かを判定する。
そして、現在の描画オブジェクトに、待ち合わせ対象のIDが登録されている(待ち合わせ対象あり)と判定した場合(S1407でNo)、DL生成管理タスク403は、そのままS1430に処理を進める。
In step S <b> 1407, the DL
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
一方、現在の描画オブジェクトに、待ち合わせ対象の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
S1408では、DL生成管理タスク403は、空き状態のDL生成タスク404が存在する(DL生成タスク404が空いている)か否かを判定する。
そして、空き状態のDL生成タスク404が存在する(DL生成タスク404が空いている)と判定した場合(S1408でYes)、DL生成管理タスク403は、S1410に処理を進める。
In S1408, the DL
If it is determined that there is a free DL generation task 404 (the
S1410では、DL生成管理タスク403は、DL生成管理テーブルに登録されている現在の描画オブジェクトの状態の「DL生成処理中状態」を示す「Exec」に変更し、S1411において、空き状態のDL生成タスク404にDL生成依頼する。
In S1410, the 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 (
S1420では、DL生成管理タスク403は、現在の描画オブジェクトの状態を「DL生成タスク空き待ち状態」を示す「Wait=0」に変更し、S1430に処理を進める。
In S1420, the DL
S1430では、DL生成管理タスク403は、DL生成管理テーブルの全ての描画オブジェクトについてS1404〜S1430の処理が終わったか否かを判定する。
そして、まだDL生成管理テーブルの描画オブジェクトでS1404〜S1430の処理が終わっていないものがあると判定した場合(S1430でNo)、DL生成管理タスク403は、S1404に処理を進める。
In S1430, the DL
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
一方、既に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
以上示した図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
以下、図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
図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,
FIG. 11A is a diagram illustrating a state in which the DL
図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,
描画オブジェクト情報1211と1212は、それぞれ「DL生成処理中状態」を示す「Exec」となっている。また、描画オブジェクト情報1213は、「ID=2の描画オブジェクトの待ち合わせ状態」を示す「Wait=2」となっている。また、描画オブジェクト情報1214は、「DL生成タスク空き待ち状態」を示す「Wait=0」となっている(待ち合わせ無し)。
The
図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
As shown in FIG. 11B,
描画オブジェクト1105は、ID=1の描画オブジェクト1101に対し、図8のS1311の重なり判定で「重なり無し」と判定される。よって、ID=1の描画オブジェクト1101と描画オブジェクト1105とは、DL生成の順番が入れ替わっても描画結果に影響ない。そのため、ID=1の描画オブジェクト1101は描画オブジェクト1105の待ち合わせ対象とならない。
The
また、描画オブジェクト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
また、描画オブジェクト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
また、描画オブジェクト1105は、ID=1の描画オブジェクト1101の場合と同様に、ID=4の描画オブジェクト1103と重なりがない。よって、ID=4の描画オブジェクト1104と描画オブジェクト1105とは、DL生成の順番が入れ替わっても描画結果に影響ない。そのため、ID=4の描画オブジェクト1104は描画オブジェクト1105の待ち合わせ対象とならない。
The
図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
As shown in FIG. 11C, the
On the other hand, as shown in FIG. 11B, the
The
以下、図12、図13を参照して、DL生成タスク404、レンダラタスク405について説明する。
図12は、実施例1における各DL生成タスク404が実行するDL生成処理304の一例を示すフローチャートである。このフローチャートの処理(S1501〜S1503等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(中間コード生成部214)を実行することにより実現されるものである。
Hereinafter, the
FIG. 12 is a flowchart illustrating an example of the
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
When a DL generation request is received from the DL generation management task 403 (Yes in S1501), the
In step S1502, the
In step S1503, the
図13は、実施例1におけるレンダラタスク405が実行するレンダリング処理305の一例を示すフローチャートである。このフローチャートの処理(S1601〜S1603等の各ステップ)は、画像形成装置101のCPU204がROM201に記録されたプログラム(展開処理部215)を実行することにより実現されるものである。
FIG. 13 is a flowchart illustrating an example of the
レンダラタスク405は、S1601において、DL生成管理タスク403からのレンダリング依頼待ちを行う。
そして、DL生成管理タスク403からレンダリング依頼を受信すると(S1601でYes)、レンダラタスク405は、S1602に処理を進める。
なお、レンダラタスク405は、各DL生成タスク404でのDL生成に応じて、フレームバッファ223上に生成されたDLをフレームバッファ223からレンダラ207内のメモリに転送するDL転送を行っている。このため、「レンダリング処理依頼」があった際には、DL転送はほぼ終了しており、レンダラタスク405は速やかにレンダリングを行うことが可能な状態である。
The
When a rendering request is received from the DL generation management task 403 (Yes in S1601), the
The
S1602では、レンダラタスク405は、上記DL転送により専用ハードウェアであるレンダラ207内のメモリに格納されたDLに対してレンダリングを行い、レンダラ207でレンダリングされたビットマップデータ(ラスタデータ)を、ラスタメモリ224に格納する。
In step S1602, the
次に、S1603において、レンダラタスク405は、エンジンI/F205を介してプリンタエンジン206にビットマップデータを出力し、印刷させ、S1601に処理を戻す。
In step S1603, the
以上示したように、実施例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
よって、本実施例では、このような描画オブジェクトに対して、DL生成管理タスク403にて待ち合わせ判定を行わないようにするため、ホストコンピュータにて各イメージの描画コマンドに、示唆情報(ヒント情報)を付加するように構成する。
Therefore, in the present embodiment, in order to prevent the DL
例えば、描画オブジェクト1404について、描画オブジェクト1403を待ち合わせ判定対象から外すため、ホストコンピュータ側で、ヒント情報1431を「Hint=1」とし、描画オブジェクト1404の描画コマンド1421に付加する。
For example, in order to remove the
また、描画オブジェクト1405について、描画オブジェクト1403,1404を待ち合わせ判定対象から外すため、ホストコンピュータ側で、ヒント情報1432を「Hint=2」とし、描画オブジェクト1405の描画コマンド1422に付加する。
For the
即ち、ネットワーク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
図14の例では、先頭の描画コマンド1420にはヒント情報は付加せず、描画コマンド1421、1422には、順次「Hint=1」、「Hint=2」のように、描画コマンドの画像形成装置101への送信順序を示す数字をヒント情報として付加している。
In the example of FIG. 14, hint information is not added to the
このようにして描画コマンドに付加されたヒント情報は、待ち合わせ判定が不要となる一連の描画コマンドの先頭の位置を示すこととなる。即ち、図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
なお、ここでは、一つのイメージデータを分割した複数の描画オブジェクトに対応して生成した各描画コマンドに対して、ヒント(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
S2001において、DL生成管理タスク403は、カレントの描画オブジェクトの描画位置(CurX、CurY)、幅CurWd、高さCurHt、色(CurR、CurG、CurB)、HintをDL生成コマンドから取得する。
In step S2001, the DL
次に、S2002において、DL生成管理タスク403は、CheckIDに、CurIDからHintを減算した値を代入する(CheckID=CurID−Hint)。なお、CheckIDは、ホストコンピュータにて待ち合わせ判定が不要とされた一連の描画オブジェクトの先頭のIDを示す変数であり、RAM202内に確保される。
Next, in S2002, the DL
また、S2003において、DL生成管理タスク403は、S1310で取得したDL生成管理テーブルに登録されている描画オブジェクトのIDと、上記S2002でセットしたCheckIDとを比較する。そして、DL生成管理タスク403は、IDがCheckIDより小さい(ID<CheckID)か否かを判定する。
In step S2003, the DL
そして、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
一方、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
以下、図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
図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,
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,
ここでは、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
The
図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
In FIG. 17B,
Note that the
図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
In FIG. 17C,
Note that the
以上示したように、実施例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
図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
In this case, the result of the PDL analysis is sequentially generated by one
図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
In this case, since the results of PDL analysis are sequentially generated by the two
また、各描画オブジェクトの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
図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
Even in this case, since the result of PDL analysis is DL generated by the two
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
以上示したように、本発明によれば、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
202 RAM
204 CPU
206
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又は複数の特定の描画コマンドと処理順序変更不可能と判定された描画コマンドについては、前記特定の描画コマンドの中間コード生成終了を待って前記生成手段に中間コード生成を依頼するように制御する管理ステップと、
を有することを特徴とする画像形成装置の制御方法。 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:
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)
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 |
-
2011
- 2011-07-25 JP JP2011161527A patent/JP5766059B2/en not_active Expired - Fee Related
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 |