(57)【特許請求の範囲】
【請求項１】
第１の画像及び前記第１の画像とは異なる時刻に表示すべき第２の画像の夫々に対して、設定されるブロックの数を示す解像度が異なる複数の階層を生成する階層化部と、
前記第１の画像に対応する全ての階層内の注目ブロックで、前記注目ブロックの属する階層内の第１の参照ブロックに対して、割り当てられている動きベクトルを空間候補ベクトルとして抽出する第１の抽出部と、
前記第１及び第２の画像とは異なる時刻に表示すべき第３の画像に対応する前記注目ブロックの属する階層と同じ階層内の第２の参照ブロックに対して、割り当てられている動きベクトルを時間候補ベクトルとして抽出する第２の抽出部と、
前記第１の画像に対応する階層であって、前記注目ブロックの属する階層よりも前記解像度が低い階層内の第３の参照ブロックに対して割り当てられている動きベクトルを階層候補ベクトルとして抽出する第３の抽出部であって、前記注目ブロックの属する階層が前記解像度の最も低い階層である場合には、ゼロベクトルを前記階層候補ベクトルとして使用する第３の抽出部と、
前記注目ブロックに、前記空間候補ベクトル、時間候補ベクトル及び階層候補ベクトル夫々を割り当てることで特定される前記第２の画像に対応するブロックと、前記注目ブロックとのブロック相関に基づいて前記注目ブロックに割り当てる動きベクトルを決定する動きベクトル決定部と、
を具備することを特徴とする動きベクトル検出装置。
【請求項２】
前記動きベクトル決定部は、前記空間候補ベクトル、時間候補ベクトル及び階層候補ベクトルのうち前記ブロック相関が最も大きくなる１つを最適候補ベクトルに選択し、当該最適候補ベクトルを変化させて複数の局所ベクトルを生成し、当該複数の局所ベクトルのうち、当該複数の局所ベクトルの夫々で特定される前記第１及び第２の画像に対応する画素間の相関が最も大きくなる１つを最適ベクトルとして選択し、当該最適ベクトルを前記注目ブロックに割り当てることを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項３】
前記階層化部は、前記第１及び第２の画像を縮小することで、或いは、分割するブロックのサイズを変更することで、前記第１及び第２の画像を階層化することを特徴とする請求項２に記載の動きベクトル検出装置。
【請求項４】
前記階層候補抽出部は、前記注目ブロックが属している前記階層より、上位の複数の階層から前記第３の参照ブロックを選択することを特徴とする請求項２に記載の動きベクトル検出装置。
【請求項５】
前記動きベクトル決定部は、前記第１、第２及び第３の参照ブロックの各々と、前記注目ブロックとの相関を重みとして加えて、前記ブロック相関を算出することを特徴とする請求項２に記載の動きベクトル検出装置。
【請求項６】
前記動きベクトル決定部は、前記空間候補ベクトル、時間候補ベクトル及び階層候補ベクトルの各々を変化させて生成される局所ベクトルを含めて、前記ブロック相関を算出して前記最適ベクトルを決定することを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項７】
前記動きベクトル決定部は、前記階層毎に動きベクトルを決定することを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項８】
第１の画像及び前記第１の画像とは異なる時刻に表示すべき第２の画像の夫々に対して、設定されるブロックの数を示す解像度が異なる複数の階層を生成し、
前記第１の画像に対応する全ての階層内に位置する注目ブロックの属する階層内の第１の参照ブロックに対して、割り当てられている動きベクトルを空間候補ベクトルとして抽出し、
前記第１及び第２の画像とは異なる時刻に表示すべき第３の画像に対応する前記注目ブロックの属する階層と同じ階層内の第２の参照ブロックに対して、割り当てられている動きベクトルを時間候補ベクトルとして抽出し、
前記第１の画像に対応する階層であって、前記注目ブロックの属する階層よりも前記解像度が低い階層内の第３の参照ブロックに対して割り当てられている動きベクトルを階層候補ベクトルとして抽出し、前記注目ブロックの属する階層が前記解像度の最も低い階層である場合には、ゼロベクトルを前記階層候補ベクトルとして使用し、
前記注目ブロックに、前記空間候補ベクトル、時間候補ベクトル及び階層候補ベクトル夫々を割り当てることで特定される前記第２の画像に対応するブロックと、前記注目ブロックとのブロック相関に基づいて前記注目ブロックに割り当てる動きベクトルを決定する、
ことを特徴とする動きベクトル検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化等の画像処理に用いられる動きベクトルを動画像データから検出する動きベクトル検出装置及び方法に関する。
【背景技術】
【０００２】
従来、動画像処理における基礎的な処理として、異なる時刻のフレーム間での物体の移動方向及び大きさを示す動きベクトルを検出する動き探索がある。動き探索は、例えば、動画像のフレーム間に新たなフレームを内挿することでフレームレートを向上させるフレーム補間処理、動画像符号化、カメラの手ぶれ補正等に利用される。【０００３】
特許文献１には、動画像データに含まれるフレームを複数のブロックに分割して、ブロック毎に動きベクトルを検出する方法が開示されている。しかしながら、フレーム中に、ブロックのサイズより大きくかつ輝度変化の殆ど無いフラットな領域が存在する場合、動きベクトルを検出する精度が低下する問題がある。【０００４】
また、特許文献２に開示される方法では、フレームを階層化し、動きベクトルを検出する対象となる階層よりも上位階層において既に検出済みの動きベクトルを、特許文献１で説明した候補ベクトルにさらに加えて動きベクトルを検出している。しかしながら、上位階層で誤検出が発生した場合、それらを候補ベクトルとして決定された下位階層の動きベクトルも誤検出されることがある問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３１４７８９３号公報
【特許文献２】特開２００４−２４１８８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上記問題点を解決するためになされたものであり、動きベクトルを精度良く検出することができる動きベクトル検出装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る動きベクトル検出装置は、
第１の画像及び前記第１の画像とは異なる時刻に表示すべき第２の画像の夫々に対して、設定されるブロックの数を示す解像度が異なる複数の階層を生成する階層化部と、
前記第１の画像に対応するいずれかの階層内の注目ブロックで、前記注目ブロックの属する階層内の第１の参照ブロックに対して、割り当てられている動きベクトルを空間候補ベクトルとして抽出する第１の抽出部と、
前記第１及び第２の画像とは異なる時刻に表示すべき第３の画像に対応する前記注目ブロックの属する階層と同じ階層内の第２の参照ブロックに対して、割り当てられている動きベクトルを時間候補ベクトルとして抽出する第２の抽出部と、
前記第１の画像に対応する階層であって、前記注目ブロックの属する階層よりも前記解像度が低い階層内の第３の参照ブロックに対して割り当てられている動きベクトルを階層候補ベクトルとして抽出する第３の抽出部と、
前記注目ブロックに、前記空間候補ベクトル、時間候補ベクトル及び階層候補ベクトル夫々を割り当てることで特定される前記第２の画像に対応するブロックと、前記注目ブロックとの相関をブロック相関に基づいて前記注目ブロックに割り当てる動きベクトルを決定する動きベクトル決定部と、
を具備することを特徴とする。
【発明の効果】
【０００８】
動きベクトルを精度良く検出することできる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係る動きベクトル検出装置の構成例を示すブロック図である。
【図２】最適ベクトル決定部の構成例を示すブロック図である。
【図３】ベクトルメモリ及び階層ベクトルメモリの記憶領域を示す模式図である。
【図４】ベクトルメモリ及び階層ベクトルメモリの記憶領域を抜粋して示す模式図である。
【図５】空間候補抽出部、時間候補抽出部及び階層候補抽出部により選定される参照ブロックを示す模式図である。
【図６】探索部が最適候補ベクトルから最適ベクトルを決定する方法を説明する図である。
【図７】誤検出された動きベクトルが再帰処理により訂正される例を示す図である。
【図８Ａ】ベクトルメモリ及び階層ベクトルメモリの動作を説明する図である。
【図８Ｂ】ベクトルメモリ及び階層ベクトルメモリの動作を説明するため図である。
【図８Ｃ】ベクトルメモリ及び階層ベクトルメモリの動作を説明する図である。
【図８Ｄ】ベクトルメモリ及び階層ベクトルメモリの動作を説明する図である。
【図８Ｅ】ベクトルメモリ及び階層ベクトルメモリの動作を説明する図である。
【図８Ｆ】ベクトルメモリ及び階層ベクトルメモリの動作を説明する図である。
【図９】動きベクトルを検出する手順の一例を示すフローチャートである。
【図１０】最適ベクトル決定部が、最適ベクトルを決定する手順の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、必要に応じて図面を参照しながら、本発明の一実施形態に係る動きベクトル検出装置を説明する。なお、以下の実施形態では、同じ番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。
【００１１】
図１は、一実施形態に係る動きベクトル検出装置の構成を概略的に示している。この動きベクトル検出装置は、図１に示されるように、最適ベクトル決定部１０１、ベクトルメモリ１０２、階層ベクトルメモリ１０３、空間候補抽出部１０４、時間候補抽出部１０５、及び階層候補抽出部１０６を備えている。
【００１２】
最適ベクトル決定部１０１は、図示しない外部装置から動画像データを受け取り、動画像データに含まれる複数のフレーム（静止画像）を一時的に保持する。また、最適ベクトル決定部１０１は、保持しているフレームを所定サイズのブロックに分割し、分割したブロック毎に動きベクトルを演算により決定する。ブロックは、複数の画素を含む。一例として、ブロックのサイズは、５画素×５画素に設定される。
【００１３】
本明細書では、動きベクトルを検出する対象となっているブロックを注目ブロックと称す。注目ブロックに対して割り当てるべき動きベクトルは、最適ベクトル決定部１０１によって、後に説明される空間候補ベクトル、時間候補ベクトル及び階層候補ベクトルに基づいて決定される。この動きベクトルは、基準となるフレームと、このフレームとは異なる時間に表示すべきフレームとの間におけるブロック毎のシフト量及びその方向を示す。
【００１４】
さらに、最適ベクトル決定部１０１は、フレームを縮小して複数の縮小画像を生成し、フレームを階層化する。各階層の縮小画像は、所定サイズのブロックに分割され、分割されたブロック毎に動きベクトルが決定される。最適ベクトル決定部１０１で決定された動きベクトルは、最適ベクトルとしてベクトルメモリ１０２へ送られる。
【００１５】
ベクトルメモリ１０２は、最適ベクトル決定部１０１から受け取った動きベクトルを、ブロックの位置を示す情報と関連づけて記憶する。ある階層内の全てのブロックの動きベクトルが決定されると、ベクトルメモリ１０２に記憶されているこれらの動きベクトルは、階層ベクトルメモリ１０３へ送られる。階層ベクトルメモリ１０３は、ベクトルメモリ１０２から受け取った動きベクトルを、階層及びブロックの位置を示す情報に関連づけて記憶する。
【００１６】
空間候補抽出部（第１の抽出部）１０４は、注目ブロックが属している階層内のブロックのうちの、注目ブロックの位置に応じた所定範囲内のブロックを、参照ブロックとして選定する。また、空間候補抽出部１０４は、選定した参照ブロックに割り当てられている動きベクトルを空間候補ベクトルとして、ベクトルメモリ１０２から抽出する。
【００１７】
時間候補抽出部（第２の抽出部）１０５は、注目ブロックを含むフレームとは異なる時刻に表示すべきフレームに含まれるブロックであって、注目ブロックが属している階層と同じ階層内のブロックのうちの、注目ブロックの位置に応じた所定範囲内のブロックを、参照ブロックとして選定する。また、時間候補抽出部１０５は、選定した参照ブロックに割り当てられている動きベクトルを時間候補ベクトルとして、階層ベクトルメモリ１０３から抽出する。
【００１８】
階層候補抽出部（第３の抽出部）１０６は、注目ブロックが属している階層より上位の階層内のブロックのうちの、注目ブロックの位置に応じた所定範囲内のブロックを参照ブロックとして選定する。また、階層候補抽出部１０６は、選定した参照ブロックに割り当てられている動きベクトルを階層候補ベクトルとして、階層ベクトルメモリ１０３から抽出する。
【００１９】
上述した空間候補抽出部１０４、時間候補抽出部１０５及び階層候補抽出部１０６で抽出された各候補ベクトルは、最適ベクトル決定部１０１に送られる。この後の最適ベクトル決定部１０１の処理の詳細は以下に示される。
【００２０】
図２は、最適ベクトル決定部１０１の構成を概略的に示している。最適ベクトル決定部１０１は、図２に示されるように、外部装置から受信した動画像データに含まれるフレームから縮小画像を生成する縮小画像生成部２０１と、ブロックマッチング等によって候補ベクトルから最適候補ベクトルを選択する最適候補選択部２０２と、選択された最適候補ベクトルに基づいて最適ベクトルを探索する探索部２０３と、を備えている。また、最適候補選択部２０２及び探索部２０３をまとめて動きベクトル決定部２０４と称す。
【００２１】
図２に示される縮小画像生成部（階層化部ともいう）２０１は、フレームを縮小して所定数（例えば、Ｌ−１個）の縮小画像を生成し、フレームを階層化する。この縮小画像生成部２０１は、階層毎に予め設定された解像度に応じて、原画像であるフレームを縮小して縮小画像を生成する。本明細書では、解像度とは、画像を分割するブロックの数を意味する。例えば、動画像データに含まれるフレームのサイズが５００画素×５００画素、ブロックサイズが５画素×５画素、階層数Ｌが３である場合を想定すると、第３階層の解像度は、１００ブロック×１００ブロックとなる。また、この例において、第３階層の画像を縦及び横方向に１／２に縮小して、第２階層の画像を生成すると、第２階層の解像度は、５０ブロック×５０ブロックとなる。同様にして、第１階層の解像度は、２５ブロック×２５ブロックとなる。
【００２２】
ここで、階層化されたフレームにおいて、最も解像度の低い縮小画像を第１階層と称し、解像度の低い順に第２階層、第３階層等と称す。また、階層化されたフレームでは、解像度が低い方を上位、解像度が高い方を下位とする。この場合、第１階層が最も上位の階層となる。
【００２３】
図３は、時刻ｔに表示されるフレーム３０１、及び時刻ｔより前の時刻ｔ−１に表示されるフレーム３１１の夫々に関して、動きベクトルが割り当てられている様子を示している。時刻ｔのフレーム３０１は、動きベクトルを検出する対象となっているフレームを示し、第１のフレーム、注目フレームとも称す。第１のフレーム３０１に対応する各ブロックに割り当てられている動きベクトルは、時刻ｔ＋１のフレーム（第２のフレームともいう）に対する動きベクトルを示す。
【００２４】
時刻ｔ−１のフレーム３１１は、時間候補ベクトルを抽出する対象となるフレームを示し、第３のフレームとも称す。また、第３のフレーム３１１に対応する各ブロックに割り当てられている動きベクトルは、第１のフレーム３０１に対する動きベクトルを示す。第１、第２及び第３のフレームは、互いに異なる時刻に表示されるフレームであればよく、第２及び第３のフレームは、夫々、第１のフレームより前の時刻に表示されるフレームであってもよく、注目フレームより後の時刻に表示されるフレームであってもよい。
【００２５】
図３に示される例では、第１のフレーム３０１では、第ｈ階層に注目ブロックが位置している。第１のフレーム３０１においては、第１階層から第ｈ−１階層までの各ブロックの動きベクトルが決定されていて、第ｈ階層は、動きベクトルが既に決定されているブロックと、動きベクトルがまだ決定されていないブロックとを含んでいる。第３のフレーム３１１においては、各階層の各ブロックの動きベクトルが既に決定されている。本実施形態では、既に決定されている空間候補ベクトル、時間候補ベクトル及び階層候補ベクトルが再帰的に伝搬されて各ブロックの動きベクトルが算出される。
【００２６】
生成された縮小画像は、図２に示される縮小画像生成部２０１に一時的に保持される。一例として、縮小画像生成部２０１は、フレームに対してガウシアンフィルタ等による平滑化処理を行った後に、縮小を繰り返すことで、異なる解像度の画像を生成する。階層化されたフレームは、最適候補選択部２０２及び探索部２０３へ送られる。
【００２７】
なお、フレームの階層化は、上述したような縮小画像生成部２０１で原画像を縮小する例に限定されず、より上位の階層では、より大きいブロックサイズで原画像を分割することで実現されてもよい。例えば、原画像のサイズが５００画素×５００画素、階層数Ｌが３である場合を想定すると、原画像のサイズを変更せずに、ブロックサイズを、第３階層では、５画素×５画素とし、第２階層では、１０画素×１０画素とし、第１階層では、２０画素×２０画素と設定してもよい。このようにしても、階層毎に異なる解像度の画像を生成することができる。
【００２８】
ここで、図３及び図４を参照して、各候補ベクトルを選定する方法を説明する。  
図４は、図３に示される第１のフレーム３０１の第ｈ階層３０２及び第ｈ−１階層３０３、並びに第３のフレーム３１１の第ｈ階層３１２を抜き出して示している。図２の最適候補選択部２０２は、上位の階層から順番に、即ち、第１階層から第Ｌ階層へ向かって階層毎に動きベクトルを決定する。図４に示されるように、一例として、各階層では、各ブロックの動きベクトルは、左上に位置されるブロックから右下に位置されるブロックに向けて順番に決定される。より具体的には、最も上段の行において、左から右に向かって各ブロックの動きベクトルを決定し、１つ下の行に移行して左から右に向かって各ブロックの動きベクトルを決定する。本明細書では、フレームが表示装置に表示される際の走査線方向に対応する方向を水平方向とし、信号線方向に対応する方向を垂直方向として、上下左右、行及び列を定義する。
【００２９】
第１のフレーム３０１の第ｈ階層３０２では、図４に示されるように、例えば、注目ブロック３０４の左及び上のブロック３０５、３０６が参照ブロック（図３及び図４では、空間候補ブロックと示される）として選定される。空間候補抽出部１０４は、下記数式１のように、参照ブロック３０５、３０６に割り当てられている動きベクトルを空間候補ベクトルの集合Ｃｓとして抽出する。
【数１】
0005492223.tif 000002
【００３０】
ここで、ｕｔｈ（ｘ）は、第１のフレーム３０１の第ｈ階層３０２において、位置ベクトルｘで特定されるブロックの動きベクトルを示し、ｂは、注目ブロック３０４の位置ベクトルを示す。図４に示される注目ブロック３０４の位置は、例えば、ｂ＝（４，３）Ｔと表される。ここで、Ｔは、転置を意味する。なお、記号Ｃ、ｕ、ｂ及びｘ、並びに以下に示される記号Ｂ及びｅ等は、各々ベクトルを示し、数式中では太字で示されている。
【００３１】
なお、空間候補ベクトルは、数式１に示される例に限定されず、注目ブロック３０４の近傍のブロックであって、動きベクトルが既に決定されているブロックであれば、どのブロックから抽出されてもよい。例えば、空間候補抽出部１０４は、下記数式２のように、注目ブロック３０４の左斜め上及び右斜め上に隣接するブロックに割り当てられている動きベクトルを、空間候補ベクトルの集合Ｃ´ｓとして抽出してもよい。
【数２】
0005492223.tif 000003
【００３２】
他の例では、上述の集合Ｃｓと集合Ｃ´ｓとの和集合（Ｃｓ∪Ｃ´ｓ）が、空間候補ベクトルの集合に設定されてもよい。さらに他の例では、集合Ｃｓは、ゼロベクトルを含んでもよい。また、例えば、階層内で最初に動きベクトルが決定される左上のブロックが注目ブロックである場合、空間候補ベクトルの集合は、空集合となるか、或いは、ゼロベクトルを含む。
【００３３】
第３のフレーム３１１の第ｈ階層３１２では、例えば、注目ブロック３０４と同じ位置ベクトルで特定されるブロック３１３、並びにこのブロック３１３の右及び下のブロック３１４、３１５が参照ブロック（図３及び図４では、時間候補ブロックと示される）として選定される。時間候補抽出部１０５は、下記数式３のように、参照ブロック３１３、３１４、３１５に割り当てられている動きベクトルを、時間候補ベクトルの集合Ｃｔとして抽出する。
【数３】
0005492223.tif 000004
【００３４】
なお、時間候補ベクトルは、数式３に示される例に限定されず、異なる時刻のフレームにおいて、注目ブロック３０４に対応する位置の近傍のブロックであればどのブロックから抽出されてもよい。例えば、時間候補抽出部１０５は、下記数式４のように、第３のフレーム３１１の第ｈ階層３１２において、注目フレームに対応する参照ブロック３１３に割り当てられている動きベクトル、並びにこの参照ブロック３１３の右斜め下及び左斜め下のブロックに割り当てられている動きベクトルを、時間候補ベクトルの集合Ｃ´ｔとして抽出してもよい。
【数４】
0005492223.tif 000005
【００３５】
他の例では、上述の集合Ｃｔと集合Ｃ´ｔとの和集合（Ｃｔ∪Ｃ´ｔ）が時間候補ベクトルの集合に設定されてもよい。
【００３６】
さらに、第１フレーム３０１の第ｈ−１階層３０３では、注目ブロック３０４に対応するブロック３０７が参照ブロック（図３及び図４では、階層候補ブロックと示される）として選定される。階層候補抽出部１０６は、下記数式５に従って、注目ブロック３０４の属する階層より一つ上の階層である第ｈ−１階層３０３内の参照ブロック３０７に割り当てられている動きベクトルを階層候補ベクトルの集合Ｃｈとして抽出する。
【数５】
0005492223.tif 000006
【００３７】
また、ｋは、縮小画像の縮小率を示す。第ｈ−１階層３０３は、第ｈ階層３０２と比較して縮小率ｋだけ縮小されているため、抽出された動きベクトルは、係数１／ｋを掛けて第ｈ階層３０２に対応するように伸長される。
【００３８】
なお、階層候補ベクトルは、数式５に示される例に限定されず、上位階層における注目ブロック３０４に対応する位置の近傍のブロックであれば、どのブロックから抽出されてもよい。例えば、階層候補抽出部１０６は、下記数式６のように、第１のフレーム３０１の第ｈ−１階層３１３に含まれるブロックであって、注目フレームに対応するブロック３０７に割り当てられている動きベクトル、並びにこのブロック３０７の上下左右に隣接するブロックに割り当てられている動きベクトルを、階層候補ベクトルの集合Ｃ´ｈとして抽出してもよい。
【数６】
0005492223.tif 000007
【００３９】
さらに、階層候補抽出部１０６は、複数の上位階層から階層候補ベクトルを選定してもよく、例えば、下記数式７のように、第ｈ−１階層３１３及び第ｈ−２階層に含まれるブロックであって、注目ブロックに対応するブロックに割り当てられている動きベクトルを階層候補ベクトルの集合Ｃ″ｈとして抽出してもよい。
【数７】
0005492223.tif 000008
【００４０】
上述のようにして、例えば数式１、数式３及び数式５に従って参照ブロックが図５に示されるように選定され、これら参照ブロックに割り当てられている動きベクトルが候補ベクトルとして抽出される。抽出された各候補ベクトルは、最適候補選択部２０２へ送られる。
【００４１】
次に、図２に示される最適候補選択部２０２が、候補ベクトルの中から注目ブロックに割り当てるべき最適候補ベクトルを選定する方法を説明する。
最適候補選択部２０２は、空間候補抽出部１０４から空間候補ベクトルを、時間候補抽出部１０５から時間候補ベクトルを、階層候補抽出部１０６から階層候補ベクトルを受け取る。
【００４２】
最適候補選択部２０２は、注目ブロックと、注目ブロックの位置ベクトル及び抽出された候補ベクトルで特定される第２のフレームに対応するブロックとの相関をブロック相関に基づいて算出する。そして、最適候補選択部２０２は、相関値が最も大きくなる候補ベクトルを特定し、特定した候補ベクトルを下記数式８に示される最適候補ベクトルとして選択する。
【数８】
0005492223.tif 000009
【００４３】
最適候補選択部２０２は、例えば下記数式９のように、複数の候補ベクトルのうちの、評価関数Ｄ（ｂ，ｕ）の値を最も小さくする候補ベクトルを、数式８の最適候補ベクトルとして選択する。
【数９】
0005492223.tif 000010
【００４４】
ここで、Ｃ１＝Ｃｓ∪Ｃｔ∪Ｃｈであり、Ｄ（ｂ，ｕ）は、動きベクトルｕに対する評価関数を示す。評価関数Ｄ（ｂ，ｕ）は、例えば、下記数式１０で定義される。
【数１０】
0005492223.tif 000011
【００４５】
ここで、Ｉｓｒｃ（ｘ）は、第１のフレーム３０１に対応するブロックであって、位置ベクトルｘで特定されるブロックの画素値を示し、Ｉｄｓｔ（ｘ）は、第３のフレームに対応するブロックであって、位置ベクトルｘで特定されるブロックの画素値を示し、Ｂ（ｂ）は、位置ベクトルｂで特定されるブロック内の画素の位置ベクトルの集合を示す。また、｜Ａ｜は、Ａがスカラー値のときはＡの絶対値を意味し、Ａが集合のときはＡの要素数を意味する。ブロック間の相関を評価するための画素値は、輝度であってもよく、或いは、赤と緑と青に関する色の情報を示すＲＧＢ空間での値であってもよい。
【００４６】
なお、上記の評価関数では、画素値の差の絶対値を合計しているが、これに限定されず、例えば、画素値の差を二乗したものを合計してもよい。さらに、上記評価関数では、画素値の差の絶対値の合計を要素数で除算しているが、除算しなくてもよい。
【００４７】
画像中において、多くの場合、注目ブロックの近傍は、輝度分布が類似したブロックが存在すると仮定されるが、物体境界ではこの仮定が成り立たないことがある。そこで、下記数式１１のように、注目ブロックと参照ブロックとの相関をペナルティ項（重みともいう）αとして評価関数に加えることで、注目ブロックと類似したブロックの候補ベクトルを選択されやすくする。従って、重みαを加えることにより、注目ブロックと相関の高い参照ブロックが優先的に選択されるようになる。
【数１１】
0005492223.tif 000012
【００４８】
ここで、重みαは、注目ブロックと参照ブロックとの相関を示し、ｅは注目ブロックから見た参照ブロックへの位置ベクトルを示す。例えば、注目ブロック３０４の上のブロック３０６を候補ベクトルｕとして参照する場合、重みαは、下記数式１２のように表すことができる。
【数１２】
0005492223.tif 000013
【００４９】
なお、重みαは、数式１２に示される例に限定されず、絶対値を二乗して算出されてもよく、或いは、下記数式１３のように正規化されてもよい。
【数１３】
0005492223.tif 000014
【００５０】
探索部２０３は、図６に示されるように、数式８の最適候補ベクトルに基づいて局所領域内を探索して、下記数式１４に示される最適ベクトルを決定する。
【数１４】
0005492223.tif 000015
【００５１】
具体的には、探索部２０３は、下記数式１５のように、最適候補ベクトル、及びこの最適候補ベクトルを微小変化させて生成した複数の局所ベクトルの中から、評価関数を最小にする局所ベクトルを数式１４に示される最適ベクトルに決定する。
【数１５】
0005492223.tif 000016
【００５２】
ここで、局所ベクトルの集合Ｃ２は、例えば下記数式１６のように、下記数式１７に示される最適候補ベクトル、及びこの最適候補ベクトルの上下左右方向に微小変化した局所ベクトルを含む。
【数１６】
0005492223.tif 000017
【数１７】
0005492223.tif 000018
【００５３】
ここで、εは微小定数である。例えば、εは、画素間の距離を示す。
【００５４】
なお、局所ベクトルの集合Ｃ２は、数式１６に示される例に限定されず、下記数式１８のように、探索範囲をより広く設定されてもよい。
【数１８】
0005492223.tif 000019
【００５５】
また、上述したように、最適候補ベクトルを選択した後に局所探索を行うのではなく、下記数式１９及び数式２０のように、全ての候補ベクトルに関して局所探索して最適ベクトルが決定されてもよい。この場合、最適候補ベクトルを選定することなく、最適ベクトルが決定されることとなる。
【数１９】
0005492223.tif 000020
【数２０】
0005492223.tif 000021
【００５６】
上述のように、最適ベクトル決定部１０１では、空間候補ベクトル、時間候補ベクトル及び階層候補ベクトルを含む候補ベクトルに基づいて、注目ブロックの動きベクトルが決定される。
【００５７】
本実施形態に係る動きベクトル検出装置においては、各階層の各ブロックの動きベクトルの算出に、空間候補ベクトル、時間候補ベクトル及び階層候補ベクトルのうちのいずれか１つを最適候補ベクトルとして選定することで、精度良く動きベクトルを決定することができる。一例として、図７に示されるように、第１のフレーム７０１の第２階層７０３に位置されるブロック７０６の動きベクトルを算出する場合、第２階層７０３から抽出される空間候補ベクトル、及び第１階層７０４から抽出される階層候補ベクトルが誤って算出されていたとしても、第３のフレーム７１１の第２階層７１３から抽出された時間候補ベクトルを選択することで、このブロック７０６の動きベクトルを正確に算出することができる。また、第３階層７０２のブロック７０５において、第２階層７０３のブロック７０６の動きベクトルを階層候補ベクトルとして参照することで、第１のフレーム７０１の第３階層７０２から抽出された空間候補ベクトル、及び第３のフレーム７１１の第３階層７１２から抽出された時間候補ベクトルが誤っていたとしても、動きベクトルを正確に算出することができる。
【００５８】
このように、本実施形態に係る動きベクトル検出装置においては、算出された動きベクトルを次のブロックの計算に使用する再帰処理を行うことによって、漸次的に動きベクトルの誤りを減少させることができる。さらに、再帰処理を空間、時間、階層にわたって逐次行うことにより誤りの少ない動きベクトルを推定することができる。
【００５９】
次に、図８Ａから図８Ｆを参照して、ベクトルメモリ１０２及び階層ベクトルメモリ１０３の構造を具体的に説明する。  
ベクトルメモリ１０２は、注目ブロックを含む階層の各ブロックの動きベクトルを一時的に保存する。このため、ブロック数が最も多い階層、即ち、最も下位の階層に含まれるブロックの数だけ動きベクトルを格納可能な容量が用意されればよい。上述した例のように、最も下位の階層である第３階層の解像度が１００ブロック×１００ブロックである場合、ベクトルメモリ１０２には、１００００個の動きベクトルを格納することができる容量が用意されればよい。ベクトルメモリ１０２では、動きベクトルは、ブロックの位置を示す情報と関連づけて記憶される。
【００６０】
階層ベクトルメモリ１０３は、階層毎に動きベクトルを記憶するための領域が割り当てられ、決定された動きベクトルを階層毎に記憶する。上述した例のように、最も下位の階層である第３階層の解像度が１００ブロック×１００ブロック、第２階層の解像度が５０ブロック×５０ブロック、第１階層の解像度が２５ブロック×２５ブロックである場合、階層ベクトルメモリ１０３は、合計１３１２５個の動きベクトルを格納可能な容量が用意されればよい。階層ベクトルメモリ１０３では、動きベクトルは、階層及びブロックの位置を示す情報と関連づけて記憶される。
【００６１】
図８Ａから図８Ｆでは、簡単にするために、階層数Ｌが３であり、第１階層が３ブロック×３ブロックに分割され、第２階層が４ブロック×４ブロックに分割され、第３階層が６ブロック×６ブロックに分割される場合における、ベクトルメモリ１０２及び階層ベクトルメモリ１０３の動作例が示されている。
【００６２】
図８Ａに示されるように、時刻ｔのフレームの第１階層において注目ブロックの動きベクトルを算出しているときには、階層ベクトルメモリ１０３には、時刻ｔ−１のフレームの第１から第３階層の各ブロックにおいて算出された動きベクトルが格納されている。最適候補選択部２０２は、空間候補ベクトル、時間候補ベクトル及び階層候補ベクトルを参照して、第１階層内の各ブロックの動きベクトルを算出する。第１階層内のブロックの動きベクトルを算出する場合、第１階層より上位の階層が存在しないために、仮想的な階層が存在するものとして、参照する階層候補ベクトルはゼロベクトルとする。時間候補ベクトルは、階層ベクトルメモリ１０３に割り当てられた第１階層用の領域から抽出される。
【００６３】
図８Ｂに示されるように、第１階層内の全てのブロックの動きベクトルが決定されると、ベクトルメモリ１０２に記憶されている情報が階層ベクトルメモリ内の第１階層用の領域へコピーされる。従って、階層ベクトルメモリ１０３では、第１階層用の領域には、時刻ｔのフレームに関連する動きベクトルが記憶され、第２及び第３階層用の領域には、時刻ｔ−１のフレームに関連する動きベクトルが記憶されている。ベクトルメモリ１０２内の情報は、コピー終了後に消去されてもよく、或いは、次の第２階層に関する情報で上書きされてもよい。
【００６４】
図８Ｃに示されるように、第２階層内のブロックの動きベクトルを算出するときには、階層ベクトルメモリ１０３に割り当てられた第１階層用の領域から階層候補ベクトルが抽出され、階層ベクトルメモリ１０３に割り当てられた第２階層用の領域から時間候補ベクトルが抽出され、ベクトルメモリ１０２から空間候補ベクトルが抽出される。図８Ｄに示されるように、第２階層内の全てのブロックの動きベクトルが決定されると、ベクトルメモリ１０２に記憶されている情報が階層ベクトルメモリ内の第２階層用の領域へコピーされる。
【００６５】
続いて、図８Ｅに示されるように、第３階層内のブロックの動きベクトルを算出するときには、階層ベクトルメモリ１０３に割り当てられた第２階層用の領域から階層候補ベクトルが抽出され、階層ベクトルメモリ１０３に割り当てられた第３階層用の領域から時間候補ベクトルが抽出され、ベクトルメモリ１０２から空間候補ベクトルが抽出される。図８Ｆに示されるように、第３階層内の全てのブロックの動きベクトルが決定されると、ベクトルメモリ１０２に記憶されている情報が階層ベクトルメモリ内の第３階層用の領域へコピーされる。
【００６６】
時刻ｔのフレームの全ての階層について動きベクトルの計算が終了すると、ベクトルメモリ１０２に記憶されている情報、即ち、時刻ｔのフレームの各ブロックの動きベクトルを含む情報が外部へ出力され、次の時刻ｔ＋１のフレームの処理が開始される。ここで、時刻ｔ＋１のフレームの処理を開始するときには、階層ベクトルメモリ１０３に記憶されている情報は、時刻ｔのフレームに関連する情報になっている。
【００６７】
なお、上述の説明では、階層ベクトルメモリ１０３は、ベクトルメモリ１０２に記憶されている情報で随時上書きされるが、これに限定されず、階層ベクトルメモリ１０３の容量を増やして、複数の時刻のフレームに関連する動きベクトル情報を格納する構成としてもよい。複数の時刻のフレームに関連する動きベクトル情報を階層ベクトルメモリ１０３に格納することで、注目フレームの時刻と異なる時刻の複数のフレームに関連する動きベクトルを時間候補ベクトルとして抽出することができる。
【００６８】
次に、図９を参照して、注目フレームの各ブロックの動きベクトルを決定する手順を説明する。  
まず、ステップＳ９０１において、注目ブロックが所定の順序に従って選定される。ステップＳ９０２では、空間候補抽出部１０４によって空間候補ベクトルが、例えば数式１又は数式２に示されるように、特定の参照ブロックから選定される。ステップＳ９０３では、時間候補抽出部１０５によって時間候補ベクトルが、例えば数式３又は数式４に示されるように、特定の参照ブロックから選定される。ステップＳ９０４では、階層候補抽出部１０６によって階層候補ベクトルが、例えば数式５、数式６又は数式７に示されるように、特定の参照ブロックから選定される。ステップＳ９０２からＳ９０４は、適宜順序を入れ替えることができる。ステップＳ９０２からＳ９０４では、空間候補ベクトル、時間候補ベクトル及び階層候補ベクトルを含む候補ベクトルが選定される。
【００６９】
ステップＳ９０５では、ステップＳ９０２からＳ９０４で選定された候補ベクトルに基づいて、注目ブロックの最適ベクトルが決定される。ステップＳ９０５は、図１０を参照して後に説明される。ステップＳ９０６では、選定された最適ベクトルがベクトルメモリ１０２に記憶される。
【００７０】
ステップＳ９０７では、処理中の階層内の全てのブロックの動きベクトルが決定されたか否かが判断される。動きベクトルが未決定のブロックが存在する場合、ステップＳ９０１に戻され、次の注目ブロックが選定される。ステップＳ９０１からＳ９０６が繰り返されて、処理中の階層内の全てのブロックの動きベクトルが決定されると、ステップＳ９０８に進む。
【００７１】
ステップＳ９０８では、ベクトルメモリ１０２に記憶されている情報が階層ベクトルメモリ１０３へコピーされる。ステップＳ９０９では、注目フレームの全ての階層が処理されたか否かが判断される。即ち、注目フレームの最も下位の階層（例えば、第Ｌ階層）が処理されたか否かが判断される。未処理の階層が存在する場合、ステップＳ９０１に戻される。注目フレームの全ての階層が処理された場合、ステップＳ９１０において、ベクトルメモリ１０２に記憶されている情報が図示しない画像処理装置に出力され、一連の処理が終了する。
【００７２】
次に、図１０を参照して、注目ブロックの最適ブロックを決定する手順を説明する。  
まず、ステップＳ１００１では、縮小画像生成部２０１によって、これから処理する階層に応じた縮小画像が生成される。このステップＳ１００１に示される縮小画像の生成は、フレーム受信時に予め実行されてもよい。ステップＳ１００２では、例えば数式９に示されるように、最適候補選択部２０２によって、注目ブロックとの相関が最も大きい参照ブロックが特定され、特定された参照ブロックの候補ベクトルが最適候補ベクトルとして選択される。ステップＳ１００３では、例えば数式１５及び数式１６に示されるように、探索部２０３によって、選定された最適候補ベクトルに基づいて最適ベクトルが決定される。
【００７３】
以上のように、本実施形態に係る動きベクトル検出装置においては、既に決定された動きベクトルを使用して注目ブロックの動きベクトルを再帰的に算出することで、動きベクトルを検出する精度を向上することができる。
【００７４】
本発明に係る動きベクトル検出装置は、種々の分野に応用することができる。例えば、動きベクトル検出装置は、高フレームレートを実現してテレビの画質を向上させるフレーム補間技術への利用では、動画像のフレーム間に内挿するフレームを生成する際に利用される。また、本発明に係る動きベクトル検出装置の検出精度の向上は、動画像符号化における符号化効率を向上させたり、カメラの手ぶれ補正の性能を向上させることができる。さらに、本発明に係る動きベクトル検出装置は、２次元の画像情報から３次元の奥行き情報を推定する技術にも利用することができる。
【００７５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００７６】
上記の各実施形態に係る動きベクトル検出装置は、種々の画像処理技術、例えば、フレーム補間技術に利用することができる。
【符号の説明】
【００７７】
１０１…最適ベクトル決定部、１０２…ベクトルメモリ、１０３…階層ベクトルメモリ、１０４…空間候補抽出部、１０５…時間候補抽出部、１０６…階層候補抽出部、２０１…縮小画像生成部、２０２…最適候補選択部、２０３…探索部、２０４…動きベクトル決定部、３０１，３０２…フレーム、３０４…注目ブロック、３０５，３０６，３０７，３１３，３１４，３１５…参照ブロック
【図１】
0005492223.tif 000022
【図２】
0005492223.tif 000023
【図３】
0005492223.tif 000024
【図４】
0005492223.tif 000025
【図５】
0005492223.tif 000026
【図６】
0005492223.tif 000027
【図７】
0005492223.tif 000028
【図８Ａ】
0005492223.tif 000029
【図８Ｂ】
0005492223.tif 000030
【図８Ｃ】
0005492223.tif 000031
【図８Ｄ】
0005492223.tif 000032
【図８Ｅ】
0005492223.tif 000033
【図８Ｆ】
0005492223.tif 000034
【図９】
0005492223.tif 000035
【図１０】
0005492223.tif 000036