JP2006092125A - Image processor, image processing method, program and storage medium - Google Patents

Image processor, image processing method, program and storage medium Download PDF

Info

Publication number
JP2006092125A
JP2006092125A JP2004275147A JP2004275147A JP2006092125A JP 2006092125 A JP2006092125 A JP 2006092125A JP 2004275147 A JP2004275147 A JP 2004275147A JP 2004275147 A JP2004275147 A JP 2004275147A JP 2006092125 A JP2006092125 A JP 2006092125A
Authority
JP
Japan
Prior art keywords
block
blocks
sub
divided
band
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.)
Pending
Application number
JP2004275147A
Other languages
Japanese (ja)
Inventor
Takashi Furukawa
剛史 古川
Chuma Nagao
宙馬 長尾
Takayuki Nagashima
孝幸 長島
Kazuki Murakami
和希 村上
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 JP2004275147A priority Critical patent/JP2006092125A/en
Publication of JP2006092125A publication Critical patent/JP2006092125A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an image processor for shortening latency in post-stage band processing by shortening the plotting processing time of a block whose arithmetic quantity is large being a bottle neck in plotting processing by band units, and smoothing the through-put of each block. <P>SOLUTION: A block dividing part 101 divides a plotting object region of one page specified by print data into a plurality of blocks, and assigns the plotting processing of each block in each band to corresponding image processing processors 102, 103 and 104 for every band including the predetermined number of blocks. Then, when there is any block in plotting processing which should be divided into a plurality of sub-blocks in the band under processing, the block in plotting processing is divided into a plurality of sub-blocks, and the plurality of divided sub-blocks are assigned to the corresponding image processing processors 102, 103 and 104. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、ページ記述言語で記述された印刷データを解釈し、この解釈に基づいて画像データを生成するための画像処理装置、画像処理方法、プログラムおよび記憶媒体に関する。   The present invention relates to an image processing apparatus, an image processing method, a program, and a storage medium for interpreting print data described in a page description language and generating image data based on the interpretation.

一般に、画像形成装置においては、入力された、PostScriptやPDFなどのPDL(ページ記述言語)で記述された印刷データを解釈し、この解釈に基づいて各ページの画像データを生成するための画像処理装置が設けられている。ここで、印刷データは、複数種のオブジェクト(描画オブジェクト)の集合として構成することができ、そのオブジェクトとしては、図形、テキスト、その他の画像などがある。また、印刷データに基づいて生成される画像データは、1ページのラスタ画像、または圧縮形式の画像などである。この画像データは、必要に応じてページ合成や回転などの画像処理が施された後、プリンタエンジンに送出される。プリンタエンジンは、画像データに基づいて画像を用紙上に形成する。   Generally, an image forming apparatus interprets input print data described in PDL (page description language) such as PostScript or PDF, and generates image data for each page based on the interpretation. A device is provided. Here, the print data can be configured as a set of a plurality of types of objects (drawing objects), and examples of the objects include graphics, text, and other images. The image data generated based on the print data is a one-page raster image or a compressed image. The image data is subjected to image processing such as page composition and rotation as necessary, and then sent to the printer engine. The printer engine forms an image on a sheet based on the image data.

画像処理装置における印刷データの解釈には、一般に多くの演算が必要であり、この演算量は、通常、印刷データが複雑になるほど大きくなる。   Interpretation of print data in an image processing apparatus generally requires many calculations, and the amount of calculation generally increases as the print data becomes more complex.

印刷処理の高速化を図るためには,画像形成までの時間をできる限り短縮する必要がある。画像形成に掛かる時間を削減するためには、必要な画像形成処理を並列化する方法が考えられる。画像形成処理の並列化としては、例えば、複数ページの画像データを並列に処理する方法、画像処理装置により生成されたラスタ画像をタイル分割して処理する方法などがある。しかし、これらの方法を用いても、処理負荷が重い画像形成処理を高速化することは難しい。   In order to speed up the printing process, it is necessary to shorten the time until image formation as much as possible. In order to reduce the time required for image formation, a method of parallelizing necessary image formation processing can be considered. Examples of parallel image forming processing include a method of processing image data of a plurality of pages in parallel, and a method of processing a raster image generated by an image processing apparatus by dividing it into tiles. However, even if these methods are used, it is difficult to speed up an image forming process with a heavy processing load.

このため、印刷処理の高速化手法として、線または短冊状に描画対象を分割し、分割された各領域に対して並列処理を行うもの(例えば特許文献1を参照)、描画対象となる二次元領域を複数のブロックに分割するもの(例えば特許文献2を参照)などが提案されている。
特開平9−167242号公報 特開平4−170686号公報
For this reason, as a technique for speeding up the printing process, a drawing target is divided into lines or strips, and parallel processing is performed on each divided area (see, for example, Patent Document 1), a two-dimensional drawing target A device that divides an area into a plurality of blocks (see, for example, Patent Document 2) has been proposed.
JP-A-9-167242 Japanese Patent Laid-Open No. 4-170686

しかしながら、PDLで記述された描画情報を均等なブロック単位の描画情報に分割するのみでは、各ブロックに含まれるオブジェクト数の偏りによって、各ブロックの描画処理に要する演算量にばらつきが生じる。このような演算量のばらつきは、画像形成装置によるブロック単位のラスタ画像出力に対してラスタ画像処理を行う際のレイテンシのばらつきを生じさせる。そして、レイテンシが大きいブロックにより印刷処理などのライン単位の処理を行う場合、そのスループットが制限されることがある。また、演算量が多いブロックに対して最適化されたハードウェアリソースを実装すれば、レイテンシが大きくなることを抑制することは可能であるが、これには、余分なコストが掛かる。   However, if the drawing information described in PDL is only divided into drawing information in equal block units, the amount of calculation required for the drawing processing of each block varies due to the deviation of the number of objects included in each block. Such a variation in the amount of calculation causes a variation in latency when raster image processing is performed on a raster image output in units of blocks by the image forming apparatus. In addition, when a line unit process such as a printing process is performed with a block having a large latency, the throughput may be limited. Further, if hardware resources optimized for a block with a large amount of calculation are mounted, it is possible to suppress an increase in latency, but this requires an extra cost.

本発明の目的は、バンド単位の描画処理においてボトルネックとなる演算量が多いブロックの描画処理時間を短縮化し、ブロック毎のスループットを平滑化することによって、後段のバンド処理におけるレイテンシの短縮化を図ることができる画像処理装置、画像処理方法、プログラムおよび記憶媒体を提供することにある。   The object of the present invention is to shorten the latency of the subsequent band processing by shortening the rendering processing time of the block having a large amount of calculation that becomes a bottleneck in rendering processing in units of bands and smoothing the throughput of each block. An object is to provide an image processing apparatus, an image processing method, a program, and a storage medium that can be realized.

