JPH10278361A - Print processor - Google Patents
Print processorInfo
- Publication number
- JPH10278361A JPH10278361A JP9082699A JP8269997A JPH10278361A JP H10278361 A JPH10278361 A JP H10278361A JP 9082699 A JP9082699 A JP 9082699A JP 8269997 A JP8269997 A JP 8269997A JP H10278361 A JPH10278361 A JP H10278361A
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- hardware
- print data
- input
- 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
Landscapes
- Record Information Processing For Printing (AREA)
Abstract
Description
【発明の属する技術分野】本発明は、ページ単位で印刷
処理が可能な印刷処理装置に関する。[0001] 1. Field of the Invention [0002] The present invention relates to a print processing apparatus capable of performing print processing in page units.
【従来の技術】小型、高速のデジタル印刷に適した電子
写真方式のページプリンタの開発に伴い、従来の文字情
報中心の印刷から脱皮した、画像、図形、文字などを同
様に取り扱い、図形、文字等の拡大、回転、変形などが
自由に制御できる記述言語を用いる印刷処理装置が一般
に普及してきた。このような記述言語の代表的な例とし
て、PostScript(Adobe System
s社商標)、Interpress(Xerox社商
標)、Acrobat(Adobe Systems社
商標)、GDI(Graphics Device I
nterface、Microsoft社商標)等が知
られている。記述言語で作成されている印刷データは、
ページ内の任意の位置の画像、図形、文字を表現する描
画命令及びデータを任意の順で配置した命令及びデータ
列で構成されており、本発明に係わるページプリンタで
印字するためには、印字前に印刷データをラスタ化しな
ければならない。ラスタ化というのは、ページ又はペー
ジの一部を横切る一連の個々のドットまたは画素へ展開
してラスタ走査線を形成し、そのページの下へ引き続く
走査線を次々に発生する過程である。従来のページプリ
ンタは、印字前にページ全体の印刷データをラスタ化
し、ページバッファメモリに記憶していた。しかしなが
ら、ページ全体に対するラスタデータを記憶するために
は、大量のメモリを必要とする。特に、最新の電子写真
方式のカラーページプリンタでは、C(Cyan)、M
(Magenta)、Y(Yellow)、BK(Bl
ack)の4色のトナーに対応するラスタデータを必要
とするとともに、白黒ページプリンタ以上に画質が要求
されるため、1画素当たり複数のビット情報を持つのが
一般的であり、さらに大量のメモリを必要とする。この
大量のメモリの必要性に対し、コスト低減の観点からメ
モリ要求を低減させる技術として、最近バンドメモリ技
術が登場してきた。バンドメモリ技術は、ページプリン
タの印字前に1ページ分の印刷データを全てラスタ化す
るのではなく、記述言語で作成されている印刷データ
を、印刷データをラスタ化するよりも速くラスタ化可能
な比較的簡単な中間データに変換し、1ページを隣接す
る複数の領域(バンド)に分割し、各バンドに対応する
中間データを記憶した後、ラスタ展開処理部に順次転送
し、バンドに対応するバッファメモリに展開する技術で
ある。バンドメモリ技術では、中間データを記憶するた
めのメモリは新たに必要であるが、ラスタデータのため
の大容量を必要とするバッファメモリを低減することが
可能となる。しかし、一般的なバンドメモリ技術では、
あるバンドのラスタデータの印字が終了までに、次のバ
ンドに対する中間データからラスタデータへの展開を終
了させる必要がある。印刷データに複雑な図形描画命令
や扱うデータ量の大きい画像描画命令が含まれている場
合、あるいは1ページ内の特定のバンドに複雑な図形描
画命令や画像描画命令が含まれている場合等、中間デー
タからラスタデータへの展開が間に合わない状況が発生
する可能性がある。そこで中間データからラスタデータ
への展開処理を高速化するために専用ハードウェアを利
用することが考えられた。上に述べたように、ページ内
に描画される対象としては、画像、図形、文字があり、
これらはそれぞれのオブジェクトの型に応じて特殊な処
理を必要とする。例えば、画像の場合、解像度変換、ア
フィン変換、これらの処理に伴う補間、色処理等であ
る。また、図形の場合には、座標変換、ベクタ/ラスタ
変換、塗りつぶし処理等が必要である。また、文字の場
合には、アウトライン座標の変換、ヒント処理、ベクタ
/ラスタ変換、塗りつぶし処理等が必要である。そこ
で、これらすべての処理に対応する専用ハードウェアを
1つづつ用意することが必要となる。しかしこの場合、
メモリ量を削減出来たとしても、追加する専用ハードウ
ェア量が多くなってシステム全体が高価になるという問
題があった。また中間データをビットマップにする目的
のH/Wは、中間データをビットマップにする時だけに
しか使用できず、処理に応じた専用ハードウェアを並列
的に用意して置くことはその使用率を考えると大変無駄
であるという問題があった。従来このような問題を解決
する試みとして、全ての機能について並列にハードウエ
アを設けるのでは無く、ハードウェアのプログラマビリ
ティあるいは構造を再構成することにより機能を可変
し、少ないハードウエアで多くの機能を高速に実現しよ
うとする試みが行われている。そのような考え方を持っ
た本発明に関する従来技術として、特開平6−1311
55号公報や特開平6−282432号公報などがあ
る。2. Description of the Related Art With the development of an electrophotographic page printer suitable for small, high-speed digital printing, images, figures, characters, and the like, which have escaped from the conventional printing of mainly character information, are handled in the same manner. 2. Description of the Related Art A printing processing apparatus using a description language in which enlargement, rotation, deformation, and the like of an image can be freely controlled has been widely used. A typical example of such a description language is PostScript (Adobe System).
s), Interpress (trademark of Xerox), Acrobat (trademark of Adobe Systems), GDI (Graphics Device I)
Internet, trademark of Microsoft Corporation) and the like are known. Print data written in the description language
It consists of commands and data strings in which drawing commands and data representing images, figures, and characters at arbitrary positions in a page are arranged in an arbitrary order. In order to print with the page printer according to the present invention, printing is performed. First, the print data must be rasterized. Rasterization is the process of developing a raster scan line by developing it into a series of individual dots or pixels that traverse a page or portion of a page, and generating successive scan lines below the page. In a conventional page printer, print data of an entire page is rasterized before printing and stored in a page buffer memory. However, storing raster data for an entire page requires a large amount of memory. In particular, in the latest electrophotographic color page printer, C (Cyan), M
(Magenta), Y (Yellow) , B K (Bl
ack) requires raster data corresponding to the four color toners, and image quality is required more than a black and white page printer. Need. Recently, band memory technology has emerged as a technology for reducing memory requirements from the viewpoint of cost reduction in response to the need for a large amount of memory. Band memory technology can rasterize print data created in a description language faster than rasterizing print data instead of rasterizing all print data for one page before printing by a page printer. The data is converted into relatively simple intermediate data, one page is divided into a plurality of adjacent areas (bands), the intermediate data corresponding to each band is stored, and the intermediate data is sequentially transferred to a raster development processing unit to correspond to the band. This is a technology developed in a buffer memory. In the band memory technology, a memory for storing intermediate data is newly required, but it is possible to reduce a buffer memory that requires a large capacity for raster data. However, in general band memory technology,
By the end of the printing of the raster data of a certain band, it is necessary to finish developing the raster data from the intermediate data for the next band. When the print data includes a complicated graphic drawing instruction or an image drawing instruction with a large amount of data to be handled, or when a specific band in one page includes a complicated graphic drawing instruction or an image drawing instruction, There is a possibility that a situation may occur where the development of the intermediate data into the raster data is not in time. Therefore, it has been considered to use dedicated hardware in order to speed up the processing of developing the intermediate data into the raster data. As mentioned above, objects that are drawn on the page include images, figures, and characters,
These require special processing depending on the type of each object. For example, in the case of an image, resolution conversion, affine conversion, interpolation accompanying these processes, color processing, and the like are performed. In the case of a graphic, coordinate conversion, vector / raster conversion, filling processing, and the like are required. In the case of a character, conversion of outline coordinates, hint processing, vector / raster conversion, filling processing, and the like are required. Therefore, it is necessary to prepare dedicated hardware corresponding to all of these processes one by one. But in this case,
Even if the amount of memory can be reduced, there is a problem that the amount of dedicated hardware to be added increases and the entire system becomes expensive. The H / W for converting the intermediate data into a bitmap can be used only when the intermediate data is converted into a bitmap. There was a problem that it was very useless considering the above. Conventionally, as an attempt to solve such a problem, instead of providing hardware for all functions in parallel, the functions can be changed by reconfiguring hardware programmability or structure, and many functions can be performed with less hardware Attempts have been made to achieve high speed. As a prior art relating to the present invention having such a concept, Japanese Patent Laid-Open Publication No.
55 and JP-A-6-282432.
【発明が解決しようとする課題】特開平6−13115
5号公報の手法は、データ記憶領域に対するアドレス発
生の発生手段を再構成するとともに、アドレス発生の手
段により得られたデータ記憶領域のデータに対する演算
手段を再構成することによって、様々な画像処理を少な
いハードウェアで達成しようとするものである。ただし
この構成はアドレス情報に重要な意味ある画像処理に対
する再構成は可能であるが、図形、文字などのようにベ
クター処理に対応することはできない。また画像処理に
ついても、常に再構成を行って処理するため、ページ記
述言語(PDL)のように様々な画像が任意に出現する
場合には、再構成時間が多くなるという問題もあった。
さらに書き換えられる処理がほぼ同等の大きさの処理で
ないと、書き換え単位が一番大きな処理に合わされるた
め、様々な大きさの処理の再構成では、無駄が生じると
いう問題もあった。特開平6−282432号公報は、
並列動作可能な演算回路をあらかじめ必要な種類分の複
数個設けて、データ流れを制御しようとするものであ
る。このような方式は、一部の画像処理の用に、少ない
種類の演算回路を頻繁に使用するという応用には適して
いるが、画像、図形、文字など様々な種類の描画要素が
混在するものに応用すると、演算回路の種類が多く必要
となるため、本来の目的であるハードウエア量を小さく
することができないという問題がある。本発明は以上の
ような点を考慮してなされたものであり、少なくとも画
像、図形、文字を含む印刷データの内容に応じて、展開
処理に用いられるハードウェアの再構成を、書き換え回
数/書換規模とも効率的に行えるようにすることで、同
一のハードウェア資源を用いて高速かつ省資源な印刷処
理を可能にすることを目的とする。Problems to be Solved by the Invention
The technique disclosed in Japanese Patent Application Laid-Open No. 5-105605 reconfigures the means for generating an address for the data storage area and reconfigures the operation means for the data in the data storage area obtained by the means for generating the address, thereby performing various image processing. The goal is to achieve this with less hardware. However, this configuration can reconstruct image processing that is significant in address information, but cannot cope with vector processing such as graphics and characters. Also, since image processing is always performed by performing reconstruction, there is also a problem that the reconstruction time increases when various images appear arbitrarily, such as in a page description language (PDL).
Furthermore, unless the rewriting process is a process of almost the same size, the rewriting unit is matched to the largest process, and there is a problem that reconfiguration of processes of various sizes causes waste. JP-A-6-282432 discloses that
A plurality of arithmetic circuits capable of operating in parallel are provided in a necessary number in advance to control the data flow. Such a method is suitable for applications in which a small number of types of arithmetic circuits are frequently used for some image processing, but a type in which various types of drawing elements such as images, figures, and characters are mixed. In this case, since a large number of types of arithmetic circuits are required, there is a problem that the amount of hardware, which is the original purpose, cannot be reduced. The present invention has been made in view of the above points, and reconfigures hardware used for expansion processing at least in accordance with the contents of print data including images, figures, and characters by rewriting / rewriting. An object of the present invention is to enable high-speed and resource-saving printing processing using the same hardware resources by enabling efficient processing in both scales.
【課題を解決するための手段】本発明によれば、上記の
目的を達成するために、少なくとも文字、図形、画像の
描画要素のいずれかを表す、所定の描画命令で記述され
た第1の印刷データを、画像出力用データ構造の第2の
印刷データに展開し、上記第2の印刷データに基づいて
画像出力を行う印刷処理装置に、複数の処理モジュール
と上記複数の処理モジュールの入力データ及び出力デー
タのフローを制御する切り替え手段とを含み、上記処理
モジュールの機能及び上記切り替え手段の切り替え態様
の少なくとも一方を構成データに応じて設定可能なハー
ドウェア手段であって、ハードウェア構成情報に応じて
上記構成データを変更して上記ハードウェア構成情報に
対応する態様で上記第1の印刷データを上記第2の印刷
データに展開するハードウェア手段と、上記第1の印刷
データを入力する入力手段と、上記入力手段に入力され
た第1の印刷データに含まれる描画要素の重なりを判定
する判定手段と、少なくとも上記判定手段の判定情報と
上記入力手段に入力された第1の印刷データの内容とに
基づいて、上記入力手段に入力された第1の印刷データ
の描画要素を並び換え、さらに上記ハードウェア構成情
報を含む所定形式の印刷データに変換して上記ハードウ
ェア手段に供給する変換手段と、上記ハードウェア手段
で展開された第2の印刷データに基づいて画像を出力す
る出力手段とを設けるようにしている。この構成におい
ては、ハードウェア構成が柔軟に設定可能なハードウェ
ア手段を設けて、少ないハードウェア要素で、描画要素
の展開に必要な多くの機能を実現することができる。さ
らに描画要素の重なりや内容を分析して描画要素の処理
順序を最適化し、併せて処理対象の描画要素に応じてハ
ードウェア構成を最適化してスループットを向上させる
ことができる。また、この構成において、上記変換手段
における描画要素の並び換えを、上記ハードウェア手段
により並列に展開可能な描画要素が連続するように行わ
れるようにしてもよい。また、上記ハードウェア手段に
よる並列な展開は、同一または異なる機能ブロックを複
数個含むように設定されたハードウェア構成により行わ
れるようにしてもよい。また、上記変換手段における描
画要素の並び換えは、上記ハードウェア手段の上記構成
データの変更回数が減少するように行われるようにして
もよい。また、上記変換手段は、上記判定手段により重
なり有りと判定された描画要素間の順序の並び換えを行
わないようにしてもよい。また、上記判定手段は、上記
描画要素を包含する外接矩形を用いて重なりを判定する
ようにしてもよい。また、上記変換手段は、上記判定手
段により重なり有りと判定された描画要素間の重なりを
除去してから順序の並び換えを行うようにしてもよい。
また、上記描画要素の並び換えは、ページ毎または複数
スキャンライン単位にページを分割したバンド毎に行わ
れるようにしてもよい。また、上記ハードウェア手段
は、ハードウェア構成を全部または部分的に変更可能で
あるようにしてもよい。また、上記ハードウェア手段
は、相前後して入力される上記所定形式の印刷データに
それぞれ含まれる上記ハードウェア構成情報が同一の場
合に、上記構成データの変更を省略するようにしてもよ
い。また、上記ハードウェア手段は、少なくともフィー
ルドプログラマブルゲートアレイを含むようにしてもよ
い。また、上記ハードウェア手段は、複数の演算処理装
置と、上記複数の演算処理装置の入力データ及び出力デ
ータのフローを切り替える切り替え手段とを具備するよ
うにしてもよい。また、上記変換手段が、複数の処理モ
ジュールと上記複数の処理モジュールの入力データ及び
出力データのフローを制御する切り替え手段とを含み、
上記処理モジュールの機能及び上記切り替え手段の切り
替え態様の少なくとも一方を構成データに応じて設定可
能なハードウェア手段を具備し、上記変換手段の処理の
少なくとも一部を上記変換手段中の上記ハードウェア手
段で実行するようにしてもよい。また、上記ハードウェ
ア手段は、複数の機能ブロックをパイプライン動作させ
て展開を行うように設定されるようにしてもよい。ま
た、本発明によれば、上述の目的を達成するために、少
なくとも文字、図形、画像の描画要素のいずれかを表
す、所定の描画命令で記述された第1の印刷データを、
画像出力用データ構造の第2の印刷データに展開し、上
記第2の印刷データに基づいて画像出力を行う印刷処理
装置に、複数の処理モジュールと上記複数の処理モジュ
ールの入力データ及び出力データのフローを制御する切
り替え手段とを含み、上記処理モジュールの機能及び上
記切り替え手段の切り替え態様の少なくとも一方を構成
データに応じて設定可能なハードウェア手段であって、
ハードウェア構成情報に応じて上記構成データを変更し
て上記ハードウェア構成情報に対応する態様で上記第1
の印刷データを上記第2の印刷データに展開するハード
ウェア手段と、上記第1の印刷データを入力する入力手
段と、上記入力手段に入力された第1の印刷データに含
まれる描画要素の重なりを判定する判定手段と、少なく
とも上記判定手段の判定情報と上記入力手段に入力され
た第1の印刷データの内容とに基づいて、上記入力手段
に入力された第1の印刷データを、上記ハードウェア構
成情報を含む所定形式の印刷データに変換して上記ハー
ドウェア手段に供給する変換手段と、上記ハードウェア
手段で展開された第2の印刷データに基づいて画像を出
力する出力手段とを設けるようにしている。この構成に
おいても、ハードウェア構成が柔軟に設定可能なハード
ウェア手段を設けて、少ないハードウェア要素で、描画
要素の展開に必要な多くの機能を実現することができ
る。さらに描画要素の重なりや内容を分析して処理対象
の描画要素に応じてハードウェア構成を最適化してスル
ープットを向上させることができる。また、この構成に
おいて、上記変換手段は、上記判定手段により重なりな
しと判定された連続する複数の描画要素を含む印刷デー
タを、上記複数の描画要素を並列に展開するハードウェ
ア構成を特定するハードウェア構成情報を含む形式に変
換するようにしてもよい。また、上記描画要素の並列な
展開は、同一または異なる機能ブロックを複数個含むハ
ードウェア構成により行われるようにしてもよい。ま
た、本発明によれば、上述の目的を達成するために、少
なくとも文字、図形、画像の描画要素のいずれかを表
す、所定の描画命令で記述された第1の印刷データを、
画像出力用データ構造の第2の印刷データに展開し、上
記第2の印刷データに基づいて画像出力を行う印刷処理
装置に、複数の処理モジュールと上記複数の処理モジュ
ールの入力データ及び出力データのフローを制御する切
り替え手段とを含み、上記処理モジュールの機能及び上
記切り替え手段の切り替え態様の少なくとも一方を構成
データに応じて設定可能なハードウェア手段であって、
ハードウェア構成情報に応じて上記構成データを変更し
て上記ハードウェア構成情報に対応する態様で上記第1
の印刷データを上記第2の印刷データに展開するハード
ウェア手段と、上記第1の印刷データを入力する入力手
段と、上記入力手段に入力された第1の印刷データを、
上記第1の印刷データの内容に対応するハードウェア構
成情報を含む所定形式の印刷データに変換して上記ハー
ドウェア手段に供給する変換手段と、上記ハードウェア
手段で展開された第2の印刷データに基づいて画像を出
力する出力手段とを設けるようにしている。この構成に
おいても、ハードウェア構成が柔軟に設定可能なハード
ウェア手段を設けて、少ないハードウェア要素で、描画
要素の展開に必要な多くの機能を実現することができ
る。さらに描画要素の内容を分析して処理対象の描画要
素に応じてハードウェア構成を最適化してスループット
を向上させることができる。また、この構成において、
上記変換手段は、上記ハードウェア構成情報に応じて、
上記変換データ中の上記ハードウェア構成情報を省略す
るようにしてもよい。According to the present invention, in order to achieve the above-mentioned object, at least one of a character, a figure, and an image drawing element, which is described by a predetermined drawing command, is described. A print processing apparatus that expands print data into second print data of an image output data structure and outputs an image based on the second print data includes a plurality of processing modules and input data of the plurality of processing modules. And switching means for controlling the flow of output data, wherein the hardware means is capable of setting at least one of the function of the processing module and the switching mode of the switching means in accordance with the configuration data. The configuration data is changed accordingly, and the first print data is developed into the second print data in a mode corresponding to the hardware configuration information. Hardware means, input means for inputting the first print data, judgment means for judging overlap of drawing elements included in the first print data inputted to the input means, judgment information of at least the judgment means The drawing elements of the first print data input to the input means are rearranged based on the content of the first print data input to the input means, and a predetermined format including the hardware configuration information. There is provided a conversion unit that converts the print data into print data and supplies the print data to the hardware unit, and an output unit that outputs an image based on the second print data developed by the hardware unit. In this configuration, a hardware means whose hardware configuration can be set flexibly is provided, and many functions necessary for developing the drawing element can be realized with a small number of hardware elements. Further, it is possible to optimize the processing order of the rendering elements by analyzing the overlapping and the contents of the rendering elements, and to optimize the hardware configuration according to the rendering elements to be processed, thereby improving the throughput. Further, in this configuration, the reordering of the drawing elements in the conversion means may be performed so that the drawing elements which can be developed in parallel by the hardware means are continuous. Further, the parallel deployment by the hardware means may be performed by a hardware configuration set to include a plurality of the same or different functional blocks. Also, the rearrangement of the drawing elements in the conversion means may be performed so that the number of times of changing the configuration data of the hardware means is reduced. Further, the conversion unit may not perform the rearrangement of the order of the drawing elements determined to be overlapped by the determination unit. Further, the determination means may determine the overlap using a circumscribed rectangle including the drawing element. Further, the conversion means may remove the overlap between the drawing elements determined to have the overlap by the determination means, and then perform the rearrangement of the order.
In addition, the reordering of the drawing elements may be performed for each page or for each band obtained by dividing the page into a plurality of scan lines. Further, the hardware means may be capable of changing the hardware configuration in whole or in part. Further, the hardware means may omit the change of the configuration data when the hardware configuration information included in the print data of the predetermined format inputted one after another is the same. Further, the hardware means may include at least a field programmable gate array. Further, the hardware means may include a plurality of processing units, and switching means for switching a flow of input data and output data of the plurality of processing units. Further, the conversion means includes a plurality of processing modules and a switching means for controlling the flow of input data and output data of the plurality of processing modules,
Hardware means capable of setting at least one of the function of the processing module and the switching mode of the switching means in accordance with configuration data, and performing at least a part of the processing of the conversion means by the hardware means in the conversion means May be executed. Further, the hardware means may be set so that a plurality of functional blocks are expanded by performing a pipeline operation. According to the present invention, in order to achieve the above-described object, at least one of a character, a figure, and a drawing element of an image, the first print data described by a predetermined drawing command is
The print processing apparatus that develops the image data into the second print data and outputs the image based on the second print data includes a plurality of processing modules and input data and output data of the plurality of processing modules. Switching means for controlling the flow, and hardware means capable of setting at least one of the function of the processing module and the switching mode of the switching means according to the configuration data,
The first configuration data is changed according to the hardware configuration information, and the first data is changed in a manner corresponding to the hardware configuration information.
Hardware means for expanding the first print data into the second print data, input means for inputting the first print data, and overlapping of drawing elements included in the first print data input to the input means Determining the first print data input to the input means based on at least the determination information of the determination means and the content of the first print data input to the input means. A conversion unit that converts the print data into print data of a predetermined format including hardware configuration information and supplies the print data to the hardware unit; and an output unit that outputs an image based on the second print data developed by the hardware unit. Like that. Also in this configuration, a hardware means whose hardware configuration can be flexibly set is provided, and many functions necessary for developing the drawing element can be realized with a small number of hardware elements. Furthermore, by analyzing the overlap and contents of the drawing elements, the hardware configuration can be optimized according to the drawing element to be processed, and the throughput can be improved. Further, in this configuration, the conversion unit converts the print data including the plurality of continuous drawing elements determined to have no overlap by the determination unit into a hardware configuration that specifies a hardware configuration that develops the plurality of drawing elements in parallel. You may make it convert into the format containing hardware configuration information. Further, the parallel development of the drawing elements may be performed by a hardware configuration including a plurality of the same or different functional blocks. According to the present invention, in order to achieve the above-described object, at least one of a character, a figure, and a drawing element of an image, the first print data described by a predetermined drawing command is
The print processing apparatus that develops the image data into the second print data and outputs the image based on the second print data includes a plurality of processing modules and input data and output data of the plurality of processing modules. Switching means for controlling the flow, and hardware means capable of setting at least one of the function of the processing module and the switching mode of the switching means according to the configuration data,
The first configuration data is changed according to the hardware configuration information, and the first data is changed in a manner corresponding to the hardware configuration information.
Hardware means for expanding the first print data into the second print data; input means for inputting the first print data; and first print data input to the input means.
Converting means for converting the print data into print data of a predetermined format including hardware configuration information corresponding to the content of the first print data and supplying the print data to the hardware means; and second print data developed by the hardware means And an output means for outputting an image based on the image data. Also in this configuration, a hardware means whose hardware configuration can be flexibly set is provided, and many functions necessary for developing the drawing element can be realized with a small number of hardware elements. Furthermore, by analyzing the contents of the drawing element, the hardware configuration can be optimized according to the drawing element to be processed, and the throughput can be improved. In this configuration,
The conversion means, according to the hardware configuration information,
The hardware configuration information in the conversion data may be omitted.
【発明の実施の形態】以下、本発明の実施例について説
明する。 [実施例1]図1は本発明による実施例1の構成を表す
ブロック図である。図1において画像処理装置は、印刷
データ作成部1と、印刷データ入力部2と、変換処理部
3と、展開処理部4と、出力部5とから構成されてい
る。さらに、変換処理部3は、字句解析部30と、中間
データ生成部31と、中間データ順序制御32と、中間
データ記憶部33とから構成されている。また、展開処
理部4は、再構成可能展開部40と、再構成制御部41
と、構成データ管理部42とから構成されている。印刷
データ作成部1は、パーソナルコンピュータやワークス
テーション内において、文書作成や編集等を処理するア
プリケーションプログラムで生成された文書データから
記述言語で記述された印刷データを作成する機能を備え
たものである。本実施例で対象とする記述言語は、例え
ばGDI、Acrobatで代表されるPDF(Por
table Document Format)、Po
stScript等のページ記述言語(Page De
scription Language)である。印刷
データ入力部2は、印刷データ作成部1で生成された印
刷データを入力するための通信機能、あるいは変換処理
部3へ出力されるまでの間印刷データを一時記憶する機
能等を備えたものである。変換処理部3は、印刷データ
入力部2より入力された印刷データから展開処理部4に
おける印字データへの展開処理可能な中間データに変換
してその並び換えを行なう。変換処理部3は、字句解析
部30と、中間データ生成部31と、中間データ順序制
御部32と、中間データ記憶部33とからなる。字句解
析部30は、印刷データ入力部2より入力された印刷デ
ータを定められた記述言語のシンタックスに従ってトー
クンとして切り出し、そのトークンを中間データ生成部
31に出力するものである。中間データ生成部31は、
字句解析部30から出力されるトークンを受け取って解
釈し、描画命令を実行し、各描画命令に対する台形を基
本単位としたデータを生成し、中間データ順序制御部3
2へ送る。中間データを生成する目的は、展開処理部4
での高速な展開処理を可能にすることである。そのた
め、中間データは単純な図形(台形)の集合で表されて
いる。また中間データには、展開処理に関する情報とし
て展開処理IDも付加されている。中間データ順序制御
部32は、中間データ生成部31から出力されるある単
位の量の中間データを読み込んで、それらの間の重なり
判定を行ない、その結果に基づいて並び換えを行なって
中間データ記憶部33に出力する。その際、並び換えに
基づく並列処理可能な中間データのグループ毎に、他の
グループとの境界を示す情報と、展開処理部4の再構成
可能展開部40に書き込まれる構成データに対する識別
子であるハードウェア構成IDが付加される。中間デー
タ記憶部33は送られてきた中間データを記憶し、必要
に応じて展開処理部4から読み出される。展開処理部4
は、変換処理部3から出力中間データをバンド単位に読
み出し、展開処理部4内のバンドバッファメモリに印字
データを作成する。この処理は展開処理部4内の2つの
バンドバッファメモリに交互に蓄積される。尚、後述す
るように本実施例で利用される出力部5は、カラーペー
ジプリンタであり、バッファメモリに交互に蓄積される
印字データは出力部5で印字している記録色の印刷デー
タに対応している。続いて、バンドバッファメモリに蓄
積された印字データは、出力部5の印字データ要求に応
じて、出力部5に交互に出力される。出力部5は、展開
処理部4のバンドバッファメモリから出力される印字デ
ータを受け取って、記録用紙に印字し出力するものであ
る。更に、詳しくは、CMYBK(シアン、マゼンタ、
イエロー、ブラック)カラーの色毎に露光、現像、転写
を繰り返すことによりフルカラー画像を出力できるレー
ザー走査方式の電子写真方式を用いたカラーページプリ
ンタである。また出力部6は、インクジェット方式のカ
ラープリンタでもよい。この場合には、展開処理部4の
バンドバッファメモリから出力部5に印字データが4色
同時に出力される。ここで、一般的なレーザー走査方式
の電子写真方式を用いたカラーページプリンタの構成及
び動作について、図2に基づき説明する。図2におい
て、ビデオインターフェース50は、展開処理部4から
順次送られてくるCMYBKの色情報に対応した印刷デ
ータを図示されない半導体レーザの点灯を制御するドラ
イバーへ入力して光信号に変換する。半導体レーザ走査
装置51は、赤外半導体レーザ、レンズ711、ポリゴ
ンミラー510より構成され、数十μmのスポット光と
なって感光体ドラム72を走査する。感光体ドラム52
は、帯電器53により帯電されており、光信号により、
静電潜像が形成される。潜像はロータリー現像器54上
の2成分磁気ブラシ現像によりトナー像となり、転写ド
ラム55上に吸着させた用紙上に転写される。感光体ド
ラム52は、クリーナー56で余分のトナーがクリーニ
ングされる。この工程をBK、Y、M、Cの順に繰り返
し、用紙上に多重転写する。最後に、転写ドラム55に
より用紙を剥離し、定着器57でトナーを定着する。な
お、58は用紙の搬送経路である。次に上述したように
構成された印刷処理装置における印刷データの流れにつ
いて整理する。印刷データ作成部1で作成された印刷デ
ータは、印刷データ入力部2を介して、変換処理部3の
字句解析部30に入力される。字句解析部30において
印刷データから切り出されたトークンは、中間データ生
成部31に入力される。中間データ生成部31ではその
トークンを解釈してバンド単位に分割した中間データが
生成される。中間データ順序制御部32では、中間デー
タは重なりに基づいて順序を並び換え、並列処理可能な
グループに分けられ、中間データ記憶部33にバンド単
位に1ページ分記憶される。このとき中間データは、台
形集合を基本としたデータに、どのバンドに属している
かのバンドID、画像、文字、図形等の種類、描画の属
性、台形集合に対する外接矩形、並列処理可能なグルー
プID、ハードウェア構成IDが付加されたものであ
る。そして中間データ記憶部33は、展開処理部4の要
求に応じて中間データを送り出す。一方、展開処理部4
では、変換処理部3から入力される中間データに付加さ
れたハードウェア構成IDによって、必要に応じて構成
データ管理部42から構成データを入力し、再構成制御
部41の制御により再構成可能展開部40の機能を書き
換える。また、展開処理部4では、中間データを受け取
って出力部5で最初に記録される印字データでバンドバ
ッファメモリが満たされるまで展開処理が行われる。出
力部5のサイクルアップ、あるいは出力準備が完了する
と、バンドバッファメモリから出力部5に、出力部5の
記録速度に応じて印字データが1ライン毎に転送され、
印字が行われる。1つのバンドバッファメモリの印字デ
ータが印字されている間に、片側のバンドバッファメモ
リが印字データで満たされるまで展開処理が実行され
る。展開処理部4の印字データへの展開及び出力部6で
の印字は、1ページ分の印刷データが処理されるまで、
色毎にあるいは4色同時に繰り返される。さらに、上記
印刷データが複数ページで構成される場合は、全ページ
の出力が終了するまで繰り返される。以上、本発明の印
刷処理装置の概要について記述した。次に、この印刷処
理装置の主要部の詳細について説明する。初めに、中間
データ生成部31、中間データ順序制御部32、中間デ
ータ記憶部33について詳細を説明する。中間データ生
成部31は、図3に示すように、トークン解釈部310
と、命令実行部311と、画像処理部312と、描画状
態記憶部313と、ベクターデータ生成部314と、フ
ォント管理部315と、マトリックス変換部316と、
ショートベクター生成部317と、台形データ生成部3
18と、バンド分解管理部319部とから構成される。
トークン解釈部310は、字句解析部30から入力され
たトークンを解釈し、内部命令に変換して命令実行部3
11へ送る。命令実行部311は、トークン解釈部31
0から送られてきた命令に応じて画像処理部312、描
画状態記憶部313、ベクターデータ生成部314へ転
送する。画像処理部312は、入力された画像ヘッダと
画像データをもとに各種の画像処理を行って出力画像ヘ
ッダと出力画像データを生成し、台形データ管理部32
0へ転送する。描画状態記憶部313は、命令実行部3
11の命令によって与えられる描画に必要な情報を記憶
する。ベクターデータ生成部314は、命令実行部31
1の命令とそれに付加された情報、描画状態記憶部31
3からの情報、フォント管理部315からの情報を使用
して描画すべきベクターデータを生成し、マトリックス
変換部316へ転送する。フォント管理部315は、各
種フォントのアウトラインデータを管理記憶し、要求に
応じて文字のアウトラインデータを提供する。マトリッ
クス変換部316は、ベクターデータ生成部314から
入力されたベクターデータを描画状態記憶部313の変
換マトリックスによってアフィン変換し、ショートベク
ター生成部317へ転送する。ショートベクター生成部
317は、入力されたベクター中の曲線に対するベクタ
ーを複数の直線のベクター集合(ショートベクター)で
近似し、台形データ生成部318へ送る。台形データ生
成部318は、入力されたショートベクターから描画す
る台形データを生成して、バンド分解部319へ転送す
る。バンド分解管理部319は、入力された台形データ
のうち複数のバンドにまたがる台形データをそれぞれの
バンドの台形データに分割し、さらにバンド単位に分割
された台形データに対して、どのバンドに属するかを表
すバンドIDと、バンド単位に分割された台形データ集
合に対する外接矩形と、データ管理情報と描画状態記憶
部313から入力された色情報または画像処理部312
から入力された画像データと、展開処理情報である展開
処理IDを付加して、中間データ順序制御部32へ送
る。中間データ順序制御部32では、バンド単位毎に、
中間データの重なりに基づいて順序を並び換え、並列処
理可能なグループに分けて、ハードウェア構成IDとグ
ループIDを付加する。中間データ記憶部33は、バン
ド単位で、中間データ順序制御部32が出力する中間デ
ータを1ページ分記憶する。尚、上記に説明したトーク
ン解釈部310から中間データ生成部31までの処理
は、描画命令が入力されるたびに繰り返し行われる。そ
して中間データ順序制御部32からの中間データ記憶部
までの処理は、場合によって、バンド単位あるいはペー
ジ単位で行なわれる。中間データ記憶部33から展開処
理部4への中間データの転送は、1ページ分の中間デー
タが記憶された後に行われる。以下では、実際のデータ
構造を示しながら、中間データ生成部31、中間データ
順序制御部32、中間データ記憶部33の各部の動作を
より詳細に説明する。トークン解釈部310は、字句解
析部30から入力されたトークンを解釈し、内部命令や
その引数に変換し、それら内部命令と引数の組を命令実
行部311へ転送する。例えば内部命令には、文字/図
形/画像の描画を実行する描画命令や、色や線属性など
描画必要な情報を設定する描画状態命令などがある。命
令実行部311は、トークン解釈部310から送られて
きた内部命令を実行する。ここで実行する命令は、主に
描画命令と描画状態命令がある。例えば描画命令には、
表1に示すように3種類の描画命令があり、それぞれの
描画に必要な情報が示されている。このうちアンダーラ
インがある情報については、描画命令中の引数として与
えられ、その他の情報は予め初期設定や先行する命令な
どにより描画状態記憶部313に記憶されている。描画
命令の実行は、画像描画以外は受け取った描画命令をそ
のままベクターデータ生成部314へ転送する。画像描
画の場合は、受け取った描画命令を画像処理部312へ
転送するとともに、画像ヘッダの縦と横の大きさをベク
ターデータ生成部314へ転送する。また描画状態命令
については、命令を描画状態記憶部313へ転送する。
画像処理部312は、命令実行部311から入力された
命令の引数である入力画像ヘッダと入力画像データ受け
取り、もしヘッダに付加された圧縮IDをみて圧縮され
た画像が入力された場合には圧縮を伸張し、描画状態記
憶部313から獲得した変換マトリックスを使ってアフ
ィン変換する。さらに場合によっては処理後の画像を圧
縮し、出力画像ヘッダと出力画像データを生成してバン
ド分解管理部319へ転送する。この圧縮には、もとも
とPDL側で画像データを圧縮していた圧縮方式を使用
するのが通常だが、特にそうしなくてもよい。例えば、
PDL側でDCT(ディスクリート・コサイン・トラン
スフォーム)で圧縮されていてた場合、それをDCTで
圧縮してもよいし、LZW(Lempel−Ziv&
Welch)法で圧縮してもよいし、圧縮を行わなくて
もよい。また行うアフィン変換では、中間データバッフ
ァのメモリ量を削減するために、わざと出力装置の解像
度より小さい解像度用にアフィン変換しておいてもよ
い。描画状態記憶部313は、命令実行部311から受
け取った命令に含まれる引数の値で、例えば表1に示し
たアンダーラインの無い情報についての値の設定を行
い、それらを記憶する。また、画像処理部312、ベク
ターデータ生成部314、マトリックス変換部316、
ショートベクター生成部317、バンド分解管理部32
0などの要求に従って、それらの値を転送する。Embodiments of the present invention will be described below. [First Embodiment] FIG. 1 is a block diagram showing a configuration of a first embodiment according to the present invention. 1, the image processing apparatus includes a print data creation unit 1, a print data input unit 2, a conversion processing unit 3, a development processing unit 4, and an output unit 5. Further, the conversion processing unit 3 includes a lexical analysis unit 30, an intermediate data generation unit 31, an intermediate data order control 32, and an intermediate data storage unit 33. The expansion processing unit 4 includes a reconfigurable expansion unit 40 and a reconfiguration control unit 41.
And a configuration data management unit 42. The print data creation unit 1 has a function of creating print data described in a description language from document data generated by an application program for processing document creation and editing in a personal computer or a workstation. . The description language targeted in this embodiment is, for example, PDF (Port) represented by GDI and Acrobat.
table Document Format), Po
A page description language such as stScript (Page De
scripting language). The print data input unit 2 has a communication function for inputting print data generated by the print data creation unit 1 or a function for temporarily storing print data until the print data is output to the conversion processing unit 3. It is. The conversion processing unit 3 converts the print data input from the print data input unit 2 into intermediate data that can be expanded into print data by the expansion processing unit 4 and rearranges the intermediate data. The conversion processing unit 3 includes a lexical analysis unit 30, an intermediate data generation unit 31, an intermediate data order control unit 32, and an intermediate data storage unit 33. The lexical analysis unit 30 cuts out the print data input from the print data input unit 2 as a token according to the syntax of a predetermined description language, and outputs the token to the intermediate data generation unit 31. The intermediate data generating unit 31
The token output from the lexical analysis unit 30 is received and interpreted, a rendering command is executed, and data is generated based on a trapezoid for each rendering command as a basic unit.
Send to 2. The purpose of generating intermediate data is to
To enable high-speed expansion processing. Therefore, the intermediate data is represented by a set of simple figures (trapezoids). In addition, the expansion data ID is also added to the intermediate data as information regarding the expansion processing. The intermediate data order control unit 32 reads a certain amount of intermediate data output from the intermediate data generation unit 31, makes an overlap determination between them, performs rearrangement based on the result, and stores the intermediate data. Output to the unit 33. At this time, for each group of intermediate data that can be processed in parallel based on the rearrangement, information indicating a boundary with another group and hardware that is an identifier for configuration data written to the reconfigurable expansion unit 40 of the expansion processing unit 4 A hardware configuration ID is added. The intermediate data storage unit 33 stores the transmitted intermediate data, and is read from the expansion processing unit 4 as needed. Expansion processing unit 4
Reads the output intermediate data from the conversion processing unit 3 in band units, and creates print data in a band buffer memory in the expansion processing unit 4. This processing is alternately stored in two band buffer memories in the expansion processing unit 4. As will be described later, the output unit 5 used in this embodiment is a color page printer, and the print data alternately stored in the buffer memory corresponds to the print data of the recording color printed by the output unit 5. doing. Subsequently, the print data stored in the band buffer memory is alternately output to the output unit 5 in response to a print data request from the output unit 5. The output unit 5 receives the print data output from the band buffer memory of the expansion processing unit 4, prints it on recording paper, and outputs it. More specifically, CMYB K (cyan, magenta,
This is a color page printer using a laser scanning type electrophotographic method capable of outputting a full-color image by repeating exposure, development, and transfer for each color of yellow (black). The output unit 6 may be an ink jet type color printer. In this case, print data is simultaneously output from the band buffer memory of the expansion processing unit 4 to the output unit 5 in four colors. Here, the configuration and operation of a color page printer using a general laser scanning type electrophotographic method will be described with reference to FIG. In FIG. 2, a video interface 50 inputs print data corresponding to CMYBK color information sequentially sent from the expansion processing unit 4 to a driver (not shown) for controlling the lighting of a semiconductor laser, and converts it into an optical signal. The semiconductor laser scanning device 51 includes an infrared semiconductor laser, a lens 711, and a polygon mirror 510, and scans the photosensitive drum 72 as spot light of several tens μm. Photoconductor drum 52
Is charged by the charger 53, and the light signal
An electrostatic latent image is formed. The latent image is converted into a toner image by two-component magnetic brush development on the rotary developing device 54 and is transferred onto a sheet adsorbed on the transfer drum 55. Excess toner is removed from the photosensitive drum 52 by the cleaner 56. This process is repeated in the order of BK, Y, M, and C, and multiple transfer is performed on paper. Finally, the sheet is peeled off by the transfer drum 55, and the toner is fixed by the fixing device 57. Reference numeral 58 denotes a sheet transport path. Next, the flow of print data in the print processing apparatus configured as described above will be summarized. The print data created by the print data creation unit 1 is input to the lexical analysis unit 30 of the conversion processing unit 3 via the print data input unit 2. The token extracted from the print data in the lexical analyzer 30 is input to the intermediate data generator 31. The intermediate data generator 31 interprets the token and generates intermediate data divided in band units. The intermediate data order control unit 32 rearranges the order of the intermediate data based on the overlap, divides the intermediate data into groups that can be processed in parallel, and stores one page in the intermediate data storage unit 33 in band units. At this time, the intermediate data is based on data based on a trapezoid set, a band ID indicating which band belongs, a type of image, character, graphic, etc., a drawing attribute, a circumscribed rectangle for the trapezoid set, a group ID capable of parallel processing. , And a hardware configuration ID. Then, the intermediate data storage unit 33 sends out the intermediate data in response to a request from the development processing unit 4. On the other hand, the expansion processing unit 4
Then, according to the hardware configuration ID added to the intermediate data input from the conversion processing unit 3, the configuration data is input from the configuration data management unit 42 as necessary, and the reconfigurable configuration is controlled by the reconfiguration control unit 41. The function of the unit 40 is rewritten. Further, the expansion processing section 4 receives the intermediate data and performs the expansion processing until the band buffer memory is filled with the print data recorded first by the output section 5. When the cycle of the output unit 5 is completed or the output preparation is completed, the print data is transferred line by line from the band buffer memory to the output unit 5 in accordance with the recording speed of the output unit 5.
Printing is performed. While the print data of one band buffer memory is being printed, the expansion processing is executed until one band buffer memory is filled with the print data. The expansion into print data by the expansion processing unit 4 and the printing by the output unit 6 are performed until print data for one page is processed.
It is repeated for each color or for four colors simultaneously. Further, when the print data includes a plurality of pages, the process is repeated until the output of all pages is completed. The outline of the print processing apparatus of the present invention has been described above. Next, details of a main part of the print processing apparatus will be described. First, details of the intermediate data generation unit 31, the intermediate data order control unit 32, and the intermediate data storage unit 33 will be described. As shown in FIG. 3, the intermediate data generation unit 31
An instruction execution unit 311, an image processing unit 312, a drawing state storage unit 313, a vector data generation unit 314, a font management unit 315, a matrix conversion unit 316,
Short vector generation unit 317 and trapezoid data generation unit 3
18 and a band disassembly management unit 319.
The token interpreter 310 interprets the token input from the lexical analyzer 30, converts the token into an internal instruction, and converts the internal instruction into an instruction.
Send to 11. The instruction execution unit 311 includes the token interpretation unit 31
In response to the command sent from 0, the image data is transferred to the image processing unit 312, the drawing state storage unit 313, and the vector data generation unit 314. The image processing unit 312 performs various image processing based on the input image header and image data to generate an output image header and output image data, and generates a trapezoidal data management unit 32.
Transfer to 0. The drawing state storage unit 313 stores the instruction execution unit 3
Information necessary for drawing given by the eleventh instruction is stored. The vector data generation unit 314 includes the instruction execution unit 31
1 and information added thereto, the drawing state storage unit 31
The vector data to be drawn is generated using the information from the font management unit 3 and the information from the font management unit 315, and is transferred to the matrix conversion unit 316. The font management unit 315 manages and stores outline data of various fonts, and provides outline data of characters in response to a request. The matrix conversion unit 316 performs affine transformation on the vector data input from the vector data generation unit 314 using the conversion matrix of the drawing state storage unit 313, and transfers the vector data to the short vector generation unit 317. The short vector generation unit 317 approximates the vector for the curve in the input vector with a plurality of linear vector sets (short vectors) and sends the vector to the trapezoid data generation unit 318. The trapezoid data generation unit 318 generates trapezoid data to be drawn from the input short vector, and transfers it to the band decomposition unit 319. The band disassembly management unit 319 divides the trapezoidal data over a plurality of bands from the input trapezoidal data into trapezoidal data of each band, and further determines to which band the trapezoidal data divided in band units belongs. , A circumscribed rectangle for a trapezoidal data set divided in band units, data management information and color information input from the drawing state storage unit 313 or an image processing unit 312
Then, the image data input from the server and the expansion processing ID, which is expansion processing information, are added to the image data and sent to the intermediate data order control unit 32. In the intermediate data order control unit 32, for each band,
The order is rearranged based on the overlap of the intermediate data, divided into groups that can be processed in parallel, and a hardware configuration ID and a group ID are added. The intermediate data storage unit 33 stores the intermediate data output by the intermediate data order control unit 32 for one page in band units. The processing from the token interpreting unit 310 to the intermediate data generating unit 31 described above is repeatedly performed each time a drawing command is input. The processing from the intermediate data order control unit 32 to the intermediate data storage unit is performed in band units or page units depending on the case. The transfer of the intermediate data from the intermediate data storage unit 33 to the expansion processing unit 4 is performed after the intermediate data for one page is stored. Hereinafter, the operation of each unit of the intermediate data generation unit 31, the intermediate data order control unit 32, and the intermediate data storage unit 33 will be described in more detail while showing the actual data structure. The token interpreter 310 interprets the token input from the lexical analyzer 30, converts the token into an internal instruction and its arguments, and transfers a set of the internal instruction and the argument to the instruction executing unit 311. For example, the internal commands include a drawing command for executing drawing of characters / graphics / images, and a drawing state command for setting information required for drawing such as color and line attribute. The instruction execution unit 311 executes the internal instruction sent from the token interpretation unit 310. The commands executed here mainly include a drawing command and a drawing state command. For example, drawing commands include
As shown in Table 1, there are three types of drawing commands, and information necessary for each drawing is shown. Among them, information having an underline is given as an argument in a drawing command, and other information is stored in the drawing state storage unit 313 in advance by initial setting or a preceding command. To execute the drawing command, the received drawing command other than the image drawing is transferred to the vector data generating unit 314 as it is. In the case of image drawing, the received drawing command is transferred to the image processing unit 312, and the vertical and horizontal sizes of the image header are transferred to the vector data generating unit 314. For the drawing state command, the command is transferred to the drawing state storage unit 313.
The image processing unit 312 receives the input image header and the input image data, which are the arguments of the command input from the command execution unit 311, and compresses the image if a compressed image is input based on the compression ID added to the header. And affine transformation is performed using the transformation matrix acquired from the drawing state storage unit 313. Further, in some cases, the processed image is compressed, an output image header and output image data are generated, and transferred to the band decomposition management unit 319. For this compression, it is usual to use a compression method that originally compressed image data on the PDL side, but this need not be the case. For example,
If the PDL has been compressed by DCT (Discrete Cosine Transform), it may be compressed by DCT or LZW (Lempel-Ziv &
(Welch) method, or may not be performed. In the affine transformation to be performed, affine transformation may be intentionally performed for a resolution smaller than the resolution of the output device in order to reduce the amount of memory of the intermediate data buffer. The drawing state storage unit 313 sets, for example, values of information without underline shown in Table 1 with the values of the arguments included in the command received from the command execution unit 311 and stores them. Further, an image processing unit 312, a vector data generation unit 314, a matrix conversion unit 316,
Short vector generation unit 317, band decomposition management unit 32
The values are transferred according to a request such as 0.
【表1】 ベクターデータ生成部314では、命令実行部311か
ら送られてきた命令と引数、描画状態記憶部313の値
を使用して、塗りつぶし描画を除く、新たに描画するた
めのベクターデータを生成する。まず文字描画の場合に
ついて説明する。引数で与えられた文字コードと描画状
態記憶部から獲得したフォントIDをフォント管理部へ
転送して、文字のアウトラインデータを獲得する。獲得
したアウトラインデータには、描画原点(カレントポイ
ント)の情報が含まれていないので、描画状態記憶部3
13から獲得したカレントポイントのオフセットをアウ
トラインデータに加えることによって、目的のベクター
データを生成する。画像描画の場合には、引数で与えら
れた画像ヘッダの縦と横のサイズからそれに対する矩形
ベクターを生成し、描画状態記憶部313から獲得した
カレントポイントのオフセットを加えることで目的のベ
クターデータを生成する。ストローク描画の場合は、引
数で与えられたベクターと描画状態記憶部313から獲
得した各種の線属性から、図4に示すような太さを持っ
た線のアウトラインベクターを生成する。このように生
成したベクター(塗りつぶし描画の場合は命令実行部3
11から直接受け取ったベクター)を、マトリックス変
換部316へ転送する。フォント管理部315は、各種
フォントに対するアウトラインベクターデータを記憶す
るとともに、与えられた文字コードとフォントIDによ
って、その文字に対するアウトラインベクターデータを
提供する。マトリックス変換部316は、ベクターデー
タ生成部314から受け取ったベクターデータを、描画
状態記憶部313から獲得した変換マトリックスによっ
てアフィン変換する。このアフィン変換の主な目的は、
アプリケーションの解像度(座標系)からプリンタの解
像度(座標系)に変換するためのものである。変換マト
リックスには下式(1)に示すような3x3のものが使
われ、入力ベクターデータ(Xn,Yn)は、出力ベク
ターデータ(Xn’,Yn’)に変換されてショートベ
クター生成部317へ送られる。[Table 1] The vector data generation unit 314 uses the command and argument sent from the command execution unit 311 and the value of the drawing state storage unit 313 to generate vector data for new drawing except for the solid drawing. First, the case of character drawing will be described. The character code given by the argument and the font ID obtained from the drawing state storage unit are transferred to the font management unit, and character outline data is obtained. Since the acquired outline data does not include information on the drawing origin (current point), the drawing state storage unit 3
The target vector data is generated by adding the offset of the current point acquired from 13 to the outline data. In the case of image drawing, a rectangular vector corresponding to the image header given by the argument is generated from the vertical and horizontal sizes of the image header, and the offset of the current point obtained from the drawing state storage unit 313 is added to obtain the target vector data. Generate. In the case of stroke drawing, an outline vector of a line having a thickness as shown in FIG. 4 is generated from the vector given as an argument and various line attributes acquired from the drawing state storage unit 313. The vector generated in this manner (in the case of a solid drawing, the instruction execution unit 3
11) is transferred to the matrix conversion unit 316. The font management unit 315 stores outline vector data for various fonts, and provides outline vector data for the characters based on a given character code and font ID. The matrix conversion unit 316 affine-transforms the vector data received from the vector data generation unit 314 using the conversion matrix acquired from the drawing state storage unit 313. The main purpose of this affine transformation is
This is for converting the resolution (coordinate system) of the application to the resolution (coordinate system) of the printer. A 3 × 3 matrix as shown in the following equation (1) is used for the conversion matrix. The input vector data (Xn, Yn) is converted into output vector data (Xn ′, Yn ′) and sent to the short vector generation unit 317. Sent.
【数1】 ショートベクター生成部317は、入力されたベクター
の中に曲線のベクターがある場合にその曲線のベクター
を、誤差が描画状態記憶部313から獲得したフラット
ネス(flatness)値より小さくなるように、複
数のショートベクターで近似する処理を行う。例えば曲
線のベクターには、図5に示す4つの制御点で表現され
るベジエ曲線が使われる。この場合ショートベクター化
の処理は、図5に示す通りベジエ曲線を再帰的に分割
し、高さ(距離d)がflatnessで与えられた値
より小さくなった時点で分割を終了する。そして分割さ
れた各ベジエ曲線の始点と終点を順番に結ぶことによ
り、ショートベクター化が完了する。生成されたショー
トベクターは、台形データ生成部318へ送られる。台
形データ生成部318は、入力されたベクターデータか
ら、描画領域を示す台形データ(三角形の場合もあるが
データ構造は台形と同じである)の集合を生成する。例
えば図6(a)に示す太線で示された多角形のベクター
は、4つの台形により描画領域が示される。尚、この台
形は出力装置のスキャンラインに平行な2辺を持った台
形であり、1つの台形は図6(b)に示すように(s
x,sy,x0,x1,x2,h)の6つのデータで表
現される。生成された台形は、バンド分解管理部319
へ送られる。バンド分解管理部319は、入力された台
形データのうち複数のバンドにまたがる台形データをバ
ンド毎の台形データに分割する。例えば図7では、4つ
の台形データがバンド分解部によって6つの台形データ
に分割される。さらにバンド毎に分解した台形データに
付加情報をつけて中間データを生成する。付加情報は、
中間データを管理するための管理情報と、展開処理部4
で処理する内容を表す展開処理IDと、台形データを何
色で塗りつぶすかを示す色情報である。文字/図形の描
画命令に対する管理情報は、どのバンドに属するかを示
すためのバンドID、オブジェクトID、オブジェクト
の種類、台形数のデータ、その台形データ集合に対する
外接矩形である。オブジェクトIDとは、一回の描画命
令に対して割当てられる識別番号であり、オブジェクト
の種類とは、文字/図形/画像など描画される対象に対
する識別データである。また展開処理IDは、展開処理
部4での処理を示すIDであり、色情報は例えばCMY
BKの値がである。これらの付加情報は、図8(a)に
示すように、描画命令によって生成されたバンド毎の台
形データの前に付加される。従って、オブジェクトは、
一組の描画属性が付けられた複数の台形データからな
る。また、中間データは、このようなオブジェクトに対
するデータの集合である。画像の描画命令に対する管理
情報は文字/図形と同じであるが、色情報は画像ヘッダ
と画像データとなる。また図8(b)に示すように、画
像ヘッダと画像データは、描画命令によって生成された
バンド毎の台形データそれぞれに対して1つずつ付加さ
れる。また画像ヘッダと画像データは画像処理部312
から入力されるが、中間データとして付加される画像デ
ータは、図9に示すように変換された画像を示すベクタ
ーの最小矩形に対する画像データでってもよいし、各台
形毎の最小矩形に対する画像データであってもよい。さ
らに画像データは容量が大きくなるため、圧縮された形
で格納されていてもよい。画像ヘッダは、画像の大きさ
を表すパラメータの他に、色変換の処理の種類や圧縮方
式の種類も含んでいる。最後に、展開処理IDについて
説明する。展開処理IDは、展開処理部4により実行さ
れる処理に応じたコード情報で、表2のような意味を表
す。これらは、再構成可能ハードウェアの規模と並列的
に実行される処理内容に応じて、中間データ順序制御部
32において、実際の再構成可能展開部40の構成と1
対1に対応する構成IDに変換される。(Equation 1) The short vector generation unit 317 converts the vector of the curve when the input vector includes the vector of the curve such that the error is smaller than the flatness value acquired from the drawing state storage unit 313. Perform the approximation process using the short vector. For example, a Bezier curve represented by four control points shown in FIG. 5 is used as a curve vector. In this case, the short vector processing recursively divides the Bezier curve as shown in FIG. 5, and ends the division when the height (distance d) becomes smaller than the value given by flatness. Then, the start point and the end point of each of the divided Bezier curves are connected in order, thereby completing the short vectorization. The generated short vector is sent to the trapezoid data generator 318. The trapezoid data generation unit 318 generates a set of trapezoid data (in some cases, a triangle but the data structure is the same as the trapezoid) indicating the drawing area from the input vector data. For example, a polygonal vector indicated by a thick line shown in FIG. 6A has a drawing area indicated by four trapezoids. Note that this trapezoid is a trapezoid having two sides parallel to the scan line of the output device, and one trapezoid is (s) as shown in FIG.
x, sy, x0, x1, x2, h). The generated trapezoid is stored in the band decomposition management unit 319.
Sent to The band decomposition management unit 319 divides trapezoidal data that spans a plurality of bands from the input trapezoidal data into trapezoidal data for each band. For example, in FIG. 7, four trapezoidal data are divided into six trapezoidal data by the band decomposition unit. Further, additional information is added to the trapezoid data decomposed for each band to generate intermediate data. Additional information
Management information for managing the intermediate data;
Are the development process IDs representing the contents to be processed in, and color information indicating in what color the trapezoid data is painted. The management information for the character / graphic drawing command is a band ID for indicating to which band the object belongs, an object ID, the type of the object, the data of the number of trapezoids, and a circumscribed rectangle for the trapezoid data set. The object ID is an identification number assigned to one drawing command, and the type of the object is identification data for a drawing target such as a character / graphic / image. The development processing ID is an ID indicating the processing in the development processing unit 4, and the color information is, for example, CMY.
The value of B K is These pieces of additional information are added before the trapezoidal data for each band generated by the drawing command, as shown in FIG. Thus, the object is
It consists of a plurality of trapezoidal data to which a set of drawing attributes is attached. The intermediate data is a set of data for such an object. The management information for the image drawing command is the same as the character / graphic, but the color information is the image header and image data. Further, as shown in FIG. 8B, one image header and one image data are added to each of the trapezoidal data for each band generated by the drawing command. The image header and the image data are stored in the image processing unit 312.
However, the image data added as the intermediate data may be image data corresponding to a minimum rectangle of a vector indicating a converted image as shown in FIG. 9 or an image corresponding to a minimum rectangle of each trapezoid. It may be data. Further, since the image data has a large capacity, it may be stored in a compressed form. The image header includes the type of the color conversion process and the type of the compression method, in addition to the parameter indicating the size of the image. Finally, the expansion processing ID will be described. The expansion processing ID is code information corresponding to the processing executed by the expansion processing unit 4, and has a meaning as shown in Table 2. These are stored in the intermediate data order control unit 32 in the intermediate data order control unit 32 in accordance with the actual configuration of the reconfigurable expansion unit 40 and the size of the reconfigurable hardware 40 in accordance with the scale of the reconfigurable hardware and the processing contents executed in parallel.
It is converted to a configuration ID corresponding to one-to-one.
【表2】 中間データ順序制御部32は中間データ生成部31の出
力する中間データをある単位の量だけ入力して、それら
の間の重なり判定を行ない、その結果に基づいて並び換
えを行なって中間データ記憶部33に出力する。その
際、並び換えに基づく並列処理可能な中間データのオブ
ジェクトの集合毎に、他の集合との境界を示す情報と、
展開処理部4の再構成可能展開部40に書き込まれる構
成データに対する識別子であるハードウェア構成IDが
付加される。中間データ順序制御部32における出力デ
ータ形式を、図10に示す。図10において、中間デー
タ順序制御部32が出力する中間データのデータ構造
は、並列処理可能なオブジェクト毎にまとめられてい
る。各集合のデータは、バンドID、ハードウェア構成
ID、オブジェクトの数、集合に属するオブジェクトの
データからなる。図11に中間データ順序制御部32の
構成を示す。図11において、321ははオブジェクト
バッファ、322は描画順序依存検出部、323は最適
化テーブル作成部、324は構成データ選択部、325
はリオーダ部である。中間データ順序制御部32は、入
力された複数のオブジェクトの描画順序依存性を検出す
ることにより、オブジェクトを並列に展開処理できる集
まりに分け、それらの間での展開処理の順序付けをする
ブロックである。オブジェクトの描画順序依存性とは、
オブジェクト間に重なりがある場合、字句解釈部30が
印刷データ入力を解釈し中間データ生成部31が描画オ
ブジェクトを生成する順、すなわち、中間データに付け
られるオブジェクトIDの順に、背面から上に向かって
描画されなければならないという性質である。このよう
に後で解釈されたオブジェクトを前に解釈されたオブジ
ェクトの上に上書きするモデルをオペーク(opaqu
e)モデルと呼ぶ。例えば、図12において、900は
ページ領域、901、902、903、904はそれぞ
れ個別の描画オブジェクトである。オブジェクト901
とオブジェクト902は重なり合っており、後者は前者
よりも前面に描画されなければならない。これは、オブ
ジェクト901が、オブジェクト902よりも時間的に
先に解釈されるためである。一方、オブジェクト903
はオブジェクト904と重なり合っており、同様の理由
により後者は前者よりも前面に描画されなければならな
い。オブジェクトバッファ321は、複数個のオブジェ
クトデータを入力して格納する。オブジェクトデータを
入力して格納する単位は、場合によって複数個の描画オ
ブジェクトであってもよいし、バンドやページなどのよ
り大きい単位であってもよい。描画順序依存検出部32
2は、オブジェクトバッファ321に格納された同一の
バンドIDを持つ各オブジェクトのIDと外接矩形の座
標値を入力して、オブジェクト間の描画順序依存性を検
出する。この過程を図12を用いて詳しく説明する。図
12において、901及び904は図形オブジェクトで
あり、902及び903は画像オブジェクトである。オ
ブジェクト902はオブジェクト901の上に重なって
おり、また、オブジェクト904はオブジェクト903
の上に重なっている。各オブジェクトに付随する外接矩
形の表す領域に重なりがあるかどうかを調べることによ
ってグループ分けを行なう。重なりを調べる方法は、2
つのオブジェクトの外接矩形の重なり検出を最小単位と
して、これを任意の2つのオブジェクトの組み合わせに
対して行なう。2つのオブジェクトの外接矩形の重なり
検出は、次のように行なう。1つのオブジェクトの外接
矩形領域を表す(P1,P2,P3,P4)の座標点の
1つ1つが、別のオブジェクトの外接矩形領域P5−P
6−P7−P8の内部あるいは境界上にあるかどうかを
調べる。もし、P1、P2、P3、P4の内少なくとも
1点が矩形領域P5−P6−P7−P8の内部あるいは
境界上にあれば2つのオブジェクトは重なりを持ち、そ
れ以外の場合には2つのオブジェクトは重なりを持たな
い。従って、図12の場合には、(901,902)、
(903,904)の2つのグループができる。これは
オブジェクト901の描画はオブジェクト902の描画
に先だって行なわれなければならず、また、オブジェク
ト903の描画はオブジェクト904の描画に先だって
行なわれなければならないことを示している。また、グ
ループ(901,902)とグループ(903,90
4)は並列的に展開が可能であることを示している。描
画順序依存検出部322は、各オブジェクトのIDに、
グループIDと描画順序を示す番号を付けて出力する。
図12の場合には、データ(901,1,1)、(90
2,1,2)、(903,2,1)、(904,2,
2)が出力される。ここで、各データの3つの組からな
る数字は、それぞれ、オブジェクトID、グループI
D、描画順序を表している。オブジェクトバッファの大
きさは、場合によって、あるバンドに属する複数のオブ
ジェクト単位でもよく、また、1つのバンドバッファ全
体あるいはページ全体でもよい。並列処理可能なオブジ
ェクトのグループ分け及び選別は、バンド単位あるいは
ページ単位で行なう。最適化テーブル作成部323は、
描画順序依存検出部322から入力されたオブジェクト
ID、グループID、描画順序をもとに図13に示され
るようなテーブルを作成して、構成データ選択部324
に出力する。図13において、グループIDは描画順序
依存検出部においてグループ分けされたグループIDで
ある。オブジェクトIDの欄には、各グループにおいて
最初に描画すべきオブジェクト、すなわち、入力された
描画順序が1であるオブジェクトのIDを書き込む。展
開処理IDの欄には、オブジェクトバッファ321から
各オブジェクトに対応する展開処理IDを入力して書き
込む。図13の例の場合、オブジェクト901に対する
処理IDはCode Aであり、オブジェクト903に
対する処理IDはCode Gである。外接矩形面積の
欄には、オブジェクトバッファ321から各オブジェク
トに対応する外接矩形の座標を入力し、その面積を計算
して書き込む。構成データ選択部324は、最適化テー
ブル作成部323が出力する並列処理可能な複数のオブ
ジェクトに対して最も適した再構成可能展開部40の構
成を選択する。構成データ選択部324は、最適化テー
ブル作成部323が出力するテーブルを用いて図14に
示されるフローチャートにより、再構成可能展開部40
の構成データを選択する。構成データ選択部324が実
行する処理はS1からS4までの4つのステップからな
る。S1において、入力したテーブルから並列処理する
複数のオブジェクトの展開処理IDを入力する。次に、
S2において、全体の再構成可能ハードウェア資源の中
で許容される展開処理ハードウェアの並列的な組み合わ
せの候補を選ぶ。これは並列的に処理されるオブジェク
トの展開処理IDから得られる処理回路の規模をもと
に、次式の制約を満たす組み合わせを選ぶことによって
行なう。[Table 2] The intermediate data order control unit 32 inputs the intermediate data output from the intermediate data generation unit 31 by a certain unit, performs overlap determination between them, performs rearrangement based on the result, and performs intermediate data storage. 33. At this time, for each set of intermediate data objects that can be processed in parallel based on the rearrangement, information indicating a boundary with another set,
A hardware configuration ID which is an identifier for the configuration data written to the reconfigurable expansion unit 40 of the expansion processing unit 4 is added. FIG. 10 shows an output data format in the intermediate data order control unit 32. In FIG. 10, the data structure of the intermediate data output by the intermediate data order control unit 32 is organized for each object that can be processed in parallel. The data of each set includes a band ID, a hardware configuration ID, the number of objects, and data of objects belonging to the set. FIG. 11 shows the configuration of the intermediate data order control unit 32. In FIG. 11, reference numeral 321 denotes an object buffer; 322, a drawing order dependency detection unit; 323, an optimization table creation unit; 324, a configuration data selection unit;
Is a reorder section. The intermediate data order control unit 32 is a block that detects the drawing order dependency of a plurality of input objects, divides the objects into a group that can be expanded in parallel, and orders the expansion processing among them. . What is the rendering order dependency of an object?
If there is an overlap between the objects, the lexical interpretation unit 30 interprets the print data input and the intermediate data generation unit 31 generates the drawing object, that is, in the order of the object IDs attached to the intermediate data, from the back to the top. It is a property that must be drawn. In this way, a model that overwrites a later interpreted object on a previously interpreted object is called an opaque model.
e) Call the model. For example, in FIG. 12, 900 is a page area, and 901, 902, 903, and 904 are individual drawing objects. Object 901
And the object 902 overlap, and the latter must be drawn in front of the former. This is because the object 901 is interpreted temporally earlier than the object 902. On the other hand, object 903
Overlaps the object 904, and for the same reason the latter must be drawn in front of the former. The object buffer 321 receives and stores a plurality of object data. The unit in which the object data is input and stored may be a plurality of drawing objects, or may be a larger unit such as a band or a page. Drawing order dependency detection unit 32
2 inputs the ID of each object having the same band ID stored in the object buffer 321 and the coordinate value of the circumscribed rectangle, and detects the drawing order dependency between the objects. This process will be described in detail with reference to FIG. In FIG. 12, 901 and 904 are graphic objects, and 902 and 903 are image objects. Object 902 overlaps object 901 and object 904 is object 903
On top of. Grouping is performed by checking whether the area represented by the circumscribed rectangle attached to each object overlaps. The method of checking the overlap is 2
This is performed for any combination of two objects, with the overlap detection of the circumscribed rectangle of one object being the minimum unit. The detection of the overlap of the circumscribed rectangles of the two objects is performed as follows. Each of the coordinate points (P1, P2, P3, P4) representing the circumscribed rectangular area of one object is defined as the circumscribed rectangular area P5-P of another object.
It is checked whether it is inside or on the boundary of 6-P7-P8. If at least one point among P1, P2, P3 and P4 is inside or on the boundary of the rectangular area P5-P6-P7-P8, the two objects have an overlap, otherwise the two objects have No overlap. Therefore, in the case of FIG. 12, (901, 902),
There are two groups (903, 904). This means that drawing of the object 901 must be performed before drawing of the object 902, and drawing of the object 903 must be performed before drawing of the object 904. Also, a group (901, 902) and a group (903, 90)
4) indicates that development can be performed in parallel. The drawing order dependency detection unit 322 adds the ID of each object to
A group ID and a number indicating the drawing order are attached and output.
In the case of FIG. 12, data (901, 1, 1), (90
2,1,2), (903,2,1), (904,2,2)
2) is output. Here, the numbers consisting of three sets of each data are the object ID and the group I, respectively.
D represents the drawing order. Depending on the case, the size of the object buffer may be a unit of a plurality of objects belonging to a certain band, or may be the entire band buffer or the entire page. The grouping and selection of objects that can be processed in parallel are performed in band units or page units. The optimization table creation unit 323
A table as shown in FIG. 13 is created based on the object ID, group ID, and drawing order input from the drawing order dependency detection unit 322, and the configuration data selection unit 324
Output to In FIG. 13, the group ID is a group ID grouped by the drawing order dependency detection unit. In the column of object ID, the ID of the object to be drawn first in each group, that is, the object whose input drawing order is 1 is written. The expansion processing ID corresponding to each object is input from the object buffer 321 and written in the expansion processing ID column. In the example of FIG. 13, the processing ID for the object 901 is Code A, and the processing ID for the object 903 is Code G. In the column of circumscribed rectangle area, the coordinates of the circumscribed rectangle corresponding to each object are input from the object buffer 321 and the area is calculated and written. The configuration data selection unit 324 selects the configuration of the reconfigurable expansion unit 40 that is most suitable for a plurality of parallel-processable objects output by the optimization table creation unit 323. The configuration data selection unit 324 uses the table output from the optimization table creation unit 323 and executes the reconfigurable expansion unit 40 according to the flowchart shown in FIG.
Select the configuration data of The processing executed by the configuration data selection unit 324 includes four steps from S1 to S4. In S1, a development process ID of a plurality of objects to be processed in parallel from the input table is input. next,
In S2, a candidate for a parallel combination of expansion processing hardware that is allowed in the entire reconfigurable hardware resources is selected. This is performed by selecting a combination that satisfies the following equation based on the scale of the processing circuit obtained from the expansion processing ID of the object processed in parallel.
【数2】SIZE≧XN×SIZE(X)+YN×SI
ZE(Y)+...+ZN×SIZE(Z) ここでSIZEは再構成可能展開部40内の再構成ハー
ドウェア回路全体の規模、SIZE(X)、SIZE
(Y)、SIZE(Z)は各展開処理IDに対応する回
路X,Y,Zの回路規模、XN、YX、ZNは回路X,
Y,Zの並列度である。この式で表されるように、構成
データ選択部324は、同一の機能が複数個ある回路構
成や、異なる機能が複数個ある回路構成の構成データを
選択して、並列処理ができるような仕組みを備える。ま
た、異なる機能が複数個ある回路構成を選択して、それ
らの間で入出力データをパイプライン的にやり取りする
パイプライン的な動作ができるような仕組みも備えて
る。図13のテーブルに対応して、例えば、図15に示
されるような構成を持つ候補が選択される。図15にお
いて、ハードウェア構成IDがXである候補は、オブジ
ェクト901に対するハードウェアリソースとして並列
度が3であり、またオブジェクト903に対するハード
ウェアリソースとして並列度が2である。ハードウェア
構成IDがYである候補は、オブジェクト901に対す
るハードウェアリソースとして並列度が4であり、また
オブジェクト903に対するハードウェアリソースとし
て並列度が1である。次にS3において、各オブジェク
トのデータ量から計算されるハードウェア構成の候補毎
の展開終了時間を計算する。ここで、展開終了時間は並
列処理可能なオブジェクトの展開処理がすべて終わるま
での時間である。各オブジェクトに対する展開処理時間
Toは、EQUATION 2 SIZE ≧ XN × SIZE (X) + YN × SI
ZE (Y) +. . . + ZN × SIZE (Z) where SIZE is the size of the entire reconfigurable hardware circuit in the reconfigurable expansion unit 40, SIZE (X), SIZE
(Y) and SIZE (Z) are the circuit scales of the circuits X, Y and Z corresponding to the respective development processing IDs, and XN, YX and ZN are the circuits X and
This is the degree of parallelism between Y and Z. As represented by this formula, the configuration data selection unit 324 selects a configuration data of a circuit configuration having a plurality of identical functions or a configuration of a circuit configuration having a plurality of different functions, and performs a parallel processing. Is provided. In addition, a mechanism is provided for selecting a circuit configuration having a plurality of different functions and performing a pipeline-like operation of exchanging input / output data in a pipeline between them. For example, a candidate having a configuration as shown in FIG. 15 is selected corresponding to the table of FIG. In FIG. 15, a candidate whose hardware configuration ID is X has a degree of parallelism of 3 as a hardware resource for the object 901 and a degree of parallelism of 2 as a hardware resource for the object 903. The candidate whose hardware configuration ID is Y has a parallelism of 4 as a hardware resource for the object 901 and a parallelism of 1 as a hardware resource for the object 903. Next, in S3, the development end time for each hardware configuration candidate calculated from the data amount of each object is calculated. Here, the expansion end time is a time until all the expansion processing of the objects that can be processed in parallel is completed. The expansion processing time To for each object is
【数3】To=DSIZE×Td ÷ PAR で計算する。ここで、DSIZEは処理すべきオブジェ
クトのデータ量、Tdは1単位の処理回路が単位データ
量を処理するのに要する時間、PARは並列度である。
処理すべきオブジェクトのデータ量の概算値として図1
3のテーブルの外接矩形の面積を用いる。図15の例で
は、処理時間はハードウェア構成IDがXである候補に
ついて、20msであり、ハードウェア構成IDがXで
ある候補について、30msである。S4において、最
も展開時間の少ない候補を最終的なハードウェア構成と
して選択する。図15の例では、ハードウェア構成ID
がXの候補が最終的な構成として選択される。リオーダ
部325は最終的に選択されたハードウェア構成IDと
並列的に処理するオブジェクトのデータを、図10に説
明したデータ構造に変換して、中間データ記憶部33に
出力する。オブジェクトのデータは、オブジェクトID
をオブジェクトバッファ321に出力して、そのオブジ
ェクトに対するデータをオブジェクトバッファ321か
ら入力する。構成データ選択部324によって、並列処
理可能なオブジェクトとして、選択されなかったオブジ
ェクトはオブジェクトバッファ321にそのまま残り、
新たなオブジェクトバッファ321の中のオブジェクト
の組み合わせに対して、以上で説明した処理が繰り返さ
れ、図10に示される中間データのデータ構造が出力さ
れる。中間データ順序制御部32が出力するデータは、
中間データ記憶部33へ送られ、中間データ記憶部33
でバンドIDを解釈して、バンド毎にまとめて記憶され
る。また字句解析部30でページの出力コマンドを解釈
すると、EOP(End Of Page)が中間デー
タ生成部31及び中間データ順序制御部32を経由し
て、中間データ記憶部33へ送られ、中間データ記憶部
33に記憶された各バンドの最終データにはEOD(E
nd Of Data)を表すデータが付加され、バン
ドデータの終了を明確にする。このEOPは展開処理部
4にも送られ、展開処理部4の処理を起動する。次に、
展開処理部4について詳細に説明する。図16に、再構
成可能展開部40のブロック図を示す。変換処理部3で
生成されたバンド毎の中間データは、中間データ転送制
御部43により読み込まれ、メモリ部410の入力バッ
ファA420あるいは入力バッファB421へ書き込ま
れる。再構成ハードウェア部46は、入力バッファA4
20あるいは入力バッファB421から中間データを読
み込んで、展開してバンドバッファA422あるいはバ
ンドバッファB423へ描画する。印字データ転送制御
部44は、描画済のバンドバッファA422あるいはバ
ンドバッファB423から展開された印字データを読み
込み、これを読み込んだワード毎にシリアル変換して、
シリアル出力クロック信号に同期して出力部5へ出力す
る。リフレッシュ制御部44は、入力バッファA42
0、入力バッファB421、バンドバッファA422、
バンドバッファB423、ワーク領域424からなるメ
モリ部42のリフレッシュを制御する。アービトレーシ
ョン部45は、リフレッシュ制御部47、中間データ転
送制御部43、印字データ転送制御部44、再構成ハー
ドウェア部46、再構成制御部41、それぞれがメモリ
部410をアクセスする際に、それぞれのブロックに割
当てられたアクセスのプライオリティに応じてアービト
レーション制御を行なう。入力バッファとバンドバッフ
ァの使用方法について説明する。図17(a)及び図1
7(b)はそれぞれ、入力バッファAと入力バッファB
に中間データを入力中の、各バッファの使用状態を示す
ものである。図17(a)においては、バンドiに対応
する中間データを入力バッファAに入力中であり、入力
バッファBには既にバンド(i−1)に対応する中間デ
ータが入力済みである。再構成ハードウェア部46は入
力バッファBに蓄えられた中間データを読み出して、こ
れを展開して、バンドバッファBに描画する。バンドバ
ッファAには、バンド(i−2)に対応する中間データ
を展開描画した結果の印字データが蓄えられており、印
字データ転送制御部44はこれを出力部5に読み出して
いる。図17(b)においては、バンド(i+1)に対
応する中間データを入力バッファBに入力中であり、入
力バッファAには既にバンドiに対応する中間データが
入力済みである。再構成ハードウェア部46は、入力バ
ッファAに蓄えられた中間データを読み出してこれを展
開し、バンドバッファAに描画する。バンドバッファB
には、バンド(i−1)に対応する中間データを展開描
画した結果の印字データが蓄えられており、印字データ
転送制御部44はこれを出力部5に読み出している。ワ
ーク領域424は、展開処理部4が変換処理部3から入
力した中間データを展開するときに、必要に応じて一時
的なワーク領域として用いる。再構成可能展開部40
が、図10に示す変換処理部3が出力する中間データを
展開する手順を説明する。構成制御部41は、入力バッ
ファからハードウェア構成IDとオブジェクトIDを入
力して、図18に示すフローチャートに従って再構成ハ
ードウェア部46を制御する。構成制御部41が行なう
処理はS11からS17の7つのステップからなる。ま
ず、S11において、次に処理するオブジェクトのハー
ドウェア構成IDを入力する。S12において、次に処
理する構成IDが直前に処理した構成IDと同じかどう
か調べる。同じであれば、構成データを再構成ハードウ
ェア部46に新たに書き込む必要はないので、S15に
飛ぶ。違う場合には、S13においてハードウェア構成
IDをもとに、構成データ管理部42から構成データを
読み出し、S14において読み出された構成データを再
構成ハードウェア部46に書き込む。S15において、
再構成ハードウェア部46に、処理するオブジェクトI
Dを出力し、処理の開始を知らせるために開始信号を送
る。S16において、再構成ハードウェア部46での処
理が終わるまで待つ。S17において、現在処理中のバ
ンドにさらに処理すべきオブジェクトがあるかどうかを
調べる。あれば、S1に戻り、なければ終了する。図1
9に構成データ管理部42の構成を示す。変換テーブル
415は、ハードウェア構成IDを入力して、構成コー
ド記憶領域411の開始アドレスとデータ長を出力する
テーブルである。構成コード記憶領域411は、実際の
ハードウェア構成IDに対する構成データが記憶される
領域で、各エントリーは可変長である。412は制御部
で読み出し制御部413と追加・更新部414から成
る。読み出し制御部413は、再構成制御部41から読
み出し信号とハードウェア構成IDを入力して、変換テ
ーブル415にハードウェア構成IDを出力することに
より構成データの構成コード記憶領域411上のアドレ
スとデータ長を入力する。次に、読み出し制御部413
は、入力したアドレスを構成コード記憶領域411に出
力して、データ長分のハードウェア構成IDに対応する
構成データを構成コード記憶領域411から読み出し
て、再構成制御部41に出力する。追加・更新部414
は、図示されていないホスト計算機などを経由して送ら
れる構成データを追加・更新するための制御部で、変換
テーブル415のエントリと構成コード記憶領域411
の構成データを、追加したり、削除したり、更新したり
する。構成コード記憶領域411には、単体の機能を処
理するさまざまな回路構成に対応した構成データ、同一
の機能が複数個ある並列的な回路構成に対応した構成デ
ータ、異なる機能が複数個ある並列的な回路構成に対応
した構成データ、異なる機能が複数個あるパイプライン
的な回路構成に対応した構成データを備えている。次
に、再構成ハードウェア部46の具体的な構成と処理内
容について例をあげて説明する。再構成ハードウェア部
46は、構成データ管理部42が管理記憶する構成デー
タを再構成制御部41の制御により書き込むことによ
り、機能を変えることができる処理ブロックである。典
型的には、再構成ハードウェア部46は、フィールド・
プログラマブル・ゲート・アレイ(FPGA)により構
成できる。FPGAとしては例えば米国XILINX社
のFPGAあるいは同等の構成要素を採用することがで
きる。図20はFPGAを用いて構成された再構成ハー
ドウェア46を示す。図20において、再構成ハードウ
ェア46は制御部461、FPGAユニット462およ
びレジスタ群463を含んで構成される。レジスタ群4
63は構成データ管理部42から送られてくる構成デー
タを記憶するものである。FPGAユニット462の機
能はレジスタ群462に保持されている構成データによ
って決定される。制御部461は、レジスタ群463の
データの入出力やFPGAユニット462の動作タイミ
ング等を制御するものである。FPGAユニット462
は、図21に示すように、複数の論理ブロック462
1、複数のクロスポイントスイッチ4622及び複数の
スイッチマトリックス4623を含んで構成される。論
理ブロック4621は図22に示すようにルックアップ
テーブル4621A、セレクタ4621Bおよびフリッ
プフロップ4621Cを含んで構成される。ルックアッ
プテーブル4621Aは所望の真理値表が実装されてい
る。このルックアップテーブル4621Aの真理値表及
びレレクタ4621Bの切り替え入力信号はレジスタ群
463に保持されている値すなわち構成データの一部に
よって決定される。また、クロスポイントスイッチ46
22及びスイッチマトリックス4623はそれぞれ図2
3及び図24に示すように構成することができる。再構
成ハードウェア部46の機能を表す機能ブロック図は、
書き込まれる構成データによって可変であるので、図1
6において、ハードウェア構成IDがXのものが選択さ
れた場合の例を用いて再構成ハードウェア部46の構成
及び動作を説明する。このとき、再構成ハードウェア部
46は図25のような構成になる。図25において、4
60、460−1、460−2は展開処理IDがCod
eAに対応する処理回路、470、470−1、470
−2、470−3は展開処理IDがCode Gに対応
する処理回路である。処理回路460の内部構成は、台
形描画回路461とスクリーン処理回路462からな
る。処理回路470の内部構成は、画像伸張回路47
1、解像度変換回路472、色変換回路473、台形描
画回路474、スクリーン処理回路475からなる。処
理回路460−1、処理回路460−2、処理回路48
0−1、処理回路480−2、処理回路480−3から
なる回路構成のように、再構成ハードウェア部46は、
同一の機能が複数個ある回路構成や、異なる機能が複数
個ある回路構成による並列処理が可能である。また、処
理回路480の内部構成のように、複数個の異なる機能
機能間で入出力データをパイプライン的にやり取りする
パイプライン的な動作も可能である。展開処理IDがC
ode Aに対応する処理回路460と展開処理IDが
Code Gに対応する処理回路470のさらに詳しい
構成と動作について説明する。〓 (i)展開処理IDがCode Aに対応する処理回路 処理回路460は、変換処理部3が生成した、図形に対
する中間データを処理する。台形描画回路461は、入
力した中間データをなす台形データ(sx,sy,x
0,x1,x2,h)を、図26に示されるような4点
からなるデータ形式に変換して台形領域を描画する。図
27に、台形描画回路461の機能ブロック図を示す。
中間データ入力部463は、入力バッファから1つ1つ
の台形をなすデータを読み込んで、座標計算部A464
および座標計算部B465に台形データを出力する。座
標計算部A464は、台形の左側のエッジ(図26のエ
ッジP0,P1)の座標計算を担当し、エッジ上の座標
値をP0からP1に向かって順に出力する。座標計算部
B465は、台形の右側のエッジ(図26のエッジP2
P3)の座標計算を担当し、エッジ上の座標値をP2か
らP3に向かって順に出力する。エッジ描画部466
は、座標計算部A464及び座標計算部B465から入
力される座標値により、台形のx軸に平行な直線を描画
する。図28に、座標計算部の機能ブロック図を示す。
入力された台形データ(sx,sy,x0,x1,x
2,h)はDDAパラメータ計算部467で4点の台形
データ(P0,P1,P2,P3)に変換されて、傾き
や残差の初期値などのDDAのパラメータを計算し、D
DA処理部468に出力する。DDA処理部468は、
入力されたパラメータに基づいてDDA処理を行い、最
後に求めた点に対する移動方向と移動量を出力する。座
標更新部469は、入力された移動方向と移動量から現
在保持している座標値を更新して出力する。座標の初期
値は、中間データ入力部463によって設定される。図
29は、エッジ描画部466のブロック図である。エッ
ジ描画部466は、座標値A/B及び色情報を入力して
台形の内部領域を塗りつぶす。アドレス計算部470
は、座標値A/Bを入力して、描画するエッジ成分のア
ドレスを計算する。マスク演算部471は、座標値A/
Bの値を入力して、描画するワード中の有効なビットを
表すマスクを出力する。データ演算部472は、固定的
な色を表す色データを入力し、この値をワード分に展開
してスクリーン処理回路に出力し、スクリーン処理した
結果をRmodW部473に出力する。RmodW部4
73は、入力されたアドレス、マスク、データを用いて
以下の処理をすることにより描画を行なう。まず、アド
レスにより、バンドバッファをリードする。これにより
読み込まれたデータをSource、マスクデータをM
ask、描画データをDataとすると、(Mask*
Data+Mask#*Source)の値を演算して
同一アドレスに書き戻す。ただし、*は論理積、+は論
理和、#は論理否定をそれぞれ表す。この処理は、描画
するエッジが含まれるワード毎に繰り返し行われる。ま
たスクリーン処理回路462は、最終的なガンマ補正と
ハーフトーンを行うための処理であり、図形を出力する
場合に最適化したスクリーンパターンが設定されてい
る。展開処理IDがCode Bの場合には、スクリー
ン処理が、最終的なガンマ補正とハーフトーンを行うた
め処理であり、文字を出力する場合に最適化したスクリ
ーンパターンが設定されている。〓 (ii)展開処理IDがCode Gに対応する処理回
路 処理回路480は、中間データが画素毎に色の異なる画
像を入力し、表2のCode G示されるような様々な
画像処理を行なう。画像処理は、処理の組み合わせが、
(伸長処理、解像度変換、色空間変換、台形処理、スク
リーン)の場合の処理回路を説明する。〓 (伸長処理回路481)入力された中間データである画
像が、圧縮されており、伸長処理を要する場合には、伸
張処理回路481は中間データをJPEG等のアルゴリ
ズムにより伸長処理する。図30に、伸長処理回路48
1の機能ブロック図を示す。中間データ入力部481−
1は現在入力中の入力バッファから圧縮された画像デー
タである中間データを入力する。ハフマン復号化部48
1−2は内臓されているハフマン復号化テーブルをもと
に圧縮データをデコードする。逆量子化部481−3
は、ハフマン復号化部481−2から入力されるデータ
を、内臓されている量子化テーブルをもとに、逆量子化
して出力する。逆DCT部481−4は、逆量子化部4
81−3から入力されるデータを、逆DCT変換式によ
って変換して出力する。書き込み部481−5は逆DC
T部によって復号化された画像データをワーク領域42
4に書き込む。〓 (解像度変換回路482)図31に、解像度変換回路4
82の機能ブロック図を示す。画素データ入力部482
−1は伸長処理した結果が書き込まれたワーク領域42
4から画素データを読み出す。画素の読み出しは、解像
度変換式(1)の逆変換によって現在計算を行なってい
る画素の補間に必要な入力画素のみを読み出す。補間処
理部482−2では、入力された画素データから変換後
の画素の輝度をそれぞれの色成分について補間する。補
完アルゴリズムは線形補間法により行なう。画素アドレ
ス計算部482−3では、現在計算中の画素の座標から
ワーク領域424の書き込みアドレスを計算する。書き
込み部では、画素アドレスと補間データをもとに新しい
画素の値を書き込む。ワーク領域424上で、入力画像
と出力画像が割り当てられている領域は異なる領域であ
る。〓 (色空間変換回路483)図32に、色空間変換回路4
83の機能ブロック図を示す。色空間変換は、RGB空
間の入力画像を印刷色であるCMYK空間への変換を行
なう。画素データ入力部483−1は、アフィン変換さ
れた結果を格納するワーク領域424上の画素データを
1画素毎に入力する。テーブル変換部483−2はRG
B画像データを入力して、CYMK各色の画像データを
出力する。本実施例ではCMYK色を色毎に処理するの
で、一度に1色の変換テーブルしか必要としない。4色
同時に処理したい場合には、4色分の変換テーブルを内
蔵する。また、変換テーブルはテーブル変換部452内
に内臓され、テーブルの容量を削減するためにRGB各
色につき9点の代表点をテーブルのアドレスとして持
ち、さらに詳細なアドレス部による変換の値は次の補間
処理部483−3で行なう。補間処理部483−3で
は、変換するRGB色空間の1点を囲む6点の代表点か
ら3次元での線形補間処理により、詳細な変換値を求め
る。この過程を示したものが、図33である。変換した
いRGB空間の点Pに対して、テーブル変換部483−
2で点Pを囲む3角柱の頂点となるような6点(a,
b,c,d,e,f)の変換値をルックアップテーブル
で求め、これをもとに線形補間を行なう。書き込み部4
83−4は画素データ入力部483−1が入力した同一
アドレスに変換結果を上書きする。〓 (台形処理回路484)画像データを台形領域に描画す
るための台形描画回路484の構成は、基本的に、図2
7に示した文字及び図形の台形処理のための機能ブロッ
クと同じである。台形領域への画像の貼り付けは、図8
(b)に示したようになる。このとき、図27での画像
の描画に特有の相違点は、中間データ入力部463は、
画像データをワーク領域424から入力し、エッジ描画
部466に画像データを出力する。台形データを表す中
間データは入力バッファから入力する。エッジ描画部4
66は、文字及び図形の場合と同様に、現在出力中のバ
ンドバッファに出力画像を書き込む。〓 (スクリーン処理回路485)スクリーンは、データと
して保持している1色あたりの色数が、プリンタで表現
できる1色あたりの色数より多い場合に、プリンタで表
現できる色数の色値に変換すための処理である。この代
表的な処理は、ハーフトーン処理と呼ばれ、ハーフトー
ンマトリックスというNxMの閾値データを持ち、その
データと画像データを色ごとに比較して、プリンタの色
ごとの色値を決定するというものである。例えば1色あ
たり1bitのプリンタに1色あたり8bitで表現さ
れた画像データを処理する場合、NxMの閾値データの
ハーフトーンマトリックスには、0〜255までの任意
の値が記憶されている。そして実際の画像データの値と
その画像の位置によって決まるハーフトーンマトリック
ス閾値データとを比較して、もし画像データのほうが大
きければ、そのピクセルを印字する色値を出力して、そ
うでなければ、そのピクセルを印字しない色値を出力す
る。以上が、処理するオブジェクトが画像データであ
り、展開処理IDがCodeGに対応する処理の組み合
わせ(伸長処理、解像度変換、色空間変換、台形処理、
スクリーン)に対応した処理回路480の構成及びそれ
が行なう処理内容である。再構成ハードウェア部46は
アービトレーション部45を通じてメモリとの間で入出
力を行ない展開結果をバンドバッファに格納する。〓 (展開処理部のアクセラレータとしての利用)本実施例
では、中間データ生成の処理を中間データ生成部31で
処理するように説明したが、この中間データ生成処理
を、展開処理部4のハードウエア構成を変えることによ
って再構成可能展開部40に実行させることも可能であ
る。これを図34を使って説明する。例えば、中間デー
タ生成部の命令実行部311に入力されたLZW圧縮さ
れた画像は、従来画像処理部312によってLZWで伸
張し、マトリックス演算を行い、LZWで圧縮してバン
ド分解管理部219へ送っていた。この処理を、画像処
理部312に代わって展開処理部4のもつ再構成可能展
開部40によって行わせるというものである。このよう
な処理を行う再構成データを展開処理IDとともに構成
データ管理部41にあらかじめ登録しておき、画像処理
部312に処理する画像が入力されたら、画像処理部3
12が処理の内容を解釈して、再構成可能展開部40へ
展開処理IDと入力画像データを送る。再構成可能展開
部40では、送られてきた展開処理IDによって、構成
データ管理部から構成データを取得して、内部の再構成
可能ハードウエアを再構成する。その後画像処理の手順
に従って、送られてきた入力画像データを再構成可能ハ
ードウエアを使って処理して、その処理結果として作成
された画像データを画像処理部312へ送り返す。この
ような構成によって、再構成可能展開部40の再構成可
能資源を有効利用することができる。〓 (再構成ハードウェアの部分書き換え)ここまで説明し
た再構成制御部41が行なう再構成ハードウェア部46
の書き換えに関しては、すべてのハードウェア資源を書
き換えることを前提にしてきたが、再構成ハードウェア
部46を必要に応じて部分的に書き換える方法も考えら
れる。部分的な再構成ハードウェア部46の書換えを前
提とした再構成制御部41の制御方法について説明す
る。この場合、図10のデータ構造を生成する際に並列
処理可能なすべてのオブジェクトを1つの集まりとし、
ハードウェア構成IDは必要ない。部分的な再構成ハー
ドウェア部43の書換えを行なう場合に再構成制御部4
1が行なう処理のフローチャートを図35に示す。図3
5は、再構成制御部41が1つの並列処理可能なオブジ
ェクトの集まりに対して行なう制御フローである。再構
成制御部41が行なう制御フローはS18からS25の
8つのステップからなる。まず、S18において、次に
処理するオブジェクトの展開処理IDを入力する。S1
9において、再構成ハードウェア部46のリソースに入
力した展開処理IDに対応する構成データを書き込むだ
けの空きがあるかどうかを調べる。空きがあれば、S2
1に飛び、空きがなければS20に進む。S20におい
て、再構成可能ハードウェア部46が処理中のある部分
的な処理が終わるまで待つ。S21において、構成デー
タの部分的書き換えが必要かどうかを調べる。再構成可
能ハードウェア部46が終えた処理と次の処理の展開処
理IDが同じであれば、部分的書換えの必要はない。部
分的書換えの必要がなければ、S24へ飛ぶ。部分的書
換えの必要があれば、S22へ進む。。S22において
構成データ管理部42から入力した展開処理IDに対応
する構成データを読み出し、S23において読み出され
た構成データを再構成ハードウェア部46に部分的に書
き込む。S24において、再構成ハードウェア部46
に、部分的な書き込みが終わり処理の開始が可能になっ
たことを知らせるために同期信号を送る。S25におい
て、現在処理している並列処理可能なオブジェクトの集
まりにまだオブジェクトデータがあるかどうかを調べ
る。あれば、S18に戻り、なければ終了する。終了し
たら、再構成ハードウェア部46におけるすべてのオブ
ジェクトの展開処理が終わるのを待って、再び新しい組
の並列処理可能なオブジェクトの集合に対して、図35
の制御フローを繰り返す。 [実施例2]図36は本発明による実施例2の構成を表
すブロック図である。図36において画像処理装置は、
印刷データ作成部1と、印刷データ入力部2と、変換処
理部3と、展開処理部4と、出力部5とから構成されて
いる。さらに、変換処理部3は、字句解析部30と、中
間データ生成部31と、中間データ最適化部34と、中
間データ再構成部35と、中間データ記憶部33とから
構成され、展開処理部4は、再構成可能展開部40と、
再構成制御部41と、構成データ管理部42とから構成
されている。上記の構成の内、印刷データ作成部1と、
印刷データ入力部2と、展開処理部4と、出力部5は先
の実施例1での構成と同じものであるため、ここでは説
明を省略する。変換処理部3は、印刷データ入力部2よ
り入力された印刷データから展開処理部4における印字
データへの展開処理可能な中間データを生成するもので
あり、字句解析部30と、中間データ生成部31と、中
間データ最適化部34と、中間データ再構成部35と、
中間データ記憶部33とからなる。このうち、字句解析
部30と中間データ生成部31と、中間データ記憶部3
3は、先の実施例1での構成と同じものであるため、こ
こでも説明を省略する。中間データ最適化部34は、中
間データ生成部31でページ記述言語に書かれている順
番に生成したバンド分割後の描画命令毎の中間データ
(以下、オブジェクトとも言う。)を、バンド毎になる
べく同じ描画命令の中間データが続くように並び換えを
行う。これは、展開処理部4での再構成可能な回路に対
する再構成の回数を少なくして、高速な処理を可能にす
るためである。並び換えの処理は、バンド毎に各描画命
令毎の中間データの外接矩形を比較して、重なりの有無
を判定し、その結果に基づいて並び換えが可能な場合、
同じ描画命令の中間データが続くように並び換えを行
い、並び換えが不可能な場合にはそののままの順番で中
間データ記憶部33に中間データを書き込むというもの
である。このように、重なりがあるかないかで描画命令
の順番を並び換えできるかどうかの判断が必要な理由
は、PDLではオペークと呼ばれるイメージングモデル
を採用しているためで、同じ場所に複数の描画が行われ
た場合に、最後に描かれた描画命令のみが結果として残
るという特徴のためである。中間データ再構成部35
は、中間データ最適化部34において描画種類毎にまと
められた中間データの状況に応じて、処理を行うか、処
理をスキップするか判断する。中間データ最適化部34
に前もって設定された閾値と比較して、もし中間データ
最適化部34の並び換えだけで、展開処理部4での再構
成可能な回路に対する再構成の回数が十分に少ないと判
断された場合には、処理をスキップするが、十分でない
と判断された場合には、中間データ記憶部33からバン
ド単位に中間データを読み出し、バンド単位で各中間デ
ータ同士の重なりを取り除く処理を行い、その結果の中
間データを生成する。その中間データ同士は全く重なり
がないので、完全に描画種類毎にまとめて中間データを
再構築して、再びバンド単位に中間データ記憶部33へ
書き込みを行う。この処理をバンド数分繰り返す。次に
上述したように構成された印刷処理装置における印刷デ
ータの流れについて整理する。印刷データ作成部1で作
成された印刷データは、印刷データ入力部2を介して、
変換処理部3の字句解析部30に入力される。字句解析
部30において印刷データから切り出されたトークン
は、中間データ生成部31に入力される。中間データ生
成部31により生成されたバンド単位に分割された中間
データは中間データ最適化部34に入力され、なるべく
同じ描画命令が続くように中間データの並び換えが行わ
れ、バンド単位に中間データ記憶部33に書き込まれ
る。必要に応じて中間データ記憶部33からバンド単位
に読み出された中間データは、中間データ再構成部35
に入力され、完全に描画命令毎にまとめられた中間デー
タに再構築され、再びバンド単位に中間データ記憶部3
3に書き込まれる。展開処理部4および出力処理部5
は、先の実施例1での構成と同じものであるため、ここ
でも説明を省略する。以上、本発明の画像処理装置の概
要について記述した。次に、この画像処理装置の主要部
の詳細について説明する。ここでは主に、実施例1と構
成の異なる生成処理部3中の中間データ最適化部34
と、中間データ再構成部35について説明する。初め
に、中間データ最適化部34について詳細を説明する。
図37は中間データ最適化部34の構成を示す。中間デ
ータ最適化部34は、バンド番号判定部326およびバ
ンド数に一致する数の区分中間データ最適化部327か
ら構成される。図37は、1ページが4つのバンドに区
分され、バンド数4に一致する4つの区分中間データ最
適化部327で中間データ最適化部34が構成されてい
ることを示す。バンド番号判定部326は、バンド分解
部319から転送されるオブジェクトに包含されている
バンドIDを判別して、当該バンドIDに対応する区分
中間データ最適化部327に係るオブジェクトを転送す
る。図38は区分中間データ最適化部327の構成を示
す(便宜上2つの区分中間データ最適化部327のみ図
示している)。区分中間データ最適化部327は、ラッ
チ処理部3271、外接矩形重なり判定部3272、出
力バッファ3273および外接矩形集合記憶部3274
から構成される。ラッチ処理部3271は、バンド番号
判定部326から転送された中間データたるオブジェク
トを保持する。外接矩形重なり判定部3272は、ラッ
チ処理部3271によって保持された各オブジェクトの
外接矩形の重なりを判定する。また、外接矩形重なり判
定部3272は、後述する手続きに基づいて出力バッフ
ァ3273にオブジェクトを追加し、または出力バッフ
ァ3273をフラッシュする。出力バッファ3273
は、逐次処理を可能とするために図39のように各処理
種別毎に、すなわち展開処理ID毎にいわゆる先入れ先
出し方式の出力バッファ群によって構成される。外接矩
形集合記憶部3274は、外接矩形重なり判定部327
2において外接矩形の重なりが判定された各オブジェク
トの外接矩形データの集合をビットマップとして保持す
る(以下、このビットマップとして保持された各オブジ
ェクトの外接矩形データの集合を外接矩形集合と呼ぶこ
とにする)。当該外接矩形集合は、外接矩形重なり判定
部3272における外接矩形の重なり判定に用いられ
る。外接矩形の重なり判定において、各オブジェクトに
ついての重なりが判定されるべき外接矩形データを以下
被検査対象外接矩形と呼ぶことにする。また、被検査対
象外接矩形に対応するオブジェクトを被検査対象オブジ
ェクトと呼ぶことにする。被検査対象オブジェクトの直
前に処理したオブジェクトの展開処理IDを保持するた
めに、外接矩形重なり判定部3272に展開処理IDレ
ジスタを設ける。外接矩形の重なりは、被検査対象外接
矩形が外接矩形集合に重なる場合(a)または被検査対
象外接矩形が外接矩形集合に重ならない場合(b)と
(図40参照)、被検査対象オブジェクトの処理種別と
当該被検査対象オブジェクトを処理する直前に処理した
オブジェクトの処理種別、すなわち展開処理IDレジス
タによって示される処理種別が同一であるかどうかによ
って、図41のように4つの態様に分けられる。以下
に、図42を用いて各バンド毎に行われる中間データ最
適化の手続き、すなわち各区分中間データ最適化部32
7における台形データの再配置の処理手続きについて説
明する。 (1)外接矩形重なり判定部3272ほかの初期化(S
26)。 外接矩形重なり判定部3272の有する展開処理IDレ
ジスタをクリアする。外接矩形集合記憶部3274の保
持するビットマップをクリアする。出力バッファ327
3の各展開処理ID毎のバッファをクリアする。 (2)オブジェクトのラッチ処理(S27)。 ラッチ処理部3271は、バンド番号判定部326から
転送されたバンド毎のオブジェクトを保持する。この保
持されたオブジェクトは被検査対象オブジェクトであ
る。 (3)処理種別の同一性の判定(S28)。 外接矩形重なり判定部3272は、ラッチ処理部327
1から保持された被検査対象オブジェクトの処理種別と
直前に処理したオブジェクトの処理種別との同一性を判
定する。つまり、被検査対象オブジェクトの展開処理I
Dと展開処理IDレジスタに保持されている展開処理I
Dとの同一性を判断する。処理種別が同一である場合、
展開処理IDレジスタの値を被検査対象オブジェクトの
展開処理IDで更新して、S30の処理に移る。一方、
処理種別が相違する場合、展開処理IDレジスタの値を
被検査対象オブジェクトの展開処理IDで更新して、S
29の処理に移る。図43は処理種別の同一性の判定に
おけるラッチ処理部3271と外接矩形重なり判定部3
272の展開処理IDレジスタの様子を示す。例えば、
ラッチ処理部3271に展開処理IDがCode Aで
あるオブジェクト1、展開処理IDがCode Aであ
るオブジェクト2および展開処理IDがCode Bで
あるオブジェクト3が順次保持された場合、オブジェク
ト2が被検査対象オブジェクトであるとき、展開処理I
Dレジスタの値はCode Aであり、処理種別が同一
と判定される。また、オブジェクト3が被検査対象オブ
ジェクトであるとき、展開処理IDレジスタの値はCo
de Bであり、処理種別は相違すると判定される。な
お、ラッチ処理部3271に保持された最初のオブジェ
クトに対して処理する場合、展開処理IDレジスタはク
リアされている状態であるので、展開処理IDレジスタ
の値を被検査対象オブジェクトの展開処理IDで更新し
て、直ちにS30の処理に移る。 (4)外接矩形の重なりの判定(S29)。 外接矩形重なり判定部3272は、被検査対象外接矩形
と外接矩形集合記憶部3274の保持する外接矩形集合
との論理積を演算することによって、両者の重なりを判
定する。被検査対象外接矩形が外接矩形集合に重なる場
合(a)、S31の処理に移る。一方、被検査対象外接
矩形が外接矩形集合に重ならない場合(b)、S30の
処理に移る。 (5)オブジェクトの連結処理(S30)。 被検査対象外接矩形に対応するビットマップ・データと
外接矩形集合記憶部3274の保持するビットマップ・
データとの論理和を演算して、その結果で外接矩形集合
記憶部3274のビットマップを更新する。被検査対象
オブジェクトを出力バッファ3273の展開処理IDに
対応する出力バッファに追加する。続いて、S32の処
理に移る。例えば、図44は外接矩形集合記憶部327
4におけるビットマップの更新処理の様子を示す。被検
査対象外接矩形は、外接矩形集合との論理和が演算さ
れ、その結果でビットマップが更新される。また、オブ
ジェクト1に続いて、外接矩形が重ならないオブジェク
ト2がラッチ処理部3271に保持された場合、図39
のように先入れ先出し方式で、オブジェクト2はオブジ
ェクト1に連結される。 (6)バッファフラッシュ処理(S31)。 外接矩形集合記憶部3274のビットマップをクリアす
る。所定の順序で出力バッファ3273の各展開処理I
D毎のバッファに保持されているオブジェクトを中間デ
ータ記憶部33に転送する。続いて、S13gの処理に
移る。 (7)処理すべきオブジェクトの有無の検査(S3
2)。 ラッチ処理部3271は、バンド番号判定部326から
転送されたオブジェクトがバンド毎のオブジェクトの終
了を示すEODであるか否かを判断することによって、
処理すべきオブジェクトの有無を検査する。処理すべき
オブジェクトが存在する場合、S27の処理に移る。一
方、処理すべきオブジェクトが存在しない場合、処理を
終える。また、展開処理部4が同一あるいは異なる構成
データの処理を並列に、すなわち同時に複数処理するこ
とができる場合、区分中間データ最適化部327を以下
のように構成して動作させることもできる。まず、図4
5に示すように外接矩形集合記憶部3274は、層毎の
外接矩形の頂点の座標をリスト形式で保持するように構
成される。ここで、外接矩形重なり判定部3272にお
ける外接矩形の重なりによって区別される単一または複
数のオブジェクト毎の処理の単位を層と呼ぶことにす
る。各層におけるオブジェクトは相互に重なりがない。
また、図46に示すように出力バッファ3273は、層
番号を付加したオブジェクトをリスト形式で保持するよ
うに構成される。当該層番号のデータは、オブジェクト
が出力バッファ3273から中間データ記憶部33に転
送されるときに削除される。ここでは、外接矩形重なり
判定部3272に展開処理IDレジスタは不要である。
外接矩形重なり判定部3272は、層の総数の値を保持
する層総数レジスタ、処理中の層番号の値を保持するた
めのカレント層レジスタおよび外接矩形集合記憶部32
74に保持される各層ごとの外接矩形頂点座標のリスト
形式のデータの最後尾のデータを保持するため外接矩形
レジスタを備える。図47に示す手順に従って、以下の
ようにオブジェクトの並びを最適化する。 (1)外接矩形重なり判定部3272ほかの初期化(S
33)。 外接矩形重なり判定部3272の層総数レジスタおよび
カレント層レジスタの値を0とする。外接矩形レジス
タ、外接矩形集合記憶部3274および出力バッファ3
273をクリアする。 (2)オブジェクトのラッチ処理(S34)。 ラッチ処理部3271は、バンド番号判定部326から
転送されたバンド毎のオブジェクトを保持する。この保
持されたオブジェクトは被検査対象オブジェクトであ
る。 (3)外接矩形の重なり判定(S35)。 外接矩形重なり判定部3272は、ラッチ処理部327
1に保持されている被検査対象オブジェクトの外接矩形
と、外接矩形レジスタに保持されている外接矩形との重
なりを判断する。外接矩形が重なる場合、S36の処理
に移る。一方、外接矩形が重ならない場合、S37の処
理に移る。図48は外接矩形の重なりによる層の様子を
示す。例えば、オブジェクト1、オブジェクト2および
オブジェクト3が順次ラッチ処理部3271に保持され
た場合、オブジェクト1の外接矩形とオブジェクト2の
外接矩形とが重ならない場合、層は同一である。ここで
は、オブジェクト1およびオブジェクト2は第1層に属
する。また、オブジェクト2の外接矩形とオブジェクト
3の外接矩形とが重なるとき、オブジェクト3はオブジ
ェクト2とは異なる層に属する。ここでは、オブジェク
ト3は第2層に属する。 (4)オブジェクトのリスト追加処理(S36)。 層総数レジスタの保持する値をインクリメントする。被
検査対象オブジェクトの外接矩形を外接矩形集合記憶部
3274のリスト・データの最後尾データとして追加
し、当該外接矩形データを外接矩形レジスタの内容とす
る。また、被検査対象オブジェクトを、層総数レジスタ
の保持する値を層番号として付加して、出力バッファ3
273のリスト・データの最後尾データとして追加す
る。図49は、被検査対象オブジェクトの出力バッファ
3273のリスト・データへの追加前後の様子を示す。
層総数レジスタが1から2にインクリメントされ、被検
査対象オブジェクトたるオブジェクト3はオブジェクト
2に後続するように追加される。このとき、層番号2が
オブジェクト3に付加される。 (5)オブジェクトのリスト挿入処理(S37)。 図50は、以下のオブジェクトのリスト挿入処理(S3
7)の詳細な処理手順を示す。 (5.1)カレント層レジスタの初期化(S39)。 カレント層レジスタの値を1とする。 (5.2)外接矩形の重なり判定(S40)。 外接矩形重なり判定部3272は、被検査対象オブジェ
クトの外接矩形と、外接矩形集合記憶部3274に保持
されている、カレント層レジスタの保持している層番号
に対応する外接矩形との重なりを判定する。重なりがあ
る場合、S41の処理に移る。一方、重なりがない場
合、S42の処理に移る。 (5.3)カレント層レジスタのインクリメント(S4
1) 外接矩形重なり判定部3272は、カレント層レジスタ
の保持する値をインクリメントし、S40の処理に移
る。 (5.4)外接矩形頂点座標の更新(S42)。 外接矩形重なり判定部3272は、被検査対象オブジェ
クトの外接矩形によって、外接矩形集合記憶部3274
に保持されている、カレント層レジスタの保持している
層番号に対応する外接矩形頂点座標を更新する。図51
は外接矩形頂点座標の更新前後の様子を示す。例えば、
オブジェクト1に続いて、オブジェクト1の外接矩形と
は外接矩形が重ならないオブジェクト2がラッチ処理部
3271に保持された場合、カレント層レジスタが1で
あり、外接矩形集合記憶部3274に保持されている第
1層に対応する外接矩形頂点座標(図51の上段のハッ
チされた矩形)がオブジェクト1の外接矩形の座標を意
味するとき、被検査対象外接矩形すなわちオブジェクト
2の外接矩形(図51の実線の矩形)を包含する外接矩
形(図51の破線の矩形)が演算され、その演算結果を
第1層に対応する更新後の外接矩形(図51の下段のハ
ッチされた矩形)として、外接矩形集合記憶部3274
に保持する。 (5.5)オブジェクトのリスト挿入処理(S43) 外接矩形重なり判定部3272は、被検査対象オブジェ
クトをカレント層レジスタの保持している層番号に対応
する層の最後尾のオブジェクトとして出力バッファ32
73のリストに追加する。このとき、当該オブジェクト
には層番号が付加される。図52はオブジェクトのリス
ト挿入処理前後の様子を示す。カレント層レジスタが1
である場合、オブジェクト4は、層番号が1であるオブ
ジェクト2の後、かつ層番号が2であるオブジェクト3
の前に挿入される。このとき、オブジェクト4は層番号
1が付加される。 (6)処理すべきオブジェクトの有無の検査(S3
8)。 ラッチ処理部3271は、バンド番号判定部326から
転送されたオブジェクトがバンド毎のオブジェクトの終
了を示すEODであるか否かを判断することによって、
処理すべきオブジェクトの有無を検査する。処理すべき
オブジェクトが存在する場合、S34の処理に移る。一
方、処理すべきオブジェクトが存在しない場合、処理を
終える。なお、出力バッファ3273にリスト形式で保
持されているオブジェクトは、層毎に所定の順序で中間
データ記憶部33に転送され、並列処理される。最後に
中間データ再構成部35について詳細を説明する。中間
データの再構成、すなわち台形データの重なり除去は、
図53で示す中間データ再構成部35によって行われ
る。中間データ再構成部35は、ページ終了判定部33
1およびバンド数に一致する数の区分中間データ再構成
部332から構成される。図53は、1ページが4つの
バンドに区分され、バンド数4に一致する4つの区分中
間データ再構成部332で中間データ再構成部35が構
成されていることを示す。図54は、中間データ再構成
の処理手順を示す。まず、ページ終了判定部331は、
中間データ最適化部34のすべてのラッチ処理部327
1が各バンドにおける処理すべきオブジェクトの終了を
示すEODを保持しているか否かなど中間データ最適化
部34が1ページ分のデータを中間データ記憶部33に
転送しているかどうかによって、ページの終了か否かを
判別して、すべての区分中間データ再構成部332の動
作開始を指示する(S44)。区分中間データ再構成部
332は、中間データ記憶部33から各バンドに対応す
る中間データを再構成し、その結果を中間データ記憶部
33の各バンドに対応する部分に転送する(S45)。
以下に区分中間データ再構成部332の構成とS35の
手続きを詳説する。図55は区分中間データ再構成部3
32の構成の一例を示す。区分中間データ再構成部33
2は、中間データ転送部3321、入力バンドバッファ
3322、フェッチ処理部3323、台形重なり判定部
3324、台形データ再分割部3325および出力バン
ドバッファ3326によって構成される。中間データ転
送部3321は中間データ記憶部33から中間データを
入力バンドバッファ3322に転送し、また出力バンド
バッファ3326から中間データ記憶部33に再構成さ
れた中間データを転送する。入力バンドバッファ332
2はいわゆる先入れ先出し方式のバンドバッファとして
構成され、中間データたるオブジェクトを保持する。フ
ェッチ処理部3323は、入力バンドバッファ3322
に保持されているオブジェクトを台形重なり判定部33
24に転送する。台形重なり判定部3324は、後述す
る手順に従い各オブジェクトの台形データの重なりを判
定する。台形重なり判定部332は出力バンドバッファ
3326におけるオブジェクトの位置を示すためのイン
デックス保持レジスタReg CURを持つ。台形デー
タ再分割部3325は出力バンドバッファ3326に保
持されているオブジェクトのすべての台形データとフェ
ッチ処理部3323によって台形重なり判定部3324
に転送されたオブジェクトの台形データとが重ならない
ように台形データを再分割する。出力バンドバッファ3
326は、台形データの重なりがないオブジェクトを保
持する。出力バンドバッファ3326においてオブジェ
クトは、最後尾が明示されたリスト形式で保持される。
各バンド毎の中間データの再構成は、図56に示すよう
に以下の手続きによって行う。 (1)台形重なり判定部3324ほかの初期化(S4
6)。 中間データ転送部3321は中間データ記憶部33から
各バンドに対応する中間データを入力バンドバッファ3
322に転送する。出力バンドバッファ3326をクリ
アする。 (2)オブジェクトのフェッチ処理(S47)。 フェッチ処理部3323は、オブジェクトを入力バンド
バッファ3322から台形重なり判定部3324に転送
する。当該オブジェクトは被検査対象オブジェクトであ
る。 (3)台形データの重なり除去処理(S48)。 図57は以下の台形データの重なり除去処理手順の詳細
を示す。 (3.1)インデックス保持レジスタの初期化(S5
1)。 インデックス保持レジスタReg CURの内容を出力
バンドバッファ3326の先頭オブジェクトの位置を示
すインデックスとする。 (3.2)台形データの重なり判定(S52)。 台形重なり判定部3324は、被検査対象オブジェクト
を構成するすべての台形データに対して、インデックス
保持レジスタReg CURのインデックスが示す出力
バンドバッファ3326に保持されているオブジェクト
を構成するすべての台形データと重なりを検査する。重
なりがある場合、S13pの処理に移る。一方、重なり
のない場合、S54の処理に移る。 (3.3)台形データの分割処理(S53)。 台形データ再分割部3325は、台形重なり判定部33
24によって被検査対象オブジェクトの台形データと重
なったと判断された、出力バンドバッファ3326に保
持されている台形データをさらに台形データに分割し、
重なっている部分に相当する台形データを除去する。図
58は台形データの重なり除去処理前後の様子を示す。
被検査対象オブジェクトがオブジェクト2であり、オブ
ジェクト1の台形データと重なっている場合、オブジェ
クト1の台形データは図58のように分割され、オブジ
ェクト1のもとの台形データのオブジェクト2の台形デ
ータと重なり合う部分は除去される。ここで、オブジェ
クト2の台形データ自身には変更はない。このようにし
て、結局被検査対象オブジェクトの台形データが上書き
にするように重なりを除去する。 (3.4)インデックス保持レジスタの更新処理(S5
4)。 インデックス保持レジスタReg CURは、後続する
オブジェクトの位置を示すインデックスを保持するよう
に値を更新する。 (3.5)処理すべきオブジェクトの有無の検査(S5
5)。 台形重なり判定部3324は、インデックス保持レジス
タReg CURの保持するインデックスが示すオブジ
ェクトが最後尾のオブジェクトであるか否かを判断する
ことによって、処理すべきオブジェクトの有無を検査す
る。処理すべきオブジェクトが存在する場合、S52の
処理に移る。一方、処理すべきオブジェクトが存在しな
い場合、S49の処理に移る。 (4)オブジェクトの追加処理(S49)。 被検査対象オブジェクトを出力バンドバッファ3326
に追加する。 (5)処理すべきオブジェクトの有無の検査(S5
0)。 フェッチ処理部3323は、入力バンドバッファ332
2にオブジェクトが存在する否かを判断することによっ
て、処理すべきオブジェクトの有無を検査する。処理す
べきオブジェクトが存在する場合、S48の処理に移
る。一方、処理すべきオブジェクトが存在しない場合、
処理を終える。なお、展開処理部4における構成データ
の書き換え回数を削減するために、S50の後に中間デ
ータ記憶部33の各バンド毎に展開処理ID毎に中間デ
ータが連続するように並び換える、あるいは各区分中間
データ再構成部332の出力バンドバッファ3326
を、中間データ最適化部34の出力バッファ3273と
同様の各展開処理IDごとのバッファとして構成し、逐
次的に各バンド毎に展開処理ID毎に中間データが連続
するように並び換えることができる。また、前述したよ
うに、1バンド内の構成データの書き換えが既定値以下
の場合は、S46からS50までの処理を省いても良
い。つまり、中間データ最適化処理の後、中間データ再
構成処理の前に中間データ記憶部33の各オブジェクト
の展開処理IDの変化する回数を計数し、その値が既定
値以下の場合、中間データ再構成の処理を省くこともで
きる。 [実施例3]図59は本発明による実施例3の構成を表
すブロック図である。図59において画像処理装置は、
印刷データ作成部1と、印刷データ入力部2と、変換処
理部3と、展開処理部4と、出力部5とから構成されて
いる。さらに、変換処理部3は、字句解析部30と、中
間データ生成部31と、並列処理判定部36と、中間デ
ータ記憶部33とから構成されている。また、展開処理
部4は、再構成可能展開部40と、再構成制御部41
と、構成データ管理部42とから構成されている。上記
の構成の内、印刷データ作成部1と、印刷データ入力部
2と、展開処理部4と、出力部5は先の実施例1での構
成と同じものであるため、ここでは説明を省略する。変
換処理部3は、印刷データ入力部2より入力された印刷
データから展開処理部4における印字データへの展開処
理可能な中間データを生成するものであり、字句解析部
30と、中間データ生成部31と、並列処理判定部36
と、中間データ記憶部33とからなる。このうち、字句
解析部30と中間データ生成部31と、中間データ記憶
部33は、先の実施例1での構成と同じものであるた
め、ここでも説明を省略する。並列処理判定部34は、
中間データ生成部31から出力される中間データを順次
読み込んで、それらの間の重なり判定を行ない、連続す
る複数の中間データ間で重なりの無いと判定された場合
には、並列処理可能な中間データのグループとして、展
開処理部4の再構成可能展開部40に書き込まれる並列
処理を行う構成データに対する識別子であるハードウェ
ア構成IDが付加して、中間データ記憶部33に出力す
る。次に上述したように構成された印刷処理装置におけ
る印刷データの流れについて整理する。印刷データ作成
部1で作成された印刷データは、印刷データ入力部2を
介して、変換処理部3の字句解析部30に入力される。
字句解析部30において印刷データから切り出されたト
ークンは、中間データ生成部31に入力される。中間デ
ータ生成部31により生成されたバンド単位に分割され
た中間データは並列処理判定部36に入力され、中間デ
ータの重なりに基づいて、並列処理可能なグループに分
けられ、中間データ記憶部33にバンド単位に1ページ
分記憶される。展開処理部4および出力処理部5は、先
の実施例1での構成と同じものであるため、ここでも説
明を省略する。以上、本発明の画像処理装置の概要につ
いて記述した。次に、この画像処理装置の主要部の詳細
について説明する。ここでは主に、実施例1と構成の異
なる変換処理部3中の並列処理判定部36について説明
する。並列処理判定部36は、中間データ生成部31か
ら出力される中間データを順次読み込んで、順次重なり
判定を行ない、連続する複数の中間データ間で重なりの
無いと判定された場合には、並列処理可能な中間データ
のグループとして、展開処理部4の再構成可能展開部4
0に書き込まれる並列処理を行う構成データに対する識
別子であるハードウェア構成IDが付加して、中間デー
タ記憶部33に出力する。並列処理判定部36における
出力データ形式は、実施例1に示した図10と同じであ
る。図10において、並列処理判定部36が出力する中
間データのデータ構造は、並列処理可能なオブジェクト
毎にまとめられている。各集合のデータは、バンドI
D、ハードウェア構成ID、オブジェクトの数、集合に
属するオブジェクトのデータからなる。図60に並列処
理判定部36の構成図を示す。図60において、361
は入力オブジェクトバッファ、362は重なり判定部、
363は構成データ付加部、364は出力オブジェクト
バッファである。入力オブジェクトバッファ361は、
オブジェクトデータを入力して格納する。オブジェクト
データを入力して格納する単位は、場合によって1つで
もよいし複数個の描画オブジェクトであってもよいし、
バンドやページなどのより大きい単位であってもよい。
重なり判定部362は、入力オブジェクトバッファ32
1に順次格納されたオブジェクトを同一のバンドIDを
持つ各オブジェクトの外接矩形の座標値を入力して、オ
ブジェクト間の重なりを判定する。オブジェクト間の重
なり判定とは、重なり判定部でバンド毎に保持している
外接矩形のうち入力されたオブジェクトのバンドIDに
対する外接矩形と入力されたオブジェクトの外接矩形と
の重なりを判定することである。今後の処理の説明は、
処理がバンド毎に独立しているので、入力されたオブジ
ェクトのバンドIDに対するバンドに絞って行う。重な
り判定部362で保持している外接矩形とは、最初は何
も無いところから始まり、次に最初に入力されたオブジ
ェクトの外接矩形になる。そして次のオブジェクトか
ら、重なり判定が行われ、もし重なりが無しと判定され
た場合には、保持している外接矩形は、自分自身と入力
されたオブジェクトの外接矩形のORした領域の外接矩
形に変更される。もし、重なりが有ると判定された場合
には、保持している外接矩形は、入力されたオブジェク
トの外接矩形で置き換えられる。重なり判定は保持して
いる外接矩形の左下座標(ldx0,ldy0),右上
座標(rux0,ruy0)、入力されたオブジェクト
の外接矩形の左下座標(ldx1,ldy1),右上座
標(rux1,ruy1)を使って行われ、次のような
式が成り立つ時は、重なり無しと判定される。## EQU3 ## Calculated as To = DSIZE × Td ÷ PAR. Here, DSIZE is the object to be processed.
The data amount of the data, Td is the unit data by one processing circuit
The time required to process a quantity, PAR, is the degree of parallelism.
FIG. 1 shows an approximate value of the data amount of the object to be processed.
The area of the circumscribed rectangle of the table No. 3 is used. In the example of FIG.
Indicates that the processing time is a candidate whose hardware configuration ID is X.
20 ms, and the hardware configuration ID is X
For a candidate, it is 30 ms. In S4,
Even the candidates with the shortest deployment time are
And select. In the example of FIG. 15, the hardware configuration ID
Is selected as the final configuration. Reorder
The unit 325 stores the finally selected hardware configuration ID and
FIG. 10 shows the data of the objects to be processed in parallel.
Is converted to the described data structure and stored in the intermediate data storage unit 33.
Output. The object data is the object ID
Is output to the object buffer 321 and the object
Object data to object buffer 321
Input from The configuration data selection unit 324 performs parallel processing.
Objects that are not selected as manageable objects
Object remains in the object buffer 321,
Object in new object buffer 321
Process described above is repeated for the combination of
And the data structure of the intermediate data shown in FIG. 10 is output.
It is. The data output by the intermediate data order control unit 32 is
Sent to the intermediate data storage unit 33,
Interprets the band ID and stores it for each band
You. The lexical analyzer 30 interprets the output command of the page.
Then, EOP (End Of Page) is the intermediate data.
Via the data generator 31 and the intermediate data order controller 32
Is sent to the intermediate data storage unit 33,
The final data of each band stored in the EOD (EOD (E
nd Of Data) is added, and the
Clarify the end of the data. This EOP is a processing unit
4 to start the processing of the expansion processing unit 4. next,
The expansion processing unit 4 will be described in detail. FIG.
FIG. 2 shows a block diagram of a configurable deployment unit 40. In the conversion processing unit 3
The generated intermediate data for each band uses the intermediate data transfer system.
It is read by the control unit 43 and the input buffer of the memory unit 410 is read.
Write to file A420 or input buffer B421
It is. The reconfiguration hardware unit 46 includes an input buffer A4
20 or read intermediate data from input buffer B421.
And expand the band buffer A422 or buffer.
Rendering is performed on the command buffer B423. Print data transfer control
The unit 44 stores the band buffer A422 or the buffer
Read print data developed from the command buffer B 423
And converts this to serial for each read word,
Output to the output unit 5 in synchronization with the serial output clock signal
You. The refresh controller 44 includes an input buffer A42
0, input buffer B421, band buffer A422,
A menu consisting of a band buffer B 423 and a work area 424
The refresh of the memory unit 42 is controlled. Arbitrage
The operation unit 45 includes a refresh control unit 47 and an intermediate data transfer unit.
Transmission control unit 43, print data transfer control unit 44,
The hardware unit 46 and the reconfiguration control unit 41
When accessing the section 410, the
Arbitration according to the priority of the assigned access
Control the operation. Input buffer and band buffer
How to use the key will be described. FIG. 17 (a) and FIG.
7 (b) are input buffer A and input buffer B, respectively.
Shows the use status of each buffer while inputting intermediate data to
Things. In FIG. 17A, it corresponds to band i.
Inputting intermediate data to the input buffer A,
Buffer B already has intermediate data corresponding to band (i-1).
Data has been entered. The reconfiguration hardware unit 46 is
The intermediate data stored in the output buffer B is read and
These are developed and drawn on the band buffer B. Bamba
Buffer A contains intermediate data corresponding to band (i-2).
The print data of the result of expanding and drawing is stored.
The character data transfer control unit 44 reads this to the output unit 5 and
I have. In FIG. 17 (b), the band (i + 1)
The corresponding intermediate data is being input to input buffer B,
The intermediate data corresponding to band i has already been stored in force buffer A.
It has been entered. The reconfiguration hardware unit 46 has an input buffer.
Reads the intermediate data stored in buffer A and displays it
Open and draw in band buffer A. Band buffer B
Expands the intermediate data corresponding to band (i-1)
Print data as a result of drawing is stored
The transfer control unit 44 reads this out to the output unit 5. Wa
The work area 424 is input by the expansion processing unit 4 from the conversion processing unit 3.
When expanding the intermediate data
Used as a typical work area. Reconfigurable deployment unit 40
Is the intermediate data output by the conversion processing unit 3 shown in FIG.
The procedure for deployment will be described. The configuration control unit 41
Hardware configuration ID and object ID
And reconstructed according to the flowchart shown in FIG.
The hardware section 46 is controlled. Performed by the configuration control unit 41
The process includes seven steps from S11 to S17. Ma
In step S11, the object to be processed next is
Enter the hardware configuration ID. Next, in S12,
Whether the configuration ID to be managed is the same as the configuration ID just processed
Check. If they are the same, rebuild the configuration data
Since it is not necessary to newly write the data in the hardware section 46,
jump. If not, the hardware configuration in S13
The configuration data is sent from the configuration data management unit 42 based on the ID.
And read the configuration data read in S14 again.
Write to the configuration hardware unit 46. In S15,
An object I to be processed is
D and sends a start signal to signal the start of the process.
You. In S16, the processing in the reconfiguration hardware unit 46 is performed.
Wait until the process is over. In S17, the currently processed
Whether there are more objects in the command to process.
Find out. If there is, the process returns to S1; otherwise, the process ends. FIG.
9 shows the configuration of the configuration data management unit 42. Conversion table
415, a hardware configuration ID is input and the configuration code is input.
The start address and data length of the storage area 411 are output.
It is a table. The configuration code storage area 411 stores the actual
Configuration data for the hardware configuration ID is stored
In the area, each entry is of variable length. 412 is a control unit
The read control unit 413 and the addition / update unit 414
You. The read control unit 413 reads from the reconstruction control unit 41.
Input the output signal and hardware configuration ID, and
Output the hardware configuration ID to the
Address of the configuration data in the configuration code storage area 411
Input data and data length. Next, the read control unit 413
Outputs the input address to the configuration code storage area 411.
Corresponding to the hardware configuration ID for the data length
Read configuration data from configuration code storage area 411
And outputs the result to the reconstruction control unit 41. Add / update unit 414
Is sent via a host computer (not shown)
Control unit to add and update configuration data
Table 415 entries and configuration code storage area 411
Add, delete, or update configuration data
I do. The configuration code storage area 411 stores a single function.
Configuration data corresponding to various circuit configurations
Configuration data corresponding to a parallel circuit configuration with multiple functions
Data, parallel circuit configuration with multiple different functions
Pipeline with multiple configuration functions and different functions
Configuration data corresponding to a typical circuit configuration. Next
The specific configuration of the reconfiguration hardware unit 46 and the processing
The contents will be described with an example. Reconfigurable hardware part
Reference numeral 46 denotes configuration data managed and stored by the configuration data management unit 42.
By writing the data under the control of the reconstruction control unit 41.
This is a processing block whose function can be changed. Scripture
Formally, the reconfiguration hardware unit 46 includes a field
Structured by a programmable gate array (FPGA)
Can be achieved. As an FPGA, for example, US Xilinx
FPGA or equivalent components can be adopted
Wear. FIG. 20 shows a reconfigurable hardware configured using an FPGA.
Hardware 46 is shown. In FIG. 20, the reconstruction hardware
The firmware 46 includes a control unit 461, an FPGA unit 462, and
And a register group 463. Register group 4
Reference numeral 63 denotes a configuration data sent from the configuration data management unit 42.
Data. FPGA unit 462 machine
The function depends on the configuration data held in the register group 462.
Is determined. The control unit 461 controls the register group 463
Data input / output and operation timing of the FPGA unit 462
This is for controlling the ringing and the like. FPGA unit 462
Is a plurality of logical blocks 462, as shown in FIG.
1, a plurality of cross point switches 4622 and a plurality of
The switch matrix 4623 is included. Argument
Processing block 4621 looks up as shown in FIG.
Table 4621A, selector 4621B and flip
It is configured to include a flop 4621C. Look up
Table 4621A contains the desired truth table.
You. The truth table and the lookup table 4621A
Input signal of the selector and the selector 4621B is a register group
463, ie, part of the configuration data
Is determined. Also, the cross point switch 46
22 and the switch matrix 4623 are respectively shown in FIG.
3 and FIG. 24. Reassembly
The functional block diagram showing the function of the configuration hardware unit 46 is as follows.
Since it is variable depending on the configuration data to be written, FIG.
In 6, the hardware configuration ID X is selected.
Of the reconfiguration hardware unit 46 using an example of
And the operation will be described. At this time, the reconfiguration hardware
46 has a configuration as shown in FIG. In FIG. 25, 4
60, 460-1, and 460-2 have the expansion processing ID of Cod.
Processing circuits corresponding to eA, 470, 470-1, 470
-2, 470-3 corresponds to Code G with expansion processing ID
Processing circuit. The internal configuration of the processing circuit 460 is
It consists of a shape drawing circuit 461 and a screen processing circuit 462.
You. The internal configuration of the processing circuit 470 is the
1. Resolution conversion circuit 472, color conversion circuit 473, trapezoidal drawing
It comprises an image circuit 474 and a screen processing circuit 475. place
Processing circuit 460-1, processing circuit 460-2, processing circuit 48
0-1, processing circuit 480-2, and processing circuit 480-3
As shown in the circuit configuration of FIG.
Circuit configuration with multiple identical functions or multiple different functions
Parallel processing can be performed by a plurality of circuit configurations. In addition,
Multiple different functions, such as the internal configuration of the
Transfer input / output data between functions in a pipeline
Pipeline-like operation is also possible. Expansion processing ID is C
The processing circuit 460 corresponding to the mode A and the expansion processing ID are
Further details of the processing circuit 470 corresponding to Code G
The configuration and operation will be described. 〓 (i) Processing circuit whose expansion processing ID corresponds to Code A The processing circuit 460 generates
Process intermediate data. The trapezoidal drawing circuit 461
Trapezoidal data (sx, sy, x
0, x1, x2, h) by four points as shown in FIG.
Is converted to a data format consisting of and a trapezoidal area is drawn. Figure
FIG. 27 shows a functional block diagram of the trapezoidal drawing circuit 461.
The intermediate data input unit 463 is one by one from the input buffer.
Is read, and a coordinate calculation unit A464 is read.
And the trapezoid data is output to the coordinate calculation unit B465. seat
The marker calculation unit A464 is provided with a trapezoidal left edge (d in FIG. 26).
(P0, P1), and coordinates on the edge
The values are output in order from P0 to P1. Coordinate calculator
B465 is the right edge of the trapezoid (edge P2 in FIG. 26).
P3) is responsible for the coordinate calculation, and the coordinate value on the edge is P2
To P3. Edge drawing unit 466
Are input from the coordinate calculation unit A464 and the coordinate calculation unit B465.
Draws a straight line parallel to the trapezoidal x-axis based on the coordinate values input
I do. FIG. 28 shows a functional block diagram of the coordinate calculation unit.
Input trapezoidal data (sx, sy, x0, x1, x
(2, h) is a trapezoid of 4 points in the DDA parameter calculator 467
It is converted to data (P0, P1, P2, P3) and the slope
Calculate DDA parameters such as initial value of residual and
Output to the DA processing unit 468. The DDA processing unit 468
Performs DDA processing based on the input parameters,
The moving direction and the moving amount with respect to the point obtained later are output. seat
The target updating unit 469 determines the current moving direction and moving amount based on the input moving direction and moving amount.
Updates the stored coordinate values and outputs them. Initial coordinates
The value is set by the intermediate data input unit 463. Figure
29 is a block diagram of the edge drawing unit 466. Edge
The drawing unit 466 inputs the coordinate values A / B and color information and
Fill the interior area of the trapezoid. Address calculator 470
Input the coordinate values A / B, and
Calculate the dress. The mask calculator 471 calculates the coordinate value A /
Enter the value of B and enter the valid bits in the word to draw
Outputs the mask to represent. The data operation unit 472 has a fixed
Color data that represents a unique color and expand this value into words
Output to the screen processing circuit and screen processed.
The result is output to RmodW section 473. RmodW part 4
73 uses the input address, mask, and data
Drawing is performed by performing the following processing. First, the ad
To read the band buffer. This
Source data read, mask data M
If Ask and the drawing data are Data, (Mask *
Data + Mask # * Source)
Write back to the same address. However, * is logical product, + is theory
Riwa and # represent logical negation, respectively. This process is
This is repeated for each word containing the edge to be processed. Ma
The screen processing circuit 462 performs final gamma correction and
This is a process for performing halftone and outputs a figure.
If the optimized screen pattern is set
You. If the deployment processing ID is Code B, the screen
Process to perform the final gamma correction and halftone
Script that is optimized for character output.
Pattern is set. 〓 (ii) The number of times the processing ID corresponds to Code G
The path processing circuit 480 determines that the intermediate data has different colors for each pixel.
Enter the image and enter various as shown in Code G in Table 2.
Perform image processing. Image processing is a combination of processing,
(Decompression processing, resolution conversion, color space conversion, trapezoid processing, screen
The processing circuit in the case of (lean) will be described. 〓 (Expansion processing circuit 481) Image which is input intermediate data
If the image is compressed and requires decompression,
The extension processing circuit 481 converts the intermediate data into an algorithm such as JPEG.
The extension process is performed by the mechanism. FIG. 30 shows a decompression processing circuit 48.
1 is a functional block diagram. Intermediate data input section 481-
1 is the image data compressed from the currently input buffer.
Input intermediate data. Huffman decoding unit 48
1-2 is based on a built-in Huffman decoding table.
To decode the compressed data. Inverse quantization section 481-3
Is the data input from the Huffman decoding unit 481-2
Is inversely quantized based on the built-in quantization table.
And output. The inverse DCT unit 481-4 is connected to the inverse quantization unit 4
Data input from 81-3 is calculated by the inverse DCT
To convert and output. The writing unit 481-5 is an inverse DC
The image data decoded by the T unit is stored in the work area 42.
Write to 4. (Resolution conversion circuit 482) FIG.
82 shows a functional block diagram of FIG. Pixel data input unit 482
-1 is the work area 42 in which the result of the decompression processing is written
4 to read pixel data. Pixel reading is resolution
Calculation is currently performed by the inverse conversion of the degree conversion equation (1).
Only the input pixels necessary for the interpolation of the target pixel are read. Interpolation processing
The conversion unit 482-2 converts the input pixel data after conversion.
Is interpolated for each color component. Supplement
The complete algorithm is performed by a linear interpolation method. Pixel address
The calculation unit 482-3 calculates the coordinates of the pixel currently being calculated.
The write address of the work area 424 is calculated. Writing
In the embedding section, a new
Write the value of the pixel. Input image on the work area 424
And the area to which the output image is assigned are different areas.
You. 〓 (Color space conversion circuit 483) FIG.
FIG. 83 shows a functional block diagram of a third embodiment. Color space conversion is RGB sky
Conversion of the input image between to CMYK space which is the print color
Now. The pixel data input unit 483-1 performs affine transformation.
The pixel data on the work area 424 that stores the
Input for each pixel. The table conversion unit 483-2 uses RG
Input B image data and convert image data of each color of CYMK
Output. In this embodiment, the CMYK colors are processed for each color.
Thus, only one color conversion table is required at a time. 4 colors
If you want to process at the same time, include the conversion table for 4 colors.
To store. The conversion table is stored in the table conversion unit 452.
Built-in, RGB each to reduce the capacity of the table
9 representative points per color as table addresses
In addition, the value of the conversion by the more detailed address
This is performed by the processing unit 483-3. In the interpolation processing unit 483-3
Are six representative points surrounding one point in the RGB color space to be converted
Calculates detailed conversion values by three-dimensional linear interpolation
You. FIG. 33 shows this process. Converted
For a point P in the RGB space, a table conversion unit 483-
6 points (a,
b, c, d, e, f) converted values into a lookup table
And linear interpolation is performed based on this. Writing unit 4
83-4 is the same input by the pixel data input unit 483-1
Overwrite the address with the conversion result. 〓 (Trapezoid processing circuit 484) Draws image data in a trapezoid area
The configuration of the trapezoidal drawing circuit 484 for the
Function block for trapezoidal processing of characters and figures shown in Fig. 7
Is the same as The paste of the image to the trapezoid area is shown in FIG.
The result is as shown in FIG. At this time, the image in FIG.
Is different from the intermediate data input unit 463 in that
Image data is input from the work area 424, and edge drawing is performed.
The image data is output to the unit 466. Inside the trapezoid data
The interim data is input from the input buffer. Edge drawing unit 4
66 is the currently output bar, as in the case of characters and graphics.
Write the output image to the command buffer. 〓 (Screen processing circuit 485) The screen
The number of colors per color held and expressed by the printer
If the number of colors per color that can be
This is a process for converting to a color value of the number of colors that can be represented. This generation
Tabular processing is called halftone processing,
It has NxM threshold data called
Compare data and image data for each color
Is to determine a color value for each. For example, one color
Or 8 bits per color on a 1-bit printer
When processing image data that has been processed, NxM threshold data
Halftone matrix can have any value from 0 to 255
Is stored. And the actual image data values
Halftone matrix determined by the position of the image
If the image data is larger than the threshold data,
If it is, output the color value to print the pixel and
Otherwise, output a color value that does not print the pixel.
You. The above is the case where the object to be processed is image data.
, The combination of the processing whose deployment processing ID corresponds to CodeG
(Decompression processing, resolution conversion, color space conversion, trapezoidal processing,
And the configuration of the processing circuit 480 corresponding to the screen)
Is the content of the processing to be performed. The reconfiguration hardware unit 46
Entry and exit from memory through arbitration unit 45
And store the result in the band buffer. 〓 (Use of expansion processing unit as accelerator) This embodiment
Then, the intermediate data generation process is performed by the intermediate data generation unit 31.
It was explained that processing was performed, but this intermediate data generation processing
By changing the hardware configuration of the expansion processing unit 4.
It is also possible to cause the reconfigurable developing unit 40 to execute
You. This will be described with reference to FIG. For example, intermediate day
LZW compression input to the instruction execution unit 311 of the data generation unit
The image obtained is expanded by the conventional image processing unit 312 in LZW.
And perform matrix operation, compress with LZW
To the disassembly management unit 219. This process is called image processing.
Reconfigurable exhibition of the expansion processing unit 4 in place of the management unit 312
This is performed by the opening 40. like this
Of reconstructed data that performs complex processing together with the expansion processing ID
Registered in advance in the data management unit 41,
When an image to be processed is input to the unit 312, the image processing unit 3
12 interprets the contents of the processing and sends it to the reconfigurable developing unit 40.
The expansion processing ID and the input image data are sent. Reconfigurable deployment
In the unit 40, the configuration is determined based on the transmitted expansion process ID.
Acquires configuration data from the data management unit and performs internal reconfiguration
Reconfigure possible hardware. Then the image processing procedure
The input image data sent can be reconstructed according to
Created as a result of processing using hardware
The transmitted image data is sent back to the image processing unit 312. this
With such a configuration, the reconfigurable deployment unit 40 can be reconfigured.
Active resources can be used effectively. 〓 (Partial rewriting of reconfiguration hardware)
Reconfiguration hardware unit 46 performed by the reconfiguration control unit 41
Rewrite all hardware resources.
Had to be replaced, but reconfigured hardware
A method of partially rewriting the part 46 as necessary may be considered.
It is. Before rewriting the partial reconfiguration hardware unit 46
The control method of the proposed reconfiguration control unit 41 will be described.
You. In this case, when generating the data structure of FIG.
All the objects that can be processed into one collection,
No hardware configuration ID is required. Partial reconstruction hardware
When rewriting the hardware unit 43, the reconfiguration control unit 4
FIG. 35 shows a flowchart of the process performed by No. 1. FIG.
5 is an object in which the reconstruction control unit 41 can execute one parallel processing.
This is a control flow performed for a group of projects. Reassembly
The control flow performed by the configuration control unit 41 is from S18 to S25.
It consists of eight steps. First, in S18, then
Input the expansion processing ID of the object to be processed. S1
In step 9, the resources of the reconfiguration hardware unit 46 are entered.
Write the configuration data corresponding to the input deployment process ID
Find out if there is space available. If there is room, S2
The process jumps to 1, and if there is no free space, the process proceeds to S20. S20 smell
A part being processed by the reconfigurable hardware unit 46
Wait until the end of the routine. In S21, the configuration data
Check if the data needs to be partially rewritten. Reconfigurable
Processing that has been completed by the functional hardware unit 46 and the development processing of the next processing
If the physical ID is the same, there is no need for partial rewriting. Department
If there is no need for partial rewriting, the process jumps to S24. Partial book
If there is a need for replacement, the process proceeds to S22. . In S22
Corresponds to the expansion processing ID input from the configuration data management unit 42
Is read out in S23,
Partially writes the reconstructed configuration data to the reconfiguration hardware unit 46.
Get in. In S24, the reconfiguration hardware unit 46
After the partial writing is completed, processing can be started.
A synchronization signal is sent to notify the fact. S25 smell
Is a collection of objects that can be processed in parallel.
Check if there is still object data in the ball
You. If there is, the process returns to S18; otherwise, the process ends. Finished
Then, all objects in the reconfiguration hardware unit 46 are
Wait for the project deployment process to finish, and then
FIG. 35 shows a set of objects that can be processed in parallel.
Is repeated. [Embodiment 2] FIG. 36 shows the structure of Embodiment 2 according to the present invention.
FIG. In FIG. 36, the image processing device
A print data creation unit 1, a print data input unit 2,
A processing unit 3, a development processing unit 4, and an output unit 5.
I have. Further, the conversion processing unit 3 includes a lexical analysis unit 30
The inter-data generating unit 31, the intermediate data optimizing unit 34,
From the inter-data reconstruction unit 35 and the intermediate data storage unit 33
The expansion processing unit 4 includes a reconfigurable expansion unit 40,
Consists of a reconfiguration control unit 41 and a configuration data management unit 42
Have been. In the above configuration, the print data creation unit 1
The print data input unit 2, the expansion processing unit 4, and the output unit 5
Since the configuration is the same as that of the first embodiment,
Description is omitted. The conversion processing unit 3 is a print data input unit 2
Print from the input print data
Generates intermediate data that can be expanded to data.
Yes, the lexical analyzer 30, the intermediate data generator 31,
An inter-data optimization unit 34, an intermediate data reconstruction unit 35,
And an intermediate data storage unit 33. Lexical analysis
Unit 30, intermediate data generation unit 31, and intermediate data storage unit 3
3 is the same as that of the first embodiment,
Here, the description is omitted. The intermediate data optimization unit 34
In the order described in the page description language by the inter-data generator 31
No. generated intermediate data for each drawing command after band division
(Hereinafter also referred to as objects) for each band
Rearrange so that the intermediate data of the same drawing command follows
Do. This corresponds to the reconfigurable circuit in the expansion processing unit 4.
Reduces the number of reconfigurations required to perform high-speed processing.
That's because. The sorting process is performed for each drawing order for each band.
Compare the circumscribed rectangle of the intermediate data for each command to determine if there is any overlap
And if sorting is possible based on the result,
Rearrange so that the intermediate data of the same drawing command continues.
If it is not possible to sort,
Writing intermediate data to the interim data storage unit 33
It is. In this way, the drawing command depends on whether there is overlap
It is necessary to determine whether or not the order can be rearranged
Is an imaging model called opaque in PDL
Is used, multiple drawing is performed in the same place
Only the last drawn command is left as a result.
This is due to the feature that Intermediate data reconstruction unit 35
Are grouped by the intermediate data optimization unit 34 for each drawing type.
Depending on the status of the intermediate data
Judge whether to skip the process. Intermediate data optimization unit 34
If the intermediate data is compared with a preset threshold
Just by rearranging the optimization unit 34, the reconstruction
It is determined that the number of reconfigurations for
If rejected, skip the process, but not enough
Is determined from the intermediate data storage unit 33,
The intermediate data is read in units of band, and each intermediate data is read in units of band.
Process to remove overlap between data
Generate interim data. The intermediate data completely overlap
Because there is no intermediate data
Reconstruct, and again to the intermediate data storage unit 33 in band units
Write. This process is repeated for the number of bands. next
The print data in the print processing apparatus configured as described above
Organize the flow of data. Created by print data creation unit 1
The generated print data is sent via the print data input unit 2
It is input to the lexical analyzer 30 of the conversion processor 3. Lexical analysis
Token cut out from print data in unit 30
Is input to the intermediate data generation unit 31. Intermediate data raw
Intermediate divided in band units generated by the component 31
The data is input to the intermediate data optimization unit 34,
Rearrange the intermediate data so that the same drawing command follows
And written to the intermediate data storage unit 33 in band units.
You. From the intermediate data storage unit 33 as necessary, in band units
The intermediate data read out by the intermediate data reconstructing unit 35
The intermediate data that is input to the
The intermediate data storage unit 3 is reconstructed in
3 is written. Expansion processing unit 4 and output processing unit 5
Is the same as the configuration in the first embodiment,
However, the description is omitted. The outline of the image processing apparatus of the present invention has been described above.
The point was described. Next, the main part of this image processing device
Will be described in detail. Here, the first embodiment is mainly the same as the first embodiment.
Intermediate data optimizing unit 34 in the generation processing unit 3 having different configurations
The intermediate data reconstruction unit 35 will be described. beginning
Next, the details of the intermediate data optimization unit 34 will be described.
FIG. 37 shows the configuration of the intermediate data optimization unit 34. Intermediate de
The data optimization unit 34 includes a band number determination unit 326 and a
Number of segmented intermediate data optimization units 327 corresponding to the number of commands
It is composed of FIG. 37 shows that one page is divided into four bands.
And the four segmented intermediate data
The intermediate data optimization unit 34 is configured by the optimization unit 327.
Indicates that The band number determination unit 326 performs band decomposition
Included in the object transferred from the unit 319
The band ID is determined, and the category corresponding to the band ID is determined.
Transfer the object related to the intermediate data optimization unit 327
You. FIG. 38 shows the configuration of the segmented intermediate data optimization unit 327.
(For convenience, only the two-partition intermediate data optimization unit 327 is shown.
Shown). The segmented intermediate data optimization unit 327
H processing unit 3271, circumscribed rectangle overlap determination unit 3272,
Force buffer 3273 and circumscribed rectangle set storage unit 3274
Consists of The latch processing unit 3271 stores the band number
Object as intermediate data transferred from the determination unit 326
Hold The circumscribed rectangle overlap determination unit 3272
Of each object held by the
Determine the overlap of the circumscribed rectangles. Also, circumscribed rectangle overlap
The setting unit 3272 outputs an output buffer based on a procedure described later.
Add objects to output 3273 or output buffer
Flash the filer 3273. Output buffer 3273
In order to enable sequential processing, as shown in FIG.
So-called first-in first-out for each type, that is, for each deployment processing ID
It is composed of an output buffer group of the output type. Circumscribed rectangle
The shape set storage unit 3274 includes a circumscribed rectangle overlap determination unit 327.
Each object for which the overlap of the circumscribed rectangle was determined in 2
A set of circumscribed rectangle data of the
(Hereinafter, each object stored as this bitmap is
A set of circumscribed rectangle data of a project is called a circumscribed rectangle set.
And). The circumscribed rectangle set is the circumscribed rectangle overlap judgment
Used to determine the overlap of the circumscribed rectangle in the part 3272
You. When determining the overlap of circumscribed rectangles,
The circumscribed rectangle data whose overlap should be determined
It is referred to as a circumscribed rectangle to be inspected. In addition,
The object corresponding to the elephant circumscribed rectangle is
Project. The object to be inspected
Holds the expansion processing ID of the previously processed object
In order for the circumscribed rectangle overlap determination unit 3272 to
Provide a resistor. The circumscribed rectangle overlaps the circumscribed object
When the rectangle overlaps the circumscribed rectangle set (a) or the pair to be inspected
When the elephant circumscribed rectangle does not overlap the circumscribed rectangle set (b)
(See FIG. 40), the processing type of the object to be inspected and
Processed immediately before processing the object to be inspected
Object processing type, that is, expansion processing ID register
Depending on whether the processing type indicated by the
Therefore, as shown in FIG. 41, it is divided into four modes. Less than
Next, the intermediate data performed for each band using FIG.
Optimization procedure, that is, each section intermediate data optimization unit 32
On the procedure for trapezoidal data rearrangement in Fig. 7
I will tell. (1) Initialization of the circumscribed rectangle overlap determination unit 3272 and others (S
26). Expansion processing ID record of the circumscribed rectangle overlap determination unit 3272
Clear the Vista. The storage of the circumscribed rectangle set storage unit 3274
Clear the bitmap you have. Output buffer 327
3. The buffer for each expansion processing ID is cleared. (2) Object latch processing (S27). The latch processing unit 3271 outputs the data from the band number determination unit 326
Holds the transferred object for each band. This protection
The object held is the object to be inspected.
You. (3) Determining the identity of the processing type (S28). The circumscribed rectangle overlap determination unit 3272 includes a latch processing unit 327
The processing type of the object to be inspected held from 1 and
Determines the identity of the processing type of the object processed immediately before.
Set. That is, the expansion processing I of the object to be inspected
D and expansion processing I held in the expansion processing ID register
Determine the identity with D. If the processing types are the same,
The value of the expansion process ID register is
After updating with the development processing ID, the process proceeds to S30. on the other hand,
If the processing types are different, the value of the
Update with the expansion processing ID of the object to be inspected,
Move to the processing of 29. FIG. 43 illustrates the determination of the identity of the processing types.
Processing unit 3271 and circumscribed rectangular overlap determination unit 3
272 shows the state of the expansion processing ID register. For example,
The expansion processing ID is Code A in the latch processing unit 3271
Certain object 1, the development processing ID is Code A
Object 2 and the expansion processing ID are Code B
When a certain object 3 is sequentially held, the object
When the object 2 is the object to be inspected,
The value of the D register is Code A, and the processing type is the same
Is determined. Also, the object 3 is the object to be inspected.
Object, the value of the expansion process ID register is Co
de B, and it is determined that the processing types are different. What
The first object held by the latch processing unit 3271
When processing is performed on the
Since it is in the reset state, the expansion processing ID register
Is updated with the expansion processing ID of the object to be inspected.
Then, the process immediately proceeds to S30. (4) Judgment of overlapping circumscribed rectangles (S29). The circumscribed rectangle overlap determination unit 3272 outputs the circumscribed rectangle to be inspected.
And the circumscribed rectangle set held by the circumscribed rectangle set storage unit 3274
By calculating the logical product of
Set. If the circumscribed rectangle to be inspected overlaps the circumscribed rectangle set
If (a), the process proceeds to S31. On the other hand,
If the rectangle does not overlap the circumscribed rectangle set (b),
Move on to processing. (5) Object connection processing (S30). Bitmap data corresponding to the circumscribed rectangle to be inspected
The bitmap stored in the circumscribed rectangle set storage unit 3274
Performs a logical OR operation with the data and sets the circumscribed rectangle set based on the result.
The bitmap of the storage unit 3274 is updated. Inspection target
Object is used as the expansion processing ID of output buffer 3273
Add to the corresponding output buffer. Subsequently, the processing of S32
Let's make sense. For example, FIG.
4 shows the state of the bitmap update process in FIG. Examination
For the circumscribed rectangle to be inspected, the logical sum with the circumscribed rectangle set is calculated.
And the bitmap is updated with the result. In addition,
Following object 1, the object whose circumscribed rectangle does not overlap
39 is held in the latch processing unit 3271, FIG.
Object 2 is an object on a first-in first-out basis.
Connected to project 1. (6) Buffer flush processing (S31). Clear the bitmap of the circumscribed rectangle set storage unit 3274
You. Each expansion processing I of the output buffer 3273 in a predetermined order
Objects stored in the buffer for each D
To the data storage unit 33. Then, in the process of S13g
Move on. (7) Inspection of existence of object to be processed (S3
2). The latch processing unit 3271 outputs the data from the band number determination unit 326
The transferred object is the end of the object for each band.
By determining whether or not the EOD indicates that the
Check for objects to process. Should be processed
If the object exists, the process proceeds to S27. one
If there is no object to process,
Finish. Further, the expansion processing unit 4 has the same or different configuration.
Process data in parallel, i.e. multiple
If it is possible, the segmented intermediate data optimization unit 327
It can also be configured and operated as follows. First, FIG.
As shown in FIG. 5, the circumscribed rectangle set storage unit 3274 stores
The coordinates of the vertices of the circumscribed rectangle are stored in a list format.
Is done. Here, the circumscribed rectangle overlap determination unit 3272
Single or multiple distinction
The unit of processing for each number of objects is called a layer.
You. Objects in each layer do not overlap each other.
As shown in FIG. 46, the output buffer 3273
Keep numbered objects in a list
It is configured as follows. The data of the layer number is an object
Is transferred from the output buffer 3273 to the intermediate data storage 33.
Deleted when sent. Here, the circumscribed rectangle overlaps
The determination unit 3272 does not need a deployment processing ID register.
The circumscribed rectangle overlap determination unit 3272 holds the value of the total number of layers.
Number of layers to register register to hold the value of the layer number being processed
Current layer register and circumscribed rectangle set storage unit 32
List of circumscribed rectangle vertex coordinates for each layer held in 74
A circumscribed rectangle to hold the last data of the format data
It has a register. According to the procedure shown in FIG.
To optimize the arrangement of objects. (1) Initialization of the circumscribed rectangle overlap determination unit 3272 and others (S
33). The layer total number register of the circumscribed rectangle overlap determination unit 3272;
The value of the current layer register is set to 0. Bounding rectangular register
Circumscribed rectangle set storage unit 3274 and output buffer 3
Clear 273. (2) Object latch processing (S34). The latch processing unit 3271 outputs the data from the band number determination unit 326
Holds the transferred object for each band. This protection
The object held is the object to be inspected.
You. (3) Overlap determination of the circumscribed rectangle (S35). The circumscribed rectangle overlap determination unit 3272 includes a latch processing unit 327
The circumscribed rectangle of the object to be inspected held in 1
Overlaps with the circumscribed rectangle held in the circumscribed rectangle register.
Judge what it is. When the circumscribed rectangles overlap, the process of S36 is performed.
Move on to On the other hand, if the circumscribed rectangles do not overlap, the process of S37 is performed.
Let's make sense. FIG. 48 shows the state of the layers due to the overlapping of the circumscribed rectangles.
Show. For example, object 1, object 2, and
Object 3 is sequentially held in the latch processing unit 3271
, The circumscribed rectangle of object 1 and object 2
If the circumscribed rectangle does not overlap, the layers are the same. here
Means that object 1 and object 2 belong to the first layer
I do. Also, the circumscribed rectangle of object 2 and the object
When the circumscribed rectangle of object 3 overlaps, object 3
Project 2 belongs to a different layer. Here, the object
3 belongs to the second layer. (4) Object list addition processing (S36). Increment the value held by the total layer number register. Suffered
A circumscribed rectangle set storage unit for the circumscribed rectangle of the inspection object
Added as the last data of 3274 list data
The circumscribed rectangle data is used as the contents of the circumscribed rectangle register.
You. In addition, the object to be inspected is stored in the layer total register.
Is added as a layer number, and the output buffer 3
273 as the last data of the list data
You. FIG. 49 shows the output buffer of the object to be inspected.
The state before and after addition to the list data of 3273 is shown.
The layer count register is incremented from 1 to 2, and
Object 3 to be inspected is an object
2 to be added. At this time, the layer number 2
Attached to object 3. (5) Object list insertion processing (S37). FIG. 50 shows the following object list insertion processing (S3).
The detailed processing procedure of 7) is shown. (5.1) Initialization of the current layer register (S39). The value of the current layer register is set to 1. (5.2) Overlap determination of circumscribed rectangles (S40). The circumscribed rectangle overlap determination unit 3272 outputs the object to be inspected.
Circumscribed rectangle of the object and stored in the circumscribed rectangle set storage unit 3274
Layer number stored in the current layer register
Is determined to overlap with the circumscribed rectangle corresponding to. There is overlap
If so, the process proceeds to S41. On the other hand, if there is no overlap
In this case, the process proceeds to S42. (5.3) Increment of current layer register (S4
1) The circumscribed rectangle overlap determination unit 3272 outputs the current layer register
Is incremented, and the process proceeds to S40.
You. (5.4) Update the circumscribed rectangular vertex coordinates (S42). The circumscribed rectangle overlap determination unit 3272 outputs the object to be inspected.
The circumscribed rectangle set storage unit 3274
Held in the current layer register
Update the circumscribed rectangle vertex coordinates corresponding to the layer number. FIG.
Shows the state before and after updating the vertex coordinates of the circumscribed rectangle. For example,
Following object 1, the circumscribed rectangle of object 1
Is the object 2 whose circumscribed rectangle does not overlap
3271, the current layer register is 1
Yes, the circumscribed rectangle set storage unit 3274 holds the
The circumscribed rectangle vertex coordinates corresponding to one layer (the upper hatch in FIG. 51)
Rectangle) indicates the coordinates of the circumscribed rectangle of object 1.
When tasting, the circumscribed rectangle or object to be inspected
A circumscribed rectangle including the circumscribed rectangle 2 (solid rectangle in FIG. 51)
The shape (the dashed rectangle in FIG. 51) is calculated, and the calculation result is
The updated circumscribed rectangle corresponding to the first layer (see the lower part of FIG.
Circumscribed rectangle set storage unit 3274
To hold. (5.5) Object List Insertion Process (S43) The circumscribed rectangle overlap determination unit 3272 outputs the
Corresponding to the layer number held in the current layer register
Output buffer 32 as the last object of the layer
73 is added to the list. At this time, the object
Is assigned a layer number. FIG. 52 shows a list of objects.
The state before and after the insertion process is shown. Current layer register is 1
, The object 4 is an object whose layer number is 1.
Object 3 after object 2 and layer number 2
Inserted before. At this time, object 4 is a layer number
1 is added. (6) Inspection of existence of object to be processed (S3
8). The latch processing unit 3271 outputs the data from the band number determination unit 326
The transferred object is the end of the object for each band.
By determining whether or not the EOD indicates that the
Check for objects to process. Should be processed
If the object exists, the process proceeds to S34. one
If there is no object to process,
Finish. Note that the data is stored in the output buffer 3273 in a list format.
The objects held are intermediate in a predetermined order for each layer.
The data is transferred to the data storage unit 33 and processed in parallel. Finally
The details of the intermediate data reconstruction unit 35 will be described. Middle
Data reconstruction, that is, trapezoidal data overlap removal,
This is performed by the intermediate data reconstruction unit 35 shown in FIG.
You. The intermediate data reconstruction unit 35 includes a page end determination unit 33
One and the number of segmented intermediate data corresponding to the number of bands
332. FIG. 53 shows that one page has four
Divided into bands and out of 4 divisions that match the number of bands 4
The intermediate data reconstruction unit 35 is configured by the inter-data reconstruction unit 332.
Indicates that it has been performed. FIG. 54 shows the intermediate data reconstruction.
The following shows the processing procedure. First, the page end determination unit 331
All latch processing units 327 of the intermediate data optimization unit 34
1 is the end of the object to be processed in each band
Intermediate data optimization such as whether or not the indicated EOD is held
Unit 34 stores one page of data in intermediate data storage unit 33
Whether the end of the page or not, depending on whether or not
It is determined that the operation of all the segmented intermediate data reconstruction units 332 is
An operation start is instructed (S44). Sectional intermediate data reconstruction unit
332 corresponds to each band from the intermediate data storage unit 33.
Reconstructs the intermediate data, and stores the result in the intermediate data storage unit.
The data is transferred to the part corresponding to each band 33 (S45).
The configuration of the sectioned intermediate data reconstruction unit 332 and S35
Explain the procedure in detail. FIG. 55 shows the sectioned intermediate data reconstruction unit 3
32 shows an example of the configuration. Sectional intermediate data reconstruction unit 33
2 is an intermediate data transfer unit 3321, an input band buffer
3322, fetch processing unit 3323, trapezoid overlap determination unit
3324, trapezoidal data subdivision unit 3325 and output bank
And a buffer 3326. Intermediate data transfer
The sending unit 3321 stores the intermediate data from the intermediate data storage unit 33.
Transfer to the input band buffer 3322 and output band
Reconstructed from buffer 3326 to intermediate data storage unit 33
Transfer the intermediate data. Input band buffer 332
2 is a so-called first-in first-out band buffer
It is structured and holds objects as intermediate data. H
The etch processing unit 3323 includes an input band buffer 3322
Trapezoidal overlap judging unit 33
24. The trapezoid overlap determination unit 3324 is described later.
The overlap of trapezoidal data for each object
Set. The trapezoid overlap judgment unit 332 is an output band buffer.
An input for indicating the position of the object in 3326
It has a index holding register Reg CUR. Trapezoid day
The data re-division unit 3325 stores the data in the output band buffer 3326.
All trapezoidal data and
Trapezoidal overlap judging unit 3324 by the switch processing unit 3323
Does not overlap with the trapezoid data of the object transferred to
Subdivides the trapezoidal data as follows. Output band buffer 3
326 is for storing an object having no trapezoidal data overlap.
Carry. In the output band buffer 3326, the object
Are stored in a list format with the end specified.
The reconstruction of the intermediate data for each band is as shown in FIG.
Follow the procedure below. (1) Initialization of trapezoid overlap judgment unit 3324 and others (S4
6). The intermediate data transfer unit 3321 is provided from the intermediate data storage unit 33.
The intermediate data corresponding to each band is input to the input band buffer 3
322. Clear output band buffer 3326
A. (2) Object fetch processing (S47). The fetch processing unit 3323 converts the object into the input band
Transfer from the buffer 3322 to the trapezoid overlap judgment unit 3324
I do. The object is the object to be inspected.
You. (3) Overlap removal processing of trapezoidal data (S48). FIG. 57 shows details of the following trapezoidal data overlap removal processing procedure.
Is shown. (3.1) Initialization of index holding register (S5
1). Outputs the contents of the index holding register Reg CUR
Indicates the position of the first object in the band buffer 3326
Index. (3.2) Overlap judgment of trapezoidal data (S52). The trapezoid overlap determination unit 3324 determines the object to be inspected.
Index for all trapezoidal data
Output indicated by index of holding register Reg CUR
Object held in band buffer 3326
Inspection is performed for all trapezoidal data and overlaps. Heavy
If there is, the process proceeds to S13p. Meanwhile, overlap
If not, the process proceeds to S54. (3.3) Trapezoidal data division processing (S53). The trapezoid data subdivision unit 3325 includes a trapezoid overlap determination unit 33.
24, the trapezoidal data of the inspected object and the overlap
Stored in the output band buffer 3326
The held trapezoidal data is further divided into trapezoidal data,
The trapezoidal data corresponding to the overlapping part is removed. Figure
Reference numeral 58 denotes a state before and after the trapezoidal data overlap removal processing.
The object to be inspected is the object 2, and the object
If it overlaps with the trapezoidal data of object 1,
The trapezoid data of object 1 is divided as shown in FIG.
Trapezoidal data of object 2 of trapezoidal data under object 1
The part that overlaps the data is removed. Where the object
There is no change in the trapezoid data of the project 2 itself. Like this
After all, the trapezoid data of the inspected object is overwritten
Remove the overlap so that (3.4) Update processing of index holding register (S5
4). The index holding register Reg CUR follows.
Keep an index indicating the position of the object
Update the value to (3.5) Inspection of existence of object to be processed (S5
5). The trapezoid overlap judging unit 3324 uses an index holding register.
Object indicated by the index held by the Reg CUR
Determine if the object is the last object
To check for objects to process.
You. If there is an object to be processed,
Move on to processing. On the other hand, if there is no object to process
If not, the process proceeds to S49. (4) Object addition processing (S49). Outputs the inspected object to the output band buffer 3326
Add to (5) Inspection of existence of object to be processed (S5
0). The fetch processing unit 3323 includes an input band buffer 332
2 to determine if an object exists
Then, the existence of the object to be processed is checked. Process
If there is an object to be processed, the process proceeds to S48.
You. On the other hand, if there are no objects to process,
Finish the process. Note that the configuration data in the development processing unit 4
In order to reduce the number of rewrites of
Intermediate data for each expansion processing ID for each band in the data storage unit 33
Sort the data so that they are continuous, or in the middle of each section
Output band buffer 3326 of data reconstruction section 332
With the output buffer 3273 of the intermediate data optimization unit 34
It is configured as a buffer for each similar development process ID, and
Next, intermediate data is continuous for each band for each processing ID.
Can be rearranged. I also mentioned earlier
The rewriting of the configuration data in one band is below the default value
In the case of, the processing from S46 to S50 may be omitted.
No. In other words, after the intermediate data optimization process,
Before the configuration processing, each object in the intermediate data storage unit 33
Count the number of times the expansion process ID changes, and the value is default
If the value is less than or equal to the value, the process of intermediate data reconstruction can be omitted.
Wear. [Third Embodiment] FIG. 59 shows the structure of a third embodiment according to the present invention.
FIG. In FIG. 59, the image processing device
A print data creation unit 1, a print data input unit 2,
A processing unit 3, a development processing unit 4, and an output unit 5.
I have. Further, the conversion processing unit 3 includes a lexical analysis unit 30
The inter-data generating unit 31, the parallel processing determining unit 36, and the intermediate data
And a data storage unit 33. Also, expand processing
The unit 4 includes a reconfigurable expansion unit 40 and a reconfiguration control unit 41
And a configuration data management unit 42. the above
Print data creation unit 1 and print data input unit
2, the expansion processing unit 4, and the output unit 5 are the same as those in the first embodiment.
Since this is the same as the configuration, the description is omitted here. Strange
The conversion unit 3 prints the print data input from the print data input unit 2.
Expansion processing from data to print data in expansion processing section 4
It generates intermediate data that can be processed.
30, an intermediate data generation unit 31, and a parallel processing determination unit 36
And an intermediate data storage unit 33. Lexical
Analysis unit 30, intermediate data generation unit 31, and intermediate data storage
The part 33 has the same configuration as that of the first embodiment.
Therefore, the description is also omitted here. The parallel processing determination unit 34
The intermediate data output from the intermediate data generation unit 31 is sequentially
Read, determine the overlap between them, and
When it is determined that there is no overlap between multiple intermediate data
Is a group of intermediate data that can be processed in parallel.
Parallel written to the reconfigurable expansion unit 40 of the open processing unit 4
Hardware that is an identifier for the configuration data to be processed
A to the intermediate data storage unit 33
You. Next, in the print processing apparatus configured as described above,
The flow of print data. Print data creation
The print data created by the unit 1 is sent to the print data input unit 2
The input is input to the lexical analyzer 30 of the conversion processor 3 via the interface.
The token extracted from the print data in the lexical analyzer 30.
The token is input to the intermediate data generation unit 31. Intermediate de
Is divided into band units generated by the data generation unit 31.
The intermediate data is input to the parallel processing determination unit 36,
Data into groups that can be processed in parallel based on the data overlap.
And the intermediate data storage unit 33 stores one page per band.
Minutes. The expansion processing unit 4 and the output processing unit 5
Since the configuration is the same as that of the first embodiment,
Description is omitted. The outline of the image processing apparatus of the present invention has been described above.
It was described. Next, details of the main parts of this image processing device
Will be described. Here, the difference between the first embodiment and the first embodiment is mainly described.
Of parallel processing determination unit 36 in conversion processing unit 3
I do. The parallel processing determination unit 36 determines whether the intermediate data generation unit 31
Sequentially read the intermediate data output from the
Judgment is made and overlapping between consecutive intermediate data
If it is determined that there is no intermediate data that can be processed in parallel
, The reconfigurable expansion unit 4 of the expansion processing unit 4
0 to the configuration data for parallel processing written to 0
An additional hardware configuration ID is added to the intermediate data.
Output to the data storage unit 33. In the parallel processing determination unit 36
The output data format is the same as that of FIG. 10 shown in the first embodiment.
You. In FIG. 10, the output from the parallel processing determination unit 36 is
The data structure of the inter-data is an object that can be processed in parallel.
It is summarized for each. The data for each set is Band I
D, hardware configuration ID, number of objects, set
It consists of the data of the object to which it belongs. FIG. 60 shows the parallel processing.
FIG. 2 shows a configuration diagram of a logical determination unit 36. In FIG. 60, 361
Is an input object buffer, 362 is an overlap determination unit,
363 is a configuration data addition unit, 364 is an output object
It is a buffer. The input object buffer 361 is
Input and store object data. object
Data may be entered and stored in one unit
Or a plurality of drawing objects,
It may be a larger unit such as a band or a page.
The overlap determination unit 362 determines whether the input object buffer 32
The same band ID is assigned to the objects sequentially stored in 1.
Enter the coordinates of the circumscribed rectangle of each object
The overlap between objects is determined. Weight between objects
The overlap judgment is held by the overlap judgment unit for each band.
The band ID of the input object of the circumscribed rectangle
And the circumscribed rectangle of the input object
Is determined. For an explanation of future processing,
Since the processing is independent for each band, the input object
The band is narrowed down to the band corresponding to the band ID of the project. Heavy
The circumscribed rectangle held by the
And then the first object entered
It becomes the circumscribed rectangle of the project. And the next object
The overlap is determined, and if there is no overlap,
If the circumscribed rectangle is held, enter
Circumscribed rectangle of the ORed area of the circumscribed rectangle of the drawn object
Changed to shape. If it is determined that there is overlap
Indicates that the circumscribed rectangle is
Is replaced by the circumscribed rectangle. Hold the overlap judgment
Lower left coordinates of the circumscribed rectangle (ldx0, ldy0), upper right
Coordinates (rux0, ruy0), input object
Lower left coordinates (ldx1, ldy1) of the circumscribed rectangle of
This is done using markers (rux1, ruy1), such as:
When the expression holds, it is determined that there is no overlap.
【数4】ldx0>rux1 or rux0<ldx
1 or ldy0>ruy1or ruy0<ldy
1 また、重なりがないと判断された場合の外接矩形のOR
は次のような式になるLdx0> rux1 or rux0 <ldx
1 or ldy0> ruy1 or ruy0 <ldy
1 OR of circumscribed rectangle when it is determined that there is no overlap
Becomes
【数5】ldx0=min(ldx0,ldx1)、l
dy0=min(ldy0,ldy1)、rux0=m
ax(rux0,rux1)、ruy0=max(ru
y0,ruy1) このようにして判定した判定結果は、構成データ付加部
363へ送られる。構成データ付加部363では、この
判定結果と入力されたオブジェクトのオブジェクトID
を見て、判定結果が重なりなしの場合には、出力オブジ
ェクトバッファ364に蓄えられている前に入力された
オブジェクトのオブジェクトIDと入力されたオブジェ
クトのオブジェクトIDから、展開処理部4の再構成可
能展開部40で並列処理可能である組合せである場合に
は、入力されたオブジェクトを出力オブジェクトバッフ
ァ364に追加で書き込む。また、展開処理部4の再構
成可能展開部40で並列処理可能でない組合せである場
合には、出力オブジェクトバッファ364に蓄えられて
いる前に入力されたオブジェクトグループに対する並列
処理の構成データを付加して、出力オブジェクトバッフ
ァ364に蓄えられたオブジェクトを中間データ記憶部
33へ送り出した後で、入力されたオブジェクトを出力
オブジェクトバッファ364に書き込み、さらに重なり
判定部362に対して入力されたオブジェクトの外接矩
形で、保持している外接矩形をリセットするように外接
矩形とバンドIDのデータを送る。また、判定結果が重
なりありの場合には、出力オブジェクトバッファ364
に蓄えられている前に入力されたオブジェクト群に対す
る並列処理の構成データを付加して、出力オブジェクト
バッファ364に蓄えられたオブジェクトを中間データ
記憶部33へ送り出した後で、入力されたオブジェクト
を出力オブジェクトバッファ364に書き込む処理を行
う。出力オブジェクトバッファ364は、オブジェクト
データを入力して格納する。オブジェクトデータを入力
して格納するオブジェクトの個数は、展開処理部4の再
構成可能展開部40で、並列処理可能な最大オブジェク
ト数以上であれば、バンドやページなどのより大きい単
位であってもよい。このように順番に、並列処理判定部
36が出力するデータは、中間データ記憶部33へ送ら
れる。展開処理部4以降については、実施例1と同じで
あるので説明を省略する。以上で本発明の実施例の説明
を終了する。なお、本発明は上述の実施例に限定される
ものではなく、その趣旨を逸脱しない範囲で種々変更す
ることが可能である。例えば、再構成ハードウェア部4
6は図20に示すように、FPGAにより構成したが、
複数の演算処理装置(算術論理演算ユニット)を設け、
各演算処理装置の入出力のフローを切り替え装置で制御
するようにしてもよい。この場合、例えば図21の論理
ブロック4621として演算処理装置を配置すればよ
い。また、クロスポイントスイッチ4622やスイッチ
マトリックス4623のかわりに単純なゲートを用いる
ようにしてもよい。Ldx0 = min (ldx0, ldx1), l
dy0 = min (ldy0, ldy1), lux0 = m
ax (rux0, rux1), ruy0 = max (ru
y0, ruy1) The determination result thus determined is sent to the configuration data adding unit 363. The configuration data adding unit 363 determines the result of the determination and the object ID of the input object.
In the case where the judgment result indicates that there is no overlap, the expansion processing unit 4 can be reconfigured from the object ID of the previously input object stored in the output object buffer 364 and the object ID of the input object. If the combination is a combination that can be processed in parallel by the expansion unit 40, the input object is additionally written into the output object buffer 364. If the combination cannot be processed in parallel by the reconfigurable expansion unit 40 of the expansion processing unit 4, the parallel processing configuration data for the previously input object group stored in the output object buffer 364 is added. After the object stored in the output object buffer 364 is sent to the intermediate data storage unit 33, the input object is written to the output object buffer 364, and the circumscribed rectangle of the input object is input to the overlap determination unit 362. Then, the data of the circumscribed rectangle and the band ID are sent so that the held circumscribed rectangle is reset. If the judgment result indicates that there is an overlap, the output object buffer 364 is output.
After adding the configuration data of the parallel processing to the previously input object group stored in the output object buffer 364 and sending out the object stored in the output object buffer 364 to the intermediate data storage unit 33, the input object is output. A process for writing to the object buffer 364 is performed. The output object buffer 364 inputs and stores object data. As long as the number of objects to be input and stored is equal to or more than the maximum number of objects that can be processed in parallel by the reconfigurable expansion unit 40 of the expansion processing unit 4, even a larger unit such as a band or a page can be used. Good. In this way, the data output from the parallel processing determination unit 36 is sequentially sent to the intermediate data storage unit 33. Since the processing after the expansion processing unit 4 is the same as that of the first embodiment, the description is omitted. This concludes the description of the embodiment of the present invention. It should be noted that the present invention is not limited to the above-described embodiment, and various changes can be made without departing from the gist of the present invention. For example, the reconfiguration hardware unit 4
6 was composed of an FPGA as shown in FIG.
A plurality of arithmetic processing units (arithmetic logic operation units) are provided,
The input / output flow of each processing device may be controlled by the switching device. In this case, for example, an arithmetic processing unit may be arranged as the logic block 4621 in FIG. Further, a simple gate may be used instead of the cross point switch 4622 or the switch matrix 4623.
【発明の効果】以上説明したように本発明では、文字、
図形、画像の描画要素のいずれかを有し、所定の描画命
令で記述された印刷データを入力して、出力装置に出力
する印刷処理装置において、出力装置に出力するための
展開処理を再構成ハードウエアを使って行うことによ
り、必要なハードウエア量を減らすことができるととも
に、処理対象の印刷データに応じて最適なハードウェア
構成を採用する等して、スループットを向上させること
ができる。例えば、印刷データに含まれる描画要素の重
なりを判定して、判定情報と上記印刷データの内容とを
基に、印刷データの描画要素を並び換えることによっ
て、再構成ハードウェア手段を並列動作させることと、
再構成ハードウェア手段の構成の変更回数を少なくする
ことで、再構成ハードウェア手段による展開処理を高速
化することが可能になる。As described above, according to the present invention, characters,
A print processing device that has one of a drawing element of a figure and an image and receives print data described by a predetermined drawing command and outputs the print data to an output device. By using hardware, the required amount of hardware can be reduced, and the throughput can be improved by adopting an optimal hardware configuration according to the print data to be processed. For example, judging the overlap of drawing elements included in the print data, and rearranging the drawing elements of the print data based on the determination information and the contents of the print data, thereby causing the reconfiguration hardware means to operate in parallel. When,
By reducing the number of changes in the configuration of the reconfigurable hardware means, it is possible to speed up the expansion processing by the reconfigurable hardware means.
【図面の簡単な説明】[Brief description of the drawings]
【図1】 本発明の第1の実施例を示すブロック図であ
る。FIG. 1 is a block diagram showing a first embodiment of the present invention.
【図2】 カラーページプリンタの構成の説明図であ
る。FIG. 2 is an explanatory diagram of a configuration of a color page printer.
【図3】 中間データ生成部を示すブロック図である。FIG. 3 is a block diagram illustrating an intermediate data generation unit.
【図4】 アウトラインベクターを説明する図である。FIG. 4 is a diagram illustrating an outline vector.
【図5】 ベジエ曲線の再帰的な分割を説明する図であ
る。FIG. 5 is a diagram illustrating recursive division of a Bezier curve.
【図6】 台形データを説明する図である。FIG. 6 is a diagram illustrating trapezoidal data.
【図7】 台形データのバンド境界での分割を説明する
図である。FIG. 7 is a diagram illustrating division of trapezoidal data at a band boundary.
【図8】 台形データのデータ表現の一例を説明する図
である。FIG. 8 is a diagram illustrating an example of a data representation of trapezoidal data.
【図9】 台形データへの画像データの対応を説明する
図である。FIG. 9 is a diagram for explaining correspondence of image data to trapezoidal data.
【図10】 中間データ順序制御部が生成するデータ構
造を説明する図である。FIG. 10 is a diagram illustrating a data structure generated by an intermediate data order control unit.
【図11】 中間データ順序制御部を示すブロック図で
ある。FIG. 11 is a block diagram illustrating an intermediate data order control unit.
【図12】 バンド領域における描画オブジェクトの重
なりを示す図である。FIG. 12 is a diagram illustrating overlapping of drawing objects in a band area.
【図13】 最適化テーブルの例を示す図である。FIG. 13 is a diagram illustrating an example of an optimization table.
【図14】 構成データ選択部が構成データを選択する
手順を示すフローチャートである。FIG. 14 is a flowchart illustrating a procedure in which a configuration data selection unit selects configuration data.
【図15】 ハードウェア構成IDの候補の例を示す図
である。FIG. 15 illustrates an example of a candidate for a hardware configuration ID.
【図16】 再構成可能展開部のブロック図である。FIG. 16 is a block diagram of a reconfigurable developing unit.
【図17】 力バッファとバンドバッファの使用方法に
ついて説明する図である。FIG. 17 is a diagram illustrating a method of using a force buffer and a band buffer.
【図18】 構成制御部が再構成ハードウェア部を制御
する手順を示すフローチャートである。FIG. 18 is a flowchart illustrating a procedure in which a configuration control unit controls a reconfiguration hardware unit.
【図19】 構成データ管理部の構成を示す図である。FIG. 19 is a diagram showing a configuration of a configuration data management unit.
【図20】 再構成ハードウェア部の構成例を示すブロ
ック図である。FIG. 20 is a block diagram illustrating a configuration example of a reconfiguration hardware unit.
【図21】 図20のFPGAユニットの構成を説明す
る図である。21 is a diagram illustrating a configuration of the FPGA unit in FIG.
【図22】 図21の論理ブロックを説明する図であ
る。FIG. 22 is a diagram for explaining the logical block in FIG. 21;
【図23】 図21のクロスポイントスイッチを説明す
る図である。FIG. 23 is a diagram illustrating the cross point switch of FIG. 21.
【図24】 図21のスイッチマトリックスを説明する
図である。FIG. 24 is a diagram illustrating the switch matrix of FIG. 21.
【図25】 ハードウェア構成IDがXの場合の再構成
ハードウェア部の構成を示す図である。FIG. 25 is a diagram illustrating a configuration of a reconfiguration hardware unit when a hardware configuration ID is X;
【図26】 台形データ描画を説明する図である。FIG. 26 is a diagram illustrating trapezoidal data drawing.
【図27】 台形描画回路の機能ブロック図である。FIG. 27 is a functional block diagram of a trapezoidal drawing circuit.
【図28】 座標計算部の機能ブロック図である。FIG. 28 is a functional block diagram of a coordinate calculation unit.
【図29】 エッジ描画部の機能ブロック図である。FIG. 29 is a functional block diagram of an edge drawing unit.
【図30】 伸長処理回路の機能ブロック図である。FIG. 30 is a functional block diagram of a decompression processing circuit.
【図31】 解像度変換回路の機能ブロック図である。FIG. 31 is a functional block diagram of a resolution conversion circuit.
【図32】 色空間変換回路の機能ブロック図である。FIG. 32 is a functional block diagram of a color space conversion circuit.
【図33】 色空間変換の線形補間の過程を示す図であ
る。FIG. 33 is a diagram illustrating a process of linear interpolation of color space conversion.
【図34】 展開処理部をアクセラレータとして利用す
る場合の変換処理部と展開処理部の関係を示す図であ
る。FIG. 34 is a diagram illustrating a relationship between the conversion processing unit and the expansion processing unit when the expansion processing unit is used as an accelerator.
【図35】 再構成ハードウェア部を部分的に書き換え
る場合に再構成制御部が行なう制御の手順を示すフロー
チャートである。FIG. 35 is a flowchart illustrating a control procedure performed by the reconfiguration control unit when partially rewriting the reconfiguration hardware unit;
【図36】 本発明の第2の実施例を示すブロック図で
ある。FIG. 36 is a block diagram showing a second embodiment of the present invention.
【図37】 中間データ最適化部34の構成の一例を示
す。FIG. 37 shows an example of the configuration of the intermediate data optimization section 34.
【図38】 区分中間データ最適化部327の構成の一
例を示す。FIG. 38 shows an example of the configuration of a sectioned intermediate data optimization section 327.
【図39】 出力バッファ3273の構成の一例を示
す。FIG. 39 illustrates an example of a configuration of an output buffer 3273.
【図40】 実施例2における外接矩形の重なりの態様
を示す。FIG. 40 illustrates an aspect of overlapping circumscribed rectangles in the second embodiment.
【図41】 実施例2における処理種別の同一性による
外接矩形の重なりの態様を示す。FIG. 41 illustrates a mode of overlapping circumscribed rectangles based on the same processing type according to the second embodiment.
【図42】 中間データ最適化の処理手順を示す。FIG. 42 shows a processing procedure of intermediate data optimization.
【図43】 処理種別の同一性の判定におけるラッチ処
理部3271と外接矩形重なり判定部3272との様子
を示す。FIG. 43 shows how a latch processing unit 3271 and a circumscribed rectangle overlap determination unit 3272 determine the identity of processing types.
【図44】 外接矩形集合記憶部のビットマップ更新処
理の様子を示す。FIG. 44 shows a state of a bitmap update process of the circumscribed rectangle set storage unit.
【図45】 外接矩形集合記憶部3274の構成の一例
を示す。FIG. 45 illustrates an example of a configuration of a circumscribed rectangle set storage unit 3274.
【図46】 出力バッファ3273の構成の一例を示
す。FIG. 46 illustrates an example of a configuration of an output buffer 3273.
【図47】 第2の中間データ最適化の処理手順を示
す。FIG. 47 shows a processing procedure of second intermediate data optimization.
【図48】 外接矩形の重なりによる層の様子を示す。FIG. 48 shows a state of layers formed by overlapping circumscribed rectangles.
【図49】 オブジェクトのリスト追加処理の様子を示
す。FIG. 49 shows an object list adding process.
【図50】 図47におけるオブジェクトのリスト挿入
処理手順の詳細を示す。50 shows details of the object list insertion processing procedure in FIG. 47.
【図51】 外接矩形頂点座標の更新前後の様子を示
す。FIG. 51 shows a state before and after updating the circumscribed rectangular vertex coordinates.
【図52】 オブジェクトのリスト挿入処理の様子を示
す。FIG. 52 shows an object list insertion process.
【図53】 中間データ再構成部35の構成の一例を示
す。FIG. 53 shows an example of the configuration of an intermediate data reconstruction unit 35.
【図54】 中間データ再構成の処理手順について示
す。FIG. 54 shows a processing procedure of intermediate data reconstruction.
【図55】 区分中間データ再構成部332の構成の一
例を示す。FIG. 55 shows an example of the configuration of a sectioned intermediate data reconstruction unit 332.
【図56】 バンド毎の中間データ再構成の処理手順に
ついて示す。FIG. 56 shows a processing procedure of intermediate data reconstruction for each band.
【図57】 台形データの重なり除去処理手順について
示す。FIG. 57 shows a trapezoidal data overlap removal processing procedure.
【図58】 台形データの重なり除去処理前後の様子を
示す。FIG. 58 shows a state before and after a trapezoidal data overlap removal process.
【図59】 本発明の第3の実施例を示すブロック図で
ある。FIG. 59 is a block diagram showing a third embodiment of the present invention.
【図60】 並列処理判定部を示すブロック図である。FIG. 60 is a block diagram illustrating a parallel processing determination unit.
1 印刷データ作成部 2 印刷データ入力部 3 変換処理部 4 展開処理部 5 出力部 30 字句解析部 31 中間データ生成部 310 トークン解釈部 311 命令実行部 312 画像処理部 313 描画状態記憶部 314 ベクターデータ生成部 315 フォント管理部 316 マトリックス変換部 317 ショートベクター生成部 318 台形データ生成部 319 バンド分解管理部 32 中間データ順序制御部 321 オブジェクトバッファ 322 描画順序依存検出部 323 最適化テーブル作成部 324 構成データ選択部 325 リオーダ部 326 バンド番号判定部 327 区分中間データ最適化部 3271 ラッチ処理部 3272 外接矩形重なり判定部 3273 出力バッファ 3274 外接矩形集合記憶部、 33 中間データ記憶部 3321 中間データ転送部 3322 入力バンドバッファ 3323 フェッチ処理部 3324 台形重なり判定部 3325 台形データ再分割部 3326 出力バンドバッファ 34 中間データ最適化部 35 中間データ再構成部 36 並列処理判定部 361 入力オブジェクトバッファ 362 重なり判定部 363 構成データ付加部 364 出力オブジェクトバッファ 40 再構成可能展開部 41 再構成制御部 410 メモリ部 411 構成コード記憶領域 412 制御部 413 読み出し制御部 414 追加・更新部 415 変換テーブル 42 構成データ管理部 420 入力バッファA 421 入力バッファB 422 バンドバッファA 423 バンドバッファB 424 ワーク領域 43 中間データ転送制御部 44 印字データ転送制御部 45 アービトレーション部 46 再構成ハードウェア部 460、460−1、460−2 Code A処理
回路 461 台形描画回路 462 スクリーン処理回路 463 中間データ入力部 464 座標計算部A 465 座標計算部B 466 エッジ描画部 467 DDAパラメータ計算部 468 DDA処理部 469 座標更新部 47 リフレッシュ制御部 470 アドレス計算部 471 マスク演算部 472 データ演算部 473 RmodW処理部 480、480−1、480−2、480−3 Co
de G処理回路 481 画像伸張回路 481−1 中間データ入力部 481−2 ハフマン複号化部 481−3 逆量子化部 481−4 逆DCT部 481−5 書き込み部 482 解像度変換回路 482−1 画素データ入力部 482−2 補間処理部 482−3 画素アドレス計算部 482−4 書き込み部 483 色変換回路 483−1 画素データ入力部 483−2 テーブル変換部 483−3 補間処理部 483−4 書き込み部 484 台形描画回路 485 スクリーン処理回路 50 ビデオインターフェース 51 半導体レーザ走査装置 510 ポリゴンミラー 511 レンズ 52 感光体ドラム 53 帯電器 54 ロータリー現像器 55 転写ドラム 56 クリーナー 57 定着器 58 用紙の搬送経路 900 バンド領域 901 図形オブジェクト 902 画像オブジェクト 902 図形オブジェクト 903 画像オブジェクトDESCRIPTION OF SYMBOLS 1 Print data creation part 2 Print data input part 3 Conversion processing part 4 Expansion processing part 5 Output part 30 Lexical analysis part 31 Intermediate data generation part 310 Token interpretation part 311 Command execution part 312 Image processing part 313 Drawing state storage part 314 Vector data Generation unit 315 Font management unit 316 Matrix conversion unit 317 Short vector generation unit 318 Trapezoidal data generation unit 319 Band decomposition management unit 32 Intermediate data order control unit 321 Object buffer 322 Drawing order dependence detection unit 323 Optimization table creation unit 324 Configuration data selection Section 325 reorder section 326 band number determination section 327 section intermediate data optimization section 3271 latch processing section 3272 circumscribed rectangle overlap determination section 3273 output buffer 3274 circumscribed rectangle set storage section, 33 intermediate data storage section 332 Intermediate data transfer unit 3322 Input band buffer 3323 Fetch processing unit 3324 Trapezoid overlap determination unit 3325 Trapezoid data subdivision unit 3326 Output band buffer 34 Intermediate data optimization unit 35 Intermediate data reconstruction unit 36 Parallel processing determination unit 361 Input object buffer 362 Overlap Judgment unit 363 Configuration data addition unit 364 Output object buffer 40 Reconfigurable development unit 41 Reconfiguration control unit 410 Memory unit 411 Configuration code storage area 412 Control unit 413 Read control unit 414 Addition / update unit 415 Conversion table 42 Configuration data management unit 420 input buffer A 421 input buffer B 422 band buffer A 423 band buffer B 424 work area 43 intermediate data transfer control unit 44 print data transfer control unit 45 arbitrage Section 46 Reconstruction hardware section 460, 460-1, 460-2 Code A processing circuit 461 Trapezoid drawing circuit 462 Screen processing circuit 463 Intermediate data input section 464 Coordinate calculation section A 465 Coordinate calculation section B 466 Edge drawing section 467 DDA Parameter calculation section 468 DDA processing section 469 Coordinate update section 47 Refresh control section 470 Address calculation section 471 Mask calculation section 472 Data calculation section 473 RmodW processing section 480, 480-1, 480-2, 480-3 Co
de G processing circuit 481 Image decompression circuit 481-1 Intermediate data input section 481-2 Huffman decoding section 481-3 Inverse quantization section 481-4 Inverse DCT section 481-5 Writing section 482 Resolution conversion circuit 482-1 Pixel data Input section 482-2 Interpolation processing section 482-3 Pixel address calculation section 482-4 Writing section 483 Color conversion circuit 483-1 Pixel data input section 483-2 Table conversion section 483-3 Interpolation processing section 483-4 Writing section 484 Trapezoid Drawing circuit 485 Screen processing circuit 50 Video interface 51 Semiconductor laser scanning device 510 Polygon mirror 511 Lens 52 Photoreceptor drum 53 Charger 54 Rotary developing device 55 Transfer drum 56 Cleaner 57 Fixing device 58 Paper transport path 900 Band area 901 Graphic object DOO 902 image object 902 graphic object 903 image object
フロントページの続き (72)発明者 関 範顕 神奈川県足柄上郡中井町境430 グリーン テクなかい 富士ゼロックス株式会社内 (72)発明者 平田 和貴 神奈川県足柄上郡中井町境430 グリーン テクなかい 富士ゼロックス株式会社内 (72)発明者 和田 義則 神奈川県足柄上郡中井町境430 グリーン テクなかい 富士ゼロックス株式会社内 (72)発明者 石川 宏 神奈川県足柄上郡中井町境430 グリーン テクなかい 富士ゼロックス株式会社内Continued on the front page (72) Inventor Noriaki Seki 430 Nakaicho, Nakai-machi, Ashigarakami-gun, Kanagawa Prefecture Inside Green Tech Nakafuji Fuji Xerox Co., Ltd. 72) Inventor Yoshinori Wada 430 Nakai-cho, Nakai-cho, Ashigara-kami, Kanagawa Prefecture Inside Fuji Xerox Fuji Xerox Co., Ltd.
Claims (19)
のいずれかを表す、所定の描画命令で記述された第1の
印刷データを、画像出力用データ構造の第2の印刷デー
タに展開し、上記第2の印刷データに基づいて画像出力
を行う印刷処理装置において、 複数の処理モジュールと上記複数の処理モジュールの入
力データ及び出力データのフローを制御する切り替え手
段とを含み、上記処理モジュールの機能及び上記切り替
え手段の切り替え態様の少なくとも一方を構成データに
応じて設定可能なハードウェア手段であって、ハードウ
ェア構成情報に応じて上記構成データを変更して上記ハ
ードウェア構成情報に対応する態様で上記第1の印刷デ
ータを上記第2の印刷データに展開するハードウェア手
段と、 上記第1の印刷データを入力する入力手段と、 上記入力手段に入力された第1の印刷データに含まれる
描画要素の重なりを判定する判定手段と、 少なくとも上記判定手段の判定情報と上記入力手段に入
力された第1の印刷データの内容とに基づいて、上記入
力手段に入力された第1の印刷データの描画要素を並び
換え、さらに上記ハードウェア構成情報を含む所定形式
の印刷データに変換して上記ハードウェア手段に供給す
る変換手段と、 上記ハードウェア手段で展開された第2の印刷データに
基づいて画像を出力する出力手段とを備えた印刷処理装
置。1. Developing first print data described by a predetermined drawing command, which represents at least one of a character, a graphic, and an image drawing element, into second print data of an image output data structure; A print processing apparatus for outputting an image based on the second print data, comprising: a plurality of processing modules; and a switching unit configured to control a flow of input data and output data of the plurality of processing modules. And hardware means capable of setting at least one of the switching modes of the switching means in accordance with the configuration data, wherein the configuration data is changed in accordance with the hardware configuration information to correspond to the hardware configuration information. Hardware means for expanding the first print data into the second print data; input means for inputting the first print data; Means for determining overlapping of drawing elements included in the first print data input to the input means; and at least determination information of the determination means and the first print data input to the input means. Based on the contents, the drawing elements of the first print data input to the input means are rearranged, and further converted into print data of a predetermined format including the hardware configuration information and supplied to the hardware means. A print processing apparatus comprising: an output unit that outputs an image based on the second print data expanded by the hardware unit.
えは、上記ハードウェア手段により並列に展開可能な描
画要素が連続するように行われることを特徴とする請求
項1記載の印刷処理装置。2. The print processing apparatus according to claim 1, wherein the reordering of the drawing elements by the conversion means is performed so that the drawing elements which can be developed in parallel by the hardware means are continuous.
は、同一または異なる機能ブロックを複数個含むように
設定されたハードウェア構成により行われることを特徴
とする請求項2記載の印刷処理装置。3. The print processing apparatus according to claim 2, wherein the parallel development by the hardware means is performed by a hardware configuration set to include a plurality of the same or different functional blocks.
えは、上記ハードウェア手段の上記構成データの変更回
数が減少するように行われることを特徴とする請求項
1、2または3記載の印刷処理装置。4. The printing process according to claim 1, wherein the rearrangement of the drawing elements in the conversion unit is performed so that the number of times of changing the configuration data of the hardware unit is reduced. apparatus.
なり有りと判定された描画要素間の順序の並び換えを行
わないことを特徴とする請求項1、2、3または4記載
の印刷処理装置。5. The print processing apparatus according to claim 1, wherein the conversion unit does not rearrange the order of the drawing elements determined to be overlapped by the determination unit. .
る外接矩形を用いて重なりを判定することを特徴とする
請求項5記載の印刷処理装置。6. The print processing apparatus according to claim 5, wherein the determination unit determines the overlap using a circumscribed rectangle including the drawing element.
なり有りと判定された描画要素間の重なりを除去してか
ら順序の並び換えを行うことを特徴とする請求項1、
2、3または4記載の印刷処理装置。7. The apparatus according to claim 1, wherein said conversion unit rearranges the order after removing the overlap between the drawing elements determined to have an overlap by the determination unit.
5. The print processing apparatus according to 2, 3, or 4.
たは複数スキャンライン単位にページを分割したバンド
毎に行われることを特徴とする請求項1、2、3、4、
5、6または7記載の印刷処理装置。8. The method according to claim 1, wherein the rearrangement of the drawing elements is performed for each page or for each band obtained by dividing the page into a plurality of scan lines.
The print processing apparatus according to 5, 6, or 7.
構成を全部または部分的に変更可能であることを特徴と
する請求項1記載の印刷処理装置。9. The print processing apparatus according to claim 1, wherein the hardware means can change the hardware configuration entirely or partially.
入力される上記所定形式の印刷データにそれぞれ含まれ
る上記ハードウェア構成情報が同一の場合に、上記構成
データの変更を省略することを特徴とする請求項1記載
の印刷処理装置。10. When the hardware configuration information included in the print data of the predetermined format inputted one after another is the same, the hardware means omits the change of the configuration data. The print processing apparatus according to claim 1.
フィールドプログラマブルゲートアレイを含むことを特
徴とする請求項1記載の印刷処理装置。11. The print processing apparatus according to claim 1, wherein said hardware means includes at least a field programmable gate array.
処理装置と、上記複数の演算処理装置の入力データ及び
出力データのフローを切り替える切り替え手段とを具備
する請求項1記載の印刷処理装置。12. The print processing apparatus according to claim 1, wherein said hardware means includes a plurality of processing units, and switching means for switching a flow of input data and output data of said plurality of processing units.
ルと上記複数の処理モジュールの入力データ及び出力デ
ータのフローを制御する切り替え手段とを含み、上記処
理モジュールの機能及び上記切り替え手段の切り替え態
様の少なくとも一方を構成データに応じて設定可能なハ
ードウェア手段を具備し、上記変換手段の処理の少なく
とも一部を上記変換手段中の上記ハードウェア手段で実
行することを特徴とする請求項1記載の印刷処理装置。13. The conversion means includes a plurality of processing modules and a switching means for controlling a flow of input data and output data of the plurality of processing modules, and a function of the processing module and a switching mode of the switching means. 2. The apparatus according to claim 1, further comprising hardware means for setting at least one of them according to configuration data, wherein at least a part of the processing of said conversion means is executed by said hardware means in said conversion means. Print processing device.
ブロックをパイプライン動作させて展開を行うように設
定されることを特徴とする請求項1記載の印刷処理装
置。14. The print processing apparatus according to claim 1, wherein said hardware means is set so as to perform expansion by performing a plurality of function blocks in a pipeline operation.
素のいずれかを表す、所定の描画命令で記述された第1
の印刷データを、画像出力用データ構造の第2の印刷デ
ータに展開し、上記第2の印刷データに基づいて画像出
力を行う印刷処理装置において、 複数の処理モジュールと上記複数の処理モジュールの入
力データ及び出力データのフローを制御する切り替え手
段とを含み、上記処理モジュールの機能及び上記切り替
え手段の切り替え態様の少なくとも一方を構成データに
応じて設定可能なハードウェア手段であって、ハードウ
ェア構成情報に応じて上記構成データを変更して上記ハ
ードウェア構成情報に対応する態様で上記第1の印刷デ
ータを上記第2の印刷データに展開するハードウェア手
段と、 上記第1の印刷データを入力する入力手段と、 上記入力手段に入力された第1の印刷データに含まれる
描画要素の重なりを判定する判定手段と、 少なくとも上記判定手段の判定情報と上記入力手段に入
力された第1の印刷データの内容とに基づいて、上記入
力手段に入力された第1の印刷データを、上記ハードウ
ェア構成情報を含む所定形式の印刷データに変換して上
記ハードウェア手段に供給する変換手段と、 上記ハードウェア手段で展開された第2の印刷データに
基づいて画像を出力する出力手段とを備えた印刷処理装
置。15. A first description described by a predetermined drawing command, which represents at least one of a drawing element of a character, a graphic, and an image.
The print data is expanded into second print data of an image output data structure, and an image is output based on the second print data. A plurality of processing modules and an input of the plurality of processing modules Switching means for controlling the flow of data and output data, wherein the hardware means is capable of setting at least one of the function of the processing module and the switching mode of the switching means according to configuration data; Hardware means for changing the configuration data according to the above and expanding the first print data into the second print data in a manner corresponding to the hardware configuration information; and inputting the first print data. Input means; determining means for determining an overlap of drawing elements included in the first print data input to the input means; The first print data input to the input unit is converted into a predetermined format including the hardware configuration information based on at least the determination information of the determination unit and the content of the first print data input to the input unit. A print processing apparatus comprising: a conversion unit that converts the print data into print data and supplies the print data to the hardware unit; and an output unit that outputs an image based on the second print data developed by the hardware unit.
重なりなしと判定された連続する複数の描画要素を含む
印刷データを、上記複数の描画要素を並列に展開するハ
ードウェア構成を特定するハードウェア構成情報を含む
形式に変換することを特徴とする請求項15記載の印刷
処理装置。16. A hardware unit for specifying a hardware configuration for developing print data including a plurality of continuous drawing elements determined as having no overlap by the determination unit in parallel with the plurality of drawing elements. 16. The print processing apparatus according to claim 15, wherein the format is converted into a format including configuration information.
たは異なる機能ブロックを複数個含むハードウェア構成
により行われることを特徴とする請求項16記載の印刷
処理装置。17. The print processing apparatus according to claim 16, wherein the parallel development of the drawing elements is performed by a hardware configuration including a plurality of the same or different functional blocks.
素のいずれかを表す、所定の描画命令で記述された第1
の印刷データを、画像出力用データ構造の第2の印刷デ
ータに展開し、上記第2の印刷データに基づいて画像出
力を行う印刷処理装置において、 複数の処理モジュールと上記複数の処理モジュールの入
力データ及び出力データのフローを制御する切り替え手
段とを含み、上記処理モジュールの機能及び上記切り替
え手段の切り替え態様の少なくとも一方を構成データに
応じて設定可能なハードウェア手段であって、ハードウ
ェア構成情報に応じて上記構成データを変更して上記ハ
ードウェア構成情報に対応する態様で上記第1の印刷デ
ータを上記第2の印刷データに展開するハードウェア手
段と、 上記第1の印刷データを入力する入力手段と、 上記入力手段に入力された第1の印刷データを、上記第
1の印刷データの内容に対応するハードウェア構成情報
を含む所定形式の印刷データに変換して上記ハードウェ
ア手段に供給する変換手段と、 上記ハードウェア手段で展開された第2の印刷データに
基づいて画像を出力する出力手段とを備えた印刷処理装
置。18. A first method which is described by a predetermined drawing command and represents at least one of a character, a figure, and a drawing element of an image.
A print processing device that expands the print data of the above into second print data of an image output data structure and outputs an image based on the second print data. Switching means for controlling the flow of data and output data, wherein the hardware means is capable of setting at least one of the function of the processing module and the switching mode of the switching means in accordance with configuration data; Hardware means for changing the configuration data according to the above and expanding the first print data into the second print data in a manner corresponding to the hardware configuration information; and inputting the first print data. Input means; and a first print data input to the input means, the hardware corresponding to the content of the first print data. Conversion means for converting the print data into print data of a predetermined format including hardware configuration information and supplying the print data to the hardware means; and output means for outputting an image based on the second print data developed by the hardware means. Print processing device provided.
成情報に応じて、上記変換データ中の上記ハードウェア
構成情報を省略することを特徴とする請求項18記載の
印刷処理装置。19. The print processing apparatus according to claim 18, wherein the conversion unit omits the hardware configuration information in the conversion data according to the hardware configuration information.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09082699A JP3125863B2 (en) | 1997-04-01 | 1997-04-01 | Print processing device |
US09/050,361 US6219149B1 (en) | 1997-04-01 | 1998-03-31 | Print processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09082699A JP3125863B2 (en) | 1997-04-01 | 1997-04-01 | Print processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10278361A true JPH10278361A (en) | 1998-10-20 |
JP3125863B2 JP3125863B2 (en) | 2001-01-22 |
Family
ID=13781663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09082699A Expired - Fee Related JP3125863B2 (en) | 1997-04-01 | 1997-04-01 | Print processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3125863B2 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005205894A (en) * | 2003-12-26 | 2005-08-04 | Seiko Epson Corp | Hardware function varying printing device, printing device, hardware function varying printing system, printing device management device, printing control program and printing device management program, hardware function varying printing method and circuit composition information transfer method |
JP2006007496A (en) * | 2004-06-23 | 2006-01-12 | Ricoh Co Ltd | Print processing system and program, and recording medium |
JP2010137569A (en) * | 2008-12-10 | 2010-06-24 | Xerox Corp | Throughput estimation based on complexity of document |
JP2010170572A (en) * | 1998-11-20 | 2010-08-05 | Altera Corp | Reconfigurable programmable logic device computer system |
JP2015016586A (en) * | 2013-07-09 | 2015-01-29 | 富士ゼロックス株式会社 | Image processing system and program |
JP2016016573A (en) * | 2014-07-08 | 2016-02-01 | 富士ゼロックス株式会社 | Image processing device and image forming apparatus |
US9921786B2 (en) | 2015-08-14 | 2018-03-20 | Fuji Xerox Co., Ltd. | Image processing apparatus and method for dividing image into division regions and generating a piece of bitmap image data by processing a piece of division-region data, and non-transitory computer readable medium thereof |
JP6885640B1 (en) * | 2020-10-01 | 2021-06-16 | 株式会社ラムダシステムズ | Image processing device |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5393168B2 (en) * | 2009-01-14 | 2014-01-22 | キヤノン株式会社 | Image forming apparatus and control method thereof |
-
1997
- 1997-04-01 JP JP09082699A patent/JP3125863B2/en not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010170572A (en) * | 1998-11-20 | 2010-08-05 | Altera Corp | Reconfigurable programmable logic device computer system |
JP2005205894A (en) * | 2003-12-26 | 2005-08-04 | Seiko Epson Corp | Hardware function varying printing device, printing device, hardware function varying printing system, printing device management device, printing control program and printing device management program, hardware function varying printing method and circuit composition information transfer method |
JP2006007496A (en) * | 2004-06-23 | 2006-01-12 | Ricoh Co Ltd | Print processing system and program, and recording medium |
JP2010137569A (en) * | 2008-12-10 | 2010-06-24 | Xerox Corp | Throughput estimation based on complexity of document |
JP2015016586A (en) * | 2013-07-09 | 2015-01-29 | 富士ゼロックス株式会社 | Image processing system and program |
JP2016016573A (en) * | 2014-07-08 | 2016-02-01 | 富士ゼロックス株式会社 | Image processing device and image forming apparatus |
US9921786B2 (en) | 2015-08-14 | 2018-03-20 | Fuji Xerox Co., Ltd. | Image processing apparatus and method for dividing image into division regions and generating a piece of bitmap image data by processing a piece of division-region data, and non-transitory computer readable medium thereof |
JP6885640B1 (en) * | 2020-10-01 | 2021-06-16 | 株式会社ラムダシステムズ | Image processing device |
JP2022059381A (en) * | 2020-10-01 | 2022-04-13 | 株式会社ラムダシステムズ | Image processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP3125863B2 (en) | 2001-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6219149B1 (en) | Print processing apparatus | |
US7436531B2 (en) | Systems and methods for using multiple processors for imaging | |
JP2010505162A (en) | Lattice type processing method and apparatus for transparent pages | |
JP2000511364A (en) | Method and apparatus for reducing storage requirements for display data | |
JPH11147335A (en) | Plot process apparatus | |
JP2009140295A (en) | Rendering apparatus, printer, rendering method, and program | |
JP3125863B2 (en) | Print processing device | |
JP6379516B2 (en) | Mechanism for topcoat processing | |
JP3834935B2 (en) | Print processing device | |
JPH09185721A (en) | Image forming device | |
JP6135329B2 (en) | Print data processing apparatus, program, and system | |
JP3871011B2 (en) | Information processing apparatus and information processing method | |
JP3885282B2 (en) | Print data processing apparatus and print data processing method | |
JP3728183B2 (en) | Printing control apparatus, drawing control apparatus, data processing method, and storage medium | |
JPH11165434A (en) | Lithography processing device | |
JPH11105371A (en) | Print processor | |
JP2000013601A (en) | Print information processor and device and method for generating intermediate data | |
JP3640133B2 (en) | Print processing device | |
JPH10151815A (en) | Printing-processing apparatus | |
JP2000255116A (en) | Apparatus for processing printing and method for processing printing | |
JPH111032A (en) | Printing-processing apparatus | |
JP2000255121A (en) | Printing processing apparatus and method | |
JPH10157217A (en) | Printing-processing apparatus | |
JP3226583B2 (en) | Color image processing system and image processing apparatus | |
JP3297448B2 (en) | Image processing apparatus and image processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |