説明

画像処理装置および方法、プログラム

【課題】2パス構成の処理において、1パス目と2パス目の画像が異なっていても、画質劣化を防ぐことができるようにする。
【解決手段】輝度生成部21からのY信号および入力画像は、1パス目では輝度域情報算出部22およびLPF24に出力されるが、2パス目では補正処理部51および除算部27に入力される。補正処理部51は、2パス目で輝度生成部21からのY信号および入力画像を用いて、画角の補正および明るさの補正を行い、階調圧縮処理部26に出力する。階調圧縮処理部26は、輝度域情報メモリ23の輝度域情報を参照し、中間メモリ25の中間データを拡大しながら、補正処理部51により補正された画像の階調を圧縮する処理を行う。本発明は、例えば画像の階調補正処理を行う画像処理装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置および方法、プログラムに関し、特に、2パス構成の処理において、1パス目と2パス目の画像が異なっても、画質劣化を防ぐことができるようにした画像処理装置および方法、プログラムに関する。
【背景技術】
【0002】
ある種の画像信号処理では、画像中のあるピクセルを処理する際に、その周囲の広い範囲の情報を用いる。例えば、HDR(ハイダイナミックレンジ)圧縮処理に用いるバイラテラルフィルタの計算においては、処理ピクセルを中心に、半径数百ピクセルの範囲の情報を用いて処理が行われる。
【0003】
こういった広範囲の情報を用いる画像信号処理は、ピクセル毎の計算コストが高くなり過ぎる傾向がある。すなわち、ハードウエアの規模や、ソフトウエアの計算時間が増大するため、1ステップで処理を行うことは困難である。
【0004】
そこで、広範囲の情報を用いる信号処理を実装する際には、計算コストを減らすための工夫として、処理を複数のステップに分割する構成が採用されることが多い。例えば、バイラテラルフィルタの計算においては、広い範囲の情報から代表値の組を計算して中間データを作成するステップと、その代表値を用いてピクセル毎の処理を行うステップの2つのステップに処理を分割することで、計算コストを低減している。
【0005】
なお、これらの2ステップ構成については、特許文献1および2などに記載されており、バイテラルフィルタについては、特許文献3および非特許文献1などに記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2001−275015号公報
【特許文献2】特開2004−221645号公報
【特許文献3】特開2009−177558号公報
【非特許文献】
【0007】
【非特許文献1】S.Paris,f.Durand,”A Fast Approximation of the Bilateral Filter using a Signal Processing Approach.”, Proc. European Conf. Computer Vision, 2006.
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、処理を分割して計算コストを低減する場合、各ステップの入力信号の特性がそろっていないと、処理に誤差が生じる。これは、入力の画像が各ステップ間で変化することで、「ある画像に対する一連の処理を、複数のステップに分割する」という条件が崩れるためである。
【0009】
誤差による画像劣化は、主にリアルタイムの動画処理システムで生じることが多い。動画処理システムでは、各画像フレームの信号処理が連続して行われる。処理が連続しているため、ある画像に対して一旦、中間データを作成した後に、再度その画像を処理しなおすことが困難である。
【0010】
そこで、動画処理においては、補正には、前のフレームで作成した中間データを用いるように構成される。これにより、補正処理と中間データの作成が同時に行えるようになる。しかしながら、前のフレームの中間データを用いたことによって、上述した誤差による画質劣化が発生してしまう。
【0011】
静止画処理のシステムにおいても、上述した誤差による画質劣化が発生する場合がある。例えば、特許文献3に記載されるように、複数ステップの処理である階調補正処理の前に、感度ゲイン処理やホワイトバランス処理が行われる信号処理システムがある。このようなシステムにおいて、各ステップ間で、感度ゲイン処理やホワイトバランス処理のパラメータが異なると、階調補正処理に入力される信号が各ステップで異なってしまう。
【0012】
このような静止画処理においては、パラメータが変わった後に第1ステップの処理を再度行うことにより、誤差を無くすことが可能である。しかしながら、第1ステップの処理のやり直しには、処理時間がかかってしまう。
【0013】
また、各ステップ間で入力信号の特性に差異がある場合でも、特性によって画質への影響は異なる。例えば、上述した階調補正処理においては、処理フレーム間の差異のうち、画像中の小さな領域での変化については、画質への影響は少ない。これに対して、処理フレーム間の差異のうち、特に画像の大きな領域で起こる変化(例えば、撮影画像の露出(画面全体の明るさ)や画角(画面全体の位置)の特性など)は、計算誤差が大きくなりやすく、画質を劣化させやすい。
【0014】
本発明は、このような状況に鑑みてなされたものであり、画質劣化を防ぐことができるものである。
【課題を解決するための手段】
【0015】
本発明の第1の側面の画像処理装置は、N(Nは自然数)次元の情報を有する画像信号を処理する画像処理装置において、入力される第1の画像信号から代表値を算出する代表値算出手段と、前記第1の画像信号の次に入力される第2の画像信号に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と前記第2の画像信号との位相の変化を補正する補正手段と、前記補正手段により前記補間フィルタにおける前記位相の変化が補正された前記第2の画像信号を用いて、前記代表値算出手段により算出された前記代表値に対して、前記補間フィルタにより補間処理を行う補間手段とを備える。
【0016】
前記画像信号は、3次元の情報を有し、前記3次元の情報のうちの2次元の情報は、座標情報であり、前記3次元の情報のうちの1次元の情報は、画素のレベル情報である。
【0017】
前記補正手段は、前記位相の変化の1つとして、前記第1の画像信号と前記第2の画像信号との前記座標情報の変化を補正する座標補正手段と、前記位相の変化の1つとして、前記第1の画像信号と前記第2の画像信号との前記レベル情報の変化を補正するレベル補正手段とを備えることができる。
【0018】
前記座標情報の変化量を算出する座標変化量算出手段をさらに備えることができる。
【0019】
前記レベル情報の変化量を算出するレベル変化量算出手段をさらに備えることができる。
【0020】
前記代表値算出手段は、前記代表値として、ブロックヒストグラムとブロック積算値を算出し、前記補間手段は、前記座標情報と前記レベル情報の変化が補正された前記第2の画像信号を用いて、前記ブロックヒストグラムと前記ブロック積算値に対して、前記補間フィルタにより補間処理を行うことができる。
【0021】
本発明の第1の側面の画像処理方法は、N(Nは自然数)次元の情報を有する画像信号を処理し、代表値算出手段と、補正手段と、補間手段とを備える画像処理装置の画像処理方法において、前記代表値算出手段が、入力される第1の画像信号から代表値を算出し、前記補正手段が、前記第1の画像信号の次に入力される第2の画像信号に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と前記第2の画像信号との位相の変化を補正し、前記補間手段が、前記補間フィルタにおける前記位相の変化が補正された前記第2の画像信号を用いて、算出された前記代表値に対して、前記補間フィルタにより補間処理を行う。
【0022】
本発明の第1の側面のプログラムは、N(Nは自然数)次元の情報を有する画像信号を処理する画像処理装置のコンピュータを、入力される第1の画像信号から代表値を算出する代表値算出手段と、前記第1の画像信号の次に入力される第2の画像信号に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と前記第2の画像信号との位相の変化を補正する補正手段と、前記補正手段により前記補間フィルタにおける前記位相の変化が補正された前記第2の画像信号を用いて、前記代表値算出手段により算出された前記代表値に対して、前記補間フィルタにより補間処理を行う補間手段として機能させる。
【0023】
本発明の第2の側面の画像処理装置は、N(Nは自然数)次元の情報を有する画像信号を処理する画像処理装置において、入力される第1の画像信号から代表値を算出する代表値算出手段と、前記代表値算出手段により算出された前記代表値に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と、前記第1の画像信号の次に入力される第2の画像信号との位相の変化を補正する補正手段と、前記第2の画像信号を用いて、前記補正手段により前記補間フィルタにおける前記位相の変化が補正された前記代表値に対して、前記補間フィルタにより補間処理を行う補間手段とを備える。
【0024】
前記画像信号は、3次元の情報を有し、前記3次元の情報のうちの2次元の情報は、座標情報であり、前記3次元の情報のうちの1次元の情報は、画素のレベル情報である。
【0025】
前記補正手段は、前記代表値に対して、前記位相の変化の1つとして、前記第1の画像信号と前記第2の画像信号との前記座標情報の変化を補正する座標補正手段と、前記代表値に対して、前記位相の変化の1つとして、前記第1の画像信号と前記第2の画像信号との前記レベル情報の変化を補正するレベル補正手段とを備えることができる。
【0026】
前記座標情報の変化量を算出する座標変化量算出手段をさらに備えることができる。
【0027】
前記レベル情報の変化量を算出するレベル変化量算出手段をさらに備えることができる。
【0028】
前記代表値算出手段は、前記代表値として、ブロックヒストグラムとブロック積算値を算出し、前記座標補正手段は、前記ブロックヒストグラムと前記ブロック積算値に対して、前記第1の画像信号と前記第2の画像信号との前記座標情報の変化を補正し、前記レベル補正手段は、前記ブロックヒストグラムと前記ブロック積算値に対して、前記第1の画像信号と前記第2の画像信号との前記レベル情報の変化を補正し、前記補間手段は、前記第2の画像信号を用いて、前記座標情報と前記レベル情報の変化が補正された前記ブロックヒストグラムと前記ブロック積算値に対して、前記補間フィルタにより補間処理を行うことができる。
【0029】
本発明の第2の側面の画像処理方法は、N(Nは自然数)次元の情報を有する画像信号を処理し、代表値算出手段と、補正手段と、補間手段とを備える画像処理装置の画像処理方法において、前記代表値算出手段が、入力される第1の画像信号から代表値を算出し、前記補正手段が、算出された前記代表値に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と、前記第1の画像信号の次に入力される第2の画像信号との位相の変化を補正し、前記補間手段が、前記第2の画像信号を用いて、前記補間フィルタにおける前記位相の変化が補正された前記代表値に対して、前記補間フィルタにより補間処理を行う。
【0030】
本発明の第2の側面のプログラムは、N(Nは自然数)次元の情報を有する画像信号を処理する画像処理装置のコンピュータを、入力される第1の画像信号から代表値を算出する代表値算出手段と、前記代表値算出手段により算出された前記代表値に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と、前記第1の画像信号の次に入力される第2の画像信号との位相の変化を補正する補正手段と、前記第2の画像信号を用いて、前記補正手段により前記補間フィルタにおける前記位相の変化が補正された前記代表値に対して、前記補間フィルタにより補間処理を行う補間手段として機能させる。
【0031】
本発明の第1の側面においては、入力される第1の画像信号から代表値が算出され、前記第1の画像信号の次に入力される第2の画像信号に対して、N(Nは自然数)次元の情報を補間する補間フィルタにおける前記第1の画像信号と前記第2の画像信号との位相の変化が補正される。そして、前記補間フィルタにおける前記位相の変化が補正された前記第2の画像信号を用いて、算出された前記代表値に対して、前記補間フィルタにより補間処理が行われる。
【0032】
本発明の第2の側面においては、入力される第1の画像信号から代表値が算出され、算出された前記代表値に対して、N(Nは自然数)次元の情報を補間する補間フィルタにおける前記第1の画像信号と、前記第1の画像信号の次に入力される第2の画像信号との位相の変化が補正される。そして、前記第2の画像信号を用いて、前記補間フィルタにおける前記位相の変化が補正された前記代表値に対して、前記補間フィルタにより補間処理が行われる。
【0033】
なお、上述の画像処理装置は、独立した装置であっても良いし、1つの画像処理装置を構成している内部ブロックであってもよい。
【発明の効果】
【0034】
本発明によれば、2パス構成の処理において、1パス目と2パス目の画像が異なっても、画像劣化を防ぐことができる。
【図面の簡単な説明】
【0035】
【図1】従来の画像処理装置の構成と1パス目の動作を示すブロック図である。
【図2】従来の画像処理装置の構成と2パス目の動作を示すブロック図である。
【図3】本発明を適用した画像処理装置の第1の構成例を示すブロック図である。
【図4】本発明を適用した画像処理装置の第2の構成例を示すブロック図である。
【図5】本発明を適用したデジタルカメラの構成例を示すブロック図である。
【図6】図5のDSPの内部のプロセッサが、所定のプログラムを実行することにより実現される機能の構成の例を示すブロック図である。
【図7】図6の階調補正処理部の機能の構成例を示すブロック図である。
【図8】図7の輝度階調補正部の機能の構成例を示すブロック図である。
【図9】図8の加重積和部の機能の構成例を示すブロック図である。
【図10】図5のデジタルカメラにおける画像処理について説明するフローチャートである。
【図11】図10のステップS114の階調補正処理を説明するフローチャートである。
【図12】図10のステップS114の階調補正処理を説明するフローチャートである。
【図13】トーンカーブを説明する図である。
【図14】図11のステップS150の信号レベルの補正処理を説明するフローチャートである。
【図15】図11のステップS151の大局輝度値算出処理について説明するフローチャートである。
【図16】輝度重み関数について説明する図である。
【図17】図15のステップS212の座標補正処理について説明するフローチャートである。
【図18】図10のステップS119の信号レベルの変化量の判定処理について説明するフローチャートである。
【図19】図10のステップS120の座標の変化量の判定処理について説明するフローチャートである。
【図20】図7の輝度階調補正部の機能の他の構成例を示すブロック図である。
【図21】図20の加重積和部の機能の構成例を示すブロック図である。
【図22】図20の輝度階調補正部の場合の図5のデジタルカメラにおける画像処理について説明するフローチャートである。
【図23】図22のステップS314の階調補正処理を説明するフローチャートである。
【図24】図22のステップS314の階調補正処理を説明するフローチャートである。
【図25】図23のステップS350の大局輝度値算出処理について説明するフローチャートである。
【図26】図22のステップS321の輝度域情報の補正処理について説明するフローチャートである。
【図27】図22のステップS322の再標本化処理について説明するフローチャートである。
【図28】図27のステップS411の空間の再標本化処理について説明するフローチャートである。
【図29】図27のステップS412の信号レベルの再標本化処理について説明するフローチャートである。
【図30】図22のステップS323の輝度情報の補正処理について説明するフローチャートである。
【図31】本発明を適用した、バイテラルフィルタ処理を用いる画像処理装置の第1の構成例を示すブロック図である。
【図32】本発明を適用した、バイテラルフィルタ処理を用いる画像処理装置の第2の構成例を示すブロック図である。
【図33】本発明を適用した、一般的な画像処理装置の第1の構成例を示すブロック図である。
【図34】本発明を適用した、一般的な画像処理装置の第2の構成例を示すブロック図である。
【図35】コンピュータのハードウエアの構成例を示すブロック図である。
【発明を実施するための形態】
【0036】
以下、図を参照して本発明の実施の形態について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(本発明の概要)
2.第2の実施の形態(デジタルビデオカメラの例)
3.第3の実施の形態(バイラテラルフィルタ処理の例)
4.第4の実施の形態(一般化モデルの例)
【0037】
<1.第1の実施の形態>
[発明の概要]
まず、図1乃至図4を参照して、本発明の概要を説明する。図1および図2の例においては、本発明と比較するために、従来の画像処理装置1の構成例が示されている。なお、図1の例においては、1パス目に動作する部分が実線で示され、動作しない部分が破線で示されている。また、図2の例においては、2パス目に動作する部分が実線で示され、動作しない部分が破線で示されている。
【0038】
画像処理装置1は、信号処理部11および階調補正処理部12により構成されている。信号処理部11は、入力画像に対して所定の信号処理を行い、処理後の画像を階調補正処理部12に出力する。
【0039】
階調補正処理部12は、信号処理部11からの入力画像に対して、2パス処理で、階調補正処理を行い、出力画像を後段に出力する。すなわち、階調補正処理部12は、1パス目で、入力画像から中間データを作成することにより標本化を行い、2パス目で、中間データに対して補間処理を行い、階調補正処理を行う。
【0040】
階調補正処理部12は、輝度生成部21、輝度域情報算出部22、輝度域情報メモリ23、LPF(ローパスフィルタ)24、中間メモリ25、階調圧縮処理部26、除算部27、および乗算部28により構成されている。信号処理部11からの入力画像は、輝度生成部21および乗算部28に入力される。
【0041】
輝度生成部21は、入力画像のRGBからY信号(輝度信号)を生成し、生成したY信号および入力画像を、1パス目では、輝度域情報算出部22およびLPF24に出力する。また、輝度生成部21は、生成したY信号および入力画像を、2パス目では、階調圧縮処理部26および除算部27に出力する。
【0042】
輝度域情報算出部22は、1パス目で、1フレーム分の画像の輝度値を見て、階調補正の特性を決めるための画像の統計情報である輝度域情報を算出し、算出した輝度域情報を輝度域情報メモリ23に格納する。輝度域情報メモリ23は、輝度域情報算出部22からの輝度域情報を一時的に記録し、階調圧縮処理部26に供給する。
【0043】
LPF24は、1パス目で、1フレーム分の画像の輝度値に対して、フィルタ処理を行い、フィルタ処理結果の中間データを、中間メモリ25に格納する。フィルタ処理としては、例えば、輝度値を間引いて、それを平滑化する処理が行われる。すなわち、中間データは、間引かれているので、入力画像よりも画素数が少なく、代表値ともいえる。中間メモリ25は、LPF24からの中間データを一時的に記録し、階調圧縮処理部26に供給する。
【0044】
階調圧縮処理部26は、2パス目で、輝度域情報メモリ23の輝度域情報を参照し、中間メモリ25の中間データを拡大しながら、輝度生成部21からの入力画像の階調を圧縮する処理を行う。すなわち、階調圧縮処理部26においては、補間フィルタにより中間データを補間する処理が行われる。階調圧縮処理部26は、処理後のデータを、除算部27に出力する。
【0045】
除算部27は、2パス目で、輝度生成部21からの階調圧縮前の輝度値と、階調圧縮処理部26からの階調圧縮後の輝度値の比(ゲイン)を求め、求めたゲインを乗算部28に供給する。乗算部28は、2パス目で、信号処理部11からの入力画像のRGBに、除算部27からのゲインを乗算することにより、階調圧縮された出力画像を、後段に出力する。
【0046】
ここで、原理的に、1パス目の画像と2パス目の画像が異なってしまうと、計算誤差で性能が劣化してしまう。具体的には、2パス目の画像において、1パス目の画像から画角の変化があると、計算誤差により、フィルタの空間特性がシフトしてしまい、出力画像に誤った補正による劣化(例えば、後光が差すような症状であるHALO)が出てしまう。
【0047】
また、2パス目の画像において、1パス目の画像から輝度の変化があると、計算誤差により、フィルタの出力レベルがシフトしてしまい、階調圧縮処理の特性がずれて、出力画像のレベルが期待通りにならない。
【0048】
このフレーム間における輝度や画角の変化は、階調圧縮処理部26における補間フィルタの位相の変化といえる。これらに対応するために、本発明においては、図3および図4に示されるように、2パス目において画角および輝度の誤差補正、すなわち、補間フィルタの位相の補正が行われる。
【0049】
図3は、本発明を適用した画像処理装置の第1の構成例を示すブロック図である。図3の画像処理装置31は、階調補正処理部12が、階調補正処理部41に入れ替わった点が図1の画像処理装置1と異なり、信号処理部11を備えている点が図1の画像処理装置1と共通している。
【0050】
また、階調補正処理部41は、補正処理部51が追加された点だけが、図1の階調補正処理部12と異なっている。そして、階調補正処理部41は、輝度生成部21、輝度域情報算出部22、輝度域情報メモリ23、LPF24、中間メモリ25、階調圧縮処理部26、除算部27、および乗算部28を備える点は、図1の階調補正処理部12と共通している。
【0051】
すなわち、輝度生成部21からのY信号および入力画像は、1パス目では、輝度域情報算出部22およびLPF24に出力されるが、2パス目では、補正処理部51および除算部27に入力される。
【0052】
補正処理部51は、2パス目で、輝度生成部21からのY信号および入力画像を用いて、画角の補正および明るさの補正を行い、画角および明るさが補正されたY信号および入力画像を、階調圧縮処理部26に出力する。具体的には、補正処理部51は、2パス目の画像の座標を、1パス目の画像の座標に変換することで、画角を補正する。また、補正処理部51は、2パス目の画像のレベル(明るさ)を、1パス目の画像のレベルに変換することで、画角を補正する。すなわち、補正処理部51においては、階調圧縮処理部26における補間フィルタの位相が補正される。
【0053】
階調圧縮処理部26は、2パス目で、輝度域情報メモリ23の輝度域情報を参照し、中間メモリ25の中間データを拡大しながら、補正処理部51により画角と明るさが補正された画像の階調を圧縮する処理を行い、処理後のデータを、除算部27に出力する。
【0054】
以上のように、1パス目の画像と2パス目の画像の画角および輝度が異なっていたのが補正されるので、階調圧縮処理部26における計算誤差が抑制され、性能の劣化を防ぐことができる。
【0055】
図4は、本発明を適用した画像処理装置の第2の構成例を示すブロック図である。図4の画像処理装置61は、階調補正処理部12が、階調補正処理部71に入れ替わった点が図1の画像処理装置1と異なり、信号処理部11を備えている点が図1の画像処理装置1と共通している。
【0056】
また、階調補正処理部71は、補正処理部81、輝度域情報メモリ82、補正処理部83、および中間メモリ84が追加された点が、図1の階調補正処理部12と異なっている。そして、階調補正処理部71は、輝度生成部21、輝度域情報算出部22、輝度域情報メモリ23、LPF24、中間メモリ25、階調圧縮処理部26、除算部27、および乗算部28を備える点は、図1の階調補正処理部12と共通している。
【0057】
すなわち、輝度域情報メモリ23は、輝度域情報算出部22からの輝度域情報を一時的に記録し、補正処理部81に供給する。中間メモリ25は、LPF24からの中間データを一時的に記録し、補正処理部83に供給する。
【0058】
補正処理部81は、2パス目の画像のレベルに合わせて、輝度域情報メモリ23からの輝度域情報を補正し、補正した輝度域情報を、輝度域情報メモリ82に格納する。輝度域情報メモリ82は、補正処理部81により補正された輝度域情報を一時的に記録し、階調圧縮処理部26に供給する。
【0059】
補正処理部83は、2パス目の画像の座標(位置)およびレベルに合わせて、中間メモリ25からの中間データ(代表値)のサンプリング位置をずらす(再標本化する)ことにより補正し、補正した中間データを、中間メモリ84に格納する。中間メモリ84は、補正処理部83により補正された中間データを一時的に記録し、階調圧縮処理部26に供給する。
【0060】
すなわち、補正処理部81においては、階調圧縮処理部26における補間フィルタの位相の1要素であるレベルが補正され、補正処理部83においては、階調圧縮処理部26における補間フィルタの位相の1要素である座標が補正される。
【0061】
階調圧縮処理部26は、2パス目で、輝度域情報メモリ82の補正された輝度域情報を参照し、中間メモリ84の補正された中間データを拡大しながら、輝度生成部21からの入力画像の階調を圧縮する処理を行い、処理後のデータを、除算部27に出力する。
【0062】
以上のように、1パス目の画像と2パス目の画像の画角および輝度が異なっていたのが補正されるので、階調圧縮処理部26における計算誤差が抑制され、性能の劣化を防ぐことができる。
【0063】
なお、上述した図3の補正処理部51、並びに図4の補正処理部81および83における補正量の決定方法としては、画角については、ジャイロセンサの出力から計算したり、画像解析で入力画像の動きベクトルを算出するなどして、その補正量が決定される。また、明るさについては、フレーム間での、露出制御の変化量などから算出することで、その補正量が決定される。
【0064】
以下、本発明を実現するための、さらに具体的な構成について説明する。なお、上述した1パス目および2パス目は、適宜、第1のステップおよび第2のステップとも称する。
【0065】
<2.第2の実施の形態>
[デジタルカメラの構成例]
図5は、本発明を適用した画像処理装置としてのデジタルビデオカメラの構成例を示すブロック図である。デジタルビデオカメラ101は、レンズ111、絞り112、画像センサ113、相関2重サンプリング回路(CDS)114、A/D(Analog/Digital)コンバータ115、DSP(Digital Signal Processor)ブロック116、タイミングジェネレータ(TG)117、LCD(Liquid Crystal Display)ドライバ118、LCD119、CODEC(Compression/Decompression)120、メモリ121、CPU(Central Processing Unit)122、入力デバイス123、ジャイロセンサ124、およびバス125から構成される。なお、DSPブロック116は、信号処理用のプロセッサ(例えば、SDP)と画像データを保持するRAM(Random Access Memory)などのメモリなどにより構成されるブロックである。デジタルビデオカメラ101は、プロセッサが所定のプログラムを実行することにより、後述する画像処理を行う。また、以下、DSPブロック116を、単にDSP116と呼ぶ。
【0066】
レンズ111および絞り112などからなる光学系を通過した被写体からの入射光は、まず画像センサ113の撮像面上の各受光素子に到達し、受光素子による光電変換により電気信号に変換される。画像センサ113から出力された電気信号は、相関2重サンプリング回路114によってノイズが除去され、A/Dコンバータ115によってデジタル化された後、デジタル化された画像データがDSP116内のメモリに一時的に格納される。タイミングジェネレータ117は、一定のフレームレートにより画像データが取り込まれるように、相関2重サンプリング回路114、A/Dコンバータ115、および、DSP116により構成される信号処理系を制御する。すなわち、DSP116には、一定のフレームレートで画像データのストリームが供給される。
【0067】
なお、画像センサ113は、一般的なCCD(Charge Coupled Device)などの画像センサよりダイナミックレンジが広く、飽和したり、ノイズを発生させたりすることなく、被写体の暗い部分から明るい部分までを撮像することができる。従って、A/Dコンバータ115は、入力される電気信号を、通常のデジタルビデオカメラの階調数よりも多い階調数の画像データに変換する。すなわち、通常のデジタルビデオカメラの階調数とは、例えば、10乃至12ビット程度のデータにより表現できる階調数であり、それよりも多い階調数とは、例えば、14乃至16ビット程度のデータにより表現できる階調数である。
【0068】
DSP116は、画像データのダイナミックレンジが、例えばLCD119が表示可能なダイナミックレンジになるように、後述する画像処理を画像データに施した後、画像処理を施した画像データを、必要に応じて、LCDドライバ118またはCODEC120に供給する。
【0069】
LCDドライバ118は、DSP116から供給される画像データをアナログの画像信号に変換する。LCDドライバ118は、デジタルビデオカメラのファインダであるLCD119にアナログの画像信号を供給し、画像信号に基づく画像を表示させる。
【0070】
CODEC120は、DSP116から供給される画像データを所定の方式により符号化し、符号化した画像データを、半導体、磁気記録媒体、光磁気記録媒体、光記録媒体などよりなるメモリ121に記録させる。
【0071】
CPU122は、例えば、ユーザがシャッタボタン等の操作ボタンなどにより構成される入力デバイス123を操作することにより入力された指令などに基づいて、デジタルビデオカメラの全体の処理を制御する。なお、DSP116、タイミングジェネレータ117、CODEC120、メモリ121、LCD119、CPU122、および入力デバイス123は、バス125を介して相互に接続されている。また、CPU122は、詳しくは図18や図19を参照して後述するが、フレーム間での画角の変化や座標の変化を計算し、計算した変化量を、DSP116に供給することなども行う。
【0072】
ジャイロセンサ124は、デジタルカメラの傾きを示す情報、例えば速度、角度、角速度、加速度、磁気を検出し、その検出情報を、バス125を介して、CPU122やDSP116などに出力する。
【0073】
図6は、DSP116の内部のプロセッサ(演算ユニット)が、所定のプログラムを実行することにより実現される機能の構成の例を示すブロック図である。DSP116の内部のプロセッサが所定のプログラムを実行することにより、ホワイトバランス処理部151、デモザイク処理部152、階調補正処理部153、ガンマ補正処理部154、およびYC変換処理部155を含む機能が実現される。なお、図6の例において、階調補正処理部153が、図3の階調補正処理部41または図4の階調補正処理部71に対応している。
【0074】
ホワイトバランス処理部151は、A/Dコンバータ115によりA/D変換された、動画像などの画像データであるモザイク画像を取得する。モザイク画像は、R,G,Bのうちのいずれかの色成分に対応するデータが1つの画素に格納され、ベイヤー配列と呼ばれる色配列に従って各画素が配置されている画像であり、RAWデータとも呼ばれている。
【0075】
ホワイトバランス処理部151は、取得したモザイク画像の各画素の画素値に適切な係数をかけることにより、被写体の無彩色の部分の色バランスが実際に無彩色となるように、モザイク画像のホワイトバランスを調整する。ホワイトバランス処理部151は、ホワイトバランスを調整したモザイク画像をデモザイク処理部152に供給する。なお、以下、ホワイトバランスが調整されたモザイク画像をMwとする。
【0076】
デモザイク処理部152は、ホワイトバランス処理部151から供給されたモザイク画像Mwに対して、1つの画素がR,G,B成分を全て有するようにするデモザイク処理を施す。これにより、R,G,Bの3つの色成分にそれぞれ対応するR画像、G画像、B画像の3つの画像データが生成される。デモザイク処理部152は、生成したR画像、G画像、B画像の3つの画像データを階調補正処理部153に供給する。
【0077】
なお、以下、R画像、G画像、B画像の3つの画像データをまとめてRGB画像とも称する。また、以下、モザイク画像の画素位置pにおける画素値をM(p)とする。さらに、以下、デモザイク処理が施された画像データの画素位置pにおける画素値を[R w(p), G w(p), B w(p)]とする。ここで、R w(p)はR成分の画素値であり、G w(p)はG成分の画素値であり、B w(p)はB成分の画素値である。
【0078】
階調補正処理部153は、RGB画像に階調補正処理を施し、階調補正処理を施したRGB画像をガンマ補正処理部154に供給する。その際、階調補正処理部153は、第1のステップで入力される信号から中間データ(代表値)を作り、第2のステップでその中間データに対して補間処理を行うことで、階調補正処理を行う。なお、以下、階調補正処理が施された画像データの画素位置pにおける画素値を[R u(p), G u(p), B u(p)]とする。ここで、R u(p)はR成分の画素値であり、G u(p)はG成分の画素値であり、B u(p)はB成分の画素値である。
【0079】
ガンマ補正処理部154は、階調変換されたRGB画像にガンマ補正を施す。ガンマ補正処理部154は、ガンマ補正を施したRGB画像をYC変換処理部155に供給する。なお、以下、ガンマ補正が施された画像データの画素位置pにおける画素値を[R uγ(p), G uγ(p), B uγ(p)]とする。ここで、R uγ(p)はR成分の画素値であり、G uγ(p)はG成分の画素値であり、B uγ(p)はB成分の画素値である。
【0080】
YC変換処理部155は、ガンマ補正が施されたRGB画像に対して、YCマトリックス処理およびクロマ成分に対する帯域制限を行うことにより、輝度成分(Y成分)により構成されるY画像、および、色差成分(CbまたはCr成分)により構成されるC画像を生成する。YC変換処理部155は、生成したY画像およびC画像を、必要に応じて、LCDドライバ118またはCODEC120に供給する。なお、以下、YC変換処理部155から出力される画像データの画素位置pにおける画素値を[Y(p), C(p)]とする。ここで、Y(p)はY画像における輝度成分の値であり、C(p)はC画像における色差成分の値である。また、以下、C画像のCb成分をCb(p)と称し、C画像のCr成分をCr(p)と称する。
【0081】
図7は、階調補正処理部153の機能の構成例を示すブロック図である。階調補正処理部153は、輝度算出部181、非線形変換部182、輝度階調補正部183、非線形変換部184−1乃至非線形変換部184−3、階調補正部185−1乃至階調補正部185−3、および非線形逆変換部186−1乃至非線形逆変換部186−3から構成される。
【0082】
なお、図7の例において、輝度算出部181は、図3および図4の輝度生成部21に対応している。輝度階調補正部183は、図3および図4の階調補正処理部41および71における輝度生成部21、除算部27、および乗算部28以外の構成に対応している。階調補正部185−1乃至階調補正部185−3は、図3および図4の除算部27および乗算部28に対応している。実際には、階調補正部185−1乃至階調補正部185−3においては、対数変換が用いられているので、除算および乗算の代わりに、減算および加算が行われている。
【0083】
輝度算出部181は、デモザイク処理部152から供給されたRGB画像の画素値Rw(p),Gw(p),Bw(p)から、その画素位置に対応する輝度成分の値(輝度値L(p))を算出し、非線形変換部182に供給する。非線形変換部182は、輝度算出部181からの輝度値L(p)を非線形変換し、その結果として得られた輝度値L(nl)(p)を、輝度階調補正部183および階調補正部185−1乃至階調補正部185−3に供給する。
【0084】
輝度階調補正部183は、非線形変換部182からの輝度値L(nl)(p)の階調を圧縮することで、輝度値L(nl)(p)の階調補正を行い、階調補正により得られた輝度値Lu(nl)(p)を階調補正部185−1乃至階調補正部185−3に供給する。
【0085】
非線形変換部184−1乃至非線形変換部184−3のそれぞれは、デモザイク処理部152から供給されたRGB画像の画素値Rw(p)、Gw(p)、およびBw(p)のそれぞれを非線形変換する。また、非線形変換部184−1乃至非線形変換部184−3のそれぞれは、非線形変換により得られた画素値R(nl)(p)、G(nl)(p)、およびB(nl)(p)のそれぞれを、階調補正部185−1乃至階調補正部185−3に供給する。なお、以下、非線形変換部184−1乃至非線形変換部184−3のそれぞれを個々に区別する必要のない場合、単に非線形変換部184と称する。
【0086】
階調補正部185−1乃至階調補正部185−3のそれぞれは、非線形変換部182からの輝度値L(nl)(p)と、輝度階調補正部183からの輝度値Lu(nl)(p)とを用いて、入出力の輝度値比に対応するように、非線形変換部184−1乃至非線形変換部184−3からの画素値R(nl)(p)、G(nl)(p)、およびB(nl)(p)のそれぞれを階調補正する。階調補正部185−1乃至階調補正部185−3のそれぞれは、階調補正により得られた画素値R u(nl)(p)、G u(nl)(p)、およびB u(nl) (p)のそれぞれを、非線形逆変換部186−1乃至非線形逆変換部186−3のそれぞれに供給する。
【0087】
非線形逆変換部186−1乃至非線形逆変換部186−3のそれぞれは、階調補正部185−1乃至階調補正部185−3からの画素値R u(nl)(p)、G u(nl)(p)、およびB u(nl) (p)のそれぞれに、非線形変換部184による非線形変換の逆変換となる非線形逆変換を施す。非線形逆変換部186−1乃至非線形逆変換部186−3のそれぞれは、非線形逆変換により得られた画素値Ru(p)、Gu(p)、およびBu(p)のそれぞれを、ガンマ補正処理部154に供給する。
【0088】
なお、以下、階調補正部185−1乃至階調補正部185−3のそれぞれを個々に区別する必要のない場合、単に階調補正部185と称する。また、以下、非線形逆変換部186−1乃至非線形逆変換部186−3のそれぞれを個々に区別する必要のない場合、単に非線形逆変換部186と称する。
【0089】
図8は、図7の輝度階調補正部183の機能の構成の例を示すブロック図である。輝度階調補正部183は、輝度域情報算出部211、輝度域情報メモリ212、ブロックヒストグラム算出部213、ブロックヒストグラムメモリ214、ブロック積分値算出部215、ブロック積分値メモリ216、信号レベル補正処理部217、加重積和部218、トーンカーブ算出部219、トーンカーブメモリ220、マッピング部221、マッピング部222、およびコントラスト補正部223から構成される。
【0090】
なお、図8の例において、輝度域情報算出部211は、図3の輝度域情報算出部22に対応し、輝度域情報メモリ212は、図3の輝度域情報メモリ23に対応している。また、ブロックヒストグラム算出部213およびブロック積分値算出部215は、図3のLPF24に対応し、ブロックヒストグラムメモリ214およびブロック積分値メモリ216は、図3の中間メモリ25に対応している。さらに、信号レベル補正処理部217は、図3の補正処理部51に対応し、加重積和部218乃至コントラスト補正部223は、図3の階調圧縮処理部26に対応している。
【0091】
輝度域情報算出部211、ブロックヒストグラム算出部213、およびブロック積分値算出部215は、RGB画像の広域的な情報を算出し、その情報を1フレームごとに更新する処理を行う。
【0092】
すなわち、輝度域情報算出部211は、非線形変換部182から供給された輝度値L(nl)(p)からなる1フレーム分の画像(以下、輝度画像と称する)の画素の輝度値のヒストグラムにおける暗輝度側および明輝度側の裾野の輝度値である裾野値を求め、それらの裾野値を輝度域情報として輝度域情報メモリ212に格納する。輝度域情報メモリ212は、輝度域情報算出部211から供給された輝度域情報を一時的に記録し、トーンカーブ算出部219に供給する。
【0093】
ブロックヒストグラム算出部213は、非線形変換部182から供給された輝度値L(nl)(p)からなる1フレーム分の輝度画像を、空間方向に複数のいくつかの空間ブロック(領域)に分割し、さらに空間ブロックを輝度方向に分割して輝度ブロックとする。ここで、輝度ブロックは、空間ブロック内の画素のうち、輝度ブロックに対して予め定められた輝度範囲内の輝度値を有する画素からなる。したがって、例えば空間ブロックをD個の輝度ブロックに分割する場合、輝度値の取り得る範囲が予めD個の範囲に分割されており、空間ブロック内の画素は、その輝度値がD個の範囲のいずれの範囲内の値であるかによって、D個の輝度ブロックのうちのいずれかに分類される。
【0094】
また、ブロックヒストグラム算出部213は、輝度画像を分割して得られる各輝度ブロックの画素の頻度値を求め、それらの頻度値をブロックヒストグラムとして、ブロックヒストグラムメモリ214に供給する。すなわち、ブロックヒストグラムは、各輝度ブロックに属す(分類された)画素数を示している。ブロックヒストグラムメモリ214は、ブロックヒストグラム算出部213から供給されたブロックヒストグラムを一時的に記録し、加重積和部218に供給する。
【0095】
ブロック積分値算出部215は、非線形変換部182から供給された輝度値L(nl)(p)からなる1フレーム分の輝度画像から、各輝度ブロックについて、輝度ブロックに属す画素の輝度値の積分値(総和)を算出し、算出された積分値をブロック積分値としてブロック積分値メモリ216に供給する。ブロック積分値メモリ216は、ブロック積分値算出部215から供給されたブロック積分値を一時的に記録し、加重積和部218に供給する。
【0096】
なお、これらの輝度域情報、ブロックヒストグラム、およびブロック積分値は、1フレーム分の輝度画像の代表値であり、上述してきた中間データに対応する。したがって、以下、適宜、中間データとも称する。この中間データとしての輝度域情報、ブロックヒストグラム、およびブロック積分値は、輝度域情報メモリ212、ブロックヒストグラムメモリ214、およびブロック積分値メモリ216に、輝度画像(RGB画像)の1フレーム分の時間だけ保持されて、1フレームごとに更新されることになる。
【0097】
また、中間データは、算出するのにほぼ1フレーム分の時間が必要とされるため、実際に生成された中間データが利用されるのは、次のフレームの画像情報が入力されたときとなる。したがって、信号レベル補正処理部217は、中間データが生成されるとき(第1のステップ)の画像の平均レベルと、中間データが利用されるとき(第2のステップ)の画像の平均レベルをそろえる補正処理を行う。
【0098】
第1のステップと第2のステップの間、すなわち、ステップ間で画像の平均レベルが変化する状況としては、例えば、ステップ間でカメラの露出制御が変化してしまう場合などがあげられる。露出が変化すると、それに応じて入力RGB信号や図7の輝度算出部181からの出力である輝度L(p)のレベルに乗算の偏差ΔGが乗る。このとき、信号レベル補正処理部217においては、非線形変換部182から供給された輝度値L(nl)(p)に対して、非線形空間での偏差ΔGを相殺する補正処理が行われる。このステップ間の偏差の量は、レベルの補正量の情報として、図5のCPU122などから供給される。
【0099】
偏差ΔGを相殺することで、加重積和部218以降の後段、およびマッピング部222に供給される信号のレベルが、平均的に第1のステップの処理時のレベルに合わせることができる。
【0100】
加重積和部218は、信号レベル補正処理部217により補正された輝度値L(nl)(p)と、ブロックヒストグラムメモリ214からのブロックヒストグラム、およびブロック積分値メモリ216からのブロック積分値とから、輝度値L(nl)(p)からなる輝度画像のごく低周波成分からなる画像(以下、大局輝度画像と称する)の輝度値である大局輝度値Ll(nl)(p)を算出する。
【0101】
すなわち、処理対象となっているフレームの時間的に1つ前のフレームの輝度画像(RGB画像)から求められた、ブロックヒストグラムおよびブロック積分値が用いられて、1つ前のフレームといまのフレームとの画像の平均レベルが補正された輝度値L(nl)(p)の画素の大局輝度値Ll(nl)(p)が算出される。ここで、大局輝度値とは、いわばRGB画像上の画素が属す物体領域の平均輝度に相当する情報、つまりその画素が含まれる物体領域の平均的な明るさを示す輝度値である。
【0102】
なお、以下、処理の対象となっている画素、例えば、輝度階調補正部183に供給された輝度値L(nl)(p)の画素を、処理対象画素とも称する。
【0103】
また、加重積和部218は、算出した大局輝度値Ll(nl)(p)を、トーンカーブ算出部219およびマッピング部221に供給する。
【0104】
トーンカーブ算出部219は、輝度域情報メモリ212からの輝度域情報と、加重積和部218からの大局輝度値Ll(nl)(p)とから、輝度値の階調を圧縮するために適用されるトーンカーブの形状を算出し、その算出結果をトーンカーブメモリ220に供給する。トーンカーブメモリ220は、トーンカーブ算出部219からのトーンカーブを記録し、記録しているトーンカーブをマッピング部221、マッピング部222、およびコントラスト補正部223に供給する。
【0105】
マッピング部221は、トーンカーブメモリ220に記録されているトーンカーブに基づいて、加重積和部218からの大局輝度値Ll(nl)(p)の階調を圧縮(補正)し、階調補正により得られた大局輝度値Lcl(nl)(p)をコントラスト補正部223に供給する。マッピング部222は、トーンカーブメモリ220に記録されているトーンカーブに基づいて、信号レベル補正処理部217により補正された輝度値L(nl)(p)の階調を圧縮(補正)し、階調補正により得られた輝度値Lc(nl)(p)をコントラスト補正部223に供給する。
【0106】
コントラスト補正部223は、マッピング部221からの大局輝度値Lcl(nl)(p)、マッピング部222からの輝度値Lc(nl)(p)、およびトーンカーブメモリ220に記録されているトーンカーブに基づいて、階調が圧縮された輝度値Lc(nl)(p)からなる輝度画像のコントラストを補正する。また、コントラスト補正部223は、コントラストの補正された輝度値Lu(nl)(p)を階調補正部185に供給する。
【0107】
すなわち、輝度階調補正部183は、2ステップ構成の輝度階調補正処理を行う構成となっている。この構成では、第1ステップの処理が、輝度域情報算出部211、ブロックヒストグラム算出部213、およびブロック積分値算出部215により行われ、その計算結果である中間データが、輝度域情報メモリ212、ブロックヒストグラムメモリ214、およびブロック積分値メモリ216にそれぞれ格納される。
【0108】
また、第2のステップの処理として、ブロックヒストグラムメモリ214およびブロック積分値メモリ216から中間データが読み出され、中間データに対して、加重積和部218により補間処理が行われる。そして、補間処理後の出力値が用いられて、マッピング部221および222、並びにコントラスト補正部223により階調が調整される。このとき、マッピング部221および222、並びにコントラスト補正部223で用いられるトーンカーブは、輝度域情報メモリ212の値を用いてトーンカーブ算出部219により算出され、トーンカーブメモリ220に格納されている。
【0109】
さらに、図8の構成においては、第2のステップの処理の前に、信号レベル補正処理部217においては、第1のステップ処理時の画像の平均レベルと、第2のステップの処理時の画像の平均レベルを合わせるための補正処理が行われている。これにより、加重積和部218以降の処理において、ステップ間に生じるずれが補正されたレベルが用いられる。
【0110】
図9は、図8の加重積和部218の機能の構成例を示すブロック図である。加重積和部218は、座標補正部231、座標補正部232、補間部233、補間部234、空間重み関数保持部235、積和部236、積和部237、輝度重み関数保持部238、および除算部239から構成される。
【0111】
ブロックヒストグラムメモリ214およびブロック積分値メモリ216には、第1のステップの処理結果として、画像の特徴量を3次元(空間の次元とレベルの次元)で疎に標本化した値(代表値)が格納されている。この加重積和部218においては、第2のステップの処理として、ブロックヒストグラムメモリ214およびブロック積分値メモリ216に格納された疎な代表値を、補間フィルタにより補間伸長して、密な信号を得ることが目的とされる。そして、信号レベル補正処理部217により補正されたレベルや、座標補正部231および座標補正部232により補正された座標は、この補間フィルタの位相である。
【0112】
座標補正部231および座標補正部232は、その第1のステップの処理時の画像の位置と、第2のステップの処理時の画像の位置をそろえる補正処理を行う。具体的には、座標補正部231および座標補正部232には、信号レベル補正処理部217によりレベルが補正された輝度値L(nl)(p)の画素、つまり処理対象画素の位置が入力される。
【0113】
したがって、座標補正部231および座標補正部232は、入力される画素の座標信号を、第2のステップの座標系から、第1のステップの座標系に変換することにより、補正処理を行う。これにより、加重積和部218以降の処理において、ステップ間に生じるずれが補正された座標が用いられる。この処理は、例えば、第1のステップの座標p1から、第2のステップの座標pc2の間の変化が、アフィン変換行例Aを用いて、pc2=A・p1と表されるときには、inv(A)・pc2を出力する処理となる。ここで、inv(A)は、Aの逆行列を表している。なお、ステップ間の座標の変化量は、図5のCPU122などから供給される。
【0114】
座標補正部231および座標補正部232により座標が補正された輝度値L(nl)(p)の画素、つまり処理対象画素の位置は、それぞれ、補間部233および補間部234に供給される。すなわち、この補正処理で補正されるのは、補間部233および補間部234に供給される座標信号のみ(相対座標のみ)であるので、第2のステップの画像自体の位置は変更されない。したがって、座標を補正したことによる、他の信号処理ブロックへの影響は起こらない。
【0115】
補間部233および補間部234は、パラメータとして、空間重み関数保持部235に保持されている空間重み関数ルックアップテーブルと、座標補正部231および座標補正部232により座標が補正された入力画像の位置情報を用いて、空間次元の補間伸長処理をそれぞれ行う。
【0116】
具体的には、補間部233は、輝度画像上における座標補正部231から供給された輝度値L(nl)(p)の画素、つまり処理対象画素の位置に対する、輝度ブロックの輝度範囲の中央値ごとの補間されたブロック積分値を求めて輝度積分値とし、積和部236に供給する。すなわち、輝度ブロック内の画素の取り得る輝度値の範囲の中央値をλとすると、補間部233は、処理対象画素の空間方向近傍の4×4個の空間ブロックから分割された各輝度ブロックのうち、中央値がλである16個の輝度ブロックのブロック積分値のそれぞれに対して補間係数を乗算し、補間係数が乗算されたブロック積分値の和を求めることで、中央値λに対する輝度積分値を求める。
【0117】
換言すれば、補間部233は、処理対象画素近傍の輝度ブロックのブロック積分値を用いた補間処理を行うことにより、各中央値λに対する輝度積分値を求める。これにより、中央値λごとのD個の輝度積分値が求められることになる。なお、各ブロック積分値に乗算される補間係数は、処理対象画素の位置と、その処理対象画素近傍の空間ブロックとの相対位置関係に基づいて、空間重み関数保持部235に保持されている空間重み関数ルックアップテーブルから読み出される。
【0118】
同様に、補間部234は、輝度画像上における座標補正部232から供給された輝度値L(nl)(p)の画素、つまり処理対象画素の位置に対する、輝度ブロックの輝度範囲の中央値ごとの補間されたブロックヒストグラムを求めて輝度ヒストグラムとし、積和部237に供給する。すなわち、補間部234は、処理対象画素の空間方向近傍の4×4個の空間ブロックから分割された各輝度ブロックのうち、中央値がλである16個の輝度ブロックのブロックヒストグラムのそれぞれに対して補間係数を乗算し、補間係数が乗算されたブロックヒストグラムの和を求めることで、中央値λに対する輝度ヒストグラムを求める。
【0119】
換言すれば、補間部234は、処理対象画素近傍の輝度ブロックのブロックヒストグラムを用いた補間処理を行うことにより、各中央値λに対する輝度ヒストグラムを求める。これにより、中央値λごとのD個の輝度ヒストグラムが求められることになる。なお、各ブロックヒストグラムに乗算される補間係数は、処理対象画素の位置と、その処理対象画素近傍の空間ブロックとの相対位置関係に基づいて、空間重み関数保持部235に保持されている空間重み関数ルックアップテーブルから読み出される。
【0120】
積和部236および積和部237は、パラメータとして、輝度重み関数保持部238に保持されている輝度重み関数ルックアップテーブルと、信号レベル補正処理部217によりレベルが補正された輝度値L(nl)(p)を用いて、レベル次元の補間伸長処理を行う。
【0121】
具体的には、積和部236は、補間部233から供給されたD個の輝度積分値に対して、輝度加重値を積和する計算を行い、積和された輝度積分値を除算部239に供給する。すなわち、輝度加重値の乗算された輝度積分値の和が求められる。ここで、輝度積分値に乗算される輝度加重値は、信号レベル補正処理部217から積和部236に供給された輝度値L(nl)(p)と、中央値λとに基づいて、輝度重み関数保持部238に保持されている輝度重み関数ルックアップテーブルの輝度重み関数から算出される。
【0122】
同様に、積和部237は、補間部234から供給されたD個の輝度ヒストグラムに対して、輝度加重値を積和する計算を行い、積和された輝度ヒストグラムを除算部239に供給する。すなわち、輝度加重値の乗算された輝度ヒストグラムの和が求められる。ここで、輝度ヒストグラムに乗算される輝度加重値は、信号レベル補正処理部217から積和部237に供給された輝度値L(nl)(p)と、中央値λとに基づいて、輝度重み関数保持部238に保持されている輝度重み関数ルックアップテーブルの輝度重み関数から算出される。
【0123】
除算部239は、積和部236からの輝度積和値を、積和部237からの輝度ヒストグラムで除算することにより、処理対象画素の大局輝度値Ll(nl)(p)を算出してトーンカーブ算出部219およびマッピング部221に供給する。
【0124】
[画像処理の例]
次に、図10のフローチャートを参照して、図5のデジタルカメラ101における画像処理について説明する。なお、この処理は、例えば、デジタルビデオカメラ101による撮影が開始され、A/Dコンバータ115からDSP116への画像データ(モザイク画像)のストリームの供給が開始されたときに開始される。また、DSP116に供給された画像データは、逐次DSP116の図示せぬ内部のメモリに格納される。
【0125】
ステップS111において、ホワイトバランス処理部151は、モザイク画像を読み込む。具体的には、ホワイトバランス処理部151は、DSP116の図示せぬ内部のメモリに格納されている先頭のフレームのモザイク画像を読み込む。
【0126】
ステップS112において、ホワイトバランス処理部151は、取得したモザイク画像のホワイトバランスを調整し、デモザイク処理部152に供給する。
【0127】
ステップS113において、デモザイク処理部152は、デモザイク処理を行う。すなわち、デモザイク処理部152は、ホワイトバランス処理部151からのモザイク画像にデモザイク処理を施してRGB画像を生成し、階調補正処理部153に供給する。
【0128】
ステップS114において、階調補正処理部153は、階調補正処理を行い、デモザイク処理部152からのRGB画像の階調を補正する。このとき、階調補正処理部153は、処理対象となっているフレームの画像の信号レベルと画角を、そのフレームの時間的に1つ前のフレームの画像の信号レベルと画角に合わせる補正処理を行ってから、階調補正処理を行う。そして、階調補正処理部153は、階調の補正されたRGB画像をガンマ補正処理部154に供給する。なお、階調補正処理の詳細は、図11および図12を参照して後述する。
【0129】
ステップS115において、ガンマ補正処理部154は、階調補正処理部153からのRGB画像にガンマ補正を施してYC変換処理部155に供給する。
【0130】
ステップS116において、YC変換処理部155は、YC変換処理を行う。例えば、YC変換処理部155は、ガンマ補正処理部154からのRGB画像に対してYCマトリックス処理およびクロマ成分に対する帯域制限を行うことにより、RGB画像からY画像およびC画像を生成する。そして、ステップS117において、YC変換処理部155は、Y画像およびC画像を出力する。例えば、YC変換処理部155は、必要に応じてY画像およびC画像をLCDドライバ118またはCODEC120に出力する。
【0131】
ステップS118において、ホワイトバランス処理部151は、後続するフレームが存在するか否かを判定する。例えば、DSP116の図示せぬ内部のメモリに後続するフレームのモザイク画像が蓄積されている場合、後続フレームが存在すると判定される。
【0132】
ステップS118において、後続するフレームが存在すると判定された場合、処理は、ステップS119に進む。ステップS119において、CPU122は、後続フレームの露出制御値を決定することなどにより、フレーム間の信号レベルの変化量の判定処理を行う。この信号レベルの変化量の判定処理は、図18を参照して後述する。この処理により、信号レベルの補正量が決定され、決定された信号レベルの補正量は、図8の信号レベル補正処理部217に供給される。
【0133】
さらに、CPU122は、ステップS120において、フレーム間の座標の変化量の判定処理を行う。この座標の変化量の判定処理は、図19を参照して後述する。この処理により、座標の補正量が決定され、決定された座標の補正量は、図9の座標補正部231および座標補正部232に供給される。ステップS120の後、処理は、ステップS111に戻り、処理対象となる次のフレームのモザイク画像が読み込まれる。これに対して、ステップS118において、後続するフレームが存在しないと判定された場合、画像処理は終了する。
【0134】
[階調補正処理の例]
次に、図11および図12のフローチャートを参照して、図10のステップS114の処理に対応する階調補正処理について説明する。
【0135】
ステップS141において、加重積和部218およびトーンカーブ算出部219は、中間データを読み込む。すなわち、加重積和部218の補間部233は、ブロック積分値メモリ216から中間データとしてのブロック積分値を読み込み、加重積和部218の補間部234は、ブロックヒストグラムメモリ214から中間データとしてのブロックヒストグラムを読み込む。また、トーンカーブ算出部219は、輝度域情報メモリ212から中間データとしての輝度域情報を読み込む。
【0136】
ステップS142において、輝度域情報算出部211は、DSP116の図示せぬ内部のメモリからnoise Level(nl)およびsaturation Level(nl)を読み込む。
【0137】
ステップS143において、階調補正処理部153は、デモザイク処理部152から、RGB画像の処理対象画素の画素値を読み込む。すなわち、非線形変換部184−1乃至非線形変換部184−3は、処理対象画素のR成分の画素値R w(p)、G成分の画素値G w(p)、およびB成分の画素値B w(p)を読み込み、輝度算出部181は、処理対象画素のR、G、およびBの成分の画素値を読み込む。
【0138】
ステップS144において、輝度算出部181は、読み込んだ画素値に基づいて、処理対象画素の輝度値L(p)を算出し、非線形変換部182に供給する。例えば、輝度算出部181は、読み込んだR、G、およびBの成分の画素値に所定の係数を乗算して線形和を求めて輝度値としたり、R、G、およびBの成分の画素値のうちの最大値を輝度値としたりする。
【0139】
ステップS145において、非線形変換部182は、輝度算出部181からの輝度値L(p)を非線形変換し、変換により得られた輝度値L(nl)(p)を、輝度階調補正部183および階調補正部185に供給する。例えば、非線形変換部182は、1より小さい指数によるべき乗特性や対数特性など、上に凸の単調増加特性を有する関数を用いて輝度値L(p)を非線形変換する。
【0140】
ステップS146において、輝度階調補正部183および階調補正部185は、非線形変換部182から、処理対象画素の輝度値L(nl)(p)を読み込む。
【0141】
ステップS147において、輝度階調補正部183の輝度域情報算出部211は、輝度域情報算出のための画素処理を行う。輝度域情報算出のための画素処理において、これまでに供給された輝度画像の画素の輝度値と、非線形変換部182から読み込んだ輝度値L(nl)(p)とが比較され、ソーティングが行われる。
【0142】
ステップS148において、ブロックヒストグラム算出部213は、ブロックヒストグラム算出のための画素処理を行う。ブロックヒストグラム算出のための画素処理において、非線形変換部182から読み込んだ輝度値L(nl)(p)と処理対象画素の位置とに基づいて、処理対象画素が輝度ブロックに分類される。そして、輝度ブロックに対応するブロックヒストグラム算出部213の図示せぬカウンタの値がインクリメントされる。
【0143】
ステップS149において、ブロック積分値算出部215は、ブロック積分値算出のための画素処理を行う。このブロック積分値算出のための画素処理において、非線形変換部182から読み込んだ輝度値L(nl)(p)と処理対象画素の位置とに基づいて、処理対象画素が輝度ブロックに分類され、輝度ブロックに対応するブロック積分値に輝度値L(nl)(p)が加算される。
【0144】
ステップS150において、信号レベル補正処理部217は、非線形変換部182からの輝度値L(nl)(p)に対して、信号レベルの補正処理を行う。この信号レベルの補正処理の詳細は、図14を参照して後述する。ステップS150の処理により、フレーム間の信号レベルの変化が補正され、補正された輝度値L(nl)(p)が、加重積和部218、トーンカーブ算出部219、およびマッピング部222に入力される。
【0145】
ステップS151において、加重積和部218は、信号レベル補正処理部217により補正された輝度値L(nl)(p)を用いて、大局輝度値算出処理を行って、処理対象画素の大局輝度値Ll(nl)(p)を算出し、トーンカーブ算出部219およびマッピング部221に供給する。このとき、フレーム間の座標の変化が補正され、補正された座標が用いられて、座標の補間が行われる。なお、大局輝度値算出処理の詳細は、図15を参照して後述する。
【0146】
ステップS152において、トーンカーブ算出部219は、輝度域情報メモリ212から読み出した輝度域情報と、加重積和部218からの大局輝度値Ll(nl)(p)とから、トーンカーブを求める。
【0147】
例えば、トーンカーブ算出部219は、図13に示すトーンカーブのコントロールポイントを設定する。なお、図13のグラフの横軸方向は、階調補正する前の入力輝度の対数値を表し、縦軸方向は、トーンカーブCLによる階調補正後の出力輝度の対数値を表している。
【0148】
まず、トーンカーブ算出部219は、9つのコントロールポイントP1乃至コントロールポイントP9を設定する。コントロールポイントP1は、入力輝度が所定の最小レベルとなり、出力輝度が所定の最小レベルLbase(nl)となるポイントに設定される。コントロールポイントP2は、入力輝度がノイズレベルであると見なすことができる輝度である所定のノイズレベルLnoise(nl)となり、出力輝度が最小レベルLbase(nl)となるポイントに設定される。コントロールポイントP3は、入力輝度がノイズレベルLnoise(nl)の2倍の輝度値となり、出力輝度が最小レベルLbase(nl)となるポイントに設定される。
【0149】
コントロールポイントP4は、入力輝度が、輝度域情報メモリ212からの輝度域情報としての暗輝度側の裾野値Ldark(nl)となり、出力輝度がほぼ黒レベルの輝度値である輝度値Lankle(nl)となるポイントに設定される。コントロールポイントP5は、入力輝度が裾野値Ldark(nl)の2倍の輝度値となり、出力輝度が輝度値Lankle(nl)の2倍の輝度値となるポイントに設定される。コントロールポイントP6は、入力輝度が加重積和部218からの大局輝度値Ll(nl)(p)となり、出力輝度が出力輝度の輝度範囲における所定のほぼ中間の中間輝度レベルLmid(nl)となるポイントに設定される。すなわち、大局輝度値がトーンカーブにより階調補正された場合に、大局輝度値が、トーンカーブによる階調補正後の輝度値の取り得る範囲のほぼ中間の値に変換されるように、コントロールポイントP6が設定される。
【0150】
コントロールポイントP7は、入力輝度が明輝度側の裾野値Lbright(nl)の2分の1の輝度値となり、出力輝度がほぼ白レベルの輝度値である輝度値Lshoulder(nl)の2分の1の輝度値となるポイントに設定される。コントロールポイントP8は、入力輝度が、輝度域情報メモリ212からの輝度域情報としての裾野値Lbright(nl)となり、出力輝度が輝度値Lshoulder(nl)となるポイントに設定される。コントロールポイントP9は、入力輝度が所定の入力輝度の最大値となり、出力輝度が所定の出力輝度の最大値となるポイントに設定される。
【0151】
また、図13において、コントロールポイントP5と、コントロールポイントP7とを結ぶ線分ALの傾きは、トーンカーブCLの傾きを代表するγ-compパラメータを示している。
【0152】
処理対象画素ごとのトーンカーブCLの形状は、例えば、コントロールポイントP1乃至コントロールポイントP9に基づいて、各入力輝度値に対する出力輝度値(トーンカーブ値)をB-Spline補間処理により求めることにより定められる。
【0153】
なお、トーンカーブCLの形状は、どのような形式でトーンカーブメモリ220に保持されてもよい。但し、トーンカーブCLの形状は画素ごとに更新されるため、データ量が小さい形式で保持されることが望ましい。例えばトーンカーブの形状を数個乃至10数個程度のコントロールポイントにより表現し、マッピング部221およびマッピング部222がそれらのコントロールポイントから、トーンカーブCLを算出することが妥当である。
【0154】
トーンカーブ算出部219は、設定したコントロールポイントP1乃至コントロールポイントP9の入力輝度および出力輝度のセットをトーンカーブメモリ220に記録させる。したがって、実際には、1フレーム分の輝度画像を処理する期間では、コントロールポイントP6の入力輝度だけが処理対象画素が変化するたびに更新されることになる。
【0155】
なお、コントロールポイントP3が補助点として設定されることにより、トーンカーブCLが確実にコントロールポイントP2またはその近傍を通過するようになる。すなわち、入力輝度がほぼノイズレベルLnoise(nl)である場合、出力輝度の最小レベルLbase(nl)にほぼ等しい値に階調変換されるようになる。また、コントロールポイントP5が補助点として設定されることにより、入力輝度がほぼ裾野値Ldark(nl)となり、出力輝度がほぼ黒レベルとなる輝度値Lankle(nl)となる付近(コントロールポイントP4付近)のトーンカーブCLの傾きが極端に急峻になったり緩やかになったりすることが防止される。また、コントロールポイントP7が補助点として設定されることにより、入力輝度がほぼ裾値Lbright(nl)となり、出力輝度がほぼ白レベルとなる輝度値Lshoulder(nl)付近(コント
ロールポイントP8付近)のトーンカーブCLの傾きが極端に急峻になったり緩やかになったりすることが防止される。
【0156】
したがって、トーンカーブCLは、コントロールポイントP6付近で傾きが緩やかになり、コントロールポイントP4およびP8付近で傾きがほぼ1に近くなる逆S字状の単調増加する曲線となる。つまり、トーンカーブCLは、大局輝度値Ll(nl)(p)が高い場合には、輝度値の高い画素の明るさを抑えるものとなり、大局輝度値Ll(nl)(p)が低い場合には、輝度値の低い画素の明るさを明るくするものとなる。これにより、トーンカーブCLによる階調圧縮およびコントラスト補正を組み合わせることにより、画像のディテールをほぼ保持したまま、白ツブレをほとんど発生させることなく、画像上の暗い部分が明るくなるように画像の階調の圧縮を行うことができる。
【0157】
図11のフローチャートの説明に戻り、ステップS152において、トーンカーブの形状が求められ、トーンカーブの形状、より詳細にはコントロールポイントの入力輝度および出力輝度のセットがトーンカーブメモリ220に記録されると、処理はステップS153に進む。
【0158】
ステップS153において、マッピング部221は、加重積和部218から供給された大局輝度値Ll(nl)(p)を、トーンカーブメモリ220に記録されているトーンカーブに基づいて補正し、コントラスト補正部223に供給する。すなわち、マッピング部221は、トーンカーブメモリ220に記録されているコントロールポイントを用いて、B-Spline補間処理によりトーンカーブを求め、求めたトーンカーブを用いて大局輝度値Ll(nl)(p)を大局輝度値Lcl(nl)(p)に変換することにより、大局輝度値Ll(nl)(p)の階調を補正する。
【0159】
ステップS154において、マッピング部222は、読み込んだ処理対象画素の輝度値L(nl)(p)を、トーンカーブメモリ220に記録されているトーンカーブに基づいて補正し、コントラスト補正部223に供給する。すなわち、マッピング部222は、トーンカーブメモリ220に記録されているコントロールポイントを用いて、B-Spline補間処理によりトーンカーブを求め、求めたトーンカーブを用いて、信号レベル補正処理部217からの輝度値L(nl)(p)を輝度値Lc(nl)(p)に変換することにより、輝度値L(nl)(p)の階調を補正する。
【0160】
ステップS155において、コントラスト補正部223は、コントラスト補正処理を行い、トーンカーブにより階調が補正され、コントラストが劣化した輝度値Lc(nl)(p)からなる輝度画像を元の画像と同程度のコントラストに補償する。コントラスト補正部223は、コントラスト補正された輝度値Lu(nl)(p)を階調補正部185に供給する。
【0161】
ステップS156において、非線形変換部184は、読み込んだ処理対象画素の画素値を非線形変換し、階調補正部185に供給する。すなわち、非線形変換部184−1乃至非線形変換部184−3は、RGB画像の画素値Rw(p)、Gw(p)、およびBw(p)のそれぞれに対して、ステップS145の処理においてなされる非線形変換と同じ非線形変換を行う。
【0162】
ステップS157において、階調補正部185−1乃至階調補正部185−3は、非線形変換部182からの輝度値L(nl)(p)と、輝度階調補正部183からの輝度値Lu(nl)(p)とを用いて、非線形変換部184からの画素値を階調補正する。そして、階調補正部185は、階調補正された画素値を、非線形逆変換部186に供給する。
【0163】
例えば、階調補正部185は、輝度値L(nl)(p)と、階調補正された輝度値Lu(nl)(p)との比を各色の成分の画素値に乗算する。より具体的には、例えば、階調補正部185−1は、次式(1)を計算することにより、階調補正された画素値R u(nl)(p)を求める。
【0164】
【数1】

