以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の画像処理装置は、撮像素子により第1の画像を撮像する撮像手段(例えば、図6の撮像素子111)と、加えられた振動を検出し、その振動の大きさを示す振動量を出力する検出手段(例えば、図6の振動検出部118)と、前記第1の画像の第1の領域から抽出され、動画像の撮影中に撮像された静止画像として出力される第2の画像への前記振動による影響を低減するように、前記第1の画像における前記第1の領域の位置を移動させる移動量を示す第1の補正量と、前記第1の画像における前記第1の領域よりも小さい第2の領域から抽出され、前記動画像の1つのフィールドを構成する静止画像として出力される第3の画像への前記振動による影響を低減するように、前記第1の画像における前記第2の領域の位置を移動させる移動量を示す第2の補正量とを前記振動量から算出する算出手段(例えば、図6の補正量算出部119)と、前記第1の補正量に基づいて前記第1の領域を移動させた場合に、移動後の前記第1の領域が前記第1の画像内の領域となるように、前記第1の補正量を変更する制限手段(例えば、図6の補正量算出部119)と、前記制限手段による変更後の前記第1の補正量と、前記第2の補正量との差が、所定の閾値以上である場合、前記変更後の前記第1の補正量に基づいて移動させた前記第1の領域の中心から、前記第2の補正量に基づいて移動させた前記第2の領域の中心までの距離が短くなるように、前記第1の領域の大きさを縮小させる領域修正手段(例えば、図6の領域修正部131)と、前記第1の画像における、前記領域修正手段により縮小された前記第1の領域を、前記変更後の前記第1の補正量に基づいて移動させ、その移動後の前記第1の領域の画像を、前記第2の画像として読み出す読み出し手段(例えば、図6の画像補間部114)とを備える。
前記制限手段(例えば、図17のステップS51の処理乃至ステップS54の処理を実行する補正量算出部119)には、算出された前記第1の補正量が、予め定められた所定の値よりも大きい場合、前記値を変更後の第1の補正量とさせるようにすることができる。
前記算出手段(例えば、図13のステップS13の処理を実行する補正量算出部119)には、前記振動量および前記第1の補正量を基に、前記振動により生じる前記第2の画像の歪みの影響を低減するように、前記第1の領域を構成する画素の各ラインの位置を移動させる移動量を示す歪み補正量をさらに算出させ、前記読み出し手段(例えば、図18のステップS83の処理を実行する画像補間部114)には、前記縮小された前記第1の領域を、前記変更後の前記第1の補正量と、前記歪み補正量とに基づいて移動させ、その移動後の前記第1の領域の画像を、前記第2の画像として読み出させるようにすることができる。
前記制限手段(例えば、図13のステップS16の処理を実行する補正量算出部119)には、前記第1の領域を構成する画素の所定のラインの前記歪み補正量が、前記第1の補正量に基づく所定の値よりも大きい場合、前記ラインの歪み補正量を前記値に変更させるようにすることができる。
本発明の一側面の画像処理方法またはプログラムは、撮像素子により第1の画像を撮像し(例えば、図13のステップS20)、加えられた振動を検出し、その振動の大きさを示す振動量を出力し(例えば、図13のステップS11)、前記第1の画像の第1の領域から抽出され、動画像の撮影中に撮像された静止画像として出力される第2の画像への前記振動による影響を低減するように、前記第1の画像における前記第1の領域の位置を移動させる移動量を示す第1の補正量と、前記第1の画像における前記第1の領域よりも小さい第2の領域から抽出され、前記動画像の1つのフィールドを構成する静止画像として出力される第3の画像への前記振動による影響を低減するように、前記第1の画像における前記第2の領域の位置を移動させる移動量を示す第2の補正量とを前記振動量から算出し(例えば、図13のステップS12)、前記第1の補正量に基づいて前記第1の領域を移動させた場合に、移動後の前記第1の領域が前記第1の画像内の領域となるように、前記第1の補正量を変更し(例えば、図13のステップS15)、変更後の前記第1の補正量と、前記第2の補正量との差が、所定の閾値以上である場合、前記変更後の前記第1の補正量に基づいて移動させた前記第1の領域の中心から、前記第2の補正量に基づいて移動させた前記第2の領域の中心までの距離が短くなるように、前記第1の領域の大きさを縮小させ(例えば、図13のステップS18)、前記第1の画像における、縮小された前記第1の領域を、前記変更後の前記第1の補正量に基づいて移動させ、その移動後の前記第1の領域の画像を、前記第2の画像として読み出す(例えば、図18のステップS83)ステップを含む。
以下、図面を参照して本発明を適用した実施の形態について説明する。
図6は、本発明を適用した画像処理装置の構成例を示すブロック図である。
画像処理装置100は、撮像素子111、AFE(Analog Front End)112、信号処理部113、画像補間部114、TG(Timing Generator)115、メモリコントローラ116、メモリ117、振動検出部118、補正量算出部119、およびメモリ120を含むように構成される。
撮像素子111は、例えば、電荷転送型の固体撮像素子(CCDセンサなど)や、X‐Yアドレス型の固体撮像素子(CMOSセンサなど)により構成される。撮像素子111により撮像された被写体の画像のデータ(静止画像または、動画像のフィールドを構成する静止画像の画像データ)は、AFE112に供給される。
AFE112は、供給された画像データをデジタル信号の画像データに変換し、信号処理部113またはメモリ120に供給する。信号処理部113は、AFE112またはメモリ120から供給された画像データから、輝度信号と色差信号を算出し、その算出したそれぞれの信号を、画像補間部114に供給する。
画像補間部114に供給される画像データは、撮像素子111により撮像された被写体の画像のデータであるが、撮像素子111により撮像された画像の全てのデータが、画像補間部114に供給されるわけではなく、TG115からのタイミングに従って読み出された画像データのみが、画像補間部114に供給される。
画像補間部114に供給されたデータは、一旦、メモリコントローラ116の制御の基、メモリ117に供給される。逆にメモリ117に記憶されたデータは、メモリコントローラ116の指示により読み出され、画像補間部114に供給される。画像補間部114は、供給された画像データに対して、手ぶれの補正を行うための処理などを施し、図示されていない記録媒体に出力して、画像データを記録させたり、図示されていないディスプレイなどに出力し、静止画像または動画像を表示させたりする。
なお、ここでは、画像処理装置100に加えられる振動として、ユーザの手振れを例に挙げて説明するが、手振れ以外の振動であっても、本発明を適用することはできる。
画像補間部114、TG115、およびメモリコントローラ116は、振動検出部118により検出された振動量に応じ、補正量算出部119により算出された手振れ補正量に基づいた制御を行う。
振動検出部118は、例えば、角速度センサなどのセンサを用いた方法や、画像処理等によるセンサレスの手ぶれ検出の方法などが用いられ、動画像の撮影中に画像処理装置100に加えられた振動の量(振動量)を検出する。例えば、振動検出部118が、角速度センサにより構成されていた場合、その角速度センサは、ピッチング方向、ヨーイング方向、それぞれの方向に加えられた角速度のデータを補正量算出部119に供給する。
補正量算出部119は、手振れに伴う動きを補正するための手振れ補正量を算出する。例えば、補正量算出部119は、振動検出部118から供給されたデータを用いて、撮像素子111の有効画素領域上において、静止画像領域または動画像領域を何画素(ピクセル)移動させれば加えられた手振れによる影響を低減できるかというシフト量を手振れ補正量として算出する。
また、補正量算出部119は、領域修正部131を備えている。補正量算出部119の領域修正部131は、必要に応じて、有効画素領域から静止画像の画像データを読み出す静止画像領域を修正(変更)する。
メモリ120は、AFE112から供給された画像データを記憶する。また、メモリ120は、補正量算出部119から供給されたシフト量、修正された静止画像領域を示す領域情報などを記憶する。メモリ120は、記憶している画像データ、シフト量、領域情報などを、信号処理部113を介して画像補間部114に供給する。
ところで、画像処理装置100の撮像素子111が、CMOSセンサなどのX‐Yアドレス型の固体撮像素子により構成されている場合、動画像の撮影中に静止画像を撮像するときにはメカシャッタを用いることができないので、フォーカルプレーンシャッタ方式(ローリングシャッタ方式)と称される露光方式により静止画像が撮像される。
フォーカルプレーンシャッタ方式においては、1ライン単位で露光が行われるので、静止画像(静止画像領域)を構成する画素のラインごとに露光期間にずれ(時間差)が生じる。そのため、静止画像の撮像中に画像処理装置100に振動が加えられると、その振動の影響により撮像された静止画像に歪みが生じてしまう。ここで、ラインとは、静止画像(静止画像領域)を構成する複数の画素が所定の方向に並べられた画素の列をいう。
例えば、図7の左側に示すように、有効画素領域151における被写体の位置が、加えられた振動によって図中、有効画素領域151の中央から時間の経過とともに右下に移動すると、加えられた振動が検出され、検出された振動の影響を打ち消すように動画像領域がシフトされる。
図7の左側では、動画像の最初のフィールドの動画像領域161は、有効画素領域151の中央とされており、その次のフィールドの動画像領域162は、有効画素領域151の中央から右下にシフトされており、さらに、その次のフィールドの動画像領域163は、動画像領域162よりもさらに右下にシフトされている。このように、各フィールドの動画像領域は、検出された振動の影響を打ち消すようにシフトされる。
また、静止画像領域も、動画像領域と同様に、検出された振動の影響を打ち消すようにシフトされる。図中、中央の左側には、手振れを補正するために動画像領域と同じだけシフトされた静止画像領域が示されている。すなわち、静止画像領域171乃至静止画像領域173のそれぞれは、動画像領域161乃至動画像領域163の動画像の撮影時刻のそれぞれと同じ時刻に撮像された静止画像の静止画像領域を表わしている。
また、図中、中央に示すように、各時刻における有効画素領域151上の被写体は歪んで写っている。また、静止画像領域171および静止画像領域172の中心と、動画像領域161および動画像領域162の中心とは同じ位置となっている。
ところが、図中、中央に示すように、静止画像領域173の中心と、動画像領域163の中心とは同じ位置であり、動画像領域163は、有効画素領域151内の領域となっているが、静止画像領域173は、有効画素領域151からはみ出してしまっている。ここで、図中、静止画像領域173内の斜線の部分は、有効画素領域151からはみ出してしまっている領域を表わしている。
画像処理装置100は、静止画像領域が有効画素領域151からはみ出さないように、静止画像領域のシフト量を制限する。さらに、画像処理装置100は、フォーカルプレーンシャッタ方式により生じる被写体の歪みを補正するために、静止画像領域(動画像領域)のラインごとに、そのライン(の画像)を何画素(ピクセル)移動させれば被写体の歪みを低減できるかという歪み補正量を手振れ補正量として算出し、静止画像(動画像)の補正を行う。
ここで、歪み補正量とは、被写体の歪みを低減させるために、静止画像領域(動画像領域)の中心のラインを基準として、中心のラインに対して他のラインを移動させる相対的なシフト量をいう。シフト量および歪み補正量の詳細については後述する。
また、以下では、撮像素子111がX‐Yアドレス型の固体撮像素子により構成されており、画像処理装置100が、シフト量および歪み補正量を、手振れによる影響を低減させるための手振れ補正量として算出し、静止画像(動画像)の補正を行うものとして説明を続ける。なお、撮像素子111が電荷転送型の固体撮像素子により構成される場合には、手振れによる被写体の歪みは生じないので、手振れ補正量としてシフト量だけが算出されて、静止画像(動画像)の補正が行われる。
次に、図8乃至図12を参照して、動画像の撮影中に撮像された静止画像に対する手振れの補正について説明する。
まず、図8に示すように、画像処理装置100の撮像素子111の有効画素領域201に対して、有効画素領域201よりもある程度小さい領域を動画像領域202とし、有効画素領域201よりもわずかに小さく、動画像領域202よりも大きい領域を静止画像領域203とする。そして、画像処理装置100は、画像処理装置100に加えられた振動の量(振動量)を検出して、その検出結果に基づいて、静止画像領域203のシフト量、および静止画像領域203のラインごとの歪み補正量を算出して手振れの補正を行う。
図8では、動画像領域202よりも静止画像領域203の方が大きいので、動画像領域202をシフト(移動)させることができる距離は、静止画像領域203をシフト(移動)させることができる距離よりも長くなる。
例えば、算出されたシフト量が0である場合、図9に示すように、画像処理装置100は、静止画像領域203の中心をシフトさせずに、各ラインの歪み補正量に基づいて各ラインをシフトさせ、手振れによる静止画像の歪みを補正する。その結果、歪み補正量に基づいて各ラインがシフトされた静止画像領域211から画像データが読み出され、静止画像の画像データとされる。
また、算出されたシフト量が0でない場合、図10に示すように、画像処理装置100は、静止画像領域203(の中心)を算出されたシフト量により示される距離だけシフトさせ、さらに、歪み補正量に基づいて各ラインをシフトさせて手振れを補正する。
図10では、点線で示される動画像領域202および静止画像領域203は、シフト前(補正前)の動画像領域および静止画像領域を表わしており、実線で示される動画像領域221および静止画像領域222は、シフト後(補正後)の動画像領域および静止画像領域を表わしている。また、図中、中央に示される矢印は、動画像領域202および静止画像領域203をシフトさせたシフト量を示しており、図10では、動画像領域202のシフト量および静止画像領域203のシフト量は同じとされている。
さらに、算出されたシフト量に基づいて静止画像領域203をシフトさせると、静止像領域203が有効画素領域201からはみ出てしまう場合、画像処理装置100は、図11に示すように、静止画像領域203のシフト量を制限する。
図中、点線で示される動画像領域202および静止画像領域203は、シフト前(補正前)の動画像領域および静止画像領域を表わしており、実線で示される動画像領域231および静止画像領域232は、シフト後(補正後)の動画像領域および静止画像領域を表わしている。また、中央に示される実線の矢印は、動画像領域202をシフトさせたシフト量を示しており、点線の矢印は、静止画像領域203をシフトさせたシフト量を示している。
図11では、静止画像領域203は、図中、右下の方向にシフトされており、シフト後の静止画像領域が、有効画素領域201内となるように、図中、下方向および右方向のシフト量が制限されている。具体的には、シフト後の静止画像領域232の一番下のラインが、有効画素領域201の一番下の位置となり、シフト後の静止画像領域232の一番右側が、有効画素領域201の一番右の位置となるように静止画像領域203のシフト量が制限されている。
このように、図11の例においては、動画像領域202のシフト量は制限されないが、静止画像領域203のシフト量は制限されるので、静止画像領域203のシフト量は、動画像領域202のシフト量よりも小さくなる。
さらに、動画像領域202のシフト量と、静止画像領域203のシフト量とが大きく異なる場合には、シフト後の動画像領域の中心の位置と、静止画像領域の中心の位置とが大きく異なるため、画像処理装置100は、シフト後の静止画像領域の中心の位置が、シフト後の動画像領域の中心の位置により近い位置となるように、静止画像領域を縮小する。
例えば、静止画像領域203のシフト量と、動画像領域202のシフト量との差が、予め定められた所定の閾値以上である場合、画像処理装置100は、図12に示すように、静止画像領域を縮小する。
図中、点線で示される動画像領域202および静止画像領域203は、シフト前(補正前)の動画像領域および静止画像領域を表わしており、実線で示される動画像領域251は、シフト後(補正後)の動画像領域を表わしている。また、一転鎖線で示される静止画像領域261は、シフト後の静止画像領域を表わし、実線で示される静止画像領域271は、シフト後にさらに縮小された静止画像領域を表わしている。
さらに、図中、左上の矢印は、シフト後の静止画像領域261が縮小される方向を示しており、中央に示される実線の矢印は、動画像領域202をシフトさせたシフト量を示しており、点線の矢印は、静止画像領域203をシフトさせたシフト量を示している。
図12では、静止画像領域203は、図中、右下の方向にシフトされて、さらに、シフト後の静止画像領域261の中心の位置が、シフト後の動画像領域251の中心の位置により近い位置となるように、静止画像領域261が縮小されている。具体的には、シフト後の静止画像領域261の図中、上側の端が、下方向に移動し、左側の端が図中、右方向に移動するように静止画像領域261が縮小される。このとき、静止画像領域261の図中、下側の端および右側の端はそのままの位置とされている。
このように、シフト後の静止画像領域の中心の位置が、シフト後の動画像領域の中心の位置により近い位置となるように、静止画像領域を縮小させることによって、静止画像領域を有効画素領域201内の領域とし、撮像により得られる静止画像上の被写体の位置を、ユーザが画像処理装置100の表示画面において確認した被写体の位置により近いものとすることができる。
ユーザが画像処理装置100を操作して、動画像の撮影を指示すると、画像処理装置100は、その操作に応じて動画像の撮影を開始する。すなわち、撮像素子111は、被写体を撮像して、これにより得られた画像データを、AFE112および信号処理部113を介して画像補間部114に供給する。画像補間部114は、信号処理部113から供給された画像データを、メモリコントローラ116を介してメモリ117に供給し、メモリ117は供給された画像データを記憶する。
また、補正量算出部119は、振動検出部118から供給された振動量を基に、動画像の手振れを補正するためのシフト量および歪み補正量を算出する。補正量算出部119は、算出したシフト量および歪み補正量を、メモリコントローラ116を介してメモリ117に供給する。そして、画像補間部114は、メモリ117から画像データ、シフト量、および歪み補正量を取得して、シフト量および歪み補正量に基づいて動画像領域をシフト(移動)させる。画像補間部114は、動画像を構成するフィールドごとの動画像領域から画像データを読み出して、図示せぬ記録媒体に供給し、これを動画像データとして記録させる。
このようにして、画像処理装置100は、ユーザの操作に応じて、動画像を撮影する。さらに、画像処理装置100が動画像を撮影しているときに、ユーザが画像処理装置100を操作して、静止画像の撮像を指示すると、画像処理装置100は、静止画像を撮像するとともに、静止画像の手振れ補正量を算出する処理である手振れ補正量の算出処理を行う。以下、図13のフローチャートを参照して、画像処理装置100による手振れ補正量の算出処理について説明する。
ステップS11において、補正量算出部119は、振動検出部118から、振動検出部118において検出された振動量(のデータ)を取得する。
例えば、図14に示すように、図中、右方向をX方向とし、下方向をY方向とすると、補正量算出部119は、X方向およびY方向の振動量を取得する。なお、図14において、有効画素領域201および静止画像領域203は、図8における場合と同様であるため同一の符号を付してあり、繰り返しになるのでその説明は省略する。
また、図中、矢印XSは、静止画像領域203の右端から、有効画素領域201の右端までの距離を示している。すなわち、XSは、有効画素領域201上において、静止画像領域203をX方向にシフト(移動)させることができる余剰の大きさを示している。同様に、矢印YSは、静止画像領域203の上端から、有効画素領域201の上端までの距離を示している。すなわち、YSは、有効画素領域201上において、静止画像領域203をY方向にシフトさせることができる余剰の大きさを示している。以下、矢印XSおよび矢印YSにより示される距離を単にXSおよびYSと称する。
また、振動検出部118においては、X方向またはY方向の振動量として、例えば、図15に示すように振動量が検出されて、補正量算出部119に供給される。
図15に示した例では、振動検出部118により、1画面(静止画像領域203)が9つのラインで構成され、その1画面において、それぞれのライン毎に9つの振動量が取得される場合を示している。すなわち、ライン8のときに振動量P8が、ライン7のときに振動量P7が、ライン6のときに振動量P6が、ライン5のときに振動量P5が、ライン4のときに振動量P4が、ライン3のときに振動量P3が、ライン2のときに振動量P2が、ライン1のときに振動量P1が、ライン0のときに振動量P0が、それぞれ取得される。
なお、ここでは、説明の都合上、1画面が9ラインで構成されるとしているが、実際には9ライン以上のライン数で構成されている。また、ここでは9ライン毎に振動量が取得されるとするが、実際には、振動量を取得するサンプリング周波数と、ラインの読み出しのタイミングにはずれがあるため(露光時間などに読み出し時間は依存し、変化するために、サンプリング周波数などの一定の周期を有するタイミングとは一致しないときがあるため)、ライン毎に露光時間の中央で振動量が取得できるとは限らない。
そこで、所定のラインで取得された振動量は、そのラインを含む数ラインで共通して用いられる。または、取得された離散的な振動量を用いて補間を行い、ライン毎の振動量が生成される。
図13のフローチャートの説明に戻り、ライン毎にX方向およびY方向の振動量が取得されると、ステップS12において、補正量算出部119は、振動検出部118から供給された振動量を基に、X方向およびY方向のシフト量を算出する。
例えば、補正量算出部119は、振動検出部118から供給された振動量のうち、画面(静止画像領域203)の中心のラインのX方向およびY方向の振動量を基に、それぞれX方向およびY方向のシフト量を算出する。
シフト量とは、振動量を、振動のない状態(振動による影響が低減された状態)にするために、どれだけの補正を行えば良いのかを表す画素(ピクセル)単位の値である。静止画像領域203のシフト量は、静止画像領域203の中心のラインの露光時に検出された振動量を基に算出される。
例えば、図15がX方向の振動量を示した例であるとすると、画面の中心のラインはライン4であるので、ライン4のX方向の振動量がP4ピクセルである状態を、振動のない状態にするためには、符号の異なる絶対値、すなわちこの場合、−P4ピクセルがX方向のシフト量として算出されるようにすれば良い。また、X方向のシフト量と同様にして、補正量算出部119は、振動検出部118から供給されたY方向の振動量のうち、画面の中心のラインの振動量を基に、Y方向のシフト量を算出する。
ステップS13において、補正量算出部119は、振動検出部118から供給された振動量を基に、X方向およびY方向のラインごとの歪み補正量を算出する。歪み補正量とは、被写体の歪みのない状態にするために、画面の中心のラインに対して、画面を構成する各ラインをどれだけシフトさせて補正を行えば良いかを表す画素(ピクセル)単位の値である。
例えば、図15がX方向の振動量を示した例であるとして、ライン8のX方向の歪み補正量を算出する場合を考える。画面の中心のラインはライン4であり、ライン4のX方向の振動量がP4ピクセルである状態を、振動のない状態にするためには、符号の異なる絶対値、すなわち−P4ピクセルだけライン4をシフトさせればよい。同様に、ライン8のX方向の振動量がP8ピクセルである状態を、振動のない状態にするためには、符号の異なる絶対値、すなわち−P8ピクセルだけライン8をシフトさせればよい。したがって、被写体がX方向に歪みのない状態にするためには、ライン8をライン4に対して、X方向にP4−P8(=(−P8)−(−P4))ピクセルだけシフトさせればよいので、補正量算出部119は、P4−P8をライン8のX方向の歪み補正量として算出する。
補正量算出部119は、ライン0乃至ライン7についても、ライン8における場合と同様に、X方向の歪み補正量を算出する。また、補正量算出部119は、X方向の歪み補正量と同様にY方向の歪み補正量も算出する。さらに、補正量算出部119は、ステップS11の処理乃至ステップS14の処理を行って、静止画像(静止画像領域203)に対するシフト量および歪み補正量を算出すると同時に、上述したように、動画像(動画像領域202)に対するシフト量および歪み補正量も算出する。
補正量算出部119は、シフト量および歪み補正量を算出すると、算出したシフト量および歪み補正量をメモリ120に供給する。また、補正量算出部119は、予め定められた静止画像領域203を示す領域情報を生成して、メモリ120に供給する。ここで、領域情報は、例えば、図14の静止画像領域203のX方向の大きさ、Y方向の大きさ、静止画像領域203の左上の頂点の有効画素領域201上の位置などの情報が含まれる情報とすることができる。
ステップS14において、メモリ120は、補正量算出部119から供給された領域情報、シフト量、および歪み補正量を記憶する。
ステップS15において、補正量算出部119は、メモリ120に記憶されているシフト量を参照して、シフト量の制限処理を行う。なお、シフト量の制限処理の詳細は後述するが、シフト量の制限処理において、補正量算出部119は、シフト後の静止画像領域が、有効画素領域201からはみ出さないように(有効画素領域201内の領域となるように)、算出されたX方向のシフト量およびY方向のシフト量を制限する。補正量算出部119は、シフト量を制限すると、制限されたシフト量をメモリ120に供給する。
なお、より詳細には、シフト後の静止画像領域が、有効画素領域201からはみ出さない場合には、シフト量の制限処理においてシフト量は制限されないが、以下では、シフト量の制限処理前のシフト量と、シフト量の制限処理後のシフト量とを区別するため、シフト量の制限処理後のシフト量を、制限されたシフト量と称する。
ステップS16において、補正量算出部119は、メモリ120に記憶されているX方向およびY方向の歪み補正量と、制限されたX方向およびY方向のシフト量に基づいて、各ラインのX方向およびY方向の歪み補正量を制限する。
例えば、補正量算出部119は、静止画像領域203を構成する所定のラインを、ステップS15において制限されたX方向のシフト量だけシフトさせ、さらに、そのラインをX方向の歪み補正量だけシフトさせた場合に、そのラインが有効画素領域201内にあるとき、算出されたX方向の歪み補正量を制限せずに、そのままX方向の歪み補正量として用いる。
これに対して、静止画像領域203を構成する所定のラインを、制限されたX方向のシフト量だけシフトさせ、さらに、そのラインをX方向の歪み補正量だけシフトさせた場合に、そのラインが有効画素領域201内にないとき、すなわち、ラインの端が有効画素領域201からはみ出すとき、そのラインが有効画素領域201内となるように、X方向の歪み補正量を制限する。
例えば、図14に示した静止画像領域203を構成する所定のラインを、制限されたX方向のシフト量だけシフトさせ、さらに、X方向の歪み補正量だけシフトさせると、そのラインの図中、右端が有効画素領域201の右端よりも右側の位置となってしまう場合、補正量算出部119は、そのラインを、制限されたX方向のシフト量だけシフトさせ、さらに、X方向の歪み補正量だけシフトさせたときに、ラインの右端の位置が、有効画素領域201の右端の位置となるように、X方向の歪み補正量を制限する。
例えば、制限された静止画像領域203のX方向のシフト量をPXとすると、静止画像領域203の所定のラインのX方向の歪み補正量が正の値であり、XS−PXの値よりも大きい場合には、そのラインは、有効画素領域201からはみ出てしまうので、そのラインのX方向の歪み補正量をXS−PXとして、歪み補正量を制限する。また、歪み補正量が負の値であり、歪み補正量の絶対値がXS+PXの値よりも大きい場合には、そのラインは、有効画素領域201からはみ出てしまうので、そのラインのX方向の歪み補正量を−(XS+PX)として、歪み補正量を制限する。
補正量算出部119は、X方向の歪み補正量を制限する場合と同様に、Y方向の歪み補正量も制限する。このようにして、補正量算出部119は、静止画像領域203を構成する全てのラインについて、X方向およびY方向の歪み補正量を制限する。補正量算出部119は、歪み補正量を制限すると、制限した歪み補正量をメモリ120に供給する。
なお、より詳細には、歪み補正量に基づくシフト後の静止画像領域が、有効画素領域201からはみ出さない場合にはステップS16の処理において歪み補正量は制限されないが、以下では、ステップS16の処理において歪み補正量を制限する前の歪み補正量と、ステップS16の処理において歪み補正量が制限された後の歪み補正量とを区別するため、ステップS16の処理において歪み補正量が制限された後の歪み補正量を、制限された歪み補正量と称する。
ステップS17において、補正量算出部119の領域修正部131は、補正量算出部119が算出した、動画像領域202のシフト量と、制限された静止画像領域203のシフト量との差が、予め定められた所定の閾値以上であるか否かを判定する。
例えば、動画像領域202のX方向およびY方向のシフト量を、それぞれMXおよびMYとし、制限された静止画像領域203のX方向およびY方向のシフト量を、それぞれPXおよびPYとし、予め定められた所定の閾値をThとすると、領域修正部131は、式(1)に基づいて、動画像領域202のシフト量と、制限された静止画像領域203のシフト量との差が、予め定められた所定の閾値以上であるか否かを判定する。
((MX)2+(MY)2)1/2−((PX)2+(PY)2)1/2≧Th ・・・(1)
領域修正部131は、MX、MY、PX、PY、およびThが、式(1)の関係を満たす場合、動画像領域202のシフト量と、制限された静止画像領域203のシフト量との差が、予め定められた所定の閾値以上であると判定する。
ステップS17において、予め定められた所定の閾値以上であると判定された場合、シフト後の動画像領域の中心の位置と、静止画像領域の中心の位置とが大きく異なり、静止画像上の被写体の位置が、ユーザが画像処理装置100の表示画面において確認した被写体の位置とは大きく異なるものとなってしまうので、静止画像領域の中心の位置を修正するために、ステップS18に進む。
ステップS18において、領域修正部131は、シフト後の静止画像領域の中心の位置が、シフト後の動画像領域の中心の位置により近い位置となるように、静止画像領域を修正する。
例えば、領域修正部131は、図16に示すように、シフト後の静止画像領域を縮小させて、静止画像領域を修正する。
図中、矢印C11乃至矢印C13により示される点は、それぞれ静止画像領域の中心の点(以下、それぞれ点C11乃至点C13とも称する)を示している。なお、図16において、図14における場合と対応する部分には同一の符号を付してあり、その説明は省略する。
点C11は、点線で表わされる補正前の静止画像領域203の中心を示している。また、図中、点C11と点C12とを結ぶ実線の矢印は、シフト後の静止画像領域が有効画素領域201からはみ出さないように制限された静止画像領域203のシフト量(シフトさせる方向および距離)を示しており、点C12は、制限されたX方向およびY方向のシフト量だけ静止画像領域203がシフトされた、シフト後の静止画像領域301の中心を示している。
領域修正部131は、動画像領域202(図8)のシフト量と、制限された静止画像領域203のシフト量とが上述した式(1)の関係を満たす場合、動画像領域202のシフト量と、静止画像領域203のシフト量とが式(1)の関係を満たさなくなるように、図中、静止画像領域203のシフト量を示す実線の矢印を、点線の矢印に示される分だけ延長する。そして、領域修正部131は、点線の矢印に示される分だけ延長された位置である点C13が、静止画像領域の中心の位置となるように、シフト後の静止画像領域301を縮小して、静止画像領域を修正する。
図16では、点C13が静止画像領域の中心となるように、静止画像領域301の図中、上側の辺(端)が下方向に縮小され、左側の辺(端)が右方向に縮小されて、縮小された静止画像領域302となっている。また、静止画像領域301の図中、下側の辺(端)および右側の辺(端)の位置はそのままであり、縮小前(静止画像領域301)と縮小後(静止画像領域302)とで、同じ位置とされている。
縮小された静止画像領域302は、補正前の静止画像領域が、制限されたシフト量(ステップS15において定められたシフト量)だけシフトされた、シフト後の静止画像領域とされるので、補正前の静止画像領域は、点線で示される静止画像領域303となる。ここで、静止画像領域303の図中、左右方向の長さおよび上下方向の長さと、静止画像領域302の左右方向の長さおよび上下方向の長さとは同じ長さとされる。つまり、静止画像領域302は、静止画像領域303を、制限されたシフト量だけシフトさせた有効画素領域201上の領域となる。
したがって、図16に示す例においては、静止画像領域303が制限されたシフト量だけシフトされて静止画像領域302とされ、さらに、シフト後の静止画像領域302の各ラインが歪み補正量だけシフトされた静止画像領域の画像データが、撮像された静止画像の画像データとして読み出されることになる。
領域修正部131は、静止画像領域を修正すると、静止画像領域303のX方向の大きさ、Y方向の大きさ、静止画像領域303の図中、左上の頂点の有効画素領域201上の位置などの情報が含まれる情報を生成し、これを修正された静止画像領域の領域情報としてメモリ120に供給する。
このように、静止画像領域を縮小して、そのサイズ(大きさ)を修正することで、図12を参照して説明したように、シフト量に基づくシフト後の静止画像領域の中心の位置が、シフト後の動画像領域の中心の位置により近い位置となるようにすることができる。したがって、静止画像領域から読み出された画像データに基づく静止画像を、ユーザが画像処理装置100の表示画面において確認した画像により近いものとすることができる。
図13のフローチャートの説明に戻り、ステップS17において、予め定められた所定の閾値以上でないと判定された場合、ステップS18の処理はスキップされてステップS19に進む。
ステップS18において静止画像領域が修正されるか、ステップS17において、予め定められた所定の閾値以上でないと判定されると、ステップS19において、メモリ120は、補正量算出部119から供給された修正された領域情報、シフト量、および歪み補正量を記憶する。より詳細には、メモリ120が記憶する領域情報は、静止画像領域が修正された場合、図16の修正された静止画像領域303の領域情報とされ、静止画像領域が修正されていない場合、図16の静止画像領域203の領域情報とされる。また、メモリ120に記憶されるシフト量および歪み補正量は、制限されたシフト量および歪み補正量とされる。
ステップS20において、メモリ120は、AFE112を介して撮像素子111から供給された画像データを記憶して、手振れ補正量の算出処理は終了する。ここで、撮像素子111からメモリ120には、ユーザの操作に応じて撮像素子111により撮像され、図16に示した有効画素領域201の全体から読み出された画像データが供給される。
このようにして、画像処理装置100は、手振れによる振動の影響を低減させるためのシフト量および歪み補正量を算出して、補正後の静止画像領域が、有効画素領域201からはみ出ないように、シフト量および歪み補正量を制限し、さらに、必要に応じて、静止画像領域を修正する。
このように、シフト量および歪み補正量を制限することによって、補正後の静止画像領域を、常に有効画素領域201内の領域とすることができ、動画像の撮影中に撮像された静止画像を、違和感を与えることのない、より自然なものとすることができる。また、必要に応じて、静止画像領域(のサイズ)を修正することによって、シフト後の動画像領域の中心の位置と、シフト後の静止画像領域の中心の位置とをより近い位置とすることができ、これにより、動画像の撮影中に撮像された静止画像上の被写体の位置を、ユーザが画像処理装置100の表示画面において確認した被写体の位置により近いものとすることができる。
次に、図17のフローチャートを参照して、図13のステップS15の処理に対応するシフト量の制限処理について説明する。
ステップS51において、補正量算出部119は、メモリ120に記憶されているシフト量を参照して、静止画像領域203のX方向のシフト量(の絶対値)が、予め定められた所定の値よりも大きいか否かを判定する。例えば、図14の静止画像領域203のX方向のシフト量が、X方向の余剰の大きさXSよりも大きい場合、補正量算出部119は、予め定められた所定の値よりも大きいと判定する。
ステップS51において、予め定められた所定の値よりも大きいと判定された場合、ステップS52に進み、補正量算出部119は、X方向のシフト量を制限する。
例えば、図14の静止画像領域203のX方向のシフト量(の絶対値)が、X方向の余剰の大きさXSよりも大きい場合、静止画像領域203を、X方向のシフト量だけX方向にシフトさせると、シフト後の静止画像領域は、有効画素領域201からはみ出てしまうので、X方向のシフト量の絶対値が、X方向の余剰の大きさXSとなるように、X方向のシフト量を制限する。したがって、X方向のシフト量が正の値であるとき、そのシフト量はXSとされ、X方向のシフト量が負の値であるとき、シフト量は−XSとされる。
このようにシフト量を制限すると、静止画像領域203を、制限されたシフト量であるXSだけX方向にシフトさせても、シフト後の静止画像領域は、有効画素領域201からはみ出すようなことがなくなる。
これに対して、ステップS51において、予め定められた所定の値よりも大きくないと判定された場合、静止画像領域203を、X方向のシフト量だけX方向にシフトさせても、シフト後の静止画像領域は、有効画素領域201内の領域となり、シフト量を制限する必要はないので、ステップS52の処理はスキップされて、処理はステップS53に進む。
ステップS51において、予め定められた所定の値よりも大きくないと判定されるか、ステップS52において、X方向のシフト量が制限されると、ステップS53において、補正量算出部119は、メモリ120に記憶されているシフト量を参照して、静止画像領域203のY方向のシフト量(の絶対値)が、予め定められた所定の値よりも大きいか否かを判定する。例えば、図14の静止画像領域203のY方向のシフト量が、Y方向の余剰の大きさYSよりも大きい場合、補正量算出部119は、予め定められた所定の値よりも大きいと判定する。
ステップS53において、予め定められた所定の値よりも大きいと判定された場合、ステップS54に進み、補正量算出部119は、Y方向のシフト量を制限し、処理は、図13のステップS16に進む。
例えば、図14の静止画像領域203のY方向のシフト量が、Y方向の余剰の大きさYSよりも大きい場合、静止画像領域203を、Y方向のシフト量だけY方向にシフトさせると、シフト後の静止画像領域は、有効画素領域201からはみ出てしまうので、Y方向のシフト量の絶対値が、Y方向の余剰の大きさYSとなるように、Y方向のシフト量を制限する。このようにシフト量を制限すると、静止画像領域203を、制限されたシフト量であるYSだけY方向にシフトさせても、シフト後の静止画像領域は、有効画素領域201からはみ出すようなことがなくなる。
これに対して、ステップS53において、予め定められた所定の値よりも大きくないと判定された場合、静止画像領域203を、Y方向のシフト量だけY方向にシフトさせても、シフト後の静止画像領域は、有効画素領域201内の領域となり、シフト量を制限する必要はないので、ステップS54の処理はスキップされて、処理は、図13のステップS16に進む。
このようにして、補正量算出部119は、静止画像領域203のシフト量を制限する。このように、静止画像領域203のシフト量を制限することによって、補正後の静止画像領域が、常に有効画素領域201内の領域となるようにすることができ、動画像の撮影中に撮像された静止画像をより自然なものとすることができる。
メモリ120に画像データと、手振れを補正するためのシフト量、歪み補正量、および領域情報とが記憶されると、画像補間部114は、これらをメモリ120から読み出して静止画像の画像データを記録させる処理である、手振れ補正処理を行う。
この手振れ補正処理は、既に記憶されている画像データの所定の領域を静止画像の画像データとして記録させる処理であり、特にリアルタイム性は要求されないので、いつ行われるようにしてもよい。例えば、メモリ120に画像データ、シフト量、歪み補正量、および領域情報が記憶されると直ちに手振れ補正処理が行われるようにしてもよく、動画像の撮影が終了してから手振れ補正処理が行われるようにしてもよい。
以下、図18のフローチャートを参照して、画像補間部114による手振れ補正処理について説明する。
ステップS81において、画像補間部114は、信号処理部113を介して、メモリ120に記憶されている画像データを取得する。メモリ120から読み出された画像データは、信号処理部113において、輝度信号と色差信号とからなる画像データに変換されて画像補間部114に供給される。画像補間部114に供給された画像データは、一旦、メモリコントローラ116の制御の基、メモリ117に供給される。
ステップS82において、画像補間部114は、信号処理部113を介して、メモリ120に記憶されている修正された領域情報、制限されたシフト量、および制限された歪み補正量を取得する。取得された領域情報、シフト量、および歪み補正量も、一旦、メモリコントローラ116の制御の基、メモリ117に供給される。
ステップS83において、画像補間部114は、メモリ117に記憶された領域情報、シフト量、および歪み補正量に基づいて、画像データの読み出し位置を決定する。例えば、メモリ120から取得した画像データが、図16の有効画素領域201の全体の画像データである場合、画像補間部114は、メモリ120から取得した領域情報、シフト量、および歪み補正量に基づいて、画像データの読み出し位置を決定する。例えば、領域情報により示される静止画像領域303を、メモリ120から取得したシフト量だけシフトさせる。そして、画像補間部114は、さらに、シフトされた静止画像領域302を構成する各ラインが、そのラインの歪み補正量だけシフトされた位置を各ラインの読み出し位置とする。
ステップS84において、画像補間部114は、メモリ120から取得した画像データのうち、決定された読み出し位置のデータ(画像データ)を読み出す。画像補間部114は、読み出した画像データに、必要に応じて画像サイズの変換処理などの処理を施し、図示せぬ記録媒体に供給する。
例えば、決定された読み出し位置(シフト量および歪み補正量によるシフト後の静止画像領域)が、図12に示した静止画像領域271である場合、画像補間部114は、静止画像領域271の画像データを読み出して図示せぬ記録媒体に供給する。
ステップS85において、画像補間部114は、記録媒体を制御して、記録媒体に供給した画像データを、動画像の撮影中に撮像された静止画像の画像データとして記録させて、手振れ補正処理は終了する。なお、読み出された画像データを、記録媒体に供給せずに、図示せぬディスプレイに供給して、静止画像を表示させるようにしてもよい。
このようにして、画像補間部114は、メモリ120から画像データ、領域情報、シフト量、および歪み補正量を取得して、取得した領域情報、シフト量、および歪み補正量に基づいて画像データを読み出して、記録媒体に記録させる。
このように、領域情報、シフト量、および歪み補正量に基づいて画像データを読み出すことで、手振れによる振動の影響がラインごとに低減された静止画像の画像データを記録させることができる。これにより、手振れによる影響が補正された静止画像をユーザに提供することができる。
ところで、以上においては、ユーザが画像処理装置100を操作して、動画像の撮影を行うと、撮影された動画像に対して手振れの補正が行われると説明したが、ユーザが画像処理装置100を操作することによって、動画像の撮影時に、動画像に対して手振れの補正を行わせるか否かを選択することができるようにしてもよい。
また、ユーザが画像処理装置100を操作して、動画像の撮影時に、動画像に対する手振れの補正を行わない場合においても、動画像の撮影中に撮像された静止画像に対して手振れの補正を行わせるようにすることができる。
以下、画像処理装置100が、動画像に対して手振れの補正を行わず、動画像の撮影中に撮像された静止画像に対してのみ手振れの補正を行う場合について説明する。
例えば、図19Aに示すように、画像処理装置100の撮像素子111の有効画素領域331に対して、有効画素領域331よりもある程度小さい領域を動画像領域332とし、有効画素領域331よりもわずかに小さい領域を静止画像領域333とする。
画像処理装置100は、動画像に対しては手振れの補正を行わないので、図19Bに示すように、動画像領域332のシフト量および歪み補正量は算出されずに、動画像領域332の画像データが、動画像の各フィールドの画像データとして読み出される。
これに対して、画像処理装置100は、静止画像に対しては手振れの補正を行うので、画像処理装置100に加えられた振動の量(振動量)を検出して、その検出結果に基づいて、静止画像領域333のラインごとの歪み補正量を算出して手振れの補正を行う。
図19Bの例では、シフト量に基づく補正は行われずに、静止画像領域333のラインごとの歪み補正量に基づく補正だけが行われている。すなわち、画像処理装置100は、シフト量に基づいて、静止画像領域333をシフトさせずに、算出されたラインごとの歪み補正量に基づいて、静止画像領域333を構成する各ラインをシフトさせる。これにより、静止画像領域333の中心の位置をシフトさせずに、静止画像の歪みが補正される。図19Bでは、静止画像領域333の歪み補正量に基づくシフト後の領域は、静止画像領域341となる。
このように、歪み補正量に基づいて、静止画像領域333の各ラインをシフトさせることによって、動画像領域332の中心の位置と、シフト後の静止画像領域341の中心の位置とを一致させたまま、手振れにより生じる静止画像の歪みを補正することができる。
また、図20Aに示すように、有効画素領域351上の動画像領域352と静止画像領域353とを同じ領域としてもよい。なお、図20Aでは、有効画素領域351上における動画像領域352と、静止画像領域353とを見やすくするため、動画像領域352および静止画像領域353の位置は、わずかにずれされて図示されている。
動画像領域352と静止画像領域353とが同じ領域である場合にも、図19における場合と同様に、画像処理装置100は、動画像に対しては手振れの補正を行わないので、図20Bに示すように、動画像領域352のシフト量および歪み補正量は算出されずに、動画像領域352の画像データが、動画像の各フィールドの画像データとして読み出される。
これに対して、画像処理装置100は、静止画像に対しては手振れの補正を行うので、画像処理装置100に加えられた振動の量(振動量)を検出して、その検出結果に基づいて、静止画像領域353のラインごとの歪み補正量を算出して手振れの補正を行う。
図20Bの例では、シフト量に基づく補正は行われずに、静止画像領域353のラインごとの歪み補正量に基づく補正だけが行われている。すなわち、画像処理装置100は、シフト量に基づいて、静止画像領域353をシフトさせずに、算出されたラインごとの歪み補正量に基づいて、静止画像領域353を構成する各ラインをシフトさせる。これにより、静止画像領域353の中心の位置をシフトさせずに、静止画像の歪みが補正される。図20Bでは、静止画像領域353の歪み補正量に基づくシフト後の領域は、静止画像領域361となる。
このように、歪み補正量に基づいて、静止画像領域353の各ラインをシフトさせることによって、動画像領域352の中心の位置と、シフト後の静止画像領域361の中心の位置とを一致させたまま、手振れにより生じる静止画像の歪みを補正することができる。
次に、図21のフローチャートを参照して、動画像に対して手振れの補正が行われず、動画像の撮影中に撮像された静止画像に対してのみ手振れの補正が行われる場合に、画像処理装置100により行われる手振れ補正量の算出処理について説明する。
ステップS111において、補正量算出部119は、振動検出部118から、振動検出部118において検出された振動量(のデータ)を取得する。例えば、補正量算出部119は、図15を参照して説明したように、静止画像領域を構成するラインごとの振動量を取得する。
ステップS112において、補正量算出部119は、振動検出部118から供給された振動量を基に、ラインごとの歪み補正量を算出する。例えば、補正量算出部119は、図13のステップS13の処理と同様の処理を行い、図19Aの静止画像領域333を構成する各ラインの、図中、左右方向および上下方向の歪み補正量を算出する。
補正量算出部119は、歪み補正量を算出すると、算出した歪み補正量をメモリ120に供給する。また、補正量算出部119は、予め定められた静止画像領域を示す領域情報を生成して、メモリ120に供給する。
ステップS113において、メモリ120は、補正量算出部119から供給された領域情報および歪み補正量を記憶する。
ステップS114において、メモリ120は、AFE112を介して撮像素子111から供給された画像データを記憶して、手振れ補正量の算出処理は終了する。ここで、撮像素子111から供給された画像データは、例えば、図19Aの有効画素領域331の全体から読み出された画像データとされる。
このようにして、画像処理装置100は、手振れによる振動の影響を低減させるための歪み補正量を算出する。
このように、シフト量を算出せずに、歪み補正量だけを算出することにより、動画像に対して手振れの補正が行われず、動画像の撮影中に撮像された静止画像に対してのみ手振れの補正が行われる場合においても、動画像領域の中心の位置と、シフト後の静止画像領域の中心の位置とを一致させたまま、手振れにより生じる静止画像の歪みを補正することができる。
また、図13の手振れ補正量の算出処理と、図21の手振れ補正量の算出処理とを比較すると、図21における手振れ補正量の算出処理においては、静止画像領域のシフト量は算出されない。また、図21の手振れ補正量の算出処理においては、図13のステップS17の処理に対応する処理が行われないが、これは、動画像領域のシフト量および静止画像領域のシフト量が常に0であるから、常に動画像領域のシフト量と、静止画像領域のシフト量との差が閾値以上ではないと判定されるものとして、その判定の処理が省略され、静止画像領域(のサイズ)が修正されないものと考えることができる。
次に、図22のフローチャートを参照して、動画像に対して手振れの補正が行われず、動画像の撮影中に撮像された静止画像に対してのみ手振れの補正が行われる場合に、画像処理装置100により行われる手振れ補正処理について説明する。
ステップS141において、画像補間部114は、信号処理部113を介して、メモリ120に記憶されている画像データを取得する。メモリ120から読み出された画像データは、信号処理部113において、輝度信号と色差信号とからなる画像データに変換されて画像補間部114に供給される。画像補間部114に供給された画像データは、一旦、メモリコントローラ116の制御の基、メモリ117に供給される。
ステップS142において、画像補間部114は、信号処理部113を介して、メモリ120に記憶されている領域情報および歪み補正量を取得する。取得された領域情報および歪み補正量も、一旦、メモリコントローラ116の制御の基、メモリ117に供給される。
その後、ステップS143の処理乃至ステップS145の処理が行われて、静止画像の画像データが読み出され、記録媒体に記録されるが、ステップS143の処理乃至ステップS145の処理のそれぞれは、図18のステップS83の処理乃至ステップS85の処理のそれぞれと同様であるため、その説明は省略する。なお、ステップS143において、画像補間部114は、メモリ120から取得した領域情報および歪み補正量に基づいて、静止画像の画像データの読み出し位置を決定する。
このようにして、画像補間部114は、メモリ120から画像データ、領域情報、および歪み補正量を取得して、取得した領域情報および歪み補正量に基づいて静止画像の画像データを読み出して、記録媒体に記録させる。
このように、領域情報および歪み補正量に基づいて画像データを読み出すことで、手振れによる振動の影響がラインごとに低減された静止画像の画像データを記録させることができる。これにより、手振れによる影響が補正された静止画像をユーザに提供することができる。
以上のように、本発明によれば、画像処理装置100に加えられた振動量を検出して、シフト量および歪み補正量を算出し、算出されたシフト量および歪み補正量を制限するとともに、必要に応じて、静止画像領域の中心の位置が、動画像領域の中心の位置により近い位置となるように、静止画像領域を修正するようにしたので、動画像の撮影中に静止画像を撮像する場合に、静止画像上の被写体の位置を、ユーザが撮像装置の表示画面において確認した被写体の位置により近いものとし、かつ撮像により得られる静止画像をより自然な画像とすることができる。
なお、AFE112からメモリ120に画像データが供給されると説明したが、信号処理部113において、輝度信号と色差信号とからなる画像データに変換された画像データを、メモリ120に供給して記憶させるようにしてもよい。また、メモリ120を設けずに、図6のメモリ120に供給させる画像データ、領域情報、シフト量、および歪み補正量をメモリ117に記憶させるようにしてもよい。
さらに、補正量算出部119において算出された、領域情報、シフト量、および歪み補正量がTG115に供給されて、TG115が撮像素子111を制御して、撮像素子111に、有効画素領域から、領域情報、シフト量、および歪み補正量に基づく、手振れの影響が低減されたシフト後の静止画像領域の画像データを読み出させて、AFE112に供給させるようにしてもよい。この場合、画像補間部114において行われていた手振れを補正するための処理が、撮像素子111において行われることになる。
図23は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。パーソナルコンピュータ401のCPU(Central Processing Unit)411は、ROM(Read Only Memory)412、または記録部418に記録されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)413には、CPU411が実行するプログラムやデータなどが適宜記憶される。これらのCPU411、ROM412、およびRAM413は、バス414により相互に接続されている。
CPU411にはまた、バス414を介して入出力インターフェース415が接続されている。入出力インターフェース415には、キーボード、マウス、マイクロホンなどよりなる入力部416、ディスプレイ、スピーカなどよりなる出力部417が接続されている。CPU411は、入力部416から入力される指令に対応して各種の処理を実行する。そして、CPU411は、処理の結果を出力部417に出力する。
入出力インターフェース415に接続されている記録部418は、例えばハードディスクからなり、CPU411が実行するプログラムや各種のデータを記録する。通信部419は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
また、通信部419を介してプログラムを取得し、記録部418に記録してもよい。
入出力インターフェース415に接続されているドライブ420は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア431が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部418に転送され、記録される。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図23に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア431、または、プログラムが一時的もしくは永続的に格納されるROM412や、記録部418を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインターフェースである通信部419を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
111 撮像素子, 114 画像補間部, 117 メモリ, 118 振動検出部, 119 補正量算出部, 120 メモリ, 131 領域修正部, 411 CPU, 412 ROM, 413 RAM, 418 記録部, 431 リムーバブルメディア