(57)【要約】  組合せ参照双方向予測を用いて動き推定を行う方法および装置を提供する。この装置は、２つ以上の参照ピクチャの組合せから、該２つ以上の参照ピクチャのうち特定の１つの参照ピクチャの動きベクトルを動き推定プロセスで予測し、該２つ以上の参照ピクチャの残りの参照ピクチャの動きベクトルを該動き推定プロセスで使用する所定値に初期化することによって、マルチ予測ピクチャを符号化するエンコーダ（２００）を含む。
2009525683.tif 000002
【特許請求の範囲】
【請求項１】
２つ以上の参照ピクチャの組合せからマルチ予測ピクチャを符号化するエンコーダ（２００）を備え、
前記エンコーダが、前記２つ以上の参照ピクチャのうちの特定の１つの参照ピクチャの動きベクトルを動き推定プロセスで予測し、前記２つ以上の参照ピクチャの残りの参照ピクチャの動きベクトルを前記動き推定プロセスで使用する所定値に初期化することによって、前記マルチ予測ピクチャを符号化する、装置。
【請求項２】
前記エンコーダ（２００）が、前記２つ以上の参照ピクチャの前記残りの参照ピクチャが静止状態であるとして前記２つ以上の参照ピクチャのうちの前記特定の１つの参照ピクチャの動きベクトルを予測する、請求項１に記載の装置。
【請求項３】
前記エンコーダ（２００）が、複数の反復的プロセスの第１のプロセスの並列部分において前記２つ以上の参照ピクチャのそれぞれの動きベクトルを予測し、前記複数の反復的プロセスの後続のプロセスにおいて前記動きベクトルを改良する、請求項１に記載の装置。
【請求項４】
前記エンコーダ（２００）が、歪み測度に基づいて、前記複数の反復的プロセスで得られた最良の動きベクトルの組合せを選択する、請求項３に記載の装置。
【請求項５】
前記２つ以上の参照ピクチャの前記残りの参照ピクチャのうち少なくとも１つの参照ピクチャの動きベクトルの少なくとも１つが、前記２つ以上の参照ピクチャの前記残りの参照ピクチャのうちの前記少なくとも１つの参照ピクチャの以前に計算した動きベクトルに基づいて前記所定値に初期化される、請求項１に記載の装置。
【請求項６】
前記以前に計算した動きベクトルが、少なくとも１つのダイレクト動きベクトルと、前記２つ以上の参照ピクチャよりも少ない数の参照ピクチャの組合せから以前に計算した動きベクトルとを含み、前記少なくとも１つのダイレクト動きベクトルが、少なくとも１つの時間的ダイレクト動きベクトルおよび少なくとも１つの空間的ダイレクト動きベクトルの少なくとも１つを含む、請求項５に記載の装置。
【請求項７】
前記エンコーダ（２００）が、反復的プロセスを使用して前記２つ以上の参照ピクチャの動きベクトルを予測し、相関メトリックに基づいて、前記動きベクトルのうち前記所定値に初期化された前記少なくとも１つの動きベクトルおよび前記以前に計算した動きベクトルの中から、前記反復的プロセスで最初に使用する動きベクトルを決定する、請求項５に記載の装置。
【請求項８】
前記エンコーダ（２００）が、反復的プロセスを用いて前記２つ以上の参照ピクチャの動きベクトルを予測する、請求項１に記載の装置。
【請求項９】
前記エンコーダ（２００）が、前記反復的プロセスで実行される反復の最大数を制約する、請求項８に記載の装置。
【請求項１０】
前記エンコーダ（２００）が、前記反復的プロセスで並列に試験される前記２つ以上の参照ピクチャの最大数を制約する、請求項８に記載の装置。
【請求項１１】
前記エンコーダ（２００）が、以前の重み推定プロセスで得られた前記２つ以上の参照ピクチャに使用された重みに基づいて、前記２つ以上の参照ピクチャの動きベクトルを推定する、請求項１に記載の装置。
【請求項１２】
前記エンコーダ（２００）が、複数の反復的プロセスを並列に用いて前記２つ以上の参照ピクチャの動きベクトルを推定し、前記複数の反復的プロセスが、前記２つ以上の参照ピクチャの異なる参照ピクチャにそれぞれ対応する異なる初期化点を有する、請求項１に記載の装置。
【請求項１３】
前記エンコーダ（２００）が、前記複数の反復的プロセスの第１のプロセスを実行して、前記２つ以上の参照ピクチャのそれぞれの動きベクトルの初期値を得、最低の歪み測度に基づいて前記２つ以上の参照ピクチャのうちの最良の初期参照を選択し、前記複数の反復的プロセスの後続のプロセスを実行して、前記２つ以上の参照ピクチャの前記最良の初期参照に対して得られた初期値を改良する、請求項１２に記載の装置。
【請求項１４】
前記エンコーダ（２００）が、前記２つ以上の参照ピクチャの動きベクトルが同じであることに基づいて前記マルチ予測ピクチャの動き情報を予測し、前記マルチ予測ピクチャと比較した動きベクトルを複合的に改良する、請求項１に記載の装置。
【請求項１５】
前記エンコーダ（２００）が、前記２つ以上の参照ピクチャを組み合わせて組合せ参照ピクチャを形成し、前記２つ以上の参照ピクチャ間でゼロ動きを用いることによって、前記マルチ予測ピクチャの動きベクトル情報を推定する、請求項１に記載の装置。
【請求項１６】
前記エンコーダ（２００）が、前記２つ以上の参照ピクチャの残りの参照ピクチャを前記マルチ予測ピクチャと比較して別個に静止状態であるとすることによって、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを予測する、請求項１に記載の装置。
【請求項１７】
前記エンコーダ（２００）が、前記２つ以上の参照ピクチャのそれぞれの前記動きベクトルを、それぞれに対する重みを選択することによって予測する、請求項１６に記載の装置。
【請求項１８】
前記エンコーダ（２００）が、前記マルチ予測ピクチャのモード決定を実行して、一方向予測モード、ダイレクト予測モード、一方向予測を用いてそれぞれ計算した前記２つ以上の参照ピクチャの動きベクトルを使用する双方向予測モード、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの改良された動きベクトルおよび静止動きベクトルを用いる少なくとも１つの双方向予測モード、ならびに前記２つ以上の参照ピクチャのそれぞれの改良された動きベクトルを用いる双方向予測モードの中から歪み測度が最小となるモードを選択し、前記２つ以上の参照ピクチャのそれぞれの動きベクトルが、前記２つ以上の参照ピクチャの残りの参照ピクチャの動きベクトルを別個に静止状態であるとすることに基づいて計算される、請求項１に記載の装置。
【請求項１９】
前記エンコーダ（２００）が、さらに、歪み測度が最小となる前記モードを、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの動きベクトルおよび前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの改良された動きベクトル、ならびに少なくとも１つのダイレクト動きベクトルを含む少なくとも１つの組合せを用いる少なくとも１つの双方向予測モードの中から選択する、請求項１８に記載の装置。
【請求項２０】
前記エンコーダ（２００）が、前記２つ以上の参照ピクチャのただ１つの参照ピクチャだけを前記マルチ予測ピクチャと比較して静止状態であるとすることによって、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを予測する、請求項１に記載の装置。
【請求項２１】
前記エンコーダ（２００）が、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを、それぞれに対する重みを選択することによって予測する、請求項２０に記載の装置。
【請求項２２】
前記２つ以上の参照ピクチャの前記ただ１つの参照ピクチャが、前記２つ以上の参照ピクチャの前記ただ１つの参照ピクチャが対応する特定の参照リスト、時間的接近性、前記マルチ予測ピクチャに対する最大類似性の少なくとも１つに基づいて選択される、請求項２０に記載の装置。
【請求項２３】
前記エンコーダ（２００）が、前記マルチ予測ピクチャのモード決定を実行して、一方向予測モード、ダイレクト予測モード、一方向予測を用いてそれぞれ計算した前記２つ以上の参照ピクチャの動きベクトルを使用する双方向予測モード、静止動きベクトルおよび改良された動きベクトルを用いる双方向予測モードの中から歪み測度が最小となるモードを選択し、前記２つ以上の参照ピクチャのただ１つの参照ピクチャの動きベクトルのそれぞれが、静止動きベクトルが前記２つ以上の参照ピクチャの残りの参照ピクチャに使用されることに基づいて計算される、請求項１に記載の装置。
【請求項２４】
前記エンコーダ（２００）が、さらに、歪み測度が最小となる前記モードを、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの動きベクトルの１つおよび前記改良された動きベクトル、ならびに方向動きベクトルと前記歪み測度に従って計算した動きベクトルとの少なくとも１つの組合せを用いる少なくとも１つの双方向予測モードの中から選択する、請求項２３に記載の装置。
【請求項２５】
前記エンコーダ（２００）が、前記２つ以上の参照ピクチャが符号化の対象である前記マルチ予測ピクチャと同じ動きを有することに基づいて、前記２つ以上の参照ピクチャの動きベクトルを複合的に計算する、請求項１に記載の装置。
【請求項２６】
前記エンコーダ（２００）が、前記２つ以上の参照ピクチャの動きベクトルを、それぞれに対する重みを選択することによって複合的に計算する、請求項２５に記載の装置。
【請求項２７】
前記エンコーダ（２００）が、前記マルチ予測ピクチャのモード決定を実行して、一方向予測モード、ダイレクト予測モード、一方向予測を用いてそれぞれ計算した前記２つ以上の参照ピクチャの動きベクトルを使用する双方向予測モード、前記２つ以上の参照ピクチャのそれぞれの改良された動きベクトルを用いる双方向予測モード、ならびに前記２つ以上の参照ピクチャの動きベクトルを同じであるとすることによって計算した前記２つ以上の参照ピクチャの組合せの動きベクトルを用いる予測モードの中から、歪み測度が最小となるモードを選択する、請求項１に記載の装置。
【請求項２８】
前記エンコーダ（２００）が、さらに、歪み測度が最小となる前記モードを、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの動きベクトルの１つおよび前記２つ以上の参照ピクチャの動きベクトルを同じであるとすることによって計算した動きベクトル、ならびにダイレクト動きベクトルと前記２つ以上の参照ピクチャの動きベクトルを同じであるとすることによって計算した動きベクトルとの少なくとも１つの組合せを用いる少なくとも１つの双方向予測モードの中から選択する、請求項２７に記載の装置。
【請求項２９】
２つ以上の参照ピクチャの組合せからマルチ予測ピクチャを符号化するステップであって、前記２つ以上の参照ピクチャのうちの特定の１つの参照ピクチャの動きベクトルを動き推定プロセスで予測し、前記２つ以上の参照ピクチャの残りの参照ピクチャの動きベクトルを前記動き推定プロセスで使用する所定値に初期化することによってマルチ予測ピクチャを符号化する、前記符号化ステップ（４００）を含む、方法。
【請求項３０】
前記符号化ステップで、前記２つ以上の参照ピクチャピクチャのうちの前記残りの参照ピクチャが静止状態であるとすることによって前記２つ以上の参照の前記特定の１つの参照ピクチャの動きベクトルを予測する（４１０、４１５、４２０）、請求項２９に記載の方法。
【請求項３１】
前記符号化ステップで、複数の反復的プロセスの第１のプロセスの並列部分において前記２つ以上の参照のそれぞれの動きベクトルを予測し、前記複数の反復的プロセスの後続のプロセスにおいて前記動きベクトルを改良する（４１０、４２５、４１５、４３０、４２０、４４０）、請求項２９に記載の方法。
【請求項３２】
前記符号化ステップで、歪み測度に基づいて、前記複数の反復的プロセスで得られた最良の動きベクトルの組合せを選択する（４４５）、請求項３１に記載の方法。
【請求項３３】
前記２つ以上の参照ピクチャの前記残りの参照ピクチャのうちの少なくとも１つの参照ピクチャの動きベクトルの少なくとも１つが、前記２つ以上の参照ピクチャの前記残りの参照ピクチャの前記少なくとも１つの参照ピクチャの以前に計算した動きベクトルに基づいて前記所定値に初期化される、請求項２９に記載の方法。
【請求項３４】
前記以前に計算した動きベクトルが、少なくとも１つのダイレクト動きベクトルと、前記２つ以上の参照ピクチャより少ない数の参照ピクチャの組合せから以前に計算した動きベクトルとを含み、前記少なくとも１つのダイレクト動きベクトルが、少なくとも１つの時間的ダイレクト動きベクトルおよび少なくとも１つの空間的ダイレクト動きベクトルの少なくとも１つを含む、請求項３３に記載の方法。
【請求項３５】
前記符号化ステップで、反復的プロセスを使用して前記２つ以上の参照ピクチャの動きベクトルを予測し、相関メトリックに基づいて、前記動きベクトルのうち前記所定値に初期化された前記少なくとも１つの動きベクトルおよび前記以前に計算した動きベクトルの中から、前記反復的プロセスで最初に使用する動きベクトルを決定する、請求項３３に記載の方法。
【請求項３６】
前記符号化ステップで、反復的プロセスを用いて前記２つ以上の参照ピクチャの動きベクトルを予測する（４２５、４３０、４４０）、請求項２９に記載の方法。
【請求項３７】
前記符号化ステップで、前記反復的プロセスで実行される反復の最大数を制約する、請求項３６に記載の方法。
【請求項３８】
前記符号化ステップで、前記反復的プロセスで並列に試験される前記２つ以上の参照ピクチャの最大数を制約する、請求項３６に記載の方法。
【請求項３９】
前記符号化ステップで、以前の重み推定プロセスで得られた前記２つ以上の参照ピクチャに使用された重みに基づいて、前記２つ以上の参照ピクチャの動きベクトルを推定する、請求項２９に記載の方法。
【請求項４０】
前記符号化ステップで、複数の反復的プロセスを並列に用いて前記２つ以上の参照ピクチャの動きベクトルを推定し、前記複数の反復的プロセスが、前記２つ以上の参照ピクチャの異なる参照ピクチャにそれぞれ対応する異なる初期化点を有する（５１０、５１５、５２０）、請求項２９に記載の方法。
【請求項４１】
前記符号化ステップで、前記複数の反復的プロセスの第１のプロセスを実行して、前記２つ以上の参照ピクチャのそれぞれの動きベクトルの初期値を得、最低の歪み測度に基づいて前記２つ以上の参照のうちの最良の初期参照を選択し、前記複数の反復的プロセスの後続のプロセスを実行して、前記２つ以上の参照の前記最良の初期参照に対して得られた初期値を改良する（５００）、請求項４０に記載の方法。
【請求項４２】
前記符号化ステップで、前記２つ以上の参照ピクチャの動きベクトルが同じであることに基づいて前記マルチ予測ピクチャの動き情報を予測し、前記マルチ予測ピクチャと比較した動きベクトルを複合的に改良する（６００）、請求項２９に記載の方法。
【請求項４３】
前記符号化ステップで、前記２つ以上の参照ピクチャを組み合わせて組合せ参照ピクチャを形成し、前記２つ以上の参照ピクチャ間でゼロ動きを用いることによって、前記マルチ予測ピクチャの動きベクトル情報を推定する（６１０）、請求項２９に記載の方法。
【請求項４４】
前記符号化ステップで、前記２つ以上の参照ピクチャの残りの参照ピクチャを前記マルチ予測ピクチャと比較して静止状態であると別個にすることによって、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを予測する（７２０、７２５）、請求項２９に記載の方法。
【請求項４５】
前記符号化ステップで、前記２つ以上の参照ピクチャのそれぞれの前記動きベクトルを、それぞれに対する重みを選択することによって予測する、請求項４４に記載の方法。
【請求項４６】
前記符号化ステップで、前記マルチ予測ピクチャのモード決定を実行して、一方向予測モード、ダイレクト予測モード、一方向予測を用いてそれぞれ計算した前記２つ以上の参照ピクチャの動きベクトルを使用する双方向予測モード、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの改良された動きベクトルおよび静止動きベクトルを用いる少なくとも１つの双方向予測モード、ならびに前記２つ以上の参照ピクチャのそれぞれの改良された動きベクトルを用いる双方向予測モードの中から歪み測度が最小となるモードを選択し、前記２つ以上の参照ピクチャのそれぞれの動きベクトルが、前記２つ以上の参照ピクチャの残りの参照ピクチャの動きベクトルを静止状態であると別個にすることに基づいて計算される（７３０）、請求項２９に記載の方法。
【請求項４７】
前記符号化ステップで、さらに、歪み測度が最小となる前記モードを、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの動きベクトルおよび前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの改良された動きベクトル、ならびに少なくとも１つのダイレクト動きベクトルを含む少なくとも１つの組合せを用いる少なくとも１つの双方向予測モードの中から選択する、請求項４６に記載の方法。
【請求項４８】
前記符号化ステップで、前記２つ以上の参照ピクチャのただ１つの参照ピクチャだけを前記マルチ予測ピクチャと比較して静止状態であるとすることによって、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを予測する（８２０）、請求項２９に記載の方法。
【請求項４９】
前記符号化ステップで、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを、それぞれに対する重みを選択することによって予測する、請求項４８に記載の方法。
【請求項５０】
前記２つ以上の参照ピクチャの前記ただ１つの参照ピクチャが、前記２つ以上の参照ピクチャの前記ただ１つの参照ピクチャが対応する特定の参照リスト、時間的接近性、前記マルチ予測ピクチャに対する最大類似性の少なくとも１つに基づいて選択される、請求項４８に記載の方法。
【請求項５１】
前記符号化ステップで、前記マルチ予測ピクチャのモード決定を実行して、一方向予測モード、ダイレクト予測モード、一方向予測を用いてそれぞれ計算した前記２つ以上の参照ピクチャの動きベクトルを使用する双方向予測モード、静止動きベクトルおよび改良された動きベクトルを用いる双方向予測モードの中から歪み測度が最小となるモードを選択し、前記２つ以上の参照ピクチャのただ１つの参照ピクチャの動きベクトルのそれぞれが、静止動きベクトルが前記２つ以上の参照ピクチャの残りの参照ピクチャに使用されることに基づいて計算される（８２５）、請求項２９に記載の方法。
【請求項５２】
前記符号化ステップで、さらに、歪み測度が最小となる前記モードを、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの動きベクトルの１つおよび前記改良された動きベクトル、ならびに方向動きベクトルと前記歪み測度に従って計算した動きベクトルとの少なくとも１つの組合せを用いる少なくとも１つの双方向予測モードの中から選択する、請求項５１に記載の方法。
【請求項５３】
前記符号化ステップで、前記２つ以上の参照ピクチャが符号化の対象である前記マルチ予測ピクチャと同じ動きを有することに基づいて、前記２つ以上の参照ピクチャの動きベクトルを複合的に計算する（９２０）、請求項２９に記載の方法。
【請求項５４】
前記符号化ステップで、前記２つ以上の参照ピクチャの動きベクトルを、それぞれに対する重みを選択することによって複合的に計算する、請求項５３に記載の方法。
【請求項５５】
前記符号化ステップで、前記マルチ予測ピクチャのモード決定を実行して、一方向予測モード、ダイレクト予測モード、一方向予測を用いてそれぞれ計算した前記２つ以上の参照ピクチャの動きベクトルを使用する双方向予測モード、前記２つ以上の参照ピクチャのそれぞれの改良された動きベクトルを用いる双方向予測モード、ならびに前記２つ以上の参照ピクチャの動きベクトルを同じであるとすることによって計算した前記２つ以上の参照ピクチャの組合せの動きベクトルを用いる予測モードの中から、歪み測度が最小となるモードを選択する（９２５）、請求項２９に記載の方法。
【請求項５６】
前記符号化ステップで、さらに、歪み測度が最小となる前記モードを、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの動きベクトルの１つおよび前記２つ以上の参照ピクチャの動きベクトルを同じであるとすることによって計算した動きベクトル、ならびにダイレクト動きベクトルと前記２つ以上の参照ピクチャの動きベクトルを同じであるとすることによって計算した動きベクトルとの少なくとも１つの組合せを用いる少なくとも１つの双方向予測モードの中から選択する、請求項５５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２００６年２月２日出願の米国仮出願第６０／７６４４５２号の特典を請求するものである。
【０００２】
本発明は、一般にビデオ符号化に関し、特に、組合せ参照双方向予測を用いて動き推定を行う方法および装置に関する。
【背景技術】
【０００３】
第１の従来技術の手法として記載されるように、動き補償ビデオ・エンコーダおよびデコーダにおいて複合仮説動き補償が大きな利点を有することは周知である。さらに詳細には、２つの仮説を考慮する双方向予測（Ｂ）スライス（または以前の標準および勧告では双方向予測ピクチャ）は、一般に、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｐａｒｔ  １０  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）標準／ＩＴＵ−Ｔ  Ｈ．２６４勧告（以下「ＭＰＥＧ−４  ＡＶＣ標準」と呼ぶ）のコーデックにおいて最も効率的に符号化されるスライスである。これは、これらのスライスが、２つ以上の仮説を線形に結合することによってシーケンス内に存在する時間的相関をより効率的に活用し、それらに関連するエラーを低減することができることによる。さらに具体的には、Ｂスライスでは、マクロブロックまたはブロックの符号化は、１つの予測（リスト０またはリスト１）あるいは２つの予測（リスト０およびリスト１）の線形結合によって当該マクロブロックまたはブロックを予測でき、フェードまたはクロスフェードが存在する場合に各リストに関連する重みによってさらなる利点が得られるように行われる。この予測を実行するためにデコーダが必要とするのは、予測タイプによって１つまたは２つの動きベクトル（ＭＶ）、およびそれらに関連する参照（関連する各リストごとに１つ）が、ビットストリーム内で伝送されること、あるいはダイレクト・モードの場合と同様にそれらが推測されることだけである。
【０００４】
例えば現在のＪＭ参照ソフトウェア、ＪＶＴ（Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ）参照ソフトウェア・バージョンＪＭ７．４などのほとんどのエンコーダでは、Ｂスライス（および複合仮説符号化一般）の動き推定では、利用可能な予測リスト内の各候補参照を動き推定中に別個に考慮し、双方向予測（または複合仮説予測）の具体的な仮定は一切立てない。各予測リストごとに、エンコーダは、最良の一方向予測動きベクトルを計算し、その後、これらの候補動きベクトルを使用して、エンコーダは、どのモード（一方向予測、複数予測、もしくはイントラ）を使用するかを決定する最終的なモード決定において後に使用することになる付加的な双方向予測候補の組を生成する。
【０００５】
図１を参照すると、双方向予測を用いるビデオ・エンコーダの全体を、参照番号１００で示してある。コンバイナ１０５の非反転入力部、モード決定（ＭＤ）／動き補償（ＭＣ）１７５の第１の入力部、動き推定器（ＭＥ）１６５の第１の入力部、および動き推定器１７０の第１の入力部は、ビデオ・エンコーダの入力部として使用することができる。コンバイナ１０５の出力部は、変換器１１０の入力部に信号線で接続される。変換器１１０の出力部は、量子化器１１５の入力部に信号線で接続される。量子化器１１５の出力部は、可変長コーダ（ＶＬＣ）１２０の入力部に信号線で接続される。ＶＬＣ１２０の出力部は、ビデオ・エンコーダ１００の出力部として使用することができる。
【０００６】
量子化器１１５の出力部は、逆量子化器１２５の入力部にも信号線で接続される。逆量子化器１２５の出力部は、逆変換器１３０の入力部に信号線で接続される。逆変換器１３０の出力部は、コンバイナ１８０の第１の非反転入力部に信号線で接続される。コンバイナ１８０の出力部は、ループ・フィルタ１３５の入力部に信号線で接続される。ループ・フィルタ１３５の出力部は、ピクチャ参照ストア１４０の入力部に信号線で接続される。参照ピクチャ・ストア１４０の出力部は、リスト０参照バッファ１４５の入力部およびリスト１参照バッファ１５０の入力部に信号線で接続される。リスト０参照バッファ１４５の第１の出力部は、乗算器１５５の第１の入力部に信号線で接続される。リスト１参照バッファ１５０の第１の出力部は、乗算器１６０の第１の入力部に信号線で接続される。リスト０参照バッファ１４５の第２の出力部およびリスト１参照バッファ１５０の第２の出力部は、ＭＤ／ＭＣ１７５の第２の入力部に信号線で接続される。乗算器１５５の出力部は、動き推定器１６５の第２の入力部に信号線で接続される。乗算器１６０の出力部は、動き推定器１７０の第２の入力部に信号線で接続される。ＭＤ／ＭＣ１７５の第１の出力部は、コンバイナ１０５の反転入力部に信号線で接続される。ＭＤ／ＭＣ１７５の第２の出力部は、コンバイナ１８０の第２の非反転入力部に信号線で接続される。
【０００７】
上記の方法は、これらの動きベクトルを十分に双方向予測に使用することができるという仮定に基づいている。残念ながら、この仮定は常に正しいわけではなく、効率が著しく低下する可能性もある。特に、クロスフェード（ディゾルブ）が存在する場合には効率が著しく低下する可能性がある。このクロスフェードが存在する場合は、これらの画像の重なり合うオブジェクトが大幅に異なる輝度特性や動きを有することがあり、各リストを別個に考慮することによって性能が比較的低くなる可能性がある。従って、動き推定フェーズにおいて利用可能な候補参照を複合的に考慮し、符号化効率を高めることができることが、強く望まれている。ただし、低いビットレートでは非常に重要な、そのような場合には動きベクトルの組を１組（参照ｘおよびｙに対するｍｖ０およびｍｖ１）だけ伝送すればよいことを考えると特に、一方向予測でも依然として良好な結果を得ることができるので、各参照を別個に考慮してはならないということではない。
【０００８】
単一の候補についての動き推定自体が、かなり計算コストが高いことは周知である。つまり、検索ウィンドウ（±Ｎ、±Ｍ）を用いて全検索手法を使用する場合には、（２Ｎ＋１）×（２Ｍ＋１）個のチェック・ポイントを調べることになる。明らかに、このブルート・フォースな、またある意味では最適な双方向予測の手法では、（２Ｎ＋１）２×（２Ｍ＋１）２個のチェック・ポイントが必要となり、これはどのようなアーキテクチャでもかなり無理のあるものである。さらに一般的に、複合仮説（ｋ予測）の場合には、これは、（２Ｎ＋１）ｋ×（２Ｍ＋１）ｋ個を調べる必要があることを意味する。前述の第１の従来技術の手法には、以前に推定した仮説を考慮することによって各仮説を順次検査して改良する反復的手法をブルート・フォースな方法の代わりに用いる、はるかに単純な代替のアーキテクチャが記載されている。
【０００９】
双方向予測の場合については、この方法は、以下のように要約することができる。現在のピクチャがｚであり、考慮する２つの参照はピクチャｘおよびｙであると仮定する。これらのピクチャに対して、重み付け予測のために重みａおよびｂがそれぞれ選択されている（通常の双方向予測では、ａ＝ｂ＝１／２）。ｍｖ０およびｍｖ１はそれぞれ、参照ｘおよびｙ（またはそれらに重み付けしたもの）に対応する動き補償に必要な動きベクトルである。簡潔にするために、このプロセスでは重み付けオフセットは無視するが、同じ考え方を当てはめることができる。以下の手順では、ＳＡＤ（絶対差の総和）を歪み測度として使用する。
【００１０】
ステップ１
【数１】
2009525683.tif 000003
を設定する。
ステップ２  参照ピクチャをａｘとして形成する。
ステップ３  ａｘにおいて動き推定を実行し、歪み
【数２】
2009525683.tif 000004
を用いて動きベクトルｍｖ０を改良する。
ステップ４
【数３】
2009525683.tif 000005
を設定する。
ステップ５  参照ピクチャをｂｙとして形成する。
ステップ６  ｂｙにおいて動き推定を実行し、歪み
【数４】
2009525683.tif 000006
を用いて動きベクトルｍｖ１を得る。
ステップ７
【数５】
2009525683.tif 000007
であれば、終了する。
ステップ８
【数６】
2009525683.tif 000008
を設定する。
ステップ９  歪み
【数７】
2009525683.tif 000009
を用いてａｘの動きベクトルｍｖ０を改良する。
ステップ１０
【数８】
2009525683.tif 000010
であれば、終了する。
ステップ１１
【数９】
2009525683.tif 000011
を設定する。
ステップ１２  ステップ６に進む。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記の方法は、複合仮説の場合にも一般化することができる。この方法の問題は、必要となる反復回数が依然として多いことがあることである。さらに、性能が改善される可能性は非常に高いものの、特にこの方式が極小値をとる場合には、最終的な予測が可能な限り最良のものにならない可能性もある。特に、アルゴリズムを反復するたびに動き補償を用いて新たな仮説を再構築する必要があることを考えると、このアーキテクチャの実施は、かなり複雑である。上述の第１の従来技術の手法には、ステップ１の最初のゼロ動きベクトルを各リストを独立して考慮することによって生成した動きベクトルで置換する、これとかなり似た代替の手法も記されている。
【００１２】
ビデオ圧縮エンコーダおよびデコーダは、その圧縮効率の大部分を、符号化対象である現在のピクチャ（またはスライス）Ｐｃｕｒｒｅｎｔの予測を形成し、この予測と現在のピクチャの間の差分をさらに符号化することによって得ている。予測と現在のピクチャの相関が強くなるほど、当該ピクチャを圧縮するのに必要なビット数は少なくなる。従って、可能な限り最良のピクチャ予測を形成することが望ましい。この予測は、空間的予測方法（イントラ符号化）または時間的方法（インター符号化）の何れかで生成することができる。
【００１３】
時間的予測方法では、基本的に、予測参照を生成するために動き補償型の技術を利用する。これは、通常は、ソース画像をＮ×Ｍサイズの重複しないブロックに分割し、動き推定技術を用いて参照ピクチャＰｒｅｆｅｒｅｎｃｅ内の最良の一致を見つけることによって行われる。この最良の一致は、ビットストリーム内で符号化もされる１組の動きパラメータと関連づけられる。ＭＰＥＧ−４  ＡＶＣ標準などのより新しい標準では、動きパラメータとともに使用される参照の指標を示すことにより、複数の参照ピクチャを考慮して最良の予測の推定および選択を行うこともできる。このような複数参照エンコーダおよびデコーダでは、参照バッファを使用し、可能性のある各候補参照は、符号化処理または復号処理の間にはそこに記憶され、そこでアクセスされる。
【００１４】
性能を大幅に改善することができる代替の方法は、一度に１つしか参照ピクチャを考慮しないのではなく、特に双方向予測（Ｂ）ピクチャ／スライスの符号化の場合に行うように、複数の仮説の組合せを用いる可能性を考慮するものである。ここでも、予測は、複数の参照からなる１組の参照から選択した単一の参照を考慮することによっても、また２つの利用可能な参照を線形に結合する（すなわち重み付け平均を実行する）ことによっても生成することができる。この場合も、必要に応じて、各参照に対応する２つの異なる動きパラメータの組を推定して伝送する必要がある。この概念は、上述の第１の従来技術の手法に記載されるように３つ以上の仮説を考慮するエンコーダに一般化することができる。性能を改善することができるその他のパラメータは、各仮説に異なる重み係数を適用することができ、グローバル動き補償技術などさらに複雑な動きモデルを使用する第２の従来技術の手法に示されるように、重み付け予測を考慮することを含む。
【００１５】
複合仮説動き補償を考慮することによってビデオ・コーデックの性能を大幅に改善することができるが、この場合に動きパラメータを適切に推定することは、非常に困難な問題である。特に、可能な全ての予測の組合せを利用可能な参照を用いて調査する、すなわち、ある参照中の可能な各動きベクトルについて、その他の全ての動きベクトルと残りの参照中のそれらの組合せとを調査すれば、最適な解を見つけることができるが、これは明らかに計算上不可能である。
【００１６】
本発明は、組合せ参照双方向予測を用いて動き推定を行う方法および装置に関し、従来技術の上記およびその他の欠点および不利に対処するものである。
【課題を解決するための手段】
【００１７】
本発明の一態様によれば、装置が提供される。この装置は、２つ以上の参照ピクチャの組合せから、前記２つ以上の参照ピクチャのうち特定の１つの動きベクトルを動き推定プロセスで予測し、前記２つ以上の参照ピクチャの残りの参照ピクチャの動きベクトルを前記動き推定プロセスで使用する所定値に初期化することによって、マルチ予測（ｍｕｌｔｉ−ｐｒｅｄｉｃｔｉｏｎ）ピクチャを符号化するエンコーダを備える。
【００１８】
本発明の別の態様によれば、方法が提供される。この方法は、２つ以上の参照ピクチャの組合せから、前記２つ以上の参照ピクチャのうち特定の１つの動きベクトルを動き推定プロセスで予測し、前記２つ以上の参照ピクチャの残りの参照ピクチャの動きベクトルを前記動き推定プロセスで使用する所定値に初期化することによって、マルチ予測ピクチャを符号化するステップを含む。
【００１９】
本発明の上記その他の態様、特徴、および利点は、以下の例示的な実施形態の詳細な説明を添付の図面と関連づけて読めば明らかになるであろう。
【００２０】
本発明は、後記の例示的な図面によってよりよく理解することができる。
【発明を実施するための最良の形態】
【００２１】
本発明は、組合せ参照双方向予測を用いて動き推定を行う方法および装置に関する。
【００２２】
本明細書では、本発明の原理について説明する。従って、本明細書に明示的に記述または図示してはいないが本発明の原理を実施し、本発明の趣旨および範囲内に含まれる様々な構成を、当業者なら考案することができることを理解されたい。
【００２３】
本明細書に記載する全ての実施例および条件に関する表現は、本発明の原理と発明者（等）による技術の進歩の助けとなる概念とを読者が理解するのを助けるための教育的な目的を有するものであり、これら具体的に列挙した実施例および条件に限定されないものと解釈されたい。
【００２４】
さらに、本発明の原理、態様および実施形態ならびに本発明の具体的な実施例について本明細書で述べる全ての記述は、その構造的均等物および機能的均等物の両方を含むものとする。さらに、これらの均等物には、現在既知の均等物と将来開発されるであろう均等物の両方が含まれる、すなわち、その構造にかかわらず同じ機能を実行する、将来開発される任意の要素が含まれるものとする。
【００２５】
従って、例えば、当業者なら、本明細書に示すブロック図が本発明の原理を実施する例示的な回路の概念図を表していることを理解するであろう。同様に、任意のフロー・チャート、流れ図、状態遷移図、擬似コードなどが、コンピュータ可読媒体中に実質的に表現され、明示される場合もされない場合もあるコンピュータまたはプロセッサによって実行される様々なプロセスを表していることも理解されたい。
【００２６】
図面に示す様々な要素の機能は、専用のハードウェア、および適当なソフトウェアと連動してソフトウェアを実行することができるハードウェアを使用して実現することができる。プロセッサによって実現するときには、これらの機能は単一の専用プロセッサで実現することも、単一の共用プロセッサで実現することも、あるいはその一部を共用することもできる複数の個別プロセッサで実現することもできる。さらに、「プロセッサ」または「制御装置」という用語を明示的に用いていても、ソフトウェアを実行することができるハードウェアのみを指していると解釈すべきではなく、ディジタル信号プロセッサ（ＤＳＰ）ハードウェア、ソフトウェアを記憶するための読取り専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）および不揮発性記憶装置（ただしこれらに限定されない）を暗に含むことがある。
【００２７】
従来の、且つ／または特注のその他ハードウェアも含まれることがある。同様に、図面に示す任意のスイッチも、概念的なものに過ぎない。スイッチの機能は、プログラム論理の動作によっても、専用論理によっても、プログラム制御と専用論理の相互作用によっても、あるいは手作業でも実施することができ、インプリメンタ（ｉｍｐｌｅｍｅｎｔｅｒ）が前後関係から個々に判断して特定の技術を選択することができる。
【００２８】
本明細書の特許請求の範囲において、特定の機能を実行する手段として表現されている任意の要素は、例えば、（ａ）当該機能を実行する回路素子の組合せや、（ｂ）ファームウェアやマイクロコードなども含めた任意の形態のソフトウェアを、当該ソフトウェアを実行して当該機能を実行する適当な回路と組み合わせたものも含めて、当該機能を実行する任意の方法を含むものとする。特許請求の範囲によって定義される本発明は、列挙する様々な手段が実施する機能を、特許請求の範囲が要求するかたちで組み合わせることにある。従って、これらの機能を実施することができる任意の手段を、本明細書に示す手段の均等物とするものとする。
【００２９】
本明細書において、本発明の「一実施形態」または「実施形態」と述べていれば、それは、当該実施形態と関連づけて述べられる特定のフィーチャ、構造、特徴などが、本発明の少なくとも１つの実施形態には含まれているということを意味する。従って、本明細書の様々な箇所で「１実施形態では」または「実施形態では」という表現が出てきても、必ずしもそれら全てが同じ実施形態のことを言っているわけではない。
【００３０】
本明細書に与える擬似コードはあくまでも例示を目的としたものであり、従って、本明細書に記載の本発明の教示があれば、当業者なら、本発明の範囲を維持しながら、それに続く擬似コード・シーケンスならびにその変形を思いつくことができることを理解されたい。
【００３１】
図２を参照すると、減算を考慮した双方向予測を用いる例示的なビデオ・エンコーダの全体を、参照番号２００で示す。
【００３２】
コンバイナ２０５の非反転入力部、モード決定（ＭＤ）／動き補償（ＭＣ）２７５の第１の入力部、動き推定器（ＭＥ）２６５の第１の入力部、動き推定器（ＭＥ）２７０の第１の入力部、コンバイナ２８６の非反転入力部、およびコンバイナ２８８の非反転入力部は、ビデオ・エンコーダの入力部として使用することができる。コンバイナ２０５の出力部は、変換器２１０の入力部に信号線で接続される。変換器２１０の出力部は、量子化器２１５の入力部に信号線で接続される。量子化器２１５の出力部は、可変長符号化器（ＶＬＣ）２２０の入力部に信号線で接続される。ＶＬＣ２２０の出力部は、ビデオ・エンコーダ２００の出力部として使用することができる。
【００３３】
量子化器２１５の出力部は、逆量子化器２２５の入力部にも信号線で接続される。逆量子化器２２５の出力部は、逆変換器２３０の入力部に信号線で接続される。逆変換器２３０の出力部は、コンバイナ２８０の第１の非反転入力部に信号線で接続される。コンバイナ２８０の出力部は、ループ・フィルタ２３５の入力部に信号線で接続される。ループ・フィルタ２３５の出力部は、ピクチャ参照ストア２４０の入力部に信号線で接続される。ピクチャ参照ストア２４０の出力部は、リスト０参照バッファ２４５の入力部およびリスト１参照バッファ２５０の入力部に信号線で接続される。リスト０参照バッファ２４５の第１の出力部は、乗算器２５５の第１の入力部に信号線で接続される。リスト１参照バッファ２５０の第１の出力部は、乗算器２６０の第１の入力部に信号線で接続される。リスト０参照バッファ２４５の第２の出力部およびリスト１参照バッファ２５０の第２の出力部は、ＭＤ／ＭＣ２７５の第２の入力部に信号線で接続される。乗算器２５５の出力部は、動き推定器２６５の第２の入力部に信号線で接続される。乗算器２６０の出力部は、動き推定器２７０の第２の入力部に信号線で接続される。ＭＤ／ＭＣ２７５の第１の出力部は、コンバイナ２０５の反転入力部に信号線で接続される。ＭＤ／ＭＣ２７５の第２の出力部は、コンバイナ２８０の第２の非反転入力部に信号線で接続される。
【００３４】
乗算器２５５の出力部は、動き推定器２８４の第１の入力部およびコンバイナ２８６の反転入力部にも信号線で接続される。乗算器２６０の出力部は、コンバイナ２８８の反転入力部および動き推定器２８２の第１の入力部にも信号線で接続される。コンバイナ２８８の出力部は、動き推定器２８４の第２の入力部に信号線で接続される。コンバイナ２８６の出力部は、動き推定器２８２の第２の入力部に信号線で接続される。動き推定器２８４の出力部は、ＭＤ／ＭＣ２７５の第３の入力部に信号線で接続される。動き推定器２８２の出力部は、ＭＤ／ＭＣ２７５の第４の入力部に信号線で接続される。
【００３５】
本発明では、ビデオ符号化アーキテクチャにおいて双方向予測ピクチャまたはスライスの符号化性能を著しく改善することができる方法および装置について述べる。主としてＭＰＥＧ−４  ＡＶＣ標準に関連して本発明について述べるが、本発明は、この標準のみに限定されるわけではなく、本発明の範囲を維持しながらその他のビデオ符号化標準および勧告と関連して使用することもできることを理解されたい。
【００３６】
本発明の一つの実施形態では、基本的には２つのその他の参照の線形組合せである動き推定プロセスにおいて、追加の参照ピクチャを考慮する。この新しい参照により、双方向予測がより正確に考慮され、符号化効率が向上することになるので、双方向予測（Ｂ）ピクチャ（組合せ参照双方向予測）内の予測参照をさらに改良することができる。本発明の一つの実施形態では、この方法を、複合仮説予測に拡張する。この実施形態では、品質に有意な悪影響を及ぼすことなく複合仮説動き推定の複雑さが軽減されるので有利である。
【００３７】
上述した第１の従来技術の手法では、複合仮説動き補償のための動き推定を、反復の度にその他全ての参照リストまたは仮説の以前の推定動きベクトルを考慮しながら特定の参照または仮説の動きベクトルを改良する反復的方法を用いて実行する。また、初期推定として、一方向予測の動きベクトル（ＭＶ）を使用できることも示唆されている。
【００３８】
本発明の一つの実施形態では、特定の参照の動きベクトルを推定する異なる方法を使用することが提案される。この方法は、反復的方法に基づいてはいるものの、各参照の動きベクトルをより良好に推定することができる。その上、この方法は、条件またはアーキテクチャによっては、はるかに容易に実行できる可能性もある。
【００３９】
一つの実施形態は、隣り合うピクチャは、フェードおよびクロスフェードの間でも高い割合で静止領域を含む傾向があるという仮定に基づいている。上述した第１の従来技術の手法では、反復のシーケンスを実行して、その他全ての既に推定された参照の以前に計算された動きベクトルに基づいて特定の参照の動きベクトルを推定したが、実施形態では、これとは異なり、その他全ての参照が静止していると仮定して各参照の動きベクトルを予測することが第１に考慮される（図２参照）。このようにすることで、静止領域を非静止領域からより良好に分離することができ、それにより、第１の従来技術の手法のように動き推定の精度または反復方式の収束性を改善することができる。より詳細には、この解決策は、いくつかの代替の可能性をもたらす。
【００４０】
実施形態では、本発明による、組合せ参照双方向予測を用いる動き推定を行う第１の手法は、残りの仮説を最適化する並列反復を実行することを含む。並列化は、異なる参照指標の動き推定の実行を、その他の参照指標の動きベクトルが０であると仮定して開始することによって実現される。この概念は、あらゆるブロックに対して使用することができる以下の擬似コードを検討し、Ｎ個の仮説を有すると仮定することによって説明することができる。以下の擬似コードにおいて、ｘｉは、指標ｉの参照ピクチャを示し、ｗｉは、指標ｉの参照ピクチャに関連する重み付け予測用の重みを示し、ｍｖｊ、ｋ、ｉは、ＭＥを参照指標ｉから開始した場合の指標ｊの参照について計算した動きベクトルを示し、ｋ＝｛０、１｝は、反復プロセス中に動きベクトルの任意の変化が起きたか否か、およびアルゴリズムを終了する必要があるか否かを検証するために使用される。特に、Ｎ＝２である場合には、以下のようになる。
ｆｏｒ（ｉ＝０；ｉ＜２；ｉ＋＋）
｛
ｍｖ０，０，ｉ＝ｍｖ０，１，ｉ＝ｍｖ１，０，ｉ＝ｍｖ１，１，ｉ＝（０，０）；
／／！ｐｅｒｆｏｒｍ  ＭＥ  ｓｔａｒｔｉｎｇ  ｕｓｉｎｇ  ｒｅｆｅｒｅｎｃｅ  ｉｎｄｅｘ  ｉ
ｒｅｆｅｒｅｎｃｅ＝ｗｉ＊ｘｉ；
ｉｆ（ｉ＝＝０）ｊ＝１；
ｅｌｓｅ  ｊ＝０；
ｓｏｕｒｃｅ＝ｚ−ｗｊ＊ｘｊ；
／／！Ｐｅｒｆｏｒｍ  ＭＥ  ｕｓｉｎｇ  ｒｅｆｅｒｅｎｃｅ  ｔｏ  ｒｅｆｉｎｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒｓ  ｍｖｉ，０
／／！ｕｓｉｎｇ  ｄｉｓｔｏｒｔｉｏｎ  ＳＡＤ＝｜ｓｏｕｒｃｅ−ｒｅｆｅｒｅｎｃｅ（ｍｖｍ，０，ｉ）｜．
Ｍｏｔｉｏｎ＿Ｅｓｔｉｍａｔｉｏｎ（ｓｏｕｒｃｅ，ｒｅｆｅｒｅｎｃｅ，ｍｖｉ，０，ｉ，ｍｉｎＳＡＤｉ）
ｄｏ
｛
ｆｏｒ（ｍ＝０；ｍ＜２；ｍ＋＋）
｛
ｒｅｆｅｒｅｎｃｅ＝ｗｍ＊ｘｍ；
ｓｏｕｒｃｅ＝ｚ；
ｉｆ（ｍ＝＝０）ｊ＝１；
ｅｌｓｅ  ｊ＝０；
ｓｏｕｒｃｅ＝ｚ−ｗｊ＊ｘｊ（ｍｖｊ，０，ｉ）；
／／！Ｐｅｒｆｏｒｍ  ＭＥ  ｕｓｉｎｇ  ｒｅｆｅｒｅｎｃｅ  ｔｏ  ｒｅｆｉｎｅ  ｍｖｍ，０，ｉ
／／！ｕｓｉｎｇ  ｄｉｓｔｏｒｔｉｏｎ  ＳＡＤ＝｜ｓｏｕｒｃｅ−ｒｅｆｅｒｅｎｃｅ（ｍｖｍ，０，ｉ）｜．
Ｍｏｔｉｏｎ＿Ｅｓｔｉｍａｔｉｏｎ（ｓｏｕｒｃｅ，ｒｅｆｅｒｅｎｃｅ，ｍｖｍ，０，ｉ，ｍｉｎＳＡＤｉ）；
｝
ｆｏｒ（ｊ＝０；ｊ＜２；ｊ＋＋）
｛
ｉｆ（ｍｖｊ，０，ｉ！＝ｍｖｊ，１，ｉ）
｛
ｉｔｅｒａｔｅ＝１；
ｍｖｊ，１，ｉ＝ｍｖｊ，０，ｉ；
ｂｒｅａｋ；｝
ｅｌｓｅ  ｉｔｅｒａｔｅ＝０；
｝；
｝
ｗｈｉｌｅ（ｉｔｅｒａｔｅ＝＝１）
｝
【００４１】
上記の擬似コードは、異なるそれぞれの仮説ごとに、２組の動きベクトルの組合せを生じる可能性がある。歪みが最小となる１つを使用することで、最良の組合せを選択することができる。すなわち、以下のようになる。
ｉｆ（ｍｉｎＳＡＤ０＜ｍｉｎＳＡＤ１）
｛
ｂｅｓｔ＿ｍｖ＝｛ｍｖ０，０，０，ｍｖ１，０，０｝
ｍｉｎＳＡＤ＝ｍｉｎＳＡＤ０；
｝
ｅｌｓｅ
｛
ｂｅｓｔ＿ｍｖ＝｛ｍｖ０，０，１，ｍｖ１，０，１｝
ｍｉｎＳＡＤ＝ｍｉｎＳＡＤ１；
｝
【００４２】
仮説がＮ個の場合のより一般的なアルゴリズムは、以下のようになる。
ｆｏｒ（ｉ＝０；ｉ＜Ｎ；ｉ＋＋）
｛
ｒｅｆｅｒｅｎｃｅ＝ｗｉ＊ｘｉ；
ｓｏｕｒｃｅ＝ｚ；
ｆｏｒ（ｊ＝０；ｊ＜Ｎ；ｊ＋＋）
｛
ｍｖｊ，０，ｉ＝ｍｖｊ，１，ｉ＝（０，０）；
ｉｆ（ｊ！＝ｉ）ｓｏｕｒｃｅ＝ｓｏｕｒｃｅ−ｗｊ＊ｘｊ（ｍｖｊ，０，ｉ）；
｝；
／／！Ｐｅｒｆｏｒｍ  ＭＥ  ｕｓｉｎｇ  ｒｅｆｅｒｅｎｃｅ  ｔｏ  ｒｅｆｉｎｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒｓ  ｍｖｉ，０，ｉ
／／！ｕｓｉｎｇ  ｄｉｓｔｏｒｔｉｏｎ  ＳＡＤ＝｜ｓｏｕｒｃｅ−ｒｅｆｅｒｅｎｃｅ（ｍｖｍ，０，ｉ）｜．
Ｍｏｔｉｏｎ＿Ｅｓｔｉｍａｔｉｏｎ（ｓｏｕｒｃｅ，ｒｅｆｅｒｅｎｃｅ，ｍｖｉ，０，ｉ，ｍｉｎＳＡＤｉ）
ｄｏ
｛
ｆｏｒ（ｍ＝０；ｍ＜Ｎ；ｍ＋＋）
｛
ｒｅｆｅｒｅｎｃｅ＝ｗｍ＊ｘｍ；
ｓｏｕｒｃｅ＝ｚ；
ｆｏｒ（ｊ＝０；ｊ＜Ｎ；ｊ＋＋）
｛
ｉｆ（ｊ！＝ｍ）ｓｏｕｒｃｅ＝ｓｏｕｒｃｅ−ｗｊ＊ｘｊ（ｍｖｊ，０，ｉ）；
｝；
／／！Ｐｅｒｆｏｒｍ  ＭＥ  ｕｓｉｎｇ  ｒｅｆｅｒｅｎｃｅ  ｔｏ  ｒｅｆｉｎｅ  ｍｖｍ，０
／／！ｕｓｉｎｇ  ｄｉｓｔｏｒｔｉｏｎ  ＳＡＤ＝｜ｓｏｕｒｃｅ−ｒｅｆｅｒｅｎｃｅ（ｍｖｍ，０，ｉ）｜．
Ｍｏｔｉｏｎ＿Ｅｓｔｉｍａｔｉｏｎ（ｓｏｕｒｃｅ，ｒｅｆｅｒｅｎｃｅ，ｍｖｍ，０，ｉ，ｍｉｎＳＡＤｉ）
｝
ｆｏｒ（ｊ＝０；ｊ＜Ｎ；ｊ＋＋）
｛
ｉｆ（ｍｖｊ，０，ｉ！＝ｍｖｊ，１，ｉ）
｛
ｉｔｅｒａｔｅ＝１；
ｍｖｊ，１，ｉ＝ｍｖｊ，０，ｉ；
ｂｒｅａｋ；
｝
ｅｌｓｅ  ｉｔｅｒａｔｅ＝０；
｝；
｝
ｗｈｉｌｅ（ｉｔｅｒａｔｅ＝＝１）
｝
【００４３】
この場合には、異なるそれぞれの仮説ごとに最大でＮ組までの動きベクトルの組合せを有することができる。以下の方法を用いて、最良の組合せを選択することができる。
ｍｉｎＳＡＤ＝ｍｉｎＳＡＤ０；
ｂｅｓｔ＿ｍｖ＝｛ｍｖ０，０，０，ｍｖ１，０，０，…，ｍｖｍ，０，０，…，ｍｖＮ−１，０，０｝
ｆｏｒ（ｉ＝１；ｉ＜Ｎ−１；ｉ＋＋）
｛
ｉｆ（ｍｉｎＳＡＤｉ＜ｍｉｎＳＡＤ）
｛
ｍｉｎＳＡＤ＝ｍｉｎＳＡＤｉ；
ｂｅｓｔ＿ｍｖ＝｛ｍｖ０，０，ｉ，ｍｖ１，０，ｉ，…，ｍｖｍ，０，ｉ，…，ｍｖＮ−１，０，ｉ｝
｝
｝
【００４４】
この決定は、（所与のラグランジュ・パラメータで動きベクトルを符号化するのに必要な実際のビットと組み合わせた二乗誤差の和（ＳＳＥ）を歪みメトリックとして用いて）モード決定プロセス内で行うこともできるが、各組の動きベクトルの組合せ、またはその他の予測子の組合せ、あるいは空間的／時間的ダイレクト動きベクトル、一方向動きベクトル、ゼロ動きベクトル、一時コロケート（ｔｅｍｐｏｒａｒｉｌｙ  ｃｏｌｌｏｃａｔｅｄ）動きベクトルなどモード決定においてさらなる仮説を生じる可能性がある以前に推定された動きベクトルの組合せも可能である。また、実施態様によっては、反復の最大数、または実行される並列改良の回数も予測することができ、それにより所与のシステムの複雑さが低減されることもあることにも留意されたい。
【００４５】
一つの実施形態において、組合せ参照双方向予測を用いて動き推定を行う本発明による第２の手法について述べる。本発明による第１の手法で述べたように考えられる全ての反復を実行することは依然としてかなり複雑であることを理解されたい。本発明による第２の手法では、各仮説の第１のステップのみを実行し、その後、最良の１つのみに基づいて（最小歪み基準に基づいて）反復改良を実行する。これにより、同様の性能を達成しながら、複雑さを大幅に低減することができる。この第２の手法の擬似コードは、以下の通りである。
ｆｏｒ（ｉ＝０；ｉ＜Ｎ；ｉ＋＋）
｛
ｒｅｆｅｒｅｎｃｅ＝ｗｉ＊ｘｉ；
ｓｏｕｒｃｅ＝ｚ；
ｆｏｒ（ｊ＝０；ｊ＜Ｎ；ｊ＋＋）
｛
ｍｖｊ，０，ｉ＝ｍｖｊ，１，ｉ＝（０，０）；
ｉｆ（ｊ！＝ｉ）ｓｏｕｒｃｅ＝ｓｏｕｒｃｅ−ｗｊ＊ｘｊ（ｍｖｊ，０，ｉ）；
｝；
／／！Ｐｅｒｆｏｒｍ  ＭＥ  ｕｓｉｎｇ  ｒｅｆｅｒｅｎｃｅ  ｔｏ  ｒｅｆｉｎｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒｓ  ｍｖｉ，０
／／！ｕｓｉｎｇ  ｄｉｓｔｏｒｔｉｏｎ  ＳＡＤ＝｜ｓｏｕｒｃｅ−ｒｅｆｅｒｅｎｃｅ（ｍｖｍ，０，ｉ）｜．
Ｍｏｔｉｏｎ＿Ｅｓｔｉｍａｔｉｏｎ（ｓｏｕｒｃｅ，ｒｅｆｅｒｅｎｃｅ，ｍｖｉ，０，ｉ，ｍｉｎＳＡＤｉ）
｝
ｍｉｎＳＡＤ＝ｍｉｎＳＡＤｉ；
ｂｅｓｔ＿ｍｖ＝｛ｍｖ０，０，０，０，０，…｝；
ｂｅｓｔ＿ｒｅｆ＝０；
ｆｏｒ（ｉ＝１；ｉ＜Ｎ−１；ｉ＋＋）
｛
ｉｆ（ｍｉｎＳＡＤｉ＜ｍｉｎＳＡＤ）
｛
ｍｉｎＳＡＤ＝ｍｉｎＳＡＤｉ；
ｂｅｓｔ＿ｍｖ＝｛０，０，…，ｍｖｉ，０，ｉ，…，０，０｝；
ｂｅｓｔ＿ｒｅｆ＝ｉ；
｝
｝
ｄｏ
｛
ｆｏｒ（ｍ＝０；ｍ＜Ｎ；ｍ＋＋）
｛
ｒｅｆｅｒｅｎｃｅ＝ｗｍ＊ｘｍ；
ｓｏｕｒｃｅ＝ｚ；
ｆｏｒ（ｊ＝０；ｊ＜Ｎ；ｊ＋＋）
｛
ｉｆ（ｊ！＝ｍ）ｓｏｕｒｃｅ＝ｓｏｕｒｃｅ−ｗｊ＊ｘｊ（ｍｖｊ，０，ｂｅｓｔ＿ｒｅｆ）；
｝；
／／！Ｐｅｒｆｏｒｍ  ＭＥ  ｕｓｉｎｇ  ｒｅｆｅｒｅｎｃｅ  ｔｏ  ｒｅｆｉｎｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒｓ  ｍｖｉ，０
／／！ｕｓｉｎｇ  ｄｉｓｔｏｒｔｉｏｎ  ＳＡＤ＝｜ｓｏｕｒｃｅ−ｒｅｆｅｒｅｎｃｅ（ｍｖｍ，０，ｉ）｜．
Ｍｏｔｉｏｎ＿Ｅｓｔｉｍａｔｉｏｎ（ｓｏｕｒｃｅ，ｒｅｆｅｒｅｎｃｅ，ｍｖｍ，０，ｂｅｓｔ＿ｒｅｆ，ｍｉｎＳＡＤｂｅｓｔ＿ｒｅｆ）
｝
ｆｏｒ（ｊ＝０；ｊ＜Ｎ；ｊ＋＋）
｛
ｉｆ（ｍｖｊ，０，ｂｅｓｔ＿ｒｅｆ！＝ｍｖｊ，１，ｂｅｓｔ＿ｒｅｆ）
｛
ｉｔｅｒａｔｅ＝１；
ｍｖｊ，１，ｂｅｓｔ＿ｒｅｆ＝ｍｖｊ，０，ｂｅｓｔ＿ｒｅｆ；
ｂｒｅａｋ；
｝
ｅｌｓｅ  ｉｔｅｒａｔｅ＝０；
｝；
｝
ｗｈｉｌｅ（ｉｔｅｒａｔｅ＝＝１）
ｍｉｎＳＡＤ＝ｍｉｎＳＡＤｂｅｓｔ＿ｒｅｆ；
ｂｅｓｔ＿ｍｖ＝｛ｍｖ０，０，ｂｅｓｔ＿ｒｅｆ，ｍｖ１，０，ｂｅｓｔ＿ｒｅｆ，…，ｍｖｍ，０，ｂｅｓｔ＿ｒｅｆ，…，ｍｖＮ−１，０，ｂｅｓｔ＿ｒｅｆ｝
初期参照選択は、参照がソース画像とどの程度同じであるか（より厳密には、同じでないか）に基づいて行うこともできる。例えば、最初にその他の全ては静止状態であるとみなして、ソースと比較した歪みが最大の参照の改良を開始することができ、反復ステップは、本発明による第１の手法で前述したのと同様に実行する。
【００４６】
一つの実施形態において、組合せ参照双方向予測を用いて動き推定を行う本発明による第３の手法について述べる。本発明による上記２つの手法における例示的なアルゴリズムの最初のステップにゼロ動きベクトルが考慮されていることに留意されたい。ただし、以前に生成した動きベクトル（例えば１つまたは任意数Ｍ個の仮説）を代替の解決策と見なし、最良の１つを改良プロセスのために選択することもできる。これは、時間的／空間的ダイレクト動きベクトル、一方向動きベクトル、ゼロ動きベクトル、一時コロケート動きベクトルなど、これらの予測子のうちどの１つが、追加の動き推定／補償ステップを実行せずに初期参照に対する歪みが最小のソース画像をもたらすかを調べることによって行うことができる。その後、この予測子を、それ以前の全てのステップのゼロ予測子の代わりに、その他の全ての動きベクトルの改良に使用する。
【００４７】
一つの実施形態において、組合せ参照双方向予測を用いて動き推定を行う本発明による第４の手法について述べる。第４の手法は、より簡潔ではあるが、上記の方法に比べると多少効率が低下する可能性がある手法であり、全ての仮説が同じ動きを有する（すなわち全ての参照が同じ動きベクトルと関連づけられる）と見なし、それらの予測をまとめてソース画像と比較して改良するものである。これは、以下のように行うことができる。
ｒｅｆｅｒｅｎｃｅ＝［］；
ｓｏｕｒｃｅ＝ｚ；
ｆｏｒ（ｊ＝０；ｊ＜Ｎ；ｊ＋＋）
｛
ｍｖｊ，０，ｉ＝ｍｖｊ，１，ｉ＝（０，０）；
ｒｅｆｅｒｅｎｃｅ＝ｒｅｆｅｒｅｎｃｅ＋ｗｊ＊ｘｊ（ｍｖｊ，０，ｉ）；
｝；
／／！Ｐｅｒｆｏｒｍ  ＭＥ  ｕｓｉｎｇ  ｒｅｆｅｒｅｎｃｅ  ｔｏ  ｒｅｆｉｎｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒｓ  ｍｖｉ，０
／／！ｕｓｉｎｇ  ｄｉｓｔｏｒｔｉｏｎ  ＳＡＤ＝｜ｓｏｕｒｃｅ−ｒｅｆｅｒｅｎｃｅ（ｍｖ）｜．
Ｍｏｔｉｏｎ＿Ｅｓｔｉｍａｔｉｏｎ（ｓｏｕｒｃｅ，ｒｅｆｅｒｅｎｃｅ，ｍｖ，ｍｉｎＳＡＤ）
ｂｅｓｔ＿ｍｖ＝｛ｍｖ，ｍｖ，…，ｍｖ｝；
本発明者は、上述の例示的なアルゴリズムが、Ｎ個の参照を使用する場合に最良である可能性のある組合せ動きベクトルを推定することを指摘する。しかしながら、エンコーダは、所与のマクロブロックに対して参照の数を選択することもできる。これは、それによって、予測がより良好に行われる、またはオーバヘッドが低減されることにより、性能が向上する可能性があるからである。このプロセスは考えられる全ての参照の組合せに対して繰り返すことができるが、最終的には、所与の基準を用いて、最高の性能をもたらす参照の組合せを選択することができるのは明らかである。特に、可能な参照／仮説の数が２である場合には、上記に基づき、以下の３つのケースを考慮することができる。
【００４８】
本発明による第４の手法に関する第１のケースに関しては、各参照（ｘまたはｙ）を別個にソース・ピクチャｚと比較して静止状態であるとみなし（反復なしのケース１）、以下のように重み推定プロセスで得られた適当な重み（それぞれａおよびｂ）を考慮しながら、以下の歪みメトリックを使用して他方の参照の動きを計算する。
【００４９】
【数１０】
2009525683.tif 000012
【００５０】
モード決定中に、一方向予測、一方向予測ＭＥを用いて計算したｍｖ０およびｍｖ１を用いる双方向予測モード、ダイレクト・モード、ｍｖ２および（０、０）を用いる双方向予測モード、（０、０）およびｍｖ３を用いる双方向予測モード、ならびにｍｖ２およびｍｖ３を用いる双方向予測モードをといったモード／動きベクトルを考慮することができ、さらに任意選択で、ｍｖ２およびｍｖ１、またはｍｖ０およびｍｖ３、あるいはダイレクト動きベクトルとの組合せを用いる双方向予測モードも考慮することができる。
【００５１】
本発明による第４の手法に関する第２のケースに関しては、ただ１つの参照をソース・ピクチャと比較して静止状態であるとみなし、以下のように重み推定プロセスで得られた適当な重みを考慮しながら、以下の歪みメトリックを使用して他方の参照の動きを計算する（反復なしの制約ケース１）。
【００５２】
【数１１】
2009525683.tif 000013
【００５３】
モード決定中に、一方向予測、一方向予測ＭＥを用いて計算したｍｖ０およびｍｖ１を用いる双方向予測モード、ダイレクト・モード、ならびにｍｖ２および（０、０）を用いる双方向予測モードといったケースを考慮することができ、さらに任意選択で（推奨される）、ｍｖ２およびｍｖ１、またはダイレクト動きベクトルとの組合せを用いる双方向予測モードのケースも考慮することができる。
【００５４】
この方法では、２つの参照のうちどちらを静止状態とするかを選択する必要もある。例えば、（ａ）リスト０またはリスト１の参照を選択する、（ｂ）時間的に最も近いものを選択する、（ｃ）ソース・ピクチャと見た目が最も近いものを選択するなど、いくつかの選択肢がある。組合せメトリックを考慮することもできるが、ピクチャ／スライス・レベル（１スライス内の全てのブロックを同じ方法を用いて推定する）、またはマクロブロック／ブロック・レベル（参照決定を各ブロックごとに行う）の何れかでこのプロセスを行うこともできる。
【００５５】
本発明による第４の手法に関する第３のケースに関しては、両画像を、それらの間の動きがゼロであると仮定して結合する。次いで、このピクチャを新たな参照として用いて、以下のように動き推定を実行する。
【００５６】
【数１２】
2009525683.tif 000014
【００５７】
モード決定中に、一方向予測、一方向予測ＭＥを用いて計算したｍｖ０およびｍｖ１を用いる双方向予測モード、ダイレクト・モード、ならびに両参照のｍｖを用いる双方向予測モードといったケースを考慮することができ、さらに任意選択で（推奨される）、ｍｖおよびｍｖ１、ｍｖ０およびｍｖ、またはダイレクト動きベクトルとの組合せを用いる双方向予測モードのケースも考慮することができる。
【００５８】
図３を参照すると、双方向予測を用いてマクロブロックを符号化する例示的な方法の全体を、参照番号３００で示してある。方法３００は、制御を機能ブロック３５０およびループ端ブロック３１０に渡す初期化ブロック３０５を含む。
【００５９】
機能ブロック３５０では、イントラ・モード決定を実行し、歪み測度を記録し、制御を機能ブロック３３０に渡す。
【００６０】
ループ端ブロック３１０では、インター・モード全体にわたるループを開始し、制御を機能ブロック３１５に渡す。機能ブロック３１５では、全ての仮説を複合的に考慮することによって動き推定を実行し、制御を機能ブロック３２０に渡す。機能ブロック３２０では、モード決定を実行し、歪み測度を記録し、ループを終了するループ端ブロック３２５に制御を渡し、制御を機能ブロック３３０に渡す。
【００６１】
機能ブロック３３０では、歪み測度が最低となるモードに符号化モードを設定し、制御を機能ブロック３３５に渡す。機能ブロック３３５では、現在のマクロブロックを符号化し、制御を終了ブロック３９９に渡す。
【００６２】
図４を参照すると、並列反復を実行して残りの仮説を最適化する、組合せ参照双方向予測を用いて動き推定を行う例示的な方法の全体を、参照番号４００で示してある。
【００６３】
方法４００は、制御を機能ブロック４１０、機能ブロック４１５および機能ブロック４２０に渡す開始ブロック４０５を含む。
【００６４】
機能ブロック４１０では、その他の参照指標についての動きベクトルが０または何らかの予め規定された値であると仮定して、参照指標０についての動き推定の実行を開始し、制御を機能ブロック４２５に渡す。機能ブロック４２５では、全ての参照について動きベクトルを反復的に改良し、動きベクトルを｛ｍｖ０、０、０、ｍｖ１、０、０、…ｍｖｍ、０、０、…ｍｖＮ−１、０、０｝として、また歪みをｍｉｎＳＡＤ０として保存し、制御を機能ブロック４４５に渡す。
【００６５】
機能ブロック４１５では、その他の参照指標についての動きベクトルが０または何らかの予め規定された値であると仮定して、参照指標ｍについての動き推定の実行を開始し、制御を機能ブロック４３０に渡す。機能ブロック４３０では、全ての参照について動きベクトルを反復的に改良し、動きベクトルを｛ｍｖ０、０、ｍ、ｍｖ１、０、ｍ、…ｍｖｍ、０、ｍ、…ｍｖＮ−１、０、ｍ｝として、また歪みをｍｉｎＳＡＤｍとして保存し、制御を機能ブロック４４５に渡す。
【００６６】
機能ブロック４２０では、その他の参照指標についての動きベクトルが０または何らかの予め規定された値であると仮定して、参照指標Ｎ−１についての動き推定の実行を開始し、制御を機能ブロック４４０に渡す。機能ブロック４４０では、全ての参照について動きベクトルを反復的に改良し、動きベクトルを｛ｍｖ０、０、Ｎ−１、ｍｖ１、０、Ｎ−１、…ｍｖｍ、０、Ｎ−１、…ｍｖＮ−１、０、Ｎ−１｝として、また歪みをｍｉｎＳＡＤＮ−１として保存し、制御を機能ブロック４４５に渡す。
【００６７】
機能ブロック４４５では、ｍｉｎＳＡＤ値が最小となる最良の動きベクトルの組合せを選択し、制御を終了ブロック４９９に渡す。
【００６８】
図５を参照すると、動きベクトルを最良の参照に基づいて反復的に改良する組合せ参照双方向予測を用いて動き推定を行う例示的な方法の全体を、参照番号５００で示してある。
【００６９】
方法５００は、制御を機能ブロック５１０、機能ブロック５１５および機能ブロック５２０に渡す開始ブロック５０５を含む。
【００７０】
機能ブロック５１０では、その他の参照指標についての動きベクトルが０または何らかの予め規定された値であると仮定して、参照指標０についての動き推定の実行を開始し、制御を機能ブロック５２５に渡す。
【００７１】
機能ブロック５１５では、その他の参照指標についての動きベクトルが０または何らかの予め規定された値であると仮定して、参照指標ｍについての動き推定の実行を開始し、制御を機能ブロック５２５に渡す。
【００７２】
機能ブロック５２０では、その他の参照指標についての動きベクトルが０または何らかの予め規定された値であると仮定して、参照指標Ｎ−１についての動き推定の実行を開始し、制御を機能ブロック５２５に渡す。
【００７３】
機能ブロック５２５では、ｍｉｎＳＡＤ値が最小となる最良の参照（ｂｅｓｔ＿ｒｅｆ）を選択し、制御を機能ブロック５３０に渡す。機能ブロック５３０では、全ての参照について動きベクトルを反復的に改良し、動きベクトルを｛ｍｖ０、０、ｂｅｓｔ＿ｒｅｆ、ｍｖ１、０、ｂｅｓｔ＿ｒｅｆ、…ｍｖｍ、０、ｂｅｓｔ＿ｒｅｆ、…ｍｖＮ−１、０、ｂｅｓｔ＿ｒｅｆ｝として保存し、制御を終了ブロック５９９に渡す。
【００７４】
図６を参照すると、全ての仮説が同じ動きベクトルを有するものとする動き推定を行う例示的な方法の全体を、参照番号６００で示してある。
【００７５】
方法６００は、制御を機能ブロック６１０に渡す開始ブロック６０５を含む。機能ブロック６１０では、全ての参照ピクチャを加算して単一の参照ピクチャを形成し、制御を機能ブロック６１５に渡す。機能ブロック６１５では、この新たに形成された参照ピクチャに基づいて動き推定を実行し、制御を機能ブロック６２０に渡す。機能ブロック６２０では、新たに形成された参照ピクチャについて得られた動きベクトルを、全ての参照ピクチャの動きベクトルとして設定し、制御を終了ブロック６９９に渡す。
【００７６】
図７を参照すると、各参照（ｘまたはｙ）を別個にソース・ピクチャｘと比較して静止状態であるとする、組合せ参照双方向予測を用いて動き推定を行う例示的な方法の全体を、参照番号７００で示してある。
【００７７】
方法７００は、制御を機能ブロック７１０に渡す開始ブロック７０５を含む。機能ブロック７１０では、参照ｘについての動き推定（動きベクトルｍｖ０を生成する）を実行し、制御を機能ブロック７１５に渡す。機能ブロック７１５では、参照ｙについての動き推定（動きベクトルｍｖ１を生成する）を実行し、制御を機能ブロック７２０に渡す。機能ブロック７２０では、ＳＡＤ＝｜（ｚ−ｂｙ）−ａｘ（ｍｖ２）｜を用いて動き推定（動きベクトルｍｖ２を生成する）を実行し、制御を機能ブロック７２５に渡す。機能ブロック７２５では、ＳＡＤ＝｜（ｚ−ａｘ）−ｂｙ（ｍｖ３）｜を用いて動き推定（ｍｖ３）を実行し、制御を機能ブロック７３０に渡す。機能ブロック７３０では、モード決定を実行し、制御を機能ブロック７３５に渡す。機能ブロック７３０で実行されるモード決定に関して、このモード決定は、例えば、一方向予測、ｍｖ０およびｍｖ１を用いる双方向予測モード、ダイレクト・モード、ｍｖ２および（０、０）を用いる双方向予測モード、（０、０）およびｍｖ３を用いる双方向予測モード、ならびにｍｖ２およびｍｖ３を用いる双方向予測モードを考慮して、また任意選択で、ｍｖ２およびｍｖ１、またはｍｖ０およびｍｖ３、あるいはダイレクト動きベクトルとの組合せを用いる双方向予測モードも考慮して、行うことができる。上記の考慮対象は例示的なものであり、従って、本明細書に与える本発明の教示があれば、本発明の範囲を維持しながら、機能ブロック７３０で行うモード決定において上記およびその他の考慮対象を利用することもできる。
【００７８】
機能ブロック７３５では、歪み測度が最小となるモードを選択し、制御を終了ブロック７９９に渡す。
【００７９】
図８を参照すると、１つの参照のみをソース・ピクチャと比較して静止状態であるとする組合せ参照双方向予測を用いて動き推定を実行する例示的な方法の全体を、参照番号８００で示してある。方法８００は、制御を機能ブロック８１０に渡す開始ブロック８０５を含む。機能ブロック８１０では、参照ｘについての動き推定（動きベクトルｍｖ０を生成する）を実行し、制御を機能ブロック８１５に渡す。機能ブロック８１５では、参照ｙについての動き推定（動きベクトルｍｖ１を生成する）を実行し、制御を機能ブロック８２０に渡す。機能ブロック８２０では、ＳＡＤ＝｜（ｚ−ｂｙ）−ａｘ（ｍｖ２）｜を用いて動き推定（動きベクトルｍｖ２を生成する）を実行し、制御を機能ブロック８２５に渡す。機能ブロック８２５では、モード決定を実行し、制御を機能ブロック８３０に渡す。機能ブロック８２５で実行されるモード決定に関して、このモード決定は、例えば、一方向予測、ｍｖ０およびｍｖ１を用いる双方向予測モード、ダイレクト・モード、ならびにｍｖ２および（０、０）を用いる双方向予測モードを考慮して、また任意選択で、ｍｖ２およびｍｖ１、またはダイレクト動きベクトルとの組合せを用いる双方向予測モードも考慮して、行うことができる。上記の考慮対象は例示的なものであり、従って、本明細書に与える本発明の教示があれば、本発明の範囲を維持しながら、機能ブロック８２５で行うモード決定において上記およびその他の考慮対象を利用することもできる。
【００８０】
機能ブロック８３０では、歪み測度が最小となるモードを選択し、制御を終了ブロック８９９に渡す。
【００８１】
図９を参照すると、両参照をその間の動きがゼロであると仮定して組み合わせる組合せ参照双方向予測を用いて動き推定を実行する例示的な方法の全体を、参照番号９００で示してある。方法９００は、制御を機能ブロック９１０に渡す開始ブロック９０５を含む。機能ブロック９１０では、参照ｘについての動き推定（動きベクトルｍｖ０を生成する）を実行し、制御を機能ブロック９１５に渡す。機能ブロック９１５では、参照ｙについての動き推定（動きベクトルｍｖ１を生成する）を実行し、制御を機能ブロック９２０に渡す。機能ブロック９２０では、ＳＡＤ＝｜（ｚ−ｂｙ（ｍｖ））−ａｘ（ｍｖ）｜を用いて動き推定（動きベクトルｍｖを生成する）を実行し、制御を機能ブロック９２５に渡す。機能ブロック９２５では、モード決定を実行し、制御を機能ブロック９３０に渡す。機能ブロック９２５で実行されるモード決定に関して、このモード決定は、例えば、一方向予測、ｍｖ０およびｍｖ１を用いる双方向予測モード、ダイレクト・モード、ならびに両ｒｅｆについてのｍｖを用いる双方向予測モードを考慮して、また任意選択で、ｍｖおよびｍｖ１、ｍｖ０およびｍｖ、またはダイレクト動きベクトルとの組合せを用いる双方向予測モードも考慮して、行うことができる。上記の考慮対象は例示的なものであり、従って、本明細書に与える本発明の教示があれば、本発明の範囲を維持しながら、機能ブロック９２５で行うモード決定において上記およびその他の考慮対象を利用することもできる。
【００８２】
機能ブロック９３０では、歪み測度が最小となるモードを選択し、制御を終了ブロック９９９に渡す。
【００８３】
以下、その一部は既に上述したが、本発明の多くの付加的な利点／特徴のいくつかについて説明する。例えば、１つの利点／特徴は、２つ以上の参照ピクチャの組合せから、前記２つ以上の参照ピクチャのうち特定の１つの参照ピクチャの動きベクトルを動き推定プロセスで予測し、前記２つ以上の参照ピクチャの残りの参照ピクチャの動きベクトルを前記動き推定プロセスで使用する所定値に初期化することによって、マルチ予測ピクチャを符号化するエンコーダを含む装置である。
【００８４】
別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、前記２つ以上の参照ピクチャの前記残りの参照ピクチャが静止状態であるとすることによって前記２つ以上の参照の前記特定の１つの参照ピクチャの動きベクトルを予測する、装置である。
【００８５】
さらに別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、複数の反復的プロセスの第１のプロセスの並列部分において前記２つ以上の参照のそれぞれの動きベクトルを予測し、前記複数の反復的プロセスの後続のプロセスにおいて前記動きベクトルを改良する、装置である。さらに別の利点／特徴は、上述した、複数の反復的プロセスの第１のプロセスの並列部分において前記２つ以上の参照のそれぞれの動きベクトルを予測し、前記複数の反復的プロセスの後続のプロセスにおいて前記動きベクトルを改良するエンコーダを有する装置であって、前記エンコーダが、歪み測度に基づいて、前記複数の反復的プロセスで得られた最良の動きベクトルの組合せを選択する、装置である。
【００８６】
さらに、別の利点／特徴は、上述したエンコーダを有する装置であって、前記２つ以上の参照ピクチャの前記残りの参照ピクチャのうち少なくとも１つの参照ピクチャの動きベクトルの少なくとも１つが、前記２つ以上の参照ピクチャの前記残りの参照ピクチャのうちの前記少なくとも１つの参照ピクチャの以前に計算した動きベクトルに基づいて前記所定値に初期化される、装置である。さらに、別の利点／特徴は、上述した、前記２つ以上の参照ピクチャの前記残りの参照ピクチャのうち少なくとも１つの参照ピクチャの動きベクトルの少なくとも１つが、前記２つ以上の参照ピクチャの前記残りの参照ピクチャのうちの前記少なくとも１つの参照ピクチャの以前に計算した動きベクトルに基づいて初期化される、エンコーダを有する装置であって、前記以前に計算した動きベクトルが、少なくとも１つのダイレクト動きベクトルと、前記２つ以上の参照ピクチャより少ない数の参照ピクチャの組合せから以前に計算した動きベクトルとを含み、前記少なくとも１つのダイレクト動きベクトルが、少なくとも１つの時間的ダイレクト動きベクトルおよび少なくとも１つの空間的ダイレクト動きベクトルの少なくとも１つを含む、装置である。また、別の利点／特徴は、上述した、前記２つ以上の参照ピクチャの前記残りの参照ピクチャのうち少なくとも１つの参照ピクチャの動きベクトルの少なくとも１つが、前記２つ以上の参照ピクチャの前記残りの参照ピクチャのうちの前記少なくとも１つの参照ピクチャの以前に計算した動きベクトルに基づいて初期化される、エンコーダを有する装置であって、前記エンコーダが、反復的プロセスを使用して前記２つ以上の参照ピクチャの動きベクトルを予測し、相関メトリックに基づいて、前記所定値に初期化された動きベクトルの前記少なくとも１つおよび前記以前に計算した動きベクトルの中から、前記反復的プロセスで最初に使用する動きベクトルを決定する、装置である。
【００８７】
さらに、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、反復的プロセスを用いて前記２つ以上の参照ピクチャの動きベクトルを予測する装置である。さらに、別の利点／特徴は、上述した前記エンコーダが反復的プロセスを用いて前記２つ以上の参照ピクチャの動きベクトルを予測する装置であって、前記エンコーダが、前記反復的プロセスで実行される反復の最大数を制約する装置である。さらに、別の利点／特徴は、上述した前記エンコーダが反復的プロセスを用いて前記２つ以上の参照ピクチャの動きベクトルを予測する装置であって、前記エンコーダが、前記反復的プロセスで並列に試験される前記２つ以上の参照ピクチャの最大数を制約する、装置である。
【００８８】
また、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、以前の重み推定プロセスで得られた前記２つ以上の参照ピクチャに使用された重みに基づいて、前記２つ以上の参照ピクチャの動きベクトルを推定する、装置である。
【００８９】
さらに、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、複数の反復的プロセスを並列に用いて前記２つ以上の参照ピクチャの動きベクトルを推定し、前記複数の反復的プロセスが、前記２つ以上の参照ピクチャの異なる参照ピクチャにそれぞれ対応する異なる初期化点を有する、装置である。さらに、別の利点／特徴は、上述した複数の反復的プロセスを実行するエンコーダを有する装置であって、前記エンコーダが、前記複数の反復的プロセスの第１のプロセスを実行して、前記２つ以上の参照ピクチャのそれぞれの動きベクトルの初期値を得、最低の歪み測度に基づいて前記２つ以上の参照のうちの最良の初期参照を選択し、前記複数の反復的プロセスの後続のプロセスを実行して、前記２つ以上の参照の前記最良の初期参照に対して得られた初期値を改良する、装置である。
【００９０】
さらに、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、前記２つ以上の参照ピクチャの動きベクトルが同じであることに基づいて前記マルチ予測ピクチャの動き情報を予測し、前記マルチ予測ピクチャと比較した動きベクトルを複合的に改良する、装置である。
【００９１】
また、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、前記２つ以上の参照ピクチャを組み合わせて組合せ参照ピクチャを形成し、前記２つ以上の参照ピクチャ間でゼロ動きを用いることによって、前記マルチ予測ピクチャの動きベクトル情報を推定する、装置である。
【００９２】
さらに、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、前記２つ以上の参照ピクチャの残りの参照ピクチャを前記マルチ予測ピクチャと比較して静止状態であると別個にすることによって、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを予測する、装置である。さらに、別の利点／特徴は、上述した、前記２つ以上の参照ピクチャの残りの参照ピクチャを前記マルチ予測ピクチャと比較して静止状態であると別個にすることによって、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを予測するエンコーダを有する装置であって、前記エンコーダが、前記２つ以上の参照ピクチャのそれぞれの前記動きベクトルを、それぞれに対する重みを選択することによって予測する、装置である。
【００９３】
さらに、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、前記マルチ予測ピクチャのモード決定を実行して、一方向予測モード、ダイレクト予測モード、一方向予測を用いてそれぞれ計算した前記２つ以上の参照ピクチャの動きベクトルを使用する双方向予測モード、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの改良された動きベクトルおよび静止動きベクトルを用いる少なくとも１つの双方向予測モード、ならびに前記２つ以上の参照ピクチャのそれぞれの改良された動きベクトルを用いる双方向予測モードの中から歪み測度が最小となるモードを選択し、前記２つ以上の参照ピクチャのそれぞれの動きベクトルが、前記２つ以上の参照ピクチャの残りの参照ピクチャの動きベクトルを静止状態であると別個にすることに基づいて計算される、装置である。さらに、別の利点／特徴は、上述したモード決定を実行するエンコーダを有する装置であって、前記エンコーダが、さらに、歪み測度が最小となる前記モードを、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの動きベクトルおよび前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの改良された動きベクトル、ならびに少なくとも１つのダイレクト動きベクトルを含む少なくとも１つの組合せを用いる少なくとも１つの双方向予測モードの中から選択する、装置である。
【００９４】
また、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、前記２つ以上の参照ピクチャのただ１つの参照ピクチャだけを前記マルチ予測ピクチャと比較して静止状態であるとすることによって、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを予測する、装置である。さらに、別の利点／特徴は、上述した、前記２つ以上の参照ピクチャのただ１つの参照ピクチャだけを前記マルチ予測ピクチャと比較して静止状態であるとすることによって、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを予測するエンコーダを有する装置であって、前記エンコーダが、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを、それぞれに対する重みを選択することによって予測する、装置である。さらに、別の利点／特徴は、上述した、前記２つ以上の参照ピクチャのただ１つの参照ピクチャだけを前記マルチ予測ピクチャと比較して静止状態であるとすることによって、前記２つ以上の参照ピクチャのそれぞれの動きベクトルを予測するエンコーダを有する装置であって、前記２つ以上の参照ピクチャの前記ただ１つの参照ピクチャが、前記２つ以上の参照ピクチャの前記ただ１つの参照ピクチャが対応する特定の参照リスト、時間的接近性、前記マルチ予測ピクチャに対する最大類似性の少なくとも１つに基づいて選択される、装置である。
【００９５】
さらに、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、前記マルチ予測ピクチャのモード決定を実行して、一方向予測モード、ダイレクト予測モード、一方向予測を用いてそれぞれ計算した前記２つ以上の参照ピクチャの動きベクトルを使用する双方向予測モード、静止動きベクトルおよび改良された動きベクトルを用いる双方向予測モードの中から歪み測度が最小となるモードを選択し、前記２つ以上の参照ピクチャのただ１つの参照ピクチャの動きベクトルのそれぞれが、静止動きベクトルが前記２つ以上の参照ピクチャの残りの参照ピクチャに使用されることに基づいて計算される、装置である。また、別の利点／特徴は、上述したモード決定を実行するエンコーダを有する装置であって、前記エンコーダが、さらに、歪み測度が最小となる前記モードを、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの動きベクトルの１つおよび前記改良された動きベクトル、ならびに方向動きベクトルと前記歪み測度に従って計算した動きベクトルとの少なくとも１つの組合せを用いる少なくとも１つの双方向予測モードの中から選択する、装置である。
【００９６】
さらに、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、前記２つ以上の参照ピクチャが符号化の対象である前記マルチ予測ピクチャと同じ動きを有することに基づいて、前記２つ以上の参照ピクチャの動きベクトルを複合的に計算する、装置である。さらに、別の利点／特徴は、上述した、前記２つ以上の参照ピクチャの動きベクトルを複合的に計算するエンコーダを有する装置であって、前記エンコーダが、前記２つ以上の参照ピクチャの動きベクトルを、それぞれに対する重みを選択することによって複合的に計算する、装置である。
【００９７】
さらに、別の利点／特徴は、上述したエンコーダを有する装置であって、前記エンコーダが、前記マルチ予測ピクチャのモード決定を実行して、一方向予測モード、ダイレクト予測モード、一方向予測を用いてそれぞれ計算した前記２つ以上の参照ピクチャの動きベクトルを使用する双方向予測モード、前記２つ以上の参照ピクチャのそれぞれの改良された動きベクトルを用いる双方向予測モード、ならびに前記２つ以上の参照ピクチャの動きベクトルを同じであるとすることによって計算した前記２つ以上の参照ピクチャの組合せの動きベクトルを用いる予測モードの中から、歪み測度が最小となるモードを選択する、装置である。さらに、別の利点／特徴は、上述したモード決定を実行するエンコーダを有する装置であって、前記エンコーダが、さらに、歪み測度が最小となる前記モードを、前記２つ以上の参照ピクチャのうちの１つの参照ピクチャの動きベクトルの１つおよび前記２つ以上の参照ピクチャの動きベクトルを同じであるとすることによって計算した動きベクトル、ならびにダイレクト動きベクトルと前記２つ以上の参照ピクチャの動きベクトルを同じであるとすることによって計算した動きベクトルとの少なくとも１つの組合せを用いる少なくとも１つの双方向予測モードの中から選択する、装置である。
【００９８】
本発明の以上その他の特徴および利点は、当業者なら本明細書の教示に基づいて容易に確認することができる。本発明の教示は、ハードウェア、ソフトウェア、ファームウェア、特殊目的プロセッサまたはそれらの組合せの様々な形態で実施することができることを理解されたい。
【００９９】
本発明の教示は、ハードウェアとソフトウェアの組合せとして実施されることが最も好ましい。さらに、ソフトウェアは、プログラム記憶装置上で有形に実装されたアプリケーション・プログラムとして実施することができる。アプリケーション・プログラムは、任意の適当なアーキテクチャを有するマシンにアップロードして実行することができる。このマシンは、１つまたは複数の中央処理装置（「ＣＰＵ」）、ランダム・アクセス・メモリ（「ＲＡＭ」）および入出力（「Ｉ／Ｏ」）インタフェースなどのハードウェアを有するコンピュータ・プラットフォームに実装されることが好ましい。コンピュータ・プラットフォームは、オペレーティング・システムおよびマイクロ命令コードを含むこともできる。本明細書に記載の様々なプロセスおよび機能は、ＣＰＵが実行することができる、マイクロ命令コードの一部またはアプリケーション・プログラムの一部あるいはそれらの任意の組合せとすることもできる。さらに、追加のデータ記憶装置や印刷装置など、その他の様々な周辺機器をコンピュータ・プラットフォームに接続することもできる。
【０１００】
さらに、添付の図面に示すシステム構成要素および方法の一部はソフトウェアで実施することが好ましいので、システム構成要素間またはプロセス機能ブロック間の実際の接続形態は、本発明を実施する方法によって変わることがあることを理解されたい。本明細書の教示があれば、当業者なら、上記の、またそれに類する本発明の実施態様または構成を思いつくことができるであろう。
【０１０１】
本明細書では添付の図面を参照しながら例示的な実施形態について説明したが、本発明はこれらの具体的な実施形態に限定されるものではなく、当業者なら、本発明の趣旨または範囲を逸脱することなく様々な変更および修正を加えることができることを理解されたい。これらの変更および修正は全て、添付の特許請求の範囲に記載する本発明の範囲に含まれるものとする。
【図面の簡単な説明】
【０１０２】
【図１】従来技術による双方向予測を用いるビデオ・エンコーダを示す図である。
【図２】本発明の一実施形態による、減算を考慮した双方向予測を用いる例示的なビデオ・エンコーダを示す図である。
【図３】本発明の一実施形態による、双方向予測を用いてマクロブロックを符号化する例示的な方法を示す図である。
【図４】本発明の一実施形態による、並列反復を実行して残りの仮説を最適化する、組合せ参照双方向予測を用いて動き推定を行う例示的な方法を示す図である。
【図５】本発明の一実施形態による、動きベクトルを最良の参照に基づいて反復的に改良する、組合せ参照双方向予測を用いて動き推定を行う例示的な方法を示す図である。
【図６】本発明の一実施形態による、全ての仮説が同じ動きベクトルを有するものとする動き推定を行う例示的な方法を示す図である。
【図７】本発明の一実施形態による、各参照（ｘまたはｙ）を別個にソース・ピクチャｘと比較して静止状態であるとする、組合せ参照双方向予測を用いて動き推定を行う例示的な方法を示す図である。
【図８】本発明の一実施形態による、１つの参照だけをソース・ピクチャと比較して静止状態であるとする、組合せ参照双方向予測を用いて動き推定を行う例示的な方法を示す図である。
【図９】本発明の一実施形態による、両方の参照を両者の間の動きがゼロであると仮定して組み合わせる、組合せ参照双方向予測を用いて動き推定を行う例示的な方法を示す図である。
【図１】
2009525683.tif 000015
【図２】
2009525683.tif 000016
【図３】
2009525683.tif 000017
【図４】
2009525683.tif 000018
【図５】
2009525683.tif 000019
【図６】
2009525683.tif 000020
【図７】
2009525683.tif 000021
【図８】
2009525683.tif 000022
【図９】
2009525683.tif 000023
【国際調査報告】
2009525683.tif 000024
2009525683.tif 000025
2009525683.tif 000026
2009525683.tif 000027