(57)【要約】【課題】Ｘ−Ｙアドレス型の撮像素子を用いた撮像装置においても、手ぶれ等が原因で生じるフォーカルプレーン現象による撮像画像の歪を軽減することができる方法および装置を提供する。【解決手段】撮影時の撮像素子の、撮像画像の水平方向および／または垂直方向の位置的変化による撮像画像の歪みを補正する方法である。撮像画像の１画面区間を複数個の分割画像区間に分割する。複数個の分割画像区間のそれぞれごとに、撮像素子の位置的変化の速度を検出する。複数個の分割画像区間のそれぞれ内では、各分割画像区間について検出された撮像素子の位置的変化の速度に基づいて、撮像素子の位置的変化よる撮像画像の歪みを補正する。【選択図】図１
2006186481.tif 000002
【特許請求の範囲】
【請求項１】
撮影時の撮像素子の、撮像画像の水平方向および／または垂直方向の位置的変化による撮像画像の歪みを補正する方法であって、
前記撮像画像の１画面区間を複数個の分割画像区間に分割し、
前記複数個の分割画像区間のそれぞれごとに前記位置的変化の速度を検出し、
前記複数個の分割画像区間のそれぞれ内では、各分割画像区間について検出された前記位置的変化の速度に基づいて、前記位置的変化よる撮像画像の歪みを補正する
ことを特徴とする撮像画像信号の歪み補正方法。
【請求項２】
請求項１に記載の撮像画像信号の歪み補正方法において、
前記各分割画像区間内においては、当該各分割画像区間について検出された前記位置的変化の速度の時間積分値を前記撮像画像の歪み補正対象部位の位置的変位量とし、前記時間積分値を用いて前記撮像画像の歪みを補正する
ことを特徴とする撮像画像信号の歪み補正方法。
【請求項３】
請求項１に記載の撮像信号の歪み補正方法において、
前記撮像素子は、前記撮像画像のデータを画素単位で読み出しが可能のものであって、
前記位置的変化の速度として、前記各分割画像区間の先頭部位に対する前記位置的変化の速度を検出すると共に、前記各分割画像区間内においては、前記先頭部位に対する歪み補正対象部位の読み出し遅れ時間を用いて前記位置的変化の速度を時間積分して得られる変位量を、前記歪み補正対象部位の変位量として前記撮像画像の歪みを補正する
ことを特徴とする撮像画像信号の歪み補正方法。
【請求項４】
請求項１に記載の撮像信号の歪み補正方法において、
前記撮像素子からは前記撮像画像のデータをライン単位で読み出しするものであると共に、前記分割は、前記各分割画像区間が複数ラインからなるように行ない、
前記位置的変化の速度として、前記各分割画像区間の先頭ラインに対する前記位置的変化の速度を離散的に検出し、
前記各分割画像区間内においては、前記各分割画像区間の先頭ラインに対するものとして検出した前記位置的変化の速度を前記ライン単位に時間積分して得られる変位量を各ライン位置の変位量として前記撮像画像の歪みを補正する
ことを特徴とする撮像画像信号の歪み補正方法。
【請求項５】
請求項１に記載の撮像信号の歪み補正方法において、
前記位置的変化の速度を、水平方向の成分と垂直方向の成分とに分け、
前記位置的変化の速度の水平方向成分を用いて、前記画像の水平方向の歪みを補正し、前記位置的変化の速度の垂直方向成分を用いて、前記画像の垂直方向の歪みを補正する
ことを特徴とする撮像信号の歪み補正方法。
【請求項６】
請求項４に記載の撮像信号の歪み補正方法において、
前記位置的変化の速度を、水平方向の成分と垂直方向の成分とに分け、
前記各分割画像区間内においては、前記位置的変化の速度の水平方向の成分を、前記ライン単位に時間積分して得られる前記水平方向の変位量を各ラインの水平方向の変位量として前記画像の水平方向の歪みを補正すると共に、前記位置的変化の速度の垂直方向の成分を、前記ライン単位に時間積分して得られる前記垂直方向の変位量を各ラインの垂直方向の変位量として前記画像の垂直方向の歪みを補正する
ことを特徴とする撮像信号の歪み補正方法。
【請求項７】
請求項４に記載の撮像信号の歪み補正方法において、
前記ライン単位に時間積分して得る前記各ライン位置の変位量の算出開始時点は、処理しようとする対応する水平ラインの先頭時点よりも１水平区間前である
ことを特徴とする撮像信号の歪み補正方法。
【請求項８】
請求項６に記載の撮像信号の歪み補正方法において、
前記画像の水平方向の歪みの補正処理と、前記画像の垂直方向の歪みの補正処理とを並行して行なうようにすると共に、前記画像の水平方向の歪みの補正処理の進捗度合いを参照しながら前記垂直方向の変位量の時間積分処理をする
ことを特徴とする撮像信号の歪み補正方法。
【請求項９】
撮影時の手ぶれによる撮像素子の位置的変位による撮像画像の歪を補正する方法であって、
前記撮像画像の１画面区間を複数個の分割画像区間に分割し、
前記複数個の分割画像区間のそれぞれごとに前記手ぶれ変化を検出し、
前記複数個の分割画像区間のそれぞれ内では、各分割画像区間について検出された前記手ぶれ変化に基づいて、前記位置的変位よる撮像画像の歪を補正する
ことを特徴とする撮像画像信号の歪み補正方法。
【請求項１０】
請求項９に記載の撮像画像信号の歪み補正方法において、
前記検出する手ぶれ変化は、前記撮影時の撮像素子の位置的変位の速度である
ことを特徴とする撮像画像信号の歪み補正方法。
【請求項１１】
撮影時の撮像素子の位置的変化による撮像画像の歪みを補正する装置であって、
前記撮像素子の画像領域が複数個に分割された各分割画像区間ごとに前記位置的変化の速度を検出する速度検出手段と、
前記各分割画像区間内では、前記各分割画像区間について前記速度検出手段で検出された前記位置的変化の速度に基づいて、前記位置的変化よる撮像画像の歪みを補正する歪み補正処理手段と、
を備えることを特徴とする撮像画像信号の歪み補正装置。
【請求項１２】
請求項１１に記載の撮像画像信号の歪み補正装置において、
前記歪み補正処理手段は、
前記各分割画像区間内においては、前記各分割画像区間について検出された前記位置的変化の速度の時間積分値を前記撮像画像の歪み補正対象部位の位置的変化量として求める変位量積分手段と、
前記変位量積分手段で求められた前記時間積分値を用いて前記撮像画像の歪みを補正する補正手段と
を備えることを特徴とする撮像画像信号の歪み補正装置。
【請求項１３】
請求項１１に記載の撮像画像信号の歪み補正装置において、
前記撮像素子は、前記撮像画像のデータを画素単位で読み出しが可能のものであって、
前記歪み補正処理手段は、
前記位置的変化の速度として、前記各分割画像区間の先頭部位に対する前記位置的変化の速度を検出すると共に、前記各分割画像区間内においては、前記先頭部位に対する歪み補正対象部位の読み出し遅れ時間を用いて、前記検出した前記位置的変化の速度を時間積分し、その時間積分値を前記歪み補正対象部位の変位量として求める変位量積分手段と、
前記変位量積分手段で得た前記変位量を用いて前記撮像画像の歪みを補正する補正手段と
を備えることを特徴とする撮像画像信号の歪み補正装置。
【請求項１４】
請求項１１に記載の撮像信号の歪み補正装置において、
前記撮像素子からは前記撮像画像のデータをライン単位で読み出しするものであると共に、前記分割は、前記各分割画像区間が複数ラインからなるように行なうものであって、
前記速度検出手段は、前記各分割画像区間の先頭ラインに対する前記位置的変化の速度を離散的に検出し、
前記歪み補正処理手段は、
前記各分割画像区間内において、前記各分割画像区間の先頭ラインに対するものとして検出した前記位置的変化の速度を、前記ライン単位に時間積分し、その時間積分値を前記歪み補正対象ラインの変位量として求める変位量積分手段と、
前記変位量積分手段で得た前記変位量を各ラインの変位量として前記撮像画像の歪みを補正する補正手段と
を備えることを特徴とする撮像画像信号の歪み補正装置。
【請求項１５】
請求項１１に記載の撮像信号の歪み補正装置において、
前記歪み補正処理手段は、
前記速度検出手段で検出された前記位置的変化の速度の水平方向成分を用いて、前記画像の水平方向の歪みを補正する水平補正処理手段と、
前記位置的変化の速度の垂直方向成分を用いて、前記画像の垂直方向の歪みを補正する垂直補正処理手段と
を備えることを特徴とする撮像信号の歪み補正装置。
【請求項１６】
請求項１４に記載の撮像信号の歪み補正装置において、
前記歪み補正処理手段の前記変位量積分手段は、
前記各分割画像区間内において、前記位置的変化の速度の水平方向の成分を、前記ライン単位に時間積分して、その時間積分値を前記歪み補正対象ラインの水平方向の変位量として求める水平方向変位量算出手段と、
前記各分割画像区間内において、前記位置的変化の速度の垂直方向の成分を、前記ライン単位に時間積分して、その時間積分値を前記歪み補正対象ラインの垂直方向の変位量として求める垂直方向変位量算出手段と、
を備え、
前記歪み補正処理手段の前記補正手段は、
前記各分割画像区間内において、前記水平方向変位量算出手段で得た前記水平方向の変位量を各ラインの水平方向の変位量として前記画像の水平方向の歪みを補正する水平補正処理手段と、
前記各分割画像区間内において、前記垂直方向変位量算出手段で得た前記垂直方向の変位量を各ラインの垂直方向の変位量として前記画像の垂直方向の歪みを補正する垂直補正処理手段と
を備えることを特徴とする撮像信号の歪み補正装置。
【請求項１７】
請求項１４に記載の撮像信号の歪み補正装置において、
前記ライン単位に時間積分して得る前記各ライン位置の変位量の算出開始時点は、処理しようとする対応する水平ラインの先頭時点よりも１水平区間前である
ことを特徴とする撮像信号の歪み補正装置。
【請求項１８】
請求項１６に記載の撮像信号の歪み補正装置において、
前記水平補正処理手段による前記画像の水平方向の歪みの補正処理と、前記垂直補正処理手段による前記画像の垂直方向の歪みの補正処理とを並行して行なうようにすると共に、前記水平補正処理手段での前記水平方向の歪みの補正処理の進捗度合いを参照しながら、前記垂直方向変位量算出手段は前記垂直方向の変位量の時間積分処理をする
ことを特徴とする撮像信号の歪み補正装置。
【請求項１９】
撮影時の手ぶれによる撮像素子の位置的変位による撮像画像の歪を補正する装置であって、
前記撮像画像の１画面区間が複数に分割された各分割画像区間ごとに前記手ぶれ変化を検出する手ぶれ検出手段と、
前記各分割画像区間で、前記手ぶれ検出手段で検出された前記手ぶれ変化に基づいて、前記位置的変位による撮像画像の歪を補正する補正手段と
を備えることを特徴とする撮像画像信号の歪み補正装置。
【請求項２０】
請求項１９に記載の撮像画像信号の歪み補正装置において、
前記手ぶれ検出手段で検出する手ぶれ変化は、前記撮影時の撮像素子の位置的変位の速度である
ことを特徴とする撮像画像信号の歪み補正装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、撮像装置での被写体画像の撮像時の手ぶれ等による撮像画像に発生する歪を補正する方法および当該歪を補正する装置に関し、ビデオカメラ、デジタルスチルカメラなどの撮像装置や、撮像機能付きの記録再生装置に適用して好適なものである。
【背景技術】
【０００２】
電子式に撮像画像を撮像素子に記憶し、読み出すようにする電子式の撮像装置では、撮影者によるいわゆる手ぶれや、船の上など不安定な場所での撮影などの理由により、撮影時に、撮像素子が、物理的に、撮像画像の水平方向および／または垂直方向に比較的高速の位置的変化を生じると、その撮像画像に歪みを生じる。
【０００３】
しかし、電子式の撮像装置では、撮像素子から読み出した撮像画像データに対してデジタル処理（歪み補正処理）することにより、この手ぶれなどに起因する撮像画像の歪みを補正することが可能である。
【０００４】
従来のビデオカメラやデジタルスチルカメラなどの撮像装置や、撮像機能付の記録再生装置（カメラ付きの携帯電話端末やカメラ付きのパーソナルコンピュータなど）では、撮像素子として、一般に、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）を用いた固体撮像素子（以下、ＣＣＤを用いた固定撮像素子をＣＣＤイメージャという）が広く用いられている。
【０００５】
そこで、従来は、例えば特許文献１（特許第３３８４４５９号公報）などのように、撮像素子としてＣＣＤイメージャを用いることを前提とした手ぶれ補正技術が数多く提案されており、既に、当該手ぶれ補正技術を搭載した製品としても世の中に広く出回っている。
【０００６】
この従来の手ぶれ補正技術は、ＣＣＤイメージャの構造上、ＣＣＤイメージャの全画素に蓄積された光量のサンプリング時刻が、同一（１フレームに一回）である特性を利用している。
【０００７】
すなわち、ＣＣＤイメージャでは、全画素を同時期に露光し、1フレームの画像データについては、データ取り出しタイミングが全く同一であるので、手ぶれ変位量としては、図１８において矢印で示すように、１フレーム分の全画素について、１つの手ぶれ変位量Ｖｃｓを考えればよい。つまり、図１８において、本来、被写体は実線で示す領域ＦＬａに蓄積されるものであったのに、手ぶれにより点線で示す領域ＦＬｂに移動した場合には、当該フレームで１つの手ぶれ変位量Ｖｃｓを検出し、当該手ぶれ量Ｖｃｓ分だけ、読み出し画素位置（サンプリング画素位置）を補正することにより、手ぶれに起因する撮像画像歪を補正することができる。
【０００８】
なお、図１８に示すように、一般に、撮像素子では、その全画素を有効画素として扱うのではなく、全画素からなる領域（以下、実効画像領域という）ＡＦＬのうちの、周辺の領域を除く、水平有効領域および垂直有効領域で定まる中央部を有効画像領域ＥＦＬとして用いているものが多い。
【０００９】
このようなイメージャを用いた場合、手ぶれ補正により読み出し画素位置が変化しても、手ぶれ量が、実効画像領域ＡＦＬと有効画像領域ＥＦＬとの差分よりも小さい範囲では、イメージャが元々有している画素のデータを用いて歪み補正をすることができるので、補間処理などにより、手ぶれ補正に必要なデータを生成する場合に比べて、画像の劣化は少なくなる。
【００１０】
ところで、最近は、上述のような電子式の撮像装置の撮像素子として、画面の水平方向（Ｘ方向）の位置と、垂直方向（Ｙ方向）位置とを指定することにより、画素単位で撮像データを読み出すことが可能なＸ−Ｙアドレス型の固体撮像素子、例えばＣＭＯＳ型の固体撮像素子（以下、ＣＭＯＳイメージャという）が用いられるようになっている。
【００１１】
このＣＭＯＳイメージャは、
（ａ）増幅型であり、増幅した信号を読み出すので、高感度である。
【００１２】
（ｂ）ＣＭＯＳ回路を用いるので低消費電力である。
【００１３】
（ｃ）低コストである。
【００１４】
（ｄ）原理的に、１画素単位でランダムにアクセスする（読み出す）ことが可能である。
【００１５】
などの特長を有する。
【００１６】
ＣＭＯＳイメージャは、１画素単位でも撮像画像データの読み出しは可能であるが、実用上は、１水平ライン分の画素群単位で読み出し（サンプリング）して、撮像画像データを出力するものが一般的である。
【００１７】
このように、ＣＭＯＳイメージャから撮像データを水平ライン単位で読み出す場合には、図１９に示すように、各水平ラインのついての露光期間は、水平ライン単位の読み出し時間差に応じたΔｔだけ、時間的なずれを生じる。なお、１画素単位で撮像画像データの読み出しがなされる場合であっても、ライン間の読み出し時間差に比べて、画素間の読み出し時間差は無視できるほど小さい。そこで、１画素単位で撮像画像データの読み出しがなされる場合であっても、同様な露光期間の時間的なずれを生じるものとすることができる。
【００１８】
このため、ＣＭＯＳイメージャを用いた撮像装置により、例えば走る電車の中から外の景色を撮影すると、本来は図２０（Ａ）のような画像が得られるべきものであるのに、図２０（Ｂ）に示すように、本来鉛直に立っている家や木が傾いた画像が出力撮像画像となってしまう。これがＣＭＯＳイメージャ特有のフォーカルプレーン現象である。
【００１９】
図２０（Ｂ）の画像例は、水平方向に移動しながら撮影したものであるため、被写体が傾いて撮像されるが、例えば垂直方向に移動しながら撮影した場合には、図示は省略するが、被写体が垂直方向に縮んだり、伸びたりするような画像となる。
【００２０】
この現象が発現するのは、ＣＭＯＳイメージャを使用する撮像装置を持つ撮影者が高速に移動しながら撮影したり、逆に、固定位置にいる撮影者が高速に移動する被写体を撮影したりした場合であり、撮像装置と被写体の相対速度が速い場合に顕著となる。ただし、一般的な撮影において、このような状況は稀であるといえる。
【００２１】
しかしながら、撮影者が撮像装置を手で持って撮影している場合に、撮像装置を持っている撮影者の手が、微小かつ高速に振動した場合、すなわち、手ぶれが発生した場合、上述したフォーカルプレーン現象が発現することになる。
【００２２】
なぜなら、ＣＭＯＳイメージャの場合の手ぶれ（以下、ＣＭＯＳ手ぶれという）の値は、ＣＣＤイメージャのように１フレーム内で１個の値ではなく、前述したように、１フレーム内における画素やライン毎のサンプリング時刻の違いにより、画素や水平ラインごとに異なるものとなる。このため、ＣＭＯＳイメージャを用いた撮像装置においては、単に、１フレーム単位での手ぶれ量を用いた補正を行っても、前述したフォーカルプレーン現象による歪みは、補正されずに残ってしまう。
【００２３】
この際、手ぶれの方向、大きさ、速度が、１フレーム内（１枚の撮像画像内）で一律でないことが原因となって、ＣＭＯＳイメージャを用いた撮像装置で、ＣＭＯＳ手ぶれが生じた時の被写体の撮像画像出力は、図２０（Ｃ）に示すように、グニャグニャした奇妙な画像歪みが生じたものとなる。
【００２４】
ところで、デジタルスチルカメラのように静止画を撮影する装置においては、元々静止画撮影の前提として手ぶれ量が限られていることと、メカシャッターと併用することで、ＣＭＯＳ手ぶれに起因するフォーカルプレーン現象を抑えることが、比較的容易である。
【００２５】
一方、ビデオカメラのような動画撮影を前提とした撮像装置であっては、業務用や高級機種では、1フレームにおける最大サンプリング時間差（一番上のラインと一番下のラインのサンプリング時刻の差）を短くするため、超高速の読み出しを行なうことで、実質的にＣＭＯＳ手ぶれに伴うフォーカルプレーンの発生を防ぐ方法が採られていることがある。
【００２６】
また、撮像画像に対する相対的な手ぶれ量の大きさは、光学ズームの倍率が大きくなるのに伴って増大するため、動画撮影用途であっても、光学ズームを持たないか、倍率の小さい機種であれば、ＣＭＯＳ手ぶれは大きな問題となっていない。そもそも、従来のＣＣＤイメージャで行っているような、加速度センサを用いた手ぶれ補正すら搭載していない安価な撮像装置では、ＣＭＯＳ手ぶれの悪影響は相対的に小さくなり、問題にすらなっていない場合が多い。
【００２７】
上述の状況を鑑みると、動画撮影を主用途とし、高倍率の光学ズームを搭載した撮像装置においては、特殊な装置や高速なサンプリングクロックを利用することなく、デジタル信号処理により高精度かつ低コストに実現する、ＣＭＯＳ手ぶれに起因するフォーカルプレーン現象の歪み補正および抑制技術が要求されている。
【００２８】
ところで、特許文献２（特開２００４−２６６３２２公報）には、ＣＭＯＳ手ぶれによる撮像画像のフォーカルプレーン現象を含む歪みを補正する方法が記載されている。
【００２９】
この特許文献２に記載される補正方法は、１水平ライン単位で撮像画像データがＣＭＯＳイメージャから読み出されるとき、各水平ラインについての手ぶれによる位置変位量（以下、手ぶれ量という）を検出し、当該検出した手ぶれ量分だけ、発生した手ぶれとは逆方向にずれた位置から当該水平ラインのデータを読み出すように補正するものである。
【００３０】
しかし、手ぶれ量を各水平ラインについて得ることは、手ぶれを検出するセンサのサンプリング周波数などの条件から困難であることに鑑み、この特許文献２においては、図２１（Ａ）に示すように、画面の垂直方向の複数ライン分置きの位置での手ぶれ量を、離散的に検出する。図２１では、５０ライン置きのライン位置での手ぶれ量Ｑ１，Ｑ２，Ｑ３・・・（図２１（Ｂ）参照；なお、図では水平方向の手ぶれ量のみを示している）を検出している。
【００３１】
そして、手ぶれ検出を行なうライン以外の、手ぶれ量を直接的には検出しない４９ラインに対する手ぶれ量は、検出された手ぶれ量Ｑ１，Ｑ２，Ｑ３・・・を用いて、補間により求めるようにする。この補間の方法としては、例えば図２１（Ｃ）に例を示すように、幾通りかの方法がある。図２１（Ｃ）の補間の方法は、基本的には、手ぶれ量を直接的には検出しない４９ラインの直前ラインおよび直後ラインの２位置での２つの手ぶれ量ＱｎおよびＱｎ＋１（ｎは１以上の整数）を用いて行なう。
【００３２】
例えば、補間（１）の方法では、直前ラインで検出された手ぶれ量Ｑｎを、前記４９ラインのうちの前半のラインではそのまま用い、前記４９ラインのうちの後半のラインでは、直後ラインで検出された手ぶれ量Ｑｎ＋１を用いるようにする。また、補間（２）の方法は、直前ラインで検出された手ぶれ量Ｑｎと直後ラインで検出された手ぶれ量Ｑｎ＋１とを直線で結んだときの各ラインでの値を、当該ラインの手ぶれ量とする、すなわち、いわゆる平均値補間を行なう方法である。
【００３３】
この特許文献２の方法によれば、手ぶれが原因で生じるＣＭＯＳイメージャにおけるフォーカルプレーン現象を含む歪を補正することが可能である。
【００３４】
上記の特許文献は、次の通りである。
【特許文献１】特許第３３８４４５９号公報
【特許文献２】特開２００４−２６６３２２公報
【発明の開示】
【発明が解決しようとする課題】
【００３５】
しかしながら、特許文献２で採用されている方法の場合には、離散的なサンプリング位置で手ぶれを検出し、その検出結果から前記離散的なサンプリング位置での手ぶれ量を求め、当該離散的なサンプリング位置での手ぶれ量を用いて補間をすることにより、各ライン位置での手ぶれ量を推定するようにしている。
【００３６】
このため、特許文献２の場合には、前記直前ラインの手ぶれ量Ｑｎと、前記直後ラインの手ぶれ量Ｑｎ＋１との両方が得られた後でないと、前記直前ライン後の各ラインの手ぶれ量を、補間処理により得るようにすることができない。このため、前記直前ラインの後の各ラインについての手ぶれ補正処理が、最大、離散的なサンプリング周期区間である複数ライン区間分だけ遅延することになる。
【００３７】
また、上述の補間（１）の方法を用いた場合には、補間値としての手ぶれ量の変化時間で、画像位置がずれる可能性がある。
【００３８】
また、補間（２）の方法の場合には、直前ラインの手ぶれ量Ｑｎと直後ラインの手ぶれ量Ｑｎ＋１とから、手ぶれ量の変化の傾きを求め、その傾きに、直前ラインからの対象ラインまでのライン数を乗算することにより、当該対象ラインの手ぶれ量を求めるようにしなければならない。このため、乗算器が必要になると共に、乗算パラメータを別途設定するためのレジスタを設ける必要があり、ハードウエアが複雑化すると共に、回路規模が大きくなる。さらに、乗算誤差のため、手ぶれ量のサンプリング値が変わる境界位置において、図２１（Ｃ）の補間（２）の場合の図のように連続的にはならずに、画像位置がずれる可能性がある。
【００３９】
この発明は、以上の点にかんがみ、上述のような問題を回避しつつ、ＣＭＯＳイメージャなどのＸ−Ｙアドレス型の撮像素子を用いた撮像装置においても、手ぶれ等が原因で生じるフォーカルプレーン現象による撮像画像の歪を軽減することができる方法および装置を提供することを目的とする。
【課題を解決するための手段】
【００４０】
上記の課題を解決するために、請求項１の発明においては、
撮影時の撮像素子の、撮像画像の水平方向および／または垂直方向の位置的変化による撮像画像の歪みを補正する方法であって、
前記撮像画像の１画面区間を複数個の分割画像区間に分割し、
前記複数個の分割画像区間のそれぞれごとに前記位置的変化の速度を検出し、
前記複数個の分割画像区間のそれぞれ内では、各分割画像区間について検出された前記位置的変化の速度に基づいて、前記位置的変化よる撮像画像の歪みを補正する
ことを特徴とする。
【００４１】
この請求項１の発明によれば、１画面区間分が複数に分割されたそれぞれの分割画像区間では、当該分割画像区間について検出された位置的変化の速度に基づいて、撮像画像の歪みが補正され、他の分割画像区間について検出される位置的変化の速度の情報は不要であるので、少ない処理遅延で、例えばフォーカルプレーン現象を含む撮像画像の歪みを補正することができる。
【００４２】
また、請求項２の発明は、請求項１に記載の撮像画像信号の歪み補正方法において、
前記各分割画像区間内においては、当該各分割画像区間について検出された前記位置的変化の速度の時間積分値を前記撮像画像の歪み補正対象部位の位置的変位量として求め、求めた時間積分値を用いて前記撮像画像の歪みを補正する
ことを特徴とする。
【００４３】
この請求項２の発明によれば、分割画像区間のそれぞれ内においては、当該分割画像区間について検出された位置的変化の速度の時間積分値を撮像画像の歪み補正対象部位の位置的変位量として求め、当該求めた時間積分値を用いて前記撮像画像の歪みを補正するので、少ない処理遅延で、例えばフォーカルプレーン現象を含む撮像画像の歪みを補正することができると共に、時間積分値を用いるので、位置的変化の速度が変わる他の分割画像区間の画像との境界においても、撮像画像にずれを生じることはない。
【発明の効果】
【００４４】
この発明によれば、少ない処理遅延で、例えばフォーカルプレーン現象を含む撮像画像の歪みを補正することができる。
【発明を実施するための最良の形態】
【００４５】
［この発明の実施形態の概要］
先ず、図１を用いて、この発明による撮像画像信号の歪み補正方法の実施形態の概要を説明する。以下に説明する実施形態は、撮像素子としてＸ−Ｙアドレス型の固体撮像素子の代表例であるＣＭＯＳイメージャを用いて撮像した撮像画像について、前述したＣＭＯＳ手ぶれを補正する場合の例である。なお、この発明は、撮像画像が動画像である場合と静止画像である場合の、何れの場合にも適用できるものである。
【００４６】
図１の概要説明図においては、図１（Ａ）に示すように、画像に生じるＣＭＯＳ手ぶれによる歪みを判りやすく示すために、歪みの無いオリジナルの画像として多数個の長方形からなる格子縞模様の画像を想定している。したがって、ＣＭＯＳ手ぶれによる画像歪みは、当該格子縞模様を構成する長方形の変形歪みとして現れるものとなる。
【００４７】
なお、この実施形態においても、ＣＭＯＳイメージャは、図１８に示したような１画面とする水平有効領域および垂直有効領域で定まる有効画像領域ＥＦＬ（１垂直周期分）よりも広い範囲の実効画像領域ＡＦＬを有するものが用いられるものである。なお、図１（Ａ）〜（Ｄ）に示した１画面分の画像は、図１８の有効画像領域ＥＦＬの大きさの画像である。
【００４８】
この実施形態では、水平方向の画素クロックの速度は、手ぶれの速度よりも十分に早いとし、また、撮像画像データの読み出しは、１水平ライン単位で順次に行なうものとして、手ぶれ補正は、１水平ライン単位で行なうようにする。
【００４９】
また、この実施形態では、図１（Ｂ），（Ｃ），（Ｄ）に示すように、ＣＭＯＳイメージャの有効画像領域ＥＦＬ分の画像区間は、垂直方向に複数に等分割し、各分割画像区間Ｐｄｉｖでは、同じ手ぶれ速度の手ぶれ変位を受けるものと仮定している。ここで、分割数は、手ぶれ補正したときに、必要十分な補正効果が得られる分割画像区間Ｐｄｉｖの大きさを考慮して定められる。以下に説明する例では、有効画像領域ＥＦＬの画像区間を垂直方向に８分割するようにする。すなわち、この例では、分割画像区間Ｐｄｉｖは、垂直同期信号の１周期を１／８に分割した区間となる。
【００５０】
１つの分割画像区間Ｐｄｉｖは、複数水平ライン分からなるが、この実施形態では、同じ分割画像区間Ｐｄｉｖに含まれる複数水平ラインは同じ手ぶれ速度の手ぶれ変位を受けるものと仮定して手ぶれ補正処理を行なうものである。
【００５１】
そして、この実施形態では、８個の分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７のそれぞれの先頭の水平ラインに対する手ぶれ速度ベクトルを、図１（Ｂ）の左側の矢印に示すようなものとして、手ぶれ速度検出手段により検出する。すなわち、この例では、手ぶれ速度ベクトルは、１画面分の撮像画像について、８箇所において、離散的に検出するようにする。
【００５２】
図１（Ｂ）の画像は、手ぶれ速度ベクトルが、各分割画像区間Ｐｄｉｖで、左側の矢印のようなものとした時に生じる手ぶれによる撮像画像の歪みを示している。この実施形態では、この手ぶれによる撮像画像の歪みを、水平方向処理と垂直方向処理とに分けて、それぞれの方向の歪みを別々に補正するようにする。
【００５３】
補正処理の詳細については後述するが、この実施形態では、先ず、水平方向の歪みについて補正処理を行ない、次いで、垂直方向の歪みについての補正処理を行なう。この場合に、１画面分の撮像画像のすべてのデータについての水平方向の歪み補正処理が完了する前であっても、垂直方向の歪み補正処理が可能になった段階で、垂直方向の歪み補正処理を開始して、水平方向の歪み補正処理と並行して行なうようにすることにより、効率良く歪み補正処理を行なうようにする。
【００５４】
そこで、この実施形態では、先ず、手ぶれによる水平方向の画像歪みを補正するために、図１（Ｃ）の左側の矢印および図２の左側の矢印で示すように、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７について検出した手ぶれ速度ベクトルＶｅｃ（Ｖｅｃ＿０〜Ｖｅｃ＿７）の水平方向成分の逆符号成分（以下、この手ぶれ速度ベクトルの水平方向成分の逆符号成分を、水平補正速度成分という）Ｘ＿ＳＴＢ（Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７）を求める。
【００５５】
そして、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７内においては、各水平ラインのそれぞれについての水平方向の手ぶれ量を補正するための補正量として、上述のようにして求めた水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７を、それぞれの水平ラインについて時間積分（各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の先頭の水平ライン時点を基準点とした時間で積分）して算出する。図２の右側に、その積分結果の値としての水平方向の手ぶれ補正量（以下、水平手ぶれ補正量という）ＳＸ＿ＡＤＤを示す。
【００５６】
この図から判るように、各水平ラインのそれぞれについての水平手ぶれ補正量ＳＸ＿ＡＤＤは、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７においては、一定の傾きで変化し、かつ、積分であるので、分割画像区間の境目では折れ線とはなるが、連続的なものとなり、ずれは生じない。
【００５７】
水平方向の歪み補正処理においては、以上のようにして求められた各ラインについての手ぶれ水平補正量ＳＸ＿ＡＤＤを用いて、ＣＭＯＳイメージャ上での各水平ラインの水平方向の読み出し開始位置を補正することにより、撮像画像を補正処理する。すなわち、各水平ラインの読み出し開始位置を、図１（Ｂ）における手ぶれに応じて水平方向にずれた位置からとすることにより、図１（Ｃ）の画像に示すように、水平方向の歪みが補正されることになる。
【００５８】
この図１（Ｃ）の画像は、図１（Ｂ）の画像歪みの内の水平方向の歪みは補正されて除去されているが、垂直方向の歪みが残っている。
【００５９】
そこで、この実施形態では、手ぶれによる垂直方向の画像歪みを補正するため、図１（Ｄ）の左側の矢印に示すように、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７について検出した手ぶれ速度ベクトルの垂直方向成分の逆符号成分（以下、この手ぶれ速度ベクトルの垂直方向成分の逆符号成分を、垂直補正速度成分という）Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７を求める。
【００６０】
そして、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７内においては、各水平ラインのそれぞれについての垂直方向の手ぶれ量を補正するための補正量として、上述のようにして求めた垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７を、それぞれの水平ラインについて時間積分（各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の先頭の水平ライン時点を基準点とした時間で積分）して算出する。
【００６１】
この積分結果としての垂直方向の手ぶれ補正量（以下、垂直手ぶれ補正量という）ＳＹ＿ＡＤＤは、ここでは、図示を省略するが、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７においては、一定の傾きで変化し、かつ、積分であるので、分割画像区間の境目では折れ線とはなるが、連続的なものとなり、ずれは生じない。
【００６２】
垂直方向の歪み補正処理においては、以上のようにして求められた各ラインについての垂直手ぶれ補正量ＳＹ＿ＡＤＤを用いて、ＣＭＯＳイメージャ上での各水平ラインの垂直方向の読み出し開始位置を補正することにより、撮像画像を補正処理する。これにより、図１（Ｄ）の画像に示すように、水平方向の場合と同様にして垂直方向の歪みが補正され、歪みの除去された撮像画像データ出力が得られる。
【００６３】
水平手ぶれ補正量および垂直手ぶれ補正量を用いて、手ぶれによるＣＭＯＳイメージャについてのフォーカルプレーン現象による画像歪みが補正される様子は、前述した特許文献２と同様である。
【００６４】
しかし、特許文献２では、手ぶれ量を、垂直方向の離散的な水平ラインについて検出すると共に、直接的に手ぶれ量を検出しない、離散的な水平ラインの間の各水平ラインについては、前記離散的に検出した手ぶれ量を用いた補間処理により得るようにしているのに対して、この実施形態では、垂直方向の離散的な水平ラインについては手ぶれ速度を検出し、当該検出した手ぶれ速度を、各水平ラインについて順次に積分してゆくことにより、各水平ラインの手ぶれ量（手ぶれ補正量）を検出する点が大きく異なる。
【００６５】
この実施形態では、各水平ラインの手ぶれ量（手ぶれ補正量）は、手ぶれ速度を積分することにより算出するものであるので、各水平ラインの手ぶれ量（手ぶれ補正量）の算出は、特許文献２の手ぶれ量の補間処理の場合のように、離散的な２箇所の手ぶれを検出した後とする必要がなく、検出した手ぶれ速度を用いて即座に各水平ラインの手ぶれ量の算出を開始することが可能になる。
【００６６】
なお、この実施形態では、手ぶれ速度ベクトルから水平成分および垂直成分を抽出するときに、その逆符号成分を算出して、補正速度成分とするようにしたが、速度成分あるいは手ぶれ量を逆符号として、補正速度成分あるいは手ぶれ補正量とするのは、撮像画像データに対する手ぶれ補正処理の実行開始前であれば、どの時点であっても良い。
【００６７】
［この発明の実施形態の構成］
次に、この発明による撮像画像信号の歪み補正方法および装置の実施形態を、図を参照しながら説明するに、図３および図４は、この発明の実施形態が適用された撮像装置のブロック図を示すものである。
【００６８】
図３に示すように、撮像レンズ１Ｌを備えるカメラ光学系１を通じた被写体からの入射光は、撮像素子２に照射されて撮像される。この例では、撮像素子２は、前述したようにＸ−Ｙアドレス型の固体撮像素子の一例であるＣＭＯＳイメージャで構成されている。
【００６９】
この例では、撮像素子２からは、タイミング信号発生部４からのタイミング信号により１ライン単位が同時に取り出される（サンプリングされる）ことによりアナログ撮像信号とされて出力される。そして、出力されたアナログ撮像信号は、データ変換部３に供給される。
【００７０】
データ変換部３は、これに入力されたアナログ撮像信号に必要な補正処理を加えた後、タイミング信号発生部４からのクロック信号に同期してデジタル撮像信号に変換する。そして、データ変換部３は、デジタル撮像信号を輝度信号成分と色差信号成分とからなる撮像画像データＤｉｎに変換し、その撮像画像データＤｉｎを信号処理部５に供給する。
【００７１】
信号処理部５は、データ変換部４からの撮像画像データＤｉｎについて、これに接続されている画像メモリ６への書き込み／読み出しを制御しながら、手ぶれ補正などの補正処理や、撮像画像の電子ズーム処理（電子的拡大・縮小処理）を行なうとともに、指定された解像度の出力画像データＤｏｕｔを生成して出力する。
【００７２】
信号処理部５には、タイミング信号発生部４から、出力画像データの水平周期に同期する信号、すなわち、水平同期信号Ｈ−ＳＹＮＣと、出力画像データの垂直周期に同期する信号、すなわち、垂直同期信号Ｖ−ＳＹＮＣと、１画素周期のクロック信号ＣＬＫと、それらに同期するクロックが、処理タイミング信号として供給される（図３においては、これらの信号の図示は省略）。
【００７３】
また、撮影時に撮像装置を保持している撮影者による手ぶれ速度を検出する手ぶれ速度検出部７が設けられる。この手ぶれ速度検出部７は、撮像素子２の、撮像画像の水平方向および／または垂直方向の、所定速度以上の比較的高速の位置的変化を手ぶれとして、その速度ベクトルを検出する。ここで、比較的高速の位置的変化としたのは、撮影者による撮像装置のパンニング操作（左右方向への移動）や、チルティング操作（上下方向の移動）を、手ぶれとして検出しないためである。
【００７４】
この手ぶれ速度検出部７は、例えば撮像装置の筐体に取付けられた角速度センサにより構成される。この手ぶれ速度検出部７の検出出力は、手ぶれ速度ベクトルである。この手ぶれ速度検出部７は、角速度センサの代わりに加速度センサを用いて構成しても良い。加速度センサを用いる場合には、加速度センサ値（方向成分も含む）を積分することで、手ぶれ速度（手ぶれ速度ベクトル）を検出し、手ぶれ速度検出部７の検出出力とするようにする。
【００７５】
この手ぶれ速度検出部７の検出出力は、手ぶれ速度検出処理部８に供給される。この手ぶれ速度検出処理部８には、タイミング信号発生部４からサンプリング信号Ｓｐが供給され、このサンプリングＳｐにより前記手ぶれ速度検出部７の検出出力（手ぶれ速度ベクトル）がサンプリングされて、前述した各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７についての８個の手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７が求められる。
【００７６】
そして、手ぶれ速度検出処理部８では、８個の手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７を、その水平方向成分と、垂直方向成分とに分離し、それら水平方向成分および垂直方向成分の逆符号成分を水平補正速度成分および垂直補正速度成分として生成する。そして、生成した水平補正速度成分および垂直補正速度成分を信号処理部５に供給する。
【００７７】
信号処理部５では、画像メモリ６への画像データの書き込み／読み出しを制御しながら、後で詳述するようにして、手ぶれ速度検出処理部８からの水平補正速度成分と垂直補正速度成分とから、各水平ラインの水平補正変位量ＳＸ＿ＡＤＤおよび垂直補正変位量ＳＹ＿ＡＤＤを算出し、これら算出した水平補正変位量ＳＸ＿ＡＤＤおよび垂直補正変位量ＳＹ＿ＡＤＤを用いて、データ変換部３からの撮像画像データＤｉｎについての手ぶれによる画像歪みを補正処理し、出力画像データＤｏｕｔを得る。
【００７８】
なお、前述したように、信号処理部５では、電子ズーム（画像拡大・縮小）処理を行なうと共に、標準精細度、高精細度などに応じた解像度変換処理なども行なう。
【００７９】
信号処理部５からの出力画像データＤｏｕｔは、記録処理部９により例えばデータ圧縮されると共に、記録メディア１０への記録に適した変調が施された後、記録メディア１０に記録される。記録メディア１０としては、磁気テープや磁気ディスクなどの磁気記録媒体、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの光ディスク媒体、ハードディスク、カード型メモリなどを用いることができる。なお、出力撮像画像データをインターネットやワイヤレス通信手段を介して記録メディア１０に記憶するようにすることもできる。
【００８０】
信号処理部５からの出力画像データＤｏｕｔは、また、表示系処理部１１を通じて表示モニターとしての、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などのディスプレイに供給され、画像表示される。記録メディア１０に記録された撮像画像データも、再生処理部１２により再生され、表示系処理部１１を通じて表示モニターに供給され、再生画像表示される。
【００８１】
また、この例の撮像装置は、全体を制御するためのマイクロコンピュータを搭載する制御部１３を備える。この制御部１３には、ユーザインターフェース１４が接続されている。そして、このユーザインターフェース１４を通じて、ユーザからの画像拡大・縮小指示入力や、解像度指示入力、また、ズーム倍率の値の指示入力が制御部１３に与えられる。制御部１３は、それらの指示入力に応じた制御信号を形成し、タイミング信号発生部４や信号処理部５に供給する。
【００８２】
次に、図３の信号処理部５、画像メモリ６、手ぶれ速度処理部８の部分の、より詳細な構成ブロック図を図４に示す。
【００８３】
すなわち、手ぶれ補正処理や電子ズーム処理、出力データ生成処理のために、信号処理部５は、水平処理ブロック５１と、垂直処理ブロック５２と、レジスタブロック５３とを含んでいる。そして、水平処理ブロック５１は、水平手ぶれ補正量積分部５１１と水平画像処理部５１２とを備え、また、垂直処理ブロック５２は、垂直手ぶれ補正量積分部５２１と垂直画像処理部５２２とを備える。
【００８４】
水平処理ブロック５１は、データ変換部３からの撮像画像データＤｉｎに対して水平方向の処理を施す。この水平方向の処理には、水平方向の手ぶれ補正処理を含む。垂直処理ブロック５２は、撮像画像データＤｉｎに対して垂直方向の処理を施す。この垂直方向の処理には、垂直方向の手ぶれ補正処理を含む。また、レジスタブロック５３は、手ぶれ速度検出処理部８で検出された手ぶれ速度の情報を、水平処理ブロック５１および垂直処理ブロック５２に受け渡す処理を行なう。
【００８５】
手ぶれ速度検出部８は、サンプリング部８１と、水平補正速度成分検出部８２と、垂直補正速度成分検出部８３とからなる。
【００８６】
サンプリング部８１では、手ぶれ検出部７からの手ぶれ速度検出出力（図５（Ａ）参照）を、タイミング信号発生部４からのサンプリング信号Ｓｐによりサンプリングすることにより、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７についての手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７（図５（Ｂ）参照）を取得する。この例では、サンプリング部８１では、前述したように、手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７は、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の先頭ラインに対するものが、垂直周期の１／８の周期でサンプリングされる。
【００８７】
ここで、取得すべき各手ぶれ速度ベクトルの値は、撮像素子２からの撮像画像データの対応する水平ラインのサンプリング時刻の値ではない。なぜなら、前述したように、撮像素子２上の各画素には露光時間があり、撮像素子２から取り出された撮像信号（色フィルタを通過した後の輝度値）は、各ラインのサンプリング時刻から露光時間分遡った時刻までの平均値であるからである。
【００８８】
このため、この実施形態では、手ぶれ速度ベクトルの値の検出点は、図６に示すように、各水平ラインの画像データのサンプリング時刻ｔｓと、当該サンプリング時刻ｔｓから露光時間分遡った時刻ｔｂとの間の中央時刻となるように、サンプリング信号Ｓｐによるサンプリングタイミングが設定されている。
【００８９】
露光時間が短くなければ、水平ラインの画像データの先頭のタイミングでは、手ぶれ速度ベクトルの値を確定することができるが、露光時間が短くなった場合には、水平ラインの画像データの先頭のタイミングでは、手ぶれ速度ベクトルの値を確定することができない場合が生じる。そのような場合には、サンプリング部８１では、過去の手ぶれ速度ベクトルを参照して、手ぶれ速度ベクトルの値を予測するようにする。
【００９０】
このサンプリング部８１でサンプリングされて得られる、１フレーム（１垂直周期）について、８個の手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７は、水平補正速度成分検出部８２および垂直補正速度成分検出部８３に供給される。
【００９１】
水平補正速度成分検出部８２では、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７における手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７の水平方向成分を抽出し、その逆符号成分として、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７（図５（Ｃ）参照）を求める。
【００９２】
また、垂直補正速度成分検出部９では、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７における手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７の垂直方向成分を抽出し、その逆符号成分として、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７（図５（Ｄ）参照）を求める。
【００９３】
この場合に、この実施形態では、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のそれぞれの値は、１水平ライン区間の時間長当たりの手ぶれ補正量として求められる。
【００９４】
すなわち、水平補正速度成分Ｘ＿ＳＴＢ（Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７）は、
Ｘ＿ＳＴＢ＝（水平手ぶれ補正量／１水平ライン区間の時間長）
とされる。
【００９５】
また、垂直補正速度成分Ｙ＿ＳＴＢ（Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７）
Ｙ＿ＳＴＢ＝（水平手ぶれ補正量／１水平ライン区間の時間長）
とされる。
【００９６】
そして、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７は、水平方向の画素ピッチ（画素の間隔）ｄｘの倍数値（小数点以下の値を取り得る。以下同じ）、換言すれば、水平方向の画素数（小数点以下を取り得る）で表わされる。また、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７は、垂直方向の画素ピッチ（画素の間隔）ｄｙの倍数値（小数点以下を取り得る）、換言すれば、垂直方向の画素数（小数点以下を取り得る。以下同じ）で表わされる。
【００９７】
これは、サンプリング部８１からの手ぶれ速度出力の水平方向成分と、垂直方向成分のそれぞれに対して、「速度成分の値→画素数（小数点以下の値を取り得る。以下同じ）の値」の対応テーブルを用意し、速度成分の値を入力値として、画素数の値を得るようにすることで実現される。そして、得られた画素数の値について、手ぶれの速度成分の方向とは逆方向に対応する符号を付加して、それぞれ、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７とするものである。
【００９８】
この実施形態では、このように水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７の値を定めることにより、後述するライン単位の時間積分計算による水平手ぶれ補正量ＳＸ＿ＡＤＤおよび垂直手ぶれ補正量ＳＹ＿ＡＤＤを、水平補正速度成分および垂直補正速度成分の単純加算により行なえるようにしている。
【００９９】
そして、これら水平補正速度成分検出部８２および垂直補正速度成分検出部８３で算出された水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７は、タイミング信号発生部４からのタイミング信号Ｓｔに応じたタイミングで、信号処理部５のレジスタブロック５３のＩＦ（インターフェース）レジスタ（図示は省略）に、順次取り込まれる。
【０１００】
そして、取り込まれた水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７は、水平処理ブロック５１および垂直処理ブロック５２での処理タイミングに対応して、レジスタブロック５３内の水平処理ブロック用レジスタおよび垂直処理ブロック用レジスタ（何れも図示は省略）に、前記ＩＦレジスタから、前記取り込まれたタイミングとは別のタイミングで、転送される。
【０１０１】
水平処理ブロック５１および垂直処理ブロック５２の水平手ぶれ補正量積分部５１１および垂直手ぶれ補正量積分部５２１は、レジスタブロック５３の水平処理ブロック用レジスタおよび垂直処理ブロック用レジスタに取り込まれている各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７を積分することにより、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７における各水平ラインに対する水平手ぶれ補正量ＳＸ＿ＡＤＤおよび垂直手ぶれ補正量ＳＹ＿ＡＤＤを算出する。
【０１０２】
水平処理ブロック５１の水平画像処理部５１２では、水平手ぶれ補正量積分部５１１で算出された水平手ぶれ補正量ＳＸ＿ＡＤＤを用いて、水平方向の手ぶれ成分を補正し、また、垂直処理ブロック５２の垂直画像処理部５２２では、垂直手ぶれ補正量積分部５２１で算出された垂直手ぶれ補正量ＳＹ＿ＡＤＤを用いて、垂直方向の手ぶれ成分を補正する。この補正処理においては、水平処理ブロック５１の水平画像処理部５１２および垂直処理ブロック５２の垂直画像処理部５２２では、それぞれ画像メモリ６に対して画像データの読み書きをしながら補正処理を実行するようにする。
【０１０３】
この実施形態では、画像メモリ６は、水平処理用ＦＩＦＯラインメモリ６１と、垂直処理用小規模ラインメモリ６２とからなる。水平処理用ＦＩＦＯラインメモリ６１は、この例では、１ライン分の容量を備える。また、垂直処理用小規模ラインメモリ６２は、後述する垂直方向の補間処理用のＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタのタップ数以上のライン数分の容量を有する。
【０１０４】
水平処理ブロック５１の水平画像処理部５１２には、水平処理用ＦＩＦＯラインメモリ６１への画像データの書き込み、読み出しを制御するＦＩＦＯメモリコントローラ（図４では図示を省略）が設けられていると共に、算出した水平手ぶれ補正量ＳＸ＿ＡＤＤが小数点以下（補正後の画素位置が、水平方向の画素位置よりオフセットされた位置となる）の場合を想定し、補間処理を行なう水平方向補間処理部（図４では図示を省略）が設けられている。この水平方向補間処理部は、後述するように、この実施形態では、水平方向のデジタルＦＩＲフィルタ（以下、水平ＦＩＲフィルタという）が用いられる。
【０１０５】
また、垂直処理ブロック５２の垂直画像処理部５２２には、垂直処理用小規模ラインメモリ６２への画像データの書き込み、読み出しを制御するメモリコントローラ（図４では図示を省略）が設けられていると共に、算出した垂直手ぶれ補正量ＳＹ＿ＡＤＤが小数点以下（補正後の画素位置が、垂直方向の画素位置よりオフセットされた位置となる）の場合を想定し、補間処理を行なう垂直方向補間処理部（図４では図示を省略）が設けられている。この垂直方向補間処理部は、後述するように、この実施形態では、垂直方向のデジタルＦＩＲフィルタ（以下、垂直ＦＩＲフィルタという）が用いられる。
【０１０６】
ここで、算出した水平手ぶれ補正量ＳＸ＿ＡＤＤおよび垂直手ぶれ補正量ＳＹ＿ＡＤＤが小数点以下の値を持つ場合の補間処理について説明する。
【０１０７】
例えば、手ぶれの水平方向の速度成分により、水平方向に図７に示すような画像歪みが生じた場合を想定する。すなわち、図７の例は、手ぶれが無ければ破線で示す直線上にあるべき画素Ｇ１１，Ｇ２１，Ｇ３１・・・、Ｇ１２，Ｇ２２，Ｇ３２・・・、Ｇ１３，Ｇ２３，Ｇ３３・・・、が、手ぶれの水平方向の速度成分のために実線で示すような斜め位置となっている場合である。
【０１０８】
この手ぶれを補正するためには、ずれている画素位置を本来の位置にあるようにずらせばよく、そのずれ量が、図７に示すように、前述した水平手ぶれ補正量ＳＸ＿ＡＤＤに相当する。この水平手ぶれ補正量ＳＸ＿ＡＤＤが、画素ピッチｄｘの整数倍であれば、画素データを当該水平手ぶれ補正量ＳＸ＿ＡＤＤに応じた画素ピッチ分だけずらして読み出すようにすることで補正することができる。
【０１０９】
しかしながら、水平手ぶれ補正量ＳＸ＿ＡＤＤが、画素ピッチｄｘの整数倍ではなく、小数点以下のずれ量を含む場合には、そのずれ量に対応する位置は、画素データが存在する位置ではないので、その位置の近傍の複数個の画素データを用いた補間処理により、対応する画素位置の画素データを生成する必要がある。
【０１１０】
図８は、その補間方法の一例を示すもので、求める画素データが、画素Ｇ１と画素Ｇ２との間の補間画素Ｇｓである場合に、この補間画素Ｇｓの位置と画素Ｇ１，Ｇ２の位置との距離ｋ１，ｋ２に応じた割合で、画素Ｇ１のデータと画素Ｇ２のデータとを加算することにより、補間画素Ｇｓの画素データを生成するものである。この場合、ｋ１：ｋ２＝Ｗ：（１−Ｗ）としたとき、
補間画素Ｇｓ＝Ｇ１×Ｗ＋Ｇ２×（Ｗ−１）
なる補間演算により、補間画素Ｇｓの画素データを得る。
【０１１１】
また、図８の例のような２個の画素データを用いるのではなく、図９の例のように２個以上（図９の例では４個）の近傍画素データを用いて、補間演算をして補間画素を求めることもできる。この場合、補間画素Ｇｓの位置に対する画素Ｇ０，Ｇ１，Ｇ２，Ｇ３の位置との距離ｋ０，ｋ１，ｋ２，ｋ３に応じた割合となる乗算係数Ｗ０，Ｗ１，Ｗ２，Ｗ３を定めて、画素Ｇ０，Ｇ１，Ｇ２，Ｇ３のデータを加算することにより、補間画素Ｇｓの画素データを得る。
【０１１２】
すなわち、
補間画素Ｇｓ＝Ｇ０×Ｗ０＋Ｇ１×Ｗ１＋Ｇ２×Ｗ２＋Ｇ３×Ｗ３
なる補間演算により、補間画素Ｇｓの画素データを得るようにする。
【０１１３】
この図９の例の場合、乗算係数Ｗ０，Ｗ１，Ｗ２，Ｗ３の値の組は、画素Ｇ１または画素Ｇ２と補間画素Ｇｓとの距離ｄｓに対応するものとして関連付けられたテーブルを用意しておき、距離ｄｓを検索子として、上記乗算係数Ｗ０，Ｗ１，Ｗ２，Ｗ３の組をテーブルから読み出すようにすることで得ることができる。なお、距離ｄｓは、水平手ぶれ補正量ＳＸ＿ＡＤＤの小数部に相当するものである。
【０１１４】
この補間処理は、この実施形態では、水平ＦＩＲフィルタを用いて行なうようにする。すなわち、水平手ぶれ補正量ＳＸ＿ＡＤＤの小数部に対応する前記乗算係数の組をテーブルから読み出し、その乗算係数を水平ＦＩＲフィルタに対して供給することで上記補間処理を行なうことができる。
【０１１５】
以上は、水平方向の補間処理であるが、垂直方向についても、補間方向が垂直方向になるだけで、全く同様である。
【０１１６】
［水平処理ブロック５１における処理動作］
［水平手ぶれ補正量ＳＸ＿ＡＤＤの積分処理］
図１０に、水平手ぶれ補正量積分部５１１における積分値としての水平手ぶれ補正量ＳＸ＿ＡＤＤを得るための積分処理動作のフローチャートを示す。
【０１１７】
まず、初期ｙ座標（水平ライン位置に対応）ＳＹに、水平同期信号Ｈ−ＳＹＮＣ（ここでは、水平同期信号Ｈ−ＳＹＮＣは、一般的な水平走査信号のうち、有効画像領域以外をマスクしたタイミング信号を意味するものとする）毎に「ｓｔｅｐ」という値を加算して行く（ステップＳ１）。
【０１１８】
初期ｙ座標ＳＹは、出力画像の最初の1水平ライン目が、ＣＭＯＳイメージャ上の総画素の座標系（以後絶対座標系と呼ぶ）のどこに位置するかを表しており、一般的には「０」ではない。
【０１１９】
これは、動画時には、通常、ＣＭＯＳイメージャ上の全画素が、信号処理部５に入力されるのではなく、ＣＭＯＳイメージャ内で垂直方向に平均加算されてから、後段の信号処理部５に入力されるからである。また、信号処理部５に入力されてからでも、幾つかの処理を経るため、1水平ライン目の絶対座標は、「０」でないことの方が多いからである。更に、入力画像データに対して、垂直方向の部分拡大処理を行なう場合には、初期ｙ座標ＳＹは、画面の中ほどの水平ライン位置となるので、非常に大きい値をとることもあり得るからである。
【０１２０】
ステップＳ１で、１水平同期信号Ｈ−ＳＹＮＣ毎に加算する「ｓｔｅｐ」という値は、ライン間隔の絶対座標系における垂直座標の増量を表わすが、上述したＣＭＯＳイメージャ内もしくは水平処理ブロックの前段における、垂直方向の複数ラインの画像データの平均加算により、１以外に２や４といった値をとる可能性がある。
【０１２１】
さて、ステップＳ１で、初期ｙ座標値をＳＹとして、１水平同期信号Ｈ−ＳＹＮＣ毎に、値ｓｔｅｐを加算することにより、現在処理している水平ラインの絶対座標が求まり、当該絶対座標の整数成分ｖｐ＿ｉ（ステップＳ２）が、水平補正速度成分Ｘ＿ＳＴＢ＿＊（＊は０〜７のいずれかである。すなわち、水平補正速度成分Ｘ＿ＳＴＢ＿＊は、Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のいずれかを意味する。以下、同じ。）を、現時点までに積分すべき積分回数に対応する。ここで、この積分回数は、１画面内における積算値である。
【０１２２】
次に、現在処理している水平ライン（以下、現処理ラインという）の絶対座標の整数成分ｖｐ＿ｉと、現処理ラインの1水平ライン前までに積分した回数（積分回数ｈｓｔｂ＿ｃｎｔ）とを比較する。これにより、現処理ラインにおいて、あと何回積分すれば良いかが分かり、その回数分だけ、処理単位サイクル（１水平周期よりも十分に短い）毎にトリガＴＧ１が発生する（ステップＳ３）。
【０１２３】
このトリガＴＧ１が発生する毎に、積分回数ｈｓｔｂ＿ｃｎｔは１づつインクリメントする（ステップＳ４、ステップＳ５）。
【０１２４】
そして、このトリガＴＧ１ごとに、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のうちの、現処理ラインが所在する分割画像区間についての水平補正速度成分を加算することにより、積分処理を行ない、水平手ぶれ補正量ＳＸ＿ＡＤＤを得る（ステップＳ６）。ここで、図１０のステップＳ６における「ｓｔｂ＿ｘ」は、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のいずれかの値である。すなわち、「ｓｔｂ＿ｘ」は、現処理ラインが所在する分割画像区間についての水平補正速度成分の値である。
【０１２５】
ステップＳ１で、１水平同期信号Ｈ−ＳＹＮＣ毎に加算される値「ｓｔｅｐ」＝１であって、画像の拡大などではない通常の画像出力の場合には、トリガＴＧ１は、１水平同期信号Ｈ−ＳＹＮＣ毎に発生するため、ステップＳ６では、１水平ライン毎に「ｓｔｂ＿ｘ」を加算（積分）するものである。
【０１２６】
こうして得られる水平手ぶれ補正量ＳＸ＿ＡＤＤは、前述もしたように、ＣＭＯＳイメージャ上での各水平ラインの水平方向の読み出し開始位置の補正量、すなわち、水平処理ブロック５１における水平方向画像歪み補正処理における各ラインの水平初期位置（水平オフセット）そのものとなる。
【０１２７】
上述したように、ステップＳ６では、現処理ラインが、１画面分（１フレーム＝１垂直同期周期）を垂直方向に8分割した分割画像区間のどこに属するかによって、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のうちの、いずれか１つを選択しなければならない。そのための仕組みが、図１０の残りの部分の処理である。
【０１２８】
この例では、分割画像区間分のライン数の加算値ｓｔｂ＿ｇｒｉｄが定義される（ステップＳ７）。この加算値ｓｔｂ＿ｇｒｉｄの初期値は、１分割画像区間のライン数ＤＩＶである。
【０１２９】
そして、この加算値ｓｔｂ＿ｇｒｉｄと、積分回数ｈｓｔｂ＿ｃｎｔとを比較し、積分回数ｈｓｔｂ＿ｃｎｔが加算値ｓｔｂ＿ｇｒｉｄを超える毎に、トリガＴＧ２を発生する（ステップＳ８）。そして、トリガＴＧ２が発生するごとに、加算値ｈｓｔｂ＿ｃｎｔに、１分割画像区間のライン数ＤＩＶを加算する（ステップＳ９）。
【０１３０】
以上の処理により、現処理ラインが次の分割画像区間に移る毎に、トリガＴＧ２が発生する。したがって、現処理ラインが各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の何れに存在するかの分割区間値ＨＤＩＶ＿ＣＮＴを定義し（ステップＳ１０）、この分割区間値ＨＤＩＶ＿ＣＮＴを、トリガＴＧ２が発生する毎に、１づつインクリメントする（ステップＳ１１）。すると、分割区間値ＨＤＩＶ＿ＣＮＴは、現処理ラインが所在する各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７のそれぞれに対応して「０」〜「７」の値を取る。すなわち、分割区間値ＨＤＩＶ＿ＣＮＴは、水平処理の進捗度合いを示すものとなる。ステップＳ６では、この分割区間値ＨＤＩＶ＿ＣＮＴを参照して、「ｓｔｂ＿ｘ」を決定する。
【０１３１】
なお、この例では、分割区間値ＨＤＩＶ＿ＣＮＴ＝８のときには、１フレーム分の画像データについての処理が終了したことを意味する。そして、分割区間値ＨＤＩＶ＿ＣＮＴ＝８に、「１」が加わると、分割区間値ＨＤＩＶ＿ＣＮＴ＝０となるように計算される。
【０１３２】
この分割区間値ＨＤＩＶ＿ＣＮＴは、垂直処理ブロック５２およびレジスタブロック５３に、水平処理ブロック５１での現処理ラインが何れの分割画像区間に所在しているかを示すために、すなわち、水平処理の進捗状況を報知するために供給される。
【０１３３】
［水平画像処理部５１２の処理動作］
図１１は、水平画像処理部５１２の構成例を示すものである。この図１１の例では、前述の図１０のフローチャートにおける水平同期信号Ｈ−ＳＹＮＣ毎に値「ｓｔｅｐ」を初期ｙ座標ＳＹに加算する加算部１０１が、この水平画像処理部５１２に含まれるものとしており、このため、この水平画像処理部５１２に初期ｙ座標ＳＹが入力される。さらに、この水平画像処理部５１２には初期ｘ座標ＳＸが入力される。これら初期ｙ座標ＳＹおよび初期ｘ座標ＳＸは、１フレームの先頭で、例えば制御部１３で設定されて入力される。
【０１３４】
そして、加算部１０１からの、水平同期信号Ｈ−ＳＹＮＣ毎に値「ｓｔｅｐ」が加算されたｙ座標値ＳＹ´は、水平手ぶれ補正量積分部５１１に供給される。すると、この水平手ぶれ補正量積分部５１１からは、現処理ラインの先頭のｘ座標のオフセット値として、水平手ぶれ補正量ＳＸ＿ＡＤＤが返ってくる。
【０１３５】
水平画像処理部５１２では、加算部１０２において、各水平ラインの先頭で一回だけ、水平手ぶれ補正量積分部５１１からの水平手ぶれ補正量ＳＸ＿ＡＤＤを、初期ｘ座標ＳＸに加算する。
【０１３６】
そして、この加算部１０２の出力値に対して、画素処理クロックＣＬＫごとに、水平拡大・縮小のパラメータである値「ｈｍａｇ」を、加算部１０３により加算する。この加算部１０３の出力値Ｘ＿ＡＤＤは、比較部１０４および１０５、また、小数部抽出部１０６および整数部抽出部１０７に供給される。
【０１３７】
比較部１０４は、加算部１０３からの出力値Ｘ＿ＡＤＤを、１画素処理クロックＣＬＫだけ前の出力値Ｘ＿ＡＤＤの整数成分と比較し、差が１以上であるとき、すなわち、画素位置が１画素分以上ジャンプしたときに、そのジャンプを示す信号ＳＫＩＰを出力する。この例では、このジャンプを示す信号ＳＫＩＰを参照することで、次に画素処理クロックＣＬＫのタイミングで処理すべきジャンプした画素位置を知ることができる。この信号ＳＫＩＰは、ＦＩＦＯメモリコントローラ１０８に供給される。
【０１３８】
また、比較部１０５は、加算部１０３からの出力値Ｘ＿ＡＤＤを、１画素処理クロックＣＬＫだけ前の出力値Ｘ＿ＡＤＤの整数成分と比較し、差が１より小さいときに、その旨を示す信号ＨＯＬＤを出力する。したがって、この信号ＨＯＬＤを参照することで、読み出し画素を、１画素処理クロックＣＬＫだけ前と同じであることを知ることができる。この信号ＨＯＬＤは、ＦＩＦＯメモリコントローラ１０８に供給される。
【０１３９】
小数部抽出部１０６は、加算部１０３からの出力値Ｘ＿ＡＤＤの小数部を、画素処理クロックＣＬＫ毎に抽出し、抽出した小数部の値Ｘ＿ＰＨＡＳＥを出力する。この少数部の値Ｘ＿ＰＨＡＳＥは、水平ＦＩＲフィルタ１１０を備える水平補間処理部１０９に供給される。水平補間処理部１０９では、この小数部の値Ｘ＿ＰＨＡＳＥに基づいて乗算係数テーブルを検索し、水平ＦＩＲフィルタ１１０に供給する乗算係数を得るようにする。
【０１４０】
整数部抽出部１０７は、加算部１０３からの出力値Ｘ＿ＡＤＤの整数部を、水平同期信号Ｈ−ＳＹＮＣにより各水平ラインの先頭で抽出し、抽出した整数部の値ＳＴ＿ＰＯＳを出力する。この整数部の値ＳＴ＿ＰＯＳは、現処理ラインの初期ｘ座標としてＦＩＦＯメモリコントローラ１０８に供給される。
【０１４１】
ＦＩＦＯメモリコントローラ１０８は、入力画像データＤｉｎについて、水平処理用ＦＩＦＯラインメモリ６１を用いて、水平手ぶれ補正量ＳＸ＿ＡＤＤに基づいた水平手ぶれ補正処理を行なうと共に、水平拡大・縮小処理を行なう。ここで、水平処理用ＦＩＦＯラインメモリ６１が、実際に１水平ライン分相当のサイズを必要とするのは、後述するように、画像の部分拡大処理をサポートすることを考慮する場合のみである。
【０１４２】
すなわち、ＦＩＦＯメモリコントローラ１０８は、入力画像データＤｉｎについて、前記整数部の値ＳＴ＿ＰＯＳを用いて、出力画像データとして読み出す各水平ラインの画素データの初期ｘ座標を決める。また、ＦＩＦＯメモリコントローラ１０８は、信号ＳＫＩＰおよび信号ＨＯＬＤを画素処理クロックＣＬＫごとに参照し、水平処理用ＦＩＦＯラインメモリ６１から読み出す画素データを決定するようにする。
【０１４３】
そして、ＦＩＦＯメモリコントローラ１０８は、以上のようにして読み出した水平ラインの画素データを出力画像データとして、データイネーブル信号ＥＮと共に、水平補間処理部１０９に供給する。
【０１４４】
水平補間処理部１０９は、データイネーブル信号ＥＮがイネーブル状態となっているときに入力される画像データを有効データとして、水平ＦＩＲフィルタ１１０を用いて水平方向の補間処理を実行する。前述したように、このときに水平補間処理部１０９に入力される小数部の値Ｘ＿ＰＨＡＳＥを用いて、水平ＦＩＲフィルタ１１０に供給する乗算係数が決定されている。
【０１４５】
こうして、水平補間処理部１０９からは、水平手ぶれ補正量ＳＸ＿ＡＤＤに応じて水平手ぶれ補正処理がなされると共に、水平方向の拡大・縮小処理がなされた画像データＤＨｏｕｔが得られる。このＤＨｏｕｔは、垂直処理ブロック５２に供給される。
【０１４６】
ところで、上述の説明では、水平手ぶれ補正量積分部５１１の水平手ぶれ補正量ＳＸ＿ＡＤＤの積分処理と、水平画像処理部５１１の水平拡大・縮小画像処理の、互いの処理タイミングについて特に触れなかったが、水平手ぶれ補正量ＳＸ＿ＡＤＤの積分処理を、遅延無しで、水平拡大・縮小画像処理との単純なシーケンス処理で行なうことが好都合なのは、図１２の上側の図１２（Ａ）に示すように、垂直方向の部分切り出し及び部分拡大をサポートしない場合にほぼ限られる。図１２で、Ｖ−ＳＹＮＣは垂直同期信号を示し、また、ＳＴ＿ＴＧは、有効走査ラインの開始時点を示している。また、図１２で、網掛けを付して示した四角で囲まれた区間は、それぞれの処理区間を示している。
【０１４７】
一方、垂直方向の部分切り出し、もしくは部分拡大をサポートする場合、初期ｙ座標ＳＹが非常に大きな値を取り得るため、フレーム先頭の積分処理に、相当長いサイクル数（画素処理サイクル数）を要してしまう可能性がある。図１２下側の（Ｂ）のシーケンスにおける期間ｔｍがそのための積分期間である。
【０１４８】
このようになると、図１２上側の（Ａ）のシーケンスでは、最初の拡大・縮小処理が水平同期信号Ｈ−ＳＹＮＣの１周期期間をオーバーしてしまうため、次の水平同期信号Ｈ−ＳＹＮＣで入力されて来る２ライン目の画像データを保持しておくためのラインメモリが必要となる。
【０１４９】
そこで、この実施形態では、図１２下側の（Ｂ）のシーケンスに示すように、水平拡大・縮小画像処理が開始される１水平周期前から積分処理の起動を行ない、常に画像処理に対して、１水平周期だけ先行して積分処理を行なうタイミングおよびシーケンスを採用する。このため、水平処理用ＦＩＦＯラインメモリ６１は、１水平周期分のサイズのものがこの実施形態では用いられている。
【０１５０】
上述した問題は、画像の部分拡大等に関わらず、水平処理は常に全入力ラインに対して処理を施す、というアーキテクチャにすれば避けられる。しかし、いずれにしても、図１２上側のシーケンスを実現しようとすると、積分処理の終了信号を新たに設け、それを受けて画像処理の起動をかけなければならず、やや煩雑である。つまり、換言すれば、上述したこの実施形態で採用した手法は、既存の画像処理の回路に新たな手を加えないで済む、というメリットがあるのである。
【０１５１】
なお、上述した実施形態で採用した手法は、水平同期信号Ｈ−ＳＹＮＣの１周期期間内の画素処理サイクル数よりも、絶対座標系の垂直サイズが大きい場合には採用できない。その場合には、水平処理は常に全入力ラインに対して処理を施すという、上述したアーキテクチャにすれば良い。
【０１５２】
［垂直処理ブロック５２における処理動作］
［垂直手ぶれ補正量ＳＹ＿ＡＤＤの積分処理］
次に、垂直手ぶれ補正量積分部５２１における積分値としての垂直手ぶれ補正量ＳＹ＿ＡＤＤを得るための積分処理動作について説明する。図１３は、この垂直手ぶれ補正量ＳＹ＿ＡＤＤを得るための積分処理動作のフローチャートを示すものである。
【０１５３】
この垂直手ぶれ補正量ＳＹ＿ＡＤＤを得るための積分処理動作は、図１０を用いて上述した水平手ぶれ補正量ＳＸ＿ＡＤＤを得るための積分処理動作と類似しているが、次の点が異なる。
【０１５４】
すなわち、水平同期信号Ｈ−ＳＹＮＣ毎に初期ｙ座標ＳＹに加算する値が「ｖｍａｇ」であることと、水平処理の進捗度合いを表すＨＤＩＶ＿ＣＮＴを見て、ウエイト（ＷＡＩＴ）をかけることと、各ラインの積分処理が終了したことを表わす積分完了信号ＳＴＢ＿ＲＤＹを生成して、垂直信号処理モジュールへ伝達すること、の以上３点である。
【０１５５】
この実施形態では、垂直画像処理において垂直方向の拡大・縮小を想定しており、値「ｖｍａｇ」は垂直拡大・縮小の倍率パラメータを表わしている。したがって、垂直処理ブロック５２では、水平処理ブロック５１から出力される画像データを全て処理するのではなく、拡大・縮小処理後に出力するラインの垂直座標を基準として処理を行なう。
【０１５６】
そのため、この垂直方向の積分処理においても、実際に、この垂直方向の積分処理後の垂直画像処理の対象となる座標における積分値を出力することが求められることから、垂直方向の座標増分パラメータを水平同期信号Ｈ−ＳＹＮＣ毎に加算するのである。なお、画像の拡大・縮小を伴わずに、ＣＭＯＳ手ぶれの補正のみを行なうのであれば、ｖｍａｇ = 1として良い。
【０１５７】
水平方向の積分処理とは異なる二つ目の、分割区間値ＨＤＩＶ＿ＣＮＴを見て、水平処理の進捗度合いを観測する必要性は、水平処理を垂直処理が追い越すことがあってはならないからである。一般的な画像の垂直拡大・縮小処理においては、垂直処理が水平処理を追い越す、というのは、まだ生成されていない画像に対して処理を施すことであるため、自ずとウエイトをかける仕組みが必要となる。同様に、この垂直方向の積分処理においても、画像を直接扱う訳ではないが、水平処理を追い越さない仕掛けが必要なのである。
【０１５８】
もう少し詳細に説明する。水平および垂直方向の積分パラメータである水平補正速度成分Ｘ＿ＳＴＢ＿＊（＊は０〜７のいずれかであり、Ｘ＿ＳＴＢ＿＊は、Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のいずれかを意味する。以下同じ）と、垂直補正速度成分Ｙ＿ＳＴＢ＿＊（＊は０〜７のいずれかであり、Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のいずれかを意味する。以下、同じ）は、処理を行っている水平ラインのサンプリング時刻（厳密に言うと露光期間の中心時点であることは既に説明）付近の手ぶれ速度ベクトル（手ぶれの速度と方向）の、それぞれ水平成分、垂直成分の逆符号である。したがって、露光時間が極めて短い時間の場合まで考慮すると、水平補正速度成分Ｘ＿ＳＴＢ＿＊と垂直補正速度成分Ｙ＿ＳＴＢ＿＊は、対応する水平ラインの画像データが入力される直前まで確定できない場合がある。
【０１５９】
後で詳述するレジスタブロック５３では、この事情を考慮し、水平方向の積分処理において現在処理しているラインが属する分割画像区間を意味する分割区間値ＨＤＩＶ＿ＣＮＴの値を見て、水平補正速度成分Ｘ＿ＳＴＢ＿＊と垂直補正速度成分Ｙ＿ＳＴＢ＿＊を、水平処理ブロック用レジスタと、垂直処理ブロック用レジスタにラッチする。したがって、水平処理ブロック５１では、特別な仕組みを設けなくとも、入力された画像を順次処理して行けば良いのである。
【０１６０】
一方、垂直処理ブロック５２での積分処理では、当該積分処理を行なった結果を、後段の垂直方向画像処理の初期オフセット座標とするため、水平処理からの画像が未だ入って来ていないことに後から気付いても、その時点では既にそのラインの積分処理は終わってしまっている。つまり、そのときには、未確定の垂直補正速度成分が用いられて積分がなされてしまったことになる。
【０１６１】
そのため、積分処理の段階で、処理しようとするラインに対応した積分パラメータである垂直補正速度成分Ｙ＿ＳＴＢ＿＊が、まだ確定前であることを、水平処理の進捗度合いから判断する必要があるのである。
【０１６２】
そのための仕組みとして、図１３のように、垂直処理の進捗度合いを表わす分割区間値ＶＤＩＶ＿ＣＮＴが、水平処理の進捗度合いを表わす分割区間値ＨＤＩＶ＿ＣＮＴを超えてしまっていれば、ウエイトを発行し、図１３の左下で、垂直処理における現処理ラインが所在する分割画像区間についての垂直補正速度成分の値である「ｓｔｂ＿ｙ」が未確定のままの垂直補正速度成分Ｙ＿ＳＴＢ＿＊が選択された状態で、垂直手ぶれ補正量ＳＹ＿ＡＤＤに加算されるのを防ぐ。
【０１６３】
垂直方向の積分処理（図１３）が水平方向の積分（図１０）と異なる、３つ目の点は、各ラインでの垂直積分が完了したことを表す積分完了信号ＳＴＢ＿ＲＤＹの生成である。各ライン内で積分を繰り返して行なった結果、そのラインの絶対座標の整数成分ｖｐ＿ｉと、そのフレーム内での累積積分回数ｖｓｔｂ＿ｃｎｔとが一致したときに、後段の垂直画像処理モジュールに渡すべき垂直オフセットＳＹ＿ＡＤＤが求められ、それと同時に、後段の垂直画像処理の起動をかけるのが目的である。
【０１６４】
既に説明した水平方向の積分処理においては、有効画像が入力されるタイミングよりも１水平同期信号Ｈ−ＳＹＮＣ（１水平周期）前から積分処理を開始しておけば、有効画像に対する水平画像処理が始まるまでに積分処理を完了できることが、殆どの場合、システム的に保証可能であるが、垂直方向の積分処理では、前述のウエイトが発生する可能性があるために、直前１水平周期の時間で積分が完了することを、全ての場合において保証するのは不可能だからである。すなわち、ウエイトが発生したときには、垂直積分が完了したことを表す積分完了信号ＳＴＢ＿ＲＤＹが発生したときに、垂直手ぶれ補正および垂直拡大・縮小処理を含む垂直画像処理を実行するようにする。
【０１６５】
以上の機能を有する、この垂直方向の積分回路を適用した垂直方向の積分処理を図１３のフローチャートを参照しながら説明する。
【０１６６】
まず、初期ｙ座標（水平ライン位置に対応）ＳＹに、水平同期信号Ｈ−ＳＹＮＣ毎に前述した値「ｖｍａｇ」を加算して行く（ステップＳ２１）。
【０１６７】
ステップＳ２１で、初期ｙ座標値をＳＹとして、１水平同期信号Ｈ−ＳＹＮＣ毎に、値ｖｍａｇを加算することにより、現在処理している水平ラインの絶対座標が求まり、当該絶対座標の整数成分ｖｐ＿ｉ（ステップＳ２２）が、垂直補正速度成分Ｙ＿ＳＴＢ＿＊（Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のいずれか）を、現時点までに積分すべき積分回数に対応する。ここで、この積分回数は、１画面内における積算値である。
【０１６８】
次に、現在処理している水平ライン、すなわち、現処理ラインの絶対座標の整数成分ｖｐ＿ｉと、現処理ラインの1水平ライン前までに積分した回数（積分回数ｖｓｔｂ＿ｃｎｔ）とを比較する。これにより、現処理ラインにおいて、あと何回積分すれば良いかが分かり、その回数分だけ、処理単位サイクル（１水平周期よりも十分に短い）毎にトリガＴＧ３が発生する（ステップＳ２３）。
【０１６９】
このトリガＴＧ３が発生する毎に、積分回数ｖｓｔｂ＿ｃｎｔは１づつインクリメントする（ステップＳ２４、ステップＳ２５）。
【０１７０】
そして、このトリガＴＧ３ごとに、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のうちの、現処理ラインが所在する分割画像区間についての垂直補正速度成分を加算することにより、積分処理を行ない、垂直手ぶれ補正量ＳＹ＿ＡＤＤを得る（ステップＳ２６）。ここで、図１３のステップＳ２６における「ｓｔｂ＿ｙ」は、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のいずれかの値である。すなわち、「ｓｔｂ＿ｙ」は、現処理ラインが所在する分割画像区間についての垂直補正速度成分の値である。
【０１７１】
ステップＳ２１で、１水平同期信号Ｈ−ＳＹＮＣ毎に加算される値「ｖｍａｇ」＝１であって、画像の拡大などではない通常の画像出力の場合には、トリガＴＧ３は、１水平同期信号Ｈ−ＳＹＮＣ毎に発生するため、ステップＳ２６では、１水平ライン毎に「ｓｔｂ＿ｙ」を加算（積分）するものである。
【０１７２】
こうして得られる垂直手ぶれ補正量ＳＹ＿ＡＤＤは、前述もしたように、ＣＭＯＳイメージャ上での各水平ラインの垂直方向の読み出し開始位置の補正量、すなわち、垂直処理ブロック５２における垂直方向画像歪み補正処理における各ラインの垂直位置（垂直オフセット）そのものとなる。
【０１７３】
上述したように、ステップＳ２６では、現処理ラインが、１画面分（１フレーム＝１垂直同期周期）を垂直方向に8分割した分割画像区間のどこに属するかによって、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のうちの、いずれか１つを選択しなければならない。
【０１７４】
この例では、分割画像区間分のライン数の加算値ｖｓｔｂ＿ｇｒｉｄが定義される（ステップＳ２７）。この加算値ｖｓｔｂ＿ｇｒｉｄの初期値は、１分割画像区間のライン数ＤＩＶである。
【０１７５】
そして、この加算値ｖｓｔｂ＿ｇｒｉｄと、積分回数ｖｓｔｂ＿ｃｎｔとを比較し、積分回数ｖｓｔｂ＿ｃｎｔが加算値ｖｓｔｂ＿ｇｒｉｄを超える毎に、トリガＴＧ４を発生する（ステップＳ２８）。そして、トリガＴＧ４が発生するごとに、加算値ｖｓｔｂ＿ｃｎｔに、１分割画像区間のライン数ＤＩＶを加算する（ステップＳ２９）。
【０１７６】
以上の処理により、現処理ラインが次の分割画像区間に移る毎に、トリガＴＧ４が発生する。したがって、現処理ラインが各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の何れに存在するかの分割区間値ＶＤＩＶ＿ＣＮＴを定義し（ステップＳ３０）、この分割区間値ＶＤＩＶ＿ＣＮＴを、トリガＴＧ４が発生する毎に、１づつインクリメントする（ステップＳ３１）。すると、分割区間値ＶＤＩＶ＿ＣＮＴは、現処理ラインが所在する各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７のそれぞれに対応して「０」〜「７」の値を取る。すなわち、分割区間値ＶＤＩＶ＿ＣＮＴは、垂直処理の進捗度合いを示すものとなる。
【０１７７】
なお、この例では、分割区間値ＶＤＩＶ＿ＣＮＴ＝８のときには、１フレーム分の画像データについての処理が終了したことを意味する。そして、分割区間値ＶＤＩＶ＿ＣＮＴ＝８に、「１」が加わると、分割区間値ＶＤＩＶ＿ＣＮＴ＝０となるように計算される。
【０１７８】
この分割区間値ＶＤＩＶ＿ＣＮＴは、水平処理ブロック５１からの、水平処理の進捗度合いを示す分割区間値ＨＤＩＶ＿ＣＮＴと比較され、分割区間値ＶＤＩＶ＿ＣＮＴが分割区間値ＨＤＩＶ＿ＣＮＴよりも大きくなったときには、水平処理を垂直処理が追い越してしまう状態を意味するので、ウエイト（ＷＡＩＴ）を発生して、トリガＴＧ３の発生を待機させる。すなわち、トリガＴＧ３は、ウエイトが解除された後に発生するように遅延させる（ステップＳ３２）。
【０１７９】
そして、この実施形態では、ステップＳ２２で得られるｙ座標の整数成分ｖｐ＿ｉと、積分回数ｖｓｔｂ＿ｃｎｔとが等しいかどうかをチェックし、等しければ現処理ラインについての垂直方向の積分が完了したことを示す積分完了信号ＳＴＢ＿ＲＤＹを生成して出力する（ステップＳ３３）。この積分完了信号ＳＴＢ＿ＲＤＹは、垂直画像処理部５２２に供給される。垂直画像処理部５２２では、この積分完了信号ＳＴＢ＿ＲＤＹにより、現処理ラインについての垂直方向の手ぶれ補正処理を開始してよいことを認識し、次の水平同期信号Ｈ−ＳＹＮＣのタイミングで垂直画像処理を再開する。
【０１８０】
［垂直画像処理部５２２の処理動作］
図１４は、垂直画像処理部５２２の構成例を示すものである。この図１４の例では、前述の図１３のフローチャートにおける水平同期信号Ｈ−ＳＹＮＣ毎に値「ｖｍａｇ」を加算する加算部２０１が、この垂直画像処理部５２２に含まれるものとしており、この垂直画像処理部５２２に初期ｙ座標ＳＹが入力される。
【０１８１】
そして、加算部２０１からの、垂直同期信号Ｈ−ＳＹＮＣ毎に値「ｖｍａｇ」が加算されたｙ座標値ＳＹ´は、垂直手ぶれ補正量積分部５２１に供給される。すると、この垂直手ぶれ補正量積分部５２１からは、現処理ラインの先頭のｙ座標のオフセット値として、垂直手ぶれ補正量ＳＹ＿ＡＤＤが返ってくる。
【０１８２】
垂直画像処理部５２２では、加算部２０２において、各水平ラインの先頭で一回だけ、垂直手ぶれ補正量積分部５２１からの垂直手ぶれ補正量ＳＹ＿ＡＤＤを、初期ｙ座標ＳＹに加算する。この加算部２０２の出力値Ｘ＿ＡＤＤは、小数部抽出部２０３および整数部抽出部２０４に供給される。
【０１８３】
小数部抽出部２０３は、加算部２０２からの出力値Ｙ＿ＡＤＤの小数部を、水平同期信号Ｈ−ＳＹＮＣにより各水平ラインの先頭で抽出し、抽出した小数部の値Ｙ＿ＰＨＡＳＥを出力する。この少数部の値Ｙ＿ＰＨＡＳＥは、垂直ＦＩＲフィルタ２０７を備える垂直補間処理部２０６に供給される。
【０１８４】
垂直ＦＩＲフィルタ２０７は、垂直方向に並ぶ複数ラインの画素データを用いて補間処理を行なうもので、垂直補間処理部２０６では、この小数部の値Ｙ＿ＰＨＡＳＥに基づいて乗算係数テーブルを検索し、垂直ＦＩＲフィルタ２０７に供給する乗算係数を得るようにする。これは、補間方向が垂直方向になるだけで、図７〜図８を用いて説明した水平ＦＩＲフィルタを用いる水平方向の補間処理とほぼ同様である。
【０１８５】
整数部抽出部２０４は、加算部２０２からの出力値Ｙ＿ＡＤＤの整数部を、水平同期信号Ｈ−ＳＹＮＣにより各水平ラインの先頭で抽出し、抽出した整数部の値Ｙ＿ＰＯＳを出力する。この整数部の値Ｙ＿ＰＯＳは、現処理ラインのｙ座標としてメモリコントローラ２０５に供給される。
【０１８６】
メモリコントローラ２０５は、水平処理ブロック５１からの画像データＤＨｏｕｔについて、垂直処理用小規模ラインメモリ６２を用いて、垂直手ぶれ補正量ＳＹ＿ＡＤＤに基づいた垂直手ぶれ補正処理を行なうと共に、垂直拡大・縮小処理を行なう。ここで、垂直処理用小規模ラインメモリ６２は、少なくとも、垂直ＦＩＲフィルタ２０７における補間処理に用いるライン数分、すなわち、垂直ＦＩＲフィルタのタップ数分の容量を有する。
【０１８７】
メモリコントローラ２０５は、その入力画像データＤＨｏｕｔを垂直処理用小規模ラインメモリ６２に一時保存すると共に、前記整数部の値Ｙ＿ＰＯＳを用いて、出力画像データＤＹｏｕｔ＿０、ＤＹｏｕｔ＿１、・・・、ＤＹ＿ｎとして出力する複数の水平ラインのデータを決める。そして、メモリコントローラ２０５は、以上のようにして決定した複数水平ラインの画素データＤＹｏｕｔ＿０、ＤＹｏｕｔ＿１、・・・、ＤＹ＿ｎを、小規模ラインメモリ６２から読み出して垂直補間処理部２０６に供給する。
【０１８８】
垂直補間処理部２０６は、入力される画像データＤＹｏｕｔ＿０、ＤＹｏｕｔ＿１、・・・、ＤＹ＿ｎを、垂直ＦＩＲフィルタ２０７を用いて垂直方向の補間処理を実行する。前述したように、このときに垂直補間処理部２０６に入力される小数部の値Ｙ＿ＰＨＡＳＥを用いて、垂直ＦＩＲフィルタ２０７に供給する乗算係数が決定されている。
【０１８９】
こうして、垂直補間処理部２０６からは、垂直手ぶれ補正量ＳＹ＿ＡＤＤに応じて垂直手ぶれ補正処理がなされると共に、垂直方向の拡大・縮小処理がなされた画像データＤｏｕｔが得られる。
【０１９０】
次に、図１５に、上説明した垂直方向の積分処理と、その後段の垂直画像処理のタイミング関係を示す。図１５の上の図１５（Ａ）のように、垂直方向の部分切り出し、垂直方向の部分拡大・縮小のいずれもサポートしない場合には、前述したウエイトは発生せず、現処理ラインについての垂直方向の積分回数の上限は高々数回である。このため、同一のラインに対する積分処理と画像処理の両方を、同じ１水平同期信号Ｈ−ＳＹＮＣ期間内でシーケンス化可能である。したがって、この場合には、わざわざ積分完了信号ＳＴＢ＿ＲＤＹを導入する必要はない。
【０１９１】
一方、図１５の下の図１５（Ｂ）のように、垂直方向の部分切り出し、もしくは垂直方向の部分拡大をサポートする場合には、1ライン目の積分処理の途中でウエイトが発生する可能性があり、縮小をサポートする場合には、どこか途中の水平ラインでウエイトが発生する可能性がある。
【０１９２】
いずれの場合でも、同一ラインの積分処理が、ウエイトによって数水平同期信号Ｈ−ＳＹＮＣ区間もしくはそれ以上に渡って中断されるため、積分処理が終了したことを後段に知らせるための積分完了信号ＳＴＢ＿ＲＤＹが必要となる。そして、図１５（Ｂ）の下２段に示すように、垂直拡大・縮小処理は、ウエイトが終了し、積分完了信号ＳＴＢ＿ＲＤＹが発生した後の水平同期信号Ｈ−ＳＹＮＣのタイミングから開始される。
【０１９３】
また、同時に、あるラインの垂直画像処理が完了していない場合には、次の水平同期信号Ｈ−ＳＹＮＣを、図１５（Ｂ）において点線で示すように、マスクするようにする。すなわち、ウエイトが発生している間の水平同期信号Ｈ−ＳＹＮＣは、マスクするようにする。
【０１９４】
以上説明した水平処理ブロック５１と垂直処理ブロック５２を含む信号処理部５における処理の流れは、図１６に示すように表わすことができる。すなわち、データ変換部３からの画像データＤｉｎは、水平処理用ＦＩＦＯラインメモリ６１に一旦書き込んで読み出し、水平画像処理部５１２および水平手ぶれ補正量積分部５１１を用いて水平手ぶれ補正および水平拡大・縮小処理を行なう。そして、水平画像処理部５１２の処理結果は、垂直処理用小規模ラインメモリ６２に書き込む。
【０１９５】
垂直処理用小規模ラインメモリ６２に書き込まれた画像データは、垂直画像処理部５２２および垂直手ぶれ補正量積分部５２１を用いて垂直手ぶれ補正および垂直拡大・縮小処理を行なう。そして、垂直画像処理部５２２の処理結果は、垂直処理用小規模ラインメモリ６２に書き戻す。そして、さらに、この垂直処理用小規模ラインメモリ６２から、出力画像データＤｏｕｔを読み出して出力する。
【０１９６】
以上の処理の結果、図１６の右下図のように、ＣＭＯＳ手ぶれに起因する歪み補正がなされた出力画像が得られる。
【０１９７】
ここでの垂直処理用小規模ラインメモリ６２としては、最低限、垂直ＦＩＲフィルタ２０７のタップ数分のラインメモリが必要であることを述べたが、現実的には、垂直方向の部分拡大処理を行なう場合には、垂直処理のスピードよりも水平処理のスピードの方が早くなるため、拡大対象となる水平処理結果を溜めておくだけのラインメモリが必要となる。
【０１９８】
また、部分拡大をしない場合でも、垂直補正速度成分Ｙ＿ＳＴＢ＿＊が鉛直上向きである場合には、部分拡大の場合と動作上同じになるため、小規模ラインメモリ６２としては、手ぶれが上下方向に変動する分を考慮したラインメモリが必要である。
【０１９９】
なお、上述の実施形態の場合、１垂直周期が１／６０秒であるとすると、分割画像区間Ｐｄｉｖの時間長ＤＩＶは、１／６０÷８＝１／４８０秒であるが、実験によれば、この程度の時間長ＤＩＶで、手ぶれ速度ベクトルを求めて手ぶれ補正をすることにより、必要十分な手ぶれ補正効果が得られ、補正後の出力画像としては、良好なものとなることが確認されている。
【０２００】
次に、以上の水平処理および垂直処理におけるレジスタブロック５３におけるレジスタへのラッチタイミングを、図１７に示す。
【０２０１】
すなわち、この実施形態では、垂直同期信号Ｖ−ＳＹＮＣの１周期について、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の先頭ラインよりも、前述した露光期間の中央の時点に対応する８個の時点で割り込み（マイコン割り込み）が発生する。
【０２０２】
この割り込みにより起動されて、手ぶれ速度検出処理部８で、サンプリング信号Ｓｐにより手ぶれ検出出力がサンプリングされ、そのサンプリング結果から、前述したようにして、水平補正速度成分Ｘ＿ＳＴＢ＿＊および垂直補正速度成分Ｙ＿ＳＴＢ＿＊が生成され、その生成結果である水平補正速度成分Ｘ＿ＳＴＢ＿＊および垂直補正速度成分Ｙ＿ＳＴＢ＿＊がレジスタブロック５３のＩＦレジスタに取り込まれる。
【０２０３】
水平補正速度成分Ｘ＿ＳＴＢ＿＊および垂直補正速度成分Ｙ＿ＳＴＢ＿＊の値を、制御部１３（マイコン）のソフトウエアで計算する場合、図１７に示すような定期的な割り込みを発生させる方法が有効である。制御部１３（マイコン）は、対象のフレームの露光時間を管理しているため、水平補正速度成分Ｘ＿ＳＴＢ＿＊と垂直補正速度成分Ｙ＿ＳＴＢ＿＊に対して、どの時間の手ぶれ速度を元に反映すればよいかが分かっている。
【０２０４】
しかしながら、露光時間が非常に短い場合、手ぶれ速度に基づく積分処理による手ぶれ補正量の計算が間に合わない場合も考えられ、その微妙なタイミングにおいては、ハードウェアの水平処理がどのラインまで到達しているか、観測出来る方が便利である。そのため、この実施形態では、水平処理の進捗度合いを示すＨＤＩＶ＿ＣＮＴを、制御部１３（マイコン）から読み出し可能なレジスタ（レジスタブロック５３内）に設定する。ＨＤＩＶ＿ＣＮＴを観測出来ることは、ソフトウエアのデバッグにおいても非常に有用である。
【０２０５】
また、レジスタブロック５３内では、分割区間値ＨＤＩＶ＿ＣＮＴの値の変化を見てラッチパルスを生成し、前述のように制御部１３（マイコン）が設定した、対応する水平補正速度成分Ｘ＿ＳＴＢ＿＊と垂直補正速度成分Ｙ＿ＳＴＢ＿＊とを、ＩＦレジスタから、水平処理用レジスタおよび垂直処理用レジスタに、この生成したラッチパルスのタイミングでラッチする。つまり、水平処理ブロック５１で用いる水平補正速度成分Ｘ＿ＳＴＢ＿＊を、その使用直前でラッチするのである。このとき、垂直処理ブロック５２で用いる垂直補正速度成分Ｙ＿ＳＴＢ＿＊も一緒にラッチしておく。
【０２０６】
垂直処理ブロック５２で使用する、垂直補正速度成分Ｙ＿ＳＴＢ＿＊は、基本的には、上記の水平処理ブロック５１用の水平補正速度成分Ｘ＿ＳＴＢ＿＊と一緒にラッチした、Ｙ＿ＳＴＢ＿＊の値を常にラッチし続ける。
【０２０７】
ただし、それは、垂直処理ブロック５２のフレーム処理起動パルスＶＬ１がアクティブ（ハイ状態がアクティブ）になってから、水平処理ブロック５１のフレーム処理起動パルスＶＬ０がアクティブ（ハイ状態がアクティブ）になるまでの期間（図１７のＲＶラッチイネーブルのアクティブ（ハイ状態がアクティブ）期間）に限られる。
【０２０８】
これは、垂直処理の時間は長引くことがあり、入力画像の垂直同期信号Ｖ−ＳＹＮＣだけでなく、次のフレームの水平処理ブロックのフレーム起動パルスＶＬ０さえも跨ぐことがあるからである。
【０２０９】
［他の実施形態および変形例］
上述の実施形態では、水平補正速度成分Ｘ＿ＳＴＢ＿＊および垂直補正速度成分Ｙ＿ＳＴＢ＿＊は、１水平ライン区間の時間長当たりの手ぶれ補正量として、水平手ぶれ補正量ＳＸ＿ＡＤＤおよび垂直手ぶれ補正量ＳＹ＿ＡＤＤの時間積分演算を、水平補正速度成分Ｘ＿ＳＴＢ＿＊および垂直補正速度成分Ｙ＿ＳＴＢ＿＊の単純加算とするようにしたが、それぞれの検出した速度成分と、各ラインの時間とを乗算するようにしても良いことは言うまでもない。
【０２１０】
また、各分割画像区間についての手ぶれ速度（ベクトル）は、角速度センサの出力や、加速度センサの出力を積分して得た速度出力を、露光期間の中央の時点でサンプリングするようにして取得するようにしたが、露光期間の全期間における角速度の平均値や露光期間の全期間における加速度の積分値の平均値を求めて、それを露光期間の中央の時点に対応する速度ベクトルとして求めることもできる。
【０２１１】
また、露光期間の全期間ではなく、露光期間の中央の時点を中央の時点とする露光期間よりも短い期間における、角速度の平均値や加速度の積分値の平均値を求めて、それを露光期間の中央の時点に対応する速度ベクトルとして求めるようにしてもよい。
【０２１２】
また、上述の実施形態では、手ぶれ速度を積分することにより手ぶれ補正量を求める際の、手ぶれ補正量の積分演算の開始時点の画像データに対する遅延を最小にするために、分割画像区間Ｐｄｉｖの先頭時点において、手ぶれ速度ベクトルを求めるようにしたが、遅延を許容するのであれば、各分割画像区間Ｐｄｉｖの手ぶれ速度ベクトルのサンプリング時点は、分割画像区間Ｐｄｉｖの先頭時点である必要はなく、当該分割画像区間内の任意の時点、例えば中央の時点でも良い。
【０２１３】
また、分割画像区間Ｐｄｉｖの複数時点（センサ出力のサンプリングが可能な間隔）において手ぶれ速度ベクトルを求め、それらの平均値を、その分割画像区間Ｐｄｉｖの手ぶれ速度ベクトルとするようにしても良い。加速度を検出する場合も同様である。この複数時点は、分割画像区間ＰｄｉｖのＤＩＶの全範囲である必要はなく、例えば、分割画像区間Ｐｄｉｖの中央時点を中心とするＤＩＶよりも短い区間であっても良い。
【０２１４】
このようにすれば、分割画像区間Ｐｄｉｖ内における手ぶれ速度ベクトルのばらつきを平均化加味した手ぶれ速度ベクトルを得ることができるというメリットがある。
【０２１５】
また、上述の実施形態の説明は、撮像装置を操作するユーザにより生起される手ぶれによる画像歪みを補正する場合であったが、ユーザにより生起される手ぶれのみではなく、撮影時に、撮像素子に対して、その撮像画像の水平方向および／または垂直方向の位置的変化を生じるように加わった振動などの偏倚力に起因して生じる画像歪みをも補正することができることは言うまでもない。
【０２１６】
また、上述の実施形態は、Ｘ−Ｙアドレス型の固体撮像素子としてＣＭＯＳイメージャを用いた場合であるが、撮像素子としてはＣＭＯＳイメージャに限定されるものでないことは勿論である。
【０２１７】
また、この発明は、撮像装置（カメラ）にのみ適用されるものではなく、例えば携帯電話端末、情報携帯端末などに撮像素子が取付けられて、画像を撮影する場合にも適用できるものである。さらに、ユーザが手で持って撮影を行なう装置にのみに適用されるものではなく、パーソナルコンピュータやテレビ電話装置などの固定的に設置される装置に対して外力が加わって振動等が生じる場合、また、自動車などに撮像素子が取付けられて、画像を撮影する場合にも適用可能である。
【図面の簡単な説明】
【０２１８】
【図１】この発明による撮像画像歪み補正方法の実施形態の概要を説明するための図である。
【図２】この発明による撮像画像歪み補正方法の実施形態の概要の要部を説明するための図である。
【図３】この発明による撮像画像歪み補正装置の実施形態の構成例を示すブロック図である。
【図４】図３の一部の詳細構成例を示す図である。
【図５】この発明による撮像画像歪み補正方法の実施形態における要部の動作を説明するための図である。
【図６】この発明による撮像画像歪み補正方法の実施形態における要部の動作を説明するための図である。
【図７】この発明による撮像画像歪み補正方法の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。
【図８】この発明による撮像画像歪み補正方法の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。
【図９】この発明による撮像画像歪み補正方法の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。
【図１０】図３の実施形態の装置における水平手ぶれ補正量積分部の動作の流れを説明のためのフローチャートである。
【図１１】図３の実施形態の装置における水平画像処理部の詳細構成例を示すブロック図である。
【図１２】図１１の水平画像処理部の動作タイミングを説明するための図である。
【図１３】図３の実施形態の装置における垂直手ぶれ補正量積分部の動作の流れを説明のためのフローチャートである。
【図１４】図３の実施形態の装置における垂直画像処理部の詳細構成例を示すブロック図である。
【図１５】図１４の垂直画像処理部の動作タイミングを説明するための図である。
【図１６】図３の撮像画像歪み補正装置における信号処理部における処理動作を説明するためのブロック図である。
【図１７】図３の撮像画像歪み補正装置における信号処理部内のレジスタブロックにおけるレジスタ動作のタイミングを説明するための図である。
【図１８】従来の手ぶれ補正を説明するために用いる図である。
【図１９】ＣＭＯＳイメージャにおける、手ぶれによるフレーム内画像歪みの原因を説明するための図である。
【図２０】ＣＭＯＳイメージャにおける、手ぶれによるフレーム内画像歪みを説明するために用いる図である。
【図２１】従来のＣＭＯＳイメージャについての、手ぶれによるフレーム内画像歪みの補正方法を説明するための図である。
【符号の説明】
【０２１９】
２…撮像素子、５…信号処理部、６…画像メモリ、７…手ぶれ検出部、８…手ぶれ速度検出処理部、５１…水平処理ブロック、５２…垂直処理ブロック、５３…レジスタブロック、５１１…水平手ぶれ補正量積分部、５１２…水平画像処理部、５２１…垂直手ぶれ補正量積分部、５２２…垂直画像処理部、６１…水平処理用ＦＩＦＯラインメモリ、６２…垂直処理用小規模ラインメモリ、８１…サンプリング部、８２…水平補正速度成分検出部、８３…垂直補正速度成分検出部
【図１】
2006186481.tif 000003
【図２】
2006186481.tif 000004
【図３】
2006186481.tif 000005
【図４】
2006186481.tif 000006
【図５】
2006186481.tif 000007
【図６】
2006186481.tif 000008
【図７】
2006186481.tif 000009
【図８】
2006186481.tif 000010
【図９】
2006186481.tif 000011
【図１０】
2006186481.tif 000012
【図１１】
2006186481.tif 000013
【図１２】
2006186481.tif 000014
【図１３】
2006186481.tif 000015
【図１４】
2006186481.tif 000016
【図１５】
2006186481.tif 000017
【図１６】
2006186481.tif 000018
【図１７】
2006186481.tif 000019
【図１８】
2006186481.tif 000020
【図１９】
2006186481.tif 000021
【図２０】
2006186481.tif 000022
【図２１】
2006186481.tif 000023