(57)【特許請求の範囲】
【請求項１】
画像空間に配置された画素の値に基づいて、作業空間での座標を取得する取得手段と、
記憶装置に対し、前記作業空間の一部をなす部分作業空間を設定する設定手段と、
前記取得手段により取得された座標を含む部分作業空間が設定されていない場合に、既設定された部分作業空間との重複を避けて、取得された座標を含む部分作業空間を設定させる指示を前記設定手段に行う指示手段と、
前記取得手段により取得された座標に対して、部分作業空間の値の更新を行う更新手段と、
を備え、
前記指示手段は、
前記取得手段により取得された座標を中心座標とする部分作業空間を、設定する部分作業空間の候補とし、
当該候補である部分作業空間が既設定された部分作業空間と重複しない場合は、当該候補である部分作業空間を、前記取得手段により取得された座標を含む部分作業空間として設定させる指示を前記設定手段に行い、
前記候補である部分作業空間が既設定された部分作業空間と重複する場合は、前記候補である部分作業空間の中心座標を変化させることにより、既設定された部分作業空間と重複しない部分作業空間を特定し、前記設定手段に対しその設定を指示する、ことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記作業空間は、ヒストグラムが構築されるヒストグラム空間であり、
前記部分作業空間は、前記ヒストグラム空間の一部をなす部分ヒストグラム空間である、ことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置において、
前記ヒストグラム空間は、画素の値を座標軸とする空間であり、
前記取得手段は、画像空間に配置された画素の値に基づいて、前記ヒストグラム空間での座標を取得する、ことを特徴とする情報処理装置。
【請求項４】
請求項２に記載の情報処理装置において、
前記画像空間を複数の分割空間に分割する分割手段を備え、
前記取得手段、前記設定手段、前記指示手段、及び前記更新手段は、２以上の前記分割空間に対する処理を別々に実行する、ことを特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置において、
前記取得手段、前記設定手段、前記指示手段、及び前記更新手段は、２以上の前記分割空間に対する処理を並列的に実行する、ことを特徴とする情報処理装置。
【請求項６】
請求項５に記載の情報処理装置において、
回路仕様を再構成可能な再構成可能回路と、
前記再構成可能回路から入出力可能な複数の前記記憶装置と、
２以上の前記分割空間に対する処理が互いに異なる前記記憶装置を用いて並列的に実行されるように、前記再構成可能回路に、少なくとも前記設定手段及び前記更新手段を構成する構成手段を備える、ことを特徴とする情報処理装置。
【請求項７】
画像空間に配置された画素の値に基づいて、作業空間での座標を取得する取得手段と、
記憶装置に対し、前記作業空間の一部をなす部分作業空間を設定する設定手段と、
前記取得手段により取得された座標を含む部分作業空間が設定されていない場合に、既設定された部分作業空間との重複を避けて、取得された座標を含む部分作業空間を設定させる指示を前記設定手段に行う指示手段と、
前記取得手段により取得された座標に対して、部分作業空間の値の更新を行う更新手段、
として情報処理装置を機能させ、
前記指示手段は、
前記取得手段により取得された座標を中心座標とする部分作業空間を、設定する部分作業空間の候補とし、
当該候補である部分作業空間が既設定された部分作業空間と重複しない場合は、当該候補である部分作業空間を、前記取得手段により取得された座標を含む部分作業空間として設定させる指示を前記設定手段に行い、
前記候補である部分作業空間が既設定された部分作業空間と重複する場合は、前記候補である部分作業空間の中心座標を変化させることにより、既設定された部分作業空間と重複しない部分作業空間を特定し、前記設定手段に対しその設定を指示する、ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及び情報処理プログラムに関する。
【背景技術】
【０００２】
画像処理過程では、しばしば、ヒストグラムの作成が行われる。
【０００３】
下記特許文献１には、ヒストグラムの度数を記憶させるメモリがオーバーフローした場合に、スタックメモリに記憶させることで、度数方向の記憶領域を小さくする技術が開示されている。
【０００４】
下記特許文献２には、画像データの間引きを行うことで、ヒストグラムに使用するメモリ容量を抑制する技術が開示されている。
【０００５】
下記特許文献３には、ヒストグラムデータがオーバーフローした場合には、度数データを右シフトし、精度を低下させることにより、メモリ容量を抑制する技術が開示されている。
【０００６】
下記特許文献４には、画像データをブロック単位で直交変換して圧縮し、各ブロック単位の直流成分からヒストグラムを作成する技術が開示されている。
【０００７】
下記特許文献５には、画素値が第一境界値よりも小さい画素と、第二境界値よりも大きい画素についてのみヒストグラムを生成し、メモリ容量を抑制する技術が開示されている。
【０００８】
【特許文献１】特開平７−１８２５１４号公報
【特許文献２】特開平８−１３９９１６号公報
【特許文献３】特開２００２−１０９５３５号公報
【特許文献４】特開２００６−２９５６２５号公報
【特許文献５】特開平１１−７５０７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、画像処理において必要となる作業空間の記憶容量を抑制させることにある。
【課題を解決するための手段】
【００１０】
本発明の一態様の情報処理装置は、画像空間に配置された画素の値に基づいて、作業空間での座標を取得する取得手段と、記憶装置に対し、前記作業空間の一部をなす部分作業空間を設定する設定手段と、前記取得手段により取得された座標を含む部分作業空間が設定されていない場合に、既設定された部分作業空間との重複を避けて、取得された座標を含む部分作業空間を設定させる指示を前記設定手段に行う指示手段と、前記取得手段により取得された座標に対して、部分作業空間の値の更新を行う更新手段と、を備え、前記指示手段は、前記取得手段により取得された座標を中心座標とする部分作業空間を、設定する部分作業空間の候補とし、当該候補である部分作業空間が既設定された部分作業空間と重複しない場合は、当該候補である部分作業空間を、前記取得手段により取得された座標を含む部分作業空間として設定させる指示を前記設定手段に行い、前記候補である部分作業空間が既設定された部分作業空間と重複する場合は、前記候補である部分作業空間の中心座標を変化させることにより、既設定された部分作業空間と重複しない部分作業空間を特定し、前記設定手段に対しその設定を指示する、ことを特徴とする。
本発明の一態様の情報処理プログラムは、画像空間に配置された画素の値に基づいて、作業空間での座標を取得する取得手段と、記憶装置に対し、前記作業空間の一部をなす部分作業空間を設定する設定手段と、前記取得手段により取得された座標を含む部分作業空間が設定されていない場合に、既設定された部分作業空間との重複を避けて、取得された座標を含む部分作業空間を設定させる指示を前記設定手段に行う指示手段と、前記取得手段により取得された座標に対して、部分作業空間の値の更新を行う更新手段、として情報処理装置を機能させ、前記指示手段は、前記取得手段により取得された座標を中心座標とする部分作業空間を、設定する部分作業空間の候補とし、当該候補である部分作業空間が既設定された部分作業空間と重複しない場合は、当該候補である部分作業空間を、前記取得手段により取得された座標を含む部分作業空間として設定させる指示を前記設定手段に行い、前記候補である部分作業空間が既設定された部分作業空間と重複する場合は、前記候補である部分作業空間の中心座標を変化させることにより、既設定された部分作業空間と重複しない部分作業空間を特定し、前記設定手段に対しその設定を指示する、ことを特徴とする。
なお、本段落の次の文から段落［００２７］までの記載は、本願の出願当初の特許請求の範囲に記載の請求項１−９の記載に対応する。
本発明の情報処理装置の一態様においては、画像空間に配置された画素の値に基づいて、作業空間での座標を取得する取得手段と、記憶装置に対し、前記作業空間の一部をなす部分作業空間を設定する設定手段と、前記取得手段により取得された座標を含む部分作業空間が設定されていない場合に、既設定された部分作業空間との重複を避けて、取得された座標を含む部分作業空間を設定させる指示を前記設定手段に行う指示手段と、前記取得手段により取得された座標に対して、部分作業空間の値の更新を行う更新手段と、を備える。
【００１１】
本発明の情報処理装置の一態様においては、前記指示手段は、設定する候補となる部分作業空間の位置、大きさ、又は形状の少なくとも一つを変化させることにより、既設定された部分作業空間と重複しない部分作業空間を特定し、前記設定手段に対しその設定を指示する。
【００１２】
本発明の情報処理装置の一態様においては、前記指示手段は、前記作業空間を予め複数に分割した空間の中から、取得された座標を含む空間を選択することで、既設定された部分作業空間と重複しない部分作業空間を特定し、前記設定手段に対しその設定を指示する。
【００１３】
本発明の情報処理装置の一態様においては、前記作業空間は、ヒストグラムが構築されるヒストグラム空間であり、前記部分作業空間は、前記ヒストグラム空間の一部をなす部分ヒストグラム空間である。
【００１４】
本発明の情報処理装置の一態様においては、前記ヒストグラム空間は、画素の値を座標軸とする空間であり、前記取得手段は、画像空間に配置された画素の値に基づいて、前記ヒストグラム空間での座標を取得する。
【００１５】
本発明の情報処理装置の一態様においては、前記画像空間を複数の分割空間に分割する分割手段を備え、前記取得手段、前記設定手段、前記指示手段、及び前記更新手段は、２以上の前記分割空間に対する処理を別々に実行する。
【００１６】
本発明の情報処理装置の一態様においては、前記取得手段、前記設定手段、前記指示手段、及び前記更新手段は、２以上の前記分割空間に対する処理を並列的に実行する。
【００１７】
本発明の情報処理装置の一態様においては、回路仕様を再構成可能な再構成可能回路と、前記再構成可能回路から入出力可能な複数の前記記憶装置と、２以上の前記分割空間に対する処理が互いに異なる前記記憶装置を用いて並列的に実行されるように、前記再構成可能回路に、少なくとも前記設定手段及び前記更新手段を構成する構成手段を備える。
【００１８】
本発明の情報処理装置の一態様においては、画像空間に配置された画素の値に基づいて、作業空間での座標を取得する取得手段と、記憶装置に対し、前記作業空間の一部をなす部分作業空間を設定する設定手段と、前記取得手段により取得された座標を含む部分作業空間が設定されていない場合に、既設定された部分作業空間との重複を避けて、取得された座標を含む部分作業空間を設定させる指示を前記設定手段に行う指示手段と、前記取得手段により取得された座標に対して、部分作業空間の値の更新を行う更新手段、として情報処理装置を機能させる。
【発明の効果】
【００１９】
請求項１の発明によれば、既設定された部分作業空間と重複を避けて必要な部分作業空間が設定されることで、画像処理で使用する作業空間の記憶容量を抑制させることが可能となる。
【００２０】
請求項２の発明によれば、既設定された部分作業空間と重複しない部分作業空間が動的に決定されるため、実際に使用される付近に部分作業空間を設定できる効果が期待できる。
【００２１】
請求項３の発明によれば、既設定された部分作業空間と重複しない部分作業空間を速やかに決定することが可能となる。
【００２２】
請求項４の発明によれば、画像処理で使用するヒストグラム空間の記憶容量を抑制させることが可能となる。
【００２３】
請求項５の発明によれば、画素の値を座標軸とするヒストグラム空間の記憶容量を抑制させることが可能となる。
【００２４】
請求項６の発明によれば、画像空間では近傍の画素値が類似する傾向にある特性を利用して、ヒストグラム空間の記憶容量を抑制させることが可能となる。
【００２５】
請求項７の発明によれば、画像空間に対する画像処理を高速化することが可能となる。
【００２６】
請求項８の発明によれば、情報処理装置における画像処理効率の向上が期待できる。
【００２７】
請求項９の発明によれば、既設定された部分作業空間と重複を避けて必要な部分作業空間が設定されることで、画像処理で使用する作業空間の記憶容量を抑制させることが可能となるプログラムが提供される。
【発明を実施するための最良の形態】
【００２８】
［用語や概念の説明］
以下に、特許請求の範囲、明細書、または図面に記載した用語や概念について説明する。
【００２９】
情報処理装置は、演算処理機能を備えたコンピュータ（のハードウエア）を、プログラム（ソフトウエア）制御することで構築されてもよいし、同等の機能をプログラムを使わずにハードウエアで実現してもよい。また、コンピュータは、単体の装置であってもよいし、通信可能に接続された複数の装置であってもよい。なお、プログラムは、あらかじめコンピュータにインストールされてもよいし、記録媒体あるいはネットワークを通じて提供され、インストールされてもよい。
【００３０】
画像空間とは、画像（画像データと呼ぶこともある）が占める空間（典型的には２次元空間である）をいう。ここでは、画像は、複数の画素（画素データと呼ぶこともある）が含まれるラスタ形式で表現されることが想定されている。取得手段は、一又は二以上の画素に基づいて、作業空間における一又は二以上の座標を取得する。
【００３１】
作業空間は、１次元または２次元以上の空間であり、画像処理に関する作業が行われる空間である。取得手段は、例えば、画素がもつ情報に従って、あるいは、画素がもつ情報に対し所定の演算を行うことで、作業空間の座標を取得する。作業空間としては、典型的には、画像空間とは異なる空間が採用される。作業空間は、画像空間の特性（例えば大きさあるいは形状）または画素特性（例えば画素値の大きさあるいはバラツキ）に依存して、その大きさあるいは形状などが変化するものでもよいし、こうした特性に依存せずに、その大きさあるいは形状などが定まるものであってもよい。作業空間の例としては、画素の特性に基づいて与えられるヒストグラム空間や、各種の関数空間などが挙げられる。ここで、ヒストグラムとは、度数分布表などともよばれ、ヒストグラム空間の各座標における値（データ）の分布を表すものである。ヒストグラムは、例えば、画像の輝度分布（あるいは色濃度分布）を調べるため、あるいは、ハフ変換結果を調べるために用いられる。
【００３２】
記憶装置は、データを一時的または恒久的に記憶できる装置であり、例えば、半導体メモリや、磁気ディスクを用いて構成される。記憶装置は、当該情報処理装置に含まれていても、いなくてもよい。設定手段は、部分作業空間を記憶装置に設定する。設定は、例えば、部分作業空間の各座標における値を記憶する箇所を記憶領域に割り当てることにより行われる。部分作業空間の大きさや形状は、典型的には、予め決定される。しかし、画像に関連する情報（例えば、画像の種類、それ以前に解析した結果など）に基づいて、大きさあるいは形状を変化させるようにしてもよい。なお、部分作業空間は、作業空間における連続した部分空間であっても、不連続（例えば、ある間隔でとびとびに選ばれた空間）な部分空間であってもよい。
【００３３】
指示手段は、取得した座標を含む部分作業空間が設定されていない場合に、取得した座標を含む部分作業空間を設定させるよう設定手段に指示する。指示は、既に設定された部分作業空間との重複（記憶箇所の重複）を避けて、新たな部分作業空間を設定するように行われる。指示手段は、設定する候補となる部分作業空間の位置、大きさ、又は形状の少なくとも一つを変化させることにより、既設定された部分作業空間と重複しない部分作業空間を特定してもよい。具体的には、設定する候補となる部分作業空間を前記作業空間の一又は二以上の空間座標軸に沿って平行移動させる例、設定する候補となる部分作業空間を前記作業空間の一又は二以上の空間座標軸に沿って縮小させる例、設定する候補となる部分作業空間の形状を変化させる例などが挙げられる。また、指示手段は、前記作業空間を予め複数に分割した空間の中から、取得された座標を含む空間を選択することで、既設定された部分作業空間と重複しない部分作業空間を特定してもよい。
【００３４】
更新手段は、部分作業空間における取得した座標に対して、その値を更新する処理を行う。なお、データ処理装置は、さらに、更新がなされた一又は二以上（全てでもよい）の部分作業空間を参照して、画像に関する処理などを行う処理手段を含んでもよい。
【００３５】
［実施形態］
以下に本発明の実施形態を例示する。
【００３６】
図１は、本実施の形態にかかる画像処理装置１０のハードウエア構成の概略を示した図である。画像処理装置１０は、情報処理装置の例であり、内部通信路としてのバス１２と、バス１２に接続されたＣＰＵ（中央処理装置）１４、メモリ１６、リコンフィギュラブル装置１８、ＣＤＤ（コンパクトディスクドライブ）２０、ＵＩ（ユーザインタフェース）２２、スキャナ２４、プリンタ２６、及びネットワークインタフェース２８の各構成装置を備えている。
【００３７】
ＣＰＵ１４は、メモリ１６に格納されたプログラムに基づいて演算処理を行う装置であり、画像処理や、各構成装置の制御などを行う。メモリ１６は、半導体素子あるいは磁気ディスクなどにより作られた記憶装置である。メモリ１６には、プログラムや画像データなどが格納される。リコンフィギュラブル装置１８は、回路仕様を動的に再構成することが可能な装置である。ＣＤＤ２０は、記録媒体としてのＣＤ（コンパクトディスク）に対する入出力を行う装置である。ＣＰＵ１４やリコンフィギュラブル装置１８などを制御するプログラムはＣＤを通じて提供されることがあり、この場合にはＣＤＤ２０を経由してそのインストールが行われる。ＵＩ２２は、ユーザに画像情報を提示する液晶ディスプレイ等の表示装置と、ユーザからの指示を受け付けるタッチパネルやキーボードなどの入力装置を備える。スキャナ２４は、用紙を読み取って画像データを生成する装置であり、プリンタ２６は、画像データに基づいて用紙に印刷を行う装置である。ネットワークインタフェース２８は、インターネット等のネットワーク３０との通信を行う装置である。ＣＰＵ１４やリコンフィギュラブル装置１８などを制御するプログラムはネットワーク３０を通じて提供されることがあり、この場合にはネットワークインタフェース２８を経由してそのインストールが行われる。
【００３８】
図２は、リコンフィギュラブル装置１８のハードウエア構成の概略を示した図である。リコンフィギュラブル装置１８には、再構成可能回路としてのリコンフィギュラブル領域４０が設けられている。リコンフィギュラブル領域４０には、算術を行うＰＥ（プロセッサエレメント）としてのＡＬＵエレメント４２，４４，４６や、記憶を行うＰＥとしてのＲＡＭエレメント５０，５２，５４が複数設けられている。コンフィグメモリ６０は、リコンフィギュラブル領域４０の回路仕様を規定するデータを記憶する記憶装置である。コンフィグメモリ６０に記憶されたデータに従って、リコンフィギュラブル領域４０における演算仕様あるいは結線仕様が変更され、リコンフィギュラブル領域４０は特定の処理をハードウエア的に実行できるようになる。
【００３９】
リコンフィギュラブル領域４０とコンフィグメモリ６０は、内部通信路としてのバス６２に接続されている。また、バス６２には、リコンフィギュラブル装置１８の各構成要素を制御する制御部６４、リコンフィギュラブル領域４０やコンフィグメモリ６０で使用するデータを記憶するメモリ６６、画像処理装置１０のバス１２との通信を媒介するインタフェース６８などが設けられている。
【００４０】
図３は、リコンフィギュラブル領域４０の再構成により、画像データの画素値に対するヒストグラム処理機能が構築された例を示している。ここでは、リコンフィギュラブル領域４０では、絶対アドレス７０と、「読み出し」有効信号７２が入力されて、アドレス制御部７４に送られる。「読み出し」有効信号７２は、絶対アドレス７０に対する処理の種類を規定する信号であり、Ｌｏのときはヒストグラムへの書き込み（生成）が行われ、Ｈｉのときはヒストグラムからの読み出しが行われる。そして、絶対アドレス７０としては、「読み出し」有効信号７２がＬｏのときは画素値が与えられ、Ｈｉのときはヒストグラムの読み出しアドレスが与えられる。
【００４１】
アドレス制御部７４は、内部にアドレス管理テーブル７６を保持しており、このアドレス管理テーブル７６を参照して、絶対アドレス７０から、ヒストグラムに対し書き込み又は読み出しを行う相対アドレス７８を生成する。また、アドレス制御部７４は、絶対アドレス７０に対応して読み出すべき相対アドレス７８が存在するときはＬｏ、存在しないときはＨｉの度数制御信号８０を出力する。
【００４２】
出力された相対アドレス７８は、ＲＡＭエレメントを用いて構築されたヒストグラム生成メモリ８２に入力され、ヒストグラム生成メモリ８２では、その相対アドレス７８に対応する度数８４のデータを出力する。そして、データの書き込みを行う場合には、出力された度数８４は増分器８６に出力され、増分器８６では、１増分（つまり、プラス１の加算）を行ってヒストグラム生成メモリ８２に再入力する。また、データの読み出しを行う場合には、出力された度数８４は選択回路であるＳＥＬ８８に出力される。このＳＥＬ８８では、度数制御信号８０がＬｏのときは度数８４を選択し、Ｈｉのときは「０」を選択して出力する。
【００４３】
図４は、アドレス管理テーブル７６の例を示す図である。図４に示すように、アドレス管理テーブル７６は、Ｎ＝１，２，．．．の番号をもつ「部分ヒストグラム」が設定される。各部分ヒストグラムに対しては、ヒストグラム生成メモリ８２におけるメモリ範囲、絶対アドレスと相対アドレスとの変換のためのオフセット値、各部分ヒストグラムの中心座標に配置される画素値である中心画素値、及び、各部分ヒストグラムの画素値の範囲（部分ヒストグラム空間の座標値の範囲）が登録される。図４の例では、Ｎ＝１の部分ヒストグラムでは、メモリ範囲は（０，０）〜（Ｘ＿ｌｅｎ−１，Ｙ＿ｌｅｎ−１）、オフセット値はＸ＿ｌｅｎ＊（Ｎ−１）＊Ｙ＿ｌｅｎ＝０（ここで＊は掛け算を表す）に設定される。また、中心画素値はＲＧＢ表色系における（ｒ１，ｇ１，ｂ１）であり、画素値の範囲は中心画素値の周囲の−７〜＋８の範囲（ｒ１−７〜ｒ１＋８，ｇ１−７〜ｇ１＋８，ｂ１−７〜ｂ１＋８）に設定されている。同様にして、Ｎ＝２の部分ヒストグラムでは、メモリ範囲は（０，Ｙ＿ｌｅｎ）〜（Ｘ＿ｌｅｎ−１，２＊Ｙ＿ｌｅｎ−１）、オフセット値はＸ＿ｌｅｎ＊（Ｎ−１）＊Ｙ＿ｌｅｎ＝Ｘ＿ｌｅｎ＊Ｙ＿ｌｅｎ、中心画素値は（ｒ２，ｇ２，ｂ２）、画素値の範囲は（ｒ２−７〜ｒ２＋８，ｇ２−７〜ｇ２＋８，ｂ２−７〜ｂ２＋８）に設定されている。
【００４４】
図５は、ヒストグラム生成メモリ８２に確保された部分ヒストグラムの例を模式的に示す図である。ここでは、Ｎ＝１，２，３の番号が与えられた３つの部分ヒストグラムに対応するメモリ範囲が確保されている。各メモリ範囲のサイズは、横方向にＸ＿ｌｅｎ、縦方向にＹ＿ｌｅｎである。また、各メモリ範囲には、中心画素値を中心として、部分ヒストグラムの空間を埋める座標値が設定されている。
【００４５】
図６は、アドレス制御部７４の構成を詳しく説明する図である。アドレス制御部７４には、範囲判断部９０と相対アドレス生成部１０４が設けられている。範囲判断部９０は、絶対アドレス７０及び「読み出し」有効信号７２を入力する。そして、絶対アドレス７０に対応する部分のヒストグラムが、ヒストグラム生成メモリ８２に設定されているか否かを、アドレス管理テーブル７６を参照して判断する。
【００４６】
具体的には、書き込みを行う場合には、アドレス管理テーブル７６からテーブル読み出し値９４を取得して、入力した画素値に対応する範囲が、どの部分ヒストグラムに設定されているか、あるいは、まだ設定されていないのかを判断する。そして、設定されているときには、その部分ヒストグラムの中心画素値１００とオフセット値１０２を相対アドレス生成部１０４に送信する。他方、まだ設定されていないときには、既に設定された部分ヒストグラムと重複しないような新たな部分ヒストグラムの設定を行う。そして、アドレス管理テーブル７６にテーブル書き込み値９２を送信して登録を行うとともに、中心画素値１００とオフセット値１０２を相対アドレス生成部１０４に送信する。相対アドレス生成部１０４では、入力された絶対アドレス７０、中心画素値１００、オフセット値１０２に基づいてアドレス変換を行い、相対アドレス７８を出力する。
【００４７】
また、読み出しを行う場合には、範囲判断部９０は、絶対アドレス７０に対応する部分ヒストグラムが何番目の部分ヒストグラムに設定されているのか、あるいは、設定されていないのかを、アドレス管理テーブル７６を参照して判断する。そして、設定されているときには、対応する中心画素値１００とオフセット値１０２を相対アドレス生成部１０４に出力するとともに、Ｌｏの度数制御信号８０を出力する。相対アドレス生成部１０４が、入力された絶対アドレス７０、中心画素値１００、オフセット値１０２に基づいて相対アドレス７８を出力する態様は、書き込みの場合と同様である。これに対し、部分ヒストグラムが設定されていないときには、Ｈｉの度数制御信号８０を出力して、ＳＥＬ８８に「０」の出力をさせる。
【００４８】
続いて、図７〜図１４を用いて、画像処理装置１０における処理の例を説明する。ここでは、スキャナ２４で生成された画像データに対し、ヒストグラムを用いた下地処理を行って、プリンタ２６から印刷する処理を想定している。ここで、下地処理とは、画像データにおいてほぼ一様な色濃度をもつ下地部分に対して、色濃度の一様化などを行う処理を言う。複写において発生する裏写り部分の除去も下地処理の一種である。
【００４９】
図７は、画像データ１１０に対し、分割空間としての下地除去用ブロック１１２を設定し、そのブロックについてヒストグラム処理を行った場合の例を模式的に示している。ここでは、画像データ１１０の各画素は、０〜２５５までの濃度をもつ２４ビット（＝２５６×２５６×２５６）のＲＧＢ表色系で表現されていると仮定している。このため、ヒストグラム空間１１４では、Ｒ，Ｇ，Ｂの各座標軸が０〜２５５の大きさに設定されている。各格子に対しては、最大で、画像空間のサイズ（画素数）の度数が与えられる。
【００５０】
ヒストグラム空間１１４に、下地除去用ブロック１１２の各画素の画素値に基づいてヒストグラムを作成した場合、０以外の度数をもつ部分は、群集合１１６のように局所的に分布することが多い。これは、一般の画像データでは、画像空間では、画素の値は位置とともに緩やかに変化する（近傍の画素の値が類似する）ことが多いという特性に基づく。そこで、画像処理装置１０では、群集合１１６のような局所的な座標範囲に対する部分ヒストグラムを設定する。
【００５１】
図８は、下地処理の開始から終了までの全体の流れを示すフローチャートである。下地処理の実行がスタートすると（Ｓ１０）、画像データに下地除去用ブロックが設定され、ブロック毎に順次処理が行われる（Ｓ１２）。処理では、まず、ヒストグラムが生成され（Ｓ１４）、次に、生成されたヒストグラムの読み出しが行われる（Ｓ１６）。そして、読み出し結果を基に、下地と判断された部分の色濃度を一様化するなどの下地処理が行われる（Ｓ１８）。続いて、画像データの全ページで全てのブロックの処理が実施されたか否かが判定され（Ｓ２０）、実施されていない場合にはステップＳ１２からの処理を繰り返し、実施された場合には処理を終了する（Ｓ２２）。
【００５２】
図９は、ヒストグラム生成処理（図８のステップＳ１４）の詳細を説明するフローチャートである。各下地除去用ブロックに対するヒストグラム生成処理が開始されると、アドレス制御部７４の範囲判断部９０に対して、順次、画素値の入力が行われる（Ｓ３０）。範囲判断部９０では、アドレス管理テーブル７６を参照して、「割り当て済範囲内」か否か、すなわち、既に設定された部分ヒストグラムに含まれるか否かを判断する（Ｓ３２）。
【００５３】
図１０は、この判断の例を、Ｃ言語をベースとした抽象的な表現を用いて示した図である。ここでは、入力されたＲ，Ｇ，Ｂの各８ビットの画素値を、ｒｒ，ｇｇ，ｂｂで表現している（このとき、画素値に基づく絶対アドレスは０ｘｒｒｇｇｂｂの形式で表現することができる）。また、図４に示したアドレス管理テーブル７６の各部分ヒストグラムが設定されているものとする。図１０に示した演算では、画素値（ｒｒ，ｇｇ，ｂｂ）が、部分ヒストグラムの画素値の範囲に含まれるか否かを計算することで、どの部分ヒストグラムの割り当て範囲にあるかを求めている。
例えば、「ｒ１−７≦ｒｒ≦ｒ１＋８  ＆＆  ｇ１−７≦ｇｇ≦ｇ１＋８  ＆＆  ｂ１−７≦ｂｂ≦ｂ１＋８」の条件は、ｒｒがｒ１−７〜ｒ１＋８の範囲にあり、かつ、ｇｇがｇ１−７〜ｇ１＋８の範囲にあり、かつ、ｂｂがｂ１−７〜ｂ１＋８の範囲にあること、つまり、画素値（ｒｒ，ｇｇ，ｂｂ）はＮ＝１の部分ヒストグラムに含まれることを表している。
【００５４】
ある部分ヒストグラムの画素値の範囲内であると判断された場合には、相対アドレス生成部１０４が、アドレス管理テーブル７６から読み出された入力画素値や中心画素値等に基づいて相対アドレスを計算する（Ｓ３４）。例えば、アドレス管理テーブル７６の番号Ｎ＝２の部分ヒストグラムの範囲内である場合、入力画素値（ｒｒ，ｇｇ，ｂｂ）、中心画素値＝（ｒ２，ｇ２，ｂ２）、及びオフセット値Ｘ＿ｌｅｎ＊（２−１）＊Ｙ＿ｌｅｎを用いて、相対アドレスは、（（ｒｒ−ｒ２）＋（１６／２−１）＜＜８）｜（（ｇｇ−ｇ２）＋（１６／２−１）＜＜４）｜（（ｂｂ−ｂ２）＋（１６／２−１））＋Ｘ＿ｌｅｎ＊（２−１）＊Ｙ＿ｌｅｎによって求められる。つまり、相対アドレスの演算は、中心画素値と入力画素値との差分を求め、さらにヒストグラム生成メモリ８２におけるオフセット値を加算することで求められる。ヒストグラム生成メモリ８２では、相対アドレスの度数を、増分器８６を利用して１増加させる（Ｓ３６）。以上に説明したステップＳ３０以降の処理は、ブロック内の全ての画素に対する処理が終了するまで続けられる（Ｓ３８）。
【００５５】
ステップＳ３２において、「割り当て済範囲」の範囲外であった場合には、範囲判断部９０によって、新しい範囲のメモリへの割り当て、すなわち、新しい部分ヒストグラムの設定が行われる（Ｓ４０）。この設定にあたっては、新たに設定しようとする部分ヒストグラムと既に設定された部分ヒストグラムとの重複を調べるため、中心画素間の距離が所定値（例えば１６）以上であるか否かが判定される（Ｓ４２）。そして、所定値以上である場合には重複がないと判定され、アドレス管理テーブル７６に「番号」「メモリ範囲」「オフセット値」「中心画素値」「画素値の範囲」を登録し（Ｓ４４）、これにより、ヒストグラム生成メモリ８２に新たな部分ヒストグラムの領域を確保する。
【００５６】
これに対し、中心画素値間の距離が所定値より短く、重複があると判定された場合には、各部分ヒストグラムの中心画素値の距離を所定値以上に変更するような部分ヒストグラムが算出される（Ｓ４６）。図１１は、新しい部分ヒストグラムの中心画素値を決定する処理を説明する図である。新しい部分ヒストグラムは、まず、重複すると判定された部分ヒストグラムの中心座標（ｒｒ，ｇｇ，ｂｂ）と、既設定された部分ヒストグラムの中心座標、例えば（ｒ１，ｇ１，ｂ１）との距離を評価して、新しい部分ヒストグラムの中心画素値を決定している。ただし、このようにして設定された部分ヒストグラムは、既設定された他の部分ヒストグラムと重複してしまうおそれがあるため、改めて他の部分ヒストグラムとの重複の有無を確認する必要がある。こうして求められた新たな部分ヒストグラムは、アドレス管理テーブル７６に登録される（Ｓ４４）。
【００５７】
図１２は、このようにして、新たな部分ヒストグラムが求められる様子を模式的に示す図である。図１２（ａ）は、画像データ１１０の下地除去用ブロック１１２を示す図であり、下地除去用ブロック１１２には、最初の３個の画素１２０，１２２，１２４が図示されている。また、図１２（ｂ），（ｃ），（ｄ），（ｅ）は、ヒストグラム生成メモリ８２に部分ヒストグラムが設定されていく過程を、この順番で示した図である。
【００５８】
ヒストグラム生成過程では、まず、図１２（ｂ）に示すように、最初の画素１２０の画素値を中心とした画素値の範囲をもつ部分ヒストグラム１３０が、メモリ範囲（０，０）〜（６３，６３）に設定されている。続く画素１２２の画素値は、部分ヒストグラム１３０には含まれず、かつ、画素１２２の画素値は、部分ヒストグラム１３０の中心画素値（画素１２０の画素値でもある）とは所定値以上離れていたとする。この場合、図１２（ｃ）に示すように、画素１２２の画素値を中心画素値とする部分ヒストグラム１３２が新たに設定される。
【００５９】
次の画素１２４の画素値は、部分ヒストグラム１３０，１３２の範囲には含まれず、部分ヒストグラム１３０の中心画素値からは所定値以上離れているが、部分ヒストグラム１３２の中心画素値からは所定値よりも近いものとする。この場合、図１２（ｄ）に示すように、画素１２４の画素値を中心画素値とする部分ヒストグラム１３４を設定したのでは、部分ヒストグラム１３２と重複してしまう。そこで、図１２（ｅ）に示すように、部分ヒストグラム１３４の中心画素値からの距離が所定値だけ離れた中心画素値１３６を求め、これを中心とする部分ヒストグラム１３８を設定する。
【００６０】
図１３は、ヒストグラム読み出し処理（図８のステップＳ１６）の詳細を説明するフローチャートである。読み出しにおいては、アドレス制御部７４に対し、絶対アドレス７０としては読み出しアドレスが入力され（Ｓ５０）、「読み出し」有効信号７２としては読み出しを示すＨｉが入力される。範囲判断部９０では、アドレス管理テーブル７６を参照して、部分ヒストグラムとして割り当てられた範囲内か否かを判断する（Ｓ５２）。
【００６１】
図１４は、この判断の例を、Ｃ言語をベースとした抽象的な表現を用いて説明する図である。ここでは、読み出しアドレス０ｘｒｒｇｇｂｂから、Ｒの画素値ｒｒを「ｒｒ＝０ｘｒｒｇｇｂｂ＆０ｘＦＦ００００）＞＞１６」の演算で求め、Ｇの画素値ｇｇを「ｇｇ＝０ｘｒｒｇｇｂｂ＆０ｘＦＦ００）＞＞８」の演算で求め、Ｂの画素値ｂｂを「ｂｂ＝０ｘｒｒｇｇｂｂ＆０ｘＦＦ）」の演算で求める。そして、得られた（ｒｒ，ｇｇ，ｂｂ）の各画素値が、Ｎ＝１の部分ヒストグラムの範囲（ｒ１−７〜ｒ１＋８，ｇ１−７〜ｇ１＋８，ｂ１−７〜ｂ１＋８）にあれば、Ｎ＝１の部分ヒストグラムに含まれ、Ｎ＝２の部分ヒストグラムの範囲（ｒ２−７〜ｒ２＋８，ｇ２−７〜ｇ２＋８，ｂ２−７〜ｂ２＋８）にあれば、Ｎ＝２の部分ヒストグラムに含まれると判断される。
【００６２】
こうして、割り当て範囲内であると判断された場合には、相対アドレス生成部１０４によって、相対アドレスが計算される（Ｓ５４）。例えば、Ｎ＝２の部分ヒストグラムに含まれると判断された場合には、中心画素値（ｒ２，ｇ２，ｂ２）を用いて、１２ビットの相対アドレスは「（（ｒｒ−ｒ２）＋（１６／２−１）＜＜８）｜（（ｇｇ−ｇ２）＋（１６／２−１）＜＜４）｜（（ｂｂ−ｂ２）＋（１６／２−１））＋Ｘ＿ｌｅｎ＊（２−１）＊Ｙ＿ｌｅｎ」のように計算される。つまり、相対アドレスは、各色成分の中心画素からの距離と、中心画素の位置とから求められるアドレスに、内部メモリのオフセット値を加えることで求められる。なお、相対アドレスは、部分ヒストグラム生成時に、アドレス管理テーブル７６に登録しておいてもよい。また、範囲判断部９０は、度数制御信号８０をＬｏに切り替えて、ＳＥＬ８８がヒストグラム生成メモリ８２からの読み出し度数８４を出力するよう制御する（Ｓ５６）。
【００６３】
他方、ステップＳ５２において、いずれの部分ヒストグラムにも含まれないと判断されると、度数制御信号８０はＨｉに切り替えられて、ＳＥＬ８８から「０」の値を出力するよう制御される（Ｓ６０）。続くステップＳ５８では、下地処理に必要な範囲のヒストグラムデータを全て読み出したか否か判断し（Ｓ５８）、読み出していない場合にはステップＳ５０以降の処理を繰り返し、読み出した場合には読み出し処理を終了する。
【００６４】
図１５は、このような下地処理を並列的に処理する態様について説明する図である。ここでは、図７に示した画像データ１１０を、複数の帯状領域１５０，１５２，１５４，．．．に分割し、それぞれにおいて下地除去用ブロック１６０，１６２，１６４，．．．を設定している。そして、リコンフィギュラブル装置１８のリコンフィギュラブル領域４０には、各帯状領域の下地除去用ブロックに対する処理を並列的に行うための回路仕様が再構成され、ヒストグラム生成メモリ１７０，１７２，１７４も各帯状領域別に用意されている。一般に下地除去用ブロックは大きなメモリ容量を必要とするが、部分ヒストグラムを用いる場合には利用するメモリ容量が小さくなる。また、下地除去用ブロックが小さく設定されることにより、ヒストグラムに加算される最大の度数も小さくなる。このため、リコンフィギュラブル領域４０にある複数のＲＡＭエレメントに複数のヒストグラム生成メモリを設定する余裕が生じるのである。
【図面の簡単な説明】
【００６５】
【図１】画像処理装置のハードウエア構成例を説明する図である。
【図２】リコンフィギュラブル装置のハードウエア構成例を説明する図である。
【図３】リコンフィギュラブル領域に構築された回路仕様の例を説明する図である。
【図４】アドレス管理テーブルの例を説明する図である。
【図５】ヒストグラム生成メモリに対する部分ヒストグラムの設定例を示す図である。
【図６】アドレス制御部の構成例を説明する図である。
【図７】下地処理におけるヒストグラムの設定例を説明する図である。
【図８】下地処理の流れを示すフローチャートである。
【図９】ヒストグラムの生成過程を示すフローチャートである。
【図１０】画素値が部分ヒストグラムに含まれるか否かの判断例を示す図である。
【図１１】設定する部分ヒストグラムの中心画素値を求める例を示す図である。
【図１２】設定する部分ヒストグラムの中心画素値の変更例を示す図である。
【図１３】生成したヒストグラムから度数を読み出す例を示すフローチャートである。
【図１４】読み出しアドレスが部分ヒストグラムに含まれるか否かの判断例を示す図である。
【図１５】下地処理を並列処理する例を示す図である。
【符号の説明】
【００６６】
１０  画像処理装置、１２，６２  バス、１４  ＣＰＵ、１６  メモリ、１８  リコンフィギュラブル装置、２０  ＣＤＤ、２２  ＵＩ、２４  スキャナ、２６  プリンタ、２８  ネットワークインタフェース、３０  ネットワーク、４０  リコンフィギュラブル領域、４２，４４，４６  ＡＬＵエレメント、５０，５２，５４  ＲＡＭエレメント、６０  コンフィグメモリ、６４  制御部、６６  メモリ、６８  インタフェース、７０  絶対アドレス、７２  「読み出し」有効信号、７４  アドレス制御部、７６  アドレス管理テーブル、７８  相対アドレス、８０  度数制御信号、８２，１７０，１７２，１７４  ヒストグラム生成メモリ、８４  度数、８６  増分器、８８  ＳＥＬ、９０  範囲判断部、１０４  相対アドレス生成部、１１０  画像データ、１１２，１６０，１６２，１６４  下地除去用ブロック、１１４  ヒストグラム空間、１１６  群集合、１２０，１２２，１２４  画素、１３０，１３２，１３４，１３８  部分ヒストグラム、１５０，１５２，１５４  帯状領域。
【図１】
0004760819.tif 000002
【図２】
0004760819.tif 000003
【図３】
0004760819.tif 000004
【図４】
0004760819.tif 000005
【図５】
0004760819.tif 000006
【図６】
0004760819.tif 000007
【図７】
0004760819.tif 000008
【図８】
0004760819.tif 000009
【図９】
0004760819.tif 000010
【図１０】
0004760819.tif 000011
【図１１】
0004760819.tif 000012
【図１２】
0004760819.tif 000013
【図１３】
0004760819.tif 000014
【図１４】
0004760819.tif 000015
【図１５】
0004760819.tif 000016