本発明は、上記目的を達成するため、複数の描画処理手段を備える画像処理装置であって、印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割手段と、所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当て手段と、前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定手段と、前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当て手段とを有することを特徴とする画像処理装置を提供する。   In order to achieve the above object, the present invention provides an image processing apparatus including a plurality of drawing processing means, and a block dividing means for dividing a drawing area defined by print data into a plurality of blocks that can be individually drawn. A block allocating unit that assigns each drawing process of the blocks included in each band including a predetermined number of blocks to a corresponding drawing processing unit, and a drawing process that needs to be divided into a plurality of sub-blocks for each band When it is determined that there is a drawing block that needs to be divided into the plurality of sub-blocks and a drawing block that needs to be divided into a plurality of sub-blocks, And sub-block assigning means for assigning each of the divided sub-blocks to the corresponding drawing processing means. To provide an image processing apparatus according to claim and.

本発明は、上記目的を達成するため、複数の描画処理手段を備える画像処理装置の画像処理方法であって、印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割工程と、所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当て工程と、前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定工程と、前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当て工程とを有することを特徴とする画像処理方法を提供する。   In order to achieve the above object, the present invention provides an image processing method of an image processing apparatus including a plurality of drawing processing units, and divides a drawing area defined by print data into a plurality of blocks that can be individually drawn. A block dividing step, a block allocating step for assigning each drawing process of each block included in each band including a predetermined number of blocks to the corresponding drawing processing means, and a need to divide each band into a plurality of sub-blocks If it is determined that there is a drawing process that needs to be divided into the plurality of sub-blocks, a determination step for determining whether there is a drawing process block is determined. Sub-block allocation that divides a plurality of sub-blocks and allocates the divided sub-blocks to corresponding drawing processing means. To provide an image processing method characterized by having a degree.

本発明は、上記目的を達成するため、複数の描画処理手段を備える画像処理装置により実行されるプログラムであって、印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割モジュールと、所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当てモジュールと、前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定モジュールと、前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当てモジュールとを有することを特徴とするプログラムを提供する。   In order to achieve the above object, the present invention is a program executed by an image processing apparatus having a plurality of drawing processing means, wherein a drawing area defined by print data is divided into a plurality of blocks that can be individually drawn. A block dividing module for dividing, a block allocation module for assigning each drawing process of each block included in a band including a predetermined number of blocks to a corresponding drawing processing means, and dividing into a plurality of sub-blocks for each band A determination module for determining whether or not there is a drawing process block that needs to be processed; and if it is determined that there is a drawing process block that needs to be divided into the plurality of sub-blocks, the drawing process block Is divided into a plurality of sub-blocks, and the divided sub-blocks are respectively assigned to corresponding drawing processing means. It provides a program characterized by having a sub-block allocation module shed Ri.

本発明は、上記目的を達成するため、上記プログラムをコンピュータ読み取り可能に格納したことを特徴とする記憶媒体を提供する。   In order to achieve the above object, the present invention provides a storage medium in which the above program is stored so as to be readable by a computer.

本発明によれば、バンド単位の描画処理においてボトルネックとなる演算量が多いブロックの描画処理時間を短縮化し、ブロック毎のスループットを平滑化することによって、後段のバンド処理におけるレイテンシの短縮化を図ることができる。これにより、画像処理装置全体の応答時間の短縮化を図ることができる。また、並行処理を行うための回路規模を増大させることなく、バンド単位の描画時間を短縮することができる。   According to the present invention, it is possible to reduce the latency in the subsequent band processing by shortening the rendering processing time of the block having a large amount of calculation that becomes a bottleneck in the rendering processing in units of bands and smoothing the throughput of each block. Can be planned. Thereby, the response time of the whole image processing apparatus can be shortened. In addition, the drawing time for each band can be shortened without increasing the circuit scale for performing parallel processing.

以下、本発明の実施の形態について図面を参照しながら説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図1は本発明の一実施の形態に係る画像処理装置の構成を示すブロック図である。   FIG. 1 is a block diagram showing a configuration of an image processing apparatus according to an embodiment of the present invention.

画像処理装置は、レーザビームプリンタなどの画像形成装置に組み込まれ、例えばPostScriptやPDなどのPDLで記述されたページ単位の印刷データを入力とし、この入力された印刷データに基づいて画像データを生成する。この生成された画像データは、プリンタエンジン(図示せず)に送出される。   The image processing apparatus is incorporated in an image forming apparatus such as a laser beam printer, and receives, for example, print data in units of pages described in PDL such as PostScript or PD, and generates image data based on the input print data. To do. The generated image data is sent to a printer engine (not shown).

画像処理装置は、図1に示すように、ブロック分割部101と、複数の画像処理プロセッサ102,103,104と、描画オブジェクト情報やページ画像データなどが書き込まれるメモリ105と、CPU106とを備える。   As shown in FIG. 1, the image processing apparatus includes a block dividing unit 101, a plurality of image processing processors 102, 103, and 104, a memory 105 in which drawing object information, page image data, and the like are written, and a CPU.

ブロック分割部101は、入力されたページ単位の印刷データをPDLの規約に従って解釈し、印刷データが規定する1ページの描画対象領域を、複数のブロックに分割する機能を有する。ここでは、ブロックとは、個別に描画処理を行うことが可能な矩形領域からなり、分割されるブロックの数は、予め設定されている数である。ブロック分割部101は、分割されたブロックの描画を命令するための描画命令を抽出し、各ブロックの描画命令(ブロックの描画処理)をジョブとして対応する画像処理プロセッサ102,103,104に割り当てる。この割り当ては、所定数のブロックを含むバンドを単位として行われる。そして、バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かの判定が行われ、複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックが複数のサブブロックに分割され、該分割された複数のサブブロックがそれぞれ対応する画像処理プロセッサ102,103,104に割り当てられる。   The block division unit 101 has a function of interpreting input print data in units of pages according to PDL rules and dividing a drawing target area of one page defined by the print data into a plurality of blocks. Here, the block is composed of rectangular areas that can be individually rendered, and the number of divided blocks is a preset number. The block dividing unit 101 extracts drawing commands for instructing drawing of the divided blocks, and assigns drawing commands (block drawing processing) of each block to the corresponding image processing processors 102, 103, and 104 as jobs. This allocation is performed in units of bands including a predetermined number of blocks. Then, for each band, it is determined whether there is a drawing block that needs to be divided into a plurality of sub-blocks, and if there is a drawing block that needs to be divided into a plurality of sub-blocks. When the determination is made, the drawing block is divided into a plurality of sub-blocks, and the divided sub-blocks are assigned to the corresponding image processing processors 102, 103, and 104, respectively.

各画像処理プロセッサ102,103,104は、割り当てられたブロックの描画処理を実行し、ラスタ画像データを生成する。画像処理プロセッサ102,103,104で生成されたラスタ画像データは、メモリ105に格納される。また、上記ラスタ画像データは、そのまま、後段の画像処理装置や出力装置、表示装置などに転送される場合もある。   Each of the image processors 102, 103, and 104 executes assigned block drawing processing to generate raster image data. Raster image data generated by the image processors 102, 103, and 104 is stored in the memory 105. The raster image data may be transferred as it is to a subsequent image processing apparatus, output apparatus, display apparatus, or the like.

次に、ブロック分割部101に入力される印刷データについて図2および図3を参照しながら説明する。図2は図1のブロック分割部101に入力されるPostScirpt言語で記述された印刷データの一例を示す図、図3は図2の印刷データによって描画されるデータを示す図である。   Next, the print data input to the block division unit 101 will be described with reference to FIGS. FIG. 2 is a diagram illustrating an example of print data described in the PostScirpt language input to the block division unit 101 in FIG. 1, and FIG. 3 is a diagram illustrating data rendered by the print data in FIG.

