[go: up one dir, main page]

JP2018058295A - Image processing apparatus, image processing method, and program - Google Patents

Image processing apparatus, image processing method, and program Download PDF

Info

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
Application number
JP2016198305A
Other languages
Japanese (ja)
Other versions
JP6772020B2 (en
JP2018058295A5 (en
Inventor
健 阿知波
Takeshi Achinami
健 阿知波
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 JP2016198305A priority Critical patent/JP6772020B2/en
Priority to US15/719,945 priority patent/US10325189B2/en
Publication of JP2018058295A publication Critical patent/JP2018058295A/en
Publication of JP2018058295A5 publication Critical patent/JP2018058295A5/en
Application granted granted Critical
Publication of JP6772020B2 publication Critical patent/JP6772020B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • G06K15/1836Rasterization
    • G06K15/184Rasterization from compressed bitmap data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1857Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1861Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1861Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
    • G06K15/1863Generation 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • G06K2215/0042Rasterisation
    • G06K2215/0051Rasterisation 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, Patent Document 1 discloses a technique for dividing the intermediate data (DL) into band units including rectangular areas in block units and performing parallel processing after dividing the data into block units in order to distribute the processing load. ing.

また、中間データ(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.

特開2012−254583号公報JP 2012-254583 A

しかしながら、特許文献1の技術では、バンド単位の描画処理を並列に行うと、縮退動作時に退避させる画像データを保存するためのメモリが、描画処理の並列動作数分必要となってしまう。また、特許文献1の技術では、退避させた画像データを伸張する伸張処理部も、描画処理の並列動作数分だけ必要となってしまう。このように、従来のバンド単位の並列描画処理では、ハードリソース(回路規模)を増加させ、コストアップにつながってしまう。   However, according to the technique of Patent Document 1, if the drawing processing in units of bands is performed in parallel, the memory for storing the image data to be saved at the time of the reduction operation is required for the number of parallel operations of the drawing processing. In the technique disclosed in Patent Document 1, as many decompression processing units as necessary to decompress the saved image data are required for the number of parallel operations of the drawing process. As described above, the conventional parallel drawing processing in units of bands increases the hardware resources (circuit scale), leading to an increase in cost.

そこで、バンド単位の描画処理を並列に行う場合でも、ハードリソースの増加によるコストアップを抑えながら、描画処理を効率的に行い、描画処理を高速化することが望まれている。   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.

画像形成装置の構成を示すブロック図である。1 is a block diagram illustrating a configuration of an image forming apparatus. 画像形成装置におけるPDL印刷処理のデータフローを示す図である。3 is a diagram illustrating a data flow of PDL printing processing in the image forming apparatus. FIG. 画像形成装置で扱うページ内での矩形領域の座標系の一例を示す図である。FIG. 4 is a diagram illustrating an example of a coordinate system of a rectangular area in a page handled by the image forming apparatus. 描画処理に関わるブロック構成を示す図である。It is a figure which shows the block structure in connection with a drawing process. 描画処理に関わるブロック構成の一部が停止した状態を示す図である。It is a figure showing the state where a part of block composition concerning drawing processing stopped. PDL印刷処理のフローチャートである。It is a flowchart of a PDL printing process. バンド高さの設定処理のフローチャートである。It is a flowchart of a band height setting process. 並列描画処理のフローチャートである。It is a flowchart of a parallel drawing process. ブロック単位のライトとバンド単位のリードのアクセス制御を説明する図である。It is a figure explaining the access control of the write of a block unit, and the read of a band unit. バンド高さの設定処理のフローチャートである。It is a flowchart of a band height setting process. ブロック単位とバンド単位の矩形領域の位置関係を示す図である。It is a figure which shows the positional relationship of the rectangular area of a block unit and a band unit.

以下に、本発明の実施形態について図面を参照して詳細に説明する。なお、以下に説明する実施形態は一例に過ぎず、本発明を限定するものではない。また、図面全体を通して、同一の符号は、同一物を示す。   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 image forming apparatus 100 includes a controller 101, a network 102, an operation unit 103, a reading unit 104, and a printing unit 105.

ネットワーク102は、LANやWAN(公衆回線)等で実現され、ホストコンピュータやサーバ等の外部装置と画像形成装置100との間で画像データやデバイス情報を送受信する通信部である。操作部103は、ユーザによる操作を画像処理の制御情報として取得したり、ユーザに対して画像処理の制御情報を表示したりする処理部である。読取部(スキャナエンジン)104は、画像入力デバイスであって、光学センサ等を用いて画像形成装置100の内部に画像データを取り込む処理部である。印刷部(プリンタエンジン)105は、画像出力デバイスであって、画像形成装置100の内部の画像データを記録媒体に印刷する処理部である。   The network 102 is a communication unit that is realized by a LAN, a WAN (public line), or the like, and transmits and receives image data and device information between an external apparatus such as a host computer and a server and the image forming apparatus 100. The operation unit 103 is a processing unit that acquires an operation by a user as image processing control information or displays image processing control information to the user. A reading unit (scanner engine) 104 is an image input device, and is a processing unit that captures image data into the image forming apparatus 100 using an optical sensor or the like. A printing unit (printer engine) 105 is an image output device, and is a processing unit that prints image data inside the image forming apparatus 100 on a recording medium.

コントローラ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 controller 101 is connected to the network 102, the operation unit 103, the reading unit 104, and the printing unit 105, and is a control unit that controls the entire image forming apparatus 100. The controller 101 includes a system bus 106, a communication unit I / F 107, a CPU 108, a RAM 109, a ROM 110, an HDD 111, an operation unit I / F 112, and a reading unit I / F 113. The controller 101 also includes a drawing processing unit 114, a compression processing unit 115, an expansion processing unit 116, a band RAM 117, and a printing unit I / F 118. The controller 101 can be implemented as an image processing apparatus, and may be configured without including the reading unit 104 and the printing unit 105, for example.

システムバス106は、コントローラ101を構成する各処理部を接続し、各処理部の間で画像データや制御情報の送受信を行うための処理部である。通信部I/F107は、例えばLANカード等で実現され、ネットワーク102を介してホストコンピュータやサーバ等の外部装置と画像形成装置100との間で画像データやデバイス情報を送受信するためのインタフェース部である。   The system bus 106 is a processing unit for connecting the processing units constituting the controller 101 and transmitting / receiving image data and control information between the processing units. The communication unit I / F 107 is realized by, for example, a LAN card or the like, and is an interface unit for transmitting and receiving image data and device information between an external apparatus such as a host computer and a server and the image forming apparatus 100 via the network 102. is there.

CPU108は、画像形成装置100全体を制御する処理部である。特に、PDL(ページ記述言語)印刷処理では、ネットワーク102を介して外部装置から受信したPDLデータなどの描画データを解釈して、DL(ディスプレイリスト)と呼ばれる中間データに変換する処理を行う。ここでは、描画データの例として、PDLデータを処理するものとして説明する。   The CPU 108 is a processing unit that controls the entire image forming apparatus 100. In particular, in PDL (page description language) printing processing, rendering data such as PDL data received from an external device via the network 102 is interpreted and converted into intermediate data called DL (display list). Here, description will be made assuming that PDL data is processed as an example of drawing data.

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 CPU 108 to operate on the system or used as a buffer area for temporarily storing image data. A ROM (nonvolatile memory) 110 is a primary storage unit in which a program for the CPU 108 to start the system is stored. This program is expanded in the RAM 109 when the image forming apparatus 100 is started up and executed by the CPU 108.

HDD(ハードディスクドライブ)111は、画像形成装置100の内部で画像データを格納しておくための大容量記憶部である。   An HDD (Hard Disk Drive) 111 is a large capacity storage unit for storing image data inside the image forming apparatus 100.

操作部I/F112は、操作部103と接続され、ユーザによる操作を画像処理の制御情報として取得したり、ユーザに対して画像処理の制御情報を表示したりするためのインタフェース部である。読取部I/F(スキャン画像処理部)113は、読取部(スキャナエンジン)104と接続され、読取部104から入力された画像データに対して、読取部104のデバイス特性に合わせた補正のための画像処理を行う画像処理部である。   The operation unit I / F 112 is an interface unit that is connected to the operation unit 103 and acquires an operation performed by the user as image processing control information or displays the image processing control information to the user. A reading unit I / F (scanned image processing unit) 113 is connected to a reading unit (scanner engine) 104 for correcting the image data input from the reading unit 104 according to the device characteristics of the reading unit 104. This is an image processing unit for performing the image processing.

描画処理部(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 CPU 108, generates raster format image data, and stores it in the RAM 109. In addition, when processing the remaining intermediate data (DL) following the reduction processing, the drawing processing unit 114 generates image data in a raster format by combining the image data saved in the band RAM 117 with the image.

圧縮処理部115は、描画処理部114が生成したラスタ形式の画像データに対して圧縮処理を行い、圧縮画像データを生成し、RAM109に記憶する。   The compression processing unit 115 performs compression processing on the raster format image data generated by the drawing processing unit 114, generates compressed image data, and stores the compressed image data in the RAM 109.

伸張処理部116は、圧縮処理部115が圧縮処理を行なった圧縮画像データの伸張処理を行う。特に、縮退処理に続く中間データ(DL)の描画処理では、退避させた画像データに対して伸張処理を行い、バンドRAM117を介して描画処理部114に提供する。   The decompression processing unit 116 performs decompression processing of the compressed image data that the compression processing unit 115 performs the compression processing. In particular, in the intermediate data (DL) drawing process following the reduction process, the saved image data is expanded and provided to the drawing processing unit 114 via the band RAM 117.

バンドRAM117は、伸張処理部116から描画処理部114に対して出力されるラスタ形式の画像データを一次保持するローカルメモリであり、縮退処理に続く描画処理に用いられるフォールバックメモリである。また、バンドRAM117は、不図示のアクセス検知装置を備え、自身の特定のアドレスへの画像データの書き出し、及び、特定のアドレスからの画像データの読み出しを検知する。   The band RAM 117 is a local memory that primarily holds raster-format image data output from the decompression processing unit 116 to the rendering processing unit 114, and is a fallback memory used for rendering processing subsequent to the reduction processing. The band RAM 117 includes an access detection device (not shown), and detects writing of image data to its own specific address and reading of image data from the specific address.

なお、PDL印刷時の描画処理に関わる描画処理部114、圧縮処理部115、伸張処理部116、及びバンドRAM117の動作については、図4を用いてさらに詳細に説明する。   The operations of the drawing processing unit 114, the compression processing unit 115, the decompression processing unit 116, and the band RAM 117 related to the drawing processing during PDL printing will be described in more detail with reference to FIG.

印刷部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 printing unit 105, and then performs printing on the printing unit 105. An image processing unit for outputting image data.

なお、図1では、描画処理部114と伸張処理部116がローカルメモリとしてのバンドRAM117を介して直接接続された構成例を示したが、画像形成装置100の構成はこれに限定されるものではない。また、例えば、圧縮処理部115は、システムバス106上に汎用で接続して構成されても良いし、読取部I/F113や描画処理部114等の圧縮処理が必要な処理部に専用で接続して構成されても良い。同様に、例えば、伸張処理部116は、システムバス106上に汎用で接続して構成されても良いし、印刷部I/F118等の伸張処理が必要な処理部に専用で接続して構成されても良い。   Although FIG. 1 shows a configuration example in which the drawing processing unit 114 and the expansion processing unit 116 are directly connected via the band RAM 117 as a local memory, the configuration of the image forming apparatus 100 is not limited to this. Absent. Further, for example, the compression processing unit 115 may be configured to be connected on the system bus 106 for general purposes, or connected exclusively to a processing unit that requires compression processing, such as the reading unit I / F 113 or the drawing processing unit 114. May be configured. Similarly, for example, the expansion processing unit 116 may be configured to be connected to the system bus 106 for general purposes, or may be configured to be connected exclusively to a processing unit such as the printing unit I / F 118 that requires expansion processing. May be.

次に、図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 image forming apparatus 100 will be described with reference to FIGS. FIG. 2 shows a data flow of PDL printing processing in the image forming apparatus 100. In FIG. 2, particularly, the broken line portion relates to a degeneration operation (fallback) performed when the intermediate data (DL) is larger than a predetermined storage capacity secured on the RAM 109. FIG. 3 shows an example of a coordinate system of a rectangular area in a page handled by the image forming apparatus 100. Note that the data flow shown in FIG. 2 is implemented by the CPU 108 executing a program developed in the RAM 109 of the image forming apparatus 100.

まず、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 image forming apparatus 100 first receives the PDL data transmitted from the host computer by the communication unit I / F 107 and stores it in the RAM 109 or the HDD 111 as the PDL data 201 in units of pages.

次に、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 CPU 108 interprets the PDL data 201 in page units, generates intermediate data (DL) 202 in page units or band units, and stores it in the RAM 109 again. As shown in FIGS. 3A to 3C, the band unit divides a single page in the sub-scanning direction (Y direction), thereby sub-scanning the number of pixels in the main scanning direction (X direction). It means a strip-like rectangular area (band area) having a smaller number of pixels in the direction. In addition, as shown in FIGS. 3A to 3C, the block unit is a rectangular area having a square tile shape in which the number of pixels in the main scanning direction and the number of pixels in the sub-scanning direction are predetermined in the image forming apparatus 100. (Block area). The difference between FIG. 3A, FIG. 3B, and FIG. 3C is whether or not the rectangular area in block units is in a positional relationship included in the rectangular area in band units. FIG. 3A and FIG. 3B show a conventional relationship in which blocks are included in a single band, and the single band is composed of a set of a plurality of blocks. In particular, FIG. 3B shows an example in which the height of the block and the band in the sub-scanning direction (the number of pixels in the sub-scanning direction) is equal. On the other hand, FIG. 3C shows an image data unit suitable for executing drawing processing in parallel in one embodiment of the present invention. In FIG. 3C, the block and the band are not included in each other, and the relationship in which the number of pixels (the height of the block) in the sub-scanning direction of the block is divided by the height of the plurality of bands is satisfied. Specifically, as shown in FIG. 3C, in the single page 1, the number of pixels in the sub-scanning direction of the single block 11 is divided by the height of each band 11 and band 12. Satisfy the relationship. In the following description, examples of the coordinate system of the band unit and the block unit in the page shown in FIGS. 3A to 3C will be used as necessary.

また、CPU108は、中間データ(DL)を生成し、RAM109に記憶すると共に、描画処理部114の並列動作に関わる並列描画処理設定情報203を、描画処理部114の内部レジスタに設定する。並列描画処理設定情報203には、中間データ(DL)が記憶されるRAM109のアドレスの先頭アドレス、描画処理部114の並列動作数、描画されるバンドの副走査方向の画素数(バンドの高さ)などが含まれる。   The CPU 108 also generates intermediate data (DL) and stores it in the RAM 109, and sets parallel drawing processing setting information 203 related to the parallel operation of the drawing processing unit 114 in the internal register of the drawing processing unit 114. The parallel drawing processing setting information 203 includes the start address of the address of the RAM 109 in which intermediate data (DL) is stored, the number of parallel operations of the drawing processing unit 114, and the number of pixels in the sub-scanning direction of the band to be drawn (band height). ) Etc. are included.

次に、描画処理部114は、RAM109に記憶された中間データ(DL)202を参照し、単一ページ内の複数のバンド単位の矩形領域に対する描画処理を並列に実行する。描画処理部114は、バンド単位で並列して描画処理を行うことによって、複数のバンドのラスタ形式の画像データ204を生成し、RAM109に一次記憶する。   Next, the drawing processing unit 114 refers to the intermediate data (DL) 202 stored in the RAM 109 and executes drawing processing on a plurality of band-by-band rectangular areas in a single page in parallel. The drawing processing unit 114 performs drawing processing in parallel in units of bands, thereby generating raster format image data 204 of a plurality of bands, and temporarily stores them in the RAM 109.

次に、圧縮処理部115は、RAM109に一次記憶されたバンド単位の画像データ204からブロック単位の画像データを読み出す。単一ブロックが複数のバンドで構成されている場合は、単一ブロックを構成する複数のバンド単位の画像データ204を結合し、結合された複数のバンド単位の画像データ204からブロック単位の画像データを読み出す。そして、圧縮処理部115は、読み出したブロック単位の画像データにJPEG等の圧縮処理を行って圧縮画像データ205を生成し、再びRAM109あるいはHDD111に記憶する。   Next, the compression processing unit 115 reads block-unit image data from the band-unit image data 204 primarily stored in the RAM 109. When a single block is composed of a plurality of bands, a plurality of band-unit image data 204 constituting a single block are combined, and a plurality of band-unit image data 204 is combined to form block-unit image data. Is read. Then, the compression processing unit 115 performs compression processing such as JPEG on the read block-unit image data to generate compressed image data 205 and stores the compressed image data 205 in the RAM 109 or the HDD 111 again.

次に、伸張処理部116は、ブロック単位で圧縮された圧縮画像データ205に対してJPEG等の伸張処理を行い、ラスタ形式の画像データを生成する。そして、伸張処理部116は、単一ページを構成する全てのブロック単位のラスタ形式の画像データを結合して、ページ単位のラスタ形式の画像データ206を生成し、再びRAM109に一次記憶する。   Next, the decompression processing unit 116 performs decompression processing such as JPEG on the compressed image data 205 compressed in units of blocks to generate raster format image data. The decompression processing unit 116 combines all block-unit raster format image data constituting a single page, generates page-unit raster format image data 206, and temporarily stores it in the RAM 109 again.

次に、印刷部I/F118は、RAM109に一次記憶されたページ単位の画像データ206を読み出し、印刷部105のデバイス特性に合わせた補正のための画像処理を行った後に、印刷部105に対して補正後の画像データを出力する。   Next, the printing unit I / F 118 reads the page-unit image data 206 temporarily stored in the RAM 109, performs image processing for correction in accordance with the device characteristics of the printing unit 105, and then performs printing on the printing unit 105. To output the corrected image data.

次に、印刷部(プリンタエンジン)105は、印刷部I/F118から出力された画像データを記録媒体に印刷する。   Next, the printing unit (printer engine) 105 prints the image data output from the printing unit I / F 118 on a recording medium.

以上、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 CPU 108 interprets the PDL data 201 and generates the intermediate data (DL) 202, is the intermediate data (DL) 202 constituting a single page larger than a predetermined storage capacity secured on the RAM 109? Judge whether. When the storage capacity is larger than the predetermined storage capacity (that is, when the storage capacity is insufficient), the CPU 108 sequentially stores the RAM 109 as the intermediate data (DL) 202 from the drawing object drawn on the back surface within the range not exceeding the predetermined storage capacity. To remember. Rendering processing is performed on the intermediate data (DL) 202 by the rendering processing unit 114, and raster format image data 207 obtained through the compression processing unit 115 and the decompression processing unit 116 is temporarily stored in the band RAM 117. . This image data 207 is referred to as back image data in the degeneration operation (fallback). The back image data is temporarily stored in the band RAM 117 as image data for image synthesis, and the drawing processing unit 114 refers to this and uses it for the drawing processing. That is, the drawing processing unit 114 obtains a final drawing result by synthesizing the drawing result of the remaining intermediate data (DL) that did not fit in the RAM 109 and the back image acquired from the band RAM 117. Can do. In this way, by repeating until the intermediate data (DL) 202 fits in a predetermined storage capacity on the RAM 109 in accordance with the above-described degeneration operation (fallback), it is limited by limited hardware resources constituting the image forming apparatus 100. The drawing process can be realized without any problem.

次に、図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 compressed image data 205 that are primarily stored in the RAM 109 during a reduction operation (fallback), and the obtained image data 204 is stored in the RAM 109. The operation to memorize is shown.

図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 image forming apparatus 100 uses a first drawing processing unit 401 and a second drawing processing unit 402 constituting the drawing processing unit 114, and a plurality of images in a single page of the intermediate data (DL) 202. Each band is drawn in parallel. The first drawing processing unit 401 performs drawing processing on odd-numbered bands in a single page, skips even-numbered bands, and updates the position coordinates for each scan line of the drawing object. The second drawing processing unit 402 draws even-numbered bands in a single page, skips odd-numbered bands, and updates the position coordinates for each scan line of the drawing object. As described above, since the first drawing processing unit 401 and the second drawing processing unit 402 each acquire a drawing object to be drawn in a band unit, the intermediate data (DL) 202 temporarily stored in the RAM 109 is a page. Units or band units may be used.

また、伸張処理部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 decompression processing unit 421 and the second decompression processing unit 422 constituting the decompression processing unit 116 operate in cooperation with the first rendering processing unit 401 and the second rendering processing unit 402 constituting the rendering processing unit 114, respectively. To do. The first decompression processing unit 421 performs the decompression process on the block 1 image data corresponding to the band 1 and the band 3 shown in FIG. 3B acquired from the compressed image data 205 in order, and configures the band RAM 117. To the first band RAM 411. Further, the second decompression processing unit 422 performs decompression processing on the block-unit image data corresponding to the band 2 and the band 4 shown in FIG. Is output to the second band RAM 412.

これを受けて、第1描画処理部401は、第1バンドRAM411に一次記憶され、図3(b)で示したバンド1及びバンド3に対応する複数ブロックで構成されたバンド単位の画像データを順に読み出し、描画処理時に画像合成してRAM109に転送する。同様に、第2描画処理部402は、第2バンドRAM412に一次記憶され、図3(b)で示したバンド2及びバンド4に対応する複数ブロックで構成されたバンド単位の画像データを順に読み出し、描画処理時に画像合成してRAM109に転送する。   In response to this, the first drawing processing unit 401 stores the band-unit image data composed of a plurality of blocks corresponding to the band 1 and the band 3 shown in FIG. The images are read in order, and the images are combined and transferred to the RAM 109 during the drawing process. Similarly, the second drawing processing unit 402 sequentially reads out image data in band units composed of a plurality of blocks corresponding to band 2 and band 4 shown in FIG. The images are combined and transferred to the RAM 109 during the drawing process.

第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 first band RAM 411 includes a double buffer that can simultaneously execute writing by the first decompression processing unit 421 and reading by the first drawing processing unit 401. Therefore, for example, the writing process of the blocks 31 to 34 corresponding to the band 3 by the first decompression processing unit 421 and the reading process of the band 1 by the first drawing processing unit 401 can be executed simultaneously. Similarly, the second band RAM 412 is composed of a double buffer capable of simultaneously executing writing by the second decompression processing unit 422 and reading by the second drawing processing unit 402. Therefore, for example, the writing process of the blocks 41 to 44 corresponding to the band 4 by the second decompression processing unit 422 and the reading process of the band 2 by the second drawing processing unit 402 can be executed simultaneously.

以上説明したように、図4(a)の例では、描画処理部114の並列化で必要となるハードリソースだけでなく、伸張処理部116、及び、バンドRAM117も描画処理部114の並列動作数分だけ必要となる。   As described above, in the example of FIG. 4A, not only the hardware resources necessary for parallelizing the drawing processing unit 114 but also the expansion processing unit 116 and the band RAM 117 are the number of parallel operations of the drawing processing unit 114. Only minutes are needed.

図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 drawing processing unit 114. An operation of a drawing process when divided by a plurality of band-based heights (number of pixels) based on the number of operations is shown. In FIG. 4B, the image forming apparatus 100 draws a plurality of bands in a single page in parallel using the first drawing processing unit 401 and the second drawing processing unit 402 constituting the drawing processing unit 114. Process. The first drawing processing unit 401 performs drawing processing on odd-numbered bands in a single page, skips even-numbered bands, and updates the position coordinates for each scan line of the drawing object. The second drawing processing unit 402 draws even-numbered bands in a single page, skips odd-numbered bands, and updates the position coordinates for each scan line of the drawing object. As described above, since the first drawing processing unit 401 and the second drawing processing unit 402 each acquire a drawing object to be drawn in a band unit, the intermediate data (DL) 202 temporarily stored in the RAM 109 is a page. Units or band units may be used.

図4(b)における伸張処理部116は、第1描画処理部401と第2描画処理部402の両方と連携して動作する単一の伸張処理部421で構成される。また、バンドRAM117は、単一のバンドRAM411で構成される。   The decompression processing unit 116 in FIG. 4B includes a single decompression processing unit 421 that operates in cooperation with both the first drawing processing unit 401 and the second drawing processing unit 402. The band RAM 117 is composed of a single band RAM 411.

伸張処理部116を構成する単一の伸張処理部421は、圧縮画像データ205から取得した、図3(c)で示したバンド11及びバンド12に対応するブロック単位の画像データに対して順に伸張処理を行い、バンドRAM411に出力する。   A single decompression processing unit 421 constituting the decompression processing unit 116 sequentially decompresses image data in block units corresponding to the bands 11 and 12 shown in FIG. 3C acquired from the compressed image data 205. Processing is performed and output to the band RAM 411.

これを受けて、第1描画処理部401は、RAM411に一次記憶され、図3(c)で示したバンド11及びバンド21に対応するバンド単位の画像データを順に読み出し、描画処理時に画像合成してRAM109に転送する。同様に、第2描画処理部402は、バンドRAM411に一次記憶され、図3(c)で示したバンド12及びバンド22に対応するバンド単位の画像データを順に読み出し、描画処理時に画像合成してRAM109に転送する。   In response to this, the first drawing processing unit 401 stores the image data in units of bands corresponding to the band 11 and the band 21 shown in FIG. To the RAM 109. Similarly, the second rendering processing unit 402 is primarily stored in the band RAM 411, sequentially reads out band-unit image data corresponding to the bands 12 and 22 shown in FIG. 3C, and combines the images during the rendering process. Transfer to the RAM 109.

バンドRAM411は、伸張処理部421による書き出しと、第1描画処理部401及び第2描画処理部402による読み出しを同時に実行可能なダブルバッファで構成されている。従って、例えば、伸張処理部421によるバンド21及びバンド22に対応したブロック21〜24の書き出し処理と、第1描画処理部401によるバンド11の読み出し処理を同時に実行できる。同様に、伸張処理部421によるバンド21及びバンド22に対応したブロック21〜24の書き出し処理と、第2描画処理部402によるバンド12の読み出し処理も同時に実行できる。   The band RAM 411 includes a double buffer that can simultaneously execute writing by the expansion processing unit 421 and reading by the first drawing processing unit 401 and the second drawing processing unit 402. Therefore, for example, the writing process of the blocks 21 to 24 corresponding to the band 21 and the band 22 by the expansion processing unit 421 and the reading process of the band 11 by the first drawing processing unit 401 can be executed simultaneously. Similarly, the writing processing of the blocks 21 to 24 corresponding to the band 21 and the band 22 by the expansion processing unit 421 and the reading processing of the band 12 by the second drawing processing unit 402 can be executed simultaneously.

以上説明したように、図4(b)の例では、描画処理部114を並列化しても、描画処理部114のハードリソースが並列動作数分だけあれば十分であって、伸張処理部116、及び、バンドRAM117のハードリソースを追加する必要はない。   As described above, in the example of FIG. 4B, even if the drawing processing units 114 are parallelized, it is sufficient that the drawing processing unit 114 has as many hardware resources as the number of parallel operations. And it is not necessary to add the hardware resource of band RAM117.

図5は、図4(b)において、画像形成装置100における描画処理部114の並列描画処理設定情報を変更し、第2描画処理部402を停止して、第1描画処理部401のみを動作させた場合の描画処理の動作を示す。この場合、描画処理部114の並列動作数が1になるので、ブロック単位の矩形領域がバンド単位の矩形領域に包含される図3(b)と同様の位置関係になる。   5 changes the parallel drawing processing setting information of the drawing processing unit 114 in the image forming apparatus 100 in FIG. 4B, stops the second drawing processing unit 402, and operates only the first drawing processing unit 401. The operation of the drawing process in the case of being made is shown. In this case, since the number of parallel operations of the drawing processing unit 114 is 1, the positional relationship is the same as in FIG. 3B in which the rectangular area in units of blocks is included in the rectangular area in units of bands.

図5において、単一の伸張処理部421は、図3(b)で示したバンド1及びバンド2に対応するブロック単位の画像データに対して順に伸張処理を行い、バンドRAM117を構成する単一のバンドRAM411に出力する。   In FIG. 5, a single decompression processing unit 421 performs decompression processing on the block unit image data corresponding to band 1 and band 2 shown in FIG. To the band RAM 411.

これを受けて、第1描画処理部401のみが、バンドRAM411に一次記憶されたバンド1及びバンド2に対応する複数ブロックで構成されたバンド単位の画像データを順に読み出し、描画処理時に画像合成してRAM109に転送する。このようにして、単一ページをバンド単位で順に描画する。   In response to this, only the first drawing processing unit 401 sequentially reads out band-unit image data composed of a plurality of blocks corresponding to band 1 and band 2 that are primarily stored in the band RAM 411, and synthesizes the images during the drawing process. To the RAM 109. In this way, a single page is sequentially drawn in band units.

バンドRAM411は、伸張処理部421による書き出しと、描画処理部401による読み出しを同時に実行可能なダブルバッファで構成されている。従って、例えば、伸張処理部421によるバンド2内のブロック21〜24の書き出し処理と、描画処理部401によるバンド1の読み出し処理を同時に実行できる。   The band RAM 411 is composed of a double buffer that can simultaneously execute writing by the expansion processing unit 421 and reading by the drawing processing unit 401. Therefore, for example, the writing processing of the blocks 21 to 24 in the band 2 by the expansion processing unit 421 and the reading processing of the band 1 by the drawing processing unit 401 can be executed simultaneously.

以上説明したように、図5の例では、描画処理部114の並列描画処理設定情報を変更し、複数の描画処理部のうち一部を停止させた場合にも、描画処理の並列動作数とバンドの高さを対応させることで、並列動作時と同様の描画処理を実現できる。   As described above, in the example of FIG. 5, even when the parallel drawing processing setting information of the drawing processing unit 114 is changed and some of the plurality of drawing processing units are stopped, By making the band heights correspond to each other, it is possible to realize the same drawing process as in parallel operation.

図6は、画像形成装置100におけるPDL印刷処理のフローチャートを示す。図6のフローチャートで示される処理は、画像形成装置100のRAM109に展開されたプログラムを、CPU108が実行することにより実施される。   FIG. 6 shows a flowchart of the PDL printing process in the image forming apparatus 100. The processing shown in the flowchart of FIG. 6 is implemented by the CPU 108 executing a program developed in the RAM 109 of the image forming apparatus 100.

まず、ステップS601において、CPU108は、ホストコンピュータから送信されたPDLデータを通信部I/F107を介して受信し、ページ単位のPDLデータとしてRAM109あるいはHDD111に記憶する。   First, in step S601, the CPU 108 receives the PDL data transmitted from the host computer via the communication unit I / F 107 and stores it in the RAM 109 or the HDD 111 as PDL data in units of pages.

次に、ステップS602において、CPU108は、記憶されたページ単位のPDLデータを解釈し、解釈した情報を元に描画処理対象となるバンド単位の中間データ(DL)を生成する。   In step S602, the CPU 108 interprets the stored page unit PDL data, and generates band unit intermediate data (DL) to be rendered based on the interpreted information.

次に、ステップS603において、CPU108は、生成した中間データ(DL)がRAM109上に確保した所定の記憶容量よりも大きい場合の縮退動作(フォールバック)に用いる画像合成用の背面画像データがあるか判定する。画像合成用の背面画像データがある場合、ステップS604に進み、CPU108は、伸張処理部116を用いて背面画像データの伸張処理を実行する。ステップS604において、伸張処理部116は、図4及び図5を用いて説明した通り、圧縮画像データに対してブロック単位で伸張処理を行って得られた画像データをバンドRAM117に一次記憶する。従って、伸張処理部116は、この後のステップS606で描画処理部114が必要とするバンド分だけ、圧縮画像データを伸張する。一方、画像合成用の背面画像が無い場合、ステップS604をスキップしてステップS605に遷移する。   Next, in step S <b> 603, the CPU 108 determines whether there is back image data for image composition used for the degeneration operation (fallback) when the generated intermediate data (DL) is larger than a predetermined storage capacity secured on the RAM 109. judge. If there is back image data for image composition, the process advances to step S604, and the CPU 108 uses the decompression processing unit 116 to perform decompression processing of the back image data. In step S604, the decompression processing unit 116 primarily stores in the band RAM 117 image data obtained by performing decompression processing on the compressed image data in units of blocks as described with reference to FIGS. Accordingly, the decompression processing unit 116 decompresses the compressed image data by the band necessary for the drawing processing unit 114 in the subsequent step S606. On the other hand, if there is no back image for image composition, step S604 is skipped and the process proceeds to step S605.

次に、ステップS605において、CPU108は、並列描画処理設定情報としてバンド高さを描画処理部114の内部レジスタに設定する。ステップS605におけるバンド高さの設定処理については、図7のフローチャートを用いて別途詳細に説明する。   Next, in step S <b> 605, the CPU 108 sets the band height in the internal register of the drawing processing unit 114 as parallel drawing processing setting information. The band height setting process in step S605 will be described in detail separately with reference to the flowchart of FIG.

次に、ステップS606において、CPU108は、描画処理部114を制御してステップS605で設定されたバンド高さに従って描画処理をバンド単位で並列に実行し、描画処理結果の画像データをRAM109に一次記憶する。ステップS606における並列描画処理については、図8のフローチャートを用いて別途詳細に説明する。   Next, in step S606, the CPU 108 controls the drawing processing unit 114 to execute drawing processing in parallel in units of bands according to the band height set in step S605, and temporarily stores the image data of the drawing processing result in the RAM 109. To do. The parallel drawing process in step S606 will be described in detail separately with reference to the flowchart of FIG.

次に、ステップS607において、CPU108は、圧縮処理部115を制御して圧縮処理を実行し、RAM109に一次記憶された描画処理結果の画像データを圧縮して圧縮画像データに変換し、再びRAM109に記憶する。   Next, in step S <b> 607, the CPU 108 controls the compression processing unit 115 to execute compression processing, compresses the image data of the rendering processing result temporarily stored in the RAM 109, converts it into compressed image data, and again stores it in the RAM 109. Remember.

次に、ステップS608において、CPU108は、ステップS601で受信したPDLデータを元に生成した中間データ(DL)によって、RAM109に収まらなかった未描画オブジェクトがあるか判定する。未描画オブジェクトがある場合、ステップS602に戻り、CPU108は、縮退動作(フォールバック)として、未描画オブジェクトがなくなるまで処理を繰り返す。一方、未描画オブジェクトが無い場合、ステップS609に進み、CPU108は、伸張処理部116を制御して伸張処理を実行し、RAM109に一次記憶された圧縮画像データを伸張して、再びRAM109に記憶する。   In step S608, the CPU 108 determines whether there is an undrawn object that does not fit in the RAM 109 based on the intermediate data (DL) generated based on the PDL data received in step S601. If there is an undrawn object, the process returns to step S602, and the CPU 108 repeats the process until there is no undrawn object as a degeneration operation (fallback). On the other hand, if there is no undrawn object, the process advances to step S609, and the CPU 108 controls the decompression processing unit 116 to perform decompression processing, decompresses the compressed image data temporarily stored in the RAM 109, and stores the decompressed image data in the RAM 109 again. .

次に、ステップS610において、CPU108は、印刷部I/F118を制御してRAM109に記憶された画像データを読み出し、印刷部105のデバイス特性に合わせた補正のための画像処理を行った後に、印刷部105に対して画像データを転送する。   Next, in step S <b> 610, the CPU 108 controls the printing unit I / F 118 to read the image data stored in the RAM 109, performs image processing for correction in accordance with the device characteristics of the printing unit 105, and then performs printing. The image data is transferred to the unit 105.

その後、ステップS611において、印刷部105は、印刷部I/F118から転送された画像データを記録媒体に印刷する。   Thereafter, in step S611, the printing unit 105 prints the image data transferred from the printing unit I / F 118 on a recording medium.

以上説明したように、画像形成装置100によるPDL印刷処理が行われる。次に、上述したステップS605におけるバンド高さの設定処理について説明する。   As described above, the PDL printing process by the image forming apparatus 100 is performed. Next, the band height setting process in step S605 described above will be described.

図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 CPU 108 executing a program developed in the RAM 109 of the image forming apparatus 100.

まず、ステップS701において、CPU108は、ステップS603と同様に、縮退動作(フォールバック)時に用いる画像合成用の背面画像データがあるか判定する。背面画像データがない場合は、ステップS702に遷移し、背面画像データがある場合は、ステップS703に遷移する。   First, in step S701, as in step S603, the CPU 108 determines whether there is back image data for image synthesis that is used during a degeneration operation (fallback). If there is no back image data, the process proceeds to step S702, and if there is back image data, the process proceeds to step S703.

背面画像データがない場合、図4を参照して説明した描画処理部114と伸張処理部116との間のバンドRAM117を用いた連携動作は行われない。したがって、ステップS702において、CPU108は、RAM109で確保可能な記憶容量に従いバンド高さを任意のサイズに決定し、描画処理部114の内部レジスタに設定する。任意のサイズとは、例えば、図3(a)〜(c)で示したいずれのバンド高さに設定しても良いことを意味する。   When there is no back image data, the cooperative operation using the band RAM 117 between the drawing processing unit 114 and the expansion processing unit 116 described with reference to FIG. 4 is not performed. Therefore, in step S <b> 702, the CPU 108 determines the band height to an arbitrary size according to the storage capacity that can be secured in the RAM 109, and sets the band height in the internal register of the drawing processing unit 114. Arbitrary size means that it may be set to any band height shown in FIGS. 3A to 3C, for example.

一方、背面画像データがある場合、ステップS703において、CPU108は、画像形成装置100の内部で扱うデータ単位としてのブロック単位を取得する。ブロック単位とは、矩形領域の高さと幅を意味し、ここでは、簡単のために、ブロック単位を8画素(高さ)×8画素(幅)の正方形タイル形状として説明する。したがって、ブロックの高さは8画素となる。   On the other hand, if there is back image data, the CPU 108 acquires a block unit as a data unit handled in the image forming apparatus 100 in step S703. The block unit means the height and width of the rectangular area. Here, for simplicity, the block unit is described as a square tile shape of 8 pixels (height) × 8 pixels (width). Therefore, the height of the block is 8 pixels.

次に、ステップS704において、CPU108は、バンド単位の描画処理を行う描画処理部114の並列動作数を取得する。例えば、描画処理部114が図4(b)の動作状態であれば、並列動作数は2、図5の動作状態であれば、並列動作数は1、を描画処理部114の内部レジスタにアクセスすることで取得する。   In step S <b> 704, the CPU 108 acquires the number of parallel operations of the drawing processing unit 114 that performs drawing processing in units of bands. For example, if the drawing processing unit 114 is in the operation state of FIG. 4B, the number of parallel operations is 2, and if the drawing processing unit 114 is in the operation state of FIG. To get it.

次に、ステップS705において、CPU108は、ステップS704で取得した並列動作数が2以上であるか否かを判定する。並列動作数が1以下であれば、ステップS706に遷移し、並列動作数が2以上であれば、ステップS707に遷移する。   Next, in step S705, the CPU 108 determines whether or not the number of parallel operations acquired in step S704 is 2 or more. If the number of parallel operations is 1 or less, the process proceeds to step S706. If the number of parallel operations is 2 or more, the process proceeds to step S707.

並列動作数が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 CPU 108 directly sets the height of the block acquired in step S703 as the height of the band processed by the drawing processing unit 114. For example, in the case of the operation state of FIG. 5, since the number of parallel operations is 1 for a block unit of 8 pixels × 8 pixels, the height of the band is calculated as 8 (= 8 ÷ 1). 114 is set in the internal register.

一方、並列動作数が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 CPU 108 equally divides the height of the block acquired in step S703 by the number of parallel operations acquired in step S704. For example, in the case of the operation state of FIG. 4B, the number of parallel operations is 2 for a block unit of 8 pixels × 8 pixels, so the band height is calculated as 4 (= 8 ÷ 2).

次に、ステップS708において、均等分割して算出した値をバンドの高さとして描画処理部114の内部レジスタに設定する。   In step S708, the value calculated by equal division is set as the band height in the internal register of the drawing processing unit 114.

以上説明したように、背面画像データの有無、及び描画処理部の並列動作数に基づいて、バンドの高さが設定される。次に、上述したステップ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 drawing processing unit 114 when the CPU 108 executes a program developed in the RAM 109 of the image forming apparatus 100. Hereinafter, description will be made assuming that the drawing processing unit 114 operates based on the control of the CPU 108.

まず、ステップ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 drawing processing unit 114 acquires the start address of the intermediate data (DL) set by the CPU 108 in the internal register of the drawing processing unit 114. .

次に、ステップS802において、描画処理部114の各描画処理部は、ステップS605で描画処理部114の内部レジスタに設定されたバンドの高さを取得する。   Next, in step S802, each drawing processing unit of the drawing processing unit 114 acquires the band height set in the internal register of the drawing processing unit 114 in step S605.

次に、ステップ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 drawing processing unit 114 acquires the number of parallel operations for executing drawing processing in units of bands inside the drawing processing unit 114 and its own ID from the internal register. For example, in the case of the first drawing processing unit 401 of the drawing processing unit 114 shown in FIG. 4B, the number of parallel operations is 2, and the ID of 1 is acquired. In the case of the second drawing processing unit 402, 2 is acquired as the number of parallel operations, and 2 is acquired as its own ID.

次に、ステップS804において、描画処理部114の各描画処理部401、402は、中間データ(DL)から処理対象のバンド内に含まれる描画オブジェクトを取得する。   Next, in step S804, the drawing processing units 401 and 402 of the drawing processing unit 114 acquire a drawing object included in the processing target band from the intermediate data (DL).

次に、ステップ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 drawing processing unit 114 collates the band number of the processing target band with its own ID, and whether the band is a drawing processing target band for which the drawing process is performed. Determine whether or not. That is, for example, in the case of the first drawing processing unit 401 shown in FIG. 4B, since its own ID is 1, the odd-numbered bands such as the band 11 and the band 21 shown in FIG. Are determined to be their own drawing processing target bands. In the case of the second drawing processing unit 402 shown in FIG. 4B, since its own ID is 2, even-numbered bands such as the band 12 and the band 22 shown in FIG. It is determined that the band is a drawing processing target band. If the band to be processed is the band to be drawn, the process proceeds to step S806. If the band to be processed is not the band to be drawn, the process proceeds to step S809.

ステップS806では、描画処理部114の各描画処理部は、上述したステップS603と同様に、縮退動作(フォールバック)に用いる画像合成用の背面画像データがあるか判定する。背面画像データがある場合、ステップS807に遷移し、バンドRAM117から処理対象のバンドに対応する背面画像データを取得する。ここで、上述したステップS604の伸張処理で生成した背面画像データは、図5を用いて説明した通り、処理対象のバンド領域を描画するために必要なバンド分だけ、バンドRAM117に一次保持されている。一方、背面画像データが無い場合、ステップS807をスキップして、ステップS808に遷移する。   In step S <b> 806, each drawing processing unit of the drawing processing unit 114 determines whether there is back image data for image composition used for the degeneration operation (fallback), as in step S <b> 603 described above. If there is back image data, the process proceeds to step S807, and the back image data corresponding to the band to be processed is acquired from the band RAM 117. Here, as described with reference to FIG. 5, the back surface image data generated by the expansion processing in step S604 described above is temporarily stored in the band RAM 117 for the band necessary for drawing the band area to be processed. Yes. On the other hand, when there is no back image data, step S807 is skipped and the process proceeds to step S808.

次に、ステップS808において、描画処理部114の各描画処理部は、処理対象のバンド領域の描画に必要な描画オブジェクトを中間データ(DL)から取得し、描画処理結果の画像データをRAM109に出力する。特に、ステップS807で取得した背面画像データがある場合は、これを参照して画像合成処理を行い、描画処理結果の画像データを生成する。   In step S <b> 808, each drawing processing unit of the drawing processing unit 114 acquires a drawing object necessary for drawing the band area to be processed from the intermediate data (DL), and outputs image data as a drawing processing result to the RAM 109. To do. In particular, if there is back image data acquired in step S807, image synthesis processing is performed with reference to the back image data, and image data as a drawing processing result is generated.

一方、ステップS809では、描画処理部114の各描画処理部は、処理対象のバンド領域に含まれる描画オブジェクトのスキャンライン毎の位置座標のみを更新し、当該バンド領域の描画処理を行わないで中間データ(DL)を読み飛ばす処理を行う。   On the other hand, in step S809, each drawing processing unit of the drawing processing unit 114 updates only the position coordinates for each scan line of the drawing object included in the processing target band area, and performs intermediate processing without performing the band area drawing process. A process of skipping data (DL) is performed.

次に、ステップS810において、描画処理部114の各描画処理部は、RAM109に記憶された中間データ(DL)に描画対象の次のバンドがあるか否かを判定する。次のバンドがあれば、ステップS804に戻って処理を繰り返し、次のバンドが無ければ、現在処理しているページの描画処理を終了する。   Next, in step S810, each drawing processing unit of the drawing processing unit 114 determines whether or not there is a next band to be drawn in the intermediate data (DL) stored in the RAM 109. If there is a next band, the process returns to step S804 to repeat the process. If there is no next band, the drawing process for the currently processed page is terminated.

以上説明したように、描画処理部114によって並列描画処理が実施される。   As described above, the drawing processing unit 114 performs parallel drawing processing.

図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 first band RAM 411 of the band RAM 117. FIG. 9B shows image data read from the band RAM 117 in units of bands.

図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 blocks 11 to 14 are sequentially written to the first band RAM 411 by the first expansion processing unit 421 of the expansion processing unit 116. On the other hand, as shown in FIG. 9B, the band 11 is read from the band RAM 117 by the first drawing processing unit 401 of the drawing processing unit 114, and the band 12 is read from the second drawing processing unit 402 of the drawing processing unit 114. Is read from the band RAM 117.

第1バンドRAM411は、伸張処理部116と描画処理部114を連携動作させるために、図9(a)でライトアクセス検知と示したアドレス(画素位置)への画像データの書き出しをトリガとして、描画処理部114のリード(読み出し)開始を制御する。当該アドレス(画素位置)までブロック単位の画像データが書き出されたことを検知することで、バンド単位の画像データの書き出しが完了したと判定できるためである。   The first band RAM 411 draws image data to the address (pixel position) indicated as the write access detection in FIG. 9A as a trigger to operate the decompression processing unit 116 and the drawing processing unit 114 in cooperation with each other. Controls the start of reading (reading) of the processing unit 114. This is because it can be determined that the writing of the band-unit image data has been completed by detecting that the block-unit image data has been written up to the address (pixel position).

また、第1バンドRAM411は、同じく連携動作のために、図9(b)でリードアクセス検知と示したすべてのアドレス(画素位置)からの画像データの読み出しをトリガとして、伸張処理部116のライト(書き出し)開始を制御する。当該すべてのアドレス(画素位置)までバンド単位の画像データが読み出されたことを検知することで、ブロック単位の画像データを包含するすべてのバンド単位の画像データの読み出しが完了したと判定できるためである。これはすなわち、第1バンドRAM411に新たな書き出しのための空き領域ができたことを意味する。   Similarly, the first band RAM 411 performs the write operation of the decompression processing unit 116 using the reading of image data from all addresses (pixel positions) indicated as read access detection in FIG. (Export) Controls the start. By detecting that the image data in the band unit has been read up to all the addresses (pixel positions), it can be determined that the reading of the image data in all the band units including the image data in the block unit has been completed. It is. This means that the first band RAM 411 has a free area for new writing.

以上説明したように、本発明の一実施形態によれば、伸張処理部116及びバンドRAM117のハードリソースを描画処理部の並列動作数分だけ拡張することなく、第1描画処理部401及び第2描画処理部402の並列動作を実現できる。すなわち、ハードリソースの増加によるコストアップを抑えながら、並列描画処理を効率的に行い、描画処理を高速化することができる。   As described above, according to the embodiment of the present invention, the first drawing processing unit 401 and the second drawing processing unit 401 and the second drawing unit 116 and the band RAM 117 are not expanded by the number of parallel operations of the drawing processing unit. The parallel operation of the drawing processing unit 402 can be realized. That is, 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.

(変形例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 CPU 108 executing a program developed in the RAM 109 of the image forming apparatus 100. The band height setting process according to the present embodiment is a modification of the band height setting process described with reference to the flowchart of FIG. Only the differences are described. Specifically, steps S1001 to S1006 in FIG. 10 are the same as steps S701 to S706 in FIG.

本実施形態におけるバンド高さの設定処理では、描画処理部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 drawing processing unit 114 is 2 or more, in step S1007, the CPU 108 acquires specification difference information of each drawing processing unit that operates in parallel. The specification difference information is, for example, the ratio of the operating frequency of the second drawing processing unit 402 to the first drawing processing unit 401, and the number of processor cores of the second drawing processing unit 402 with respect to the first drawing processing unit 401, for example. And the ratio of the number of modules.

次に、ステップS1008において、CPU108は、取得した仕様差情報に基づいて、各描画処理部に仕様差があるか判定する。仕様差の比率が1:1であり、仕様差が無い場合は、ステップS1009〜S1010に遷移し、図7におけるステップS707〜S708と同様に、ブロックの高さを均等分割してバンドの高さを算出し、描画処理部114の内部レジスタに設定する。一方、仕様差の比率が例えば3:1であり、仕様差がある場合は、ステップS1011に遷移する。   Next, in step S1008, the CPU 108 determines whether there is a specification difference in each drawing processing unit based on the acquired specification difference information. If the ratio of the specification difference is 1: 1 and there is no specification difference, the process proceeds to steps S1009 to S1010, and the height of the band is divided by equally dividing the block height in the same manner as in steps S707 to S708 in FIG. Is calculated and set in the internal register of the drawing processing unit 114. On the other hand, if the ratio of the specification difference is, for example, 3: 1 and there is a specification difference, the process proceeds to step S1011.

ステップS1011において、CPU108は、単一ブロックの高さを、並列動作する描画処理部の仕様差情報に基づいて、重み付けて加重分割する。例えば、上述したように、仕様差の比率が3:1(並列動作数は2)である場合、図10(c)に示したバンド11とバンド12のように、並列動作数と仕様差の比率に合わせて、単一ブロックの高さを重み付けて加重分割する。例えば、単一ブロックの高さが8画素である場合、第1描画処理部401の描画領域の高さを6画素分、第2描画処理部402の描画領域の高さを2画素分として分割する。   In step S <b> 1011, the CPU 108 performs weighted division of the height of a single block based on the specification difference information of the drawing processing units that operate in parallel. For example, as described above, when the ratio of the specification difference is 3: 1 (the number of parallel operations is 2), the number of parallel operations and the specification difference are similar to those of the band 11 and the band 12 illustrated in FIG. According to the ratio, the height of a single block is weighted and divided. For example, when the height of a single block is 8 pixels, the drawing area height of the first drawing processing unit 401 is divided into 6 pixels, and the drawing area height of the second drawing processing unit 402 is divided into 2 pixels. To do.

次に、ステップS1012において、加重分割して算出した値をバンドの高さとして、描画処理部114の内部レジスタに設定する。   In step S1012, the value calculated by weighted division is set as the band height in the internal register of the drawing processing unit 114.

以上説明したように、本変形例によれば、描画処理部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 drawing processing unit 114, the difference in drawing speed is reduced. By dividing the drawing area into two, the efficiency of parallel operation can be increased. That is, when performing drawing processing in units of bands in parallel, by reducing the waiting time that occurs when the rate is determined to be the slower of the processing speeds of the first drawing processing unit 401 and the second drawing processing unit 402, The drawing process can be speeded up.

(変形例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 drawing processing unit 401 draws the bands 11 and 13 and the second drawing processing unit 402 draws the bands 12 and 14.

あるいは、図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 drawing processing unit 401 draws the band 11, the band 13, the band 15, and the band 17, and the second drawing processing unit 402 draws the band 12, the band 14, the band 16, and the band 18.

以上説明したように、本変形例によれば、バンドの高さをより小さくすることで、バンドの高さよりも大きい描画オブジェクトを複数のバンドにまたがるように配置することができる。こうすることで、並列に動作する各描画処理部による描画速度の差を小さくして、並列描画処理を効率的に行うことができる。すなわち、第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 drawing processing unit 401 and the second drawing processing unit 402 can be made uniform, the waiting time that occurs when the rate is controlled to the later one of the first drawing processing unit 401 and the second drawing processing unit 402 By shortening, drawing processing can be speeded up.

(変形例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 image forming apparatus 100.

また、図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.
前記バンド領域の高さは、前記所定のブロック領域の副走査方向の画素数を、前記複数の描画手段の並列動作数で均等分割した値であることを特徴とする請求項1に記載の画像処理装置。   2. The image according to claim 1, wherein the height of the band area is a value obtained by equally dividing the number of pixels in the sub-scanning direction of the predetermined block area by the number of parallel operations of the plurality of drawing units. Processing equipment. 前記バンド領域の高さは、前記所定のブロック領域の副走査方向の画素数を、前記複数の描画手段の仕様差に基づいて重み付けし、加重分割した値であることを特徴とする請求項1に記載の画像処理装置。   2. The height of the band area is a value obtained by weighting and dividing the number of pixels in the sub-scanning direction of the predetermined block area based on a specification difference between the plurality of drawing units. An image processing apparatus according to 1. 前記記憶手段は、前記複数の描画手段による前記バンド単位の画像データの読み出しが完了したことを検知すると、前記中間データから生成された新たなバンド単位の画像データに対応するブロック単位の画像データの書き出し開始を制御することを特徴とする請求項1に記載の画像処理装置。   When the storage unit detects that the reading of the band unit image data by the plurality of drawing units is completed, the storage unit stores block unit image data corresponding to the new band unit image data generated from the intermediate data. The image processing apparatus according to claim 1, wherein start of writing is controlled. 前記記憶手段は、前記バンド単位の画像データに対応するブロック単位の画像データの書き出しが完了したことを検知すると、前記複数の描画手段による前記バンド単位の画像データの読み出し開始を制御することを特徴とする請求項1に記載の画像処理装置。   When the storage unit detects that the writing of the block unit image data corresponding to the band unit image data is completed, the storage unit controls the start of reading the band unit image data by the plurality of drawing units. The image processing apparatus according to claim 1. コンピュータを、請求項1乃至5のいずれか1項に記載の画像処理装置として機能させるためのプログラム。   A program for causing a computer to function as the image processing apparatus according to any one of claims 1 to 5. 描画データから生成された中間データを複数のバンド領域に分割して描画処理を行い、ラスタ形式の画像データを生成する画像処理方法であって、
複数の描画手段によって、前記複数のバンド領域のそれぞれに対応する、バンド単位の複数の中間データそれぞれに対して描画処理を並列に行う描画工程であって、前記バンド領域は、所定のブロック領域に対して主走査方向の画素数が大きく、かつ、副走査方向の画素数が小さい、描画工程と、
前記描画処理において記憶容量が不足した場合に、前記中間データから生成されたバンド単位の画像データを退避させて記憶手段に記憶する記憶工程と
を含み、
前記描画工程は、前記記憶手段から読み出した前記退避させた画像データを、前記中間データに対して新たに前記描画処理を行って生成した画像データと合成して、前記ラスタ形式の画像データを生成する工程を含むことを特徴とする画像処理方法。
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:
JP2016198305A 2016-10-06 2016-10-06 Image processing device, control method of image processing device, and program Active JP6772020B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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