次に、本発明の実施の形態について図面を参照して詳細に説明する。図1は、本実施の一形態による撮像装置のブロック図である。図1において撮像装置は、光学レンズ101と、絞り102と、シャッター103と、固体撮像素子104と、縦筋ノイズ補正部105と、前処理部106と、画像処理部107と、表示IF(InterFace)部108と、表示パネル109と、カードIF(InterFace)部110と、記録メディア111と、データバス112と、メモリコントローラ113と、メモリ114と、CPU(Central Processing Unit)115と、を備える。
光学レンズ101は、被写体からの入射光を屈折させる。絞り102は入射光の一部を通し、被写体からの入射光を固体撮像素子104に投影させる。これにより被写体像は固体撮像素子104に結像される。また、シャッター103が開いている場合、入射光は固体撮像素子104に投影されるが、シャッター103が閉まっている場合は、入射光を遮ることができ、固体撮像素子104に遮光画像を作り出すことができる。固体撮像素子104は、例えば、CCD、CMOSにより実現される。
縦筋ノイズ補正部105は、縦筋ノイズ減算部140と、縦筋ノイズ成分抽出部150と、を備える。縦筋ノイズ成分抽出部150は、固体撮像素子104から、遮光画像を取得し、遮光画像から縦筋ノイズ成分を抽出する。縦筋ノイズ減算部140は、抽出された縦筋ノイズ成分を撮影画像から減算することで、撮影画像から縦筋ノイズ成分を除去する。
図2は、OB領域を設けている場合の固体撮像素子104を示す。OB領域からは、縦筋ノイズ成分を抽出するための遮光画像が1ライン毎に縦筋ノイズ成分抽出部150に出力され、有効領域202からは、撮影画像が1ライン毎に縦筋ノイズ減算部140に出力される。なお、OB領域は必ずしも図2に示された配置に限られる必要はなく、例えば、有効領域202の上に配置(OB領域201)、有効領域202の下に配置(OB領域203)、有効領域202の上下に配置(OB領域201とOB領域203)してもよい。したがって、縦筋ノイズ成分抽出部150は、OB領域201若しくはOB領域203、又はその両方のOB領域から出力された遮光画像を用いて、縦筋ノイズ成分を抽出することができる。
また、固体撮像素子104にOB領域を設けていない場合は、CPU115がシャッター103を閉じることで、入射光が遮光された有効領域202を、OB領域として使用することができる。シャッター103が閉じられている場合、縦筋ノイズ成分抽出部150は、シャッター103により遮光された有効領域202から画素の並び1ライン毎に出力された遮光画像を用いて、縦筋ノイズ成分を抽出することができる。また、CPU115がシャッター103を開くことで、入射光を有効領域202に投影させれば、縦筋ノイズ減算部140は、有効領域202から画素の並び1ライン毎に撮影画像を取得することが出来る。
したがって、OB領域を設けている固体撮像素子104を用いる場合は、同時に撮影した遮光画像と撮影画像により、縦筋ノイズ減算部140が、抽出された縦筋ノイズ成分を、被写体像から減算することで、被写体像から縦筋ノイズ成分を除去する。シャッター103が閉じられることで有効領域202から出力される遮光画像を用いる場合は、まずシャッター103により遮光された有効領域202から遮光画像を取得し、次に、シャッター103を開いて、有効領域202から撮影画像を取得する。これにより、縦筋ノイズ減算部140は、抽出された縦筋ノイズ成分を被写体像から減算することで、被写体像から縦筋ノイズ成分を除去する。なお、OB領域を設けている固体撮像素子104を用いる場合でも、シャッター103により遮光された有効領域202から遮光画像を取得するようにしてもよい。
さらに縦筋ノイズ減算部140は、撮影画像の全体に対して縦筋ノイズ成分を減算する処理を行っても良いが、撮影画像の一部分に対して縦筋ノイズ成分を減算する処理を行うとしても良い。例えば、固体撮像素子104において縦筋ノイズ成分のレベルが大きい座標(カラム)に対して特に減算処理を行うとしても良く、あるいは固体撮像素子104において予め縦筋ノイズ成分のレベルが大きい座標(カラム)を決め、縦筋ノイズ成分を減算する処理を施すとしても良い。CMOSの場合は、列(カラム)方向の特性のばらつきは列(カラム)全体に発生する傾向にある為、列(カラム)全体に対して縦筋ノイズ成分を減算する処理を行うとしても良い。またCCDの場合は、垂直CCDの欠陥により特定の列(カラム)に縦筋ノイズ成分が発生する傾向にある為、特定の列(カラム)のみに対して縦筋ノイズ成分を減算する処理を行うとしても良い。
図3に、縦筋ノイズ成分抽出部150を示す。縦筋ノイズ成分150は、初期化係数乗算器151と、セレクタ(以下、SELと称する)152と、累積加算器153と、SEL156と、帰還係数乗算器155と、ラインバッファ154と、補正係数乗算器157と、動作モード切替部158と、を備える。動作モード切替部158は、入力された遮光画像データのライン数をカウントし、SEL152と、SEL156と、を用いて縦筋ノイズ成分抽出部150の動作モードである、累積加算モードと、IIRフィルタモードと、補正モードと、を切り替える。動作モードの詳細については後述する。
初期化係数乗算器151は、固体撮像素子104から取得した遮光画像データに対して、初期化係数Kxを乗算する。ここで初期化係数Kxは、フィルタ計算の初期値に用いられる係数である。SEL152は、動作モード切替部158の制御により遮光画像データの流れを切り替えるセレクタである。累積加算器153は、遮光画像データを累積加算し、ラインバッファ154に出力する。累積加算モード動作開始前におけるラインバッファ154には、例として値0が記憶されているものとする。ラインバッファ154には、累積加算器153により累積加算された遮光画像データが記憶される。なお、ラインバッファ154を複数とし、複数ライン(カラム)分の遮光画像データを記憶させるようにしてもよい。
帰還係数乗算器155は、ラインバッファ154に記憶されている累積加算された遮光画像データに帰還係数Kyを乗算する。SEL156は、動作モード切替部158の制御に基づいて画像データの流れを切り替えるセレクタである。補正係数乗算器157は、ラインバッファ154に記憶されている累積加算された遮光画像データに補正係数Kzを乗算する。
図4に、図3に示す縦筋ノイズ成分抽出部150における遮光画像データと撮影画像データの流れを動作モード別に示す。縦筋ノイズ成分抽出部150の動作モードには、累積加算モードと、IIRフィルタモードと、補正モードと、がある。縦筋ノイズ成分抽出部150に遮光画像データが入力されると、縦筋ノイズ成分抽出部150は、まず累積加算モードにて動作を行う。図4(A)に累積加算モードにおける遮光画像データの流れを示す。SEL152とSEL156は、動作モード切替部158の制御により、累積加算モードを実行するよう、縦筋ノイズ成分抽出部150のデータの流れを切り替える。
固体撮像素子104から縦筋ノイズ成分抽出部150に入力された遮光画像データは、初期化係数乗算器151により初期化係数Kxが乗算され、SEL152を経由して累積加算器153に入力される。累積加算器153は、入力された遮光画像データに初期化係数Kxを乗算した遮光画像データと、ラインバッファ154から取得した前回までに累積加算された遮光画像データと、を加算して、今回累積加算した遮光画像データとしてラインバッファ154に記憶させる。
縦筋ノイズ成分抽出部150が累積加算モードで動作する場合、n本(nは1以上の整数)のラインを累積加算した遮光画像データSnは[数1]で表される。ここで、Dnはn本目のラインの遮光画像データ、Kxは初期化係数、である。
縦筋ノイズ成分抽出部150が累積加算モードで動作する場合、縦筋ノイズ成分抽出部150は、入力された遮光画像データに初期化係数Kxを乗じて累積加算を繰り返すことで、[数1]のSnで示される値をラインバッファ154に記憶させる。
[数2]に、遮光画像のn本のラインを累積加算した場合の、入力データに対する累積値の増幅度を示す。すなわち累積値の増幅度は、入力された遮光画像データのラインn本を累積加算した場合に、遮光画像データの累積値がどれだけ増幅するかを示している。
次に、動作モード切替部158は、遮光画像データが何ライン入力されたかをカウントしておき、そのカウント値が所定のライン数に達すると、SEL152と、SEL156と、を切り替えることで、縦筋ノイズ成分抽出部150をIIRフィルタモードに切り替える。
IIRフィルタモードでは、縦筋ノイズ成分抽出部150は、ラインバッファ154に記憶された遮光画像データに帰還係数Kyを乗算し、これを入力された遮光画像データに加算するIIRフィルタとして動作する。なお、IIRフィルタモードとして動作するまでに行っていた累積加算モードの動作によってラインバッファ154に記憶されていた遮光画像データは、IIRフィルタモードの動作を開始する際のラインバッファ154の初期値として、そのまま引き継がれるものとする。
図4(B)にIIRフィルタモードにおける遮光画像データの流れを示す。縦筋ノイズ成分抽出部150に入力された遮光画像は、SEL152を経由して累積加算器153に入力される。累積加算器153は、帰還係数乗算器155によって帰還係数Kyが乗算された前回までに累積加算された遮光画像データに、入力された遮光画像データを加算して、今回累積加算した遮光画像データとしてラインバッファ154に記憶させる。
縦筋ノイズ成分抽出部150がIIRフィルタモードで動作する場合、n本のラインを累積加算した遮光画像データSnは[数3]で表される。ここで、Dnはn本目のラインの遮光画像データ、Kyは帰還係数(0<Ky<1)、である。
縦筋ノイズ成分抽出部150がIIRフィルタモードで動作する場合、縦筋ノイズ成分抽出部150は、n本目のラインの遮光画像データが入力された際、前回までに入力された(n−1)本のラインを累積加算した遮光画像データSn−1に帰還係数Kyを乗算して、これに今回入力されたn本目のラインの遮光画像データDnを加算することで、垂直IIRフィルタとして動作し、[数3]のSnをラインバッファ154に記憶させる。
[数4]に、n本のラインの遮光画像データを累積加算した場合の、入力された遮光画像データに対するフィルタ増幅率を示す。ここでフィルタ増幅率は、入力された遮光画像データがIIRフィルタによりどれだけ増幅するか、を示している。
また、nが無限大の場合は[数4]は[数5]と一致する。例えば、帰還係数Ky=63/64である場合、フィルタ増幅率は[数5]により64になる。
帰還係数Kyの(n−1)乗を、遮光画像データをIIRフィルタモードで累積加算する際のn本目のラインに対するゲインと呼ぶ。すなわち図4(B)、[数3]に示されるように、遮光画像データDnが入力された際に、前回の入力までにラインバッファ154に累積された(n−1)本のラインの累積値Sn−1に帰還係数Kyが乗算され、今回入力された遮光画像データDnと乗算結果が累積加算器153によって加算され、ラインバッファ154にSnとして入力されるため、遮光画像データをIIRフィルタモードで累積加算する際のn本目のラインに対するゲインは、帰還係数Kyの(n−1)乗となる。
したがって、フィルタ計算においてゲインとは重み付けであり、ゲインの大きいラインはノイズ成分減算への影響度が大きい。図5と図6に、累積加算モードからIIRフィルタ動作モードに切り替えた場合の、累積加算ライン本数とゲインとの関係を示す。図5と図6で累積加算ライン本数は、累積加算モードと、累積加算モードの次に実行されるIIRフィルタモードと、において累積加算器153により加算されるラインの本数である。
例として、計算条件を図5(F)に示す、初期化係数Kx=1、帰還係数Ky=63/64、初期化ライン数=(フィルタ増幅率)/(初期化係数Kx)=(1/(1−Ky))/Kx=64とした場合の、累積加算ライン本数(横軸)と、ゲイン(縦軸)との関係を、図5の(A)から(E)に示す。ここで初期化ライン数は、累積加算モードにおいて累積するラインの本数を示す。すなわち「初期化」とは、縦筋ノイズ成分抽出部150が、累積加算モードによる累積加算を実行することにより、ラインバッファ154の初期値を決めることであり、「初期化あり」とは、縦筋ノイズ成分抽出部150が累積加算モードによる累積加算を実行した後にIIRフィルタ動作に移行したことを意味し、「初期化なし」とは、縦筋ノイズ成分抽出部150が累積加算モードによる累積加算を実行せずにIIRフィルタ動作に移行したことを意味する。図5と図6では「初期化あり」と「初期化なし」の場合を容易に比較するため、無限本数のラインを累積加算した場合のライン毎のゲインを破線で示している。
図5(A)は、累積加算モードによる初期化が完了した状態での累積加算ライン本数とゲインとの関係を示す。初期化係数Kx=1を高さとし、初期化ライン数=64を底辺とする長方形で示される網掛け部分の面積は64であり、[数2]に初期化係数Kx=1、n=64を代入しても面積が得られる。すなわち、図5(A)の網掛け部分の面積は入力データに対する累積値の増幅度であり、初期化が完了した状態でラインバッファ154に記憶されているSnを示す。
図5(B)は、縦筋ノイズ成分抽出部150がIIRフィルタモードに移行し、遮光画像データを累積加算している状態であり、50本目まで遮光画像データを累積加算した場合の累積加算ライン本数とゲインとの関係を示す。網掛け部分400は、IIRフィルタモードで入力された遮光画像データのライン毎のゲインを示す領域であり、縦筋ノイズ成分抽出部150に遮光画像データが入力される毎に、前回までにラインバッファ154に記憶された累積値に帰還係数Ky=63/64が乗算されるため、ライン毎のゲインは網掛け部分400に示される勾配をもつ。また網掛け部分400の面積は、[数4]にn=50を代入することで計算され、約35となる。
網掛け部分401は、累積加算モードで決まったラインバッファ154の初期値が、IIRフィルタモードにおいてライン毎に有しているゲインを示す領域である。累積加算モードで決まったラインバッファ154の初期値を使ってIIRフィルタモードを開始することを考慮すると、ラインバッファ154の初期値に対してはIIRフィルタモードにおける1本目の遮光画像データ入力から帰還係数Ky=63/64が乗算される。したがって、網掛け部分の面積は、IIRフィルタモードにおいて50本目まで遮光画像データを累積加算した場合、ゲイン(帰還係数Ky=(63/64)の50乗)を高さとし、初期化ライン数(64本)を網掛け部分の底辺とする長方形の面積で示され、約29となるので、網掛け部分400の面積と網掛け部分401の面積を合計すると、64となる。
図5(C)は、同様に100本目まで遮光画像データを累積加算した場合の累積加算ライン本数とゲインとの関係を示し、図5(D)は、同様に150本目まで遮光画像データを累積加算した場合の累積加算ライン本数とゲインとの関係を示す。またそれぞれの網掛け部分の面積は同様に64である。
図5(E)は、無限本目まで遮光画像データを累積加算した場合の累積加算ライン本数とゲインとの関係である。網掛け部分の面積は、帰還係数Ky=63/64を[数5]に代入することにより64と判る。
同様に、計算条件を図6(F)に示す、初期化係数Kx=2、帰還係数Ky=63/64、初期化ライン数=(フィルタ増幅率)/(初期化係数Kx)=(1/(1−Ky))/Kx=32とした場合の、累積加算ライン本数(横軸)と、ゲイン(縦軸)との関係を、図6の(A)から(E)に示す。
図6(A)は、累積加算モードによる初期化が完了した状態での累積加算ライン本数とゲインとの関係を示す。例として、初期化ライン数=32の遮光画像データが、初期化係数Kx=2で入力された場合を示しているため、初期化係数Kx=2を高さとし、初期化ライン数を底辺とする長方形で示される網掛け部分の面積は64となっている。すなわち、初期化ライン数を図5(A)の場合よりも少ない32本として、累積に必要な時間を短くする代わりに、初期化係数Kxを2とすることで、ラインバッファ154の初期値を64としている。
図6(B)は、縦筋ノイズ成分抽出部150がIIRフィルタモードに移行し遮光画像データを累積加算する途中の状態であり、50本目まで遮光画像データを累積加算した場合の累積加算ライン本数とゲインとの関係を示す。図5(B)の場合と同様の計算により、網掛け部分の面積は、64となる。
図6(C)は、同様に100本目まで遮光画像データを累積加算した場合の累積加算ライン本数とゲインとの関係を示し、図6(D)は、同様に150本目まで遮光画像データを累積加算した場合の累積加算ライン本数とゲインとの関係を示す。またそれぞれの網掛け部分の面積は同様に64である。
図6(E)は、無限本目まで遮光画像データを累積加算した場合の累積加算ライン本数とゲインとの関係である。網掛け部分の面積は、帰還係数Ky=63/64を[数5]に代入することにより64と判る。
したがって、図5(A)から(E)のそれぞれの網掛け部分面積は等しい。図6についても、同様である。すなわち、縦筋ノイズ成分抽出部150は、累積加算モードにより初期化を行ってから(図5(A)、図6(A))IIRフィルタモードへと移行することで((図5(B)、図6(B)))、遮光画像データの累積加算を少ないライン数で止めたとしても(例えば、図5(C)、図6(C))、無限本のライン数をIIRフィルタモードで動作させた場合と同じフィルタ増幅率(図5、図6のそれぞれの網掛け部分の面積)を用いて縦筋ノイズ成分を抽出する計算を行うことができるため、遮光画像データから縦筋ノイズ成分を高い精度で抽出することができる。
また、縦筋ノイズ成分抽出部150は遮光画像データの累積加算を少ないライン数で止めた場合、フィルタ計算に時間を要することなく縦筋ノイズ成分を高速に抽出することができる。なお、IIRフィルタモードを省略して、累積加算モードから直接、補正モードに移行するとしても良い。
また、初期化係数乗算器151からの入力がない累積加算器(不図示)を、累積加算器153のほかに設けてもよい。その場合、動作モード切替部158は、SEL152によりデータの流れを切り替える代わりに、動作モードに応じて累積加算器(不図示)を選択すれば、SEL152によらずデータの流れを切り替えることができる。また、帰還係数乗算器155からの入力がない累積加算器(不図示)を、累積加算器153のほかに設けてもよい。その場合、動作モード切替部158は、SEL156によりデータの流れを切り替える代わりに、動作モードに応じて累積加算器(不図示)を選択すれば、SEL156によらずデータの流れを切り替えることができる。
図4(C)に、縦筋ノイズ成分抽出部150の補正モードにおける撮影画像データの流れを示す。縦筋ノイズ成分抽出部150は、累積加算モードと、所定のライン本数まで累積加算したIIRフィルタモードと、により縦筋ノイズ成分を抽出した後、補正モードに移行する。
補正係数乗算器157は、ラインバッファ154から遮光画像データの累積値を取得し、補正係数Kzを乗算した値を、縦筋ノイズ成分として縦筋ノイズ減算部140に出力する。ここで補正係数Kzは、フィルタにより増幅された遮光画像データを増幅前のレベルに戻すため、例えばフィルタ増幅率の逆数を設定するとしてもよい。あるいは、固体撮像素子104の特性、温度、撮像装置にユーザが設定する撮影条件などに応じて、補正係数Kzの値を決めても良い。例えば過補正を防止する目的で、補正係数Kzを小さめに設定してもよく、補正を強める目的で補正係数Kzを大きめに設定してもよい。
縦筋ノイズ成分抽出部150は、図3に示す構成以外に次のような構成としてもよい。図7に示す縦筋ノイズ成分抽出部150は、図3に示す構成に水平平均値算出器301が追加されている。水平平均値算出器301は、固体撮像素子104から、遮光画像データを取得する。
図8に、図7に示す縦筋ノイズ成分抽出部150における遮光画像データと撮影画像データの流れを動作モード別に示す。縦筋ノイズ成分抽出部150の動作モードとして、累積加算モード1と、累積加算モード2と、IIRフィルタモードと、補正モードと、がある。水平平均値算出器301は、累積加算器302と、フリップフロップ(FF)303と、平均値算出器304と、SEL305と、を備える。
図8(A1)に累積加算モード1における遮光画像データの流れを示す。縦筋ノイズ成分抽出部150に遮光画像データが入力されると、縦筋ノイズ成分抽出部150は、累積加算モード1にて動作を行う。動作モード切替部158は、SEL152と、SEL156と、を用いて縦筋ノイズ成分抽出部150のデータの流れを切り替える。
水平平均値算出器301は、例えば固体撮像素子104の水平方向の遮光画像の平均値を1ライン全体に関して算出する。
次に、初期化係数乗算器151は、水平平均値算出器301から遮光画像データの平均値を取得し、これに初期化係数Kxを乗算後、SEL152に出力する。SEL152は、累積加算器153に遮光画像データの平均値を出力し、累積加算器153はラインバッファ154に遮光画像データの累積値を記憶させる。
縦筋ノイズ成分抽出部150に再び遮光画像データが入力されると、水平平均値算出器301は、固体撮像素子104の水平方向の遮光画像の平均値を1ライン全体に関して算出する。次に、初期化係数乗算器151は、水平平均値算出器301から遮光画像データの平均値を取得し、これに初期化係数Kxを乗算後、SEL152に出力する。SEL152は、累積加算器153に遮光画像データの平均値を出力し、累積加算器153は遮光画像データの累積値をラインバッファ154からSEL156経由で取得し、これに遮光画像の平均値を加算した結果をラインバッファ154に記憶させる。
次に縦筋ノイズ成分抽出部150は、累積加算モード2に移行する(図8(A2))。累積加算モード2では、水平平均値算出器301は遮光画像データに対して特に処理を行わず、初期化係数乗算器151に遮光画像データを転送する。累積加算モード2の以降の縦筋ノイズ成分抽出部150の動作は、前述の図4(A)に示す累積加算モードと同様である。
次に縦筋ノイズ成分抽出部150は、IIRフィルタモードに移行し(図8(B))、前述の図4(B)に示すIIRフィルタモードと同様の動作を行う。さらに、縦筋ノイズ成分抽出部150は、補正モードに移行し(図8(C))、前述の図4(C)に示す補正モードと同様の動作を行う。なお、累積加算モード1で初期化した後、IIRフィルタモードに移行するとしても良い。また、累積加算モード1で初期化した後に、累積加算モード2でさらに初期化を行い、次にIIRフィルタモードに移行するとしても良い。
すなわち、図3に示した縦筋ノイズ成分抽出部150は、遮光画像データに対して垂直方向に累積値を算出していたが、図7に示した縦筋ノイズ成分抽出部150は、遮光画像データに対して水平方向に平均値を算出した後、垂直方向に累積値を算出する点が異なる。
図3に示した縦筋ノイズ成分抽出部150は、OB領域のライン本数が少ない場合、初期化係数Kxを大きくすることでフィルタの初期化を行うが、ライン本数が少ないデータで初期化すると、ランダムノイズの影響を受けやすくなるという問題がある。しかし、図7に示した縦筋ノイズ成分抽出部150は、水平方向の平均値を用いてから初期化を行うので、ライン本数が少ないデータで初期化した場合でもランダムノイズの影響を受け難いという点で有効である。
図9に、動画撮影状態あるいは動画撮影待機状態における、固体撮像素子104から縦筋ノイズ補正部105への入力データと、縦筋ノイズ成分抽出部150の動作モードと、縦筋ノイズ減算部140の動作と、の関係について示す。なお、ここに示す各値は一例である。
固体撮像素子104のOB領域201若しくはOB領域203、又はOB領域201とOB領域203と、から縦筋ノイズ抽出部150に遮光画像データが入力される。縦筋ノイズ抽出部150は、初期化ライン数=8、初期化係数Kx=4で、累積加算モードの動作を実行し、初期化が完了する。縦筋ノイズ減算部140は、動作停止中である(ステップS1)。
固体撮像素子104の有効領域202から縦筋ノイズ減算部140に、撮影画像データが入力される。縦筋ノイズ減算部140が撮影画像データから縦筋ノイズ成分を減算するために、縦筋ノイズ抽出部150は、初期化ライン数=8と初期化係数Kx=4を掛けた値が32であるので、例えば補正係数Kz=1/32で補正モードの動作を、ステップS1で取得した遮光画像データに対して実行し、縦筋ノイズ成分を抽出して縦筋ノイズ減算部140に出力する。縦筋ノイズ減算部140は、撮影画像データから縦筋ノイズ成分を減算する(ステップS2)。
固体撮像素子104のOB領域201若しくはOB領域203、又はOB領域201とOB領域203と、から縦筋ノイズ抽出部150に遮光画像データが入力される。縦筋ノイズ抽出部150は、帰還係数Ky=31/32で、IIRフィルタモードの動作を、8本のラインに対し実行する。縦筋ノイズ減算部140は、動作停止中である(ステップS3)。
ステップS4では、ステップS2と同様の動作を行い、ステップS5では、ステップS3と同様の動作を行い、ステップS6では、ステップS2と同様の動作を行い、以降は同様の繰り返しにより、動画撮影状態あるいは動画撮影待機状態を続ける。
このように、縦筋ノイズ抽出部150は、OB領域201、OB領域203から遮光画像データを取得し、ステップS1において初期化を済ませているので、ステップS3以降の遮光画像データに対してはIIRフィルタモードの動作を行うことができ、動画撮影状態あるいは動画撮影待機状態において、シャッター103による遮光画像データを使わなくとも、縦筋ノイズ成分の抽出を行うことができる。
図10に、静止画撮影状態における、固体撮像素子104から縦筋ノイズ補正部105への入力データと、縦筋ノイズ成分抽出部150の動作モードと、縦筋ノイズ減算部140の動作と、の関係について示す。なお、ここに示す各値は一例である。
CPU115は、シャッター103を閉じる。固体撮像素子104の有効領域202から縦筋ノイズ抽出部150に遮光画像データが入力される。この場合、遮光画像データは複数本のラインから入力されてもよい。縦筋ノイズ抽出部150は、初期化ライン数=32、初期化係数Kx=2で、累積加算モードの動作を実行し、初期化が完了する。縦筋ノイズ減算部140は、動作停止中である(ステップS10)。
CPU115は、シャッター103を閉じたまま、固体撮像素子104の有効領域202から縦筋ノイズ抽出部150に遮光画像データが入力される。縦筋ノイズ抽出部150は、帰還係数Ky=63/64で、IIRフィルタモードの動作を8本のラインに対し実行する。縦筋ノイズ減算部140は、動作停止中である(ステップS11)。
CPU115は、シャッター103を開く。固体撮像素子104の有効領域202から縦筋ノイズ減算部140に、撮影画像データが入力される。縦筋ノイズ抽出部150は、ステップS11までに取得した遮光画像データに対して、補正係数Kz=1/64で補正モードの動作を実行し、縦筋ノイズ成分を抽出して縦筋ノイズ減算部140に出力する。縦筋ノイズ減算部140は、撮影画像データから縦筋ノイズ成分を減算する(ステップS12)。
このように、縦筋ノイズ抽出部150は、シャッター103による遮光画像データを取得することで、固体撮像素子104にOB領域201、OB領域203が無い場合でも静止画撮影状態において縦筋ノイズ成分の抽出を行うことができる。
図11に、静止画撮影状態における、固体撮像素子104から縦筋ノイズ補正部105への入力データと、縦筋ノイズ成分抽出部150の動作モードと、縦筋ノイズ減算部140の動作と、の関係について、図10の手順とは異なる手順を示す。なお、ここに示す各値は一例である。
CPU115は、シャッター103を閉じる。固体撮像素子104の有効領域202から縦筋ノイズ抽出部150に遮光画像データが入力される。この場合、遮光画像データは複数本のラインから入力されてもよい。縦筋ノイズ抽出部150は、初期化ライン数=64、初期化係数Kx=1で、累積加算モードの動作を実行し、初期化が完了する。縦筋ノイズ減算部140は、動作停止中である(ステップS20)。
CPU115は、シャッター103を開く。固体撮像素子104の有効領域202から縦筋ノイズ減算部140に、撮影画像データが入力される。縦筋ノイズ抽出部150は、ステップS20で取得した遮光画像データに対して、補正係数Kz=1/64で補正モードの動作を実行し、縦筋ノイズ成分を抽出して縦筋ノイズ減算部140に出力する。縦筋ノイズ減算部140は、撮影画像データから縦筋ノイズ成分を減算する(ステップS21)。
このように、縦筋ノイズ抽出部150は、シャッター103による遮光画像データを取得し、累積加算モードによる初期化後のIIRフィルタモードにおける動作を実行せずに、静止画撮影状態において縦筋ノイズ成分の抽出を行うことも可能である。
図12に、静止画撮影の連写状態における、固体撮像素子104から縦筋ノイズ補正部105への入力データと、縦筋ノイズ成分抽出部150の動作モードと、縦筋ノイズ減算部140の動作と、の関係について示す。なお、ここに示す各値は一例である。
CPU115は、シャッター103を閉じる。固体撮像素子104の有効領域202から縦筋ノイズ抽出部150に遮光画像データが入力される。この場合、遮光画像データは複数本のラインから入力されてもよい。縦筋ノイズ抽出部150は、初期化ライン数=64、初期化係数Kx=1で、累積加算モードの動作を実行し、初期化が完了する。縦筋ノイズ減算部140は、動作停止中である(ステップS30)。
CPU115は、シャッター103を開く。固体撮像素子104の有効領域202から縦筋ノイズ減算部140に、撮影画像データが入力される。縦筋ノイズ抽出部150は、ステップS20で取得した遮光画像データに対して、補正係数Kz=1/64で補正モードの動作を実行し、縦筋ノイズ成分を抽出して縦筋ノイズ減算部140に出力する。縦筋ノイズ減算部140は、撮影画像データから縦筋ノイズ成分を減算する(ステップS31)。
CPU115は、シャッター103を閉じ、固体撮像素子104の有効領域202から縦筋ノイズ抽出部150に遮光画像データが入力される。縦筋ノイズ抽出部150は、帰還係数Ky=63/64で、IIRフィルタモードの動作を16本のラインに対し実行する。縦筋ノイズ減算部140は、動作停止中である(ステップS32)。
ステップS33では、ステップS31と同様の動作を行い、ステップS34では、ステップS32と同様の動作を行い、ステップS35では、ステップS31と同様の動作を行い、以降は同様の繰り返しにより、静止画撮影の連写状態を続ける。
このように、縦筋ノイズ抽出部150は、少ない本数のラインに対してIIRフィルタモードにおける動作を実行するため、縦筋ノイズ成分の抽出を高速に行うことができ、静止画撮影の高速連写に有利である。
縦筋ノイズ減算部140は、固体撮像素子104から撮影画像と、縦筋ノイズ成分抽出部150から縦筋ノイズ成分と、を取得し、撮影画像から縦筋ノイズ成分を減算したデータを前処理部106に出力する。
前処理部106と、画像処理部107と、表示IF部108と、カードIF部110と、はデータバス112で接続されており、これらのブロックの起動タイミングや、動作モードはCPU115により制御される。
前処理部106は、縦筋ノイズ成分が減算された撮影画像に対し、必要に応じて例えば、画像全体が平均的に一様な明るさとなるようシェーディング補正等の処理を施し、画像処理部107に撮影画像データを出力する。
画像処理部107は、必要に応じて例えば、撮影画像データに対して輝度クロマ(YC)生成処理等の画像処理を行い、撮影画像データをメモリコントローラ113に出力する。メモリコントローラ113は、撮影画像データをメモリ114に記憶させる。カードIF部110は、メモリ114から撮影画像データを取得し、記録メディア111に撮影画像データを記憶させる。また、表示IF部108は、メモリ114から撮影画像データを取得し、表示パネル109に表示する。
このように、縦筋ノイズ成分抽出部150は、累積加算モードにおいてIIRフィルタのフィルタ増幅率を考慮した初期化を行い、IIRフィルタモードへと移行するため、遮光画像から取得されるライン数が少ない場合であっても、縦筋ノイズ成分を遮光画像から精度よく高速に抽出することができ、良好な撮影画像を高速に得ることができる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、固体撮像素子を90度回転して撮像装置に配置した場合や、画像信号処理、画像信号記録処理等によって、縦筋状のノイズが横筋状のノイズとして見えることもあるため、縦筋ノイズの方向は縦に限定されなくてもよい。
また、累積加算モードにおける初期化は、初期化ライン数と初期化係数との積が、IIRフィルタモードにおけるフィルタ増幅率となるよう限定されなくてもよい。
また、本発明に記載のノイズ成分抽出部は、縦筋ノイズ成分抽出部150に対応し、ノイズ減算部は、縦筋ノイズ減算部140に対応し、初期化係数乗算部は、初期化係数乗算器151に対応し、記憶部は、ラインバッファ154に対応し、帰還係数乗算部は、帰還係数乗算器155に対応し、加算部は、累積加算器153に対応し、水平平均値算出部は、水平平均値算出器301に対応する。
また、図9、図10、図11、図12に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、通信端末の実行処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
101…光学レンズ 102…絞り 103…シャッター 104…固体撮像素子 105…縦筋ノイズ補正部 106…前処理部 107…画像処理部 108…表示IF部 109…表示パネル 110…カードIF部 111…記録メディア 112…データバス 113…メモリコントローラ 114…メモリ 115…CPU 140…縦筋ノイズ減算部 150…縦筋ノイズ成分抽出部 151…初期化係数乗算器 152…SEL 153…累積加算器 154…ラインバッファ 155…帰還係数乗算器 156…SEL 157…補正係数乗算器 158…動作モード切替部 201…OB領域 202…有効領域 203…OB領域 301…水平平均値算出器 302…累積加算器 303…フリップフロップ(FF) 304…平均値算出器 305…SEL 400…網掛け部分 401…網掛け部分