(57)【要約】【課題】再構成可能な演算回路を用いたデータ処理の高速化を図る。【解決手段】最初、再構成回路２２には、画像処理Ｘを行うＸ処理部８０と、Ｘ処理部８０が出力する中間データＤｘを用いて画像処理Ａを行うＡ処理部８２とが配置されている。再構成の条件を満たした場合、再構成回路２２は全面的に再構成されて、Ｘ処理部８４とＢ処理部８６が配置される。Ｘ処理部８４は、Ｘ処理部８０と同じ論理回路をもち、Ｘ処理部８０が保持していた中間データＤｘを保持している。したがって、Ｂ処理部８６は、中間データＤｘを用いて直ちに画像処理Ｂを行うことができる。【選択図】図４
2008181361.tif 000002
【特許請求の範囲】
【請求項１】
論理的な再構成が可能であり、かつ、保持されたデータを再構成の前後で保全可能である演算回路に配置され、保持されたデータの参照及び更新を行いながら連関する複数のデータ処理を実施するデータ処理部と、
前記複数のデータ処理におけるあるデータ処理を別のデータ処理に変更するか否か判定する判定手段と、
前記判定手段の判定結果に基づいて前記演算回路の再構成を行い、前記データ処理部を再配置する再配置手段と、
を備え、
前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更するように、かつ、変更しない少なくとも一部のデータ処理が再配置前と対応する箇所で実施されるように、前記データ処理部を再配置し、
前記データ処理部は、前記再配置手段による再配置後に、前記配置前と対応する箇所に再配置前から保持されているデータを参照して、前記別のデータ処理を実施することを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置において、
前記再配置前と対応する箇所とは、前記演算回路上における再配置前と同一箇所であることを特徴とするデータ処理装置。
【請求項３】
請求項１に記載のデータ処理装置において、
前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更する場合には、前記あるデータ処理が実施されている箇所で前記別のデータ処理が実施されるように前記データ処理部を配置することを特徴とするデータ処理装置。
【請求項４】
請求項１に記載のデータ処理装置において、
前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更する場合には、再配置される前記別のデータ処理が、前記あるデータ処理により参照または更新されていたデータを更新しないように前記データ処理部を再配置し、その後に再度前記あるデータ処理へと再変更する場合には、前記あるデータ処理が以前と対応する箇所で実施されるように前記データ処理部を再配置することを特徴とするデータ処理装置。
【請求項５】
請求項４に記載のデータ処理装置において、
前記以前と対応する箇所とは、以前と同一の箇所であることを特徴とするデータ処理装置。
【請求項６】
請求項４に記載のデータ処理装置において、
前記あるデータ処理は、上流から下流へと順次処理を受け渡す複数段階が同期して処理を行うことにより、複数のデータに対する処理を時差をつけて平行して行うものであり、
前記データ処理部は、前記あるデータ処理から出力されるデータと前記別のデータ処理から出力されるデータの並び順を調整する調整機構を備えることを特徴とするデータ処理装置。
【請求項７】
請求項６に記載のデータ処理装置において、
前記別のデータ処理は、上流から下流へと順次処理を受け渡す複数段階が同期して処理を行うことにより、複数のデータに対する処理を時差をつけて平行して行うものであり、
前記別のデータ処理における前記複数段階は、前記あるデータ処理における前記複数段階よりも短く、
前記別のデータ処理からは、前記あるデータ処理に比べて早くデータが出力されることを特徴とするデータ処理装置。
【請求項８】
請求項１に記載のデータ処理装置において、
データを順次入力する入力部を備え、
データ処理部は、入力した各データに対して、前記連関する複数のデータ処理を実施することを特徴とするデータ処理装置。
【請求項９】
請求項８に記載のデータ処理装置において、
前記判定手段は、入力した各データについて、前記あるデータ処理を前記別のデータ処理に変更するか否か判定することを特徴とするデータ処理装置。
【請求項１０】
請求項１乃至９のいずれか１項に記載のデータ処理装置において、
前記データ処理部が実施する前記複数のデータ処理は、画像データに対するデータ処理であることを特徴とするデータ処理装置。
【請求項１１】
請求項１０に記載のデータ処理装置において、
前記あるデータ処理と前記別のデータ処理は、参照するデータの画素範囲の広狭が異なり、
前記再配置部の配置によって再配置前と対応する箇所で実施されるように設定される前記少なくとも一部のデータ処理には、前記あるデータ処理と前記別のデータ処理の両者が共通して参照可能な並び順に前記データを配列して保持する配列保持処理が含まれることを特徴とするデータ処理装置。
【請求項１２】
請求項１０または１１に記載のデータ処理装置と、
前記画像データを生成する生成手段、または、前記画像データに基づく印刷を行う印刷手段と、
を備えることを特徴とする画像処理装置。
【請求項１３】
論理的な再構成が可能であり、かつ、保持されたデータを再構成の前後で保全可能である演算回路と、
前記演算回路に配置され、保持されたデータの参照及び更新を行いながら連関する複数のデータ処理を実施するデータ処理部と、
前記複数のデータ処理におけるあるデータ処理を別のデータ処理に変更するか否か判定する判定手段と、
前記判定手段の判定結果に基づいて前記演算回路の再構成を行い、前記データ処理部を再配置する再配置手段と、
を備えるコンピュータにおいて、
前記再配置手段に対し、前記あるデータ処理を前記別のデータ処理に変更するように、かつ、変更しない少なくとも一部のデータ処理が再配置前と対応する箇所で実施されるように、前記データ処理部を再配置させ、
前記データ処理部に対し、前記再配置手段による再配置後に、前記配置前と対応する箇所に再配置前から保持されているデータを参照して、前記別のデータ処理を実施させる、
ことを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、画像処理装置、またはデータ処理プログラムに関する。
【背景技術】
【０００２】
論理的に再構成することが可能な回路を用いて、演算処理を行う技術が知られている。
【０００３】
下記特許文献１には、再構成に比較的時間がかかる再構成回路において、複数の処理を高速に切り換える技術が開示されている。具体的には、全ての処理に共通する回路と、いずれの処理とも共通しない回路とをあらかじめ構成しておき、実施したい処理に応じて、残る必要な回路を再構成している。
【０００４】
下記特許文献２には、画像の圧縮処理と伸張処理のように、いずれを実施するかが事前に明らかな画像処理を、動的再構成回路上に再構成する技術が開示されている。この技術では、再構成可能な回路を全面的に入れ替えて、圧縮回路あるいは伸張回路を形成し、処理対象の画像データに圧縮処理あるいは伸張処理を施している。
【０００５】
【特許文献１】特開２００１−５１８２６号公報
【特許文献２】特開２００６−５０５７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、論理的に再構成することが可能な回路を構成する基本要素には、一般的に演算器が用いられている。規模の大きい演算処理を行う場合には、この演算器の論理的な再構成を繰り返すことになるため、処理負荷が増大する。
【０００７】
本発明は、再構成前で保持されたデータを再構成後に活用してデータ処理量の増大を抑制あるいは防止することにより、再構成可能な演算回路におけるデータ処理を高速化するデータ処理装置、画像処理装置、またはデータ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明のデータ処理装置の一態様においては、論理的な再構成が可能であり、かつ、保持されたデータを再構成の前後で保全可能である演算回路に配置され、保持されたデータの参照及び更新を行いながら連関する複数のデータ処理を実施するデータ処理部と、前記複数のデータ処理におけるあるデータ処理を別のデータ処理に変更するか否か判定する判定手段と、前記判定手段の判定結果に基づいて前記演算回路の再構成を行い、前記データ処理部を再配置する再配置手段と、を備え、前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更するように、かつ、変更しない少なくとも一部のデータ処理が再配置前と対応する箇所で実施されるように、前記データ処理部を再配置し、前記データ処理部は、前記再配置手段による再配置後に、前記配置前と対応する箇所に再配置前から保持されているデータを参照して、前記別のデータ処理を実施する。
【０００９】
本発明のデータ処理装置の一態様においては、前記再配置前と対応する箇所とは、前記演算回路上における再配置前と同一箇所である。
【００１０】
本発明のデータ処理装置の一態様においては、前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更する場合には、前記あるデータ処理が実施されている箇所で前記別のデータ処理が実施されるように前記データ処理部を配置する。
【００１１】
本発明のデータ処理装置の一態様においては、前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更する場合には、再配置される前記別のデータ処理が、前記あるデータ処理により参照または更新されていたデータを更新しないように前記データ処理部を再配置し、その後に再度前記あるデータ処理へと再変更する場合には、前記あるデータ処理が以前と対応する箇所で実施されるように前記データ処理部を再配置する。
【００１２】
本発明のデータ処理装置の一態様においては、前記以前と対応する箇所とは、以前と同一の箇所である。
【００１３】
本発明のデータ処理装置の一態様においては、前記あるデータ処理は、上流から下流へと順次処理を受け渡す複数段階が同期して処理を行うことにより、複数のデータに対する処理を時差をつけて平行して行うものであり、前記データ処理部は、前記あるデータ処理から出力されるデータと前記別のデータ処理から出力されるデータの並び順を調整する調整機構を備える。
【００１４】
本発明のデータ処理装置の一態様においては、前記別のデータ処理は、上流から下流へと順次処理を受け渡す複数段階が同期して処理を行うことにより、複数のデータに対する処理を時差をつけて平行して行うものであり、前記別のデータ処理における前記複数段階は、前記あるデータ処理における前記複数段階よりも短く、前記別のデータ処理からは、前記あるデータ処理に比べて早くデータが出力される。
【００１５】
本発明のデータ処理装置の一態様においては、データを順次入力する入力部を備え、データ処理部は、入力した各データに対して、前記連関する複数のデータ処理を実施する。
【００１６】
本発明のデータ処理装置の一態様においては、前記判定手段は、入力した各データについて、前記あるデータ処理を前記別のデータ処理に変更するか否か判定する。
【００１７】
本発明のデータ処理装置の一態様においては、前記データ処理部が実施する前記複数のデータ処理は、画像データに対するデータ処理である。
【００１８】
本発明のデータ処理装置の一態様においては、前記あるデータ処理と前記別のデータ処理は、参照するデータの画素範囲の広狭が異なり、前記再配置部の配置によって再配置前と対応する箇所で実施されるように設定される前記少なくとも一部のデータ処理には、前記あるデータ処理と前記別のデータ処理の両者が共通して参照可能な並び順に前記データを配列して保持する配列保持処理が含まれる。
【００１９】
本発明の画像処理装置の一態様においては、前記画像データを生成する生成手段、または、前記画像データに基づく印刷を行う印刷手段と、を備える。
【００２０】
本発明のデータ処理プログラムの一態様においては、論理的な再構成が可能であり、かつ、保持されたデータを再構成の前後で保全可能である演算回路と、前記演算回路に配置され、保持されたデータの参照及び更新を行いながら連関する複数のデータ処理を実施するデータ処理部と、前記複数のデータ処理におけるあるデータ処理を別のデータ処理に変更するか否か判定する判定手段と、前記判定手段の判定結果に基づいて前記演算回路の再構成を行い、前記データ処理部を再配置する再配置手段と、を備えるコンピュータにおいて、前記再配置手段に対し、前記あるデータ処理を前記別のデータ処理に変更するように、かつ、変更しない少なくとも一部のデータ処理が再配置前と対応する箇所で実施されるように、前記データ処理部を再配置させ、前記データ処理部に対し、前記再配置手段による再配置後に、前記配置前と対応する箇所に再配置前から保持されているデータを参照して、前記別のデータ処理を実施させる。
【発明の効果】
【００２１】
請求項１の本発明によれば、本構成を有していない場合に比較して、再構成前から保持されたデータを活用することが可能になるため、演算のやり直しによるデータ処理量の増大を抑制あるいは防止し、データ処理の高速化を図ることが可能となる。
【００２２】
請求項２の本発明によれば、部分的な再構成ができない演算回路であっても、実質的に部分的な再構成を行うことが可能となる。
【００２３】
請求項３の本発明によれば、本構成を有していない場合に比較して、演算回路の省スペース化を図ることが可能となる。
【００２４】
請求項４の本発明によれば、前記あるデータ処理が再び実施される際に、以前の実施時から保持されているデータを活用することが可能となるため、本構成を有していない場合に比較して、演算をやり直す無駄を減少あるいは防止することができる。
【００２５】
請求項５の本発明によれば、再構成による変更が少なくなるため、本構成を有していない場合に比較して、再構成の設計が容易化される。
【００２６】
請求項６の本発明によれば、データの並び順を調整することが可能となる。
【００２７】
請求項７の本発明によれば、短い処理段階をもつデータ処理を実施する場合には、長い処理段階をもつデータ処理に比べて早くデータが出力されるため、データ出力のタイミングを長い処理段階をもつデータ処理に同期させる構成に比べて、データ処理の高速化を図ることができる。
【００２８】
請求項８の本発明によれば、本構成を有していない場合に比較して、順次入力されるデータに対する異なる種類のデータ処理の実行を高速化することが可能となる。
【００２９】
請求項９の本発明によれば、入力した各データに対し、異なる種類のデータ処理を行うことが可能になる。
【００３０】
請求項１０の本発明によれば、本構成を有していない場合に比較して、画像処理の高速化を図ることが可能となる。
【００３１】
請求項１１の本発明によれば、参照すべきデータを提供する回路が共通化されるため、本構成を有していない場合に比較して、演算回路の省スペース化が図られる。
【００３２】
請求項１２の本発明によれば、本構成を有していない場合に比較して、画像処理の高速化を図ることができる画像処理装置が提供される。
【００３３】
請求項１３の本発明によれば、本構成を有していない場合に比較して、再構成前から保持されたデータを活用し、データ処理の高速化を図るプログラムが提供される。
【発明を実施するための最良の形態】
【００３４】
以下に本発明の実施形態を例示する。
【００３５】
図１は、本実施の形態にかかる画像処理装置１０のハードウエア構成の概略を示すブロック図である。画像処理装置１０は、静止画や動画などの画像データを処理するデータ処理装置であり、例えば、ＰＣ（パーソナルコンピュータ）のような汎用的なコンピュータを利用して構築したり、プリンタあるいはスキャナを内蔵するような主として画像処理を行うコンピュータを利用して構築したりすることができる。
【００３６】
画像処理装置１０は、再構成デバイス２０を備えている。再構成デバイス２０は、プログラマブルデバイス、あるいは、リコンフィギュラブルデバイスなどと呼ばれることもある装置である。再構成デバイス２０は、再構成回路２２、制御回路３２、メモリ３４などを備えており、これらは典型的には基板上に設置される。再構成回路２２は、論理的な再構成が可能な演算回路であり、複数のＰＥ（プロセッサエレメント）２３，２４，．．．を含んでいる。ＰＥ（プロセッサエレメント）２３，２４，．．．は論理的な再構成を行う基本的な単位である。なお、図示したＰＥ３０は、制御回路３２に対して再構成を行うよう指令するために設けられている。
【００３７】
ここで、図２を用いて、ＰＥについて説明する。図２は、ＰＥのハードウエア構成を概念的に説明する図である。ＰＥは、入力データｉｎ１を保持する（記憶する）レジスタ７０と、入力データｉｎ２を保持するレジスタ７２とを備えている。レジスタ７０とレジスタ７２は、ＡＬＵ（算術論理演算部）７４に接続されている。ＡＬＵ（算術論理演算部）７４は、入力データｉｎ１，ｉｎ２を参照して（読み込んで）、加算、減算、掛算、通過などの各種の演算を行い、演算結果を出力データｏｕｔとしてレジスタ７６に出力する（レジスタ７６のデータを更新する）。ＡＬＵ７４がいかなる演算を行うかは、制御信号７８によって制御される。そして、制御信号７８を操作することで、ＡＬＵ７４の論理演算機能が再構成される。この再構成においては、レジスタ７０，７２，７６に保持されたデータは、明示的にデータを消去したり、更新したりしない限り保全される。つまり、再構成後には、ＡＬＵ７４、そしてＰＥは、再構成前から保持されているデータを利用して継続することができる。
【００３８】
なお、ＰＥは、ここに述べた以外にも、様々に構成され得る。具体的には、ＰＥ間に流すデータ信号の流れを切り換えて再構成を実現する態様や、ＰＥ内に複数のＡＬＵを内蔵して複雑な演算制御を行う態様を例示することができる。
【００３９】
再び、図１に戻って、画像処理装置１０の説明を続ける。再構成デバイス２０における制御回路３２は、ＰＥ３０からの指令に基づいて、再構成回路２２の再構成を行う回路である。制御回路３２は、メモリ３４に格納されたプログラムに従って、再構成を実施する。メモリ３４に対するプログラムの格納は、再構成デバイス２０の製造時に行ってもよいし、製造後に行ってもよい。画像処理装置１０においては、典型的には、メモリ３４には画像データに対するデータ処理プログラムが格納され、再構成デバイス２０は画像処理専用ハードウエアに準じる高速画像処理装置として活用される。
【００４０】
なお、再構成デバイス２０には、上記ハードウエアの他にも、例えば、論理的な再構成ができない演算回路、ＳＲＡＭ（メモリ）、入出力用スイッチなどを設けることができる。また、再構成できない演算回路、ＳＲＡＭ、入出力スイッチなどを再構成回路２２内に混在させることも可能である。
【００４１】
再構成デバイス２０は、内部バス４０に接続されている。内部バス４０は、画像処理装置１０内における通信路であり、各種データや制御信号などが流される。内部バス４０には、ＣＰＵ（中央制御装置）４２、メモリ４４、プリンタ４６、スキャナ４８、ＵＩ（ユーザインタフェース）５０、ＣＤＤ（コンパクトディスクドライブ）５２、ネットワークＩＦ（インタフェース）５４などが接続されている。
【００４２】
ＣＰＵ４２は、画像処理装置１０における各種制御や画像処理などを行う装置である。ＣＰＵ４２は、メモリ４４に格納されたプログラムに基づいて動作する。ＣＰＵ４２は、再構成デバイス２０で行うべき画像処理と、自らが行うべき画像処理を切り分ける制御を行うこともできる。メモリ４４は、半導体メモリあるいは磁気ディスクなどを用いて構成される記憶装置である。
【００４３】
プリンタ４６は、画像データに基づいて用紙に印刷を行う装置である。また、スキャナ４８は、用紙の読み取りを行って、画像データを生成する装置である。ＵＩ５０は、ユーザが画像処理装置１０を操作するための装置である。ＵＩ５０は、キーボードやタッチパネルなど、ユーザが指示を入力するための入力装置と、液晶ディスプレイなど、画像その他のデータをユーザに視覚的に提示するための表示装置を備える。
【００４４】
ＣＤＤ５２は、記憶媒体としてのＣＤ（コンパクトディスク）との間で、データを入出力するための装置である。制御回路３２あるいはＣＰＵ４２を制御するためのプログラムをＣＤに記憶させておき、ＣＤＤ５２を通じて、インストールを行うことも可能である。また、ネットワークＩＦ５４は、インターネットなどの外部のネットワーク６０を通じて通信を行うためのインタフェースである。これにより、画像処理装置１０は、ネットワーク６０に接続された外部装置との間で画像データを送受信したり、制御回路３２あるいはＣＰＵ４２を制御するためのプログラムのデータ信号を受信したりすることができるようになる。
【００４５】
画像処理装置１０におけるこれらのハードウエアは、制御回路３２あるいはＣＰＵ４２を制御するためのプログラムなどによって制御され、画像処理を行うための装置として有機的に機能する。そして、ＵＩ５０から入力されるユーザ指示に基づいて、プリンタ４６を利用した印刷や、スキャナ４８を利用した画像データ生成、ＣＰＵ４２や再構成デバイス２０を利用した画像データ加工などの各種の画像処理を実施する。特に、再構成デバイス２０には、再構成によって、画像データの伸張・圧縮や、フィルタリング、回転などの画像処理機能が構築され、ハードウエア的な高速処理が行われる。
【００４６】
次に、再構成デバイス２０について詳しく説明する。画像処理装置１０においては、予め予定されたタイミング（例えば、画像データの圧縮指示がなされたり、新しい画像データが入力されたりするタイミング）で再構成デバイス２０を再構成できる他、動的に再構成することも可能である。ここで、動的な再構成とは、流動的なタイミング、すなわち予め確定していないタイミングで再構成することをいう。
【００４７】
図３は、動的な再構成の手順を示すフローチャートである。このフローチャートは、ある画像データについての処理が継続していることを前提とするものであり、適当なタイミング（例えば、１画素毎や１ライン毎）で再構成条件が評価される（Ｓ１０）。すなわち、この画像データに対していかなる処理を行うべきであり、その処理を現在の画像処理構成（コンフィギュレーション）が実施できるかが評価される（Ｓ１２）。いかなる処理を行うべきかの判断は様々に行うことが可能であり、例えば、入力される画像データあるいは対応する中間データについての条件（例えば輝度の絶対値についての条件）に基づいて行ってもよいし、これらのデータの近傍に入力されるデータについての条件（例えば周囲との輝度コントラスト）を利用して行ってもよい。また、そのデータより前に実施されたデータ処理の傾向を考慮して評価することも可能である。評価の結果（Ｓ１２）、現在の画像処理構成が使えると判定された場合には、継続して処理が実行され（Ｓ１４）、使えないと判定された場合には、画像データの入力が一時的にストップされて（Ｓ１６）、再構成が実施され（Ｓ１８）た後に、処理が実行される（Ｓ１４）。これを順次繰り返すことで、一連の画像処理の中で、動的な再構成が繰り返される。
【００４８】
図４は、動的な再構成で切り換えられる構成を例示する模式図である。ここでは、画像データに対しては、常に画像処理Ｘが行われ、続いて、画像処理Ａまたは画像処理Ｂのいずれか一方が行われることを想定している。そして、再構成回路２２には、図４（ａ）に示す構成と、図４（ｂ）に示す構成とが択一的に構成される。
【００４９】
図４（ａ）に示す態様では、再構成回路２２には、画像処理Ｘを実施する論理回路Ｌｘが設定されたＸ処理部８０と、画像処理Ａを実施する論理回路Ｌａが構築されたＡ処理部８２が配置されている。Ｘ処理部８０は、入力された画像データを参照して（入力して）画像処理Ｘを施し、中間データＤｘを生成する。そして、Ａ処理部８２は、この中間データＤｘを参照して画像処理Ａを行い、最終結果を表す出力データを出力する。次の画像データは、遅くともＡ処理部８２が中間データＤｘを参照する時までに、Ｘ処理部８０に入力される。すなわち、再構成回路２２上では、複数の画像データに対する処理が時間差をつけて平行して行われている。なお、Ｘ処理部８０やＡ処理部８２は、中間データＤｘ以外のデータを内部的に保持し、そのデータを参照してデータ処理を行うものであってもよい。
【００５０】
ここで、再構成条件の評価の結果、ある中間データＤｘに対して、画像処理Ｂを行うべきであり、再構成が必要であると判定されたとする。この場合、再構成回路２２は全面的に再構成され、図４（ｂ）に示した回路が配置される。すなわち、再構成回路２２には、画像処理Ｘを実施する論理回路Ｌｘ’が設定されたＸ処理部８４と、画像処理Ｂを実施する論理回路Ｌｂが構築されたＢ処理部８６が配置されている。論理回路Ｌｘ’は、図４（ａ）の論理回路Ｌｘと同一の回路であるが、改めて構成されたものであるため「’」の記号を付されている。そして、Ｘ処理部８０とＸ処理部８４は、再構成回路２２における同一の箇所に配置されている。ここで、同一の箇所とは、再構成回路２２においてＸ処理部８０の論理回路Ｌｘの各（２次元）座標と、Ｘ処理部８４の論理回路Ｌｘ‘の各座標が等しい関係をいう。例えば、Ｘ処理部８０の左上の座標（Ｘ１１，Ｙ１１）、右下の座標（Ｘ１２，Ｙ１２）とし、Ｘ処理部８４の左上の座標を（Ｘ２１，Ｙ２１）、右下の座標を（Ｘ２２，Ｙ２２）として、これらの座標に着目すれば、Ｘ１１＝Ｘ２１，Ｘ１２＝Ｘ２２，Ｙ１１＝Ｙ２１，Ｙ１２＝Ｙ２２の各条件式を満足することになる。また、Ｘ処理部８４では、再構成前のＸ処理部８０に保持されていた中間データＤｘが保全されている。つまり、再構成前と再構成後では、再構成回路２２における同一の箇所（つまり、再構成回路２２における座標が同じ箇所）に、同一の値の中間データが保持されている。他方、Ｂ処理部８６は、Ａ処理部８２と同一の箇所に配置される必要はない。しかし、少なくともＢ処理部８６は、中間データＤｘを参照できる箇所に配置される。
【００５１】
再構成が完了すると、Ｂ処理部８６は、Ｘ処理部８０から中間データＤｘを入力して、画像処理Ｂを実施する。また、Ｘ処理部８４は、新たな画像データを入力して画像処理Ｘを実施する。つまり、図４に示した構成では、見かけ上、再構成回路２２の中のＡ処理部８２のみがＢ処理部８６に変更されたかのように再構成される。言い換えれば、図４を用いて説明した例では、部分的再構成（Partial  Reconfiguration）可能な回路が擬似的に構築されている。このように、Ｂ処理部８６では、再構成回路２２に保持された中間データをＤｘを利用して処理を継続するため、中間データＤｘの再計算は行われず、また、中間データＤｘのメモリへの退避及び再入力も行われない。ここで、参考として、中間データＤｘをメモリに退避して再構成後に再入力する態様について言及しておく。例えば、入力解像度６００ｄｐｉをもつＡ４サイズの原稿の場合、１ピクセルを１クロックで処理すると仮定すれば、最大３２Ｍピクセル分の処理時間（３２Ｍクロック）をかけて、中間データＤｘの退避及び再入力を行うことになる。
【００５２】
図５は、図４に対応する図であり、動的な再構成で切り換えられる別の構成を例示する模式図である。この例においては、図４を用いて示した例と同様に、画像データに対しては、常に画像処理Ｘが行われ、続いて、画像処理Ａまたは画像処理Ｂのいずれか一方が行われる。このため、再構成回路２２には、図５（ａ）に示すＸ処理部８０とＡ処理部９０が配置された構成と、図５（ｂ）に示すＸ処理部８４とＢ処理部１１０が配置された構成とが、再構成によって適宜構築される。図５（ａ），（ｂ）におけるＸ処理部８０，８４は、図４（ａ），（ｂ）におけるＸ処理部８０，８４と同様の画像処理Ｘを行うものであり、中間データＤｘを生成する点も同様である。しかし、図５（ａ），（ｂ）におけるＡ処理部９０，Ｂ処理部１１０は、図４（ａ），（ｂ）におけるＡ処理部８２，Ｂ処理部８６とは異なっている。
【００５３】
Ａ処理部９０は、４ステージからなるパイプライン処理によって、画像処理Ａを実施するものである。パイプライン処理は、上流から下流へと順次処理を受け渡す複数のステージを持ち、各ステージが同期することで、複数の入力データに対する処理を時差をつけて平行して行う処理である。このため、Ａ処理部９０には、論理回路Ｌａ１，Ｌａ２，Ｌａ３，Ｌａ４をそれぞれ備えたステージ９２，９４，９６，９８の各処理部が設けられ、この順でデータが流れるように設定されている。すなわち、ステージ９２は、Ｘ処理部８０が保持する中間データＤｘを参照して、論理回路Ｌａ１による画像処理を行い、中間データＤａ１を生成する。そして、ステージ９４は、中間データＤａ１を参照して、論理回路Ｌａ２による画像処理を行い、中間データＤａ２を生成する。同様にして、ステージ９６は、中間データＤａ２を参照し、論理回路Ｌａ３による画像処理を行って中間データＤａ３を生成し、ステージ９８は、中間データＤａ３を参照し、論理回路Ｌａ４による画像処理を行って出力データＤａ４を生成する。
【００５４】
Ａ処理部９０には、画像処理Ｂをパイプライン処理によって実施するための二つのステージ１００，１０２も設けられている。ステージ１００は、論理回路Ｌｂ１を備え、中間データＤｂ１を保持するものであり、ステージ１０２は、論理回路Ｌｂ２を備え、中間データＤｂ２を保持するものである。しかし、ステージ１００，１０２は、新たにデータを入出力しないように周囲から隔離されており、また、新たな画像処理の演算も実施しないように設定されている。
【００５５】
再構成条件の評価が行われ、再構成が必要であると判断されると、全面的な再構成が行われ、図５（ｂ）に示した回路が配置される。配置されたＢ処理部１１０は、Ａ処理部９０とは別のデータ処理を行うものであるが、Ａ処理部９０が配置されていた箇所（少なくとも一部の座標が重複する箇所）に配置されている。一例としては、再構成回路２２におけるＡ処理部８２の左上の座標を（Ｘ１１，Ｙ１１）、右下の座標を（Ｘ１２，Ｙ１２）とし、Ｂ処理部８６の左上の座標を（Ｘ２１，Ｙ２１）、右下の座標を（Ｘ２２，Ｙ２２）として、この２点に着目すれば、Ｘ１１≦Ｘ２１＜Ｘ２２≦Ｘ１２、かつ、Ｙ１１≦Ｙ２１＜Ｙ２２≦Ｙ１２の条件式を満足する配置を挙げることができる。そして、Ｂ処理部１１０は、Ａ処理部９０と構成が類似しており、Ａ処理部９０が備えるステージ９２，９４，９６，９８に対応して、画像処理Ａを実施するためのステージ１１２，１１４，１１６，１１８を備えている。すなわち、ステージ１１２〜１１８は、それぞれ論理回路Ｌａ１’〜Ｌａ４’（これらはＬａ１〜Ｌａ４と同一であるが、再構成されたことを示すために「’」が付されている）を備え、また、中間データＤａ１〜Ｄａ４を保持している。ただし、これらの各ステージ１１２〜１１８は、周囲から隔離されており、かつ、新たな画像処理演算を実施しないように設定されている。
【００５６】
Ｂ処理部１１０には、さらに、Ａ処理部９０が備えるステージ１００，１０２に対応して、画像処理Ｂを実施するためのステージ１２０，１２２が設けられている。すなわち、ステージ１２０，１２２は、それぞれ論理回路Ｌｂ１’、Ｌｂ２’（これらはＬｂ１、Ｌｂ２と同一であるが、再構成されたことを示すために「’」が付されている）を備え、また、中間データＤｂ１、Ｄｂ２を保持している。このステージ１２０，１２２は、画像処理Ｂを実施できるように設定されている。具体的には、ステージ１２０は、Ｘ処理部８４が保持する中間データＤｘを参照し、論理回路Ｌｂ１’による演算を行って、中間データＤｂ１を更新するように設定されている。また、ステージ１２２は、ステージ１２０が保持する中間データＤｂ１参照し、論理回路Ｌｂ２’による演算を行って、出力データＤｂ２を更新するように設定されている。
【００５７】
再構成直後にステージ１２０，１２２が保持していた中間データＤｂ１，Ｄｂ２は、以前にＢ処理部１１０が構築されていた時から保全されていたものである。つまり、Ｂ処理部１１０は、パイプライン中に保持されていた中間データＤｂ１，Ｄｂ２を用いて、中断していた画像処理Ｂを実施する。また、Ｂ処理部１１０では、上述のように、画像処理Ａに対するステージ９２〜９８が保持していた中間データＤａ１〜Ｄａ４が保全されており、Ａ処理部９０が構成された場合には、これらの中間データＤａ１〜Ｄａ４を用いて処理が継続されることになる。
【００５８】
なお、図５に示した態様では、実際に使用しない論理回路も形式的に配置することとした。しかし、使用しない場合には、その論理回路を設けず（その論理回路を積極的に消滅させる）、単に保持されたデータを残すだけとし、採用する段階になって、改めてその論理回路を再配置するようにしてもよい。言い換えれば、ある論理回路によって更新され保持された中間データを将来的に再利用したい場合には、その中間データが保持されている領域を、この論理回路が再度必要にならない限り再構成時に同じまたは別の論理回路を設けてはいけない「配置禁止エリア」とすることができる。
【００５９】
ここで、参考態様として、図６に、再構成を行わないで、画像処理Ａ，Ｂを切り換える態様について示した。図６に示した構成では、図５（ａ）と同様に、ステージ９２〜９８と、ステージ１００，１０２が設けられ、これらはともに連結されて画像処理Ａのパイプラインと画像処理Ｂのパイプラインを形成している。そして、ステージ１００，１０２の後ろには、フリップフロップで作られたＤｅｌａｙ回路１３４，１３６が設けられ、画像処理Ｂのステージ数を形式的に画像処理Ａのステージ数と同一に設定し、データ入出力順を維持している。また、両パイプラインと並列に、判定部１３０が設けられ、両パイプラインの下流には選択回路１３２が設けられている。
【００６０】
この構成においては、画像データは、両パイプライン及び判定部１３０に入力される。そして、画像処理Ａ、画像処理Ｂがともに実行される他、判定部１３０によっていずれの処理結果を採用するかが判定される。選択回路１３２は、判定部１３０の判定結果に基づいて、いずれか一方の出力を選択する。
【００６１】
図６に示した構成では、図５に示した構成とは異なり、再構成は行われない。代わりに短いパイプラインをもつ画像処理Ｂの結果を採用する場合でも、長いパイプラインをもつ画像処理Ａの結果を待って出力を行うことになる。他方、図５に示した再構成では、図６に示したＤｅｌａｙ回路１３４，１３６が採用されておらず、短いパイプライン（画像処理Ｂ）が実施される場合には、長いパイプライン（画像処理Ａ）と同期させるための待ち時間が不要となる。なお、図５に示した態様では、パイプラインの長さの違いに起因して、データの並び順が入れ替わってしまうおそれがある。これを回避するには、次に説明するように、データの並び順を調整するようにすればよい。
【００６２】
続いて、図７と図８を用いて、パイプライン処理を行う二つの画像処理部を順次再構成する具体例について説明する。ここで挙げる例は、画像データに対して、５×５画素のフィルタ処理と、３×３画素のフィルタ処理のいずれかを施すものである。
【００６３】
図７（ａ），（ｂ）は、このフィルタ処理において切り換えられる二つの構成を示したブロック図である。図には、入力スイッチ１５０、再構成回路２２、ＳＲＡＭ１７８、及びピクセルカウンタ１８０が含まれている。入力スイッチ１５０とＳＲＡＭ１７８、及びピクセルカウンタ１８０は、例えば、再構成デバイス２０上の入出力スイッチやＳＲＡＭなどを利用して構成される。また、再構成回路２２の中には、ＴＩ（テキスト・イメージ）分離処理部１５２、再構成条件評価部１５４、再構成イベント発生器１５６、ＦＩＦＯ１５８、画像処理部１６０、ピクセルカウンタ１７０、ＦＩＦＯ−Ａ１７２、及びＦＩＦＯ−Ｂ１７４が構築されている。
【００６４】
入力スイッチ１５０は、ＴＩ分離処理部１５２に対して、画像データの入力を１画素単位で順次入力する。順次入力するとは、ある程度の長期にわたり、次々とデータ要素が入力されることをいう。入力は、連続して行われてもよいし、間隔をあけて行われてもよい。また、入力間隔は不定期でもよい。なお、画像データは、１ビットのデータでもよいが、典型的には複数ビットからなる。
【００６５】
ＴＩ分離処理部１５２は、入力された画素が、文字、数字、記号などを表すテキスト領域に位置するか、写真や図形などを表すイメージ領域に位置するかを判別し、判別結果を表すＴａｇデータを入力された画像データに付加して、再構成条件評価部１５４に出力する。テキスト領域に対しては、エッジを強調するために、ウィンドウサイズが小さい３×３画像のフィルタ処理が施され、イメージ領域には、平滑化を図るためウィンドウサイズが大きい５×５画素のフィルタ処理が施されることになる。
【００６６】
再構成条件評価部１５４は、Ｔａｇデータの値を予め設定された条件に基づいて評価する。具体的には、Ｔａｇデータの値が変化しない場合には、再構成回路２２の再構成は不要であると評価し、評価結果を再構成イベント発生器１５６およびＦＩＦＯ１５８に出力する。他方、Ｔａｇデータの値が変化する場合、すなわち、テキスト領域からイメージ領域に変化する場合や、イメージ領域からテキスト領域に変化する場合には、再構成を行うべきであると評価し、評価結果を再構成イベント発生器１５６およびＦＩＦＯ１５８に出力する。また、再構成条件評価部１５４は、ＦＩＦＯ１５８からの書き込み可能信号（ＷＥ）が与えられた場合には、画像データをＦＩＦＯ１５８に出力する。
【００６７】
再構成イベント発生器１５６は、図１に示したＰＥ３０を用いて構築された装置であり、再構成条件評価部１５４から再構成すべき旨の評価結果を受信した場合に、図１に示した制御回路３２にその旨の信号を送信する。ＦＩＦＯ１５８は、先入れ先出し方式のデータ格納部であり、ＴＩ分離処理部１５２と２種類のフィルタ（後述する５×５フィルタ処理部１６４及び３×３フィルタ処理部１６８）との処理速度差を吸収したり、再構成に要するクロックタイム分の画像データをバッファしたりするために設けられている。ＦＩＦＯ１５８から再構成条件評価部１５４へは書き込み可能信号（ＷＥ）が送信され、データ入力タイミングが制御される。また、ＦＩＦＯ１５８は、画像処理部１６０に対し、読み出し可能信号（ＲＥ）を送信する。そして、画像処理部１６０はこの信号に基づいて、画像データをＦＩＦＯ１５８から読み出す。
【００６８】
図７（ａ）の構成では、画像処理部１６０には、共通回路１６２と、５×５フィルタ処理部（図５の例におけるＡ処理部に相当する）１６４が設けられており、３×３フィルタ処理部（同じくＢ処理部に相当する）１６８は形式的に配置されている。すなわち、共通回路１６２は、画像データを入力して前処理を行い、引き続いて５×５フィルタ処理部１６４がフィルタ処理を行っている。そして、３×３フィルタ処理部１６８は、特に処理を行ってはいない。
【００６９】
ピクセルカウンタ１７０は、ＦＩＦＯ１５８から画像処理部１６０への画像データの入力をカウントする。カウントは、ＦＩＦＯ１５８からの信号に基づいて行われる。そして、ピクセルカウンタ１７０は、各カウントに対応する画像データのアドレスを生成し、ＦＩＦＯ−Ａ１７２に格納する。
【００７０】
画像処理部１６０から画像データが出力される場合、ＦＩＦＯ−Ａ１７２に対して読み出し信号（ＲＥ）が送られ、ＦＩＦＯ−Ａ１７２からはＳＲＡＭ１７８に出力データを格納すべきアドレスが送信される。そして、画像処理部１６０の５×５フィルタ処理部１６４から出力された出力データが、このアドレスに格納される。これにより、ＳＲＡＭ１７８には、元の画像データに対応する順番で、出力データが格納されることになる。ＳＲＡＭ１７８からは適当なタイミングで出力データが出力され、ピクセルカウンタ１８０はその数をカウントする。
【００７１】
再構成イベント発生器１５６から再構成の指示を行った場合、再構成回路２２は全面的に再構成されて、図７（ｂ）に示す回路配置へと再構成される。ただし、再構成後の配置は、再構成前と多くの部分で同一であり、ＦＩＦＯ−Ａ１７２に代えてＦＩＦＯ−Ｂ１７４が用いられる点、及び、画像処理部１６０において、５×５フィルタ処理部１６４に代えて３×３フィルタ処理部１６８が用いられる点のみが相違している。すなわち、画像処理部１６０では、３×３画素のフィルタ処理が行われ、その出力データがＦＩＦＯ−Ｂ１７４からのアドレスに従ってＳＲＡＭ１７８に格納される。
【００７２】
図８は、図７に示した画像処理部１６０の構成を詳しく説明する図である。共通回路１６２は、内部に５つのデータを格納するＦＩＦＯ１９０，１９２，１９４，１９６と、５×５のタップが設けられたタップ部２００によって構成されている。すなわち、入力された画像データは、タップ２０２，２０４，．．．のように、まず、最上段のタップに順次流されるとともに、ＦＩＦＯ１９０に格納される。そして、最上段のタップに流された画像データが消滅すると、この画像データは、ＦＩＦＯ１９０から２段目のタップに順次流されるとともに、ＦＩＦＯ１９２に格納される。このようにして、画像データは、最上段から最下段までのタップを順次流されていく。タップ部２００の全体に着目すれば、タップ部２００の右下のタップには最も古く入力された画像データが格納され、左上のタップ２０２には最も新しく入力された画像データが格納されることになる。
【００７３】
図８（ａ）に示す構成では、５×５フィルタ処理部１６４に対しては、タップ部２００の全タップからデータが入力されるように結線の入力論理が設定されている。そして、５×５フィルタ処理部１６４は、タップ部２００における中央のタップ２１０の画素に関して、５×５画素の全画像データに基づいてフィルタ処理の演算を行う。フィルタ処理の演算では、例えばラプラシアンに対応するフィルタ係数との積和演算が行われる。
【００７４】
他方、図８（ｂ）に示す構成では、タップ部２００には、５×５の全タップに画像データが配置される。しかし、３×３フィルタ処理部１６８には、タップ部２００の中央付近の３×３画素の画像データのみが入力されるように入力論理が設定され、３×３フィルタ処理部１６８は、この３×３画素の画像データに基づいてフィルタ処理の演算を行う。このように、タップ部２００は、再構成の前後において、いずれのサイズのフィルタ処理部に対しても必要な画像データを出力できるように設定されており、それゆえに、両フィルタ処理部から独立した共通回路１６２として設けられている。なお、５×５フィルタ処理部１６４と３×３フィルタ処理部１６８を同一の箇所に配置する（図４に示した例のように、一方が配置されていた箇所に、再構成後に他方を配置する）ことも可能である。この場合はフィルタ中の中間データが保持さなくなるため、中間データがこれらのフィルタを流れきるまで、再構成を待つようにしてもよい。図示した例のように、共通回路１６２を設けて各フィルタ固有のデータ処理が削減した場合には、中間データがフィルタを流れきる時間は比較的短いものとなる（例えば、数十クロック程度）。
【００７５】
以上の説明においては、画像データについてのデータ処理を念頭において説明した。しかし、本実施の形態は、画像データ以外の様々なデータ（例えば音声データ、観測データ、シミュレーションデータなど）のデータ処理にも適用可能である。また、以上の説明では、再構成の前後で共通する処理部については、同一の箇所に配置する例を挙げたが、同一の箇所ではないが、再構成前から保持されているデータを活用できるように対応している箇所に配置することも可能である。例えば、あるレジスタやメモリの値を複数のＰＥから参照できるような場合、いずれのＰＥに対しても処理部を配置できる可能性がある。
【図面の簡単な説明】
【００７６】
【図１】本実施の形態にかかる画像処理装置のハードウエア構成例を示す図である。
【図２】ＰＥの構成例の概略を示す図である。
【図３】再構成の手順の例を示すフローチャートである。
【図４】再構成例を示すブロック図である。
【図５】別の再構成例を示すブロック図である。
【図６】図５の例に関連した参考図である。
【図７】再構成の具体例を示すブロック図である。
【図８】図７の構成の一部分を詳細に示す図である。
【符号の説明】
【００７７】
１０  画像処理装置、２０  再構成デバイス、２２  再構成回路、２３，２４，３０  ＰＥ、３２  制御回路、３４  メモリ、４０  内部バス、４２  ＣＰＵ、４４  メモリ、４６  プリンタ、４８  スキャナ、５０  ＵＩ、５２  ＣＤＤ、５４  ネットワークＩＦ、６０  ネットワーク、７０，７２，７６  レジスタ、７４  ＡＬＵ、７８  制御信号、８０，８４  Ｘ処理部、８２，９０  Ａ処理部、８６，１１０  Ｂ処理部、１３０  判定部、１３２  選択回路、１５０  入力スイッチ、１５２  ＴＩ分離処理部、１５４  再構成条件評価部、１５６  再構成イベント発生器、１５８  ＦＩＦＯ、１６０  画像処理部、１６２  共通回路、１６４  ５×５フィルタ処理部、１６８  ３×３フィルタ処理部、１７０，１８０  ピクセルカウンタ、１７２  ＦＩＦＯ−Ａ、１７４  ＦＩＦＯ−Ｂ、１７８  ＳＲＡＭ、２００  タップ部。
【図１】
2008181361.tif 000003
【図２】
2008181361.tif 000004
【図３】
2008181361.tif 000005
【図４】
2008181361.tif 000006
【図５】
2008181361.tif 000007
【図６】
2008181361.tif 000008
【図７】
2008181361.tif 000009
【図８】
2008181361.tif 000010