JP6904717B2 - Image processing equipment, its control method, and programs - Google Patents

Image processing equipment, its control method, and programs Download PDF

Info

Publication number
JP6904717B2
JP6904717B2 JP2017019571A JP2017019571A JP6904717B2 JP 6904717 B2 JP6904717 B2 JP 6904717B2 JP 2017019571 A JP2017019571 A JP 2017019571A JP 2017019571 A JP2017019571 A JP 2017019571A JP 6904717 B2 JP6904717 B2 JP 6904717B2
Authority
JP
Japan
Prior art keywords
image data
area
region
memory address
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017019571A
Other languages
Japanese (ja)
Other versions
JP2017170884A5 (en
JP2017170884A (en
Inventor
辰昇 鈴木
辰昇 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to US15/454,374 priority Critical patent/US10552717B2/en
Priority to CN201710165979.1A priority patent/CN107203354B/en
Publication of JP2017170884A publication Critical patent/JP2017170884A/en
Publication of JP2017170884A5 publication Critical patent/JP2017170884A5/ja
Application granted granted Critical
Publication of JP6904717B2 publication Critical patent/JP6904717B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、印刷データのバンド並列レンダリング技術に関する。 The present invention relates to a band parallel rendering technique for print data.

従来より、ホストコンピュータ等から受信した印刷データ(PDLデータ)のページのレンダリングを高速化するための様々な技術が提案されている。例えば特許文献1には、1つのコアが1ページ分のPDLデータからそのページの中間データをバンド単位で生成し、そして、複数のコアが異なるバンドの中間データを並列でレンダリングする画像形成装置が開示される。 Conventionally, various techniques for speeding up the rendering of pages of print data (PDL data) received from a host computer or the like have been proposed. For example, in Patent Document 1, an image forming apparatus is provided in which one core generates intermediate data of a page from PDL data for one page in band units, and a plurality of cores render intermediate data of different bands in parallel. Will be disclosed.

特開2012−158951号公報Japanese Unexamined Patent Publication No. 2012-158951

PDLデータには、ページの構成要素の一部として、画像データが含まれていることがある。また、こうした画像データは、複数のバンドに跨って配置されることがある。バンドを跨る画像データを、上記特開2012−158951号公報の技術を用いてバンド並列で処理するには、当該画像データをバンド単位で分割し、各バンドに対応する分割画像のそれぞれについて中間データを生成してレンダリングすることになる。これでは、処理コストが増大してしまう。 The PDL data may include image data as part of the page components. Further, such image data may be arranged across a plurality of bands. In order to process the image data across bands in parallel in bands using the technique of JP2012-158951, the image data is divided into band units, and intermediate data is provided for each of the divided images corresponding to each band. Will be generated and rendered. This increases the processing cost.

本発明に係る画像処理装置は、印刷データに基づいてページ内の第1の領域をレンダリングする第1のレンダリングユニットと、前記印刷データに基づいて前記ページ内の第2の領域をレンダリングする第2のレンダリングユニットと、コントローラであって、前記第1の領域と前記第2の領域に跨って配置される画像データを、前記印刷データに基づき取得し、前記画像データにアクセスした前記第1のレンダリングユニットに、前記画像データの全画素のうち前記第1の領域内の画素でレンダリングさせ、前記画像データにアクセスした前記第2のレンダリングユニットに、前記画像データの全画素のうち前記第2の領域内の画素でレンダリングさせる、コントローラと、を備えたことを特徴とする。 The image processing apparatus according to the present invention has a first rendering unit that renders a first area in a page based on print data, and a second rendering unit that renders a second area in the page based on the print data. The first rendering of the rendering unit and the controller, which acquired the image data arranged across the first region and the second region based on the print data and accessed the image data. The unit is made to render with the pixels in the first region among all the pixels of the image data, and the second rendering unit that has accessed the image data is made to render the second region among all the pixels of the image data. It is characterized by having a controller that renders with the pixels inside.

本発明によれば、印刷データのページに、バンド境界を跨ぐように画像データが含まれていても、当該ページのレンダリング開始の遅れを抑制できる。 According to the present invention, even if the print data page contains image data so as to straddle the band boundary, it is possible to suppress a delay in the start of rendering of the page.

画像形成装置のハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware composition of the image forming apparatus. (a)は画像形成装置の印刷処理に関するソフトウェア構成を示すブロック図であり、(b)は実施例1に係るRIPのハードウェア構成例を示す図である。(A) is a block diagram showing a software configuration related to printing processing of an image forming apparatus, and (b) is a diagram showing a hardware configuration example of RIP according to the first embodiment. 印刷ジョブからビットマップ画像データが生成されるまでの流れを示すフローチャートである。It is a flowchart which shows the flow from the print job to the generation of bitmap image data. 圧縮画像を含むページの一例を示す図である。It is a figure which shows an example of the page which contains a compressed image. 図4のページに対応する印刷ジョブを示す図である。It is a figure which shows the print job corresponding to the page of FIG. PDLデータに対応する中間データを示す図である。It is a figure which shows the intermediate data corresponding to PDL data. バンド毎に並列でレンダリング処理する過程を説明する図である。It is a figure explaining the process of rendering in parallel for each band. 第1レンダリング処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the 1st rendering process. スキャンライン処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the scan line processing. 伸長画像格納用メモリ内に画像データが格納される様子を表した図である。It is a figure which showed the state which image data is stored in the extended image storage memory. 第2レンダリング処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the 2nd rendering process. 実施例2に係るRIPのハードウェア構成例を示す図である。It is a figure which shows the hardware configuration example of RIP which concerns on Example 2. FIG.

以下、添付の図面を参照して、本発明を実施する形態について説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。 Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. The configuration shown in the following examples is only an example, and the present invention is not limited to the illustrated configuration.

まず、本実施例に係る画像形成装置のハードウェア構成について説明する。図1は、画像形成装置のハードウェア構成の一例を示す図である。図1に示す画像形成装置100は、ホストPC130とLAN120を介して接続されている。印刷を行いたいユーザは、ホストPC130において印刷対象の文書についての印刷ジョブを生成し、ホストPC130からLAN120を介して画像形成装置100に対して送信する。印刷ジョブにはページ記述言語(Page Description Language)で記述された、文字、写真、図形といったオブジェクトをページ内にどのように配置するかを指定するデータ(PDLデータ)を含んでいる。そのため印刷ジョブは印刷データとも呼ばれる。そして、本実施例では、PDLデータのページ内に写真オブジェクトの圧縮画像を含んでいることが前提となる。なお、ここでの画像形成装置100は、中間データに対しバンド単位の並列レンダリングを行なって印刷を行うSFP(Single Function Printer)を想定している。しかし、画像形成装置はコピーやFAXといった複数の機能を備えたMFP(Multi Function Printer)であってもよい。中間データに対してバンド単位の並列レンダリングによって印刷を行う機能を有する装置であれば、本実施例の手法は幅広く適用可能である。以下、本実施例の画像形成装置100を構成する各部について説明する。 First, the hardware configuration of the image forming apparatus according to this embodiment will be described. FIG. 1 is a diagram showing an example of a hardware configuration of an image forming apparatus. The image forming apparatus 100 shown in FIG. 1 is connected to the host PC 130 via the LAN 120. A user who wants to print generates a print job for a document to be printed on the host PC 130, and transmits the print job from the host PC 130 to the image forming apparatus 100 via the LAN 120. The print job includes data (PDL data) described in the page description language (Page Description Language) that specifies how to arrange objects such as characters, photographs, and figures on the page. Therefore, the print job is also called print data. Then, in this embodiment, it is premised that the compressed image of the photographic object is included in the page of the PDL data. The image forming apparatus 100 here assumes an SFP (Single Function Printer) that performs parallel rendering in band units for intermediate data and prints the data. However, the image forming apparatus may be an MFP (Multi Function Printer) having a plurality of functions such as copying and FAX. The method of this embodiment can be widely applied as long as the device has a function of printing intermediate data by parallel rendering in band units. Hereinafter, each part constituting the image forming apparatus 100 of this embodiment will be described.

図1において、破線の矩形はコントローラ部を示し、CPU101、RAM102、ROPM103、大容量記憶装置104、操作部I/F106、ネットワークI/F107、システムバス108、イメージバス109で構成される。CPU101は各種演算処理を行なうプロセッサであり、画像形成装置100全体の制御を司る。RAM102は、CPU101が動作するためのシステムワークメモリである。また、RAM102は、ホストPC130から受け取った印刷ジョブ内のPDLデータを解釈して生成される中間データを一時的に格納したり、中間データをレンダリング処理する際の作業領域でもある。ROM103は、システムのブートプログラムなどを格納する。大容量記憶部104は、例えばハードディスクドライブであり、各種処理のためのシステムソフトウェアやホストPC130から受信した印刷ジョブを格納する。 In FIG. 1, the broken line rectangle indicates a controller unit, which is composed of a CPU 101, a RAM 102, a ROPM 103, a large-capacity storage device 104, an operation unit I / F 106, a network I / F 107, a system bus 108, and an image bus 109. The CPU 101 is a processor that performs various arithmetic processes, and controls the entire image forming apparatus 100. The RAM 102 is a system work memory for operating the CPU 101. The RAM 102 is also a work area for temporarily storing the intermediate data generated by interpreting the PDL data in the print job received from the host PC 130 and for rendering the intermediate data. The ROM 103 stores a system boot program and the like. The large-capacity storage unit 104 is, for example, a hard disk drive, and stores system software for various processes and print jobs received from the host PC 130.

操作部105は、各種メニューや印刷データ情報等を表示するためのディスプレイ及びユーザが各種入力操作を行うためのボタンやキーを有し、操作部I/F106を介してシステムバス109と接続される。 The operation unit 105 has a display for displaying various menus, print data information, and the like, and buttons and keys for the user to perform various input operations, and is connected to the system bus 109 via the operation unit I / F 106. ..

ネットワークI/F107は、LAN120を介してホストPC130を含む外部装置との間で各種データ・情報のやり取りを行うインターフェースである。これら各部は、システムバス108に接続されている。 The network I / F 107 is an interface for exchanging various data and information with an external device including the host PC 130 via the LAN 120. Each of these parts is connected to the system bus 108.

イメージバスI/F109は、システムバス108と画像データを高速に転送するイメージバス110とを接続するインターフェースであって、データ構造を変換するバスブリッジである。イメージバス110には、RIP(Raster Image Processor)111とプリンタ部112が接続されている。 The image bus I / F 109 is an interface that connects the system bus 108 and the image bus 110 that transfers image data at high speed, and is a bus bridge that converts a data structure. A RIP (Raster Image Processor) 111 and a printer unit 112 are connected to the image bus 110.

RIP111は、複数のプロセッサ、メモリ、伸張処理回路などで構成され、CPU101からの指示に基づき、PDLデータから生成された中間データであるDL(ディスプレイリスト)をラスタ形式の画像データ(ビットマップ画像データ)に変換する。プリンタ部112は、RIP111で生成されたビットマップ画像データをデバイスI/F113を介して受け取って、紙等の記録媒体に画像を形成して出力する。なお、本明細書において「レンダリング」とは、中間データであるDLからラスタ形式の画像データを生成することを意味し、いわゆるラスタライズと同義である。 The RIP 111 is composed of a plurality of processors, a memory, a decompression processing circuit, and the like, and based on an instruction from the CPU 101, DL (display list) which is intermediate data generated from the PDL data is converted into raster format image data (bitmap image data). ). The printer unit 112 receives the bitmap image data generated by the RIP 111 via the device I / F 113, forms an image on a recording medium such as paper, and outputs the image. In the present specification, "rendering" means generating image data in raster format from DL, which is intermediate data, and is synonymous with so-called rasterization.

図2(a)は、画像形成装置100の印刷処理に関するソフトウェア構成を示すブロック図であり、PDLデータ解析モジュール201、中間データ生成モジュール202、レンダリングモジュール203で構成される。 FIG. 2A is a block diagram showing a software configuration related to printing processing of the image forming apparatus 100, and is composed of a PDL data analysis module 201, an intermediate data generation module 202, and a rendering module 203.

PDLデータ解析モジュール201は、ホストPC130から入力された印刷ジョブに含まれるPDLデータを解析し、ページ情報と、当該ページ情報に含まれるオブジェクト情報とを取得する。取得したページ情報とオブクジェト情報は、中間データ生成モジュール202に送られる。 The PDL data analysis module 201 analyzes the PDL data included in the print job input from the host PC 130, and acquires the page information and the object information included in the page information. The acquired page information and object information are sent to the intermediate data generation module 202.

中間データ生成モジュール202は、PDLデータ解析モジュール201から受け取ったページ情報及びオブジェクト情報に基づいて、オブジェクトの描画命令等で構成される中間データ(DL)を生成する。生成した中間データは、レンダリングモジュール203に送られる。 The intermediate data generation module 202 generates intermediate data (DL) composed of drawing commands of objects and the like based on the page information and object information received from the PDL data analysis module 201. The generated intermediate data is sent to the rendering module 203.

レンダリングモジュール203は、生成された中間データに基づいて、バンド毎に並列でレンダリングを行い、ページ単位でビットマップ画像データを生成する。図2(b)は、レンダリングモジュール203によるバンド毎の並列レンダリングを可能にする、本実施例に係るRIP111のハードウェア構成例を示す図である。RIP111は、第1レンダリング処理部211、第2レンダリング処理部212、及び、中間データに含まれる圧縮画像を第1レンダリング処理部211からの伸長指示に基づいて伸長する伸長処理部213で構成される。伸長処理部213で伸張された後の画像データは、伸長画像格納用メモリ220に格納される。また、伸張処理部213は、内部にレジスタ(不図示)を有しており、受け取った伸長指示のうち伸長処理が完了した数(解凍された圧縮画像の数)を当該内部レジスタに記憶する。この内部レジスタに記憶される数値は、1ページ分の処理が終了する毎に“0”に初期化される。なお、本実施例では、PDLデータ解析モジュール201と中間データ生成モジュール202は、CPU102が所定のプログラムに従いRAM102を用いて実現する構成を想定している。しかしながら、PDLデータを解析してビットマップ画像データを生成するまでのすべての工程をRIP111内の閉じた構成の中で行うようにしてもよい。また、本実施例では前述のRAM102を伸長画像格納用メモリ220として用いることを想定しているが、RAM102とは別個に伸長画像格納のための専用メモリを設けてもよい。 The rendering module 203 performs rendering in parallel for each band based on the generated intermediate data, and generates bitmap image data for each page. FIG. 2B is a diagram showing a hardware configuration example of the RIP 111 according to the present embodiment, which enables parallel rendering for each band by the rendering module 203. The RIP 111 is composed of a first rendering processing unit 211, a second rendering processing unit 212, and a decompression processing unit 213 that decompresses a compressed image included in the intermediate data based on an decompression instruction from the first rendering processing unit 211. .. The image data after being decompressed by the decompression processing unit 213 is stored in the decompression image storage memory 220. Further, the decompression processing unit 213 has a register (not shown) inside, and stores the number of received decompression instructions (the number of decompressed compressed images) in the internal register. The numerical value stored in this internal register is initialized to "0" every time the processing for one page is completed. In this embodiment, it is assumed that the PDL data analysis module 201 and the intermediate data generation module 202 are realized by the CPU 102 using the RAM 102 according to a predetermined program. However, all the steps from analyzing the PDL data to generating the bitmap image data may be performed in a closed configuration in the RIP 111. Further, in this embodiment, it is assumed that the RAM 102 described above is used as the memory for storing the expanded image 220, but a dedicated memory for storing the expanded image may be provided separately from the RAM 102.

<用語の説明>
ここで、本実施例のレンダリング処理で登場する、「エッジ」「スキャンライン」「スパン」「レベル」「フィル」「バンド」の各用語について確認しておく。
<Explanation of terms>
Here, each term of "edge", "scan line", "span", "level", "fill", and "band" appearing in the rendering process of this embodiment will be confirmed.

エッジとは、ページ内に存在するオブジェクト同士の境界、又はオブジェクトと背景の境目を指す。すなわち、エッジはオブジェクトのアウトラインである。 The edge refers to the boundary between objects existing in the page or the boundary between the object and the background. That is, the edge is the outline of the object.

スキャンラインとは、画像形成処理において画像データが連続的にメモリ走査される主走査方向のラインである。スキャンラインの高さは1ピクセルとなっている。 The scan line is a line in the main scanning direction in which image data is continuously scanned in memory in the image forming process. The height of the scan line is 1 pixel.

スパンとは、単一のスキャンラインにおいて、エッジ間の区間を指す。この区間のことを閉領域とも呼ぶ。 A span is a section between edges in a single scanline. This section is also called a closed region.

レベルとは、ページ内に描画するオブジェクト同士の上下関係を示す情報であり、各オブジェクトには必ずそれぞれ異なるレベル番号が割り振られる。レベルは、Zオーダーとも呼ばれ、ページの背面から前面に向かう方向(ページの描画範囲をXY平面で表現した際のXY平面に直交する方向:Z軸方向)に沿ったオブジェクトの並び順を表す。 The level is information indicating the hierarchical relationship between the objects drawn on the page, and each object is always assigned a different level number. The level, also called Z-order, represents the order in which objects are arranged along the direction from the back to the front of the page (direction orthogonal to the XY plane when the drawing range of the page is expressed in the XY plane: Z-axis direction). ..

フィルとは、スパンに対する塗り情報であり、ビットマップ画像データやシェーディングのように1ピクセル毎に異なる色値を持つフィルや、ベタ塗りのようにスパン中で色値の変化がないフィルが存在する。したがって、1つのスパン(閉領域)については、当該スパンに関連するオブジェクトの数だけレベルが存在し、レベルの数だけ異なるフィルを有することになる。また、ビットマップ画像データがフィルとして指定される場合、該ビットマップ画像データはあらかじめRAM102に格納される。PDLデータに圧縮画像が含まれる場合、フィルとしてRIP111が参照する前にRAM102上の所定位置に伸長後のビットマップ画像データが格納されることになる。 Fill is fill information for a span, and there are fills that have different color values for each pixel such as bitmap image data and shading, and fills that do not change the color value in the span such as solid fill. .. Therefore, for one span (closed region), there are as many levels as there are objects related to the span, and there are as many different fills as there are levels. When the bitmap image data is designated as a fill, the bitmap image data is stored in the RAM 102 in advance. When the PDL data includes a compressed image, the decompressed bitmap image data is stored at a predetermined position on the RAM 102 before being referenced by the RIP 111 as a fill.

バンドとは、複数のスキャンラインを束ねたものを指す。 A band is a bundle of multiple scan lines.

続いて、印刷ジョブからビットマップ画像データを生成するまでの大まかな処理の流れを説明する。図3は、印刷ジョブからビットマップ画像データが生成されるまでの流れを示すフローチャートである。以下では、図4に示すような、写真属性のオブジェクト401〜403の圧縮画像を含むページの印刷ジョブがホストPC130から送信されたものとして説明を行なうものとする。なお、本実施例の場合、後述するステップ303におけるレンダリング処理を並列で行なうことを目的に、予め印刷ジョブのデータを分割するようなことは行わない。 Next, a rough flow of processing from the print job to the generation of bitmap image data will be described. FIG. 3 is a flowchart showing the flow from the print job to the generation of the bitmap image data. In the following, it is assumed that the print job of the page including the compressed image of the photographic attribute objects 401 to 403 as shown in FIG. 4 is transmitted from the host PC 130. In the case of this embodiment, the print job data is not divided in advance for the purpose of performing the rendering process in step 303, which will be described later, in parallel.

ステップ301では、PDLデータ解析モジュール201が、ホストPC130から受信した印刷ジョブ内の、図4のページに対応するPDLデータを解析する。図5は、図4のページに対応する印刷ジョブを示している。 In step 301, the PDL data analysis module 201 analyzes the PDL data corresponding to the page of FIG. 4 in the print job received from the host PC 130. FIG. 5 shows a print job corresponding to the page of FIG.

印刷ジョブ500は、印刷ジョブの開始を示すジョブ開始命令510、印刷対象の画像を特定するPDLデータ520、印刷ジョブの終了を示すジョブ終了命令530から構成される。ジョブ開始命令510は、PDLデータ520の印刷処理時の解像度を設定する印字解像度情報、片面/両面印刷を指定する印刷面指定情報、給紙段を指定する給紙段選択命令、及びPDLデータ520の種別を示すPDL識別子で構成される。なお、本実施例では簡単のために省略したが、ジョブ開始命令510には用紙を綴じるために余白位置を指定する命令や、排紙口を選択する命令等も含まれる。また、ジョブ開始命令510には上述した印刷環境の他に、操作部105から設定可能な各種命令も含まれ得る。PDLデータ520は、PDLデータ開始命令521、イメージ描画命令522〜524、改ページ命令525、及びPDLデータ終了命令526、の計6つの命令を含んでいる。PDLデータ開始命令521はPDLデータ520の開始を示し、各ページの用紙サイズを選択する用紙サイズ選択命令、描画命令で用いられる単位を指定するサイズ単位指定命令、描画命令が有効な領域を示す描画領域設定命令を含む。イメージ描画命令522は、図4のページにおけるオブジェクト403に対応する描画命令であり、その描画位置、オブジェクトの幅・高さ、圧縮形式、圧縮画像のデータサイズ、圧縮画像データから構成される。ここで描画位置とは、ページの左上隅を原点(0,0)としたときの、対象オブジェクトが描画される開始点の座標(後述の描画開始座標と同じ)のことである。同様に、イメージ描画命令523はオブジェクト402に対応する描画命令である。また、イメージ描画命令524はオブジェクト401に対応する描画命令である。改ページ命令525は、以降の描画命令が次ページのものであることを示す命令である。そして、PDLデータ終了命令526は、PDLデータの終了を意味する命令である。 The print job 500 is composed of a job start command 510 indicating the start of a print job, PDL data 520 that specifies an image to be printed, and a job end command 530 that indicates the end of the print job. The job start command 510 includes print resolution information for setting the resolution of PDL data 520 during printing processing, print surface designation information for specifying single-sided / double-sided printing, a paper feed stage selection command for designating a paper feed stage, and PDL data 520. It is composed of a PDL identifier indicating the type of. Although omitted in this embodiment for the sake of simplicity, the job start command 510 also includes a command for designating a margin position for binding paper, a command for selecting a paper ejection port, and the like. Further, the job start command 510 may include various commands that can be set from the operation unit 105 in addition to the above-mentioned printing environment. The PDL data 520 includes a total of six commands, that is, a PDL data start command 521, an image drawing command 522-524, a page break command 525, and a PDL data end command 526. The PDL data start command 521 indicates the start of the PDL data 520, a paper size selection command for selecting the paper size of each page, a size unit designation command for specifying the unit used in the drawing command, and a drawing indicating an area in which the drawing command is valid. Includes area setting instructions. The image drawing command 522 is a drawing command corresponding to the object 403 on the page of FIG. 4, and is composed of the drawing position, the width / height of the object, the compression format, the data size of the compressed image, and the compressed image data. Here, the drawing position is the coordinates of the start point at which the target object is drawn (same as the drawing start coordinates described later) when the upper left corner of the page is set as the origin (0,0). Similarly, the image drawing command 523 is a drawing command corresponding to the object 402. Further, the image drawing command 524 is a drawing command corresponding to the object 401. The page break instruction 525 is an instruction indicating that the subsequent drawing instructions are for the next page. The PDL data end command 526 is an instruction that means the end of the PDL data.

図3のフローの説明に戻る。 Returning to the explanation of the flow of FIG.

ステップ302では、中間データ生成モジュール202が、解析したPDLデータの情報を基に、ビットマップ画像データ生成のために必要な中間データ(DL)の生成を行う。中間データの生成には、周知技術を適用すればよい。図6は、図5に示した印刷ジョブ500のPDLデータ520に対応する中間データを示している。図6に示す中間データ600は、描画フレーム設定命令601、描画領域設定命令602、圧縮画像伸張命令603、604、607、描画命令605、606、608、及びページ終了命令609、の計9つの命令を含む。図4のページの例では、イメージ描画命令524の中間データとして、圧縮画像伸長命令603および描画命令605が生成される。同様に、イメージ描画命令523の中間データとして、圧縮画像伸長命令604および描画命令606が生成される。そして、イメージ描画命令522の中間データとして、圧縮画像伸長命令607および描画命令608が生成される。また、本ステップでは、この中間データを生成する際に、PDLデータ520に含まれるイメージ描画命令の描画位置を参照して、各イメージ描画命令に対応する中間データの描画命令をソートする。具体的には、中間データに含まれる描画命令の描画開始座標を、Y座標が昇順となるようにまずはソートし、次に描画開始座標のY座標が同一の描画命令についてはX座標が昇順となるようにソートする。また、このソート処理において、描画命令が圧縮画像についての描画命令であれば、対応する圧縮画像伸長命令をその描画命令の直前に挿入する。直前に挿入する理由は、描画命令の実行直前まで圧縮画像の伸長を待機することで、伸長後の画像データを格納するRAM102を極力省メモリ化するためである。なお、ソート後の描画命令の描画開始座標のY座標が同一であるような圧縮画像の描画命令については、それら複数の描画命令の前に、対応する複数の圧縮画像伸長命令を挿入するようにする。このように中間データに含まれる描画命令をソートすることで、レンダリング処理において、ページの開始点(すなわちX座標およびY座標がともに“0”の原点)から画素順にレンダリング(スキャンラインレンダリングともいう)を行うことができる。 In step 302, the intermediate data generation module 202 generates intermediate data (DL) necessary for generating bitmap image data based on the analyzed PDL data information. Well-known techniques may be applied to the generation of intermediate data. FIG. 6 shows intermediate data corresponding to the PDL data 520 of the print job 500 shown in FIG. The intermediate data 600 shown in FIG. 6 includes a drawing frame setting command 601, a drawing area setting command 602, a compressed image expansion command 603, 604, 607, a drawing command 605, 606, 608, and a page end command 609, for a total of nine commands. including. In the example of the page of FIG. 4, the compressed image expansion command 603 and the drawing command 605 are generated as the intermediate data of the image drawing command 524. Similarly, the compressed image expansion command 604 and the drawing command 606 are generated as intermediate data of the image drawing command 523. Then, the compressed image expansion command 607 and the drawing command 608 are generated as intermediate data of the image drawing command 522. Further, in this step, when the intermediate data is generated, the drawing instructions of the intermediate data corresponding to each image drawing instruction are sorted by referring to the drawing position of the image drawing instruction included in the PDL data 520. Specifically, the drawing start coordinates of the drawing commands included in the intermediate data are first sorted so that the Y coordinates are in ascending order, and then the X coordinates are in ascending order for drawing commands with the same Y coordinate of the drawing start coordinates. Sort so that Further, in this sort process, if the drawing command is a drawing command for a compressed image, the corresponding compressed image decompression command is inserted immediately before the drawing command. The reason for inserting immediately before is to save the memory of the RAM 102 that stores the decompressed image data as much as possible by waiting for the decompression of the compressed image until immediately before the execution of the drawing command. For the drawing command of the compressed image in which the Y coordinate of the drawing start coordinate of the drawing command after sorting is the same, a plurality of corresponding compressed image decompression commands should be inserted before the plurality of drawing commands. do. By sorting the drawing commands included in the intermediate data in this way, in the rendering process, rendering is performed in pixel order from the page start point (that is, the origin where both the X and Y coordinates are "0") (also called scanline rendering). It can be performed.

図6に示す中間データ600において、描画フレーム設定命令601は、色空間と階調を指定する命令である。描画領域設定命令602は、ページ画像の幅と高さを指定する命令である。圧縮画像伸長命令603は、PDLデータ500におけるイメージ描画命令524に対応する圧縮画像の伸長命令である。この圧縮画像伸張命令603には、イメージ描画命令524に含まれる圧縮画像データの参照先先頭アドレスと伸長処理に使用する量子化テーブルの参照先先頭アドレス、さらに、伸長後の画像データを格納するのに必要なデータサイズの情報が記述される。なお、格納に必要なデータサイズは、色空間並びに画像の幅と高さとに基づいて算出される。圧縮画像伸長命令604は、同様に生成された、イメージ描画命令523に対応する圧縮画像の伸長命令である。また、圧縮画像伸長命令607は、同様に生成された、イメージ描画命令522に対応する圧縮画像の伸長命令である。描画命令605は、圧縮画像伸長命令603に従って伸長する画像の描画コマンドを示し、描画開始座標、パス点列(描画領域を示す頂点各座標)、レベル(色)合成処理の有無の情報を含む。本実施例では、描画命令605の描画領域内には1つの画像を描画するだけで、背面や上位面にある画像との合成は発生しないので、レベル合成は“なし”となっている。描画命令606は、同様に生成された、圧縮画像伸長命令604で伸長する画像の描画コマンドである。また、描画命令608は、同様に生成された、圧縮画像伸長命令607で伸長する画像の描画コマンドである。そして、ページ終了命令609は、ページの終了を示す命令である。このように、PDLデータの解析で取得されたオブジェクト情報をスキャンライン上での出現順にソートすることで中間データが生成される。そのため、図5に示すPDLデータ500と、図6に示す中間データ600とでは描画命令の順番が異なることになる。すなわち、PDLデータ500では、オブジェクト403に対応する描画命令522が最初に来ているのに対し、図6に示す中間データ600では、最も原点(0,0)に近いオブジェクト401に対応する描画命令605が最初に来ている。 In the intermediate data 600 shown in FIG. 6, the drawing frame setting command 601 is a command for designating a color space and a gradation. The drawing area setting command 602 is a command for designating the width and height of the page image. The compressed image decompression command 603 is a compressed image decompression command corresponding to the image drawing command 524 in the PDL data 500. The compressed image decompression command 603 stores the reference start address of the compressed image data included in the image drawing command 524, the reference start address of the quantization table used for the decompression process, and the decompressed image data. Information on the required data size is described in. The data size required for storage is calculated based on the color space and the width and height of the image. The compressed image decompression command 604 is a similarly generated decompression command for the compressed image corresponding to the image drawing command 523. Further, the compressed image decompression command 607 is a similarly generated decompression command for the compressed image corresponding to the image drawing command 522. The drawing command 605 indicates a drawing command of an image to be stretched according to the compressed image stretching command 603, and includes information on drawing start coordinates, path point sequences (coordinates of each vertex indicating a drawing area), and presence / absence of level (color) composition processing. In this embodiment, only one image is drawn in the drawing area of the drawing command 605, and the image is not combined with the image on the back surface or the upper surface. Therefore, the level composition is “none”. The drawing command 606 is a drawing command for an image to be decompressed by the compressed image decompression instruction 604, which is also generated. Further, the drawing command 608 is a drawing command for an image to be decompressed by the compressed image decompression instruction 607, which is also generated. The page end instruction 609 is an instruction indicating the end of the page. In this way, intermediate data is generated by sorting the object information acquired in the analysis of PDL data in the order of appearance on the scan line. Therefore, the order of the drawing commands is different between the PDL data 500 shown in FIG. 5 and the intermediate data 600 shown in FIG. That is, in the PDL data 500, the drawing instruction 522 corresponding to the object 403 comes first, whereas in the intermediate data 600 shown in FIG. 6, the drawing instruction corresponding to the object 401 closest to the origin (0,0) 605 is coming first.

また、中間データは、RIP111が圧縮画像伸長のために確保する伸長画像格納用メモリ220としてのRAM102内の領域を、参照する描画命令の処理が終了した時点で破棄できるように生成される。すなわち、図6の中間データ600では、描画命令605と606の前に圧縮画像伸張命令603と604が来るように、描画命令608の前に圧縮画像伸張命令607が来るように各命令の順序を構成する。これによりRIP111は、描画命令605、606、608を処理する時点で必要な伸長後の画像を参照でき、描画命令605と606の処理が完了し、圧縮画像伸張命令603と604の伸長結果を破棄した後に圧縮画像伸張命令607を処理できるようになる。 Further, the intermediate data is generated so that the area in the RAM 102 as the decompressed image storage memory 220 reserved by the RIP 111 for decompressing the compressed image can be discarded when the processing of the drawing instruction to be referred to is completed. That is, in the intermediate data 600 of FIG. 6, the order of each command is set so that the compressed image expansion command 603 and 604 come before the drawing commands 605 and 606, and the compressed image expansion command 607 comes before the drawing command 608. Configure. As a result, the RIP 111 can refer to the decompressed image required at the time of processing the drawing commands 605, 606, and 608, the processing of the drawing commands 605 and 606 is completed, and the decompression results of the compressed image decompression commands 603 and 604 are discarded. After that, the compressed image expansion instruction 607 can be processed.

図3のフローの説明に戻る。 Returning to the explanation of the flow of FIG.

ステップ303では、レンダリングモジュール203が、ステップ302で生成した中間データに基づいて、図2(b)の各処理部211〜213を用いてバンド単位で並列にレンダリングを行い、ビットマップ画像データを生成する。本実施例の特徴であるバンド並列レンダリング処理については、項を改めて説明する。 In step 303, the rendering module 203 renders in parallel in band units using the processing units 211 to 213 of FIG. 2B based on the intermediate data generated in step 302, and generates bitmap image data. do. The band parallel rendering process, which is a feature of this embodiment, will be described again.

以上が、印刷ジョブからビットマップ画像データが生成されるまでの大まかな流れである。 The above is the general flow from the print job to the generation of bitmap image data.

<バンド並列レンダリング処理>
以下、第1レンダリング処理部211と第2レンダリング処理部212とを協働させてバンド単位でのレンダリングを並列で行なう手法について詳しく説明する。以下では、1つのバンドを1024個(1024本)のスキャンラインの集合とし、ページ最上部に位置するバンドを1バンド目とする。図7は、図6の中間データに基づいて、バンド毎に並列でレンダリング処理する過程を説明する図である。レンダリングモジュール203は、図6の中間データに基づきページ上部から順にスキャンライン単位でビットマップ画像を生成していく。この時、ページを所定のバンド領域(ここでは1024本分のスキャンラインの束)に区分し、奇数バンド領域については第1レンダリング処理部211によって、偶数バンド領域については第2レンダリング処理部212によってビットマップ画像が生成される。このように、第1レンダリング処理部211と第2レンダリング処理部212は、それぞれページ全体の中間データを解析して並列に動作し、それぞれに割り当てられたバンド領域をレンダリングする。
<Band parallel rendering process>
Hereinafter, a method of collaborating the first rendering processing unit 211 and the second rendering processing unit 212 to perform rendering in band units in parallel will be described in detail. In the following, one band is a set of 1024 (1024) scan lines, and the band located at the top of the page is the first band. FIG. 7 is a diagram illustrating a process of rendering in parallel for each band based on the intermediate data of FIG. The rendering module 203 generates bitmap images in scan line units in order from the top of the page based on the intermediate data of FIG. At this time, the page is divided into predetermined band areas (here, a bundle of 1024 scan lines), the odd band area is divided by the first rendering processing unit 211, and the even band area is divided by the second rendering processing unit 212. A bitmap image is generated. In this way, the first rendering processing unit 211 and the second rendering processing unit 212 each analyze the intermediate data of the entire page and operate in parallel to render the band area assigned to each.

<第1レンダリング処理>
まずは、第1レンダリング処理部211が担当する第1のバンド(ここでは奇数バンド)についてのレンダリング処理(第1レンダリング処理)について説明する。図8は、本実施例に係る、第1レンダリング処理の流れを示すフローチャートである。
<First rendering process>
First, the rendering process (first rendering process) for the first band (here, the odd band) in charge of the first rendering processing unit 211 will be described. FIG. 8 is a flowchart showing the flow of the first rendering process according to this embodiment.

ステップ801では、第1レンダリング処理部211が、ステップ302で生成された中間データに含まれる命令を1つ読み込む。中間データに含まれる命令のうちどれを読み込むのかはポインタによって管理され、先頭の命令から順に読み込まれる。ポインタによって指し示された命令の読み込みが完了すると、ポインタは次の命令へと移行する。こうして、中間データに含まれる命令が順次読み込まれる。 In step 801 the first rendering processing unit 211 reads one instruction included in the intermediate data generated in step 302. Which of the instructions contained in the intermediate data is read is managed by the pointer, and is read in order from the first instruction. When the reading of the instruction pointed to by the pointer is completed, the pointer moves to the next instruction. In this way, the instructions included in the intermediate data are read in sequence.

ステップ802では、第1レンダリング処理部211が、ステップ801で読み込んだ命令が、ページ終了命令かどうか判定される。読み込んだ命令が、ページ終了命令でない場合はステップ803に進む。一方、ページ終了命令である場合は本処理を終える。 In step 802, the first rendering processing unit 211 determines whether the instruction read in step 801 is a page end instruction. If the read instruction is not a page end instruction, the process proceeds to step 803. On the other hand, if it is a page end command, this process ends.

ステップ803では、第1レンダリング処理部211が、オブジェクトの描画を指示する描画命令かどうか判定する。読み込んだ命令が、描画命令でない場合はステップ804に進む。一方、描画命令である場合はステップ807に進む。 In step 803, the first rendering processing unit 211 determines whether or not it is a drawing command instructing the drawing of the object. If the read instruction is not a drawing instruction, the process proceeds to step 804. On the other hand, if it is a drawing command, the process proceeds to step 807.

ステップ804では、第1レンダリング処理部211が、ステップ801で読み込んだ命令が圧縮画像伸長命令かどうか判定する。読み込んだ命令が圧縮画像伸長命令である場合はステップ805に進む。一方、圧縮画像伸長命令でない場合はステップ811に進む。 In step 804, the first rendering processing unit 211 determines whether the instruction read in step 801 is a compressed image decompression instruction. If the read command is a compressed image decompression command, the process proceeds to step 805. On the other hand, if it is not a compressed image expansion command, the process proceeds to step 811.

ステップ805では、第1レンダリング処理部211が、読み込んだ圧縮画像伸長命令の数(伸長指示数)をカウントする。伸長命令が読み込まれると伸長処理部213に圧縮画像の伸長が指示されるので、このときの第1レンダリング処理部211は、伸長処理部213に出した伸長指示数をカウントするカウント部に対応している。その初期値は“0”であり、図6の中間データの場合、オブジェクト403に対応する圧縮画像伸張命令607を読み込んだ時点で、カウント値は“3”となる。このカウント値は、ページ終了命令を読み込んだ際にリセットされ初期値“0”に戻る。つまり、カウントされる圧縮画像伸長命令の数はページ毎にリセットされ、バンド毎にはリセットされない。 In step 805, the first rendering processing unit 211 counts the number of read compressed image decompression instructions (decompression instructions). When the decompression instruction is read, the decompression processing unit 213 is instructed to decompress the compressed image. Therefore, the first rendering processing unit 211 at this time corresponds to the counting unit that counts the number of decompression instructions issued to the decompression processing unit 213. ing. The initial value is "0", and in the case of the intermediate data of FIG. 6, the count value becomes "3" when the compressed image expansion command 607 corresponding to the object 403 is read. This count value is reset when the page end instruction is read and returns to the initial value "0". That is, the number of compressed image expansion instructions to be counted is reset for each page, not for each band.

ステップ806では、第1レンダリング処理部211が、読み込まれた圧縮画像伸張命令に係る圧縮画像の伸張を、伸長処理部213に指示する。当該指示を受けて伸長処理部213は、対象の圧縮画像を伸張し、伸長画像格納用メモリ220としてのRAM102に伸張された画像を展開する。圧縮画像の伸長処理が完了すると、伸長処理部213は、処理が完了した伸長指示の数を内部レジスタに格納する。なお、この内部レジスタの初期値は“0”であり、本フローの終了時にリセットされ、再び“0”となる。第1レンダリング処理部211によって圧縮画像の伸張が指示された後は、ステップ801に戻る。 In step 806, the first rendering processing unit 211 instructs the decompression processing unit 213 to decompress the compressed image according to the read compressed image decompression command. In response to the instruction, the decompression processing unit 213 decompresses the target compressed image and expands the decompressed image in the RAM 102 as the decompressed image storage memory 220. When the decompression processing of the compressed image is completed, the decompression processing unit 213 stores the number of decompression instructions for which the processing is completed in the internal register. The initial value of this internal register is "0", which is reset at the end of this flow and becomes "0" again. After the expansion of the compressed image is instructed by the first rendering processing unit 211, the process returns to step 801.

ステップ807では、第1レンダリング処理部211が、ステップ801で読み込んだ描画命令によってオブジェクトが描画されることになるスキャンライン上での、当該オブジェクトのエッジの座標(X座標)を導出する。例えば図7におけるオブジェクト401の場合であれば、その輪郭となる矩形の左右両端2箇所のX座標が導出されることになる。ここで導出されたエッジの座標情報は、後述のエッジソート処理(ステップ901)で用いられる。なお、本ステップでは、1つのオブジェクトについて、隣接する他方のバンド(ここでは、偶数バンド)に属する部分のエッジ座標も導出される。これは、あるスキャンライン上のエッジ座標の導出には、そのスキャンラインの1つ前のスキャンライン上のエッジ座標を用いるようにしているためである。例えば、あるエッジの座標が、スキャンラインが1つ進むごとにΔxだけずれるならば、直前のエッジ座標にΔxを加算することで、導出対象エッジの座標を簡単に求めることができる。こうして、エッジ座標の導出を終えた描画命令は、この後のスキャンライン処理に備え、スプールされる。 In step 807, the first rendering processing unit 211 derives the coordinates (X coordinates) of the edges of the object on the scan line on which the object is drawn by the drawing command read in step 801. For example, in the case of the object 401 in FIG. 7, the X coordinates of the two left and right ends of the rectangle serving as the outline are derived. The coordinate information of the edge derived here is used in the edge sorting process (step 901) described later. In this step, the edge coordinates of the portion belonging to the other adjacent band (here, even band) are also derived for one object. This is because the edge coordinates on the scan line immediately before the scan line are used to derive the edge coordinates on a certain scan line. For example, if the coordinates of a certain edge deviate by Δx each time the scan line advances, the coordinates of the edge to be derived can be easily obtained by adding Δx to the coordinates of the immediately preceding edge. In this way, the drawing instruction for which the derivation of the edge coordinates has been completed is spooled in preparation for the subsequent scanline processing.

ステップ808では、第1レンダリング処理部211が、ステップ807でスプールした描画命令に続く命令(次の読込み対象の命令)が描画命令であるかどうかをポインタに基づき判定する。これは、後に行なうスキャンライン処理を、Y座標方向に近接した位置にある複数のオブジェクトについてまとめて処理するためである。次の読込み対象の命令が描画命令である場合は、ステップ809に進む。一方、次の読込み対象の命令が描画命令以外の命令である場合は、ステップ810に進む。 In step 808, the first rendering processing unit 211 determines based on the pointer whether or not the instruction following the drawing instruction spooled in step 807 (the instruction to be read next) is a drawing instruction. This is because the scan line processing to be performed later is collectively processed for a plurality of objects located close to each other in the Y coordinate direction. If the next instruction to be read is a drawing instruction, the process proceeds to step 809. On the other hand, if the next instruction to be read is an instruction other than the drawing instruction, the process proceeds to step 810.

ステップ809では、第1レンダリング処理部211が、現時点でスプールされているすべての描画命令における描画範囲と、次の読込み対象の描画命令における描画範囲とが、Y座標の方向(副走査方向)で重なりを持つか判定する。この場合において、現時点でスプールされているすべての描画命令には、直近のステップ807でスプールされた描画命令を含む。また、次の読込み対象の描画命令は、判定のために参照するのみで実際に読込みを行なうわけではない。この判定では、現にスプールされているいずれかの描画命令による描画範囲の開始Y座標と終了Y座標との範囲と、次の読込み対象の描画命令による描画範囲の開始Y座標と終了Y座標との範囲との間に重複があるかがチェックされる。判定の結果、重なりを持つ場合は、さらに他のオブジェクトとの重なりの有無を調べるべくステップ801に戻る。一方、重なりを持たない場合は、現時点でスプールされている描画命令分の描画範囲のスキャンライン処理を行うべく、ステップ810に進む。 In step 809, the first rendering processing unit 211 sets the drawing range in all the drawing commands spooled at the present time and the drawing range in the drawing command to be read next in the direction of the Y coordinate (sub-scanning direction). Determine if there is an overlap. In this case, all currently spooled drawing instructions include the drawing instructions spooled in the most recent step 807. Further, the next drawing command to be read is only referred to for determination, and is not actually read. In this determination, the range between the start Y coordinate and the end Y coordinate of the drawing range by any of the actually spooled drawing commands, and the start Y coordinate and the end Y coordinate of the drawing range by the drawing command to be read next. It is checked if there is any overlap with the range. As a result of the determination, if there is an overlap, the process returns to step 801 to check whether or not there is an overlap with another object. On the other hand, if there is no overlap, the process proceeds to step 810 in order to perform scanline processing of the drawing range for the drawing command currently spooled.

ここで、スキャンライン処理の実行が決定されるまでの実際の流れを、図6の中間データの場合を例に説明する。まず、2つのオブジェクト401及び402についての圧縮画像伸張命令603及び604が読み込まれ、対応する2つの圧縮画像の伸張が指示される(S801〜805)。続いて、オブジェクト401についての描画命令605が読み込まれてそのエッジ座標が導出され、当該描画命令605がスプールされる(S807)。次の読込み対象の命令は、オブジェクト402についての描画命令606なので、描画範囲のY座標方向での重なりの有無がチェックされ、重なり有りと判定される(S809でYes)。そして、オブジェクト402についての描画命令606が読み込まれ(S801)、そのエッジ座標の導出と当該描画命令606のスプールがなされる(S807)。この時点で、次の読込み対象の命令は、オブジェクト403についての圧縮画像伸張命令607なので、ステップ808の判定で「描画命令以外」に進むこととなり、2つの描画命令605及び606についてのスキャンライン処理がまとめて実行されることになる。なお、仮に、描画命令606と圧縮画像伸長命令607との間に、オブジェクト401及び402とY座標方向に重なった例えば図形属性のオブジェクトについての描画命令αが存在していたとする。この場合は、描画命令606のスプールがなされた時点で、次の読込み対象の命令は、当該図形オブジェクトについての描画命令αとなり、さらに描画範囲のY座標方向での重なりの有無がチェックされ、重なり有りと判定される(S809でYes)。その結果、当該図形オブジェクトについての描画命令αが読み込まれ(S801)、3つのオブジェクトについてのスキャンライン処理がまとめて実行されることになる。 Here, the actual flow until the execution of the scan line processing is determined will be described by taking the case of the intermediate data of FIG. 6 as an example. First, the compressed image decompression commands 603 and 604 for the two objects 401 and 402 are read, and the decompression of the corresponding two compressed images is instructed (S801 to 805). Subsequently, the drawing command 605 for the object 401 is read, the edge coordinates thereof are derived, and the drawing command 605 is spooled (S807). Since the next instruction to be read is the drawing instruction 606 for the object 402, the presence or absence of overlap in the Y coordinate direction of the drawing range is checked, and it is determined that there is overlap (Yes in S809). Then, the drawing command 606 for the object 402 is read (S801), the edge coordinates thereof are derived, and the drawing command 606 is spooled (S807). At this point, the next instruction to be read is the compressed image expansion instruction 607 for the object 403, so the determination in step 808 proceeds to "other than the drawing instruction", and the scan line processing for the two drawing instructions 605 and 606 is performed. Will be executed together. It is assumed that between the drawing command 606 and the compressed image stretching command 607, there is a drawing command α for an object having a graphic attribute, for example, which overlaps with the objects 401 and 402 in the Y coordinate direction. In this case, when the drawing instruction 606 is spooled, the next instruction to be read becomes the drawing instruction α for the graphic object, and the presence or absence of overlap in the Y coordinate direction of the drawing range is checked and overlapped. It is determined to be present (Yes in S809). As a result, the drawing instruction α for the graphic object is read (S801), and the scan line processing for the three objects is executed collectively.

ステップ810では、第1レンダリング処理部211が、現時点でスプールされている描画命令分の描画範囲を対象にスキャンライン処理を実行する。ここでは、奇数バンド(図7の例では、1バンド目、3バンド目、5バンド目)の領域についてのビットマップ画像データが生成されることになる。このスキャンライン処理の詳細については、後述する。 In step 810, the first rendering processing unit 211 executes the scan line processing for the drawing range for the drawing command currently spooled. Here, the bitmap image data for the region of the odd band (in the example of FIG. 7, the first band, the third band, and the fifth band) is generated. Details of this scanline processing will be described later.

ステップ811では、第1レンダリング処理部211が、描画命令及び圧縮画像伸張命令以外の命令(描画フレーム設定命令や描画領域設定命令など)に基づく処理を実行する。例えば、描画フレーム設定命令601に基づいて処理対象ページの階調数の設定などが実行される。なお、図6の中間データを見れば分かるように、描画フレーム設定命令や描画領域設定命令は、レンダリング処理の最初の段階で実行される。 In step 811, the first rendering processing unit 211 executes processing based on commands other than the drawing command and the compressed image expansion command (drawing frame setting command, drawing area setting command, and the like). For example, the gradation number of the processing target page is set based on the drawing frame setting instruction 601. As can be seen from the intermediate data in FIG. 6, the drawing frame setting command and the drawing area setting command are executed at the first stage of the rendering process.

ステップ812では、第1レンダリング処理部211が、中間データ内のすべての命令についての処理が完了したか判定する。未処理の命令があればステップ801に戻り、次の命令を読み込む。なお、未処理の命令があるということは、ページ終了命令以外の命令が残っていることを意味している。 In step 812, the first rendering processing unit 211 determines whether the processing for all the instructions in the intermediate data has been completed. If there is an unprocessed instruction, the process returns to step 801 and the next instruction is read. In addition, the fact that there is an unprocessed instruction means that an instruction other than the page end instruction remains.

以上が、第1レンダリング処理部211が担当する奇数バンド領域についての第1レンダリング処理の内容である。なお、第1レンダリング処理部が偶数バンドを担当するような構成であってもよい。 The above is the content of the first rendering process for the odd-numbered band area in charge of the first rendering processing unit 211. The first rendering processing unit may be in charge of even-numbered bands.

<スキャンライン処理>
続いて、上述のステップ810におけるスキャンライン処理の詳細について説明する。この処理は、Y座標方向にまとまりのある1以上のオブジェクトに関する、スプールされている描画命令分の描画範囲内の開始Y座標のスキャンラインから順に、スキャンライン毎に行われる。以下では、描画範囲内のスキャンラインのうち処理対象となるスキャンラインのことを「注目スキャンライン」と呼ぶこととする。図9は、スキャンライン処理の詳細を示すフローチャートである。以下、図9のフローに沿って説明する。
<Scan line processing>
Subsequently, the details of the scan line processing in step 810 described above will be described. This process is performed for each scan line in order from the scan line of the start Y coordinate within the drawing range of the spooled drawing command for one or more objects that are cohesive in the Y coordinate direction. In the following, among the scan lines within the drawing range, the scan line to be processed will be referred to as a “attention scan line”. FIG. 9 is a flowchart showing the details of the scan line processing. Hereinafter, description will be given according to the flow of FIG.

ステップ901では、スプールされている描画命令分の描画範囲内のスキャンラインの中から注目スキャンラインが決定される。処理開始直後の段階では、上述のとおり開始Y座標のスキャンラインが注目スキャンラインに決定される。 In step 901, the scan line of interest is determined from the scan lines within the drawing range of the spooled drawing instructions. Immediately after the start of the process, the scan line at the start Y coordinate is determined as the scan line of interest as described above.

ステップ902では、注目スキャンラインについて、エッジソート処理がなされる。具体的には、まず、注目スキャンライン上に現れる1つまたは複数のオブジェクトを特定する。そして、当該特定されたオブジェクトについて、前述のステップ807で導出されたエッジ座標から注目スキャンラインにおけるエッジ座標を取得し、当該特定されたオブジェクトをX座標昇順で並び替える。この並び替えによって、ビットマップ画像データにおける画素値の生成をX座標昇順で行なうことが可能になる。 In step 902, edge sorting processing is performed on the scan line of interest. Specifically, first, one or a plurality of objects appearing on the attention scan line are identified. Then, with respect to the specified object, the edge coordinates in the scan line of interest are acquired from the edge coordinates derived in step 807, and the specified objects are sorted in ascending order of X coordinates. This sorting makes it possible to generate pixel values in bitmap image data in ascending X-coordinate order.

ステップ903では、注目スキャンラインについて、レベルソート処理がなされる。具体的には、ステップ902で順番に並べたエッジ間(スパン)の画素の色に影響を与えるオブジェクトをさらに特定し、当該特定されたオブジェクトをレベル順に並べ替える。 In step 903, the level sorting process is performed on the scan line of interest. Specifically, the objects that affect the color of the pixels between the edges (spans) arranged in order in step 902 are further specified, and the specified objects are rearranged in level order.

ステップ904では、伸張指示がなされた圧縮画像についての伸張処理がすべて完了したかどうか判定される。具体的には、前述のステップ805で得られた伸長指示数(カウント値)と、伸長処理部213の内部レジスタのカウント値(伸張処理が完了した画像数)とを比較する。伸張指示数のカウント値よりも伸長処理部213の内部レジスタのカウント値が小さい場合は、等しくなるまで(例えば一定間隔毎に)比較を繰り返す。なお、一定間隔毎の比較に代えて、例えば1つの圧縮画像に対する伸張処理が完了する毎に比較を行ってもよい。このような比較の結果、両カウント値が等しくなれば、ステップ905に進む。前述の2つの描画命令605及び606についてのスキャンライン処理の場合、ステップ805で読み込む圧縮画像伸長命令の数は“2”であるため、内部レジスタのカウンタ値(伸張処理が完了した画像数)が“2”となった段階でステップ905に進むことになる。 In step 904, it is determined whether or not all the decompression processing for the compressed image for which the decompression instruction has been given is completed. Specifically, the number of expansion instructions (count value) obtained in step 805 described above is compared with the count value (number of images for which expansion processing has been completed) in the internal register of the expansion processing unit 213. If the count value of the internal register of the expansion processing unit 213 is smaller than the count value of the expansion instruction number, the comparison is repeated until they become equal (for example, at regular intervals). Instead of the comparison at regular intervals, for example, the comparison may be performed every time the decompression process for one compressed image is completed. As a result of such comparison, if both count values are equal, the process proceeds to step 905. In the case of the scanline processing for the two drawing instructions 605 and 606 described above, the number of compressed image decompression instructions read in step 805 is "2", so the counter value of the internal register (the number of images for which the decompression processing is completed) is When it becomes "2", the process proceeds to step 905.

ステップ905では、注目スキャンラインが処理対象のバンド(ここでは奇数番目)に含まれているかどうか判定される。注目スキャンラインが処理対象のバンドに含まれている場合は、ステップ906に進む。一方、注目スキャンラインが非処理対象のバンド(ここでは偶数番目)に含まれている場合は、ステップ907に進む。 In step 905, it is determined whether or not the scan line of interest is included in the band to be processed (here, the odd number). If the scan line of interest is included in the band to be processed, the process proceeds to step 906. On the other hand, if the scan line of interest is included in the band to be non-processed (here, even-numbered), the process proceeds to step 907.

ステップ906では、注目スキャンラインについて、ビットマップ画像データにおける画素値を生成するフィル処理がなされる。描画対象のオブジェクトが、圧縮画像の写真オブジェクトである本実施例の場合、伸長画像格納用メモリ220に展開された伸長画像のデータを読み出し、レベルソートされたオブジェクトに基づいてスパン毎に、画素値の生成が行なわれる。生成された画素値は、処理対象ページのビットマップ画像データにおける画素値として、RAM102に格納される。 In step 906, a fill process is performed on the scan line of interest to generate pixel values in the bitmap image data. In the case of this embodiment in which the object to be drawn is a photographic object of a compressed image, the data of the expanded image expanded in the expanded image storage memory 220 is read out, and the pixel value is set for each span based on the level-sorted object. Is generated. The generated pixel value is stored in the RAM 102 as a pixel value in the bitmap image data of the processing target page.

ステップ907では、スプールされている描画命令分の描画範囲内のスキャンラインの処理が完了したか判定される。未処理のスキャンラインがある場合は、ステップ901に戻って次の注目スキャンラインを決定して処理を続行する。一方、処理が完了している場合は、ステップ908に進み、スプールされている描画命令を破棄して本処理を抜ける。 In step 907, it is determined whether or not the processing of the scan line within the drawing range for the spooled drawing command is completed. If there are unprocessed scanlines, the process returns to step 901 to determine the next scanline of interest and continue processing. On the other hand, when the process is completed, the process proceeds to step 908, the spooled drawing instruction is discarded, and the present process is exited.

ここで、図7の3バンド目についてのスキャンライン処理を例に具体的に説明する。図10は、伸長画像格納用メモリ220としてのRAM102内に画像データが格納される様子を表した図である。図10において、領域1010は圧縮画像伸長命令603によって伸長された画像データを格納するために確保された領域であり、領域1020は圧縮画像伸長命令604によって伸長された画像データを格納するために確保された領域である。このように、RAM102の内部に2つの領域が連続して確保される。なお、領域1010は、後述の第2レンダリング処理によっても参照され、必要な画像データが読み出される。第1レンダリング処理部211は、描画命令605及び606に基づき、RAM102から圧縮画像伸長命令603及び604による伸長が完了した画像データを読み出す。このとき、第1レンダリング処理部211が読み出すのは、3バンド目の領域内に存在する画像データのみである。いま3バンド目にはオブジェクト401と402の2つのオブジェクトがある。例えばオブジェクト401の場合、まず、描画命令605に含まれる開始座標とパス点列によって表現される矩形領域の幅及び高さとから、3バンド目の領域内における画像データサイズが算出される。ここで、オブジェクト401の幅は2304−256=2048ピクセルであり、オブジェクト401全体の4分の1に相当する高さは3072(1024×3)−2816=256ピクセルである。それがRGBの3チャンネル分となるので、3バンド目の領域内におけるオブジェクトの401の画像データサイズは、2048×256×3=1572864byte(階調8bit:0x180000)となる。そして、伸長後画像の先頭アドレスに上記算出した画像データサイズを足して得られる値(0x02000000+0x180000=0x02180000)が、オブジェクト401についての4バンド目の先頭アドレスとなる。第1のレンダリング処理では、オブジェクト401についての3バンド目の終端画素までを用いる。したがって、第1のレンダリング処理では、オブジェクト401について0x02180000以降の読み出しを省略する。オブジェクト401についての3バンド目の終端画素のアドレスは、4バンド目の先頭アドレス(0x02180000)−1ピクセル(3byte)=0x217FFFDである。第1のレンダリング処理に用いられるデータの末尾アドレスは、4バンド目の先頭アドレス(0x02180000)−1byte=0x217FFFFである。このように、本実施例では、画像データの読み出しの一部を省略することで処理コストを低減できる。
こうした一連の処理がオブジェクト402についても同様になされる。こうして、処理対象バンドである3バンド目に含まれるオブジェクト401及び402の上部4分の1に相当する一部画像1031と1032の画像データが読み出されることになる。そして、第1レンダリング処理部211は、当該読み出した一部画像データについてのフィル処理を行う。フィル処理によって生成された、一部画像1031と1032に対応する部分の画素値は、RAM102に格納される。最終的なビットマップ画像データは、第1レンダリング処理によって生成される画素値と、後述の第2レンダリング処理によって生成される画素値とによって構成される。すなわち、本実施例に係るバンド並列レンダリング処理によって得られる、ページ単位のビットマップ画像データの画素値は、2つのレンダリング処理部がそれぞれ生成した画素値の集合である。
Here, the scan line processing for the third band of FIG. 7 will be specifically described as an example. FIG. 10 is a diagram showing how image data is stored in the RAM 102 as the extended image storage memory 220. In FIG. 10, the area 1010 is an area reserved for storing the image data stretched by the compressed image stretching command 603, and the area 1020 is reserved for storing the image data stretched by the compressed image stretching command 604. This is the area that has been created. In this way, two areas are continuously secured inside the RAM 102. The area 1010 is also referred to by the second rendering process described later, and necessary image data is read out. The first rendering processing unit 211 reads out the image data that has been decompressed by the compressed image decompression commands 603 and 604 from the RAM 102 based on the drawing commands 605 and 606. At this time, the first rendering processing unit 211 reads only the image data existing in the region of the third band. Now, in the third band, there are two objects, objects 401 and 402. For example, in the case of the object 401, first, the image data size in the third band area is calculated from the start coordinates included in the drawing command 605 and the width and height of the rectangular area represented by the path point sequence. Here, the width of the object 401 is 2304-256 = 2048 pixels, and the height corresponding to a quarter of the entire object 401 is 3072 (1024 × 3) -2816 = 256 pixels. Since it corresponds to 3 channels of RGB, the image data size of the object 401 in the region of the 3rd band is 2048 × 256 × 3 = 1572864 bytes (gradation 8 bits: 0 × 180000). Then, the value (0x02000000 + 0x180000 = 0x02180000) obtained by adding the calculated image data size to the start address of the expanded image becomes the start address of the fourth band for the object 401. In the first rendering process, up to the end pixel of the third band of the object 401 is used. Therefore, in the first rendering process, reading of the object 401 after 0x02180000 is omitted. The address of the end pixel of the third band for the object 401 is the start address (0x02180000) of the fourth band-1 pixel (3byte) = 0x217FFFD. The end address of the data used in the first rendering process is the start address of the fourth band (0x02180000) -1byte = 0x217FFFF. As described above, in this embodiment, the processing cost can be reduced by omitting a part of reading the image data.
Such a series of processing is performed for the object 402 as well. In this way, the image data of the partial images 1031 and 1032 corresponding to the upper quarters of the objects 401 and 402 included in the third band, which is the band to be processed, is read out. Then, the first rendering processing unit 211 performs fill processing on the read partial image data. The pixel values of the parts corresponding to the partial images 1031 and 1032 generated by the fill process are stored in the RAM 102. The final bitmap image data is composed of a pixel value generated by the first rendering process and a pixel value generated by the second rendering process described later. That is, the pixel value of the bitmap image data for each page obtained by the band parallel rendering process according to this embodiment is a set of pixel values generated by each of the two rendering processing units.

以上が、第1レンダリング処理部211におけるスキャンライン処理の内容である。 The above is the content of the scan line processing in the first rendering processing unit 211.

<第2レンダリング処理>
次に、第2レンダリング処理部212が担当する、第2のバンド(ここでは偶数バンド)についてのレンダリング処理(第2レンダリング処理)について説明する。図11は、本実施例に係る、第2レンダリング処理の流れを示すフローチャートである。処理対象バンドが偶数バンドとなる点を除けば、基本的には、第1レンダリング処理の流れを示した図8のフローと同様の内容である。主な違いは、第2レンダリング処理では、圧縮画像伸長命令を読み込んだ場合に、伸長指示数のカウントのみを行って、当該圧縮画像伸長命令に基づく伸長指示を伸長処理部213に対して行わない点である。以下、図11のフローチャートに沿って、第2レンダリング処理の特徴部分を中心に説明する。
<Second rendering process>
Next, the rendering process (second rendering process) for the second band (here, even-numbered bands), which the second rendering processing unit 212 is in charge of, will be described. FIG. 11 is a flowchart showing the flow of the second rendering process according to this embodiment. The contents are basically the same as the flow of FIG. 8 showing the flow of the first rendering process, except that the band to be processed is an even number band. The main difference is that in the second rendering process, when the compressed image decompression instruction is read, only the number of decompression instructions is counted, and the decompression instruction based on the compressed image decompression instruction is not given to the decompression processing unit 213. It is a point. Hereinafter, the feature portion of the second rendering process will be mainly described with reference to the flowchart of FIG.

ステップ1101〜1105は、前述の図8のフローにおけるステップ801〜805に相当する。ステップ1101で読み込む中間データは、第1レンダリング処理部211が読み込む中間データと共通のものである。上述のとおり、本フローにおいても、読み込んだ圧縮画像伸長命令の数(伸長指示数)のカウントは行うが(S1105)、その後は伸長処理部213に対する伸長指示を行うことなく、ステップ1101に戻る内容になっている。 Steps 1101 to 1105 correspond to steps 801 to 805 in the flow of FIG. 8 described above. The intermediate data read in step 1101 is the same as the intermediate data read by the first rendering processing unit 211. As described above, also in this flow, the number of read compressed image decompression instructions (decompression instruction number) is counted (S1105), but after that, the content returns to step 1101 without giving the decompression instruction to the decompression processing unit 213. It has become.

ステップ1106〜1101は、前述の図8のフローにおけるステップ807〜812に相当する。ステップ1109のスキャンライン処理の内容も、前述の図9のフローで示した内容と異なるところはないが、処理対象バンドが偶数バンドとなる点が、第1レンダリング処理との違いである。すなわち、図9のフローにおける、注目スキャンラインが処理対象バンドに含まれているかどうかの判定(S905)では、偶数番目のバンドであるかどうかが判定され、偶数番目のバンド領域についてフィル処理(S906)がなされることになる。 Steps 1106 to 1101 correspond to steps 807 to 812 in the flow of FIG. 8 described above. The content of the scan line processing in step 1109 is not different from the content shown in the flow of FIG. 9 described above, but the difference from the first rendering processing is that the processing target band is an even number band. That is, in the determination (S905) of whether or not the scan line of interest is included in the band to be processed in the flow of FIG. 9, it is determined whether or not it is an even-numbered band, and the even-numbered band region is filled (S906). ) Will be made.