【0165】
式(1)では、階調補正前後の輝度値の比率、つまり階調補正された輝度値Lu(nl)(p)を階調補正前の輝度値L(nl)(p)で除算した値が、非線形変換された画素値R(nl)(p)に対して乗算されている。階調補正部185−2および階調補正部185−3においても、上述した式(1)と同様の計算が行われ、画素値が階調補正される。
【0166】
なお、非線形変換部182および非線形変換部184において行われる非線形変換が、対数変換である場合には、式(2)に示す計算を行うことにより、画素値が階調補正されてもよい。
【0167】
【数2】

【0168】
式(2)では、階調補正された輝度値Lu(nl)(p)と、階調補正前の輝度値L(nl)(p)との差分値が、画素値R(nl)(p)に加算されて、階調補正された画素値R u(nl)(p)とされている。
【0169】
ステップS158において、非線形逆変換部186−1乃至非線形逆変換部186−3は、階調補正部185からの画素値に、非線形変換部184による非線形変換の逆変換となる非線形逆変換を施す。そして、ステップS159において、非線形逆変換部186−1乃至非線形逆変換部186−3は、非線形逆変換により得られた画素値Ru(p)、Gu(p)、およびBu(p)を、ガンマ補正処理部154に出力する。
【0170】
ステップS160において、階調補正処理部153は、処理対象となっているフレームのRGB画像上の全ての画素を処理したか否かを判定する。ステップS160において、まだ全ての画素を処理していない、つまり全ての画素が処理対象画素とされていないと判定された場合、処理はステップS143に戻り、上述した処理が繰り返される。
【0171】
これに対して、ステップS160において、全ての画素が処理されたと判定された場合、ステップS161において、輝度域情報算出部211(図8)は、輝度域情報を求める。すなわち、輝度域情報算出部211は、非線形変換部182から供給された輝度値L(nl)(p)からなる1フレーム分の輝度画像の画素の輝度値のヒストグラムにおける暗輝度側および明輝度側の裾野の輝度値である裾野値を求め、それらの裾野値を輝度域情報として輝度域情報メモリ212に供給し、記録させる。
【0172】
ステップS162において、ブロックヒストグラム算出部213は、ブロックヒストグラムを求める。すなわち、ブロックヒストグラム算出部213は、輝度画像を分割して得られる各輝度ブロックの画素の頻度値を求め、それらの頻度値をブロックヒストグラムとして、ブロックヒストグラムメモリ214に供給し、記録させる。
【0173】
ステップS163において、ブロック積分値算出部215は、ブロック積分値を求め、階調補正処理は終了し、処理は図10のステップS115に進む。すなわち、ブロック積分値算出部215は、非線形変換部182から供給された輝度値L(nl)(p)からなる1フレーム分の輝度画像から、各輝度ブロックについて、輝度ブロックに属す画素の輝度値の積分値(総和)を算出し、算出された積分値をブロック積分値としてブロック積分値メモリ216に供給し、記録させる。
【0174】
このように、階調補正処理においては、1フレーム分の輝度画像に基づいて、代表値である中間データが求められる。そして、中間データが求められると、中間データとしての輝度域情報、ブロックヒストグラム、およびブロック積分値が輝度域情報メモリ212、ブロックヒストグラムメモリ214、およびブロック積分値メモリ216に格納される。
【0175】
輝度階調補正部183では、現在処理しているフレームよりも時間的に1つ前のフレームから求められた中間データが用いられて処理対象画素の大局輝度値やトーンカーブが算出されるため(エッジ保存平滑化処理が行われるため)、処理対象の画像が動画像であっても、画像の全画素を2回スキャンすることなく、少ないワーキングメモリで、大きいオペレータサイズのエッジ保存平滑化処理を行うことができる。
【0176】
その際に、現在処理しているフレームと、そのフレームよりも時間的に1つ前のフレームとの輝度階調補正部183における補間フィルタの位相ずれ、すなわち、信号レベルをそろえるようにし、また、座標信号の偏差を解消するようにした。
【0177】
信号レベルがそろうことによって、加重積和部218におけるレベル次元の補間誤差や、マッピング部221および222のトーンカーブ処理の不整合が解消され、理想的な輝度階調特性を持った出力輝度Lu(nl)(p)が得られるようになる。また、入力RGB信号の補正量は、入力輝度L(nl)(p)と出力輝度Lu(nl)(p)の関係から定義されるため、出力輝度の階調特性さえ良好に得られれば、出力RGB信号の階調特性も良好になる。
【0178】
また、座標信号の偏差が解消されることで、加重積和部218での空間次元の補間の誤差を解消することができる。
【0179】
以上により、複数ステップで構成される階調補正処理において、ステップ間で画像が異なる場合でも、画質の劣化(HALOや階調不良)を防ぐことができる。これにより、動画像の処理時の画質が改善される。また、静止画像の処理時に、処理時間を増大させることなく、画質を改善することができる。
【0180】
[信号レベルの補正処理の例]
次に、図14のフローチャートを参照して、図11のステップS150の信号レベルの補正処理について説明する。
【0181】
非線形変換部182からの輝度値L(nl)(p)が供給されると、信号レベル補正処理部217は、ステップS191において、処理対象画素に対するレベルの補正量を読み込む。この信号レベルの補正量は、図10のステップS119においてCPU122により決定されて、供給されている。
【0182】
ステップS192において、信号レベル補正処理部217は、非線形変換部182からの輝度値L(nl)(p)に対して、読み込んだレベル補正量を演算する。その後、処理は、図11のステップS151に進む。
【0183】
これにより、現在処理しているフレームと、そのフレームよりも時間的に1つ前のフレームとの信号レベルをそろえることができる。
【0184】
[大局輝度値算出処理の例]
次に、図15のフローチャートを参照して、図11のステップS151の大局輝度値算出処理について説明する。
【0185】
ステップS211において、加重積和部218の座標補正部231、座標補正部232、積和部236、および積和部237は、信号レベル補正処理部217から、信号レベルが補正されれた処理対象画素の輝度値L(nl)(p)を読み込む。
【0186】
ステップS212において、座標補正部231および座標補正部232は、信号レベル補正処理部217からの輝度値L(nl)(p)に対して、座標補正処理を行う。この座標補正処理の詳細は、図17を参照して後述する。ステップS212の処理により、フレーム間の座標の変化が補正され、補正された輝度値L(nl)(p)が、補間部233および補間部234にそれぞれ入力される。
【0187】
ステップS213において、補間部233は、座標補正部231により座標が補正された輝度値L(nl)(p)の処理対象画素近傍の空間ブロックから得られる輝度ブロックのブロック積分値を用いた補間処理を行って、処理対象画素の位置の中央値λごとの輝度積分値を求める。
【0188】
すなわち、補間部233は、処理対象画素の空間方向近傍(処理対象画素が含まれる空間ブロックも含む)の4×4の合計16個の空間ブロックのそれぞれを、空間ブロックBKi,j(但し、1≦i≦4,1≦j≦4)として、空間ブロックBKi,jごとの補間係数Bi,jを読み出す。例えば、空間重み関数保持部235には、3次B-spline関数の関数値のルックアップテーブルが保持されている。補間部233は、処理対象画素の位置と、空間ブロックBKi,jとの相対位置関係により定まる関数値を、空間重み関数保持部235のルックアップテーブルから読み出し、読み出した関数値を空間ブロックBKi,jの補間係数Bi,jとする。なお、補間部233が3次B-spline関数などから直接、演算により補間係数Bi,jを算出するようにしてもよい。
【0189】
次に、補間部233は、空間ブロックから得られるD個の輝度ブロックのそれぞれの輝度範囲の中央値をλ1乃至λDとするとともに、空間ブロックBKi,jから得られるD個の輝度ブロックのうち、中央値がλh(但し、1≦h≦D)である輝度ブロックを輝度ブロックLBKi,j,hとする。そして、補間部233は、ブロック積分値メモリ216から、各輝度ブロックLBKi,j,hのブロック積分値S(i,j,λh)を読み出す。なお、以下、中央値λ1乃至中央値λDのそれぞれを特に区別する必要のない場合、単に中央値λとも称する。
【0190】
さらに、補間部233は、中央値λごとに、読み出した補間係数Bi,jと、ブロック積分値S(i,j,λ)との積の総和を計算し、その結果得られた値を、中央値λの輝度積分値Sinterpolated(λ)とする。すなわち、補間部233は、次式(3)を計算することにより、中央値λごとに輝度積分値Sinterpolated(λ)を求める。
【0191】
【数3】

