JP2012221256A - Image processing system and image processing method - Google Patents
Image processing system and image processing method Download PDFInfo
- 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
Links
Images
Abstract
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,
また特許文献2では、描画オブジェクト単位の並列処理が提案されている。Adobe社のPostScriptやPDF等の一般的なPDLにおいては、グラフィックス、イメージ、テキストと言った複数の描画オブジェクトが重なりといった位置依存性を持った上で定義されている。RIPシステムにおいて、PDLインタプリタがこれらの位置依存性を考慮し、位置依存性のない描画オブジェクト、つまり重なりのない描画オブジェクト毎にグループ化して、レンダリング処理部に描画オブジェクトを渡す。レンダリング処理部もしくは、レンダリング処理の制御部においてグループ化された単位で描画オブジェクト毎の並列レンダリング処理を実施することにより、処理の高速性を実現する提案である。
特許文献1の発明によるページ単位での並列処理では、単一ページのPDLデータに対しては、高速化を実現できない。また処理の重いページが存在すると、そのページを処理するPDLインタプリタ処理の負荷が相対的に高くクリチカルパスとなることから、全体のRIP処理としての高速化が果たせない。また特許文献2の発明は、PDLインタプリタによる解釈処理はシーケンシャルに処理され、位置依存性を前もってPDLインタプリタの解釈処理で解決する必要があり、この処理に負荷が掛かることが予想される。
With the parallel processing in units of pages according to the invention of
上記課題を解決するために、本発明は以下の構成を有する。すなわち、
ページ記述言語で記述された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.
[実施形態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
この構成において、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
オブジェクト描画命令の引き渡しは分割部分単位で行ってもよいが、本例では命令単位で行うものとする。このオブジェクト描画命令への変換および引き渡しは、コードを生成してそれを引き渡すという方法で行ってもよいが、レンダラの提供する関数を呼び出すことで実現することもできる。後者の方法であれば、解釈された画像形成命令は、その後の命令の解釈を待たずに中間データへ変換される。なお本実施形態では、前者のようにオブジェクト描画命令に変換してレンダラに引き渡す手順で説明するが、いずれの方法であっても本発明の本質を損ねることはない。 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
このような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
<PDLインタプリタ11による処理>
まずPDLインタプリタ11のステップである、解釈制御部13と複数の解釈処理部14の処理の詳細についてそれぞれ図を用いて説明する。
<Processing by the PDL interpreter 11>
First, details of processing of the
<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
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
<命令解釈処理>
図4に複数起動され並列に実行される解釈処理部14のフロー図を示した。起動された解釈処理部14は、S401でグループ開始を表す内部表現であるオブジェクト描画命令のうちグループ開始命令の呼び出しを行う。すなわち、グループ開始命令をこれから出力するオブジェクト描画命令群の先頭の命令として出力し、レンダラ12に入力する。オブジェクト描画命令とは後述する図7に示したようなコードであり、解釈処理部14が生成する内部的なコードである。オブジェクト描画命令は中間データ生成部15が処理可能なものであればよい。このグループ開始命令には、当該解釈処理部により処理される1ページのPDLデータから分割された分割部分のインデックス値が付与される。これにより、レンダラ12は処理対象の分割部分のページ中における位置を判定できる。なお、オブジェクト描画命令を例えばコードとして出力する代わりに、中間データ生成部15が提供する関数を当該関数に与えるオペランドとともに呼び出してもよい。
<Instruction interpretation processing>
FIG. 4 shows a flowchart of the
解釈処理部14は、S402で描画状態属性スタックの初期化を行う。スタックは本来処理に応じて動的に変更されるので、各分割部分の解釈処理を開始する際のスタックの状態は、その直前の分割部分の処理が終了した時点の状態と等しい。そこで、描画状態属性スタックは解釈処理開始時の初期相対値を示すGS0で初期化される。初期相対値GS0は、インデックス値が1小さい解釈制御部14の描画状態属性スタックに対する相対値を表している。つまり仮にページの先頭から解釈処理を開始したとして、処理が当該分割部分の真の開始ポイントに至った時点における描画状態属性スタックへの相対的なポインタを示している。この分割部分ごとに初期化されたスタックを当該分割部分における初期スタックと呼ぶことにする。これは、直前の分割部分の解釈処理終了時点における描画状態属性スタックの最上位である。なおスタックの最上位は当該スタックのポインタ(あるいはスタックポインタ)で示すものとし、以降S403で画像形成命令毎の解釈が開始される。スタックは解釈処理部14でたとえばローカルなメモリ等に保持される。
In step S402, the
解釈処理においては、装置のメモリ上に置かれた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
真の分割点が決定されたなら、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
一方ステップ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
さて図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
図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
<レンダラ12の処理>
続いてレンダラ12のステップについて説明する。図8に並列処理される複数の中間データ生成部15のうちのひとつによる処理フロー図を示す。なお図8は解釈処理部11からオブジェクト描画命令がグループ開始命令で始まりグループ終了命令で終わることを前提としているが、まずオブジェクト描画命令の種類を判定し、その種類に応じた処理に分岐するように構成してもよい。その場合には、オブジェクト描画命令が入力される都度、中間データ生成部15は命令の種類に応じた処理を実行する。
<Processing of
Next, the steps of the
図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
<中間データ結合処理>
中間データ結合部16の処理フローを図10に示す。中間データ結合処理は、1ページを分割した各分割部分について生成された中間データをリンクして、確定していない描画状態属性値を確定する処理である。なお或るインデックス値に関連付けて生成された中間データを、そのインデックス値の中間データと呼ぶ。
<Intermediate data join processing>
A processing flow of the intermediate
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
結合対象描画状態値スタック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
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
置き換え後の中間データは、座標移動に関する描画状態属性値の置き換えもされたことによりページに対する絶対的な座標が求まる。つまり相対的な位置で作成された中間データに対して、移動を表す確定した描画状態属性値の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
<ラスタ画像生成処理>
以降でレンダラ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
領域1304及び1307にはオブジェクトが存在しない為、背景色で塗られる。領域1305は図形オブジェクト1302が定義されている領域であり、この図形オブジェクトの塗り色で各ピクセルの色が決められる。また領域1306は図形オブジェクト1302とその上位に透明度を持った画像オブジェクト1303とが重複した領域である。この領域は、各ピクセルに対して、図形オブジェクトの塗り色と画像の各ピクセルの色値、さらに透明度を使用した合成結果により、最終的なピクセル値を得る。この合成方法については、各PDL仕様で定義されたものであり、PDFではブレンドモードとして様々な合成方法が定義されている。このようなスキャンライン中の各ピクセルの値を順次決めることによってスキャンライン毎のラスタ画像を得る。これを全てのスキャンラインで実施することによって、所望のスキャンライン数のラスタ画像を得ることができる。このようなラスタ画像生成処理を各ラスタ画像生成部19が並列動作することでページ全体のラスタ画像を出力する。
Since there are no objects in the
上記実施形態によれば、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
[変形例2]
実施例で説明した解釈制御部13のページ毎の画像形成命令の分割は、画像形成命令のサイズに対して、分割数で均等に分割していた。そのため中間データ結合部16において、所望の中間データ生成部15の処理終了待ちが多発することが考えられる。そこで、解釈制御部13において分割数で均等に分割するのではなく、分割するサイズはページの画像形成命令の開始に近い部分をより小さいサイズに分割することで、中間データ結合部16での待ちの発生を抑えることが可能となる。
[Modification 2]
The division of the image forming command for each page of the
[変形例3]
実施例で説明した中間データ結合部16の結合処理は、中間データに対してインデックス値の小さいものから順次結合処理を行っていた。そのため、分割した画像形成命令が複雑である等の理由で特定の中間データ生成が遅い場合、その処理の終了待ちが発生する。そこで中間データの結合処理を、中間データ生成部15の処理が終わったもので、インデックス値が隣り合う中間データの結合を行っていくことで、待ち時間は短くなり、より高速な中間データ結合生成が可能となる。
[Modification 3]
In the joining process of the intermediate
[変形例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
[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(または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ページ分の中間データを作成する中間データ結合手段と、
結合された前記中間データを分割し、分割した部分ごとに並列してラスタ画像を生成する並列ラスタ画像生成手段と
を備えることを特徴とする画像処理装置。 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ページ分の中間データを作成する中間データ結合手段と、
結合された前記中間データを分割し、分割した部分ごとに並列してラスタ画像を生成する並列ラスタ画像生成手段と
してコンピュータを機能させるためのプログラム。 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.
画像処理装置の並列解釈手段が、分割された前記分割部分の各々を対象として、並列に、当該分割部分に含まれたページ記述言語の命令を解釈してオブジェクト描画命令に変換する並列解釈工程と、
画像処理装置の中間データ生成手段が、前記分割部分の各々について、並列に、前記オブジェクト描画命令から中間データを生成する中間データ生成工程と、
画像処理装置の中間データ結合手段が、前記分割部分の各々についての中間データを結合し、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ページ分の中間データを作成する中間データ結合手段と、
結合されたた前記中間データを分割し、分割した部分ごとに並列してラスタ画像を生成する並列ラスタ画像生成手段と
を備えることを特徴とする画像処理装置。 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.
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)
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 |
-
2011
- 2011-04-08 JP JP2011086754A patent/JP5767501B2/en active Active
Patent Citations (3)
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 |