本画像処理装置のブロック分割部101には、例えば図2に示すような、PostScirpt言語で記述されたページ単位の印刷データが入力される。この印刷データは、複数の描画命令を含み、例えば円オブジェクトの描画コマンド220、三角オブジェクトの描画コマンド221、曲線オブジェクトの描画コマンド222、直線オブジェクトの描画コマンド223、直線オブジェクトの描画コマンド224は、それぞれ、図3に示す円オブジェクト321、三角形オブジェクト322、曲線オブジェクト323、直線オブジェクト324、直線オブジェクト325を描画するものである。円オブジェクトの描画コマンド220は、円オブジェクトの形状を定義するコマンド210、円オブジェクトの色を定義するコマンド211、および円オブジェクトを塗りつぶすコマンド212から構成される。三角オブジェクトの描画コマンド221は、三角オブジェクトの形状を定義するコマンド213、三角オブジェクトの色を定義するコマンド214および三角オブジェクトの塗りつぶすコマンド215から構成される。曲線オブジェクトの描画コマンド222は、曲線オブジェクトの形状を定義するコマンド217から構成され、直線オブジェクトの描画コマンド223は、直線オブジェクトの形状を定義するコマンド218から構成される。直線オブジェクトの描画コマンド224は、直線オブジェクトの形状を定義するコマンド219から構成される。また、コマンド230は、1ページとして出力することを指示するコマンドである。   For example, as shown in FIG. 2, page-unit print data described in PostScirpt language is input to the block division unit 101 of the image processing apparatus. This print data includes a plurality of drawing commands. For example, a circle object drawing command 220, a triangle object drawing command 221, a curve object drawing command 222, a line object drawing command 223, and a line object drawing command 224 are respectively 3, the circle object 321, the triangle object 322, the curve object 323, the straight line object 324, and the straight line object 325 shown in FIG. 3 are drawn. The circle object drawing command 220 includes a command 210 for defining the shape of the circle object, a command 211 for defining the color of the circle object, and a command 212 for painting the circle object. The triangular object drawing command 221 includes a command 213 for defining the shape of the triangular object, a command 214 for defining the color of the triangular object, and a command 215 for filling the triangular object. The curve object drawing command 222 includes a command 217 that defines the shape of the curve object, and the line object drawing command 223 includes a command 218 that defines the shape of the line object. The straight line object drawing command 224 includes a command 219 for defining the shape of the straight line object. The command 230 is a command for instructing output as one page.

次に、本画像処理装置の描画処理について図4および図5を参照しながら説明する。図4および図5は図1の画像処理装置による描画処理の手順を示すフローチャートである。ここで、図4および図5の描画処理の手順は、CPU106の制御下においてブロック分割部101により実行されるものである。   Next, drawing processing of the image processing apparatus will be described with reference to FIGS. 4 and 5 are flowcharts showing the procedure of the drawing process by the image processing apparatus of FIG. Here, the procedure of the drawing process of FIGS. 4 and 5 is executed by the block dividing unit 101 under the control of the CPU 106.

本画像処理装置においては、図4に示すように、ブロック分割部101が、まず、例えば図2に示すようなPostScript言語で記述された印刷データを読み込み(ステップS401)、入力されたページ単位の印刷データを矩形状の複数のブロックに分割する(ステップS402)。この印刷データの分割においては、例えば図3に示すように、描画対象領域300が各ブロック307,308,309,…に分割され、各ブロック307,308,309,…に対しては、それぞれ独立して描画処理を行うことが可能である。   In this image processing apparatus, as shown in FIG. 4, the block dividing unit 101 first reads print data described in, for example, the PostScript language as shown in FIG. 2 (step S401), and inputs the input page unit. The print data is divided into a plurality of rectangular blocks (step S402). In this print data division, for example, as shown in FIG. 3, the drawing target area 300 is divided into blocks 307, 308, 309,..., And the blocks 307, 308, 309,. Thus, drawing processing can be performed.

次いで、ブロック分割部101は、各画像処理プロセッサ102,103,104の実行状況を確認し(ステップS403)、この確認結果に基づいてアイドル状態の画像処理プロセッサがあるか否かを判定する(ステップS404)。最初は、各画像処理プロセッサ102,103,104には、描画対象となるブロックが割り当てられていないため、画像処理プロセッサ102,103,104の全てがアイドル状態にある。   Next, the block dividing unit 101 confirms the execution status of each image processor 102, 103, 104 (step S403), and determines whether there is an idle image processor based on the confirmation result (step S403). S404). Initially, since no block to be rendered is assigned to each of the image processors 102, 103, and 104, all of the image processors 102, 103, and 104 are in an idle state.

上記ステップS404においてアイドル状態の画像処理プロセッサがあると判定されると、CPU106は、バンド内の終端ブロックが画像処理プロセッサ102,103,104いずれかに割り当てられてその描画処理が実行中または終了しているか否かを判定する(ステップS405)。ここで、例えば処理対象としてのバンドが、ブロック307,308,309,331で構成されている場合(図3を参照)、このバンド内の終端ブロックはブロック331である。   If it is determined in step S404 that there is an image processor in an idle state, the CPU 106 assigns the terminal block in the band to one of the image processors 102, 103, and 104, and the drawing process is being executed or ended. It is determined whether or not (step S405). Here, for example, when a band to be processed is composed of blocks 307, 308, 309, and 331 (see FIG. 3), a terminal block in this band is a block 331.

上記ステップS405においてバンド内の終端ブロックが画像処理プロセッサ102,103,104いずれかに割り当てられてその描画処理が実行中または終了していないと判定されると、ブロック分割部101は、処理対象のバンド内の次のブロックを選択する(ステップS406)。ここでは、この選択方法としては、X方向にソートされた順にブロックを選択する方法などが用いられる。但し、ブロック間に依存関係は無いので、どのような順番でブロックを選択してもよく、ブロックの選択方法として他の方法を用いることも可能である。   If it is determined in step S405 that the end block in the band is assigned to one of the image processors 102, 103, and 104 and the drawing process is not being executed or completed, the block dividing unit 101 determines that the processing target is not processed. The next block in the band is selected (step S406). Here, as this selection method, a method of selecting blocks in the order sorted in the X direction is used. However, since there is no dependency relationship between the blocks, the blocks may be selected in any order, and other methods can be used as the block selection method.

