(57)【特許請求の範囲】
【請求項１】
連続する第１及び第２の画像間の動きベクトルを検出する動きベクトル検出方法において、
前記第１の画像内における所定ブロックサイズの基準画像と、前記第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の前記所定ブロックサイズの候補画像とのブロック間の相関値をそれぞれ算出し、
前記動き探索範囲において近接する複数の前記候補画像における評価値を、該複数の前記候補画像それぞれの前記ブロック間の相関値を用いて算出し、
前記複数の前記候補画像における評価値の中から最も相関の高い前記複数の前記候補画像における評価値を判別し、
前記複数の前記候補画像における評価値のうち、最も相関の高い前記複数の前記候補画像における評価値の算出に用いた前記ブロック間の相関値から最も相関の高い前記ブロック間の相関値を判別して、該判別された前記ブロック間の相関値を算出する際に用いた前記候補画像と、前記基準画像に基づいて動きベクトルを決定する
ことを特徴とする動きベクトル検出方法。
【請求項２】
前記基準画像と前記候補画像との差分絶対値和を前記ブロック間の相関値とし、
前記複数の前記候補画像における評価値は該複数の前記候補画像それぞれの前記ブロック間の相関値を加算して算出するものとし、
前記複数の前記候補画像における評価値の中から最小の評価値を判別し、
前記最も相関の高い前記複数の前記候補画像における評価値として最小の評価値を判別すると共に、前記最も相関の高い前記ブロック間の相関値として前記最も相関の高い前記複数の前記候補画像における評価値の算出に用いた前記ブロック間の相関値の中から最小の評価値を判別する
ことを特徴とする請求項１記載の動きベクトル検出方法。
【請求項３】
連続する第１及び第２の画像間の動きベクトルを検出する動きベクトル検出装置において、
前記第１の画像内における所定ブロックサイズの基準画像と、前記第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の前記所定ブロックサイズの候補画像とのブロック間の相関値をそれぞれ算出する相関値算出手段と、
前記動き探索範囲において近接する複数の前記候補画像における評価値を、該複数の前記候補画像それぞれの前記ブロック間の相関値を用いて算出する評価値算出手段と、
前記複数の前記候補画像における評価値の中から最も相関の高い前記複数の前記候補画像における評価値を判別する評価値判別手段と、
前記複数の前記候補画像における評価値のうち、最も相関の高い前記複数の前記候補画像における評価値の算出に用いた前記ブロック間の相関値から最も相関の高い前記ブロック間の相関値を判別して、該判別された前記ブロック間の相関値を算出する際に用いた前記候補画像と、前記基準画像に基づいて動きベクトルを決定する動きベクトル決定手段とを有する
ことを特徴とする動きベクトル検出装置。
【請求項４】
前記相関値算出手段は、前記基準画像と前記候補画像との差分絶対値和を前記ブロック間の相関値として算出し、
前記評価値算出手段は、前記複数の前記候補画像それぞれの前記ブロック間の相関値を加算して前記複数の前記候補画像における評価値を算出するものとし、
前記評価値判別手段は、前記複数の前記候補画像における評価値の中から最小の評価値を判別し、
前記動きベクトル決定手段は、前記最も相関の高い前記複数の前記候補画像における評価値として最小の評価値を判別すると共に、前記最も相関の高い前記ブロック間の相関値として前記最も相関の高い前記複数の前記候補画像における評価値の算出に用いた前記ブロック間の相関値の中から最小の評価値を判別する
ことを特徴とする請求項３記載の動きベクトル検出装置。
【請求項５】
コンピュータに、
第１の画像内における所定ブロックサイズの基準画像と、前記第１の画像と連続する第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の前記所定ブロックサイズの候補画像とのブロック間の相関値をそれぞれ算出する手順と、
前記動き探索範囲において近接する複数の前記候補画像における評価値を、該複数の前記候補画像それぞれの前記ブロック間の相関値を用いて算出する手順と、
前記複数の前記候補画像における評価値の中から最も相関の高い前記複数の前記候補画像における評価値を判別する手順と、
前記複数の前記候補画像における評価値のうち、最も相関の高い前記複数の前記候補画像における評価値の算出に用いた前記ブロック間の相関値から最も相関の高い前記ブロック間の相関値を判別して、該判別された前記ブロック間の相関値を算出する際に用いた前記候補画像と、前記基準画像に基づいて動きベクトルを決定する手順とを実行させるプログラムを記録した
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項６】
コンピュータに、
第１の画像内における所定ブロックサイズの基準画像と、前記第１の画像と連続する第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の前記所定ブロックサイズの候補画像とのブロック間の相関値をそれぞれ算出する手順と、
前記動き探索範囲において近接する複数の前記候補画像における評価値を、該複数の前記候補画像それぞれの前記ブロック間の相関値を用いて算出する手順と、
前記複数の前記候補画像における評価値の中から最も相関の高い前記複数の前記候補画像における評価値を判別する手順と、
前記複数の前記候補画像における評価値のうち、最も相関の高い前記複数の前記候補画像における評価値の算出に用いた前記ブロック間の相関値から最も相関の高い前記ブロック間の相関値を判別して、該判別された前記ブロック間の相関値を算出する際に用いた前記候補画像と、前記基準画像に基づいて動きベクトルを決定する手順とを実行させる
ことを特徴とする動きベクトル検出プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、動きベクトル検出方法と動きベクトル検出装置及びコンピュータ読み取り可能な記録媒体と動きベクトル検出プログラムに関する。詳しくは、連続する第１及び第２の画像間の動きベクトルを検出する際に、第１の画像内における所定ブロックサイズの基準画像と、第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の所定ブロックサイズの候補画像との相関値をそれぞれ算出して、近接する候補画像の相関値を用いて複数の評価値を算出し、複数の評価値から最も相関の高い評価値を判別して、この最も相関の高い評価値の算出に用いた相関値から最も相関の高い相関値をさらに判別して、この判別された相関値を算出する際に用いた候補画像と、基準画像に基づいて動きベクトルを決定するものである。
【０００２】
【従来の技術】
連続した画像間の動きベクトルを求める方法として、例えばブロックマッチング法がある。このブロックマッチング法は、第１の画像を適当な大きさのブロック（例えば８画素×８ライン）に分割して基準画像とし、また、第１の画像と連続する第２の画像（例えば前フレームや前フィールドの画像）から、基準画像と等しい画像サイズの候補画像を取り出して、基準画像と候補画像の誤差を画素毎に検出して積算することにより差分絶対値和を算出する。さらに、候補画像の取り出し位置を動き探索範囲内で移動させて差分絶対値和を順次算出する。その後、算出された複数の差分絶対値和から最も値の小さい差分絶対値和を検出して、この差分絶対値和を算出したときに用いた候補画像の取り出し位置と基準画像との位置ずれが、その基準画像のブロックの動きベクトルを表すものとなる。
【０００３】
図８は、従来の動きベクトル検出装置の構成を示している。なお、図８では、動き探索範囲ＡＳを基準画像の位置から例えば水平方向に対して±１０画素、垂直方向に対して±１０ラインとした場合である。
【０００４】
動きベクトル検出装置１００のブロック相関値算出部１２(-10,-10)は、画像ＧＡを適当な大きさのブロックに分割して得た基準画像Ｇｒと、画像ＧＢから取り出した候補画像Ｇｓとの信号レベルの差分絶対値和をブロック相関値Ｄ(-10,-10)として算出する。
【０００５】
基準画像Ｇｒの画像信号Ｓｒは、減算器１２２に供給される。また基準画像Ｇｒの位置を示す位置信号ＳＰと画像ＧＢの画像信号ＳＢは、信号抽出器１２１に供給される。信号抽出器１２１は、位置信号ＳＰで示された基準画像Ｇｒの位置と等しい画像ＧＢの位置Ｐ(0,0)を基準として、水平方向に−１０画素及び垂直方向に−１０ライン分移動した位置Ｐ（-10,-10)を設定する。さらに、この位置Ｐ（-10,-10)に基づき基準画像Ｇｒと等しい画像サイズ分の画像信号を画像信号ＳＢから抽出して、候補画像Ｇｓ(-10,-10)の画像信号Ｓｓ(-10,-10)として減算器１２２に供給する。
【０００６】
減算器１２２は、画像信号Ｓｒから画像信号Ｓｓ(-10,-10)を減算して、対応する画素毎の誤差Ｅを算出する。絶対値回路１２３は、減算器１２２で算出された誤差Ｅの絶対値を算出して、加算器１２４に誤差絶対値ＥＡとして供給する。
【０００７】
加算器１２４は、後述する相関値保持回路１２５から供給された相関値ＦＡと誤差絶対値ＥＡを加算して、加算値ＥＦを相関値保持回路１２５に供給する。相関値保持回路１２５は、供給された加算値ＥＦを新たな相関値ＦＡとして保持する。また保持した相関値ＦＡを加算器１２４に供給する。
【０００８】
このように、加算値ＥＦを新たな相関値ＦＡとして保持すると共に、保持した相関値ＦＡを加算器１２４に供給して、次の画素の誤差絶対値ＥＡと加算することで、相関値ＦＡは、誤差絶対値ＥＡの累積値を示すものとなる。また、誤差絶対値ＥＡを基準画像Ｇｒの全画素分加算したときには、相関値保持回路１２５に保持している相関値ＦＡが、ブロック相関値Ｄ(-10,-10)として、相関値格納メモリ１４に供給される。
【０００９】
ブロック相関値算出部１２(-9,-10)〜１２(10,10)においても、ブロック相関値算出部１２(-10,-10)と同様に、ブロック相関値Ｄ(-9,-10)〜Ｄ(10,10)を算出して相関値格納メモリ１４に供給する。なお、ブロック相関値算出部１２(-9,-10)〜１２(10,10)の信号抽出器１２１は、画像ＧＢ上の位置Ｐ(0,0)から水平方向及び垂直方向に互いに異なる画素数あるいはライン数移動した位置であって、基準画像Ｇｒと等しい画像サイズ分の画像信号を画像信号ＳＢから抽出して、候補画像Ｇｓの画像信号Ｓｓを生成する。あるいは、画像ＧＢ上の位置Ｐ(0,0)から、基準画像Ｇｒと等しい画像サイズ分の画像信号を画像信号ＳＢから抽出して候補画像Ｇｓの画像信号Ｓｓを生成する。
【００１０】
相関値格納メモリ１４は、供給されたブロック相関値Ｄ(-10,-10)〜Ｄ(10,10)を保持する。この相関値格納メモリ１４には、最小位置検出部１６が接続されており、最小位置検出部１６は、相関値格納メモリ１４に格納されているブロック相関値Ｄ(-10,-10)〜Ｄ(10,10)から最小値を検出して、最小値を算出したブロック相関値算出部１２における候補画像の画像信号の取り出し位置と基準画像との位置ずれを、基準画像のブロックの動きベクトルとして出力する。
【００１１】
図９は、図８に示す動きベクトル検出装置の動作を図示したものである。ブロック相関値算出部１２では、画像ＧＡを適当な大きさのブロックに分割して得た基準画像Ｇｒと、画像ＧＢから取り出した候補画像Ｇｓの差分絶対値和であるブロック相関値Ｄを算出して相関値格納メモリ１４に供給する。このとき、画像ＧＢからの候補画像Ｇｓの取り出し位置を動き探索範囲ＡＳ内で順次移動させて、各位置のブロック相関値Ｄを算出する。ここで、動き探索範囲ＡＳを位置Ｐ(0,0)から水平方向に±１０画素、垂直方向に±１０ライン分の範囲としたときには、相関値格納メモリ１４に１２１個のブロック相関値Ｄが格納されることとなる。
【００１２】
最小位置検出部１６では、相関値格納メモリ１４に記憶されているブロック相関値Ｄから最小値を検出して、最小値を算出したときの候補画像Ｇｓの位置と基準画像Ｇｒの位置Ｐ(0,0)に基づいて、動きベクトルＭＶaを決定する。
【００１３】
【発明が解決しようとする課題】
ところで、上述のような動き検出装置を用いる場合、画像の動きが画素単位の動きであるときには、ブロック間の誤差が最も少なくなるブロックを探索することで、動きベクトルを正しく検出できる。しかし、実際の画像の動きでは画素以下の動きも含まれる。このため、単にブロック相関値が最も少なくなる候補画像の取り出し位置を探索するだけでは、動きベクトルを正しく検出することができない場合が生じてしまう。例えば、図１０に示す候補画像Ｇｓの取り出し位置Ｐ(k)であるときに、候補画像Ｇｓと基準画像Ｇｒが最も類似する場合、動きが画素以下であるため取り出し位置Ｐ(j)でブロック相関値Ｄが「Ｌ2」よりも小さい「Ｌ1」となってしまうと、基準画像の位置Ｐ(0)とブロック相関値が最小となる位置Ｐ(j)に基づいて動きベクトルが検出されてしまう。このため、正しい動きベクトルを正しく検出することができなくなってしまう。
【００１４】
そこで、この発明では、画素以下の動きが画像に含まれていても正しく動きベクトルを検出できる、動きベクトル検出方法と動きベクトル検出装置及びコンピュータ読み取り可能な記録媒体と動きベクトル検出プログラムを提供するものである。
【００１５】
【課題を解決するための手段】
この発明に係る動きベクトル検出方法は、連続する第１及び第２の画像間の動きベクトルを検出する動きベクトル検出方法において、第１の画像内における所定ブロックサイズの基準画像と、第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の所定ブロックサイズの候補画像とのブロック間の相関値をそれぞれ算出し、動き探索範囲において近接する複数の候補画像における評価値を、該複数の候補画像それぞれのブロック間の相関値を用いて算出し、複数の候補画像における評価値の中から最も相関の高い複数の候補画像における評価値を判別し、複数の前記候補画像における評価値のうち、最も相関の高い複数の候補画像における評価値の算出に用いたブロック間の相関値から最も相関の高いブロック間の相関値を判別して、該判別されたブロック間の相関値を算出する際に用いた候補画像と、基準画像に基づいて動きベクトルを決定するものである。
【００１６】
また、動きベクトル検出装置は、連続する第１及び第２の画像間の動きベクトルを検出する動きベクトル検出装置において、第１の画像内における所定ブロックサイズの基準画像と、第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の所定ブロックサイズの候補画像とのブロック間の相関値をそれぞれ算出する相関値算出手段と、動き探索範囲において近接する複数の候補画像における評価値を、該複数の候補画像それぞれのブロック間の相関値を用いて算出する評価値算出手段と、複数の候補画像における評価値の中から最も相関の高い複数の候補画像における評価値を判別する評価値判別手段と、複数の候補画像における評価値のうち、最も相関の高い複数の候補画像における評価値の算出に用いたブロック間の相関値から最も相関の高いブロック間の相関値を判別して、該判別されたブロック間の相関値を算出する際に用いた候補画像と、基準画像に基づいて動きベクトルを決定する動きベクトル決定手段とを有するものである。
【００１７】
また、コンピュータ読み取り可能な記録媒体は、コンピュータに、第１の画像内における所定ブロックサイズの基準画像と、第１の画像と連続する第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の所定ブロックサイズの候補画像とのブロック間の相関値をそれぞれ算出する手順と、動き探索範囲において近接する複数の候補画像における評価値を、該複数の候補画像それぞれのブロック間の相関値を用いて算出する手順と、複数の候補画像における評価値の中から最も相関の高い複数の候補画像における評価値を判別する手順と、複数の候補画像における評価値のうち、最も相関の高い複数の候補画像における評価値の算出に用いたブロック間の相関値から最も相関の高いブロック間の相関値を判別して、該判別されたブロック間の相関値を算出する際に用いた候補画像と、基準画像に基づいて動きベクトルを決定する手順とを実行させるプログラムを記録したものである。
【００１８】
さらに、動きベクトル検出プログラムは、コンピュータに、第１の画像内における所定ブロックサイズの基準画像と、第１の画像と連続する第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の所定ブロックサイズの候補画像とのブロック間の相関値をそれぞれ算出する手順と、動き探索範囲において近接する複数の候補画像における評価値を、該複数の候補画像それぞれのブロック間の相関値を用いて算出する手順と、複数の候補画像における評価値の中から最も相関の高い複数の候補画像における評価値を判別する手順と、複数の候補画像における評価値のうち、最も相関の高い複数の候補画像における評価値の算出に用いたブロック間の相関値から最も相関の高いブロック間の相関値を判別して、該判別されたブロック間の相関値を算出する際に用いた候補画像と、基準画像に基づいて動きベクトルを決定する手順とを実行させるものである。
【００１９】
この発明においては、連続する第１及び第２の画像間の動きベクトルを検出する際に、第１の画像内における所定ブロックサイズの基準画像と、第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の所定ブロックサイズの候補画像との例えば差分絶対値和が相関値としてそれぞれ算出される。近接する候補画像の相関値が加算されて複数の評価値が算出される。さらに、複数の評価値から最も値の小さい評価値が判別されて、最も値の小さい評価値の算出に用いた相関値から最も値の小さい相関値が判別される。この判別された相関値を算出する際に用いた候補画像の位置と、基準画像の位置に基づいて動きベクトルが決定される。
【００２０】
【発明の実施の形態】
以下、図を参照しながら、この発明の実施の一形態について説明する。図１は動きベクトル検出装置１０の構成を示している。この動きベクトル検出装置１０は、連続する画像ＧＡと画像ＧＢとの画像間の動きベクトルを検出する際に、画像ＧＡ内における所定ブロックサイズの基準画像Ｇｒと、画像ＧＢ内に設けた動き探索範囲ＡＳに含まれると共に位置の異なる複数の所定ブロックサイズの候補画像Ｇｓとの相関値として、例えば絶対値和を用いる場合を示している。なお、図１は、動き探索範囲ＡＳを基準画像の位置から例えば水平方向に対して±１０画素、垂直方向に対して±１０ラインとしていた場合を示している。また、図１において、図８に示した従来の動きベクトル検出装置と対応する部分については、同一符号を付している。
【００２１】
ブロック相関値算出部１２(-10,-10)〜１２(10,10)は、基準画像Ｇｒと候補画像Ｇｓの相関値として誤差絶対値和を算出する。このブロック相関値算出部１２(-10,-10)の減算器１２２には、基準画像Ｇｒの画像信号Ｓｒが供給される。また信号抽出器１２１には、基準画像Ｇｒの位置を示す位置信号ＳＰと画像ＧＢの画像信号ＳＢが供給される。
【００２２】
信号抽出器１２１は、位置信号ＳＰで示された基準画像Ｇｒの位置と等しい画像ＧＢ上の位置Ｐ(0,0)に対して、水平方向に−１０画素及び垂直方向に−１０ライン分移動した位置Ｐ（-10,-10)を設定する。また、この位置Ｐ（-10,-10)に基づき基準画像Ｇｒと等しい画像サイズ分の画像信号を画像信号ＳＢから抽出して、候補画像Ｇｓの画像信号Ｓｓとして減算器１２２に供給する。
【００２３】
減算器１２２は、画像信号Ｓｒから画像信号Ｓｓ(-10,-10)を減算して、対応する画素毎の誤差Ｅを算出する。また、絶対値回路１２３は、誤差Ｅの絶対値を算出して、加算器１２４に誤差絶対値ＥＡとして供給する。
【００２４】
加算器１２４は、相関値保持回路１２５から供給された相関値ＦＡと誤差絶対値ＥＡを加算して、加算値ＥＦを相関値保持回路１２５に供給する。相関値保持回路１２５は、供給された加算値ＥＦを新たな相関値ＦＡとして保持すると共に、保持した相関値ＦＡを加算器１２４に供給して、誤差絶対値ＥＡの累積値を相関値ＦＡとして保持する。さらに、誤差絶対値ＥＡを基準画像Ｇｒの全画素分加算したときには、保持している相関値ＦＡ、すなわち誤差絶対値和をブロック相関値Ｄ(-10,-10)として、相関値格納メモリ１４に供給する。
【００２５】
ブロック相関値算出部１２(-9,-10)〜１２(10,10)においても、ブロック相関値算出部１２(-10,-10)と同様に、ブロック相関値Ｄ(-9,-10)〜Ｄ(10,10)を算出して相関値格納メモリ１４に供給する。なお、ブロック相関値算出部１２(-9,-10)〜１２(10,10)の信号抽出器１２１は、画像ＧＢの画像信号から動き探索範囲内であると共に互いに異なる位置の画像信号を抽出して、候補画像Ｇｓの画像信号Ｓｓを生成する。
【００２６】
相関値格納メモリ１４は、供給されたブロック相関値Ｄ(-10,-10)〜Ｄ(10,10)を保持する。この相関値格納メモリ１４には、評価値算出手段である相関値加算部１８と、動きベクトル決定部２２が接続されている。
【００２７】
相関値加算部１８は、近接する候補画像のブロック相関値Ｄを加算して評価値である加算値ＤＭを算出する。図２は、相関値加算部１８の構成を示している。ここで、近接する候補画像のブロック相関値、例えば水平方向に隣接するブロック相関値Ｄを加算して評価値である加算値ＤＭを算出するものとした場合、相関値加算部１８は、水平方向に隣接する例えば３つのブロック相関値Ｄを加算する加算器１８１を、水平方向のブロック相関値Ｄの数に応じて設けるものとする。ここで、動き探索範囲ＡＳが水平方向に±１０画素分とされている場合、垂直方向の移動量「ｙライン(yは垂直方向の探索範囲内の値)」に対してブロック相関値Ｄ(-10,y)〜Ｄ(10,y)が相関値格納メモリ１４に格納される。このため、ブロック相関値Ｄ(-10,y)，Ｄ(-9,y)，Ｄ(-8,y)を加算する加算器１８１(-9)、ブロック相関値Ｄ(-9,y)，Ｄ(-8,y)，Ｄ(-7,y)を加算する加算器１８１(-8)、・・・、ブロック相関値Ｄ(8,y)，Ｄ(9,y)，Ｄ(10,y)を加算する加算器１８１(9)を設ける。
【００２８】
加算器１８１(-9)で算出された加算値ＤＭ(-9,y)、加算器１８１(-8)で算出された加算値ＤＭ(-8,y)、・・・、加算器１８１(9)で算出された加算値ＤＭ(9,y)は評価値判別手段である最小加算値判別部２０に供給される。また、相関値加算部１８に対して、±１０ラインの移動範囲のブロック相関値Ｄを順次供給することにより、ブロック相関値Ｄ(-10,-10)〜Ｄ(10,10)に基づいて算出した加算値ＤＭ(-9,-10)〜ＤＭ(9,10)を最小加算値判別部２０に供給できる。
【００２９】
最小加算値判別部２０は、最も相関の高い評価値を判別する。ここで、評価値は、誤差絶対値和を示すブロック相関値Ｄを加算したものであることから、最も相関の高い評価値として、供給された加算値ＤＭ(-9,-10)〜ＤＭ(9,10)から最も値が小さい加算値を判別する。この最小加算値判別部２０で、最も値の小さい加算値を判別したときには、この最も値の小さい加算値ＤＭminを示す判別結果信号ＳＤＭを生成して動きベクトル決定部２２に供給する。
【００３０】
動きベクトル決定部２２は、判別結果信号ＳＤＭに基づき、相関値格納メモリ１４に格納されているブロック相関値Ｄ(-10,-10）〜Ｄ(10,10）から、加算値ＤＭminを算出したときに用いたブロック相関値を選択する。また、選択したブロック相関値の中から最も相関の高いブロック相関値を判別する。この場合、上述のようにブロック相関値として誤差絶対値和を用いていることから、最も相関の高い相関値として、値が小さいブロック相関値を判別する。さらに、この判別したブロック相関値の算出に用いた候補画像Ｇｓの取り出し位置と基準画像Ｇｒの位置Ｐ(0,0)に基づいて、動きベクトルＭＶを決定する。
【００３１】
図３は動きベクトル検出装置１０の動作を図示したものである。ブロック相関値算出部１２では、画像ＧＡを適当な大きさのブロックに分割して得た基準画像Ｇｒと、画像ＧＢから取り出した候補画像Ｇｓの差分絶対値和であるブロック相関値Ｄを算出する。このとき、画像ＧＢから候補画像Ｇｓを取り出す際の取り出し位置を動き探索範囲ＡＳ内で順次移動させて、各位置のブロック相関値Ｄを算出する。なお図３において、基準画像Ｇｒは、位置Ｐ(0,0)から例えば水平方向に５画素分であると共に垂直方向に４ライン分の画像として図示している。
【００３２】
ここで、基準画像Ｇｒと等しい位置Ｐ(0,0)から水平方向に±１０画素、垂直方向に±１０ラインの範囲を動き探索範囲としたとき、相関値格納メモリ１４には、ブロック相関値Ｄ(-10,-10)〜Ｄ(10,10)が格納される。
【００３３】
相関値加算部１８は、水平方向に隣接する例えば３つのブロック相関値Ｄを加算して１つの加算値ＤＭをする。このため、相関値格納メモリ１４に格納されているブロック相関値Ｄ(-10,-10)〜Ｄ(10,10)に基づき、加算値ＤＭ(-9，-10)〜ＤＭ(9,10)が生成される。
【００３４】
最小加算値判別部２０は、算出された加算値ＤＭから最も値の小さい加算値ＤＭminを探索する。ここで、例えば加算値ＤＭ(r,s)の値が最も小さいときには、この加算値ＤＭ(r,s)を示す判別結果信号ＳＤＭを動きベクトル決定部２２に供給する。
【００３５】
動きベクトル決定部２２は、判別結果信号ＳＤＭによって示された加算値ＤＭ(r,s)を算出する際に用いたブロック相関値Ｄ(r-1,s)，Ｄ(r,s)，Ｄ(r+1,s)を選択する。また、選択したブロック相関値Ｄ(r-1,s)，Ｄ(r,s)，Ｄ(r+1,s)から、最も値の小さいブロック相関値、例えばブロック相関値Ｄ(r,s)を判別する。このブロック相関値Ｄ(r,s)を算出したときの候補画像Ｇｓの取り出し位置Ｐ(r,s)が、画像ＧＢ上における基準画像Ｇｒの移動位置であり、基準画像Ｇｒの位置Ｐ(0,0)と候補画像Ｇｓの位置Ｐ(r,s)から動きベクトルＭＶを決定できる。
【００３６】
図４は、候補画像の取り出し位置に対するブロック相関値Ｄと加算値ＤＭを示したものである。ここで、候補画像Ｇｓの取り出し位置が位置Ｐ(k)で基準画像Ｇｒと最も類似する場合、取り出し位置が位置Ｐ(k-1)や位置Ｐ(k+1)とされても、基準画像Ｇｒに対する候補画像Ｇｓの画像ずれは少ないことから、ブロック相関値Ｄの値も小さくなる。したがって、画像の動きが画素以下で候補画像Ｇｓの取り出し位置Ｐ(j)におけるブロック相関値（＝Ｌ１）が、図４Ａに示すように位置Ｐ(k)におけるブロック相関値（＝Ｌ２）よりも小さくなっても、例えば隣接する３つのブロック相関値を加算した加算値ＤＭは、図４Ｂに示すように、基準画像Ｇｒと候補画像Ｇｓが最も類似する部分で小さくなり、位置Ｐ(j)に対応する加算値ＤＭjよりも位置Ｐ(k)に対応する加算値ＤＭkが小さくなる。このため、最も小さい加算値を算出したときに用いたブロック相関値から、最も値が小さくなるブロック相関値を算出したときの画像取り出し位置が基準画像の移動位置となり、このときの候補画像取り出し位置と基準画像の位置に基づいて動きベクトルＭＶを正しく決定できる。
【００３７】
ところで、上述の実施の形態では、水平方向に隣接する３つのブロック相関値を加算して加算値ＤＭを求めるものとしたが、垂直方向に隣接する３つのブロック相関値を加算しても、同様に処理することで動きベクトルを正しく生成できる。さらに、水平方向あるいは垂直方向だけでなく、近接する周囲の候補画像に基づくブロック相関値も含めて加算値を算出して、この加算値を用いて同様な処理を行うことで動きベクトルを正しく決定できる。
【００３８】
図５は、相関値加算部１８において、近接する周囲の候補画像に基づくブロック相関値も含めて加算値を算出する場合の動作を説明するための図である。相関値加算部１８は、近接する周囲の候補画像に基づくブロック相関値を含めた加算値ＤＭを算出する。例えば１つのブロック相関値Ｄ(m,n)と周囲に位置する候補画像に基づくブロック相関値Ｄ(m-1,n-1)，Ｄ(m-1,n)，Ｄ(m-1,n+1)，Ｄ(m,n-1)，Ｄ(m,n+1)，Ｄ(m+1,n-1)，Ｄ(m+1,n)，Ｄ(m+1,n+1)を加算して１つの加算値ＤＭをする。このため、相関値格納メモリ１４に格納されているブロック相関値Ｄ(-10,-10)〜Ｄ(10,10)に基づき、加算値ＤＭ(-9，-9)〜ＤＭ(9,9)が生成される。
【００３９】
最小加算値判別部２０は、算出された加算値ＤＭから最も値の小さい加算値ＤＭを探索する。ここで、例えば加算値ＤＭ(r,s)の値が最も小さいときには、この加算値ＤＭ(r,s)を示す判別結果信号ＳＤＭを動きベクトル決定部２２に供給する。
【００４０】
動きベクトル決定部２２は、判別結果信号ＳＤＭによって示された加算値ＤＭ(r,s)を算出する際に用いたブロック相関値Ｄ(r-1,s-1)，Ｄ(r-1,s)，Ｄ(r-1,s+1)，Ｄ(r,s-1)，Ｄ(r,s)，Ｄ(r,s+1)，Ｄ(r+1,s-1)，Ｄ(r+1,s)，Ｄ(r+1,s+1)を選択する。また、選択したブロック相関値から、最も値の小さいブロック相関値を決定する。この最も値の小さいブロック相関値を算出したときの候補画像Ｇｓの取り出し位置が基準画像Ｇｒを移動したときの位置であり、この位置と基準画像Ｇｒの位置Ｐ(0,0)に基づき動きベクトルを正しく決定できる。
【００４１】
さらに、動きベクトルの検出は、図１に示す動きベクトル検出装置を用いる場合に限られるものではなく、画像信号Ｓｒや画像信号ＳＢをコンピュータでソフトウェア処理することによっても動きベクトルを検出できる。この場合の構成を図６に示す。
【００４２】
コンピュータは、図６に示すようにＣＰＵ(Central Processing Unit)５１を内蔵しており、このＣＰＵ５１にはバス６０を介してＲＯＭ５２，ＲＡＭ５３，ハード・ディスク・ドライブ５４，入出力インタフェース５５が接続されている。さらに、入出力インタフェース５５には入力部６１や記録媒体ドライブ６２，通信部６３，信号入力部６４，信号出力部６５が接続されている。
【００４３】
外部装置から命令が入力されたり、キーボードやマウス等の操作手段等を用いて構成された入力部６１から命令が入力されると、この命令が入出力インタフェース５５を介してＣＰＵ５１に供給される。
【００４４】
ＣＰＵ５１は、ＲＯＭ５２やＲＡＭ５３あるいはハード・ディスク・ドライブ５４に記憶されているプログラムを実行して、供給された命令に応じた処理を行う。さらに、ＲＯＭ５２やＲＡＭ５３あるいはハード・ディスク・ドライブ５４には、動きベクトルを検出するための処理をコンピュータで実行させるための動きベクトル検出プログラムを予め記憶させて、信号入力部６４に入力された画像信号に基づいて動きベクトルを検出して、信号出力部６５から出力する。また、記録媒体に動きベクトル検出プログラムを記録しておくものとし、記録媒体ドライブ６２によって、動きベクトル検出プログラムを記録媒体に記録しあるいは記録媒体に記録されている動きベクトル検出プログラムを読み出してコンピュータで実行するものとしても良い。さらに、通信部６３によって、動きベクトル検出プログラムを有線あるいは無線の伝送路を介して送信あるいは受信するものとし、受信した動きベクトル検出プログラムをコンピュータで実行するものとしても良い。
【００４５】
図７は、動きベクトル検出プログラムの構成を示すフローチャートである。
【００４６】
ステップＳＴ１では、動きベクトルの検出のために画像ＧＡの画像信号ＳＡと画像ＧＢの画像信号ＳＢを取得してステップＳＴ２に進む。ここで、画像信号ＳＡ，ＳＢは、例えば記録媒体ドライブ６２に装着された記録媒体を再生して得られた画像信号、通信部６３を介して伝送されてきた画像信号、信号入力部６４から入力された画像信号等を用いるものとする。
【００４７】
ステップＳＴ２では、画像ＧＡを適当な大きさのブロックに分割して、画像信号ＳＡから基準画像Ｇｒの画像信号Ｓｒを取得してステップＳＴ３に進む。
【００４８】
ステップＳＴ３では、画像信号ＳＢから基準画像Ｇｒと等しい画像サイズである候補画像Ｇｓの画像信号Ｓｓを抽出してステップＳＴ４に進む。
【００４９】
ステップＳＴ４では、画像信号Ｓｒと画像信号Ｓｓを用いて基準画像Ｇｒと候補画像Ｇｓとの差分絶対値和を算出することで、ブロック相関値Ｄを生成する。
【００５０】
ステップＳＴ５では生成したブロック相関値Ｄを相関値格納メモリに格納する。この相関値格納メモリとしては、例えばＲＡＭ５３やハード・ディスク・ドライブ５４等を用いるものとする。
【００５１】
ステップＳＴ６では、ブロック相関値Ｄを動き探索範囲分だけ格納できたか否かを判別する。ここで、相関値格納メモリに動き探索範囲分のブロック相関値を格納できていないときにはステップＳＴ７に進み、画像ＧＢから候補画像Ｇｓを取り出す際の取り出し位置を動き探索範囲内の新たな位置に移動して候補画像の切り替えを行い、ステップＳＴ３に戻る。
【００５２】
このようにステップＳＴ３からステップＳＴ７までの処理を繰り返すことにより、候補画像Ｇｓの取り出し位置を動き探索範囲内で順次移動させて、動き探索範囲分のブロック相関値Ｄを相関値格納メモリに格納させることができる。
【００５３】
その後、相関値格納メモリに動き探索範囲分のブロック相関値を格納できたときにはステップＳＴ６からステップＳＴ８に進み、加算値の算出を行う。加算値の算出では、近接した候補画像のブロック相関値を加算することで複数の加算値を生成する。
【００５４】
ステップＳＴ９では、ステップＳＴ８で算出した複数の加算値から値が最小となる最小加算値を判別してステップＳＴ１０に進む。
【００５５】
ステップＳＴ１０では、判別された最小加算値を算出する際に用いたブロック相関値を選択してステップＳＴ１１に進む。
【００５６】
ステップＳＴ１１では、選択したブロック相関値から最小のブロック相関値を判別して、この判別したブロック相関値の算出に用いた候補画像の取り出し位置と基準画像の位置に基づいて動きベクトルを決定して処理を終了する。
【００５７】
このように、上述の実施の形態によれば、画像内に画素以下の動きが含まれても、基準画像Ｇｒと最も類似する候補画像Ｇｓを正しく判別できるので、このときの候補画像の読み出し位置と基準画像の位置に基づき、正しく動きベクトルを検出できる。
【００５８】
また、上述の実施の形態では、相関値として誤差絶対値和を算出するものとしたが、例えば基準画像Ｇｒと候補画像Ｇｓの相関係数ｒを相関値として用いることもできる。この場合、基準画像Ｇｒと候補画像Ｇｓが類似すると相関係数ｒは「１」に近づくこととなる。このため、相関係数ｒを加算して評価値とし、値が最も大きい評価値を算出したときに用いた相関係数ｒから、最も値の大きい相関係数ｒを算出したときの候補画像の位置を判別して、このときの候補画像の位置と基準画像の位置から正しく動きベクトルを検出できる。
【００５９】
【発明の効果】
この発明によれば、第１の画像内における所定ブロックサイズの基準画像と、第２の画像内に設けた動き探索範囲に含まれると共に位置の異なる複数の所定ブロックサイズの候補画像との相関値をそれぞれ算出し、近接する候補画像の相関値を用いて複数の評価値を算出し、複数の評価値から最も相関の高い評価値を判別して、この最も相関の高い評価値の算出に用いた相関値から最も相関の高い相関値を判別して、判別された相関値を算出する際に用いた候補画像と基準画像に基づいて動きベクトルが決定される。このため、画像内に画素以下の動きが含まれても、動きベクトルを正しく検出できる。
【図面の簡単な説明】
【図１】動きベクトル検出装置の構成を示す図である。
【図２】相関値加算部の構成を示す図である。
【図３】動きベクトル検出装置の動作を示す図である。
【図４】候補画像の位置に対するブロック相関値と加算値を示す図である。
【図５】動きベクトル検出装置の他の動作を示す図である。
【図６】コンピュータを用いた場合の構成を示す図である。
【図７】動きベクトル検出方法を示すフローチャートである。
【図８】従来の動きベクトル検出装置の構成を示す図である。
【図９】従来の動きベクトル検出装置の動作を示す図である。
【図１０】候補画像の位置に対するブロック相関値を示す図である。
【符号の説明】
１０，１００・・・動きベクトル検出部、１２・・・ブロック相関値算出部、１４・・・相関値格納メモリ、１６・・・最小位置検出部、１８・・・相関値加算部、２０・・・最小加算値判別部、２２・・・動きベクトル決定部、１２１・・・信号抽出器、１２２・・・減算器、１２３・・・絶対値回路、１２４，１８１・・・加算器、１２５・・・相関値保持回路
【図１】
0003758594.tif 000002
【図２】
0003758594.tif 000003
【図３】
0003758594.tif 000004
【図４】
0003758594.tif 000005
【図５】
0003758594.tif 000006
【図６】
0003758594.tif 000007
【図７】
0003758594.tif 000008
【図８】
0003758594.tif 000009
【図９】
0003758594.tif 000010
【図１０】
0003758594.tif 000011