ここで、再び図10を用いて、図7の4バンド目についてのスキャンライン処理を説明する。第2レンダリング処理部212も、描画命令605及び606に基づき、RAM102から圧縮画像伸長命令603及び604による伸長が完了した画像データを読み出す。このとき、第2レンダリング処理部211が読み出すのは、4バンド目の領域内に存在する画像データのみである。すなわち、処理対象バンドである4バンド目に含まれるオブジェクト401及び402の下部4分の3に相当する一部画像1033と1034の画像データが読み出されることになる。一部画像1033と1034の読み出しは、対象となる画像データのうち、第4のバンドに相当する部分のデータアドレスに直接アクセスすることで行われる。データアドレスの算出方法は第1のレンダリング処理と同様であり、画像データのデータサイズやデータ先頭アドレス、バンド領域等から算出される。例えば、4バンド目の領域内に存在するオブジェクト401の画像データは、0x02180000から読み出されることになる。オブジェクト401のパス点列(2304、3840)からオブジェクト401の終端画素が4バンド目の領域内にあることがわかる。そのため、第2のレンダリング処理では、オブジェクト401の画像データについて、0x02180000から終端アドレスまで読み出せばよい。オブジェクト401の画像データの末尾アドレスは、0x025FFFFFであり、オブジェクト401の終端画素のアドレスは、0x025FFFFDである。したがって、第2のレンダリング処理では、オブジェクト401について0x02180000よりも前のアドレスの読み出しを省略する。これを読み飛ばし(アドレスジャンプ)と呼ぶ。このように、本実施例では、画像データの読み出しの一部を省略することで処理コストを低減できる。こうした一連の処理がオブジェクト402についても同様になされる。 Here, the scan line processing for the fourth band of FIG. 7 will be described again with reference to FIG. The second rendering processing unit 212 also reads the image data that has been decompressed by the compressed image decompression commands 603 and 604 from the RAM 102 based on the drawing commands 605 and 606. At this time, the second rendering processing unit 211 reads only the image data existing in the region of the fourth band. That is, the image data of the partial images 1033 and 1034 corresponding to the lower three quarters of the objects 401 and 402 included in the fourth band, which is the band to be processed, is read out. The partial images 1033 and 1034 are read out by directly accessing the data address of the portion of the target image data corresponding to the fourth band. The method of calculating the data address is the same as that of the first rendering process, and is calculated from the data size of the image data, the data start address, the band area, and the like. For example, the image data of the object 401 existing in the region of the 4th band will be read from 0x02180000. From the path point sequence (2304, 3840) of the object 401, it can be seen that the terminal pixel of the object 401 is in the region of the fourth band. Therefore, in the second rendering process, the image data of the object 401 may be read from 0x02180000 to the terminal address. The end address of the image data of the object 401 is 0x025FFFFF, and the address of the end pixel of the object 401 is 0x025FFFFD. Therefore, in the second rendering process, the reading of the address before 0x02180000 for the object 401 is omitted. This is called skipping (address jump). As described above, in this embodiment, the processing cost can be reduced by omitting a part of reading the image data. Such a series of processing is performed for the object 402 as well.

