JP2016210175A - Image formation apparatus, control method of the same, and program - Google Patents

Image formation apparatus, control method of the same, and program Download PDF

Info

Publication number
JP2016210175A
JP2016210175A JP2016032473A JP2016032473A JP2016210175A JP 2016210175 A JP2016210175 A JP 2016210175A JP 2016032473 A JP2016032473 A JP 2016032473A JP 2016032473 A JP2016032473 A JP 2016032473A JP 2016210175 A JP2016210175 A JP 2016210175A
Authority
JP
Japan
Prior art keywords
page
pages
intermediate data
generation
data
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.)
Granted
Application number
JP2016032473A
Other languages
Japanese (ja)
Other versions
JP6748445B2 (en
Inventor
秀一 竹中
Shuichi Takenaka
秀一 竹中
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)

Abstract

PROBLEM TO BE SOLVED: To perform control in a page order in a memory saving manner in an image formation apparatus which generates a display list from PDL data with a plurality of processor cores.SOLUTION: When generation of intermediate data of a subsequent page is completed prior to a preceding page, rasterization of the intermediate data of the subsequent page is performed after completion of generation and rasterization of the intermediate data of the preceding page.SELECTED DRAWING: Figure 4

Description

本発明は中間データを複数の処理手段で生成する技術に関する。   The present invention relates to a technique for generating intermediate data by 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 assigned pages to be rasterized in order, generates intermediate data from the PDL data of the assigned pages, and rasterizes the intermediate data, thereby generating a raster image of the page. The raster image is transmitted to the printer engine and printed.

特開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 to make the order of printed pages coincide with the order of pages of PDL data. Even if the rasterization of the subsequent page by one processor core is completed first, it waits for the completion of the rasterization of the previous page and transmission of the raster image to the printer engine by the other processor core. Thereafter, the raster image of the subsequent page is transmitted to the printer engine.

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

上記事情に鑑みて、本発明の画像形成装置は、複数のページを含む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 for each page from the PDL data. Rasterizing means for rasterizing the intermediate data for each page generated by the plurality of processing means for each page, and the rasterizing means includes intermediate data for the succeeding page prior to generation of the intermediate data for the preceding page. When the data generation is completed, the rasterization of the intermediate data of the subsequent page is delayed until the generation and rasterization of the intermediate data of the previous page are completed.

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

画像形成装置のハードウェア構成図。1 is a hardware configuration diagram of an 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のパイプライン並列処理とページ並列処理との選択制御フロー。6 is a selection control flow of pipeline parallel processing and page parallel processing according to the first embodiment. パイプラインPDLスレッドの処理フロー。Processing flow of pipeline PDL thread. パイプラインDLスレッドの処理フロー。Pipeline DL thread processing flow. ページDLスレッドの処理フロー。Page DL thread processing flow. 実施例2のパイプライン並列処理とページ並列処理の切り替え制御フロー。7 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 illustrating the configuration of an image forming apparatus (printing apparatus) according to this embodiment. 1 includes a CPU 101, a RAM 102, a ROM (not shown), an 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 a page description language (PDL) from an external device (for example, a host PC) connected via the network I / F 104 via a network 105 such as a LAN. Receive. The controller 100 is connected to the printer engine 108 via the device I / F 107 and controls 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 out the program stored in the HDD 103 to 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 generates (converts) intermediate data (display list: DL) from PDL data in parallel by multi-threads. The reason why the PDL data is converted into the dill playlist is that even if there are various types of PDL data, the subsequent processing is made common by converting the PDL data into DL of a common format. The multi-thread described below means that each of a plurality of cores of the CPU 101 functions as a separate thread. That is, it is equivalent to that different threads execute processing, and that different cores execute different processing. It is also possible to use a technique such as hyperthreading that can use a technique in which one processor core appears as if it is a plurality of processor cores by effectively utilizing the registers and pipeline idle time in the CPU.

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, work memory, and DL storage memory for the CPU 101. The DL storage memory is a memory area reserved in advance in the RAM 102, and is a memory area having a predetermined data size for storing DL for a plurality of pages. Note that the maximum DL data size for one page is determined in advance. As will be described later, if the generated DL data size of a page exceeds the maximum value during DL generation of a page, the DL thread (DL thread generation unit) temporarily stops generating the DL. A raster image is generated from the generated DL using the RIP 106. The DL thread then deletes the generated DL to create a storage memory space, compresses the generated raster image, and stores the compressed raster image as a DL in the storage memory where the space is created. Store. Then, the DL thread resumes generating the DL for the page. Such a series of processes is called a fallback process, and the DL thread prevents the DL data size 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 large-capacity 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 DLs transmitted by the CPU 101 in the page order for each page, and rasterizes the DLs in the page order. The rasterization by the RIP 106 is executed in parallel with the generation of DL by the CPU 101 and in units of pages. That is, the CPU 101 rasterizes the previous page (previous page) by the RIP 106 in parallel with the DL generation of the subsequent page (subsequent page). A raster image generated by rasterization 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 the engine I / F sequentially converts raster images sent from the controller unit 100 into image signals. 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 according to the present exemplary 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 it 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 assigns the image forming process of each unit to a plurality of threads. Processing in a predetermined unit includes processing for generating one page of DL from PDL data, processing for interpreting PDL data for one object, processing for generating DL from the interpretation result of PDL data for one object, and the like. . The parallel control unit 200 according to this embodiment may initialize the buffer 204 and assign the thread 1 to interpret the PDL data for one object and store the interpretation result in the buffer 204. That is, the thread 1 is a pipeline PDL thread that functions as the interpretation unit 201. In addition, the parallel control unit 200 may assign a process of generating a DL from the interpretation result of the PDL data for one object stored in the buffer 204 to the thread 2. That is, the thread 2 is a pipeline DL thread that functions as the generation unit 203. Further, the parallel control unit 200 may assign to the thread 3 an interpretation process of PDL data of all objects included in a certain page and a DL generation process 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. The parallel control unit 200 may assign to the thread 4 interpretation processing of PDL data of all objects included in another page and generation processing of DL 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.

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

