(57)【要約】予測誘導間引き探索動き推定アルゴリズムを使用する方法および装置が提供される。予測誘導間引き探索動き推定アルゴリズムは、ビデオシーケンスからのフレーム内のマクロブロックを符号化するのに使用される動きベクトルを生成する。アルゴリズムは、フルピクセルシードベクトルを生成すること、生成されたシードベクトルのまわりにフルピクセル探索を実行することを含み、これに分数ピクセル探索が続く。生成されたフルピクセルシードベクトルは、予測動きベクトルおよび階層化動きベクトルである。分数ピクセル探索は、フルピクセル探索によって生成された最終動きベクトルのまわりに実施してもよく、２分の１ピクセル探索および４分の１ピクセル探索を含めてもよい。予測誘導間引き探索動き推定アルゴリズムは、ソフトウエアおよびハードウエアの両方において実装することができる。アルゴリズムは、効率向上、スケーラビリティ、および複雑度低下を特徴とする。
2009520407.tif 000002
【特許請求の範囲】
【請求項１】
予測シード動きベクトル符号化コストを使用して符号化された予測シード動きベクトルを生成すること；
階層化シード動きベクトル符号化コストを使用して符号化された階層化シード動きベクトルを生成すること；
フルピクセル探索に対する前記予測シード動きベクトル符号化コストと前記階層化シード動きベクトル符号化コストの比較に基づいて、前記予測シード動きベクトル、前記階層化シード動きベクトル、またはその両方を選択すること；
前記フルピクセル動きベクトルの符号化コストに基づいてフルピクセル動きベクトルを選択するために、前記選択シード動きベクトルのそれぞれについて前記フルピクセル探索を行うこと；および
最終動きベクトルを推定するために、前記選択されたフルピクセル動きベクトルを使用して分数ピクセル探索を行うこと
を含む、ビデオシーケンスにおける動き推定の方法。
【請求項２】
最終動きベクトルが、ビデオシーケンスから、現在ビデオフレーム内の入力マクロブロックに対して推定される、請求項１に記載の方法。
【請求項３】
予測シード動きベクトルが、隣接マクロブロックに対して先に推定された動きベクトルを使用して生成される、請求項２に記載の方法。
【請求項４】
階層化シードベクトルが、階層化探索を使用して生成される、請求項２に記載の方法。
【請求項５】
階層化シードベクトルを生成することが、所定の間引き係数を使用して入力マクロブロックを間引きすること、および前記所定の間引き係数を使用してビデオシーケンスからの参照フレームを間引きすることを含む、請求項２に記載の方法。
【請求項６】
フルピクセル探索が、選択された階層化シード動きベクトルおよび／または選択された予測シード動きベクトルを使用して行われるとともに、フルピクセル探索場所の数が設定可能である、請求項２に記載の方法。
【請求項７】
フルピクセル探索が、正方形探索である、請求項２に記載の方法。
【請求項８】
分数ピクセル探索が、少なくとも１回の２分の１ピクセル正方形探索および少なくとも１回の４分の１ピクセル菱形探索を含む、請求項２に記載の方法。
【請求項９】
最終動きベクトルが、設定可能な寸法の探索ウィンドウ内で推定される、請求項２に記載の方法。
【請求項１０】
コンピュータシステム上で実行するためのコンピュータ命令で符号化されたコンピュータ可読記憶媒体であって、前記命令は、実行されると、
予測シード動きベクトル符号化コストを使用して符号化された予測シード動きベクトルを生成すること；
階層化シード動きベクトル符号化コストを使用して符号化された階層化シード動きベクトルを生成すること；
フルピクセル探索に対する前記予測シード動きベクトル符号化コストと前記階層化シード動きベクトル符号化コストの比較に基づいて、前記予測シード動きベクトル、前記階層化シード動きベクトル、またはその両方を選択すること；
前記フルピクセル動きベクトルの符号化コストに基づいてフルピクセル動きベクトルを選択するために、前記選択シード動きベクトルのそれぞれについて前記フルピクセル探索を行うこと；および
最終動きベクトルを推定するために、前記選択されたフルピクセル動きベクトルを使用して分数ピクセル探索を行うこと
を含む、ビデオシーケンスにおける動き推定の方法を実行する、前記コンピュータ可読記憶媒体。
【請求項１１】
最終動きベクトルが、ビデオシーケンスから、現在ビデオフレーム内の入力マクロブロックに対して推定される、請求項１０に記載のコンピュータ可読記憶媒体。
【請求項１２】
予測シード動きベクトルが、隣接マクロブロックに対して先に推定された動きベクトルを使用して生成される、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１３】
階層化シードベクトルが、階層化探索を使用して生成される、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１４】
階層化シードベクトルを生成することが、所定の間引き係数を使用して入力マクロブロックを間引きすること、および前記所定の間引き係数を使用してビデオシーケンスからの参照フレームを間引きすることを含む、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１５】
フルピクセル探索が、選択された階層化シード動きベクトルおよび／または選択された予測シード動きベクトルを使用して行われるとともに、フルピクセル探索場所の数が設定可能である、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１６】
フルピクセル探索が、正方形探索である、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１７】
分数ピクセル探索が、少なくとも１回の２分の１ピクセル正方形探索および少なくとも１回の４分の１ピクセル菱形探索を含む、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１８】
最終動きベクトルが、設定可能な寸法の探索ウィンドウ内で推定される、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１９】
プロセッサと、該プロセッサ上で実行するためのコンピュータ命令を含むコンピュータ可読記憶媒体とを含む装置であって、前記命令が、
予測シード動きベクトル符号化コストを使用して符号化された予測シード動きベクトルを生成すること；
階層化シード動きベクトル符号化コストを使用して符号化された階層化シード動きベクトルを生成すること；
フルピクセル探索に対する前記予測シード動きベクトル符号化コストと前記階層化シード動きベクトル符号化コストの比較に基づいて、前記予測シード動きベクトル、前記階層化シード動きベクトル、またはその両方を選択すること；
前記フルピクセル動きベクトルの符号化コストに基づいてフルピクセル動きベクトルを選択するために、前記選択シード動きベクトルのそれぞれについて前記フルピクセル探索を行うこと；および
最終動きベクトルを推定するために、前記選択されたフルピクセル動きベクトルを使用して分数ピクセル探索を行うこと
を含む、ビデオシーケンスにおける動き推定の方法を行う、前記装置。
【請求項２０】
最終動きベクトルが、ビデオシーケンスから、現在ビデオフレーム内の入力マクロブロックに対して推定される、請求項１９に記載の装置。
【請求項２１】
予測シード動きベクトルが、隣接マクロブロックに対して先に推定された動きベクトルを使用して生成される、請求項２０に記載の装置。
【請求項２２】
階層化シードベクトルが、階層化探索を使用して生成される、請求項２０に記載の装置。
【請求項２３】
階層化シードベクトルを生成することが、所定の間引き係数を使用して入力マクロブロックを間引きすること、および前記所定の間引き係数を使用してビデオシーケンスからの参照フレームを間引きすることを含む、請求項２０に記載の装置。
【請求項２４】
フルピクセル探索が、選択された階層化シード動きベクトルおよび／または選択された予測シード動きベクトルを使用して行われるとともに、フルピクセル探索場所の数が設定可能である、請求項２０に記載の装置。
【請求項２５】
フルピクセル探索が、正方形探索である、請求項２０に記載の装置。
【請求項２６】
分数ピクセル探索が、少なくとも１回の２分の１ピクセル正方形探索および少なくとも１回の４分の１ピクセル菱形探索を含む、請求項２０に記載の装置。
【請求項２７】
最終動きベクトルが、設定可能な寸法の探索ウィンドウ内で推定される、請求項２０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはビデオシーケンスにおける動き推定に関し、より具体的には予測誘導間引き探索（prediction guided decimated search）動き推定アルゴリズムを使用する方法および装置に関する。
【背景技術】
【０００２】
関係出願の相互参照
本出願は、３５Ｕ．Ｓ．Ｃ．§１  １９（ｅ）の下で、参照によりその全文を本明細書に組み入れてある、２００５年１２月１５日付け出願の「PREDICTION GUIDED DECIMATED SEARCH (PGDS) A LOW COST HIGH PERFORMANCE MOTION ESTIMATION FOR REAL-TIME EMBEDDED SYSTEM」とう名称の米国特許仮出願番号第６０／７５０５７８号への優先権を主張するものである。
【０００３】
発明の背景
高画質低ビットレートビデオは、電気通信、エンターテインメント、放送、監視、ディジタルカメラ、および軍事用途において広範に使用されている。ＤＶＤプレーヤー、ディジタルＴＶ、パーソナルビデオレコーダ、マルチメディアジュークボックス、ビデオ可能セル電話など、その他、多数のビデオ製品が、ビデオシーケンスを記憶および／または伝送するのに必要とされるビット数を低減するのに、ビデオ圧縮に頼っている。
【０００４】
ビデオシーケンスは一連のフレームからなっている。ビデオデータ圧縮効率を向上させるために、動き推定が行われる。動き推定は、隣接フレーム間の相関を抽出することによって、ビデオシーケンスの時間的冗長性を利用する上で有効であることがわかっている。フレームのシーケンスにおいて、現在フレームが、参照フレームと呼ばれる先行フレームから予測される。現在フレームは、通常、ブロックまたはマクロブロックに分轄される。マクロブロックのサイズは、典型的には１６×１６ピクセルであるが、標準に応じて変わってもよい。例えば、絶対差和（ＳＡＤ：sum of absolute differences）、最小二乗誤差（ＭＳＥ）、または平均絶対誤差（ＭＡＥ：mean absolute error）などの、なんらかの誤差基準を使用して、ベストマッチのマクロブロックを探し出す試みにおいて、現在フレームにおける各マクロブロックは、参照フレーム内で、やはりマクロブロックと呼ぶことができる同一サイズの領域と比較される。
【０００５】
計算コストを最小化するために、動き推定は、参照フレーム内の所定の探索領域に対して実施してもよい。現在フレーム内のマクロブロックに対する、参照フレーム内のベストマッチのマクロブロックの変位を表わすベクトルが求められる。このベクトルは、動きベクトルと呼ばれる。動きベクトルは、通常は、フレーム全体ではなく、１つのフレームから次のフレームへの画像の変化を符号化することによって、ビデオシーケンスを圧縮するのに使用される。
【０００６】
画像通信用途に対する高い要求を満足するために、多くのビデオ圧縮標準が開発されてきた。動き推定は、例えば、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−Ｉ、ＭＰＥＧ−２、ＭＰＥＧ−４、ＣＣＩＴＴ  Ｈ．２６１、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４、およびＭｉｃｒｏｓｏｆｔ  ＷＭＶ９／ＶＣ−Ｉなどの、多くのビデオ圧縮方式の中核部分である。また、動き推定は、例えば、画像安定化、コンピュータビジョン、動きセグメンテーション、ビデオ解析などの、ビデオ圧縮以外のその他の用途に使用することもできる。
【０００７】
ビデオ符号化システムにおける典型的な動き推定モジュールは、通常、最も計算量の多い構成要素であって、計算時間および能力から見た合計コストの約５０〜６０％、場合によっては最大８０％までを占める。効率的な動き推定アルゴリズムを開発するために多くの研究がなされているが、ほとんどの先行研究は、超大規模集積回路（ＶＬＳＩ）システムを対象としており、ソフトウエアフレンドリではない。それらのハードウエア指向のアルゴリズムでは、十分な順応性が得られず、追加のリソースが必要となる。これらのアルゴリズムの厳密なソフトウエア実装では、同等のレベルの効率を達成することができない。多くの動き推定アルゴリズムの開発において、計算操作数が、それらの計算複雑度を計測するために使用される。リソースが制限された組込みシステムに対する重大な制約となる、計算性能とメモリアクセス帯域幅の両方を最適化するアルゴリズムは、ほとんど開発されていない。
【発明の開示】
【０００８】
前述の観点から、本発明は、ソフトウエアおよびハードウエアの両方に実装することのできる、予測誘導間引き探索（ＰＧＤＳ：Prediction Guided Decimated Search）動き推定アルゴリズムを使用する、動き推定の方法を提供する。このアルゴリズムは、以下に示すように、改善された効率、拡張性（scalability）、および低い複雑度（complexity）を特徴とする。さらに、このアルゴリズムをソフトウエアに実装すると、順応性が得られ、新しい標準や機能要件の変化に適応可能になる。
【０００９】
本発明の態様において、ＰＧＤＳアルゴリズムは、フルピクセルシードベクトル（full-pixel seed vector）を生成すること、生成されたシードベクトルについてのフルピクセル探索を行うことを含み、それに分数ピクセル探索（fractional pixel search）が続く。フルピクセル探索を開始するために、最終動きベクトルに対する探索を誘導することのできる、開始点（複数を含む）を与えるのが望ましい。開始点またはシード（seeds）を利用することによって、探索を高速化することができる。したがって、２つのフルピクセル探索シード、すなわち予測動きベクトル（ＰＭＶ：predicted motion vector）および階層化動きベクトル（ＨＭＶ：hierarchical motion vector）が生成される。ＰＶＭは、隣接マクロブロックの動きベクトルから導出される、絶対差和（ＳＡＤ）重み付きメジアン動きベクトル（Sum-of-Absolute-Difference (SAD)-weighted median motion vector）である。ＨＭＶは、菱形パターン（diamond pattern）のまわりのらせん探索（helical search）を用いて、間引きされた現在マクロブロックと相似的に間引きされた参照フレームとから生成される動きベクトルである。
【００１０】
判断モジュールを使用して、フルピクセル探索をＰＶＭ、ＨＶＭ、またはその両方を用いて実施するかどうかを決定してもよい。したがって、この判断は、現行文脈と履歴データとに基づいて行われる。フルピクセル探索によって評価される探索点、すなわち試験しようとする候補動きベクトルの数を、判断モジュールによって提供してもよい。分数ピクセル探索を、フルピクセル探索によって生成される最終動きベクトルのまわりに実施するとともに、２分の１ピクセル探索および４分の１ピクセル探索を含めてもよい。本発明の態様においては、フルピクセル動きベクトルのまわりの２分の１ピクセル正方形探索および２分の１ピクセル動きベクトルのまわりの４分の１ピクセル菱形探索が、十分な解像度をもたらす。分数ピクセル探索は、動き補償誤差を抑制する追加の精度をもたらす。
【００１１】
したがって、本発明のいくつかの観点を、限定を意図するものではない、いくつかの例示的態様とともに提示する。
そのような観点の１つは、ビデオシーケンスにおける動き推定の方法である。この方法は、予測シード動きベクトル符号化コストを使用して符号化された予測シード動きベクトルを生成すること；階層化シード動きベクトル符号化コストを使用して符号化された階層化シード動きベクトルを生成すること；フルピクセル探索に対する前記予測シード動きベクトル符号化コストと前記階層化シード動きベクトル符号化コストの比較に基づいて、前記予測シード動きベクトル、前記階層化シード動きベクトル、またはその両方を選択すること；前記フルピクセル動きベクトルの符号化コストに基づいてフルピクセル動きベクトルを選択するために、前記選択シード動きベクトルのそれぞれについて前記フルピクセル探索を行うこと；および最終動きベクトルを推定するために、前記選択されたフルピクセル動きベクトルを使用して分数ピクセル探索を行うことを含む。
【００１２】
別の観点によれば、コンピュータ可読記憶媒体が提供される。このコンピュータ可読記憶媒体は、コンピュータシステム上で実行するためのコンピュータ命令で符号化されており、前記命令は、実行されると、予測シード動きベクトル符号化コストを使用して符号化された予測シード動きベクトルを生成すること；階層化シード動きベクトル符号化コストを使用して符号化された階層化シード動きベクトルを生成すること；フルピクセル探索に対する前記予測シード動きベクトル符号化コストと前記階層化シード動きベクトル符号化コストの比較に基づいて、前記予測シード動きベクトル、前記階層化シード動きベクトル、またはその両方を選択すること；前記フルピクセル動きベクトルの符号化コストに基づいてフルピクセル動きベクトルを選択するために、前記選択シード動きベクトルのそれぞれについて前記フルピクセル探索を行うこと；および最終動きベクトルを推定するために、前記選択されたフルピクセル動きベクトルを使用して分数ピクセル探索を行うことを含む、ビデオシーケンスにおける動き推定の方法を実行する。
【００１３】
別の観点によれば、装置は、プロセッサと、該プロセッサ上で実行するためのコンピュータ命令を含むコンピュータ可読記憶媒体とを含み、前記命令は、予測シード動きベクトル符号化コストを使用して符号化された予測シード動きベクトルを生成すること；階層化シード動きベクトル符号化コストを使用して符号化された階層化シード動きベクトルを生成すること；フルピクセル探索に対する前記予測シード動きベクトル符号化コストと前記階層化シード動きベクトル符号化コストの比較に基づいて、前記予測シード動きベクトル、前記階層化シード動きベクトル、またはその両方を選択すること；前記フルピクセル動きベクトルの符号化コストに基づいてフルピクセル動きベクトルを選択するために、前記選択シード動きベクトルのそれぞれについて前記フルピクセル探索を行うこと；および最終動きベクトルを推定するために、前記選択されたフルピクセル動きベクトルを使用して分数ピクセル探索を行うことを含む、ビデオシーケンスにおける動き推定の方法を提供する。
【００１４】
いくつかの態様においては、最終動きベクトルは、前記ビデオシーケンスから現在ビデオフレーム内部の入力マクロブロックに対して推定してもよい。最終動きベクトルは、設定可能なサイズの探索ウィンドウ内部で推定しもよい。
予測シード動きベクトルは、隣接マクロブロックに対して、先に推定された動きベクトルを使用して生成してもよい。階層化シードベクトルは、階層化探索を使用して生成してもよい。
【００１５】
いくつかの態様においては、前記階層化シードベクトルを生成することには、所定の間引き係数（decimation factor）を使用して、入力マクロブロックを間引きすること、および所定の間引き係数を使用してビデオシーケンスからの参照フレームを間引きすることを含めてもよい。
いくつかの態様においては、フルピクセル探索は、選択された階層化シード動きベクトルおよび／または前記選択された予測シード動きベクトルを使用して実行してもよく、フルピクセル探索場所の数は設定可能である。
【００１６】
いくつかの態様においては、フルピクセル探索は、正方形探索としてもよい。分数ピクセル探索には、少なくとも１回の２分の１ピクセル正方形探索および少なくとも１回の４分の１ピクセル菱形探索を含めても良い。
なお、上述して以下に考察する態様は、特に断らない限り、相互に排他的であることを意図するものではない。
添付の図面は、実寸法に合わせて描くことを意図するものではない。図面において、様々な図において示される、それぞれの同一構成要素、またはほぼ同一の構成要素は、同じ数字で表わされる。わかりやすくするために、すべての図面ですべての構成要素にラベル付けすることはしない。
【００１７】
詳細な説明
図１Ａは、動きベクトルを推定するために行われる動き推定を示す概略図である。現在フレーム１００内部のマクロブロック１０２が、参照フレーム１０４内のマクロブロックと比較される。通常、マクロブロック１０２は、最初に、参照フレーム１０２内の同一場所にあるマクロブロック１０６と比較され、その後に、この同一場所にあるマクロブロック１０６は、例えば、場所１０８および１１０に示されているように、参照フレーム内の他の場所へと移動される。この移動の大きさは可変であり、その方向は、使用される探索パターンと探索アルゴリズムのパラメータとに依存する。マクロブロック１０４にベストマッチのマクロブロック１１２が参照フレーム１０４内で見つかった場合に、動きベクトル１１６を構成する、マクロブロック１０２と１１２の間の変位を、図１Ｂに示すように、求めることができる。動きベクトル１１６は、水平（ｘ）成分１１４Ａと垂直（ｙ）成分１１４Ｂを含む。結果的に、現在フレーム１００からのマクロブロック１０２は、参照フレーム１０４において、ベストマッチするマクロブロック１１２に対する、動きベクトル１１６として符号化される。マクロブロック１０２の符号化は、概略的に図１Ｂに示されており、ベストマッチングのマイクロブロック１１２が、表現の便宜のために示されている。
【００１８】
図２は、図１に示す動きベクトルをより詳細に示す概略図である。図２は、参照フレーム２００と、探索の領域の境界を定める探索ウィンドウ２０２とを示す。探索ウィンドウの大きさは変わってもよい。さらに、図２は、例として右上位置（ｘ１，ｙ１）を有するマクロブロック１０２が、例えば右上位置（ｘ２，ｙ２）を有するベストマッチのマクロブロック１１２に対して変位する場合に、動きベクトル１１６は（Δｘ，Δｙ）として符号化され、ここでΔｘおよびΔｙは、それぞれ水平および垂直の変位であることを示している。そうではなく、動きが検出されず、ベストマッチのマクロブロック１１２が、現在フレーム（図示せず）におけるマクロブロック１０２と、参照フレーム内の同一の場所で見つかる場合には、対応する動きベクトル１１６は（０，０）と表わすことができる。
【００１９】
図３を参照すると、本発明の態様において使用された予測誘導間引き探索（ＰＧＤＳ）アルゴリズム３００のステップが示されている。このアルゴリズムは、ステップ３０２Ａおよび３０２Ｂにおいて、動きベクトルの探索を開始するために、２種類のシードベクトルを生成することに依拠している。シードベクトルは、所定のパターンに続く、後続の探索を行うのに使用される。
【００２０】
シードベクトルの１つは、ステップ３０２Ａにおいて生成される、予測動きベクトル（ＰＭＶ）と呼ばれる。ＰＭＶは、図４に詳細に示されているように、隣接マクロブロックの動きベクトルから推定される、ＳＡＤ重み付きメジアン動きベクトルである。現在マクロブロック４００の３つの隣接マクロブロックに対して先に推定された動きベクトルが、本発明の態様において、現在マクロブロック４００に対するＰＭＶを予測するのに使用される。現在マクロブロック４００がＭＢ（ｎｘ，ｎｙ）と表わされると、使用される３つの空間隣接マクロブロックは、左側マクロブロック４０２（ＭＢ（ｎｘ，ｎｙ−１））、直上のマクロブロック４０４（ＭＢ（ｎｙ−１，ｎｘ））、および右上のマクロブロック４０６（ＭＢ（ｎｘ−１，ｎｙ＋１））である。隣接マクロブロックの使用は、動きが発生すると、同一の物体を取り囲むマクロブロックが一緒に動くとの仮定に基づいている。
【００２１】
適応コスト閾を使用して、（３つの上記の隣接マクロブロックの）各候補マクロブロックが、それが利用可能な場合に、ＰＭＶ予測に使用される資格があるかどうかが、それを符号化するのに使用される動きベクトルのコストとＳＡＤ値とに基づいて、評価される。適応閾は、候補マクロブロックに対する平均ランニングコストとしてもよく、
【数１】
2009520407.tif 000003
で定義され、ここで
【数２】
2009520407.tif 000004
Ｗは探索フレーム幅、（ｉ，ｊ）は現在ブロックの位置、Ｎはマクロブロック内のピクセル数（１６×１６ピクセルマクロブロックに対して２５６）、ＣＯＳＴ（ｍ，ｎ）はコスト関数であり、これはＳＡＤおよび動きベクトル符号化コストを含む。
【００２２】
コスト関数は、
【数３】
2009520407.tif 000005
で定義され、ＳＡＤは、
【数４】
2009520407.tif 000006
で定義され、ここでＣは現在マクロブロック、Ｒは参照マクロブロック、Ｍ×Ｎは現在マクロブロックおよび参照マクロブロックの次元である（例えば、いくつかの態様におけるように、１６×１６ピクセル）。動きベクトル符号化コスト、ＭＶ＿ＣＯＳＴ（ｍｖｘ，ｍｖｙ）は、現在マクロブロックに対する動きベクトルを符号化するのに必要となるビット数である。ここで、適応閾は、その他の様々な好適な方法を使用して定義してもよいことを理解すべきである。ビデオ符号化において、ＳＡＤ値は、現在フレーム内のマクロブロックのピクセル強度値と、参照フレーム内の同一サイズのマクロブロックのピクセル強度値との間のピクセル・バイ・ピクセル差を表わすのに使用される標準的な基準である。
【００２３】
図５は、本発明の態様による、隣接マクロブロックを使用してマクロブロックに対するＰＭＶシードベクトルの予測、を示すフローチャートである。この予測は、適応閾ＣＯＳＴ＿ＴＨＲＥＳＨＯＬＤよりも低い符号化コストを特徴とする、候補隣接マクロブロック５０２の利用可能性に依存する。利用可能な候補マクロブロックのそれぞれに対して、動きベクトルは、先に推定されていると仮定されるとともに、対応する符号化コストは、式（２）に定義されるように、先に求められていると仮定される。したがって、例えば、図４に示されているマクロブロック４０２、４０４、４０６などの、３つの候補マクロブロックのすべてが、ステップ５０４において求められる、適応閾よりも低いコストを特徴とする場合には、ＰＭＶは、ステップ５０６に示されるように、３つの対応する動きベクトルのメジアン値として定義される。ステップ５０６はまた、現在マクロブロックを符号化するコスト、ＰＣＯＳＴが、３つの候補マクロブロックを符号化するコストのメジアンとして定義されることを示している。
【００２４】
さらに、ステップ５０８において、候補マクロブロックの２つが予測に対して正当であるかどうかが決定され、その答えが肯定である場合には、ステップ５１０において、それらの動きベクトルの平均値が使用される。同様に、ＰＣＯＳＴは、２つの候補マクロブロックを符号化するのに使用される、それぞれのコストの平均値として定義される。そうでない場合には、ステップ５１２は、１つだけの候補マクロブロックが、閾を超えないコストを特徴とするかどうかを判定し、そうである場合には、ステップ５１４に示されるように、この候補マクロブロックに対して以前に推定された動きベクトルが、ＰＭＶを定義するのに使用される。ＰＣＯＳＴは、候補マクロブロックを符号化するのに使用されるコストとして定義される。最後に、試験された隣接マクロブロックのどれもがＰＭＶ予測に使用される資格がない場合には、ＰＭＶはゼロと定義され、これがステップ５１６に示されている。この場合には、ＰＣＯＳＴは無限大であると考えられる。本発明の態様においては、ＰＶＭを予測するために、それぞれのステップが特定のマクロブロックの隣接マクロブロックの試験を含む、２つまたは３つの上記の探索ステップが実行される。探索ステップ数は、設定可能である。
【００２５】
図３を参照すると、ステップ３０２Ｂにおいて、階層化シード動きベクトル（ＨＭＶ）が生成される。ＨＭＶシートベクトルを生成するために、現在マクロブロックと参照フレームとが間引きされる。この間引きは、図６に図式的に示されており、この図は、元の全解像度フレーム（またはマクロブロック）６００および間引きフレーム（またはマクロブロック）６０２を示している。異なるアプローチをとって、フレームを間引きして、その解像度を低減して、符号化プロセスを高速化することができる。本発明の態様においては、「シフト・バイ・フォー（shift by 4）」技法が使用され、４×４ピクセルサイズの非オーバラップブロックが、それぞれのブロックにおけるピクセルの値を平均化することによって１ピクセルに圧縮される。したがって、１６×１６ピクセルサイズのマクロブロックは、４×４ピクセルサイズのマクロブロックに間引きされる（すなわち間引き係数は４である）。その他の好適な係数を使用することもできる。
【００２６】
ＨＭＶシードベクトルを推定するために、菱形パターンのまわりのらせん探索を使用する動き推定を、間引きされた参照フレームについて実行してもよく、その一例が図７に図解されている。図７において、Ｘは探索の開始位置であり、その他の位置が番号付きの円で示されており、ここで番号は、特定のステップサイズを特徴とする菱形パターンにそれぞれグループ化された、探索ステップの順序を示す。図７に示されているような菱形探索パターンが使用される場合には、現在フレーム内のマクロブロックと同位置にあるマクロブロック（Ｘの印）に対するＳＡＤ値を含む、現在マクロブロックのピクセル強度と参照フレーム内のマクロブロックのピクセル強度の間のＳＡＤ値が、決定される。同位置にあるマクロブロックは、所定のサイズのステップだけ変位させられる。
【００２７】
現在マクロブロックと参照フレーム内で試験されたそれぞれのマクロブロックとの間の変位を示す動きベクトルを符号化するのに使用されると予測される符号化コストが求められる。符号化コストと関連するＳＡＤ値は、式（２）に示されるように、参照フレーム内で試験されたそれぞれのマクロブロックを使用して、現在マクロブロックを符号化するコストを定義するのに使用してもよい。すなわち、図７において、（Ｘ印の）開始点を包囲する、１の番号がつけられた８個の円は、第１の菱形探索パターンを構成する。図７において例としてのみ示された菱形探索パターンのステップサイズは２である。すなわち現在マクロブロックと同位置にある参照フレーム内のマクロブロックが、垂直および水平の両方向に２ピクセルだけ変位させられ、それによって「菱形」を形成する。ここで、その他の好適なサイズの探索ステップ（例えば、８）を使用してもよいことを理解すべきである。
【００２８】
菱形探索パターンにおける次の探索が、参照フレーム内のマクロブロックのまわりで実行されて、このマクロブロックは、現在マクロブロックを符号化するのに使用される場合には、参照フレーム内のその他の試験されたマクロブロックを使用するのに伴う符号化コストと比較して、最小の符号化コストを与える。図７において、２の番号がつけられた第２の組の点は、次の菱形探索パターンを含み、この場合にステップサイズは１に低減される。後続のステップにおいて、菱形パターンにおける探索は、上述のように選ばれたマクロブロック（図示せず）のまわりに、参照フレーム内のマクロブロックを試験することによって進めることができる。この方法で実行される探索数は、可変としてもよく、いくつかの態様においては、約１０としてもよい。上述の菱形パターンにおいてそれぞれ実行される探索ステップは、「らせん」探索経路と呼べるものに従う。したがって、図７に関係して説明した探索は、菱形パターンのまわりのらせん探索と呼ばれる。
【００２９】
図３に示すように、判断モジュール３０４は、フルピクセル探索を実行するのに、ＰＭＶシードベクトルもしくはＨＭＶシートベクトル、またはその両方のいずれのシードベクトルを使用するかを決定する。したがって、ステップ３０６において決定される、ＰＭＶシードベクトルおよびＨＭＶシードベクトルを符号化するコストが互いに等しい場合には、ステップ３０８において、両方のシードがフルピクセル探索を開始するのに使用される。ステップ３１０において決定される、ＰＭＶシードベクトルのコストが、ＨＭＶシードベクトルのコストよりも低い場合には、ステップ３１２において、ＰＭＶシードベクトルが、フルピクセル探索の開始点として選択される。そうでない場合には、ステップ３１４において、ＨＭＶシードベクトルが使用される。
【００３０】
本発明の態様においては、１つのシードベクトルまたは２つのシードベクトルのまわりのフルピクセル探索が、正方形探索パターンで実行される。図８は、正方形探索パターンの例を示す。したがって、図８においては、Ｘ印の開始点は、現在マクロブロックを符号化するのに最小コストを必要とする動きベクトルをもたらすと決定された、マクロブロックの場所を示し、１の印のついた円は、第１の正方形パターンを形成する点の場所を示し、２の印のついた円は、やはり正方形探索パターンにおいて、その後に評価される点の場所を示す。図８に示されている正方形探索パターンにおけるステップのサイズは１である。しかしながら、ステップのサイズは設定可能であることを理解すべきである。１つの正方形パターンから次への移行の方向は、図７に提示された菱形探索パターンに対して説明したのと同じ方法で、すなわち、現在マクロブロックを符号化するのに必要な最小コストを与えるマクロブロックに向う方向に、決定される。
【００３１】
フルピクセル探索の結果として、現在マクロブロックに対する最終フルピクセル動きベクトルが推定される。ここで、フルピクセル動きベクトルは、現在マクロブロックと、最低符号化コストを使用しての現在マクロブロックの符号化を可能にする、参照フレーム内のマクロブロックとの間の変位を表わすことを理解すべきである。フルピクセル探索が、ＰＭＶシードベクトルとＨＭＶシードベクトルの両方を使用して実行される場合には、図８で説明した正方形探索を、シードベクトルのそれぞれのまわりで実施して、最終フルピクセル動きベクトルが、上述の符号化コスト基準を使用して、２つのそれぞれの探索から生じる、２つのフルピクセル動きベクトルの中から選択される。
【００３２】
本発明の態様において、シードベクトルまわりで、最高３つまでのフルピクセル正方形パターン探索が実行される。所定の回数の探索、ならびにステップサイズを、ビデオエンコーダの品質および複雑度の要件に適合するように調整することができる。ここで、フルピクセル探索は、整数値座標（integer-valued coordinates）を有するピクセルについて実行され、これに対してサブピクセル探索は、例えば、２分の１ピクセルまたは４分の１ペル（quarter-pel）の、分数値座標（fractional-valued coordinates）に対応する補間ピクセル値について実施されることを理解すべきである。
【００３３】
図９を参照すると、最終フルピクセル動きベクトル９００を、図３のステップ３１６に示されるように、ＰＧＤＳアルゴリズムの最後のステップ、分数ピクセル探索に対する開始点として使用してもよい。図１０は、分数ピクセル探索によって解析されるピクセルを全体的に示しており、ここで円は、整数値座標のピクセルを示し、三角形および正方形は、それぞれ２分の１ピクセル値および４分の１ピクセル値の座標を表わす。本発明の態様において、フルピクセル動きベクトル９００まわりの２分の１ピクセル正方形探索９０２が実行され、探索ステップサイズは、現在マクロブロックにベストマッチするマクロブロックの位置から、垂直および水平の両方向において２分の１ピクセルである。各２分の１ピクセルの値は、フルピクセルの平均をとるか、またはその他の任意好適な方法を使用することによって、隣接フルピクセルの値から補間される。２分の１ピクセル動きベクトル９０４が、２分の１ピクセル正方形探索９０２を使用して得られ、その後に、４分の１ピクセル菱形探索９０６が、２分の１ピクセル動きベクトル９０４のまわりに実行される。
【００３４】
４分の１ピクセルの値は、２分の１ピクセルを平均化するか、またはその他任意好適な方法を使用することによって、隣接する２分の１ピクセルから補間される。ここで、正方形２分の１ピクセル探索および菱形４分の１ピクセル探索は、図８および７に関してそれぞれ説明した、それぞれのフルピクセル探索と同様に実行されることを理解すべきである。それぞれの探索が実行される回数は設定可能である。本発明の態様において、正方形２分の１ピクセル探索および菱形４分の１ピクセル探索はそれぞれ一度、実行された。分数補間点を必要とする、例えば、Ｈ．２６４やＭＰＥＧ−４などの、いくつかのビデオ符号化標準は、分数ピクセル探索を行う回数が少ないことから、計算コストの観点で有利である。
【００３５】
表１および２は、「ｆｏｒｅｍａｎ」、「ｐａｒｉｓ」、「ｍｏｂｉｌｅ」、「ｔｅｎｎｉｓ」などの、４つの公知の試験クリップについて本発明者らが実施した性能実験の結果の一部を示す。表１では、全域探索ＦＳ（Full Search）、２次元対数探索ＴＤＬ（Two-Dimensional Logarithm Search）、階層化探索ＨＳ（Hierarchical Search）、（本発明の態様による）ＰＧＤＳなどの４つの異なる動き推定アルゴリズムの性能を評価するために、２つの尺度（metrics）、すなわちビデオシーケンスを符号化するのに使用された平均ビット数（ａｖｇ ｂｉｔｓ）、および平均ピークシグナル・ノイズ比ＰＳＮＲ（Peak Signal-to-Noise Ratio）を使用した。少ないビット数および高いＰＳＮＲ値は、良好な性能を示す。また、ビット数における百分率増加（％ｉｎｃ ｂｉｔｓ）、およびＦＳアルゴリズムと比較したＰＳＮＲの差（ｐｓｎｒ ｄｉｆｆ）が得られた。
【００３６】
ＦＳは、最も計算負荷が高いが、最良の符号化品質と、低いビットレートが得られる。動き推定アルゴリズムに対して、ビット数およびＰＳＮＲが、ＦＳアルゴリズムによって生成されるものに近いほど、アルゴリズムの性能は良好となる。表１は、ローモーションクリップ（low-motion clip）、「ｆｏｒｅｍａｎ」および「ｐａｒｉｓ」に対して、ＦＳと比較して、ＰＧＤＳは、わずか１％未満のビットレートの増加と、ほとんど同等のＰＳＮＲを得た。ハイモーションクリップ（high-motion clip）、「ｍｏｂｉｌｅ」および「ｔｅｎｎｉｓ」に対しては、ＰＧＤＳは、ＦＳよりも良い性能を示した。
【００３７】
【表１】
2009520407.tif 000007
【００３８】
表２では、ＦＳ、ＴＤＬ、ＨＳ、予測探索ＰＲＥＤ（Predicted Search）、および（本発明の態様による）ＰＧＤＳなどの５つの動き推定アルゴリズムの実装コストを、割当てメモリ量（バイト数）、マクロブロック当りのダイレクトメモリアクセス（ＤＭＡ）帯域幅、および探索点の数において比較する。１０の異なる動き探索範囲が示されており、サイズの範囲、例えば１６×１６ピクセルを有する探索が、垂直および水平の両方の方向で１６ピクセルを包囲する探索ウィンドウ、すなわち探索ウィンドウはサイズ３２×３２ピクセル、の内部で実行される。表２によれば、ＰＧＤＳを実行するのに必要なメモリの量とＤＭＡ帯域幅は、同一の探索範囲に対して、ＦＳおよびＴＤＬを実行するのに必要なものよりずっと少なかった。同時に、ＰＧＤＳの性能は、ＦＳのそれと非常に近く、ＴＤＬの性能を超える。
【００３９】
【表２】
2009520407.tif 000008
【００４０】
本発明の態様は、ソフトウエア、ハードウエア、ファームウエア、様々な種類のプロセッサ、またはそれらの組合せに実装することができる。すなわち、態様は、それには限定されないが、磁気記憶媒体（例えば、ＲＯＭＳ、ＲＡＭ、フレキシブルディスク）、光学可読媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、その他）、および搬送波（例えば、インターネット上での伝送）などの記憶媒体を含む、１つまたは２つ以上のコンピュータ可読媒体に組み込まれる、コンピュータ可読命令として実装してもよい。本発明のいくつかの態様は、それにコンピュータ可読命令を記憶させたコンピュータ可読媒体として、または例えば、アナログ・デバイシズ社（Analog Devices, Inc., Norwood, MA）から入手可能な、Ｂｌａｃｋｆｉｎファミリーの埋込み型ディジタル信号プロセッサの高性能メンバの範囲内のビデオエンコーダなどの、様々な好適な計算装置のハードウエア構成要素として実装することができる。例えば、それぞれが６００ＭＨｚ性能を有する、２つの独立コアを含む、ディジタル信号プロセッサＡＤＳＰ−ＢＦ５６１、および最高７５６ＭＨｚ性能を達成するシングルコアＡＤＳＰ−ＢＦ５３３ディジタル信号プロセッサを使用してもよい。その他の様々な好適なディジタル信号プロセッサも、本発明の態様を実装することができる。
【００４１】
図１１は、本発明の態様を実装するための、例示的計算装置の図である。そのような装置としては、それに限定はされないが、システムバス１１０８によって相互接続された、マイクロプロセッサ１１００、キャッシュメモリ１１０２、内部メモリ１１０４、およびＤＭＡコントローラ１１０６が挙げられる。図１１の計算装置を使用して実装された、本発明の態様において、システムバス１１０８は、外部メモリ１１１２を制御する、外部メモリコントローラ１１１０に接続されている。
【００４２】
さらに、ＰＧＤＳは、異なる埋込み式システムアーキテクチャに適合させて、異なるリソースバジェット（resource budget）に合致させることができる。このアルゴリズムはまた、異なるフレームサイズに対して拡大縮小が可能であり、これはＣＩＦ（ＰＡＬシステムにおいて３５２×２８８ピクセル、ＮＴＳＣシステムにおいて３５２×２４０ピクセル）からＤＩ（ＮＴＳＣシステムにおいて７２０×４８０ピクセル、ＰＡＬおよびＳＥＣＡＭシステムにおいて７２０×５７６ピクセル）解像度標準、およびハイ／ローモーションシーンまで範囲に含めることができる。ＰＧＤＳの実行遅延は、ランタイム中に動的に調整して、異なる複雑度レベルで動作させることができる。すなわち、システム作業負荷が軽い場合には、ＰＧＤＳは、より大量の探索を実行して、システムのリソースを完全に利用することができる。システム作業負荷が重い時間中は、ＰＧＤＳは、リアルタイムスケジューリング要件を守るために、最小遅延で動作することができる。
【００４３】
前記のことから理解されるように、互いに独立に、または任意の組合せで使用することのできる、本明細書に記載した本発明の多数の観点がある。特に、本発明の様々な観点は、単独、組合せ、または前記で説明した態様において具体的に考察しなかった様々な配設において使用することができるとともに、本明細書に記載した本発明の観点は、その応用において、前記の明細書に記載されるか、また図面に示された詳細および配設に限定されるものではない。本発明の観点は、その他の態様が可能であるとともに、様々な方法で実施または実行することができる。本発明の様々な観点は、任意の種類の回路を使用して実装してもよく、回路実装についての制限はない。したがって、前述の説明と図面は、例としてだけのものである。
【００４４】
ここで、本明細書において使用された語句および用語は、説明を目的とするものであり、限定するものとはみなすべきではない。本明細書において「含む（including）」、「備える（comprising）」、または「有する（having）」、「含む（containing）」、「伴う（involving）」およびその変形形態は、その後に列挙される項目およびその均等物、ならびに追加の項目を包含することを意図するものである。
【図面の簡単な説明】
【００４５】
【図１Ａ】動きベクトルを推定するために実行される動き推定の概略図である。
【図１Ｂ】現在フレーム内のマクロブロックを符号化するのに使用される、動きベクトルを示す概略図である。
【図２】現在フレーム内のマクロブロックを符号化するのに使用される、図１Ｂの動きベクトルをさらに詳細に示す概略図である。
【図３】予測誘導間引き探索 （ＰＧＤＳ）アルゴリズムを示すフローチャートである。
【図４】現在マクロブロックに対する予測動きベクトル（ＰＭＶ）シードを生成するのに使用される、現在マクロブロックおよびその隣接マクロブロックを示す概略図である。
【図５】ＰＭＶシードベクトルを予測し、ＰＭＶシードベクトルを符号化するコストを予測するプロセスのフローチャートである。
【図６】フレーム間引きを示す概略図である。
【図７】動き推定に使用される菱形パターンのまわりのらせん探索を示す図である。
【図８】動き推定に使用される正方形探索パターンを示す図である。
【図９】フルピクセル動きベクトルのまわりの分数ピクセル探索のステップを示すフローチャートである。
【図１０】分数ピクセル探索において、フルピクセルに対して、２分の１ピクセルおよび４分の１ピクセルの場所を示す図である。
【図１１】本発明の一態様による動き推定の方法を実装するための、例示的計算装置のブロック図である。
【図１Ａ】
2009520407.tif 000009
【図１Ｂ】
2009520407.tif 000010
【図２】
2009520407.tif 000011
【図３】
2009520407.tif 000012
【図４】
2009520407.tif 000013
【図５】
2009520407.tif 000014
【図６】
2009520407.tif 000015
【図７】
2009520407.tif 000016
【図８】
2009520407.tif 000017
【図９】
2009520407.tif 000018
【図１０】
2009520407.tif 000019
【図１１】
2009520407.tif 000020
【国際調査報告】
2009520407.tif 000021
2009520407.tif 000022
2009520407.tif 000023