(57)【要約】【課題】フレームメモリを特に設けない構成とすることでコストを低減すると共に、ローリングシャッタ現象を補正しつつ、ブレを抑制できるようにする。【解決手段】ステップＳ１２において、ステップＳ１１で取得した適正露光時間中におけるブレ量（ブレの画素数）が予測される。ステップＳ１３において、偶数ラインの受光素子が適正露光時間で露光され、画素データが読み出される。ステップＳ１３において、奇数ラインの受光素子がブレ量に応じて適正露光時間よりも短時間の露光時間で繰り返し露光され、画素データが読み出される。偶数ラインの画素データと、奇数ラインの画素データとが合成されて出力される。本技術は、イメージセンサに適用することができる。【選択図】図３４
2015082677.tif 000002
【特許請求の範囲】
【請求項１】
被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すタイミングをライン毎に適応的に制御する受光素子制御部と
を含むイメージセンサ。
【請求項２】
前記検出部は、前記受光素子により過去、および現在において撮像された画像を用いて前記移動量を検出する、または、ジャイロセンサにより前記移動量を検出する
請求項１に記載のイメージセンサ。
【請求項３】
前記受光素子制御部は、過去に複数の受光素子から画素データを読み出したラインの時系列の変位と、現在の複数の受光素子から画素データを読み出したラインの時系列の変位との案分により求められるタイミングでライン毎の読み出しを適応的に制御する
請求項１に記載のイメージセンサ。
【請求項４】
前記受光素子制御部は、前記受光素子がリセットされてから読み出されるまでの露光時間の、適正露光時間に対する割合の逆数に比例する係数を算出し、
前記２次元上に配置された複数の受光素子の一部の受光素子が受光することで発生した画素データに、前記係数を乗算してゲインを調整する乗算部をさらに含む
請求項１に記載のイメージセンサ。
【請求項５】
被写体からの光を受光する２次元上に配置された複数の受光素子を有するイメージセンサの動作方法において、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すラインを適応的に制御する
イメージセンサの動作方法。
【請求項６】
被写体からの光を受光する２次元上に配置された複数の受光素子を有するイメージセンサを制御するコンピュータに、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すラインを適応的に制御する
ステップを含む処理を実行させるプログラム。
【請求項７】
被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すタイミングをライン毎に適応的に制御する受光素子制御部と
を含む電子機器。
【請求項８】
被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する受光素子制御部と
を含むイメージセンサ。
【請求項９】
前記検出部は、前記受光素子により過去、および現在において撮像された画像を用いて前記移動量を検出する、または、ジャイロセンサにより前記移動量を検出する
請求項８に記載のイメージセンサ。
【請求項１０】
前記露光時間が短く制御された前記一部の受光素子により撮像された画素データと、前記一部の受光素子を除く受光素子により撮像された画素データとを合成する合成部をさらに含む
請求項８に記載のイメージセンサ。
【請求項１１】
被写体からの光を受光する２次元上に配置された複数の受光素子を備えたイメージセンサの動作方法において、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する
イメージセンサの動作方法。
【請求項１２】
被写体からの光を受光する２次元上に配置された複数の受光素子を備えたイメージセンサを制御するコンピュータに、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する
ステップ含む処理を実行させるプログラム。
【請求項１３】
被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する受光素子制御部と
を含む電子機器。
【請求項１４】
被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する受光素子制御部と
を含むイメージセンサ。
【請求項１５】
前記受光素子制御部は、前記一部の受光素子により撮像された画素データについては、前記一部の受光素子を除く受光素子により撮像された画素データよりも語長を短くする
請求項１４に記載のイメージセンサ。
【請求項１６】
前記検出部は、前記一部の受光素子により過去、および現在において撮像された画像を用いて前記移動量を検出する、または、ジャイロセンサにより前記移動量を検出する
請求項１４に記載のイメージセンサ。
【請求項１７】
被写体からの光を受光する２次元上に配置された複数の受光素子を備えるイメージセンサの動作方法において、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する
イメージセンサの動作方法。
【請求項１８】
被写体からの光を受光する２次元上に配置された複数の受光素子を備えるイメージセンサを制御するコンピュータに、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する
ステップを含む処理を実行させるプログラム。
【請求項１９】
被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する受光素子制御部と
を含む電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、イメージセンサおよびその動作方法、並びに電子機器に関し、特に、ブレ、およびローリングシャッタ現象を低減できるようにしたイメージセンサおよびその動作方法、並びに電子機器に関する。
【背景技術】
【０００２】
最近のイメージセンサで主流となっているCMOS（Complementary Metal Oxide Semiconductor）イメージセンサは、線順次で読み出すため、ローリングシャッタ現象が生じ、移動しながらデジタルカメラで動画を撮像すると、画像が歪んでしまうことがある。
【０００３】
この歪みは、線順次で読み出す速度を高速にすることで抑制することができる。すなわち、６０ｆｐｓ（フレーム／秒）の動画は、通常１フレーム分の画素データを１／６０秒かけて読み出している。この場合、例えば、この１フレーム分の画素データを高速化し、１／４８０秒で全画素データを読み出すようにすることで、ローリングシャッタ現象を８分の１に抑制することができる。
【０００４】
ところで、最終的にディスプレイに表示する場合や、後段の記録媒体に記録する場合、データレートは、１／６０秒かけて１フレーム分の画素データが連続的（間欠的でない）に送信されなければならない。従って、イメージセンサから１／４８０秒で全画素を読み出してしまうと、一旦、フレームメモリに画素データを蓄えてから、連続的に１／６０秒かけて１フレーム分の画素データを出力するようにタイミングを調整する必要がある。従って、従来の手法では、フレームメモリが必須の構成であった。
【０００５】
また、イメージセンサから読み出すタイミングを制御してローリングシャッタ現象を補正する技術が提案されている（特許文献１，２）。より具体的には、特許文献１，２の技術では、奇数ラインは下から上へと順番に読み出し、偶数ラインは逆に上から下へと順番に読み出し、これら２組のデータ群から画像処理にて補正をものである。この場合、処理する際に、隣接する偶数ラインと奇数ラインの画素データが同時に必要である。従って、この技術においてもフレームメモリが必要であり、装置コストに負担を与えることになる。
【０００６】
さらに、横方向のみではあるが、ローリングシャッタ現象を補正する技術が提案されている（特許文献３）。
【０００７】
また、縦方向と横方向のローリングシャッタ現象の補正を行う技術が提案されている（特許文献４乃至６）。この技術においては、イメージセンサからの読み出しタイミングを動的に切り替えることで、ローリングシャッタ現象の補正を具現化している。ただし、リセットのタイミングについては記述がなく、不明である。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−０８０４９０号公報
【特許文献２】特開２０１３−０７４３７２号公報
【特許文献３】特開２００１−３５８９９９号公報
【特許文献４】特開２００６−２８７９４６号公報
【特許文献５】特開２００６−３０４３１３号公報
【特許文献６】特開２００６−３１１５４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した技術では、ローリングシャッタ現象を補正するには、フレームメモリが必須構成であるため、装置のコストが大きくなるのが一般的であった。
【００１０】
また、ローリングシャッタ現象を補正した上で、動画において、画像内の被写体の位置を所定の位置に固定するように撮像する場合、ブレをキャンセルする（抑制する）必要があるが、上述した技術では、ブレをキャンセルする処理がなされていない。このため、ローリングシャッタ現象を補正した上で、動画において、画像内の被写体の位置を所定の位置に固定するように撮像する場合、画像に対して生じているブレが発生してしまうことがあった。
【００１１】
本技術は、このような状況に鑑みてなされたものであり、特に、フレームメモリを特に設けない構成とすることでコストを低減すると共に、ローリングシャッタ現象を補正しつつ、ブレを抑制できるようにするものである。
【課題を解決するための手段】
【００１２】
本技術の第１の側面のイメージセンサは、被写体からの光を受光する２次元上に配置された複数の受光素子と、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すタイミングをライン毎に適応的に制御する受光素子制御部とを含む。
【００１３】
前記検出部には、前記受光素子により過去、および現在において撮像された画像を用いて前記移動量を検出させる、または、ジャイロセンサにより前記移動量を検出させるようにすることができる。
【００１４】
前記受光素子制御部には、過去に複数の受光素子から画素データを読み出したラインの時系列の変位と、現在の複数の受光素子から画素データを読み出したラインの時系列の変位との案分により求められるタイミングでライン毎の読み出しを適応的に制御させるようにすることができる。
【００１５】
前記受光素子制御部には、前記受光素子がリセットされてから読み出されるまでの露光時間の、適正露光時間に対する割合の逆数に比例する係数を算出し、前記２次元上に配置された複数の受光素子の一部の受光素子が受光することで発生した画素データに、前記係数を乗算してゲインを調整する乗算部をさらに含ませるようにすることができる。
【００１６】
本技術の第１の側面のイメージセンサの動作方法は、被写体からの光を受光する２次元上に配置された複数の受光素子を有するイメージセンサの動作方法において、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すラインを適応的に制御する。
【００１７】
本技術の一側面のプログラムは、被写体からの光を受光する２次元上に配置された複数の受光素子を有するイメージセンサを制御するコンピュータに、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すラインを適応的に制御するステップを含む処理を実行させる。
【００１８】
本技術の第１の側面の電子機器は、被写体からの光を受光する２次元上に配置された複数の受光素子と、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すタイミングをライン毎に適応的に制御する受光素子制御部とを含む。
【００１９】
本技術の第２の側面のイメージセンサは、被写体からの光を受光する２次元上に配置された複数の受光素子と、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する受光素子制御部とを含む。
【００２０】
前記検出部には、前記受光素子により過去、および現在において撮像された画像を用いて前記移動量を検出する、または、ジャイロセンサにより前記移動量を検出させるようにすることができる。
【００２１】
前記露光時間が短く制御された前記一部の受光素子により撮像された画素データと、前記一部の受光素子を除く受光素子により撮像された画素データとを合成する合成部をさらに含ませるようにすることができる。
【００２２】
本技術の第２の側面のイメージセンサの動作方法は、被写体からの光を受光する２次元上に配置された複数の受光素子を備えたイメージセンサの動作方法であって、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する。
【００２３】
本技術の第２の側面のプログラムは、被写体からの光を受光する２次元上に配置された複数の受光素子を備えたイメージセンサを制御するコンピュータに、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御するステップ含む処理を実行させる。
【００２４】
本技術の第２の側面の電子機器は、被写体からの光を受光する２次元上に配置された複数の受光素子と、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する受光素子制御部とを含む。
【００２５】
本技術の第３の側面のイメージセンサは、被写体からの光を受光する２次元上に配置された複数の受光素子と、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する受光素子制御部とを含む。
【００２６】
前記受光素子制御部に、前記一部の受光素子により撮像された画素データについては、前記一部の受光素子を除く受光素子により撮像された画素データよりも語長を短くするようにさせることができる。
【００２７】
前記検出部に、前記一部の受光素子により過去、および現在において撮像された画像を用いて前記移動量を検出させるようにする、または、ジャイロセンサにより前記移動量を検出させるようにすることができる。
【００２８】
本技術の第３の側面のイメージセンサの動作方法は、被写体からの光を受光する２次元上に配置された複数の受光素子を備えるイメージセンサの動作方法であって、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する。
【００２９】
本技術の第３の側面のプログラムは、被写体からの光を受光する２次元上に配置された複数の受光素子を備えるイメージセンサを制御するコンピュータに、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御するステップを含む処理を実行させる。
【００３０】
本技術の第３の側面の電子機器は、被写体からの光を受光する２次元上に配置された複数の受光素子と、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する受光素子制御部とを含む。
【００３１】
本技術の第１の側面においては、２次元上に配置された複数の受光素子により、被写体からの光が受光され、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量が検出され、前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すタイミングがライン毎に適応的に制御される。
【００３２】
本技術の第２の側面においては、２次元上に配置された複数の受光素子により、被写体からの光が受光され、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量が検出され、前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間が適応的に短くするように制御される。
【００３３】
本技術の第３の側面においては、２次元上に配置された複数の受光素子により、被写体からの光が受光され、前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量が検出され、前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間が適応的に短くされ、複数回数撮像されるように制御される。
【発明の効果】
【００３４】
本技術の第１乃至第３の側面によれば、フレームメモリを特に設けない構成とすることで装置コストを低減することが可能になると共に、ローリングシャッタ現象を補正させつつ、ブレを抑制させることが可能となる。
【図面の簡単な説明】
【００３５】
【図１】一般的なイメージセンサの構成においてフレームメモリが必須であることを説明する図である。
【図２】ブレの発生により違和感のある画像が発生することを説明する図である。
【図３】ブレの発生により違和感のある画像が発生することを説明する図である。
【図４】イメージセンサの座標系を説明する図である。
【図５】ローリングシャッタ現象を抑制して動画をスタビライズさせるための読み出し手順を説明する図である。
【図６】ローリングシャッタ現象を抑制して動画をスタビライズさせるための読み出し手順を説明する図である。
【図７】ローリングシャッタ現象を抑制して動画をスタビライズさせるための読み出し手順を説明する図である。
【図８】ローリングシャッタ現象を抑制して動画をスタビライズさせるための読み出し手順を説明する図である。
【図９】ローリングシャッタ現象を抑制して動画をスタビライズさせるための読み出し手順を説明する図である。
【図１０】ローリングシャッタ現象を抑制して動画をスタビライズさせるための読み出し手順を説明する図である。
【図１１】ローリングシャッタ現象を抑制して動画をスタビライズさせるための読み出し手順を説明する図である。
【図１２】ローリングシャッタ現象を抑制して動画をスタビライズさせるための読み出し手順を説明する図である。
【図１３】ローリングシャッタ現象を抑制して動画をスタビライズさせるための読み出し手順を説明する図である。
【図１４】ローリングシャッタ現象を抑制して動画をスタビライズさせるための読み出し手順を説明する図である。
【図１５】偶数ラインの画素のリセットのタイミングと読み出しのタイミングを説明する図である。
【図１６】偶数ラインの画素を撮像するときのリセットのタイミングと読み出しのタイミングの間に、偶数ラインよりも短い露光時間で２枚の奇数ラインの画像を撮像する例を説明する図である。
【図１７】偶数ラインの画素を撮像するときのリセットのタイミングと読み出しのタイミングの間に、偶数ラインよりも短い露光時間で４枚の奇数ラインの画像を撮像する例を説明する図である。
【図１８】フレームメモリを利用した場合のリセットと読み出しのタイミングを説明する図である。
【図１９】本技術を適用したフレームメモリを利用しない場合のリセットと読み出しのタイミングを説明する図である。
【図２０】偶数ラインの読み出しタイミングを説明する図である。
【図２１】偶数ラインの読み出しタイミングの波形から奇数ラインの読み出しタイミングを求める例を説明する図である。
【図２２】過去の偶数ラインの読み出しタイミングの波形を延長する波形を説明する図である。
【図２３】未来の偶数ラインの読み出しタイミングの波形を延長する波形を説明する図である。
【図２４】未来の偶数ラインの波形と現在の偶数ラインの波形とから奇数ラインの波形を補間生成する例を説明する図である。
【図２５】過去の偶数ライン、および未来の偶数ラインのそれぞれの波形と、現在の偶数ラインの波形とから奇数ラインを補間生成する例を説明する図である。
【図２６】本技術を適用した撮像装置に用いられるクロックを説明する図である。
【図２７】本技術を適用した撮像装置に入力される信号、および出力される信号を説明する図である。
【図２８】本技術を適用したイメージセンサを有する撮像装置の一実施の形態の構成例を説明する図である。
【図２９】図２８の制御部の入力信号および出力信号を説明する図である。
【図３０】図２８のタイミング制御部、垂直制御部、および水平制御部の入力信号および出力信号を説明する図である。
【図３１】図２８のイメージセンサ、シリアルパラレル変換部および乗算部の入力信号および出力信号を説明する図である。
【図３２】図２８の動き検出部、およびフレームメモリの入力信号および出力信号を説明する図である。
【図３３】図２８のラインメモリ、データセットメモリ、および補間部の入力信号および出力信号を説明する図である。
【図３４】画像データ出力処理を説明するフローチャートである。
【図３５】読み出しライン制御処理を説明するフローチャートである。
【図３６】水平制御部の入力信号および出力信号と、後述するフローチャートに用いられるシンタックスにおける表記の対応関係を説明する図である。
【図３７】水平制御部の処理を説明するフローチャートである。
【図３８】垂直制御部の入力信号および出力信号と、後述するフローチャートに用いられるシンタックスにおける表記の対応関係を説明する図である。
【図３９】垂直制御部の処理を説明するフローチャートである。
【図４０】タイミング制御部の第１の処理を実行するサブ演算ブロックにおける入力信号および出力信号と、後述するフローチャートに用いられるシンタックスにおける表記の対応関係を説明する図である。
【図４１】タイミング制御部の第１の処理を説明するフローチャートである。
【図４２】タイミング制御部の第２の処理を実行するサブ演算ブロックにおける入力信号および出力信号と、後述するフローチャートに用いられるシンタックスにおける表記の対応関係を説明する図である。
【図４３】タイミング制御部の第３の処理を実行するサブ演算ブロックにおける入力信号および出力信号と、後述するフローチャートに用いられるシンタックスにおける表記の対応関係を説明する図である。
【図４４】タイミング制御部の第２の処理および第３の処理を実行するサブ演算ブロックにおける入力信号および出力信号と、後述するフローチャートに用いられるシンタックスにおける表記の対応関係を説明する図である。
【図４５】タイミング制御部の第２の処理および第３の処理を説明するフローチャートである。
【図４６】タイミング制御部の第４の処理を実行するサブ演算ブロックにおける入力信号および出力信号と、後述するフローチャートに用いられるシンタックスにおける表記の対応関係を説明する図である。
【図４７】タイミング制御部の第４の処理を説明するフローチャートである。
【図４８】タイミング制御部の第４の処理を説明するフローチャートである。
【図４９】タイミング制御部の第４の処理を説明するフローチャートである。
【図５０】タイミング制御部の第４の処理を説明するフローチャートである。
【図５１】タイミング制御部の第５の処理を実行するサブ演算ブロックにおける入力信号および出力信号と、後述するフローチャートに用いられるシンタックスにおける表記の対応関係を説明する図である。
【図５２】タイミング制御部の第５の処理を説明するフローチャートである。
【図５３】タイミング制御部の第５の処理を説明するフローチャートである。
【図５４】タイミング制御部の第５の処理を説明するフローチャートである。
【図５５】タイミング制御部の第５の処理を説明するフローチャートである。
【図５６】タイミング制御部の第５の処理を説明するフローチャートである。
【図５７】タイミング制御部の第５の処理を説明するフローチャートである。
【図５８】タイミング制御部の第５の処理を説明するフローチャートである。
【図５９】タイミング制御部の第５の処理を説明するフローチャートである。
【図６０】タイミング制御部の第５の処理を説明するフローチャートである。
【図６１】タイミング制御部の第５の処理を説明する図である。
【図６２】タイミング制御部の第５の処理を説明する図である。
【図６３】タイミング制御部の第５の処理を説明する図である。
【図６４】タイミング制御部の第６の処理を実行するサブ演算ブロックにおける入力信号および出力信号と、後述するフローチャートに用いられるシンタックスにおける表記の対応関係を説明する図である。
【図６５】タイミング制御部の第６の処理を説明するフローチャートである。
【図６６】タイミング制御部の第６の処理を説明するフローチャートである。
【図６７】制御部の処理を説明するフローチャートである。
【図６８】マッチング部の処理を説明するフローチャートである。
【図６９】マッチング部の処理を説明する図である。
【図７０】動き検出部の処理を説明するフローチャートである。
【図７１】動き検出部の処理を説明するフローチャートである。
【図７２】動き検出部の処理を説明する図である。
【図７３】補間部の処理を説明するフローチャートである。
【図７４】補間部の処理を説明するフローチャートである。
【図７５】補間部の処理を説明する図である。
【図７６】偶数ラインと奇数ラインの読み出しタイミングとして求められる波形を説明する図である。
【図７７】汎用のパーソナルコンピュータの構成例を説明する図である。
【発明を実施するための最良の形態】
【００３６】
＜一般的なイメージセンサの動作＞
最近のイメージセンサで主流となっているCMOS（Complementary Metal Oxide Semiconductor）イメージセンサは、線順次で読み出すため、ローリングシャッタ現象が発生し、移動しながらデジタルカメラで動画を撮影すると、歪んだ画像になってしまう。
【００３７】
この歪みの発生を抑制するためには、線順次で読み出す速度を高速にすればよい。例えば、６０ｆｐｓ（フレーム／秒）の動画であれば、通常１フレーム分の画素データは１／６０秒で読み出される。これに対して画像の歪を抑制するには、読み出し速度を高速化して１／４８０秒で全画素データが読み出されるようにすることで、ローリングシャッタ現象が８分の１に抑えられる。
【００３８】
ところで、最終的にディスプレイに表示する場合や、後段の記録媒体に記録する場合には、データレートは、１／６０秒で１フレーム分の画素データが連続的に（間欠的ではない状態で）送信されなければならない。従って、イメージセンサから１／４８０秒で全画素を読み出してしまうと、一旦、フレームメモリに画素データを蓄えてから、連続的に１／６０秒で１フレーム分の画素データを出力するようにタイミングを調整する必要がある。
【００３９】
すなわち、例えば、図１の上段で示されるように、６０ｆｐｓ（フレーム/秒）の動画であれば、１フレーム分の画素データが、イメージセンサからフレームメモリに１／４８０秒で読み出される。そして、図１の下段で示されるように、読み出し速度を１／６０秒で全画素データが読み出されるようにする。このような動作により、ローリングシャッタ現象が８分の１に抑えられる。尚、図１においては、１フレームについてＮ個の画素データから構成されており、１フレームの画像を構成する画素データＤ０，Ｄ１・・・ＤＮ−１が順次出力された後、その次のタイミングで出力される１フレームの画像を構成する画素データＥ０，Ｅ１・・・ＥＮ−１が出力される用紙が示されている。
【００４０】
しかしながら、このような手法を用いる場合、一般的には、フレームメモリが必須の構成とされるため、装置コストが嵩む構成となる。
【００４１】
また、撮像装置を手で持った状態で動画が撮像されると、所定の画像（１フレーム分の画素データ）にはブレがなく、また、所定の画像とは異なる画像にはブレが存在していることが、しばしば起きる。つまり、所定の画像が撮像されている間（すなわち、所定の１フレームのための露光時間内）に手持ち撮像により、撮像装置の撮像方向が変化するように動いたか否かにより、撮像された画像内にブレが発生したりしなかったりする。
【００４２】
通常、動画が再生される際には、撮像装置の撮像方向が変化するように動いていれば、動画像内で被写体の位置も動くことになり、”被写体が動いているからブレている”と感じ、このブレについて鑑賞者は、視聴に違和感を抱くことがない。
【００４３】
すなわち、図２で示されるように、フレームＦ１乃至Ｆ５、および、フレームＦ９乃至Ｆ１２を撮像していた時間帯においては、たまたまカメラの撮像方向が動かずに被写体（図２においては家）が撮像できたものとする。一方、フレームＦ６乃至Ｆ８が撮像されていた時間帯において、手持ちにより撮像装置の撮像方向が下方向に動いて撮像（被写体である家が、フレーム内において相対的に上へ移動）されてしまったものとする。この場合、フレームＦ６乃至Ｆ８においては、露光時間内に被写体が動画像内を動いてしまうことになるためブレが生じる。
【００４４】
ところが、このフレームＦ１乃至Ｆ１２で示される１２フレーム分の動画が再生されるとき、フレームＦ６乃至Ｆ８のタイミングにおいて、撮像装置の撮像方向が変化することで、相対的に被写体がフレーム内を移動していることにより、ブレが発生していることを認識することができるので、鑑賞者は視聴に際して違和感を抱くことがない。尚、図２は、手持ちで撮像した動画の中のフレームＦ１乃至Ｆ１２の１２フレーム分の画像を時系列に示したものである。
【００４５】
しかしながら、ローリングシャッタ現象を補正しつつ、動画像内の被写体をフレーム内でスタビライズさせるようにすると、鑑賞者は、このブレに違和感を抱くことになる。ここで、"スタビライズ"させるとは、フレーム間で位置合わせを行うことで、静止している被写体の投影像の位置をフレーム内で一定の位置にさせることを意味する。
【００４６】
図３は、図２の画像に対して、被写体となる家をフレーム内でスタビライズさせた場合の動画像の１２フレーム分の画像として示したものである。
【００４７】
図３に示したフレームＦ２１乃至Ｆ３２の画像は、それぞれ図２のフレームＦ１乃至Ｆ１２に対応した画像である。ただし、図３のフレームＦ２１乃至Ｆ３２の画像は、図２のフレームＦ１乃至Ｆ１２の画像に対して、被写体をスタビライズさせている。すなわち、カメラの動きが補正され、被写体である家がフレーム内の一定の位置に固定されている。これにより、図３で示されるように、被写体である家は、フレームＦ２１乃至Ｆ３２まですべてにおいて、画像上の略同一の位置に存在するようにされている。
【００４８】
しかしながら、このフレームＦ２１乃至Ｆ３２の１２フレーム分の動画を再生すると、被写体の家は、フレーム内において常に静止しているにも関わらず、フレームＦ２６乃至Ｆ２８の時間においてのみブレが生じる。このため、鑑賞者は視聴に際して違和感を抱くことになる。
【００４９】
＜本技術を適用したイメージセンサによる撮像方法の概要について＞
次に、本技術を適用することにより、フレームメモリを利用することなく、このような動画像を再生したとき、その鑑賞に際して生じる違和感を低減できるようにしたイメージセンサによる撮像方法の概要について説明する。
【００５０】
尚、以降において、本技術を適用したイメージセンサを有する撮像装置による撮像方法を説明するにあたり、イメージセンサ内の画素配列を特定する座標系については、図４で示されるように定義されるものとする。
【００５１】
すなわち、図４のイメージセンサ１１の画素は、水平方向（ｘ軸方向）の画素数がWSであり、垂直方向（ｙ軸方向）の画素数がHSで配置されているものとする。そして、この画素のうち撮像される動画像の１フレームを構成する領域２１は、６０ｆｐｓで、水平方向の画素数×垂直方向の画素数＝W×Hであるものとする。フルＨＤ（High Dedinition）動画像である場合、例えば、水平方向の画素数Wは1920画素であり、垂直方向の画素数Ｈは1080画素であり、以降においては、この画素数であるものとして説明を進めるものとするが、いうまでもなく、それ以外の画素数であってもよいものである。また、画素数Wは、画素数WSよりも小さく（W＜WS）、画素数Hは、画素数HSよりも小さい（H＜HS）。さらに、イメージセンサ１１により動画を撮像可能な範囲は、領域２１の範囲W×Hより大きな範囲WS×HSであるものとする。
【００５２】
＜手振れのない固定したカメラで撮像される場合＞
まず、図５を参照して、手振れのない固定したカメラ（撮像装置）で撮像される場合の画素データが読み出されるタイミングについて説明する。
【００５３】
ここで、図５は、３フレーム分の動画像を撮像する際のイメージセンサにおける画素データを転送する範囲と、タイミングを示すタイミングチャートである。図５のタイミングチャートにおいては、図中の垂直方向がイメージセンサ１１、および領域２１の水平方向（ｙ軸方向）であり、図中右方向が時刻方向である。
【００５４】
また、図５においては、１／６０秒の時間内において、第１フレームの垂直方向の時刻１Ｈ＠１Ｆｒａｍｅ乃至１０８０Ｈ＠１Ｆｒａｍｅの各タイミングで、実線の枠で示されるイメージセンサ１１−１−１乃至１１−１−１０８０のうち、図中の点線の矩形領域で示される領域２１−１−１乃至２１−１−１０８０の太線で示される垂直方向の１ライン分の画素データがそれぞれ読み出される。
【００５５】
同様に、第２フレームのうち、垂直方向の時刻１Ｈ＠２Ｆｒａｍｅ乃至１０８０Ｈ＠２Ｆｒａｍｅの各タイミングで、図中のイメージセンサ１１−２−１乃至１１−２−１０８０のそれぞれの領域２１−２−１乃至２１−２−１０８０の太線で示される垂直方向の１ライン分の画素データがそれぞれ読み出される。
【００５６】
さらに、同様に、第３フレームのうち、垂直方向の時刻１Ｈ＠３Ｆｒａｍｅ乃至１０８０Ｈ＠３Ｆｒａｍｅの各タイミングで、図中のイメージセンサ１１−３−１乃至１１−３−１０８０のそれぞれの領域２１−３−１乃至２１−３−１０８０の太線で示される垂直方向の１ライン分がそれぞれ読み出される。
【００５７】
尚、領域２１−１−１乃至２１−１−１０８０、領域２１−２−１乃至２１−２−１０８０、および、領域２１−３−１乃至２１−３−１０８０のそれぞれについて、特に区別する必要がない場合、単に領域２１と称するものとし、その他の構成についても同様に称するものとする。
【００５８】
すなわち、最初の時刻１Ｈ＠１Ｆｒａｍｅにおいては、図中の太線で示した１ライン分（点線矩形領域で示される領域２１の一番上のライン）の画素データが読み出される。
【００５９】
次の時刻２Ｈ＠１Ｆｒａｍｅにおいては、図中の太線で示した１ライン分（点線矩形領域の領域２１の上から２番目のライン）の画素データが読み出される。
【００６０】
さらに次の時刻３Ｈ＠１Ｆｒａｍｅにおいては、図中の太線で示した１ライン分（点線矩形領域の領域２１の上から３番目のライン）の画素データが読み出される。
【００６１】
以降、同様にして、１フレーム目の最後の時刻１０８０Ｈ＠１Ｆｒａｍｅにおいては、図中の太線で示した１ライン分（点線矩形領域の領域２１の一番下のライン）の画素データが読み出される。
【００６２】
２フレーム目以降も同様である。このようにして、イメージセンサから１ライン分ごとの時間間隔（１／（６０×１０８０）秒）で１ラインずつ画素データが読み出され、読み出された１０８０ライン分の画素データから１フレーム分の画像が構成される。
【００６３】
ここで、時刻の表記については、例えば、"時刻１Ｈ＠１Ｆｒａｍｅ"の場合、１フレーム（Ｆｒａｍｅ）目の垂直方向の１ライン目の１ライン分の画素データを転送する時刻であることを示す。したがって、時刻１Ｈ＠１Ｆｒａｍｅ、時刻２Ｈ＠１Ｆｒａｍｅ・・・１０８０Ｈ＠１Ｆｒａｍｅ、時刻１Ｈ＠２Ｆｒａｍｅ、時刻２Ｈ＠２Ｆｒａｍｅ・・・１０８０Ｈ＠２Ｆｒａｍｅ、時刻１Ｈ＠３Ｆｒａｍｅ、時刻２Ｈ＠３Ｆｒａｍｅ・・・１０８０Ｈ＠３Ｆｒａｍｅ・・・といった順序で等間隔に変位する。
【００６４】
＜手振れのない固定したカメラで撮像される場合の読み出しタイミングとリセットタイミング＞
次に、図６を参照して、手振れのない固定したカメラで撮像される場合の読み出しタイミングとリセットタイミングについて説明する。
【００６５】
ここで、図６は、図５で示される画素データの転送タイミングを示すタイミングチャートをｘ軸方向に射影したタイミングチャートである。図中の垂直方向が画像の垂直方向のラインを特定するｙ軸であり、ｙ＝０からｙ＝HS−１が、イメージセンサ１１の垂直方向の画素配列に対応している。一方、図中の水平方向が時間軸（time軸）を表している。
【００６６】
すなわち、図６で示されるように、イメージセンサ１１の画素の中央部分の1080ライン分の画素データが順次読み出される。図中の太い実線で示される直線Ｌ１０乃至Ｌ１２が、各画素ラインの画素データが読み出されるタイミングを表している。各時刻１Ｈ分の時間に対して１ラインずつ読み出されるので、この太い実線は図中で直線（時間軸に対するｙ軸の位置が比例関係）となる。また、図中の太い点線で示される直線Ｌ１乃至Ｌ３は各画素をリセットするタイミングを表している。各ラインの画素（正確には、各ラインに含まれる水平方向に１列に配置された複数の画素）は、リセットされた時刻から読み出しされる時刻までの時間（例えば、直線Ｌ１乃至Ｌ１１の時間）が、露光時間とされる。
【００６７】
＜手振れしながら撮像される場合に手振れ補正されるとき＞
次に、図７を参照して、手振れしながら撮像される（手持ちによりブレが発生した状態で撮像される）場合に手振れ補正されるときの画素データが読み出されるタイミングについて説明する。尚、ここでは、説明を簡単にするために、手振れの発生によりイメージセンサ１１の撮像方向が常に下方向に動いているものとする。すなわち、一般的には、手振れによりイメージセンサ１１は、ランダムに上下左右に動くが、図が煩雑になるので、下方向の一方向にのみ動いているものとする。尚、言うまでも無く、それ以外の方向についても手振れは発生する。
【００６８】
また、図７においては、図５と同様に、第１フレーム１Ｆｒａｍｅ乃至第３フレーム３Ｆｒａｍｅからなる３フレーム分の時間（３／６０秒）が示されている。また、イメージセンサ１１−１１−１乃至１１−１１−１０８０，１１−１２−１乃至１１−１２−１０８０，１１−１３−１乃至１１−１３−１０８０、および領域２１−１１−１乃至２１−１１−１０８０，２１−１２−１乃至２１−１２−１０８０，２１−１３−１乃至２１−１３−１０８０は、それぞれ図５のイメージセンサ１１−１−１乃至１１−１−１０８０，１１−２−１乃至１１−２−１０８０，１１−３−１乃至１１−３−１０８０、および領域２１−１−１乃至２１−１−１０８０，２１−２−１乃至２１−２−１０８０，２１−３−１乃至２１−３−１０８０に対応するものである。
【００６９】
ここで、上述したように、イメージセンサ１１は手振れにより下方向に撮像方向が動いているので、図５のように、イメージセンサ１１の中で常に同じ矩形領域で示される領域２１の位置が読み出されていくと、各フレーム内でローリングシャッタ現象が生じ、フレーム間で被写体がスタビライズされない。
【００７０】
そこで、図７で示されるように、イメージセンサ１１の撮像方向が動いている方向と逆方向に点線矩形領域となる領域２１が動かされる。この点線矩形領域で示される領域２１に対して、最初の時刻１Ｈ＠１Ｆｒａｍｅにおいては、図中の太線で示された１ライン分（点線矩形領域で示される領域２１の一番上のライン）の画素データが読み出される。
【００７１】
次の時刻２Ｈ＠１Ｆｒａｍｅにおいては、図中の太線で示した１ライン分（点線矩形領域の上から２番目のライン）の画素データが読み出される。
【００７２】
さらに、次の時刻３Ｈ＠１Ｆｒａｍｅにおいては、図中の太線で示した１ライン分（点線矩形領域の上から３番目のライン）の画素データが読み出される。
【００７３】
以降、同様にして、１フレーム目の最後の時刻（図中の時刻１０８０Ｈ＠１Ｆｒａｍｅ）においては、図中の太線で示した１ライン分（点線矩形領域の一番下のライン）の画素データが読み出される。２フレーム目以降も同様である。このようにして、イメージセンサ１１から各１Ｈ分の時間（１／（６０×１０８０）秒）に対して１ライン分ずつの画素データが読み出され、読み出された1080ラインの画素データから１つのフレームが構成される。これにより、ローリングシャッタ現象が補正されて、動画像における被写体をスタビライズさせることが可能となる。
【００７４】
＜手振れしながら撮像される場合に手振れ補正されるときの読み出しタイミング＞
次に、図８，図９を参照して、手振れしながら撮像される場合に手振れ補正されるときの読み出しタイミングとリセットタイミングについて説明する。
【００７５】
ここで、図８は、図７で示される画素データの転送タイミングを示すタイミングチャートをｘ軸方向に射影したタイミングチャートである。図中の太い実線で示される直線Ｌ３１乃至Ｌ３３が各ラインの画素データが読み出されるタイミングを表している。図中の垂直方向が画像の垂直方向のラインを特定するｙ軸であり、ｙ＝０からｙ＝HS−１が、イメージセンサ１１の垂直方向の画素配列に対応している。一方、図中の水平方向が時間軸（time軸）を表している。
【００７６】
また、図９は、手振れによりイメージセンサ１１の撮像方向が常に上方向に動いている場合のタイミングチャートを示しており、図中の太い実線で示される直線Ｌ４１乃至Ｌ４３が各ラインの画素データが読み出されるタイミングを表している。
【００７７】
すなわち、図８および図９で示されるように、手振れしながら撮像される場合、手振れ補正するときには、手振れによりブレた分を補正するため、領域２１を構成する最終ラインを読出した次のタイミングで、最終ラインから１０８０ライン分だけ上方（図８）および下方（図９）のラインから画素データが順次読み出される。
【００７８】
より詳細には、図８の場合、次のフレームに移る時刻（各フレームの最初の１Ｈの時刻）において、読み出しラインが1080ラインだけ上に移動される。すなわち、例えば、図７で示されるように、時刻１０８０Ｈ＠１Ｆｒａｍｅにおいて、領域２１−１１−１０８０における太線で示される第１フレームの最終ラインとなる１ライン分の画素データが読み出されるタイミングを考える。すると、次のタイミングである時刻１Ｈ＠２Ｆｒａｍｅにおいて、領域２１−１２−１で示される、1080ライン分上の太線で示される１ライン分が第２フレームの先頭ラインの画素データとして読み出される。
【００７９】
このような動作により、図７の領域２１−１１−１乃至２１−１１−１０８０，２１−１２−１乃至２１−１２−１０８０，２１−１３−１乃至２１−１３−１０８０における図中の左上部の位置が時間軸（time軸）と平行な点線で一致した位置に統一されることで、手振れによるブレの発生を抑制することができる。
【００８０】
同様に、図９の場合、次のフレームに移る時刻（各フレームの最初の１Ｈの時刻）において、読み出しラインが1080ライン分だけ下に移動される。
【００８１】
このような動作により、手振れしながらイメージセンサ１１上の被写体のブレの補正を実現することが可能となる。
【００８２】
＜パンしながら撮像される場合に手振れ補正されるとき＞
次に、図１０を参照して、パンしながら撮像される場合に手振れ補正されるときの画素データが読み出されるタイミングについて説明する。尚、ここでは、説明を簡単にするために、撮像者の意思に基づいたパンによりイメージセンサ１１の撮像方向が常に下方向に動いているものとする。すなわち、一般的には、パンによりイメージセンサ１１は、撮像者の意思に従って上下左右に動くが、図が煩雑になるので、一方向に動いているものとする。尚、いうまでもなく、それ以外の方向にパンするようにしてもよいものである。
【００８３】
すなわち、図１０におけるパンによる下方向への移動は、図７の場合と異なり、撮像者が意図した動きであり、撮像された動画像もこの動きに追従するように再生される必要がある。この場合、１フレーム内では、イメージセンサ１１が動いている方向と逆方向に点線矩形領域からなる領域２１を動かすことで、ローリングシャッタ現象が補正される。そして、フレーム間では、点線矩形領域からなる領域２１はイメージセンサ１１上で同一の位置に固定させる（各フレームの１Ｈの時刻においては、ｙ＝ｙ０のラインを読み出す）ことで、スタビライズさせずにパンさせることが可能となる。
【００８４】
尚、図１０においては、図５と同様に、第１フレーム１Ｆｒａｍｅ乃至第３フレーム３Ｆｒａｍｅからなる３フレーム分の時間（３／６０秒）が示されている。また、イメージセンサ１１−２１−１乃至１１−２１−１０８０，１１−２２−１乃至１１−２２−１０８０，１１−２３−１乃至１１−２３−１０８０、および領域２１−２１−１乃至２１−２１−１０８０，２１−２２−１乃至２１−２２−１０８０，２１−２３−１乃至２１−２３−１０８０は、それぞれ図５のイメージセンサ１１−１−１乃至１１−１−１０８０，１１−２−１乃至１１−２−１０８０，１１−３−１乃至１１−３−１０８０、および領域２１−１−１乃至２１−１−１０８０，２１−２−１乃至２１−２−１０８０，２１−３−１乃至２１−３−１０８０に対応するものである。
【００８５】
＜パンしながら撮像される場合に手振れ補正されるときの読み出しタイミング＞
次に、図１１，図１２を参照して、パンしながら撮像される場合に手振れ補正されるときの読み出しタイミングとリセットタイミングについて説明する。
【００８６】
ここで、図１１は、図１０で示される画素データの転送タイミングを示すタイミングチャートをｘ軸方向に射影した図である。図中の垂直方向が画像の垂直方向のラインを特定するｙ軸であり、ｙ＝０からｙ＝HS−１が、イメージセンサ１１の垂直方向の画素配列に対応している。一方、図中の水平方向が時間軸（time軸）を表している。図中の太い実線で示される分布Ｌ６１乃至Ｌ６３、が読み出すタイミングを表している。また、図１２は、パンによりカメラ（イメージセンサ）が常に上方向に動いている場合の各ラインの転送タイミングを示すタイミングチャートであり、太い実線で示される分布Ｌ７１乃至Ｌ７３が読み出すタイミングを表している。
【００８７】
図１１，図１２で示されるように、画素データを転送する画素ラインは、次のフレームに移る時刻（各フレームの最初の１Ｈの時刻）において、読み出しラインが常に同じ位置（ｙ＝ｙ０）に移動している。すなわち、イメージセンサ１１の撮像方向は、撮像者により意図的にパンされているので、そのパンに応じて領域２１を構成するフレームの先頭ラインを、同一の位置とすることで、違和感のない画像に補正することが可能となる。
【００８８】
＜手振れに対する補正動作とパンに対する補正動作を合成した動作＞
すなわち、図７乃至図９を参照して説明したイメージセンサ１１の動きは、パンではなく完全な手振れの場合の動作を示したものであり、図１０乃至図１２を参照して説明したイメージセンサ１１の動きは、手振れではなく完全なパンの場合の動作を示したものである。
【００８９】
しかしながら、パンと手振れは、いずれかのみといったことは少なく、それらが混じった状態が一般的である。そこで、本技術における補正は、図８および図９、並びに図１１および図１２を参照して説明した、手振れに対する補正動作とパンに対する補正動作とを組み合わせた動作とされる。
【００９０】
より具体的には、例えば、図１３で示されるように、図８および図１１を参照して説明した動作を組み合わせた動作、または、図１４で示されるように、図９および図１２を参照して説明した動作を組み合わせた動作がなされる。
【００９１】
すなわち、図１３においては、第２フレームである２Ｆｒａｍｅの読み出しが開始される時刻１Ｈ＠２Ｆｒａｍｅにおいて、手振れを補正するための１Ｆｒａｍｅにおける1080ライン目の位置から1080ライン分上の位置と、パンを補正するためのｙ＝ｙ０の位置とから、"パンとブレとの割合"であるパン：ブレ＝Ｐ：Ｂにより案分された位置に、読み出し開始位置が補正されている。
【００９２】
同様に、図１４においては、第２フレームである２Ｆｒａｍｅの読み出しが開始される時刻１Ｈ＠２Ｆｒａｍｅにおいて、手振れを補正するための１Ｆｒａｍｅにおける１０８０ライン目の位置から１０８０ライン分上の位置と、パンを補正するためのｙ＝ｙ０の位置とから、"パンとブレとの割合"であるパン：ブレ＝Ｐ：Ｂにより案分された位置に、読み出し開始位置が補正されている。
【００９３】
この"パンとブレの割合"は、既存の技術（制御方法）により取得することができる。例えば、過去のイメージセンサ１１の撮像方向と比較し、大きく変化が生じている場合、撮像者の意図した動き、すなわちパンであるものとして、処理し、パンの割合を大きくする。逆に、過去のイメージセンサ１１の撮像方向と比較し、大きな変化がない場合、撮像者の意図しない動き（手振れにより生じるブレ）であるものとみなし、ブレの割合を大きくする。
【００９４】
また、他の"パンとブレの割合"の制御方法として、イメージセンサ１１の現在のフレームの読み出し位置が、イメージセンサ１１の端部に近づいた場合、次のフレームで読み出そうとする位置がイメージセンサ１１の領域をはみ出してしまう可能性があるので、パンの割合を大きくする。このようにパンの割合を大きくすれば、強制的にｙ＝ｙ０から１０８０ライン分が読み出されるような位置にすることが可能となる。逆に、イメージセンサの中央部分を読み出している場合は、ブレの割合を大きくする。このような動作により、より精度よく手振れにより生じたブレを補正することが可能となる。
【００９５】
＜ライン毎に異なる露光時間を設定することで手振れを補正する＞
手振れが含まれるような動画の撮像に対して、手振れをキャンセルするために、画素を２つのグループに分け、一方のグループの画素に対しては通常の露光時間とし、他方のグループの画素に対しては、ブレ量に応じて露光時間を変化させ、得られた画素データを合成することで、手振れを補正する。
【００９６】
以降においては、偶数ラインに属する画素を一方のグループとし、奇数ラインに属する画素を他方のグループとして説明を進めるものとする。ただし、ラインの分け方は偶数と奇数に限定するわけではなく、それ以外の分け方でもよく、例えば、水平方向のラインのみならず、垂直方向の列単位でグループ分けしてもよいし、ラスタスキャン方向に対して１行おきに異なるグループに設定するようにしてもよい。
【００９７】
また、ブレ量については、例えば、イメージセンサ１１を含む撮像装置に組み込まれたジャイロセンサ（図示省略）のデータを使うようにしてもよいし、後述するように画像解析により各画素の動きを検出することで、次のフレームにおいて、リセットから読み出しまでの露光時間内における各画素のブレ量を予測するようにしてもよい。
【００９８】
ここで、ブレ量とは、露光時間内において、イメージセンサに投影される静止被写体に属する画素が、手振れにより何画素分移動するかを示す量である。なお、ジャイロセンサとは、角速度センサとも称される。
【００９９】
より詳細には、このブレ量が２画素未満である場合には、偶数ライン（正確には、偶数ラインに属する画素）も奇数ライン（正確には、奇数ラインに属する画素）も、適正露光時間となるように、露光開始時刻からのリセットのタイミングが調整される。
【０１００】
すなわち、図１５で示されるように、各ラインは、読み出し時刻よりも適正露光時間だけ過去の時間にリセットされる。より詳細には、偶数ラインの各画素は、実線Ｌ２００で示されるように、図中の上部の画素から順次読み出されると共に、読み出された直後のタイミングである点線Ｌ２０１で示されるタイミングでリセットがなされる。そして、リセットがなされたタイミングから１／６０秒、すなわち、通常の露光時間が経過した、実線で示される直線Ｌ２０２におけるタイミングで読み出される。
【０１０１】
すなわち、この場合、従来と同様の読み出しにより、従来と同様の画像が生成されるが、ブレ量は２画素未満という僅かな量である場合のみであるので手振れの影響は極僅かであるので、補正がなくても実質的に視聴に影響しない。
【０１０２】
一方、このブレ量が２画素以上であって、かつ、４画素未満である場合、図１６で示されるように、偶数ラインは適正露光となるように、直前の読み出しタイミングとなる実線で示される直線Ｌ２１０の直後のタイミングとなる直線Ｌ２１１におけるタイミングで、図中の上から順次リセットされ、それぞれのライン上の画素において適切な露光時間が経過した後、読み出される。すなわち、偶数ライン上の画素は、リセットから通常の露光時間が経過した後、読み出されるように撮像がなされる。
【０１０３】
また、図１６で示されるように、奇数ラインについては、直線Ｌ２１１で示される、偶数ラインの"直前の読み出し時刻"の直後にリセットがなされると、適正露光時間の略半分の時間が経過する直線Ｌ２１２で表されるタイミングにおいて、１回目の読み出し時刻とされる。さらに、１回目の読み出しがなされた直後の、点線Ｌ２１３で示されるタイミングにリセットがなされると、再び、適正露光時間の略半分の時間が経過する、実線Ｌ２１４で示されるタイミングで、２回目の読み出しがなされる。すなわち、奇数ラインの画素については、適正露光時間内で、リセットと読み出しがそれぞれ略等間隔で２回実行される。
【０１０４】
このように撮像されると、このフレーム内の偶数ラインの画素からなる画像については、従来と同様の露光時間でリセットと読み出しが行われるので、従来と同様の画像が生成される。つまり、ブレ量が２画素乃至４画素程度のブレた画像が撮像される。
【０１０５】
一方、奇数ラインの画素からなる画像については、適正露光時間（従来の露光時間）の半分の時間しか露光していないので、ブレ量も半分となり、１画素乃至２画素程度のブレしかない画像となる。ただし、奇数ラインの画素からなる画像は、露光時間が半分であり、２倍にゲインアップする必要があるが、これによりノイズも２倍となるため、多少ノイズのある画像となる。
【０１０６】
この結果、偶数ラインの画素からなるブレのある画像と、奇数ラインの画素からなるノイズはあるがブレのない画像（奇数ライン）とが合成されることで、ある程度ブレを抑え、かつ、ある程度ノイズを抑えた画像を生成することが可能となる。
【０１０７】
さらに、ブレ量が４画素以上である場合、図１７で示されるように、偶数ラインの画素は、適正露光となるように、実線Ｌ２３０で示される直線の読み出しタイミングの直後の、点線Ｌ２３１で示されるタイミングでリセットがなされると、適正露光時間が経過する、実線Ｌ２３８で示されるタイミングで、偶数ラインに属する画素の画素データが読み出される。
【０１０８】
一方、奇数ラインの画素については、ブレ量が２画素乃至４画素である場合と同様の手法で、適正露光時間にリセットと読み出しがそれぞれ略等間隔で４回実行される。すなわち、奇数ラインに属する画素については、直線Ｌ２３１で示される、偶数ラインの"直前の読み出し時刻"の直後にリセットがなされると、適正露光時間の略１／４の時間が経過する実線Ｌ２３２で表されるタイミングにおいて、１回目の読み出し時刻とされる。さらに、１回目の読み出しがなされた直後の、点線Ｌ２３３で示されるタイミングにリセットがなされると、再び、適正露光時間の略１／４の時間が経過する、実線Ｌ２３４で示されるタイミングで、２回目の読み出しがなされる。以下、同様に、２回目の読み出しが成された直後の点線Ｌ２３５のタイミングにリセットがなされると、適正露光時間の略１／４の時間が経過する実線Ｌ２３６で表されるタイミングにおいて、３回目の読み出し時刻とされる。さらに、３回目の読み出しがなされた直後の、点線Ｌ２３７で示されるタイミングにリセットがなされると、再び、適正露光時間の略１／４の時間が経過する、実線Ｌ２３８で示されるタイミングで、４回目の読み出しがなされる。
【０１０９】
従って、偶数ラインの画素については、従来と同様にリセットがされた後、適正露光時間が経過した後、画素データが読み出されるので、従来と同様の画像、すなわち、ブレ量が４画素程度のブレた画像が撮像される。一方、奇数ラインの画素については、従来の露光時間である適正露光時間の略１／４ずつの露光時間であるので、ブレ量が１／４程度の、すなわち、ブレ量が１画素程度のブレの画像が撮像されることになる。ただし、露光時間が略１／４であるので、４倍にゲインアップする必要があるが、これによりノイズも４倍となり、多少ノイズのある画像となる。
【０１１０】
この結果、偶数ラインの画素により撮像されるブレのある画像と、奇数ラインの画素により撮像されるノイズはあるがブレの少ない画像とを合成することで、ブレを抑え、かつ、ノイズを抑えた画像を生成することが可能となる。
【０１１１】
尚、以降においては、図１５を参照して説明したように偶数ラインの画素、および奇数ラインの画素がいずれも適正露光時間だけ露光されて読み出される処理を、等倍読み出し処理と称するものとする。また、図１６を参照して説明した偶数ラインの画素により適正露光時間だけ露光されるのに対して、奇数ラインの画素が、適正露光時間に対して略半分の露光時間で２回リセットと読み出しを繰り返す処理を、奇数ラインの偶数ラインに対する２倍読み出し処理と称するものとする。さらに、図１７を参照して説明した偶数ラインの画素により適正露光時間だけ露光されるのに対して、奇数ラインの画素が、適正露光時間に対して略１／４の露光時間で４回リセットと読み出しを繰り返す処理を、奇数ラインの偶数ラインに対する４倍読み出し処理と称するものとする。
【０１１２】
さらに、奇数ラインの画素は、例えば、偶数ラインにおける適正露光時間内であれば、適正露光時間の略１／４よりも短い露光時間に設定して、リセットと読み出しを４回以上繰り返すようにしてもよい。したがって、適正露光時間内に、Ｎ回等間隔でリセットと読み出しが繰り返される処理は、奇数ラインの偶数ラインに対するＮ倍読み出し処理と称されるものとする。
【０１１３】
しかしながら、例えば、適正露光時間を８分割して、８回のリセットと読み出しをそれぞれ繰り返すようにした場合、例えば、８回読み出すとき、読み出されるフレーム数は、６０×８＝４８０ｆｐｓで読み出すことを意味する。従って、このような高速読み出しがなされると、消費電力が大きくなるので、消費電力の観点からも、リセットと読み出しを繰り返す回数は、ある程度の回数に制限されることになる。
【０１１４】
また、上述した奇数ラインの偶数ラインに対する２倍読み出し処理、または、４倍読み出し処理を実行する場合、それぞれのデータの読み出し量は、偶数ラインの画素の読み出し量にける２倍量および４倍量となる。しかしながら、このようにデータ量が多すぎて、転送速度が物理的に限界を超えてしまうような場合、奇数ラインの各画素データの語長を短くしてデータ量を削減するようにしてもよい。
【０１１５】
具体的な例としては、偶数ラインの各画素データの語長が１２ビット（値が０．０乃至１．０の間を４０９６分割した刻みで量子化されたデータ）の場合、等倍読み出し処理の場合、奇数ラインの各画素データの語長も１２ビットとする。しかしながら、２倍読み出し処理がなされる場合、奇数ラインの画素データについては、奇数ラインの各画素データの語長は１０ビット（値が０．０乃至１．０の間を１０２４分割した刻みで量子化されたデータ）程度としてもよい。また、４倍読み出し処理がなされる場合、奇数ラインの各画素データの語長は８ビット（値が０．０乃至１．０の間を２５６分割した刻みで量子化されたデータ）程度としてもよい。
【０１１６】
従って、適正露光時間内におけるブレ量が予測され、予測されたブレ量に応じて、奇数ラインのリセットと読み出しの回数Ｎが特定される。そして、特定された回数Ｎに基づいて、Ｎ倍読み出し処理が実行される。この回数Ｎは、ブレ量に依存し、適応的に切り替えられる。そして、偶数ラインに属する画素により撮像されるブレのある画像と、奇数ラインに属する画素により撮像される、ノイズはあるがブレのない画像（奇数ライン）とが合成されることで、ブレとノイズがバランスよく抑制された画像を生成することが可能となる。
【０１１７】
＜イメージセンサより読み出すタイミングを調整し、フレームメモリを省略する手法＞
ここで、図１８を参照して、ローリングシャッタ現象を抑制して、動画をスタビライズするための従来の手法を説明する。
【０１１８】
図８等を参照して説明したように、カメラなどの撮像装置に組み込まれたジャイロセンサ（図示省略）のデータ、または、画像解析により検出される動きのデータを利用することで、次の１Ｈ後の時間において読み出すラインが決定される。そして、例えば、図１８の実線Ｌ２５１（またはＬ２５３）で示されるタイミングで、その決定されたラインの画素が順次読み出されることで、ローリングシャッタ現象を補正して、動画における被写体をフレーム内でスタビライズしていた。
【０１１９】
このような処理を実現させるべく、従来においては、1080ラインよりも多めのラインの画素データが読み出され、一旦、フレームメモリに格納された後、太い実線Ｌ２５２（またはＬ２５４）で示されるタイミングでフレームメモリから格納された画素データが読み出されていた。尚、この太い実線Ｌ２５２，Ｌ２５４は、ローリングシャッタ現象を補正して、動画をスタビライズするために読み出すべきラインの画素を読み出すタイミングを示している。
【０１２０】
一方、本技術においては、カメラなどの撮像装置に組み込まれたジャイロセンサ（図示省略）のデータ、または、後述するように画像解析により検出される動きのデータを利用することで、次の１Ｈ後の時間において読み出すラインが決定される。そして、読み出しが決定されたラインの画素データが、イメージセンサから読み出される。
【０１２１】
または、現在画素データが読み出されたラインの画素に対して、次のラインが読み出されるまでの時間が計算され、その時間が来るまで、次のラインが読み出されない。
【０１２２】
このように、イメージセンサの動き（正確には、次の１Ｈ時間内におけるイメージセンサに投影される静止被写体の手振れによる動き）に基づき、読み出すラインが決定される、または、読み出すタイミングが変えられることで、ローリングシャッタ現象が補正されて、動画がスタビライズされている。
【０１２３】
換言すれば、イメージセンサ１１の各画素（受光素子のキャパシタ）が、フレームメモリの代用をしている。すなわち、従来、フレームメモリで画素データを読み出すタイミング調整をしていたのに対し、本技術においてはイメージセンサ１１の各画素（受光素子のキャパシタ）が画素データを読み出すタイミングを調整している。
【０１２４】
より詳細には、図１９で示されるように、実線Ｌ２７１で画素データが順次読み出されると、その直後の点線Ｌ２７２で示されるタイミングにおいて、リセットがなされる。さらに、リセットがなされると、実線Ｌ２７３で示されるタイミングで、次のフレームの画素データが読み出される。さらに、その直後である、点線Ｌ２７４のタイミングにおいて、リセットがなされる。
【０１２５】
このような処理により、イメージセンサ１１の各画素がフレームメモリの役目を果たしており、このため、フレームメモリを利用する必要がなくなり、結果としてコストを低減することが可能となる。
【０１２６】
尚、例えば、ｙ＝ｙ１のライン、および、ｙ＝ｙ２のラインでは、図１９で示されるように、露光時間（図中の矢印の長さ）が異なる。そこで、後述するように、各ラインのリセットの時間と読み出し時間の差に逆比例する係数を乗じることで、各ラインの画素データのゲインを調整するという補正が必要となる。
【０１２７】
＜手振れとパンに対する補正動作を合成した動作と、フレームメモリを省略する手法を併用する際の注意点＞
次に、ブレとパンに対する補正動作を合成した動作と、フレームメモリを省略する手法を併用する際の注意点について説明する。
【０１２８】
図１６では、偶数ラインの読み出しタイミングは直線的（時間軸に対するｙ軸の位置が比例関係）であるとして説明していた。
【０１２９】
しかしながら、フレームメモリを利用しない構成とした場合、図２０の実線Ｌ３０１乃至Ｌ３０３で示されるように、一般的には、偶数ラインの読み出し時刻は曲線状に変化する。従って、奇数ラインの画素について、偶数ラインの適正露光時間に対して、例えば、２倍読み出しの場合、適正露光時間の略半分の時間間隔で２回のリセットと読み出しが実行される。そこで、２倍読み出し処理については、偶数ラインの画素の直前の読み出し時刻と今回の読み出し時刻とを２分割し、その２分割される時間間隔で、リセットと読み出しを実行することにより、偶数ラインの読み出し回数に対して、２倍である２回のリセットと読み出しを奇数ラインにおいて実行するものと考える。
【０１３０】
このように考えた場合、２倍読み出し処理のとき図２１で示されるように、奇数ラインの読み出し時刻は、曲線である偶数ラインの前後する読み出し時刻を２分割することで求められる。例えば、図２１で示されるように、奇数ラインであるｙ＝ｙ３のラインに属する画素であって、時刻ｔ２の画素Ｐ１の場合、その前後のタイミングにおける偶数ラインの読み出し時刻は、実線Ｌ３２３，Ｌ３２５のそれぞれにおける画素Ｐ１に対応する時刻ｔ０と時刻ｔ１であるものとする。この場合、奇数ラインであるｙ＝ｙ３のライン上の画素Ｐ１は、これら２つの時刻ｔ０，ｔ１の中間点である時刻ｔ２で読み出せばよい。
【０１３１】
しかしながら、時刻ｔ２において、偶数ラインの読み出し時刻ｔ１は、未定であり、画素Ｐ１に対応する偶数ライン上の画素の読み出しは時刻ｔ１を利用して時刻ｔ２を特定することはできない。すなわち、未来の手振れによるイメージセンサの動きは予測できないので、未来の偶数ラインの読み出し時刻ｔ１を特定できず、結果として、奇数ラインであるｙ＝ｙ３のライン上の画素Ｐ１の読み出し時刻ｔ２を特定することはできない。
【０１３２】
尚、図２１においては、実線Ｌ３２１，Ｌ３２３，Ｌ３２５が、偶数ラインおよび奇数ラインに属する画素データの読み出し時刻を表しており、実線Ｌ３２２，Ｌ３２４が奇数ラインに属する画素データの読み出し時刻を表している。図２１においては、実線Ｌ３２１，Ｌ３２３，Ｌ３２５のそれぞれの間隔の２等分した位置に、実線Ｌ３２２，Ｌ３２４が配置されている。
【０１３３】
以上のことから、奇数ラインの画素データの読み出し時刻については、直前の偶数ラインの画素データの読み出し時刻に基づいて近似により求める。
【０１３４】
より詳細には、図２１を参照した説明においては時間方向に２分割することで奇数ラインの画素データの読み出し時刻求めていたが、未来の偶数ラインにおける読み出し時刻を特定することができないので、空間方向に２分割する近似により、奇数ラインにおける読み出し時刻を求める。
【０１３５】
すなわち、例えば、図２２で示されるように、時刻ｔ３であるとき、実線Ｌ３４２におけるｙ＝ｙ４までの偶数ラインの画素データが読み出されている。したがって、時刻ｔ３以降は、未来であり、時刻ｔ３の時点では未定である。このとき、時刻ｔ３を含む、現在のフレームの偶数ラインの読み出し時刻に対して、１だけ過去のフレームから現在のフレームの読み出し時刻を示す実線Ｌ３４１を延長する点線Ｌ３５１を考える。
【０１３６】
すなわち、この点線Ｌ３５１は、１つ過去のフレームの偶数ラインの画素データの読み出し時刻を示す実線Ｌ３４１の仮想的な延長線である。したがって、現在のフレームの偶数ラインの画素データの読み出し時刻ｔ３に対応するライン（ｙ＝ｙ４）と、１つ過去のフレームの偶数ラインの画素データの読み出し時刻の仮想的な延長線の時刻ｔ３に対応するライン（ｙ＝ｙ５）との中間地点となる図中の黒四角で示される画素Ｐ２１のライン（ｙ＝（ｙ４＋ｙ５）／２）を、時刻ｔ３における奇数ラインの読み出す画素データのラインとして近似する。
【０１３７】
以上の処理により、現在のフレームの偶数ラインの読み出し時刻を表す実線Ｌ３４２よりもｙ軸の正の空間における読み出し時刻を算出することが可能となる。尚、実線Ｌ３４１，Ｌ３４３についても同様である。
【０１３８】
一方、現在のフレームの偶数ラインの読み出し時刻のよりも上方（ｙ軸の負の方向）についても同様の手法が可能である。
【０１３９】
すなわち、図２３に示すように、現在の時刻が時刻ｔ４である場合、偶数ラインの画素データの読み出し時刻を示す実線Ｌ３４２上の時刻ｔ４までのラインの画素データが読み出されているが、時刻ｔ４以降については、未来であり、時刻ｔ４においては未定である。
【０１４０】
ここで、時刻ｔ４を含む、現在のフレームの偶数ラインの画素データの読み出し時刻に対して、現在のフレームから１つ未来のフレームの読み出し時刻を示す実線Ｌ３４２に対して、未来のフレームの最上位のラインへの移動量（図２３の上向き点線矢印）だけ加算した点線Ｌ３７１を考える。
【０１４１】
この点線Ｌ３７１を求めることができれば、現在までの偶数ラインＬ３４２を合わせて利用することで、奇数ラインの画素データを読み出す時刻を求めることができる。しかしながら、時刻ｔ４においては、図２３の上向き点線矢印は未来の事象であり、その大きさは未知の値である。従って、現在のフレームの偶数ラインの読み出し時刻の実線Ｌ３４２よりもｙ軸の正の方向のラインにおける読み出し時刻と同様にして求めることはできない。
【０１４２】
そこで、現在のフレームの始まる時刻において、次のフレーム（１つ未来のフレーム）における"パンとブレの割合"を現在の偶数ラインにおける画素データの読み出し時刻を表す実線Ｌ３４２に加算し、点線Ｌ３７１を求める。
【０１４３】
尚、この"パンとブレの割合"は、外部より供給される情報であり、従来からある既知の技術（制御方法）をもって取得することができる値であるので、その説明は、簡単なものとする。
【０１４４】
すなわち、例えば、過去のイメージセンサの動きと極端に違う場合は、撮像者の意図した動き（つまりパン）であるとして、パンの割合を大きくし、逆に、過去のイメージセンサの動きと似たような動きである場合は、撮像者の意図しない動き（手振れ）であるとして、ブレの割合を大きくする。
【０１４５】
また、"パンとブレの割合"の他の制御の方法としては、イメージセンサの現在のフレームの読み出し位置が、イメージセンサ１１の端部に近づいた場合、次のフレームで読み出そうとする位置がイメージセンサ１１の領域をはみ出してしまう可能性があるので、パンの割合を大きくする。このようにパンの割合を大きくすれば、強制的にｙ＝ｙ０から1080ライン分が読み出されるような位置にすることが可能となる。逆に、イメージセンサの中央部分を読み出している場合、ブレの割合を大きくする。
【０１４６】
一方、図２４で示されるように、イメージセンサの動きはパンであると仮定したときの、１つ未来のフレームの偶数ラインの読み出し時刻を表す一点鎖線Ｌ３９１を求める。また、図２４で示されるように、イメージセンサの動きはブレであると仮定したときの、１つ未来のフレームの偶数ラインの読み出し時刻を表す二点鎖線Ｌ３９２を求める。
【０１４７】
すなわち、イメージセンサの動きが完全にパンである場合、図１１および図１２を参照して説明したように、現在のフレームの読み出す時刻を表す点線Ｌ３７１にかかわらず、１つ未来のフレームの始まりの時刻においては、ｙ＝ｙ０のラインを読み出す。そこで、現在のフレームの始まりの時刻においてｙ＝ｙ０−１０８０であり、現在のフレームの最後の時刻（つまり、１つ未来のフレームの始まりの時刻）においてｙ＝ｙ０である一点鎖線Ｌ３９１が求められる。すなわち、一点鎖線Ｌ３９１は、イメージセンサの動きがパンであると仮定したときの、１つ未来のフレームの偶数ラインの読み出し時刻の仮想的な延長線である。
【０１４８】
また、イメージセンサの動きが完全に手振れによるブレである場合、図８および図９を参照して説明したように、現在のフレームの読み出し曲線の最後に対して１０８０ライン上のラインが、１つ未来のフレームの始まりのラインとなる。そこで、現在のフレームの偶数ラインの読み出し時刻を表す点線Ｌ３７１よりも常に１０８０ラインだけ上のラインを表す二点鎖線Ｌ３９２が求められる。すなわち、二点鎖線Ｌ３９２は、イメージセンサの動きは手振れによるブレであると仮定したときの、１つ未来のフレームの偶数ラインの読み出し時刻の仮想的な延長線である。
【０１４９】
この一点鎖線Ｌ３９１と二点鎖線Ｌ３９２とを用いて、求められたパンと手振れの割合を用いて案分することで、１つ未来のフレームの偶数ラインの読み出し時刻の仮想的な延長線である点線Ｌ３７１が求められる。尚、"パンとブレの割合”が、完全にパンである場合、点線３７１は、一点鎖線Ｌ３９１と一致する。逆に、"パンとブレの割合”が、完全に手振れによるブレである場合、点線Ｌ３７１は、二点鎖線Ｌ３９２と一致する。
【０１５０】
このようにして点線Ｌ３７１が求められることにより、例えば、図２５の時刻ｔ４においては、イメージセンサの動きがパンであると仮定したときの、１つ未来のフレームの偶数ラインの読み出し時刻の仮想的な延長線上のラインがｙ＝ｙ６となる画素Ｐ１３が求められる。また、イメージセンサの動きは手振れであると仮定したときの、１つ未来のフレームの偶数ラインの読み出し時刻の仮想的な延長線上のラインがｙ＝ｙ７となる画素Ｐ１１が求められる。このとき、１つ未来のフレームの偶数ラインの読み出し時刻の仮想的な延長線である点線Ｌ３７１上の画素Ｐ１２のラインｙ＝ｙ８が、画素Ｐ１１，Ｐ１３におけるラインｙ＝ｙ６，ｙ７をパンと手振れの割合で案分した画素Ｐ１２のラインｙ＝ｙ８として求められる。
【０１５１】
このようにして、１つ未来のフレームの偶数ラインの読み出し時刻の仮想的な延長線である点線Ｌ３７１を決定した後、現在のフレームの偶数ラインの読み出し時刻の実線Ｌ３４２よりもｙ軸の負の方向のラインについての手法と同様に算出することができる。すなわち、現在のフレームの偶数ラインの読み出し時刻が時刻ｔ４であるラインｙ＝ｙ９と、１つ未来のフレームの偶数ラインの読み出し時刻の仮想的な延長線の時刻ｔ４に対応するラインｙ＝ｙ８との中間地点となる黒丸で示される画素Ｐ２２のラインｙ＝（ｙ８＋ｙ９）／２が、時刻ｔ４における奇数ラインの画素データの読み出しラインとなる。
【０１５２】
尚、上記説明では、奇数ラインの読み出し時刻について、偶数ラインの直前の読み出し時刻と今回の読み出し時刻の間を２分割して、２回のリセットと読み出しを行う」場合についての説明であったが、奇数ラインについて、偶数ラインの直前の読み出しと今回の読み出しの間を４分割して、４回のリセットと読み出しを行う４倍読み出し処理の場合についても同様である。
【０１５３】
＜撮像装置に供給される信号について＞
以降において撮像装置の構成例について説明するにあたり、撮像装置の動作の制御に必要とされるクロックの構成と、撮像装置に入力される信号について説明する。
【０１５４】
例えば、図１１を参照して説明した場合においては、１／６０秒の間に、１０８０ライン未満の画素データが読み出されることになるが、一方で、図１２を参照して説明した場合においては、１０８０ライン以上の画素データが読み出されている。そこで、どちらの場合にも対応できるように、通常の１／（６０×１０８０）秒で１ライン分の画素データが読み出されるよりも高速に動作させる必要がある。
【０１５５】
そこで、図２６で示されるように、（６０×１０８０）ＨｚのクロックclockHと共に、それよりも高速なクロックclockHMを発生するクロック信号発生部（図示せず）が設けられている。したがって、撮像装置においては、常時、クロックclockH，clockHMが発生されて、供給されることを前提とする。
【０１５６】
したがって、例えば、イメージセンサ１１の各画素のリセットや読み出しは、クロックclockHMに同期して実行される。ただし、最終的に、１フレームの画像を作成するに当たって、クロックclockHに同期させる必要がある。尚、図２６においては、Ｈの値は１０８０であり、例えば２０％余裕をもたせるために、HMの値は１０８０×１．２程度としている。
【０１５７】
また、本技術においては、絶対時刻も必要であるので、クロックclockHMに同期して、１ずつインクリメントしていく絶対時刻absoluteTimeというデータもクロック信号発生部により発生されるものとする。
【０１５８】
さらに、現在の時刻に対応するライン番号も必要であるので、クロックclockHMに同期して、１ずつインクリメントされていくライン番号curHM（１／６０秒ごとに０にリセットされる）も、図示せぬクロック信号発生部により発生されるものとする。
【０１５９】
したがって、図２６においては、上からクロックclockH，clockHM、ライン番号curHM、および絶対時刻absoluteTimeが示されている。また、Hは、この例においては、1080であり、MHは、H×1.2であるものとするが、それ以外の値であってもよい。
【０１６０】
図２７で示されるように、本技術を適用したイメージセンサを備えた撮像装置１０１には、図２６を参照して説明したクロックclockH，clockHM、ライン番号curHM、および絶対時刻absoluteTimeに加えて、さらに、適正露出時間（単位：秒）の情報が供給される。この適正露出時間（単位：秒）は、例えば、一般的な露出計等（図示せず）より求められるものである。
【０１６１】
さらに、図２７で示されるように、この撮像装置１０１には、WS×HS個の画素（受光素子）からなる上述したイメージセンサ１１が設けられており、各画素（受光素子）において図示せぬレンズを介して被写体からの光Ｑが入射され、光電変換が行われる。このとき、上述した一連の処理により、撮像装置１０１からは、ローリングシャッタ現象が補正せれ、かつ、ブレが抑制された動画が出力される。
【０１６２】
＜本技術を適用したイメージセンサを備えた撮像装置の構成例＞
次に、図２８を参照して、上述した本技術を適用したイメージセンサを備えた撮像装置の構成例について説明する。
【０１６３】
撮像装置１０１は、制御部（controller）１２１、タイミング制御部（Reset and Readout Timing block）１２２、垂直制御部（Computing Line Corresponding to Start Time block）１２３、水平制御部（Computing Pixel Corresponding to Start Time block）１２４、イメージセンサ（Image Sensor）１１、パラレルシリアル変換部（Ｐ／Ｓ）１２５、乗算部１２６、フレームメモリ（Frame Memory）１２７、マッチング部（Matching）１２８、動き検出部（Comp Delta MV）１２９、ラインメモリ（Line Memory）１３０、データセットメモリ（Data Set Memory）１３１、および補間部（Interpolation）１３２を備えている。
【０１６４】
制御部１２１は、撮像装置１０１の動作の全体を制御する。より詳細には、制御部１２１は、タイミング制御部１２２、垂直制御部１２３、および水平制御部１２４の動作を制御する。尚、制御部１２１の詳細な動作については、図２９を参照して詳細を後述する。
【０１６５】
垂直制御部１２３は、制御部１２１により制御され、動き検出部１２９より供給されてくる画素毎の動きの情報に基づいて、リセットすべき垂直方向の画素位置、および読み出すべき垂直方向の画素位置を特定する情報をタイミング制御部１２２およびデータセットメモリ１３１に供給する。尚、垂直制御部１２３の動作については、図３０を参照して詳細を後述する。
【０１６６】
タイミング制御部１２２は、制御部１２１により制御され、垂直制御部１２３より供給されてくるリセットすべき垂直方向の画素位置、および読み出しすべき垂直方向の画素位置を特定する情報に基づいて、イメージセンサ１１の各画素についてリセット、または読み出しを制御する。また、タイミング制御部１２２は、リセット、および読み出しのタイミングの情報に基づいて、画素単位の露光時間の差異を調整するための係数を乗算部１２６に供給する。さらに、タイミング制御部１２２は、リセット、および読み出しのタイミングの情報をフレームメモリ１２７、およびマッチング部１２８に供給する。尚、タイミング制御部１２２の動作については、図３０を参照して詳細を後述する。
【０１６７】
イメージセンサ１１は、タイミング制御部１２２より供給されてくる各画素の垂直方向に画素位置毎のタイミングの情報に基づいて、リセットおよび読み出しを実行することで、所定の露光時間において、光電変換により生成された画素データをパラレル信号としてパラレルシリアル変換部（Ｐ／Ｓ）１２５に供給する。尚、イメージセンサ１１の構成の詳細については、図３１を参照して後述する。
【０１６８】
水平制御部１２４は、制御部１２１により制御され、動き検出部１２９より供給されてくる画素毎の動きの情報に基づいて、読み出しすべき水平方向の画素位置を特定する情報をパラレルシリアル変換部１２５およびデータセットメモリ１３１に供給する。尚、水平制御部１２４の動作については、図３０を参照して詳細を後述する。
【０１６９】
パラレルシリアル変換部（Ｐ／Ｓ）１２５は、イメージセンサ１１よりパラレル信号として供給されてくる画素データをシリアル信号に変換すると共に、水平制御部１２４からの水平方向の画素位置を特定する情報に基づいて、読み出すべき画素位置の画素データのみを乗算部１２６に供給する。尚、パラレルシリアル変換部１２５の構成および動作については、図３１を参照して詳細を後述する。
【０１７０】
乗算部１２６は、タイミング制御部１２２より供給されてくる、画素単位の露光時間の差異を調整するための係数を、シリアル信号に変換された画素データにそれぞれ乗じて、露光時間を調整し、フレームメモリ１２７、マッチング部１２８、およびラインメモリ１３０に供給する。尚、乗算部１２６の構成および動作については、図３１を参照して詳細を後述する。
【０１７１】
フレームメモリ１２７は、乗算部１２６より供給されてくる画素データをフレーム単位で一時的に記憶して、適宜マッチング部１２８に供給する。尚、フレームメモリ１２７の動作の詳細については、図３２を参照して後述する。
【０１７２】
マッチング部１２８は、乗算部１２６より供給されてくる今現在のフレームの画素データと、フレームメモリ１２８より供給されてくる１つ前のフレームの画素データとを用いて、画素単位でマッチングし、マッチング結果を動き検出部１２９に供給する。尚、マッチング部１２８の動作の詳細については、図３２を参照して後述する。
【０１７３】
動き検出部１２９は、マッチング部１２８のマッチング結果に基づいて、画素単位の動きを検出し、検出結果を垂直制御部１２３、および水平制御部１２４に供給する。尚、動き検出部１２９の動作の詳細については、図３２を参照して後述する。
【０１７４】
補間部１３２は、ラインメモリ１３０に格納されているフレーム周波数と同様のクロックclockHより高速のクロックclockHM単位で読み出される画素データを、データセットメモリ１３１に記憶されているデータセットに基づいて読み出し、クロックclockH単位の画素データを補間生成し、出力する。尚、補間部１３２の動作の詳細については、図３３を参照して後述する。
【０１７５】
＜制御部の入力信号および出力信号について＞
次に、図２９を参照して制御部１２１の入力信号および出力信号について説明する。
【０１７６】
制御部１２１は、図示せぬ露出計等より供給される周辺外光の情報に基づいた、適正露光時間の信号が入力される。また、制御部１２１は、動き検出部１２９より供給されてくる水平移動量deltaWperTwoClockHMおよび垂直移動量deltaHperTwoClockHMの信号が入力される。
【０１７７】
水平移動量deltaWperTwoClockHMは、現在の時刻において、クロックclockHMの２サイクル分の時間後に、どれだけ右方向（ｘ軸方向）の画素を読み出せば良いかを示す画素数を表すものである。
【０１７８】
垂直移動量deltaHperTwoClockHMは、現在の時刻において、クロックclockHMの２サイクル分の時間後に、どれだけ下方（ｙ軸方向）のラインを読み出せば良いかを示すライン数を表すものである。
【０１７９】
なお、図１９乃至図２１を参照して説明したように、１Ｈの時間（＝クロックclockH＝１に対応する時間）ごとに動きを検出して読み出すラインが決定されるが、動き検出部１２９においては、クロックclockHMの２サイクル分の時間ごとに動きが検出されて読み出すべきライン（およびｘ軸方向の画素位置）が決定されている。これは、後述するように、偶数ラインと奇数ラインとが、クロックclockHMの偶数サイクル目と奇数サイクル目とで交互に読み出されるからであり、処理もクロックclockHMの２サイクル分の時間ごとに行われるからである。
【０１８０】
さらに、垂直移動量deltaHperTwoClockHMは、現在読み出された垂直方向（ｙ座標）のラインYcurrentに対して、クロックclockHMの２サイクル分の時間後に読み出すべきラインYnextを示している。すなわち、Ynext＝Ycurrent＋deltaHperTwoClockHMである。
【０１８１】
水平移動量deltaWperTwoClockHMは、現在読み出した水平方向（Ｘ座標）の画素位置Xcurrentに対して、クロックclockHMの２サイクル分の時間後に読み出すべき画素位置Xnextを示している。すなわち、Xnext＝Xcurrent＋deltaWperTwoClockHMである。
【０１８２】
また、手振れによるブレのない（例えば、三脚に固定した）撮像装置１０１で動画を撮像した場合、図５，図６を参照して説明したように、常に、イメージセンサ１１内の中央部分のW×H画素＝1980×1080画素（固定された領域）が取り出されることになる。水平方向のx座標に着目すると、いずれのラインについても常に同じ座標の値から始まって1980画素を読み出すので、X＝Xcurrentである。一方、ｙ座標について着目すると、１Ｈごと（クロックclockHの１サイクル時間ごと）に次のラインが読み出される。
【０１８３】
すなわち、クロックclockHMの２サイクルごとに、2×H/HMだけ下がったラインが読み出されることになる。従って、Ynext＝Ycurrent＋2×H/HMであり、垂直移動量deltaHperTwoClockHM＝2×H/HMである。
【０１８４】
以上をまとめると、手振れによるブレのない（例えば、三脚に固定した）カメラで動画を撮像した場合、水平移動量deltaWperTwoClockHM＝0.0、かつ、垂直移動量deltaHperTwoClockHM＝2×H/HMとなるような処理が、イメージセンサ１１においては行われる。ここで、水平移動量deltaWperTwoClockHMが0であるのに対し、垂直移動量deltaHperTwoClockHMの値は0でない。すなわち、例えば、手振れによるブレによりイメージセンサ１１に投影されている投影像が、クロックclockHMの２サイクル分の間に、０．１画素左方向に、かつ、０．２画素下方向にずれるのであれば、水平移動量deltaWperTwoClockHM＝−０．１であり、垂直移動量deltaHperTwoClockHM＝（2×H/HM）＋０．２である。
【０１８５】
制御部１２１は、適正露光時間、水平移動量deltaWperTwoClockHM、および垂直移動量deltaHperTwoClockHMの入力を受け付ける。また、制御部１２１は、これらの入力に基づいて、現在フレーム偶数ライン露光時間exposure time for current image capt、現在奇数フレーム読み出し回数number of readout per frame for current motion capture、現在フレーム奇数ライン露光時間exposure time for current motion capture、現在垂直基準位置designated line number which attracts the start of current frame、現在垂直パンブレ割合attractive vertical force for current frame、直前水平基準位置designated pixel number which attracts the start of previous frame、および直前水平パンブレ割合attractive horizontal force for previous frameを出力する。
【０１８６】
現在フレーム偶数ライン露光時間exposure time for current image captureは、現在フレームの偶数ラインにおける各画素のクロックclockHMを単位時間とした適正露光時間を意味する。すなわち、外部の露出計等より供給される情報である適正露光時間（単位：秒）を（60×HM）倍した値である。現在のフレームの偶数ラインは、この値の示す時間だけ露光されるように制御される。
【０１８７】
現在奇数フレーム読み出し回数number of readout per frame for current motion captureは、直前の偶数ラインの画素データの読み出し時刻と現在の偶数ラインの画素データの読み出し時刻との時間間隔において、奇数ラインの画素データのリセットと読み出しを行う回数を示すものである。ここでは、１，２、または、４のいずれかであるが、それ以外の回数であってもよいものである。
【０１８８】
現在フレーム奇数ライン露光時間exposure time for current motion captureは、現在フレームの奇数ラインにおける各画素のクロックclockHMを単位時間とした適正露光時間を意味する。
【０１８９】
現在垂直基準位置designated line number which attracts the start of current frame、および直前水平基準位置designated pixel number which attracts the start of previous frameは、それぞれイメージセンサ１１内から、画像を構成するW×H画素＝1980×1080画素の領域２１を取り出す際に基準となる左上の画素における垂直方向の位置を特定する現在フレームのｙ座標および直前フレームのｘ座標を表している。つまり、直前水平基準位置designated pixel number which attracts the start of previous frame＝（WS−W）/2であり、現在垂直基準位置designated line number which attracts the start of current frame＝（HS−H）/2である。
【０１９０】
現在垂直パンブレ割合attractive vertical force for current frame、および直前水平パンブレ割合attractive horizontal force for previous frameは、それぞれ現在フレームの垂直方向、および直前フレームの水平方向のパンとブレの割合を示し、いずれも０．０以上１．０以下の値である。それぞれ、この値が、小さければ小さいほど、カメラの動きは手振れによるブレであるとして、補正を強くかける。逆に大きければ大きいほど、カメラの動きはパンであるとして、補正を弱くする。なお、ここで言う補正とは、各フレームの最初の時刻において、1080ラインだけ上のラインを読み出すか、または、強制的にｙ＝ｙ０のラインを読み出すかという事である。水平方向についても同様である。
【０１９１】
＜タイミング制御部、垂直制御部および水平制御部の入力信号および出力信号について＞
次に、図３０を参照して、タイミング制御部１２２、垂直制御部１２３および水平制御部１２４の入力信号および出力信号について説明する。
【０１９２】
まず、垂直制御部１２３について説明する。
【０１９３】
垂直制御部１２３には、制御部１２２より供給される現在垂直基準位置designated line number which attracts the start of current frame、および現在垂直パンブレ割合attractive vertical force for current frame、並びに、動き検出部１２９より供給される垂直移動量deltaHperTwoClockHMがそれぞれ入力される。
【０１９４】
垂直制御部１２３は、これらの入力に基づいて、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frame、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frame、および未来フレーム偶数ライン延長線上垂直座標line corresponding to start time of next frameを出力する。
【０１９５】
直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameは、例えば、図２５を用いて説明した１つ直前のフレームの偶数ラインの読み出し時刻の仮想的な延長線である点線Ｌ３５１の現在の時刻におけるｙ座標の値を表す。
【０１９６】
現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameは、例えば、図２５を用いて説明した現在のフレームの偶数ラインの読み出し時刻を表す実線Ｌ３４２上の現在の時刻におけるｙ座標の値を表す。
【０１９７】
未来フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of next frameは、図２５を用いて説明した１つ未来のフレームの偶数ラインの読み出し時刻の仮想的な延長線である点線Ｌ３７１上の現在の時刻におけるｙ座標の値を表す。
【０１９８】
次に、タイミング制御部１２２について説明する。タイミング制御部１２２には、垂直制御部１２３より直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frame、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frame、および未来フレーム偶数ライン延長線上垂直座標line corresponding to start time of next frameが入力される。
【０１９９】
また、タイミング制御部１２２には、制御部１２１より、現在フレーム偶数ライン露光時間exposure time for current image capt、現在奇数フレーム読み出し回数number of readout per frame for current motion capture、現在フレーム奇数ライン露光時間exposure time for current motion captureが入力される。
【０２００】
さらに、タイミング制御部１２２は、入力された信号に基づいて、イメージセンサ１１の各画素における露光を制御するリセット信号reset[0:HS-1]、および読み出し信号read[0:HS-1]を出力する。さらに、タイミング制御部１２２は、入力された信号に基づいて、偶数ライン係数exposure compensation value for image capture line、奇数ライン係数exposure compensation value for motion capture line[0:3]、現在時刻読み出し偶数ラインpresent read line for image capture、および現在時刻読み出し奇数ラインpresent read line for motion capture[0:3]を、フレームメモリ１２７、マッチング部１２８、およびラインメモリ１３０に出力する。尚、ここで、[0:3]は、[0]乃至[3]を表しており、以降において、[i](i＝0乃至3)とも表記するものとする。
【０２０１】
ここで、リセット信号reset[0:HS-1]は、イメージセンサ１１のWS×HS個の画素（受光素子）の中で、現在の時刻においてリセットすべき垂直方向の位置であるラインを指定する信号である。
【０２０２】
読み出し信号read[0:HS-1]は、イメージセンサ１１のWS×HS個の画素（受光素子）の中で、現在の時刻において読み出すべき垂直方向の位置であるラインを指定する信号である。
【０２０３】
偶数ライン係数exposure compensation value for image capture lineは、現在の時刻において読み出している偶数ラインの画素データに対して、乗算すべき係数を指定しており、各ラインのリセット時刻と読み出し時刻との差に逆比例するゲインの値である。
【０２０４】
奇数ライン係数exposure compensation value for motion capture line[0:3]は、現在の時刻において読み出している奇数ラインの画素に対して、乗算すべき係数を指定している。
【０２０５】
より詳しく述べると、奇数ライン係数exposure compensation value for motion capture line [0]は、奇数ラインについて、偶数ラインの直前の読み出し時刻と現在の読み出し時刻との間隔を４分割した時間間隔で、４回のリセットと読み出しを行う、４倍読み出し処理の場合の４回の中の最初の読み出しを行う奇数ラインの画素に対して、乗算すべき係数である。
【０２０６】
奇数ライン係数exposure compensation value for motion capture line[1]は、奇数ラインについて、偶数ラインの直前の読み出し時刻と現在の読み出し時刻との間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合の２番目の読み出しを行う奇数ラインの画素に対して、乗算すべき係数である。また、奇数ライン係数exposure compensation value for motion capture line[1]は、「奇数ラインについて、偶数ラインの直前の読み出し時刻と現在の読み出し時刻との間隔を２分割した時間間隔で、２回のリセットと読み出しを行う２倍読み出し処理の場合の前半の読み出しを行った奇数ラインの画素に対して、乗算すべき係数である。
【０２０７】
奇数ライン係数exposure compensation value for motion capture line[2]は、奇数ラインについて、偶数ラインの直前の読み出し時刻と現在の読み出し時刻との間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合の３番目の読み出しを行う奇数ラインの画素に対して、乗算すべき係数である。
【０２０８】
奇数ライン係数exposure compensation value for motion capture line[3]は、奇数ラインについて、偶数ラインの直前の読み出し時刻と現在の読み出し時刻の間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合の４番目（最後）の読み出しを行う奇数ラインの画素に対して、乗算すべき係数である。
【０２０９】
また、奇数ライン係数exposure compensation value for motion capture line[3]は、奇数ラインについて、偶数ラインの直前の読み出し時刻と現在の読み出し時刻との間隔を２分割した時間間隔で、２回のリセットと読み出しを行う２倍読み出し処理の場合の後半の読み出しを行う奇数ラインの画素に対して、乗算すべき係数である。
【０２１０】
さらに、奇数ライン係数exposure compensation value for motion capture line[3]は、奇数ラインについて、偶数ラインのリセットと読み出しと同じリセットと読み出しを行う等倍読み出し処理の場合の読み出しを行った奇数ラインの画素に対して、乗算すべき係数である。
【０２１１】
現在時刻読み出し偶数ラインpresent read line for image captureは、イメージセンサ１１のWS×HS個の画素（受光素子）の中で、現在の時刻において読み出した偶数ラインの垂直方向の位置（ｙ座標）を表している。
【０２１２】
現在時刻読み出し奇数ラインpresent read line for motion capture[0:3]は、イメージセンサ１１のWS×HS個の画素（受光素子）の中で、現在の時刻において読み出した奇数ラインの位置（ｙ座標）を表している。
【０２１３】
より詳しく述べると、現在時刻読み出し奇数ラインpresent read line for motion capture[0]は、奇数ラインについて、偶数ラインの画素データの直前の読み出し時刻と現在の読み出し時刻の間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合の４回の中の最初に読み出した奇数ラインの位置（ｙ座標）を表している。
【０２１４】
現在時刻読み出し奇数ラインpresent read line for motion capture[1]は、奇数ラインについて、偶数ラインの画素データの直前の読み出し時刻と現在の読み出し時刻との間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合の２番目の読み出しを行う奇数ラインの位置（ｙ座標）を表している。
【０２１５】
また、現在時刻読み出し奇数ラインpresent read line for motion capture[1]は、「奇数ラインについて、偶数ラインの直前の読み出し時刻と今回の読み出し時刻との間隔を２分割して、２回のリセットと読み出しを行う２倍読み出し処理の場合の前半の読み出しを行った奇数ラインの位置（ｙ座標）を表している。
【０２１６】
現在時刻読み出し奇数ラインpresent read line for motion capture[2]は、奇数ラインについて、偶数ラインの直前の読み出し時刻と現在の読み出し時刻の間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合の３番目の読み出しを行う奇数ラインの位置（ｙ座標）を表している。
【０２１７】
現在時刻読み出し奇数ラインpresent read line for motion capture[3]は、奇数ラインについて、偶数ラインの直前の読み出し時刻と現在の読み出し時刻の間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合の４番目（最後）の読み出しを行った奇数ラインの位置（ｙ座標）を表している。
【０２１８】
また、現在時刻読み出し奇数ラインpresent read line for motion capture[3]は、奇数ラインについて、偶数ラインの直前の読み出し時刻と今回の読み出し時刻の間隔を２分割した時間間隔で、２回のリセットと読み出しを行う２倍読み出し処理の場合の後半の読み出しを行う奇数ラインの位置（ｙ座標）を表している。
【０２１９】
さらに、現在時刻読み出し奇数ラインpresent read line for motion capture[3]は、奇数ラインについて、偶数ラインのリセット時刻と読み出し時刻とを同じ時間間隔でリセットと読み出しを行う等倍読み出し処理の場合の読み出しを行う奇数ラインの位置（ｙ座標）を表している。
【０２２０】
次に、水平制御部１２４について説明する。
【０２２１】
水平制御部１２４には、動き検出部１２９より供給されてくる水平変化量deltaHperTwoClockHM、並びに制御部１２１からの直前水平基準位置designated pixel number which attracts the start of previous frame、および直前垂直パンブレ割合attractive vertical force for previous frameが入力される。
【０２２２】
また、水平制御部１２４は、入力される信号に基づいて、水平方向読み出し開始位置read start pixel、整数水平方向読み出し開始位置read start pixel int、および過去水平方向読み出し開始位置read start pixel pastを出力する。
【０２２３】
水平方向読み出し開始位置read start pixelは、現在の時刻からクロックclockHMの２サイクル分の時間後に読み出す画素位置Xnextの水平方向の座標（ｘ座標）である。水平方向読み出し開始位置read start pixelは、一般的には、少数部がある。
【０２２４】
整数水平方向読み出し開始位置read start pixel intは、整数水平方向読み出し開始位置read start pixelを整数に切り捨てた値である。すなわち、イメージセンサ１１のWS×HS個の画素（受光素子）からの画素データは整数単位で指定して読み出すので、水平方向読み出し開始位置read start pixelの小数点以下の値を切り捨てた整数の値として、整数水平方向読み出し開始位置read start pixel intが必要となる。
【０２２５】
＜イメージセンサ、パラレルシリアル変換部、および乗算部における入力信号と出力信号について＞
次に、図３１を参照して、イメージセンサ１１、パラレルシリアル変換部１２５、および乗算部１２６の構成と、それぞれの構成における入力信号と出力信号について説明する。
【０２２６】
イメージセンサ１１は、タイミング制御部１２２より供給されてくるリセット信号reset[0:HS-1]および読み出し信号read[0:HS-1]に基づいて、それぞれのマトリクス状の情報から対応する位置の画素の画素データを読み出して順次パラレル信号として転送し、パラレルシリアル変換部１２５に供給する。
【０２２７】
パラレルシリアル変換部１２５は、詳細には、図３１で示されるように、パラレルシリアル変換部１２５−１乃至１２５−５から構成されており、イメージセンサ１１より入力されてきた画素データがパラレルシリアル変換部１２５−１乃至１２５−５に入力される。そして、パラレルシリアル変換部１２５−１乃至１２５−５は、それぞれ入力されたパラレル信号からなる画素データをパラレルシリアル変換してシリアル信号として乗算部１２６−１乃至１２６−５に供給する。
【０２２８】
このような動作により、ライン番号curHMの値が偶数である時間（クロックclockHMの１サイクル分の時間）に、１ラインの偶数ラインの画素データが読み出される。この偶数ラインの画素データは、パラレルシリアル変換部１２５−１にパラレル信号として入力される。
【０２２９】
ライン番号curHMの値が奇数である時間（クロックclockHMの１サイクル分の時間）では、奇数ラインのうちの最大で４ライン分の画素データが読み出される。この４ライン分の奇数ラインの画素データは、パラレルシリアル変換部１２５−２乃至１２５−５に、それぞれ、パラレル信号として入力される。
【０２３０】
より詳細には、現在の時刻における、奇数ラインについて、偶数ラインの画素データの直前の読み出し時刻と現在の読み出し時刻の間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合、イメージセンサ１１のWS×HS個の画素（受光素子）から読み出された、４回の読み出し画素データの中の最初の読み出しによる１ライン分（奇数ライン）の画素データが、パラレルシリアル変換部１２５−１にパラレル信号として入力される。
【０２３１】
現在の時刻における、奇数ラインについて、偶数ラインの画素データの直前の読み出し時刻と現在の読み出し時刻との間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合、イメージセンサ１１のWS×HS個の画素（受光素子）から読み出された、４回の読み出し画素データのなかの２番目の読み出しによる１ライン分（奇数ライン）の画素データは、パラレルシリアル変換部１２５−３にパラレル信号として入力される。
【０２３２】
また、現在の時刻における、奇数ラインについて、偶数ラインの画素データの直前の読み出し時刻と今回の読み出し時刻との間隔を２分割した時間間隔で、２回のリセットと読み出しを行う２倍読み出し処理の場合、イメージセンサ１１のWS×HS個の画素（受光素子）から読み出された、２回の読み出し画素データの最初（前半）の読み出しによる１ライン分（奇数ライン）の画素データは、パラレルシリアル変換部１２５−３にパラレル信号として入力される。
【０２３３】
さらに、現在の時刻における、奇数ラインについて、偶数ラインの画素データの直前の読み出し時刻と現在の読み出し時刻との間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合、イメージセンサ１１のWS×HS個の画素（受光素子）から読み出された、４回の読み出し画素データの３番目の読み出しによる１ライン分（奇数ライン）の画素データは、パラレルシリアル変換部１２５−４にパラレル入力される。
【０２３４】
現在の時刻における、奇数ラインについて、偶数ラインの画素データの直前の読み出し時刻と現在の読み出し時刻との間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読み出し処理の場合のイメージセンサ１１のWS×HS個の画素（受光素子）から読み出された、４回の読み出し画素データのなかの４番目（最後）の読み出しによる１ライン分（奇数ライン）の画素データは、パラレルシリアル変換部１２５−５にパラレル信号として入力される。
【０２３５】
また、現在の時刻における、奇数ラインについて、偶数ラインの直前の読み出し時刻と現在の読み出し時刻との間隔を２分割した時間間隔で、２回のリセットと読み出しを行う２倍読み出し処理の場合、イメージセンサ１１のWS×HS個の画素（受光素子）から読み出された、２回の読み出しのなかの２番目（後半）の読み出しによる１ライン分（奇数ライン）の画素データは、パラレルシリアル変換部１２５−５にパラレル信号として入力される。
【０２３６】
さらに、現在の時刻における、奇数ラインについて、偶数ラインのリセット時刻と読み出し時刻とが同じ等倍処理の場合、イメージセンサ１１のWS×HS個の画素（受光素子）から読み出された１ライン分（奇数ライン）の画素データは、パラレルシリアル変換部１２５−３にパラレル入力される。
【０２３７】
これらのパラレルシリアル変換部１２５−１乃至１２５−５に入力された画素データは、遅延部（1 delay）１４１により遅延されて供給される整数水平方向読み出し開始位置read start pixel intの値が示す位置（ｘ座標の位置）から右方向（ｘ座標の正の方向）の画素が１画素ずつシリアル信号として読み出される。読み出されたシリアル信号からなる画素データは、それぞれ乗算部１２６−１乃至１２６−５に供給される。
【０２３８】
乗算部１２６−１は、リセットの時刻と読み出し時刻との差分となる時間に逆比例する偶数ライン係数exposure compensation value for image capture lineを乗じて、偶数ラインデータimg dataとして出力する。
【０２３９】
また、乗算部１２６−２乃至１２６−５は、リセットの時刻と読み出し時刻との差分となる時間に逆比例する奇数ライン係数exposure compensation value for motion capture line[0:3]を乗じて、奇数ラインデータmot data 0、mot data 1、mot data 2、mot data 3としてそれぞれ出力する。
【０２４０】
尚、以降においても、パラレルシリアル変換部１２５−１乃至１２５−５、および乗算部１２６−１乃至１２６−５をそれぞれ区別する必要がない場合、単にパラレルシリアル変換部１２５および乗算部１２６と称するものとし、その他の構成についても同様にする。
【０２４１】
＜フレームメモリ、マッチング部および動き検出部の構成について＞
次に、図３２を参照して、フレームメモリ、マッチング部および動き検出部の入力信号および出力信号について説明する。
【０２４２】
まず、フレームメモリ１２７について説明する。
【０２４３】
フレームメモリ１２７は、圧縮部（shrink）１６１−１乃至１６１−４により圧縮された奇数ラインデータmot data [i]（i＝0乃至3）を記憶する。この際、フレームメモリ１２７は、圧縮部１６１−１乃至１６１−４のそれぞれに対応して入力されるイネーブル信号present read line for motion capture[i]（Write EN[i]）（i＝0乃至3）がそれぞれ有効であることを示す信号である場合、In0端子、In1端子、In2端子、In3端子のそれぞれに入力される、圧縮された奇数ラインデータmot data [i]（i＝0乃至3）を記憶する。また、フレームメモリ１２７は、遅延部（1 delay）１５１により１クロックclockHM分ほど遅延された整数水平方向読み出し開始位置read start pixel int、および絶対時刻absoluteTimeの情報を格納する。
【０２４４】
マッチング部１２８は、マッチング部１２８−１乃至１２８−４より構成され、それぞれが奇数ラインデータmot data [i]（i＝0乃至3）のそれぞれに対応する処理を実行する。より詳細には、マッチング部１２８−１乃至１２８−４は、それぞれに対応してEN端子より入力されるイネーブル信号present read line for motion capture[i]（Write EN[i]）（i＝0乃至3）がそれぞれ有効であることを示す信号である場合、現在読み出されている奇数ラインデータmot data [i]と、伸張部（enlarge）１６２によりフレームメモリ１２７より読み出され、伸張された、対応する過去の奇数ラインデータmot data [i]の入力を受け付ける。マッチング部１２８−１乃至１２８−４は、TGT端子より現在の奇数ラインデータmot data [i]をターゲットデータtarget dataを受け付け、REF端子より伸張部１６２より供給されてくる過去の奇数ラインデータmot data [0:3]を参照データreference dataとすることで、相互のライン上における、相関の高いラインの画素配列の位置をマッチングにより検索する。そして、マッチング部１２８−１乃至１２８−３は、マッチングの検索結果として、垂直方向差分diffH、および水平方向差分diffW、並びに基準時刻baseTimeを動き検出部１２９に供給する。
【０２４５】
動き検出部１２９は、奇数ラインデータmot data [0]乃至mot data [3]のそれぞれについての垂直方向差分diffH、および水平方向差分diffW、並びに基準時刻baseTimeに基づいて、それぞれの水平移動量deltaWperTwoClockHMおよび垂直移動量deltaHperTwoClockHMを動きとして検出し、検出結果を出力する。
【０２４６】
ところで、圧縮部１２８は、入力されてくる画素データを、例えば、１／８程度のデータ量に圧縮し、フレームメモリ１２７に記憶させる。また、伸張部１６２は、フレームメモリ１２７に記憶されている、圧縮された画素データを、例えば、８倍程度のデータ量に伸張する。フレームメモリ１２７に記憶される画素データは、マッチング部１２８が、マッチングに利用するのみであるので、高解像度で、データ量の大きな画像である必要がない。このため、フレームメモリ１２７は、小さな要領のもので事足り、一般的に必要とされるイメージセンサ１１より出力される１フレーム分の画素データを記憶することができるほどの容量は不要である。
【０２４７】
＜データセットメモリ、ラインメモリ、および補間部について＞
次に、図３３を参照して、ラインメモリ１３０、データセットメモリ１３１、および補間部１３２の構成について説明する。
【０２４８】
データセットメモリ（Memory: Write Data Set only when timeHM is even.）１３１は、Data Set端子を介して入力される、過去水平方向読み出し開始位置read start pixel past、水平方向読み出し開始位置read start pixel、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frame、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frame、および、クロックtimeHM（クロックcurHMの遅延部（1 delay）１８１を介した値）を１組にパッキングしたデータセットとして、Write EN端子にイネーブル信号が入力されるとき、記憶する。
【０２４９】
これらデータセットは、後述するようにクロックclockHMの２サイクルに１回更新されるので、クロックtimeHMが奇数のときのみ、記録するように処理される。このデータセットは、クロックclockHMに同期して、現在の時刻において、どのラインのどの画素が読み出されるかを表す情報である。
【０２５０】
次に、ラインメモリ１３０について説明する。
【０２５１】
ラインメモリ１３０は、In 0端子より偶数ラインデータimg dataを受け付け、イメージセンサ１１のWS×HS個の画素（受光素子）の中のどのライン（ｙ座標）のどの位置（ｘ座標）から読み出されたデータであるかという情報、すなわち、現在時刻読み出し偶数ラインpresent read line for image captureおよび整数水平方向読み出し開始位置read start pixel intの遅延部（1 delay）１８２を介した値を、一緒にパッキングして記憶する。また、ラインメモリ１３０は、Write EN 0端子に、現在時刻読み出し偶数ラインpresent read line for image captureが対応するラインである時、有効なデータあるものとみなし、偶数ラインデータimg dataを記憶する。
【０２５２】
また、ラインメモリ１３０は、In 1端子を介して、奇数ラインデータmot data 3を受け付け、イメージセンサ１１のWS×HS個の画素（受光素子）の中のどのライン（ｙ座標）のどの位置（ｘ座標）から読み出されたデータであるかという情報、すなわち、現在時刻読み出し奇数ラインpresent read line for motion capture[3]および整数水平方向読み出し開始位置read start pixel intの遅延部（1 delay）１８２を介した値と一緒にパッキングして、記憶する。さらに、ラインメモリ１３０は、Write EN 1端子に、現在時刻読み出し奇数ラインpresent read line for motion capture[3]が対応するラインである時、有効なデータであるものとみなし、奇数ラインデータmot data 3を記憶する。
【０２５３】
次に、補間部１３２について説明する。
【０２５４】
補間部１３２は、クロックclockHMに同期して、データセットメモリ１３１に記憶されている、どの時刻（上述のtimeHM）に、どのラインのどの画素を読み出せば良いかを示す情報から、クロックclockHに同期した各時刻において、どのラインのどの画素を読み出せば良いかという情報を求める。そして、補間部１３２は、この情報に基づいて、ラインメモリ１３０にアクセスし、対応する偶数ラインデータimg data、および奇数ラインデータmot data 3を用いて、現在のクロックclockHに対応するラインの画素を補間生成し、出力データOut Dataとして出力する。
【０２５５】
＜画像データ出力処理＞
次に、図３４のフローチャートを参照して、撮像装置１０１の画像データ出力処理について説明する。
【０２５６】
ステップＳ１１において、制御部１２１は、図示せぬ露出計などにより測定される撮像領域の適正露出時間の情報を取得する。
【０２５７】
ステップＳ１２において、動き検出部１２９は、適正露光時間中のブレ量を測定する。すなわち、動き検出部１２９は、ライン単位の画素の動きを検出し、検出結果をブレ量として垂直制御部１２３、および水平制御部１２４に出力する。垂直制御部１２３は、ブレ量の情報に基づいて、イメージセンサ１１上の読み出し開始位置の情報を生成してタイミング制御部１２２、およびデータセットメモリ１３１に供給する。データセットメモリ１３１は、供給されてきた水平方向の読み出し開始位置の情報を記憶する。尚、ブレ量となる水平移動量deltaWperTwoClockHMおよび垂直移動量deltaHperTwoClockHMを求める処理については、図７０乃至図７２を参照して、詳細を後述する。
【０２５８】
ステップＳ１３において、タイミング制御部１２２は、イメージセンサ１１上の読み出し開始位置の情報に基づいて、露光時間が適正露光時間となるように偶数ラインに対してリセット信号を供給すると共に、適切なタイミングで読み出し信号を指示して読み出させる。イメージセンサ１１は、この指示に基づいて、偶数ラインについて、リセット信号、および読み出し信号に対応するラインの画素データを出力する。このとき、データセットメモリ１３１は、供給されてきた読み出される画素のラインの座標の情報を記憶する。
【０２５９】
ステップＳ１４において、制御部１２１は、ブレ量に応じて奇数ラインのリセットと読み出しを繰り返す回数を特定し、特定した繰り返し回数、すなわち、等倍読み出し処理、２倍読み出し処理、および４回読み出し処理のいずれかを特定し、その回数を特定する情報をタイミング制御部１２２に供給する。
【０２６０】
より具体的には、ブレ量が２画素未満である場合、タイミング制御部１２２は、等倍読み出し処理を実行するものとし、奇数ラインの画素データが偶数ラインの画素データの読み出し回数と同一である等倍読み出し処理である１回であることを示す情報をタイミング制御部１２２に供給する。
【０２６１】
同様に、ブレ量が２画素以上で、かつ、４画素未満である場合、タイミング制御部１２２は、２倍読み出し処理を実行するものとし、奇数ラインの画素データを偶数ラインの画素データの露光時間を半分にして、リセットと読み出しを２回とする情報をタイミング制御部１２２に供給する。
【０２６２】
さらに、ブレ量が４画素以上である場合、タイミング制御部１２２は、４倍読み出し処理を実行するものとし、奇数ラインの画素データを偶数ラインの画素データの露光時間を１／４にして、リセットと読み出しを４回とする情報をタイミング制御部１２２に供給する。
【０２６３】
このような処理により、タイミング制御部１２２は、イメージセンサ１１上の読み出し開始位置の情報に基づいて、奇数ラインに対して等倍読み出し処理、２倍読み出し処理、および４倍読み出し処理のいずれかとなるようにリセット信号を供給すると共に、適切なタイミングで読み出し信号を指示して読み出させる。イメージセンサ１１は、この指示に基づいて、奇数ラインについて、リセット信号、および読み出し信号に対応するラインの画素データを出力する。
【０２６４】
以上の処理により順次出力される画素データは、パラレルシリアル変換部１２５に供給されて、パラレル信号からシリアル信号に変換されて、乗算部１２６に供給される。乗算部１２６は、タイミング制御部１２２より供給されてくる露光時間を調整する係数を乗じることで、各画素のゲインを調整してフレームメモリ１２７、マッチング部１２８、およびラインメモリ１３０に供給する。尚、偶数ラインおよび奇数ラインのリセットおよび読み出しに係る処理については、図４７乃至図６４を参照してより詳細な処理について後述する。
【０２６５】
ステップＳ１５において、補間部１３２は、データセットメモリ１３１に格納されているデータセットの情報に基づいて、ラインメモリ１３０に記憶されているライン単位の画素データに基づいて、偶数ラインの画素データと奇数ラインの画素データとを用いて、それらを合成することで画像を構成し、出力する。尚、補間部１３２の処理については、図７３乃至図７５を参照して詳細を後述する。
【０２６６】
ステップＳ１６において、制御部１２１は、所定の１フレーム分の処理に当てられている時間が経過するまで、処理を停止し、初手の時間が経過した場合、処理は、ステップＳ１１に戻り、それ以降の処理が繰り返される。
【０２６７】
以上の処理により、偶数ラインにより、通常の適正露光時間の画像が取得され、奇数ラインによりブレ量に応じた露光時間の画像が取得され、これらが合成されることにより、ブレが抑制された画像を生成することが可能となる。尚、各処理の詳細な動作については、図３６以降を参照して後述する。
【０２６８】
＜読み出しライン制御処理＞
次に、図３５を参照して、読み出しライン制御処理について説明する。
【０２６９】
ステップＳ２１において、マッチング部１２８は、今現在読み出されている奇数ラインの画素データと、フレームメモリ１２７より読み出される奇数ラインの画素データであって、伸張部１６２により伸張されている奇数ラインの画素データとのマッチング処理により、相関の高い位置を検出し、検出結果を動き検出部１２９に供給する。動き検出部１２９は、この相関高い奇数ラインの画素データのそれぞれのフレーム内における垂直方向の移動距離に基づいて、１Ｈ（１ライン分）の処理時間での移動量ＭＶを求め、垂直制御部１２３に供給する。この移動量ＭＶは、上述した水平移動量deltaWperTwoClockHMおよび垂直移動量deltaHperTwoClockHMに対応するものである。
【０２７０】
ステップＳ２２において、垂直制御部１２３は、移動量ＭＶに基づいて、直前で読み出したラインに対して（１−ＭＶ）だけずれたラインの画素データを読み出し開始位置とするように設定し、タイミング制御部１２２に供給する。
【０２７１】
ステップＳ２３において、マッチング部１２８は、１Ｈ（１ライン）分の処理が終了するまで待機し、１Ｈ分の処理が終了すると、処理は、ステップＳ２１に戻り、それ以降の処理が繰り返される。
【０２７２】
すなわち、以上の処理により、図１９を参照して説明したように、イメージセンサ１１により撮像された画像データを一時的に格納するフレームメモリを設けなくても、イメージセンサ１１のリセットと読み出しを調整するのみで画像データを読み出すことが可能となる。
【０２７３】
尚、ここでは、フレームメモリを設けなくても、イメージセンサ１１のリセットと読み出しを調整するのみで画像データを読み出すことが可能であることを説明するためのポイントのみを簡易的な説明であるが、これらの詳細については、図４７乃至図６４を参照して後述するものとする。
【０２７４】
＜水平制御部の処理＞
次に、図３６，図３７を参照して、水平制御部１２４の処理について説明する。尚、図３７のフローチャートにおいては、シンタックスによる記述を参照して説明する部位があり、一部、シンタックスにおけるパラメータの名称と、これまで説明してきたパラメータの名称とが異なる部位があるので、図３６を参照して、その対応関係を説明する。
【０２７５】
水平制御部１２４には、直前水平パンブレ割合attractive horizontal force for previous frame、直前水平基準位置designated pixel number which attracts the start of previous frame、水平移動量deltaWperTwoClockHM、クロックclockHMおよびライン番号curHMが入力される。また、水平制御部１２４は、これらの入力信号に基づいて、水平方向読み出し開始位置read start pixel、整数水平方向読み出し開始位置read start pixel int、および過去水平方向読み出し開始位置read start pixel pastを出力する。
【０２７６】
ここで、図３７のフローチャートにおけるシンタックスにおいては、直前水平パンブレ割合attractive horizontal force for previous frameは、inWeightと表記され、直前水平基準位置designated pixel number which attracts the start of previous frameは、inTargetPixelと表記される。また、水平移動量deltaWperTwoClockHMは、inDと表記され、ライン番号curHMは、timeHMと表記される。また、水平方向読み出し開始位置read start pixelは、outS1と表記され、整数水平方向読み出し開始位置read start pixel intはoutS2と表記され、および過去水平方向読み出し開始位置read start pixel pastは、outS1pastと表記される。
【０２７７】
ここで、図３７のフローチャートを参照して、水平制御部１２４の処理について説明する。
【０２７８】
ステップＳ５１において、水平制御部１２４は、ライン番号curHMであるtimeHMが０であるか否かを判定する。すなわち、供給されてくるフレームの先頭ラインであるか否かが判定され、例えば、先頭ラインである場合、処理は、ステップＳ５２に進む。
【０２７９】
ステップＳ５２において、水平制御部１２４は、水平方向読み出し開始位置read start pixelであるoutS1に、水平移動量deltaWperTwoClockHMであるinDを加算して、新たな過去水平方向読み出し開始位置read start pixel pastであるoutS1pastを更新する。
【０２８０】
また、水平制御部１２４は、直前水平パンブレ割合attractive horizontal force for previous frameである、inWeight（パンの重み）により、パンと考えられる水平方向の座標であるinTargetPixelと、手振れを加味した水平方向の座標である（outS1+inD）とを重み付けすることで、パンと手振れとを相互に加味した新たな水平方向読み出し開始位置read start pixelであるoutS1を求める。
【０２８１】
さらに、水平制御部１２４は、求められた新たな水平方向読み出し開始位置read start pixelであるoutS1をfloor関数により小数点以下を切り捨てることで、整数の座標であるoutS2を算出する。
【０２８２】
一方、ステップＳ５１において、ライン番号curHMであるtimeHMが０でなく、供給されてくるフレームの先頭ラインではないとみなされた場合、処理は、ステップＳ５３に進む。
【０２８３】
ステップＳ５３において、水平制御部１２４は、ライン番号curHMであるtimeHMが偶数であるか否かを判定する。すなわち、供給されてくるフレームのラインが偶数であるか否かが判定され、例えば、偶数である場合、処理は、ステップＳ５４に進む。
【０２８４】
ステップＳ５４において、水平制御部１２４は、過去水平方向読み出し開始位置read start pixel pastであるoutS1pastに、水平移動量deltaWperTwoClockHMであるinDを加算して、新たな過去水平方向読み出し開始位置read start pixel pastであるoutS1pastを更新する。
【０２８５】
また、水平制御部１２４は、水平方向読み出し開始位置read start pixelであるoutS1に、水平移動量deltaWperTwoClockHMであるinDを加算して、新たな水平方向読み出し開始位置read start pixelであるoutS1を更新する。
【０２８６】
さらに、水平制御部１２４は、求められた新たな水平方向読み出し開始位置read start pixelであるoutS1をfloor関数により小数点以下を切り捨てることで、整数の座標であるoutS2を算出する。
【０２８７】
尚、ステップＳ５３において、ライン番号curHMであるtimeHMが偶数ではない場合、処理は終了する。
【０２８８】
すなわち、以上の処理により、クロックcloclHMに同期して１サイクルに一回ずつこの処理が実行され、フレームの先頭ラインについては、パンと手振れの割合に応じて、水平方向読み出し開始位置read start pixelであるoutS1が設定された後は、偶数ライン毎に順次水平移動量deltaWperTwoClockHMであるinDが加算されていく。
【０２８９】
このような処理により手振れとパンとがバランスよく加味されるので、ローリングシャッタ現象を補正することが可能となる。
【０２９０】
＜垂直制御部の処理＞
次に、図３８，図３９を参照して、垂直制御部１２３の処理について説明する。尚、図３９のフローチャートにおいては、シンタックスによる記述を参照して説明する部位があり、一部、シンタックスにおけるパラメータの名称と、これまで説明してきたパラメータの名称とが異なる部位があるので、図３８を参照して、その対応関係を説明する。
【０２９１】
垂直制御部１２３には、現在垂直パンブレ割合attractive horizontal force for current frame、現在垂直基準位置designated line number which attracts the start of current frame、垂直移動量deltaHperTwoClockHM、クロックclockHMおよびライン番号curHMが入力される。また、垂直制御部１２３は、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frame、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frame、および未来フレーム偶数ライン延長線上垂直座標line corresponding to start time of next frameを出力する。
【０２９２】
ここで、図３９のフローチャートにおけるシンタックスにおいては、現在垂直パンブレ割合attractive horizontal force for current frameは、inWeightと表記され、現在垂直基準位置designated line number which attracts the start of current frameは、inTargetLineと表記される。また、垂直移動量deltaHperTwoClockHMは、inDと表記され、ライン番号curHMは、timeHMと表記される。また、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameは、outPと表記され、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameは、outCと表記され、未来フレーム偶数ライン延長線上垂直座標line corresponding to start time of next frameは、outNと表記される。
【０２９３】
ここで、図３９のフローチャートを参照して、垂直制御部１２３の処理について説明する。
【０２９４】
ステップＳ６１において、垂直制御部１２３は、ライン番号curHMであるtimeHMが０であるか否かを判定する。すなわち、供給されてくるフレームの先頭ラインであるか否かが判定され、例えば、先頭ラインである場合、処理は、ステップＳ６２に進む。
【０２９５】
ステップＳ６２において、垂直制御部１２３は、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameであるoutCに、垂直移動量deltaHperTwoClockHMであるinDを加算して、新たに、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameであるoutPを更新する。
【０２９６】
ここで、tmp1は、1フレーム前の現在垂直基準位置designated line number which attracts the start of current frameであるinTargetLineからフレームの垂直方向の幅Hだけ減算された値である。また、tmp2は、1フレーム前の現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameであるoutCからフレームの垂直方向の幅Hだけ減算された値である。さらに、weightは1フレーム前のinWeightである。
【０２９７】
すなわち、（tmp1＋（2×H/HM））は、クロックclockHMの2サイクル分垂直方向に移動したときのパンにより特定されるラインであり、例えば、図２４における画素Ｐ１３のラインである。また、（tmp2＋inD）は、手振れにより特定されるラインであり、例えば、図２４における画素Ｐ１１のラインである。
【０２９８】
すなわち、垂直制御部１２３は、現在垂直パンブレ割合attractive horizontal force for current frameであるinWeight（パンの重み）により、パンによる垂直方向の座標である（tmp1＋（2×H/HM））と、手振れを加味した垂直方向の座標である（tmp2＋inD）とを重み付けすることで、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameであるoutCを求める。
【０２９９】
さらに、水平制御部１２４は、パンによる垂直方向の座標としてtmp1を用い、手振れによる垂直方向の座標としてtmp2を用いることで、現在垂直パンブレ割合attractive horizontal force for current frameであるinWeight（パンの重み）を用いて、パンと手振れとを相互に加味した未来フレーム偶数ライン延長線上垂直座標line corresponding to start time of next frameであるoutNを算出する。
【０３００】
すなわち、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameであるoutPは、図２５の点線Ｌ３５１上の垂直方向の座標である。また、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameであるoutCは、図２５における実線Ｌ３４２上の垂直方向の座標である。さらに、未来フレーム偶数ライン延長線上垂直座標line corresponding to start time of next frameであるoutNは、図２５における点線Ｌ３７１上の垂直方向の座標である。すなわち、このように、偶数ラインにおける過去、現在、および未来の垂直方向の座標が求められる。
【０３０１】
一方、ステップＳ６１において、ライン番号curHMであるtimeHMが０でなく、供給されてくるフレームの先頭ラインではないとみなされた場合、処理は、ステップＳ６３に進む。
【０３０２】
ステップＳ６３において、垂直制御部１２３は、ライン番号curHMであるtimeHMが偶数であるか否かを判定する。すなわち、供給されてくるフレームのラインが偶数であるか否かが判定され、例えば、偶数である場合、処理は、ステップＳ６４に進む。
【０３０３】
ステップＳ６４において、垂直制御部１２３は、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameであるoutPに、垂直移動量deltaHperTwoClockHMであるinDを加算して、新たに、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameであるoutPを更新する。
【０３０４】
また、垂直制御部１２３は、tmp1にクロックclockHMの２サイクル分で考慮すべき（2×H/HM）を加算して更新し、tmp2、outCにクロックclockHMの２サイクル分で考慮すべき垂直移動量deltaHperTwoClockHMであるinDを加算して更新する。
【０３０５】
さらに、垂直制御部１２３は、２サイクル分のパンが考慮された垂直方向の座標tmp1と、２サイクル分の手振れが考慮された垂直方向の座標tmp2とを重みweightにより重み付けして、パンと手振れとを相互に加味した未来フレーム偶数ライン延長線上垂直座標line corresponding to start time of next frameであるoutNを更新する。
【０３０６】
尚、ステップＳ６３において、ライン番号curHMであるtimeHMが偶数ではない場合、処理は終了する。
【０３０７】
すなわち、以上の処理により、クロックcloclHMに同期して１サイクルに一回ずつこの処理が実行され、フレームの先頭ラインについては、パンと手振れの割合に応じて、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameであるoutP、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameであるoutC、および、未来フレーム偶数ライン延長線上垂直座標line corresponding to start time of next frameであるoutNが更新される。
【０３０８】
このような処理により手振れとパンとがバランスよく加味されるので、ローリングシャッタ現象を補正することが可能となる。
【０３０９】
＜タイミング制御部の第１の処理について＞
次に、図４０，図４１を参照して、タイミング制御部１２２の第１の処理について説明する。尚、図４１のフローチャートにおいては、シンタックスによる記述を参照して説明する部位があり、一部、シンタックスにおけるパラメータの名称と、これまで説明してきたパラメータの名称とが異なる部位があるので、図４０を参照して、その対応関係を説明する。
【０３１０】
タイミング制御部１２２には、サブ演算ブロック２１１乃至２１３が設けられており、それぞれクロックclockHMに同期して、クロックclockHMの１サイクルに１回、それぞれの処理が実行される。
【０３１１】
サブ演算ブロック２１１には、現在フレーム偶数ライン露光時間exposure time for current image capture、ライン番号curHM、およびクロックclockHMが入力される。また、サブ演算ブロック２１１は、入力信号に基づいて、現在フレーム偶数ライン露光時間exp time for cur image capt、および直前フレーム偶数ライン露光時間exp time for prev image captを出力する。
【０３１２】
ここで、図４１のシンタックスにおいては、現在フレーム偶数ライン露光時間exposure time for current image captureはinと表記され、ライン番号curHMはtimeHMと表記される。また、現在フレーム偶数ライン露光時間exp time for cur image captはout1と表記され、直前フレーム偶数ライン露光時間exp time for prev image captはout2と表記される。
【０３１３】
サブ演算ブロック２１２には、現在奇数フレーム読み出し回数number of readout per frame for current motion capture、ライン番号curHM、およびクロックclockHMが入力される。また、サブ演算ブロック２１２は、入力信号に基づいて、現在奇数フレーム読み出し回数num of read for cur motion capt、および直前奇数フレーム読み出し回数num of read for prev motion captを出力する。
【０３１４】
ここで、図４１のシンタックスにおいては、現在奇数フレーム読み出し回数number of readout per frame for current motion captureはinと表記され、ライン番号curHMはtimeHMと表記される。また、現在奇数フレーム読み出し回数num of read for cur motion captはout1と表記され、直前奇数フレーム読み出し回数num of read for prev motion captはout2と表記される。
【０３１５】
サブ演算ブロック２１３には、現在フレーム奇数ライン露光時間exposure time for current motion capture、ライン番号curHM、およびクロックclockHMが入力される。また、サブ演算ブロック２１２は、入力信号に基づいて、現在フレーム奇数ライン露光時間exp time for cur motion capt、および直前フレーム奇数ライン露光時間exp time for prev motion captを出力する。
【０３１６】
ここで、図４１のシンタックスにおいては、現在フレーム奇数ライン露光時間exposure time for current motion captureはinと表記され、ライン番号curHMはtimeHMと表記される。また、現在フレーム奇数ライン露光時間exp time for cur motion captはout1と表記され、直前フレーム奇数ライン露光時間exp time for prev motion captはout2と表記される。
【０３１７】
次に、図４１のフローチャートを参照して、タイミング制御部１２２の第１の処理について説明する。
【０３１８】
ステップＳ８１において、サブ演算ブロック２１１は、ライン番号curHMであるtimeHMが０であるか否かを判定する。すなわち、供給されてくるフレームの先頭ラインであるか否かが判定され、例えば、先頭ラインである場合、処理は、ステップＳ８２に進む。
【０３１９】
ステップＳ８２において、サブ演算ブロック２１１は、直前フレーム偶数ライン露光時間exp time for prev image captであるout2に、現在フレーム偶数ライン露光時間exp time for cur image captであるout1を代入する。また、サブ演算ブロック２１１は、現在フレーム偶数ライン露光時間exp time for cur image captであるout1に、現在フレーム偶数ライン露光時間exposure time for current image captureであるinを代入する。
【０３２０】
サブ演算ブロック２１２，２１３においては、ステップＳ８２の処理が異なる。
【０３２１】
すなわち、サブ演算ブロック２１２の場合、ステップＳ８２においては、サブ演算ブロック２１２は、直前奇数フレーム読み出し回数num of read for prev motion captであるout2に、現在奇数フレーム読み出し回数num of read for cur motion captであるout1を代入する。また、サブ演算ブロック２１２は、現在奇数フレーム読み出し回数num of read for cur motion captであるout1に、現在奇数フレーム読み出し回数number of readout per frame for current motion captureであるinを代入する。
【０３２２】
また、サブ演算ブロック２１３の場合、ステップＳ８２においては、サブ演算ブロック２１２は、直前フレーム奇数ライン露光時間exp time for prev motion captであるout2に、現在フレーム奇数ライン露光時間exp time for cur motion captであるout1を代入する。また、サブ演算ブロック２１２は、現在フレーム奇数ライン露光時間exp time for cur motion captであるout1に、現在フレーム奇数ライン露光時間exposure time for current motion captureであるinを代入する。
【０３２３】
すなわち、サブ演算ブロック２１１乃至２１３は、クロックclockHMに同期して、クロックclockHMの１サイクルに１回、上述した処理が繰り返し実行される。
【０３２４】
＜タイミング制御部の第２の処理および第３の処理について＞
次に、図４２乃至図４５を参照して、タイミング制御部１２２の第２の処理、および第３の処理について説明する。尚、図４５のフローチャートにおいては、シンタックスによる記述を参照して説明する部位があり、一部、シンタックスにおけるパラメータの名称と、これまで説明してきたパラメータの名称とが異なる部位があるので、図４２乃至図４４を参照して、その対応関係を説明する。
【０３２５】
図４２で示されるように、タイミング制御部１２２には、第２の処理を実行するためのサブ演算ブロック（Comp Timing）２２１が設けられている。
【０３２６】
サブ演算ブロック２２１には、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frame、および現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameが入力される。
【０３２７】
また、サブ演算ブロック２２１には、直前フレーム偶数ライン露光時間exp time for prev image capt、および直前フレーム奇数ライン露光時間exp time for prev motion captが入力される。
【０３２８】
さらに、サブ演算ブロック２２１は、入力信号に基づいて、直前読み出し偶数ライン位置read position for previous image capture、および直前リセット偶数ライン位置reset position for previous image captureを出力する。
【０３２９】
また、サブ演算ブロック２２１は、直前読み出し奇数ライン位置read position for previous motion capture[0:3]、および直前リセット奇数ライン位置reset position for previous motion capture[0:3]を出力する。
【０３３０】
ここで、図４５のシンタックスにおいては、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameは、startLineOldFrmと表記され、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameは、startLineNewFrmと表記される。また、直前フレーム偶数ライン露光時間exp time for prev image captは、expImgCaptと表記され、直前フレーム奇数ライン露光時間exp time for prev motion captは、expMotCaptと表記される。
【０３３１】
さらに、直前読み出し偶数ライン位置read position for previous image captureは、readPositionForImageCaptと表記され、直前リセット偶数ライン位置reset position for previous image captureは、resetPositionForImageCaptと表記される。また、直前読み出し奇数ライン位置read position for previous motion capture[0:3]は、readPositionForMotCapt[0:3]と表記され、直前リセット奇数ライン位置reset position for previous motion capture[0:3]は、resetPositionForMotCapt[0:3]と表記される。
【０３３２】
また、図４３で示されるように、タイミング制御部１２２には、第３の処理を実行するためのサブ演算ブロック（Comp Timing）２３１が設けられている。
【０３３３】
サブ演算ブロック２３１には、現在フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of current frame、および未来フレーム偶数ライン上読み出し垂直座標line corresponding to start time of next frameが入力される。また、サブ演算ブロック２３１には、現在フレーム偶数ライン露光時間exp time for cur image capt、および、現在フレーム奇数ライン露光時間exp time for cur motion captが入力される。
【０３３４】
また、サブ演算ブロック２３１は、入力信号に基づいて、現在読み出し偶数ライン位置read position for current image capture、および現在リセット偶数ライン位置reset position for current image captureを出力する。また、サブ演算ブロック２３１は、現在読み出し奇数ライン位置read position for current motion capture[0:3]、および現在リセット奇数ライン位置reset position for current motion capture[0:3]を出力する。
【０３３５】
ここで、図４５のシンタックスにおいては、現在フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of current frameは、startLineOldFrmと表記され、未来フレーム偶数ライン上読み出し垂直座標line corresponding to start time of next frameは、startLineNewFrmと表記される。また、現在フレーム偶数ライン露光時間exp time for cur image captは、expimgCaptと表記され、現在フレーム奇数ライン露光時間exp time for cur motion captは、expMotCaptと表記される。
【０３３６】
さらに、現在読み出し偶数ライン位置read position for current image captureは、readPositionForImageCaptと表記され、現在リセット偶数ライン位置reset position for current image captureは、resetPositionForImageCaptと表記される。また、現在読み出し奇数ライン位置read position for current motion capture[0:3]は、readPositionForMotCapt[0:3]と表記され、現在リセット奇数ライン位置reset position for current motion capture[0:3]は、resetPositionForMotCapt[0:3]と表記される。
【０３３７】
すなわち、サブ演算ブロック２２１，２３１は、いずれも図４４で示されるように、同様の処理を実行する。すなわち、サブ演算ブロック２２１，２３１には、いずれも、シンタックスで表記されるパラメータのstartLineOldFrm、startLineNewFrm、expimgCapt、およびexpMotCaptが入力される。また、サブ演算ブロック２２１，２３１は、いずれも、この入力信号に基づいて、readPositionForImageCapt、resetPositionForImageCapt、readPositionForMotCapt[0:3]、およびresetPositionForMotCapt[0:3]を出力する。
【０３３８】
次に、図４５のフローチャートを参照して、サブ演算ブロック２２１の処理について説明する。
【０３３９】
ステップＳ１０１において、サブ演算ブロック２２１は、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameであるstartLineOldFrmから、現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameであるstartLineNewFrmを減算し、これをHMで除することにより垂直方向の変化量dHを算出する。
【０３４０】
ステップＳ１０２において、サブ演算ブロック２２１は、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameであるstartLineOldFrmから１クロックclockHM当たりの垂直方向の変化量dHにHMを乗じた値を減算することで、直前読み出し偶数ライン位置read position for previous image captureであるreadPositionForImageCaptを算出する。
【０３４１】
ステップＳ１０３において、サブ演算ブロック２２１は、直前読み出し偶数ライン位置read position for previous image captureであるreadPositionForImageCaptに、直前フレーム偶数ライン露光時間exp time for prev image captであるexpImgCaptに１クロックclockHM当たりの垂直方向の変化量dHにHMを乗じた値を加算することにより、直前リセット偶数ライン位置reset position for previous image captureであるresetPositionForImageCaptを算出する。
【０３４２】
ステップＳ１０４において、サブ演算ブロック２２１は、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameであるstartLineOldFrmから１クロックclockHM当たりの垂直方向の変化量dHに、４倍読み出し処理における奇数ラインとして、それぞれHMに１／４、２／４、３／４、および４／４を乗じた値を減算することで、直前読み出し奇数ライン位置read position for previous motion capture[0:3]であるreadPositionForMotCapt[0:3]を算出する。
【０３４３】
ステップＳ１０５において、サブ演算ブロック２２１は、直前読み出し奇数ライン位置read position for previous motion capture[0:3]であるreadPositionForMotCapt[0:3]に、直前フレーム奇数ライン露光時間exp time for prev motion captであるexpMotCaptに垂直方向の変化量dHを乗じた値を加算することにより、直前リセット奇数ライン位置reset position for previous motion capture[0:3]であるresetPositionForMotCapt[0:3]を算出する。
【０３４４】
同様に、サブ演算ブロック２３１の処理についても同様となる。
【０３４５】
すなわち、ステップＳ１０１において、サブ演算ブロック２３１は、現在フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of current frameであるstartLineOldFrmから、未来フレーム偶数ライン上読み出し垂直座標line corresponding to start time of next frameであるstartLineNewFrmを減算し、これをHMで除することにより垂直方向の変化量dHを算出する。
【０３４６】
ステップＳ１０２において、サブ演算ブロック２３１は、未来フレーム偶数ライン上読み出し垂直座標line corresponding to start time of next frameは、startLineNewFrmから垂直方向の変化量dHにHMを乗じた値を減算することで、現在リセット偶数ライン位置reset position for current image captureであるresetPositionForImageCaptを算出する。
【０３４７】
ステップＳ１０３において、サブ演算ブロック２３１は、現在リセット偶数ライン位置reset position for current image captureであるresetPositionForImageCaptに、現在フレーム偶数ライン露光時間exp time for cur image captであるexpimgCaptに垂直方向の変化量dHにHMを乗じた値を加算することにより、現在リセット偶数ライン位置reset position for current image captureであるresetPositionForImageCaptを算出する。
【０３４８】
ステップＳ１０４において、サブ演算ブロック２３１は、現在フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of current frameであるstartLineOldFrmから１クロックclockHM当たりの垂直方向の変化量dHに、４倍読み出し処理における奇数ラインとして、それぞれHMに１／４、２／４、３／４、および４／４を乗じた値を減算することで、現在読み出し奇数ライン位置read position for current motion capture[0:3]であるreadPositionForMotCapt[0:3]を算出する。
【０３４９】
ステップＳ１０５において、サブ演算ブロック２３１は、現在読み出し奇数ライン位置read position for current motion capture[0:3]であるreadPositionForMotCapt[0:3]に、現在フレーム奇数ライン露光時間exp time for cur motion captであるexpMotCaptに垂直方向の変化量dHを乗じた値を加算することにより、現在リセット奇数ライン位置reset position for current motion capture[0:3]であるresetPositionForMotCapt[0:3]を算出する。
【０３５０】
以上の処理により、偶数ライン、および４倍読み出し処理に対応する奇数ラインのリセット、および読み出しの位置を設定することが可能となる。
【０３５１】
＜タイミング制御部の第４の処理について＞
次に、図４６乃至図５０を参照して、タイミング制御部１２２の第４の処理について説明する。尚、図４７乃至図５１のフローチャートにおいては、シンタックスによる記述を参照して説明する部位があり、一部、シンタックスにおけるパラメータの名称と、これまで説明してきたパラメータの名称とが異なる部位があるので、図４６を参照して、その対応関係を説明する。
【０３５２】
図４６で示されるように、タイミング制御部１２２には、第４の処理を実行するためのサブ演算ブロック（Reset Generator）２４１が設けられている。
【０３５３】
サブ演算ブロック２４１には、遅延部（1delay）２５１を介して、クロックclockHMにより１サイクル分だけ遅延されたライン番号curHM、現在リセット偶数ライン位置reset position for current image capture、現在リセット奇数ライン位置reset position for current motion capture[0:3]、直前リセット偶数ライン位置reset position for previous image capture、直前リセット奇数ライン位置reset position for previous motion capture[0:3]、現在奇数フレーム読み出し回数num of read for cur motion capt、クロックclockHMおよび直前奇数フレーム読み出し回数num of read for prev motion captが入力される。
【０３５４】
また、サブ演算ブロック２４１は、入力信号に基づいて、リセット信号reset[0:HS-1]を出力する。
【０３５５】
ここで、図４７乃至図５０のフローチャートにおけるシンタックスにおいては、ライン番号curHMは、timeHMと表記され、現在リセット偶数ライン位置reset position for current image captureは、resetPositionForImageCaptと表記される。また、現在リセット奇数ライン位置reset position for current motion capture[0:3]は、resetPositionForCurMotCapt[0:3]と表記され、直前リセット偶数ライン位置reset position for previous image captureは、resetPositionForPrevImgCaptと表記される。さらに、直前リセット奇数ライン位置reset position for previous motion capture[0:3]は、resetPositionForPrevMotCapt[0:3]と表記される。
【０３５６】
現在奇数フレーム読み出し回数num of read for cur motion captは、readNumForCurMotCaptと表記され、直前奇数フレーム読み出し回数num of read for prev motion captは、readNumForPrevMotCaptと表記される。また、リセット信号reset[0:HS-1]は、out[0:HS-1]と表記される。
【０３５７】
次に、図４７乃至図５０のフローチャートを参照して、サブ演算ブロック２４１の処理について説明する。
【０３５８】
ステップＳ１２１において、サブ演算ブロック２４１は、リセット信号reset[0:HS-1]であるout[0:HS-1]を、初期化して、NoReset、すなわち、リセットしない状態に設定する。
【０３５９】
ステップＳ１２２において、サブ演算ブロック２４１は、ライン番号curHMであるtimeHMが０であるか否かを判定する。すなわち、供給されてくるフレームの先頭ラインであるか否かが判定され、例えば、先頭ラインである場合、処理は、ステップＳ１２３に進む。
【０３６０】
ステップＳ１２３において、サブ演算ブロック２４１は、最新の直前リセット偶数ライン位置latestResetForPrevImgCaptを、それまでの最新の現在リセット偶数ライン位置latestResetForCurImgCaptで置換して更新する。また、サブ演算ブロック２４１は、最新の現在リセット偶数ライン位置latestResetForCurImgCaptを、現在リセット偶数ライン位置reset position for current image captureであるresetPositionForImgCaptの２進数表現で整数部１ケタ目を四捨五入（1.0を加算し、2.0で除算した値をfloor関数にいれて、さらに、2を掛ける）した値で置き換えて更新する。
【０３６１】
ステップＳ１２４において、サブ演算ブロック２４１は、最新の直前リセット奇数ライン位置latestResetForPrevMotCapt[0:3]を、それまでの最新の現在リセット奇数ライン位置latestResetForCurMotCapt[0:3]で置換して更新する。また、サブ演算ブロック２４１は、最新の現在リセット奇数ライン位置latestResetForCurMotCapt[0:3]を、現在リセット奇数ライン位置reset position for current motion capture[0:3]であるresetPositionForCurMotCapt[0:3]の２進数表現で整数部１ケタ目を四捨五入（1.0を加算し、2.0で除算した値をfloor関数にいれて、さらに、2を掛ける）した値で置き換えて更新する。
【０３６２】
ステップＳ１２２において、ライン番号curHMであるtimeHMが０でない場合、ステップＳ１２３，Ｓ１２４の処理はスキップされる。
【０３６３】
ステップＳ１２５において、サブ演算ブロック２４１は、ライン番号curHMであるtimeHMが０であるか否かを判定する。すなわち、供給されてくるフレームの先頭ラインであるか否かが判定され、例えば、先頭ラインである場合、処理は、ステップＳ１２７（図４８）に進む。
【０３６４】
ステップＳ１２７（図４８）において、サブ演算ブロック２４１は、リセットするラインの最大値maxResetLineを、最新の現在リセット偶数ライン位置latestResetForCurImgCaptで置換して更新する。さらに、サブ演算ブロック２４１は、リセットするラインの最大値maxResetLineと、偶数ライン間の間隔で４番目に読み出される奇数ラインの最新の現在リセット奇数ライン位置latestResetForCurMotCapt[3]との比較で大きいものをリセットするラインの最大値maxResetLineに設定する。
【０３６５】
また、サブ演算ブロック２４１は、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが２回または４回である場合、リセットするラインの最大値maxResetLineと、偶数ライン間の間隔で２番目に読み出される奇数ラインの最新の現在リセット奇数ライン位置latestResetForCurMotCapt[1]との比較で大きいものをリセットするラインの最大値maxResetLineに設定する。
【０３６６】
さらに、サブ演算ブロック２４１は、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが４回である場合、リセットするラインの最大値maxResetLineと、偶数ライン間の間隔で１番目に読み出される奇数ラインの最新の現在リセット奇数ライン位置latestResetForCurMotCapt[0]との比較で大きいものをリセットするラインの最大値maxResetLineに設定する。また、サブ演算ブロック２４１は、リセットするラインの最大値maxResetLineと、偶数ライン間の間隔で３番目に読み出される奇数ラインの最新の現在リセット奇数ライン位置latestResetForCurMotCapt[2]との比較で大きいものをリセットするラインの最大値maxResetLineに設定する。
【０３６７】
さらに、サブ演算ブロック２４１は、リセット信号reset[0:HS-1]であるout[0:HS-1]のうち、イメージセンサ１１の最上位ラインからリセットするラインの最大値maxResetLineから１ライン上のラインまでの全ラインに属する画素を、リセット信号reset[0:HS-1]であるout[0:HS-1]をDoResetに設定し、リセット状態に設定し、処理は、ステップＳ１２６（図４７）に進む。
【０３６８】
一方、ステップＳ１２５において、ライン番号curHMであるtimeHMが０でない場合、処理は、ステップＳ１２６に進む。
【０３６９】
ステップＳ１２６において、サブ演算ブロック２４１は、ライン番号curHMであるtimeHMが偶数であるか否かを判定する。ステップＳ１２６において、例えば、ライン番号curHMであるtimeHMが偶数である場合、処理は、ステップＳ１２８（図４９）に進む。
【０３７０】
ステップＳ１２８（図４９）において、サブ演算ブロック２４１は、ライン番号curHMであるtimeHMが0である場合、最新の現在リセット偶数ライン位置latestResetForCurImgCaptがイメージセンサ１１の垂直方向の範囲内、すなわち、0以上で、かつ、HS-1以下であるとき、最新の現在リセット偶数ライン位置latestResetForCurImgCaptに対応する画素out[latestResetForCurImgCapt]に対してDoResetに設定し、リセットを指示する。
【０３７１】
一方、ライン番号curHMであるtimeHMが０ではない場合、最新の現在リセット偶数ライン位置latestResetForCurImgCaptに３を加算した値が、floor関数により、現在リセット偶数ライン位置reset position for current image captureであるresetPositionForImageCaptの小数点以下を切り捨てた値以下であるとき、サブ演算ブロック２４１は、最新の現在リセット偶数ライン位置latestResetForCurImgCaptを２インクリメントする。
【０３７２】
さらに、最新の現在リセット偶数ライン位置latestResetForCurImgCaptがイメージセンサ１１の垂直方向の範囲内であるとき、サブ演算ブロック２４１は、最新の現在リセット偶数ライン位置latestResetForCurImgCaptに対応する画素out[latestResetForCurImgCapt]に対してDoResetに設定し、リセットを指示する。
【０３７３】
また、最新の直前のリセット偶数ライン位置latestResetForPrevImgCaptに３を加算した値が、floor関数により、現在リセット偶数ライン位置reset position for previous image captureであるresetPositionForPrevCaptの小数点以下を切り捨てた値以下であるとき、サブ演算ブロック２４１は、最新の直前リセット偶数ライン位置latestResetForPrevImgCaptを２インクリメントする。
【０３７４】
さらに、最新の直前リセット偶数ライン位置latestResetForPrevImgCaptがイメージセンサ１１の垂直方向の範囲内であるとき、サブ演算ブロック２４１は、最新の直前リセット偶数ライン位置latestResetForPrevImgCaptに対応する画素out[latestResetForPrevImgCapt]に対してDoResetに設定し、リセットを指示する。
【０３７５】
また、ステップＳ１２６（図４７）において、ライン番号curHMであるtimeHMが偶数ではない場合、処理は、ステップＳ１２９（図５０）に進む。
【０３７６】
ステップＳ１２９において、サブ演算ブロック２４１は、ライン番号curHMであるtimeHMが１である場合、最新の現在リセット奇数ライン位置latestResetForCurMotCapt[i]がイメージセンサ１１の垂直方向の範囲内、すなわち、0以上で、かつ、HS-1以下であるとき、最新の現在リセット奇数ライン位置latestResetForMotCapt[i]に対応する画素out[latestResetForCurMotCapt[i]]に対してDoreset、すなわち、リセットを指示する。
【０３７７】
一方、ライン番号curHMであるtimeHMが１ではない場合、最新の現在リセット奇数ライン位置latestResetForMotCapt[i]に２を加算した値が、現在リセット奇数ライン位置reset position for current motion capture[i]であるresetPositionForMotCapt[i]の小数点以下を削除した値以下であるとき、サブ演算ブロック２４１は、最新の現在リセット奇数ライン位置latestResetForCurMotCapt[i]を２インクリメントする。
【０３７８】
さらに、最新の現在リセット奇数ライン位置latestResetForCurMotCapt[i]がイメージセンサ１１の垂直方向の範囲内であるとき、サブ演算ブロック２４１は、最新の現在リセット奇数ライン位置latestResetForCurMotCapt[i]に対応する画素out[latestResetForCurMotCapt]に対してDoResetに設定し、リセットを指示する。
【０３７９】
ただし、ステップＳ１２９の処理は、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが１である場合、i＝3に対してのみ実行され、かつ、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが２である場合、i＝1,3に対してのみ実行される。また、readNumForCurMotCaptが４である場合、i＝0乃至3の全てに対して実行される。
【０３８０】
ステップＳ１３０において、最新の現在リセット奇数ライン位置latestResetForCurMotCapt[i]に２を加算した値が、floor関数により、直前リセット奇数ライン位置reset position for previous motion captureであるresetPositionForMotCapt[i]の小数点以下を削除した値以下であるとき、サブ演算ブロック２４１は、最新の直前リセット奇数ライン位置latestResetForPrevMotCapt[i]を２インクリメントする。
【０３８１】
また、サブ演算ブロック２４１は、最新の直前リセット奇数ライン位置latestResetForPrevMotCapt[i]がイメージセンサ１１の垂直方向の範囲内であるとき、サブ演算ブロック２４１は、最新の直前リセット奇数ライン位置latestResetForPrevMotCapt[i]に対応する画素out[latestResetForCurMotCapt[i]]に対してDoResetを設定し、リセットを指示する。
【０３８２】
ただし、ステップＳ１３０の処理は、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが１である場合、i＝3に対してのみ実行され、かつ、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが２である場合、i＝1,3に対してのみ実行さる。また、readNumForCurMotCaptが４である場合、i＝0乃至3の全てに対して実行される。
【０３８３】
＜タイミング制御部の第５の処理について＞
次に、図５１乃至図６０を参照して、タイミング制御部１２２の第５の処理について説明する。尚、図５２乃至図６０のフローチャートにおいては、シンタックスによる記述を参照して説明する部位があり、一部、シンタックスにおけるパラメータの名称と、これまで説明してきたパラメータの名称とが異なる部位があるので、図５１を参照して、その対応関係を説明する。
【０３８４】
図５１で示されるように、タイミング制御部１２２には、第５の処理を実行するためのサブ演算ブロック（Read Generator）２６１が設けられている。
【０３８５】
サブ演算ブロック２６１には、遅延部（1delay）２７１を介して、クロックclockHMにより１サイクル分だけ遅延されたライン番号curHM、現在読み出し偶数ライン位置read position for current image capture、現在読み出し奇数ライン位置read position for current motion capture[0:3]、直前読み出し偶数ライン位置read position for previous image capture、直前読み出し奇数ライン位置read position for previous motion capture[0:3]、現在奇数フレーム読み出し回数num of read for cur motion capt、クロックclockHMおよび直前奇数フレーム読み出し回数num of read for prev motion captが入力される。
【０３８６】
また、サブ演算ブロック２６１は、入力信号に基づいて、読み出し信号read[0:HS-1]、現在時刻読み出し偶数ラインpresent read line for image capture、および現在時刻読み出し奇数ラインpresent read line for motion capture[0:3]を出力する。
【０３８７】
ここで、図５２乃至図６０のフローチャートにおけるシンタックスにおいては、ライン番号curHMは、timeHMと表記され、現在読み出し偶数ライン位置read position for current image captureは、readPositionForImageCaptと表記される。また、現在リセット奇数ライン位置reset position for current motion capture[0:3]は、readPositionForCurMotCapt[0:3]と表記され、直前読み出し偶数ライン位置read position for previous image captureは、readPositionForPrevImgCaptと表記される。
【０３８８】
さらに、直前読み出し奇数ライン位置read position for previous motion capture[0:3]は、readPositionForPrevMotCapt[0:3]と表記され、現在奇数フレーム読み出し回数num of read for cur motion captは、readNumForCurMotCaptと表記され、直前奇数フレーム読み出し回数num of read for prev motion captは、readNumForPrevMotCaptと表記される。
【０３８９】
また、読み出し信号read[0:HS-1]は、out[0:HS-1]と表記され、現在時刻読み出し偶数ラインpresent read line for image captureは、presentReadLineForImgCaptと表記され、現在時刻読み出し奇数ラインpresent read line for motion capture[0:3]は、presentReadLineForMotCapt[0:3]と表記される。
【０３９０】
次に、図５２乃至図６０のフローチャートを参照して、サブ演算ブロック２６１の処理について説明する。
【０３９１】
ステップＳ２０１において、サブ演算ブロック２６１は、読み出し信号read[0:HS-1]であるout[0:HS-1]を、初期化して、NoRead、すなわち、読み出さない状態に設定する。また、サブ演算ブロック２６１は、現在時刻読み出し偶数ラインpresent read line for image captureであるpresentReadLineForImgCaptをNoLine、すなわち、現在のタイミングで読み出し偶数ラインが存在しない状態とする。さらに、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion capture[0:3]であるpresentReadLineForMotCapt[0:3]をNoLine、すなわち、現在時刻読み出し奇数ラインpresent read line for motion capture[0:3]が存在しない状態に設定する。
【０３９２】
ステップＳ２０２において、サブ演算ブロック２６１は、ライン番号curHMであるtimeHMが０であるか否かを判定する。すなわち、供給されてくるフレームの先頭ラインであるか否かが判定され、例えば、先頭ラインである場合、処理は、ステップＳ２０３に進む。
【０３９３】
ステップＳ２０３において、サブ演算ブロック２６１は、最新の直前読み出し偶数ライン位置latestReadForPrevImgCaptを、それまでの最新の現在読み出し偶数ライン位置latestReadForCurImgCaptで置換して更新する。また、サブ演算ブロック２６１は、最新の現在読み出し偶数ライン位置latestReadForCurImgCaptを、現在読み出し偶数ライン位置read position for current image captureであるreadPositionForImgCaptの２進数表現で整数部１ケタ目を四捨五入（1.0を加算し、2.0で除算した値をfloor関数にいれて、さらに、2を掛ける）した値で置き換えて更新する。
【０３９４】
ステップＳ２０４において、サブ演算ブロック２６１は、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[0:3]を、それまでの最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[0:3]で置換して更新する。また、サブ演算ブロック２６１は、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[0:3]を、現在読み出し奇数ライン位置read position for current motion capture[0:3]であるreadPositionForCurMotCapt[0:3]の２進数表現で整数部１ケタ目を四捨五入（1.0を加算し、2.0で除算した値をfloor関数にいれて、さらに、2を掛ける）した値で置き換えて更新する。
【０３９５】
ステップＳ２０２において、ライン番号curHMであるtimeHMが０でない場合、ステップＳ２０３，Ｓ２０４の処理はスキップされる。
【０３９６】
ステップＳ２０５において、サブ演算ブロック２６１は、ライン番号curHMであるtimeHMが偶数であるか否かを判定する。ステップＳ２０５において、偶数であると判定された場合、処理は、ステップＳ２０６（図５３）に進む。
【０３９７】
ステップＳ２０６（図５３）において、サブ演算ブロック２６１は、サブ演算ブロック２６１は、ライン番号curHMであるtimeHMが０である場合、最新の直前読み出し偶数ライン位置latestReadForPrevImgCaptがイメージセンサ１１の垂直方向の範囲内、すなわち、0以上で、かつ、HS-1以下であるとき、現在時刻読み出し偶数ラインpresent read line for image captureであるpresentReadLineForImgCaptを直前読み出し偶数ライン位置latestReadForCurImgCaptとし、さらに、直前読み出し偶数ライン位置latestReadForCurImgCaptに対応する画素out[presentReadLineForImgCapt]に対してDoRead、すなわち、読み出しを指示する。
【０３９８】
一方、ライン番号curHMであるtimeHMが０ではない場合、最新の直前リセット偶数ライン位置latestResetForPrevImgCaptに３を加算した値が、floor関数により、現在読み出し偶数ライン位置read position for current image captureであるreadPositionForImageCaptの小数点以下を切り捨てた値以下である場合、サブ演算ブロック２６１は、最新の直前リセット偶数ライン位置latestResetForPrevImgCaptを２インクリメントする。
【０３９９】
さらに、最新の直前読み出し偶数ライン位置latestReadForPrevImgCaptがイメージセンサ１１の垂直方向の範囲内であるとき、サブ演算ブロック２６１は、現在時刻読み出し偶数ラインpresent read line for image captureであるpresentReadLineForImgCaptを、最新の直前読み出し偶数ライン位置latestReadForPrevImgCaptとし、最新の直前読み出し偶数ライン位置latestReadForPrevImgCaptに対応する画素out[presentReadLineForImgCapt]に対してDoRead、すなわち、読み出しを指示し、処理を終了する。
【０４００】
一方、ステップＳ２０５（図５２）において、偶数ではないとみなされた場合、処理は、ステップＳ２０７（図５４）に進む。
【０４０１】
ステップＳ２０７（図５４）において、サブ演算ブロック２６１は、ライン番号curHMであるtimeHMが１である場合、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[3]がイメージセンサ１１の垂直方向の範囲内、すなわち、0以上で、かつ、HS-1以下であるとき、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[3]を、最新の現在リセット奇数ライン位置latestReadForPrevMotCapt[3]とする。
【０４０２】
さらに、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[3]に対応する画素out[latestReadForPrevMotCapt[3]]に対してDofouthQuaterRead、すなわち、奇数ラインの４番目の読み出しを指示する。
【０４０３】
一方、ライン番号curHMであるtimeHMが１ではない場合、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[3]に２を加算した値が、floor関数により、直前読み出し奇数ライン位置read position for previous motion capture[3]であるreadPositionForPrevMotCapt[3]の小数点以下を削除した値以下であるとき、サブ演算ブロック２６１は、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[3]を２インクリメントする。
【０４０４】
また、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[3]を、最新の現在リセット奇数ライン位置latestReadForPrevMotCapt[3]とする。
【０４０５】
さらに、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[3]がイメージセンサ１１の垂直方向の範囲内であるとき、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[3]に対応する画素out[presentReadLineForMotCapt[3]]に対してDofouthQuaterRead、すなわち、奇数ラインの４番目の読み出しを指示する。
【０４０６】
ステップＳ２０８（図５５）において、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが４であり、ライン番号curHMであるtimeHMが3*HM/4以上であり、かつ、3*HM/4+1である場合、サブ演算ブロック２６１は、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[2]がイメージセンサ１１の垂直方向の範囲内、すなわち、0以上で、かつ、HS-1以下であるとき、現在時刻読み出し奇数ラインpresent read line for motion capture[2]であるpresentReadLineForMotCapt[2]に対応する画素out[presentReadLineForMotCapt[2]]に対してDoThirdQuaterRead、すなわち、奇数ラインの３回目の読み出しを指示する。
【０４０７】
一方、ライン番号curHMであるtimeHMが3HM/4+1ではない場合、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[2]に２を加算した値が、floor関数により、現在読み出し奇数ライン位置read position for curent motion capture[2]であるreadPositionForCurMotCapt[2]の小数点以下を削除した値以下であるとき、サブ演算ブロック２６１は、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[2]に２をインクリメントする。
【０４０８】
さらに、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[2]がイメージセンサ１１の垂直方向の範囲内であるとき、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[2]を、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[2]とする。
【０４０９】
そして、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[2]に対応する画素out[presentReadLineForMotCapt[2]]に対してDoThirdQuaterRead、すなわち、奇数ラインの３回目の読み出しを指示する。
【０４１０】
ステップＳ２０９（図５６）において、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが４であり、ライン番号curHMであるtimeHMが3*HM/4−1以下であり、かつ、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[2]に２を加算した値が、floor関数により、直前読み出し奇数ライン位置read position for previous motion capture[2]であるreadPositionForPrevMotCapt[2]の小数点以下の値が切り捨てられた値以下である場合、サブ演算ブロック２６１は、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[2]を２インクリメントする。
【０４１１】
さらに、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[2]がイメージセンサ１１の垂直方向の範囲内、すなわち、0以上で、かつ、HS-1以下であるとき、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion capture[2]であるpresentReadLineForMotCapt[2]を、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[2]とする。
【０４１２】
サブ演算ブロック２６１は、最新の現在読み出し奇数ライン位置presentReadLineForMotCapt[2]に対応する画素out[presentReadLineForMotCapt[2]]に対してDoThirdQuaterRead、すなわち、奇数ラインの３回目の読み出しを指示する。
【０４１３】
ステップＳ２１０（図５７）において、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが２または４であり、ライン番号curHMであるtimeHMが2*HM/4以上であり、かつ、2*HM/4+1である場合、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[1]がイメージセンサ１１の垂直方向の範囲内、すなわち、0以上で、かつ、HS-1以下であるとき、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureを、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[1]とする。
【０４１４】
そして、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[1]に対応する画素out[presentReadLineForMotCapt[1]]に対してDoSecondQuaterRead、すなわち、奇数ラインの２回目の読み出しを指示する。
【０４１５】
一方、ライン番号curHMであるtimeHMが2HM/4+1ではない場合、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[1]に２を加算した値が、floor関数により、現在読み出し奇数ライン位置read position for curent motion capture[1]であるreadPositionForCurMotCapt[1]の小数点以下を削除した値以下であるとき、サブ演算ブロック２６１は、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[1]に２をインクリメントする。
【０４１６】
さらに、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[1]がイメージセンサ１１の垂直方向の範囲内であるとき、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[1]を、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[1]とする。
【０４１７】
そして、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[1]に対応する画素out[presentReadLineForMotCapt[1]]に対してDoSecondQuaterRead、すなわち、奇数ラインの２回目の読み出しを指示する。
【０４１８】
ステップＳ２１１（図５８）において、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが２または４であり、ライン番号curHMであるtimeHMが2*HM/4−1以下であり、かつ、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[1]に２を加算した値が、floor関数により、直前読み出し奇数ライン位置read position for previous motion capture[1]であるreadPositionForPrevMotCapt[1]の小数点以下の値が切り捨てられた値以下である場合、サブ演算ブロック２６１は、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[1]を２インクリメントする。
【０４１９】
また、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[1]がイメージセンサ１１の垂直方向の範囲内、すなわち、0以上で、かつ、HS-1以下であるとき、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion capture[1]であるpresentReadLineForMotCapt[1]を、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[1]とする。
【０４２０】
そして、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインresentReadLineForMotCapt[1]に対応する画素out[resentReadLineForMotCapt[1]]に対してDoSecondQuaterRead、すなわち、奇数ラインの２回目の読み出しを指示する。
【０４２１】
ステップＳ２１２（図５９）において、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが４であり、ライン番号curHMであるtimeHMが1*HM/4以上であり、かつ、1*HM/4+1である場合、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[0]がイメージセンサ１１の垂直方向の範囲内、すなわち、0以上で、かつ、HS-1以下であるとき、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[0]を、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[0]とする。
【０４２２】
そして、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[0]に対応する画素out[presentReadLineForMotCapt[0]]に対してDoFirstQuaterRead、すなわち、奇数ラインの１回目の読み出しを指示する。
【０４２３】
一方、ライン番号curHMであるtimeHMが1*HM/4+1ではない場合、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[0]に２を加算した値が、floor関数により、現在読み出し奇数ライン位置read position for curent motion capture[0]であるreadPositionForCurMotCapt[0]の小数点以下を削除した値以下であるとき、サブ演算ブロック２６１は、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[0]に２をインクリメントする。
【０４２４】
さらに、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[0]がイメージセンサ１１の垂直方向の範囲内であるとき、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[0]を、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[0]とする。
【０４２５】
そして、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion captureであるpresentReadLineForMotCapt[0]に対応する画素out[presentReadLineForMotCapt[0]]に対してDoFirstQuaterRead、すなわち、奇数ラインの１回目の読み出しを指示する。
【０４２６】
ステップＳ２１３（図６０）において、現在奇数フレーム読み出し回数num of read for cur motion captであるreadNumForCurMotCaptが４であり、ライン番号curHMであるtimeHMが1*HM/4−1以下であり、かつ、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[0]に２を加算した値が、floor関数により、直前読み出し奇数ライン位置read position for previous motion capture[0]であるreadPositionForPrevMotCapt[0]の小数点以下の値が切り捨てられた値以下である場合、サブ演算ブロック２６１は、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[0]を２インクリメントする。
【０４２７】
さらに、最新の現在読み出し奇数ライン位置latestReadForCurMotCapt[0]がイメージセンサ１１の垂直方向の範囲内、すなわち、0以上で、かつ、HS-1以下であるとき、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインpresent read line for motion capture[0]であるpresentReadLineForMotCapt[0]を、最新の直前読み出し奇数ライン位置latestReadForPrevMotCapt[0]とする。
【０４２８】
そして、サブ演算ブロック２６１は、現在時刻読み出し奇数ラインresentReadLineForMotCapt[0]に対応する画素out[resentReadLineForMotCapt[0]]に対してDoFirstQuaterRead、すなわち、奇数ラインの１回目の読み出しを指示する。
【０４２９】
すなわち、奇数ラインについては、偶数ラインの直前の読み出し時刻と現在の読み出し時刻のとの間隔を４分割した時間間隔で、４回のリセットと読み出しを行う４倍読出し処理の場合、図６１で示されるように、４回のなかの最初の読み出しを行う奇数ラインの画素に対しては、最初の１／２４０秒（すなわち、１／６０秒のうちの最初の１／４）間は、現在のフレームの偶数ラインの読み出し時刻を表す実線Ｌ５０４よりも図中の下方（ｙ軸の正の方向）の実線Ｌ５０３を読み出している。
【０４３０】
そして、残りの３／２４０秒間は、現在のフレームの偶数ラインの読み出し時刻を表す実線Ｌ５０４よりも上方（ｙ軸の負の方向）の実線Ｌ５０５を読み出している。
【０４３１】
尚、図６１における実線Ｌ５０１，Ｌ５０４，Ｌ５０７は、図２５における実線Ｌ３４１乃至Ｌ３４３と同じものであり、図６１における点線Ｌ５０２，Ｌ５０６は、図２５の点線Ｌ３５１，Ｌ３７１と同じものである。また、実線Ｌ５０３は、実線Ｌ５０４と点線Ｌ５０２との間で１：３に案分された位置に設けられている。また、実線Ｌ５０５は、点線Ｌ５０６と実線Ｌ５０４との間で１：３に案分された位置に設けられている。
【０４３２】
さらに、奇数ラインについて、偶数ラインの４倍読み出し処理の場合、図６２で示されるように、２番目の読み出しを行う奇数ラインの画素、または、奇数ラインについて、２倍読み出し処理の場合の前半の読み出しを行う奇数ラインの画素に対しては、最初の１／１２０秒（すなわち、１／６０秒のうちの最初の１／２）間は、現在のフレームの偶数ラインの読み出し時刻を表す実線Ｌ５０４よりも下方（ｙ軸の正の方向）の実線Ｌ５１１を読み出している。
【０４３３】
そして、残りの１／１２０秒間は、現在のフレームの偶数ラインの読み出し時刻を表す実線Ｌ５０４よりも上方（ｙ軸の負の方向）の実線Ｌ５１２を読み出している。
【０４３４】
尚、図６２における実線Ｌ５０１，Ｌ５０４，Ｌ５０７、および点線Ｌ５０２，Ｌ５０６については、図２５における実線Ｌ３４１乃至Ｌ３４３、および点線Ｌ３５１，Ｌ３７１と同じものである。また、実線Ｌ５１１は、実線Ｌ５０４と点線Ｌ５０２との間で１：１に案分された位置に設けられている。また、実線Ｌ５１２は、点線Ｌ５０６と実線Ｌ５０４との間で１：３に案分された位置に設けられている。
【０４３５】
奇数ラインについて、偶数ラインの４倍読み出し処理の場合の３番目の読み出しを行う奇数ラインの画素に対しては、図６３で示されるように、最初の３／２４０秒（すなわち、１／６０秒のうちの最初の３／４）間は、「現在のフレームの偶数ラインの読み出し時刻の曲線」よりも下方（ｙ軸の正の方向）の実線Ｌ５２１で示される曲線上のラインを読み出している。そして、残りの１／２４０秒間は、現在のフレームの偶数ラインの読み出し時刻を表すＬ５０４よりも上方（ｙ軸の負の方向）の実線Ｌ５２２上のラインを読み出している。
【０４３６】
尚、図６２における実線Ｌ５０１，Ｌ５０４，Ｌ５０７、および点線Ｌ５０２，Ｌ５０６については、図２５における実線Ｌ３４１乃至Ｌ３４３、および点線Ｌ３５１，Ｌ３７１と同じものである。また、実線Ｌ５０３は、実線Ｌ５０４と点線Ｌ５０２との間で３：１に案分された位置に設けられている。また、実線Ｌ５０５は、点線Ｌ５０６と実線Ｌ５０４との間で３：１に案分された位置に設けられている。
【０４３７】
＜タイミング制御部の第６の処理について＞
次に、図６４乃至図６６を参照して、タイミング制御部１２２の第６の処理について説明する。尚、図６５乃至図６６のフローチャートにおいては、シンタックスによる記述を参照して説明する部位があり、一部、シンタックスにおけるパラメータの名称と、これまで説明してきたパラメータの名称とが異なる部位があるので、図６４を参照して、その対応関係を説明する。
【０４３８】
図６４で示されるように、タイミング制御部１２２には、第６の処理を実行するためのサブ演算ブロック２８１乃至２８３が設けられている。
【０４３９】
サブ演算ブロック（RegResetTime）２８１は、リセット信号reset[0:HS-1]がDoResetに設定され、リセット状態とすることが指示されている信号の場合、メモリからなるサブ演算ブロック（Memory）２８２に、リセット信号reset[0:HS-1]が供給されてきた絶対時刻absoluteTimeをRegResetTime[i]として書き込む。
【０４４０】
サブ演算ブロック（Memory）２８２は、RegResetTime[i]としてリセット信号reset[0:HS-1]が供給されてきた絶対時刻absoluteTimeを格納し、適宜、サブ演算ブロック２８３に供給する。
【０４４１】
サブ演算ブロック（Comp Precise Exposure Time）２８３には、サブ演算ブロック２８２からのリセット信号reset[0:HS-1]が供給されてきた絶対時刻absoluteTimeが格納されたRegResetTime[i]、読み出し信号read[0:HS-1]、現在フレーム偶数ライン露光時間exp time for cur image capt、および、直前フレーム偶数ライン露光時間exp time for prev image captが入力される。現在フレーム偶数ライン露光時間exp time for cur image capt、および、直前フレーム偶数ライン露光時間exp time for prev image captについては、それぞれ遅延部（1delay）２９１，２９２を介して、クロックclockHMが１サイクルだけ遅延された状態の情報が入力される。また、サブ演算ブロック２８２は、これらの入力信号に基づいて、偶数ライン係数exposure compensation value for image capture line、および奇数ライン係数exposure compensation value for motion capture line[0:3]を出力する。
【０４４２】
ここで、図６５，図６６のフローチャートにおいては、現在フレーム偶数ライン露光時間exp time for cur image captは、expTimefFoCurImgCaptと表記され、直前フレーム偶数ライン露光時間exp time for prev image captは、expTimefForPrevImgCaptと表記される。また、偶数ライン係数exposure compensation value for image capture lineは、compValueForImgCaptと表記され、奇数ライン係数exposure compensation value for motion capture line[0:3]は、compValueForMotCapt[0:3]と表記される。
【０４４３】
ここで、図６５，図６６のフローチャートを参照して、タイミング制御部１２２による第６の処理について説明する。
【０４４４】
ステップＳ３０１において、サブ演算ブロック２８３は、偶数ライン係数exposure compensation value for image capture lineであるcompValueForImgCaptと、奇数ライン係数exposure compensation value for motion capture line[0:3]であるcompValueForMotCapt[0:3]を０に初期化する。
【０４４５】
ステップＳ３０２において、サブ演算ブロック２８３は、全ラインについて、読み出し信号であるread[i]（図６５，図６６においてはi＝0乃至HS−1）が、読み出しを指示している場合、サブ演算ブロック２８２に格納されているRegResetTime[i]を読み出し、今現在の絶対時刻absoluteTimeとの差分を求め、求められた値で、直前フレーム偶数ライン露光時間exp time for prev image captであるexpTimefForPrevImgCaptを除することにより、偶数ライン係数exposure compensation value for image capture lineであるcompValueForImgCaptを算出する。
【０４４６】
ステップＳ３０３において、サブ演算ブロック２８３は、全ラインについて、読み出し信号であるread[i]が、４回目の読み出しを指示している場合、ステップＳ３０２と同様の演算により、奇数ライン係数exposure compensation value for motion capture line[3]であるcompValueForMotCapt[3]として算出する。
【０４４７】
ステップＳ３０４において、サブ演算ブロック２８３は、ライン番号curHMであるtimeHMがHMの３／４以上である場合、全ラインについて、読み出し信号read[i]が３回目の読み出しを指示していたとき（DoThirdQuaterRead）、サブ演算ブロック２８２に格納されているRegResetTime[i]を読み出し、今現在の絶対時刻absoluteTimeとの差分を求め、求められた値で、現在フレーム偶数ライン露光時間exp time for cur image captであるexpTimefForCurImgCaptを除することにより、３回目の読み出しとなる奇数ライン係数exposure compensation value for motion capture lineであるcompValueForMotCapt[2]を算出する。
【０４４８】
また、サブ演算ブロック２８３は、ライン番号curHMであるtimeHMがHMの３／４以上ではない場合、全ラインについて、読み出し信号read[i]が３回目の読み出しを指示していたとき（DoThirdQuaterRead）、サブ演算ブロック２８２に格納されているRegResetTime[i]を読み出し、今現在の絶対時刻absoluteTimeとの差分を求め、求められた値で、直前フレーム偶数ライン露光時間exp time for prev image captであるexpTimefForPrevImgCaptを除することにより、３回目の読み出しとなる奇数ライン係数exposure compensation value for motion capture lineであるcompValueForMotCapt[2]を算出する。
【０４４９】
ステップＳ３０５（図６６）において、サブ演算ブロック２８３は、ライン番号curHMであるtimeHMがHMの２／４以上である場合、読み出し信号read[i]が２回目の読み出しを指示していたとき（DoSecondQuaterRead）、サブ演算ブロック２８２に格納されているRegResetTime[i]を読み出し、今現在の絶対時刻absoluteTimeとの差分を求め、求められた値で、現在フレーム偶数ライン露光時間exp time for cur image captであるexpTimefForCurImgCaptを除することにより、２回目の読み出しとなる奇数ライン係数exposure compensation value for motion capture lineであるcompValueForMotCapt[1]を算出する。
【０４５０】
また、サブ演算ブロック２８３は、ライン番号curHMであるtimeHMがHMの２／４以上ではない場合、全ラインについて、読み出し信号read[i]が２回目の読み出しを指示していたとき（DoSecondQuaterRead）、サブ演算ブロック２８２に格納されているRegResetTime[i]を読み出し、今現在の絶対時刻absoluteTimeとの差分を求め、求められた値で、直前フレーム偶数ライン露光時間exp time for prev image captであるexpTimefForPrevImgCaptを除することにより、２回目の読み出しとなる奇数ライン係数exposure compensation value for motion capture lineであるcompValueForMotCapt[1]を算出する。
【０４５１】
ステップＳ３０６において、サブ演算ブロック２８３は、ライン番号curHMであるtimeHMがHMの１／４以上である場合、全ラインについて、読み出し信号read[i]が１回目の読み出しを指示していたとき（DoFirstQuaterRead）、サブ演算ブロック２８２に格納されているRegResetTime[i]を読み出し、今現在の絶対時刻absoluteTimeとの差分を求め、求められた値で、現在フレーム偶数ライン露光時間exp time for cur image captであるexpTimefForCurImgCaptを除することにより、１回目の読み出しとなる奇数ライン係数exposure compensation value for motion capture lineであるcompValueForMotCapt[0]を算出する。
【０４５２】
また、サブ演算ブロック２８３は、ライン番号curHMであるtimeHMがHMの１／４以上ではない場合、全ラインについて、読み出し信号read[i]が１回目の読み出しを指示していたとき（DoFirstQuaterRead）、サブ演算ブロック２８２に格納されているRegResetTime[i]を読み出し、今現在の絶対時刻absoluteTimeとの差分を求め、求められた値で、直前フレーム偶数ライン露光時間exp time for prev image captであるexpTimefForPrevImgCaptを除することにより、１回目の読み出しとなる奇数ライン係数exposure compensation value for motion capture lineであるcompValueForMotCapt[0]を算出する。
【０４５３】
以上の処理により、偶数ライン係数exposure compensation value for image capture line、および奇数ライン係数exposure compensation value for motion capture line[0:3]が算出される。
【０４５４】
このように、偶数ライン係数exposure compensation value for image capture line、および奇数ライン係数exposure compensation value for motion capture line[0:3]の値は、リセットの時刻と読み出し時刻との差分となる時間に逆比例した値となる。
【０４５５】
＜制御部の処理について＞
次に、図６７のフローチャートを参照して、制御部１２１の処理について説明する。
【０４５６】
ステップＳ３３１において、制御部１２１は、図示せぬ露出計などより適正露光時間（単位:秒））の情報を取得し、現在フレーム偶数ライン露光時間exposure time for current image captureを決定する。より具体的には、制御部１２１は、適正露光時間×60×HMを現在フレーム偶数ライン露光時間exposure time for current image captureに設定する。
【０４５７】
ステップＳ３３２において、制御部１２１は、直近で入力される垂直変化量deltaHperTwoClocklHM−(2×H/HM)の平均値の絶対値、または、直近で入力される水平変化量deltaWperTwoClocklHMの平均値の絶対値のいずれか大きな値に対して、（現在フレーム偶数ライン露光時間exposure time for current image capture/2）倍した演算値に応じて、現在奇数フレーム読み出し回数number of readout per frame for current motion captureを決定する。
【０４５８】
より具体的には、演算値が２未満である場合、制御部１２１は、現在奇数フレーム読み出し回数number of readout per frame for current motion captureを１、かつ、現在フレーム奇数ライン露光時間exposure time for current motion captureと現在フレーム偶数ライン露光時間exposure time for current image captureとを同一に設定する。
【０４５９】
また、演算値が２以上４未満である場合、制御部１２１は、現在奇数フレーム読み出し回数number of readout per frame for current motion captureを２、かつ、現在フレーム奇数ライン露光時間exposure time for current motion captureと現在フレーム偶数ライン露光時間exposure time for current image captureの１／２とを同一に設定する。
【０４６０】
さらに、演算値が４以上である場合、制御部１２１は、現在奇数フレーム読み出し回数number of readout per frame for current motion captureを４、かつ、現在フレーム奇数ライン露光時間exposure time for current motion captureと現在フレーム偶数ライン露光時間exposure time for current image captureの１／４とを同一に設定する。
【０４６１】
ステップＳ３３３において、制御部１２１は、現在垂直基準位置designated line number which attracts the start of current frameを（HS−H）／２に設定する。また、制御部１２１は、直線水平基準位置designated pixel number which attracts the start of previous frameを（WS−W）／２に設定する。
【０４６２】
ステップＳ３３４において、制御部１２１は、動き検出部１２９内に保持しているデータメモリから、直近の時刻における垂直方向オフセットoffsetHの値を読み出す。尚、垂直方向オフセットoffsetHは、絶対値の値が大きいほどイメージセンサ１１内の端部に近いことを示すものであり、逆に、０に近ければ近いほど、イメージセンサの中央部分を取り出していることを示す値であるが、詳細については図７２を参照して後述する。
【０４６３】
垂直方向オフセットoffsetHが０に近い場合、制御部１２１は、現在垂直パンブレ割合attractive vertical force for current frameの値を0.0に近い値に設定する。逆に、垂直方向オフセットoffsetHの絶対値が大きい場合、制御部１２１は、現在垂直パンブレ割合attractive vertical force for current frameの値を1.0に近い値に設定する。
【０４６４】
制御部１２１は、動き検出部１２９内に保持しているデータメモリから、直近の時刻における水平方向オフセットoffsetWの値を読み出す。尚、水平方向オフセットoffsetWは、絶対値の値が大きいほどイメージセンサ１１内の端部に近いことを示すものであり、逆に、０に近ければ近いほど、イメージセンサの中央部分を取り出していることを示す値であるが、詳細については図７２を参照して後述する。
【０４６５】
水平方向オフセットoffsetWが０に近い場合、制御部１２１は、現在水平パンブレ割合attractive horizontal force for previous frameの値を0.0に近い値に設定する。逆に、水平方向オフセットoffsetWの絶対値が大きい場合、制御部１２１は、現在水平パンブレ割合attractive horizontal force for previous frameの値を1.0に近い値にする。
【０４６６】
すなわち、上述の処理により、イメージセンサ１１の現在のフレームの読み出し位置が、イメージセンサ１１の端部に近づいた場合、次のフレームで読み出そうとする位置がイメージセンサ１１の領域をはみ出してしまう可能性がある。そこで、現在垂直パンブレ割合attractive vertical force for current frameおよび現在水平パンブレ割合attractive horizontal force for previous frameについては、パンの割合が大きくなるように設定される。パンの割合が大きくなれば、強制的にｙ＝ｙ０から１０８０ライン分が読み出されるような位置にすることが可能となる。
【０４６７】
逆に、イメージセンサ１１の中央部分を読み出している場合、現在垂直パンブレ割合attractive vertical force for current frameおよび現在水平パンブレ割合attractive horizontal force for previous frameについては、手振れの割合が大きくなるように設定される。このため、直近の時刻における１９２０×１０８０画素の取り出し位置が、イメージセンサ１１を構成するWS×HS個の画素（受光素子）の中のどの位置であるかを示す値（後述する垂直方向オフセットoffsetHと水平方向オフセットoffsetW）が用いられる。
【０４６８】
＜マッチング部の処理について＞
次に、図６８のフローチャートを参照して、マッチング部１２８の処理について説明する。
【０４６９】
ステップＳ３５１において、マッチング部１２８は、入力されてくる１ライン分の１次元の画素データをターゲットデータtarget dataとして取得する。このとき、ターゲットデータtarget dataに付随する現在時刻読み出し偶数ラインpresent read line for image capture[i]の値をターゲットラインtarget lineとし、整数水平方向読み出し開始位置read start pixel int の値をtarget start pixelとする。
【０４７０】
ステップＳ３５２において、マッチング部１２８は、フレームメモリ１２７に格納されている１ライン分のデータ（１次元データ列）を参照データreference dataとして取得する。このとき、伸長部１６２により圧縮された１ライン分のデータは伸長されており、ターゲットデータtarget dataと同サイズとされている。マッチング部１２８は、ターゲットデータtarget dataとの相関を取り、最も相関のあるときの参照データreference dataを検出する。このとき、ターゲットデータtarget dataを水平方向（ｘ軸方向）に移動させても良い。
【０４７１】
ここで、最も相関のある時のｘ軸方向の移動量を最大相関移動量length in case of max correlationとする。また、参照データreference dataから読み出した「１ライン分のデータ」に対応する現在時刻読み出し奇数ラインpresent read line for motion capture[0:3]の値を最大相関ラインreference lineとする。さらに、参照データreference dataから読み出した１ライン分のデータに対応する整数水平方向読み出し開始位置read start pixel intの値を参照開始画素位置reference start pixelとする。また、参照データreference dataから読み出した１ライン分のデータに対応する時刻absoluteTimeの値を参照時刻reference timeとする。
【０４７２】
ステップＳ３５３において、マッチング部１２８は、最大相関ラインreference lineと、ターゲットラインtarget lineとの差分を、垂直方向差分diffHとして算出し、動き検出部１２９に供給する。また、マッチング部１２８は、参照開始画素reference start pixelから最大相関移動量length in case of max correlationと、参照開始画素位置reference start pixelと合わせて減算した値を、水平方向差分diffWとして算出し、動き検出部１２９に供給する。さらに、マッチング部１２８は、参照時刻reference timeを基準時刻baseTimeとして、動き検出部１２９に供給する。
【０４７３】
以上の処理により、図６９で示されるように、現在の時刻と、参照時刻reference timeとにおけるWS×HS個の画素（受光素子）のいずれかのライン上に画素値が配列されている部位との位置関係が求められる。すなわち、現在の時刻において、ｙ座標がターゲットラインtarget lineであり、ｘ座標が（参照開始画素target start pixel＋最大相関移動量length in case of max correlation）から始まる横方向の１次元データ（投影像）と、参照時刻reference timeにおいて、ｙ座標が最大相関ラインreference lineであり、ｘ座標が参照開始画素reference start pixelから始まる横方向の１次元データ（投影像）は、同じ投影像であるとみなされる。
【０４７４】
そこで、以上の処理により、この投影像の位置関係の差を示す情報として、垂直方向差分diffH、水平方向差分diffW、および基準時刻baseTimeが動き検出部１２９に渡されることになる。
【０４７５】
尚、各マッチング部１２８に入力される１ライン分のデータ（１次元データ列）は、フレームメモリ１２７のIn [0:3]端子に入力されたすべてのデータについて行う。
【０４７６】
また、この処理は、奇数ラインが読み出されたときのみ処理されるので、クロックclockHMの２サイクルに１回処理が行われる。
【０４７７】
さらに、上述した説明では、ライン（１次元データ列）を使ったマッチング処理を具体例として説明したが、この他に特徴点ベースのマッチングや、ブロックマッチングなどを使用しても良い。または、ジャイロセンサ等を用いて、ジャイロセンサにより検出されたデータを用いることで、垂直方向差分diffH、水平方向差分diffW、および基準時刻baseTimeを求めるようにしてもよい。
【０４７８】
尚、フレームメモリ１２７については、イメージセンサ１１により撮像された画像を構成する画素データをそのまま記憶するものではなく、圧縮部１６１により圧縮された画像を記憶するものである。圧縮された画像は、上述したようにマッチング部１２８により動きを検出するための画像であればよく、高画質な画像である必要がないため、小さな容量でよいものである。したがって、フレームメモリ１２７は、一般に、イメージセンサ１１により撮像された画像を、そのまま一旦記憶するものよりも十分に小さな容量のメモリであるので、コストの負担を増大させるものではない。
【０４７９】
＜動き検出部の処理について＞
次に、図７０乃至図７２を参照して、動き検出部１２９の処理について説明する。
【０４８０】
ステップＳ３７１において、動き検出部１２９は、マッチング部１２８−１乃至１２８−４より供給されてくる垂直方向差分diffHを、それぞれ垂直方向差分diffH[0]，diffH[1]，diffH[2]，diffH[3]とする。同様に、動き検出部１２９は、マッチング部１２８−１乃至１２８−４より供給されてくる水平方向差分diffWをそれぞれ水平方向差分diffW[0]，diffW[1]，diffW[2]、およびdiffHW[3]とする。さらに、動き検出部１２９は、マッチング部１２８−１乃至１２８−４より供給されてくる基準時刻baseTimeをそれぞれ基準時刻baseTime[0]，baseTime[1]，baseTime[2]，baseTime[3]とする。なお、各[]内の表記については、[i]と表記するものとし、i=0乃至3であるものとする。
【０４８１】
ステップＳ３７２において、動き検出部１２９は、内部に保持しているデータメモリ（図示省略）から、基準時刻baseTime[i]に対応する垂直方向オフセットoffsetH、および水平方向オフセットoffsetWの値を読み出し、垂直方向オフセットoffsetH[i]、水平方向オフセットoffsetW[i]とする。
【０４８２】
そして、動き検出部１２９は、垂直変化量offsetHtmp[i]を、垂直方向オフセットoffsetH[i]と垂直方向差分diffH[i]との和として計算する。同様に、動き検出部１２９は、水平変化量offsetWtmp[i]を、水平方向オフセットoffsetW[i]と水平方向差分diffW[i]との和として計算する。尚、動き検出部１２９は、イネーブルENがdisableで計算されていない場合は、無効データとして無視する。
【０４８３】
ステップＳ３７３において、動き検出部１２９は、４つの垂直変化量offsetHtmp[i]の中で有効なデータの平均値を計算し、時刻absoluteTimeに対応する垂直方向オフセットoffsetHの値として、内部のデータメモリに格納する。また、動き検出部１２９は、４つの水平変化量offsetWtmp[i]のなかで有効なデータの平均値を計算し、時刻absoluteTimeに対応する水平方向オフセットoffsetWの値として、図示せぬ内部のデータメモリに格納する。
【０４８４】
なお、４つ全てのデータが無効である場合、動き検出部１２９は、内部のデータメモリに格納する、時刻absoluteTimeに対応する水平方向オフセットoffsetHの値として、データメモリから時刻(absoluteTime−2)に対応する垂直方向オフセットoffsetHを２倍した値から時刻(absoluteTime−4)に対応する垂直方向オフセットoffsetHの値を引き算した値（即ち、時刻(absoluteTime−4)および(absoluteTime−2)の値から、時刻absoluteTimeに対応する垂直方向オフセットoffsetHの値を外挿した値）とする。
【０４８５】
同様に、動き検出部１２９は、内部のデータメモリに格納する、時刻absoluteTimeに対応する水平方向オフセットoffsetWの値として、データメモリから時刻(absoluteTime−2)に対応する水平方向オフセットoffsetWの２倍した値から、データメモリから時刻(absoluteTime−4)に対応する水平方向オフセットoffsetWの値を引き算した値（即ち、時刻(absoluteTime−4)および(absoluteTime−2)の値から、絶対時刻absoluteTimeに対応する水平方向オフセットoffsetWの値を外挿した値）とする。
【０４８６】
ステップＳ３７４（図７１）において、動き検出部１２９は、ステップＳ３７３の処理でデータメモリに格納した時刻absoluteTimeに対応する垂直方向オフセットoffsetHと、内部のデータメモリに保持している時刻（absoluteTime−2）に対応する垂直方向オフセットoffsetHの差を計算し、さらに、（2*H/HM）という定数を加算した値を、垂直移動量deltaHperTwoClocklHMとして出力する。
【０４８７】
また、動き検出部１２９は、ステップＳ３７３の処理でデータメモリに格納した時刻absoluteTimeに対応する水平方向オフセットoffsetWと、内部のデータメモリに保持している時刻(absoluteTime−2)に対応する水平方向オフセットoffsetWの差を、水平方向移動量deltaWperTwoClocklHMとして出力する。
【０４８８】
なお、上述の変数の説明を、図７２を参照して説明する。図７２において、最初の１フレーム目のイメージセンサ１１（WS×HS個の画素（受光素子）上の全画素の左上の位置を原点としている。最初の１フレーム目では、イメージセンサ１１の中央部分が読み出される。
【０４８９】
従って、各時刻における垂直方向オフセットoffsetHの絶対値の大きさが大きければ大きいほど、その時刻において、イメージセンサの上辺あるいは下辺に近い部分から1920×1080画素の取り出していることを意味する。そして、各時刻における水平方向オフセットoffsetWの絶対値の大きさが大きければ大きいほど、その時刻において、イメージセンサの左辺あるいは右辺に近い部分から1920×1080画素の取り出していることを意味する。
【０４９０】
図７２で示されるように、過去の時刻baseTime（すなわち、reference time）における垂直方向オフセットoffsetHと水平方向オフセットoffsetW、および、垂直方向差分diffHと水平方向差分diffWとから、現在の時刻absoluteTimeにおける垂直方向オフセットoffsetHと水平方向オフセットoffsetWを求めている。
【０４９１】
このようにして、垂直方向移動量deltaHperTwoClocklHMおよび水平方向移動量deltaWperTwoClocklHMが求められる。
【０４９２】
＜補間部の処理＞
次に、図７３乃至図７６を参照して、補間部１３２の処理について説明する。
【０４９３】
ステップＳ３９１において、補間部１３２は、クロックclockHに対応した時刻timeHを１インクリメントする。ただし、H＝０の場合、すなわち、初回に限りtimeH＝0とする。これにより、現在のクロックclockHに同期した時刻において、出力すべきライン番号（０乃至１０７９）が確定する。
【０４９４】
ステップＳ３９２において、補間部１３２は、図７５で示されるように、クロックclockHとクロックclockHMとを同期させた現在時刻である同期現在時刻timeDoubleをtimeH*HM/Hにより算出する。また、補間部１３２は、図７５で示されるように、クロックclockHMの同期時刻timeIntをfloor(timeDouble/2.0)*2.0のように算出する。さらに、補間部１３２は、図７５で示されるように、時間重みtimeWeightを(timeDouble-timeInt)/2.0のように算出する。
【０４９５】
ステップＳ３９３において、補間部１３２は、クロックclockHMに同期して、データセットメモリ１３１に格納されている、どの時刻（上述のtimeHM）に、どのラインのどの画素を読み出せば良いかというデータセットを読み出し、クロックclockHに同期した各時刻において、どのラインのどの画素を読み出せば良いかという情報を求める。
【０４９６】
すなわち、補間部１３２は、データセットメモリ１３１より、読み出すべき画素を特定する、クロックclockHMに同期した時刻timeHM＝timeIntのデータセットを読み出す。補間部１３２は、読み出したデータセットの水平方向読み出し開始位置read start pixelをstart pixel 1と定義する。補間部１３２は、読み出したデータセットの現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameをline 1と定義する。
【０４９７】
ステップＳ３９４において、補間部１３２は、データセットメモリ１３１から、時刻timeHM=timeInt+2であるデータセットを読み出す。補間部１３２は、読み出したデータセットの水平方向読み出し開始位置read start pixelをstart pixel 2と定義する。また、補間部１３２は、読み出したデータセットの現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameをline 2と定義する。
【０４９８】
ただし、（HM−2）<（timeInt+2）である場合、補間部１３２は、読み出したデータセットの過去水平方向読み出し開始位置read start pixel pastをstart pixel 2と定義し、直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameをline 2と定義する。
【０４９９】
これは、（HM−2）<（timeInt+2）である場合には、timeInt+2の時刻においては、クロックclockHMに同期した処理は、すでに、次のフレームに移行しているからである。そこで、水平方向読み出し開始位置read start pixelおよび現在フレーム偶数ライン上読み出し垂直座標line corresponding to start time of current frameに代えて、それぞれ過去水平方向読み出し開始位置read start pixel pastおよび直前フレーム偶数ライン延長線上読み出し垂直座標line corresponding to start time of previous frameが用いられる。
【０５００】
ステップＳ３９５（図７４）において、補間部１３２は、クロックclockHMに同期した時刻timeIntに対応する１ライン分の画素データ（line data 1)を作成する。すなわち、補間部１３２は、ラインメモリ１３０より、現在時刻読み出し偶数ラインpresent read line for image captureが、floor(line 1)（line1で定義される値の小数点以下が切り捨てられたライン）となる１ライン分の画素データ、または、現在時刻読み出し奇数ラインpresent read line for motion capture[3]がfloor(line1)（line1で定義される値の小数点以下が切り捨てられたライン）である１ライン分の画素データを読み出す。
【０５０１】
さらに、補間部１３２は、画素データが格納されているラインメモリ１３０から、現在時刻読み出し偶数ラインpresent read line for image captureがfloor(line 1)+1であるか、または、現在時刻読み出し奇数ラインpresent read line for motion capture[3]がfloor(line 1)+1である１ライン分の画素データを読み出す。
【０５０２】
尚、現在時刻読み出し偶数ラインpresent read line for image captureの値は偶数であり、現在時刻読み出し奇数ラインpresent read line for motion capture[3]の値は奇数であるから、ラインメモリ１３０から読み出すデータは、それぞれ１つずつである。
【０５０３】
読み出されたデータである２ライン分の画素データから、（line 1）番目のラインで、（start pixel 1）の位置から、（（start pixel 1）＋H−1）の位置までの合計H個の画素データ列を作成する。なお、（line 1）および（start pixel 1）の値は小数部を含むので、画素データ列を作成するにあたっては、補間部１３２は、２次元線形補間を行う。このＨ個の１ライン分のデータをline data 1とする。
【０５０４】
ステップＳ３９６において、補間部１３２は、クロックclockHMに同期した時刻（timeInt＋２）に対応する１ライン分の画素データ（line data 2)を作成する。すなわち、補間部１３２は、ラインメモリ１３０から、現在時刻読み出し偶数ラインpresent read line for image captureがfloor(line 2)、または、現在時刻読み出し奇数ラインpresent read line for motion capture[3]がfloor(line 2)である１ライン分の画素データを読み出す。さらに、補間部１３２は、ラインメモリ１３０から、現在時刻読み出し偶数ラインpresent read line for image captureが（floor（line 2）+1）、または、現在時刻読み出し奇数ラインpresent read line for motion capture[3]が（floor(line 2)+1）であるデータを読み出す。
【０５０５】
尚、現在時刻読み出し偶数ラインpresent read line for image captureの値は偶数であり、現在時刻読み出し奇数ラインpresent read line for motion capture[3]の値は奇数であるから、ラインメモリ１３０から読み出される１ライン分の画素データは、それぞれ１つずつである。
【０５０６】
補間部１３２は、読み出されたデータである２ライン分の画素データから、（line 2）番目のラインで、（start pixel 2）の位置から、（（start pixel 2）+H−1）の位置までの合計H個の画素データ列を作成する。なお、（line 2）および（start pixel 2）の値は小数部を含むので、画素データ列を作成するにあたって、補間部１３２は、２次元線形補間を行う。このＨ個の１ライン分のデータをline data 2とする。
【０５０７】
ステップＳ３９７において、補間部１３２は、１ライン分のデータline data 1，line data 2の各画素データに対して、時間重みtimeWeightを用いて、(1.0−timeWeight)：timeWeightの割合で重み付け加算を行い、新しい１ライン分の画素データを、現在の時刻(timeH)における１列分の画素データ(Out Data)として出力する。
【０５０８】
すなわち、line data 1，line data 2のそれぞれにおける同一の位置の画素の画素値をそれぞれPd1,Pd2とし、求めようとするライン上の対応する位置の画素の画素値をPdとすると、図７５で示されるような、(1.0−timeWeight)：timeWeightの割合の場合、補間部１３２は、Pd1×timeWeight＋Pd2×(1.0−timeWeight)を算出し、この演算結果を求めようとするライン上の画素値Pdとする。
【０５０９】
以上のごとく、垂直方向移動量deltaHperTwoClocklHMおよび水平方向移動量deltaWperTwoClocklHMにより、現在の時刻において、イメージセンサ１１上のどのラインのどの位置から読み出せば良いかを決定し、その決定に基づき、イメージセンサ１１の受光素子の中から適応的に読み出すようにした。
【０５１０】
また、垂直方向移動量deltaHperTwoClocklHMおよび水平方向移動量deltaWperTwoClocklHMから、露光時間内での被写体の動きを予測して、奇数ラインについて、偶数ラインの直前の読み出し時刻と今回の読み出し時刻との時間間隔を何分割すれば良いかを決定している。そして、偶数ラインの画素データと奇数ラインの画素データとが線形補間により生成される（図７４のフローチャートを参照して説明した処理により生成される）。このため、通常の撮像ではブレてしまうような状況でも、偶数ラインの画素からなるブレのある画像と、奇数ラインの画素からなるノイズはあるがブレのない画像とを合成することで、ブレ、および、ノイズを抑制した画像を生成することが可能となる。
【０５１１】
また、奇数ラインの画素データと、過去の画素データとを比較することで、垂直方向移動量deltaHperTwoClocklHMおよび水平方向移動量deltaWperTwoClocklHMを求めるようにした。もちろん、ジャイロセンサが撮像装置に組み込まれている場合、このジャイロセンサの検出結果を使って、垂直方向移動量deltaHperTwoClocklHMおよび水平方向移動量deltaWperTwoClocklHMを求めても良い。
【０５１２】
たとえば、奇数ラインについて、偶数ラインの直前の読み出し時刻と今回の読み出し時刻との時間間隔を４分割して、４回のリセットと読み出しを行う４倍読み出し処理の場合、図７６の偶数ラインおよび奇数ラインの読み出し時刻を表す太い曲線、および奇数ラインの読み出し時刻を表す細い曲線からなる奇数ラインのデータでとして読み出される。図７６において、時刻ｔ５について着目すると、この時刻ｔ５においては、図中の黒丸に対応する４つのラインが読み出される。
【０５１３】
また、本技術を適用したイメージセンサでは、読み出された画素ライン毎に、４つのマッチング部１２８−１乃至１２８−４において、被写体の移動が検出される。４つの画素ラインは、１０８０ラインにわたって、ほぼ等間隔に分割されたラインであり、例えば、上部に偏った４つのライン等ではない。これにより、垂直方向移動量deltaHperTwoClocklHMおよび水平方向移動量deltaWperTwoClocklHMをロバストに検出することが可能となる。
【０５１４】
画面内のある一部分に偏った部分（領域）のみについて検出すると、その領域が、たまたま、テクスチャがない被写体投影像であったり、模様の繰り返しパターンがある被写体投影像であったりすると、誤判定を起こしてしまう。
【０５１５】
しかしながら、本技術によれば、領域が偏っていないので、たまたま一部分に判断不可能な領域があったとしても、他の領域を検査しているマッチング部１２８の処理により、ロバストに動きを求めることができる。
【０５１６】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０５１７】
図７７は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)１００１を内蔵している。CPU１００１にはバス１００４を介して、入出力インタ-フェイス１００５が接続されている。バス１００４には、ROM(Read Only Memory)１００２およびRAM(Random Access Memory)１００３が接続されている。
【０５１８】
入出力インタ-フェイス１００５には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部１００６、処理操作画面や処理結果の画像を表示デバイスに出力する出力部１００７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部１００８、LAN（Local Area Network）アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部１００９が接続されている。また、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどのリムーバブルメディア１０１１に対してデータを読み書きするドライブ１０１０が接続されている。
【０５１９】
CPU１００１は、ROM１００２に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア１０１１ら読み出されて記憶部１００８にインストールされ、記憶部１００８からRAM１００３にロードされたプログラムに従って各種の処理を実行する。RAM１００３にはまた、CPU１００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０５２０】
以上のように構成されるコンピュータでは、CPU１００１が、例えば、記憶部１００８に記憶されているプログラムを、入出力インタフェース１００５及びバス１００４を介して、RAM１００３にロードして実行することにより、上述した一連の処理が行われる。
【０５２１】
コンピュータ（CPU１００１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１０１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０５２２】
コンピュータでは、プログラムは、リムーバブルメディア１０１１をドライブ１０１０に装着することにより、入出力インタフェース１００５を介して、記憶部１００８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１００９で受信し、記憶部１００８にインストールすることができる。その他、プログラムは、ROM１００２や記憶部１００８に、あらかじめインストールしておくことができる。
【０５２３】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０５２４】
また、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０５２５】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０５２６】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０５２７】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０５２８】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０５２９】
尚、本技術は、以下のような構成も取ることができる。
（１）  被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すタイミングをライン毎に適応的に制御する受光素子制御部と
を含むイメージセンサ。
（２）  前記検出部は、前記受光素子により過去、および現在において撮像された画像を用いて前記移動量を検出する、または、ジャイロセンサにより前記移動量を検出する
（１）に記載のイメージセンサ。
（３）  前記受光素子制御部は、過去に複数の受光素子から画素データを読み出したラインの時系列の変位と、現在の複数の受光素子から画素データを読み出したラインの時系列の変位との案分により求められるタイミングでライン毎の読み出しを適応的に制御する
（１）または（２）に記載のイメージセンサ。
（４）  前記受光素子制御部は、前記受光素子がリセットされてから読み出されるまでの露光時間の、適正露光時間に対する割合の逆数に比例する係数を算出し、
前記２次元上に配置された複数の受光素子の一部の受光素子が受光することで発生した画素データに、前記係数を乗算してゲインを調整する乗算部をさらに含む
（１）乃至（３）のいずれかに記載のイメージセンサ。
（５）  被写体からの光を受光する２次元上に配置された複数の受光素子を備えるイメージセンサの動作方法において、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すラインを適応的に制御する
イメージセンサの動作方法。
（６）  被写体からの光を受光する２次元上に配置された複数の受光素子を備えるイメージセンサを制御するコンピュータに、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すラインを適応的に制御する
ステップを含む処理を実行させるプログラム。
（７）  被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子から読み出すタイミングをライン毎に適応的に制御する受光素子制御部と
を含む電子機器。
（８）  被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する受光素子制御部と
を含むイメージセンサ。
（９）  前記検出部は、前記受光素子により過去、および現在において撮像された画像を用いて前記移動量を検出する、または、ジャイロセンサにより前記移動量を検出する
（８）に記載のイメージセンサ。
（１０）  前記露光時間が短く制御された前記一部の受光素子により撮像された画素データと、前記一部の受光素子を除く受光素子により撮像された画素データとを合成する合成部をさらに含む
（８）または（９）に記載のイメージセンサ。
（１１）  被写体からの光を受光する２次元上に配置された複数の受光素子を備えたイメージセンサの動作方法において、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する
イメージセンサの動作方法。
（１２）  被写体からの光を受光する２次元上に配置された複数の受光素子を備えたイメージセンサを制御するコンピュータに、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する
ステップ含む処理を実行させるプログラム。
（１３）  被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くするように制御する受光素子制御部と
を含む電子機器。
（１４）  被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する受光素子制御部と
を含むイメージセンサ。
（１５）  前記受光素子制御部は、前記一部の受光素子により撮像された画素データについては、前記一部の受光素子を除く受光素子により撮像された画素データよりも語長を短くする
（１４）に記載のイメージセンサ。
（１６）  前記検出部は、前記一部の受光素子により過去、および現在において撮像された画像を用いて前記移動量を検出する、または、ジャイロセンサにより前記移動量を検出する
（１４）または（１５）に記載のイメージセンサ。
（１７）  被写体からの光を受光する２次元上に配置された複数の受光素子を備えるイメージセンサの動作方法において、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する
イメージセンサの動作方法。
（１８）  被写体からの光を受光する２次元上に配置された複数の受光素子を備えるイメージセンサを制御するコンピュータに、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出し、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する
ステップを含む処理を実行させるプログラム。
（１９）  被写体からの光を受光する２次元上に配置された複数の受光素子と、
前記２次元上に配置された複数の受光素子に投影される前記被写体の投影像の移動量を検出する検出部と、
前記移動量に応じて、前記２次元上に配置された複数の受光素子のうち、一部の受光素子の露光時間を適応的に短くし、複数回数撮像するように制御する受光素子制御部と
を含む電子機器。
【符号の説明】
【０５３０】
１１  イメージセンサ，  ２１  画像，  １０１  撮像装置，  １２１  制御部（Controller），  １２２  タイミング制御部（Reset and Readout Timing block），  １２３  垂直制御部（Computing Line Corresponding to Start Time block），  １２４  水平制御部（Computing Pixel Corresponding to Start Time block），  １２５，１２５−１乃至１２５−５  パラレルシリアル変換部（P/S），  １２６，１２６−１乃至１２６−５  乗算部，  １２７  フレームメモリ（Frame Memory），  １２８，１２８−１乃至１２８−５  マッチング部（Matching），  １２９  Comp Delta MV，  １３０  ラインメモリ（Lines Memory），  １３１  データセットメモリ（Data Set Memory），  １３２  補間部（Interpolation），  １６１，１６１−１乃至１６１−４  圧縮部（shrink），  １６２  伸張部（enlarge）
【図１】
2015082677.tif 000003
【図２】
2015082677.tif 000004
【図３】
2015082677.tif 000005
【図４】
2015082677.tif 000006
【図５】
2015082677.tif 000007
【図６】
2015082677.tif 000008
【図７】
2015082677.tif 000009
【図８】
2015082677.tif 000010
【図９】
2015082677.tif 000011
【図１０】
2015082677.tif 000012
【図１１】
2015082677.tif 000013
【図１２】
2015082677.tif 000014
【図１３】
2015082677.tif 000015
【図１４】
2015082677.tif 000016
【図１５】
2015082677.tif 000017
【図１６】
2015082677.tif 000018
【図１７】
2015082677.tif 000019
【図１８】
2015082677.tif 000020
【図１９】
2015082677.tif 000021
【図２０】
2015082677.tif 000022
【図２１】
2015082677.tif 000023
【図２２】
2015082677.tif 000024
【図２３】
2015082677.tif 000025
【図２４】
2015082677.tif 000026
【図２５】
2015082677.tif 000027
【図２６】
2015082677.tif 000028
【図２７】
2015082677.tif 000029
【図２８】
2015082677.tif 000030
【図２９】
2015082677.tif 000031
【図３０】
2015082677.tif 000032
【図３１】
2015082677.tif 000033
【図３２】
2015082677.tif 000034
【図３３】
2015082677.tif 000035
【図３４】
2015082677.tif 000036
【図３５】
2015082677.tif 000037
【図３６】
2015082677.tif 000038
【図３７】
2015082677.tif 000039
【図３８】
2015082677.tif 000040
【図３９】
2015082677.tif 000041
【図４０】
2015082677.tif 000042
【図４１】
2015082677.tif 000043
【図４２】
2015082677.tif 000044
【図４３】
2015082677.tif 000045
【図４４】
2015082677.tif 000046
【図４５】
2015082677.tif 000047
【図４６】
2015082677.tif 000048
【図４７】
2015082677.tif 000049
【図４８】
2015082677.tif 000050
【図４９】
2015082677.tif 000051
【図５０】
2015082677.tif 000052
【図５１】
2015082677.tif 000053
【図５２】
2015082677.tif 000054
【図５３】
2015082677.tif 000055
【図５４】
2015082677.tif 000056
【図５５】
2015082677.tif 000057
【図５６】
2015082677.tif 000058
【図５７】
2015082677.tif 000059
【図５８】
2015082677.tif 000060
【図５９】
2015082677.tif 000061
【図６０】
2015082677.tif 000062
【図６１】
2015082677.tif 000063
【図６２】
2015082677.tif 000064
【図６３】
2015082677.tif 000065
【図６４】
2015082677.tif 000066
【図６５】
2015082677.tif 000067
【図６６】
2015082677.tif 000068
【図６７】
2015082677.tif 000069
【図６８】
2015082677.tif 000070
【図６９】
2015082677.tif 000071
【図７０】
2015082677.tif 000072
【図７１】
2015082677.tif 000073
【図７２】
2015082677.tif 000074
【図７３】
2015082677.tif 000075
【図７４】
2015082677.tif 000076
【図７５】
2015082677.tif 000077
【図７６】
2015082677.tif 000078
【図７７】
2015082677.tif 000079