本実施例では、オブジェクトのPDLデータを解釈する処理は解釈部201が行う。この解釈部201は、PDLデータを1オブジェクトずつ解釈して、解釈結果をワークメモリに書き出す。このワークメモリには、PDLデータに含まれる1オブジェクト分の解釈結果が一時的に記憶され、後に続いて解釈される1オブジェクト分のPDLデータの解釈結果によって上書きされる。   In this embodiment, the interpretation unit 201 performs processing for interpreting the PDL data of the object. The interpreter 201 interprets the PDL data one object at a time and writes the interpretation result to the work memory. In this work memory, the interpretation result for one object included in the PDL data is temporarily stored, and is overwritten by the interpretation result of the PDL data for 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 to the work memory like the interpretation unit 201, but 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 processing for generating the DL of the object from the interpretation result. The generation unit 203 generates a DL from the interpretation result of the PDL data. The generation unit 203 acquires the interpretation result from the work memory of the interpretation unit 201. On the other hand, unlike the generation unit 203, the generation unit 213 acquires from the buffer 204, not from the work memory.

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

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

一方の並列処理は、解釈部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 respective processes of the interpretation unit 201 and the generation unit 203 are executed by the pipeline control unit 202 using separate threads. That is, for the first page, when generating a DL for one object, a thread for processing to interpret the PDL data of the object and a thread for generating DL from the interpretation result are executed in parallel by pipeline processing. Is done. That is, while a thread that functions as the generation unit 203 generates a DL from the interpretation result of PDL data of a certain object, another thread that functions as the interpretation unit 201 interprets PDL data of the next object. Then, the thread that functions as the generation unit 203 generates a DL from the interpretation result of 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を生成する。これがページ並列である。   In the other parallel processing, for each page after the second page, the number of threads that function as the interpreter 211 and the generator 213 is limited to one per page. Then, a plurality of threads that generate respective DLs of a plurality of pages are executed in parallel in units of pages. That is, a certain thread generates DL from PDL data of a certain page, and another thread generates 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 using a multi-core CPU, separate threads (processor cores) generate DLs for different pages in parallel for multiple pages of PDL data, so the effect of speeding up by multi-thread parallel processing is obtained. be able to. On the other hand, in page parallel performed by a multi-core CPU for single-page PDL data, a certain thread (processor core) generates a DL from PDL data for the first page. However, the remaining threads (processor core) are in an idle state in which neither PDL data is interpreted nor DL is generated, and the parallel effect of multithread (multicore) 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, DL is generated by pipeline parallel processing for the first page of PDL data, and DL generation for the second and subsequent pages is performed by page parallel processing. As a result, not only a plurality of pages of PDL data but also a single page of PDL data has a multithread parallel effect. FIG. 3 is a conceptual diagram of this process.

