説明

電子機器及び映像処理方法

【課題】 映像のコントラストを補正することによって発生する画質の劣化を抑制できる電子機器及び映像処理方法を提供すること。
【解決手段】 実施形態によれば、電子機器は、ブロック特徴量算出手段、局所コントラスト補正カーブ生成手段及びコントラスト補正手段を具備する。ブロック特徴量算出手段は、映像フレームに含まれる複数の画素を複数のブロックに分割し、前記複数のブロックそれぞれに含まれる複数の画素の輝度値を用いて、前記複数のブロックに対応する複数のブロック特徴量を算出する。局所コントラスト補正カーブ生成手段は、前記複数の特徴量を用いて、前記複数のブロックに対応する複数の局所コントラスト補正カーブを生成する。コントラスト補正手段は、前記生成された複数の局所コントラスト補正カーブを用いて、前記映像フレームに含まれる複数の画素の輝度値を補正することによって、補正された映像フレームを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、映像のコントラストを補正する電子機器及び映像処理方法に関する。
【背景技術】
【0002】
近年、パーソナルコンピュータ、PDA、携帯電話、スマートフォンのような様々な電子機器が普及している。このような電子機器は、例えば映像を再生する機能を有している。
【0003】
再生される映像には、鮮鋭化処理や階調補正処理等の画質を改善するための処理が施されることがある。例えば、階調補正処理では、映像の輝度信号に基づく輝度ヒストグラムに応じて、映像のコントラストが補正される。補正により映像のコントラストが強められることにより、ユーザは、鮮明で臨場感のある映像を観賞することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−200346号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、輝度ヒストグラムに基づく階調補正処理では、映像の画質が劣化することがある。例えば、映像フレーム内の、輝度値が滑らかに変化する平坦領域では、コントラストが強められることによって、等高線のような疑似輪郭が発生することがある。輝度値が滑らかに変化する平坦領域が疑似輪郭を含む領域に変換された場合、他の領域が鮮明な映像に変換されていたとしても、ユーザは表示される映像に違和感を覚える可能性がある。
【0006】
本発明は、映像のコントラストを補正することによって発生する画質の劣化を抑制できる電子機器及び映像処理方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
実施形態によれば、電子機器は、ブロック特徴量算出手段、局所コントラスト補正カーブ生成手段及びコントラスト補正手段を具備する。ブロック特徴量算出手段は、映像フレームに含まれる複数の画素を複数のブロックに分割し、前記複数のブロックそれぞれに含まれる複数の画素の輝度値を用いて、前記複数のブロックに対応する複数のブロック特徴量を算出する。局所コントラスト補正カーブ生成手段は、前記複数の特徴量を用いて、前記複数のブロックに対応する複数の局所コントラスト補正カーブを生成する。コントラスト補正手段は、前記生成された複数の局所コントラスト補正カーブを用いて、前記映像フレームに含まれる複数の画素の輝度値を補正することによって、補正された映像フレームを生成する。
【図面の簡単な説明】
【0008】
【図1】実施形態に係る電子機器の外観を示す斜視図。
【図2】同実施形態の電子機器のシステム構成を示すブロック図。
【図3】同実施形態の電子機器によって実行される映像処理プログラムの機能構成の例を説明する図。
【図4】同実施形態の電子機器によって生成される大域コントラスト補正カーブの例を示す図。
【図5】図4の大域コントラスト補正カーブを生成するために用いられる画素頻度関数の例を示す図。
【図6】図4の大域コントラスト補正カーブを生成するために用いられる画素頻度関数の別の例を示す図。
【図7】同実施形態の電子機器によって算出される画素ブロックの特徴量を説明するための図。
【図8】同実施形態の電子機器によって生成される局所コントラスト補正カーブに用いられる振幅の例を示す図。
【図9】同実施形態の電子機器によって生成される局所コントラスト補正カーブの例を示す図。
【図10】同実施形態の電子機器による映像のコントラストの補正を説明するための図。
【図11】同実施形態の電子機器によって実行されるコントラスト補正処理の手順の例を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、実施の形態について図面を参照して説明する。
【0010】
図1は、実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えばノートブックタイプのパーソナルコンピュータ10として実現されている。図1に示すように、本コンピュータ10は、コンピュータ本体11と、ディスプレイユニット12とから構成されている。ディスプレイユニット12には、LCD(liquid crystal display)17が組み込まれている。ディスプレイユニット12は、コンピュータ本体11の上面が露出される開放位置とコンピュータ本体11の上面を覆う閉塞位置との間を回動自在にコンピュータ本体11に取り付けられている。
【0011】
コンピュータ本体11は、薄い箱形の筐体を有しており、その上面には、キーボード13、本コンピュータ10を電源オン/電源オフするためのパワーボタン14、入力操作パネル15、タッチパッド16、スピーカ18A,18Bなどが配置されている。入力操作パネル15上には、各種操作ボタンが設けられている。
【0012】
また、コンピュータ本体11の右側面には、例えばUSB(universal serial bus)2.0規格のUSBケーブルやUSBデバイスを接続するためのUSBコネクタ19が設けられている。
【0013】
図2は、本コンピュータ10のシステム構成を示す図である。
本コンピュータ10は、図2に示されているように、CPU(central processing unit)101、ノースブリッジ102、主メモリ103、サウスブリッジ104、GPU(Graphics Processing Unit)105、VRAM(ビデオRAM:random access memory)105A、サウンドコントローラ106、BIOS−ROM(basic input/output system-read only memory)107、LAN(local area network)コントローラ108、ハードディスクドライブ(HDD)109、光ディスクドライブ(ODD)110、USBコントローラ111A、カードコントローラ111B、無線LANコントローラ112、エンベデッドコントローラ/キーボードコントローラ(EC/KBC)113、EEPROM(electrically erasable programmable ROM)114等を備える。
【0014】
CPU101は、本コンピュータ10内の各部の動作を制御するプロセッサである。CPU101は、HDD109から主メモリ103にロードされる、オペレーティングシステム(OS)201、及び映像処理プログラム202のような各種アプリケーションプログラムを実行する。映像処理プログラム202は、例えばHDD109等に格納された各種デジタルコンテンツデータ(例えば、映像データ)を再生するソフトウェアである。映像処理プログラム202は、再生される映像の画質(例えば、コントラスト)を補正する画質補正機能を有する。映像処理プログラム202は、例えば、映像データを再生し、画質が補正された映像を画面(LCD17)に表示する。
【0015】
また、CPU101は、BIOS−ROM107に格納されたBIOSも実行する。BIOSは、ハードウェア制御のためのプログラムである。
【0016】
ノースブリッジ102は、CPU101のローカルバスとサウスブリッジ104との間を接続するブリッジデバイスである。ノースブリッジ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ102は、例えば、PCI EXPRESS規格のシリアルバスなどを介してGPU105との通信を実行する機能も有している。
【0017】
GPU105は、本コンピュータ10のディスプレイモニタとして使用されるLCD17を制御する表示コントローラである。このGPU105によって生成される表示信号はLCD17に送られる。
【0018】
サウスブリッジ104は、PCI(Peripheral Component Interconnect)バス上の各デバイス及びLPC(Low Pin Count)バス上の各デバイスを制御する。また、サウスブリッジ104は、HDD109及びODD110を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ104は、サウンドコントローラ106との通信を実行する機能も有している。
【0019】
サウンドコントローラ106は音源デバイスであり、再生対象のオーディオデータをスピーカ18A,18Bに出力する。LANコントローラ108は、例えばIEEE 802.3規格の有線通信を実行する有線通信デバイスであり、一方、無線LANコントローラ112は、例えばIEEE 802.11g規格の無線通信を実行する無線通信デバイスである。USBコントローラ111Aは、(USBコネクタ19を介して接続される)例えばUSB 2.0規格に対応した外部機器との通信を実行する。カードコントローラ111Bは、コンピュータ本体11に設けられたカードスロットに挿入されるメモリカードに対するデータの書き込み及び読み出しを実行する。
【0020】
EC/KBC113は、電力管理のためのエンベデッドコントローラと、キーボード13及びタッチパッド16を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。EC/KBC113は、ユーザによるパワーボタン14の操作に応じて本コンピュータ10を電源オン/電源オフする機能を有している。
【0021】
次いで、図3を参照して、映像処理プログラム202の一機能構成を説明する。映像処理プログラム202は、上述のように、再生される映像の画質を補正する機能を有する。映像処理プログラム202は、例えば、映像の特徴に応じたコントラスト補正カーブを用いて、映像のコントラストを補正する。コントラスト補正カーブは、入力輝度値と出力輝度値との対応を示す関数である。より具体的には、映像処理プログラム202は、処理対象のフレームの特徴を考慮した大域コントラスト補正カーブ(フレームコントラスト補正カーブとも称する)と、処理対象のフレームに含まれる複数のブロックそれぞれの特徴を考慮した局所コントラスト補正カーブ(ブロックコントラスト補正カーブとも称する)とを用いて、処理対象のフレームに含まれる画素のコントラストを補正する。
【0022】
映像処理プログラム202は、映像リード部31、フレーム特徴量算出部32、ヒストグラム算出部33、大域コントラスト補正カーブ生成部34、ブロック特徴量算出部35、局所コントラスト補正カーブ生成部36、補正カーブブレンディング部37、コントラスト補正部38、及び表示制御部39を備える。
【0023】
映像リード部31は、HDD109等に格納された映像データ109Bを読み出し、映像データに含まれる複数の映像フレームの内の、先頭の映像フレームを処理対象の映像フレームに設定する。映像データに含まれる複数の映像フレームは、先頭のフレームから順次、処理対象の映像フレームに設定される。なお、映像リード部31は、HDD109に限らず、DVD等の記憶メディアに格納された映像データを読み出してもよい。また、映像リード部31は、ネットワークを介して、他のコンピュータ(サーバー)から映像データを受信してもよい。映像リード部31は、処理対象の映像フレームを、フレーム特徴量算出部32、ヒストグラム算出部33及びブロック特徴量算出部35に出力する。
【0024】
フレーム特徴量算出部32は、映像リード部31によって出力された処理対象の映像フレームに含まれる画素の輝度値xに基づいて、次式のように、処理対象の映像フレームに含まれる画素の平均輝度値(フレーム平均輝度値)APLを算出する。
【数1】