【0192】
ここで、式(3)において、Σは、変数iおよびjを、それぞれ1から4まで変えて、補間係数Bi,jが乗算されたブロック積分値S(i,j,λ)の総和をとることを表している。したがって、輝度積分値Sinterpolated(λ)は、16個の空間ブロックBKi,jのそれぞれから得られる輝度ブロックのうち、中央値がλである16個の輝度ブロックのブロック積分値S(i,j,λ)のそれぞれに、それらの輝度ブロックが得られる空間ブロックBKi,jについての補間係数Bi,jのそれぞれを乗算し、さらに補間係数が乗算された16個のブロック積分値Bi,j×S(i,j,λ)の和を求めることで算出される。
【0193】
これにより、D個の輝度積分値Sinterpolated(λ)が求められる。これらの輝度積分値は、輝度ブロックに対応する輝度(中央値λ)ごとの、処理対象画素の位置の補間されたブロック積分値である。補間部233は、輝度積分値を求めると、求めた輝度積分値を積和部236に供給する。
【0194】
ステップS214において、補間部234は、座標補正部232により座標が補正された輝度値L(nl)(p)の処理対象画素近傍の空間ブロックから得られる輝度ブロックのブロックヒストグラムを用いた補間処理を行って、処理対象画素の中央値λごとの輝度ヒストグラムを求める。
【0195】
すなわち、補間部234は、ステップS213の処理と同様にして、処理対象画素の位置と、空間ブロックBKi,jとの相対位置関係により定まる関数値を、空間重み関数保持部235のルックアップテーブルから読み出し、読み出した関数値を空間ブロックBKi,jの補間係数Bi,jとする。
【0196】
そして、補間部234は、ブロックヒストグラムメモリ214から、各輝度ブロックLBKi,j,hのブロックヒストグラムH(i,j,λ)を読み出す。さらに、補間部234は、中央値λごとに、読み出した補間係数Bi,jと、ブロックヒストグラムH(i,j,λ)との積の総和を計算し、その結果得られた値を、中央値λの輝度ヒストグラムHinterpolated(λ)とする。すなわち、補間部234は、次式(4)を計算することにより、中央値λごとに輝度ヒストグラムHinterpolated(λ)を求める。
【0197】
【数4】

