説明

データ処理装置、画像処理装置、及びデータ処理プログラム

【課題】再構成可能な演算回路を用いたデータ処理の高速化を図る。
【解決手段】最初、再構成回路22には、画像処理Xを行うX処理部80と、X処理部80が出力する中間データDxを用いて画像処理Aを行うA処理部82とが配置されている。再構成の条件を満たした場合、再構成回路22は全面的に再構成されて、X処理部84とB処理部86が配置される。X処理部84は、X処理部80と同じ論理回路をもち、X処理部80が保持していた中間データDxを保持している。したがって、B処理部86は、中間データDxを用いて直ちに画像処理Bを行うことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、画像処理装置、またはデータ処理プログラムに関する。
【背景技術】
【0002】
論理的に再構成することが可能な回路を用いて、演算処理を行う技術が知られている。
【0003】
下記特許文献1には、再構成に比較的時間がかかる再構成回路において、複数の処理を高速に切り換える技術が開示されている。具体的には、全ての処理に共通する回路と、いずれの処理とも共通しない回路とをあらかじめ構成しておき、実施したい処理に応じて、残る必要な回路を再構成している。
【0004】
下記特許文献2には、画像の圧縮処理と伸張処理のように、いずれを実施するかが事前に明らかな画像処理を、動的再構成回路上に再構成する技術が開示されている。この技術では、再構成可能な回路を全面的に入れ替えて、圧縮回路あるいは伸張回路を形成し、処理対象の画像データに圧縮処理あるいは伸張処理を施している。
【0005】
【特許文献1】特開2001−51826号公報
【特許文献2】特開2006−50571号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、論理的に再構成することが可能な回路を構成する基本要素には、一般的に演算器が用いられている。規模の大きい演算処理を行う場合には、この演算器の論理的な再構成を繰り返すことになるため、処理負荷が増大する。
【0007】
本発明は、再構成前で保持されたデータを再構成後に活用してデータ処理量の増大を抑制あるいは防止することにより、再構成可能な演算回路におけるデータ処理を高速化するデータ処理装置、画像処理装置、またはデータ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明のデータ処理装置の一態様においては、論理的な再構成が可能であり、かつ、保持されたデータを再構成の前後で保全可能である演算回路に配置され、保持されたデータの参照及び更新を行いながら連関する複数のデータ処理を実施するデータ処理部と、前記複数のデータ処理におけるあるデータ処理を別のデータ処理に変更するか否か判定する判定手段と、前記判定手段の判定結果に基づいて前記演算回路の再構成を行い、前記データ処理部を再配置する再配置手段と、を備え、前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更するように、かつ、変更しない少なくとも一部のデータ処理が再配置前と対応する箇所で実施されるように、前記データ処理部を再配置し、前記データ処理部は、前記再配置手段による再配置後に、前記配置前と対応する箇所に再配置前から保持されているデータを参照して、前記別のデータ処理を実施する。
【0009】
本発明のデータ処理装置の一態様においては、前記再配置前と対応する箇所とは、前記演算回路上における再配置前と同一箇所である。
【0010】
本発明のデータ処理装置の一態様においては、前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更する場合には、前記あるデータ処理が実施されている箇所で前記別のデータ処理が実施されるように前記データ処理部を配置する。
【0011】
本発明のデータ処理装置の一態様においては、前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更する場合には、再配置される前記別のデータ処理が、前記あるデータ処理により参照または更新されていたデータを更新しないように前記データ処理部を再配置し、その後に再度前記あるデータ処理へと再変更する場合には、前記あるデータ処理が以前と対応する箇所で実施されるように前記データ処理部を再配置する。
【0012】
本発明のデータ処理装置の一態様においては、前記以前と対応する箇所とは、以前と同一の箇所である。
【0013】
本発明のデータ処理装置の一態様においては、前記あるデータ処理は、上流から下流へと順次処理を受け渡す複数段階が同期して処理を行うことにより、複数のデータに対する処理を時差をつけて平行して行うものであり、前記データ処理部は、前記あるデータ処理から出力されるデータと前記別のデータ処理から出力されるデータの並び順を調整する調整機構を備える。
【0014】
本発明のデータ処理装置の一態様においては、前記別のデータ処理は、上流から下流へと順次処理を受け渡す複数段階が同期して処理を行うことにより、複数のデータに対する処理を時差をつけて平行して行うものであり、前記別のデータ処理における前記複数段階は、前記あるデータ処理における前記複数段階よりも短く、前記別のデータ処理からは、前記あるデータ処理に比べて早くデータが出力される。
【0015】
本発明のデータ処理装置の一態様においては、データを順次入力する入力部を備え、データ処理部は、入力した各データに対して、前記連関する複数のデータ処理を実施する。
【0016】
本発明のデータ処理装置の一態様においては、前記判定手段は、入力した各データについて、前記あるデータ処理を前記別のデータ処理に変更するか否か判定する。
【0017】
本発明のデータ処理装置の一態様においては、前記データ処理部が実施する前記複数のデータ処理は、画像データに対するデータ処理である。
【0018】
本発明のデータ処理装置の一態様においては、前記あるデータ処理と前記別のデータ処理は、参照するデータの画素範囲の広狭が異なり、前記再配置部の配置によって再配置前と対応する箇所で実施されるように設定される前記少なくとも一部のデータ処理には、前記あるデータ処理と前記別のデータ処理の両者が共通して参照可能な並び順に前記データを配列して保持する配列保持処理が含まれる。
【0019】
本発明の画像処理装置の一態様においては、前記画像データを生成する生成手段、または、前記画像データに基づく印刷を行う印刷手段と、を備える。
【0020】
本発明のデータ処理プログラムの一態様においては、論理的な再構成が可能であり、かつ、保持されたデータを再構成の前後で保全可能である演算回路と、前記演算回路に配置され、保持されたデータの参照及び更新を行いながら連関する複数のデータ処理を実施するデータ処理部と、前記複数のデータ処理におけるあるデータ処理を別のデータ処理に変更するか否か判定する判定手段と、前記判定手段の判定結果に基づいて前記演算回路の再構成を行い、前記データ処理部を再配置する再配置手段と、を備えるコンピュータにおいて、前記再配置手段に対し、前記あるデータ処理を前記別のデータ処理に変更するように、かつ、変更しない少なくとも一部のデータ処理が再配置前と対応する箇所で実施されるように、前記データ処理部を再配置させ、前記データ処理部に対し、前記再配置手段による再配置後に、前記配置前と対応する箇所に再配置前から保持されているデータを参照して、前記別のデータ処理を実施させる。
【発明の効果】
【0021】
請求項1の本発明によれば、本構成を有していない場合に比較して、再構成前から保持されたデータを活用することが可能になるため、演算のやり直しによるデータ処理量の増大を抑制あるいは防止し、データ処理の高速化を図ることが可能となる。
【0022】
請求項2の本発明によれば、部分的な再構成ができない演算回路であっても、実質的に部分的な再構成を行うことが可能となる。
【0023】
請求項3の本発明によれば、本構成を有していない場合に比較して、演算回路の省スペース化を図ることが可能となる。
【0024】
請求項4の本発明によれば、前記あるデータ処理が再び実施される際に、以前の実施時から保持されているデータを活用することが可能となるため、本構成を有していない場合に比較して、演算をやり直す無駄を減少あるいは防止することができる。
【0025】
請求項5の本発明によれば、再構成による変更が少なくなるため、本構成を有していない場合に比較して、再構成の設計が容易化される。
【0026】
請求項6の本発明によれば、データの並び順を調整することが可能となる。
【0027】
請求項7の本発明によれば、短い処理段階をもつデータ処理を実施する場合には、長い処理段階をもつデータ処理に比べて早くデータが出力されるため、データ出力のタイミングを長い処理段階をもつデータ処理に同期させる構成に比べて、データ処理の高速化を図ることができる。
【0028】
請求項8の本発明によれば、本構成を有していない場合に比較して、順次入力されるデータに対する異なる種類のデータ処理の実行を高速化することが可能となる。
【0029】
請求項9の本発明によれば、入力した各データに対し、異なる種類のデータ処理を行うことが可能になる。
【0030】
請求項10の本発明によれば、本構成を有していない場合に比較して、画像処理の高速化を図ることが可能となる。
【0031】
請求項11の本発明によれば、参照すべきデータを提供する回路が共通化されるため、本構成を有していない場合に比較して、演算回路の省スペース化が図られる。
【0032】
請求項12の本発明によれば、本構成を有していない場合に比較して、画像処理の高速化を図ることができる画像処理装置が提供される。
【0033】
請求項13の本発明によれば、本構成を有していない場合に比較して、再構成前から保持されたデータを活用し、データ処理の高速化を図るプログラムが提供される。
【発明を実施するための最良の形態】
【0034】
以下に本発明の実施形態を例示する。
【0035】
図1は、本実施の形態にかかる画像処理装置10のハードウエア構成の概略を示すブロック図である。画像処理装置10は、静止画や動画などの画像データを処理するデータ処理装置であり、例えば、PC(パーソナルコンピュータ)のような汎用的なコンピュータを利用して構築したり、プリンタあるいはスキャナを内蔵するような主として画像処理を行うコンピュータを利用して構築したりすることができる。
【0036】
画像処理装置10は、再構成デバイス20を備えている。再構成デバイス20は、プログラマブルデバイス、あるいは、リコンフィギュラブルデバイスなどと呼ばれることもある装置である。再構成デバイス20は、再構成回路22、制御回路32、メモリ34などを備えており、これらは典型的には基板上に設置される。再構成回路22は、論理的な再構成が可能な演算回路であり、複数のPE(プロセッサエレメント)23,24,...を含んでいる。PE(プロセッサエレメント)23,24,...は論理的な再構成を行う基本的な単位である。なお、図示したPE30は、制御回路32に対して再構成を行うよう指令するために設けられている。
【0037】
ここで、図2を用いて、PEについて説明する。図2は、PEのハードウエア構成を概念的に説明する図である。PEは、入力データin1を保持する(記憶する)レジスタ70と、入力データin2を保持するレジスタ72とを備えている。レジスタ70とレジスタ72は、ALU(算術論理演算部)74に接続されている。ALU(算術論理演算部)74は、入力データin1,in2を参照して(読み込んで)、加算、減算、掛算、通過などの各種の演算を行い、演算結果を出力データoutとしてレジスタ76に出力する(レジスタ76のデータを更新する)。ALU74がいかなる演算を行うかは、制御信号78によって制御される。そして、制御信号78を操作することで、ALU74の論理演算機能が再構成される。この再構成においては、レジスタ70,72,76に保持されたデータは、明示的にデータを消去したり、更新したりしない限り保全される。つまり、再構成後には、ALU74、そしてPEは、再構成前から保持されているデータを利用して継続することができる。
【0038】
なお、PEは、ここに述べた以外にも、様々に構成され得る。具体的には、PE間に流すデータ信号の流れを切り換えて再構成を実現する態様や、PE内に複数のALUを内蔵して複雑な演算制御を行う態様を例示することができる。
【0039】
再び、図1に戻って、画像処理装置10の説明を続ける。再構成デバイス20における制御回路32は、PE30からの指令に基づいて、再構成回路22の再構成を行う回路である。制御回路32は、メモリ34に格納されたプログラムに従って、再構成を実施する。メモリ34に対するプログラムの格納は、再構成デバイス20の製造時に行ってもよいし、製造後に行ってもよい。画像処理装置10においては、典型的には、メモリ34には画像データに対するデータ処理プログラムが格納され、再構成デバイス20は画像処理専用ハードウエアに準じる高速画像処理装置として活用される。
【0040】
なお、再構成デバイス20には、上記ハードウエアの他にも、例えば、論理的な再構成ができない演算回路、SRAM(メモリ)、入出力用スイッチなどを設けることができる。また、再構成できない演算回路、SRAM、入出力スイッチなどを再構成回路22内に混在させることも可能である。
【0041】
再構成デバイス20は、内部バス40に接続されている。内部バス40は、画像処理装置10内における通信路であり、各種データや制御信号などが流される。内部バス40には、CPU(中央制御装置)42、メモリ44、プリンタ46、スキャナ48、UI(ユーザインタフェース)50、CDD(コンパクトディスクドライブ)52、ネットワークIF(インタフェース)54などが接続されている。
【0042】
CPU42は、画像処理装置10における各種制御や画像処理などを行う装置である。CPU42は、メモリ44に格納されたプログラムに基づいて動作する。CPU42は、再構成デバイス20で行うべき画像処理と、自らが行うべき画像処理を切り分ける制御を行うこともできる。メモリ44は、半導体メモリあるいは磁気ディスクなどを用いて構成される記憶装置である。
【0043】
プリンタ46は、画像データに基づいて用紙に印刷を行う装置である。また、スキャナ48は、用紙の読み取りを行って、画像データを生成する装置である。UI50は、ユーザが画像処理装置10を操作するための装置である。UI50は、キーボードやタッチパネルなど、ユーザが指示を入力するための入力装置と、液晶ディスプレイなど、画像その他のデータをユーザに視覚的に提示するための表示装置を備える。
【0044】
CDD52は、記憶媒体としてのCD(コンパクトディスク)との間で、データを入出力するための装置である。制御回路32あるいはCPU42を制御するためのプログラムをCDに記憶させておき、CDD52を通じて、インストールを行うことも可能である。また、ネットワークIF54は、インターネットなどの外部のネットワーク60を通じて通信を行うためのインタフェースである。これにより、画像処理装置10は、ネットワーク60に接続された外部装置との間で画像データを送受信したり、制御回路32あるいはCPU42を制御するためのプログラムのデータ信号を受信したりすることができるようになる。
【0045】
画像処理装置10におけるこれらのハードウエアは、制御回路32あるいはCPU42を制御するためのプログラムなどによって制御され、画像処理を行うための装置として有機的に機能する。そして、UI50から入力されるユーザ指示に基づいて、プリンタ46を利用した印刷や、スキャナ48を利用した画像データ生成、CPU42や再構成デバイス20を利用した画像データ加工などの各種の画像処理を実施する。特に、再構成デバイス20には、再構成によって、画像データの伸張・圧縮や、フィルタリング、回転などの画像処理機能が構築され、ハードウエア的な高速処理が行われる。
【0046】
次に、再構成デバイス20について詳しく説明する。画像処理装置10においては、予め予定されたタイミング(例えば、画像データの圧縮指示がなされたり、新しい画像データが入力されたりするタイミング)で再構成デバイス20を再構成できる他、動的に再構成することも可能である。ここで、動的な再構成とは、流動的なタイミング、すなわち予め確定していないタイミングで再構成することをいう。
【0047】
図3は、動的な再構成の手順を示すフローチャートである。このフローチャートは、ある画像データについての処理が継続していることを前提とするものであり、適当なタイミング(例えば、1画素毎や1ライン毎)で再構成条件が評価される(S10)。すなわち、この画像データに対していかなる処理を行うべきであり、その処理を現在の画像処理構成(コンフィギュレーション)が実施できるかが評価される(S12)。いかなる処理を行うべきかの判断は様々に行うことが可能であり、例えば、入力される画像データあるいは対応する中間データについての条件(例えば輝度の絶対値についての条件)に基づいて行ってもよいし、これらのデータの近傍に入力されるデータについての条件(例えば周囲との輝度コントラスト)を利用して行ってもよい。また、そのデータより前に実施されたデータ処理の傾向を考慮して評価することも可能である。評価の結果(S12)、現在の画像処理構成が使えると判定された場合には、継続して処理が実行され(S14)、使えないと判定された場合には、画像データの入力が一時的にストップされて(S16)、再構成が実施され(S18)た後に、処理が実行される(S14)。これを順次繰り返すことで、一連の画像処理の中で、動的な再構成が繰り返される。
【0048】
図4は、動的な再構成で切り換えられる構成を例示する模式図である。ここでは、画像データに対しては、常に画像処理Xが行われ、続いて、画像処理Aまたは画像処理Bのいずれか一方が行われることを想定している。そして、再構成回路22には、図4(a)に示す構成と、図4(b)に示す構成とが択一的に構成される。
【0049】
図4(a)に示す態様では、再構成回路22には、画像処理Xを実施する論理回路Lxが設定されたX処理部80と、画像処理Aを実施する論理回路Laが構築されたA処理部82が配置されている。X処理部80は、入力された画像データを参照して(入力して)画像処理Xを施し、中間データDxを生成する。そして、A処理部82は、この中間データDxを参照して画像処理Aを行い、最終結果を表す出力データを出力する。次の画像データは、遅くともA処理部82が中間データDxを参照する時までに、X処理部80に入力される。すなわち、再構成回路22上では、複数の画像データに対する処理が時間差をつけて平行して行われている。なお、X処理部80やA処理部82は、中間データDx以外のデータを内部的に保持し、そのデータを参照してデータ処理を行うものであってもよい。
【0050】
ここで、再構成条件の評価の結果、ある中間データDxに対して、画像処理Bを行うべきであり、再構成が必要であると判定されたとする。この場合、再構成回路22は全面的に再構成され、図4(b)に示した回路が配置される。すなわち、再構成回路22には、画像処理Xを実施する論理回路Lx’が設定されたX処理部84と、画像処理Bを実施する論理回路Lbが構築されたB処理部86が配置されている。論理回路Lx’は、図4(a)の論理回路Lxと同一の回路であるが、改めて構成されたものであるため「’」の記号を付されている。そして、X処理部80とX処理部84は、再構成回路22における同一の箇所に配置されている。ここで、同一の箇所とは、再構成回路22においてX処理部80の論理回路Lxの各(2次元)座標と、X処理部84の論理回路Lx‘の各座標が等しい関係をいう。例えば、X処理部80の左上の座標(X11,Y11)、右下の座標(X12,Y12)とし、X処理部84の左上の座標を(X21,Y21)、右下の座標を(X22,Y22)として、これらの座標に着目すれば、X11=X21,X12=X22,Y11=Y21,Y12=Y22の各条件式を満足することになる。また、X処理部84では、再構成前のX処理部80に保持されていた中間データDxが保全されている。つまり、再構成前と再構成後では、再構成回路22における同一の箇所(つまり、再構成回路22における座標が同じ箇所)に、同一の値の中間データが保持されている。他方、B処理部86は、A処理部82と同一の箇所に配置される必要はない。しかし、少なくともB処理部86は、中間データDxを参照できる箇所に配置される。
【0051】
再構成が完了すると、B処理部86は、X処理部80から中間データDxを入力して、画像処理Bを実施する。また、X処理部84は、新たな画像データを入力して画像処理Xを実施する。つまり、図4に示した構成では、見かけ上、再構成回路22の中のA処理部82のみがB処理部86に変更されたかのように再構成される。言い換えれば、図4を用いて説明した例では、部分的再構成(Partial Reconfiguration)可能な回路が擬似的に構築されている。このように、B処理部86では、再構成回路22に保持された中間データをDxを利用して処理を継続するため、中間データDxの再計算は行われず、また、中間データDxのメモリへの退避及び再入力も行われない。ここで、参考として、中間データDxをメモリに退避して再構成後に再入力する態様について言及しておく。例えば、入力解像度600dpiをもつA4サイズの原稿の場合、1ピクセルを1クロックで処理すると仮定すれば、最大32Mピクセル分の処理時間(32Mクロック)をかけて、中間データDxの退避及び再入力を行うことになる。
【0052】
図5は、図4に対応する図であり、動的な再構成で切り換えられる別の構成を例示する模式図である。この例においては、図4を用いて示した例と同様に、画像データに対しては、常に画像処理Xが行われ、続いて、画像処理Aまたは画像処理Bのいずれか一方が行われる。このため、再構成回路22には、図5(a)に示すX処理部80とA処理部90が配置された構成と、図5(b)に示すX処理部84とB処理部110が配置された構成とが、再構成によって適宜構築される。図5(a),(b)におけるX処理部80,84は、図4(a),(b)におけるX処理部80,84と同様の画像処理Xを行うものであり、中間データDxを生成する点も同様である。しかし、図5(a),(b)におけるA処理部90,B処理部110は、図4(a),(b)におけるA処理部82,B処理部86とは異なっている。
【0053】
A処理部90は、4ステージからなるパイプライン処理によって、画像処理Aを実施するものである。パイプライン処理は、上流から下流へと順次処理を受け渡す複数のステージを持ち、各ステージが同期することで、複数の入力データに対する処理を時差をつけて平行して行う処理である。このため、A処理部90には、論理回路La1,La2,La3,La4をそれぞれ備えたステージ92,94,96,98の各処理部が設けられ、この順でデータが流れるように設定されている。すなわち、ステージ92は、X処理部80が保持する中間データDxを参照して、論理回路La1による画像処理を行い、中間データDa1を生成する。そして、ステージ94は、中間データDa1を参照して、論理回路La2による画像処理を行い、中間データDa2を生成する。同様にして、ステージ96は、中間データDa2を参照し、論理回路La3による画像処理を行って中間データDa3を生成し、ステージ98は、中間データDa3を参照し、論理回路La4による画像処理を行って出力データDa4を生成する。
【0054】
A処理部90には、画像処理Bをパイプライン処理によって実施するための二つのステージ100,102も設けられている。ステージ100は、論理回路Lb1を備え、中間データDb1を保持するものであり、ステージ102は、論理回路Lb2を備え、中間データDb2を保持するものである。しかし、ステージ100,102は、新たにデータを入出力しないように周囲から隔離されており、また、新たな画像処理の演算も実施しないように設定されている。
【0055】
再構成条件の評価が行われ、再構成が必要であると判断されると、全面的な再構成が行われ、図5(b)に示した回路が配置される。配置されたB処理部110は、A処理部90とは別のデータ処理を行うものであるが、A処理部90が配置されていた箇所(少なくとも一部の座標が重複する箇所)に配置されている。一例としては、再構成回路22におけるA処理部82の左上の座標を(X11,Y11)、右下の座標を(X12,Y12)とし、B処理部86の左上の座標を(X21,Y21)、右下の座標を(X22,Y22)として、この2点に着目すれば、X11≦X21<X22≦X12、かつ、Y11≦Y21<Y22≦Y12の条件式を満足する配置を挙げることができる。そして、B処理部110は、A処理部90と構成が類似しており、A処理部90が備えるステージ92,94,96,98に対応して、画像処理Aを実施するためのステージ112,114,116,118を備えている。すなわち、ステージ112〜118は、それぞれ論理回路La1’〜La4’(これらはLa1〜La4と同一であるが、再構成されたことを示すために「’」が付されている)を備え、また、中間データDa1〜Da4を保持している。ただし、これらの各ステージ112〜118は、周囲から隔離されており、かつ、新たな画像処理演算を実施しないように設定されている。
【0056】
B処理部110には、さらに、A処理部90が備えるステージ100,102に対応して、画像処理Bを実施するためのステージ120,122が設けられている。すなわち、ステージ120,122は、それぞれ論理回路Lb1’、Lb2’(これらはLb1、Lb2と同一であるが、再構成されたことを示すために「’」が付されている)を備え、また、中間データDb1、Db2を保持している。このステージ120,122は、画像処理Bを実施できるように設定されている。具体的には、ステージ120は、X処理部84が保持する中間データDxを参照し、論理回路Lb1’による演算を行って、中間データDb1を更新するように設定されている。また、ステージ122は、ステージ120が保持する中間データDb1参照し、論理回路Lb2’による演算を行って、出力データDb2を更新するように設定されている。
【0057】
再構成直後にステージ120,122が保持していた中間データDb1,Db2は、以前にB処理部110が構築されていた時から保全されていたものである。つまり、B処理部110は、パイプライン中に保持されていた中間データDb1,Db2を用いて、中断していた画像処理Bを実施する。また、B処理部110では、上述のように、画像処理Aに対するステージ92〜98が保持していた中間データDa1〜Da4が保全されており、A処理部90が構成された場合には、これらの中間データDa1〜Da4を用いて処理が継続されることになる。
【0058】
なお、図5に示した態様では、実際に使用しない論理回路も形式的に配置することとした。しかし、使用しない場合には、その論理回路を設けず(その論理回路を積極的に消滅させる)、単に保持されたデータを残すだけとし、採用する段階になって、改めてその論理回路を再配置するようにしてもよい。言い換えれば、ある論理回路によって更新され保持された中間データを将来的に再利用したい場合には、その中間データが保持されている領域を、この論理回路が再度必要にならない限り再構成時に同じまたは別の論理回路を設けてはいけない「配置禁止エリア」とすることができる。
【0059】
ここで、参考態様として、図6に、再構成を行わないで、画像処理A,Bを切り換える態様について示した。図6に示した構成では、図5(a)と同様に、ステージ92〜98と、ステージ100,102が設けられ、これらはともに連結されて画像処理Aのパイプラインと画像処理Bのパイプラインを形成している。そして、ステージ100,102の後ろには、フリップフロップで作られたDelay回路134,136が設けられ、画像処理Bのステージ数を形式的に画像処理Aのステージ数と同一に設定し、データ入出力順を維持している。また、両パイプラインと並列に、判定部130が設けられ、両パイプラインの下流には選択回路132が設けられている。
【0060】
この構成においては、画像データは、両パイプライン及び判定部130に入力される。そして、画像処理A、画像処理Bがともに実行される他、判定部130によっていずれの処理結果を採用するかが判定される。選択回路132は、判定部130の判定結果に基づいて、いずれか一方の出力を選択する。
【0061】
図6に示した構成では、図5に示した構成とは異なり、再構成は行われない。代わりに短いパイプラインをもつ画像処理Bの結果を採用する場合でも、長いパイプラインをもつ画像処理Aの結果を待って出力を行うことになる。他方、図5に示した再構成では、図6に示したDelay回路134,136が採用されておらず、短いパイプライン(画像処理B)が実施される場合には、長いパイプライン(画像処理A)と同期させるための待ち時間が不要となる。なお、図5に示した態様では、パイプラインの長さの違いに起因して、データの並び順が入れ替わってしまうおそれがある。これを回避するには、次に説明するように、データの並び順を調整するようにすればよい。
【0062】
続いて、図7と図8を用いて、パイプライン処理を行う二つの画像処理部を順次再構成する具体例について説明する。ここで挙げる例は、画像データに対して、5×5画素のフィルタ処理と、3×3画素のフィルタ処理のいずれかを施すものである。
【0063】
図7(a),(b)は、このフィルタ処理において切り換えられる二つの構成を示したブロック図である。図には、入力スイッチ150、再構成回路22、SRAM178、及びピクセルカウンタ180が含まれている。入力スイッチ150とSRAM178、及びピクセルカウンタ180は、例えば、再構成デバイス20上の入出力スイッチやSRAMなどを利用して構成される。また、再構成回路22の中には、TI(テキスト・イメージ)分離処理部152、再構成条件評価部154、再構成イベント発生器156、FIFO158、画像処理部160、ピクセルカウンタ170、FIFO−A172、及びFIFO−B174が構築されている。
【0064】
入力スイッチ150は、TI分離処理部152に対して、画像データの入力を1画素単位で順次入力する。順次入力するとは、ある程度の長期にわたり、次々とデータ要素が入力されることをいう。入力は、連続して行われてもよいし、間隔をあけて行われてもよい。また、入力間隔は不定期でもよい。なお、画像データは、1ビットのデータでもよいが、典型的には複数ビットからなる。
【0065】
TI分離処理部152は、入力された画素が、文字、数字、記号などを表すテキスト領域に位置するか、写真や図形などを表すイメージ領域に位置するかを判別し、判別結果を表すTagデータを入力された画像データに付加して、再構成条件評価部154に出力する。テキスト領域に対しては、エッジを強調するために、ウィンドウサイズが小さい3×3画像のフィルタ処理が施され、イメージ領域には、平滑化を図るためウィンドウサイズが大きい5×5画素のフィルタ処理が施されることになる。
【0066】
再構成条件評価部154は、Tagデータの値を予め設定された条件に基づいて評価する。具体的には、Tagデータの値が変化しない場合には、再構成回路22の再構成は不要であると評価し、評価結果を再構成イベント発生器156およびFIFO158に出力する。他方、Tagデータの値が変化する場合、すなわち、テキスト領域からイメージ領域に変化する場合や、イメージ領域からテキスト領域に変化する場合には、再構成を行うべきであると評価し、評価結果を再構成イベント発生器156およびFIFO158に出力する。また、再構成条件評価部154は、FIFO158からの書き込み可能信号(WE)が与えられた場合には、画像データをFIFO158に出力する。
【0067】
再構成イベント発生器156は、図1に示したPE30を用いて構築された装置であり、再構成条件評価部154から再構成すべき旨の評価結果を受信した場合に、図1に示した制御回路32にその旨の信号を送信する。FIFO158は、先入れ先出し方式のデータ格納部であり、TI分離処理部152と2種類のフィルタ(後述する5×5フィルタ処理部164及び3×3フィルタ処理部168)との処理速度差を吸収したり、再構成に要するクロックタイム分の画像データをバッファしたりするために設けられている。FIFO158から再構成条件評価部154へは書き込み可能信号(WE)が送信され、データ入力タイミングが制御される。また、FIFO158は、画像処理部160に対し、読み出し可能信号(RE)を送信する。そして、画像処理部160はこの信号に基づいて、画像データをFIFO158から読み出す。
【0068】
図7(a)の構成では、画像処理部160には、共通回路162と、5×5フィルタ処理部(図5の例におけるA処理部に相当する)164が設けられており、3×3フィルタ処理部(同じくB処理部に相当する)168は形式的に配置されている。すなわち、共通回路162は、画像データを入力して前処理を行い、引き続いて5×5フィルタ処理部164がフィルタ処理を行っている。そして、3×3フィルタ処理部168は、特に処理を行ってはいない。
【0069】
ピクセルカウンタ170は、FIFO158から画像処理部160への画像データの入力をカウントする。カウントは、FIFO158からの信号に基づいて行われる。そして、ピクセルカウンタ170は、各カウントに対応する画像データのアドレスを生成し、FIFO−A172に格納する。
【0070】
画像処理部160から画像データが出力される場合、FIFO−A172に対して読み出し信号(RE)が送られ、FIFO−A172からはSRAM178に出力データを格納すべきアドレスが送信される。そして、画像処理部160の5×5フィルタ処理部164から出力された出力データが、このアドレスに格納される。これにより、SRAM178には、元の画像データに対応する順番で、出力データが格納されることになる。SRAM178からは適当なタイミングで出力データが出力され、ピクセルカウンタ180はその数をカウントする。
【0071】
再構成イベント発生器156から再構成の指示を行った場合、再構成回路22は全面的に再構成されて、図7(b)に示す回路配置へと再構成される。ただし、再構成後の配置は、再構成前と多くの部分で同一であり、FIFO−A172に代えてFIFO−B174が用いられる点、及び、画像処理部160において、5×5フィルタ処理部164に代えて3×3フィルタ処理部168が用いられる点のみが相違している。すなわち、画像処理部160では、3×3画素のフィルタ処理が行われ、その出力データがFIFO−B174からのアドレスに従ってSRAM178に格納される。
【0072】
図8は、図7に示した画像処理部160の構成を詳しく説明する図である。共通回路162は、内部に5つのデータを格納するFIFO190,192,194,196と、5×5のタップが設けられたタップ部200によって構成されている。すなわち、入力された画像データは、タップ202,204,...のように、まず、最上段のタップに順次流されるとともに、FIFO190に格納される。そして、最上段のタップに流された画像データが消滅すると、この画像データは、FIFO190から2段目のタップに順次流されるとともに、FIFO192に格納される。このようにして、画像データは、最上段から最下段までのタップを順次流されていく。タップ部200の全体に着目すれば、タップ部200の右下のタップには最も古く入力された画像データが格納され、左上のタップ202には最も新しく入力された画像データが格納されることになる。
【0073】
図8(a)に示す構成では、5×5フィルタ処理部164に対しては、タップ部200の全タップからデータが入力されるように結線の入力論理が設定されている。そして、5×5フィルタ処理部164は、タップ部200における中央のタップ210の画素に関して、5×5画素の全画像データに基づいてフィルタ処理の演算を行う。フィルタ処理の演算では、例えばラプラシアンに対応するフィルタ係数との積和演算が行われる。
【0074】
他方、図8(b)に示す構成では、タップ部200には、5×5の全タップに画像データが配置される。しかし、3×3フィルタ処理部168には、タップ部200の中央付近の3×3画素の画像データのみが入力されるように入力論理が設定され、3×3フィルタ処理部168は、この3×3画素の画像データに基づいてフィルタ処理の演算を行う。このように、タップ部200は、再構成の前後において、いずれのサイズのフィルタ処理部に対しても必要な画像データを出力できるように設定されており、それゆえに、両フィルタ処理部から独立した共通回路162として設けられている。なお、5×5フィルタ処理部164と3×3フィルタ処理部168を同一の箇所に配置する(図4に示した例のように、一方が配置されていた箇所に、再構成後に他方を配置する)ことも可能である。この場合はフィルタ中の中間データが保持さなくなるため、中間データがこれらのフィルタを流れきるまで、再構成を待つようにしてもよい。図示した例のように、共通回路162を設けて各フィルタ固有のデータ処理が削減した場合には、中間データがフィルタを流れきる時間は比較的短いものとなる(例えば、数十クロック程度)。
【0075】
以上の説明においては、画像データについてのデータ処理を念頭において説明した。しかし、本実施の形態は、画像データ以外の様々なデータ(例えば音声データ、観測データ、シミュレーションデータなど)のデータ処理にも適用可能である。また、以上の説明では、再構成の前後で共通する処理部については、同一の箇所に配置する例を挙げたが、同一の箇所ではないが、再構成前から保持されているデータを活用できるように対応している箇所に配置することも可能である。例えば、あるレジスタやメモリの値を複数のPEから参照できるような場合、いずれのPEに対しても処理部を配置できる可能性がある。
【図面の簡単な説明】
【0076】
【図1】本実施の形態にかかる画像処理装置のハードウエア構成例を示す図である。
【図2】PEの構成例の概略を示す図である。
【図3】再構成の手順の例を示すフローチャートである。
【図4】再構成例を示すブロック図である。
【図5】別の再構成例を示すブロック図である。
【図6】図5の例に関連した参考図である。
【図7】再構成の具体例を示すブロック図である。
【図8】図7の構成の一部分を詳細に示す図である。
【符号の説明】
【0077】
10 画像処理装置、20 再構成デバイス、22 再構成回路、23,24,30 PE、32 制御回路、34 メモリ、40 内部バス、42 CPU、44 メモリ、46 プリンタ、48 スキャナ、50 UI、52 CDD、54 ネットワークIF、60 ネットワーク、70,72,76 レジスタ、74 ALU、78 制御信号、80,84 X処理部、82,90 A処理部、86,110 B処理部、130 判定部、132 選択回路、150 入力スイッチ、152 TI分離処理部、154 再構成条件評価部、156 再構成イベント発生器、158 FIFO、160 画像処理部、162 共通回路、164 5×5フィルタ処理部、168 3×3フィルタ処理部、170,180 ピクセルカウンタ、172 FIFO−A、174 FIFO−B、178 SRAM、200 タップ部。

