(57)【特許請求の範囲】
【請求項１】
入力画像のＹプレーン（輝度プレーン）メモリ内の各ピクセルの輝度にガウシアンBlur処理を行うことで輝度がぼけたBlur値を求め、このBlur値を正規化して0〜1.0の値をとる分布情報とし、更に正規化した値0〜1.0の間で閾値を設定し、この閾値よりも大きい値のピクセルについては全て1.0とし、閾値よりも小さい値の暗部のピクセルについては最も暗いピクセルの輝度倍率（ｎ）を決め、その逆数（1/ｎ）を分布情報の最低値とするように分布情報を補正し、補正した暗部の輝度分布情報（1/ｎ〜1.0）を分母として入力画像の輝度を除算することを特徴とする画像処理方法。
【請求項２】
請求項１に記載の画像処理方法において、前記Blur値の算出結果をラインバッファのみでバッファリングして分布情報の補正と並行処理することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像の黒つぶれを自動的に修正する画像処理方法に関する。
【背景技術】
【０００２】
暗部が視認できない黒つぶれ画像は、露出不足映像や逆光映像に見られる現象で、例えば、シャッター速度が１/３０秒以上長くできないビデオカメラでの夜間撮影や、自動露出機能によって逆光時に露出やゲイン・絞りが制限されるときに起きる現象で、一般のカメラでは構造上避けられない現象である。
【０００３】
特許文献１には、逆光などの輝度差が大きい状況において撮影した画像を復元する方法が記載されている。具体的には、段落（００３８）、（００３９）に記載されるように、ヒストグラムを作成し、輝度値ゼロにおける度数が閾値よりも大きい場合には黒つぶれになっていると判断し、その部分の明るさを補正することが記載されている。
【０００４】
特許文献２には、画像の暗部と明部の輝度差が大きくなった場合に通常撮像モードから合成撮像モードに切換え、輝度差を低減する黒つぶれ補正を行うため、長時間露光画像信号及び短時間露光画像信号をそれぞれ自動露光制御することが記載されている。
【０００５】
特許文献３には、露光時間が長い長時間露光画像信号と露光時間が短い短時間露光画像を合成し、合成画像信号に輝度積算値とヒストグラムを生成し、輝度ヒストグラムから合成画像信号における黒つぶれを検出し、検出結果に基づいて目標輝度積算値を設定し、該目標輝度積算値を用いて、上記撮像部の露光補正制御を行うことが記載されている。
【０００６】
特許文献４には、バッテリー残容量を取得可能な撮像装置が開示されている。この撮像装置はバッテリーの残容量が少ない時またはバッテリーが故障している時にバッテリーセグメントを表示する判定手段を備え、この判定手段は黒つぶれ又は白つぶれしている画素が、所定の値を超えている時、ヒストグラムを表示するように判定を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−２２３１７３号公報
【特許文献２】特開２００２−０８４４４９号公報
【特許文献３】特開２００８−２２８０５８号公報
【特許文献４】特開２０１６−０９２７９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した特許文献では、逆光や陰影補正（黒つぶれ補正）を行うにあたり、輝度のヒストグラムを作成し、このヒストグラムの平坦化を行っている。ヒストグラムの平坦化を行うには、画面全体のヒストグラムをカウントする必要があり、このため大きなメモリが必要になり処置時間も長くなってしまう。
【課題を解決するための手段】
【０００９】
本発明は、入力画像を小領域ごとに分けることなくピクセル（画素）単位で独立して処理することを前提とする。即ち、各領域ごとのヒストグラムを作成することなく画像データから輝度の分布情報を得て、暗い部分のみを暗さに応じて輝度調整する。
【００１０】
即ち本発明は、入力画像のＹプレーン（輝度プレーン）から輝度がぼけたBlurプレーンを作成し、このBlurプレーンの暗部の部分を補正し、この補正したBlurプレーンで入力画像を除算するようにした。
【００１１】
本発明では、フレームバッファ（メモリ）としてフラットフレームを作成せず、注目ピクセルの周囲を参照して輝度のガウシアンボケ値（Blur値）を算出し、ピクセル単位でレベル変換（分布情報の補正）し、注目ピクセルをレベル変換値で除算するようにした。
【００１２】
より具体的には、入力画像のＹプレーン（輝度プレーン）メモリ内の各ピクセルの輝度にガウシアンBlur処理を行うことで輝度がぼけたBlur値を求め、このBlur値をビット深度に応じて正規化して0〜1.0の値をとる分布情報とし、更に正規化した値0〜1.0の間で閾値を設定し、この閾値よりも大きい値のピクセルについては全て1.0とし、閾値よりも小さい値の暗部のピクセルについては最も暗いピクセルの輝度倍率（ｎ）を決め、その逆数（1/ｎ）を分布情報の最低値とするように分布情報を補正し、補正した暗部の輝度分布情報（1/ｎ〜1.0）を分母として入力画像の輝度を除算するようにした。
【００１３】
上記処理において、Blur値を算出する処理と輝度分布情報の補正処理とを並行して行うことで遅延を小さくすることができる。
ラインバッファの場合（ＦＰＧＡ）は、ガウシアンフィルタの直径分のライン数だけレベル変換（分布情報の修正）が終わった段階で並列処理が可能となり、カーネルフィルタの場合（ＧＰＵ，ＣＰＵ）は、上記の流れがそのまま実装できるのでカーネルフィルタの演算終了直後に出力できる。
【発明の効果】
【００１４】
本発明にあっては、画像をスキャンしてヒストグラムを作成することなく、画像データから輝度の分布情報を得て、暗い部分のみを暗さに応じて輝度調整するため、処理速度が大幅にアップし、リアルタイムで修正画像を表示できる。
【００１５】
従来のように、実際に多くのメモリを使って領域別のヒストグラムとトーンマップを作成するのではなく、ロジックを実行することでヒストグラムとトーンマップを作成したのと同じ結果が得られる。
【００１６】
ヒストグラムやトーンマップ用のメモリは不要となり、ラインバッファのみで実装が可能となる。遅延はラインバッファ分のみで、ヒストグラムの取得など全画面の統計を必要としないため、フレーム単位の遅れが生じない。
【００１７】
ロジック自体がシンプルなため小規模ＦＰＧＡや他の映像回路の空きエリアに実装可能で、またヒストグラム配列など画素深度（ビット数）に比例するロジックやメモリがないため36ビットや48ビットといった高いビット深度でも回路規模は殆ど変わらない。
【００１８】
前後のフレームの参照がなく、１枚の画像から補正でき、またＲＧＢを個別に処理することで彩度を強調することができる。
【図面の簡単な説明】
【００１９】
【図１】本願発明にかかるロジカルな画像処理方法の基本を説明したブロック図
【図２】（ａ）は水平Blur処理について説明した図、（ｂ）は垂直Blur処理について説明した図
【図３】（ａ）は元画像、（ｂ）はガウシアンBlur処理後の画像、（ｃ）はフラット処理後の画像
【発明を実施するための形態】
【００２０】
図１に示すように、入力画像をカラー分解し、色味（ＣｂＣｒ）、輝度（Ｙ）及び３原色（ＲＧＢ）を抽出する。本発明では、輝度（Ｙ）に対して、Blur処理及びフラット補正を行い、色味（ＣｂＣｒ）及び３原色（ＲＧＢ）とカラー合成を行って出力画像とする。尚、本発明ではフラットフレーム（輝度が均一化された画像）を作成するのではなく、フラットフレームの原理を利用するだけである。
【００２１】
前記Blur処理では輝度の大まかな変動画像つまり輝度がぼけた画像を作成する。本実施例ではガウス関数を用いて画像をぼかすガウシアンブラー（Gaussian Blur）処理を行った。
【００２２】
ガウシアンブラー（Gaussian Blur）処理は、例えば、図２（ａ）に示す水平Blur処理を行い、この水平Blur処理済みのラインバッファに対して図２（ｂ）に示す垂直Blur処理を行ってブラープレーンを作成する。
【００２３】
上記水平Blur処理の際に、入力画像の最低値の過去４フレームを平均して入力映像最低値（Ｙmin）を求める。
またガウシアンブラー（Gaussian Blur）処理を行いながら、Blur画像の最小値（Bmin）と最大値（Bmax）を求める。
【００２４】
本発明のロジックを実装するにあたっては、半径Ｒのガウシアンテーブルを持ちガウス計算は行わない。また、半径Ｒは最大３０ピクセルとして、ラインバッファは６２本（３０×２+中心１+水平計算用１）用いる。
【００２５】
図示例では、カーネルサイズが６１×６１になるので、処理面積を減らすためにガウシアンブラー（Gaussian Blur）処理を水平Blurと垂直Blurに分けたが、分けずに単純にカーネルフィルタでもよい。
【００２６】
上記のガウシアンブラー（Gaussian Blur）処理によってBlurプレーンを作成したら、Blurプレーンの補正を行う。ここでいうBlurプレーンとはフラットフレームのことではなくBlur値を列挙したラインバッファのことである。
【００２７】
先ず、Blurプレーンを正規化して0〜1.0の値をとる分布情報とし、更に正規化した値0〜1.0の間で閾値を設定し、この閾値よりも大きい値のピクセルについては全て1.0とし、閾値よりも小さい値の暗部のピクセルについては最も暗いピクセルの輝度倍率（ｎ）を決め、その逆数（1/ｎ）を分布情報の最低値とするように分布情報を修正する。
【００２８】
例えば、閾値として0.5を設定したとすると、正規化値0〜1.0のうち、0〜0.5までが0〜1.0となり0.5以上は全て1.0となる。
このような補正を行うことで、入力画像で0.5以上の輝度があるピクセル（画素）は分布情報では1.0となり、後の処理（輝度分布情報を分母として入力画像を除算）で元の画像から変化しない。一方、暗い部分は分母が徐々に小さくなるため元の画像が暗いほど倍率が高くなるように暗部は補正される。
【００２９】
Blurプレーン補正（分布情報補正）に続いてフラット処理を行う。このフラット処理では、Blurプレーンと前記入力映像最低値（Ｙmin）から現フレームの処理行う。即ち、入力画像の輝度（Ｙ）及び３原色（ＲＧＢ）をBlurプレーンで割り算する処理である。
【００３０】
上記において注目ピクセルの垂直Blurの値が確定した時点で、Blurプレーンの作成から分布情報の取得と補正までの処理が可能となるので、フレームバッファを使わずラインバッファ分の遅延のみでリアルタイム処理が可能である。
【００３１】
フラット処理には、ノーマル処理とカラーバースト処理があり、ノーマル処理では輝度（Ｙ）のみを処理して、出力前に色味（ＣｂＣｒ）と合成し、カラーバースト処理では輝度（Ｙ）の代わりに３原色（ＲＧＢ）プレーンを対象に同じ計算を行う。
【００３２】
フラット処理の一般計算式は以下の通りである。
出力画像F（x,y）=入力画像Y(x,y)＊256／フラットフレームBlur(x,y)
256はビット深度が8bitの場合
【００３３】
上記の式にBlurプレーン補正（分布情報補正）の式を適用すると出力画像は以下の式になる。
出力画像F（x,y）=｛（Y(x,y)- Y(min)＞0q（Y(x,y)- Y(min)：0）＊256/
｛Blur(x,y) ＊(255- Bmin)/ Bmax + Bmin＜255q Blur(x,y) ＊(255- Bmin)/
Bmax + Bmin:255}
qはクエッションマーク
【００３４】
図３（ａ）は元画像であり、暗部において黒つぶれが発生している。（ｂ）はガウシアンBlur処理後の画像であり、輝度が全体にぼやけた画像となっている。（ｃ）はフラット処理後の画像であり、（ａ）では黒つぶれとなっていた暗部がハッキリと視認することができる。
【要約】
【課題】黒つぶれをなくす画像処理方法を提供する。
【解決手段】
Blurプレーンを正規化して0〜1.0の値をとる分布情報とし、更に正規化した値0〜1.0の間で閾値を設定し、この閾値よりも大きい値のピクセルについては全て1.0とし、閾値よりも小さい値の暗部のピクセルについては最も暗いピクセルの輝度倍率（ｎ）を決め、その逆数（1/ｎ）を分布情報の最低値とするように分布情報を修正する。例えば、閾値として0.5を設定したとすると、正規化値0〜1.0のうち、0〜0.5までが0〜1.0となり0.5以上は全て1.0となる。このような補正を行うことで、入力画像で0.5以上の輝度があるピクセル（画素）は分布情報では1.0となり、後の処理（輝度分布情報を分母として入力画像を除算）で元の画像から変化しない。一方、暗い部分は分母が徐々に小さくなるため元の画像が暗いほど倍率が高くなるように暗部は補正される。
【選択図】図１【図１】
0006879636.tif 000002
【図２】
0006879636.tif 000003
【図３】
0006879636.tif 000004