JP2006092125A - Image processor, image processing method, program and storage medium - Google Patents
Image processor, image processing method, program and storage medium Download PDFInfo
- 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
Links
Images
Abstract
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を参照)などが提案されている。
しかしながら、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
ブロック分割部101は、入力されたページ単位の印刷データをPDLの規約に従って解釈し、印刷データが規定する1ページの描画対象領域を、複数のブロックに分割する機能を有する。ここでは、ブロックとは、個別に描画処理を行うことが可能な矩形領域からなり、分割されるブロックの数は、予め設定されている数である。ブロック分割部101は、分割されたブロックの描画を命令するための描画命令を抽出し、各ブロックの描画命令(ブロックの描画処理)をジョブとして対応する画像処理プロセッサ102,103,104に割り当てる。この割り当ては、所定数のブロックを含むバンドを単位として行われる。そして、バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かの判定が行われ、複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックが複数のサブブロックに分割され、該分割された複数のサブブロックがそれぞれ対応する画像処理プロセッサ102,103,104に割り当てられる。
The
各画像処理プロセッサ102,103,104は、割り当てられたブロックの描画処理を実行し、ラスタ画像データを生成する。画像処理プロセッサ102,103,104で生成されたラスタ画像データは、メモリ105に格納される。また、上記ラスタ画像データは、そのまま、後段の画像処理装置や出力装置、表示装置などに転送される場合もある。
Each of the
次に、ブロック分割部101に入力される印刷データについて図2および図3を参照しながら説明する。図2は図1のブロック分割部101に入力されるPostScirpt言語で記述された印刷データの一例を示す図、図3は図2の印刷データによって描画されるデータを示す図である。
Next, the print data input to the
本画像処理装置のブロック分割部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
次に、本画像処理装置の描画処理について図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
本画像処理装置においては、図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
次いで、ブロック分割部101は、各画像処理プロセッサ102,103,104の実行状況を確認し(ステップS403)、この確認結果に基づいてアイドル状態の画像処理プロセッサがあるか否かを判定する(ステップS404)。最初は、各画像処理プロセッサ102,103,104には、描画対象となるブロックが割り当てられていないため、画像処理プロセッサ102,103,104の全てがアイドル状態にある。
Next, the
上記ステップ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
上記ステップ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
次いで、ブロック分割部101は、選択したブロックの描画処理をアイドル状態にある画像処理プロセッサに割り当てる(ステップS407)。この画像処理プロセッサは、割り当てられたブロックの描画処理を実行する。そして、ブロック分割部101は、ステップS403に戻り、再度、画像処理プロセッサの実行状況を確認する。以降、同様の処理が繰り返され、アイドル状態にある画像処理プロセッサがあると、この画像処理プロセッサに選択されたブロックが割り当てられ、画像処理プロセッサは、割り当てられたブロックの描画処理を実行する。最終的には、バンド内の終端ブロックが選択され、画像処理プロセッサ102,103,104のうち、いずれかのアイドル状態へ移行した画像処理プロセッサに対して割り当てられ、当該画像処理プロセッサにより終端ブロックの描画処理が実行されることになる。
Next, the
次いで、上記ステップS404において画像処理プロセッサ102,103,104のうち、いずれか1つの画像処理プロセッサがアイドル状態にあると判定されると、上記ステップS405においてバンド内の終端ブロックが画像処理プロセッサに割り当てられているか否か(終端ブロックの描画処理が実行中または終了しているか否か)の判定が行われる。ここで、バンド内の終端ブロックが画像処理プロセッサに割り当てられていると判定されると、ブロック分割部101は、図5に示すように、描画処理実行中の画像処理プロセッサ(アイドル状態の画像処理プロセッサを除く)の描画状況を確認し、描画処理実行中の画像処理プロセッサから描画処理中のブロックに対して残されている描画処理量を取得する(ステップS410)。この残されている描画処理量は、ブロック未描画残量と呼ぶこととする。
Next, when it is determined in step S404 that one of the
次いで、ブロック分割部101は、描画処理実行中の画像処理プロセッサから取得されたブロック未描画残量に基づいて、それぞれ予め設定されている閾値以上のブロック未描画残量を有する描画処理中のブロックがあるか否かを判定する(ステップS411)。閾値以上のブロック未描画残量を有する描画処理中のブロックがある場合、ブロック分割部101は、閾値以上のブロック未描画残量を有する描画処理中のブロックを複数のサブブロックに分割する(ステップS412)。ここで、閾値以上のブロック未描画残量を有する描画処理中のブロックとして、複数のブロックがある場合は、複数のブロックのうち、最大のブロック未描画残量を有する描画処理中の1つのブロックが、閾値以上のブロック未描画残量を有する描画処理中のブロックとして特定され、この特定されたブロックが複数のサブブロックに分割されるものとする。閾値以上のブロック未描画残量のブロックを特定する方法は、上記の方法に限定されることはない。また、ブロックの分割方法としては、様々な方法が考えられる。例えば、未描画部分を等分に分割する方法などが考えられる。また、分割数は、アイドル状態の画像処理プロセッサの数に応じて決定される。アイドル状態の画像処理プロセッサの数が1つであれば、分割数は、2である。また、上記閾値は、ブロックを複数のサブブロックに分割した際に、バンド単位の描画処理時間が短縮される値とすることが望ましい。
Next, the
次いで、ブロック分割部101は、分割された各サブブロックの範囲を明示するために、描画処理対象のブロックの範囲情報を更新し(ステップS413)、更新されたブロック範囲情報に基づいて各サブブロックを対応する画像処理プロセッサに割り当てる(ステップS414)。ここでは、分割された複数のサブブロックのうち、1つのサブブロックの描画処理は、サブブロックへの分割前のブロックの描画処理が割り当てられている画像処理プロセッサに割り当てられ、他のブロックの描画処理は、アイドル状態にある画像処理プロセッサに割り当てられる。サブブロックが割り当てられた画像処理プロセッサのそれぞれは、割り当てられたサブブロックの描画処理を実行する。そして、CPU106は、上記ステップS403に戻る。
Next, the
上記ステップ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
これに対し、上記ステップ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
次に、図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
ブロック分割部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
最初は、各画像処理プロセッサ102,103,104には、描画対象となるブロックが割り当てられていないため、画像処理プロセッサ102,103,104の全てがアイドル状態にある。すなわち、各画像処理プロセッサ102,103,104の実行状況は、図7に示す状態600のようにすべてアイドル状態である。
Initially, since no block to be rendered is assigned to each of the
ここで、アイドル状態の画像処理プロセッサがあると(ステップ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
バンド内の終端ブロックが画像処理プロセッサに割り当てられていない場合、処理対象のバンド内の次のブロックが選択される(ステップ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
次いで、選択されたブロックの描画処理がアイドル状態にある画像処理プロセッサに割り当てられる(ステップ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
以降、同様の処理が繰り返され、図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
このようにして、画像処理プロセッサ102,103,104の全てが描画処理を実行する状態になると、各画像処理プロセッサ102,103,104の実行状況の確認がアイドル状態の画像処理プロセッサが確認されるまで繰り返される(ステップS403〜ステップS404)。そして、アイドル状態の画像処理プロセッサが確認される毎に、当該画像処理プロセッサに次のブロックが割り当てられる。
In this way, when all of the
画像処理プロセッサ102,103,104のうち、画像処理プロセッサ102によるブロック307の描画処理が終了したとすると、画像処理プロセッサ102はアイドル状態となり、画像処理プロセッサの全体の実行状況は、図7に示す状態604へ遷移する。そして、描画処理が終了していないバンド内の終端ブロック331が選択され、このブロック331が画像処理プロセッサ102に割り当てられる。これにより、画像処理プロセッサの実行状況は、図7に示す状態605に遷移する。そして、再度、アイドル状態の画像処理プロセッサが確認されるまで、各画像処理プロセッサ102,103,104の実行状況の確認が繰り返される。
Of the
ここで、図3に示すブロック308は、2つの直線、1つの円の計3つのオブジェクトを含むため、ブロック308に対する描画処理は、他のブロック307,309,331に対する描画処理より多くの時間を要するものとし、1つのオブジェクトも含まないブロック331の描画処理は、他のブロック308,309の描画処理より先に終了するとする。この場合、画像処理プロセッサ102によるブロック331の描画処理が他の画像処理プロセッサ103,104による描画処理より先に終了し、画像処理プロセッサの実行状況は、図7に示す状態606となる。
Here, since the
このようにして、画像処理プロセッサ102により、バンド内の終端ブロック331の描画処理が終了していると(ステップS405)、各画像処理プロセッサ102,103,104の描画状況の確認が行われる(ステップS410)。ここでは、画像処理プロセッサ102の描画処理は終了しているので、各画像処理プロセッサ103,104が描画処理中のブロックに対するブロック未描画残量が取得される。ここで、画像処理プロセッサ103は、ブロック308を描画処理しており、このブロック308に対するブロック未描画残量は、70%とする。画像処理プロセッサ104は、ブロック309を描画処理しており、このブロック309に対するブロック未描画残量は、20%とする。
In this way, when the
次いで、画像処理プロセッサ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
そして、画像処理プロセッサ103により描画処理中のブロック308が2つのサブブロック501,502に分割されたので、処理対象のブロックの範囲が更新され、その旨が画像処理プロセッサ103に通知される(ステップS413)。この通知を受けた画像処理プロセッサ103は、更新されたブロックの終端情報により示される領域まで描画処理を行う。すなわち、画像処理プロセッサ103は、サブブロック501の描画処理を実行する。これに対し、上記分割されたサブブロック502はアイドル状態にある画像処理プロセッサ102に割り当てられる(ステップS414)。これにより、画像処理プロセッサの実行状況は、図7に示す状態607に移行する。
Since the
次いで、再び、画像処理プロセッサの実行状況が確認される(ステップ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
このようにして、バンド単位での描画処理が繰り返し行われ、処理対象のバンドが描画対象領域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
この最終段のバンドの描画処理においては、バンド内の終端ブロック343の描画中または描画完了している場合は、他のブロックのブロック未描画残量が閾値以下であるとする。よって、サブブロックへの分割は行われることなく、最終段のバンド内のブロックの描画処理が行われるものとする。
In the drawing process of the last band, when the
以上より、本実施の形態によれば、バンド単位での描画処理においてボトルネックとなる演算量が多いブロックを複数のサブブロックに分割し、対応するサブブロックの描画処理をアイドル状態の画像処理プロセッサに割り当てることによって、ブロック毎のスループットが平滑化され、後段のバンド処理におけるレイテンシの短縮化を図ることができる。これにより、画像処理装置全体の応答時間の短縮化を図ることができる。また、並行処理を行うための回路規模を増大させることなく、バンド単位の描画時間を短縮することができる。 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
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(または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.
101 ブロック分割部
102,103,104 画像処理プロセッサ
105 メモリ
106 CPU
300 描画領域
307〜310,331,340〜343 ブロック
501,502 サブブロック
101
300
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.
印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割工程と、
所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当て工程と、
前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定工程と、
前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当て工程と
を有することを特徴とする画像処理方法。 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.
印刷データにより規定される描画領域を、個別に描画処理可能な複数のブロックに分割するブロック分割モジュールと、
所定数のブロックを含むバンド毎にそれに含まれるブロックのそれぞれの描画処理を対応する描写処理手段に割り当てるブロック割り当てモジュールと、
前記バンド毎に、複数のサブブロックに分割する必要がある描画処理中のブロックがあるか否かを判定する判定モジュールと、
前記複数のサブブロックに分割する必要がある描画処理中のブロックがあると判定されると、該描写処理中のブロックを複数のサブブロックに分割し、該分割された複数のサブブロックをそれぞれ対応する描画処理手段に割り当てるサブブロック割り当てモジュールと
を有することを特徴とするプログラム。 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.
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)
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 |
-
2004
- 2004-09-22 JP JP2004275147A patent/JP2006092125A/en active Pending
Cited By (3)
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 |