(57)【要約】【課題】  精度を落とさずに少ない計算量で動きベクトルを検出する。【解決手段】  参照フレームを基準とする探索フレームの動きベクトルを算出する動きベクトル検出装置であって、参照フレーム内の参照代表点と、参照代表点に対応する探索フレーム内の探索代表点及び探索代表点を囲む密領域にある第１の複数の画素のうちの第２の複数の画素との間の相関関係を示す第１の複数の相関値を算出する第１の相関値算出部と、参照代表点と、密領域を囲む疎領域にある第３の複数の画素のうちの第４の複数の画素であって、第３の複数の画素の個数に対する第４の複数の画素の個数の比率が、第１の複数の画素の個数に対する第２の複数の画素の個数の比率より小さい第４の複数の画素との間の相関関係を示す第２の複数の相関値を算出する第２の相関値算出部と、第１の複数の相関値及び第２の複数の相関値で相関が最も強い画素から動きベクトルを決定する。【選択図】      図４
2007034570.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像を表す参照フレーム及び当該参照フレームに時間的に先行又は後続する探索フレームであって第２の画像を表す当該探索フレームについて、前記第１の画像を基準とする前記第２の画像の動き量である動きベクトルを算出する動きベクトル検出装置であって、
前記参照フレーム内の少なくとも１つ以上の任意な画素である参照代表点と、当該参照代表点に対応する前記探索フレーム内の画素である探索代表点及び当該探索代表点を囲む領域である密領域にある第１の複数の画素のうちの第２の複数の画素との間の相関関係を示す第１の複数の相関値を算出する第１の相関値算出部と、
前記１つ以上の参照代表点と、前記密領域を囲む領域である疎領域にある第３の複数の画素のうちの第４の複数の画素であって、当該第３の複数の画素の個数に対する当該第４の複数の画素の個数の比率が、前記第１の複数の画素の個数に対する前記第２の複数の画素の個数の比率より小さい前記第４の複数の画素との間の相関関係を示す第２の複数の相関値を算出する第２の相関値算出部と、
前記第１の複数の相関値及び前記第２の複数の相関値のうち、前記参照代表点との相関が最も強いことを示す相関値の画素である最大相関値画素の位置から前記動きベクトルを決定する動きベクトル決定部とを有することを特徴とする動きベクトル検出装置。
【請求項２】
請求項１に記載の動きベクトル検出装置であって、
前記疎領域は、前記第４の複数の画素のうちの一つ以上の画素と、前記第３の複数の画素のうち前記第４の複数の画素以外の第５の複数の画素のうちの一つ以上の画素との組み合わせが、任意の一の方向に沿って繰り返されていることを特徴とする動きベクトル検出装置。
【請求項３】
請求項１に記載の動きベクトル検出装置であって、
前記動きベクトル決定部は、前記第４の複数の画素の中に前記最大相関値画素があるときは、前記第２の複数の画素又は前記第４の複数の画素のうち、前記最大相関値画素に隣接する１つ以上の画素である第１の１つ以上の隣接画素の位置及び相関値と、前記最大相関値画素の位置及び相関値とを用いて、前記最大相関値画素の位置、又は前記最大相関値画素と当該第１の１つ以上の隣接画素との間にある画素の位置から前記動きベクトルを決定することを特徴とする動きベクトル検出装置。
【請求項４】
請求項３に記載の動きベクトル検出装置であって、
前記動きベクトル決定部は、前記第４の複数の画素の中に前記最大相関値画素があるときは、当該第１の１つ以上の隣接画素のうち、前記最大相関値画素からの距離が所定の距離にあり、相関値が最も強い画素である最大隣接画素の位置及び相関値と、前記第２の複数の画素又は前記第４の複数の画素のうち、前記最大相関値画素と当該最大隣接画素とに隣接する画素である第２の１つ以上の隣接画素の位置及び相関値と、前記最大相関値画素の位置及び相関値と、を用いて、前記最大相関値画素の位置、又は前記最大相関値画素と当該最大隣接画素との間の画素の位置から前記動きベクトルを決定することを特徴とする動きベクトル検出装置。
【請求項５】
請求項４に記載の動きベクトル検出装置であって、
動きベクトル決定部は、前記最大隣接画素と前記第２の１つ以上の隣接画素のうち、前記最大相関値画素との相関値の差の絶対値が所定の値より大きくなる画素が所定の数以上ある場合は、前記最大相関値画素と前記最大隣接画素の間にある画素の位置から前記動きベクトルを決定し、
前記最大相関値画素との相関値の差の絶対値が当該所定の値より大きくなる画素が当該所定の数より小さい場合は、前記最大相関値画素の位置から前記動きベクトルを決定することを特徴とする動きベクトル検出装置。
【請求項６】
請求項４に記載の動きベクトル検出装置であって、
前記動きベクトル決定部は、前記最大隣接画素が２つ以上ある場合に、前記最大相関値画素の位置から前記動きベクトルを決定することを特長とする動きベクトル検出装置。
【請求項７】
第１の画像を表す参照フレーム及び当該参照フレームに時間的に先行又は後続する探索フレームであって第２の画像を表す当該探索フレームについて、前記第１の画像を基準とする前記第２の画像の動き量である動きベクトルを算出する動きベクトル検出装置であって、
前記参照フレーム内の少なくとも１つ以上の任意な画素である参照代表点と、当該参照代表点に対応する前記探索フレーム内の画素である探索代表点及び当該探索代表点を囲む領域である疎領域にある第３の複数の画素のうちの当該第３の複数の画素の個数よりも少ない第４の複数の画素との間の相関関係を示す第２の複数の相関値を算出する第２の相関値算出部と、
前記第２の複数の相関値のうち、前記参照代表点との相関が最も強いことを示す相関値の画素である最大相関値画素の位置から前記動きベクトルを決定する動きベクトル決定部とを有し、
前記疎領域は、前記第４の複数の画素のうちの一つ以上の画素と、当該第３の複数の画素のうち前記第４の複数の画素以外の第５の複数の画素のうちの一つ以上の画素との組み合わせが、任意の一の方向に沿って繰り返され、
前記動きベクトル決定部は、前記第４の複数の画素のうち、前記最大相関値画素に隣接する１つ以上の画素である第１の１つ以上の隣接画素であって、前記最大相関値画素からの距離が所定の距離にある当該第１の１つ以上の隣接画素のうち、相関値が最も強い画素である最大隣接画素の位置及び相関値と、前記第４の複数の画素のうち、前記最大相関値画素と当該最大隣接画素とに隣接する第２の１つ以上の隣接画素の位置及び相関値と、前記最大相関値画素の位置及び相関値と、を用いて、前記最大相関値画素の位置、又は前記最大相関値画素と当該最大隣接画素との間の画素の位置から前記動きベクトルを決定することを特徴とする動きベクトル検出装置。
【請求項８】
第１の画像を表す参照フレーム及び当該参照フレームに時間的に先行又は後続する探索フレームであって第２の画像を表す当該探索フレームについて、前記第１の画像を基準とする前記第２の画像の動き量である動きベクトルを算出する動きベクトル検出方法であって、
前記参照フレーム内の少なくとも１つ以上の任意な画素である参照代表点と、当該参照代表点に対応する前記探索フレーム内の画素である探索代表点及び当該探索代表点を囲む領域である密領域にある第１の複数の画素のうちの第２の複数の画素との間の相関関係を示す第１の複数の相関値を算出する第１の相関値算出工程と、
前記１つ以上の参照代表点と、前記密領域を囲む領域である疎領域にある第３の複数の画素のうちの第４の複数の画素であって、当該第３の複数の画素の個数に対する当該第４の複数の画素の個数の比率が、前記第１の複数の画素の個数に対する前記第２の複数の画素の個数の比率より小さい前記第４の複数の画素との間の相関関係を示す第２の複数の相関値を算出する第２の相関値算出工程と、
前記第１の複数の相関値及び前記第２の複数の相関値のうち、前記参照代表点との相関が最も強いことを示す相関値の画素である最大相関値画素の位置から前記動きベクトルを決定する動きベクトル決定工程とを有し、
前記疎領域は、前記第４の複数の画素のうちの一つ以上の画素と、当該第３の複数の画素のうち前記第４の複数の画素以外の第５の複数の画素のうちの一つ以上の画素との組み合わせが、任意の一の方向に沿って繰り返されていることを特徴とする動きベクトル検出方法。
【請求項９】
請求項８に記載の動きベクトル検出方法であって、
前記動きベクトル決定工程は、前記第４の複数の画素の中に前記最大相関値画素があるときは、前記第２の複数の画素又は前記第４の複数の画素のうち、前記最大相関値画素に隣接する１つ以上の画素である第１の１つ以上の隣接画素であって、前記最大相関値画素からの距離が所定の距離にある当該第１の１つ以上の隣接画素のうち、相関値が最も強い画素である最大隣接画素の位置及び相関値と、前記第２の複数の画素又は前記第４の複数の画素のうち、前記最大相関値画素と当該最大隣接画素とに隣接する第２の１つ以上の隣接画素の位置及び相関値と、最大相関値画素の位置及び相関値と、を用いて、前記最大相関値画素の位置、又は前記最大相関値画素と当該最大隣接画素との間の画素の位置から前記動きベクトルを決定することを特徴とする動きベクトル検出方法。
【請求項１０】
コンピュータを構成する第１の相関値算出部、第２の相関値算出部、動きベクトル決定部に、第１の画像を表す参照フレーム及び当該参照フレームに時間的に前後する探索フレームであって第２の画像を表す当該探索フレームについて、前記第１の画像を基準とする前記第２の画像の動き量である動きベクトルの検出を実行させる動きベクトル検出プログラムであって、
前記第１の相関値算出部に、前記参照フレーム内の少なくとも１つ以上の任意な画素である参照代表点と、当該参照代表点に対応する前記探索フレーム内の画素である探索代表点及び当該探索代表点を囲む領域である密領域にある第１の複数の画素のうちの第２の複数の画素との間の相関関係を示す第１の複数の相関値を算出させる第１の相関値算出工程と、
前記第２の相関値算出部に、前記１つ以上の参照代表点と、前記密領域を囲む領域である疎領域にある第３の複数の画素のうちの第４の複数の画素であって、当該第３の複数の画素の個数に対する当該第４の複数の画素の個数の比率が、前記第１の複数の画素の個数に対する前記第２の複数の画素の個数の比率より小さい前記第４の複数の画素との間の相関関係を示す第２の複数の相関値を算出させる第２の相関値算出工程と、
前記動きベクトル決定部に、前記第１の複数の相関値及び前記第２の複数の相関値のうち、前記参照代表点との相関が最も強いことを示す相関値の画素である最大相関値画素の位置から前記動きベクトルを決定させる動きベクトル決定工程とを含み、
前記疎領域は、前記第４の複数の画素のうちの一つ以上の画素と、当該第３の複数の画素のうち前記第４の複数の画素以外の第５の複数の画素のうちの一つ以上の画素との組み合わせが、任意の一の方向に沿って繰り返されていることを特徴とする動きベクトル検出プログラム。
【請求項１１】
請求項１０に記載の動きベクトル検出プログラムであって、
前記動きベクトル決定工程は、前記第４の複数の画素の中に前記最大相関値画素があるときは、前記第２の複数の画素又は前記第４の複数の画素のうち、前記最大相関値画素に隣接する１つ以上の画素である第１の１つ以上の隣接画素であって、前記最大相関値画素からの距離が所定の距離にある当該第１の１つ以上の隣接画素のうち、相関値が最も強い画素である最大隣接画素の位置及び相関値と、前記第２の複数の画素又は前記第４の複数の画素のうち、前記最大相関値画素と当該最大隣接画素とに隣接する第２の１つ以上の隣接画素の位置及び相関値と、最大相関値画素の位置及び相関値と、を用いて、前記最大相関値画素の位置、又は前記最大相関値画素と当該最大隣接画素との間の画素の位置から前記動きベクトルを決定することを特徴とする動きベクトル検出プログラム。
【請求項１２】
請求項１０又は１１に記載の動きベクトル検出プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像における時間的に連続する２つのフレーム画像間の画素の相関により、２つのフレーム画像内にある画像の時間的な動きを示す動きベクトルを検出する動きベクトル検出装置、動きベクトル検出方法、動きベクトル検出プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
動画像の圧縮、手ぶれ等の画像揺れの補正で重要な技術である動きベクトル検出を行う従来の動きベクトル検出装置（例えば、特許文献１参照）は、前記動画像を構成するフレームの一つである探索フレームの、当該探索フレームに先行又は後続する参照フレームを基準とする動きベクトルを、当該両フレーム間の画素の相関により求めている。より詳しくは、参照フレームにおけるブロック形状の画素データ群である参照ブロックと、探索フレームの任意の位置に取り得る参照ブロックと同一形状の画素データ群である探索ブロックとの間での相関により求めている。
【０００３】
まず最初に、参照ブロックの中の１つの画素である参照代表点と、参照代表点と同じ位置にある探索フレーム内の画素である探索代表点を中心として設定された探索ブロックを用意する。そして、参照代表点の画素と探索ブロック内の全ての画素との組合せについて、画素の相関、すなわち、２つの画素の輝度値の差などにより計算される画素データの差を計算する。この差は、参照フレームと同一形状の計数値テーブルに格納され、差の計算量は、参照ブロックの大きさがＮ×Ｍであるとすると、（Ｎ×Ｍ）個の画素となる。次に、参照代表点を参照ブロック内の別の画素に変えて、同じように画素データの差を計算し、計数値テーブルに加算していく。参照ブロック内の全ての画素について、これらの計算が終了したら、計数値テーブルの中で最も大きな値をとるデータを見つける。計数値テーブルの中心から、この最も大きな値を取るデータへ向かうベクトルが動きベクトルとして検出される。
【０００４】
【特許文献１】特開２００４−２０６６３８号公報（８頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
動きベクトルを検出するためには、参照ブロック内の画素と、探索ブロック内の全ての画素との組合せについて画素データの差の計算をしなければならない。この計算量は、（参照ブロックの画素数）×（探索ブロックの画素数）＝（Ｎ×Ｍ）2であり、膨大な計算量が必要になるという課題があった。
【０００６】
本発明は、このような従来の課題に着目してなされたもので、その目的は、精度を落とさずに少ない計算量で動きベクトルを検出することが可能となる動きベクトル検出装置、動きベクトル検出方法、動きベクトル検出プログラム、及び記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る動きベクトル検出装置では、第１の画像を表す参照フレーム及び当該参照フレームに時間的に先行又は後続する探索フレームであって第２の画像を表す当該探索フレームについて、前記第１の画像を基準とする前記第２の画像の動き量である動きベクトルを算出する動きベクトル検出装置であって、前記参照フレーム内の少なくとも１つ以上の任意な画素である参照代表点と、当該参照代表点に対応する前記探索フレーム内の画素である探索代表点及び当該探索代表点を囲む領域である密領域にある第１の複数の画素のうちの第２の複数の画素との間の相関関係を示す第１の複数の相関値を算出する第１の相関値算出部と、前記１つ以上の参照代表点と、前記密領域を囲む領域である疎領域にある第３の複数の画素のうちの第４の複数の画素であって、当該第３の複数の画素の個数に対する当該第４の複数の画素の個数の比率が、前記第１の複数の画素の個数に対する前記第２の複数の画素の個数の比率より小さい前記第４の複数の画素との間の相関関係を示す第２の複数の相関値を算出する第２の相関値算出部と、前記第１の複数の相関値及び前記第２の複数の相関値のうち、前記参照代表点との相関が最も強いことを示す相関値の画素である最大相関値画素の位置から前記動きベクトルを決定する動きベクトル決定部とを有することを要旨とする。
【０００８】
本発明に係る動きベクトル検出装置によれば、前記第２の相関値算出部で、当該第４の複数の画素の個数の、前記第３の複数の画素の個数に対する比率が、前記第１の相関値算出部で前記相関値を算出される前記第２の複数の画素の個数の、前記第１の複数の画素の個数に対する比率より小さいような前記第４の複数の画素について前記相関値を算出することから、前記第３の複数の画素のうち、前記後者の比率に相当する個数の画素について相関値を算出していた従来に対して、前記動きベクトルの決定を行うまでの相関の算出回数を減らすことが出来る。
【０００９】
上記発明に係る動きベクトル検出装置であって、前記疎領域は、前記第４の複数の画素のうちの一つ以上の画素と、前記第３の複数の画素のうち前記第４の複数の画素以外の第５の複数の画素のうちの一つ以上の画素との組み合わせが、任意の一の方向に沿って繰り返されていることが好ましい。
【００１０】
こうすれば、前記疎領域の中にある前記第４の複数の画素が、任意の一の方向で、一定のパターンで存在することになる。そのため、前記第４の複数の画素のアドレスの計算が簡略化できるので、前記第２の相関値算出部での相関値算出時間を短縮することができる。
【００１１】
上記発明に係る動きベクトル検出装置であって、前記動きベクトル決定部は、前記第４の複数の画素の中に前記最大相関値画素があるときは、前記第２の複数の画素又は前記第４の複数の画素のうち、前記最大相関値画素に隣接する１つ以上の画素である第１の１つ以上の隣接画素の位置及び相関値と、前記最大相関値画素の位置及び相関値とを用いて、前記最大相関値画素の位置、又は前記最大相関値画素と当該第１の１つ以上の隣接画素との間にある画素の位置から前記動きベクトルを決定することが好ましい。
【００１２】
こうすれば、前記最大相関値画素が前記第４の複数の画素の中にあるときでも、前記最大相関値画素と前記第１の１つ以上の隣接画素を用いて、前記最大相関値画素又は前記最大相関値画素と前記第１の１つ以上の隣接画素との間の画素から前記動きベクトルを決定する。従来の方法で、参照フレームと探索フレームの画素の相関を算出した場合、相関が最も強い画素から周辺の画素に行くに従って、相関は徐々に弱くなるケースがほとんどである。このことから、全ての画素の相関を算出しない前記疎領域に前記最大相関値画素がある場合に、実際に相関が最も強くなる画素は、前記最大相関値画素か、又は、前記最大相関値画素の周辺であって相関を算出していない前記第１の複数の画素又は前記第３の複数の画素になる可能性が高い。そのため、すべての画素の相関を計算しない前記疎領域であっても、精度の高い動きベクトルの検出ができる。
【００１３】
上記発明に係る動きベクトル検出装置であって、前記動きベクトル決定部は、前記第４の複数の画素の中に前記最大相関値画素があるときは、当該第１の１つ以上の隣接画素のうち、前記最大相関値画素からの距離が所定の距離にあり、相関値が最も強い画素である最大隣接画素の位置及び相関値と、前記第２の複数の画素又は前記第４の複数の画素のうち、前記最大相関値画素と当該最大隣接画素とに隣接する画素である第２の１つ以上の隣接画素の位置及び相関値と、前記最大相関値画素の位置及び相関値と、を用いて、前記最大相関値画素の位置、又は前記最大相関値画素と当該最大隣接画素との間の画素の位置から前記動きベクトルを決定することが好ましい。
【００１４】
画素の相関は、前記最大相関値画素から前記最大隣接画素にかけて、相関の強い個所ができ、そこから周辺に向かって相関が弱くなる。実際に相関が最も強くなるのは、前記最大相関値画素と前記最大隣接画素の間にある画素から、前記最大相関値画素のまでにある画素である場合がほとんどである。そのため、前記最大相関値画素、前記最大隣接画素、前記最大相関値画素と前記最大隣接画素に隣接する第２の１つ以上の隣接画素を用いて、前記最大相関値画素の位置、又は前記最大相関値画素と前記最大隣接画素との間の画素の位置から動きベクトルを決定することで、精度の高い動きベクトルの検出ができる。
【００１５】
上記発明に係る動きベクトル検出装置であって、動きベクトル決定部は、前記最大隣接画素と前記第２の１つ以上の隣接画素のうち、前記最大相関値画素との相関値の差の絶対値が所定の値より大きくなる画素が所定の数以上ある場合は、前記最大相関値画素と前記最大隣接画素の間にある画素の位置から前記動きベクトルを決定し、前記最大相関値画素との相関値の差の絶対値が当該所定の値より大きくなる画素が当該所定の数より小さい場合は、前記最大相関値画素の位置から前記動きベクトルを決定することが好ましい。
【００１６】
前記最大相関値と、前記最大隣接画素、前記第２の１つ以上の隣接画素の差の絶対値が前記所定の値より大きくなる画素が前記所定の数以上ある場合は、前記最大相関値画素と前記最大隣接画素の間に最も相関が強くなる画素がある可能性が高く、前記所定の数より小さい場合は、前記最大相関値画素の相関が最も強い可能性が高い。そのため、前記最大相関値画素との相関値の差の絶対値が所定の値より大きくなる画素が所定の数以上ある場合は、前記最大相関値画素と前記最大隣接画素の間にある画素の位置から前記動きベクトルを決定し、前記最大相関値画素との相関値の差の絶対値が当該所定の値より大きくなる画素が当該所定の数より小さい場合は、前記最大相関値画素の位置から前記動きベクトルを決定することで、精度の高い動きベクトルの検出ができる。
【００１７】
上記発明に係る動きベクトル検出装置であって、前記動きベクトル決定部は、前記最大隣接画素が２つ以上ある場合は、前記最大相関値画素の位置から前記動きベクトルを決定することが好ましい。
【００１８】
前記最大隣接画素が２以上ある場合は、２以上の前記最大隣接画素と前記最大相関値画素をつないだ線上に相関が強い部分があり、実際の相関値は、前記最大相関値画素の相関が最も強い可能性が高い。そのため、前記最大相関値画素が２以上あるときには、前記最大相関値画素の位置から前記動きベクトルを決定することで精度の高い動きベクトルの検出ができる。
【００１９】
また、上記課題を解決するために、本発明に係る動きベクトル検出装置では、第１の画像を表す参照フレーム及び当該参照フレームに時間的に先行又は後続する探索フレームであって第２の画像を表す当該探索フレームについて、前記第１の画像を基準とする前記第２の画像の動き量である動きベクトルを算出する動きベクトル検出装置であって、前記参照フレーム内の少なくとも１つ以上の任意な画素である参照代表点と、当該参照代表点に対応する前記探索フレーム内の画素である探索代表点及び当該探索代表点を囲む領域である疎領域にある第３の複数の画素のうちの当該第３の複数の画素の個数よりも少ない第４の複数の画素との間の相関関係を示す第２の複数の相関値を算出する第２の相関値算出部と、前記第２の複数の相関値のうち、前記参照代表点との相関が最も強いことを示す相関値の画素である最大相関値画素の位置から前記動きベクトルを決定する動きベクトル決定部とを有し、前記疎領域は、前記第４の複数の画素のうちの一つ以上の画素と、当該第３の複数の画素のうち前記第４の複数の画素以外の第５の複数の画素のうちの一つ以上の画素との組み合わせが、任意の一の方向に沿って繰り返され、前記動きベクトル決定部は、前記第４の複数の画素のうち、前記最大相関値画素に隣接する１つ以上の画素である第１の１つ以上の隣接画素であって、前記最大相関値画素からの距離が所定の距離にある当該第１の１つ以上の隣接画素のうち、相関値が最も強い画素である最大隣接画素の位置及び相関値と、前記第４の複数の画素のうち、前記最大相関値画素と当該最大隣接画素とに隣接する第２の１つ以上の隣接画素の位置及び相関値と、前記最大相関値画素の位置及び相関値と、を用いて、前記最大相関値画素の位置、又は前記最大相関値画素と当該最大隣接画素との間の画素の位置から前記動きベクトルを決定することを要旨とする。
【００２０】
こうすれば、相関を算出する画素の個数を減らすことができ、前記動きベクトル決定部を行うまでの相関の算出回数を減らすことが出来る。また、画素の相関は、前記最大相関値画素から前記最大隣接画素にかけて、相関の強い個所ができ、そこから周辺に向かって相関が弱くなる。実際に相関が最も強くなるのは、前記最大相関値画素と前記最大隣接画素の間にある画素から、前記最大相関値画素までにある画素である場合がほとんどである。そのため、前記最大相関値画素、前記最大隣接画素、前記最大相関値画素と前記最大隣接画素に隣接する第２の１つ以上の隣接画素を用いて、前記最大相関値画素、又は前記最大相関値画素と前記最大隣接画素との間の画素の位置から前記動きベクトルを決定することで、精度の高い動きベクトルの検出ができる。
【００２１】
また、本発明に係る動きベクトル検出方法、動きベクトル検出プログラム、記録媒体は、上記課題を解決すべく、基本的に、第１の画像を表す参照フレーム及び当該参照フレームに時間的に先行又は後続する探索フレームであって第２の画像を表す当該探索フレームについて、前記第１の画像を基準とする前記第２の画像の動き量である動きベクトルを算出する技術であって、前記参照フレーム内の少なくとも１つ以上の任意な画素である参照代表点と、当該参照代表点に対応する前記探索フレーム内の画素である探索代表点及び当該探索代表点を囲む領域である密領域にある第１の複数の画素のうちの第２の複数の画素との間の相関関係を示す第１の複数の相関値を算出し、次に、前記１つ以上の参照代表点と、前記密領域を囲む領域である疎領域にある第３の複数の画素のうちの第４の複数の画素であって、当該第３の複数の画素の個数に対する当該第４の複数の画素の個数の比率が、前記第１の複数の画素の個数に対する前記第２の複数の画素の個数の比率より小さい前記第４の複数の画素との間の相関関係を示す第２の複数の相関値を算出し、最後に、前記第１の複数の相関値及び前記第２の複数の相関値のうち、前記参照代表点との相関が最も強いことを示す相関値の画素である最大相関値画素の位置から前記動きベクトルを決定する。また、前記疎領域は、前記第４の複数の画素のうちの一つ以上の画素と、当該第３の複数の画素のうち前記第４の複数の画素以外の第５の複数の画素のうちの一つ以上の画素との組み合わせが、任意の一の方向に沿って繰り返されていることを要旨とする。
【００２２】
本発明に係る動きベクトル検出方法、動きベクトル検出プログラム、及び記録媒体によれば、前記第２の相関値算出部で、当該第４の複数の画素の個数の、前記第３の複数の画素の個数に対する比率が、前記第１の相関値算出部で前記相関値を算出される前記第２の複数の画素の個数の、前記第１の複数の画素の個数に対する比率より小さいような前記第４の複数の画素について前記相関値を算出することから、前記第３の複数の画素のうち、前記後者の比率に相当する個数の画素について相関値を算出していた従来に対して、画素の相関を算出する回数を減らすことが出来る。また、前記疎領域の中にある前記第４の複数の画素が、任意の一の方向で、一定のパターンで存在するので、前記第４の複数の画素のアドレスの計算が簡略化できる。そのため、前記第２の相関値算出部での相関値算出時間を短縮することができ、動きベクトルを検出する時間を短縮することができる。
【００２３】
上記発明に係るベクトル検出方法、動きベクトル検出プログラム、記録媒体は、上記課題を解決すべく、基本的に、前記動きベクトル決定工程は、前記第４の複数の画素の中に前記最大相関値画素があるときは、前記第２の複数の画素又は前記第４の複数の画素のうち、前記最大相関値画素に隣接する１つ以上の画素である第１の１つ以上の隣接画素であって、前記最大相関値画素からの距離が所定の距離にある当該第１の１つ以上の隣接画素のうち、相関値が最も強い画素である最大隣接画素の位置及び相関値と、前記第２の複数の画素又は前記第４の複数の画素のうち、前記最大相関値画素と当該最大隣接画素とに隣接する第２の１つ以上の隣接画素の位置及び相関値と、最大相関値画素の位置及び相関値と、を用いて、前記最大相関値画素の位置、又は前記最大相関値画素と当該最大隣接画素との間の画素の位置から前記動きベクトルを決定することが好ましい。
【００２４】
画素の相関は、前記最大相関値画素から前記最大隣接画素にかけて、相関の強い個所ができ、そこから周辺に向かって相関が弱くなる。実際に相関が最も強くなるのは、前記最大相関値画素と前記最大隣接画素の間にある画素から、前記最大相関値画素までにある画素である場合がほとんどである。そのため、前記最大相関値画素、前記最大隣接画素、前記最大相関値画素と前記最大隣接画素に隣接する第２の１つ以上の隣接画素を用いて、前記最大相関値画素、又は前記最大相関値画素と前記最大隣接画素との間の画素の位置から前記動きベクトルを決定することで、精度の高い動きベクトルの検出ができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明に係る動きベクトル検出装置の実施例について図面に従って説明する。
【実施例１】
【００２６】
図１は本発明の一実施形態としての動きベクトル検出装置の概略構成を示す説明図である。この動きベクトル検出装置は、汎用のコンピュータ１００であり、ＣＰＵ１０３、ＲＯＭ１０４、ＲＡＭ１０２、入力Ｉ／Ｆ１０１、出力Ｉ／Ｆ１０６とから構成され、それらはバス１０７を介して互いに接続されている。ＣＰＵ１０３は、ＲＯＭ１０４に格納されている動きベクトル検出プログラム５００を実行する。ＲＡＭ１０２は、動画像から取得したフレーム画像５１０を格納する。入力Ｉ／Ｆ１０１は、動画像からフレーム画像５１０を時系列順に順次、取得する。出力Ｉ／Ｆ１０６は、検出された動きベクトル５２０を出力する。
【００２７】
また、動きベクトル検出プログラム５００は、例えばＣＤ−ＲＯＭなどのコンピュータが読み取り可能な記録媒体によって外部から供給され、図示しないＤＶＤ−Ｒ／ＲＷドライブを介してＲＡＭ１０２に記憶することによって格納されるものとしてもよい。もとより、インターネットなどのネットワーク手段を介して、アプリケーションプログラムを供給するサーバー等にアクセスし、データをダウンロードすることによってＲＡＭ１０２に格納されるものとしてもよい。
【００２８】
ＣＰＵ１０３は、バス１０７を介してＲＯＭ１０４に格納された動きベクトル検出プログラム５００を読み出し、実行することによって、動きベクトル検出装置として機能させる。
【００２９】
図２は、実施例１の動きベクトル検出装置５３０の機能ブロック図を示す。図２に示したように、動きベクトル検出プログラム５００が実行されることにより、ＣＰＵ１０３は、相関値算出部５３４、代表点データ生成部５３８、動きベクトル決定部５４０として機能する。
【００３０】
図２の各部はそれぞれ以下の処理を司る。代表点データ生成部５３８は、フレームメモリ５３２に格納してある時系列順でフレーム画像５１０よりも前のフレーム画像から予め決められた位置にある１つ以上の画素（参照代表点６００（図３））を抽出し、相関値算出部５３４に渡す。相関値算出部５３４は、参照代表点６００と、フレーム画像５１０内にある参照代表点６００の位置にある画素（探索代表点６３０（図３））を元に設定された探索ブロック６２０（図３）の画素との相関値を算出して累積加算テーブル５３６に格納していく。動きベクトル決定部５４０は、累積加算テーブル５３６から相関の最も強い画素（最大相関値画素６４０（図３））を検索し、最大相関値画素６４０とその周辺の画素の位置及び相関値から動きベクトル５２０を決定し、出力する。
【００３１】
ここで、動きベクトルの算出の概略について、図３の動きベクトルの算出の概略を説明するための説明図を用いて説明する。図３には、動画像から取得した時系列順に連続する２つのフレーム画像（参照フレーム、探索フレーム）と、画素の相関値を格納する累積加算テーブル５３６を示した。
【００３２】
まず、参照フレームに、予め決められた位置の画素を示す複数の参照代表点６００を用意する。探索フレームに、参照代表点６００と同じ位置にある画素である探索代表点６３０と、探索代表点６３０を中心とする一定の範囲を示す探索ブロック６２０を設定する。複数の参照代表点６００と複数の探索ブロック６２０を使用するが、複数の探索ブロック６２０を統合した１つの探索ブロック６２０の画素の相関値を算出するので、累積加算テーブル５３６は一つだけ使用する。図３（Ａ）、（Ｂ）、（Ｃ）では、例として、３つの参照代表点６００、探索代表点６３０、及び探索ブロック６２０の位置を示している。
【００３３】
動きベクトル５２０の検出は、まず最初に、参照代表点６００を一つ取り出し、この参照代表点６００と、対応する探索ブロック６２０内の画素との輝度値の差の絶対値である相関値を算出し、この相関値を累積加算テーブル５３６に格納する（図３（Ａ））。次に、別の参照代表点６００を取り出し、同じように、参照代表点６００と、対応する探索ブロック６２０内の画素との相関値を算出し、既に累積加算テーブル５３６に格納してある相関値と加算した値を新しい相関値として、累積加算テーブル５３６に格納していく（図３（Ｂ）〜（Ｃ））。このように探索ブロック６２０ごとに算出した相関値を合計して、全ての探索ブロック６２０を統合した１つの探索ブロック６２０の画素の相関値を算出する。
【００３４】
相関値の算出が終了したら、累積加算テーブル５３６に格納してある相関値から、参照代表点６００との相関が最も強くなる画素（最大相関値画素）を見つける。探索代表点６３０から、最大相関値画素へ向かうベクトルを、動きベクトル５２０とみなす（図３（Ｃ））。このようにして検出した動きベクトル５２０は、参照フレームから探索フレームにかけて、時間軸上で画像がどのように動いたかを示す。図３の例では、参照フレーム内にある家の画像が、探索フレームでは右下のほうに動いており、動きベクトル５２０も同様に右下に向かうベクトルとなる。
【００３５】
図４は、探索ブロック６２０、累積加算テーブル５３６の形状を説明するための説明図である。図４左側の探索ブロック６２０は、探索フレーム内の１３×１３＝１６９画素の範囲を示しており、このうち、密領域として探索代表点６３０を中心とする５×５＝２５画素の範囲が設定され、疎領域として密領域の外側の１６９−２５＝１４４画素の範囲が設定されている。図４では、探索ブロック６２０内の画素のうち実際に相関を計算する画素をグレーで示している、密領域では密領域内の全画素の２５画素の相関を算出する（第１の相関値算出部）。疎領域では疎領域内の１４４画素中７２画素の相関を算出する（第２の相関値算出部）。図４の右側の累積加算テーブル５３６には、グレーの部分に、探索ブロック６２０の画素ごとの相関値が格納される。また、実際の累積加算テーブル５３６はグレーの部分だけの相関値を格納する配列としてＲＡＭ１０２に領域を確保することになるが、図４では探索ブロック６２０の画素との対応関係がわかるように、グレー以外の部分も記載している。
【００３６】
このように疎領域で実際に相関を計算する画素を少なくすることで、相関の算出回数を大幅に減らすことができる。また、動画において、フレーム間の画像の動きは、大きくならないことが多いので、累積加算テーブルの中で最も相関が強くなる位置、すなわち動きベクトル５２０は、密領域の中にあることがほとんどである。実施例１では、密領域の全ての画素について相関を算出するので、動きベクトル５２０の発生頻度の高い密領域内で精度の高い動きベクトル５２０の検出ができる。
【００３７】
また、図４の例では、１３×１３の大きさの矩形の探索ブロックを使用したが、探索ブロック６２０の大きさ、形状はこれに限らず、他の大きさ、形状でも良い。また、密領域と疎領域の形状、大きさ、及び実際に相関を算出する画素数も、図４とは違うものを用いてもかまわない。探索ブロック６２０、密領域、疎領域は、動きベクトル５２０の使用目的により、適宜変更することが望ましい。例えば、動画の圧縮に動きベクトル５２０を使用する場合は、動画圧縮の単位になることが多い８×８画素ぐらいの探索ブロック６２０を使用すると良い。また、密領域、疎領域の大きさ、形状、及び相関を計算する画素数は、発生頻度の高い動きベクトル５２０の大きさや、要求される動きベクトル５２０の算出時間などを元にして決めると良い。
【００３８】
次に動きベクトル検出装置の各部が行う処理について、図５のフローチャートにより説明する。
【００３９】
ステップＳ２００の処理を始める時点では、フレームメモリ５３２には時系列順で一つ前のフレーム画像、すなわち、参照フレームが格納されている。ステップＳ２００では、代表点データ生成部５３８は、フレームメモリ５３２にある参照フレームから予め決められた位置にある画素である参照代表点６００を全て取り出す。次に、ステップＳ２０２では、ＣＰＵ１０３は、時系列順で参照フレームの次にくるフレーム画像５１０を探索フレームとして取得し、フレームメモリ５３２に格納する。ステップＳ２０４では、既に図３、図４を用いて説明したように、相関値算出部５３４が、参照フレームと探索フレームの相関を算出し、結果を累積加算テーブル５３６に格納する。
【００４０】
次に、ステップＳ２０６〜ステップＳ２１８にて、動きベクトル決定部５４０は、累積加算テーブル５３６を用いて動きベクトル５２０を決定する。
【００４１】
ステップＳ２０６にて、累積加算テーブル５３６の中で相関値が最も小さい値を持つ画素（ｉ，ｊ）ｍａｘ（最大相関値画素６４０）を求める。実施例１では、画素の相関は輝度値の差の絶対値を使用しているので、相関値が最も小さいときに、相関が最も強くなる。また、実施例１では、探索ブロック６２０内の画素を、（ｘ、ｙ）のように探索代表点６３０を原点とした横方向の画素数、縦方向の画素数で表す。例えば（０、−１）は、探索代表点６３０の一つ下の画素を意味する。
【００４２】
ステップＳ２０８にて、（ｉ，ｊ）ｍａｘが密領域の中にあるか、疎領域の中にあるかを調べる。密領域の幅をａ、高さをｂとすると、−ａ／２≦ｉ≦ａ／２  かつ  −ｂ／２≦ｊ≦ｂ／２  の時に、（ｉ，ｊ）ｍａｘは密領域の中にあると判断できる。（ｉ，ｊ）ｍａｘが密領域の中にある場合は、ステップＳ２１８に進む。一方、疎領域にある場合は、ステップＳ２１０に進む。
【００４３】
ステップＳ２１８では、（ｉ，ｊ）ｍａｘが密領域の中にある場合の動きベクトル５２０の決定を行い、動きベクトル５２０は、探索代表点６３０から（ｉ，ｊ）ｍａｘへ向かうベクトルであると決定する。
【００４４】
ステップＳ２１０〜ステップＳ２１６にて、（ｉ，ｊ）ｍａｘが疎領域にある場合の動きベクトル５２０の決定を行う。まず、ステップＳ２１０にて、（ｉ，ｊ）ｍａｘに隣接する画素（第１の１つ以上の隣接画素）のうち、（ｉ，ｊ）ｍａｘから所定の距離にあり、相関値が最も小さい値を取る画素（ｉ’，ｊ’）（最大隣接画素）を求める。次に、ステップＳ２１２にて、（ｉ，ｊ）ｍａｘ、（ｉ’，ｊ’）、（ｉ，ｊ）ｍａｘと（ｉ’，ｊ’）の両方に接する画素（第２の１つ以上の隣接画素）を求める。
【００４５】
（ｉ，ｊ）ｍａｘ、（ｉ’，ｊ’）と（ｉ，ｊ）ｍａｘと（ｉ’，ｊ’）の両方に接する画素の位置関係は、疎領域で相関値を算出する画素と相関値を算出しない画素のパターンによって若干違う。図６は、探索ブロック６２０における最大相関値画素６４０と最大隣接画素の位置関係を説明するための説明図である。図６の（Ａ）は、疎領域で相関値を算出する画素と相関値を算出しない画素が縦と横方向に交互に並んでいるパターンの場合の、疎領域の左上部分である。この場合は、最大相関値画素Ａに隣接する画素（第１の１つ以上の隣接画素）は、Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｑ１，Ｑ２，Ｑ３，Ｑ４の８個ある。この中から所定の距離にある画素を求める。実施例１では、遠いほうの距離を所定の距離、すなわち、縦又は横方向に１画素分離れた距離を所定の距離とする。したがって、所定の距離にある画素は、Ｐ１，Ｐ２，Ｐ３，Ｐ４の４つになる。Ｐ１，Ｐ２，Ｐ３，Ｐ４のうち最も相関が強い画素をＰ１とすると、最大隣接画素はＰ１となる。そして、最大相関値画素Ａと最大隣接画素Ｐ１の両方に接する画素は、Ｑ１，Ｑ４である。
【００４６】
図６の（Ｂ）は、疎領域で相関値を算出する画素と相関値を算出しない画素が縦と横と斜め方向に交互に並んでいるパターンの場合の、疎領域の左上部分である。この場合も、最大相関値画素Ａに隣接する画素（第１の１つ以上の隣接画素）は、Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｑ１，Ｑ２，Ｑ３，Ｑ４の８個ある。このパターンでは、所定の距離は斜め方向に１画素分になるので、所定の距離にある画素は、Ｐ１，Ｐ２，Ｐ３，Ｐ４の４つになる。Ｐ１，Ｐ２，Ｐ３，Ｐ４のうち最も相関が強い画素をＰ１とすると、最大隣接画素はＰ１となる。そして、最大相関値画素Ａと最大隣接画素Ｐ１の両方に接する画素は、Ｑ１，Ｑ４である。また、このように、疎領域において、縦又は横又は斜め方向に１画素おきに相関値を算出することで、疎領域内の画素のアドレス計算が非常に簡単になる。
【００４７】
以上のように、図６の（Ａ）、（Ｂ）のパターンとも、（ｉ，ｊ）ｍａｘ＝Ａ，（ｉ’，ｊ’）＝Ｐ１，（ｉ，ｊ）ｍａｘと（ｉ’，ｊ’）の両方に接する画素＝Ｑ１，Ｑ４となる。ここで、（ｉ，ｊ）ｍａｘの相関値をＣｍａｘ，（ｉ’，ｊ’）の相関値をＣ１，（ｉ，ｊ）ｍａｘと（ｉ’，ｊ’）の両方に接する画素の相関値をＣ２，Ｃ３とする。
【００４８】
次に、ステップＳ２１４にて、ＣｍａｘとＣ１，Ｃ２，Ｃ３との相関値の差の絶対値を調べる。相関値の差の絶対値がβ以下になるものが、２つ以上ある場合は、ステップＳ２１６に進む。一方、１つ以下しかない場合は、ステップＳ２１８に進む。
【００４９】
相関は、相関が最も強い画素を頂点として、その周辺の画素に向かって弱くなっていく傾向がある。例えば、ＣｍａｘとＣ１の相関値の差とＣｍａｘとＣ２の相関値の差の両方ともβ以下である場合、３つの画素の相関値の値が近いので、実際に相関が最も強い画素は、Ａではなく、Ｐ１，Ｑ１，Ｑ４の中間の画素、特に相関が強いＡとＰ１の中間の画素Ａ’である可能性が高い。そこで、ステップＳ２１６では、動きベクトル５２０を探索代表点６３０から最大相関値画素Ａと最大隣接画素Ｐ１の間の画素（（ｉ＋ｉ’）／２，（ｊ＋ｊ’）／２）へ向かうベクトルと決定する。
【００５０】
一方、Ｃｍａｘとの相関の差の絶対値がβ以下の画素が、１つ以下しかない場合は、Ｃｍａｘから隣接する画素への相関が弱くなる度合いが高いので、実際に相関が最も強い画素もＡである可能性が高い。そのため、ステップＳ２１８で動きベクトル５２０を探索代表点６３０から最大相関値画素Ａ（ｉ、ｊ）へ向かうベクトルと決定する。
【００５１】
以下、前記実施例１における動きベクトル検出装置に関する変形例を記載する。
（変形例１）図５のステップＳ２１０にて、最大隣接画素（ｉ’，ｊ’）が２つ以上ある場合は、ステップＳ２１８に進むようにする。最大隣接画素（ｉ’，ｊ’）が２つ以上ある場合は、２つの最大隣接画素（ｉ’，ｊ’）と最大相関値画素（ｉ，ｊ）を結び線上に相関の強い部分があると考えられる。そのため、実際に相関が強いのも、最大相関値画素（ｉ，ｊ）である可能性が最も高い。
【００５２】
（変形例２）密領域をなくし、探索ブロック内は、すべて疎領域とする。こうすれば、相関値の算出回数がより少なくなり、相関の算出時間も早くなる。
【実施例２】
【００５３】
図７は、動画像から手ぶれなどの画像揺れを取り除いた補正フレーム画像を出力する画像処理装置の概略構成を示す説明図である。この画像処理装置は汎用のコンピュータ１００であり、入力インターフェイス（Ｉ／Ｆ）１０１、ＣＰＵ１０３、ＲＡＭ１０２、ＲＯＭ１０４、ハードディスク１０５、出力インターフェイス（Ｉ／Ｆ）１０６とから構成され、それらはバス１０７を介して互いに接続されている。入力Ｉ／Ｆ１０１には、動画像を入力する装置としてのデジタルビデオカメラ２００およびＤＶＤプレーヤ２１０が接続され、出力Ｉ／Ｆ１０６には動画像を出力する装置としてのビデオプロジェクタ３００およびディスプレイ３１０が接続されている。その他、必要に応じて、動画像を記憶した記憶媒体からデータを読み出すことが可能な駆動装置や、動画像を出力することが可能な画像表示装置をそれぞれ接続することもできる。もとより、動画像には時系列に連続する静止画像も含まれる。
【００５４】
入力Ｉ／Ｆ１０１は、所定の画素数とＲＧＢ形式など所定の画素値を有する動画像からフレーム画像を取得し、コンピュータ１００で処理できるフレーム画像データに変換する。実施例２では、フレーム画像を構成する所定枚数のフィールド画像から、フレーム画像データを取得するものとする。フレーム画像は、記録方式に応じて通常複数の所定枚数のフィールド画像によって構成されている。例えば、ＮＴＳＣ方式で記録された動画像の場合は、インターレース方式であり、毎秒６０枚のフィールド画像によって毎秒３０枚のフレーム画像が構成されている。従って、入力Ｉ／Ｆ１０１は、２つのフィールド画像の画素値を用いて１つのフレーム画像を取得する。もとより、１つのフィールド画像が１つのフレーム画像を構成しているプログレッシブ方式（ノンインターレース方式）のような場合は、１つのフィールド画像を用いて１つのフレーム画像を取得することになる。
【００５５】
変換されたフレーム画像データは、ＲＡＭ１０２又はハードディスク１０５に格納される。ＣＰＵ１０３は格納されたフレーム画像データに対して所定の画像処理を実行し、補正フレーム画像データとして再びＲＡＭ１０２又はハードディスク１０５に格納する。補正フレーム画像データを生成するまでに行われる所定の画像処理に際し、必要に応じてＲＡＭ１０２やハードディスク１０５が画像処理データのワーキングメモリとして用いられる。そして、格納した補正フレーム画像データを、出力Ｉ／Ｆ１０６を介して所定の画像データに変換し、ビデオプロジェクタ３００などに送出する。
【００５６】
所定の画像処理を記録したアプリケーションプログラムは、予めハードディスク１０５やＲＯＭ１０４に格納されていることとしてもよいし、例えばＣＤ−ＲＯＭなどのコンピュータが読み取り可能な記録媒体によって外部から供給され、図示しないＤＶＤ−Ｒ／ＲＷドライブを介してハードディスク１０５に記憶することによって格納されるものとしてもよい。もとより、インターネットなどのネットワーク手段を介して、アプリケーションプログラムを供給するサーバー等にアクセスし、データをダウンロードすることによってハードディスク１０５に格納されるものとしてもよい。
【００５７】
ＣＰＵ１０３は、バス１０７を介してハードディスク１０５またはＲＯＭ１０４に格納されたアプリケーションプログラムを読み出し、この読み出したアプリケーションプログラムを所定のオペレーティングシステムのもとで実行することによって、画像処理装置として機能する。特に図７に示したように、このアプリケーションプログラムが実行されることにより、フレーム画像取得部１１０、動きベクトル算出部１２０、補正位置算出部１３０、補正フレーム画像生成部１４０、補正動きベクトル算出部１５０、画像出力部１６０として機能する。
【００５８】
各部はそれぞれ以下の処理を司る。フレーム画像取得部１１０は、コンピュータ１００に入力した動画像から時系列順にフレーム画像をキャプチャして取得する。動きベクトル算出部１２０は、実施例１の動きベクトル検出装置５３０（図２）であり、ＣＰＵ１０３に実施例１の動きベクトル検出プログラム５００（図１）を実行させることで、取得されたフレーム画像の動きベクトル５２０を算出し、補正位置算出部１３０に渡す。補正位置算出部１３０は、動きベクトル５２０などを用いて、フレーム画像から所定の画像を切り出すための画像位置を補正位置ベクトルとして算出する。補正フレーム画像生成部１４０は、算出された補正位置ベクトルに基づいて補正フレーム画像を生成する。補正動きベクトル算出部１５０は、生成された補正フレーム画像についての動きベクトルを補正動きベクトルとして算出し、補正位置算出部１３０に渡す。画像出力部１６０は、生成された補正フレーム画像を所定の画像データに変換して出力する。
【００５９】
次に、実施例２の画像処理装置について各部が行う処理を、図８の処理フローチャートにより説明する。図８に示した処理が開始されると、まずステップＳ１０にて、入力される動画像から時系列順に、フレーム画像Ｆ（ｎ）をコンピュータ１００に取り込む処理を行う。なお、実施例２における以降の画像処理装置の説明において、（ｎ）は時系列順でｎ番目であることを意味する。
【００６０】
実施例２では、動画像の入力をトリガーにして、自動的にフレーム画像を時系列順で順次取り込むこととする。もとより、取り込むフレーム画像を指定することとしてもよい。フレーム画像の指定方法は、動画像からフレーム画像をキャプチャしてコンピュータ１００に取り込む際、通常付加されるフレーム画像の識別番号を指定するようにしてもよい。あるいは、ユーザーがビデオカメラに備えられたモニターなどのディスプレイ（図示せず）に表示されるフレーム画像を見ながら画像を直接指定することとしてもよい。
【００６１】
次に、ステップＳ２０では、コンピュータ１００に取り込むことによって取得したフレーム画像Ｆ（ｎ）が存在するか否かを判定処理する。動画像からキャプチャしたフレーム画像Ｆ（ｎ）が存在すれば（ＹＥＳ）次のステップに進み、存在しなければ（ＮＯ）画像処理装置における処理を終了する。
【００６２】
ステップＳ３０では、取得したフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）の算出処理を行う。ここで、実施例２における、フレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）について説明する。時系列順ｎ−１番目のフレーム画像Ｆ（ｎ−１）を基準とするフレーム画像Ｆ（ｎ）の画像全体の動きを算出し、画像全体の動きをなくなるように、フレーム画像Ｆ（ｎ−１）とフレーム画像Ｆ（ｎ）を配置する。そして、フレーム画像Ｆ（ｎ−１）の画面位置に対するフレーム画像Ｆ（ｎ）の画面位置のずれ量を、Ｘ，Ｙ方向のそれぞれの画素数として算出する。このＸ方向の画素数をＸ成分、Ｙ方向の画素数をＹ成分とするベクトルによって表したものが、フレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）となる。算出した動きベクトルＶ０（ｎ）のデータＶ０（ｎ）は、ＣＰＵ１０３によってＲＡＭ１０２などに格納される。
【００６３】
動きベクトルの定義は、動きベクトル検出装置の用途によって若干変わる。実施例１では、２つのフレーム画像間の画像の動きを動きベクトルとしていたが、実施例２では、２つのフレーム画像間の画像の動きを止めるように配置した時の２つのフレーム画像の相対位置を動きベクトルとする。この２つのベクトルは、向きが逆になるだけであるので、まったく同じ方法で動きベクトルを算出することができる。
【００６４】
動きベクトルＶ０（ｎ）は、実施例１の動きベクトル検出プログラム５００を使い、フレーム画像Ｆ（ｎ−１）を参照フレーム、フレーム画像Ｆ（ｎ）を探索フレームとして算出できる。図９は、実施例２で動きベクトル検出を行う時の参照代表点６００の位置を説明するための説明図である。実施例２では、参照代表点６００を図９の黒点で示したようにフレーム画像Ｆ（ｎ−１）全体に一定間隔で配置する。こうすることで、手ぶれなどによって発生するフレーム画像全体に係る画像の動きを示す動きベクトルを検出することができる。そのため、画像揺れも精度良く取り除くことができるようになる。また、探索フレームになるフレーム画像Ｆ（ｎ）内の探索ブロック６２０は、実施例１と同じように参照代表点６００ごとに設定する。
【００６５】
ここで、次のステップＳ４０における補正位置ベクトルＳ（ｎ）の算出処理、及び以降のステップＳ６０における補正動きベクトルＶ１（ｎ）の算出処理について、処理内容の説明についての理解を容易にするため、フレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）と補正位置ベクトルＳ（ｎ）、及び補正動きベクトルＶ１（ｎ）の関係について、図１０および図１１を用いて前もって説明する。
【００６６】
図１０は、最初に取得される時系列順１番目のフレーム画像Ｆ（１）と、２番目、３番目のフレーム画像Ｆ（２）、Ｆ（３）をそれぞれ示している。本発明は、補正量に基づいてフレーム画像から所定の画像を切り出す補正処理によって補正フレーム画像を生成する画像処理技術を提供するものであり、補正処理が行われない場合、または補正量が０の場合に切り出されるフレーム画像は、それぞれ図１０破線で示したフレーム画像ＦＫ（１）、ＦＫ（２）、ＦＫ（３）となる。
【００６７】
ここで、フレーム画像ＦＫ（ｎ）は、図１０に示したように、フレーム画像Ｆ（ｎ）に対して所定の補正限界値Ｓｍａｘ分小さい画面サイズとなる。詳しくは、Ｘ方向では左右それぞれ所定の補正限界値Ｓｘｍａｘだけ、Ｙ方向では上下それぞれ所定の補正限界値Ｓｙｍａｘだけ画面サイズが小さい画像である。つまり、切り出される画像は、Ｘ方向では２×Ｓｘｍａｘ分、Ｙ方向では２×Ｓｙｍａｘ分小さい画面サイズとなる。
【００６８】
所定の補正限界値Ｓｍａｘ（Ｘ成分はＳｘｍａｘ、Ｙ成分はＳｙｍａｘ）は、実施例２では、予めアプリケーションプログラムにデフォルトで所定の値が設定され、ハードディスク１０５などに格納されているものとする。もとより、ユーザーが、コンピュータ１００に接続された入力手段（図示せず）を用いてデータ入力することによって設定し、格納するものとしてもよい。
【００６９】
同じく図１０（下側）に、求められた相対位置に従って配置されたフレーム画像ＦＫ（１）、ＦＫ（２）、ＦＫ（３）を示した。図１０より明らかなように、例えばフレーム画像Ｆ（２）の動きベクトルＶ０（２）は、フレーム画像ＦＫ（２）の動きベクトルと等しくなる。つまり、フレーム画像Ｆ（２）の動きベクトルＶ０（２）は、フレーム画像ＦＫ（１）に対するフレーム画像ＦＫ（２）の画面位置として求められる。フレーム画像ＦＫ（３）の動きベクトルＶ０（３）も同様にフレーム画像ＦＫ（２）に対するフレーム画像ＦＫ（３）の画面位置として求められる。動きベクトルＶ０（２）、Ｖ０（３）のＸ成分はＸ方向の画素数、Ｙ成分はＹ方向の画素数で表される。
【００７０】
図１０において、フレーム画像Ｆ（１）は、時系列順で一つ前のフレーム画像が存在しないため、実施例２ではフレーム画像Ｆ（１）は動いていないものとして扱い、フレーム画像ＦＫ（１）の動きベクトルＶ０（１）は０とする。
【００７１】
次に、図１１を用いてフレーム画像Ｆ（ｎ）の補正位置ベクトルＳ（ｎ）と動きベクトルＶ０（ｎ）、及びステップＳ６０（図８）にて算出される補正動きベクトルＶ１（ｎ）の関係を説明する。図１１は、図１０（下部）に示したフレーム画像ＦＫ（１）〜ＦＫ（３）の左上隅部分を拡大して示した説明図である。ここで、補正フレーム画像ＨＦＧ（２）は、ステップＳ４０（図８）で算出されるフレーム画像Ｆ（２）の補正位置ベクトルＳ（２）によってフレーム画像ＦＫ（２）が補正された状態を示している。
【００７２】
図１１から明らかなように、フレーム画像ＦＫ（２）は、動きベクトルＶ０（２）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（１）の画面位置を移動したものであり、補正フレーム画像ＨＦＧ（２）は、補正位置ベクトルＳ（２）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（２）の画面位置を移動したものである。また、同様に、フレーム画像ＦＫ（３）は、動きベクトルＶ０（３）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（２）の画面位置を移動したものであり、補正フレーム画像ＨＦＧ（３）は、補正位置ベクトルＳ（３）のＸ成分とＹ成分の画素数に従って、フレーム画像ＦＫ（３）の画面位置を移動したものである。
【００７３】
また、図１１に示したように、補正動きベクトルＶ１（２）は、フレーム画像ＦＫ（１）に対する補正フレーム画像ＨＦＧ（２）の相対的な画面位置を示すものであり、補正動きベクトルＶ１（３）は、補正フレーム画像ＨＦＧ（２）に対する補正フレーム画像ＨＦＧ（３）の相対的な画面位置を示すものである。なお、動きベクトルＶ０（１）は０であることより補正位置ベクトルＳ（１）も０となる（後述する）。従って、フレーム画像ＦＫ（１）は補正フレーム画像ＨＦＧ（１）と同じものになる。
【００７４】
ここで、動きベクトルＶ０（ｎ）および補正動きベクトルＶ１（ｎ）は、Ｘ成分は図面右方向をプラス、Ｙ成分は図面上方向をプラスとするが、補正ベクトルＳ（ｎ）は、移動量を補正する意味から動きベクトルと反対に、Ｘ成分は図面左方向をプラス、Ｙ成分は図面下方向をプラスとする。従って、フレーム画像ＦＫ（２）、ＦＫ（３）の補正位置ベクトルＳ（２）、Ｓ（３）は、図１１に示したように動きベクトルＶ０（２）、Ｖ０（３）と反対方向がプラス方向になる。
【００７５】
実施例２は、図１１にて説明したように、補正位置ベクトルＳ（ｎ）を、補正位置ベクトルＳ（ｎ−１）と、動きベクトルＶ０（ｎ）と、補正動きベクトルＶ１（ｎ−１）との３つのベクトルから求める画像処理技術を提供することによって補正遅れを抑制するとともに、補正量を補正限界値Ｓｍａｘ以内に抑えることによって、不規則な画面移動を抑制できる補正フレーム画像の画面位置を算出する画像処理装置を提供するものである。
【００７６】
次に、ステップＳ４０（図８）にて補正位置ベクトルＳ（ｎ）の算出処理を行う。ここでの処理について、図１２のフローチャートを用いて詳しく説明する。
【００７７】
ステップＳ４０の処理が開始されると、まずステップＳ４１０にて注目するフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）を入力する処理を行う。ここでは、１つ前の処理ステップＳ３０にて求められ、ＲＡＭ１０２などのメモリーに格納された動きベクトルＶ（ｎ）を、ＣＰＵ１０３が読み出すことによって入力処理を行う。
【００７８】
次に、ステップＳ４２０にて、注目するフレーム画像Ｆ（ｎ）に対して時系列順で一つ前のフレーム画像の補正動きベクトルＶ１（ｎ−１）を入力する処理を行う。ステップＳ６０（図８）にて算出され、ＲＡＭ１０２などのメモリーに格納された補正動きベクトルＶ１（ｎ−１）を、ＣＰＵ１０３が読み出すことによって入力処理を行う。
【００７９】
また、ステップＳ４３０にて、注目するフレーム画像Ｆ（ｎ）に対して時系列順で一つ前のフレーム画像の補正位置ベクトルＳ（ｎ−１）を入力する処理を行う。具体的には、ステップＳ４０（図８）にて算出され、ＲＡＭ１０２などのメモリーに格納された補正位置ベクトルＳ（ｎ−１）を、ＣＰＵ１０３が読み出すことによって入力処理を行う。
【００８０】
ステップＳ４２０及びステップＳ４３０において、「ｎ＝１」つまり時系列順１番目のフレーム画像の場合、前フレーム画像が存在しない。この場合は、前述したように実施例２ではフレーム画像Ｆ（ｎ）は動いていないものとし、その結果、補正動きベクトルＶ１（１）は０、また補正位置ベクトルＳ（１）も０となる。
【００８１】
次に、ステップＳ４４０にてＸ、Ｙ各成分別に減衰係数Ｋ、Ｄの値の決定処理を行う。減衰係数Ｋ、Ｄは、次の処理ステップＳ４９０で用いる所定の演算式において使用する係数であり、補正位置ベクトルの大きさ、つまり補正量を決める係数となる。減衰係数Ｋ、Ｄとも、それぞれ１以下の小数である。
【００８２】
まず、ステップＳ４４０（図１２）にて行われる処理について、減衰係数Ｋ、Ｄの決定処理の詳細を、図１３に示した処理フローチャートを用いて説明する。減衰係数Ｋ、Ｄの値の決定方法は、注目するフレーム画像の動きベクトルの大きさ及び向きと、時系列順一つ前の補正フレーム画像の大きさ及び向きとから補正量を算出し、動きベクトルの方向変化と大きさにあわせて注目するフレーム画像の補正量を算出しようとするものである。なお、ここでは、注目するフレーム画像のＸ成分についての処理を説明するが、処理ステップＳ４４０ではＹ成分についても図１３に示したＸ成分の処理と同様の処理を行い、Ｘ成分、Ｙ成分それぞれについて減衰係数Ｋ、Ｄの値を決定する。そして、後述する次の処理ステップＳ４９０（図１２）において、補正位置ベクトルのＸ成分とＹ成分を所定の演算式にて算出する際、それぞれ決定した減衰係数Ｋ、Ｄの値を用いるのである。
【００８３】
ここでの処理が開始されると、まずステップＳ４４１にて注目するフレーム画像の動きベクトルＶ０（ｎ）のＸ成分Ｖ０ｘ（ｎ）の抽出処理を行う。Ｘ成分Ｖ０ｘ（ｎ）はＸ方向の画素数で示され、図１１に示したようにベクトルの向きが図面右方向であればプラス、左方向であればマイナスとなる。なお注目するフレーム画像の動きベクトルＶ０（ｎ）のＹ成分Ｖ０ｙ（ｎ）については、図１１に示したようにベクトルの向きが図面上方向であればプラス、下方向であればマイナスとなる。
【００８４】
次に、ステップＳ４４２にて、注目するフレーム画像に対して時系列順で一つ前のフレーム画像の補正動きベクトルＶ１（ｎ−１）のＸ成分Ｖ１ｘ（ｎ−１）の抽出処理を行う。もとより、前述したように、注目するフレーム画像が時系列順１番目のフレーム画像である場合は、Ｖ１ｘ（ｎ−１）は０である。
【００８５】
次に、ステップＳ４４３にて、Ｖ０ｘ（ｎ）の絶対値と、Ｖ１ｘ（ｎ−１）の絶対値とを算出する。そして、次の処理ステップＳ４４４にてＶ０ｘ（ｎ）の絶対値がＶ１ｘ（ｎ−１）の絶対値以上か否かを判定する。ステップＳ４４４でＮＯの場合、つまり注目するフレーム画像の移動量が、前補正フレーム画像の移動量より小さい場合、ステップＳ４４５に進み、減衰係数Ｋ、Ｄの値をＫ１、Ｄ１に決定し、ステップＳ４９０（図１２）に進む。
【００８６】
一方、ステップＳ４４４でＹＥＳの場合、つまり注目するフレーム画像の移動量が、前補正フレーム画像の移動量以上の場合、ステップＳ４４６に進み、Ｖ０ｘ（ｎ）とＶ１ｘ（ｎ−１）の積ＢＳｘを算出する。そして、次の処理ステップＳ４４７にて、ＢＳｘが０以上か否かを判定する。つまり、ここではベクトルＶ０ｘ（ｎ）とベクトルＶ１ｘ（ｎ−１）とが同じ向き（０以上）なのか逆向き（０より小さい）なのかを調べるのである。
【００８７】
ステップＳ４４７にてＮＯの場合（つまり逆向きの場合）、ステップＳ４４８に進み、減衰係数Ｋ、Ｄの値をＫ２、Ｄ２に決定し、ステップＳ４９０（図１２）に進む。ここで、Ｋ２の値はＫ１の値より大きく、Ｄ２の値はＤ１の値よりも大きい値である。
【００８８】
一方、ステップＳ４４７にてＹＥＳの場合（つまり同じ向きの場合）、ステップＳ４４９に進み、減衰係数Ｋ、Ｄの値をＫ３、Ｄ３に決定し、ステップＳ４９０（図１２）に進む。ここで、Ｋ３の値はＫ２の値より大きく、Ｄ３の値はＤ２の値よりも大きい値である。
【００８９】
減衰係数Ｋ、Ｄの値について、その一例を図１４の減衰係数テーブルＧＫＴ１に示した。ここで、減衰係数Ｋの値は０．９≦Ｋ≦１の範囲で、Ｋ１＜Ｋ２＜Ｋ３を満たす値であることが望ましい。また、減衰係数Ｄの値は０．５≦Ｄ≦１の範囲で、Ｄ１＜Ｄ２＜Ｄ３を満たす値であることが望ましい。補正しようとするフレーム画像の移動量が、前補正フレーム画像の移動量より小さい場合、補正しようとするフレーム画像の移動量が前フレーム画像の移動量に対して減少しているということになる。従って、仮に、補正しようとするフレーム画像の補正量が、前フレーム画像と同じ補正量であったとすると、補正量が補正限界値に達する確率は高くなる。そこで、小さい値の減衰係数を用いて補正量を少なくし、補正限界値に達しにくくするのである。
【００９０】
また、補正しようとするフレーム画像の移動量が、前補正フレーム画像の移動量以上である場合、これら２つのフレーム画像の移動量が違う方向のときは、補正しようとするフレーム画像の画面位置が前補正フレーム画像の画面位置に近づく方向に反転移動していることになる。そこで、同じ方向のときにくらべて減衰係数の値を小さくして、補正しようとするフレーム画像の補正量を少なくするのである。なお、減衰係数Ｋ１〜Ｋ３、Ｄ１〜Ｄ３の値は、これに限らず、前述した条件を満たす値であれば何でもよい。
【００９１】
以上、説明したＸ成分についての処理を、Ｙ成分についても同様に行い、Ｘ、Ｙ各成分別に減衰係数Ｋ、Ｄの値を決定して処理ステップＳ４９０に進む。
【００９２】
減衰係数Ｋ、Ｄの値がＸ成分、Ｙ成分について決定されると、ステップＳ４９０（図１２）に戻り、所定の演算式を用いて注目するフレーム画像Ｆ（ｎ）の補正位置ベクトルＳ（ｎ）を算出する処理を行う。本実施形態では、所定の演算式として次の式（１）を用いる。
Ｓ（ｎ）＝Ｋ×Ｓ（ｎ−１）＋Ｄ×（Ｖ０（ｎ）−Ｖ１（ｎ−１））    …（１）
【００９３】
注目するフレーム画像Ｆ（ｎ）の補正位置ベクトルＳ（ｎ）は、具体的には式（１）を用いて、Ｘ成分およびＹ成分についての補正位置ベクトルＳｘ（ｎ）およびＳｙ（ｎ）をそれぞれ算出することによって求められる。
【００９４】
式（１）から明らかなように、注目するフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）と、フレーム画像Ｆ（ｎ−１）を補正した補正フレーム画像ＨＦＧ（ｎ−１）の補正動きベクトルＶ１（ｎ−１）との差分を求め、この差分に減衰係数Ｄを乗じた値を補正位置ベクトルＳ（ｎ）の算出に用いるため、補正後の注目するフレーム画像Ｆ（ｎ）と前補正フレーム画像ＨＦＧ（ｎ−１）間について、画像の移動が滑らかになる確率が高くなる。
【００９５】
また、式（１）による補正位置ベクトルの算出方法によれば、補正しようとするフレーム画像が、パンやチルトなど一定の画面移動速度で撮影された画像の場合、Ｖ０（ｎ）が変数ではなく定数になることから、算出されるＳ（ｎ）は一定値になりやすい。つまり、パンやチルトなど一定方向に連続した動きを有するフレーム画像の補正については、撮影された元々の画像の動きに対する追随性がよいという効果も合わせて奏することになる。
【００９６】
なお、式（１）において、注目するフレーム画像が時系列順１番目（ｎ＝１）の場合、実施例２では前述したようにフレーム画像Ｆ（１）は動いていないとしたことから、Ｓ（１）＝０である。ちなみに、
ｎ＝２の場合は、Ｓ（２）＝Ｋ×０＋Ｄ×（Ｖ０（２）−０）＝Ｄ×Ｖ０（２）
ｎ＝３の場合は、Ｓ（３）＝Ｋ×Ｓ（２）＋Ｄ×（Ｖ０（３）−Ｖ１（２））
によって、補正位置ベクトルが算出される。
【００９７】
以上で、補正位置ベクトルの算出処理ルーチン（図８、ステップＳ４０）を終了し、次にステップＳ５０（図８）に進む。ステップＳ５０では、補正フレーム画像ＨＦＧ（ｎ）の生成処理を行う。
【００９８】
図１５に、ｎ＝３のときフレーム画像Ｆ（３）から所定の画像を切り出して生成される補正フレーム画像ＨＦＧ（３）の例を示した。図１５の上側に、補正がされない場合つまり補正量が０である場合において所定の画像となるフレーム画像ＦＫ（３）を破線で示した。そして、図１５の下側に、ステップＳ４０にて算出された補正位置ベクトルＳ（３）に従って、Ｘ方向にＳｘ（３）、Ｙ方向にＳｙ（３）だけ画面位置を補正して切り出した補正フレーム画像ＨＦＧ（３）を示した。このように、画面位置を補正することによって、フレーム画像について画像の移動量が抑えられることになる。
【００９９】
次に、ステップＳ６０にて、生成された補正フレーム画像ＨＦＧ（ｎ）について補正動きベクトルＶ１（ｎ）の算出処理を行う。前述したように、ここで算出した補正動きベクトルは時系列順で一つ後のフレーム画像の補正動きベクトルを算出するために用いられる。もとより、補正動きベクトルはＸ成分Ｖ１ｘ（ｎ）とＹ成分Ｖ１ｙ（ｎ）のベクトルとして算出する。
【０１００】
次に、ステップＳ７０にて、補正フレーム画像ＨＦＧ（ｎ）の出力処理を行う。実施例２では、生成された補正フレーム画像ＨＦＧ（ｎ）を、出力Ｉ／Ｆ１０６（図７）によってビデオプロジェクタ３００などの画像表示装置が必要とする画像信号に変換し、補正フレーム画像を生成する毎に直ちに出力するものとする。こうすれば、補正対象となるフレーム画像の取得後から補正フレーム画像の出力までの時間が短くなり、補正をリアルタイムでおこなえる可能性がある。もとより、補正フレーム画像ＨＦＧ（ｎ）の出力先をＲＡＭ１０２やハードディスク１０５などに設けられた所定の画像ファイルとし、生成した一連の複数の補正フレーム画像を格納することとしてもよい。
【０１０１】
以上で、フレーム画像Ｆ（ｎ）についての処理を終了し、ステップＳ８０にてｎを更新処理する。そして、ステップＳ１０に戻り、時系列順で一つ後のフレーム画像を新たにフレーム画像Ｆ（ｎ）として以降の処理を繰り返し、取得される全てのフレーム画像について補正フレーム画像を出力するのである。
【０１０２】
上述した処理内容から明らかなように、実施例２による補正方法によれば、補正限界値内での補正ができるように減衰係数の値を決定するため、補正限界値を超える確率を抑えることが可能となる。また、注目するフレーム画像の補正量の算出に際して、算出する演算式に、注目するフレーム画像より時系列順一つ前のフレーム画像を補正した補正フレーム画像の動きベクトルつまり補正動きベクトルも用いることとしたため、補正フレーム画像について画像の移動が滑らかになり、不規則な画像の動きを抑制することが可能となる。
【０１０３】
実施例２による補正結果を図１６に示した。図１６において、縦軸は各フレーム画像のＸ方向若しくはＹ方向の画面位置を示し、横軸は取得したフレーム画像の時系列順を表すフレーム画像数を示している。ちなみに横軸の左端はフレーム画像Ｆ（１）を示す。太い一点鎖線は補正前のフレーム画像の画面位置の軌跡を示し、太い実線は補正後の補正フレーム画像ＨＦＧ（ｎ）の画面位置の軌跡を示している。また、細い二点鎖線は補正できる範囲（補正限界値Ｓｍａｘ）を示す。比較のために、従来例による補正フレーム画像の画面位置の軌跡を太い破線で例示した。
【０１０４】
図１６から明らかなように、矢印Ａ（フレーム画像ＦＫ（ｎ）の画面位置が増加から減少に変わる位置）で、例えば第１の実施例によれば、動きベクトルＶ０（ｎ）の向きが反転することから、減衰係数が小さい値に決定され補正量が減少する。この結果、従来例より早くフレーム画像ＦＫ（ｎ）の位置に近づけるように補正されることが分かる。また、矢印Ｂ付近では、従来例では補正が遅くなるためそのまま補正限界値に達してしまうが、例えば実施例２によれば、補正量と補正限界値の比率が小さくなることから、減衰係数の値を小さくして補正量が減少するようにしているため、補正限界値内で補正できることが分かる。
【０１０５】
このように、実施例２による画像処理装置によれば、動きベクトルの検出において、画像の相関の算出を密領域と疎領域に分け、密領域ではすべての画素の相関を算出することで精度の高い動きベクトルの検出ができるようにし、疎領域では一部の画素の相関を算出することで相関の算出回数が少なくなるようにしている。手ぶれなどの画像揺れでは、密領域内に相関が最も強い画素がある小さな揺れの発生頻度が非常に高いので、この発生頻度が高い小さな揺れについて精度の良い動きベクトルの検出ができる。そのため、動きベクトルの精度がよくなり、画像揺れも精度良く取り除けることになる。
【０１０６】
また、補正限界に達する確率を低くでき、また補正フレーム画像の画面位置の移動量が、注目するフレーム画像の補正量の算出に際して、注目するフレーム画像より時系列順で一つ前の補正フレーム画像の画像位置を考慮して算出する。従って、補正フレーム画像について、画面位置の移動が滑らかになる確率が高くなり、不規則な画像移動を抑えることができる。この結果、補正フレーム画像による動画像の鑑賞時、鑑賞者に例えば映像酔いなどの不快感を与えない画像補正を実現することができる。
【図面の簡単な説明】
【０１０７】
【図１】実施例１の動きベクトル検出装置の概略構成を示す説明図。
【図２】実施例１の動きベクトル検出装置の機能ブロック図。
【図３】動きベクトルの算出の概略を説明するための説明図。
【図４】探索ブロック、累積加算テーブルの形状を説明するための説明図。
【図５】動きベクトル検出の処理を説明するためのフローチャート。
【図６】探索ブロックにおける最大相関値画素と最大隣接画素の位置関係を説明するための説明図。
【図７】実施例２の画像処理装置の概略構成を示す説明図。
【図８】実施例２の画像処理装置の処理を説明するフローチャート。
【図９】実施例２で動きベクトル検出を行う時の参照代表点の位置を説明するための説明図。
【図１０】フレーム画像の動きベクトルを説明するための説明図。
【図１１】フレーム画像の動きベクトルと補正動きベクトル、及び補正位置ベクトルの関係を説明するための説明図。
【図１２】補正位置ベクトルの算出処理を説明するフローチャート。
【図１３】減衰係数の決定処理を説明するフローチャート。
【図１４】減衰係数の値を説明するための減衰係数テーブル。
【図１５】フレーム画像から補正フレーム画像を生成する方法を説明する説明図。
【図１６】実施例２の画像処理装置による補正の効果を説明するための説明図。
【符号の説明】
【０１０８】
１００…コンピュータ、１０１…入力Ｉ／Ｆ、１０２…ＲＡＭ、１０３…ＣＰＵ、１０４…ＲＯＭ、１０５…ハードディスク、１０６…出力Ｉ／Ｆ、１０７…バス、５００…動きベクトル検出プログラム、５１０…フレーム画像、５２０…動きベクトル、５３２…フレームメモリ、５３４…相関値算出部、５３６…累積加算テーブル、５３８…代表点データ生成部、５４０…動きベクトル決定部、１１０…フレーム画像取得部、１２０…動きベクトル算出部、６００…参照代表点、６２０…探索ブロック、６３０…探索代表点、１３０…補正位置算出部、１４０…補正フレーム画像生成部、１５０…補正動きベクトル算出部、１６０…画像出力部、２００…ビデオカメラ、２１０…ＤＶＤプレーヤ、３００…プロジェクタ、３１０…ディスプレイ、Ｆ（ｎ）…フレーム画像、ＦＫ（ｎ）…フレーム画像、ＨＦＧ（１）…補正フレーム画像、Ｓｍａｘ…補正限界値、Ｓｘｍａｘ…補正限界値のＸ成分、Ｓｙｍａｘ…補正限界値のＹ成分、Ｖ０（ｎ）…動きベクトル、Ｖ１（ｎ）…補正動きベクトル、Ｓ（ｎ）…補正位置ベクトル、Ｓｘ（ｎ）…補正位置ベクトルのＸ成分、Ｓｙ（ｎ）…補正位置ベクトルのＹ成分、Ｋ…減衰係数、Ｄ…減衰係数、ＧＫＴ１…減衰係数テーブル。
【図１】
2007034570.tif 000003
【図２】
2007034570.tif 000004
【図３】
2007034570.tif 000005
【図４】
2007034570.tif 000006
【図５】
2007034570.tif 000007
【図６】
2007034570.tif 000008
【図７】
2007034570.tif 000009
【図８】
2007034570.tif 000010
【図９】
2007034570.tif 000011
【図１０】
2007034570.tif 000012
【図１１】
2007034570.tif 000013
【図１２】
2007034570.tif 000014
【図１３】
2007034570.tif 000015
【図１４】
2007034570.tif 000016
【図１５】
2007034570.tif 000017
【図１６】
2007034570.tif 000018