説明

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

【課題】大容量記憶装置と、大容量記憶装置に比べて相対的に入出力速度が速く容量が小さい小容量記憶装置とを備える場合に、小容量記憶装置の容量よりも大きいヒストグラムを高速に作成する。
【解決手段】大容量記憶装置に設定されるヒストグラムの記憶領域を分割し(S11)、分割領域に対応する作業ヒストグラムを小容量記憶装置に設定する。処理すべき分割領域に対応する作業ヒストグラムがない場合には(S20,S22)。それまでの増分処理の結果をヒストグラムに反映させた上で、作業ヒストグラムを更新する(S32)。更新にあたっては、増分処理の結果が反映された最小矩形の領域に対するデータ転送のみが行われる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、及びデータ処理プログラムに関する。
【背景技術】
【0002】
画像に対して、ハフ変換を行い、用紙あるいは線の傾き角度等を検出する技術が知られている。
【0003】
下記特許文献1には、2値化処理をした画像に対してハフ変換を行う技術が開示されている。この技術では、ハフ変換専用のメモリを用意しておき、CPU(中央処理装置)がこのメモリを利用してハフ変換を行っている。
【0004】
下記特許文献2には、ヒストグラムを用いて、カラー画像の認識処理を行う技術が開示されている。この技術では、RGB形式からなるカラー画像信号を小領域に分割し、その小領域毎に特徴量を抽出する。そして、特徴量を圧縮して、色度ヒストグラムを作成し、特徴量メモリに格納している。
【0005】
【特許文献1】特開平6−119447号公報
【特許文献2】特開平7−262373号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明の目的は、大容量記憶装置と、大容量記憶装置に比べて相対的に入出力速度が速く容量が小さい小容量記憶装置とを備える場合に、小容量記憶装置の容量よりも大きい全体データを作成するデータ処理装置、またはデータ処理プログラムを提供することにある。
【課題を解決するための手段】
【0007】
本発明のデータ処理装置の一態様においては、相対的に入出力速度が遅く容量が大きい大容量記憶装置と、相対的に入出力速度が速く容量が小さい小容量記憶装置と、前記小容量記憶装置の容量よりも大きい全体データを前記大容量記憶装置に設定する第1設定手段と、前記全体データの一部に対応する部分データを、前記小容量記憶装置に設定する第2設定手段と、入力データに基づいて、前記全体データの部分更新に用いられる更新データを算出する算出手段と、前記更新データに基づいて、前記全体データの部分更新の対象部分に対応した前記部分データに対し、部分更新の前処理を行う前処理手段と、前記部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う部分更新手段と、を備え、前記第2設定手段は、部分更新の対象部分に対応した部分データが前記小容量記憶装置に設定されていない場合に、対象部分に対応した部分データを前記小容量記憶装置に設定し、前記部分更新手段は、前記第2設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う。
【0008】
本発明のデータ処理装置の一態様においては、前記全体データは、ヒストグラムの全体を表す全体ヒストグラムのデータであり、前記部分データは、前記全体ヒストグラムの一部に対応する部分ヒストグラムのデータである。
【0009】
本発明のデータ処理装置の一態様においては、前記入力データは画像データであり、前記算出手段は前記画像データに基づくハフ変換を行ってハフ変換の結果を表す前記更新データを算出する手段であり、前記全体ヒストグラムは前記ハフ変換の結果を反映したヒストグラムである。
【0010】
本発明のデータ処理装置の一態様においては、前記第2設定手段は、前記小容量記憶装置の連続的な記憶領域に前記部分データを設定し、前記前処理手段による前処理は、部分更新の対象部分に対応した前記部分データに対し、全体データに設定すべき値を設定することで行われ、前記部分更新手段は、前記部分データの一部であって、連続的な記憶領域に設定され、部分更新の対象部分に対応した範囲を全て含む転送対象データを、前記大容量記憶装置に一括転送を行うことで、前記全体データの部分更新を行う。
【0011】
本発明のデータ処理装置の一態様においては、前記第1設定手段は、前記大容量記憶装置の連続的な記憶領域に前記全体データを設定し、前記部分更新手段による前処理は、前記転送対象データに対応した全体データにも基づいて行われ、当該データ処理装置は、連続的な記憶領域に設定され、かつ、前記転送対象データに対応する全体データを、前記大容量記憶装置から一括転送して、前記部分更新手段に提供する提供手段を備える。
【0012】
本発明のデータ処理装置の一態様においては、前記第2設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて集計処理を行う集計処理手段を備える。
【0013】
本発明のデータ処理装置の一態様においては、複数の前記小容量記憶装置と、一または二以上の前記小容量記憶装置に基づいて演算処理を行う演算回路とを有し、前記演算回路の回路構成を再構成可能な再構成可能演算装置を備え、前記第2設定手段は、二以上の前記小容量記憶装置に対し、互いに異なる部分データを設定し、前記前処理手段は、前記演算回路の再構成により、前記部分データが設定された前記小容量記憶装置を入力先または出力先として構成される。
【0014】
本発明のデータ処理プログラムの一態様においては、相対的に入出力速度が遅く容量が大きい大容量記憶装置と、相対的に入出力速度が速く容量が小さい小容量記憶装置と、を備えたコンピュータを、前記小容量記憶装置の容量よりも大きい全体データを前記大容量記憶装置に設定する第1設定手段と、前記全体データの一部に対応する部分データを、前記小容量記憶装置に設定する第2設定手段と、入力データに基づいて、前記全体データの部分更新に用いられる更新データを算出する算出手段と、前記更新データに基づいて、前記全体データの部分更新の対象部分に対応した前記部分データに対し、部分更新の前処理を行う前処理手段と、前記部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う部分更新手段と、として機能させ、ここで、前記第2設定手段は、部分更新の対象部分に対応した部分データが前記小容量記憶装置に設定されていない場合に、対象部分に対応した部分データを前記小容量記憶装置に設定し、前記部分更新手段は、前記第2設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う。
【発明の効果】
【0015】
請求項1に記載の発明によれば、大容量記憶装置と、大容量記憶装置に比べて相対的に入出力速度が速く容量が小さい小容量記憶装置とを備える場合に、小容量記憶装置の容量よりも大きい全体データを作成することが可能となる。
【0016】
請求項2に記載の発明によれば、小容量記憶装置の容量よりも大きいヒストグラムを、高速な小容量装置を活用して更新することが可能となる。
【0017】
請求項3に記載の発明によれば、画像データのハフ変換に基づくヒストグラムを、高速な小容量装置を活用して更新することが可能となる。
【0018】
請求項4に記載の発明によれば、大容量記憶装置へのデータ転送を高速化することが可能となる。
【0019】
請求項5に記載の発明によれば、大容量記憶装置からのデータ転送を高速化することが可能となる。
【0020】
請求項6に記載の発明によれば、全体データを再度参照せずに集計処理ができるため、集計処理が高速化される。
【0021】
請求項7に記載の発明によれば、再構成可能演算装置を用いた全体データの処理が高速化される。
【0022】
請求項8に記載の発明によれば、大容量記憶装置と、大容量記憶装置に比べて相対的に入出力速度が速く容量が小さい小容量記憶装置とを備える場合に、小容量記憶装置の容量よりも大きい全体データを作成することが可能となるプログラムが提供される。
【発明を実施するための最良の形態】
【0023】
[用語及び概念の説明] データ処理装置は、通常、コンピュータハードウエアとコンピュータハードウエアの動作を制御するプログラムによって構築されるが、プログラムをハードウエア的に実装したコンピュータハードウエアによって構築されてもよい。データ処理装置は、通信可能に配置されたコンピュータハードウエアを利用した分散処理システムとして構築されてもよいし、単体の筐体などに格納されたコンピュータハードウエアを利用した集中処理システムとして構築されてもよい。なお、プログラムは、あらかじめコンピュータハードウエアに対してインストールされてもよいが、記憶媒体を通じて提供されたり、ネットワークを通じて提供されたりしてもよい。
【0024】
大容量記憶装置と小容量記憶装置は、ともにデータを記憶する装置である。大容量記憶装置は、相対的に記憶容量が大きく、入出力速度が遅いのに対し、小容量記憶装置は、相対的に記憶容量が小さく、入出力速度が早い。具体的には、大容量記憶装置と小容量記憶装置を、それぞれ、大容量磁気ディスクと小容量半導体メモリで構成する例、あるいは、大容量のDRAM(DyanamicRandomAccessMemory)と小容量のSRAM(StaticRAM)で構成する例などがあげられる。
【0025】
第1設定手段は、小容量記憶装置の容量よりも大きい全体データを大容量記憶装置に設定する。また、第2設定手段は、全体データの一部に対応する部分データを、前記小容量記憶装置に設定する。ここで、記憶装置にデータを設定するとは、記憶装置にそのデータ用の記憶領域が確保されることをいう。データの設定にあたり、確保された記憶領域に具体的データが記憶されてもよいし、されていなくてもよい。全体データは、小容量記憶装置には記憶しきれない大きさをもつデータであり、大容量記憶装置に設定される。また、部分データは、全体データの一部のデータ自体、あるいは、一部のデータと関連づけられたデータであり、小容量記憶装置に設定される。全体データの一部と部分データとの対応づけは例えば、全体データを静的に分割して固定的に行うようにしてもよいし、全体データの任意の一部を動的に切り出して行うようにしてもよい。第2設定手段は、前処理手段の前処理を受けるべき部分データが小容量記憶装置に設定されていない場合には、前処理を受けるべき部分データを新たに設定することになる。
【0026】
算出手段は、入力データに基づいて、更新データを算出する。入力データの形式は特に限定されるものではなく、例えば、画像データ、動画データ、文書データ、音声データなどの形式が挙げられる。更新データは、入力データに基づいて算出されるデータであり、全体データの部分更新に用いられる。部分更新とは、全体データの一部を更新することをいう。部分更新の対象となる全体データの一部は、部分データをなす全体データの一部とは一般には異なるものであり、部分データの大きさよりも小さいことが多い。
【0027】
入力データは単体の要素からなっていてもよいが、複数の要素からなっていてもよい。また、更新データは一又は二以上の要素に基づいて一つ算出されてもよいが、一又は二以上の要素に基づいて二以上算出されてもよい。したがって、例えば、入力データから複数の更新データが算出される態様も許される。具体的には、入力データが複数の画素(これは要素の例である)を含む画像データであり、これから複数の更新データが算出される例を挙げることができる。このようにして算出された複数の更新データによって部分更新が行われることにより、全体データの全てに対して更新がなされることになってもよいし、依然として一部に対してのみ更新がなされることになってもよい。
【0028】
前処理手段は、更新データに基づいて、全体データの部分更新の対象となる部分に対応した部分データに対し、部分更新の前処理を行う。そして、部分更新手段は、前処理がなされた部分データに基づいて、全体データの対応する部分の更新を行う。部分更新手段による部分更新は、第2設定手段により新たな部分データが設定されるよりも前に、既に設定されている部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う。すなわち、既になされた前処理の結果が利用できるうちに、前記全体データの部分更新を行う。
【0029】
[実施形態] 以下に本発明の実施形態を例示する。
図1は、本実施の形態にかかる画像処理装置10のハードウエア構成を示す図である。画像処理装置10は、データ処理装置の例である。画像処理装置10には、内部通信路としてのバス12が設けられ、バス12には、CPU14、ROM(ReadOnlyMemory)16、RAM18、HDD(HardDiscDrive)20、リコンフィギュラブルプロセッサ22、操作ボタン24、ディスプレイ26、スキャナ28、プリンタ30、CDD(CompactDiscDrive)32、ネットワークインターフェース34の各構成要素が接続されている。
【0030】
CPU14は、プログラムに基づいて、画像処理装置10の各構成要素を制御したり、演算処理を行ったりする。ROM16は、CPU14で動作するプログラムなどが記憶されている。RAM18は、比較的大きな容量をもつ記憶装置であり、例えば、CPU14の処理におけるメインメモリとして利用される。また、RAM18には、リコンフィギュラブルプロセッサ22からもデータの入出力が行われる。HDD(HardDiscDrive)20は、磁気ディスクを備えた記憶装置であり、大量の画像データの記憶などに用いられる。リコンフィギュラブルプロセッサ22は、再構成可能演算装置の例である。
【0031】
リコンフィギュラブルプロセッサ22は、演算回路や記憶回路(記憶装置)などを備えており、少なくとも一部の回路の論理仕様が再構成可能に構成されている。リコンフィギュラブルプロセッサ22は、ROM16や自装置内に格納されたプログラムに基づいて制御される。操作ボタン24は、ユーザからの指示を受け付ける入力装置である。ディスプレイ26は、ユーザに対して画像情報を提示するための表示装置である。スキャナ28は、セットされた用紙を読み取って、画像データを生成する装置である。プリンタ30は、画像データに基づいて用紙に印刷を行う装置である。スキャナ28とプリンタ30が連携した場合には、複写処理も実行可能となる。CDD32は、記録媒体としてのCD(CompactDisc)に対して読み書きを行う装置である。例えば、CPU14あるいはリコンフィギュラブルプロセッサ22を制御するプログラムがCDを通じて提供される場合、CDD32はCDからそのプログラムを読み取ることになる。ネットワークインターフェース34は、インターネットなどのネットワーク40と通信を行うための装置である。ネットワーク40からは、CPU14あるいはリコンフィギュラブルプロセッサ22を制御するプログラムが入力されることもある。また、ネットワーク40を通じた画像データの入出力もしばしば行われる。
【0032】
図2は、リコンフィギュラブルプロセッサ22のハードウエア構成を示す図である。リコンフィギュラブルプロセッサ22には、リコンフィギュラブル回路50、メモリコントローラ66、制御部68、コンフィグメモリ70、コンフィグデータ格納部72が設けられている。リコンフィギュラブル回路50は、ALU(ArithmeticLogicUnit)エレメント52,54,56,58と、RAMセル60,62,64とを含む複数のPE(プロセッサエレメント)を備えている。ALUエレメント52,54,56,58は、演算処理を行う回路である。また、RAMセル60,62,64は、比較的容量が小さく(例えば8KB程度)、高速アクセスが可能なSRAMなどからなる記憶回路である。リコンフィギュラブル回路50では、ALUの仕様やPE間の配線の仕様などを変更することができる。
【0033】
メモリコントローラ66は、リコンフィギュラブルプロセッサ22から、RAM18などの外部の記憶装置への入出力を制御する装置である。制御部68は、プログラムに従って、リコンフィギュラブルプロセッサ22の全体を制御する。コンフィグメモリ70は、リコンフィギュラブル回路50に論理仕様を設定するためのメモリである。コンフィグデータ格納部72には、複数のコンフィグデータ74が格納されている。所望のコンフィグデータ74をコンフィグメモリに格納することで、リコンフィギュラブル回路50の論理仕様を変更することが可能となる。この変更が数クロック程度の短時間で実行可能であるときには、一連の演算処理中に論理仕様を変更する動的再構成を行うようにしてもよい。
【0034】
図3は、リコンフィギュラブルプロセッサ22に構成された論理仕様を説明する図である。リコンフィギュラブルプロセッサ22には、メインメモリ分割情報記憶部80、ハフ変換部82、分割領域選択部84、作業ヒストグラム88、加算部90、集計部92、比較器96、増分器98、最大最小テーブル100、分割領域読取部106、分割領域書込部108が構築されている。また、メモリコントローラ66が、RAM18を用いて構築されたメインメモリ124との入出力を担っている。
【0035】
メインメモリ分割情報記憶部80は、メインメモリ分割情報120を入力し記憶する。メインメモリ分割情報120は、メインメモリ124に設定されたヒストグラムの分割領域についての情報である。メインメモリに対するヒストグラムの設定と、複数の分割領域への分割は、一連の演算の初期において、第1設定手段としてのCPU14により行われる。そして、メインメモリ分割情報120はこの分割の際に生成される。なお、ヒストグラムは全体データの例である。
【0036】
ハフ変換部82は、算出手段の例であり、入力データ122を入力し、ハフ変換を行って、更新データとしてのハフ変換結果を出力する。入力データ122は、例えば、画像データ自体であってもよいし、画像データの座標情報であってもよい。分割領域選択部84は、ハフ変換部82の計算結果と、メインメモリ分割情報記憶部80が記憶するメインメモリ分割情報120を参照したうで、どのRAMセルにハフ変換の結果を出力するか選択し、また、そのRAMセルにおけるアドレスを計算する。RAMセルの選択結果は、必要に応じて、分割領域読取部106に出力され、ヒストグラムの分割領域の読み取りが指示される。分割領域読取部106は、第2設定手段として機能している。なお、分割領域選択部84には、予測部86が設けられている。予測部86は、将来的に入力される入力データ122において、ヒストグラムのどの分割領域への入力が必要になるかを予測する。作業ヒストグラム88は、RAMセルを利用して構築されている。作業ヒストグラム88には、分割領域選択部84から増分を行うべきアドレスが入力される。そして、作業ヒストグラム88では、そのアドレスの値を出力し、増分器98で1だけ増分させて、同じアドレスに入力することにより、作業ヒストグラムの増分を行う。
【0037】
加算部90は、作業ヒストグラム88での増分結果と、分割領域読取部106から与えられるヒストグラムの分割領域の値とを加算する。加算された結果は、分割領域書込部108を通じてメインメモリ124に反映され、これによりヒストグラムの分割領域の更新が行われる。なお、作業ヒストグラム88、あるいは加算部90は、部分データの例である。また、増分器98や加算部90などは、前処理手段の例である。
【0038】
集計部92は、加算部90で得られた結果を基に、ヒストグラムの分割領域について集計を行う。集計部92は、ヒストグラムの分割領域が更新される度に集計を行うため、最終的なヒストグラムを再読込しなくても、集計が行われることになる。比較器96は、作業ヒストグラム88に入力するアドレスと、最大最小テーブル100に保持された最大値102、最小値104とを比較することで、作業ヒストグラム88で実際に作業が行われた最小矩形を算出することができる。この結果は、分割領域書込部108に出力され、分割領域読取部106では、最小矩形内のデータだけをメインメモリ124からバースト転送する。増分器98は、入力結果に1を足しあわせて出力する装置である。最大最小テーブル100は、レジスタを用いて構築されており、作業ヒストグラム88において作業された領域の最大値102、最小値104の値を保持する。この値は、新たな分割領域が読み取られる場合にリセットされる。
【0039】
分割領域読取部106は、分割領域選択部84からの指示に基づいて、メモリコントローラを介して、メインメモリ124から、ヒストグラムの分割領域をバースト転送する。入力は、ヒストグラムの分割領域のうち、最大最小テーブル100が教える最小矩形内のデータのみについて行われる。また、分割領域書込部108は、部分更新手段の例であり、加算部90で加算されたデータを、メモリコントローラ66を介してメインメモリ124にバースト転送して書き込む。分割領域書込部108による書き込みは、分割領域読取部106が読み込んだ最小矩形内のデータのみについて行われる。
【0040】
ここで、図4を用いてハフ変換の概要を説明する。図4(a)は、画像データを2次元空間たる画像空間に描いた図である。図示したx,y直交座標は、画像空間で基準となる座標を表している。図4(b)は、画像データに対するハフ変換の結果を表す2次元空間たるハフ空間(θ,ρ)を表している。ハフ変換は、画像空間で選ばれた各座標130,132に対して、パラメトリックに表現可能な図形を検出するものである。典型的には、θとρをパラメータとする直線を検出する。検出では、各座標130,132に対して、θを変化させた時のρの値を求めることで、曲線134,136を決定する。そして、こうして得られた各曲線134,136の交点座標を求めることで、画像データ中に含まれる支配的直線のパラメータ値が明らかになる。ハフ変換における各曲線は、(θ,ρ)座標でのヒストグラムとして表現される。したがって、各曲線の交点座標は、最大の値をもつ座標を調べることで算出される。なお、各θについて、全てのρの値を加算した場合には、画像データ中の支配的な直線の傾きが明らかになる。
【0041】
図5は、ある画像データに対するハフ変換の結果を部分的に示した表である。ここでは、θを0.01〜0.09まで0.01刻みで変化させたときのρの値を例示している。この例からわかるように、一般に、θが変化した場合におけるρの変化も緩やかである。つまり、ハフ変換では、ヒストグラムに足し込むべき(θ,ρ)座標の位置は、ヒストグラム上を緩やかに移動することになる。なお、ハフ空間は、画像空間に比べて広大(大容量)になることが多い。例えば、A4サイズ程度の画像データをハフ変換した場合、ハフ空間は、300kB程度必要となる。
【0042】
続いて、図6乃至図14を用いて、画像処理装置10の動作例について説明する。ここでは、作業ヒストグラムを設定するRAMセルは、一つだけであるとして、説明を行う。
【0043】
図6は、画像処理装置10がハフ変換を行う過程について例示したフローチャートである。この過程では、まず、リコンフィギュラブルプロセッサ22において、リコンフィギュラブル回路50の再構成が行われ、図3に示した機能をもつ回路仕様へと変更される(S10)。また、CPU14によって、ヒストグラムが設定されるメインメモリ124の分割処理(S11)が行われる。
【0044】
図7は、メインメモリ124の分割処理の流れを説明するフローチャートである。また、図8は、メインメモリ124の分割の具体例を模式的に示した図であり、図9は、メインメモリ分割情報120を表形式で示した図である。分割処理においては、まず、メインメモリ124に設定するヒストグラムの全体のサイズ(Θ,P)が決定される(S40)。ここで、Θはθ座標の最大値であり、Ρはρ座標の最大値である。続いて、RAMセルに設定する作業ヒストグラムのサイズ(θs,ρs)が決定される(S42)。ここで、θsはθ座標の最大値であり、ρsはρ座標の最大値である。そして、このサイズに従って、各分割領域の割当が行われる(S44)。図8に示す例では、メインメモリ124に設定されるヒストグラムは、θ方向に5個、ρ方向に6個に分割され、順番に、0,1,2,3,4,5,...の分割領域番号が付与されている。図9に示したメインメモリ分割情報120には、各分割領域番号で表される分割領域の左下座標と右下座標が登録されており、これにより、(θ,ρ)座標と分割領域番号とが対応づけられている。このメインメモリ分割情報120は、リコンフィギュラブルプロセッサ22のメインメモリ分割情報記憶部80に記憶される。
【0045】
メインメモリ分割処理が終了すると、続いて、画像データたる入力データ122がリコンフィギュラブルプロセッサ22に入力され、ハフ変換部82によってハフ変換が行われる(S12)。ハフ変換は、画像データの各座標(x,y)に対して順次行われ、これにより、ハフ空間での座標(θ,ρ)をもつデータが次々と求められる。求められたデータは、順次、分割領域選択部84に入力される。
【0046】
分割領域選択部84では、最初のデータを読み込んだ場合(S14)、まず、作業ヒストグラムが設定されるRAMが初期化され、全ての値が0にセットされる(S16)。続いて、全ての分割領域について処理が終了したか否かが検知され(S18)、終了した場合には処理全体を終了し、終了していない場合には処理を継続する(S18)。
【0047】
処理を継続する場合、分割領域選択部84では、分割領域の選択処理が行われる(S20)。図10は、分割領域の選択処理について説明するフローチャートである。分割領域の選択処理が開始されると、(θ,ρ)のデータが入力されるとともに(S50)、図8,9を用いて説明した分割領域番号が0にセットされる(S52)。そして、メインメモリ分割情報記憶部80に記憶されたメインメモリ分割情報120を参照して、矩形左下座標と矩形右上座標を取得し、(θ,ρ)と比較する。具体的には、θ_lt≦θ≦θ_brを満たすか否か(S54)、さらに、ρ_lt≦ρ≦ρ_brを満たすか否か(S56)が判定され、両方を満たす場合には、セットされた分割領域が出力される(S58)。他方、いずれかを満たさない場合には、分割領域番号を1増加させた分割領域について、同様の処理が繰り返される。
【0048】
次に、選択された分割領域と、既にRAMセルに設定された分割領域とが比較される。すなわち、入力された(θ,ρ)のデータが、RAMセルに設定された作業ヒストグラム内に含まれるべきデータか否かが判定される(S22)。そして、含まれる場合には、作業ヒストグラム増分処理(S24)が行われ、含まれない場合には、後で説明するヒストグラム更新処理(S32)が行われる。作業ヒストグラム増分処理は、図3で説明したように、その座標に対応するアドレスの作業ヒストグラムの値を出力し、増分器98で1加算して、同じアドレスに入力することで行われる。
【0049】
続いて、増分処理がなされた作業ヒストグラムにおける最小矩形の座標を算出する処理が行われる(S26)。図11乃至図13は、この処理を説明する図であり、図11は処理の詳細を表すフローチャート、図12は処理の概略を説明する図、図13は処理例を説明する図である。
【0050】
図12に示すように、ここでは便宜的に作業ヒストグラムの矩形左下座標(θ_lt,ρ_lt)が(0,0)、矩形右上座標(θ_br,ρ_br)が(θs,ρs)となるように平行移動を行っている。また、入力データ(θ,ρ)も同様にして、(θin,ρin)=(θ−θ_lt,ρ−ρ_lt)に平行移動している。そして、増分処理がなされた全ての入力データを対象に、θ軸とρ軸における最大の座標値θmax,ρmax及び最小の座標値θmin,ρminを求めている。
【0051】
最小矩形の座標算出処理においては、まず、図3に示した最大最小テーブル100を構成するレジスタに対し、(θmin,ρmin)=(θs,ρs)(θmax,ρmax)=(0,0)の初期値が設定される(S70)。そして、比較器96では、入力データの座標(θin,ρin)を入力し(S72)、その時点での最大及び最小の座標値と比較する。具体的には、θin<θminを満たすときには(S74)、θmin=θinが設定され(S76)、θin>θmaxを満たすときには(S78)、θmax=θinが設定される(S80)。また、ρin<ρminを満たすときには(S82)、ρmin=ρinが設定され(S84)、ρin>ρmaxを満たすときには(S86)、ρmax=ρinが設定される(S88)。
【0052】
図13は、このようにして得られた最小矩形の算出結果を表している。例示した作業ヒストグラム150では、符号154、156,158,160,162,164で表した6個の入力データの座標に対し、増分処理が行われている。そして、これらの全ての座標を内部に含む最小矩形152が、θmin,θmax,ρmin,ρmaxによって規定されている。
【0053】
最小矩形の座標が算出されると、次のデータの読み込みが行われ(S28,S30)、読み込みデータが存在する場合には、ステップS22以降の処理が繰り返される。他方、読み込みデータが存在しない場合には、ヒストグラムの更新処理が行われる(S32)。
【0054】
図14は、ヒストグラムの更新処理を説明するフローチャートである。ヒストグラム更新処理が開始されると、分割領域読取部106は、最大最小テーブル100から、最小矩形の座標を読み込み(S90)、メインメモリ124から、ヒストグラムの最小矩形のデータをバースト転送により読み込む(S92)。例えば、図13に示した作業ヒストグラム150が、図8に示した分割領域142に対応すると仮定する。このとき、作業ヒストグラム150の最小矩形152に対応する分割領域142の最小矩形144のデータが読み込まれる。加算部90では、ヒストグラムの最小矩形のデータと、作業ヒストグラムの最小矩形のデータを加算する(S94)。そして、分割領域書込部108は、加算した最小矩形のデータをメインメモリ124にバースト転送により書き込みを行う(S96)。
【0055】
以上の例では、作業ヒストグラムが設定されるRAMセルは、一つだけであるとして説明を行った。しかし、図2を用いて説明したように、一般に、リコンフィギュラブル回路50には、複数のRAMセルが配置されている。そこで、以下では、作業ヒストグラムを複数のRAMセルに設定する例について説明する。
【0056】
複数のRAMセルが利用可能である場合には、2以上のRAMセル、あるいは、全てのRAMセルを、一つの大きな仮想的RAMセルであるかのように扱って、上に説明した例と同様の処理を行う態様が考えられる。この態様では、作業ヒストグラムの設定処理、増分処理、加算処理、及びヒストグラムへの反映処理が、仮想的RAMセルに対してまとめて行われる。
【0057】
別の態様として、作業ヒストグラムが設定されていないRAMセル、または、近い将来に増分対象となる可能性が低い作業ヒストグラムが設定されたRAMセルに対し、近い将来に増分対象となる可能性が高い作業ヒストグラムを設定する態様も考えられる。増分対象となる可能性の高低は、例えば、ハフ変換の特性に基づいて予測すればよい。具体的には、ハフ変換では、θの値を増加させながらρの値を決定する演算が行われることから、θの値が大きい作業ヒストグラムが将来的に使われることを予測する例、あるいは、θを増加にともなうρの値の変化が緩やかであることから、(θ,ρ)座標空間上での軌跡を直線的あるいは曲線的に外挿して予測する例が挙げられる。RAMセルに対する新たな作業ヒストグラムの設定は、別のRAMセルに設定された作業ヒストグラムへの増分処理などと並列的に行うようにしてもよい。
【0058】
ここで、図15を用いて、複数の作業ヒストグラムの中から、実際に該当する作業ヒストグラムを選択する態様について説明する。図15は、No1〜No6のRAMセル番号を与えられた6個のRAMセルを、連続する(θ,ρ)座標空間に割り当てて作業ヒストグラムを設定した例を示している。また、現在、増分作業の対象となっているRAMセルは、RAMセル番号がNo1のものであると仮定している。そして、このRAMセルを基準として、θ座標が同じものをθD=0、θ座標の正方向に隣接しているものをθD=1、ρ座標が同じものをρD=0、ρ座標の正方向に隣接しているものをρD=1、ρ座標の負方向に隣接しているものをρD=−1として識別している。図16に、図15に示した6個のRAMのθD、ρD、及びRAMセル番号の対応関係を示している。
【0059】
図17は、入力データ(θ,ρ)がどの分割領域に含まれるか判別する処理の流れを示すフローチャートである。この処理は、図6のステップS20に対応する処理である。ここでは、入力した入力データ(θ,ρ)に対し(S98)、まず、基準となるRAM(RAMセル番号がNo1のRAM)に設定された作業ヒストグラムの範囲内にあるか否かの判定が行われる(S100)。この判定は図10に示した処理に基づいて行われ範囲内にない場合には、そのRAMに対する処理が継続される。他方、範囲内にない場合には、θ座標の正方向に超過しているかが判定され(S102)、超過しているときにはθD=1(S104)、超過していない場合にはθD=0が設定される(S105)。なお、ここではθが増加することを仮定しているため、θ座標の負方向に超過することは想定していない。
【0060】
続いて、ρ方向の超過が判定され(S106)、超過している場合にはρD=1が設定される。他方、超過していない場合には、ρ座標の負方向に超過しているかが判定され、超過していない場合にはρD=0(S112)、超過している場合にはρD=−1(S114)が設定される。そして、図16の対応関係にこの結果を照らし合わせることで、どのRAMセルを選択すべきかが決定される。
【図面の簡単な説明】
【0061】
【図1】画像処理装置のハードウエアの例を表す図である。
【図2】リコンフィギュラブルプロセッサのハードウエアの例を表す図である。
【図3】リコンフィギュラブルプロセッサの機能構成例を表す図である。
【図4】ハフ変換の例を説明する図である。
【図5】ハフ変換の例を説明する図である。
【図6】画像処理装置における処理例を説明するフローチャートである。
【図7】メインメモリ分割処理の例を説明するフローチャートである。
【図8】メインメモリの分割例を示す図である。
【図9】メインメモリ分割情報の例を示す図である。
【図10】分割領域選択処理の例を説明するフローチャートである。
【図11】最小矩形の座標算出処理の例を説明するフローチャートである。
【図12】最小矩形の座標算出処理の例を説明する図である。
【図13】最小矩形の座標算出処理の例を説明する図である。
【図14】ヒストグラム更新処理の例を説明するフローチャートである。
【図15】複数のRAMセルを利用する例を説明する図である。
【図16】複数のRAMセルを利用する例を説明する図である。
【図17】複数のRAMセルを利用する例を説明するフローチャートである。
【符号の説明】
【0062】
10 画像処理装置、12 バス、14 CPU、16 ROM、18 RAM、20 HDD、22 リコンフィギュラブルプロセッサ、24 操作ボタン、26 ディスプレイ、28 スキャナ、30 プリンタ、32 CDD、34 ネットワークインターフェース、40 ネットワーク、50 リコンフィギュラブル回路、52,54,56,58 ALUエレメント、60,62,64 RAMセル、66 メモリコントローラ、68 制御部、70 コンフィグメモリ、72 コンフィグデータ格納部、74 コンフィグデータ、80 メインメモリ分割情報記憶部、82 ハフ変換部、84 分割領域選択部、86 予測部、88 作業ヒストグラム、90 加算部、92 集計部、96 比較器、98 増分器、100 最大最小テーブル、106 分割領域読取部、108 分割領域書込部、120 メインメモリ分割情報、122 入力データ、124 メインメモリ。