そして、第2レンダリング処理部212は、当該読み出した一部画像データについてのフィル処理を行う。フィル処理によって生成された、一部画像1033と1034に対応する部分の画素値は、RAM102に格納される。 Then, the second rendering processing unit 212 performs fill processing on the read partial image data. The pixel values of the parts corresponding to the partial images 1033 and 1034 generated by the fill process are stored in the RAM 102.

以上が、第2レンダリング処理部212におけるスキャンライン処理の内容である。 The above is the content of the scan line processing in the second rendering processing unit 212.

なお、本実施例では、レンダリング処理部が2つのケースについて説明した。しかし、レンダリング処理部の数は複数であればよく2つに限定されない。例えば、レンダリング処理部が3つの場合であれば、そのうちの1つのレンダリング処理部が、圧縮画像の伸張指示を伸張処理部に対して行い、他のレンダリング処理部はその伸張された画像のうちの必要な部分を参照してレンダリング処理を行う。つまり、各レンダリング処理部が、1つの伸張画像を共有して用いるように構成されていればよい。 In this embodiment, the case where the rendering processing unit has two cases has been described. However, the number of rendering processing units is not limited to two as long as it is plural. For example, if there are three rendering processing units, one of the rendering processing units gives an instruction to expand the compressed image to the decompression processing unit, and the other rendering processing unit is among the expanded images. Rendering is performed by referring to the required part. That is, each rendering processing unit may be configured to share and use one stretched image.