次いで、ブロック分割部101は、選択したブロックの描画処理をアイドル状態にある画像処理プロセッサに割り当てる(ステップS407)。この画像処理プロセッサは、割り当てられたブロックの描画処理を実行する。そして、ブロック分割部101は、ステップS403に戻り、再度、画像処理プロセッサの実行状況を確認する。以降、同様の処理が繰り返され、アイドル状態にある画像処理プロセッサがあると、この画像処理プロセッサに選択されたブロックが割り当てられ、画像処理プロセッサは、割り当てられたブロックの描画処理を実行する。最終的には、バンド内の終端ブロックが選択され、画像処理プロセッサ102,103,104のうち、いずれかのアイドル状態へ移行した画像処理プロセッサに対して割り当てられ、当該画像処理プロセッサにより終端ブロックの描画処理が実行されることになる。   Next, the block division unit 101 assigns the drawing process of the selected block to the image processor in the idle state (step S407). The image processor executes a drawing process for the allocated block. Then, the block division unit 101 returns to step S403 and confirms the execution status of the image processor again. Thereafter, when the same processing is repeated and there is an image processing processor in an idle state, the selected block is assigned to this image processing processor, and the image processing processor executes drawing processing of the assigned block. Eventually, a terminal block in the band is selected and assigned to any one of the image processors 102, 103, and 104 that has shifted to the idle state, and the image processor receives the end block. Drawing processing is executed.

次いで、上記ステップS404において画像処理プロセッサ102,103,104のうち、いずれか1つの画像処理プロセッサがアイドル状態にあると判定されると、上記ステップS405においてバンド内の終端ブロックが画像処理プロセッサに割り当てられているか否か(終端ブロックの描画処理が実行中または終了しているか否か)の判定が行われる。ここで、バンド内の終端ブロックが画像処理プロセッサに割り当てられていると判定されると、ブロック分割部101は、図5に示すように、描画処理実行中の画像処理プロセッサ(アイドル状態の画像処理プロセッサを除く)の描画状況を確認し、描画処理実行中の画像処理プロセッサから描画処理中のブロックに対して残されている描画処理量を取得する(ステップS410)。この残されている描画処理量は、ブロック未描画残量と呼ぶこととする。   Next, when it is determined in step S404 that one of the image processors 102, 103, and 104 is in an idle state, a terminal block in the band is assigned to the image processor in step S405. It is determined whether or not the drawing processing of the terminal block is being executed or not. Here, if it is determined that the terminal block in the band is assigned to the image processor, the block dividing unit 101, as shown in FIG. (Except for the processor) is checked, and the drawing processing amount remaining for the block being drawn is acquired from the image processor that is executing the drawing process (step S410). The remaining drawing processing amount is referred to as a block non-drawing remaining amount.

次いで、ブロック分割部101は、描画処理実行中の画像処理プロセッサから取得されたブロック未描画残量に基づいて、それぞれ予め設定されている閾値以上のブロック未描画残量を有する描画処理中のブロックがあるか否かを判定する(ステップS411)。閾値以上のブロック未描画残量を有する描画処理中のブロックがある場合、ブロック分割部101は、閾値以上のブロック未描画残量を有する描画処理中のブロックを複数のサブブロックに分割する(ステップS412)。ここで、閾値以上のブロック未描画残量を有する描画処理中のブロックとして、複数のブロックがある場合は、複数のブロックのうち、最大のブロック未描画残量を有する描画処理中の1つのブロックが、閾値以上のブロック未描画残量を有する描画処理中のブロックとして特定され、この特定されたブロックが複数のサブブロックに分割されるものとする。閾値以上のブロック未描画残量のブロックを特定する方法は、上記の方法に限定されることはない。また、ブロックの分割方法としては、様々な方法が考えられる。例えば、未描画部分を等分に分割する方法などが考えられる。また、分割数は、アイドル状態の画像処理プロセッサの数に応じて決定される。アイドル状態の画像処理プロセッサの数が1つであれば、分割数は、2である。また、上記閾値は、ブロックを複数のサブブロックに分割した際に、バンド単位の描画処理時間が短縮される値とすることが望ましい。   Next, the block division unit 101 performs a drawing process block having a block undrawn remaining amount that is equal to or greater than a preset threshold value based on the block undrawn remaining amount acquired from the image processor that is executing the drawing process. It is determined whether or not there is (step S411). If there is a block in the drawing process having a block undrawn remaining amount equal to or greater than the threshold, the block dividing unit 101 divides the block in the drawing process having a block undrawn remaining amount equal to or greater than the threshold into a plurality of sub-blocks (step S412). Here, when there are a plurality of blocks as a block during drawing processing having a block undrawn remaining amount equal to or greater than the threshold, one block during drawing processing having the largest block undrawn remaining amount among the plurality of blocks Is specified as a block in the drawing process having a block undrawn remaining amount equal to or greater than the threshold, and the specified block is divided into a plurality of sub-blocks. The method for specifying a block with an undrawn remaining block that is equal to or greater than the threshold is not limited to the above method. Various methods are conceivable as the block dividing method. For example, a method of equally dividing an undrawn part can be considered. The number of divisions is determined according to the number of idle image processors. If the number of idle image processors is one, the number of divisions is two. The threshold is preferably set to a value that shortens the drawing processing time for each band when the block is divided into a plurality of sub-blocks.

次いで、ブロック分割部101は、分割された各サブブロックの範囲を明示するために、描画処理対象のブロックの範囲情報を更新し(ステップS413)、更新されたブロック範囲情報に基づいて各サブブロックを対応する画像処理プロセッサに割り当てる(ステップS414)。ここでは、分割された複数のサブブロックのうち、1つのサブブロックの描画処理は、サブブロックへの分割前のブロックの描画処理が割り当てられている画像処理プロセッサに割り当てられ、他のブロックの描画処理は、アイドル状態にある画像処理プロセッサに割り当てられる。サブブロックが割り当てられた画像処理プロセッサのそれぞれは、割り当てられたサブブロックの描画処理を実行する。そして、CPU106は、上記ステップS403に戻る。   Next, the block dividing unit 101 updates the range information of the drawing process target block in order to clearly indicate the range of each divided sub-block (step S413), and each sub-block based on the updated block range information. Is assigned to the corresponding image processor (step S414). Here, among the plurality of divided sub-blocks, the drawing process of one sub-block is assigned to the image processor to which the drawing process of the block before dividing into sub-blocks is assigned, and the drawing of other blocks is performed. Processing is assigned to the image processor in the idle state. Each of the image processors to which the sub-blocks are assigned executes drawing processing for the assigned sub-blocks. Then, the CPU 106 returns to step S403.

上記ステップS411において閾値以上のブロック未描画残量を有する描画処理中のブロックがないと判定された場合、ブロック分割部101は、処理対象のバンドが最終段のものであるか否かを判定する(ステップS420)。ここで、処理対象のバンドが最終段のものでなければ、ブロック分割部101は、処理対象のバンドを次のバンドへ移行させるためのバンドのインクリメントを行い(ステップS421)、次のバンド内のブロックをアイドル状態にある画像処理プロセッサに割り当てる(ステップS422)。これにより、ブロックが割り当てられた画像処理プロセッサは、当該ブロックの描画処理を実行する。そして、ブロック分割部101は、上記ステップS403に戻る。すなわち、ブロック307,308,309,331で構成されているバンドの終端ブロック331を割り当てた後は、ステップS403に戻って、次のバンドの割り当てを行う。   When it is determined in step S411 that there is no drawing process block having a block undrawn remaining amount equal to or greater than the threshold value, the block dividing unit 101 determines whether or not the band to be processed is the last stage. (Step S420). Here, if the band to be processed is not the last band, the block dividing unit 101 increments the band for shifting the band to be processed to the next band (step S421), The block is allocated to the image processor in the idle state (step S422). Thereby, the image processor to which the block is assigned executes the drawing process for the block. Then, the block dividing unit 101 returns to step S403. That is, after assigning the end block 331 of the band constituted by the blocks 307, 308, 309, and 331, the process returns to step S403 to assign the next band.