【0198】
ここで、式(4)の右辺は、式(3)の右辺のブロック積分値S(i,j,λ)がブロックヒストグラムH(i,j,λ)に置き換えられたものとなっている。
【0199】
これにより、D個の輝度ヒストグラムHinterpolated(λ)が求められる。これらの輝度ヒストグラムは、輝度ブロックに対応する輝度(中央値λ)ごとの、処理対象画素の位置の補間されたブロックヒストグラムである。補間部234は、輝度ヒストグラムを求めると、求めた輝度ヒストグラムを積和部237に供給する。
【0200】
ステップS215において、積和部236は、補間部233から供給されたD個の輝度積分値を輝度加重値で積和し、積和された輝度積分値を除算部277に供給する。
【0201】
すなわち、積和部236は、輝度重み関数保持部238に保持されている輝度重み関数ルックアップテーブルから、輝度重み関数を読み出す。そして、積和部236は、読み出した輝度重み関数、信号レベル補正処理部217から供給された輝度値L(nl)(p)、および中央値λを用いて、中央値λごとの輝度加重値φ(λ,L(nl)(p))を求める。
【0202】
例えば、輝度重み関数保持部238に保持されている輝度重み関数ルックアップテーブルには、図16に示す形状の輝度重み関数が保持されている。なお、図16において、縦軸は輝度重み関数の値、すなわち輝度加重値φ(λ,L(nl)(p))を示しており、横軸は中央値λを示している。
【0203】
図16に示す輝度重み関数は、処理対象画素の位置に補間された輝度積分値(および輝度ヒストグラム)の輝度ブロックに相当する輝度レベル、すなわち中央値λと、処理対象画素の輝度値L(nl)(p)との差分値が小さいほど、より大きい値を持つ単峰性形状の関数とされる。
【0204】
このような単峰性形状の輝度重み関数が用いられる場合、例えば、積和部236は、輝度重み関数保持部238に保持された輝度重み関数ルックアップテーブルを参照する代わりに、次式(5)を計算することにより、中央値λごとに輝度加重値φ(λ,L(nl)(p))を求めるようにしてもよい。
【0205】
【数5】