本実施例によれば、複数のレンダリング処理部が、共通する中間データをそれぞれ読み込み、それぞれが担当するバンド領域を跨る圧縮画像の伸長結果を共有して使用しながらバンド並列レンダリング処理を行なう。そのため、バンド領域を跨ぐようにPDLデータ内に圧縮画像に対し、PDLデータの解析や中間データの生成段階において事前に伸長して、各バンド領域内に収まるように画像を分割しなくても並列処理が可能となる。これにより、バンド境界を跨ぐように圧縮画像がPDLデータ内に存在していても、レンダリングの開始の遅れを抑制することができる。 According to this embodiment, a plurality of rendering processing units each read common intermediate data, and perform band parallel rendering processing while sharing and using the expansion result of the compressed image straddling the band area in charge of each. Therefore, for the compressed image in the PDL data so as to straddle the band region, the compressed image is stretched in advance at the analysis of the PDL data and the generation stage of the intermediate data, and parallel without dividing the image so as to fit in each band region. Processing becomes possible. As a result, even if the compressed image exists in the PDL data so as to straddle the band boundary, the delay in the start of rendering can be suppressed.

実施例1では、並列に動作する複数のレンダリング処理部のうちの1つが圧縮画像の伸長指示を行い、当該伸張指示によって伸長された画像を他のレンダリング処理部でも使用する態様について説明した。次に、並列に動作する複数のレンダリング処理部の各々が伸張処理部と伸長画像格納用メモリを有する態様について、実施例2として説明する。なお、基本的な装置構成や処理フローは実施例1と同じであるので、以下では差異点について説明するものとする。 In Example 1, one of a plurality of rendering processing units operating in parallel gives an instruction to expand a compressed image, and the image expanded by the expansion instruction is also used in another rendering processing unit. Next, a mode in which each of the plurality of rendering processing units operating in parallel has a decompression processing unit and a decompression image storage memory will be described as Example 2. Since the basic device configuration and processing flow are the same as those in the first embodiment, the differences will be described below.

