(57)【特許請求の範囲】
【請求項１】
参照フレームのＮ個のリストと現在フレームとに対応するＮ個の動きベクトルを有する第１のブロックについて、Ｎ個の動きベクトルプレディクタを導出するステップであって、
前記第１のブロックに隣接し、予測のために使用される第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、前記Ｎ個の動きベクトルプレディクタの１つを構成するサブステップを含み、Ｎが１よりも大きい整数であり、
前記Ｎ個のリストの第１リスト内の前記Ｎ個の動きベクトルプレディクタの１つを構成するサブステップは、前記Ｎ個のリストの前記第１リストとは異なる第２リスト内の前記Ｎ個の動きベクトルプレディクタのうちの当該１つの動きベクトルプレディクタとは別の動きベクトルプレディクタ、および現在フレームから前記第１のブロックの前記Ｎ個の動きベクトル内のそれぞれの動きベクトルに関連した参照フレームまでの符号付き時間距離に関数を適用することにより行われる、ステップと、
前記Ｎ個の動きベクトルとＮ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成するステップと、
前記Ｎ個の差分動きベクトルを符号化するステップと
を含む方法。
【請求項２】
Ｎ個の動きベクトルプレディクタを導出するステップが、１対の動きベクトルプレディクタを導出するサブステップを含み、前記第１のブロックが、参照フレームの２つのリストに対応する１対の動きベクトルを有する、請求項１に記載の方法。
【請求項３】
参照フレームの前記２つのリストの少なくとも一方について、第２のブロックの動きベクトルによって使用される参照フレームが、第１のブロックの動きベクトルによって使用される参照フレームと一致しない場合、又は前記第２のブロックが、参照フレームの片方のリストのみを使う場合、前記第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有する、請求項２に記載の方法。
【請求項４】
前記１対の動きベクトルプレディクタの一方を構成するステップが、前記１対のうちの他方の動きベクトルプレディクタと、前記第１のブロックの前記１対の動きベクトルのうちの各動きベクトルに関連付けられた、前記現在フレームから前記参照フレームまでの符号付き時間距離と、に基づいた関数を適用することによって実行される、請求項２に記載の方法。
【請求項５】
前記１対の動きベクトルプレディクタの一方を構成するステップが、参照フレームの前記２つのリストの少なくとも一方について、第２のブロックの動きベクトルによって使用される参照フレームが、第１のブロックの動きベクトルによって使用される参照フレームと一致しないために、前記第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、一方のリストに対応する前記第２のブロックの有効な動きベクトルを、他方のリスト上の参照フレームへ外挿するサブステップを含む、請求項４に記載の方法。
【請求項６】
参照フレームのＮ個のリストと現在フレームとに対応するＮ個の動きベクトルを有する第１のブロックについて、Ｎ個の動きベクトルプレディクタを導出するステップであって、
前記第１のブロックに隣接し、予測のために使用される第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、前記Ｎ個の動きベクトルプレディクタの１つを構成するサブステップを含み、Ｎが１よりも大きい整数であり、
Ｎ個の動きベクトルプレディクタを導出するステップが、１対の動きベクトルプレディクタを導出するサブステップを含み、
前記第１のブロックが、参照フレームの２つのリストに対応する１対の動きベクトルを有し、
前記１対の動きベクトルプレディクタの１つを構成するサブステップは、前記第２のブロックの前記動きベクトルにより使用された前記参照フレームと、前記第１のブロックの前記動きベクトルにより使用された前記参照フレームとが、前記参照フレームの前記２つのリストのうちの少なくとも一つにおいて一致しないことから、前記第２のブロックが少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、一方のリストに対応する前記第２のブロックの有効な動きベクトルを、他方のリスト上の参照フレームへ外挿するサブステップを含み、
前記１対の動きベクトルプレディクタの１つを構成するサブステップは関数を適用することにより行われ、前記関数が、
（（ＭＶＰａ×Ｔｂ×ｆＴ（Ｔａ）＋（１≪（Ｎｐｒｅｃ１−１）））≫Ｎｐｒｅｃ１）、ここで、ｆＴ（Ｔａ）は、
【数１】
0006039740.tif 000053
であり、Ｎｐｒｅｃ１が所定の正の整数となるように、そのエントリが満たされたルックアップテーブル；
【数２】
0006039740.tif 000054
；
前記１対のうちの他方の動きベクトルプレディクタ；
ＭＶＰａ×ｆｓｃａｌｅ（Ｔａ，Ｔｂ）、ここで、ｆｓｃａｌｅ（Ｔａ，Ｔｂ）は、ルックアップテーブル；及び
ルックアップテーブル；
から成る群から選択される１つであり、
ここで、ＭＶＰａは、前記１対のうちの他方の動きベクトルプレディクタであり、Ｔａ及びＴｂは、前記第１のブロックの前記１対の動きベクトルのうちの各動きベクトルに関連付けられた、前記現在フレームから前記参照フレームまでの符号付き時間距離を表す、ステップと、
前記Ｎ個の動きベクトルと前記Ｎ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成するステップと、
前記Ｎ個の差分動きベクトルを符号化するステップと
を含む方法。
【請求項７】
前記第２のブロックの前記無効なステータスに設定された動きベクトルが、前記第２のブロックの有効な動きベクトルに基づく所定の条件を満たす場合に限って、構成された前記一方の動きベクトルプレディクタが使用される、請求項１に記載の方法。
【請求項８】
前記Ｎ個の差分動きベクトルの１つを生成するステップが、別の差分動きベクトルを使用する関数を実行するサブステップを含む、請求項１に記載の方法。
【請求項９】
参照フレームのＮ個のリストと現在フレームとに対応するＮ個の動きベクトルを有する第１のブロックについて、Ｎ個の動きベクトルプレディクタを導出する動きベクトルプレディクタモジュールであって、
Ｎ個の動きベクトルプレディクタの導出が、前記第１のブロックに隣接し、予測のために使用される第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、前記Ｎ個の動きベクトルプレディクタの１つを構成することを含み、Ｎが１よりも大きい整数であり、
前記Ｎ個のリストの第１リスト内の前記Ｎ個の動きベクトルプレディクタの１つの構成は、前記Ｎ個のリストの前記第１リストとは異なる第２リスト内の前記Ｎ個の動きベクトルプレディクタのうちの当該１つの動きベクトルプレディクタとは別の動きベクトルプレディクタ、および現在フレームから前記第１のブロックの前記Ｎ個の動きベクトル内のそれぞれの動きベクトルに関連した参照フレームまでの符号付き時間距離に関数を適用することにより行われる、動きベクトルプレディクタモジュールと、
前記Ｎ個の動きベクトルとＮ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成する差分動きベクトル生成器と、
前記Ｎ個の差分動きベクトルを符号化するエントロピエンコーダと
を備える符号化装置。
【請求項１０】
参照フレームの前記Ｎ個のリストの少なくとも１つについて、第２のブロックの動きベクトルによって使用される参照フレームが、第１のブロックの動きベクトルによって使用される参照フレームと一致しない場合、又は前記第２のブロックが、参照フレームのＮ個のリストのうち一部のみを使う場合、前記第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有する、請求項９に記載の装置。
【請求項１１】
動きベクトルプレディクタモジュールが、関数を適用して、１つの動きベクトルプレディクタを構成するように動作可能であり、前記関数が、前記Ｎ個の動きベクトルプレディクタのうちの別の動きベクトルプレディクタと、前記関数に係わる動きベクトルプレディクタに対応する、前記第１のブロックの前記動きベクトルに関連付けられた、前記現在フレームから前記参照フレームまでの符号付き時間距離と、に基づく、請求項９に記載の装置。
【請求項１２】
前記差分動きベクトル生成器が、別の差分動きベクトルを使用する関数を実行することによって、前記Ｎ個の差分動きベクトルの１つを生成するように動作可能である、請求項９に記載の装置。
【請求項１３】
前記関数が、生成される差分動きベクトルを予測するために、前記別の差分動きベクトルをスケーリングするような、スケーリング関数である、請求項１２に記載の装置。
【請求項１４】
ビットストリームを受け取り、前記ビットストリームを復号して、差分動きベクトルを含む復号されたビットストリームを生成するエントロピデコーダと、
参照フレームのＮ個のリストと現在フレームとに対応するＮ個の差分動きベクトルを有する第１のブロックについて、Ｎ個の動きベクトルプレディクタを導出する動きベクトルプレディクタモジュールであって、Ｎ個の動きベクトルプレディクタの導出が、前記第１のブロックに隣接し、予測のために使用される第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、前記Ｎ個の動きベクトルプレディクタの１つを構成することを含み、Ｎが１よりも大きい整数であり、
前記Ｎ個のリストの第１リスト内の前記Ｎ個の動きベクトルプレディクタの１つの構成は、前記Ｎ個のリストの前記第１リストとは異なる第２リスト内の前記Ｎ個の動きベクトルプレディクタのうちの当該１つの動きベクトルプレディクタとは別の動きベクトルプレディクタ、および現在フレームから前記第１のブロックの前記Ｎ個の動きベクトル内のそれぞれの動きベクトルに関連した参照フレームまでの符号付き時間距離に関数を適用することにより行われる、動きベクトルプレディクタモジュールと、
前記復号されたビットストリームからの前記Ｎ個の差分動きベクトルと前記Ｎ個の動きベクトルプレディクタとに基づいて、Ｎ個の動きベクトルを生成する動きベクトル生成器と
を備える復号装置。
【請求項１５】
参照フレームの前記Ｎ個のリストの少なくとも１つについて、第２のブロックの動きベクトルによって使用される参照フレームが、第１のブロックの動きベクトルによって使用される参照フレームと一致しない場合、又は前記第２のブロックが、参照フレームのＮ個のリストのうち一部のみを使う場合、前記第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有する、請求項１４に記載の装置。
【請求項１６】
プレディクタ集合改良器が、関数を適用して、動きベクトルプレディクタを改良するように動作可能であり、前記関数が、別の動きベクトルプレディクタと、前記関数に係わる２つの動きベクトルプレディクタに対応する、前記第１のブロックの前記動きベクトルに関連付けられた、前記現在フレームから前記参照フレームまでの符号付き時間距離とに基づく、請求項１４に記載の装置。
【請求項１７】
前記デコーダが、動きベクトルを生成する際に通常使用される差分動きベクトルに加えて、別の差分動きベクトルを使用する関数を実行することによって、前記Ｎ個の動きベクトルの１つを生成するように動作可能である、請求項１４に記載の装置。
【請求項１８】
システムによって実行されたときに、前記システムに、
参照フレームのＮ個のリストと現在フレームとに対応するＮ個の動きベクトルを有する第１のブロックについて、Ｎ個の動きベクトルプレディクタを導出するステップであって、前記第１のブロックに隣接し、予測のために使用される第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、前記Ｎ個の動きベクトルプレディクタの１つを構成するサブステップを含み、Ｎが１よりも大きい整数であり、
前記Ｎ個のリストの第１リスト内の前記Ｎ個の動きベクトルプレディクタの１つの構成は、前記Ｎ個のリストの前記第１リストとは異なる第２リスト内の前記Ｎ個の動きベクトルプレディクタのうちの当該１つの動きベクトルプレディクタとは別の動きベクトルプレディクタ、および現在フレームから前記第１のブロックの前記Ｎ個の動きベクトル内のそれぞれの動きベクトルに関連した参照フレームまでの符号付き時間距離に関数を適用することにより行われる、ステップと、
前記Ｎ個の動きベクトルと前記Ｎ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成するステップと、
前記Ｎ個の差分動きベクトルを符号化するステップと
を含む方法を実行させる実行可能命令を記憶する非一時的なコンピュータ可読記憶媒体。
【請求項１９】
参照フレームの前記Ｎ個のリストの少なくとも１つについて、第２のブロックの動きベクトルによって使用される参照フレームが、第１のブロックの動きベクトルによって使用される参照フレームと一致しない場合、又は前記第２のブロックが、参照フレームのＮ個のリストのうち一部のみを使う場合、前記第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有する、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記Ｎ個の動きベクトルプレディクタの１つを構成するステップが、関数を適用することによって実行され、前記関数が、前記Ｎ個の動きベクトルプレディクタのうちの別の動きベクトルプレディクタと、前記関数に係わる２つの動きベクトルプレディクタに対応する、前記第１のブロックの前記動きベクトルに関連付けられた、前記現在フレームから前記参照フレームまでの符号付き時間距離とに基づく、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２１】
前記Ｎ個の動きベクトルプレディクタの１つを構成するステップが、参照フレームの前記Ｎ個のリストの少なくとも１つについて、第２のブロックの動きベクトルによって使用される参照フレームが、第１のブロックの動きベクトルによって使用される参照フレームと一致しないために、前記第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、１つのリストに対応する前記第２のブロックの有効な動きベクトルを、別のリスト上の参照フレームへ外挿するサブステップを含む、請求項２０に記載のコンピュータ可読記憶媒体。
【請求項２２】
Ｎ個の動きベクトルとＮ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成するステップであって、前記Ｎ個の差分動きベクトルの１つを生成するステップが、別の差分動きベクトルを使用する関数を実行するサブステップを含み、Ｎが１よりも大きい整数であり、
前記Ｎ個のリストの第１リスト内の前記Ｎ個の動きベクトルプレディクタの１つは、前記Ｎ個のリストの前記第１リストとは異なる第２リスト内の前記Ｎ個の動きベクトルプレディクタのうちの当該１つの動きベクトルプレディクタとは別の動きベクトルプレディクタ、および現在フレームから、参照フレームのＮ個のリストと現在フレームとに対応する前記Ｎ個の動きベクトルを有する第１のブロックの前記Ｎ個の動きベクトル内のそれぞれの動きベクトルに関連した参照フレームまでの符号付き時間距離に関数を適用することにより構成される、ステップと、
前記Ｎ個の差分動きベクトルを符号化するステップと
を含む方法。
【請求項２３】
前記関数が、生成される差分動きベクトルを予測するために、前記別の差分動きベクトルをスケーリングするような、スケーリング関数である、請求項２２に記載の方法。
【請求項２４】
システムによって実行されたときに、前記システムに、
Ｎ個の動きベクトルとＮ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成するステップであって、前記Ｎ個の差分動きベクトルの１つを生成するステップが、別の差分動きベクトルを使用する関数を実行するサブステップを含み、Ｎが１よりも大きい整数であり、
前記Ｎ個のリストの第１リスト内の前記Ｎ個の動きベクトルプレディクタの１つは、前記Ｎ個のリストの前記第１リストとは異なる第２リスト内の前記Ｎ個の動きベクトルプレディクタのうちの当該１つの動きベクトルプレディクタとは別の動きベクトルプレディクタ、および現在フレームから、参照フレームのＮ個のリストと現在フレームとに対応する前記Ｎ個の動きベクトルを有する第１のブロックの前記Ｎ個の動きベクトル内のそれぞれの動きベクトルに関連した参照フレームまでの符号付き時間距離に関数を適用することにより構成される、ステップと、
前記Ｎ個の差分動きベクトルを符号化するステップと
を含む方法を実行させる実行可能命令を記憶する非一時的なコンピュータ可読記憶媒体。
【請求項２５】
前記関数が、生成される差分動きベクトルを予測するために、前記別の差分動きベクトルをスケーリングするような、スケーリング関数である、請求項２４に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先権】
【０００１】
[0001]本特許出願は、２００９年１０月１日に出願された、「Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒ  Ｐｒｅｄｉｃｔｉｏｎ  ｉｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」と題する、対応する特許仮出願第６１／２４７，８７５号の優先権を主張し、同特許仮出願を参照により組み込む。
【技術分野】
【０００２】
[0002]本発明の実施形態は、圧縮のためのビデオ符号化の分野に関する。詳細には、本発明の実施形態は、動きベクトル（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ）の予測及び差分符号化（ｄｉｆｆｅｒｅｎｔｉａｌ  ｃｏｄｉｎｇ）に関する。
【背景技術】
【０００３】
[0003]ブロックベースの動き補償（ｂｌｏｃｋ−ｂａｓｅｄ  ｍｏｔｉｏｎ  ｃｏｍｐｅｎｓａｔｉｏｎ）は、時間的相関を利用してビデオデータの圧縮を達成する、様々なビデオコーデックにおける不可欠な操作である。しかし、動き補償のプロセスをデコーダにおいて再現できるように、各ブロックの動きベクトル（複数可）をデコーダに伝達する必要がある。動き補償によって達成される圧縮の効率は、動きベクトルを伝達する効率に依存する。一般に、各動きベクトルに対して、プレディクタ（ｐｒｅｄｉｃｔｏｒ）が、因果的近傍（ｃａｕｓａｌ  ｎｅｉｇｈｂｏｒｈｏｏｄ）から導出され、差分のみが、ビットストリームの一部として符号化される。既存の技法は、プレディクタを導出する際に、すべての冗長性を利用するわけではなく、したがって、改善の余地がある。
【発明の概要】
【０００４】
[0004]本明細書では、動きベクトル予測及び符号化のための方法及び装置が開示される。一実施形態では、方法は、参照フレームのＮ個のリストと現在フレームとに対応するＮ個の動きベクトルを有する第１のブロックについて、Ｎ個の動きベクトルプレディクタを導出するステップであって、第１のブロックに隣接し、予測のために使用される第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、Ｎ個の動きベクトルプレディクタの１つを構成するサブステップを含み、Ｎが１よりも大きい整数である、ステップと、Ｎ個の動きベクトルとＮ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトル（ｄｉｆｆｅｒｅｎｔｉａｌ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ）を生成するステップと、Ｎ個の差分動きベクトルを符号化するステップとを含む。
【図面の簡単な説明】
【０００５】
[0005]本発明は、以下で行われる詳細な説明から、また本発明の様々な実施形態についての添付の図面からより完全に理解されるが、それらは、本発明を特定の実施形態に限定するものと見なされるべきではなく、もっぱら説明及び理解のためのものである。
【図１】別のブロックの動きベクトルのためのプレディクタを構成するのに使用される因果的近傍ブロックを示す図である。
【図２】プレディクタ集合を構成するためのプロセスの一実施形態のフロー図である。
【図３】プレディクタが近傍ブロックから構成されるケースを示す図である。
【図４】候補プレディクタを改良するためのプロセスの一実施形態のフロー図である。
【図５】ＭＶＰを生成する一例を示す図である。
【図６】動きベクトルプレディクタを導出するためのプロセスの一実施形態のフロー図である。
【図７】エンコーダにおいて差分動きベクトルを計算するためのプロセスの一実施形態のフロー図である。
【図８】デコーダにおいて動きベクトルを再構成するためのプロセスの一実施形態のフロー図である。
【図９】一方のＭＶＤをスケーリングして、第２のＭＶＤを予測する一例を示す図である。
【図１０】（Ａ）は、エンコーダにおいて動きベクトルを符号化するプロセスの一実施形態のフロー図である。（Ｂ）は、デコーダにおいて動きベクトルを復号するプロセスの一実施形態のフロー図である。
【図１１】動きベクトルエンコーダのブロック図である。
【図１２】動きベクトルデコーダのブロック図である。
【図１３】コンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００６】
[0006]本発明の実施形態は、プレディクタを強化し、それによって、動きベクトルを伝達するために費やされるビットの数を削減する方法を含む。特に、本発明の実施形態は、参照フレームの２つ以上のリストの間の相関を利用することによって、双予測（ｂｉ−ｐｒｅｄｉｃｔｉｖｅ）モード又はマルチ予測（ｍｕｌｔｉ−ｐｒｅｄｉｃｔｉｖｅ）モードで符号化されるブロックについて、動きベクトルの予測を強化する技法を含む。
【０００７】
[0007]以下の説明では、本発明についてのより完全な説明を提供するために、多くの細部が説明される。しかし、これらの特定の細部を備えずとも、本発明を実施できることは、当業者には明らかであろう。他の例では、本発明を曖昧にするのを避けるために、よく知られた構造及びデバイスは、詳細に示す代わりに、ブロック図形式で示される。
【０００８】
[0008]以下の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに施される操作のアルゴリズム及びシンボル表現によって提示される。これらのアルゴリズムによる説明及び表現は、自分の仕事の内容を他の当業者に最も効率的に伝えるために、データ処理分野の当業者によって使用される手段である。ここでは、また一般的にも、アルゴリズムは、所望の結果に到達する自己矛盾のないステップの系列であると考えられている。ステップは、物理量の物理的操作を必要とするステップである。必ずではないが、通常、これらの量は、保存、転送、組み合わせ、比較、及び他の操作を可能にする、電気的信号又は磁気的信号の形態を取る。主として、それが慣例であるため、これらの信号を、ビット、値、要素、シンボル、文字、項、又は数などと呼ぶと便利なことがあることが分かっている。
【０００９】
[0009]しかし、これらの用語及び同様の用語はすべて、適切な物理量に関連付けられるべきであり、これらの量に付けられた便利なラベルにすぎないことに留意されたい。別途具体的に述べられない限り、以下の説明から明らかなように、説明の全体にわたって、「処理する」又は「計算する」又は「算出する」又は「決定する」又は「表示する」などの語を利用する説明は、コンピュータシステムのレジスタ及びメモリ内の物理（電子的）量として表されるデータを操作及び変換して、コンピュータシステムのメモリ若しくはレジスタ内の、又はそのような情報を保存、送信、若しくは表示する他のデバイス内の物理量として同様に表される他のデータにする、コンピュータシステム又は類似の電子的コンピューティングデバイスのアクション及びプロセスに言及していることが理解されよう。
【００１０】
[0010]本発明は、本明細書における操作を実行するための装置にも関する。この装置は、必要とされる目的のために特別に構成することができ、又はコンピュータ内に記憶されたコンピュータプログラムによって選択的に活動化又は再構成される汎用コンピュータを備えることができる。そのようなコンピュータプログラムは、フロッピディスク、光ディスク、ＣＤ−ＲＯＭ、及び光磁気ディスクを含む任意のタイプのディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード若しくは光カード、又は電子的命令を記憶するのに適した任意のタイプの媒体などの、コンピュータ可読記憶媒体内に記憶することができるが、コンピュータ可読記憶媒体は、これらに限定されず、各々は、コンピュータシステムバスに結合される。
【００１１】
[0011]本明細書で提示されるアルゴリズム及び表示は、いずれか特定のコンピュータ又は他の装置に本質的には関係しない。様々な汎用システムを、本明細書の教示に従ったプログラムとともに使用することができ、又は必要とされる方法ステップを実行するために、より特殊化した装置を構成することが便利であると分かることもある。様々なこれらのシステムに必要とされる構造は、以下の説明から現れる。加えて、本発明は、いずれか特定のプログラミング言語に関して説明されない。本明細書で説明される本発明の教示を実施するために、様々なプログラミング言語を使用できることが理解されよう。
【００１２】
[0012]機械可読媒体は、機械（例えばコンピュータ）によって可読な形式で情報を記憶又は送信するための任意の機構を含む。例えば、機械可読媒体は、リードオンリメモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなどを含む。
【００１３】
［概要］
[0013]従来技術では、動きベクトル（ＭＶ）は、差分動きベクトル（ＭＶＤ）を符号化することによって伝達され、差分動きベクトルは、動きベクトルと動きベクトルプレディクタ
【数１】
0006039740.tif 000002
の間の差分、すなわち、
【数２】
0006039740.tif 000003
である。
【００１４】
[0014]双予測ブロックは、参照フレームの２つのリスト、リスト０及びリスト１にそれぞれ対応して、２つの動きベクトル、ＭＶ０及びＭＶ１を有し、２つの動きベクトルはともに、差分動きベクトルを使用して伝達される。
【数３】
0006039740.tif 000004
ここで、ＭＶＤ０及びＭＶＤ１は、差分動きベクトルを表し、
【数４】
0006039740.tif 000005
及び
【数５】
0006039740.tif 000006
は、それぞれリスト０及びリスト１に関する動きベクトルプレディクタを表す。マルチ予測ブロックは、双予測ブロックの概念を一般化したものである。マルチ予測ブロックは、参照フレームのＮ個のリストに対応するＮ個の動きベクトルを有し、ここで、Ｎは１よりも大きい整数である。以下の説明では、明瞭となるように、双予測ブロックに関連して、本発明を説明する。しかし、マルチ予測ブロックの一般的なケースにも本発明が適用可能であることに留意されたい。
【００１５】
[0015]動きベクトルプレディクタは、プレディクタ集合（ｐｒｅｄｉｃｔｏｒ  ｓｅｔ）と呼ばれる１組の候補プレディクタ（ｃａｎｄｉｄａｔｅ  ｐｒｅｄｉｃｔｏｒ）を使用して形成される。各候補プレディクタは、目標ブロック（その動きベクトル（複数可）が伝達されようとしているブロック）の因果的近傍ブロック（その動きベクトル（複数可）がすでに伝達された近傍内のブロック）の動きベクトル（複数可）を表す。図１は、ブロックＣの動きベクトルのためのプレディクタを構成するのに使用される、因果的近傍ブロックＬ及びＴを示している。
【００１６】
［プレディクタ集合を構成する］
[0016]一実施形態では、双予測ブロックの場合、プレディクタ集合の構成は、因果的近傍ブロックに対応する追加される候補プレディクタが、近傍ブロックの動きベクトル（複数可）を正確に表す必要がないような方法で行うことができる。一実施形態では、目標ブロックと近傍ブロックが、あるリストの同じ参照フレームを参照する場合、そのリストに関する候補プレディクタの動きベクトルは、同じリストに関する近傍ブロックの動きベクトルに等しく設定され、それ以外の場合は、そのリストに関する候補プレディクタの動きベクトルは、無効なステータスに設定される。
【００１７】
[0017]図２は、プレディクタ集合を構成するためのプロセスの一実施形態のフロー図である。プロセスは、ハードウェア、ソフトウェア、又は両方の組み合わせを含むことができる処理ロジックによって実行される。
【００１８】
[0018]図２を参照すると、プロセスは、処理ロジックが、プレディクタ集合を空集合に初期化する（処理ブロック２０１）ことによって開始する。次に、処理ロジックは、目標ブロックのリスト０及びリスト１の動きベクトルについて、参照フレームインデックスをフェッチ（ｆｅｔｃｈ）する（処理ブロック２０２）。その後、処理ロジックは、まだ他に因果的近傍ブロックが存在するかどうかを判定する（処理ブロック２０３）。存在しない場合、プロセスは終了する。まだ他に因果的近傍ブロックが存在する場合、プロセスは、処理ブロック２０４に推移し、処理ロジックは、リスト０及びリスト１の動きベクトルが無効に設定された、候補プレディクタを生成する。
【００１９】
[0019]その後、処理ロジックは、現在の近傍ブロックがリスト０の動きベクトルを有するかどうかを判定する（処理ブロック２０５）。有さない場合、プロセスは、処理ブロック２０９に推移する。有する場合、プロセスは、処理ブロック２０６に推移し、処理ロジックは、現在の近傍ブロックのリスト０の動きベクトルについて、参照フレームインデックスをフェッチし、その後、リスト０の参照フレームインデックスが、目標ブロックと近傍ブロックとで同じであるかどうかを判定する（処理ブロック２０７）。同じである場合、処理ロジックは、候補プレディクタのリスト０の動きベクトルを現在の近傍ブロックの動きベクトルに等しく設定し（処理ブロック２０８）、プロセスは、処理ブロック２０９に推移する。リスト０の参照フレームインデックスが、目標ブロックと近傍ブロックとで同じでない場合、プロセスは、直接に処理ブロック２０９に推移する。
【００２０】
[0020]処理ブロック２０９において、処理ロジックは、現在の近傍ブロックがリスト１の動きベクトルを有するかどうかを判定する。有さない場合、プロセスは、処理ブロック２１３に推移する。現在の近傍ブロックがリスト１の動きベクトルを有する場合、処理ロジックは、現在の近傍ブロックのリスト１の動きベクトルについて、参照フレームインデックスをフェッチする（処理ブロック２１０）。次に、処理ロジックは、リスト１の参照フレームインデックスが、目標と近傍とで同じであるかどうかをテストする（処理ブロック２１１）。同じである場合、処理ロジックは、候補プレディクタのリスト１の動きベクトルを現在の近傍ブロックの動きベクトルに等しく設定し（処理ブロック２１２）、プロセスは、処理ブロック２１３に推移する。同じでない場合、プロセスは、直接に処理ブロック２１３に推移する。
【００２１】
[0021]処理ブロック２１３において、処理ロジックは、候補プレディクタをプレディクタ集合に追加し、その後、プロセスは、処理ブロック２０３に推移する。
【００２２】
［プレディクタ集合を改良する］
[0022]一実施形態では、プレディクタ集合は、参照フレームインデックスが、参照フレームの２つのリストの一方について一致する場合、近傍ブロックからプレディクタを構成することによって改良される。これは、参照インデックスが一方のリストでだけ一致する場合、又は近傍ブロックが一方のリストだけを使用する場合に生じる。図３は、プレディクタが近傍ブロックから構成されるケースを示している。
【００２３】
[0023]一実施形態では、プレディクタ集合は、以下で説明するように、プレディクタ集合内の１つ（又は複数）の候補プレディクタを改良することによって改良され、すなわち、一方のリスト（リストａ）に対応する候補プレディクタの動きベクトルＭＶＰａが有効であり、他方のリスト（リストｂ）に対応する候補プレディクタの動きベクトルＭＶＰｂが無効である場合、ＭＶＰｂについての有効値は、ＭＶＰａを使用して計算される。
ＭＶＰｂ＝ｆｐｒｅｄ（ＭＶＰａ，Ｔａ，Ｔｂ）
【００２４】
[0024]本明細書における目的では、Ｔａ及びＴｂは、現在フレームから、ＭＶａ及びＭＶｂによってそれぞれ参照される参照フレームまでの符号付き時間距離（ｓｉｇｎｅｄ  ｔｅｍｐｏｒａｌ  ｄｉｓｔａｎｃｅ）を表す。
【００２５】
[0025]一実施形態では、候補プレディクタ改良フラグが「オン」である場合に、候補プレディクタが改良される。図４は、候補プレディクタ改良フラグ（ｃａｎｄｉｄａｔｅ  ｐｒｅｄｉｃｔｏｒ  ｒｅｆｉｎｅｍｅｎｔ  ｆｌａｇ）のステータスに基づいて、候補プレディクタを改良するためのプロセスの一実施形態のフロー図である。プロセスは、ハードウェア、ソフトウェア、又は両方の組み合わせを含むことができる処理ロジックによって実行される。
【００２６】
[0026]図４を参照すると、プロセスは、処理ロジックが、候補プレディクタ改良フラグがオンであるかどうかを判定する（処理ブロック４０１）ことによって開始する。オンでない場合、プロセスは終了する。オンである場合、プロセスは、処理ブロック４０２に推移し、処理ロジックは、ＭＶＰ０とＭＶＰ１の両方が有効であるかどうかを判定する。ともに有効である場合、プロセスは終了する。どちらかが有効ではない場合、プロセスは、処理ブロック４０３に推移し、処理ロジックは、ＭＶＰ０又はＭＶＰ１のどちらかが有効であるかどうかをテストする。どちらも有効でない場合、プロセスは、処理ブロック４０４に推移し、処理ロジックは、候補プレディクタをプレディクタ集合から削除し、その後、プロセスは終了する。ＭＶＰ０又はＭＶＰ１のどちらかが有効である場合、プロセスは、処理ブロック４０５に推移し、処理ロジックは、ＭＶＰ０が有効であるかどうかを判定する。ＭＶＰ０が有効である場合、処理ロジックは、ａを０に等しく、ｂを１に等しく設定し（処理ブロック４０６）、ＭＶＰｂをｆｐｒｅｄ（ＭＶＰａ，Ｔａ，Ｔｂ）に等しく設定し（処理ブロック４０７）、その後、プロセスは終了する。処理ロジックがＭＶＰ０は有効でないと判定した場合、処理ロジックは、ａを１に等しく、ｂを０に等しく設定し（処理ブロック４０８）、処理ブロック４０７において、ＭＶＰｂをｆｐｒｅｄ（ＭＶＰａ，Ｔａ，Ｔｂ）に等しく設定する。その後、プロセスは終了する。
【００２７】
[0027]一実施形態では、候補プレディクタ改良フラグは、すべての候補プレディクタについて「オン」である。
【００２８】
[0028]一実施形態では、候補プレディクタ改良フラグは、１つ（又は複数）の制約が満たされた場合に限って「オン」になる。代替実施形態では、実施される制約は、以下のうちの１つ（又は複数）とすることができる。
１．
【数６】
0006039740.tif 000007
ここで、
【数７】
0006039740.tif 000008
は、所定のパラメータである。一実施形態では、
【数８】
0006039740.tif 000009
は、ゼロに等しい。
２．ＭＶＰａ×Ｔａの各要素の符号（ｓｉｇｎ）が、
【数９】
0006039740.tif 000010
の対応する要素の符号と一致する。
３．ＭＶＰａ×Ｔａの１つの要素の符号が、
【数１０】
0006039740.tif 000011
の対応する要素の符号と一致する。
４．ＭＶＰａの各要素の符号が、
【数１１】
0006039740.tif 000012
の対応する要素の符号と一致する。
５．ＭＶＰａの１つの要素の符号が、
【数１２】
0006039740.tif 000013
の対応する要素の符号と一致する。
【００２９】
[0029]本明細書における目的では、
【数１３】
0006039740.tif 000014
は、候補プレディクタによって表される近傍ブロックのリストｂの動きベクトルであり、
【数１４】
0006039740.tif 000015
は、現在フレームから、
【数１５】
0006039740.tif 000016
によって参照される参照フレームまでの符号付き時間距離を表す。
【００３０】
[0030]代替実施形態では、関数ｆｐｒｅｄ（ＭＶＰａ，Ｔａ，Ｔｂ）は、以下のうちの１つとすることができる。
１．ｆｐｒｅｄ（ＭＶＰａ，Ｔａ，Ｔｂ）＝（（ＭＶＰａ×Ｔｂ×ｆＴ（Ｔａ）＋（１≪（Ｎｐｒｅｃ１−１）））≫Ｎｐｒｅｃ１）、ここで、ｆＴ（Ｔａ）は、
【数１６】
0006039740.tif 000017
であり、Ｎｐｒｅｃ１が所定の正の整数となるように、そのエントリが満たされた、ルックアップテーブルである。
２．
【数１７】
0006039740.tif 000018
３．ｆｐｒｅｄ（ＭＶＰａ，Ｔａ，Ｔｂ）＝ＭＶＰａ
４．ｆｐｒｅｄ（ＭＶＰａ，Ｔａ，Ｔｂ）＝ＭＶＰａ×ｆｓｃａｌｅ（Ｔａ，Ｔｂ）、ここで、ｆｓｃａｌｅ（Ｔａ，Ｔｂ）は、ルックアップテーブルである。
５．ｆｐｒｅｄ（ＭＶＰａ，Ｔａ，Ｔｂ）が、ルックアップテーブルである。
【００３１】
[0031]図５は、ＭＶＰが一方のリストでだけ利用可能である２つのケースについて、ＭＶＰを生成する一例を示している。このケースでは、使用される関数は、上記の選択肢「２」である。
【００３２】
［動きベクトルプレディクタを導出する］
[0032]一実施形態では、プレディクタ集合が空集合でない場合、動きベクトルプレディクタ（
【数１８】
0006039740.tif 000019
及び
【数１９】
0006039740.tif 000020
）は、プレディクタ集合内の候補プレディクタを使用して形成され、それ以外の場合は、両方のリストに関する動きベクトルプレディクタは、デフォルト値に設定される。図６は、動きベクトルプレディクタを導出するためのプロセスの一実施形態のフロー図である。プロセスは、ハードウェア、ソフトウェア、又は両方の組み合わせを含むことができる処理ロジックによって実行することができる。
【００３３】
[0033]図６を参照すると、プロセスは、処理ロジックが、プレディクタ集合が空集合であるかどうかを判定する（処理ブロック６０１）ことによって開始する。空集合である場合、処理ロジックは、動きベクトルプレディクタをデフォルト値に設定し（処理ブロック６０２）、プロセスは終了する。空集合でない場合、処理ロジックは、プレディクタ集合を使用して、動きベクトルプレディクタを形成し（処理ブロック６０３）、プロセスは終了する。一実施形態では、デフォルト値は、ゼロベクトル
【数２０】
0006039740.tif 000021
である。
【００３４】
[0034]代替実施形態では、動きベクトルプレディクタは、以下の方法の一方において、プレディクタ集合を使用して形成される。以下の方法では、記法ＰＳ＝｛ＣＰｉ；１≦ｉ≦ＮＣＰＳ｝は、プレディクタ集合に対して使用され、ここで、ＣＰｉは、第ｉの候補プレディクタを表し、ＮＣＰＳは、プレディクタ集合内の候補プレディクタの総数を表す。
１．
【数２１】
0006039740.tif 000022
及び
【数２２】
0006039740.tif 000023
は、候補プレディクタＣＰｉに関する、リスト０及びリスト１の動きベクトルにそれぞれ等しく設定される。候補プレディクタのインデックス「ｉ」は、ＮＣＰＳ＞１である場合、ビデオビットストリームの一部として含まれる。
２．
【数２３】
0006039740.tif 000024
は、プレディクタ集合内のすべての候補プレディクタの、リスト０の動きベクトルの中央値に等しく設定される。
【数２４】
0006039740.tif 000025
は、プレディクタ集合内のすべての候補プレディクタの、リスト１の動きベクトルの中央値に等しく設定される。
【００３５】
［差分動きベクトル計算及び動きベクトル再構成］
[0035]一実施形態では、双予測ブロックの場合、一方のリスト（リストｃ）の差分動きベクトルも、他方のリスト（リストｄ）の差分動きベクトルを計算する際に使用することができる。
【数２５】
0006039740.tif 000026
【００３６】
[0036]本明細書における目的では、Ｔｃ及びＴｄは、現在フレームから、ＭＶｃ及びＭＶｄによってそれぞれ参照される参照フレームまでの符号付き時間距離を表す。図７は、エンコーダにおいて差分動きベクトルを計算するためのプロセスの一実施形態のフロー図である。プロセスは、ハードウェア、ソフトウェア、又は両方の組み合わせを含むことができる処理ロジックによって実行される。
【００３７】
[0037]図７を参照すると、プロセスは、処理ロジックが、差分動きベクトル予測についてのオン／オフステータスを決定する（処理ブロック７０１）ことによって開始する。次に、処理ロジックは、差分動きベクトル予測のステータスがオンであるかどうかを判定する（処理ブロック７０２）。オンである場合、処理ロジックは、リスト０及びリスト１のリストｃ及びリストｄへのマッピングを決定し（処理ブロック７０３）、以下の式に従って、ｃ及びｄの動きベクトル差分を設定し
【数２６】
0006039740.tif 000027
（処理ブロック７０４）、その後、プロセスは終了する。
【００３８】
[0038]差分動きベクトル予測のステータスがオンでない場合、処理ロジックは、以下の式に従って、リスト０及びリスト１の差分動きベクトルを設定し
【数２７】
0006039740.tif 000028
（処理ブロック７０５）、その後、プロセスは終了する。
【００３９】
[0039]図８は、デコーダにおいて動きベクトルを再構成するためのプロセスの一実施形態のフロー図である。プロセスは、ハードウェア、ソフトウェア、又は両方の組み合わせを含むことができる処理ロジックによって実行される。
【００４０】
[0040]図８を参照すると、プロセスは、処理ロジックが、差分動きベクトル予測についてのオン／オフステータスを決定する（処理ブロック８０１）ことによって開始する。次に、処理ロジックは、差分動きベクトル予測のステータスがオンであるかどうかを判定する（処理ブロック８０２）。オンである場合、処理ロジックは、リスト０及びリスト１のリストｃ及びリストｄへのマッピングを決定し（処理ブロック８０３）、以下の式に従って、ｃ及びｄの動きベクトルを設定し
【数２８】
0006039740.tif 000029
（処理ブロック８０４）、その後、プロセスは終了する。
【００４１】
[0041]差分動きベクトル予測のステータスがオンでない場合、処理ロジックは、以下の式に従って、リスト０及びリスト１の動きベクトルを設定し
【数２９】
0006039740.tif 000030
（処理ブロック８０５）、その後、プロセスは終了する。
【００４２】
[0042]さらなる一実施形態では、手法
【数３０】
0006039740.tif 000031
（言い換えると、差分動きベクトル予測のステータスがオンに設定される）は、１つ（又は複数）の制約が満たされた場合に限って使用され、それ以外の場合は、標準的な手法
【数３１】
0006039740.tif 000032
が使用される（言い換えると、差分動きベクトル予測のステータスがオフに設定される）。代替実施形態では、実施される制約は、以下のうちの１つ（又は複数）とすることができる。
１．
【数３２】
0006039740.tif 000033
ここで、
【数３３】
0006039740.tif 000034
は、所定のパラメータである。一実施形態では、
【数３４】
0006039740.tif 000035
は、ゼロに等しい。
２．
【数３５】
0006039740.tif 000036
の各要素の符号（ｓｉｇｎ）が、
【数３６】
0006039740.tif 000037
の対応する要素の符号と一致する。
３．
【数３７】
0006039740.tif 000038
の１つの要素の符号が、
【数３８】
0006039740.tif 000039
の対応する要素の符号と一致する。
４．
【数３９】
0006039740.tif 000040
の各要素の符号が、
【数４０】
0006039740.tif 000041
の対応する要素の符号と一致する。
５．
【数４１】
0006039740.tif 000042
の１つの要素の符号が、
【数４２】
0006039740.tif 000043
の対応する要素の符号と一致する。
【００４３】
[0043]代替実施形態では、ｃ及びｄは、以下の方法の一方で決定される。
１．｜Ｔ０｜＜｜Ｔ１｜である場合、ｃ＝０及びｄ＝１、それ以外の場合は、ｃ＝１及びｄ＝０
２．｜Ｔ０｜＞｜Ｔ１｜である場合、ｃ＝１及びｄ＝０、それ以外の場合は、ｃ＝０及びｄ＝１
【００４４】
[0044]代替実施形態では、関数
【数４３】
0006039740.tif 000044
は、以下のうちの１つとすることができる。
１．
【数４４】
0006039740.tif 000045
ここで、ｆＴ（Ｔｃ）は、
【数４５】
0006039740.tif 000046
であり、Ｎｐｒｅｃ２が所定の正の整数となるように、そのエントリが満たされた、ルックアップテーブルである。
２．
【数４６】
0006039740.tif 000047
３．
【数４７】
0006039740.tif 000048
４．
【数４８】
0006039740.tif 000049
ここで、ｆｓｃａｌｅ（Ｔｃ，Ｔｄ）は、ルックアップテーブルである。
５．
【数４９】
0006039740.tif 000050
ここで、
【数５０】
0006039740.tif 000051
は、ルックアップテーブルである。
６．
【数５１】
0006039740.tif 000052
が、ルックアップテーブルである。
【００４５】
[0045]図９は、上記の選択肢「２」を使用して、一方のリストのＭＶＤをスケーリング（ｓｃａｌｉｎｇ）して、他方のリストのＭＶＤを予測する一例を示している。
【００４６】
[0046]図１０（Ａ）及び図１０（Ｂ）は、エンコーダにおいて動きベクトルを符号化するプロセスと、デコーダにおいて動きベクトルを復号するプロセスとをそれぞれ説明するフロー図である。プロセスは、ハードウェア、ソフトウェア、又は両方の組み合わせを含むことができる処理ロジックによって実行される。
【００４７】
[0047]図１０（Ａ）を参照すると、エンコーダにおいて動きベクトルを符号化するプロセスは、処理ロジックが、プレディクタ集合を構成する（処理ブロック１００１）ことによって開始する。次に、処理ロジックは、プレディクタ集合を改良し（処理ブロック１００２）、動きベクトルプレディクタを導出する（処理ブロック１００３）。動きベクトルプレディクタを導出した後、処理ロジックは、差分動きベクトルを計算し（処理ブロック１００４）、差分動きベクトルを符号化する（処理ブロック１００５）。その後、プロセスは終了する。
【００４８】
[0048]図１０（Ｂ）を参照すると、デコーダにおいて動きベクトルを復号するプロセスは、処理ロジックが、プレディクタ集合を構成し（処理ブロック１０１１）、プレディクタ集合を改良し（処理ブロック１０１２）、動きベクトルプレディクタを導出する（処理ブロック１０１３）ことによって開始する。処理ロジックは、差分動きベクトルを復号し（処理ブロック１０１４）、導出された動きベクトルプレディクタを使用して、動きベクトルを再構成する（処理ブロック１０１５）。その後、プロセスは終了する。
【００４９】
[0049]図１１は、ビデオエンコーダの一部である例示的な動きベクトルエンコーダのブロック図である。図１１（及び図１２）における目標ブロックのために使用される属性は、以下のように説明される。
＃：これは、因果的近傍ブロックを識別するのに使用できる目標ブロックのインデックスを表す。
Ｔｙｐｅ：これは、目標ブロックによって使用されるリストを示す。
Ｒｅｆ＿ｉｎｆｏ：これは、使用される各リストについての参照フレーム情報を表す。
ＭＶ＿ｉｎｆｏ：これは、使用される各リストについての動きベクトルを表す。
【００５０】
[0050]図１１を参照すると、動き情報メモリ１１０１は、先に符号化されたブロックの属性を記憶している。目標ブロックと、動き情報メモリ１１０１からの動き情報との受け取りに応答して、プレディクタ集合構成器１１０２が、プレディクタ集合を構成する。一実施形態では、これは、上で図２において説明されたように構成される。プレディクタ集合を構成した後、プレディクタ集合改良器１１０３が、プレディクタ集合を改良する。一実施形態では、プレディクタ集合の改良は、１つ（又は複数）の候補プレディクタの改良を含む。一実施形態では、候補プレディクタの改良は、上で図４において説明されたように実行される。プレディクタ集合改良器１１０３がプレディクタ集合を改良した後、プレディクタ生成器１１０４が、動きベクトルプレディクタを導出する。一実施形態では、プレディクタ生成器１１０４は、上で図６において説明されたように、動きベクトルプレディクタを導出する。プレディクタ生成器１１０４は、導出された動きベクトルプレディクタを、差分動きベクトル生成器１１０５に送り、差分動きベクトル生成器１１０５は、動きベクトルプレディクタと、目標ブロックの動きベクトルとに応答して、差分動きベクトルを計算する。差分動きベクトル生成器１１０５は、計算された差分動きベクトルを、エントロピエンコーダ（ｅｎｔｒｏｐｙ  ｅｎｃｏｄｅｒ）１１０６に送り、エントロピエンコーダ１１０６は、差分動きベクトルを符号化し、それらをビデオビットストリームの一部に含める。その後、目標ブロックの属性は、記憶のために動き情報メモリ１１０１に送られる（ブロック図のＺ−１は、目標ブロックの動きベクトルが符号化されるまで、これが起こらないことを示す）。
【００５１】
[0051]図１２は、ビデオデコーダの一部である例示的な動きベクトルデコーダのブロック図である。図１２を参照すると、動き情報メモリ１２０１は、先に復号されたブロックの属性を記憶している。プレディクタ集合構成器１２０２が、動き情報メモリ１２０１からの動き情報と、目標ブロック情報とを受け取る。これらの入力に応答して、プレディクタ集合構成器１２０２が、プレディクタ集合を構成する。一実施形態では、プレディクタ集合の構成は、上で図２において説明されたように実行される。プレディクタ集合構成器１２０２は、プレディクタ集合を、プレディクタ集合改良器１２０３に送り、プレディクタ集合改良器１２０３は、プレディクタ集合を改良する。一実施形態では、プレディクタ集合の改良は、１つ（又は複数）の候補プレディクタの改良を含む。一実施形態では、候補プレディクタの改良は、上で図４において説明されたように実行される。プレディクタ集合改良器１２０３は、改良されたプレディクタ集合を、プレディクタ生成器１２０４に送る。改良されたプレディクタ集合に応答して、プレディクタ生成器１２０４は、動きベクトルプレディクタを導出する。一実施形態では、プレディクタ生成器１２０４は、上で図６において説明されたように、動きベクトルプレディクタを導出する。プレディクタ生成器１２０４は、導出された動きベクトルプレディクタを、動きベクトル生成器１２０６に送る。エントロピデコーダ１２０５が、ビデオビットストリームを受け取り、ビデオビットストリームに対してエントロピ復号を実行する。これが、復号された差分動きベクトルを含む、復号されたビットストリームを生成する。エントロピデコーダ１２０５は、復号された差分動きベクトルを、動きベクトル生成器１２０６に送る。導出された動きベクトルプレディクタと、復号された差分動きベクトルとに応答して、動きベクトル生成器１２０６は、目標ブロックのための動きベクトルを再構成する。その後、動きベクトル生成器１２０６は、目標ブロックの属性に含まれるように再構成された動きベクトルを送る。最後に、目標ブロックの属性は、記憶のために動き情報メモリ１２０１に送られる（ブロック図のＺ−１は、目標ブロックの動きベクトルが再構成されるまで、これが起こらないことを示す）。
【００５２】
[0052]本明細書で説明された動きベクトルエンコーダ及びデコーダは、当技術分野でよく知られた任意のブロックベースのハイブリッドビデオエンコーダ／デコーダの一部とすることができることに留意されたい。
【００５３】
［コンピュータシステムの例］
[0053]図１３は、本明細書で説明された操作の１つ又は複数を実行できる、例示的なコンピュータシステムのブロック図である。図１３を参照すると、コンピュータシステム１３００は、例示的なクライアント又はサーバコンピュータシステムを含むことができる。コンピュータシステム１３００は、情報を伝達するための通信機構又はバス１３１１と、バス１３１１に結合された、情報を処理するためのプロセッサ１３１２とを備える。プロセッサ１３１２は、例えば、ペンティアム（Ｐｅｎｔｉｕｍ）（商標）、ＰｏｗｅｒＰＣ（商標）、アルファ（Ａｌｐｈａ）（商標）などのマイクロプロセッサを含むが、マイクロプロセッサに限定されるわけではない。
【００５４】
[0054]システム１３００はさらに、バス１３１１に結合された、プロセッサ１３１２によって実行される情報及び命令を記憶するための（メインメモリと呼ばれる）ランダムアクセスメモリ（ＲＡＭ）又は他の動的記憶デバイス１３０４を備える。メインメモリ１３０４は、プロセッサ１３１２による命令の実行中に一時変数又は他の中間情報を記憶するためにも使用することができる。
【００５５】
[0055]コンピュータシステム１３００は、バス１３１１に結合された、プロセッサ１３１２のための静的情報及び命令を記憶するためのリードオンリメモリ（ＲＯＭ）及び／又は他の静的記憶デバイス１３０６と、磁気ディスク又は光ディスク及び対応するディスクドライブなどのデータ記憶デバイス１３０７も備える。情報及び命令を記憶するためのデータ記憶デバイス１３０７は、バス１３１１に結合される。
【００５６】
[0056]コンピュータシステム１３００はさらに、バス１３１１に結合された、コンピュータユーザに情報を表示するためのブラウン管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）などの表示デバイス１３２１に結合することができる。プロセッサ１３１２に情報及びコマンド選択を伝達するための、英数字キー及び他のキーを含む英数字入力デバイス１３２２も、バス１３１１に結合することができる。追加的なユーザ入力デバイスは、プロセッサ１３１２に方向情報及びコマンド選択を伝達するための、またディスプレイ１３２１上のカーソルの動きを制御するための、バス１３１１に結合された、マウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーなどのカーソルコントロール１３２３である。
【００５７】
[0057]バス１３１１に結合できる別のデバイスは、ハードコピー・デバイス１３２４であり、ハードコピー・デバイス１３２４は、紙、フィルム、又は同様のタイプの媒体などの媒体上に情報をマーキングするために使用することができる。バス１３１１に結合できる別のデバイスは、電話又はハンドヘルドパームデバイスと通信するための有線／無線通信機能１３２５である。
【００５８】
[0058]システム１３００のコンポーネント及び関連するハードウェアのいずれか又はすべてを、本発明において使用できることに留意されたい。しかし、コンピュータシステムの他の構成は、デバイスのいくつか又はすべてを含むことができることが理解できよう。
【００５９】
[0059]上記の説明を読んだ後では、本発明の多くの代替形態及び変更形態が、当業者には疑いもなく明らかになるが、例として示され、説明された特定の実施形態はいずれも、限定的なものと見なされることを決して意図していないことを理解されたい。したがって、様々な実施形態の細部についての言及は、それ自体が本発明に必須と見なされる特徴だけを列挙したものである、特許請求の範囲を限定することを意図していない。
【００６０】
[0060]参照フレームのＮ個のリストと現在フレームとに対応するＮ個の動きベクトルを有する第１のブロックについて、Ｎ個の動きベクトルプレディクタを導出するステップであって、前記第１のブロックに隣接し、予測のために使用される第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、前記Ｎ個の動きベクトルプレディクタの１つを構成するサブステップを含み、Ｎが１よりも大きい整数である、ステップと、
前記Ｎ個の動きベクトルとＮ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成するステップと、
前記Ｎ個の差分動きベクトルを符号化するステップと
を含む方法。
【００６１】
[0061]参照フレームのＮ個のリストと現在フレームとに対応するＮ個の動きベクトルを有する第１のブロックについて、Ｎ個の動きベクトルプレディクタを導出する動きベクトルプレディクタモジュールであって、Ｎ個の動きベクトルプレディクタの導出が、前記第１のブロックに隣接し、予測のために使用される第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、前記Ｎ個の動きベクトルプレディクタの１つを構成することを含み、Ｎが１よりも大きい整数である、動きベクトルプレディクタモジュールと、
前記Ｎ個の動きベクトルとＮ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成する差分動きベクトル生成器と、
前記Ｎ個の差分動きベクトルを符号化するエントロピエンコーダと
を備える符号化装置。
【００６２】
[0062]ビットストリームを受け取り、前記ビットストリームを復号して、差分動きベクトルを含む復号されたビットストリームを生成するエントロピデコーダと、
参照フレームのＮ個のリストと現在フレームとに対応するＮ個の差分動きベクトルを有する第１のブロックについて、Ｎ個の動きベクトルプレディクタを導出する動きベクトルプレディクタモジュールであって、Ｎ個の動きベクトルプレディクタの導出が、前記第１のブロックに隣接し、予測のために使用される第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、前記Ｎ個の動きベクトルプレディクタの１つを構成することを含み、Ｎが１よりも大きい整数である、動きベクトルプレディクタモジュールと、
前記復号されたビットストリームからの前記Ｎ個の差分動きベクトルと前記Ｎ個の動きベクトルプレディクタとに基づいて、Ｎ個の動きベクトルを生成する動きベクトル生成器と
を備える復号装置。
【００６３】
[0063]システムによって実行されたときに、前記システムに、
参照フレームのＮ個のリストと現在フレームとに対応するＮ個の動きベクトルを有する第１のブロックについて、Ｎ個の動きベクトルプレディクタを導出するステップであって、前記第１のブロックに隣接し、予測のために使用される第２のブロックが、少なくとも１つの無効なステータスに設定された動きベクトルを有するときに、前記Ｎ個の動きベクトルプレディクタの１つを構成するサブステップを含み、Ｎが１よりも大きい整数である、ステップと、
前記Ｎ個の動きベクトルと前記Ｎ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成するステップと、
前記Ｎ個の差分動きベクトルを符号化するステップと
を含む方法を実行させる実行可能命令を記憶するコンピュータ可読記憶媒体を有するコンピュータ製品。
【００６４】
[0064]Ｎ個の動きベクトルとＮ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成するステップであって、前記Ｎ個の差分動きベクトルの１つを生成するステップが、別の差分動きベクトルを使用する関数を実行するサブステップを含み、Ｎが１よりも大きい整数である、ステップと、
前記Ｎ個の差分動きベクトルを符号化するステップと
を含む方法。
【００６５】
[0065]システムによって実行されたときに、前記システムに、
Ｎ個の動きベクトルとＮ個の動きベクトルプレディクタとに基づいて、Ｎ個の差分動きベクトルを生成するステップであって、前記Ｎ個の差分動きベクトルの１つを生成するステップが、別の差分動きベクトルを使用する関数を実行するサブステップを含み、Ｎが１よりも大きい整数である、ステップと、
前記Ｎ個の差分動きベクトルを符号化するステップと
を含む方法を実行させる実行可能命令を記憶するコンピュータ可読記憶媒体を有するコンピュータ製品。
【図１】
0006039740.tif 000055
【図２】
0006039740.tif 000056
【図３】
0006039740.tif 000057
【図４】
0006039740.tif 000058
【図５】
0006039740.tif 000059
【図６】
0006039740.tif 000060
【図７】
0006039740.tif 000061
【図８】
0006039740.tif 000062
【図９】
0006039740.tif 000063
【図１０】
0006039740.tif 000064
【図１１】
0006039740.tif 000065
【図１２】
0006039740.tif 000066
【図１３】
0006039740.tif 000067