(57)【特許請求の範囲】
【請求項１】
回路機能を再構成することが可能な処理手段と、該処理手段に対して回路機能の再構成と該回路機能による１または複数の処理の実行が繰り返して行われるように制御する制御手段を備え、該制御手段は、前記処理手段で最初に実行する処理に対応する回路機能の再構成中および再構成した回路機能による前記最初の処理の実行中に、残りの処理を参照して同じ種類ごとに処理の順番を決定することを特徴とする情報処理装置。
【請求項２】
回路機能を再構成することが可能な処理手段と、該処理手段に対して回路機能の再構成と該回路機能による１または複数の処理の実行が繰り返して行われるように制御する制御手段を有し、該制御手段は、前記処理手段で最初に実行する処理に対応する回路機能の再構成中および再構成した回路機能による前記最初の処理の実行中に、残りの処理を参照して同じ回路機能で実行可能な処理を選択することを特徴とする情報処理装置。
【請求項３】
少なくとも文字、図形、画像の描画要素のいずれかを有し所定の描画命令で記述された描画データに基づいて該描画データに含まれる描画要素に対応させて構成情報を付加して中間データを生成する変換手段と、回路機能を再構成することが可能であり前記中間データから位置情報を含む形式の情報に展開する展開処理手段と、該展開処理手段に対して前記中間データに付加された構成情報に基づいて回路機能の再構成を行わせるとともに該回路機能により前記中間データの展開を行わせるように制御する制御手段を有し、該制御手段は、前記変換手段で生成された最初の中間データに対応する回路機能の再構成中および再構成した回路機能により前記最初の中間データの展開の実行中に、残りの中間データを参照して同じ回路機能で実行可能な種類ごとに中間データの順番を決定することを特徴とする情報処理装置。
【請求項４】
少なくとも文字、図形、画像の描画要素のいずれかを有し所定の描画命令で記述された描画データに基づいて該描画データに含まれる描画要素に対応させて構成情報を付加して中間データを生成する変換手段と、回路機能を再構成することが可能であり前記中間データから位置情報を含む形式の情報に展開する展開処理手段と、該展開処理手段に対して前記中間データに付加された構成情報に基づいて回路機能の再構成を行わせるとともに該回路機能により前記中間データの展開を行わせるように制御する制御手段を有し、該制御手段は、前記変換手段で生成された最初の中間データに対応する回路機能の再構成および再構成した回路機能による前記最初の中間データの展開を実行するとともに、該再構成および展開の実行中に、残りの中間データを参照して同じ回路機能で実行可能な中間データの抽出を行い、抽出した中間データを連続して実行させ、同じ回路機能で実行可能な中間データが終了すると、残りの中間データについて前記最初の中間データに対応する再構成および展開の実行と、該再構成および展開中における中間データの抽出とその実行を繰り返すことを特徴とする情報処理装置。
【請求項５】
前記制御手段は、１ないし複数の処理からなる処理群を単位として、各処理群内のすべての処理について展開の実行を終了してから次の処理群に対する制御を開始することを特徴とする請求項１ないし請求項４のいずれか１項に記載の情報処理装置。
【請求項６】
回路機能を再構成することが可能な処理手段を用いて回路機能の再構成と該回路機能による１または複数の処理の実行を繰り返して行う情報処理方法において、前記処理手段に対して最初に実行する処理に対応する回路機能を再構成し、再構成した回路機能により前記最初の処理を実行し、前記最初に実行する処理に対応する再構成および前記最初の処理の実行中に残りの処理を参照して同じ種類ごとに処理の順番を決定することを特徴とする情報処理方法。
【請求項７】
回路機能を再構成することが可能な処理手段を用いて回路機能の再構成と該回路機能による１または複数の処理の実行を繰り返して行う情報処理方法において、前記処理手段に対して最初に実行する処理に対応する回路機能を再構成し、再構成した回路機能により前記最初の処理を実行し、前記最初に実行する処理に対応する再構成および前記最初の処理の実行中に残りの処理を参照して同じ回路機能で実行可能な処理を選択することを特徴とする情報処理方法。
【請求項８】
回路機能を再構成することが可能な展開処理手段を用いて少なくとも文字、図形、画像の描画要素のいずれかを有し所定の描画命令で記述された描画データに基づいて位置情報を含む形式の情報に展開する情報処理方法において、前記描画データから該描画データに含まれる描画要素に対応させて構成情報を付加して中間データを生成し、前記展開処理手段に対して最初の中間データに付加された構成情報に基づいて回路機能の再構成を行わせるとともに該回路機能により前記最初の中間データの展開を行わせ、該最初の中間データに対応する再構成および展開の実行中に、残りの中間データを参照して同じ回路機能で実行可能な種類ごとに中間データの順番を決定し、決定した中間データの順番で必要に応じて中間データに対応する回路機能の再構成を行うとともに中間データの展開を実行することを特徴とする情報処理方法。
【請求項９】
回路機能を再構成することが可能な展開処理手段を用いて少なくとも文字、図形、画像の描画要素のいずれかを有し所定の描画命令で記述された描画データに基づいて位置情報を含む形式の情報に展開する情報処理方法において、前記描画データから該描画データに含まれる描画要素に対応させて構成情報を付加して中間データを生成し、前記展開処理手段に対して最初の中間データに付加された構成情報に基づいて回路機能の再構成を行わせるとともに該回路機能により前記最初の中間データの展開を行わせ、該最初の中間データに対応する再構成および展開の実行中に、残りの中間データを参照して同じ回路機能で実行可能な中間データの抽出を行い、抽出した中間データを連続して前記展開処理手段で実行し、同じ回路機能で実行可能な中間データが終了すると、残りの中間データについて前記最初の中間データに対応する再構成および展開の実行と、該再構成および展開中における中間データの抽出とその実行を繰り返すことを特徴とする情報処理方法。
【請求項１０】
前記中間データの順番の決定は、１ないし複数の処理からなる処理群を単位として、該処理郡内の中間データを対象として行うことを特徴とする請求項６または請求項８に記載の情報処理方法。
【請求項１１】
前記中間データの抽出は、１ないし複数の処理からなる処理群を単位として、該処理郡内の中間データを対象として行うことを特徴とする請求項７または請求項９に記載の情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、再構成可能な処理手段を用いた情報処理装置および情報処理方法に関するものであり、特に、再構成可能な処理手段を用いて、少なくとも文字、図形、画像の描画要素のいずれかを有し所定の描画命令で記述された描画データを、位置情報を含む形式の情報に展開する情報処理装置および情報処理方法に関するものである。
【０００２】
【従来の技術】
小型、高速のデジタル印刷に適した電子写真方式のページプリンタの開発に伴い、従来の文字情報中心の印刷から脱皮した、画像、図形、文字などを同様に取り扱い、図形、文字等の拡大、回転、変形などが自由に制御できる記述言語を用いる印刷処理装置が一般に普及してきた。このような記述言語の代表的な例として、ＰｏｓｔＳｃｒｉｐｔ（Ａｄｏｂｅ  Ｓｙｓｔｅｍｓ社商標）、Ｉｎｔｅｒｐｒｅｓｓ（Ｘｅｒｏｘ社商標）、Ａｃｒｏｂａｔ（Ａｄｏｂｅ  Ｓｙｓｔｅｍｓ社商標）、ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ、Ｍｉｃｒｏｓｏｆｔ社商標）等が知られている。
【０００３】
記述言語で作成されている印刷データは、ページ内の任意位置の画像、図形、文字を表現する描画命令及びデータを任意の順で配置した命令及びデータ列で構成されており、印刷処理装置で印刷するためには、印刷前に印刷データをラスタ化しなければならない。ラスタ化とは、ページ又はページの一部を横切る一連の個々のドットまたは画素へ展開してラスタ走査線を形成し、そのページの下へ引き続く走査線を次々に発生する過程である。
【０００４】
ページプリンタでは、ページ全体あるいはページを帯状に分割したバンドごとに、印刷前に印刷データをラスタ化し、バッファメモリに記憶する。しかし最近のカラー化および高解像度化に伴い、ラスタ化の処理量は増大する一途をたどっている。
【０００５】
そこでラスタデータへの展開処理を高速に行うために、専用ハードウェアを利用することが考えられた。上述したように、ページ内に描画される対象としては、画像、図形、文字等がある。これらの描画要素は、それぞれのオブジェクトの型に応じて特殊な処理を必要とする。例えば、画像の場合、解像度変換、アフィン変換、これらの処理に伴う補間、色処理等が必要である。また、図形の場合には、座標変換、ベクタ／ラスタ変換、塗りつぶし処理等が必要である。さらに、文字の場合には、アウトライン座標の変換、ヒント処理、ベクタ／ラスタ変換、塗りつぶし処理等が必要である。これらすべての処理を行うためには、それぞれの処理に対応した専用ハードウェアを１つずつ用意しなければならない。そのため、専用ハードウェア量が多くなってシステム全体が高価になるという問題があった。また、ラスタデータへの展開を目的とするハードウェアは、特定の種別の描画要素について展開処理を行う時だけにしか使用できない。そのため、処理に応じた専用ハードウェアを並列的に用意しておくことはその使用率を考えると大変無駄であるという問題があった。
【０００６】
従来このような問題を解決する試みとして、全ての展開処理機能について並列にハードウェアを設けるのではなく、ハードウェアのプログラマビリティあるいは構造を再構成することにより機能を変更し、少ないハードウェアで多くの機能を高速に実現しようとする試みが行われている。そのような考え方を持った従来の技術として、特開平１０−２７８３６１号公報に記載されたものがある。
【０００７】
特開平１０−２７８３６１号公報には、入力された印刷データを出力装置に出力するための展開処理を再構成ハードウェアを使って行うことにより、必要なハードウェア量を減らすとともに、処理対象の印刷データに応じて最適なハードウェア構成を採用することでスループットの向上を図る旨が記載されている。例えば、印刷データに含まれる描画要素の重なりを判定して、判定情報と印刷データの内容とを基に印刷データの描画要素を並び換える。これによって、再構成ハードウェア手段を並列的に動作させ、また再構成ハードウェア手段の構成の変更回数を少なくすることで、再構成ハードウェア手段による展開処理の高速化を可能としている。しかし、再構成ハードウェア手段の再構成には、デバイス規模にもよるが数百マイクロ秒から数十ミリ秒の時間がかかる。再構成ハードウェアが２０ＭＨｚで動作すると仮定すると１クロックは０．０５マイクロ秒なので、この再構成にかかる時間の処理全体に占める割合は大きく、再構成の回数をさらに少なくしなければならない。
【０００８】
この問題に対し、例えば特願平１１−６０４３７号では、再構成ハードウェア手段で処理する描画要素を予め分類しておき、各共通の描画要素ごとに再構成ハードウェア手段を再構成し、連続して展開処理を行っている。また特願平１１−６０４５０号では、ある描画要素で再構成ハードウェア手段を再構成したら、その構成で展開可能な描画要素について連続して展開処理を行う。これらによって再構成の回数が減少し、全体の処理時間を短縮することができる。しかし描画要素を分類したり、同じ回路構成で展開可能な描画要素を選択するために時間がかかるという問題がある。
【０００９】
さらに特願平１１−５７９３１号では、再構成ハードウェア手段の再構成と、再構成ハードウェア手段で処理すべきデータの生成とを並行して行うことで、さらなる処理時間の短縮を図り、高速化を可能にしている。例えば上述の描画要素を分類したり、同じ回路構成で展開可能な描画要素を選択する処理と、再構成ハードウェア手段の再構成を並列的に実行することも考えられる。しかし、再構成ハードウェア手段の再構成に要する時間は短縮される方向にあり、並列処理されるうちの再構成ハードウェア手段の再構成だけが早く終わってしまい、再構成ハードウェア手段における展開処理が待たされる場合も発生している。そのため、さらなる高速化が要望されていた。
【００１０】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、再構成可能な処理手段を有効に用い、さらなる高速化を実現した情報処理装置および情報処理方法を提供することを目的とするものである。
【００１１】
【課題を解決するための手段】
本発明は、回路機能を再構成することが可能な処理手段を用いて回路機能の再構成と該回路機能による１または複数の処理の実行を繰り返して行う情報処理装置および情報処理方法であって、処理手段に対して最初に実行する処理に対応する回路機能を再構成して最初の処理を実行する。その回路機能の再構成及び最初の処理の実行中に、並行して、残りの処理を参照して同じ種類ごとに処理の順番を決定したり、あるいは、残りの処理を参照して同じ回路機能で実行可能な処理を選択する。
【００１２】
また本発明は、回路機能を再構成することが可能な展開処理手段を用いて少なくとも文字、図形、画像の描画要素のいずれかを有し所定の描画命令で記述された描画データに基づいて位置情報を含む形式の情報に展開する情報処理装置および情報処理方法であって、描画データからその描画データに含まれる描画要素に対応させて構成情報を付加して中間データを生成し、展開処理手段によって中間データを展開する。展開処理手段が最初の中間データに付加された構成情報に基づいて回路機能の再構成とその回路機能による最初の中間データの展開を行うのと並行して、残りの中間データを参照して、同じ回路機能で実行可能な種類ごとに中間データの順番を決定し、あるいは同じ回路機能で実行可能な中間データの抽出を行う。
【００１３】
このように、処理手段の再構成とともに再構成された回路機能の実行も並列的に行うので、例えば処理手段において回路機能の再構成が早く終わってしまった場合でも、他の処理の終了を待つことなく続けて処理を実行するので、並列処理によるさらなる高速化を実現することができる。
【００１４】
【発明の実施の形態】
図１は、本発明の実施の一形態を含む印刷処理装置の一例を示すブロック図である。図中、１は描画データ、２は描画データスプール部、３は描画データ解釈部、４は変換処理部、５は展開処理部、６は出力装置制御部、７は出力装置、１１は再構成可能展開処理部、１２は再構成制御部、１３は構成データ管理部である。
【００１５】
描画データ１は印刷処理装置で処理可能な記述言語で記述されたものであり、図示しないパーソナルコンピュータやワークステーション等において、文書作成や編集等を処理するアプリケーションプログラムで作成された文書データから生成されたものである。以下の説明において、描画データ１の記述言語としてＧＤＩであるとするが、これに限らず、例えばＡｃｒｏｂａｔ（商品名）で代表されるＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）、ＰｏｓｔＳｃｒｉｐｔ（商品名）などで代表されるページ記述言語（ＰＤＬ）であってもよい。
【００１６】
図１に示す印刷処理装置は、描画データスプール部２と、描画データ解釈部３と、変換処理部４と、展開処理部５と、出力装置制御部６と、出力装置７とから構成されている。描画データスプール部２は、描画データ１を入力するための通信機能や、描画データ解釈部３へ出力されるまで描画データを一時的に記憶する機能等を備えている。
【００１７】
描画データ解釈部３は、描画データプール部２に入力された描画データを、定められた記述言語のシンタックスに従ってトークンとして切り出した後、トークンを解釈し、内部命令やその引数に変換する。内部命令には、文字／図形／画像の描画を実行する描画命令や、色や線属性など描画に必要な情報を設定する描画状態命令がある。描画命令は変換処理部４へ転送される。
【００１８】
変換処理部４は、入力された描画データから展開処理部５における出力画像データへの展開処理可能な中間データに変換する。中間データに変換する目的は、展開処理部５での高速な展開処理を可能にすることである。また中間データには、展開処理に関する情報として、ハードウェア構成識別子が付加される。このハードウェア構成識別子は、展開処理部５の再構成可能展開処理部１１を再構成するための構成データに対する識別子である。なお、変換処理部４及び中間データについての詳細は後述する。
【００１９】
展開処理部５は、変換処理部４から出力される中間データを例えばバンド単位に読み出し、展開処理部５内の図示しない出力バッファメモリに出力画像データを作成する。すなわち変換処理部４から出力される中間データを受領し、出力装置７において出力可能な出力画像データへの展開を行う。
【００２０】
展開処理部５において展開処理されたデータは、展開処理部５内の２つの図示しない出力バッファメモリに交互に蓄積される。なお、出力装置７がカラーページプリンタの場合、出力バッファメモリに交互に蓄積される出力画像データは出力装置７で印刷している記録色の印刷データに対応する。出力バッファメモリに蓄積された出力画像データは、出力装置７のデータ要求に応じて、交互に読み出されて出力装置７に出力される。
【００２１】
展開処理部５は、再構成可能展開処理部１１、再構成制御部１２、構成データ管理部１３等を有している。上述のように入力される描画データには画像、図形、文字等の描画要素が含まれ、これらはそれぞれのオブジェクトの型に応じて特殊な処理を必要とする。例えば、画像の場合、解像度変換、アフィン変換、これらの処理に伴う補間、色処理等である。図形の場合には、座標変換、ベクタ／ラスタ変換、塗りつぶし処理等が必要である。文字の場合には、アウトライン座標の変換、ヒント処理、ベクタ／ラスタ変換、塗りつぶし処理等が必要である。展開処理部５は、ハードウェアのプログラマビリティあるいは構造を再構成することにより機能を変更し、少ないハードウェアで多くの機能を高速に実現させるため、再構成可能展開処理部１１を有している。この再構成可能展開処理部１１によって様々な展開処理を可能としている。再構成可能展開処理部１１を構成する再構成ハードウェア部については後述するが、例えばフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などで構成することができる。
【００２２】
再構成制御部１２は、再構成可能展開処理部１１を制御し、再構成可能展開処理部１１に対して回路機能の再構成を行わせるとともに、中間データから出力画像データへの展開を行わせる。変換処理部４から最初の中間データが生成されると、その中間データに対応する回路機能を再構成可能展開処理部１１に再構成し、続けて最初の中間データの展開を実行させる。この最初の中間データに対応する回路機能の再構成と展開の実行中、変換処理部４による中間データの生成が並行して行われる。また、最初の中間データに対応する回路機能の再構成と展開の実行中に、残りの中間データを参照して同じ種類ごとに展開を行う中間データの順番を決定する。あるいは、残りの中間データを参照して同じ回路機能で実行可能な中間データを選択する。このように、中間データの順番の決定や同じ回路機能で実行する中間データの選択を行うことによって、再構成可能展開処理部１１の再構成の回数を減少させ、処理時間を短縮している。さらに、中間データの順番の決定や選択を、再構成可能展開処理部１１における再構成および展開の実行と並行して行うことにより、さらなる処理時間の短縮を図っている。
【００２３】
構成データ管理部１３は、再構成可能展開処理部１１に回路機能を再構成するための構成データを保持している。再構成制御部１２が中間データに対応した回路機能を再構成可能展開処理部１１に再構成する際に、中間データ中のハードウェア構成識別子に基づいて、この構成データ管理部１３から構成データを読み出す。
【００２４】
出力装置制御部６は、展開処理部５内の図示しない出力バッファメモリに蓄積された出力画像データを出力装置７へ転送するとともに、出力装置７の状態制御および管理を行う。
【００２５】
出力装置７は、画像を出力する。例えば出力装置７は、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、ＢＫ（ブラック）の各色毎に露光、現像、転写を繰り返すことによりフルカラー画像を出力できるレーザ走査方式の電子写真方式を用いたカラーページプリンタとすることができる。出力装置制御部６の制御に基づき、出力バッファメモリに蓄積された出力画像データを受け取って、記録用紙に印刷し、出力する。もちろん出力装置はカラーページプリンタに限られるものではない。
【００２６】
図２は、本発明の実施の一形態を含む印刷処理装置の一例における動作の一例を示すフローチャートである。Ｓ６１において、描画データスプール部２に文字／図形／画像を含む描画データ１が入力されると、描画データ解釈部３、変換処理部４を介してバンド単位に分割された中間データが生成される。生成された中間データに対し、各描画オブジェクトのハードウェア構成識別子を含む中間データテーブルが各バンドに１つ生成される。そして変換処理部４は、展開処理部５の要求に応じて中間データを出力する。
【００２７】
Ｓ６２において、展開処理部５の再構成制御部１２は、変換処理部４から入力される中間データに付加された中間データテーブルを調べ、中間データテーブル中に含まれるハードウェア構成識別子によって、必要に応じて構成データ管理部１３からハードウェア構成に関する構成データを読み出し、再構成可能展開処理部１１の回路機能を再構成する。そして、再構成された再構成可能展開処理部１１により中間データを出力画像データに展開する。
【００２８】
次にＳ６３において、バンド内の全ての中間データについて処理が終了したことをチェックし、終了していなければＳ６２に戻り、必要に応じて再構成可能展開処理部１１の回路機能を再構成しながら展開の実行を繰り返す。バンド内の全ての中間データについての展開が終了し、出力装置７のサイクルアップ、あるいは出力準備が完了すると、Ｓ６４において、展開処理部５内の出力バッファメモリから出力装置７に対し、出力装置７の記録速度に応じて出力画像データが１ライン毎に転送される。これにより出力装置７による出力が行われる。
【００２９】
次にＳ６５において、ページ内の全てのバンドの処理が終了したか否かをチェックする。終了していなければＳ６２へ戻り、１つの出力バッファメモリ内の出力画像データが出力されている間に、次のバンドに対してＳ６２以下の展開処理を繰り返し実行する。次のバンドの出力画像データは、出力画像データの読み出しを行っている出力バッファメモリとは異なる出力バッファメモリに格納する。このようにして展開処理部５の出力画像データへの展開処理及び出力装置７での出力処理は、１ページ分の出力画像データが処理されるまで、色毎にあるいは４色同時に繰り返される。１ページ分の展開処理が終了していれば、そのページの展開処理を終了する。複数ページの出力を行う場合には、図２に示す処理を各ページごとに行い、全ページの出力が終了するまで繰り返せばよい。
【００３０】
以上、本発明の実施の一形態を含む印刷処理装置の一例における動作の概要について説明した。次に、この印刷処理装置の主要部の詳細について説明する。図３は、変換処理部の一例を示す構成図である。図中、２１は命令実行部、２２は描画状態命令記憶部、２３は画像処理部、２４はベクタ処理部、２５はリスト生成部、２６はバンド分割管理部、２７は中間データ記憶部である。変換処理部４は、図３に示すように、命令実行部２１と、描画状態命令記憶部２２と、画像処理部２３と、ベクタ処理部２４と、リスト生成部２５、バンド分割管理部２６と、中間データ記憶部２７を含んでいる。
【００３１】
命令実行部２１は、描画データ解釈部３から送られてきた内部命令を実行する。ここで実行する命令は、主に描画命令と描画状態命令がある。図４は、描画命令の種類とその描画に必要な情報の一例の説明図である。例えば描画命令には、図４に示すように３種類の描画命令があり、それぞれの描画に必要な情報が示されている。このうちアンダーラインがある情報については、描画命令中の引数として与えられ、その他の情報はあらかじめ初期設定や先行する命令などにより描画状態命令記憶部２２に記憶されている。描画命令の実行は、画像描画以外は受け取った描画命令をそのままベクタ処理部２４へ転送する。画像描画の場合は、受け取った描画命令を画像処理部２３へ転送するとともに、画像ヘッダの縦と横の大きさをベクタ処理部２４へ転送する。また描画状態命令については、命令を描画状態命令記憶部２２へ転送する。
【００３２】
描画状態命令記憶部２２は、命令実行部２１から受け取った命令に含まれる引数の値で、例えば図４に示したアンダーラインの無い情報についての値の設定を行い、それらを記憶する。また、画像処理部２３，ベクタ処理部２４，バンド分割管理部２６などの要求に従って、それらの値を転送する。
【００３３】
画像処理部２３は、命令実行部２１から入力された命令の引数である入力画像ヘッダと入力画像データを受け取り、ヘッダに付加された圧縮ＩＤを参照して、もし圧縮された画像が入力された場合には圧縮を伸張し、描画状態命令記憶部２２から獲得した変換マトリックスを使ってアフィン変換する。さらに、場合によっては処理後の画像を圧縮し、出力画像ヘッダと出力画像データを生成してバンド分割管理部２６へ転送する。この圧縮には、もともと入力画像データを圧縮した圧縮方式を使用するのが通常であるが、特にそうしなくてもよい。例えば、入力画像データ側でＤＣＴ（ディスクリート・コサイン・トランスフォーム）で圧縮されていた場合、それをＤＣＴで圧縮してもよいし、他の圧縮方式、例えばＬＺＷで圧縮してもよいし、圧縮を行わなくてもよい。また、アフィン変換は、中間データ記憶部２７のメモリ量を削減するために、わざと出力装置７の解像度より小さい解像度用にアフィン変換しておいてもよい。
【００３４】
ベクタ処理部２４は、命令実行部２１から送られてきた命令と引数、描画状態命令記憶部２２の値を使用して、塗りつぶし描画を除く、新たに描画するためのベクタデータを生成する。まず文字描画の場合について説明する。引数で与えられた文字コードと、描画状態命令記憶部２２から獲得したフォントＩＤを図示しないフォント管理部へ転送して、文字のアウトラインデータを獲得する。獲得したアウトラインデータには、描画原点（カレントポイント）の情報が含まれていないので、描画状態命令記憶部２２から獲得したカレントポイントのオフセットをアウトラインデータに加えることによって、目的のベクタデータを生成する。画像描画の場合には、引数で与えられた画像ヘッダの縦と横のサイズからそれに対する矩形ベクタを生成し、描画状態命令記憶部２２から獲得したカレントポイントのオフセットを加えることで目的のベクタデータを生成する。ストローク描画の場合は、引数で与えられたベクタと描画状態命令記憶部２２から獲得した各種の線属性から、太さを持った線のアウトラインベクタを生成する。このように生成したベクタ（塗りつぶし描画の場合は命令実行部２１から直接受け取ったベクタ）を、マトリックス変換し、さらにベクタ中に曲線のベクタがある場合にはすべて直線で構成されたショートベクタに変換する。生成されたベクタはリスト生成部２５へ転送する。
【００３５】
リスト生成部２５は、ベクタ処理部２４で生成されたベクタから、１つの描画オブジェクト毎にヘッダ情報と、描画オブジェクトを構成するベクタの始点、傾き、方向、およびベクタと走査ラインとの交差数を含むエッジ情報とから構成されるリストデータを生成する。生成されたリストデータはバンド分割管理部２６へ転送する。
【００３６】
バンド分割管理部２６は、画像処理部２３及びリスト生成部２５から入力された、それぞれヘッダ情報を含む画像データ及びリストデータのうち、複数のバンドにまたがるデータをバンド毎に分割する。さらにバンド毎に分割したデータに付加情報を付けて中間データを生成する。中間データは、中間データ記憶部２７へ送られる。
【００３７】
図５は、中間データの構造の一例の説明図である。中間データは上述のようにバンド毎に分割した描画オブジェクトデータＯＤに、付加情報としてＢＩＤ、ＯＩＤ、ＰＩＤを付加したものである。付加情報は、中間データを管理するための管理情報と、再構成可能展開処理部１１で処理する内容を表す展開処理識別子から構成されている。管理情報は、どのバンドに属するかを示すためのバンド識別子（ＢＩＤ）、１回の描画命令に対して割り当てられる識別番号であるオブジェクト識別子（ＯＩＤ）によって構成されている。また展開処理識別子（ＰＩＤ）は、その描画オブジェクトを再構成可能展開処理部１１で展開処理するための展開処理ハードウェア構成の種類を示す識別情報としての識別子である。
【００３８】
これら、ＢＩＤ、ＯＩＤ、ＰＩＤの付加情報は、図５に示すように、描画命令によって生成されたバンド毎の、それぞれヘッダ情報を含む画像データ及びリストデータである描画オブジェクトデータＯＤの前に付加される。ここで、中間データとしての画像データは、容量を減少させるために圧縮して格納されていてもよい。また画像ヘッダ情報は、画像の大きさを表すパラメータのほかに、色変換の処理の種類や圧縮方式の種類も含んでいる。中間データは、このような描画オブジェクトに対するデータの集合である。
【００３９】
図３に戻り、中間データ記憶部２７は、中間データから描画オブジェクトに付加された付加情報中のバンド識別子とオブジェクト識別子を解釈してバンド毎にまとめ、さらに描画順序に従って中間データを記憶する。また、命令実行部２１でページの出力コマンドを解釈すると、ＥＯＰ（Ｅｎｄ  Ｏｆ  Ｐａｇｅ）がバンド分割管理部２６を経由して中間データ記憶部２７へ送られ、中間データ記憶部２７に記憶された各バンドの最終データにＥＯＤ（Ｅｎｄ  Ｏｆ  Ｄａｔａ）を表すデータを付加して、バンドデータの終了を明確にする。このＥＯＰは展開処理部５にも送られ、展開処理部５の処理を起動する。
【００４０】
さらに中間データ記憶部２７は、展開処理部５からの中間データ転送要求を受けると、バンド単位で展開処理部５内の入力バッファへ中間データを転送する。このとき、中間データ記憶部２７では、中間データテーブルを作成する。中間データテーブルは、例えば次の図６に示すように、１つの描画オブジェクトデータが格納される入力バッファ上の場所を示す先頭アドレス（ＡＤＲ）と、その描画オブジェクトの展開処理識別子に対応するハードウェア構成識別子（ＨＤＩＤ）とを１組のデータとして、このデータを並べたものである。ハードウェア構成識別子（ＨＤＩＤ）は、上述のように、実際の再構成可能展開処理部１１のハードウェア構成を示す識別子である。中間データテーブルの最後はＮＵＬＬでターミネートする。
【００４１】
図６は、中間データテーブルの一例の説明図である。図６（Ａ）には、展開処理部５内の入力バッファを示している。この入力バッファには、バンド毎に中間データが格納される。各バンド毎のデータは、図６（Ｂ）に示すようなデータ配列を持つ。ＡＤＲ０、ＡＤＲ１、ＡＤＲ２、…は、それぞれの描画オブジェクトデータが格納されている入力バッファ上の場所を示す先頭アドレスである。図中、矢印で示すように、先頭アドレスＡＤＲ０、ＡＤＲ１、ＡＤＲ２、…は、それぞれの対応するオブジェクトデータＯＤ０、ＯＤ１、ＯＤ２、…の入力バッファ上の格納先頭アドレスを示している。ここでオブジェクトデータＯＤ０、ＯＤ１、ＯＤ２、…は、図５で説明したように、それぞれヘッダ情報と画像データ及びリストデータからなる描画オブジェクトデータである。
【００４２】
個々のオブジェクトデータの先頭アドレスＡＤＲ０、ＡＤＲ１、ＡＤＲ２、…、ＡＤＲ（Ｎ）の各々に対応して付加されているＨＤＩＤ１、ＨＤＩＤ０、ＨＤＩＤ１、…、ＨＤＩＤ２は、それぞれの描画オブジェクトの展開処理識別子（図５におけるＰＩＤ）を、実際の再構成可能展開処理部１１のハードウェア構成と１対１に対応するハードウェア構成識別子に変換したものである。例えばＡＤＲ０で指定されるオブジェクトデータＯＤ０の展開処理は、再構成可能展開処理部１１のハードウェア構成を、ハードウェア構成識別子ＨＤＩＤ１によって指定されるハードウェア構成により実行することが示されている。以下同様に、ＡＤＲ１で指定されるオブジェクトデータＯＤ１の展開処理は、ハードウェア構成識別子ＨＤＩＤ０によって指定されるハードウェア構成、ＡＤＲ２で指定されるオブジェクトデータＯＤ２の展開処理はハードウェア構成識別子ＨＤＩＤ１によって指定されるハードウェア構成で実行することが示されている。
【００４３】
図７は、展開処理部５に含まれる再構成可能展開処理部１１の一例を示すブロック図である。図中、３１は再構成ハードウェア部、３２はリフレッシュ制御部、３３は中間データ転送制御部、３４は出力画像データ転送制御部、３５はアービトレーション部、３６はメモリ部、４１，４２は入力バッファ、４３，４４は出力バッファ、４５はワーク領域である。
【００４４】
中間データ転送制御部３３は、変換処理部４で生成されたバンド毎の中間データを読み込み、メモリ部３６の入力バッファＡ４１あるいは入力バッファＢ４２へ書き込む。
【００４５】
再構成ハードウェア部３１は、入力バッファＡ４１あるいは入力バッファＢ４２から中間データを読み込んで、展開して出力バッファＡ４３あるいは出力バッファＢ４４へ描画する。この再構成ハードウェア部３１は、構成データ管理部１３が管理記憶する構成データを再構成制御部１２の制御により書き込むことにより、機能を変えることが可能である。典型的には、再構成ハードウェア部３１は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）により構成できる。
【００４６】
出力画像データ転送制御部３４は、描画済の出力バッファＡ４３あるいは出力バッファＢ４４から展開された出力画像データを読み込み、出力装置制御部６のシリアル出力クロック信号に同期して出力装置７へ出力する。
【００４７】
メモリ部３６は、この例では２つの入力バッファＡ４１、入力バッファＢ４２と、２つの出力バッファＡ４３、出力バッファＢ４４、それにワーク領域４５で構成されている。もちろん入力バッファ、出力バッファとも、２つに限らず、１つあるいは３つ以上で構成してもよい。
【００４８】
リフレッシュ制御部３２は、メモリ部３６のリフレッシュを制御する。
【００４９】
アービトレーション部３５は、リフレッシュ制御部３２、中間データ転送制御部３３、出力画像データ転送制御部３４、再構成ハードウェア部３１、再構成制御部１２のそれぞれがメモリ部３６をアクセスする際に、それぞれのブロックに割り当てられたアクセスのプライオリティに応じてアービトレーション制御を行う。
【００５０】
図８は、入力バッファと出力バッファの使用方法の一例についての説明図である。図８（Ａ）は、入力バッファＡ４１に中間データを入力中の各バッファの使用状態を示し、図８（Ｂ）は、入力バッファＢ４２に中間データを入力中の各バッファの使用状態を示している。図８（Ａ）においては、バンドｉに対応する中間データを入力バッファＡ４１に入力中であり、入力バッファＢ４２には既にバンド（ｉ−１）に対応する中間データが入力済みである。再構成ハードウェア部３１は入力バッファＢ４２に蓄えられた中間データを読み出して、これを展開して、出力バッファＢ４４に描画する。出力バッファＡ４３には、バンド（ｉ−２）に対応する中間データを展開描画した結果の出力画像データが蓄えられており、出力画像データ転送制御部３４はこれを読み出して出力装置７に出力している。
【００５１】
図８（Ｂ）においては、バンド（ｉ＋１）に対応する中間データを入力バッファＢ４２に入力中であり、入力バッファＡ４１には既にバンドｉに対応する中間データが入力済みである。再構成ハードウェア部３１は、入力バッファＡ４１に蓄えられた中間データを読み出してこれを展開し、出力バッファＡ４３に描画する。出力バッファＢ４４には、バンド（ｉ−１）に対応する中間データを展開描画した結果の出力画像データが蓄えられており、出力画像データ転送制御部３４はこれを読み出して出力装置７に出力している。
【００５２】
ワーク領域４５は、展開処理部５が変換処理部４から入力した中間データを展開するときに、必要に応じて一時的なワーク領域として用いる。
【００５３】
図９は、展開処理部５に含まれる再構成制御部１２の動作の一例を示すフローチャートである。図７に示した再構成可能展開処理部１１は、変換処理部４により各バンド毎に作成された、例えば図６に示すような中間データテーブルを用いて中間データを展開する。再構成制御部１２は、入力バッファから中間データテーブルを入力し、図９に示すような動作により再構成ハードウェア部３１を制御する。
【００５４】
まずＳ７１において、入力バッファに格納されている各バンド毎に１つ存在する中間データテーブルから未処理の１組のデータを読み込む。例えば図６に示す例において最初に読み込む際には、先頭のアドレスＡＤＲ０とハードウェア構成識別子ＨＤＩＤ１の組が最初に読み込まれる。
【００５５】
Ｓ７２において、読み込まれたテーブルデータがＮＵＬＬであるか否かチェックし、ＮＵＬＬであれば処理を終了し、ＮＵＬＬでなければＳ７３へ処理を進める。図６に示すテーブルから理解されるようにＮＵＬＬは中間データテーブルの終了を示すものであり、ＮＵＬＬ以降にはデータが存在しない。そのため、すべてのデータについて展開処理を行ったものとして処理を終了する。また、中間データテーブルから読み込まれたデータがＮＵＬＬでない場合は、有効データが読み込まれたことを意味する。
【００５６】
本発明では、中間データテーブルから有効なデータが１つ読み込まれると、そのデータに対応した再構成可能展開処理部１１の再構成およびそのデータに対する展開処理と、再構成された再構成可能展開処理部１１の回路機能で実行可能なデータを中間データテーブルから選択する処理とを、並行して行う。
【００５７】
一方の処理は、Ｓ７３において、Ｓ７１で読み込んだデータのハードウェア構成識別子と同じハードウェア構成識別子を有するデータを中間データテーブルから探す。Ｓ７４において処理リストテーブルを作成し、Ｓ７３で探した同じハードウェア構成識別子を有するデータを処理リストテーブルに登録する。図１０は、処理リストテーブルの一例の説明図である。この例では、同じハードウェア構成識別子を有する中間データテーブルのデータへのポインタの集合として構成されている。そして、最後のポインタの後には、ＮＵＬＬが設けられている。もちろんこのようなデータ構造の他、中間データテーブルのデータをコピーして構成するなど、種々のデータ構造を用いることができる。
【００５８】
他方の処理は、Ｓ７５において、Ｓ７１で中間データテーブルから読み込まれたデータに対応した再構成可能展開処理部１１の再構成を行う。再構成可能展開処理部１１の再構成に要する時間は、並行して行われている処理リストテーブルの作成時間よりも短い場合がある。本発明では、Ｓ７５における再構成可能展開処理部１１の再構成の後、さらにＳ７６において、Ｓ７１で中間データテーブルから読み込んだデータに対応したオブジェクトデータについての展開を再構成可能展開処理部１１で実行する。これによって、中間データテーブルを探索して処理リストテーブルを作成する処理により全体の処理速度が低下するのを防止し、全体の処理の高速化を図ることができる。
【００５９】
上述の２つの処理は、それぞれ独立して行われる。Ｓ７３およびＳ７４における処理リストテーブルの作成処理と、Ｓ７５およびＳ７６における再構成可能展開処理部１１の再構成および最初のオブジェクトデータの展開の実行を終えると、Ｓ７７に進む。なお、２つの処理の同期を取る位置は、Ｓ７７の手前に限らず、例えばＳ７８の手前や、Ｓ７２における判定終了後など、再構成可能展開処理部１１での処理が重ならない位置であればよい。
【００６０】
Ｓ７７では、Ｓ７４で作成した処理リストテーブルを参照し、ＮＵＬＬか否かを判定する。ＮＵＬＬではなく、中間データテーブルのデータへのポインタが登録されている場合には、Ｓ７８において、そのポインタで示される中間データテーブル中のデータについて、対応するオブジェクトデータの展開を再構成可能展開処理部１１で行う。上述のように処理リストテーブルには、同じハードウェア構成識別子を有するデータに対するポインタが集められているので、再構成可能展開処理部１１の再構成を行わずに連続して展開を実行することができる。そのため、再構成可能展開処理部１１の再構成の回数を減少させ、高速な展開処理を行うことができる。
【００６１】
処理リストテーブルがＮＵＬＬになり、同じ回路機能で展開できるデータがなくなった場合には、Ｓ７１へ戻り、他のハードウェア構成識別子を有するデータについての処理を行う。このような処理を繰り返すことにより、中間データテーブルに登録されているすべてのデータに対応するオブジェクトデータの展開を行う。
【００６２】
上述のような制御を再構成制御部１２で行うことにより、入力バッファ中の中間データを展開処理するために必要な再構成可能展開処理部１１（再構成ハードウェア部３１）の再構成回数、すなわちハードウェア構成を変更して異なる展開処理を実行可能なハードウェアに変更するためのハードウェアの書き換え処理が、中間データテーブルに登録されたハードウェア構成識別子の種類と同回数まで削減される。さらに本発明では、同じハードウェア構成識別子を持つデータを探索する処理を、最初のデータに対応する再構成可能展開処理部１１の再構成およびそのデータに対応するオブジェクトデータの展開処理と並行して行う。そのため、再構成回数を削減するための処理リストテーブルの作成処理によって処理速度が低下することはなく、システム全体として処理速度の向上を図ることができる。
【００６３】
図９に示した再構成制御部１２の動作の一例について、具体例として図６に示したような中間データテーブルが作成されている場合について説明する。図１１は、再構成制御部１２における処理リストテーブルの作成処理の一例の説明図、図１２は、展開後のデータを出力バッファに格納する際の動作の一例の説明図である。再構成制御部１２は、描画オブジェクトの描画順序を保持するため、図１２に示すように、描画順序に従って登録されている入力バッファの中間データテーブルと同じ登録順で、出力バッファにも出力データテーブルを作成する。出力データテーブルに登録されるデータは、再構成ハードウェア部３１による展開処理後の出力画像データが格納されている出力バッファにおける先頭アドレス値である。出力画像データは、再構成ハードウェア部３１で展開処理された順序で格納されている。上述のように同じハードウェア構成識別子を有するデータに対応するオブジェクトデータを連続して展開するため、出力画像データは中間データテーブルの順とは異なった順序で格納されることがある。出力画像データ転送制御部３４は、出力バッファにある出力データテーブルのデータを順にＮＵＬＬまで読み出しながら、出力装置制御部６の制御に従って出力画像データを出力装置７に転送する。このように制御することで、描画データ解釈部３で解釈された順序、つまりオブジェクトの描画順序を保持することが可能となる。
【００６４】
図１１、図１２に従って具体的な処理例について説明する。図９に示す処理の実行が開始されると、中間データテーブルから最初のデータ［ＡＤＲ０，ＨＤＩＤ１］が読み込まれる。ＮＵＬＬではないので、このデータに対する再構成可能展開処理部１１の再構成および展開の実行と、同じハードウェア構成識別子を有するデータの探索および処理リストテーブルの作成を並行して行う。
【００６５】
一方の処理では、最初のデータ［ＡＤＲ０，ＨＤＩＤ１］のハードウェア構成識別子ＨＤＩＤ１と同じハードウェア識別子を有するデータを中間データテーブルから探索する。この例では、３つ目のデータ［ＡＤＲ２，ＨＤＩＤ１］が該当する。同様にハードウェア構成識別子ＨＤＩＤ１を有するデータが集められ、それらのデータを指すポインタを処理リストテーブルに格納する。これによって、図１１に示すように処理リストテーブルから中間データテーブルへの参照が可能になる。なお、処理リストテーブルの最後のデータの後ろには、ＮＵＬＬが付加される。
【００６６】
このような処理リストテーブルを作成する処理と並行して、最初のデータ［ＡＤＲ０，ＨＤＩＤ１］に対応する再構成可能展開処理部１１の再構成を行う。具体的には、ハードウェア構成識別子ＨＤＩＤ１に対応する構成データを構成データ管理部１３から読み出し、再構成可能展開処理部１１の再構成ハードウェア部３１に対して構成データを書き込むことによって行われる。このようにして再構成可能展開処理部１１の再構成が完了すると、再構成された再構成ハードウェア部３１により、最初のデータ［ＡＤＲ０，ＨＤＩＤ１］の先頭アドレスＡＤＲ０以降に格納されているオブジェクトデータＯＤ０の展開を実行する。展開された出力画像データは出力バッファに格納されるとともに、出力データテーブルの最初のエントリに出力画像データのアドレスが格納される。
【００６７】
最初のデータ［ＡＤＲ０，ＨＤＩＤ１］に対応するオブジェクトデータＯＤ０の展開が終了し、また、処理リストテーブルの作成が終了したら、処理リストテーブルを参照し、処理リストテーブルに登録されている次のポインタを取得する。この例では図１１に示すように、中間データテーブルの３番目のデータを指し示すポインタが格納されている。そのため、処理リストテーブルに格納されているポインタから中間データテーブルの３番目のデータ［ＡＤＲ２，ＨＤＩＤ１］を取得する。そして、その先頭アドレスＡＤＲ２以降に格納されているオブジェクトデータＯＤ２の展開を、再構成可能展開処理部１１の再構成ハードウェア部３１で行う。展開された出力画像データは、出力バッファ中のオブジェクトデータＯＤ０に対応する出力画像データの後に出力され、その先頭アドレスが出力データテーブルの３番目のエントリに格納される。
【００６８】
このようにして処理リストテーブルに格納されているポインタを順次読み出し、そのポインタによって示される中間データテーブル中のデータに対応するオブジェクトデータを順次展開してゆく。処理リストテーブルにポインタが格納されている中間データテーブル内のデータは、同じハードウェア構成識別子を有しているので、再構成ハードウェア部３１の再構成を行わずに展開を行うことができる。
【００６９】
中間データテーブルの各ポインタに従って順に処理を行ってゆき、中間データテーブルからＮＵＬＬが読み出されたら、同じ回路機能によって展開を行うことができるオブジェクトデータがなくなったことを示している。再び中間データテーブルを参照し、未処理のデータを読み出す。この例では、２つ目のデータ［ＡＤＲ１，ＨＤＩＤ０］が読み出される。今度はハードウェア構成識別子がＨＤＩＤ０のデータを中間データテーブルから探索し、処理リストテーブルを作成する。それと並行して、２つ目のデータのハードウェア構成識別子ＨＤＩＤ０に対応する再構成可能展開処理部１１の再構成ハードウェア部３１の再構成と、２つ目のデータ［ＡＤＲ１，ＨＤＩＤ０］の先頭アドレスＡＤＲ１以降に格納されているオブジェクトデータＯＤ１の展開を実行する。その後、処理リストテーブルに格納されているポインタをもとに、同じ構成で展開できるオブジェクトデータについての展開を連続して行う。
【００７０】
このようにして、同じ再構成ハードウェア部３１の構成で展開できるオブジェクトデータごとに連続して展開し、同じ構成で展開できるオブジェクトデータがなくなると、再構成ハードウェア部３１の再構成を行って再び同じ構成で展開できるオブジェクトデータの展開を行う。そして、中間データテーブル内のすべてのデータに対応するオブジェクトデータの展開が終了するまで繰り返す。
【００７１】
このようにしてオブジェクトデータの展開が終了すると、図１２に示すように、出力画像データが出力バッファに展開処理順に蓄積されている。また、各出力画像データの先頭アドレスが中間データテーブルのデータ順に出力データテーブルに登録されている。出力バッファにおけるアドレスＡＤＲ０は出力バッファにおける出力画像データ０の先頭アドレス、アドレスＡＤＲ１は出力バッファにおける出力画像データ１の先頭アドレス、アドレスＡＤＲ２は出力バッファにおける出力画像データ２の先頭アドレスを示す。出力バッファから出力装置に対して出力画像データを出力する際には、出力データテーブルの先頭からアドレスを順に取り出し、指し示される先頭アドレスから始まる出力画像データを順に出力することで、適切な出力順で出力画像データを出力することができる。
【００７２】
図１３は、構成データ管理部１３の一例を示す構成図である。図中、５１は変換テーブル、５２は構成コード記憶領域、５３はアドレス計算部、５４は制御部、５５は読み出し制御部、５６は追加・更新部である。変換テーブル５１は、ハードウェア構成識別子を入力して、構成コード記憶領域５２のアドレス計算部５３で計算した先頭アドレスＣＦＡＤＲ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ａｄｒｅｓｓ）とデータサイズＣＦＳＩＺＥ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｉｚｅ）を出力するテーブルである。構成コード記憶領域５２は、実際のハードウェア構成識別子に対応する構成データが記憶される領域で、各エントリは可変長である。
【００７３】
制御部５４は、読み出し制御部５５と追加・更新部５６を有している。読み出し制御部５５は、再構成制御部１２から読み出し信号とハードウェア構成識別子が入力されると、変換テーブル５１にハードウェア構成識別子を出力し、構成データの構成コード記憶領域５２上の先頭アドレスとデータサイズを受け取る。次に、読み出し制御部５５は、受け取った先頭アドレスを構成コード記憶領域５２に出力して、データサイズ分のハードウェア構成識別子に対応する構成データを構成コード記憶領域５２から読み出して、再構成制御部１２に出力する。
【００７４】
追加・更新部５６は、図示しないホスト計算機などからネットワークを経由して送られてくる構成データにより、変換テーブル５１のエントリと構成コード記憶領域５２の構成データを追加したり、削除したり、更新したりする。構成コード記憶領域５２には、単体の機能を処理するさまざまな回路構成に対応した構成データ、同一の機能が複数個ある並列的な回路構成に対応した構成データ、異なる機能が複数個ある並列的な回路構成に対応した構成データ、異なる機能が複数個あるパイプライン的な回路構成に対応した構成データなど、様々な形態の回路機能を構成するための構成データが備えられる。
【００７５】
このような構成の構成データ管理部１３に構成データを記憶させているので、例えば同じ機能でも処理効率のよい回路が後から開発されても、追加・更新部５６などにより新しい回路の構成データに書き換えることができる。そのため、処理機能の更新や追加を容易に行うことができる。
【００７６】
図１４、図１５は、本発明の実施の一形態を含む印刷処理装置の一例における動作の別の例を示すフローチャートである。この例では、中間データ生成の途中で最初に再構成すべきハードウェア構成識別子を検出し、そのハードウェア構成識別子を再構成制御部１２に知らせ、その時点から中間データ生成、中間データテーブルの探索、処理リストテーブルの生成の各処理と、再構成可能展開処理部１１の再構成ハードウェア部３１の再構成及びそれに続く最初のデータに対する展開処理を並列的に実行する例を示している。なお、図１４，図１５に示すフローチャートは、図２に示した動作の概要とともに、図８に示した再構成制御部１２の動作に対応する部分についても含めて示している。なお、上述の動作の一例における説明と重複する部分については説明を省略する。
【００７７】
描画データスプール部２に文字、図形、画像の少なくともいずれかを含む描画データ１が入力されると、Ｓ８１において、描画データ解釈部３、変換処理部４を介してバンド単位に分割された中間データの生成が開始される。最初のオブジェクトデータに対する中間データが生成されると、生成された中間データに基づいて、Ｓ８４において再構成可能展開処理部１１の再構成を行う。さらにＳ８５において、再構成された再構成可能展開処理部１１によって最初のオブジェクトデータについての展開処理を行う。なお、最初のオブジェクトデータに対応する再構成可能展開処理部１１の再構成および最初のオブジェクトデータについての展開処理と並行して、最初のオブジェクトデータ以降のオブジェクトデータについて、Ｓ８２で中間データの生成を続ける。
【００７８】
変換処理部４において中間データの生成が終了すると、Ｓ８３へ移る。Ｓ８３の処理は図１５に示している。Ｓ９１において中間データテーブルを読み込み、Ｓ９２において、同じハードウェア構成識別子ごとに処理順が並ぶように処理リストを作成する。この例では、中間データテーブル中に現れるすべてのハードウェア構成識別子について、それぞれ、予め処理リストを作成する。処理リストは、例えば図１０に示すような処理リストテーブルをハードウェア構成識別子ごとに作成してもよいし、他の構成であってもよい。
【００７９】
Ｓ９３において、最初のオブジェクトデータが展開の対象になっているか否かを判断する。最初のオブジェクトデータが展開の対象になっている場合には、中間データの生成と並行して、そのオブジェクトデータに対応する再構成可能展開処理部１１の再構成とそのオブジェクトデータの展開処理が実行されている。そのため、Ｓ９５における再構成可能展開処理部１１の再構成処理をスキップしてＳ９６に進む。
【００８０】
最初のオブジェクトデータに対応する中間データが生成されてからＳ９６の手前までの処理は、Ｓ８４における最初のオブジェクトデータに対応する再構成可能展開処理部１１の再構成およびＳ８５における最初のオブジェクトデータの展開処理と並行して行われる。そのため、再構成可能展開処理部１１の再構成が中間データの生成および処理リストの生成よりも早く完了する場合でも、最初のオブジェクトデータの展開処理も並列的に実行することによって、中間データの生成および処理リストの生成により全体の処理速度を低下させることがなくなる。そのため、システム全体における処理速度の向上を図ることができる。
【００８１】
なお、Ｓ９３において、最初のオブジェクトデータが展開の対象になっていない場合には、Ｓ９４において処理リストがＮＵＬＬか否かを判定し、ＮＵＬＬであれば展開処理を終了する。処理リストがＮＵＬＬでなければ、展開するオブジェクトデータが残っていることを示している。Ｓ９５において、新たなハードウェア構成識別子に従って再構成可能展開処理部１１の再構成を行う。
【００８２】
Ｓ８５における最初のオブジェクトデータの展開処理が終了するとともに、処理リストの生成が完了した場合、あるいは、Ｓ９５において新たなハードウェア構成識別子に従って再構成可能展開処理部１１の再構成を行った後、Ｓ９６以降において同じハードウェア構成識別子を有するオブジェクトデータの展開を行う。Ｓ９６において、処理リストにおける次のデータに対応するハードウェア構成識別子が、現在、再構成可能展開処理部１１に構成したハードウェア構成識別子と同じであるか否かを判定する。同じハードウェア構成識別子を有するデータであれば、Ｓ９７において、再構成可能展開処理部１１でオブジェクトデータの展開を行う。この場合、同じハードウェア構成識別子を有しているので、再構成可能展開処理部１１の再構成を行わずに連続して展開を行うことができる。
【００８３】
Ｓ９６で処理リスト内にハードウェア構成識別子が同じデータがなくなったことを検出すると、Ｓ９８において、処理リストのデータから次のハードウェア構成識別子を選択し、Ｓ９３へ戻る。今度は最初のオブジェクトデータが展開の対象になっているわけではないのでＳ９４に進む。処理リストがＮＵＬＬでなければ、新たなハードウェア構成識別子に従ってＳ９５で再構成可能展開処理部１１の再構成を行い、Ｓ９７でそのハードウェア構成識別子を有するオブジェクトデータの展開を行うことになる。
【００８４】
このようにしてハードウェア構成識別子ごとに、同じハードウェア構成識別子を有するオブジェクトデータの展開を連続して行ってゆき、すべてのオブジェクトデータの展開を行う。すべてのオブジェクトデータの展開を終了すると、処理リストがＮＵＬＬとなり、Ｓ９４から図１４にＳ８６に移る。
【００８５】
Ｓ８６において、バンド内の全てのオブジェクトデータについて展開処理が終了したか否かを判定し、終了していなければ必要に応じて図１５に示した処理を繰り返し、再構成可能展開処理部１１の再構成を行いながら、同じ構成で展開できるオブジェクトデータの展開処理を繰り返す。バンド内の全てのオブジェクトデータについての展開処理が終了し、出力装置７のサイクルアップ、あるいは出力準備が完了したら、Ｓ８７において、出力バッファから出力装置７へ、出力装置７の記録速度に応じて出力画像データを１ライン毎に転送する。
【００８６】
次にＳ８８において、ページ内の全てのバンドの処理が終了したか否かを判定する。終了していなければ、Ｓ８３へ戻り、１つの出力バッファの出力画像データが出力されている間に、次のバンドについてのオブジェクトデータの展開処理を行って、別の出力バッファに出力画像データを格納する。このような処理が、１ページ分の出力画像データが出力されるまで、色毎にあるいは４色同時に繰り返される。１ページ分のオブジェクトデータがすべて展開され、出力画像データが出力装置７に転送されれば、１ページ分の処理は終了する。出力画像データが複数ページで構成される場合は、上述の処理を全ページの出力が終了するまで繰り返す。
【００８７】
この図１４，図１５に示した動作例では、中間データの生成および処理リストの生成処理と、最初のオブジェクトデータに対応する再構成可能展開処理部１１の再構成と最初のオブジェクトデータの展開処理とを、並列的に動作させているので、再構成可能展開処理部１１を有効に動作させてシステム全体の高速化を図ることができる。また、同じ再構成可能展開処理部１１の回路機能で展開可能なオブジェクトデータを連続して展開することにより、再構成の回数を減少させ、さらなる高速化を実現することができる。
【００８８】
なお、上述の図２，図９に示した動作例においても、この例と同様に、最初のオブジェクトデータの中間データが生成された時点から、最初のオブジェクトデータに対応する再構成可能展開処理部１１の再構成を開始するように構成してもよい。
【００８９】
また、上述の説明では、バンドごとの展開処理を前提として説明したが、本発明はこれに限らず、例えばページ単位で展開処理を行う場合についても同様に適用することが可能である。さらに、上述の説明では再構成可能展開処理部１１はデバイス全体を再構成するものとして説明したが、システムの動作中にデバイスの一部のみを再構成することが可能なデバイスにおいても適用可能であることは言うまでもない。このようなシステムの動作中にデバイスの一部のみを再構成することが可能なデバイスでは、最初にデバイス全体に機能を構成して、その後は一部分を再構成することになる。例えば図１４，図１５で説明した動作例を用いると、時間がかかる中間データの生成および処理リストの生成処理と、時間がかかる最初の再構成可能展開処理部１１の再構成とを並列的に行うことができ、さらなるシステム全体の処理速度の向上を期待できる。
【００９０】
さらに、上述の説明では本発明の画像処理装置および画像処理方法を印刷処理装置に適用した場合について示した。しかし本発明の画像処理装置および画像処理方法は印刷処理装置への適用に限られるものではなく、複数種類の処理を再構成可能なハードウェア手段で実行するあらゆる用途に適用可能である。
【００９１】
【発明の効果】
以上の説明から明らかなように、本発明によれば、最初の処理に対応する再構成可能な処理手段の再構成および最初の処理の実行と、同じ回路機能で実行可能な処理を選択し、あるいは、同じ回路機能で実行可能な処理ごとに分類する処理とを、並列的に実行する。そのため、処理手段の再構成にそれほど時間がかからない場合でも、処理手段を遊ばせることなく有効に動作させることができるので、システム全体の高速化を実現することができる。また、同じ回路機能で実行可能な処理を選択し、あるいは、同じ回路機能で実行可能な処理ごとに分類して、同じ回路機能で実行可能な処理を連続して実行させ、処理手段の再構成回数を低減している。これによって、さらに全体の処理時間を短縮し、さらなる高速化を実現することができるという効果がある。
【００９２】
さらに、再構成可能な処理手段を再構成するための構成データをメモリなどに記憶させているので、例えば同じ機能でも処理効率のよい回路が後から開発されても、新しい回路の構成データに書き替えることができ、処理機能の更新や追加を容易に行うことができる。
【００９３】
このような本発明の構成を印刷処理装置に適用すれば、少なくとも画像、図形、文字を含む印刷データの内容に応じて、少ないハードウェア資源で、しかも短時間で展開処理を行うことができ、印刷処理装置のスループットを向上させることができるという効果がある。
【図面の簡単な説明】
【図１】  本発明の実施の一形態を含む印刷処理装置の一例を示すブロック図である。
【図２】  本発明の実施の一形態を含む印刷処理装置の一例における動作の一例を示すフローチャートである。
【図３】  変換処理部の一例を示す構成図である。
【図４】  描画命令の種類とその描画に必要な情報の一例の説明図である。
【図５】  中間データの構造の一例の説明図である。
【図６】  中間データテーブルの一例の説明図である。
【図７】  展開処理部５に含まれる再構成可能展開処理部１１の一例を示すブロック図である。
【図８】  入力バッファと出力バッファの使用方法の一例についての説明図である。
【図９】  展開処理部５に含まれる再構成制御部１２の動作の一例を示すフローチャートである。
【図１０】  処理リストテーブルの一例の説明図である。
【図１１】  再構成制御部１２における処理リストテーブルの作成処理の一例の説明図である。
【図１２】  展開後のデータを出力バッファに格納する際の動作の一例の説明図である。
【図１３】  構成データ管理部１３の一例を示す構成図である。
【図１４】  本発明の実施の一形態を含む印刷処理装置の一例における動作の別の例を示すフローチャートである。
【図１５】  本発明の実施の一形態を含む印刷処理装置の一例における動作の別の例を示すフローチャート（一部詳細）である。
【符号の説明】
１…描画データ、２…描画データスプール部、３…描画データ解釈部、４…変換処理部、５…展開処理部、６…出力装置制御部、７…出力装置、１１…再構成可能展開処理部、１２…再構成制御部、１３…構成データ管理部、２１…命令実行部、２２…描画状態命令記憶部、２３…画像処理部、２４…ベクタ処理部、２５…リスト生成部、２６…バンド分割管理部、２７…中間データ記憶部、３１…再構成ハードウェア部、３２…リフレッシュ制御部、３３…中間データ転送制御部、３４…出力画像データ転送制御部、３５…アービトレーション部、３６…メモリ部、４１，４２…入力バッファ、４３，４４…出力バッファ、４５…ワーク領域、５１…変換テーブル、５２…構成コード記憶領域、５３…アドレス計算部、５４…制御部、５５…読み出し制御部、５６…追加・更新部。
【図１】
0003871011.tif 000002
【図２】
0003871011.tif 000003
【図３】
0003871011.tif 000004
【図４】
0003871011.tif 000005
【図５】
0003871011.tif 000006
【図６】
0003871011.tif 000007
【図７】
0003871011.tif 000008
【図８】
0003871011.tif 000009
【図９】
0003871011.tif 000010
【図１０】
0003871011.tif 000011
【図１１】
0003871011.tif 000012
【図１２】
0003871011.tif 000013
【図１３】
0003871011.tif 000014
【図１４】
0003871011.tif 000015
【図１５】
0003871011.tif 000016