これに対し、上記ステップS420において処理対象のバンドが最終段のものであると判定された場合、ブロック分割部101は、各画像処理プロセッサ102,103,104による、最終段のバンド内の全てのブロックに対する描画処理を終了するまで待機した後(ステップS431)、本処理を終了する。   On the other hand, when it is determined in step S420 that the band to be processed is the last band, the block division unit 101 uses all the image processing processors 102, 103, and 104 in the last band. After waiting for the drawing process for the block to end (step S431), this process ends.

次に、図2の印刷データを描画する場合の描画処理を図6および図7を参照しながら説明する。図6は図5のステップS412で、描画実行中のブロックをサブブロックに分割した例を示す図、図7は描画処理における各画像処理プロセッサ102,103,104の実行状況の一例を模式的に示す図である。   Next, drawing processing when drawing the print data of FIG. 2 will be described with reference to FIGS. FIG. 6 is a diagram showing an example in which the block being drawn is divided into sub-blocks in step S412 of FIG. 5, and FIG. 7 is a schematic example of the execution status of each image processor 102, 103, 104 in the drawing process. FIG.

ブロック分割部101により、図2に示すようなPostScript言語で記述された印刷データが読み込まれると(ステップS401)、この1ページの印刷データは、矩形状の複数のブロックに分割される(ステップS402)。この印刷データの分割においては、例えば図3に示すように、描画対象領域300が各ブロック307,308,309,…に分割される。   When the print data described in the PostScript language as shown in FIG. 2 is read by the block dividing unit 101 (step S401), the print data for one page is divided into a plurality of rectangular blocks (step S402). ). In this print data division, for example, as shown in FIG. 3, the drawing target area 300 is divided into blocks 307, 308, 309,.

最初は、各画像処理プロセッサ102,103,104には、描画対象となるブロックが割り当てられていないため、画像処理プロセッサ102,103,104の全てがアイドル状態にある。すなわち、各画像処理プロセッサ102,103,104の実行状況は、図7に示す状態600のようにすべてアイドル状態である。   Initially, since no block to be rendered is assigned to each of the image processors 102, 103, and 104, all of the image processors 102, 103, and 104 are in an idle state. That is, the execution states of the image processors 102, 103, and 104 are all in an idle state as in a state 600 shown in FIG.

ここで、アイドル状態の画像処理プロセッサがあると(ステップS404)、終端ブロックが画像処理プロセッサに割り当てられているか否かの判定が行われる(ステップS405)。処理対象としてのバンドが、例えば図3に示すように、ブロック307,308,309,331で構成されている場合、このバンド内の終端ブロックはブロック331であり、この時点では、この終端ブロックであるブロック331は、まだいずれの画像処理プロセッサにも割り当てられていないとする。   Here, if there is an image processor in the idle state (step S404), it is determined whether or not the end block is assigned to the image processor (step S405). If the band to be processed is composed of blocks 307, 308, 309, and 331 as shown in FIG. 3, for example, the end block in this band is the block 331. It is assumed that a certain block 331 is not yet assigned to any image processor.

バンド内の終端ブロックが画像処理プロセッサに割り当てられていない場合、処理対象のバンド内の次のブロックが選択される(ステップS406)。ここでは、X方向にソートされた順にブロックが選択され、図3に示す例の場合においては、ブロック307が次のブロックとして選択される。   If the terminal block in the band is not assigned to the image processor, the next block in the band to be processed is selected (step S406). Here, the blocks are selected in the order sorted in the X direction, and in the case of the example shown in FIG. 3, the block 307 is selected as the next block.

次いで、選択されたブロックの描画処理がアイドル状態にある画像処理プロセッサに割り当てられる(ステップS407)。例えば次のブロックとして選択されたブロック307が画像処理プロセッサ102に割り当てられると、画像処理プロセッサの全体の実行状況は、図7に示す状態601に遷移する。そして、再度、画像処理プロセッサの実行状況の確認が行われる(ステップS403)。ここでは、画像処理プロセッサ102がブロック307を描画処理中のため、画像処理プロセッサ102は実行状態、画像処理プロセッサ103,104は、アイドル状態にある。   Next, the drawing process of the selected block is assigned to the image processor in the idle state (step S407). For example, when the block 307 selected as the next block is assigned to the image processor 102, the overall execution status of the image processor transitions to a state 601 shown in FIG. Then, the execution status of the image processor is confirmed again (step S403). Here, since the image processor 102 is drawing the block 307, the image processor 102 is in the execution state, and the image processors 103 and 104 are in the idle state.

以降、同様の処理が繰り返され、図3に示す例の場合、次のブロックとしてブロック308が選択され、選択されたブロック308は、画像処理プロセッサ103に割り当てられる。これにより、画像処理プロセッサの実行状況は、図7に示す状態602に遷移する。さらに、次のブロックとしてブロック309が選択され、このブロック309は、画像処理プロセッサ104に割り当てられる。そして、画像処理プロセッサの実行状況は、図7に示す状態603に遷移する。   Thereafter, the same processing is repeated. In the example shown in FIG. 3, the block 308 is selected as the next block, and the selected block 308 is assigned to the image processor 103. As a result, the execution status of the image processor changes to a state 602 shown in FIG. Further, block 309 is selected as the next block, and this block 309 is assigned to the image processor 104. Then, the execution status of the image processor transitions to a state 603 shown in FIG.

このようにして、画像処理プロセッサ102,103,104の全てが描画処理を実行する状態になると、各画像処理プロセッサ102,103,104の実行状況の確認がアイドル状態の画像処理プロセッサが確認されるまで繰り返される(ステップS403〜ステップS404)。そして、アイドル状態の画像処理プロセッサが確認される毎に、当該画像処理プロセッサに次のブロックが割り当てられる。   In this way, when all of the image processors 102, 103, and 104 are ready to execute the drawing process, the confirmation of the execution status of each of the image processors 102, 103, and 104 is confirmed for the idle image processor. (Steps S403 to S404). Each time an idle image processor is confirmed, the next block is assigned to the image processor.

画像処理プロセッサ102,103,104のうち、画像処理プロセッサ102によるブロック307の描画処理が終了したとすると、画像処理プロセッサ102はアイドル状態となり、画像処理プロセッサの全体の実行状況は、図7に示す状態604へ遷移する。そして、描画処理が終了していないバンド内の終端ブロック331が選択され、このブロック331が画像処理プロセッサ102に割り当てられる。これにより、画像処理プロセッサの実行状況は、図7に示す状態605に遷移する。そして、再度、アイドル状態の画像処理プロセッサが確認されるまで、各画像処理プロセッサ102,103,104の実行状況の確認が繰り返される。   Of the image processors 102, 103, and 104, when the rendering process of the block 307 by the image processor 102 is completed, the image processor 102 enters an idle state, and the overall execution status of the image processor is shown in FIG. Transition to state 604. Then, an end block 331 in the band for which drawing processing has not ended is selected, and this block 331 is assigned to the image processor 102. As a result, the execution status of the image processor changes to a state 605 shown in FIG. The confirmation of the execution status of each of the image processors 102, 103, and 104 is repeated until an idle image processor is confirmed again.

ここで、図3に示すブロック308は、2つの直線、1つの円の計3つのオブジェクトを含むため、ブロック308に対する描画処理は、他のブロック307,309,331に対する描画処理より多くの時間を要するものとし、1つのオブジェクトも含まないブロック331の描画処理は、他のブロック308,309の描画処理より先に終了するとする。この場合、画像処理プロセッサ102によるブロック331の描画処理が他の画像処理プロセッサ103,104による描画処理より先に終了し、画像処理プロセッサの実行状況は、図7に示す状態606となる。   Here, since the block 308 shown in FIG. 3 includes a total of three objects, two lines and one circle, the drawing processing for the block 308 takes more time than the drawing processing for the other blocks 307, 309, and 331. It is assumed that the drawing process of the block 331 that does not include one object ends before the drawing process of the other blocks 308 and 309. In this case, the rendering process of the block 331 by the image processor 102 ends before the rendering processes by the other image processors 103 and 104, and the execution status of the image processor becomes a state 606 shown in FIG.

このようにして、画像処理プロセッサ102により、バンド内の終端ブロック331の描画処理が終了していると(ステップS405)、各画像処理プロセッサ102,103,104の描画状況の確認が行われる(ステップS410)。ここでは、画像処理プロセッサ102の描画処理は終了しているので、各画像処理プロセッサ103,104が描画処理中のブロックに対するブロック未描画残量が取得される。ここで、画像処理プロセッサ103は、ブロック308を描画処理しており、このブロック308に対するブロック未描画残量は、70%とする。画像処理プロセッサ104は、ブロック309を描画処理しており、このブロック309に対するブロック未描画残量は、20%とする。   In this way, when the image processor 102 has finished drawing processing of the end block 331 in the band (step S405), the drawing status of each of the image processors 102, 103, and 104 is confirmed (step S405). S410). Here, since the drawing process of the image processor 102 has been completed, the remaining block undrawn amount for the block being drawn by each of the image processors 103 and 104 is acquired. Here, the image processor 103 performs drawing processing for the block 308, and the remaining block undrawn amount for this block 308 is 70%. The image processor 104 performs drawing processing for the block 309, and the remaining block undrawn amount for this block 309 is 20%.

次いで、画像処理プロセッサ103,104のブロック未描画残量に基づいて、それぞれ予め設定されている閾値以上のブロック未描画残量を有する描画処理中のブロックがあるか否かの判定が行われる(ステップS411)。ここでは、閾値が60%とされ、閾値以上のブロック未描画残量のブロックとしてブロック308が特定されることになる。よって、画像処理プロセッサ103で描画処理中のブロック308は、図6に示すように、2つのサブブロック501,502に分割される(ステップS412)。本例においては、ブロック308の未描画部分が等分に分割され、Y軸方向の座標が大きいものがサブブロック501、小さいものがサブブロック502とされている。   Next, based on the block undrawn remaining amount of the image processors 103 and 104, it is determined whether or not there is a drawing process block having a block undrawn remaining amount equal to or greater than a preset threshold value ( Step S411). Here, the threshold value is set to 60%, and the block 308 is specified as a block having a block undrawn remaining amount equal to or greater than the threshold value. Therefore, the block 308 that is being rendered by the image processor 103 is divided into two sub-blocks 501 and 502 as shown in FIG. 6 (step S412). In this example, an undrawn portion of the block 308 is divided equally, and the sub-block 501 has a larger coordinate in the Y-axis direction and the sub-block 502 has a smaller coordinate.

そして、画像処理プロセッサ103により描画処理中のブロック308が2つのサブブロック501,502に分割されたので、処理対象のブロックの範囲が更新され、その旨が画像処理プロセッサ103に通知される(ステップS413)。この通知を受けた画像処理プロセッサ103は、更新されたブロックの終端情報により示される領域まで描画処理を行う。すなわち、画像処理プロセッサ103は、サブブロック501の描画処理を実行する。これに対し、上記分割されたサブブロック502はアイドル状態にある画像処理プロセッサ102に割り当てられる(ステップS414)。これにより、画像処理プロセッサの実行状況は、図7に示す状態607に移行する。   Since the block 308 being rendered by the image processor 103 has been divided into two sub-blocks 501 and 502, the range of the block to be processed is updated, and the fact is notified to the image processor 103 (step) S413). Upon receiving this notification, the image processor 103 performs drawing processing up to the area indicated by the updated block end information. That is, the image processor 103 executes the drawing process of the sub-block 501. On the other hand, the divided sub-block 502 is assigned to the image processor 102 in the idle state (step S414). As a result, the execution status of the image processor shifts to a state 607 shown in FIG.

次いで、再び、画像処理プロセッサの実行状況が確認される(ステップS403)。ここでは、画像処理プロセッサ104がブロック309の描画処理を終了し、アイドル状態にあるとする。よって、アイドル状態の画像処理プロセッサとして画像処理プロセッサ104が確認されるので、バンド内の終端ブロックが画像処理プロセッサに割り当てられてその描画処理が実行中または終了しているか否かの判定が行われる(ステップS405)。ここでは、バンド内の終端ブロック331の描画処理は既に完了されており、画像処理プロセッサ104がアイドル状態にあるので、上記分割されたサブブロック501,502の描画処理をそれぞれ実行中である画像処理プロセッサ102,103での描画処理中のブロックに対するブロック未描画残量が確認される(ステップS410)。ここで、画像処理プロセッサ102,103によるサブブロック501,502のブロック未描画残量は、それぞれ、10%,5%であるとすると、閾値以上のブロック未描画残量のブロックはないと判定され(ステップS411)、処理対象であるバンドが最終段であるか否かの判定が行われる(ステップS420)。ここで、描画処理が行われたブロック307,308,309,331を含むバンドは、処理対象の描画対象領域300における最終段のバンドではないので、現在の処理対象のバンドに対してY軸方向に隣接するバンドが次の処理対象のバンドとして選択される(ステップS421)。そして、次のバンド内のブロック310が画像処理プロセッサ104に割り当てられ(ステップS422)、ブロック310の描画処理が実行される。ここでの画像処理プロセッサ102,103,104の実行状況は、図7に示す状態609となる。   Next, the execution status of the image processor is confirmed again (step S403). Here, it is assumed that the image processor 104 has finished the rendering process of block 309 and is in an idle state. Therefore, since the image processor 104 is confirmed as an image processor in the idle state, the end block in the band is assigned to the image processor, and it is determined whether or not the drawing process is being executed or ended. (Step S405). Here, since the drawing processing of the terminal block 331 in the band has already been completed and the image processor 104 is in an idle state, the image processing in which the drawing processing of the divided sub-blocks 501 and 502 is being executed. The block undrawn remaining amount for the block being drawn by the processors 102 and 103 is confirmed (step S410). Here, assuming that the remaining undrawn blocks of the sub-blocks 501 and 502 by the image processors 102 and 103 are 10% and 5%, respectively, it is determined that there is no remaining block undrawn block exceeding the threshold. (Step S411), it is determined whether or not the band to be processed is the last stage (Step S420). Here, since the band including the blocks 307, 308, 309, and 331 on which the drawing process has been performed is not the last band in the drawing target region 300 to be processed, the Y-axis direction with respect to the current processing target band Is selected as the next band to be processed (step S421). Then, the block 310 in the next band is assigned to the image processor 104 (step S422), and the rendering process of the block 310 is executed. The execution status of the image processors 102, 103, and 104 here is a state 609 shown in FIG.

