(57)【要約】【課題】大容量記憶装置と、大容量記憶装置に比べて相対的に入出力速度が速く容量が小さい小容量記憶装置とを備える場合に、小容量記憶装置の容量よりも大きいヒストグラムを高速に作成する。【解決手段】大容量記憶装置に設定されるヒストグラムの記憶領域を分割し（Ｓ１１）、分割領域に対応する作業ヒストグラムを小容量記憶装置に設定する。処理すべき分割領域に対応する作業ヒストグラムがない場合には（Ｓ２０，Ｓ２２）。それまでの増分処理の結果をヒストグラムに反映させた上で、作業ヒストグラムを更新する（Ｓ３２）。更新にあたっては、増分処理の結果が反映された最小矩形の領域に対するデータ転送のみが行われる。【選択図】図６
2009086761.tif 000002
【特許請求の範囲】
【請求項１】
相対的に入出力速度が遅く容量が大きい大容量記憶装置と、
相対的に入出力速度が速く容量が小さい小容量記憶装置と、
前記小容量記憶装置の容量よりも大きい全体データを前記大容量記憶装置に設定する第１設定手段と、
前記全体データの一部に対応する部分データを、前記小容量記憶装置に設定する第２設定手段と、
入力データに基づいて、前記全体データの部分更新に用いられる更新データを算出する算出手段と、
前記更新データに基づいて、前記全体データの部分更新の対象部分に対応した前記部分データに対し、部分更新の前処理を行う前処理手段と、
前記部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う部分更新手段と、
を備え、
前記第２設定手段は、部分更新の対象部分に対応した部分データが前記小容量記憶装置に設定されていない場合に、対象部分に対応した部分データを前記小容量記憶装置に設定し、
前記部分更新手段は、前記第２設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う、ことを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置において、
前記全体データは、ヒストグラムの全体を表す全体ヒストグラムのデータであり、
前記部分データは、前記全体ヒストグラムの一部に対応する部分ヒストグラムのデータである、ことを特徴とするデータ処理装置。
【請求項３】
請求項２に記載のデータ処理装置において、
前記入力データは画像データであり、
前記算出手段は前記画像データに基づくハフ変換を行ってハフ変換の結果を表す前記更新データを算出する手段であり、
前記全体ヒストグラムは前記ハフ変換の結果を反映したヒストグラムである、ことを特徴とするデータ処理装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のデータ処理装置において、
前記第２設定手段は、前記小容量記憶装置の連続的な記憶領域に前記部分データを設定し、
前記前処理手段による前処理は、部分更新の対象部分に対応した前記部分データに対し、全体データに設定すべき値を設定することで行われ、
前記部分更新手段は、前記部分データの一部であって、連続的な記憶領域に設定され、部分更新の対象部分に対応した範囲を全て含む転送対象データを、前記大容量記憶装置に一括転送を行うことで、前記全体データの部分更新を行う、ことを特徴とするデータ処理装置。
【請求項５】
請求項４に記載のデータ処理装置において、
前記第１設定手段は、前記大容量記憶装置の連続的な記憶領域に前記全体データを設定し、
前記部分更新手段による前処理は、前記転送対象データに対応した全体データにも基づいて行われ、
当該データ処理装置は、連続的な記憶領域に設定され、かつ、前記転送対象データに対応する全体データを、前記大容量記憶装置から一括転送して、前記部分更新手段に提供する提供手段を備える、
ことを特徴とするデータ処理装置。
【請求項６】
請求項１に記載のデータ処理装置において、
前記第２設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて集計処理を行う集計処理手段を備える、ことを特徴とするデータ処理装置。
【請求項７】
請求項１乃至５のいずれか１項に記載のデータ処理装置において、
複数の前記小容量記憶装置と、一または二以上の前記小容量記憶装置に基づいて演算処理を行う演算回路とを有し、前記演算回路の回路構成を再構成可能な再構成可能演算装置を備え、
前記第２設定手段は、二以上の前記小容量記憶装置に対し、互いに異なる部分データを設定し、
前記前処理手段は、前記演算回路の再構成により、前記部分データが設定された前記小容量記憶装置を入力先または出力先として構成される、ことを特徴とするデータ処理装置。
【請求項８】
相対的に入出力速度が遅く容量が大きい大容量記憶装置と、
相対的に入出力速度が速く容量が小さい小容量記憶装置と、
を備えたコンピュータを、
前記小容量記憶装置の容量よりも大きい全体データを前記大容量記憶装置に設定する第１設定手段と、
前記全体データの一部に対応する部分データを、前記小容量記憶装置に設定する第２設定手段と、
入力データに基づいて、前記全体データの部分更新に用いられる更新データを算出する算出手段と、
前記更新データに基づいて、前記全体データの部分更新の対象部分に対応した前記部分データに対し、部分更新の前処理を行う前処理手段と、
前記部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う部分更新手段と、
として機能させ、ここで、
前記第２設定手段は、部分更新の対象部分に対応した部分データが前記小容量記憶装置に設定されていない場合に、対象部分に対応した部分データを前記小容量記憶装置に設定し、
前記部分更新手段は、前記第２設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う、ことを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、及びデータ処理プログラムに関する。
【背景技術】
【０００２】
画像に対して、ハフ変換を行い、用紙あるいは線の傾き角度等を検出する技術が知られている。
【０００３】
下記特許文献１には、２値化処理をした画像に対してハフ変換を行う技術が開示されている。この技術では、ハフ変換専用のメモリを用意しておき、ＣＰＵ（中央処理装置）がこのメモリを利用してハフ変換を行っている。
【０００４】
下記特許文献２には、ヒストグラムを用いて、カラー画像の認識処理を行う技術が開示されている。この技術では、ＲＧＢ形式からなるカラー画像信号を小領域に分割し、その小領域毎に特徴量を抽出する。そして、特徴量を圧縮して、色度ヒストグラムを作成し、特徴量メモリに格納している。
【０００５】
【特許文献１】特開平６−１１９４４７号公報
【特許文献２】特開平７−２６２３７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、大容量記憶装置と、大容量記憶装置に比べて相対的に入出力速度が速く容量が小さい小容量記憶装置とを備える場合に、小容量記憶装置の容量よりも大きい全体データを作成するデータ処理装置、またはデータ処理プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明のデータ処理装置の一態様においては、相対的に入出力速度が遅く容量が大きい大容量記憶装置と、相対的に入出力速度が速く容量が小さい小容量記憶装置と、前記小容量記憶装置の容量よりも大きい全体データを前記大容量記憶装置に設定する第１設定手段と、前記全体データの一部に対応する部分データを、前記小容量記憶装置に設定する第２設定手段と、入力データに基づいて、前記全体データの部分更新に用いられる更新データを算出する算出手段と、前記更新データに基づいて、前記全体データの部分更新の対象部分に対応した前記部分データに対し、部分更新の前処理を行う前処理手段と、前記部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う部分更新手段と、を備え、前記第２設定手段は、部分更新の対象部分に対応した部分データが前記小容量記憶装置に設定されていない場合に、対象部分に対応した部分データを前記小容量記憶装置に設定し、前記部分更新手段は、前記第２設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う。
【０００８】
本発明のデータ処理装置の一態様においては、前記全体データは、ヒストグラムの全体を表す全体ヒストグラムのデータであり、前記部分データは、前記全体ヒストグラムの一部に対応する部分ヒストグラムのデータである。
【０００９】
本発明のデータ処理装置の一態様においては、前記入力データは画像データであり、前記算出手段は前記画像データに基づくハフ変換を行ってハフ変換の結果を表す前記更新データを算出する手段であり、前記全体ヒストグラムは前記ハフ変換の結果を反映したヒストグラムである。
【００１０】
本発明のデータ処理装置の一態様においては、前記第２設定手段は、前記小容量記憶装置の連続的な記憶領域に前記部分データを設定し、前記前処理手段による前処理は、部分更新の対象部分に対応した前記部分データに対し、全体データに設定すべき値を設定することで行われ、前記部分更新手段は、前記部分データの一部であって、連続的な記憶領域に設定され、部分更新の対象部分に対応した範囲を全て含む転送対象データを、前記大容量記憶装置に一括転送を行うことで、前記全体データの部分更新を行う。
【００１１】
本発明のデータ処理装置の一態様においては、前記第１設定手段は、前記大容量記憶装置の連続的な記憶領域に前記全体データを設定し、前記部分更新手段による前処理は、前記転送対象データに対応した全体データにも基づいて行われ、当該データ処理装置は、連続的な記憶領域に設定され、かつ、前記転送対象データに対応する全体データを、前記大容量記憶装置から一括転送して、前記部分更新手段に提供する提供手段を備える。
【００１２】
本発明のデータ処理装置の一態様においては、前記第２設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて集計処理を行う集計処理手段を備える。
【００１３】
本発明のデータ処理装置の一態様においては、複数の前記小容量記憶装置と、一または二以上の前記小容量記憶装置に基づいて演算処理を行う演算回路とを有し、前記演算回路の回路構成を再構成可能な再構成可能演算装置を備え、前記第２設定手段は、二以上の前記小容量記憶装置に対し、互いに異なる部分データを設定し、前記前処理手段は、前記演算回路の再構成により、前記部分データが設定された前記小容量記憶装置を入力先または出力先として構成される。
【００１４】
本発明のデータ処理プログラムの一態様においては、相対的に入出力速度が遅く容量が大きい大容量記憶装置と、相対的に入出力速度が速く容量が小さい小容量記憶装置と、を備えたコンピュータを、前記小容量記憶装置の容量よりも大きい全体データを前記大容量記憶装置に設定する第１設定手段と、前記全体データの一部に対応する部分データを、前記小容量記憶装置に設定する第２設定手段と、入力データに基づいて、前記全体データの部分更新に用いられる更新データを算出する算出手段と、前記更新データに基づいて、前記全体データの部分更新の対象部分に対応した前記部分データに対し、部分更新の前処理を行う前処理手段と、前記部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う部分更新手段と、として機能させ、ここで、前記第２設定手段は、部分更新の対象部分に対応した部分データが前記小容量記憶装置に設定されていない場合に、対象部分に対応した部分データを前記小容量記憶装置に設定し、前記部分更新手段は、前記第２設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う。
【発明の効果】
【００１５】
請求項１に記載の発明によれば、大容量記憶装置と、大容量記憶装置に比べて相対的に入出力速度が速く容量が小さい小容量記憶装置とを備える場合に、小容量記憶装置の容量よりも大きい全体データを作成することが可能となる。
【００１６】
請求項２に記載の発明によれば、小容量記憶装置の容量よりも大きいヒストグラムを、高速な小容量装置を活用して更新することが可能となる。
【００１７】
請求項３に記載の発明によれば、画像データのハフ変換に基づくヒストグラムを、高速な小容量装置を活用して更新することが可能となる。
【００１８】
請求項４に記載の発明によれば、大容量記憶装置へのデータ転送を高速化することが可能となる。
【００１９】
請求項５に記載の発明によれば、大容量記憶装置からのデータ転送を高速化することが可能となる。
【００２０】
請求項６に記載の発明によれば、全体データを再度参照せずに集計処理ができるため、集計処理が高速化される。
【００２１】
請求項７に記載の発明によれば、再構成可能演算装置を用いた全体データの処理が高速化される。
【００２２】
請求項８に記載の発明によれば、大容量記憶装置と、大容量記憶装置に比べて相対的に入出力速度が速く容量が小さい小容量記憶装置とを備える場合に、小容量記憶装置の容量よりも大きい全体データを作成することが可能となるプログラムが提供される。
【発明を実施するための最良の形態】
【００２３】
［用語及び概念の説明］  データ処理装置は、通常、コンピュータハードウエアとコンピュータハードウエアの動作を制御するプログラムによって構築されるが、プログラムをハードウエア的に実装したコンピュータハードウエアによって構築されてもよい。データ処理装置は、通信可能に配置されたコンピュータハードウエアを利用した分散処理システムとして構築されてもよいし、単体の筐体などに格納されたコンピュータハードウエアを利用した集中処理システムとして構築されてもよい。なお、プログラムは、あらかじめコンピュータハードウエアに対してインストールされてもよいが、記憶媒体を通じて提供されたり、ネットワークを通じて提供されたりしてもよい。
【００２４】
大容量記憶装置と小容量記憶装置は、ともにデータを記憶する装置である。大容量記憶装置は、相対的に記憶容量が大きく、入出力速度が遅いのに対し、小容量記憶装置は、相対的に記憶容量が小さく、入出力速度が早い。具体的には、大容量記憶装置と小容量記憶装置を、それぞれ、大容量磁気ディスクと小容量半導体メモリで構成する例、あるいは、大容量のＤＲＡＭ（ＤｙａｎａｍｉｃＲａｎｄｏｍＡｃｃｅｓｓＭｅｍｏｒｙ）と小容量のＳＲＡＭ（ＳｔａｔｉｃＲＡＭ）で構成する例などがあげられる。
【００２５】
第１設定手段は、小容量記憶装置の容量よりも大きい全体データを大容量記憶装置に設定する。また、第２設定手段は、全体データの一部に対応する部分データを、前記小容量記憶装置に設定する。ここで、記憶装置にデータを設定するとは、記憶装置にそのデータ用の記憶領域が確保されることをいう。データの設定にあたり、確保された記憶領域に具体的データが記憶されてもよいし、されていなくてもよい。全体データは、小容量記憶装置には記憶しきれない大きさをもつデータであり、大容量記憶装置に設定される。また、部分データは、全体データの一部のデータ自体、あるいは、一部のデータと関連づけられたデータであり、小容量記憶装置に設定される。全体データの一部と部分データとの対応づけは例えば、全体データを静的に分割して固定的に行うようにしてもよいし、全体データの任意の一部を動的に切り出して行うようにしてもよい。第２設定手段は、前処理手段の前処理を受けるべき部分データが小容量記憶装置に設定されていない場合には、前処理を受けるべき部分データを新たに設定することになる。
【００２６】
算出手段は、入力データに基づいて、更新データを算出する。入力データの形式は特に限定されるものではなく、例えば、画像データ、動画データ、文書データ、音声データなどの形式が挙げられる。更新データは、入力データに基づいて算出されるデータであり、全体データの部分更新に用いられる。部分更新とは、全体データの一部を更新することをいう。部分更新の対象となる全体データの一部は、部分データをなす全体データの一部とは一般には異なるものであり、部分データの大きさよりも小さいことが多い。
【００２７】
入力データは単体の要素からなっていてもよいが、複数の要素からなっていてもよい。また、更新データは一又は二以上の要素に基づいて一つ算出されてもよいが、一又は二以上の要素に基づいて二以上算出されてもよい。したがって、例えば、入力データから複数の更新データが算出される態様も許される。具体的には、入力データが複数の画素（これは要素の例である）を含む画像データであり、これから複数の更新データが算出される例を挙げることができる。このようにして算出された複数の更新データによって部分更新が行われることにより、全体データの全てに対して更新がなされることになってもよいし、依然として一部に対してのみ更新がなされることになってもよい。
【００２８】
前処理手段は、更新データに基づいて、全体データの部分更新の対象となる部分に対応した部分データに対し、部分更新の前処理を行う。そして、部分更新手段は、前処理がなされた部分データに基づいて、全体データの対応する部分の更新を行う。部分更新手段による部分更新は、第２設定手段により新たな部分データが設定されるよりも前に、既に設定されている部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う。すなわち、既になされた前処理の結果が利用できるうちに、前記全体データの部分更新を行う。
【００２９】
［実施形態］  以下に本発明の実施形態を例示する。
図１は、本実施の形態にかかる画像処理装置１０のハードウエア構成を示す図である。画像処理装置１０は、データ処理装置の例である。画像処理装置１０には、内部通信路としてのバス１２が設けられ、バス１２には、ＣＰＵ１４、ＲＯＭ（ＲｅａｄＯｎｌｙＭｅｍｏｒｙ）１６、ＲＡＭ１８、ＨＤＤ（ＨａｒｄＤｉｓｃＤｒｉｖｅ）２０、リコンフィギュラブルプロセッサ２２、操作ボタン２４、ディスプレイ２６、スキャナ２８、プリンタ３０、ＣＤＤ（ＣｏｍｐａｃｔＤｉｓｃＤｒｉｖｅ）３２、ネットワークインターフェース３４の各構成要素が接続されている。
【００３０】
ＣＰＵ１４は、プログラムに基づいて、画像処理装置１０の各構成要素を制御したり、演算処理を行ったりする。ＲＯＭ１６は、ＣＰＵ１４で動作するプログラムなどが記憶されている。ＲＡＭ１８は、比較的大きな容量をもつ記憶装置であり、例えば、ＣＰＵ１４の処理におけるメインメモリとして利用される。また、ＲＡＭ１８には、リコンフィギュラブルプロセッサ２２からもデータの入出力が行われる。ＨＤＤ（ＨａｒｄＤｉｓｃＤｒｉｖｅ）２０は、磁気ディスクを備えた記憶装置であり、大量の画像データの記憶などに用いられる。リコンフィギュラブルプロセッサ２２は、再構成可能演算装置の例である。
【００３１】
リコンフィギュラブルプロセッサ２２は、演算回路や記憶回路（記憶装置）などを備えており、少なくとも一部の回路の論理仕様が再構成可能に構成されている。リコンフィギュラブルプロセッサ２２は、ＲＯＭ１６や自装置内に格納されたプログラムに基づいて制御される。操作ボタン２４は、ユーザからの指示を受け付ける入力装置である。ディスプレイ２６は、ユーザに対して画像情報を提示するための表示装置である。スキャナ２８は、セットされた用紙を読み取って、画像データを生成する装置である。プリンタ３０は、画像データに基づいて用紙に印刷を行う装置である。スキャナ２８とプリンタ３０が連携した場合には、複写処理も実行可能となる。ＣＤＤ３２は、記録媒体としてのＣＤ（ＣｏｍｐａｃｔＤｉｓｃ）に対して読み書きを行う装置である。例えば、ＣＰＵ１４あるいはリコンフィギュラブルプロセッサ２２を制御するプログラムがＣＤを通じて提供される場合、ＣＤＤ３２はＣＤからそのプログラムを読み取ることになる。ネットワークインターフェース３４は、インターネットなどのネットワーク４０と通信を行うための装置である。ネットワーク４０からは、ＣＰＵ１４あるいはリコンフィギュラブルプロセッサ２２を制御するプログラムが入力されることもある。また、ネットワーク４０を通じた画像データの入出力もしばしば行われる。
【００３２】
図２は、リコンフィギュラブルプロセッサ２２のハードウエア構成を示す図である。リコンフィギュラブルプロセッサ２２には、リコンフィギュラブル回路５０、メモリコントローラ６６、制御部６８、コンフィグメモリ７０、コンフィグデータ格納部７２が設けられている。リコンフィギュラブル回路５０は、ＡＬＵ（ＡｒｉｔｈｍｅｔｉｃＬｏｇｉｃＵｎｉｔ）エレメント５２，５４，５６，５８と、ＲＡＭセル６０，６２，６４とを含む複数のＰＥ（プロセッサエレメント）を備えている。ＡＬＵエレメント５２，５４，５６，５８は、演算処理を行う回路である。また、ＲＡＭセル６０，６２，６４は、比較的容量が小さく（例えば８ＫＢ程度）、高速アクセスが可能なＳＲＡＭなどからなる記憶回路である。リコンフィギュラブル回路５０では、ＡＬＵの仕様やＰＥ間の配線の仕様などを変更することができる。
【００３３】
メモリコントローラ６６は、リコンフィギュラブルプロセッサ２２から、ＲＡＭ１８などの外部の記憶装置への入出力を制御する装置である。制御部６８は、プログラムに従って、リコンフィギュラブルプロセッサ２２の全体を制御する。コンフィグメモリ７０は、リコンフィギュラブル回路５０に論理仕様を設定するためのメモリである。コンフィグデータ格納部７２には、複数のコンフィグデータ７４が格納されている。所望のコンフィグデータ７４をコンフィグメモリに格納することで、リコンフィギュラブル回路５０の論理仕様を変更することが可能となる。この変更が数クロック程度の短時間で実行可能であるときには、一連の演算処理中に論理仕様を変更する動的再構成を行うようにしてもよい。
【００３４】
図３は、リコンフィギュラブルプロセッサ２２に構成された論理仕様を説明する図である。リコンフィギュラブルプロセッサ２２には、メインメモリ分割情報記憶部８０、ハフ変換部８２、分割領域選択部８４、作業ヒストグラム８８、加算部９０、集計部９２、比較器９６、増分器９８、最大最小テーブル１００、分割領域読取部１０６、分割領域書込部１０８が構築されている。また、メモリコントローラ６６が、ＲＡＭ１８を用いて構築されたメインメモリ１２４との入出力を担っている。
【００３５】
メインメモリ分割情報記憶部８０は、メインメモリ分割情報１２０を入力し記憶する。メインメモリ分割情報１２０は、メインメモリ１２４に設定されたヒストグラムの分割領域についての情報である。メインメモリに対するヒストグラムの設定と、複数の分割領域への分割は、一連の演算の初期において、第１設定手段としてのＣＰＵ１４により行われる。そして、メインメモリ分割情報１２０はこの分割の際に生成される。なお、ヒストグラムは全体データの例である。
【００３６】
ハフ変換部８２は、算出手段の例であり、入力データ１２２を入力し、ハフ変換を行って、更新データとしてのハフ変換結果を出力する。入力データ１２２は、例えば、画像データ自体であってもよいし、画像データの座標情報であってもよい。分割領域選択部８４は、ハフ変換部８２の計算結果と、メインメモリ分割情報記憶部８０が記憶するメインメモリ分割情報１２０を参照したうで、どのＲＡＭセルにハフ変換の結果を出力するか選択し、また、そのＲＡＭセルにおけるアドレスを計算する。ＲＡＭセルの選択結果は、必要に応じて、分割領域読取部１０６に出力され、ヒストグラムの分割領域の読み取りが指示される。分割領域読取部１０６は、第２設定手段として機能している。なお、分割領域選択部８４には、予測部８６が設けられている。予測部８６は、将来的に入力される入力データ１２２において、ヒストグラムのどの分割領域への入力が必要になるかを予測する。作業ヒストグラム８８は、ＲＡＭセルを利用して構築されている。作業ヒストグラム８８には、分割領域選択部８４から増分を行うべきアドレスが入力される。そして、作業ヒストグラム８８では、そのアドレスの値を出力し、増分器９８で１だけ増分させて、同じアドレスに入力することにより、作業ヒストグラムの増分を行う。
【００３７】
加算部９０は、作業ヒストグラム８８での増分結果と、分割領域読取部１０６から与えられるヒストグラムの分割領域の値とを加算する。加算された結果は、分割領域書込部１０８を通じてメインメモリ１２４に反映され、これによりヒストグラムの分割領域の更新が行われる。なお、作業ヒストグラム８８、あるいは加算部９０は、部分データの例である。また、増分器９８や加算部９０などは、前処理手段の例である。
【００３８】
集計部９２は、加算部９０で得られた結果を基に、ヒストグラムの分割領域について集計を行う。集計部９２は、ヒストグラムの分割領域が更新される度に集計を行うため、最終的なヒストグラムを再読込しなくても、集計が行われることになる。比較器９６は、作業ヒストグラム８８に入力するアドレスと、最大最小テーブル１００に保持された最大値１０２、最小値１０４とを比較することで、作業ヒストグラム８８で実際に作業が行われた最小矩形を算出することができる。この結果は、分割領域書込部１０８に出力され、分割領域読取部１０６では、最小矩形内のデータだけをメインメモリ１２４からバースト転送する。増分器９８は、入力結果に１を足しあわせて出力する装置である。最大最小テーブル１００は、レジスタを用いて構築されており、作業ヒストグラム８８において作業された領域の最大値１０２、最小値１０４の値を保持する。この値は、新たな分割領域が読み取られる場合にリセットされる。
【００３９】
分割領域読取部１０６は、分割領域選択部８４からの指示に基づいて、メモリコントローラを介して、メインメモリ１２４から、ヒストグラムの分割領域をバースト転送する。入力は、ヒストグラムの分割領域のうち、最大最小テーブル１００が教える最小矩形内のデータのみについて行われる。また、分割領域書込部１０８は、部分更新手段の例であり、加算部９０で加算されたデータを、メモリコントローラ６６を介してメインメモリ１２４にバースト転送して書き込む。分割領域書込部１０８による書き込みは、分割領域読取部１０６が読み込んだ最小矩形内のデータのみについて行われる。
【００４０】
ここで、図４を用いてハフ変換の概要を説明する。図４（ａ）は、画像データを２次元空間たる画像空間に描いた図である。図示したｘ，ｙ直交座標は、画像空間で基準となる座標を表している。図４（ｂ）は、画像データに対するハフ変換の結果を表す２次元空間たるハフ空間（θ，ρ）を表している。ハフ変換は、画像空間で選ばれた各座標１３０，１３２に対して、パラメトリックに表現可能な図形を検出するものである。典型的には、θとρをパラメータとする直線を検出する。検出では、各座標１３０，１３２に対して、θを変化させた時のρの値を求めることで、曲線１３４，１３６を決定する。そして、こうして得られた各曲線１３４，１３６の交点座標を求めることで、画像データ中に含まれる支配的直線のパラメータ値が明らかになる。ハフ変換における各曲線は、（θ，ρ）座標でのヒストグラムとして表現される。したがって、各曲線の交点座標は、最大の値をもつ座標を調べることで算出される。なお、各θについて、全てのρの値を加算した場合には、画像データ中の支配的な直線の傾きが明らかになる。
【００４１】
図５は、ある画像データに対するハフ変換の結果を部分的に示した表である。ここでは、θを０．０１〜０．０９まで０．０１刻みで変化させたときのρの値を例示している。この例からわかるように、一般に、θが変化した場合におけるρの変化も緩やかである。つまり、ハフ変換では、ヒストグラムに足し込むべき（θ，ρ）座標の位置は、ヒストグラム上を緩やかに移動することになる。なお、ハフ空間は、画像空間に比べて広大（大容量）になることが多い。例えば、Ａ４サイズ程度の画像データをハフ変換した場合、ハフ空間は、３００ｋＢ程度必要となる。
【００４２】
続いて、図６乃至図１４を用いて、画像処理装置１０の動作例について説明する。ここでは、作業ヒストグラムを設定するＲＡＭセルは、一つだけであるとして、説明を行う。
【００４３】
図６は、画像処理装置１０がハフ変換を行う過程について例示したフローチャートである。この過程では、まず、リコンフィギュラブルプロセッサ２２において、リコンフィギュラブル回路５０の再構成が行われ、図３に示した機能をもつ回路仕様へと変更される（Ｓ１０）。また、ＣＰＵ１４によって、ヒストグラムが設定されるメインメモリ１２４の分割処理（Ｓ１１）が行われる。
【００４４】
図７は、メインメモリ１２４の分割処理の流れを説明するフローチャートである。また、図８は、メインメモリ１２４の分割の具体例を模式的に示した図であり、図９は、メインメモリ分割情報１２０を表形式で示した図である。分割処理においては、まず、メインメモリ１２４に設定するヒストグラムの全体のサイズ（Θ，Ｐ）が決定される（Ｓ４０）。ここで、Θはθ座標の最大値であり、Ρはρ座標の最大値である。続いて、ＲＡＭセルに設定する作業ヒストグラムのサイズ（θｓ，ρｓ）が決定される（Ｓ４２）。ここで、θｓはθ座標の最大値であり、ρｓはρ座標の最大値である。そして、このサイズに従って、各分割領域の割当が行われる（Ｓ４４）。図８に示す例では、メインメモリ１２４に設定されるヒストグラムは、θ方向に５個、ρ方向に６個に分割され、順番に、０，１，２，３，４，５，．．．の分割領域番号が付与されている。図９に示したメインメモリ分割情報１２０には、各分割領域番号で表される分割領域の左下座標と右下座標が登録されており、これにより、（θ，ρ）座標と分割領域番号とが対応づけられている。このメインメモリ分割情報１２０は、リコンフィギュラブルプロセッサ２２のメインメモリ分割情報記憶部８０に記憶される。
【００４５】
メインメモリ分割処理が終了すると、続いて、画像データたる入力データ１２２がリコンフィギュラブルプロセッサ２２に入力され、ハフ変換部８２によってハフ変換が行われる（Ｓ１２）。ハフ変換は、画像データの各座標（ｘ，ｙ）に対して順次行われ、これにより、ハフ空間での座標（θ，ρ）をもつデータが次々と求められる。求められたデータは、順次、分割領域選択部８４に入力される。
【００４６】
分割領域選択部８４では、最初のデータを読み込んだ場合（Ｓ１４）、まず、作業ヒストグラムが設定されるＲＡＭが初期化され、全ての値が０にセットされる（Ｓ１６）。続いて、全ての分割領域について処理が終了したか否かが検知され（Ｓ１８）、終了した場合には処理全体を終了し、終了していない場合には処理を継続する（Ｓ１８）。
【００４７】
処理を継続する場合、分割領域選択部８４では、分割領域の選択処理が行われる（Ｓ２０）。図１０は、分割領域の選択処理について説明するフローチャートである。分割領域の選択処理が開始されると、（θ，ρ）のデータが入力されるとともに（Ｓ５０）、図８，９を用いて説明した分割領域番号が０にセットされる（Ｓ５２）。そして、メインメモリ分割情報記憶部８０に記憶されたメインメモリ分割情報１２０を参照して、矩形左下座標と矩形右上座標を取得し、（θ，ρ）と比較する。具体的には、θ＿ｌｔ≦θ≦θ＿ｂｒを満たすか否か（Ｓ５４）、さらに、ρ＿ｌｔ≦ρ≦ρ＿ｂｒを満たすか否か（Ｓ５６）が判定され、両方を満たす場合には、セットされた分割領域が出力される（Ｓ５８）。他方、いずれかを満たさない場合には、分割領域番号を１増加させた分割領域について、同様の処理が繰り返される。
【００４８】
次に、選択された分割領域と、既にＲＡＭセルに設定された分割領域とが比較される。すなわち、入力された（θ，ρ）のデータが、ＲＡＭセルに設定された作業ヒストグラム内に含まれるべきデータか否かが判定される（Ｓ２２）。そして、含まれる場合には、作業ヒストグラム増分処理（Ｓ２４）が行われ、含まれない場合には、後で説明するヒストグラム更新処理（Ｓ３２）が行われる。作業ヒストグラム増分処理は、図３で説明したように、その座標に対応するアドレスの作業ヒストグラムの値を出力し、増分器９８で１加算して、同じアドレスに入力することで行われる。
【００４９】
続いて、増分処理がなされた作業ヒストグラムにおける最小矩形の座標を算出する処理が行われる（Ｓ２６）。図１１乃至図１３は、この処理を説明する図であり、図１１は処理の詳細を表すフローチャート、図１２は処理の概略を説明する図、図１３は処理例を説明する図である。
【００５０】
図１２に示すように、ここでは便宜的に作業ヒストグラムの矩形左下座標（θ＿ｌｔ，ρ＿ｌｔ）が（０，０）、矩形右上座標（θ＿ｂｒ，ρ＿ｂｒ）が（θｓ，ρｓ）となるように平行移動を行っている。また、入力データ（θ，ρ）も同様にして、（θｉｎ，ρｉｎ）＝（θ−θ＿ｌｔ，ρ−ρ＿ｌｔ）に平行移動している。そして、増分処理がなされた全ての入力データを対象に、θ軸とρ軸における最大の座標値θｍａｘ，ρｍａｘ及び最小の座標値θｍｉｎ，ρｍｉｎを求めている。
【００５１】
最小矩形の座標算出処理においては、まず、図３に示した最大最小テーブル１００を構成するレジスタに対し、（θｍｉｎ，ρｍｉｎ）＝（θｓ，ρｓ）（θｍａｘ，ρｍａｘ）＝（０，０）の初期値が設定される（Ｓ７０）。そして、比較器９６では、入力データの座標（θｉｎ，ρｉｎ）を入力し（Ｓ７２）、その時点での最大及び最小の座標値と比較する。具体的には、θｉｎ＜θｍｉｎを満たすときには（Ｓ７４）、θｍｉｎ＝θｉｎが設定され（Ｓ７６）、θｉｎ＞θｍａｘを満たすときには（Ｓ７８）、θｍａｘ＝θｉｎが設定される（Ｓ８０）。また、ρｉｎ＜ρｍｉｎを満たすときには（Ｓ８２）、ρｍｉｎ＝ρｉｎが設定され（Ｓ８４）、ρｉｎ＞ρｍａｘを満たすときには（Ｓ８６）、ρｍａｘ＝ρｉｎが設定される（Ｓ８８）。
【００５２】
図１３は、このようにして得られた最小矩形の算出結果を表している。例示した作業ヒストグラム１５０では、符号１５４、１５６，１５８，１６０，１６２，１６４で表した６個の入力データの座標に対し、増分処理が行われている。そして、これらの全ての座標を内部に含む最小矩形１５２が、θｍｉｎ，θｍａｘ，ρｍｉｎ，ρｍａｘによって規定されている。
【００５３】
最小矩形の座標が算出されると、次のデータの読み込みが行われ（Ｓ２８，Ｓ３０）、読み込みデータが存在する場合には、ステップＳ２２以降の処理が繰り返される。他方、読み込みデータが存在しない場合には、ヒストグラムの更新処理が行われる（Ｓ３２）。
【００５４】
図１４は、ヒストグラムの更新処理を説明するフローチャートである。ヒストグラム更新処理が開始されると、分割領域読取部１０６は、最大最小テーブル１００から、最小矩形の座標を読み込み（Ｓ９０）、メインメモリ１２４から、ヒストグラムの最小矩形のデータをバースト転送により読み込む（Ｓ９２）。例えば、図１３に示した作業ヒストグラム１５０が、図８に示した分割領域１４２に対応すると仮定する。このとき、作業ヒストグラム１５０の最小矩形１５２に対応する分割領域１４２の最小矩形１４４のデータが読み込まれる。加算部９０では、ヒストグラムの最小矩形のデータと、作業ヒストグラムの最小矩形のデータを加算する（Ｓ９４）。そして、分割領域書込部１０８は、加算した最小矩形のデータをメインメモリ１２４にバースト転送により書き込みを行う（Ｓ９６）。
【００５５】
以上の例では、作業ヒストグラムが設定されるＲＡＭセルは、一つだけであるとして説明を行った。しかし、図２を用いて説明したように、一般に、リコンフィギュラブル回路５０には、複数のＲＡＭセルが配置されている。そこで、以下では、作業ヒストグラムを複数のＲＡＭセルに設定する例について説明する。
【００５６】
複数のＲＡＭセルが利用可能である場合には、２以上のＲＡＭセル、あるいは、全てのＲＡＭセルを、一つの大きな仮想的ＲＡＭセルであるかのように扱って、上に説明した例と同様の処理を行う態様が考えられる。この態様では、作業ヒストグラムの設定処理、増分処理、加算処理、及びヒストグラムへの反映処理が、仮想的ＲＡＭセルに対してまとめて行われる。
【００５７】
別の態様として、作業ヒストグラムが設定されていないＲＡＭセル、または、近い将来に増分対象となる可能性が低い作業ヒストグラムが設定されたＲＡＭセルに対し、近い将来に増分対象となる可能性が高い作業ヒストグラムを設定する態様も考えられる。増分対象となる可能性の高低は、例えば、ハフ変換の特性に基づいて予測すればよい。具体的には、ハフ変換では、θの値を増加させながらρの値を決定する演算が行われることから、θの値が大きい作業ヒストグラムが将来的に使われることを予測する例、あるいは、θを増加にともなうρの値の変化が緩やかであることから、（θ，ρ）座標空間上での軌跡を直線的あるいは曲線的に外挿して予測する例が挙げられる。ＲＡＭセルに対する新たな作業ヒストグラムの設定は、別のＲＡＭセルに設定された作業ヒストグラムへの増分処理などと並列的に行うようにしてもよい。
【００５８】
ここで、図１５を用いて、複数の作業ヒストグラムの中から、実際に該当する作業ヒストグラムを選択する態様について説明する。図１５は、Ｎｏ１〜Ｎｏ６のＲＡＭセル番号を与えられた６個のＲＡＭセルを、連続する（θ，ρ）座標空間に割り当てて作業ヒストグラムを設定した例を示している。また、現在、増分作業の対象となっているＲＡＭセルは、ＲＡＭセル番号がＮｏ１のものであると仮定している。そして、このＲＡＭセルを基準として、θ座標が同じものをθＤ＝０、θ座標の正方向に隣接しているものをθＤ＝１、ρ座標が同じものをρＤ＝０、ρ座標の正方向に隣接しているものをρＤ＝１、ρ座標の負方向に隣接しているものをρＤ＝−１として識別している。図１６に、図１５に示した６個のＲＡＭのθＤ、ρＤ、及びＲＡＭセル番号の対応関係を示している。
【００５９】
図１７は、入力データ（θ，ρ）がどの分割領域に含まれるか判別する処理の流れを示すフローチャートである。この処理は、図６のステップＳ２０に対応する処理である。ここでは、入力した入力データ（θ，ρ）に対し（Ｓ９８）、まず、基準となるＲＡＭ（ＲＡＭセル番号がＮｏ１のＲＡＭ）に設定された作業ヒストグラムの範囲内にあるか否かの判定が行われる（Ｓ１００）。この判定は図１０に示した処理に基づいて行われ範囲内にない場合には、そのＲＡＭに対する処理が継続される。他方、範囲内にない場合には、θ座標の正方向に超過しているかが判定され（Ｓ１０２）、超過しているときにはθＤ＝１（Ｓ１０４）、超過していない場合にはθＤ＝０が設定される（Ｓ１０５）。なお、ここではθが増加することを仮定しているため、θ座標の負方向に超過することは想定していない。
【００６０】
続いて、ρ方向の超過が判定され（Ｓ１０６）、超過している場合にはρＤ＝１が設定される。他方、超過していない場合には、ρ座標の負方向に超過しているかが判定され、超過していない場合にはρＤ＝０（Ｓ１１２）、超過している場合にはρＤ＝−１（Ｓ１１４）が設定される。そして、図１６の対応関係にこの結果を照らし合わせることで、どのＲＡＭセルを選択すべきかが決定される。
【図面の簡単な説明】
【００６１】
【図１】画像処理装置のハードウエアの例を表す図である。
【図２】リコンフィギュラブルプロセッサのハードウエアの例を表す図である。
【図３】リコンフィギュラブルプロセッサの機能構成例を表す図である。
【図４】ハフ変換の例を説明する図である。
【図５】ハフ変換の例を説明する図である。
【図６】画像処理装置における処理例を説明するフローチャートである。
【図７】メインメモリ分割処理の例を説明するフローチャートである。
【図８】メインメモリの分割例を示す図である。
【図９】メインメモリ分割情報の例を示す図である。
【図１０】分割領域選択処理の例を説明するフローチャートである。
【図１１】最小矩形の座標算出処理の例を説明するフローチャートである。
【図１２】最小矩形の座標算出処理の例を説明する図である。
【図１３】最小矩形の座標算出処理の例を説明する図である。
【図１４】ヒストグラム更新処理の例を説明するフローチャートである。
【図１５】複数のＲＡＭセルを利用する例を説明する図である。
【図１６】複数のＲＡＭセルを利用する例を説明する図である。
【図１７】複数のＲＡＭセルを利用する例を説明するフローチャートである。
【符号の説明】
【００６２】
１０  画像処理装置、１２  バス、１４  ＣＰＵ、１６  ＲＯＭ、１８  ＲＡＭ、２０  ＨＤＤ、２２  リコンフィギュラブルプロセッサ、２４  操作ボタン、２６  ディスプレイ、２８  スキャナ、３０  プリンタ、３２  ＣＤＤ、３４  ネットワークインターフェース、４０  ネットワーク、５０  リコンフィギュラブル回路、５２，５４，５６，５８  ＡＬＵエレメント、６０，６２，６４  ＲＡＭセル、６６  メモリコントローラ、６８  制御部、７０  コンフィグメモリ、７２  コンフィグデータ格納部、７４  コンフィグデータ、８０  メインメモリ分割情報記憶部、８２  ハフ変換部、８４  分割領域選択部、８６  予測部、８８  作業ヒストグラム、９０  加算部、９２  集計部、９６  比較器、９８  増分器、１００  最大最小テーブル、１０６  分割領域読取部、１０８  分割領域書込部、１２０  メインメモリ分割情報、１２２  入力データ、１２４  メインメモリ。
【図１】
2009086761.tif 000003
【図２】
2009086761.tif 000004
【図３】
2009086761.tif 000005
【図４】
2009086761.tif 000006
【図５】
2009086761.tif 000007
【図６】
2009086761.tif 000008
【図７】
2009086761.tif 000009
【図８】
2009086761.tif 000010
【図９】
2009086761.tif 000011
【図１０】
2009086761.tif 000012
【図１１】
2009086761.tif 000013
【図１２】
2009086761.tif 000014
【図１３】
2009086761.tif 000015
【図１４】
2009086761.tif 000016
【図１５】
2009086761.tif 000017
【図１６】
2009086761.tif 000018
【図１７】
2009086761.tif 000019