(57)【特許請求の範囲】
【請求項１】
入力画像に対するエッジ保存平滑化処理を行う画像処理装置であって、
前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値を算出する頻度値算出手段と、
前記輝度ブロックの特性を示す特性値を算出する特性値算出手段と、
前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値を用いて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化する加重積和手段と
を備える画像処理装置。
【請求項２】
前記特性値算出手段は、前記輝度ブロックに属す画素の輝度値の総和を前記特性値として算出する
請求項１に記載の画像処理装置。
【請求項３】
前記特性値算出手段は、前記輝度ブロックの前記輝度範囲の中央値を前記特性値として算出する
請求項１に記載の画像処理装置。
【請求項４】
前記加重積和手段は、
前記近傍輝度ブロックが得られる前記空間ブロックと前記画素との相対的な位置関係により定まる空間重みと、前記近傍輝度ブロックの前記頻度値とを用いた補間処理を行って、前記近傍輝度ブロックに対応する輝度ごとに、前記画素の位置の補間された頻度値である補間頻度値を算出する頻度値補間手段と、
前記空間重みと、前記近傍輝度ブロックの前記特性値とを用いた補間処理を行って、前記近傍輝度ブロックに対応する前記輝度ごとに、前記画素の位置の補間された特性値である補間特性値を算出する特性値補間手段と、
前記画素の前記輝度値と、前記近傍輝度ブロックに対応する前記輝度とから定まる輝度重みが乗算された、前記補間頻度値の総和を求めることにより、前記輝度重みによる前記補間頻度値の加重和を算出する頻度値積和手段と、
前記輝度重みが乗算された、前記補間特性値の総和を求めることにより、前記輝度重みによる前記補間特性値の加重和を算出する特性値積和手段と、
前記補間特性値の加重和を、前記補間頻度値の加重和で除算して、前記特性値の加重平均を算出する除算手段と
を備える請求項１に記載の画像処理装置。
【請求項５】
前記加重積和手段は、
前記空間ブロックごとに、その空間ブロックから得られた前記近傍輝度ブロックの前記頻度値に対して、輝度値を変数とする輝度重み関数を畳み込む第１の畳み込み手段と、
前記空間ブロックごとに、その空間ブロックから得られた前記近傍輝度ブロックの前記特性値に対して、前記輝度重み関数を畳み込む第２の畳み込み手段と、
前記近傍輝度ブロックが得られる前記空間ブロックと前記画素との相対的な位置関係により定まる空間重みと、前記輝度重み関数が畳み込まれた前記頻度値とを用いた補間処理を行って、前記画素の位置における、前記画素の前記輝度値に対する補間された頻度値である補間頻度値を算出する頻度値補間手段と、
前記空間重みと、前記輝度重み関数が畳み込まれた前記特性値とを用いた補間処理を行って、前記画素の位置における、前記画素の前記輝度値に対する補間された特性値である補間特性値を算出する特性値補間手段と、
前記補間特性値を、前記補間頻度値で除算して、前記特性値の加重平均を算出する除算手段と
を備える請求項１に記載の画像処理装置。
【請求項６】
前記加重積和手段は、
所定のフレームの前記入力画像から算出された、前記輝度重み関数が畳み込まれた前記頻度値を、前記入力画像の１フレーム分の時間だけ保持する頻度値保持手段と、
前記所定のフレームの前記入力画像から算出された、前記輝度重み関数が畳み込まれた前記特性値を、前記入力画像の１フレーム分の時間だけ保持する特性値保持手段と
をさらに備え、
前記頻度値補間手段は、前記所定のフレームの前記入力画像から算出され、前記頻度値保持手段に保持されている前記頻度値を用いて、前記所定のフレームの次のフレームの前記入力画像について前記補間頻度値を算出し、
前記特性値補間手段は、前記所定のフレームの前記入力画像から算出され、前記特性値保持手段に保持されている前記特性値を用いて、前記次のフレームの前記入力画像について前記補間特性値を算出する
請求項５に記載の画像処理装置。
【請求項７】
前記入力画像に基づいて、前記入力画像が縮小された縮小画像を生成する縮小画像生成手段をさらに備え、
前記頻度値算出手段は、前記縮小画像が空間方向および輝度方向に分割されて得られた輝度ブロックについて、その輝度ブロックに属す前記縮小画像の画素の頻度値を算出し、
前記特性値算出手段は、前記縮小画像が空間方向および輝度方向に分割されて得られた輝度ブロックについて、その輝度ブロックの特性を示す特性値を算出する
請求項１に記載の画像処理装置。
【請求項８】
所定のフレームの前記入力画像から算出された前記頻度値を、前記入力画像の１フレーム分の時間だけ保持する頻度値保持手段と、
前記所定のフレームの前記入力画像から算出された前記特性値を、前記入力画像の１フレーム分の時間だけ保持する特性値保持手段と
をさらに備え、
前記加重積和手段は、前記頻度値保持手段に保持されている前記頻度値、および前記特性値保持手段に保持されている前記特性値を用いて、前記所定のフレームの次のフレームの前記入力画像について、前記特性値の加重平均を行う
請求項１に記載の画像処理装置。
【請求項９】
入力画像に対するエッジ保存平滑化処理を行う画像処理方法であって、
前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値を算出し、
前記輝度ブロックの特性を示す特性値を算出し、
前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値を用いて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化する
ステップを含む画像処理方法。
【請求項１０】
入力画像に対するエッジ保存平滑化処理を行う画像処理用のプログラムであって、
前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値を算出し、
前記輝度ブロックの特性を示す特性値を算出し、
前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値を用いて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化する
ステップを含む処理をコンピュータに実行させるプログラム。
【請求項１１】
入力画像の階調補正を行う画像処理装置であって、
前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値を算出する頻度値算出手段と、
前記輝度ブロックの特性を示す特性値を算出する特性値算出手段と、
前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値を用いて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値を加重平均することにより、前記入力画像上における前記画素が含まれる物体領域の平均的な明るさを示す大局輝度値を算出する加重積和手段と、
前記各画素位置について、前記大局輝度値に基づいて、前記画素ごとのトーンカーブの形状を算出するトーンカーブ算出手段と、
前記各画素位置について、前記トーンカーブを用いて、前記画素の前記輝度値の階調を補正する輝度値階調補正手段と
を備える画像処理装置。
【請求項１２】
前記トーンカーブ算出手段は、前記大局輝度値を前記トーンカーブにより階調補正した場合に、前記大局輝度値が、前記トーンカーブによる階調補正後の輝度値の取り得る範囲のほぼ中間の値に変換されるように、前記トーンカーブの形状を算出する
請求項１１に記載の画像処理装置。
【請求項１３】
前記各画素位置について、前記トーンカーブを用いて、前記画素の前記大局輝度値の階調を補正する大局輝度値階調補正手段と、
前記大局輝度値階調補正手段により階調補正された前記大局輝度値と、前記トーンカーブの形状とに基づいて、前記輝度値階調補正手段により階調補正された前記輝度値のコントラストを補正するコントラスト補正手段と
をさらに備える請求項１１に記載の画像処理装置。
【請求項１４】
前記加重積和手段は、
前記近傍輝度ブロックが得られる前記空間ブロックと前記画素との相対的な位置関係により定まる空間重みと、前記近傍輝度ブロックの前記頻度値とを用いた補間処理を行って、前記近傍輝度ブロックに対応する輝度ごとに、前記画素の位置の補間された頻度値である補間頻度値を算出する頻度値補間手段と、
前記空間重みと、前記近傍輝度ブロックの前記特性値とを用いた補間処理を行って、前記近傍輝度ブロックに対応する前記輝度ごとに、前記画素の位置の補間された特性値である補間特性値を算出する特性値補間手段と、
前記画素の前記輝度値と、前記近傍輝度ブロックに対応する前記輝度とから定まる輝度重みが乗算された、前記補間頻度値の総和を求めることにより、前記輝度重みによる前記補間頻度値の加重和を算出する頻度値積和手段と、
前記輝度重みが乗算された、前記補間特性値の総和を求めることにより、前記輝度重みによる前記補間特性値の加重和を算出する特性値積和手段と、
前記補間特性値の加重和を、前記補間頻度値の加重和で除算して、前記特性値の加重平均を算出する除算手段と
を備える請求項１１に記載の画像処理装置。
【請求項１５】
前記加重積和手段は、
前記空間ブロックごとに、その空間ブロックから得られた前記近傍輝度ブロックの前記頻度値に対して、輝度値を変数とする輝度重み関数を畳み込む第１の畳み込み手段と、
前記空間ブロックごとに、その空間ブロックから得られた前記近傍輝度ブロックの前記特性値に対して、前記輝度重み関数を畳み込む第２の畳み込み手段と、
前記近傍輝度ブロックが得られる前記空間ブロックと前記画素との相対的な位置関係により定まる空間重みと、前記輝度重み関数が畳み込まれた前記頻度値とを用いた補間処理を行って、前記画素の位置における、前記画素の前記輝度値に対する補間された頻度値である補間頻度値を算出する頻度値補間手段と、
前記空間重みと、前記輝度重み関数が畳み込まれた前記特性値とを用いた補間処理を行って、前記画素の位置における、前記画素の前記輝度値に対する補間された特性値である補間特性値を算出する特性値補間手段と、
前記補間特性値を、前記補間頻度値で除算して、前記特性値の加重平均を算出する除算手段と
を備える請求項１１に記載の画像処理装置。
【請求項１６】
前記加重積和手段は、
所定のフレームの前記入力画像から算出された、前記輝度重み関数が畳み込まれた前記頻度値を、前記入力画像の１フレーム分の時間だけ保持する頻度値保持手段と、
前記所定のフレームの前記入力画像から算出された、前記輝度重み関数が畳み込まれた前記特性値を、前記入力画像の１フレーム分の時間だけ保持する特性値保持手段と
をさらに備え、
前記頻度値補間手段は、前記所定のフレームの前記入力画像から算出され、前記頻度値保持手段に保持されている前記頻度値を用いて、前記所定のフレームの次のフレームの前記入力画像について前記補間頻度値を算出し、
前記特性値補間手段は、前記所定のフレームの前記入力画像から算出され、前記特性値保持手段に保持されている前記特性値を用いて、前記次のフレームの前記入力画像について前記補間特性値を算出する
請求項１５に記載の画像処理装置。
【請求項１７】
前記入力画像に基づいて、前記入力画像が縮小された縮小画像を生成する縮小画像生成手段をさらに備え、
前記頻度値算出手段は、前記縮小画像が空間方向および輝度方向に分割されて得られた輝度ブロックについて、その輝度ブロックに属す前記縮小画像の画素の頻度値を算出し、
前記特性値算出手段は、前記縮小画像が空間方向および輝度方向に分割されて得られた輝度ブロックについて、その輝度ブロックの特性を示す特性値を算出する
請求項１１に記載の画像処理装置。
【請求項１８】
所定のフレームの前記入力画像から算出された前記頻度値を、前記入力画像の１フレーム分の時間だけ保持する頻度値保持手段と、
前記所定のフレームの前記入力画像から算出された前記特性値を、前記入力画像の１フレーム分の時間だけ保持する特性値保持手段と
をさらに備え、
前記加重積和手段は、前記頻度値保持手段に保持されている前記頻度値、および前記特性値保持手段に保持されている前記特性値を用いて、前記所定のフレームの次のフレームの前記入力画像について、前記特性値の加重平均を行う
請求項１１に記載の画像処理装置。
【請求項１９】
入力画像の階調補正を行う画像処理方法であって、
前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値を算出し、
前記輝度ブロックの特性を示す特性値を算出し、
前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値を用いて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値を加重平均することにより、前記入力画像上における前記画素が含まれる物体領域の平均的な明るさを示す大局輝度値を算出し、
前記各画素位置について、前記大局輝度値に基づいて、前記画素ごとのトーンカーブの形状を算出し、
前記各画素位置について、前記トーンカーブを用いて、前記画素の前記輝度値の階調を補正する
ステップを含む画像処理方法。
【請求項２０】
入力画像の階調補正を行う画像処理用のプログラムであって、
前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値を算出し、
前記輝度ブロックの特性を示す特性値を算出し、
前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値を用いて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値を加重平均することにより、前記入力画像上における前記画素が含まれる物体領域の平均的な明るさを示す大局輝度値を算出し、
前記各画素位置について、前記大局輝度値に基づいて、前記画素ごとのトーンカーブの形状を算出し、
前記各画素位置について、前記トーンカーブを用いて、前記画素の前記輝度値の階調を補正する
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置および方法、並びにプログラムに関し、特に、画像の階調補正を行う場合に用いて好適な画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
画像処理技術の１つとして、エッジ保存平滑化処理が知られている。エッジ保存平滑化処理とは、画像中の物体境界など顕著な輝度段差は残しつつ階調を平滑化する非線形フィルタ処理である。エッジ保存平滑化処理は、視認性に影響する物体輪郭が保存されつつ微細な輝度変動が除去されるため、古くからノイズリダクション処理に用いられている（例えば、非特許文献１乃至３参照）。
【０００３】
また、エッジ保存平滑化処理は、物体内のテクスチャの微細な輝度変動と物体輪郭の顕著な輝度段差を分離できる性質を利用して、テクスチャに代表されるディテール成分を変化させることなく、それ以外の成分の輝度差を圧縮する階調補正処理にも用いられている（例えば、非特許文献４および５参照）。
【０００４】
このようなエッジ保存平滑化処理の中で、近年バイラテラルフィルタと呼ばれる技術がよく利用されるようになってきている。一般に、画像に対するバイラテラルフィルタＢＬＦ（ｐｃ）では、次式（１）に示されるように、空間方向の重み関数ω（ｐ−ｐｃ）および輝度値方向の重み関数φ（Ｉ（ｐ）−Ｉ（ｐｃ））で重み付けした画素位置ｐｃの周囲の画素の画素値Ｉ（ｐ）を加算する演算が行われる。
【０００５】
【数１】
0004998287.tif 000002
【０００６】
なお、式（１）において、右辺の分母は、重み値の正規化係数を示している。非特許文献４には、このようなバイラテラルフィルタを用いた階調補正処理技術が開示されている。
【０００７】
式（１）に示されるように、バイラテラルフィルタでは、局所領域中の各画素ｐに対する重み付けが中心画素ｐｃの輝度値に依存して変わる。そのため、画素毎に重み値を算出し直す必要があるので、通常の線形なFIR（Finite Impulse Response）フィルタなどに比べて演算量がはるかに多い。非特許文献４および非特許文献６には、そのようなバイラテラルフィルタの欠点を克服するために、バイラテラルフィルタ計算を高速化する手法が開示されている。
【０００８】
【非特許文献１】A. Lev，S. W. Zucker，A. Rosenfeld，「Iterative enhancement of noise images」，IEEE Trans. Systems， Man， and Cybernetics， Vol. SMC-7，1977.
【非特許文献２】D. C. C. Wang，A. H. Vagnucci，C. C. Li，「Gradient inverse weighted smoothing scheme and the evaluation of its performance」，CVGIP，Vol. 15，pp. 167-181，1981.
【非特許文献３】M. Nagao，T. Matsuyama，「Edge preserving smoothing」，CGIP，Vol. 9， pp. 394-407，1978.
【非特許文献４】F. Durand，J. Dorsey，「Fast bilaterarl filtering for the display of high-dynamic-range images」，Proc. of ACM SIGGRAPH 2002，2002.
【非特許文献５】S. N. Pattanaik，H. Yee，「Adaptive gain control for high dynamic range image display」，Proc. of Spring Conference in Computer Graphics 2002，2002.
【非特許文献６】Weiss，「Fast median and bilateral filtering」，Proc. of ACM SIGGRAPH 2006，2006.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、上述のエッジ保存平滑化を用いた画像処理において、巨大な領域を一度にみるエッジ保存平滑化、すなわち比較的大きな領域内の画素を用いたエッジ保存平滑化が必要になることがあった。
【００１０】
例えば、ノイズリダクション処理においては、数画素×数画素程度のオペレータサイズのエッジ保存平滑化を適用して高域のノイズを除去した結果、より低域のノイズが逆に目立ってしまう場合があった。低域のノイズを除去するためには、より大きな領域を一度にみるエッジ保存平滑化が必要である。特に暗所撮影などでイメージセンサ出力に大きいゲインをかけて表示する場合には、低域のノイズ振幅も無視できないほど大きいので、巨大なエッジ保存平滑化オペレータを用いる必要があった。
【００１１】
このような巨大な領域をみるエッジ保存平滑化は、特に階調補正処理で必要とされる。階調補正処理においては、物体内のテクスチャの微細な輝度変動と同様に、同一物体内の起伏に起因する輝度変動も輝度差を圧縮することなく保存したい成分である場合が多い。例えば、人物の顔の領域内の輝度変動に輝度圧縮処理を施すと表情が変わったように見えるなどの弊害が出る。このような同一物体内の起伏に起因する輝度変動と物体輪郭の輝度段差を分離するためには、画像によっては数百×数百画素程度の巨大な領域を一度にみるエッジ保存平滑化が必要になる場合があった。
【００１２】
前述のように、エッジ保存平滑化の１つであるバイラテラルフィルタについては、その計算を簡略化することで演算量を減らす手法が既に提案されている。しかし、それらの手法は、演算量の増加を、あくまでオペレータのサイズ（画素数×画素数）に対して線形な増加にとどめることを実現するものであり、数百×数百画素というサイズではやはり演算量が非現実的に多くなってしまう。
【００１３】
本発明は、このような状況に鑑みてなされたものであり、より少ない演算でエッジ保存平滑化処理を行うことができるようにするものである。
【課題を解決するための手段】
【００１４】
本発明の第１の側面の画像処理装置は、入力画像に対するエッジ保存平滑化処理を行う画像処理装置であって、前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値を算出する頻度値算出手段と、前記輝度ブロックの特性を示す特性値を算出する特性値算出手段と、前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値を用いて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化する加重積和手段とを備える。
【００１５】
前記特性値算出手段には、前記輝度ブロックに属す画素の輝度値の総和を前記特性値として算出させることができる。
【００１６】
前記特性値算出手段には、前記輝度ブロックの前記輝度範囲の中央値を前記特性値として算出させることができる。
【００１７】
前記加重積和手段には、前記近傍輝度ブロックが得られる前記空間ブロックと前記画素との相対的な位置関係により定まる空間重みと、前記近傍輝度ブロックの前記頻度値とを用いた補間処理を行って、前記近傍輝度ブロックに対応する輝度ごとに、前記画素の位置の補間された頻度値である補間頻度値を算出する頻度値補間手段と、前記空間重みと、前記近傍輝度ブロックの前記特性値とを用いた補間処理を行って、前記近傍輝度ブロックに対応する前記輝度ごとに、前記画素の位置の補間された特性値である補間特性値を算出する特性値補間手段と、前記画素の前記輝度値と、前記近傍輝度ブロックに対応する前記輝度とから定まる輝度重みが乗算された、前記補間頻度値の総和を求めることにより、前記輝度重みによる前記補間頻度値の加重和を算出する頻度値積和手段と、前記輝度重みが乗算された、前記補間特性値の総和を求めることにより、前記輝度重みによる前記補間特性値の加重和を算出する特性値積和手段と、前記補間特性値の加重和を、前記補間頻度値の加重和で除算して、前記特性値の加重平均を算出する除算手段とを設けることができる。
【００１８】
前記加重積和手段には、前記空間ブロックごとに、その空間ブロックから得られた前記近傍輝度ブロックの前記頻度値に対して、輝度値を変数とする輝度重み関数を畳み込む第１の畳み込み手段と、前記空間ブロックごとに、その空間ブロックから得られた前記近傍輝度ブロックの前記特性値に対して、前記輝度重み関数を畳み込む第２の畳み込み手段と、前記近傍輝度ブロックが得られる前記空間ブロックと前記画素との相対的な位置関係により定まる空間重みと、前記輝度重み関数が畳み込まれた前記頻度値とを用いた補間処理を行って、前記画素の位置における、前記画素の前記輝度値に対する補間された頻度値である補間頻度値を算出する頻度値補間手段と、前記空間重みと、前記輝度重み関数が畳み込まれた前記特性値とを用いた補間処理を行って、前記画素の位置における、前記画素の前記輝度値に対する補間された特性値である補間特性値を算出する特性値補間手段と、前記補間特性値を、前記補間頻度値で除算して、前記特性値の加重平均を算出する除算手段とを設けることができる。
【００１９】
前記加重積和手段には、所定のフレームの前記入力画像から算出された、前記輝度重み関数が畳み込まれた前記頻度値を、前記入力画像の１フレーム分の時間だけ保持する頻度値保持手段と、前記所定のフレームの前記入力画像から算出された、前記輝度重み関数が畳み込まれた前記特性値を、前記入力画像の１フレーム分の時間だけ保持する特性値保持手段とをさらに設け、前記頻度値補間手段には、前記所定のフレームの前記入力画像から算出され、前記頻度値保持手段に保持されている前記頻度値を用いて、前記所定のフレームの次のフレームの前記入力画像について前記補間頻度値を算出させ、前記特性値補間手段には、前記所定のフレームの前記入力画像から算出され、前記特性値保持手段に保持されている前記特性値を用いて、前記次のフレームの前記入力画像について前記補間特性値を算出させることができる。
【００２０】
画像処理装置には、前記入力画像に基づいて、前記入力画像が縮小された縮小画像を生成する縮小画像生成手段をさらに設け、前記頻度値算出手段には、前記縮小画像が空間方向および輝度方向に分割されて得られた輝度ブロックについて、その輝度ブロックに属す前記縮小画像の画素の頻度値を算出させ、前記特性値算出手段には、前記縮小画像が空間方向および輝度方向に分割されて得られた輝度ブロックについて、その輝度ブロックの特性を示す特性値を算出させることができる。
【００２１】
画像処理装置には、所定のフレームの前記入力画像から算出された前記頻度値を、前記入力画像の１フレーム分の時間だけ保持する頻度値保持手段と、前記所定のフレームの前記入力画像から算出された前記特性値を、前記入力画像の１フレーム分の時間だけ保持する特性値保持手段とをさらに設け、前記加重積和手段には、前記頻度値保持手段に保持されている前記頻度値、および前記特性値保持手段に保持されている前記特性値を用いて、前記所定のフレームの次のフレームの前記入力画像について、前記特性値の加重平均を行わせることができる。
【００２２】
本発明の第１の側面の画像処理方法またはプログラムは、入力画像に対するエッジ保存平滑化処理を行う画像処理方法またはプログラムであって、前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値を算出し、前記輝度ブロックの特性を示す特性値を算出し、前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値を用いて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化するステップを含む。
【００２３】
本発明の第１の側面においては、入力画像に対するエッジ保存平滑化処理を行う画像処理装置において、前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値が算出され、前記輝度ブロックの特性を示す特性値が算出され、前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値が用いられて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値が加重平均されることにより、前記入力画像がエッジ保存平滑化される。
【００２４】
本発明の第２の側面の画像処理装置は、入力画像の階調補正を行う画像処理装置であって、前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値を算出する頻度値算出手段と、前記輝度ブロックの特性を示す特性値を算出する特性値算出手段と、前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値を用いて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値を加重平均することにより、前記入力画像上における前記画素が含まれる物体領域の平均的な明るさを示す大局輝度値を算出する加重積和手段と、前記各画素位置について、前記大局輝度値に基づいて、前記画素ごとのトーンカーブの形状を算出するトーンカーブ算出手段と、前記各画素位置について、前記トーンカーブを用いて、前記画素の前記輝度値の階調を補正する輝度値階調補正手段とを備える。
【００２５】
前記トーンカーブ算出手段には、前記大局輝度値を前記トーンカーブにより階調補正した場合に、前記大局輝度値が、前記トーンカーブによる階調補正後の輝度値の取り得る範囲のほぼ中間の値に変換されるように、前記トーンカーブの形状を算出させることができる。
【００２６】
画像処理装置には、前記各画素位置について、前記トーンカーブを用いて、前記画素の前記大局輝度値の階調を補正する大局輝度値階調補正手段と、前記大局輝度値階調補正手段により階調補正された前記大局輝度値と、前記トーンカーブの形状とに基づいて、前記輝度値階調補正手段により階調補正された前記輝度値のコントラストを補正するコントラスト補正手段とをさらに設けることができる。
【００２７】
前記加重積和手段には、前記近傍輝度ブロックが得られる前記空間ブロックと前記画素との相対的な位置関係により定まる空間重みと、前記近傍輝度ブロックの前記頻度値とを用いた補間処理を行って、前記近傍輝度ブロックに対応する輝度ごとに、前記画素の位置の補間された頻度値である補間頻度値を算出する頻度値補間手段と、前記空間重みと、前記近傍輝度ブロックの前記特性値とを用いた補間処理を行って、前記近傍輝度ブロックに対応する前記輝度ごとに、前記画素の位置の補間された特性値である補間特性値を算出する特性値補間手段と、前記画素の前記輝度値と、前記近傍輝度ブロックに対応する前記輝度とから定まる輝度重みが乗算された、前記補間頻度値の総和を求めることにより、前記輝度重みによる前記補間頻度値の加重和を算出する頻度値積和手段と、前記輝度重みが乗算された、前記補間特性値の総和を求めることにより、前記輝度重みによる前記補間特性値の加重和を算出する特性値積和手段と、前記補間特性値の加重和を、前記補間頻度値の加重和で除算して、前記特性値の加重平均を算出する除算手段とを設けることができる。
【００２８】
前記加重積和手段には、前記空間ブロックごとに、その空間ブロックから得られた前記近傍輝度ブロックの前記頻度値に対して、輝度値を変数とする輝度重み関数を畳み込む第１の畳み込み手段と、前記空間ブロックごとに、その空間ブロックから得られた前記近傍輝度ブロックの前記特性値に対して、前記輝度重み関数を畳み込む第２の畳み込み手段と、前記近傍輝度ブロックが得られる前記空間ブロックと前記画素との相対的な位置関係により定まる空間重みと、前記輝度重み関数が畳み込まれた前記頻度値とを用いた補間処理を行って、前記画素の位置における、前記画素の前記輝度値に対する補間された頻度値である補間頻度値を算出する頻度値補間手段と、前記空間重みと、前記輝度重み関数が畳み込まれた前記特性値とを用いた補間処理を行って、前記画素の位置における、前記画素の前記輝度値に対する補間された特性値である補間特性値を算出する特性値補間手段と、前記補間特性値を、前記補間頻度値で除算して、前記特性値の加重平均を算出する除算手段とを設けることができる。
【００２９】
前記加重積和手段には、所定のフレームの前記入力画像から算出された、前記輝度重み関数が畳み込まれた前記頻度値を、前記入力画像の１フレーム分の時間だけ保持する頻度値保持手段と、前記所定のフレームの前記入力画像から算出された、前記輝度重み関数が畳み込まれた前記特性値を、前記入力画像の１フレーム分の時間だけ保持する特性値保持手段とをさらに設け、前記頻度値補間手段には、前記所定のフレームの前記入力画像から算出され、前記頻度値保持手段に保持されている前記頻度値を用いて、前記所定のフレームの次のフレームの前記入力画像について前記補間頻度値を算出させ、前記特性値補間手段には、前記所定のフレームの前記入力画像から算出され、前記特性値保持手段に保持されている前記特性値を用いて、前記次のフレームの前記入力画像について前記補間特性値を算出させることができる。
【００３０】
画像処理装置には、前記入力画像に基づいて、前記入力画像が縮小された縮小画像を生成する縮小画像生成手段をさらに設け、前記頻度値算出手段には、前記縮小画像が空間方向および輝度方向に分割されて得られた輝度ブロックについて、その輝度ブロックに属す前記縮小画像の画素の頻度値を算出させ、前記特性値算出手段には、前記縮小画像が空間方向および輝度方向に分割されて得られた輝度ブロックについて、その輝度ブロックの特性を示す特性値を算出させることができる。
【００３１】
画像処理装置には、所定のフレームの前記入力画像から算出された前記頻度値を、前記入力画像の１フレーム分の時間だけ保持する頻度値保持手段と、前記所定のフレームの前記入力画像から算出された前記特性値を、前記入力画像の１フレーム分の時間だけ保持する特性値保持手段とをさらに設け、前記加重積和手段には、前記頻度値保持手段に保持されている前記頻度値、および前記特性値保持手段に保持されている前記特性値を用いて、前記所定のフレームの次のフレームの前記入力画像について、前記特性値の加重平均を行わせることができる。
【００３２】
本発明の第２の側面の画像処理方法またはプログラムは、入力画像の階調補正を行う画像処理方法またはプログラムであって、前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値を算出し、前記輝度ブロックの特性を示す特性値を算出し、前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値を用いて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値を加重平均することにより、前記入力画像上における前記画素が含まれる物体領域の平均的な明るさを示す大局輝度値を算出し、前記各画素位置について、前記大局輝度値に基づいて、前記画素ごとのトーンカーブの形状を算出し、前記各画素位置について、前記トーンカーブを用いて、前記画素の前記輝度値の階調を補正するステップを含む。
【００３３】
本発明の第２の側面においては、入力画像の階調補正を行う画像処理装置において、前記入力画像を空間方向に分割して得られる空間ブロック内の画素が、その画素の輝度値に基づいて、所定の輝度範囲内の輝度値の画素からなる輝度ブロックの何れかに分類されることにより、前記空間ブロックがさらに輝度方向に分割されて得られる前記輝度ブロックについて、前記輝度ブロックに属す前記画素の頻度値が算出され、前記輝度ブロックの特性を示す特性値が算出され、前記入力画像の各画素位置について、前記画素近傍のいくつかの前記空間ブロックから得られた前記輝度ブロックである近傍輝度ブロックの前記特性値および前記頻度値が用いられて、前記画素と前記近傍輝度ブロックとの空間方向および輝度方向の距離に基づいて前記特性値が加重平均されることにより、前記入力画像上における前記画素が含まれる物体領域の平均的な明るさを示す大局輝度値が算出され、前記各画素位置について、前記大局輝度値に基づいて、前記画素ごとのトーンカーブの形状が算出され、前記各画素位置について、前記トーンカーブが用いられて、前記画素の前記輝度値の階調が補正される。
【発明の効果】
【００３４】
本発明の第１の側面によれば、より少ない演算でエッジ保存平滑化処理を行うことができる。
【００３５】
また、本発明の第２の側面によれば、より少ない演算で階調補正処理を行うことができる。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照して、本発明を適用した実施の形態について説明する。
【００３７】
図１は、本発明を適用したデジタルビデオカメラの一実施の形態を示すブロック図である。デジタルビデオカメラは、レンズ１１、絞り１２、画像センサ１３、相関２重サンプリング回路（CDS）１４、Ａ／Ｄ（Analog/Digital）コンバータ１５、ＤＳＰ（Digital Signal Processor）ブロック１６、タイミングジェネレータ（TG）１７、ＬＣＤ（Liquid Crystal Display）ドライバ１８、ＬＣＤ１９、CODEC（Compression/Decompression）２０、メモリ２１、ＣＰＵ（Central Processing Unit）２２、入力デバイス２３、およびバス２４から構成される。なお、ＤＳＰブロック１６は、信号処理用のプロセッサ（例えば、ＤＳＰ）と画像データを保持するＲＡＭ（Random Access Memory）などのメモリなどにより構成されるブロックであり、プロセッサが所定のプログラムを実行することにより、後述する画像処理を行う。また、以下、ＤＳＰブロック１６を、単にＤＳＰ１６と呼ぶ。
【００３８】
レンズ１１および絞り１２などからなる光学系を通過した被写体からの入射光は、まず画像センサ１３の撮像面上の各受光素子に到達し、受光素子による光電変換により電気信号に変換される。画像センサ１３から出力された電気信号は、相関２重サンプリング回路１４によってノイズが除去され、Ａ／Ｄコンバータ１５によってデジタル化された後、デジタル化された画像データがＤＳＰ１６内のメモリに一時的に格納される。タイミングジェネレータ１７は、一定のフレームレートにより画像データが取り込まれるように、相関２重サンプリング回路１４、Ａ／Ｄコンバータ１５、および、ＤＳＰ１６により構成される信号処理系を制御する。すなわち、ＤＳＰ１６には、一定のフレームレートで画像データのストリームが供給される。
【００３９】
なお、画像センサ１３は、一般的なＣＣＤ（Charge Coupled Device）などの画像センサよりダイナミックレンジが広く、飽和したり、ノイズを発生させたりすることなく、被写体の暗い部分から明るい部分までを撮像することができる。従って、Ａ／Ｄコンバータ１５は、入力される電気信号を、通常のデジタルビデオカメラの階調数（例えば、10乃至12ビット程度のデータにより表現できる階調数）よりも多い階調数（例えば、14乃至16ビット程度のデータにより表現できる階調数）の画像データに変換する。
【００４０】
ＤＳＰ１６は、画像データのダイナミックレンジが、例えばＬＣＤ１９が表示可能なダイナミックレンジになるように、後述する画像処理を画像データに施した後、画像処理を施した画像データを、必要に応じて、ＬＣＤドライバ１８またはCODEC２０に供給する。
【００４１】
ＬＣＤドライバ１８は、ＤＳＰ１６から供給される画像データをアナログの画像信号に変換する。ＬＣＤドライバ１８は、デジタルビデオカメラのファインダであるＬＣＤ１９にアナログの画像信号を供給し、画像信号に基づく画像を表示させる。
【００４２】
CODEC２０は、ＤＳＰ１６から供給される画像データを所定の方式により符号化し、符号化した画像データを、半導体、磁気記録媒体、光磁気記録媒体、光記録媒体などよりなるメモリ２１に記録させる。
【００４３】
ＣＰＵ２２は、例えば、ユーザがシャッタボタン等の操作ボタンなどにより構成される入力デバイス２３を操作することにより入力された指令などに基づいて、デジタルビデオカメラの全体の処理を制御する。また、ＤＳＰ１６、タイミングジェネレータ１７、CODEC２０、メモリ２１、ＬＣＤ１９、ＣＰＵ２２、および入力デバイス２３は、バス２４を介して相互に接続されている。
【００４４】
図２は、ＤＳＰ１６の内部のプロセッサ（演算ユニット）が、所定のプログラムを実行することにより実現される機能の構成の例を示すブロック図である。ＤＳＰ１６の内部のプロセッサが所定のプログラムを実行することにより、ホワイトバランス処理部５１、デモザイク処理部５２、階調補正処理部５３、ガンマ補正処理部５４、およびＹＣ変換処理部５５を含む機能が実現される。
【００４５】
ホワイトバランス処理部５１は、Ａ／Ｄコンバータ１５によりＡ／Ｄ変換された、動画像などの画像データであるモザイク画像を取得する。モザイク画像は、Ｒ，Ｇ，Ｂのうちのいずれかの色成分に対応するデータが１つの画素に格納され、例えば図３に示す、ベイヤー配列と呼ばれる色配列に従って各画素が配置されている画像であり、ＲＡＷデータとも呼ばれている。
【００４６】
図３では、１つの正方形が１つの画素を表しており、正方形内の文字Ｒ，Ｇ，Ｂは、それぞれＲの画素，Ｇの画素，およびＢの画素を示している。そして、Ｇの画素が市松状に配置され、残りの部分にＲの画素およびＢの画素が一行ごとに交互に配置されている。
【００４７】
図２の説明に戻り、ホワイトバランス処理部５１は、取得したモザイク画像の各画素の画素値に適切な係数をかけることにより、被写体の無彩色の部分の色バランスが実際に無彩色となるように、モザイク画像のホワイトバランスを調整する。ホワイトバランス処理部５１は、ホワイトバランスを調整したモザイク画像をデモザイク処理部５２に供給する。なお、以下、ホワイトバランスが調整されたモザイク画像をＭｗとする。
【００４８】
デモザイク処理部５２は、ホワイトバランス処理部５１から供給されたモザイク画像Ｍｗに対して、１つの画素がＲ，Ｇ，Ｂ成分を全て有するようにするデモザイク処理を施す。これにより、Ｒ，Ｇ，Ｂの３つの色成分にそれぞれ対応するＲ画像、Ｇ画像、Ｂ画像の３つの画像データが生成される。デモザイク処理部５２は、生成したＲ画像、Ｇ画像、Ｂ画像の３つの画像データを階調補正処理部５３に供給する。
【００４９】
なお、以下、Ｒ画像、Ｇ画像、Ｂ画像の３つの画像データをまとめてＲＧＢ画像とも称する。また、以下、モザイク画像の画素位置ｐにおける画素値をＭ(ｐ)とする。さらに、以下、デモザイク処理が施された画像データの画素位置ｐにおける画素値を［R w(p), G w(p), B w(p)］とする。ここで、R w(p)はＲ成分の画素値であり、G w(p)はＧ成分の画素値であり、B w(p)はＢ成分の画素値である。
【００５０】
階調補正処理部５３は、ＲＧＢ画像に階調補正処理を施し、階調補正処理を施したＲＧＢ画像をガンマ補正処理部５４に供給する。なお、以下、階調補正処理が施された画像データの画素位置ｐにおける画素値を［R u(p), G u(p), B u(p)］とする。ここで、R u(p)はＲ成分の画素値であり、G u(p)はＧ成分の画素値であり、B u(p)はＢ成分の画素値である。
【００５１】
ガンマ補正処理部５４は、階調変換されたＲＧＢ画像にガンマ補正を施す。ガンマ補正処理部５４は、ガンマ補正を施したＲＧＢ画像をＹＣ変換処理部５５に供給する。なお、以下、ガンマ補正が施された画像データの画素位置ｐにおける画素値を［R uγ(p), G uγ(p), B uγ(p)］とする。ここで、R uγ(p)はＲ成分の画素値であり、G uγ(p)はＧ成分の画素値であり、B uγ(p)はＢ成分の画素値である。
【００５２】
ＹＣ変換処理部５５は、ガンマ補正が施されたＲＧＢ画像に対して、ＹＣマトリックス処理およびクロマ成分に対する帯域制限を行うことにより、輝度成分（Ｙ成分）により構成されるＹ画像、および、色差成分（CbまたはCr成分）により構成されるＣ画像を生成する。ＹＣ変換処理部５５は、生成したＹ画像およびＣ画像を、必要に応じて、ＬＣＤドライバ１８またはCODEC２０に供給する。なお、以下、ＹＣ変換処理部５５から出力される画像データの画素位置ｐにおける画素値を［Y(p), C(p)］とする。ここで、Y(p)はＹ画像における輝度成分の値であり、C(p)はＣ画像における色差成分の値である。また、以下、Ｃ画像のCb成分をCb(p)と称し、Ｃ画像のCr成分をCr(p)と称する。
【００５３】
図４は、階調補正処理部５３の機能の構成例を示すブロック図である。階調補正処理部５３は、輝度算出部８１、非線形変換部８２、輝度階調補正部８３、非線形変換部８４−１乃至非線形変換部８４−３、階調補正部８５−１乃至階調補正部８５−３、および非線形逆変換部８６−１乃至非線形逆変換部８６−３から構成される。
【００５４】
輝度算出部８１は、デモザイク処理部５２から供給されたＲＧＢ画像の画素値Rw(p)，Gw(p)，Bw(p)から、その画素位置に対応する輝度成分の値（輝度値L(p)）を算出し、非線形変換部８２に供給する。非線形変換部８２は、輝度算出部８１からの輝度値L(p)を非線形変換し、その結果として得られた輝度値L(nl)(p)を、輝度階調補正部８３および階調補正部８５−１乃至階調補正部８５−３に供給する。
【００５５】
輝度階調補正部８３は、非線形変換部８２からの輝度値L(nl)(p)の階調を圧縮することで、輝度値L(nl)(p)の階調補正を行い、階調補正により得られた輝度値Lu(nl)(p)を階調補正部８５−１乃至階調補正部８５−３に供給する。
【００５６】
非線形変換部８４−１乃至非線形変換部８４−３のそれぞれは、デモザイク処理部５２から供給されたＲＧＢ画像の画素値Rw(p)、Gw(p)、およびBw(p)のそれぞれを非線形変換する。また、非線形変換部８４−１乃至非線形変換部８４−３のそれぞれは、非線形変換により得られた画素値R(nl)(p)、G(nl)(p)、およびB(nl)(p)のそれぞれを、階調補正部８５−１乃至階調補正部８５−３に供給する。なお、以下、非線形変換部８４−１乃至非線形変換部８４−３のそれぞれを個々に区別する必要のない場合、単に非線形変換部８４と称する。
【００５７】
階調補正部８５−１乃至階調補正部８５−３のそれぞれは、非線形変換部８２からの輝度値L(nl)(p)と、輝度階調補正部８３からの輝度値Lu(nl)(p)とを用いて、非線形変換部８４−１乃至非線形変換部８４−３からの画素値R(nl)(p)、G(nl)(p)、およびB(nl)(p)のそれぞれを階調補正する。階調補正部８５−１乃至階調補正部８５−３のそれぞれは、階調補正により得られた画素値R u(nl)(p)、G u(nl)(p)、およびB u(nl) (p)のそれぞれを、非線形逆変換部８６−１乃至非線形逆変換部８６−３のそれぞれに供給する。
【００５８】
非線形逆変換部８６−１乃至非線形逆変換部８６−３のそれぞれは、階調補正部８５−１乃至階調補正部８５−３からの画素値R u(nl)(p)、G u(nl)(p)、およびB u(nl) (p)のそれぞれに、非線形変換部８４による非線形変換の逆変換となる非線形逆変換を施す。非線形逆変換部８６−１乃至非線形逆変換部８６−３のそれぞれは、非線形逆変換により得られた画素値Ru(p)、Gu(p)、およびBu(p)のそれぞれを、ガンマ補正処理部５４に供給する。
【００５９】
なお、以下、階調補正部８５−１乃至階調補正部８５−３のそれぞれを個々に区別する必要のない場合、単に階調補正部８５と称する。また、以下、非線形逆変換部８６−１乃至非線形逆変換部８６−３のそれぞれを個々に区別する必要のない場合、単に非線形逆変換部８６と称する。
【００６０】
図５は、図４の輝度階調補正部８３の機能の構成の例を示すブロック図である。輝度階調補正部８３は、輝度域情報算出部１１１、輝度域情報メモリ１１２、ブロックヒストグラム算出部１１３、ブロックヒストグラムメモリ１１４、ブロック積分値算出部１１５、ブロック積分値メモリ１１６、加重積和部１１７、トーンカーブ算出部１１８、トーンカーブメモリ１１９、マッピング部１２０、マッピング部１２１、およびコントラスト補正部１２２から構成される。
【００６１】
輝度域情報算出部１１１、ブロックヒストグラム算出部１１３、およびブロック積分値算出部１１５は、ＲＧＢ画像の広域的な情報を算出し、その情報を１フレームごとに更新する処理を行う。
【００６２】
すなわち、輝度域情報算出部１１１は、非線形変換部８２から供給された輝度値L(nl)(p)からなる１フレーム分の画像（以下、輝度画像と称する）の画素の輝度値のヒストグラムにおける暗輝度側および明輝度側の裾野の輝度値である裾野値を求め、それらの裾野値を輝度域情報として輝度域情報メモリ１１２に格納する。輝度域情報メモリ１１２は、輝度域情報算出部１１１から供給された輝度域情報を一時的に記録し、トーンカーブ算出部１１８に供給する。
【００６３】
ブロックヒストグラム算出部１１３は、非線形変換部８２から供給された輝度値L(nl)(p)からなる１フレーム分の輝度画像を、空間方向に複数のいくつかの空間ブロック（領域）に分割し、さらに空間ブロックを輝度方向に分割して輝度ブロックとする。ここで、輝度ブロックは、空間ブロック内の画素のうち、輝度ブロックに対して予め定められた輝度範囲内の輝度値を有する画素からなる。したがって、例えば空間ブロックをＤ個の輝度ブロックに分割する場合、輝度値の取り得る範囲が予めＤ個の範囲に分割されており、空間ブロック内の画素は、その輝度値がＤ個の範囲のいずれの範囲内の値であるかによって、Ｄ個の輝度ブロックのうちのいずれかに分類される。
【００６４】
また、ブロックヒストグラム算出部１１３は、輝度画像を分割して得られる各輝度ブロックの画素の頻度値を求め、それらの頻度値をブロックヒストグラムとして、ブロックヒストグラムメモリ１１４に供給する。すなわち、ブロックヒストグラムは、各輝度ブロックに属す（分類された）画素数を示している。ブロックヒストグラムメモリ１１４は、ブロックヒストグラム算出部１１３から供給されたブロックヒストグラムを一時的に記録し、加重積和部１１７に供給する。
【００６５】
ブロック積分値算出部１１５は、非線形変換部８２から供給された輝度値L(nl)(p)からなる１フレーム分の輝度画像から、各輝度ブロックについて、輝度ブロックに属す画素の輝度値の積分値（総和）を算出し、算出された積分値をブロック積分値としてブロック積分値メモリ１１６に供給する。ブロック積分値メモリ１１６は、ブロック積分値算出部１１５から供給されたブロック積分値を一時的に記録し、加重積和部１１７に供給する。
【００６６】
なお、以下、輝度域情報、ブロックヒストグラム、およびブロック積分値を中間データとも称する。この中間データとしての輝度域情報、ブロックヒストグラム、およびブロック積分値は、輝度域情報メモリ１１２、ブロックヒストグラムメモリ１１４、およびブロック積分値メモリ１１６に、輝度画像（ＲＧＢ画像）の１フレーム分の時間だけ保持されて、１フレームごとに更新されることになる。
【００６７】
また、中間データは、算出するのにほぼ１フレーム分の時間が必要とされるため、従来の技術では、実際に生成された中間データが利用されるのは、次のフレームの画像情報が入力されたときとなる。しかし、階調補正処理部５３では、中間データを算出する処理と、中間データを利用してＲＧＢ画像の階調補正を行う処理とは並行して行われるので、動画像データについてもリアルタイムに処理を行うことが可能である。
【００６８】
加重積和部１１７は、非線形変換部８２から供給された輝度値L(nl)(p)と、ブロックヒストグラムメモリ１１４からのブロックヒストグラム、およびブロック積分値メモリ１１６からのブロック積分値とから、輝度値L(nl)(p)からなる輝度画像のごく低周波成分からなる画像（以下、大局輝度画像と称する）の輝度値である大局輝度値Ll(nl)(p)を算出する。
【００６９】
すなわち、処理対象となっているフレームの時間的に１つ前のフレームの輝度画像（ＲＧＢ画像）から求められた、ブロックヒストグラムおよびブロック積分値が用いられて、供給された輝度値L(nl)(p)の画素の大局輝度値Ll(nl)(p)が算出される。ここで、大局輝度値とは、いわばＲＧＢ画像上の画素が属す物体領域の平均輝度に相当する情報、つまりその画素が含まれる物体領域の平均的な明るさを示す輝度値である。
【００７０】
なお、以下、処理の対象となっている画素、例えば、輝度階調補正部８３に供給された輝度値L(nl)(p)の画素を、処理対象画素とも称する。
【００７１】
また、加重積和部１１７は、算出した大局輝度値Ll(nl)(p)を、トーンカーブ算出部１１８およびマッピング部１２０に供給する。
【００７２】
トーンカーブ算出部１１８は、輝度域情報メモリ１１２からの輝度域情報と、加重積和部１１７からの大局輝度値Ll(nl)(p)とから、輝度値の階調を圧縮するために適用されるトーンカーブの形状を算出し、その算出結果をトーンカーブメモリ１１９に供給する。トーンカーブメモリ１１９は、トーンカーブ算出部１１８からのトーンカーブを記録し、記録しているトーンカーブをマッピング部１２０、マッピング部１２１、およびコントラスト補正部１２２に供給する。
【００７３】
マッピング部１２０は、トーンカーブメモリ１１９に記録されているトーンカーブに基づいて、加重積和部１１７からの大局輝度値Ll(nl)(p)の階調を圧縮（補正）し、階調補正により得られた大局輝度値Lcl(nl)(p)をコントラスト補正部１２２に供給する。マッピング部１２１は、トーンカーブメモリ１１９に記録されているトーンカーブに基づいて、非線形変換部８２から供給された輝度値L(nl)(p)の階調を圧縮（補正）し、階調補正により得られた輝度値Lc(nl)(p)をコントラスト補正部１２２に供給する。
【００７４】
コントラスト補正部１２２は、マッピング部１２０からの大局輝度値Lcl(nl)(p)、マッピング部１２１からの輝度値Lc(nl)(p)、およびトーンカーブメモリ１１９に記録されているトーンカーブに基づいて、階調が圧縮された輝度値Lc(nl)(p)からなる輝度画像のコントラストを補正する。また、コントラスト補正部１２２は、コントラストの補正された輝度値Lu(nl)(p)を階調補正部８５に供給する。
【００７５】
図６は、図５の輝度域情報算出部１１１の機能の構成例を示す図である。輝度域情報算出部１１１は、間引き部１５１、飽和画素除外部１５２、ソーティング部１５３、およびソーティング部１５４から構成される。
【００７６】
間引き部１５１は、ラスタスキャン順に供給される輝度画像の画素の輝度値L(nl)(p)を所定の間隔でサンプリングして出力する。すなわち、間引き部１５１は、非線形変換部８２から供給された輝度値L(nl)(p)の画素位置ｐが、所定の間隔ごとに設けられているサンプリング位置に合致するか否かを判定し、サンプリング位置に合致すると判定した場合、輝度値L(nl)(p)を飽和画素除外部１５２に供給する。これにより、後段のソーティング部１５３およびソーティング部１５４に出力される輝度値の数が一定数以上とならないようになされる。
【００７７】
飽和画素除外部１５２は、noise Level(nl)およびsaturation Level(nl)を、ＤＳＰ１６の図示せぬ内部のメモリから読み込む。ここで、noise Level(nl)およびsaturation Level(nl)は、それぞれノイズレベルの輝度値を示す閾値、および飽和レベルの輝度値を示す閾値である。
【００７８】
飽和画素除外部１５２は、間引き部１５１から供給された輝度値L(nl)(p)が、noise Level(nl)以上かつsaturation Level(nl)以下である場合、その輝度値L(nl)(p)をソーティング部１５３およびソーティング部１５４に供給する。したがって、ノイズレベル以下である輝度値、および飽和レベル以上である輝度値は、後段に出力されずに遮断され、これにより後段のソーティング部１５３およびソーティング部１５４により、有効な輝度域以外の画素がカウントされないようになされる。
【００７９】
ソーティング部１５３は、比較部１６１−１乃至比較部１６１−ｋ、および各比較部に対応するレジスタ１６２−１乃至レジスタ１６２−ｋから構成される。比較部１６１−１乃至比較部１６１−ｋは、飽和画素除外部１５２および比較部１６１−１乃至比較部１６１−（ｋ−１）から供給された輝度値L(nl)(p)と、レジスタ１６２−１乃至レジスタ１６２−ｋの値とを比較する。
【００８０】
そして、比較部１６１−１乃至比較部１６１−ｋのそれぞれは、輝度値L(nl)(p)がレジスタ１６２−１乃至レジスタ１６２−ｋのそれぞれの値より小さい場合、レジスタ１６２−１乃至レジスタ１６２−ｋの値を後段に出力し、輝度値L(nl)(p)をレジスタ１６２−１乃至レジスタ１６２−ｋのそれぞれに記録させる。また、比較部１６１−１乃至比較部１６１−ｋのそれぞれは、輝度値L(nl)(p)がレジスタ１６２−１乃至レジスタ１６２−ｋのそれぞれの値以上である場合、輝度値L(nl)(p)をそのまま後段に出力する。
【００８１】
これにより、供給された輝度値L(nl)(p)のうち、最小値からｋ番目に小さい値までが、レジスタ１６２−１乃至レジスタ１６２−ｋに昇順に記録される。ソーティング部１５３は、１フレーム分の輝度画像の輝度値L(nl)(p)のソート後に、レジスタ１６２−ｋに記録されている値を、暗輝度側の裾野値Ldark(nl)として、輝度域情報メモリ１１２に供給する。
【００８２】
なお、以下、比較部１６１−１乃至比較部１６１−ｋのそれぞれを個々に区別する必要のない場合、単に比較部１６１と称する。また、以下、レジスタ１６２−１乃至レジスタ１６２−ｋのそれぞれを個々に区別する必要のない場合、単にレジスタ１６２と称する。
【００８３】
ソーティング部１５４は、比較部１７１−１乃至比較部１７１−ｋ、および各比較部に対応するレジスタ１７２−１乃至レジスタ１７２−ｋから構成される。比較部１７１−１乃至比較部１７１−ｋは、飽和画素除外部１５２および比較部１７１−１乃至比較部１７１−（ｋ−１）から供給された輝度値L(nl)(p)と、レジスタ１７２−１乃至レジスタ１７２−ｋの値とを比較する。
【００８４】
そして、比較部１７１−１乃至比較部１７１−ｋのそれぞれは、輝度値L(nl)(p)がレジスタ１７２−１乃至レジスタ１７２−ｋのそれぞれの値より大きい場合、レジスタ１７２−１乃至レジスタ１７２−ｋの値を後段に出力し、輝度値L(nl)(p)をレジスタ１７２−１乃至レジスタ１７２−ｋのそれぞれに記録させる。また、比較部１７１−１乃至比較部１７１−ｋのそれぞれは、輝度値L(nl)(p)がレジスタ１７２−１乃至レジスタ１７２−ｋのそれぞれの値以下である場合、輝度値L(nl)(p)をそのまま後段に出力する。
【００８５】
これにより、供給された輝度値L(nl)(p)のうち、最大値からｋ番目に大きい値までが、レジスタ１７２−１乃至レジスタ１７２−ｋに降順に記録される。ソーティング部１５４は、１フレーム分の輝度画像の輝度値L(nl)(p)のソート後に、レジスタ１７２−ｋに記録されている値を、明輝度側の裾野値Lbright(nl)として、輝度域情報メモリ１１２に供給する。
【００８６】
なお、以下、比較部１７１−１乃至比較部１７１−ｋのそれぞれを個々に区別する必要のない場合、単に比較部１７１と称する。また、以下、レジスタ１７２−１乃至レジスタ１７２−ｋのそれぞれを個々に区別する必要のない場合、単にレジスタ１７２と称する。
【００８７】
ここで、比較部１６１およびレジスタ１６２と、比較部１７１およびレジスタ１７２の数は、輝度値のヒストグラムの面積比何パーセントに相当する輝度値を裾野値として算出するかによって定まる。
【００８８】
例えば、暗輝度側および明輝度側のそれぞれにおいて、０．５％に相当する輝度値を裾野値として算出したい場合、ソーティング部１５３およびソーティング部１５４への輝度値の最大入力数が１２００に制限されるように間引き部１５１の動作が制御される。そして、ソーティング部１５３に設けられる比較部１６１とレジスタ１６２のセットの数、およびソーティング部１５４に設けられる比較部１７１とレジスタ１７２のセットの数は、それぞれ６とされる。
【００８９】
すると、全画素の輝度値の入力が終了した時点で、レジスタ１６２−ｋおよびレジスタ１７２−ｋ（ｋ＝６）には、面積比０．５％相当の輝度値が記録されているので、それらの輝度値が暗輝度側の裾野値および明輝度側の裾野値として出力される。
【００９０】
図７は、図５のブロックヒストグラム算出部１１３の機能の構成例を示す図である。ブロックヒストグラム算出部１１３は、ブロック選択部２０１およびカウンタ２０２−１乃至カウンタ２０２−Ｎから構成される。
【００９１】
ブロック選択部２０１は、非線形変換部８２から供給された処理対象画素の輝度値L(nl)(p)と、処理対象画素の位置ｐとから、処理対象画素の属す輝度ブロックを特定し、各輝度ブロックに対応するカウンタ２０２−１乃至カウンタ２０２−Ｎのうち、特定された輝度ブロックに対応するカウンタの値を１だけ増加させる。
【００９２】
ここで、輝度画像が幅方向にＷ個、高さ方向にＨ個の空間ブロックに分割され、さらに各空間ブロックがＤ個の輝度ブロックに分割されて、輝度画像が合計Ｎ（＝Ｗ×Ｈ×Ｄ）個の輝度ブロックに分割されるとする。この場合、ブロックヒストグラム算出部１１３には、それらのＮ個の輝度ブロックのそれぞれに対応するＮ個のカウンタ２０２−１乃至カウンタ２０２−Ｎが設けられる。そして、ブロック選択部２０１は、輝度ブロックが特定されると、その輝度ブロックに対応するカウンタの値をインクリメントさせる。
【００９３】
カウンタ２０２−１乃至カウンタ２０２−Ｎのそれぞれは、対応する輝度ブロックにおける画素の頻度値、つまり輝度ブロックに属する画素の数を示す値を保持し、ブロック選択部２０１の指示に応じて保持している値をインクリメントする。また、カウンタ２０２−１乃至カウンタ２０２−Ｎのそれぞれは、１フレーム分の輝度画像の画素のカウントが終了すると、保持している値をブロックヒストグラムとして、ブロックヒストグラムメモリ１１４に供給する。なお、以下、カウンタ２０２−１乃至カウンタ２０２−Ｎのそれぞれを、個々に区別する必要のない場合、単にカウンタ２０２と称する。
【００９４】
図８は、図５のブロック積分値算出部１１５の機能の構成例を示す図である。ブロック積分値算出部１１５は、ブロック選択部２３１および積分器２３２−１乃至積分器２３２−Ｎから構成される。
【００９５】
ブロック選択部２３１は、非線形変換部８２から供給された処理対象画素の輝度値L(nl)(p)と、処理対象画素の位置ｐとから、処理対象画素の属する輝度ブロックを特定し、各輝度ブロックに対応する積分器２３２−１乃至積分器２３２−Ｎのうち、特定された輝度ブロックに対応する積分器に輝度値L(nl)(p)を供給する。
【００９６】
積分器２３２−１乃至積分器２３２−Ｎのそれぞれは、ブロック選択部２３１から供給された輝度値L(nl)(p)を積分して、対応する輝度ブロックのブロック積分値を求める。また、積分器２３２−１乃至積分器２３２−Ｎのそれぞれは、１フレーム分の輝度画像の画素の画素値の和が求められ、ブロック積分値が求まると、ブロック積分値をブロック積分値メモリ１１６に供給する。
【００９７】
積分器２３２−１乃至積分器２３２−Ｎのそれぞれには、加算部２４１−１乃至加算部２４１−Ｎのそれぞれと、レジスタ２４２−１乃至レジスタ２４２−Ｎのそれぞれとが設けられている。加算部２４１−１乃至加算部２４１−Ｎのそれぞれは、ブロック選択部２３１から供給された輝度値L(nl)(p)を、レジスタ２４２−１乃至レジスタ２４２−Ｎのそれぞれに記録されている値に加算して、レジスタ２４２−１乃至レジスタ２４２−Ｎのそれぞれに記録させる。すなわち、レジスタ２４２−１乃至レジスタ２４２−Ｎのそれぞれには、供給された輝度値L(nl)(p)の総和が記録される。
【００９８】
レジスタ２４２−１乃至レジスタ２４２−Ｎのそれぞれは、加算部２４１−１乃至加算部２４１−Ｎのそれぞれから供給された値を記録するとともに、記録している値を加算部２４１−１乃至加算部２４１−Ｎのそれぞれと、ブロック積分値メモリ１１６とに供給する。
【００９９】
なお、以下、積分器２３２−１乃至積分器２３２−Ｎのそれぞれを、個々に区別する必要のない場合、単に積分器２３２と称する。また、以下、加算部２４１−１乃至加算部２４１−Ｎのそれぞれを個々に区別する必要のない場合、単に加算部２４１と称し、レジスタ２４２−１乃至レジスタ２４２−Ｎのそれぞれを個々に区別する必要のない場合、単にレジスタ２４２と称する。
【０１００】
図９は、図５の加重積和部１１７の機能の構成例を示す図である。加重積和部１１７は、補間部２７１、補間部２７２、空間重み関数保持部２７３、積和部２７４、積和部２７５、輝度重み関数保持部２７６、および除算部２７７から構成される。
【０１０１】
補間部２７１は、輝度画像上における非線形変換部８２から供給された輝度値L(nl)(p)の画素、つまり処理対象画素の位置に対する、輝度ブロックの輝度範囲の中央値ごとの補間されたブロック積分値を求めて輝度積分値とし、積和部２７４に供給する。すなわち、輝度ブロック内の画素の取り得る輝度値の範囲の中央値をλとすると、補間部２７１は、処理対象画素の空間方向近傍の４×４個の空間ブロックから分割された各輝度ブロックのうち、中央値がλである１６個の輝度ブロックのブロック積分値のそれぞれに対して補間係数を乗算し、補間係数が乗算されたブロック積分値の和を求めることで、中央値λに対する輝度積分値を求める。
【０１０２】
換言すれば、補間部２７１は、処理対象画素近傍の輝度ブロックのブロック積分値を用いた補間処理を行うことにより、各中央値λに対する輝度積分値を求める。これにより、中央値λごとのＤ個の輝度積分値が求められることになる。ここで、各ブロック積分値に乗算される補間係数は、処理対象画素の位置と、その処理対象画素近傍の空間ブロックとの相対位置関係に基づいて、空間重み関数保持部２７３に保持されている空間重み関数ルックアップテーブルから読み出される。
【０１０３】
補間部２７２は、輝度画像上における非線形変換部８２から供給された輝度値L(nl)(p)の画素、つまり処理対象画素の位置に対する、輝度ブロックの輝度範囲の中央値ごとの補間されたブロックヒストグラムを求めて輝度ヒストグラムとし、積和部２７５に供給する。すなわち、補間部２７２は、処理対象画素の空間方向近傍の４×４個の空間ブロックから分割された各輝度ブロックのうち、中央値がλである１６個の輝度ブロックのブロックヒストグラムのそれぞれに対して補間係数を乗算し、補間係数が乗算されたブロックヒストグラムの和を求めることで、中央値λに対する輝度ヒストグラムを求める。
【０１０４】
換言すれば、補間部２７２は、処理対象画素近傍の輝度ブロックのブロックヒストグラムを用いた補間処理を行うことにより、各中央値λに対する輝度ヒストグラムを求める。これにより、中央値λごとのＤ個の輝度ヒストグラムが求められることになる。ここで、各ブロックヒストグラムに乗算される補間係数は、処理対象画素の位置と、その処理対象画素近傍の空間ブロックとの相対位置関係に基づいて、空間重み関数保持部２７３に保持されている空間重み関数ルックアップテーブルから読み出される。
【０１０５】
積和部２７４は、補間部２７１から供給されたＤ個の輝度積分値に対して、輝度加重値を積和する計算を行い、積和された輝度積分値を除算部２７７に供給する。すなわち、輝度加重値の乗算された輝度積分値の和が求められる。ここで、輝度積分値に乗算される輝度加重値は、非線形変換部８２から積和部２７４に供給された輝度値L(nl)(p)と、中央値λとに基づいて、輝度重み関数保持部２７６に保持されている輝度重み関数ルックアップテーブルの輝度重み関数から算出される。
【０１０６】
積和部２７５は、補間部２７２から供給されたＤ個の輝度ヒストグラムに対して、輝度加重値を積和する計算を行い、積和された輝度ヒストグラムを除算部２７７に供給する。すなわち、輝度加重値の乗算された輝度ヒストグラムの和が求められる。ここで、輝度ヒストグラムに乗算される輝度加重値は、非線形変換部８２から積和部２７５に供給された輝度値L(nl)(p)と、中央値λとに基づいて、輝度重み関数保持部２７６に保持されている輝度重み関数ルックアップテーブルの輝度重み関数から算出される。
【０１０７】
除算部２７７は、積和部２７４からの輝度積和値を、積和部２７５からの輝度ヒストグラムで除算することにより、処理対象画素の大局輝度値Ll(nl)(p)を算出してトーンカーブ算出部１１８およびマッピング部１２０に供給する。
【０１０８】
図１０は、図５のコントラスト補正部１２２の機能の構成例を示す図である。コントラスト補正部１２２は、ゲイン値算出部３０１およびコントラスト強調部３０２から構成される。
【０１０９】
ゲイン値算出部３０１は、トーンカーブメモリ１１９に記録されているトーンカーブから、トーンカーブの傾きの代表値であるγ-compパラメータを算出する。また、ゲイン値算出部３０１は、マッピング部１２１からの輝度値Lc(nl)(p)およびγ-compパラメータに基づいて、輝度値Lc(nl)(p)をコントラスト補正するときに用いるゲイン値g(p)を算出し、コントラスト強調部３０２に供給する。
【０１１０】
コントラスト強調部３０２は、ゲイン値算出部３０１からのゲイン値g(p)と、マッピング部１２０からの大局輝度値Lcl(nl)(p)とを用いて、マッピング部１２１からの輝度値Lc(nl)(p)からなる輝度画像のコントラストを強調するようにコントラストを補正する。コントラスト強調部３０２は、コントラストを補正することにより得られた輝度値Lu(nl)(p)を階調補正部８５−１乃至階調補正部８５−３に供給する。
【０１１１】
次に、図１１のフローチャートを参照して、ＤＳＰ１６により実行される画像処理について説明する。なお、この処理は、例えば、図１のデジタルビデオカメラによる撮影が開始され、Ａ／Ｄコンバータ１５からＤＳＰ１６への画像データ（モザイク画像）のストリームの供給が開始されたときに開始される。また、ＤＳＰ１６に供給された画像データは、逐次ＤＳＰ１６の図示せぬ内部のメモリに格納される。
【０１１２】
ステップＳ１１において、ホワイトバランス処理部５１は、モザイク画像を読み込む。具体的には、ホワイトバランス処理部５１は、ＤＳＰ１６の図示せぬ内部のメモリに格納されている先頭のフレームのモザイク画像を読み込む。
【０１１３】
ステップＳ１２において、ホワイトバランス処理部５１は、取得したモザイク画像のホワイトバランスを調整し、デモザイク処理部５２に供給する。
【０１１４】
ステップＳ１３において、デモザイク処理部５２は、デモザイク処理を行う。すなわち、デモザイク処理部５２は、ホワイトバランス処理部５１からのモザイク画像にデモザイク処理を施してＲＧＢ画像を生成し、階調補正処理部５３に供給する。
【０１１５】
ステップＳ１４において、階調補正処理部５３は、階調補正処理を行い、デモザイク処理部５２からのＲＧＢ画像の階調を補正する。そして、階調補正処理部５３は、階調の補正されたＲＧＢ画像をガンマ補正処理部５４に供給する。なお、階調補正処理の詳細は後述する。
【０１１６】
ステップＳ１５において、ガンマ補正処理部５４は、階調補正処理部５３からのＲＧＢ画像にガンマ補正を施してＹＣ変換処理部５５に供給する。
【０１１７】
ステップＳ１６において、ＹＣ変換処理部５５は、ＹＣ変換処理を行う。例えば、ＹＣ変換処理部５５は、ガンマ補正処理部５４からのＲＧＢ画像に対してＹＣマトリックス処理およびクロマ成分に対する帯域制限を行うことにより、ＲＧＢ画像からＹ画像およびＣ画像を生成する。そして、ステップＳ１７において、ＹＣ変換処理部５５は、Ｙ画像およびＣ画像を出力する。例えば、ＹＣ変換処理部５５は、必要に応じてＹ画像およびＣ画像をＬＣＤドライバ１８またはCODEC２０に出力する。
【０１１８】
ステップＳ１８において、ホワイトバランス処理部５１は、後続するフレームが存在するか否かを判定する。例えば、ＤＳＰ１６の図示せぬ内部のメモリに後続するフレームのモザイク画像が蓄積されている場合、後続フレームが存在すると判定される。
【０１１９】
ステップＳ１８において、後続するフレームが存在すると判定された場合、処理はステップＳ１１に戻り、処理対象となる次のフレームのモザイク画像が読み込まれる。これに対して、ステップＳ１８において、後続するフレームが存在しないと判定された場合、画像処理は終了する。
【０１２０】
次に、図１２および図１３のフローチャートを参照して、図１１のステップＳ１４の処理に対応する階調補正処理について説明する。
【０１２１】
ステップＳ４１において、加重積和部１１７およびトーンカーブ算出部１１８は、中間データを読み込む。すなわち、加重積和部１１７の補間部２７１は、ブロック積分値メモリ１１６から中間データとしてのブロック積分値を読み込み、加重積和部１１７の補間部２７２は、ブロックヒストグラムメモリ１１４から中間データとしてのブロックヒストグラムを読み込む。また、トーンカーブ算出部１１８は、輝度域情報メモリ１１２から中間データとしての輝度域情報を読み込む。
【０１２２】
ステップＳ４２において、輝度域情報算出部１１１の飽和画素除外部１５２は、ＤＳＰ１６の図示せぬ内部のメモリからnoise Level(nl)およびsaturation Level(nl)を読み込む。
【０１２３】
ステップＳ４３において、階調補正処理部５３は、デモザイク処理部５２から、ＲＧＢ画像の処理対象画素の画素値を読み込む。すなわち、非線形変換部８４−１乃至非線形変換部８４−３は、処理対象画素のＲ成分の画素値R w(p)、Ｇ成分の画素値G w(p)、およびＢ成分の画素値B w(p)を読み込み、輝度算出部８１は、処理対象画素のＲ、Ｇ、およびＢの成分の画素値を読み込む。
【０１２４】
ステップＳ４４において、輝度算出部８１は、読み込んだ画素値に基づいて、処理対象画素の輝度値L(p)を算出し、非線形変換部８２に供給する。例えば、輝度算出部８１は、読み込んだＲ、Ｇ、およびＢの成分の画素値に所定の係数を乗算して線形和を求めて輝度値としたり、Ｒ、Ｇ、およびＢの成分の画素値のうちの最大値を輝度値としたりする。
【０１２５】
ステップＳ４５において、非線形変換部８２は、輝度算出部８１からの輝度値L(p)を非線形変換し、変換により得られた輝度値L(nl)(p)を、輝度階調補正部８３および階調補正部８５に供給する。例えば、非線形変換部８２は、１より小さい指数によるべき乗特性や対数特性など、上に凸の単調増加特性を有する関数を用いて輝度値L(p)を非線形変換する。
【０１２６】
ステップＳ４６において、輝度階調補正部８３および階調補正部８５は、非線形変換部８２から、処理対象画素の輝度値L(nl)(p)を読み込む。
【０１２７】
ステップＳ４７において、輝度階調補正部８３の輝度域情報算出部１１１は、輝度域情報算出のための画素処理を行う。なお、輝度域情報算出のための画素処理の詳細は後述するが、輝度域情報算出のための画素処理において、これまでに供給された輝度画像の画素の輝度値と、非線形変換部８２から読み込んだ輝度値L(nl)(p)とが比較され、ソーティングが行われる。
【０１２８】
ステップＳ４８において、ブロックヒストグラム算出部１１３は、ブロックヒストグラム算出のための画素処理を行う。なお、ブロックヒストグラム算出のための画素処理の詳細は後述するが、ブロックヒストグラム算出のための画素処理において、非線形変換部８２から読み込んだ輝度値L(nl)(p)と処理対象画素の位置とに基づいて、処理対象画素が輝度ブロックに分類される。そして、輝度ブロックに対応するブロックヒストグラム算出部１１３のカウンタ２０２の値がインクリメントされる。
【０１２９】
ステップＳ４９において、ブロック積分値算出部１１５は、ブロック積分値算出のための画素処理を行う。なお、ブロック積分値算出のための画素処理の詳細は後述するが、このブロック積分値算出のための画素処理において、非線形変換部８２から読み込んだ輝度値L(nl)(p)と処理対象画素の位置とに基づいて、処理対象画素が輝度ブロックに分類され、輝度ブロックに対応するブロック積分値に輝度値L(nl)(p)が加算される。
【０１３０】
ステップＳ５０において、加重積和部１１７は、大局輝度値算出処理を行って、処理対象画素の大局輝度値Ll(nl)(p)を算出し、トーンカーブ算出部１１８およびマッピング部１２０に供給する。なお、大局輝度値算出処理の詳細は後述する。
【０１３１】
ステップＳ５１において、トーンカーブ算出部１１８は、輝度域情報メモリ１１２から読み出した輝度域情報と、加重積和部１１７からの大局輝度値Ll(nl)(p)とから、トーンカーブを求める。
【０１３２】
例えば、トーンカーブ算出部１１８は、図１４に示すトーンカーブのコントロールポイントを設定する。なお、図１４のグラフの横軸方向は、階調補正する前の入力輝度の対数値を表し、縦軸方向は、トーンカーブＣＬによる階調補正後の出力輝度の対数値を表している。
【０１３３】
まず、トーンカーブ算出部１１８は、９つのコントロールポイントＰ１乃至コントロールポイントＰ９を設定する。コントロールポイントＰ１は、入力輝度が所定の最小レベルとなり、出力輝度が所定の最小レベルLbase(nl)となるポイントに設定される。コントロールポイントＰ２は、入力輝度がノイズレベルであると見なすことができる輝度である所定のノイズレベルLnoise(nl)となり、出力輝度が最小レベルLbase(nl)となるポイントに設定される。コントロールポイントＰ３は、入力輝度がノイズレベルLnoise(nl)の２倍の輝度値となり、出力輝度が最小レベルLbase(nl)となるポイントに設定される。
【０１３４】
コントロールポイントＰ４は、入力輝度が、輝度域情報メモリ１１２からの輝度域情報としての暗輝度側の裾野値Ldark(nl)となり、出力輝度がほぼ黒レベルの輝度値である輝度値Lankle(nl)となるポイントに設定される。コントロールポイントＰ５は、入力輝度が裾野値Ldark(nl)の２倍の輝度値となり、出力輝度が輝度値Lankle(nl)の２倍の輝度値となるポイントに設定される。コントロールポイントＰ６は、入力輝度が加重積和部１１７からの大局輝度値Ll(nl)(p)となり、出力輝度が出力輝度の輝度範囲における所定のほぼ中間の中間輝度レベルLmid(nl)となるポイントに設定される。すなわち、大局輝度値がトーンカーブにより階調補正された場合に、大局輝度値が、トーンカーブによる階調補正後の輝度値の取り得る範囲のほぼ中間の値に変換されるように、コントロールポイントＰ６が設定される。
【０１３５】
コントロールポイントＰ７は、入力輝度が明輝度側の裾野値Lbright(nl)の２分の１の輝度値となり、出力輝度がほぼ白レベルの輝度値である輝度値Lshoulder(nl)の２分の１の輝度値となるポイントに設定される。コントロールポイントＰ８は、入力輝度が、輝度域情報メモリ１１２からの輝度域情報としての裾野値Lbright(nl)となり、出力輝度が輝度値Lshoulder(nl)となるポイントに設定される。コントロールポイントＰ９は、入力輝度が所定の入力輝度の最大値となり、出力輝度が所定の出力輝度の最大値となるポイントに設定される。
【０１３６】
また、図１４において、コントロールポイントＰ５と、コントロールポイントＰ７とを結ぶ線分ＡＬの傾きは、トーンカーブＣＬの傾きを代表するγ-compパラメータを示している。
【０１３７】
処理対象画素ごとのトーンカーブＣＬの形状は、例えば、コントロールポイントＰ１乃至コントロールポイントＰ９に基づいて、各入力輝度値に対する出力輝度値（トーンカーブ値）をB-Spline補間処理により求めることにより定められる。
【０１３８】
なお、トーンカーブＣＬの形状は、どのような形式でトーンカーブメモリ１１９に保持されてもよい。但し、トーンカーブＣＬの形状は画素ごとに更新されるため、データ量が小さい形式で保持されることが望ましい。例えばトーンカーブの形状を数個乃至１０数個程度のコントロールポイントにより表現し、マッピング部１２０およびマッピング部１２１がそれらのコントロールポイントから、トーンカーブＣＬを算出することが妥当である。
【０１３９】
トーンカーブ算出部１１８は、設定したコントロールポイントＰ１乃至コントロールポイントＰ９の入力輝度および出力輝度のセットをトーンカーブメモリ１１９に記録させる。したがって、実際には、１フレーム分の輝度画像を処理する期間では、コントロールポイントＰ６の入力輝度だけが処理対象画素が変化するたびに更新されることになる。
【０１４０】
なお、コントロールポイントＰ３が補助点として設定されることにより、トーンカーブＣＬが確実にコントロールポイントＰ２またはその近傍を通過するようになる。すなわち、入力輝度がほぼノイズレベルLnoise(nl)である場合、出力輝度の最小レベルLbase(nl)にほぼ等しい値に階調変換されるようになる。また、コントロールポイントＰ５が補助点として設定されることにより、入力輝度がほぼ裾野値Ldark(nl)となり、出力輝度がほぼ黒レベルとなる輝度値Lankle(nl)となる付近（コントロールポイントP４付近）のトーンカーブＣＬの傾きが極端に急峻になったり緩やかになったりすることが防止される。また、コントロールポイントＰ７が補助点として設定されることにより、入力輝度がほぼ裾野値Lbright(nl)となり、出力輝度がほぼ白レベルとなる輝度値Lshoulder(nl)付近（コントロールポイントＰ８付近）のトーンカーブＣＬの傾きが極端に急峻になったり緩やかになったりすることが防止される。
【０１４１】
したがって、トーンカーブＣＬは、コントロールポイントＰ６付近で傾きが緩やかになり、コントロールポイントＰ４およびＰ８付近で傾きがほぼ１に近くなる逆Ｓ字状の単調増加する曲線となる。つまり、トーンカーブＣＬは、大局輝度値Ll(nl)(p)が高い場合には、輝度値の高い画素の明るさを抑えるものとなり、大局輝度値Ll(nl)(p)が低い場合には、輝度値の低い画素の明るさを明るくするものとなる。これにより、トーンカーブＣＬによる階調圧縮およびコントラスト補正を組み合わせることにより、画像のディテールをほぼ保持したまま、白ツブレをほとんど発生させることなく、画像上の暗い部分が明るくなるように画像の階調の圧縮を行うことができる。
【０１４２】
図１２のフローチャートの説明に戻り、ステップＳ５１において、トーンカーブの形状が求められ、トーンカーブの形状、より詳細にはコントロールポイントの入力輝度および出力輝度のセットがトーンカーブメモリ１１９に記録されると、処理はステップＳ５２に進む。
【０１４３】
ステップＳ５２において、マッピング部１２０は、加重積和部１１７から供給された大局輝度値Ll(nl)(p)を、トーンカーブメモリ１１９に記録されているトーンカーブに基づいて補正し、コントラスト補正部１２２に供給する。すなわち、マッピング部１２０は、トーンカーブメモリ１１９に記録されているコントロールポイントを用いて、B-Spline補間処理によりトーンカーブを求め、求めたトーンカーブを用いて大局輝度値Ll(nl)(p)を大局輝度値Lcl(nl)(p)に変換することにより、大局輝度値Ll(nl)(p)の階調を補正する。
【０１４４】
ステップＳ５３において、マッピング部１２１は、読み込んだ処理対象画素の輝度値L(nl)(p)を、トーンカーブメモリ１１９に記録されているトーンカーブに基づいて補正し、コントラスト補正部１２２に供給する。すなわち、マッピング部１２１は、トーンカーブメモリ１１９に記録されているコントロールポイントを用いて、B-Spline補間処理によりトーンカーブを求め、求めたトーンカーブを用いて輝度値L(nl)(p)を輝度値Lc(nl)(p)に変換することにより、輝度値L(nl)(p)の階調を補正する。
【０１４５】
ステップＳ５４において、コントラスト補正部１２２は、コントラスト補正処理を行い、トーンカーブにより階調が補正され、コントラストが劣化した輝度値Lc(nl)(p)からなる輝度画像を元の画像と同程度のコントラストに補償する。コントラスト補正部１２２は、コントラスト補正された輝度値Lu(nl)(p)を階調補正部８５に供給する。なお、コントラスト補正処理の詳細は後述する。
【０１４６】
ステップＳ５５において、非線形変換部８４は、読み込んだ処理対象画素の画素値を非線形変換し、階調補正部８５に供給する。すなわち、非線形変換部８４−１乃至非線形変換部８４−３は、ＲＧＢ画像の画素値Rw(p)、Gw(p)、およびBw(p)のそれぞれに対して、ステップＳ４５の処理においてなされる非線形変換と同じ非線形変換を行う。
【０１４７】
ステップＳ５６において、階調補正部８５−１乃至階調補正部８５−３は、非線形変換部８２からの輝度値L(nl)(p)と、輝度階調補正部８３からの輝度値Lu(nl)(p)とを用いて、非線形変換部８４からの画素値を階調補正する。そして、階調補正部８５は、階調補正された画素値を、非線形逆変換部８６に供給する。
【０１４８】
例えば、階調補正部８５は、輝度値L(nl)(p)と、階調補正された輝度値Lu(nl)(p)との比を各色の成分の画素値に乗算する。より具体的には、例えば、階調補正部８５−１は、次式（２）を計算することにより、階調補正された画素値R u(nl)(p)を求める。
【０１４９】
【数２】
0004998287.tif 000003
【０１５０】
式（２）では、階調補正前後の輝度値の比率、つまり階調補正された輝度値Lu(nl)(p)を階調補正前の輝度値L(nl)(p)で除算した値が、非線形変換された画素値R(nl)(p)に対して乗算されている。階調補正部８５−２および階調補正部８５−３においても、上述した式（２）と同様の計算が行われ、画素値が階調補正される。
【０１５１】
なお、非線形変換部８２および非線形変換部８４において行われる非線形変換が、対数変換である場合には、式（３）に示す計算を行うことにより、画素値が階調補正されてもよい。
【０１５２】
【数３】
0004998287.tif 000004
【０１５３】
式（３）では、階調補正された輝度値Lu(nl)(p)と、階調補正前の輝度値L(nl)(p)との差分値が、画素値R(nl)(p)に加算されて、階調補正された画素値R u(nl)(p)とされている。
【０１５４】
ステップＳ５７において、非線形逆変換部８６−１乃至非線形逆変換部８６−３は、階調補正部８５からの画素値に、非線形変換部８４による非線形変換の逆変換となる非線形逆変換を施す。そして、ステップＳ５８において、非線形逆変換部８６−１乃至非線形逆変換部８６−３は、非線形逆変換により得られた画素値Ru(p)、Gu(p)、およびBu(p)を、ガンマ補正処理部５４に出力する。
【０１５５】
ステップＳ５９において、階調補正処理部５３は、処理対象となっているフレームのＲＧＢ画像上の全ての画素を処理したか否かを判定する。ステップＳ５９において、まだ全ての画素を処理していない、つまり全ての画素が処理対象画素とされていないと判定された場合、処理はステップＳ４３に戻り、上述した処理が繰り返される。
【０１５６】
これに対して、ステップＳ５９において、全ての画素が処理されたと判定された場合、ステップＳ６０において、輝度域情報算出部１１１（図５）は、輝度域情報を求める。すなわち、輝度域情報算出部１１１のソーティング部１５３は、レジスタ１６２−ｋに記録されている値を、輝度域情報である暗輝度側の裾野値Ldark(nl)として、輝度域情報メモリ１１２に供給して記録させる。また、ソーティング部１５４は、レジスタ１７２−ｋに記録されている値を、輝度域情報である明輝度側の裾野値Lbright(nl)として、輝度域情報メモリ１１２に供給して記録させる。
【０１５７】
ステップＳ６１において、ブロックヒストグラム算出部１１３は、ブロックヒストグラムを求める。すなわち、ブロックヒストグラム算出部１１３は、カウンタ２０２−１乃至カウンタ２０２−Ｎのそれぞれに保持されている値を、各輝度ブロックのブロックヒストグラムとしてブロックヒストグラムメモリ１１４に供給させ、記録させる。
【０１５８】
ステップＳ６２において、ブロック積分値算出部１１５は、ブロック積分値を求め、階調補正処理は終了し、処理は図１１のステップＳ１５に進む。すなわち、ブロック積分値算出部１１５は、レジスタ２４２−１乃至レジスタ２４２−Ｎのそれぞれに記録されている輝度値L(nl)(p)の総和を、ブロック積分値としてブロック積分値メモリ１１６に供給させ、記録させる。
【０１５９】
このように、階調補正処理においては、１フレーム分の輝度画像に基づいて、中間データが求められる。そして、中間データが求められると、中間データとしての輝度域情報、ブロックヒストグラム、およびブロック積分値が輝度域情報メモリ１１２、ブロックヒストグラムメモリ１１４、およびブロック積分値メモリ１１６に格納される。輝度階調補正部８３では、現在処理しているフレームよりも時間的に１つ前のフレームから求められた中間データが用いられて処理対象画素の大局輝度値やトーンカーブが算出されるため（エッジ保存平滑化処理が行われるため）、処理対象の画像が動画像であっても、画像の全画素を２回スキャンすることなく、少ないワーキングメモリで、大きいオペレータサイズのエッジ保存平滑化処理を行うことができる。
【０１６０】
次に、図１５乃至図１７のフローチャートを参照して、図１２のステップＳ４７乃至ステップＳ４９の処理に対応する処理を説明する。
【０１６１】
まず、図１５のフローチャートを参照して、図１２のステップＳ４７の処理に対応する輝度域情報算出のための画素処理について説明する。
【０１６２】
ステップＳ９１において、輝度域情報算出部１１１の間引き部１５１は、非線形変換部８２から処理対象画素の輝度値L(nl)(p)を読み込む。
【０１６３】
ステップＳ９２において、間引き部１５１は、読み込んだ輝度値L(nl)(p)の処理対象画素の画素位置が、所定の間隔ごとに設けられているサンプリング位置に合致するか否かを判定する。ステップＳ９２において、サンプリング位置に合致しないと判定された場合、読み込まれた輝度値L(nl)(p)は、飽和画素除外部１５２には出力されずに、処理は図１２のステップＳ４８に進む。
【０１６４】
一方、ステップＳ９２において、サンプリング位置に合致すると判定された場合、読み込まれた輝度値L(nl)(p)は、飽和画素除外部１５２に出力され、処理はステップＳ９３に進む。ステップＳ９３において、飽和画素除外部１５２は、間引き部１５１からの輝度値がnoise Level(nl)以上、かつsaturation Level(nl)以下であるか否かを判定する。
【０１６５】
ステップＳ９３において、noise Level(nl)以上、かつsaturation Level(nl)以下でないと判定された場合、輝度値L(nl)(p)は、飽和画素除外部１５２から出力されずに、処理は図１２のステップＳ４８に進む。
【０１６６】
これに対して、ステップＳ９３において、noise Level(nl)以上、かつsaturation Level(nl)以下であると判定された場合、つまり有効な輝度域内の輝度値であると判定された場合、飽和画素除外部１５２は、輝度値L(nl)(p)をソーティング部１５３およびソーティング部１５４に出力し、処理はステップＳ９４に進む。
【０１６７】
ステップＳ９４において、ソーティング部１５３は、暗輝度側ソーティングを行う。具体的には、ソーティング部１５３の比較部１６１−１は、レジスタ１６２−１が記録している値と、飽和画素除外部１５２からの輝度値L(nl)(p)とを比較して、輝度値L(nl)(p)がレジスタ１６２−１の値より小さい場合、レジスタ１６２−１に記録されていた値を後段の比較部１６１−２に出力し、輝度値L(nl)(p)をレジスタ１６２−１に記録させる。一方、輝度値L(nl)(p)がレジスタ１６２−１の値以上である場合、比較部１６１−１は、輝度値L(nl)(p)をそのまま後段の比較部１６１−２に出力する。後段の比較部１６１−２乃至比較部１６１−ｋも同様の処理を行う。その結果、最終的に、フレーム内のサンプリング位置の画素の輝度値L(nl)(p)のうち、最小の輝度値L(nl)(p)からｋ番目に小さい輝度値L(nl)(p)までが、レジスタ１６２−１乃至レジスタ１６２−ｋに昇順に記録される。
【０１６８】
ステップＳ９５において、ソーティング部１５４は、明輝度側ソーティングを行い、処理は、図１２のステップＳ４８に進む。具体的には、ソーティング部１５４の比較部１７１−１は、レジスタ１７２−１が記録している値と、飽和画素除外部１５２からの輝度値L(nl)(p)とを比較して、輝度値L(nl)(p)がレジスタ１７２−１の値より大きい場合、レジスタ１７２−１に記録されていた値を後段の比較部１７１−２に出力し、輝度値L(nl)(p)をレジスタ１７２−１に記録させる。一方、比較部１７１−１は、輝度値L(nl)(p)がレジスタ１７２−１の値以下である場合、輝度値L(nl)(p)をそのまま後段の比較部１７１−２に出力する。後段の比較部１７１−２乃至比較部１７１−ｋも同様の処理を行う。その結果、最終的に、フレーム内のサンプリング位置の画素の輝度値L(nl)(p)のうち、最大の輝度値L(nl)(p)からｋ番目に大きい輝度値L(nl)(p)までが、レジスタ１７２−１乃至レジスタ１７２−ｋに降順に記録される。
【０１６９】
このようにして、処理対象画素の輝度値が読み込まれるたびに暗輝度側ソーティングおよび明輝度側ソーティングを行うことで、輝度域情報としての裾野値が求められる。
【０１７０】
次に、図１６のフローチャートを参照して、図１２のステップＳ４８の処理に対応するブロックヒストグラム算出のための画素処理について説明する。
【０１７１】
ステップＳ１２１において、ブロックヒストグラム算出部１１３のブロック選択部２０１は、非線形変換部８２から処理対象画素の輝度値L(nl)(p)を読み込む。
【０１７２】
ステップＳ１２２において、ブロック選択部２０１は、読み込んだ輝度値L(nl)(p)と、その輝度値L(nl)(p)の処理対象画素の位置とから、処理対象画素の属す輝度ブロックを特定する。そして、ステップＳ１２３において、ブロック選択部２０１は、カウンタ２０２−１乃至カウンタ２０２−Ｎのうち、特定された輝度ブロックに対応するカウンタ２０２に、保持している値をインクリメントさせる。カウンタ２０２は、ブロック選択部２０１の指示に応じて、保持している値を１増加させ、処理は図１２のステップＳ４９に進む。
【０１７３】
このようにして、処理対象画素の輝度値が読み込まれるたびに、処理対象画素が何れかの輝度ブロックに分類され、分類された輝度ブロックに対応するカウンタ２０２の値が１ずつ増加されていく。これにより、各輝度ブロックに属す画素の数が求められて、それらの画素数が輝度ブロックごとのブロックヒストグラムとされる。
【０１７４】
次に、図１７のフローチャートを参照して、図１２のステップＳ４９の処理に対応するブロック積分値算出のための画素処理について説明する。
【０１７５】
ステップＳ１５１において、ブロック積分値算出部１１５のブロック選択部２３１は、非線形変換部８２から処理対象画素の輝度値L(nl)(p)を読み込む。
【０１７６】
ステップＳ１５２において、ブロック選択部２３１は、読み込んだ輝度値L(nl)(p)と、その輝度値L(nl)(p)の処理対象画素の位置とから、処理対象画素の属す輝度ブロックを特定する。そして、ステップＳ１５３において、ブロック選択部２３１は、積分器２３２−１乃至積分器２３２−Ｎのうち、特定された輝度ブロックに対応する積分器２３２に輝度値L(nl)(p)を供給して、記録されている輝度値の積分値に、さらに処理対象画素の輝度値L(nl)(p)を加算させる。
【０１７７】
ブロック選択部２３１から処理対象画素の輝度値L(nl)(p)が供給された積分器２３２の加算部２４１は、レジスタ２４２に記録されている積分値に、ブロック選択部２３１からの輝度値L(nl)(p)を加算して、レジスタ２４２に記録させる。そして、レジスタ２４２が記録している積分値を更新すると、処理は図１２のステップＳ５０に進む。
【０１７８】
このようにして、処理対象画素の輝度値が読み込まれるたびに、処理対象画素が何れかの輝度ブロックに分類され、分類された輝度ブロックに対応するレジスタ２４２の値に、さらに処理対象画素の輝度値が加算される。これにより、各輝度ブロックについて、輝度ブロックに属す画素の輝度値の総和が求められ、ブロック積分値とされる。
【０１７９】
次に、図１８のフローチャートを参照して、図１２のステップＳ５０の処理に対応する処理である大局輝度値算出処理について説明する。
【０１８０】
ステップＳ１８１において、加重積和部１１７の補間部２７１、補間部２７２、積和部２７４、および積和部２７５は、非線形変換部８２から処理対象画素の輝度値L(nl)(p)を読み込む。
【０１８１】
ステップＳ１８２において、補間部２７１は、読み込んだ輝度値L(nl)(p)の処理対象画素近傍の空間ブロックから得られる輝度ブロックのブロック積分値を用いた補間処理を行って、処理対象画素の位置の中央値λごとの輝度積分値を求める。
【０１８２】
すなわち、補間部２７１は、処理対象画素の空間方向近傍（処理対象画素が含まれる空間ブロックも含む）の４×４の合計１６個の空間ブロックのそれぞれを、空間ブロックＢＫi,j（但し、１≦ｉ≦４，１≦ｊ≦４）として、空間ブロックＢＫi,jごとの補間係数Ｂi,jを読み出す。例えば、空間重み関数保持部２７３には、３次B-spline関数の関数値のルックアップテーブルが保持されている。補間部２７１は、処理対象画素の位置と、空間ブロックＢＫi,jとの相対位置関係により定まる関数値を、空間重み関数保持部２７３のルックアップテーブルから読み出し、読み出した関数値を空間ブロックＢＫi,jの補間係数Ｂi,jとする。なお、補間部２７１が３次B-spline関数などから直接、演算により補間係数Ｂi,jを算出するようにしてもよい。
【０１８３】
次に、補間部２７１は、空間ブロックから得られるＤ個の輝度ブロックのそれぞれの輝度範囲の中央値をλ１乃至λＤとするとともに、空間ブロックＢＫi,jから得られるＤ個の輝度ブロックのうち、中央値がλｈ（但し、１≦ｈ≦Ｄ）である輝度ブロックを輝度ブロックＬＢＫi,j,hとする。そして、補間部２７１は、ブロック積分値メモリ１１６から、各輝度ブロックＬＢＫi,j,hのブロック積分値Ｓ（ｉ，ｊ,λｈ）を読み出す。なお、以下、中央値λ１乃至中央値λＤのそれぞれを特に区別する必要のない場合、単に中央値λとも称する。
【０１８４】
さらに、補間部２７１は、中央値λごとに、読み出した補間係数Ｂi,jと、ブロック積分値Ｓ（ｉ，ｊ,λ）との積の総和を計算し、その結果得られた値を、中央値λの輝度積分値Ｓinterpolated（λ）とする。すなわち、補間部２７１は、次式（４）を計算することにより、中央値λごとに輝度積分値Ｓinterpolated（λ）を求める。
【０１８５】
【数４】
0004998287.tif 000005
【０１８６】
ここで、式（４）において、Σは、変数ｉおよびｊを、それぞれ１から４まで変えて、補間係数Ｂi,jが乗算されたブロック積分値Ｓ（ｉ，ｊ,λ）の総和をとることを表している。したがって、輝度積分値Ｓinterpolated（λ）は、１６個の空間ブロックＢＫi,jのそれぞれから得られる輝度ブロックのうち、中央値がλである１６個の輝度ブロックのブロック積分値Ｓ（ｉ，ｊ,λ）のそれぞれに、それらの輝度ブロックが得られる空間ブロックＢＫi,jについての補間係数Ｂi,jのそれぞれを乗算し、さらに補間係数が乗算された１６個のブロック積分値Ｂi,j×Ｓ（ｉ，ｊ,λ）の和を求めることで算出される。
【０１８７】
これにより、Ｄ個の輝度積分値Ｓinterpolated（λ）が求められる。これらの輝度積分値は、輝度ブロックに対応する輝度（中央値λ）ごとの、処理対象画素の位置の補間されたブロック積分値である。補間部２７１は、輝度積分値を求めると、求めた輝度積分値を積和部２７４に供給する。
【０１８８】
ステップＳ１８３において、補間部２７２は、読み込んだ輝度値L(nl)(p)の処理対象画素近傍の空間ブロックから得られる輝度ブロックのブロックヒストグラムを用いた補間処理を行って、処理対象画素の中央値λごとの輝度ヒストグラムを求める。
【０１８９】
すなわち、補間部２７２は、ステップＳ１８２の処理と同様にして、処理対象画素の位置と、空間ブロックＢＫi,jとの相対位置関係により定まる関数値を、空間重み関数保持部２７３のルックアップテーブルから読み出し、読み出した関数値を空間ブロックＢＫi,jの補間係数Ｂi,jとする。
【０１９０】
そして、補間部２７２は、ブロックヒストグラムメモリ１１４から、各輝度ブロックＬＢＫi,j,hのブロックヒストグラムＨ（ｉ，ｊ,λ）を読み出す。さらに、補間部２７２は、中央値λごとに、読み出した補間係数Ｂi,jと、ブロックヒストグラムＨ（ｉ，ｊ,λ）との積の総和を計算し、その結果得られた値を、中央値λの輝度ヒストグラムＨinterpolated（λ）とする。すなわち、補間部２７２は、次式（５）を計算することにより、中央値λごとに輝度ヒストグラムＨinterpolated（λ）を求める。
【０１９１】
【数５】
0004998287.tif 000006
【０１９２】
ここで、式（５）の右辺は、式（４）の右辺のブロック積分値Ｓ（ｉ，ｊ,λ）がブロックヒストグラムＨ（ｉ，ｊ,λ）に置き換えられたものとなっている。
【０１９３】
これにより、Ｄ個の輝度ヒストグラムＨinterpolated（λ）が求められる。これらの輝度ヒストグラムは、輝度ブロックに対応する輝度（中央値λ）ごとの、処理対象画素の位置の補間されたブロックヒストグラムである。補間部２７２は、輝度ヒストグラムを求めると、求めた輝度ヒストグラムを積和部２７５に供給する。
【０１９４】
ステップＳ１８４において、積和部２７４は、補間部２７１から供給されたＤ個の輝度積分値を輝度加重値で積和し、積和された輝度積分値を除算部２７７に供給する。
【０１９５】
すなわち、積和部２７４は、輝度重み関数保持部２７６に保持されている輝度重み関数ルックアップテーブルから、輝度重み関数を読み出す。そして、積和部２７４は、読み出した輝度重み関数、非線形変換部８２から供給された輝度値L(nl)(p)、および中央値λを用いて、中央値λごとの輝度加重値φ（λ，L(nl)(p)）を求める。
【０１９６】
例えば、輝度重み関数保持部２７６に保持されている輝度重み関数ルックアップテーブルには、図１９に示す形状の輝度重み関数が保持されている。なお、図１９において、縦軸は輝度重み関数の値、すなわち輝度加重値φ（λ，L(nl)(p)）を示しており、横軸は中央値λを示している。
【０１９７】
図１９に示す輝度重み関数は、処理対象画素の位置に補間された輝度積分値（および輝度ヒストグラム）の輝度ブロックに相当する輝度レベル、すなわち中央値λと、処理対象画素の輝度値L(nl)(p)との差分値が小さいほど、より大きい値を持つ単峰性形状の関数とされる。
【０１９８】
このような単峰性形状の輝度重み関数が用いられる場合、例えば、積和部２７４は、輝度重み関数保持部２７６に保持された輝度重み関数ルックアップテーブルを参照する代わりに、次式（６）を計算することにより、中央値λごとに輝度加重値φ（λ，L(nl)(p)）を求めるようにしてもよい。
【０１９９】
【数６】
0004998287.tif 000007
【０２００】
ここで、式（６）において、σｔｈは、輝度重み関数の裾野の広がりの大きさを決める定数であり、予め定められている。積和部２７４は、式（６）の右辺に輝度値L(nl)(p)および中央値λを代入することで、各中央値λに対する輝度加重値φ（λ，L(nl)(p)）を求める。
【０２０１】
式（６）に示される輝度重み関数では、処理対象画素の輝度値L(nl)(p)に近い値の中央値λ（輝度ブロック）に対しては、大きな重み値がつけられ、輝度値L(nl)(p)から離れた中央値λ（輝度ブロック）に対しては小さな重み値がつけられる。
【０２０２】
積和部２７４は、中央値λごとに輝度加重値φ（λ，L(nl)(p)）を求めると、各中央値λについて、輝度積分値Ｓinterpolated（λ）に、その中央値λの輝度加重値φ（λ，L(nl)(p)）を乗算し、輝度加重値の乗算された輝度積分値の総和を求める。すなわち、各中央値λの輝度加重値での輝度積分値Ｓinterpolated（λ）の加重和が求められる。
【０２０３】
この加重和は、処理対象画素の位置と、輝度ブロックが得られる空間ブロックの位置との相対位置関係から定まる補間係数、および輝度ブロック（の中央値λ）と輝度値L(nl)(p)との輝度方向の距離により定まる輝度加重値が乗算された、処理対象画素の位置近傍の１６個の空間ブロックから得られる全ての輝度ブロックのブロック積分値の総和である。
【０２０４】
ステップＳ１８５において、積和部２７５は、補間部２７２から供給されたＤ個の輝度ヒストグラムを輝度加重値で積和し、積和された輝度ヒストグラムを除算部２７７に供給する。
【０２０５】
すなわち、積和部２７５は、輝度重み関数保持部２７６に保持されている輝度重み関数ルックアップテーブルから輝度重み関数を読み出し、読み出した輝度重み関数、非線形変換部８２から供給された輝度値L(nl)(p)、および中央値λを用いて、例えば、式（６）を計算することにより、中央値λごとの輝度加重値φ（λ，L(nl)(p)）を求める。
【０２０６】
さらに、積和部２７５は、輝度ヒストグラムＨinterpolated（λ）に、中央値λごとの輝度加重値φ（λ，L(nl)(p)）を乗算し、輝度加重値の乗算された輝度ヒストグラムの総和を求める。すなわち、各中央値λの輝度加重値での輝度ヒストグラムＨinterpolated（λ）の加重和が求められる。
【０２０７】
この加重和は、処理対象画素の位置と、輝度ブロックが得られる空間ブロックの位置との相対位置関係から定まる補間係数、および輝度ブロック（の中央値λ）と輝度値L(nl)(p)との輝度方向の距離により定まる輝度加重値が乗算された、処理対象画素の位置近傍の１６個の空間ブロックから得られる全ての輝度ブロックのブロックヒストグラムの総和である。
【０２０８】
ステップＳ１８６において、除算部２７７は、積和部２７４からの輝度積分値を、積和部２７５からの輝度ヒストグラムで除算し、大局輝度値Ll(nl)(p)を求める。すなわち、除算部２７７は、次式（７）を計算することで大局輝度値Ll(nl)(p)を算出する。
【０２０９】
【数７】
0004998287.tif 000008
【０２１０】
ここで、式（７）において、ΣＳinterpolated（λ）・φ（λ，L(nl)(p)）は、積和部２７４から供給される積和された輝度積分値を示しており、ΣＨinterpolated（λ）・φ（λ，L(nl)(p)）は、積和部２７５から供給される積和された輝度ヒストグラムを示している。
【０２１１】
したがって、ブロック積分値を補間係数および輝度加重値で重み付き加算して得られた加重和を、ブロックヒストグラムを補間係数および輝度加重値で重み付き加算して得られた加重和で除算することにより、ブロック積分値の加重平均の値が求まり、その値が大局輝度値Ll(nl)(p)とされる。
【０２１２】
ステップＳ１８７において、除算部２７７は、求めた大局輝度値Ll(nl)(p)を、トーンカーブ算出部１１８およびマッピング部１２０に出力する。大局輝度値が出力されると、大局輝度値算出処理は終了し、その後、処理は図１２のステップＳ５１に進む。
【０２１３】
このようにして、加重積和部１１７は、処理対象画素近傍の空間ブロックから得られる輝度ブロックのブロック積分値およびブロックヒストグラムから大局輝度値を求める。
【０２１４】
ブロック積分値は、空間ブロックごとに、近い輝度値を持った画素を同じ輝度ブロックに属す画素とし、輝度ブロックごとに画素の輝度値を積分して得られる値である。また、ブロックヒストグラムは、各輝度ブロックに属す画素数を示す頻度値である。したがって、処理対象画素の輝度値に近い輝度レベルの輝度ブロックに重みをおいて、輝度ブロックの特性を示す特性値、例えば輝度ブロックのブロック積分値の積和を行うことにより、処理対象画素近傍の空間ブロック内の画素のうち、輝度値が処理対象画素に近い画素の輝度値の積分結果を得ることになる。
【０２１５】
その結果、例えば、処理対象画素近傍の１６個の空間ブロックといった、広範囲な領域内の画素の輝度値を積分しても、処理対象画素とは異なる明るさである、処理対象画素の属す被写体（処理対象画素により表示される被写体）とは、別の被写体の画素による影響は少なく、処理対象画素が属す被写体の平均輝度値を示す大局輝度値を算出することができる。
【０２１６】
次に、図２０のフローチャートを参照して、図１２のステップＳ５４の処理に対応するコントラスト補正処理について説明する。
【０２１７】
ステップＳ２１１において、コントラスト補正部１２２は、処理対象画素の階調補正された輝度値および大局輝度値を読み込む。すなわち、コントラスト補正部１２２のゲイン値算出部３０１は、マッピング部１２１から、トーンカーブにより階調補正された輝度値Lc(nl)(p)を読み込む。また、コントラスト強調部３０２は、マッピング部１２１から輝度値Lc(nl)(p)を読み込むとともに、マッピング部１２０から、トーンカーブにより階調補正された大局輝度値Lcl(nl)(p)を読み込む。
【０２１８】
ステップＳ２１２において、ゲイン値算出部３０１はγ-compパラメータを求める。例えば、ゲイン値算出部３０１は、図１４のコントロールポイントＰ６付近におけるトーンカーブＣＬの傾きに近い値を得るために、トーンカーブメモリ１１９から、コントロールポイントＰ５およびコントロールポイントＰ７の入力輝度および出力輝度を読み出す。そして、ゲイン値算出部３０１は、読み出した入力輝度および出力輝度から、コントロールポイントＰ５およびコントロールポイントＰ７を結ぶ線分ＡＬの傾きを、γ-compパラメータとして求める。
【０２１９】
ステップＳ２１３において、ゲイン値算出部３０１は、読み込んだ輝度値Lc(nl)(p)と、求めたγ-compパラメータとからゲイン値g(p)を算出する。例えば、ゲイン値算出部３０１は、輝度値Lc(nl)(p)およびγ-compパラメータに基づいて、次式（８）および式（９）を計算することで、ゲイン値g(p)を算出する。
【０２２０】
【数８】
0004998287.tif 000009
【０２２１】
【数９】
0004998287.tif 000010
【０２２２】
なお、式（８）において、Lmin(nl)およびLmax(nl)は、輝度値Lc(nl)(p)が取り得る値の範囲内の最小値および最大値を示しており、Lmid(nl)は、図１４の中間輝度レベルLmid(nl)を示している。また、式（９）において、contrastGainは、予め定められた定数を示している。
【０２２３】
ゲイン値算出部３０１はゲイン値g(p)を算出すると、算出したゲイン値g(p)をコントラスト強調部３０２に供給する。
【０２２４】
ここで、図２１は、輝度値Lc(nl)(p)と、ゲイン値g(p)との関係をグラフに表したものである。すなわち、図中、縦軸はゲイン値g(p)を示しており、横軸は輝度値Lc(nl)(p)を示している。
【０２２５】
図２１では、輝度値Lc(nl)(p)が中間輝度レベルLmid(nl)となるときゲイン値g(p)が最大となり、その値は、予め定められた定数contrastGainと、γ-compパラメータとから定まる値（（contrastGain/γ-comp）−１）となる。また、輝度値Lc(nl)(p)が、中間輝度レベルLmid(nl)から最小値Lmin(nl)または最大値Lmax(nl)に近づくにつれて、ゲイン値g(p)は直線的に減衰する。
【０２２６】
さらに、輝度値Lc(nl)(p)が最小値Lmin(nl)未満および最大値Lmax(nl)を超える範囲では、ゲイン値g(p)は０となる。したがって、中間輝度レベルLmid(nl)付近の輝度成分のコントラストが、最小値Lmin(nl)または最大値Lmax(nl)付近の輝度成分のコントラストと比較して強調される。より厳密に言えば、中間輝度レベルLmid(nl)付近の輝度成分ほどコントラストが強調され、最小値Lmin(nl)または最大値Lmax(nl)付近の輝度成分は、ほとんどコントラストの強調が行われない。
【０２２７】
トーンカーブにより輝度値の階調が補正（圧縮）された画像（輝度値Lc(nl)(p)からなる画像）は、元の画像（輝度値L(nl)(p)からなる画像）と比較してコントラストが抑制（圧縮）されている。また、コントラストが抑制される度合いはトーンカーブの傾きに依存し、トーンカーブの傾きが緩やかであるほど抑制の度合いが大きい。従って、トーンカーブの傾きの逆数に応じて、階調が圧縮された画像のコントラスを強調するように補正すれば、階調を圧縮する前の画像に近いコントラストを得ることができる。しかし、noise Level(nl)またはsaturation Level(nl)付近の輝度値Lc(nl)(p)の画素についても同様の補正を行った場合、補正後の輝度値がnoise Level(nl)を下回ったり、saturation Level(nl)を超えたりするクリッピングが生じ、逆に画像のディテールが失われてしまう場合がある。
【０２２８】
そこで、ゲイン値算出部３０１は、中間輝度レベルLmid(nl)付近のトーンカーブの傾きを代表する値であるγ-compパラメータを算出し、γ-compパラメータに基づくコントラスト補正量を基準として、輝度値Lc(nl)(p)がnoise Level(nl)（最小値Lmin(nl)）またはsaturation Level(nl)（最大値Lmax(nl)）に近づくほど基準値から減衰するようにゲイン値g(p)を決定する。
【０２２９】
図２０のフローチャートの説明に戻り、ステップＳ２１４において、コントラスト強調部３０２は、読み込んだ輝度値Lc(nl)(p)および大局輝度値Lcl(nl)(p)と、ゲイン値算出部３０１からのゲイン値g(p)とを用いて、コントラスト補正した輝度値Lu(nl)(p)を算出する。
【０２３０】
例えば、コントラスト強調部３０２は、トーンカーブにより階調補正された輝度値Lc(nl)(p)および大局輝度値Lcl(nl)(p)の差分を計算することで、輝度値Lc(nl)(p)からなる輝度画像のコントラスト成分値を求める。さらに、コントラスト強調部３０２は、コントラスト成分値をゲイン値g(p)で増幅したものを、階調補正された輝度値Lc(nl)(p)に加算して、輝度値Lc(nl)(p)をコントラスト補正する。これにより、コントラスト補正された輝度値Lu(nl)(p)が得られる。
【０２３１】
より具体的には、コントラスト強調部３０２は、輝度値Lc(nl)(p)、大局輝度値Lcl(nl)(p)、およびゲイン値g(p)を用いて、次式（１０）を計算することで、コントラスト補正した輝度値Lu(nl)(p)を算出する。
【０２３２】
【数１０】
0004998287.tif 000011
【０２３３】
なお、式（１０）において、輝度値(Lc(nl)(p)−Lcl(nl)(p))からなる輝度画像（コントラスト成分値）は、輝度値Lc(nl)(p)からなる輝度画像から、輝度値Lc(nl)(p)からなる輝度画像の低周波域の成分からなる大局輝度画像を差し引いたものである。したがって、輝度値Lu(nl)(p)からなる輝度画像は、輝度値Lc(nl)(p)からなる輝度画像の低周波域を除く周波数成分がゲイン値g(p)により強調された画像となる。
【０２３４】
ステップＳ２１５において、コントラスト強調部３０２は、コントラスト補正により得られた輝度値Lu(nl)(p)を図４の階調補正部８５に出力し、コントラスト補正処理は終了して、処理は図１３のステップＳ５５に進む。
【０２３５】
このように、コントラスト補正部１２２により、輝度値Lc(nl)(p)からなる輝度画像の低周波域を除く、低中周波域から高周波域の成分のコントラストが強調される。したがって、高周波域の成分のコントラストだけを強調したときに目立つ、エッジ部分の局所的なオーバーシュートは発生せず、見た目にもごく自然にコントラストが強調された画像を得ることができる。
【０２３６】
また、中間輝度レベルLmid(nl)付近の輝度成分ほどコントラストが強調されるように補正され、最小値Lmin(nl)または最大値Lmax(nl)付近の輝度成分は、ほとんどコントラストの補正が行われないため、画像の白ツブレや黒ツブレがほとんど発生しない。
【０２３７】
以上のように、階調補正処理部５３では、輝度画像を空間方向に分割して得られる空間ブロックが、さらに輝度方向に分割されて輝度ブロックとされ、各輝度ブロックについて、その輝度ブロックにおける画素の頻度値と、輝度ブロックの特性を示す特性値とが求められる。そして、頻度値と特性値とを用いて、処理対象画素と輝度ブロックとの空間方向および輝度方向の距離で定義される重み（補間係数および輝度加重値）に基づいて、輝度ブロックごとの特性値を加重平均することにより、エッジ保存平滑化が実現される。
【０２３８】
この特性値は、例えば、輝度ブロックごとのブロック積分値などとされ、ブロック積分値の加重平均（重み付き加算）の演算は次式（１１）で表される。
【０２３９】
【数１１】
0004998287.tif 000012
【０２４０】
式（１１）において、Ｉ（ｐ）は、画素位置がｐである処理対象画素の画素値を示しており、Ｉ（ｐ）’は、エッジ保存平滑化処理が施された処理対象画素の画素値を示している。また、Ｓ（ｉ，ｊ,λ）およびＨ（ｉ，ｊ,λ）は、ブロック積分値およびブロックヒストグラムを示している。さらに、ω（ｉ，ｊ,ｐ）は、処理対象画素の位置ｐと、空間ブロックＢＫi,jとの相対位置関係により定まる関数を示しており、φ（λ,Ｉ（ｐ））は、中央値λと画素値Ｉ（ｐ）により定まる輝度加重値を示している。
【０２４１】
式（１１）の演算はちょうど、バイラテラルフィルタにおける空間方向の重み関数ωと、輝度方向の重み関数φとをブロック（空間ブロックまたは輝度ブロック）の分割に沿って階段上に離散化したようなものになっているので、エッジ保存平滑化の効果がある。
【０２４２】
さらに、ブロックヒストグラムおよびブロック積分値を算出するコストを差し引いても、輝度ブロックごとの加重積和は、画素ごとの加重積和に比べれば、はるかに演算量が少なくて済む。したがって、より少ない演算量でエッジ保存平滑化処理を行うことができる。また、その結果、エッジ保存平滑化処理時におけるメモリ消費を削減することができる。この効果は、エッジ保存平滑化のオペレータサイズが巨大であるほど大きい。
【０２４３】
なお、ここでいうオペレータサイズとは、例えば、補間部２７１および補間部２７２による補間処理において、処理対象画素近傍の処理対象となる空間ブロックからなる輝度画像上の領域の大きさをいう。
【０２４４】
さらに、入力された輝度画像の輝度値を、輝度階調補正部８３により行われる巨大な領域を一度にみるエッジ保存平滑化処理によって処理すると、物体領域ごとに平均化されたような輝度値を得ることができる。この輝度値を大局輝度値Ll(nl)(p)、すなわち各画素の大局的な明るさ情報を示す値と考え、この値が中庸な（中間的な）輝度値に変更されるように、トーンカーブ算出部１１８において各画素のトーンカーブ形状を決定する。このようにして画素位置ごとに決定されたトーンカーブによって各画素位置の輝度を補正することにより、画像の全ての領域を適切な明るさにするような階調補正が可能となる。
【０２４５】
さらに、階調が圧縮された大局輝度値Lcl(nl)(p)を、階調が圧縮された処理対象画素の輝度値Lc(nl)(p)から差し引くことで、各画素位置のコントラスト成分を抽出することができる。そこで、トーンカーブ形状から算出することができる、コントラスト劣化の大きさに基づいた補正係数としてのゲイン値g(p)により、コントラスト成分を補正することが可能となる。
【０２４６】
次に、以上において説明した本発明の実施の形態とは異なる、他の実施の形態について説明する。
【０２４７】
図２２は、図４の輝度階調補正部８３の他の構成例を示す図である。なお、図２２において、図５における場合と対応する部分には、同一の符号を付してあり、その説明は適宜、省略する。
【０２４８】
図２２の輝度階調補正部８３には、図５の輝度階調補正部８３に、さらに輝度重み関数保持部４０１、畳み込み部４０２、平滑化ブロックヒストグラムメモリ４０３、畳み込み部４０４、平滑化ブロック積分値メモリ４０５、および加重積和部４０６が設けられている。なお、図２２の輝度階調補正部８３には、加重積和部１１７が設けられておらず、加重積和部１１７に替えて加重積和部４０６が設けられている。
【０２４９】
輝度重み関数保持部４０１は、輝度重み関数ルックアップテーブルを保持しており、この輝度重み関数ルックアップテーブルは、例えば、図９の輝度重み関数保持部２７６に保持されている輝度重み関数ルックアップテーブルと同じものとされる。
【０２５０】
畳み込み部４０２は、ブロックヒストグラムメモリ１１４に記録されているブロックヒストグラムに対して、輝度重み関数保持部４０１に保持されている輝度重み関数ルックアップテーブルの輝度重み関数を畳み込む演算を行い、平滑化ブロックヒストグラムを算出する。この平滑化ブロックヒストグラムは、輝度重み関数が畳み込まれて得られるので、輝度方向に平滑化処理がなされたブロックヒストグラムとなる。畳み込み部４０２は、算出された平滑化ブロックヒストグラムを、平滑化ブロックヒストグラムメモリ４０３に供給し、平滑化ブロックヒストグラムメモリ４０３は、平滑化ブロックヒストグラムを一時的に記録する。
【０２５１】
畳み込み部４０４は、ブロック積分値メモリ１１６に記録されているブロック積分値に対して、輝度重み関数保持部４０１に保持されている輝度重み関数ルックアップテーブルの輝度重み関数を畳み込む演算を行い、平滑化ブロック積分値を算出する。この平滑化ブロック積分値は、輝度重み関数が畳み込まれて得られるので、輝度方向に平滑化処理がなされたブロック積分値となる。畳み込み部４０４は、算出された平滑化ブロック積分値を、平滑化ブロック積分値メモリ４０５に供給し、平滑化ブロック積分値メモリ４０５は、平滑化ブロック積分値を一時的に記録する。
【０２５２】
なお、図２２に示す輝度階調補正部８３においては、輝度域情報、平滑化ブロックヒストグラム、および平滑化ブロック積分値が中間データとされる。したがって、輝度域情報メモリ１１２、平滑化ブロックヒストグラムメモリ４０３、および平滑化ブロック積分値メモリ４０５に、中間データとしての輝度域情報、平滑化ブロックヒストグラム、および平滑化ブロック積分値が、輝度画像（ＲＧＢ画像）の１フレーム分の時間だけ保持されることになる。
【０２５３】
加重積和部４０６は、非線形変換部８２から供給された輝度値L(nl)(p)と、平滑化ブロックヒストグラムメモリ４０３からの平滑化ブロックヒストグラム、および平滑化ブロック積分値メモリ４０５からの平滑化ブロック積分値とから、大局輝度値Ll(nl)(p)を算出する。加重積和部４０６は、算出した大局輝度値Ll(nl)(p)をトーンカーブ算出部１１８およびマッピング部１２０に供給する。
【０２５４】
図２２に示す輝度階調補正部８３の構成によれば、処理対象画素の画素位置ごとの大局輝度値を算出する演算の一部を、輝度画像のフレーム全体についての情報を算出する処理に繰り込むことにより、１画素あたりの演算量を少なくすることができる。
【０２５５】
図２３は、図２２の加重積和部４０６の構成例を示す図である。なお、図２３において、図９における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０２５６】
図２３の加重積和部４０６は、補間部２７１、補間部２７２、空間重み関数保持部２７３、および除算部２７７から構成される。すなわち、図２３の加重積和部４０６と、図９の加重積和部１１７とは、加重積和部４０６に、積和部２７４乃至輝度重み関数保持部２７６が設けられていない点で異なる。
【０２５７】
補間部２７１は、空間重み関数保持部２７３から読み出した補間係数と、平滑化ブロック積分値メモリ４０５に記録されている平滑化ブロック積分値とから、輝度画像上における非線形変換部８２から供給された輝度値L(nl)(p)の処理対象画素の位置に対する輝度積分値を求め、除算部２７７に供給する。
【０２５８】
補間部２７２は、空間重み関数保持部２７３から読み出した補間係数と、平滑化ブロックヒストグラムメモリ４０３に記録されている平滑化ブロックヒストグラムとから、輝度画像上における非線形変換部８２から供給された輝度値L(nl)(p)の処理対象画素の位置に対する輝度ヒストグラムを求め、除算部２７７に供給する。
【０２５９】
除算部２７７は、補間部２７１からの輝度積分値を、補間部２７２からの輝度ヒストグラムで除算することにより、処理対象画素の大局輝度値Ll(nl)(p)を算出してトーンカーブ算出部１１８およびマッピング部１２０に供給する。
【０２６０】
次に、図２４および図２５のフローチャートを参照して、輝度階調補正部８３が図２２に示す構成とされる場合における階調補正処理について説明する。なお、この階調補正処理は、図１１のステップＳ１４の処理に対応する。
【０２６１】
ステップＳ３１１において、加重積和部４０６およびトーンカーブ算出部１１８は、中間データを読み込む。すなわち、加重積和部４０６の補間部２７１は、平滑化ブロック積分値メモリ４０５から中間データとしての平滑化ブロック積分値を読み込み、加重積和部４０６の補間部２７２は、平滑化ブロックヒストグラムメモリ４０３から中間データとしての平滑化ブロックヒストグラムを読み込む。また、トーンカーブ算出部１１８は、輝度域情報メモリ１１２から中間データとしての輝度域情報を読み込む。
【０２６２】
その後、ステップＳ３１２乃至ステップＳ３１９の処理が行われるが、これらの処理は、図１２のステップＳ４２乃至ステップＳ４９の処理と同様であるので、その説明は省略する。
【０２６３】
ステップＳ３２０において、加重積和部４０６は、大局輝度値算出処理を行って、処理対象画素の大局輝度値Ll(nl)(p)を算出し、トーンカーブ算出部１１８およびマッピング部１２０に供給する。なお、大局輝度値算出処理の詳細は後述するが、大局輝度値Ll(nl)(p)の算出には、平滑化ブロックヒストグラムおよび平滑化ブロック積分値が用いられる。
【０２６４】
大局輝度値Ll(nl)(p)が求められると、その後、ステップＳ３２１乃至ステップＳ３３２の処理が行われるが、これらの処理は、図１２および図１３のステップＳ５１乃至ステップＳ６２の処理と同様であるので、その説明は省略する。
【０２６５】
ステップＳ３３３において、畳み込み部４０２は、平滑化ブロックヒストグラムを算出し、平滑化ブロックヒストグラムを、平滑化ブロックヒストグラムメモリ４０３に供給して記録させる。
【０２６６】
すなわち、畳み込み部４０２は、ブロックヒストグラムメモリ１１４からブロックヒストグラムＨ（ｉ，ｊ,λ）を取得するとともに、輝度重み関数保持部４０１に保持されている輝度重み関数ルックアップテーブルから、輝度重み関数φ（λ，ν）を読み出す。ここで、輝度重み関数φ（λ，ν）におけるλおよびνは、輝度ブロックの中央値、および輝度ブロックの中央値に相当する輝度値を示す変数である。
【０２６７】
そして、畳み込み部４０２は、各空間ブロックＢＫi,jについて、空間ブロックＢＫi,jから分割されて得られるＤ個の輝度ブロックのブロックヒストグラムＨ（ｉ，ｊ,λ）と、輝度重み関数φ（λ，ν）とから次式（１２）を演算し、輝度ブロックＬＢＫi,j,νごとに平滑化ブロックヒストグラムＨconvolved（ｉ，ｊ,ν）を算出する。
【０２６８】
【数１２】
0004998287.tif 000013
【０２６９】
式（１２）では、輝度重み関数φ（λ，ν）が乗算された、Ｄ個の輝度ブロックのブロックヒストグラムＨ（ｉ，ｊ,λ）の総和が平滑化ブロックヒストグラムＨconvolved（ｉ，ｊ,ν）とされる。
【０２７０】
ここで、輝度ブロックＬＢＫi,j,νは、輝度ブロックＬＢＫi,j,hに相当する輝度ブロックであり、輝度値νは、平滑化ブロックヒストグラムの輝度ブロックＬＢＫi,j,νの中央値となる。つまり、空間ブロックを新たに輝度方向に分割して得られる所定数の輝度ブロックＬＢＫi,j,νについて、平滑化ブロックヒストグラムが求められることになる。また、輝度重み関数φ（λ，ν）は、中央値λ、および輝度値νを変数とする関数であり、例えば図１９を参照して説明した輝度重み関数と同じ関数とされる。
【０２７１】
このようにして求められた輝度ブロックＬＢＫi,j,νごとの平滑化ブロックヒストグラムＨconvolved（ｉ，ｊ,ν）は、平滑化ブロックヒストグラムメモリ４０３に供給されて記録される。
【０２７２】
ステップＳ３３４において、畳み込み部４０４は、平滑化ブロック積分値を算出し、平滑化ブロック積分値を、平滑化ブロック積分値メモリ４０５に供給して記録させる。
【０２７３】
すなわち、畳み込み部４０４は、ブロック積分値メモリ１１６からブロック積分値Ｓ（ｉ，ｊ,λ）を取得するとともに、輝度重み関数保持部４０１に保持されている輝度重み関数ルックアップテーブルから、輝度重み関数φ（λ，ν）を読み出す。
【０２７４】
そして、畳み込み部４０４は、各空間ブロックＢＫi,jについて、空間ブロックＢＫi,jから分割されて得られるＤ個の輝度ブロックのブロックブロック積分値Ｓ（ｉ，ｊ,λ）と、輝度重み関数φ（λ，ν）とから次式（１３）を演算し、輝度ブロックＬＢＫi,j,νごとに平滑化ブロック積分値Ｓconvolved（ｉ，ｊ,ν）を算出する。
【０２７５】
【数１３】
0004998287.tif 000014
【０２７６】
つまり、式（１３）では、輝度重み関数φ（λ，ν）が乗算された、Ｄ個の輝度ブロックのブロック積分値Ｓ（ｉ，ｊ,λ）の総和が平滑化ブロック積分値Ｓconvolved（ｉ，ｊ,ν）とされる。
【０２７７】
このようにして求められた輝度ブロックＬＢＫi,j,νごとの平滑化ブロック積分値Ｓconvolved（ｉ，ｊ,ν）は、平滑化ブロック積分値メモリ４０５に供給されて記録される。そして、階調補正処理は終了して、処理は図１１のステップＳ１５に進む。
【０２７８】
このように、階調補正処理においては、１フレーム分の輝度画像に基づいて、中間データが求められる。そして、中間データとしての輝度域情報、平滑化ブロックヒストグラム、および平滑化ブロック積分値が輝度域情報メモリ１１２、平滑化ブロックヒストグラムメモリ４０３、および平滑化ブロック積分値メモリ４０５に格納される。輝度階調補正部８３では、現在処理しているフレームよりも時間的に１つ前のフレームから求められた中間データが用いられて処理対象画素の大局輝度値やトーンカーブが算出されるため（エッジ保存平滑化処理が行われるため）、処理対象の画像が動画像であっても、画像の全画素を２回スキャンすることなく、少ないワーキングメモリで、大きいオペレータサイズのエッジ保存平滑化処理を行うことができる。
【０２７９】
次に、図２６のフローチャートを参照して、図２４のステップＳ３２０の処理に対応する処理である大局輝度値算出処理について説明する。
【０２８０】
ステップＳ３６１において、加重積和部４０６の補間部２７１および補間部２７２は、非線形変換部８２から処理対象画素の輝度値L(nl)(p)を読み込む。
【０２８１】
ステップＳ３６２において、補間部２７１は、読み込んだ輝度値L(nl)(p)の処理対象画素近傍の空間ブロックから得られる輝度ブロックの平滑化ブロック積分値を用いた補間処理を行って、処理対象画素の輝度積分値を求める。
【０２８２】
例えば、補間部２７１は、処理対象画素の空間方向近傍の４×４の合計１６個の空間ブロックＢＫi,j（但し、１≦ｉ≦４，１≦ｊ≦４）の補間係数Ｂi,jを空間重み関数保持部２７３のルックアップテーブルから読み出す。そして、補間部２７１は、平滑化ブロック積分値メモリ４０５から、１６個の空間ブロックＢＫi,jのそれぞれから得られる輝度ブロックのそれぞれの平滑化ブロック積分値Ｓconvolved（ｉ，ｊ,ν）を読み出す。
【０２８３】
さらに、補間部２７１は、読み出した補間係数Ｂi,jと、平滑化ブロック積分値Ｓconvolved（ｉ，ｊ,ν）との積の総和、すなわち平滑化ブロック積分値の加重積和を計算し、その結果得られた値を輝度積分値とする。また、輝度積分値の演算時において、補間部２７１は各平滑化ブロック積分値Ｓconvolved（ｉ，ｊ,ν）の変数νに、読み込んだ輝度値L(nl)(p)を代入して計算する。
【０２８４】
なお、より詳細には、補間部２７１は、空間ブロックごとに、空間ブロックから得られる輝度ブロックの平滑化ブロック積分値Ｓconvolved（ｉ，ｊ,ν）から、処理対象画素の輝度値L(nl)(p)に対応する輝度の平滑化ブロック積分値Ｓconvolved（ｉ，ｊ,L(nl)(p)）を、補間などにより求める。そして、求められた平滑化ブロック積分値Ｓconvolved（ｉ，ｊ,L(nl)(p)）に補間係数Ｂi,jが乗算されて、輝度積分値が求められる。
【０２８５】
補間部２７１は輝度積分値を求めると、求めた輝度積分値を除算部２７７に供給する。この輝度積分値は、処理対象画素の位置における、処理対象画素の輝度値に対する補間されたブロック積分値である。
【０２８６】
ステップＳ３６３において、補間部２７２は、読み込んだ輝度値L(nl)(p)の処理対象画素近傍の空間ブロックから得られる輝度ブロックの平滑化ブロックヒストグラムを用いた補間処理を行って、処理対象画素の輝度ヒストグラムを求める。
【０２８７】
例えば、補間部２７２は、処理対象画素の空間方向近傍の４×４の合計１６個の空間ブロックＢＫi,j（但し、１≦ｉ≦４，１≦ｊ≦４）の補間係数Ｂi,jを空間重み関数保持部２７３のルックアップテーブルから読み出す。そして、補間部２７２は、平滑化ブロックヒストグラムメモリ４０３から、１６個の空間ブロックＢＫi,jのそれぞれから得られる輝度ブロックのそれぞれの平滑化ブロックヒストグラムＨconvolved（ｉ，ｊ,ν）を読み出す。
【０２８８】
さらに、補間部２７２は、読み出した補間係数Ｂi,jと、平滑化ブロックヒストグラムＨconvolved（ｉ，ｊ,ν）との積の総和、すなわち平滑化ブロックヒストグラムの加重積和を計算し、その結果得られた値を輝度ヒストグラムとする。また、輝度ヒストグラムの演算時において、補間部２７２は各平滑化ブロックヒストグラムＨconvolved（ｉ，ｊ,ν）の変数νに、読み込んだ輝度値L(nl)(p)を代入して計算する。
【０２８９】
なお、より詳細には、補間部２７２は、空間ブロックごとに、空間ブロックから得られる輝度ブロックの平滑化ブロックヒストグラムＨconvolved（ｉ，ｊ,ν）から、処理対象画素の輝度値L(nl)(p)に対応する輝度の平滑化ブロックヒストグラムＨconvolved（ｉ，ｊ,L(nl)(p)）を、補間などにより求める。そして、求められた平滑化ブロックヒストグラムＨconvolved（ｉ，ｊ,L(nl)(p)）に補間係数Ｂi,jが乗算され、輝度ヒストグラムが求められる。
【０２９０】
補間部２７２は輝度ヒストグラムを求めると、求めた輝度ヒストグラムを除算部２７７に供給する。この輝度ヒストグラムは、処理対象画素の位置における、処理対象画素の輝度値に対する補間されたブロックヒストグラムである。
【０２９１】
ステップＳ３６４において、除算部２７７は、補間部２７１からの輝度積分値を、補間部２７２からの輝度ヒストグラムで除算し、大局輝度値Ll(nl)(p)を求める。すなわち、除算部２７７は、次式（１４）を計算することで大局輝度値Ll(nl)(p)を算出する。
【０２９２】
【数１４】
0004998287.tif 000015
【０２９３】
ここで、式（１４）において、ΣＢi,j・Ｓconvolved（ｉ，ｊ,L(nl)(p)）は、補間部２７１からの輝度積分値を示しており、ΣＢi,j・Ｈconvolved（ｉ，ｊ,L(nl)(p)）は、補間部２７２からの輝度ヒストグラムを示している。すなわち、輝度積分値は、補間係数の乗算された平滑化ブロック積分値Ｂi,j×Ｓconvolved（ｉ，ｊ,L(nl)(p)）の総和であり、輝度ヒストグラムは、補間係数の乗算された平滑化ブロックヒストグラムＢi,j×Ｈconvolved（ｉ，ｊ,L(nl)(p)）の総和である。
【０２９４】
すなわち、輝度重み関数が畳み込まれたブロック積分値を補間係数で重み付き加算して得られた加重和を、輝度重み関数が畳み込まれたブロックヒストグラムを補間係数で重み付き加算して得られた加重和で除算することにより、ブロック積分値の加重平均の値が求まり、その値が大局輝度値Ll(nl)(p)とされる。
【０２９５】
ステップＳ３６５において、除算部２７７は、求めた大局輝度値Ll(nl)(p)を、トーンカーブ算出部１１８およびマッピング部１２０に出力し、大局輝度値算出処理は終了して、処理は図２４のステップＳ３２１に進む。
【０２９６】
このようにして、加重積和部４０６は、処理対象画素近傍の空間ブロックの平滑化ブロック積分値および平滑化ブロックヒストグラムから大局輝度値を求める。
【０２９７】
図２２の輝度階調補正部８３では、ブロックヒストグラムおよびブロック積分値に対して、予め輝度方向の重み関数（輝度重み関数）を畳み込む演算が行われ、その演算結果が保持されている。したがって、画素ごとの加重積和演算では、既に輝度重み関数が畳み込まれたブロックヒストグラムおよびブロック積分値を空間方向に補間した結果を除算するだけでよく、エッジ保存平滑化処理をより少ない演算で行うことができる。この演算は、次式（１５）により表される。
【数１５】
0004998287.tif 000016
【０２９８】
式（１５）において、Ｉ（ｐ）は、画素位置がｐである処理対象画素の画素値を示しており、Ｉ（ｐ）’は、エッジ保存平滑化処理が施された処理対象画素の画素値を示している。また、ω（ｉ，ｊ,ｐ）は、処理対象画素の位置ｐと、空間ブロックＢＫi,jとの相対位置関係により定まる関数を示している。この式（１５）の演算も上述した式（１１）と同様にエッジ保存平滑化の効果があり、元の画像サイズに比べて空間ブロック分割数が粗い、すなわち画像中の広い範囲をみてエッジ保存平滑化処理をおこなう場合ほど、エッジ保存平滑化処理をより少ない演算で行うことができる。
【０２９９】
さらに、輝度階調補正部８３において、縮小された輝度画像である縮小画像を生成するようにしてもよい。階調補正処理において用いられる中間データは、輝度画像全体の大局的な輝度分布や構造などを抽出したものであるので、事前に縮小された輝度画像から中間データを算出しても、それらの情報が損なわれることはない。したがって、縮小画像から中間データを生成することで、中間データの生成のための演算量を減らすことができる。
【０３００】
輝度階調補正部８３において縮小画像を生成する場合、例えば、輝度階調補正部８３は、図２７に示すように構成される。なお、図２７において、図５における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０３０１】
図２７に示す輝度階調補正部８３は、図５の輝度階調補正部８３に、さらに縮小部４６１および縮小画像メモリ４６２が設けられている。
【０３０２】
縮小部４６１は、非線形変換部８２から輝度画像における処理対象画素の輝度値L(nl)(p)を読み込み、読み込んだ輝度値L(nl)(p)に基づいて、縮小画像を生成する。例えば、縮小部４６１は、これから生成しようとする縮小画像の画素と同じ位置にある、輝度画像上の領域内の画素の輝度値の平均値を、縮小画像の画素の輝度値とする。縮小部４６１は、生成した縮小画像を縮小画像メモリ４６２に供給する。
【０３０３】
縮小画像メモリ４６２は、縮小部４６１から供給された縮小画像を一時的に記録する。また、輝度域情報算出部１１１、ブロックヒストグラム算出部１１３、およびブロック積分値算出部１１５は、縮小画像メモリ４６２に記録されている縮小画像の画素を、順次、処理対象画素として、縮小画像から輝度域情報、ブロックヒストグラム、およびブロック積分値を算出する。
【０３０４】
次に、図２８および図２９のフローチャートを参照して、輝度階調補正部８３が図２７に示す構成とされる場合における階調補正処理について説明する。この階調補正処理は、図１１のステップＳ１４の処理に対応する。
【０３０５】
なお、ステップＳ４１１乃至ステップＳ４１６の処理は、図１２のステップＳ４１乃至ステップＳ４６の処理と同様であるので、その説明は省略する。
【０３０６】
ステップＳ４１７において、縮小部４６１は、非線形変換部８２から読み込んだ処理対象画素の輝度値L(nl)(p)を、縮小画像の対応する画素の加算値に加算する。
【０３０７】
すなわち、縮小部４６１は、これから生成しようとする縮小画像の画素ごとに加算値を保持している。この加算値は、新たなフレームの輝度画像に対する縮小画像の生成が開始されるごとに０に更新される。縮小部４６１は、処理対象画素の輝度値を読み込むと、その処理対象画素が、縮小画像のどの画素に対応するか、つまり縮小画像上の同じ位置にある画素はどの画素であるかを特定し、特定した縮小画像の画素の加算値に、読み込んだ処理対象画素の輝度値を加算する。
【０３０８】
このようにして、輝度画像の処理対象画素の輝度値を読み込むごとに、読み込んだ輝度値を、処理対象画素に対応する縮小画像の画素の加算値に加算していくことで、縮小画像の各画素について、その画素と同じ位置にある、輝度画像上の領域内の画素の輝度値の総和が加算値として得られる。
【０３０９】
処理対象画素の輝度値が、縮小画像の対応する画素の加算値に加算されると、その後、ステップＳ４１８乃至ステップＳ４２６の処理が行われる。なお、これらの処理は、図１２および図１３のステップＳ５０乃至ステップＳ５８の処理のそれぞれと同様であるので、その説明は省略する。
【０３１０】
ステップＳ４２７において、階調補正処理部５３は、処理対象となっているフレームのＲＧＢ画像上の全ての画素を処理したか否かを判定する。ステップＳ４２７において、まだ全ての画素を処理していない、つまり全ての画素が処理対象画素とされていないと判定された場合、処理はステップＳ４１３に戻り、上述した処理が繰り返される。
【０３１１】
これに対して、ステップＳ４２７において、全ての画素が処理されたと判定された場合、ステップＳ４２８において、縮小部４６１は、これから生成しようとする縮小画像の各画素について保持している加算値に基づいて、縮小画像を生成する。すなわち、縮小部４６１は、縮小画像の各画素について、その画素に対応する輝度画像上の領域内の画素の数で、加算値を除算し、その結果得られた値を縮小画像の対応する画素の輝度値とする。縮小部４６１は、縮小画像を生成すると、その縮小画像を縮小画像メモリ４６２に供給して記録させる。
【０３１２】
縮小画像が生成されると、その後、ステップＳ４２９乃至ステップＳ４３１の処理が行われる。なお、これらの処理は、図１２のステップＳ４７乃至ステップＳ４９の処理と同様であるので、その説明は省略する。また、ステップＳ４２９乃至ステップＳ４３１の処理においては、縮小画像の画素が、順次、処理対象画素とされる。つまり、縮小画像の画素の輝度値が用いられて、それらの処理が行われる。
【０３１３】
ステップＳ４３１においてブロック積分値算出のための画素処理が行われると、ステップＳ４３２において、輝度階調補正部８３は、縮小画像メモリ４６２に記録されている縮小画像の全ての画素を処理したか否かを判定する。例えば、縮小画像の全ての画素が処理対象画素とされて、ステップＳ４２９乃至ステップＳ４３１の処理が行われた場合、全ての画素を処理したと判定される。
【０３１４】
ステップＳ４３２において、まだ全ての画素を処理していないと判定された場合、処理はステップＳ４２９に戻り、縮小画像の次の画素が処理対象画素とされて、上述した処理が繰り返される。
【０３１５】
これに対して、ステップＳ４３２において、全ての画素を処理したと判定された場合、ステップＳ４３３において、輝度域情報算出部１１１は、輝度域情報を求める。そして、その後、ステップＳ４３４およびステップＳ４３５の処理が行われて階調補正処理は終了し、処理は図１１のステップＳ１５に進む。なお、ステップＳ４３３乃至ステップＳ４３５の処理は、図１３のステップＳ６０乃至ステップＳ６２の処理と同様であるので、その説明は省略する。
【０３１６】
このようにして、輝度階調補正部８３は、輝度画像から縮小画像を生成し、縮小画像を用いて中間データを生成する。
【０３１７】
このように、中間データを生成する前に輝度画像を縮小することで、中間データを生成するための演算量を減らすことができるだけでなく、その演算時のメモリの消費量を削減することができる。
【０３１８】
なお、図２２に示した輝度階調補正部８３において、輝度域情報算出部１１１、ブロックヒストグラム算出部１１３、およびブロック積分値算出部１１５の前段に縮小画像メモリ４６２と縮小部４６１とが設けられるようにしてもよい。
【０３１９】
また、図５の輝度階調補正部８３において、ブロックヒストグラムの輝度方向のブロックの分割、つまり空間ブロックの輝度ブロックへの分割が充分に細かくできる場合には、ブロック積分値算出部１１５およびブロック積分値メモリ１１６を設けないようにしてもよい。そのような場合、各輝度ブロックについて、輝度ブロックの中央値λに、その輝度ブロックのブロックヒストグラムを乗じたものをブロック積分値とすることができる。すなわち、輝度ブロックの中央値λ、より詳細には、中央値λにブロックヒストグラムを乗じたものが、輝度ブロックの特性を示す特性値とされる。
【０３２０】
この場合、大局輝度値Ll(nl)(p)は、加重積和部１１７が上述した式（７）の替わりに次式（１６）を計算することにより求められることになる。
【０３２１】
【数１６】
0004998287.tif 000017
【０３２２】
すなわち、式（１６）における分子のΣλ・Ｈinterpolated（λ）・φ（λ，L(nl)(p)）が、積和された輝度積分値とされる。
【０３２３】
また、ＲＧＢ画像（輝度画像）のダイナミックレンジが安定していることが期待できる場合には、図５の輝度階調補正部８３において、輝度域情報算出部１１１および輝度域情報メモリ１１２を設けず、輝度域情報の算出を省略するようにしてもよい。
【０３２４】
そのような場合、図１４に示したトーンカーブ形状を決定するコントロールポイントのうち、コントロールポイントＰ４、コントロールポイントＰ５、コントロールポイントＰ７、およびコントロールポイントＰ８が算出されず、残りのコントロールポイントで、トーンカーブの形状が決定される。この場合においても、画素ごとに算出される大局輝度値Ll(nl)(p)によってコントロールポイントＰ６の位置は変化するため、画素ごとに明るさを適切に補正するというトーンカーブの性質は保持される。
【０３２５】
なお、画素ごとに異なるトーンカーブを設定できる構成があれば、画素ごとに明るさを適切に補正する性質は保持されるので、コントラスト補正は本発明の必須の構成要素ではない。しかし、画素ごとに算出される大局輝度値を利用したコントラスト成分算出およびコントラスト成分の補正処理があれば、より適切な出力が得られる。
【０３２６】
さらに、以上においては、ＲＧＢ画像に対して階調補正処理が行われると説明したが、ＹＣ変換処理後の画像信号に対して階調補正処理が行われるようにしてもよい。そのような場合、ＤＳＰ１６は、例えば図３０に示すように構成される。なお、図３０において、図２における場合と対応する部分には、同一の符号を付してあり、その説明は適宜省略する。
【０３２７】
図３０に示すＤＳＰ１６は、図２のＤＳＰ１６に対して、デモザイク処理部５２とガンマ補正処理部５４との間に階調補正処理部５３が設けられておらず、ＹＣ変換処理部５５に階調補正処理部５０１が接続されている点で異なる。階調補正処理部５０１は、ＹＣ変換処理部５５から供給されたＹ画像およびＣ画像（Cb成分およびCr成分）に階調補正処理を施し、階調補正処理を施したＹ画像およびＣ画像を、必要に応じてＬＣＤドライバ１８またはCODEC２０に供給する。
【０３２８】
なお、以下、階調補正処理が施された画像データの画素位置ｐにおける画素値を［Yu(p), Cu(p)］とする。ここで、Yu(p)は、Ｙ画像における輝度成分の値であり、Cu(p)はＣ画像における色差成分の値である。また、以下、特にＣ画像の画素値Cu(p)のCb成分をCbu(p)と称し、Cr成分をCru(p)と称する。
【０３２９】
図３０の階調補正処理部５０１は、例えば図３１に示すように構成される。すなわち、階調補正処理部５０１は、輝度階調補正部５３１、Cb階調補正部５３２、およびCr階調補正部５３３から構成される。
【０３３０】
輝度階調補正部５３１は、図４の輝度階調補正部８３と同様の処理を行って、ＹＣ変換処理部５５からのＹ画像の画素値Y(p)の階調を補正（圧縮）する。そして、輝度階調補正部５３１は、階調補正により得られた画素値Yu(p)を、必要に応じてＬＣＤドライバ１８またはCODEC２０に供給するとともに、画素値Yu(p)をCb階調補正部５３２およびCr階調補正部５３３に供給する。
【０３３１】
Cb階調補正部５３２は、ＹＣ変換処理部５５からのＹ画像の画素値Y(p)と、輝度階調補正部５３１からのＹ画像の画素値Yu(p)とを用いて、図４の階調補正部８５と同様の処理を行い、ＹＣ変換処理部５５からのＣ画像の画素値Cb(p)を階調補正して、階調補正された画素値Cbu(p)を、必要に応じてＬＣＤドライバ１８またはCODEC２０に供給する。
【０３３２】
また、Cr階調補正部５３３は、ＹＣ変換処理部５５からのＹ画像の画素値Y(p)と、輝度階調補正部５３１からのＹ画像の画素値Yu(p)とを用いて、図４の階調補正部８５と同様の処理を行い、ＹＣ変換処理部５５からのＣ画像の画素値Cr(p)を階調補正して、階調補正された画素値Cru(p)を、必要に応じてＬＣＤドライバ１８またはCODEC２０に供給する。
【０３３３】
例えば、Cb階調補正部５３２およびCr階調補正部５３３が行う階調補正は、上述した式（２）に示される演算と同様に、階調補正されたＹ画像の画素値Yu(p)と、Ｙ画像の画素値Y(p)との比を、Ｃ画像の画素値（画素値Cr(p)または画素値Cb(p)）に乗算することにより行われる。つまり、画素値Yu(p)を画素値Y(p)で除算して得られる値が、Ｃ画像の画素値に乗算される。
【０３３４】
階調補正処理部５０１には、Ｙ画像およびＣ画像、つまり輝度信号と色差信号とが入力されるため、階調補正処理部５０１において輝度画像を生成する必要はない。また、階調補正処理部５０１に供給されるＹ画像およびＣ画像は、既にガンマ補正されているので、Ｙ画像およびＣ画像を非線形変換する必要もない。したがって、階調補正処理部５０１には、図４の階調補正処理部５３における輝度算出部８１、非線形変換部８２、非線形変換部８４、および非線形逆変換部８６に対応するブロックは設けられていない。
【０３３５】
このように、Ｙ画像およびＣ画像に対して階調補正処理を行うことで、より簡単に階調の補正を行うことができる。
【０３３６】
さらに、ＲＡＷデータ、つまりモザイク画像に対して階調補正処理が行われるようにしてもよい。そのような場合、ＤＳＰ１６は、例えば図３２に示すように構成される。なお、図３２において、図２における場合と対応する部分には同一の符号を付してあり、その説明は適宜、省略する。
【０３３７】
図３２のＤＳＰ１６と、図２のＤＳＰ１６とは、図３２のＤＳＰ１６において階調補正処理部５８１が、ホワイトバランス処理部５１とデモザイク処理部５２との間に設けられている点で異なる。すなわち、図２のＤＳＰ１６では、階調補正処理部５３が、ホワイトバランス処理部５１とガンマ補正処理部５４との間に設けられているのに対して、図３２のＤＳＰ１６では、図２の階調補正処理部５３に対応する階調補正処理部５８１が、ホワイトバランス処理部５１とデモザイク処理部５２との間に設けられている。
【０３３８】
階調補正処理部５８１は、ホワイトバランス処理部５１からのモザイク画像Ｍｗに階調補正処理を施し、階調補正処理が施されたモザイク画像Ｍｕをデモザイク処理部５２に供給する。この階調補正処理部５８１は、例えば図３３に示すように構成される。
【０３３９】
具体的には、階調補正処理部５８１は、輝度算出部６１１、非線形変換部６１２、輝度階調補正部６１３、位相合わせ部６１４、位相合わせ部６１５、非線形変換部６１６、モザイク階調補正部６１７、および非線形逆変換部６１８から構成される。
【０３４０】
輝度算出部６１１は、図４の輝度算出部８１と同様の処理を行い、モザイク画像Ｍｗから輝度画像を生成する。すなわち、輝度算出部６１１は、ホワイトバランス処理部５１からのモザイク画像Ｍｗの画素位置ｐの画素値を、処理対象画素の画素値Mw(p)として、モザイク画像Ｍｗのいくつかの画素値から輝度値L(p)を算出し、非線形変換部６１２に供給する。
【０３４１】
モザイク画像Ｍｗは、例えば図３４に示すように、各画素がＲ、Ｇ（ＧｒまたはＧｂ）、Ｂの何れかの成分の画素値しか有していないため、輝度算出部６１１は、供給された１つの画素の画素値Mw(p)だけでなく、その画素の周囲の画素の画素値も参照して、輝度値を算出する。
【０３４２】
図３４では、Ｒ成分、Ｇ成分、またはＢ成分を有する画素が、ベイヤー配列で並んでおり、１つの四角形はモザイク画像の１つの画素を示している。また、図中、四角形内の文字「Ｒ」、「Ｇ」、および「Ｂ」は、その四角形がＲ成分、Ｇ成分、およびＢ成分の画素値を有する画素であることを示している。
【０３４３】
輝度算出部６１１は、互いに隣接する縦２画素×横２画素の合計４画素を処理の単位とすると、Ｒ成分、Ｇ成分（Ｇｒ成分およびＧｂ成分）、およびＢ成分の各成分の画素値が得られることを利用して、それらの４つの画素の画素値に基づいて、図中、円により示される位置の輝度値を求める。つまり、図中、円の位置近傍の４つの画素のＲＧＢ信号の和として輝度信号が生成される。
【０３４４】
図３４の例では、図中の円は、Ｒの画素、Ｂの画素、および２つのＧの画素からなる領域の中心に位置している。なお、輝度値が求められる位置は、モザイク画像の画素の位置から半画素分だけずれた位置となっており、また、輝度値が求められる位置の間隔も１画素単位ではないが、これらの位置（位相）のずれは、輝度値の階調を補正するうえでは問題とはならない。
【０３４５】
図３３の説明に戻り、非線形変換部６１２は、図４の非線形変換部８２と同様の処理を行って、輝度算出部６１１からの輝度値L(p)を非線形変換し、非線形変換により得られた輝度値L(nl)(p)を輝度階調補正部６１３および位相合わせ部６１４に供給する。
【０３４６】
輝度階調補正部６１３は、図４の輝度階調補正部８３と同様の処理を行い、非線形変換部６１２からの輝度値L(nl)(p)の階調を圧縮することで、輝度値L(nl)(p)の階調補正を行い、階調補正により得られた輝度値Lu(nl)(p)を位相合わせ部６１５に供給する。
【０３４７】
位相合わせ部６１４は、非線形変換部６１２からの輝度値のうち、処理対象画素近傍の位置の輝度値のいくつかを用いて補間処理を行い、処理対象画素の位置の輝度値を算出する。ここで、位相合わせ部６１４により行われる補間処理は、例えば処理対象画素近傍の２×２の位置の合計４箇所の輝度値を用いたバイリニア補間処理などとされる。
【０３４８】
位相合わせ部６１４は、処理対象画素の輝度値を求めると、求めた輝度値をモザイク階調補正部６１７に供給する。
【０３４９】
位相合わせ部６１５は、輝度階調補正部６１３からの輝度値のうち、処理対象画素近傍の位置の輝度値のいくつかを用いて補間処理を行い、処理対象画素の位置の階調補正された輝度値を算出する。ここで、位相合わせ部６１５により行われる補間処理は、位相合わせ部６１４により行われる補間処理と同じ処理とされ、例えばバイリニア補間処理などとされる。
【０３５０】
非線形変換部６１６は、図４の非線形変換部８４と同様の処理を行って、ホワイトバランス処理部５１からの処理対象画素の画素値Mw(p)を非線形変換し、非線形変換された画素値をモザイク階調補正部６１７に供給する。
【０３５１】
モザイク階調補正部６１７は、位相合わせ部６１４からの輝度値と、位相合わせ部６１５からの階調補正された輝度値とを用いて、図４の階調補正部８５と同様の処理を行い、非線形変換部６１６からの画素値を階調補正して、階調補正された画素値を非線形逆変換部６１８に供給する。例えば、モザイク階調補正部６１７は、上述した式（２）に示される演算と同様に、位相合わせ部６１４からの輝度値で、位相合わせ部６１５からの階調補正された輝度値を除算して得られる値を、非線形変換部６１６からの画素値に乗算することで、画素値を階調補正する。これにより、処理対象画素の画素値、つまりＲ、Ｇ、またはＢの成分の画素値が階調補正されることになる。
【０３５２】
非線形逆変換部６１８は、モザイク階調補正部６１７からの画素値に、非線形変換部６１６による非線形変換の逆変換となる非線形逆変換を施す。非線形逆変換部６１８は、非線形逆変換により得られた画素値Mu(p)を、デモザイク処理部５２に供給する。
【０３５３】
このように、モザイク画像を対象として階調補正処理を行う場合には、輝度算出部６１１により算出される輝度値の位置は、モザイク画像上の処理対象画素の位置とは異なるが、位相合わせ部６１４および位相合わせ部６１５により位相合わせを行うことで、処理対象画素の位置の輝度値を求めることができる。
【０３５４】
なお、以上において説明したように、図１のデジタルビデオカメラは、画像の大局的な構造を抽出する画像処理を行う。このような画像処理により抽出された情報は、画質を向上させる処理などに利用することが可能であるため、画像の大局的な構造を抽出するブロックを実装する装置として、デジタルビデオカメラだけでなく他の装置にも適用することが可能である。例えば、そのような装置として、デジタルスチルカメラなどの撮像装置や、プリンタ、ディスプレイなどの表示装置等が考えられる。さらに、画像を加工したり、編集したりする装置やコンピュータプログラムにも応用することができる。
【０３５５】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０３５６】
図３５は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０３５７】
コンピュータにおいて、ＣＰＵ９０１，ＲＯＭ（Read Only Memory）９０２，ＲＡＭ９０３は、バス９０４により相互に接続されている。
【０３５８】
バス９０４には、さらに、入出力インターフェース９０５が接続されている。入出力インターフェース９０５には、キーボード、マウス、マイクロホンなどよりなる入力部９０６、ディスプレイ、スピーカなどよりなる出力部９０７、ハードディスクや不揮発性のメモリなどよりなる記録部９０８、ネットワークインターフェースなどよりなる通信部９０９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア９１１を駆動するドライブ９１０が接続されている。
【０３５９】
以上のように構成されるコンピュータでは、ＣＰＵ９０１が、例えば、記録部９０８に記録されているプログラムを、入出力インターフェース９０５及びバス９０４を介して、ＲＡＭ９０３にロードして実行することにより、上述した一連の処理が行われる。
【０３６０】
コンピュータ（ＣＰＵ９０１）が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア９１１に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０３６１】
そして、プログラムは、リムーバブルメディア９１１をドライブ９１０に装着することにより、入出力インターフェース９０５を介して、記録部９０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部９０９で受信し、記録部９０８にインストールすることができる。その他、プログラムは、ＲＯＭ９０２や記録部９０８に、あらかじめインストールしておくことができる。
【０３６２】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０３６３】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０３６４】
【図１】本発明を適用したデジタルビデオカメラの一実施の形態を示すブロック図である。
【図２】ＤＳＰの構成例を示す図である。
【図３】モザイク画像の画素の配列例を示す図である。
【図４】階調補正処理部の構成例を示す図である。
【図５】輝度階調補正部の構成例を示す図である。
【図６】輝度域情報算出部の構成例を示す図である。
【図７】ブロックヒストグラム算出部の構成例を示す図である。
【図８】ブロック積分値算出部の構成例を示す図である。
【図９】加重積和部の構成例を示す図である。
【図１０】コントラスト補正部の構成例を示す図である。
【図１１】画像処理を説明するフローチャートである。
【図１２】階調補正処理を説明するフローチャートである。
【図１３】階調補正処理を説明するフローチャートである。
【図１４】トーンカーブを説明する図である。
【図１５】輝度域情報算出のための画素処理を説明するフローチャートである。
【図１６】ブロックヒストグラム算出のための画素処理を説明するフローチャートである。
【図１７】ブロック積分値算出のための画素処理を説明するフローチャートである。
【図１８】大局輝度値算出処理を説明するフローチャートである。
【図１９】輝度重み関数について説明する図である。
【図２０】コントラスト補正処理を説明するフローチャートである。
【図２１】ゲイン値について説明する図である。
【図２２】輝度階調補正部の他の構成例を示す図である。
【図２３】加重積和部の他の構成例を示す図である。
【図２４】階調補正処理を説明するフローチャートである。
【図２５】階調補正処理を説明するフローチャートである。
【図２６】大局輝度値算出処理を説明するフローチャートである。
【図２７】輝度階調補正部の他の構成例を示す図である。
【図２８】階調補正処理を説明するフローチャートである。
【図２９】階調補正処理を説明するフローチャートである。
【図３０】ＤＳＰの他の構成例を示す図である。
【図３１】階調補正処理部の他の構成例を示す図である。
【図３２】ＤＳＰの他の構成例を示す図である。
【図３３】階調補正処理部の他の構成例を示す図である。
【図３４】求められる輝度値の位置について説明する図である。
【図３５】コンピュータの構成例を示すブロック図である。
【符号の説明】
【０３６５】
１６  ＤＳＰ，  ５３  階調補正処理部，  ８１  輝度算出部，  ８３  輝度階調補正部，  ８５−１乃至８５−３  階調補正部，  １１１  輝度域情報算出部，  １１３  ブロックヒストグラム算出部，  １１５  ブロック積分値算出部，  １１７  加重積和部，  １１８  トーンカーブ算出部，  １２２  コントラスト補正部，  ２７１  補間部，  ２７２  補間部，  ２７４  積和部，  ２７５  積和部，  ２７７  除算部，  ４０２  畳み込み部，  ４０４  畳み込む部，  ４０６  加重積和部，  ４６１  縮小部，  ５０１  階調補正処理部，  ５８１  階調補正処理部
【図１】
0004998287.tif 000018
【図２】
0004998287.tif 000019
【図３】
0004998287.tif 000020
【図４】
0004998287.tif 000021
【図５】
0004998287.tif 000022
【図６】
0004998287.tif 000023
【図７】
0004998287.tif 000024
【図８】
0004998287.tif 000025
【図９】
0004998287.tif 000026
【図１０】
0004998287.tif 000027
【図１１】
0004998287.tif 000028
【図１２】
0004998287.tif 000029
【図１３】
0004998287.tif 000030
【図１４】
0004998287.tif 000031
【図１５】
0004998287.tif 000032
【図１６】
0004998287.tif 000033
【図１７】
0004998287.tif 000034
【図１８】
0004998287.tif 000035
【図１９】
0004998287.tif 000036
【図２０】
0004998287.tif 000037
【図２１】
0004998287.tif 000038
【図２２】
0004998287.tif 000039
【図２３】
0004998287.tif 000040
【図２４】
0004998287.tif 000041
【図２５】
0004998287.tif 000042
【図２６】
0004998287.tif 000043
【図２７】
0004998287.tif 000044
【図２８】
0004998287.tif 000045
【図２９】
0004998287.tif 000046
【図３０】
0004998287.tif 000047
【図３１】
0004998287.tif 000048
【図３２】
0004998287.tif 000049
【図３３】
0004998287.tif 000050
【図３４】
0004998287.tif 000051
【図３５】
0004998287.tif 000052