以下に、本発明を実施するための形態について詳細に説明する。尚、以下に説明する実施の形態は、本発明を実現するための一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。また、後述する各実施形態の一部を適宜組み合わせて構成してもよい。
[装置構成]本発明に係る撮像装置は、特にデジタルビデオカメラやデジタルスチルカメラ(以下、カメラ)に有用である。このため、以下では、本発明に係る撮像装置をCMOSイメージセンサを搭載するデジタルカメラに適用した例について、図1及び図2を参照して説明する。
図1において、レンズ101は、被写体の光像を撮像素子103の撮像面に収束させる。絞り102は、被写体像の光量を調節するAE(自動露出制御)を行い、撮像される画像を適切な輝度レベルに保つように駆動される。
撮像素子103は、被写体の光像を電気信号に変換するCMOSイメージセンサ(以下、CMOSセンサ)である。
図2に示すように、CMOSセンサ103は、複数の画素が行方向(水平方向)及び列方向(垂直方向)において2次元に配列された有効画素部として光電変換素子であるフォトダイオードに光が照射される有効画素領域203を有する。また、CMOSセンサ103は、有効画素領域203の行方向または列方向の端部に設けられた遮光画素部として、アルミ薄膜等の遮光膜により光の照射が数列から数10列にわたって遮光される水平オプティカルブラック(以下、HOB)領域201と、アルミ薄膜等の遮光膜により光の照射が数ラインから数十ラインにわたって遮光される垂直オプティカルブラック(以下、VOB)領域202とに区分される。
同期信号発生器(以下、SSG)104は、水平同期信号(以下、HD信号)及び垂直同期信号(以下、VD信号)を生成する。
タイミングジェネレータ(以下、TG)105は、CMOSセンサ103を駆動させる各種制御信号をHD信号及びVD信号に同期して発生する。
A/D変換器106はCMOSセンサ103から出力されるアナログ信号をデジタル画像信号に変換する。
OBクランプ回路107は、A/D変換器106のOB期間の出力値を所定の値に固定する。
列オフセット検出回路108は、OBクランプ回路107から出力された画像信号に含まれる列オフセット成分をVOB領域から抽出する。列オフセット除去回路111は、列オフセット検出回路108にて検出された列オフセットを有効画素領域203の撮像信号から減算する。
ウィンドウ回路109は、列オフセット検出回路108及び列オフセット除去回路111を駆動するための制御信号を生成する。
システムコントローラ110は、各部を統括して制御して動作モードやパラメータを決定する。
信号処理回路112は、デジタル画像信号に対して補間処理や色変換処理、縮小や拡大などの変倍処理を行い、表示デバイスに表示可能な画像信号に変換すると共に、記憶媒体に合せてJPEG形式の画像データなどに変換する。
[センサ構成]図3を参照して、CMOSセンサ103の回路構成について説明する。図3において、垂直走査回路300は画素配列から特定の読み出し行を選択する。リセットトランジスタ(以下、リセットTr)301a〜301cはフォトダイオードに蓄積された光信号電荷をリセットする。転送トランジスタ(以下、転送Tr)302a〜302cはフォトダイオードに蓄積された光信号電荷を後述するフローティングディフュージョンに転送する。
フォトダイオード(以下、PD)303a〜303cは光電変換素子からなる。フローティングディフュージョン(以下、FD)304a〜304cは光信号電荷をFD電位に転換する。選択トランジスタ(以下、選択Tr)305a〜305cは特定行を選択して画素ソースフォロアを作動させてFD電位を垂直出力線204a〜204cに読み出す。
画素ソースフォロア(以下、画素SF)306a〜306cはFD電位を垂直出力線に読み出すバッファアンプである。
基準電圧Vref307は列アンプ205a〜205cでの信号増幅用の基準として用いられる。308は読み出し回路の1画素信号の構成単位である。サンプルホールド回路(以下、S/H(N))309a〜309cはN信号を記憶する。サンプルホールド回路(以下、S/H(S))310a〜310cはS信号を記憶する。
また、m行目の行選択線(以下、PSEL_m)311、m行目のリセット信号線(以下、PRES_m)312、m行目の信号転送線(以下、PTX_m)313は、CMOSセンサ103を制御する信号線である。また、信号線(以下、PTN)314は、S/H(N)309への読み出し期間を決定し、信号線(以下、PTS)315、S/H(S)310への読み出し期間を決定する信号線である。
320は水平出力線であり、選択トランジスタ(以下、選択Tr)316a〜316cは、各列のS/H(N)309の出力を水平出力線320に選択して読み出す。同様に、321は水平出力線であり、選択トランジスタ(以下、選択Tr)317a〜317cは、各列のS/H(S)310の出力を水平出力線321に選択して読み出す。
水平走査回路319は各列のS/H(N)309の出力およびS/H(S)310の出力から特定の読み出し列を選択する。318a〜318cは水平走査回路319から出力されるn〜n+2列目の選択信号Hn〜Hn+2である。
差動回路323は水平出力線320、321からの信号を受けてCMOSセンサ103の出力VOUTとして差動出力を行う。
なお、1画素信号の構成単位308に4つのトランジスタを持つ構成を例示したが、2種類以上のリセット電圧を用い、画素SFを不活性化・活性化させる方式を用いることで、選択Tr305を省略することもできる。また、FDおよびSFを複数のPDで共有する構造であってもよい。
次に図3及び図4を参照して、読み出し時における図3の信号線の動作タイミングについて説明する。
撮影動作が開始されてPD303a〜303cに光が入射されると、光信号電荷が発生し蓄積を開始する。垂直走査回路300により各行の走査が順次行われていき、m行目の走査に至るとPRES_m312がハイレベルになり、FD304a〜304cの信号がリセットされる。
次にPSEL_m311がハイレベルになり、リセットノイズを含むリセットレベルが画素SF306a〜306cを通じて垂直出力線204a〜204cへ読み出される。そして、垂直出力線204a〜204cに読み出されたリセットレベルと基準電圧Vref307との差分が列アンプ205a〜205cにて増幅されて出力される。
そして、この出力されたN信号を、PTN_m313がハイレベルの期間(以下、N読み期間)でS/H(N)309に記憶される。その後、PTX_m313をハイレベルにして、PD303a〜303cにて発生した電荷を、FD304a〜304cに読み出す。N信号と同様にして、画素SF306a〜306c、垂直出力線204a〜204c、列アンプ205a〜205cを通過した後に出力されるS信号は、PTS_mがハイレベルの期間(以下、S読み期間)にS/H(S)310に記憶される。
このようにして読み出されS/H(N)309に記憶された各列のm行目のN信号は、水平走査回路319の出力信号318a〜318cにより制御される選択Tr316a〜316cを介して、水平出力線320に列ごとに順次読み出される。
同様に、読み出されS/H(S)310に記憶された各列のm行目のN信号は、水平走査回路319の出力信号318a〜318cにより制御される選択Tr317a〜317cを介して、水平出力線321に列ごとに順次読み出される。
列ごとに並列に読み出されたm行目のN信号とS信号とは、差動信号としてそれぞれ差動回路323に入力されて、その差動出力がCMOSセンサ103のセンサ出力VOUTとなる。
S信号は、N信号にPD303a〜303cで発生した光信号電荷による信号が加わったものである。これによりS信号とN信号との差動動作をなすことでCDS動作が行われる。そして、CMOSセンサ103のセンサ出力VOUTから、素子に起因するリセットノイズや1/fノイズが除去されて、撮像信号には列オフセットに加えて画素欠陥ノイズとRTS(ランダム・テレグラム・シグナル)ノイズとが重畳する様態で出力される。
[実施形態1]次に図5を参照して、実施形態1の撮像装置の動作について説明する。
図5は、本実施形態のCMOSセンサ103のタイミング信号及びのタイミング信号に同期して出力された出力信号を例示する図である。
図5において、TG105は、SSG104において生成されるHD信号及びVD信号からCMOSセンサ103を駆動する各種制御信号を生成する。CMOSセンサ103は、TG105で生成される制御信号のタイミングで、レンズ101及び絞り102を通過した光信号を電気信号へと変換する。
CMOSセンサ103から読み出されたアナログ信号は、A/D変換器106にてデジタル信号に変換され、OBクランプ回路107を介してOB期間を所定のレベルに固定された後に、列オフセット検出回路108及び列オフセット除去回路111へ出力される。
ウィンドウ回路109は、HD信号及びVD信号を参照して、列オフセット検出回路108にVOB領域における列オフセットの垂直の検出期間を指示する検出許可信号VWDETと水平の検出期間を指示する検出許可信号HWINと巡回演算の回数をカウントするためのパルス信号CCLKとを供給する。
ウィンドウ回路109は、列オフセット除去回路111に有効画素領域における垂直の列オフセット除去期間を指示する除去許可信号VWCOLと水平の列オフセット除去期間を指示する除去許可信号HWINを供給する。
列オフセット検出回路108は、ウィンドウ回路109から供給された検出許可信号に従って列オフセットデータを算出する。
そして、列オフセット除去回路111は、ウィンドウ回路109から供給された除去許可信号VWCOLに従い、列オフセット検出回路108により列ごとに算出された列オフセット成分を有効画素領域の撮像信号から減算して除去する。
列オフセット除去回路111から出力された画像データは、信号処理回路112において信号処理されて、表示デバイスや記録デバイスに適合する画像データへと変換される。
TG105は、同期信号であるHD信号、VD信号の他に、CMOSセンサ103から1画素ごとに信号を読み出すクロック信号としてHCLK信号をCMOSセンサ103に供給している。
HCLK信号は、CMOSセンサ103の内部の構成要素であるHOB、VOB、有効画素の各領域の画素信号を読み出すためにセンサ出力を1画素サイクル単位で制御し、読み出し禁止期間にセンサ出力を停止する読み出し制御信号である。
TG105は、さらに、センサ出力の黒の基準となる画素信号をVOB、HOBの各領域から選択、抽出するための制御信号(CLPOB信号)をOBクランプ回路107に供給している。
CLPOB信号により抽出されたHOB、VOBの画素信号は、OBクランプ回路107において有効画素領域の撮像信号から減算・出力されることで、黒レベル変動のない安定したセンサ出力を得ることができる。
PBLK信号のタイミングは、1水平期間中のセンサ出力が読み出しを停止しているブランキング期間Tblkを示している。
また、CMOSセンサ103は、背景技術で述べたように、XYアドレス型の読み出し構造に起因して、読み出し列ごとに異なる素子特性のばらつきによって列ごとに異なるオフセットが重畳する、所謂、列オフセットが発生しやすい。列オフセットは、VOB、HOB、有効画素領域の各領域の読み出し経路を共通に持つ同じ列上に等しく発生する性質がある。
また、CMOSセンサ103の出力には列オフセットの他にも、画素欠陥ノイズやRTSノイズが重畳しており、さらにはセンサ後段のアナログ回路やAD変換時の量子化ノイズ等のランダムノイズが重畳される。
図5のセンサ出力(VOB)とセンサ出力(有効画素領域)の波形は、これらに重畳する列オフセットとその他のノイズの態様を模式的に示したものである。
本発明の趣旨は、動画のフレームレートを下げないために1フレームに係るVOB領域を増やすことなく、列オフセットと他のノイズが重畳したVOB領域のセンサ出力から不要なノイズ成分を排除して、列オフセットのみを高精度に検出することにある。
図6は、本発明を実現するための列オフセット検出回路108の回路構成を示している。
図6において、500は列オフセット検出回路108に入力される撮像信号Xnであり、乗算器501(係数K1)の入力に接続される。乗算器501(係数K1)の出力と乗算器503(係数K2)の出力は、それぞれ加算器502の入力に接続される。加算器502の出力はラインメモリ504に入力される。ラインメモリ504の出力は乗算器503に入力されると共に、列オフセット検出回路108の出力505となる。
その他、列オフセットの垂直検出領域を指示する垂直検出ウィンドウ信号506(VWDET)と水平検出領域を指示する水平検出ウィンドウ信号507(HWIN)が、ウィンドウ回路109から列オフセット検出回路108の各部に供給される。また、ラインメモリ504に初期値のリロードを指示するモードリセット信号508(RESM)が、TG105から列オフセット検出回路108の各部に供給される。
次に、列オフセット検出回路108の動作について説明する。
撮像信号Xnは、乗算器501、乗算器503、加算器502、ラインメモリ504とで構成される巡回積分回路に入力されて、垂直データ間の巡回演算が行われる。ラインメモリ504には、水平画素ごとに(列ごとに個別に)値を有する巡回演算値Ynが逐次、更新されて記憶される。
巡回演算値Ynの演算式は下記式1で示される。サフィックスnは巡回演算の回数を表しており、1ラインごとに更新される。
巡回係数 : K1、K2(=1−K1)
巡回演算値 : Yn←K1・Xn+K2・Yn−1・・・(1)
図6の例では、巡回係数として、K1=1/64、K2=63/64が設定されており、1対63の比率で、撮像信号Xnに対して加重平均による演算が巡回的に繰り返される。
ラインメモリ504は、水平検出ウィンドウ信号HWINで示される1水平データ分の画素データを保持できる。
そして、動画撮影の最初のフレームを始動するVD信号に同期して、システムコントローラ110がTG105を介してモードリセット信号508(RESM)によりラインメモリ504に初期値のリロードを指示する。
その後に、巡回積分回路では、垂直検出ウィンドウ信号VWDETと水平検出ウィンドウ信号HWINで示された列オフセット検出領域内で、これらの動作が水平画素ごとに順次行われる。
垂直検出ウィンドウ信号VWDET期間に、複数回の巡回演算の後にラインメモリ518に記憶・保持された巡回演算値が、検出された列オフセットデータとして、列オフセット除去回路111に読み出されて列オフセットの除去が行われる。
図7は、動画撮影の際に連続して読み出された各フレーム画像から列オフセットを検出・補正する処理を示し、図8は、各フレーム画像から列オフセットが検出されて補正データが演算される様子を示している。
VOB領域は全部で64ラインある。このVOB領域は垂直方向に16ラインずつの4つの検出ブロックに分割される。
動画撮影のまず最初に、巡回演算式1の初期値0で第1フレームのVOB領域から列オフセットが検出されて、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。第1フレーム用のVOB領域は、VOB領域の最初の16ラインで指定されたブロック1の領域である。
次の第2フレームでは、第1フレームの列オフセットデータを巡回演算値として引き継いで第2フレーム用のVOB領域から列オフセットが検出されて、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。第2フレーム用のVOB領域は、第1フレームのVOB領域に続く次の16ラインで指定されたブロック2の領域である。
次の第3フレームでは、第2フレームの列オフセットデータを巡回演算値としてさらに引き継いで第3フレーム用のVOB領域から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。第3フレーム用のVOB領域は、第2フレームのVOB領域に続く次の16ラインで指定されたブロック3の領域である。
次の第4フレームでは、第3フレームの列オフセットデータを巡回演算値としてさらに引き継いで第4フレーム用のVOB領域から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。第4フレーム用のVOB領域は、第3フレームのVOB領域に続く最後の16ラインで指定されたブロック4の領域である。そして、第4フレームにおいて全てのVOB領域が読み出される。
そして、次の第5フレームでは、第4フレームの列オフセットデータを巡回演算値としてさらに引き継いで第5フレーム用のVOB領域から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。第5フレーム用のVOB領域は、再びVOB領域の最初の16ラインで指定されたブロック1の領域に戻り、第1フレーム用のVOB領域と同じ領域となる。以降、4フレーム単位で全VOB領域の読み出しが繰り返される。
ところで、列オフセットの検出領域であるVOBには既に説明したように画素欠陥ノイズやRTSノイズが重畳しており、列オフセットの検出精度を劣化させる誤差要因となりうる。
さらに、列オフセットの検出領域においてRTSノイズの発生頻度が高い画素ソースフォロアが偏在しており、検出ブロックごとにRTSノイズの影響による誤差量は大きく異なる。
図9は特定の画素列上に発生するRTSノイズによる誤差量に関して、各検出ブロックごとの誤差量と全検出ブロックでの誤差量との関係を模式的に示している。
図9で検出ブロックごとの誤差量はフレームごとに同一の検出ブロックのみを繰り返して読み出した場合の検出ブロック内の16ラインの加重平均による誤差量を表している。
全検出ブロックでの誤差量は全検出ブロックを4フレーム単位で繰り返して読み出した場合の全検出領域64ラインの加重平均による誤差量を表している。
図9の例では、RTSノイズが検出ブロック1の16ラインに偏って高頻度で発生しており、検出ブロック1の16ラインのみの加重平均による誤差量が画像に影響を及ぼす許容レベルを超える結果となる場合を示している。
RTSノイズの発生頻度を全VOB領域にわたって全画素で低レベルに抑えることは、撮像素子の製造プロセス上、非常に困難である。そして、RTSノイズの発生頻度は局所的に偏在しており、しかも個体差があるため許容レベルを超える検出ブロックが何れになるかは撮像素子ごとにまちまちである。
しかし、RTSノイズがどのように局所的に偏在したとしても、その発生頻度を全VOB領域の中で平均してみた場合に、一定の割合以下に抑えた撮像素子を製造することは十分に可能である。
そして、図9は、このような撮像素子において、検出ブロック2、3、4でのRTSノイズの発生頻度が低いことで、検出ブロック1をこれらに含めた全検出ブロックの64ラインの加重平均による誤差量として、許容レベル以下に低減する様子を示している。
図10は、VOB領域の各検出ブロックにおける同じ列上の画素信号のデータ分布を示しており、以下では、図10を参照してRTSノイズの発生頻度を検出する方法の一例について説明する。
この例では、列データのメディアン値に対して所定の閾値を設ける。そして、この閾値から外れたデータをRTSノイズとみなして発生個数を計数する。計数値の大きなものほどRTSノイズの発生頻度が高いと判断する。このようにして求めたRTSノイズの発生頻度の検出値と加重平均による誤差量との関係には強い相関性が得られる。
RTSノイズの発生頻度を全VOB領域にわたって全画素で低レベルに抑えることは、撮像素子の製造プロセス上、非常に困難である。そして、RTSノイズの発生頻度は局所的に偏在しており、しかも個体差があるため許容レベルを超える検出ブロックが何れになるかは撮像素子ごとにまちまちである。
そこで、撮像素子ごとに、予め、RTSノイズの発生頻度を検出ブロックごとに検出しておいて、その検出結果を当該撮像素子が搭載された撮像装置に記憶しておく。この調整手順は、撮像素子の製造ラインの工程上で行っても良いし撮像装置に調整モード等を設けて行ってもよい。
本実施形態のようにフレーム単位で検出領域を切り換える構成をなすことで、全検出領域を用いた加重平均によって誤差量を許容レベル以下に低減することが可能である。
本実施形態では4フレームで全検出領域64ラインを読み出す構成としたが、撮像素子のRTSノイズの発生頻度に基づいて、十分なノイズ低減効果を得るために、適宜、検出領域の拡張を図るべきである。
本実施形態では、1フレームあたりの検出ライン数を増やすことなくRTSノイズの影響を低減することができるため、動画のフレームレートを落とすこともなく、消費電力の増加につながる読み出しの動作スピードを上げる必要もない。
なお、本実施形態においては、説明の便宜上、列オフセットの検出領域にVOB画素を割り当てて、全て、動作の説明を行っている。
しかしながら、本発明の趣旨によれば、画素ソースフォロアに電気的にフォトダイオードが接続されない状態で読み出しが行われる、所謂、ダミー画素を検出領域として割り当てても同様の効果を得ることができる。
むしろ、ダミー画素にはフォトダイオードに起因する画素欠陥ノイズが発生しない分、列オフセットの検出には有利である。また、この場合の有効画素の黒レベルの基準は、HOB画素のクランプ動作により得ることができる。
また、本実施形態においては、式1の巡回係数として、K1=1/64、K2=63/64を用いた加重平均による巡回演算を例示している。
しかし、本発明によれば、例えば式1に対して、K1=1/16、K2=1を用いた加重平均を16回繰り返して巡回演算させることにより、検出ブロックごとに加重平均値を算出して、この値を巡回演算値として次のフレームに引き継ぐことも可能である。
[実施形態2]実施形態1では、1フレームあたり16ラインの検出領域を割り当てる構成としたが、フレームごとに検出領域を切り換えれば、1フレームあたりの検出ライン数をさらに減らして動画のフレームレートを向上させることも可能である。このことを実現したのが、以下に説明する実施形態2である。
図11は、巡回演算値の収束の様子を示している。
巡回演算式1の場合、例えば巡回係数Kが(1/64)であれば、1回の巡回演算で入力データXnの(1/64)が巡回演算値として加重平均がなされるため、これを128回繰り返すことで、ほぼ演算値を収束させることができる。
実施形態2では1フレームのVOBの検出ライン数が16ラインの設定であり、1フレームあたり16回の巡回演算ができるので、最初の8フレームでほぼ演算を収束させて正しい列オフセットを検出することが可能である。
動画のフレームレートが30[フレーム/秒]の場合に、8フレームに要する時間は、0.27(=8/30)秒である。動画の描画開始から列オフセットが正しく検出・補正されて動画像から縦縞が消えるまでに、0.27秒の時間がかかることを意味しており、これ以上に巡回演算の収束時間を延ばすことは動画品質上好ましくない。
列オフセットの最大値は撮像素子の出力で数mV〜数10mV見込まれており、このような列オフセットを検出して補正するために許容できる収束時間を満足する巡回係数K1の上限値が、K1=1/64(K2=63/64)である。
また、1箇所のRTSノイズの発生に対して巡回係数K1(1/64)を乗じた値が巡回演算値の誤差となる。
巡回係数K1を(1/32)などに上げれば巡回演算の収束時間が短縮するが、RTSノイズによる誤差を増大させる結果となるため、巡回係数K1は容易に上げることができない。
1フレームあたりの検出ライン数を減らせばその分だけ、動画のフレームレートを今より向上させることができる。しかし、例えば1フレームあたりの検出ライン数を16ラインから半分の8ラインに変更すると、巡回演算の収束時間は2倍の16フレームにあたる0.54(=16/30)秒に増大してしまう。
1フレームあたりの検出ライン数を減らすためには、巡回演算の収束時間が増大してしまうという上記の問題を回避する工夫が併せて必要となる。
そのために実施形態2では、動画の最初のフレーム画像の読み出しに先立ち、短期間のうちに巡回演算を収束させて列オフセットの検出を行う。そして、これを列オフセット検出値の初期値として、動画の最初のフレームから精度よく列オフセットの補正を行う動作を実施形態1に追加している。
図12は、動画撮影の際に連続して読み出された各フレーム画像から列オフセットを検出・補正する処理を示し、図13は、各フレーム画像から列オフセットが検出されて補正データが演算される様子を示している。
VOB領域は全部で64ラインある。このVOB領域は垂直方向に8ラインずつの8つの検出ブロックに分割される。
動画の読み出しに先立ち、最初にダミーフレームが設けられており、巡回演算の初期値0でダミーフレームのVOB領域から列オフセットが検出される。ダミーフレーム用のVOB領域は、64ラインで指定された全VOB領域である。ダミーフレームにおいては、短期間に動画の第1フレームに動作を移行するために、VOB領域のみで有効画素領域の画素信号の読み出しは行われない。
さらに、ダミーフレームにおいては、巡回係数K(1/64)に対して巡回演算を収束させて正しい列オフセットを検出するために、64ラインで指定された全VOB領域が総じて2回繰り返して読み出される。
ダミーフレームにおけるVOB128ラインの読み出し時間は、通常の動画の1フレームの読み出し時間(1/30)秒に対して時間的に十分短いので、動画の描画開始までのロスタイムとしては何ら問題とならない。
ダミーフレームの列オフセットデータを巡回演算値の初期値として引き継いで、第1フレームのVOB領域から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。第1フレーム用のVOB領域は、VOB領域の最初の8ラインで指定されたブロック1の領域である。
次の第2フレームでは、第1フレームの列オフセットデータを巡回演算値として引き継いで第2フレーム用のVOB領域から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。第2フレーム用のVOB領域は、第1フレームのVOB領域に続く次の8ラインで指定されたブロック2の領域である。
以降のフレームでは、同様にして、前のフレームの列オフセットデータを巡回演算値としてさらに引き継いで、当該フレーム用のVOB領域から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。当該フレーム用のVOB領域は、前のフレームのVOB領域に続く次の8ラインで指定されたブロック領域である。このようにして、順次、第3フレームから第7フレームまでの読み出しの動作が行われる。
第8フレームでは、第7フレームの列オフセットデータを巡回演算値としてさらに引き継いで第7フレーム用のVOB領域から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。第8フレーム用のVOB領域は、第7フレームのVOB領域に続く最後の8ラインで指定されたブロック8の領域である。そして、第8フレームにおいて全てのVOB領域が読み出される。
そして、次の第9フレームでは、第8フレームの列オフセットデータを巡回演算値としてさらに引き継いで第9フレーム用のVOB領域から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。第9フレーム用のVOB領域は、再びVOB領域の最初の8ラインで指定されたブロック1の領域に戻り、第1フレーム用のVOB領域と同じ領域となる。以降、8フレーム単位で全VOB領域の読み出しの過程が繰り返される。
このようにして、実施形態2では、動画の最初のフレーム画像の読み出しに先立ち、ダミーフレームを挿入して巡回演算の収束時間の問題の解決を図っている。
その上で、1フレームあたりの検出ライン数を8ラインに変更することで、実施形態1に対してさらに動画のフレームレートを向上させることが可能である。
[実施形態3」次に、図14及び図15を参照して、実施形態3について説明する。
図14は、動画撮影の際に連続して読み出された各フレームから列オフセットを検出・補正する処理を示し、図15は、各フレームから列オフセットが検出されて補正データを演算する様子を示している。
ここでは、動画撮影の前に、予め撮像素子のRTSノイズの発生頻度について検出が済んでおり、図9に示すように、検出ブロック1の誤差量が突出しており、ブロック3の誤差量が最も小さい場合を例として説明する。
動画動作のまず最初に、撮像装置に記憶されている撮像素子のRTSノイズの発生頻度に関するブロックごとの検出結果に基づいて、最も加重平均による誤差量が小さいと考えられる検出ブロック3がVOBの検出領域として指定される。
検出ブロック3を指定して列オフセットの検出を行うのに最も単純な方法は、撮像素子がCMOSセンサで構成される場合には、センサ内部の垂直走査回路の制御により他のブロック領域を読み飛ばして検出ブロック3のみを読み出すことである。
しかしながら、撮像素子が読み飛ばしのできないCCDセンサであっても、列オフセット検出回路108において、他のブロック領域を読み出す際に式1の巡回係数をK1=0、K2=1に切り換えて加重平均の割合を変更することで対応可能である。この場合、検出ブロック3以外の領域の加重割合はゼロとなり、加重平均による演算結果は読み飛ばした場合の結果と等しい。
そして、巡回演算の初期値0で第1フレームのVOB領域として指定された検出ブロック3から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
次の第2フレームでは、第1フレームの列オフセットデータを巡回演算値として引き継いで、同じくVOB領域として指定された検出ブロック3から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
次の第3フレームも同様に、前のフレームの列オフセットデータを巡回演算値として引き継いで、VOB領域として指定された検出ブロック3から列オフセットが検出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
以降、各フレームでVOB領域として検出ブロック3が指定されて読み出しが繰り返される。
このようにして、検出領域を分割して、分割された検出ブロックごとにRTSノイズの発生頻度の検出結果に基づいて検出ブロックを取捨選択する。そして、ノイズ発生頻度の高い領域を避けて低い領域での加重平均による巡回演算により、RTSノイズの影響を抑え、RTSノイズによる誤差量を許容レベル以下に低減することが可能である。
本実施形態でも、十分なノイズ低減効果を得るために、撮像素子のRTSノイズの発生頻度に基づいて、適宜、検出領域や分割ブロック数の拡張を図るべきである。
また、本実施形態においても、画素ソースフォロアに電気的にフォトダイオードが接続されない状態で読み出しが行われる、所謂、ダミー画素を検出領域として割り当てても同様の効果を得ることができる。
また、上述した加重平均の動作は以下に説明する実施形態4および実施形態5においても利用される。
[実施形態4]VOBの検出領域においてRTSノイズの発生頻度が高い領域が偏在することは既に説明した。ところが、画素ソースフォロアの素子の温度特性や経時変化によって、これらの偏在箇所がしばしば移動する場合がある。
そこで、実施形態4として、撮像中にRTSノイズによる誤差量を検出ブロック単位で算出して所定以内にある検出ブロックを採択する手順を組み込むことで、温度などの周囲環境や経時変化にもリアルタイムに対応できるように工夫した方法について説明する。
以下では、実施形態3と構成や動作の異なる部分を中心に説明する。
撮像装置の基本的な構成は実施形態3と同様であるが、RTSノイズによる誤差量を算出する手段が撮像装置に追加される点が異なる。
図16は、RTSノイズによる誤差量を算出する回路構成を、列オフセット検出回路108の内部に追加したものであり、図6に対して新たに追加された部分が破線枠内に示される誤差判定回路510である。
誤差判定回路510には、出力505を受けて検出された各列の列オフセット補正データの中から最大値を検出する最大値検出回路511と、同様に各列の列オフセット補正データの中から最小値を検出する最小値検出回路512とを含む。
さらに、最大値検出回路511の出力から最小値検出回路512の出力を減ずる減算器513と、減算器513の出力値を受けて、所定値以内にあるか否かを判定して判定結果を出力するレベル判定回路514とを含む。さらに、レベル判定回路514には、システムコントローラ110によりレジスタ値E0が設定可能なレジスタが接続される
そしてレベル判定回路514の出力516は、誤差判定の出力結果としてシステムコントローラ110に供給される。
図17は、動画撮影の際に連続して読み出された各フレーム画像から列オフセットを検出・補正する処理を示し、図18は、各フレームから列オフセットが検出されて補正データを演算する様子を示している。
上述した実施形態3と同様に、VOB領域は全部で64ラインが設定されており、垂直方向に16ラインずつの4つの検出ブロックに分割される。
そして、撮像素子のRTSノイズの発生頻度については、図9と同じ特性を有する撮像素子を用いた場合を一例として動作を説明する。
すなわち、検出ブロック1の誤差量が突出すると共に許容量を超えており、検出ブロック2〜4が許容量以内にあり、検出ブロック3の誤差量が最も小さい場合について説明する。
動画撮影のまず最初に、第1フレームの検出領域としてVOB領域の最初のラインから始まる16ラインの検出ブロック1が指定される。
式1の巡回係数が、K1=1/16、K2=1に設定される。そして、これらの巡回係数による加重平均を16回繰り返して巡回演算させることにより、検出ブロック1内の各列ごとに16ラインの加算平均値が算出される。
算出された各列ごとの加重平均値は、垂直補正ウィンドウ信号VWCOL期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
他方で、垂直補正ウィンドウ信号VWCOL期間に読み出された各列ごとの加重平均値は、図16に示した誤差判定回路510にも供給されて、最大値検出回路511と最小値検出回路512とにより最大値および最小値が検出・保持される。その差分値が列オフセット最大値となり、レベル判定回路514にてレジスタ値E0と比較される。そして、レジスタ値E0よりも大きな場合に、レベル判定回路514の出力線516からエラーが出力される。
図19は各列ごとの加重平均値と算出された列オフセット最大値を示している。
レジスタ値E0は、撮像素子により規定される列オフセットの上限値を超えたところの所定値が設定されており、通常、撮像素子の出力で見て数mV〜数10mVに相当する値である。そして、列オフセットの上限値を逸脱する列オフセット最大値に対して、判定結果としてエラーが出力される。
この場合には、検出ブロック1にRTSノイズが偏在しており、そのために、RTSノイズによる誤差量が大きくなり、判定結果としてエラーが出力される。
エラーの判定結果はシステムコントローラ110に伝達されて記憶される。
次の第2フレームでは、エラー判定結果を受けて、システムコントローラ110によりVOB領域として第1フレームのVOB領域に続く次の16ラインのブロック2が指定されて、検出ブロックが更新される。
その後は、第1フレームの場合と全く同様にして、列オフセット検出回路108では式1の巡回係数が、再び、K1=1/16、K2=1、巡回演算の初期値0に設定される。
そして、これらの巡回係数による加重平均を16回繰り返して巡回演算させることにより、検出ブロック2内の各列ごとに16ラインの加重平均値が算出される。
算出された各列ごとの加重平均値は、垂直補正ウィンドウ信号VWCOL期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
他方で、垂直補正ウィンドウ信号VWCOL期間に読み出された各列ごとの加重平均値は、誤差判定回路510によって列オフセット最大値が算出されて、レベル判定回路514にてレジスタ値E0と比較される。
今度は、第1フレームの場合と異なり検出ブロック2にはRTSノイズが偏在しておらず、そのために、RTSノイズによる誤差量は許容値内にあり、判定結果としては非エラーが出力される。
非エラーの判定結果はシステムコントローラ110に伝達されて記憶される。
次の第3フレームでは、非エラー判定結果を受けて、システムコントローラ110によりVOB領域として第2フレームと同じ検出ブロック2が指定されて、検出ブロックが更新されない。
また、非エラー判定結果を受けて、第3フレーム以降のフレームでは、列オフセット検出回路108によるエラー判定は行われず、システムコントローラ110に伝達されて記憶された非エラーの判定結果は更新されない。
その後は、巡回演算式1において、初期値として直前のフレームである第2フレームの列オフセットデータ、すなわち検出ブロック2内の各列ごとに算出された16ラインの加重平均値が引き継がれる。
さらに、式1の巡回係数は、K1=1/64、K2=63/64に設定される。そして、これらの巡回係数による加重平均を16回繰り返して巡回演算させることにより、検出ブロック2内の各列ごとに16ラインの加重平均値が算出される。
算出された各列ごとの加重平均値は、垂直補正ウィンドウ信号(VWCOL)期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
次の第4フレームでは、先の非エラー判定結果を受けて、システムコントローラ110によりVOB領域として第2フレームと同じ検出ブロック2が指定されて、検出ブロックが更新されない。
その後は、巡回演算式1において、直前のフレームである第3フレームの列オフセットデータすなわち検出ブロック2内の各列ごとに算出された16ラインの加重平均値が引き継がれる。
巡回係数は、第3フレームと同じく、K1=1/64、K2=63/64、に設定される。そして、これらの巡回係数による加重平均を16回繰り返して巡回演算させることにより、直前のフレームの16ラインに第4フレームの16ラインを加えた32ラインの加重平均値が算出される。
算出された各列ごとの加重平均値は、垂直補正ウィンドウ信号(VWCOL)期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
以降、各フレームでVOB領域として検出ブロック2が指定されて、同様に読み出しの過程が繰り返される。
このようにして、動画撮影の最初の数フレームにおいて検出ブロックごとのRTSノイズによる誤差量の検出を行う。そして、RTSノイズによる誤差量が許容レベルに達するまで検出ブロックを切り換えながら読み出すことで検出ブロックの取捨選択を行い、その後のフレームでRTSノイズによる誤差量を許容レベル以下に低減することが可能である。
[実施形態5]実施形態4では、RTSノイズによる誤差量が許容レベルに達するまで検出ブロックを切り換えながら読み出しを行うことで、検出ブロック2を取捨選択した。しかしながら、撮像素子のRTSノイズの発生頻度については、図9と同じ特性を有する撮像素子である場合には、検出ブロック3の誤差量が最も小さく、全検出ブロックの中で最良の検出ブロックと考えられる。
そこで、実施形態5では、撮像動作中にRTSノイズによる誤差量を検出ブロック単位で算出して最小となる検出ブロックを採択する手順を組み込むことで最も高い精度で列オフセットを検出する方法について説明する。
実施形態4とは、列オフセット検出回路108におけるレベル判定の構成と、システムコントローラ110による制御の仕方が異なる。
以下に、実施形態4とは異なる部分である列オフセット検出回路におけるレベル判定の構成と、システムコントローラ110による制御の仕方について説明する。
図20は、上記RTSノイズによる誤差量を算出する回路構成を、列オフセット検出回路108の内部に追加したものであり、図6に対して新たに追加された部分が破線枠内に示される誤差検出回路610である。
誤差検出回路610は、列オフセットの出力505を受けて検出された各列の補正データの中からそれぞれ最大値と最小値を検出する最大値検出回路611と最小値検出回路612を含む。
さらに、誤差検出回路610は、最大値検出回路611の出力から最小値検出回路612の出力を減ずる減算器613と、減算器613の出力値を受けて所定期間これを保持する誤差量保持回路614とを含む。誤差量保持回路614の出力615は、誤差量の出力結果としてシステムコントローラ110に供給される。
図21は、動画撮影の際に連続して読み出された各フレーム画像から列オフセットを検出・補正する処理を示し、図22は、各フレームから列オフセットが検出されて補正データを演算する様子を示している。
上述した各実施形態と同様に、VOB領域は全部で64ラインが設定されており、垂直方向に16ラインずつの4つの検出ブロックに分割される。
そして、撮像素子のRTSノイズの発生頻度については、図9と同じ特性を有する撮像素子を用いた場合を一例として説明する。すなわち、検出ブロック1の誤差量が突出すると共に許容量を超えており、検出ブロック2〜検出ブロック4が許容量以内にあり、検出ブロック3の誤差量が最も小さい場合について説明する。
動画撮影のまず最初に、第1フレームの検出領域としてVOB領域の最初のラインから始まる16ラインの検出ブロック1が指定される。
列オフセット検出回路108では巡回演算式1の初期値0、巡回係数が、K1=1/16、K2=1に設定される。そして、これらの巡回係数による加重平均を16回繰り返して巡回演算することにより、検出ブロック1内の各列ごとに16ラインの加重平均値が算出される。
算出された各列ごとの加重平均値は、垂直補正ウィンドウ信号VWCOL期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
他方で、垂直補正ウィンドウ信号VWCOL期間に読み出された各列ごとの加重平均値は、図20の誤差検出回路610にも供給されて、最大値検出回路611と最小値検出回路612とにより最大値および最小値が検出・保持される。その差分値が列オフセット最大値として誤差量保持回路614にて所定期間に保持されて、誤差量の出力結果としてシステムコントローラ110に供給される。
この場合には、検出ブロック1にRTSノイズが偏在しており、そのために、RTSノイズによる許容量E0を超える誤差量E1が、システムコントローラ110に伝達されて110内部の記憶領域に記憶される。
次の第2フレームでは、システムコントローラ110によりVOB領域として第1フレームのVOB領域に続く次の16ラインのブロック2が指定されて、検出ブロックが更新される。
その後は、第1フレームの場合と全く同様にして、列オフセット検出回路108では式1の巡回係数が、再び、K1=1/16、K2=1、巡回演算の初期値0に設定される。
そして、これらの巡回係数による加重平均を16回繰り返して巡回演算させることにより、検出ブロック2内の各列ごとに16ラインの加重平均値が算出される。
算出された各列ごとの加重平均値は、垂直補正ウィンドウ信号VWCOL期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
他方で、垂直補正ウィンドウ信号VWCOL期間に読み出された各列ごとの加重平均値は、誤差検出回路610によって出力結果として誤差量E2がシステムコントローラ110に伝達されて内部の記憶領域に記憶される。
次の第3フレームでは、システムコントローラ110によりVOB領域として第2フレームのVOB領域に続く次の16ラインのブロック3が指定されて、検出ブロックが更新される。
その後は、前の第2フレームの場合と全く同様にして、列オフセット検出回路108では式1の巡回係数が、再び、K1=1/16、K2=1、巡回演算の初期値0に設定される。
そして、これらの巡回係数による加重平均を16回繰り返して巡回演算させることにより、検出ブロック2内の各列ごとに16ラインの加重平均値が算出される。
算出された各列ごとの加重平均値は、垂直補正ウィンドウ信号VWCOL期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
他方で、垂直補正ウィンドウ信号VWCOL期間に読み出された各列ごとの加重平均値は、誤差検出回路610によって出力結果として誤差量E3がシステムコントローラ110に伝達されて内部の記憶領域に記憶される。
次の第4フレームでは、システムコントローラ110によりVOB領域として第3フレームのVOB領域に続く次の16ラインのブロック4が指定されて、検出ブロックが更新される。
その後は、前の第3フレームの場合と全く同様にして、列オフセット検出回路108では式1の巡回係数が、再び、K1=1/16、K2=1、巡回演算の初期値0に設定される。
そして、これらの巡回係数による加重平均を16回繰り返して巡回演算させることにより、検出ブロック4内の各列ごとに16ラインの加重平均値が算出される。
算出された各列ごとの加重平均値は、垂直補正ウィンドウ信号VWCOL期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
他方で、垂直補正ウィンドウ信号VWCOL期間に読み出された各列ごとの加重平均値は、誤差検出回路610によって出力結果として誤差量E4がシステムコントローラ110に伝達されて内部の記憶領域に記憶される。
次の第5フレームでは、システムコントローラ110により記憶領域にこれまでに記憶された誤差量E1、E2、E3、E4の中から誤差量の最も小さい検出ブロック3がVOB領域として指定される。
その後は、列オフセット検出回路108では式1の巡回係数が、再び、K1=1/16、K2=1、巡回演算の初期値0に設定される。
そして、これらの巡回係数による加重平均を16回繰り返して巡回演算させることにより、検出ブロック3内の各列ごとに16ラインの加重平均値が算出される。
算出された各列ごとの加重平均値は、垂直補正ウィンドウ信号VWCOL期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
また、第5フレーム以降のフレームでは、これまでのように誤差検出回路610による誤差量の検出は行われず、システムコントローラ110に伝達されて記憶された誤差量E1、E2、E3、E4は更新されない。
次の第6フレームでは、システムコントローラ110によりVOB領域としてブロック3が指定されて、検出ブロックは更新されない。
その後は、巡回演算式1において、初期値として直前のフレームである第5フレームの列オフセットデータ、すなわち検出ブロック3内の各列ごとに算出された16ラインの加重平均値が引き継がれる。
さらに、巡回係数は、今度は、K1=1/64、K2=63/64、に設定される。そして、これらの巡回係数による加重平均を16回繰り返して巡回演算させることにより、検出ブロック3内の各列ごとに16ラインの加重平均値が算出される。
算出された各列ごとの加重平均値は、垂直補正ウィンドウ信号VWCOL期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
以降、各フレームでVOB領域として検出ブロック3が定常的に指定されて、第6フレームと同様の読み出しが繰り返される。
このようにして、動画撮影の最初の数フレームにおいて検出ブロックごとのRTSノイズによる誤差量の検出を行う。そして、RTSノイズによる誤差量が最小となる検出ブロックの取捨選択を行い、その後のフレームでRTSノイズによる誤差量を最小レベルに低減することが可能である。
[実施形態6]上述した各実施形態では、巡回演算における加重平均の割合を変更する手段として、RTSノイズによる誤差量の小さい検出ブロックの取捨選択を行う方法について説明した。しかしながら、巡回演算における加重平均の割合を変更する手段としては、この他にも検出ブロックの読み出しの順番を変更する方法が考えられる。
図23は、式1の巡回係数として、初期値Y1=A、K1=1/64、K2=63/64を用いた加重平均による巡回演算を行った場合に巡回演算値に含まれる各行ごとのデータの割合が、巡回演算を経るごとに変化していく様子を示している。特定列上の画素信号のデータが、上から行配置された順番で、A、B、C、D、E、Fで示されている。
1行目のデータAの割合に着目すると、1回目の巡回演算値Y1で割合1(つまり全て)であったものが2回目の巡回演算値Y2では(1/64)に減少する。3回目の巡回演算値Y3では、さらにその(1/64)に減少する。その後も巡回演算の回数に伴い減少していく。2行目のデータBの割合も、巡回演算の回数に伴い(1/64)の割合で同様に減少していく。
このようにして、各行のデータは全て、巡回演算の回数に伴い(1/64)の割合で同様に減少していく。そして、6回目の巡回演算値Y6を見ると明らかなように、後から読み出された行データFの割合が最も大きく、先に読み出された行データAの割合が最も小さくなる。すなわち読み出された行データの順番で割合が決定される。
そこで、本実施形態では、RTSノイズによる誤差量を検出ブロック単位で算出して、その誤差量に基づいて巡回演算における検出ブロックの読み出しの順番を変更する。そうすることで巡回演算値に対してRTSノイズによる誤差量の大きな検出ブロックの影響度を下げると共に誤差量の小さな検出ブロックの影響度を上げるようにして列オフセットを検出する。
図24は、VOBの構成と分割された検出ブロックとの関係を示し、図25は、各検出ブロックから加重平均による巡回演算で列オフセットが検出されて補正データが演算される様子を指名している。
図24のように、VOB領域は全部で16ラインが設定されており、垂直方向に4ラインずつの4つの検出ブロックに分割される。
そして、撮像素子のRTSノイズの発生頻度については、図9と同様の関係性を有する撮像素子を用いた場合を一例として説明する。
すなわち、検出ブロック1の誤差量が突出すると共に許容量を超えており、検出ブロック2〜検出ブロック4が許容量以内にあり、検出ブロック3の誤差量が最も小さい。そして、各検出ブロックの誤差量の大小関係は、検出ブロック1、検出ブロック4、検出ブロック2、検出ブロック3の順番で大きい場合について説明する。
動画撮影のまず最初に、撮像装置に記憶されている撮像素子のRTSノイズの発生頻度に関するブロックごとの検出結果に基づいて、最も誤差量が大きいと考えられる検出ブロック1がVOBの検出領域として最初に指定される。
そして、第1フレームでは、巡回演算式1の初期値0、巡回係数は、K1=1/64、K2=63/64に設定される。そして、これらの巡回係数による加重平均を4回繰り返して巡回演算させることにより、検出ブロック1内の各列ごとに4ラインの加重平均値が算出される。検出ブロック1から検出された加重平均値は、次の巡回演算の初期値として引き継がれる。
次に、2番目に誤差量が大きいと考えられる検出ブロック4が次の検出領域として指定されて、同様の巡回係数による加重平均を4回繰り返して巡回演算させることにより、検出ブロック4内の各列ごとに4ラインの加重平均値が算出される。検出ブロック4から検出された加重平均値は、次の巡回演算の初期値として引き継がれる。
次に、3番目に誤差量が大きいと考えられる検出ブロック2が次の検出領域として指定されて、同様の巡回係数による加重平均を4回繰り返して巡回演算させることにより、検出ブロック2内の各列ごとに4ラインの加重平均値が算出される。検出ブロック2から検出された加重平均値は、次の巡回演算の初期値として引き継がれる。
最後に、誤差量が最も小さいと考えられる検出ブロック3が次の検出領域として指定されて、同様の巡回係数による加重平均を4回繰り返して巡回演算させることにより、検出ブロック3内の各列ごとに4ラインの加重平均値が算出される。
検出ブロック3から検出された加重平均値は、次の巡回演算の初期値として次のフレームに引き継がれると共に、垂直補正ウィンドウ信号VWCOL期間に読み出され、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
次の第2フレームでは、第1フレームの列オフセットデータを巡回演算値として引き継いで、同じくVOB領域として指定された検出ブロック1、検出ブロック4、検出ブロック2、検出ブロック3の順番で読み出されて列オフセットが検出される。そして、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
次の第3フレームも同様に、前のフレームの列オフセットデータを巡回演算値として引き継いで、同じくVOB領域として指定された検出ブロック1、検出ブロック4、検出ブロック2、検出ブロック3の順番で読み出されて列オフセットが検出される。そして、その結果が有効画素領域の撮像信号から減算されることで列オフセットが除去される。
以降、各フレームでVOB領域として各検出ブロックの指定と読み出しが繰り返される。
このようにして、各フレームごとに検出される列オフセットは、VOB領域として分割された検出ブロックごとにRTSノイズによる誤差量の大きい順番に読み出される。これにより誤差量の大きな検出ブロックの影響度を下げると共に誤差量の小さな検出ブロックの影響度を上げることで、最終的に検出された列オフセットに含まれる誤差量を許容量以内に低減することが可能である。
なお、上述した各実施形態では、動画を対象として説明してきたが、検出領域を分割して、分割された検出ブロックごとにRTSノイズの発生頻度の検出結果に基づいて巡回演算における加重割合を変更してもよい。これによりRTSノイズによる誤差量を低減して列オフセットを高精度に検出するという本発明の趣旨に従えば、動画の各フレームを静止画と考えた場合に静止画においても同様の効果を得られることは言うまでもない。
[他の実施形態]
本発明は、以下の処理を実行することによっても実現される。即ち、上記実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び当該プログラムを記憶した記憶媒体は本発明を構成することになる。