図12は、本実施例に係る、RIP111のハードウェア構成例を示す図である。本実施例のRIP111は、第1レンダリング処理部211’、第2レンダリング処理部212’を有し、各々のレンダリング処理部に対応する形で、第1伸長処理部1201と第2伸長処理部1202を有する。そして、さらに各々の伸長処理部に対応する形で、第1伸長画像格納用メモリ1211と第2伸長画像格納用メモリ1212が用意され、各伸張処理部で伸長された後の画像データがそれぞれ格納される。 FIG. 12 is a diagram showing a hardware configuration example of RIP111 according to this embodiment. The RIP 111 of this embodiment has a first rendering processing unit 211'and a second rendering processing unit 212', and has a first decompression processing unit 1201 and a second decompression processing unit 1202 in a form corresponding to each rendering processing unit. Has. Further, a first decompression image storage memory 1211 and a second decompression image storage memory 1212 are prepared in a form corresponding to each decompression processing unit, and image data after decompression in each decompression processing unit is stored respectively. Will be done.

そして、本実施例の場合、第1レンダリング処理部211’及び第2レンダリング処理部212’の双方が、前述の図8に示すフロー(すなわち、伸張処理部に対する伸張指示のステップを含むフロー)を実行する。最終的なビットマップ画像データは、第1レンダリング処理部211’によって生成される画素値と、第2レンダリング処理部212’によって生成される画素値とによって構成される。すなわち、本実施例に係るバンド並列レンダリング処理によって得られる、ページ単位のビットマップ画像データの画素値も、2つのレンダリング処理部がそれぞれ生成した画素値の集合である。 Then, in the case of this embodiment, both the first rendering processing unit 211'and the second rendering processing unit 212' perform the flow shown in FIG. 8 described above (that is, the flow including the step of instructing the expansion processing unit to expand). Execute. The final bitmap image data is composed of a pixel value generated by the first rendering processing unit 211'and a pixel value generated by the second rendering processing unit 212'. That is, the pixel value of the bitmap image data for each page obtained by the band parallel rendering process according to this embodiment is also a set of pixel values generated by the two rendering processing units.

