以下、本発明の一実施の形態であるデジタルビデオカメラについて、図面を参照して説明する。
図4は、本発明の一実施の形態であるデジタルビデオカメラの構成例を示している。このデジタルビデオカメラ101は、被写体を撮影して、画素値のダイナミックレンジが通常よりも広い広DR画像を生成し、所定の記憶媒体に記録するとともに、構図決定のファインダや映像モニタを兼ねる内蔵されたディスプレイ、あるいは外部機器に対しては、広DR画像を、画素値のダイナミックレンジがより狭い狭DR画像に変換して出力すると共に、フレーム間のちらつきを抑制するものである。
デジタルビデオカメラ101は、大別して光学系、信号処理系、記録系、表示系、および制御系から構成される。
光学系は、被写体の光画像を集光するレンズ111、光画像の光量を調整する絞り112、および集光された光画像を所定のフレームレートで光電変換して広DR画像を生成するCCDイメージセンサ113から構成される。なお、以下においては、CCDイメージセンサ113が生成する広DR画像に関しては、1チャンネルの輝度信号からなるモノクロ画像である場合と、多チャンネル(例えば、3チャンネル)の輝度信号からなるカラー画像である場合の2通りについて説明する。
信号処理系は、CCDイメージセンサ113から出力された広DR画像をサンプリングすることによってノイズを低減させる相関2重サンプリング回路(CDS)114、相関2重サンプリング回路114によってノイズが除去された広DR画像を、例えば14乃至16ビット程度のビット幅を有する値にAD変換するA/Dコンバータ115、A/Dコンバータ115が出力する広DR画像に対して階調圧縮処理を施すDSP(Digital Signal Processor)116から構成される。
A/Dコンバータ115が出力する14乃至16ビットのビット幅を有する広DR画像のように、階調が多い画像信号は、輝度Y、色差Cr,Cb等の通常のビデオ信号では再現しきれないが、DSP116による階調圧縮処理により、輝度Y、色差Cr,Cb等の通常のビデオ信号では再現できる範囲に階調を圧縮されるようになされている。DSP116については、図5以降を参照して詳述する。
デジタルビデオカメラ101の記録系は、DSP116から入力される広DR画像または狭DR画像をエンコードしてメモリ122に記録したり、メモリ122に記憶されている符号データを読み出してデコードし、DSP116に供給したりするCODEC(Compression/Decompression)121、および、エンコードされた広DR画像または狭DR画像を記憶する、磁気ディスク、光ディスク、光磁気ディスク、半導体などよりなるメモリ122から構成される。
表示系は、DSP116から供給される狭DR画像をDA変換するD/Aコンバータ118、D/Aコンバータ118が出力するアナログの狭DR画像を、輝度Y、色差Cr,Cb等の通常のビデオ信号に変換してディスプレイ120に出力するビデオエンコーダ119、およびビデオ信号に対応する画像を表示することによってファインダやビデオモニタとして機能するLCD(Liquid Crystal Display)等よりなるディスプレイ120から構成される。
制御系は、CCDイメージセンサ113乃至DSP116の動作タイミングを制御するタイミングジェネレータ(TG)117、ユーザからの各種の操作を受け付けるインプットデバイス124、およびデジタルビデオカメラ101の全体を制御するCPU(Central Processing Unit)123から構成される。
次に、デジタルビデオカメラ101の動作の概要について説明する。被写体の光学画像(入射光)は、レンズ111および絞り112を介してCCDイメージセンサ113に入射され、CCDイメージセンサ113によって光電変換され、得られた広DR画像の画素となる電気信号は、相関2重サンプリング回路114によってノイズが除去され、A/Dコンバータ115によってデジタル化された後、DSP116に供給される。
DSP116は、A/Dコンバータ115から入力された広DR画像に対して階調圧縮処理を施し、狭DR画像を生成して、D/Aコンバータ118またはCODEC121、あるいは両方に出力する。D/Aコンバータ118に供給された狭DR画像は、DA変換され、ビデオエンコーダ119により通常のビデオ信号に変換されて、その画像がディスプレイ120に表示される。一方、CODEC121に供給された狭DR画像は、符号化されてメモリ122に記録される。
次に、本発明の主眼となるDSP116について説明する。
図5は、モノクロ画像である広DR画像に対応したDSP116の第1の構成例を示している。以下、DSP116に入力されるモノクロの広DR画像を、広DR輝度画像Lと記述する。また、広DR輝度画像の画素値(すなわち、輝度値)を、L(p)と記述する。ここで、pは、p=(x,y)のように、画像における画素位置を示すベクトルまたは座標である。したがって、L(p)は、画素位置と輝度値の両方の情報を含むものとして、広DR輝度画像を表すLとは区別して用いることとする。後述するその他の画像とその画素値についても同様である。
DSP116には、広DR輝度画像Lの輝度L(p)がラスタスキャン順に入力されるものとする。
DSP116の第1の構成例において、対数変換部141は、入力される輝度L(p)を対数変換し、得られる対数輝度logL(p)をトーンカーブ補正部142に出力する。トーンカーブ補正部142は、入力される対数輝度logL(p)に対し、予め用意されているトーンカーブを適用して階調を圧縮する方向に変換し、得られる対数輝度logLc(p)を縮小画像生成部143およびコントラスト補正部145に出力する。また、トーンカーブ補正部142は、適用したトーンカーブの傾きを示す代表値γをコントラスト補正部145に出力する。以下、適用したトーンカーブの傾きを示す代表値γを、単に代表値γとも記述する。
縮小画像生成部143は、トーンカーブ補正部142から入力される1フレーム分の対数輝度logLc(p)に基づき、縮小画像logLclを生成して、縮小画像メモリ144に保持させる。
コントラスト補正部145は、トーンカーブ補正部142から入力される現フレームの対数輝度logLc(p)のトーンカーブ補正によって弱められているコントラストを、代表値γおよび縮小画像メモリ144に保持されている1フレーム前の縮小画像logLclに基づいて補正し、得られる対数輝度logLu(p)を対数逆変換部146に出力する。対数逆変換部146は、コントラストが補正された対数輝度logLu(p)を、対数逆変換して、得られる通常軸の輝度Lu(p)をガンマ補正部147に出力する。
ガンマ補正部147は、対数逆変換部146から入力される輝度Lu(p)に対して、再生デバイス(例えば、ディスプレイ120)のガンマ特性を考慮したガンマ補正を施し、得られるガンマ補正後の輝度Y(p)を輝度域情報算出部148および輝度域正規化部151に出力する。
輝度域情報算出部148は、ガンマ補正部147から入力される1フレーム分の輝度Y(p)に対して、それぞれ、輝度の分布を示す輝度域情報を算出して輝度域情報平滑化部149に供給する。輝度域情報平滑化部149は、平滑化しようとするフレームの輝度域情報と、時間方向に所定の関係となるフレームの輝度域情報(または、平滑化された輝度域情報)を利用して、輝度域情報を平滑化し、輝度域情報メモリ150に保持させる。ここで、輝度域情報とは、1フレームにおける輝度の分布の範囲を示す情報であって、例えば、最も暗い方に近い輝度Ydと、最も明るい方に近い輝度Ybを輝度域情報[Yd,Yb]として算出するようにする。
輝度域正規化部151は、輝度域情報メモリ150に保持されている1フレーム前の輝度域情報[Yd,Yb]に基づき、ガンマ補正部147から入力される現フレームの輝度Y(p)を、その分布範囲が再生デバイス(例えば、ディスプレイ120)が表現可能な範囲に合致するように変換し、得られる輝度Yn(p)を、狭DR画像の画素値として後段に出力する。
以上、説明したように、DSP116の第1の構成例による階調圧縮処理の過程において、縮小画像生成部143により縮小画像logLclが生成され、輝度域情報算出部148により輝度域情報[Yd,Yb]が算出される。この縮小画像logLclおよび輝度域情報[Yd,Yb]を以下、中間情報と記述する。
DSP116によれば、入力される広DR輝度画像の各フレーム対して中間情報が算出され、算出された中間情報が、1フレーム後の広DR輝度画像を処理するために用いられる。
一般に、階調圧縮を効果的に施すためには、画像全体または画像上で広域な範囲の輝度値に基づいて算出された情報が必要であるが、当該情報を算出するまでのタイムラグが大きくなることが実装上の問題となる。そこで、DSP116では、当該情報として、時間的に非常に変化し難いものを選ぶことによって、1フレーム前の中間情報を現フレームに対する階調圧縮に利用する。このような構成をとることにより、実装してもメモリ使用量や回路規模が大きくなることを回避することができる。
次に、DSP116の第1の構成例の各部の詳細について、図面を参照して説明する。
図6は、トーンカーブ補正部142の第1の構成例を示している。上述の第1の構成例において、LUTメモリ171には、図7に示すような単調増加のトーンカーブに相当するルックアップテーブル(以下、LUTと記述する)とトーンカーブの傾きを示す代表値γが予め保持されている。なお、LUTの代わりに、トーンカーブに相当する関数を保持するようにしてもよい。テーブル参照部172は、LUTメモリ171に保持されているLUTに基づいて対数輝度logL(p)を対数輝度logLc(p)に補正する。
図7は、トーンカーブの一例を示しており、横軸が入力輝度L(p)を、縦軸がトーンカーブ補正後の輝度Lc(p)を、それぞれ[0,1]に正規化して対数軸で表示している。この例のように、単調増加であって、緩やかな逆S字形のトーンカーブを適用すると、高輝度領域と低輝度領域では、階調圧縮があまり強く作用しないので、階調圧縮後でも白ツブレや黒ツブレが少ない良好な色調が得られる。逆に中間輝度域は階調圧縮が強く作用するが、その分だけ、中間輝度域に対しては、後述するコントラスト補正が十分に適用されるので、中間輝度域でもコントラスト劣化のない良好な狭DR画像が得られる。
なお、トーンカーブの傾きを示す代表値γは、例えば、輝度全域の傾きをそれぞれ求めて、それらの平均値を代表値γとすればよい。図7に示されたトーンカーブの場合、代表値γ=0.67である。
図8は、トーンカーブ補正部142の第2の構成例を示している。第2の構成例は、第1の構成例のように予め用意されているLUTを用いるのではなく、フレーム毎に代表値γを算出して、対数輝度logL(p)を、対数輝度logLc(p)に補正するものである。第2の構成例において、平均輝度算出部191は、1フレーム分の対数輝度logL(p)の平均輝度値μを算出し、平均輝度平滑化部192に出力する。
平均輝度平滑化部192は、平均輝度算出部191より供給された平均輝度値μを、前後のフレームの平均輝度値μ、または、前後のフレームの平滑化された平均輝度値μを用いて平滑化し、除算器193に供給する。除算器193は、所定の定数logLTを平均輝度値μで除算し、代表値γを算出する。γメモリ194は、除算器193から入力された代表値γを保持する。乗算器195は、現フレームの対数輝度logL(p)に、γメモリ194に保持されている1フレーム前の代表値γを乗算して、トーンカーブ補正後の対数輝度logLc(p)を算出する。
ここで、所定の定数logLTを、中央レベルの対数輝度と定めておけば、1フレーム分の対数輝度logL(p)の平均値が、logLTと等しい値のトーンカーブ補正後の対数輝度logLc(p)に変換されることになる。
代表値γはフレーム毎に算出されるが、現実的には各フレームの対数輝度logL(p)の平均輝度値μに基づいて決定されるので、前後のフレームではあまり変化がないことが期待できる。したがって、この代表値γも、上述した縮小画像logLclおよび輝度域情報[Yd,Yb]と同様に、1フレーム前のものを、現フレームに対するトーンカーブ補正に用いるようにしている。以下、代表値γも、中間情報に含めることにする。
図9は、トーンカーブ補正部142の第3の構成例を示している。第3の構成例は、いわば、第1の構成例と第2の構成例を組み合わせたものである。第3の構成例において、LUTメモリ211には、図7に示されたようなトーンカーブに相当するLUTと、トーンカーブの傾きを示す代表値γ1が予め保持されている。テーブル参照部212は、LUTメモリ211に保持されているLUTに基づいて対数輝度logL(p)を、対数輝度logLc'(p)に補正して平均輝度算出部213および乗算器217に出力する。
平均輝度算出部213は、1フレーム分の対数輝度logLc'(p)の平均輝度値μを算出して、平均輝度平滑化部214に出力する。平均輝度平滑化部214は、平均輝度算出部213より供給された平均輝度値を、前後のフレームの平均輝度値、または、前後のフレームの平滑化された平均輝度値を用いて平滑化し、除算器215に供給する。
除算器215は、所定の定数logLTを平均輝度値μで除算し、代表値γ2を算出し、γ2メモリ388に保持させる。乗算器217は、現フレームの対数輝度logLc'(p)に、γ2メモリ388に保持されている1フレーム前の代表値γ2を乗算して、トーンカーブ補正後の対数輝度logLc(p)を算出する。乗算器218は、代表値γ1,γ2の積を代表値γ(=γ1・γ2)として後段のコントラスト補正部145に出力する。
次に、図10を参照して、平均輝度平滑化部214の構成について説明する。平滑化計算部231は、平滑化しようとする時刻tのフレームの平均輝度値μ(t)と、直前の時刻(t−1)のフレームに対応する平滑化されている平均輝度値μ(t−1)に、それぞれの重みを乗じた和を求めることにより、平滑化し、時刻(t)に対応するフレームの平滑化された平均輝度値u’(t)として、出力すると共に、バッファ232に供給する。バッファ232は、平均輝度値u’(t)を平均輝度値μ(t−1)として上書きして記憶し、上述のように、平滑化計算部231に供給する。この処理を順次繰り返すことにより、平滑化計算部231は、各フレームに対応する平均輝度値を順次平滑化する。
次に、図11を参照して、縮小画像生成部143の構成について説明する。縮小画像生成部143のソート部251は、前段のトーンカーブ補正部142から入力された1フレーム分の対数輝度logLc(p)を、画像全体をm×n個のブロックに分割したときに属するブロックに応じて分類し、平均値計算部252−1乃至252−N(=m×n)に供給する。例えば、1番目のブロックに分類されるものは平均値計算部252−1に供給され、2番目のブロックに分類されるものは平均値計算部252−2に供給される。以下同様であり、N番目のブロックに分類されるものは平均値計算部252−Nに供給される。以下、平均値計算部252−1乃至252−Nを個々に区別する必要がない場合、単に平均値計算部252と称する。
平均値計算部252−i(i=1,2,...,N)は、1フレーム分の対数輝度logLc(p)のうち、i番目のブロックに分類される対数輝度logLc(p)の平均値を算出して、合成部253に出力する。合成部253は、平均値計算部252−iからそれぞれ入力される対数輝度logLc(p)の平均値を画素値とするm×n画素の縮小画像logLclを生成し、後段の縮小画像メモリ144に保持させる。
図12は、平均値計算部252の構成例を示している。平均値計算部252の加算器271は、前段のソート部251から入力される対数輝度logLc(p)に、レジスタ(r)272が保持する値を加算して、レジスタ(r)272が保持する値を更新する。除算器273は、レジスタ272が最終的に保持している値を、1個のブロックを構成する画素数Qで除算することにより、1個のブロックに分類されたQ個の対数輝度logLc(p)の平均値を算出する。
次に、図13を参照して、コントラスト補正部145の構成について説明する。コントラスト補正部145の補間位置指定部291は、前段のトーンカーブ補正部142から入力された対数輝度logLc(p)の画素位置p(以下、補間位置pとも記述する)を取得して、補間部292に出力する。補間部292は、縮小画像メモリ144に保持されている1フレーム前の縮小画像logLclを用いて、補間位置pに対応する画素logLcl(p)を補間により算出してコントラスト強調部294に出力する。
ゲイン値設定部293は、トーンカーブ補正部142からの前フレームに対する代表値γと、現在フレームの対数輝度logLc(p)に基づいて、現在フレームの対数輝度logLc(p)のコントラスト強調量を決めるゲイン値g(p)を算出する。コントラスト強調部294は、現在フレームの対数輝度logLc(p)を、ゲイン値g(p)および縮小画像の補間値logLcl(p)に基づき、低周波数成分以外のコントラストが強調された対数輝度logLu(p)を算出する。
次に、図14を参照して、補間部292の構成を説明する。補間部292は、1フレーム前の縮小画像logLclの補間位置pの近傍の4×4画素を用いた双3次補間により、補間位置pに対応する画素logLcl(p)を補間するものである。
近傍選択部301は、補間位置pの入力を受けて、縮小画像メモリ144に保持されている1フレーム前のm×n画素の縮小画像logLclから、補間位置pの近傍の4×4画素の画素値a[4][4]を取得して、積和部304に出力する。ここでa[i][j]の表記は、画素値aがi×jの2次元配列データであることを示す。また、近傍選択部301は、取得した画素値a[4][4]と補間位置pとの水平方向の位置ずれ量dx、垂直方向の位置ずれ量dyを、それぞれ、水平係数算出部302または垂直係数算出部303に出力する。
ここで、補間位置p、近傍の画素値a[4][4]、位置ずれ量dx,dyの関係について、図15を参照して説明する。
図15のm×nのマス目は、m×n画素の縮小画像logLclを表している。いま、補間位置p=(px,py)が与えられたとすると、補間位置pに対応する縮小画像logLcl上の位置qは、q=(qx,qy)=(px/bx−0.5,py/by−0.5)である。ただし、(bx,by)=(画像logLcの水平画素数/m,画像logLcの垂直画素数/n)である。
補間位置pに対応する縮小画像上の位置qから近傍画素を得るには、図15においては斜線で示されたqx−2<x<qx+2、qy−2<y<qy+2の範囲に位置する縮小画像logLclの画素を取得すればよい。斜線で示された領域内の4×4の“+”マークで示された位置が取得される画素の位置である。近傍画素と補間位置pのずれ量(dx,dy)は、補間位置qの左下方向の最も近い画素との差分とする。すなわち、ずれ量(dx,dy)=(qxの小数部,qyの小数部)である。
図14に戻る。水平係数算出部302は、近傍選択部301から入力された水平方向ずれ量dxに基づき、水平方向の3次補間係数kx[4]を計算する。同様に、垂直係数算出部303は、近傍選択部301から入力された垂直方向ずれ量dyに基づき、垂直方向の3次補間係数ky[4]を計算する。
例えば、水平方向の3次補間係数k
x[4]は、次式(1)を用いて計算する。
・・・(1)
また、例えば、垂直方向の3次補間係数k
y[4]は、次式(2)を用いて計算する。
・・・(2)
なお、3次補間係数kx[4],ky[4]の計算には、上述した式(1),(2)の他、十分に滑らかな補間が得られるならば、任意の計算式を用いることができる。
積和部304は、近傍の画素値a[4][4]と、水平方向の補間係数k
x[4]および垂直方向の補間係数k
y[4]との積和計算により、縮小画像logL
clの補間位置pの補間値L
cl(p)を、次式(3)を用いて算出する。
・・・(3)
次に、ゲイン値設定部293について説明する。ゲイン値設定部293は、上述したように、後段のコントラスト強調部294により低周波数域以外が強調される際の強調量を調節するゲイン値g(p)を設定するものである。ゲイン値g(p)=1である場合、コントラスト強調部294においてコントラストは強調も抑制も行われない。ゲイン値g(p)>1である場合、その値に対応してコントラストが強調される。また、ゲイン値g(p)<1である場合、その値に対応してコントラストが抑制される。
ゲイン値設定の概略を説明する。画像のコントラストは、トーンカーブ補正による階調圧縮によって既に抑制されているが、その抑制量はトーンカーブの傾きに依存している。例えば、強い階調圧縮を行うように傾きの小さなトーンカーブが適用されていれば、コントラストの抑制も強くなされていることになる。また、例えばトーンカーブとして傾き1の直線が適用されていれば、画像が変化しない、すなわち、コントラストの抑制は行われていないことになる。
そこで、ゲイン値設定部293では、トーンカーブの傾きの代表値γが1よりも小さい場合には、ゲイン値が1より大きくなるように、トーンカーブの傾きの代表値γの逆数1/γをゲイン値として採用する。
また、入力される対数輝度logLc(p)が白レベルまたは黒レベルに近い場合には、中間輝度域と同じようなコントラスト強調を行うとクリッピングが生じて逆に画像のディテールを失う結果となるので、入力される対数輝度logLc(p)が白レベルまたは黒レベルに近くなるにしたがって、ゲイン値が1に近づくようする。
すなわち、代表値γの逆数1/γ=g
0として、ゲイン値g(p)を次式(4)のように算出する。
g(p)=1+(g
0−1)×attn(p)
・・・(4)
ここで、attn(p)は、減衰する係数であって、次式(5)を用いて計算される。
・・・(5)
なお、式(5)において、logLgrayは、中庸なグレイレベルの対数輝度を示し、logLwhiteは、白クリップレベル(最大の白レベル)の対数輝度を示しており、どちらも予め設定されている定数である。
図16は、ゲイン値設定部293の構成例を示している。除算器311は、前段から入力される代表値γの逆数1/γ=g0を算出して減算器312に出力する。減算器312は、(g0−1)を演算して乗算器318に出力する。
減算器313は、対数輝度logLc(p)と、中庸なグレイレベルの対数輝度logLgrayの差(logLc(p)−logLgray)を演算して、除算器315に出力する。減算器314は、白クリップレベルの対数輝度logLwhiteと、対数輝度logLgrayの差(logLwhite−logLgray)を演算して、除算器315に出力する。除算器315は、減算器313の出力(logLc(p)−logLgray)を、減算器314の出力(logLwhite−logLgray)で除算して、絶対値計算器316に出力する。絶対値計算器316は、除算器315の出力の絶対値を計算してクリップ器317に出力する。クリップ器317は、絶対値計算器316の出力が1を超過する場合、その値を1にクリッピングし、絶対値計算器316の出力が1を超過しない場合、その値をそのまま、attn(p)として乗算器318に出力する。
乗算器318は、減算器312の出力に、クリップ器317の出力を乗算して、加算器319に出力する。加算器319は、乗算器318の出力に1を加算し、演算結果をゲイン値g(p)として後段に出力する。
次に、図17を参照して、コントラスト強調部294の構成について説明する。減算器321は、対数輝度logLc(p)と、縮小画像の補間値logLcl(p)との差(logLc(p)−logLcl(p))を演算して、乗算器322に出力する。乗算器322は、減算器321の出力とゲイン値g(p)との積を演算して、加算器323に出力する。加算器323は、乗算器322の出力に、縮小画像の補間値logLcl(p)を加算して、コントラスト補正がなされた対数輝度logLu(p)を後段に出力する。
なお、縮小画像の補間値logLcl(p)は、m×n画素の縮小画像を元にして補間された値であるから、縮小前の画像logLcのごく低周波域成分だけをもつものである。
つまり、減算器321の出力(logLc(p)−logLcl(p))は、元の対数輝度logLc(p)からごく低域成分だけを差し引いたものである。このように輝度信号をごく低周波域の成分とそれ以外の成分の2つに分離し、そのうち、低周波域成分以外をゲイン値g(p)を乗算して強調した後、再び加算器323により合成したものが、コントラスト補正がなされた対数輝度logLu(p)である。
このように、コントラスト強調部294では、ごく低周波域を除く、低中周波域から高周波域の成分が同じゲイン値g(p)で強調されるようになっている。したがって、コントラスト補正がなされた対数輝度logLu(p)は、高周波域だけを強調したときに目立つ、エッジ部分の局所的なオーバーシュートは発生せず、見た目にもごく自然にコントラストが強調された画像が得られるようになされている。
次に、輝度域情報算出部148および輝度域正規化部151について説明する。
まず、輝度域正規化処理の概要を説明する。DSP116による階調圧縮処理の目的は広DR輝度画像を、ディスプレイ120などの再生デバイスのダイナミックレンジに適合した狭DR画像に変換することであり、そのために、再生デバイスのダイナミックレンジにあわせたトーンカーブがトーンカーブ補正部142に予め用意されている。これにより、撮影された大多数の広DR輝度画像を、適切に階調圧縮することができる。
しかしながら、撮影する被写体によっては、入射光のダイナミックレンジが元々それほど大きくないこともあり得るので、その画像に階調圧縮処理を施した場合、必要以上に階調圧縮が行われてしまい、再生デバイスの再生可能なダイナミックレンジよりも狭いレンジに、輝度が押し込められてしまうこともあり得る。
これを抑止するために、輝度域正規化部151では、階調圧縮処理の最終段階の処理として、ガンマ補正後の輝度信号Y(p)のダイナミックレンジが、再生デバイスが再生可能なダイナミックレンジに一致するように、ガンマ補正後の輝度信号Y(p)を正規化する。
図18は、輝度域正規化部151による輝度域正規化処理の様子を示している。同図の折れ線グラフは、横軸に輝度域正規化前のガンマ補正された輝度Yを示し、縦軸に輝度域正規化後の輝度Ynを示しており、階調変換曲線αは、輝度YをYnに変換するときに用いる変換テーブルを示している。
階調変換曲線αの求め方について説明する。折れ線グラフの下に示された斜線の図形F1は、輝度域正規化前の輝度画像Yのヒストグラムの一例である。この例においては、ガンマ補正が行われた輝度域正規化前の段階で、デジタルビデオカメラ101が生成し得る最低輝度Yminから最高輝度Ymaxまでのダイナミックレンジよりも狭いダイナミックレンジに階調圧縮された輝度画像が得られている。
このダイナミックレンジのままで再生デバイスに出力すると、再生デバイスの再生可能なダイナミックレンジが有効に使われないので、輝度域正規化前の輝度画像Yの輝度分布が、再生デバイスのダイナミックレンジの全域に亘って分布するように正規化を実行する。
そのためにまず、輝度域正規化前の輝度画像Yの図形F1のようなヒストグラム形状が分布する範囲[Yd,Yb]を、輝度域正規化前の輝度画像Yの輝度域情報として算出する。そして、再生デバイスの輝度域[Ynb,Ync]の上下端よりも若干内側の輝度Yna,Ynsを設定し、横軸の輝度{Ymin,Yd,Yb,Ymax}が縦軸の輝度{Ynb,Yna,Yns,Ync}に対応するように階調変換曲線αを決定する。
この階調変換曲線αを用いて階調変換を行えば、折れ線グラフの左に示された斜線の図形F2のようなヒストグラム形状をもつ輝度画像Ynを得ることができる。
なお、輝度域正規化前の輝度域[Yd,Yb]を、再生デバイスの輝度域[Ynb,Ync]よりも若干狭い輝度域[Yna,Yns]に写像するように、階調変換曲線αを決定したが、その理由は、輝度Ynb,Ync付近での急激な輝度クリッピングが画像上に現れないようにするためである。
ここで、輝度Yna,Ynsは、輝度Ynb,Yncに基づいて予め適切な値を設定されているものとする。
なお、輝度域正規化前の輝度域[Yd,Yb]の取得は、輝度域情報算出部148が行い、階調変換曲線αの決定および輝度Yn(p)の算出は、輝度域正規化部151が実行する。また、輝度域正規化前の輝度域情報は、後述する輝度域情報平滑化部148により平滑化されている。
次に、図19を参照して、輝度域情報算出部148の構成について説明する。輝度域情報算出部148において、間引き部341は、ガンマ補正部147から入力された輝度Y(p)を、その画素位置pに基づいて選別する。すなわち、予め設定された画素位置の画素の輝度だけを後段のMINソート部342およびMAXソート部345に供給する。
MINソート部342は、比較部343とレジスタ344の組み合わせがk組直列に配置されており、入力された輝度Y(p)を小さい順にレジスタ344−1乃至344−kに保持するようになされている。
例えば、比較部343−1は、間引き部341からの輝度Y(p)とレジスタ344−1の値を比較し、間引き部341からの輝度Y(p)がレジスタ344−1の値よりも小さい場合、間引き部341からの輝度Y(p)を用いてレジスタ344−1の値を更新する。反対に、間引き部341からの輝度Y(p)がレジスタ344−1の値よりも小さくない場合、間引き部341からの輝度Y(p)は後段の比較部343−2に供給される。
比較部343−2は、比較部343−1からの輝度Y(p)とレジスタ344−2の値を比較し、比較部343−1からの輝度Y(p)がレジスタ344−2の値よりも小さい場合、比較部343−1からの輝度Y(p)を用いてレジスタ344−2の値を更新する。反対に、比較部343−1からの輝度Y(p)がレジスタ344−2の値よりも小さくない場合、比較部343−1からの輝度Y(p)は後段の比較部343−3に供給される。
比較部343−3以降においても同様であり、1フレーム分の輝度Y(p)が入力された段階で、レジスタ344−1に輝度Y(p)の最小値Yminが保持され、レジスタ344−2乃至344−kに、輝度Y(p)が小さい順に保持されることになり、レジスタ344−kに保持された輝度Y(p)が、輝度域情報の輝度Ydとして後段に出力される。
MAXソート部345は、比較部346とレジスタ347の組み合わせがk組直列に配置されており、入力された輝度Y(p)を大きい順にレジスタ347−1乃至347−kに保持するようになされている。
例えば、比較部346−1は、間引き部341からの輝度Y(p)とレジスタ347−1の値を比較し、間引き部341からの輝度Y(p)がレジスタ344−1の値よりも大きい場合、間引き部341からの輝度Y(p)を用いてレジスタ347−1の値を更新する。反対に、間引き部341からの輝度Y(p)がレジスタ347−1の値よりも大きくない場合、間引き部341からの輝度Y(p)は後段の比較部346−2に供給される。
比較部346−2は、比較部346−1からの輝度Y(p)とレジスタ347−2の値を比較し、比較部346−1からの輝度Y(p)がレジスタ347−2の値よりも大きい場合、比較部346−1からの輝度Y(p)を用いてレジスタ347−2の値を更新する。反対に、比較部346−1からの輝度Y(p)がレジスタ347−2の値よりも大きくない場合、比較部346−1からの輝度Y(p)は後段の比較部346−3に供給される。
比較部346−3以降においても同様であり、1フレーム分の輝度Y(p)が入力された段階で、レジスタ347−1に輝度Y(p)の最大値Ymaxが保持され、レジスタ347−2乃至347−kに、輝度Y(p)が大きい順に保持されることになり、レジスタ347−kに保持された輝度Y(p)が、輝度域情報の輝度Ybとして後段に出力される。
なお、MINソート部342およびMAXソート部345に入力される輝度Y(p)は、間引き部341により間引きされたものであるので、間引きの間隔と、MINソート部342およびMAXソート部345の段数kを適切に調整すれば、1フレームの全画素のうち、例えば、上限および下限のそれぞれ1%等に相当する輝度Yd,Ybを得ることが可能になる。
次に、図20を参照して、輝度域情報平滑化部149の構成について説明する。尚、輝度域平滑化処理の説明においては、輝度域情報を規定する時刻tにおける輝度Yd,Ybは、統一してY(t)として表現するものとする。従って、輝度域平滑化部149は、輝度域情報を規定する画素pの時刻tにおける輝度Yd,Ybに対して、それぞれについて同様に平滑化処理を行った後、後段の輝度域情報メモリ150に平滑化した輝度域情報として出力するものとする。
平滑化計算部351は、平滑化しようとする時刻tのフレームの輝度域情報Y(t)と、直前の時刻(t−1)のフレームに対応する輝度域情報Y(t−1)に、それぞれの重みを乗じた和を求めることにより、輝度域情報Y(t)を平滑化し、時刻(t)に対応するフレームの輝度域情報Y’(t)として、出力すると共に、バッファ352に供給する。バッファ352は、輝度域情報Y’(t)を輝度域情報Y(P,t−1)として上書きして記憶し、上述のように、平滑化計算部351に供給する。この処理を順次繰り返すことにより、平滑化計算部351は、各フレームに対応する平均輝度値を順次平滑化する。
図21は、輝度域正規化部151の構成例を示している。輝度域正規化部151は、上述したように、階調変換曲線αを決定し、階調変換曲線αを用いてガンマ補正後の輝度Y(p)を輝度域正規化後の輝度Yn(p)に変換するものである。
図18に示されたように、階調変換曲線αは5本の線分で構成されているので、輝度域正規化部151では、入力された輝度Y(p)がどの線分の範囲であるかを判別し、入力された輝度Y(p)に階調変換曲線αを構成する5本の線分のうちの1つを適用して、輝度域正規化後の輝度Yn(p)に変換する。
輝度域正規化部151のセレクタ361は、入力端子iに入力される輝度Y(p)に基づき、入力端子a乃至hにそれぞれ入力される輝度Y
max,Y
b,Y
d,Y
min,Y
nc,Y
ns,Y
na,Y
nbのうちの4つの輝度を、出力端子j乃至mから出力する。この対応関係は、以下の通りである。
減算器362は、出力端子kの出力と出力端子jの出力の差を演算して、除算器365に出力する。減算器363は、出力端子lの出力と減算器364の出力の差を演算して、除算器365に出力する。減算器364は、輝度Y(p)と出力端子mの出力との差を演算して、乗算器366に出力する。除算器365は、減算器362の出力と減算器363の出力の比を演算して乗算器366に出力する。乗算器366は、除算器365の出力と減算器364の出力の積を演算して、加算器367に出力する。加算器367は、出力端子jの出力と乗算器366の出力を加算して出力する。
加算器367の出力Y
n(p)は、ガンマ補正後の輝度Y(p)に基づいて判別された階調変換曲線αの線分を示す次式(6)に示すとおりとなる。
・・・(6)
ところで、図9に示されたトーンカーブ補正部142の平均輝度算出部213と、図11に示された縮小画像生成部143の平均値計算部252が同様の計算を実行することに着目すれば、よりシンプルな回路構成で演算量を減少させることが可能である。具体的には、図5のトーンカーブ補正部142、縮小画像生成部143、縮小画像メモリ144、およびコントラスト補正部145を組み合わせて、図22に示すような複合部371を設ければよい。
この複合部371は、図5に示されたトーンカーブ補正部142、縮小画像生成部143、縮小画像メモリ144、およびコントラスト補正部145と置換可能なものである。
複合部371のLUTメモリ381には、図7に示されたようなトーンカーブに相当するLUTと、トーンカーブの傾きを示す代表値γ1が予め保持されている。テーブル参照部382は、上段から入力された対数輝度logL(p)を、LUTメモリ381に保持されているLUTに基づいて対数輝度logLc'(p)に補正して縮小画像生成部383および乗算器392に出力する。
縮小画像生成部383は、対数輝度画像logLc'をm×n個のブロックに分割し、各ブロックに属する画素の対数輝度logLc'(p)の平均値を算出して、m×n画素の第1の縮小画像を生成し、第1の縮小画像メモリ384に保持させる。
平均輝度算出部385は、第1の縮小画像メモリ384に保持されている1フレーム前の第1の縮小画像の画素値の平均輝度値μを算出して、平均輝度平滑化部386に出力する。
平均輝度平滑化部386は、平均輝度算出部385より供給された平均輝度値を、前後のフレームの平均輝度値、または、前後のフレームの平滑化された平均輝度値を用いて平滑化し、除算器387に供給する。
除算器387は、所定の定数logLTを平滑化された平均輝度値μで除算し、代表値γ2を算出し、γ2メモリ388に保持させる。乗算器389は、第1の縮小画像メモリ384に保持されている第1の縮小画像の各画素に、γ2メモリ388に保持されている代表値γ2を乗算して、第2の縮小画像logLclを生成し、第2の縮小画像メモリ390に持させる。
乗算器391は、テーブル参照部382から入力された現フレームの対数輝度logLc'(p)に、γ2メモリ388に保持されている1フレーム前の代表値γ2を乗算して、トーンカーブ補正後の対数輝度logLc(p)を算出する。乗算器392は、代表値γ1,γ2の積を代表値γ(=γ1・γ2)としてゲイン値設定部393に出力する。
ゲイン値設定部393は、乗算器392から入力された前フレームに対する代表値γと、乗算器391から入力された現在フレームの対数輝度logLc(p)に基づいて、現在フレームの対数輝度logLc(p)のコントラスト強調量を決めるゲイン値g(p)を算出する。
補間位置指定部394は、乗算器391から入力された現在フレームの対数輝度logLc(p)の画素位置p(以下、補間位置pとも記述する)を取得して、補間部174に出力する。補間部174は、第2の縮小画像メモリ390に保持されている1フレーム前の第2の縮小画像logLclを用いて、補間位置pに対応する画素logLcl(p)を補間により算出してコントラスト強調部394に出力する。
コントラスト強調部394は、乗算器391から入力された現在フレームの対数輝度logLc(p)について、ゲイン値g(p)および縮小画像の補間値logLcl(p)に基づき、低周波数成分以外のコントラストが強調された対数輝度logLu(p)を算出する。
この複合部371を用いれば、平均輝度算出部385は、第1の縮小画像のm×n画素の平均値を算出することになるので、本来の画像サイズの対数輝度画像logLcの画素の平均値を算出する図9の平均輝度算出部213に比較して、演算量を削減することができる。したがって、演算に起因する遅延時間を短縮することができる。
次に、図22に示された複合部371が適用されたDSP116の第1の構成例による総合的な階調圧縮処理について、図23のフローチャートを参照して説明する。
ステップS1において、DSP116は、入力された現フレームの広DR輝度画像Lを、1フレーム前の広DR輝度画像に対して算出され、保持されている中間情報(第2の縮小画像logLc(p)、代表値γ、輝度域情報[Yd,Yb])を基づいて狭DR輝度画像Ynに変換する。また、DSP116は、現フレームの広DR輝度画像Lに対する中間情報を算出する。
ステップS2において、DSP116は、算出した現フレームの広DR輝度画像Lに対する中間情報を用いて、保持していた1フレーム前の広DR輝度画像に対する中間情報を更新する。
ステップS3において、DSP116は、入力された現フレームの広DR輝度画像に、後続するフレームが存在するか否かを判定し、後続するフレームが存在すると判定した場合、ステップS1に戻り、それ以降の処理を繰り返す。反対に、後続するフレームが存在しないと判定された場合、この階調圧縮処理は終了される。
ステップS1における画素単位の処理の詳細を、図24のフローチャートを参照して説明する。以下に説明する各ステップの処理は、ラスタスキャン順に入力される注目画素(画素位置p)に対して実行される。
ステップS11において、DSP116に注目画素(画素位置p)の輝度L(p)が入力される。ステップS12において、対数変換部141は、入力された輝度L(p)を対数変換し、得られた対数輝度logL(p)を複合部371に出力する。ステップS13において、複合部371のテーブル参照部382は、対数変換部141から入力された対数輝度logL(p)を、LUTメモリ381に保持されているLUTに基づいて対数輝度logLc'(p)に補正して縮小画像生成部383および乗算器392に出力する。これと同時に、LUTメモリ381は、トーンカーブの傾きの代表値γ1を乗算器392に出力する。乗算器392は、代表値γ1とγ2メモリ388に保持されている1フレーム前の第1の縮小画像に基づいて算出されたγ2の積を代表値γとしてゲイン値設定部393の出力する。
ステップS14において、縮小画像生成部383は、トーンカーブ補正後の1フレーム分の対数輝度logLc’(p)を元に、第1の縮小画像を生成する。ここで、生成された第1の縮小画像に基づき、代表値γ2が算出される。また、生成された第1の縮小画像に算出された代表値γ2が乗算されて、第2の縮小画像logLclが生成される。
ステップS15において、乗算器391は、テーブル参照部382から入力された現フレームの対数輝度logLc'(p)に、γ2メモリ388に保持されている1フレーム前の代表値γ2を乗算して、トーンカーブ補正後の対数輝度logLc(p)を算出する。
ステップS16において、ゲイン値設定部393は、乗算器392から入力された前フレームに対する代表値γと、乗算器391から入力された現在フレームの対数輝度logLc(p)に基づいて、現在フレームの対数輝度logLc(p)のコントラスト強調量を決めるゲイン値g(p)を算出する。
ステップS17において、補間部174は、第2の縮小画像メモリ390に保持されている1フレーム前の第2の縮小画像logLclを用いて、補間位置pに対応する画素logLcl(p)を補間により算出してコントラスト強調部394に出力する。ステップS18において、コントラスト強調部394は、第2の縮小画像の補間値logLcl(p)およびゲイン値g(p)に基づき、トーンカーブ補正後の対数輝度logLc(p)の低周波域成分以外を強調し、その結果得られたコントラスト補正された対数輝度logLu(p)を後段の対数逆変換部146に出力する。
ステップS19において、対数逆変換部146は、コントラスト補正された対数輝度logLu(P)を、通常軸の輝度Lu(P)に変換し、ガンマ補正部147に出力する。ステップS20において、ガンマ補正部147は、所定のガンマ補正を行い、得られた輝度Y(p)を輝度域情報算出部148および輝度域正規化部151に出力する。
ステップS21において、輝度域情報算出部148は、1フレーム分の輝度Y(p)を元にして、輝度域情報[Yd,Yb]を生成する。
ステップS22において、輝度域情報平滑化部149は、輝度域情報平滑化処理を実行し、輝度域情報[Yd,Yb]を平滑化して、輝度域情報メモリ150に格納させる。尚、輝度域情報平滑化処理については、図25のフローチャートを参照して、後述する。
ステップS23において、輝度域正規化部151は、輝度域情報メモリ150に保持されている1フレーム前の平滑化されている輝度域情報[Yd,Yb]に基づき、ガンマ補正部147から入力された輝度Y(p)を正規化して、輝度Yn(p)を算出する。ステップS24において、輝度域正規化部151は、輝度Yn(p)を、階調圧縮された狭DR輝度画像の画素値として出力する。
ここで、図25のフローチャートを参照して、図24のフローチャートにおけるステップS23の処理である、輝度域情報平滑化処理について説明する。尚、以下の輝度域情報平滑化処理の説明において、時刻tにおける輝度域情報[Yd,Yb]の輝度Yd,Ybは、Y(t)として統一して説明するものとする。
ステップS31において、輝度域情報平滑化部149の平滑化計算部351は、入力された、フレームの時刻tが0で有るか否かを判定する。すなわち、最初のフレームであるか否かを判定する。ステップS31において、時刻t=0であると判定された場合、ステップS32において、平滑化計算部351は、所定の定数V1を、時刻tに対応する平滑化した輝度域情報Y’(t)として出力すると共に、バッファ352に供給する。
ステップS33において、バッファ352は、平滑化された輝度域情報Y’(t)を1フレーム前の平滑化された輝度域情報Y’(t−1)として上書き記憶する。
ステップS31において、時刻t=0ではない、すなわち、最初のフレームではなく、いずれかのフレームに対応する輝度域情報Y(t)がそれ以前に供給されている状態であると判定された場合、ステップS34において、平滑化計算部351は、時刻t=1であるか、すなわち、2フレーム目の輝度域情報Y(t)(t=1)であるか否かを判定し、例えば、2フレーム目の輝度域情報Y(t)(t=1)である場合、その処理は、ステップS35に進む。
ステップS35において、平滑化計算部351は、バッファ352に記憶されている直前のフレーム目の輝度域情報Y(t−1)(2フレーム目なので輝度域情報Y(t)(t=0))を、輝度域情報Y(t)の平滑化した結果として出力し、その処理は、ステップS33に進む。
ステップS34において、時刻t=1ではない、すなわち、3フレーム目以降であると判定された場合、その処理は、ステップS36に進む。
ステップS36において、平滑化計算部351は、今入力されたフレームの輝度域情報Y(t)と、バッファ352に記憶されている直前のフレームの平滑化された輝度域情報Y’(t−1)に基づいて、C1×Y(t)+(1−C1)×Y’(t−1)を演算し、今入力されたフレームの平滑化された輝度域情報Y’(t)として出力し、その処理は、ステップS33に進む。ここで、重み係数C1は、0より大きく1よりも小さい任意の値である。
以上の処理が繰り返されることにより、直前のフレームの平滑化された輝度域情報を考慮して、輝度域情報が順次平滑化されるので、動画像のフレーム毎の輝度変動に対応した階調変換を実現することが可能となる。尚、重み係数C1は、例えば、今の場合、1に近い値ほど、今現在のフレームの輝度域情報の値が考慮された状態で平滑化され、逆に、0に近い値ほど、直前のフレームの輝度域情報が考慮された状態で平滑化されることになる。また、今の例においては、直前に平滑化された輝度域情報と、今、入力された輝度域情報に基づいて、輝度域情報を平滑化する例について説明してきたが、さらに、多くのタイミングで平滑化された輝度域情報と今、入力された輝度域情報を用いて、平滑化するようにしても良い。
次に、図23のステップS2の処理の詳細を、図26のフローチャートを参照して説明する。ステップS41において、縮小画像生成部383は、トーンカーブ補正後の1フレーム分の対数輝度logLc’(p)を元に生成した第1の縮小画像を用いて、第1の縮小画像メモリ384に保持されている第1の縮小画像を更新する。
ステップS42において、平均輝度算出部385は、第1の縮小画像メモリ384の各画素の画素値に基づいて、平均輝度値μを計算し平均輝度平滑化部386に供給する。
ステップS43において、平均輝度平滑化部386は、平均輝度平滑化処理を実行し、供給された平均輝度値μを平滑化して、除算器387に供給する。尚、平均輝度平滑化処理については、図27のフローチャートを参照して、詳細を後述する。
ステップS44において、除算器387は、所定の定数logLTを、平均輝度算出部385から入力された平滑化されている平均輝度値μで除算して代表値γ2を算出し、算出した代表値γ2を用いて、γ2メモリ388に保持されている代表値γ2を更新する。
ステップS45において、乗算器389は、ステップS41の処理で更新された第1の縮小画像メモリ384に保持されている第1の縮小画像の各画素に、ステップS44の処理で更新されたγ2メモリ388に保持されている代表値γ2を乗算して、第2の縮小画像logLclを生成し、第1の縮小画像メモリ390に保持されている第2の縮小画像logLclを更新する。
ステップS46において、輝度域情報算出部148は、1フレーム分の輝度Y(p)を元にして算出した輝度域情報[Yd,Yb]を用いて、輝度域情報メモリ150に保持されている1フレーム前の輝度域情報[Yd,Yb]を更新する。
ここで、図27のフローチャートを参照して、図26のフローチャートにおけるステップS43の処理である、平均輝度平滑化処理について説明する。尚、以下の説明において、時刻tの平均輝度μをμ(t)として説明する。
ステップS51において、平均輝度平滑化部214の平滑化計算部231は、入力された、フレームの時刻tが0で有るか否かを判定する。すなわち、最初のフレームであるか否かを判定する。ステップS51において、時刻=0であると判定された場合、ステップS52において、平滑化計算部231は、所定の定数V2を、時刻tに対応する平滑化した平均輝度μ’(t)として出力すると共に、バッファ232に供給する。
ステップS53において、バッファ232は、平滑化された平均輝度値μ’(t)を1フレーム前の平滑化された平均輝度値μ’(t−1)として上書き記憶する。
ステップS51において、時刻t=0ではない、すなわち、最初のフレームではなく、いずれかのフレームに対応する平均輝度値μ(t)がそれ以前に供給されている状態であると判定された場合、ステップS54において、平滑化計算部231は、時刻t=1であるか、すなわち、2フレーム目の平均輝度値μ(1)であるか否かを判定し、例えば、2フレーム目の平均輝度値μ(1)である場合、その処理は、ステップS55に進む。
ステップS55において、平滑化計算部231は、バッファ232に記憶されている直前のフレーム目の平均輝度値μ(t−1)(2フレーム目なので平均輝度値μ(0))を、平均輝度値μ(t)の平滑化した結果として出力し、その処理は、ステップS53に進む。
ステップS54において、時刻t=1ではない、すなわち、3フレーム目以降であると判定された場合、その処理は、ステップS56に進む。
ステップS56において、平滑化計算部231は、今入力されたフレームの平均輝度値μ(t)と、バッファ232に記憶されている直前のフレームの平滑化された平均輝度値μ’(t−1)に基づいて、C2×μ(t)+(1−C2)×μ’(t−1)を演算し、今入力されたフレームの平滑化された平均輝度値μ’(t)として出力し、その処理は、ステップS53に進む。ここで、重み係数C2は、0より大きく1よりも小さい任意の値である。
以上の処理が繰り返されることにより、直前のフレームの平滑化された平均輝度値を考慮して、平均輝度値が順次平滑化されるので、動画像のフレーム毎の輝度変動に対応した階調変換を実現することが可能となる。尚、重み係数C2は、例えば、今の場合、1に近い値ほど、今現在のフレームの平均輝度値の値が考慮された状態で平滑化され、逆に、0に近い値ほど、直前のフレームの平均輝度値が考慮された状態で平滑化されることになる。また、今の例においては、直前に平滑化された平均輝度値と、今、入力された平均輝度値に基づいて、平均輝度値μを平滑化する例について説明してきたが、さらに、多くのタイミングで平滑化された平均輝度値と今、入力された平均輝度値を用いて、平滑化するようにしても良い。
以上の処理においては、処理する以前の処理結果を使用して次フレームの平均輝度値を平滑化する手法について説明してきたが、この処理は、いわゆる無限インパルス応答(IIR)フィルタの一種であるため、計算に使用する係数によっては結果が不安定になる可能性が考えられる。
そこで、有限インパルス応答(FIR)型フィルタのように、過去の一定の入力フレームに対応する平均輝度値を利用して平滑化するようにして、結果を安定できるようにしてもよい。
図28は、FIR型の平均輝度平滑化部214の構成を示している。
バッファ411−1乃至411−Nは、それぞれ基本的に同様のものである。バッファ411−1は、時刻tにおいて、平均輝度値μ(t)が供給されると、それ以前のタイミングである時刻(t−1)において記憶した平均輝度値μ(t−1)を積和計算部412に供給すると共に、バッファ411−2に供給する。同様にして、バッファ411−nは、バッファ411−(n−1)より供給された平均輝度値μ(t)を、記憶すると共に、バッファ411−(n+1)に直前に記憶した平均輝度値μ(t−1)を供給すると共に、積和計算部412に供給する。
結果として、バッファ411−1乃至411−Nは、今の時刻tから見て、時刻t−Nまでの平均輝度値μ(t−1)乃至μ(t−N)をそれぞれ積和計算部412に供給する。
積和計算部412は、入力される平均輝度値μ(t)乃至μ(t−N)に基づいて、所定の重み係数を用いて、積和演算することにより、平均輝度値μ(t)を平滑化して、平滑化された平均輝度値μ’(t)として出力する。
次に、図29のフローチャートを参照して、図28の平均輝度平滑化部214による平均輝度平滑化処理について説明する。
ステップS71において、図28の平均輝度平滑化部214の積和計算部412は、入力された、フレームの時刻tが0で有るか否かを判定する。すなわち、最初のフレームであるか否かを判定する。ステップS71において、時刻=0であると判定された場合、ステップS72において、積和計算部412は、所定の定数V2を、時刻tに対応する平滑化した平均輝度値μ’(t)として出力すると共に、バッファ411−1が、入力された平均輝度値μ(t)(=平均輝度値μ(0))を記憶する。
ステップS73において、バッファ411−n(n=1,2,3・・・N)は、バッファ411−(n+1)に記憶している平均輝度値μ(t−n)を供給し、バッファ411−(n−1)より供給された平均輝度値μ(t)を平均輝度値μ(t−n)として上書きして記憶する。
ステップS71において、時刻t=0ではない、すなわち、最初のフレームではなく、いずれかのフレームに対応する平均輝度値μ(t)がそれ以前に供給されている状態であると判定された場合、ステップS74において、積和計算部412は、時刻t≦Nであるか、すなわち、バッファ411−1乃至411−Nの全てに平均輝度値μ(t)が記憶されていない状態であるか否かを判定し、例えば、全てに平均輝度値が記憶されていない場合、その処理は、ステップS75に進む。
ステップS75において、積和計算部412は、バッファ411−1乃至411−Nのうち、既に平均輝度値μが記憶されているバッファ411−1乃至411−tの直前のフレームと今のフレームの平均輝度値μ(t)乃至μ(0)に、それぞれ重み係数a0乃至atを乗じて、平均輝度値μ(t)を平滑化した平均輝度値μ’(t)として出力し、その処理は、ステップS73に進む。より詳細には、積和計算部412は、a0μ(t)+a1μ(t−1)+a2μ(t−2)+・・・+atμ(0)を演算し、平滑化した平均輝度値μ’(t)として出力する。ここで、重み係数は、a0+a1+a2+・・・+at=1となり、それぞれ任意の値である。
ステップS74において、時刻t≦Nではない、すなわち、Nフレーム目以降であると判定された場合、その処理は、ステップS76に進む。
ステップS76において、積和計算部412は、バッファ411−1乃至411−Nに記憶されているフレームと今のフレームの平均輝度値μ(t)乃至μ(0)に、それぞれ重み係数a0乃至aNを乗じて、平均輝度値μ(t)を平滑化した平均輝度値μ’(t)として出力し、その処理は、ステップS73に進む。より詳細には、積和計算部412は、a0μ(t)+a1μ(t−1)+a2μ(t−2)+・・・+anμ(t−n)を演算し、平滑化した平均輝度値μ’(t)として出力する。ここで、重み係数は、a0+a1+a2+・・・+an=1となり、それぞれ任意の値である。
以上の処理が繰り返されることにより、直前のフレームの平滑化された平均輝度値を考慮して、平均輝度値が順次平滑化されるので、動画像のフレーム毎の輝度変動に対応した階調変換を実現することが可能となる。また、この処理は、有限インパルス応答(FIR)型フィルタのように、過去の一定の入力フレームに対応する平均輝度値を利用して平滑化するようにしているので、結果を安定させるようにすることができる。
以上においては、FIR型の平均輝度平滑化処理について説明してきたが、輝度域情報平滑化処理をFIR型とするようにしてもよい。
図30は、FIR型の輝度域情報平滑化部149の構成を示している。
バッファ431−1乃至431−Mは、それぞれ基本的に同様のものである。バッファ411−1は、時刻tにおいて、輝度域情報Y(t)が供給されると、それ以前のタイミングである時刻(t−1)において記憶した輝度域情報Y(t−1)を積和計算部432に供給すると共に、バッファ431−2に供給する。同様にして、バッファ431−nは、バッファ431−(n−1)より供給された輝度域情報Y(t)を、記憶すると共に、バッファ431−(n+1)に直前に記憶した輝度域情報Y(t−1)を供給すると共に、積和計算部432に供給する。
結果として、バッファ431−1乃至431−Mは、今の時刻tから見て、時刻t−Nまでの輝度域情報Y(t−1)乃至Y(t−N)をそれぞれ積和計算部432に供給する。
積和計算部432は、入力される輝度域情報Y(t)乃至Y(t−M)に基づいて、所定の重み係数を用いて、積和演算することにより、輝度域情報Y(t)を平滑化して、平滑化された輝度域情報Y’(t)として出力する。
次に、図31のフローチャートを参照して、図30の輝度域情報平滑化部149による平均輝度平滑化処理について説明する。
ステップS91において、図30の輝度域情報平滑化部149の積和計算部432は、入力された、フレームの時刻tが0で有るか否かを判定する。すなわち、最初のフレームであるか否かを判定する。ステップS91において、時刻=0であると判定された場合、ステップS92において、積和計算部432は、所定の定数V1を、時刻tに対応する平滑化した輝度域情報Y’(t)として出力すると共に、バッファ431−1が、入力された輝度域情報Y(t)(=輝度域情報Y(t)(t=0))を記憶する。
ステップS93において、バッファ431−n(n=1,2,3・・・M)は、バッファ431−(n+1)に記憶している輝度域情報Y(t−1)を供給し、バッファ431−(n−1)より供給された輝度域情報Y(t)を輝度域情報Y(t−1)として上書きして記憶する。
ステップS91において、時刻t=0ではない、すなわち、最初のフレームではなく、いずれかのフレームに対応する輝度域情報Y(t)がそれ以前に供給されている状態であると判定された場合、ステップS94において、積和計算部432は、時刻t≦Mであるか、すなわち、バッファ431−1乃至431−Mの全てに輝度域情報Y(t)が記憶されていない状態であるか否かを判定し、例えば、全てに輝度域情報Yが記憶されていない場合、その処理は、ステップS95に進む。
ステップS95において、積和計算部432は、バッファ431−1乃至431−Mのうち、既に輝度域情報Yが記憶されているバッファ431−1乃至431−tの直前のフレームと今のフレームの輝度域情報Y(t)乃至μ(0)に、それぞれ重み係数b0乃至btを乗じて、輝度域情報Y(t)を平滑化した輝度域情報Y’(t)として出力し、その処理は、ステップS93に進む。より詳細には、積和計算部432は、b0Y(t)+b1Y(t−1)+b2Y(t−2)+・・・+btY(0)を演算し、平滑化した輝度域情報Y’(t)として出力する。ここで、重み係数は、b0+b1+b2+・・・+bt=1となり、それぞれ任意の値である。
ステップS94において、時刻t≦Mではない、すなわち、Mフレーム目以降であると判定された場合、その処理は、ステップS96に進む。
ステップS96において、積和計算部432は、バッファ431−1乃至431−Mに記憶されているフレームと今のフレームの輝度域情報Y(t)乃至Y(0)に、それぞれ重み係数b0乃至bNを乗じて、輝度域情報Y(t)を平滑化した輝度域情報Y’(t)として出力し、その処理は、ステップS93に進む。より詳細には、積和計算部432は、b0Y(t)+b1Y(t−1)+b2Y(t−2)+・・・+bMY(t−M)を演算し、平滑化した輝度域情報Y’(t)として出力する。ここで、重み係数は、b0+b1+b2+・・・+bM=1となり、それぞれ任意の値である。
以上の処理が繰り返されることにより、直前のフレームの平滑化された輝度域情報を考慮して、輝度域情報が順次平滑化されるので、動画像のフレーム毎の輝度変動に対応した階調変換を実現することが可能となる。また、この処理は、有限インパルス応答(FIR)型フィルタのように、過去の一定の入力フレームに対応する輝度域情報を利用して平滑化するようにしているので、結果を安定させるようにすることができる。
次に、図32は、カラー画像である広DR画像に対応したDSP116の構成例を示している。なお、DSP116にラスタスキャン順に入力される広DR画像は、全ての画素がそれぞれR,G,B成分の全てを有しているのではなく、R,G,B成分のうちのいずれか1つを有しているものとする。以下、DSP116の第2の構成例に入力されるカラー画像である広DR画像を、広DR色モザイク画像と記述する。なお、広DR色モザイク画像の各画素がR,G,B成分のうちのいずれを有しているかは、画素位置によって決定されている。
DSP116にラスタスキャン順に入力される広DR色モザイク画像の画素値を、L(p)と記述する。
DSP116の当該第2の構成例において、デモザイク部451は、画素毎に異なる色成分を有する1フレーム分の画素値L(p)を元に対し、全て画素がR,G,B成分を全て有するようにデモザイク処理を施して、色信号[R(p),G(p),B(p)]を生成し、色バランス調整部452に出力する。以下、デモザイク部451から出力される色信号からなる画像を広DRカラー画像と記述する。
色バランス調整部452は、画像全体の色バランスが適切になるように、R,G,B成分それぞれを調整して、色信号[Rb(p),Gb(p),Bb(p)]を生成する。なお、デモザイク部451および色バランス調整部452は、単板式CCDイメージセンサが搭載された一般的なデジタルビデオに実装されているものである。
対数変換部453は、色バランス調整部452から入力される色信号[Rb(p),Gb(p),Bb(p)]を対数変換し、得られる対数色信号[logRb(p),logGb(p),logBb(p)]をトーンカーブ補正部454に出力する。トーンカーブ補正部454は、入力される対数色信号[logRb(p),logGb(p),logBb(p)]に対し、予め用意されているトーンカーブを適用して階調を圧縮する方向に変換し、得られる対数色信号[logRc(p),logGc(p),logBc(p)]を縮小画像生成部455およびコントラスト補正部457に出力する。また、トーンカーブ補正部454は、適用したトーンカーブの傾きを示す代表値γをコントラスト補正部457に出力する。
縮小画像生成部455は、トーンカーブ補正部454から入力される1フレーム分の対数色信号[logRc(p),logGc(p),logBc(p)]を元に、縮小画像logLclを生成して、縮小画像メモリ456に保持させる。
コントラスト補正部457は、トーンカーブ補正部454から入力される現フレームの対数色信号[logRc(p),logGc(p),logBc(p)]のトーンカーブ補正によって弱められているコントラストを、代表値γおよび縮小画像メモリ456に保持されている1フレーム前の縮小画像logLclに基づいて補正し、得られる対数色信号[logRu(p),logGu(p),logBu(p)]を対数逆変換部458に出力する。対数逆変換部458は、コントラストが補正された対数色信号[logRu(p),logGu(p),logBu(p)]を、対数逆変換して、得られる通常軸の色信号[Ru(p),Gu(p),Bu(p)]をガンマ補正部459に出力する。
ガンマ補正部459は、対数逆変換部458から入力される色信号[Ru(p),Gu(p),Bu(p)]に対して、再生デバイス(例えば、ディスプレイ120)のガンマ特性を考慮したガンマ補正を施し、得られるガンマ補正後の色信号[Rg(p),Gu(p),Bg(p)]を輝度情報算出部460および輝度域正規化部463に出力する。輝度情報算出部460は、ガンマ補正部459から入力される1フレーム分の色信号[Rg(p),Gu(p),Bg(p)]を輝度Y(p)に変換した後、輝度Y(p)の分布を示す輝度域情報を算出して輝度域情報平滑化部461に供給する。
輝度域情報平滑化部461は、輝度域情報を平滑化しようとするフレームと、時間方向に所定の関係となるフレームの輝度域情報(または、平滑化された輝度域情報)を利用して、輝度域情報を平滑化し、輝度域情報メモリ461に保持させる。ここで、輝度域情報とは、1フレームにおける輝度Y(p)の分布の範囲を示す情報であって、例えば、最も暗い方に近い輝度Ydと、最も明るい方に近い輝度Ybを輝度域情報[Yd,Yb]として算出するようにする。
輝度域正規化部463は、輝度域情報メモリ461に保持されている1フレーム前の輝度域情報[Yd,Yb]に基づき、ガンマ補正部459から入力される現フレームの色信号[Rg(p),Gu(p),Bg(p)]を、その分布範囲が再生デバイス(例えば、ディスプレイ120)が表現可能な範囲に合致するように変換し、得られる色信号[Rn(p),Gn(p),Bn(p)]を、カラー画像である狭DR画像の画素値として後段に出力する。
以下説明したように、カラー画像に対応するDSP116の第2の構成例は、デモザイク部451および色バランス部202が追加されていること以外、図5に示されたモノクロ画像に対応する第1の構成例とほぼ同様であるが、各部の内部の構成がカラー画像に対応するために若干変更されている。
図33は、トーンカーブ補正部454の第1の構成例を示している。第1の構成例において、輝度生成部481は、入力される対数色信号[logRb(p),logGb(p),logBb(p)]の線形和を演算することにより対数輝度logLb(p)を生成し、減算器482−R乃至482−Bおよびテーブル参照部484に出力する。
減算器482−Rは、対数色信号logRb(p)から対数輝度logLb(p)を減算して、乗算器485−Rに出力する。LUTメモリ483には、図4に示されたようなトーンカーブに相当するLUTとトーンカーブの傾きを示す代表値γが予め保持されている。テーブル参照部484は、LUTメモリ483に保持されているLUTに基づいて対数輝度logL(p)を対数輝度logLc(p)に補正し、加算器486−R乃至486−Bに出力する。
乗算器485−Rは、減算器482−Rの出力に、LUTメモリ483から入力される代表値γを乗算して、加算器486−Rに出力する。加算器486−Rは、乗算器485−Rの出力と、対数輝度logLc(p)との和を演算して、トーンカーブ補正後の対数色信号logRc(p)として後段に出力する。
なお、G,B成分をそれぞれ処理する構成要素については、上述したR成分を処理する構成要素と同様であるので、その説明は省略する。
図34は、トーンカーブ補正部454の第2の構成例を示している。第2の構成例において、輝度生成部501は、入力される対数色信号[logRb(p),logGb(p),logBb(p)]の線形和を演算することにより対数輝度logLb(p)を生成し、平均輝度算出部502に出力する。平均輝度算出部502は、1フレーム分の対数輝度logL(p)の平均輝度値μを算出して、平均輝度平滑化部503に供給する。平均輝度平滑化部503は、平均輝度算出部502より供給された平均輝度値を、前後のフレームの平均輝度値、または、前後のフレームの平滑化された平均輝度値を用いて平滑化し、除算器504に出力する。除算器504は、所定の定数logLTを平均輝度値μで除算して代表値γを算出し、γメモリ505に保持させる。
乗算器506−Rは、現フレームの対数色信号logRb(p)に、γメモリ505に保持されている1フレーム前の代表値γを乗算して、トーンカーブ補正後の対数色信号logRc(p)を算出する。
なお、G,B成分をそれぞれ処理する構成要素については、上述したR成分を処理する構成要素と同様であるので、その説明は省略する。
図35は、トーンカーブ補正部454の第3の構成例を示している。第3の構成例は、いわば、第1の構成例と第2の構成例を組み合わせたものである。第3の構成例において、輝度生成部521は、入力される対数色信号[logRb(p),logGb(p),logBb(p)]の線形和を演算することにより対数輝度logLb(p)を生成し、減算器522−R乃至522−Bおよびテーブル参照部524に出力する。
減算器522−Rは、対数色信号logRb(p)から対数輝度logLb(p)を減算して、乗算器531−Rに出力する。LUTメモリ523には、図4に示されたようなトーンカーブに相当するLUTとトーンカーブの傾きを示す代表値γ1が予め保持されている。テーブル参照部524は、LUTメモリ523に保持されているLUTに基づいて対数輝度logL(p)を、対数輝度logLc'(p)に補正して平均輝度算出部525および乗算器530に出力する。
平均輝度算出部525は、1フレーム分の対数輝度logLc'(p)の平均輝度値μを算出して、平均輝度平滑化部526に供給する。平均輝度平滑化部526は、平均輝度算出部525より供給された平均輝度値を、前後のフレームの平均輝度値、または、前後のフレームの平滑化された平均輝度値を用いて平滑化し、除算器527に供給する。
除算器527は、所定の定数logLTを平均輝度値μで除算して代表値γ2を算出し、γ2メモリ528に保持させる。乗算器529は、代表値γ1,γ2の積を代表値γ(=γ1・γ2)として後段のコントラスト補正部457に出力する。
乗算器530は、現フレームの対数輝度logLc'(p)に、γ2メモリ528に保持されている1フレーム前の代表値γ2を乗算してトーンカーブ補正後の対数輝度logLc(p)を算出し、加算器532−R乃至532−Bに出力する。
乗算器531−Rは、減算器522−Rの出力に、乗算器529から入力される代表値γを乗算して、加算器532−Rに出力する。加算器532−Rは、乗算器531−Rの出力と、乗算器530の出力の積を演算し、トーンカーブ補正後の対数色信号logRc(p)として後段に出力する。
なお、G,B成分をそれぞれ処理する構成要素については、上述したR成分を処理する構成要素と同様であるので、その説明は省略する。
次に、図36は、縮小画像生成部455の構成例を示している。縮小画像生成部455の輝度生成部551は、入力されるトーンカーブ補正後の対数色信号[logRc(p),logGc(p),logBc(p)]の線形和を演算することにより対数輝度logLc(p)を生成し、ソート部552に出力する。
ソート部552は、対数輝度logLc(p)を、画像をm×n個のブロックに分割したときに属するブロックに応じて分類し、平均値計算部553−1乃至553−N(=m×n)に供給する。例えば、1番目のブロックに分類されるものは平均値計算部553−1に供給され、2番目のブロックに分類されるものは平均値計算部553−2に供給される。以下同様であり、N番目のブロックに分類されるものは平均値計算部553−Nに供給される。
平均値計算部553−i(i=1,2,...,N)は、1フレーム分の対数輝度logLc(p)のうち、i番目のブロックに分類される対数輝度logLc(p)の平均値を算出して、合成部264に出力する。合成部264は、平均値計算部553−iからそれぞれ入力される対数輝度logLc(p)の平均値を画素値とするm×n画素の縮小画像logLclを生成し、後段の縮小画像メモリ456に保持させる。
次に、図37は、コントラスト補正部457の構成例を示している。コントラスト補正部457の輝度生成部570は、入力されるトーンカーブ補正後の対数色信号[logRc(p),logGc(p),logBc(p)]の線形和を演算することにより対数輝度logLc(p)を生成し、補間位置指定部571およびゲイン値設定部573に出力する。
補間位置指定部571は、対数輝度logLc(p)の画素位置p(以下、補間位置pとも記述する)を取得して、補間部572に出力する。補間部572は、縮小画像メモリ456に保持されている1フレーム前の縮小画像logLclを用いて、補間位置pに対応する画素logLcl(p)を補間により算出して、減算器574−R乃至574−Bおよび加算器576−R乃至576−Bに出力する。
ゲイン値設定部573は、トーンカーブ補正部454から入力される前フレームに対する代表値γと、現在フレームの対数輝度logLc(p)に基づいて、現在フレームの対数輝度logLc(p)のコントラスト強調量を決めるゲイン値g(p)を算出し、乗算器575−R乃至575−Bに出力する。
減算器574−Rは、対数色信号logRc(p)から補間値logLcl(p)を減算して、乗算器575−Rに出力する。乗算器575−Rは、減算器574−Rの出力に、ゲイン値g(p)を乗算して、加算器576−Rに出力する。加算器576−Rは、乗算器575−Rの出力に、補間値logLcl(p)を加算して、得られたコントラスト補正後の対数色信号logRu(p)を後段に出力する。
なお、G,B成分をそれぞれ処理する構成要素については、上述したR成分を処理する構成要素と同様であるので、その説明は省略する。
次に、図38は、図32のトーンカーブ補正部454、縮小画像生成部455、縮小画像メモリ456、およびコントラスト補正部457と置換することができる複合部591の構成例を示している。
複合部591の輝度生成部601は、入力される対数色信号[logRb(p),logGb(p),logBb(p)]の線形和を演算することにより対数輝度logLb(p)を生成し、減算器602−R乃至602−Bおよびテーブル参照部604に出力する。減算器602−Rは、対数色信号logRb(p)から、対数輝度logLb(p)を減算して乗算器616−Rに出力する。
LUTメモリ603には、図7に示されたようなトーンカーブに相当するLUTと、トーンカーブの傾きを示す代表値γ1が予め保持されている。テーブル参照部604は、輝度生成部601から入力された対数輝度logL(p)を、LUTメモリ603に保持されているLUTに基づいて対数輝度logLc'(p)に補正し乗算器605および縮小画像生成部606に出力する。
乗算器605は、テーブル参照部604から入力された現フレームの対数輝度logLc'(p)に、γ2メモリ611に保持されている1フレーム前の代表値γ2を乗算して、トーンカーブ補正後の対数輝度logLc(p)を算出し、加算器618−R乃至618−Bに出力する。
縮小画像生成部606は、対数輝度画像logLc'をm×n個のブロックに分割し、各ブロックに属する画素の対数輝度logLc'(p)の平均値を算出して、m×n画素の第1の縮小画像を生成し、第1の縮小画像メモリ607に保持させる。
平均輝度算出部608は、第1の縮小画像メモリ607に保持されている1フレーム前の第1の縮小画像の画素値の平均輝度値μを算出して、平均値平滑化部609に供給する。平均輝度平滑化部609は、平均輝度算出部608より供給された平均輝度値を、前後のフレームの平均輝度値、または、前後のフレームの平滑化された平均輝度値を用いて平滑化し、除算器610に供給する。除算器610は、所定の定数logLTを平均輝度値μで除算し、代表値γ2を算出し、γ2メモリ611に保持させる。乗算器612は、代表値γ1,γ2の積を代表値γ(=γ1・γ2)として求め、ゲイン値設定部616および乗算器616−R乃至616−Bに出力する。
乗算器613は、第1の縮小画像メモリ607に保持されている第1の縮小画像の各画素に、γ2メモリ611に保持されている代表値γ2を乗算して、第2の縮小画像logLclを生成し、第2の縮小画像メモリ614に持させる。
補間部615は、第2の縮小画像メモリ614に保持されている1フレーム前の第2の縮小画像logLclを用いて、乗算器605から入力された現在フレームの対数輝度logLc(p)の画素位置p(以下、補間位置pとも記述する)に対応する画素logLcl(p)を補間により算出して、減算器619−R乃至619−Bおよび加算器621−R乃至621−Bに出力する。
ゲイン値設定部616は、乗算器612から入力された前フレームに対する代表値γと、乗算器605から入力された現在フレームの対数輝度logLc(p)に基づいて、現在フレームの対数輝度logLc(p)のコントラスト強調量を決めるゲイン値g(p)を算出し、乗算器620−R乃至620−Bに出力する。
乗算器616−Rは、減算器602−Rの出力と代表値γの積を演算して、加算器618−Rに出力する。加算器618−Rは、乗算器616−Rの出力と、乗算器605の出力との和を演算して、減算器619−Rに出力する。減算器619−Rは、加算器618−Rの出力から、補間値logLcl(p)を減算して、乗算器620−Rに出力する。乗算器620−Rは、減算器619−Rの出力にゲイン値g(p)を乗算して、加算器621−Rに出力する。加算器621−Rは、乗算器620−Rの出力と、補間値logLcl(p)の和を演算して、を加算して、得られたコントラスト補正後の対数色信号logRu(p)を後段に出力する。
なお、G,B成分をそれぞれ処理する構成要素については、上述したR成分を処理する構成要素と同様であるので、その説明は省略する。
この複合部591を用いれば、平均輝度算出部608は、第1の縮小画像のm×n画素の平均輝度値を算出することになるので、本来の画像サイズの対数輝度画像logLcの画素の平均輝度値を算出する図35の平均輝度算出部525に比較して、演算量を削減することができる。したがって、演算に起因する遅延時間を短縮することができる。
次に、図39は、輝度域情報算出部460の構成例を示している。輝度域情報算出部460において、輝度生成部631は、ガンマ補正後の色信号[Rg(p),Gg(p),Bg(p)]の線形和を演算することにより輝度Y(p)を生成し、間引き部632に出力する。間引き部632は、輝度生成部631から入力された輝度Y(p)を、その画素位置pに基づいて選別する。すなわち、予め設定された画素位置の画素の輝度だけを後段のMINソート部633およびMAXソート部636に供給する。
MINソート部633は、比較部634とレジスタ635の組み合わせがk組直列に配置されており、入力された輝度Y(p)を小さい順にレジスタ635−1乃至635−kに保持するようになされている。
例えば、比較部634−1は、間引き部632からの輝度Y(p)とレジスタ635−1の値を比較し、間引き部632からの輝度Y(p)がレジスタ635−1の値よりも小さい場合、間引き部632からの輝度Y(p)を用いてレジスタ635−1の値を更新する。反対に、間引き部632からの輝度Y(p)がレジスタ635−1の値よりも小さくない場合、間引き部632からの輝度Y(p)は後段の比較部634−2に供給される。
比較部634−2以降においても同様であり、1フレーム分の輝度Y(p)が入力された段階で、レジスタ635−1に輝度Y(p)の最小値Yminが保持され、レジスタ635−2乃至335−kに、輝度Y(p)が小さい順に保持されることになり、レジスタ635−kに保持された輝度Y(p)が、輝度域情報の輝度Ydとして後段に出力される。
MAXソート部636は、比較部637とレジスタ638の組み合わせがk組直列に配置されており、入力された輝度Y(p)を大きい順にレジスタ638−1乃至338−kに保持するようになされている。
例えば、比較部637−1は、間引き部632からの輝度Y(p)とレジスタ638−1の値を比較し、間引き部632からの輝度Y(p)がレジスタ638−1の値よりも大きい場合、間引き部632からの輝度Y(p)を用いてレジスタ638−1の値を更新する。反対に、間引き部632からの輝度Y(p)がレジスタ638−1の値よりも大きくない場合、間引き部632からの輝度Y(p)は後段の比較部637−2に供給される。
比較部637−2以降においても同様であり、1フレーム分の輝度Y(p)が入力された段階で、レジスタ638−1に輝度Y(p)の最大値Ymaxが保持され、レジスタ638−2乃至638−kに、輝度Y(p)が大きい順に保持されることになり、レジスタ638−kに保持された輝度Y(p)が、輝度域情報の輝度Ybとして後段に出力される。
なお、MINソート部633およびMAXソート部636に入力される輝度Y(p)は、間引き部632により間引きされたものであるので、間引きの間隔と、MINソート部633およびMAXソート部636の段数kを適切に調整すれば、1フレームの全画素のうち、例えば上下1%や0.1%などに相当する輝度値Yd,Ybを得ることが可能になる。
次に、図38に示された複合部591が適用されたDSP116の第2の構成例による総合的な階調圧縮処理について、図40のフローチャートを参照して説明する。
ステップS111において、DSP116(デモザイク部451)は、広DR色モザイク画像にデモザイク処理を施して、広DRカラー画像を生成し、その画素値、すなわち、色信号[R(p),G(p),B(p)]をラスタスキャン順に色バランス調整部452に出力する。ステップS112において、DSP116(色バランス調整部452)は、画像全体の色バランスが適切になるように、R,G,B成分それぞれを調整して、色信号[Rb(p),Gb(p),Bb(p)]を生成する。
ステップS113おいて、DSP116は、入力される現フレームの広DRカラー画像の色信号を、1フレーム前の広DRカラー画像に対して算出され、保持されている中間情報(第2の縮小画像logLc(p)、代表値γ、輝度域情報[Yd,Yb])を基づいて狭DRカラー画像Ynに変換する。また、DSP116は、現フレームの広DRカラー画像Lに対する中間情報を算出する。
ステップS114において、DSP116は、算出した現フレームの広DRカラー画像Lに対する中間情報を用いて、保持していた1フレーム前の広DRカラー画像に対する中間情報を更新する。
ステップS115において、DSP116は、入力された現フレームの広DRカラー画像に、後続するフレームが存在するか否かを判定し、後続するフレームが存在すると判定した場合、ステップS41に戻り、それ以降の処理を繰り返す。反対に、後続するフレームが存在しないと判定された場合、この階調圧縮処理は終了される。
ステップS112における画素単位の処理の詳細を、図41のフローチャートを参照して説明する。以下に説明する各ステップの処理は、ラスタスキャン順に入力される注目画素(画素位置p)に対して実行される。
ステップS131において、色バランス調整部452は、生成した色信号[Rb(p),Gb(p),Bb(p)]を、対数変換部453に出力する。ステップS132において、対数変換部453は、入力された色信号[Rb(p),Gb(p),Bb(p)]を対数変換し、得られた対数色信号[logRb(p),logGb(p),logBb(p)]を複合部591に出力する。
ステップS133において、複合部591の輝度生成部601は、入力された対数色信号[logRb(p),logGb(p),logBb(p)]の線形和を演算することにより対数輝度logLb(p)を生成し、減算器602−R乃至602−Bおよびテーブル参照部604に出力する。ステップS134において、テーブル参照部604は、入力された対数輝度logL(p)を、LUTメモリ603に保持されているLUTに基づいて対数輝度logLc'(p)に補正して、乗算器605および縮小画像生成部606に出力する。
ステップS135において、縮小画像生成部606は、トーンカーブ補正後の1フレーム分の対数輝度logLc’(p)を元に、第1の縮小画像を生成する。ここで、生成された第1の縮小画像に基づき、代表値γ2が算出される。また、生成された第1の縮小画像に算出された代表値γ2が乗算されて、第2の縮小画像logLclが生成される。
ステップS136において、乗算器605は、テーブル参照部604から入力された現フレームの対数輝度logLc'(p)に、γ2メモリ611に保持されている1フレーム前の代表値γ2を乗算して、トーンカーブ補正後の対数輝度logLc(p)を算出する。
ステップS137において、R成分については減算器602−R、乗算器616−R、および加算器618−Rの演算により、トーンカーブ補正後の対数色信号logRc(p)が生成される。G成分については減算器602−G、乗算器616−G、および加算器618−Gの演算により、トーンカーブ補正後の対数色信号logGc(p)が生成される。B成分については減算器602−B、乗算器616−B、および加算器618−Bの演算により、トーンカーブ補正後の対数色信号logBc(p)が生成される。
ステップS138において、ゲイン値設定部616は、乗算器612から入力された前フレームに対する代表値γと、乗算器605から入力された現在フレームの対数輝度logLc(p)に基づいて、現在フレームの対数輝度logLc(p)のコントラスト強調量を決めるゲイン値g(p)を算出する。ステップS139において、補間部615は、第2の縮小画像メモリ614に保持されている1フレーム前の第2の縮小画像logLclを用いて、補間位置pに対応する画素logLcl(p)を補間により算出する。
ステップS140において、R成分については減算器619−R、乗算器620−R、および加算器621−Rの演算により、コントラスト補正後の対数色信号logRu(p)が生成される。G成分については減算器619−G、乗算器620−G、および加算器621−Gの演算により、コントラスト補正後の対数色信号logGu(p)が生成される。B成分については減算器619−B、乗算器620−B、および加算器621−Bの演算により、コントラスト補正後の対数色信号logBu(p)が生成される。
ステップS141において、対数逆変換部458は、コントラスト補正後の対数色信号[logRu(p),logGu(p),logBu(p)]を、対数逆変換して、通常軸の色信号[Ru(p),Gu(p),Bu(p)]を生成し、ガンマ補正部459に出力する。ステップS142において、ガンマ補正部459は、所定のガンマ補正を行い、得られたガンマ補正後の色信号[Rg(p),Gg(p),Bg(p)]を輝度情報算出部460および輝度域正規化部463に出力する。
ステップS143において、輝度域情報算出部460の輝度生成部631は、ガンマ補正後の色信号[Rg(p),Gg(p),Bg(p)]を元にして輝度Y(p)を生成する。ステップS144において、輝度域情報算出部460のMINソート部633およびMAXソート部636は、1フレーム分の輝度Y(p)を元にして、輝度域情報[Yd,Yb]を生成する。
ステップS145において、輝度域情報平滑化部461は、輝度域情報平滑化処理を実行し、輝度域情報[Yd,Yb]を平滑化して、輝度域情報メモリ462に格納させる。尚、輝度域情報平滑化処理については、図25のフローチャートを参照して、説明した処理と同様であるので、その説明は省略する。
ステップS146において、輝度域正規化部463は、輝度域情報メモリ461に保持されている1フレーム前の輝度域情報[Yd,Yb]に基づき、ガンマ補正部459から入力された色信号[Rg(p),Gg(p),Bg(p)]を正規化して、色信号[Rn(p),Gn(p),Bn(p)]を算出する。ステップS147において、輝度域正規化部463は、算出した色信号[Rn(p),Gn(p),Bn(p)]を、階調圧縮された狭DRカラー画像の画素値として出力する。
次に、図40のステップS114の処理の詳細を、図42のフローチャートを参照して説明する。ステップS161において、縮小画像生成部606は、トーンカーブ補正後の1フレーム分の対数輝度logLc'(p)を元に生成した第1の縮小画像を用いて、第1の縮小画像メモリ607に保持されている第1の縮小画像を更新する。
ステップS162において、平均輝度算出部608は、第1の縮小画像メモリ607の各画素の画素値に基づいて、平均輝度値μを計算し平均輝度平滑化部609に供給する。
ステップS163において、平均輝度平滑化部609は、平均輝度平滑化処理を実行し、供給された平均輝度値μを平滑化して、除算器610に供給する。尚、平均輝度平滑化処理については、図27のフローチャートを参照して、説明した処理と同様であるので、その説明は省略する。
ステップS164において、除算器610は、所定の定数logLTを、平均輝度平滑化部609から入力された平滑化されている平均輝度値μで除算して代表値γ2を算出し、算出した代表値γ2を用いて、γ2メモリ611に保持されている代表値γ2を更新する。
ステップS165において、乗算器613は、ステップS161の処理で更新された第1の縮小画像メモリ607に保持されている第1の縮小画像の各画素に、ステップS164の処理で更新されたγ2メモリ611に保持されている代表値γ2を乗算して、第2の縮小画像logLclを生成し、第1の縮小画像メモリ614に保持されている第2の縮小画像logLclを更新する。
ステップS166において、輝度域情報算出部460は、1フレーム分の[Rg(p),Gg(p),Bg(p)]を元にして生成した輝度域情報[Yd,Yb]を用いて、輝度域情報メモリ461に保持されている1フレーム前の輝度域情報[Yd,Yb]を更新する。
なお、例えば、図8に示された平均輝度算出部191、図9に示された平均輝度算出部213、図22の平均輝度算出部385、図34に示された平均輝度算出部502、図35に示された平均輝度算出部525のそれぞれにおいては、輝度値の平均値を算出するようにしたが、平均値を求める演算に、重み付き平均を用いるようにしてもよい。例えば、画像の中央部分の重みを周辺部分の重みよりも大きくすることによって、画像の中央部分に存在する被写体の反射率に重点をおいた明るさ補正を行うことが可能になる。
図22に示された複合部371および図38に示された複合部591においては、生成された第1の縮小画像を保持するメモリと、生成された第1の縮小画像に代表値γ2を乗算して生成された第2の縮小画像を保持するメモリが設けられているが、第2の縮小画像が生成された時点で、第1の縮小画像を保持する必要がなくなるので、この2つのメモリを1つにまとめることも可能である。
本実施の形態のように、本発明を、広DR画像を撮影し、その階調を圧縮して、狭いダイナミックレンジのディスプレイに表示可能な画像として出力するデジタルビデオカメラに適用すれば、従来の階調圧縮技術に必要であった大量のメモリ(フレームメモリや画素系列データのディレイラインとして使用される)を大幅に削減した構成で階調圧縮処理を実現でき、かつ、従来大きなフィルタ処理をもって実現されていた階調圧縮処理と遜色のない出力画像を得ることができるようになる。
このことによって、いままで実現できなかった高品質、かつ、安価なデジタルビデオカメラを実現することができる。
なお、本発明は、デジタルビデオカメラの他、デジタルスチルカメラのような撮影装置や、画像データを処理するAV装置やソフトウェアに適用することが可能である。
また、本実施の形態においては、広DR画像を、ディスプレイ120を再現デバイスに想定して、階調圧縮処理を施すようにしたが、例えば、デジタルビデオカメラ101に外部接続するにモニタやプリンタの表現可能なダイナミックレンジに適合させて階調圧縮処理を施すことも可能である。
さらに、以上においては、直前のフレームの平滑化された平均輝度値、および、平滑化された輝度域情報を考慮して、平均輝度値、および、輝度域情報が順次平滑化するようにしてきたが、平均輝度値、または、輝度域情報のいずれか一方のみを平滑化するようにしてもよい。
また、以上においては、画像データの生成に、CCDイメージセンサを用いる場合について説明してきたが、これ以外のイメージセンサであってもよく、例えば、CCDイメージセンサ113の代わりに、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサを用いるようにしても良い。
以上によれば、直前のフレームの平滑化された平均輝度値、若しくは、平滑化された輝度域情報、または、その何れもが順次平滑化されるので、動画像のフレーム毎の輝度変動に対応した階調変換を実現することが可能となる。
ところで、上述した一連の画像処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図43は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタフェース1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
入出力インタフェース1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インタネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク1021(フレキシブルディスクを含む)、光ディスク1022(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク1023(MD(Mini Disc)を含む)、もしくは半導体メモリ1024などの記録媒体に対してデータを読み書きするドライブ1010が接続されている。
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク1021乃至半導体メモリ1024から読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
7 DSP, 141 対数変換部, 142 トーンカーブ補正部, 143 縮小画像生成部, 144 縮小画像メモリ, 145 コントラスト補正部, 146 対数逆変換部, 147 ガンマ補正部, 148 輝度域情報算出部, 149 輝度域情報平滑化部, 150 輝度域情報メモリ, 151 輝度域正規化部, 231 平滑化計算部, 232 バッファ, 351 平滑化計算部, 352 バッファ, 371 複合部, 386 平均輝度平滑化部, 411,411−1乃至411−N バッファ, 412 積和演算部, 431,431−1乃至431−M バッファ, 432 積和演算部, 451 デモザイク部, 452 色バランス調整部, 453 対数変換部, 454 トーンカーブ補正部, 455 縮小画像生成部, 456 縮小画像メモリ, 457 コントラスト補正部, 458 対数逆変換部, 459 ガンマ補正部, 460 輝度域情報算出部, 461 輝度域情報平滑化部, 462 輝度域情報メモリ, 463 輝度域正規化部, 591 複合部