(57)【要約】【課題】  画像におけるコントラスト改善手段のひとつであるヒストグラム平均化で動画の画質処理をしようとすると、画素数の多い画面全体のヒストグラムを計算すると時間がかかってしまい、装置が大かがりになってしまう。【解決手段】  動画のフレーム毎又は静止画の画像処理において、被写体を撮影した画像からピクセル単位の画像データを取り込む取込手段と、取り込んだ画像データを特定の色空間に分解した後に輝度のヒストグラムを生成するヒストグラム生成手段を備え、前記画像を色別に所定のパターンで読み出し、前記パターンの中の特定位置のピクセルを除いた平均ヒストグラムを基本として前記パターンの特定位置のピクセルの輝度を設定するようにした。【選択図】  図１
2010183409.tif 000002
【特許請求の範囲】
【請求項１】
動画のフレーム毎又は静止画の画像処理方法であって、
被写体を撮影した画像からピクセル単位の画像データを取り込む取込手段と、取り込んだ画像データを特定の色空間に分解した後に輝度のヒストグラムを生成するヒストグラム生成手段を備え、
前記取込手段にて前記画像を色別に所定のパターンで読み出し、前記ヒストグラム生成手段を使って前記パターンの中の特定位置のピクセルの周囲の平均ヒストグラムを生成し、この平均ヒストグラムを使って前記特定位置のピクセルの輝度を設定することを特徴とする画像処理方法。
【請求項２】
請求項１に記載の画像処理方法において、前記特定位置のピクセルの輝度を設定した後に、所定規則に従ってピクセルと所定パターンを移動させ、移動後の所定パターンの平均ヒストグラムを生成する際に、移動前後で重複しなくなったピクセルのヒストグラムを減算し且つ新たに所定パターンのエリアに入ったピクセルのヒストグラムのみを加算することを特徴とする画像処理方法。
【請求項３】
請求項１又は２に記載の画像処理方法において、前記所定のパターンは水平走査方向に移動させた場合に、
前記所定パターン全体が前記画面内にある場合には、移動前後のパターンは重複部分において所定オーバーラップ部分を持たせながら所定規則に従って移動させることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
監視カメラや室内の窓など同一画面内において極端に明るい部分と暗い部分が混在する画面で構成される画面を見やすい画面に変換する画像処理方法を提供する。
【背景技術】
【０００２】
監視カメラの映像は２４時間稼動しているため、極端に明るい状況や暗い状況が刻々変化する。カメラの一般的なオートゲインコントロールなどでは変化が大きい場合には極端な変化に追いつけない場合が多い。また、室内の窓など同一画面内において極端に明るい部分と暗い部分が混在する場合はゲインコントロールでは対応することが出来ない。
【０００３】
そこで、画像評価技術としてヒストグラムを使い、各カラーの明るさのレベル別にピクセル数をグラフ化し、画像内のピクセル分布を示したものであり、シャドウ（ヒストグラムの左側部分）、中間調（ヒストグラムの中央）およびハイライト（ヒストグラムの右側部分）のディテールが表示され、画像に適切な補正を行うための十分なディテールがあるかどうかを判断する方法が使われている。
【０００４】
例えば、特許文献１には、光学像を光電変換して電気信号を出力する撮像素子と、該撮像素子から出力された電気信号を処理して映像信号を生成する信号処理手段と、該信号処理手段から出力された映像信号からヒストグラムを生成するヒストグラム回路と、該ヒストグラム回路によって検出されたヒストグラムを用いて露光制御を行う露光制御手段とを有する撮像装置が開示されている。
【０００５】
また特許文献２には、原稿からの光を読取って画像データを生成する工程と、前記画像データから濃度分布のヒストグラムを作成する工程と、前記画像データの全データ数に対する濃度分布の明暗両端寄りのデータ数の割合に基づいて濃度補正曲線を生成する工程と、前記濃度補正曲線で画像データの濃度補正を行う工程とを有する画像処理方法が開示されている。
【０００６】
更に特許文献３には、被写体を撮像し、撮像画像の画像データを取得する撮像手段と、その撮像手段により取得された画像データからなる撮像画像の所定の画素部分であって輝度レベルが所定の範囲内にある画素からなる画素部分に対し、当該画素部分における各画素の輝度値を、各画素間の相対的な輝度の上下関係を維持したまま各画素間の輝度間隔を増大させるよう変換する階調補正を行う階調補正手段とを備えた撮像装置が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−１４２１５０号公報
【特許文献２】特開２００３−０５１９４４号公報
【特許文献３】特開２００７−１２４０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１では、例えば静止画の撮影を行う場合において、ＣＰＵを使って画面全体でヒストグラム生成部２５により生成された撮像画像のヒストグラムについて、有用データ範囲とした、明るさが分布している輝度範囲と、無用データ範囲とした明るさが分布していない輝度範囲とを検索しているが、画素数の多い画面では大きな処理能力を持つＣＰＵを使わないとリアルタイムでの静止画撮影は難しい。
【０００９】
特許文献２では、カラーモードの場合にはＲ、Ｇ、Ｂ全色を合成したヒストグラムを、グレーモードの場合にはＧ色のみのヒストグラムを生成する画像処理システムにおいては多くの処理能力が必要となり、能力の高いホストコンピュータを使わないと処理時間が長くなってしまうという問題点がある。
【００１０】
特許文献３では、撮像画像のヒストグラムを使って補正カーブに従ってガンマ補正（階調補正）を行ない、例えば分布にふたつの山がある場合は、双方の分布域範囲が、処理以前に各々の高輝度側に存在していた無用データ範囲（明るさが分布していない輝度範囲）を消失させるよう、それぞれ高輝度側に拡大することにより記録画像には、全体の階調関係を保持しながら暗い部分（遠距離の背景）と明るい部分（近距離の被写体）に十分な階調を割り当てることができるとしている。しかしこの方法では、画素数の多い画面全体のヒストグラムを計算すると時間がかかってしまい、動画には使えないという問題がある。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明においては、動画のフレーム毎又は静止画の画像処理方法であって、
被写体を撮影した画像からピクセル単位の画像データを取り込む取込手段と、取り込んだ画像データをピクセル単位で色分解した後に特定の色空間に分解した後に輝度のヒストグラムを生成するヒストグラム生成手段を備え、
前記取込手段にて前記画像を色別に所定のパターンで読み出し、前記ヒストグラム生成手段を使って前記パターンの中の特定位置のピクセルの周囲の平均ヒストグラムを生成し、この平均ヒストグラムを使って前記特定位置のピクセルの輝度を設定するようにした。
【００１２】
また、前記特定位置のピクセルの輝度を設定した後に、所定規則に従ってピクセルと所定パターンを移動させ、移動後の所定パターンの平均ヒストグラムを生成する際に、移動前後で重複しなくなったピクセルのヒストグラムを減算し且つ新たに所定パターンのエリアに入ったピクセルのヒストグラムのみを加算することや、前記所定パターン全体が前記画面内にある場合には、移動前後のパターンは重複部分において所定オーバーラップ部分を持たせながら所定規則に従って移動させることも考えられる。
【発明の効果】
【００１３】
本発明によるアルゴリズムは、２パス方式を取らず単純なアルゴリズムで同等の結果を得るアルゴリズムであり、現在一般的に市販されている安価なマイクロコンピュータやパーソナルコンピュータとグラフィックボードの組み合わせで容易にＶＧＡ動画のリアルタイム処理を行うことが可能であり、ＦＰＧＡなどへのハードウエア化やＤＳＰによる処理も可能となる。
【図面の簡単な説明】
【００１４】
【図１】基本システム例である。
【図２】ヒストグラムの比較例である。
【図３ａ】画面と所定の読み取りパターンの位置関係を示す図である。
【図３ｂ】画面と所定の読み取りパターンの位置関係を示す図である。
【図３ｃ】画面と所定の読み取りパターンの位置関係を示す図である。
【図３ｄ】画面と所定の読み取りパターンの位置関係を示す図である。
【図３ｅ】画面と所定の読み取りパターンの位置関係を示す図である。
【図３ｆ】画面と所定の読み取りパターンの位置関係を示す図である。
【図４】ピクセル単位検出のヒストリ最適化の基本原理例である。
【図５】２列毎にスキャンする例である。
【図６】複数分散処理の例である。
【図７】補正前と補正後の画像比較例である。
【発明を実施するための形態】
【実施例】
【００１５】
以下に本発明の実施例を記載する。なお、以下の実施例は本発明においてグラフィックボードは旧来のものではなく、プロセッサあたり１２０個以上のコアを搭載したマルチコアＧＰＵを搭載したグラフィックボード使うことが望ましい。
【００１６】
図１は、本発明の基本システム例である。本システムは、基本的にはグラフィクスボードを搭載したマイクロコンピュータまたはパーソナルコンピュータであって、ＣＰＵ１にはシステムバス３を介してグラフィックボード、ＲＯＭ２ａ、ＲＡＭ２ｂ、ＰＣＩなどのインターフェイス４を通して画像を取り込むフレームグラバ６で構成される。また、本装置を操作するためにＩ／Ｏインターフェイス５を通してボタン等の操作装置７やシリアルポート等の外部接続ポート８を持つ。
【００１７】
グラフィックボードは、一並列処理セルを持つＧＰＵ９、処理用フレームバッファ１１、出力用フレームバッファ１２、表示出力回路１３から構成されている。
【００１８】
動画のフレーム毎又は静止画の画像処理方法において、上記の構成をとることにより、本発明の画像処理方法では、被写体を撮影した画像からピクセル単位の画像データを取り込む取込手段と、取り込んだ画像データを特定の色空間に分解した後に輝度のヒストグラムを生成するヒストグラム生成手段を備え、前記取込手段にて前記画像を色別に所定のパターンで読み出し、前記ヒストグラム生成手段を使って前記パターンの中の特定位置のピクセルの周囲の平均ヒストグラムを生成し、この平均ヒストグラムを使って前記特定位置のピクセルの輝度を設定するようにした。
【００１９】
ＧＰＵ９はＣＰＵ１から指示を受けて各セルに対して処理用フレームバッファ１１にある画像データを指示に従って処理を行い、処理結果を出力用フレームバッファ１２へ書き込むよう命令する。セルは複数あり並列処理を行うことでＣＰＵからの指示をセルの数だけ一斉に処理する。
【００２０】
コンピュータのＣＰＵ１は、起動時にＲＯＭ２ａから本件処理に相当するソフトウエアをＲＡＭ２ｂへ転送しソフトウエアを実行する。実行したソフトウエアは
（１）フレームグラバから画像を取り込む
（２）取り込んだ画像をグラフィックボード上の処理用フレームバッファ１１へ転送する
（３）ＧＰＵへ本件処理を指示する
（４）ＧＰＵ内セルが並列処理によって指示を実行する
（５）処理結果がすべて出力用フレームバッファに書き込まれるまで待つ
（６）処理結果を表示
といった一連の動作を繰り返す。
【００２１】
処理用フレームバッファ１１や出力用フレームバッファ１２では複数の色空間を表現することが出来る。本件ではＹＣｂＣｒ、ＨＳＶ、Ｌａｂ、ＨＬＳを対象とする。
【００２２】
表示出力回路１３は上記色空間表現となっている出力用フレームバッファ１２の内容をディスプレイに適合した映像信号に変換する。複数の映像信号に対応しており、アナログＲＧＢが一般的であるが、ＤＶＩ、コンポーネント（Ｄ１〜Ｄ４）、ＹＣ分離、コンポジットなどを出力することも出来る。
【００２３】
本発明の画像処理方法は、動画のフレーム毎又は静止画の画像を扱い、被写体を撮影した画像からピクセル単位の画像データを取り込む取込手段と、取り込んだ画像データをピクセル単位で特定の色空間に分解した後に輝度のヒストグラムを生成するヒストグラム生成手段を備え、前記画像輝度情報を所定の読み取りパターン１６で読み出し、前記読み取りパターン１６の中の特定位置のピクセルを除いた平均ヒストグラムを基本として前記読み取りパターン１６の特定位置のピクセルの輝度を設定するようにした。
【００２４】
また、前記所定の読み取りパターン１６は水平走査方向に移動させた場合に、移動前後の読み取りパターン１６は重複部分において移動前後で完全にオーバーラップさせることにより、前記画像上で読み取りパターン１６を移動させてもデータ互換が保証される。
【００２５】
上記において、計算をコンピュータのＣＰＵではなく、グラフィックボードのＧＰＵを使うことにより、基本的に動的なデータをストリームとして処理が可能となり、カーネルでの演算処理過程においては、データをリアルタイムに解析し、高精度かつ高速処理が行える。
【００２６】
カーネルがストリームの演算処理を行う際には、動的なデータの並列処理が可能なパイプライン処理が利用され、従来のマルチコアＣＰＵのコア数が２〜４コアであるのに対して、本実施例で使ったＧＰＵは並列処理が可能な１２８個の演算ユニットを持つスカラプロセッサとなっている。
【００２７】
上記のスカラプロセッサを使っても、画像のリアルタイム処理には莫大な計算量があるので、３Ｄグラフィクスには９６０コアのＧＰＵが使われる例もあり、まだ充分な計算能力には達していないのが現状であり、本発明は３Ｄ処理には充分な性能とは言えないＧＰＵを使ってリアルタイムで動画のヒストグラム最適化を可能とするものである。
【００２８】
図２はヒストグラムの比較例である。図２（ａ）はオリジナルのヒストグラム例で、左右にふたつの山がある。図２（ｂ）は均一化して略フラット化したヒストグラムである。
【００２９】
一般的には明るさの分布が均一でない画像に対しては一般的にヒストグラムの平均化を行って明るさ分布を調整して画像改善を行うか、Ｓ字カーブを持つガンマ曲線変換を用いてコントラストの低い画像を伸張することによってコントラストを広げ、暗い箇所は暗く、明るい箇所は明るくしメリハリのある画像にする処理を行っている。
【００３０】
ヒストグラムの平均化を行えば、暗い部分はディテールがはっきりするが、暗い部分が多いため空と空に接している部分が明るくなり過ぎてディテールを損なう。この境界部分のディテールを抽出するには、例えば空（明るい部分）と空と背景の境界と地上（暗い部分）にエリアを分割してそれぞれの領域でヒストグラムの平均化を行うことでディテールの損失を軽減出来る。
【００３１】
また、予め画像を走査して明るさの分布を検出し、エリアを分けてヒストグラムの平均化を行うことで、明暗が極端な画像に対しても中間部分のディテールを抽出することも可能である。
【００３２】
前記の方法ではエリア分割のために画像を走査する必要があり、その後にヒストグラムの平均化を行うためにもう一度画像走査を行う２パス方式となる。
【００３３】
前記の方法は動画をリアルタイム処理するにあたって下記の問題があり高速に処理出来ないし、エリアを分割するアルゴリズムは一般化が難しく複雑なアルゴリズムになってしまう。
【００３４】
また、ヒストグラムの平均化は全画面を走査して明るさの変換テーブルを作成した後にテーブルに従って画像を変換する必要があり、分割結果を記憶する画像と同程度のメモリが必要となる。
【００３５】
更に、エリア分割で２回、ヒストグラムの平均化で２回の計４回画像を走査する必要があり、エリアとエリアの境界部分が不自然もしくはフェード合成を行う必要がある。
【００３６】
しかし、以下に詳細を説明する本発明の方法であれば、算出エリアを１ピクセルとすることでエリアを区切る算出過程が不要なのでヒストグラムの平均化１パスのみで処理できるようになる。
【００３７】
図３は、画面と所定の読み取りパターンの位置関係を示している。図３（ａ）は画像を表示する画面の全体を示し画像表示画面１５における読み取りパターン１６を示している。
【００３８】
本発明においては以下に詳細説明されているように、前記特定位置のピクセルの輝度を設定した後に、所定規則に従ってピクセルと所定パターンを移動させ、移動後の所定パターンの平均ヒストグラムを生成する際に、移動前後で重複しなくなったピクセルのヒストグラムを減算し且つ新たに所定パターンのエリアに入ったピクセルのヒストグラムのみを加算する画像処理方法を採用している。
【００３９】
ここで、画面がｍ行ｎ列のピクセルで構成されるとすると、（行、列）で配列を表現すれば、（０，０）のピクセルから画面が始まり、１行目は（１，ｎ）のピクセルで終わり、最終は（ｍ、ｎ）のピクセルとなる。
【００４０】
図３（ｂ）は読み取りパターンを示していて、読み取りパターン１６において、特定ピクセルを着目ピクセル１７として設定している。
【００４１】
図３（ｃ）は、画像表示画面内の処理画像領域を示した図である。もしヒストグラム平均化処理を行う際に、読み取りパターン１６の全てが画像表示画面１５内にない場合には異なるヒストグラム平均化アルゴリズムを使わなくてはならなくなり、余計な処理時間が発生する。
【００４２】
そこで、処理画面領域を画像表示画面１５より狭い領域に限定し、必ず読み取りパターン１６の全てが画像表示画面１５内に入るようにすることで、読み取りパターン１６の全てが画像表示画面１５内にあるかどうかの判定を省略することができる。
【００４３】
具体的には、例えば読み取りパターン１６が縦横共に７セルで構成されている場合には、各行と各列に３セル幅の非スキャン領域を設定し、（３，３）、（１，ｎ−３）、（ｍ−３、ｎ−３）、（３、ｎ−３）で囲まれる領域を処理画面領域とすれば読み取りパターン１６は必ず画像表示画面１５内に存在することになる。
【００４４】
（３，３）、（１，ｎ−３）、（ｍ−３、ｎ−３）、（３、ｎ−３）で囲まれる領域の全てのセルに対してヒストグラム平均化処理が終了した時点で、（４，４）、（４，６）、（６，６）、（６，４）で囲まれた領域のデータを（１，１）、（１，３）、（３，３）、（１，３）で囲まれた領域に平行移動してセル（４、４）のデータがセル（１、１）となり、セル（６，６）のデータがセル（３、３）になるようにコピーする。
【００４５】
同様に、セル（ｍ−５，４）、（ｍ−５，６）、（ｍ−３，４）、（ｍ−３，６）で囲まれた領域のデータをセル（ｍ−２，１）、（ｍ−２，３）、（ｍ，３）、（ｍ，１）で囲まれた領域にコピーする。
【００４６】
図３（ｅ）は、画面四隅を除く１〜３行目およびｍ−２〜ｍ行目のデータコピー方法を図示したものである。セル（４，４）、（４，ｎ−３）、（３、ｎ−３）、（６、４）で囲まれた領域のデータを左方向に３セル分シフトして、セル（１，４）、（１，ｎ−３）、（３、ｎ−３）、（３、４）の領域にコピーする。
【００４７】
同様に、セル（ｍ−５，４）、（ｍ−５，ｎ−３）、（ｍ−３、ｎ−３）、（ｍ−３、４）で囲まれた領域のデータを下方向に３セル分シフトして、セル（ｍ−２，４）、（ｍ−２，ｎ−３）、（ｍ，ｎ−３）、（ｍ、４）の領域にコピーする。
【００４８】
図３（ｆ）は、画面四隅を除く１〜３列目のデータコピー方法を図示したものである。セル（４，４）、（４，６）、（ｍ−３、６）、（ｍ−３、４）で囲まれた領域のデータを左方向に３セル分シフトして、セル（４，１）、（４，３）、（ｍ−３、３）、（ｍ−３、１）の領域にコピーする。
【００４９】
同様に、セル（４，ｎ−５）、（４，ｎ−３）、（ｍ−３、ｎ−３）、（ｍ−３、ｎ−５）で囲まれた領域のデータを下方向に３セル分シフトして、セル（４，ｎ−２）、（４，ｎ）、（ｍ−３，ｎ）、（ｍ−３、ｎ−２）の領域にコピーする。
【００５０】
ここで、ヒストリとはヒストリ抽出エリア内の各ピクセルの明るさの分布として定義する。明るさが８ビット情報であれば明るさを示す２５６個の配列となる。
【００５１】
上記に述べたように、明るすぎる画像や暗すぎる画像についてはヒストリの平均化を行うことでディテール抽出が可能となり、明るい部分と暗い部分が混在している画像においては領域を区切ってそれぞれの領域内で別々にヒストリの平均化を行えば境界部分のディテールも抽出することが出来る。
【００５２】
しかしエリアを区切るアルゴリズムは複雑になると予想出来るし、エリアの境界を画像上で自然に繋ぐにはフェードなどの処理が必要となってしまい、エリアは小さい範囲で多数に分割する方がより自然にディテールを抽出出来るが、エリアが狭すぎるとエリア周辺とのつながりが不自然になり、エリアと同サイズのディテールを抽出することが出来ない場合がある等の問題がある。
【００５３】
そこで、算出エリアを１ピクセルとし、そのピクセルの明るさを決めるために周辺のヒストリを利用してヒストリの平均化の算出を行うことを考案した。
【００５４】
算出エリアを１ピクセルとすることで次のメリットが考えられる。
−  エリアを区切る算出過程が不要となり、ヒストリの平均化１パスのみで実現出来る。
−  エリア境界の合成を考える必要がない。
−  エリアと同サイズのディテールを失う問題を回避出来る。
ただし、全ピクセル（ＶＧＡで約３０万）に対してヒストリの平均化計算が必要となり、この計算量を減らすアルゴリズムが必要となる。
【００５５】
配列の添え字番号を明るさとして、各要素はその明るさを持つピクセルの数が格納される。
【００５６】
一般的には配列をクリアした後にエリアを走査してピクセルの明るさを取得し、各配列の要素をインクリメントすることで実装される。
【００５７】
本アルゴリズムではピクセル単位で算出を行うため、最初の１ピクセルでは上記算出が必要になるが、２回目は着目ピクセル１７が右へひとつ移動するだけであるため、ヒストリを再計算する必要はなく、移動によって失った左列のピクセルを減算し、追加された右列のピクセルを加算するだけでよい。
【００５８】
このようにピクセル単位でヒストリの平均化を算出することでヒストリの更新は大幅に省力化が可能となる。
【００５９】
また、処理は各ラインで独立しているため、一般的なグラフィックボードに搭載されているセルを利用して並列処理を行って高速な処理が可能となり、２５６セルのグラフィックボードだと２ライン分の処理時間で処理が完了する。
【００６０】
一般的なヒストリの平均化算出は前項で算出したヒストリ配列を元に明るさ変換テーブルを生成し、変換テーブルに従って明るさを算出する。
【００６１】
以下に、一般的なテーブルの算出アルゴリズムを示す。（明るさは８ビットを想定、ヒストリ配列はhistry、変換テーブル配列はtable、エリア内の画素数の合計をtotalとしている）
for ( i=n=0; i<256; i++) {
n = n + hist[ i ];
table[ i ] = n * 256 / total;
【００６２】
この後、以下のようなアルゴリズムを使って変換テーブルに従ってエリアの明るさを算出する。
for ( i=0; i<dy; i++) {
for ( j=0; j<dx; j++) {
p = get_pix( x + j , y + i);
p = table[ p ];
put_pix( x + j , y + i , p );
}}
【００６３】
上記において、x,yはエリア原点、dx,dyはエリア範囲、関数get_pix(x,y)は画像の明るさ取得、put_pix(x,y,p)は画像へ算出後の明るさ格納配列である。
【００６４】
ここで、本アルゴリズムでは算出エリアを１ピクセルとしたため、上記例のようなループは不要となる。また、変換テーブルも算出対象となっているピクセルの明るさのみ変換出来ればよいので、段落（００４３）および（００４４）と同等処理のアルゴリズムは下記のようになる。
p = get_pix( x , y );
for ( i=n=0; i<=p; i++){
n = n + hist[ i ];
}
p = n * 256 / total;
put_pix( x , y , p );
【００６５】
白黒画像の場合は本アルゴリズムをそのまま適応可能であるが、カラー画像の場合は、一般的には色情報と明るさ情報を分ける必要がある。
【００６６】
一般的にヒストリの平均化はＲＧＢの各プレーンに対して処理されるが、本件ではＪＰＥＧやＭＰＥＧなどで用いられている色空間を利用することで、グラフィックボードが持つ基本機能を使って色空間を分離し、必要なプレーンのみを処理することで白黒画像と同等の処理となっている。
【００６７】
色空間と処理するプレーンの対応は例えば下記のものが考えられる。
ＹＣｂＣｒ  ：  Yプレーン
ＨＳＶ      ：  Vプレーン
Ｌａｂ      ：  Lプレーン
ＨＬＳ      ：  Lプレーン
【００６８】
入力画像はグラフィックボードの内部表現に合わせて上記の色空間から選択し、輝度プレーンのみを処理することでＲＧＢ変換処理と３回同じ処理の繰り返しや色相の変動を回避する。
【００６９】
図４はピクセル単位検出のヒストグラム最適化の原理図である。本実施例においては、図４（ａ）読み取りパターン１６において選択ピクセルのヒストグラムを計算し、着目ピクセル１７の値を段落（００４６）のアルゴリズムで計算する。
その後、ヒストグラム計算のための選択ピクセルは右へシフトする。
【００７０】
着目ピクセル１７が１ピクセル右へ移動した図４（ｂ）においては、ヒストグラム計算における選択ピクセル１行目から７行目までのうち２列目〜７列目は図４（ａ）と共通であるが、新たに２列目〜７列目までの８列目が追加となっている。
【００７１】
よって２列目〜７列目までの８列目にあるピクセルについては新たな計算対象となるが、これは前回のヒストグラムの計算において、ピクセル（１，１）、（１、７）、（７、１）、（７，７）で囲まれる領域のヒストグラムの合計値から２列目〜７列目までの１列目のデータを減算し、２列目〜７列目までの８列目のデータを加算すれば容易にヒストグラムを計算することができる。
【００７２】
図４（ｂ）の実線領域は次の計算時の計算エリアを示し、４行５列目のピクセルがヒストリ平均化による明るさ算出対象となる着目ピクセル１７、ピクセル（１、２）、（１，８）、（７，２）、（７、８）で囲まれる領域から着目ピクセル（４、５）を除いた領域が計算領域となるが、前述の通り、実際の計算は、前の計算値から１列目のヒストグラムを減算し、５列目を加算するだけなので短時間で処理できる。
【００７３】
図５は、ひとつおきにピクセルを移動させて計算する例である。本発明においては、上記の如くピクセルを１つずつスキャンさせる方法以外に、前記所定のパターンは水平走査方向に移動させる際に、前記所定パターン全体が前記画面内にある場合には、移動前後のパターンは重複部分において所定オーバーラップ部分を持たせながら所定規則に従って移動させることで間引き処理を行い、画面全体に対するコントラストを改善させながら処理の高速化ができる。以下に、前記間引き高速処理の詳細を説明する。
【００７４】
最初に図５（ａ）に示すように、ピクセル（１，１）、（１、５）、（５，１）、（５，５）で囲まれる領域において、ピクセル（１，１）からピクセル（５，１）までの領域とピクセル（１，３）と（２，３）の領域、ピクセル（４，３）と（５，３）の領域、ピクセル（１、５）から（５，５）までの領域についてピクセルの平均値を計算し、着目ピクセル１７であるピクセル（３，３）の値を決定する。
【００７５】
次に、図５（ｂ）のように水平方向に２ピクセル分移動して、着目ピクセル１７をピクセル（３，５）とし、ピクセル（１，３）、（１、７）、（５，３）、（５，７）で囲まれる領域において、ピクセル（１，３）からピクセル（５，３）までの領域とピクセル（１，５）と（２，５）の領域、ピクセル（４，５）と（５，５）の領域、ピクセル（１、７）から（５，７）までの領域についてピクセルの平均値を計算し、着目ピクセル１７であるピクセル（３，５）の値を決定する。
【００７６】
図６は並列処理の例である。処理を複数の計算セルに分散し、並列処理することにより計算時間を短縮できる。図６（ａ）において、ピクセル（１，１）、（１，５）、（５、１）、（５，５）で囲まれた領域が第１読み取りパターン１６で、ピクセル（６，１）、（６，５）、（１０、１）、（１０，５）で囲まれた領域が第２パターン１６ａである。
【００７７】
第１読み取りパターン１６では、セル（１，１）〜（５、１）と、セル（１，３）及び（２，３）と、セル（４，３）及び（５，３）と、セル（１，５）〜（５，５）のヒストグラムを計算し、その平均値を使ってセル（３，３）の値を決定する。
【００７８】
第２読み取りパターン１６ａでは、セル（６，１）〜（１０、１）と、セル（６，３）及び（７，３）と、セル（９，３）及び（１０，３）と、セル（６，５）〜（１０，５）のヒストグラムを計算し、その平均値を使ってセル（３，３）の値を決定する。
【００７９】
図７（ａ）は元画像の例であり、森の手前にある橋付近を夕方撮影したものである。全体的に暗い画面となっている。
【００８０】
図７（ｂ）は、本発明によるアルゴリズムで補正した画像で、森の手前にある橋付近が認識できる画像となっている。
【００８１】
本発明の画像処理方法で採用したアルゴリズムを使うことにより、短時間で画像処理できるので、図５にある静止画のみならず、同様の暗い場面を撮影したビデオ画像でもリアルタイムに再生することができるので監視カメラや室内の窓など同一画面内において極端に明るい部分と暗い部分が混在する場面を撮影したビデオ画像においても画像補整に有効な技術である。
【産業上の利用可能性】
【００８２】
本発明の画像処理方法を使うことにより、監視カメラだけでなく、一般のビデオカメラにおいても高価な明るいレンズを使わなくとも回路で補正することにより暗視カメラに近い高い感度を持たせることができるので安価に高性能な映像機器を市場に提供することにより映像芸術の世界を広げることができる。
【符号の説明】
【００８３】
１  ＣＰＵ
２ａ  ＲＯＭ
２ｂ  ＲＡＭ
２ｃ  本体メモリ
３  システムバス
４  Ｉ／Ｆ（ＰＣＩ等）
５  Ｉ／Ｆ（Ｉ／Ｏ等）
６  フレームグラバ
７  操作装置
８  外部接続ポート
９  ＧＰＵ
１０  ＧＰＵメモリ
１１  フレームバッファ（処理用）
１２  フレームバッファ（出力用）
１３  表示出力回路
１４  ディスプレイ
１５  画像表示画面
１６  読み取りパターン
１６ａ  読み取りパターン
１７  着目ピクセル
１７ａ  着目ピクセル
【図１】
2010183409.tif 000003
【図２】
2010183409.tif 000004
【図３ａ】
2010183409.tif 000005
【図３ｂ】
2010183409.tif 000006
【図３ｃ】
2010183409.tif 000007
【図３ｄ】
2010183409.tif 000008
【図３ｅ】
2010183409.tif 000009
【図３ｆ】
2010183409.tif 000010
【図４】
2010183409.tif 000011
【図５】
2010183409.tif 000012
【図６】
2010183409.tif 000013
【図７】
2010183409.tif 000014
【手続補正書】
【提出日】平成21年5月29日(2009.5.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
監視カメラや室内の窓など同一画面内において極端に明るい部分と暗い部分が混在する画面で構成される画面を見やすい画面に変換する画像処理方法を提供する。
【背景技術】
【０００２】
監視カメラの映像は２４時間稼動しているため、極端に明るい状況や暗い状況が刻々変化する。カメラの一般的なオートゲインコントロールなどでは変化が大きい場合には極端な変化に追いつけない場合が多い。また、室内の窓など同一画面内において極端に明るい部分と暗い部分が混在する場合はゲインコントロールでは対応することが出来ない。
【０００３】
そこで、画像評価技術としてヒストグラムを使い、各カラーの明るさのレベル別にピクセル数をグラフ化し、画像内のピクセル分布を示したものであり、シャドウ（ヒストグラムの左側部分）、中間調（ヒストグラムの中央）およびハイライト（ヒストグラムの右側部分）のディテールが表示され、画像に適切な補正を行うための十分なディテールがあるかどうかを判断する方法が使われている。
【０００４】
例えば、特許文献１には、光学像を光電変換して電気信号を出力する撮像素子と、該撮像素子から出力された電気信号を処理して映像信号を生成する信号処理手段と、該信号処理手段から出力された映像信号からヒストグラムを生成するヒストグラム回路と、該ヒストグラム回路によって検出されたヒストグラムを用いて露光制御を行う露光制御手段とを有する撮像装置が開示されている。
【０００５】
また特許文献２には、原稿からの光を読取って画像データを生成する工程と、前記画像データから濃度分布のヒストグラムを作成する工程と、前記画像データの全データ数に対する濃度分布の明暗両端寄りのデータ数の割合に基づいて濃度補正曲線を生成する工程と、前記濃度補正曲線で画像データの濃度補正を行う工程とを有する画像処理方法が開示されている。
【０００６】
更に特許文献３には、被写体を撮像し、撮像画像の画像データを取得する撮像手段と、その撮像手段により取得された画像データからなる撮像画像の所定の画素部分であって輝度レベルが所定の範囲内にある画素からなる画素部分に対し、当該画素部分における各画素の輝度値を、各画素間の相対的な輝度の上下関係を維持したまま各画素間の輝度間隔を増大させるよう変換する階調補正を行う階調補正手段とを備えた撮像装置が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−１４２１５０号公報
【特許文献２】特開２００３−０５１９４４号公報
【特許文献３】特開２００７−１２４０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１では、例えば静止画の撮影を行う場合において、ＣＰＵを使って画面全体でヒストグラム生成部２５により生成された撮像画像のヒストグラムについて、有用データ範囲とした、明るさが分布している輝度範囲と、無用データ範囲とした明るさが分布していない輝度範囲とを検索しているが、画素数の多い画面では大きな処理能力を持つＣＰＵを使わないとリアルタイムでの静止画撮影は難しい。
【０００９】
特許文献２では、カラーモードの場合にはＲ、Ｇ、Ｂ全色を合成したヒストグラムを、グレーモードの場合にはＧ色のみのヒストグラムを生成する画像処理システムにおいては多くの処理能力が必要となり、能力の高いホストコンピュータを使わないと処理時間が長くなってしまうという問題点がある。
【００１０】
特許文献３では、撮像画像のヒストグラムを使って補正カーブに従ってガンマ補正（階調補正）を行ない、例えば分布にふたつの山がある場合は、双方の分布域範囲が、処理以前に各々の高輝度側に存在していた無用データ範囲（明るさが分布していない輝度範囲）を消失させるよう、それぞれ高輝度側に拡大することにより記録画像には、全体の階調関係を保持しながら暗い部分（遠距離の背景）と明るい部分（近距離の被写体）に十分な階調を割り当てることができるとしている。しかしこの方法では、画素数の多い画面全体のヒストグラムを計算すると時間がかかってしまい、動画には使えないという問題がある。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明においては、動画のフレーム毎又は静止画毎の画像処理方法であって、被写体を撮影した画像からピクセル単位の画像データを取り込む取込手段と、取り込んだ画像データを特定の色空間に分解した後に輝度のヒストグラムを生成するヒストグラム生成手段を備え、前記取込手段にて前記画像を所定のパターンで読み出し、前記ヒストグラム生成手段を使って前記所定パターンのヒストグラムを生成し、次いで、当該所定パターンの中の特定位置のピクセルの輝度を生成したヒストグラムに基づいて決定するにあたり、ループ回数をピクセル値としたアルゴリズムに基づいて行うようにした。
【００１２】
また、前記特定位置のピクセルの輝度を設定した後に、所定規則に従ってピクセルと所定パターンを移動させ、移動後の所定パターンのヒストグラムを生成する際に、移動前後で重複しなくなったピクセルのヒストグラムを減算し且つ新たに所定パターンのエリアに入ったピクセルのヒストグラムのみを加算することや、前記所定パターン全体が前記画面内にある場合には、移動前後のパターンは重複部分において所定オーバーラップ部分を持たせながら所定規則に従って移動させることも考えられる。
【発明の効果】
【００１３】
本発明によるアルゴリズムは、２パス方式を取らず単純なアルゴリズムで同等の結果を得るアルゴリズムであり、現在一般的に市販されている安価なマイクロコンピュータやパーソナルコンピュータとグラフィックボードの組み合わせで容易にＶＧＡ動画のリアルタイム処理を行うことが可能であり、ＦＰＧＡなどへのハードウエア化やＤＳＰによる処理も可能となる。
【図面の簡単な説明】
【００１４】
【図１】基本システム例である。
【図２】ヒストグラムの比較例である。
【図３ａ】画面と所定の読み取りパターンの位置関係を示す図である。
【図３ｂ】画面と所定の読み取りパターンの位置関係を示す図である。
【図３ｃ】画面と所定の読み取りパターンの位置関係を示す図である。
【図３ｄ】画面と所定の読み取りパターンの位置関係を示す図である。
【図３ｅ】画面と所定の読み取りパターンの位置関係を示す図である。
【図３ｆ】画面と所定の読み取りパターンの位置関係を示す図である。
【図４】ピクセル単位検出のヒストリ最適化の基本原理例である。
【図５】２列毎にスキャンする例である。
【図６】複数分散処理の例である。
【図７】補正前と補正後の画像比較例である。
【発明を実施するための形態】
【実施例】
【００１５】
以下に本発明の実施例を記載する。なお、以下の実施例は本発明においてグラフィックボードは旧来のものではなく、プロセッサあたり１２０個以上のコアを搭載したマルチコアＧＰＵを搭載したグラフィックボード使うことが望ましい。
【００１６】
図１は、本発明の基本システム例である。本システムは、基本的にはグラフィクスボードを搭載したマイクロコンピュータまたはパーソナルコンピュータであって、ＣＰＵ１にはシステムバス３を介してグラフィックボード、ＲＯＭ２ａ、ＲＡＭ２ｂ、ＰＣＩなどのインターフェイス４を通して画像を取り込むフレームグラバ６で構成される。また、本装置を操作するためにＩ／Ｏインターフェイス５を通してボタン等の操作装置７やシリアルポート等の外部接続ポート８を持つ。
【００１７】
グラフィックボードは、一並列処理セルを持つＧＰＵ９、処理用フレームバッファ１１、出力用フレームバッファ１２、表示出力回路１３から構成されている。
【００１８】
動画のフレーム毎又は静止画の画像処理方法において、上記の構成をとることにより、本発明の画像処理方法では、被写体を撮影した画像からピクセル単位の画像データを取り込む取込手段と、取り込んだ画像データを特定の色空間に分解した後に輝度のヒストグラムを生成するヒストグラム生成手段を備え、前記取込手段にて前記画像を色別に所定のパターンで読み出し、前記ヒストグラム生成手段を使って前記パターンの中の特定位置のピクセルの周囲の平均ヒストグラムを生成し、この平均ヒストグラムを使って前記特定位置のピクセルの輝度を設定するようにした。
【００１９】
ＧＰＵ９はＣＰＵ１から指示を受けて各セルに対して処理用フレームバッファ１１にある画像データを指示に従って処理を行い、処理結果を出力用フレームバッファ１２へ書き込むよう命令する。セルは複数あり並列処理を行うことでＣＰＵからの指示をセルの数だけ一斉に処理する。
【００２０】
コンピュータのＣＰＵ１は、起動時にＲＯＭ２ａから本件処理に相当するソフトウエアをＲＡＭ２ｂへ転送しソフトウエアを実行する。実行したソフトウエアは
（１）フレームグラバから画像を取り込む
（２）取り込んだ画像をグラフィックボード上の処理用フレームバッファ１１へ転送する（３）ＧＰＵへ本件処理を指示する
（４）ＧＰＵ内セルが並列処理によって指示を実行する
（５）処理結果がすべて出力用フレームバッファに書き込まれるまで待つ
（６）処理結果を表示
といった一連の動作を繰り返す。
【００２１】
処理用フレームバッファ１１や出力用フレームバッファ１２では複数の色空間を表現することが出来る。本件ではＹＣｂＣｒ、ＨＳＶ、Ｌａｂ、ＨＬＳを対象とする。
【００２２】
表示出力回路１３は上記色空間表現となっている出力用フレームバッファ１２の内容をディスプレイに適合した映像信号に変換する。複数の映像信号に対応しており、アナログＲＧＢが一般的であるが、ＤＶＩ、コンポーネント（Ｄ１〜Ｄ４）、ＹＣ分離、コンポジットなどを出力することも出来る。
【００２３】
本発明の画像処理方法は、動画のフレーム毎又は静止画の画像を扱い、被写体を撮影した画像からピクセル単位の画像データを取り込む取込手段と、取り込んだ画像データをピクセル単位で特定の色空間に分解した後に輝度のヒストグラムを生成するヒストグラム生成手段を備え、前記画像輝度情報を所定の読み取りパターン１６で読み出し、前記読み取りパターン１６の中の特定位置のピクセルを除いた平均ヒストグラムを基本として前記読み取りパターン１６の特定位置のピクセルの輝度を設定するようにした。
【００２４】
また、前記所定の読み取りパターン１６は水平走査方向に移動させた場合に、移動前後の読み取りパターン１６は重複部分において移動前後で完全にオーバーラップさせることにより、前記画像上で読み取りパターン１６を移動させてもデータ互換が保証される。
【００２５】
上記において、計算をコンピュータのＣＰＵではなく、グラフィックボードのＧＰＵを使うことにより、基本的に動的なデータをストリームとして処理が可能となり、カーネルでの演算処理過程においては、データをリアルタイムに解析し、高精度かつ高速処理が行える。
【００２６】
カーネルがストリームの演算処理を行う際には、動的なデータの並列処理が可能なパイプライン処理が利用され、従来のマルチコアＣＰＵのコア数が２〜４コアであるのに対して、本実施例で使ったＧＰＵは並列処理が可能な１２８個の演算ユニットを持つスカラプロセッサとなっている。
【００２７】
上記のスカラプロセッサを使っても、画像のリアルタイム処理には莫大な計算量があるので、３Ｄグラフィクスには９６０コアのＧＰＵが使われる例もあり、まだ充分な計算能力には達していないのが現状であり、本発明は３Ｄ処理には充分な性能とは言えないＧＰＵを使ってリアルタイムで動画のヒストグラム最適化を可能とするものである。
【００２８】
図２はヒストグラムの比較例である。図２（ａ）はオリジナルのヒストグラム例で、左右にふたつの山がある。図２（ｂ）は均一化して略フラット化したヒストグラムである。
【００２９】
一般的には明るさの分布が均一でない画像に対しては一般的にヒストグラムの平均化を行って明るさ分布を調整して画像改善を行うか、Ｓ字カーブを持つガンマ曲線変換を用いてコントラストの低い画像を伸張することによってコントラストを広げ、暗い箇所は暗く、明るい箇所は明るくしメリハリのある画像にする処理を行っている。
【００３０】
ヒストグラムの平均化を行えば、暗い部分はディテールがはっきりするが、暗い部分が多いため空と空に接している部分が明るくなり過ぎてディテールを損なう。この境界部分のディテールを抽出するには、例えば空（明るい部分）と空と背景の境界と地上（暗い部分）にエリアを分割してそれぞれの領域でヒストグラムの平均化を行うことでディテールの損失を軽減出来る。
【００３１】
また、予め画像を走査して明るさの分布を検出し、エリアを分けてヒストグラムの平均化を行うことで、明暗が極端な画像に対しても中間部分のディテールを抽出することも可能である。
【００３２】
前記の方法ではエリア分割のために画像を走査する必要があり、その後にヒストグラムの平均化を行うためにもう一度画像走査を行う２パス方式となる。
【００３３】
前記の方法は動画をリアルタイム処理するにあたって下記の問題があり高速に処理出来ないし、エリアを分割するアルゴリズムは一般化が難しく複雑なアルゴリズムになってしまう。
【００３４】
また、ヒストグラムの平均化は全画面を走査して明るさの変換テーブルを作成した後にテーブルに従って画像を変換する必要があり、分割結果を記憶する画像と同程度のメモリが必要となる。
【００３５】
更に、エリア分割で２回、ヒストグラムの平均化で２回の計４回画像を走査する必要があり、エリアとエリアの境界部分が不自然もしくはフェード合成を行う必要がある。
【００３６】
しかし、以下に詳細を説明する本発明の方法であれば、算出エリアを１ピクセルとすることでエリアを区切る算出過程が不要なのでヒストグラムの平均化１パスのみで処理できるようになる。
【００３７】
図３は、画面と所定の読み取りパターンの位置関係を示している。図３（ａ）は画像を表示する画面の全体を示し画像表示画面１５における読み取りパターン１６を示している。
【００３８】
本発明においては以下に詳細説明されているように、前記特定位置のピクセルの輝度を設定した後に、所定規則に従ってピクセルと所定パターンを移動させ、移動後の所定パターンの平均ヒストグラムを生成する際に、移動前後で重複しなくなったピクセルのヒストグラムを減算し且つ新たに所定パターンのエリアに入ったピクセルのヒストグラムのみを加算する画像処理方法を採用している。
【００３９】
ここで、画面がｍ行ｎ列のピクセルで構成されるとすると、（行、列）で配列を表現すれば、（０，０）のピクセルから画面が始まり、１行目は（１，ｎ）のピクセルで終わり、最終は（ｍ、ｎ）のピクセルとなる。
【００４０】
図３（ｂ）は読み取りパターンを示していて、読み取りパターン１６において、特定ピクセルを着目ピクセル１７として設定している。
【００４１】
図３（ｃ）は、画像表示画面内の処理画像領域を示した図である。もしヒストグラム平均化処理を行う際に、読み取りパターン１６の全てが画像表示画面１５内にない場合には異なるヒストグラム平均化アルゴリズムを使わなくてはならなくなり、余計な処理時間が発生する。
【００４２】
そこで、処理画面領域を画像表示画面１５より狭い領域に限定し、必ず読み取りパターン１６の全てが画像表示画面１５内に入るようにすることで、読み取りパターン１６の全てが画像表示画面１５内にあるかどうかの判定を省略することができる。
【００４３】
具体的には、例えば読み取りパターン１６が縦横共に７セルで構成されている場合には、各行と各列に３セル幅の非スキャン領域を設定し、（３，３）、（１，ｎ−３）、（ｍ−３、ｎ−３）、（３、ｎ−３）で囲まれる領域を処理画面領域とすれば読み取りパターン１６は必ず画像表示画面１５内に存在することになる。
【００４４】
（３，３）、（１，ｎ−３）、（ｍ−３、ｎ−３）、（３、ｎ−３）で囲まれる領域の全てのピクセルに対してヒストグラム平均化処理が終了した時点で、（４，４）、（４，６）、（６，６）、（６，４）で囲まれた領域のデータを（１，１）、（１，３）、（３，３）、（１，３）で囲まれた領域に平行移動してピクセル（４、４）のデータがピクセル（１、１）となり、ピクセル（６，６）のデータがピクセル（３、３）になるようにコピーする。
【００４５】
同様に、ピクセル（ｍ−５，４）、（ｍ−５，６）、（ｍ−３，４）、（ｍ−３，６）で囲まれた領域のデータをピクセル（ｍ−２，１）、（ｍ−２，３）、（ｍ，３）、（ｍ，１）で囲まれた領域にコピーする。
【００４６】
図３（ｅ）は、画面四隅を除く１〜３行目およびｍ−２〜ｍ行目のデータコピー方法を図示したものである。ピクセル（４，４）、（４，ｎ−３）、（３、ｎ−３）、（６、４）で囲まれた領域のデータを左方向に３セル分シフトして、ピクセル（１，４）、（１，ｎ−３）、（３、ｎ−３）、（３、４）の領域にコピーする。
【００４７】
同様に、ピクセル（ｍ−５，４）、（ｍ−５，ｎ−３）、（ｍ−３、ｎ−３）、（ｍ−３、４）で囲まれた領域のデータを下方向に３ピクセル分シフトして、ピクセル（ｍ−２，４）、（ｍ−２，ｎ−３）、（ｍ，ｎ−３）、（ｍ、４）の領域にコピーする。
【００４８】
図３（ｆ）は、画面四隅を除く１〜３列目のデータコピー方法を図示したものである。ピクセル（４，４）、（４，６）、（ｍ−３、６）、（ｍ−３、４）で囲まれた領域のデータを左方向に３ピクセル分シフトして、ピクセル（４，１）、（４，３）、（ｍ−３、３）、（ｍ−３、１）の領域にコピーする。
【００４９】
同様に、ピクセル（４，ｎ−５）、（４，ｎ−３）、（ｍ−３、ｎ−３）、（ｍ−３、ｎ−５）で囲まれた領域のデータを下方向に３ピクセル分シフトして、ピクセル（４，ｎ−２）、（４，ｎ）、（ｍ−３，ｎ）、（ｍ−３、ｎ−２）の領域にコピーする。
【００５０】
ここで、ヒストグラムとはヒストグラム抽出エリア内の各ピクセルの明るさの分布として定義する。明るさが８ビット情報であれば明るさを示す２５６個の配列となる。
【００５１】
上記に述べたように、明るすぎる画像や暗すぎる画像についてはヒストグラムの平均化を行うことでディテール抽出が可能となり、明るい部分と暗い部分が混在している画像においては領域を区切ってそれぞれの領域内で別々にヒストグラムの平均化を行えば境界部分のディテールも抽出することが出来る。
【００５２】
しかしエリアを区切るアルゴリズムは複雑になると予想出来るし、エリアの境界を画像上で自然に繋ぐにはフェードなどの処理が必要となってしまい、エリアは小さい範囲で多数に分割する方がより自然にディテールを抽出出来るが、エリアが狭すぎるとエリア周辺とのつながりが不自然になり、エリアと同サイズのディテールを抽出することが出来ない場合がある等の問題がある。
【００５３】
そこで、算出エリアを１ピクセルとし、そのピクセルの明るさを決めるために周辺のヒストグラムを利用してヒストグラムの平均化の算出を行うことを考案した。
【００５４】
算出エリアを１ピクセルとすることで次のメリットが考えられる。
−  エリアを区切る算出過程が不要となり、ヒストグラムの平均化を１パスのみで実現出来る。
−  エリア境界の合成を考える必要がない。
−  エリアと同サイズのディテールを失う問題を回避出来る。
ただし、全ピクセル（ＶＧＡで約３０万）に対してヒストグラムの平均化計算が必要となり、この計算量を減らすアルゴリズムが必要となる。
【００５５】
配列の添え字番号を明るさとして、各要素はその明るさを持つピクセルの数が格納される。
【００５６】
一般的には配列をクリアした後にエリアを走査してピクセルの明るさを取得し、各配列の要素をインクリメントすることで実装される。
【００５７】
本アルゴリズムではピクセル単位で算出を行うため、最初の１ピクセルでは上記算出が必要になるが、２回目は着目ピクセル１７が右へひとつ移動するだけであるため、ヒストグラムを再計算する必要はなく、移動によって失った左列のピクセルを減算し、追加された右列のピクセルを加算するだけでよい。
【００５８】
このようにピクセル単位でヒストグラムの平均化を算出することでヒストグラムの更新は大幅に省力化が可能となる。
【００５９】
また、処理は各ラインで独立しているため、一般的なグラフィックボードに搭載されているピクセルを利用して並列処理を行って高速な処理が可能となり、２５６セルのグラフィックボードだと２ライン分の処理時間で処理が完了する。
【００６０】
一般的なヒストグラムの平均化算出は前項で算出したヒストグラム配列を元に明るさ変換テーブルを生成し、変換テーブルに従って明るさを算出する。
【００６１】
以下に、一般的なテーブルの算出アルゴリズムを示す。（明るさは８ビットを想定、ヒストグラム配列はhist、変換テーブル配列はtable、エリア内の画素数の合計をtotalとしている）
for ( i=n=0; i<256; i++) {
n = n + hist[ i ];
table[ i ] = n * 256 / total;
}
【００６２】
この後、以下のようなアルゴリズムを使って変換テーブルに従ってエリアの明るさを算出する。
for ( i=0; i<dy; i++) {
for ( j=0; j<dx; j++) {
p = get_pix( x + j , y + i);
p = table[ p ];
put_pix( x + j , y + i , p );
}
}
【００６３】
上記において、x,yはエリア原点、dx,dyはエリア範囲、get_pix(x,y)は元画像の明るさを取得する関数、put_pix(x,y,p)は変換先画像へ算出後の明るさを格納する関数である。
【００６４】
ここで、本アルゴリズムでは算出エリアを１ピクセルとしたため、上記例のようなループは不要となる。また、変換テーブルも算出対象となっているピクセルの明るさのみ変換出来ればよいので、段落（００６１）および（００６２）と同等処理のアルゴリズムは下記のようになる。
p = get_pix( x , y );
for ( i=n=0; i<=p; i++){
n = n + hist[ i ];
}
p = n * 256 / total;
put_pix( x , y , p );
【００６５】
白黒画像の場合は本アルゴリズムをそのまま適応可能であるが、カラー画像の場合は、一般的には色情報と明るさ情報を分ける必要がある。
【００６６】
一般的にヒストリの平均化はＲＧＢの各プレーンに対して処理されるが、本件ではＪＰＥＧやＭＰＥＧなどで用いられている色空間を利用することで、グラフィックボードが持つ基本機能を使って色空間を分離し、必要なプレーンのみを処理することで白黒画像と同等の処理となっている。
【００６７】
色空間と処理するプレーンの対応は例えば下記のものが考えられる。
ＹＣｂＣｒ  ：  Yプレーン
ＨＳＶ      ：  Vプレーン
Ｌａｂ      ：  Lプレーン
ＨＬＳ      ：  Lプレーン
【００６８】
入力画像はグラフィックボードの内部表現に合わせて上記の色空間から選択し、輝度プレーンのみを処理することでＲＧＢ変換処理と３回同じ処理の繰り返しや色相の変動を回避する。
【００６９】
図４はピクセル単位検出のヒストグラム最適化の原理図である。本実施例においては、図４（ａ）読み取りパターン１６において選択ピクセルのヒストグラムを計算し、着目ピクセル１７の値を段落（００６４）のアルゴリズムで計算する。
その後、ヒストグラム計算のための選択ピクセルは右へシフトする。
【００７０】
着目ピクセル１７が１ピクセル右へ移動した図４（ｂ）においては、ヒストグラム計算における選択ピクセル１行目から７行目までのうち２列目〜７列目は図４（ａ）と共通であるが、新たに２列目〜７列目までの８列目が追加となっている。
【００７１】
よって２列目〜７列目までの８列目にあるピクセルについては新たな計算対象となるが、これは前回のヒストグラムの計算において、ピクセル（１，１）、（１、７）、（７、１）、（７，７）で囲まれる領域のヒストグラムの合計値から２列目〜７列目までの１列目のデータを減算し、２列目〜７列目までの８列目のデータを加算すれば容易にヒストグラムを計算することができる。
【００７２】
図４（ｂ）の実線領域は次の計算時の計算エリアを示し、４行５列目のピクセルがヒストリ平均化による明るさ算出対象となる着目ピクセル１７、ピクセル（１、２）、（１，８）、（７，２）、（７、８）で囲まれる領域から着目ピクセル（４、５）を除いた領域が計算領域となるが、前述の通り、実際の計算は、前の計算値から１列目のヒストグラムを減算し、５列目を加算するだけなので短時間で処理できる。
【００７３】
図５は、ひとつおきにピクセルを移動させて計算する例である。本発明においては、上記の如くピクセルを１つずつスキャンさせる方法以外に、前記所定のパターンは水平走査方向に移動させる際に、前記所定パターン全体が前記画面内にある場合には、移動前後のパターンは重複部分において所定オーバーラップ部分を持たせながら所定規則に従って移動させることで間引き処理を行い、画面全体に対するコントラストを改善させながら処理の高速化ができる。以下に、前記間引き高速処理の詳細を説明する。
【００７４】
最初に図５（ａ）に示すように、ピクセル（１，１）、（１、５）、（５，１）、（５，５）で囲まれる領域において、ピクセル（１，１）からピクセル（５，１）までの領域とピクセル（１，３）と（２，３）の領域、ピクセル（４，３）と（５，３）の領域、ピクセル（１、５）から（５，５）までの領域についてピクセルの平均値を計算し、着目ピクセル１７であるピクセル（３，３）の値を決定する。
【００７５】
次に、図５（ｂ）のように水平方向に２ピクセル分移動して、着目ピクセル１７をピクセル（３，５）とし、ピクセル（１，３）、（１、７）、（５，３）、（５，７）で囲まれる領域において、ピクセル（１，３）からピクセル（５，３）までの領域とピクセル（１，５）と（２，５）の領域、ピクセル（４，５）と（５，５）の領域、ピクセル（１、７）から（５，７）までの領域についてピクセルの平均値を計算し、着目ピクセル１７であるピクセル（３，５）の値を決定する。
【００７６】
図６は並列処理の例である。処理を複数の計算セルに分散し、並列処理することにより計算時間を短縮できる。図６（ａ）において、ピクセル（１，１）、（１，５）、（５、１）、（５，５）で囲まれた領域が第１読み取りパターン１６で、ピクセル（６，１）、（６，５）、（１０、１）、（１０，５）で囲まれた領域が第２パターン１６ａである。
【００７７】
第１読み取りパターン１６では、ピクセル（１，１）〜（５、１）と、ピクセル（１，３）及び（２，３）と、ピクセル（４，３）及び（５，３）と、ピクセル（１，５）〜（５，５）のヒストグラムを計算し、その平均値を使ってピクセル（３，３）の値を決定する。
【００７８】
第２読み取りパターン１６ａでは、ピクセル（６，１）〜（１０、１）と、ピクセル（６，３）及び（７，３）と、ピクセル（９，３）及び（１０，３）と、ピクセル（６，５）〜（１０，５）のヒストグラムを計算し、その平均値を使ってピクセル（３，３）の値を決定する。
【００７９】
図７（ａ）は元画像の例であり、森の手前にある橋付近を夕方撮影したものである。全体的に暗い画面となっている。
【００８０】
図７（ｂ）は、本発明によるアルゴリズムで補正した画像で、森の手前にある橋付近が認識できる画像となっている。
【００８１】
本発明の画像処理方法で採用したアルゴリズムを使うことにより、短時間で画像処理できるので、図５にある静止画のみならず、同様の暗い場面を撮影したビデオ画像でもリアルタイムに再生することができるので監視カメラや室内の窓など同一画面内において極端に明るい部分と暗い部分が混在する場面を撮影したビデオ画像においても画像補整に有効な技術である。
【産業上の利用可能性】
【００８２】
本発明の画像処理方法を使うことにより、監視カメラだけでなく、一般のビデオカメラにおいても高価な明るいレンズを使わなくとも回路で補正することにより暗視カメラに近い高い感度を持たせることができるので安価に高性能な映像機器を市場に提供することにより映像芸術の世界を広げることができる。
【符号の説明】
【００８３】
１  ＣＰＵ
２ａ  ＲＯＭ
２ｂ  ＲＡＭ
２ｃ  本体メモリ
３  システムバス
４  Ｉ／Ｆ（ＰＣＩ等）
５  Ｉ／Ｆ（Ｉ／Ｏ等）
６  フレームグラバ
７  操作装置
８  外部接続ポート
９  ＧＰＵ
１０  ＧＰＵメモリ
１１  フレームバッファ（処理用）
１２  フレームバッファ（出力用）
１３  表示出力回路
１４  ディスプレイ
１５  画像表示画面
１６  読み取りパターン
１６ａ  読み取りパターン
１７  着目ピクセル
１７ａ  着目ピクセル
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動画のフレーム毎又は静止画毎の画像処理方法であって、
被写体を撮影した画像からピクセル単位の画像データを取り込む取込手段と、取り込んだ画像データを特定の色空間に分解した後に輝度のヒストグラムを生成するヒストグラム生成手段を備え、
前記取込手段にて前記画像を所定のパターンで読み出し、前記ヒストグラム生成手段にて前記所定パターンのヒストグラムを生成し、次いで、当該所定パターンの中の特定位置のピクセルの輝度を生成したヒストグラムに基づいて決定するにあたりループ回数をピクセル値としたアルゴリズムに基づいて行うことを特徴とする画像処理方法。
【請求項２】
請求項１に記載の画像処理方法において、前記特定位置のピクセルの輝度を設定した後に、所定規則にしたがってピクセルと所定パターンを移動させ、移動後の所定パターンのヒストグラムを生成する際に、移動前後で重複しなくなったピクセルのヒストグラムを減算し且つ新たに所定パターンのエリアに入ったピクセルのヒストグラムのみを加算することを特徴とする画像処理方法。
【請求項３】
請求項１又は２に記載の画像処理方法において、前記所定のパターンは水平走査方向に移動させた場合に、前記所定パターン全体が前記画面内にある場合には、移動前後のパターンは重複部分において所定オーバーラップ部分を持たせながら所定規則に従って移動させることを特徴とする画像処理方法。
【手続補正書】
【提出日】平成21年8月4日(2009.8.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１パスの画像操作で画像の明るさを変換する画像処理装置であって、前記画像操作の走査位置を含む所定パターンの移動エリアについて明るさ情報ｉのヒストグラムｈｉｓｔ（ｉ）を求める手段と、前記ヒストグラムｈｉｓｔ（ｉ）をｉ≦ｐ（ただしｐは前記走査位置の変換前の明るさ情報）の範囲で累積して累積度数ｎを求める手段と、前記走査位置の明るさ情報ｐを前記累積度数ｎに応じて明るさ情報に変換する手段とを備える画像処理装置。
【手続補正書】
【提出日】平成21年8月26日(2009.8.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１パスの画像走査で画像の明るさを変換する画像処理装置であって、前記画像走査の走査位置を含む所定パターンの移動エリアについて明るさ情報ｉのヒストグラムｈｉｓｔ（ｉ）を求める手段と、前記ヒストグラムｈｉｓｔ（ｉ）をｉ≦ｐ（ただしｐは前記走査位置の変換前の明るさ情報）の範囲で累積して累積度数ｎを求める手段と、前記走査位置の明るさ情報ｐを前記累積度数ｎに応じて明るさ情報に変換する手段とを備える画像処理装置。