(57)【特許請求の範囲】
【請求項１】
画像処理装置において、
行列状に配置された複数の画素を有する第１の撮像素子から第１の走査方向に読み出された画素信号に基づく第１画像と、行列状に配置された複数の画素を有する第２の撮像素子から前記第１の走査方向と反対の第２の走査方向に読み出された画素信号に基づく第２画像とを取得し、前記第１画像に含まれる被写体の位置と前記第２画像に含まれる前記被写体の位置との差を示す第１視差を行毎に算出する第１視差算出部と、
前記第１の撮像素子と前記第２の撮像素子と前記被写体との位置関係に応じて発生する第２視差を、複数の前記第１画像および複数の前記第２画像の少なくとも一方に基づいて行毎に算出する第２視差算出部と、
前記第１の撮像素子および前記第２の撮像素子の互いに対応する行の前記画素信号の読み出しの時間差と前記第１視差と前記第２視差とに基づいて、前記被写体の第１動きベクトルを行毎に算出する第１動きベクトル算出部と、
前記第１画像および前記第２画像のそれぞれの歪みを前記第１動きベクトルに基づいて補正し、第１補正画像および第２補正画像をそれぞれ出力する補正部と
を備えていることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記第２視差算出部は、前記読み出しの時間差が第１の時間以下の行に対しては、前記第２視差を算出する処理を省略し、
前記第１動きベクトル算出部は、前記読み出しの時間差が前記第１の時間以下の行に対しては、前記第１動きベクトルを算出する処理を省略する
ことを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
前記読み出しの時間差が前記第１の時間以下の行における前記被写体の動きを示す第２動きベクトルを、前記第１視差に基づいて算出する第２動きベクトル算出部を備え、
前記補正部は、前記第１画像および前記第２画像のそれぞれの歪みを前記第１動きベクトルおよび前記第２動きベクトルに基づいて補正し、前記第１補正画像および前記第２補正画像をそれぞれ出力する
ことを特徴とする画像処理装置。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載の画像処理装置において、
前記第１補正画像と前記第２補正画像とを合成する際の前記第１補正画像の比率を、各行に対して前記画素信号の読み出しが実行される時刻と基準の時刻との差である差分時間に基づいて決定し、前記第１補正画像と前記第２補正画像とを前記第１補正画像の比率に基づいて合成する合成部を備えていることを特徴とする画像処理装置。
【請求項５】
請求項４に記載の画像処理装置において、
前記合成部は、前記第１補正画像の画素値と前記第２補正画像の画素値との差と前記差分時間とに基づいて、前記第１補正画像の比率を決定する
ことを特徴とする画像処理装置。
【請求項６】
請求項２または請求項３に記載の画像処理装置において、
前記読み出しの時間差が前記第１の時間より大きい複数の行で、前記読み出しの時間差の絶対値が互いに同じになるように、前記第１の撮像素子および前記第２の撮像素子からの前記画素信号の読み出しを制御する制御部を備えていることを特徴とする画像処理装置。
【請求項７】
請求項２または請求項３に記載の画像処理装置において、
前記第１の撮像素子における前記画素信号の読み出しを開始する行および前記第２の撮像素子における前記画素信号の読み出しを開始する行を、行の配列方向における前記被写体の位置に基づいてそれぞれ設定する制御部を備えていることを特徴とする画像処理装置。
【請求項８】
請求項２または請求項３に記載の画像処理装置において、
前記読み出しの時間差が前記第１の時間以下の行が所定の間隔で複数発生するように、前記第１の撮像素子および前記第２の撮像素子からの前記画素信号の読み出しを制御する制御部を備えていることを特徴とする画像処理装置。
【請求項９】
請求項７または請求項８に記載の画像処理装置において、
前記制御部は、前記読み出しの時間差が前記第１の時間より大きい複数の行で、前記読み出しの時間差の絶対値が互いに同じになるように、前記第１の撮像素子および前記第２の撮像素子からの前記画素信号の読み出しを制御することを特徴とする画像処理装置。
【請求項１０】
画像処理方法において、
行列状に配置された複数の画素を有する第１の撮像素子から第１の走査方向に読み出された画素信号に基づく第１画像と、行列状に配置された複数の画素を有する第２の撮像素子から前記第１の走査方向と反対の第２の走査方向に読み出された画素信号に基づく第２画像とを取得し、前記第１画像に含まれる被写体の位置と前記第２画像に含まれる前記被写体の位置との差を示す第１視差を行毎に算出し、
前記第１の撮像素子と前記第２の撮像素子と前記被写体との位置関係に応じて発生する第２視差を、複数の前記第１画像および複数の前記第２画像の少なくとも一方に基づいて行毎に算出し、
前記第１の撮像素子および前記第２の撮像素子の互いに対応する行の前記画素信号の読み出しの時間差と前記第１視差と前記第２視差とに基づいて、前記被写体の第１動きベクトルを行毎に算出し、
前記第１画像および前記第２画像のそれぞれの歪みを前記第１動きベクトルに基づいて補正し、第１補正画像および第２補正画像をそれぞれ出力する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
画像を処理する画像処理装置は、例えば、撮像装置に搭載される。この種の画像処理装置は、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサ等で撮像された画像を処理する。ＣＭＯＳイメージセンサを用いた撮像装置では、複数の画素が行列状に配置された画素アレイの行毎にシャッタ動作を実行するローリングシャッタ方式が知られている。ローリングシャッタ方式では、露光の開始および信号の読み出しが１行毎に順番に実行されるため、露光のタイミングは、行毎に異なる。このため、ローリングシャッタ方式での撮像で得られる画像では、手ぶれ、被写体の移動等により、行間で歪みが発生する場合がある。以下、ローリングシャッタ方式に起因する行間の歪みは、ローリング歪みとも称される。
【０００３】
なお、ＣＭＯＳイメージセンサを用いた撮像装置では、所定のフレームレートで撮像された複数の画像のうちの２つの画像間のオプティカルフロー（例えば、動きベクトル）に基づいてローリング歪みを補正する技術が提案されている（例えば、特許文献１参照）。
【０００４】
また、レンズを介して受けた光を２つに分岐するビームスプリッタと、ビームスプリッタにより分岐した２つの光をそれぞれ受ける２つの撮像素子とを有する撮像装置が提案されている（例えば、特許文献２参照）。例えば、この種の撮像装置では、２つの撮像素子の一方は、画面の上側の行から画面の下側の行に向けて露光を行毎に実行し、２つの撮像素子の他方は、画面の下側の行から画面の上側の行に向けて露光を行毎に実行する。そして、撮像装置は、２つの撮像素子でほぼ同時に撮像された２つの画像間の差に基づいて、ローリング歪みが発生する範囲を算出し、算出した範囲内のローリング歪みを補正する。
【０００５】
また、車両に搭載される車載カメラ等では、被写体を互いに異なる位置から同時に撮像するステレオカメラが採用されている（例えば、特許文献３参照）。例えば、ステレオカメラは、互いに異なるレンズを介して被写体を撮像する２つの撮像素子を有し、物体（被写体）までの距離を三角測量の原理を用いて測定する。なお、互いに異なるレンズを介して被写体を撮像する２つの撮像素子を有するステレオカメラ等の撮像装置では、２つの撮像素子を互いに逆方向に走査して、物体の移動方向等を検出する技術が提案されている（例えば、特許文献４参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１１４６４９号公報
【特許文献２】特開２０１４−３４１７号公報
【特許文献３】特開平９−２９４２８０号公報
【特許文献４】特開２０１１−２０５２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
所定のフレームレートで撮像された２つの画像間の動きベクトルを用いてローリング歪みを補正する方法では、動きベクトルを算出する際の時間分解能（時間間隔）は、フレームレートに依存する。動きベクトルを算出する際の時間間隔が大きくなるほど、動きベクトルに基づいて算出される補正量の誤差は、増加する。すなわち、所定のフレームレートで撮像された２つの画像間の動きベクトルを用いてローリング歪みを補正する方法では、補正の精度が低下するおそれがある。
【０００８】
１つの側面では、本件開示の画像処理装置および画像処理方法は、画像の歪みを精度よく補正することを目的とする。
【課題を解決するための手段】
【０００９】
一観点によれば、画像処理装置は、行列状に配置された複数の画素を有する第１の撮像素子から第１の走査方向に読み出された画素信号に基づく第１画像と、行列状に配置された複数の画素を有する第２の撮像素子から第１の走査方向と反対の第２の走査方向に読み出された画素信号に基づく第２画像とを取得し、第１画像に含まれる被写体の位置と第２画像に含まれる被写体の位置との差を示す第１視差を行毎に算出する第１視差算出部と、第１の撮像素子と第２の撮像素子と被写体との位置関係に応じて発生する第２視差を、複数の第１画像および複数の第２画像の少なくとも一方に基づいて行毎に算出する第２視差算出部と、第１の撮像素子および第２の撮像素子の互いに対応する行の画素信号の読み出しの時間差と第１視差と第２視差とに基づいて、被写体の第１動きベクトルを行毎に算出する第１動きベクトル算出部と、第１画像および第２画像のそれぞれの歪みを第１動きベクトルに基づいて補正し、第１補正画像および第２補正画像をそれぞれ出力する補正部とを有する。
【００１０】
別の観点によれば、画像処理方法では、行列状に配置された複数の画素を有する第１の撮像素子から第１の走査方向に読み出された画素信号に基づく第１画像と、行列状に配置された複数の画素を有する第２の撮像素子から第１の走査方向と反対の第２の走査方向に読み出された画素信号に基づく第２画像とを取得し、第１画像に含まれる被写体の位置と第２画像に含まれる被写体の位置との差を示す第１視差を行毎に算出し、第１の撮像素子と第２の撮像素子と被写体との位置関係に応じて発生する第２視差を、複数の第１画像および複数の第２画像の少なくとも一方に基づいて行毎に算出し、第１の撮像素子および第２の撮像素子の互いに対応する行の画素信号の読み出しの時間差と第１視差と第２視差とに基づいて、被写体の第１動きベクトルを行毎に算出し、第１画像および第２画像のそれぞれの歪みを第１動きベクトルに基づいて補正し、第１補正画像および第２補正画像をそれぞれ出力する。
【発明の効果】
【００１１】
本件開示の画像処理装置および画像処理方法は、画像の歪みを精度よく補正できる。
【図面の簡単な説明】
【００１２】
【図１】画像処理装置および画像処理方法の一実施形態を示す図である。
【図２】画像処理装置および画像処理方法の別の実施形態を示す図である。
【図３】図２に示した撮像素子からの画素信号の読み出し方法の一例を示す図である。
【図４】図２に示した視差算出部により算出される第１視差の一例を示す図である。
【図５】奥行き動きベクトルを用いた被写体の位置の算出方法の一例を示す図である。
【図６】図２に示した画像処理装置による画像の合成方法の一例を示す図である。
【図７】図２に示した画像処理装置の動作の一例を示す図である。
【図８】画像処理装置および画像処理方法の別の実施形態を示す図である。
【図９】図８に示した撮像素子からの画素信号の読み出し方法の一例を示す図である。
【図１０】図８に示した画像処理装置による画像の合成方法の一例を示す図である。
【図１１】画像処理装置および画像処理方法の別の実施形態を示す図である。
【図１２】図１１に示した撮像素子からの画素信号の読み出し方法の一例を示す図である。
【図１３】図１１に示した制御部による読み出し制御の一例を示す図である。
【図１４】画像処理装置および画像処理方法の別の実施形態を示す図である。
【図１５】図１４に示した撮像素子からの画素信号の読み出し方法の一例を示す図である。
【図１６】図１４に示した制御部による読み出し制御の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を用いて実施形態を説明する。
【００１４】
図１は、画像処理装置および画像処理方法の一実施形態を示す。図１の破線の矢印は、信号等の情報の流れを示す。この実施形態の画像処理装置ＩＭＰは、被写体ＯＢＪを互いに異なる位置から同時に撮像するステレオカメラ等の撮像装置ＣＡＭに搭載される。例えば、撮像装置ＣＡＭは、被写体ＯＢＪを所定のフレームレートで撮像する。撮像装置ＣＡＭは、レンズＬＥＮ１を介して被写体を撮像する撮像素子ＩＳＥＮ１と、レンズＬＥＮ２を介して被写体ＯＢＪを撮像する撮像素子ＩＳＥＮ２と、撮像素子ＩＳＥＮ１、ＩＳＥＮ２を駆動する駆動部ＤＲＶと、画像処理装置ＩＭＰとを有する。
【００１５】
撮像素子ＩＳＥＮ１、ＩＳＥＮ２は、例えば、ＣＭＯＳイメージセンサであり、複数の画素が行列状に配置された画素アレイの行毎にシャッタ動作を実行するローリングシャッタ方式で駆動される。例えば、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１内に行列状に配置された複数の画素および撮像素子ＩＳＥＮ２内に行列状に配置された複数の画素に対して露光の開始および露光により得られる画素信号の読み出しを行毎に順番に実行する。これにより、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像された画像ＩＭＧ１、ＩＭＧ２が画像処理装置ＩＭＰに転送される。
【００１６】
なお、駆動部ＤＲＶと撮像素子ＩＳＥＮ１、ＩＳＥＮ２との間に示す括弧内のタイミング図は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２内に行列状に配置された複数の画素から信号（露光により蓄積された電荷に対応する画素信号）が行毎に読み出される様子を示す。タイミング図の縦軸のＬ１、・・・Ｌｃ、・・・Ｌｅは、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行（複数の画素が行列状に配置された画素アレイの行）を示し、タイミング図の横軸のｔ０、ｔ１、ｔｃ、ｔｅは、時刻を示す。
【００１７】
例えば、行Ｌ１は、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の上から１番目の行を示し、行Ｌｅは、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の下から１番目の行を示す。行Ｌｃは、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の中央（行Ｌ１と行Ｌｅとの中間）の行を示す。また、向きＤ１は、駆動部ＤＲＶが撮像素子ＩＳＥＮ１から画素信号を行毎に読み出す際の行の配列方向の走査の向きを示し、向きＤ２は、駆動部ＤＲＶが撮像素子ＩＳＥＮ２から画素信号を行毎に読み出す際の行の配列方向の走査の向きを示す。
【００１８】
図１に示す例では、撮像素子ＩＳＥＮ１は、画素アレイの上側の行から画素アレイの下側の行に向けて露光を行毎に実行し、撮像素子ＩＳＥＮ２は、画素アレイの下側の行から画素アレイの上側の行に向けて露光を行毎に実行する。例えば、時刻ｔ０に、撮像素子ＩＳＥＮ１の行Ｌ１の画素および撮像素子ＩＳＥＮ２の行Ｌｅの画素に対して露光が開始される。
【００１９】
そして、時刻ｔ１に、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１の行Ｌ１および撮像素子ＩＳＥＮ２の行Ｌｅから画素信号をそれぞれ読み出す。以降、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１の行Ｌｅまで、画素信号を行毎に順次読み出し、かつ、撮像素子ＩＳＥＮ２の行Ｌ１まで、画素信号を行毎に順次読み出す。これにより、１フレームの画像ＩＭＧ（ＩＭＧ１、ＩＭＧ２）が撮像素子ＩＳＥＮ（ＩＳＥＮ１、ＩＳＥＮ２）から読み出される。
【００２０】
このように、駆動部ＤＲＶは、画素信号の読み出しを行毎に順番に実行する際の行の配列方向の走査の向きを撮像素子ＩＳＥＮ１、ＩＳＥＮ２で互いに逆にして、画像ＩＭＧ１、ＩＭＧ２を撮像素子ＩＳＥＮ１、ＩＳＥＮ２からそれぞれ読み出す。なお、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行の配列方向の走査の向きＤ１、Ｄ２は、駆動部ＤＲＶに予め設定されていてもよいし、画像処理装置ＩＭＰの制御により駆動部ＤＲＶに設定されてもよい。
【００２１】
撮像素子ＩＳＥＮ１の行の配列方向の走査の向きＤ１と撮像素子ＩＳＥＮ２の行の配列方向の走査の向きＤ２とを互いに逆にして撮像素子ＩＳＥＮ１、ＩＳＥＮ２から読み出された画像ＩＭＧ１、ＩＭＧ２は、画像処理装置ＩＭＰに転送される。
【００２２】
ローリングシャッタ方式での撮像で得られる画像ＩＭＧ１、ＩＭＧ２では、図１のタイミング図に示すように、露光のタイミングが行毎に異なるため、手ぶれ、被写体の移動等により、行間で歪みが発生する場合がある。以下、ローリングシャッタ方式に起因する行間の歪みは、ローリング歪みとも称される。ローリング歪みは、画像処理装置ＩＭＰで補正される。
【００２３】
画像処理装置ＩＭＰは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像された画像ＩＭＧ１、ＩＭＧ２を処理する。画像処理装置ＩＭＰは、第１視差算出部１０、第２視差算出部２０、第１動きベクトル算出部３０および補正部４０を有する。第１視差算出部１０は、撮像素子ＩＳＥＮ１の行の配列方向の走査の向きＤ１と撮像素子ＩＳＥＮ２の行の配列方向の走査の向きＤ２とを互いに逆にして撮像素子ＩＳＥＮ１、ＩＳＥＮ２から読み出された画像ＩＭＧ１、ＩＭＧ２を、取得する。
【００２４】
なお、画像処理装置ＩＭＰ内に示す括弧内の図は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からそれぞれ読み出された画像ＩＭＧ１、ＩＭＧ２を示す。図１に示す画像ＩＭＧ１、ＩＭＧ２は、画角内を左から右に移動する被写体ＯＢＪ（画像ＩＭＧ１内の被写体ＯＢＪ１、画像ＩＭＧ２内の被写体ＯＢＪ２）を撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像した画像である。図１では、説明を分かりやすくするために、被写体ＯＢＪは、細長い矩形状であるとする。
【００２５】
画像ＩＭＧ１上の被写体ＯＢＪ１の位置は、画角の下に向かうほど、破線の図形で示す本来の位置に対して右側にずれる。また、画像ＩＭＧ２上の被写体ＯＢＪ２の位置は、画角の上に向かうほど、破線の図形で示す本来の位置に対して右側にずれる。画像ＩＭＧ１上の被写体ＯＢＪ１と画像ＩＭＧ２上の被写体ＯＢＪ２の左右方向のずれは、互いに異なる位置に配置されたレンズＬＥＮ１、ＬＥＮ２を介して被写体ＯＢＪを撮像したことにより生じる。
【００２６】
第１視差算出部１０は、画像ＩＭＧ１に含まれる被写体ＯＢＪ１の位置（画像ＩＭＧ１上の被写体ＯＢＪ１の位置）と画像ＩＭＧ２に含まれる被写体ＯＢＪ２の位置（画像ＩＭＧ２上の被写体ＯＢＪ２の位置）との差を示す第１視差ＤＰＦを行毎に算出する。そして、第１視差算出部１０は、算出した第１視差ＤＰＦを第１動きベクトル算出部３０に転送する。図１に示す例では、第１視差ＤＰＦは、下側の行ほど小さくなる。なお、第１視差ＤＰＦは、レンズＬＥＮ１、ＬＥＮ２から被写体ＯＢＪまでの距離およびレンズＬＥＮ１、ＬＥＮ２間の距離に応じて発生する真の視差と、ローリング歪みによって発生する被写体ＯＢＪの位置のずれ（以下、偽の視差とも称する）とを含む。以下、第１視差ＤＰＦは、見かけの視差ＤＰＦとも称される。
【００２７】
ここで、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の互いに対応する行のうち、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで同じタイミングで露光された行（同じ時刻に画素信号の読み出しが実行された行）では、偽の視差は発生しない。したがって、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで同じ時刻に画素信号の読み出しが実行された行では、第１視差ＤＰＦは、レンズＬＥＮ１、ＬＥＮ２から被写体ＯＢＪまでの距離およびレンズＬＥＮ１、ＬＥＮ２間の距離に応じて発生する真の視差を示す。以下、画素信号の読み出しが実行される時刻は、読み出し時刻とも称される。
【００２８】
第２視差算出部２０は、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２と被写体ＯＢＪとの位置関係に応じて発生する視差に相当する第２視差ＤＰＳを、複数の画像ＩＭＧ１および複数の画像ＩＭＧ２の少なくとも一方に基づいて行毎に算出する。そして、第２視差算出部２０は、算出した第２視差ＤＰＳを第１動きベクトル算出部３０に転送する。なお、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２と被写体ＯＢＪとの位置関係に応じて発生する視差は、例えば、レンズＬＥＮ１、ＬＥＮ２から被写体ＯＢＪまでの距離およびレンズＬＥＮ１、ＬＥＮ２間の距離に応じて発生する真の視差である。以下、第２視差ＤＰＳは、真の視差ＤＰＳとも称される。
【００２９】
例えば、撮像装置ＣＡＭが被写体ＯＢＪを所定のフレームレートで撮像する場合、画像処理装置ＩＭＰは、各フレームの画像ＩＭＧ（ＩＭＧ１、ＩＭＧ２）を順次受ける。これにより、例えば、第２視差算出部２０は、互いに異なる時刻に撮像された複数の画像ＩＭＧ１および互いに異なる時刻に撮像された複数の画像ＩＭＧ２を受ける。
【００３０】
そして、第２視差算出部２０は、互いに異なる時刻に撮像された２つの画像ＩＭＧ１上の被写体ＯＢＪ１の位置と各行の読み出し時刻とに基づいて、各行の読み出し時刻を時刻ｔ１に揃えた場合の被写体ＯＢＪ１の画像ＩＭＧ１上の位置を算出する。同様に、第２視差算出部２０は、互いに異なる時刻に撮像された２つの画像ＩＭＧ２上の被写体ＯＢＪ２の位置と各行の読み出し時刻とに基づいて、各行の読み出し時刻を時刻ｔ１に揃えた場合の被写体ＯＢＪ２の画像ＩＭＧ２上の位置を算出する。
【００３１】
そして、第２視差算出部２０は、各行の読み出し時刻を時刻ｔ１に揃えた場合の被写体ＯＢＪ１の画像ＩＭＧ１上の位置と各行の読み出し時刻を時刻ｔ１に揃えた場合の被写体ＯＢＪ２の画像ＩＭＧ２上の位置とに基づいて、第２視差ＤＰＳを行毎に算出する。なお、各行の読み出し時刻は、時刻ｔ１以外の任意の時刻（例えば、時刻ｔｃ）に揃えられてもよい。
【００３２】
また、第２視差算出部２０は、画像ＩＭＧ１の各行の読み出し時刻に画像ＩＭＧ２の各行の読み出し時刻を合わせた場合の被写体ＯＢＪ２の画像ＩＭＧ２上の位置を算出してもよい。例えば、第２視差算出部２０は、画像ＩＭＧ２の行Ｌ１、・・・、Ｌｅの読み出し時刻を時刻ｔ１、・・・、ｔｅにした場合の被写体ＯＢＪ２の画像ＩＭＧ２上の位置を算出してもよい。この場合、第２視差算出部２０は、画像ＩＭＧ１上の被写体ＯＢＪ１の位置と、画像ＩＭＧ１の各行の読み出し時刻に画像ＩＭＧ２の各行の読み出し時刻を合わせた場合の被写体ＯＢＪ２の画像ＩＭＧ２上の位置とに基づいて、第２視差ＤＰＳを行毎に算出する。
【００３３】
なお、第２視差算出部２０は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の互いに対応する行の読み出し時刻（例えば、行Ｌ１では時刻ｔ１、ｔｅ）の差である読み出し時間差が予め決められた第１の時間以下の行に対しては、第２視差ＤＰＳを算出する処理を省いてもよい。これは、読み出し時間差が予め決められた第１の時間以下の行では、見かけの視差ＤＰＦを真の視差として処理してもローリング歪みの補正精度に与える影響が小さいためである。読み出し時間差が予め決められた第１の時間以下の行に対して、第２視差ＤＰＳを算出する処理を省くことにより、１画面分の第２視差ＤＰＳを算出する処理にかかる時間を短縮することができる。
【００３４】
例えば、第１の時間が互いに隣接する行の読み出し時刻の差（タイミング図のΔｔ）である場合、読み出し時間差が第１の時間以下の行は、時刻ｔｃに画素信号の読み出しが実行される行Ｌｃである。この場合、第２視差算出部２０は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の複数の行のうちの行Ｌｃを除く行について、第２視差ＤＰＳをそれぞれ算出する。また、第１の時間が互いに隣接する行の読み出し時刻の差（タイミング図のΔｔ）の２倍の時間である場合、読み出し時間差が第１の時間以下の行は、行Ｌｃと、行Ｌｃに隣接する２つの行（行Ｌｃの上の行と行Ｌｃの下の行と）との合計３つの行である。この場合、第２視差算出部２０は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の複数の行のうち、行Ｌｃに隣接する行と行Ｌｃとを除く行について、第２視差ＤＰＳをそれぞれ算出する。
【００３５】
第１動きベクトル算出部３０は、読み出し時間差と第１視差ＤＰＦと第２視差ＤＰＳとに基づいて、被写体ＯＢＪの動きベクトルである第１動きベクトルＭＶ１を行毎に算出する。第１動きベクトルＭＶ１は、第１視差ＤＰＦ、第２視差ＤＰＳ、撮像素子ＩＳＥＮ１の読み出し時刻ｔＲおよび撮像素子ＩＳＥＮ２の読み出し時刻ｔＬを用いて、式（１）で表される。
【００３６】
ＭＶ１＝（ＤＰＦ−ＤＰＳ）／（ｔＲ−ｔＬ）  ・・・（１）
なお、図１に示すタイミング図では、読み出し時間差（＝ｔＲ−ｔＬ）は、各行で異なる。第１動きベクトル算出部３０は、算出した第１動きベクトルＭＶ１を補正部４０に転送する。被写体ＯＢＪが撮像素子ＩＳＥＮ１、ＩＳＥＮ２の画素アレイの行方向に対して平行に等速で移動する場合、第１動きベクトルＭＶ１は、画像ＩＭＧ１と画像ＩＭＧ２とで同じ動きベクトルとなる。以下、第１動きベクトルＭＶ１は、共通動きベクトルＭＶ１とも称される。
【００３７】
なお、式（１）では、読み出し時間差が０の場合、第１動きベクトルＭＶ１は算出されない。したがって、第１動きベクトル算出部３０は、読み出し時間差が第１の時間より大きい行について、第１動きベクトルＭＶ１を、第１視差ＤＰＦ、第２視差ＤＰＳおよび読み出し時間差に基づいてそれぞれ算出してもよい。すなわち、第１動きベクトル算出部３０は、読み出し時間差が第１の時間以下の行に対しては、第１動きベクトルＭＶ１を算出する処理を省いてもよい。この場合、画像処理装置ＩＭＰは、読み出し時間差が第１の時間以下の行（例えば、行Ｌｃ）における被写体ＯＢＪの動きを示す第２動きベクトルを、複数の第１視差ＤＰＦ（複数のフレームでの第１視差ＤＰＦ）に基づいて算出してもよい。
【００３８】
補正部４０は、露光の開始の時刻および読み出し時刻が行毎に異なることに起因する画像ＩＭＧ１、ＩＭＧ２のそれぞれの歪み（ローリング歪み）を第１動きベクトルＭＶ１に基づいて補正し、補正画像ＩＭＧＣ１、ＩＭＧＣ２をそれぞれ生成する。例えば、補正画像ＩＭＧＣ１、ＩＭＧＣ２は、画像を合成する画像合成処理部、３次元画像処理を実行する３次元画像処理部等の後段の処理部に転送される。なお、補正画像ＩＭＧＣ１は、画像ＩＭＧ１のローリング歪みを補正した画像であり、補正画像ＩＭＧＣ２は、画像ＩＭＧ２のローリング歪みを補正した画像である。
【００３９】
例えば、補正部４０は、ローリング歪みの補正量を示す補正ベクトルを、第１動きベクトルＭＶ１および読み出し時刻に基づいて行毎に算出する。そして、補正部４０は、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪ１、ＯＢＪ２の位置を補正ベクトルに基づいて行毎に補正して、画像ＩＭＧ１、ＩＭＧ２のそれぞれのローリング歪みを補正し、補正画像ＩＭＧＣ１、ＩＭＧＣ２をそれぞれ生成する。
【００４０】
例えば、画像ＩＭＧ１を補正する際の補正ベクトルＣＶｒは、第１動きベクトルＭＶ１、読み出し時刻ｔＲおよび補正の基準となる時刻ｔＲＥＦを用いて、式（２）で表される。なお、式（２）の”＊”は、乗算を示す。
【００４１】
ＣＶｒ＝−１＊ＭＶ１＊（ｔＲ−ｔＲＥＦ）  ・・・（２）
同様に、画像ＩＭＧ２を補正する際の補正ベクトルＣＶｌは、第１動きベクトルＭＶ１、読み出し時刻ｔＬ、補正の基準となる時刻ｔＲＥＦを用いて、式（３）で表される。
【００４２】
ＣＶｌ＝−１＊ＭＶ１＊（ｔＬ−ｔＲＥＦ）  ・・・（３）
読み出し時刻を時刻ｔ１に揃えた補正画像ＩＭＧＣ１、ＩＭＧＣ２が生成される場合、式（２）および式（３）の時刻ｔＲＥＦに、時刻ｔ１が代入される。この場合、第１動きベクトルＭＶ１が算出されない行（例えば、行Ｌｃ）に対しては、補正部４０は、時刻ｔ１の被写体ＯＢＪの位置を、複数の第１視差ＤＰＦに基づいて算出する。複数の第１視差ＤＰＦは、例えば、補正対象の画像ＩＭＧ１、ＩＭＧ２から算出された第１視差ＤＰＦ、補正対象の画像ＩＭＧ１、ＩＭＧ２より前に撮像された画像ＩＭＧ１、ＩＭＧ２から算出された第１視差ＤＰＦである。読み出し時刻を時刻ｔ１に揃えた補正画像ＩＭＧＣ１、ＩＭＧＣ２では、被写体ＯＢＪ（ＯＢＪ１、ＯＢＪ２）は、例えば、図１に示す画像ＩＭＧ１、ＩＭＧ２内の破線の図形で示した位置に補正される。
【００４３】
また、読み出し時刻を時刻ｔｃに揃えた補正画像が生成される場合、式（２）および式（３）の時刻ｔＲＥＦに、時刻ｔｃが代入される。この場合、第１動きベクトルＭＶ１が算出されない行Ｌｃの補正量を算出する処理を省くことができる。例えば、行Ｌｃの補正量は、行Ｌｃが補正の基準となるため、０である。
【００４４】
なお、画像処理装置ＩＭＰの構成は、図１に示す例に限定されない。例えば、第１動きベクトル算出部３０は、補正部４０内に設けられてもよい。この場合、補正部４０は、式（２）および式（３）の第１動きベクトルＭＶ１に式（１）の第１動きベクトルＭＶ１を代入して得られる式に基づいて、補正ベクトルＣＶ（ＣＶｒ、ＣＶｌ）を算出してもよい。
【００４５】
また、画像処理装置ＩＭＰは、読み出し時間差が第１の時間以下の行（例えば、行Ｌｃ）における被写体ＯＢＪの動きを示す第２動きベクトルを、第１視差ＤＰＦに基づいて算出する第２動きベクトル算出部を有してもよい。この場合、補正部４０は、第１視差ＤＰＦに基づいて算出した第２動きベクトルと第１動きベクトルＭＶ１とを合成した合成動きベクトルを、第１動きベクトルＭＶ１の代わりに用いて補正ベクトルＣＶを算出してもよい。例えば、合成動きベクトルにおける第２動きベクトルの割合は、第２動きベクトルが算出された行と各行との位置関係（距離）に応じて算出される。
【００４６】
また、補正部４０は、例えば、被写体ＯＢＪが所定のフレームレートで撮像された場合、フレーム間の動きベクトルと第１動きベクトルＭＶ１とを合成した合成動きベクトルを、第１動きベクトルＭＶ１の代わりに用いて補正ベクトルＣＶを算出してもよい。合成動きベクトルは、例えば、フレーム間の動きベクトルと第１動きベクトルＭＶ１とを平均して算出される。
【００４７】
また、画像処理装置ＩＭＰは、駆動部ＤＲＶの動作を制御する制御部を有してもよい。例えば、制御部は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行Ｌｃが最初に露光されるように駆動部ＤＲＶを制御してもよい。この場合、撮像素子ＩＳＥＮ１では、画素信号の読み出しは、行Ｌｃから行Ｌ１まで行毎に順次実行され、行Ｌ１まで実行された後、行Ｌｅから行Ｌｃの１つ下の行まで順次実行される。撮像素子ＩＳＥＮ２では、画素信号の読み出しは、行Ｌｃから行Ｌｅまで行毎に順次実行され、行Ｌｅまで実行された後、行Ｌ１から行Ｌｃの１つ上の行まで順次実行される。
【００４８】
あるいは、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行Ｌｃを最初に露光するように予め設定されていてもよい。
【００４９】
以上、図１に示す実施形態では、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しは、行の配列方向の走査の向きを互いに逆にして実行される。これにより、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の互いに対応する行の読み出し時刻に差（読み出し時間差）が生じる。また、画像処理装置ＩＭＰは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２から得られる画像ＩＭＧ１、ＩＭＧ２に基づいて、第１視差ＤＰＦ（ローリング歪みを含む見かけの視差ＤＰＦ）および第２視差ＤＰＳ（真の視差ＤＰＳ）を算出する。
【００５０】
そして、画像処理装置ＩＭＰは、第１視差ＤＰＦ、第２視差ＤＰＳおよび読み出し時間差に基づいて第１動きベクトルＭＶ１を算出し、第１動きベクトルＭＶ１に基づいて画像ＩＭＧ１、ＩＭＧ２のローリング歪みを補正する。なお、読み出し時間差は、例えば、被写体ＯＢＪを所定のフレームレートで撮像する場合のフレーム間隔より、短い。
【００５１】
このため、第１動きベクトルＭＶ１を算出する際の時間間隔（時間分解能）は、フレーム間の動きベクトルを算出する際の時間間隔に比べて小さい。動きベクトルを算出する際の時間間隔が小さくなるほど、動きベクトルに基づいて算出される補正量の誤差は、減少する。したがって、この実施形態では、画像ＩＭＧ１、ＩＭＧ２のローリング歪みを補正する際の誤差を、フレーム間の動きベクトルに基づいてローリング歪みを補正する場合に比べて小さくできる。すなわち、この実施形態では、画像の歪みを精度よく補正できる。
【００５２】
また、この実施形態では、ローリング歪みを補正するための専用部品（例えば、ビームスプリッタ）を撮像装置ＣＡＭに搭載せずにローリング歪みを補正できるため、撮像装置ＣＡＭの製造コストを低減できる。
【００５３】
図２は、画像処理装置および画像処理方法の別の実施形態を示している。この実施形態の画像処理装置ＩＭＰ２は、撮像装置ＣＡＭ２に搭載される。撮像装置ＣＡＭ２は、図１に示した画像処理装置ＩＭＰの代わりに画像処理装置ＩＭＰ２を有することを除いて、図１に示した撮像装置ＣＡＭと同一または同様である。図１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図２の破線の矢印は、信号等の情報の流れを示す。
【００５４】
撮像装置ＣＡＭ２は、レンズＬＥＮ１を介して被写体を撮像する撮像素子ＩＳＥＮ１と、レンズＬＥＮ２を介して被写体ＯＢＪを撮像する撮像素子ＩＳＥＮ２と、撮像素子ＩＳＥＮ１、ＩＳＥＮ２を駆動する駆動部ＤＲＶと、画像処理装置ＩＭＰ２とを有する。撮像素子ＩＳＥＮ１、ＩＳＥＮ２および駆動部ＤＲＶは、画像処理装置ＩＭＰ２内のバスＢＵＳに接続される。
【００５５】
駆動部ＤＲＶは、画素信号の読み出しを行毎に順番に実行する際の行の配列方向の走査の向きを撮像素子ＩＳＥＮ１、ＩＳＥＮ２で互いに逆にして、画像ＩＭＧ１、ＩＭＧ２を撮像素子ＩＳＥＮ１、ＩＳＥＮ２からそれぞれ読み出す。例えば、駆動部ＤＲＶは、画素信号の読み出しを、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで共通のクロックを用いて実行する。
【００５６】
撮像素子ＩＳＥＮ１の行の配列方向の走査の向きと撮像素子ＩＳＥＮ２の行の配列方向の走査の向きとを互いに逆にして撮像素子ＩＳＥＮ１、ＩＳＥＮ２から読み出された画像ＩＭＧ１、ＩＭＧ２は、画像処理装置ＩＭＰ２内のバスＢＵＳに転送される。また、駆動部ＤＲＶは、読み出し時刻等を示す読み出し時間情報ＴＩＮＦを画像処理装置ＩＭＰ２内のバスＢＵＳに転送する。
【００５７】
画像処理装置ＩＭＰ２は、制御部ＣＮＴＬ、視差算出部ＰＡＬＣ、共通動きベクトル算出部ＭＶＣＡＬ１、奥行き動きベクトル算出部ＭＶＣＡＬ２、補正部ＣＯＲＲ、合成率算出部ＲＣＡＬ、画像合成部ＳＹＮ、記録部ＲＥＣおよび表示部ＤＩＰを有する。さらに、画像処理装置ＩＭＰ２は、メモリＦＭＥＭ、ＭＥＭおよびバスＢＵＳを有する。
【００５８】
制御部ＣＮＴＬ、視差算出部ＰＡＬＣ、共通動きベクトル算出部ＭＶＣＡＬ１、奥行き動きベクトル算出部ＭＶＣＡＬ２、補正部ＣＯＲＲ、合成率算出部ＲＣＡＬ、画像合成部ＳＹＮ、記録部ＲＥＣ、表示部ＤＩＰは、バスＢＵＳに接続される。また、メモリＦＭＥＭ、ＭＥＭは、バスＢＵＳに接続される。
【００５９】
メモリＦＭＥＭは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像された画像ＩＭＧ１、ＩＭＧ２を記憶するフレームメモリである。また、メモリＭＥＭは、第１視差ＤＰＦ、第２視差ＤＰＳ、共通動きベクトルＭＶ１、奥行き動きベクトルＭＶ２、読み出し時間情報ＴＩＮＦ、補正画像ＩＭＧＣ１、ＩＭＧＣ２等を記憶する。
【００６０】
制御部ＣＮＴＬは、駆動部ＤＲＶの動作を制御する。例えば、制御部ＣＮＴＬは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行の配列方向の走査の向きが互いに逆になるように、駆動部ＤＲＶを制御する。なお、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行の配列方向の走査の向きは、駆動部ＤＲＶに予め設定されていてもよい。
【００６１】
視差算出部ＰＡＬＣは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像された画像ＩＭＧ１、ＩＭＧ２をフレームメモリＦＭＥＭからバスＢＵＳを介して受け、第１視差ＤＰＦおよび第２視差ＤＰＳをバスＢＵＳを介してメモリＭＥＭに転送する。例えば、視差算出部ＰＡＬＣは、第１視差ＤＰＦを算出する第１視差算出部ＰＡＬＣ１と、第２視差ＤＰＳを算出する第２視差算出部ＰＡＬＣ２とを有する。第１視差算出部ＰＡＬＣ１および第２視差算出部ＰＡＬＣ２は、図１に示した第１視差算出部１０および第２視差算出部２０と同一または同様である。
【００６２】
例えば、第１視差算出部ＰＡＬＣ１は、補正対象の画像ＩＭＧ１、ＩＭＧ２をフレームメモリＦＭＥＭからバスＢＵＳを介して受け、補正対象の画像ＩＭＧ１、ＩＭＧ２に基づいて、第１視差ＤＰＦを算出する。また、第２視差算出部ＰＡＬＣ２は、補正対象の画像ＩＭＧ１、ＩＭＧ２と、補正対象の画像ＩＭＧ１、ＩＭＧ２より前に撮像された画像ＩＭＧ１、ＩＭＧ２とを、フレームメモリＦＭＥＭからバスＢＵＳを介して受ける。そして、第２視差算出部ＰＡＬＣ２は、複数の画像ＩＭＧ１（互いに異なる時刻に撮像された複数の画像ＩＭＧ１）と複数の画像ＩＭＧ２（互いに異なる時刻に撮像された複数の画像ＩＭＧ２）とに基づいて、第２視差ＤＰＳを算出する。
【００６３】
共通動きベクトル算出部ＭＶＣＡＬ１は、第１視差ＤＰＦ、第２視差ＤＰＳおよび読み出し時間差に基づいて共通動きベクトルＭＶ１（第１動きベクトルＭＶ１）を算出する第１動きベクトル算出部の一例である。共通動きベクトル算出部ＭＶＣＡＬ１は、図１に示した第１動きベクトル算出部３０と同一または同様である。例えば、共通動きベクトル算出部ＭＶＣＡＬ１は、第１視差ＤＰＦ、第２視差ＤＰＳおよび読み出し時間情報ＴＩＮＦをメモリＭＥＭからバスＢＵＳを介して受ける。
【００６４】
そして、共通動きベクトル算出部ＭＶＣＡＬ１は、読み出し時間情報ＴＩＮＦに含まれる各行の読み出し時刻に基づいて読み出し時間差を算出する。また、共通動きベクトル算出部ＭＶＣＡＬ１は、第１視差ＤＰＦ、第２視差ＤＰＳおよび読み出し時間差に基づいて、共通動きベクトルＭＶ１を算出する。そして、共通動きベクトル算出部ＭＶＣＡＬ１は、共通動きベクトルＭＶ１をバスＢＵＳを介してメモリＭＥＭに転送する。
【００６５】
奥行き動きベクトル算出部ＭＶＣＡＬ２は、読み出し時間差が第１の時間以下の行における被写体の動きを示す第２動きベクトルＭＶ２（以下、奥行き動きベクトルとも称する）を、第１視差ＤＰＦに基づいて算出する第２動きベクトル算出部の一例である。奥行き動きベクトル算出部ＭＶＣＡＬ２は、複数の第１視差ＤＰＦをメモリＭＥＭからバスＢＵＳを介して受け、奥行き動きベクトルＭＶ２をバスＢＵＳを介してメモリＭＥＭに転送する。複数の第１視差ＤＰＦは、例えば、補正対象の画像ＩＭＧ１、ＩＭＧ２から算出された第１視差ＤＰＦと、補正対象の画像ＩＭＧ１、ＩＭＧ２より前に撮像された画像ＩＭＧ１、ＩＭＧ２から算出された第１視差ＤＰＦである。奥行き動きベクトルＭＶ２の算出方法は、図５で説明する。
【００６６】
補正部ＣＯＲＲは、画像ＩＭＧ１、ＩＭＧ２のそれぞれの歪み（ローリング歪み）を共通動きベクトルＭＶ１および奥行き動きベクトルＭＶ２に基づいて補正し、補正画像ＩＭＧＣ１、ＩＭＧＣ２をそれぞれ生成する。例えば、補正部ＣＯＲＲは、補正対象の画像ＩＭＧ１、ＩＭＧ２、共通動きベクトルＭＶ１および奥行き動きベクトルＭＶ２を、メモリＭＥＭからバスＢＵＳを介して受け、補正画像ＩＭＧＣ１、ＩＭＧＣ２をバスＢＵＳを介してメモリＭＥＭに転送する。補正部ＣＯＲＲは、図５に示すように、読み出し時間差が第１の時間以下の行に対しては、奥行き動きベクトルＭＶ２に基づいてローリング歪みを補正する。補正部ＣＯＲＲのその他の動作は、図１に示した補正部４０と同一または同様である。
【００６７】
合成率算出部ＲＣＡＬは、補正画像ＩＭＧＣ１、ＩＭＧＣ２および読み出し時間情報ＴＩＮＦをメモリＭＥＭからバスＢＵＳを介して受ける。そして、合成率算出部ＲＣＡＬは、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成する際の補正画像ＩＭＧＣ１の比率αを、各行に対して画素信号の読み出しが実行される時刻と基準の時刻との差である差分時間に基づいて決定する。以下、補正画像ＩＭＧＣ１の比率αは、合成率αとも称される。
【００６８】
例えば、合成率算出部ＲＣＡＬは、補正画像ＩＭＧＣ２をレンズＬＥＮ１を視点とした画像に変換する。レンズＬＥＮ１を視点とした画像に変換する視点変換により、視点変換後の補正画像ＩＭＧＣ２では、一部の領域に画素の欠落が発生する。画素の欠落が発生した領域は、合成時に使用されないように処理される。なお、以下では、視点変換後の補正画像ＩＭＧＣ２は、補正画像ＩＭＧＣ２ａ、または、画像ＩＭＧＣ２ａとも称される。
【００６９】
また、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成する場合、本来見えないはずの隠面が混ざる現象（ゴースト滲み）が発生するおそれがある。このため、補正画像ＩＭＧＣ１の比率αは、レンズＬＥＮ２を視点とした場合の隠面の量が多くなるほど、大きくなるように設定される。なお、隠面は、例えば、レンズＬＥＮ２を視点とした場合に、被写体ＯＢＪ等の裏側に位置し、レンズＬＥＮ２からは見えない部分である。
【００７０】
この実施形態では、ゴースト滲みを抑制するために、合成率算出部ＲＣＡＬは、画像ＩＭＧ１の画素値（画素の明るさ等を示す値）と画像ＩＭＧ２の画素値との差と、差分時間（画素信号の読み出し時刻と基準の時刻との差）とに基づいて、合成率αを決定する。例えば、合成率αは、画像ＩＭＧ１の画素信号の読み出し時刻と基準の時刻との差の絶対値ＴＤＬと、１画面分の画素信号の読み出しにかかる時間ＴＦＵＬと、ゴースト抑制率ＲＩＮＨと、欠落判定値ＦＬＧとを用いて、式（４）で表される。
【００７１】
α＝１−｛（ＴＤＬ／ＴＦＵＬ）＊（１−ＲＩＮＨ）＊ＦＬＧ｝  ・・・（４）
なお、１画面分の画素信号の読み出しにかかる時間ＴＦＵＬは、例えば、図１に示したタイミング図では、時刻ｔ１と時刻ｔｅとの差である。
【００７２】
また、ゴースト抑制率ＲＩＮＨは、例えば、補正画像ＩＭＧＣ１の所定ブロックの画素と補正画像ＩＭＧＣ２の所定ブロックの画素との類似度を示すブロック一致量に基づいて設定される。なお、ゴースト抑制率ＲＩＮＨは、例えば、画像ＩＭＧ１の所定ブロックの画素と画像ＩＭＧ２の所定ブロックの画素との類似度を示すブロック一致量に基づいて設定されてもよい。
【００７３】
ブロック一致量は、例えば、差分絶対値和（ＳＡＤ：Sum of Absolute Difference）、差分二乗和等である。例えば、合成率算出部ＲＣＡＬは、補正画像ＩＭＧＣ１の所定ブロックの画素と補正画像ＩＭＧＣ２の所定ブロックの画素とのブロックマッチングを実行し、ブロック一致量を算出する。なお、合成率算出部ＲＣＡＬは、視差を測定する際に用いられるブロックマッチング等により算出されるブロック一致量がメモリＭＥＭ等に記憶される場合、メモリＭＥＭ等からブロック一致量を取得してもよい。そして、合成率算出部ＲＣＡＬは、ブロック一致量に基づいてゴースト抑制率ＲＩＮＨを設定する。
【００７４】
例えば、差分絶対値和が０の場合（完全一致）、ゴースト抑制率ＲＩＮＨは、０である。また、差分絶対値和が所定の閾値を超える場合（非一致）、ゴースト抑制率ＲＩＮＨは、１である。差分絶対値和が０より大きく、かつ、所定の閾値以下の場合、ゴースト抑制率ＲＩＮＨは、例えば、差分絶対値和を所定の閾値で除算した値に設定される。
【００７５】
このように、ゴースト抑制率ＲＩＮＨは、例えば、レンズＬＥＮ２を視点とした場合の隠面が大きくなるほど、大きな値に設定される。これにより、レンズＬＥＮ２を視点とした場合の隠面の量が多くなるほど、補正画像ＩＭＧＣ１の比率αは、大きくなる。この結果、画像処理装置ＩＭＰ２では、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成した合成画像に、本来見えないはずの隠面が混ざる現象（ゴースト滲み）が発生することを抑制できる。
【００７６】
また、欠落判定値ＦＬＧは、補正画像ＩＭＧＣ２の視点変換により欠落した画素の有無に応じて、０または１に設定される。例えば、合成率αが所定の単位ブロック毎に算出される場合、画素の欠落が発生した単位ブロックでは、欠落判定値ＦＬＧは、０に設定され、画素の欠落が発生していない単位ブロックでは、欠落判定値ＦＬＧは、１に設定される。例えば、単位ブロックは、ブロックマッチング等に用いられる所定ブロックの行方向の幅と同じ幅で各行を分けたブロックである。
【００７７】
合成率算出部ＲＣＡＬで算出された合成率αは、画像合成部ＳＹＮに転送される。例えば、合成率算出部ＲＣＡＬは、補正画像ＩＭＧＣ１、ＩＭＧＣ２および合成率αを画像合成部ＳＹＮに転送する。
【００７８】
画像合成部ＳＹＮは、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを補正画像ＩＭＧＣ１の比率αに基づいて合成する。これにより、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成した合成画像ＩＭＧＳが生成される。例えば、単位ブロックの合成画像ＩＭＧＳは、合成率α、補正画像ＩＭＧＣ１、視点変換後の補正画像ＩＭＧＣ２ａを用いて、式（５）で表される。
【００７９】
ＩＭＧＳ＝ＩＭＧＣ１＊α＋ＩＭＧＣ２ａ＊（１−α）  ・・・（５）
このように、画像合成部ＳＹＮは、補正画像ＩＭＧＣ１と視点変換後の補正画像ＩＭＧＣ２ａとを合成率αに基づいて合成し、合成画像ＩＭＧＳをバスＢＵＳに転送する。
【００８０】
すなわち、合成率算出部ＲＣＡＬおよび画像合成部ＳＹＮは、読み出し時刻と基準の時刻との差に基づいて合成率αを決定し、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成率αに基づいて合成する合成部の一例である。
【００８１】
記録部ＲＥＣは、合成画像ＩＭＧＳ等を記録する。表示部ＤＩＰは、ディスプレイ等の表示装置に、合成画像ＩＭＧＳ等を表示する。
【００８２】
なお、画像処理装置ＩＭＰ２の構成は、図２に示す例に限定されない。例えば、合成率算出部ＲＣＡＬは、画像合成部ＳＹＮ内に設けられてもよい。また、合成率算出部ＲＣＡＬおよび画像合成部ＳＹＮは、視点変換後の補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成した合成画像ＩＭＧＳを生成してもよい。視点変換後の補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２との合成処理は、合成率算出部ＲＣＡＬ等の説明において、符号ＩＭＧＣ１、ＬＥＮ１、ＩＭＧＣ２、ＬＥＮ２を符号ＩＭＧＣ２、レンズＬＥＮ２、ＩＭＧＣ１、ＬＥＮ１と読み替えることにより説明される。
【００８３】
また、画素の欠落が発生した領域および隠面は、前後のフレームの補正画像ＩＭＧＣ２等を用いて補間されてもよい。この場合、合成率算出部ＲＣＡＬは、式（４）において、ゴースト抑制率ＲＩＮＨを０とし、かつ、欠落判定値ＦＬＧを１として、合成率αを決定してもよい。
【００８４】
また、画像処理装置ＩＭＰ２は、３次元画像処理を実行する３次元画像処理部に、補正画像ＩＭＧＣ１、ＩＭＧＣ２を転送してもよい。また、画像処理装置ＩＭＰ２は、補正画像ＩＭＧＣ１と視点変換後の補正画像ＩＭＧＣ２とを合成した合成画像ＩＭＧＳと、視点変換後の補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成した合成画像ＩＭＧＳとを、３次元画像処理部に転送してもよい。あるいは、画像処理装置ＩＭＰ２は、３次元画像処理部を有してもよい。
【００８５】
図３は、図２に示した撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出し方法の一例を示す。図３に示すタイミング図では、３つのフレームＦＲＭ（ＦＲＭ１、ＦＲＭ２、ＦＲＭ３）の画像ＩＭＧ１、ＩＭＧ２の読み出しタイミングを示す。タイミング図の縦軸のＬ１、Ｌｃ、Ｌｅは、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行（複数の画素が行列状に配置された画素アレイの行）を示し、タイミング図の横軸は、時刻を示す。タイミング図の符号ＶＤは、垂直同期信号の周期（フレームの周期）に対応する。なお、図３では、図を見やすくするために、各行の境界線の記載を省略している。
【００８６】
撮像素子ＩＳＥＮ１のタイミング図は、図１に示した撮像素子ＩＳＥＮ１のタイミング図と同一または同様であり、撮像素子ＩＳＥＮ２のタイミング図は、図１に示した撮像素子ＩＳＥＮ２のタイミング図と同一または同様である。例えば、撮像素子ＩＳＥＮ１は、画素アレイの上側の行から画素アレイの下側の行に向けて露光を行毎に実行し、撮像素子ＩＳＥＮ２は、画素アレイの下側の行から画素アレイの上側の行に向けて露光を行毎に実行する（図３の破線の矢印）。
【００８７】
図３に示す例では、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２との間の読み出し時間差ＴＤＦは、行Ｌｃに近づくほど小さくなり、行Ｌｃで０になる。図３に示す読み出し時間差において、実線は撮像素子ＩＳＥＮ１の読み出し時刻（図２で説明した式（１）の時刻ｔＲ）を示し、破線は撮像素子ＩＳＥＮ２の読み出し時刻（式（１）の時刻ｔＬ）を示す。
【００８８】
図４は、図２に示した視差算出部ＰＡＬＣにより算出される第１視差の一例を示す。図４に示す例では、被写体ＯＢＪは、画角内を左から右に移動する。この場合、画像ＩＭＧ１上の被写体ＯＢＪ１の位置は、画角の下に向かうほど、破線の図形で示す本来の位置に対して右側にずれる。また、画像ＩＭＧ２上の被写体ＯＢＪ２の位置は、画角の上に向かうほど、破線の図形で示す本来の位置に対して右側にずれる。図１で説明したように、画像ＩＭＧ１上の被写体ＯＢＪ１と画像ＩＭＧ２上の被写体ＯＢＪ２の左右方向のずれは、互いに異なる位置に配置されたレンズＬＥＮ１、ＬＥＮ２を介して被写体ＯＢＪを撮像したことにより生じる。
【００８９】
視差算出部ＰＡＬＣの第１視差算出部ＰＡＬＣ１は、画像ＩＭＧ１上の被写体ＯＢＪ１の位置と画像ＩＭＧ２上の被写体ＯＢＪ２の位置との差を示す第１視差ＤＰＦ（見かけの視差ＤＰＦ）を行毎に算出する。図４の一番下に示す画像ＩＭＧ１、ＩＭＧ２は、画像ＩＭＧ１と画像ＩＭＧ２とを重ね合わせた場合の被写体ＯＢＪ１、ＯＢＪ２を示す。図４に示す座標は、説明を分かりやすくするために付けた任意の座標である。
【００９０】
見かけの視差ＤＰＦ１は、被写体ＯＢＪの一番上側の見かけの視差を示し、見かけの視差ＤＰＦ２は、画像ＩＭＧ（ＩＭＧ１、ＩＭＧ２）の中央の行Ｌｃに対応する部分の見かけの視差を示す。そして、見かけの視差ＤＰＦ３は、被写体ＯＢＪの一番下側の見かけの視差を示す。例えば、見かけの視差ＤＰＦ１、ＤＰＦ２、ＤＰＦ３は、それぞれ−１１、−８、−５である。このように、図４に示す例では、見かけの視差ＤＰＦの絶対値は、下側の行ほど小さくなる。
【００９１】
なお、第２視差（真の視差）ＤＰＳは、図１で説明したように、複数の画像ＩＭＧ１（例えば、図３に示した）および複数の画像ＩＭＧ２の少なくとも一方に基づいて行毎に算出される。例えば、図３に示したフレームＦＲＭ２では、真の視差は、フレームＦＲＭ１の画像ＩＭＧ１、ＩＭＧ２とフレームＦＲＭ２の画像ＩＭＧ１、ＩＭＧ２とに基づいて行毎に算出される。
【００９２】
ここで、読み出し時間差ＴＤＦが０の行（例えば、行Ｌｃ）では、見かけの視差ＤＰＦ２は、レンズＬＥＮ（ＬＥＮ１、ＬＥＮ２）から被写体ＯＢＪまでの距離およびレンズＬＥＮ１、ＬＥＮ２間の距離に応じて発生する真の視差を示す。したがって、画像処理装置ＩＭＰ２は、読み出し時間差ＴＤＦが０の行（例えば、行Ｌｃ）では、三角測量の原理を用いて、レンズＬＥＮから被写体ＯＢＪまでの距離を算出できる。例えば、レンズＬＥＮから被写体ＯＢＪまでの距離Ｄは、レンズＬＥＮ１、ＬＥＮ２間の距離Ｌ１０、撮像素子ＩＳＥＮ１とレンズＬＥＮ１との距離ｆ、第１視差ＤＰＦを用いて、式（６）で表される。
【００９３】
Ｄ＝Ｌ１０＊ｆ／ＤＰＦ  ・・・（６）
例えば、奥行き動きベクトル算出部ＭＶＣＡＬ２は、レンズＬＥＮから被写体ＯＢＪまでの距離ＤをフレームＦＲＭ毎に算出する。そして、奥行き動きベクトル算出部ＭＶＣＡＬ２は、例えば、図５に示すように、２つのフレームＦＲＭで算出した距離Ｄを用いて、奥行き動きベクトルＭＶ２を算出する。
【００９４】
図５は、奥行き動きベクトルＭＶ２を用いた被写体ＯＢＪの位置の算出方法の一例を示す。なお、図５では、撮像素子ＩＳＥＮ１の画素アレイ上に投影される被写体ＯＢＪの行方向の位置を算出する例を説明する。被写体ＯＢＪの位置を示す座標Ａ（Ｘ１、Ｄ１）、Ｍ（Ｘｓ、Ｄｓ）、Ｂ（Ｘ２、Ｄ２）は、レンズＬＥＮ１の中心を座標の原点とした場合の被写体ＯＢＪの位置を示す。各座標のＸは、撮像素子ＩＳＥＮ１の画素アレイの行方向に沿う軸の位置を示し、各座標のＤは、撮像素子ＩＳＥＮ１からレンズＬＥＮ１に向かう方向（画素アレイに対して垂直に交わる方向）に沿う軸の位置を示す。以下、画素アレイに対して垂直に交わる方向は、奥行き方向とも称される。
【００９５】
例えば、座標Ａ（Ｘ１、Ｄ１）は、被写体ＯＢＪの各部分を示す複数の座標のうち、図３に示したフレームＦＲＭ１における画像ＩＭＧ１の行Ｌｃ（読み出し時間差ＴＤＦが０の行）に対応する部分の位置を示す。また、座標Ｂ（Ｘ２、Ｄ２）は、被写体ＯＢＪの各部分を示す複数の座標のうち、図３に示したフレームＦＲＭ２における画像ＩＭＧ１の行Ｌｃ（読み出し時間差ＴＤＦが０の行）に対応する部分の位置を示す。
【００９６】
座標Ｍ（Ｘｓ、Ｄｓ）は、移動中の被写体ＯＢＪにおける画像ＩＭＧ１の行Ｌｃ（読み出し時間差ＴＤＦが０の行）に対応する部分の位置を示す。例えば、座標Ｍ（Ｘｓ、Ｄｓ）は、フレームＦＲＭ１における画像ＩＭＧ１の行Ｌｃが読み出された時刻から時間βが経過した場合の被写体ＯＢＪ（より詳細には、画像ＩＭＧ１の行Ｌｃに対応する部分）の位置を示す。時間βは、フレーム間隔（垂直同期信号の周期ＶＤ）に対する相対的な時間を示す。
【００９７】
移動中の被写体ＯＢＪの座標Ｍ（Ｘｓ、Ｄｓ）のＸ座標は、Ｘ座標Ｘ１、Ｘ２および時間βを用いて、式（７）で表され、座標Ｍ（Ｘｓ、Ｄｓ）のＤ座標は、Ｄ座標Ｄ１、Ｄ２および時間βを用いて、式（８）で表される。
【００９８】
Ｘｓ＝（１−β）＊Ｘ１＋β＊Ｘ２  ・・・（７）
Ｄｓ＝（１−β）＊Ｄ１＋β＊Ｄ２  ・・・（８）
また、図５の位置ｘ１、ｘｓ、ｘ２は、例えば、撮像素子ＩＳＥＮ１の画素アレイの中央の行（例えば、図３に示した行Ｌｃ）上の被写体ＯＢＪの位置を示す。すなわち、位置ｘ１、ｘｓ、ｘ２は、画像ＩＭＧ１の中央の行（例えば、図３に示した行Ｌｃ）上の被写体ＯＢＪの位置に対応する。
【００９９】
位置ｘ１は、被写体ＯＢＪの座標が座標Ａ（Ｘ１、Ｄ１）の場合の画素アレイ上の被写体ＯＢＪの位置を示し、位置ｘ２は、被写体ＯＢＪの座標が座標Ｂ（Ｘ２、Ｄ２）の場合の画素アレイ上の被写体ＯＢＪの位置を示す。位置ｘｓは、被写体ＯＢＪの座標が座標Ｍ（Ｘｓ、Ｄｓ）の場合の画素アレイ上の被写体ＯＢＪの位置を示す。画素アレイ上の被写体ＯＢＪの位置ｘは、レンズＬＥＮ１の中心と画像ＩＭＧ１の画素アレイとの間の距離ｆと被写体ＯＢＪの座標（Ｘ、Ｄ）を用いて、式（９）で表される。
【０１００】
ｘ＝ｆ／Ｄ＊Ｘ  ・・・（９）
したがって、位置ｘｓは、式（７）に示したＸｓおよび式（８）に示したＤｓを式（９）のＸ、Ｄにそれぞれ代入することにより算出される。補正画像ＩＭＧＣ上の被写体ＯＢＪの位置は、補正の基準となる時刻（図１で説明した式（２）の時刻ｔＲＥＦ）に応じた値を式（９）のβに代入することにより算出される。例えば、時間βが０．５の場合、位置ｘｓは、座標Ａ（Ｘ１、Ｄ１）および座標Ｂ（Ｘ２、Ｄ２）を用いて、式（１０）で表される。
【０１０１】
ｘｓ＝ｆ／（Ｄ１＋Ｄ２）＊（Ｘ１＋Ｘ２）  ・・・（１０）
なお、奥行き方向の移動が考慮されない場合、例えば、フレームＦＲＭ１とフレームＦＲＭ２との中間に対応する時刻での画像ＩＭＧ上の被写体ＯＢＪの位置ｘｓ’は、画像ＩＭＧ上の被写体ＯＢＪの移動量に基づいて算出される。この場合、位置ｘｓ’は、位置ｘ１、ｘ２および時間βを用いて、式（１１）で表される。
【０１０２】
ｘｓ’＝（１−β）＊ｘ１＋β＊ｘ２  ・・・（１１）
例えば、時間βが０．５の場合、位置ｘｓ’は、位置ｘ１、ｘ２を用いて、式（１２）で表される。
【０１０３】
ｘｓ’＝０．５＊（ｘ１＋ｘ２）  ・・・（１２）
被写体ＯＢＪが奥行き方向に移動した場合、任意の時刻での画像ＩＭＧ上の被写体ＯＢＪの位置を式（１１）に基づいて算出した場合の精度は、画像ＩＭＧ上の被写体ＯＢＪの位置を式（１０）を用いて算出した場合に比べて低下する。換言すれば、この実施形態では、式（１０）に基づいて位置ｘｓを算出できるため、ローリング歪みの補正精度を向上できる。
【０１０４】
例えば、奥行き動きベクトル算出部ＭＶＣＡＬ２は、読み出し時間差ＴＤＦが第１の時間以下の行における被写体ＯＢＪの動きを示す奥行き動きベクトルＭＶ２として、座標Ａ（Ｘ１、Ｄ１）および座標Ｂ（Ｘ２、Ｄ２）を算出する。そして、補正部ＣＯＲＲは、座標Ａ（Ｘ１、Ｄ１）および座標Ｂ（Ｘ２、Ｄ２）に基づいて、座標Ｍ（Ｘｓ、Ｄｓ）を算出する。なお、奥行き動きベクトル算出部ＭＶＣＡＬ２は、奥行き動きベクトルＭＶ２として、座標Ｍ（Ｘｓ、Ｄｓ）を算出してもよい。
【０１０５】
また、補正部ＣＯＲＲは、読み出し時間差ＴＤＦが第１の時間以下の行における画像ＩＭＧ１上の被写体ＯＢＪの補正後の位置として、位置ｘｓを座標Ｍ（Ｘｓ、Ｄｓ）に基づいて算出する。なお、読み出し時間差ＴＤＦが第１の時間以下の行における画像ＩＭＧ２上の被写体ＯＢＪの補正後の位置（位置ｘｓ）も、画像ＩＭＧ１と同様に算出される。
【０１０６】
なお、奥行き動きベクトルＭＶ２は、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで異なるベクトルとなる可能性がある。例えば、被写体ＯＢＪが奥行き方向に移動する場合、撮像素子ＩＳＥＮ１から見える奥行き動きベクトルＭＶ２と撮像素子ＩＳＥＮ２から見える奥行き動きベクトルＭＶ２とは互いに異なる。被写体ＯＢＪが奥行き方向に移動しない場合、撮像素子ＩＳＥＮ１から見える奥行き動きベクトルＭＶ２と撮像素子ＩＳＥＮ２から見える奥行き動きベクトルＭＶ２とは互いに同じである。
【０１０７】
図６は、図２に示した画像処理装置ＩＭＰ２による画像の合成方法の一例を示す。図６の補正画像ＩＭＧＣ（ＩＭＧＣ１、ＩＭＧＣ２）内に示す破線は、補正前の被写体ＯＢＪを示す。また、補正画像ＩＭＧＣ（ＩＭＧＣ１、ＩＭＧＣ２）内に示す矢印は、図１で説明した補正ベクトルＣＶ（ＣＶｒ、ＣＶｌ）に対応する。
【０１０８】
補正部ＣＯＲＲは、読み出し時間差ＴＤＦが第１の時間より大きい行については、図１で説明したように、補正ベクトルＣＶｒ、ＣＶｌに基づいて、画像ＩＭＧ１、ＩＭＧ２のローリング歪みをそれぞれ補正する。また、補正部ＣＯＲＲは、読み出し時間差ＴＤＦが第１の時間以下の行については、図５で説明したように、奥行き動きベクトルＭＶ２に基づいて、画像ＩＭＧ１、ＩＭＧ２のローリング歪みをそれぞれ補正する。これにより、補正画像ＩＭＧＣ１、ＩＭＧＣ２は、生成される。
【０１０９】
そして、合成率算出部ＲＣＡＬは、補正画像ＩＭＧＣ２をレンズＬＥＮ１を視点とした画像ＩＭＧＣ２ａに変換する。視点変換後の補正画像ＩＭＧＣ２ａ内に示す破線は、視点変換前の被写体ＯＢＪを示す。視点変換により、画素の欠落が発生した領域（例えば、図６の補正画像ＩＭＧＣ２ａ内に破線で示した領域）は、合成時に使用されないように処理される。なお、画素の欠落が発生した領域は、前後のフレームＦＲＭの補正画像ＩＭＧＣ２を用いて補間されてもよい。この場合、補間された領域は、合成時に使用されてもよい。
【０１１０】
また、合成率算出部ＲＣＡＬは、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成する際の補正画像ＩＭＧＣ１の比率α（合成率α）を、図２で説明した式（４）に基づいて算出する。
【０１１１】
画像合成部ＳＹＮは、図２で説明した式（５）に基づいて、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２ａとを合成率αに基づいて合成し、合成画像ＩＭＧＳを生成する。図６に示す合成画像ＩＭＧＳは、画像ＩＭＧ１のローリング歪みを補正した画像に対応する。なお、視点変換後の補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成した合成画像ＩＭＧＳは、画像ＩＭＧ２のローリング歪みを補正した画像に対応する。
【０１１２】
図６に示す例では、合成率αを算出する際の基準の時刻は、画像ＩＭＧ１から最初に読み出された行（例えば、行１）の読み出し時刻である。なお、以下では、画像ＩＭＧ１の行Ｌ１の読み出し時刻に対する画像ＩＭＧ１の各行の読み出し時刻の差は、画像ＩＭＧ１の遅延時間とも称される。また、画像ＩＭＧ１の行Ｌ１の読み出し時刻に対する画像ＩＭＧ２の各行の読み出し時刻の差は、画像ＩＭＧ２の遅延時間とも称される。
【０１１３】
画像ＩＭＧ１、ＩＭＧ２の中央の行Ｌｃより上側の各行では、画像ＩＭＧ１の遅延時間は、画像ＩＭＧ２の遅延時間より小さい。また、画像ＩＭＧ１、ＩＭＧ２の中央の行Ｌｃより下側の各行では、画像ＩＭＧ１の遅延時間は、画像ＩＭＧ２の遅延時間より大きい。例えば、画像ＩＭＧ１の遅延時間が小さくなるほど、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２ａとを合成する際の補正画像ＩＭＧＣ１の比率αは、大きくなる。換言すれば、画像ＩＭＧ１の遅延時間が大きくなるほど、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２ａとを合成する際の補正画像ＩＭＧＣ２ａの比率（＝１−α）は、大きくなる。
【０１１４】
したがって、図６に示す合成画像ＩＭＧＳでは、合成画像ＩＭＧＳの中央の行Ｌｃから上側の行（例えば、行Ｌ１）に向かうほど、補正画像ＩＭＧＣ１の比率αは、大きくなる。また、合成画像ＩＭＧＳでは、合成画像ＩＭＧＳの中央の行Ｌｃから下側の行（例えば、行Ｌｅ）に向かうほど、補正画像ＩＭＧＣ１の比率αは、小さくなる。
【０１１５】
ローリング歪みの量は、読み出し開始からの遅延時間に比例する。このため、ローリング歪みの量は、遅延時間が小さいほど小さい。したがって、遅延時間が小さいほど、ローリング歪みを補正する際の補正量（例えば、補正ベクトルＣＶ）は、小さくなる。したがって、この実施形態では、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２ａとを合成する際、補正画像ＩＭＧＣ１、ＩＭＧＣ２ａのうち、遅延時間の小さい方の画像の比率を高くすることにより、各画像ＩＭＧ１、ＩＭＧ２での補正誤差による影響を小さくできる。この結果、ローリング歪みの補正精度を向上することができる。
【０１１６】
図７は、図２に示した画像処理装置ＩＭＰ２の動作の一例を示す。図７に示す動作は、ハードウェアのみで実現されてもよく、ハードウェアをソフトウェアにより制御することにより実現されてもよい。図７では、画像ＩＭＧ１のローリング歪みを補正した画像に対応する合成画像ＩＭＧＳを生成する処理について説明する。画像ＩＭＧ２のローリング歪みを補正した画像に対応する合成画像ＩＭＧＳを生成する処理は、ステップＳ２５０の視点変換が補正画像ＩＭＧＣ１に対して実行されることを除いて、図７に示す動作と同一または同様である。
【０１１７】
ステップＳ１００では、図２、図３等で説明したように、制御部ＣＮＴＬは、駆動部ＤＲＶを制御して、画像ＩＭＧ１、ＩＭＧ２を撮像素子ＩＳＥＮ１、ＩＳＥＮ２からそれぞれ読み出す。撮像素子ＩＳＥＮ１、ＩＳＥＮ２から読み出された画像ＩＭＧ１、ＩＭＧ２は、例えば、フレームメモリＦＭＥＭに記憶される。
【０１１８】
ステップＳ２００では、図２、図４等で説明したように、視差算出部ＰＡＬＣの第１視差算出部ＰＡＬＣ１は、第１視差（見かけの視差）ＤＰＦを行毎に算出する。
【０１１９】
ステップＳ２１０では、図２等で説明したように、視差算出部ＰＡＬＣの第２視差算出部ＰＡＬＣ２は、第２視差（真の視差）ＤＰＳを行毎に算出する。例えば、図３に示したフレームＦＲＭ２の画像ＩＭＧ１、ＩＭＧ２が補正の対象である場合、第２視差算出部ＰＡＬＣ２は、フレームＦＲＭ１の各画像ＩＭＧ１、ＩＭＧ２とフレームＦＲＭ２の各画像ＩＭＧ１、ＩＭＧ２とをフレームメモリＦＭＥＭから受ける。
【０１２０】
そして、第２視差算出部ＰＡＬＣ２は、フレームＦＲＭ１、ＦＲＭ２の各画像ＩＭＧ１上の被写体ＯＢＪの位置と各行の読み出し時刻とに基づいて、各行の読み出し時刻を任意の時刻ｔ１に揃えた場合の被写体ＯＢＪの画像ＩＭＧ１上の位置を算出する。同様に、第２視差算出部ＰＡＬＣ２は、フレームＦＲＭ１、ＦＲＭ２の各画像ＩＭＧ２上の被写体ＯＢＪの位置と各行の読み出し時刻とに基づいて、各行の読み出し時刻を任意の時刻ｔ１に揃えた場合の被写体ＯＢＪの画像ＩＭＧ２上の位置を算出する。
【０１２１】
第２視差算出部ＰＡＬＣ２は、各行の読み出し時刻を任意の時刻ｔ１に揃えた場合の被写体ＯＢＪの画像ＩＭＧ１、ＩＭＧ２上の位置に基づいて、第２視差ＤＰＳを行毎に算出する。なお、各行の読み出し時刻は、時刻ｔ１以外の任意の時刻（例えば、時刻ｔｅ）に揃えられてもよい。
【０１２２】
ステップＳ２２０では、図２等で説明したように、共通動きベクトル算出部ＭＶＣＡＬ１は、読み出し時間差ＴＤＦが第１の時間より大きい行について、共通動きベクトルＭＶ１（第１動きベクトルＭＶ１）をそれぞれ算出する。例えば、共通動きベクトル算出部ＭＶＣＡＬ１は、図１で説明した式（１）を用いて、共通動きベクトルＭＶ１を算出する。
【０１２３】
ステップＳ２３０では、図２、図５等で説明したように、奥行き動きベクトル算出部ＭＶＣＡＬ２は、読み出し時間差ＴＤＦが第１の時間以下の行について、奥行き動きベクトルＭＶ２（第２動きベクトルＭＶ２）を第１視差ＤＰＦに基づいて算出する。
【０１２４】
ステップＳ２４０では、図２、図６等で説明したように、補正部ＣＯＲＲは、画像ＩＭＧ１、ＩＭＧ２のそれぞれのローリング歪みを共通動きベクトルＭＶ１および奥行き動きベクトルＭＶ２に基づいて補正する。例えば、補正部ＣＯＲＲは、読み出し時間差ＴＤＦが第１の時間より大きい行については、図１で説明した式（２）および式（３）により算出される補正ベクトルＣＶｒ、ＣＶｌを用いて、画像ＩＭＧ１、ＩＭＧ２のそれぞれのローリング歪みを補正する。また、読み出し時間差ＴＤＦが第１の時間以下の行については、補正部ＣＯＲＲは、図１で説明した式（７）、式（８）および式（９）を用いて、画像ＩＭＧ１、ＩＭＧ２のそれぞれのローリング歪みを補正する。これにより、補正画像ＩＭＧＣ１、ＩＭＧＣ２が生成される。
【０１２５】
ステップＳ２５０では、図２、図６等で説明したように、合成率算出部ＲＣＡＬは、補正画像ＩＭＧＣ２をレンズＬＥＮ１を視点とした画像ＩＭＧＣ２ａに変換する。
【０１２６】
ステップＳ３００では、図２等で説明したように、合成率算出部ＲＣＡＬは、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成する際の補正画像ＩＭＧＣ１の比率α（合成率α）を、所定の単位ブロック毎に算出する。例えば、合成率算出部ＲＣＡＬは、図２で説明した式（４）を用いて、合成率αを所定の単位ブロック毎に算出する。
【０１２７】
ステップＳ３１０では、図２、図６等で説明したように、画像合成部ＳＹＮは、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２ａ（視点変換後の補正画像ＩＭＧＣ２）とを合成率αに基づいて合成する。例えば、画像合成部ＳＹＮは、図２で説明した式（５）を用いて、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２ａとを合成した合成画像ＩＭＧＳを生成する。
【０１２８】
ステップＳ３２０では、図２等で説明したように、画像合成部ＳＹＮは、合成画像ＩＭＧＳをバスＢＵＳに出力する。これにより、合成画像ＩＭＧＳは、記録部ＲＥＣ、表示部ＤＩＰ、３次元画像処理部等に転送される。
【０１２９】
なお、画像処理装置ＩＭＰ２の動作は、図７に示す例に限定されない。例えば、補正部ＣＯＲＲは、共通動きベクトルＭＶ１と奥行き動きベクトルＭＶ２とを合成した合成動きベクトルを、共通動きベクトルＭＶ１の代わりに用いて補正ベクトルＣＶを算出してもよい。例えば、奥行き動きベクトルＭＶ２が合成される範囲、割合等は、奥行き動きベクトルＭＶ２が算出された行と各行との位置関係（距離）に応じて算出される。あるいは、奥行き動きベクトルＭＶ２が合成される範囲、割合等は、動体を検出する処理の結果に基づいて算出されてもよい。
【０１３０】
また、補正部ＣＯＲＲは、フレームＦＲＭ間の動きベクトルと共通動きベクトルＭＶ１とを合成した合成動きベクトルを、共通動きベクトルＭＶ１の代わりに用いて補正ベクトルＣＶを算出してもよい。合成動きベクトルは、例えば、フレームＦＲＭ間の動きベクトルと共通動きベクトルＭＶ１とを平均して算出される。
【０１３１】
以上、図２から図７に示した実施形態においても、図１に示した実施形態と同様の効果を得ることができる。例えば、この実施形態では、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しを、行の配列方向の走査の向きを互いに逆にして実行する。そして、画像処理装置ＩＭＰ２は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２から得られる画像ＩＭＧ１、ＩＭＧ２に基づいて、第１視差ＤＰＦ（ローリング歪みを含む見かけの視差ＤＰＦ）および第２視差ＤＰＳ（真の視差ＤＰＳ）を算出する。
【０１３２】
画像処理装置ＩＭＰ２は、読み出し時間差ＴＤＦが第１の時間より大きい行については、第１視差ＤＰＦ、第２視差ＤＰＳおよび読み出し時間差ＴＤＦに基づいて共通動きベクトルＭＶ１を算出する。また、画像処理装置ＩＭＰ２は、読み出し時間差ＴＤＦが第１の時間以下の行について、第１視差ＤＰＦに基づいて奥行き動きベクトルＭＶ２を算出する。
【０１３３】
そして、画像処理装置ＩＭＰ２は、共通動きベクトルＭＶ１および奥行き動きベクトルＭＶ２に基づいて画像ＩＭＧ１、ＩＭＧ２のローリング歪みを補正する。フレームＦＲＭの周期ＶＤより短い読み出し時間差ＴＤＦに基づいて共通動きベクトルＭＶ１が算出されるため、共通動きベクトルＭＶ１を算出する際の時間間隔（時間分解能）は、フレーム間の動きベクトルを算出する際の時間間隔に比べて小さい。したがって、この実施形態では、画像ＩＭＧ１、ＩＭＧ２のローリング歪みを補正する際の誤差を、フレーム間の動きベクトルに基づいてローリング歪みを補正する場合に比べて小さくできる。すなわち、この実施形態では、画像の歪みを精度よく補正できる。
【０１３４】
また、画像処理装置ＩＭＰ２は、例えば、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２ａ（視点変換後の補正画像ＩＭＧＣ２）とを合成し、画像ＩＭＧ１のローリング歪みを補正した画像に対応する合成画像ＩＭＧＳを生成する。この実施形態では、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２ａとを合成する際、補正画像ＩＭＧＣ１、ＩＭＧＣ２ａのうち、遅延時間の小さい方の画像の比率を高くすることにより、各画像ＩＭＧ１、ＩＭＧ２での補正誤差による影響を小さくできる。この結果、ローリング歪みの補正精度を向上することができる。
【０１３５】
図８は、画像処理装置および画像処理方法の別の実施形態を示している。この実施形態の画像処理装置ＩＭＰ３は、撮像装置ＣＡＭ３に搭載される。撮像装置ＣＡＭ３は、図２に示した画像処理装置ＩＭＰ２の代わりに画像処理装置ＩＭＰ３を有することを除いて、図２に示した撮像装置ＣＡＭ２と同一または同様である。図１から図７で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図８の破線の矢印は、信号等の情報の流れを示す。
【０１３６】
撮像装置ＣＡＭ３は、レンズＬＥＮ１を介して被写体を撮像する撮像素子ＩＳＥＮ１と、レンズＬＥＮ２を介して被写体ＯＢＪを撮像する撮像素子ＩＳＥＮ２と、撮像素子ＩＳＥＮ１、ＩＳＥＮ２を駆動する駆動部ＤＲＶと、画像処理装置ＩＭＰ３とを有する。撮像素子ＩＳＥＮ１、ＩＳＥＮ２および駆動部ＤＲＶは、画像処理装置ＩＭＰ３内のバスＢＵＳに接続される。
【０１３７】
画像処理装置ＩＭＰ３は、図２に示した制御部ＣＮＴＬの代わりに制御部ＣＮＴＬ２を有することを除いて、図２に示した画像処理装置ＩＭＰ２と同一または同様である。例えば、画像処理装置ＩＭＰ３は、制御部ＣＮＴＬ２、視差算出部ＰＡＬＣ、共通動きベクトル算出部ＭＶＣＡＬ１、奥行き動きベクトル算出部ＭＶＣＡＬ２、補正部ＣＯＲＲ、合成率算出部ＲＣＡＬ、画像合成部ＳＹＮ、記録部ＲＥＣおよび表示部ＤＩＰを有する。さらに、画像処理装置ＩＭＰ３は、メモリＦＭＥＭ、ＭＥＭおよびバスＢＵＳを有する。
【０１３８】
制御部ＣＮＴＬ２は、駆動部ＤＲＶの動作を制御する。例えば、制御部ＣＮＴＬ２は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行の配列方向の走査の向きが互いに逆になるように、駆動部ＤＲＶを制御する。さらに、制御部ＣＮＴＬ２は、読み出し時間差ＴＤＦが第１の時間より大きい複数の行で、読み出し時間差ＴＤＦの絶対値が互いに同じになるように、駆動部ＤＲＶを制御する。撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出し方法は、図９で説明する。
【０１３９】
なお、画像処理装置ＩＭＰ３の動作は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出し方法（図７に示したステップＳ１００）を除いて、図７に示した動作と同一または同様である。また、画像処理装置ＩＭＰ３の構成は、図８に示す例に限定されない。
【０１４０】
図９は、図８に示した撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出し方法の一例を示す。図９に示すタイミング図では、３つのフレームＦＲＭ（ＦＲＭ１、ＦＲＭ２、ＦＲＭ３）の画像ＩＭＧ１、ＩＭＧ２の読み出しタイミングを示す。図９では、説明を分かりやすくするために、読み出し時間差ＴＤＦが第１の時間以下の行を、行Ｌｃ（中央の行）の１行とする。タイミング図の縦軸のＬ１、Ｌｃ、Ｌｅは、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行（複数の画素が行列状に配置された画素アレイの行）を示し、タイミング図の横軸は、時刻を示す。なお、図９では、図を見やすくするために、図３と同様に、各行の境界線の記載を省略している。
【０１４１】
撮像素子ＩＳＥＮ１のタイミング図は、画素アレイの行Ｌ１（上から１番目の行）から行Ｌｃ（中央の行）までは、図３に示した撮像素子ＩＳＥＮ１のタイミング図と同一または同様である。すなわち、画素アレイの行Ｌｃの１つ下の行から行Ｌｅ（下から１番目の行）までの露光および画素信号の読み出しのタイミングは、図３に示した撮像素子ＩＳＥＮ１のタイミング図が示すタイミングと異なる。
【０１４２】
同様に、撮像素子ＩＳＥＮ２のタイミング図は、画素アレイの行Ｌｅから行Ｌｃまでは、図３に示した撮像素子ＩＳＥＮ２のタイミング図と同一または同様である。すなわち、画素アレイの行Ｌｃの１つ上の行から行Ｌ１までの露光および画素信号の読み出しのタイミングは、図３に示した撮像素子ＩＳＥＮ２のタイミング図が示すタイミングと異なる。
【０１４３】
例えば、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、画素アレイの行Ｌ１から行Ｌｃまで行毎に実行する。そして、駆動部ＤＲＶは、行Ｌｃから画素信号を読み出した後に、残りの行に対して、画素アレイの行Ｌｅから上側の行に向けて画素信号の読み出しを行毎に実行する。
【０１４４】
また、駆動部ＤＲＶは、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、画素アレイの行Ｌｅから行Ｌｃまで行毎に実行する。そして、駆動部ＤＲＶは、行Ｌｃから画素信号を読み出した後に、残りの行に対して、画素アレイの行Ｌ１から下側の行に向けて画素信号の読み出しを行毎に実行する。
【０１４５】
このように、駆動部ＤＲＶは、行Ｌｃから画素信号を読み出した後に、走査の向きを変更して、残りの行に対する画素信号の読み出しを行毎に実行する。これにより、行Ｌｃ以外の行では、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２との間の読み出し時間差ＴＤＦは、互いに同じになる。
【０１４６】
すなわち、制御部ＣＮＴＬ２は、共通動きベクトルＭＶ１を算出する際に使用される読み出し時間差ＴＤＦ（図１で説明した式（１）の分母”ｔＲ−ｔＬ”）が行毎に変動することを防止できる。画像処理装置ＩＭＰ３は、行Ｌｃ以外の複数の行で互いに同じ読み出し時間差ＴＤＦを使用して共通動きベクトルＭＶ１を算出できるため、共通動きベクトルＭＶ１の算出精度が複数の行でばらつくことを抑制できる。
【０１４７】
なお、読み出し時間差ＴＤＦが第１の時間以下の行が複数存在する場合、駆動部ＤＲＶは、読み出し時間差ＴＤＦが第１の時間以下の全ての行から画素信号を読み出した後に、走査の向きを変更して、残りの行に対する画素信号の読み出しを行毎に実行する。
【０１４８】
図１０は、図８に示した画像処理装置ＩＭＰ３による画像の合成方法の一例を示す。図１０の補正画像ＩＭＧＣ（ＩＭＧＣ１、ＩＭＧＣ２）内に示す破線は、補正前の被写体ＯＢＪを示す。また、補正画像ＩＭＧＣ（ＩＭＧＣ１、ＩＭＧＣ２）内に示す矢印は、図１で説明した補正ベクトルＣＶ（ＣＶｒ、ＣＶｌ）に対応する。
【０１４９】
補正部ＣＯＲＲは、読み出し時間差ＴＤＦが第１の時間より大きい行については、図１で説明したように、補正ベクトルＣＶｒ、ＣＶｌに基づいて、画像ＩＭＧ１、ＩＭＧ２のローリング歪みをそれぞれ補正する。また、補正部ＣＯＲＲは、読み出し時間差ＴＤＦが第１の時間以下の行については、図５で説明したように、奥行き動きベクトルＭＶ２に基づいて、画像ＩＭＧ１、ＩＭＧ２のローリング歪みをそれぞれ補正する。これにより、補正画像ＩＭＧＣ１、ＩＭＧＣ２は、生成される。
【０１５０】
合成率算出部ＲＣＡＬは、図６で説明したように、補正画像ＩＭＧＣ２をレンズＬＥＮ１を視点とした画像ＩＭＧＣ２ａに変換する。視点変換後の補正画像ＩＭＧＣ２ａ内に示す破線は、視点変換前の被写体ＯＢＪを示す。また、合成率算出部ＲＣＡＬは、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２とを合成する際の補正画像ＩＭＧＣ１の比率α（合成率α）を、図２で説明した式（４）に基づいて算出する。
【０１５１】
画像合成部ＳＹＮは、図６で説明したように、補正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２ａとを合成率αに基づいて合成し、合成画像ＩＭＧＳを生成する。図１０に示す合成画像ＩＭＧＳは、画像ＩＭＧ１のローリング歪みを補正した画像に対応する。
【０１５２】
図１０に示す合成画像ＩＭＧＳおいても、図６に示した合成画像ＩＭＧＳと同様に、合成画像ＩＭＧＳの中央の行Ｌｃから上側の行（例えば、行Ｌ１）に向かうほど、補正画像ＩＭＧＣ１の比率αは、大きくなる。また、合成画像ＩＭＧＳの中央の行Ｌｃから下側の行（例えば、行Ｌｅ）に向かうほど、補正画像ＩＭＧＣ１の比率αは、小さくなる。補正画像ＩＭＧＣ１、ＩＭＧＣ２ａのうち、遅延時間の小さい方の画像の比率を高くして合成画像ＩＭＧＳが生成されるため、各画像ＩＭＧ１、ＩＭＧ２での補正誤差による影響を小さくすることができる。この結果、ローリング歪みの補正精度を向上することができる。
【０１５３】
以上、図８から図１０に示した実施形態においても、図２から図７に示した実施形態と同様の効果を得ることができる。例えば、画像処理装置ＩＭＰ３は、読み出し時間差ＴＤＦ等に基づいて算出される共通動きベクトルＭＶ１と第１視差ＤＰＦに基づいて算出される奥行き動きベクトルＭＶ２とに基づいて画像ＩＭＧ１、ＩＭＧ２のローリング歪みを補正する。これにより、画像処理装置ＩＭＰ３は、読み出し時間差ＴＤＦより大きい時間間隔であるフレーム間での動きベクトルに基づいてローリング歪みを補正する場合に比べて、画像ＩＭＧ１、ＩＭＧ２のローリング歪みを補正する際の誤差を小さくできる。すなわち、画像の歪みを精度よく補正することができる。
【０１５４】
また、画像処理装置ＩＭＰ３は、正画像ＩＭＧＣ１と補正画像ＩＭＧＣ２ａとを合成する際、補正画像ＩＭＧＣ１、ＩＭＧＣ２ａのうち、遅延時間の小さい方の画像の比率を高くする。これにより、各画像ＩＭＧ１、ＩＭＧ２での補正誤差による影響を小さくすることができ、ローリング歪みの補正精度を向上することができる。
【０１５５】
また、この実施形態では、制御部ＣＮＴＬ２は、読み出し時間差ＴＤＦが第１の時間より大きい複数の行で、読み出し時間差ＴＤＦの絶対値が互いに同じになるように、駆動部ＤＲＶを制御する。これにより、この実施形態では、共通動きベクトルＭＶ１を算出する際に使用される読み出し時間差ＴＤＦが行毎に変動することを防止でき、共通動きベクトルＭＶ１の算出精度が複数の行でばらつくことを抑制できる。
【０１５６】
図１１は、画像処理装置および画像処理方法の別の実施形態を示している。この実施形態の画像処理装置ＩＭＰ４は、撮像装置ＣＡＭ４に搭載される。撮像装置ＣＡＭ４は、図２に示した画像処理装置ＩＭＰ２の代わりに画像処理装置ＩＭＰ４を有することを除いて、図２に示した撮像装置ＣＡＭ２と同一または同様である。図１から図１０で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図１１の破線の矢印は、信号等の情報の流れを示す。
【０１５７】
撮像装置ＣＡＭ４は、レンズＬＥＮ１を介して被写体を撮像する撮像素子ＩＳＥＮ１と、レンズＬＥＮ２を介して被写体ＯＢＪを撮像する撮像素子ＩＳＥＮ２と、撮像素子ＩＳＥＮ１、ＩＳＥＮ２を駆動する駆動部ＤＲＶと、画像処理装置ＩＭＰ４とを有する。撮像素子ＩＳＥＮ１、ＩＳＥＮ２および駆動部ＤＲＶは、画像処理装置ＩＭＰ４内のバスＢＵＳに接続される。
【０１５８】
画像処理装置ＩＭＰ４は、図２に示した制御部ＣＮＴＬの代わりに制御部ＣＮＴＬ３を有することを除いて、図２に示した画像処理装置ＩＭＰ２と同一または同様である。例えば、画像処理装置ＩＭＰ４は、制御部ＣＮＴＬ３、視差算出部ＰＡＬＣ、共通動きベクトル算出部ＭＶＣＡＬ１、奥行き動きベクトル算出部ＭＶＣＡＬ２、補正部ＣＯＲＲ、合成率算出部ＲＣＡＬ、画像合成部ＳＹＮ、記録部ＲＥＣおよび表示部ＤＩＰを有する。さらに、画像処理装置ＩＭＰ４は、メモリＦＭＥＭ、ＭＥＭおよびバスＢＵＳを有する。
【０１５９】
制御部ＣＮＴＬ３は、駆動部ＤＲＶの動作を制御する。例えば、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行の配列方向の走査の向きが互いに逆になるように、駆動部ＤＲＶを制御する。さらに、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１における画素信号の読み出しを開始する行および撮像素子ＩＳＥＮ２における画素信号の読み出しを開始する行を、行の配列方向における被写体ＯＢＪの位置に基づいてそれぞれ設定する。以下、画素信号の読み出しを開始する行は、読み出し開始行とも称される。
【０１６０】
例えば、制御部ＣＮＴＬ３は、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置（行の配列方向の位置）と、読み出し時間差ＴＤＦが第１の時間以下の行とが一致するように、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の読み出し開始行をそれぞれ設定する。画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置は、撮像装置ＣＡＭ４の機能に含まれるオートフォーカス制御、自動露出制御、動体追尾、顔検出等の処理により、検出される。したがって、画像処理装置ＩＭＰ４は、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置を示す情報を、撮像装置ＣＡＭ４内の所定のブロック（例えば、オートフォーカス制御を実行するブロック）から取得する。
【０１６１】
そして、制御部ＣＮＴＬ３は、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置（行の配列方向の位置）に対応する行を、読み出し時間差ＴＤＦが第１の時間以下の行に設定する。また、制御部ＣＮＴＬ３は、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置（行の配列方向の位置）に対応する行と、撮像素子ＩＳＥＮ１の読み出し開始行とに基づいて、撮像素子ＩＳＥＮ２の読み出し開始行を設定する。例えば、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１の読み出し開始行と撮像素子ＩＳＥＮ２の読み出し開始行との中間が画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置に対応する行になるように、撮像素子ＩＳＥＮ２の読み出し開始行を設定する。
【０１６２】
駆動部ＤＲＶは、制御部ＣＮＴＬ３により設定された撮像素子ＩＳＥＮ１、ＩＳＥＮ２のそれぞれの読み出し開始行から画素信号を最初に読み出す。なお、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出し方法は、図１２および図１３で説明する。ここで、画像処理装置ＩＭＰ４の動作は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出し方法（図７に示したステップＳ１００）を除いて、図７に示した動作と同一または同様である。また、画像処理装置ＩＭＰ４の構成は、図１１に示す例に限定されない。
【０１６３】
図１２は、図１１に示した撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出し方法の一例を示す。図１２に示すタイミング図では、３つのフレームＦＲＭ（ＦＲＭ１、ＦＲＭ２、ＦＲＭ３）の画像ＩＭＧ１、ＩＭＧ２の読み出しタイミングを示す。図１２では、説明を分かりやすくするために、読み出し時間差ＴＤＦが第１の時間以下の行を、行Ｌｉおよび行Ｌｋの２行とする。タイミング図の縦軸のＬ１、Ｌｉ、Ｌｊ、Ｌｋ、Ｌｅは、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行（複数の画素が行列状に配置された画素アレイの行）を示し、タイミング図の横軸は、時刻を示す。なお、図１２では、図を見やすくするために、図３と同様に、各行の境界線の記載を省略している。
【０１６４】
行Ｌ１は、画素アレイの上から１番目の行であり、撮像素子ＩＳＥＮ１の読み出し開始行である。行Ｌｉは、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置（行の配列方向の位置）に対応する行である。なお、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置に対応する行は、読み出し時間差ＴＤＦが第１の時間以下の行に設定される。すなわち、図１２に示す例では、読み出し時間差ＴＤＦが第１の時間以下の行Ｌｉは、被写体ＯＢＪの位置に合わせて、画像ＩＭＧ１、ＩＭＧ２の中央の行より上側に移動する。行Ｌｊは、撮像素子ＩＳＥＮ１の読み出し開始行Ｌ１と、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置に対応する行Ｌｉとに基づいて算出された撮像素子ＩＳＥＮ２の読み出し開始行である。
【０１６５】
駆動部ＤＲＶは、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、画素アレイの行Ｌ１から行Ｌｉまで行毎に実行し、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、画素アレイの行Ｌｊから行Ｌｉまで行毎に実行する。そして、駆動部ＤＲＶは、行Ｌｉから画素信号を読み出した後、撮像素子ＩＳＥＮ１、ＩＳＥＮ２のいずれかで画素信号が読み出された行をスキップして、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しを継続する。
【０１６６】
例えば、駆動部ＤＲＶは、行Ｌｉから画素信号を読み出した後、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、行Ｌｊの１つ下の行から行Ｌｋまで行毎に実行する。また、駆動部ＤＲＶは、行Ｌｉから画素信号を読み出した後、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、行Ｌｅから行Ｌｋまで行毎に実行する。なお、行Ｌｋからの画素信号の読み出しは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同じタイミングで実行される。すなわち、行Ｌｋは、読み出し時間差ＴＤＦが第１の時間以下の行である。
【０１６７】
例えば、行Ｌｋからの画素信号の読み出しが終了した時点で、撮像素子ＩＳＥＮ１、ＩＳＥＮ２から読み出された画素信号は、合わせて１画面分になる。このように、駆動部ＤＲＶは、１画面分の画像信号を撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで分担して読み出す。例えば、１画面分の画像信号を撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで分担して読み出すのにかかる時間は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の一方が１画面分の画素信号を読み出すのにかかる時間（図２で説明した式（４）の時間ＴＦＵＬ）の約半分である。
【０１６８】
また、駆動部ＤＲＶは、行Ｌｋから画素信号を読み出した後、残りの行の読み出し時間差ＴＤＦの絶対値が互いに同じになるように、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しを継続する。
【０１６９】
例えば、駆動部ＤＲＶは、行Ｌｋから画素信号を読み出した後、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、行Ｌｊの１つ上の行から行Ｌｉの１つ下の行まで行毎に実行する。その後、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、行Ｌｅから行Ｌｋの１つ下の行まで行毎に実行する。
【０１７０】
また、駆動部ＤＲＶは、行Ｌｋから画素信号を読み出した後、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、行Ｌ１から行Ｌｉの１つ上の行まで行毎に実行する。その後、駆動部ＤＲＶは、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、行Ｌｊの１つ下の行から行Ｌｋの１つ上の行まで行毎に実行する。
【０１７１】
これにより、１画面分の画像信号は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２のそれぞれから読み出される。また、行Ｌｉ、Ｌｋ以外の行では、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２との間の読み出し時間差ＴＤＦは、互いに同じになる。したがって、画像処理装置ＩＭＰ４においても、図９で説明したように、共通動きベクトルＭＶ１の算出精度が複数の行でばらつくことを抑制できる。
【０１７２】
このように、制御部ＣＮＴＬ３は、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置に対応する行Ｌｉを、読み出し時間差ＴＤＦが第１の時間以下の行に設定する。これにより、ローリング歪みが奥行き動きベクトルＭＶ２に基づいて補正される領域（奥行き方向の移動が考慮される領域）を被写体ＯＢＪの位置に合わせることができる。この結果、この実施形態では、被写体ＯＢＪが奥行き方向に移動した場合でも、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪのローリング歪みを精度よく補正できる。
【０１７３】
また、制御部ＣＮＴＬ３は、行Ｌｉから画素信号が読み出された後、撮像素子ＩＳＥＮ１、ＩＳＥＮ２のいずれかで画素信号が読み出された行をスキップして撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しを継続するように駆動部ＤＲＶを制御する。これにより、制御部ＣＮＴＬ３は、１画面分の画像信号を撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで分担して読み出すのにかかる時間を、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の一方が１画面分の画素信号を読み出すのにかかる時間の約半分にできる。この結果、例えば、補正画像ＩＭＧＣ１、ＩＭＧＣ２ａのうち、遅延時間の小さい方の画像の比率を高くして合成画像ＩＭＧＳが生成される場合、比率の高い画像の遅延時間を小さくすることができる。
【０１７４】
図１３は、図１１に示した制御部ＣＮＴＬ３による読み出し制御の一例を示す。図１３に示す動作は、ハードウェアのみで実現されてもよく、ハードウェアをソフトウェアにより制御することにより実現されてもよい。図１３では、説明を分かりやすくするために、第１の時間は、互いに隣接する行の読み出し時刻の差（図１に示したタイミング図のΔｔ）より小さいとする。すなわち、図１３では、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置（行の配列方向の位置）に対応する行を１行とし、読み出し時間差ＴＤＦが第１の時間以下の行は連続しないものとして説明する。
【０１７５】
ステップＳ１０２では、図１１で説明したように、制御部ＣＮＴＬ３は、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置を特定する。例えば、制御部ＣＮＴＬ３は、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置を示す情報（オートフォーカス制御等の実行により得られる情報）を、撮像装置ＣＡＭ４内の所定のブロック（オートフォーカス制御等を実行するブロック）から取得する。そして、制御部ＣＮＴＬ３は、撮像装置ＣＡＭ４から取得した情報に基づいて、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置を特定する。
【０１７６】
ステップＳ１０４では、図１１で説明したように、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１の読み出し開始行および撮像素子ＩＳＥＮ２の読み出し開始行を、被写体ＯＢＪの位置（行の配列方向の位置）に基づいてそれぞれ設定する。
【０１７７】
ステップＳ１１０では、制御部ＣＮＴＬ３は、駆動部ＤＲＶを制御して、撮像素子ＩＳＥＮ１、ＩＳＥＮからの画像ＩＭＧ１、ＩＭＧ２の読み出しを開始する。例えば、駆動部ＤＲＶは、ステップＳ１０４で設定された撮像素子ＩＳＥＮ１、ＩＳＥＮ２のそれぞれの読み出し開始行から画素信号をそれぞれ読み出す。なお、撮像素子ＩＳＥＮ１の走査の向きは、撮像素子ＩＳＥＮ１の読み出し開始行から撮像素子ＩＳＥＮ２の読み出し開始行に向かう方向である。また、撮像素子ＩＳＥＮ２の走査の向きは、撮像素子ＩＳＥＮ２の読み出し開始行から撮像素子ＩＳＥＮ１の読み出し開始行に向かう方向である。
【０１７８】
ステップＳ１１２では、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同一の行を同時に読み出したか判定する。例えば、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２を駆動する共通のクロックにおいて、同一のクロックサイクルで同一の行の画素信号が撮像素子ＩＳＥＮ１、ＩＳＥＮ２から読み出された場合、同一の行を同時に読み出したと判定する。ここで、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同時に読み出される行は、ステップＳ１０２で特定した被写体ＯＢＪの位置に対応する行である。
【０１７９】
撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同一の行を同時に読み出した場合、制御部ＣＮＴＬ３の処理は、ステップＳ１２０に移る。一方、同一の行が撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同時に読み出されていない場合、制御部ＣＮＴＬ３の処理は、ステップＳ１１２に戻る。すなわち、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同一の行を同時に読み出すまで、ステップＳ１２０の実行を待機する。
【０１８０】
ステップＳ１２０では、図１２で説明したように、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２のいずれかで画素信号が読み出された行をスキップして、画素信号の読み出しを継続するように、駆動部ＤＲＶを制御する。例えば、駆動部ＤＲＶは、撮像素子ＩＳＥＮ２で画素信号が読み出された行をスキップして、撮像素子ＩＳＥＮ１からの画素信号の読み出しを行毎に実行する。また、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２のいずれからも画素信号が読み出されていない行に対して、撮像素子ＩＳＥＮ２からの画素信号の読み出しを行毎に実行する。なお、撮像素子ＩＳＥＮ１の走査の向きと、撮像素子ＩＳＥＮ２の走査の向きとは、互いに逆である。
【０１８１】
ステップＳ１２２では、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２から画素信号が読み出された行を合わせて、１画面分になるか判定する。撮像素子ＩＳＥＮ１、ＩＳＥＮ２から画素信号が読み出された行を合わせて１画面分になる場合、制御部ＣＮＴＬ３の処理は、ステップＳ１３０に移る。一方、撮像素子ＩＳＥＮ１、ＩＳＥＮ２から画素信号が読み出された行を合わせても１画面分に満たない場合、制御部ＣＮＴＬ３の処理は、ステップＳ１２２に戻る。すなわち、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１から画素信号が読み出された行と撮像素子ＩＳＥＮ２から画素信号が読み出された行とを合わせた範囲が１画面分以上になるまで、ステップＳ１３０の実行を待機する。
【０１８２】
ステップＳ１３０では、図１２で説明したように、制御部ＣＮＴＬ３は、駆動部ＤＲＶを制御して、残りの行の読み出し時間差ＴＤＦの絶対値が互いに同じになるように、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しを継続する。
【０１８３】
ステップＳ１３２では、制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の各々で、全ての行に対する画素信号の読み出しが完了したか判定する。すなわち、制御部ＣＮＴＬ３は、１画面分の画素信号が撮像素子ＩＳＥＮ１、ＩＳＥＮ２の各々で読み出されたか判定する。全ての行に対する画素信号の読み出しが完了していない場合、制御部ＣＮＴＬ３の処理は、ステップＳ１３２に戻る。一方、全ての行に対する画素信号の読み出しが完了した場合、制御部ＣＮＴＬ３の処理（制御部ＣＮＴＬ３による読み出し制御）は、終了する。例えば、図１３に示す動作が終了した後、画像処理装置ＩＭＰ４は、図７に示したステップＳ２００を実行する。
【０１８４】
なお、画素信号の読み出し方法は、図１３に示す例に限定されない。例えば、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置（行の配列方向の位置）に対応する行（読み出し時間差ＴＤＦが第１の時間以下の行）が複数存在する場合、制御部ＣＮＴＬ３は、ステップＳ１１２において、以下に示す判定を実行する。制御部ＣＮＴＬ３は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の両方で画素信号が読み出された行が存在し、読み出し時間差ＴＤＦが所定の閾値以上か判定する。所定の閾値は、互いに隣接する行の読み出し時刻の差（図１に示したタイミング図のΔｔ）と、第１の時間とに基づいて設定される。例えば、所定の閾値は、第１の時間からΔｔ（互いに隣接する行の読み出し時刻の差）を減算した値である。
【０１８５】
以上、図１１から図１３に示した実施形態においても、図８から図１０に示した実施形態と同様の効果を得ることができる。例えば、ローリング歪みの補正精度を向上することができる。また、共通動きベクトルＭＶ１を算出する際に使用される読み出し時間差ＴＤＦが行毎に変動することを防止でき、共通動きベクトルＭＶ１の算出精度が複数の行でばらつくことを抑制できる。
【０１８６】
さらに、この実施形態では、制御部ＣＮＴＬ３は、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪの位置（行の配列方向の位置）に対応する行を、読み出し時間差ＴＤＦが第１の時間以下の行に設定する。これにより、ローリング歪みが奥行き動きベクトルＭＶ２に基づいて補正される領域（奥行き方向の移動が考慮される領域）を被写体ＯＢＪの位置に合わせることができる。この結果、この実施形態では、被写体ＯＢＪが奥行き方向に移動した場合でも、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪのローリング歪みを精度よく補正できる。
【０１８７】
図１４は、画像処理装置および画像処理方法の別の実施形態を示している。この実施形態の画像処理装置ＩＭＰ５は、撮像装置ＣＡＭ５に搭載される。撮像装置ＣＡＭ５は、図２に示した画像処理装置ＩＭＰ２の代わりに画像処理装置ＩＭＰ５を有することを除いて、図２に示した撮像装置ＣＡＭ２と同一または同様である。図１から図１３で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図１４の破線の矢印は、信号等の情報の流れを示す。
【０１８８】
撮像装置ＣＡＭ５は、レンズＬＥＮ１を介して被写体を撮像する撮像素子ＩＳＥＮ１と、レンズＬＥＮ２を介して被写体ＯＢＪを撮像する撮像素子ＩＳＥＮ２と、撮像素子ＩＳＥＮ１、ＩＳＥＮ２を駆動する駆動部ＤＲＶと、画像処理装置ＩＭＰ５とを有する。撮像素子ＩＳＥＮ１、ＩＳＥＮ２および駆動部ＤＲＶは、画像処理装置ＩＭＰ５内のバスＢＵＳに接続される。
【０１８９】
画像処理装置ＩＭＰ５は、図２に示した制御部ＣＮＴＬの代わりに制御部ＣＮＴＬ４を有することを除いて、図２に示した画像処理装置ＩＭＰ２と同一または同様である。例えば、画像処理装置ＩＭＰ５は、制御部ＣＮＴＬ４、視差算出部ＰＡＬＣ、共通動きベクトル算出部ＭＶＣＡＬ１、奥行き動きベクトル算出部ＭＶＣＡＬ２、補正部ＣＯＲＲ、合成率算出部ＲＣＡＬ、画像合成部ＳＹＮ、記録部ＲＥＣおよび表示部ＤＩＰを有する。さらに、画像処理装置ＩＭＰ５は、メモリＦＭＥＭ、ＭＥＭおよびバスＢＵＳを有する。
【０１９０】
制御部ＣＮＴＬ４は、駆動部ＤＲＶの動作を制御する。例えば、制御部ＣＮＴＬ４は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行の配列方向の走査の向きが互いに逆になるように、駆動部ＤＲＶを制御する。さらに、制御部ＣＮＴＬ４は、読み出し時間差ＴＤＦが第１の時間以下の行が所定の間隔（以下、第１間隔とも称する）で複数発生するように、駆動部ＤＲＶを制御する。
【０１９１】
例えば、制御部ＣＮＴＬ４は、読み出し時間差ＴＤＦが第１の時間以下の行が第１間隔で複数発生するように、撮像素子ＩＳＥＮ１の読み出し開始行およびスキップ先と撮像素子ＩＳＥＮ２の読み出し開始行およびスキップ先とを設定する。スキップ先は、例えば、撮像素子ＩＳＥＮ１、ＩＳＥＮ２のいずれかで画素信号が読み出された行をスキップする際に使用される。スキップの回数は、第１間隔に基づいて算出される。あるいは、読み出し時間差ＴＤＦが第１の時間以下の行の数（読み出し時間差ＴＤＦが第１の時間以下の行が連続する場合は、連続する行のグループを１つとカウント）に基づいて算出される。
【０１９２】
読み出し時間差ＴＤＦが第１の時間以下の行の数または第１間隔は、画像処理装置ＩＭＰ５に予め通知される。あるいは、読み出し時間差ＴＤＦが第１の時間以下の行の数または第１間隔は、画像処理装置ＩＭＰ５に予め設定される。
【０１９３】
撮像素子ＩＳＥＮ１のスキップ先は、撮像素子ＩＳＥＮ１の読み出し開始行と第１間隔とに基づいて算出される。また、撮像素子ＩＳＥＮ２の読み出し開始行およびスキップ先は、撮像素子ＩＳＥＮ１のスキップ先と第１間隔とに基づいて算出される。例えば、撮像素子ＩＳＥＮ１の１番目のスキップ先は、撮像素子ＩＳＥＮ１の読み出し開始行に第１間隔を加算して算出される。また、２番目のスキップ先は、１番目のスキップ先に第１間隔を加算して算出される。この場合、撮像素子ＩＳＥＮ１のスキップ先の間隔は、第１間隔と同じである。なお、スキップ先は、第１間隔の大きさによっては、撮像素子ＩＳＥＮ１の読み出し開始行に、第１間隔を整数倍した値を加算した行から前後する場合もある。
【０１９４】
駆動部ＤＲＶは、制御部ＣＮＴＬ４により設定された撮像素子ＩＳＥＮ１の読み出し開始行およびスキップ先と撮像素子ＩＳＥＮ２の読み出し開始行およびスキップ先とに基づいて、画素信号を行毎に読み出す。なお、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出し方法は、図１５および図１６で説明する。ここで、画像処理装置ＩＭＰ５の動作は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出し方法（図７に示したステップＳ１００）を除いて、図７に示した動作と同一または同様である。また、画像処理装置ＩＭＰ５の構成は、図１４に示す例に限定されない。
【０１９５】
図１５は、図１４に示した撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出し方法の一例を示す。図１５に示すタイミング図では、３つのフレームＦＲＭ（ＦＲＭ１、ＦＲＭ２、ＦＲＭ３）の画像ＩＭＧ１、ＩＭＧ２の読み出しタイミングを実線の矢印で示す。図１５では、説明を分かりやすくするために、読み出し時間差ＴＤＦが第１の時間以下の行を、行Ｌｍ、Ｌｏ、Ｌｑの３行とする。タイミング図の縦軸のＬ１、Ｌｍ、Ｌｎ、Ｌｏ、Ｌｐ、Ｌｑ、Ｌｅは、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行（複数の画素が行列状に配置された画素アレイの行）を示し、タイミング図の横軸は、時刻を示す。なお、図１５では、図を見やすくするために、図３と同様に、各行の境界線の記載を省略している。
【０１９６】
行Ｌ１は、画素アレイの上から１番目の行であり、撮像素子ＩＳＥＮ１の読み出し開始行である。行Ｌｍ、Ｌｏ、Ｌｑは、読み出し時間差ＴＤＦが第１の時間以下の行である。行Ｌｍと行Ｌｏとの間隔、および、行Ｌｏと行Ｌｑとの間隔は、第１間隔である。行Ｌｎは、撮像素子ＩＳＥＮ２の読み出し開始行である。なお、行Ｌｎの１つ下の行は、撮像素子ＩＳＥＮ１の１番目のスキップ先である。そして、行Ｌｐは、撮像素子ＩＳＥＮ１の２番目のスキップ先である。なお、行Ｌｐの１つ上の行は、撮像素子ＩＳＥＮ２の１番目のスキップ先である。そして、行Ｌｅは、画素アレイの下から１番目の行であり、撮像素子ＩＳＥＮ２の２番目のスキップ先である。
【０１９７】
駆動部ＤＲＶは、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、画素アレイの行Ｌ１から行Ｌｍまで行毎に実行し、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、画素アレイの行Ｌｎから行Ｌｍまで行毎に実行する。そして、駆動部ＤＲＶは、行Ｌｍから画素信号を読み出した後、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の１番目のスキップ先にスキップして、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しを継続する。
【０１９８】
例えば、駆動部ＤＲＶは、行Ｌｍから画素信号を読み出した後、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、行Ｌｎの１つ下の行から行Ｌｏまで行毎に実行する。また、駆動部ＤＲＶは、行Ｌｍから画素信号を読み出した後、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、行Ｌｐの１つ上の行から行Ｌｏまで行毎に実行する。そして、駆動部ＤＲＶは、行Ｌｏから画素信号を読み出した後、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の２番目のスキップ先にスキップして、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しを継続する。
【０１９９】
例えば、駆動部ＤＲＶは、行Ｌｏから画素信号を読み出した後、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、行Ｌｐから行Ｌｑまで行毎に実行する。また、駆動部ＤＲＶは、行Ｌｏから画素信号を読み出した後、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、行Ｌｅから行Ｌｑまで行毎に実行する。これにより、例えば、行Ｌｑからの画素信号の読み出しが終了した時点（例えば、時刻ｔｃ）で、撮像素子ＩＳＥＮ１、ＩＳＥＮ２から読み出された画素信号は、合わせて１画面分になる。このように、駆動部ＤＲＶは、１画面分の画像信号を撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで分担して読み出す。例えば、１画面分の画像信号を撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで分担して読み出すのにかかる時間は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の一方が１画面分の画素信号を読み出すのにかかる時間（図２で説明した式（４）の時間ＴＦＵＬ）の約半分である。
【０２００】
また、駆動部ＤＲＶは、行Ｌｑから画素信号を読み出した後、残りの行の読み出し時間差ＴＤＦの絶対値が互いに同じになるように、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しを継続する。
【０２０１】
例えば、駆動部ＤＲＶは、行Ｌｑから画素信号を読み出した後、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、行Ｌｎの１つ上の行から行Ｌｍの１つ下の行まで行毎に実行する。その後、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、行Ｌｐの１つ上の行から行Ｌｏの１つ下の行まで行毎に実行する。そして、駆動部ＤＲＶは、行Ｌｏの１つ下の行から画素信号を読み出した後、撮像素子ＩＳＥＮ１からの画素信号の読み出しを、行Ｌｅから行Ｌｑの１つ下の行まで行毎に実行する。
【０２０２】
また、駆動部ＤＲＶは、行Ｌｑから画素信号を読み出した後、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、行Ｌ１から行Ｌｍの１つ上の行まで行毎に実行する。その後、駆動部ＤＲＶは、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、行Ｌｎの１つ下の行から行Ｌｏの１つ上の行まで行毎に実行する。そして、駆動部ＤＲＶは、行Ｌｏの１つ上の行から画素信号を読み出した後、撮像素子ＩＳＥＮ２からの画素信号の読み出しを、行Ｌｐから行Ｌｑの１つ上の行まで行毎に実行する。
【０２０３】
これにより、１画面分の画像信号は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２のそれぞれから読み出される。また、行Ｌｍ、Ｌｏ、Ｌｑ以外の行では、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２との間の読み出し時間差ＴＤＦは、互いに同じになる。したがって、画像処理装置ＩＭＰ５においても、図９で説明したように、共通動きベクトルＭＶ１の算出精度が複数の行でばらつくことを抑制できる。
【０２０４】
このように、制御部ＣＮＴＬ４は、読み出し時間差ＴＤＦが第１の時間以下の行が第１間隔で複数発生するように、撮像素子ＩＳＥＮ１の読み出し開始行およびスキップ先と撮像素子ＩＳＥＮ２の読み出し開始行およびスキップ先とを設定する。これにより、例えば、被写体ＯＢＪが画像ＩＭＧ１、ＩＭＧ２上に不規則に複数存在する場合、画像ＩＭＧ１、ＩＭＧ２上の複数の被写体ＯＢＪのローリング歪みを奥行き動きベクトルＭＶ２に基づいて補正できる確率を向上できる。この結果、この実施形態では、複数の被写体ＯＢＪが奥行き方向に移動した場合でも、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪのローリング歪みを精度よく補正できる。
【０２０５】
また、制御部ＣＮＴＬ４は、１画面分の画像信号を撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで分担して読み出すように、駆動部ＤＲＶを制御する。これにより、制御部ＣＮＴＬ４は、１画面分の画像信号を撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで分担して読み出すのにかかる時間を、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の一方が１画面分の画素信号を読み出すのにかかる時間の約半分にできる。この結果、例えば、補正画像ＩＭＧＣ１、ＩＭＧＣ２ａのうち、遅延時間の小さい方の画像の比率を高くして合成画像ＩＭＧＳが生成される場合、比率の高い画像の遅延時間を小さくすることができる。
【０２０６】
図１６は、図１４に示した制御部ＣＮＴＬ４による読み出し制御の一例を示す。図１６に示す動作は、ハードウェアのみで実現されてもよく、ハードウェアをソフトウェアにより制御することにより実現されてもよい。図１６では、説明を分かりやすくするために、第１の時間は、互いに隣接する行の読み出し時刻の差（図１に示したタイミング図のΔｔ）より小さいとする。すなわち、図１６では、読み出し時間差ＴＤＦが第１の時間以下の行は連続しないものとして説明する。また、図１３で説明した動作と同一または同様な動作については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。
【０２０７】
ステップＳ１０６では、図１４で説明したように、制御部ＣＮＴＬ４は、撮像素子ＩＳＥＮ１の読み出し開始行およびスキップ先と撮像素子ＩＳＥＮ２の読み出し開始行およびスキップ先とを設定する。なお、撮像素子ＩＳＥＮ１の読み出し開始行およびスキップ先と撮像素子ＩＳＥＮ２の読み出し開始行およびスキップ先は、図１４で説明したように、読み出し時間差ＴＤＦが第１の時間以下の行の数または第１間隔に基づいて算出される。
【０２０８】
ステップＳ１１０では、制御部ＣＮＴＬ４は、駆動部ＤＲＶを制御して、撮像素子ＩＳＥＮ１、ＩＳＥＮからの画像ＩＭＧ１、ＩＭＧ２の読み出しを開始する。
【０２０９】
ステップＳ１１２では、制御部ＣＮＴＬ４は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同一の行を同時に読み出したか判定する。撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同時に読み出される行は、読み出し時間差ＴＤＦが第１の時間以下の行（図１５に示した例では、行Ｌｍ、Ｌｏ、Ｌｑ）である。
【０２１０】
撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同一の行を同時に読み出した場合、制御部ＣＮＴＬ４の処理は、ステップＳ１２２に移る。一方、同一の行が撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同時に読み出されていない場合、制御部ＣＮＴＬ４の処理は、ステップＳ１１２に戻る。すなわち、制御部ＣＮＴＬ４は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で同一の行を同時に読み出すまで、ステップＳ１２２の実行を待機する。
【０２１１】
ステップＳ１２２では、制御部ＣＮＴＬ４は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２から画素信号が読み出された行を合わせて、１画面分になるか判定する。撮像素子ＩＳＥＮ１、ＩＳＥＮ２から画素信号が読み出された行を合わせて１画面分になる場合、制御部ＣＮＴＬ４の処理は、ステップＳ１３０に移る。一方、撮像素子ＩＳＥＮ１、ＩＳＥＮ２から画素信号が読み出された行を合わせても１画面分に満たない場合、制御部ＣＮＴＬ４の処理は、ステップＳ１２４に移る。ステップＳ１２４の処理が終了した後、制御部ＣＮＴＬ４の処理は、ステップＳ１１２に戻る。すなわち、制御部ＣＮＴＬ４は、撮像素子ＩＳＥＮ１から画素信号が読み出された行と撮像素子ＩＳＥＮ２から画素信号が読み出された行とを合わせた範囲が１画面分以上になるまで、ステップＳ１３０の実行を待機する。
【０２１２】
ステップＳ１２４では、図１５で説明したように、制御部ＣＮＴＬ４は、スキップ先が示す行にスキップして画素信号の読み出しを継続するように、駆動部ＤＲＶを制御する。例えば、１回目のスキップでは、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１の１番目のスキップ先にスキップして、撮像素子ＩＳＥＮ１からの画素信号の読み出しを行毎に実行する。同様に、駆動部ＤＲＶは、撮像素子ＩＳＥＮ２の１番目のスキップ先にスキップして、撮像素子ＩＳＥＮ２からの画素信号の読み出しを行毎に実行する。なお、撮像素子ＩＳＥＮ１の走査の向きと、撮像素子ＩＳＥＮ２の走査の向きとは、互いに逆である。ステップＳ１２４の後、制御部ＣＮＴＬ４の処理は、ステップＳ１１２に戻る。
【０２１３】
ステップＳ１３０では、図１５で説明したように、制御部ＣＮＴＬ４は、駆動部ＤＲＶを制御して、残りの行の読み出し時間差ＴＤＦの絶対値が互いに同じになるように、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しを継続する。
【０２１４】
ステップＳ１３２では、制御部ＣＮＴＬ４は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の各々で、全ての行に対する画素信号の読み出しが完了したか判定する。全ての行に対する画素信号の読み出しが完了していない場合、制御部ＣＮＴＬ４の処理は、ステップＳ１３２に戻る。一方、全ての行に対する画素信号の読み出しが完了した場合、制御部ＣＮＴＬ４の処理（制御部ＣＮＴＬ４による読み出し制御）は、終了する。例えば、図１６に示す動作が終了した後、画像処理装置ＩＭＰ５は、図７に示したステップＳ２００を実行する。
【０２１５】
なお、画素信号の読み出し方法は、図１６に示す例に限定されない。例えば、読み出し時間差ＴＤＦが第１の時間以下の行が連続する場合、制御部ＣＮＴＬ４は、ステップＳ１１２において、以下に示す判定を実行する。制御部ＣＮＴＬ４は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の両方で画素信号が読み出された行が連続して存在し、読み出し時間差ＴＤＦが所定の閾値以上か判定する。所定の閾値は、互いに隣接する行の読み出し時刻の差（図１に示したタイミング図のΔｔ）と、第１の時間とに基づいて設定される。例えば、所定の閾値は、第１の時間からΔｔ（互いに隣接する行の読み出し時刻の差）を減算した値である。
【０２１６】
以上、図１４から図１６に示した実施形態においても、図８から図１０に示した実施形態と同様の効果を得ることができる。例えば、ローリング歪みの補正精度を向上することができる。また、共通動きベクトルＭＶ１を算出する際に使用される読み出し時間差ＴＤＦが行毎に変動することを防止でき、共通動きベクトルＭＶ１の算出精度が複数の行でばらつくことを抑制できる。
【０２１７】
さらに、この実施形態では、制御部ＣＮＴＬ４は、読み出し時間差ＴＤＦが第１の時間以下の行が第１間隔で複数発生するように、駆動部ＤＲＶを制御する。これにより、この実施形態では、複数の被写体ＯＢＪが奥行き方向に移動した場合でも、画像ＩＭＧ１、ＩＭＧ２上の被写体ＯＢＪのローリング歪みを精度よく補正できる。
【０２１８】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
画像処理装置において、
行列状に配置された複数の画素を有する第１の撮像素子から第１の走査方向に読み出された画素信号に基づく第１画像と、行列状に配置された複数の画素を有する第２の撮像素子から前記第１の走査方向と反対の第２の走査方向に読み出された画素信号に基づく第２画像とを取得し、前記第１画像に含まれる被写体の位置と前記第２画像に含まれる前記被写体の位置との差を示す第１視差を行毎に算出する第１視差算出部と、
前記第１の撮像素子と前記第２の撮像素子と前記被写体との位置関係に応じて発生する第２視差を、複数の前記第１画像および複数の前記第２画像の少なくとも一方に基づいて行毎に算出する第２視差算出部と、
前記第１の撮像素子および前記第２の撮像素子の互いに対応する行の前記画素信号の読み出しの時間差と前記第１視差と前記第２視差とに基づいて、前記被写体の第１動きベクトルを行毎に算出する第１動きベクトル算出部と、
前記第１画像および前記第２画像のそれぞれの歪みを前記第１動きベクトルに基づいて補正し、第１補正画像および第２補正画像をそれぞれ出力する補正部と
を備えていることを特徴とする画像処理装置。
（付記２）
付記１に記載の画像処理装置において、
前記第２視差算出部は、前記読み出しの時間差が第１の時間以下の行に対しては、前記第２視差を算出する処理を省略し、
前記第１動きベクトル算出部は、前記読み出しの時間差が前記第１の時間以下の行に対しては、前記第１動きベクトルを算出する処理を省略する
ことを特徴とする画像処理装置。
（付記３）
付記２に記載の画像処理装置において、
前記読み出しの時間差が前記第１の時間以下の行における前記被写体の動きを示す第２動きベクトルを、前記第１視差に基づいて算出する第２動きベクトル算出部を備え、
前記補正部は、前記第１画像および前記第２画像のそれぞれの歪みを前記第１動きベクトルおよび前記第２動きベクトルに基づいて補正し、前記第１補正画像および前記第２補正画像をそれぞれ出力する
ことを特徴とする画像処理装置。
（付記４）
付記１ないし付記３のいずれか１項に記載の画像処理装置において、
前記第１補正画像と前記第２補正画像とを合成する際の前記第１補正画像の比率を、各行に対して前記画素信号の読み出しが実行される時刻と基準の時刻との差である差分時間に基づいて決定し、前記第１補正画像と前記第２補正画像とを前記第１補正画像の比率に基づいて合成する合成部を備えていることを特徴とする画像処理装置。
（付記５）
付記４に記載の画像処理装置において、
前記合成部は、前記第１補正画像の画素値と前記第２補正画像の画素値との差と前記差分時間とに基づいて、前記第１補正画像の比率を決定する
ことを特徴とする画像処理装置。
（付記６）
付記２ないし付記５のいずれか１項に記載の画像処理装置において、
前記読み出しの時間差が前記第１の時間より大きい複数の行で、前記読み出しの時間差の絶対値が互いに同じになるように、前記第１の撮像素子および前記第２の撮像素子からの前記画素信号の読み出しを制御する制御部を備えていることを特徴とする画像処理装置。
（付記７）
付記２ないし付記５のいずれか１項に記載の画像処理装置において、
前記第１の撮像素子における前記画素信号の読み出しを開始する行および前記第２の撮像素子における前記画素信号の読み出しを開始する行を、行の配列方向における前記被写体の位置に基づいてそれぞれ設定する制御部を備えていることを特徴とする画像処理装置。
（付記８）
付記２ないし付記５のいずれか１項に記載の画像処理装置において、
前記読み出しの時間差が前記第１の時間以下の行が所定の間隔で複数発生するように、前記第１の撮像素子および前記第２の撮像素子からの前記画素信号の読み出しを制御する制御部を備えていることを特徴とする画像処理装置。
（付記９）
付記７または付記８に記載の画像処理装置において、
前記制御部は、前記読み出しの時間差が前記第１の時間より大きい複数の行で、前記読み出しの時間差の絶対値が互いに同じになるように、前記第１の撮像素子および前記第２の撮像素子からの前記画素信号の読み出しを制御することを特徴とする画像処理装置。
（付記１０）
画像処理方法において、
行列状に配置された複数の画素を有する第１の撮像素子から第１の走査方向に読み出された画素信号に基づく第１画像と、行列状に配置された複数の画素を有する第２の撮像素子から前記第１の走査方向と反対の第２の走査方向に読み出された画素信号に基づく第２画像とを取得し、前記第１画像に含まれる被写体の位置と前記第２画像に含まれる前記被写体の位置との差を示す第１視差を行毎に算出し、
前記第１の撮像素子と前記第２の撮像素子と前記被写体との位置関係に応じて発生する第２視差を、複数の前記第１画像および複数の前記第２画像の少なくとも一方に基づいて行毎に算出し、
前記第１の撮像素子および前記第２の撮像素子の互いに対応する行の前記画素信号の読み出しの時間差と前記第１視差と前記第２視差とに基づいて、前記被写体の第１動きベクトルを行毎に算出し、
前記第１画像および前記第２画像のそれぞれの歪みを前記第１動きベクトルに基づいて補正し、第１補正画像および第２補正画像をそれぞれ出力する
ことを特徴とする画像処理方法。
（付記１１）
行列状に配置された複数の画素を有する第１の撮像素子と、
行列状に配置された複数の画素を有する第２の撮像素子と、
前記第１の撮像素子および前記第２の撮像素子からの前記画素信号の読み出しを実行する駆動部と、
前記第１の撮像素子から第１の走査方向に読み出された画素信号に基づく第１画像と、前記第２の撮像素子から前記第１の走査方向と反対の第２の走査方向に読み出された画素信号に基づく第２画像とを取得し、前記第１画像に含まれる被写体の位置と前記第２画像に含まれる前記被写体の位置との差を示す第１視差を行毎に算出する第１視差算出部と、
前記第１の撮像素子と前記第２の撮像素子と前記被写体との位置関係に応じて発生する第２視差を、複数の前記第１画像および複数の前記第２画像の少なくとも一方に基づいて行毎に算出する第２視差算出部と、
前記第１の撮像素子および前記第２の撮像素子の互いに対応する行の前記画素信号の読み出しの時間差と前記第１視差と前記第２視差とに基づいて、前記被写体の第１動きベクトルを行毎に算出する第１動きベクトル算出部と、
前記第１画像および前記第２画像のそれぞれの歪みを前記第１動きベクトルに基づいて補正し、第１補正画像および第２補正画像をそれぞれ出力する補正部と
を備えていることを特徴とする撮像装置。
【０２１９】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０２２０】
１０‥第１視差算出部；２０‥第２視差算出部；３０‥第１動きベクトル算出部；４０‥補正部；ＣＡＭ、ＣＡＭ２、ＣＡＭ３、ＣＡＭ４、ＣＡＭ５‥撮像装置；ＣＭＴＬ、ＣＮＴＬ２、ＣＮＴＬ３、ＣＮＴＬ４‥制御部；ＣＯＲＲ‥補正部；ＤＩＰ‥表示部；ＤＲＶ‥駆動部；ＦＭＥＭ、ＭＥＭ‥メモリ；ＩＭＰ、ＩＭＰ２、ＩＭＰ３、ＩＭＰ４、ＩＭＰ５‥画像処理装置；ＬＥＮ１、ＬＥＮ２‥レンズ；ＭＶＣＡＬ１‥共通動きベクトル算出部；ＭＶＣＡＬ２‥奥行き動きベクトル算出部；ＰＡＬＣ‥視差算出部；ＰＡＬＣ１‥第１視差算出部；ＰＡＬＣ２‥第２視差算出部；ＲＣＡＬ‥合成率算出部；ＲＥＣ‥記録部；ＳＹＮ‥合成部
【図１】
0006439412.tif 000002
【図２】
0006439412.tif 000003
【図３】
0006439412.tif 000004
【図４】
0006439412.tif 000005
【図５】
0006439412.tif 000006
【図６】
0006439412.tif 000007
【図７】
0006439412.tif 000008
【図８】
0006439412.tif 000009
【図９】
0006439412.tif 000010
【図１０】
0006439412.tif 000011
【図１１】
0006439412.tif 000012
【図１２】
0006439412.tif 000013
【図１３】
0006439412.tif 000014
【図１４】
0006439412.tif 000015
【図１５】
0006439412.tif 000016
【図１６】
0006439412.tif 000017