JP2018058295A - Image processing apparatus, image processing method, and program - Google Patents
Image processing apparatus, image processing method, and program Download PDFInfo
- Publication number
- JP2018058295A JP2018058295A JP2016198305A JP2016198305A JP2018058295A JP 2018058295 A JP2018058295 A JP 2018058295A JP 2016198305 A JP2016198305 A JP 2016198305A JP 2016198305 A JP2016198305 A JP 2016198305A JP 2018058295 A JP2018058295 A JP 2018058295A
- Authority
- JP
- Japan
- Prior art keywords
- band
- image data
- processing unit
- drawing processing
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1835—Transforming generic data
- G06K15/1836—Rasterization
- G06K15/184—Rasterization from compressed bitmap data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1857—Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1861—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1861—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
- G06K15/1863—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time by rasterizing in sub-page segments
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/004—Generic data transformation
- G06K2215/0042—Rasterisation
- G06K2215/0051—Rasterisation from compressed bitmap, e.g. run length
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Record Information Processing For Printing (AREA)
- Storing Facsimile Image Data (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】ハードリソースの増加によるコストアップを抑えながら、並列描画処理を効率的に行い、描画処理を高速化する。【解決手段】複数のバンド領域のそれぞれに対応する、バンド単位の複数の中間データそれぞれに対して描画処理を並列に行う複数の描画手段であって、バンド領域は、所定のブロック領域に対して主走査方向の画素数が大きく、かつ、副走査方向の画素数が小さい、複数の描画手段と、描画処理において記憶容量が不足した場合に、中間データから生成されたバンド単位の画像データを退避させて記憶する記憶手段とを備え、複数の描画手段はそれぞれ、記憶手段から読み出した当該退避させた画像データを、中間データに対して新たに描画処理を行って生成した画像データと合成して、ラスタ形式の画像データを生成する。【選択図】図4An object of the present invention is to efficiently perform parallel drawing processing and speed up drawing processing while suppressing an increase in cost due to an increase in hardware resources. A plurality of drawing means for performing drawing processing in parallel with respect to each of a plurality of band-by-band intermediate data corresponding to each of a plurality of band regions, wherein the band region corresponds to a predetermined block region. Multiple drawing units with a large number of pixels in the main scanning direction and a small number of pixels in the sub-scanning direction, and image data in band units generated from intermediate data when the storage capacity is insufficient in the drawing process Each of the plurality of drawing means combines the saved image data read from the storage means with the image data generated by performing a new drawing process on the intermediate data. The raster format image data is generated. [Selection] Figure 4
Description
本発明は、複数の描画処理部で並列に描画処理を実行する画像処理装置、画像処理方法、及びプログラムに関する。 The present invention relates to an image processing apparatus, an image processing method, and a program for executing drawing processing in parallel by a plurality of drawing processing units.
従来、ページ単位の描画データを解釈してディスプレイリスト(DL)と呼ばれる中間データを生成し、ブロック単位の矩形領域に分割して並列処理することで、画像処理の処理効率を向上できることが広く知られている。特に、正方形タイル形状(例えば、32画素×32画素)のブロック単位は、一次記憶するメモリ容量が比較的小さくて済む点、画像サイズや解像度に依存しない点、回転処理の前後で画像形状が変化しない点などで優れている。 Conventionally, it is widely known that the processing efficiency of image processing can be improved by interpreting drawing data in page units, generating intermediate data called display lists (DL), dividing into rectangular areas in block units and performing parallel processing. It has been. In particular, the block unit of a square tile shape (for example, 32 pixels × 32 pixels) requires only a relatively small memory capacity for primary storage, does not depend on the image size or resolution, and changes in image shape before and after the rotation process. It is excellent in that it does not.
さらに、特許文献1では、処理の負荷を分散するために、中間データ(DL)をブロック単位の矩形領域を包含するバンド単位に分割して並列処理した後、ブロック単位に分割する技術が開示されている。
Further,
また、中間データ(DL)を描画処理する際にメモリ容量が不足した場合には、縮退動作(フォールバック)が行われている。縮退動作では、一時的に生成される画像データをメモリに退避させながら、中間データ(DL)の描画処理をメモリ容量内で複数回に分けて実施する。 In addition, when the intermediate data (DL) is drawn, if the memory capacity is insufficient, a degeneration operation (fallback) is performed. In the reduction operation, intermediate data (DL) drawing processing is performed in a plurality of times in the memory capacity while temporarily generating image data in the memory.
しかしながら、特許文献1の技術では、バンド単位の描画処理を並列に行うと、縮退動作時に退避させる画像データを保存するためのメモリが、描画処理の並列動作数分必要となってしまう。また、特許文献1の技術では、退避させた画像データを伸張する伸張処理部も、描画処理の並列動作数分だけ必要となってしまう。このように、従来のバンド単位の並列描画処理では、ハードリソース(回路規模)を増加させ、コストアップにつながってしまう。
However, according to the technique of
そこで、バンド単位の描画処理を並列に行う場合でも、ハードリソースの増加によるコストアップを抑えながら、描画処理を効率的に行い、描画処理を高速化することが望まれている。 Therefore, even when drawing processing in units of bands is performed in parallel, it is desired to efficiently perform drawing processing and speed up drawing processing while suppressing an increase in cost due to an increase in hardware resources.
本発明に係る画像処理装置は、複数のバンド領域のそれぞれに対応する、バンド単位の複数の中間データそれぞれに対して描画処理を並列に行う複数の描画手段であって、前記バンド領域は、所定のブロック領域に対して主走査方向の画素数が大きく、かつ、副走査方向の画素数が小さい、複数の描画手段と、前記描画処理において記憶容量が不足した場合に、前記中間データから生成されたバンド単位の画像データを退避させて記憶する記憶手段とを備え、前記複数の描画手段はそれぞれ、前記記憶手段から読み出した前記退避させた画像データを、前記中間データに対して新たに前記描画処理を行って生成した画像データと合成して、前記ラスタ形式の画像データを生成することを特徴とする。 The image processing apparatus according to the present invention is a plurality of drawing means for performing drawing processing in parallel on each of a plurality of intermediate data in units of bands corresponding to each of a plurality of band regions, wherein the band regions are predetermined A plurality of drawing means having a large number of pixels in the main scanning direction and a small number of pixels in the sub-scanning direction relative to the block area, and generated from the intermediate data when storage capacity is insufficient in the drawing process. Storage means for saving and storing image data in units of bands, and each of the plurality of drawing means newly writes the saved image data read from the storage means to the intermediate data. The image data in the raster format is generated by synthesizing with the image data generated by processing.
本発明によると、ハードリソースの増加によるコストアップを抑えながら、並列描画処理を効率的に行い、描画処理を高速化することができる。 According to the present invention, it is possible to efficiently perform parallel drawing processing and speed up drawing processing while suppressing an increase in cost due to an increase in hardware resources.
以下に、本発明の実施形態について図面を参照して詳細に説明する。なお、以下に説明する実施形態は一例に過ぎず、本発明を限定するものではない。また、図面全体を通して、同一の符号は、同一物を示す。 Embodiments of the present invention will be described below in detail with reference to the drawings. In addition, embodiment described below is only an example and does not limit this invention. Moreover, the same code | symbol shows the same thing throughout the drawing.
図1は、本発明の一実施形態における画像形成装置の構成例を示すブロック図である。図1に示すように、画像形成装置100は、コントローラ101、ネットワーク102、操作部103、読取部104、及び印刷部105で構成される。
FIG. 1 is a block diagram illustrating a configuration example of an image forming apparatus according to an embodiment of the present invention. As illustrated in FIG. 1, the
ネットワーク102は、LANやWAN(公衆回線)等で実現され、ホストコンピュータやサーバ等の外部装置と画像形成装置100との間で画像データやデバイス情報を送受信する通信部である。操作部103は、ユーザによる操作を画像処理の制御情報として取得したり、ユーザに対して画像処理の制御情報を表示したりする処理部である。読取部(スキャナエンジン)104は、画像入力デバイスであって、光学センサ等を用いて画像形成装置100の内部に画像データを取り込む処理部である。印刷部(プリンタエンジン)105は、画像出力デバイスであって、画像形成装置100の内部の画像データを記録媒体に印刷する処理部である。
The
コントローラ101は、ネットワーク102、操作部103、読取部104、印刷部105と接続され、画像形成装置100全体の制御を行う制御部である。コントローラ101は、システムバス106、通信部I/F107、CPU108、RAM109、ROM110、HDD111、操作部I/F112、及び読取部I/F113を備える。また、コントローラ101は、描画処理部114、圧縮処理部115、伸張処理部116、バンドRAM117、及び印刷部I/F118を備える。また、コントローラ101は、画像処理装置として実装することができ、例えば、読取部104や印刷部105を含めないで構成してもよい。
The
システムバス106は、コントローラ101を構成する各処理部を接続し、各処理部の間で画像データや制御情報の送受信を行うための処理部である。通信部I/F107は、例えばLANカード等で実現され、ネットワーク102を介してホストコンピュータやサーバ等の外部装置と画像形成装置100との間で画像データやデバイス情報を送受信するためのインタフェース部である。
The
CPU108は、画像形成装置100全体を制御する処理部である。特に、PDL(ページ記述言語)印刷処理では、ネットワーク102を介して外部装置から受信したPDLデータなどの描画データを解釈して、DL(ディスプレイリスト)と呼ばれる中間データに変換する処理を行う。ここでは、描画データの例として、PDLデータを処理するものとして説明する。
The
RAM(揮発性メモリ)109は、CPU108がシステム上で動作するためのワーク領域として使用されたり、画像データを一次記憶するためのバッファ領域として使用されたりする記憶部である。ROM(不揮発性メモリ)110は、CPU108がシステムを起動するためのプログラムが格納されている一次記憶部である。このプログラムは、画像形成装置100の起動時にRAM109に展開され、CPU108により実行される。
A RAM (volatile memory) 109 is a storage unit that is used as a work area for the
HDD(ハードディスクドライブ)111は、画像形成装置100の内部で画像データを格納しておくための大容量記憶部である。
An HDD (Hard Disk Drive) 111 is a large capacity storage unit for storing image data inside the
操作部I/F112は、操作部103と接続され、ユーザによる操作を画像処理の制御情報として取得したり、ユーザに対して画像処理の制御情報を表示したりするためのインタフェース部である。読取部I/F(スキャン画像処理部)113は、読取部(スキャナエンジン)104と接続され、読取部104から入力された画像データに対して、読取部104のデバイス特性に合わせた補正のための画像処理を行う画像処理部である。
The operation unit I /
描画処理部(RIP)114は、CPU108が生成したベクタ形式の中間データ(DL)を参照し、ラスタ形式の画像データを生成し、RAM109に記憶する。また、描画処理部114は、縮退処理に続いて残りの中間データ(DL)を処理する場合、バンドRAM117に退避させた画像データと画像合成して、ラスタ形式の画像データを生成する。
The rendering processing unit (RIP) 114 refers to the vector format intermediate data (DL) generated by the
圧縮処理部115は、描画処理部114が生成したラスタ形式の画像データに対して圧縮処理を行い、圧縮画像データを生成し、RAM109に記憶する。
The
伸張処理部116は、圧縮処理部115が圧縮処理を行なった圧縮画像データの伸張処理を行う。特に、縮退処理に続く中間データ(DL)の描画処理では、退避させた画像データに対して伸張処理を行い、バンドRAM117を介して描画処理部114に提供する。
The
バンドRAM117は、伸張処理部116から描画処理部114に対して出力されるラスタ形式の画像データを一次保持するローカルメモリであり、縮退処理に続く描画処理に用いられるフォールバックメモリである。また、バンドRAM117は、不図示のアクセス検知装置を備え、自身の特定のアドレスへの画像データの書き出し、及び、特定のアドレスからの画像データの読み出しを検知する。
The
なお、PDL印刷時の描画処理に関わる描画処理部114、圧縮処理部115、伸張処理部116、及びバンドRAM117の動作については、図4を用いてさらに詳細に説明する。
The operations of the
印刷部I/F(プリント画像処理部)118は、印刷部(プリンタエンジン)105と接続され、印刷部105のデバイス特性に合わせた補正のための画像処理を行った後に、印刷部105に対して画像データを出力する画像処理部である。
A printing unit I / F (print image processing unit) 118 is connected to the printing unit (printer engine) 105, performs image processing for correction in accordance with the device characteristics of the
なお、図1では、描画処理部114と伸張処理部116がローカルメモリとしてのバンドRAM117を介して直接接続された構成例を示したが、画像形成装置100の構成はこれに限定されるものではない。また、例えば、圧縮処理部115は、システムバス106上に汎用で接続して構成されても良いし、読取部I/F113や描画処理部114等の圧縮処理が必要な処理部に専用で接続して構成されても良い。同様に、例えば、伸張処理部116は、システムバス106上に汎用で接続して構成されても良いし、印刷部I/F118等の伸張処理が必要な処理部に専用で接続して構成されても良い。
Although FIG. 1 shows a configuration example in which the
次に、図2及び図3を用いて、画像形成装置100におけるPDL印刷処理のデータフロー及び画像データ単位の関係を説明する。図2は、画像形成装置100におけるPDL印刷処理のデータフローを示す。図2において、特に、破線部分は、中間データ(DL)が、RAM109上に確保された所定の記憶容量よりも大きい場合に実施される縮退動作(フォールバック)に関する。図3は、画像形成装置100で扱うページ内での矩形領域の座標系の例を示す。なお、図2に示したデータフローは、画像形成装置100のRAM109に展開されたプログラムをCPU108が実行することにより実施される。
Next, the relationship between the data flow of the PDL printing process and the image data unit in the
まず、PDL印刷処理における通常時のデータフローについて、図2を用いて説明する。「通常時」のデータフローとは、縮退動作(フォールバック)を行わない場合のデータフローを意味する。 First, the normal data flow in the PDL printing process will be described with reference to FIG. The “normal time” data flow means a data flow when the degeneration operation (fallback) is not performed.
図2に示すように、画像形成装置100は、まず、ホストコンピュータから送信されたPDLデータを通信部I/F107で受信し、ページ単位のPDLデータ201としてRAM109あるいはHDD111に記憶する。
As shown in FIG. 2, the
次に、CPU108は、ページ単位のPDLデータ201を解釈し、ページ単位あるいはバンド単位の中間データ(DL)202を生成し、再びRAM109に記憶する。バンド単位とは、図3(a)〜(c)に示すように、単一ページ内を副走査方向(Y方向)で分割することで主走査方向(X方向)の画素数よりも副走査方向の画素数の方が小さい短冊状の矩形領域(バンド領域)を意味する。また、ブロック単位とは、図3(a)〜(c)に示すように、画像形成装置100において予め定めた主走査方向の画素数と副走査方向の画素数が等しい正方形タイル形状の矩形領域(ブロック領域)を意味する。図3(a)、図3(b)、及び図3(c)の違いは、ブロック単位の矩形領域がバンド単位の矩形領域に包含される位置関係にあるか否かである。図3(a)及び図3(b)は、ブロックが単一のバンドに包含され、単一のバンドが複数のブロックの集合で構成される従来の関係を示す。特に、図3(b)は、ブロックとバンドの副走査方向の高さ(副走査方向の画素数)が等しい例を示す。一方、図3(c)は、本発明の一実施形態において、描画処理を並列に実行する上で好適な画像データ単位を示す。図3(c)では、ブロックとバンドが互いに包含されずに、かつ、ブロックの副走査方向の画素数(ブロックの高さ)を複数のバンドの高さで分割した関係を満たす。具体的には、図3(c)に示すように、単一ページ1において、単一のブロック11の副走査方向の画素数を、バンド11及びバンド12のそれぞれのバンドの高さで分割した関係を満たす。以下の説明では、図3(a)〜(c)で示したページ内でのバンド単位、及び、ブロック単位の座標系の例を必要に応じて使い分けながら用いる。
Next, the
また、CPU108は、中間データ(DL)を生成し、RAM109に記憶すると共に、描画処理部114の並列動作に関わる並列描画処理設定情報203を、描画処理部114の内部レジスタに設定する。並列描画処理設定情報203には、中間データ(DL)が記憶されるRAM109のアドレスの先頭アドレス、描画処理部114の並列動作数、描画されるバンドの副走査方向の画素数(バンドの高さ)などが含まれる。
The
次に、描画処理部114は、RAM109に記憶された中間データ(DL)202を参照し、単一ページ内の複数のバンド単位の矩形領域に対する描画処理を並列に実行する。描画処理部114は、バンド単位で並列して描画処理を行うことによって、複数のバンドのラスタ形式の画像データ204を生成し、RAM109に一次記憶する。
Next, the
次に、圧縮処理部115は、RAM109に一次記憶されたバンド単位の画像データ204からブロック単位の画像データを読み出す。単一ブロックが複数のバンドで構成されている場合は、単一ブロックを構成する複数のバンド単位の画像データ204を結合し、結合された複数のバンド単位の画像データ204からブロック単位の画像データを読み出す。そして、圧縮処理部115は、読み出したブロック単位の画像データにJPEG等の圧縮処理を行って圧縮画像データ205を生成し、再びRAM109あるいはHDD111に記憶する。
Next, the
次に、伸張処理部116は、ブロック単位で圧縮された圧縮画像データ205に対してJPEG等の伸張処理を行い、ラスタ形式の画像データを生成する。そして、伸張処理部116は、単一ページを構成する全てのブロック単位のラスタ形式の画像データを結合して、ページ単位のラスタ形式の画像データ206を生成し、再びRAM109に一次記憶する。
Next, the
次に、印刷部I/F118は、RAM109に一次記憶されたページ単位の画像データ206を読み出し、印刷部105のデバイス特性に合わせた補正のための画像処理を行った後に、印刷部105に対して補正後の画像データを出力する。
Next, the printing unit I /
次に、印刷部(プリンタエンジン)105は、印刷部I/F118から出力された画像データを記録媒体に印刷する。
Next, the printing unit (printer engine) 105 prints the image data output from the printing unit I /
以上、PDL印刷処理における通常時のデータフローを説明した。次に、PDL印刷処理における縮退動作(フォールバック)時のデータフローについて、特に、図2の破線部分に注目して説明を加える。 The normal data flow in the PDL printing process has been described above. Next, the data flow during the degeneration operation (fallback) in the PDL printing process will be described with particular attention to the broken line portion in FIG.
CPU108は、PDLデータ201を解釈して中間データ(DL)202を生成する際に、単一ページを構成する中間データ(DL)202が、RAM109上に確保された所定の記憶容量よりも大きいかどうか判定する。所定の記憶容量よりも大きい場合(すなわち、記憶容量が不足する場合)、CPU108は、所定の記憶容量を超えない範囲で、背面に描画される描画オブジェクトから順に、中間データ(DL)202としてRAM109に記憶する。この中間データ(DL)202に対して描画処理部114によって描画処理を行ない、圧縮処理部115及び伸張処理部116を介して得られたラスタ形式の画像データ207は、バンドRAM117に一次記憶される。この画像データ207を、縮退動作(フォールバック)における背面画像データと呼ぶ。この背面画像データは、画像合成用の画像データとしてバンドRAM117に一次保持して、描画処理部114がこれを参照して描画処理に用いる。すなわち、描画処理部114が、上記でRAM109に収まらなかった残りの中間データ(DL)による描画結果と、バンドRAM117から取得する背面画像とを画像合成することで、最終的な描画結果を得ることができる。このように、前述した縮退動作(フォールバック)に従って中間データ(DL)202がRAM109上の所定の記憶容量に収まるまで繰り返すことで、画像形成装置100を構成する限られたハードリソースによって制限されることなく、描画処理を実現できる。
When the
次に、図4を用いて、本発明の一実施形態におけるPDL印刷時の描画処理の動作を説明する。図4は、縮退動作(フォールバック)時に、RAM109に一次保持した中間データ(DL)202と圧縮画像データ205を用いてバンド単位で並列に描画処理を行い、得られた画像データ204をRAM109に記憶する動作を示す。
Next, with reference to FIG. 4, the operation of the drawing process during PDL printing in one embodiment of the present invention will be described. FIG. 4 illustrates a drawing process performed in parallel on a band basis using intermediate data (DL) 202 and
図4(a)は、図3(b)のように、ブロック単位の矩形領域がバンド単位の矩形領域に包含される場合の描画処理の動作を示す。図4(a)において、画像形成装置100は、描画処理部114を構成する第1描画処理部401及び第2描画処理部402を用いて、中間データ(DL)202の単一ページ内の複数のバンドをそれぞれ並列に描画処理する。第1描画処理部401は、単一ページ内の奇数番目のバンドを描画処理し、偶数番目のバンドを読み飛ばして描画オブジェクトのスキャンライン毎の位置座標を更新する。第2描画処理部402は、単一ページ内の偶数番目のバンドを描画処理し、奇数番目のバンドを読み飛ばして描画オブジェクトのスキャンライン毎の位置座標を更新する。このように、第1描画処理部401及び第2描画処理部402は、それぞれバンド単位で描画処理対象とする描画オブジェクトを取得するため、RAM109に一次記憶された中間データ(DL)202は、ページ単位でもバンド単位でも良い。
FIG. 4A shows the operation of the drawing process when the rectangular area in units of blocks is included in the rectangular area in units of bands as shown in FIG. In FIG. 4A, the
また、伸張処理部116を構成する第1伸張処理部421及び第2伸張処理部422はそれぞれ、描画処理部114を構成する第1描画処理部401及び第2描画処理部402と連携して動作する。第1伸張処理部421は、圧縮画像データ205から取得した、図3(b)で示したバンド1及びバンド3に対応するブロック単位の画像データに対して順に伸張処理を行い、バンドRAM117を構成する第1バンドRAM411に出力する。また、第2伸張処理部422は、圧縮画像データ205から取得した、図3(b)で示したバンド2及びバンド4に対応するブロック単位の画像データに対して順に伸張処理を行い、バンドRAM117を構成する第2バンドRAM412に出力する。
The first
これを受けて、第1描画処理部401は、第1バンドRAM411に一次記憶され、図3(b)で示したバンド1及びバンド3に対応する複数ブロックで構成されたバンド単位の画像データを順に読み出し、描画処理時に画像合成してRAM109に転送する。同様に、第2描画処理部402は、第2バンドRAM412に一次記憶され、図3(b)で示したバンド2及びバンド4に対応する複数ブロックで構成されたバンド単位の画像データを順に読み出し、描画処理時に画像合成してRAM109に転送する。
In response to this, the first
第1バンドRAM411は、第1伸張処理部421による書き出しと、第1描画処理部401による読み出しを同時に実行可能なダブルバッファで構成されている。従って、例えば、第1伸張処理部421によるバンド3に対応したブロック31〜34の書き出し処理と、第1描画処理部401によるバンド1の読み出し処理を同時に実行できる。同様に、第2バンドRAM412は、第2伸張処理部422による書き出しと、第2描画処理部402による読み出しを同時に実行可能なダブルバッファで構成されている。従って、例えば、第2伸張処理部422によるバンド4に対応したブロック41〜44の書き出し処理と、第2描画処理部402によるバンド2の読み出し処理を同時に実行できる。
The
以上説明したように、図4(a)の例では、描画処理部114の並列化で必要となるハードリソースだけでなく、伸張処理部116、及び、バンドRAM117も描画処理部114の並列動作数分だけ必要となる。
As described above, in the example of FIG. 4A, not only the hardware resources necessary for parallelizing the
図4(b)は、図3(c)のように、ブロック単位の矩形領域がバンド単位の矩形領域に包含されずに、ブロック単位の副走査方向の画素数を、描画処理部114の並列動作数に基づく複数のバンド単位の高さ(画素数)で分割した場合の描画処理の動作を示す。図4(b)において、画像形成装置100は、描画処理部114を構成する第1描画処理部401及び第2描画処理部402を用いて、単一ページ内の複数のバンドをそれぞれ並列に描画処理する。第1描画処理部401は、単一ページ内の奇数番目のバンドを描画処理し、偶数番目のバンドを読み飛ばして描画オブジェクトのスキャンライン毎の位置座標を更新する。第2描画処理部402は、単一ページ内の偶数番目のバンドを描画処理し、奇数番目のバンドを読み飛ばして描画オブジェクトのスキャンライン毎の位置座標を更新する。このように、第1描画処理部401及び第2描画処理部402は、それぞれバンド単位で描画処理対象とする描画オブジェクトを取得するため、RAM109に一次記憶された中間データ(DL)202は、ページ単位でもバンド単位でも良い。
In FIG. 4B, as shown in FIG. 3C, the block-unit rectangular area is not included in the band-unit rectangular area, and the number of pixels in the sub-scanning direction of the block unit is calculated in parallel by the
図4(b)における伸張処理部116は、第1描画処理部401と第2描画処理部402の両方と連携して動作する単一の伸張処理部421で構成される。また、バンドRAM117は、単一のバンドRAM411で構成される。
The
伸張処理部116を構成する単一の伸張処理部421は、圧縮画像データ205から取得した、図3(c)で示したバンド11及びバンド12に対応するブロック単位の画像データに対して順に伸張処理を行い、バンドRAM411に出力する。
A single
これを受けて、第1描画処理部401は、RAM411に一次記憶され、図3(c)で示したバンド11及びバンド21に対応するバンド単位の画像データを順に読み出し、描画処理時に画像合成してRAM109に転送する。同様に、第2描画処理部402は、バンドRAM411に一次記憶され、図3(c)で示したバンド12及びバンド22に対応するバンド単位の画像データを順に読み出し、描画処理時に画像合成してRAM109に転送する。
In response to this, the first
バンドRAM411は、伸張処理部421による書き出しと、第1描画処理部401及び第2描画処理部402による読み出しを同時に実行可能なダブルバッファで構成されている。従って、例えば、伸張処理部421によるバンド21及びバンド22に対応したブロック21〜24の書き出し処理と、第1描画処理部401によるバンド11の読み出し処理を同時に実行できる。同様に、伸張処理部421によるバンド21及びバンド22に対応したブロック21〜24の書き出し処理と、第2描画処理部402によるバンド12の読み出し処理も同時に実行できる。
The
以上説明したように、図4(b)の例では、描画処理部114を並列化しても、描画処理部114のハードリソースが並列動作数分だけあれば十分であって、伸張処理部116、及び、バンドRAM117のハードリソースを追加する必要はない。
As described above, in the example of FIG. 4B, even if the
図5は、図4(b)において、画像形成装置100における描画処理部114の並列描画処理設定情報を変更し、第2描画処理部402を停止して、第1描画処理部401のみを動作させた場合の描画処理の動作を示す。この場合、描画処理部114の並列動作数が1になるので、ブロック単位の矩形領域がバンド単位の矩形領域に包含される図3(b)と同様の位置関係になる。
5 changes the parallel drawing processing setting information of the
図5において、単一の伸張処理部421は、図3(b)で示したバンド1及びバンド2に対応するブロック単位の画像データに対して順に伸張処理を行い、バンドRAM117を構成する単一のバンドRAM411に出力する。
In FIG. 5, a single
これを受けて、第1描画処理部401のみが、バンドRAM411に一次記憶されたバンド1及びバンド2に対応する複数ブロックで構成されたバンド単位の画像データを順に読み出し、描画処理時に画像合成してRAM109に転送する。このようにして、単一ページをバンド単位で順に描画する。
In response to this, only the first
バンドRAM411は、伸張処理部421による書き出しと、描画処理部401による読み出しを同時に実行可能なダブルバッファで構成されている。従って、例えば、伸張処理部421によるバンド2内のブロック21〜24の書き出し処理と、描画処理部401によるバンド1の読み出し処理を同時に実行できる。
The
以上説明したように、図5の例では、描画処理部114の並列描画処理設定情報を変更し、複数の描画処理部のうち一部を停止させた場合にも、描画処理の並列動作数とバンドの高さを対応させることで、並列動作時と同様の描画処理を実現できる。
As described above, in the example of FIG. 5, even when the parallel drawing processing setting information of the
図6は、画像形成装置100におけるPDL印刷処理のフローチャートを示す。図6のフローチャートで示される処理は、画像形成装置100のRAM109に展開されたプログラムを、CPU108が実行することにより実施される。
FIG. 6 shows a flowchart of the PDL printing process in the
まず、ステップS601において、CPU108は、ホストコンピュータから送信されたPDLデータを通信部I/F107を介して受信し、ページ単位のPDLデータとしてRAM109あるいはHDD111に記憶する。
First, in step S601, the
次に、ステップS602において、CPU108は、記憶されたページ単位のPDLデータを解釈し、解釈した情報を元に描画処理対象となるバンド単位の中間データ(DL)を生成する。
In step S602, the
次に、ステップS603において、CPU108は、生成した中間データ(DL)がRAM109上に確保した所定の記憶容量よりも大きい場合の縮退動作(フォールバック)に用いる画像合成用の背面画像データがあるか判定する。画像合成用の背面画像データがある場合、ステップS604に進み、CPU108は、伸張処理部116を用いて背面画像データの伸張処理を実行する。ステップS604において、伸張処理部116は、図4及び図5を用いて説明した通り、圧縮画像データに対してブロック単位で伸張処理を行って得られた画像データをバンドRAM117に一次記憶する。従って、伸張処理部116は、この後のステップS606で描画処理部114が必要とするバンド分だけ、圧縮画像データを伸張する。一方、画像合成用の背面画像が無い場合、ステップS604をスキップしてステップS605に遷移する。
Next, in step S <b> 603, the
次に、ステップS605において、CPU108は、並列描画処理設定情報としてバンド高さを描画処理部114の内部レジスタに設定する。ステップS605におけるバンド高さの設定処理については、図7のフローチャートを用いて別途詳細に説明する。
Next, in step S <b> 605, the
次に、ステップS606において、CPU108は、描画処理部114を制御してステップS605で設定されたバンド高さに従って描画処理をバンド単位で並列に実行し、描画処理結果の画像データをRAM109に一次記憶する。ステップS606における並列描画処理については、図8のフローチャートを用いて別途詳細に説明する。
Next, in step S606, the
次に、ステップS607において、CPU108は、圧縮処理部115を制御して圧縮処理を実行し、RAM109に一次記憶された描画処理結果の画像データを圧縮して圧縮画像データに変換し、再びRAM109に記憶する。
Next, in step S <b> 607, the
次に、ステップS608において、CPU108は、ステップS601で受信したPDLデータを元に生成した中間データ(DL)によって、RAM109に収まらなかった未描画オブジェクトがあるか判定する。未描画オブジェクトがある場合、ステップS602に戻り、CPU108は、縮退動作(フォールバック)として、未描画オブジェクトがなくなるまで処理を繰り返す。一方、未描画オブジェクトが無い場合、ステップS609に進み、CPU108は、伸張処理部116を制御して伸張処理を実行し、RAM109に一次記憶された圧縮画像データを伸張して、再びRAM109に記憶する。
In step S608, the
次に、ステップS610において、CPU108は、印刷部I/F118を制御してRAM109に記憶された画像データを読み出し、印刷部105のデバイス特性に合わせた補正のための画像処理を行った後に、印刷部105に対して画像データを転送する。
Next, in step S <b> 610, the
その後、ステップS611において、印刷部105は、印刷部I/F118から転送された画像データを記録媒体に印刷する。
Thereafter, in step S611, the
以上説明したように、画像形成装置100によるPDL印刷処理が行われる。次に、上述したステップS605におけるバンド高さの設定処理について説明する。
As described above, the PDL printing process by the
図7は、上述したステップS605におけるバンド高さの設定処理のフローチャートを示す。図7のフローチャートで示される処理は、画像形成装置100のRAM109に展開されたプログラムを、CPU108が実行することにより実施される。
FIG. 7 shows a flowchart of the band height setting process in step S605 described above. The processing shown in the flowchart of FIG. 7 is implemented by the
まず、ステップS701において、CPU108は、ステップS603と同様に、縮退動作(フォールバック)時に用いる画像合成用の背面画像データがあるか判定する。背面画像データがない場合は、ステップS702に遷移し、背面画像データがある場合は、ステップS703に遷移する。
First, in step S701, as in step S603, the
背面画像データがない場合、図4を参照して説明した描画処理部114と伸張処理部116との間のバンドRAM117を用いた連携動作は行われない。したがって、ステップS702において、CPU108は、RAM109で確保可能な記憶容量に従いバンド高さを任意のサイズに決定し、描画処理部114の内部レジスタに設定する。任意のサイズとは、例えば、図3(a)〜(c)で示したいずれのバンド高さに設定しても良いことを意味する。
When there is no back image data, the cooperative operation using the
一方、背面画像データがある場合、ステップS703において、CPU108は、画像形成装置100の内部で扱うデータ単位としてのブロック単位を取得する。ブロック単位とは、矩形領域の高さと幅を意味し、ここでは、簡単のために、ブロック単位を8画素(高さ)×8画素(幅)の正方形タイル形状として説明する。したがって、ブロックの高さは8画素となる。
On the other hand, if there is back image data, the
次に、ステップS704において、CPU108は、バンド単位の描画処理を行う描画処理部114の並列動作数を取得する。例えば、描画処理部114が図4(b)の動作状態であれば、並列動作数は2、図5の動作状態であれば、並列動作数は1、を描画処理部114の内部レジスタにアクセスすることで取得する。
In step S <b> 704, the
次に、ステップS705において、CPU108は、ステップS704で取得した並列動作数が2以上であるか否かを判定する。並列動作数が1以下であれば、ステップS706に遷移し、並列動作数が2以上であれば、ステップS707に遷移する。
Next, in step S705, the
並列動作数が1以下である場合、ステップS706において、CPU108は、ステップS703で取得したブロックの高さを、描画処理部114で処理するバンドの高さとしてそのまま設定する。例えば、図5の動作状態の場合、8画素×8画素のブロック単位に対して、並列動作数は1なので、バンドの高さは8(=8÷1)と算出され、これを描画処理部114の内部レジスタに設定する。
When the number of parallel operations is 1 or less, in step S706, the
一方、並列動作数が2以上である場合、ステップS707において、CPU108は、ステップS703で取得したブロックの高さを、ステップS704で取得した並列動作数で均等分割する。例えば、図4(b)の動作状態の場合、8画素×8画素のブロック単位に対して、並列動作数は2なので、バンドの高さは4(=8÷2)として算出される。
On the other hand, when the number of parallel operations is 2 or more, in step S707, the
次に、ステップS708において、均等分割して算出した値をバンドの高さとして描画処理部114の内部レジスタに設定する。
In step S708, the value calculated by equal division is set as the band height in the internal register of the
以上説明したように、背面画像データの有無、及び描画処理部の並列動作数に基づいて、バンドの高さが設定される。次に、上述したステップS606における並列描画処理について説明する。 As described above, the height of the band is set based on the presence / absence of the back image data and the number of parallel operations of the drawing processing unit. Next, the parallel drawing process in step S606 described above will be described.
図8は、上述したステップS606における並列描画処理のフローチャートを示す。図8のフローチャートで示される処理は、画像形成装置100のRAM109に展開されたプログラムをCPU108が実行することにより、描画処理部114によって実施される。以下、CPU108の制御に基づいて描画処理部114が動作するものとして説明する。
FIG. 8 shows a flowchart of the parallel drawing process in step S606 described above. The processing shown in the flowchart of FIG. 8 is performed by the
まず、ステップS801において、描画処理部114内で並列に動作する各描画処理部の読み出し処理部は、描画処理部114の内部レジスタにCPU108によって設定された中間データ(DL)の先頭アドレスを取得する。
First, in step S <b> 801, the read processing unit of each drawing processing unit that operates in parallel within the
次に、ステップS802において、描画処理部114の各描画処理部は、ステップS605で描画処理部114の内部レジスタに設定されたバンドの高さを取得する。
Next, in step S802, each drawing processing unit of the
次に、ステップS803において、描画処理部114の各描画処理部は、描画処理部114の内部でバンド単位の描画処理を実行する並列動作数と、自身のIDを内部レジスタから取得する。例えば、図4(b)で示した描画処理部114の第1描画処理部401であれば、並列動作数は2、自身のIDは1が取得される。また、第2描画処理部402であれば、並列動作数は2、自身のIDは2が取得される。
Next, in step S <b> 803, each drawing processing unit of the
次に、ステップS804において、描画処理部114の各描画処理部401、402は、中間データ(DL)から処理対象のバンド内に含まれる描画オブジェクトを取得する。
Next, in step S804, the
次に、ステップS805において、描画処理部114の各描画処理部は、処理対象のバンドのバンド番号と自身のIDを照合し、当該バンドが自身が描画処理を行う描画処理対象のバンドであるか否かを判定する。すなわち、例えば、図4(b)で示した第1描画処理部401であれば、自身のIDが1であるので、図3(c)で示したバンド11、バンド21などの奇数番目のバンドを自身の描画処理対象のバンドであると判定する。また、図4(b)で示した第2描画処理部402であれば、自身のIDが2であるので、図3(c)で示したバンド12、バンド22などの偶数番目のバンドを自身の描画処理対象のバンドであると判定する。処理対象のバンドが自身の描画処理対象のバンドである場合、ステップS806に遷移し、描画処理対象のバンドでない場合、ステップS809に遷移する。
Next, in step S805, each drawing processing unit of the
ステップS806では、描画処理部114の各描画処理部は、上述したステップS603と同様に、縮退動作(フォールバック)に用いる画像合成用の背面画像データがあるか判定する。背面画像データがある場合、ステップS807に遷移し、バンドRAM117から処理対象のバンドに対応する背面画像データを取得する。ここで、上述したステップS604の伸張処理で生成した背面画像データは、図5を用いて説明した通り、処理対象のバンド領域を描画するために必要なバンド分だけ、バンドRAM117に一次保持されている。一方、背面画像データが無い場合、ステップS807をスキップして、ステップS808に遷移する。
In step S <b> 806, each drawing processing unit of the
次に、ステップS808において、描画処理部114の各描画処理部は、処理対象のバンド領域の描画に必要な描画オブジェクトを中間データ(DL)から取得し、描画処理結果の画像データをRAM109に出力する。特に、ステップS807で取得した背面画像データがある場合は、これを参照して画像合成処理を行い、描画処理結果の画像データを生成する。
In step S <b> 808, each drawing processing unit of the
一方、ステップS809では、描画処理部114の各描画処理部は、処理対象のバンド領域に含まれる描画オブジェクトのスキャンライン毎の位置座標のみを更新し、当該バンド領域の描画処理を行わないで中間データ(DL)を読み飛ばす処理を行う。
On the other hand, in step S809, each drawing processing unit of the
次に、ステップS810において、描画処理部114の各描画処理部は、RAM109に記憶された中間データ(DL)に描画対象の次のバンドがあるか否かを判定する。次のバンドがあれば、ステップS804に戻って処理を繰り返し、次のバンドが無ければ、現在処理しているページの描画処理を終了する。
Next, in step S810, each drawing processing unit of the
以上説明したように、描画処理部114によって並列描画処理が実施される。
As described above, the
図9は、ブロック単位のライト(書き出し)と、バンド単位のリード(読み出し)のアクセス制御を説明する図である。図9(a)は、バンドRAM117の第1バンドRAM411にブロック単位で書き込まれる画像データを示す。図9(b)は、バンドRAM117からバンド単位で読み出される画像データを示す。
FIG. 9 is a diagram for explaining access control for writing (writing) in units of blocks and reading (reading) in units of bands. FIG. 9A shows image data written in block units in the
図9(a)に示すように、ブロック11〜ブロック14は、伸張処理部116の第1伸張処理部421によって第1バンドRAM411に順に書き出される。一方、図9(b)に示すように、バンド11は、描画処理部114の第1描画処理部401によってバンドRAM117から読み出され、バンド12は、描画処理部114の第2描画処理部402によってバンドRAM117から読み出される。
As illustrated in FIG. 9A, the
第1バンドRAM411は、伸張処理部116と描画処理部114を連携動作させるために、図9(a)でライトアクセス検知と示したアドレス(画素位置)への画像データの書き出しをトリガとして、描画処理部114のリード(読み出し)開始を制御する。当該アドレス(画素位置)までブロック単位の画像データが書き出されたことを検知することで、バンド単位の画像データの書き出しが完了したと判定できるためである。
The
また、第1バンドRAM411は、同じく連携動作のために、図9(b)でリードアクセス検知と示したすべてのアドレス(画素位置)からの画像データの読み出しをトリガとして、伸張処理部116のライト(書き出し)開始を制御する。当該すべてのアドレス(画素位置)までバンド単位の画像データが読み出されたことを検知することで、ブロック単位の画像データを包含するすべてのバンド単位の画像データの読み出しが完了したと判定できるためである。これはすなわち、第1バンドRAM411に新たな書き出しのための空き領域ができたことを意味する。
Similarly, the
以上説明したように、本発明の一実施形態によれば、伸張処理部116及びバンドRAM117のハードリソースを描画処理部の並列動作数分だけ拡張することなく、第1描画処理部401及び第2描画処理部402の並列動作を実現できる。すなわち、ハードリソースの増加によるコストアップを抑えながら、並列描画処理を効率的に行い、描画処理を高速化することができる。
As described above, according to the embodiment of the present invention, the first
(変形例1)
次に、本発明の変形例1について説明する。上述した実施形態におけるバンド高さの設定処理では、描画処理部の並列動作数に基づいてブロックの高さを均等分割して、バンドの高さを設定した。一方、本変形例では、描画処理部の並列動作数に加えて、各描画処理部の仕様差(性能差)も考慮して、ブロックの高さを加重分割し、バンドの高さを設定する。
(Modification 1)
Next, a first modification of the present invention will be described. In the band height setting process in the above-described embodiment, the height of the block is set by equally dividing the block height based on the number of parallel operations of the drawing processing unit. On the other hand, in this modification, in addition to the number of parallel operations of the drawing processing units, the specification difference (performance difference) of each drawing processing unit is also considered, and the block height is weighted and the band height is set. .
図10は、本変形例におけるバンド高さの設定処理のフローチャートを示す。図10のフローチャートで示される処理は、画像形成装置100のRAM109に展開されたプログラムを、CPU108が実行することにより実施される。本実施形態におけるバンド高さの設定処理は、図7のフローチャートを参照して説明したバンド高さの設定処理の変形形態であるため、図7との共通部分の説明は省略し、図7との差異のみを説明する。具体的には、図10におけるステップS1001〜S1006は、図7におけるステップS701〜S706と同様であるため、説明は省略する。
FIG. 10 shows a flowchart of the band height setting process in this modification. The processing shown in the flowchart of FIG. 10 is implemented by the
本実施形態におけるバンド高さの設定処理では、描画処理部114の並列動作数が2以上である場合、ステップS1007において、CPU108は、並列動作する各描画処理部の仕様差情報を取得する。仕様差情報とは、例えば、第1描画処理部401に対する第2描画処理部402の動作周波数の比率であり、また、例えば、第1描画処理部401に対する第2描画処理部402のプロセッサコア数やモジュール数の比率である。
In the band height setting process according to the present embodiment, when the number of parallel operations of the
次に、ステップS1008において、CPU108は、取得した仕様差情報に基づいて、各描画処理部に仕様差があるか判定する。仕様差の比率が1:1であり、仕様差が無い場合は、ステップS1009〜S1010に遷移し、図7におけるステップS707〜S708と同様に、ブロックの高さを均等分割してバンドの高さを算出し、描画処理部114の内部レジスタに設定する。一方、仕様差の比率が例えば3:1であり、仕様差がある場合は、ステップS1011に遷移する。
Next, in step S1008, the
ステップS1011において、CPU108は、単一ブロックの高さを、並列動作する描画処理部の仕様差情報に基づいて、重み付けて加重分割する。例えば、上述したように、仕様差の比率が3:1(並列動作数は2)である場合、図10(c)に示したバンド11とバンド12のように、並列動作数と仕様差の比率に合わせて、単一ブロックの高さを重み付けて加重分割する。例えば、単一ブロックの高さが8画素である場合、第1描画処理部401の描画領域の高さを6画素分、第2描画処理部402の描画領域の高さを2画素分として分割する。
In step S <b> 1011, the
次に、ステップS1012において、加重分割して算出した値をバンドの高さとして、描画処理部114の内部レジスタに設定する。
In step S1012, the value calculated by weighted division is set as the band height in the internal register of the
以上説明したように、本変形例によれば、描画処理部114で並列に動作する複数の描画処理部の並列動作数及び性能差(仕様差)に鑑みて、描画速度の差が小さくなるように描画領域を分割することで、並列動作の効率を高めることが可能になる。すなわち、バンド単位の描画処理を並列に実行する場合において、第1描画処理部401と第2描画処理部402の処理速度のいずれか遅い方に律速した場合に生じる待ち時間を短縮することで、描画処理を高速化することができる。
As described above, according to this modification, in view of the number of parallel operations and performance differences (specification differences) of a plurality of drawing processing units operating in parallel in the
(変形例2)
次に、本発明の変形例2について説明する。本変形例では、単一ブロックの高さを並列動作数で均等に分割する方法として、図9(d)あるいは図9(e)に示すように、並列動作数の更に整数倍をもって均等に分割する方法を採用する。
(Modification 2)
Next, a second modification of the present invention will be described. In this modification, as a method of equally dividing the height of a single block by the number of parallel operations, as shown in FIG. 9D or FIG. Adopt the method to do.
図9(d)に示す例では、描画処理部の並列動作数が2であるのに対して、その2倍の4で単一ブロックの高さを均等に分割する。そして、第1描画処理部401がバンド11及びバンド13を描画し、第2描画処理部402がバンド12及びバンド14を描画するように制御する。
In the example shown in FIG. 9D, the number of parallel operations of the drawing processing unit is 2, whereas the height of a single block is equally divided by 4 which is twice that number. Then, control is performed so that the first
あるいは、図9(e)に示す例では、描画処理部の並列動作数が2であるのに対して、その4倍の8で単一ブロックの高さを均等に分割する。そして、第1描画処理部401がバンド11、バンド13、バンド15、バンド17を描画し、第2描画処理部402がバンド12、バンド14、バンド16、バンド18を描画するように制御する。
Alternatively, in the example shown in FIG. 9E, the number of parallel operations of the drawing processing unit is 2, whereas the height of a single block is equally divided by 8 that is four times that. Then, control is performed so that the first
以上説明したように、本変形例によれば、バンドの高さをより小さくすることで、バンドの高さよりも大きい描画オブジェクトを複数のバンドにまたがるように配置することができる。こうすることで、並列に動作する各描画処理部による描画速度の差を小さくして、並列描画処理を効率的に行うことができる。すなわち、第1描画処理部401と第2描画処理部402の描画負荷を均一化できるため、第1描画処理部401と第2描画処理部402のいずれか遅い方に律速した場合に生じる待ち時間を短縮することで、描画処理を高速化することができる。
As described above, according to the present modification, the drawing object larger than the band height can be arranged so as to extend over a plurality of bands by making the band height smaller. By doing so, it is possible to efficiently perform parallel drawing processing by reducing the difference in drawing speed between the drawing processing units operating in parallel. That is, since the drawing load of the first
(変形例3)
次に、本発明の変形例3について説明する。
(Modification 3)
Next, a third modification of the present invention will be described.
図11は、本発明で定義したページ内のブロックとバンドの関係の例を示す。上述した通り、ブロックとは、ページ単位の画像データを画像形成装置内で分割して扱う際の単位としての矩形領域であって、例えば、32画素×32画素の正方形タイル形状を有する。また、バンドとは、上述した通り、ブロックよりも主走査方向の画素数が大きく、副走査方向の画素数が等しいか、または、小さい矩形領域である。 FIG. 11 shows an example of the relationship between blocks and bands in a page defined by the present invention. As described above, a block is a rectangular area as a unit when image data in page units is divided and handled in the image forming apparatus, and has, for example, a square tile shape of 32 pixels × 32 pixels. As described above, the band is a rectangular area having a larger number of pixels in the main scanning direction and a smaller number of pixels in the sub-scanning direction than the block.
図11(a)に示されるブロックとバンドの関係は、ブロックがバンドに包含される位置関係にあり、ブロックの高さとバンドの高さが等しい。図11(b)及び図11(d)に示されるブロックとバンドの関係は、ブロックとバンドが互いに包含されず、かつ、ブロックの高さを複数のバンドの高さで分割した関係にある。なお、図11(a)、図11(b)、図11(d)のいずれにおいても、バンドの幅(主走査方向の画素数)はページの幅と等しい。本変形例では、図11(a)、図11(b)、図11(d)に示したブロックとバンドの異なる関係を、画像形成装置100の描画処理設定によって切り替えてもよい。
The relationship between the block and the band shown in FIG. 11A is a positional relationship in which the block is included in the band, and the height of the block is equal to the height of the band. The relationship between the block and the band shown in FIG. 11B and FIG. 11D is a relationship in which the block and the band are not included in each other, and the height of the block is divided by the height of a plurality of bands. In any of FIGS. 11A, 11B, and 11D, the band width (number of pixels in the main scanning direction) is equal to the page width. In this modification, the relationship between the blocks and the bands shown in FIGS. 11A, 11 </ b> B, and 11 </ b> D may be switched depending on the drawing processing setting of the
また、図11(c)及び図11(e)はそれぞれ、図11(b)及び図11(d)に対応するブロックとバンドの関係を示すが、図11(c)及び図11(e)では、バンド幅が主走査方向で分割されている。このように、バンド幅は、ページ幅に限定されるものではなく、ページ幅より小さくてもよい。この場合、分割されたバンドのうち、まず、左側のすべてのバンドを描画処理した後、右側のバンドを描画処理することで、ページ単位の描画処理が実施される。 11 (c) and 11 (e) show the relationship between blocks and bands corresponding to FIG. 11 (b) and FIG. 11 (d), respectively, but FIG. 11 (c) and FIG. 11 (e). Then, the bandwidth is divided in the main scanning direction. Thus, the bandwidth is not limited to the page width, and may be smaller than the page width. In this case, among the divided bands, first, drawing processing is performed on all the bands on the left side, and then drawing processing is performed on the right band, thereby performing drawing processing for each page.
以上説明したように、本変形例によれば、バンド単位を主走査方向で分割し、画像データを小さくして描画処理を実施することで、必要とするメモリ容量を更に削減しながら、並列描画処理を効率的に行い、描画処理を高速化することができる。 As described above, according to the present modification, parallel drawing is performed while further reducing the required memory capacity by dividing the band unit in the main scanning direction and reducing the image data to perform drawing processing. Processing can be performed efficiently and drawing processing can be speeded up.
(その他の実施形態)
本発明は、上述した実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other embodiments)
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program. It can also be realized by processing. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
Claims (7)
前記複数のバンド領域のそれぞれに対応する、バンド単位の複数の中間データそれぞれに対して描画処理を並列に行う複数の描画手段であって、前記バンド領域は、所定のブロック領域に対して主走査方向の画素数が大きく、かつ、副走査方向の画素数が小さい、複数の描画手段と、
前記描画処理において記憶容量が不足した場合に、前記中間データから生成されたバンド単位の画像データを退避させて記憶する記憶手段と
を備え、
前記複数の描画手段はそれぞれ、前記記憶手段から読み出した前記退避させた画像データを、前記中間データに対して新たに前記描画処理を行って生成した画像データと合成して、前記ラスタ形式の画像データを生成することを特徴とする画像処理装置。 An image processing apparatus that performs drawing processing by dividing intermediate data generated from drawing data into a plurality of band regions, and generates raster format image data,
A plurality of drawing means for performing drawing processing in parallel with respect to each of a plurality of band-by-band intermediate data corresponding to each of the plurality of band areas, wherein the band area performs main scanning with respect to a predetermined block area; A plurality of drawing means having a large number of pixels in the direction and a small number of pixels in the sub-scanning direction;
Storage means for saving and storing image data in band units generated from the intermediate data when storage capacity is insufficient in the rendering process;
Each of the plurality of drawing units synthesizes the saved image data read from the storage unit with image data generated by performing the drawing process on the intermediate data anew, and outputs the raster format image. An image processing apparatus that generates data.
複数の描画手段によって、前記複数のバンド領域のそれぞれに対応する、バンド単位の複数の中間データそれぞれに対して描画処理を並列に行う描画工程であって、前記バンド領域は、所定のブロック領域に対して主走査方向の画素数が大きく、かつ、副走査方向の画素数が小さい、描画工程と、
前記描画処理において記憶容量が不足した場合に、前記中間データから生成されたバンド単位の画像データを退避させて記憶手段に記憶する記憶工程と
を含み、
前記描画工程は、前記記憶手段から読み出した前記退避させた画像データを、前記中間データに対して新たに前記描画処理を行って生成した画像データと合成して、前記ラスタ形式の画像データを生成する工程を含むことを特徴とする画像処理方法。 An image processing method in which intermediate data generated from drawing data is divided into a plurality of band regions and drawing processing is performed, and raster format image data is generated,
A drawing step of performing drawing processing in parallel on each of a plurality of intermediate data in units of bands corresponding to each of the plurality of band areas by a plurality of drawing means, wherein the band areas are arranged in predetermined block areas. On the other hand, a drawing process in which the number of pixels in the main scanning direction is large and the number of pixels in the sub-scanning direction is small;
A storage step of saving image data in band units generated from the intermediate data and storing the image data in a storage means when storage capacity is insufficient in the drawing process,
The drawing step generates the raster format image data by combining the saved image data read from the storage unit with the image data generated by newly performing the drawing process on the intermediate data. An image processing method comprising the step of:
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016198305A JP6772020B2 (en) | 2016-10-06 | 2016-10-06 | Image processing device, control method of image processing device, and program |
| US15/719,945 US10325189B2 (en) | 2016-10-06 | 2017-09-29 | Image processing apparatus and image processing method that perform, in units of band areas, rasterization based on second intermediate data stored in a first memory area and compressed raster data stored in a second memory area |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016198305A JP6772020B2 (en) | 2016-10-06 | 2016-10-06 | Image processing device, control method of image processing device, and program |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2018058295A true JP2018058295A (en) | 2018-04-12 |
| JP2018058295A5 JP2018058295A5 (en) | 2019-11-14 |
| JP6772020B2 JP6772020B2 (en) | 2020-10-21 |
Family
ID=61830379
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016198305A Active JP6772020B2 (en) | 2016-10-06 | 2016-10-06 | Image processing device, control method of image processing device, and program |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10325189B2 (en) |
| JP (1) | JP6772020B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7566516B2 (en) | 2020-07-14 | 2024-10-15 | キヤノン株式会社 | Image forming processing device, processing method and program for image forming processing device |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6544905B2 (en) * | 2014-09-29 | 2019-07-17 | キヤノン株式会社 | Image processing apparatus, image processing method, program |
| JP2020038444A (en) * | 2018-09-03 | 2020-03-12 | キヤノン株式会社 | Information processing apparatus, control method, and program |
| JP2023085727A (en) * | 2021-12-09 | 2023-06-21 | ブラザー工業株式会社 | printer |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4337885B2 (en) * | 2007-02-15 | 2009-09-30 | コニカミノルタビジネステクノロジーズ株式会社 | Image forming apparatus and image forming method |
| JP2012254583A (en) | 2011-06-09 | 2012-12-27 | Canon Inc | Image forming apparatus, image forming method, and computer program |
| JP6445899B2 (en) | 2015-02-26 | 2018-12-26 | キヤノン株式会社 | Image forming apparatus and control method thereof |
-
2016
- 2016-10-06 JP JP2016198305A patent/JP6772020B2/en active Active
-
2017
- 2017-09-29 US US15/719,945 patent/US10325189B2/en active Active
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7566516B2 (en) | 2020-07-14 | 2024-10-15 | キヤノン株式会社 | Image forming processing device, processing method and program for image forming processing device |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6772020B2 (en) | 2020-10-21 |
| US10325189B2 (en) | 2019-06-18 |
| US20180101754A1 (en) | 2018-04-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2018058295A (en) | Image processing apparatus, image processing method, and program | |
| US8488893B2 (en) | Image compression apparatus and image compression method | |
| JP6544905B2 (en) | Image processing apparatus, image processing method, program | |
| JP2017098918A (en) | Image processing apparatus and method of controlling the same | |
| US9558432B2 (en) | Buffer management technology in image forming apparatus | |
| US8358445B2 (en) | Image reading apparatus, control method therefor, and storage medium | |
| JP5145278B2 (en) | Image processing device | |
| JP4065550B2 (en) | Image input / output control device, image processing device, image processing method in image input / output control device, and image processing method in image processing device | |
| JP4424313B2 (en) | Image processing apparatus and image forming apparatus | |
| JP4200884B2 (en) | Image decompression apparatus and method, and image processing system | |
| JP7383462B2 (en) | Image processing device, control method for image processing device, program | |
| JP5599033B2 (en) | Image processing apparatus and method, and program | |
| JP4771095B2 (en) | Image compression device | |
| JPH11187261A (en) | Image processor | |
| JP6264757B2 (en) | Image forming apparatus, image forming system, image forming apparatus control method, and image forming apparatus control program | |
| JP4780529B2 (en) | Image processing device | |
| JP2006285792A (en) | Image processing apparatus and image processing method | |
| JP3214617B2 (en) | Multi-value image printer | |
| JP2020090075A (en) | Image formation device and image formation method | |
| JP2002264423A (en) | Printing equipment | |
| JP2006217007A (en) | Interface device for compression / decompression module | |
| JP2020203461A (en) | Image forming device, control method for the same, and program | |
| JP2003216363A (en) | Information processor, information processing method, its program and storage medium | |
| JP2011015371A (en) | Image processing apparatus, and image processing method | |
| JP2005244748A (en) | Image processing method and image processing apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191004 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191004 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200818 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200901 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200930 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 6772020 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |