(57)【要約】【課題】  過度の負担を軽減してブレを検出することができる動きベクトル検出装置及びそのプログラムを実現する。【解決手段】  ブレ検出処理を開始すると、ＣＣＤ３により動画撮像されるフレームの間隔（フレームレート）を取得し（Ｓ１）、メモリ８に記憶されている探索範囲グラフ化テーブルに基づいて該取得したフレームレートに対応する探索範囲の広さを設定する（Ｓ２）。そして、ＣＣＤ３により撮像されたフレームレートを取得し、該設定された探索範囲の広さでブロックマッチング法により該取得したフレームレートの動きベクトルを検出する（Ｓ４）。そして、ブレ検出処理を終了するか否かを判断し（Ｓ５）、終了しない場合は、該検出した動きベクトルと設定されている探索範囲の広さに基づいて探索範囲の調整が必要か否かを判断し（Ｓ６）、必要の場合には探索範囲の広さを再設定する（Ｓ７）【選択図】  図２
2007318292.tif 000002
【特許請求の範囲】
【請求項１】
現フレームデータを複数のブロックに区分けし、現フレームデータのブロックに対応する前フレームデータの探索範囲内で、該現フレームデータのブロックと相関度が最も高いブロックを検出することにより、該現フレームデータのブロックの動きベクトルを検出する動きベクトル検出装置であって、
画像の画質情報を取得する画質情報取得手段と、
前記画質情報取得手段により取得された画質情報に応じて、前記探索範囲の広さを設定する設定手段と、
前記設定手段により設定された探索範囲の広さ内で、現フレームデータのブロックと相関度の最も高いブロックを検出することにより、該現フレームデータのブロックの動きベクトルを検出する動きベクトル検出手段と、
を備えたことを特徴とする動きベクトル検出装置。
【請求項２】
前記取得手段は、
画像の画質情報として、フレームレートの速さを取得し、
前記設定手段は、
前記フレームレートの速さに応じて探索範囲を可変設定することを特徴とする請求項１記載の動きベクトル検出装置。
【請求項３】
前記設定手段は、
前記フレームレートが速い場合には探索範囲を狭く設定し、前記フレームレートが遅い場合には探索範囲を広く設定することを特徴とする請求項２記載の撮像装置。
【請求項４】
前記動きベクトル検出手段により検出されたブロックの動きベクトルの大きさに基づいて、前記設定手段により設定された探索範囲の広さを調整する調整手段を備えたことを特徴とする請求項１乃至３の何れかに記載の動きベクトル検出装置。
【請求項５】
被写体の動画を撮像する動画撮像手段を備え、
前記動きベクトル検出手段は、
前記動画撮像手段により撮像された動画データに基づいて、フレームデータのブロックの動きベクトルを検出することを特徴とする請求項１乃至４の何れかに記載の動きベクトル検出装置。
【請求項６】
記録されている動画データを取得する動画取得手段を備え、
前記動きベクトル検出手段は、
前記動画データ取得手段により取得された動画データに基づいて、フレームデータのブロックの動きベクトルを検出することを特徴とする請求項１乃至４の何れかに記載の動きベクトル検出装置。
【請求項７】
前記動きベクトル検出手段は、
補間画素を含むフレームデータに基づいて、現フレームデータのブロックの動きベクトルを検出する場合は、補間画素以外の画素を用いて該ブロックの動きベクトルを検出することを特徴とする請求項１乃至６の何れかに記載の撮像装置。
【請求項８】
前記動きベクトル検出手段は、
現フレームデータの複数のブロックの動きベクトルを検出することを特徴とする請求項１乃至７の何れかに記載の動きベクトル検出装置。
【請求項９】
前記動きベクトル検出手段により検出された各ブロックの動きベクトルに基づいて前記現フレームデータの動きベクトルを算出する算出手段を備えたことを特徴とする請求項８記載の動きベクトル検出装置。
【請求項１０】
前記算出手段は、
前記各ブロックの動きベクトルに基づいて算出された各ブロックの動きベクトルの平均値又は動きベクトルの加重平均値、又は、前記各ブロックの動きベクトルのヒストグラムが最大となる動きベクトルを、現フレームデータの動きベクトルとすることを特徴とする請求項９記載の動きベクトル検出装置。
【請求項１１】
前記算出手段により算出された現フレームデータの動きベクトルに基づいてトリミングされた現フレームデータを表示手段に表示させる表示制御手段を備え、
前記表示制御手段は、
前記算出手段により算出された現フレームデータの動きベクトルが所定値以下の場合は、現フレームデータを表示せずに、既に表示されているトリミングされた前フレームデータをそのまま表示させることを特徴とする請求項９又は１０記載の動きベクトル検出装置。
【請求項１２】
前記算出手段により算出された現フレームデータの動きベクトルに基づいてトリミングされた現フレームデータを記録手段に記録する記録制御手段を備え、
前記記録制御手段は、
前記算出手段により算出された現フレームデータの動きベクトルが所定値以下の場合は、現フレームデータの替わりに、既に記録したトリミングされた前フレームデータを続けて記録させることを特徴とする請求項９又は１０記載の動きベクトル検出装置。
【請求項１３】
現フレームデータを複数のブロックに区分けし、現フレームデータのブロックに対応する前フレームデータの探索範囲内で、該現フレームデータのブロックと相関度が最も高いブロックを検出することにより、該現フレームデータのブロックの動きベクトルを検出する動きベクトル検出装置を実行させるためのプログラムであって、
画像の画質情報を取得する画質情報取得処理と、
前記画質情報取得手段により取得された画質情報に応じて、前記探索範囲の広さを設定する設定処理と、
前記設定処理により設定された探索範囲の広さ内で、現フレームデータのブロックと相関度の最も高いブロックを検出することにより、該現フレームデータのブロックの動きベクトルを検出する動きベクトル検出処理と、
を含み、上記各処理を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル検出装置及びそのプログラムに係り、詳しくは、動きベクトルを検出する動きベクトル検出装置及びそのプログラムに関する。
【背景技術】
【０００２】
従来、画像データから動きベクトルを算出し、該算出した動きベクトルに基づいて画像データのトリミング位置を決定して画像データを切り出すことによりブレを補正するという技術がある（特許文献１）。
【０００３】
また、この動きベクトルの算出方法として、代表的なものとしてブロックマッチング法というものがあり、特許文献２に示すように、Ｍ×Ｎ画素を１ブロックとして、現在のフレームデータを複数のブロックに区分けする。
そして、図６（ａ）に示すように、現フレームデータ２１のある１つのブロック２３と、１つ前のフレームデータ（前フレームデータ）２２の探索範囲２４内にある探索ブロック２５（Ｍ×Ｎ画素）とを用いて動きベクトルを算出する。
【０００４】
この動きベクトルの算出方法として、現フレームデータ２１のブロック２３と同じ位置に探索ブロック２５を前フレームデータ内に位置させ、そのときの、ブロック２３の各画素値と探索ブロック２５の各画素値との差分の絶対値の総和を求める。この求めた総和の値がブロック評価値となる。
そして、図６（ｂ）に示すように探索ブロックを右に１画素、下に１画素移動させ、そのときの、ブロック２３の各画素値と探索ブロック２５の画素値との差分の絶対値の総和からブロック評価値を求めるというように、探索ブロック２５を探索範囲２４内で移動させ、そのときのブロック評価値を求める。
【０００５】
そして、求めたブロック評価値がもっとも最小値となる探索ブロック２５の位置が現フレームデータ２１のブロック２３と一致すると判断し、つまり、ブロック評価値がもっとも最小値となる探索ブロック２５の位置のブロックが現フレームデータの２１と最も相関度の高いブロックと判断され、該ブロック２３と一致すると判断された探索ブロック２５の位置に基づいて、現フレームデータ２１のブロック２３の動きベクトルを算出する。
このような動作を、現フレームデータ２１の区分けされた全てのブロックに対して行うことにより、区分けされた全てのブロックの動きベクトルを算出し、該算出した各ブロックの動きベクトルに基づいて現フレームデータ２１の動きベクトルを算出するというものである。
【０００６】
【特許文献１】公開特許公報  特開平１０−１３６３０４号
【０００７】
【特許文献２】公開特許公報  特開２００５−２０２９２１
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記技術によれば、探索範囲は一律であるため、画質、例えば、フレームレートが早い場合には、フレームの動きベクトルを算出する処理負担が大きくなるという問題がある。また、フレームレートが早い場合は、低い場合に比べ、フレーム間でのブレ量が少なく、無駄な処理を行なっている場合もある。
【０００９】
そこで本発明は、かかる従来の問題点に鑑みてなされたものであり、過度の負担を軽減してブレを検出することができる動きベクトル検出装置及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的達成のため、請求項１記載の発明による動きベクトル検出装置は、現フレームデータを複数のブロックに区分けし、現フレームデータのブロックに対応する前フレームデータの探索範囲内で、該現フレームデータのブロックと相関度が最も高いブロックを検出することにより、該現フレームデータのブロックの動きベクトルを検出する動きベクトル検出装置であって、
画像の画質情報を取得する画質情報取得手段と、
前記画質情報取得手段により取得された画質情報に応じて、前記探索範囲の広さを設定する設定手段と、
前記設定手段により設定された探索範囲の広さ内で、現フレームデータのブロックと相関度の最も高いブロックを検出することにより、該現フレームデータのブロックの動きベクトルを検出する動きベクトル検出手段と、
を備えたことを特徴とする。
【００１１】
また、例えば、請求項２に記載されているように、前記取得手段は、
画像の画質情報として、フレームレートの速さを取得し、
前記設定手段は、
前記フレームレートの速さに応じて探索範囲を可変設定するようにしてもよい。
【００１２】
また、例えば、請求項３に記載されているように、前記設定手段は、
前記フレームレートが速い場合には探索範囲を狭く設定し、前記フレームレートが遅い場合には探索範囲を広く設定するようにしてもよい。
【００１３】
また、例えば、請求項４に記載されているように、前記動きベクトル検出手段により検出されたブロックの動きベクトルの大きさに基づいて、前記設定手段により設定された探索範囲の広さを調整する調整手段を備えるようにしてもよい。
【００１４】
また、例えば、請求項５に記載されているように、被写体の動画を撮像する動画撮像手段を備え、
前記動きベクトル検出手段は、
前記動画撮像手段により撮像された動画データに基づいて、フレームデータのブロックの動きベクトルを検出するようにしてもよい。
【００１５】
また、例えば、請求項６に記載されているように、記録されている動画データを取得する動画取得手段を備え、
前記動きベクトル検出手段は、
前記動画データ取得手段により取得された動画データに基づいて、フレームデータのブロックの動きベクトルを検出するようにしてもよい。
【００１６】
また、例えば、請求項７に記載されているように、前記動きベクトル検出手段は、
補間画素を含むフレームデータに基づいて、現フレームデータのブロックの動きベクトルを検出する場合は、補間画素以外の画素を用いて該ブロックの動きベクトルを検出するようにしてもよい。
【００１７】
また、例えば、請求項８に記載されているように、前記動きベクトル検出手段は、
現フレームデータの複数のブロックの動きベクトルを検出するようにしてもよい。
【００１８】
また、例えば、請求項９に記載されているように、前記動きベクトル検出手段により検出された各ブロックの動きベクトルに基づいて前記現フレームデータの動きベクトルを算出する算出手段を備えるようにしてもよい。
【００１９】
また、例えば、請求項１０に記載されているように、前記算出手段は、
前記各ブロックの動きベクトルに基づいて算出された各ブロックの動きベクトルの平均値又は動きベクトルの加重平均値、又は、前記各ブロックの動きベクトルのヒストグラムが最大となる動きベクトルを、現フレームデータの動きベクトルとするようにしてもよい。
【００２０】
また、例えば、請求項１１に記載されているように、前記算出手段により算出された現フレームデータの動きベクトルに基づいてトリミングされた現フレームデータを表示手段に表示させる表示制御手段を備え、
前記表示制御手段は、
前記算出手段により算出された現フレームデータの動きベクトルが所定値以下の場合は、現フレームデータを表示せずに、既に表示されているトリミングされた前フレームデータをそのまま表示させるようにしてもよい。
【００２１】
また、例えば、請求項１２に記載されているように、前記算出手段により算出された現フレームデータの動きベクトルに基づいてトリミングされた現フレームデータを記録手段に記録する記録制御手段を備え、
前記記録制御手段は、
前記算出手段により算出された現フレームデータの動きベクトルが所定値以下の場合は、現フレームデータの替わりに、既に記録したトリミングされた前フレームデータを続けて記録させるようにしてもよい。
【００２２】
上記目的達成のため、請求項１３記載の発明によるプログラムは、現フレームデータを複数のブロックに区分けし、現フレームデータのブロックに対応する前フレームデータの探索範囲内で、該現フレームデータのブロックと相関度が最も高いブロックを検出することにより、該現フレームデータのブロックの動きベクトルを検出する動きベクトル検出装置を実行させるためのプログラムであって、
画像の画質情報を取得する画質情報取得処理と、
前記画質情報取得手段により取得された画質情報に応じて、前記探索範囲の広さを設定する設定処理と、
前記設定処理により設定された探索範囲の広さ内で、現フレームデータのブロックと相関度の最も高いブロックを検出することにより、該現フレームデータのブロックの動きベクトルを検出する動きベクトル検出処理と、
を含み、上記各処理を実行することを特徴とする。
【発明の効果】
【００２３】
本発明によれば、画質に応じて探索範囲の広さを変えて動画のフレームデータのブロックの動きベクトルを検出するようにしたので、無駄な処理を行うことがなく、処理負担を軽減することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本実施の形態について、本発明の動きベクトル検出装置をデジタルカメラに適用した一例として図面を参照して詳細に説明する。
[第１の実施の形態]
Ａ．デジタルカメラの構成
図１は、本発明の動きベクトル検出装置を実現するデジタルカメラ１の電気的な概略構成を示すブロック図である。
デジタルカメラ１は、撮影レンズ２、ＣＣＤ３、垂直ドライバ４、ＴＧ（timing
generator）５、ユニット回路６、ＤＭＡコントローラ（以下、ＤＭＡという）７、メモリ８、ＤＭＡ９、画像生成部１０、ＤＭＡ１１、ＤＭＡ１２、表示部１３、ＤＭＡ１４、圧縮部１５、ＤＭＡ１６、フラッシュメモリ１７、ＣＰＵ１８、キー入力部１９、バス２０を備えている。
【００２５】
撮影レンズ２は、被写体の光をＣＣＤ３に投影させるものであり、ＣＣＤ３は、垂直ドライバ４によって走査駆動され、一定周期毎に投影された被写体の光の強さを光電変換して撮像信号（画像データ）としてユニット回路６に出力する。ここでは、ＣＣＤ３は、ベイヤー配列の色フィルタを有しているので、投影された被写体の光はＲＧＢ値の各色の光の量に光電変換される。この垂直ドライバ４、ユニット回路６の動作タイミングはＴＧ５を介してＣＰＵ１８により制御される。
【００２６】
ユニット回路６にはＴＧ５が接続されており、ＣＣＤ３から出力される撮像信号を相関二重サンプリングして保持するＣＤＳ（Correlated Double Sampling）回路、そのサンプリング後の撮像信号の自動利得調整を行うＡＧＣ（Automatic Gain Control）回路、その自動利得調整後のアナログの撮像信号をデジタル信号に変換するＡ／Ｄ変換器から構成されており、ＣＣＤ３の撮像信号は、ユニット回路６を経た後、ＤＭＡ７によってベイヤーデータの状態でメモリ８に記憶される。
【００２７】
メモリ８は、少なくともＣＣＤ３によって撮像された連続する２フレーム分の画像データを記憶させておく。つまり、メモリ８に新たなフレームデータが記憶されても、１つ前のフレームデータはそのまま保持されている。例えば、３枚目のフレームデータが記憶されても、２枚目のフレームデータはそのまま記憶されており、４枚目のフレームデータが記憶されると、２枚目のフレームデータの記憶を消去してもよいようになっている。
【００２８】
ＤＭＡ９は、ＣＰＵ１８によって決められた切り出し範囲（トリミング範囲）に基づいて、メモリ８に新たに記憶されたべイヤーデータを切り出して読出し、画像生成部１０に出力する。
画像生成部１０は、ＤＭＡ９から送られてきたベイヤーデータの画像データに対して、画素補間処理、γ補正、ホワイトバランス処理等を施すとともに、輝度色差信号（ＹＵＶデータ）を生成する処理を行う。
ＤＭＡ１１は、画像生成部１０で生成された輝度色差信号の画像データを、メモリ８に記憶させる。このとき、上記ベイヤーデータとは別の領域に輝度色差信号の画像データを記憶させる。
【００２９】
ＤＭＡ１２は、メモリ８に記憶されているＹＵＶデータの画像データを読出し、表示部１３に出力する。
表示部１３は、カラーＬＣＤとその駆動回路を含み、ＤＭＡ１２から出力された画像データを表示させる。
【００３０】
ＤＭＡ１４は、動画撮影記録時は、メモリ８に記憶されているＹＵＶデータの画像データや圧縮された画像データ（圧縮画像データ）を圧縮部１５に出力したり、圧縮部１５により圧縮された画像データや、伸張された画像データをメモリ８に記憶させたりする。
圧縮部１５は、画像データの圧縮・伸張（例えば、ＭＰＥＧ形式の圧縮・伸張）を行なう部分である。
ＤＭＡ１６は、メモリ８に記憶された圧縮画像データを読み出して、フラッシュメモリ１７に記録したり、フラッシュメモリ１７に記録された圧縮画像データをメモリ８に記憶させる。
【００３１】
ＣＰＵ１８は、デジタルカメラ１の各部を制御する機能を有するワンチップマイコンからなり、特に本発明の特徴部分となるフレームデータの動きベクトルを算出する機能を有する。
キー入力部１９は、シャッタボタン、モード切替キー、セットキー等の複数の操作キーを含み、ユーザのキー操作に対応した操作信号をＣＰＵ１８に出力する。
メモリ８は、さらに、ＣＰＵ１８の制御に必要なプログラム、及び必要なデータが記録されているとともに、フレームレートの速さに応じた探索範囲をグラフ化した探索範囲グラフ化テーブルも格納されている。この探索範囲グラフ化テーブルについては後述する。
【００３２】
Ｂ．デジタルカメラ１の動作
実施の形態におけるデジタルカメラ１の動作を図２のフローチャートに従って説明する。
【００３３】
ブレ検出処理を開始すると、ＣＰＵ１８は、ＣＣＤ３のフレームレートを取得する（ステップＳ１）。このとき、ＣＣＤ３による所定のフレームレートで被写体の撮像が行なわれており（スルー画像表示や動画記録撮影などの動画撮像処理が行なわれており）、該ＣＣＤ３のフレームレートを取得する。このフレームレートは、ユーザによって画質設定モードにより設定された画質に応じたフレームレートを取得する。なお、画質の設定にかかわらずに個別にフレームレートをユーザが設定できるようにしてもよい。
【００３４】
次いで、ＣＰＵ１８は、探索範囲グラフ化テーブルに基づいて、該取得したフレームレートに対応する探索範囲の広さを設定する（ステップＳ２）。
図３は、メモリ８に記憶されている探索範囲グラフ化テーブルの様子を示すものである。
図３を見るとわかるように、フレームレートが速い（高い）場合には（撮像されるフレームの間隔が短い場合には）探索範囲が狭くなり（小さくなり）、フレームレートが遅く（低く）なるにつれて（撮像されるフレームの間隔が長くなるにつれて）探索範囲が広くなっている（大きくなっている）。
【００３５】
次いで、ＣＰＵ１８は、ＣＣＤから出力され、ユニット回路６、ＤＭＡ７を介してメモリ８に新たに記憶されたフレームデータを取得し（ステップＳ３）、該設定された探索範囲の広さで、ブロックマッチング法により該取得したフレームデータの動きベクトルを検出する（ステップＳ４）。
具体的に説明すると、新たに取得したフレームデータ（現フレームデータ）をブロック毎に区分けし、該区分けされた各ブロックに対応するメモリ８に記憶されている１つ前のフレームデータの該設定された広さでの探索範囲内で探索ブロックを移動させることにより、該区分けされた各ブロックと最も相関度の高いブロックを検出することにより現フレームデータの各ブロックの動きベクトルを検出し、該検出された現フレームデータの各ブロックの動きベクトルに基づいて現フレームデータの動きベクトルを検出する。
【００３６】
図４は、フレームレートの速さ（高さ）に応じて設定される探索範囲の広さの様子を示す一例である。
図４の２１は現フレームデータであり、２２は１つ前のフレームデータ、２３は現フレームデータの区分けされたある１つのブロックであり、２４は該ブロック２３に対応する探索範囲であり、２５は探索ブロックを示す。
図４（ａ）は、フレームレートが遅いとき（例えば、フレームレートの速さが１５ｆｐｓ（１秒間に１５フレーム））の探索範囲の広さの様子を示し、（ｂ）は、フレームレートが割りと速いとき（例えば、フレームレートの速さが３０ｆｐｓ）の探索範囲の広さを示している。図４の（ａ）と（ｂ）とを見比べると、フレームレートの速さに応じて探索範囲の広さが変わっていることがわかる。
【００３７】
このように、フレームレートが遅い（低い）場合には撮像されるフレームの撮像間隔も長いため、１つ前のフレームと現フレームとの間では被写体ブレ、手振れなどのブレが大きくなりやすいので探索範囲を広く設定し、フレームレートが速い場合には撮像されるフレームの撮像間隔も短いため、１つ前のフレームと現フレームとの間では被写体ブレ、手振れなどのブレが小さいので探索範囲を狭くし、もって無駄な処理を行わずに、ＣＰＵ１８の処理負担を軽減させることが可能となる。
【００３８】
また、検出された現フレームの各ブロックの動きベクトルから現フレームの動きベクトルの検出方法として、各ブロックの動きベクトルを単に平均したものを現フレームの動きベクトルとするようにしてもよいし、各ブロックの動きベクトルを加重平均したものを現フレームの動きベクトルとするようにしてもよい。また、各ブロックの動きベクトルのヒストグラム（各ブロックの動きベクトルを、動きベクトルの軸とブロックの数の軸で表したグラフ）に基づいて、最大となる動きベクトルを現フレームの動きベクトル、つまり、各ブロックの動きベクトルのうち、一番多かった動きベクトルを現フレームの動きベクトルとするようにしてもよい。要は、各ブロックの動きベクトルからフレームの動きベクトルを検出方法であればよい。
【００３９】
次いで、ＣＰＵ１８は、ブレ検出処理を終了するか否かの判断を行う（ステップＳ５）この判断は、スルー画像表示が終了し静止画撮影が行なわれた場合や動画記録撮影が終了された場合、更にユーザのキー入力部１９の操作によりブレ検出処理を中止する旨の操作信号が送られてきた場合などは、ブレ検出処理を終了すると判断する。
ステップＳ５で、ブレ検出処理を終了しないと判断すると、ＣＰＵ１８は、探索範囲の広さ（大きさ）の調整が必要か否かを判断する（ステップＳ６）。この判断は、検出したフレームの動きベクトルの大きさと、探索範囲の広さとに基づいて判断する。つまり、検出された動きベクトルの大きさを探索範囲の広さにフィードバックさせる必要させるか否かで判断する。
【００４０】
例えば、動きベクトルの大きさによっては探索範囲を超えてしまうので、事前に動きベクトルの大きさによって、探索範囲を超えてしまう可能性がある場合には探索範囲の広さの調整が必要と判断する。また、検出された動きベクトルの大きさが探索範囲のより遥かに小さい場合は、不必要な動きベクトルの検出を行なっているので、かかる場合も探索範囲の広さの調整が必要と判断する。
【００４１】
ステップＳ６で、探索範囲の調整が必要でないと判断するとステップＳ３に戻り、探索範囲の調整が必要であると判断すると探索範囲を再設定して、（ステップＳ７）、ステップＳ３に戻る。この探索範囲の再設定は、検出されたフレームの動きベクトルの大きさと既に設定されている探索範囲の広さに基づいて行なう。
例えば、動きベクトルの大きさが探索範囲に超えてしまう可能性がある場合、つまり、探索範囲内であるが動きベクトルの大きさが探索範囲に比べ割と大きい場合は、探索範囲を広く再設定し、動きベクトルの大きさが探索範囲より遥かに小さい場合は探索範囲を狭く設定する。つまり、検出された動きベクトルの大きさを探索範囲の広さにフィードバックさせる。
【００４２】
Ｃ．以上のように、第１の実施の形態においては、フレームレートの速さに応じて、探索範囲を狭くするようにしたので、無駄な動作を行なわなくて済み、処理負担を軽減することができ、迅速に動きベクトルを検出することができる。
また、実際に検出されたフレームの動きベクトルの大きさに応じて、探索範囲を調整するので、撮影する状態、状況等に実情に沿う探索範囲を設定することができ、無駄な処理を行うことがない。
【００４３】
［第２の実施の形態］
次に、第２の実施の形態について説明する。
第２の実施の形態は、検出された動きベクトルを用いて、ブレを補正するというものである。
【００４４】
Ｄ.デジタルカメラ１の動作
第２の実施の形態も、図１に示したものと同様の構成を有するデジタルカメラ１を用いることにより本発明の撮像装置を実現する。
以下、第２の実施の形態のデジタルカメラ１の動作を図５のフローチャートにしたがって説明する。
【００４５】
ブレ補正処理が開始されると、ＣＰＵ１８は、ＣＣＤ３により新たに撮像されメモリ８に記憶されたフレームデータ（現フレームデータ）を取得する（ステップＳ１１）。このとき、ＣＣＤ３による所定のフレームレートで被写体の撮像が行なわれている（スルー画像表示や動画記録撮影などの動画撮像処理が行なわれている）。
【００４６】
次いで、ＣＰＵ１８は、該取得した現フレームデータの動きベクトルを検出する（ステップＳ１２）。この動きベクトルの検出は、上記第１の実施の形態で示した方法で動きベクトルを検出する。なお、上記第１の実施の形態で示した方法以外の他の方法で検出された動きベクトルであってもよいし、センサジャイロなどにより、検出されたブレ量であってもよい。
【００４７】
次いで、ＣＰＵ１８は、該取得した現フレームデータの動きベクトルが所定値以下であるか否かを判断する（ステップＳ１３）。この所定値とは０の場合もあり、所定値が０の場合は、動きベクトルが０であるか否かの判断を行うことになる。
ステップＳ１３で、該取得した現フレームデータの動きベクトルが所定値以下でないと判断すると、前回のトリミング位置と該検出した現フレームデータの動きベクトルに基づいてトリミング位置を決定し、該決定したトリミング位置及び予め定められているトリミングサイズに基づいてトリミング範囲を決定する（ステップＳ１４）。
【００４８】
次いで、ステップＳ１５で、ＣＰＵ１８は、ＤＭＡ９に、該決定されたトリミング範囲に基づいて、メモリ８に記憶された現フレームデータを切り出して読み出させ、画像生成部１０によって生成された輝度色差信号の画像データを、ＤＭＡ１１、ＤＭＡ１２を介して表示部１３に表示させて（動画記録撮影の場合には、表示させた該画像データを記録するようにしてもよい）、ステップＳ１７に進む。
【００４９】
一方、ステップＳ１３で、該取得した現フレームデータの動きベクトルが所定値以下であると判断すると、殆どブレ（１つ前のフレームの画像を基準にした現フレームのブレのことをいう）は発生していないので、ステップＳ１６で、既に表示させたトリミングされた前フレームデータをそのまま表示させて（動画記録撮影の場合には、現フレームデータの替わりに、既に記録したトリミングされた前フレームデータを続けて記録するようにしてもよい）、ステップＳ１７に進む。これにより、動きベクトルが所定値以下の場合は、トリミング処理や画像処理などを行なわなくて済み処理が軽減することができる。
【００５０】
ステップＳ１７に進むと、ＣＰＵ１８は、ブレ補正処理を終了するか否かを判断し、ブレ補正処理を終了しないと判断するとステップＳ１１に戻り、新たに撮像されたフレームデータを取得する。この判断は、スルー画像表示が終了し静止画撮影が行なわれた場合や動画記録撮影が終了された場合、更にユーザのキー入力部１９の操作によりブレ補正処理を中止する旨の操作信号が送られてきた場合などは、ブレ補正処理を終了すると判断する。
【００５１】
Ｅ．以上のように、第２の実施の形態においては、ＣＣＤ３により新たに撮像され、取得した現フレームデータの動きベクトルが所定値以下の場合は、現フレームデータをトリミングして表示（記録）させるという動作を行わずに、既に表示したトリミングされた前フレームデータをそのまま継続して表示（記録）させるので、補正処理の負担を軽減することができる。
【００５２】
［変形例］
Ｆ．上記各実施の形態は以下のような変形例も可能である。
（１）上記各実施の形態においては、動画撮像時において説明したが動画再生時に適用してもよい。つまり、第１の実施の形態においては、動画再生時には、再生する動画データのフレームレートを取得し、該取得したフレームレートに応じて探索範囲の広さを設定して、フレームの動きベクトルを検出する。また、第２の実施の形態においては、該検出されたフレームの動きベクトルに基づいて決定されたトリミング範囲に基づいてトリミングすることによりブレ補正を行なって記録されている動画データを再生表示するようにしてもよい。
【００５３】
（２）また、動画記録撮影の場合には、該検出したフレームの動きベクトルと該フレームとを関連付けて撮像された動画データを記録させるようにしてもよい。
また、この記録された動画データの再生時においては、フレームに関連付けられて記録されている動きベクトルに基づいて該フレームのトリミング範囲を決定してブレ補正して、動画データを再生表示する。
【００５４】
（３）また、第１の実施の形態においては、補間画素を含む動画データに基づいてフレームの動きベクトルを検出する場合においては、現フレームデータの補間画素値以外の画素値と前フレームデータの補間画素値以外の画素値とに基づいて動きベクトルを検出するようにしてもよい。つまり、ＣＣＤ３によって撮像された画素値のみを用いて動きベクトルを検出する。また、この補間画素を含む動画データとしては、例えば、デジタルズームがされた動画データなどがある。
【００５５】
（４）また、上記第１の実施の形態においては、ユーザにより設定された画質に応じてフレームレートを変え、フレームレートに応じて探索範囲の広さを設定するようにしたが、他の画質の要素に基づいて探索範囲の広さを設定するようにしてもよい。例えば、他の画質の要素として、ＣＣＤ３から読み出す画素の数に応じて探索範囲の広さを設定するようにしてもよい。
具体的に説明すると、間引き読出しによって間引かれる画素間隔（１画素おきや２画素おき等）、画素加算駆動によって加算される画素の数に応じて、読み出される画素の数は異なり、間引き読出しにより間引かれる画素間隔や画素加算駆動による加算される画素の数が増えれば増える程、読み出される画素の数は少なくなるので、探索範囲を広く設定する。
読み出される画素が少なくなれば、探索範囲を広く設定しても、動きベクトルを検出する処理負担は大きくならないからである。
【００５６】
（５）また、上記第１の実施の形態においては、最初に現在のフレームレートに応じて探索範囲の広さを設定し、その後、探索範囲を調整するようにしたが、フレームレートに応じた探索範囲の広さの設定を行なわないようにしてもよい。
具体的に説明すると、図２のステップＳ１及び２の動作を行わずに、予め定められている探索範囲に設定して、ステップＳ３に進み、その後の動作は、第１の実施の形態と同様の動作を行なうようにする。
【００５７】
（６）また、上記各実施の形態においては、動画データのフレームの動きベクトルを検出し、該検出した動きベクトルに基づいてブレを補正する場合について説明したが、該検出された動きベクトルは他の用途、例えば、ＭＰＥＧ圧縮や、動いている被写体に追従してＡＦ処理を行う場合（動きベクトルに基づいてＡＦエリアを動かす場合）や、動いている被写体に追従してデジタルズームを行なう場合（動きベクトルに基づいてトリミング位置を動かす場合）などにも適用してもよい。
【００５８】
（７）また、上記第１の実施の形態においては、ブロックマッチング法において使用される探索範囲の広さを、画質に応じて可変設定するようにしたが、ブロックマッチング法以外の方法であってもよい。つまり、他の方法によって動きベクトルを検出する方法であって、探索範囲と同等の概念を用いて動きベクトルを検出する場合においても、本発明を適用できる。
【００５９】
（８）また、上記第１の実施の形態においては、動きベクトルの大きさと設定されている探索範囲の広さに基づいて、探索範囲を再設定（調整）するようにしたが、探索範囲の調整を行なわなくてもよい。つまり、図２のステップＳ５で、ブレ検出処理終了しないと判断した場合はそのままステップＳ３に戻るようにしてもよい。
【００６０】
（９）また、本発明の動きベクトル検出装置は、デジタルカメラ１に限定されるものではなく、携帯電話、ＰＤＡ、パソコン、デジタルビデオカメラ等でもよく、要は動画データを扱う機能を備えた機器であればよい。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施の形態のデジタルカメラのブロック図である。
【図２】第１の実施の形態のデジタルカメラ１の動作を示すフローチャートである。
【図３】メモリ８に記憶されている探索範囲グラフ化テーブルの様子を示す図ある。
【図４】フレームレートの速さに応じて設定される探索範囲の広さの様子を示す図である。
【図５】第２の実施の形態のデジタルカメラ１の動作を示すフローチャートである。
【図６】ブロックマッチング法を説明するための図である。
【符号の説明】
【００６２】
１      デジタルカメラ
２      撮影レンズ
３      ＣＣＤ
４      垂直ドライバ
５      ＴＧ
６      ユニット回路
７      ＤＭＡ
８      メモリ
９      ＤＭＡ
１０    画像生成部
１１    ＤＭＡ
１２    ＤＭＡ
１３    表示部
１４    ＤＭＡ
１５    圧縮部
１６    ＤＭＡ
１７    フラッシュメモリ
１８    ＣＰＵ
１９    キー入力部
２０    バス
【図１】
2007318292.tif 000003
【図２】
2007318292.tif 000004
【図３】
2007318292.tif 000005
【図４】
2007318292.tif 000006
【図５】
2007318292.tif 000007
【図６】
2007318292.tif 000008