1ページ目の処理では、パイプライン並列処理が行われる。例えば1ページ目のPDLデータにオブジェクト1、2が含まれている場合に、スレッド1(プロセッサコア1)は、オブジェクト1のPDLデータを解釈し、続いてスレッド2(プロセッサコア2)は、その解釈結果からオブジェクト1のDLを生成する。そしてその生成の間、スレッド1は、オブジェクト2のPDLデータを解釈し、オブジェクト1のDLを生成し終えたスレッド2は、その解釈結果からオブジェクト2のDLを生成する。このように、各スレッドの処理が並列実行できるので、1ページ目のDLの生成は高速化される。   In the processing of the first page, pipeline parallel processing is performed. 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 object 1 is generated from the interpretation result. During the generation, the thread 1 interprets the PDL data of the object 2, and the thread 2 that has generated the DL of the object 1 generates the DL of the object 2 from the interpretation result. In this way, since the processing of each thread can be executed in parallel, the generation of the DL for the first page is accelerated.

また続く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ページ目と同様にパイプライン並列処理を適用しても良いが、本実施例においてそうしないのは、次の理由による。すなわち、マルチスレッドによるパイプライン並列処理はスレッド間の通信が必要なので、通信コストがページ並列処理よりもかかるためである。   In the subsequent second and third page processes, page parallel processing is performed. For example, when the objects 3 and 4 are included in the PDL data on the second page, the thread 1 continues to interpret the PDL data of the object 3 and generate the DL. The same applies to the object 4. Thereby, 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 continues to interpret the PDL data of the object 5 and generate the DL. The same applies to the object 6. As a result, the DL of the third page is generated. In this way, the processing of each thread can be executed in parallel in units of pages, so that the generation of DL for the second page and the third page is speeded up. The pipeline parallel processing may be applied to the second page and the third page as in the first page. However, the reason for not doing so in the present embodiment is as follows. In other words, multi-thread pipeline parallel processing requires communication between threads, so communication costs are higher than page parallel processing.

<並列処理切り替え制御のフロー>
図4のフローチャートを用いて、ページ並列処理とパイプライン並列処理とを切り替える制御フローを説明する。この制御フローは、スレッドAにおいて並列制御部200が、ネットワークI/F104を介して外部装置からPDLデータを受信したことに応じて、実行する。
<Parallel processing switching control flow>
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 the 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 an initialization process. Specifically, the parallel control unit 200 manages the DL generation target page number and the DL transmission target page number, and sets both to 1. The parallel control unit 200 activates a plurality of threads for the number of processor cores of the multi-core CPU. The parallel control unit 200 reserves the buffer 204. For example, in the case of a 2-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 separate 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, in order to generate and transmit DL for the first page by pipeline parallel processing, the processing after S404 is performed. The pipeline parallel processing is as described with reference to FIG. Further, if the generation target page number is not 1, the processing from S410 onward is performed in order to generate and transmit DL by page parallel processing for the second and subsequent pages. Here, the first page is a predetermined page that is 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 a predetermined page. It is a generation control means for controlling the parallel processing method depending on whether or not.

パイプライン並列処理のためのS404以降の処理について説明する。   Processing subsequent to 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 S <b> 404, the parallel control unit 200 instructs the plurality of activated threads to perform pipeline parallel processing of the PDL data of the generation target page number in cooperation with each other. For example, the parallel control unit 200 instructs the thread 1 to perform interpretation processing of PDL data of an object in 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 object DL generation processing from the interpretation result of the object PDL data in the pipeline parallel processing. At this time, the thread 2 functions as the generation unit 203. As will be described later, 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 on the DL storage memory.

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

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

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 the memory address and performs rasterization. The parallel control unit 200 causes the DL thread generation unit 203 to release the memory area secured on the DL storage memory in response to detecting the completion of the DL rasterization 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 S408, the parallel control unit 200 increments the transmission target page number by 1, thereby setting 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 to which no process is assigned (empty thread).

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 step S411, the parallel control unit 200 determines whether an instruction to perform DL generation processing of all pages included in the PDL data is performed in page parallel. If the DL generation process is instructed for all pages, the process exits the loop process of S410 and shifts to S414. Otherwise, the process proceeds to S412. In addition to the processing of S411, the parallel control unit 200 calculates the total size of DLs not transmitted (unrasterized) to the RIP 106 among the DLs of pages generated so far, and this total size is a threshold value. If smaller, the process may be shifted to S412. Conversely, if the total size is greater than or equal to the threshold, the process proceeds to S414. In this way, by suppressing the generation of DL with reference to the total size of untransmitted DL, DL generation of a page with a young page number is significantly delayed, and other pages (page numbers larger than the young page number) Even if the DL of the page is generated first, it is possible to prevent a shortage of DL storage memory and buffer overflow. Note that this control may be performed based on the number of generated and unrasterized pages, not the total size of generated and unrasterized DLs. For example, if the number of generated and unrasterized pages is smaller than the threshold, the process proceeds to S412; otherwise, the process proceeds to S414. Alternatively, the parallel control unit 200 determines whether the free capacity of the DL storage memory is high enough to secure a memory area for the maximum DL data size of one page. That is, it is determined whether the free space is equal to or greater than a predetermined threshold value (maximum value). If so, the process proceeds to S412; otherwise, the process proceeds to S414. The free space is a data size of a 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 reserved for each page for the generated and unrasterized DL” from the predetermined data size reserved in advance as the DL storage memory. Instead of the “total size of memory area reserved for each 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 S <b> 412, the parallel control unit 200 assigns the DL generation process for the page with the generation target page number to the empty thread so as to execute the page parallel process. That is, a thread to which a DL generation process is assigned interprets PDL data of each object included in the page and generates a DL from the interpretation result. By doing so, DL generation processing is performed in parallel on a page-by-page basis, so a plurality of pages of DL included in the 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 thread 2 is an empty thread. As will be described later, 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 on the DL storage memory.

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

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

