(57)【要約】後方動きベクトル推定の演算速度を高める方法を提供する。後方動きベクトルは、最近傍探索法に基づいて、前方動きベクトルの推定から得られるフィールドから導出される。この方法では、多フレーム間隔後方動きベクトルを生成することができる。本発明に基づく後方動きベクトルの推定方法は、特に、ＭＰＥＧ−２ビデオ標準規格に好適に適用される。
2005521977.tif 000002
【特許請求の範囲】
【請求項１】
ビデオフレームのシーケンスにおける多フレーム間隔後方動きベクトルを推定する動きベクトル推定方法において、
全てのフレームについて、最近傍の前方動きベクトルから後方動きベクトルを導出するステップと、
ビデオシーケンスにおいて、上記後方動きベクトルを多フレーム間隔後方動きベクトルにリンクするステップとを有する動きベクトル推定方法。
【請求項２】
上記後方動きベクトルを導出するステップは、
逆方向に移動すると所定のマクロブロックが得られる、前のフレームの領域を特定するステップと、
上記領域に最も近いマクロブロックに上記領域の後方動きベクトルを割り当てるステップとを有することを特徴とする請求項１記載の動きベクトル推定方法。
【請求項３】
上記前方動きベクトルから生成できなかった全ての後方動きベクトルに関連しているマクロブロックを検出し、これらを適切な手法で生成するステップを更に有する請求項２記載の動きベクトル推定方法。
【請求項４】
上記リンク処理は、
（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍとし、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目の後方動きベクトルをｂｉｍｎとして、連続するフレーム間の動きベクトルをリンクすることにより、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルｂｉｍｎを検出するために繰り返しリンクを行うステップを有することを特徴とする請求項１記載の動きベクトル推定方法。
【請求項５】
上記リンク処理は、
（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍとし、
ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍｎとし、
ｂｉｍ＝ｂｉｍ（ｍ＋１）とし、
ｍ番目のフレームのｉ番目のマクロブロックが（ｘｉｍ，ｙｉｍ）に位置するものとして、
上記繰り返し処理を初期化するステップと、
後方動きベクトルｂｉｍをｂｉｍ（ｍ＋１）と表すステップと、
ｂｉｍが無効ではない場合、ｂｉｍｎに無効な後方動きベクトルを割り当ててリンク処理を終了するステップと、
ｋをｋ＝（ｍ＋１）として初期化するステップと、
有効な後方動きベクトルｂｉｍｋ＝（ｕｉｍｋ，ｖｉｍｋ）が検出されるまで繰り返し処理を継続するステップと、
ｙｊｋ＝１６＊（（ｙｉｍ＋ｖｉｍｋ＋８）／１６，ｘｊｋ＝１６＊（（ｘｉｍ＋ｕｉｍｋ＋８）／１６とし、ｊ番目のマクロブロックが（ｘｊｋ，ｙｊｋ）に位置するものとして、ｋ番目のフレームのｊ番目のマクロブロックの後方動きベクトルｂｊｋを用いて有効なｂｉｍｋが検出されたとき、該ｂｉｍｋから後方動きベクトルｂｉｍ（ｋ＋１）を構築するステップと、
ｂｊｋが無効な後方動きベクトルである場合に、ｂｉｍに無効な後方動きベクトルを割り当ててリンク処理を終了するステップと、
ｂｊｋが有効な後方動きベクトルである場合に、後方動きベクトルｂｉｍ（ｋ＋１）＝ｂｉｍｋ＋ｂｊｋを割り当てるステップと、
ｋの値をインクリメントし、後方動きベクトルが割り当てられるまで、これまでの処理を繰り返すステップとを有することを特徴とする請求項４記載の動きベクトル推定方法。
【請求項６】
有効な後方動きベクトルを、絶対値差分和（ＳＡＤ）を最小化する後方動きベクトルに置換することによって、該後方動きベクトルを改善するステップを更に有する請求項４記載の動きベクトル推定方法。
【請求項７】
ｂｉｍｎから＋／−２水平ライン＋／１画素内の絶対値差分和（ＳＡＤ）を最小化するステップを更に有する請求項６記載の動きベクトル推定方法。
【請求項８】
連続したフレームの間で利用可能な前方動きベクトルフィールドから後方動きベクトルを推定する動きベクトル推定方法において、
（ａ）逆方向に移動すると所定のマクロブロックが得られる前のフレームにおける領域を特定するステップと、
（ｂ）上記領域に最も近いマクロブロックに上記領域の後方動きベクトルを割り当てるステップとを有する動きベクトル推定方法。
【請求項９】
次のフレームにおいて、各マクロブロックについてステップ（ａ）と（ｂ）を繰り返し、該フレームにおける後方動きベクトルを推定するステップを更に有する請求項８記載の動きベクトル推定方法。
【請求項１０】
上記前方動きベクトルから生成できなかった全ての後方動きベクトルに関連するマクロブロックを検出し、これらの後方動きベクトルを周知の適切な手法で生成するステップを更に有する請求項９記載の動きベクトル推定方法。
【請求項１１】
上記前方動きベクトルから生成できなかった全ての後方動きベクトルに関連するマクロブロックを検出するステップは、
後方動きベクトルを判定する前に、現在のフレーム内の全てのマクロブロックに規則外の所定の後方動きベクトルを割り当て、割り当てが行われなかったマクロブロックが該規則外の後方動きベクトルを維持し、検出可能とするステップを有することを特徴とする請求項１０記載の動きベクトル推定方法。
【請求項１２】
上記後方動きベクトルを多フレーム間隔後方動きベクトルにリンクするステップを更に有する請求項８記載の動きベクトル推定方法。
【請求項１３】
上記リンク処理は、
（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍとし、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目の後方動きベクトルをｂｉｍｎとして、連続するフレーム間の動きベクトルをリンクすることにより、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルｂｉｍｎを検出するために繰り返しリンクを行うステップを有することを特徴とする請求項１２記載の動きベクトル推定方法。
【請求項１４】
上記リンク処理は、
（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍとし、
ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍｎとし、
ｂｉｍ＝ｂｉｍ（ｍ＋１）とし、
ｍ番目のフレームのｉ番目のマクロブロックが（ｘｉｍ，ｙｉｍ）に位置するものとして、
上記繰り返し処理を初期化するステップと、
後方動きベクトルｂｉｍをｂｉｍ（ｍ＋１）と表すステップと、
ｂｉｍが無効ではない場合、ｂｉｍｎに無効な後方動きベクトルを割り当ててリンク処理を終了するステップと、
ｋをｋ＝（ｍ＋１）として初期化するステップと、
有効な後方動きベクトルｂｉｍｋ＝（ｕｉｍｋ，ｖｉｍｋ）が検出されるまで繰り返し処理を継続するステップと、
ｙｊｋ＝１６＊（（ｙｉｍ＋ｖｉｍｋ＋８）／１６，ｘｊｋ＝１６＊（（ｘｉｍ＋ｕｉｍｋ＋８）／１６とし、ｊ番目のマクロブロックが（ｘｊｋ，ｙｊｋ）に位置するものとして、ｋ番目のフレームのｊ番目のマクロブロックの後方動きベクトルｂｊｋを用いて有効なｂｉｍｋが検出されたとき、該ｂｉｍｋから後方動きベクトルｂｉｍ（ｋ＋１）を構築するステップと、
ｂｊｋが無効な後方動きベクトルである場合に、ｂｉｍに無効な後方動きベクトルを割り当ててリンク処理を終了するステップと、
ｂｊｋが有効な後方動きベクトルである場合に、後方動きベクトルｂｉｍ（ｋ＋１）＝ｂｉｍｋ＋ｂｊｋを割り当てるステップと、
ｋの値をインクリメントし、後方動きベクトルが割り当てられるまで、これまでの処理を繰り返すステップとを有することを特徴とする請求項１２記載の動きベクトル推定方法。
【請求項１５】
連続したフレームの間の前方動きベクトルフィールドから後方動きベクトルを推定する動きベクトル推定方法において、
（ａ）全てのフレームについて、次のフレーム内の位置（ｘ，ｙ）において以前に選択されたマクロブロックを選択し、前方動きベクトル（ｕ，ｖ）を得るステップと、
（ｂ）現在のフレームにおいて（ｘ＋ｕ，ｙ＋ｖ）に最近傍のマクロブロックを選択するステップと、
（ｃ）（ｘ＋ｕ，ｙ＋ｖ）に最近傍のマクロブロックの後方動きベクトルとして、ベクトル（−ｕ，−ｖ）を割り当てるステップとを有する動きベクトル推定方法。
【請求項１６】
次のフレームの各マクロブロックについて、ステップ（ａ）から（ｃ）を繰り返すステップを更に有する請求項１５記載の動きベクトル推定方法。
【請求項１７】
上記前方動きベクトルから生成できなかった全ての後方動きベクトルに関連しているマクロブロックを検出し、これらを適切な手法で生成するステップを更に有する請求項１５記載の動きベクトル推定方法。
【請求項１８】
上記前方動きベクトルから生成できなかった全ての後方動きベクトルに関連するマクロブロックを検出するステップは、
後方動きベクトルを判定する前に、現在のフレーム内の全てのマクロブロックに規則外の所定の後方動きベクトルを割り当て、割り当てが行われなかったマクロブロックが該規則外の後方動きベクトルを維持するようにするステップを有することを特徴とする請求項１７記載の動きベクトル推定方法。
【請求項１９】
上記後方動きベクトルを多フレーム間隔後方動きベクトルにリンクするステップを更に有する請求項１５記載の動きベクトル推定方法。
【請求項２０】
上記リンク処理は、
（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍとし、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目の後方動きベクトルをｂｉｍｎとして、連続するフレーム間の動きベクトルをリンクすることにより、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルｂｉｍｎを検出するために繰り返しリンクを行うステップを有することを特徴とする請求項１９記載の動きベクトル推定方法。
【請求項２１】
上記リンク処理は、
（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍとし、
ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍｎとし、
ｂｉｍ＝ｂｉｍ（ｍ＋１）とし、
ｍ番目のフレームのｉ番目のマクロブロックが（ｘｉｍ，ｙｉｍ）に位置するものとして、
上記繰り返し処理を初期化するステップと、
後方動きベクトルｂｉｍをｂｉｍ（ｍ＋１）と表すステップと、
ｂｉｍが無効ではない場合、ｂｉｍｎに無効な後方動きベクトルを割り当ててリンク処理を終了するステップと、
ｋをｋ＝（ｍ＋１）として初期化するステップと、
有効な後方動きベクトルｂｉｍｋ＝（ｕｉｍｋ，ｖｉｍｋ）が検出されるまで繰り返し処理を継続するステップと、
ｙｊｋ＝１６＊（（ｙｉｍ＋ｖｉｍｋ＋８）／１６，ｘｊｋ＝１６＊（（ｘｉｍ＋ｕｉｍｋ＋８）／１６とし、ｊ番目のマクロブロックが（ｘｊｋ，ｙｊｋ）に位置するものとして、ｋ番目のフレームのｊ番目のマクロブロックの後方動きベクトルｂｊｋを用いて有効なｂｉｍｋが検出されたとき、該ｂｉｍｋから後方動きベクトルｂｉｍ（ｋ＋１）を構築するステップと、
ｂｊｋが無効な後方動きベクトルである場合に、ｂｉｍに無効な後方動きベクトルを割り当ててリンク処理を終了するステップと、
ｂｊｋが有効な後方動きベクトルである場合に、後方動きベクトルｂｉｍ（ｋ＋１）＝ｂｉｍｋ＋ｂｊｋを割り当てるステップと、
ｋの値をインクリメントし、後方動きベクトルが割り当てられるまで、これまでの処理を繰り返すステップとを有することを特徴とする請求項１９記載の動きベクトル推定方法。
【請求項２２】
有効な後方動きベクトルを、絶対値差分和（ＳＡＤ）を最小化する後方動きベクトルに置換することによって、該後方動きベクトルを改善するステップを更に有する請求項２０記載の動きベクトル推定方法。
【請求項２３】
ｂｉｍｎから＋／−２水平ライン＋／１画素内の絶対値差分和（ＳＡＤ）を最小化するステップを更に有する請求項２２記載の動きベクトル推定方法。
【請求項２４】
ビデオシーケンスにおける多フレーム間隔後方動きベクトルを推定する動きベクトル推定方法において、
上記フレーム及び前のフレームを含むフレームのシーケンス内の全てのフレームについて、逆方向に移動すると所定のマクロブロックが得られる、前のフレームの領域を特定するステップと、
上記領域に最も近いマクロブロックに上記領域の後方動きベクトルを割り当てるステップと、
上記後方動きベクトルを多フレーム間隔後方動きベクトルにリンクするステップとを有する動きベクトル推定方法。
【請求項２５】
上記リンク処理は、
（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍとし、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目の後方動きベクトルをｂｉｍｎとして、連続するフレーム間の動きベクトルをリンクすることにより、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルｂｉｍｎを検出するために繰り返しリンクを行うステップを有することを特徴とする請求項２４記載の動きベクトル推定方法。
【請求項２６】
有効な後方動きベクトルを、絶対値差分和（ＳＡＤ）を最小化する後方動きベクトルに置換することによって、該後方動きベクトルを改善するステップを更に有する請求項２５記載の動きベクトル推定方法。
【請求項２７】
ｂｉｍｎから＋／−２水平ライン＋／１画素内の絶対値差分和（ＳＡＤ）を最小化するステップを更に有する請求項２６記載の動きベクトル推定方法。
【請求項２８】
多フレーム間隔後方動きベクトルを推定する動きベクトル推定方法において、
上記フレーム及び前のフレームを含むフレームのシーケンス内の全てのフレームについて、逆方向に移動すると所定のマクロブロックが得られる、前のフレームの領域を特定するステップと、
上記領域に最も近いマクロブロックに上記領域の後方動きベクトルを割り当てるステップと、
（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍとし、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目の後方動きベクトルをｂｉｍｎとして、連続するフレーム間の動きベクトルをリンクすることにより、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルｂｉｍｎを検出するために繰り返しリンクを行うことによって上記後方動きベクトルを多フレーム間隔後方動きベクトルにリンクするステップとを有する動きベクトル推定方法。
【請求項２９】
多フレーム間隔後方動きベクトルを推定する動きベクトル推定方法において、
次のフレームの位置（ｘ，ｙ）において選択されたマクロブロックを選択し、関連する前方動きベクトル（ｕ，ｖ）を得るステップと、
現在のフレームにおいて（ｘ＋ｕ，ｙ＋ｖ）に最近傍のマクロブロックを選択するステップと、
（ｘ＋ｕ，ｙ＋ｖ）に最近傍のマクロブロックの後方動きベクトルとして、ベクトル（−ｕ，−ｖ）を割り当てるステップと、
（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍとし、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目の後方動きベクトルをｂｉｍｎとして、連続するフレーム間の動きベクトルをリンクすることにより、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルｂｉｍｎを検出するために繰り返しリンクを行うことによって上記後方動きベクトルを多フレーム間隔後方動きベクトルにリンクするステップとを有する動きベクトル推定方法。
【請求項３０】
多フレーム間隔後方動きベクトルを推定する動きベクトル推定方法において、
次のフレームの位置（ｘ，ｙ）において選択されたマクロブロックを選択し、関連する前方動きベクトル（ｕ，ｖ）を得るステップと、
現在のフレームにおいて（ｘ＋ｕ，ｙ＋ｖ）に最近傍のマクロブロックを選択するステップと、
（ｘ＋ｕ，ｙ＋ｖ）に最近傍のマクロブロックの後方動きベクトルとして、ベクトル（−ｕ，−ｖ）を割り当てるステップと、
（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍとし、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの後方動きベクトルをｂｉｍｎとし、ｂｉｍ＝ｂｉｍ（ｍ＋１）とし、ｍ番目のフレームのｉ番目のマクロブロックが（ｘｉｍ，ｙｉｍ）に位置するものとして、上記繰り返し処理を初期化し、後方動きベクトルｂｉｍをｂｉｍ（ｍ＋１）と表し、ｂｉｍが無効ではない場合、ｂｉｍｎに無効な後方動きベクトルを割り当ててリンク処理を終了し、ｋをｋ＝（ｍ＋１）として初期化し、有効な後方動きベクトルｂｉｍｋ＝（ｕｉｍｋ，ｖｉｍｋ）が検出されるまで繰り返し処理を継続し、ｙｊｋ＝１６＊（（ｙｉｍ＋ｖｉｍｋ＋８）／１６，ｘｊｋ＝１６＊（（ｘｉｍ＋ｕｉｍｋ＋８）／１６とし、ｊ番目のマクロブロックが（ｘｊｋ，ｙｊｋ）に位置するものとして、ｋ番目のフレームのｊ番目のマクロブロックの後方動きベクトルｂｊｋを用いて有効なｂｉｍｋが検出されたとき、該ｂｉｍｋから後方動きベクトルｂｉｍ（ｋ＋１）を構築し、ｂｊｋが無効な後方動きベクトルである場合に、ｂｉｍに無効な後方動きベクトルを割り当ててリンク処理を終了し、ｂｊｋが有効な後方動きベクトルである場合に、後方動きベクトルｂｉｍ（ｋ＋１）＝ｂｉｍｋ＋ｂｊｋを割り当て、ｋの値をインクリメントし、後方動きベクトルが割り当てられるまで、これまでの処理を繰り返すことによって上記後方動きベクトルを多フレーム間隔後方動きベクトルにリンクするステップとを有する動きベクトル推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオシーケンス内における動き推定に関し、詳しくは、前方動きベクトルから後方動きベクトルを推定する方法に関する。
【背景技術】
【０００２】
多くのビデオシステム、特にビデオデータを実時間で符号化又は復号する必要があるビデオシステムを高いコスト効率で実現するためには、ビデオデータの符号化又は復号の効率を高めることが重要である。図１は、複数のマクロブロックに分割されたビデオフレームの概略図を示している。ここでは、簡略化のために９個のマクロブロックを一例として示す。各マクロブロックは、複数の画素からなり、例えば、ＭＰＥＧ−２ではフレーム動きベクトルとして１６×１６画素からなるマクロブロックが用いられる。ビデオ信号の符号化には、ＭＰＥＧ−２符号化法が多く用いられるようになっている。
【０００３】
例えばＭＰＥＧ−２形式で符号化されたビデオシーケンス等のビデオシーケンス内における動き推定は、演算量が多い処理である。例えば、一例として、ＣＣＩＲ（国際無線通信諮問委員会：Comite Consultatif Internationale des Radio-communications）によるＣＣＩＲ６０１ビデオでは、ＩＳＯ  ＭＰＥＧ−２に基づくエンコーダで要求される演算の約９０％が動き推定の演算である。ビデオデータを符号化するのに要する時間は、与えられたビデオシーケンスを復号するのに要する時間より遙かに大きくなることがある。特に、テストモデル５（Test Model 5 ：ＴＭ５という。）に基づくＩＳＯ  ＭＰＥＧ−２技術報告書に準拠するエンコーダは、ウルトラスパーク８０（Ultra-SPARC 80）上で、水平方向に探索範囲±６３画素及び垂直方向に探索範囲±３２画素でビデオシーケンスを符号化するとき、同じ画素を復号するときに要求される実行回数の約１００倍のＣＰＵ実行時間を要求する。このため、ＭＰＥＧ−２ビデオの実時間復号は、実現可能となったが、実時間符号化は、未だに実現が困難である。
【０００４】
ＭＰＥＧ−２は、圧縮を行うために、イントラ符号化及びインター符号化を用いて空間領域と時間領域の両方に含まれた冗長な情報を取り除く非可逆型のハイブリッド符号化であり、演算量が多い。イントラ符号化は、Ｉピクチャを生成するために、画像データの空間領域において実行される圧縮である。Ｉピクチャは、イントラピクチャとも呼ばれる。インター符号化は、予測ピクチャであるＰピクチャ、及び両方向予測ピクチャであるＢピクチャを生成するために時間領域において実行される圧縮である。Ｂピクチャのための動きベクトルは、先行するＰピクチャ及びＩピクチャのための前方動きベクトル及び後方動きベクトルを計算した後にのみ生成される。Ｉピクチャは、例えば、フレーム信号又はフィールド信号等の隣接した他のピクチャから独立して符号化されるのに対して、Ｐピクチャは、前のＩピクチャ及びＰピクチャにおける要素の時間的な移動に応じて予測した及び補償した動きを符号化する。Ｂピクチャは、予測した又は補償した動きに関する差分信号として符号化される。その動きは、符号化された前及び次のピクチャ内の動きから検討される。このピクチャは、時間的に前のＩピクチャ及びＰピクチャの動きと相関関係を検証した後でのみ符号化される。Ｂピクチャの符号化では、前方予測モード、後方予測モード、及び前方予測モードと後方予測モードのうち、予測誤差率が最も低い符号化モードが使用される。通常、ＭＰＥＧ−２に関して使用されるピクチャ構成は、Ｉ、Ｂ、Ｂ、Ｐ、Ｂ、Ｂ、Ｐである。このパターンの例を図２に示す。ここでは、この図をマクロブロックベクトル図と呼ぶ。
【０００５】
ＭＰＥＧ−２規格に基づくビデオシーケンスにおけるフレーム、ピクチャは、グループオブピクチャ（以下、ＧＯＰという。）毎にグループ化されている。ＭＰＥＧ−２テストモデル５（ＴＭ５）において説明されている一般的なＧＯＰ構造は、整数Ｍ及びＮで表されている。ＴＭ５において、Ｎは、ＧＯＰにおけるピクチャの数を表し、Ｍ−１は、２つの連続するＩ又はＰフレーム間のＢフレームの数を表している。Ｍとして用いられる典型的な値は３であり、これは、連続するＩ又はＢピクチャ間に２つのＢピクチャを設けることを意味する。図２では、これをマクロブロック１及びマクロブロック３として示している。
【０００６】
マクロブロックは、フレームシーケンスの前方又は後方において、位置を移動してもよい。図３は、現在のフレーム１０及び時間的に次のフレーム１２を表している。ここでは、現在のフレーム１０内のマクロブロック１４が後方動きベクトル１６によって次のフレーム内の位置１８から移動したことを表している。図４は、対応する動きベクトルｂ１、ｂ２、ｂ３、ｂ４を示している。図５は、現在のフレーム１０及び時間的に前のフレーム２０を示している。ここでは、現在のフレーム１０内のマクロブロック２２が前方動きベクトル２４によって前のフレーム２０内の位置２６から移動したことを表している。図６は、図５に示すフレームに関連づけられた、一般的な隣接するフレーム間の前方動きベクトルを示すマクロブロックベクトル図である。
【０００７】
Ｍ＝３であるＴＭ５の場合、エンコーダは、動きベクトルｂ１、ｂ２を計算する必要がある。エンコーダが動きベクトルｂ２を探索するためにＨ×Ｖ画素の探索窓を使用し、探索窓のサイズを２つのピクチャ間のフレーム間距離に応じて定めたとすると、完全探索を用いた動きベクトルｂ１及びｂ２を算出するための演算の複雑性は、およそＨ×Ｖ＋４（Ｈ×Ｖ）＝５（Ｈ×Ｖ）となり、メモリの複雑性は、およそ４（Ｈ×Ｖ）となる。
【０００８】
符号化処理における演算速度を高めるために多くの動き推定法が開発されている。十分な画質で実時間符号化を実現するために必要な性能利得を実現するためには、多くの場合、これらの推定法を組み合わせて用いる必要がある。例えば、動き推定法「Ａ」により、演算速度が５倍になり、動き推定法「Ｂ」により、演算速度が２倍になるとすると、これらの動き推定法が直交していれば、組合わされた推定法では、演算速度が１０倍になる。組み合わされた推定法が直交していない場合、実現できる演算速度の向上は制約される。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、他の動き推定を向上させる手法と好適に組み合わされて、動き推定処理の速度を高める方法の実現が望まれている。本発明は、これらの要求を満足するものであり、これまでに開発されている動き推定法の欠点を改善することを目的とする。
【課題を解決するための手段】
【００１０】
連続するフィールド間の前方動きベクトルのフィールドが使用できるとき、後方動き予測に関連する計算量を大幅に削減できる動き推定方法を提供する。
【００１１】
前方ベクトル及び後方ベクトルの計算は、包括的には、符号化処理において実行される。本発明では、一般に前方動きベクトル及び後方動きベクトルの各々が平行関係にあることに基づき、前方動きベクトルが利用可能なとき後方動きベクトルの計算を簡素化し、これにより、全体的な演算量を削減する。更に、本発明の動き推定方法は、多くの場合、処理速度を高めるための周知の手法に直交し、したがって、処理速度向上の利益を最大限に得ることができる。
【００１２】
本発明における後方動き推定は、最近傍探索及びあるピクチャ内のあるオブジェクトの相対的な前方への動きが時間的に前のフレーム内の相対的な後方への動きと平行であることに基づいている。すなわち、前方動きベクトルを解析することによって、多くの場合、後方動きベクトルをより早く推定することができる。
【００１３】
本発明の目的は、算出された前方動きベクトルに関する情報を利用して、後方動きベクトルを高速に算出することである。
【００１４】
本発明の他の目的は、従来のベクトル算出速度向上方法に直交する後方動きベクトル推定方法を提供することである。
【００１５】
また、本発明の他の目的は、様々なＭＰＥＧ−２及び他の符号化及び復号処理における後方動きベクトルの算出速度を向上させ、実時間ＭＰＥＧ−２符号化の実現を容易にするベクトル推定方法を提供することである。
【００１６】
また、本発明の他の目的は、多フレームビデオシーケンス内の連続するフレームにリンクできる後方動きベクトルを推定する動きベクトル推定方法を提供することである。
【００１７】
本発明の更なる目的及び利点は、以下に示す実施の形態により明らかとなり、ここに示す詳細は、本発明を限定することなく、本発明の好適な形態を完全に開示することを目的とする。
【発明を実施するための最良の形態】
【００１８】
以下、本発明について図面を用いてより詳細に説明する。本発明は、図７から図１１に例示的に示す手法によって実現される。ここに開示された基本的な概念から逸脱しない範囲で、装置の各部の構成及び詳細を様々に変更してよく、また、方法における特定のステップ及びシーケンスを様々に変更してもよい。
【００１９】
後方動きベクトルの生成において実行される演算は、図６に示すように、前方動きベクトルのフィールドが連続するフレーム間で使用できるとき、本発明によって著しく削減できる。この削減は、図７及び図８に示すように、最近傍の１フレーム間隔前方動きベクトル（single frame distanced backward motion vectors）から、１フレーム間隔後方動きベクトル（single frame distanced backward motion vectors）を導出し、この１フレーム間隔後方動きベクトルを多フレーム間隔後方動きベクトル（multiple frame distanced backward motion vector）にリンクすることによって実現される。
【００２０】
図７に示すように、現在のフレーム１０の１フレーム間隔後方動きベクトルは、次のフレーム１２の１フレーム間隔前方動きベクトルから以下に示す規則に基づいて算出できる。まず、次のフレーム１２におけるマクロブロック４０の整数画素前方動きベクトル３８を２次元ベクトル（ｕ，ｖ）とし、マクロブロック４０の左上の画素位置を（ｘ，ｙ）とする。すなわち、マクロブロック４０は、前方動きベクトル（ｕ，ｖ）３８によって、現在のフレームにおける（ｘ＋ｕ，ｙ＋ｖ）の位置の１６×１６画素３２から移動している。
【００２１】
動きは相対的であるので、１６×１６画素３２は、後方動きベクトル（−ｕ，−ｖ）３６によって、現在のフレームにおける位置（ｘ＋ｕ，ｙ＋ｖ）から次のフレームの位置（ｘ，ｙ）に移動していると解釈することもできる。ただし、位置（ｘ＋ｕ，ｙ＋ｖ）は、マクロブロックの左上である必要はない。マクロブロックの後方動きベクトルを求めるために、後方動きベクトル（−ｕ，−ｖ）を、左上の角（ｘｍ，ｙｍ）が（ｘ＋ｕ，ｙ＋ｖ）に最近傍のマクロブロックに割り当てる。このときｘｍとｙｍは、次式で求められる。
ｘｍ＝１６＊（（ｘ＋ｕ＋８）／１６）
ｙｍ＝１６＊（（ｙ＋ｖ＋８）／１６）
ここで、プログラム言語であるＣ言語で定義されているように、「＊」は整数の乗法を表し、「／」は端数を丸める除法を表す。
【００２２】
この割当処理には、現在のフレームにおける各マクロブロックが１つ且つ１つのみの後方動きベクトルに割り当てられる保証がないという問題がある。すなわち、マクロブロックの中には、複数の後方動きベクトルが割り当てられるものもあれば、割り当てられる後方動きベクトルが全くないものもある。例えば、図８に示す具体例では、フレームＢ２におけるマクロブロック１は、割り当てられる後方動きベクトルがない。そこで、本発明は、割り当てられる後方動きベクトルがないマクロブロックを探索する方法を提供する。これにより、例えば従来の後方動きベクトル演算等の何らかの適切な手法によって、これらの後方動きベクトルが割り当てられていないマクロブロックに、後方動きベクトルを割り当てることができる。更に、本発明は、割り当てられる後方動きベクトルが複数あるマクロブロックについて、１つの後方動きベクトルのみを選択する方法を提供する。
【００２３】
図９は、後方動きベクトルを示しており、ここでは、動きベクトルｂ２は、実際には動きベクトルｂ３２である。動きベクトルｂ１の近似値は、ベクトルｂ３１とベクトルｂ３２とを加算することによって求められる。ここでは、動きベクトルｂ１と同じ始点を有するためにベクトルｂ３１を選択し、フレームＢ２において１フレーム間隔後方動きベクトル間でベクトルｂ３２の始点がベクトルｂ３１の終点に最も近いことから動きベクトルｂ３２を選択している。ｂ１を構成するベクトルｂ３１＋ｂ３２から＋／−２水平ライン＋／−１画素の範囲内で、絶対値差分和（sum of absolute difference：ＳＡＤ）を最小化する動きベクトルを選択することによって、ベクトルｂ２の近似値の精度は、更に高まる。
【００２４】
上述したように、各マクロブロックの後方動きベクトルの全てがこの手法によって決定されるとは限らない。例えば、図１０に示すベクトルｂ３及びベクトルｂ４は、これらのベクトルを求めるためのベクトルｂ２３が有効ではなく、したがって用いることができないため、決定することができない。この手法によってマクロブロックの有効な後方動きベクトルが決定されない場合には、マクロブロックの符号化に後方動きベクトルを利用することができず、この場合、後方動きベクトルを他の適切な如何なる手法で生成してもよい。更に、フレーム内の各マクロブロックには、複数の後方動きベクトルが割り当てられることがある。この場合、後方動きベクトルのうちの１つ、例えば、結果として得られる位置を最も正確に近似させる後方動きベクトルを選択して用いてもよく、或いは複数のベクトルを組み合わせた値を算出し、利用し、マクロブロックに割り当ててもよい。
【００２５】
割当ができないマクロブロックを検出する１つの手法として、全てのマクロブロックにフレームの外側を指すような無効な動きベクトルを仮に割り当てた後に、割り当てられていないマクロブロックを容易に検出できる繰り返し処理を実行する手法がある。そして、次のフレーム内における各マクロブロックに対し、後方動きベクトルを決定する繰り返し処理を行う。
【００２６】
次のフレーム内の（ｘ，ｙ）にある各マクロブロックについて、その前方動きベクトル（ｕ，ｖ）は、新たな後方動きベクトル（−ｕ，−ｖ）に変換される。そして、現在のフレームにおける（ｘｍ，ｙｍ）にあるマクロブロックの古い後方動きベクトルは、この新たな後方動きベクトルに置き換えられる。この結果、現在のフレーム内の各マクロブロックについて、有効又は無効なただ１つの後方動きベクトルが維持される。
【００２７】
後方動きベクトルが見つかれば、この１フレーム間隔後方動きベクトルを用いて、多フレーム間隔後方動きベクトルを算出することができる。まず、（ｍ＋１）番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの１フレーム間隔後方動きベクトルをｂｉｍとする。次に、ｎ番目のフレームに向かうｍ番目のフレーム内のｉ番目のマクロブロックの後方動きベクトルをｂｉｍｎとする。これにより、ｂｉｍ＝ｂｉｍ（ｍ＋１）となる。
【００２８】
本発明では、繰り返しリンク処理（iterative linking process）を用いて、連続するフレーム間の動きベクトルをリンクさせることにより、ｎ番目のフレームに向かうｍ番目のフレームのｉ番目のマクロブロックの多フレーム間隔後方動きベクトルｂｉｍｎを求めることができる。ｍ番目のフレームのｉ番目のマクロブロックが（ｘｉｍ，ｙｉｍ）にあるとする。
【００２９】
繰り返し処理は、前方動きベクトルから後方動きベクトルを判定する前に、まず、初期化される。１フレーム間隔動きベクトルｂｉｍを求め、これをｂｉｍ（ｍ＋１）と表し、ｋをｋ＝（ｍ＋１）に初期化する。ここで、ｂｉｍが無効な動きベクトルであれば、繰り返し処理を続行する。一方、ｂｉｍが無効な動きベクトルでなければ、ｂｉｍｎに無効なベクトルを割り当て、リンク処理を終了する。
【００３０】
多フレーム間隔後方動きベクトルｂｉｍｎは、繰り返し探索される。有効なｂｉｍｋ＝（ｕｉｍｎ，ｖｉｍｋ）が見つかると、動きベクトルｂｉｍ（ｋ＋１）は、ｋ番目のフレームのｊ番目のマクロブロックの連続フレーム間後方動きベクトルｂｊｋを用いて、ｂｉｍｋから構築される。ここで、ｊ番目のマクロブロックは、（ｘｊｋ，ｙｊｋ）に位置し、ｘｊｋ及びｙｊｋは、次式によって表される。
ｘｊｋ＝１６＊（（ｘｉｍ＋ｕｉｍｋ＋８）／１６）
ｙｊｋ＝１６＊（（ｙｉｍ＋ｖｉｍｋ＋８）／１６）
ここで、プログラム言語であるＣ言語で定義されているように、「＊」は整数の乗法を表し、「／」は端数を丸める除法を表す。ｂｊｋが無効な動きベクトルであれば、無効なベクトルをｂｉｍｎに割り当て、処理を終了する。ｂｊｋが有効な動きベクトルであれば、次のような割当を行う。
ｂｉｍ（ｋ＋１）＝ｂｉｍｋ＋ｂｊｋ
更にｋの値を１ずつインクリメントし、上述した繰り返し処理をｂｉｍｎが割り当てられるまで継続する。ｂｉｍｎが割り当てられると、すなわちｂｉｍｎが有効な動きベクトルである場合、更にベクトルｂｉｍｎから＋／−２水平ライン＋／−１画素内の範囲で絶対値差分和（ＳＡＤ）を最小化する動きベクトルで置き換えることによって、ｂｉｍｎの精度が更に高まる。
ｂｉｍｎが有効な動きベクトルでない場合、関連するマクロブロックを符号化する際に後方動きベクトルを用いるべきではない。
【００３１】
図１１は、本発明に基づく処理を示すフローチャートである。後方動きベクトルが繰り返し処理において有効に割り当てられているか否かを容易に判定するために、ブロック１００に示すように、まず、全てのマクロブロックに所定の無効な動きベクトルを割り当てる。例えば、ＭＰＥＧ−２を用いたこの実施例では、無効な動きベクトルは、フレームの外側を指す動きベクトルを含んでいてもよい。この探索処理は、全てのアプリケーションに要求されるものではなく、また、この処理を用いる場合、この処理は様々な手法で実現できることは当業者にとって明らかである。
【００３２】
ブロック１０２においては、先に選択されていないマクロブロックを次のフレーム内の（ｘ，ｙ）で選択し、２次元前方動きベクトル（ｕ，ｖ）を求める。マクロブロックは、例えば、１６×１６画素等、如何なるサイズであってもよい。マクロブロックは、ブロック１０４に示すように、現在のフレームにおいて、位置（ｘ＋ｕ，ｙ＋ｖ）に最近傍のものから選択される。次に、ブロック１０６に示すように、（ｘ＋ｕ，ｙ＋ｖ）に最近傍のマクロブロックの後方動きベクトルを（−ｕ，−ｖ）に置換する。
【００３３】
複数の類似する前方動きベクトルが利用可能な場合、最近傍の前方動きベクトルを選択するか、または後方動きベクトルが算出されるようにベクトルを組み合わせる等の他の手法を用いてもよい。ブロック１０２、１０４、１０６に示した上述したステップは、ブロック１０８に示すように、次のフレーム内でマクロブロックが選択されるまで、繰り返し実行される。このリンク処理は、多フレームビデオシーケンス内で使用される後方動きベクトルに対して実行してもよい。
【００３４】
このように、本発明に基づく前方動きベクトルから後方動きベクトルを推定する推定方法は、様々に変形して実現できることは、当業者にとって明らかである。また、特許請求の範囲に示す本発明の範囲から逸脱することなく、特定のステップ又はステップの順序を様々に変更して本発明を実現できることは、当業者にとって明らかである。
【００３５】
上述の説明は、多くの詳細事項を含んでいるが、これらは、本発明を限定するものとは解釈されず、本発明の好適な形態の幾つかを例示的に示すのみである解釈される。したがって、本発明の範囲は、当業者にとって明らかな他の実施の形態を包含することは明らかである、したがって、本発明の範囲は、添付の請求の範囲によってのみ制限される。なお、請求の範囲における要素の単数形は、特に明示している場合を除き、「１つ且つ１つのみ」ではなく、「１つ又は複数」を意味するものとする。上述の好適な形態における要素に関する、当業者に周知な構造的、化学的、機能的等価物は、参照によって本願に援用され、本発明の範囲に包含されるものとする。更に、装置又は方法は、本発明によって解決すべき問題のそれぞれ又は全てに必ずしも対応するものではないが、本発明の請求の範囲に包含されるものである。更に、ここで説明した要素、コンポーネント、処理ステップは、これらが請求の範囲に明示的に示されているか否かに関わらず、公知となることを意図するものではない。請求の範囲内の各要素は、「手段（means for）」という表現を用いている場合を除き、米国特許法第１１２条第６項の規定に基づいて定義されるものではない。
【図面の簡単な説明】
【００３６】
【図１】ＭＰＥＧ−２に基づいて１６×１６画素からなる複数のマクロブロックに分割されたフレームを示すフレーム図である。
【図２】連続するＩピクチャ又はＰピクチャ間の２つのＢピクチャの従来の使用可能性を説明するマクロブロックベクトル図である。
【図３】現在のフレーム内のマクロブロックが次のフレーム内の位置から後方動きベクトルによって移動されるビデオフレーム構成を示すフレーム図である。
【図４】図３に示す後方動きベクトルの組を示すマクロブロックベクトル図である。
【図５】前方動きベクトルによって前のフレーム内の位置から移動された現在のフレーム内のマクロブロックを示すフレーム図である。
【図６】従来の１フレーム間隔前方動きベクトルのマクロブロックベクトル図である。
【図７】本発明に基づいて、同じ大きさであるが方向が逆の前方動きベクトルによって後方動きベクトルを生成するための、現在のフレーム内の最近傍のマクロブロックへの前方動きベクトルの割当を説明するフレーム図である。
【図８】本発明に基づいて、最近傍探索法により、１フレーム間隔前方動きベクトルから導出される１フレーム間隔後方動きベクトルを示すマクロブロックベクトル図である。
【図９】本発明に基づいて、多フレーム間隔後方動きベクトルを形成するための１フレーム間隔後方動きベクトルのリンク処理を説明する図である。
【図１０】本発明に基づく処理では前方動きベクトルから求めることができないベクトルｂ３及びベクトルｂ４等の後方動きベクトルマクロブロックベクトルを示すマクロブロックベクトル図である。
【図１１】本発明の実施例として示す後方動きベクトル推定方法のフローチャートである。
【図１】
2005521977.tif 000003
【図２】
2005521977.tif 000004
【図３】
2005521977.tif 000005
【図４】
2005521977.tif 000006
【図５】
2005521977.tif 000007
【図６】
2005521977.tif 000008
【図７】
2005521977.tif 000009
【図８】
2005521977.tif 000010
【図９】
2005521977.tif 000011
【図１０】
2005521977.tif 000012
【図１１】
2005521977.tif 000013
【国際調査報告】
2005521977.tif 000014