(57)【要約】【課題】画像データの特徴量の検出に必要な処理を短縮化する。【解決手段】メモリ１０１に記憶された画像データから４画素ずつを読み出し、これらの画素の色データを画素比較回路１０２にて比較する。その比較結果に応じて、フラグ設定回路１０３〜１０５にて各画素にフラグを設定する。フラグ判定回路１０６〜１０８では、前記フラグに基づいて同じ色データを有する画素を除いたものを処理対象として比較回路１０９〜１１２に与える。比較回路１０９〜１１２では、入力色格納レジスタ１１３を用いて色数の検出を行う。これにより、全ての画素を１つ１つ処理するよりも処理時間を短縮できる。【選択図】      図３
2010081346.tif 000002
【特許請求の範囲】
【請求項１】
画像データを記憶する画像記憶手段と、
この画像記憶手段に記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較手段と、
この画素比較手段の比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定手段と、
このフラグ設定手段によって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出手段と、
この処理対象選出手段によって選出された画素に基づいて、前記画像データの特徴量の検出に必要な処理を実行する処理実行手段と
を具備したことを特徴とする画像処理装置。
【請求項２】
画像データを記憶する画像記憶手段と、
この画像記憶手段に記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較手段と、
この画素比較手段の比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定手段と、
このフラグ設定手段によって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出手段と、
画素の色データを格納するデータ格納手段と、
前記処理対象選出手段によって選出された画素の色データを前記データ格納手段に格納された色データと比較し、異なる場合に当該画素の色データを新規の色データとして前記データ格納手段に格納する比較手段と、
この比較手段によって前記データ格納手段に格納された色データの数を当該画像データの色数として計数する計数手段と
を具備したことを特徴とする画像処理装置。
【請求項３】
画像データを記憶する画像記憶手段と、
この画像記憶手段に記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較手段と、
この画素比較手段の比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定手段と、
前記各画素の中で同じ色データを有する画素が存在した場合の数を設定する同時入力色設定手段と、
前記フラグ設定手段によって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出手段と、
この処理対象選出手段によって選出された画素の色データをＲＧＢの各色成分に分解するＲＧＢ分解手段と、
ＲＧＢの各色成分毎に、それぞれの色成分の値に対応した使用数を格納する複数のデータ格納手段と、
前記ＲＧＢ分解手段によって分解されたＲＧＢの各色成分の値に基づいて、前記各データ格納手段の中の該当する使用数を前記同時入力色設定手段によって設定された数を加味して計数する計数手段と
を具備したことを特徴とする画像処理装置。
【請求項４】
画像データを記憶する画像記憶手段と、
この画像記憶手段に記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較手段と、
この画素比較手段の比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定手段と、
前記各画素の中で同じ色データを有する画素が存在した場合の数を設定する同時入力色設定手段と、
前記フラグ設定手段によって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出手段と、
この処理対象選出手段によって選出された画素の色データをＲＧＢの各色成分に分解するＲＧＢ分解手段と、
このＲＧＢ分解手段によって分解されたＲＧＢの各色成分の値に基づいて、色相・彩度・明度の各色成分の値を演算する演算手段と、
色相・彩度・明度の各色成分毎に、それぞれの色成分の値に対応した使用数を格納する複数のデータ格納手段と、
前記演算手段によって得られた色相・彩度・明度の各色成分の値に基づいて、前記各データ格納手段の中の該当する使用数を前記同時入力色設定手段によって設定された数を加味して計数する計数手段と
を具備したことを特徴とする画像処理装置。
【請求項５】
前記画素比較手段によって読み出す画素の数は、少なくとも２つ以上であることを特徴とする請求項１乃至４のいずれか１つに記載の画像処理装置。
【請求項６】
画像データを記憶するメモリを備えたコンピュータに用いられる画像処理方法であって、
前記メモリに記憶された画像データから所定数の画素を順に読み出し、これらの画素の値を比較する画素比較ステップと、
この画素比較ステップの比較結果に応じて、前記各画素毎に他の画素と同じ値があるか否かを示すフラグを設定するフラグ設定ステップと、
このフラグ設定ステップによって設定されたフラグに基づいて、前記各画素の中で同じ値を持たない画素を処理対象として選出する処理対象選出ステップと、
この処理対象選出ステップによって選出された画素について、前記画像データの特徴量を検出するための処理を実行する処理実行ステップと
を有することを特徴とする画像処理方法。
【請求項７】
画像データを記憶するメモリと、画素の色データを格納するレジスタとを備えたコンピュータに用いられる画像処理方法であって、
前記メモリに記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較ステップと、
この画素比較ステップの比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定ステップと、
このフラグ設定ステップによって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出ステップと、
前記処理対象選出ステップによって選出された画素の色データを前記レジスタに格納された色データと比較し、異なる場合に当該画素の色データを新規の色データとして前記レジスタに格納する比較ステップと、
この比較ステップによって前記レジスタに格納された色データの数を当該画像データの色数として計数する計数ステップと
を有することを特徴とする画像処理方法。
【請求項８】
画像データを記憶するメモリと、ＲＧＢの各色成分毎に、それぞれの色成分の値に対応した使用数を格納する複数のレジスタとを備えたコンピュータに用いられる画像処理方法であって、
前記メモリに記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較ステップと、
この画素比較ステップの比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定ステップと、
前記各画素の中で同じ色データを有する画素が存在した場合の数を設定する同時入力色設定ステップと、
前記フラグ設定ステップによって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出ステップと、
この処理対象選出ステップによって選出された画素の色データをＲＧＢの各色成分に分解するＲＧＢ分解ステップと、
前記ＲＧＢ分解ステップによって分解されたＲＧＢの各色成分の値に基づいて、前記各レジスタの中の該当する使用数を前記同時入力色設定ステップによって設定された数を加味して計数する計数ステップと
を有することを特徴とする画像処理方法。
【請求項９】
画像データを記憶するメモリと、色相・彩度・明度の各色成分毎に、それぞれの色成分の値に対応した使用数を格納する複数のレジスタとを備えたコンピュータに用いられる画像処理方法であって、
前記メモリに記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較ステップと、
この画素比較ステップの比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定ステップと、
前記各画素の中で同じ色データを有する画素が存在した場合の数を設定する同時入力色設定ステップと、
前記フラグ設定ステップによって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出ステップと、
この処理対象選出ステップによって選出された画素の色データをＲＧＢの各色成分に分解するＲＧＢ分解ステップと、
このＲＧＢ分解ステップによって分解されたＲＧＢの各色成分の値に基づいて、色相・彩度・明度の各色成分の値を演算する演算ステップと、
前記演算ステップによって得られた色相・彩度・明度の各色成分の値に基づいて、前記各レジスタの中の該当する使用数を前記同時入力色設定ステップによって設定された数を加味して計数する計数ステップと
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＰＣ(personal computer)において、画像データの色数等を検出する場合に用いて好適な画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
画像処理を行う場合に、その処理対象となる画像データの色数を検出することがある。例えば、画像データの色数に応じて圧縮処理を行う場合などである。また、シンクライアントシステムにおいて、サーバ装置からクライアント装置に対して画像データを転送する際にも必要となる。
【０００３】
シンクライアントシステムとは、「サーバベースコンピューティング（ＳＢＣ：Server Based Computing）システム」とも呼ばれ、サーバ装置とクライアント装置がＬＡＮ(Local Area Network)等のネットワークを介して接続されたネットワークシステムにおいて、クライアント装置にて入出力・表示される全てのアプリケーションプログラムをサーバ装置上で動作させるようにしたものである。
【０００４】
このようなシンクライアントシステムでは、クライアント装置の操作入力に応じてサーバ装置側で処理更新される表示用の画像データが該サーバ装置からその画像更新の都度クライアント装置へと転送されて表示される。このため、サーバ装置では、ネットワーク上の複数のクライアント装置からの操作入力に応じた各処理を支障なく行うために、画像データの転送を如何に効率良く行うかかが重要になってくる。
【０００５】
そこで、サーバ装置からクライアント装置へ画像データを転送する際に、前回の画像データに対して今回の画像データの変化部分を抽出すると共に、未変化部分の全ての画素データを透過色として一律に設定して転送することが考えられている。
【０００６】
画像データの未変化部分の全ての画素データを透過色として一律に設定するとは、当該画像データで使用されている色以外の未使用色を設定することである。サーバ装置から転送する画像データに透過色（未使用色）が何色あるのかを示す情報を付加しておくことで、クライアント装置では当該透過色に設定された画像部分の書き替え処理を省略することができる。
【０００７】
ここで、画像データの色数を検出する場合に、通常、その画像データを構成する各画素の１つ１つを読み出し、これらの画素の色データを個々に比較しながら、積分器を用いて各色データ毎にカウントしていくといった方法が一般的である（例えば、特許文献１参照）。
【特許文献１】特開２００１−３５２５５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のように画像データの各画素の１つ１つの色データを個々に比較する方法では、全ての画素をチェックするまでに時間を要する。特に、画像データのサイズが大きいと、その分だけ全ての画素の処理を完了するまで時間がかかり、例えばシンクライアントシステムにおいて、サーバ装置からクライアント装置へ表示用の画像データを転送するような場合に遅れが生じてしまうなどの問題がある。
【０００９】
本発明は前記のような点に鑑みなされたもので、画像データの特徴量の検出に必要な処理を短縮化することのできる画像処理装置及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の請求項１に係る画像処理装置は、画像データを記憶する画像記憶手段と、この画像記憶手段に記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較手段と、この画素比較手段の比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定手段と、このフラグ設定手段によって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出手段と、この処理対象選出手段によって選出された画素に基づいて、前記画像データの特徴量の検出に必要な処理を実行する処理実行手段とを具備したことを特徴とする。
【００１１】
本発明の請求項２に係る画像処理装置は、画像データを記憶する画像記憶手段と、この画像記憶手段に記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較手段と、この画素比較手段の比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定手段と、このフラグ設定手段によって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出手段と、画素の色データを格納するデータ格納手段と、前記処理対象選出手段によって選出された画素の色データを前記データ格納手段に格納された色データと比較し、異なる場合に当該画素の色データを新規の色データとして前記データ格納手段に格納する比較手段と、この比較手段によって前記データ格納手段に格納された色データの数を当該画像データの色数として計数する計数手段とを具備したことを特徴とする。
【００１２】
本発明の請求項３に係る画像処理装置は、画像データを記憶する画像記憶手段と、この画像記憶手段に記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較手段と、この画素比較手段の比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定手段と、前記各画素の中で同じ色データを有する画素が存在した場合の数を設定する同時入力色設定手段と、前記フラグ設定手段によって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出手段と、この処理対象選出手段によって選出された画素の色データをＲＧＢの各色成分に分解するＲＧＢ分解手段と、ＲＧＢの各色成分毎に、それぞれの色成分の値に対応した使用数を格納する複数のデータ格納手段と、前記ＲＧＢ分解手段によって分解されたＲＧＢの各色成分の値に基づいて、前記各データ格納手段の中の該当する使用数を前記同時入力色設定手段によって設定された数を加味して計数する計数手段とを具備したことを特徴とする。
【００１３】
本発明の請求項４に係る画像処理装置は、画像データを記憶する画像記憶手段と、この画像記憶手段に記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較手段と、この画素比較手段の比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定手段と、前記各画素の中で同じ色データを有する画素が存在した場合の数を設定する同時入力色設定手段と、前記フラグ設定手段によって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出手段と、この処理対象選出手段によって選出された画素の色データをＲＧＢの各色成分に分解するＲＧＢ分解手段と、このＲＧＢ分解手段によって分解されたＲＧＢの各色成分の値に基づいて、色相・彩度・明度の各色成分の値を演算する演算手段と、色相・彩度・明度の各色成分毎に、それぞれの色成分の値に対応した使用数を格納する複数のデータ格納手段と、前記演算手段によって得られた色相・彩度・明度の各色成分の値に基づいて、前記各データ格納手段の中の該当する使用数を前記同時入力色設定手段によって設定された数を加味して計数する計数手段とを具備したことを特徴とする。
【００１４】
また、本発明の請求項５は、前記請求項１乃至４のいずれか１つに記載の画像処理装置において、前記画素比較手段によって前記画像データから読み出す画素の数は、少なくとも２つ以上であることを特徴とする。
【００１５】
本発明の請求項６に係る画像処理方法は、画像データを記憶するメモリを備えたコンピュータに用いられる画像処理方法であって、前記メモリに記憶された画像データから所定数の画素を順に読み出し、これらの画素の値を比較する画素比較ステップと、この画素比較ステップの比較結果に応じて、前記各画素毎に他の画素と同じ値があるか否かを示すフラグを設定するフラグ設定ステップと、このフラグ設定ステップによって設定されたフラグに基づいて、前記各画素の中で同じ値を持たない画素を処理対象として選出する処理対象選出ステップと、この処理対象選出ステップによって選出された画素について、前記画像データの特徴量を検出するための処理を実行する処理実行ステップとを有することを特徴とする。
【００１６】
本発明の請求項７に係る画像処理方法は、画像データを記憶するメモリと、画素の色データを格納するレジスタとを備えたコンピュータに用いられる画像処理方法であって、前記メモリに記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較ステップと、この画素比較ステップの比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定ステップと、このフラグ設定ステップによって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出ステップと、前記処理対象選出ステップによって選出された画素の色データを前記レジスタに格納された色データと比較し、異なる場合に当該画素の色データを新規の色データとして前記レジスタに格納する比較ステップと、この比較ステップによって前記レジスタに格納された色データの数を当該画像データの色数として計数する計数ステップとを有することを特徴とする。
【００１７】
本発明の請求項８に係る画像処理方法は、画像データを記憶するメモリと、ＲＧＢの各色成分毎に、それぞれの色成分の値に対応した使用数を格納する複数のレジスタとを備えたコンピュータに用いられる画像処理方法であって、前記メモリに記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較ステップと、この画素比較ステップの比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定ステップと、前記各画素の中で同じ色データを有する画素が存在した場合の数を設定する同時入力色設定ステップと、前記フラグ設定ステップによって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出ステップと、この処理対象選出ステップによって選出された画素の色データをＲＧＢの各色成分に分解するＲＧＢ分解ステップと、前記ＲＧＢ分解ステップによって分解されたＲＧＢの各色成分の値に基づいて、前記各レジスタの中の該当する使用数を前記同時入力色設定ステップによって設定された数を加味して計数する計数ステップとを有することを特徴とする。
【００１８】
本発明の請求項９に係る画像処理方法は、画像データを記憶するメモリと、色相・彩度・明度の各色成分毎に、それぞれの色成分の値に対応した使用数を格納する複数のレジスタとを備えたコンピュータに用いられる画像処理方法であって、前記メモリに記憶された画像データから所定数の画素を順に読み出し、これらの画素の色データを比較する画素比較ステップと、この画素比較ステップの比較結果に応じて、前記各画素毎に他の画素と同じ色データがあるか否かを示すフラグを設定するフラグ設定ステップと、前記各画素の中で同じ色データを有する画素が存在した場合の数を設定する同時入力色設定ステップと、前記フラグ設定ステップによって設定されたフラグに基づいて、前記各画素の中で同じ色データを持たない画素を処理対象として選出する処理対象選出ステップと、この処理対象選出ステップによって選出された画素の色データをＲＧＢの各色成分に分解するＲＧＢ分解ステップと、このＲＧＢ分解ステップによって分解されたＲＧＢの各色成分の値に基づいて、色相・彩度・明度の各色成分の値を演算する演算ステップと、前記演算ステップによって得られた色相・彩度・明度の各色成分の値に基づいて、前記各レジスタの中の該当する使用数を前記同時入力色設定ステップによって設定された数を加味して計数する計数ステップとを有することを特徴とする。
【発明の効果】
【００１９】
本発明によれば、所定数の画素を比較し、同じ色データを有するものを除外してから画像データの特徴量の検出に必要な処理を行うようにしたため、全ての画素を１つ１つ処理しいく場合に比べて処理時間を短縮化することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の実施形態を説明する。
【００２１】
（第１の実施形態）
図１は本発明の第１の実施形態に係る画像処理装置をコンピュータ装置１０に適用した場合の回路構成を示すブロック図である。
【００２２】
本実施形態におけるコンピュータ装置１０は、例えばシンクライアントシステムにおけるサーバ装置として使用されるものである。このコンピュータ装置１０は、装置全体の制御を行うＣＰＵ１１を備える。ＣＰＵ１１には、システムバス１２を介してＲＯＭ１３、ＲＡＭ１４、入力装置１５、表示装置１６、通信Ｉ／Ｆ（インターフェイス）１７、外部記憶装置１８、画像処理ボード１９、媒体読取り装置２０が接続される。
【００２３】
ＣＰＵ２１は、ＲＯＭ１３に予め記憶されているプログラム、あるいは、外部記録媒体２０ａから媒体読取り装置２０を介して読み取られたプログラム、あるいは、ネットワークを介して外部のサーバから提供されたプログラムを読み込み、そのプログラムに記述された手順に従って各種処理を実行する。
【００２４】
ＲＯＭ１３には、ＣＰＵ１１を起動するためのプログラムを含む各種データが予め記憶されている。ＲＡＭ１４は、ＣＰＵ１１の作業領域として用いられ、ＣＰＵ１１の動作に必要な各種データを記憶する。
【００２５】
また、このＲＡＭ１４には、アプリケーションプログラムの起動に伴い、図示せぬクライアント装置からの入力イベントに応じて生成される表示用の画像データをフレーム単位で記憶するためのクライアント用フレームバッファとして、３つのフレームバッファ１４ａ，１４ｂ，１４ｃが設けられている。なお、これらのフレームバッファ１４ａ，１４ｂ，１４ｃについては図２を参照して後述する。
【００２６】
入力装置１５は、例えばキーボード、マウスなどの入力デバイスからなり、オペレータが各種データの入力や指示を行う場合に用いられる。表示装置１６は、各種データを表示するものであり、例えばＣＲＴ（Cathode-ray tube）やＬＣＤ（Liquid Crystal Display）などからなる。
【００２７】
通信Ｉ／Ｆ１７は、ネットワークを介して接続されたクライアント装置との間のデータの送受信処理を行う。画像処理ボード１９は、クライアント装置に転送する表示用の画像データに対する様々な画像処理を行う部分であり、本発明の画像処理装置に相当する。この画像処理ボード１９は、画像データの特徴量の検出に必要な処理を実行する。
【００２８】
ここで、画像データの特徴量の検出に必要な処理とは、具体的には、後述する「色数の検出処理」、「ＲＧＢのヒストグラム検出処理」、「色相・彩度・明度のヒストグラム検出処理」である。
【００２９】
外部記憶装置１８は、各データの保存記憶用として用いられる。媒体読取り装置２０は、外部記録媒体２０ａに記録されたデータを読み取る。外部記録媒体２０ａとしては、例えば磁気ディスク、光ディスク、フレシキブルディスク、メモリカードなどがある。
【００３０】
このような構成において、ＣＰＵ１１は、ＲＯＭ１３に予め記憶されたシステムプログラムやアプリケーションプログラムに従ってＲＡＭ１４を作業用メモリとして回路各部の動作を制御し、入力装置１５からのキー入力や通信Ｉ／Ｆ１７を介して受信される入力イベントに応じた処理を実行する。
【００３１】
このコンピュータ装置（サーバ装置）１０において、図示せぬクライアント装置からの入力イベントに応じて生成された様々なデータは外部記憶装置１８に記憶され、また、表示用の画像データはＲＡＭ１４に設けられたフレームバッファ１４ａ，１４ｂ，１４ｃを使用して生成され、画像処理ボード１９により所定の方式で圧縮処理されて通信Ｉ／Ｆ１７を介してクライアント装置に転送される。
【００３２】
図２はコンピュータ装置１０に備えられた画像処理ボード１９にて行われる表示用画像データの生成処理を説明するための図である。
【００３３】
ＲＡＭ１３には、表示用画像データを記憶するためのフレームバッファとして、今回の表示更新で生成された変化後の画像データＧ′を記憶するためのフレームバッファ１４ｂ、この今回画像（Ｇ′）の生成によって前回画像となった変化前の画像データＧを記憶するためのフレームバッファ１４ａ、そして、フレームバッファ１４ｂに記憶された画像データＧ′を転送用の画像データとして処理した画像データＧｈｎを記憶するためのフレームバッファ１４ｃが設けられる。
【００３４】
すなわち、画像処理ボード１９は、図２（ａ）に示すように、ＲＡＭ１３内のフレームバッファ１４ａから読み出された前回（変化前）の表示用画像データＧと、同図（ｂ）に示すように、フレームバッファ１４ｂから読み出された今回（変化後）の表示用画像データＧ′とを比較し、今回（変化後）の表示用画像データＧ′における画像の変化部分ｈを抽出する。
【００３５】
また、画像処理ボード１９は、今回（変化後）の表示用画像データＧ′の中で未使用の色データｎを検出する。そして、同図（ｃ）に示すように、今回（変化後）の表示用画像データＧ′における画像の変化部分ｈをそのままに、それ以外の未変化部分の全画素データを前記未使用の色データ（透過色）ｎに置換した転送用の画像データＧｈｎを生成する。この転送用の画像データＧｈｎには、所定の圧縮処理が施された後、前記未使用の色データ（透過色）ｎおよび圧縮方式の情報が付加されて通信Ｉ／Ｆ１７からクライアント装置へ転送される。
【００３６】
以下に、画像データの特徴量の検出に必要な処理として、「色数の検出処理」を行う場合を想定して、画像処理ボード１９の具体的な構成とその処理動作について詳しく説明する。
【００３７】
図３は本発明の第１の実施形態におけるコンピュータ装置１０に備えられた画像処理ボード１９の回路構成を示すブロック図であり、画像データの色数を検出するための回路構成が示されている。
【００３８】
第１の実施形態において、この画像処理ボード１９には、コントローラ１００とメモリ１０１が設けられている。コントローラ１００は、ＣＰＵ１１からの指示に従って画像処理ボード１９内の各回路部の動作を制御し、画像データの色数検出処理を実行する。メモリ１０１は、処理対象となる画像データを記憶する。なお、このメモリ１０１として、図１のＲＡＭ１４を利用することでも良い。
【００３９】
また、この画像処理ボード１９には、画像データの色数検出処理に関わる構成要素として、画素比較回路１０２、フラグ設定回路１０３〜１０５、フラグレジスタ１１６、フラグ判定回路１０６〜１０８、比較回路１０９〜１１２、入力色格納レジスタ１１３、カウンタ１１４、色数レジスタ１１５が設けられている。
【００４０】
画素比較回路１０２は、メモリ１０１に記憶された画像データから所定数の画素を順次読み出し、これらの画素間で色データを比較する。なお、色データとは、ここではＲＧＢのことであり、例えば各色毎に８ビットのデータで構成される。
【００４１】
図４に画素比較回路１０２の詳細な構成を示す。  
今、比較対象とする４画素をＡ〜Ｄとする。画素比較回路１０２は、画素Ａ〜Ｄを格納するためのバッファ１０２ａ〜１０２ｄと、このバッファ１０２ａ〜１０２ｄに格納された画素Ａ〜Ｄの色データを比較するための比較回路１０２ｅ〜１０２ｊとからなる。
【００４２】
比較回路１０２ｅはＡ画素とＢ画素の色データを比較し、比較回路１０２ｆはＡ画素とＣ画素の色データを比較し、比較回路１０２ｇはＡ画素とＤ画素の色データを比較する。比較回路１０２ｈはＢ画素とＣ画素の色データを比較し、比較回路１０２ｉはＢ画素とＤ画素の色データを比較する。比較回路１０２ｊはＣ画素とＤ画素の色データを比較する。
【００４３】
Ａフラグ設定回路１０３は、画素比較回路１０２の比較結果に基づいて、画素Ａに対応したフラグをフラグレジスタ１１６に設定する。この場合、画素比較回路１０２に同時に入力された他の画素と異なる色データを持つ場合にフラグ“１”が設定される。
【００４４】
同様に、Ｂフラグ設定回路１０４は、画素比較回路１０２の比較結果に基づいて、画素Ｂに対応したフラグをフラグレジスタ１１６に設定する。Ｃフラグ設定回路１０５は、画素比較回路１０２の比較結果に基づいて、画素Ｃに対応したフラグをフラグレジスタ１１６に設定する。なお、後述するように、画素Ｄについては、常にフラグ“１”として扱う（図６〜８参照）。
【００４５】
また、図３において、フラグレジスタ１１６は、画素Ａ〜Ｄに対応したフラグを格納する。このフラグは、画素比較回路１０２による画素間の色データの比較結果を示す情報であり、１ビットからなり、“１”のとき「同一色なし」、“０”のとき「同一色あり」を示す。フラグ判定回路１０６〜１０８は、フラグレジスタ１１６に設定された画素Ａ〜Ｄに対応したフラグの値（“１”か“０”）を判定する。
【００４６】
Ａ比較回路１０９は、Ａフラグ判定回路１０６によって画素Ａのフラグが“１”の場合、つまり、同時に入力された他の画素と色データが異なる場合にのみ、その画素Ａの色データを既に入力された画素の色データと比較する。
【００４７】
Ｂ比較回路１１０とＣ比較回路１１１についても同様である。すなわち、Ｂ比較回路１１０は、Ｂフラグ判定回路１０７によって画素Ｂのフラグが“１”の場合、つまり、同時に入力された他の画素と色データが異なる場合にのみ、その画素Ｂの色データを既に入力された画素の色データと比較する。Ｃ比較回路１１１は、Ｃフラグ判定回路１０８によって画素Ｃのフラグが“１”の場合、つまり、同時に入力された他の画素と色データが異なる場合にのみ、その画素Ｃの色データを既に入力された画素の色データと比較する。
【００４８】
また、画素Ｄのフラグは常に“１”であるので、Ｄ比較回路１１２については、常に既に入力された画素の色データとの比較を行うように構成されている。
【００４９】
入力色格納レジスタ１１３は、比較回路１０９〜１１２に基づいて各画素の色データを格納する。カウンタ１１４は、入力色格納レジスタ１１３に格納された色データの数をカウントする。色数レジスタ１１５は、カウンタ１１４によってカウントされた数を当該画像データの色数として格納する。
【００５０】
次に、第１の実施形態の動作について説明する。  
図５は第１の実施形態における画像処理ボード１９の色数検出処理の流れを示すフローチャートである。なお、このフローチャートで示される処理は、画像処理ボード１９に備えられたコントローラ１００によって実行される。
【００５１】
まず、コントローラ１００は、フラグレジスタ１１６の画素Ａ〜Ｄに対応したフラグの値をすべて“１”に初期化しておく（ステップＳ１００）。
【００５２】
次に、コントローラ１００は、画素比較回路１０２を起動し、メモリ１０１に記憶された画像データから所定数（ここでは４つ）の画素を読み出し、これらの画素間で色データの比較を行う（ステップＳ１０１）。そして、コントローラ１００は、フラグ設定回路１０３〜１０５を起動し、画素比較回路１０２の比較結果に応じて、色データの値が一致した画素のフラグを“１”から“０”に設定する（ステップＳ１０２）。
【００５３】
この様子を図６乃至図８に示す。  
図６は画素比較回路１０２の画素比較動作を示す図、図７はフラグ設定回路１０３〜１０５のフラグ設定動作、図８はフラグ設定結果を示す図である。
【００５４】
比較対象とする４つの画素をそれぞれＡ，Ｂ，Ｃ，Ｄとしたとき、画素比較回路１０２によって、画素ＡとＢ画素、画素Ａと画素Ｃ、画素Ａと画素Ｄを比較し、その中のいずれかの画素間で色データの値が一致した場合に、Ａフラグ設定回路１０３によってＡフラグ（画素Ａに対応したフラグ）の値を“０”にする。つまり、画素Ａが画素Ｂ，Ｃ，Ｄのいずれかと同じ色を有する場合に、Ａフラグが“０”にセットされることになる。
【００５５】
同様にして、画素Ｂと画素Ｃ、画素Ｂと画素Ｄを比較し、その中のいずれかの画素間で色データの値が一致した場合に、Ｂフラグ設定回路１０４によってＢフラグ（画素Ｂに対応したフラグ）の値を“０”にする。つまり、画素Ｂが画素Ｃ，Ｄのいずれかと同じ色を有する場合に、Ｂフラグが“０”がセットされることになる。
【００５６】
また、画素Ｃと画素Ｄを比較し、その画素間で色データの値が一致した場合に、Ｃフラグ設定回路１０５によってＣフラグ（画素Ｃに対応したフラグ）の値を“０”にする。つまり、画素Ｃが画素Ｄと同じ色を有する場合に、Ｃフラグが“０”がセットされることになる。
【００５７】
なお、Ｄフラグ（画素Ｄに対応したフラグ）の値は常に“１”である。例えば、４画素とも同じ色であれば、フラグレジスタ１１６の値は「１０００」となる。また、４画素とも異なる色であれば、フラグレジスタ１１６の値は「１１１１」となる。図８の例の「１０１１」は、少なくとも画素Ｃについては、Ａ，Ｂ，Ｄの中のいずれかの画素と同じ色データを有することを示す。
【００５８】
図５の説明に戻って、フラグレジスタ１１６に各画素のフラグが設定されると、コントローラ１００は、フラグ判定回路１０６〜１０８を起動して（ステップＳ１０３）、フラグの値が“０”である“１”であるかを判定する（ステップＳ１０４）。
【００５９】
この場合、フラグが“０”になった画素については（ステップＳ１０４のＮＯ）、画素比較回路１０２に同時に入力された画素の中に同じ色データを持つ画素があるということなので、比較処理を行う必要がない。したがって、コントローラ１００は、フラグが“１”の画素についてのみ処理対象として選出し（ステップＳ１０４ａ）、比較回路１０９〜１１２を起動して、当該画素の色データの値と入力色格納レジスタ１１３に既にセットされている色データの値とを比較し、以前に入力された画素の色データと一致しなければ、その色データを新規の色データとして入力色格納レジスタ１１３にセットする（ステップＳ１０５）。
【００６０】
なお、画素Ｄのフラグは常に“１”であるので、Ｄ比較回路１１２では、常に入力色格納レジスタ１１３との比較を行うことになる。
【００６１】
この様子を図９に示す。  
図９は比較回路１０９〜１１２による入力色の比較処理を示す図である。例えば、フラグレジスタ１１６の値が「１０１１」であった場合、画素Ｃについては、画素Ａ、画素Ｂ、画素Ｄのいずれかと同じ色データを有するので、比較処理は行わない。つまり、この例では、画素Ｃを除く、画素Ａ、画素Ｂ、画素Ｄが処理対象となる。
【００６２】
まず、画素Ａについて、入力色格納レジスタ１１３に既にセットされている色データの値と比較する。一致する場合には、その色データは既に存在しているので、画素Ｂについて比較処理を行う。一致しない場合には、新規の色データということになるので、その色データを入力色格納レジスタ１１３にセットする。画素Ｂ、画素Ｄについても同様である。
【００６３】
なお、同時に入力された各画素の色データが全て同じ値であった場合には、画素Ｄのみを比較することになる。
【００６４】
図５の説明に戻って、入力色格納レジスタ１１３に新規の色データがセットされると、コントローラ１００は、カウンタ１１４を＋１カウントアップする（ステップＳ１０６）。
【００６５】
以後、画像データから４画素ずつ順次読み出し、前記同様の処理を繰り返し行う。全画素の処理が終了すると（ステップＳ１０７のＹＥＳ）、コントローラ１００は、カウンタ１１４の値を当該画像データの色数として色数レジスタ１１５にセットし（ステップＳ１０８）、ここでの処理を終了する。
【００６６】
色数レジスタ１１５にセットされた色数は、例えば画像データの圧縮処理の判断に用いられる。すなわち、コンピュータ装置１０では、クライアント装置に転送する画像データの色数が所定数より多い場合に当該画像データを圧縮してから転送する。
【００６７】
このように、第１の実施形態によれば、画像データの色数を検出する場合において、４画素単位で色データを比較し、同じ色データを持つ画素を除外してから色数の検出処理を行うようにしたことで、全ての画素の色データを１つ１つ調べていく場合に比べ、処理時間を大幅に短縮することができる。
【００６８】
図１０に本発明の手法と従来の手法とを比較して示す。  
図１０（ａ）が本発明の手法、同図（ｂ）が従来の手法である。Ａ〜Ｄの４つの画素に着目した場合に、本発明の手法では、（１）画素Ａ〜Ｄ間で色を比較、（２）既に格納済みの色と比較、（３）色格納の３ステージで完了する。これに対し、従来の手法では、（１）画素Ａの色を他の各画素の色と比較、（２）画素Ａの比較結果を格納、（３）画素Ｂの色を他の各画素の色と比較、（４）画素Ｂの比較結果を格納…といったように８ステージの処理が必要となる。
【００６９】
これにより、例えばシンクライアントシステムにおいて、コンピュータ装置１０（サーバ装置）からクライアント装置に表示用の画像データを転送する際に、その画像データの色数に応じた処理を施してから送る場合でも時間をかけずに効率的に処理して速やかに送ることが可能となる。
【００７０】
さらに、処理時間の短縮化に伴い、消費電力を低減できるといった効果もある。
【００７１】
なお、前記第１の実施形態では、Ａ〜Ｄの各画素の中で常にフラグを“１”として比較処理を行う画素をＤに固定したが、他の画素であっても良い。
【００７２】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
【００７３】
前記第１の実施形態では、画像データの特徴量の検出に必要な処理として、「色数の検出処理」を行う場合を例にして説明したが、同様の手法にて、「ＲＧＢのヒストグラム検出処理」を行うことも可能である。
【００７４】
図１１は本発明の第２の実施形態におけるコンピュータ装置１０に備えられた画像処理ボード１９の回路構成を示すブロック図であり、画像データのＲＧＢヒストグラムを検出するための回路構成が示されている。なお、前記第１の実施形態における図３と同じ部分には同一符号を付して、その説明を省略するものとする。
【００７５】
第２の実施形態において、画像処理ボード１９には、コントローラ１００、メモリ１０１、画素比較回路１０２、フラグ設定回路１０３〜１０５、フラグレジスタ１１６、フラグ判定回路１０６〜１０８が設けられている。
【００７６】
さらに、この画像処理ボード１９には、画像データのＲＧＢヒストグラム検出処理に関わる構成要素として、同時入力色レジスタ２００、ＲＧＢ分解回路２０１〜２０４、Ｒレジスタ２０５、Ｇレジスタ２０６、Ｂレジスタ２０７、カウンタ２０８〜２１０が設けられている。
【００７７】
同時入力色レジスタ２００は、画素Ａに対応したレジスタＡ、画素Ｂに対応したレジスタＢ、画素Ｃに対応したレジスタＣからなり、画素比較回路１０２に同時に入力された各画素の中で同じ色を有することを示す情報（ここでは数値「１」）を格納する。
【００７８】
ＲＧＢ分解回路２０１は、Ａフラグ判定回路１０６によって画素Ａのフラグが“１”の場合、つまり、同時に入力された他の画素と色データが異なる場合にのみ、その画素Ａの色データをＲＧＢの各色成分に分解する。なお、ＲはＲＥＤ（赤色）、ＧはＧＲＥＥＮ（緑色）、ＢはＢＬＵＥ（青色）であり、それぞれに８ビットのデータからなり、０〜２５５の２５６階調を有する。
【００７９】
ＲＧＢ分解回路２０２，２０３についても同様である。すなわち、ＲＧＢ分解回路２０２は、Ｂフラグ判定回路１０７によって画素Ｂのフラグが“１”の場合、つまり、画素比較回路１０２に同時に入力された他の画素と色データが異なる場合にのみ、その画素Ｂの色データをＲＧＢの各色成分に分解する。ＲＧＢ分解回路２０３は、Ｃフラグ判定回路１０８によって画素Ｃのフラグが“１”の場合、つまり、画素比較回路１０２に同時に入力された他の画素と色データが異なる場合にのみ、その画素Ｃの色データをＲＧＢの各色成分に分解する。
【００８０】
また、画素Ｄのフラグは常に“１”であるので、ＲＧＢ分解回路２０４については、その画素Ｄの色データをＲＧＢの各色成分に分解するように構成されている。
【００８１】
Ｒレジスタ２０５は、所定階調数分のアドレスを有し、ＲＧＢ分解回路２０１〜２０４によって得られたＲ色（赤色）の値に対応したアドレスに使用数を格納する。同様に、Ｇレジスタ２０６は、所定階調数分のアドレスを有し、ＲＧＢ分解回路２０１〜２０４によって得られたＧ色（緑色）の値に対応したアドレスに使用数を格納する。Ｂレジスタ２０７は、所定階調数分のアドレスを有し、ＲＧＢ分解回路２０１〜２０４によって得られたＢ色（青色）の値に対応したアドレスに使用数を格納する。
【００８２】
カウンタ２０８は、Ｒレジスタ２０５のＲ色の各値に対応した使用数をカウントアップする。同様に、カウンタ２０９は、Ｇレジスタ２０６のＧ色の各値に対応した使用数をカウントアップする。カウンタ２１０は、Ｂレジスタ２０７のＢ色の各値に対応した使用数をカウントアップする。
【００８３】
次に、第２の実施形態の動作について説明する。  
図１２は第２の実施形態における画像処理ボード１９のＲＧＢヒストグラム検出処理の流れを示すフローチャートである。なお、このフローチャートで示される処理は、画像処理ボード１９に備えられたコントローラ１００によって実行される。
【００８４】
まず、コントローラ１００は、フラグレジスタ１１６の画素Ａ〜Ｄに対応したフラグの値をすべて“１”に初期化しておく（ステップＳ２００）。
【００８５】
次に、コントローラ１００は、画素比較回路１０２を起動し、メモリ１０１に記憶された画像データから所定数（ここでは４つ）の画素を読み出し、これらの画素間で色データの比較を行う（ステップＳ２０１）。そして、コントローラ１００は、フラグ設定回路１０３〜１０５を起動し、画素比較回路１０２の比較結果に応じて、色データの値が一致した画素のフラグを“１”から“０”に設定する（ステップＳ２０２）。
【００８６】
ここで、第２の実施形態では、色データの値が一致したときに、コントローラ１００は、同時入力色レジスタ２００の中の当該画素に対応したレジスタに数値「１」をセットする（ステップＳ２０３）。
【００８７】
この様子を図１３及び図１４に示す。  
図１３はフラグ設定回路１０３〜１０５のフラグ設定動作を示す図、図１４は同時入力色レジスタ２００の数値設定動作を示す図である。
【００８８】
比較対象とする４つの画素をそれぞれＡ，Ｂ，Ｃ，Ｄとしたとき、画素比較回路１０２によって、画素ＡとＢ画素、画素Ａと画素Ｃ、画素Ａと画素Ｄを比較し、その中のいずれかの画素間で色データの値が一致した場合に、Ａフラグ設定回路１０３によってＡフラグ（画素Ａに対応したフラグ）の値を“０”にする。つまり、画素Ａが画素Ｂ，Ｃ，Ｄのいずれかと同じ色を有する場合に、Ａフラグが“０”にセットされることになる。
【００８９】
ここで、第２の実施形態では、色数ではなく、ＲＧＢのヒストグラムを測定するため、同時入力された画素間で同一色があった場合には、後でその分の色値を加算しなければならない。そこで、Ａフラグが“０”にセットされたとき、同時入力色レジスタ２００の中の当該画素Ａに対応したレジスタＡに同一色が存在することを示す数値「１」をセットしておく。
【００９０】
同様にして、画素Ｂと画素Ｃ、画素Ｂと画素Ｄを比較し、その中のいずれかの画素間で色データの値が一致した場合に、Ｂフラグ設定回路１０４によってＢフラグ（画素Ｂに対応したフラグ）の値を“０”にする。つまり、画素Ｂが画素Ｃ，Ｄのいずれかと同じ色を有する場合に、Ｂフラグが“０”がセットされることになる。その際に、同時入力色レジスタ２００の中の当該画素Ｂに対応したレジスタＢに同一色が存在することを示す数値「１」がセットされる。
【００９１】
また、画素Ｃと画素Ｄを比較し、その画素間で色データの値が一致した場合に、Ｃフラグ設定回路１０５によってＣフラグ（画素Ｃに対応したフラグ）の値を“０”にする。つまり、画素Ｃが画素Ｄと同じ色を有する場合に、Ｃフラグが“０”がセットされることになる。その際に、同時入力色レジスタ２００の中の当該画素Ｃに対応したレジスタＣに同一色が存在することを示す数値「１」がセットされる。
【００９２】
なお、Ｄフラグ（画素Ｄに対応したフラグ）の値は常に“１”であり、同時入力色レジスタ２００の数値設定は関係しない。
【００９３】
図１２の説明に戻って、フラグレジスタ１１６に各画素のフラグが設定されると、コントローラ１００は、フラグ判定回路１０６〜１０８を起動して（ステップＳ２０４）、フラグの値が“０”である“１”であるかを判定する（ステップＳ２０５）。
【００９４】
この場合、フラグが“０”になった画素については（ステップＳ２０５のＮＯ）、画素比較回路１０２に同時に入力された画素の中に同じ色データを持つ画素があるということなので、ＲＧＢ分解処理を行う必要がない。したがって、コントローラ１００は、フラグが“１”の画素についてのみ処理対象として選出し（ステップＳ２０５ａ）、ＲＧＢ分解回路２０１〜２０４を起動して、当該画素の色データをＲＧＢの各成分に分解し、それぞれの色値を求める（ステップＳ２０６）。
【００９５】
なお、画素Ｄのフラグは常に“１”であるので、ＲＧＢ分解回路２０４では、常に画素Ｄの色データをＲＧＢの各色成分に分解することになる。
【００９６】
このようにして、画素の色データをＲＧＢの各色成分に分解すると、コントローラ１００は、その分解後の色値に基づいてＲレジスタ２０５，Ｇレジスタ２０６，Ｂレジスタ２０７の該当するレジスタのアドレスに使用数をセットする。その際、同一色として省いていた画素分を含ませるために、同時入力色レジスタ２００にセットされた数値を当該使用数に加算してセットする（ステップＳ２０７）。
【００９７】
この様子を図１５及び図１６に示す。  
図１５はＲＧＢ分解回路２０１〜２０４のＲＧＢ分解動作を示す図、図１６はＲレジスタ２０５，Ｇレジスタ２０６，Ｂレジスタ２０７の数値設定動作を示す図である。なお、ここでは、各アドレスを００〜ＦＦまでの２桁の１６進数で表す。つまり、アドレス００〜ＦＦは、０〜２５５の各色の値に対応している。
【００９８】
画像データを構成する各画素の色データは、Ｒ（赤色）、Ｇ（緑色）、Ｂ（青色）の各色成分からなる。各色は、それぞれに８ビットのデータで構成され、０〜２５５までの２５６階調で表示される。つまり、Ｒ，Ｇ，Ｂの各色の組み合わせにより、２５６×２５６×２５６＝１，６７７，２１６色を表現することができる。
【００９９】
ＲＧＢ分解回路２０１〜２０４では、フラグ“１”が設定された画素の色データをＲ，Ｇ，Ｂの各色成分に分解する。そのときに得られる各色の値に応じて、Ｒレジスタ２０５，Ｇレジスタ２０６，Ｂレジスタ２０７の中の該当するアドレスに使用数「１」がセットされる。ここで、同時入力色レジスタ２００に同一色が存在することを示す数値がセットされていた場合には、その数値が使用数に加算される。
【０１００】
図１６に具体例を示す。  
今、Ｒレジスタ２０５に着目して説明する。図１６（ａ）に示すように、Ｒレジスタ２０５の各アドレスのデータ（使用数）は全て「０」に初期化されている。この状態で、Ｒ値として「００」のデータが入力されたとすると、同図（ｂ）に示すように、アドレス「００」に使用数「１」がセットされる。その際、同時入力色レジスタ２００の中の当該画素に対応したレジスタに「１」がセットされていた場合には、アドレス「００」の使用数が＋１インクリメントされ、同図（ｃ）に示すように、使用数「２」となる。
【０１０１】
Ｇレジスタ２０６、Ｂレジスタ２０７についても同様であり、それぞれに各色の値に応じた使用数に同時入力色レジスタ２００の値が加算されることになる。これにより、同時に入力された他の画素の色値と同じであったために処理されなかった画素の色値も正しくカウントすることができる。
【０１０２】
図１２の説明に戻って、以後、画像データから４画素ずつ順次読み出し、前記同様の処理を繰り返し行う。全画素の処理が終了すると（ステップＳ２０８のＹＥＳ）、コントローラ１００は、ここでの処理を終了する。
【０１０３】
Ｒレジスタ２０５，Ｇレジスタ２０６，Ｂレジスタ２０７にセットされた各値の使用数から図１７に示すようなＲＧＢヒストグラムが生成される。このＲＧＢヒストグラムは、図２で説明した未使用色を決定するときに有効的に用いられる。図１７（ａ）はＲ成分のヒストグラムであり、Ｒレジスタ２０５の各アドレスにセットされた使用数を０〜２５５の階調数毎に分類して生成される。同図（ｂ）はＧ成分のヒストグラムであり、Ｇレジスタ２０６の各アドレスにセットされた使用数を０〜２５５の階調数毎に分類して生成される。同図（ｃ）はＢ成分のヒストグラムであり、Ｂレジスタ２０７の各アドレスにセットされた使用数を０〜２５５の階調数毎に分類して生成される。
【０１０４】
このように、第２の実施形態によれば、ＲＧＢのヒストグラムを求める場合であっても、前記第１の実施形態と同様に、最初に所定数の画素の色データを比較し、同一色を持つ画素を除外してから処理を行うようにしたことで、全ての画素の１つ１つ色データに関して処理を行う場合に比べ、処理時間の短縮と共に消費電力を抑えることができる。
【０１０５】
なお、前記第２の実施形態では、色データとしてＲＧＢデータを例にして説明したが、ＣＭＹデータやＹＣｂＣｒデータであっても同様に適用可能である。
【０１０６】
また、常にフラグを“１”として比較処理を行う画素をＤに固定したが、他の任意の画素であっても良い。
【０１０７】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。
【０１０８】
前記第１の実施形態では、画像データの特徴量の検出に必要な処理として、「色数の検出処理」を行う場合を例にして説明したが、同様の手法にて、「色相・彩度・明度のヒストグラム検出処理」を行うことも可能である。
【０１０９】
図１８は本発明の第３の実施形態におけるコンピュータ装置１０に備えられた画像処理ボード１９の回路構成を示すブロック図であり、画像データの色相・彩度・明度のヒストグラムを検出するための回路構成が示されている。なお、前記第１の実施形態における図３と同じ部分には同一符号を付して、その説明を省略するものとする。
【０１１０】
第３の実施形態において、画像処理ボード１９には、コントローラ１００、メモリ１０１、画素比較回路１０２、フラグ設定回路１０３〜１０５、フラグレジスタ１１６、フラグ判定回路１０６〜１０８が設けられている。
【０１１１】
さらに、この画像処理ボード１９には、画像データの色相・彩度・明度のヒストグラム検出処理に関わる構成要素として、同時入力色レジスタ２００、ＲＧＢ分解回路２０１〜２０４、演算回路３０１〜３０４、色相レジスタ３０５、彩度レジスタ３０６、明度レジスタ３０７、カウンタ３０８〜３１０が設けられている。
【０１１２】
同時入力色レジスタ２００は、画素Ａに対応したレジスタＡ、画素Ｂに対応したレジスタＢ、画素Ｃに対応したレジスタＣからなり、画素比較回路１０２に同時に入力された各画素の中で同じ色を有することを示す情報（ここでは数値「１」）を格納する。
【０１１３】
ＲＧＢ分解回路２０１は、Ａフラグ判定回路１０６によって画素Ａのフラグが“１”の場合、つまり、同時に入力された他の画素と色データが異なる場合にのみ、その画素Ａの色データをＲＧＢの各色成分に分解する。なお、ＲはＲＥＤ（赤色）、ＧはＧＲＥＥＮ（緑色）、ＢはＢＬＵＥ（青色）であり、それぞれに８ビットのデータからなり、０〜２５５の２５６階調を有する。
【０１１４】
ＲＧＢ分解回路２０２，２０３についても同様である。すなわち、ＲＧＢ分解回路２０２は、Ｂフラグ判定回路１０７によって画素Ｂのフラグが“１”の場合、つまり、画素比較回路１０２に同時に入力された他の画素と色データが異なる場合にのみ、その画素Ｂの色データをＲＧＢの各色成分に分解する。ＲＧＢ分解回路２０３は、Ｃフラグ判定回路１０８によって画素Ｃのフラグが“１”の場合、つまり、画素比較回路１０２に同時に入力された他の画素と色データが異なる場合にのみ、その画素Ｃの色データをＲＧＢの各色成分に分解する。
【０１１５】
また、画素Ｄのフラグは常に“１”であるので、ＲＧＢ分解回路２０４については、その画素Ｄの色データをＲＧＢの各色成分に分解するように構成されている。
【０１１６】
演算回路３０１は、ＲＧＢ分解回路２０１から出力されるＲＧＢの各色成分の値に基づいて、画素Ａの色相（Ｈ）、彩度（Ｓ）、明度（Ｖ）を求める。演算回路３０２〜３０４についても同様である。すなわち、演算回路３０２は、ＲＧＢ分解回路２０２から出力されるＲＧＢの各色成分の値に基づいて、画素Ｂの色相（Ｈ）、彩度（Ｓ）、明度（Ｖ）を求める。演算回路３０３は、ＲＧＢ分解回路２０３から出力されるＲＧＢの各色成分の値に基づいて、画素Ｃの色相（Ｈ）、彩度（Ｓ）、明度（Ｖ）を求める。演算回路３０４は、ＲＧＢ分解回路２０４から出力されるＲＧＢの各色成分の値に基づいて、画素Ｄの色相（Ｈ）、彩度（Ｓ）、明度（Ｖ）を求める。
【０１１７】
ここで、演算回路３０１〜３０４には、以下のようなＲＧＢデータからＨＳＶデータへの変換式（１）〜（５）が組み込まれている。
【０１１８】
Ｈ＝６０×（Ｇ−Ｂ）／（ＭＡＸ−ＭＩＮ）＋０    ，if.ＭＡＸ＝Ｒ  …（１）
Ｈ＝６０×（Ｂ−Ｒ）／（ＭＡＸ−ＭＩＮ）＋１２０，if.ＭＡＸ＝Ｇ  …（２）
Ｈ＝６０×（Ｒ−Ｇ）／（ＭＡＸ−ＭＩＮ）＋２４０，if.ＭＡＸ＝Ｂ  …（３）
Ｓ＝（ＭＡＸ−ＭＩＮ）／ＭＡＸ                  …（４）
Ｖ＝ＭＡＸ                                      …（５）
なお、前記各式において、ＭＡＸ：ＲＧＢ成分中の最大値、ＭＩＮ：ＲＧＢ成分中の最小値である。
【０１１９】
色相レジスタ３０５は、所定階調数分のアドレスを有し、演算回路３０１〜３０４によって得られた色相（Ｈ）の値に対応したアドレスに使用数を格納する。同様に、彩度レジスタ３０６は、所定階調数分のアドレスを有し、演算回路３０１〜３０４によって得られた彩度（Ｓ）の値に対応したアドレスに使用数を格納する。明度レジスタ３０７は、所定階調数分のアドレスを有し、演算回路３０１〜３０４によって得られた明度（Ｖ）の値に対応したアドレスに使用数を格納する。
【０１２０】
カウンタ３０８は、色相レジスタ３０５の色相（Ｈ）の各値に対応した使用数をカウントアップする。同様に、カウンタ３０９は、彩度レジスタ３０６の彩度（Ｓ）の各値に対応した使用数をカウントアップする。カウンタ３１０は、明度レジスタ３０７の明度（Ｖ）の各値に対応した使用数をカウントアップする。
【０１２１】
次に、第３の実施形態の動作について説明する。  
図１９は第３の実施形態における画像処理ボード１９の彩度・色相・明度ヒストグラム検出処理の流れを示すフローチャートである。なお、このフローチャートで示される処理は、画像処理ボード１９に備えられたコントローラ１００によって実行される。
【０１２２】
まず、コントローラ１００は、フラグレジスタ１１６の画素Ａ〜Ｄに対応したフラグの値をすべて“１”に初期化しておく（ステップＳ３００）。
【０１２３】
次に、コントローラ１００は、画素比較回路１０２を起動し、メモリ１０１に記憶された画像データから所定数（ここでは４つ）の画素を読み出し、これらの画素間で色データの比較を行う（ステップＳ３０１）。そして、コントローラ１００は、フラグ設定回路１０３〜１０５を起動し、画素比較回路１０２の比較結果に応じて、色データの値が一致した画素のフラグを“１”から“０”に設定する（ステップＳ３０２）。
【０１２４】
ここで、前記第２の実施形態と同様に、色データの値が一致したときに、コントローラ１００は、同時入力色レジスタ２００の中の当該画素に対応したレジスタに数値「１」をセットする（ステップＳ３０３）。なお、この同時入力色レジスタ２００に対する数値設定の詳細については、前記第２の実施形態において、図１３及び図１４を参照して既に説明済みであるため、ここでは省略する。
【０１２５】
フラグレジスタ１１６に各画素のフラグが設定されると、コントローラ１００は、フラグ判定回路１０６〜１０８を起動して（ステップＳ３０４）、フラグの値が“０”である“１”であるかを判定する（ステップＳ３０５）。
【０１２６】
この場合、フラグが“０”になった画素については（ステップＳ３０５のＮＯ）、画素比較回路１０２に同時に入力された画素の中に同じ色データを持つ画素があるということなので、ＲＧＢ分解処理を行う必要がない。したがって、コントローラ１００は、フラグが“１”の画素についてのみ処理対象として選出し（ステップＳ３０５ａ）、ＲＧＢ分解回路２０１〜２０４を起動して、当該画素の色データをＲＧＢの各成分に分解し、それぞれの色値を求める（ステップＳ３０６）。
【０１２７】
なお、画素Ｄのフラグは常に“１”であるので、ＲＧＢ分解回路２０４では、常に画素Ｄの色データをＲＧＢの各色成分に分解することになる。
【０１２８】
ここで、第３の実施形態では、画素の色データをＲＧＢの各色成分に分解した後、コントローラ１００は、演算回路３０１〜３０４を起動して、前記（１）〜（５）式に従ってＲＧＢデータからＨＳＶデータへの変換を行い、色相（Ｈ）・彩度（Ｓ）・明度（Ｖ）を求める（ステップＳ３０７）。
【０１２９】
そして、コントローラ１００は、その色相（Ｈ）・彩度（Ｓ）・明度（Ｖ）の各値に基づいて色相レジスタ３０５，彩度レジスタ３０６，明度レジスタ３０７の該当するレジスタのアドレスに使用数をセットする。その際、同一色として省いていた画素分を含ませるために、同時入力色レジスタ２００にセットされた数値を当該使用数に加算してセットする（ステップＳ３０８）。
【０１３０】
この様子を図２０に示す。  
図２０は色相レジスタ３０５，彩度レジスタ３０６，明度レジスタ３０７の数値設定動作を示す図であり、図２０（ａ）は色相レジスタ３０５の一例、同図（ｂ）は彩度レジスタ３０６の一例、同図（ｃ）は明度レジスタ３０７の一例を示す図である。なお、色相は０〜３００の値を取り、彩度と明度は０〜２５５の値を取るものとする。
【０１３１】
色相・彩度・明度は、ＨＳＶ色空間の３要素である。なお、ＨＳＶ色空間は、ＨＳＶ色空間、ＨＳＢ色空間とも言われる。色相は、赤・黄・緑・青・紫といった「色合い」を表す。彩度は、色の「鮮やかさ」の度合いを表す。明度は、色の明度つまり「明るさ」を表す。
【０１３２】
演算回路３０１〜３０４によって色相・彩度・明度の各値が得られると、色相レジスタ３０５、彩度レジスタ３０６、明度レジスタ３０７の中の該当するアドレスに使用数「１」がセットされる。ここで、同時入力色レジスタ２００に同一色が存在することを示す数値がセットされていた場合には、その数値が使用数に加算される。
【０１３３】
例えば、色相・彩度・明度の各値が０であった場合に、色相レジスタ３０５、彩度レジスタ３０６、明度レジスタ３０７のそれぞれのアドレス「０」に使用数「１」がセットされる。その際に、同時入力色レジスタ２００の中の当該画素に対応したレジスタに「１」がセットされていた場合には、アドレス「０」の使用数が＋１インクリメントされ、使用数「２」となる。
【０１３４】
図１９の説明に戻って、以後、画像データから４画素ずつ順次読み出し、前記同様の処理を繰り返し行う。全画素の処理が終了すると（ステップＳ３０９のＹＥＳ）、コントローラ１００は、ここでの処理を終了する。
【０１３５】
色相レジスタ３０５，彩度レジスタ３０６，明度レジスタ３０７にセットされた各値の使用数から色相・彩度・明度のヒストグラムが生成される。この色相・彩度・明度のヒストグラムは、図２で説明した未使用色を決定するときに有効的に用いられる。
【０１３６】
このように、第３の実施形態によれば、色相・彩度・明度のヒストグラムを求める場合であっても、前記第１の実施形態と同様に、最初に所定数の画素の色データを比較し、同一色を持つ画素を除外してから処理を行うようにしたことで、全ての画素の１つ１つ色データに関して処理を行う場合に比べ、処理時間の短縮と共に消費電力を抑えることができる。
【０１３７】
なお、前記第３の実施形態では、色表現の分類方法として、色相・彩度・明度を例にして説明したが、色相・彩度・輝度などの他の分類方法を用いる場合であっても同様に適用可能である。
【０１３８】
また、常にフラグを“１”として比較処理を行う画素をＤに固定したが、他の任意の画素であっても良い。
【０１３９】
また、前記各実施形態において、画素比較回路１０２によって読み出す画素の数を４つとしたが、少なくとも２つ以上あれば、１つ１つの画素を比較するようにも短時間で処理することができる。
【０１４０】
さらに、例えば全画素数の半分をまとめて比較するような構成であっても良い。ただし、画素数が多すぎると、これらの画素間で同一色を検出するのに時間を要し、また、そのための回路数も多く必要となるため、本実施形態のように４つ程度の画素をまとめて比較することが好ましい。
【０１４１】
また、「色数の検出処理」、「ＲＧＢのヒストグラム検出処理」、「色相・彩度・明度のヒストグラム検出処理」の他にも、画像データの特徴量の検出に必要な処理を行う場合であれば、前記各実施形態で説明したように、最初に所定数の画素間での色データの比較を行い、同じ色データを持つ画素を除いてから処理することで、処理時間の短縮化を図ることができる。
【０１４２】
要するに、本発明は前記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１４３】
【図１】図１は本発明の第１の実施形態に係る画像処理装置をコンピュータ装置に適用した場合の回路構成を示すブロック図である。
【図２】図２は同実施形態におけるコンピュータ装置に備えられた画像処理ボードにて行われる表示用画像データの生成処理を説明するための図である。
【図３】図３は同実施形態におけるコンピュータ装置に備えられた画像処理ボードの回路構成を示すブロック図であり、画像データの色数を検出するための回路構成を示す図である。
【図４】図４は同実施形態における画像処理ボードの画素比較回路の詳細な構成を示す図である。
【図５】図５は同実施形態における画像処理ボードの色数検出処理の流れを示すフローチャートである。
【図６】図６は同実施形態における画像処理ボードの画素比較回路の画素比較動作を示す図である。
【図７】図７は同実施形態における画像処理ボードのフラグ設定回路のフラグ設定動作を示す図である。
【図８】図８は同実施形態における画像処理ボードのフラグ設定結果を示す図である。
【図９】図９は同実施形態における画像処理ボードの比較回路による入力色の比較処理を示す図である。
【図１０】図１０は本発明の手法と従来の手法とを比較して示す図であり、図１０（ａ）は本発明の手法、同図（ｂ）は従来の手法を示す図である。
【図１１】図１１は本発明の第２の実施形態におけるコンピュータ装置に備えられた画像処理ボードの回路構成を示すブロック図であり、画像データのＲＧＢヒストグラムを検出するための回路構成を示す図である。
【図１２】図１２は同実施形態における画像処理ボードのＲＧＢヒストグラム検出処理の流れを示すフローチャートである。
【図１３】図１３は同実施形態におけるフラグ設定回路のフラグ設定動作を示す図である。
【図１４】図１４は同実施形態における同時入力色レジスタの数値設定動作を示す図である。
【図１５】図１５は同実施形態におけるＲＧＢ分解回路のＲＧＢ分解動作を示す図である。
【図１６】図１６は同実施形態におけるＲレジスタ，Ｇレジスタ，Ｂレジスタの数値設定動作を示す図である。
【図１７】図１７は同実施形態におけるＲＧＢヒストグラムの一例を示す図であり、図１７（ａ）はＲ成分のヒストグラム、同図（ｂ）はＧ成分のヒストグラム、同図（ｃ）はＢ成分のヒストグラムの一例を示す図である。
【図１８】図１８は本発明の第３の実施形態におけるコンピュータ装置に備えられた画像処理ボードの回路構成を示すブロック図であり、画像データの色相・彩度・明度のヒストグラムを検出するための回路構成を示す図である。
【図１９】図１９は同実施形態における画像処理ボードの彩度・色相・明度ヒストグラム検出処理の流れを示すフローチャートである。
【図２０】図２０は同実施形態における色相レジスタ，彩度レジスタ，明度レジスタの数値設定動作を示す図であり、図２０（ａ）は色相レジスタの一例、同図（ｂ）は彩度レジスタの一例、同図（ｃ）は明度レジスタの一例を示す図である。
【符号の説明】
【０１４４】
１０…コンピュータ装置、１１…ＣＰＵ、１２…システムバス、１３…ＲＯＭ、１４…ＲＡＭ、１４ａ〜１４ｃ…フレームバッファ、１５…入力装置、１６…表示装置、１７…通信Ｉ／Ｆ、１８…外部記憶装置、１９…画像処理ボード、２０…媒体読取り装置、２０ａ…外部記録媒体、１００…コントローラ、１０１…メモリ、１０２…画素比較回路、１０３〜１０５…フラグ設定回路、１０６〜１０８…フラグ判定回路、１０９〜１１２…比較回路、１１３…入力色格納レジスタ、１１４…カウンタ、１１５…色数レジスタ、１１６…フラグレジスタ、２００…同時入力色レジスタ、２０１〜２０４…ＲＧＢ分解回路、２０５…Ｒレジスタ、２０６…Ｇレジスタ、２０７…Ｂレジスタ、２０８〜２１０…カウンタ、３０１〜３０４…演算回路、３０５…色相レジスタ、３０６…彩度レジスタ、３０７…明度レジスタ、３０８〜３１０…カウンタ。
【図１】
2010081346.tif 000003
【図２】
2010081346.tif 000004
【図３】
2010081346.tif 000005
【図４】
2010081346.tif 000006
【図５】
2010081346.tif 000007
【図６】
2010081346.tif 000008
【図７】
2010081346.tif 000009
【図８】
2010081346.tif 000010
【図９】
2010081346.tif 000011
【図１０】
2010081346.tif 000012
【図１１】
2010081346.tif 000013
【図１２】
2010081346.tif 000014
【図１３】
2010081346.tif 000015
【図１４】
2010081346.tif 000016
【図１５】
2010081346.tif 000017
【図１６】
2010081346.tif 000018
【図１７】
2010081346.tif 000019
【図１８】
2010081346.tif 000020
【図１９】
2010081346.tif 000021
【図２０】
2010081346.tif 000022