【0206】
ここで、式(5)において、σthは、輝度重み関数の裾野の広がりの大きさを決める定数であり、予め定められている。積和部236は、式(5)の右辺に輝度値L(nl)(p)および中央値λを代入することで、各中央値λに対する輝度加重値φ(λ,L(nl)(p))を求める。
【0207】
式(5)に示される輝度重み関数では、処理対象画素の輝度値L(nl)(p)に近い値の中央値λ(輝度ブロック)に対しては、大きな重み値がつけられ、輝度値L(nl)(p)から離れた中央値λ(輝度ブロック)に対しては小さな重み値がつけられる。
【0208】
積和部236は、中央値λごとに輝度加重値φ(λ,L(nl)(p))を求めると、各中央値λについて、輝度積分値Sinterpolated(λ)に、その中央値λの輝度加重値φ(λ,L(nl)(p))を乗算し、輝度加重値の乗算された輝度積分値の総和を求める。すなわち、各中央値λの輝度加重値での輝度積分値Sinterpolated(λ)の加重和が求められる。
【0209】
この加重和は、処理対象画素の位置と、輝度ブロックが得られる空間ブロックの位置との相対位置関係から定まる補間係数、および輝度ブロック(の中央値λ)と輝度値L(nl)(p)との輝度方向の距離により定まる輝度加重値が乗算された、処理対象画素の位置近傍の16個の空間ブロックから得られる全ての輝度ブロックのブロック積分値の総和である。
【0210】
ステップS216において、積和部237は、補間部234から供給されたD個の輝度ヒストグラムを輝度加重値で積和し、積和された輝度ヒストグラムを除算部277に供給する。
【0211】
すなわち、積和部237は、輝度重み関数保持部238に保持されている輝度重み関数ルックアップテーブルから輝度重み関数を読み出し、読み出した輝度重み関数、信号レベル補正処理部217から供給された輝度値L(nl)(p)、および中央値λを用いて、例えば、式(5)を計算することにより、中央値λごとの輝度加重値φ(λ,L(nl)(p))を求める。
【0212】
さらに、積和部237は、輝度ヒストグラムHinterpolated(λ)に、中央値λごとの輝度加重値φ(λ,L(nl)(p))を乗算し、輝度加重値の乗算された輝度ヒストグラムの総和を求める。すなわち、各中央値λの輝度加重値での輝度ヒストグラムHinterpolated(λ)の加重和が求められる。
【0213】
この加重和は、処理対象画素の位置と、輝度ブロックが得られる空間ブロックの位置との相対位置関係から定まる補間係数、および輝度ブロック(の中央値λ)と輝度値L(nl)(p)との輝度方向の距離により定まる輝度加重値が乗算された、処理対象画素の位置近傍の16個の空間ブロックから得られる全ての輝度ブロックのブロックヒストグラムの総和である。
【0214】
ステップS217において、除算部277は、積和部236からの輝度積分値を、積和部237からの輝度ヒストグラムで除算し、大局輝度値Ll(nl)(p)を求める。すなわち、除算部277は、次式(6)を計算することで大局輝度値Ll(nl)(p)を算出する。
【0215】
【数6】