【0025】
なお、Nは処理対象のフレームに含まれる画素の数を示す。フレーム特徴量算出部32は、算出されたフレーム平均輝度値APLを大域コントラスト補正カーブ生成部34に出力する。
【0026】
また、ヒストグラム算出部33は、映像リード部31によって出力された処理対象の映像フレームに含まれる画素の輝度値を用いて、処理対象の映像フレームに含まれる画素の輝度ヒストグラムを算出する。輝度ヒストグラムは、処理対象の映像フレームの輝度レベル毎の画素数を示す。ヒストグラム算出部33は、算出された輝度ヒストグラムを大域コントラスト補正カーブ生成部34に出力する。
【0027】
大域コントラスト補正カーブ生成部34は、フレーム特徴量算出部32によって出力されたフレーム平均輝度値APL、ヒストグラム算出部33によって出力された輝度ヒストグラム、及びHDD109に格納されたパラメータ109Aを用いて、処理対象のフレームに対応する大域コントラスト補正カーブを生成する。より具体的には、大域コントラスト補正カーブ生成部34は、フレーム平均輝度値APLをと、パラメータ109Aによって規定された第1補正カーブの変曲点に設定する。この第1補正カーブは、例えば、低い輝度値の画素のコントラストを弱め、高い輝度値の画素のコントラストを強めるためのS字型のカーブである。また、大域コントラスト補正カーブ生成部34は、輝度ヒストグラムに基づいて画素頻度関数を算出する。そして、大域コントラスト補正カーブ生成部34は、フレーム平均輝度値APLが変曲点に設定された第1補正カーブと画素頻度関数とを所定の割合でブレンディング(アルファブレンディング)することによって、大域コントラスト補正カーブを生成する。大域コントラスト補正カーブ生成部34は、生成された大域コントラスト補正カーブを補正カーブブレンディング部37に出力する。
【0028】
図4は、大域コントラスト補正カーブの例を示す。
【0029】
大域コントラスト補正カーブ生成部34は、例えば、次式のように、フレームの平均輝度値APLが変曲点56に設定された第1補正カーブ53と画素頻度関数52とを所定の割合(ここでは、ブレンディングパラメータλ)でブレンディングすることによって、大域コントラスト補正カーブ54を算出する。
【0030】
大域コントラスト補正カーブ=λ×画素頻度関数+(1−λ)×第1補正カーブ
ブレンディングパラメータλは、例えば、0.5であり、HDD109に格納されたパラメータ109Aに含まれる。なお、大域コントラスト補正カーブ生成部34は、大域コントラスト補正カーブ54を、コントラスト補正の効果がないように設定する場合には、入力輝度値=出力輝度値である線形関数55を算出する。
【0031】
また、大域コントラスト補正カーブ生成部34は、上述のように、輝度ヒストグラム51に基づいて画素頻度関数52を生成する。図5及び図6は、大域コントラスト補正カーブを生成するために用いられる画素頻度関数52の例を示す。画素頻度関数52は、入力階調値(入力輝度値とも称する)と出力階調値(出力輝度値とも称する)との対応を示す関数である。入力階調値と出力階調値とは、例えば、0から255までの値を取り得る。
【0032】
図5に示す例では、入力階調値の範囲が、二つの範囲(例えば、0から127までの第1範囲と128から255までの第2範囲)に分割され、それら二つの範囲それぞれに対応する累積頻度が算出されている。つまり、大域コントラスト補正カーブ生成部34は、処理対象のフレーム内で、0から127までの階調値を有する画素の数(第1累積頻度とも称する)と、128から255までの階調値を有する画素の数(第2累積頻度とも称する)とを算出する。そして、大域コントラスト補正カーブ生成部34は、算出された第1累積頻度と第2累積頻度とに応じて、二つの範囲それぞれに割り当てる出力階調値の範囲を決定する。大域コントラスト補正カーブ生成部34は、例えば、次式によって、二つの範囲それぞれに割り当てる出力階調値の境界値を算出する。
境界値=第1累積頻度/(第1累積頻度+第2累積頻度)×255
すなわち、大域コントラスト補正カーブ生成部34は、第1累積頻度と第2累積頻度との比に応じて、累積頻度が小さい入力階調値の範囲には狭い出力階調値の範囲を割り当て、累積頻度が大きい入力階調値の範囲には広い出力階調値の範囲を割り当てる。具体的には、大域コントラスト補正カーブ生成部34は、第1範囲に対して、0から境界値までの出力階調値の範囲を割り当て、第2範囲に対して、境界値から255までの出力階調値の範囲を割り当てる折れ線状の画素頻度関数52を算出する。これにより、画素数が多い入力階調値の範囲が、広い出力階調値の範囲に割り当てられるように画素頻度関数52が算出されるので、画素数が多い入力階調値の範囲に属する画素に施されるコントラスト補正の効果を強めることができる。
【0033】
図6に示す例では、図5に示した例の入力階調値の範囲をさらに分割し、同様にして、4つに分割された入力階調値の範囲それぞれに割り当てる出力階調値の範囲が決定されている。大域コントラスト補正カーブ生成部34は、4つに分割された入力階調値の範囲それぞれの累積頻度を算出し、算出された累積頻度を用いて、出力階調値の範囲の境界値を算出する。これにより、大域コントラスト補正カーブ生成部34は、4つに分割された入力階調値の範囲の累積頻度に対応する画素頻度関数52を算出することができる。
図5及び図6に示す例のように、入力階調値の範囲が細かく分割されるほど、輝度ヒストグラムにおける画素数の変化に合った画素頻度関数52を算出できる。
【0034】
以上により、大域コントラスト補正カーブ生成部34は、この画素頻度関数52と、フレームの平均輝度値APLに基づいて調整された第1補正カーブ53とをブレンディングすることによって、処理対象のフレームの特徴量に応じた大域コントラスト補正カーブ54を生成することができる。大域コントラスト補正カーブ54を用いることにより、処理対象のフレームに応じたコントラストの補正を、当該フレームに含まれる画素に施すことができる。しかし、大域コントラスト補正カーブ54によるコントラストの補正では、画質の劣化が生じることがある。例えば、輝度値が滑らかに変化する領域(映像フレーム内の小領域)に対して、コントラストを強める補正を施した場合、その輝度値の変化が等高線のように描画され、疑似輪郭が発生する可能性がある。すなわち、ある領域におけるごく小さな輝度値の変化が、コントラスト補正によって大きな輝度値の変化に変換され、滑らかな輝度値の変化を含む領域の画質が劣化する可能性がある。また、例えば、輝度値がほとんど変化しない平坦な領域に含まれるノイズが、より強調されてしまう可能性がある。そのため本実施形態では、以下のように、ブロック特徴量算出部35と局所コントラスト補正カーブ生成部36とによって、処理対象のフレームを分割した複数のブロックそれぞれの特徴量に応じた局所コントラスト補正カーブを生成する。
【0035】
ブロック特徴量算出部35は、映像リード部31によって出力された処理対象のフレームを、所定のサイズ(例えば、16画素×16画素)のブロックに分割する。そして、ブロック特徴量算出部35は、先頭のブロック(例えば、処理対象のフレーム内の左上端に位置するブロック)を処理対象のブロックに設定する。ブロック特徴量算出部35は、処理対象のフレームに含まれるブロックを、例えば、フレーム内の左上端に位置するブロックからフレーム内の右下端に位置するブロックまで、順番に処理対象のブロックに設定する。
【0036】
ブロック特徴量算出部35は、処理対象のブロックに含まれる画素の輝度値の内の、最大輝度値と最小輝度値とを検出し、それら最大輝度値と最小輝度値との差分VARを算出する。この差分VARは、処理対象のブロックの輝度値の平坦度に関連する。つまり、差分VARは、処理対象のブロック内の輝度値の変化が小さい場合(すなわち、平坦度が高い場合)に小さくなり、処理対象のブロック内の輝度値の変化が大きい場合(すなわち、平坦度が低い場合)に大きくなる。また、ブロック特徴量算出部35は、次式のように、処理対象のブロックに含まれる画素xの平均輝度値(ブロック平均輝度値)APLを算出する。
【数2】