【特許請求の範囲】
【請求項1】
相対的に入出力速度が遅く容量が大きい大容量記憶装置と、
相対的に入出力速度が速く容量が小さい小容量記憶装置と、
前記小容量記憶装置の容量よりも大きい全体データを前記大容量記憶装置に設定する第1設定手段と、
前記全体データの一部に対応する部分データを、前記小容量記憶装置に設定する第2設定手段と、
入力データに基づいて、前記全体データの部分更新に用いられる更新データを算出する算出手段と、
前記更新データに基づいて、前記全体データの部分更新の対象部分に対応した前記部分データに対し、部分更新の前処理を行う前処理手段と、
前記部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う部分更新手段と、
を備え、
前記第2設定手段は、部分更新の対象部分に対応した部分データが前記小容量記憶装置に設定されていない場合に、対象部分に対応した部分データを前記小容量記憶装置に設定し、
前記部分更新手段は、前記第2設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う、ことを特徴とするデータ処理装置。
【請求項2】
請求項1に記載のデータ処理装置において、
前記全体データは、ヒストグラムの全体を表す全体ヒストグラムのデータであり、
前記部分データは、前記全体ヒストグラムの一部に対応する部分ヒストグラムのデータである、ことを特徴とするデータ処理装置。
【請求項3】
請求項2に記載のデータ処理装置において、
前記入力データは画像データであり、
前記算出手段は前記画像データに基づくハフ変換を行ってハフ変換の結果を表す前記更新データを算出する手段であり、
前記全体ヒストグラムは前記ハフ変換の結果を反映したヒストグラムである、ことを特徴とするデータ処理装置。
【請求項4】
請求項1乃至3のいずれか1項に記載のデータ処理装置において、
前記第2設定手段は、前記小容量記憶装置の連続的な記憶領域に前記部分データを設定し、
前記前処理手段による前処理は、部分更新の対象部分に対応した前記部分データに対し、全体データに設定すべき値を設定することで行われ、
前記部分更新手段は、前記部分データの一部であって、連続的な記憶領域に設定され、部分更新の対象部分に対応した範囲を全て含む転送対象データを、前記大容量記憶装置に一括転送を行うことで、前記全体データの部分更新を行う、ことを特徴とするデータ処理装置。
【請求項5】
請求項4に記載のデータ処理装置において、
前記第1設定手段は、前記大容量記憶装置の連続的な記憶領域に前記全体データを設定し、
前記部分更新手段による前処理は、前記転送対象データに対応した全体データにも基づいて行われ、
当該データ処理装置は、連続的な記憶領域に設定され、かつ、前記転送対象データに対応する全体データを、前記大容量記憶装置から一括転送して、前記部分更新手段に提供する提供手段を備える、
ことを特徴とするデータ処理装置。
【請求項6】
請求項1に記載のデータ処理装置において、
前記第2設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて集計処理を行う集計処理手段を備える、ことを特徴とするデータ処理装置。
【請求項7】
請求項1乃至5のいずれか1項に記載のデータ処理装置において、
複数の前記小容量記憶装置と、一または二以上の前記小容量記憶装置に基づいて演算処理を行う演算回路とを有し、前記演算回路の回路構成を再構成可能な再構成可能演算装置を備え、
前記第2設定手段は、二以上の前記小容量記憶装置に対し、互いに異なる部分データを設定し、
前記前処理手段は、前記演算回路の再構成により、前記部分データが設定された前記小容量記憶装置を入力先または出力先として構成される、ことを特徴とするデータ処理装置。
【請求項8】
相対的に入出力速度が遅く容量が大きい大容量記憶装置と、
相対的に入出力速度が速く容量が小さい小容量記憶装置と、
を備えたコンピュータを、
前記小容量記憶装置の容量よりも大きい全体データを前記大容量記憶装置に設定する第1設定手段と、
前記全体データの一部に対応する部分データを、前記小容量記憶装置に設定する第2設定手段と、
入力データに基づいて、前記全体データの部分更新に用いられる更新データを算出する算出手段と、
前記更新データに基づいて、前記全体データの部分更新の対象部分に対応した前記部分データに対し、部分更新の前処理を行う前処理手段と、
前記部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う部分更新手段と、
として機能させ、ここで、
前記第2設定手段は、部分更新の対象部分に対応した部分データが前記小容量記憶装置に設定されていない場合に、対象部分に対応した部分データを前記小容量記憶装置に設定し、
前記部分更新手段は、前記第2設定手段により新たな部分データが設定される前に、既に設定されている部分データに対する前処理の結果に基づいて、前記全体データの部分更新を行う、ことを特徴とするデータ処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2009−86761(P2009−86761A)
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願番号】特願2007−252612(P2007−252612)
【出願日】平成19年9月27日(2007.9.27)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】