なお、本実施例の場合も、レンダリング処理部の数は複数であればよく2つに限定されない。例えば、レンダリング処理部が3つの場合であれば、各レンダリング処理部が、自身が担当するバンド領域に関わる圧縮画像の伸張処理を、それぞれに対応して設けられた伸張処理部を用いて行う。そして、各レンダリング処理部が、それぞれ伸張した画像のうちの必要な部分を参照してレンダリング処理を行う。つまり、各レンダリング処理部が自身のための伸張画像を別個に生成して用いるように構成されていればよい。 In the case of this embodiment as well, the number of rendering processing units may be a plurality and is not limited to two. For example, when there are three rendering processing units, each rendering processing unit performs decompression processing of the compressed image related to the band area in charge of itself by using the decompression processing unit provided corresponding to each. Then, each rendering processing unit performs rendering processing with reference to a necessary portion of the expanded image. That is, each rendering processing unit may be configured to separately generate and use a stretched image for itself.

本実施例によれば、並列に動作する各々のレンダリング処理部が、対応する伸長処理部に伸長指示を行って別個に伸張画像を生成する。これにより、各レンダリング処理部は他のレンダリング処理部に依存する必要がなくなるので、より迅速な処理が可能となる。 According to this embodiment, each rendering processing unit operating in parallel issues a stretching instruction to the corresponding stretching processing unit to separately generate a stretched image. As a result, each rendering processing unit does not need to depend on other rendering processing units, so that faster processing becomes possible.