【0037】
なお、Mは、処理対象のブロックに含まれる画素の数を示す。ブロック特徴量算出部35は、算出された差分VARとブロック平均輝度値APLとを局所コントラスト補正カーブ生成部36に出力する。
【0038】
なお、ブロック特徴量算出部35は、処理対象のブロックと当該処理対象のブロックの近傍のブロックとを用いて、処理対象のブロックの特徴量を算出してもよい。
図7は、処理対象のブロック42(数字“4”で示されるブロック)と、当該処理対象のブロックの近傍のブロック群43(数字“0”から“3”と“5”から“8”で示されるブロック)との例を示す。図7に示す例では、処理対象のブロック42と近傍のブロック群43のそれぞれに対応する差分VARとブロック平均輝度値APLとが算出済みであることを想定する。特徴量マップ41には、処理対象のフレーム内の複数のブロックに対応する複数の特徴量(例えば、差分VAR、ブロック平均輝度値APL等)が示されている。
【0039】
ブロック特徴量算出部35は、処理対象のブロック42に対応する特徴量として、例えば、次式のように、処理対象のブロック42と近傍のブロック群43それぞれに対応する差分VARを用いて、差分VARの差分絶対値和VARを算出する。すなわち、ブロック特徴量算出部35は、処理対象のブロック42に対応する差分VARと、近傍のブロック群43それぞれに対応する差分VAR(k=0〜3,5〜8)との差の絶対値の総和を算出する。なお、kは、図7に示したブロックの位置を表す数字に対応する。
【数3】