【0216】
ここで、式(6)において、ΣSinterpolated(λ)・φ(λ,L(nl)(p))は、積和部236から供給される積和された輝度積分値を示しており、ΣHinterpolated(λ)・φ(λ,L(nl)(p))は、積和部237から供給される積和された輝度ヒストグラムを示している。
【0217】
したがって、ブロック積分値を補間係数および輝度加重値で重み付き加算して得られた加重和を、ブロックヒストグラムを補間係数および輝度加重値で重み付き加算して得られた加重和で除算することにより、ブロック積分値の加重平均の値が求まり、その値が大局輝度値Ll(nl)(p)とされる。
【0218】
ステップS218において、除算部277は、求めた大局輝度値Ll(nl)(p)を、トーンカーブ算出部219およびマッピング部221に出力する。大局輝度値が出力されると、大局輝度値算出処理は終了し、その後、処理は図11のステップS152に進む。
【0219】
このようにして、加重積和部218は、処理対象画素近傍の空間ブロックから得られる輝度ブロックのブロック積分値およびブロックヒストグラムから大局輝度値を求める。
【0220】
ブロック積分値は、空間ブロックごとに、近い輝度値を持った画素を同じ輝度ブロックに属す画素とし、輝度ブロックごとに画素の輝度値を積分して得られる値である。また、ブロックヒストグラムは、各輝度ブロックに属す画素数を示す頻度値である。したがって、処理対象画素の輝度値に近い輝度レベルの輝度ブロックに重みをおいて、輝度ブロックの特性を示す特性値、例えば輝度ブロックのブロック積分値の積和を行うことにより、処理対象画素近傍の空間ブロック内の画素のうち、輝度値が処理対象画素に近い画素の輝度値の積分結果を得ることになる。
【0221】
その結果、例えば、処理対象画素近傍の16個の空間ブロックといった、広範囲な領域内の画素の輝度値を積分しても、処理対象画素とは異なる明るさである、処理対象画素の属す被写体(処理対象画素により表示される被写体)とは、別の被写体の画素による影響は少なく、処理対象画素が属す被写体の平均輝度値を示す大局輝度値を算出することができる。
【0222】
さらに、その際、時間的に1つ前のフレームで得られるブロック積分値およびブロックヒストグラムに合わせて、次のフレームのレベルと座標が補正されているので、加重積和部218でのレベル次元および空間次元の補間の誤差を解消することができる。
【0223】
[座標補正処理の例]
次に、図17のフローチャートを参照して、図15のステップS122の座標補正処理について説明する。
【0224】
信号レベル補正処理部217からの輝度値L(nl)(p)が供給されると、座標補正部231および座標補正部232は、ステップS251において、処理対象画素に対する座標の補正量をそれぞれ読み込む。この座標の補正量は、図10のステップS120においてCPU122により決定されて、供給されている。
【0225】
ステップS252において、座標補正部231および座標補正部232は、信号レベル補正処理部217からの輝度値L(nl)(p)の座標に対して、読み込んだ補正量を演算する。その後、処理は、図15のステップS213に進む。
【0226】
これにより、現在処理しているフレームとそのフレームよりも時間的に1つ前のフレームとの座標(画角)をそろえることができる。
【0227】
[信号レベルの変化量の判定処理の例]
次に、図18のフローチャートを参照して、図10のステップS119の信号レベルの変化量の判定処理について説明する。
【0228】
CPU122は、ステップS271において、次フレームの露出制御値を決定する。この露出制御値とは、図5の絞り112を制御する値である。そして、CPU122は、ステップS272において、直前のフレームの露出制御値と、次フレームの露出制御値を用いて、フレーム間の露出制御値の差分を計算する。
【0229】
CPU122は、ステップS273において、計算した制御値の差分から、露出値の変化量を計算し、ステップS274において、露出値の変化量から、信号レベルの補正量を決定し、図8の信号レベル補正処理部217に供給する。この信号レベルの補正量は、上述した図14のステップS191において、信号レベル補正処理部217で用いられる。
【0230】
[座標の変化量の判定処理の例]
次に、図19のフローチャートを参照して、図10のステップS120の座標の変化量の判定処理について説明する。
【0231】
CPU122は、ステップS291において、直前のフレームでの座標の変化量を計算する。CPU122は、例えば、いま処理をしていた直前のフレームと、そのフレームの時間的に1つ前のフレームの画像データをDSP116から取得し、取得したフレーム間において動き探索などを行い、フレーム間のずれを検出することで、座標の変化量を計算する。
【0232】
なお、動き探索は、CPU122自身が行うようにしてもよいし、専用回路を設けるようにしてもよい。また、座標の変化量の計算は、図5のジャイロセンサ124からの検出情報を積分などすることにより、画角の変化量を求め、フレーム間のずれを検出することで行うようにしてもよい。すなわち、フレーム間のずれを検出できればよく、その検出方法は限定されない。
【0233】
ステップS292において、CPU122は、次フレームの座標変化量を、ステップS291において計算した直前の座標の変化量から推定する。そして、ステップS293において、CPU122は、推定した座標の変化量を、次フレームにおける座標の補正量に決定し、決定した座標の補正量を、図9の座標補正部231および座標補正部232に供給する。この座標の補正量は、上述した図17のステップS251において、座標補正部231および座標補正部232でそれぞれ用いられる。
【0234】
以上のように、現在処理しているフレームよりも時間的に1つ前のフレームから、現在処理しているフレームに対する信号レベルと画角(座標)の変化を検出し、現在処理しているフレームにおいて、検出した変化を補正することにより、フレーム間の信号レベルと画角をそろえるようにした。
【0235】
したがって、加重積和部218におけるレベル次元の補間誤差や、マッピング部221および222のトーンカーブ処理の不整合が解消され、理想的な輝度階調特性を持った出力輝度Lu(nl)(p)が得られるようになる。また、入力RGB信号の補正量は、入力輝度L(nl)(p)と出力輝度Lu(nl)(p)の関係から定義されるため、出力輝度の階調特性さえ良好に得られれば、出力RGB信号の階調特性も良好になる。さらに、加重積和部218での空間次元の補間の誤差を解消することができる。
【0236】
その結果、複数ステップで構成される階調補正処理において、ステップ間で画像が異なる場合でも、画質の劣化(HALOや階調不良)を防ぐことができる。これにより、画像の処理時の画質を改善することができる。
【0237】
なお、上記説明においては、発明の概要において上述した図3の場合(2パス目の画像を、1パス目の画像に合わせる場合)の画像処理装置31に対応するデジタルカメラの例について説明した。次に、図4の場合(1パス目の画像を、2パス目の画像に合わせる場合)の画像処理装置61に対応するデジタルカメラの例について説明する。
【0238】
図20は、図7の輝度階調補正部183の機能の他の構成の例を示すブロック図である。
【0239】
図20の輝度階調補正部183は、輝度域情報算出部211、輝度域情報メモリ212、ブロックヒストグラム算出部213、ブロックヒストグラムメモリ214、ブロック積分値算出部215、ブロック積分値メモリ216、加重積和部218、トーンカーブ算出部219、トーンカーブメモリ220、マッピング部221、マッピング部222、およびコントラスト補正部223を備えている点は、図8の輝度階調補正部183と共通している。
【0240】
また、図20の輝度階調補正部183は、信号レベル補正処理部217が除かれた点、並びに、輝度補正処理部261、輝度域情報メモリ262、再標本化処理部263、ブロックヒストグラムメモリ264、再標本化処理部265、輝度補正処理部266、およびブロック積分値メモリ267が追加された点が、図8の輝度階調補正部183と異なる。
【0241】
ここで、図20の例において、輝度域情報算出部211は、図4の輝度域情報算出部22に対応し、輝度域情報メモリ212は、図4の輝度域情報メモリ23に対応している。また、ブロックヒストグラム算出部213およびブロック積分値算出部215は、図4のLPF24に対応し、ブロックヒストグラムメモリ214およびブロック積分値メモリ216は、図4の中間メモリ25に対応している。加重積和部218乃至コントラスト補正部223は、図4の階調圧縮処理部26に対応している。
【0242】
また、輝度補正処理部261は、図4の補正処理部81に対応し、輝度域情報メモリ262は、図4の輝度域情報メモリ82に対応している。再標本化処理部263、再標本化処理部265、および輝度補正処理部266は、図4の補正処理部83に対応し、ブロックヒストグラムメモリ264およびブロック積分値メモリ267は、図4の中間メモリ84に対応している。
【0243】
すなわち、輝度補正処理部261、再標本化処理部263、再標本化処理部265、および輝度補正処理部266においては、第1のステップで求められた代表値である中間データから、第2のステップの画像の代表値に相当する値が求められる。
【0244】
輝度補正処理部261は、画像の平均レベルの偏差の補正処理を行う。具体的には、輝度補正処理部261は、図5のCPU211が予測したステップ間の平均レベルの偏差(すなわち、信号レベルの補正量)を受け取り、偏差に相当する分を、輝度域情報メモリ212の輝度域情報に乗算することで、輝度域情報を更新する。なお、対数変換が行われる場合には、乗算は加算に変えられる。更新された輝度域情報は、輝度域情報メモリ262に格納される。輝度域情報メモリ262は、輝度補正処理部261から供給された輝度域情報を一時的に記録し、トーンカーブ算出部219に供給する。
【0245】
再標本化処理部263は、ブロックヒストグラムメモリ214のブロックヒストグラムの標本化の位相を調整する。具体的には、標本化の位相の調整は、図5のCPU211が予測したステップ間の平均レベルの偏差と、位置の偏差(すなわち、信号レベルの補正量と、座標の補正量)をもとに、その偏差だけずれた位相での標本値を求めることで行われる。ここでの補正フィルタとしては、例えば、Lanczosフィルタが用いられる。
【0246】
再標本化処理部263は、標本化の位相を調整したブロックヒストグラムを、輝度補正処理部266に供給するとともに、ブロックヒストグラムメモリ264に格納する。ブロックヒストグラムメモリ264は、再標本化処理部263から供給されたブロックヒストグラムを一時的に記録し、加重積和部218に供給する。
【0247】
再標本化処理部265は、ブロック積分値メモリ216のブロック積分値の標本化の位相を調整し、標本化の位相を調整したブロック積分値を、輝度補正処理部266に供給する。ブロック積分値の標本化の位相の調整は、ブロックヒストグラムの標本化の位相の調整と同様に行われる。
【0248】
輝度補正処理部266は、再標本化処理部265により標本化の位相が調整されたブロック積分値におけるレベルの偏差の補正処理を行う。具体的には、輝度補正処理部266は、図5のCPU211が予測したステップ間の平均レベルの偏差(すなわち、信号レベルの補正量)と、再標本化処理部263により標本化の位相が調整されたブロックヒストグラムとを受け取る。そして、輝度補正処理部266は、偏差に相当する分で、再標本化処理部263からのブロックヒストグラムを補正したものを、再標本化処理部265からのブロック積分値に乗算することで、ブロック積分値を更新する。なお、対数変換が行われる場合には、乗算は加算に変えられる。更新されたブロック積分値は、ブロック積分値メモリ267に格納される。ブロック積分値メモリ267は、輝度補正処理部266から供給されたブロック積分値を一時的に記録し、加重積和部218に供給する。
【0249】
そして、加重積和部218は、図7の非線形変換部182からの輝度値L(nl)(p)と、ブロックヒストグラムメモリ264からのブロックヒストグラム、およびブロック積分値メモリ267からのブロック積分値とから、輝度値L(nl)(p)からなる輝度画像のごく低周波成分からなる画像(以下、大局輝度画像と称する)の輝度値である大局輝度値Ll(nl)(p)を算出する。
【0250】
トーンカーブ算出部219は、輝度域情報メモリ262からの輝度域情報と、加重積和部218からの大局輝度値Ll(nl)(p)とから、輝度値の階調を圧縮するために適用されるトーンカーブの形状を算出し、その算出結果をトーンカーブメモリ220に供給する。
【0251】
マッピング部222は、トーンカーブメモリ220に記録されているトーンカーブに基づいて、非線形変換部182からの輝度値L(nl)(p)の階調を圧縮(補正)し、階調補正により得られた輝度値Lc(nl)(p)をコントラスト補正部223に供給する。
【0252】
すなわち、輝度階調補正部183も、図8の場合と同様に、2ステップ構成の輝度階調補正処理を行う構成となっている。図20の構成では、第1ステップの処理が、輝度域情報算出部211、ブロックヒストグラム算出部213、およびブロック積分値算出部215により行われ、その計算結果である中間データが、輝度域情報メモリ212、ブロックヒストグラムメモリ214、およびブロック積分値メモリ216にそれぞれ格納される。
【0253】
そして、第2のステップの処理の前に、輝度域情報メモリ212、ブロックヒストグラムメモリ214、およびブロック積分値メモリ216に格納された中間データが、第2のステップ処理時の画像のレベルと座標の変化に合わせる補正が行われる。補正が行われた中間データは、輝度域情報メモリ262、ブロックヒストグラムメモリ264、およびブロック積分値メモリ267に格納される。
【0254】
次に、第2のステップの処理として、ブロックヒストグラムメモリ264およびブロック積分値メモリ267から中間データが読み出され、読み出された中間データに対して、加重積和部218により補間処理が行われる。そして、補間処理後の出力値が用いられて、マッピング部221および222、並びにコントラスト補正部223により階調が調整される。このとき、マッピング部221および222、並びにコントラスト補正部223で用いられるトーンカーブは、輝度域情報メモリ262の値を用いてトーンカーブ算出部219により算出され、トーンカーブメモリ220に格納されている。
【0255】
すなわち、図20の場合も、加重積和部218以降の処理においては、ステップ間に生じるレベルや座標のずれが補正された画像が用いられて処理が行われるので、画像劣化を防ぐことができる。
【0256】
図21は、図20の加重積和部218の機能の構成例を示す図である。図21の加重積和部218は、補間部233、補間部234、空間重み関数保持部235、積和部236、積和部237、輝度重み関数保持部238、および除算部239を備えている点が、図9の加重積和部218と共通している。図21の加重積和部218は、座標補正部231、座標補正部232が除かれている点のみが、図9の加重積和部218と異なっているだけである。
【0257】
すなわち、図9の場合と異なって、図7の非線形変換部182からの輝度値L(nl)(p)の画素、つまり処理対象画素の位置が、それぞれ、補間部233および補間部234に供給される。補間部233および補間部234は、パラメータとして、空間重み関数保持部235に保持されている空間重み関数ルックアップテーブルと、非線形変換部182からの入力画像の位置情報を用いて、空間次元の補間伸長処理をそれぞれ行う。それ以外は、図9の場合と基本的に同じであるので、その説明は省略される。
【0258】
[画像処理の他の例]
次に、図22のフローチャートを参照して、図20の輝度階調補正部183の場合の図5のデジタルカメラ101の画像処理を説明する。なお、図22のステップS311乃至S313は、図10のステップS111乃至S113と基本的に同様の処理を行うので、その説明を省略する。
【0259】
図22のステップS314において、階調補正処理部153は、階調補正処理を行い、デモザイク処理部152からのRGB画像の階調を補正する。このとき、階調補正処理部153は、処理対象となっているフレームの時間的に1つ前のフレームの画像の信号レベルと画角を、処理対象となっているフレームの画像の信号レベルと画角に合わせる補正処理を行ってから、階調補正処理を行う。すなわち、時間的に1つ前のフレームの代表値である中間データを、処理対象となっているフレームの画像の信号レベルと画角に合わせる補正処理が行われる。そして、階調補正処理部153は、階調の補正されたRGB画像をガンマ補正処理部154に供給する。なお、階調補正処理の詳細は、図23および図24を参照して後述する。
【0260】
また、次のステップS315乃至S320は、図10のステップS115乃至S120と基本的に同様の処理を行うので、その詳細な説明を省略する。
【0261】
すなわち、ステップS315において、ガンマ補正処理部154は、階調補正処理部153からのRGB画像にガンマ補正を施してYC変換処理部155に供給する。
【0262】
ステップS316において、YC変換処理部155は、YC変換処理を行う。例えば、YC変換処理部155は、ガンマ補正処理部154からのRGB画像に対してYCマトリックス処理およびクロマ成分に対する帯域制限を行うことにより、RGB画像からY画像およびC画像を生成する。そして、ステップS317において、YC変換処理部155は、Y画像およびC画像を出力する。例えば、YC変換処理部155は、必要に応じてY画像およびC画像をLCDドライバ118またはCODEC120に出力する。
【0263】
ステップS318において、ホワイトバランス処理部151は、後続するフレームが存在するか否かを判定する。例えば、DSP116の図示せぬ内部のメモリに後続するフレームのモザイク画像が蓄積されている場合、後続フレームが存在すると判定される。
【0264】
ステップS318において、後続するフレームが存在すると判定された場合、処理は、ステップS319に進む。ステップS319において、CPU122は、後続フレームの露出制御値を決定することなどにより、図18を参照して上述したフレーム間の信号レベルの変化量の判定処理を行う。この処理により、信号レベルの補正量が決定され、決定された信号レベルの補正量は、図20の輝度補正処理部261および輝度補正処理部266に供給される。
【0265】
さらに、CPU122は、ステップS320において、図19を参照して上述したフレーム間の座標の変化量の判定処理を行う。判定された座標の変化量は、図20の再標本化処理部263および再標本化処理部265に供給される。
【0266】
ステップS321において、輝度補正処理部261は、ステップS314の処理により格納された輝度域情報メモリ212の輝度域情報の補正処理を行う。この輝度域情報の補正処理の詳細は、図26を参照して後述するが、ステップS321の処理により、次のフレームの信号レベルに合わせるように、輝度域情報メモリ212の輝度域情報が更新されて、輝度域情報メモリ262に格納される。
【0267】
ステップS322において、再標本化処理部263および再標本化処理部265は、ステップS314の処理により格納された中間データ(ブロックヒストグラムメモリ214のブロックヒストグラムおよびブロック積分値メモリ216のブロック積分値)の再標本化処理を行う。この再標本化処理の詳細は、図27を参照して後述するが、ステップS322の処理により、次のフレームの画像の位置に合わせるように、ブロックヒストグラムが更新され、ブロックヒストグラムメモリ264に格納される。また、ブロック積分値も更新され、輝度補正処理部266に供給される。
【0268】
ステップS323において、輝度補正処理部266は、再標本化処理部265により標本化の位相が調整されたブロック積分値における輝度情報の補正処理を行う。この輝度情報の補正処理の詳細は、図28を参照して後述するが、ステップS323の処理により、次のフレームの信号レベルに合わせるように、再標本化処理部265からのブロック積分値が更新されて、ブロック積分値メモリ267に格納される。
【0269】
以上のステップS321乃至S323の処理により、時間的に次のフレームのステップS314の処理においては、更新された代表値である中間データ(輝度域情報、ブロックヒストグラム、およびブロック積分値)が用いられて、階調補正処理が行われる。
【0270】
ステップS323の後、処理は、ステップS311に戻り、処理対象となる次のフレームのモザイク画像が読み込まれる。これに対して、ステップS318において、後続するフレームが存在しないと判定された場合、画像処理は終了する。
【0271】
[階調補正処理の他の例]
次に、図23および図24のフローチャートを参照して、図22のステップS314の処理に対応する階調補正処理について説明する。なお、図23のステップS341乃至S349は、図11のステップS141乃至S149と基本的に同様の処理を行う。また、図23のステップS351乃至S354は、図11のステップS152乃至S155と基本的に同様の処理を行い、図24のステップS355乃至S362は、図12のステップS156乃至S163と基本的に同様の処理を行う。したがって、それらの処理の説明は、繰り返しになるので省略する。
【0272】
ステップS151において、加重積和部218は、図7の非線形変換部182からの輝度値L(nl)(p)を用いて、大局輝度値算出処理を行って、処理対象画素の大局輝度値Ll(nl)(p)を算出する。なお、大局輝度値算出処理の詳細は、図25を参照して後述する算出された処理対象画素の大局輝度値Ll(nl)(p)は、トーンカーブ算出部219およびマッピング部221に供給される。
【0273】
[大局輝度値算出処理の他の例]
次に、図25のフローチャートを参照して、図23のステップS350の大局輝度値算出処理について説明する。なお、図25のステップS371乃至S377は、図15のステップS211、およびS213乃至S218と基本的に同様の処理を行う。すなわち、図25の大局輝度値算出処理は、図15のステップS212の座標補正処理に対応する処理がない点のみ、図15の大局輝度値算出処理と異なっているだけであり、その説明が繰り返しになるので省略される。
【0274】
[輝度域情報の補正処理の例]
次に、図26のフローチャートを参照して、図22のステップS321の輝度域情報の補正処理について説明する。
【0275】
輝度補正処理部261は、ステップS391において、信号レベルの補正量を読み込む。この信号レベルの補正量は、図22のステップS319において、CPU122により決定されて、供給されている。
【0276】
輝度補正処理部261は、ステップS392において、輝度域情報メモリ212に格納されている時間的に1つ前のフレームで求められた輝度域情報を読み込む。
【0277】
ステップS393において、輝度補正処理部261は、信号レベルの補正量に基づくフレーム間の信号レベルの変化に応じて、読み込んだ輝度域情報を更新し、更新した輝度域情報を、輝度域情報メモリ262に格納する。
【0278】
これにより、現在処理するフレームよりも時間的に1つ前のフレームの信号レベルを、現在処理するフレームの信号レベルに合わせる(そろえる)ことができる。
【0279】
[再標本化処理の例]
次に、図27のフローチャートを参照して、図22のステップS322の再標本化処理について説明する。
【0280】
再標本化処理部263および再標本化処理265は、メモリに格納された代表値である中間データに対して、ステップS411において、空間の再標本化処理を行い、ステップS412において、信号レベルの再標本化処理を行う。空間の再標本化処理については、図28を参照し、信号レベルの再標本化処理については、図29を参照して後述する。
【0281】
なお、再標本化処理部263が対象とする中間データが、ブロックヒストグラムメモリ214のブロックヒストグラムであるのに対して、再標本化処理部265が対象とする中間データが、ブロック積分値メモリ216のブロック積分値である点が異なるだけである。したがって、次に説明する図28および図29においては、代表して、再標本化処理部263の例が説明される。
【0282】
次に、図28のフローチャートを参照して、図27のステップS411の空間の再標本化処理について説明する。
【0283】
再標本化処理部263は、ステップS431において、ブロックヒストグラムメモリ214から、中間データ(いまの場合、ブロックヒストグラム)を読み込む。再標本化処理部263は、ステップS432において、座標の補正量を読み込む。この座標の補正量は、図22のステップS320において、CPU122により決定され、供給されている。
【0284】
ステップS433において、再標本化処理部263は、ステップS432において読み込んだ座標の補正量に基づいて、空間方向、すなわち、2次元フィルタの再標本化の係数を決定する。
【0285】
ステップS434において、再標本化処理部263は、ステップS433で決定した再標本化の係数を用いて、再標本化(畳み込み計算)を行う。再標本化処理部263は、ステップS435において、2次元フィルタの再標本化の結果で、読み込んだ中間データ(ブロックヒストグラム)を更新する。
【0286】
次に、図29のフローチャートを参照して、図27のステップS412の信号レベルの再標本化処理について説明する。
【0287】
再標本化処理部263は、ステップS451において、空間の再標本化による更新された中間データ(いまの場合、ブロックヒストグラム)を読み込む。再標本化処理部263は、ステップS452において、信号レベルの補正量を読み込む。この信号レベルの補正量は、図22のステップS319において、CPU122により決定され、供給されている。
【0288】
ステップS453において、再標本化処理部263は、ステップS452において読み込んだ信号レベルの補正量に基づいて、レベル方向、すなわち、1次元フィルタの再標本化の係数を決定する。
【0289】
ステップS454において、再標本化処理部263は、ステップS433で決定した再標本化の係数を用いて、再標本化(畳み込み計算)を行う。再標本化処理部263は、ステップS455において、1次元フィルタの再標本化の結果で、中間データ(ブロックヒストグラム)を更新し、更新したブロックヒストグラムを、輝度補正処理部266に出力するとともに、ブロックヒストグラムメモリ264に格納する。
【0290】
なお、再標本化処理部265の場合には、ブロック積分値メモリ216のブロック積分値が中間データとして更新され、更新されたブロック積分値が、輝度補正処理部266に供給される。
【0291】
また、図27の再標本化処理においては、処理を座標とレベルに分けて、1次元フィルタと2次元フィルタの畳み込み計算を行う例を説明したが、座標とレベルを1度に用いて、3次元フィルタの畳み込み計算を行うようにすることも可能である。
【0292】
次に、図30のフローチャートを参照して、図22のステップS323の輝度情報の補正処理について説明する。
【0293】
ステップS471において、輝度補正処理部266は、信号レベルの補正量を読み込む。この座標の補正量は、図22のステップS319において、CPU122により決定され、供給されている。
【0294】
輝度補正処理部266は、ステップS472において、再標本化処理部263からのブロックヒストグラムと、再標本化処理部265からのブロック積分値を読み込む。そして、輝度補正処理部266は、信号レベルの補正量が示す信号レベルの変化に応じて、ブロック積分値を更新し、更新したブロック積分値を、ブロック積分値メモリ267に格納する。
【0295】
具体的には、信号レベルの補正量でブロックヒストグラムを補正したものが、再標本化処理部265からのブロック積分値に加算されることで、ブロック積分値の輝度情報が補正されて、更新される。
【0296】
以上のように、現在処理しているフレームと、そのフレームよりも時間的に1つ前のフレームから、信号レベルと画角(座標)の変化が検出され、1つ前のフレームを用いて生成され格納されている中間データが、検出した変化で補正される。これにより、フレーム間の信号レベルと画角を合わせることができる。
【0297】
したがって、加重積和部218におけるレベル次元の補間誤差や、マッピング部221および222のトーンカーブ処理の不整合が解消され、理想的な輝度階調特性を持った出力輝度Lu(nl)(p)が得られるようになる。また、入力RGB信号の補正量は、入力輝度L(nl)(p)と出力輝度Lu(nl)(p)の関係から定義されるため、出力輝度の階調特性さえ良好に得られれば、出力RGB信号の階調特性も良好になる。さらに、加重積和部218での空間次元の補間の誤差を解消することができる。
【0298】
その結果、複数ステップで構成される階調補正処理において、ステップ間で画像が異なる場合でも、画質の劣化(HALOや階調不良)を防ぐことができる。これにより、画像の処理時の画質を改善することができる。
【0299】
なお、上記説明においては、階調補正を行うデジタルカメラの例を説明してきたが、本発明は、階調補正処理に限らず、バイテラルフィルタ処理を用いる画像処理装置にも適用することができる。
【0300】
<3.第3の実施の形態>
[バイテラルフィルタ処理を用いる画像処理装置の構成例]
図31は、本発明を適用した、バイテラルフィルタ処理を用いる画像処理装置の第1の構成例を示すブロック図である。なお、従来のバイテラルフィルタ処理については、非特許文献1に記載されている。図31の画像処理装置301は、図3の画像処理装置31と図8の輝度階調補正部183に対応する装置である。
【0301】
図31の例において、画像処理装置301は、3次元間引き処理部311、2次元畳み込み処理部312、補正処理部313、3次元補間処理部314、正規化処理部315、およびレベル補正処理部316により構成されている。
【0302】
図示せぬ前段から、2次元に分布した画像信号である入力信号のうち、第1のステップの入力信号Aは、3次元間引き処理部311に入力される。3次元間引き処理部311と3次元畳み込み処理部312は、まとめて、図8のブロックヒストグラム算出部213およびブロック積分値算出部215に対応している。
【0303】
3次元間引き処理部311は、入力信号Aの画像を、ブロックヒストグラムに相当するwとブロック積分値に相当するwiで構成されるhomogeneous vector(wi,w)と扱って間引き、間引かれたhomogeneous vector(wi,w)を、3次元畳み込み処理部312に出力する。なお、以下は、単にベクトル(wi,w)と称する。
【0304】
この間引かれたベクトル(wi,w)が、代表値である中間データに対応している。3次元畳み込み処理部312は、間引かれたベクトル(wi,w)を用いて、バイラテラルフィルタのフィルタ係数の畳み込みを行い、フィルタ後の間引かれたベクトル(wi,w)を3次元補間処理部314に出力する。
【0305】
補正処理部313には、図示せぬ前段から、第2のステップの入力信号Bの各補間座標とその座標での信号レベルが入力される。補正処理部313は、レベル補正処理部321および座標補正処理部322により構成されており、レベル補正処理部321は、図8の信号レベル補正処理部217に対応し、座標補正処理部322は、図9の座標補正部231および座標補正部232に対応している。
【0306】
補正処理部313は、入力信号Bの補間座標と信号レベルを、2つの入力信号AおよびBにおける変化量に応じて補正し、補正した入力信号Bの補間座標と信号レベルを3次元補間処理部314に供給する。
【0307】
3次元補間処理部314には、3次元畳み込み処理部312からフィルタ後の間引かれたベクトル(wi,w)と、補正処理部313により補正された入力信号Bの各補間座標とその座標での信号レベルが入力される。3次元補間処理部314は、図9の補間部233乃至輝度重み関数保持部238に対応している。
【0308】
3次元補間処理部314は、各補間座標とその座標での信号レベルを用いて、フィルタ後の間引かれたベクトル(wi,w)に対して、補間フィルタにより補間処理を行うことで、フルサイズのベクトル(wi,w)を求めて、正規化処理部315に出力する。すなわち、補正処理部313においては、3次元補間処理部314の補間フィルタの位相の変化が補正されている。
【0309】
正規化処理部315は、図9の除算部239に対応している。正規化処理部315は、3次元補間処理部314からのベクトル(wi,w)から出力のレベルiを求めて、画像をレベル補正処理部316に出力する。
【0310】
正規化処理の出力では、第1のステップのフィルタ出力に相当するレベルが出力されている。したがって、レベル補正処理部316は、第1のステップのフィルタ出力に相当するレベルを、第2のステップ相当のレベルに変換する処理を行い、変換処理後の画像を、出力信号として出力する。
【0311】
なお、上述した図8の輝度階調補正部183においては、レベル補正処理部316に対応するものは存在しない。すなわち、実際には、図8のトーンカーブ算出部219が、レベル補正処理を相殺するトーンカーブを作成し、そのトーンカーブを用いることにより、マッピング部221がその影響を相殺している。
【0312】
具体的には、トーンカーブ算出部219のトーンカーブ処理Lc1=f(L1)のトーンカーブf(L1)は、輝度域情報メモリ212の輝度域情報Pnから作成される。このため、第1のステップの入力画像に適したトーンカーブとなり、第1のステップと第2のステップの入力画像が異なる場合、第2のステップの入力画像には最適にはならない。
【0313】
したがって、トーンカーブ算出部219は、次式(7)に示されるように、トーンカーブ処理の入力信号に対して、第2のステップの輝度Ll2を、第1のステップの輝度Ll1に合わせる補正を行っている。
【数7】


