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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1218—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
- G06F3/122—Reducing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1248—Job 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.
特許文献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.
(実施例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
CPU101は、HDD103に記憶されたプログラムをRAM102に読み出し、実行する。さらにCPU101は、そのプログラムに従って、システムバス109に接続される各デバイスを統括的に制御する。CPU101は、プロセッサコアを複数有するマルチコアCPUであって、PDLデータから中間データ(ディスプレイリスト:DL)の生成(変換)をマルチスレッドによって並列実行する。PDLデータからディルプレイリストに変換するのは、様々な種別のPDLデータがあったとしても、共通フォーマットのDLに変換することで後の処理を共通化するためである。以下で述べるマルチスレッドとは、CPU101の有する複数のコアのそれぞれが別々のスレッドとして機能することである。すなわち、別々のスレッドが処理を実行するということ、別々のコアが異なる処理を実行することに等しい。なお、ハイパースレッディングのようなCPU内のレジスタやパイプラインの空き時間を有効利用して1つのプロセッサコアをあたかも複数のプロセッサコアであるかのように見せる技術を利用できるものを用いても良い。
The
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
RIP106は、CPU101によって生成されたDLからラスターイメージの生成(ビットマップへのラスタライズ)を行う。RIP106は後述するようにCPU101によってページ順に送信されたDLをページごとに順次受信して、そのDLをページ順にラスタライズする。このRIP106によるラスタライズは、CPU101によるDLの生成と、ページ単位で並列実行される。すなわち、CPU101によって後のページ(後続ページ)のDLの生成と並列して、RIP106による前ページ(先行ページ)のラスタライズが行われる。ラスタライズによって生成されたラスターイメージは、プリンタエンジン108に送られる。
The
プリンタエンジン108は、不図示のエンジンI/Fを有し、このエンジンI/Fはコントローラユニット100から送られたラスターイメージを順次、画像信号に変換する。そして、プリンタエンジン108は、この画像信号に基づいて、画像を紙などのシート上に印刷する印刷ユニットである。プリンタエンジン108の印刷方式は、電子写真方式、インクジェット方式、などでよく、方式を限定しない。
The
<画像形成装置のソフトウェアモジュール図>
図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
並列制御部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
なお、ここで言うところのオブジェクトとは、例えば複数文字からなるテキストオブジェクトや、線分の両端の座標を指定することで決定される線分オブジェクトや、ビットマップオブジェクトなどである。 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
一方で解釈部211は、解釈部201のようにPDLデータを解釈してその解釈結果をワークメモリに書き出すが、解釈部211は続いてその解釈結果を、バッファ204に転送する。
On the other hand, the
本実施例では、オブジェクトのDLを解釈結果から生成する処理は、生成部203が行う。生成部203は、PDLデータの解釈結果からDLを生成する。生成部203は、解釈結果を解釈部201のワークメモリから取得する。一方、生成部213は、生成部203とは異なり、ワークメモリからではなく、バッファ204から取得する。
In the present embodiment, the
なお、本実施例では、CPU101がプログラムを実行することで上述の通りソフトウェアモジュールが実現されるが、これに限らず、上述のソフトウェアモジュールと同等の機能をハードウェアによって実現しても良い。また、図2では、4つのスレッド1〜4を示しているが、1つのスレッドが、別のスレッドの動作を行っても良い。例えばスレッド1が、後述のパイプライン並列処理の際には、パイプラインDLスレッドとなるが、ページ並列処理の際には、スレッド3のようなページDLスレッドとなっても良い。これはスレッド2とスレッド4についても同様である。
In this embodiment, the software module is realized by the
本実施例では、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
他方の並列処理は、2ページ目以降の各ページについては、解釈部211および生成部213として機能させるスレッドを1ページにつき1つに限定する。そして、複数のページのそれぞれのDLを生成する複数スレッドが、ページ単位で並列実行される。すなわち、或るスレッドは、或るページのPDLデータからDLを生成し、別スレッドは別ページのPDLデータからDLを生成する。これがページ並列である。
The other parallel processing limits the number of threads that function as the interpreting
<ページ並列とパイプライン並列切り替えの概要>
マルチコア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
S401において、並列制御部200は、初期化処理を行う。具体的には、並列制御部200は、DLの生成対象ページ番号およびDLの送信対象ページ番号を管理し、それらを共に1に設定する。また並列制御部200は、マルチコアCPUのプロセッサコアの数分、複数のスレッドを起動する。また並列制御部200はバッファ204を確保する。例えば2コアCPUであれば2つのスレッドが起動される。以降の処理では、並列制御部200は、起動した複数スレッドのそれぞれが別々のコアによって実行されるように、アフィニティマスクを設定するものとする。
In S401, the
S403において、並列制御部200は、生成対象ページ番号が1であるか、すなわち、DL生成の対象が1ページ目であるか否かを判定する。生成対象ページ番号が1であれば、1ページ目に対してパイプライン並列処理でDLの生成と送信を行うために、S404以降の処理が行われる。パイプライン並列処理については図3を用いて説明したとおりである。また生成対象ページ番号が1でなければ、2ページ目以降に対してページ並列処理でDLの生成と送信を行うために、S410以降の処理が行われる。ここでは1ページ目が、2ページ目以降とは区別して取り扱う所定ページであり、2ページ目以降が所定ページ以外のページであり、並列制御部200はDL生成対象のページが所定ページであるか否かによって並列処理方法を制御する生成制御手段である。
In S403, the
パイプライン並列処理のための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
S405において、並列制御部200は、生成対象ページ番号を1つインクリメントすることで、DL生成の対象ページを2ページ目にする。
In step S405, the
S406において、並列制御部200は、1ページ目のDLの生成の完了通知を、パイプライン処理中のスレッドから受信したかを判定し、受信した場合にS407へ処理を進める。この完了通知には、1ページ目のDLの格納先のメモリアドレスが含まれている。またこの完了通知には生成されたDLのページ番号が含まれ、ここでのページ番号は「1ページ目」である。それ以外の場合、1ページ目のDLの生成の完了通知が受信されるまで待機する。なぜ1ページ目に限って待機をするかというと、1ページ目のパイプライン並列処理中に、次ページに対する処理を行わせないようにして、1ページ目の処理効率を上げるためである。
In S406, the
S407において、並列制御部200は、送信対象ページ番号のDL(すなわち1ページ目のDL)をRIP106に送信する。送信されたDLは、RIP106によってラスタライズされる。具体的には、並列制御部200は、完了通知に含まれているメモリアドレスをRIP106に通知し、RIP106は、そのメモリアドレスに格納されているDLを取得してラスタライズを行う。そして並列制御部200は、1ページ目のDLのラスタライズの完了を検知したことに応じて、DLスレッドの生成部203に、DLの格納用メモリ上に確保されたメモリ領域を解放させる。生成されたラスターイメージは、プリンタエンジン108に送られて用紙上に印刷される。
In S407, the
S408において、並列制御部200は、送信対象ページ番号を1つインクリメントすることで、DL送信の対象ページを2ページ目にする。そして処理はS409へ移る。
In step S<b>408, the
一方で、S410以降のページ並列処理について説明する。 On the other hand, the page parallel processing after S410 will be described.
S410において、並列制御部200は、処理が割り当てられていないスレッド(空きスレッド)が無くなるまで、S411〜S413を繰返す。
In S410, the
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
S412において、並列制御部200は、生成対象ページ番号のページのDL生成処理を、ページ並列処理で実行するように、空きスレッドに割り当てる。すなわちDL生成処理を割り当てられたスレッドが、そのページに含まれる各オブジェクトのPDLデータの解釈とその解釈結果からのDL生成を行う。このようにすることで、DL生成処理をページ単位で並列で行うので高速にPDLデータに含まれる複数ページのDLを生成することができる。例えばスレッド1が空きスレッドであれば、スレッド1は、解釈部211および生成部213として機能する。スレッド2が空きスレッドであるときも同様である。なお、並列制御部200は、後述のように、生成部213に対して、DLの格納用メモリ上に1ページのDLデータサイズの最大値分のメモリ領域を確保させる。
In step S412, the
S413において、並列制御部200は、生成対象ページ番号を1つインクリメントすることで、DL生成の対象ページを次のページにする。
In S413, the
以上がループ処理の内容である。 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
S415において、並列制御部200は、送信対象ページ番号のDLの生成が既に完了しているかどうかを、生成されたDLのページ番号と、送信対象ページ番号とに基づいて判定する。すなわちここでは、生成済みのDLが、先頭ページから順番にRIP106に送信(受け渡し)できるものであるかが判定される。この送信対象ページ番号は、RIP106によって今回ラスタライズされるべきページの番号を示していることに他ならない。送信対象ページ番号のDLの生成が既に完了していれば、処理はS416へ進み、そうでなければ処理はS409へ進む。ここでS409へ進む際には、S414で受け付けられた完了通知に含まれるページ番号のDLは、格納先のメモリに保持されたままとなる。しかし、ラスターイメージに変換された状態で保持されるよりは省メモリ効果を得られる。
In S415, the
S416において、並列制御部200は、送信対象ページ番号のDLをRIP106へ送信する。送信されたDLは、RIP106によってラスタライズされる。具体的には、並列制御部200は、これまでに取得した完了通知に含まれている送信対象ページ番号のDLの格納先メモリアドレスをRIP106に通知し、RIP106は、そのメモリアドレスに格納されているDLを取得してラスタライズを行う。そして並列制御部200は、1ページ分のDLのラスタライズの完了を検知したことに応じて、DLスレッドの生成部213に、DLの格納用メモリ上に確保されたそのページのメモリ領域を解放させる。
In S416, the
S417において、並列制御部200は、送信対象ページ番号を1つインクリメントすることで、ページ順に生成されたDLをRIP106へ送信できるようにする。
In step S<b>417, the
以上のS415〜S417では、並列制御部200は、ラスタライズのためにRIP106へ送られるDLのページ順の制御を行う送信制御に相当する。この順序制御では、後続ページ(例えば3ページ目)のDLの生成が、送信すべき順番のページ(先行ページ:例えば2ページ目)のDLの生成よりも先に完了したとしても、3ページ目のDLのRIP106への送信が、直前ページである2ページ目のDLの送信完了まで待機される。すなわち、後続ページのDLのラスタライズを遅らせる。その結果、適切なページ順でDLがラスタライズされてラスターイメージが生成される。ラスターイメージは生成された順にプリンタエンジン108に送られて正しい順序でページが印刷される。
In S415 to S417 described above, the
S409においては、並列制御部200は、PDLデータに含まれる全てのページのDLの生成とRIP106への送信が完了したかを判定し、完了していれば本フローの処理を終了する。そうでなければ処理はS403へ戻る。
In step S409, the
以上の処理により、並列制御部200による、ページ並列処理とパイプライン並列処理との切り替える制御が実施される。
Through the above processing, the
<パイプライン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
S1102において、解釈部201は、生成対象ページ番号のページに含まれる未解釈のオブジェクトのPDLデータを、解釈する。この解釈結果は、ワークメモリ領域に書き出される。
In step S1102, the
S1104において、解釈部201は、S1102で書き出された解釈結果をバッファ204に転送する。この転送は、後述のパイプラインDLスレッドから転送許可通知を受信したことに応じて行われる。転送された解釈結果は、後述の通り、パイプラインDLスレッドによって処理される。
In step S1104, the
S1105において、解釈部201、生成対象ページ番号のページに含まれる全オブジェクトのPDLデータの解釈が完了したか判定する。完了している場合は、処理はS1106へ移行する。そうでなければ、処理はS1102へ戻り、別の未解釈のオブジェクトのPDLデータの解釈が行われる。
In step S1105, the
S1106において、解釈部201は、パイプラインDLスレッドからのDL生成完了通知を待つ。ここで解釈部201は、このDL生成完了通知に含まれるメモリアドレス(後述)を取得する。DL生成完了通知を受信すると、S1107へ進む。
In step S1106, the
S1107において、解釈部201は、パイプラインPDLスレッドともパイプラインDLスレッドとも別のスレッドで実現されている並列制御部200に、取得されたメモリアドレスを含むDL生成完了通知を送信する。また、このDL生成完了通知には、生成されたDLのページ番号も含まれており、S406で受信される。
In step S1107, the
以上の処理が、パイプライン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
S1201において、生成部203は、バッファ204からオブジェクトのPDLデータの解釈結果を取得する。
In step S1201, the
S1202において、生成部203は、S1201で取得された解釈結果からオブジェクトのDLを生成する。この生成されたDLはDLの格納用メモリに記憶されている。またこのとき生成部203は、パイプラインPDLスレッドに転送許可通知を送信する。これにより、バッファ内の解釈結果が処理済みとなってから、次の解釈結果がバッファに上書きされるように制御される。なお、生成部203は、1ページ分のDLの生成を開始する際に、DLの格納用メモリに1ページのDLデータサイズの最大値分のメモリ領域を確保し、そのメモリ領域に生成されたDLを順次記憶していく。また、前述したように、生成部203は、DL生成中において、生成済みのDLのデータサイズが1ページ分のDLデータサイズの最大値を超えるか判定し、越えると判定した場合に、フォールバック処理を行う。
In S1202, the
S1203において、生成部203は、生成対象ページ番号のページに含まれる全オブジェクトのDLの生成が完了したか判定する。完了している場合は、処理はS1204へ移行する。そうでなければ処理はS1201へ戻り、バッファに記憶されている解釈結果を処理する。
In step S1203, the
S1204において、生成部203は、パイプラインPDLスレッドにDL生成完了通知を送信する。このDL生成完了通知は、S1106で受信される。このDL生成完了通知には、生成された1ページ分のDLの格納されているメモリアドレスも含まれている。
In step S1204, the
以上の処理が、パイプライン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
S1301において、解釈部211は、生成対象ページ番号のページに含まれるオブジェクトのPDLデータを解釈し、その解釈結果をワークメモリに書き出す。
In S1301, the
S1302において、生成部213は、ワークメモリに書き出された解釈結果を読み出してオブジェクトのDLを生成する。この生成されたDLはDLの格納用メモリに記憶されている。なお、生成部213は、1ページ分のDLの生成を開始する際に、DLの格納用メモリに1ページのDLデータサイズの最大値分のメモリ領域を確保し、そのメモリ領域に生成されたDLを順次記憶していく。また、前述したように、生成部213は、DL生成中において、生成済みのDLのデータサイズが1ページ分のDLデータサイズの最大値を超えるか判定し、越えると判定した場合に、フォールバック処理を行う。
In S1302, the
S1303において、生成部213は、生成対象ページ番号のページに含まれる全オブジェクトのDLの生成が完了したか判定する。完了している場合は、処理はS1304へ移行し、そうでない場合はS1301へ戻り次のオブジェクトのPDLデータの解釈が行われる。
In step S1303, the
S1304において、生成部213は、DL生成完了通知を、並列制御部200に送信する。このDL生成完了通知には、生成された1ページ分のDLの格納先であるメモリアドレスと、そのDLのページ番号とが含まれる。
In step S1304, the
以上のページ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
例えば、並列制御部200は、PDLデータを先頭から末尾まで順次読みながら、改ページコマンドの総数をカウントする。改ページコマンドはページが区切るので、これによりPDLデータの総ページ数が取得できる。
For example, the
または、並列制御部200は、PDLデータにヘッダ情報があれば、そのヘッダ情報を読みとり、そのヘッダ情報にPDLデータの総ページ数が記載されていれば、その総ページ数を取得する。
Alternatively, if the PDL data has header information, the
または、並列制御部200は、PDLデータのPDL種別を判定し、そのPDL種別に基づいて、総ページ数を判断しても良い。例えばPDL種別がJpegやTIFFなどであれば、単ページの画像であるので、ページ並列をせずにパイプライン並列するのが良い。そのため並列制御部200は、PDL種別がJpegやTIFFなどであれば、総ページ数を1と判断する。
Alternatively, the
そしてS403−1において、並列制御部200は、S402での総ページ数の判断に基づいて、総ページ数が1ページであれば処理をS404へ進め、複数ページであれば処理をS410へ進める。
Then, in S403-1, the
以上のように、単ページの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
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
本発明は、上述の実施形態の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データの所定ページについては、当該ページに含まれるオブジェクトの中間データの生成を前記複数の処理手段で並列に行い、
前記所定ページ以外のページについては、当該ページに含まれるオブジェクトの中間データの生成を、ページごとに別々の前記処理手段で並列に行うことを特徴とする画像形成装置。 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データを受信する受信工程と、
前記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.
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)
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)
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 |
-
2016
- 2016-02-23 JP JP2016032473A patent/JP6748445B2/en active Active
- 2016-04-20 CN CN201610246313.4A patent/CN106095345B/en active Active
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 |