<変形例>
実施例1では、中間データ内に圧縮画像とその伸長指示が含まれている態様について説明した。しかしながら、中間データ内に含まれる画像は、非圧縮画像であってもよい。非圧縮画像は、伸長処理されずに描画命令に用いられる点が圧縮画像と異なる。非圧縮画像は、圧縮形式(BITMAP)、データサイズ、データ先頭アドレス、画像IDを用いて管理される。非圧縮画像の場合、データ先頭アドレスをそのまま読み飛ばし(アドレスジャンプ)処理に利用することができる。
<Modification example>
In Example 1, a mode in which a compressed image and an extension instruction thereof are included in the intermediate data has been described. However, the image included in the intermediate data may be an uncompressed image. The uncompressed image differs from the compressed image in that it is used for drawing commands without being decompressed. The uncompressed image is managed using a compressed format (BITMAP), a data size, a data start address, and an image ID. In the case of an uncompressed image, the data start address can be skipped (address jump) as it is and used for the process.

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

Claims (27)

印刷データに基づいてページ内の第1の領域をレンダリングする第1のレンダリングユニットと、
前記印刷データに基づいて前記ページ内の第2の領域をレンダリングする第2のレンダリングユニットと、
コントローラであって、
前記第1の領域と前記第2の領域に跨って配置される画像データを取得し、前記第1のレンダリングユニットに、前記取得した画像データのうち前記第1の領域内の画像データをレンダリングさせ、前記第2のレンダリングユニットに、前記取得した画像データのうち前記第2の領域内の画像データをレンダリングさせる、コントローラと、
を備え、
前記第1のレンダリングユニットは、前記取得した画像データを記憶するメモリのメモリアドレスであって、前記第1の領域を特定するためのメモリアドレスを用いて前記第1の領域内の画像データにアクセスし、
前記第2のレンダリングユニットは、前記メモリのメモリアドレスであって、前記第2の領域を特定するためのメモリアドレスを用いて前記第2の領域内の画像データにアクセスすることを特徴とする画像処理装置。
A first rendering unit that renders a first area of the page based on print data,
A second rendering unit that renders a second area within the page based on the print data, and
It ’s a controller,
Image data arranged across the first region and the second region is acquired, and the first rendering unit is made to render the image data in the first region of the acquired image data. A controller that causes the second rendering unit to render the image data in the second region of the acquired image data.
With
The first rendering unit is a memory address of a memory that stores the acquired image data, and accesses the image data in the first area by using the memory address for specifying the first area. death,
The second rendering unit is a memory address of the memory, and is an image characterized in that the image data in the second area is accessed by using the memory address for specifying the second area. Processing equipment.
前記コントローラは、
前記取得した画像データのうち前記第1の領域における矩形領域の先端画素のメモリアドレスと、前記取得した画像データのうち前記第の領域における矩形領域の終端画素のメモリアドレスと、に基づいて、前記第1のレンダリングユニットに前記第1の領域内の画像データをレンダリングさせ、
前記取得した画像データのうち前記第2の領域における矩形領域の先端画素のメモリアドレスと、前記取得した画像データのうち前記第2の領域における矩形領域の終端画素のメモリアドレスと、に基づいて、前記第2のレンダリングユニットに前記第2の領域内の画像データをレンダリングさせる、
ことを特徴とする請求項1に記載の画像処理装置。
The controller
Based on the memory address of the tip pixel of the rectangular region in the first region of the acquired image data and the memory address of the end pixel of the rectangular region of the first region of the acquired image data. The first rendering unit is made to render the image data in the first region.
Based on the memory address of the tip pixel of the rectangular region in the second region of the acquired image data and the memory address of the end pixel of the rectangular region of the second region of the acquired image data. Let the second rendering unit render the image data in the second region.
The image processing apparatus according to claim 1.
前記コントローラは、前記取得した画像データの特定画素のメモリアドレスを、少なくとも前記取得した画像データの先頭メモリアドレスに基づいて取得することを特徴とする請求項2に記載の画像処理装置。 The image processing apparatus according to claim 2, wherein the controller acquires a memory address of a specific pixel of the acquired image data based on at least the head memory address of the acquired image data. 前記コントローラは、前記取得した画像データの特定画素のメモリアドレスを、少なくとも前記第1の領域を特定する領域情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。 The image processing apparatus according to claim 2, wherein the controller acquires a memory address of a specific pixel of the acquired image data based on at least area information that specifies the first area. 前記コントローラは、前記取得した画像データの特定画素のメモリアドレスを、少なくとも前記第2の領域を特定する領域情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。 The image processing apparatus according to claim 2, wherein the controller acquires a memory address of a specific pixel of the acquired image data based on at least area information that specifies the second area. 前記コントローラは、前記取得した画像データの特定画素のメモリアドレスを、少なくとも当該画像データの前記矩形領域の先頭位置を示す情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。 The image processing apparatus according to claim 2, wherein the controller acquires a memory address of a specific pixel of the acquired image data at least based on information indicating a start position of the rectangular region of the image data. .. 前記コントローラは、前記取得した画像データの特定画素のメモリアドレスを、少なくとも当該画像データのチャンネルを示す情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。 The image processing apparatus according to claim 2, wherein the controller acquires a memory address of a specific pixel of the acquired image data at least based on information indicating a channel of the image data. 前記コントローラは、前記取得した画像データの特定画素のメモリアドレスを、少なくとも当該画像データの前記矩形領域のサイズを示す情報に基づいて取得することを特徴とする請求項2に記載の画像処理装置。 The image processing apparatus according to claim 2, wherein the controller acquires a memory address of a specific pixel of the acquired image data based on at least information indicating the size of the rectangular area of the image data. 前記第1の領域は前記ページをバンド単位で区切った複数バンド領域のうちの所定のバンド領域であり、前記第2の領域は前記複数バンド領域のうちの前記所定のバンド領域とは異なるバンド領域であることを特徴とする請求項1に記載の画像処理装置。 The first region is a predetermined band region in a plurality of band regions in which the page is divided into band units, and the second region is a band region different from the predetermined band region in the plurality of band regions. The image processing apparatus according to claim 1, wherein the image processing apparatus is characterized by the above. 前記コントローラは、前記第1のレンダリングユニットのレンダリング結果と、前記第2のレンダリングユニットのレンダリング結果とに基づきラスタ形式の画像データを取得することを特徴とする請求項1に記載の画像処理装置。 The image processing apparatus according to claim 1, wherein the controller acquires image data in raster format based on the rendering result of the first rendering unit and the rendering result of the second rendering unit. 前記コントローラは、
前記ページ内の画像データのうち圧縮された画像データを伸長する伸長回路を備え、前記伸長回路で伸長された画像データに基づいて前記第1のレンダリングユニットに前記第1の領域内の画像データをレンダリングさせ、
前記伸長回路で伸長された前記画像データに基づいて前記第2のレンダリングユニットに前記第2の領域内の画像データをレンダリングさせる、
ことを特徴とする請求項1に記載の画像処理装置。
The controller
An expansion circuit for decompressing the compressed image data among the image data in the page is provided, and the image data in the first region is transmitted to the first rendering unit based on the image data decompressed by the decompression circuit. Render and
The second rendering unit renders the image data in the second region based on the image data stretched by the stretching circuit.
The image processing apparatus according to claim 1.
前記コントローラは、
前記伸長回路で伸長された画像データを格納するメモリを備え、
前記メモリに格納された前記伸長された画像データに基づいて前記第1のレンダリングユニットに前記第1の領域内の画像データをレンダリングさせ、
前記メモリに格納された前記伸長された画像データに基づいて前記第2のレンダリングユニットに前記第2の領域内の画像データをレンダリングさせる、
ことを特徴とする請求項11に記載の画像処理装置。
The controller
A memory for storing image data stretched by the stretch circuit is provided.
The first rendering unit renders the image data in the first area based on the stretched image data stored in the memory.
The second rendering unit renders the image data in the second area based on the stretched image data stored in the memory.
The image processing apparatus according to claim 11.
前記伸長回路は、前記第1のレンダリングユニット及び前記第2のレンダリングユニットのうちいずれか一方からの伸張指示に基づいて、前記圧縮された画像データを伸張することを特徴とする請求項11に記載の画像処理装置。 11. The decompression circuit according to claim 11, wherein the decompression circuit decompresses the compressed image data based on an decompression instruction from either the first rendering unit or the second rendering unit. Image processing equipment. 印刷データに基づいて中間データをページ単位で生成する生成ユニットと、
前記中間データに基づいてページ内の第1の領域をレンダリングする第1のレンダリングユニットと、
前記中間データに基づいてページ内の第2の領域をレンダリングする第2のレンダリングユニットと、
を備えた画像処理装置の制御方法であって、
前記印刷データに基づいて前記第1の領域と前記第2の領域を跨る圧縮された画像データを含むページの中間データを前記生成ユニットに生成させるステップと、
前記圧縮された画像データを伸長した画像データに基づいて前記第1のレンダリングユニットに前記第1の領域をレンダリングさせ、前記圧縮された画像データを伸長した画像データに基づいて前記第2のレンダリングユニットに前記第2の領域をレンダリングさせるステップと、
を含み、
前記第1のレンダリングユニットは、前記画像データを記憶するメモリのメモリアドレスであって、前記第1の領域を特定するためのメモリアドレスを用いて前記第1の領域内の画像データにアクセスし、
前記第2のレンダリングユニットは、前記メモリのメモリアドレスであって、前記第2の領域を特定するためのメモリアドレスを用いて前記第2の領域内の画像データにアクセスする、
ことを特徴とする制御方法。
A generation unit that generates intermediate data on a page-by-page basis based on print data,
A first rendering unit that renders a first area in the page based on the intermediate data,
A second rendering unit that renders a second area in the page based on the intermediate data,
It is a control method of an image processing device equipped with
A step of causing the generation unit to generate intermediate data of a page including compressed image data straddling the first region and the second region based on the print data.
The first rendering unit renders the first region based on the decompressed image data of the compressed image data, and the second rendering unit is based on the decompressed image data of the compressed image data. And the step of rendering the second area
Including
The first rendering unit is a memory address of a memory for storing the image data, and accesses the image data in the first area by using the memory address for specifying the first area.
The second rendering unit is a memory address of the memory, and accesses the image data in the second area by using the memory address for specifying the second area.
A control method characterized by that.
コンピュータを、請求項1乃至13のいずれか1項に記載の画像処理装置として機能させるためのプログラム。 A program for causing a computer to function as the image processing device according to any one of claims 1 to 13. 印刷データに基づき、ページを第1の領域と第2の領域に分けてレンダリングする画像処理装置であって、
前記第1の領域と前記第2の領域に跨って配置される画像データを格納するメモリと、
前記メモリに格納された画像データにアクセスし、当該画像データのうち前記第1の領域内の画像データを用いてレンダリングする第1のレンダラと、
前記メモリに格納された画像データにアクセスし、当該画像データのうち前記第2の領域内の画像データを用いてレンダリングする第2のレンダラと、
を備えたことを特徴とする画像処理装置。
An image processing device that renders a page by dividing it into a first area and a second area based on print data.
A memory for storing image data arranged across the first area and the second area, and
A first renderer that accesses the image data stored in the memory and renders using the image data in the first area of the image data.
A second renderer that accesses the image data stored in the memory and renders using the image data in the second area of the image data.
An image processing device characterized by being equipped with.
前記第1のレンダラは、前記第1の領域における矩形領域の先端画素のメモリアドレスと、前記第の領域における矩形領域の終端画素のメモリアドレスと、に基づいて、前記第1の領域内の画像データをレンダリングし、
前記第2のレンダラは、前記第2の領域における矩形領域の先端画素のメモリアドレスと、前記第2の領域における矩形領域の終端画素のメモリアドレスと、に基づいて、前記第2の領域内の画像データをレンダリングする、
ことを特徴とする請求項16に記載の画像処理装置。
The first renderer is in the first area based on the memory address of the tip pixel of the rectangular area in the first area and the memory address of the end pixel of the rectangular area in the first area. Render the image data
The second renderer is in the second area based on the memory address of the tip pixel of the rectangular area in the second area and the memory address of the end pixel of the rectangular area in the second area. Render image data,
The image processing apparatus according to claim 16.
前記メモリに格納された画像データの特定画素のメモリアドレスは、少なくとも当該画像データの先頭メモリアドレスに基づいて取得されることを特徴とする請求項17に記載の画像処理装置。 Memory address of a particular pixel of the image data stored in said memory, an image processing apparatus according to claim 17, characterized in that it is obtained based on at least the first memory address of those該画image data. 前記メモリに格納された画像データの特定画素のメモリアドレス情報は、少なくとも前記第1の領域を特定する領域情報に基づいて取得される請求項17に記載の画像処理装置。 The image processing apparatus according to claim 17, wherein the memory address information of the specific pixel of the image data stored in the memory is acquired based on at least the area information for specifying the first area. 前記メモリに格納された画像データの特定画素のメモリアドレスは、少なくとも前記第2の領域を特定する領域情報に基づいて取得される請求項17に記載の画像処理装置。 The image processing apparatus according to claim 17, wherein the memory address of the specific pixel of the image data stored in the memory is acquired at least based on the area information for specifying the second area. 前記メモリに格納された画像データの特定画素のメモリアドレスは、少なくとも当該画像データの前記矩形領域の先頭位置を示す情報に基づいて取得される請求項17に記載の画像処理装置。 The image processing apparatus according to claim 17, wherein the memory address of the specific pixel of the image data stored in the memory is acquired at least based on the information indicating the head position of the rectangular region of the image data. 前記メモリに格納された画像データの特定画素のメモリアドレスは、少なくとも前記画像データのチャンネルを示す情報に基づいて取得される請求項17に記載の画像処理装置。 The image processing apparatus according to claim 17, wherein the memory address of a specific pixel of the image data stored in the memory is acquired at least based on the information indicating the channel of the image data. 前記メモリに格納された画像データの特定画素のメモリアドレスは、少なくとも前記画像データの前記矩形領域のサイズを示す情報に基づいて取得される請求項17に記載の画像処理装置。 The image processing apparatus according to claim 17, wherein the memory address of a specific pixel of the image data stored in the memory is acquired at least based on information indicating the size of the rectangular region of the image data. 前記第1の領域は前記ページをバンド単位で区切った複数バンド領域のうちの所定のバンド領域であり、前記第2の領域は前記複数バンド領域のうちの前記所定のバンド領域とは異なるバンド領域であることを特徴とする請求項16に記載の画像処理装置。 The first region is a predetermined band region in a plurality of band regions in which the page is divided into band units, and the second region is a band region different from the predetermined band region in the plurality of band regions. The image processing apparatus according to claim 16, wherein the image processing apparatus is characterized by the above. 前記第1のレンダラのレンダリング結果と、前記第2のレンダラのレンダリング結果とに基づき、前記ページのラスタ形式の画像データが生成されることを特徴とする請求項16に記載の画像処理装置。 The image processing apparatus according to claim 16, wherein image data in raster format of the page is generated based on the rendering result of the first renderer and the rendering result of the second renderer. 前記ページ内の画像データのうち圧縮された画像データを伸長する伸長回路を備え、
前記第1のレンダラは、前記伸長回路で伸長された画像データに基づいて前記第1の領域内の画像データをレンダリングし、
前記第2のレンダラは、前記伸長回路で伸長された画像データに基づいて前記第2の領域内の画像データをレンダリングする、
ことを特徴とする請求項16に記載の画像処理装置。
A decompression circuit for decompressing the compressed image data among the image data in the page is provided.
The first renderer renders the image data in the first region based on the image data stretched by the stretch circuit.
The second renderer renders the image data in the second region based on the image data stretched by the stretch circuit.
The image processing apparatus according to claim 16.
前記伸長回路で伸長された画像データを格納するメモリを備え、
前記第1のレンダラは、前記メモリに格納された前記伸長された画像データに基づいて前記第1の領域内の画像データをレンダリングし、
前記第2のレンダラは、前記メモリに格納された前記伸長された画像データに基づいて前記第2の領域内の画像データをレンダリングする、
ことを特徴とする請求項26に記載の画像処理装置。
A memory for storing image data stretched by the stretch circuit is provided.
The first renderer renders the image data in the first area based on the stretched image data stored in the memory.
The second renderer renders the image data in the second region based on the stretched image data stored in the memory.
The image processing apparatus according to claim 26.
JP2017019571A 2016-03-16 2017-02-06 Image processing equipment, its control method, and programs Active JP6904717B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/454,374 US10552717B2 (en) 2016-03-16 2017-03-09 Image processing apparatus, control method thereof, and storage medium
CN201710165979.1A CN107203354B (en) 2016-03-16 2017-03-16 Image processing apparatus and control method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016052594 2016-03-16
JP2016052594 2016-03-16