【0040】
また、ブロック特徴量算出部35は、処理対象のブロック42に対応する特徴量として、次式のように、処理対象のブロック42の近傍のブロック群43それぞれに対応するブロック平均輝度値APLBkを用いて、ブロック平均輝度値APLの差分絶対値和APLを算出してもよい。すなわち、ブロック特徴量算出部35は、処理対象のブロック42に対応するブロック平均輝度値APLB4と、近傍のブロック群43それぞれに対応するブロック平均輝度値APLBk(k=0〜3,5〜8)との差の絶対値の総和を算出する。
【数4】

【0041】
ブロック特徴量算出部35は、算出された差分VARの差分絶対値和VARと、ブロック平均輝度値APLの差分絶対値和APLとを局所コントラスト補正カーブ生成部36に出力する。
【0042】
局所コントラスト補正カーブ生成部36は、ブロック特徴量算出部35によって出力された差分VAR及びブロック平均輝度値APL(又は差分VARの差分絶対値和VAR及びブロック平均輝度値APLの差分絶対値和APL)と、HDD109に格納されたパラメータ109Aとを用いて、処理対象のブロックに対応する局所コントラスト補正カーブを生成する。
【0043】
具体的には、局所コントラスト補正カーブ生成部36は、例えば、差分VARに基づいて、パラメータ109Aによって規定された第2補正カーブに設定する振幅を算出する。この第2補正カーブは、例えば、低い輝度値の画素のコントラストを弱め、高い輝度値の画素のコントラストを強めるためのS字型のカーブである。また、振幅には、例えば、差分VARが第1しきい値未満である場合には小さな値(例えば、0)が設定され、差分VARが第1しきい値以上である場合には、差分VARの増加に比例して増加する値が設定される。
【0044】
図8は、差分VARと振幅との関係の例を示す。図8に示す例では、差分VARが、ブロックのサイズ(すなわち、ブロックに含まれる画素の数)に所定の値αを加えた第1しきい値未満である場合、振幅は0に設定される。そして、差分VARが第1しきい値以上である場合、振幅には、差分VARの増加に比例して増加する値が設定される。つまり、ブロックに対応する差分VARが小さい場合には、当該ブロックが輝度値の変化が小さい平坦領域であると推定されるので、コントラスト補正の効果が小さくなるように振幅が設定される。一方、ブロックに対応する差分VARが大きい場合には、当該ブロックが平坦領域でないと推定されるので、コントラスト補正の効果が大きくなるように振幅が設定される。また、所定の値αは、例えば、映像に含まれるノイズの量に応じて、ノイズが少ない場合には小さな値が設定され、ノイズが多い場合には大きな値が設定される。これは、ノイズによって、差分VARが大きくなる可能性があるためである。映像に含まれるノイズの量は、例えば、映像データ109Bのビットレートや輝度値の累積フレーム間差分に基づいて推定される。輝度値の累積フレーム間差分は、値が大きいほど映像に含まれるノイズの量が多いと推測される。一方、値が小さいほど映像に含まれるノイズの量が少ないと推測される。
【0045】
局所コントラスト補正カーブ生成部36は、算出された振幅とブロック平均輝度値APLとに基づいて、第2補正カーブを調整する。局所コントラスト補正カーブ生成部36は、図9に示すように、ブロック平均輝度値APLが変曲点64に設定され、算出された振幅を有する第2補正カーブを、処理対象のブロックに対応する局所コントラスト補正カーブ63に設定する。したがって、差分VARが第1しきい値以上である場合、振幅が差分VARの増加に比例して増加するので、差分VARの大きさに比例してコントラスト補正の効果が強められる局所コントラスト補正カーブ63が生成される。また、差分VARが第1しきい値未満である場合(例えば、処理対象のブロックが平坦領域である場合)、振幅が0であるので、入力輝度値=出力輝度値である線形関数62が局所コントラスト補正カーブ63として生成される。この線形関数62では、画素の輝度値が変更されないので、コントラスト補正の効果がなく、原画像(入力映像フレーム)が保持される。
【0046】
また、ブロック特徴量算出部35によって出力された差分VARの差分絶対値和VAR及びブロック平均輝度値APLの差分絶対値和APLを用いて、処理対象のブロックに対応する局所コントラスト補正カーブを生成する場合には、局所コントラスト補正カーブ生成部36は、以下のように局所コントラスト補正カーブ63を生成する。まず、局所コントラスト補正カーブ生成部36は、例えば、差分絶対値和VARが第2しきい値未満であり、且つ差分絶対値和APLが第3しきい値未満である場合、その処理対象のブロックが平坦領域であり、且つ周囲のブロックと類似しているので、疑似輪郭が発生しやすいブロックであると判断する。そして、局所コントラスト補正カーブ生成部36は、処理対象のブロックが、疑似輪郭が発生しやすいブロックである場合、当該ブロックに対応する局所コントラスト補正カーブ63に、コントラスト補正の効果が弱いコントラスト補正カーブを設定する。一方、局所コントラスト補正カーブ生成部36は、例えば、差分絶対値和VARが第2しきい値以上である場合、又は差分絶対値和APLが第3しきい値以上である場合、その処理対象のブロックが、疑似輪郭が発生しやすいブロックでないと判断する。そして、局所コントラスト補正カーブ生成部36は、処理対象のブロックが、疑似輪郭が発生しやすいブロックでない場合、当該ブロックに対応する局所コントラスト補正カーブ63に、コントラスト補正の効果が強いコントラスト補正カーブを設定する。
【0047】
以上により、局所コントラスト補正カーブ生成部36は、処理対象のブロックの特徴量に応じた局所コントラスト補正カーブ63を生成することができる。局所コントラスト補正カーブ生成部36は、処理対象のフレーム内の他のブロックに対応する局所コントラスト補正カーブ63も同様に生成する。なお、局所コントラスト補正カーブ生成部36は、時間軸方向での変化の大きさを所定値以内にするように、局所コントラスト補正カーブ63を制御してもよい。その場合、局所コントラスト補正カーブ生成部36は、例えば、処理対象のブロックと同じ位置にある、一つ前のフレーム内のブロックを検出し、その一つ前のフレーム内のブロックに対応する局所コントラスト補正カーブと、処理対象のブロックに対応するコントラスト補正カーブ63との間の変化量が所定値以内になるように、処理対象のブロックに対応するコントラスト補正カーブ63を変更する。これにより、時間軸方向の映像のちらつきを抑制することができる。局所コントラスト補正カーブ生成部36は、生成された局所コントラスト補正カーブ63を補正カーブブレンディング部37に出力する。
【0048】
補正カーブブレンディング部37は、大域コントラスト補正カーブ生成部34によって出力された大域コントラスト補正カーブ54と、局所コントラスト補正カーブ生成部36によって出力された局所コントラスト補正カーブ63とを所定の割合でブレンディング(アルファブレンディング)することによって、処理対象のブロックに対応する第3コントラスト補正カーブ(ブレンディングされたコントラスト補正カーブ)を算出する。補正カーブブレンディング部37は、算出された第3コントラスト補正カーブをコントラスト補正部38に出力する。
【0049】
コントラスト補正部38は、補正カーブブレンディング部37によって出力された第3コントラスト補正カーブを用いて、処理対象のフレーム内の画素の輝度値を補正する。コントラスト補正部38は、第3コントラスト補正カーブを用いて、処理対象のフレームに含まれる複数の画素の輝度値(入力輝度値)に対応する複数の出力輝度値を算出する。そして、コントラスト補正部38は、算出された複数の出力輝度値を、処理対象のフレーム内の複数の画素の新たな輝度値に設定する。コントラスト補正部38は、新たな輝度値(すなわち、補正された輝度値)を含むフレームを表示制御部39に出力する。
【0050】
なお、図10に示すように、コントラスト補正部38は、処理対象の画素70(輝度値x)を含むブロック74に対応するコントラスト補正カーブf(x)に限らず、周辺(近傍)のブロック71,72,73に対応するコントラスト補正カーブをさらに用いて、処理対象の画素70を補正してもよい。
具体的には、コントラスト補正部38は、まず、処理対象の画素70を中心とするウィンドウ72と重複する領域721,722,723,724をそれぞれ有するブロック71,72,73,74を検出する。このウィンドウ72は、ブロックと同じサイズを有する。コントラスト補正部38は、検出されたブロック71,72,73,74に対応するコントラスト補正カーブf(x),f(x),f(x),f(x)を検出する。そして、コントラスト補正部38は、次式のように、ウィンドウ72と重複する領域721,722,723,724の面積(すなわち、領域に含まれる画素数)S,S,S,Sに応じた重みa(i=1〜4)を用いて重み付け加算されたコントラスト補正カーブF(x)を算出する。
F(x) = a1 × f1(x) + a2 × f2(x) + a3 × f3(x) + a4 × f4(x)
ai = Si / (S1 + S2 + S3 + S4)
コントラスト補正部38は、算出されたコントラスト補正カーブF(x)を用いて、処理対象の画素70の輝度値(入力輝度値)に対応する出力輝度値を算出する。そして、コントラスト補正部38は、算出された出力輝度値を、処理対象の画素70の新たな輝度値に設定する。周辺のブロックに対応するコントラスト補正カーブも用いることにより、ブロック間での輝度値の変化が滑らかになるように(ブロック間で境界が発生しないように)、映像のコントラストを補正することができる。なお、上述の方法では、画素毎に、重みaを予め算出しておくことによって、計算量を削減し、コントラストを補正するための処理にかかる時間を短縮することができる。
【0051】
表示制御部39は、コントラスト補正部38によって出力された、補正された輝度値を含む映像フレームが画面(LCD)17に表示されるように制御する。
【0052】
以上の構成により、映像のコントラストを補正することによって発生する画質の劣化を抑制することができる。大域コントラスト補正カーブ生成部34は、処理対象のフレームの特徴を考慮した大域コントラスト補正カーブ54を生成し、局所コントラスト補正カーブ生成部36は、処理対象のフレームに含まれる複数のブロックそれぞれの特徴を考慮した複数の局所コントラスト補正カーブ63を生成する。コントラスト補正部38は、大域コントラスト補正カーブ54と局所コントラスト補正カーブ63とがブレンディングされた第3コントラスト補正カーブを用いて、フレーム全体の特徴だけでなく、ブロック毎の特徴も考慮して、映像のコントラストを補正する。局所コントラスト補正カーブ63は、輝度値の変化が小さいブロック(平坦領域)では、コントラストが過度に強調されないように設定されるので、そのブロックでの疑似輪郭の発生を抑制することができる。なお、コントラスト補正部38は、局所コントラスト補正カーブ63を用いて、処理対象のブロックに含まれる画素のコントラストを補正してもよい。
【0053】
また、ブロック特徴量算出部35は、処理対象のブロックの特徴量として、ブロックに含まれる画素の輝度値の勾配(勾配の大きさ)と、勾配の方向とを算出してもよい。具体的には、ブロック特徴量算出部35は、処理対象のブロックの四隅にある画素の輝度値を用いて、水平方向、垂直方向及び斜め方向の勾配(すなわち、四隅にある画素の輝度値の差)を算出する。また、ブロック特徴量算出部35は、算出された勾配に基づいて、勾配の方向を検出する。ブロック特徴量算出部35は、例えば、勾配の大きさが最も大きい方向を、勾配の方向として検出する。そして、局所コントラスト補正カーブ生成部36は、勾配の大きさが小さく、且つ勾配の方向が隣接するブロックと類似している場合、処理対象のブロックが、滑らかに変化する輝度値(滑らかなグラデーション)を含むブロックであると推定し、局所コントラスト補正カーブ63を入力輝度値=出力輝度値である線形関数62に設定する。具体的には、局所コントラスト補正カーブ生成部36は、算出された勾配の大きさの内の最大値が第4しきい値未満であり、且つ検出された勾配の方向と隣接するブロックの勾配方向との類似度(例えば、内積)が第5しきい値以上である場合に、局所コントラスト補正カーブ63を線形関数62に設定する。勾配に基づいて生成された局所コントラスト補正カーブ63でも、ブロック毎の平坦度が反映されるので、映像のコントラストを補正することによって発生する疑似輪郭を抑制することができる。
【0054】
次いで、図11のフローチャートを参照して、電子機器10によって実行されるコントラスト補正処理の手順の例を説明する。
まず、映像リード部31は、HDD109等に格納された映像データ109Bを読み出し、映像データ109Bに含まれる複数の映像フレームの内の、先頭の映像フレームを処理対象の映像フレームに設定する(ブロックB101)。
【0055】
次いで、フレーム特徴量算出部32は、処理対象の映像フレームに含まれる画素の平均輝度値(フレーム平均輝度値)APLを算出する(ブロックB102)。また、ヒストグラム算出部33は、処理対象の映像フレームに含まれる画素の輝度値に基づいて、輝度ヒストグラムを算出する(ブロックB103)。そして、大域コントラスト補正カーブ生成部34は、算出されたフレーム平均輝度値APL及び輝度ヒストグラムと、HDD109に格納されたパラメータ109Aとを用いて、処理対象のフレームに対応する大域コントラスト補正カーブ54を生成する(ブロックB104)。具体的には、大域コントラスト補正カーブ生成部34は、算出されたフレーム平均輝度値APLを、パラメータ109Aによって規定された第1補正カーブ53の変曲点56に設定する。また、大域コントラスト補正カーブ生成部34は、算出されたヒストグラムに基づいて、画素頻度関数52を算出する。そして、大域コントラスト補正カーブ生成部34は、フレーム平均輝度値APLが変曲点56に設定された第1補正カーブ53と画素頻度関数52とを所定の割合でブレンディングすることによって、大域コントラスト補正カーブ54を生成する。
【0056】
次いで、ブロック特徴量算出部35は、処理対象のフレームを所定のサイズ(例えば、16画素×16画素)のブロックに分割する(ブロックB105)。そして、ブロック特徴量算出部35は、先頭のブロック(例えば、処理対象のフレーム内の左上端に位置するブロック)を処理対象のブロックに設定する(ブロックB106)。ブロック特徴量算出部35は、処理対象のフレームに含まれるブロックを、例えば、フレーム内の左上端に位置するブロックからフレーム内の右下端に位置するブロックまで、順番に処理対象のブロックに設定する。
【0057】
ブロック特徴量算出部35は、処理対象のブロックに含まれる画素の輝度値の内の、最大輝度値と最小輝度値とを検出し、それら最大輝度値と最小輝度値との差分VARを算出する(ブロックB107)。ブロック特徴量算出部35は、処理対象のブロックに含まれる画素の平均輝度値(ブロック平均輝度値)APLを算出する(ブロックB108)。そして、局所コントラスト補正カーブ生成部36は、算出された差分VAR及びブロック平均輝度値APLと、HDD109に格納されたパラメータ109Aとを用いて、処理対象のブロックに対応する局所コントラスト補正カーブ63を生成する(ブロックB109)。具体的には、局所コントラスト補正カーブ生成部36は、算出された差分VARに基づいて、パラメータ109Aによって規定された第2補正カーブに設定する振幅を算出する。局所コントラスト補正カーブ生成部36は、算出された振幅とブロック平均輝度値APLとに基づいて、第2補正カーブを調整する。局所コントラスト補正カーブ生成部36は、ブロック平均輝度値APLが変曲点64に設定され、算出された振幅を有する第2補正カーブを、処理対象のブロックに対応する局所コントラスト補正カーブ63に設定する。
【0058】
そして、補正カーブブレンディング部37は、処理対象のフレームに対応する大域コントラスト補正カーブ54と、処理対象のブロックに対応する局所コントラスト補正カーブ63とを所定の割合でブレンディングすることによって、処理対象のブロックに対応する第3コントラスト補正カーブ(ブレンディングされたコントラスト補正カーブ)を算出する(ブロックB110)。
【0059】
次いで、ブロック特徴量算出部35は、処理対象のフレーム内に、処理対象のブロックに後続するブロックがあるか否かを判定する(ブロックB111)。後続するブロックがある場合(ブロックB111のYES)、ブロック特徴量算出部35は、その後続するブロックを、新たな処理対象のブロックに設定する(ブロックB112)。そして、ブロックB107に戻り、新たに設定された処理対象のブロックに対応する第3コントラスト補正カーブが算出される。
【0060】
後続するブロックがない場合(すなわち、処理対象のフレーム内の全てのブロックに対応する第3コントラスト補正カーブが算出された場合)(ブロックB111のNO)、コントラスト補正部38は、算出されたブロック毎の第3コントラスト補正カーブを用いて、処理対象のフレーム内の画素の輝度値を補正する(ブロックB113)。そして、表示制御部39は、補正された画素を含む処理対象のフレームを画面(LCD)17に表示する(ブロックB114)。
【0061】
次いで、映像リード部31は、処理対象のフレームに後続するフレームがあるか否かを判定する(ブロックB115)。後続するフレームがある場合(ブロックB115のYES)、その後続するフレームを、新たな処理対象のフレームに設定する(ブロックB116)。そして、ブロックB102に戻り、新たに設定された処理対象のフレームのコントラストを補正する。
後続するフレームがない場合(ブロックB115のNO)、処理を終了する。
【0062】
なお、上述の処理では、大域コントラスト補正カーブ54と局所コントラスト補正カーブ63とがブレンディングされた第3コントラスト補正カーブを用いて、映像フレームに含まれる画素の輝度値を補正する例を説明したが、局所コントラスト補正カーブ63を用いて映像フレームに含まれる画素の輝度値を補正してもよい。局所コントラスト補正カーブ63を用いることにより、疑似輪郭の発生を抑制しながら、映像フレームのコントラストを補正することができる。
【0063】
以上説明したように、本実施形態によれば、映像のコントラストを補正することによって発生する画質の劣化を抑制できる。大域コントラスト補正カーブ生成部34は、処理対象のフレームの特徴を考慮した大域コントラスト補正カーブ54を生成し、局所コントラスト補正カーブ生成部36は、処理対象のフレームに含まれる複数のブロックそれぞれの特徴を考慮した複数の局所コントラスト補正カーブ63を生成する。コントラスト補正部38は、大域コントラスト補正カーブ54と局所コントラスト補正カーブ63とがブレンディングされた第3コントラスト補正カーブを用いることにより、フレーム全体の特徴だけでなく、ブロック毎の局所的な特徴も考慮して、映像のコントラストを補正する。局所コントラスト補正カーブ63は、輝度値の変化が小さいブロックでは、コントラスト補正の効果が小さくなるように設定されるので、そのブロックでの疑似輪郭の発生を抑制することができる。
【0064】
なお、本実施形態のコントラスト補正処理の手順は全てソフトウェアによって実行することができる。このため、コントラスト補正処理の手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【0065】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0066】
109…HDD、109A…パラメータ、109B…映像データ、202…映像処理プログラム、31…映像リード部、32…フレーム特徴量算出部、33…ヒストグラム算出部、34…大域コントラスト補正カーブ生成部、35…ブロック特徴量算出部、36…局所コントラスト補正カーブ生成部、37…補正カーブブレンディング部、38…コントラスト補正部、39…表示制御部。