次にS414において並列制御部200は、DL生成の完了通知を、ページ並列処理中のスレッドから受信したかを判定する。受信された場合にS415へ処理が進むことで、生成済み且つ未送信のDLがRIP106へ送信される。それ以外の場合、処理はS409へ進む。なお、この完了通知には生成されたDLの格納先メモリアドレスとページ番号(例えば2ページ目や3ページ目など)とが含まれ、生成済みのDLのページ番号として並列制御部200によって管理される。   In step S <b> 414, the parallel control unit 200 determines whether a DL generation completion notification has been received from a thread that is performing page parallel processing. If 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 storage address and page number of the generated DL (for example, the second page and the third page), and is managed by the parallel control unit 200 as the generated DL page number. The

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 generated DL page number and the transmission target page number. That is, it is determined here whether the generated DL can be transmitted (delivered) to the RIP 106 in order from the first page. This transmission target page number is nothing but the page number to be rasterized this time by the RIP 106. If the generation of the DL for the transmission target page number has already been completed, the process proceeds to S416, and if not, the process proceeds to S409. Here, when proceeding to S409, the DL of the page number included in the completion notice received in S414 is held in the storage destination memory. However, a memory saving effect can be obtained rather than being held in a state converted into a raster image.

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 DL storage destination memory address of the transmission target page number included in the completion notification acquired so far, and the RIP 106 is stored in the memory address. Rasterize by acquiring the DL. 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 DL rasterization for one page. .

S417において、並列制御部200は、送信対象ページ番号を1つインクリメントすることで、ページ順に生成されたDLをRIP106へ送信できるようにする。   In step S417, the parallel control unit 200 increments the transmission target page number by one 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 transmission control that performs control of the page order of DL 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 prior to the DL generation of the page in the order to be transmitted (the preceding page: for example, the second page), the third page The transmission of the DL to the RIP 106 is waited until the transmission of the DL of the second page, which is the previous page, is completed. That is, DL rasterization 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 are generated, and the pages are printed in the correct order.

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

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

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

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

S1104において、解釈部201は、S1102で書き出された解釈結果をバッファ204に転送する。この転送は、後述のパイプラインDLスレッドから転送許可通知を受信したことに応じて行われる。転送された解釈結果は、後述の通り、パイプラインDLスレッドによって処理される。   In step S <b> 1104, the interpretation unit 201 transfers the interpretation result written in step S <b> 1102 to the buffer 204. This transfer is performed in response to receiving a transfer permission notification from a 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 with the generation target page number has been completed. If completed, the process moves to S1106. Otherwise, the process returns to S1102, and interpretation of PDL data of another uninterpreted object is performed.

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. When the DL generation completion notification is received, the process proceeds to S1107.

S1107において、解釈部201は、パイプラインPDLスレッドともパイプラインDLスレッドとも別のスレッドで実現されている並列制御部200に、取得されたメモリアドレスを含むDL生成完了通知を送信する。また、このDL生成完了通知には、生成されたDLのページ番号も含まれており、S406で受信される。   In step S <b> 1107, the interpretation unit 201 transmits a DL generation completion notification including the acquired memory address to the parallel control unit 200 that is realized by a thread other than the pipeline PDL thread and the pipeline DL thread. Further, the DL generation completion notification includes the page number of the generated DL and 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, DL data generation processing in pipeline parallel processing allocated to an empty thread based on the instruction in S404 will be described using the flowchart of FIG. The processing of this flowchart is executed by a pipeline DL thread triggered by an instruction that an empty thread functions as a pipeline DL thread. Therefore, the main subject of the processing is the pipeline DL thread generation unit 203.

