(57)【特許請求の範囲】
【請求項１】
内部素子の接続関係により機能が決定されるハードウェアにより構成され、入力される画像データを処理し出力デバイスをドライブする描画処理装置において、
上記出力デバイスの画像処理速度に同期して処理するリアルタイムパス手段と、
上記同期速度より遅い速度で処理するノンリアルタイムパス手段とを備え、
少なくとも上記ノンリアルタイムパス手段は、
処理機能を再構成するための書き換えが可能な、再構成可能ハードウェアを具備するとともに、
処理機能のコンポーネントの各々を上記再構成可能ハードウェアにそれぞれ実装するためのロジックデータを、可逆的に圧縮した状態で記憶するロジックデータ記憶手段と、
実行対象の処理機能に基づいて、対応する１または複数のロジックデータを上記ロジックデータ記憶手段から取出すロジックデータ取出し手段と、
上記ロジックデータ記憶手段から取出したロジックデータを可逆的に伸張するロジックデータ伸長手段と、
上記再構成可能ハードウェアのハードウェア資源を上記実行対象の処理機能に割り当てる資源割り当て手段と、
伸張したロジックデータとロジックデータの接続情報と上記ハードウェア資源の割り当ての情報とを用いて、上記実行対象の処理機能を上記再構成可能ハードウェアに実装する手段とを有することを特徴とする描画処理装置。
【請求項２】
上記ロジックデータ取出し手段は、処理機能を抽出する手段と、処理機能を実現する１つ以上の処理モジュール（構成対象の回路を組み込まれる回路部分を処理モジュールと呼ぶ。以下同様である）および上記処理モジュールの接続情報を決定する手段とを具備する請求項１記載の描画処理装置。
【請求項３】
上記処理モジュールは異なる処理機能に共通して用いられる請求項２記載の描画処理装置。
【請求項４】
共通に用いられる処理モジュールには、画像入出力部、係数入力部、ワークメモリインターフェース部が含まれる請求項３記載の描画処理装置。
【請求項５】
上記ロジックデータ取出し手段は、さらに、処理モジュールを実現する１または複数の処理ロジック（処理モジュールを上記再構成可能ハードウェアで実現するために用いるデータを処理ロジックと呼ぶ。以下同様である）および処理ロジックの接続情報を決定する手段を具備する請求項２記載の描画処理装置。
【請求項６】
上記処理ロジックは異なる処理モジュールに共通して用いられる請求項５記載の描画処理装置。
【請求項７】
共通に用いられる処理ロジックには、画像入出力部、係数入力部、ワークメモリインターフェース部が含まれる請求項６記載の描画処理装置。
【請求項８】
上記実行対象の処理機能に対応する１または複数のロジックデータを書き込んで上記再構成可能ハードウェアに実装される回路の処理動作時間を算出する手段と、
上記処理動作時間を出力デバイスの要求速度と比較し、この比較結果に基づいて、上記実行対象の処理機能を上記ノンリアルタイムパスおよびリアルタイムパスのいずれで実行するかを決定する手段とを備える請求項１、２、３、４、５、６または７記載の描画処理装置。
【請求項９】
上記ロジックデータ取出し手段は、上記処理機能のコンポーネントと上記ロジックデータとを対応づけるテーブルを有する請求項１、２、３、４、５、６、７または８記載の描画処理装置。
【請求項１０】
上記ロジックデータを上記ロジックデータ記憶手段に書き込むために、上記ロジックデータを外部から入力する手段と、
すでに対応するロジックデータが上記ロジックデータ記憶手段に記憶されている処理機能のコンポーネントについて新たなロジックデータを受け取った場合には上記対応するロジックデータの記憶位置に更新書き込みを行い、対応するロジックデータが上記ロジックデータ記憶手段に記憶されていない処理機能のコンポーネントについて新たにロジックデータを受け取った場合には、上記テーブルに新たなエントリを生成し、上記ロジックデータ記憶手段の上記エントリに対応する記憶位置に上記ロジックデータを書き込む手段とを有する請求項９記載の描画処理装置。
【請求項１１】
上記ロジックデータは、それを特定する識別子が付される請求項１、２、３、４、５、６、７、８、９または１０記載の描画処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータで生成された画像データを処理し、表示、出力する描画処理装置に関する。
【０００２】
【従来の技術】
従来、コンピュータで生成された画像を処理し、画面に表示したりプリンタに出力する場合、特にカラー画像では、その処理に多くの時間がかかるため処理を加速する装置が付加される。加速対象の処理には、たとえば、カラー画像をコンパクトにするための圧縮伸張処理、編集に必要な回転や拡大処理、座標値を計算するためのベクトル演算処理、画質を向上させるための色補正、フィルタリングなどがある。処理を加速する装置は一般的にハードウェアアクセラレータと呼ばれ、このようなハードウェアアクセラレータを用いると、コンピュータの演算処理装置を使ってソフトウェアで処理するよりも、処理の高速化が可能になる。ハードウェアアクセラレータの欠点はアクセラレート対象の機能をすべてハードウェアで用意しておく必要があることである。そのためサポートする機能の数にも依存して回路規模が大きくなってしまう。また本来の処理機能のハードウェアとは別に上記アクセラレータハードウェアが必要になる。たとえば出力デバイスをプリンタとする場合には、ページ記述言語（ＰＤＬ）を解釈し、画像を展開し、プリンタを動作させ、正常終了を監視する装置機能を持ったハードウェアに加えて、上記アクセラレータハードウェアが必要になる。
【０００３】
これに対し、特開平０６−１３１１５５号公報では、プログラマブルロジックをアドレスジェネレータブロックと演算ブロックとに使用して様々な画像処理の変更データをファイルとして記憶することで共通のプログラマブルロジックを変更して様々な画像処理に対応する装置が提案されている。
【０００４】
また特開平０６−２８２４３２公報では、各種処理に応じてそれらの演算回路の組み合わせに対するデータの流れを制御することで各種の処理をより少ない演算の組み合わせで行い、もって演算回路を小さくする装置が提案されている。
【０００５】
しかしながら、これら従来の方式では画像処理を行うときの制約が大きく、回路規模を十分生かせない。演算装置に所定の画像処理に必要なマクロ処理群が登録され、外部から入力される命令コードを一旦デコードしてアドレスを生成し演算を選択して処理する方法は、処理が単純な処理の集まりである場合は有効である。しかし、この方法は、複雑でかつ種類が多い処理を実現するには効率が悪い方法である。また算術論理ユニット（ＡＬＵ）を複数設置して並列処理することは一つの改善である。しかし、画像処理の場合逐次処理して行くパイプライン化に向いており、並列化では汎用プログラム処理よりは高速化できるものの、ハードウェアアクセラレータとしては規模の割に効果が小さい。
【０００６】
そしてこれらの技術は本来の処理とは別の画像処理の一部を担うものであり、装置全体としてはコンパクトには成らない。
【０００７】
また、近年、実行時にロジックを再構成することが可能な演算装置が近年実用化されつつある。この演算装置は、処理内容に応じたロジック構成用のデータを外部記憶装置に記憶しておき、これを読み出し、データに基づいてロジックを動的に再構成する演算装置である。この演算装置では、ハードウェア処理による高速性と、ソフトウェア処理による処理内容の変更という柔軟性とを両立することができ、高速性が要求される多数の処理を実行できる。
【０００８】
しかしながら、再構成可能なハードウェアを使用する場合、多数の処理内容に適合した構成用データが各々必要なため、処理数が多くなればなるほど、また、処理に必要なロジック規模が大きくなればなるほど、構成用データの容量が増大してしまうという問題があった。また、高速処理のためにはロジックを高速に書き換えなければならず、そのためには、構成用データをＳＲＡＭなどの高速な読み出し可能な記憶装置に記憶させておく必要がある。一般に、これらの高速な読み出しが可能な記憶装置は低速なものに比べてコストが高いため、構成用データ容量の増加は、再構成可能な処理装置全体としてのコストを非常に高くしてしまうという問題があった。ＬＳＩに内蔵できる高速メモリサイズは半導体を多く使うため内蔵できる容量に上限があり、外部に高速メモリを接続すると回路規模が大きくなってしまう問題も残る。
【０００９】
【発明が解決しようとする課題】
本発明は、以上の事情を考慮してなされたものであり、本来の処理機能と例外的に重い処理を加速させるアクセラレータ機能とを一体化したハードウェアとして、処理装置を実現するとともに、一体化したハードウェアは小さな回路規模で構成し、かつ小さなメモリを使用しながら、多様な処理に対応でき、しかも処理の高速化を実現できるようにすることを目的としている。
【００１０】
【課題を解決するための手段】
本発明によれば、上述の目的を達成するために、内部素子の接続関係により機能が決定されるハードウェアにより構成され、入力される画像データを処理し出力デバイスをドライブする描画処理装置に、上記出力デバイスの画像処理速度に同期して処理するリアルタイムパス手段と、上記同期速度より遅い速度で処理するノンリアルタイムパス手段とを設けている。そして、少なくとも上記ノンリアルタイムパス手段に、処理機能を再構成するための書き換えが可能な、再構成可能ハードウェアを設けている。さらに、少なくとも、上記ノンリアルタイムパス手段に、処理機能のコンポーネントの各々を上記再構成可能ハードウェアにそれぞれ実装するためのロジックデータを、可逆的に圧縮した状態で記憶するロジックデータ記憶手段と、実行対象の処理機能に基づいて、対応する１または複数のロジックデータを上記ロジックデータ記憶手段から取出すロジックデータ取出し手段と、上記ロジックデータ記憶手段から取出したロジックデータを可逆的に伸張するロジックデータ伸長手段と、上記再構成可能ハードウェアのハードウェア資源を上記実行対象の処理機能に割り当てる資源割り当て手段と、伸張したロジックデータとロジックデータの接続情報と上記ハードウェア資源の割り当ての情報とを用いて、上記実行対象の処理機能を上記再構成可能ハードウェアに実装する手段とを設けるようにしている。
【００１１】
本発明をさらに詳細に説明する。本発明の描画処理装置は、例えば、演算装置と一体化描画処理装置と出力デバイスとからなり、一体化描画処理装置は演算装置Ｉ／Ｆ（インターフェース）とリアルタイムパスと、ノンリアルタイムパスと、出力デバイスＩ／Ｆとから構成されている。演算装置Ｉ／Ｆは入力バッファとパス決定部とから構成され、ノンリアルタイムパスは再構成データ制御部、再構成可能なハードウェア、ワークメモリ、出力バッファからなる。演算装置から送られるデータにはヘッダ情報が付加されていて、リアルタイムパス、ノンリアルタイムパスの指定が行われる。また、ヘッダーに処理パラメータがついている。また、ヘッダーに、ＩＤナンバーが付与されている場合、再構成データ制御部がこのＩＤナンバーに基づいて再構成可能ハードウェアに処理ロジックをロードし、機能を実現する。パススイッチを用いてパスの切り替えを行なえば、ノンリアルタイムパスの中の再構成可能ハードウェアをリアルタイムパスで使用することもできる。
【００１２】
再構成データ制御部は、どんな処理ロジックを再構成するかを示す情報を演算装置から受け取る手段と、受け取った情報に基づいて処理全体が機能するよう処理ロジックを組み合わせる処理ロジック構成手段と、処理の構成要素に対応する処理ロジックを圧縮された状態で記憶する処理ロジック圧縮データ記憶手段と、圧縮された処理ロジックを伸張する手段と、処理ロジックを再構成可能ハードウェアに書き込む書き込み手段とから構成される。また、演算装置の処理ロジック圧縮手段で圧縮された処理ロジックを、再構成データ制御部へダウンロードする手段を設けてもよい。
【００１３】
【発明の実施の形態】
以下、図面に基づき本発明の実施例について説明する。
［実施例］
（全体構成）
図１は、本発明に係わる一体化描画処理装置を使ったシステムの一構成例を示す。図１において、コンピュータなどの演算装置１でＰｏｓｔＳｃｒｉｐｔ（米国アドビシステムズ社の商標）などのページ記述言語（ＰＤＬ）で書かれた文書やＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ、米国マイクロソフト社の商標）などの表示向けフォーマットなどを、アプリケーションソフトウェアを使って生成する。また、演算装置１は、あらかじめ別のコンピュータを使って作られたファイルをネットワーク経由で受け取り、このファイル（電子情報）を可視化する処理を行ってもよい。一体化描画処理装置２には可視化処理に必要なハードウェア、ソフトウェアの動作環境が実装されている。演算装置１は一体化描画処理装置２を使って、文書を、例えば表示用やプリント用の出力デバイス３に出力できるデータに変換する。一体化描画処理装置２は出力デバイス３と直接に接続されており、この出力デバイス３を駆動する。
【００１４】
（一体化描画処理装置）
図２は、一体化描画処理装置２の構成例を主に示す。図２において、一体化描画処理装置２は、演算装置インターフェース（Ｉ／Ｆ）５、出力デバイスＩ／Ｆ８、リアルタイムパス６、およびノンリアルタイムパス７を含んで構成されている。演算装置Ｉ／Ｆ５は、演算装置１との間でハードウェア上またはソフトウェア上の接続を提供するものである。出力デバイスＩ／Ｆ８は、出力デバイスとの間の接続を実現するものである。リアルタイムパス６は、演算装置１から受けた画像データを、出力デバイス３の要求速度、または画像データを可視化するのに必要な速度で、処理するものである。またノンリアルタイムパス７は、要求速度より遅い速度で処理を実行するものである。
【００１５】
画像データは演算装置１から演算装置Ｉ／Ｆ５を介してノンリアルタイムパス７またはリアルタイムパス６に送られる。演算装置１から演算装置Ｉ／Ｆ５を経由してノンリアルタイムパス７に送られた画像データは、ノンリアルタイムパス７で処理され、演算装置Ｉ／Ｆ５を経由して指定された記憶装置のアドレスへ転送される。転送されたデータは、必要であれば、さらに演算装置１で処理され、またはノンリアルタイムパス７で繰り返し処理され、またはリアルタイムパス６へ転送され、最終的に出力デバイス３へ送られる。演算装置１から演算装置Ｉ／Ｆ５を経由してリアルタイムパス６へ送られた画像データは出力デバイスＩ／Ｆ５を経由して出力デバイス３に出力される。リアルタイムパス６へ送られる画像データは、あらかじめ要求速度で処理できることが判明している画像データである。リアルタイムパス６で処理された結果は出力デバイスＩ／Ｆ８を経由して出力デバイス３へ送られる。ここで、出力デバイス３は白黒プリンタやカラープリンタや表示デバイスである。カラープリンタにはカスケード方式、タンデム方式を含む。表示デバイスはＣＲＴ、液晶表示装置などを言う。
【００１６】
以下の説明においては、演算装置１から送られる画像データを２次元静止画とするけれども、画像データは２次元静止画に限定されず、３次元静止画や動画などでもよい。この場合、基本のフローは２次元静止画の場合と同じであり、同じ対象として扱うことができる。
【００１７】
（描画処理フロー）
図３は、図１のシステムにおける各機能ユニットおよび画像データの処理フローを示す。図３の処理フローの前処理としてアプリケーションソフトウェアでプリントや表示したいデータを生成する。それらはＰＤＬであったりＧＤＩタイプであったりＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）であったりする。処理対象のデータは、直接、またはネットワークを経由して演算装置１に入力される。
【００１８】
図３において、処理データ入力部１０１はデータファイルを固まりとして、一旦、記憶装置に記憶し、この後、字句解析部１０２に順次供給する。字句解析部１０２は、ファイルに書かれた内容がどの記述方式を採用しているか判別し、その記述のシンタックスに従って記述内容を解析し、トークンとして切り出し、オブジェクトに分けて必要な処理を施す。
【００１９】
ここで、字句解析結果が線画命令であると仮定する。線画命令は、文字であれば、文字コード、フォントＩＤ、座標マトリクス、描画色などを含み、図形であれば、ベクター、座標変換マトリクス、線属性、描画色などを含む。そして、それらの処理を文字図形処理部１０３で行う。描画命令郡とそれに付加された情報、フォントデータ情報を使用して、まずベクターデータが生成され、このベクターデータは変換マトリクスによって座標変換される。変換されたベクターデータはベジエなどの曲線で表されるのでこれを複数の直線ベクターで近似する。直線近似したベクターデータを台形データなどの矩形の集合で表現する。
【００２０】
つぎに、字句解析結果が画像描画画命令だったと仮定する。画像については、ソース画像データ、ソース画像ヘッダ情報（サイズ、深さ、色、圧縮など）、座標マトリクスなどが取出され、それらの処理をラスタ処理部１０４で行う。ラスタ処理部１０４はソース画像データに付いたヘッダ情報に基づき演算処理を行う。演算内容は伸張であったり、拡大処理、回転処理、色補正処理などである。結果は同様に矩形で生成される。
【００２１】
中間データ生成部１０５は処理結果並べ替え部２０１（図１１）、バンド単位分割部２０２（図１１）、文字図形ラスタ合成部２０３（図１１）から成る。まず処理結果並べ替え部２０１では字句解析部１０２で順次処理された描画命令群をある領域単位で並べ替える。領域は出力デバイス３ごとに異なるがプリンタの場合はプリント出力する走査方向に沿う所定数のライン単位で区切り、出力する側の先頭から領域を作ってゆく。領域の例としてはバンドがある。ディスプレイでも同様で、走査方向のラインに従って領域を分ける。文字図形やラスタ画像は表示画面または１ページ上に広がって記述される。そのため領域の先頭から並べ替えたものを領域に当てはめると文字図形やラスタ画像は領域の境界上に重なる場合がある。そのときにはバンド単位分割部２０２で矩形データを複数のバンド領域に分割し、それぞれの領域に入るような矩形を新たに生成する。文字図形、ラスタごとに処理を行い、文字図形ラスタ合成部２０３で領域ごとにまとまった中間データを生成する。
【００２２】
中間データの生成の例を図７〜図１０に示す。図７および図８は文字図形に関するものである。図７および図８において、所定の図形データを破線で示すような三角、または台形に区切る。バンド境界（一点鎖線）を含む台形を、バンド境界で区切る。区切られた５つの台形についてオブジェクトＩＤ、外接矩形、処理ＩＤ、色処理などが付加された情報が生成される。
【００２３】
図９および図１０はラスタ処理に関するものである。図９および図１０において、通常四角形の写真がバンド境界で２つに分けられる。文字図形と同様にオブジェクトＩＤ、台形数、外接矩形、処理ＩＤ、台形それぞれの画像ヘッダと画像データが生成される。このように中間データには領域ごとにどんな展開処理が必要なのかを示すヘッダー情報が付与される。ラスタについては、ラスタデータ生成部１０５と中間データ展開部１０７との役割分担にしたがって、種々の中間データ形式を採用でき、最終のデータに必要な処理から展開部１０７で行う処理を引いた残りが、中間データ生成に必要な処理となる。展開部１０７で行なう処理が色変換、解像度変換、スクリーンとすればそれらがヘッダー情報として付与される。文字図形ラスタ合成部２０３はそれぞれ別に処理された文字図形とラスタ（図８および図１０の情報）を、共通のバンディング単位でまとめてゆく。
【００２４】
生成された中間データは中間データ記憶部１０５で記憶され、中間データ展開部１０７で展開処理する。文字図形データの展開処理は矩形の直線ベクトル描画である。矩形のエッジ座標を計算し、二つの座標計算処理から出された矩形データから座標計算処理座標値により矩形のｘ軸に平行な直線を描画し、色情報に基づき矩形内を塗りつぶす。ラスタデータについてはヘッダー情報から色変換、解像度変換を行なう必要があると仮定する。色空間がＲＧＢで入力されたとすると、テーブルを使ってそれぞれの値に対応したＹＭＣＫを出力する。テーブルが大きくなる場合には、出力された代表値とその近辺の値を算出する補間計算部を採用して、より小さなテーブルでもＹＭＣＫを出力するように構成してもよい。出力デバイス３がディスプレイの場合はＲＧＢ（標準）からデバイス特性にあったＲＧＢ（固有）を出力する計算となり、ＹＭＣＫ出力より単純計算ですむ。ソース画像が小さなサイズのデータで、出力デバイス３にあわせて大きくする場合には解像度変換を行なう。すなわちラスタデータを読み込み補間処理により出力デバイスの画素にあわせてアドレスを計算する。これらを分割した領域ごとに処理し、出力デバイス３へ出力する。
【００２５】
中間データ展開部１０７はソフトウェアによる展開処理方法も採用できるけれども、ＤＤＡ（Ｄｉｇｉｔａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ａｎａｌｙｚｅｒ）を使った座標計算や、文字図形とラスタを含んだ中間フォーマットを直接にパイプライン処理ハードウェアにより展開処理する手法がすでに知られている。
【００２６】
図３で示した処理フローはリアルタイムパス６とノンリアルタイムパス７とを含めた総合的なフローである。中間データを生成するまでは演算装置１で処理を行うが、ラスタを中心とした処理は負荷が重く単純に演算装置１のソフトウェア処理では時間がかかる。
【００２７】
（バンド処理）
以上の描画処理は例えばバンド単位で行なうことができるので、ここで、バンド単位の処理について触れておく。
【００２８】
演算装置１は処理するデータの固まり、通常は、プリントしたり表示したりするドキュメント一式を、処理する。このときの最小単位は１ページまたは１画面である。最小単位でバンド処理を開始する。
【００２９】
バンド単位の処理を行う各機能部および相互の動作フローを図１２に示す。図１２において、バンド単位の処理は、処理結果並び替え部２０１、バンド単位分割部２０２、文字図形ラスタ合成部２０３、処理モジュール検索手段２０４、モジュール検索テーブル２０５、処理ロジック群ヘッダ生成手段２０６、処理速度算出手段２０７、および処理ロジック速度データベース２０８等を用いて行なう。処理結果並べ替え部２０１、バンド単位分割部２０２および文字図形ラスタ号西部２０３は、図３の処理データ入力部１０１、字句解析部１０２、文字図形処理部１０３、ラスタ処理部１０４、中間データ生成部１０５、中間データ記憶部１０６に対応するものであり、中間データを生成して保持するようになっている。
【００３０】
処理モジュール検索手段２０４およびモジュール検索テーブル２０５は処理モジュール情報を生成するものである。処理モジュールは、構成対象の回路に含まれるモジュールを意味する。処理ロジック（処理ロジックデータ）は、処理モジュールを再構成可能ハードウェア７２（図４）で実現するためのデータを意味する。この処理モジュール情報の生成については後に説明する。また処理ロジック群ヘッダ生成手段２０６は処理ロジックデータを生成するものである。処理ロジック（処理ロジックデータ）は、処理モジュールを再構成可能ハードウェア７２で実現するためのデータを意味する。この処理ロジックデータの生成についても後に説明する。
【００３１】
処理速度算出手段２０７は処理ロジック速度データベース２０８を参照して処理ロジックの処理速度を算出する。この処理速度に基づいて、処理ロジックがリアルタイムパス６またはノンリアルタイムパス７のいずれに実装されるべきかが判別される。この判別結果に基づいてリアルタイム処理ヘッダまたはノンリアルタイム処理ヘッダが処理ロジックデータに付され、こののち、対応するパスに転送される。以降のバンドも同様に処理される。
【００３２】
出力デバイス３への描画出力は、最小単位ごとに行なってもよいし、ドキュメント単位で行なってもよい。
【００３３】
（処理モジュールデータおよび処理ロジックデータの特定）
この実施例では、中間データに基づいて処理モジュールデータを生成し、さらにこの処理モジュールデータに基づいて処理ロジックデータを生成するようになっている。そして、この処理ロジックデータが再構成可能ハードウェア７２に書き込まれる。以下では処理モジュールデータおよび処理ロジックデータについて説明する。なお、先に述べたように、処理モジュールは、構成対象の回路に含まれるモジュールを意味し、処理ロジック（処理ロジックデータ）は、処理モジュールを再構成可能ハードウェア７２で実現するためのデータを意味する。
【００３４】
処理モジュールデータは、図１１の処理モジュール検索手段２０４およびモジュール検索テーブル２０５により生成される。これらはともに演算装置１により実現される。
【００３５】
中間データの生成が終了すると、図８および図１０に示す付加情報がまとめられ、どのような処理がそれぞれのバンドで必要になるか判別できる。処理モジュール検索手段２０４が、バンドに含まれる処理ＩＤを受け取ると、モジュール検索テーブル２０５を参照する。モジュール検索テーブル２０５を、処理ＩＤを用いて辞書引きすると、処理ＩＤを実行するために必要な１つ以上の処理モジュールがすべてリストアップされ、さらに、それら処理モジュールがどのように接続されると動作するかを表す接続情報も同時に取出せる。
【００３６】
処理ＩＤで示されるラスタ中心の処理は種類が非常に多く、処理モジュールを合計してゲート換算すると大きさは数千ゲート程度から数十万ゲート以上までとサイズも大きく異なる。
【００３７】
処理ロジック群ヘッダ生成手段２０７は処理モジュール検索手段２０４から処理モジュール情報を受け取り、この処理モジュール情報に基づいて処理ロジックデータを生成する。
【００３８】
▲１▼デジタルフィルタの例
図１４は、画像処理回路の一例としてディジタルフィルタを示す。図１４において、ディジタルフィルタ３００は、演算に必要な計数を入力する係数入力部３０１と、計数を記憶する係数記憶部３０２と、フィルタ処理対象の画像データが入力される入力データレジスタ部３０３と、乗算器、加算器、時間遅延器などから成るデジタルフィルタリング部３０４と、動作タイミングを生成するタイミング発生部３０５と、デジタルフィルタリング部３０４がワークメモリを使用するときに必要なメモリインターフェース部３０６と、演算結果を保持する出力データレジスタ部３０７とから構成されている。基本的に、図１４に示したデジタルフィルタ３００においては、ブロックごとに処理モジュールを分けることができる。ただし、デジタルフィルタリング部３０４はゲート規模によって乗算器とそれ以外に分けることができる。こうして、ディジタルフィルタ３００は８つの処理モジュールから構成されていることになる。
【００３９】
さて、図１１において、処理モジュール検索手段２０４に入力された処理ＩＤがディジタルフィルタに対応するものであると仮定する。そうすると、処理モジュール検索手段２０４は、モジュール検索テーブル２０５を検索し、８つのモジュールで構成されていることと、その接続関係を示す接続情報を取出す。処理モジュール検索手段２０４は、取出した情報を処理ロジック群ヘッダー生成手段２０６に送り、処理ロジック群ヘッダ生成手段２０６はモジュールナンバーから処理ロジックナンバーを検索する。モジュールナンバーと処理ロジックナンバーは同一でも良いが、再構成ハードウェアが高性能の場合にはモジュールナンバーを複数の処理ロジックナンバーに対応付けてもよい。例えばデジタルフィルタリング部３０４に関連してモジュールナンバーのレベルでは乗算器とそれ以外の部分とを分離し、他方、処理ロジックナンバーのレベルでは乗算器、加算器、時間遅延器を分離することができる。
【００４０】
処理ロジックナンバーと関連する接続情報は一体化描画処理装置２に演算装置Ｉ／Ｆ５を経由して送られる。
【００４１】
▲２▼色補正処理の例
図１５は色補正処理回路の構成を示す。色補正方式は各種あるが例に示した方式は３次元ルックアップテーブルの辞書引きと補間演算とを行うものである。図１５において、色補正処理回路３１０は、参照テーブルおよび補間係数を入力する係数入力部３１１と、この計数入力部３１１から入力されたデータを記憶する係数記憶部３１２と、補正対象のカラーデータを入力する入力データレジスタ部３１３と、入力データの直線性を補正する入力補正器３１４と、入力された値に基づいて参照するテーブルのアドレスを生成するアドレスジェネレータ３１５と、差分ジェネレータ、レジスタ、補間演算器、出力補正器からなる３次元補間部３１６と、出力データを保持する出力データレジスタ部３１７と、回路全体のタイミングを制御するタイミング発生部３１８、複数の係数を保持するためのワークメモリとのインターフェース部３１９とを含んで構成される。図１４のデジタルフィルタ３００と同様に、色補正処理回路３１０の処理モジュールをカウントする。ここで３次元補間部３１６は差分ジェネレータ、補間演算器、出力補正器、およびそれ以外の部分に分けられる。そうすると、色補正処理回路３１０は合計で１２個の処理モジュールから構成されることになる。
【００４２】
さて、図１１において、処理モジュール検索手段２０４に色補正処理の処理ＩＤが入力されると、処理モジュール検索手段２０４はモジュール検索テーブル２０５を参照して、色補正処理が１２個のモジュールで構成されていることを示す情報とその接続関係を示す接続情報を受け取る。処理モジュール検索手段２０４は、この情報を処理ロジック群ヘッダー生成手段２０６に送り、処理ロジック群ヘッダ生成手段２０６はモジュールナンバーに基づいて処理ロジックナンバーを決定する。
【００４３】
デジタルフィルタ３００と色補正処理回路３１０の構成・処理は異なるが、ブロックで比較すると６個の処理モジュールを共通化できることがわかる。処理ロジックでは共通化できないモジュールでもシフトレジスタや基本的な加算、乗算処理などが共通に使えることもある。
【００４４】
図１３（１）に処理モジュールのリストとモジュールの接続情報を示す。これは、処理モジュール検索手段２０４（図１１）の処理結果の一例である。これらは、処理に必要な処理モジュールの名前と、それらを接続するための情報である。図１３（２）は、処理ロジック群ヘッダー生成手段２０６が図１３（１）に示す処理モジュール情報を受け取って生成した処理ロジック群を示す。処理ロジックヘッダー生成手段２０６は、処理モジュール名から処理ロジック名を検索する参照テーブルを具備している。図１３の例では、コンパクトな処理モジュールａ〜ｈ、ｎはそのまま処理ロジックに１対１に対応していて、大きな処理モジュールｋは２つの処理ロジックに分けられる。処理モジュールと処理ロジックとが１対１に対応している場合には、処理モジュールの接続情報をそのまま処理ロジックの接続情報として用いる。１つの処理モジュールが複数の処理ロジックに分けられている場合は、処理モジュール接続情報と処理ロジック群ヘッダー生成手段２０６にある処理ロジック参照テーブルとを用いて処理ロジック接続情報を生成する。
【００４５】
処理ロジックは、ＶＨＤＬ（ＶＡＳＩＣ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などで論理記述され論理合成ツールを使って合成し、検証して、論理素子レベルのデータに変換される。例えば、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）コンパイラーなどを使って、再構成可能なハードウェアのＦＰＧＡなどに記述できる論理素子レベルのデータに変換する。ここで言う論理素子レベルのデータはブール式またはＦＰＧＡに生成するセルとその接続リストから成る。ＡＳＣＩＩで表現された結果を可逆的に復元可能な方法、例えば、ラン・レングス圧縮やＬＺＷ（Ｌｅｍｐｅｌ−Ｚｉｖ−Ｗｅｌｃｈ）圧縮といった方法でデータ圧縮する。このレベルでの圧縮結果ではサイズが大きい場合はさらにＦＰＧＡを構成する最小単位のセルレベルにまでデータ変換し、アドレス順に並んだ論理値に、上記と同様な可逆圧縮方法を適用する。どのレベルで圧縮したかは圧縮された処理ロジックのファイルの先頭に記述されている。
【００４６】
再構成処理情報受け取り手段２０９（図１２）は、処理モジュールデータ（図１３（１））を受け取り、処理ロジック構成手段２１０に渡す。処理ロジック構成手段２１０は、処理モジュールに体操した所要の処理ロジックデータ（図１３（２））を、構成用圧縮データ記憶手段２１１から読み出す。処理ロジック構成手段２１０は読み出した処理ロジックと処理ロジックデータに書かれた接続情報からそれらの接続した状態を作り出す。処理ロジックデータにある接続情報はそれぞれが接続されるべきｉｎｐｕｔ、ｏｕｔｐｕｔがすべて記入されている。バスやアドレス、タイミング信号、電源、グランドなどである。それぞれが決まった名前が付随している。例えば処理ロジックＢの出力信号でデータ信号線１６本のうちの１番だとするとＢｏｕｔ／ｄ１と記述されている。その接続先としてＣｉｎ／ｄ１が指定されているとそれらを接続する。
【００４７】
（パスの切り替え）
図１１の処理速度算出手段２０７および処理ロジック速度データベース２０８で処理速度を計算する。処理ロジックデータベース２０８にはそれぞれの動作時間が記述されている。想定するＦＰＧＡの動作周波数や素子遅延時間などを総合して検証された時間である。処理は複数の処理モジュールで表現され、処理モジュールは処理ロジックで表現される。一つの処理は複数の処理ロジックを持つため、処理ロジックの処理時間とそれらの接続時間を合計して、１つの処理に対する処理時間が計算できる。このようにして、処理にかかる時間の算出が正確にでき、再構成可能ハードウェア７２による処理が、出力デバイスの要求速度に間に合うかどうか判定できる。間に合う場合はリアルタイムパス６で処理され、間に合わない場合はノンリアルタイムパス７で処理される。
【００４８】
以上の演算処理は、一体化描画処理装置２で行なってもよいし、演算装置１で行なってもよい。ノンリアルタイムパス７とリアルタイムパス６との切り替えやその速度が重視される出力デバイス３を用いる場合には、これらの演算処理を演算装置１側で行い、処理結果を一体型描画処理装置へ送るようにすると、処理効率が向上することもある。演算処理の実行場所が異なっても、基本的な動作や機能は変わらない。
【００４９】
（処理ロジックデータの準備）
再構成可能ハードウェア７２（図４）へデータを書き込むフローは、▲１▼処理方法の抽出、▲２▼処理方法の処理モジュールへの変換、▲３▼処理モジュールから処理ロジックへの変換からなる。処理方法は、処理対象のファイルがサポートしている機能で一義的に決まってくる。処理を分解してゆくと処理モジュールになる。これも処理機能をデザインすることにより一般的なブロックとして表現可能である。処理ブロックがどのような処理ロジックになるかは、使用する素子や設計ツール、処理効率、出力デバイス特性などの依存する。そのため処理対象ファイルが変われば処理ロジックの一部変更や追加が必要になる。さらに、接続するデバイスが変わったり、設計ツールのレベルが進歩してより効率的な処理ロジックデータを生成できるようになった場合にも、処理ロジックの一部変更や追加が必要になる。
【００５０】
図１６は処理ロジックデータの準備のフローを示す。図１６において、まず、処理ロジックをあらかじめ制作しておく。すなわち、処理機能をブレークダウンし、ブレークダウンの結果をＶＨＤＬなどの設計ツールを用いて論理データに変換する。変換結果を処理ロジックデータ入力手段２２０に入力し、処理ロジックデータ圧縮手段２２１で圧縮処理を行う。先に述べたように、処理ロジックとその接続情報との合計サイズがもっともコンパクトになるような圧縮方法を選択する。圧縮されたデータは、再構成処理情報受け取り手段２０９を経由して処理ロジック圧縮データ記憶手段２１１に記憶される。
【００５１】
また新しい処理ロジックデータが処理ロジックデータ入力手段２２０に入力されると新しい処理ロジックの名前が処理ロジック群ヘッダ生成手段２０６の処理ロジック参照テーブルへ登録される。処理ロジック参照テーブルには、登録済みの処理ロジックのリストが記憶されている。記憶されていない場合には、処理ロジック圧縮データ記憶手段２１１にあるデータベースから登録されている処理ロジックのリストを入手することができる。処理ロジック作成者はその情報に基づき処理ロジックに新しい番号をつける。処理ロジックは、処理ロジックに付された番号に基づいて処理ロジック圧縮データ記憶手段２１１に記憶されるので、新しい処理ロジックが記憶されて既存の処理ロジックに影響はない。
【００５２】
（処理ロジックデータの書き込み）
図１２は、再構成可能ハードウェア７２への処理ロジックデータの書き込みを説明するものである。図１２において、再構成処理情報受け取り手段２０９は演算装置Ｉ／Ｆ５から、必要な処理ロジックの情報を受け取る。この処理ロジックの情報は処理ロジック構成手段２１０に供給され、処理ロジック構成手段２１０は処理ロジック圧縮データ記憶手段２１１から必要なデータを読み出す。処理ロジック構成手段２１０は、圧縮された処理ロジックデータとその接続情報とを処理ロジックデータ伸張手段２１２へ送る。処理ロジックデータ伸張手段２１２は、圧縮されている情報のヘッダについている圧縮方法から伸張方法を選択し、データを元に戻し、再構成書き込み手段２１３へ送る。再構成書き込み手段２１３は、処理ロジックデータを、ハードウェア資源が使用できる領域のアドレス情報を付加したうえで、再構成可能ハードウェア７２に転送する。処理ロジックデータの書き込みは処理ロジック単位で次々に実行される。処理ロジック終了サインが処理ロジック構成手段２１２から送られて来るまで、再構成書き込み手段２１３は書き込みを継続し、書き込み処理のそれぞれが正常に終了したかどうか監視する。正常に終了すると再構成書き込み手段２１３は処理ロジック構成手段２１０へ正常に終了したメッセージを送る。
【００５３】
（ノンリアルタイムパス）
図４は、処理ロジックの実行速度が比較的遅く、そのためノンリアルタイムパス７に処理ロジックデータが書き込まれる場合を説明するものである。なお、演算装置１（図１、図２）にはメモリおよびＣＰＵの性能、出力デバイス３の要求速度、一体化描画処理装置２に関するデータベースがあらかじめ登録されている。データベースを用いて、例えば画像処理であれば、その処理内容、さらに、対象画像サイズからリアルタイムパス６へ送るかノンリアルタイムパス７へ送るかを、大まかに決定する。リアルタイムパスで処理可能かどうか判断が困難な場合には自動的にノンリアルタイムパス７になる。
【００５４】
図４において、演算装置Ｉ／Ｆは入力バッファ５１およびパス決定部５２を含む。ノンリアルタイムパス７は、再構成データ制御部７１、再構成可能ハードウェア７２、ワークメモリ７３、出力バッファ７４を含んで構成されている。演算装置１でパスが決定され必要なヘッダ情報を付加した画像データは演算装置Ｉ／Ｆ５に送られる。演算装置Ｉ／Ｆ５は画像データを入力バッファ５１へ蓄え、ヘッダ情報に書かれたリアルタイム、またはノンリアルタイムの識別に基づいてパス決定部５２がデータの送る方向を決める。ノンリアルタイムのデータの場合、データのヘッダには画像処理内容を示すＩＤ、画像データサイズ、転送速度、演算装置１内のメモリアドレスなどが含まれる。ヘッダ情報は再構成データ制御部７１に送られ、この再構成データ制御部７１はヘッダ情報に書かれた次に動作させる処理内容を、再構成可能ハードウェア７２にロードする。再構成ハードウェア７２は動的に書き換え可能なＦＰＧＡ素子でできていて、一部、または全部のロジック部を書き換えることができる。入力バッファ５１はノンリアルタイムパス７で処理するデータを再構成可能ハードウェア７２に送る。再構成可能ハードウェア７２はワークメモリ７３を使用して演算処理しその結果を出力バッファ７４に送り、出力バッファ７４はヘッダに書かれたメモリアドレスへ転送する。
【００５５】
再構成データ制御部７１にはラスタ処理を中心とした処理ロジックがあらかじめ蓄積されている。処理ロジックは、処理ロジックが再構成可能ハードウェア７２にロードされると、再構成可能ハードウェア７２が一般のＡＳＩＣ（特定用途向けＩＣ）などと同様の機能を果たすような態様で、記述されている。再構成可能ハードウェアにＡＬＵを含む場合はそのマイクロコードが処理ロジックに含まれる。一般のＡＳＩＣと同様、動作の論理記述をＨＤＬなどのハードウエア記述言語で行い、コンパイルしてハードウェアのロジックデータに変換する。そして、動作シミュレーションで期待通りのタイミングで動作するかどうかをあらかじめハードウェア記述言語開発装置（図示せず）でチェックしたものが、再構成データ制御部７１に蓄積される。この際、再構成可能ハードウェア７２の最大サイズも考慮する必要がある。例えば、ロジックデータに変換した処理ロジックが最大ゲートサイズを越える場合は、並列度を下げるなどしてハードウェア記述をコンパクトにして最大サイズ内に納める。この場合、動作速度が犠牲になる。正常に動作したロジックデータを再構成データ制御部７１の処理ロジック圧縮データ記憶手段２１１へ登録する。登録方法はコンピュータである演算装置１に入力し、演算装置Ｉ／Ｆ５を経由して転送する。または、あらかじめＲＯＭなどに記憶させたデータを処理ロジック圧縮データ記憶手段２１１として設置する方法もある。フラッシュメモリなどであれば設置した後に演算装置１よりダウンロードすることも可能である。
【００５６】
（再構成可能ハードウェアによる処理）
図５にヘッダー情報の例を示す。これは処理単位で付加される。最初にノンリアルタイムかリアルタイムパスかを選択するための情報があり、図５ではリアルタイムを０１、ノンリアルタイムを０２というコードで示している。リアルタイムではその後の処理に必要なパラメータが付加されている。たとえば画像を２倍に拡大する場合は拡大処理名と倍率２という数字が入っている。ノンリアルタイムでは送られたデータに対する処理を示すＩＤ番号が付加されている。処理を構成する処理モジュールに対応して処理パラメータが具備される。例えばパラメータには色補正を行う場合の演算係数が入っている。その後に画像サイズ、メモリアドレス、処理ロジックリストが続き、実際に処理するデータが続く。
【００５７】
演算装置１がノンリアルタイムパス７を使用する場合には処理したいデータにヘッダー情報０２を付与する。演算装置Ｉ／Ｆ５は受け取ったデータを一旦、入力バッファ５１へ蓄積し、パス決定部５２はヘッダー情報０２に基づいてデータをノンリアルタイムパス７へ送る。その他のヘッダー情報は再構成データ制御部７１へ送られ、再構成データ制御部７１は次々に送られてくるデータに対応して処理ロジックを動的にロードする。処理ロジックをロードされた再構成可能ハードウェア７２は、処理するデータをパス決定部５２経由で受け取り、ワークメモリ７３を使用して順次処理し、出力結果を出力バッファ７４へ渡す。再構成データ制御部７１は、処理内容に基づいてワークメモリ７３の使用可能領域を決定する。また送られたヘッダー情報に出力バッファ７４が送るべき先のアドレスが設定されているので、出力バッファ７４へ情報を送る。出力バッファ７４は送り先アドレス情報により転送する。
【００５８】
（処理の例）
色補正処理を例にして一連の流れを説明する。色処理の内容は出力デバイスやデータの色記述方法、処理したい品質レベルなどで１０種類以上の組み合わせがある。記述は入力がＲＧＢ系、Ｌａｂ系、ＹＭＣＫ系があり、出力がＲＧＢ系、ＹＭＣＫ系がある。変換精度によりテーブル方式、マトリクス方式、テーブル及び補正方式がある。出力デバイスへの適合処理には、出力デバイスの色空間範囲マッピング処理がある。組み合わせた処理モジュールに対応する処理ロジックがすべて再構成データ制御部７１に蓄積されている。蓄積されていない場合は、演算装置１から演算装置Ｉ／Ｆ５を経由してダウンロードできる。処理ロジックにはすべてナンバーが付与されていて、入力されるヘッダに書かれた処理ロジック名、番号から一対一で対応がつく。たとえばナンバーがテーブル及び補正方式を示すと、テーブル及び補正方式の処理ロジックがロードされる。テーブル及び補正処理のハードウェア論理数約５０ｋゲート相当が再構成可能ハードウェアに書き込まれる。再構成可能ハードウェア７２は１００ｋゲート書き込めるとする。より大きなサイズも実装可能である。演算に必要なパラメータはヘッダー情報から入手し、ハードウェアに設定される。パラメータは、演算係数や演算結果を非線形補正するために使用する。再構成可能ハードウェア７２は高速メモリ素子を内蔵し、演算に必要な係数や参照テーブルなどを蓄積し、演算に使用できる。処理データの色記述はＲＧＢ（標準）で入力され、数画素単位以上でワークメモリ７３へ一旦蓄積され、演算のたびに読み出され再構成ハードウェア７２で処理され、この結果、ＹＭＣＫデータが生成される。１画素は２４ビット入力、３２ビット出力であるが、この値はデバイスの表現できる範囲できまる。ＹＭＣＫは３２ビット単位で出力バッファ７４に送られ、出力バッファ７４は指定されたアドレスへＹＭＣＫデータを転送する。再構成ハードウエア７２とワークメモリ７３は所定の一定速度のクロックで同期して動作するため、高速処理が可能になる。ワークメモリ７３にはダイナミックＲＡＭが使われ、高速アクセスできるもの、またはバス幅を広げて接続されるものが採用される。転送のために指定されるアドレスは演算装置１内のメモリ装置となる。
【００５９】
再構成ハードウェア７２の動作クロックは素子の特性にもよるが、ここでは１００ＭＨｚクロックで動作すると仮定する。テーブル及び補正処理では処理速度算出手段２０７（図１１）の結果から１画素５クロックで処理が終了する仮定する。そうすると、連続して画像データを転送処理するときの処理速度は２０Ｍ画素／秒となる。例えば出力デバイス３へリアルタイムで送る場合は５０Ｍ画素／秒必要となるためリアルタイムパスへ送ることはできないが、演算装置１におけるソフトウエアによる処理では、４Ｍ画素／秒程度であるため、ノンリアルタイムパスを使用すると数倍高速化できるようになる。
【００６０】
色補正に関する必要な処理ロジックをすべて合計すると数十万ゲート以上になるが、圧縮された処理ロジックとノンリアルタイムパス７を使うことで、十分小さな再構成可能ハードウェア７２とその書き換えを行う周辺ハードウェアですべての機能をサポートすることができるようになる。
【００６１】
（変形例）
今までは再構成可能ハードウェア７２の利用方法をノンリアルタイムパス７のみで説明してきたが、処理内容と動作速度によって出力デバイス３の要求速度に間にあうケースもでてくる。この場合、再構成可能ハードウェア７２はリアルタイムパス６のなかで使用できる。
【００６２】
図６は、リアルタイムパス６にも再構成可能ハードウェア７２を用いる構成を示す。図６の全体の構成は図２と同じであるが、図６の構成では一体化描画処理装置２内にパススイッチ９が加わる。図４の演算装置Ｉ／Ｆ５内のパス決定部５２からリアルタイムパス７へゆくビデオの流れはパススイッチ９へ入力される。そのほかの再構成データ制御部７２やワークメモリ７３などに変更はない。パススイッチ９とノンリアルタイムパス７間は双方向のパスが具備される。再構成可能ハードウェア７２で動作する処理は例えば色補正処理であり、テーブル及び補正方式より処理が単純なマトリクス方式を使用するものとする。変換精度の要求があまり高くない場合、または同じ表色系（ＸＹＺ表色系など）の中での変換などにはマトリクス方式が使われる。マトリクス方式を用いると、合計のゲート数が５ｋゲートの処理ロジックにより、１画素１クロックで処理できるため、再構成可能ハードウエア７２の動作速度は１００Ｍ画素／秒となることを、演算装置１はデータベースから判断できる。その結果、演算装置１は、まずヘッダーにリアルタイムパス０１を指定し、ＩＤから処理ロジックを決定し、その後の情報を付与し、さらに、再構成に必要な処理ロジック名、画像データをヘッダーに連結して一体化描画処理装置２に送る。再構成データ制御部７１は指定のモジュールを再構成可能ハードウェア７２にロードする。演算装置Ｉ／Ｆ５のパス決定部５２はこれらの条件からノンリアルタイムパス７にある再構成可能ハードウェアを７２、パススイッチ９を使ってリアルタイムパス６でも使用できるように切り替える。データラインの１６本ないし３２本とタイミング制御、通信制御ラインを切り替える。演算装置Ｉ／Ｆ５から出たラインはパススイッチ９へ入りパススイッチ９からノンリアルタイムパス７の再構成可能ハードウェア７２に入り出力バッファ７４の出力はパススイッチ９へつながりリアルタイムパス６へ入力され処理される。再構成データ制御部７２は処理ロジック群に基づいてマトリクス方式の処理ロジックを集めて結線しロードする。その後にヘッダについているパラメータがロードされ再構成可能ハードウェア７２の動作が可能になる。可能になると入力バッファ５１から画像データが転送されはじめる。再構成可能ハードウェア７２は出力デバイス３の要求速度である５０Ｍ画素／秒の処理を実行し、その結果は出力バッファ７４からリアルタイムパス６へ転送され、リアルタイムパス６で別の処理が行われ、出力デバイスＩ／Ｆ８へ転送される。その結果は出力デバイス３へ表示、プリントされる。
【００６３】
（実施例の効果）
以上説明したように、本発明の実施例では、一体化描画処理装置が演算装置および出力デバイスに接続されている。一体化描画処理装置は、演算装置から受け取ったデータを処理し、処理結果を出力デバイスに供給する。一体化描画処理装置内には、出力デバイスの処理速度で動作するリアルタイムパスと、出力デバイスの処理速度よりも遅い速度で動作するノンリアルタイムパスとが設けられている。演算装置は、画像データがリアルタイムまたはノンリアルタイムのいずれで処理すべきかの判断を行なって、処理に必要なヘッダー情報を画像データに添付し、一体化描画処理装置に供給する。一体化描画処理装置は、ノンリアルタイム処理であれば処理ヘッダに従って処理ロジックを再構成可能ハードウェアにロードし、再構成ハードウェアで処理を実行し、この処理結果を、例えば、出力バッファ経由で演算装置へ送り返す。このようにハードウェアで処理するので、演算装置のコンピュータを使ってソフトウェア処理するより高速な処理が可能となる。ノンリアルタイムパスにある再構成可能ハードウェアで動作する処理は１つ以上の処理ロジックで構成されている。処理ロジックはあらかじめ可逆圧縮されて記憶されている。処理に必要な処理ロジックを読み出し伸張し再構成するようにしているので、小さいハードウェア規模とコンパクトな処理ロジックデータで、種々の画像処理をソフトウェアより高速に行うことができる。
【００６４】
可逆圧縮された処理ロジックには処理ロジックとその接続情報があるため再構成ハードウェアに適した処理ロジックを作成でき、処理を構成する処理モジュールまたはその下のレベルである処理ロジックで複数の処理で共通に使える処理ロジックを実現できるため、圧縮だけでなく共通化によるデータのコンパクト化が可能になる。
【００６５】
平均して圧縮率が１／１０であり、共通化がゲート数換算で５割とすれば、全体で、何も施さない場合の１／２０のデータ量で済む。
【００６６】
圧縮されたデータが１／１０であれば必要な処理ロジック転送速度は伸張処理がハードウェアにより十分高速な処理が可能であるため圧縮率だけ遅い速度で良いことになる。または一定速度で送ればデータは１／１０であり見かけ上１０倍で送れることになる。通常の回路構成に比べ書き換え時間がオーバーヘッドに成るが十分高速に書き換えが可能になり、オーバーヘッドは無視できるレベルとなる。
【００６７】
一般的な回路ではこの書き換えに必要な回路ではＳＲＡＭなど高速メモリが必要になるが、本技術を採用すればＤＲＡＭなど速度はＳＲＡＭより遅いが容量が大きく安価な素子を採用できるようになる。本実施例では、圧縮方式は特に限定していない。新たに優れた圧縮アルゴリズムが見つかれば、さらに有用性が増すことになる。
【００６８】
ノンリアルタイムパスにある再構成可能ハードウェアの性能が高い場合、または処理する内容が比較的単純で十分リアルタイム処理が可能な場合には、パススイッチを使ってリアルタイムパスとつなげて処理できるため、ノンリアルタイムパスを通さず、さらに高速な処理が可能となり、しかも小さなハードウェア規模で動作可能であることは変わらない。
【００６９】
接続する出力デバイス特性が変わったときなどでは処理ロジックレベルで新たにダウンロードでき、入れ替え、追加が可能であり、処理の高性能化、共通化が可能である。
【００７０】
一体化したハードウェアであり複数のボードは不要であり、しかも処理ロジック部全体がコンパクトになるため、描画処理装置を安価に構成できる。
【００７１】
【発明の効果】
以上説明したように、本発明によれば、本来の処理機能と例外的に重い処理を加速させるアクセラレータ機能とを一体化したハードウェアとして、描画処理装置を実現することができ、しかも、一体化したハードウェアの回路規模が小さく、かつ、利用するメモリのサイズが小さな場合でも、多様な処理に対応でき、しかも処理を高速に実行できる。
【図面の簡単な説明】
【図１】  本発明の実施例を全体として示すブロック図である。
【図２】  実施例の一体化描画処理装置の構成を示すブロック図である。
【図３】  実施例のデータ処理のフローを説明する図である。
【図４】  実施例のノンリアルタイムパスの構成を示すブロック図である。
【図５】  実施例の再構成情報を含んだ画像データを説明する図である。
【図６】  実施例の一体化描画処理装置の変形例を示すブロック図である。
【図７】  文字図形のバンドを説明する図である。
【図８】  文字図形のバンドおよび添付情報を説明する図である。
【図９】  ラスタのバンドを説明する図である。
【図１０】  ラスタのバンドおよび添付情報を説明する図である。
【図１１】  実施例のバンド処理と処理ロジック決定処理とを説明する図である。
【図１２】  実施例の再構成データ制御部を示すブロック図である。
【図１３】  実施例の処理モジュールリストと処理ロジックリストを説明する図である。
【図１４】  デジタルフィルタの構成例を示すブロック図である。
【図１５】  色補正処理回路の構成例を示すブロック図である。
【図１６】  実施例の処理ロジックのダウンロードを説明する図である。
【符号の説明】
１    演算装置
２    一体化描画処理装置
３    出力デバイス
５    演算装置Ｉ／Ｆ
５１    入力バッファ
５２    パス決定部
６    リアルタイムパス
７    ノンリアルタイムパス
７１    再構成データ制御部
７２    再構成可能ハードウェア
７３    ワークメモリ
７４    出力バッファ
８    出力デバイスＩ／Ｆ
９    パススイッチ
【図１】
0003680525.tif 000002
【図２】
0003680525.tif 000003
【図３】
0003680525.tif 000004
【図４】
0003680525.tif 000005
【図５】
0003680525.tif 000006
【図６】
0003680525.tif 000007
【図７】
0003680525.tif 000008
【図８】
0003680525.tif 000009
【図９】
0003680525.tif 000010
【図１０】
0003680525.tif 000011
【図１１】
0003680525.tif 000012
【図１２】
0003680525.tif 000013
【図１３】
0003680525.tif 000014
【図１４】
0003680525.tif 000015
【図１５】
0003680525.tif 000016
【図１６】
0003680525.tif 000017