このようにして、バンド単位での描画処理が繰り返し行われ、処理対象のバンドが描画対象領域300の最終段のバンドである場合(ステップS420)、最終段のバンド内の各ブロック340,341,342,343に対する描画処理の終了が待たれる(ステップS431)。   In this way, the drawing process in units of bands is repeatedly performed, and when the band to be processed is the last band of the drawing target area 300 (step S420), each block 340, 341 in the last band is displayed. The end of the drawing process for 342 and 343 is awaited (step S431).

この最終段のバンドの描画処理においては、バンド内の終端ブロック343の描画中または描画完了している場合は、他のブロックのブロック未描画残量が閾値以下であるとする。よって、サブブロックへの分割は行われることなく、最終段のバンド内のブロックの描画処理が行われるものとする。   In the drawing process of the last band, when the terminal block 343 in the band is being drawn or has been drawn, it is assumed that the remaining block undrawn amount of other blocks is equal to or less than the threshold value. Therefore, it is assumed that the drawing process of the block in the last band is performed without being divided into sub-blocks.

以上より、本実施の形態によれば、バンド単位での描画処理においてボトルネックとなる演算量が多いブロックを複数のサブブロックに分割し、対応するサブブロックの描画処理をアイドル状態の画像処理プロセッサに割り当てることによって、ブロック毎のスループットが平滑化され、後段のバンド処理におけるレイテンシの短縮化を図ることができる。これにより、画像処理装置全体の応答時間の短縮化を図ることができる。また、並行処理を行うための回路規模を増大させることなく、バンド単位の描画時間を短縮することができる。   As described above, according to the present embodiment, a block having a large amount of calculation that becomes a bottleneck in rendering processing in units of bands is divided into a plurality of sub-blocks, and the rendering processing of the corresponding sub-block is performed in an idle image processing processor As a result, the throughput of each block is smoothed, and the latency in the subsequent band processing can be shortened. Thereby, the response time of the whole image processing apparatus can be shortened. In addition, the drawing time for each band can be shortened without increasing the circuit scale for performing parallel processing.

本実施の形態においては、図4および図5に示される処理がブロック分割部101により実行される場合について説明したが、ブロック分割部101の処理可能な範囲は、これに限定されることはなく、例えば、ブロック分割部101は、ブロック分割のみを行い、分割されたブロックの割り当てなどは、CPU106により行われるようにすることも可能である。また、ブロック分割部101に対応するモジュールを、CPU106がメモリ105に格納されているプログラムを実行することによって構成することもできる。この場合、図4および図5に示す処理の手順は、CPU106がメモリ105内のプログラムに従って実行されることになる。   In the present embodiment, the case where the processing shown in FIGS. 4 and 5 is executed by the block dividing unit 101 has been described, but the processable range of the block dividing unit 101 is not limited to this. For example, the block dividing unit 101 may perform only block division, and allocation of the divided blocks may be performed by the CPU 106. Further, a module corresponding to the block dividing unit 101 can be configured by the CPU 106 executing a program stored in the memory 105. In this case, the processing procedure shown in FIGS. 4 and 5 is executed by the CPU 106 in accordance with the program in the memory 105.

なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることはいうまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。   An object of the present invention is to supply a storage medium (or recording medium) that records a program code of software that realizes the functions of the above-described embodiments to a system or apparatus, and to perform a computer (or CPU or CPU) of the system or apparatus. Needless to say, this can also be achieved when the MPU) reads and executes the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention.

また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。または、プログラムコードを、ネットワークを介してダウンロードしてもよい。   Examples of the storage medium for supplying the program code include a floppy (registered trademark) disk, a hard disk, a magneto-optical disk, a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD-RAM, and a DVD. -RW, DVD + RW, magnetic tape, nonvolatile memory card, ROM, etc. can be used. Alternatively, the program code may be downloaded via a network.

また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。   Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an operating system (OS) running on the computer based on the instruction of the program code. A case where part or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing is also included.

さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。   Furthermore, after the program code read from the storage medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function is determined based on the instruction of the program code. The case where the CPU of the expansion card or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing is also included.

本発明の一実施の形態に係る画像処理装置の構成を示すブロック図である。1 is a block diagram illustrating a configuration of an image processing apparatus according to an embodiment of the present invention. 図1のブロック分割部101に入力されるPostScirpt言語で記述された印刷データの一例を示す図である。It is a figure which shows an example of the print data described by the PostScirpt language input into the block division part 101 of FIG. 図2の印刷データによって描画されるデータを示す図である。It is a figure which shows the data drawn by the print data of FIG. 図1の画像処理装置による描画処理の手順を示すフローチャートである。2 is a flowchart illustrating a drawing process procedure performed by the image processing apparatus of FIG. 1. 図1の画像処理装置による描画処理の手順を示すフローチャートである。2 is a flowchart illustrating a drawing process procedure performed by the image processing apparatus of FIG. 1. 図5のステップS412で、描画実行中のブロックをサブブロックに分割した例を示す図である。It is a figure which shows the example which divided | segmented the block in drawing execution into the subblock in step S412 of FIG. 描画処理における各画像処理プロセッサ102,103,104の実行状況の一例を模式的に示す図である。It is a figure which shows typically an example of the execution condition of each image processor 102,103,104 in a drawing process.

符号の説明Explanation of symbols

101 ブロック分割部
102,103,104 画像処理プロセッサ
105 メモリ
106 CPU
300 描画領域
307〜310,331,340〜343 ブロック
501,502 サブブロック
101 block division unit 102, 103, 104 image processor 105 memory 106 CPU
300 Drawing area 307 to 310, 331, 340 to 343 Block 501 and 502 Sub block

Claims (8)