なお、式(7)において、サブスクリプトは信号のステップを表している。また、この処理は、後述する式(11)においては、+ΔIの項に相当する。
【0314】
ここで、一般な、画像に対するバイラテラルフィルタBLF(pc)では、次式(8)に示されるように、空間方向の重み関数ω(p−pc)および輝度値方向の重み関数φ(I(p)−I(pc))で重み付けした画素位置pcの周囲の画素の画素値I(p)を加算する演算が行われる。
【0315】
【数8】

【0316】
ただし、3次元畳み込み処理部312および3次元補間処理部314において行われる2ステップ処理構成のバイラテラルフィルタの場合には、まず、3次元畳み込み処理部312において、第1のステップとして、次式(9)に示される標本化処理が行われる。
【数9】

【0317】
式(9)において、Ssmp,Hsmpは、BLP(pc)の分母、分子の式を、それぞれ代表値(座標ps=(xs、ys),レベルIs)の周辺で標本化したもの、すなわち、代表値である中間データである。Ssmpは、ブロックヒストグラムに対応しており、Hsmpは、ブロック積分値に対応している。また、式(9)におけるサブスクリプトの1は、第1のステップの入力画像であることを表す。
【0318】
そして、3次元補間処理部314において、第2のステップとして、次式(10)に示される演算が行われる。
【数10】

【0319】
第2のステップでのバイテラルフィルタの計算値は、第1のステップの標本化信号を補間して得られる。式(10)において、ωiptiptは、補間係数の関数であり、サブスクリプトの2は、第2のステップの入力画像であることを表す。
【0320】
2ステップ処理構成の計算は、第1のステップと第2のステップの入力画像が同一の時に最も精度がよい。しかしながら、上述したように、例えば、動画像の場合など、第1のステップの入力画像と第2のステップの入力画像の画角やレベルに誤差が生じてしまうことがある。
【0321】
例えば、画角に誤差Δpが生じた場合、p=pc−Δpとなるので、式(9)において、ω(pc−ps−Δp)となり、空間フィルタ特性ωに誤差が生じてしまう。
【0322】
また、例えば、信号レベルに誤差が生じた場合、I( )=I( )−ΔIとなるので、式(9)において、φ(I−Is−ΔI)となり、レベルフィルタ特性φに誤差が生じてしまう。信号を対数空間で扱う際には、I(pc)−ΔI)となり、レベル特性Iに誤差が生じる。なお、誤差が乗算でかかる場合(リニア信号の場合)は、レベル誤差は、I( )=I( )÷ΔIで表わされる。
【0323】
そこで、補正処理部313は、次の式(11)に示される補間処理により誤差を補正する。
【0324】
【数11】

すなわち、pc=pc−Δp=pとすることで、画角誤差が補正される。また、Ic( )=I( )−ΔIと補正し、BLF=BLF+ΔI(信号が対数空間のとき)とすることで、レベル誤差が補正される。なお、乗算誤差では、加減算が乗除算に置き換えられる。サブスクリプトのcは、補正された信号であることを表す。
【0325】
[バイテラルフィルタ処理を用いる画像処理装置の他の構成例]
図32は、本発明を適用した、バイテラルフィルタ処理を用いる画像処理装置の第2の構成例を示すブロック図である。図32の画像処理装置351は、図4の画像処理装置61と図20の輝度階調補正部183に対応する装置である。
【0326】
図32の画像処理装置351は、補正処理部313が補正処理部361に入れ替わった点と、レベル補正処理部316が除かれた点が、図31の画像処理装置301と異なっている。図32の画像処理装置351は、3次元間引き処理部311、2次元畳み込み処理部312、3次元補間処理部314、および正規化処理部315を備えている点は、図21の画像処理装置301と共通している。
【0327】
すなわち、補正処理部361は、輝度補正処理部371と再標本化処理部372により構成されており、輝度補正処理部371は、図20の輝度補正処理部266に対応し、再標本化処理部372は、図20の再標本化処理部263および再標本化処理部265に対応している。
【0328】
補正処理部361は、フィルタ後の入力信号Aの間引かれたベクトル(wi,w)、すなわち、代表値である中間データを、入力信号Aに対する入力信号Bにおける変化量に応じて、補正および再標本化し、3次元補間処理部314に出力する。
【0329】
具体的には、補正処理部361は、次の式(12)および式(13)に示されるように、中間データ(Hsmp,Ssmp)の誤差を補正して、新たな中間データ(Hsmp,Ssmp)を作成する。
【0330】
【数12】

【数13】

ここで、Wは、再標本化のためのフィルタ関数である。このフィルタ関数には、Lanczos関数やsinc関数が用いられる。
【0331】
式(12)は、ブロックヒストグラムの再標本化処理に相当し、式(12)の右辺のフィルタ関数Wの項が、上述した図28のステップS434と図29のステップS453の処理に相当する処理である。そして、右辺全体が、図28のステップS435と図29のステップS455に相当する処理となる。
【0332】
式(13)は、ブロック積分値の再標本化処理と輝度情報補正処理に相当する。すなわち、式(13)の右辺のフィルタ関数Wの項が、ブロック積分値の再標本化処理(上述した図28のステップS434と図29のステップS453の処理)に相当する処理である。そして、右辺のフィルタ関数の項とSsmp(ps,Is)との乗算が、図28のステップS435と図29のステップS455に相当する処理となる。
【0333】
さらに、右辺のΔIとHsmp2(ps,Is)との乗算が、図30を参照して上述した輝度情報の補正処理に相当している。
【0334】
3次元補間処理部314には、補正処理部361により補正されたフィルタ後の間引かれたベクトル(wi,w)と、図示せぬ前段から入力された入力信号Bの各補間座標とその座標での信号レベルが入力される。3次元補間処理部314は、各補間座標とその座標での信号レベルを用いて、フィルタ後の間引かれたベクトル(wi,w)に対して、補間フィルタにより補間処理を行うことで、フルサイズのベクトル(wi,w)を求めて、正規化処理部315に出力する。すなわち、補正処理部361においても、3次元補間処理部314の補間フィルタの位相の変化が補正されている。
【0335】
なお、図31の画像処理装置301においては、レベル補正処理部316により第1のステップのフィルタ出力に相当するレベルを、第2のステップ相当のレベルに変換する処理が行われていた。図32の画像処理装置351においても、これに対応する処理が行われている。図32の例では図示されていないが、その処理は、対応する図20の輝度階調補正部183の輝度補正処理部261において行われる。
【0336】
輝度補正処理部261は、階調補正処理の特性を、第2のステップの画像の輝度に対して最適にしている。この処理がないと、第1のステップの画像に対して最適な特性が、トーンカーブ算出部219で作成されてしまう。
【0337】
具体的には、輝度補正処理部261は、式(14)に示されるように、輝度域情報を補正している。
【数14】