S1201において、生成部203は、バッファ204からオブジェクトのPDLデータの解釈結果を取得する。   In step S <b> 1201, the generation unit 203 acquires the interpretation result of the object PDL data 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 step S1202, the generation unit 203 generates an object DL from the interpretation result acquired in step S1201. The generated DL is stored in the DL storage memory. At this time, the generation unit 203 transmits a transfer permission notification to the pipeline PDL thread. As a result, after the interpretation result in the buffer has been processed, the next interpretation result is controlled to be overwritten in the buffer. In addition, when the generation unit 203 starts generating DL for one page, 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, and is generated in the memory area. DL is sequentially stored. In addition, as described above, the generation unit 203 determines whether the generated DL data size exceeds the maximum DL data size for one page during DL generation. Process.

S1203において、生成部203は、生成対象ページ番号のページに含まれる全オブジェクトのDLの生成が完了したか判定する。完了している場合は、処理はS1204へ移行する。そうでなければ処理はS1201へ戻り、バッファに記憶されている解釈結果を処理する。   In step S1203, the generation unit 203 determines whether the DL generation of all objects included in the page with the generation target page number has been completed. If it has been completed, the process moves 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. This DL generation completion notification includes the memory address where 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である。
<Page parallel DL generation flow>
Next, DL data generation processing in page parallel processing allocated to a free thread based on the instruction in S412 will be described using the flowchart of FIG. The processing of this flowchart is executed by a page DL thread triggered by an instruction that an empty thread functions as a page DL thread. Therefore, the main subject of processing is the page DL thread interpreter 211 and the generator 213.

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

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

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

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

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

以上、パイプライン並列とページ並列とを切り替えることで、マルチコア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 for single-page PDL data or multiple-page PDL data.

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

それに比べてパイプライン並列では、複数のスレッドが1つのオブジェクトに対してパイプライン処理を行うので、オブジェクトのDLの保存順序を意識しなくても良いというメリットがある。   In contrast, pipeline parallelism has the advantage that multiple threads perform pipeline processing on a single object, so there is no need to be aware of the order in which objects are stored in DL.

