(57)【特許請求の範囲】
【請求項１】
（ａ）現フレームを、プロセッシングブロックに分割し、
（ｂ）現フレームに、各プロセッシングブロックを基準とした複数個の大きさの異なる探索ブロックを形成し、
（ｃ）前フレームを、探索ブロックと同じ大きさの複数個の候補ブロックを含む探索領域に分割し、
（ｄ）前記探索領域に含まれているそれぞれの候補ブロックに対して探索ブロックと候補ブロックの間の誤差を求め、求められた誤差のうち、最小の誤差を探索ブロックに対する誤差値とし、前記最小の誤差の場合の候補ブロックに対する探索ブロックの変位を探索ブロックに対応する動きベクトルとし、
（ｅ）複数個の大きさの異なる探索ブロックごとに前記（ｃ）、（ｄ）の過程を実施し、
（ｆ）前記の誤差値が所定の閾値よりも小さい探索ブロックがない場合は、最小の誤差値を有する探索ブロックに対応する動きベクトルを、プロセッシングブロックの動きベクトルとし、
（ｇ）前記の誤差値が所定の閾値よりも小さい探索ブロックが１つ以上ある場合は、これらの１つ以上の探索ブロックのうち最大の探索ブロックに対応する動きベクトルを、プロセッシングブロックの動きベクトルとすることを特徴とする現フレーム及び前フレームから現フレームの各プロセッシングブロックに対する動きベクトルを決定する方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は動きベクトルを決定するための方法に関し、特に、階層的動き推定技法を用いて、２つの連続ビデオフレームから動きベクトルを決定するための改善された方法に関する。
【０００２】
【従来の技術】
一般に、従来の高精細度テレビジョン及びビデオ電話システムのような多様な電子／電気的応用分野に於いて、映像信号はディジタル信号として伝送される必要がある。映像信号がディジタル信号として表現される場合、相当量のディジタルデータが発生する。しかし、通常の伝送チャネルの利用可能な周波数帯域幅は限られているため、映像信号を通常の伝送チャネルを通じて伝送するためには、伝送データ量を圧縮するか減らさなければならない。様々な圧縮技法のうち、動き補償インタフレーム符号化技法が効果的な圧縮技法の一つとして知られているが、これは信号の圧縮のために２つの隣接ビデオフレームの間のビデオ信号の時間的冗長性を用いている。
【０００３】
動き補償インタフレーム符号化技法に於いて、現フレームデータは現フレームと前フレームとの間の動き推定に基づいて、前フレームから予測される。このような推定された動きは、前フレームと現フレームとの間の画素の変位を表す２次元動きベクトルとして表すことができる。本技術分野に於いて提案されている動きベクトル推定技法のうちの一つは、ブロックマッチングアルゴリズムである(例えば、J.R.Jain et al.,“Displacement Measurement and Its Application in Interframe Image Coding”, IEEE Transactions on Communications COM-29, No.12(December 1981)参照方)。
【０００４】
ブロックマッチングアルゴリズムによれば、現フレームは複数の同一の大きさの探索ブロックに分割される。探索ブロックの大きさは、典型的には、８×８と３２×３２画素との間の範囲にある。現フレーム内の探索ブロックに対する動きベクトルを決定するためには、現フレームの探索ブロックと、探索ブロックと同一の大きさを有する複数の各候補ブロックの間で類似計算（similarity calculation）が行われる。前記候補ブロックは前フレーム内の探索領域に含まれ、探索領域の大きさは一般に、探索ブロックより大きい。絶対平均エラーまたは二乗平均エラーのようなエラー関数が現フレームの探索ブロックと探索領域内の各候補ブロックとの間の類似性を測定するために用いられる。また、動きベクトルは定義により探索ブロックと最適マッチングブロックする候補ブロック、即ち、最小「エラー」または差を生む候補ブロックとの間の変位を表す。
【０００５】
しかし、このような固定された大きさの探索ブロックを採用したブロックマッチング動き推定に於いては、探索ブロックが比較的大きい場合、同じようには動かない画素も含めて、探索ブロック内の画素全てに同じ動きベクトルが割り当てられるため、全体的な画質が劣化する。
【０００６】
【発明が解決しようとする課題】
従って、本発明の主な目的は、階層的動き推定技法を用いて、２つの連続ビデオフレームから動きベクトルを正確に決定しうる改善された方法を提供することである。
【０００７】
【課題を解決するための手段】
上記の目的を達成するために、本発明によると、現フレーム及び前フレームから現フレームの各プロセッシングブロックに対する動きベクトルを決定する方法であって、
（ａ）現フレームを、プロセッシングブロックに分割し、
（ｂ）現フレームに、各プロセッシングブロックを基準とした複数個の大きさの異なる探索ブロックを形成し、
（ｃ）前フレームを、探索ブロックと同じ大きさの複数個の候補ブロックを含む探索領域に分割し、
（ｄ）前記探索領域に含まれているそれぞれの候補ブロックに対して探索ブロックと候補ブロックの間の誤差を求め、求められた誤差のうち、最小の誤差を探索ブロックに対する誤差値とし、前記最小の誤差の場合の候補ブロックに対する探索ブロックの変位を探索ブロックに対応する動きベクトルとし、
（ｅ）複数個の大きさの異なる探索ブロックごとに前記（ｃ）、（ｄ）の過程を実施し、
（ｆ）前記の誤差値が所定の閾値よりも小さい探索ブロックがない場合は、最小の誤差値を有する探索ブロックに対応する動きベクトルを、プロセッシングブロックの動きベクトルとし、
（ｇ）前記の誤差値が所定の閾値よりも小さい探索ブロックが１つ以上ある場合は、これらの１つ以上の探索ブロックのうち最大の探索ブロックに対応する動きベクトルを、プロセッシングブロックの動きベクトルとすることを特徴とする方法が提供される。
【０００８】
【実施例】
以下、本発明の実施例について図面を参照しながらより詳しく説明する。
【０００９】
図１には、階層的動き推定技法を採用することによって、現フレームの複数のプロセッシングブロックの各々に対する動きベクトルを決定するための、本発明による方法を用いた装置のブロック図が示されている。各プロセッシングブロックはＰ×Ｑ画素（例えば、２×２画素）の大きさであり、現フレーム内の階層的探索ブロックを有する。
【００１０】
現フレームデータは、入力ディジタルビデオ信号として、フレームメモリ５０と階層的探索ブロックを発生させるブロック形成部１００とに印加される。ブロック形成部１００は、各プロセッシングブロックに対する階層的探索ブロックを発生させる働きをし、各プロセッシングブロックは発生される探索ブロックの中心に位置する。任意の階層の探索ブロックは、より低い階層の探索ブロックより水平及び垂直方向に２Ｎ画素だけ大きい。ここでＮは０より大きい整数（例えば１）である。また、最も低い階層の探索ブロックは、プロセッシングブロックより大きいかあるいは同じ大きさである。
【００１１】
図１に示されているように、ブロック形成部１００はＭ個、例えば、４つのブロック形成器１１０〜１７０を含む。ブロック形成器１１０、１３０、１５０、及び１７０では、プロセッシングブロックに対する階層的探索ブロックが発生される。探索ブロックの大きさは水平及び垂直方向に２Ｎから２Ｎ（Ｍ−１）の間で２Ｎ画素ステップで変わる。ここでＭは１より大きい整数である。詳述すると、第１ブロック形成器１１０はＨ×Ｖ画素の大きさを有する最も高い階層の探索ブロックを発生させ、第２ブロック形成器１３０は（Ｈ−２Ｎ）×（Ｖ−２Ｎ）（例えば、（Ｈ−２）×（Ｖ−２））画素の大きさを有するより低い階層の探索ブロックを発生させ、第３ブロック形成器１５０は（Ｈー４Ｎ）×（Ｖー４Ｎ）（例えば、（Ｈ−４）×（Ｖ−４））画素の大きさを有するより低い階層の探索ブロックを発生させ、最後のブロック形成器１７０は（Ｈ−２Ｎ（Ｍ−１））×（Ｖ−２Ｎ（Ｍ−１））（例えば（Ｈ−２（Ｍ−１））×（Ｖ−２（Ｍ−１）））画素の大きさを有する最も低い階層の探索ブロックを発生させる。
【００１２】
図３には、本発明の好適実施例で用いられている、ブロック形成器１１０〜１７０から発生された階層的探索ブロックが例示的に示されている。例示のため、Ｈ及びＶは現フレーム内の各探索ブロックに対して同一数１６とする。
【００１３】
図３に示されているように、ブロック形成器１１０はＨ×Ｖ、即ち、１６×１６画素の大きさを有する探索ブロック１０を形成する。前記探索ブロック１０はプロセッシングブロック５を基準として形成され、プロセッシングブロック５は探索ブロック１０の中心に位置する。同じように、プロセッシングブロック５を基準として用いて、ブロック形成器１３０は（Ｈ−２）×（Ｖ−２）、即ち、１４×１４画素の大きさを有する探索ブロック１２を形成し、ブロック形成器１５０は（Ｈ−４）×（Ｖ−４）、即ち、１２×１２画素の大きさを有する探索ブロック１４を形成し、最後のブロック形成器１７０は（Ｈ−８）×（Ｖ−８）、即ち、８×８画素の大きさを有する最も低い階層の探索ブロック（即ち、最も小さい探索ブロック）１６を発生させ、プロセッシングブロック５は各探索ブロック１２、１４、及び１６の中心に位置する。
【００１４】
図１を更に参照すれば、ブロック形成器１１０〜１７０から発生された階層的探索ブロックは、複数のエラー関数発生器２１０〜２７０を含む動き推定ユニット２００に入力される。フレームメモリ５０からの前フレームデータもまた動き推定ユニット２００に印加される。動き推定ユニット２００内に含まれるエラー関数発生器２１０〜２７０の各々では、フレームメモリ５０からの前フレームデータと現フレームデータとを処理して、現フレームの探索ブロックと最小エラー関数を生成する候補ブロックとの間の変位を表す動きベクトルを推定する。
【００１５】
エラー関数発生器２１０、２３０、２５０、及び２７０は、同様に動作する実質的に同一の要素から構成される。従って、各エラー関数発生器２１０、２３０、２５０、及び２７０の動作は実質的に同一である。従って、エラー関数発生器２１０の動作だけを図２を参照して詳細に説明すれば十分であろう。図２には、エラー関数発生器２１０のブロック図が詳細に示されている。
【００１６】
図２に示されているように、図１に示されたフレームメモリ５０から提供された前フレームデータは、探索領域形成部２１１へ提供される。探索領域形成部２１１は、同一の大きさの探索領域を前フレーム内に規定する。探索領域の大きさは、一般に探索ブロックより大きい。
【００１７】
探索領域形成部２１１で探索領域が決定されたのち、探索領域のデータは複数のブロック形成部、例えば、２１２〜２１４へ提供される。各ブロック形成部では、Ｈ×Ｖ、即ち、１６×１６画素の候補ブロックが探索領域から発生される。各候補ブロックと現フレームの探索ブロックとの間の相対的な変位が、各候補ブロックの変位ベクトル、例えば、６１２〜６１４として出力される。Ｈ×Ｖ画素の大きさを有する全ての可能な候補ブロックが決定された探索領域内で形成され、各々の候補ブロックに対応する変位ベクトルが得られる。
【００１８】
また、各々の候補ブロックの画素データは、各々のブロック形成部２１２〜２１４から各々のブロック整合部２１５〜２１７へ出力される。Ｈ×Ｖ画素の大きさを有する探索ブロックデータも、図１に示されたブロック形成器１１０から各々のブロック整合部２１５〜２１７へ提供される。各々のブロック整合部ではブロック形成器１１０からの探索ブロックと各々のブロック形成部２１２〜２１４からの候補ブロックとの間のエラー関数が計算される。エラー関数は、例えば、絶対平均エラーであり、これは、探索ブロックと候補ブロックとの間の画素値の差の絶対値の平均に対応する。探索ブロックと各候補ブロックの対応する画素の輝度を比較することにより、各候補ブロックに対するエラー関数を求める。エラー関数は探索ブロックと各候補ブロックとの間の類似度を表す。
【００１９】
ブロック整合部２１５〜２１７からの全てのエラー関数は、最小値検出器２１８へ供給される。最小値検出器２１８は、エラー関数を比較して、最も小さいエラー関数を選択する。
【００２０】
最小値検出器２１８は最小エラー関数に対応する候補ブロックを表す信号を選択器２１９へ出力する。ブロック形成部２１２〜２１４から得られた変位ベクトル（動きベクトル）６１２〜６１４も選択器２１９へ提供される。選択器２１９は最小エラー関数に対応する候補ブロックの変位ベクトルをＨ×Ｖ画素の大きさを有する前記探索ブロックに対する動きベクトルとして選択する。決定された動きベクトルは、第１階層動きベクトルＭＶ１として、図１に示された動きベクトル選択器４００及び選択器３３２へ出力される。最小値検出器２１８により選択された最小エラー関数は、第１階層エラー関数Ｅ１として図１に示された小さい値選択器３１２及び比較器３２２へ出力される。
【００２１】
同じように、図１に示された各エラー関数発生器２３０〜２７０では、絶対平均エラーのようなエラー関数を用いて、対応する各階層レベルの探索ブロックが前フレームの対応する探索領域に含まれる各候補ブロックと比較されエラー関数が発生される。この各階層レベルのエラー関数は処理されて、各階層の各探索ブロックに対する最小エラー関数が生成される。この最小エラー関数に対応する変位ベクトルは、前記探索ブロックの動きベクトルとして選択される。各々のエラー関数発生器２３０〜２７０から出力される最小エラー関数は、第２階層、第３階層、及び最後の階層のエラー関数Ｅ２〜Ｅ４として小さい値選択器３１２〜３１６へ各々提供され、それと同時に、対応する各階層レベルの探索ブロックの動きベクトルは、第２階層、第３階層、及び最後の階層動きベクトルＭＶ２〜ＭＶ４として選択器３３２〜３３６へ各々提供される。
【００２２】
小さい値選択器３１２は、その２つの入力、即ち、第１及び第２階層エラー関数Ｅ１、Ｅ２のうち小さいエラー関数を比較器３２４及び次の段の小さい値選択器３１４へ出力し、それと共に、前記小さいエラー関数に対応する階層動きベクトルを表す制御信号を選択器３３２へ発生させる。次の段の小さい値選択器３１４は、その２つの入力、即ち、小さい値選択器３１２の出力と第３階層エラー関数Ｅ３のうち小さいエラー関数を比較器３２６及び次の段の小さい値選択器へ出力し、前記小さいエラー関数に対応する階層動きベクトルを表す制御信号を選択器３３４へ発生させる。また、最後の小さい値選択器３１６は、その２つの入力、即ち、すぐ前の段の小さい値選択器の出力及び最後の階層エラー関数Ｅ４のうち小さいエラー関数を比較器３２８へ出力し、前記小さいエラー関数に対応する階層動きベクトルを表す制御信号を選択器３３６へ発生させる。
【００２３】
各々の比較器３２２〜３２８は、その２つの入力、即ち、所定の閾値及び印加される階層エラー関数を比較して、論理「ハイ」または論理「ロー」の選択信号Ｓ１〜Ｓ４を動きベクトル選択器４００へ発生させる。即ち、各比較器は所定の閾値が各々の階層エラー関数より大きければ論理「ハイ」選択信号を、そうでなければ、論理「ロー」選択信号を動きベクトル選択器４００へ発生させる。
【００２４】
比較器３２２は所定の閾値を第１階層エラー関数Ｅ１と比較して、所定の閾値がＥ１より大きければ論理「ハイ」選択信号を、そうでなければ、論理「ロー」選択信号を動きベクトル選択器４００へ発生させる。同じように、各々の比較器３２４〜３２８は、所定の閾値を対応する各小さい値選択器３１２〜３１６の出力と比較して、所定の閾値が前記対応する各々の小さい値選択器の出力より大きければ論理「ハイ」選択信号を、そうでなければ、論理「ロー」選択信号を動きベクトル選択器４００へ各々発生させる。
【００２５】
本発明によれば、もしＳ１が論理「ハイ」であれば、選択信号Ｓ２〜Ｓ４も論理「ハイ」になる。もしＳ１が論理「ロー」であり、Ｓ２が論理「ハイ」であれば、Ｓ３〜Ｓ４も論理「ハイ」になる。即ち、もしある階層に対応する選択信号が論理「ハイ」であればより低い階層に対応する選択信号も論理「ハイ」となる。
【００２６】
各々の選択器３３２〜３３６は、各々の小さい値選択器３１２〜３１６から出力された制御信号に応答して、入力される２つの階層動きベクトルのうち一つを選択する。即ち、選択器３３２は、小さい値選択器３１２から提供された制御信号に応答して、その２つの入力、即ち、第１及び第２階層動きベクトルＭＶ１、ＭＶ２のうち一つを選択して、選択器３３４及び動きベクトル選択器４００へ提供する。選択器３３４は小さい値選択器３１４から提供された制御信号に応答して、その２つの入力、即ち、選択器３３２からの出力及び第３階層動きベクトルＭＶ３のうち一つを選択して、動きベクトル選択器４００及び次の段の選択器へ提供する。また、最後の選択器３３６は、小さい値選択器３１６から提供された制御信号に応答して、その２つの入力、即ち、すぐ前の段の選択器からの出力及び最後の階層動きベクトルＭＶ４のうち一つを選択して、動きベクトル選択器４００へ提供する。
【００２７】
動きベクトル選択器４００は、選択信号Ｓ１〜Ｓ４を受けて、入力される動きベクトルのうちの一つを前記プロセッシングブロックに対する動きベクトルとして選択する。
【００２８】
もしＳ１が論理「ハイ」であれば、動きベクトル選択器４００は他の選択信号に関係なくＭＶ１を前記プロセッシングブロックに対する動きベクトルとして選択する。もしＳ１が論理「ロー」であり、Ｓ２が論理「ハイ」であれば、動きベクトル選択器４００は、選択器３３２から印加された動きベクトルを前記プロセッシングブロックに対する動きベクトルとして選択する。このような方式により、動きベクトル選択器４００は、印加される論理「ハイ」選択信号のうち一番高い階層の選択信号に対応する動きベクトルをプロセッシングブロックの動きベクトルとして選択する。もし全ての選択信号Ｓ１〜Ｓ４が論理「ロー」であれば、動きベクトル選択器４００は、最後の選択器３３６から提供された動きベクトルを前記プロセッシングブロックに対する動きベクトルとして選択し、最後の選択器３３６により選択された動きベクトルは最も小さい値を有する階層エラー関数に対応する。
【００２９】
【発明の効果】
従って、本発明によれば、ビデオ信号の現フレームと前フレームとの間の変位を表す動きベクトルを決定する際に、階層的動きベクトル推定技法を用いて２つの連続ビデオフレームから動きベクトルを推定することにより、動きベクトルを正確に決定することができる。
【図面の簡単な説明】
【図１】ビデオ信号の現フレームと前フレームとの間の動きベクトルを決定するための本発明の方法を用いた装置を示した図である。
【図２】図１に示されたエラー発生器のうち一つを示した詳細ブロック図である。
【図３】階層的探索ブロックを例示的に示した図である。
【符号の説明】
５  プロセッシングブロック
１０  探索ブロック
１２  探索ブロック
１４  探索ブロック
１６  探索ブロック
５０  フレームメモリ
１００  ブロック形成部
１１０  ブロック形成器
１３０  ブロック形成器
１５０  ブロック形成器
１７０  ブロック形成器
２００  動き推定ユニット
２１０  エラー関数発生器
２１１  探索領域形成部
２１２  ブロック形成部
２１３  ブロック形成部
２１４  ブロック形成部
２１５  ブロック整合部
２１６  ブロック整合部
２１７  ブロック整合部
２１８  最小値検出器
２１９  選択器
２３０  エラー関数発生器
２５０  エラー関数発生器
２７０  エラー関数発生器
３１２  小さい値選択器
３１４  小さい値選択器
３１６  小さい値選択器
３２２  比較器
３２４  比較器
３２６  比較器
３２８  比較器
３３２  選択器
３３４  選択器
３３６  選択器
４００  動きベクトル選択器４００
６１２  候補ブロックの変位ベクトル
６１３  候補ブロックの変位ベクトル
６１４  候補ブロックの変位ベクトル
Ｅ１  第１階層エラー関数
Ｅ２  第２階層エラー関数
Ｅ３  第３階層エラー関数
Ｅ４  最後の階層エラー関数
ＭＶ１  第１階層動きベクトル
ＭＶ２  第２階層動きベクトル
ＭＶ３  第３階層動きベクトル
ＭＶ４  最後の階層動きベクトル
Ｓ１  選択信号
Ｓ２  選択信号
Ｓ３  選択信号
Ｓ４  選択信号
【図１】
0003764505.tif 000002
【図２】
0003764505.tif 000003
【図３】
0003764505.tif 000004