JP2012221256A - Image processing system and image processing method - Google Patents

Image processing system and image processing method Download PDF

Info

Publication number
JP2012221256A
JP2012221256A JP2011086754A JP2011086754A JP2012221256A JP 2012221256 A JP2012221256 A JP 2012221256A JP 2011086754 A JP2011086754 A JP 2011086754A JP 2011086754 A JP2011086754 A JP 2011086754A JP 2012221256 A JP2012221256 A JP 2012221256A
Authority
JP
Japan
Prior art keywords
intermediate data
divided
page
interpretation
parallel
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
JP2011086754A
Other languages
Japanese (ja)
Other versions
JP5767501B2 (en
Inventor
Tatsuya Kikuyama
竜弥 菊山
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 JP2011086754A priority Critical patent/JP5767501B2/en
Publication of JP2012221256A publication Critical patent/JP2012221256A/en
Application granted granted Critical
Publication of JP5767501B2 publication Critical patent/JP5767501B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To parallelly interpret an image forming instruction in a page described in PDL and perform raster image data generation at high speed.SOLUTION: A PDL interpreter divides an image forming instruction in a page of PDL and allows interpretation processing parts to parallelly execute interpretation processing. The interpretation processing parts transform the image forming instruction into an object drawing instruction by using a relative drawing state attribute value, and passes the instruction to a renderer. The renderer parallelly generates intermediate data by a plurality of intermediate data generation parts and then performs coupling processing of the intermediate data. At the point when the coupling processing of the intermediate data ends, raster image generation processing is parallelly executed.

Description

本発明は画像処理装置及び画像処理方法に関し、特に、ページ記述言語で記述されたページ内の画像形成命令を並列に解釈し、画像データを生成する画像処理装置及び画像処理方法に関する。   The present invention relates to an image processing apparatus and an image processing method, and more particularly to an image processing apparatus and an image processing method for generating image data by interpreting image forming instructions in a page described in a page description language in parallel.

ページ記述言語(PDL)で記述されたデータをネットワーク等の通信媒体を介して受信し、専用のインタプリタにより解釈しラスタ画像を形成するRIP処理を行い、電子写真及びインクジェット等のプリンタエンジンを用いて印字出力をするページプリンタが広く知られている。またプリンタドライバ等のホストアプリケーションは、PC内のメモリに実行可能なプログラムとして格納されて、PC内のPDLを解釈して、ラスタ画像を生成するRIP処理を行いプリンタに画像を送信する。   Data described in page description language (PDL) is received via a communication medium such as a network, is interpreted by a dedicated interpreter, RIP processing is performed to form a raster image, and a printer engine such as electrophotography or inkjet is used. A page printer that performs print output is widely known. A host application such as a printer driver is stored as an executable program in a memory in the PC, interprets the PDL in the PC, performs RIP processing for generating a raster image, and transmits the image to the printer.

PDLのRIP処理においては、PDLインタプリタでのソフトウェア処理により解析したデータを、ハードウェア処理もしくはソフトウェア処理によるレンダラに渡す。レンダラはPDLインタプリタから受けとった情報を元に中間データを作成し、複数スキャンライン毎もしくはページ全体のラスタ画像を生成する。上記プリンタ及びPCにおいては、マルチコア及びマルチCPU環境を持つものが多数となっており、RIP処理を並列化して高速に実行することが重要となっている。そこでマルチコア及びマルチCPUでの高速化の為に、RIPシステムでの様々な並列処理方法が考えられている。   In PDL RIP processing, data analyzed by software processing in a PDL interpreter is passed to a renderer by hardware processing or software processing. The renderer creates intermediate data based on information received from the PDL interpreter, and generates a raster image for each of a plurality of scan lines or the entire page. Many printers and PCs have a multi-core and multi-CPU environment, and it is important to execute RIP processing in parallel and at high speed. Therefore, various parallel processing methods in the RIP system have been considered in order to increase the speed of the multi-core and multi-CPU.

例えば特許文献1では、ページ単位でPDLインタプリタ及びレンダラに並列処理させる方法が提案されている。これは複数のページから構成されるPDLデータをページ毎に分割し、PDLの各ページをそれぞれの並列にPDLインタプリタの解釈処理及びレンダラのラスタ画像生成処理を実行することにより、RIPシステムの高速化を実現する。   For example, Patent Document 1 proposes a method of performing parallel processing by a PDL interpreter and a renderer for each page. This speeds up the RIP system by dividing PDL data composed of a plurality of pages into pages and executing PDL interpreter interpretation processing and renderer raster image generation processing in parallel for each PDL page. Is realized.

また特許文献2では、描画オブジェクト単位の並列処理が提案されている。Adobe社のPostScriptやPDF等の一般的なPDLにおいては、グラフィックス、イメージ、テキストと言った複数の描画オブジェクトが重なりといった位置依存性を持った上で定義されている。RIPシステムにおいて、PDLインタプリタがこれらの位置依存性を考慮し、位置依存性のない描画オブジェクト、つまり重なりのない描画オブジェクト毎にグループ化して、レンダリング処理部に描画オブジェクトを渡す。レンダリング処理部もしくは、レンダリング処理の制御部においてグループ化された単位で描画オブジェクト毎の並列レンダリング処理を実施することにより、処理の高速性を実現する提案である。   Patent Document 2 proposes parallel processing in units of drawing objects. In general PDLs such as Adobe PostScript and PDF, a plurality of drawing objects such as graphics, images, and text are defined with positional dependency such as overlapping. In the RIP system, the PDL interpreter takes these position dependencies into consideration and groups the drawing objects having no position dependency, that is, the drawing objects having no overlap, and passes the drawing objects to the rendering processing unit. This is a proposal for realizing high-speed processing by performing parallel rendering processing for each drawing object in units grouped by a rendering processing unit or a rendering processing control unit.

特開2006-159738号公報JP 2006-159738 A 特開平10-040360号公報Japanese Patent Laid-Open No. 10-040360

特許文献1の発明によるページ単位での並列処理では、単一ページのPDLデータに対しては、高速化を実現できない。また処理の重いページが存在すると、そのページを処理するPDLインタプリタ処理の負荷が相対的に高くクリチカルパスとなることから、全体のRIP処理としての高速化が果たせない。また特許文献2の発明は、PDLインタプリタによる解釈処理はシーケンシャルに処理され、位置依存性を前もってPDLインタプリタの解釈処理で解決する必要があり、この処理に負荷が掛かることが予想される。   With the parallel processing in units of pages according to the invention of Patent Document 1, it is not possible to achieve high speed for single-page PDL data. Also, if a page with heavy processing exists, the load on the PDL interpreter processing for processing that page becomes relatively high and a critical path is formed, so that the speed of the entire RIP processing cannot be achieved. In the invention of Patent Document 2, the interpretation processing by the PDL interpreter is processed sequentially, and it is necessary to solve the position dependency by the interpretation processing of the PDL interpreter in advance, and it is expected that this processing will be loaded.

上記課題を解決するために、本発明は以下の構成を有する。すなわち、
ページ記述言語で記述された1ページ分のPDLデータを複数の分割部分に分割する分割手段と、
分割された前記分割部分の各々を対象として、当該分割部分に含まれたページ記述言語の命令を解釈してオブジェクト描画命令に変換する複数の解釈処理部を有する並列解釈手段と、
前記各分割部分について、前記オブジェクト描画命令から中間データを生成する複数の中間データ生成部を有する中間データ生成手段と、
前記各分割部分についての中間データを結合し、1ページ分の中間データを作成する中間データ結合手段と、
結合されたた前記中間データを分割し、前記分割部分ごとに並列してラスタ画像を生成する並列ラスタ画像生成手段とを備える。
In order to solve the above problems, the present invention has the following configuration. That is,
A dividing unit that divides one page of PDL data described in a page description language into a plurality of divided parts;
Parallel interpretation means having a plurality of interpretation processing units for interpreting a page description language instruction included in the divided part and converting it into an object drawing instruction for each of the divided parts,
Intermediate data generation means having a plurality of intermediate data generation units for generating intermediate data from the object drawing command for each divided portion;
Intermediate data combining means for combining the intermediate data for each of the divided parts to create intermediate data for one page;
Parallel raster image generation means for dividing the combined intermediate data and generating a raster image in parallel for each of the divided portions.

あるいは他の観点によれば本発明は、ページ記述言語で記述された1ページ分のPDLデータを複数の分割部分に分割する分割手段と、
分割された前記分割部分の各々を対象として、当該分割部分に含まれたページ記述言語の命令を解釈して、当該命令に対応するオペランドとともにオブジェクト描画の関数を呼び出す複数の解釈処理部を有する並列解釈手段と、
前記各分割部分について、呼び出された前記オブジェクト描画の関数およびオペランドに応じて中間データを生成する複数の中間データ生成部を有する中間データ生成手段と、
前記各分割部分についての中間データを結合し、1ページ分の中間データを作成する中間データ結合手段と、
結合されたた前記中間データを分割し、前記分割部分ごとに並列してラスタ画像を生成する並列ラスタ画像生成手段とを備える。
Alternatively, according to another aspect, the present invention provides dividing means for dividing one page of PDL data described in a page description language into a plurality of divided portions;
A parallel having a plurality of interpretation processing units for interpreting a page description language instruction included in the divided part and calling an object drawing function together with an operand corresponding to the instruction for each of the divided parts. Interpretation means;
Intermediate data generation means having a plurality of intermediate data generation units for generating intermediate data according to the called object drawing function and operand for each divided portion;
Intermediate data combining means for combining the intermediate data for each of the divided parts to create intermediate data for one page;
Parallel raster image generation means for dividing the combined intermediate data and generating a raster image in parallel for each of the divided portions.

本発明によれば、PDLデータの各ページを複数の分割部分に分割し、各分割部分を並列処理することで、RIP処理時間を短縮することができる。特にPDLデータから中間データを生成する工程も並列化していることで、従来に比して一層の高速化が図られている。特に、単一ページからなるPDLデータや、ページ中に多数の画像形成命令がある処理の重いPDLデータのRIP処理時間を大幅に短縮できる。
According to the present invention, it is possible to reduce the RIP processing time by dividing each page of PDL data into a plurality of divided portions and performing parallel processing on the divided portions. In particular, since the process of generating intermediate data from PDL data is also performed in parallel, the speed is further increased as compared with the prior art. In particular, it is possible to greatly reduce the RIP processing time of PDL data consisting of a single page and heavy processing PDL data having a large number of image forming instructions in the page.

本発明のシステム構成の一例を示すシステム構成図。The system configuration figure showing an example of the system configuration of the present invention. 解釈制御の処理フローを説明した図。The figure explaining the processing flow of interpretation control. ページ内の画像形成命令分割を説明した図。The figure explaining the image formation command division | segmentation in a page. 解釈処理部のフロー図。The flowchart of an interpretation process part. 開始位置、終了位置を説明した図。The figure explaining the start position and the end position. 描画状態属性のスタックを説明した図。The figure explaining the stack of a drawing state attribute. オブジェクト描画命令を説明した図。The figure explaining the object drawing command. 中間データ生成部の処理フローを説明した図。The figure explaining the processing flow of the intermediate data generation part. 中間データ概略図。Intermediate data schematic diagram. 中間データ結合部の処理フロー。The processing flow of the intermediate data coupling unit. 描画状態属性スタックの結合を示した図。The figure which showed the coupling | bonding of the drawing state attribute stack. 中間データ結合の例を示した図。The figure which showed the example of the intermediate data coupling | bonding. スキャンライン毎のラスタ画像生成処理を説明した図。The figure explaining the raster image generation process for every scan line.

[実施形態1]
以下、本発明を実施するための最良の形態について、図面を参照して説明する。図1は、本発明の一実施の形態による画像処理装置の構成を示すブロック図である。図1において、本実施例の描画処理装置はPDLインタプリタ11とレンダラ12から構成される。またPDLインタプリタ11は、解釈制御部13、複数の解釈処理部14を含んでおり、レンダラ12は、複数の中間データ生成部15、中間データ結合部16、ディスプレイリストバッファ(DLバッファ)17、ラスタ画像生成制御部18、複数のラスタ画像生成部19を含んでいる。なお画像処理装置は汎用のコンピュータで実現でき、特に図示したようなプログラムをコンピュータで実行することで上記各部を実現できる。この場合、並列に動作する各処理部を複数のプロセッサにより並列実行することが望ましい。プログラムは、HDD等のファイルストレージに保存されており、そのプログラムをメモリ等にロードしてプロセッサにより実行される。これによってPDLインタプリタやレンダラを実現することもできる。なお、並列に動作する各処理部は、2つあるいはそれ以上の複数のプロセッサコアで実現される。さらに各プロセッサコアにより複数のスレッドが並列実行し、各コアが解釈処理部をそれら複数スレッドにより実現することもできる。
[Embodiment 1]
The best mode for carrying out the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing a configuration of an image processing apparatus according to an embodiment of the present invention. In FIG. 1, the drawing processing apparatus according to the present embodiment includes a PDL interpreter 11 and a renderer 12. The PDL interpreter 11 includes an interpretation control unit 13 and a plurality of interpretation processing units 14. The renderer 12 includes a plurality of intermediate data generation units 15, an intermediate data combination unit 16, a display list buffer (DL buffer) 17, a raster. An image generation control unit 18 and a plurality of raster image generation units 19 are included. The image processing apparatus can be realized by a general-purpose computer, and in particular, the above-described units can be realized by executing a program as illustrated in the computer. In this case, it is desirable that the processing units operating in parallel are executed in parallel by a plurality of processors. The program is stored in a file storage such as an HDD, and the program is loaded into a memory or the like and executed by the processor. As a result, a PDL interpreter or renderer can also be realized. Each processing unit operating in parallel is realized by two or more processor cores. Furthermore, a plurality of threads can be executed in parallel by each processor core, and each core can realize an interpretation processing unit by the plurality of threads.

この構成において、PDLインタプリタ11がページ記述言語(PDL)の形式で、すなわちページ記述言語で記述されたPDLデータ付け取る。PDLデータは複数の画像形成命令およびそのオペランドを含む。PDLの代表的なものとして、Adobe社のPostScript(登録商標)やPortable Document Format(PDF)、Microsoft社のXML Paper Specification(XPS)といったものがあるが、入力のPDLとしてはこれに限っていない。   In this configuration, the PDL interpreter 11 takes up PDL data described in a page description language (PDL) format, that is, a page description language. The PDL data includes a plurality of image forming instructions and their operands. Typical PDLs include Adobe's PostScript (registered trademark), Portable Document Format (PDF), and Microsoft's XML Paper Specification (XPS), but the input PDL is not limited to this.

PDLインタプリタの解釈制御部13は、PDLで記述された着目ページを複数の部分に分割して、複数の解釈処理部14にそれぞれの分割された部分に含まれた画像形成命令の解釈処理を並列実行させる。基本、夫々の部分には、複数のオブジェクトが含まれているが、オブジェクトが1つのみ含まれている場合、または含まれていない場合もある。なおこれら分割された部分を分割部分と呼ぶことにする。それぞれの解釈処理部14は解釈した画像形成命令を内部表現形式であるオブジェクト描画命令に変換してレンダラ12に渡す。このとき各解釈処理部14は、解釈開始位置からの相対的な描画状態属性値を使いオブジェクト描画命令を構築する。   The interpretation control unit 13 of the PDL interpreter divides the page of interest described in PDL into a plurality of portions, and the plurality of interpretation processing units 14 perform the interpretation processing of the image forming instructions included in the divided portions in parallel. Let it run. Basic and respective parts include a plurality of objects, but only one object may or may not be included. These divided parts are called divided parts. Each interpretation processing unit 14 converts the interpreted image formation command into an object drawing command which is an internal representation format, and passes it to the renderer 12. At this time, each interpretation processing unit 14 constructs an object drawing command using a relative drawing state attribute value from the interpretation start position.

オブジェクト描画命令の引き渡しは分割部分単位で行ってもよいが、本例では命令単位で行うものとする。このオブジェクト描画命令への変換および引き渡しは、コードを生成してそれを引き渡すという方法で行ってもよいが、レンダラの提供する関数を呼び出すことで実現することもできる。後者の方法であれば、解釈された画像形成命令は、その後の命令の解釈を待たずに中間データへ変換される。なお本実施形態では、前者のようにオブジェクト描画命令に変換してレンダラに引き渡す手順で説明するが、いずれの方法であっても本発明の本質を損ねることはない。   The object drawing command may be delivered in units of divided parts, but in this example, it is assumed to be performed in units of commands. The conversion and delivery to the object drawing command may be performed by a method of generating code and delivering it, but can also be realized by calling a function provided by the renderer. In the latter method, the interpreted image forming command is converted into intermediate data without waiting for the interpretation of the subsequent command. In the present embodiment, the procedure for converting to an object drawing command and transferring it to the renderer will be described as in the former, but the essence of the present invention is not impaired by either method.

ここで解釈開始位置とは、当該解釈処理部の処理対象である分割部分の先頭の、ページ内における位置を指す。描画状態属性値は、たとえばCTM(coordinate transfer matrix)や色空間、色値、線幅等、描画時に参照する種々の値を含む。描画状態属性値は、描画状態属性値スタックに積まれ、スタックポインタが指し示す位置すなわちスタック最上位の描画状態属性値が描画に用いられる。描画状態属性値は、本来、1ページを単位としてその先頭から順次処理されることでページ途中における値が決まる。ところが本実施形態ではページは複数の部分に分割されている。そこで、PDLインタプリタ11によるオブジェクト描画命令の生成時には、各分割部分について描画状態属性値スタックの初期値を暫定的に定めてスタックの操作および描画状態属性値の参照を行っている。「初期値解釈開始位置からの相対的な描画状態属性値」とは、各分割部分において暫定的に定めた描画状態属性値スタックで与えられる描画状態属性値を指す。この暫定的なスタックには、値が確定している属性についてはその値が格納され、未確定の属性についてはその属性値が格納されているはずの当該スタックの階層を示す値が格納される。この値のことを相対的な描画状態属性あるいは相対的に表現された描画状態属性値とも呼ぶ。相対的に表現された描画状態属性値スタックは、各分割部分を統合することでラスタ画像生成処理の前に確定される。   Here, the interpretation start position refers to the position within the page at the beginning of the divided portion that is the processing target of the interpretation processing unit. The drawing state attribute value includes various values that are referred to at the time of drawing such as CTM (coordinate transfer matrix), color space, color value, line width, and the like. The drawing state attribute value is stacked on the drawing state attribute value stack, and the position indicated by the stack pointer, that is, the drawing state attribute value at the top of the stack is used for drawing. The drawing state attribute value is determined in the middle of a page by being sequentially processed from the top in units of one page. However, in this embodiment, the page is divided into a plurality of parts. Therefore, when the object drawing command is generated by the PDL interpreter 11, the initial value of the drawing state attribute value stack is provisionally determined for each divided portion, and the stack operation and the drawing state attribute value are referred to. The “relative drawing state attribute value from the initial value interpretation start position” refers to a drawing state attribute value given by a drawing state attribute value stack provisionally defined in each divided portion. In this temporary stack, the value is stored for the attribute whose value is fixed, and the value indicating the hierarchy of the stack in which the attribute value should be stored is stored for the attribute that is not fixed. . This value is also called a relative drawing state attribute or a relatively expressed drawing state attribute value. The relatively expressed drawing state attribute value stack is determined before the raster image generation process by integrating the divided portions.

オブジェクト描画命令を受け取ったレンダラ12は、複数の中間データ生成部15により、ディスプレイリスト(DL)等の中間データ生成を並列的に行う。このときの生成される中間データは相対的な描画状態属性をもとにしたものであり、DLバッファ17に格納される。さらに中間データ結合部16は、中間データ生成部15が生成したDLバッファ17内の中間データの結合処理を行い、相対的に表現された描画状態属性値の解決処理を実施する。全ての中間データの結合処理が終了した時点で、ラスタ画像生成制御部18がDLバッファ17内の中間データをもとにタイル単位もしくはバンド単位に分割した領域毎に、複数のラスタ画像生成部19にラスタ画像生成を並列実行させる。以上の処理により着目した1ページのラスタ画像データが生成される。   The renderer 12 that has received the object drawing command uses a plurality of intermediate data generation units 15 to generate intermediate data such as a display list (DL) in parallel. The intermediate data generated at this time is based on the relative drawing state attribute and is stored in the DL buffer 17. Further, the intermediate data combining unit 16 performs a process of combining intermediate data in the DL buffer 17 generated by the intermediate data generating unit 15 and performs a process of resolving a relatively expressed drawing state attribute value. At the time when all the intermediate data are combined, the raster image generation control unit 18 uses a plurality of raster image generation units 19 for each area divided into tile units or band units based on the intermediate data in the DL buffer 17. Causes raster image generation to be executed in parallel. One page of raster image data is generated by the above processing.

このようなPDLのページ毎の画像形成命令をラスタ画像に変換する処理をPDLの全てのページに対して繰り返して行い、PDLデータを入力としたラスタ画像生成処理を実現する。   Such a process of converting an image formation command for each page of PDL into a raster image is repeatedly performed for all pages of PDL, thereby realizing a raster image generation process using PDL data as an input.

このように本画像処理装置は、PDLインタプリタ11によるオブジェクト描画命令の生成処理と、レンダラ12による中間データの生成処理との2つのステップから構成される。すなわち、PDLインタプリタ11によるページ内の画像形成命令の並列解釈処理とレンダラ12による並列ラスタ画像生成処理である。以下では、PDLインタプリタ11の並列解釈処理とレンダラ12の並列ラスタ画像生成処理の2つのステップについてそれぞれ説明する。   As described above, the image processing apparatus includes two steps, ie, an object drawing command generation process by the PDL interpreter 11 and an intermediate data generation process by the renderer 12. That is, parallel interpretation processing of image forming instructions in a page by the PDL interpreter 11 and parallel raster image generation processing by the renderer 12. Hereinafter, two steps of the parallel interpretation process of the PDL interpreter 11 and the parallel raster image generation process of the renderer 12 will be described.

<PDLインタプリタ11による処理>
まずPDLインタプリタ11のステップである、解釈制御部13と複数の解釈処理部14の処理の詳細についてそれぞれ図を用いて説明する。
<Processing by the PDL interpreter 11>
First, details of processing of the interpretation control unit 13 and the plurality of interpretation processing units 14 which are steps of the PDL interpreter 11 will be described with reference to the drawings.

<1ページ分のPDLデータの分割処理>
図2は、解釈制御部13の処理フローを表したフロー図である。解釈制御部13はステップS201において、入力PDLデータの読み込みを行う。S201で読み込まれたPDLデータに対して、S202において、ページ構成の解釈を行い、PDLに含まれるページ構成を配列等で表現されるリストを生成する。S203以下では、生成したリストに基づいて各ページごとの解釈処理を行う。なお、PDLで記述された命令を画像形成命令と呼び、オブジェクト描画命令と区別する。
<Division processing of PDL data for one page>
FIG. 2 is a flowchart showing the processing flow of the interpretation control unit 13. In step S201, the interpretation control unit 13 reads input PDL data. In S202, the page configuration is interpreted with respect to the PDL data read in S201, and a list in which the page configuration included in the PDL is expressed by an array or the like is generated. In S203 and subsequent steps, interpretation processing for each page is performed based on the generated list. Note that an instruction written in PDL is called an image formation instruction, and is distinguished from an object drawing instruction.

S203では未処理のページがあるかを判別し、未処理ページがない場合は、PDLデータを入力とした画像生成処理を終了する。一方S203において、未処理ページがある場合には、当該ページを着目ページとしてS204において該当着目ページに含まれるPDLの画像形成命令の取得を行う。ページ内の画像形成命令は、PDLの仕様によっては仕様で決められた圧縮方法で圧縮されている場合があり、その場合S204において解凍処理を行い装置のメモリ等に配置する。S205では、S204で取得したページの分割数を決定する。分割数は、システムのコアやCPUの構成に応じて、静的に決定してもよい。またページの画像形成命令のサイズやそのときのシステムの負荷状況によって動的に決定することもある。例えば、システムが多くのCPU数を持ち、並列性が高い場合は、分割数を多くして解釈処理の並列性を高めるよう分割数を決定する。   In S203, it is determined whether or not there is an unprocessed page. If there is no unprocessed page, the image generation process using PDL data as input is terminated. On the other hand, if there is an unprocessed page in S203, the page is regarded as the page of interest, and an image formation command for the PDL included in the page of interest is acquired in S204. The image formation command in the page may be compressed by the compression method determined by the specification depending on the specification of PDL, and in that case, decompression processing is performed in S204 and placed in the memory of the apparatus. In S205, the number of page divisions acquired in S204 is determined. The number of divisions may be determined statically according to the system core and CPU configuration. Further, it may be determined dynamically depending on the size of the page image formation command and the system load at that time. For example, if the system has a large number of CPUs and parallelism is high, the number of divisions is determined so as to increase the number of divisions and increase the parallelism of interpretation processing.

S206ではS205で決定した分割数に応じたページの分割処理が行われる。ページの分割は、メモリ上に配置された1ページ分の画像形成命令に対して、開始ポイントと終了ポイントの位置を指し示すポインタ等を決めることで表現する。すなわち、本実施形態でいう分割とは、分割点を決定することであるということもできる。ある分割部分の終了ポイントは次の分割部分の開始ポイントでもあるので、開始ポイントと終了ポイントとをそれぞれ決定しなくとも、ページ内の分割位置を決定すればよい。   In S206, page division processing according to the number of divisions determined in S205 is performed. The page division is expressed by determining a pointer or the like indicating the position of the start point and the end point with respect to an image forming command for one page arranged on the memory. That is, it can be said that the division referred to in this embodiment is to determine a division point. Since the end point of a certain divided portion is also the start point of the next divided portion, the division position in the page may be determined without determining the start point and the end point.

図3にPDLとしてPDFを採用した場合に1ページのPDLデータを分割した例を示す。301がページ全体の画像形成命令であり、302がページ全体の分割例である。図3ではページ内に2つの分割点321及び322が定義されている。S206での分割は、画像形成命令を解釈することなしに行われる。1ページのPDLデータのサイズをS205で決定した分割数で割ることにより、一つの分割部分のサイズが求められる。さらに1ページのPDLデータを求めた分割部分のサイズ毎に区切り、ページ内の先頭から何番目の分割部分かを表すインデックス値と、インデックス値に対する開始ポイント及び終了ポイントを決める。ページの先頭にあたる分割部分のインデックス値を通常は1とする。   FIG. 3 shows an example in which one page of PDL data is divided when PDF is adopted as the PDL. 301 is an image forming command for the entire page, and 302 is an example of dividing the entire page. In FIG. 3, two division points 321 and 322 are defined in the page. The division in S206 is performed without interpreting the image formation command. By dividing the size of one page of PDL data by the number of divisions determined in S205, the size of one divided portion is obtained. Further, the PDL data for one page is divided for each size of the obtained divided portion, and an index value indicating the number of divided portions from the head in the page, and a start point and an end point for the index value are determined. The index value of the divided portion corresponding to the head of the page is normally set to 1.

S207においては、S206で分割した全ての分割部分に対する解釈処理部14の起動が完了しているかを確認する。未起動の解釈処理部14がある場合には、S208に進み当該解釈処理部14の起動処理を行い、対応するPSLデータの分割部分の解釈処理を行う。これにより各分割部分は並列に処理される。各解釈処理部14の起動に際して、各解釈処理部14による処理対象の分割部分を示すインデックス値と、開始ポイント及び終了ポイントすなわち分割位置を示すポインタとを各解釈処理部14に渡す。S207において全てのページ内の解釈処理部14の起動が完了していると判定した場合にはS203に戻り、未処理ページがあるかの処理を行う。以降、未処理ページ毎に上記工程を繰り返すことによって、入力されたPDLデータの全てのページに対して、ページを分割し、分割部分ごとの並列解釈処理に供する。   In S207, it is confirmed whether the activation of the interpretation processing unit 14 for all the divided parts divided in S206 has been completed. If there is an unstarted interpretation processing unit 14, the process proceeds to S208, where the interpretation processing unit 14 is started up, and the corresponding PSL data is divided. Thereby, each divided part is processed in parallel. When each interpretation processing unit 14 is activated, an index value indicating a division portion to be processed by each interpretation processing unit 14 and a pointer indicating a start point and an end point, that is, a division position are passed to each interpretation processing unit 14. If it is determined in step S207 that activation of the interpretation processing unit 14 in all pages has been completed, the process returns to step S203 to process whether there is an unprocessed page. Thereafter, by repeating the above process for each unprocessed page, the page is divided for all the pages of the input PDL data, and subjected to parallel interpretation processing for each divided portion.

<命令解釈処理>
図4に複数起動され並列に実行される解釈処理部14のフロー図を示した。起動された解釈処理部14は、S401でグループ開始を表す内部表現であるオブジェクト描画命令のうちグループ開始命令の呼び出しを行う。すなわち、グループ開始命令をこれから出力するオブジェクト描画命令群の先頭の命令として出力し、レンダラ12に入力する。オブジェクト描画命令とは後述する図7に示したようなコードであり、解釈処理部14が生成する内部的なコードである。オブジェクト描画命令は中間データ生成部15が処理可能なものであればよい。このグループ開始命令には、当該解釈処理部により処理される1ページのPDLデータから分割された分割部分のインデックス値が付与される。これにより、レンダラ12は処理対象の分割部分のページ中における位置を判定できる。なお、オブジェクト描画命令を例えばコードとして出力する代わりに、中間データ生成部15が提供する関数を当該関数に与えるオペランドとともに呼び出してもよい。
<Instruction interpretation processing>
FIG. 4 shows a flowchart of the interpretation processing unit 14 that is activated a plurality of times and executed in parallel. In step S401, the activated interpretation processing unit 14 calls a group start command from among the object drawing commands that are internal expressions representing the group start. That is, the group start command is output as the first command of the object drawing command group to be output and is input to the renderer 12. The object drawing command is a code as shown in FIG. 7 described later, and is an internal code generated by the interpretation processing unit 14. Any object drawing command may be used as long as the intermediate data generation unit 15 can process it. This group start command is given an index value of a divided portion divided from one page of PDL data processed by the interpretation processing unit. Thereby, the renderer 12 can determine the position in the page of the division part to be processed. Instead of outputting the object drawing command as, for example, a code, a function provided by the intermediate data generation unit 15 may be called together with an operand given to the function.

解釈処理部14は、S402で描画状態属性スタックの初期化を行う。スタックは本来処理に応じて動的に変更されるので、各分割部分の解釈処理を開始する際のスタックの状態は、その直前の分割部分の処理が終了した時点の状態と等しい。そこで、描画状態属性スタックは解釈処理開始時の初期相対値を示すGS0で初期化される。初期相対値GS0は、インデックス値が1小さい解釈制御部14の描画状態属性スタックに対する相対値を表している。つまり仮にページの先頭から解釈処理を開始したとして、処理が当該分割部分の真の開始ポイントに至った時点における描画状態属性スタックへの相対的なポインタを示している。この分割部分ごとに初期化されたスタックを当該分割部分における初期スタックと呼ぶことにする。これは、直前の分割部分の解釈処理終了時点における描画状態属性スタックの最上位である。なおスタックの最上位は当該スタックのポインタ(あるいはスタックポインタ)で示すものとし、以降S403で画像形成命令毎の解釈が開始される。スタックは解釈処理部14でたとえばローカルなメモリ等に保持される。   In step S402, the interpretation processing unit 14 initializes the drawing state attribute stack. Since the stack is dynamically changed according to the original process, the state of the stack when starting the interpretation processing of each divided portion is equal to the state at the time when the processing of the immediately preceding divided portion is completed. Therefore, the drawing state attribute stack is initialized with GS0 indicating the initial relative value at the start of interpretation processing. The initial relative value GS0 represents a relative value to the drawing state attribute stack of the interpretation control unit 14 whose index value is 1 smaller. That is, if the interpretation process is started from the top of the page, the relative pointer to the drawing state attribute stack at the time when the process reaches the true start point of the divided portion is shown. The stack initialized for each divided portion is referred to as an initial stack in the divided portion. This is the highest level of the drawing state attribute stack at the end of the interpretation processing of the immediately preceding divided portion. It is assumed that the top of the stack is indicated by the pointer (or stack pointer) of the stack, and the interpretation for each image forming instruction is started in S403. The stack is held in the interpretation processing unit 14 in, for example, a local memory.

解釈処理においては、装置のメモリ上に置かれたPDLデータの開始ポイントの参照ポインタから順次画像形成命令の解釈が行われる。この時開始ポイントで参照する文字がPDL仕様で決められた区切り文字でない場合は、区切り文字以降までポインタを移動し、それ以降解釈処理を開始する。区切り文字は例えば画像形成命令を構成するオペレータとオペランドとを区切りあるいはオペランド同士を区切り、あるいはオペレータ同士を区切る。さらにここでの解釈処理は常にPDL仕様における予約語のオペレータと当該オペレータのオペランドとの組を対象とする。オペレータに対するオペランド数はオペレータごとに決まっており、オペランドの数が規定の数と異なる場合には、画像形成命令の途中に開始ポイントがあるものとして、オペレータ終了直後の命令を真の開始ポイントとして、解釈処理を継続する。このようにS403の解釈開始で真の開始ポイントが決定される。オペレータは、たとえばあらかじめ予約された文字列であり、オペレータのコードはそれのみに基づいてオペレータであると判定できる。このために、たとえ色値のようにバイナリで表されるものであっても、オペランドとしては、たとえば数字や文字を示す文字コードで表されてオペレータと区別可能である。   In the interpretation process, the image forming instructions are sequentially interpreted from the reference pointer of the start point of the PDL data placed on the memory of the apparatus. At this time, if the character to be referred to at the start point is not a delimiter character determined by the PDL specification, the pointer is moved after the delimiter character, and interpretation processing is started thereafter. For example, the delimiter character delimits operators and operands constituting the image forming command, delimits operands, or delimits operators. Further, the interpretation processing here always targets a set of a reserved word operator and an operand of the operator in the PDL specification. The number of operands for the operator is determined for each operator, and when the number of operands is different from the prescribed number, it is assumed that there is a start point in the middle of the image formation command, and the command immediately after the operator ends is the true start point. Continue the interpretation process. Thus, the true start point is determined at the start of interpretation in S403. The operator is, for example, a character string reserved in advance, and the operator's code can be determined to be an operator based only on the character string. For this reason, even if it is expressed in binary like a color value, it can be distinguished from the operator by being expressed as a character code indicating a number or a character as an operand, for example.

図5に、ステップS206による分割点と、真の開始ポイントおよび真の終了ポイントの例を示した。分割部分501が当該解釈処理部15に割り与えられた画像形成命令からなる分割部分であり、開始ポイント502でその先頭が示されている。開始ポイント502から文字に順次着目して画像形成命令をパースすることにより、矩形形成命令のオペレータである"re"が当該分割部分における最初のオペレータとして見出される。なお本例では、区切り文字およびオペレータ以外のコードはオペランドとみなされ、またオペランドがオペレータに先行する構文であるとする。そこでオペランドを走査する際には、オペランドの長さを、たとえばバイト単位などで数える。そしてオペレータが見つかったなら、そこまでに数えたオペランドの数が当該オペレータに対して所定のオペランド数と一致するか判定する。たとえば図5の例では、オペレータ"re"に対応するオペランドの数を調べる。オペランドの数は、たとえばオペレータごとにオペランド数が対応付けられた表などから直ちに判明する。オペレータ"re"のオペランドはPDL仕様により4と決まっているのに対して、開始ポイント502からオペレータ"re"までのオペランド数は2である。そのため、開始ポイント502はオペランドの途中を参照しているとして、最初に見つかったオペレータ、本例ではオペレータ"re"、の直後を真の開始ポイント503と決定してその位置を記憶する。同様に終了ポイント504に対してもオペレータを区切りとした真の終了ポイント505が決められ、記憶される。この真の分割点の決定は、互いに隣接する分割部分でも同様に行われるため、真の分割点は各分割部分において一致する。   FIG. 5 shows an example of the division points in step S206 and the true start point and true end point. A divided portion 501 is a divided portion made up of an image formation command assigned to the interpretation processing unit 15, and the start point 502 indicates the beginning thereof. By parsing the image formation command while paying attention to the characters sequentially from the start point 502, "re", which is the operator of the rectangle formation command, is found as the first operator in the divided portion. In this example, it is assumed that codes other than the delimiter and the operator are regarded as operands, and the operand is a syntax preceding the operator. Therefore, when scanning the operand, the length of the operand is counted, for example, in units of bytes. If an operator is found, it is determined whether the number of operands counted so far matches the predetermined number of operands for the operator. For example, in the example of FIG. 5, the number of operands corresponding to the operator “re” is checked. The number of operands is immediately determined from, for example, a table in which the number of operands is associated with each operator. The operand of the operator “re” is determined to be 4 according to the PDL specification, whereas the number of operands from the start point 502 to the operator “re” is 2. Therefore, assuming that the start point 502 refers to the middle of the operand, the true start point 503 is determined immediately after the first found operator, in this example, the operator “re”, and the position is stored. Similarly, for the end point 504, a true end point 505 with the operator as a break is determined and stored. Since the determination of the true division point is performed in the same manner in the divided parts adjacent to each other, the true division point matches in each divided part.

真の分割点が決定されたなら、S404以降では、真の開始ポイントから始めて順次着目した画像形成命令のオペレータ毎に解釈が行われる。ステップS405では、着目した画像形成命令がテキスト、画像、図形といったオブジェクトの描画にかかる命令(この命令を、オブジェクト描画命令と区別するためにオブジェクト描画画像形成命令と呼ぶことにする)であるか否かを判定する。S405で、着目した画像形成命令がオブジェクト描画画像形成命令でないと判定された場合には、その画像形成命令が描画状態属性値の更新であるとして、S406で描画状態属性値の更新を行う。   If the true division point is determined, in S404 and after, interpretation is performed for each operator of the image formation commands focused on starting from the true start point. In step S405, whether the focused image formation command is a command related to drawing of objects such as text, images, and graphics (this command is referred to as an object drawing image formation command to distinguish it from the object drawing command). Determine whether. If it is determined in S405 that the focused image formation command is not an object drawing image formation command, the drawing state attribute value is updated in S406, assuming that the image formation command is an update of the drawing state attribute value.

図6に描画状態属性値のスタックの例を示す。S402で初期化されたスタックは、処理対象としているPDLデータの分割部分の直前の分割部分に属する画像形成命令を実行し終えた時点における描画状態属性値スタックの最上位データへの相対値を示している。なお相対値とは、直前の分割部分を特定可能な情報であればよく、仮の値とよぶこともできる。なおS402で初期化したスタックを当該分割部分における初期スタックと呼ぶことにする。スタックレベル601はGS0で初期化がされたことを表している。値GS0が、当該分割部分の直前の分割部分の描画状態属性値スタックからの連続性を示している。以降の画像形成命令で描画状態属性値の更新があるとその画像形成命令に従い描画状態属性スタックの最上位データが変更される。スタック602は描画状態属性の色空間がpush命令で更新された例であり、さらにスタック603はスタックの最上位データの描画状態属性の線幅値が更新された例である。このように描画状態属性値スタックの値は、画像形成命令により更新が行われる。   FIG. 6 shows an example of a stack of drawing state attribute values. The stack initialized in S402 indicates a relative value to the top data of the drawing state attribute value stack when execution of the image forming command belonging to the divided portion immediately before the divided portion of the PDL data to be processed is completed. ing. The relative value may be information that can identify the immediately preceding divided portion, and may be called a temporary value. The stack initialized in S402 is referred to as an initial stack in the divided part. The stack level 601 indicates that initialization has been performed with GS0. The value GS0 indicates the continuity from the drawing state attribute value stack of the divided part immediately before the divided part. When the drawing state attribute value is updated by a subsequent image forming command, the top data of the drawing state attribute stack is changed according to the image forming command. The stack 602 is an example in which the color space of the drawing state attribute is updated by a push instruction, and the stack 603 is an example in which the line width value of the drawing state attribute of the top data of the stack is updated. Thus, the value of the drawing state attribute value stack is updated by the image forming command.

一方ステップS601で初期化されたスタックに対して2回あるいはそれ以上のpop命令により、当該分割部分における初期スタック以前のスタック値が参照された場合には、スタックはpopできない。そこで符号604にあるように、参照先を相対的に示す表現でスタックを更新する。例えば、当該分割部分における初期スタック601の状態からpop命令が読みだされて実行されると、その内容は、GS0からその一段下を参照する表現(たとえば符号など)GS1に書き換えられる。GS1の添え数[1]は、参照するスタックレベル初期スタックより1つ下であることを示す。さらにpop命令があれば、GS1は更にその下のレベルを示すGS2に書き換えられる。このようにして更新された図6のスタック604の値GS2は、最上位スタックの2段下位のスタックの値への参照となる。当該分割部分における初期スタック601より下のスタックレベルを参照している場合、push命令があった場合には、描画状態属性スタックの上位へ描画状態属性スタックの更新値を積む。スタックレベル605は、push命令によりスタックレベル604の上に色値が更新された描画状態属性が積まれたことを表している。   On the other hand, when the stack value before the initial stack in the divided portion is referred to by the pop instruction twice or more for the stack initialized in step S601, the stack cannot be popped. Therefore, as indicated by reference numeral 604, the stack is updated with an expression that relatively indicates the reference destination. For example, when a pop instruction is read out and executed from the state of the initial stack 601 in the divided portion, the content is rewritten from GS0 to an expression (for example, a code) GS1 that refers to the next stage. The subscript [1] of GS1 indicates that it is one lower than the stack level initial stack to be referred to. If there is a pop instruction, GS1 is further rewritten to GS2 indicating a lower level. The value GS2 of the stack 604 in FIG. 6 updated in this way is a reference to the value of the stack that is two steps lower than the highest stack. When referring to a stack level below the initial stack 601 in the divided portion, if there is a push instruction, the updated value of the drawing state attribute stack is stacked above the drawing state attribute stack. A stack level 605 indicates that a drawing state attribute whose color value is updated is stacked on the stack level 604 by a push instruction.

さて図4に戻ると、S405において着目した画像形成命令がオブジェクト描画画像形成命令であるか否か判定する。オブジェクト描画画像形成命令であった場合は、S407で当該画像形成命令に対応するオブジェクト描画命令を呼び出す。すなわち、フェッチした画像形成命令に対応するオブジェクト描画命令をそのオペランドとともに出力してレンダラ12に引き渡す。この時の描画状態属性値は、描画状態属性スタックの最上位の値を使う。データ605が最上位であった場合には、相対スタック参照であるGS2が色値以外の描画状態属性値となる。次にS408において解釈処理がすでに終了ポイントを超えたかの判別をする。終了ポイントを越えていない場合は、S404に戻り、次の画像形成命令に着目して解釈処理を続行する。S408で既に終了ポイントを越えていた場合には、S409においてグループ終了命令を呼び出す。すなわちグループ終了命令をレンダラ12に引き渡す。その際に、その時点での描画状態属性値スタックレベルをオペランドとして付加する。そして処理対象のPDLデータの分割部分を対象とした解釈処理を終了する。   Returning to FIG. 4, it is determined in step S405 whether or not the image formation command focused on is an object drawing image formation command. If it is an object drawing image formation command, an object drawing command corresponding to the image formation command is called in S407. That is, an object drawing command corresponding to the fetched image forming command is output together with its operand and delivered to the renderer 12. The drawing state attribute value at this time uses the highest value of the drawing state attribute stack. If the data 605 is at the top, GS2, which is a relative stack reference, becomes a drawing state attribute value other than the color value. In step S408, it is determined whether the interpretation process has already exceeded the end point. If the end point has not been exceeded, the process returns to S404, and the interpretation process is continued by paying attention to the next image formation command. If the end point has already been exceeded in S408, a group end instruction is called in S409. That is, the group end instruction is delivered to the renderer 12. At that time, the drawing state attribute value stack level at that time is added as an operand. Then, the interpretation processing for the divided portion of the PDL data to be processed is finished.

図7に解釈処理部14の一連のオブジェクト描画命令呼び出しの例を示した。符号701が解釈開始時に呼び出すグループ開始命令である。符号702は図形描画を行うオブジェクト描画命令であり、図7ではCTMおよび色値については相対的な値GS0がレンダラ12に引き渡されている。しかし線幅及び色空間については、この命令の解釈時に値が定まっており、その値が引き渡されている。さらに符号703は解釈終了時のグループ終了命令であり、解釈処理終了時の描画状態属性値スタック(図7ではGS0−GS3)が付加されている。このように解釈処理部14は終了ポイント後のオペレータの区切りまで解釈処理を行い、レンダラ12に対するオブジェクト描画命令呼び出しを相対的な描画状態属性値により実現する。   FIG. 7 shows an example of a series of object drawing command calls of the interpretation processing unit 14. Reference numeral 701 denotes a group start command that is called when interpretation starts. Reference numeral 702 denotes an object drawing command for drawing graphics. In FIG. 7, relative values GS0 are passed to the renderer 12 for CTM and color values. However, values for line width and color space are determined at the time of interpretation of this command, and the values are handed over. Further, reference numeral 703 denotes a group end command at the end of interpretation, and a drawing state attribute value stack (GS0-GS3 in FIG. 7) at the end of interpretation processing is added. In this way, the interpretation processing unit 14 performs interpretation processing up to the operator break after the end point, and implements an object drawing command call to the renderer 12 based on relative drawing state attribute values.

<レンダラ12の処理>
続いてレンダラ12のステップについて説明する。図8に並列処理される複数の中間データ生成部15のうちのひとつによる処理フロー図を示す。なお図8は解釈処理部11からオブジェクト描画命令がグループ開始命令で始まりグループ終了命令で終わることを前提としているが、まずオブジェクト描画命令の種類を判定し、その種類に応じた処理に分岐するように構成してもよい。その場合には、オブジェクト描画命令が入力される都度、中間データ生成部15は命令の種類に応じた処理を実行する。
<Processing of renderer 12>
Next, the steps of the renderer 12 will be described. FIG. 8 shows a processing flow diagram by one of the plurality of intermediate data generation units 15 processed in parallel. FIG. 8 assumes that the object drawing command from the interpretation processing unit 11 starts with a group start command and ends with a group end command. First, the type of the object drawing command is determined, and the process branches to processing according to the type. You may comprise. In that case, every time an object drawing command is input, the intermediate data generation unit 15 executes processing according to the type of the command.

図8において、起動された中間データ生成部15は、S801において、対応する解釈処理部14からまずグループ開始命令を受け取り、Display List等の中間データ生成処理を開始する。S802でDLバッファ17に中間データの領域(DLバッファ17)を確保し、S801のグループ開始命令に付加されたインデックス値を中間データに与える。すなわち、DLバッファ17にインデックス値を書き込む。S803においては解釈処理部14からオブジェクト描画命令を受け取る。S804において、S803で受け取ったオブジェクト描画命令がグループ終了命令かを判別する。オブジェクト描画命令がグループ終了命令でない場合は、図形、画像、テキスト等を描画するためのオブジェクト描画命令であるとして、S805でDLバッファ17の中間データにオブジェクトを追加する。図9に中間データの概略図を示した。中間データ901は、スキャンライン902を基としたリストにより構成される。図形、画像、テキストといった各オブジェクトは、輪郭を意味するエッジリスト903により表現され、各エッジは、該当するスキャンラインリスト902にぶら下がる。さらに各エッジリストは、そのオブジェクトの塗り色や線幅等の描画属性904をもっている。ここで中間データ生成部15は、解釈処理部14が相対的な描画状態属性を指定した場合は、その相対値によりDLバッファ17内の中間データのエッジリスト903及び描画属性904を生成する。ここで座標移動を示す描画状態属性値(たとえばCTM)については、相対的な描画状態属性が原点移動であるとして、中間データの生成を行う。これにより中間データ901は、中間データ生成開始時を基とした相対スキャンラインに対するリストとなる。S805で生成済みの中間データに対するオブジェクトの追加が行われると、S803に戻りオブジェクト描画命令の受信を繰り返す。S804においてオブジェクト描画命令がグループ終了命令であった場合は、S806でグループ終了命令に付加されている描画状態属性値スタックの配列をDLバッファ17内に格納し、S807で中間データ結合部16に終了を通知し、中間データ生成部15の処理を終了する。   In FIG. 8, the activated intermediate data generation unit 15 first receives a group start instruction from the corresponding interpretation processing unit 14 in S801, and starts an intermediate data generation process such as Display List. In S802, an intermediate data area (DL buffer 17) is secured in the DL buffer 17, and the index value added to the group start instruction in S801 is given to the intermediate data. That is, the index value is written in the DL buffer 17. In step S803, an object drawing command is received from the interpretation processing unit 14. In step S804, it is determined whether the object drawing command received in step S803 is a group end command. If the object drawing command is not a group end command, an object is added to the intermediate data in the DL buffer 17 in step S805 as an object drawing command for drawing graphics, images, text, and the like. FIG. 9 shows a schematic diagram of the intermediate data. The intermediate data 901 is configured by a list based on the scan line 902. Each object such as a graphic, an image, and a text is represented by an edge list 903 that means a contour, and each edge hangs from a corresponding scan line list 902. Furthermore, each edge list has a drawing attribute 904 such as a paint color and a line width of the object. Here, when the interpretation processing unit 14 designates a relative drawing state attribute, the intermediate data generation unit 15 generates an edge list 903 and a drawing attribute 904 of intermediate data in the DL buffer 17 based on the relative values. Here, for drawing state attribute values (for example, CTM) indicating coordinate movement, intermediate data is generated assuming that the relative drawing state attribute is origin movement. As a result, the intermediate data 901 becomes a list with respect to the relative scan lines based on the start of the intermediate data generation. When an object is added to the intermediate data already generated in S805, the process returns to S803 and the reception of the object drawing command is repeated. If the object drawing instruction is a group end instruction in S804, the drawing state attribute value stack array added to the group end instruction is stored in the DL buffer 17 in S806, and the intermediate data combining unit 16 ends in S807. And the process of the intermediate data generation unit 15 is terminated.

<中間データ結合処理>
中間データ結合部16の処理フローを図10に示す。中間データ結合処理は、1ページを分割した各分割部分について生成された中間データをリンクして、確定していない描画状態属性値を確定する処理である。なお或るインデックス値に関連付けて生成された中間データを、そのインデックス値の中間データと呼ぶ。
<Intermediate data join processing>
A processing flow of the intermediate data combining unit 16 is shown in FIG. The intermediate data combining process is a process of linking the intermediate data generated for each divided part obtained by dividing one page to determine an undefined drawing state attribute value. Note that intermediate data generated in association with a certain index value is called intermediate data of that index value.

S1001において結合する中間データのインデックス値を初期化する。初期値はPDLデータを分割した際の初期値であり通常1とする。中間データ結合部16は、S1002で、S1001で初期化したインデックス値の中間データの生成処理終了を待つ。S1003でインデックス値をインクリメントし、そのインデックス値に該当する中間データ生成処理終了を待つ。S1004で現在のインデックス値の中間データ中の描画状態属性値スタックとS1002の中間データの描画状態属性値スタックとの結合処理を行う。描画状態属性値スタックの結合処理の例を図11に示した。スタック1101が結合前の描画状態属性値スタックであり確定されていない値を含む。スタック1102が結合対象である描画状態属性値スタックであり、それ以前のインデックスを持つスタックと既に結合されている。先頭すなわちインデックス値が1であれば結合するまでもなく確定している。スタック1103は結合後の描画状態属性値スタックである。なお「結合対象」と「結合前」とはインデックス値で特定できる。結合される分割部分は互いに隣接していることから、インデックス値は連続しており、インデックス値が小さい方の分割部分を結合対象、大きい方を結合前と定義することもできる。   In S1001, the index value of the intermediate data to be combined is initialized. The initial value is an initial value when the PDL data is divided, and is normally set to 1. In step S <b> 1002, the intermediate data combining unit 16 waits for completion of the intermediate data generation process for the index value initialized in step S <b> 1001. In S1003, the index value is incremented, and the end of the intermediate data generation process corresponding to the index value is awaited. In S1004, the drawing state attribute value stack in the intermediate data of the current index value is combined with the drawing state attribute value stack of the intermediate data in S1002. An example of the rendering state attribute value stack combining process is shown in FIG. The stack 1101 is a drawing state attribute value stack before combining and includes an undefined value. The stack 1102 is a drawing state attribute value stack to be combined, and is already combined with a stack having an index before that. If the head, that is, the index value is 1, it is determined without combining. A stack 1103 is a combined drawing state attribute value stack. The “joining target” and “before joining” can be specified by index values. Since the divided parts to be combined are adjacent to each other, the index values are continuous, and the divided part having the smaller index value can be defined as the object to be combined, and the larger one can be defined as being before combining.

結合対象描画状態値スタック1102における最下層スタック配列は、結合前描画状態属性値スタック1101の最上位を示すGS0であるため、GS0は結合前描画状態スタック1101の最上位のスタック配列1104で置き換えられ、結合がされる。以降、結合対象描画状態属性値スタック1102に上位スタック配列にあるGS0の属性値を全て結合前描画状態属性値スタックの参照相対値である最上位の値での置き換えが行われる。例えば、結合前描画状態属性値スタックの2段目の線幅のGS0は、結合前描画状態属性値スタック最上位の値4で置き換えられる。そして全ての相対値が置き換えられた時点で、結合後の描画状態属性値スタック1103を得ることができる。このS1004における描画状態属性スタックの結合において、結合後の描画状態属性スタックのGS0に相当する相対スタック開始位置1105を保持しておく。この例ではGS0のみを示したが、それより下のレベルを参照する場合も同様に置き換えが行われる。   Since the lowest layer stack array in the drawing state value stack 1102 to be combined is GS0 indicating the top of the drawing state attribute value stack 1101 before combining, GS0 is replaced with the top stack array 1104 of the drawing state stack 1101 before combining. , The bond is made. Thereafter, all the attribute values of GS0 in the upper stack array in the combining target drawing state attribute value stack 1102 are replaced with the highest value that is the reference relative value of the drawing state attribute value stack before combining. For example, GS0 of the second line width of the drawing state attribute value stack before combination is replaced with the value 4 at the top of the drawing state attribute value stack before combination. When all the relative values are replaced, the combined drawing state attribute value stack 1103 can be obtained. In the combination of drawing state attribute stacks in S1004, a relative stack start position 1105 corresponding to GS0 of the combined drawing state attribute stack is held. In this example, only GS0 is shown, but the replacement is performed in the same way when referring to a lower level.

S1005ではS1004で結合した描画状態スタックを基にして中間データ中の相対描画状態属性値の置き換え処理を行う。相対値で記載された描画状態属性値は、図11のスタック1103を参照して置換され、置き換え後の中間データを得る。中間データ中の相対値が記載された描画状態属性値は、相対スタック開始位置1105からの相対で置き換え後の値が決定される。例えばGS0は相対スタック開始位置の値を示し、GS2は相対スタック開始位置から2段下位の値での置き換えとなる。   In step S1005, based on the drawing state stack combined in step S1004, a process for replacing the relative drawing state attribute value in the intermediate data is performed. The drawing state attribute value described as a relative value is replaced with reference to the stack 1103 in FIG. 11 to obtain intermediate data after replacement. As the drawing state attribute value in which the relative value in the intermediate data is described, the value after replacement is determined relative to the relative stack start position 1105. For example, GS0 indicates the value of the relative stack start position, and GS2 is replaced with a value two steps lower than the relative stack start position.

置き換え後の中間データは、座標移動に関する描画状態属性値の置き換えもされたことによりページに対する絶対的な座標が求まる。つまり相対的な位置で作成された中間データに対して、移動を表す確定した描画状態属性値のCTMをかけることで移動量が算出できる。S1006において、結合対象である中間データに対する移動量を加味して、結合対象である中間データと結合前中間データとの結合処理を行う。図12に中間データの結合処理の例を示す。1201は結合前の中間データである。一般的にPDLにおける重なりといった位置依存性は、各オブジェクトの画像形成命令順に配置される。つまり先に定義されたオブジェクトと、後から定義されたオブジェクトが重なりを持つ場合は、後から定義されたオブジェクトが上位に配置される。定義の後先は記述の順できまるから、インデックス値が小さいものすなわち「結合対象」の中間データの方が「結合前」の中間データよりも先に定義されていることになる。そのため、結合後の中間データ1203は、S1005で置き換えられた結合対象の中間データ1202を、結合前の中間データ1201の各スキャンラインをベースにしたエッジリストの最後尾に追加することで結合を実現できる。中間データ1203は結合後の中間データを表している。S1007では、S1006で結合対象であった中間データがページの最終中間データかの判定をする。最後の中間データであった場合には、S1008に進み、ラスタ画像制御部18にラスタ生成開始の命令を送り、中間データ結合処理を終了する。S1007で最後の中間データでなかった場合には、S1003に戻って中間データ結合をページ全体の結合処理が終了するまで繰り返す。   As for the intermediate data after the replacement, the absolute coordinates for the page can be obtained by replacing the drawing state attribute value related to the coordinate movement. That is, the movement amount can be calculated by multiplying the intermediate data created at the relative position by the CTM of the determined drawing state attribute value indicating movement. In S1006, the combination processing of the intermediate data to be combined with the intermediate data before combining is performed in consideration of the movement amount for the intermediate data to be combined. FIG. 12 shows an example of the intermediate data combining process. 1201 is intermediate data before combining. In general, position dependency such as overlap in PDL is arranged in the order of image formation commands of each object. That is, when an object defined earlier and an object defined later have an overlap, the object defined later is placed at a higher level. Since the definition is followed by the description order, the intermediate data having a smaller index value, that is, the intermediate data “to be combined” is defined before the intermediate data “before combining”. Therefore, the intermediate data 1203 after combining is realized by adding the intermediate data 1202 to be combined replaced in S1005 to the end of the edge list based on each scan line of the intermediate data 1201 before combining. it can. Intermediate data 1203 represents the intermediate data after combination. In S1007, it is determined whether the intermediate data to be combined in S1006 is the final intermediate data of the page. If it is the last intermediate data, the process proceeds to S1008, a raster generation start command is sent to the raster image control unit 18, and the intermediate data combining process is terminated. If it is not the last intermediate data in S1007, the process returns to S1003 and the intermediate data combination is repeated until the entire page combination process is completed.

<ラスタ画像生成処理>
以降でレンダラ12におけるラスタ画像生成の処理について、ラスタ画像制御部18と複数並列処理されるラスタ画像生成部19の詳細を説明する。ラスタ画像制御部18は、中間データ結合部16でページ単位の中間データ生成が終了すると、ラスタ画像の生成を開始する。まずラスタ画像制御部は、生成されるページ全体に対する分割数を決める。一般的にラスタ生成の分割については、複数スキャンライン毎もしくはページの左上を原点として、x軸y軸両方向に対して分割するといったタイル単位の領域に分けての並列ラスタ画像生成が行われる。複数スキャンライン単位で並列ラスタ生成する場合は、生成するラスタ画像の解像度とページのサイズから、ページ全体に要するスキャンライン数を得る。ページ全体でスキャンラインが7000で、各ラスタ画像生成部19が処理するスキャンライン数を50とすると分割数は140となる。ラスタ画像制御部18は、所望のラスタ画像を生成するために、ラスタ画像生成部19を起動する。ラスタ画像生成部19は、DLバッファ17に格納されている中間データの読み込みを行う。このときラスタ画像生成部19が生成対象とするスキャンラインに必要なスキャンライン分の中間データを読み込む。ラスタ画像の生成は、各スキャンライン毎にエッジ、塗り色、重なりの解決により実行される。図13に各スキャンライン生成の例を示した。スキャンライン1301が着目するスキャンラインである。スキャンライン1301において、x軸方向にエッジ有無を調べる。スキャンライン1301上には、図形1302、画像オブジェクト1303のエッジがある。
<Raster image generation processing>
Hereinafter, the raster image generation processing in the renderer 12 will be described in detail with respect to the raster image generation unit 19 that is processed in parallel with the raster image control unit 18. The raster image control unit 18 starts generating the raster image when the intermediate data combining unit 16 finishes generating the intermediate data for each page. First, the raster image control unit determines the number of divisions for the entire generated page. In general, for raster generation division, parallel raster image generation is performed by dividing into regions of tile units, such as division in both x-axis and y-axis directions, with each scan line or the upper left of the page as the origin. When parallel raster generation is performed in units of a plurality of scan lines, the number of scan lines required for the entire page is obtained from the resolution of the raster image to be generated and the page size. If the entire page has 7000 scan lines and the number of scan lines processed by each raster image generation unit 19 is 50, the number of divisions is 140. The raster image control unit 18 activates a raster image generation unit 19 in order to generate a desired raster image. The raster image generation unit 19 reads intermediate data stored in the DL buffer 17. At this time, the raster image generation unit 19 reads the intermediate data for the scan line necessary for the scan line to be generated. The raster image is generated by resolving the edge, paint color, and overlap for each scan line. FIG. 13 shows an example of generating each scan line. A scan line 1301 is a scan line of interest. In the scan line 1301, the presence / absence of an edge in the x-axis direction is checked. On the scan line 1301, there are edges of a graphic 1302 and an image object 1303.

領域1304及び1307にはオブジェクトが存在しない為、背景色で塗られる。領域1305は図形オブジェクト1302が定義されている領域であり、この図形オブジェクトの塗り色で各ピクセルの色が決められる。また領域1306は図形オブジェクト1302とその上位に透明度を持った画像オブジェクト1303とが重複した領域である。この領域は、各ピクセルに対して、図形オブジェクトの塗り色と画像の各ピクセルの色値、さらに透明度を使用した合成結果により、最終的なピクセル値を得る。この合成方法については、各PDL仕様で定義されたものであり、PDFではブレンドモードとして様々な合成方法が定義されている。このようなスキャンライン中の各ピクセルの値を順次決めることによってスキャンライン毎のラスタ画像を得る。これを全てのスキャンラインで実施することによって、所望のスキャンライン数のラスタ画像を得ることができる。このようなラスタ画像生成処理を各ラスタ画像生成部19が並列動作することでページ全体のラスタ画像を出力する。   Since there are no objects in the areas 1304 and 1307, they are painted in the background color. An area 1305 is an area where a graphic object 1302 is defined, and the color of each pixel is determined by the paint color of the graphic object. An area 1306 is an area where the graphic object 1302 and the image object 1303 having transparency above it overlap. In this region, a final pixel value is obtained for each pixel by a composition result using the fill color of the graphic object, the color value of each pixel of the image, and the transparency. This synthesis method is defined in each PDL specification, and various synthesis methods are defined as blend modes in PDF. A raster image for each scan line is obtained by sequentially determining the value of each pixel in such a scan line. By performing this operation for all the scan lines, a raster image having a desired number of scan lines can be obtained. The raster image generation unit 19 operates in parallel with such a raster image generation process to output a raster image of the entire page.

上記実施形態によれば、PDLを入力としてラスタ画像生成を行う画像処理装置において、PDLインタプリタがPDLの各ページ内の画像形成命令の並列解釈をおこない、レンダラにおける中間データ生成及びラスタ画像生成に対しても並列処理を実行させる。これによりマルチCPU及びマルチコア環境において、RIP処理時間を短縮することができる。また特に、単一ページからなるPDLやページ中に多数の画像形成命令がある処理の重い特定ページが存在するPDLのRIP処理時間を大幅に短縮できる。   According to the above embodiment, in an image processing apparatus that generates a raster image using PDL as an input, the PDL interpreter performs parallel interpretation of image forming instructions in each page of the PDL, and performs intermediate data generation and raster image generation in the renderer. Even in parallel. As a result, the RIP processing time can be shortened in a multi-CPU and multi-core environment. In particular, it is possible to greatly reduce the RIP processing time of a PDL consisting of a single page or a PDL in which a specific page with a heavy processing having a large number of image forming instructions exists in the page.

[変形例1]
実施例で説明したPDLインタプリタ11の処理は、ページ毎の処理をシーケンシャルに処理していた。PDL全体の処理は、ページ単位での高速化がされていたが、PDL全体のラスタ生成の高速化は考慮されていかった。そこで解釈制御部13がページ分割も同時に行い、それぞれのページで並列処理することで、さらに並列性を増し、高速にラスタ画像生成を行うことができる。
[Modification 1]
In the processing of the PDL interpreter 11 described in the embodiment, the processing for each page is processed sequentially. The processing of the entire PDL has been speeded up on a page-by-page basis, but speeding up of raster generation of the entire PDL has not been considered. Therefore, the interpretation control unit 13 also performs page division at the same time and performs parallel processing on each page, thereby further increasing parallelism and generating a raster image at high speed.

[変形例2]
実施例で説明した解釈制御部13のページ毎の画像形成命令の分割は、画像形成命令のサイズに対して、分割数で均等に分割していた。そのため中間データ結合部16において、所望の中間データ生成部15の処理終了待ちが多発することが考えられる。そこで、解釈制御部13において分割数で均等に分割するのではなく、分割するサイズはページの画像形成命令の開始に近い部分をより小さいサイズに分割することで、中間データ結合部16での待ちの発生を抑えることが可能となる。
[Modification 2]
The division of the image forming command for each page of the interpretation control unit 13 described in the embodiment is equally divided by the number of divisions with respect to the size of the image forming command. For this reason, it may be considered that the intermediate data combining unit 16 frequently waits for completion of processing of the desired intermediate data generating unit 15. Therefore, the interpretation control unit 13 does not divide evenly according to the number of divisions, but rather divides the portion of the page close to the start of the image formation command into smaller sizes, thereby waiting for the intermediate data combining unit 16 to wait. Can be suppressed.

[変形例3]
実施例で説明した中間データ結合部16の結合処理は、中間データに対してインデックス値の小さいものから順次結合処理を行っていた。そのため、分割した画像形成命令が複雑である等の理由で特定の中間データ生成が遅い場合、その処理の終了待ちが発生する。そこで中間データの結合処理を、中間データ生成部15の処理が終わったもので、インデックス値が隣り合う中間データの結合を行っていくことで、待ち時間は短くなり、より高速な中間データ結合生成が可能となる。
[Modification 3]
In the joining process of the intermediate data joining unit 16 described in the embodiment, the joining process is sequentially performed on the intermediate data from the smallest index value. For this reason, if the generation of specific intermediate data is slow because the divided image formation command is complicated, a waiting for completion of the processing occurs. Therefore, the intermediate data join processing is completed after the intermediate data generation unit 15 finishes. By combining the intermediate data having the adjacent index values, the waiting time is shortened and the intermediate data join generation is performed at higher speed. Is possible.

[変形例4]
最初の実施形態ではページの分割は適当に行った後、各分割部分をパースして命令の区切り目を確定していた。これに対して、注目した1ページ分のPDLを分割する処理は、分割位置の確定も含めて解釈制御部13が一元的に行うように構成することもできる。分割位置決定後の処理は上記実施形態と同様である。
[Modification 4]
In the first embodiment, after dividing the page appropriately, each divided part is parsed to determine the instruction break. On the other hand, the process of dividing the PDL for one page of interest can be configured so that the interpretation control unit 13 performs the processing in a unified manner including the determination of the division position. The processing after the division position determination is the same as that in the above embodiment.

[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
[Other Examples]
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.

Claims (11)

ページ記述言語で記述された1ページ分のPDLデータを複数の分割部分に分割する分割手段と、
分割された前記分割部分の各々を対象として、当該分割部分に含まれたページ記述言語の命令を解釈してオブジェクト描画命令に変換する複数の解釈処理部を有する並列解釈手段と、
前記分割部分の各々について、前記オブジェクト描画命令から中間データを生成する複数の中間データ生成部を有する中間データ生成手段と、
前記分割部分の各々についての中間データを結合し、1ページ分の中間データを作成する中間データ結合手段と、
結合された前記中間データを分割し、分割した部分ごとに並列してラスタ画像を生成する並列ラスタ画像生成手段と
を備えることを特徴とする画像処理装置。
A dividing unit that divides one page of PDL data described in a page description language into a plurality of divided parts;
Parallel interpretation means having a plurality of interpretation processing units for interpreting a page description language instruction included in the divided part and converting it into an object drawing instruction for each of the divided parts,
Intermediate data generation means having a plurality of intermediate data generation units for generating intermediate data from the object drawing command for each of the divided portions;
Intermediate data combining means for combining intermediate data for each of the divided parts to create intermediate data for one page;
An image processing apparatus comprising: a parallel raster image generating unit configured to divide the combined intermediate data and generate a raster image in parallel for each divided part.
前記解釈処理部の各々は、当該解釈処理部が対象とする分割部分より前の分割部分で定義される描画状態属性値を参照する場合、該描画状態属性値に参照先を示す仮の描画状態属性値を割り当てて前記オブジェクト描画命令に変換し、
前記中間データ結合手段は、前記分割部分の各々についての中間データを結合し、前記分割部分について割り当てられた前記仮の描画状態属性値を参照先の描画状態属性値で置換し、1ページ分の中間データを作成することを特徴とする請求項1記載の画像処理装置。
When each of the interpretation processing units refers to a drawing state attribute value defined in a divided part before the divided part targeted by the interpretation processing unit, a temporary drawing state indicating a reference destination in the drawing state attribute value Assign an attribute value and convert it to the object drawing command,
The intermediate data combining means combines intermediate data for each of the divided portions, replaces the temporary drawing state attribute value assigned to the divided portion with a drawing state attribute value of a reference destination, 2. The image processing apparatus according to claim 1, wherein intermediate image data is created.
前記中間データ結合手段は、前記中間データ生成手段によって生成した複数の分割部分に係る中間データを、前記分割部分のページ内における順に結合することを特徴とする請求項1または2記載の画像処理装置。   3. The image processing apparatus according to claim 1, wherein the intermediate data combining unit combines the intermediate data related to the plurality of divided portions generated by the intermediate data generating unit in order within the page of the divided portion. . 前記中間データ結合手段は、前記中間データ生成手段によって生成した複数の分割部分に係る中間データを、前記分割部分のページ内における順によらず、隣り合う分割部分に係る中間データの結合を繰り返すことで1ページ分の中間データを結合することを特徴とする請求項1乃至3のいずれか一項に記載の画像処理装置。   The intermediate data combining means repeats combining intermediate data related to a plurality of divided portions generated by the intermediate data generating means, regardless of the order of the divided portions in the page, by combining intermediate data related to adjacent divided portions. The image processing apparatus according to claim 1, wherein intermediate data for one page is combined. 前記並列解釈手段は、前記分割部分の分割位置を、前記PDLデータの画像形成命令の区切りに合わせて移動することを特徴とする請求項1乃至4のいずれか一項に記載の画像処理装置。   5. The image processing apparatus according to claim 1, wherein the parallel interpretation unit moves a division position of the division part in accordance with a division of an image formation command of the PDL data. ページ記述言語で記述された1ページ分のPDLデータを複数の分割部分に分割する分割手段と、
分割された前記分割部分の各々を対象として、当該分割部分に含まれたページ記述言語の命令を解釈してオブジェクト描画命令に変換する複数の解釈処理部を有する並列解釈手段と、
前記分割部分の各々について、前記オブジェクト描画命令から中間データを生成する複数の中間データ生成部を有する中間データ生成手段と、
前記分割部分の各々についての中間データを結合し、1ページ分の中間データを作成する中間データ結合手段と、
結合された前記中間データを分割し、分割した部分ごとに並列してラスタ画像を生成する並列ラスタ画像生成手段と
してコンピュータを機能させるためのプログラム。
A dividing unit that divides one page of PDL data described in a page description language into a plurality of divided parts;
Parallel interpretation means having a plurality of interpretation processing units for interpreting a page description language instruction included in the divided part and converting it into an object drawing instruction for each of the divided parts,
Intermediate data generation means having a plurality of intermediate data generation units for generating intermediate data from the object drawing command for each of the divided portions;
Intermediate data combining means for combining intermediate data for each of the divided parts to create intermediate data for one page;
A program for causing a computer to function as parallel raster image generation means for dividing the combined intermediate data and generating a raster image in parallel for each divided portion.
前記解釈処理部の各々は、当該解釈処理部が対象とする分割部分より前の分割部分で定義される描画状態属性値を参照する場合、該描画状態属性値に参照先を示す仮の描画状態属性値を割り当てて前記オブジェクト描画命令に変換し、
前記中間データ結合手段は、前記分割部分の各々についての中間データを結合し、前記分割部分について割り当てられた前記仮の描画状態属性値を参照先の描画状態属性値で置換し、1ページ分の中間データを作成することを特徴とする請求項6記載のプログラム。
When each of the interpretation processing units refers to a drawing state attribute value defined in a divided part before the divided part targeted by the interpretation processing unit, a temporary drawing state indicating a reference destination in the drawing state attribute value Assign an attribute value and convert it to the object drawing command,
The intermediate data combining means combines intermediate data for each of the divided portions, replaces the temporary drawing state attribute value assigned to the divided portion with a drawing state attribute value of a reference destination, The program according to claim 6, wherein intermediate data is created.
前記複数の解釈処理部および前記複数の中間データ生成部として、前記コンピュータの有する複数のプロセッサのそれぞれを機能させることを特徴とする請求項6または7に記載のプログラム。   The program according to claim 6 or 7, wherein each of a plurality of processors of the computer is caused to function as the plurality of interpretation processing units and the plurality of intermediate data generation units. 画像処理装置の分割手段が、ページ記述言語で記述された1ページ分のPDLデータを複数の分割部分に分割する分割工程と、
画像処理装置の並列解釈手段が、分割された前記分割部分の各々を対象として、並列に、当該分割部分に含まれたページ記述言語の命令を解釈してオブジェクト描画命令に変換する並列解釈工程と、
画像処理装置の中間データ生成手段が、前記分割部分の各々について、並列に、前記オブジェクト描画命令から中間データを生成する中間データ生成工程と、
画像処理装置の中間データ結合手段が、前記分割部分の各々についての中間データを結合し、1ページ分の中間データを作成する中間データ結合工程と、
画像処理装置の並列ラスタ画像生成手段が、結合された前記中間データを分割し、分割した部分ごとに並列してラスタ画像を生成する並列ラスタ画像生成工程と
を有することを特徴とする画像処理方法。
A dividing step in which a dividing unit of the image processing apparatus divides one page of PDL data described in a page description language into a plurality of divided parts;
A parallel interpretation step in which a parallel interpretation unit of the image processing apparatus interprets a page description language instruction included in the divided part and converts it into an object drawing instruction in parallel for each of the divided parts; ,
An intermediate data generation step of generating intermediate data from the object drawing command in parallel for each of the divided portions, by the intermediate data generation means of the image processing device;
An intermediate data combining step of combining intermediate data for each of the divided portions to create intermediate data for one page;
An image processing method comprising: a parallel raster image generating means for splitting the combined intermediate data and generating a raster image in parallel for each of the divided portions; .
前記並列解釈工程において、ひとつの分割部分の処理において、当該分割部分より前の分割部分で定義される描画状態属性値を参照する場合、該描画状態属性値に参照先を示す仮の描画状態属性値を割り当てて前記オブジェクト描画命令に変換し、
前記中間データ結合工程において、前記分割部分の各々についての中間データを結合し、前記分割部分について割り当てられた前記仮の描画状態属性値を参照先の描画状態属性値で置換し、1ページ分の中間データを作成することを特徴とする請求項9記載の画像処理方法。
In the parallel interpretation step, when a drawing state attribute value defined in a divided part before the divided part is referred to in processing of one divided part, a temporary drawing state attribute indicating a reference destination in the drawing state attribute value Assign a value and convert it to the object drawing command,
In the intermediate data combining step, intermediate data for each of the divided portions is combined, the temporary drawing state attribute value assigned to the divided portion is replaced with a drawing state attribute value of a reference destination, and one page worth The image processing method according to claim 9, wherein intermediate data is created.
ページ記述言語で記述された1ページ分のPDLデータを複数の分割部分に分割する分割手段と、
分割された前記分割部分の各々を対象として、当該分割部分に含まれたページ記述言語の命令を解釈して、当該命令に対応するオペランドとともにオブジェクト描画の関数を呼び出す複数の解釈処理部を有する並列解釈手段と、
前記分割部分の各々について、呼び出された前記オブジェクト描画の関数およびオペランドに応じて中間データを生成する複数の中間データ生成部を有する中間データ生成手段と、
前記分割部分の各々についての中間データを結合し、1ページ分の中間データを作成する中間データ結合手段と、
結合されたた前記中間データを分割し、分割した部分ごとに並列してラスタ画像を生成する並列ラスタ画像生成手段と
を備えることを特徴とする画像処理装置。
A dividing unit that divides one page of PDL data described in a page description language into a plurality of divided parts;
A parallel having a plurality of interpretation processing units for interpreting a page description language instruction included in the divided part and calling an object drawing function together with an operand corresponding to the instruction for each of the divided parts. Interpretation means;
Intermediate data generation means having a plurality of intermediate data generation units for generating intermediate data according to the called object drawing function and operand for each of the divided portions;
Intermediate data combining means for combining intermediate data for each of the divided parts to create intermediate data for one page;
An image processing apparatus comprising: a parallel raster image generation unit configured to divide the combined intermediate data and generate a raster image in parallel for each divided part.
JP2011086754A 2011-04-08 2011-04-08 Image processing apparatus and image processing method Active JP5767501B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011086754A JP5767501B2 (en) 2011-04-08 2011-04-08 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011086754A JP5767501B2 (en) 2011-04-08 2011-04-08 Image processing apparatus and image processing method

Publications (2)

Publication Number Publication Date
JP2012221256A true JP2012221256A (en) 2012-11-12
JP5767501B2 JP5767501B2 (en) 2015-08-19

Family

ID=47272677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011086754A Active JP5767501B2 (en) 2011-04-08 2011-04-08 Image processing apparatus and image processing method

Country Status (1)

Country Link
JP (1) JP5767501B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11147344A (en) * 1997-11-18 1999-06-02 Fuji Xerox Co Ltd Apparatus and method for plotting process
JPH11170657A (en) * 1997-12-16 1999-06-29 Fuji Xerox Co Ltd Image processor
JPH11259644A (en) * 1998-03-09 1999-09-24 Fuji Xerox Co Ltd Image forming device and image forming method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11147344A (en) * 1997-11-18 1999-06-02 Fuji Xerox Co Ltd Apparatus and method for plotting process
JPH11170657A (en) * 1997-12-16 1999-06-29 Fuji Xerox Co Ltd Image processor
JPH11259644A (en) * 1998-03-09 1999-09-24 Fuji Xerox Co Ltd Image forming device and image forming method

Also Published As

Publication number Publication date
JP5767501B2 (en) 2015-08-19

Similar Documents

Publication Publication Date Title
US8861014B2 (en) Systems and methods for optimized printer throughput in a multi-core environment
US20100315431A1 (en) Combining overlapping objects
US8223353B2 (en) Multiple processor print driver
US9001373B2 (en) Parallel printing system
US20090080025A1 (en) Parallel processing of page description language
US8593668B2 (en) Parallel printing system
US20100079798A1 (en) Image processing apparatus, image processing method, program therefor, and medium storing program
US20100202008A1 (en) Comprehensive print job skeleton creation
JP5261250B2 (en) Print data processing apparatus, method, and computer-readable medium for processing page description language
US8334989B2 (en) Printing device and method for parallel processing of data
JP5268427B2 (en) Image forming apparatus and image forming system
JP2010026895A (en) Information processor, image forming apparatus, and program
JP5767501B2 (en) Image processing apparatus and image processing method
US9052854B2 (en) Parallel printing system
US8665457B2 (en) Postscript stream interpreter with integrated pagination
JP5251995B2 (en) Image data generating apparatus, image forming apparatus, and program
US8446603B2 (en) Systems and methods for optimizing function based object operations in interpreted page description languages
JP3589255B2 (en) Document processing apparatus and method
JP2012221195A (en) Image processing system
JP5252136B2 (en) Image data generator
JP5252116B2 (en) Image data generator
JP5212566B2 (en) Image data generating apparatus, image forming apparatus, and program
JP2012081711A (en) Image forming apparatus and image processing method
JP2019155657A (en) Image processing system, image processing method, and program
JP2006079475A (en) Print processing system, program and recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140401

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150619

R151 Written notification of patent or utility model registration

Ref document number: 5767501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151