複数の描画処理手段を備える画像処理装置であって、
印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割手段と、
所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当て手段と、
前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定手段と、
前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当て手段と
を有することを特徴とする画像処理装置。
An image processing apparatus comprising a plurality of drawing processing means,
Block dividing means for dividing the drawing area defined by the print data into a plurality of blocks that can be individually drawn;
A block allocating unit that allocates each rendering process of the blocks included in each band including a predetermined number of blocks to a corresponding rendering process unit;
A determination unit that determines whether or not there is a drawing-in-process block that needs to be divided into a plurality of sub-blocks for each band;
When it is determined that there is a drawing process block that needs to be divided into the plurality of sub-blocks, the drawing process block is divided into a plurality of sub-blocks, and the divided sub-blocks correspond respectively. An image processing apparatus comprising: a sub-block allocating unit that allocates to the drawing processing unit.
前記サブブロック割り当て手段は、前記分割された複数のサブブロックのうち、1つのサブブロックの描画処理を前記複数のサブブロックに分割する必要があるブロックの描画処理が割り当てられている描画処理手段に、他のブロックの描画処理を待機状態にある描画処理手段にそれぞれ割り当てることを特徴とする請求項1記載の画像処理装置。   The sub-block allocating unit is a drawing processing unit to which a drawing process of a block that needs to be divided into the plurality of sub-blocks among the plurality of divided sub-blocks is allocated. 2. The image processing apparatus according to claim 1, wherein drawing processing of other blocks is respectively assigned to drawing processing means in a standby state. 前記判定手段は、前記バンドに含まれるブロックの描画処理を実行している描画処理手段から通知される未描画処理残量に基づいて、前記バンド内に複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定することを特徴とする請求項1または2記載の画像処理装置。   The drawing means needs to be divided into a plurality of sub-blocks in the band based on the undrawn processing remaining amount notified from the drawing processing means executing the drawing processing of the blocks included in the band. 3. The image processing apparatus according to claim 1, wherein it is determined whether or not there is a block being processed. 複数の描画処理手段を備える画像処理装置の画像処理方法であって、
印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割工程と、
所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当て工程と、
前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定工程と、
前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当て工程と
を有することを特徴とする画像処理方法。
An image processing method of an image processing apparatus comprising a plurality of drawing processing means,
A block dividing step of dividing the drawing area defined by the print data into a plurality of blocks that can be individually drawn;
A block allocation step of assigning each rendering process of the blocks included in each band including a predetermined number of blocks to the corresponding rendering processing means;
A determination step of determining whether or not there is a block being drawn that needs to be divided into a plurality of sub-blocks for each band;
When it is determined that there is a drawing process block that needs to be divided into the plurality of sub-blocks, the drawing process block is divided into a plurality of sub-blocks, and the divided sub-blocks correspond respectively. An image processing method comprising: a sub-block assigning step for assigning to a drawing processing means.
前記サブブロック割り当て工程では、前記分割された複数のサブブロックのうち、1つのサブブロックの描画処理を前記複数のサブブロックに分割する必要があるブロックの描画処理が割り当てられている描画処理手段に、他のブロックの描画処理を待機状態にある描画処理手段にそれぞれ割り当てることを特徴とする請求項4記載の画像処理方法。   In the sub-block assigning step, a drawing processing unit to which a drawing process of a block that needs to be divided into the plurality of sub-blocks among the plurality of divided sub-blocks is assigned. 5. The image processing method according to claim 4, wherein drawing processing of other blocks is assigned to drawing processing means in a standby state. 前記判定工程では、前記バンドに含まれるブロックの描画処理を実行している描画処理手段から通知される未描画処理残量に基づいて、前記バンド内に複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定することを特徴とする請求項4または5記載の画像処理方法。   In the determination step, the drawing that needs to be divided into a plurality of sub-blocks in the band based on the remaining undrawn processing amount notified from the drawing processing means that is executing the drawing processing of the block included in the band 6. The image processing method according to claim 4, wherein it is determined whether or not there is a block being processed. 複数の描画処理手段を備える画像処理装置により実行されるプログラムであって、
印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割モジュールと、
所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当てモジュールと、
前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定モジュールと、
前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当てモジュールと
を有することを特徴とするプログラム。
A program executed by an image processing apparatus including a plurality of drawing processing means,
A block division module that divides a drawing area defined by print data into a plurality of blocks that can be individually drawn;
A block allocation module that assigns each rendering process of the blocks included in each band including a predetermined number of blocks to the corresponding rendering processing means;
A determination module for determining whether or not there is a drawing-in-process block that needs to be divided into a plurality of sub-blocks for each band;
When it is determined that there is a drawing process block that needs to be divided into the plurality of sub-blocks, the drawing process block is divided into a plurality of sub-blocks, and the divided sub-blocks correspond respectively. And a sub-block assignment module assigned to the drawing processing means.
請求項7記載のプログラムをコンピュータ読み取り可能に格納したことを特徴とする記憶媒体。   A storage medium storing the program according to claim 7 in a computer-readable manner.
JP2004275147A 2004-09-22 2004-09-22 Image processor, image processing method, program and storage medium Pending JP2006092125A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004275147A JP2006092125A (en) 2004-09-22 2004-09-22 Image processor, image processing method, program and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004275147A JP2006092125A (en) 2004-09-22 2004-09-22 Image processor, image processing method, program and storage medium

Publications (1)

Publication Number Publication Date
JP2006092125A true JP2006092125A (en) 2006-04-06

Family

ID=36233049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004275147A Pending JP2006092125A (en) 2004-09-22 2004-09-22 Image processor, image processing method, program and storage medium

Country Status (1)

Country Link
JP (1) JP2006092125A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011258186A (en) * 2010-06-08 2011-12-22 Intel Corp Tile rendering for image processing
US8446605B2 (en) 2010-10-08 2013-05-21 Ricoh Company, Ltd. Division of rendering block in image forming apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011258186A (en) * 2010-06-08 2011-12-22 Intel Corp Tile rendering for image processing
JP2013101673A (en) * 2010-06-08 2013-05-23 Intel Corp Tile rendering for image processing
US8446605B2 (en) 2010-10-08 2013-05-21 Ricoh Company, Ltd. Division of rendering block in image forming apparatus

Similar Documents

Publication Publication Date Title
JP4715654B2 (en) Image data generating apparatus and image forming apparatus
JP4566772B2 (en) Image processing apparatus, image processing method, and program
JP4393076B2 (en) Image processing method and apparatus
US8861014B2 (en) Systems and methods for optimized printer throughput in a multi-core environment
JP4614389B2 (en) Image forming apparatus, printing apparatus, display apparatus, drawing processing method, and program
US8625133B2 (en) Print data processing apparatus, print data processing method, and storage medium
JP5655392B2 (en) Print image processing apparatus and program
US10762401B2 (en) Image processing apparatus controlling the order of storing decompressed data, and method thereof
JP2012081626A (en) Image forming apparatus, image processing method, and program
US8334989B2 (en) Printing device and method for parallel processing of data
JP2007156613A (en) Drawing controller, drawing control method, storage medium and program
JP5268427B2 (en) Image forming apparatus and image forming system
JP2016001469A (en) Image processing method and image processing apparatus
US8928914B2 (en) Image processing apparatus, information processing method, and storage medium
JP2019029020A (en) Data processing method, data processing device, and program for executing font processing by efficiently using multiple cores of processor
JP2006092125A (en) Image processor, image processing method, program and storage medium
JP2007237510A (en) Image forming device, image forming method which is executed in the device, and image forming program
JP6835271B2 (en) Page complexity analysis for print jobs
JP2017170884A (en) Image processing device, control method thereof, and program
JP2000311071A (en) Output controller, output control method, and storage medium stored with computer readable program
JP2004038527A (en) Printer driver, printing control method, computer-readable storage medium, and program
JP4580697B2 (en) Print processing system, program, and recording medium
JP2011096280A (en) Image data generating device, image forming apparatus and program
JP6078954B2 (en) Image processing device
JPH11188930A (en) Print system, data processing method therefor and record medium storing computer readable program

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060419

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20070626