【0338】
このように補正することで、輝度域情報が、第2のステップの輝度域情報の近似値に変換される。結果として、図20のトーンカーブ算出部219においても、第2のステップの画像に対して最適なトーンカーブが作成される。
【0339】
以上のように、例えば、一般的なバイテラルフィルタ処理であれば、上述したようにレベルや画角を補正することができる。したがって、本発明は、バイテラルフィルタを用いるアプリケーション一般に適用することができる。
【0340】
以下、さらに、一般的なモデルを用いて本発明について説明する。
【0341】
<4.第4の実施の形態>
[一般的な画像処理装置の構成例]
図33は、本発明を適用した、より一般的な画像処理装置の第1の構成例を示すブロック図である。図33の画像処理装置401は、図3の画像処理装置31、図8の輝度階調補正部183、および図31の画像処理装置301に対応する装置である。
【0342】
図33の例において、画像処理装置401は、代表値算出部411、1フレーム遅延部412、補正処理部413、補正処理部414、補間処理部415、および補正処理部416により構成されている。
【0343】
代表値算出部411には、図示せぬ前段から、N(Nは自然数)次元の座標に分布した信号である入力信号のうち、第1のステップの入力信号が入力され、補正処理部413および補正処理部414には、第2のステップの入力信号が入力される。例えば、画像の場合、2次元座標(x,y)とレベルの入力信号となるので、N=2となる。音声の場合、1次元座標(時間)とレベルの入力信号となるので、N=1となる。
【0344】
代表値算出部411は、図8のブロックヒストグラム算出部213およびブロック積分値算出部215、並びに、図31の3次元間引き処理部311および3次元畳み込み処理部312に対応している。代表値算出部411は、レベル方向の次元を新たに設定し、N次元+レベル→N+1次元とする。すなわち、代表値算出部411は、入力信号を、homogeneous vectorとして扱って、間引き処理および畳み込み処理を行う。homogeneous vectorとして扱うので、信号の次元が1つ増えて、N+1次元になり、出力は、N+1次元の間引かれたhomogeneous vectorとなる。
【0345】
1フレーム遅延部412は、図8のブロックヒストグラムメモリ214およびブロック積分値メモリ216に対応している。1フレーム遅延部412は、メモリなどで構成され、N+1次元の畳み込み結果であるN+1次元の間引かれたhomogeneous vectorを記憶し、1フレーム遅延させて、補間処理部415に出力する。なお、1フレーム遅延部412に対応する機能は、図31において示されていないが、実際には、3次元畳み込み処理部312と3次元補間処理部314の間に存在する。
【0346】
補正処理部413には、第2のステップの入力信号の座標信号(N次元)が入力され、補正処理部414には、第2のステップの入力信号の各座標でのレベル(スカラ)が入力される。
【0347】
補正処理部413は、図9の座標補正部231および座標補正部232、並びに図31の座標補正処理部322に対応している。補正処理部413は、第2の入力信号の座標を、第1の入力信号の座標に合わせる(そろえる)補正を行い、補正を行った第2の入力信号を、補間処理部415に出力する。
【0348】
補正処理部414は、図8の信号レベル補正処理部217、および図31のレベル補正処理部321に対応している。補正処理部414は、第2の入力信号のレベルを、第1の入力信号のレベルに合わせる(そろえる)補正を行い、補正を行った第2の入力信号を、補間処理部415に出力する。すなわち、補正処理部413および補正処理部414においては、補間処理部415の補間フィルタの位相の変化を補正している。
【0349】
補間処理部415は、図9の補間部233乃至輝度重み関数保持部238、並びに図31の3次元補間処理部314に対応している。補間処理部415は、N+1次元から、レベルを得る(N次元に戻す)処理を行う。すなわち、補間処理部415は、間引かれたhomogeneous vectorに対して補間処理を行い、正規化をすることで、レベル(レベル補正前の)を得る処理を行い、N次元の座標に分布した信号である信号を、補正処理部416に出力する。
【0350】
補正処理部416は、図31のレベル補正処理部316に対応している。補正処理部416は、補間処理部415からの第1のステップに相当するレベルを、第2のステップ相当のレベルに変換する処理を行い、変換処理後の画像を、出力信号(N次元)として出力する。
【0351】
以上のように、補正処理部413および補正処理部414において、第2の入力信号を第1の入力信号に合わせる、補間処理部415の補間フィルタの位相の変化の補正が行われる。したがって、第1の入力信号と第2の入力信号の座標や画角が異なっていても、画質の劣化を防ぐことができる。
【0352】
[一般的な画像処理装置の他の構成例]
図34は、本発明を適用した、より一般的な画像処理装置の第2の構成例を示すブロック図である。図34の画像処理装置451は、図4の画像処理装置61、図20の輝度階調補正部183、および図32の画像処理装置351に対応する装置である。
【0353】
図34の例において、画像処理装置451は、代表値算出部411、1フレーム遅延部412、補正処理部461、補正処理部462、保持部463、および補間処理部415により構成されている。なお、図34の画像処理装置451と図33の画像処理装置401との違いは、補正処理部413および補正処理部414が、補正処理部461および補正処理部462に入れ替わった点、保持部463が追加された点、並びに補正処理部416が除かれた点である。図34の画像処理装置451が、代表値算出部411および1フレーム遅延部412、および補間処理部415を備える点は、図33の画像処理装置401と共通している。
【0354】
すなわち、1フレーム遅延部412からのN+1次元の間引かれたhomogeneous vectorは、1フレーム遅延されて、補正処理部461に出力される。
【0355】
補正処理部461は、図20の再標本化処理部263および再標本化処理部265、並びに図32の再標本化処理部372に対応している。補正処理部461は、N+1次元の間引かれたhomogeneous vectorの位相を、第1のステップの入力画像と第2のステップの入力画像の座標の変化量に応じて再標本化する。補正処理部461は、再標本化したN+1次元の間引かれたhomogeneous vectorを、補正処理部462に出力する。
【0356】
補正処理部462は、図20の輝度補正処理部266、および図32の輝度補正処理部371に対応している。補正処理部462は、N+1次元の間引かれたhomogeneous vectorの輝度を、第1のステップの入力画像と第2のステップの入力画像の輝度の変化量に応じて補正する。補正処理部462は、補正したN+1次元の間引かれたhomogeneous vectorを、保持部463に出力する。すなわち、補正処理部461および補正処理部462においては、補間処理部415の補間フィルタの位相の変化を補正している。
【0357】
保持部463は、N+1次元の間引かれたhomogeneous vectorを保持し、補間処理部415に出力する。
【0358】
補間処理部415には、第2のステップの入力信号が入力される。補間処理部415は、N+1次元から、レベルを得る(N次元に戻す)処理を行う。すなわち、補間処理部415は、間引かれたhomogeneous vectorに対して補間処理を行い、正規化をすることで、レベル(レベル補正前の)を得る処理を行い、N次元の座標に分布した信号である信号を、出力信号(N次元)として出力する。
【0359】
以上のように、補正処理部461および補正処理部462において、第1の入力信号で生成されたデータ(間引かれたhomogeneous vector)を第2の入力信号に合わせる、補間処理部415の補間フィルタの位相の変化の補正が行われる。したがって、第1の入力信号と第2の入力信号の座標や画角が異なっていても、画質の劣化を防ぐことができる。
【0360】
なお、本発明は、上述した階調補正処理、バイテラルフィルタ処理、画像処理に限らず、例えば、2パスで処理され、1パス目と2パス目で異なる画像が入力される処理を行う画像処理装置や画像処理システムに適用することができる。
【0361】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
【0362】
[パーソナルコンピュータの構成例]
図35は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0363】
コンピュータにおいて、CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503は、バス504により相互に接続されている。
【0364】
バス504には、さらに、入出力インタフェース505が接続されている。入出力インタフェース505には、入力部506、出力部507、記憶部508、通信部509、およびドライブ510が接続されている。
【0365】
入力部506は、キーボード、マウス、マイクロホンなどよりなる。出力部507は、ディスプレイ、スピーカなどよりなる。記憶部508は、ハードディスクや不揮発性のメモリなどよりなる。通信部509は、ネットワークインタフェースなどよりなる。ドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア511を駆動する。
【0366】
以上のように構成されるコンピュータでは、CPU501が、例えば、記憶部508に記憶されているプログラムを入出力インタフェース505及びバス504を介してRAM503にロードして実行することにより、上述した一連の処理が行われる。
【0367】
コンピュータ(CPU501)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア511に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
【0368】
コンピュータでは、プログラムは、リムーバブルメディア511をドライブ510に装着することにより、入出力インタフェース505を介して、記憶部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記憶部508にインストールすることができる。その他、プログラムは、ROM502や記憶部508に、あらかじめインストールしておくことができる。
【0369】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0370】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0371】
31 画像処理装置, 41 階調補正処理部, 51 補正処理部, 61 画像処理装置, 71 階調補正処理部, 81 補正処理部, 82 輝度域情報メモリ, 83 補正処理部, 84 中間メモリ, 101 デジタルカメラ, 116 DSP, 122 CPU, 153 階調補正処理部, 183 輝度階調補正部, 217 信号レベル補正処理部, 218 加重積和部, 219 トーンカーブ算出部, 231 座標補正部, 232 座標補正部, 261 輝度補正処理部, 262 輝度域情報メモリ, 263 再標本化処理部, 264 ブロックヒストグラムメモリ, 265 再標本化処理部, 266 輝度補正処理部, 267 ブロック積分値メモリ, 301 画像処理装置, 311 2次元間引き処理部, 312 3次元畳み込み処理部, 313 補正処理部, 314 3次元補間処理部,315 正規化処理部, 316 レベル補正処理部, 321 レベル補正処理部, 322 座標補正処理部, 351 画像処理装置, 361 補正処理部, 371 輝度補正処理部, 372 再標本化処理部, 401 画像処理装置, 411 代表値算出部, 412 1フレーム遅延部, 413 補正処理部, 414 補正処理部, 415 補間処理部, 416 補正処理部, 451 画像処理装置, 461 補正処理部, 462 補正処理部, 463 保持部

【特許請求の範囲】
【請求項1】
N(Nは自然数)次元の情報を有する画像信号を処理する画像処理装置において、
入力される第1の画像信号から代表値を算出する代表値算出手段と、
前記第1の画像信号の次に入力される第2の画像信号に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と前記第2の画像信号との位相の変化を補正する補正手段と、
前記補正手段により前記補間フィルタにおける前記位相の変化が補正された前記第2の画像信号を用いて、前記代表値算出手段により算出された前記代表値に対して、前記補間フィルタにより補間処理を行う補間手段と
を備える画像処理装置。
【請求項2】
前記画像信号は、3次元の情報を有し、
前記3次元の情報のうちの2次元の情報は、座標情報であり、
前記3次元の情報のうちの1次元の情報は、画素のレベル情報である
請求項1に記載の画像処理装置。
【請求項3】
前記補正手段は、前記位相の変化の1つとして、前記第1の画像信号と前記第2の画像信号との前記座標情報の変化を補正する座標補正手段と、
前記位相の変化の1つとして、前記第1の画像信号と前記第2の画像信号との前記レベル情報の変化を補正するレベル補正手段と
を備える請求項2に記載の画像処理装置。
【請求項4】
前記座標情報の変化量を算出する座標変化量算出手段を
さらに備える請求項3に記載の画像処理装置。
【請求項5】
前記レベル情報の変化量を算出するレベル変化量算出手段を
さらに備える請求項3に記載の画像処理装置。
【請求項6】
前記代表値算出手段は、前記代表値として、ブロックヒストグラムとブロック積算値を算出し、
前記補間手段は、前記座標情報と前記レベル情報の変化が補正された前記第2の画像信号を用いて、前記ブロックヒストグラムと前記ブロック積算値に対して、前記補間フィルタにより補間処理を行う
請求項3に記載の画像処理装置。
【請求項7】
N(Nは自然数)次元の情報を有する画像信号を処理し、代表値算出手段と、補正手段と、補間手段とを備える画像処理装置の画像処理方法において、
前記代表値算出手段が、入力される第1の画像信号から代表値を算出し、
前記補正手段が、前記第1の画像信号の次に入力される第2の画像信号に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と前記第2の画像信号との位相の変化を補正し、
前記補間手段が、前記補間フィルタにおける前記位相の変化が補正された前記第2の画像信号を用いて、算出された前記代表値に対して、前記補間フィルタにより補間処理を行う
画像処理方法。
【請求項8】
N(Nは自然数)次元の情報を有する画像信号を処理する画像処理装置のコンピュータを、
入力される第1の画像信号から代表値を算出する代表値算出手段と、
前記第1の画像信号の次に入力される第2の画像信号に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と前記第2の画像信号との位相の変化を補正する補正手段と、
前記補正手段により前記補間フィルタにおける前記位相の変化が補正された前記第2の画像信号を用いて、前記代表値算出手段により算出された前記代表値に対して、前記補間フィルタにより補間処理を行う補間手段と
して機能させるためのプログラム。
【請求項9】
N(Nは自然数)次元の情報を有する画像信号を処理する画像処理装置において、
入力される第1の画像信号から代表値を算出する代表値算出手段と、
前記代表値算出手段により算出された前記代表値に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と、前記第1の画像信号の次に入力される第2の画像信号との位相の変化を補正する補正手段と、
前記第2の画像信号を用いて、前記補正手段により前記補間フィルタにおける前記位相の変化が補正された前記代表値に対して、前記補間フィルタにより補間処理を行う補間手段と
を備える画像処理装置。
【請求項10】
前記画像信号は、3次元の情報を有し、
前記3次元の情報のうちの2次元の情報は、座標情報であり、
前記3次元の情報のうちの1次元の情報は、画素のレベル情報である
請求項9に記載の画像処理装置。
【請求項11】
前記補正手段は、前記代表値に対して、前記位相の変化の1つとして、前記第1の画像信号と前記第2の画像信号との前記座標情報の変化を補正する座標補正手段と、
前記代表値に対して、前記位相の変化の1つとして、前記第1の画像信号と前記第2の画像信号との前記レベル情報の変化を補正するレベル補正手段と
を備える請求項10に記載の画像処理装置。
【請求項12】
前記座標情報の変化量を算出する座標変化量算出手段を
さらに備える請求項11に記載の画像処理装置。
【請求項13】
前記レベル情報の変化量を算出するレベル変化量算出手段を
さらに備える請求項11に記載の画像処理装置。
【請求項14】
前記代表値算出手段は、前記代表値として、ブロックヒストグラムとブロック積算値を算出し、
前記座標補正手段は、前記ブロックヒストグラムと前記ブロック積算値に対して、前記第1の画像信号と前記第2の画像信号との前記座標情報の変化を補正し、
前記レベル補正手段は、前記ブロックヒストグラムと前記ブロック積算値に対して、前記第1の画像信号と前記第2の画像信号との前記レベル情報の変化を補正し、
前記補間手段は、前記第2の画像信号を用いて、前記座標情報と前記レベル情報の変化が補正された前記ブロックヒストグラムと前記ブロック積算値に対して、前記補間フィルタにより補間処理を行う
請求項11に記載の画像処理装置。
【請求項15】
N(Nは自然数)次元の情報を有する画像信号を処理し、代表値算出手段と、補正手段と、補間手段とを備える画像処理装置の画像処理方法において、
前記代表値算出手段が、入力される第1の画像信号から代表値を算出し、
前記補正手段が、算出された前記代表値に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と、前記第1の画像信号の次に入力される第2の画像信号との位相の変化を補正し、
前記補間手段が、前記第2の画像信号を用いて、前記補間フィルタにおける前記位相の変化が補正された前記代表値に対して、前記補間フィルタにより補間処理を行う
画像処理方法。
【請求項16】
N(Nは自然数)次元の情報を有する画像信号を処理する画像処理装置のコンピュータを、
入力される第1の画像信号から代表値を算出する代表値算出手段と、
前記代表値算出手段により算出された前記代表値に対して、前記N次元の情報を補間する補間フィルタにおける前記第1の画像信号と、前記第1の画像信号の次に入力される第2の画像信号との位相の変化を補正する補正手段と、
前記第2の画像信号を用いて、前記補正手段により前記補間フィルタにおける前記位相の変化が補正された前記代表値に対して、前記補間フィルタにより補間処理を行う補間手段と
して機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate


【公開番号】特開2011−205209(P2011−205209A)
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願番号】特願2010−68157(P2010−68157)
【出願日】平成22年3月24日(2010.3.24)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】