Publications (3)

Publication Number Publication Date
JP2017170884A JP2017170884A (en) 2017-09-28
JP2017170884A5 JP2017170884A5 (en) 2020-03-26
JP6904717B2 true JP6904717B2 (en) 2021-07-21

Family

ID=59970122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017019571A Active JP6904717B2 (en) 2016-03-16 2017-02-06 Image processing equipment, its control method, and programs

Country Status (1)

Country Link
JP (1) JP6904717B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7030572B2 (en) * 2018-03-13 2022-03-07 キヤノン株式会社 Image processing equipment, control methods and programs

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000141811A (en) * 1998-11-11 2000-05-23 Nec Corp Printer system
JP3334661B2 (en) * 1999-02-24 2002-10-15 日本電気株式会社 Image forming apparatus and method
JP2001312383A (en) * 2000-04-28 2001-11-09 Canon Inc Printer, high speed printing method and storage medium
JP2003072162A (en) * 2001-08-31 2003-03-12 Canon Inc Printing controller, method for processing data, storage medium, and program
US20040196483A1 (en) * 2003-04-07 2004-10-07 Jacobsen Dana A. Line based parallel rendering
KR20070013171A (en) * 2005-07-25 2007-01-30 삼성전자주식회사 Image forming apparatus and the auto resistor setting method thereof
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
JP4222401B2 (en) * 2006-09-29 2009-02-12 ブラザー工業株式会社 Rasterizing apparatus, program and method
JP2012111210A (en) * 2010-11-29 2012-06-14 Konica Minolta Business Technologies Inc Apparatus, method and program for forming print data

Also Published As

Publication number Publication date
JP2017170884A (en) 2017-09-28

Similar Documents

Publication Publication Date Title
JP5531531B2 (en) Image processing system and image processing program
JP5643574B2 (en) Image processing apparatus and image processing method
US10762401B2 (en) Image processing apparatus controlling the order of storing decompressed data, and method thereof
JP6029344B2 (en) Image processing apparatus, image processing method, and program
US7869075B2 (en) Image processing apparatus and method thereof
JP2012236344A (en) Printing apparatus, data processing method for the printing apparatus and program
JP2014117861A (en) Image formation apparatus and image formation apparatus control method
JP5622787B2 (en) Image processing apparatus and program
JP2017024321A (en) Image processor, image formation device, and image processing time prediction method and program
CN107203354B (en) Image processing apparatus and control method thereof
US10593030B2 (en) Image forming apparatus capable of changing thickness of character, control method therefor, and storage medium storing control program therefor
JP2008279626A (en) Image processor and image processing program
JP6904717B2 (en) Image processing equipment, its control method, and programs
KR101945581B1 (en) Image processing apparatus, image processing method, and storage medium
JP2008107970A (en) Image forming device
US10579316B2 (en) Image processing apparatus that performs rendering processing, method of rendering processing, and storage medium
JP5936363B2 (en) Image processing apparatus and image processing method
JP6238589B2 (en) Image forming apparatus, image processing method, and program
JP2010171597A (en) Image processing apparatus
JP2010012737A (en) Print control apparatus, printing system, plotting method and program
JP2009066926A (en) Image processing device and image forming system
JP2014197349A (en) Picture processing device, information processing method, and program
JP2006031086A (en) Print processing method
JP2013006338A (en) Image processing device capable of switching configuration method of rendering system
JP2023077248A (en) Image forming device, control method thereof and program

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201214

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210624

R151 Written notification of patent or utility model registration

Ref document number: 6904717

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151