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

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

Info

Publication number
JP6748445B2
JP6748445B2 JP2016032473A JP2016032473A JP6748445B2 JP 6748445 B2 JP6748445 B2 JP 6748445B2 JP 2016032473 A JP2016032473 A JP 2016032473A JP 2016032473 A JP2016032473 A JP 2016032473A JP 6748445 B2 JP6748445 B2 JP 6748445B2
Authority
JP
Japan
Prior art keywords
page
pages
data
pdl data
image forming
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.)
Active
Application number
JP2016032473A
Other languages
Japanese (ja)
Other versions
JP2016210175A (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 CN201610246313.4A priority Critical patent/CN106095345B/en
Priority to US15/141,510 priority patent/US10121098B2/en
Publication of JP2016210175A publication Critical patent/JP2016210175A/en
Application granted granted Critical
Publication of JP6748445B2 publication Critical patent/JP6748445B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1248Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Record Information Processing For Printing (AREA)

Description

本発明は中間データを複数の処理手段で生成する技術に関する。 The present invention relates to a technique of generating intermediate data with a plurality of processing means.

ページ記述言語で記述されている印刷データ(PDLデータ)に基づくラスタライズにおいては、PDLデータから中間言語で記述された中間データが生成され、その中間データがラスターイメージにラスタライズされる。特許文献1では、複数のプロセッサコアを有するマルチコアCPU搭載のプリンタが、異なるページのラスタライズを並列実行する技術を開示する。すなわち、各プロセッサコアは、ラスタライズ対象のページが順に割り当てられ、その割り当てられたページのPDLデータから中間データを生成し、その中間データをラスタライズすることで、そのページのラスターイメージを生成する。そしてラスターイメージは、プリンタエンジンに送信されて印刷される。 In rasterization based on print data (PDL data) described in a page description language, intermediate data described in an intermediate language is generated from PDL data, and the intermediate data is rasterized into a raster image. Patent Document 1 discloses a technique in which a printer equipped with a multi-core CPU having a plurality of processor cores executes rasterization of different pages in parallel. That is, each processor core is sequentially assigned with rasterization target pages, generates intermediate data from the PDL data of the assigned pages, and rasterizes the intermediate data to generate a raster image of the page. The raster image is then sent to the printer engine for printing.

特開2012−16842号公報JP, 2012-16842, A

特許文献1のプリンタにおいては複数のプロセッサコアが異なるページのラスタライズを行うので、印刷されるページの順番をPDLデータのページの順番と一致させるべく次の制御を行っている。一方のプロセッサコアによる後のページのラスタライズが先に完了したとしても、他方のプロセッサコアによる先のページのラスタライズおよびラスターイメージのプリンタエンジンへの送信の完了を待つ。そしてその後で、後のページのラスターイメージをプリンタエンジンに送信する。 In the printer of Patent Document 1, since a plurality of processor cores rasterize different pages, the following control is performed so that the order of printed pages matches the order of pages of PDL data. Even if one processor core completes the rasterization of the subsequent page first, it waits for the other processor core to complete the rasterization of the previous page and the transmission of the raster image to the printer engine. Then, after that, the raster image of the subsequent page is transmitted to the printer engine.

すなわち、特許文献1では、先にラスタライズが完了した後のページのラスターイメージは、先のページのラスターイメージが生成されるまでメモリに保持され続ける。そのため、ラスターイメージを保持する分だけのメモリ量が必要となる。 That is, in Patent Document 1, the raster image of the page after the rasterization is completed first is kept in the memory until the raster image of the previous page is generated. Therefore, the amount of memory required to hold the raster image is required.

上記事情に鑑みて、本発明の画像形成装置は、複数のページを含むPDLデータを受信する受信手段と、前記PDLデータから前記複数のページの中間データをページごとに生成する複数の処理手段と、前記複数の処理手段によって生成されたページごとの中間データを、ページごとにラスタライズするラスタライズ手段と、を有し、前記ラスタライズ手段は、先行ページの中間データの生成よりも先に後続ページの中間データの生成が完了した場合に、前記先行ページの中間データの生成およびラスタライズの完了まで、前記後続ページの中間データのラスタライズを遅らせ
前記複数の処理手段は、前記PDLデータから中間データをページごとに生成する際に、
前記PDLデータの所定ページについては、当該ページに含まれるオブジェクトの中間データの生成を前記複数の処理手段で並列に行い、
前記所定ページ以外のページについては、当該ページに含まれるオブジェクトの中間データの生成を、ページごとに別々の前記処理手段で並列に行うることを特徴とする。
In view of the above circumstances, the image forming apparatus of the present invention includes a receiving unit that receives PDL data including a plurality of pages, and a plurality of processing units that generate intermediate data of the plurality of pages from the PDL data for each page. And rasterizing means for rasterizing, for each page, the intermediate data for each page generated by the plurality of processing means, wherein the rasterizing means intermediates the subsequent pages before generating the intermediate data for the preceding page. When the generation of data is completed, the rasterization of the intermediate data of the subsequent page is delayed until the generation of the intermediate data of the preceding page and the rasterization are completed ,
The plurality of processing means, when generating the intermediate data for each page from the PDL data,
For a predetermined page of the PDL data, the intermediate data of the objects included in the page are generated in parallel by the plurality of processing means,
Wherein the page other than the predetermined page, the generation of the intermediate data of an object included in the page, and wherein the Rukoto performed in parallel in separate said processing means for each page.

複数の処理手段を有する画像形成装置において、ページ順番の制御をより少ないメモリ量で行うことができる。 In an image forming apparatus having a plurality of processing means, page order control can be performed with a smaller memory amount.

画像形成装置のハードウェア構成図。FIG. 3 is a hardware configuration diagram of the image forming apparatus. 画像形成装置のソフトウェア構成図。FIG. 3 is a software configuration diagram of the image forming apparatus. パイプライン並列処理とページ並列処理の概略図。Schematic diagram of pipeline parallel processing and page parallel processing. 実施例1のパイプライン並列処理とページ並列処理との選択制御フロー。3 is a selection control flow of pipeline parallel processing and page parallel processing of the first embodiment. パイプラインPDLスレッドの処理フロー。Processing flow of the pipeline PDL thread. パイプラインDLスレッドの処理フロー。Processing flow of the pipeline DL thread. ページDLスレッドの処理フロー。Processing flow of page DL thread. 実施例2のパイプライン並列処理とページ並列処理の切り替え制御フロー。9 is a control flow for switching between pipeline parallel processing and page parallel processing according to the second embodiment.

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

<画像形成装置のハードウェアブロック図>
図1は本実施例の画像形成装置(印刷装置)の構成を説明するハードウェアブロック図である。図1のコントローラユニット100は、CPU101、RAM102、不図示のROM、HDD103、ネットワークI/F(インターフェース)104、RIP(Raster Image Processor)106、デバイスI/F107を有する。このコントローラユニット100は、ネットワークI/F104を介して、LANなどのネットワーク105越しに接続される外部装置(例えばホストPC)から、ページ記述言語(PDL)で記述された印刷データ(PDLデータ)を受信する。また、コントローラ100は、デバイスI/F107を介してプリンタエンジン108と接続して、画像信号やデバイス情報の入出力を制御する。
<Hardware block diagram of image forming apparatus>
FIG. 1 is a hardware block diagram for explaining the configuration of the image forming apparatus (printing apparatus) of this embodiment. The controller unit 100 in FIG. 1 includes a CPU 101, a RAM 102, a ROM (not shown), a HDD 103, a network I/F (interface) 104, a RIP (Raster Image Processor) 106, and a device I/F 107. The controller unit 100 receives print data (PDL data) described in page description language (PDL) from an external device (for example, a host PC) connected via a network I/F 104 and a network 105 such as a LAN. To receive. Further, the controller 100 is connected to the printer engine 108 via the device I/F 107 and controls the input/output of image signals and device information.

CPU101は、HDD103に記憶されたプログラムをRAM102に読み出し、実行する。さらにCPU101は、そのプログラムに従って、システムバス109に接続される各デバイスを統括的に制御する。CPU101は、プロセッサコアを複数有するマルチコアCPUであって、PDLデータから中間データ(ディスプレイリスト:DL)の生成(変換)をマルチスレッドによって並列実行する。PDLデータからディルプレイリストに変換するのは、様々な種別のPDLデータがあったとしても、共通フォーマットのDLに変換することで後の処理を共通化するためである。以下で述べるマルチスレッドとは、CPU101の有する複数のコアのそれぞれが別々のスレッドとして機能することである。すなわち、別々のスレッドが処理を実行するということ、別々のコアが異なる処理を実行することに等しい。なお、ハイパースレッディングのようなCPU内のレジスタやパイプラインの空き時間を有効利用して1つのプロセッサコアをあたかも複数のプロセッサコアであるかのように見せる技術を利用できるものを用いても良い。 The CPU 101 reads the program stored in the HDD 103 into the RAM 102 and executes it. Further, the CPU 101 comprehensively controls each device connected to the system bus 109 according to the program. The CPU 101 is a multi-core CPU having a plurality of processor cores, and multi-threads execute parallel generation of intermediate data (display list: DL) from PDL data. The PDL data is converted into the dill playlist so that even if there are various types of PDL data, the subsequent processing is made common by converting into the common format DL. The multi-thread described below means that each of the plurality of cores included in the CPU 101 functions as a separate thread. That is, it is equivalent to that different threads perform processing, and that different cores perform different processing. It should be noted that it is possible to use a technique such as hyper-threading that can effectively utilize the free time of the registers and pipelines in the CPU to make one processor core look like a plurality of processor cores.

RAM102は、CPU101のメインメモリ、ワークメモリ、DLの格納用メモリとして機能する。DLの格納用メモリは、RAM102に予め確保されたメモリ領域であり、複数ページ分のDLを格納しておくための所定データサイズのメモリ領域である。なお、1ページ分のDLのデータサイズの最大値は予め決められている。また、後述するように、あるページのDLの生成中にそのページの生成済みのDLのデータサイズがその最大値を越える場合、DLスレッド(DLスレッドの生成部)は、DLの生成を一旦止め、その生成済みのDLからRIP106を用いてラスターイメージを生成する。そしてDLスレッドは、その生成済みのDLを削除することで格納用メモリの空きを作り、生成されたラスターイメージを圧縮し、圧縮されたラスターイメージをDLとして、空きが作られた格納用メモリに格納する。そしてDLスレッドは、そのページのDLの生成を再開する。このような一連の処理はフォールバック処理と呼ばれ、DLスレッドは、フォールバック処理によって、1ページ分のDLのデータサイズが予め決められた最大値を超えないようにしている。また、このRAM102の一部は、後述のバッファ204としても機能する。HDD103は大容量データを一時的あるいは長期的に保持する目的で使用される。 The RAM 102 functions as a main memory of the CPU 101, a work memory, and a DL storage memory. The DL storage memory is a memory area secured in advance in the RAM 102 and has a predetermined data size for storing DLs for a plurality of pages. Note that the maximum value of the DL data size for one page is predetermined. Further, as will be described later, if the data size of the generated DL of a page exceeds the maximum value during generation of the DL of a page, the DL thread (the DL thread generation unit) temporarily stops the generation of the DL. A raster image is generated from the generated DL using the RIP 106. Then, the DL thread creates an empty storage memory by deleting the created DL, compresses the created raster image, and uses the compressed raster image as a DL in the created storage memory. Store. Then, the DL thread resumes the generation of the DL for the page. Such a series of processes is called fallback process, and the DL thread prevents the data size of DL for one page from exceeding a predetermined maximum value by the fallback process. A part of the RAM 102 also functions as a buffer 204 described later. The HDD 103 is used for the purpose of holding a large amount of data temporarily or for a long time.

RIP106は、CPU101によって生成されたDLからラスターイメージの生成(ビットマップへのラスタライズ)を行う。RIP106は後述するようにCPU101によってページ順に送信されたDLをページごとに順次受信して、そのDLをページ順にラスタライズする。このRIP106によるラスタライズは、CPU101によるDLの生成と、ページ単位で並列実行される。すなわち、CPU101によって後のページ(後続ページ)のDLの生成と並列して、RIP106による前ページ(先行ページ)のラスタライズが行われる。ラスタライズによって生成されたラスターイメージは、プリンタエンジン108に送られる。 The RIP 106 generates a raster image from the DL generated by the CPU 101 (rasterization into a bitmap). As will be described later, the RIP 106 sequentially receives the DL transmitted by the CPU 101 in page order, and rasterizes the DL in page order. The rasterization by the RIP 106 is executed in parallel in page units with the DL generation by the CPU 101. That is, the CPU 101 performs rasterization of the previous page (preceding page) by the RIP 106 in parallel with the DL generation of the subsequent page (subsequent page). The raster image generated by rasterizing is sent to the printer engine 108.

プリンタエンジン108は、不図示のエンジンI/Fを有し、このエンジンI/Fはコントローラユニット100から送られたラスターイメージを順次、画像信号に変換する。そして、プリンタエンジン108は、この画像信号に基づいて、画像を紙などのシート上に印刷する印刷ユニットである。プリンタエンジン108の印刷方式は、電子写真方式、インクジェット方式、などでよく、方式を限定しない。 The printer engine 108 has an engine I/F (not shown), and this engine I/F sequentially converts the raster image sent from the controller unit 100 into an image signal. The printer engine 108 is a printing unit that prints an image on a sheet such as paper based on the image signal. The printing method of the printer engine 108 may be an electrophotographic method, an inkjet method, or the like, and the method is not limited.

<画像形成装置のソフトウェアモジュール図>
図2は本実施例における画像形成装置のソフトウェア構成図である。図2に記載した各ソフトウェアモジュールは、HDD103に記憶された前述のプログラムが、RAM102にロードされてCPU101により実行されることで実現される。
<Software module diagram of image forming apparatus>
FIG. 2 is a software configuration diagram of the image forming apparatus in this embodiment. Each software module illustrated in FIG. 2 is realized by loading the above-described program stored in the HDD 103 into the RAM 102 and executing the program by the CPU 101.

並列制御部200は、PDLデータの画像形成処理を所定単位に分割し、各単位の画像形成処理を複数のスレッドへ割り当てる。所定単位の処理には、1ページ分のDLをPDLデータから生成する処理や、1オブジェクト分のPDLデータの解釈処理や、1オブジェクト分のPDLデータの解釈結果からDLを生成する処理などがある。本実施例の並列制御部200は、バッファ204を初期化して、スレッド1に、1オブジェクト分のPDLデータの解釈をさせてその解釈結果をバッファ204に記憶させる処理を割り当てても良い。すなわち、スレッド1は、解釈部201として機能するパイプラインPDLスレッドである。また並列制御部200は、スレッド2に、バッファ204に記憶されている1オブジェクト分のPDLデータの解釈結果からDLを生成する処理を割り当てても良い。すなわちスレッド2は、生成部203として機能するパイプラインDLスレッドである。また並列制御部200は、スレッド3に、或るページに含まれている全オブジェクトのPDLデータの解釈処理とその解釈結果からのDLの生成処理を割り当てても良い。すなわち、スレッド3は、解釈部211および生成部213として機能するページDLスレッドである。また並列制御部200は、スレッド4に、別のページに含まれている全オブジェクトのPDLデータの解釈処理とその解釈結果からのDLの生成処理を割り当てても良い。すなわち、スレッド4も解釈部211および生成部213として機能するページDLスレッドである。違うのはDL生成の処理対象のページが異なることである。 The parallel control unit 200 divides the image forming process of PDL data into predetermined units, and allocates the image forming process of each unit to a plurality of threads. The processing of a predetermined unit includes processing for generating DL for one page from PDL data, interpretation processing for PDL data for one object, and processing for generating DL from the interpretation result of PDL data for one object. .. The parallel control unit 200 of this embodiment may initialize the buffer 204 and assign a process of causing the thread 1 to interpret PDL data for one object and storing the interpretation result in the buffer 204. That is, the thread 1 is a pipeline PDL thread that functions as the interpretation unit 201. Further, the parallel control unit 200 may allocate to the thread 2 a process for generating a DL from the interpretation result of the PDL data for one object stored in the buffer 204. That is, the thread 2 is a pipeline DL thread that functions as the generation unit 203. Further, the parallel control unit 200 may allocate the thread 3 to the PDL data interpretation processing of all objects included in a page and the DL generation processing from the interpretation result. That is, the thread 3 is a page DL thread that functions as the interpretation unit 211 and the generation unit 213. In addition, the parallel control unit 200 may allocate the thread 4 to the PDL data interpretation processing of all objects included in another page and the DL generation processing from the interpretation result. That is, the thread 4 is also a page DL thread that functions as the interpretation unit 211 and the generation unit 213. The difference is that the pages to be processed for DL generation are different.

なお、ここで言うところのオブジェクトとは、例えば複数文字からなるテキストオブジェクトや、線分の両端の座標を指定することで決定される線分オブジェクトや、ビットマップオブジェクトなどである。 The object referred to here is, for example, a text object consisting of a plurality of characters, a line segment object determined by designating the coordinates of both ends of the line segment, or a bitmap object.

本実施例では、オブジェクトのPDLデータを解釈する処理は解釈部201が行う。この解釈部201は、PDLデータを1オブジェクトずつ解釈して、解釈結果をワークメモリに書き出す。このワークメモリには、PDLデータに含まれる1オブジェクト分の解釈結果が一時的に記憶され、後に続いて解釈される1オブジェクト分のPDLデータの解釈結果によって上書きされる。 In this embodiment, the interpreting unit 201 performs the process of interpreting the PDL data of the object. The interpretation unit 201 interprets the PDL data object by object and writes the interpretation result in the work memory. This work memory temporarily stores the interpretation result of one object included in the PDL data, and is overwritten by the interpretation result of the PDL data of one object that is subsequently interpreted.

一方で解釈部211は、解釈部201のようにPDLデータを解釈してその解釈結果をワークメモリに書き出すが、解釈部211は続いてその解釈結果を、バッファ204に転送する。 On the other hand, the interpretation unit 211 interprets the PDL data and writes the interpretation result in the work memory like the interpretation unit 201. The interpretation unit 211 subsequently transfers the interpretation result to the buffer 204.

本実施例では、オブジェクトのDLを解釈結果から生成する処理は、生成部203が行う。生成部203は、PDLデータの解釈結果からDLを生成する。生成部203は、解釈結果を解釈部201のワークメモリから取得する。一方、生成部213は、生成部203とは異なり、ワークメモリからではなく、バッファ204から取得する。 In the present embodiment, the generation unit 203 performs the process of generating the DL of the object from the interpretation result. The generation unit 203 generates DL from the interpretation result of PDL data. The generation unit 203 acquires the interpretation result from the work memory of the interpretation unit 201. On the other hand, the generation unit 213, unlike the generation unit 203, acquires from the buffer 204 instead of the work memory.

なお、本実施例では、CPU101がプログラムを実行することで上述の通りソフトウェアモジュールが実現されるが、これに限らず、上述のソフトウェアモジュールと同等の機能をハードウェアによって実現しても良い。また、図2では、4つのスレッド1〜4を示しているが、1つのスレッドが、別のスレッドの動作を行っても良い。例えばスレッド1が、後述のパイプライン並列処理の際には、パイプラインDLスレッドとなるが、ページ並列処理の際には、スレッド3のようなページDLスレッドとなっても良い。これはスレッド2とスレッド4についても同様である。 In this embodiment, the software module is realized by the CPU 101 executing the program as described above, but the present invention is not limited to this, and the function equivalent to the software module described above may be realized by hardware. Further, in FIG. 2, four threads 1 to 4 are shown, but one thread may operate another thread. For example, the thread 1 becomes a pipeline DL thread in the pipeline parallel processing described later, but may be a page DL thread like the thread 3 in the page parallel processing. This also applies to threads 2 and 4.

本実施例では、2種類の並列処理を切り替えることにより、複数ページだけでなく、1ページのみの印刷データにおいても並列処理による高速化を実現する。 In the present exemplary embodiment, by switching between two types of parallel processing, not only a plurality of pages but also print data of only one page can be speeded up by parallel processing.

一方の並列処理は、解釈部201および生成部203それぞれの処理をパイプライン制御部202により、別々のスレッドによって実行するパイプライン処理である。すなわち、1ページ目については、1オブジェクト分のDLを生成するにあたり、そのオブジェクトのPDLデータを解釈する処理のスレッドと、その解釈結果からDLを生成する処理のスレッドとがパイプライン処理によって並列実行される。すなわち、生成部203として機能するスレッドが或るオブジェクトのPDLデータの解釈結果からDLを生成している間に、解釈部201として機能する別のスレッドが次のオブジェクトのPDLデータを解釈する。そして生成部203として機能するそのスレッドは、その別スレッドによる解釈結果からDLを生成する。以上の一連の処理の流れが1つのページについて繰り返される。これがパイプライン並列である。 One parallel process is a pipeline process in which the pipeline control unit 202 executes the processes of the interpretation unit 201 and the generation unit 203 by separate threads. That is, for the first page, when a DL for one object is generated, a thread for processing the PDL data of the object and a thread for generating the DL from the interpretation result are executed in parallel by pipeline processing. To be done. That is, while the thread that functions as the generation unit 203 generates a DL from the interpretation result of the PDL data of an object, another thread that functions as the interpretation unit 201 interprets the PDL data of the next object. Then, the thread that functions as the generation unit 203 generates a DL from the interpretation result by the other thread. The above-described series of processing flow is repeated for one page. This is pipeline parallel.

他方の並列処理は、2ページ目以降の各ページについては、解釈部211および生成部213として機能させるスレッドを1ページにつき1つに限定する。そして、複数のページのそれぞれのDLを生成する複数スレッドが、ページ単位で並列実行される。すなわち、或るスレッドは、或るページのPDLデータからDLを生成し、別スレッドは別ページのPDLデータからDLを生成する。これがページ並列である。 The other parallel processing limits the number of threads that function as the interpreting unit 211 and the generating unit 213 for each page after the second page to one per page. Then, a plurality of threads that generate DLs of a plurality of pages are executed in parallel in page units. That is, a certain thread generates a DL from PDL data of a certain page, and another thread generates a DL from PDL data of another page. This is page parallel.

<ページ並列とパイプライン並列切り替えの概要>
マルチコアCPUを用いたページ並列では、複数ページのPDLデータでは、別々のスレッド(プロセッサコア)が並行して別々のページのDLを生成するので、マルチスレッドでの並列処理による高速化の効果を得ることができる。一方、単ページのPDLデータに対してマルチコアCPUが行うページ並列では、或るスレッド(プロセッサコア)が1ページ目のPDLデータからDLの生成を行う。しかし、残りのスレッド(プロセッサコア)はPDLデータの解釈もDLの生成もしないアイドル状態となってしまい、単ページのPDLデータからのDLの生成については、マルチスレッド(マルチコア)による並列効果は得られない。
<Overview of page parallel and pipeline parallel switching>
In page parallel processing using a multi-core CPU, in multiple pages of PDL data, different threads (processor cores) generate DLs of different pages in parallel, so that multi-thread parallel processing achieves a speed-up effect. be able to. On the other hand, in page parallel processing performed by the multi-core CPU for single-page PDL data, a thread (processor core) generates a DL from the first-page PDL data. However, the remaining threads (processor cores) enter an idle state in which neither PDL data is interpreted nor DL is generated, and the parallel effect of multithreads (multicores) is obtained for DL generation from single-page PDL data. I can't.

そこで本実施例では、PDLデータの1ページ目についてはパイプライン並列処理でDLを生成し、2ページ目以降のDLの生成はページ並列処理で行う。これにより、複数ページのPDLデータだけでなく、単ページのPDLデータについてもマルチスレッドによる並列効果を得る。図3が、この処理の概念図である。 Therefore, in this embodiment, the DL is generated by pipeline parallel processing for the first page of PDL data, and the DL of the second and subsequent pages is generated by page parallel processing. As a result, not only the PDL data of a plurality of pages but also the PDL data of a single page has a parallel effect by the multithread. FIG. 3 is a conceptual diagram of this processing.

1ページ目の処理では、パイプライン並列処理が行われる。例えば1ページ目のPDLデータにオブジェクト1、2が含まれている場合に、スレッド1(プロセッサコア1)は、オブジェクト1のPDLデータを解釈し、続いてスレッド2(プロセッサコア2)は、その解釈結果からオブジェクト1のDLを生成する。そしてその生成の間、スレッド1は、オブジェクト2のPDLデータを解釈し、オブジェクト1のDLを生成し終えたスレッド2は、その解釈結果からオブジェクト2のDLを生成する。このように、各スレッドの処理が並列実行できるので、1ページ目のDLの生成は高速化される。 Pipeline parallel processing is performed in the processing of the first page. For example, when the objects 1 and 2 are included in the PDL data of the first page, the thread 1 (processor core 1) interprets the PDL data of the object 1, and then the thread 2 (processor core 2) The DL of the object 1 is generated from the interpretation result. Then, during the generation, the thread 1 interprets the PDL data of the object 2, and the thread 2 that has finished generating the DL of the object 1 generates the DL of the object 2 from the interpretation result. As described above, since the processing of each thread can be executed in parallel, the generation of the DL of the first page is speeded up.

また続く2ページ目、3ページ目の処理では、ページ並列処理が行われる。例えば2ページ目のPDLデータにオブジェクト3、4が含まれている場合に、スレッド1は、オブジェクト3のPDLデータの解釈とDLの生成とを続けて行う。オブジェクト4についても同様である。これにより、2ページ目のDLが生成される。一方、例えば3ページ目のPDLデータにオブジェクト5、6が含まれている場合に、スレッド2は、オブジェクト5のPDLデータの解釈とDLの生成とを続けて行う。オブジェクト6についても同様である。これにより、3ページ目のDLが生成される。このように、各スレッドの処理は、ページ単位で並列実行できるので、2ページ目、3ページ目のDLの生成は高速化される。なお、2ページ目、3ページ目に対しても1ページ目と同様にパイプライン並列処理を適用しても良いが、本実施例においてそうしないのは、次の理由による。すなわち、マルチスレッドによるパイプライン並列処理はスレッド間の通信が必要なので、通信コストがページ並列処理よりもかかるためである。 Further, in the subsequent processing for the second and third pages, page parallel processing is performed. For example, when the objects 3 and 4 are included in the PDL data of the second page, the thread 1 continuously interprets the PDL data of the object 3 and generates the DL. The same applies to the object 4. As a result, the DL of the second page is generated. On the other hand, for example, when the objects 5 and 6 are included in the PDL data of the third page, the thread 2 continuously interprets the PDL data of the object 5 and generates the DL. The same applies to the object 6. As a result, the DL for the third page is generated. In this way, the processing of each thread can be executed in parallel on a page-by-page basis, so that the DLs of the second and third pages are generated at high speed. The pipeline parallel processing may be applied to the second page and the third page as in the first page, but the reason for not doing so in the present embodiment is as follows. In other words, pipeline parallel processing by multithreads requires communication between threads, so the communication cost is higher than page parallel processing.

<並列処理切り替え制御のフロー>
図4のフローチャートを用いて、ページ並列処理とパイプライン並列処理とを切り替える制御フローを説明する。この制御フローは、スレッドAにおいて並列制御部200が、ネットワークI/F104を介して外部装置からPDLデータを受信したことに応じて、実行する。
<Flow of parallel processing switching control>
A control flow for switching between page parallel processing and pipeline parallel processing will be described with reference to the flowchart of FIG. This control flow is executed in the thread A in response to the parallel control unit 200 receiving PDL data from an external device via the network I/F 104.

S401において、並列制御部200は、初期化処理を行う。具体的には、並列制御部200は、DLの生成対象ページ番号およびDLの送信対象ページ番号を管理し、それらを共に1に設定する。また並列制御部200は、マルチコアCPUのプロセッサコアの数分、複数のスレッドを起動する。また並列制御部200はバッファ204を確保する。例えば2コアCPUであれば2つのスレッドが起動される。以降の処理では、並列制御部200は、起動した複数スレッドのそれぞれが別々のコアによって実行されるように、アフィニティマスクを設定するものとする。 In S401, the parallel control unit 200 performs initialization processing. Specifically, the parallel control unit 200 manages the DL generation target page number and the DL transmission target page number, and sets both of them to 1. Further, the parallel control unit 200 activates a plurality of threads for the number of processor cores of the multi-core CPU. Further, the parallel controller 200 secures the buffer 204. For example, with a two-core CPU, two threads are activated. In the subsequent processing, the parallel control unit 200 sets the affinity mask so that each of the activated multiple threads is executed by a different core.

S403において、並列制御部200は、生成対象ページ番号が1であるか、すなわち、DL生成の対象が1ページ目であるか否かを判定する。生成対象ページ番号が1であれば、1ページ目に対してパイプライン並列処理でDLの生成と送信を行うために、S404以降の処理が行われる。パイプライン並列処理については図3を用いて説明したとおりである。また生成対象ページ番号が1でなければ、2ページ目以降に対してページ並列処理でDLの生成と送信を行うために、S410以降の処理が行われる。ここでは1ページ目が、2ページ目以降とは区別して取り扱う所定ページであり、2ページ目以降が所定ページ以外のページであり、並列制御部200はDL生成対象のページが所定ページであるか否かによって並列処理方法を制御する生成制御手段である。 In S403, the parallel control unit 200 determines whether the generation target page number is 1, that is, whether the DL generation target is the first page. If the generation target page number is 1, the processing from S404 onward is performed in order to generate and transmit the DL by pipeline parallel processing for the first page. The pipeline parallel processing is as described with reference to FIG. If the page number to be generated is not 1, the processing from S410 is performed in order to generate and transmit the DL in the page parallel processing for the second and subsequent pages. Here, the first page is a predetermined page handled separately from the second and subsequent pages, the second and subsequent pages are pages other than the predetermined page, and the parallel control unit 200 determines whether the DL generation target page is the predetermined page. It is a generation control means for controlling the parallel processing method depending on whether or not it is.

パイプライン並列処理のためのS404以降の処理について説明する。 The processing after S404 for pipeline parallel processing will be described.

S404において、並列制御部200は、起動された複数のスレッドに対して、互いに連携して生成対象ページ番号のPDLデータのパイプライン並列処理を行う指示を出す。並列制御部200は、例えばスレッド1に対して、パイプライン並列処理のうちのオブジェクトのPDLデータの解釈処理を行うように指示する。このときスレッド1は解釈部201として機能する。一方スレッド2に対しては、並列制御部200は、パイプライン並列処理のうちのオブジェクトのPDLデータの解釈結果からオブジェクトのDLの生成処理を行うように指示する。このときスレッド2は生成部203として機能する。なお、並列制御部200は、後述のように、生成部203に対して、DLの格納用メモリ上に1ページのDLデータサイズの最大値分のメモリ領域を確保させる。 In step S404, the parallel control unit 200 issues an instruction to the activated threads to perform pipeline parallel processing of the PDL data of the generation target page number in cooperation with each other. The parallel controller 200 instructs, for example, the thread 1 to interpret the PDL data of the object in the pipeline parallel processing. At this time, the thread 1 functions as the interpretation unit 201. On the other hand, the parallel control unit 200 instructs the thread 2 to perform the DL generation processing of the object from the interpretation result of the PDL data of the object in the pipeline parallel processing. At this time, the thread 2 functions as the generation unit 203. Note that the parallel control unit 200 causes the generation unit 203 to secure a memory area for the maximum value of the DL data size of one page in the DL storage memory, as described later.

S405において、並列制御部200は、生成対象ページ番号を1つインクリメントすることで、DL生成の対象ページを2ページ目にする。 In step S405, the parallel control unit 200 increments the generation target page number by 1 to set the DL generation target page to the second page.

S406において、並列制御部200は、1ページ目のDLの生成の完了通知を、パイプライン処理中のスレッドから受信したかを判定し、受信した場合にS407へ処理を進める。この完了通知には、1ページ目のDLの格納先のメモリアドレスが含まれている。またこの完了通知には生成されたDLのページ番号が含まれ、ここでのページ番号は「1ページ目」である。それ以外の場合、1ページ目のDLの生成の完了通知が受信されるまで待機する。なぜ1ページ目に限って待機をするかというと、1ページ目のパイプライン並列処理中に、次ページに対する処理を行わせないようにして、1ページ目の処理効率を上げるためである。 In S406, the parallel control unit 200 determines whether or not the completion notification of the DL generation of the first page has been received from the thread in the pipeline process, and when the notification is received, the process proceeds to S407. This completion notification includes the memory address of the storage destination of the DL of the first page. In addition, this completion notification includes the page number of the generated DL, and the page number here is the “first page”. In other cases, it waits until the completion notification of the DL generation of the first page is received. The reason why the standby is limited to the first page is that the processing for the next page is not performed during the pipeline parallel processing of the first page and the processing efficiency of the first page is improved.

S407において、並列制御部200は、送信対象ページ番号のDL(すなわち1ページ目のDL)をRIP106に送信する。送信されたDLは、RIP106によってラスタライズされる。具体的には、並列制御部200は、完了通知に含まれているメモリアドレスをRIP106に通知し、RIP106は、そのメモリアドレスに格納されているDLを取得してラスタライズを行う。そして並列制御部200は、1ページ目のDLのラスタライズの完了を検知したことに応じて、DLスレッドの生成部203に、DLの格納用メモリ上に確保されたメモリ領域を解放させる。生成されたラスターイメージは、プリンタエンジン108に送られて用紙上に印刷される。 In S407, the parallel control unit 200 transmits the DL of the transmission target page number (that is, the DL of the first page) to the RIP 106. The transmitted DL is rasterized by the RIP 106. Specifically, the parallel control unit 200 notifies the RIP 106 of the memory address included in the completion notification, and the RIP 106 acquires the DL stored in that memory address and performs rasterization. Then, the parallel control unit 200 causes the DL thread generation unit 203 to release the memory area secured in the DL storage memory in response to detecting the completion of the rasterization of the DL of the first page. The generated raster image is sent to the printer engine 108 and printed on paper.

S408において、並列制御部200は、送信対象ページ番号を1つインクリメントすることで、DL送信の対象ページを2ページ目にする。そして処理はS409へ移る。 In step S<b>408, the parallel control unit 200 increments the transmission target page number by 1 to set the DL transmission target page to the second page. Then, the process proceeds to S409.

一方で、S410以降のページ並列処理について説明する。 On the other hand, the page parallel processing after S410 will be described.

S410において、並列制御部200は、処理が割り当てられていないスレッド(空きスレッド)が無くなるまで、S411〜S413を繰返す。 In S410, the parallel control unit 200 repeats S411 to S413 until there is no thread (empty thread) to which the process is not assigned.

S411において、並列制御部200は、PDLデータに含まれる全てのページのDLの生成処理をページ並列で行うように指示したかどうかを判定する。全てのページについてDLの生成処理を指示していれば、S410のループ処理を抜けて、S414に処理は移行する。そうでなければ処理はS412へ移行する。なお、このS411の処理に加えて、並列制御部200は、これまでに生成されたページのDLのうち、RIP106へ未送信(未ラスタライズ)のDLの総サイズを計算し、この総サイズが閾値よりも小さい場合に、S412へ処理を移行させても良い。逆に総サイズが閾値以上である場合には、処理はS414に移行する。このように未送信のDLの総サイズを参照してDLの生成を抑制することで、若いページ番号のページのDL生成が大幅に遅延していて他ページ(その若いページ番号よりも大きなページ番号のページ)のDLが先に生成されてしまう場合でも、DL格納用メモリの不足や、バッファオーバーフローを防げる。なお生成済み且つ未ラスタライズのDLの総サイズではなく、生成済み且つ未ラスタライズのページ数に基づいて、本制御を行っても良い。例えば生成済み且つ未ラスタライズのページ数が閾値より小さければS412へ移行し、そうでなければS414に移行する。または、並列制御部200は、DL格納用メモリの空き容量が、1ページのDLデータサイズの最大値分のメモリ領域を確保できる程度にあるかを判定する。つまり空き容量は予め決められた閾値(最大値)以上なのかが判定される。確保できる程度にあればS412へ処理を移行し、そうでなければS414に処理を移行する。空き容量とは、DL格納用メモリにおいて使用可能な、あるいは、解放されているメモリ領域のデータサイズであり、次のようにして求められる。つまり、空き容量は、DL格納用メモリとして予め確保された所定データサイズから、「生成済み且つ未ラスタライズのDL用にページ単位で確保されているメモリ領域の総サイズ」を引いたサイズである。なお、この「生成済み且つ未ラスタライズのDL用にページ単位で確保されているメモリ領域の総サイズ」の代わりに、「生成済み且つ未ラスタライズのDLの総サイズ」を用いても良い。 In S411, the parallel control unit 200 determines whether or not an instruction to perform DL generation processing of all pages included in the PDL data in page parallel. If the DL generation processing has been instructed for all the pages, the loop processing of S410 is exited and the processing shifts to S414. If not, the process proceeds to S412. In addition to the processing of S411, the parallel control unit 200 calculates the total size of DLs that have not been transmitted (unrasterized) to the RIP 106 among the DLs of the pages that have been generated so far, and this total size is the threshold value. If it is smaller than the above, the processing may be shifted to S412. On the other hand, if the total size is equal to or larger than the threshold, the process proceeds to S414. In this way, by referring to the total size of untransmitted DLs and suppressing the generation of DLs, DL generation of a page with a young page number is significantly delayed and other pages (page numbers larger than the young page number are Even if the DL of the page) is generated first, it is possible to prevent the shortage of the DL storage memory and the buffer overflow. Note that the control may be performed based on the number of generated and unrasterized pages instead of the total size of the generated and unrasterized DL. For example, if the number of generated and unrasterized pages is smaller than the threshold value, the process proceeds to S412, and if not, the process proceeds to S414. Alternatively, the parallel control unit 200 determines whether the free space of the DL storage memory is sufficient to secure the memory area for the maximum value of the DL data size of one page. That is, it is determined whether the free space is equal to or larger than a predetermined threshold value (maximum value). If it can be secured, the process proceeds to S412, and if not, the process proceeds to S414. The free space is the data size of the memory area that can be used or released in the DL storage memory, and is obtained as follows. That is, the free space is a size obtained by subtracting the “total size of the memory area secured in page units for the generated and unrasterized DL” from the predetermined data size secured in advance as the DL storage memory. It should be noted that, instead of the "total size of memory area reserved for page for generated and unrasterized DL", "total size of generated and unrasterized DL" may be used.

S412において、並列制御部200は、生成対象ページ番号のページのDL生成処理を、ページ並列処理で実行するように、空きスレッドに割り当てる。すなわちDL生成処理を割り当てられたスレッドが、そのページに含まれる各オブジェクトのPDLデータの解釈とその解釈結果からのDL生成を行う。このようにすることで、DL生成処理をページ単位で並列で行うので高速にPDLデータに含まれる複数ページのDLを生成することができる。例えばスレッド1が空きスレッドであれば、スレッド1は、解釈部211および生成部213として機能する。スレッド2が空きスレッドであるときも同様である。なお、並列制御部200は、後述のように、生成部213に対して、DLの格納用メモリ上に1ページのDLデータサイズの最大値分のメモリ領域を確保させる。 In step S412, the parallel control unit 200 allocates the DL generation processing of the page of the generation target page number to the empty thread so as to execute the page parallel processing. That is, the thread assigned with the DL generation process interprets the PDL data of each object included in the page and performs the DL generation based on the interpretation result. By doing so, the DL generation process is performed in parallel in page units, so that DLs of a plurality of pages included in PDL data can be generated at high speed. For example, if the thread 1 is an empty thread, the thread 1 functions as the interpretation unit 211 and the generation unit 213. The same applies when the thread 2 is an empty thread. Note that the parallel control unit 200 causes the generation unit 213 to secure a memory area for the maximum value of the DL data size of one page in the DL storage memory, as described later.

S413において、並列制御部200は、生成対象ページ番号を1つインクリメントすることで、DL生成の対象ページを次のページにする。 In S413, the parallel control unit 200 increments the generation target page number by 1 to set the DL generation target page to the next page.

以上がループ処理の内容である。 The above is the contents of the loop processing.

次にS414において並列制御部200は、DL生成の完了通知を、ページ並列処理中のスレッドから受信したかを判定する。受信された場合にS415へ処理が進むことで、生成済み且つ未送信のDLがRIP106へ送信される。それ以外の場合、処理はS409へ進む。なお、この完了通知には生成されたDLの格納先メモリアドレスとページ番号(例えば2ページ目や3ページ目など)とが含まれ、生成済みのDLのページ番号として並列制御部200によって管理される。 Next, in step S414, the parallel control unit 200 determines whether a DL generation completion notification has been received from the page parallel processing thread. When it is received, the process proceeds to S415, and the generated and untransmitted DL is transmitted to the RIP 106. Otherwise, the process proceeds to S409. The completion notification includes the memory address of the generated DL and the page number (for example, the second page or the third page) and is managed by the parallel control unit 200 as the page number of the generated DL. It

S415において、並列制御部200は、送信対象ページ番号のDLの生成が既に完了しているかどうかを、生成されたDLのページ番号と、送信対象ページ番号とに基づいて判定する。すなわちここでは、生成済みのDLが、先頭ページから順番にRIP106に送信(受け渡し)できるものであるかが判定される。この送信対象ページ番号は、RIP106によって今回ラスタライズされるべきページの番号を示していることに他ならない。送信対象ページ番号のDLの生成が既に完了していれば、処理はS416へ進み、そうでなければ処理はS409へ進む。ここでS409へ進む際には、S414で受け付けられた完了通知に含まれるページ番号のDLは、格納先のメモリに保持されたままとなる。しかし、ラスターイメージに変換された状態で保持されるよりは省メモリ効果を得られる。 In S415, the parallel control unit 200 determines whether the generation of the DL of the transmission target page number has already been completed based on the page number of the generated DL and the transmission target page number. That is, here, it is determined whether the generated DL can be transmitted (passed) to the RIP 106 in order from the first page. This transmission target page number indicates the number of the page to be rasterized this time by the RIP 106. If the generation of the DL of the transmission target page number has already been completed, the processing proceeds to S416, and if not, the processing proceeds to S409. Here, when proceeding to S409, the DL of the page number included in the completion notice accepted in S414 remains retained in the memory of the storage destination. However, it is possible to obtain a memory saving effect as compared with the case where the converted raster image is retained.

S416において、並列制御部200は、送信対象ページ番号のDLをRIP106へ送信する。送信されたDLは、RIP106によってラスタライズされる。具体的には、並列制御部200は、これまでに取得した完了通知に含まれている送信対象ページ番号のDLの格納先メモリアドレスをRIP106に通知し、RIP106は、そのメモリアドレスに格納されているDLを取得してラスタライズを行う。そして並列制御部200は、1ページ分のDLのラスタライズの完了を検知したことに応じて、DLスレッドの生成部213に、DLの格納用メモリ上に確保されたそのページのメモリ領域を解放させる。 In S416, the parallel control unit 200 transmits the DL of the transmission target page number to the RIP 106. The transmitted DL is rasterized by the RIP 106. Specifically, the parallel control unit 200 notifies the RIP 106 of the storage destination memory address of the DL of the transmission target page number included in the completion notifications acquired so far, and the RIP 106 is stored in the memory address. The DL is acquired and rasterized. Then, the parallel control unit 200 causes the DL thread generation unit 213 to release the memory area of the page secured in the DL storage memory in response to detecting the completion of the rasterization of the DL for one page. ..

S417において、並列制御部200は、送信対象ページ番号を1つインクリメントすることで、ページ順に生成されたDLをRIP106へ送信できるようにする。 In step S<b>417, the parallel control unit 200 increments the transmission target page number by 1, so that the DL generated in the page order can be transmitted to the RIP 106.

以上のS415〜S417では、並列制御部200は、ラスタライズのためにRIP106へ送られるDLのページ順の制御を行う送信制御に相当する。この順序制御では、後続ページ(例えば3ページ目)のDLの生成が、送信すべき順番のページ(先行ページ:例えば2ページ目)のDLの生成よりも先に完了したとしても、3ページ目のDLのRIP106への送信が、直前ページである2ページ目のDLの送信完了まで待機される。すなわち、後続ページのDLのラスタライズを遅らせる。その結果、適切なページ順でDLがラスタライズされてラスターイメージが生成される。ラスターイメージは生成された順にプリンタエンジン108に送られて正しい順序でページが印刷される。 In S415 to S417 described above, the parallel control unit 200 corresponds to the transmission control for controlling the page order of DLs sent to the RIP 106 for rasterization. In this order control, even if the DL generation of the subsequent page (for example, the third page) is completed before the DL generation of the page in the order to be transmitted (previous page: for example, the second page), the third page is generated. The transmission of the DL to the RIP 106 is waited until the transmission of the DL of the second page, which is the immediately preceding page, is completed. That is, the rasterization of the DL of the subsequent page is delayed. As a result, the DL is rasterized in an appropriate page order to generate a raster image. The raster images are sent to the printer engine 108 in the order in which they were generated, and the pages are printed in the correct order.

S409においては、並列制御部200は、PDLデータに含まれる全てのページのDLの生成とRIP106への送信が完了したかを判定し、完了していれば本フローの処理を終了する。そうでなければ処理はS403へ戻る。 In step S409, the parallel control unit 200 determines whether the generation of the DLs of all the pages included in the PDL data and the transmission to the RIP 106 are completed, and if completed, the process of this flow ends. Otherwise, the process returns to S403.

以上の処理により、並列制御部200による、ページ並列処理とパイプライン並列処理との切り替える制御が実施される。 Through the above processing, the parallel control unit 200 performs control for switching between page parallel processing and pipeline parallel processing.

<パイプラインPDLスレッド>
次に図5のフローチャートを用いて、S404の指示に基づいて空きスレッドに割り当てられたパイプライン並列処理におけるPDLデータの解釈処理について説明する。なお本フローチャートの処理は、空きスレッドがパイプラインPDLスレッドとして機能することが指示されたことをトリガーとして、そのパイプラインPDLスレッドが実行するものである。そのため処理の主体は、パイプラインPDLスレッドの解釈部201である。
<Pipeline PDL thread>
Next, PDL data interpretation processing in pipeline parallel processing assigned to an empty thread based on the instruction of S404 will be described using the flowchart of FIG. Note that the processing of this flowchart is executed by the pipeline PDL thread triggered by the instruction that the empty thread functions as the pipeline PDL thread. Therefore, the main body of processing is the interpreting unit 201 of the pipeline PDL thread.

S1102において、解釈部201は、生成対象ページ番号のページに含まれる未解釈のオブジェクトのPDLデータを、解釈する。この解釈結果は、ワークメモリ領域に書き出される。 In step S1102, the interpretation unit 201 interprets the PDL data of the uninterpreted object included in the page of the generation target page number. The result of this interpretation is written to the work memory area.

S1104において、解釈部201は、S1102で書き出された解釈結果をバッファ204に転送する。この転送は、後述のパイプラインDLスレッドから転送許可通知を受信したことに応じて行われる。転送された解釈結果は、後述の通り、パイプラインDLスレッドによって処理される。 In step S1104, the interpretation unit 201 transfers the interpretation result written in step S1102 to the buffer 204. This transfer is performed in response to the reception of the transfer permission notification from the pipeline DL thread described later. The transferred interpretation result is processed by the pipeline DL thread as described later.

S1105において、解釈部201、生成対象ページ番号のページに含まれる全オブジェクトのPDLデータの解釈が完了したか判定する。完了している場合は、処理はS1106へ移行する。そうでなければ、処理はS1102へ戻り、別の未解釈のオブジェクトのPDLデータの解釈が行われる。 In step S1105, the interpretation unit 201 determines whether the interpretation of the PDL data of all objects included in the page of the page number to be generated is completed. If it is completed, the process proceeds to S1106. If not, the process returns to S1102 to interpret the PDL data of another uninterpreted object.

S1106において、解釈部201は、パイプラインDLスレッドからのDL生成完了通知を待つ。ここで解釈部201は、このDL生成完了通知に含まれるメモリアドレス(後述)を取得する。DL生成完了通知を受信すると、S1107へ進む。 In step S1106, the interpretation unit 201 waits for a DL generation completion notification from the pipeline DL thread. Here, the interpretation unit 201 acquires a memory address (described later) included in the DL generation completion notification. Upon receiving the DL generation completion notification, the process advances to step S1107.

S1107において、解釈部201は、パイプラインPDLスレッドともパイプラインDLスレッドとも別のスレッドで実現されている並列制御部200に、取得されたメモリアドレスを含むDL生成完了通知を送信する。また、このDL生成完了通知には、生成されたDLのページ番号も含まれており、S406で受信される。 In step S1107, the interpretation unit 201 transmits a DL generation completion notification including the acquired memory address to the parallel control unit 200 implemented by a thread other than the pipeline PDL thread and the pipeline DL thread. The DL generation completion notification also includes the page number of the generated DL, which is received in S406.

以上の処理が、パイプラインPDLスレッドによる処理である。 The above processing is processing by the pipeline PDL thread.

<パイプラインDLスレッド>
次に図6のフローチャートを用いて、S404の指示に基づいて空きスレッドに割り当てられたパイプライン並列処理におけるDLデータの生成処理について説明する。なお本フローチャートの処理は、空きスレッドがパイプラインDLスレッドとして機能することが指示されたことをトリガーとして、そのパイプラインDLスレッドが実行するものである。そのため処理の主体は、パイプラインDLスレッドの生成部203である。
<Pipeline DL thread>
Next, the DL data generation processing in the pipeline parallel processing assigned to the empty thread based on the instruction of S404 will be described using the flowchart of FIG. Note that the processing of this flowchart is executed by the pipeline DL thread triggered by the instruction that the empty thread functions as the pipeline DL thread. Therefore, the subject of the processing is the pipeline DL thread generation unit 203.

S1201において、生成部203は、バッファ204からオブジェクトのPDLデータの解釈結果を取得する。 In step S1201, the generation unit 203 acquires the PDL data interpretation result of the object from the buffer 204.

S1202において、生成部203は、S1201で取得された解釈結果からオブジェクトのDLを生成する。この生成されたDLはDLの格納用メモリに記憶されている。またこのとき生成部203は、パイプラインPDLスレッドに転送許可通知を送信する。これにより、バッファ内の解釈結果が処理済みとなってから、次の解釈結果がバッファに上書きされるように制御される。なお、生成部203は、1ページ分のDLの生成を開始する際に、DLの格納用メモリに1ページのDLデータサイズの最大値分のメモリ領域を確保し、そのメモリ領域に生成されたDLを順次記憶していく。また、前述したように、生成部203は、DL生成中において、生成済みのDLのデータサイズが1ページ分のDLデータサイズの最大値を超えるか判定し、越えると判定した場合に、フォールバック処理を行う。 In S1202, the generation unit 203 generates the DL of the object from the interpretation result acquired in S1201. The generated DL is stored in the DL storage memory. At this time, the generation unit 203 also sends a transfer permission notification to the pipeline PDL thread. Thus, after the interpretation result in the buffer has been processed, the next interpretation result is controlled to be overwritten in the buffer. Note that the generation unit 203 secures a memory area for the maximum value of the DL data size of one page in the DL storage memory when starting generation of the DL for one page, and is generated in the memory area. DLs are sequentially stored. In addition, as described above, the generation unit 203 determines whether the data size of the generated DL exceeds the maximum value of the DL data size for one page during DL generation, and if it is determined that the data size of the generated DL exceeds the maximum value, the fallback is performed. Perform processing.

S1203において、生成部203は、生成対象ページ番号のページに含まれる全オブジェクトのDLの生成が完了したか判定する。完了している場合は、処理はS1204へ移行する。そうでなければ処理はS1201へ戻り、バッファに記憶されている解釈結果を処理する。 In step S1203, the generation unit 203 determines whether DL generation of all objects included in the page of the generation target page number is completed. If it is completed, the process proceeds to S1204. Otherwise, the process returns to S1201 to process the interpretation result stored in the buffer.

S1204において、生成部203は、パイプラインPDLスレッドにDL生成完了通知を送信する。このDL生成完了通知は、S1106で受信される。このDL生成完了通知には、生成された1ページ分のDLの格納されているメモリアドレスも含まれている。 In step S1204, the generation unit 203 transmits a DL generation completion notification to the pipeline PDL thread. This DL generation completion notification is received in S1106. The DL generation completion notification also includes the memory address in which the generated DL for one page is stored.

以上の処理が、パイプラインDLスレッドによる処理である。 The above processing is processing by the pipeline DL thread.

<ページ並列DL生成のフロー>
次に図7のフローチャートを用いて、S412の指示に基づいて空きスレッドに割り当てられたページ並列処理におけるDLデータの生成処理について説明する。なお本フローチャートの処理は、空きスレッドがページDLスレッドとして機能することが指示されたことをトリガーとして、そのページDLスレッドが実行するものである。そのため処理の主体は、ページDLスレッドの解釈部211および生成部213である。
<Flow of page parallel DL generation>
Next, the DL data generation processing in the page parallel processing assigned to the empty thread based on the instruction of S412 will be described using the flowchart of FIG. Note that the processing of this flowchart is executed by the page DL thread triggered by the instruction that the empty thread functions as the page DL thread. Therefore, the subject of processing is the interpretation unit 211 and the generation unit 213 of the page DL thread.

S1301において、解釈部211は、生成対象ページ番号のページに含まれるオブジェクトのPDLデータを解釈し、その解釈結果をワークメモリに書き出す。 In S1301, the interpretation unit 211 interprets the PDL data of the object included in the page of the generation target page number and writes the interpretation result in the work memory.

S1302において、生成部213は、ワークメモリに書き出された解釈結果を読み出してオブジェクトのDLを生成する。この生成されたDLはDLの格納用メモリに記憶されている。なお、生成部213は、1ページ分のDLの生成を開始する際に、DLの格納用メモリに1ページのDLデータサイズの最大値分のメモリ領域を確保し、そのメモリ領域に生成されたDLを順次記憶していく。また、前述したように、生成部213は、DL生成中において、生成済みのDLのデータサイズが1ページ分のDLデータサイズの最大値を超えるか判定し、越えると判定した場合に、フォールバック処理を行う。 In S1302, the generation unit 213 reads the interpretation result written in the work memory and generates the DL of the object. The generated DL is stored in the DL storage memory. When the generation unit 213 starts generating DL for one page, it secures a memory area for the maximum value of DL data size of one page in the DL storage memory, and the DL is generated in the memory area. DLs are sequentially stored. Further, as described above, the generation unit 213 determines whether the data size of the generated DL exceeds the maximum value of the DL data size for one page during the DL generation, and if it determines that the data size of the generated DL exceeds the maximum value, the fallback is performed. Perform processing.

S1303において、生成部213は、生成対象ページ番号のページに含まれる全オブジェクトのDLの生成が完了したか判定する。完了している場合は、処理はS1304へ移行し、そうでない場合はS1301へ戻り次のオブジェクトのPDLデータの解釈が行われる。 In step S1303, the generation unit 213 determines whether DL generation of all objects included in the page of the generation target page number is completed. If it has been completed, the process proceeds to S1304, and if not, the process returns to S1301 and the PDL data of the next object is interpreted.

S1304において、生成部213は、DL生成完了通知を、並列制御部200に送信する。このDL生成完了通知には、生成された1ページ分のDLの格納先であるメモリアドレスと、そのDLのページ番号とが含まれる。 In step S1304, the generation unit 213 transmits a DL generation completion notification to the parallel control unit 200. This DL generation completion notification includes the memory address where the generated DL for one page is stored and the page number of that DL.

以上のページDLスレッドは、複数のスレッドによってページごとに行われるので、DL生成を効率良く行うことができる。 Since the page DL thread described above is performed for each page by a plurality of threads, DL generation can be efficiently performed.

以上、パイプライン並列とページ並列とを切り替えることで、マルチコアCPUによる処理を単ページのPDLデータであっても複数ページのPDLデータであっても効率良く並列化することができる。 As described above, by switching between pipeline parallel and page parallel, the processing by the multi-core CPU can be efficiently parallelized regardless of whether it is single-page PDL data or multiple-page PDL data.

なお以上の処理は、パイプライン並列であるが、要は、1ページ目に対しても並列処理を行うことに意味がある。例えば、1ページ目については、PDLデータに含まれる1番目のオブジェクトをスレッド1がDLに変換し、2番目のオブジェクトをスレッド2がDLに変換するようにしても良い。しかしこのようなオブジェクト並列の場合、オブジェクトのDLの生成完了のタイミングがオブジェクトごとに違うので、生成されたオブジェクトのDLの保存順序を制御しなければならない。 Although the above processing is pipeline parallel processing, the point is that parallel processing is also performed for the first page. For example, for the first page, thread 1 may convert the first object included in the PDL data into DL, and thread 2 may convert the second object into DL. However, in the case of such object parallelization, the timing of completion of generation of the DL of the object differs for each object, and therefore the order of saving the DL of the generated objects must be controlled.

それに比べてパイプライン並列では、複数のスレッドが1つのオブジェクトに対してパイプライン処理を行うので、オブジェクトのDLの保存順序を意識しなくても良いというメリットがある。 On the other hand, in pipeline parallel processing, a plurality of threads perform pipeline processing on one object, so that there is an advantage that it is not necessary to be aware of the DL storage order of objects.

(実施例2)
実施例1では、外部装置から受信されるPDLデータのページ数によらずに、マルチコア(マルチスレッド)による並列実行の効果が得られるように、1ページ目についてはパイプライン並列処理を実行し、2ページ目以降についてはページ並列処理を実行した。
(Example 2)
In the first embodiment, pipeline parallel processing is executed for the first page so that the effect of parallel execution by multi-core (multi-thread) can be obtained regardless of the number of pages of PDL data received from the external device. Page parallel processing was executed for the second and subsequent pages.

しかし、複数ページであれば1ページ目からページ並列処理を行った方が並列効果が高い場合がある。特に偶数ページ数のPDLデータではより効果が高い。 However, in the case of a plurality of pages, the parallel effect may be higher when the page parallel processing is performed from the first page. In particular, the effect is higher with PDL data having an even number of pages.

例えば2ページのPDLデータであれば、1ページ目と2ページ目とでページ並列でDLを生成した方が、マルチスレッド(マルチコア)による並列効果が高い。 For example, in the case of 2-page PDL data, the parallel effect of multi-threads (multi-core) is higher when the DL is generated in page parallel between the first and second pages.

そこで本実施例では、PDLデータのページ数に応じて、パイプライン並列かページ並列の何れで処理するかを決定する構成について図8を用いて説明する。なお、以下の実施例において、実施例1と重複する部分については説明を割愛する。 Therefore, in the present embodiment, a configuration for deciding whether to perform processing in pipeline parallel or page parallel according to the number of pages of PDL data will be described with reference to FIG. It should be noted that in the following embodiments, the description of the same parts as those of the first embodiment will be omitted.

図8は、実施例1の図4のフローチャートの一部が変更されたものである。その部分とはS402の処理が追加されたことと、S403の処理がS403−1に変更されたことである。そこで上記の差分のみを説明する。 FIG. 8 is a modification of the flowchart of FIG. 4 of the first embodiment. That part is that the process of S402 is added and that the process of S403 is changed to S403-1. Therefore, only the above differences will be described.

S402において、並列制御部200は、PDLデータを解釈することで、外部装置から受信されたPDLデータの総ページ数を判断する。この判断方法は以下のようなものが考えられる。 In step S402, the parallel control unit 200 interprets the PDL data to determine the total number of pages of PDL data received from the external device. The following judgment method can be considered.

例えば、並列制御部200は、PDLデータを先頭から末尾まで順次読みながら、改ページコマンドの総数をカウントする。改ページコマンドはページが区切るので、これによりPDLデータの総ページ数が取得できる。 For example, the parallel control unit 200 counts the total number of page break commands while sequentially reading PDL data from the beginning to the end. Since the page break command divides pages, the total number of pages of PDL data can be acquired.

または、並列制御部200は、PDLデータにヘッダ情報があれば、そのヘッダ情報を読みとり、そのヘッダ情報にPDLデータの総ページ数が記載されていれば、その総ページ数を取得する。 Alternatively, if the PDL data has header information, the parallel control unit 200 reads the header information, and if the header information describes the total page number of the PDL data, acquires the total page number.

または、並列制御部200は、PDLデータのPDL種別を判定し、そのPDL種別に基づいて、総ページ数を判断しても良い。例えばPDL種別がJpegやTIFFなどであれば、単ページの画像であるので、ページ並列をせずにパイプライン並列するのが良い。そのため並列制御部200は、PDL種別がJpegやTIFFなどであれば、総ページ数を1と判断する。 Alternatively, the parallel control unit 200 may determine the PDL type of PDL data and determine the total number of pages based on the PDL type. For example, if the PDL type is Jpeg, TIFF, or the like, it is a single-page image, so pipeline parallel is preferable instead of page parallel. Therefore, the parallel control unit 200 determines that the total number of pages is 1 if the PDL type is Jpeg, TIFF, or the like.

そしてS403−1において、並列制御部200は、S402での総ページ数の判断に基づいて、総ページ数が1ページであれば処理をS404へ進め、複数ページであれば処理をS410へ進める。 Then, in S403-1, the parallel control unit 200 advances the process to S404 if the total number of pages is one page and advances the process to S410 if the total number of pages is one page based on the determination of the total number of pages in S402.

以上のように、単ページのPDLデータと見なせれば、パイプライン並列処理を1ページ目に対して行い、複数ページのPDLデータと見なせれば、ページ並列処理を2ページ目と並列して1ページ目に対して行う。これにより、より並列効果を高めることができる。 As described above, if it can be regarded as single-page PDL data, pipeline parallel processing is performed on the first page, and if it can be regarded as multiple-page PDL data, the page parallel processing is performed in parallel with the second page. The first page. Thereby, the parallel effect can be further enhanced.

(その他の実施例)
以上の実施例では、PDLデータの1ページ目(先頭ページ)のみに対してパイプライン並列処理を行っていたが、PDLデータの最終ページに対してもパイプライン並列処理を行っても良い。
(Other embodiments)
In the above embodiment, the pipeline parallel processing is performed only on the first page (first page) of the PDL data, but the pipeline parallel processing may be performed on the last page of the PDL data.

また以上の実施例ではPDLデータからDLを生成する際に、パイプライン並列処理とページ並列処理とを適切に選択するような構成であったが、PDLデータからラスターイメージを生成する際にも同様の考えが適用できる。 Further, in the above embodiment, the pipeline parallel processing and the page parallel processing are appropriately selected when the DL is generated from the PDL data, but the same is true when the raster image is generated from the PDL data. The idea of can be applied.

また、以上の実施例の画像形成装置では、1つのRIP106が、1ページごとに順次、DLをラスタライズしていたが、RIP106に代えて、複数のRIPが採用されても良い。 Further, in the image forming apparatus of the above embodiment, one RIP 106 sequentially rasterizes DL for each page, but a plurality of RIPs may be adopted instead of the RIP 106.

1つの例として、複数のRIPが、生成されたDLから、同一ページにおける異なる領域についてのラスタライズを並列に行う構成でも良い。例えば第1のRIPが、生成されたページのDLを用いて、そのページの第1のバンド領域のラスタライズを行い、第2のRIPが、その第1のRIPによるラスタライズと並行して、そのページの第2バンドのラスタライズをそのDLを用いて行う。このようにすることで、DL生成の待機による遅延を、ページの並列ラスタライズの高速化で挽回することができる。 As one example, a plurality of RIPs may be configured to perform rasterization for different areas on the same page in parallel from the generated DL. For example, the first RIP rasterizes the first band area of the page by using the generated DL of the page, and the second RIP parallelizes the rasterization by the first RIP to the page. The rasterization of the second band is performed using the DL. By doing so, the delay due to the waiting for DL generation can be recovered by the speedup of parallel rasterization of pages.

また、別の例として、複数のRIPが、異なるページのDLのラスタライズを並列で行う構成でも良い。例えば、第1のRIPが、先行ページのDLのラスタライズを行い、第2のRIPが、その第1のRIPによるラスタライズに並行して、後続ページのDLのラスタライズを行う。このような構成においても、先行ページよりも後続ページのDLの生成が先に完了すると、上記実施例と同様に、先に生成された後続ページのDLのラスタライズを遅らせる。しかし、この構成では、先行ページのラスタライズの完了ではなく、先行ページのDLの生成が完了したことに応じて、第1のRIPおよび第2のRIPは、先行ページおよび後続ページのDLのラスタライズを開始する。このようにすることで、DL生成においてページ順を正しくしつつ、並列ラスタライズによるラスタライズの高速化の効果を得ることができる。もしこの並列ラスタライズにおいて、先行ページよりも先に後続ページのラスタライズが完了した場合には、後続ページの1ページ分のラスターイメージを第2のRIPは保持させ、さらに後続のページのラスタライズを待機するように構成する。そして第1のRIPによる先行ページのラスタライズの完了に応じて、第1のRIPは先行ページのラスターイメージをプリンタエンジン108に送信し、続いて、第2のRIPは後続ページのラスターイメージをプリンタエンジン108に送信する。このような構成によって、ページのDLの生成順が逆転したとしても、複数のページのラスターイメージを保持し続けることを抑制しつつ並列ラスタライズによる高速化の効果を得て、正しいページ順で印刷を行うことができる。 Further, as another example, a configuration may be adopted in which a plurality of RIPs perform rasterization of DLs of different pages in parallel. For example, the first RIP rasterizes the DL of the preceding page, and the second RIP rasterizes the DL of the subsequent page in parallel with the rasterization by the first RIP. Even in such a configuration, if the DL generation of the subsequent page is completed earlier than the preceding page, the rasterization of the DL of the subsequent page previously generated is delayed, as in the above embodiment. However, in this configuration, the first RIP and the second RIP perform rasterization of the DL of the preceding page and the subsequent page in response to the completion of the DL generation of the preceding page, not the rasterization of the preceding page. Start. By doing so, it is possible to obtain the effect of speeding up rasterization by parallel rasterization while correcting the page order in DL generation. In this parallel rasterization, if the rasterization of the succeeding page is completed before the preceding page, the second RIP holds the raster image of one page of the succeeding page and waits for the rasterization of the subsequent page. To configure. Then, in response to the completion of rasterization of the preceding page by the first RIP, the first RIP sends the raster image of the preceding page to the printer engine 108, and then the second RIP transmits the raster image of the subsequent page to the printer engine 108. Send to 108. With such a configuration, even if the generation order of DLs of pages is reversed, the effect of speeding up by parallel rasterization is obtained while suppressing the retention of raster images of a plurality of pages, and printing is performed in the correct page order. It can be carried out.

本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。 The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program. It can also be realized by the processing. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

Claims (14)

複数のページを含むPDLデータを受信する受信手段と、
前記PDLデータから前記複数のページの中間データをページごとに生成する複数の処理手段と、
前記複数の処理手段によって生成されたページごとの中間データを、ページごとにラスタライズするラスタライズ手段と、
を有し、
前記ラスタライズ手段は、先行ページの中間データの生成よりも先に後続ページの中間データの生成が完了した場合に、前記先行ページの中間データの生成およびラスタライズの完了まで、前記後続ページの中間データのラスタライズを遅らせ、
前記複数の処理手段は、前記PDLデータから中間データをページごとに生成する際に、
前記PDLデータの所定ページについては、当該ページに含まれるオブジェクトの中間データの生成を前記複数の処理手段で並列に行い、
前記所定ページ以外のページについては、当該ページに含まれるオブジェクトの中間データの生成を、ページごとに別々の前記処理手段で並列に行うことを特徴とする画像形成装置。
Receiving means for receiving PDL data including a plurality of pages;
A plurality of processing means for generating, for each page, intermediate data of the plurality of pages from the PDL data;
Rasterizing means for rasterizing, for each page, the intermediate data for each page generated by the plurality of processing means;
Have
When the generation of the intermediate data of the succeeding page is completed before the generation of the intermediate data of the preceding page, the rasterizing means stores the intermediate data of the succeeding page until the generation of the intermediate data of the preceding page and the completion of rasterization. Delay rasterization,
The plurality of processing means, when generating the intermediate data for each page from the PDL data,
For a predetermined page of the PDL data, the intermediate data of the objects included in the page are generated in parallel by the plurality of processing means,
The image forming apparatus is characterized in that, for pages other than the predetermined page, the intermediate data of the objects included in the page are generated in parallel by the different processing means for each page.
前記所定ページについて、
前記複数の処理手段のうちの一つの処理手段は、当該ページに含まれるオブジェクトのPDLデータの解釈を行い、
前記複数の処理手段のうちの別の処理手段は、当該解釈結果からの当該オブジェクトの中間データの生成を行うことを特徴とする請求項1に記載の画像形成装置。
Regarding the predetermined page,
One processing unit of the plurality of processing units interprets PDL data of an object included in the page,
The image forming apparatus according to claim 1, wherein another processing unit of the plurality of processing units generates intermediate data of the object from the interpretation result.
前記所定ページについて、
前記一つの処理手段は、当該解釈結果が書き出されているメモリから当該解釈結果をバッファに転送し、
前記別の処理手段は、当該バッファに転送された解釈結果を取得して、当該中間データの生成を行うことを特徴とする請求項2に記載の画像形成装置。
Regarding the predetermined page,
The one processing means transfers the interpretation result from a memory in which the interpretation result is written to a buffer,
The image forming apparatus according to claim 2, wherein the other processing unit acquires the interpretation result transferred to the buffer and generates the intermediate data.
前記所定ページ以外のページについて、
前記一つの処理手段は、或るページに含まれるオブジェクトのPDLデータの解釈およびその解釈結果からの当該オブジェクトの中間データの生成を行い、且つ、
前記別の処理手段は、別ページに含まれるオブジェクトのPDLデータの解釈およびその解釈結果からの当該オブジェクトの中間データの生成を行うことを特徴とする請求項3に記載の画像形成装置。
For pages other than the above specified page,
The one processing means interprets PDL data of an object included in a page and generates intermediate data of the object from the interpretation result, and
The image forming apparatus according to claim 3, wherein the another processing unit interprets PDL data of an object included in another page and generates intermediate data of the object from the interpretation result.
前記所定ページ以外のページについて、
前記一つの処理手段は、前記解釈結果が書き出されているメモリから前記転送を介さずに当該解釈結果を取得して、前記中間データの生成を行うことを特徴とする請求項4に記載の画像形成装置。
For pages other than the above specified page,
The said one processing means acquires the said interpretation result from the memory in which the said interpretation result was written out, without going through the said transfer, and produces|generates the said intermediate data, The claim 4 characterized by the above-mentioned. Image forming apparatus.
前記複数の処理手段は、前記受信されたPDLデータの総ページ数が1ページであるとみなされた場合に、前記PDLデータに含まれる全てのページを前記所定ページとして取り扱うことを特徴とする請求項1乃至5の何れか1項に記載の画像形成装置。 The plurality of processing means handle all pages included in the PDL data as the predetermined pages when the total number of pages of the received PDL data is considered to be one page. Item 6. The image forming apparatus according to any one of items 1 to 5. 前記複数の処理手段は、前記受信されたPDLデータの総ページ数が複数ページであるとみなされた場合に、前記PDLデータに含まれる全てのページを前記所定ページ以外のページとして取り扱うことを特徴とする請求項1乃至6の何れか1項に記載の画像形成装置。 When the total number of pages of the received PDL data is considered to be a plurality of pages, the plurality of processing units handle all pages included in the PDL data as pages other than the predetermined page. The image forming apparatus according to any one of claims 1 to 6. 前記総ページ数は、前記受信されたPDLデータが解釈されることで取得されることを特徴とする請求項6または7に記載の画像形成装置。 The image forming apparatus according to claim 6, wherein the total number of pages is acquired by interpreting the received PDL data. 前記総ページ数は、前記受信されたPDLデータのPDL種別が判定されることで、前記総ページ数が1ページであるとみなされることを特徴とする請求項6または7に記載の画像形成装置。 The image forming apparatus according to claim 6 or 7, wherein the total number of pages is considered to be one by determining the PDL type of the received PDL data. .. 前記受信されたPDLデータのPDL種別に基づいて、前記PDLデータに含まれる全てのページを、前記所定ページとして取り扱うか、前記所定ページ以外のページとして取り扱うかを決定する決定手段を有することを特徴とする請求項1乃至5の何れか1項に記載の画像形成装置。 A determining unit that determines whether to handle all pages included in the PDL data as the predetermined page or pages other than the predetermined page based on the PDL type of the received PDL data. The image forming apparatus according to any one of claims 1 to 5. 前記所定ページとは、前記PDLデータの先頭ページであることを特徴とする請求項1乃至10の何れか1項に記載の画像形成装置。 The image forming apparatus according to claim 1, wherein the predetermined page is a top page of the PDL data. 前記ラスタライズ手段によってラスタライズされた結果のデータをラスタライズが行われた順に受け取ってシートに印刷を行う印刷手段を有する請求項1乃至11の何れか1項に記載の画像形成装置。 The image forming apparatus according to claim 1, further comprising a printing unit that receives the data rasterized by the rasterizing unit in the order in which the rasterization was performed and prints the sheet. 複数の処理手段を有する画像形成装置の制御方法であって、
複数のページを含むPDLデータを受信する受信工程と、
前記PDLデータから前記複数のページの中間データを、ページごとに別々の前記複数の処理手段に生成させる制御工程と、
前記生成されたページごとの中間データを、ページごとにラスタライズするラスタライズ工程と、
を有し、
前記ラスタライズ工程は、先行ページの中間データの生成よりも先に後続ページの中間データの生成が完了した場合に、前記先行ページの中間データの生成およびラスタライズの完了まで、前記後続ページの中間データのラスタライズを遅らせ、
前記制御工程では、前記複数の処理手段に、前記PDLデータから中間データをページごとに生成する際に、
前記PDLデータの所定ページについては、当該ページに含まれるオブジェクトの中間データの生成を前記複数の処理手段で並列に行わせ、
前記所定ページ以外のページについては、当該ページに含まれるオブジェクトの中間データの生成を、ページごとに別々の前記処理手段で並列に行わせることを特徴とする画像形成装置の制御方法。
A method for controlling an image forming apparatus having a plurality of processing means, comprising:
A receiving step of receiving PDL data including a plurality of pages,
A control step of causing the plurality of processing means, which are separate for each page, to generate intermediate data of the plurality of pages from the PDL data;
A rasterizing step of rasterizing the generated intermediate data for each page for each page;
Have
In the rasterizing step, when the generation of the intermediate data of the subsequent page is completed before the generation of the intermediate data of the preceding page, the generation of the intermediate data of the preceding page and the completion of the rasterization of the intermediate data of the subsequent page are performed. Delay rasterization,
In the control step, when the intermediate data is generated page by page from the PDL data in the plurality of processing means,
For a predetermined page of the PDL data, intermediate data of objects included in the page is generated in parallel by the plurality of processing means,
For a page other than the predetermined page, the method for controlling the image forming apparatus is characterized in that the intermediate data of the objects included in the page are generated in parallel by the different processing units for each page.
請求項1乃至12の何れか1項に記載の画像形成装置としてコンピュータを機能させるためのプログラム。 A program for causing a computer to function as the image forming apparatus according to claim 1.
JP2016032473A 2015-04-30 2016-02-23 Image forming apparatus, control method of image forming apparatus, and program Active JP6748445B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610246313.4A CN106095345B (en) 2015-04-30 2016-04-20 Image forming apparatus and its control method with multiple processing units
US15/141,510 US10121098B2 (en) 2015-04-30 2016-04-28 Image forming apparatus having plurality of processing units for generating intermediate data, and method for controlling the image forming apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015093537 2015-04-30
JP2015093537 2015-04-30

Publications (2)

Publication Number Publication Date
JP2016210175A JP2016210175A (en) 2016-12-15
JP6748445B2 true JP6748445B2 (en) 2020-09-02

Family

ID=57550442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016032473A Active JP6748445B2 (en) 2015-04-30 2016-02-23 Image forming apparatus, control method of image forming apparatus, and program

Country Status (2)

Country Link
JP (1) JP6748445B2 (en)
CN (1) CN106095345B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6507932B2 (en) * 2015-08-20 2019-05-08 富士ゼロックス株式会社 Image forming apparatus and program
JP7135417B2 (en) * 2018-05-10 2022-09-13 京セラドキュメントソリューションズ株式会社 image forming device
CN111338695B (en) * 2018-12-19 2022-05-17 中科寒武纪科技股份有限公司 Data processing method based on pipeline technology and related product
CN110901229B (en) * 2019-11-15 2021-02-26 深圳市汉森软件有限公司 Image data processing method, device, equipment and storage medium

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100351857C (en) * 2005-01-07 2007-11-28 北京北大方正电子有限公司 Printing control method capable of reducing print memory requirement
CN100356395C (en) * 2005-06-13 2007-12-19 北京北大方正电子有限公司 Printing control method capable of avoiding printing border-crossing error
JP4942179B2 (en) * 2006-12-11 2012-05-30 キヤノン株式会社 Print control apparatus, control method therefor, and device driver
JP5393343B2 (en) * 2009-08-21 2014-01-22 キヤノン株式会社 Print data processing apparatus, print data processing method, and program
JP2011098500A (en) * 2009-11-05 2011-05-19 Canon Inc Image forming apparatus, control method for image forming apparatus, and program
JP2011167857A (en) * 2010-02-16 2011-09-01 Ricoh Co Ltd Image forming apparatus, image forming method, and image forming program
JP5656459B2 (en) * 2010-06-03 2015-01-21 キヤノン株式会社 Job data transmitting apparatus, control method thereof, and program
JP5545050B2 (en) * 2010-06-09 2014-07-09 コニカミノルタ株式会社 Image processing apparatus, program, and image processing method
JP2012218178A (en) * 2011-04-04 2012-11-12 Canon Inc Image forming apparatus, control method thereof and program
US8780373B2 (en) * 2011-06-13 2014-07-15 Ricoh Company, Ltd. Serial raster image processors used for error correction in a parallel raster image processor environment
JP2015022685A (en) * 2013-07-23 2015-02-02 キヤノン株式会社 Image forming apparatus

Also Published As

Publication number Publication date
CN106095345A (en) 2016-11-09
CN106095345B (en) 2019-05-28
JP2016210175A (en) 2016-12-15

Similar Documents

Publication Publication Date Title
US8054474B2 (en) Image data producing apparatus, image forming apparatus and computer readable medium
JP4543340B2 (en) Image processing apparatus, image forming system, and program
US8661209B2 (en) Data processing apparatus, data processing method, and computer-readable recording medium for writing and reading data to and from a storage
JP6748445B2 (en) Image forming apparatus, control method of image forming apparatus, and program
JP5594470B2 (en) Printing control apparatus, printing system, and program
JP5141995B1 (en) Print control apparatus, image forming system, and program
US10534986B2 (en) Printing apparatus having interpreters interpreting print data, printing method, and storage medium
JP6904697B2 (en) Information processing device and communication control method
JP6655963B2 (en) An image processing apparatus and a control method for the image processing apparatus.
EP2546783B1 (en) Recovery from an out-of-storage condition at a raster data spool.
JP5298154B2 (en) Data processing apparatus and data processing program
US10121098B2 (en) Image forming apparatus having plurality of processing units for generating intermediate data, and method for controlling the image forming apparatus
US11079984B2 (en) Image processing mechanism
JP2019014135A (en) Image processing device, image processing method and program
JP5097788B2 (en) Data processing apparatus and data processing program
JP5799968B2 (en) Printing system
JP5936363B2 (en) Image processing apparatus and image processing method
JP2013006338A (en) Image processing device capable of switching configuration method of rendering system
US10755150B2 (en) Image processing apparatus that performs pixel synthesis processing and image processing method
JP3907484B2 (en) Information processing apparatus, control method thereof, and program
JP2011237972A (en) Data processing device and data processing program
JP5105011B1 (en) Print control apparatus, image forming system, and program
JP2023048503A (en) printer
JP5246308B2 (en) Image processing apparatus and program
JP2018079636A (en) Image processing device and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200615

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200622

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: 20200714

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200807

R151 Written notification of patent or utility model registration

Ref document number: 6748445

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151