【特許請求の範囲】
【請求項1】
論理的な再構成が可能であり、かつ、保持されたデータを再構成の前後で保全可能である演算回路に配置され、保持されたデータの参照及び更新を行いながら連関する複数のデータ処理を実施するデータ処理部と、
前記複数のデータ処理におけるあるデータ処理を別のデータ処理に変更するか否か判定する判定手段と、
前記判定手段の判定結果に基づいて前記演算回路の再構成を行い、前記データ処理部を再配置する再配置手段と、
を備え、
前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更するように、かつ、変更しない少なくとも一部のデータ処理が再配置前と対応する箇所で実施されるように、前記データ処理部を再配置し、
前記データ処理部は、前記再配置手段による再配置後に、前記配置前と対応する箇所に再配置前から保持されているデータを参照して、前記別のデータ処理を実施することを特徴とするデータ処理装置。
【請求項2】
請求項1に記載のデータ処理装置において、
前記再配置前と対応する箇所とは、前記演算回路上における再配置前と同一箇所であることを特徴とするデータ処理装置。
【請求項3】
請求項1に記載のデータ処理装置において、
前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更する場合には、前記あるデータ処理が実施されている箇所で前記別のデータ処理が実施されるように前記データ処理部を配置することを特徴とするデータ処理装置。
【請求項4】
請求項1に記載のデータ処理装置において、
前記再配置手段は、前記あるデータ処理を前記別のデータ処理に変更する場合には、再配置される前記別のデータ処理が、前記あるデータ処理により参照または更新されていたデータを更新しないように前記データ処理部を再配置し、その後に再度前記あるデータ処理へと再変更する場合には、前記あるデータ処理が以前と対応する箇所で実施されるように前記データ処理部を再配置することを特徴とするデータ処理装置。
【請求項5】
請求項4に記載のデータ処理装置において、
前記以前と対応する箇所とは、以前と同一の箇所であることを特徴とするデータ処理装置。
【請求項6】
請求項4に記載のデータ処理装置において、
前記あるデータ処理は、上流から下流へと順次処理を受け渡す複数段階が同期して処理を行うことにより、複数のデータに対する処理を時差をつけて平行して行うものであり、
前記データ処理部は、前記あるデータ処理から出力されるデータと前記別のデータ処理から出力されるデータの並び順を調整する調整機構を備えることを特徴とするデータ処理装置。
【請求項7】
請求項6に記載のデータ処理装置において、
前記別のデータ処理は、上流から下流へと順次処理を受け渡す複数段階が同期して処理を行うことにより、複数のデータに対する処理を時差をつけて平行して行うものであり、
前記別のデータ処理における前記複数段階は、前記あるデータ処理における前記複数段階よりも短く、
前記別のデータ処理からは、前記あるデータ処理に比べて早くデータが出力されることを特徴とするデータ処理装置。
【請求項8】
請求項1に記載のデータ処理装置において、
データを順次入力する入力部を備え、
データ処理部は、入力した各データに対して、前記連関する複数のデータ処理を実施することを特徴とするデータ処理装置。
【請求項9】
請求項8に記載のデータ処理装置において、
前記判定手段は、入力した各データについて、前記あるデータ処理を前記別のデータ処理に変更するか否か判定することを特徴とするデータ処理装置。
【請求項10】
請求項1乃至9のいずれか1項に記載のデータ処理装置において、
前記データ処理部が実施する前記複数のデータ処理は、画像データに対するデータ処理であることを特徴とするデータ処理装置。
【請求項11】
請求項10に記載のデータ処理装置において、
前記あるデータ処理と前記別のデータ処理は、参照するデータの画素範囲の広狭が異なり、
前記再配置部の配置によって再配置前と対応する箇所で実施されるように設定される前記少なくとも一部のデータ処理には、前記あるデータ処理と前記別のデータ処理の両者が共通して参照可能な並び順に前記データを配列して保持する配列保持処理が含まれることを特徴とするデータ処理装置。
【請求項12】
請求項10または11に記載のデータ処理装置と、
前記画像データを生成する生成手段、または、前記画像データに基づく印刷を行う印刷手段と、
を備えることを特徴とする画像処理装置。
【請求項13】
論理的な再構成が可能であり、かつ、保持されたデータを再構成の前後で保全可能である演算回路と、
前記演算回路に配置され、保持されたデータの参照及び更新を行いながら連関する複数のデータ処理を実施するデータ処理部と、
前記複数のデータ処理におけるあるデータ処理を別のデータ処理に変更するか否か判定する判定手段と、
前記判定手段の判定結果に基づいて前記演算回路の再構成を行い、前記データ処理部を再配置する再配置手段と、
を備えるコンピュータにおいて、
前記再配置手段に対し、前記あるデータ処理を前記別のデータ処理に変更するように、かつ、変更しない少なくとも一部のデータ処理が再配置前と対応する箇所で実施されるように、前記データ処理部を再配置させ、
前記データ処理部に対し、前記再配置手段による再配置後に、前記配置前と対応する箇所に再配置前から保持されているデータを参照して、前記別のデータ処理を実施させる、
ことを特徴とするデータ処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2008−181361(P2008−181361A)
【公開日】平成20年8月7日(2008.8.7)
【国際特許分類】
【出願番号】特願2007−14584(P2007−14584)
【出願日】平成19年1月25日(2007.1.25)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】