(57)【要約】【課題】再構成可能回路を用いて検出対象に対する検出処理を行う場合に、再構成の柔軟性を高め、検出処理の効率を向上させる。【解決手段】コンフィグメモリ３２にコードＡ検出用のコンフィグデータＡ−１がロードされると、リコンフィギュラブルプロセッサ３４には、画像データに含まれるコードを検出するコード検出部４０が設定される。このコード検出部は、制検出対象となるコードＡが含まれないと判定した場合には、コード無フラグ９２を制御部３６に出力する。この場合、制御部は、コードＢ検出用のコンフィグデータＢ−１のロードを開始する。他方、コード検出部は、一連の処理を終了した場合には、処理終了フラグ９０を制御部に出力する。そして、制御部は、コードＡの検出を継続するコンフィグデータＡ−２のロードを開始する。【選択図】図２
2009025955.tif 000002
【特許請求の範囲】
【請求項１】
論理の再構成が可能な再構成可能回路と、
検出対象に関する検出処理を行う論理が複数に分割して規定された複数の論理設定データを記憶する記憶装置と、
前記再構成可能回路に対し、論理の再構成を行って、前記論理設定データに基づく論理を設定する設定手段と、
前記再構成可能回路に設定された論理に基づいて、処理対象データに対し前記検出処理の少なくとも一部を実行する実行手段と、
前記検出処理の途中結果に基づいて、前記設定手段により再構成が行われる時期の制御、または、前記設定手段による設定に用いられる前記論理設定データの選択の制御を行う制御手段と、
を備えることを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置において、
前記制御手段は、前記検出処理の途中結果に基づいて、前記検出処理を中止または一部省略するように前記制御を行う、ことを特徴とするデータ処理装置。
【請求項３】
請求項２に記載のデータ処理装置において、
前記検出対象は複数種類あり、
前記論理設定データは、少なくとも前記検出対象の種類毎に分割して規定され、
前記制御手段は、ある種類の前記検出対象に関する前記検出処理の途中結果に基づいて、この種類の検出対象に関する前記検出処理を中止または一部省略するように前記制御を行う、ことを特徴とするデータ処理装置。
【請求項４】
請求項３に記載のデータ処理装置において、
前記制御手段は、設定中の論理に基づく処理が完了する前に、論理の再構成が行われるように制御を行う、ことを特徴とするデータ処理装置。
【請求項５】
請求項３または４に記載のデータ処理装置において、
前記制御手段は、次以降の再構成で、他の種類の検出対象についての前記論理設定データが選択されるように制御を行う、ことを特徴とするデータ処理装置。
【請求項６】
請求項１に記載のデータ処理装置において、
前記論理設定データに規定された論理には、前記検出処理の途中結果を評価する論理が含まれ、
前記実行手段は、前記検出処理の途中結果を評価する論理に基づいて前記途中結果を評価し、
前記制御手段は、前記実行手段による評価結果に基づいて、前記制御を行う、ことを特徴とするデータ処理装置。
【請求項７】
請求項１に記載のデータ処理装置において、
前記再構成可能回路には、二以上の前記論理設定データが選択可能に記憶される選択可能記憶装置が設けられ、
前記制御手段は、さらに、前記検出処理の途中結果に基づいて、次に設定される可能性がある論理設定データを前記選択可能記憶装置に記憶させる制御を行い、
前記設定手段は、前記選択可能記憶装置に記憶された二以上の前記論理設定データの中から、設定対象を選択的に切り換えて、切り換えた先の前記論理設定データに基づく論理を設定する、ことを特徴とするデータ処理装置。
【請求項８】
請求項１に記載のデータ処理装置において、
前記制御手段は、前記検出処理の途中結果に基づいて、前記検出処理を継続するように前記制御を行う、ことを特徴とするデータ処理装置。
【請求項９】
請求項１乃至８のいずれか１項に記載のデータ処理装置において、
前記処理対象データは、画像データである、ことを特徴とするデータ処理装置。
【請求項１０】
請求項９に記載のデータ処理装置において、
前記検出対象は、情報が記号化された画像である、ことを特徴とするデータ処理装置。
【請求項１１】
請求項９に記載のデータ処理装置において、
前記検出対象は、共通の特性を持った画像領域である、ことを特徴とするデータ処理装置。
【請求項１２】
論理の再構成が可能な再構成可能回路と、
検出対象に関する検出処理を行う論理が複数に分割して規定された複数の論理設定データを記憶する記憶装置と、
を備えたコンピュータを、
前記再構成可能回路に対し、論理の再構成を行って、前記論理設定データに基づく論理を設定する設定手段と、
前記再構成可能回路に設定された論理に基づいて、処理対象データに対し前記検出処理の少なくとも一部を実行する実行手段と、
前記検出処理の途中結果に基づいて、前記設定手段により再構成が行われる時期、または、前記設定手段による設定に用いられる前記論理設定データの選択の制御を行う制御手段、
として機能させることを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、またはデータ処理プログラムに関する。
【背景技術】
【０００２】
下記特許文献１には、複数種類のコードを読み取る装置についての記載がある。この技術では、読み取り可能な各種類のコードについて、予め設定された順に従い、所定の読み取り処理を行っている。
【０００３】
下記特許文献２には、画像データの種別の判定結果に基づいて、画像データに含まれるデコード対象の候補位置を決定し、デコード処理を実行する技術が開示されている。そして、デコードが出来なかった場合には、次の候補位置に対して同様の処理を行う。
【０００４】
下記特許文献３に記載された技術では、画像データに対し、あるプロセッサ（システムコントローラ）がテキスト領域や写真領域などの領域判別を行い、判別された領域ごとに特徴量を抽出する。続いて、この処理は、別のプロセッサ（ＳＩＭＤ型の画像処理プロセッサ）に渡され、同じ種類領域に対し、特徴量に基づくデータ処理方式で画像処理が行われる。
【０００５】
【特許文献１】特開２００１−５２１０５号公報
【特許文献２】特開平１１−２０５５８０号公報
【特許文献３】特開２００１−２２３８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、再構成可能回路を用いて検出対象に対する検出処理を行う場合に、再構成の柔軟性を高め、検出処理の効率を向上させることにある。
【課題を解決するための手段】
【０００７】
本発明のデータ処理装置の一態様においては、論理の再構成が可能な再構成可能回路と、検出対象に関する検出処理を行う論理が複数に分割して規定された複数の論理設定データを記憶する記憶装置と、前記再構成可能回路に対し、論理の再構成を行って、前記論理設定データに基づく論理を設定する設定手段と、前記再構成可能回路に設定された論理に基づいて、処理対象データに対し前記検出処理の少なくとも一部を実行する実行手段と、前記検出処理の途中結果に基づいて、前記設定手段により再構成が行われる時期の制御、または、前記設定手段による設定に用いられる前記論理設定データの選択の制御を行う制御手段と、を備える。
【０００８】
本発明のデータ処理装置の一態様においては、前記制御手段は、前記検出処理の途中結果に基づいて、前記検出処理を中止または一部省略するように前記制御を行う。
【０００９】
本発明のデータ処理装置の一態様においては、前記検出対象は複数種類あり、前記論理設定データは、少なくとも前記検出対象の種類毎に分割して規定され、前記制御手段は、ある種類の前記検出対象に関する前記検出処理の途中結果に基づいて、この種類の検出対象に関する前記検出処理を中止または一部省略するように前記制御を行う。
【００１０】
本発明のデータ処理装置の一態様においては、前記制御手段は、設定中の論理に基づく処理が完了する前に、論理の再構成が行われるように制御を行う。
【００１１】
本発明のデータ処理装置の一態様においては、前記制御手段は、次以降の再構成で、他の種類の検出対象についての前記論理設定データが選択されるように制御を行う。
【００１２】
本発明のデータ処理装置の一態様においては、前記論理設定データに規定された論理には、前記検出処理の途中結果を評価する論理が含まれ、前記実行手段は、前記検出処理の途中結果を評価する論理に基づいて前記途中結果を評価し、前記制御手段は、前記実行手段による評価結果に基づいて、前記制御を行う。
【００１３】
本発明のデータ処理装置の一態様においては、前記再構成可能回路には、二以上の前記論理設定データが選択可能に記憶される選択可能記憶装置が設けられ、前記制御手段は、さらに、前記検出処理の途中結果に基づいて、次に設定される可能性がある論理設定データを前記選択可能記憶装置に記憶させる制御を行い、前記設定手段は、前記選択可能記憶装置に記憶された二以上の前記論理設定データの中から、設定対象を選択的に切り換えて、切り換えた先の前記論理設定データに基づく論理を設定する。
【００１４】
本発明のデータ処理装置の一態様においては、前記制御手段は、前記検出処理の途中結果に基づいて、前記検出処理を継続するように前記制御を行う。
【００１５】
本発明のデータ処理装置の一態様においては、前記処理対象データは、画像データである。
【００１６】
本発明のデータ処理装置の一態様においては、前記検出対象は、情報が記号化された画像である。
【００１７】
本発明のデータ処理装置の一態様においては、前記検出対象は、共通の特性を持った画像領域である。
【００１８】
本発明のデータ処理プログラムの一態様においては、論理の再構成が可能な再構成可能回路と、検出対象に関する検出処理を行う論理が複数に分割して規定された複数の論理設定データを記憶する記憶装置と、を備えたコンピュータを、前記再構成可能回路に対し、論理の再構成を行って、前記論理設定データに基づく論理を設定する設定手段と、前記再構成可能回路に設定された論理に基づいて、処理対象データに対し前記検出処理の少なくとも一部を実行する実行手段と、前記検出処理の途中結果に基づいて、前記設定手段により再構成が行われる時期、または、前記設定手段による設定に用いられる前記論理設定データの選択の制御を行う制御手段、として機能させる。
【発明の効果】
【００１９】
請求項１に記載の発明によれば、再構成可能回路を用いて検出対象に対する検出処理を行う場合に、検出処理の途中結果に基づいて再構成が制御されるため、再構成の柔軟性を高め、検出処理の効率を向上させることが可能となる。
【００２０】
請求項２に記載の発明によれば、検出処理の途中結果次第でその検出処理の中止または一部省略を行うことで、処理時間の無駄が防止もしくは低減される。
【００２１】
請求項３に記載の発明によれば、検出の種類毎に、検出処理の中止または一部省略が判断されるため、処理時間の無駄が防止もしくは低減される。
【００２２】
請求項４に記載の発明によれば、実行を継続する必要のない論理を再構成し、実行する必要がある論理を設定することが可能となる。
【００２３】
請求項５に記載の発明によれば、実行する必要のない論理の設定を防止して、処理時間の無駄を防止もしくは低減することが可能となる。
【００２４】
請求項６に記載の発明によれば、処理状況の評価の高速化と、制御態様の簡略化の一方または両方の効果が期待できる。
【００２５】
請求項７に記載の発明によれば、再構成に要する時間を短縮化することが可能となる。
【００２６】
請求項８に記載の発明によれば、検出処理の途中結果に応じて検出処理の継続を決定するため、処理時間の無駄が防止もしくは低減される。
【００２７】
請求項９に記載の発明によれば、画像処理の高速化が可能となる。
【００２８】
請求項１０に記載の発明によれば、画像データ中の埋込情報の検出にかかる処理を高速化することができる。
【００２９】
請求項１１に記載の発明によれば、画像データ中で共通の特性をもつ画像領域の検出にかかる処理を高速化することが可能となる。
【００３０】
請求項１２に記載の発明によれば、再構成可能回路を用いて検出対象に対する検出処理を行う場合に、検出処理の途中結果に基づいて再構成が制御されるため、再構成の柔軟性を高め、検出処理の効率を向上させることが可能なプログラムが提供される。
【発明を実施するための最良の形態】
【００３１】
［用語の説明］
ここでは、特許請求の範囲、明細書、または図面において用いられる用語や概念等について説明する。
【００３２】
データ処理装置は、再構成可能回路や記憶装置を備えたコンピュータハードウエアと、その動作を規定するプログラム（ソフトウエア）を用いて構築される装置である。コンピュータハードウエアは、プログラムの制御によって、設定手段、実行手段、制御手段などの各手段として機能することになる。データ処理装置は、単体のコンピュータハードウエアを利用した集中処理システムとして構築されてもよいし、通信可能な複数のコンピュータハードウエアを利用した分散処理システムとして構築されてもよい。
【００３３】
再構成可能回路とは、論理仕様を変更可能な回路をいう。再構成可能回路では、複数の小回路（プロセッサエレメント）が通信可能に分散配置されていることも多い。プロセッサエレメントには、主として演算を行う演算エレメントや、主としてデータを記憶するメモリエレメントなどが含まれる。再構成可能回路では、演算論理仕様、プロセッサエレメント間の結線論理仕様、あるいは、外部との入出力仕様などの論理仕様を変更し、適当な論理を設定することができる。再構成にあたっては、再構成可能回路に含まれる記憶回路（メモリエレメントやレジスタなど）に記憶されたデータが保全（破壊しない）されてもよい。
【００３４】
設定手段は、再構成可能回路に設定する論理を再構成する手段である。再構成は、典型的には、再構成可能回路に設けられた記憶装置（コンフィグメモリと呼ばれることがある）に対し、論理設定データ（コンフィグデータと呼ばれることがある）を入力することにより行われる。この記憶装置は、複数の論理設定データを入力可能とし、設定する論理設定データをスイッチにより選択できるように設計されることもある（これを選択可能記憶装置と呼ぶ）。なお、再構成を短時間（例えば数クロック）で実施できる場合には、演算を実行途中に再構成を行う「動的再構成」が可能となる。
【００３５】
記憶装置は、ＲＯＭやＲＡＭなどの記憶装置を利用して構築され、複数の論性設定データを記憶する。記憶装置には、処理対象データに対し検出対象に関する検出処理の論理が、複数に分割して規定された複数の論理設定データが記憶される。各論理設定データは、検出処理の一部の処理論理を規定するデータであり、分割された各論理設定データを合わせることで、検出処理の全体の論理が導かれる。処理対象データの例としては、画像データ、音声データ、文書データ（文字コードを含むデータ）、実験・観測データなどが挙げられ、検出対象の例としては、処理対象データ自体のデータ特性、処理対象データに含まれる部分データ、部分データのデータ特性などが挙げられる。また、検出対象に関する検出処理とは、検出対象自体の検出、または、検出対象に関連した情報の検出などを指す。検出対象自体の検出は、例えば、検出対象の有無、位置、大きさ、方向、または、色の検出をするものであり、対応する特徴量の抽出などにより行うことができる。検出対象に関連した情報の検出は、例えば、検出対象が保持する記号情報の解析（デコード）、あるいは、検出対象が保持する記号情報が指し示すデータの読み出しなどをするものである。なお、論理設定データが設定する論理には、検出処理以外の処理を規定する論理が含まれていてもよいし、さらに、記憶装置は、検出処理以外の処理を規定する論理設定データを記憶していてもよい。
【００３６】
実行手段は、設定された論理に基づいて、処理対象データに対して前記検出処理の少なくとも一部を実行する。そして、制御手段は、前記検出処理の途中結果に基づいて、再構成の時期と、前記論理設定データの選択の一方または両方を制御する。ここで、前記検出処理の途中結果に基づくとは、検出対象に関する検出処理が完了（終了）する前の段階における検出処理状況に基づくことをいう。途中結果は、例えば、所定の条件を満たす処理結果が得られているか否かなどにより評価可能である。
【００３７】
［実施の形態］
以下に本発明の実施の形態を例示する。
【００３８】
図１は、本実施の形態にかかる画像処理装置１０の構成例を示す概略図である。画像処理装置１０は、データ処理装置の一種であり、図示した例においては単体の筐体をもつ装置として構成されている。画像処理装置１０の内部には、内部通信路としての内部バス１１が設けられている。そして、内部バス１１には、ＣＰＵ（中央処理装置）１２、ＲＯＭ（ＲｅａｄＯｎｌｙＭｅｍｏｒｙ）１４、ＲＡＭ（ＲａｎｄｏｍＡｃｃｅｓｓＭｅｍｏｒｙ）１６、ＨＤＤ（ＨａｒｄＤｉｓｃＤｒｉｖｅ）１８、再構成可能システム２０、ＵＩ（ＵｓｅｒＩｎｔｅｒｆａｃｅ）２１、スキャナ２２、プリンタ２４、ＣＤＤ（ＣｏｍｐａｃｔＤｉｓｃＤｒｉｖｅ）２６、及びネットワークインタフェース２８の各構成装置が接続されている。
【００３９】
ＣＰＵ１２は、ＲＯＭ１４などに格納されたプログラムに従って、画像処理装置１０の各構成装置の制御や、画像処理等を行う装置である。ＲＯＭ１４は長期的な記憶が可能な半導体メモリ（記憶装置）であり、各種のプログラムや設定情報などを記憶する。ＲＡＭ１６は主として短期的な記憶に用いられる半導体メモリである。ＤＲＡＭ（ダイナミックＲＡＭ）を用いた場合には、比較的大容量だがアクセスがやや遅い記憶装置となり、ＳＲＡＭ（スタティックＲＡＭ）を用いた場合には、比較的小容量だがアクセスがやや早い記憶装置となる。ＲＡＭ１６には、処理対象となる画像データなどが記憶される。ＲＡＭ１６と再構成可能システム２０との入出力を高速化するために、内部バス１１を介さずに両者を直結したり、ＤＤＲ（ダブルデータレート）方式を用いたりする場合もある。ＨＤＤ１８は磁気ディスクなどを用いて構成された大容量の記憶装置であり、画像データの長期的な記憶などに用いられる。
【００４０】
再構成可能システム２０は、コンフィグメモリ３２、リコンフィギュラブルプロセッサ３４、及び制御部３６を含む装置であり、典型的には、同一のチップ上にこうした装置を設置されている。コンフィグメモリ３２は、再構成可能回路が備える記憶装置の例であり、リコンフィギュラブルプロセッサ３４の論理仕様を規定する論理仕様データが入力される。
【００４１】
リコンフィギュラブルプロセッサ３４は、再構成可能回路の中核をなす装置であり、アレイ状に配置された複数のプロセッサエレメント（ＰＥ）を備えている。プロセッサエレメントは、リコンフィギュラブルプロセッサ３４を構成する小回路であり、例えば、演算要素としてのＡＬＵエレメント、あるいは、記憶要素としてのＲＡＭエレメントなどからなる。このうち、ＡＬＵエレメントは、再構成された論理仕様に基づいて、データに対する演算処理を行う小回路であり、ＲＡＭエレメントは、データの入出力及び記憶が行われる小回路であり、例えば、高速な入出力が可能なＳＲＡＭを用いて構築される。ＲＡＭエレメントは、外部設置されるＲＯＭ１４やＲＡＭ１６などに比べて容量が小さいことが多い。ＡＬＵエレメントの内部的な論理仕様である演算論理仕様や、他のＡＬＵエレメントやＲＡＭエレメントとの接続を規定する結線論理仕様、外部装置との接続を規定する入出力論理仕様などは、コンフィグメモリ３２に設定された論理仕様データに基づいて再構成される。なお、リコンフィギュラブルプロセッサ３４には、外部装置との入出力を高速に行う専用入出力Ｉ／Ｆ（インタフェース）や、論理仕様が固定された（再構成不可能な）小演算回路などが設けられることも多い。
【００４２】
制御部３６は、再構成可能システム２０において、論理仕様データの選択や再構成時期などを制御する装置である。制御部３６は、演算機能を備えたハードウエアと、その動作を規定するプログラムなどによって構築される。このプログラムを適宜書き換えることにより、制御部３６自体に対する制御態様を変更することが可能となる。
【００４３】
ＵＩ２１は、液晶ディスプレイや発光ダイオードなどの表示装置、及び、タッチパネルやキーボードなどの入力装置を備え、画像処理装置１０のユーザにデータを表示したり、ユーザから操作命令を受け付けたりする。スキャナ２２は、用紙表面の画像を読み取って画像データを生成する読取装置である。プリンタ２４は、画像データに基づいて用紙に印刷を行う印刷装置である。ＣＤＤ２６は、記録媒体としてのＣＤ（コンパクトディスク）に記録されたデータを読み取る装置であり、例えば、ＣＰＵ１２や制御部３６を制御するためのプログラムがＣＤＤ２６により提供された場合にこのプログラムを読み取るために用いられる。ネットワークインタフェース２８は、インターネットなどのネットワーク３０に接続してデータを入出力するためのインタフェースであり、例えば、ＣＰＵ１２や制御部３６を制御するためのプログラムがネットワーク３０を通じて提供される場合、このプログラムのデータ信号を受信するために用いられる。
【００４４】
図２は、再構成可能システム２０の構成を詳細に説明する図である。なお、以下では、画像処理としてのコード検出処理を行うことを念頭に説明を行う。ここで、コードとは、情報が記号化されて埋め込まれた画像であり、具体例としては、バーコード、ＱＲコード、電子すかしなどが挙げられる。
【００４５】
図２の例では、リコンフィギュラブルプロセッサ３４に対し、コード検出部４０が形成されている。コード検出部４０には、符号４２〜５０で示した各処理、すなわち、処理Ａ１、処理Ａ２、処理Ａ３、判定、及び処理Ａ４を行う小処理部が設けられている。そして、画像データである入力データ５２を入力して、順次パイプライン処理を行い、その結果得られた出力データ５４を出力する。
【００４６】
コード検出部４０は、コンフィグメモリ３２に入力されたコンフィグデータによって、ハードウエア的にその論理が設定されたものである。コンフィグメモリ３２に対し設定されるコンフィグデータは、例えば、ＲＡＭ１６に設けられた格納エリアに格納（記憶）されている。図示した例では、コードＡ検出コンフィグデータ（コードＡを検出するためのコンフィグデータ）６０を構成する４個のコンフィグデータＡ−１，Ａ−２，Ａ−３，Ａ−４と、コードＢ検出コンフィグデータ６２を構成する３個のコンフィグデータＢ−１，Ｂ−２，Ｂ−３と、コードＣ検出コンフィグデータ６４を構成する３個のコンフィグデータＣ−１，Ｃ−２，Ｃ−３が格納されている。
【００４７】
制御部３６には、プログラムによって、フラグ検知部７０、コンフィグデータ選択部７２、コンフィグデータ管理テーブル８０が構築されている。フラグ検知部７０は、コード検出部からの割込信号を検知するものである。具体的には、符号５０の処理Ａ４の終了時に出力される処理終了フラグ９０と、符号４８の判定においてコード検出の見込みが無いとみなされた場合に出力されるコード無フラグ９２を取得して、その種別を判断し、コンフィグデータ選択部７２に送信する。コンフィグデータ選択部７２には、処理終了フラグ制御部７４、コード無フラグ制御部７６、予測制御部７８が構築されている。処理終了フラグ制御部７４は、処理終了フラグ９０を受信して、次に設定するコンフィグデータを決定する。また、コード無フラグ制御部７６は、コード無フラグ９２を受信して、次に設定するコンフィグデータを決定する。そして、予測制御部７８は、次に設定されるであろうコンフィグデータを、現在設定中のコンフィグデータ、処理終了フラグ９０、コード無フラグ９２などに基づいて予測する。符号４８の判定によりコード検出の可能性があるとみなされた場合にコード有フラグを出力させるようにし、予測制御部７８に対し、このコード有フラグに基づく予測を行わせてもよい。予測制御部７８に予測されたコンフィグデータは、コンフィグメモリ３２における切り換え可能な領域に予め入力される。
【００４８】
コンフィグデータ管理テーブル８０は、コンフィグデータ選択部７２で参照されるテーブルである。これについては、あとで、図４と図５を用いて具体例を説明する。
【００４９】
図３は、図２に示したコードＡ検出コンフィグデータ６０、コードＢ検出コンフィグデータ６２、コードＣ検出コンフィグデータ６４の具体例を示す図である。コードＡ検出コンフィグデータ６０は、一連の４個のコンフィグデータＡ−１，Ａ−２，Ａ−３，Ａ−４からなる。コンフィグデータＡ−１は、図２で説明したように、処理Ａ１、処理Ａ２、処理Ａ３、判定、処理Ａ４からなるパイプライン処理の論理を設定するものである。また、コンフィグデータＡ−２は、処理Ａ５、処理Ａ６、処理Ａ７、判定、処理Ａ８からなるパイプライン処理の論理を設定し、コンフィグデータＡ−３は、処理Ａ９、処理Ａ１０、判定、処理Ａ１１、処理Ａ１２からなるパイプライン処理の論理を設定し、コンフィグデータＡ−４は、処理Ａ１３、処理Ａ１４、処理Ａ１５、処理Ａ１６からなるパイプライン処理の論理を設定する。これらのコンフィグデータは、順次コンフィグメモリ３２に設定され、対応する一連の処理によって画像データからコードＡに対する検出を含む処理が行われる。典型的には、各コンフィグデータに対応した処理の結果は、中間データとして出力され、次のコンフィグデータに対応した処理で用いられる。なお、この一連の処理を何個のコンフィグデータにわけて設定するかは、リコンフィギュラブルプロセッサ３４の大きさに基づいて決定される。
【００５０】
同様にして、コードＢ検出コンフィグデータ６２は、一連の３個のコンフィグデータＢ−１，Ｂ−２，Ｂ−３からなる。そして、コンフィグデータＢ−１は、処理Ｂ１、処理Ｂ２、処理Ｂ３、判定、処理Ｂ４からなるパイプライン処理の論理を設定し、コンフィグデータＢ−２は、処理Ｂ５、処理Ｂ６、処理Ｂ７、判定、処理Ｂ８からなるパイプライン処理の論理を設定し、コンフィグデータＢ−３は、処理Ｂ９、処理Ｂ１０、判定、処理Ｂ１１、処理Ｂ１２からなるパイプライン処理の論理を設定する。また、コードＣ検出コンフィグデータ６４は、一連の３個のコンフィグデータＣ−１，Ｃ−２，Ｃ−３からなる。そして、コンフィグデータＣ−１は、処理Ｃ１、処理Ｃ２、処理Ｃ３、判定、処理Ｃ４からなるパイプライン処理の論理を設定し、コンフィグデータＣ−２は、処理Ｃ５、処理Ｃ６、処理Ｃ７、判定、処理Ｃ８からなるパイプライン処理の論理を設定し、コンフィグデータＣ−３は、処理Ｃ９、処理Ｃ１０、処理Ｃ１１、判定、処理Ｃ１２からなるパイプライン処理の論理を設定する。
【００５１】
図４は、コンフィグデータ管理テーブルとして管理されるテーブルの例を示している。図示したテーブル１００には、コンフィグデータ名、メモリ先頭アドレス、コンフィグデータサイズ、及びコードの各項目が設けられている。コンフィグデータ名の項目には、Ａ−１〜Ａ４、Ｂ−１〜Ｂ−３、Ｃ−１〜Ｃ３の各コンフィグデータが実行順に登録されている。そして、メモリ先頭アドレスの項目には、各コンフィグデータの格納先における先頭アドレスが登録され、コンフィグデータサイズの項目には、各コンフィグデータのサイズ（バイト）が登録され、コードの項目には、各コンフィグデータがどのコード用であるかが登録されている。処理終了フラグ制御部７４は、処理終了フラグを受け付けた場合に、このテーブル１００を参照することで、次に設定すべきコンフィグデータを決定し、格納先からコンフィグメモリ３２に入力する。また、予測制御部７８は、このテーブル１００も参照して、次に設定すべきコンフィグデータを予測する。
【００５２】
図５は、コンフィグデータ管理テーブルとして管理される別のテーブルの例を示している。図示したテーブル１０２には、処理中のコード、フラグ、ジャンプ先のコンフィグデータの各項目が設けられている。処理中のコードＡの項目には、コードＡ、コードＢ、コードＣの各コードが登録されており、フラグの項目には、各コードともにコード無フラグが登録されている。そして、ジャンプ先のコンフィグデータの項目には、Ｂ−１、Ｃ−１、及びＥＮＤが登録されている。コード無フラグ制御部７６は、このテーブル１０２に基づいて、コンフィグメモリ３２にコンフィグデータの設定を行う。具体的には、コードＡを処理中にコード無フラグを受け付けた場合には、コンフィグデータＢ−１を設定し、コードＢを処理中にコード無フラグを受け付けた場合には、コンフィグデータＣ−１を設定し、コードＣを処理中にコード無フラグを受け付けた場合には処理を終了させる。
【００５３】
なお、このような管理テーブルを設定する代わりに、判定時に次のコード用のコンフィグデータにジャンプすることを標準仕様とする管理テーブルを設定してもよい。この場合には、コード有フラグが得られたならば、処理中のコードについての処理を継続するような例外処理を行うことになる。
【００５４】
続いて、図６と図７を用いて、画像処理装置１０の動作について説明する。図６は、コードＡ、コードＢ、コードＣに対する検出処理の流れを説明するフローチャートであり、図７は、コンフィグデータＡ−１を用いた処理の詳細な流れを説明するフローチャートである。
【００５５】
画像処理装置１０においては、ＵＩ２１やネットワークインタフェース２８を介したユーザ指示などに基づいて、ＣＰＵ１２による制御の下、スキャナ２２による画像データの生成や、プリンタ２４による画像データに基づく印刷などが行われる。こうした画像データに対しては、複数のコードが含まれている場合があり、画像処理装置１０では、標準設定に従って、あるいは、ユーザ指示に従って、画像データに対するコードの検出処理を行うことがある。
【００５６】
コード検出処理は、主として、再構成可能システム２０によって行われる。すなわち、コンフィグメモリ３２にコンフィグデータが入力されて、リコンフィギュラブルプロセッサ３４に、このコンフィグデータに対応したコード検出部４０が設定される。具体的には、図７に示すように、コンフィグデータＡ１がロード（入力）され（Ｓ６０）、リコンフィギュラブルプロセッサ３４は、コンフィグデータＡ−１に対応する処理を実行する（Ｓ６２）。この処理では、処理途中にコード無フラグが出力されるか、あるいは、処理終了後に処理終了フラグが出力される（Ｓ６４）。フラグ検知部７０はこのフラグを受信して、いずれのフラグであるかを判定する（Ｓ６６）。その結果、処理終了フラグであった場合には、処理終了フラグ制御部７４が、図４に示したテーブル１００を参照して、次にコンフィグデータＡ−２を選択すべき旨を判断する（Ｓ６８）。そして、処理終了フラグ制御部７４は、さらに、テーブル１００に記載されたアドレス情報を参照して、ＲＡＭ１６からコンフィグデータＡ−２を読み出し（Ｓ７０）、コンフィグメモリ３２にロードする（Ｓ７２）。
【００５７】
他方、コード無フラグが検出された場合には、コード無フラグ制御部７６は、図５に示したテーブル１０２を参照して、コンフィグデータＢ−１を選択する（Ｓ７４）。さらに、コード無フラグ制御部７６は、テーブル１００に記載されたアドレス情報を参照して、ＲＡＭ１６からコンフィグデータＢ−１を読み出し（Ｓ７６）、コンフィグメモリ３２にロードする（Ｓ７８）。
【００５８】
図６は、この過程を、コード検出の観点から説明したものである。すなわち、コンフィグデータＡ−１に基づく処理により、コードＡの第１の特徴量に対する抽出が行われる（Ｓ１０）。その結果、処理終了フラグが出力された場合は、画像データ中にコードＡが存在する可能性があることを意味し、コード無フラグが出力された場合は、画像データ中にコードＡが存在する可能性がないことを意味する（Ｓ１２）。そして、コードＡが存在する可能性がある場合には、コンフィグデータＡ−２に基づくコードＡの第２の特徴量に対する抽出が行われ（Ｓ１４）、コードＡの存在可能性の確認がなされる（Ｓ１６）。この段階においてもコードＡが存在する可能性がある場合には、同様にして、コンフィグデータＡ−３に基づくコードＡの第３の特徴量に対する抽出が行われ（Ｓ１８）、コードＡの存在可能性が確認される（Ｓ２０）。この結果、コードＡの存在可能性があると判断されると、コンフィグデータＡ−４に基づくコードＡのデコード処理が行われ（Ｓ２２）、続いて、コードＢに対する同様の処理（Ｓ２４〜Ｓ３６）、及び、コードＣに対する同様の処理（Ｓ３８〜Ｓ５０）が行われる。
【００５９】
他方、ステップＳ１２，Ｓ１６，Ｓ２０のいずれかの段階においてコードＡの存在可能性がないと判断された場合には、コードＡに対するそれ以降の処理は中止され、コードＢについての処理に移行する。同様にして、コードＢに対する処理でも、コードＢの存在可能性の有無が段階的に確認され（Ｓ２６，Ｓ３０，Ｓ３４）、コードＢの存在可能性が無いと判断された場合には、コードＢに対するそれ以降の処理は中止されて、コードＣについての処理に移行する。また、コードＣに対する処理でも、コードＣの存在可能性の有無が段階的に確認され（Ｓ４０，Ｓ４４，Ｓ４８）、コードＣの存在可能性が無いと判断された場合には、コードＣに対するそれ以降の処理は中止されて、全体の処理が終了する。
【００６０】
なお、この処理の流れは、図３に示した矢印によっても確認できる。図３において、各コンフィグデータを結ぶ細実線の矢印は、コードの存在可能性がある場合の処理の流れを表しており、判定のボックスから伸びる白抜きの矢印は、その段階でコードの存在可能性が無いと判断された場合の流れを示している。
【００６１】
図８は、以上に説明した処理の所要時間について説明する模式図である。図には、横軸たる時間軸上の各時刻において実行される処理が示されている。上段（ａ）は、コード無フラグに基づく処理を行わない場合の例であり、下段（ｂ）は、コード無フラグに基づく処理を行う場合の例である。
【００６２】
図示した例では、画像データに、コードＡ，Ｂは含まれておらず、コードＣのみが含まれていると仮定している。このため、上段（ａ）では、時刻ｔ０に開始されたコンフィグデータＡ−１に基づく処理は、終了処理フラグ１２０が出力される時刻ｔ１まで継続して行われる。続いて時刻ｔ１にコンフィグデータＡ−２に基づく処理が開始され、終了処理フラグ１２２が出力される時点まで継続される。同様にして、コンフィグデータＡ−３，Ａ−４，Ｂ−１，Ｂ−２，Ｂ−３，Ｃ−１，Ｃ−２，Ｃ−３に基づく各処理と、対応する処理終了フラグ１２４，１２６，１２８，１３０，１３２，１３４，１３６の出力が交互に繰り返される。この結果、最後のコンフィグデータＣ−３に基づく処理は、時刻ｔ２に終了している。
【００６３】
他方、下段（ｂ）では、時刻ｔ０に開始されたコンフィグデータＡ−１に基づく処理は、コード無フラグ１４０が出力された時刻ｔ１’で終了している。続いて、コンフィグデータＢ−１に基づく処理が開始され、コード無フラグ１４２が出力され時点まで継続されている。そして、その後には、コンフィグデータＣ−１，Ｃ−２，Ｃ−３に基づく各処理と、対応する処理終了フラグ１４４，１４６の出力が交互に繰り返されている。この結果、最後のコンフィグデータＣ−３に基づく処理は、時刻ｔ２’に終了している。
【００６４】
下段（ｂ）の例の所要時間ｔ２’−ｔ０は、上段（ａ）の例における所要時間ｔ２−ｔ０に比べて短い。これは、下段（ｂ）の例では、コンフィグデータＡ−１に基づく処理の所要時間ｔ１’−ｔ０が上段（ａ）の場合の所要時間ｔ１−ｔ０に比べて短いこと、コンフィグデータＢ−１に基づく処理の所要時間が上段（ａ）の場合の所要時間に比べて短いこと、コンフィグデータＡ−２，Ａ−３，Ｂ−２，Ｂ−３に基づく処理が実行されていないことに起因する。
【００６５】
ここで、図９を用いて、コンフィグデータをコンフィグメモリに入力する過程についての変形例について説明する。この変形例では、図２に示したコンフィグメモリ３２を選択可能記憶装置として構成することを仮定している。すなわち、コンフィグメモリ３２は、複数のコンフィグデータを記憶させることができ、これらをスイッチで切り換えることにより、採用するコンフィグデータを数サイクル（例えば１サイクル）で選択できるように設計されているものとする。さらに、コンフィグメモリ３２に対するコンフィグデータのロードにあたっては、予測制御部７８による予測制御が行われることを仮定している。
【００６６】
図９では、横軸たる時間軸上の各時刻において、リコンフィギュラブルプロセッサ３４とコンフィグメモリ３２でどのような処理が行われているかが示されている。この例では、時刻ｔ３において、コンフィグデータＡ−１に基づく処理の実行が開始されている。また、これと同時に、予測制御部７８は、次に実行される可能性があるものはコンフィグデータＡ−２，Ｂ−１であることを突きとめ、順次コンフィグメモリ３２にロードしている。
【００６７】
時刻ｔ４付近において、次にコンフィグデータＡ−２に基づく処理を行うことが確定すると、コンフィグメモリ３２では、コンフィグデータＡ−１からコンフィグデータＡ−２への切り換えが行われ、リコンフィギュラブルプロセッサ３４では、コンフィグデータＡ−２に基づく処理が開始される。この段階では、コンフィグメモリには、コンフィグデータＡ−１，Ａ−２，Ｂ−１がロードされている。しかし、コンフィグデータＡ−１を使用する可能性は既に無く、代わりに、次に、コンフィグデータＡ−３を使用する可能性が生じている。そこで、予測制御部７８は、コンフィグメモリ３２に記憶されたコンフィグデータＡ−１に上書きして、コンフィグデータＡ−３をロードしている。
【００６８】
次に、図１０と図１１を用いて、具体的なコード検出の例について説明する。図１０は、用紙をスキャンして生成した画像データに対し、コード検出を行う過程を示した図である。図示した１枚の用紙１５０には、コードＡ、コードＢ、コードが含まれている。また、３枚重ねされた各用紙１５８，１６０，１６２には、それぞれ、コードＡ、コードＢ、コードＣのみが含まれている。画像処理装置としての複写機１６４では、このような多様な用紙を処理することが可能である。そして、スキャナによる読み込み処理（Ｓ８０）、各コード情報を検出して切り出す処理（Ｓ８２）、切り出したコードが示す情報をデコードする処理（Ｓ８４）、及びデコードの結果たるデジタル情報を取得する処理（Ｓ８６）が行われる。これにより、複写機１６４では、コードＡが示すデジタル情報１７０、コードＢが示すデジタル情報１７２、コードＣが示すデジタル情報１７４が得られている。
【００６９】
図１１は、コードＡに対する検出処理の具体例を示す図である。図には、コンフィグデータＡ−１，Ａ−２，Ａ−３，Ａ−４において設定される論理が示されている。ここでは、コードＡとして、２次元白黒パターンからなるＱＲコードを仮定している。まず、コンフィグデータＡ−１に基づく処理では、画像データを横方向（Ｘ方向）に切り取ったデータ（Ｘ方向データ）を順次入力し、白黒比率検出処理１８０を行う。続いて、隣り合うＸ方向データ間でのパターンの連続性検出処理１８２が行われ、その結果がＱＲコードの特徴量と一致しているか判定１８４される。そして、一致している場合には、ＱＲコードが含まれると予想される付近を対象として、候補座標抽出処理１８６が行われる。
【００７０】
コンフィグデータＡ−２に基づく処理では、Ｙ方向データに対して同様の処理が行われる。すなわち、Ｙ方向の白黒比率検出処理１９０、隣り合うＹ方向データ間でのパターンの連続性検出処理１９２、及び、ＱＲコードの特徴量との一致判定１９４が行われ、一致している場合には、ＱＲコードが含まれると予想される付近を対象として、候補座標抽出処理１９６が行われる。
【００７１】
コンフィグデータＡ−３に基づく処理では、Ｘ方向データに対する結果と、Ｙ方向データに対する結果をもとに、二次元的な検出処理が行われる。具体的には、候補座標に対応した二次元の矩形データが入力され、Ｘ方向とＹ方向との関係を調べるＸＹ関係処理２００とその特徴量の判定２０２が行われる。次に、判定２０２によりＱＲコードの特徴量を示した領域に対し領域検出処理２０４と、その結果に基づく特徴量の判定２０６が行われる。そして、判定２０６によりＱＲコードの特徴量を示した領域に対しＱＲコードらしさを調べるＱＲコードらしさ処理２０８が行われ、その結果の判定２１０がなされる。最後に、ＱＲコードらしいとされた領域を絞り込み抽出する絞り込み処理２１２が行われる。
【００７２】
コンフィグデータＡ−４に基づく処理では、絞り込み処理２１２による絞り込みが行われた矩形データに対し、ＱＲコードのデコード規則に従ってデコード２２０が行われる。
【００７３】
続いて、図１２と図１３を用いて、別の具体例について説明する。この例は、コード検出の代わりに、共通の特性を持った画像領域としての文字部や写真部を抽出するものである。
【００７４】
図１２は、処理対象となる用紙の例を示している。図示された用紙２３０には、文字が印刷された文字部２３２と、写真が印刷された写真部２３４，２３６が含まれている。
【００７５】
図１３は、この用紙２３０のスキャンにより生成された画像データに対する画像処理の流れを示すフローチャートである。ここでは、文字部２３２をその特徴量に従って抽出する文字部抽出（Ｓ９０）が行われ、続いて、文字部２３２の領域を切り出す文字部切り出し（Ｓ９２）が行われる。そして、ＯＣＲ（光学的文字読取）処理などの文字部用画像処理（Ｓ９４）が文字部２３２に対して行われる。なお、この一連の処理途中に、文字部が検出されないなど、文字部に対する処理が不要であると判断された場合には、文字部に対する処理を打ち切って、写真部についての次の処理が行われる。
【００７６】
写真部２３４，２３６に対しては、まず、その特徴量に従って抽出する写真部抽出（Ｓ９６）が行われ、次に、抽出された領域を切り出す写真部切り出し（Ｓ９８）が行われる。そして、色変換処理などの写真部用画像処理（Ｓ１００）が写真部２３４，２３６に対して行われる。なお、この一連の処理途中に、写真部が検出されないなど、写真部に対する処理が不要であると判断された場合には、写真部に対する処理を打ち切って、全体の処理を終了する。
【図面の簡単な説明】
【００７７】
【図１】本実施の形態にかかる画像処理装置の構成例を示す概略図である。
【図２】再構成可能システムの構成例を詳細に説明する図である。
【図３】コンフィグデータの例を説明する図である。
【図４】コンフィグデータ管理テーブルの例を示している。
【図５】コンフィグデータ管理テーブルの別の例を示している。
【図６】コード検出の処理の例を説明するフローチャートである。
【図７】コード検出の処理の例を説明するフローチャートである。
【図８】所要時間の例を説明するフローチャートである。
【図９】コンフィグデータのロードについての変形例を説明する図である。
【図１０】スキャンし生成した画像データにコード検出を行う例を示す図である。
【図１１】ＱＲコードに対する検出例を説明する図である。
【図１２】文字部と写真部を含む用紙の例を示す図である。
【図１３】文字部と写真部を含む画像データの処理を示すフローチャートである。
【符号の説明】
【００７８】
１０  画像処理装置、１１  内部バス、１２  ＣＰＵ、１４  ＲＯＭ、１６  ＲＡＭ、１８  ＨＤＤ、２０  再構成可能システム、２２  スキャナ、２４  プリンタ、２６  ＣＤＤ、２８  ネットワークインタフェース、３０  ネットワーク、３２  コンフィグメモリ、３４  リコンフィギュラブルプロセッサ、３６  制御部、４０  コード検出部、５２  入力データ、５４  出力データ、６０  コードＡ検出コンフィグデータ、６２  コードＢ検出コンフィグデータ、６４  コードＣ検出コンフィグデータ、７０  フラグ検知部、７２  コンフィグデータ選択部、７４  処理終了フラグ制御部、７６  コード無フラグ制御部、７８  予測制御部、８０  コンフィグデータ管理テーブル、９０  処理終了フラグ、９２  コード無フラグ。
【図１】
2009025955.tif 000003
【図２】
2009025955.tif 000004
【図３】
2009025955.tif 000005
【図４】
2009025955.tif 000006
【図５】
2009025955.tif 000007
【図６】
2009025955.tif 000008
【図７】
2009025955.tif 000009
【図８】
2009025955.tif 000010
【図９】
2009025955.tif 000011
【図１０】
2009025955.tif 000012
【図１１】
2009025955.tif 000013
【図１２】
2009025955.tif 000014
【図１３】
2009025955.tif 000015