(57)【要約】【課題】光学ズーム操作中に手ぶれ補正をすることは難しい。【解決手段】動きベクトル取得部５２は、複数のブロックに分割された撮影画像において、光学ズーム操作中の各ブロックの動きベクトルを取得する。一次関数算出部５４は、ブロック毎に、撮影画像の中心と代表点とを結ぶ直線と傾きが同じで、ベクトル検出点を通る直線を一次関数として算出する。手ぶれ動きベクトル算出部５６は、算出された一次関数の傾きが異なる少なくとも二つのブロックを選択し、選択されたブロックの一次関数のグラフの交点を求めることにより、手ぶれによる動きベクトルを算出する。手ぶれ補正部５８は、算出された手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正する。【選択図】図２２
2010183194.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックに分割された撮影画像において、光学ズーム操作中の各ブロックの動きベクトルを検出する動きベクトル検出部と、
ブロック毎に、撮影画像の中心と代表点とを結ぶ直線と傾きが同じで、ベクトル検出点を通る直線を一次関数として算出する一次関数算出部と、
算出された一次関数の傾きが異なる少なくとも二つのブロックを選択し、選択されたブロックの一次関数のグラフの交点を求めることにより、手ぶれによる動きベクトルを算出する手ぶれ算出部と、
算出された手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正する手ぶれ補正部とを含むことを特徴とする画像補正処理装置。
【請求項２】
前記一次関数算出部は、傾きが同じ一次関数をもつ複数のブロックを一つのグループにまとめ、各グループに属する複数のブロックにおいて算出された一次関数の定数部を平均化し、
前記手ぶれ算出部は、定数部が平均化された一次関数の傾きが異なる少なくとも二つのグループを選択し、選択されたグループの一次関数のグラフの交点を求めることにより、手ぶれによる動きベクトルを算出することを特徴とする請求項１に記載の画像補正処理装置。
【請求項３】
前記動きベクトル検出部、前記一次関数算出部、前記手ぶれ算出部、および前記手ぶれ補正部による各処理が、光学ズーム操作中に限らず、光学ズーム操作がなされない通常撮影中にも行われることにより、通常撮影中の手ぶれ補正も合わせて行われることを特徴とする請求項１または２に記載の画像補正処理装置。
【請求項４】
複数のブロックに分割された撮影画像において、光学ズーム操作中の各ブロックの動きベクトルを検出する動きベクトル検出部と、
撮影画像の中心に対して対称の位置にある二つのブロックを選択し、選択された二つのブロックで検出された二つの動きベクトルを平均化することにより、光学ズームによる動き成分を除き、手ぶれによる動きベクトルを算出する手ぶれ算出部と、
算出された手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正する手ぶれ補正部とを含むことを特徴とする画像補正処理装置。
【請求項５】
前記手ぶれ算出部は、撮影画像の中心に対して対称の位置にある二つのブロックの対を複数選択し、各ブロックの対において二つの動きベクトルを平均化することにより、手ぶれによる動きベクトルを算出し、複数のブロックの対について算出された手ぶれによる動きベクトルを平均化し、
前記手ぶれ補正部は、平均化された手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正することを特徴とする請求項４に記載の画像補正処理装置。
【請求項６】
前記手ぶれ算出部は、撮影画像の中心に対して対称の位置にある二つのブロックの対を複数選択する際、対になる二つのブロックの内、少なくとも一方のブロックにおいて動きベクトル検出点の信頼度が所定の閾値よりも低い場合には、そのブロックの対は選択対象から外すことを特徴とする請求項５に記載の画像補正処理装置。
【請求項７】
縦方向と横方向のブロック数が奇数になるように複数のブロックに分割された撮影画像の中心を含む中央の縦一列のブロックと前記撮影画像の中心を含む中央の横一列のブロックにおいて、光学ズーム操作中の動きベクトルを検出する動きベクトル検出部と、
縦一列のブロックにおいて検出された動きベクトルの横方向の成分を平均化し、横一列のブロックにおいて検出された動きベクトルの縦方向の成分を平均化し、平均化された横方向と縦方向のベクトル成分を手ぶれによる動きベクトルとする手ぶれ算出部と、
得られた手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正する手ぶれ補正部とを含むことを特徴とする画像補正処理装置。
【請求項８】
複数のブロックに分割された撮影画像において、光学ズーム操作中の各ブロックの動きベクトルを検出するステップと、
ブロック毎に、撮影画像の中心と代表点とを結ぶ直線と傾きが同じで、ベクトル検出点を通る直線を一次関数として算出するステップと、
算出された一次関数の傾きが異なる少なくとも二つのブロックを選択し、選択されたブロックの一次関数のグラフの交点を求めることにより、手ぶれによる動きベクトルを算出するステップと、
算出された手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正するステップとを含むことを特徴とする画像補正処理方法。
【請求項９】
複数のブロックに分割された撮影画像において、光学ズーム操作中の各ブロックの動きベクトルを検出する機能と、
ブロック毎に、撮影画像の中心と代表点とを結ぶ直線と傾きが同じで、ベクトル検出点を通る直線を一次関数として算出する機能と、
算出された一次関数の傾きが異なる少なくとも二つのブロックを選択し、選択されたブロックの一次関数のグラフの交点を求めることにより、手ぶれによる動きベクトルを算出する機能と、
算出された手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正する機能とをコンピュータに実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影時の手ぶれ補正を行うための画像補正処理装置および画像補正処理方法に関する。
【背景技術】
【０００２】
ビデオカメラやデジタルスチルカメラなどの撮像装置は、携帯に便利なように小型・軽量化が進んでおり、撮影時の手ぶれを避けることは難しい。また、最近の機種には高倍率のズームレンズが搭載されており、望遠撮影の際の手ぶれが目立ちやすい。さらに、撮像画像の高画質化に伴い、高解像度のディスプレイやプリンタで出力したとき、手ぶれによる画像のぶれや歪みが顕在化することが多い。
【０００３】
手ぶれを補正する方法として、従来、手ぶれを検出するためのジャイロセンサなどを使って手ぶれによる角速度を検出し、カメラの撮影機構において手ぶれによるずれを防止するように高速にフィードバック制御する方法や、撮影された画像に対して手ぶれによる動きベクトルを検出し、撮影画像に手ぶれによる影響を除去するための画像処理を施す方法などが取られている。
【０００４】
特許文献１には、光学ズーム操作がなされたと判別したとき、動きベクトル検出工程で検出された動きベクトルと光学ズーム分算出工程で算出された光学ズーム分ベクトルとの差分を求め、差分演算結果の動きベクトルから撮像画像についての手ぶれベクトルを算出し、手ぶれによる画像歪みを補正する方法が記載されている。
【０００５】
特許文献２には、基準画像と比較画像を比較演算し、手ぶれ補正に必要となる移動ベクトルを算出する際、光学ズーム倍率が変動した場合は、光学ズーム倍率の情報に基づき基準画像と比較画像とが同一倍率となるように基準画像または比較画像をズーム補正する方法が記載されている。
【０００６】
特許文献３には、画面の分割領域毎に動きベクトルを検出して画像の揺れを検出する装置において、光学ズーム操作が検出された場合には、分割領域毎に検出された動きベクトルを用いずに、画面中央位置の分割領域から検出された動きベクトルのみを用いるように切替制御することが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２２１６３１号公報
【特許文献２】特開２００８−１６０２７４号公報
【特許文献３】特開平７−２６４４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載の方法では、光学ズームの位置や速度から画像の変化成分を演算するが、光学ズームの速度ひとつを取ってみても十段階程度を考慮する必要があり、光学ズームの位置や速度のテーブル情報が大きくなり、動きベクトル検出工程における光学ズーム成分の演算量が大規模になるという課題がある。
【０００９】
特許文献２に記載の方法では、基準画像と比較画像とが同一倍率となるようにズーム補正するための逆ズーム回路をカメラ内に設ける必要があり、余分なコストがかかる。
【００１０】
特許文献３に記載の方法では、画面中央位置では光学ズームの影響がないが、この画面中央位置の分割領域の画像の輝度レベルが一様であった場合は、動きベクトルの検出ができなくなるため、実用上、信頼性が劣るという課題がある。
【００１１】
このような課題があるため、従来の動きベクトル検出による手ぶれ補正では、光学ズーム動作中は補正処理を一時的に中断し、手ぶれ補正をせずに、単に撮影された画像を中心から切り出して出力することで済ませるのが一般的である。
【００１２】
本発明はこうした状況に鑑みてなされたものであり、その目的は、光学ズーム操作時であっても手ぶれ補正を効率的に行うことができる画像補正処理装置および方法を提供することにある。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明のある態様の画像補正処理装置は、複数のブロックに分割された撮影画像において、光学ズーム操作中の各ブロックの代表点画素の輝度をもつ画素の動きを検出する動きベクトル検出部と、ブロック毎に、撮影画像の中心と代表点とを結ぶ直線と傾きが同じで、ベクトル検出点を通る直線を一次関数として算出する一次関数算出部と、算出された一次関数の傾きが異なる少なくとも二つのブロックを選択し、選択されたブロックの一次関数のグラフの交点を求めることにより、手ぶれによる動きベクトルを算出する手ぶれ算出部と、算出された手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正する手ぶれ補正部とを含む。
【００１４】
本発明の別の態様もまた、画像補正処理装置である。この装置は、複数のブロックに分割された撮影画像において、光学ズーム操作中の各ブロックの動きベクトルを検出する動きベクトル検出部と、撮影画像の中心に対して対称の位置にある二つのブロックを選択し、選択された二つのブロックで検出された二つの動きベクトルを平均化することにより、光学ズームによるベクトル成分を除き、手ぶれによる動きベクトルを算出する手ぶれ算出部と、算出された手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正する手ぶれ補正部とを含む。
【００１５】
本発明のさらに別の態様もまた、画像補正処理装置である。この装置は、縦方向と横方向のブロック数が奇数になるように複数のブロックに分割された撮影画像において、撮影画像の中心を含む中央の縦一列のブロックと撮影画像の中心を含む中央の横一列のブロックにおいて、光学ズーム操作中の動きベクトルを検出する動きベクトル検出部と、縦一列のブロックにおいて検出された動きベクトルの横方向の成分を平均化し、横一列のブロックにおいて検出された動きベクトルの縦方向の成分を平均化し、平均化された横方向と縦方向のベクトル成分を手ぶれによる動きベクトルとする手ぶれ算出部と、得られた手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正する手ぶれ補正部とを含む。
【００１６】
本発明のさらに別の態様は、画像補正処理方法である。この方法は、複数のブロックに分割された撮影画像において、光学ズーム操作中の各ブロックの動きベクトルを検出するステップと、ブロック毎に、撮影画像の中心と代表点とを結ぶ直線と傾きが同じで、ベクトル検出点を通る直線を一次関数として算出するステップと、算出された一次関数の傾きが異なる少なくとも二つのブロックを選択し、選択されたブロックの一次関数のグラフの交点を求めることにより、手ぶれによる動きベクトルを算出するステップと、算出された手ぶれによる動きベクトルにもとづいて撮影画像の手ぶれを補正するステップとを含む。
【００１７】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１８】
本発明によれば、光学ズーム操作時であっても手ぶれ補正を効率的に行うことができる。
【図面の簡単な説明】
【００１９】
【図１】２５個のブロックに分割された撮影画像において、各ブロックの代表点と動きベクトルを示す図である。
【図２】手ぶれ補正をしてフレームメモリから出力画像を切り出す処理を説明する図である。
【図３】撮影画像の各ブロックで検出される動きベクトルを説明する図である。
【図４】光学ズーム操作中に撮影画像の各ブロックで検出される動きベクトルを説明する図である。
【図５】光学ズーム操作中に手ぶれが発生した場合の動きベクトルを説明する図である。
【図６】撮影画像の各ブロックの手ぶれによる動きベクトルと光学ズームによる動きベクトルを合成した図である。
【図７】撮影画像の各ブロックの番号を示す図である。
【図８】図７に示す第５ブロックにおける代表点、ズームベクトル、および手ぶれベクトルを示す図である。
【図９】図７に示す第１ブロックにおける代表点、ズームベクトル、および手ぶれベクトルを示す図である。
【図１０】図８の第５ブロックと図９の第１ブロックのズームベクトル、手ぶれベクトルを合成した図である。
【図１１】図１０で求めた手ぶれベクトルにより、図６の撮影画像の中心から広がる放射線をずらした図である。
【図１２】撮影画像の各ブロックのズーム基準線を示す図である。
【図１３】撮影画像のブロック数が異なる場合の各ブロックのズーム基準線を説明する図である。
【図１４】図１３の第２ブロックと第７ブロックを重ね合わせて手ぶれベクトルを求める方法を説明する図である。
【図１５】傾きが同じズーム基準線をもつ複数のブロックからなるグループにおいて、手ぶれ基準線の定数部を平均化する方法を説明する図である。
【図１６】図１５の８本の一点鎖線のグループから二つのグループを選択する組み合わせを説明する図である。
【図１７】光学ズーム操作がなされない通常撮影時の撮影画像の各ブロックの代表点と動きベクトルを示す図である。
【図１８】撮影画像の中心に対して対称の位置にある二つのブロックにおける動きベクトルを示す図である。
【図１９】本発明の別の実施の形態に係る手ぶれ補正処理方法を説明する図である。
【図２０】本発明のさらに別の実施の形態に係る手ぶれ補正処理方法を説明する図である。
【図２１】本発明の実施の形態に係る手ぶれ補正機能を搭載した撮像装置の構成図である。
【図２２】図２１の手ぶれ補正処理ブロックの構成図である。
【発明を実施するための形態】
【００２０】
本発明の実施の形態に係る手ぶれ補正処理方法を図１〜図２０を参照して説明し、その後、図２１および図２２を参照して、手ぶれ補正機能を搭載した撮像装置の構成を説明する。
【００２１】
図１〜３を参照して、一般的な手ぶれ補正処理を説明する。図１は、２５個のブロックに分割された撮影画像において、各ブロックの動きベクトルを示す図である。代表点は各ブロックの中心の画素であり、手ぶれによる代表点画素の輝度をもつ画素の動きを検出することで、手ぶれによる動きベクトル（以下、単に「手ぶれベクトル」と呼ぶ）が求まる。方向と大きさは、代表点の画素の輝度に最も近い輝度をもつ画素をブロック内で探索することによってｘ、ｙで検出することができる。
【００２２】
図２は、手ぶれ補正をしてフレームメモリから出力画像を切り出す処理を説明する図である。図１の２５ブロックで求められた手ぶれベクトルを平均化し、平均化された手ぶれベクトルによって、出力画像をフレームメモリから切り出す中心位置をずらす。図２の左側は、フレームメモリ内に格納された撮影画像である。手ぶれがなければ、撮影画像の中心から出力画像を切り出せばよいが、図１のような手ぶれベクトルが検出された場合は、平均化された手ぶれベクトルが示す動きの方向と量でもって切り出す中心位置をずらし、図２の右側に示すような出力画像を切り出す。これにより手ぶれが補正された画像が出力される。
【００２３】
図３は、撮影画像の各ブロックで検出される動きベクトルを説明する図である。図１では、撮影画像を２５個のブロックに分割し、各ブロックの動きベクトルを検出するとしたが、実装上は、図３の右側に示すように、各ブロックをさらにたとえば２０個にエリアに分割し、各エリアの中心画素を代表点とし、エリア毎に動きベクトルを求め、２０エリアで平均化したものを当該ブロックの動きベクトルとする。ただし、以下では、説明を簡単にするため、各ブロックに一つの代表点があるものとして説明する。
【００２４】
図４〜図６を参照して、光学ズーム操作中の手ぶれ補正の課題を説明する。図４は、光学ズーム操作中に撮影画像の各ブロックで検出される動きベクトルを説明する図である。手ぶれがない場合、光学ズームを望遠側に操作すると、各ブロックの動きベクトルは、図４に示すように、撮影画像の中心から放射状に広がる方向に検出される。動きベクトルの大きさは光学ズーム動作の速度によって変化する。
【００２５】
図５は、光学ズーム操作中に手ぶれが発生した場合の動きベクトルを説明する図である。矢印は、図４で示した光学ズームによる動きベクトル（以下、単に「ズームベクトル」と呼ぶ）であり、二重線矢印は、手ぶれベクトルである。撮影画像の中心から放射状に広がるズームベクトルに手ぶれベクトルが加算されて検出される。
【００２６】
図６は、撮影画像の各ブロックの手ぶれによる動きベクトルと光学ズームによる動きベクトルを合成した図である。各ブロックの動きベクトルは、この図に示すような合成ベクトルとして検出される。このように、光学ズーム操作中は手ぶれベクトルだけを分離して検出することができないことが、光学ズーム操作中の手ぶれ補正処理を難しくしている。全ブロックの合成ベクトルを加算平均したとしても、ブロックによって検出された動きベクトルの精度にばらつきがあるため、正しい手ぶれベクトルを求めることはできない。
【００２７】
図７〜図１６を参照して、本発明の実施の形態に係る手ぶれ補正処理方法を説明する。
【００２８】
図７は、撮影画像の各ブロックの番号を示す図である。左上隅を第１ブロックとし、左から右、上から下に進むにしたがってブロックの番号を順番に振る。撮影画像の中心には第１３ブロックがあり、撮影画像の中心を通る右上がりの対角線上には第５、９、１３、１７、２１のブロックが、左上がりの対角線上には第１、７、１３、１９、２５のブロックがある。
【００２９】
図８は、図７に示す第５ブロックにおける代表点、ズームベクトル、および手ぶれベクトルを示す。代表点は第５ブロックの中心の点である。ズームベクトルは実線矢印で示され、手ぶれベクトルは二重線矢印で示される。ベクトルは、ズームベクトルと手ぶれベクトルが合成された二重丸で示される位置に検出される。
【００３０】
実線矢印で示されるズームベクトルの大きさはズーム速度に依存するため、ズームベクトルの特定は困難である。二重線矢印で示される手ぶれベクトルは、ズームベクトルが特定できないため、直接検出することはできず、不明である。
【００３１】
一点鎖線は撮影画像の中心と第５ブロックの代表点とを結ぶ直線ｙ＝ｘを示す。ズームベクトルはこの一点鎖線上にある。この一点鎖線で示される直線を「ズーム基準線」と呼ぶ。
【００３２】
破線は、一点鎖線で示された直線（ズーム基準線）ｙ＝ｘと傾きが同じで、ベクトル検出点を通る直線である。この破線で示される直線を「手ぶれ基準線」と呼ぶ。手ぶれ基準線ｙ＝ａｘ＋ｂの傾きａは、ズーム基準線ｙ＝ｘの傾きと同じであり、ａ＝１である。手ぶれ基準線の切片ｂは、ベクトル検出点のｙ座標値１３と、ベクトル検出点のｘ座標値１１をズーム基準線の式ｙ＝ｘに代入して得られるｙ座標値１１との差により求めることができ、ｂ＝１３−１１＝２である。求めたい手ぶれ成分は、こうして得られた手ぶれ基準線ｙ＝ｘ＋２上の点として求めることができる。
【００３３】
図９は、図７に示す第１ブロックにおける代表点、ズームベクトル、および手ぶれベクトルを示す。代表点は第１ブロックの中心の点である。図８と同様、ズームベクトルは実線矢印、手ぶれベクトルは二重線矢印で示されており、ベクトル検出点は、ズームベクトルと手ぶれベクトルが合成された二重丸で示される位置に検出される。
【００３４】
図８と同様、一点鎖線は撮影画像の中心と第１ブロックの代表点とを結ぶ直線（ズーム基準線）ｙ＝−ｘを示す。破線は、ズーム基準線ｙ＝−ｘと傾きが同じで、ベクトル検出点を通る直線（手ぶれ基準線）である。手ぶれ基準線ｙ＝ａｘ＋ｂの傾きａは、ズーム基準線ｙ＝−ｘの傾きと同じであり、ａ＝−１である。手ぶれ基準線の切片ｂは、ベクトル検出点のｙ座標値１３と、ベクトル検出点のｘ座標値−７をズーム基準線の式ｙ＝−ｘに代入して得られるｙ座標値７との差により求めることができ、ｂ＝１３−７＝６である。求めたい手ぶれ成分は、こうして得られた手ぶれ基準線ｙ＝−ｘ＋６上の点として求めることができる。
【００３５】
図１０は、図８の第５ブロックと図９の第１ブロックのズームベクトル、手ぶれベクトルを合成した図である。手ぶれ成分は、図８の第５ブロックの手ぶれ基準線ｙ＝ｘ＋２と図９の第１ブロックの手ぶれ基準線ｙ＝−ｘ＋６の交点として求めることができる。図１０において、その交点を二重丸で示す。連立方程式ｙ＝ｘ＋２、ｙ＝−ｘ＋６を解くことにより、交点のｘ座標２、ｙ座標４が求まる。ブロックの中心にある代表点を始点とし、求めた交点を終点とする三重線矢印が、求めたい手ぶれベクトルである。この手ぶれベクトルは、動きベクトルからズームベクトルを差し引いた手ぶれのみによる動きを示すベクトルである。
【００３６】
傾きが異なる手ぶれ基準線をもつ任意の二つのブロックを選択し、選択されたブロックの手ぶれ基準線の交点を求めることにより、手ぶれベクトルを得ることができる。たとえば、第５ブロックの手ぶれ基準線の傾きは１、第１６ブロックの手ぶれ基準線の傾きは０．５であり、両ブロックの手ぶれ基準線の傾きは異なるから、これらの二つのブロックを組み合わせて、手ぶれ基準線の交点を求めても同様に手ぶれベクトルを求めることができる。
【００３７】
図１１は、図１０で求めた手ぶれベクトルにより、図６の撮影画像の中心から広がる放射線をずらした図である。手ぶれによって放射線の中心が二重丸で示される位置にずれる。図１１の放射線上に動きベクトルの終点があるかどうかを確認することで、求めた手ぶれベクトルの精度を確認することができる。
【００３８】
傾きの異なる手ぶれ基準線をもつ二つのブロックについて、手ぶれ基準線の交点を求めれば、手ぶれベクトルを得ることができるが、手ぶれベクトルの精度を高めるために、このような二つのブロックの組み合わせの数を増やして手ぶれベクトルを複数求め、平均を取ることが望ましい。
【００３９】
図１２は、撮影画像の各ブロックのズーム基準線を示す図である。符号Ａ〜Ｈで示される８本の一点鎖線は、各ブロックのズーム基準線である。たとえば、符号Ａで示す一点鎖線は、第１１〜１５のブロックのズーム基準線であり、その傾きは０である。符号Ｇで示す一点鎖線は、第５、９、１３、１７、２１のブロックのズーム基準線であり、その傾きは１である。
【００４０】
手ぶれベクトルを求めるために、傾きの異なる手ぶれ基準線をもつ二つのブロックを選択するが、これは図１２で言えば、８本の一点鎖線Ａ〜Ｈで示されるズーム基準線の内、傾きの異なる２本のズーム基準線を選ぶことに相当する。たとえば、一点鎖線Ｇで示されるズーム基準線をもつ第５ブロックと組み合わせることができるのは、傾きの異なる一点鎖線Ａ〜Ｆ、Ｈのいずれかのズーム基準線をもつブロックである。同一の一点鎖線で示されるズーム基準線をもつブロック同士は組み合わせても、ズーム基準線の傾きが同じであるから、交点から手ぶれベクトルを求める方法を取ることはできない。
【００４１】
図１３は、撮影画像のブロック数が異なる場合の各ブロックのズーム基準線を説明する図である。撮影画像を１６個のブロックに分割する。撮影画像の中心から各ブロックの代表点に伸びる直線を引くと、６本の一点鎖線Ａ〜Ｆで示されるズーム基準線が得られる。たとえば、一点鎖線Ｃのズーム基準線をもつ第２ブロックと組み合わせることができるのは、傾きの異なる一点鎖線Ａ、Ｂ、Ｄ〜Ｆのいずれかのズーム基準線をもつブロックである。
【００４２】
図１４は、図１３の第２ブロックと第７ブロックを重ね合わせて手ぶれベクトルを求める方法を説明する図である。第２ブロックの手ぶれ基準線ｙ＝−３ｘ＋１０と、第７ブロックの手ぶれ基準線ｙ＝ｘ＋２の交点を求めることにより、手ぶれベクトルのｘ成分２、ｙ成分４が得られる。図１４の三重線矢印がこうして得られた手ぶれベクトルである。
【００４３】
図１２および図１３で説明した傾きが同じズーム基準線をもつブロックは一つのグループにまとめることができる。各グループにおいて、そのグループに属する複数のブロックのそれぞれで求めた手ぶれ基準線の定数部ｂを平均することにより、手ぶれ基準線の精度を高めることができる。
【００４４】
図１５は、傾きが同じズーム基準線をもつ複数のブロックからなるグループにおいて、手ぶれ基準線の定数部を平均化する方法を説明する図である。一点鎖線Ａで示される傾き０のズーム基準線をもつ第１１、１２、１３、１４、１５のブロックにおいて求めた手ぶれ基準線の定数部の平均値ｂを求めることで、平均化された手ぶれ基準線ｙ＝ｂを得る。
【００４５】
同様に、一点鎖線Ｂで示される傾き−０．５のズーム基準線をもつ第６、１３、２０のブロックにおいて求めた手ぶれ基準線の定数部の平均値ｂを求めることで、平均化された手ぶれ基準線ｙ＝−０．５ｘ＋ｂを得る。
【００４６】
一点鎖線Ｃで示される傾き−１のズーム基準線をもつ第１、７、１３、１９、２５のブロックにおいて求めた手ぶれ基準線の定数部の平均値ｂを求めることで、平均化された手ぶれ基準線ｙ＝−ｘ＋ｂを得る。
【００４７】
一点鎖線Ｄで示される傾き−２のズーム基準線をもつ第２、１３、２４のブロックにおいて求めた手ぶれ基準線の定数部の平均値ｂを求めることで、平均化された手ぶれ基準線ｙ＝−２ｘ＋ｂを得る。
【００４８】
一点鎖線Ｅで示される傾きが無限大のズーム基準線をもつ第３、８、１３、１８、２３のブロックにおいて求めた手ぶれ基準線の定数部の平均値ｂを求めることで、平均化された手ぶれ基準線ｘ＝ｂを得る。
【００４９】
一点鎖線Ｆで示される傾き２のズーム基準線をもつ第４、１３、２２のブロックにおいて求めた手ぶれ基準線の定数部の平均値ｂを求めることで、平均化された手ぶれ基準線ｙ＝２ｘ＋ｂを得る。
【００５０】
一点鎖線Ｇで示される傾き１のズーム基準線をもつ第５、９、１３、１７、２１のブロックにおいて求めた手ぶれ基準線の定数部の平均値ｂを求めることで、平均化された手ぶれ基準線ｙ＝ｘ＋ｂを得る。
【００５１】
一点鎖線Ｈで示される傾き０．５のズーム基準線をもつ第１０、１３、１６のブロックにおいて求めた手ぶれ基準線の定数部の平均値ｂを求めることで、平均化された手ぶれ基準線ｙ＝０．５ｘ＋ｂを得る。
【００５２】
なお、各一点鎖線のズーム基準線をもつ複数のブロックのグループにおいて、各ブロックの手ぶれ基準線の定数部を平均化する際、いずれかのブロックの動きベクトルの信頼度が所定の閾値よりも低い場合は、そのブロックは除外して手ぶれ基準線の定数部の平均化を行うようにしてもよい。
【００５３】
このようにして、８本の一点鎖線Ａ〜Ｇのグループの各々において、平均化された手ぶれ基準線ｙ＝ａｘ＋ｂが得られる。これら８個のグループＡ〜Ｇから任意の二つのグループを選択し、各グループの平均化された手ぶれ基準線の交点を求めることで、手ぶれベクトルを算出することができる。
【００５４】
図１６は、図１５の８本の一点鎖線Ａ〜Ｇのグループから二つのグループを選択する組み合わせを説明する図である。全部で８Ｃ２＝８！／（２！・６！）＝２８通りの組み合わせがある。これらのグループの組み合わせのそれぞれにおいて、平均化された手ぶれ基準線の交点を求めて手ぶれベクトルを算出し、最後に、２８個の手ぶれベクトルの平均を取ることで、最終的な手ぶれベクトルを算出する。このようにすることで、手ぶれベクトルの検出精度を高めることができる。
【００５５】
以上、図７〜図１６を参照して、光学ズーム操作中の動きベクトルからズームベクトルを除去して手ぶれベクトルを求める方法を説明したが、この方法は、光学ズーム操作中に限らず、光学ズーム操作がなされない通常撮影中に適用しても何ら問題はない。
【００５６】
図１７は、光学ズーム操作がなされない通常撮影時の撮影画像の各ブロックの動きベクトルを示す図である。光学ズーム操作がないため、動きベクトルにはズームベクトルの成分によるオフセットがないが、その場合でも、図７〜図１６で説明した手ぶれベクトルの算出方法を適用してもかまわない。同様に、８本の一点鎖線のグループの各々において手ぶれ基準線の定数部を平均化し、さらに、任意の二つのグループを選択して、平均化された手ぶれ基準線の交点を求めることで、手ぶれベクトルを求めることができる。
【００５７】
図１７は、そのようにして求めた手ぶれベクトルにもとづいて撮影画像の中心点の移動先を定め、移動後の中心点から放射線状に伸びるズーム基準線を図示したものである。この図からも明らかなように、光学ズーム操作がなされない通常撮影時であっても、本発明の実施の形態に係る手ぶれ補正処理方法を適用することができる。
【００５８】
これにより、光学ズーム操作時であっても、通常撮影時であっても、同じ手ぶれ補正処理で手ぶれに対応することができ、光学ズーム操作時と通常撮影時で処理を切り替える必要がなく、手ぶれ補正処理を実現するハードウエアまたはソフトウエアの構成を単純化することができる。
【００５９】
図１８および図１９は、本発明の別の実施の形態に係る手ぶれ補正処理方法を説明する図である。
【００６０】
図１８は、撮影画像の中心に対して対称の位置にある二つのブロックにおける動きベクトルを示す図である。図７の撮影画像のブロックの配置において、第５と第１７のブロックは中心に対して対称の位置にあるため、第５ブロックのズームベクトルと第１７ブロックのズームベクトルは大きさが同じで方向は反対である。そのため、第５と第１７のブロックで検出された動きベクトルの加算平均を取ると、ズームベクトルの成分はキャンセルされ、手ぶれベクトルの成分だけが残る。
【００６１】
このように、撮影画像の中心に対して対称の位置にある二つのブロックを選択し、選択された二つのブロックで検出された動きベクトルを加算平均することにより、光学ズームによる動き成分を除き、手ぶれベクトルを算出することができる。
【００６２】
図１９は、撮影画像の中心に対して対称の位置にある二つのブロックの組み合わせを示す図である。撮影画像のブロック分割数が２５である場合、対称の位置にある二つのブロックの組み合わせは、図１９に示すように１２通りある。これら１２通りのブロックの組み合わせのそれぞれについて、動きベクトルを加算平均することで、手ぶれベクトルを算出し、１２個の手ぶれベクトルを平均化することで、最終的な手ぶれベクトルを得る。
【００６３】
なお、撮影画像の中心に対して対称の位置にある二つのブロックの対を選択する際、対になる二つのブロックの内、少なくとも一方のブロックにおいて動きベクトルの検出精度が所定の閾値よりも低い場合には、そのブロックの対は選択対象から外すことがより好ましい。ブロック対の片方の動きベクトルの信頼性が高くないとき、ブロック対の二つの動きベクトルの平均を取っても、光学ズーム成分はキャンセルされないため、そのブロック対では手ぶれベクトルが正しく得られないからである。
【００６４】
動きベクトルの検出精度が低下するのは、たとえば、撮影画像に空や壁が写っていたり、格子模様が写っている場合、輝度の同じ画素を探索することで動きベクトルを検出することには限界が生じるからである。そのため、ブロックによっては動きベクトルの信頼性が著しく低いことがある。
【００６５】
動きベクトルを代表点の輝度にもとづいて探索する際、代表点画素の輝度レベルと最も近い輝度レベルをもつ画素とのレベル差が閾値よりも大きい場合、そのブロックの動きベクトル検出点の信頼度が低いと判断するが、撮影画像に空や壁が含まれると一様の輝度レベルになり差が閾値よりも小さくなるため、信頼度が高いと判断されてしまう。そこで、信頼性判断のひとつの方法として、代表点の画素の輝度レベルと最も近い輝度レベルをもつ画素と２番目に近い輝度レベルをもつ画素の輝度レベルの差が所定の閾値よりも小さい場合、そのブロックの動きベクトル検出点の信頼度が低いと判断し、当該代表点が属するブロックは選択対象から除外する。また、被写体が動いたために、あるブロックだけ他のブロックとは異なる動きを示している場合は、そのブロックを選択対象から除外してもよい。
【００６６】
図２０は、本発明のさらに別の実施の形態に係る手ぶれ補正処理方法を説明する図である。図２０の撮影画像は、縦方向と横方向のブロック数が奇数である。このとき、撮影画像の中心を含む中央の縦一列のブロックにおいて、ズーム成分はＹ軸方向にのみ存在するため、Ｘ軸方向は手ぶれ成分だけが現れる。他方、撮影画像の中心を含む中央の横一列のブロックにおいて、ズーム成分はＸ軸方向にのみ存在するため、Ｙ軸方向は手ぶれ成分だけが現れる。
【００６７】
撮影画像の中心を含む中央の縦一列のブロックにおいて、光学ズーム操作中の動きベクトルを検出し、動きベクトルのＸ軸方向の成分を縦一列のブロックの間で平均化する。他方、撮影画像の中心を含む中央の横一列のブロックにおいて、光学ズーム操作中の動きベクトルを検出し、動きベクトルのＹ軸方向の成分を横一列のブロックの間で平均化する。このようにして得られた平均化されたＸ軸方向の成分とＹ軸方向の成分が求めたい手ぶれベクトルである。この方法によれば、撮影画像の中央のブロックだけから光学ズームの影響を受けない手ぶれベクトルを求めることに比べて、撮影画像の中央の縦一列、横一列のブロックを用いる分、手ぶれベクトルの精度は高くなる。
【００６８】
図７〜図２０を参照して説明した手ぶれ補正処理方法を実行するための撮像装置を以下、説明する。
【００６９】
図２１は、本発明の実施の形態に係る手ぶれ補正機能を搭載した撮像装置１００の構成図である。ここで説明する撮像装置１００は、一実施例として動画を撮影して磁気テープやハードディスクなどに記録するビデオカメラであるが、別の実施例として静止画を撮影してメモリカードなどに記録するデジタルスチルカメラであってもよい。また、ビデオカメラが静止画を記録再生するモードを備えてもよい。
【００７０】
図２１において、実線矢印は映像情報の流れを示し、点線矢印は制御情報の流れを示す。
【００７１】
レンズ１０に入射する被写体の像は電荷結合素子（ＣＣＤ）１２に結像する。ＣＣＤ１２から出力される撮影画像は、Ａ／Ｄ変換器１４によってデジタル信号に変換され、カメラ信号処理ＬＳＩ３０に入力される。
【００７２】
カメラ信号処理ＬＳＩ３０において、色信号処理部１６は、Ａ／Ｄ変換器１４から出力されたデジタル信号を色信号（Ｃ）に変換し、Ｙ信号処理部１８は、Ａ／Ｄ変換器１４から出力されたデジタル信号を輝度信号（Ｙ）に変換する。色信号処理部１６から出力される色信号は、フィールドメモリ２０に記憶される。Ｙ信号処理部１８から出力される輝度信号は、ローパスフィルタ（ＬＰＦ）１９にかけられた後、フィールドメモリ２０に記憶されるとともに、動きベクトル検出に使用するためにベクトル検出部２２に入力される。
【００７３】
ベクトル検出部２２は撮影画像の輝度信号にもとづいて手ぶれベクトルを検出し、手ぶれベクトルにもとづいてフィールドメモリ２０に撮影画像を切り出す中心位置をずらしてフィールドメモリ２０から撮影画像を切り出す指示をフィールドメモリ２０に与える。
【００７４】
ここで、ベクトル検出部２２は、光学ズーム操作中でも手ぶれベクトルを検出できるように、カメラ制御マイコン４０に設けられた手ぶれ補正処理ブロック５０と協働して手ぶれベクトルを検出する。ベクトル検出部２２は、撮影画像から検出された動きベクトルを手ぶれ補正処理ブロック５０に供給し、手ぶれ補正処理ブロック５０はベクトル検出部２２により検出された動きベクトルから光学ズームによる成分を除去して手ぶれベクトルを算出し、算出した手ぶれベクトルをベクトル検出部２２に供給する。
【００７５】
手ぶれによるずれを考慮して、フィールドメモリ２０の指定された中心位置から切り出された撮影画像の色信号と輝度信号はマトリクスエンコーダ・デコーダ２４に供給される。マトリクスエンコーダ・デコーダ２４は、撮影画像を圧縮符号化し、符号化された画像情報をＤＶ信号処理ＤＳＰ３４に与える。また、記録された画像を再生する際は、マトリクスエンコーダ・デコーダ２４は、ＤＶ信号処理ＤＳＰ３４から供給される符号化された画像情報を復号する。
【００７６】
マトリクスエンコーダ・デコーダ２４により処理された撮影画像の色信号と輝度信号はＤ／Ａ変換器２６に供給され、アナログ信号に変換される。Ｙ／Ｃ・ＯＳＤ信号混合部２８は、Ｄ／Ａ変換器２６から出力された輝度信号と色信号、およびオン・スクリーン・ディスプレイ（ＯＳＤ）回路４２から出力されるＯＳＤ信号を混合してビデオ出力部３２に供給する。ビデオ出力部３２は、画面にビデオ信号を表示させる。
【００７７】
操作部４４は、ユーザから撮像装置１００を操作する命令を受け付け、操作命令をカメラ制御マイコン４０に与える。カメラ制御マイコン４０は、撮像装置１００全体を制御する制御部であり、操作命令にもとづいてレンズ機構を制御したり、ディスプレイの設定を変更したりする。また、カメラ制御マイコン４０は、ディスプレイの設定画面を画面に表示させるためにＯＳＤ回路４２に命令を与え、ＯＳＤ信号を生成させる。
【００７８】
たとえば、操作部４４により光学ズームが指示された場合、カメラ制御マイコン４０は、レンズ１０のズームを調整する。操作部４４により録画の指示がなされた場合、カメラ制御マイコン４０はカメラ信号処理ＬＳＩ３０およびデッキ制御マイコン３８に動画記録の指示を与える。デッキ制御マイコン３８は、磁気テープ４８への画像の記録と磁気テープ４８からの画像の再生を行うデッキ部を制御する制御部である。
【００７９】
ＤＶ信号処理ＤＳＰ３４は、ＤＶ規格を前提としてビデオデータをＤＶフォーマットで処理するが、ビデオフォーマットはこれに限定されるものではない。ＤＶ信号処理ＤＳＰ３４は、マトリクスエンコーダ・デコーダ２４から与えられた符号化画像データを信号処理し、トラッキング情報や日時情報などの制御データを付加してＤＶフォーマットに変換し、プレレコーディングアンプ３６に与える。プレレコーディングアンプ３６は、入力された信号を変調してヘッド４６に供給する。ヘッド４６に供給された信号は磁気テープ４８条にトラックとして順次記録される。
【００８０】
操作部４４によって、磁気テープ４８に記録された画像の再生指示がなされると、ヘッド４６は磁気テープ４８から画像データを読み取り、プレレコーディングアンプ３６によって増幅されてＤＶ信号処理ＤＳＰ３４に入力される。ＤＶ信号処理ＤＳＰ３４は、入力された画像データを信号処理し、マトリクスエンコーダ・デコーダ２４に供給するとともに、画像データに付加された各種の制御データをデッキ制御マイコン３８に供給する。
【００８１】
図２２は、図２１の手ぶれ補正処理ブロック５０の構成図である。動きベクトル取得部５２は、ベクトル検出部２２から撮影画像の各ブロックの動きベクトルの情報を受け取る。図５および図６で説明したように、ベクトル検出部２２が検出した動きベクトルには、光学ズーム操作が行われていた場合、ズームベクトルの成分が含まれている。
【００８２】
一次関数算出部５４は、撮影画像のブロック毎に、撮影画像の中心と代表点とを結ぶ直線（「ズーム基準線」）と傾きが同じで、ベクトル検出点を通る直線（「手ぶれ基準線」）を一次関数として算出する。各ブロックの手ぶれ基準線を示す一次関数の傾きａと切片ｂの情報は一次関数情報記憶部６０に記憶される。一次関数算出部５４による処理の具体例は、図８および図９を参照して上述した通りである。
【００８３】
手ぶれ動きベクトル算出部５６は、一次関数情報記憶部６０を参照し、傾きが異なる手ぶれ基準線をもつ二つのブロックを選択し、選択したブロックの手ぶれ基準線の交点を求めることにより、手ぶれベクトルを算出する。手ぶれ動きベクトル算出部５６による処理の具体例は、図１０や図１４を参照して上述した通りである。
【００８４】
一次関数算出部５４は、傾きが同じズーム基準線をもつ複数のブロックを一つのグループにまとめ、各グループに属するブロックの手ぶれ基準線を示す一次関数の定数部ｂを平均化してもよい。手ぶれ動きベクトル算出部５６は、定数部が平均化された手ぶれ基準線の傾きが異なる少なくとも二つのグループを選択し、選択されたグループの手ぶれ基準線の交点を求めることにより、手ぶれベクトルを算出してもよい。この処理方法については、図１５および図１６を参照して上述した。
【００８５】
手ぶれ動きベクトル算出部５６は、ズーム基準線の傾きが異なる任意の二つのブロックまたは上述の任意の二つのグループを選択して求めた手ぶれベクトルを手ぶれ動きベクトル記憶部６２に記憶する。手ぶれ動きベクトル算出部５６は、複数の手ぶれベクトルを平均化して最終的な手ぶれベクトルを求め、手ぶれ動きベクトル記憶部６２に記憶する。
【００８６】
手ぶれ補正部５８は、手ぶれ動きベクトル記憶部６２から最終的な手ぶれベクトルを読み出し、ベクトル検出部２２に与える。ベクトル検出部２２は、手ぶれ補正部５８から与えられた手ぶれベクトルにもとづいて、フィールドメモリ２０から撮影画像を切り出すときの中心位置をずらす。
【００８７】
なお、ベクトル検出部２２による動きベクトル検出機能は、手ぶれ補正処理ブロック５０の動きベクトル取得部５２にもたせてもよく、ベクトル検出部２２による手ぶれベクトルにもとづく撮影画像のメモリ切り出し機能は、手ぶれ補正処理ブロック５０の手ぶれ補正部５８にもたせてもよい。
【００８８】
手ぶれ補正処理ブロック５０は、光学ズーム操作をしているかどうかに関係なく、動作させてもよい。この方法については図１７を参照して上述した。これにより、光学ズーム操作がなされない通常撮影中にも手ぶれ補正処理ブロック５０が手ぶれベクトルを求めてベクトル検出部２２に供給することができる。実質的には、ベクトル検出部２２の機能を手ぶれ補正処理ブロック５０にもたせることができるようになり、ズーム操作時と通常撮影時で手ぶれ検出処理を切り替える必要がなくなる。これによって回路構成を簡略化することができ、製品のコストダウンにつながる。
【００８９】
別の手ぶれベクトル算出方法として、図１８および図１９を参照して上述したものがある。この方法によれば、手ぶれ動きベクトル算出部５６は、撮影画像の中心に対して対称の位置にある二つのブロックで検出された二つの動きベクトルの平均を計算することにより、光学ズームによる動き成分をキャンセルし、手ぶれベクトルを求める。
【００９０】
手ぶれ動きベクトル算出部５６は、撮影画像の中心に対して対称の位置にある二つのブロックの対を複数選択し、各ブロックの対において二つの動きベクトルの平均を取ることにより、手ぶれベクトルを算出し、最後に、複数のブロックの対について算出された手ぶれベクトルの平均を求め、最終的な手ぶれベクトルとしてもよい。その際、手ぶれ動きベクトル算出部５６は、対称の位置にある二つのブロックの内、少なくとも一方のブロックにおいて動きベクトル検出点の信頼度が所定の閾値よりも低い場合には、そのブロックの対は計算対象から外すようにしてもよい。
【００９１】
さらに別の手ぶれベクトル算出方法として、図２０を参照して上述したものがある。この方法によれば、動きベクトル取得部５２は、撮影画像の縦方向と横方向のブロック数が奇数になるように撮影画像が複数のブロックに分割されている場合、撮影画像の中央の縦一列のブロックと中央の横一列のブロックにおいて検出された動きベクトルを取得する。手ぶれ動きベクトル算出部５６は、縦一列のブロックで検出された動きベクトルのＸ軸方向の成分を平均化し、横一列のブロックにおいて検出された動きベクトルのＹ軸方向の成分を平均化し、平均化されたベクトルのＸ軸方向とＹ軸方向の成分を手ぶれベクトルとする。
【００９２】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００９３】
２０  フィールドメモリ、  ２２  ベクトル検出部、  ２４  マトリクスエンコーダ・デコーダ、  ３０  カメラ信号処理ＬＳＩ、  ３２  ビデオ出力部、  ４０  カメラ制御マイコン、  ４４  操作部、  ５０  手ぶれ補正処理ブロック、  ５２  動きベクトル取得部、  ５４  一次関数算出部、  ５６  手ぶれ動きベクトル算出部、  ５８  手ぶれ補正部、  ６０  一次関数情報記憶部、  ６２  手ぶれ動きベクトル記憶部、  １００  撮像装置。
【図１】
2010183194.tif 000003
【図２】
2010183194.tif 000004
【図３】
2010183194.tif 000005
【図４】
2010183194.tif 000006
【図５】
2010183194.tif 000007
【図６】
2010183194.tif 000008
【図７】
2010183194.tif 000009
【図８】
2010183194.tif 000010
【図９】
2010183194.tif 000011
【図１０】
2010183194.tif 000012
【図１１】
2010183194.tif 000013
【図１２】
2010183194.tif 000014
【図１３】
2010183194.tif 000015
【図１４】
2010183194.tif 000016
【図１５】
2010183194.tif 000017
【図１６】
2010183194.tif 000018
【図１７】
2010183194.tif 000019
【図１８】
2010183194.tif 000020
【図１９】
2010183194.tif 000021
【図２０】
2010183194.tif 000022
【図２１】
2010183194.tif 000023
【図２２】
2010183194.tif 000024