説明

撮像装置および画像処理装置

【課題】複数のフレーム画像を用いずにローリングシャッタ歪みを補正する。
【解決手段】撮像装置は、複数の光電変換素子が第1方向と、第1方向と交差する第2方向とに配列され、ローリングシャッタ方式で電荷蓄積を行う撮像素子14と、第2方向の奇数番目に配列された素子列と、第2方向の偶数番目に配列された素子列との一方については撮像素子の撮像面の上方から、他方については撮像面の下方から、交互に画像信号を読み出す読出手段と、第2方向に隣接する2個の素子列から出力された画像信号をそれぞれ比較して、撮像面に対して相対移動を行う移動被写体像についてずれに関する量を算出する算出手段と、算出手段により算出されたずれに関する量に基づいて、移動被写体像に発生するローリングシャッタ歪みを補正する補正手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像装置および画像処理装置に関する。
【背景技術】
【0002】
従来から、ローリングシャッタ方式に起因して動体被写体に発生する歪みを補正するカメラが知られている(たとえば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−142929号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、過去に取得した複数の画像に基づいて動体被写体の移動速度を算出するので、大量のメモリ容量が必要になるとともに、動体被写体の形状を認識するために複雑な処理が必要となるという問題がある。
【課題を解決するための手段】
【0005】
請求項1に記載の発明による撮像装置は、複数の光電変換素子が第1方向と、第1方向と交差する第2方向とに配列され、第1方向に沿った複数の光電変換素子からなる素子列と、第2方向の異なる位置で第1方向に沿った複数の光電変換素子からなる素子列とを異なる電荷蓄積タイミングで電荷蓄積を行う撮像素子と、第2方向の奇数番目に配列された素子列と、第2方向の偶数番目に配列された素子列との一方については撮像素子の撮像面の上方から、他方については撮像面の下方から、交互に画像信号を読み出す読出手段と、第2方向に隣接する2個の素子列から出力された画像信号をそれぞれ比較して、撮像面に対して相対移動を行う移動被写体像について、隣接する2個の素子列間における第1方向のずれに関する量を算出する算出手段と、算出手段により算出されたずれに関する量に基づいて、異なる電荷蓄積タイミングに起因して、移動被写体像に発生するローリングシャッタ歪みを補正する補正手段とを備えることを特徴とする。
請求項7に記載の発明による画像処理装置は、複数の光電変換素子が第1方向と、第1方向と交差する第2方向とに配列され、第1方向に沿った複数の光電変換素子からなる素子列と、第2方向の異なる位置で第1方向に沿った複数の光電変換素子からなる素子列とを異なる電荷蓄積タイミングで電荷蓄積を行う撮像素子によって撮像され、第2方向の奇数番目に配列された素子列と、第2方向の偶数番目に配列された素子列との一方については撮像素子の撮像面の上方から、他方については撮像面の下方から、交互に読み出された画像信号を入力する入力手段と、第2方向に隣接する2個の素子列から出力された画像信号をそれぞれ比較して、撮像素子の撮像面に対して相対移動を行う移動被写体像について、隣接する2個の素子列間における第1方向のずれに関する量を算出する算出手段と、算出手段により算出されたずれに関する量に基づいて、異なる電荷蓄積タイミングに起因して、移動被写体像に発生するローリングシャッタ歪みを補正する補正手段とを備えることを特徴とする。
【発明の効果】
【0006】
本発明によれば、第2方向の奇数番目に配列された素子列と、第2方向の偶数番目に配列された素子列との一方については撮像素子の撮像面の上方から、他方については撮像面の下方から、交互に画像信号を読み出し、移動被写体像のずれに関する量を算出してローリングシャッタ歪みを補正することができる。
【図面の簡単な説明】
【0007】
【図1】本発明の実施の形態による電子カメラの要部構成を説明するブロック図
【図2】画像処理部の機能を説明するためのブロック図
【図3】実施の形態における撮像素子の構成を説明する概念図
【図4】移動被写体と画像信号の読み出しタイミングとの関係を説明する図
【図5】ずれ量の算出を説明するための概念図
【図6】ローリングシャッタ歪みの補正処理を説明するための概念図
【図7】実施の形態による電子カメラの処理を説明するフローチャート
【図8】実施の形態による電子カメラの処理を説明するフローチャート
【図9】実施の形態による電子カメラの処理を説明するフローチャート
【図10】本発明の変形例による画像処理装置の要部構成を説明するブロック図
【発明を実施するための形態】
【0008】
図面を参照して、本発明による一実施の形態における電子カメラを説明する。図1は電子カメラ1の要部構成を示すブロック図である。電子カメラ1は、撮影レンズL1、撮像素子14、バッファメモリ16、制御回路18、LCD駆動回路19、液晶表示器191、操作部30、およびメモリカードインタフェース31を備えている。
【0009】
撮像素子14は、行列状に多数配列された画素を有するX−Yアドレス型の光電変換素子である。撮像素子14は、後述する制御回路18の制御に応じて駆動して撮影レンズL1を通して入力される被写体像を撮像し、撮像して得た画像信号を制御回路18へ出力する。本実施の形態において、撮像素子14は、走査ラインごとに順次シャッタを切る方式(いわゆるローリングシャッタ方式)により駆動される。すなわち、撮像素子14を構成する複数の光電変換素子が画素行方向と、画素行方向と交差する画素列方向とに2次元上に配列され、画素列方向の異なる位置で画素行ごとに異なる電荷蓄積タイミングで光電変換素子の電荷蓄積が行われる。
【0010】
撮像素子14から出力された画像信号は、図示しないAFE回路等によりアナログ処理(ゲインコントロールなど)が施され、図示しないA/D変換回路によりデジタルの画像信号に変換される。デジタル信号に変換された画像信号は制御回路18に入力される。バッファメモリ16は、後述する制御回路18により生成された画像データ、または各種処理中の画像データを一時的に格納する作業用の揮発性メモリである。
【0011】
制御回路18は、図示しないCPU、ROM、RAMなどを有し、制御プログラムに基づいて、電子カメラ1の各構成要素を制御したり、各種のデータ処理を実行する演算回路である。制御プログラムは、制御回路18内の不図示の不揮発性メモリに格納されている。制御回路18は、図示しないタイミングジェネレータ等を介して、撮像素子14の駆動タイミングを制御する。
【0012】
制御回路18は、読出制御部181、画像処理部182および画像記録部183を機能的に備える。読出制御部181は、後述する撮像素子14によるローリングシャッタ方式による画像信号の読出しを制御する。画像処理部182は、入力した画像信号をデジタル画像信号に対して種々の画像処理を施して画像データを生成する。また、画像処理部182は、メモリカード108に記録されている画像データに基づいて、液晶表示器191に表示するための表示画像データを生成する。また、図2に示すように、画像処理部182は、算出部182aと補正部182bとを機能的に備える。なお、画像処理部182による処理については、詳細を後述する。画像記録部183は、画像処理部182により生成された画像データに対してJPEGなどの所定の方式により圧縮処理を行い、EXIFなどの形式でメモリカード108へ記録する。
【0013】
LCD駆動回路19は、制御回路18の命令に基づいて液晶表示器191を駆動する回路である。液晶表示器191は、撮像素子14で撮像した画像をリアルタイムに表示するライブビュー表示とともに、メモリカード108に記録されている画像データに基づいて画像処理部182で作成された表示画像データに対応する画像の表示を行う。また、液晶表示器191は、操作部30の操作に基づき、電子カメラ1の各種設定のためのメニュー画面の表示を行う。
【0014】
操作部30はユーザによって操作される種々の操作部材に対応して設けられた種々のスイッチを含み、操作部材の操作に応じた操作信号を制御回路18へ出力する。操作部材は、たとえばレリーズボタンや、上記のメニュー画面を表示させるためのメニューボタンや、各種の設定等を選択操作する時に操作される十字キー、十字キーにより選択された設定等を決定するための決定ボタン、撮影モードと再生モードとの間で電子カメラ1の動作を切替えるモード切替ボタン等を含む。また、操作部30により、撮像モードとして静止画撮影モードや動画撮影モード、ライブビュー表示を行うためのライブビューモード等の設定が可能である。
【0015】
メモリカードインタフェース31は、メモリカード108が着脱可能なインタフェースである。メモリカードインタフェース31は、制御回路18の制御に基づいて、画像ファイルをメモリカード108に書き込んだり、メモリカード108に記録されている画像ファイルを読み出すインタフェース回路である。メモリカード108はコンパクトフラッシュ(登録商標)やSDカードなどの半導体メモリカードである。
【0016】
本実施の形態による電子カメラ1は、撮像素子14がローリングシャッタ方式により画像信号を出力することに伴って、1つの画像データから、撮像素子14の撮像面に対して相対移動を行う被写体(移動被写体)の像に対応する領域(動体領域)を検出する。そして、電子カメラ1は、検出した動体領域に発生するローリングシャッタ歪みを補正する。さらに、電子カメラ1は、ローリングシャッタ歪みを補正することによって、動体被写体に対して背景となる被写体(背景被写体)に対応する画像データが消失した領域(消失領域)が発生するので、消失領域の画像データを補間する。なお、移動被写体として、撮影時のユーザの手振れに起因して、電子カメラ1に対して相対的に移動するような被写体も含まれるものとする。
【0017】
以下、ユーザの操作部30の操作に応じて、動画撮影モードが設定された場合について説明する。本実施の形態においては、動画撮影モードが設定されると、読出制御部181は、撮像素子14に対して、水平走査期間tHごとに、画素行ごとに画像信号を出力させる。このとき、制御回路18は、連続的に画像信号を読み出すための読み出し周期(フレームレート)を、たとえば1/30[s]に設定する。
【0018】
図3、図4を参照しながら本実施の形態におけるローリングシャッタ方式について説明する。図3は、撮像素子14を構成する画素141を模式的に示す図である。図3では、撮像素子14の水平方向(画素行方向)をx軸、垂直方向(画素列方向)をy軸とする。なお、本実施の形態では、説明を簡単にするため、撮像素子14は、第1行目の画素行Line(1)から第16行目の画素行Line(16)によって構成されているものとする。
【0019】
図4は、移動被写体と、画像信号の読み出しタイミングとの関係を示す図である。図4(a)には、たとえば矩形形状を有する移動被写体S(図4(a)の斜線で示す領域)の像が撮像素子14上を右から左(図4(a)に示す矢印の方向)へ移動する場合を示している。なお、以下の説明においては、移動被写体Sの背景となる被写体(背景被写体)は電子カメラ1に対して相対的に静止しているものとする。この移動被写体Sは、画素141への電荷蓄積開始(時刻t0)から、全画素141からの画像信号の読出しが終了(時刻te)までの間に、移動被写体Sの左下端が点Aから点Bまで移動する。なお、図4(a)においては、時刻t0での移動被写体Sを実線で、時刻teでの移動被写体Sを破線で示す。
【0020】
読出制御部181は、奇数番目の画素行Line(2m−1)(mは自然数)に配列された画素141については撮像面上方から、偶数番目の画素行Line(2m)に配列された画素141については撮像面下方から、交互に画像信号を出力させる。具体的に説明すると、読出制御部181は、時刻t0において、第1画素行Line(1)に含まれる画素141に対して、電荷蓄積および画像信号の出力を開始させる。時刻t0から水平走査期間tHが経過した時刻(t0+tH)では、読出制御部181は、第16画素行Line(16)に含まれる画素141に対して、電荷蓄積および画像信号の出力を開始させる。さらに、時刻(t0+2tH)では、読出制御部181は、第3画素行Line(3)に含まれる画素141に対して電荷蓄積および画像信号の出力を開始させる。
【0021】
以後、読出制御部181は、奇数行目の画素行Line(2m−1)に含まれる画素141への電荷蓄積および画像信号の読出しと、偶数行目の画素行Line(2m)に含まれる画素141への電荷蓄積および画像信号の読出しとを交互に行う。その結果、第1画素行Line(1)→第16画素行Line(16)→第3画素行Line(3)→第14画素行Line(14)→…→第15画素行Line(15)→第2画素行Line(2)の順序で電荷蓄積および画像信号の読出しが行われる。
【0022】
上記の読出順序により全ての画素141から画像信号の読出しが終了するまでの間に、移動被写体Sは、図4(a)の点Aから点Bまで移動しているので、読み出された画像信号と移動被写体Sの像との関係が図4(b)のように表される。この撮像素子14においては、1つの画素行に含まれる画素141から画像信号を読み出すための水平走査期間tHを16倍した時間(16tH)で全ての画素141から画像信号が読み出される。したがって、図4(a)に示す場合においては、撮像素子14の上端または下端に配置された隣接し合う2つの画素行(たとえば第1画素行Line(1)および第2画素行Line(2)、または第15画素行Line(15)および第16画素行Line(16))における電荷蓄積および画像信号の読出しを開始する時刻の差は、水平走査期間tHを15倍した時間となる。その結果、図4(b)に示すように、各画素行Line(m)から出力された画像信号に対応する画像データのデータ行DLine(m)においても、上記の時刻差に応じて移動被写体Sの像にずれが発生する。
【0023】
画像処理部182は、上述したようにして読み出された画像信号に基づいて、画像データを生成する。画像処理部182の算出部182aは、画像データのデータ行DLine(m)のそれぞれを、所定の個数(たとえば21個)のブロック領域BKに分割する。その結果、1つのブロック領域BKのデータは複数の画素141から出力された画像信号に対応する。図4(c)に、画素行に対応する画像データごとにブロック領域BKに分割された様子を示す。以後の説明においては、第mデータ行DLine(m)のブロック領域を符号BKm(n)(1≦m≦16、1≦n≦21)として表す。なお、nはブロック領域BKの番号を示す。また、以下の説明では、x=0から順次、ブロック領域BKm(1)、BKm(2)、・・・、BKm(21)となるように、ブロック領域BKの番号nが設定されたものとして行うものとする。
【0024】
算出部182aは、分割したブロック領域BKm(n)を用いて、画像データ上において動体領域、すなわち移動被写体Sの像を検出し、検出した動体領域に発生するローリングシャッタ歪みを補正するための補正量を算出する。まず、動体領域の検出について説明する。なお、以下の説明では、代表して、第1データ行DLine(1)および第2データ行DLine(2)に対応する画像データを用いた処理を中心に行う。
【0025】
算出部182aは、第1データ行DLine(1)の各ブロック領域BK1(n)について、画像データの平均値VAL(1,n)を算出する。すなわち、算出部182aは、ブロック領域BK1(n)に対応する位置に配置された各画素141から出力された画像信号の信号レベルの平均値を算出する。そして、算出部182aは、算出した平均値VAL(1,n)をバッファメモリ16に記録する。同様にして、算出部182aは、第2データ行DLine(2)の各ブロック領域BK2(n)について、平均値VAL(2,n)を算出し、バッファメモリ16に記録する。
【0026】
図5(a)には、第1データ行DLine(1)の各ブロック領域BK1(n)の平均値VAL(1,n)の一例を示す。また、図5(b)には、第2画素行目の各ブロック領域BK2(n)の平均値VAL(2,n)の一例を示す。算出部182aは、第1データ行DLine(1)の各ブロック領域BK1(n)と、第2データ行DLine(2)の各ブロック領域BK2(n)との間で相関度が高いか否かを評価する。具体的には、算出部182aは、平均値VAL(1,n)と平均値VAL(2,n)との差分の絶対値d1を算出し、この絶対値d1が閾値dth以下の場合に相関度が高いと評価する。絶対値d1が閾値dth以下の場合には、算出部182aは相関度を示す変数CORR(m,n)を1に設定する。絶対値d1が閾値dthを超える場合には、算出部182aは変数CORR(m,n)を0に設定する。
【0027】
図5(a)および図5(b)では、第1データ行DLine(1)と第2データ行DLine(2)との間で、ブロック領域BK1(1)〜BK1(4)およびブロック領域BK2(1)〜BK2(4)の相関度がそれぞれ高くなる。これは、ブロック領域BKm(1)〜BKm(4)が背景被写体に対応するためである。この場合、算出部182aは、変数CORR(1,1)〜CORR(1,4)およびCORR(2,1)〜CORR(2,4)を1に設定する。同様に、ブロック領域BK1(20)〜BK1(21)およびブロック領域BK2(20)〜BK2(21)の相関度がそれぞれ高くなる。この場合も、算出部182aは、変数CORR(1,20)〜CORR(1,21)およびCORR(2,20)〜CORR(2,21)を1に設定する。
【0028】
一方、図5(a)および図5(b)に示すように、第1データ行DLine(1)と第2データ行DLine(2)との間で、ブロック領域BK1(5)〜BK1(19)およびブロック領域BK2(5)〜BK2(19)の相関度はそれぞれ低くなる。これは、第1画素行Line(1)に含まれる画素141に対する電荷蓄積の開始時刻と、第2画素行Line(2)に含まれる画素141に対する電荷蓄積の開始時刻との間に時間差があり、この期間に移動被写体Sが移動しているためである。
【0029】
詳細には、第1データ行DLine(1)のブロック領域BK1(5)〜BK1(10)は背景被写体に対応する領域であるが、第2データ行DLine(2)のブロック領域BK2(5)〜BK2(10)では移動被写体Sの一部に対応する領域となる。また、第1データ行DLine(1)のブロック領域BK1(11)〜BK1(13)と、第2データ行DLine(2)のブロック領域BK2(11)〜BK2(13)とは、ともに移動被写体Sの一部に対応する領域となる。しかし、上述した時間差の間に移動被写体Sが移動しているために、第1データ行DLine(1)と第2データ行DLine(2)との間で移動被写体Sの異なる一部に対応する領域となる。さらに、第1データ行DLine(1)のブロック領域BK1(14)〜BK1(19)は移動被写体Sの一部に対応する領域であるが、第2データ行DLine(2)のブロック領域BK2(14)〜BK2(19)では背景被写体に対応する領域となる。このような場合には、算出部182aは、変数CORR(1,5)〜CORR(1,19)およびCORR(2,50)〜CORR(2,19)を0に設定する。
【0030】
算出部182aは、絶対値d1と閾値dthとの大小関係に基づいて、相関度を示す変数CORR(m,n)の値を設定すると、変数CORR(m,n)の値が0となる「n」の範囲を検出する。そして、算出部182aは、検出した「n」のうち、値が最小のもの、すなわち相関度が低いブロック領域BKm(n)の先頭をn0sに設定する。また、算出部182aは、検出した「n」のうち値が最大のもの、すなわち相関度が低いブロック領域BKm(n)の最後尾をn0eに設定する。したがって、図5に示す場合では、算出部182aは、n=1をn0sに設定しn=19をn0eに設定する。
【0031】
算出部182aは、上述のようにして検出した相関度が低いブロック領域BKm(n)から移動被写体Sに対応する動体領域を検出する。この場合、算出部182aは、ブロック領域BK1(n0s)〜BK1(n0e)と、ブロック領域BK2(n0s)〜BK2(n0e)とのうち、x軸方向の位置をずらし量dpだけずらすことにより相関度が高くなるブロック領域BKを検出する。まず、算出部182aは、n0s≦n≦n0eの範囲で、第2データ行DLine(2)のブロック領域BK2(n)のnの値を1ずつずらした(すなわちdp=1)ブロック領域BK2(n+1)と、第1データ行DLine(1)のブロック領域BK1(n)との相関度をそれぞれ比較する。図5に示す場合では、算出部182aは、ブロック領域BK1(5)とブロック領域BK2(6)との間、ブロック領域BK1(6)とブロック領域BK2(7)との間、・・・のように相関度を比較する。
【0032】
算出部182aは、ブロック領域BK1(n)の平均値VAL(1,n)と、ブロック領域BK2(n+1)の平均値VAL(2,n+1)との差分の絶対値d2が、上記の閾値dthを超える場合に相関度が低いと判定する。相関度が低い場合には、算出部182aは、ずらし量dpを2に設定し、同様にしてブロック領域BK1(n)とブロック領域BK2(n+2)との相関度を比較する。図5に示す場合では、算出部182aは、ブロック領域BK1(5)とブロック領域BK2(7)との間、ブロック領域BK1(6)とブロック領域BK2(8)との間、・・・のように相関度を比較する。
【0033】
算出部182aは、絶対値d2が閾値dth以下の場合には、対応するブロック領域BKを動体領域として検出する。そして、算出部182aは、ずらし量dpをブロック領域BK1(n)とブロック領域BK2(n+dp)とのずれ量dpa(m,n)としてバッファメモリ16に記録する。算出部182aは、相関度の比較をn=n0sからn=n0eの範囲で行っているので、上記のずれ量dpa(m,n)をn=n0sからn=n0eで平均することにより、動体領域における第1データ行DLine(1)と第2データ行DLine(2)との間のずれ量dpaを算出する。図5に示す場合、ブロック領域BK1(11)〜BK1(19)とブロック領域BK2(5)〜BK2(13)とが相関度が高くなる。すなわち、図5では6ブロック領域BK分のずれが発生している。したがって、ずれ量dpaは6となる。このずれ量dpaは、ローリングシャッタ方式による撮影に起因するローリングシャッタ歪みである。
【0034】
算出部182aは、上述のようにしてずれ量dpaを算出すると、ローリングシャッタ歪みを補正するための補正量を算出する。換言すると、算出部182aは、動体領域の中で相関度が高くなったブロック領域BK1(n)とブロック領域BK2(n+dpa)のx軸方向の位置が同じ位置になるように、画像データ上でのブロック領域BK1(n)とブロック領域BK2(n+dpa)との移動量を算出する。
【0035】
図6に、算出部182aによる補正量(移動量)算出の概念を示す。図6(a)は、第1データ行DLine(1)および第2データ行DLine(2)の画像データを示している。図6(a)では動体領域MRを斜線で表す領域で示している。図6(a)に示すように、第1データ行DLine(1)の動体領域MRと、第2データ行DLine(2)の動体領域MRでは、x軸方向に6ブロック領域分のずれ量dpaが生じている。この場合、図6(b)に示すように、第1データ行DLine(1)の動体領域MRがx軸に沿って−方向に3ブロック領域分移動し、第2データ行DLine(2)の動体領域MRがx軸に沿って+方向に3ブロック領域分移動すると、動体領域MRのx軸方向の位置が一致する。したがって、算出部182aは、ずれ量dpaを1/2にした値を移動量として算出する。ただし、1つのブロック領域BKは複数個の画素141に対応しているので、算出部182aは、上記の移動量に、1つのブロック領域BKに含まれる画素141の数を乗算した値を補正量mv(m)として算出し、バッファメモリ16に記録する。
【0036】
算出部182aは、上述した動体領域MRの検出、および補正量の算出を全てのデータ行について行う。すなわち、算出部182aは、第3データ行DLine(3)と第4データ行DLine(4)、第5データ行DLine(5)と第6データ行DLine(6)、・・・のように、y軸方向に互いに隣接し合う画素行について、上述した方法により各データ行の補正量mv(m)を算出する。
【0037】
なお、図4(a)に示すように、移動被写体Sの大きさがy軸方向について第1画素行Line(1)から第14画素行Line(14)までしかない場合、算出部182aによる第15データ行DLine(15)のブロック領域BKと第16データ行DLine(16)のブロック領域BKとの相関度は、全てのブロック領域BKについて高くなる。すなわち全てのブロック領域BK15(n)の平均値VAL(15,n)と全てのブロック領域BK16(n)の平均値VAL(16,n)との差分の絶対値d1が閾値dth以下となる。これは、第15データ行DLine(15)と第16データ行DLine(16)とが背景被写体に対応しているためである。このような場合には、電荷蓄積の開始時刻に差があってもローリングシャッタ歪みが発生しないので、算出部182aはずれ量dpaの検出および補正量mv(m)の算出を行わない。換言すると、隣接するデータ行Dline間の相関度が高い場合には、算出部182aはずれ量dpaの算出を禁止する。
【0038】
補正部182bは、各データ行ごとに算出された補正量mv(m)を用いて、画像データに発生したローリングシャッタ歪みを補正する。図6(a)、(b)に示すように、補正部182bは、第1データ行DLine(1)の動体領域MR(ブロック領域BK1(11)〜BK1(19))を、x軸に沿って−方向へ補正量mv(1)(=3)分だけ移動する。また、補正部182bは、第2データ行DLine(2)の動体領域MR(ブロック領域BK2(5)〜BK2(13))をx軸に沿って+方向へ補正量mv(2)(=3)分だけ移動する。
【0039】
補正部182bが動体領域MRを補正量mv(m)だけ移動すると、図6(b)に示すように、ブロック領域BK1(8)〜BK1(10)およびブロック領域BK2(14)〜BK2(16)は、動体領域MRに上書きされて画像データが消失する。一方、ブロック領域BK1(17)〜BK1(19)およびブロック領域BK2(5)〜BK2(7)は、動体領域MRの移動に伴って、画像データが消失した消失領域VRとなる。図6(b)では、消失領域VRにドットを付して表す。すなわち、補正前の動体領域MRと補正後の動体領域MRとの差異領域が、補正後の消失領域VRとなる。
【0040】
補正部182bは、消失領域VRの画像データを補間処理によって生成する。具体的には、補正部182bは、隣接するデータ行であってx軸方向に同位置のブロック領域BKの画像データを複写する。図6(b)においては、補正部182bは、ブロック領域BK2(17)〜BK2(19)の画像データを複写して、ブロック領域BK1(17)〜BK1(19)の画像データを生成する。同様に、補正部182bは、ブロック領域BK1(5)〜BK1(7)の画像データを複写して、ブロック領域BK2(5)〜BK2(7)の画像データを生成する。以上の処理により、画像データ上の第1データ行DLine(1)と第2データ行DLine(2)とにおける、電荷蓄積の開始時刻の差、すなわちローリングシャッタ歪みの影響が補正される。
【0041】
補正部182bは、第3データ行DLine(3)と第4データ行DLine(4)についても同様にして補正処理と補間処理とを行い、以後、隣接する2つのデータ行ごとに第16データ行DLine(16)まで補正処理と補間処理とを繰り返す。この結果、画像データ全体としてローリングシャッタ歪みの影響が低減された画像データが生成される。
【0042】
図7〜図9に示すフローチャートを参照しながら、実施の形態による電子カメラ1の動作を説明する。図7〜図9の処理は制御回路18でプログラムを実行して行われる。このプログラムは、メモリ(不図示)に格納されており、ユーザによって動画撮影モードが設定され、図示しないレリーズボタンが全押し操作、すなわち撮影開始を指示する操作が行われると制御回路18により起動され、実行される。
【0043】
ステップS1では、撮像素子14の駆動を制御して、画像信号を出力させてステップS2へ進む。なお、この場合には、撮像素子14は、上述したように、奇数番目の画素行Line(2m−1)については撮像面の上方から、偶数番目の画素行Line(2m)については撮像面の下方から、交互に画像信号を出力する。ステップS2では、画素行の番号を示す変数mに1を設定してステップS3へ進む。
【0044】
ステップS3では、第mデータ行DLine(m)のブロック領域BKm(1)〜BKm(21)のそれぞれについて平均値VAL(m,n)を算出してステップS4へ進む。ステップS4では、第m+1データ行DLine(m+1)のブロック領域BKm+1(1)〜BKm+1(21)のそれぞれについて平均値VAL(m+1,n)を算出してステップS5へ進む。ステップS5においては、ブロック領域BKの番号を示す変数nを1に設定してステップS6へ進む。
【0045】
ステップS6においては、平均値VAL(m,n)と平均値VAL(m+1,n)との差分の絶対値d1を算出してステップS7へ進む。ステップS7においては、絶対値d1が閾値dth以下か否かを判定する。絶対値d1が閾値dth以下の場合には、ステップS7が肯定判定されてステップS8へ進み、ステップS8において相関度を示す変数CORR(m,n)を1に設定してステップS10へ進む。絶対値d1が閾値dthを超える場合には、ステップS7が否定判定されてステップS9へ進む。ステップS9では、変数CORR(m,n)を0に設定してステップS10へ進む。
【0046】
ステップS10においては、変数nが21か否かを判定する。nの値が21の場合にはステップS10が肯定判定されてステップS12へ進む。変数nが21ではない場合には、ステップS10が否定判定されてステップS11へ進み、変数nに1を加算してステップS6へ戻る。ステップS12においては、相関度を示す変数CORR(m,n)の値が0となるnの範囲を検出し、最小のnをn0s、最大のnをn0eとして設定し、バッファメモリ16に記録して図8に示すステップS13へ進む。
【0047】
図8のステップS13〜ステップS21までの処理は、変数nがn0sからn0eまでの範囲で行われる。ステップS13においては、変数nをn0sに設定してステップS14へ進む。ステップS14においては、ずらし量dpを1に設定してステップS15へ進む。ステップS15においては、平均値VAL(m,n)と平均値VAL(m+1,n+dp)との差分の絶対値d2を算出してステップS16へ進む。
【0048】
ステップS16においては、絶対値d2が閾値dth以下か否かを判定する。絶対値d2が閾値dth以下の場合には、ステップS16が肯定判定されてステップS17へ進む。ステップS17では、ずらし量dpをずれ量dpa(m,n)としてバッファメモリ16に記録してステップS20へ進む。
【0049】
絶対値d2が閾値dthを超える場合には、ステップS16が否定判定されてステップS18へ進む。ステップS18においては、ずらし量dpの値に1を加算してステップS19へ進む。ステップS19では、ステップS18で1が加算されたずらし量dpの値が、n0e−n0sの値と等しいか否かを判定する。すなわち、第m+1データ行DLine(m+1)のブロック領域BKm+1(n)をさらにx軸方向にずらした場合に、比較の対象となるブロック領域BKm(n)が存在するか否かを判定する。ずらし量dpがn0e−n0sの値と等しい場合、すなわち比較の対象となるブロック領域BKm(n)が存在しない場合には、ステップS19が肯定判定されてステップS20へ進む。ずらし量dpがn0e−n0sの値と等しくない場合、すなわち比較の対象となるブロック領域BKm(n)が存在する場合には、ステップS19が否定判定されてステップS15へ戻る。
【0050】
ステップS20においては、変数nがn0eであるか否かを判定する。変数nがn0eではない場合には、ステップS20が否定判定されてステップS21へ進み、変数nの値に1を加算してステップS14へ戻る。変数nがn0eの場合には、ステップS20が肯定判定されてステップS22へ進む。ステップS22では、ブロック領域BKm(n)の移動量mv(m)を算出して、図9のステップS23へ進む。なお、移動量mv(m)の算出は、上述したようにずれ量dpa(m,n)をn=n0sからn0eまでで平均した値を1/2にしたずれ量dpaを、1つのブロック領域BKに含まれる画素141の数を乗じることにより行われる。
【0051】
図9のステップS23においては、第mデータ行DLine(m)のn0sからn0eまでのブロック領域BKm(n)の画像データを、x軸の−方向へ移動量mv(m)だけ移動させてステップS24へ進む。ステップS24においては、第m+1データ行DLine(m+1)のn0sからn0eまでのブロック領域BKm+1(n)の画像データを、x軸の+方向へ移動量mv(m)だけ移動させてステップS25へ進む。ステップS25においては、第mデータ行DLine(m)のブロック領域BKの移動に伴って発生した消失領域VRの画像データを、第m+1データ行DLine(m+1)のx軸方向に同位置の画像データを用いて補間してステップS26へ進む。
【0052】
ステップS26においては、第m+1データ行DLine(m+1)のブロック領域BKの移動に伴って発生した消失領域VRの画像データを、第mデータ行DLine(m)のx軸方向に同位置の画像データを用いて補間してステップS27へ進む。ステップS27においては、変数mの値が15であるか否かを判定する。mの値が15の場合にはステップS27が肯定判定されて処理を終了する。mの値が15ではない場合には、ステップS27が否定判定されてステップS28へ進む。ステップS28においては、mの値に2が加算されて図7のステップS3へ戻る。
【0053】
なお、上述の説明は、動画撮影モードが設定された場合の処理として行った。しかし、電子カメラ1は、ユーザによりライブビューモードが設定された場合や、静止画撮影モードの連続撮影にて連写速度が高速に設定された場合にも同様の処理を行ってローリングシャッタ歪みを補正することができる。
【0054】
以上で説明した実施の形態の電子カメラ1によれば、以下の作用効果が得られる。
(1)撮像素子14には、複数の画素141がx方向と、x方向と交差するy方向とに配列されている。この撮像素子14は、x方向に沿った複数の画素141からなる画素行Lineと、y方向の異なる位置でx方向に沿った複数の画素141からなる画素行Lineとを異なる電荷蓄積タイミングで電荷蓄積を行う。読出制御部181は、y方向の奇数番目に配列された画素行Line(2m−1)と、yの偶数番目に配列された画素行Line(2m)との一方については撮像素子14の撮像面の上方から、他方については撮像面の下方から、交互に画像信号を読み出させる。算出部182aは、y方向に隣接する2個の画素行Line(m)、Line(m+1)から出力された画像データをそれぞれ比較して、撮像面に対して相対移動を行う移動被写体Sの像について、隣接する2個のデータ行DLine(m)およびDLine(m+1)間におけるx方向のずれ量dpaを算出する。そして、補正部182bは、算出されたずれ量dpaに基づいて、異なる電荷蓄積タイミングに起因して移動被写体Sの像に発生するローリングシャッタ歪みを補正するようにした。したがって、移動被写体Sの検出およびずれ量の算出を複数フレームの画像データを用いることなく、1つの画像データによって算出することができる。そのため、複数の画像データを格納する必要がなくなるので、バッファメモリ16の容量を確保することができる。また、動体領域を検出する際に、従来技術のように異なるフレームの画像データを用いる必要がなくなるので、第1フレームの画像データであってもローリングシャッタ歪みを補正して、動画全体の画質を向上させることができる。
【0055】
(2)算出部182aは、1個の画素行Line(m)から出力されたデータ行DLine(m)の画像データを、所定個数の画素141に対応した複数のブロック領域BKm(n)に分割する。そして、算出部182aは、隣接する2個のデータ行DLine(m)およびDLine(m+1)の間で、互いに対応するブロック領域BKm(n)およびBKm+1(n)の相関度に基づいて、ブロック領域BKのx方向へのずれ量dpaを算出するようにした。したがって、データ量を減らして演算処理の負荷を低減できる。
【0056】
(3)補正部182bは、隣接する2個のデータ行DLine(m)およびDLine(m+1)のブロック領域BKm(n)およびBKm+1(n)を、x方向に沿って互いに異なる方向へ、ずれ量dpaの半分に相当する移動量mvだけ移動させて、ローリングシャッタ歪みを補正するようにした。したがって、画素行Line(2m−1)と、画素行Line(2m)との一方については撮像素子14の撮像面の上方から、他方については撮像面の下方から、交互に画像信号を読み出す場合であっても、ローリングシャッタ歪みを補正して画質を向上できる。
【0057】
(4)算出部182aは、隣接する2個のデータ行DLine(m)、DLine(m+1)の間で、互いに対応するブロック領域BKのすべてについて相関度が高い場合、すなわちすべてのブロック領域BKの差分の絶対値d1が閾値dth以下の場合は、ずれ量dpaの算出を禁止するようにした。したがって、移動被写体Sが存在する可能性が低い領域については、ずれ量dpaの算出を行わないようにしたので、処理負荷を低減できる。
【0058】
(5)補正部182bは、ローリングシャッタ歪みが補正された補正後の移動被写体Sの像である動体領域MRと、補正前の動体領域MRの差異部分に関する画像データを補間するようにした。この場合、補正部182bは、隣接する2個のデータ行DLine(m)およびDLine(m+1)の一方の差異部分に関する画像データを、他方のデータ行の画像データを用いて補間する。したがって、ローリングシャッタ歪みを補正したことによって生じた消失領域VRの画像データを生成して、画像全体の画質を向上させることができる。
【0059】
以上で説明した実施の形態の電子カメラ1を、以下のように変形できる。
(1)算出部182aが隣接するデータ行DLine間のずれ量を算出するものに代えて、ずれに関する量として平均値を算出してもよい。この場合、算出部182aは、第mデータ行DLine(m)のブロック領域BKm(n)と、第m+1データ行DLine(m+1)のブロック領域BKm+1(n)との平均値Avを算出する。そして、補正部182bは、算出された平均値Avを各ブロック領域BKm(n)およびBKm+1(n)に置き換えればよい。この結果、ずれ量dpaを算出して移動量mvを算出する場合に比べて、処理の負荷を低減することができる。
【0060】
(2)ユーザにより電子カメラ1がx軸方向に移動されていない場合には、動体領域の検出、ずれ量dpaの算出、ローリングシャッタ歪みの補正処理を禁止するようにしてもよい。この場合、電子カメラ1は、たとえばジャイロセンサ等によって構成される手ブレ検出センサを備える。そして、制御回路18は、手ブレ検出センサからの出力のうちx軸方向に対する検出信号が所定の閾値未満の場合には、画像処理部182に対して上述した動体領域の検出、ずれ量dpaの算出、ローリングシャッタ歪みの補正処理を禁止させればよい。なお、読出制御部181が撮像素子14の撮像面の上部から下部へ順次ローリングシャッタ方式によって画像信号を出力させるようにしてもよい。この結果、三脚等を使用して撮影する場合のように、手振れの発生する可能性が低い場合には、ローリングシャッタ歪み補正と、当該補正を実行するために必要な処理とを行わないので、処理負荷を低減できる。
【0061】
(3)電子カメラ1でローリングシャッタ歪みの補正処理をするものに代えて、外部に接続された画像処理装置(たとえばパーソナルコンピュータ等)により補正処理を行ってもよい。図10に、画像処理装置としてパーソナルコンピュータを一例としたブロック図を示す。画像処理装置50は、電子カメラ1で撮像した被写体像の画像データの表示や編集、画像データの保存を行う。画像処理装置50は、制御回路51、HDD52、モニタ制御回路53、モニタ54、メモリ55、入力装置56、メモリカードインタフェース57、および外部インタフェース58を備える。外部インタフェース58は、所定のケーブルや無線伝送路を介して電子カメラ1等の外部装置とデータ通信を行う。
【0062】
入力装置56は、ユーザによって操作され、たとえばキーボードやマウスなどで構成される。HDD52には、たとえば電子カメラ1で撮影した動画や静止画に対応する画像ファイルなどが記録されている。外部インタフェース58は、たとえば画像処理装置50に電子カメラ1などの外部機器を接続するUSBインタフェースである。画像処理装置50は、メモリカードインタフェース57や外部インタフェース58を介してメモリカード108や外部機器から画像ファイルなどを入力する。入力された画像ファイルは、制御回路51によりHDD52に記録される。上述した電子カメラ1で生成された画像ファイルも、同様にHDD52に記録される。
【0063】
制御回路51は、画像処理装置50の制御を行うマイクロコンピュータであり、CPUやROMその他周辺回路により構成される。制御回路51は、画像処理部60、画像記録部61を機能的に備える。画像処理部60は、入力された画像ファイルに基づいて、モニタ54に表示するための表示画像データを生成する。また、画像処理部60は、算出部60aと補正部60bとを機能的に備える。算出部60aと補正部60bの詳細については、説明を後述する。画像記録部61は、画像処理部60により生成された画像データに対してJPEGなどの所定の方式により圧縮処理を行い、EXIFなどの形式でメモリカード108へ記録する。
【0064】
メモリ55は制御回路51のワーキングメモリであり、たとえばSDRAMにより構成される。モニタ54は、たとえば液晶モニタやCRTモニタである。モニタ54には、モニタ制御回路53に制御されて、表示用の画像データに対応する画像および各種設定を行うためのメニュー画面などが表示される。
【0065】
次に、画像処理装置50によるローリングシャッタ歪みの補正処理について説明する。画像処理装置50によりローリングシャッタ歪みを補正する場合、ユーザにより歪み補正ソフトを起動して実行する。この歪み補正ソフトは、画像処理装置50の制御回路51内の不図示メモリに記録されている。ユーザによる入力装置56の操作に応じて歪み補正ソフトの起動が指示されると、制御回路51は歪み補正ソフトを起動する。歪み補正ソフトが起動されると、制御回路51の画像処理部60は、HDD52に記録された画像ファイルをメモリ55に読み出す。
【0066】
算出部60aは、電子カメラ1の算出部182aと同様の処理を行う。すなわち、算出部60aは、1個の画素行Line(m)から出力されたデータ行DLine(m)の画像データを複数のブロック領域BKm(n)に分割する。算出部60aは、隣接する2個のデータ行DLine(m)およびDLine(m+1)の間で、互いに対応するブロック領域BKm(n)およびBKm+1(n)の相関度に基づいて、ブロック領域BKのx方向へのずれ量dpaを算出する。そして、算出部60aは、算出したずれ量dpaに基づいてブロック領域BKの移動量mvを算出する。
【0067】
算出部60aにより移動量mvが算出されると、補正部60bは、電子カメラ1の補正部182bと同様の処理を行う。すなわち、補正部60bは、隣接する2個のデータ行DLine(m)およびDLine(m+1)のブロック領域BKm(n)およびBKm+1(n)を、x方向に沿って互いに異なる方向へ、ずれ量dpaの半分に相当する移動量mvだけ移動させて、ローリングシャッタ歪みを補正する。さらに、補正部60bは、ローリングシャッタ歪みが補正された補正後の移動被写体Sの像である動体領域MRと、補正前の動体領域MRの差異部分である消失領域VRを補間する。この場合も電子カメラ1の補正部182bと同様に、補正部60bは、隣接する2個のデータ行DLine(m)およびDLine(m+1)の一方の消失領域VRの画像データを、他方のデータ行の画像データを用いて補間する。換言すると、制御回路51の画像処理部60、算出部60aおよび補正部60bは、図7のフローチャートに示すステップS1〜図9のステップS28までの処理を行う。そして、画像記録部61は、生成したローリングシャッタ歪み補正後の画像データに基づいて画像ファイルを生成しHDD52に記録する。
【0068】
また、本発明の特徴を損なわない限り、本発明は上記実施の形態に限定されるものではなく、本発明の技術的思想の範囲内で考えられるその他の形態についても、本発明の範囲内に含まれる。説明に用いた実施の形態および変形例は、それぞれを適宜組合わせて構成しても構わない。
【符号の説明】
【0069】
1 電子カメラ、 14 撮像素子、
18、51 制御回路、 50 画像処理装置、
58 外部インタフェース、
141 画素、
181 読出制御部、
60、182 画像処理部、
60a、182a 算出部、
60b、182b 補正部


【特許請求の範囲】
【請求項1】
複数の光電変換素子が第1方向と、前記第1方向と交差する第2方向とに配列され、前記第1方向に沿った複数の光電変換素子からなる素子列と、前記第2方向の異なる位置で前記第1方向に沿った複数の光電変換素子からなる素子列とを異なる電荷蓄積タイミングで電荷蓄積を行う撮像素子と、
前記第2方向の奇数番目に配列された前記素子列と、前記第2方向の偶数番目に配列された前記素子列との一方については前記撮像素子の撮像面の上方から、他方については前記撮像面の下方から、交互に画像信号を読み出す読出手段と、
前記第2方向に隣接する2個の前記素子列から出力された前記画像信号をそれぞれ比較して、前記撮像面に対して相対移動を行う移動被写体像について、前記隣接する2個の素子列間における前記第1方向のずれに関する量を算出する算出手段と、
前記算出手段により算出された前記ずれに関する量に基づいて、前記異なる電荷蓄積タイミングに起因して、前記移動被写体像に発生するローリングシャッタ歪みを補正する補正手段とを備えることを特徴とする撮像装置。
【請求項2】
請求項1に記載の撮像装置において、
前記算出手段は、1個の前記素子列から出力された前記画像信号を、所定個数の前記光電変換素子に対応した複数のブロック画像信号に分割し、前記隣接する2個の前記素子列の間で、互いに対応するブロック画像信号の相関度に基づいて、前記互いに対応するブロック画像信号の前記第1方向への位置ずれ量を前記第1方向のずれに関する量として算出することを特徴とする撮像装置。
【請求項3】
請求項2に記載の撮像装置において、
前記補正手段は、前記隣接する2個の素子列からそれぞれ出力された画像信号を、前記第1方向に沿って互いに異なる方向へ、前記位置ずれ量の半分に相当する量だけ移動させて、前記ローリングシャッタ歪みを補正することを特徴とする撮像装置。
【請求項4】
請求項3に記載の撮像装置において、
前記算出手段は、前記隣接する2個の前記素子列の間で、すべての、互いに対応するブロック画像信号の前記相関度が高い場合は、前記位置ずれ量の算出を禁止することを特徴とする撮像装置。
【請求項5】
請求項1に記載の撮像装置において、
前記算出手段は、前記隣接する2個の素子列から出力された前記画像信号の平均値を前記ずれに関する量として算出することを特徴する撮像装置。
【請求項6】
請求項1乃至5のいずれか一項に記載の撮像装置において、
前記補正手段により補正された補正後の移動体被写体像と、前記補正前の移動体被写体像の差異部分に関する前記画像信号を補間する補間手段をさらに備え、
前記補間手段は、前記隣接する2個の素子列の一方の前記差異部分に関する画像信号を、他方の前記素子列の画像信号を用いて補間することを特徴とする撮像装置。
【請求項7】
複数の光電変換素子が第1方向と、前記第1方向と交差する第2方向とに配列され、前記第1方向に沿った複数の光電変換素子からなる素子列と、前記第2方向の異なる位置で前記第1方向に沿った複数の光電変換素子からなる素子列とを異なる電荷蓄積タイミングで電荷蓄積を行う撮像素子によって撮像され、前記第2方向の奇数番目に配列された前記素子列と、前記第2方向の偶数番目に配列された前記素子列との一方については前記撮像素子の撮像面の上方から、他方については前記撮像面の下方から、交互に読み出された画像信号を入力する入力手段と、
前記第2方向に隣接する2個の前記素子列から出力された前記画像信号をそれぞれ比較して、前記撮像素子の撮像面に対して相対移動を行う移動被写体像について、前記隣接する2個の素子列間における前記第1方向のずれに関する量を算出する算出手段と、
前記算出手段により算出された前記ずれに関する量に基づいて、前記異なる電荷蓄積タイミングに起因して、前記移動被写体像に発生するローリングシャッタ歪みを補正する補正手段とを備えることを特徴とする画像処理装置。


【図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


【公開番号】特開2012−80490(P2012−80490A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−226548(P2010−226548)
【出願日】平成22年10月6日(2010.10.6)
【出願人】(000004112)株式会社ニコン (12,601)
【Fターム(参考)】