(実施例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, if there are a plurality of pages, the parallel effect may be higher when page parallel processing is performed from the first page. In particular, PDL data with an even number of pages is more effective.

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

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

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

S402において、並列制御部200は、PDLデータを解釈することで、外部装置から受信されたPDLデータの総ページ数を判断する。この判断方法は以下のようなものが考えられる。   In S402, the parallel control unit 200 determines the total number of pages of the PDL data received from the external device by interpreting the PDL data. The following judgment methods 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 separates pages, the total number of pages of PDL data can be acquired.

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

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

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

以上のように、単ページの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, page parallel processing is performed in parallel with the second page. To the first page. Thereby, a parallel effect can be heightened more.

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

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

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

1つの例として、複数のRIPが、生成されたDLから、同一ページにおける異なる領域についてのラスタライズを並列に行う構成でも良い。例えば第1のRIPが、生成されたページのDLを用いて、そのページの第1のバンド領域のラスタライズを行い、第2のRIPが、その第1のRIPによるラスタライズと並行して、そのページの第2バンドのラスタライズをそのDLを用いて行う。このようにすることで、DL生成の待機による遅延を、ページの並列ラスタライズの高速化で挽回することができる。   As an example, a configuration in which a plurality of RIPs perform rasterization of different regions on the same page in parallel from the generated DL may be used. For example, the first RIP uses the DL of the generated page to rasterize the first band region of the page, and the second RIP performs the page parallel to the rasterization by the first RIP. The second band is rasterized using the DL. In this way, the delay caused by waiting for DL generation can be recovered by increasing the speed 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の生成順が逆転したとしても、複数のページのラスターイメージを保持し続けることを抑制しつつ並列ラスタライズによる高速化の効果を得て、正しいページ順で印刷を行うことができる。   As another example, a configuration in which a plurality of RIPs perform rasterization of DLs of different pages in parallel may be used. 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, when the DL generation of the subsequent page is completed earlier than the preceding page, the rasterization of the DL of the subsequent page generated earlier 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 succeeding page in response to completion of generation of the DL of the preceding page, not completion of rasterization of the preceding page. Start. In this way, it is possible to obtain the effect of speeding up rasterization by parallel rasterization while correcting the page order in DL generation. If the rasterization of the subsequent page is completed before the preceding page in this parallel rasterization, the second RIP holds the raster image for one page of the subsequent page, and further waits for the rasterization of the subsequent page. Configure as follows. In response to the completion of rasterization of the preceding page by the first RIP, the first RIP transmits 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. To 108. With this configuration, even if the page DL generation order is reversed, the effect of speeding up by parallel rasterization is obtained while keeping the raster image of multiple pages kept, 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 realizes 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 This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

Claims (20)

複数のページを含むPDLデータを受信する受信手段と、
前記PDLデータから前記複数のページの中間データをページごとに生成する複数の処理手段と、
前記複数の処理手段によって生成されたページごとの中間データを、ページごとにラスタライズするラスタライズ手段と、
を有し、
前記ラスタライズ手段は、先行ページの中間データの生成よりも先に後続ページの中間データの生成が完了した場合に、前記先行ページの中間データの生成およびラスタライズの完了まで、前記後続ページの中間データのラスタライズを遅らせることを特徴とする画像形成装置。
Receiving means for receiving PDL data including a plurality of pages;
A plurality of processing means for generating intermediate data of the plurality of pages for each page from the PDL data;
Rasterizing means for rasterizing the intermediate data for each page generated by the plurality of processing means for each page;
Have
When the generation of the intermediate data of the subsequent page is completed prior to the generation of the intermediate data of the previous page, the rasterizing means performs the generation of the intermediate data of the subsequent page until the generation of the intermediate data of the previous page and the completion of the rasterization. An image forming apparatus characterized by delaying rasterization.
前記複数の処理手段は、それぞれ、別々のページの中間データをそれぞれが生成することを特徴とする請求項1に記載の画像形成装置。   The image forming apparatus according to claim 1, wherein each of the plurality of processing units generates intermediate data of different pages. 前記ラスタライズ手段によってラスタライズされるべきページ番号を管理する管理手段をさらに有し、
前記ラスタライズ手段は、前記管理手段によって管理されているページ番号のページの中間データの生成よりも先に前記後続ページの中間データの生成が完了した場合に、当該ページ番号のページから当該後続ページの直前ページまでの各ページの中間データの生成およびラスタライズの完了まで、前記後続ページの中間データのラスタライズを遅らせることを特徴とする請求項1または2に記載の画像形成装置。
Management means for managing page numbers to be rasterized by the rasterizing means;
When the generation of the intermediate data of the subsequent page is completed prior to the generation of the intermediate data of the page of the page number managed by the management unit, the rasterizing unit starts from the page of the page number. 3. The image forming apparatus according to claim 1, wherein rasterization of intermediate data of the subsequent page is delayed until generation of intermediate data of each page up to the previous page and completion of rasterization are completed.
前記ラスタライズ手段は、すでに生成されたページの中間データのうちで、まだラスタライズされていない中間データの量を求め、当該量が閾値以上の場合に、残りのページの中間データの生成を抑制することを特徴とする請求項1乃至3の何れか1項に記載の画像形成装置。   The rasterizing means obtains the amount of intermediate data that has not been rasterized among the intermediate data of pages that have already been generated, and suppresses the generation of intermediate data for the remaining pages when the amount is equal to or greater than a threshold value. The image forming apparatus according to claim 1, wherein the image forming apparatus is an image forming apparatus. 前記ラスタライズ手段は、前記量は、すでに生成されたページの中間データのうちで、まだラスタライズされていない中間データの総サイズであり、当該総サイズが閾値以上の場合に、残りのページの中間データの生成を抑制することを特徴とする請求項4に記載の画像形成装置。   The rasterizing means is configured such that the amount is the total size of intermediate data that has not yet been rasterized among the intermediate data of the already generated pages. If the total size is greater than or equal to the threshold value, the intermediate data of the remaining pages The image forming apparatus according to claim 4, wherein generation of the image is suppressed. 前記ラスタライズ手段は、前記量は、すでに生成されたページの中間データのうちで、まだラスタライズされていない中間データのページ数であり、当該ページ数が閾値以上の場合に、残りのページの中間データの生成を抑制することを特徴とする請求項4に記載の画像形成装置。   The rasterizing means is configured such that the amount is the number of intermediate data pages that have not yet been rasterized among the intermediate data of already generated pages, and the intermediate data of the remaining pages when the number of pages is equal to or greater than a threshold value. The image forming apparatus according to claim 4, wherein generation of the image is suppressed. 前記複数の処理手段は、前記PDLデータから中間データをページごとに生成する際に、
前記PDLデータの所定ページについては、当該ページに含まれるオブジェクトの中間データの生成を前記複数の処理手段で並列に行い、
前記所定ページ以外のページについては、当該ページに含まれるオブジェクトの中間データの生成を、ページごとに別々の前記処理手段で並列に行うことを特徴とする請求項1乃至6の何れか1項に記載の画像形成装置。
The plurality of processing means, when generating the intermediate data for each page from the PDL data,
For the predetermined page of the PDL data, the generation of intermediate data of objects included in the page is performed in parallel by the plurality of processing means,
7. For any page other than the predetermined page, intermediate data generation of an object included in the page is performed in parallel by the processing means different for each page. The image forming apparatus described.
前記所定ページについて、
前記複数の処理手段のうちの一つの処理手段は、当該ページに含まれるオブジェクトのPDLデータの解釈を行い、
前記複数の処理手段のうちの別の処理手段は、当該解釈結果からの当該オブジェクトの中間データの生成を行うことを特徴とする請求項7に記載の画像形成装置。
About the predetermined page
One processing means of the plurality of processing means interprets PDL data of an object included in the page,
The image forming apparatus according to claim 7, wherein another processing unit of the plurality of processing units generates intermediate data of the object from the interpretation result.
前記所定ページについて、
前記一つの処理手段は、当該解釈結果が書き出されているメモリから当該解釈結果をバッファに転送し、
前記別の処理手段は、当該バッファに転送された解釈結果を取得して、当該中間データの生成を行うことを特徴とする請求項8に記載の画像形成装置。
About the predetermined page
The one processing means transfers the interpretation result from the memory in which the interpretation result is written to a buffer,
9. The image forming apparatus according to claim 8, wherein the another processing unit acquires the interpretation result transferred to the buffer and generates the intermediate data.
前記所定ページ以外のページについて、
前記一つの処理手段は、或るページに含まれるオブジェクトのPDLデータの解釈およびその解釈結果からの当該オブジェクトの中間データの生成を行い、且つ、
前記別の処理手段は、別ページに含まれるオブジェクトのPDLデータの解釈およびその解釈結果からの当該オブジェクトの中間データの生成を行うことを特徴とする請求項9に記載の画像形成装置。
For pages other than the predetermined page,
The one processing means interprets PDL data of an object included in a certain page and generates intermediate data of the object from the interpretation result, and
The image forming apparatus according to claim 9, 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.
前記所定ページ以外のページについて、
前記一つの処理手段は、前記解釈結果が書き出されているメモリから前記転送を介さずに当該解釈結果を取得して、前記中間データの生成を行うことを特徴とする請求項10に記載の画像形成装置。
For pages other than the predetermined page,
The said one processing means acquires the said interpretation result from the memory in which the said interpretation result was written without going through the said transfer, and produces | generates the said intermediate data. Image forming apparatus.
前記複数の処理手段は、前記受信されたPDLデータの総ページ数が1ページであるとみなされた場合に、前記PDLデータに含まれる全てのページを前記所定ページとして取り扱うことを特徴とする請求項7乃至11の何れか1項に記載の画像形成装置。   The plurality of processing means treats all pages included in the PDL data as the predetermined page when the total number of pages of the received PDL data is regarded as one page. Item 12. The image forming apparatus according to any one of Items 7 to 11. 前記複数の処理手段は、前記受信されたPDLデータの総ページ数が複数ページであるとみなされた場合に、前記PDLデータに含まれる全てのページを前記所定ページ以外のページとして取り扱うことを特徴とする請求項7乃至12の何れか1項に記載の画像形成装置。   The plurality of processing means treats all pages included in the PDL data as pages other than the predetermined page when the total number of pages of the received PDL data is regarded as a plurality of pages. The image forming apparatus according to any one of claims 7 to 12. 前記総ページ数は、前記受信されたPDLデータが解釈されることで取得されることを特徴とする請求項12または13に記載の画像形成装置。   The image forming apparatus according to claim 12, wherein the total number of pages is acquired by interpreting the received PDL data. 前記総ページ数は、前記受信されたPDLデータのPDL種別が判定されることで、前記総ページ数が1ページであるとみなされることを特徴とする請求項12または13に記載の画像形成装置。   14. The image forming apparatus according to claim 12, wherein the total number of pages is regarded as one page by determining a PDL type of the received PDL data. . 前記受信されたPDLデータのPDL種別に基づいて、前記PDLデータに含まれる全てのページを、前記所定ページとして取り扱うか、前記所定ページ以外のページとして取り扱うかを決定する決定手段を有することを特徴とする請求項7乃至11の何れか1項に記載の画像形成装置。   And determining means for determining whether to treat all pages included in the PDL data as the predetermined page or as 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 7 to 11. 前記所定ページとは、前記PDLデータの先頭ページであることを特徴とする請求項7乃至16の何れか1項に記載の画像形成装置。   The image forming apparatus according to claim 7, wherein the predetermined page is a first page of the PDL data. 前記ラスタライズ手段によってラスタライズされた結果のデータをラスタライズが行われた順に受け取ってシートに印刷を行う印刷手段を有する請求項1乃至17の何れか1項に記載の画像形成装置。   18. 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 of rasterization and prints the data on a sheet. 複数の処理手段を有する画像形成装置の制御方法であって、
複数のページを含むPDLデータを受信する受信工程と、
前記PDLデータから前記複数のページの中間データを、ページごとに別々の前記複数の処理手段に生成させる制御工程と、
前記生成されたページごとの中間データを、ページごとにラスタライズするラスタライズ工程と、
を有し、
前記ラスタライズ工程は、先行ページの中間データの生成よりも先に後続ページの中間データの生成が完了した場合に、前記先行ページの中間データの生成およびラスタライズの完了まで、前記後続ページの中間データのラスタライズを遅らせることを特徴とする画像形成装置の制御方法。
A control method of an image forming apparatus having a plurality of processing means,
A receiving step of receiving PDL data including a plurality of pages;
A control step of generating intermediate data of the plurality of pages from the PDL data by the plurality of processing means different for each page;
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 previous page, the intermediate data of the subsequent page is generated until the generation of the intermediate data of the previous page and the completion of the rasterization. A control method for an image forming apparatus, characterized by delaying rasterization.
請求項1乃至18の何れか1項に記載の各手段のうちの少なくとも1つとしてコンピュータを機能させるためのプログラム。   The program for functioning a computer as at least one of each means of any one of Claims 1 thru | or 18.
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 true JP2016210175A (en) 2016-12-15
JP6748445B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017039269A (en) * 2015-08-20 2017-02-23 富士ゼロックス株式会社 Image formation apparatus and program

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011167857A (en) * 2010-02-16 2011-09-01 Ricoh Co Ltd Image forming apparatus, image forming method, and image forming program
JP2011253428A (en) * 2010-06-03 2011-12-15 Canon Inc Server device, terminal device, job processing system, control method, control program and storage medium
JP2011257972A (en) * 2010-06-09 2011-12-22 Konica Minolta Business Technologies Inc 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
US20120314240A1 (en) * 2011-06-13 2012-12-13 Rivadeneira Randell 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

Family Cites Families (5)

* 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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011167857A (en) * 2010-02-16 2011-09-01 Ricoh Co Ltd Image forming apparatus, image forming method, and image forming program
JP2011253428A (en) * 2010-06-03 2011-12-15 Canon Inc Server device, terminal device, job processing system, control method, control program and storage medium
JP2011257972A (en) * 2010-06-09 2011-12-22 Konica Minolta Business Technologies Inc 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
US20120314240A1 (en) * 2011-06-13 2012-12-13 Rivadeneira Randell 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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017039269A (en) * 2015-08-20 2017-02-23 富士ゼロックス株式会社 Image formation apparatus and program

Also Published As

Publication number Publication date
CN106095345B (en) 2019-05-28
JP6748445B2 (en) 2020-09-02
CN106095345A (en) 2016-11-09

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
US8576435B2 (en) Print-document conversion apparatus, print-document conversion method, and computer-readable medium storing program
US8661209B2 (en) Data processing apparatus, data processing method, and computer-readable recording medium for writing and reading data to and from a storage
US8861014B2 (en) Systems and methods for optimized printer throughput in a multi-core environment
US8705095B2 (en) Print control apparatus, printing system, and computer readable medium storing program for utilizing plural interpreters for parallel processing of print jobs
JP6748445B2 (en) Image forming apparatus, control method of image forming apparatus, and program
US8503019B2 (en) Print document conversion apparatus and computer readable medium
US8537396B2 (en) Print document conversion apparatus, print document conversion method, and computer readable medium
US10534986B2 (en) Printing apparatus having interpreters interpreting print data, printing method, and storage medium
JP5482238B2 (en) Image processing apparatus, image forming apparatus, image processing method, image forming method, and program
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
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
JP2011237972A (en) Data processing device and data processing program
JP6078954B2 (en) Image processing device
JP5105011B1 (en) Print control apparatus, image forming system, and program
JP2023048503A (en) printer
JP2006130776A (en) Image processing apparatus and method
JP2010244112A (en) Job processor, job processing method, and computer program for attaining job processing method

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 Request for written amendment filed

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 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200615

A911 Transfer to examiner for re-examination 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