【特許請求の範囲】
【請求項1】
映像フレームに含まれる複数の画素を複数のブロックに分割し、前記複数のブロックそれぞれに含まれる複数の画素の輝度値を用いて、前記複数のブロックに対応する複数のブロック特徴量を算出するブロック特徴量算出手段と、
前記複数のブロック特徴量を用いて、前記複数のブロックに対応する複数の局所コントラスト補正カーブを生成する局所コントラスト補正カーブ生成手段と、
前記生成された複数の局所コントラスト補正カーブを用いて、前記映像フレームに含まれる複数の画素の輝度値を補正することによって、補正された映像フレームを生成するコントラスト補正手段とを具備する電子機器。
【請求項2】
前記特徴量算出手段は、ブロック毎に、前記複数のブロックそれぞれに含まれる複数の画素の輝度値の内の最大値と最小値とを検出し、前記最大値と前記最小値との差分を算出し、
前記局所コントラスト補正カーブ生成手段は、前記複数のブロックの内の第1ブロックに対応する前記差分を用いて、前記第1ブロックに対応する前記局所コントラスト補正カーブを生成する請求項1記載の電子機器。
【請求項3】
前記局所コントラスト補正カーブ生成手段は、前記第1ブロックに対応する前記差分がしきい値未満である場合、前記第1ブロックに含まれる複数の画素の輝度値を変更しない前記局所コントラスト補正カーブを生成する請求項2記載の電子機器。
【請求項4】
前記局所コントラスト補正カーブ生成手段は、前記第1ブロックに対応する前記差分がしきい値以上である場合、前記差分の大きさに比例してコントラスト補正の効果が強められる前記局所コントラスト補正カーブを生成する請求項2記載の電子機器。
【請求項5】
前記特徴量算出手段は、前記第1ブロックに対応する前記差分と、前記第1ブロックの近傍の第2ブロック群に対応する前記差分とを用いて、前記第2ブロック群に対応する前記差分それぞれと前記第1ブロックに対応する前記差分との差の絶対値の総和を算出し、
前記局所コントラスト補正カーブ生成手段は、前記総和を用いて、前記第1ブロックに対応する前記局所コントラスト補正カーブを生成する請求項2記載の電子機器。
【請求項6】
前記特徴量算出手段は、ブロック毎に、前記複数のブロックそれぞれに含まれる複数の画素の輝度値の平均値を算出し、前記複数のブロックそれぞれに含まれる複数の画素の輝度値の内の最大値と最小値とを検出し、前記最大値と前記最小値との差分を算出し、
前記局所コントラスト補正カーブ生成手段は、前記複数のブロックの内の第1ブロックに対応する前記平均値と前記差分とを用いて、前記第1ブロックに対応する前記局所コントラスト補正カーブを生成する請求項1記載の電子機器。
【請求項7】
前記コントラスト補正手段は、前記複数のブロックの内の第1ブロックに含まれる第1画素の輝度値を補正する場合、前記第1ブロックに対応する前記局所コントラスト補正カーブと、前記第1ブロックの近傍の第2ブロック群に対応する前記局所コントラスト補正カーブとを用いて、前記第1画素の輝度値を補正する請求項1記載の電子機器。
【請求項8】
前記補正された映像フレームを画面に表示する表示制御手段をさらに具備する請求項1記載の電子機器。
【請求項9】
前記映像フレームに含まれる複数の画素の輝度値を用いて、前記映像フレームに対応するフレーム特徴量を算出するフレーム特徴量算出手段と、
前記フレーム特徴量を用いて、前記映像フレームに対応する大域コントラスト補正カーブを生成する大域コントラスト補正カーブ生成手段とをさらに具備し、
前記コントラスト補正手段は、前記複数の局所コントラスト補正カーブと前記大域コントラスト補正カーブとを用いて、前記映像フレームに含まれる複数の画素の輝度値を補正することによって、前記補正された映像フレームを生成する請求項1記載の電子機器。
【請求項10】
映像フレームに含まれる複数の画素を複数のブロックに分割し、前記複数のブロックそれぞれに含まれる複数の画素の輝度値を用いて、前記複数のブロックに対応する複数の特徴量を算出し、
前記複数の特徴量を用いて、前記複数のブロックに対応する複数の局所コントラスト補正カーブを生成し、
前記生成された複数の局所コントラスト補正カーブを用いて、前記映像フレームに含まれる複数の画素の輝度値を補正する映像処理方法。
【請求項11】
コンピュータにより実行されるプログラムであって、前記プログラムは前記コンピュータに、
映像フレームに含まれる複数の画素を複数のブロックに分割し、前記複数のブロックそれぞれに含まれる複数の画素の輝度値を用いて、前記複数のブロックに対応する複数の特徴量を算出する手順と、
前記複数の特徴量を用いて、前記複数のブロックに対応する複数の局所コントラスト補正カーブを生成する手順と、
前記生成された複数の局所コントラスト補正カーブを用いて、前記映像フレームに含まれる複数の画素の輝度値を補正する手順とを実行させるプログラム。

【図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