(57)【特許請求の範囲】
【請求項１】
演算論理仕様を再構成可能な演算回路、及び、前記演算回路とのデータの結線論理仕様を再構成可能な記憶回路を備えた再構成可能回路と、
前記演算論理仕様及び前記結線論理仕様を再構成して、前記記憶回路上に参照表を生成する生成論理、及び、前記演算回路上で前記参照表を参照した演算を行う参照演算論理を設定する設定手段と、
を備え、
前記参照演算論理は、入力する画像データに対して前記参照表を参照した演算を行う論理であり、
前記参照表は、前記画像データの画素数に応じた大きさをもつことを特徴とする演算処理装置。
【請求項２】
請求項１に記載の演算処理装置において、
前記生成論理に基づいて前記参照表を生成する生成手段と、
前記参照演算論理に基づいて前記参照表を参照した演算を行う参照演算手段と、
を備え、
前記設定手段は、再構成前に前記生成手段により生成された少なくとも一つの前記参照表を再構成後まで保全するように再構成を行い、
前記参照演算論理は、再構成後まで保全される少なくとも一つの前記参照表を参照して演算を行う論理であり、
前記生成論理は、前記記憶回路に対し、再構成後まで保全されて参照される前記参照表とは異なる部分に新たな参照表を生成する論理であり、
前記生成手段は、前記参照演算手段による演算と並列的に、新たな参照表を生成する、ことを特徴とする演算処理装置。
【請求項３】
請求項２に記載の演算処理装置において、
前記演算回路は、演算論理仕様を再構成可能な分散配置された複数の演算要素を用いて構築され、
前記記憶回路は、前記演算要素とのデータの結線論理仕様を再構成可能な分散配置された複数の記憶要素を用いて構築され、
前記生成論理は、再構成後まで保全される前記参照表とは異なる前記記憶要素に対し新たな参照表を生成する論理であることを特徴とする演算処理装置。
【請求項４】
請求項３に記載の演算処理装置において、
前記生成論理は、一部の前記記憶要素に記憶されたデータに基づいて、別の前記記憶要素に新たな参照表を生成する論理である、ことを特徴とする演算処理装置。
【請求項５】
請求項４に記載の演算処理装置において、
再構成可能回路は、再構成可能回路の外部と相対的に高速な入出力を行う入出力線路を備え、
前記参照演算論理は、前記入出力線路を占有して演算を行う論理である、ことを特徴とする演算処理装置。
【請求項６】
請求項２に記載の演算処理装置において、
前記生成手段は、前記参照演算手段による演算の開始時または開始後に新たな参照表の生成を開始し、前記参照演算手段による演算の終了前または終了時に新たな参照表の生成を終了することにより、前記参照演算手段による演算と並列的に新たな参照表を生成する、ことを特徴とする演算処理装置。
【請求項７】
演算論理仕様を再構成可能な演算回路、及び、前記演算回路とのデータの結線論理仕様を再構成可能な記憶回路を備えた再構成可能回路を含むコンピュータを、
前記演算論理仕様及び前記結線論理仕様を再構成して、前記記憶回路上に参照表を生成する生成論理、及び、前記演算回路上で前記参照表を参照した演算を行う参照演算論理を設定する設定手段として機能させる演算処理プログラムであり、
前記参照演算論理は、入力する画像データに対して前記参照表を参照した演算を行う論理であり、
前記参照表は、前記画像データの画素数に応じた大きさをもつことを特徴とする演算処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置または演算処理プログラムに関する。
【背景技術】
【０００２】
下記特許文献１には、ある演算処理をするにあたり、再構成可能回路の再構成中にはＣＰＵがこの処理を実行し、再構成完了後にはＣＰＵに代わって再構成可能回路が処理を継続する技術が開示されている。なお、ＣＰＵと再構成可能回路は、共有メモリを用いてデータを共有している。
【０００３】
下記特許文献２には、再構成可能回路の再構成に使用するメモリとは別に、再構成可能回路の演算で用いられる固定値を記憶するための固定値用メモリを備え、制御部によってこの固定値用メモリに固定値をセットすることにより、再構成に使用するメモリの記憶容量を減らす技術が開示されている。
【０００４】
下記特許文献３には、演算間の実行順序の依存関係を表すデータフローグラフを生成し、データフローグラフの実行順序を決定する技術が開示されている。実行順序は、例えば、フィードバックされるデータを読み出すための待ち時間を短くするように決定される。
【０００５】
【特許文献１】特開２００３−２０８３０５号公報
【特許文献２】特開２００６−０１８４５３号公報
【特許文献３】特開２００５−２５８５９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、再構成可能回路に参照表を生成して演算を実行する処理の処理時間を、ソフトウエア的な処理により行う場合に比べて短縮させた演算処理装置、または、演算処理プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の演算処理装置の一態様においては、演算論理仕様を再構成可能な演算回路、及び、前記演算回路とのデータの結線論理仕様を再構成可能な記憶回路を備えた再構成可能回路と、前記演算論理仕様及び前記結線論理仕様を再構成して、前記記憶回路上に参照表を生成する生成論理、及び、前記演算回路上で前記参照表を参照した演算を行う参照演算論理を設定する設定手段と、を備える。
【０００８】
本発明の演算処理装置の一態様においては、前記生成論理に基づいて前記参照表を生成する生成手段と、前記参照演算論理に基づいて前記参照表を参照した演算を行う参照演算手段と、を備え、前記設定手段は、再構成前に前記生成手段により生成された少なくとも一つの前記参照表を再構成後まで保全するように再構成を行い、前記参照演算論理は、再構成後まで保全される少なくとも一つの前記参照表を参照して演算を行う論理であり、前記生成論理は、前記記憶回路に対し、再構成後まで保全されて参照される前記参照表とは異なる部分に新たな参照表を生成する論理であり、前記生成手段は、前記参照演算手段による演算と並列的に、新たな参照表を生成する。
【０００９】
本発明の演算処理装置の一態様においては、前記演算回路は、演算論理仕様を再構成可能な分散配置された複数の演算要素を用いて構築され、前記記憶回路は、前記演算要素とのデータの結線論理仕様を再構成可能な分散配置された複数の記憶要素を用いて構築され、前記生成論理は、再構成後まで保全される前記参照表とは異なる前記記憶要素に対し新たな参照表を生成する論理である。
【００１０】
本発明の演算処理装置の一態様においては、前記生成論理は、一部の前記記憶要素に記憶されたデータに基づいて、別の前記記憶要素に新たな参照表を生成する論理である。
【００１１】
本発明の演算処理装置の一態様においては、再構成可能回路は、再構成可能回路の外部と相対的に高速な入出力を行う入出力線路を備え、前記参照演算論理は、前記入出力線路を占有して演算を行う論理である。
【００１２】
本発明の演算処理装置の一態様においては、前記生成手段は、前記参照演算手段による演算の開始時または開始後に新たな参照表の生成を開始し、前記参照演算手段による演算の終了前または終了時に新たな参照表の生成を終了することにより、前記参照演算手段による演算と並列的に新たな参照表を生成する。
【００１３】
本発明の演算処理装置の一態様においては、前記参照演算論理は、入力する画像データに対して前記参照表を参照した演算を行う論理であり、前記参照表は、前記画像データの画素の自由度に応じた大きさ、または、前記画像データの画素数に応じた大きさをもつ。
【００１４】
本発明の演算処理プログラムの一態様においては、演算論理仕様を再構成可能な演算回路、及び、前記演算回路とのデータの結線論理仕様を再構成可能な記憶回路を備えた再構成可能回路を含むコンピュータを、前記演算論理仕様及び前記結線論理仕様を再構成して、前記記憶回路上に参照表を生成する生成論理、及び、前記演算回路上で前記参照表を参照した演算を行う参照演算論理を設定する設定手段として機能させる。
【発明の効果】
【００１５】
請求項１に記載の発明によれば、ソフトウエア的な処理により参照表を作成する態様に比べて参照表が迅速に生成されるため、参照表を参照した演算の実行時間を短縮することができる演算処理装置が提供される。
【００１６】
請求項２に記載の発明によれば、参照表が再構成前に生成されるため、再構成後にこの参照表を参照した演算を速やかに実行することが可能となる。
【００１７】
請求項３に記載の発明によれば、演算要素及び記憶要素の活用率が高められ、この結果、全体の演算時間が短縮される。
【００１８】
請求項４に記載の発明によれば、再構成可能回路の外部との通信量を減らすことが可能となる。
【００１９】
請求項５に記載の発明によれば、参照演算論理は入出力線路を接続論理と競合せずに使用できるため、入出力時間が短縮される。
【００２０】
請求項６に記載の発明によれば、演算の実行中に参照表が生成されるので、全体の演算時間を短縮することができる。
【００２１】
請求項７に記載の発明によれば、画像処理に必要となる比較的大きな参照表の作成効率が高められる。
【００２２】
請求項８に記載の発明によれば、ソフトウエア的な処理により参照表を作成する態様に比べて参照表が迅速に生成されるため、参照表を参照した演算の実行時間を短縮することができる演算処理プログラムが提供される。
【発明を実施するための最良の形態】
【００２３】
［用語等の説明］
ここでは、特許請求の範囲、明細書、または図面において用いられる用語や概念等について説明する。
【００２４】
再構成可能回路とは、リコンフィギュラブル回路とも呼ばれるものであり、主として演算処理を行う算術論理演算部（ＡＬＵ）などの演算回路と、主としてデータの記憶を行うランダムアクセスメモリ（ＲＡＭ）などの記憶回路とを含んでいる。再構成論理回路では、ハードウエア的に規定された論理仕様をソフトウエア的（プログラム的に）に変更することが可能である。特に、論理仕様を数クロック以内に切り換えることができる場合には、一連の処理の最中に、論理仕様を変更する動的再構成が可能となる。
【００２５】
切り換え対象となる論理仕様には、例えば、演算回路で行われる演算処理の態様を定めた演算論理仕様、再構成論理回路内の配線の態様を定めた結線論理仕様、再構成論理回路と外部装置との配線の態様を定めた入出力論理仕様などが含まれる。なお、記憶回路では、典型的には内部的な論理仕様が固定され、結線論理仕様あるいは入出力論理仕様などが再構成可能に構築されるが、例えば、内部的な論理仕様を再構成可能とされてもよい。
【００２６】
再構成可能回路は、典型的には、分散配置（例えばチップ上に２次元アレイ状に配置）された複数の要素（エレメント）からなる。具体的には、演算回路を複数の演算要素によって構築したり、記憶回路を複数の記憶要素によって構築したりする例が挙げられる。再構成のためのプログラミングが、こうした演算要素や記憶要素を単位として行われることも多い。
【００２７】
設定手段は、演算要素に対し所定の生成論理及び参照演算論理を設定するように、再構成可能回路の論理仕様を再構成する手段である。ここで、生成論理は、記憶回路に参照表を生成する論理であり、参照演算論理は、記憶要素に生成された参照表を参照した演算を演算回路上で実行する論理である。生成論理や参照演算論理は、例えば、演算論理仕様、結線論理仕様、入出力論理仕様などを適当なものに変更することで設定される。
【００２８】
参照表は、所望のデータを参照（読み出し）できるようにデータ構造が設定されたデータ群を指す。参照表には、しばしばハッシュやツリーなどの探索アルゴリズムが用いられる。参照表の典型例としては、ルックアップテーブル（ＬＵＴ）を挙げることができる。
【００２９】
生成手段は、生成論理に基づいて、記憶回路にデータを入力して参照表を生成する手段である。入力されるデータは、外部の記憶装置に記憶されていたもの、あるいは、それから加工されたものであってもよいし、記憶回路の一部に記憶されていたもの、あるいは、それから加工されたものあってもよい。参照表には、参照される一連の演算を通じて値が固定された定数データが入力されてもよいし、演算の過程で値が書き換えられる変数データが入力されてもよい。
【００３０】
参照演算手段は、参照演算論理に基づいて、生成手段により生成された参照表を参照した演算を実行する手段である。この演算は、演算対象となるデータの入力、あるいは、演算結果のデータの出力をともなうものであってもよい。
【００３１】
演算処理装置には、再構成可能回路と、設定手段が含まれる他、さらに、生成手段あるいは参照演算手段などが含まれてもよい。再構成可能回路、あるいは、各手段を構成するハードウエアは、一つのボード上あるいは一つの筐体内などに集中的に配置されていてもよいし、複数のボード上や複数の筐体内に互いに通信可能に分散配置されていてもよい。また、設定手段、生成手段、参照演算手段の一部または全部は、再構成可能回路を利用して構築されるものであってもよいし、再構成不可能な回路（典型的なＣＰＵは再構成不可能である）を利用して構築されるものであってもよい。設定手段、生成手段、参照演算手段は、典型的には、このようなコンピュータハードウエアの動作を、コンピュータプログラムに基づいて制御することにより実現される。
【００３２】
なお、生成手段が参照表を生成するタイミングと、参照演算手段がこの参照表を参照して演算を行うタイミングは様々に設定可能である。一例としては、生成手段が参照表を生成したあとで、（再構成を行わずに）引き続いて、参照演算手段が演算を行う態様が挙げられる。また、別の例としては、生成手段が新たな参照表を生成するのと並列的に、参照演算手段が、再構成前に生成された参照表を参照して演算を行う態様が挙げられる。ここで、並列的とは、実行過程の少なくとも一部の処理と、生成過程の少なくとも一部の処理が、同時刻帯に行われることをいう。
【００３３】
［実施の形態］
以下に本発明の実施の形態を例示する。
【００３４】
図１は、本実施の形態にかかる画像処理装置１０の構成例を示す概略図である。画像処理装置１０は、演算処理装置の一種であり、図示した例においては単体の筐体をもつ装置として構成されている。画像処理装置１０の内部には、内部通信路としての内部バス１１が設けられている。そして、内部バス１１には、ＣＰＵ（中央処理装置）１２、ＲＯＭ（ＲｅａｄＯｎｌｙＭｅｍｏｒｙ）１４、ＲＡＭ（ＲａｎｄｏｍＡｃｃｅｓｓＭｅｍｏｒｙ）１６、ＨＤＤ（ＨａｒｄＤｉｓｃＤｒｉｖｅ）１８、再構成可能システム２０、ＵＩ（ＵｓｅｒＩｎｔｅｒｆａｃｅ）２１、スキャナ２２、プリンタ２４、ＣＤＤ（ＣｏｍｐａｃｔＤｉｓｃＤｒｉｖｅ）２６、及びネットワークインタフェース２８の各構成装置が接続されている。
【００３５】
ＣＰＵ１２は、ＲＯＭ１４などに格納されたプログラムに従って、画像処理装置１０の各構成装置の制御や、画像処理等を行う装置である。ＲＯＭ１４は長期的な記憶が可能な半導体メモリ（記憶装置）であり、各種のプログラムや設定情報などを記憶する。ＲＡＭ１６は主として短期的な記憶に用いられる半導体メモリであり、処理対象となる画像データなどを記憶する。ＲＡＭ１６と再構成可能システム２０との入出力を高速化するために、内部バス１１を介さずに両者を直結したり、ＤＤＲ（ダブルデータレート）方式を用いたりする場合もある。ＨＤＤ１８は磁気ディスクなどを用いて構成された大容量の記憶装置であり、画像データの長期的な記憶などに用いられる。
【００３６】
再構成可能システム２０は、コンフィグメモリ３２とリコンフィギュラブルプロセッサ３４とを含む装置であり、典型的には、同一のチップ上にこうした装置を設置されている。コンフィグメモリ３２は、リコンフィギュラブルプロセッサ３４の論理仕様を規定する論理仕様データが入力される記憶装置である。コンフィグメモリ３２は、例えば、選択可能な複数の論理仕様データをスイッチで切り替えることで、採用する論理仕様データを数クロック（例えば１クロック）で選択できるように設定されている。
【００３７】
リコンフィギュラブルプロセッサ３４は、再構成可能回路としての装置であり、アレイ状に配置された複数のプロセッサエレメント（ＰＥ）を備えている。プロセッサエレメントは、リコンフィギュラブルプロセッサ３４を構成する小回路であり、例えば、演算要素としてのＡＬＵエレメント、あるいは、記憶要素としてのＲＡＭエレメントなどからなる。このうち、ＡＬＵエレメントは、再構成された論理仕様に基づいて、データに対する演算処理を行う小回路であり、ＲＡＭエレメントは、データの入出力及び記憶が行われる小回路である。ＡＬＵエレメントの内部的な論理仕様である演算論理仕様や、他のＡＬＵエレメントやＲＡＭエレメントとの接続を規定する結線論理仕様、外部装置との接続を規定する入出力論理仕様などは、コンフィグメモリ３２に設定された論理仕様データに基づいて再構成される。なお、リコンフィギュラブルプロセッサ３４には、外部装置との入出力を高速に行う専用入出力Ｉ／Ｆ（インタフェース）や、論理仕様が固定された（再構成不可能な）小演算回路などが設けられることも多い。再構成可能システム２０は、論理仕様データの選択や再構成時期などを制御する制御部を自装置内に備えて自らの動作を制御するものであってもよいし、ＣＰＵ１２などの外部装置によって動作を制御されるものであってもよい。こうした制御部あるいはＣＰＵ１２は、プログラムに従って、コンフィグメモリ３４にコンフィグデータを入力してリコンフィギュラブルプロセッサ３４に画像処理論理などのコンフィギュレーションを設定し、それを実行させる。コンフィグデータは、ＲＯＭ１４、ＲＡＭ１６、ＨＤＤ１８などに格納されている。
【００３８】
ＵＩ２１は、液晶ディスプレイや発光ダイオードなどの表示装置、及び、タッチパネルやキーボードなどの入力装置を備え、画像処理装置１０のユーザにデータを表示したり、ユーザから操作命令を受け付けたりする。スキャナ２２は、用紙表面の画像を読み取って画像データを生成する読取装置である。プリンタ２４は、画像データに基づいて用紙に印刷を行う印刷装置である。ＣＤＤ２６は、記録媒体としてのＣＤ（コンパクトディスク）に記録されたデータを読み取る装置であり、例えば、ＣＰＵ１２や再構成可能システム２０を制御するためのプログラムがＣＤＤ２６により提供された場合にこのプログラムを読み取るために用いられる。ネットワークインタフェース２８は、インターネットなどのネットワーク３０に接続してデータを入出力するためのインタフェースであり、例えば、ＣＰＵ１２や再構成可能システム２０を制御するためのプログラムがネットワーク３０を通じて提供される場合、このプログラムのデータ信号を受信するために用いられる。
【００３９】
ここで、再構成可能システム２０の構造について図２，３を参照して簡単に説明する。図２は、ＡＬＵエレメントついて説明する模式図である。この例では、コンフィグメモリ３２には、コンフィグデータとしての設定データＡと設定データＢが記憶されており、また、このいずれかを選択するＳＥＬ（選択回路）４０が設けられている。また、リコンフィギュラブルプロセッサ３４には、ＡＬＵエレメントをなすＡＬＵ４２が設けられており、その演算論理仕様は、ＳＥＬ４０の選択に基づいて再構成されている。ＡＬＵ４２は、典型的には、入力データＡと入力データＢの２つのデータを入力し、演算論理仕様に従った演算処理を行って、出力データを出力する。もちろん、設定によっては、ＲＡＭエレメントを参照した演算処理など、様々なタイプの演算処理を行うことが可能である。
【００４０】
図３は、リコンフィギュラブルプロセッサ３４に設けられたＲＡＭエレメントとしてのＲＡＭ４４について説明する模式図である。このＲＡＭ４４に対しては、データの読み出しまたは書き込みを制御するＲ／Ｗ（Ｒｅａｄ／Ｗｒｉｔｅ）制御信号と、読み出しまたは書き込み位置を制御するＡＤＲ（アドレス）信号が入力され、この信号に基づいてデータの入出力が行われる。このＲＡＭ４４に対しては、内部の論理仕様を再構成する仕組みは設けられない。しかし、一般的には、Ｒ／Ｗ制御信号、ＡＤＲ信号、データなどの入出力先を定める結線論理仕様あるいは入出力論理仕様を再構成したり、ＡＬＵエレメントの再構成時にＲＡＭ４４が記憶するデータを一斉に消去したりすることは可能である。
【００４１】
［第１の形態］
次に、図４と図５を参照して第１の形態について説明する。ここでは、図１〜図３に示したハードウエア構成を前提として説明を行う。
【００４２】
図４は、リコンフィギュラブルプロセッサ３４に設定される論理の例を説明する図である。画像処理装置１０では、リコンフィギュラブルプロセッサ３４は、色変換処理、輝度変換処理、圧縮・伸張処理、フィルタ処理などの画像処理に用いられる。この画像処理では、色変換用ＬＵＴや輝度変換用ＬＵＴなどの画像処理用ＬＵＴを用いて高速な処理が行われる。
【００４３】
図４の例では、ＲＡＭ１６に記憶されたＬＵＴデータ５０の一部または全部が、リコンフィギュラブルプロセッサ３４に送信され、ＬＵＴが生成される論理を示している。具体的には、リコンフィギュラブルプロセッサ３４には、ＤＤＲ（ダブルデータレート）インタフェース５２と、２つのＲＡＭエレメントであるＲＡＭ５３，５４が含まれている。また、複数配置されているＡＬＵエレメントの論理仕様を変更することにより、アドレスカウンタ生成部５８と書き込み許可（ＷｒｉｔｅＥｎａｂｌｅ）信号生成部６０が構築されている。
【００４４】
ＤＤＲインタフェース５２は、ＤＤＲ方式を利用した入出力線路である入出力信号線６２と接続されており、入出力信号線６２を介してＲＡＭ１６からＬＵＴデータ５０を入力する。そして、ＤＤＲインタフェース５２に入力されるＬＵＴデータ５０は、データ信号線６４を通じてＲＡＭ５３，５４に送られるとともに、アドレスカウンタ生成部５８と書き込み許可信号生成部６０に送られる。アドレスカウンタ生成部５８は、入力通知線６５からデータの入力通知がある度に値を増分させて、ＲＡＭ５３，５４に対するアドレスデータ信号を生成する。また、アドレスカウンタ生成部５８は、生成されたアドレス信号をアドレス信号線６６を通じてＲＡＭ５３とＲＡＭ５４に送信する。さらに、書き込み許可信号生成部６０は、ＤＤＲインタフェース５２に入力されたデータを、ＲＡＭ５３とＲＡＭ５４のいずれに書き込むかを制御するＲ／Ｗ信号を生成する。そして、ＲＡＭ５３に対するＲ／Ｗ信号はＷＥ（ＷｒｉｔｅＥｎａｂｌｅ）１信号線６８を通じて送信が行われ、ＲＡＭ５４に対するＲ／Ｗ信号はＷＥ２信号線７０を通じて送信が行われる。
【００４５】
続いて、リコンフィギュラブルプロセッサ３４における動作について説明する。制御部は、再構成により図４に示した論理を設定すると、ＬＵＴデータ５０からＬＵＴの作成に必要なデータを順次出力させる。出力されたデータは入出力信号線６２を通じてＤＤＲインタフェース５２に入力され、さらにデータ信号線６４を通じてＲＡＭ５３，５４に入力される。このとき、アドレスカウンタ生成部５８は、各データの格納位置を示すアドレス信号を生成し、アドレス信号線６６を通じてＲＡＭ５３，５４に出力する。また、書き込み許可信号生成部６０は、設定にしたがい、読み込まれるＬＵＴデータ５０をＲＡＭ５３，５４のいずれに入力するかを決定し、決定結果に基づくＲ／Ｗ信号をＷＥ１信号線６８及びＷＥ２信号線７０を通じてＲＡＭ５３，５４に送信する。典型的には、ＲＡＭ５３に書き込みが行われる場合、ＲＡＭ５４に対する書き込みは禁止され、ＲＡＭ５４に書き込みが行われる場合、ＲＡＭ５３に対する書き込みは禁止される。そして、ＲＡＭ５３，５４には、それぞれ、入力されたＬＵＴデータ５０に対応するＬＵＴが生成される。
【００４６】
リコンフィギュラブルプロセッサ３４では、ＲＡＭ５３，５４にＬＵＴが生成されると、このＬＵＴを参照した画像処理を実行する。画像処理を行う論理は、図４に示した設定を行う際に同時に設定されてもよいし、ＬＵＴを生成後にＬＵＴを破壊することなく再構成を行うことで設定されてもよい。また、処理対象となる画像データは、ＬＵＴデータ５０の入力に使われた入出力信号線６２を通じて入出力されてもよいし、別の線路を通じて入出力されてもよい。
【００４７】
図５は、処理時間について説明する模式図である。ここでは、２つのＬＵＴを生成するＬＵＴ−１ａとＬＵＴ−１ｂの処理、生成されたＬＵＴを参照した画像処理１、新たに２つのＬＵＴを生成するＬＵＴ−２ａとＬＵＴ−２ｂの処理、及び、新たに生成されたＬＵＴを参照した画像処理２が順次行われている。図５（ａ）は、ＬＵＴデータ５０をソフトウエア的に生成する場合を示しており、図５（ｂ）は、ＬＵＴデータ５０をハードウエア的に（つまり、図４に示した態様で）生成する場合を示している。図５（ａ）では、１データあたり１μｓ程度（２５６データのＬＵＴでは２５６μｓ）を要してソフトウエア的にＬＵＴの生成が行われた後に、ハードウエア的に画像処理が行われていることを想定している。したがって、例えば、一連の処理において２５６データのＬＵＴを１００回生成する場合の所要時間は２５．６ｍｓとなる。これに対し、図５（ｂ）の例では、１データあたり１ｎｓ程度（２５６データのＬＵＴでは２５６ｎｓ）を要してハードウエア的にＬＵＴの生成が行われ、引き続いてハードウエア的に画像処理が行われていることを想定している。したがって、２５６データのＬＵＴを１００回生成する場合の所要時間は２５．６μｓとなる。このように、ソフトウエア的なＬＵＴの生成時間と、ハードウエア的なＬＵＴの生成時間の差に起因して、図５（ａ）と図５（ｂ）では、全体の処理に要する時間が大きく異なっている。なお、ここでは、リコンフィギュラブルプロセッサ３４の再構成に要する時間を特に考慮しなかったが、数クロック（数ｎｓ）で再構成を行う場合には、図５の例に与える影響は小さいと考えられる。
【００４８】
［第２の形態］
次に、図６〜図９を用いて、第２の形態について説明する。第２の形態は、第１の形態と同様に、図１〜図３に示したハードウエア構成を前提とするものである。
【００４９】
図６は図４に対応する図であり、図４に対応する要素には同一の番号を付して説明を簡略化する。図６には、図４と同様にＲＡＭ１６とリコンフィギュラブルプロセッサ３４が図示されている。ただし、ＲＡＭ１６には、ＬＵＴデータ５０に加えて、画像データ８０が記憶されており、ＲＡＭ１６からＤＤＲインタフェース５２に対しては、ＤＤＲ方式を利用した２つの入出力信号線８２，８４が接続されている。リコンフィギュラブルプロセッサ３４に対しては、図４の例と同様に、ＲＡＭ５３，５４が設けられ、さらに、データ信号線６４、入力通知線６５、アドレスカウンタ生成部５８、書き込み許可信号生成部６０、アドレス信号線６６、ＷＥ１信号線６８、及びＷＥ２信号線７０が設定されている。さらに、リコンフィギュラブルプロセッサ３４には、ＲＡＭ９２が設けられており、再構成前からＬＵＴ１００が生成されている他、ＡＬＵエレメントの再構成により、画像前処理部９０と画像後処理部９４が生成されている。そして、ＲＡＭ９２に対しては、画像前処理部９０からアドレス信号線９６と、データ信号線９８が接続されており、画像前処理部９０の画像処理結果に基づいて、ＬＵＴ１００のデータが参照されている。画像後処理部９４は、ＬＵＴ１００のデータを参照した結果に基づいて、さらに画像処理を行うものである。
【００５０】
続いて、図６に示した論理の実行過程について説明する。まず、再構成前にあっては、ＬＵＴデータ５０をＲＡＭ９２に入力する論理が設定されており、この論理の実行によりＲＡＭ９２にはＬＵＴ１００が生成される。そして、このＬＵＴ１００のデータを壊さないようにして再構成が行われ、図６に示した論理が設定される。再構成後には、ＬＵＴデータ５０は、入出力信号線８４を通じてＤＤＲインタフェース５２に入力され、図４に示した例と同様にして、ＲＡＭ５３，５４にＬＵＴを生成する。また、ＬＵＴの生成と並列的に、ＲＡＭ１６からは、入力信号線８２を通じて、画像データ８０がＤＤＲインタフェース５２に入力される。そして、画像前処理部９０は、この画像データ８０に対して前処理を行い、その結果を元にＬＵＴ１００内の参照先（アドレス）を決定する。そして、画像後処理部９４は、ＬＵＴ１００の参照結果に基づいて後処理を行い、処理結果を、ＲＡＭ１６などに出力する。この前処理及び後処理を通じて、入力された画像データ８０に対し、ＬＵＴデータ１００を参照した画像処理が行われる。
【００５１】
なお、次の再構成は、ＲＡＭ５３，５４に生成されたＬＵＴを破壊しないよう行われる。そして、再構成によって、このＬＵＴを参照した画像処理を行う論理と、それ以降の画像処理で使用される新たなＬＵＴを生成する論理が設定される。
【００５２】
ここで、図７〜図９を用いて、順次再構成が行われる例を説明する。図７は、リコンフィギュラブルプロセッサ３４に対し、次々と論理の設定を行い、対応する処理を実行する例を示す図である。図７（ａ）の例では、リコンフィギュラブルプロセッサ３４には、ＡＬＵエレメントを利用した処理１Ａ部１１０、及び処理１Ｂ部１１４と、ＲＡＭ１１２に記憶されたＬＵＴ１１８が設けられている。また、処理１Ａ部１１０による画像処理結果に基づいてＬＵＴ１１８を参照できるように、アドレス信号線１２２とデータ信号線１２４が設定されている。ここで、ＬＵＴ１１８は、再構成前に生成され、再構成後まで保全された（破壊されなかった）ものであり、処理１Ａ部１１０、処理１Ｂ部１１４、アドレス信号線１２２、データ信号線１２４等は、新たに論理設定されたものである。さらに、リコンフィギュラブルプロセッサ３４では、ＲＡＭ１３０に対し、アドレス信号線１３２とデータ信号線１３４が配線され、ＬＵＴ１３６を生成する論理が設定されている。図７（ａ）に示した論理が設定された場合、リコンフィギュラブルプロセッサ３４では、処理１Ａ部１１０と処理１Ｂ部１１４によるＬＵＴ１１８を参照した画像処理と、ＲＡＭ１３０に対するＬＵＴ１３６の生成処理とが並列的に行われる。
【００５３】
図７（ｂ）は、図７（ａ）に示した論理に基づく処理が実行された後で、再構成により設定される論理を示している。ここでは、ＲＡＭ１１２に対して、アドレス信号線１３８とデータ信号線１４０を配線し、これにより、新たなＬＵＴ１４２を生成する論理が設定されている。また、ＲＡＭ１３０には、再構成前に生成されたＬＵＴ１３６が保全されている。また、ＡＬＵエレメントを利用して、処理２Ａ部１４４と処理２Ｂ部１４６が設定されており、さらに、処理２Ａ部１４４の処理結果に基づいてＬＵＴ１３６を参照できるようにアドレス信号線１５２とデータ信号線１５４が配線されている。図７（ｂ）に示した論理が設定されると、ＲＡＭ１１２に新しいＬＵＴ１４２を生成する処理と、処理２Ａ部１４４と処理２Ｂ部１４６がＬＵＴ１３６を参照して行う画像処理とが、並列的に実行される。
【００５４】
続いて、図８と図９を用いて、図６や図７で説明したような構成の下で、具体的に画像処理を行う態様について説明する。
【００５５】
図８は、画像処理の対象となる画像データ１６０を模式的に示した図である。ここでは、この画像データ１６０は、画素を２次元的に配置したデータであり、横方向に伸びる４０００画素からなるラインが、縦方向に２０００ライン並べられたものであるとする。そして、リコンフィギュラブルプロセッサ３４におけるＲＡＭエレメントの個数や容量の制約などにより、画像データ１６０を一度に処理することができないものとする。そこで、画像データ１６０を、１００ラインを１バンドとして、２０ラインに分割して画像処理を行う。
【００５６】
図９は、画像データ１６０に対する画像処理の全体の制御を示すフローチャートである。画像処理が開始される場合、まず、バンド数を表す制御変数ｎが０に設定される（Ｓ１０）。このｎはバンドが変わる毎に１づつ増分され（Ｓ１２）、２０を超えると（Ｓ１４）処理を終了する。他方、ｎが２０以下である場合には、各バンドに対して、画像処理１〜５（Ｓ１８，Ｓ２２，Ｓ２６，Ｓ３０，Ｓ３４）が順次実行される。アルゴリズム的に見れば、画像処理１〜５は、リコンフィギュラブルプロセッサ３４上でパイプライン処理されるべきものである。しかし、ＡＬＵエレメントの性能やＲＡＭエレメントの個数や容量が十分でないために、ここでは、画像処理１〜５を順次リコンフィギュラブルプロセッサ３４上に再構成するものとしている。具体的には、画像処理１の結果出力されるデータに対して画像処理２が行われ、画像処理２の結果出力されるデータに対して画像処理３が行われるというように、先行する画像処理の出力結果が後続する画像処理において入力される。そして、各画像処理１〜５の実行に先だっては、その画像処理を行う論理を設定するための再構成１〜５（Ｓ１６，Ｓ２０，Ｓ２４，Ｓ２８，Ｓ３２）が行われる。これらの再構成及び画像処理の繰り返し過程では、図７を用いて説明したように、先行する画像処理の実行中に、後続する画像処理で利用されるＬＵＴが生成され、再構成にあたってはこのＬＵＴが保全される。例えば、画像処理５の実行（Ｓ３４）と並列的に、画像処理１で用いるＬＵＴが生成され、このＬＵＴが破壊されないように再構成１（Ｓ１６）が行われる。
【００５７】
なお、新しいＬＵＴは、通常は、再構成後に使用されないＲＡＭエレメントを利用して生成される。そして、このＲＡＭエレメントに過去に使用したＬＵＴが記憶されている場合には、このＬＵＴを保全することなく新たなＬＵＴが生成される。しかし、ＲＡＭエレメントの個数や容量に余裕がある場合には、複数回あとの再構成後に再利用されるＬＵＴを、その時まで保全するようにしてもよい。
【００５８】
図１０は、図９に示した処理の処理時間について説明する模式図である。ここでは、図５に示した例と同様に、２つのＬＵＴを生成するＬＵＴ−１ａ，ＬＵＴ−１ｂの処理、生成されたＬＵＴを参照した画像処理１、新たに２つのＬＵＴを生成するＬＵＴ−２ａ，ＬＵＴ−２ｂの処理、新たに生成されたＬＵＴを参照した画像処理２が順次行われることを想定している。図１０（ａ）は、図５（ｂ）に対応する図であり、ＬＵＴの生成と画像処理とが非並列的に実行される態様を示している。これに対し、図１０（ｂ）では、図９を用いて説明したように、ＬＵＴの生成と画像処理とが並列的に実行される。具体的には、画像処理１の実行と並列して、画像処理２で用いるＬＵＴを生成するＬＵＴ−２ａ，ＬＵＴ−２ｂの処理が行われ、画像処理２の実行と並列して、画像処理３で用いるＬＵＴを生成するＬＵＴ−３ａ，ＬＵＴ−３ｂの処理が行われている。この結果、図１０（ｂ）の例では図１０（ａ）の例に比べてＬＵＴの生成に要する時間の分だけ、全体の所要時間が短縮されることになる。
【００５９】
［第３の形態］
最後に、図１１を用いて、第３の形態について説明する。第３の形態は、第１の形態及び第２の形態と同様に、図１〜図３に示したハードウエア構成を前提とするものである。
【００６０】
図１１は図６に対応する図であり、図６に対応する要素には同一の番号を付して説明を簡略化する。図１１ではＲＡＭ１６に画像データ８０が格納されている。そして、ＲＡＭ１６からＤＤＲインタフェース５２には、ＤＤＲ方式を利用した複数の入出力信号線１７０，１７２，１７４，１７６が接続されている。ＤＤＲインタフェース５２に入力された画像データに対して、画像前処理部９０と画像後処理部９４がＬＵＴ１００を参照した画像処理を行う点は、図６の例と同様である。また、リコンフィギュラブルプロセッサ３４に、ＲＡＭ５３，５４が設けられており、アドレスカウンタ生成部５８と書き込み許可信号生成部６０を利用したＬＵＴの生成が行われる点も、図６の例と同様である。しかし、図１１の例では、ＡＬＵエレメントを利用してリードアドレスカウンタ１８０が生成され、また、ＲＡＭ１８２に共有ＬＵＴデータ１８４が格納されている点で、図６の例とは異なる。すなわち、図１１の例では、リードアドレスカウンタ１８０が出力するアドレス信号にしたがって、ＲＡＭ１８２の共有ＬＵＴデータ１８４からデータが読み出され、ＲＡＭ５３，５４に出力される。
【００６１】
共有ＬＵＴデータ１８４は、再構成によっても値が破壊されないように設定される。そして、ＲＡＭ９２にＬＵＴ１００を生成する場合や、他のＲＡＭ１９０，１９２，１９４にＬＵＴを生成する場合にも使用される。ＲＡＭ１８２は、共有ＬＵＴデータ１８４を格納できるだけの容量を持たない場合には、複数のＲＡＭに共有ＬＵＴデータ１８４を格納してもよい。
【図面の簡単な説明】
【００６２】
【図１】本実施の形態にかかる画像処理装置のハードウエア構成例を示す図である。
【図２】ＡＬＵエレメントの構成例を説明する図である。
【図３】ＲＡＭエレメントの構成例を説明する図である。
【図４】設定する論理の例を説明する図である。
【図５】処理時間について模式的に説明する図である。
【図６】設定する論理の変形例を説明する図である。
【図７】論理仕様を再構成する例について説明する図である。
【図８】処理対象となる画像データを模式的に示した図である。
【図９】画像処理の全体的な制御の例を示すフローチャートである。
【図１０】処理時間について模式的に説明する図である。
【図１１】設定する論理の別の変形例を説明する図である。
【符号の説明】
【００６３】
１０  画像処理装置、１１  内部バス、１２  ＣＰＵ、１４  ＲＯＭ、１６，４４，５３，５４，９２  ＲＡＭ、１８  ＨＤＤ、２０  再構成可能システム、２２  スキャナ、２４  プリンタ、２８  ネットワークインタフェース、３０  ネットワーク、３２  コンフィグメモリ、３４  リコンフィギュラブルプロセッサ、４０  ＳＥＬ、４２  ＡＬＵ、５０  ＬＵＴデータ、５２  ＤＤＲインタフェース、５８  アドレスカウンタ生成部、６０  書き込み許可信号生成部、８０  画像データ、９０  画像前処理部、９４  画像後処理部、１００  ＬＵＴ。
【図１】
0005205843.tif 000002
【図２】
0005205843.tif 000003
【図３】
0005205843.tif 000004
【図４】
0005205843.tif 000005
【図５】
0005205843.tif 000006
【図６】
0005205843.tif 000007
【図７】
0005205843.tif 000008
【図８】
0005205843.tif 000009
【図９】
0005205843.tif 000010
【図１０】
0005205843.tif 000011
【図１１】
0005205843.tif 000012