(57)【特許請求の範囲】
【請求項１】
動画像情報を構成する複数の画像フレームのうち、少なくとも何れか一の画像フレームを構成する複数の画像ブロックから、特徴点として所定数の画像ブロックを抽出する特徴点抽出手段と、
前記特徴点抽出手段により抽出された画像ブロックである一の特徴点を中心とする所定範囲を指定する範囲指定手段と、
前記特徴点抽出手段により抽出された前記特徴点を前記一の画像フレームの前後のうちの何れか一方の画像フレームにて追跡して、前記一の画像フレームの全体動きベクトルを算出する全体動きベクトル算出手段と、
前記全体動きベクトル算出手段により算出された前記全体動きベクトルに基づいて、前記動画像の手ぶれ補正を行う手ぶれ補正手段と、
を備える画像処理装置であって、
前記特徴点抽出手段は、前記範囲指定手段で指定された所定範囲からは既に抽出されている画像ブロックである中心の特徴点とは異なる他の特徴点の抽出を行わない
ことを特徴とする画像処理装置。
【請求項２】
前記特徴点抽出手段により抽出された前記一の画像フレームの前記特徴点の数が所定数に達しているか否かを判定する特徴点数判定手段を備え、
前記全体動きベクトル算出手段は、前記特徴点数判定手段により前記特徴点の数が所定数に達していないと判定された前記画像フレームからは前記全体動きベクトルの算出を行わないことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記全体動きベクトル算出手段は、
前記特徴点抽出手段により抽出された複数の前記特徴点の各々の動きベクトルを算出する動きベクトル算出手段と、
前記全体動きベクトルの算出に際して、前記動きベクトル算出手段により算出された前記複数の動きベクトルを小数点以下の値による票割れを考慮して集計する動きベクトル集計手段と、を備えることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
画像処理を行うコンピュータに、
動画像情報を構成する複数の画像フレームのうち、少なくとも何れか一の画像フレームを構成する複数の画像ブロックから、特徴点として所定数の画像ブロックを抽出する機能と、
抽出された画像ブロックである一の特徴点を中心とする所定範囲を指定する機能と、
抽出された前記特徴点を前記一の画像フレームの前後のうちの何れか一方の画像フレームにて追跡して、前記一の画像フレームの全体動きベクトルを算出する機能と、
算出された前記全体動きベクトルに基づいて、前記動画像の手ぶれ補正を行う機能と、
を実現させるためのプログラムであって、
指定された所定範囲からは既に抽出されている画像ブロックである中心の特徴点とは異なる他の特徴点の抽出を行わない
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の手ぶれを補正する画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、デジタルカメラ等の撮像装置として、動画像の撮像により生じた手ぶれを画像処理にて補正する、所謂、手ぶれ補正を行うものが知られている。
手ぶれ補正を行う上で、画像フレームの全体動きベクトルを算出するためには、例えば、細分化した小さなブロック毎に算出した複数の動きベクトルを用いるようになっている。これにより、動く被写体成分などの手ぶれ成分以外の動き成分を排除した、画像フレームに最適な補正成分だけを算出するようになっている。
【０００３】
ところで、細分化した全てのブロックの動きベクトルを算出すると、演算処理負荷が重く、また、算出した動きベクトルに信頼性が低いブロックについては、誤検出や冗長な処理の原因となるので、信頼性の高い動きベクトルを算出できるブロックを選出し、そのブロックにおける動きベクトルを算出することによって、処理負荷を軽減するようになっている。
例えば、図１７に示すように、滑り台２０１や空（背景）２０２のように、のっぺりとした部分（ブロック）は、動きベクトルがなかったり、実際の手ぶれ成分とは異なる動きベクトルを算出してしまう虞がある。
そこで、被写体の中で似たような特徴の絵柄が多数ある場合に、動きベクトルが誤って算出される虞があることを考慮して、動きベクトルの分類（選別）を行う装置が開発されている（例えば、特許文献１参照）。
また、画像フレームの特徴量の多さに基づいて、動きをトラッキングし易いブロックを選択する方法も提案されている。
ここで、特徴量は、例えば、線が交差する部分、模様を含む部分や物体の頂点などの画像として特徴を有する特徴点の所定領域における量を言うものである。この特徴量の算出方法は、画像データに対してフィルタ演算を行うのが一般的であるが、ここでは、Harrisオペレータを用いた方法を例示する。
【０００４】
Harrisオペレータは、以下に示す一般式（１）により表される。
【数１】
0004665737.tif 000002
〔なお、detは、行列式を示し、trは、トレースを示す。また、kは、所定の係数であり、好ましくは、０．０４〜０．０８程度である。fx、fyは、水平、垂直方向の勾配値（微分値）であり、G(・)は、領域内のf値の和を示す。〕
Harrisオペレータによる評価値は、勾配方向に広がり、かつ、勾配が大きい点に対してより大きな値となる。例えば、線による境界部分では大きな値とならず、画素分布に大きな凹凸がある部分で大きな値をとるようになっている。
【特許文献１】特開平７−１７７４２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、Harrisオペレータにより算出された特徴量に基づいて、特徴量の多いブロックを選択して動きベクトルを算出するようにすると、例えば、図１７にあっては、滑り台２０１を滑り降りる子供の部分２０３は、動きベクトルが算出されるブロックとして集中して選択されることとなる。つまり、動きベクトルの算出にあたって、手ぶれ成分ではなく、動く被写体成分に係るブロックが集中して選択されてしまうといった問題がある。
一方、Harrisオペレータによる評価値の低いブロックは、特徴量が少なく動きベクトルの計算自体を誤り易いため、評価値を全く無視してブロックを選択することはできないといった問題もある。
【０００６】
そこで、本発明の課題は、特定の被写体への偏りを回避して全体動きベクトルを算出することができ、これにより、手ぶれ補正を精度良く行うことができる画像処理装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明の画像処理装置（例えば、図１の撮像装置１００等）は、
動画像情報を構成する複数の画像フレーム（例えば、図２の画像フレームＦ等）のうち、少なくとも何れか一の画像フレームを構成する複数の画像ブロックから、特徴点として所定数の画像ブロック（例えば、図５の選択特徴点Ｃ等）を抽出する特徴点抽出手段（例えば、図１の対象ブロック選択部４２等）と、
前記特徴点抽出手段により抽出された一の特徴点を中心とする所定範囲を指定する範囲指定手段（例えば、図１の対象ブロック選択部４２等）と、
前記特徴点抽出手段により抽出された前記特徴点を前記一の画像フレームの前後のうちの何れか一方の画像フレームにて追跡して、前記一の画像フレームの全体動きベクトルを算出する全体動きベクトル算出手段（例えば、図１のぶれ量算出部４４等）と、
前記全体動きベクトル算出手段により算出された前記全体動きベクトルに基づいて、前記動画像の手ぶれ補正を行う手ぶれ補正手段（例えば、図１の手ぶれ補正処理部４等）と、
を備える画像処理装置であって、
前記特徴点抽出手段は、前記範囲指定手段で指定された所定範囲からは既に抽出されている画像ブロックである中心の特徴点とは異なる他の特徴点の抽出を行わない（例えば、図７の第二の選択特徴点Ｃ２等）
ことを特徴としている。
【００１０】
請求項２に記載の発明は、請求項１に記載の画像処理装置において、
前記特徴点抽出手段により抽出された前記一の画像フレームの前記特徴点の数が所定数に達しているか否かを判定する特徴点数判定手段（例えば、図１の対象ブロック選択部４２等）を備え、
前記全体動きベクトル算出手段は、前記特徴点数判定手段により前記特徴点の数が所定数に達していないと判定された前記画像フレームからは前記全体動きベクトルの算出を行わないことを特徴としている。
【００１１】
請求項３に記載の発明は、請求項１又は２に記載の画像処理装置において、
前記全体動きベクトル算出手段は、
前記特徴点抽出手段により抽出された複数の前記特徴点の各々の動きベクトルを算出する動きベクトル算出手段（例えば、図１の動きベクトル検出部４３等）と、
前記全体動きベクトルの算出に際して、前記動きベクトル算出手段により算出された前記複数の動きベクトルを小数点以下の値による票割れを考慮して集計する動きベクトル集計手段（例えば、図１のぶれ量算出部４４等）と、を備えることを特徴としている。
【００１２】
請求項４に記載の発明のプログラムは、
画像処理を行うコンピュータに、
動画像情報を構成する複数の画像フレーム（例えば、図２の画像フレームＦ等）のうち、少なくとも何れか一の画像フレームを構成する複数の画像ブロックから、特徴点として所定数の画像ブロック（例えば、図５の選択特徴点Ｃ等）を抽出する機能と、
抽出された画像ブロックである一の特徴点を中心とする所定範囲を指定する機能と、
抽出された前記特徴点を前記一の画像フレームの前後のうちの何れか一方の画像フレームにて追跡して、前記一の画像フレームの全体動きベクトルを算出する機能と、
算出された前記全体動きベクトルに基づいて、前記動画像の手ぶれ補正を行う機能と、
を実現させるためのプログラムであって、
指定された所定範囲からは既に抽出されている画像ブロックである中心の特徴点とは異なる他の特徴点の抽出を行わない
ことを特徴としている。
【発明の効果】
【００１３】
請求項１に記載の発明によれば、動画像の手ぶれ補正を行う上で、全体動きベクトルの算出に係る画像ブロックである特徴点の抽出において、動画像情報を構成する一の画像フレームから抽出された画像ブロックである一の特徴点を中心とする所定範囲を指定し、指定された所定範囲からは画像ブロックである他の特徴点を抽出しないようにしたので、特徴点を当該画像フレーム内の特定の被写体に偏ることなく所定数抽出することができる。即ち、一の画像フレームにて、特徴量の多い所定の被写体等に集中して特徴点が選択されるといったことがなくなって、当該画像フレーム全体から偏りなく特徴点を選択して抽出することができることとなる。これにより、特定の被写体への偏りを回避して全体動きベクトルを算出することができ、結果として、手ぶれ補正を精度良く行うことができる。
【００１６】
請求項２に記載の発明によれば、請求項１に記載の発明と同様の効果が得られるのは無論のこと、特に、所定数の特徴点が抽出された画像フレームのみ全体動きベクトルを算出することができることから、誤検出される虞のある画像フレームの全体動きベクトルの算出を行わないこととなって、動画像の手ぶれ補正をより適正に行うことができる。
【００１７】
請求項３に記載の発明によれば、請求項１又は２の発明と同様の効果が得られるのは無論のこと、特に、複数の特徴点の動きベクトルを小数点以下の値による票割れを考慮して集計することができることとなって、全体動きベクトルの誤検出を好適に防止することができる。
【００１８】
請求項４に記載の発明によれば、動画像の手ぶれ補正を行う上で、全体動きベクトルの算出に係る画像ブロックである特徴点の抽出において、動画像情報を構成する一の画像フレームから抽出された画像ブロックである一の特徴点を中心とする所定範囲を指定し、指定された所定範囲からは画像ブロックである他の特徴点を抽出しないようにしたので、特徴点を当該画像フレーム内の特定の被写体に偏ることなく所定数抽出することができる。即ち、一の画像フレームにて、特徴量の多い所定の被写体等に集中して特徴点が選択されるといったことがなくなって、当該画像フレーム全体から偏りなく特徴点を選択して抽出することができることとなる。これにより、特定の被写体への偏りを回避して全体動きベクトルを算出することができ、結果として、手ぶれ補正を精度良く行うことができる。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明について、図面を用いて具体的な態様を説明する。ただし、発明の範囲は、図示例に限定されない。
ここで、図１は、本発明を適用した画像処理装置の一実施形態として例示する撮像装置１００の要部構成を示すブロック図である。
【００２０】
撮像装置１００は、例えば、デジタルカメラ等が適用され、撮像された動画像を記録するための符号化標準であるＭＰＥＧ（Moving Picture Experts Group）４等の情報圧縮方式により符号化して記録するとともに、記録された動画像データを読み出して再生するものである（図１０及び図１５参照）。具体的には、撮像装置１００は、例えば、図１に示すように、撮像部１と、映像信号処理部２と、画像メモリ３と、手ぶれ補正処理部４と、エンコード部５と、デコード部６と、記録媒体７と、表示部８と、制御回路９等を備えている。
【００２１】
撮像部１は、被写体の動画像や静止画像の撮像を行うものであり、例えば、撮像レンズ群を通過した被写体像を二次元の画像信号に変換するＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal-oxide Semiconductor）等を備えている。
【００２２】
映像信号処理部２は、撮像部１から出力される動画像等に係る画像信号に対して所定の画像処理を施すものである。具体的には、映像信号処理部２は、例えば、撮像部１から出力される動画像を構成する複数の画像フレームＦ、…（図２参照）の各々に対して所定の画像処理を施すようになっている。
なお、画像処理が施された画像フレームＦは、画像メモリ３に送られて一時的に記憶されるようになっている。
【００２３】
手ぶれ補正処理部（手ぶれ補正手段）４は、例えば、画像メモリ３に記憶される動画像データに対して手ぶれ補正処理を施すものであり、具体的には、評価値計算部４１と、対象ブロック選択部４２と、動きベクトル検出部４３と、ぶれ量算出部４４と、ぶれ補正量算出部４５と、データ切出部４６等を備えている。
【００２４】
評価値計算部４１は、動画像データの記録時や再生時にて、画像メモリ３から所定の画像フレームＦを取得して、当該画像フレームＦを複数の画像ブロックに分けて、各ブロックの特徴量を評価値として計算する評価計算処理を行うものである。
なお、特徴量とは、例えば、線が交差する部分、模様を含む部分や物体の頂点などの画像として特徴を有する特徴点の所定領域における量を言うものとする。
【００２５】
以下に、評価値計算処理について、図２及び図３を参照して詳細に説明する。
ここで、図２及び図３は、評価値計算処理に係る画像フレームＦを模式的に示した図であり、このうち、図３は、画像フレームＦにおけるウインドウＷの移動を模式的に表したものである。なお、図２並びに図４〜図７（後述）にあっては、各ウインドウＷ内の評価値を表す上で、模式的にウインドウＷの中心点に相当する位置を評価点Ｐとして表すものとする。
【００２６】
評価値計算部４１は、例えば、Harrisオペレータにより評価値を計算するものであり、具体的には、画像フレームＦ上に所定の大きさ（例えば、１６×１６画素）のウインドウＷを設定して、当該ウインドウＷ内のHarrisオペレータの評価値を計算するようになっている（図２参照）。
即ち、評価値計算部４１は、ウインドウＷを左上隅部から１／２ウインドウ幅ずつ右に移動させながら、当該ウインドウＷ内のHarrisオペレータの評価値を順次計算していく（図３参照）。そして、ウインドウＷが右端まで到達すると、評価値計算部４１は、ウインドウＷを左端に戻し、１／２ウインドウ下方に移動させて、上記と同様に右端までウインドウＷを移動させながら評価値を計算する処理を行う。そして、評価値計算部４１は、これらの処理をウインドウＷが画像フレームＦの右下隅部まで移動するまで行う。
【００２７】
対象ブロック選択部４２は、評価値計算部４１による画像フレームＦの評価の結果に基づいて、当該画像フレームＦから動きベクトル検出部４３による動きベクトルの検出に適したブロックを選択するブロック選択処理を行うものである。
【００２８】
以下に、ブロック選択処理について、図４〜図７を参照して詳細に説明する。
ここで、図４〜図７は、ブロック選択処理に係る画像フレームＦを模式的に示した図である。このうち、図５は、画像フレームＦにて、評価値の最も高い評価点Ｐを第一の選択特徴点Ｃ１として選択した状態を表し、図６は、選択特徴点Ｃを中心とする非選択範囲Ｒを指定した状態を表し、図７は、非選択範囲Ｒ内の評価点Ｐを除いて第二の選択特徴点Ｃ２を選択した状態を表すものである。
【００２９】
対象ブロック選択部４２は、例えば、評価値計算部４１から出力されて入力される画像フレームＦの各々について、画像フレームＦの評価点Ｐを順次比較していき、その中でHarrisオペレータによる評価値が最大である評価点Ｐ（例えば、上から４行目、左から７列目の評価点Ｐ等）を第一の選択特徴点（ブロック）Ｃ１として選択する（図４及び図５参照）。
また、対象ブロック選択部４２は、選択した第一の選択特徴点Ｃ１を中心とする所定範囲（例えば、一辺が評価点Ｐ間の数倍程度からなる領域）を評価点Ｐの選択を行わない非選択範囲Ｒとして指定する（図６参照）。そして、対象ブロック選択部４２は、非選択範囲Ｒ内の評価点Ｐを選択特徴点Ｃの選択対象から除く処理を行った後、残った評価点Ｐの中で評価値が最大である評価点Ｐ（例えば、上から６行目、左から１４列目の評価点Ｐ等）を第二の選択特徴点Ｃ２として選択する（図７参照）。その後、第一の選択特徴点Ｃ１に対する処理と略同様の処理を順次繰り返して行う。
このように、対象ブロック選択部４２は、特徴点抽出手段として、一の画像フレームＦにて、抽出される一の選択特徴点Ｃを含む非選択範囲Ｒ内からは他の特徴点の抽出を行わないことによって、当該一の画像フレームＦ内から特定の被写体、特に、特徴量の多い動く被写体に偏ることなく選択特徴点Ｃを所定数抽出するようになっている。
【００３０】
さらに、対象ブロック選択部４２は、特徴点数判定手段として、上記のようにして抽出される選択特徴点Ｃの数が所定数に達しているか否かを判定するようになっている。
ここで、選択特徴点Ｃの数が所定数に達したと判定されると、動きベクトル検出部４３に移行して、当該動きベクトル検出部４３にて、動きベクトル検出処理が行われる。
【００３１】
動きベクトル検出部４３は、動きベクトル算出手段として、例えば、動画像を構成する複数の画像フレームＦ、…のうち、選択特徴点Ｃの数がともに所定数に達している二つの隣接画像フレームＦ、Ｆを用い（図８（ａ）参照）、過去の画像フレームＦを参照して現在の画像フレームＦの複数の選択特徴点Ｃの各々の動きベクトルを算出するようになっている。
具体的には、動きベクトル検出部４３は、例えば、現画像フレームにて、参照画像フレームの選択特徴点（ブロック）Ｃとの誤差が最小となるブロック（特徴点）を追跡して、当該ブロックの水平方向及び垂直方向の移動量を表すベクトルを動きベクトルとして検出するようになっている。
【００３２】
ぶれ量算出部４４は、動きベクトル検出部４３により検出された画像フレームＦを構成する複数の特徴点の動きベクトルに基づいて、動画像を構成する複数の画像フレームＦ、…の各々の全体動きベクトル（ぶれ量）を算出する全体動きベクトル算出処理を行うものである。
【００３３】
以下に、全体動きベクトル算出処理について、図８及び図９を参照して詳細に説明する。
ここで、図８（ａ）及び図８（ｂ）は、全体動きベクトル算出処理に係る複数の画像フレームＦ、…を模式的に示した図である。また、図９は、全体動きベクトル算出処理に係る動きベクトルの投票箱Ｂを模式的に示した図である。
なお、図８（ａ）及び図８（ｂ）にあっては、全体動きベクトルを白抜きの矢印で表し、図８（ｂ）にあっては、２分割された全体動きベクトルを破線で表す。また、複数の画像フレームＦ、…のうち、選択特徴点Ｃの数が所定数に達しているものには「○」を付し、所定数に達していないものには「×」を付すものとする。
【００３４】
ぶれ量算出部４４は、動きベクトル検出部４３により動きベクトルが検出された画像フレームＦについては、投票箱Ｂを用いて選択特徴点Ｃの動きベクトルを重複投票していき、投票数の最も多い動きベクトルを全体動きベクトルとして算出するようになっている（図９参照）。
具体的には、例えば、図９に示すように、一の選択特徴点Ｃの動きベクトルが（２，−１）であった場合には、この（２，−１）に加えて、その周囲の（１，−２）、（２，−２）、（３，−２）、（１，−１）、（３，−１）、（１，０）、（２，０）、（３，０）にも重複して投票する。そして、全ての選択特徴点Ｃについて、この投票を終えた時点で最も多い票を得た特徴量の値を当該画像フレームＦの全体動きベクトルとするようになっている。これにより、動きベクトルの検出精度限界による誤動作を防止することができるようになっている。
つまり、動きベクトルの検出は、ピクセル単位で行うため、例えば、１０個の動きベクトルが（０，１．５）に近い値を持っていた場合、これらは（０，１）と（０，２）に概ね５票ずつ投票されることとなる。ここで、仮に、同じ画像フレームＦにて、例えば、６個の動きベクトルが（２，１）に近い値を持っていた場合、票の分散は生じず（２，１）に６票投票されることとなるため、実際には、（０，１．５）が１０個あるため、この値に近い（０，１）若しくは（０，２）が全体動きベクトルとして選ばれるべきであるにも拘わらず、当該画像フレームＦの代表ベクトル（全体動きベクトル）は、（２，１）となってしまう虞がある。
そこで、本実施形態にあっては、ぶれ量算出部４４は、動きベクトル集計手段として、動きベクトルの近傍の投票箱Ｂに対しても重複して投票を行うことで、複数の特徴点の動きベクトルを小数点以下の値による票割れを考慮して集計することができることとなって、全体動きベクトルの誤検出を防止することができる。
【００３５】
また、選択特徴点Ｃの数が所定数に達していない未達画像フレームＦ０が存在する場合については、動きベクトル検出部４３は、未達画像フレームＦ０より前の選択特徴点Ｃの数が所定数に達している所定の隣設画像フレームＦ１を参照画像フレーム、未達画像フレームＦ０より後の選択特徴点Ｃの数が所定数に達している隣設画像フレームＦ１を現画像フレームとして現画像フレーム上の複数の選択特徴点Ｃの各々の動きベクトルを算出するようになっている（図８（ｂ）参照）。
そして、ぶれ量算出部４４は、隣設画像フレームＦ１の全体動きベクトルの算出を上記と同様に投票箱Ｂによる重複投票により行うようになっている。
このようにして、算出される隣設画像フレームＦ１の全体動きベクトルは、当該隣設画像フレームＦ１と未達画像フレームＦ０の両方を加味した分であることから、２分割することで各画像フレームＦの全体動きベクトルとするようになっている。
なお、ｍ〔ｍ≧２〕個以上の連続する未達画像フレームＦ０が隣設画像フレームＦ１により挟まれる場合には、算出される全体動きベクトルを（ｍ＋１）の値で除算することにより、未達画像フレームＦ０の全体動きベクトルを各々算出することができる。
【００３６】
ぶれ補正量算出部４５は、例えば、ぶれ量算出部４４により算出された複数の画像フレームＦ、…の各々のぶれ量に基づいて、各画像フレームＦのぶれ補正量を算出するものである。
【００３７】
データ切出部４６は、動画像の記録時及び再生時において、ぶれ補正量算出部４５にて算出された所定の画像フレームＦのぶれ補正量に基づいて、当該画像フレームＦの画像領域を表示部８の表示領域にあわせて切り出す処理を行うものである。具体的には、データ切出部４６は、例えば、現画像フレームのぶれ補正量に基づいて、当該現画像フレームに先行する参照画像フレームに対してぶれ補正量の分だけ現画像フレームが移動するように、その画像領域を切り出すようになっている。
なお、切り出された画像フレームＦは、動画像データの記録（撮像）時には、表示部８及びエンコード部５に対して出力され、また、動画像データの再生時には、表示部８に対して出力されるようになっている。
【００３８】
エンコード部５は、例えば、ＭＰＥＧ４等の動き補償を行う情報圧縮方式により動画像データを符号化して符合化動画像データを作成するものである。具体的には、エンコード部５は、例えば、データ切出部４６から出力され入力された動画像データに対して、動画像を構成する画像フレームＦ間の時間的な相関関係を利用して符号量を削減するＭＣ（Motion Compensation；動き補償）や、各画像フレームＦの空間的な相関関係を利用して符号量を削減するＤＣＴ（Discrete Cosine Transform；離散コサイン変換）等の情報圧縮符号化処理を実行するようになっている。
また、エンコード部５は、例えば、ＤＣＴにより算出されるＤＣＴ変換係数を視覚特性を考慮した所定のＱ値で除算する量子化を行うようにしても良い。
【００３９】
デコード部６は、動画像の再生に際して、記録媒体７に記録される符号化動画像データを復号して、複数の画像フレームＦ、…が所定の順序で並んだビットストリーム（動画像データ）を作成するものである。具体的には、復号部４は、例えば、符号化動画像データを復号して量子化係数や動きベクトルを算出し、さらに、量子化係数をＤＣＴ係数に変換する逆量子化を行い、また、ＤＣＴ係数に基づいて８×８画素のブロックを単位として画素値（画素値間の差分）を算出する逆ＤＣＴを行い、さらに、画素値間の差分と動きベクトルにより補償されたブロックを加算することにより、ビットストリームを復号するようになっている。
【００４０】
表示部８は、例えば、液晶表示装置等により構成され、データ切出部４６から出力され入力された手ぶれ補正後の動画像データに基づいて、所定の動画像を表示するようになっている。
なお、表示部８は、例えば、手ぶれ補正処理前の動画像データも入力可能に構成され、当該動画像データに基づいて、手ぶれ補正処理前の動画像を表示することができるようにしても良い。
【００４１】
記録媒体７は、例えば、エンコード部５にて符号化された符合化動画像データを記録するものである。
ここで、符号化動画像データには、例えば、記録時に手ぶれ補正処理が施されずに符号化された動画像データも含まれ、この動画像データは、再生時に手ぶれ補正処理が行われるようになっている（再生時手ぶれ補正処理）。
なお、記録媒体７は、例えば、装置本体と一体となって不揮発性の内蔵メモリであっても良いし、着脱自在な不揮発性のメモリカード等であっても良い。
【００４２】
制御回路９は、例えば、映像信号処理部２、画像メモリ３、データ切出部４６、エンコード部５、デコード部６、記録媒体７、表示部８等に接続され、これら各部間のデータの受渡を制御するようになっている。
【００４３】
次に、記録時手ぶれ補正処理について、図１０〜図１４を参照して説明する。
ここで、図１０は、記録時手振れ補正処理における画像データの流れを模式的に示した図であり、図１１は、記録時手ぶれ補正処理に係る動作の一例を示すフローチャートである。
【００４４】
撮像部１にて被写体の動画像の撮像が行われると、映像信号処理部２により画像処理された動画像データが画像メモリ３に一時的に記憶される（図１０参照）。
そして、図１１に示すように、評価値計算部４１は、画像メモリ３から動画像データを構成する所定の画像フレームＦを取得して（ステップＳ１）、当該画像フレームＦについて評価値計算処理を行う（ステップＳ２）。
【００４５】
以下に、評価値計算処理について、図１２を参照して詳細に説明する。ここで、図１２は、評価値計算処理に係る動作の一例を示すフローチャートである。
図１２に示すように、評価値計算部４１は、先ず、画像フレームＦを複数の画像ブロックに分けて、当該画像フレームＦ上に所定の大きさのウインドウＷを設定する（ステップＳ２１；図２参照）。続けて、評価値計算部４１は、設定されたウインドウＷ内のHarrisオペレータの評価値を計算する（ステップＳ２２）。
次に、評価値計算部４１は、画像フレームＦの終端、即ち、右下隅部に対応するウインドウＷ内の評価を行ったか否かを判定する（ステップＳ２３）。ここで、画像フレームＦの終端まで評価を行っていないと判定されると（ステップＳ２３；ＮＯ）、評価値計算部４１は、画像フレームＦ上のウインドウＷを所定方向に移動させて（ステップＳ２４；図３参照）、ステップＳ２２に移行した後、新たなウインドウＷ内のHarrisオペレータの評価値を計算する処理を行う。
一方、ステップＳ２３にて、画像フレームＦの終端まで評価を行ったと判定されると（ステップＳ２３；ＹＥＳ）、評価値計算処理を終了する。
【００４６】
評価値計算処理が終了すると、評価値計算部４１による画像フレームＦの評価の結果に基づいて、対象ブロック選択部４２は、当該画像フレームＦについてブロック選択処理を行う（ステップＳ３；図１１参照）。
【００４７】
以下に、ブロック選択処理について、図１３を参照して詳細に説明する。ここで、図１３は、ブロック選択処理に係る動作の一例を示すフローチャートである。
図１３に示すように、対象ブロック選択部４２は、評価値計算部４１から出力されて入力される各画像フレームＦについて、評価すべきブロック（評価点Ｐ）が残っている場合には（ステップＳ３１；ＹＥＳ）、ブロックを順次比較していき、その中でHarrisオペレータによる評価値が最大であるブロック（例えば図５にあっては、上から４行目、左から７列目の評価点Ｐ等）を選択特徴点Ｃとして選択する（ステップＳ３２；図４及び図５参照）。続けて、対象ブロック選択部４２は、選択された選択特徴点Ｃの評価値が予め指定された所定の閾値以上であるか否かを判定する（ステップＳ３３）。
ここで、選択特徴点Ｃの評価値が所定の閾値以上であると判定されると（ステップＳ３３；ＹＥＳ）、対象ブロック選択部４２は、選択した選択特徴点Ｃを中心とする非選択範囲Ｒを指定して、当該非選択範囲Ｒ内の評価点Ｐを選択特徴点Ｃの選択対象から除外する処理を行う（ステップＳ３４；図６及び図７参照）。
なお、ステップＳ３３にて、選択特徴点Ｃの評価値が所定の閾値以上ではないと判定されると（ステップＳ３３；ＮＯ）、対象ブロック選択部４２は、ブロック選択処理を終了する。
【００４８】
次に、対象ブロック選択部４２は、選択された選択特徴点（ブロック）Ｃの数が所定数に達したか否かを判定する（ステップＳ３５）。
ここで、選択特徴点Ｃの数が所定数に達していないと判定されると（ステップＳ３５；ＮＯ）、対象ブロック選択部４２は、ステップＳ３１に移行して、それ以降の処理の実行を制御する。
一方、選択特徴点Ｃの数が所定数に達していると判定されると（ステップＳ３５；ＹＥＳ）、対象ブロック選択部４２は、選択特徴点（ブロック）Ｃの数をマーク（記憶）して（ステップＳ３６）、ブロック選択処理を終了する。
【００４９】
ブロック選択処理が終了すると、対象ブロック選択部４２は、ブロック選択処理が行われた画像フレームＦについて、選択された選択特徴点（ブロック）Ｃの数が所定数に達しているか否かを判定する（ステップＳ４；図１１参照）。
ここで、対象ブロック選択部４２により選択特徴点Ｃの数が所定数に達していないと判定されると（ステップＳ４；ＮＯ）、ステップＳ１に移行して、他の画像フレームＦについて、それ以降の処理が行われる。
一方、対象ブロック選択部４２により選択特徴点Ｃの数が所定数に達していると判定されると（ステップＳ４；ＹＥＳ）、当該画像フレームＦについて全体動きベクトル算出処理が行われる（ステップＳ５）。
【００５０】
以下に、全体動きベクトル算出処理について、図１４を参照して詳細に説明する。ここで、図１４は、全体動きベクトル算出処理に係る動作の一例を示すフローチャートである。
なお、以下に説明する全体動きベクトル算出処理にあっては、便宜的に、現画像フレームに対して、一つ前の画像フレームＦ若しくは二つ前の画像フレームＦの何れかを参照画像フレームとして設定するものとする（図８参照）。このとき、二つ前の画像フレームＦは、選択特徴点Ｃの数が所定数に達しているものとする。
【００５１】
図１４に示すように、動きベクトル検出部４３は、先ず、全体動きベクトルの算出に係る現画像フレーム（例えば、図８（ａ）における「ｎ−１」番目や「ｎ＋２」番目の画像フレームＦ、或いは、図８（ｂ）における「ｎ＋１」番目の画像フレームＦ等）の一つ前の画像フレームＦの選択特徴点Ｃの数が所定数に達しているか否かを判定する（ステップＳ５１）。
ここで、選択特徴点Ｃの数が所定数に達していると判定されると（ステップＳ５１；ＹＥＳ）、動きベクトル検出部４３は、一つ前の画像フレームＦ（前画像フレーム；例えば、図８（ａ）における「ｎ−２」番目や「ｎ＋１」番目の画像フレームＦ）を参照画像フレームとして設定する（ステップＳ５２；図８（ａ）参照）。
一方、選択特徴点Ｃの数が所定数に達していないと判定されると（ステップＳ５１；ＮＯ）、動きベクトル検出部４３は、二つ前の画像フレームＦ（前前画像フレーム；例えば、図８（ｂ）における「ｎ−１」番目の画像フレームＦ）を参照画像フレームとして設定する（ステップＳ５３）。
【００５２】
続けて、動きベクトル検出部４３は、現画像フレームと参照画像フレームを用いて、現画像フレームの複数の選択特徴点（ブロック）Ｃ、…の各々の動きベクトルを算出する（ステップＳ５４）。
【００５３】
次に、ぶれ量算出部４４は、現画像フレームについて複数の選択特徴点Ｃの動きベクトルを所定の投票箱Ｂを用いて重複投票する（ステップＳ５５）。
その後、ぶれ量算出部４４は、投票数の最も多い動きベクトルを全体動きベクトルとして算出する（ステップＳ５６）。
【００５４】
そして、ぶれ量算出部４４は、前の画像フレームＦの選択特徴点Ｃの数が所定数に達しているか否かを判定する（ステップＳ５７）。
ここで、選択特徴点Ｃの数が所定数に達していると判定されると（ステップＳ５７；ＹＥＳ）、ぶれ量算出部４４は、ステップＳ５６にて算出された全体動きベクトルを当該現画像フレーム（例えば、図８（ａ）における「ｎ−１」番目や「ｎ＋２」番目の画像フレームＦ）の全体動きベクトルとして設定して、処理を終了する。
一方、選択特徴点Ｃの数が所定数に達していないと判定されると（ステップＳ５７；ＮＯ）、ぶれ量算出部４４は、算出された全体動きベクトルを２分割して、その値を現画像フレーム及び前画像フレーム（例えば、図８（ｂ）における「ｎ」或いは「ｎ＋１」番目の画像フレームＦ）の各々の全体動きベクトルとして設定する（ステップＳ５８）。
【００５５】
全体動きベクトル算出処理の終了後、処理対象となる他の画像フレームＦが画像メモリ３に存している場合には（ステップＳ６；ＹＥＳ）、ステップＳ１に移行して、それ以降の処理が行なわれる。
一方、処理対象となる他の画像フレームＦが画像メモリ３に存していないと判定されると（ステップＳ６；ＮＯ）、ぶれ補正量算出部４５は、ぶれ量算出部４４にて算出された全体動きベクトルに基づいて、各画像フレームＦのぶれ補正量を算出し、続けて、データ切出部４６は、算出されたぶれ補正量に基づいて、所定の画像領域を切り出して当該画像フレームＦの手ぶれ補正を行う（ステップＳ７）。
その後、手ぶれ補正された画像フレームＦからなる動画像データは、表示部８に表示されるとともに、エンコード部５にて符号化された後、符号化動画像データとして記録媒体７に記録される。
【００５６】
次に、再生時手ぶれ補正処理について、図１５を参照して説明する。ここで、図１５は、再生時手ぶれ補正処理における画像データの流れを模式的に示した図である。
なお、以下に説明する再生時手ぶれ補正処理にあっては、撮像記録時に手ぶれ補正処理が施されずに符号化された符号化動画像データが記録媒体７に記録されているものとする。
【００５７】
図１５に示すように、再生時手ぶれ補正処理にあっては、先ず、記録媒体７に記録されている符号化動画像データがデコード部６により取得されて、復号されることで複数の画像フレームＦ、…からなるビットストリーム（動画像データ）が作成される。ここで、作成されたビットストリームは、画像メモリ３に一時的に記憶される。
【００５８】
そして、評価値計算部４１は、記録時手ぶれ補正処理におけるステップＳ１と同様に、画像メモリ３からビットストリームを構成する所定の画像フレームＦを順次取得していく。
そして、評価値計算部４１、対象ブロック選択部４２、動きベクトル検出部４３、ぶれ量算出部４４、ぶれ補正量算出部４５、データ切出部４６等の各部は、記録時手ぶれ補正処理と略同様に、評価値計算処理（ステップＳ２）、ブロック選択処理（ステップＳ３）、選択特徴点Ｃの数の判定（ステップＳ４）、全体動きベクトル算出処理（ステップＳ５）、処理対象となる画像フレームＦの有無の判定（ステップＳ６）等を順次行う。
【００５９】
そして、データ切出部４６は、手ぶれ補正した複数の画像フレームＦ、…からなる動画像データを順次表示部８に出力していき、表示部８に動画像が表示される。
【００６０】
以上のように、本実施形態の撮像装置１００によれば、動画像の手ぶれ補正を行う上で、全体動きベクトルの算出に係る特徴点の抽出において、動画像データを構成する一の画像フレームＦにて、抽出される所定の選択特徴点Ｃを含む非選択範囲Ｒ内からは他の評価点Ｐの抽出を行わないようにすることで、当該一の画像フレームＦから特定の被写体に偏らせることなく特徴点を適正に所定数抽出することができる。つまり、一の画像フレームＦにて、特徴量の多い動く被写体成分などに集中して特徴点が選択されるといったことがなくなって、当該画像フレームＦ全体から偏りなく特徴点を選択して抽出することができることとなる。
これによって、特定の被写体への偏りを回避して全体動きベクトルを算出することができることとなり、結果として、動画像の手ぶれ補正を精度良く行うことができる。
【００６１】
さらに、特徴点の抽出において、所定数の特徴点が抽出された画像フレームＦのみ全体動きベクトルを算出するので、誤検出される虞のある画像フレームＦの全体動きベクトルの算出を行わないこととなって、動画像の手ぶれ補正をより適正に行うことができる。
【００６２】
なお、本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において、種々の改良並びに設計の変更を行っても良い。
例えば、上記実施形態では、画像フレームＦから一の選択特徴点Ｃを選択した後は、当該選択特徴点Ｃの周囲からは他の特徴点の抽出を行わないようにすることで、画像フレームＦ内の特定の被写体に偏ることなく特徴点の抽出を行うようにしたが、特徴点の抽出方法はこれに限られるものではない。
即ち、例えば、変形例１の撮像装置にあっては、画像フレームＦ２を複数のブロックに分割して、数個〜数十個からブロックなる領域（例えば、８０×８０画素程度）Ｓを設定し、各領域Ｓ毎に抽出される特徴点の上限を設定するようにしても良い（図１６参照）。即ち、一の画像フレームＦ２を構成する複数の画像ブロック毎に、それぞれから抽出される特徴点の数を略一定とすることによって、画像フレームＦ２内の特定の被写体に対する偏りを回避することができるようになっている。
これにより、一の画像フレームＦ２から特定の被写体に偏らせることなく特徴点を適正に抽出することができることとなって、特定の被写体への偏りを回避して全体動きベクトルを適正に算出することができる。
【００６３】
また、上記実施形態では、再生時手ぶれ補正処理にて、撮像記録時に手ぶれ補正処理が施されずに記録された符号化動画像データを用いるようにしたが、手ぶれ補正処理に係る動画像データは、これに限られるものではなく、例えば、他の撮像装置や画像処理装置にて記録されて着脱自在な記録媒体７を介して当該撮像装置１００が取得した動画像データであっても良い。
これにより、他の撮像装置や画像処理装置にて手ぶれ補正処理が施されることなく取得された動画像データであっても、当該撮像装置１００を用いることによって、手ぶれ補正処理を適正に行うことができることとなり、より魅力的な撮像装置１００を提供することができる。
【００６４】
加えて、上記実施形態では、本発明に係る画像処理装置として、画像の撮像及び撮像された静止画像や動画像を表示（再生）する撮像装置１００を例示したが、これに限られるものではなく、少なくとも動画像の撮像後の所定の画像処理を行うことができる装置であれば如何なるものであっても良い。例えば、画像処理装置としてのパーソナルコンピュータ（ＰＣ；図示略）等に動画ファイルを取り込み、当該ＰＣによる所定のプログラムの実行に基づいて、特徴点の抽出処理、全体動きベクトルの算出処理及び動画像の手ぶれ補正処理等を実施することにより、本発明を実現するようにしても良い。
【図面の簡単な説明】
【００６５】
【図１】本発明を適用した画像処理装置の一実施形態として例示する撮像装置の要部構成を示すブロック図である。
【図２】図１の撮像装置による評価値計算処理に係る画像フレームを模式的に示した図である。
【図３】図２の評価値計算処理に係る画像フレームを模式的に示した図である。
【図４】図１の撮像装置によるブロック選択処理に係る画像フレームを模式的に示した図である。
【図５】図４のブロック選択処理に係る画像フレームを模式的に示した図である。
【図６】図４のブロック選択処理に係る画像フレームを模式的に示した図である。
【図７】図４のブロック選択処理に係る画像フレームを模式的に示した図である。
【図８】図１の撮像装置による全体動きベクトル算出処理に係る複数の画像フレームを模式的に示した図である。
【図９】図８の全体動きベクトル算出処理に係る動きベクトルの投票箱を模式的に示した図である。
【図１０】図１の撮像装置による記録時手振れ補正処理における画像データの流れを模式的に示した図である。
【図１１】図１０の記録時手振れ補正処理に係る動作の一例を示すフローチャートである。
【図１２】図１０の記録時手振れ補正処理における評価値計算処理に係る動作の一例を示すフローチャートである。
【図１３】図１０の記録時手振れ補正処理におけるブロック選択処理に係る動作の一例を示すフローチャートである。
【図１４】図１０の記録時手振れ補正処理における全体動きベクトル算出処理に係る動作の一例を示すフローチャートである。
【図１５】図１の撮像装置による再生時手ぶれ補正処理における画像データの流れを模式的に示した図である。
【図１６】変形例１の撮像装置による特徴点抽出処理に係る画像フレームを模式的に示した図である。
【図１７】撮像装置により撮像される被写体を動画像を模式的に示した図である。
【符号の説明】
【００６６】
１００    撮像装置（画像処理装置）
４        手ぶれ補正処理部（手ぶれ補正手段）
４２      対象ブロック選択部（特徴点抽出手段、特徴点数判定手段）
４３      動きベクトル検出部（動きベクトル算出手段）
４４      ぶれ量算出部（全体動きベクトル算出手段、動きベクトル集計手段）
Ｂ        投票箱
Ｆ        画像フレーム
Ｒ        非選択範囲
Ｗ        ウインドウ
【図１】
0004665737.tif 000003
【図２】
0004665737.tif 000004
【図３】
0004665737.tif 000005
【図４】
0004665737.tif 000006
【図５】
0004665737.tif 000007
【図６】
0004665737.tif 000008
【図７】
0004665737.tif 000009
【図８】
0004665737.tif 000010
【図９】
0004665737.tif 000011
【図１０】
0004665737.tif 000012
【図１１】
0004665737.tif 000013
【図１２】
0004665737.tif 000014
【図１３】
0004665737.tif 000015
【図１４】
0004665737.tif 000016
【図１５】
0004665737.tif 000017
【図１６】
0004665737.tif 000018
【図１７】
0004665737.tif 000019