"ビデオ復号器を実装するコンピューティングデバイスにおいて、前記ビデオ復号器を実装する前記コンピューティングデバイスにより、動き補償についてインターレース順方向予測フィールドが1つの参照フィールドを有するか、2つの可能な参照フィールドを有するかを示す第1のフィールドレベル信号を処理すること、前記第1のフィールドレベル信号が、前記インターレース順方向予測フィールドが1つの参照フィールドを有することを示す場合、前記ビデオ復号器を実装する前記コンピューティングデバイスにより、前記2つの可能な参照フィールドの中から前記1つの参照フィールドを識別する第2のフィールドレベル信号を処理することであって、前記識別された参照フィールドが前記インターレース順方向予測フィールドの前記動き補償のすべてに使用されること、および前記ビデオ復号器を実装する前記コンピューティングデバイスにより、前記インターレース順方向予測フィールドについて前記動き補償を実行することを備えることを特徴とする方法。前記第1のフィールドレベル信号は、単一ビットであることを特徴とする請求項1に記載の方法。前記第2のフィールドレベル信号は、単一ビットであることを特徴とする請求項1に記載の方法。前記第1のフィールドレベル信号が、前記インターレース順方向予測フィールドが2つの可能な参照フィールドを有することを示す場合、前記ビデオ復号器を実装する前記コンピューティングデバイスにより、前記インターレース順方向予測フィールドのブロックおよび/またはマクロブロックの複数の動きベクトルのそれぞれについて、前記2つの可能な参照フィールドの選択を行うための第3の信号を処理することであって、前記選択された参照フィールドが前記動きベクトルとともに前記動き補償に使用されることをさらに備えることを特徴とする請求項1に記載の方法。前記第3の信号は、マクロブロックレベルであることを特徴とする請求項4に記載の方法。前記第3の信号の少なくともいくつかは、ブロックレベルであることを特徴とする請求項4に記載の方法。前記2つの可能な参照フィールドは、1時間的に最も近い、先行するインターレースイントラフィールドまたは順方向予測フィールド、および2時間的に2番目に近い、先行するインターレースイントラフィールドまたは順方向予測フィールドであることを強制されることを特徴とする請求項1に記載の方法。前記ビデオ復号器は、前記第1の信号が、前記インターレース順方向予測フィールドが1つの参照フィールドを有することを示す場合、フィールドレベルの参照フィールド選択を使用し、前記ビデオ復号器は、前記第1の信号が、前記インターレース順方向予測フィールドが2つの可能な参照フィールドを有することを示す場合、動きベクトルごとの参照フィールド選択を使用することを特徴とする請求項1に記載の方法。ビデオ復号器を実装するコンピューティングデバイスにおいて、前記ビデオ復号器を実装する前記コンピューティングデバイスにより、動き補償についてインターレース順方向予測フィールドが1つの参照フィールドを有するか、2つの可能な参照フィールドを有するかを示す第1の信号を処理すること、前記ビデオ復号器を実装する前記コンピューティングデバイスにより、前記第1の信号に少なくとも部分的に基づいてフィールドごとの参照フィールド選択と動きベクトルごとの参照フィールド選択とを切り替えることであって、前記第1の信号が、前記インターレース順方向予測フィールドが1つの参照フィールドを有することを示す場合、前記フィールドごとの参照フィールド選択を使用すること、および前記第1の信号が、前記インターレース順方向予測フィールドが2つの可能な参照フィールドを有することを示す場合、前記動きベクトルごとの参照フィールド選択を使用することを含むこと、前記ビデオ復号器を実装する前記コンピューティングデバイスにより、前記インターレース順方向予測フィールドについて動き補償を実行すること、および前記ビデオ復号器を実装する前記コンピューティングデバイスにより、参照フィールドバッファを管理するために追加の信号を処理することなく、後続の動き補償のために前記参照フィールドバッファを更新することを備えることを特徴とする方法。前記第1の信号が、前記インターレース順方向予測フィールドが1つの参照フィールドを有することを示す場合、前記ビデオ復号器を実装する前記コンピューティングデバイスにより、前記2つの可能な参照フィールドの中から前記1つの参照フィールドを識別する第2の信号を処理することをさらに備えることを特徴とする請求項9に記載の方法。前記第1および第2の信号は、それぞれ単一ビットであることを特徴とする請求項10に記載の方法。前記第1および第2の信号は、それぞれ前記インターレース順方向予測フィールドのピクチャレベルであることを特徴とする請求項10に記載の方法。前記第1の信号が、前記インターレース順方向予測フィールドが2つの可能な参照フィールドを有することを示す場合、前記ビデオ復号器を実装する前記コンピューティングデバイスにより、前記インターレース順方向予測フィールドのブロックおよび/またはマクロブロックの複数の動きベクトルのそれぞれについて、前記2つの可能な参照フィールドの選択を行うための第2の信号を処理することをさらに備えることを特徴とする請求項9に記載の方法。前記2つの可能な参照フィールドは、1時間的に最も近い、先行するインターレースイントラフィールドまたは順方向予測フィールド、および2時間的に2番目に近い、先行するインターレースイントラフィールドまたは順方向予測フィールドであることを強制されることを特徴とする請求項9に記載の方法。前記1つの参照フィールドは、1時間的に最も近い、先行するインターレースイントラフィールドまたは順方向予測フィールド、あるいは2時間的に2番目に近い、先行するインターレースイントラフィールドまたは順方向予測フィールドであることのいずれかを強制されることを特徴とする請求項9に記載の方法。プロセッサ、メモリ、入力デバイス、出力デバイスおよび通信接続の1つ以上、およびインターレース順方向予測フィールドがa動き補償について1つの参照フィールドを有し、フィールドレベルの参照フィールド選択を使用するか、b前記動き補償について2つの可能な参照フィールドを有し、動きベクトルごとの参照フィールド選択を使用するかを示す第1の信号を処理する手段、前記第1の信号が、前記インターレース順方向予測フィールドが1つの参照フィールドを有し、フィールドレベルの参照フィールド選択を使用することを示すとき、前記2つの可能な参照フィールドの中から前記1つの参照フィールドを識別する第2の信号を処理する手段、前記第1の信号が、前記インターレース順方向予測フィールドが2つの可能な参照フィールドを有し、動きベクトルごとの参照フィールド選択を使用することを示すとき、複数の動きベクトルのそれぞれについて第3の信号を処理する手段であって、前記第3の信号のそれぞれが前記2つの可能な参照フィールドの選択を行うためのものである手段、および前記インターレース順方向予測フィールドについて動き補償を実行する手段を使用して復号器にビデオを復号させるコンピュータ実行可能命令を格納したストレージを備えることを特徴とする復号器。前記第1の信号は、単一ビットであり、前記第2の信号は、単一ビットであることを特徴とする請求項16に記載の復号器。前記第1の信号および前記第2の信号は、それぞれ前記インターレース順方向予測フィールドのピクチャレベルであり、前記第3の信号は、マクロブロックレベルであることを特徴とする請求項16に記載の復号器。前記2つの可能な参照フィールドは、1時間的に最も近い、先行するインターレースイントラフィールドまたは順方向予測フィールド、および2時間的に2番目に近い、先行するインターレースイントラフィールドまたは順方向予測フィールドであることを強制されることを特徴とする請求項16に記載の復号器。前記ストレージは、参照フィールドバッファを管理するために追加の信号を処理することなく、後続の動き補償のために参照フィールドバッファを更新する手段を使用して前記復号器にビデオを復号させるコンピュータ実行可能命令をさらに格納することを特徴とする請求項16に記載の復号器。ビデオ符号化器を実装するコンピューティングデバイスにおいて、前記ビデオ符号化器を実装する前記コンピューティングデバイスにより、インターレース順方向予測フィールドを符号化することであって、前記インターレース順方向予測フィールドの動き補償を実行することを含むこと、および前記ビデオ符号化器を実装する前記コンピューティングデバイスにより、ビットストリーム内に前記符号化の結果を出力することであって、インターレース順方向予測フィールドがa前記動き補償において1つの参照フィールドを有し、フィールドレベルの参照フィールド選択を使用するか、b前記動き補償において2つの可能な参照フィールドを有し、動きベクトルごとの参照フィールド選択を使用するかを示す第1のフィールドレベル信号を信号伝達すること、および前記第1のフィールドレベル信号が、前記インターレース順方向予測フィールドが前記動き補償において1つの参照フィールドを有し、フィールドレベルの参照フィールド選択を使用することを示す場合、前記2つの可能な参照フィールドの中から前記1つの参照フィールドを識別する第2のフィールドレベル信号を信号伝達することであって、前記識別された参照フィールドが前記インターレース順方向予測フィールドについて前記動き補償のすべてに使用されることを含むことを特徴とする方法。前記出力することは、前記第1のフィールドレベル信号が、前記インターレース順方向予測フィールドが前記動き補償において2つの可能な参照フィールドを有し、動きベクトルごとの参照フィールド選択を使用することを示す場合、複数の動きベクトルのそれぞれについて、前記2つの可能な参照フィールドの選択を行う第3の信号を信号伝達することであって、前記選択された参照フィールドは前記動きベクトルとともに前記動き補償に使用されることをさらに備えることを特徴とする請求項21に記載の方法。前記第1のフィールドレベル信号は、単一のビットであり、前記第2のフィールドレベル信号は、単一のビットであることを特徴とする請求項21に記載の方法。前記2つの可能な参照フィールドは、1時間的に最も近い、先行するインターレースイントラフィールドまたは順方向予測フィールドであること、および2時間的に2番目に近い、先行するインターレースイントラフィールドまたは順方向予測フィールドであることを強制されることを特徴とする請求項21に記載の方法。デジタルビデオにおいては、ビデオの圧縮および圧縮解除はきわめて重要なので、ビデオの圧縮および圧縮解除の分野が非常に発達していることは驚くことではない。従来のビデオ圧縮および圧縮解除手法の利点がどうであれ、それらの手法は、以下に示す手法およびツールの利点を有していない。本発明の目的は、ビデオコンテンツの圧縮および圧縮解除について、特にインターレースビデオコンテンツの圧縮および圧縮解除についての現在の手法を改善することにある。本明細書では、インターレースビデオの符号化および復号の様々な手法およびツールについて詳細に説明する。それらの様々な手法およびツールは、組み合わせて用いても、別々に用いてもよい。詳細説明の一部は、インターレース順方向予測フィールドのハイブリッド動きベクトル予測の様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。ビデオ符号化器または復号器などのツールは、動きベクトルプレディクタに適用可能なプレディクタ極性信号に少なくとも部分的に基づいて、ハイブリッド動きベクトル予測条件をチェックする。ここで、プレディクタ極性信号は、動きベクトルプレディクタの優勢極性優勢的な極性dominantpolarityまたは非優勢極性非優勢的な極性nondominantpolarityを選択するためのものである。それによってツールが動きベクトルプレディクタを決定することになる。または、ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドの動きベクトル用の初期導出動きベクトルプレディクタを決定する。そしてツールは、初期導出動きベクトルプレディクタおよび1つまたは複数の隣接する動きベクトルに少なくとも部分的に基づいて、分散条件variationconditionをチェックする。分散条件が満たされていれば、ツールは、1つまたは複数の隣接する動きベクトルの1つを、動きベクトルの最終的な動きベクトルプレディクタとして用いる。分散条件が満たされていない場合、ツールは、初期導出動きベクトルプレディクタを最終的な動きベクトルプレディクタとして用いる。詳細説明の一部は、複数の動きベクトルを有するマクロブロックの動きベクトルデータの存在または不在を信号伝達する動きベクトルブロックパターンを用いる様々な手法およびツールを対象にする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。ビデオ符号化器または復号器などのツールは、複数のルミナンス動きベクトルを有するマクロブロックに関する第1の情報を表す第1の可変長符号を処理する。第1の情報は、マクロブロックのルミナンス動きベクトルごとに1つの動きベクトルデータ存在インジケータを含む。ツールはさらに、マクロブロックに関する第2の情報を表す第2の可変長符号を処理する。第2の情報は、マクロブロックの複数のブロックについての複数の変換係数データ存在インジケータを含む。または、ビデオ符号化器または復号器などのツールは、第1の数>1のルミナンス動きベクトルを有するマクロブロックについて、第2の数=第1の数のビットからなる動きベクトルブロックパターンを処理する。各ビットは、それに対応するルミナンス動きベクトルが、ビットストリーム内で信号伝達される関連付けられた動きベクトルデータを有するかどうかを示す。ツールはさらに、関連付けられた動きベクトルデータがビットストリーム内で信号伝達されることが示されているルミナンス動きベクトルのそれぞれについて、関連付けられた動きベクトルデータを処理する。詳細説明の一部は、動きベクトルプレディクタの優勢極性または非優勢極性を選択する様々な手法およびツールを対象にする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。ビデオ符号化器または復号器などのツールは、動きベクトルプレディクタの優勢極性を決定する。ツールは、優勢極性に少なくとも部分的に基づいて動きベクトルプレディクタを処理し、その動きベクトルプレディクタに少なくとも部分的に基づいて動きベクトルを処理する。例えば、この動きベクトルは、インターレース順方向予測フィールドの現在のブロックまたはマクロブロック用のものであり、優勢極性は、隣接するブロックまたはマクロブロックの複数の先行動きベクトルのそれぞれの極性に少なくとも部分的に基づく。または、ビデオ符号化器または復号器などのツールは、動きベクトルプレディクタの優勢極性または非優勢極性の選択を示す情報を処理し、その動きベクトルプレディクタに少なくとも部分的に基づいて動きベクトルを処理する。例えば、復号器は、優勢極性および非優勢極性を決定してから、優勢極性および非優勢極性と、それらからの選択を示す情報とに少なくとも部分的に基づいて動きベクトルプレディクタを決定する。詳細説明の一部は、参照フィールド選択情報および差分動きベクトル情報の統合符号化および統合復号jointcodinganddecodingの様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。ビデオ復号器などのツールは、動きベクトルの差分動きベクトル情報および動きベクトルプレディクタ選択を統合的に表現する可変長符号を復号する。そして復号器は、差分動きベクトル情報および動きベクトルプレディクタ選択に少なくとも部分的に基づいて、動きベクトルを再構成する。または、ビデオ符号化器などのツールは、動きベクトルの優勢的/非優勢的プレディクタ選択を決定する。符号化器は、動きベクトルの差分動きベクトル情報を決定し、優勢的/非優勢的プレディクタ選択と差分動きベクトル情報とを統合的に符号化する。詳細説明の一部は、インターレース順方向予測フィールドのマクロブロックのマクロブロックモード情報の符号テーブル選択および統合符号化/復号の様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。ビデオ符号化器または復号器などのツールは、マクロブロックのマクロブロックモード情報を統合的に信号伝達する可変長符号を処理する。マクロブロックは動き補償され、統合的に信号伝達されるマクロブロックモード情報は、1マクロブロックタイプ、2符号化されたブロックパターンが存在するか不在か、および3動き補償されたマクロブロックの動きベクトルデータが存在するか不在か、を含む。または、ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドのマクロブロックモード情報の、複数の使用可能な符号テーブルから符号テーブルを選択する。ツールは、選択された符号テーブルを用いて、マクロブロックのマクロブロックモード情報を示す可変長符号を処理する。マクロブロックモード情報は、1マクロブロックタイプ、2符号化されたブロックパターンが存在するか不在か、および3マクロブロックタイプに適用可能な場合に、動きベクトルデータが存在するか不在か、を含む。詳細説明の一部は、インターレース順方向予測フィールドに使用可能な参照フィールドの数の信号を用いる様々な手法およびツールを対象にする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドが動き補償用として1つの参照フィールドを有するか、2つの可能な参照フィールドを使用するか、を示す第1の信号を処理する。インターレース順方向予測フィールドが1つの参照フィールドを使用することが第1の信号によって示された場合、ツールは、2つの可能な参照フィールドの中からその1つの参照フィールドを識別する第2の信号を処理する。一方、インターレース順方向予測フィールドが2つの可能な参照フィールドを有することが第1の信号によって示された場合、ツールは、インターレース順方向予測フィールドのブロックおよび/またはマクロブロックの複数の動きベクトルのそれぞれについて、その2つの可能な参照フィールドからの選択を行う第3の信号を処理することが可能である。そしてツールは、インターレース順方向予測フィールドに対して動き補償を行う。または、ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドが動き補償用として1つの参照フィールドを使用するか、2つの可能な参照フィールドを使用するか、を示す信号を処理する。ツールは、インターレース順方向予測フィールドに対して動き補償を行う。ツールはさらに、後続の動き補償のための参照フィールドバッファを更新する。参照フィールドバッファを管理するためにさらなる信号を処理することはない。詳細説明の一部は、インターレース順方向予測フィールドのマクロブロックのクロマ動きベクトルを導出する様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。ビデオ符号化器または復号器などのツールは、1つまたは複数のルミナンス動きベクトルを有するマクロブロックに対し、その1つまたは複数のルミナンス動きベクトルの極性評価polarityevaluationに少なくとも部分的に基づいてクロマ動きベクトルを導出する。例えば、その1つまたは複数のルミナンス動きベクトルのそれぞれは奇数極性または偶数極性oddorevenpolarityであり、極性評価は、その1つまたは複数のルミナンス動きベクトルの中でどの極性がより一般的か多く見られるかを決定することを含む。または、ビデオ符号化器または復号器などのツールは、マクロブロックの複数のルミナンス動きベクトルの中から一般的な極性prevailingpolarityを決定する。そしてツールは、一般的な極性を有する複数のルミナンス動きベクトルのうちの1つまたは複数に少なくとも部分的に基づいて、マクロブロックのクロマ動きベクトルを導出する。以下、添付図面を参照しながら、様々な実施形態の詳細説明を進めていく中で、さらなる特徴や利点が明らかになるであろう。本出願は、インターレースビデオの効率的な圧縮および圧縮解除の手法およびツールに関する。インターレースビデオ表現の特定の特性を扱うことに特化した様々な手法およびツールを用いて、インターレースビデオコンテンツの圧縮および圧縮解除を改善する。記載の各種実施形態では、ビデオ符号化器および復号器に、インターレース順方向予測フィールドを符号化および復号する手法が組み込まれ、さらに、それらに対応する信号伝達手法が組み込まれる。これらの信号伝達手法は、様々なレイヤまたはレベル例えば、シーケンスレベル、フレームレベル、フィールドレベル、スライスレベル、マクロブロックレベル、および/またはブロックレベルを含むビットストリーム形式またはシンタックスに用いられる。インターレースビデオコンテンツは、ケーブル、衛星、DSLなどを経由するデジタルビデオ放送システムにおいて一般的に用いられている。インターレースビデオコンテンツを圧縮および圧縮解除する効率的な手法およびツールは、ビデオコーデックの重要な要素である。本明細書に記載の実装形態に対する様々な代替が可能である。例えば、フローチャート図を参照して記載されている手法は、フローチャートに示されているステージの順序を変えたり、特定のステージを繰り返したり省略したりして変更することが可能である。あるいは、一部の実装形態は特定のマクロブロック形式を基準にして記載されているが、他の形式を用いることも可能である。さらには、インターレース順方向予測フィールドに関して記載されている手法およびツールを他のタイプのピクチャに適用することも可能である。各種実施形態では、符号化器および復号器は、ビットストリーム内の複数のフラグおよび/または複数の信号を用いる。特定の複数のフラグおよび複数の信号について記載しているが、この記載方法は、フラグおよび信号についての様々な規約例えば、1ではなく0を包含することを理解されたい。これらの様々な手法およびツールは、組み合わせて用いても、別々に用いてもよい。記載の手法およびツールのうちの1つまたは複数が、様々な実施形態において実装される。本明細書に記載の手法およびツールのいくつかは、ビデオ符号化器または復号器に用いたり、ビデオの符号化または復号に特に限定されない他のシステムに用いたりすることが可能である。I.コンピューティング環境図19は、記載の実施形態のいくつかを実装することが可能な、好適なコンピューティング環境1900を一般化した例を示す。記載の手法およびツールは、多種多様な汎用または専用コンピューティング環境への実装が可能なので、コンピューティング環境1900は、使用または機能性の範囲の何らかの限定を意図するものではない。図19に示すように、コンピューティング環境1900は、少なくとも1つの処理ユニット1910とメモリ1920とを含む。図19では、この最も基本的な構成1930を破線で囲んでいる。処理ユニット1910は、コンピュータで実行可能な命令を実行し、実際のプロセッサであっても仮想のプロセッサであってもよい。マルチ処理システムでは、処理能力を高めるために複数の処理ユニットが、コンピュータで実行可能な命令を実行する。メモリ1920は、揮発性メモリ例えば、レジスタ、キャッシュ、RAMであっても、不揮発性メモリ例えば、ROM、EEPROM、フラッシュメモリなどであっても、これらのうちの2つの組合せであってもよい。メモリ1920は、ビデオ符号化器または復号器を実装するソフトウェア1980を格納する。コンピュータ環境は、付加機能を有することが可能である。例えば、コンピューティング環境1900は、記憶装置1940、1つまたは複数の入力装置1950、1つまたは複数の出力装置1960、および1つまたは複数の通信接続1970を含む。バス、コントローラ、ネットワークなどの相互接続メカニズム図示せずが、コンピューティング環境1900のコンポーネントを相互接続する。一般に、オペレーティングシステムソフトウェア図示せずが、コンピューティング環境1900で実行される他のソフトウェアの動作環境を提供し、コンピューティング環境1900のコンポーネントのアクティビティを調整する。記憶装置1940は、リムーバブルであっても非リムーバブルであってもよく、磁気ディスク、磁気テープまたはカセット、CD-ROM、DVD、または他の任意の、コンピューティング環境1900内で情報を記憶するために用いられることが可能であって、アクセスされることが可能である媒体を含む。記憶装置1940は、ビデオ符号化器または復号器を実装するソフトウェア1980に対する命令を格納する。入力装置1950としては、キーボード、マウス、ペン、トラックボールなどのタッチ入力装置、音声入力装置、スキャン装置、または他の、コンピューティング環境1900に入力を提供する装置が可能である。オーディオまたはビデオの符号化に関する入力装置1950としては、サウンドカード、ビデオカード、TVチューナカード、または同様の、オーディオまたはビデオの入力をアナログまたはデジタル形式で受け付ける装置や、オーディオまたはビデオのサンプルをコンピューティング環境1900に読み込むCD-ROMやCD-RWなどが可能である。出力装置1960としては、ディスプレイ、プリンタ、スピーカ、CDライタ、または他の、コンピューティング環境1900からの出力を提供する装置が可能である。通信接続1970は、通信媒体を経由しての、別のコンピューティングエンティティとの通信を可能にする。通信媒体は、コンピュータで実行可能な命令のような情報、オーディオまたはビデオの入力または出力、または他のデータを、変調データ信号の形で搬送する。変調データ信号は、その特性の1つまたは複数が、信号内の情報を符号化するように設定または変更される信号である。限定ではなく例として、通信媒体は、電気、光、RF、赤外線、音響、または他のキャリアを用いて実装される有線または無線技術を含む。本発明の手法およびツールは、コンピュータ可読媒体の一般的なコンテキストの形での説明が可能である。コンピュータ可読媒体は、コンピューティング環境においてアクセス可能な任意の使用可能な媒体である。限定ではなく例として、コンピューティング環境1900では、コンピュータ可読媒体は、メモリ1920、記憶装置1940、通信媒体、およびこれらの任意の組合せを含む。本発明の手法およびツールは、プログラムモジュールに含まれ、コンピューティング環境内のターゲット実プロセッサまたは仮想プロセッサで実行される、コンピュータで実行可能な命令などの、コンピュータで実行可能な命令の一般的なコンテキストの形での説明が可能である。一般に、プログラムモジュールとしては、特定のタスクを実行したり、特定の抽象データ型を実装したりするルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造体などがある。プログラムモジュールの機能は、様々な実施形態において、必要に応じてプログラムモジュール間で結合したり分割したりすることが可能である。プログラムモジュールのコンピュータで実行可能な命令は、ローカルコンピューティング環境においても分散コンピューティング環境においても実行可能である。説明のための表現として、以下の詳細説明では、推定する、補償する、予測する、適用するなどの用語を、コンピューティング環境内のコンピュータ動作を記述するために用いる。これらの用語は、コンピュータによって実行される動作の高レベル抽象化であって、人間によって実行される動作と混同されてはならない。これらの用語に対応する実際のコンピュータ動作は、実装に応じて異なる。II.一般化されたビデオ符号化器および復号器図20は、一般化されたビデオ符号化器システム2000のブロック図であり、図21は、一般化されたビデオ復号器システム2100のブロック図であり、これらのシステムと組み合わせて、記載の各種実施形態を実装することが可能である。符号化器および復号器内のモジュール間の、図示した関係が、符号化器および復号器における情報の主要なフローを示しており、他の関係は簡略化のために図示していない。具体的には、図20および図21は、通例として、ビデオのシーケンス、フレーム、マクロブロック、ブロックなどに用いられる符号化器の設定、モード、テーブルなどを表す副情報を示していない。そのような副情報は、一般に、エントロピー符号化されてから出力ビットストリームの中で送信される。出力ビットストリームの形式は、Windows登録商標MediaVideoバージョン9であっても他の形式であってもよい。符号化器2000および復号器2100は、ビデオピクチャを処理するが、それらは、ビデオフレームであってもビデオフィールドであってもフレームとフィールドの組合せであってもよい。ピクチャレベルおよびマクロブロックレベルにおけるビットストリームのシンタックスおよびセマンティクスは、フレームを用いるかフィールドを用いるかによって異なってもよい。マクロブロック構成および全体のタイミングも同様に異なってもよい。符号化器2000および復号器2100は、ブロックベースであり、フレームに4:2:0マクロブロック形式を用いる。各マクロブロックは、4つの8×8ルミナンスブロック1つの16×16マクロブロックとして扱われることもあると2つの8×8クロマブロックとを含む。フィールドについて用いるマクロブロック構成および型式は、同じであっても異なっていてもよい。これらの8×8ブロックは、例えば、周波数変換、およびエントロピー符号化などの様々なステージにおいて、さらに分割することが可能である。次のセクションで、ビデオフレーム構成の例を示す。実装および必要な圧縮のタイプに応じて、符号化器または復号器のモジュールを追加したり、省略したり、複数のモジュールに分割したり、他のモジュールと組み合わせたり、および/または同様のモジュールで置き換えたりすることが可能である。代替実施形態では、異なるモジュールおよび/または他のモジュール構成を有する符号化器または復号器が、記載の手法のうちの1つまたは複数を実施する。A.ビデオフレーム構成一部の実装形態では、符号化器2000および復号器2100は、以下のように構成されたビデオフレームを処理する。フレームは、ビデオ信号の空間情報をライン走査線の形で収容する。プログレッシブビデオの場合、これらのラインは、ある時点から始まり、連続するラインを通ってフレームの一番下まで続くサンプル群を収容する。プログレッシブビデオフレームは、図22に示すマクロブロック2200のように、マクロブロックに分割される。マクロブロック2200は、4つの8×8ルミナンスブロックY1~Y4と2つの8×8クロマブロックとを含む。2つの8×8クロマブロックは、4つのルミナンスブロックと同じ場所にあるが、従来の4:2:0マクロブロック形式に従って、水平方向および垂直方向の解像度がルミナンスブロックの半分である。これらの8×8ブロックは、例えば、周波数変換例えば、8×8、4×8、または4×4のDCTなど、エントロピー符号化などの様々なステージにおいて、さらに分割することが可能である。プログレッシブIフレームは、イントラ符号化されたプログレッシブビデオフレームである。プログレッシブPフレームは、順方向予測を用いて符号化されたプログレッシブビデオフレームであり、プログレッシブBフレームは、双方向予測を用いて符号化されたプログレッシブビデオフレームである。プログレッシブPフレームおよびプログレッシブBフレームは、イントラ符号化されたマクロブロックだけでなく、様々なタイプの予測マクロブロックを含むことが可能である。インターレースビデオフレームは、1フレームに属する2つのスキャンで構成され、1つはフレームの偶数ライントップフィールドを含み、もう1つはフレームの奇数ラインボトムフィールドを含む。これら2つのフィールドは、異なる2つの時間帯を表すことも可能であり、同じ時間帯であることも可能である。図23Aは、インターレースビデオフレーム2300の一部を示しており、インターレースビデオフレーム2300の左上部分の、トップフィールドとボトムフィールドとで互い違いになるラインを含む。図23Bは、フレーム2330として符号化/復号するために構成された、図23Aのインターレースビデオフレーム2300を示す。インターレースビデオフレーム2300は、マクロブロック2331および2332のように、図22に示した4:2:0形式を用いるマクロブロックに分割されている。ルミナンスプレーンでは、各マクロブロック2331、2332は、トップフィールドの8ラインとボトムフィールドの8ラインとが互い違いになっている合計16ラインを含み、各ラインの長さが16画素であるマクロブロック2331、2332内のルミナンスブロックおよびクロマブロックの実際の構成および配置は図示していない。これらは、実際には、符号化決定encodingdecisionsが異なれば異なる可能性がある。所与のマクロブロック内で、トップフィールド情報およびボトムフィールド情報を、任意の様々なフェーズにおいて、統合的に、または別々に符号化することが可能である。インターレースIフレームは、インターレースビデオフレームの、イントラ符号化された2つのフィールドであって、マクロブロックがその2つのフィールドの情報を含む。インターレースPフレームは、インターレースビデオフレームの、順方向予測を用いて符号化された2つのフィールドであり、インターレースBフレームは、インターレースビデオフレームの、双方向予測を用いて符号化された2つのフィールドであり、マクロブロックがその2つのフィールドの情報を含む。インターレースPフレームおよびインターレースBフレームは、イントラ符号化されたマクロブロックだけでなく、様々なタイプの予測マクロブロックを含むことが可能である。図23Cは、フィールド2360として符号化/復号するために構成された、図23Aのインターレースビデオフレーム2300を示す。インターレースビデオフレーム2300の2つのフィールドのそれぞれがマクロブロックに分割されている。トップフィールドは、マクロブロック2361のようなマクロブロックに分割され、ボトムフィールドは、マクロブロック2362のようなマクロブロックに分割されているこの場合も、マクロブロックは、図22に示すように、4:2:0形式を用いており、マクロブロック内のルミナンスブロックおよびクロマブロックの構成および配置は図示していない。ルミナンスプレーンでは、マクロブロック2361がトップフィールドの16ラインを含み、マクロブロック2362がボトムフィールドの16ラインを含み、各ラインの長さが16画素である。インターレースIフィールドは、インターレースビデオフレームに属する、単独で表現された1つのフィールドである。インターレースPフィールドは、順方向予測を用いて符号化された、インターレースビデオフレームに属する、単独で表現された1つのフィールドであり、インターレースBフィールドは、双方向予測を用いて符号化された、インターレースビデオフレームに属する、単独で表現された1つのフィールドである。インターレースPフィールドおよびインターレースBフィールドは、イントラ符号化されたマクロブロックだけでなく、様々なタイプの予測マクロブロックを含むことが可能である。ピクチャという用語は、一般に、ソース画像データ、符号化された画像データ、または再構成された画像データを指す。プログレッシブビデオについては、ピクチャは、プログレッシブビデオフレームである。インターレースビデオについては、ピクチャは、コンテキストに応じて、インターレースビデオフレームを指す場合、フレームのトップフィールドを指す場合、またはフレームのボトムフィールドを指す場合がある。あるいは、符号化器2000および復号器2100は、オブジェクトベースであり、別のマクロブロック形式またはブロック形式を用いるか、8×8ブロックや16×16マクロブロックとは異なるサイズまたは構成の画素集合に対して操作を実行する。B.ビデオ符号化器図20は、一般化されたビデオ符号化器システム2000のブロック図である。符号化器システム2000は、現在のピクチャ2005を含むビデオピクチャ例えば、プログレッシブビデオフレーム、インターレースビデオフレーム、またはインターレースビデオフレームのフィールドのシーケンスを受け取り、圧縮ビデオ情報2095を出力として生成する。ビデオ符号化器の個々の実施形態では、一般に、一般化された符号化器2000の変形形態または強化形態を用いる。符号化器システム2000は、予測ピクチャおよびキーピクチャを圧縮する。説明のための表現として、図20は、符号化器システム2000を通るキーピクチャのパスと、順方向予測ピクチャのパスとを示す。符号化器システム2000のコンポーネントの多くは、キーピクチャと予測ピクチャの両方の圧縮に用いられる。それらのコンポーネントによって実行される動作は、厳密には、圧縮される情報のタイプによって異なる可能性がある。予測ピクチャPピクチャ、双方向予測ピクチャとしてのBピクチャ、またはインター符号化されたピクチャ、とも呼ばれるは、1つまたは複数の他のピクチャからの予測または差分という形で表現される。予測残差は、予測されたものとオリジナルピクチャとの差分である。一方、キーピクチャIピクチャ、またはイントラ符号化されたピクチャとも呼ばれるは、他のピクチャを参照せずに圧縮される。現在のピクチャ2005が順方向予測ピクチャである場合は、動き推定器2010が、ピクチャ記憶器2020にバッファリングされている再構成された先行ピクチャreconstructedpreviouspicture2025である参照ピクチャを基準にして、現在のピクチャ2005のマクロブロックまたは他の画素集合の動きを推定する。代替実施形態では、参照ピクチャが後のピクチャであったり、現在のピクチャが双方向予測されたりする。動き推定器2010は、1画素、1/2画素、1/4画素、または他の増分を単位として動きを推定することが可能であり、ピクチャごと、または他の区切りごとに動き推定の精度を切り替えることが可能である。動き推定の精度は、水平方向と垂直方向とで同じであっても異なってもよい。動き推定器2010は、動きベクトルなどの動き情報2015を副情報として出力する。動き補償器2030は、再構成された先行ピクチャ2025に動き情報2015を適用して、動き補償された、現在のピクチャ2035を形成する。予測が完全であることはまれであり、動き補償された、現在のピクチャ2035と、オリジナルの現在のピクチャ2005との差分が予測残差2045である。あるいは、動き推定器および動き補償器は、別のタイプの動き推定/補償を適用する。周波数変換器2060は、空間領域のビデオ情報を、周波数領域のすなわち、スペクトルデータに変換する。ブロックベースのビデオピクチャの場合、周波数変換器2060は、画素データまたは予測残差データのブロックにDCTまたはDCTの変形形態を適用して、DCT係数のブロックを生成する。あるいは、周波数変換器2060は、別の従来の周波数変換例えば、フーリエ変換を適用したり、ウェーブレット解析またはサブバンド解析を行ったりする。周波数変換器2060は、予測ピクチャの予測残差に、8×8、8×4、4×8、または他のサイズの周波数変換例えば、DCTを適用する。次に量子化器2070が、スペクトルデータ係数のブロックを量子化する。量子化器は、ピクチャごと、または他の区切りごとに異なるステップサイズを使用して、スペクトルデータに、均一のスカラ量子化を適用する。あるいは、量子化器は、別のタイプの量子化例えば、不均一量子化、ベクトル量子化、または非適応量子化nonadaptivequantizationをスペクトルデータ係数に適用したり、あるいは周波数変換を行わない符号化器システムにおいて空間領域データを直接量子化したりする。符号化器2000は、適応量子化に加えて、フレームドロップ、適応フィルタリング、または他のレート制御手法を用いることが可能である。予測ピクチャ内の所与のマクロブロックが特定タイプの情報を有しない場合例えば、マクロブロックの動き情報がない場合や、残差情報がない場合、符号化器2000は、そのマクロブロックを、スキップされたマクロブロックとして符号化することが可能である。その場合、符号化器は、スキップされたマクロブロックを、圧縮ビデオ情報2095の出力ビットストリームの中で信号伝達する。再構成された現在のピクチャが後続の動き推定/補償に必要である場合は、逆量子化器2076が、量子化されたスペクトルデータ係数に逆量子化を実行する。次に逆周波数変換器2066が、周波数変換器2060とは逆の操作を実行して、予測ピクチャの再構成された予測残差またはイントラ符号化されたピクチャの再構成されたサンプルを生成する。符号化されるピクチャ2005が、イントラ符号化されるピクチャであれば、再構成されたサンプルは、再構成された現在のピクチャ図示せずを形成する。符号化されるピクチャ2005が予測ピクチャであれば、再構成された予測残差を、動き補償された予測2035に加算して、再構成された現在のピクチャを形成する。ピクチャ記憶装置2020は、次のピクチャの予測に用いる、再構成された現在のピクチャをバッファリングする。一部の実施形態では、符号化器は、再構成されたフレームにデブロッキングフィルタを適用して、フレームのブロック間の不連続部分を適応的に平滑化する。エントロピー符号化器2080は、量子化器2070の出力ならびに特定の副情報例えば、動き情報2015、量子化ステップサイズを圧縮する。一般的なエントロピー符号化手法として、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、LZ符号化、辞書符号化、およびこれらの組合せなどがある。エントロピー符号化器2080は、一般に、様々な種類の情報例えば、DC係数、AC係数、様々な種類の副情報に対して様々な符号化手法を用い、特定の符号化手法において複数の符号化テーブル間で選択することが可能である。エントロピー符号化器2080は、圧縮ビデオ情報2095をバッファ2090内に配置する。バッファレベルインジケータがビットレート適応モジュールにフィードバックされる。圧縮ビデオ情報2095は、一定または比較的一定のビットレートでバッファ2090から引き出され、そのビットレートでの後続のストリーミングに備えて保存される。したがって、バッファ2090のレベルは、主に、フィルタリングおよび量子化されたビデオ情報のエントロピーの関数であって、これは、エントロピー符号化の効率に影響を及ぼす。あるいは、符号化器システム2000は、圧縮後ただちに圧縮ビデオ情報をストリーミングし、バッファ2090のレベルは、やはり、情報が送り出し用バッファ2090から引き出されるレートに依存する。バッファ2090の前または後で、圧縮ビデオ情報2095を、ネットワーク送信のためにチャネル符号化することが可能である。チャネル符号化では、エラーの検出および訂正のデータを圧縮ビデオ情報2095に適用追加することが可能である。C.ビデオ復号器図21は、一般化されたビデオ復号器システム2100のブロック図である。復号器システム2100は、ビデオピクチャの圧縮されたシーケンスの情報2195を受け取り、再構成されたピクチャ2105例えば、プログレッシブビデオフレーム、インターレースビデオフレーム、またはインターレースビデオフレームのフィールドを含む出力を生成する。ビデオ復号器の個々の実施形態では、一般に、一般化された復号器2100の変形形態または強化形態を用いる。復号器システム2100は、予測ピクチャおよびキーピクチャを圧縮解除する。説明のために、図21は、復号器システム2100を通るキーピクチャのパスと、順方向予測ピクチャのパスとを示す。復号器システム2100のコンポーネントの多くは、キーピクチャと予測ピクチャの両方の圧縮解除に用いられる。それらのコンポーネントによって実行される動作は、厳密には、圧縮解除される情報のタイプによって異なる可能性がある。バッファ2190は、圧縮ビデオシーケンスの情報2195を受け取り、受け取った情報を、エントロピー復号器2180で利用できるようにする。バッファ2190は、一般に、時間に対してほぼ一定のレートで情報を受け取り、帯域幅または伝送の短時間変動を平滑化するジッタバッファを含む。バッファ2190は、再生バッファおよび他のバッファも含むことが可能である。あるいは、バッファ2190は、情報を変動レートで受け取る。バッファ2190の前または後で、圧縮ビデオ情報を、エラーの検出および訂正のためにチャネル復号および処理することが可能である。エントロピー復号器2180は、エントロピー符号化された量子化データならびにエントロピー符号化された副情報例えば、動き情報2115、量子化ステップサイズをエントロピー復号する。これには、一般に、符号化器で実行されたエントロピー符号化の逆が適用される。エントロピー復号手法として、算術復号、差分復号、ハフマン復号、ランレングス復号、LZ復号、辞書復号、およびこれらの組合せなどがある。エントロピー復号器2180は、しばしば、様々な種類の情報例えば、DC係数、AC係数、様々な種類の副情報に対して様々な復号手法を用い、特定の復号手法において複数の符号化テーブル間で選択することが可能である。再構成されるピクチャ2105が順方向予測ピクチャであれば、動き補償器2130が、動き情報2115を参照ピクチャ2125に適用して、再構成されるピクチャ2105の予測2135を形成する。例えば、動き補償器2130が、マクロブロック動きベクトルを用いて、参照ピクチャ2125内のマクロブロックを見つける。ピクチャバッファ2120が、再構成された先行ピクチャを、参照ピクチャとして用いるために格納する。動き補償器2130は、1画素、1/2画素、1/4画素、または他の増分を単位として動きを補償することが可能であり、ピクチャごと、または他の区切りごとに動き補償の精度を切り替えることが可能である。動き補償の精度は、水平方向と垂直方向とで同じであっても異なってもよい。あるいは、動き補償器は、別のタイプの動き補償を適用する。動き補償器による予測が完全であることはまれなので、復号器2100はさらに、予測残差を再構成する。復号器において、再構成されたピクチャが後続の動き補償に必要な場合は、ピクチャ記憶装置2120が、再構成されたピクチャを、次のピクチャの予測に用いるためにバッファリングする。一部の実施形態では、符号化器は、再構成されたフレームにデブロッキングフィルタを適用して、フレームのブロック間の不連続部分を適応的に平滑化する。逆量子化器2170は、エントロピー復号されたデータを逆量子化する。一般に、逆量子化器は、ピクチャごと、または他の区切りごとに異なるステップサイズを使用して、エントロピー復号されたデータに、均一のスカラ逆量子化を適用する。あるいは、逆量子化器は、別のタイプの逆量子化例えば、不均一逆量子化、ベクトル逆量子化、または非適応逆量子化をデータに適用したり、逆周波数変換を行わない復号器システムにおいて空間領域データを直接逆量子化したりする。逆周波数変換器2160が、量子化された周波数領域データを空間領域ビデオ情報に変換する。ブロックベースのビデオピクチャについては、逆周波数変換器2160は、IDCTまたはIDCTの変形形態をDCT係数のブロックに適用して、キーピクチャの画素データ、または予測ピクチャの予測残差データをそれぞれ生成する。あるいは、周波数変換器2160は、別の従来の逆周波数変換例えば、フーリエ変換を適用するか、ウェーブレット合成またはサブバンド合成を行う。逆周波数変換器2160は、予測ピクチャの予測残差に、8×8、8×4、4×8、または他のサイズの逆周波数変換例えば、IDCTを適用する。III.インターレースPフィールドとインターレースPフレーム一般的なインターレースビデオフレームは、異なる時刻にスキャンされた2つのフィールド例えば、トップフィールドとボトムフィールドからなる。一般に、インターレースビデオフレームの静止領域については、フィールドをまとめて符号化フレームモード符号化することによって符号化するのが効率的である。一方、インターレースビデオフレームの、動きのある領域については、フィールドを別々に符号化フィールドモード符号化することによって符号化するのが効率的である場合が多い。これは、2つのフィールドがそれぞれ異なる動きを有する傾向があるからである。順方向予測インターレースビデオフレームは、2つの別々の順方向予測フィールドインターレースPフィールドとして符号化されることが可能である。順方向予測インターレースビデオフレームのフィールドを別々に符号化することは、例えば、インターレースビデオフレーム全体で動きが多く、したがって、フィールド間の差分が大きい場合に効率的である可能性がある。または、順方向予測インターレースビデオフレームは、インターレースPフレームのように、フィールド符号化とフレーム符号化の混在を用いて符号化されることが可能である。インターレースPフレームのマクロブロックの場合、マクロブロックは、トップフィールドおよびボトムフィールドの画素のラインを含み、これらのラインは、フレーム符号化モードで一括して符号化されるか、フィールド符号化モードで別々に符号化されることが可能である。インターレースPフィールドは、既に復号されている1つまたは複数のフィールドを参照する。例えば、一部の実施形態では、インターレースPフィールドは、既に復号されている1つまたは2つのフィールドを参照し、インターレースBフィールドは、先行の参照フィールドを2つまでと、後続の参照フィールドを2つまですなわち、全部で4つまでの参照フィールドを参照するインターレースPフィールドの符号化および復号の手法については後で詳述する。また、特に、一部の実施形態による、インターレースPフィールドおよび2つの参照インターレースPフィールドの詳細については、2004年5月27日出願、PredictingMotionVectorsforFieldsofForwardpredictedInterlacedVideoFramesという名称の特許文献1を参照されたい。IV.インターレースPフィールドの参照フィールドの数一部の実施形態では、単一の、現在のインターレースPフィールドの動き補償予測を実行する際に、既に符号化/復号されている2つのフィールドを参照フィールドとして用いることが可能である。一般に、参照フィールドを2つ用いることができれば、動き補償予測が1つの参照フィールドに制限される場合より、圧縮効率がよくなる。しかしながら、信号伝達オーバーヘッドは、参照フィールドを2つ使用できる場合のほうが大きい。これは、動きベクトルを有するマクロブロックまたはブロックのそれぞれに対し、2つのうちのどのフィールドが参照を与えるかを示す情報を余計に送らなければならないからである。状況によっては、参照フィールドが2つの場合と1つの場合とで動きベクトルごとの潜在的動き補償プレディクタの数がより多いことの利点が、参照フィールド選択を信号伝達するために必要なオーバーヘッドを補って余りあるものにならない場合がある。例えば、最良の基準が、常に、可能な2つの参照フィールドのうちの一方から得られる場合は、2つではなく1つの参照フィールドを用いるほうが有利である可能性がある。通常、これは、2つの参照フィールドのうちの一方だけが現在のフィールドと同じシーンからのものになるようなシーンチェンジによる場合である。または、シーケンスの先頭のように、参照フィールドが1つしか使用可能でない場合がある。こうした場合に効率的であるのは、参照フィールドが1つだけ使用されていることと、その1つの参照フィールドが何であるかを、現在のPフィールドのフィールドレベルで信号伝達し、その決定が、現在のPフィールド内のマクロブロックおよびブロックに適用されるようにすることである。結果として、動きベクトルを有するマクロブロックまたはブロックで参照フィールド選択情報を送ることは不要になる。A.様々なスキームでの参照フィールドの数あるスキームでは、既に符号化/復号された2つのフィールドを、現在のPフィールドの参照フィールドとして用いることが可能である。マクロブロックまたはブロックの動きベクトルが用いる参照フィールドは、その動きベクトルに関する他の情報と同様に、その動きベクトルに関して信号伝達される。例えば、動きベクトルに関して、信号伝達される情報は、1参照フィールドと、2動きベクトルに関連付けられた現在のブロックまたはマクロブロックのブロックプレディクタまたはマクロブロックプレディクタに対する参照フィールドの位置、とを示す。または、参照フィールド情報および動きベクトル情報は、セクションXIIの複合実装形態のいずれかで説明されるように信号伝達される。別のスキームでは、既に符号化/復号されたフィールドの1つだけを、現在のPフィールドの参照フィールドとして用いることが可能である。動きベクトルについては、動きベクトルが参照する参照フィールドを示すことは不要である。例えば、動きベクトルについては、信号伝達される情報は、動きベクトルに関連付けられた現在のブロックまたはマクロブロックのプレディクタの、参照フィールド内の位置だけを示す。または、動きベクトル情報は、セクションXIIの複合実装形態のいずれかで説明されるように信号伝達される。1つの参照フィールドのスキームにおける動きベクトルは、一般に、2つの参照フィールドのスキームにおける同じ動きベクトルより少ないビット数で符号化される。どのスキームの場合も、参照フィールド用のバッファまたはピクチャ記憶装置を、後続の動き補償のために更新することは単純である。現在のPフィールドの1つまたは複数の参照フィールドは、現在のPフィールドの前にある、現在のPフィールドに最も近いIまたはPフィールドと、現在のPフィールドに2番目に近いIまたはPフィールドとのうちのいずれかまたは両方である。候補参照フィールドの場所が既知であるので、符号化器および復号器は、バッファ管理信号を用いることなく、自動的に、次のPフィールドの動き補償用の参照ピクチャバッファを更新することが可能である。あるいは、符号化器および復号器は、インターレースPフィールドの多数の参照フィールドに関して1つまたは複数の補助スキームを用いる。B.信号伝達の例本セクション、およびセクションXIIの複合実装形態で説明する、信号伝達の具体例では、現在のPフィールドに用いられる参照フィールドの数と、1つの参照フィールドが用いられる場合には、どの候補参照フィールドが用いられているかを信号伝達する。例えば、Pフィールドヘッダ内のNUMREFと呼ばれる1ビットフィールドは、Pフィールドが参照として用いる先行フィールドが1つか2つかを示す。NUMREF=0であれば、参照フィールドが1つだけ用いられる。NUMREF=1であれば、参照フィールドが2つ用いられる。NUMREF=0の場合は、別のREFFIELDと呼ばれる1ビットフィールドが存在し、2つのフィールドのうちのいずれを参照として用いるかを示す。REFFIELD=0であれば、時間的に近いほうのフィールドが参照フィールドとして用いられる。REFFIELD=1であれば、2つの候補参照フィールドのうち、時間的に遠いほうのフィールドが、現在のPフィールドの参照フィールドとして用いられる。あるいは、符号化器および復号器は、別の信号および/または追加の信号を参照フィールド選択のために用いる。C.参照フィールドの場所図24A~図24Fは、インターレースPフィールドの動き補償予測に使用可能な参照フィールドの場所を示す。Pフィールドは、1つまたは2つの既に符号化/復号されたフィールドを参照として用いることが可能である。具体的には、図24A~図24Fは、NUMREF=1およびNUMREF=0の場合の参照フィールドの例を示している。図24Aおよび図24Bは、現在のPフィールドに対して2つの参照フィールドを用いる例を示すNUMREF=1。図24Aでは、現在のフィールドは、時間的に先行しているインターレースビデオフレームのトップフィールドとボトムフィールドとを参照する。中間にあるインターレースBフィールドは、参照フィールドとして用いられない。図24Bでは、現在のフィールドは、現在のフィールドを含むインターレースビデオフレームの直前にあるインターレースビデオフレームのトップフィールドとボトムフィールドとを参照する。図24Cおよび図24Dは、現在のPフィールドに対して1つの参照フィールドを用いる例NUMREF=0を示し、この1つの参照フィールドは、時間的に最も近い参照フィールドであるREFFIELD=0。この参照フィールドの極性は、現在のPフィールドの極性の反対である。このことは、例えば、現在のPフィールドが偶数ラインからのものであれば、参照フィールドが奇数ラインからのものであることを意味する。図24Cでは、現在のフィールドは、時間的に先行するインターレースビデオフレームのボトムフィールドを参照し、そのインターレースビデオフレーム内のより遠くにあるトップフィールドを参照しない。この場合も、中間にあるインターレースBフィールドは、使用可能な参照フィールドではない。図24Dでは、現在のフィールドは、現在のフィールドを含むインターレースビデオフレームの直前にあるインターレースビデオフレームのボトムフィールドを参照し、より遠くにあるトップフィールドは参照しない。図24Eおよび図24Fは、現在のPフィールドに対して1つの参照フィールドを用いる例NUMREF=0を示し、この1つの参照フィールドは、時間的に2番目に近い参照フィールドであるREFFIELD=1。この参照フィールドの極性は、現在のフィールドの極性と同じである。このことは、例えば、現在のフィールドが偶数ラインからのものであれば、参照フィールドも偶数ラインからのものであることを意味する。図24Eでは、現在のフィールドは、時間的に先行するインターレースビデオフレームのトップフィールドを参照し、より近くにあるボトムフィールドを参照しない。この場合も、中間にあるインターレースBフィールドは、使用可能な参照フィールドではない。図24Fでは、現在のフィールドは、より近いボトムフィールドではなくトップフィールドを参照する。あるいは、符号化器および復号器は、別の場所またはタイミング、および/または追加の場所またはタイミングにある参照フィールドを、インターレースPフィールドの動き補償予測に用いる。例えば、現在のPフィールドと同じフレーム内にある参照フィールドが可能である。または、フレームのトップフィールドとボトムフィールドのいずれかを先に符号化/復号することが可能である。D.符号化手法図20の符号化器2000のような符号化器が、複数の参照フィールドスキームのうちのどれがインターレースPフィールドの符号化に用いられているかを信号伝達する。例えば、この符号化器は、図25Aに示す手法2500を実行する。所与のインターレースPフィールドについて、符号化器は、インターレースPフィールドの動き補償予測に用いられている参照フィールドの数を信号伝達する2510。例えば、符号化器は、用いられている参照フィールドが1つか2つかを、単一ビットを用いて示す。あるいは、符号化器は、参照フィールドの数のために別の信号伝達/符号化メカニズムを用いる。符号化器は、用いられている参照フィールドが1つか2つかを決定する2520。1つの参照フィールドが用いられている場合、符号化器は、インターレースPフィールドの参照フィールド選択を信号伝達する2530。例えば、符号化器は、用いられているのが、時間的に最も近い参照フィールド先行するIまたはPフィールドなのか、時間的に2番目に近い参照フィールド先行するIまたはPフィールドなのかを、単一ビットを用いて示す。あるいは、符号化器は、Pフィールドの参照フィールド選択のために別の信号伝達/符号化メカニズムを用いる。2つの参照フィールドが用いられている場合、符号化器は、インターレースPフィールドのブロック、マクロブロック、または他の部分の動きベクトルの参照フィールド選択を信号伝達する2540。例えば、符号化器は、動きベクトルの参照フィールド選択を、動きベクトルの差分動きベクトル情報と統合的に符号化する。あるいは、符号化器は、動きベクトルの参照フィールド選択のために別の信号伝達/符号化メカニズムを用いる。符号化器は、次の動きベクトルについての信号伝達を、Pフィールドについて信号伝達すべき動きベクトルがなくなるまで繰り返す2545、2540簡略化のために、図25Aでは、参照フィールド選択の信号伝達2540の後または前後にありうる、マクロブロックおよびブロックの符号化および対応する信号伝達の各種ステージを示していない。そうすることで、図25Aでは、Pフィールドの複数の動きベクトルの参照フィールド選択の信号伝達の繰り返しに注目している。あるいは、符号化器は、複数の参照フィールドスキームのうちのどれがインターレースPフィールドの符号化に用いられているかを示すために別の手法を実行する。例えば、符号化器は、参照フィールドの数について、さらなるオプションおよび/または別のオプションを有する。簡略化のために、図25Aでは、手法2500が、符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。E.復号手法図21の復号器2100のような復号器が、複数のスキームのどれをインターレースPフィールドの復号に用いるべきかを示す信号を受け取り、復号する。例えば、この復号器は、図25Bに示す手法2550を実行する。所与のインターレースPフィールドについて、復号器は、インターレースPフィールドの動き補償予測に用いられている参照フィールドの数の信号を受け取り、復号する2560。例えば、復号器は、用いられている参照フィールドが1つか2つかを示す単一ビットを受け取り、復号する。あるいは、復号器は、参照フィールドの数のために別の復号メカニズムを用いる。復号器は、用いられている参照フィールドが1つか2つかを決定する2570。1つの参照フィールドが用いられている場合、復号器は、インターレースPフィールドの参照フィールド選択の信号を受け取り、復号する2580。例えば、復号器は、用いられているのが、時間的に最も近い参照フィールド先行するIまたはPフィールドなのか、時間的に2番目に近い参照フィールド先行するIまたはPフィールドなのかを示す単一ビットを受け取り、復号する。あるいは、復号器は、Pフィールドの参照フィールド選択のために別の復号メカニズムを用いる。2つの参照フィールドが用いられている場合、復号器は、インターレースPフィールドのブロック、マクロブロック、または他の部分の動きベクトルの参照フィールド選択の信号を受け取り、復号する2590。例えば、復号器は、動きベクトルの差分動きベクトル情報と統合的に符号化された動きベクトルの参照フィールド選択を復号する。あるいは、復号器は、動きベクトルの参照フィールド選択のために別の復号メカニズムを用いる。復号器は、次の動きベクトルについての信号の受け取りおよび復号を、Pフィールドについて信号伝達された動きベクトルがなくなるまで繰り返す2595、2590簡略化のために、図25Bでは、参照フィールド選択の受け取りおよび復号2590の後または前後にありうる、マクロブロックおよびブロックの復号の各種ステージを示していない。そうすることで、図25Bでは、Pフィールドの複数の動きベクトルの参照フィールド選択の受け取り/復号の繰り返しに注目している。あるいは、復号器は、複数の参照フィールドスキームのうちのどれがインターレースPフィールドの復号に用いられるかを決定するために別の手法を実行する。例えば、復号器は、参照フィールドの数について、さらなるオプションおよび/または別のオプションを有する。簡略化のために、図25Bでは、手法2550が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。V.インターレースPフィールドのマクロブロックモード情報の信号伝達一部の実施形態では、インターレースPフィールドのマクロブロックの各種のマクロブロックモード情報が、信号伝達のために統合的にグループ化される。インターレースPフィールドのマクロブロックは、いくつかのシンタックス要素のうちのあるものが存在したり不在であったりする態様で、多様なモードで符号化されることが可能である。特に、動き補償のタイプ例えば、1MV、4MV、またはイントラ、符号化されたブロックパターンがマクロブロックのビットストリーム内に存在するかどうか、および1MVの場合に動きベクトルデータがマクロブロックのビットストリーム内に存在するかどうか、が統合的に符号化される。マクロブロックモード情報の様々なシナリオに対して様々な符号テーブルを用いて、情報の全体的な圧縮効率をより高めることが可能である。本セクション、およびセクションXIIの複合実装形態で説明する信号伝達の具体例では、可変長符号化されたMBMODEシンタックス要素によりマクロブロックモード情報を信号伝達する。MBMODEのテーブル選択は、フィールドレベル要素である、固定長符号化されたMBMODETABによって信号伝達される。あるいは、符号化器および復号器は、他の信号および/または追加の信号を用いてマクロブロックモード情報を信号伝達する。A.様々なタイプのインターレースPフィールドのマクロブロックモード一般に、マクロブロックモードは、マクロブロックタイプ1MV、4MV、またはイントラ、マクロブロックの符号化されたブロックパターンの存在/不在、およびマクロブロックの動きベクトルデータの存在/不在を示す。マクロブロックモードシンタックス要素によって示される情報は、インターレースPフィールドが、イントラおよび/または1MVマクロブロックを有する1MVフィールドとして符号化されているか、あるいはイントラ、1MV、および/または4MVマクロブロックを有する混在MVフィールドとして符号化されているかに依存する。1MVインターレースPフィールドでは、マクロブロックのマクロブロックモード要素は、マクロブロックタイプイントラまたは1MV、マクロブロックの符号化されたブロックパターン要素の存在/不在、およびマクロブロックタイプが1MVであって、イントラでない場合に動きベクトルデータの存在/不在、を統合的に表現する。図26のテーブルは、1MVインターレースPフィールドのMBMODEによって信号伝達されるマクロブロック情報の完全なイベント空間を示す。混在MVインターレースPフィールドでは、マクロブロックのマクロブロックモード要素は、マクロブロックタイプイントラ、1MVまたは4MV、マクロブロックの符号化されたブロックパターン要素の存在/不在、およびマクロブロックタイプが1MVであって、イントラでも4MVでもでない場合に動きベクトルデータの存在/不在、を統合的に表現する。図27のテーブルは、混在MVインターレースPフィールドのMBMODEによって信号伝達されるマクロブロック情報の完全なイベント空間を示す。マクロブロックモードが、動きベクトルデータが存在することを示している場合は、動きベクトルデータが、マクロブロックレイヤ内に存在し、動きベクトル差分を信号伝達する。この動きベクトル差分は、動きベクトルを再構成するために、動きベクトルプレディクタと結合される。マクロブロックモード要素が、動きベクトルデータが存在しないことを示している場合は、動きベクトル差分がゼロであると見なされ、したがって、動きベクトルは動きベクトルプレディクタと等しくなる。したがって、マクロブロックモード要素は、動きベクトルプレディクタだけを用いる動きベクトル差分による修正がまったくない動き補償がいつ行われるかを効率的に信号伝達する。インターレースPフィールドのマクロブロックモード要素の信号伝達には、複数の異なるVLCテーブルのうちの1つを用いる。例えば、図47Hは、混在MVインターレースPフィールドのマクロブロックのMBMODEのための、8つの異なる符号テーブルであり、図47Iは、1MVインターレースPフィールドのマクロブロックのMBMODEのための、8つの異なる符号テーブルである。テーブル選択は、フィールドレイヤのところで信号伝達されるMBMODETAB要素によって示される。あるいは、符号化器および復号器は、他の符号および/または追加の符号を用いてマクロブロックモード情報およびテーブル選択を信号伝達する。B.符号化手法図20の符号化器2000のような符号化器が、インターレースPフィールドのマクロブロックのマクロブロックモード情報を符号化する。例えば、この符号化器は、図28Aに示す手法2800を実行する。所与のインターレースPフィールドについて、符号化器は、インターレースPフィールドのマクロブロックのマクロブロックモード情報を符号化するために用いる符号テーブルを選択する2810。例えば、符号化器は、図47Hまたは図47Iに示すMBMODE用VLCテーブルのうちの1つを選択する。あるいは、符号化器は、他のテーブルおよび/または追加のテーブルの中から選択する。符号化器は、選択した符号テーブルをビットストリーム内で信号伝達する2820。例えば、符号化器は、所与のタイプのインターレースPフィールドについて選択した符号テーブルを示すFLCを信号伝達する。あるいは、符号化器は、別の符号テーブル選択用信号伝達メカニズム例えば、符号テーブル選択にVLCを用いるメカニズムを用いる。符号化器は、マクロブロックのマクロブロックモードを、使用可能な複数のマクロブロックモードの中から選択する2830。例えば、符号化器は、マクロブロックタイプ、符号化されたブロックパターンが存在するかどうか、およびマクロブロックタイプについて適用可能である場合に動きベクトルデータが存在するかどうか、を示すマクロブロックモードを選択する。MBMODEのオプションの様々な組合せを図26および図27にリストした。あるいは、符号化器は、マクロブロックオプションの他の組合せおよび/または追加の組合せのために、他のマクロブロックモードおよび/または追加のマクロブロックモードの中から選択する。符号化器は、選択したマクロブロックモードを、選択した符号テーブルを用いて信号伝達する2840。一般に、符号化器は、マクロブロックモードを、選択したVLCテーブルを用いてVLCとして信号伝達する。符号化器は、マクロブロックモードの選択および信号伝達を、Pフィールドについて信号伝達すべきマクロブロックモードがなくなるまで繰り返す2845、2830、2840簡略化のために、図28Aでは、選択されたマクロブロックモードの信号伝達2840の後または前後にありうる、マクロブロックおよびブロックの符号化および対応する信号伝達の各種ステージを示していない。そうすることで、図28Aでは、Pフィールドについて選択された符号テーブルを用いる、Pフィールド内の複数のマクロブロックのマクロブロックモードの信号伝達の繰り返しに注目している。あるいは、符号化器は、インターレースPフィールド内の複数のマクロブロックのマクロブロックモード情報を符号化するために、別の手法を実行する。例えば、図28Aでは、モードを選択する前に符号テーブルを選択するが、多くの一般的な符号化シナリオでは、符号化器は、最初にマクロブロックのマクロブロックモードを選択し、それらの選択したマクロブロックモードを効率的に信号伝達するための符号テーブルを選択してから、符号テーブル選択とモードとを信号伝達する。さらに、図28Aでは、インターレースPフィールドごとに符号テーブル選択を実行するが、別の方法として、符号テーブルが、より頻繁に、またはより少ない頻度で、または不定期に選択されたり、または符号化器が符号テーブル選択を完全にスキップすなわち、常に同じ符号テーブルを使用したりする。または、符号化器は、コンテキスト情報から符号テーブルを選択することが可能であるこれにより、符号テーブル選択の信号伝達が不要になる。簡略化のために、図28Aでは、手法2800が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。C.復号手法図21の復号器2100のような復号器が、インターレースPフィールドのマクロブロックのマクロブロックモード情報を受け取り、復号する。例えば、この復号器は、図28Bに示す手法2850を実行する。所与のインターレースPフィールドについて、復号器は、インターレースPフィールドのマクロブロックのマクロブロックモード情報の復号に使用される符号テーブルの符号テーブル選択を受け取り、復号する2860。例えば、復号器は、所与のタイプのインターレースPフィールドについて選択された符号テーブルを示すFLCを受け取り、復号する。あるいは、復号器は、別の符号テーブル選択用信号伝達メカニズム例えば、符号テーブル選択にVLCを用いるメカニズムを用いる。復号器は、復号した符号テーブル選択および場合によって他の情報に基づいて符号テーブルを選択する2870。例えば、復号器は、図47Hまたは図47Iに示すMBMODE用VLCテーブルのうちの1つを選択する。あるいは、復号器は、他のテーブルおよび/または追加のテーブルの中から選択する。復号器は、マクロブロックのマクロブロックモード情報を受け取り、復号する2880。例えば、マクロブロックモード選択は、マクロブロックタイプ、符号化されたブロックパターンが存在するかどうか、およびマクロブロックタイプについて適用可能である場合に動きベクトルデータが存在するかどうかを示す。これらのMBMODEのオプションの様々な組合せを図26および図27にリストした。あるいは、マクロブロックモードは、マクロブロックオプションの他の組合せおよび/または追加の組合せのための、他のマクロブロックモードおよび/または追加のマクロブロックモードのうちの1つである。復号器は、次のマクロブロックのマクロブロックモードの受け取りおよび復号を、Pフィールドについて受け取り、復号すべきマクロブロックモードがなくなるまで繰り返す2885、2880簡略化のために、図28Bでは、マクロブロックモード選択の受け取りおよび復号2880の後または前後にありうる、マクロブロックおよびブロックの復号の各種ステージを示していない。そうすることで、図28Bでは、Pフィールドについて選択された符号テーブルを用いる、Pフィールド内の複数のマクロブロックのマクロブロックモード選択の受け取り/復号の繰り返しに注目している。あるいは、復号器は、インターレースPフィールドのマクロブロックのマクロブロックモード情報を復号するために、別の手法を実行する。例えば、図28Bでは、インターレースPフィールドごとに符号テーブル選択を実行するが、別の方法として、符号テーブルが、より頻繁に、またはより少ない頻度で、または不定期に選択されたり、復号器が符号テーブル選択を完全にスキップすなわち、常に同じ符号テーブルを使用したりする。または、復号器が、コンテキスト情報から符号テーブルを選択することが可能であるこれにより、符号テーブル選択の受け取りおよび復号が不要になる。簡略化のために、図28Bでは、手法2850が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。VI.参照フィールドが2つであるインターレースPフィールドにおける参照フィールド選択一部の実施形態では、単一の、現在のインターレースPフィールドの動き補償予測を行う際に、既に符号化/復号されている2つのフィールドを参照フィールドとして用いる例についてはセクションIVを参照されたい。信号伝達される情報は、動きベクトルを使用する各マクロブロックまたはブロックに対して、2つのフィールドのどれが参照を与えるかを示す。このセクションでは、現在のマクロブロックまたはブロックを符号化または復号する際の動き補償予測情報を与えるために、既に符号化/復号されている複数の参照フィールドのどれが用いられるかを効率的に信号伝達するための様々な手法およびツールについて説明する。例えば、符号化器および復号器は、インターレースPフィールド内の既に符号化されている動きベクトルに基づいて、現在のマクロブロックまたはブロックに対する優勢的および非優勢的な参照フィールドを暗黙のうちに導出するまたは、これに対応して、符号化器および復号器は、優勢的および非優勢的な動きベクトルプレディクタ極性を導出する。そして、信号伝達される情報は、現在のマクロブロックまたはブロックの動き補償に用いられるのが優勢的な参照フィールドか、非優勢的な参照フィールドかを示す。A.優勢的および非優勢的な参照フィールドおよびプレディクタインターレースフィールドを符号化するには、動き補償を用いないかIフィールド、順方向動き補償を用いるかPフィールド、あるいは順方向および逆方向動き補償を用いるBフィールド。インターレースPフィールドは、2つの参照フィールド既に符号化/復号されているIフィールドまたはPフィールドを参照することが可能である。図24Aおよび図24Bは、現在のPフィールドに対して2つの参照フィールドを用いる例を示す。これら2つの参照フィールドは、極性が反対である。一方の参照フィールドがビデオフレームの奇数ラインを表し、もう一方の参照フィールドがビデオフレームの偶数ラインを表す後者のビデオフレームは、奇数ラインの参照フィールドを含むフレームと同じフレームであるとは限らない。現在符号化中または復号中のPフィールドは、既に符号化/復号されている2つのフィールドの一方または両方を、動き補償の参照として用いることが可能である。したがって、Pフィールドのマクロブロックまたはブロックの動きベクトルデータは、一般に、1どのフィールドを動き補償の参照フィールドとして用いるか、および2動き補償で用いるべきサンプル値の、その参照フィールドにおける変位/位置、を何らかの形で示す。参照フィールド選択情報の信号伝達では、非効率な数のビットが消費される可能性がある。しかしながら、このビット数は、所与の動きベクトルに対して、どの参照フィールドが用いられるかを予測することと、およびその予測された参照フィールドが実際にその動きベクトルの参照フィールドとして用いられているかどうかを信号伝達すること、によって、低減が可能である。例えば、インターフェースPフィールドにおいて動き補償を用いる各マクロブロックまたはブロックについて、符号化器または復号器は、隣接するマクロブロックまたはブロックから、既に符号化/復号されている最大3つの動きベクトルを、解析する。符号化器または復号器は、その解析結果から、優勢的および非優勢的な参照フィールドを導出する。要するに、符号化器または復号器は、可能な2つの参照フィールドのどれが、隣接するマクロブロックまたはブロックの大多数の動きベクトルによって用いられるかを決定する。隣接するマクロブロックまたはブロックの動きベクトルのうちのより多くによって参照されているフィールドが、優勢的な参照フィールドであり、そうでないほうの参照フィールドが、非優勢的な参照フィールドである。同様に、優勢的な参照フィールドの極性が、優勢的な動きベクトルプレディクタ極性であり、非優勢的な参照フィールドの極性が、非優勢的な動きベクトルプレディクタ極性である。図29の擬似コードは、符号化器または復号器が優勢的および非優勢的な参照フィールドを決定する一手法を示す。この擬似コードでの用語samefield同じフィールドおよびoppositefield反対のフィールドは、現在のインターレースPフィールドを基準にしている。例えば、現在のPフィールドが偶数フィールドであれば、samefieldは偶数ラインの参照フィールドであり、oppositefieldは奇数ラインの参照フィールドである。図5A~図10は、プレディクタA、B、およびCが取得される、隣接するマクロブロックおよびブロックの位置を示す。図29の擬似コードでは、優勢的なフィールドは、大多数の動きベクトルプレディクタ候補によって参照されるフィールドである。同数の場合は、反対のフィールドから導出された動きベクトルが、優勢的な動きベクトルプレディクタであると見なされる。イントラ符号化されたマクロブロックは、優勢的/非優勢的なプレディクタの算出では考慮されない。すべての候補プレディクタのマクロブロックがイントラ符号化されている場合、優勢的および非優勢的な動きベクトルプレディクタはゼロに設定され、優勢的なプレディクタは、反対のフィールドからのものであると見なされる。あるいは、符号化器および復号器は、隣接するマクロブロックまたはブロックからの他の動きベクトルおよび/または追加の動きベクトルを解析し、かつ/または、別の決定論理を適用して優勢的および非優勢的な参照フィールドを決定する。または、符号化器および復号器は、別のメカニズムを用いて、インターレースPフィールドの所与の動きベクトルについてどの参照フィールドが選択されるかを予測する。場合によっては、優勢的あるいは非優勢的のどちらのフィールドが使用されるかを示す1ビットの情報が、差分動きベクトル情報と統合的に符号化される。したがって、この1ビットの情報のビット/シンボルは、真のシンボルエントロピーとより正確に一致することが可能である。例えば、図30の擬似コードに示すように、優勢的/非優勢的選択子が、動きベクトル差分の垂直方向成分の一部として信号伝達される。この擬似コードでは、MVYが動きベクトルの垂直方向成分であり、PMVYが動きベクトルプレディクタの垂直方向成分である。本質的には、垂直方向の動きベクトル差分は、次のように、参照フィールド選択子と垂直方向オフセット差分とを統合的に符号化する。DMVY=MVY-PMVY2pここで、優勢的な参照フィールドが用いられている場合はp=0であり、非優勢的な参照フィールドが用いられている場合はp=1である。数値的な例として、現在のブロックが偶数極性であり、動きベクトルの実際の参照フィールドが偶数極性であり、優勢的なプレディクタがoppfield言い換えると、優勢的な参照フィールドが奇数極性の参照フィールドであるとする。さらに、動きベクトルの垂直方向変位が7単位MVY=7であり、動きベクトルプレディクタの垂直方向成分が4単位PMVY=4であるとする。現在の参照フィールドおよび優勢的なプレディクタが反対の極性なので、DMVY=7-421=7である。あるいは、優勢的/非優勢的選択子は、何らかの別の形で、動きベクトル差分情報と統合的に符号化される。または、優勢的/非優勢的選択子は、別のメカニズムによって信号伝達される。B.符号化手法図20の符号化器2000のような符号化器が、参照フィールドが2つであるインターレースPフィールドの動きベクトルの符号化時に、動きベクトルプレディクタ候補の優勢的および非優勢的な参照フィールド極性を決定する。例えば、この符号化器は、現在のマクロブロックまたはブロックの動きベクトルについて、図31Aに示す手法3100を実行する。一般に、符号化器は、2つの参照フィールドにおいて何らかの形の動き推定を実行して、動きベクトルおよび参照フィールドを取得する。その動きベクトルを、手法3100に従って符号化する。符号化器は、同じ参照フィールド極性の動きベクトルプレディクタを動きベクトルとして決定する3110。例えば、符号化器は、セクションVIIで説明するように、動きベクトルに関連付けられた参照フィールドの動きベクトルプレディクタを決定する。あるいは、符号化器は、別のメカニズムを用いて動きベクトルプレディクタを決定する。符号化器は、動きベクトルの優勢的および非優勢的な参照フィールド極性を決定する3120。例えば、符号化器は、図29の擬似コードに従う。あるいは、符号化器は、別の手法を用いて、優勢極性および非優勢極性を決定する。符号化器は、優勢/非優勢の極性選択子をビットストリーム内で信号伝達する3125。この優勢/非優勢の極性選択子は、動きベクトルに関連付けられた動きベクトルプレディクタおよび参照フィールドに対して用いるべき極性が優勢的か非優勢的かを示す。例えば、符号化器は、統合VLCを用いて、優勢的/非優勢の極性選択子を、他の情報と統合的に符号化する。あるいは、符号化器は、優勢的/非優勢の極性選択子を、別のメカニズム、例えば、選択子を示すビットの算術符号化、を用いて信号伝達する。動きベクトルプレディクタの参照フィールド極性を予測すると、選択子情報のエントロピーが小さくなり、選択子情報のより効率的な符号化が可能になる。符号化器は、動きベクトル予測および動きベクトルから動きベクトル差分を算出し3130、その動きベクトル差分の情報を信号伝達する3140。あるいは、符号化器は、別の手法を用いて、参照フィールドが2つであるインターレースPフィールドの動きベクトルの符号化時に、動きベクトル予測の優勢/非優勢の極性を決定する。さらに、図31Aでは、優勢/非優勢の極性選択子と動きベクトル差分情報とを別々に信号伝達しているが、様々な実施形態において、これらの厳密な情報が統合的に信号伝達される。ほかにも様々な順序変更が可能である。例えば、選択子の信号伝達のオーバーヘッドのコストを動きベクトル選択処理に織り込むために優勢/非優勢の極性を決定してから動きベクトルを決定することが可能である。簡略化のために、図31Aでは、手法3100が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。C.復号手法図21の復号器2100のような復号器が、参照フィールドが2つであるインターレースPフィールドの動きベクトルの復号時に、動きベクトルプレディクタ候補の優勢的および非優勢的な参照フィールド極性を決定する。例えば、この復号器は、図31Bに示す手法3150を実行する。復号器は、現在のマクロブロックまたはブロックの動きベクトルの優勢的および非優勢的参照フィールド極性を決定する3160。例えば、復号器は、図29の擬似コードに従う。あるいは、復号器は、別の手法を用いて、優勢および非優勢の極性を決定する。復号器は、ビットストリーム内の優勢/非優勢の極性選択子を受け取り、復号する3165。優勢/非優勢の極性選択子は、動きベクトルに関連付けられた動きベクトルプレディクタおよび参照フィールドに対して用いるべき極性が優勢的か非優勢的かを示す。例えば、復号器は、統合VLCを用いて他の情報と統合的に符号化されている優勢/非優勢の極性選択子を受け取り、復号する。あるいは、復号器は、信号伝達された優勢/非優勢の極性選択子を受け取り、別のメカニズム例えば、選択子を示すビットの算術復号を用いて復号する。復号器は、動きベクトルに用いられる、参照フィールドの動きベクトルプレディクタを決定する3170。例えば、復号器は、セクションVIIで説明するように、信号伝達された極性に対する動きベクトルプレディクタを決定する。あるいは、復号器は、別のメカニズムを用いて動きベクトルプレディクタを決定する。復号器は、動きベクトル差分の情報を受け取って復号し3180、動きベクトル差分と動きベクトルプレディクタとから動きベクトルを再構成する3190。あるいは、復号器は、別の手法を用いて、参照フィールドが2つであるインターレースPフィールドの動きベクトルの復号時に、動きベクトル予測の優勢/非優勢の極性を決定する。例えば、図31Bでは、優勢/非優勢の極性選択子と動きベクトル差分情報とを別々に信号伝達しているが、代替方法では、これらの情報が統合的に信号伝達される。さらに他の様々な順序変更が可能である。簡略化のために、図31Bでは、手法3150が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。VII.インターレースPフィールドのハイブリッド動きベクトル予測一部の実施形態では、動きベクトルの信号伝達に関連するビットレートを下げるために、動きベクトルを、動きベクトルプレディクタに対する差分として信号伝達する。動きベクトル差分の信号伝達の性能は、動きベクトル予測の質に部分的に依存する。動きベクトル予測の質は、現在のマクロブロック、ブロックなどの周辺の領域において複数の候補動きベクトルプレディクタが考慮される場合に高まる。しかしながら、場合によっては、複数の候補プレディクタを用いると、動きベクトル予測の質が低下する。これは、例えば、動きベクトルプレディクタが、多様な例えば、動きベクトルプレディクタ間の分散が大きい候補プレディクタの集合のメジアンとして算出される場合に起こる。したがって、一部の実施形態では、符号化器および復号器は、インターレースPフィールドの動きベクトルのハイブリッド動きベクトル予測を実行する。現在のマクロブロックまたはブロックと因果関係を有する近傍を構成するベクトルが、何らかの基準からみて多様である場合に、ハイブリッド動きベクトル予測モードが用いられる。このモードでは、候補プレディクタの集合のメジアンを動きベクトルプレディクタとして用いる代わりに、その集合にある特定の動きベクトル例えば、上のプレディクタ、左のプレディクタを、選択子ビットまたは符号ワードによって信号伝達する。これにより、インターレースPフィールドにおける動きの不連続点での動きベクトル予測を向上させることが可能になる。参照フィールドが2つであるインターレースPフィールドの場合は、ハイブリッド動きベクトル予測条件のチェック時に、優勢極性がさらに考慮される。A.インターレースPフィールドの動きベクトル予測ハイブリッド動きベクトル予測は、インターレースPフィールドの通常の動きベクトル予測の特殊なケースである。既述のように、動きベクトルは、動きベクトルプレディクタにビットストリーム内で信号伝達される動きベクトル差分を加算することによって再構成される。プレディクタは、最大3つの隣接する動きベクトルから算出される。図5A~図10は、動きベクトル予測のためにプレディクタA、B、およびCが取得される、隣接するマクロブロックおよびブロックの位置を示すこれらの図は、プログレッシブPフレームのマクロブロックおよびブロックを示しているが、セクションVIで説明するように、インターレースPフィールドのマクロブロックおよびブロックにも当てはまる。インターレースPフィールドが1つの先行フィールドだけを参照する場合は、Pフィールドの動きベクトルのそれぞれに対して動きベクトルプレディクタが1つずつ算出される。例えば、図51Aおよび図51Bまたは代替として図60Aおよび図60Bの擬似コードは、セクションXIIで詳述する、参照フィールドが1つであるインターレースPフィールドの動きベクトルに対して動きベクトルプレディクタが算出される要素を示す。インターレースPフィールドに対して2つの参照フィールドが用いられる場合は、Pフィールドの動きベクトルのそれぞれに対して2つずつの動きベクトルプレディクタが可能である。両方の動きベクトルプレディクタを算出してから一方を選択することも可能であり、最初にプレディクタの選択を決定することによって一方の動きベクトルプレディクタだけを算出することも可能である。一方の候補動きベクトルプレディクタは優勢的な参照フィールドにあり、もう一方の候補動きベクトルプレディクタは非優勢的な参照フィールドにある用語の優勢的および非優勢的は、例えば、セクションVIで説明したとおりである。優勢的な参照フィールドと非優勢的な参照フィールドは反対の極性を有するので、一方の動きベクトルプレディクタは現在のPフィールドと同じ極性の参照フィールドにあり、もう一方の動きベクトルプレディクタは現在のPフィールドと反対の極性の参照フィールドにある。例えば、図52A~図52Nの擬似コードおよびテーブルは、セクションXIIで詳述する、参照フィールドが2つであるPフィールドの動きベクトルの動きベクトルプレディクタを算出する方法を示す。変数samefieldpred_xおよびsamefieldpred_yは、それぞれ、同じフィールドにある動きベクトルプレディクタの水平方向成分および垂直方向成分を表し、変数oppositefieldpred_xおよびoppositefieldpred_yは、それぞれ、反対のフィールドにある動きベクトルプレディクタの水平方向成分および垂直方向成分を表す。変数dominantpredictorは、優勢的なプレディクタがどのフィールドに含まれるかを示す。predictor_flagは、動きベクトルに対して用いられているプレディクタが優勢的か非優勢的かを示す。あるいは、図61A~図61Fの擬似コードを用いる。B.インターレースPフィールドのハイブリッド動きベクトル予測動きベクトルのハイブリッド動きベクトル予測では、符号化器および復号器が、動きベクトルのハイブリッド動きベクトル予測条件をチェックする。この条件は、一般に、動きベクトルプレディクタの分散の度合いに関連する。評価されるプレディクタは、候補動きベクトルプレディクタおよび/または通常の動きベクトル予測を用いて算出される動きベクトルプレディクタであることが可能である。条件が満たされた場合例えば、分散の度合いが高い場合は、一般に、通常の動きベクトルプレディクタではなく、オリジナルの候補動きベクトルプレディクタのうちの1つが用いられる。符号化器は、どのハイブリッド動きベクトルプレディクタを用いるべきかを信号伝達し、復号器は、その信号を受け取り、復号する。ハイブリッド動きベクトルプレディクタは、インタープレディクタの分散が小さい場合よくあるケースであるには用いられない。符号化器および復号器は、インターレースPフィールドの各動きベクトルについて、その動きベクトルがマクロブロック用であれ、ブロック用であれ、それ以外であれ、ハイブリッド動きベクトル条件をチェックする。言い換えると、符号化器および復号器は、各動きベクトルについて、ハイブリッド動きベクトル条件がトリガされていて、それゆえ、プレディクタ選択信号が期待されるかどうかを決定する。あるいは、符号化器および復号器は、インターレースPフィールドの一部の動きベクトルについてのみハイブリッド動きベクトル条件をチェックする。インターレースPフィールドのハイブリッド動きベクトル予測の利点は、良好な動きベクトルプレディクタを選択するために、算出されたプレディクタと優勢極性とを用いる点である。多彩な実験の結果から、後述するハイブリッド動きベクトル予測は、ハイブリッド動きベクトル予測を行わない動きベクトル予測より、さらにはハイブリッド動きベクトル予測の従来の実装より、大幅にすぐれた圧縮/画質をもたらすことがわかった。のみならず、ハイブリッドベクトル予測チェックに必要な追加算出のコストはあまり大きくない。一部の実施形態では、符号化器または復号器は、オリジナルの候補動きベクトルプレディクタの集合に対して、セクションVII.Aで説明した手法によって決定される通常の動きベクトルプレディクタを検査する。通常の動きベクトルプレディクタは、プレディクタA、B、および/またはCの成分ごとのメジアンであり、符号化器または復号器はそれを、プレディクタAおよびプレディクタCを基準にして検査する。この検査は、通常の動きベクトルプレディクタと候補との間の分散が大きいかどうかをチェックする。大きい場合は、真の動きベクトルが、メジアン操作から導出されたプレディクタよりも、候補プレディクタA、B、またはCのいずれかに近い可能性が大きい。候補プレディクタが互いに離れている場合は、これらの成分ごとのメジアンは良好な予測を与えないので、真の動きベクトルがAに近いかCに近いかを示す追加信号を送るほうが効率的である。プレディクタAがその近いプレディクタである場合は、プレディクタAが現在の動きベクトルの動きベクトルプレディクタとして用いられ、プレディクタCがその近いプレディクタである場合は、プレディクタCが現在の動きベクトルの動きベクトルプレディクタとして用いられる。図32の擬似コードは、復号時の、そのようなハイブリッド動きベクトル予測を示す。変数predictor_pre_xおよびpredictor_pre_yは、それぞれ、通常のハイブリッド動きベクトル予測を用いて算出される水平方向および垂直方向の動きベクトルプレディクタである。変数predictor_post_xおよびpredictor_post_yは、それぞれ、ハイブリッド動きベクトル予測後の、水平方向および垂直方向の動きベクトルプレディクタである。この擬似コードでは、動きベクトルプレディクタ選択がビットストリーム内で明示的に符号化されているかどうかを調べるために、通常の動きベクトルプレディクタが、プレディクタAおよびCに対して検査される。そうなっている場合は、動きベクトルプレディクタとしてプレディクタAを用いるか、プレディクタCを用いるかを示す単一ビットがビットストリーム内に存在する。そうなっていない場合は、通常の動きベクトルプレディクタが用いられる。他の様々な条件例えば、AまたはCがイントラである場合の、通常の動きベクトルの大きさもチェックすることが可能である。AまたはCがイントラである場合は、AまたはCに対応する動きがそれぞれゼロであると見なされる。参照フィールドが2つであるPフィールドの動きベクトルの場合は、すべてのプレディクタが同一極性を有する。一部の実施形態では、参照フィールド極性は、優勢的/非優勢的なプレディクタ極性と、差分動きベクトル復号処理で得られる選択子信号とによって決定される。例えば、反対のフィールドプレディクタが用いられている場合は、predictorprexoppositefieldpredx、predictorprexoppositefieldpredy、predictorAxoppositefieldpredAx、predictorAyoppositefieldpredAy、predictorCxoppositefieldpredCx、およびpredictorCyoppositefieldpredCyである。同じフィールドプレディクタが用いられている場合は、predictorprexsamefieldpredx、predictorprexsamefieldpredy、predictorAxsamefieldpredAx、predictorAysamefieldpredAy、predictorCxsamefieldpredCx、およびpredictorCysamefieldpredCyである。oppositefieldpredおよびsamefieldpredの値は、例えば、図52A~図52Jまたは図61A~図61Fの擬似コードにあるように算出される。図53は、複合実装形態セクションXIIを参照におけるハイブリッド動きベクトル予測の代替擬似コードである。あるいは、符号化器および復号器は、別のハイブリッド動きベクトル予測条件例えば、他のプレディクタおよび/または追加のプレディクタを検討する条件、動きの不連続を検出するために別の決定論理を用いる条件、および/または別の分散しきい値32以外を用いる条件を検査する。2つの候補プレディクタ例えば、AおよびCから選択する単純な信号は、動きベクトルごとに1ビットである。あるいは、符号化器および復号器は、別の信号伝達メカニズム例えば、選択子ビットと他の情報動きベクトルデータなどとを統合的に信号伝達するメカニズムを用いる。C.符号化手法図20の符号化器2000のような符号化器が、インターレースPフィールドの動きベクトルの符号化時にハイブリッド動きベクトル予測を行う。例えば、この符号化器は、現在のマクロブロックまたはブロックの動きベクトルについて、図33Aに示す手法3300を実行する。符号化器は、動きベクトルの動きベクトルプレディクタを決定する3310。例えば、符号化器は、セクションVII.Aで説明した手法を用いて、動きベクトルプレディクタを決定する。あるいは、符号化器は、別の手法を用いて動きベクトルプレディクタを決定する。次に符号化器は、その動きベクトルプレディクタのハイブリッド動きベクトル予測条件をチェックする3320。例えば、符号化器は、図32に示した、復号器側の擬似コードを逆の形で反映した処理を実行する手法techniquethatmirrorsthedecodersidepseudocodeを用いる。あるいは、符号化器は、別のハイブリッド動きベクトル予測条件をチェックする対応する復号器は、符号化器と同じハイブリッド動きベクトル予測条件を、その条件がどのようなものであれ、チェックする。これは、プレディクタ信号情報の存在/不在が暗黙のうちに符号化器および対応する復号器によって導出されるからである。ハイブリッド動きベクトル条件がトリガされていない場合判断3325からのいいえのパス、符号化器は、最初に決定された動きベクトル予測子を用いる。これに対し、ハイブリッド動きベクトル条件がトリガされている場合判断3325からのはいのパス、符号化器は、用いるハイブリッド動きベクトルプレディクタを選択する3330。例えば、符号化器は、隣接する動きベクトルである、上の候補プレディクタおよび左の候補プレディクタから選択する。あるいは、符号化器は、他のプレディクタおよび/または追加のプレディクタの中から選択する。次に符号化器は、選択したハイブリッド動きベクトルプレディクタを信号伝達する3340。例えば、符号化器は、動きベクトルプレディクタとして用いられるのが上の候補プレディクタか、左の候補プレディクタかを示す単一ビットを送信する。あるいは、符号化器は、別の信号伝達メカニズムを用いる。符号化器は、例えば、マクロブロックタイプに応じてインターレースPフィールドのすべての動きベクトルに対して、または、インターレースPフィールドの特定の動きベクトルに対してのみ、手法3300を実行する。簡略化のために、図33Aでは、手法3300が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。D.復号手法図21の復号器2100のような復号器が、インターレースPフィールドの動きベクトルの復号時にハイブリッド動きベクトル予測を行う。例えば、この復号器は、現在のマクロブロックまたはブロックの動きベクトルについて、図33Bに示す手法3350を実行する。復号器は、動きベクトルの動きベクトルプレディクタを決定する3360。例えば、復号器は、セクションVII.Aで説明した手法を用いて、動きベクトルプレディクタを決定する。あるいは、復号器は、別の手法を用いて動きベクトルプレディクタを決定する。次に復号器は、その動きベクトルプレディクタのハイブリッド動きベクトル予測条件をチェックする3370。例えば、復号器は、図32の擬似コードに従う。あるいは、復号器は、別のハイブリッド動きベクトル予測条件をチェックする復号器は、対応する符号化器と同じハイブリッド動きベクトル予測条件を、その条件がどのようなものであれ、チェックする。ハイブリッド動きベクトル条件がトリガされていない場合判断3375からのいいえのパス、復号器は、最初に決定された動きベクトルプレディクタを用いる。これに対し、ハイブリッド動きベクトル条件がトリガされている場合判断3375からのはいのパス、復号器は、選択されたハイブリッド動きベクトルプレディクタを示す信号を受け取り、復号する3380。例えば、復号器は、動きベクトルプレディクタとして用いられるのが上の候補プレディクタか、左の候補プレディクタかを示す単一ビットを取得する。あるいは、復号器は、別の信号伝達メカニズムと連係して動作する。次に復号器は、用いるハイブリッド動きベクトルプレディクタを選択する3390。例えば、復号器は、隣接する動きベクトルである、上の候補プレディクタおよび左の候補プレディクタから選択する。あるいは、復号器は、他のプレディクタおよび/または追加のプレディクタの中から選択する。復号器は、例えば、マクロブロックタイプに応じてインターレースPフィールドのすべての動きベクトルに対して、または、インターレースPフィールドの特定の動きベクトルに対してのみ、手法3350を実行する。簡略化のために、図33Bでは、手法3350が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。VIII.動きベクトルブロックパターン一部の実施形態では、マクロブロックが複数の動きベクトルを有することが可能である。例えば、混在MVインターレースPフィールドのマクロブロックは、1つの動きベクトルまたは4つの動きベクトルマクロブロックのルミナンスブロックごとに1つを有するか、イントラ符号化される動きベクトルを有しないことが可能である。同様に、インターレースPフレームのフィールド符号化されたマクロブロックは、2つの動きベクトルフィールドごとに1つまたは4つの動きベクトルフィールドごとに2つ有することが可能であり、インターレースPフレームのフレーム符号化されたマクロブロックは、1つの動きベクトルまたは4つの動きベクトルルミナンスブロックごとに1つを有することが可能である。2MVまたは4MVマクロブロックは、信号伝達すべき関連付けられた動きベクトルデータ例えば、差分を有しない場合には、スキップされたものとして信号伝達されることが可能である。その場合には、動きベクトルプレディクタが、そのマクロブロックの動きベクトルとして用いられるのが普通である。または、マクロブロックは、1つの動きベクトルについては信号伝達すべき非ゼロの動きベクトルデータを有し、0,0の動きベクトル差分を有する別の動きベクトルについては有しないことが可能である。すべての動きベクトルではないが少なくとも1つの動きベクトルについて0,0の差分を有する2MVまたは4MVマクロブロックの場合は、動きベクトルデータを信号伝達することで非効率的な数のビットが消費される可能性がある。したがって、一部の実施形態では、符号化器または復号器は、複数の動きベクトルを有するマクロブロックの動きベクトルデータの存在または不在を効率的に信号伝達する信号伝達メカニズムを用いる。マクロブロックの、動きベクトルの符号化されたブロックパターンまたは短縮して動きベクトルブロックパターンは、どのブロック、フィールド、半フィールドなどが、ビットストリーム内で信号伝達される動きベクトルデータを有し、どのブロック、フィールド、半フィールドなどが有していないかを、動きベクトルごとに示す。動きベクトルブロックパターンは、マクロブロックの動きベクトルデータのパターンを統合的に信号伝達する。これによって、符号化器および復号器は、ブロック間に存在する空間的相関を活用することが可能になる。さらに、動きベクトルデータの存在/不在を動きベクトルブロックパターンで信号伝達することにより、この情報を、変換係数データCBPCY要素を有するデータなどの存在/不在に関する信号伝達と切り離す形で単純に信号伝達することが可能になる。本セクション、およびセクションXIIの複合実装形態で説明する信号伝達の具体例では、可変長符号化された2MVBPおよび4MVBPシンタックス要素により動きベクトルブロックパターンを信号伝達する。2MVBPおよび4MVBPについてのテーブル選択は、それぞれ、固定長符号化された2MVBPTABおよび4MVBPTAB要素によって信号伝達される。あるいは、符号化器および復号器は、他の信号および/または追加の信号を用いて動きベクトルブロックパターンを信号伝達する。A.動きベクトルブロックパターン動きベクトルブロックパターンは、複数の動きベクトルを有するマクロブロックについて、どの動きベクトルが符号化されているか、および、どの動きベクトルが符号化されていないかを示す。動きベクトルが符号化されるのは、その動きベクトルの差分動きベクトルが非ゼロの場合すなわち、信号伝達される動きベクトルが、その動きベクトルプレディクタと異なる場合である。そうでない場合は、動きベクトルは符号化されない。マクロブロックが4つの動きベクトルを有する場合、動きベクトルブロックパターンは4ビットを有し、各ビットが4つの動きベクトルのそれぞれに対応する。動きベクトルブロックパターン内のビットの並びは、インターレースPフィールドの4MVマクロブロックまたはインターレースPフレームの4MVフレーム符号化されたマクロブロックの場合には、図34に示すブロック並びに従う。インターレースPフレームの4MVフィールド符号化されたマクロブロックの場合、動きベクトルブロックパターンのビット並びは、左上のフィールドの動きベクトル、右上のフィールドの動きベクトル、左下のフィールドの動きベクトル、および右下のフィールドの動きベクトルである。マクロブロックが2つの動きベクトルを有する場合、動きベクトルブロックパターンは2ビットを有し、各ビットが2つの動きベクトルのそれぞれに対応する。インターレースPフレームの2MVフィールド符号化されたマクロブロックの場合、動きベクトルブロックパターンのビット並びは、単純に、トップフィールドの動きベクトル、そしてボトムフィールドの動きベクトルである。動きベクトルブロックパターン要素を信号伝達するために、複数の異なるVLCテーブルのうちの1つを用いることが可能である。例えば、図47Jは、4MVBPの場合の4つの異なる符号テーブルを示し、図47Kは、2MVBPの場合の4つの異なる符号テーブルを示す。テーブル選択は、ピクチャレイヤにおいて信号伝達される4MVBPTABまたは2MVBPTAB要素によって示される。あるいは、符号化器および復号器は、他の符号および/または追加の符号を用いて動きベクトルブロックパターン情報およびテーブル選択を信号伝達する。参照フィールドが2つであるインターレースPフィールドのマクロブロックについては、どの動きベクトルが符号化されているかを決定する追加規則が適用される。符号化されていない動きベクトルは、セクションVIで説明したように、優勢的なプレディクタを有する。符号化されている動きベクトルは、ゼロ値の動きベクトル差分を有することが可能であるが、非優勢的なプレディクタを信号伝達することが可能である。または、符号化されている動きベクトルは、非ゼロの差分動きベクトルを有することが可能であり、優勢的なプレディクタでも非優勢的なプレディクタでも信号伝達することが可能である。あるいは、符号化器および復号器は、他の種類および/または追加の種類のピクチャの動きベクトルブロックパターン、他の種類および/または追加の種類のマクロブロックの動きベクトルブロックパターン、他の数および/または追加の数の動きベクトルの動きベクトルブロックパターン、および/または異なるビット位置の動きベクトルブロックパターンを用いる。B.符号化手法図20の符号化器2000のような符号化器が、動きベクトルブロックパターンを用いて、マクロブロックの動きベクトルデータを符号化する。例えば、この符号化器は、図35Aに示す手法3500を実行する。複数の動きベクトルを有する所与のマクロブロックに対して、符号化器は、そのマクロブロックの動きベクトルブロックパターンを決定する3510。例えば、符号化器は、インターレースPフィールドの4MVマクロブロックについて、またはインターレースPフレームの4MVフィールド符号化またはフレーム符号化されたマクロブロックについて、4つの動きベクトルブロックパターンを決定する。または、符号化器は、インターレースPフレームの2MVフィールド符号化されたマクロブロックについて、2つの動きベクトルブロックパターンを決定する。あるいは、符号化器は、別の種類のマクロブロックおよび/または別の数の動きベクトルについて動きベクトルブロックパターンを決定する。次に符号化器は、動きベクトルブロックパターンを信号伝達する3520。通常、符号化器は、例えば、図47Jおよび図47Kに示すような符号テーブルを用いて、動きベクトルブロックパターンのVLCを信号伝達する。あるいは、符号化器は、別のメカニズムを用いて、動きベクトルブロックパターンを信号伝達する。動きベクトルデータを信号伝達すべき動きベクトルが少なくとも1つ存在する場合判断3525からのはいのパス、符号化器は、その動きベクトルの動きベクトルデータを信号伝達する3530。例えば、符号化器は、セクションIXで説明する手法を用いて、動きベクトルデータをBLKMVDATA、TOPMVDATA、またはBOTMVDATA要素として符号化する。あるいは、符号化器は、別の信号伝達手法を用いる。符号化器は、動きベクトルデータの符号化を、動きベクトルデータを信号伝達すべき動きベクトルがなくなるまで判断3525からのいいえのパス繰り返す3525、3530。符号化器は、動きベクトルブロックパターンを符号化するために複数の符号テーブルから符号テーブルを選択することが可能である図35Aには示していない。例えば、符号化器は、インターレースPフィールドまたはPフレームについて符号テーブルを選択し、その符号テーブルを用いて、ピクチャ内のマクロブロックの動きベクトルブロックパターンを符号化する。あるいは、符号化器は、符号テーブルを、より頻繁に、またはより少ない頻度で、または不定期に選択したり、符号テーブル選択を完全にスキップすなわち、常に同じ符号テーブルを使用したりする。または、符号化器が、コンテキスト情報から符号テーブルを選択することが可能であるこれにより、符号テーブル選択の信号伝達が不要になる。符号テーブルは、図47Jおよび図47Kに示すテーブル、他のテーブル、および/または追加のテーブルであることが可能である。符号化器は、例えば、選択された符号テーブルを示すFLC、選択された符号テーブルを示すVLC、または別の信号伝達メカニズムを用いて、選択された符号テーブルをビットストリーム内で信号伝達する。あるいは、符号化器は、別の手法により、動きベクトルブロックパターンを用いてマクロブロックの動きベクトルデータを符号化する。簡略化のために、図35Aでは、手法3500が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態様については、セクションXIIで詳述する。C.復号手法図21の復号器2100のような復号器が、動きベクトルブロックパターンを用いて、インターレースPフィールドまたはインターレースPフレームのマクロブロックの動きベクトルデータを受け取り、復号する。例えば、この復号器は、図35Bに示す手法3550を実行する。複数の動きベクトルを有する所与のマクロブロックに対して、復号器は、そのマクロブロックの動きベクトルブロックパターンを受け取り、復号する3560。例えば、復号器は、前のセクションで説明した、4つの動きベクトルブロックパターン、2つの動きベクトルブロックパターン、または他の動きベクトルブロックパターンを受け取り、復号する。通常、復号器は、動きベクトルブロックパターンのVLCを受け取り、例えば、図47Jおよび図47Kに示すような符号テーブルを用いて復号する。あるいは、復号器は、別の信号伝達メカニズムと連係して、動きベクトルブロックパターンを受け取り、復号する。動きベクトルデータが信号伝達されている動きベクトルが少なくとも1つ存在する場合判断3565からのはいのパス、復号器は、その動きベクトルの動きベクトルデータを受け取り、復号する3570。例えば、復号器は、セクションIXで説明する手法を用いてBLKMVDATA、TOPMVDATA、またはBOTMVDATA要素として符号化された動きベクトルデータを受け取り、復号する。あるいは、復号器は、別の復号手法を用いる。復号器は、動きベクトルデータの受け取りおよび復号を、動きベクトルデータが信号伝達されるべき動きベクトルがなくなるまで判断3565からのいいえのパス繰り返す3565、3570。復号器は、動きベクトルブロックパターンを復号するために複数の符号テーブルから符号テーブルを選択することが可能である図35Bには示していない。例えば、テーブル選択オプションおよびテーブル選択信号伝達オプションは、前のセクションで符号化器について説明した内容を逆の形で反映した処理を実行する。あるいは、復号器は、別の手法により、動きベクトルブロックパターンを用いてマクロブロックの動きベクトルデータを復号する。簡略化のために、図35Bでは、手法3550が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。IX.インターレースPフィールドの動きベクトル差分一部の実施形態では、単一の、現在のインターレースPフィールドの動き補償予測を行う際に、既に符号化/復号されている2つのフィールドを参照フィールドとして用いる例については、セクションIV、VI、およびVIIを参照されたい。Pフィールドの動きベクトルについて信号伝達される情報は、12つのフィールドのどれが動きベクトルの参照を与えるか、および2動きベクトル値、を指し示す。通常、動きベクトル値は、動きベクトルプレディクタに対する差分として信号伝達される。可能な2つの参照フィールドからの選択は、その動きベクトルに関する1つのビットを追加して信号伝達されることが可能であるが、その信号伝達方式は、多くの場合、非効率的である。通常、2つの参照フィールドは、所与の動きベクトルに対して同程度に可能性があるわけではなく、動きベクトルに関する選択は、他の例えば、隣接する動きベクトルに関する選択と無関係ではない。したがって、実際には、選択ごとに1つのビットを用いる参照フィールド選択の信号伝達は、効率的でないのが普通である。そこで、一部の実施形態では、符号化器が、動きベクトル差分情報と参照フィールド選択情報とを統合的に符号化する。復号器は、統合的に符号化された情報について、対応する復号を実行する。A.理論および実験結果参照フィールドが2つであるインターレースPフィールドの場合、2つの参照フィールドは、そのPフィールドに対して以下の空間的および時間的関係を有する。時間的順序において最も近い参照フィールドの極性は、現在のPフィールドの極性の反対である。例えば、現在のPフィールドがインターレースフレームの偶数ラインで構成される偶数フィールドの場合は、時間的順序における最も近い参照フィールドが奇数フィールドであり、もう一方の参照フィールド時間的順序における遠いほうのフィールドが偶数フィールドである。符号化器および復号器は、因果関係を示す情報causalinformationを用いて現在の動きベクトルの参照フィールド選択を予測する。例えば、既に符号化されている隣接の動きベクトルからの参照フィールド選択情報が、現在の動きベクトルに用いられる参照フィールドの予測に用いられる。そして、予測した参照フィールドが用いられているかどうかは、バイナリ値によって示される。一方の値は、現在の動きベクトルの実際の参照フィールドが、予測された参照フィールドであることを示し、もう一方の値は、現在の動きベクトルの実際の参照フィールドが、他の参照フィールドであることを示す。一部の実装形態では、参照フィールド予測は、現在の動きベクトルに対する、既に用いられた参照フィールドおよび予想される参照フィールドの極性の観点から表現される例えば、優勢極性と非優勢極性として。セクションVIを参照。ほとんどのケースでは、そのような予測を行うと、バイナリ値の参照フィールド選択子の確率分布が一定になり、予測された参照フィールドに偏る。実験では、予測された参照フィールドは、70前後の動きベクトルに用いられ、30前後の動きベクトルには他の参照フィールドが用いられる。そのような確率分布の参照フィールド選択情報を信号伝達するために1つのビットを伝送することは、効率的ではない。より効率的な方法は、参照フィールド選択情報を差分動きベクトル情報と統合的に符号化することである。B.信号伝達メカニズムの例動きベクトル差分情報と参照フィールド選択情報とを統合的に符号化および復号する信号伝達メカニズムの様々な例を示す。代替として、符号化器および復号器は、別のメカニズムと連係してそれらの情報を統合的に符号化および復号する。図36の擬似コードは、一般化された信号伝達メカニズムによる、動きベクトル差分情報と参照フィールド選択情報との統合的な符号化を示す。この擬似コードでは、変数DMVXおよびDMVYが、それぞれ、差分動きベクトルの水平方向成分および垂直方向成分である。変数AXおよびAYは差分成分の絶対値であり、変数SXおよびSYは差分成分の符号である。水平方向の動きベクトルの範囲は-RX~RX1であり、垂直方向の動きベクトルの範囲は-RY~RY1である。RXおよびRYは2のべき乗であり、それぞれの指数がMXおよびMYである。変数ESCXおよびESCYそれぞれ、指数をKXおよびKYとする2のべき乗は、これを超えるとエスケープ符号化が用いられるしきい値を示す。変数Rは、参照フィールド選択のバイナリ値である。エスケープ条件がトリガされるとAX>ESCXまたはAY>ESCY、符号化器が、エスケープモード信号およびRを統合的に表すVLCを送る。次に符号化器は、DMVXおよびDMVYを、長さがそれぞれMX1およびMY1である固定長符号として送る。したがって、VLCテーブルの2つの要素が使用され、1DMVXおよびDMVYがMXMY2ビットを用いて一括して符号化されていることと、2関連付けられたR値、を信号伝達する。言い換えると、この2つの要素は、R=0およびR=1に対応するエスケープ符号である。他のイベントについては、変数NXおよびNYは、それぞれ、AXおよびAYの様々な値の信号伝達に用いられるビット数を示す。NX=0,1,2,...KX-1であれば、AXは2NX≦AX<2NX1の区間にあり、NX=-1であればAX=0である。NY=0,1,2,...KY-1であれば、AYは2NY≦AY<2NY1の区間にあり、NY=-1であればAY=0である。サイズ情報NXおよびNYと、フィールド参照情報Rとを符号化するために用いられるVLCテーブルは、KX1KY121個の要素のテーブルであり、各要素は符号ワード、符号サイズのペアである。このテーブルの要素のうちの、2つを除くすべてを用いて、NX、NY、およびRの値が統合的に信号伝達される。除いた2つの要素は、エスケープ符号である。NXおよびNYを用いて信号伝達されるイベントについては、符号化器は、NX、NY、およびRの値の組合せを示すVLCを送る。次に符号化器は、AXをNXビットで送り、SXを1ビットで送り、AYをNYビットで送り、SYを1ビットで送る。NXが0または-1であれば、AXを送る必要がない。これは、NYとAYについても当てはまる。それらの場合は、AXまたはAYの値がNXまたはNYから直接導出されることが可能だからである。AX=0、AY=0、およびR=0である場合のイベントは、別のメカニズム例えば、スキップマクロブロックメカニズムまたは動きベクトルブロックパターンセクションVIIIを参照によって信号伝達される。[0,0,0]要素は、図36の擬似コードのためのVLCテーブルに存在しないか、この擬似コードにおいて対応されていない。対応する復号器は、図36に示した符号化を逆の形で反映した処理を実行する統合的復号を実行する。例えば、復号器は、ビットを送る代わりに受け取り、可変長符号化の代わりに可変長復号を実行する。図50の擬似コードは、一つの組み合わされた実装形態における信号伝達メカニズムに従って統合的に符号化された動きベクトル差分情報および参照フィールド選択情報の復号を示す。図59の擬似コードは、別の組み合わされた実装形態における信号伝達メカニズムに従って統合的に符号化された動きベクトル差分情報および参照フィールド選択情報の復号を示す。図50および図59の擬似コードについては、セクションXIIで詳述する。特に、この擬似コードは、垂直方向差分値、または垂直方向差分値および水平方向差分値のサイズと共に、予測選択子の統合的な符号化および復号を示す。対応する符号化器は、図50または図59に示した復号を逆の形で反映した処理を実行する統合的符号化を実行する。例えば、符号化器は、ビットを受け取る代わりに送り、可変長復号の代わりに可変長符号化を実行する。C.符号化手法図20の符号化器2000のような符号化器が、参照フィールド予測選択子情報と差分動きベクトル情報とを統合的に符号化する。例えば、この符号化器は、図37Aに示す手法3700を実行して、情報を統合的に符号化する。一般に、符号化器は、2つの参照フィールドにおいて何らかの形の動き推定を実行して、動きベクトルおよび参照フィールドを取得する。その後、動きベクトルを手法3700に従って符号化し、この時点で、選択子情報を、例えば、垂直方向の動きベクトル差分と統合的に符号化することによって、可能な2つの参照フィールドのうちの1つを動きベクトルに関連付ける。符号化器は、動きベクトルの動きベクトルプレディクタを決定する3710。例えば、符号化器は、セクションVIIで説明したように、動きベクトルプレディクタを決定する。あるいは、符号化器は、別のメカニズムを用いて動きベクトルプレディクタを決定する。符号化器は、動きベクトルの、動きベクトルプレディクタに対する動きベクトル差分を決定する3720。通常、この差分は、動きベクトルと動きベクトルプレディクタとの間の成分ごとの差分である。符号化器はさらに、参照フィールド予測選択子情報を決定する3730。例えば、符号化器は、動きベクトルの優勢的および非優勢的な極性および、それゆえの優勢的な参照フィールド、動きベクトルプレディクタの優勢的な極性、その他。セクションVIを参照を決定する。この場合、選択子は、その優勢極性が用いられているかどうかを示す。あるいは、符号化器は、別の手法を用いて、参照フィールド予測選択子情報を決定する。例えば、符号化器は、別のタイプの参照フィールド予測を用いる。次に符号化器は、動きベクトルの動きベクトル差分情報および参照フィールド予測選択子情報を統合的に符号化する3740。例えば、符号化器は、前のセクションで説明したメカニズムのいずれかを用いて情報を符号化する。あるいは、符号化器は、別のメカニズムを用いる。簡略化のために、図37Aでは、手法3700が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。D.復号手法図21の復号器2100のような復号器が、統合的に符号化された参照フィールド予測選択子情報と差分動きベクトル情報とを復号する。例えば、この復号器は、図37Bに示す手法3750を実行して、そのような統合的に符号化された情報を復号する。復号器は、動きベクトルの、統合的に符号化された動きベクトル差分情報および参照フィールド予測選択子情報を復号する3760。例えば、復号器は、セクションIX.Bで説明したメカニズムのいずれかを用いて信号伝達された情報を復号する。あるいは、復号器は、別のメカニズムを用いて信号伝達された情報を復号する。次に復号器は、動きベクトルの動きベクトルプレディクタを決定する3770。例えば、復号器は、動きベクトルの優勢的および非優勢的な極性を決定しセクションVIを参照、その選択子情報を適用し、選択された極性についての、セクションVIIで説明された動きベクトルプレディクタを決定する。あるいは、復号器は、別のメカニズムを用いて、動きベクトルプレディクタを決定する。例えば、復号器は、別のタイプの参照フィールド予測を用いる。最後に復号器は、動きベクトル差分と動きベクトルプレディクタとを結合することによって動きベクトルを再構成する3780。簡略化のために、図37Bでは、手法3750が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。X.インターレースPフィールドのクロマ動きベクトルの導出一部の実施形態では、符号化器および復号器は、インターレースPフィールドのマクロブロックについて信号伝達されるルミナンス動きベクトルからクロマ動きベクトルを導出する。クロマ動きベクトルは、ビットストリーム内では明示的に信号伝達されない。クロマ動きベクトルは、明示的に信号伝達されずに、マクロブロックのルミナンス動きベクトルから決定される。符号化器および復号器は、プログレッシブPフレームまたはインターレースPフレームに適合されたクロマ動きベクトル導出を行うことが可能であるが、これは一般に、インターレースPフィールドに関しては性能が不十分である。そこで、符号化器および復号器は、インターレースPフィールドの参照フィールド構成に適合されたクロマ動きベクトル導出を行う。クロマ動きベクトル導出には2つのフェーズがある。1選択と2サブサンプリングおよびクロマ丸めである。これらのフェーズのうち、特に選択フェーズが、インターレースPフィールドのクロマ動きベクトル導出に適合されている。選択フェーズの結果は、初期クロマ動きベクトルである。この結果は、マクロブロックのルミナンス動きベクトルの数および潜在的に極性に依存する。マクロブロックにルミナンス動きベクトルが用いられていない場合イントラマクロブロックの場合は、クロマ動きベクトルが導出されない。マクロブロックに1つのルミナンス動きベクトルが用いられている場合1MVマクロブロックの場合は、その1つのルミナンス動きベクトルが、第2および第3のフェーズで用いられるために選択される。マクロブロックに4つのルミナンス動きベクトルが用いられている場合4MVマクロブロックの場合は、4つのルミナンス度動きベクトルの中でより多くある極性を優先する論理を用いて、初期クロマ動きベクトルが選択される。A.クロマサブサンプリングと動きベクトル表現インターレースPフィールドのマクロブロックのクロマ動きベクトル導出は、マクロブロックに用いられるクロマサブサンプリングのタイプと、さらに動きベクトル表現とに依存する。一般的なクロマサブサンプリングの形式として、4:2:0および4:1:1がある。図38は、YUV4:2:0マクロブロックのサンプリンググリッドを示す。これによってクロマサンプルが、ルミナンスサンプルに対して規則的な4:1パターンでサブサンプリングされる。図38は、図22で表されるような4つの8×8ルミナンスブロック、1つの8×8クロマUブロック、および1つの8×8クロマVブロックを有する16×16マクロブロックの場合の、ルミナンスサンプルとクロマサンプルとの空間的関係を示している。全体で、クロマグリッドの解像度は、x方向とy方向の両方とも、ルミナンスグリッドの解像度の半分である。これは、クロマ動きベクトル導出におけるダウンサンプリングの基本原理である。ルミナンスグリッドでの動きベクトル距離を、クロマグリッドにおいて対応する距離までスケーリングするために、動きベクトル値を係数2で割る。本明細書で説明する選択フェーズ手法は、YUV4:2:0マクロブロックまたは別のクロマサブサンプリング形式のマクロブロックに適用可能である。インターレースPフィールドのルミナンス動きベクトルおよびクロマ動きベクトルの表現は、動きベクトルおよび動き補償の精度に部分的に依存する。標準的な動きベクトル精度は1/2画素および1/4画素であり、これはそれぞれ、動き補償における1/2画素および1/4画素の補間を使用して動作する。一部の実施形態では、インターレースPフィールドの動きベクトルは、上topまたは下bottomの同一または反対の極性の参照フィールドを参照することが可能である。動きベクトル値で示される垂直方向変位は、現在のPフィールドおよび参照フィールドの極性に依存する。動きベクトルの単位は、一般に、フィールドピクチャ単位で表される。例えば、動きベクトルの垂直方向成分が1/4画素単位で6であれば、これは一般に、必要に応じて、現在のPフィールドと参照フィールドとで極性が異なる場合の調整を行う前の垂直方向変位が1と1/2フィールドピクチャライン走査線であることを示す。様々な垂直方向動きベクトル成分値と、フィールド極性の組合せとについて、図39は、第1の規約による、現在のフィールドと参照フィールドにおける対応する空間位置を示す。フィールド極性の各組合せは列のペアであり、一方左の列が現在のフィールドのラインN=0,1,2...と番号付けされたラインの画素に対応し、もう一方右の列が参照フィールドのラインこれもN=0,1,2...と番号付けされたラインの画素に対応する。○印は、整数の画素位置にあるサンプルを表し、×印は、端数の画素位置にある補間されたサンプルを表す。この規約では、垂直方向動きベクトル成分値0は、参照フィールド内の整数の画素位置すなわち、実際のライン上のサンプルを参照する。現在のフィールドと参照フィールドの極性が同じ場合、現在のフィールドのラインNの垂直方向成分値0は、参照フィールドのラインNを参照する。これは、フレーム内では同じ実オフセットのところにある場所である。現在のフィールドと参照フィールドの極性が反対の場合も、現在のフィールドのラインNの垂直方向成分値0は、参照フィールドのラインNを参照するが、参照される場所は、奇数ラインと偶数ラインのインターレースのため、フレーム内では1/2画素の実オフセットのところにある場所である。図48は、第2の規約による、現在のフィールドと参照フィールドにおける対応する空間位置を示す。この規約では、垂直方向動きベクトル成分値0は、インターレースフレーム内の同じ実オフセットのところにあるサンプルを参照する。参照されるサンプルは、同じ極性の参照フィールドの整数の画素位置、または反対の極性の参照フィールドの1/2画素位置にある。あるいは、インターレースPフィールドの動きベクトルは、極性の垂直方向変位を扱う別の表現を用いるか、かつ/または、極性の垂直方向変位を扱う別の規約に従う。B.選択フェーズの例一部の実施形態では、クロマ動きベクトル導出の選択フェーズは、1つまたは2つの参照フィールドを有するインターレースPフィールドの動き補償に用いられる参照フィールドパターンに適合されている。例えば、マクロブロックの選択フェーズの結果は、マクロブロックのルミナンス動きベクトルの数および極性に依存する。最も単純なケースは、マクロブロック全体がイントラ符号化されている場合である。このケースでは、クロマ動きベクトルは存在せず、クロマ動きベクトル導出の第2および第3のフェーズがスキップされる。マクロブロックのクロマブロックは、イントラ符号化/復号され、動き補償は行われない。次いで最も単純なケースは、マクロブロックが4つのルミナンスブロックのすべてに対して1つのルミナンス動きベクトルを有する場合である。現在のPフィールドが参照フィールドを1つ有するか、2つ有するかにかかわらず、1つのルミナンス動きベクトルが単に丸めおよびサブサンプリングに向けて送られるだけであるので、選択操作それ自体がない。マクロブロックが4つまでのルミナンス動きベクトルを有する場合、選択フェーズはより複雑になる。全体として、選択フェーズでは、マクロブロックのルミナンス動きベクトルの中の優勢極性が優先される。Pフィールドが参照フィールドを1つしか有しない場合は、マクロブロックのルミナンス動きベクトルのすべてに対して極性が同一である。これに対し、Pフィールドが参照フィールドを2つ有する場合は、マクロブロックの、異なるルミナンス動きベクトルが異なる参照フィールドをポイントすることが可能である。例えば、現在のPフィールドの極性が奇数であれば、マクロブロックは、偶数極性参照フィールドを参照する極性が反対である2つのルミナンス動きベクトルと、奇数極性参照フィールドを参照する極性が同じである2つのルミナンス動きベクトルとを有することが可能である。符号化器または復号器は、マクロブロックのルミナンス動きベクトルの優勢極性を決定し、この優勢極性のルミナンス動きベクトルから初期クロマ動きベクトルを決定する。一部の実装形態では、4MVマクロブロックは、0~4つの動きベクトルを有する。そのような4MVマクロブロックのルミナンスブロックは、イントラ符号化されているか、関連付けられた、同じ極性のルミナンス動きベクトルを有するか、または関連付けられた、同じ極性のルミナンス動きベクトルを有する。他の実装形態では、4MVマクロブロックは、必ず4つのルミナンス動きベクトルを有する。例えば、0,0の差分を有するなどの理由でそれらのいくつかが信号伝達されないとしても、必ず4つ有する。そのような4MVマクロブロックのルミナンスブロックは、反対の極性の動きベクトルを有するか、同じ極性の動きベクトルを有する。選択フェーズの論理は、以下の様々な実装形態に応じて多少異なる。1.0~4つのルミナンス動きベクトルを有する4MVマクロブロック図40の擬似コードは、選択フェーズの論理の一例である。これは、0~4つのルミナンス動きベクトルを有する4MVマクロブロックに適用される。ルミナンス動きベクトルのうち、同じ極性の参照フィールドを参照するルミナンス動きベクトルの数が、反対の極性の参照フィールドを参照するルミナンス動きベクトルの数より多い場合、符号化器/復号器は、同じ極性の参照フィールドを参照するルミナンス動きベクトルから初期クロマ動きベクトルを導出する。そうでない場合、符号化器/復号器は、反対の極性の参照フィールドを参照するルミナンス動きベクトルから初期クロマ動きベクトルを導出する。4つのルミナンス動きベクトルが優勢極性例えば、すべての奇数参照フィールドまたはすべての偶数参照フィールドを有する場合、符号化器/復号器は、その4つのルミナンス動きベクトルのメジアンを算出する。例えば、1つのルミナンスブロックがイントラであるか、非優勢極性の動きベクトルを有するなどの理由で3つのルミナンス動きベクトルだけが優勢極性を有するかする場合、符号化器/復号器は、これら3つのルミナンス動きベクトルのメジアンを算出する。2つのルミナンス動きベクトルが優勢極性を有する場合、符号化器/復号器は、それら2つのルミナンス動きベクトルの平均を算出する同じ極性の数と反対の極性の数が同じである場合は、現在のPフィールドと同じ極性が優先される。最後に、例えば、3つのルミナンスブロックがイントラであるなどの理由で優勢極性のルミナンス動きベクトルが1つだけ存在する場合は、その1つのルミナンス動きベクトルが選択フェーズの結果であるとされる。すべてのルミナンスブロックがイントラである場合は、そのマクロブロックがイントラであり、図40の擬似コードは適用されない。2.4つのルミナンス動きベクトルを有する4MVマクロブロック図55Aおよび図55Bの擬似コードは、選択フェーズの論理の別の例である。これは、例えば、イントラ符号化されたルミナンスブロックが許可されないなどの理由で常に4つのルミナンス動きベクトルを有する4MVマクロブロックに適用される。図55Aは、参照フィールドが1つであるインターレースPフィールドにおけるそのような4MVマクロブロックのクロマ動きベクトル導出を示し、図55Bは、参照フィールドが2つであるインターレースPフィールドにおけるそのような4MVマクロブロックのクロマ動きベクトル導出を示す。図55Bに関しては、符号化器/復号器は、4MVマクロブロックの4つのルミナンス動きベクトルの中でどの極性が優勢であるか例えば、奇数または偶数を決定する。4つのルミナンス動きベクトルのすべてが同じフィールドから例えば、すべてが奇数、またはすべてが偶数であれば、その4つのルミナンス動きベクトルのメジアンが算出される。4つのうちの3つが同じフィールドからであれば、その3つのルミナンス動きベクトルのメジアンが算出される。最後に、各極性のルミナンス動きベクトルが2つずつ存在する場合は、現在のPフィールドと同じ極性を有する2つのルミナンス動きベクトルが優先され、それらの平均が算出される優勢極性を有するルミナンス動きベクトルが1つだけ存在するケースと、1つも存在しないケースは、4MVマクロブロックが常に4つのルミナンス動きベクトルを有する場合にはありえない。あるいは、符号化器または復号器は、別の選択論理を用いて、インターレースPフィールドのマクロブロックの複数のルミナンス動きベクトルからクロマ動きベクトルを導出する。または、符号化器または復号器は、別のタイプのマクロブロック例えば、異なる数のルミナンス動きベクトルを有するマクロブロック、および/またはインターレースPフィールド以外のタイプのピクチャにあるマクロブロックのクロマ動きベクトル導出におけるルミナンス動きベクトル極性を考慮する。C.サブサンプリング/丸めフェーズクロマ動きベクトル導出の第2のフェーズとして、符号化器または復号器は、一般に、丸め論理を適用して、初期クロマ動きベクトルから特定の画素位置を除去する例えば、3/4画素位置を切り上げて、そのようなクロマ動きベクトルがダウンサンプリング後に1/4画素単位の変位を示さないようにする。丸めを用いる度合いを調節して、予測の質と補間の複雑さとをトレードオフすることが可能である。例えば、符号化器または復号器は、より積極的な丸めを行うことにより、得られるクロマ動きベクトルにおける1/4画素のクロマ変位をすべて除去して、整数画素および1/2画素の変位だけが許可されるようにする。これによって、クロマブロックの動き補償での補間が簡略化される。第2のフェーズでは、符号化器および復号器はさらに、初期クロマ動きベクトルをダウンサンプリングして、クロマ解像度にふさわしい尺度のクロマ動きベクトルを得る。例えば、クロマ解像度が水平方向および垂直方向の両方でルミナンス解像度の1/2である場合は、水平方向および垂直方向の動きベクトル成分が係数2でダウンサンプリングされる。あるいは、符号化器または復号器は、丸め、サブサンプリング、プルバック、または他のクロマ動きベクトル調節に関して、他のメカニズムおよび/または追加のメカニズムを適用する。D.導出手法図20の符号化器2000のような符号化器が、インターレースPフィールドのマクロブロックのクロマ動きベクトルを導出する。または、図21の復号器2100のような復号器が、インターレースPフィールドのマクロブロックのクロマ動きベクトルを導出する。例えば、符号化器/復号器は、図41に示す手法4100を実行して、クロマ動きベクトルを導出する。符号化器/復号器は、現在のマクロブロックがイントラマクロブロックかどうかを決定する4110。イントラマクロブロックであれば、符号化器/復号器は、クロマ動きベクトル導出をスキップし、動き補償のかわりに、そのマクロブロックに対してイントラ符号化/復号を行う。マクロブロックがイントラマクロブロックでない場合は、符号化器/復号器は、マクロブロックが1MVマクロブロックかどうかを決定する4120。1MVマクロブロックであれば、符号化器/復号器は、マクロブロックの単一のルミナンス動きベクトルを、手法4100の後段の調節ステージ4150に渡す初期クロマ動きベクトルとして用いる。マクロブロックが1MVマクロブロックでない場合は、符号化器/復号器は、マクロブロックのルミナンス動きベクトルの中の優勢極性を決定する4130。例えば、符号化器/復号器は、図40または図55Aおよび図55Bに示すように、マクロブロックの1つまたは複数のルミナンス動きベクトルの中の一般的な極性prevailingpolarityを決定する。あるいは、符号化器/復号器は、他の決定論理および/または追加の決定論理を適用して一般的な極性を決定する。マクロブロックを含むPフィールドが参照フィールドを1つしか有しない場合、ルミナンス動きベクトルの中の優勢極性は、単純に、その1つの参照フィールドの極性である。次に符号化器/復号器は、優勢極性を有する、マクロブロックのそれらのルミナンス動きベクトルから初期クロマ動きベクトルを決定する4140。例えば、符号化器/復号器は、図40または図55Aおよび図55Bに示すような初期クロマ動きベクトルを決定する。あるいは、符号化器/復号器は、他の論理および/または追加の論理を用いて、初期クロマ動きベクトルを、優勢極性の動きベクトルのメジアン、平均、または他の組合せとして決定する。最後に、符号化器/復号器は、先行段のいずれかによって生成された初期クロマ動きベクトルを調節する4150。例えば、符号化器/復号器は、前述の丸めおよびサブサンプリングを行う。あるいは、符号化器/復号器は、他の調節および/または追加の調節を行う。あるいは、符号化器/復号器は、様々なマクロブロックのタイプおよび極性条件を別の順序でチェックする。または、符号化器/復号器は、インターレースPフィールドまたは他のタイプのピクチャにある他のタイプおよび/または追加のタイプのマクロブロックのクロマ動きベクトルを導出する。簡略化のために、図41では、手法4100が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。XI.インターレースPフィールドの輝度補償ビデオコンテンツの作成および編集では、フェード、モーフィング、およびブレンドが広く用いられている。これらの手法は、コンテンツの変わり目にまたがるビデオの視覚的展開を円滑化する。さらに、照明の変化によるフェードがビデオシーケンスに自然に含まれる場合がある。フェード、モーフィング、ブレンドなどの影響を受ける予測ピクチャの場合、基準ピクチャに比べてルミナンスが全体的に変化すると、従来の動き推定および動き補償の有効性が低下する。結果として、動き補償予測が悪化して、予測ピクチャを表現するために必要なビット数が多くなる。この問題は、1つまたは複数の参照フィールドを有するインターレースPフィールドの場合には、さらに複雑である。一部の実施形態では、符号化器および復号器が、インターレースPフィールドの参照フィールドに対してフェード補償輝度補償とも呼ばれるを行う。符号化器は、対応するフェード推定を行う。フェード推定とフェード補償、およびフェード補償パラメータの信号伝達メカニズムは、インターレースPフィールドの参照フィールド構成に適合される。例えば、1つまたは2つの参照フィールドを有するインターレースPフィールドの場合は、フェード補償を実行するかどうかの決定を、参照フィールドごとに別々に行う。フェード補償を用いる各参照フィールドは、それぞれのフェード補償パラメータを有することが可能である。フェード補償の決定およびパラメータの信号伝達メカニズムは、この情報を効率的に表現する。結果として、インターレースビデオの画質が向上し、かつ/またはビットレートが低減される。A.参照フィールドに対するフェード推定および補償フェード補償では、フェード、ブレンド、モーフィングなどに対する補償のために、1つまたは複数の参照フィールドを変化させる必要がある。一般に、フェード補償は、フェードすなわち、黒へのフェード、または黒からのフェード、ブレンド、モーフィング、または他の、画素値輝度pixelvalueintensitiesに影響を及ぼす自然光効果または合成光効果に対する何らかの補償を含む。例えば、全体的なルミナンス変化は、シーンの明るさおよび/またはコントラストの変化として表すことが可能である。一般に、変化は線形であるが、同じフレーム内で何らかの円滑な非線形マッピングを含むように変化を定義することも可能である。次に現在のPフィールドが、調節された1つまたは複数の参照フィールドから、動き推定/補償によって予測される。YUVクロマ空間にある参照フィールドの場合、調節は、ルミナンスチャネルおよびクロマチャネルにあるサンプルを調節することによって行われる。この調節は、ルミナンス値のスケーリングおよびシフトと、クロマ値のスケーリングおよびシフトとを含むことが可能である。あるいは、クロマ空間が別のクロマ空間例えば、YIQまたはRGBであり、かつ/または、補償において他の調節手法が用いられる。符号化器/復号器は、フェード推定/補償をフィールドごとに行う。あるいは、符号化器/復号器は、フェード推定/補償を、他の何らかの区切りごとに行う。したがって、フェード補償調節は、指定領域フィールドでもフィールドの一部例えば、個々のブロックまたはマクロブロック、あるいはマクロブロックのひとかたまりでもよいに影響を及ぼし、フェード補償パラメータは、指定領域が対象である。または、フェード補償パラメータは、フィールド全体が対象であるが、フィールド内の領域に、選択的に、かつ、必要に応じて適用される。B.インターレースPフィールドの参照フィールド構成一部の実施形態では、インターレースPフィールドは、動き補償のための参照フィールドを1つまたは2つ有する例についてはセクションIVを参照されたい。図24A~図24Fは、インターレースPフィールドの動き補償予測に使用可能な参照フィールドの場所を示す。符号化器および復号器は、別の場所またはタイミング、および/または追加の場所またはタイミングにある参照フィールドを、Pフィールドの動き補償予測に用いることが可能である。例えば、現在のPフィールドと同じフレーム内にある参照フィールドが可能である。または、フレームのトップフィールドまたはボトムフィールドを先に符号化/復号することが可能である。動き補償のための参照フィールドを1つまたは2つ有するインターレースPフィールドの場合、Pフィールドは、参照フィールドを1つだけ有するか、または、Pフィールドは、2つの参照フィールドを有し、異なる動きベクトルに対して、または他の何らかの基準で、2つの参照フィールドを切り替えることが可能である。あるいは、Pフィールドは、さらに多くの参照フィールドおよび/または別の場所にある参照フィールドを有する。C.符号化器と復号器図42は、1つまたは2つの参照フィールドを有するインターレースPフィールドの輝度推定および輝度補償を行う例示的符号化器フレームワーク4200を示す。このフレームワーク4200では、符号化器は、フェード推定によって取得したパラメータを用いて、参照フィールドを条件付きで再マッピングする。符号化器は、フィールド全体である程度の確実性および一貫性があるフェードを検出した場合に、再マッピングフェード補償を行う。そうでない場合、フェード補償は、一致演算すなわち、出力=入力である。図42では、符号化器は、フェード検出モジュール4230を用いて現在のPフィールド4210と第1の参照フィールド4220とを比較して、それらのフィールド4220、4210間でフェードが発生しているかどうかを決定する。符号化器は、これとは別に、フェード検出モジュール4230を用いて現在のPフィールド4210と第2の参照フィールド4225とを比較して、それらのフィールド4225、4210間でフェードが発生しているかどうかを決定する。符号化器は、フェード検出結果に基づいて、1つまたは複数のフェードオン信号またはフェードオフ信号4240を生成する。これらの信号は、フェード補償をとにかく行うかどうか、および、行う場合は、第1の参照フィールドに対してのみ行うか、第2の参照フィールドに対してのみ行うか、両方の参照フィールド4220、4225に対して行うかを示す。第1の参照フィールド4220についてフェード補償がオンの場合は、フェード推定モジュール4250が、第1の参照フィールド4220についてフェードパラメータ4260を推定するフェード推定の詳細については後述。同様に、第2の参照フィールド4225についてフェード補償がオンの場合は、フェード推定モジュール4250が、別途、第2の参照フィールドについてフェードパラメータ4260を推定する。フェード補償モジュール4270、4275は、フェードパラメータ4260を用いて、参照フィールド4220の一方または両方を再マッピングする。図42では2つのフェード補償モジュール4270、4275参照フィールドごとに1つを示しているが、代替として、符号化器フレームワーク4200は、参照フィールド4220、4225のいずれかに対して動作する単一のフェード補償モジュールを含む。他の符号化器モジュール4280例えば、動き推定および補償、周波数変換、量子化などのモジュールは、現在のPフィールド4210を圧縮する。符号化器は、動きベクトル、残差、および符号化済みPフィールド4210を表す他の情報4290を出力する。変換動きベクトルtranslationalmotionvectorsによる動き推定/補償は別として、フレームワーク4200は、多種多様な動き補償ベースのビデオコーデックに適用可能である。図43は、輝度補償を行う例示的復号器フレームワーク4300を示す。この復号器は、復号されたPフィールド4310を生成する。符号化されている、フェード補償されたPフィールドを復号するために、復号器は、フェード補償モジュール4370、4375を用いて、既に復号されている1つまたは2つの参照フィールド4320、4325に対してフェード補償を行う。代替として、復号器フレームワーク4300は、参照フィールド4320、4325のいずれかに対して動作する単一のフェード補償モジュールを含む。フェード補償が第1の参照フィールド4320およびPフィールド4310に対して行われていることをフェードオン/オフ信号4340が示している場合、復号器は、第1の参照フィールド4320に対してフェード補償を行う。同様に、フェード補償が第2の参照フィールド4325およびPフィールド4310に対して行われていることをフェードオン/オフ信号4340が示している場合、復号器は、第2の参照フィールド4325に対してフェード補償を行う。復号器は、第1および第2の参照フィールド4320、4325のフェード推定で取得したフェードパラメータのそれぞれのセット4360を用いて符号化器内で行われたものと同様のフェード補償を行う。フェード補償がオフの場合、フェード補償は、一致演算すなわち、出力=入力である。他の復号器モジュール4380例えば、動き補償、逆周波数変換、逆量子化などのモジュールは、動きベクトル、残差、および他の、符号化器から提供される情報4390を用いて、符号化されているPフィールド4310を圧縮解除する。D.パラメータ化と補償複数のパラメータが、Pフィールドと第1の参照フィールドとの間、および/またはPフィールドと第2の参照フィールドとの間でのフェード、ブレンド、モーフィング、またはその他の変化を表す。これらのパラメータはフェード補償に適用される。ビデオ編集では、ルミナンスチャネルおよびクロマチャネルに画素ごとの単純な線形変換を適用して合成フェードを実現することがある。同様に、2つのビデオシーケンスを、時間とともに組成を変化させながら線形加算することによって、クロスフェードを実現することがある。したがって、一部の実施形態では、フェードやその他の輝度補償調節を画素ごとの線形変換としてパラメータ化し、クロスフェードを線形加算としてパラメータ化する。InをPフィールドnとし、In-1を1つの参照フィールドと仮定する。動きが小さい場合、単純なフェードは、次式で示される1次関係によってモデル化される。この式による関係は、ビデオシーケンス内では可能な動きなので近似である。ここで、フェードパラメータB1およびC1は、それぞれ、参照フィールドの明るさおよびコントラストの変化に対応する。パラメータB2およびC2は、それぞれ、他の参照フィールドの明るさおよびコントラストの変化に対応する。非線形フェードが発生した場合は、一般に、この1次成分が変化の大部分を占める。画像シーケンスUnから画像シーケンスVnへのクロスフェードは、次式に示される関係によってモデル化が可能である。この場合も、この式による関係は、シーケンス内では可能な動きなので近似である。ここで、はクロスフェードの開始点を表し、はクロスフェードの終了点を表す。クロスフェードが複数のフィールドにまたがる場合は、αが小さい。クロスフェードの開始点では、n番目のフィールドは、n-1番目のフィールドを減衰させたものコントラスト<1に近い。終了点に向かっては、n番目のフィールドは、n-1番目のフィールドを増幅したものコントラスト>1である。符号化器は、参照フィールドを再マッピングすることによって輝度補償を実行する。符号化器は、参照フィールドを、画素ごとに、または他の何らかの区切りごとに再マッピングする。オリジナルの、再マッピングされていない参照フィールドは、基本的に廃棄されるここで、実装によっては、再マッピングされていない参照フィールドも動き補償に用いる場合がある。次の線形公式により、2つのパラメータB1およびC1に関して、参照フィールドRのルミナンス値が、再マッピングされた参照フィールドに再マッピングされる。参照フィールドのルミナンス値は、コントラスト値によってスケーリングまたは重み付けされ、明るさ値によってシフトすなわち、オフセットの加算によってシフトされる。クロマについては、再マッピングは次の公式に従う。ここで、μはクロマ値の平均である。一実施形態では、クロマ値の符号なし8ビット表現の平均を128としている。この、クロマの再マッピングの公式では、明るさ成分を用いない。一部の実施形態では、2つのパラメータによる線形再マッピングを高次の項まで拡張する。例えば、ルミナンス値Rをに再マッピングする2次式は次のとおりである。別の実施形態では、別の再マッピング公式を用いる。あるカテゴリのそのような再マッピング公式では、非線形フェードについて、線形マッピングを非線形マッピングに置き換えている。フェード補償は、動き補償の前に参照フィールドに適用することが可能である。または、動き補償中に、必要に応じて参照フィールドに適用することが可能である。例えば、参照フィールドの、動きベクトルによって実際に参照されている領域に適用することが可能である。E.パラメータの推定推定は、符号化処理中に補償パラメータを算出する処理である。図42のフレームワーク4200に示すような符号化器が、符号化処理中に明るさパラメータB1、B2およびコントラストパラメータC1、C2を算出する。あるいは、そのような符号化器は、別の補償パラメータを算出する。推定を速めるために、符号化器は、参照フィールドごとに別々に、各パラメータを考慮および評価する。さらに符号化器は、ルミナンスチャネルだけを解析する。あるいは、符号化器は、より多くの計算リソースが使用可能な場合に、クロマを解析に含める。例えば、符号化器は、C1またはC2をよりロバストにするために、第1の参照フィールドについては、ルミナンスの再マッピング式だけでなくルミナンスおよびクロマの再マッピング式で、C1またはC2の値を求める。フェード推定処理では、シーン内の動きを無視する。これは、aフェードおよびクロスフェードは、一般に、静止シーンまたは動きの少ないシーンで発生する、およびb動きの多いシーンでの輝度補償の有用性は非常に低い、という報告に基づいている。あるいは、符号化器は、フェード補償パラメータと動き情報とを統合的に求める。動き情報は、この手法の後段、または、ある別の時点で、フェード補償パラメータの精度をより高めるために用いられる。動き情報の1つの用途は、参照フィールドの、動きが検出された部分をフェード推定計算から省くことである。絶対誤差合計ΣabsIn-Rまたはは、フェードの存在およびパラメータを決定するための測定基準としての役目を果たす。あるいは、符号化器は、同じ誤差項の二乗誤差または平均二乗誤差の合計のような他の測定基準または追加の測定基準を用いるか、または別の誤差項を用いる。符号化器は、後述するような終了条件が満たされたら、推定を終了することが可能である。別の終了条件では、符号化器は、推定の開始時または中間段階で、コントラストパラメータC1またはC2が1.0に近いかどうか一実装形態では、0.99<C<1.02かどうかをチェックし、そのとおりであれば、この手法を終了する。符号化器は、現在のフィールドおよび選択された第1または第2の参照フィールドをダウンサンプリングすることによって推定を開始する。一実装形態では、符号化器は、水平方向および垂直方向に係数4でダウンサンプリングを行う。あるいは、符号化器は、別の係数でダウンサンプリングを行うか、ダウンサンプリングをまったく行わない。次に符号化器は、現在のフィールドおよび参照フィールドの、解像度を落としたIdnおよびRdの絶対誤差合計ΣabsIdn-Rdを算出する。絶対誤差合計は、ダウンサンプリングされた現在のフィールドとダウンサンプリングされた参照フィールドとの間の値の差分を計測する。絶対誤差合計が特定のしきい値例えば、あらかじめ決められた差分測定値より小さければ、符号化器は、フェードが発生していないのでフェード補償を用いないと結論づける。それ以外であれば、符号化器は、明るさパラメータB1またはB2およびコントラストパラメータC1またはC2を推定する。様々なパラメータ値についてRdの観点からIdnをモデル化することによって、最初の推定が得られる。例えば、明るさおよびコントラストのパラメータは、ダウンサンプリングされたフィールドの全体に対する線形回帰から得られる。または、符号化器は、さらなる確実な解析のために、総最小二乗、最小平均二乗などのような他の形式の統計解析を行う。例えば、符号化器は、誤差項Idn-RdのMSEまたはSSEを最小化する。状況によっては、MSEおよびSSEがロバストではないので、符号化器はさらに、誤差項の絶対誤差合計を検査する。符号化器は、フェードではなく動きに起因する可能性がある特定の点の高い誤差値を廃棄する。最初のパラメータが許容範囲内にあることの確認と、それらの適合性の検査とのために、最初のパラメータを量子化および逆量子化する。一部の実施形態では、一般的な8ビット深度の画像に対し、これらのパラメータをそれぞれ6ビットに量子化する。B1またはB2は、符号付き6ビット整数として表される、-32~31の範囲の整数値をとる。C1またはC2は、0.0156251/64の均等ステップで0.5~1.484375の範囲をとり、これは、C1またはC2の量子化値0~63に対応する。量子化は、B1またはB2およびC1またはC2を、最も近い有効な逆量子化値に丸め、該当する二進指数を取得することによって行われる。符号化器は、オリジナルの有界絶対誤差合計SOrgBndと再マッピングされた有界絶対誤差合計SRmpBndとを算出する。一部の実施形態では、符号化器は、適合度解析goodnessoffitanalysisを用いて合計を算出する。符号化器は、オリジナルの解像度の画素のランダム集合または擬似ランダム集合について、再マッピングされた有界絶対誤差合計ΣbabsIn-CfR-Bfを算出する。ここで、符号化されるフィールドの量子化パラメータの倍数など、何らかの範囲Mについてbabsx=minabsx,Mである。限界Mは、量子化パラメータが粗い場合には高くなり、細かい場合には低くなる。符号化器はさらに、オリジナルの有界絶対誤差合計ΣbabsIn-Rを蓄積する。符号化器は、計算リソースが使用可能であれば、フィールド全体の有界誤差合計を算出することが可能である。符号化器は、オリジナルの有界絶対誤差合計と再マッピングされた有界絶対誤差合計との相対的な値に基づいて、フェード補償を用いるかどうかを決定する。例えば、一部の実施形態では、符号化器は、再マッピングされた有界絶対誤差合計が、オリジナルの有界絶対誤差合計の特定のしきい値パーセンテージσ以下にならない限り、フェード補償を行わない。一部の実装形態では、σ=0.95である。フェード補償を用いる場合、符号化器は、フェードパラメータを、今度は、InとRとの間の線形回帰に基づいて、ただし、フル解像度で再計算する。計算時間を節約するために、符号化器は、フィールドのランダムまたは擬似ランダムサンプリングに対して線形回帰を繰り返すことが可能である。この場合も、符号化器は、代替として、さらなる確実な解析のために例えば、総最小二乗、最小平均二乗などの他の形式の統計解析を行うことが可能である。一部の実装形態では、符号化器は、C1またはC2の再構成された値が-1である特殊なケースを可能にする。この特殊なケースは、C1またはC2が0に等しくなるシンタックス要素によって信号伝達される。この反転モードでは、参照フィールドがシフトの前にB1またはB2によって反転され、B1またはB2の範囲は均等ステップ2で193~319である。あるいは、一部またはすべてのフェード補償パラメータが別の表現を用いるか、または他のパラメータおよび/または追加のパラメータが用いられる。F.信号伝達高レベルでは、信号伝達されるフェード補償情報は、1補償オン/オフ情報、および2補償パラメータ、を収容する。このオン/オフ情報は、a全体に対して例えば、シーケンス全体に対してフェード補償が可能かどうか、bフェード補償が可能な場合、特定のPフィールドに対してフェード補償を用いるかどうか、およびc特定のPフィールドに対してフェード補償が用いられる場合に、フェード補償によってどの参照フィールドを調節すべきか、を含むことが可能である。参照フィールドに対してフェード補償を用いる場合は、フェード補償パラメータを以下のように適用する。1.全体のオン/オフの信号伝達シーケンスレベルにおいて、1つのビットが、フェード補償がそのシーケンスに対して有効化されているかどうかを示す。フェード補償が可能な場合は、後続の要素が、フェード補償をいつどのように行うかを示す。あるいは、フェード補償は、他の何らかのシンタックスレベルで有効化/無効化される。または、フェード補償が常に可能になっていて、全体のオン/オフの信号伝達がスキップされる。2.Pフィールドのオン/オフの信号伝達フェード補償が可能な場合は、1つまたは複数の追加信号が、フェード補償をいつ行うかを示す。一般的なインターレースビデオシーケンスのフィールドにおいては、輝度補償を行うことはまれである。Pフィールドのフェード補償を用いることの信号伝達は、フィールドごとに1つのビット例えば、フィールドレベルで信号伝達される1つのビットを追加することによって可能である。しかしながら、フェード補償を用いることを、他の情報と統合的に信号伝達するほうが経済的である。1つのオプションは、Pフィールドにフェード補償を用いることを、動きベクトルモード例えば、動きベクトルの数および構成、端数画素補間スキームなどと統合的に信号伝達することである。例えば、あるVLCは、最低頻度の動きベクトルモードと、Pフィールドのフェード補償のアクティベーションとを統合的に示す。詳細については、FadingEstimationCompensationという名称の特許文献2を参照されたい。または、後述の複数の複合実装形態に示すように、Pフィールドのフェード補償を用いるかどうかを、動きベクトルモード情報とともに信号伝達する。セクションXIIのMVMODE要素およびMVMODE2要素を参照されたい。あるいは、Pフィールドのフェード補償のオン/オフの情報を信号伝達する別のメカニズムを用いる。3.参照フィールドのオン/オフの信号伝達Pフィールドに対してフェード補償を用いる場合は、どの参照フィールドがフェード補償を受けるかについていくつかのオプションがありうる。Pフィールドがフェード補償を用い、2つの参照フィールドを有する場合は、3つのケースが存在する。フェード補償を行う対象は、1両方の参照フィールド、2第1の参照フィールドのみ例えば、時間的に2番目に近い参照フィールド、または3第2の参照フィールドのみ例えば、時間的に最も近い参照フィールドである。フェード補償の参照フィールドのパターン情報は、PフィールドごとにFLCまたはVLCとして信号伝達可能である。図44のテーブルは、Pフィールドヘッダ内で信号伝達される、要素INTCOMPFIELDのパターン情報のVLCの1つの集合を示す。あるいは、フィールドレベルまたは別のシンタックスレベルで、図47Gのテーブルまたは別のテーブルを用いる。一部の実装形態では、すべてのPフィールドについて、フェード補償用参照フィールドパターンを信号伝達する。あるいは、フェード補償を用いる参照フィールドが1つであるPフィールドの場合は、参照フィールドパターンの信号伝達をスキップする。これは、フェード補償が自動的に単一参照フィールドに適用されるからである。4.フェード補償パラメータの信号伝達参照フィールドに対してフェード補償を用いる場合は、その参照フィールドについてのフェード補償パラメータを信号伝達する。例えば、Pフィールドのヘッダ内にフェード補償パラメータの第1の集合が存在する。1つの参照フィールドに対してのみフェード補償を用いる場合、パラメータの第1の集合は、その1つの参照フィールドが対象である。しかしながら、Pフィールドの2つの参照フィールドに対してフェード補償を用いる場合、パラメータの第1の集合は一方の参照フィールドが対象であり、もう一方の参照フィールドのフェード補償のための、フェード補償パラメータの第2の集合がヘッダ内に存在する。フェード補償パラメータの各集合は、例えば、コントラストパラメータおよび明るさパラメータを収容する。一複合実装形態では、パラメータの第1の集合は、LUMSCALE1要素およびLUMSHIFT1要素を含む。これらは、Pフィールドのための輝度補償が信号伝達されるときにPフィールドヘッダ内に存在する。両方の参照フィールドまたは2番目に近い参照フィールドだけがフェード補償を用いることをINTCOMPFIELDが示した場合は、その2番目に近い参照フィールドにLUMSCALE1およびLUMSHIFT1が適用される。それ以外の場合最も近い参照フィールドだけがフェード補償を用いることをINTCOMPFIELDが示した場合は、その最も近い参照フィールドにLUMSCALE1およびLUMSHIFT1が適用される。LUMSCALE2要素およびLUMSHIFT2要素を含む、パラメータの第2の集合は、Pフィールドのための輝度補償が信号伝達され、INTCOMPFIELDが、両方の参照フィールドがフェード補償を用いることを示す場合に、Pフィールドヘッダ内に存在する。LUMSCALE2およびLUMSHIFT2は、より近い参照フィールドに適用される。LUMSHIFT1、LUMSCALE1、LUMSHIFT2、およびLUMSCALE2は、パラメータB1、C1、B2、およびC2に対応する。LUMSCALE1、LUMSCALE2、LUMSHIFT1、およびLUMSHIFT2は、それぞれ、6ビットFLCを用いて信号伝達される。あるいは、これらのパラメータは、VLCを用いて信号伝達される。図56は、LUMSHIFT1およびLUMSCALE1に基づいて第1の参照フィールドに対してフェード補償を行う擬似コードを示す。LUMSHIFT2およびLUMSCALE2に基づく、第2の参照フィールドに対するフェード補償についても、同様の処理を行う。あるいは、フェード補償パラメータは、別の表現を有するか、かつ/または、別の信号伝達メカニズムで信号伝達される。G.推定および信号伝達の手法図20の符号化器2000のような符号化器、または図42のフレームワーク4200内の符号化器が、2つの参照フィールドを有するインターレースPフィールドについてフェード推定および対応する信号伝達を行う。例えば、この符号化器は、図45Aに示す手法4500を実行する。符号化器は、Pフィールドの2つの参照フィールドのうちの第1の参照フィールドに対してフェード検出を行う4510。フェードが検出された場合判断4512からのはいのパス、符号化器は、第1の参照フィールドを基準にして、Pフィールドのフェード推定を行う4514。これによって、第1の参照フィールドについてのフェード補償パラメータが生成される。符号化器はさらに、Pフィールドの2つの参照フィールドのうちの第2の参照フィールドに対してフェード検出を行う4520。フェードが検出された場合判断4522からのはいのパス、符号化器は、第2の参照フィールドを基準にして、Pフィールドのフェード推定を行う4524。これによって、第2の参照フィールドについてのフェード補償パラメータが生成される。例えば、符号化器は、セクションフェードパラメータの推定で説明されたようなフェード検出および推定を行う。あるいは、符号化器は、別の手法を用いて、フェードを検出するか、かつ/またはフェード補償パラメータを取得する。現在のPフィールドが参照フィールドを1つだけ有する場合は、第2の参照フィールドに対する操作をスキップすることが可能である。符号化器は、Pフィールドについてフェード補償がオンかオフかを信号伝達する4530。例えば、符号化器は、この情報を、Pフィールドの動きベクトルモード情報と統合的に符号化する。あるいは、符号化器は、他の信号および/または追加の信号を用いて、Pフィールドについてフェード補償がオンかオフかを示す。フェード補償が現在のPフィールドについてオンでない場合は判断4532からのいいえのパス、手法4500を終了する。そうでない場合判断4532からのはいのパス、符号化器は、フェード補償の参照フィールドパターンを信号伝達する4540。例えば、符号化器は、フェード補償を両方の参照フィールドに用いるか、第1の参照フィールドだけに用いるか、または第2の参照フィールドだけに用いるかを示すVLCを信号伝達する。あるいは、符号化器は、別の信号伝達メカニズム例えば、FLCを用いて、参照フィールドパターンを示す。このパスでは、符号化器はさらに、フェード推定において算出されていたフェード補償パラメータの第1の集合および/または第2の集合を信号伝達する4542。例えば、符号化器は、セクションXI.Fで説明した信号伝達を用いる。あるいは、符号化器は、別の信号伝達を用いる。一般には符号化器はさらにフェード補償、動き推定、および動き補償を行うが、図45Aでは、簡略化のためにこれらの操作を示していない。さらに、フェード推定は、動き推定の前に、または動き推定と並行して行うことが可能である。図45Aでは、手法4500が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。H.復号および補償の手法図21の復号器2100のような復号器、または図43のフレームワーク4300内の復号器が、2つの参照フィールドを有するインターレースPフィールドについて復号およびフェード補償を行う。例えば、この復号器は、図45Bに示す手法4550を実行する。復号器は、Pフィールドについてフェード補償がオンかオフかを示す1つまたは複数の信号を受け取り、復号する4560。例えば、この情報は、Pフィールドの動きベクトルモード情報と統合的に符号化されている。あるいは、復号器は、Pフィールドについてフェード補償がオンかオフかを示す他の信号および/または追加の信号を受け取り、復号する。フェード補償がPフィールドについてオンでない場合は判断4562からのいいえのパス、手法4550を終了する。そうでない場合判断4562からのはいのパス、復号器は、フェード補償の参照フィールドパターンを受け取り、復号する4570。例えば、復号器は、フェード補償を両方の参照フィールドに用いるか、第1の参照フィールドだけに用いるか、または第2の参照フィールドだけに用いるかを示すVLCを受け取り、復号する。あるいは、復号器は、別の信号伝達メカニズム例えば、FLCと連係動作して、参照フィールドパターンを決定する。このパスでは、復号器はさらに、フェード補償パラメータの第1の集合を受け取り、復号する4572。例えば、復号器は、セクションXI.Fで説明した信号伝達にしたがって動作する。あるいは、復号器は、他の信号伝達にしたがって動作する。2つの参照フィールドのうちの1つについてのみフェード補償を行う場合は判断4575からのいいえのパス、パラメータの第1の集合は、参照フィールドパターンによって示されるように、第1または第2の参照フィールドが対象である。復号器は、指定された参照フィールドに対し、フェード補償パラメータの第1の集合を用いてフェード補償を行い4592、手法4500を終了する。そうでない場合、すなわち、2つの参照フィールドの両方についてフェード補償を行う場合は判断4575からのはいのパス、復号器は、フェード補償パラメータの第2の集合を受け取り、復号する4580。例えば、復号器は、セクションXI.Fで説明した信号伝達にしたがって動作する。あるいは、復号器は、他の信号伝達にしたがって動作する。この場合、パラメータの第1の集合は、2つの参照フィールドのうちの一方が対象であり、パラメータの第2の集合は、もう一方が対象である。復号器は、一方の参照フィールドに対し、パラメータの第1の集合を用いてフェード補償を行い4592、もう一方の参照フィールドに対し、パラメータの第2の集合を用いてフェード補償を行う4582。簡略化のために、図45Bでは、手法4550が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。XII.複合実装形態以下では、ビットストリームシンタックス、セマンティクス、および復号器の複合実装形態について、特にインターレースPフィールドに関し、詳細に説明する。以下の説明は、第1の複合実装態様と、代替の第2の複合実装態様とを含む。さらに、2004年5月27日出願の特許文献1が、第3の複合実装態様の態様を開示する。インターレースPフィールドに重点を置いているが、このセクションの様々な場所で、他のピクチャタイプ例えば、インターレースPおよびBフレーム、インターレースI、BI、PI、およびBフィールドに対するシンタックス要素、セマンティクス、および復号の適用可能性について述べている。A.第1の複合実装態様におけるシーケンスおよびセマンティクス第1の複合実装態様では、圧縮ビデオシーケンスは、階層型レイヤピクチャレイヤ、マクロブロックレイヤ、およびブロックレイヤに構造化されたデータで構成される。このシーケンスにはシーケンスレイヤが先行し、シーケンス内にはエントリポイントレイヤを点在させることが可能である。図46A~図46Eは、各種レイヤを構成するビットストリーム要素を示す。1.シーケンスレイヤのシンタックスおよびセマンティクスシーケンスレベルヘッダが、圧縮ピクチャのシーケンスの復号に用いられるシーケンスレベルパラメータを収容する。一部のプロファイルでは、トランスポートレイヤまたは他の手段によって、シーケンス関連メタデータが復号器に伝達される。しかしながら、インターレースPフィールドを有するプロファイルアドバンスドプロファイルの場合は、このヘッダシンタックスは、ビデオデータビットストリームの一部である。図46Aは、アドバンスドプロファイルのシーケンスヘッダを構成するシンタックス要素を示す。PROFILE4601要素およびLEVEL4602要素は、それぞれ、シーケンスの符号化に用いられたプロファイルと、プロファイル内の符号化レベルとを指定する。特にインターレースPフィールドに関しては、INTERLACE4603要素が、ソースコンテンツがプログレッシブINTERLACE=0か、インターレースINTERLACE=1かを信号伝達する、1ビットのシンタックス要素である。INTERLACE=1の場合には、個々のフレームもプログレッシブシンタックスまたはインターレースシンタックスを用いて符号化されることが可能である。2.エントリポイントレイヤのシンタックスおよびセマンティクスアドバンスドプロファイルには、エントリポイントヘッダが存在する。エントリポイントには2つの用途がある。第1に、エントリポイントは、ビットストリーム内でランダムアクセスポイントを信号伝達するために用いられる。第2に、エントリポイントは、符号化制御パラメータの変化を信号伝達するために用いられる。図46Bは、エントリポイントレイヤを構成するシンタックス要素を示す。特にインターレースPフィールドに関しては、参照フレーム距離フラグREFDIST_FLAG4611要素が、1ビットのシンタックス要素である。REFDIST_FLAG=1は、REFDIST4624要素がI/I、I/P、P/I、またはP/Pフィールドピクチャヘッダ内に存在することを示す。REFDIST_FLAG=0は、REFDIST4624要素がI/I、I/P、P/I、またはP/Pフィールドピクチャヘッダ内に存在しないことを示す。拡張動きベクトルフラグEXTENDED_MV4612要素は、拡張動きベクトル機能がオンになっているかEXTENDED_MV=1、オフになっているかEXTENDED_MV=0を示す1ビット要素である。拡張差分動きベクトル範囲フラグEXTENDED_DMV4613要素は、EXTENDED_MV=1の場合に存在する、1ビットのシンタックス要素である。EXTENDED_DMV=1であれば、拡張差分動きベクトル範囲内の動きベクトル差分が、エントリポイントセグメント内のピクチャレイヤにおいて信号伝達される。EXTENDED_DMV=0であれば、拡張差分動きベクトル範囲内の動きベクトル差分が信号伝達されない。拡張差分動きベクトル範囲は、インターレースPフィールドおよびPフレームと、インターレースBフィールドおよびBフレームとを含むインターレースPおよびBピクチャについてのオプションである。3.ピクチャレイヤのシンタックスおよびセマンティクスピクチャのデータは、ピクチャヘッダと、それに続くマクロブロックレイヤ用データとからなる。図46Cは、インターレースフィールドピクチャ用フレームヘッダを構成するビットストリーム要素を示す。以下の説明はインターレースPフィールドに用いられる要素に重点を置いているが、図46Cに示したヘッダは、インターレースI、P、B、およびBIフィールドの様々な組合せに適用可能である。フレーム符号化モードFCM4621要素は、シーケンスレイヤINTERLACE4603が値1を有する場合のみ、アドバンスドプロファイルにのみ存在する。FCM4621は、ピクチャがプログレッシブとして符号化されているか、インターレースフィールドとして符号化されているか、インターレースフレームとして符号化されているかを示す。図47Aのテーブルは、ピクチャ符号化タイプをFCMによって示すために用いられるVLCを含む。フィールドピクチャタイプFPTYPE4622要素は、インターレースフィールドピクチャのピクチャヘッダに存在する、3ビットのシンタックス要素である。FPTYPEは、図47Bのテーブルに従って復号される。このテーブルに示すように、インターレースフレームは、2つのインターレースIフィールド、1つのインターレースIフィールドと1つのインターレースPフィールド、2つのインターレースPフィールド、2つのインターレースBフィールド、1つのインターレースBフィールドと1つのインターレースBIフィールド、または2つのインターレースBIフィールドを含むことが可能である。トップフィールド第1のTFF4623要素は、シーケンスヘッダ要素PULLDOWN=1であってシーケンスヘッダ要素INTERLACE=1である場合に、アドバンスドプロファイルのピクチャヘッダ内に存在する1ビット要素である。TFF=1は、トップフィールドが第1の復号されたフィールドであることを示す。TFF=0であれば、ボトムフィールドが第1の復号されたフィールドである。P参照距離REFDIST4624要素は、エントリレベルフラグREFDIST_FLAG=1であって、ピクチャタイプがB/B、B/BI、BI/B、BI/BIでない場合に、インターレースフィールドピクチャヘッダ内に存在する、可変サイズのシンタックス要素である。REFDIST_FLAG=0であれば、REFDIST4624がデフォルト値0に設定される。REFDIST4624は、現在のフレームと参照フレームとの間のフレーム数を示す。図47Cのテーブルは、REFDIST4624値に用いられるVLCを含む。このテーブルの最後の行は、2より大きい参照フレーム距離を表すために用いられる符号ワードを示す。これらは、バイナリの11として符号化され、その後にN-3個の1が続く。Nは参照フレーム距離である。符号ワードの最後のビットは0である。REFDIST4624の値は16以下である。例えば、次のようになる。N=3、VLC符号ワード=110、VLCサイズ=3N=4、VLC符号ワード=1110、VLCサイズ=4N=5、VLC符号ワード=11110、VLCサイズ=5フィールドピクチャレイヤFIELDPICLAYER4625要素は、インターレースフレームの別々のインターレースフィールドのうちの1つに関するデータである。インターレースフレームがP/PフレームFPTYPE=011であれば、ビットストリームは、2つのインターレースPフィールドに対し、2つのFIELDPICLAYER4625要素を含む。図46Dは、インターレースPフィールドピクチャのフィールドピクチャヘッダを構成するビットストリーム要素を示す。参照ピクチャ数NUMREF4631要素は、インターレースPフィールドヘッダ内に存在する、1ビットのシンタックス要素である。この要素は、インターレースPフィールドが1つの参照ピクチャを有するかNUMREF=0、2つの参照ピクチャを有するかNUMREF=1を示す。参照フィールドピクチャインジケータREFFIELD4632は、NUMREF=0の場合にインターレースPフィールドヘッダ内に存在する、1ビットのシンタックス要素である。この要素は、可能な2つの参照ピクチャのどれをインターレースPフィールドが用いるかを示す。拡張MV範囲フラグMVRANGE4633は、大まかには、動きベクトルの拡張範囲すなわち、動きベクトルの、より長い、可能な水平方向および/または垂直方向変位を示す、可変サイズのシンタックス要素である。拡張差分MV範囲フラグDMVRANGE4634は、EXTENDED_DMV=1の場合に存在する、可変サイズのシンタックス要素である。図47Dのテーブルは、DMVRANGE4634要素に用いられる。MVRANGE4633およびDMVRANGE4634の両方が動きベクトル差分の復号に用いられ、拡張差分動きベクトル範囲は、インターレースPフィールド、インターレースPフレーム、インターレースBフィールド、およびインターレースBフレームのオプションである。動きベクトルモードMVMODE4635要素は、4つの動きベクトル符号化モードのうちの1つ、または1つの輝度補償モードを信号伝達する、可変サイズのシンタックス要素である。動きベクトル符号化モードは、動き補償の端数画素補間規則が異なる3つの1MVモードを含む。1MVは、ピクチャ内の各マクロブロックがせいぜい1つの動きベクトルを有することを意味する。混在mixedMVモードでは、ピクチャ内の各マクロブロックは、1つまたは4つの動きベクトルを有するか、スキップされることが可能である。PQUANTピクチャの量子化係数の値に応じて、図47Eに示すテーブルのうちのいずれか1つがMVMODE4635要素に用いられる。動きベクトルモード2MVMODE24636要素は、MVMODE4635が輝度補償を信号伝達する場合にインターレースPフィールドヘッダ内に存在する、可変サイズのシンタックス要素である。PQUANTの値に応じて、図47Fに示すテーブルのいずれかが、MVMODE4635要素に対して用いられる。輝度補償フィールドINTCOMPFIELD4637は、インターレースPフィールドピクチャヘッダに存在する、可変サイズのシンタックス要素である。図47Gのテーブルに示すように、INTCOMPFIELD4637は、どの参照フィールドが輝度補償を受けるかを示すために用いられる。INTCOMPFIELD4637は、NUMREF=0の場合でも存在する。フィールドピクチャルミナンス尺度1LUMSCALE14638要素、フィールドピクチャ輝度シフト1LUMSHIFT14639要素、フィールドピクチャルミナンス尺度2LUMSCALE24640要素、およびフィールドピクチャルミナンスシフト2LUMSHIFT24641要素は、それぞれ、輝度補償に用いられる6ビット値である。LUMSCALE14638要素およびLUMSHIFT14639要素は、MVMODE4635が輝度補償を信号伝達する場合に存在する。INTCOMPFIELD4637要素が1または00の場合は、LUMSCALE14638およびLUMSHIFT14639がトップフィールドに適用される。それ以外の場合は、LUMSCALE14638およびLUMSHIFT14639がボトムフィールドに適用される。LUMSCALE24640要素およびLUMSHIFT24641要素は、MVMODE4635が輝度補償を信号伝達し、INTCOMPFIELD4637要素が1である場合に存在する。LUMSCALE24640およびLUMSHIFT24641は、ボトムフィールドに適用される。マクロブロックモードテーブルMBMODETAB4642要素は、インターレースPフィールドヘッダ用に3ビット値を有する固定長フィールドである。MBMODETAB4642は、マクロブロックレイヤ内のマクロブロックモードMBMODE4661シンタックス要素を符号化/復号するために8つの符号テーブル3ビット値で指定されるテーブル0~7のどれが用いられるかを示す。8つの符号テーブルは2セットあり、どのセットが用いられるかは、MVMODE4635によって示されるように、4MVマクロブロックがピクチャ内で可能かどうかに依存する。図47Hは、混在MVモードのインターレースPフィールドにおいて、MBMODE4661に使用可能な8つのテーブルを示す。図47Iは、1MVモードのインターレースPフィールドにおいて、MBMODE4661に使用可能な8つのテーブルを示す。動きベクトルテーブルMVTAB4643要素は、固定長フィールドである。NUMREF=0であるインターレースPフィールドの場合、MVTAB4643は、動きベクトルデータを復号するために4つの符号テーブル2ビット値で指定されるテーブル0~3のどれが用いられるかを示す、2ビットのシンタックス要素である。NUMREF=1であるインターレースPフィールドの場合、MVTAB4643は、動きベクトルデータを符号化/復号するために8つの符号テーブル3ビット値で指定されるテーブル0~7のどれが用いられるかを示す、3ビットのシンタックス要素である。インターレースPフィールドヘッダ内の4MVブロックパターンテーブル4MVBPTAB4644要素は、ピクチャが混在MVタイプであることを、MVMODE4635または、MVMODE4635が輝度補償に設定されている場合はMVMODE24636が示している場合に存在する2ビット値である。4MVBPTAB4644シンタックス要素は、4MVマクロブロック内の4MVブロックパターン4MVBP4664シンタックス要素について4つのテーブル2ビット値で指定されるテーブル0~3のどれが用いられるかを信号伝達する。図47Jは、4MVBP4664に使用可能な4つのテーブルを示す。インターレースPフレームヘッダ図示せずは、図46Cに示した、フィールド符号化されたインターレースフレームヘッダおよび図46Dに示したインターレースPフィールドヘッダと同じ要素を多く有する。これらは、FCM4621、MVRANGE4633、DMVRANGE4634、MBMODETAB4642、およびMVTAB4643を含むが、インターレースPフレームの厳密なシンタックスおよびセマンティクスはインターレースPフィールドと異なる可能性がある。インターレースPフレームヘッダはさらに、ピクチャタイプ、1MVモードと4MVモードの切り換え、および輝度補償の信号伝達に関して、別の要素を含む。インターレースPフレームは、マクロブロックごとに2つの動きベクトルを有する、フィールド符号化されたマクロブロックを含むことが可能なので、インターレースPフレームヘッダは、2動きベクトルブロックパターンテーブル2MVBPTAB要素を含む。2MVBPTABは、インターレースPフレーム内に存在する2ビット値である。このシンタックス要素は、2MVフィールド符号化されたマクロブロックにある2MVブロックパターン2MVBP要素を復号するために4つのテーブル2ビット値で指定されるテーブル0~3のどれが用いられるかを信号伝達する。図47Kは、2MVBPに使用可能な4つのテーブルを示す。インターレースBフィールドおよびインターレースBフレームは、インターレースPフィールドおよびインターレースPフレームと同じ要素を多く有する。特に、インターレースBフィールドは、4MVBPTAB4644シンタックス要素を含むことが可能である。インターレースBフレームは、2MVBPTABシンタックス要素と4MVBPTAB4644シンタックス要素の両方を含むが、それらの要素のセマンティクスは異なる可能性がある。4.マクロブロックレイヤのシンタックスおよびセマンティクスマクロブロック用データは、マクロブロックヘッダとそれに続くブロックレイヤとからなる。図46Eは、インターレースPフィールドのマクロブロックレイヤ構造を示す。マクロブロックモードMBMODE4661要素は、可変サイズの要素である。この要素は、マクロブロック1MV、4MV、またはイントラの動きベクトルの数、符号化されたブロックパターンCBPCY4662要素がマクロブロックに対して存在するかどうか、および一部のケースでは動きベクトル差分データがマクロブロックに対して存在するかどうか、などの情報を統合的に示す。図47Hおよび図47Iは、インターレースPフィールドのMBMODE4661に使用可能なテーブルを示す。動きベクトルデータMVDATA4663要素は、動きベクトルの動きベクトル情報例えば、水平方向および垂直方向の差分を符号化する、可変サイズの要素である。2つの参照フィールドを有するインターレースPフィールドについては、MVDATA4663はさらに、動きベクトルについて可能な複数の動きベクトルプレディクタの中から選択するための情報を符号化する。4動きベクトルブロックパターン4MVBP4664要素は、インターレースPフィールド、Bフィールド、Pフレーム、およびBフレームのマクロブロック内に存在可能な、可変サイズのシンタックス要素である。インターレースPフィールド、Bフィールド、およびPフレームのマクロブロックでは、4MVBP4664要素は、マクロブロックが4つの動きベクトルを有することをMBMODE4661が示している場合に存在する。この場合、4MVBP4664は、4つのルミナンスブロックのどれが非ゼロ動きベクトル差分を含むかを示す。インターレースBフレームのマクロブロックでは、4MVBP4664は、マクロブロックが2つのフィールド動きベクトルを含むことをMBMODE4661が示している場合、およびマクロブロックが補間されたマクロブロックである場合に存在する。このケースでは、4MVBP4664は、4つの動きベクトルトップおよびボトムフィールドの順方向動きベクトルと、トップおよびボトムフィールドの逆方向動きベクトルのどれが存在するかを示す。2動きベクトルブロックパターン2MVBP要素図示せずは、インターレースPフレームおよびBフレーム内のマクロブロックに存在する、可変サイズのシンタックス要素である。インターレースPフレームのマクロブロックでは、2MVBPは、マクロブロックが2つのフィールド動きベクトルを有することをMBMODE4661が示している場合に存在する。この場合、2MVBPは、2つのフィールドトップおよびボトムのどれが非ゼロ動きベクトル差分を含むかを示す。インターレースBフレームのマクロブロックでは、2MVBPは、マクロブロックが1つの動きベクトルを含むことをMBMODE4661が示していて、マクロブロックが補間されたマクロブロックである場合に存在する。この場合、2MVBPは、2つの動きベクトル順方向および逆方向の動きベクトルのどれが存在するかを示す。ブロックレベル動きベクトルデータBLKMVDATA4665要素は、特定の状況で存在する、可変サイズの要素である。この要素は、マクロブロックのブロックの動き情報を含む。ハイブリッド動きベクトル予測HYBRIDPRED4666要素は、インターレースPフィールドのマクロブロックに存在可能な、動きベクトルごとの、1ビットのシンタックス要素である。ハイブリッド動きベクトル予測が用いられるときに、HYBRIDPRED4666が、2つの動きベクトルプレディクタのどれを用いるべきかを示す。5.ブロックレイヤのシンタックスおよびセマンティクスインターレースピクチャのブロックレイヤは、プログレッシブピクチャのブロックレイヤのシンタックスおよびセマンティクスに従う。一般に、ブロックおよびサブブロックのDC係数およびAC係数の情報は、ブロックレイヤで信号伝達される。B.第1の複合実装形態における復号ビデオシーケンスがインターレースビデオフレームからなるか、インターレースフレームとプログレッシブフレームの混在を含む場合、FCM4621要素は、所与のピクチャがプログレッシブフレームとして符号化されているか、インターレースフィールドとして符号化されているか、またはインターレースフレームとして符号化されているかを示す。インターレースフィールドとして符号化されたフレームの場合、FPTYPE4622は、そのフレームが、2つのインターレースIフィールドを含むか、1つのインターレースIフィールドと1つのインターレースPフィールドを含むか、2つのインターレースPフィールドを含むか、2つのインターレースBフィールドを含むか、1つのインターレースBフィールドと1つのインターレースBIフィールドを含むか、あるいは2つのインターレースBIフィールドを含むかを示す。以下、インターレースフィールドの復号について説明する。以下のセクションでは、インターレースPフィールドの復号処理に焦点を当てる。1.インターレースPフィールド復号のための参照インターレースPフィールドは、動き補償において、既に復号された1つまたは2つのフィールドを参照することが可能である。NUMREF4631要素は、現在のPフィールドが1つの先行参照フィールドを参照できるか、2つの先行参照フィールドを参照できるかを示す。NUMREF=0であれば、現在のPフィールドは1つのフィールドだけを参照することが可能である。この場合は、ビットストリーム内でREFFIELD4632が後に続く。REFFIELD4632は、既に復号されているどのフィールドが参照として用いられているかを示す。REFFIELD=0であれば、表示順で時間的に最も近いIフィールドまたはPフィールドが参照として用いられている。REFFIELD=1であれば、時間的に2番目に近いIフィールドまたはPフィールドが参照として用いられている。NUMREF=1であれば、現在のPフィールドは、表示順で時間的に最も近い2つのIフィールドまたはPフィールドを参照として用いる。前述の、図24A~図24Fに示した、NUMREF=0およびNUMREF=1の場合の参照フィールドピクチャの例は、第1の複合実装形態に当てはまる。2.ピクチャタイプインターレースPフィールドは、2つのタイプ1MVまたは混在MVのうちの1つであることが可能である。1MVPフィールドでは、各マクロブロックが1MVマクロブロックである。混在MVPフィールドでは、各マクロブロックは、すべてのマクロブロックにおいてMBMODE4661によって示されるように、1MVまたは4MVマクロブロックとして符号化されることが可能である。インターレースPフィールドについては、1MVモードか混在MVモードかは、MVMODE4635要素およびMVMODE24636要素によって信号伝達される。3.マクロブロックモードインターレースPフィールドのマクロブロックは、可能な3つのタイプ1MV、4MV、およびイントラのうちの1つであることが可能である。MBMODE4661要素は、マクロブロックタイプ1MV、4MV、またはイントラと、さらにCBPおよびMVデータの存在と、を示す。MVMODE4635/MVMODE24636シンタックス要素が示す、インターレースPフィールドが混在MVか、すべて1MVかに応じて、MBMODE4661は、以下のように情報を信号伝達する。図26のテーブルは、MBMODE4661が、すべて1MVであるPフィールドのマクロブロックについて情報を信号伝達する様子を示している。図47Iに示すように、8つのテーブルのうちの1つを用いて、1MVPフィールドのMBMODE4661が符号化/復号される。図27のテーブルは、MBMODE4661が、混在MVであるPフィールドのマクロブロックについて情報を信号伝達する様子を示している。図47Hに示すように、8つのテーブルのうちの1つを用いて、混在MVPフィールドのMBMODE4661が符号化/復号される。したがって、1MVマクロブロックは、1MVインターレースPフィールドと混在MVインターレースPフィールドとで発生する可能性がある。1MVマクロブロックは、マクロブロック内の6つのブロックすべてについて現在のピクチャと参照ピクチャとの間の変位が単一の動きベクトルによって表されるマクロブロックである。1MVマクロブロックについては、MBMODE4661要素は、1マクロブロックタイプが1MVであること、2マクロブロックについてCBPCY4662要素が存在するかどうか、および3マクロブロックについてMVDATA4663要素が存在するかどうか、を示す。CBPCY4662要素が存在することをMBMODE4661要素が示している場合は、マクロブロックレイヤ内の対応する場所にCBPCY4662要素が存在する。CBPCY4662は、ブロックレイヤ内で6つのブロックのどれが符号化されているかを示す。CBPCY4662が存在しないことをMBMODE4661要素が示している場合は、CBPCY4662が0に等しいと見なされ、マクロブロック内の6つのブロックのどれについてもブロックデータが存在しない。MVDATA4663要素が存在することをMBMODE4661要素が示している場合は、マクロブロックレイヤ内の対応する場所にMVDATA4663要素が存在する。MVDATA4663要素は、動きベクトル差分を符号化する。動きベクトル差分は、動きベクトルを再構成するために、動きベクトルプレディクタと結合される。MVDATA4663要素が存在しないことをMBMODE4661要素が示している場合は、動きベクトル差分がゼロであると見なされ、したがって、動きベクトルが動きベクトルプレディクタと等しくなる。4MVマクロブロックは、混在MVPフィールドにおいて発生する。4MVマクロブロックは、マクロブロック内の4つのルミナンスブロックのそれぞれが、そのブロックの、現在のピクチャと参照ピクチャとの間の変位を示す関連付けられた動きベクトルを有することが可能であるマクロブロックである。クロマブロックの変位は、4つのルミナンス動きベクトルから導出される。現在のブロックと参照ブロックとの間の差分は、ブロックレイヤにおいて符号化される。4MVマクロブロックについては、MBMODE4661要素は、1マクロブロックタイプが4MVであること、および2CBPCY4662要素が存在するかどうか、を示す。イントラマクロブロックは、1MVまたは混在MVPフィールドで発生する可能性がある。イントラマクロブロックは、6つのブロックすべてが、先行ピクチャデータをまったく参照せずに符号化されたマクロブロックである。イントラマクロブロックについては、MBMODE4661要素は、1マクロブロックタイプがイントラであること、および2CBPCY4662要素が存在するかどうか、を示す。イントラマクロブロックの場合、CBPCY4662要素が存在すれば、これは、6つのブロックのどれが、符号化されたAC係数データをブロックレイヤ内に有するか、を示す。DC係数は、どの場合でも、各ブロックについて存在する。4.動きベクトルブロックパターン4MVBP4664要素は、4つのルミナンスブロックのどれが非ゼロ動きベクトル差分を含むかを示す。4MVBP4664は、0~15の値に復号される。これは、バイナリ値で表された場合には、対応するルミナンスブロックの動きベクトルが存在するかどうかを示すビットシンタックス要素を表す。図34のテーブルは、ルミナンスブロックと4MVBP4664の各ビットとの関連付けを示している。図47Jに示すように、4つのテーブルのうちの1つを用いて4MVBP4664が符号化/復号される。4MVBP4664の4ビットの各場所においては、値0は、BLKMVDATA内の動きベクトル差分が、ブロックの、対応する場所に存在しないことを示し、動きベクトル差分は0と見なされる。値1は、BLKMVDATA内の動きベクトル差分が、ブロックの、対応する場所に存在することを示す。例えば、4MVBP4664がバイナリ値1100に復号された場合、ビットストリームは、ブロック0および1についてはBLKMVDATA4665を含み、ブロック2および3についてはBLKMVDATA4665が存在しない。同様に、4MVBP4664は、インターレースBフィールドおよびインターレースPフレームの4MVマクロブロックについて動きベクトル差分情報の存在/不在を示すために用いられる。インターレースPフレームまたはインターレースBフレームのフィールド符号化されたマクロブロックは、2つの動きベクトルを含むことが可能である。2フィールドMVマクロブロックの場合、2MVBP要素は、2つのフィールドのどれが非ゼロ差分動きベクトルを有するかを示す。図47Kに示すように、4つのテーブルのうちの1つを用いて2MVBPが符号化/復号される。5.フィールドピクチャ座標系以下のセクションでは、動きベクトルの単位をフィールドピクチャの単位で表す。例えば、動きベクトルの垂直方向成分が1/4画素単位で6の変位を示した場合、これは、1と1/2フィールドピクチャラインの変位を示している。図48は、動きベクトルの垂直方向成分と、現在のフィールドと参照フィールドの、同じ極性と反対の極性の両方の組合せでの空間位置との関係を示す。図48は、現在のフィールドおよび参照フィールドにおける画素の1つの縦列を示している。○印は、整数の画素位置を表し、×印は、1/4画素位置を表す。値0は、現在のフィールドと参照フィールドとで、場所の垂直方向変位がないことを示す。現在のフィールドと参照フィールドとが反対の極性の場合、0垂直方向ベクトルは、参照フィールド内のフィールドライン間の途中の場所1/2画素シフトをポイントする。現在のフィールドと参照フィールドとが同じ極性の場合、0垂直方向ベクトルは、参照フィールド内の対応するフィールドラインをポイントする。6.動きベクトル差分の復号MVDATA4663要素およびBLKMVDATA4665要素は、マクロブロックまたはマクロブロック内のブロックの動き情報を符号化する。1MVマクロブロックは、単一のMVDATA4663要素を有し、4MVマクロブロックは、0~4個のBLKMVDATA4665を有することが可能である。MVDATA4663またはBLKMVDATA4665から動きベクトル差分を算出する処理は、参照NUMREF=0が1つの場合と参照NUMREF=1が2つの場合とで異なる。参照フィールドを1つだけ有するフィールドピクチャでは、MVDATA4663またはBLKMVDATA4665シンタックス要素のそれぞれが、1水平方向の動きベクトル差分成分、および2垂直方向の動きベクトル差分成分を統合的に符号化する。MVDATA4663要素またはBLKMVDATA4665要素は、VLCであり、その後にFLCが続く。VLCの値によってFLCのサイズが決まる。MVTAB4643シンタックス要素は、VLCの復号に用いられるテーブルを指定する。図49Aは、1つの参照フィールドを有するフィールドピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分の復号を示す擬似コードである。この擬似コードでは、値dmv_xおよびdmv_yを算出する。ここで、dmv_xは、差分水平方向動きベクトル成分であり、dmv_yは、差分垂直方向動きベクトル成分である。変数k_xおよびk_yは、図49Bに示すテーブルに従うMVRANGE4633によって定義される動きベクトル範囲に依存する固定長値である。変数extend_xは、拡張範囲水平方向動きベクトル差分に対応し、変数extend_yは、拡張範囲垂直方向動きベクトル差分に対応する。変数extend_xおよびextend_yは、DMVRANGE4634シンタックス要素から導出される。水平方向成分の拡張範囲が用いられていることをDMVRANGE4634が示している場合は、extend_x=1である。そうでない場合は、extend_x=0である。同様に、垂直方向成分の拡張範囲が用いられていることをDMVRANGE4634が示している場合は、extend_y=1である。そうでない場合は、extend_y=0である。offset_tableは、次のように定義される配列である。offset_table1[9]={0,1,2,4,8,16,32,64,128}offset_table2[9]={0,1,3,7,15,31,63,127,255}ここで、offset_table2[]は、差分範囲が拡張されている場合に、水平方向成分または垂直方向成分についてついて用いられる。図49Aおよび図49Bは、インターレースPフィールドの場合の拡張差分動きベクトルの復号を示しているが、拡張差分動きベクトルの復号は、第1の複合実装形態において、インターレースBフィールド、インターレースPフレーム、およびインターレースBフレームにも用いられる。2つの参照フィールドを有するフィールドピクチャでは、MVDATA4663またはBLKMVDATA4665の各シンタックス要素が、1水平方向動きベクトル差分成分、2垂直方向動きベクトル差分成分、および3用いられているのが優勢的なプレディクタか、非優勢的なプレディクタか、すなわち、その2つのフィールドのどれが動きベクトルによって参照されているか、を統合的に符号化する。参照フィールドが1つである場合と同様に、MVDATA4663要素またはBLKMVDATA4665要素はVLCであり、その後にFLCが続く。VLCの値によってFLCのサイズが決まり、MVTAB4643シンタックス要素が、VLCの復号に用いられるテーブルを指定する。図50は、2つの参照フィールドを有するフィールドピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分および優勢的/非優勢的なプレディクタの復号を説明する擬似コードである。この擬似コードでは、値predictor_flagは、用いられているのが優勢的な動きベクトルプレディクタか、非優勢動きベクトルプレディクタかを示すバイナリフラグである。predictor_flag=0であれば優勢プレディクタが用いられており、predictor_flag=1であれば非優勢プレディクタが用いられている。他の様々な変数dmv_x、dmv_y、k_x、k_y、extend_x、extend_y、offset_table1[]、offset_table2[]などは、参照フィールドが1つの場合と同様である。テーブルsize_tableは、次のように定義される配列である。size_table[16]={0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7}7.動きベクトルプレディクタ動きベクトルは、前のセクションで算出された動きベクトル差分を動きベクトルプレディクタに加算することによって算出される。プレディクタは、最大3つの隣接する動きベクトルから算出される。動きベクトルプレディクタの算出は、動きベクトルモードが1/2画素であっても、1/4画素単位で行う。1MVインターレースPフィールドでは、現在のマクロブロックのプレディクタを算出するために最大3つの隣接する動きベクトルを用いる。1MVプログレッシブPフレームについては、対象の動きベクトルに隣接するマクロブロックの位置を図5Aおよび図5Bに示して説明した。混在MXインターレースPフィールドでは、現在のブロックまたはマクロブロックのプレディクタを算出するために最大3つの隣接する動きベクトルを用いる。混在MVプログレッシブPフレームについては、対象の動きベクトルに隣接するブロックおよび/またはマクロブロックの位置を図6A~図10に示して説明した。ピクチャヘッダ内のNUMREF4631シンタックス要素が0であれば、現在のインターレースPフィールドは、既に符号化されたフィールドを1つだけ参照することが可能である。NUMREF=1であれば、現在のインターレースPフィールドは、最も近い2つの参照フィールドピクチャを参照することが可能である。前者の場合は、各動きベクトルについて単一のプレディクタを算出する。後者の場合は、2つの動きベクトルプレディクタを算出する。図51Aおよび図51Bの擬似コードは、参照フィールドが1つである場合について動きベクトルプレディクタを算出する様子を示す。この擬似コードの変数fieldpred_xおよびfieldpred_yは、動きベクトルプレディクタの水平方向成分および垂直方向成分を表す。参照フィールドが2つであるインターレースPフィールドの場合NUMREF=1、現在のフィールドは、最も近い2つの参照フィールドを参照することが可能である。この場合は、インター符号化された各マクロブロックについて、2つの動きベクトルプレディクタが算出される。1つのプレディクタは、同じ極性の参照フィールドから算出され、もう1つのプレディクタは、反対の極性の参照フィールドから算出される。同じ極性のフィールドと反対の極性のフィールドのうち、一方が優勢的なフィールドであり、もう一方が非優勢的なフィールドである。優勢的なフィールドは、動きベクトルプレディクタ候補の大多数を含むフィールドである。同数の場合は、反対のフィールドから導出された動きベクトルが、優勢的なプレディクタであると見なされる。イントラ符号化されたマクロブロックは、優勢的/非優勢的なプレディクタの算出では考慮されない。すべての候補プレディクタマクロブロックがイントラ符号化されている場合、優勢的および非優勢的な動きベクトルプレディクタはゼロに設定され、優勢的なプレディクタは、反対のフィールドからのものであると見なされる。図52A~図52Fの擬似コードは、参照フィールドが2つあり、動きベクトルプレディクタ候補が3つある場合について、動きベクトルプレディクタが算出される様子を示す。変数samefieldpred_xおよびsamefieldpred_yは、同じフィールドにある動きベクトルプレディクタの水平方向成分および垂直方向成分を表し、変数oppositefieldpred_xおよびoppositefieldpred_yは、反対のフィールドにある動きベクトルプレディクタの水平方向成分および垂直方向成分を表す。変数samecountおよびoppositecountは、0に初期設定される。変数dominantpredictorは、優勢的なプレディクタがどのフィールドに含まれるかを示す。動きベクトル差分から復号された値predictor_flagは、用いられているのが優勢的なプレディクタか、非優勢的なプレディクタかを示す。図52Gおよび図52Hの擬似コードは、図52A~図52Fの擬似コードで参照されているスケーリング操作を示す。この操作は、一方のフィールドのプレディクタをもう一方のフィールドのプレディクタから導出するために用いられる。SCALEOPP、SCALESAME1、SCALESAME2、SCALEZONE1_X、SCALEZONE1_Y、ZONE1OFFSET_X、およびZONE1OFFSET_Yの値を、現在のフィールドが第1のフィールドである場合について図52Iのテーブルに示し、現在のフィールドが第2のフィールドである場合について図52Jのテーブルに示す。参照フレーム距離は、ピクチャヘッダ内のREFDIST4624フィールドにおいて符号化される。参照フレーム距離はREFDIST1である。図52K~図52Nは、図52H~図52Jに示したものの代替となるスケーリング操作の擬似コードおよびテーブルである。図52A~図52Gの擬似コードは引き続き用いるが図52H~図52Jのスケーリングの擬似コードおよびテーブルの代わりに、図52K~図52Nのスケーリングの擬似コードおよびテーブルを用いる。参照フレーム距離は、フィールドレイヤヘッダの要素から取得される。Nの値は、図52Nのテーブルに示すように、動きベクトル範囲に依存する。8.ハイブリッド動きベクトル予測前のセクションで算出された動きプレディクタは、そのプレディクタがビットストリーム内で明示的に符号化されているかどうかを確認するために、A上のプレディクタおよびC左のプレディクタを基準にして検査される。明示的に符号化されている場合は、動きベクトルプレディクタとしてプレディクタAを用いるか、プレディクタCを用いるかを示すビットが存在する。図53の擬似コードは、そのようなハイブリッド動きベクトル予測の復号を示す。この擬似コードでは、変数predictor_pre_xおよびpredictor_pre_yが、それぞれ、前のセクションで算出された水平方向および垂直方向の動きベクトルプレディクタである。変数predictor_post_xおよびpredictor_post_yは、それぞれ、ハイブリッド動きベクトル予測を検査した後の、水平方向および垂直方向の動きベクトルプレディクタである。変数predictor_pre、predictor_post、predictorA、predictorB、およびpredictorCはすべて、predictor_flagの値で示される極性のフィールドを表す。例えば、反対のフィールドプレディクタが用いられていることをpredictor_flagが示している場合は次のようになる。同様に、同じフィールドプレディクタが用いられていることをpredictor_flagが示している場合は次のようになる。ここで、oppositefieldpredおよびsamefieldpredの値は、前のセクションで説明したように算出される。9.ルミナンス動きベクトルの再構成1MVおよび4MVマクロブロックの両方について、ルミナンス動きベクトルは、以下のように、差分をプレディクタに加算することによって再構成される。ここで、変数range_xおよびrange_yは、MVRANGE4633に依存し、図49Bのテーブルで指定される。NUMREF=0の場合参照フィールドが1つであるインターレースPフィールド:mv_x=dmv_xpredictor_xsmodrange_xmv_y=dmv_ypredictor_ysmodrange_yNUMREF=1の場合参照フィールドが2つであるインターレースPフィールド:mv_x=dmv_xpredictor_xsmodrange_xmv_y=dmv_ypredictor_ysmodrange_y/2インターレースPフィールドが2つの参照ピクチャを用いる場合NUMREF=1は、図54に示すように、動きベクトル差分の復号において導出されたpredictor_flagと、動きベクトル予測において導出されたdominantpredictorの値との組合せによって、どのフィールドが参照として用いられているかが決定される。1MVマクロブロックには、マクロブロックのルミナンス成分を構成する4つのブロックに対して1つの動きベクトルが存在する。マクロブロックレイヤにMVデータが存在しないことをMBMODE4661シンタックス要素が示している場合は、dmv_x=0およびdmv_y=0mv_x=predictor_xおよびmv_y=predictor_yである。4MVマクロブロックでは、マクロブロック内のインター符号化されたルミナンスブロックのそれぞれが、それぞれの動きベクトルを有する。したがって、各4MVマクロブロックには4つのルミナンス動きベクトルが存在する。ブロックについて動きベクトル情報が存在しないことを4MVBP4664シンタックス要素が示している場合は、そのブロックについてdmv_x=0およびdmv_y=0mv_x=predictor_xおよびmv_y=predictor_yである。10.クロマ動きベクトルの導出クロマ動きベクトルは、ルミナンス動きベクトルから導出される。クロマ動きベクトルは、2つのステップで再構成される。第1のステップでは、ルミナンス動きベクトルを適切に組み合わせ、スケーリングすることによって、名目上のクロマ動きベクトルを取得する。スケーリングは、1/4画素オフセットより1/2画素オフセットが優先されるように行われる。第2のステップでは、1ビットのFASTUVMCシンタックス要素を用いて、クロマ動きベクトルのさらなる丸めが必要かどうかを決定する。FASTUVMC=0であれば、第2のステップで丸めを行わない。FASTUVMC=1であれば、1/4画素オフセットにあるクロマ動きベクトルを、最も近い1/2画素位置およびフル画素位置に丸める。双線形bilinearフィルタリングだけがすべてのクロマ補間に用いられる。変数cmv_xおよびcmv_yは、それぞれクロマ動きベクトル成分を表し、lmv_xおよびlmv_yは、それぞれルミナンス動きベクトル成分を表す。1MVマクロブロックでは、クロマ動きベクトルは、以下のように、ルミナンス動きベクトルから導出される。cmv_x=lmv_xround[lmv_x3]>>1cmv_y=lmv_yround[lmv_y3]>>1ここで、round[0]=0、round[1]=0、round[2]=0、round[3]=1。図55Aおよび図55Bの擬似コードは、4MVマクロブロックの4つのルミナンスブロックにある動き情報からクロマ動きベクトルを導出する第1のステップの様子を示す。この擬似コードのixおよびiyは一時変数である。図55Aは、参照フィールドが1つであるインターレースPフィールドのクロマ動きベクトル導出の擬似コードであり、図55Bは、参照フィールドが2つであるインターレースPフィールドのクロマ動きベクトル導出の擬似コードである。11.輝度補償インターレースPフィールドに輝度補償が用いられていることをMVMODE4635が示している場合は、参照フィールドの1つまたは両方の画素が、現在のPフィールドのプレディクタとして用いられる前に再マッピングされる。輝度補償が用いられる場合は、第1の参照フィールドのビットストリーム内にLUMSCALE14638およびLUMSHIFT14639シンタックス要素が存在し、第2の参照フィールドについても同様にLUMSCALE24640およびLUMSHIFT24641要素が存在することが可能である。図56の擬似コードは、第1の参照フィールドの参照フィールド画素の再マッピングに用いられるルックアップテーブルを構築するために、LUMSCALE14638およびLUMSHIFT14639の値が用いられる様子を示すこの擬似コードは、第2の参照フィールドの場合のLUMSCALE24640およびLUMSHIFT24641にも同様に適用可能である。次のように、参照フィールドのY成分がLUTY[]テーブルを用いて再マッピングされ、Cb/Cr成分がLUTUV[]テーブルを用いて再マッピングされる。ここで、pYは、参照フィールド内のオリジナルのルミナンス画素値であり、は、参照フィールド内の再マッピングされたルミナンス画素値であり、pUVは、参照フィールド内のオリジナルのCbまたはCr画素値であり、は、参照フィールド内の再マッピングされたCbまたはCr画素値である。12.残りの復号復号器は、マクロブロックのCBPCY4662要素が存在する場合にはこれを復号する。CBPCY4662要素は、係数データの存在/不在を示す。復号器は、ブロックレイヤにおいて、インター符号化されたブロックおよびイントラ符号化されたブロックの係数データを復号する4MVマクロブロックの場合を除く。復号器は、インター符号化されたブロックを再構成するために、復号器は、1変換タイプ8×8、8×4、4×8、または4×4を選択し、2サブブロックパターンを復号し、3係数を復号し、4逆変換を実行し、5逆量子化を実行し、6そのブロックの予測を取得し、7その予測と誤差ブロックとを加算する。C.第2の複合実装形態におけるシーケンスおよびセマンティクス第2の複合実装形態では、圧縮ビデオシーケンスは、階層型レイヤとして構造化されたデータで構成される。これらのレイヤは、上から順に、ピクチャレイヤ、マクロブロックレイヤ、およびブロックレイヤである。このシーケンスの前にシーケンスレイヤがある。図57A~図57Cは、各種レイヤを構成するビットストリーム要素を示す。1.シーケンスレイヤのシンタックスおよびセマンティクスシーケンスレベルヘッダは、圧縮ピクチャのシーケンスの復号に用いられるシーケンスレベルパラメータを収容する。復号器は、このヘッダを、外部から伝達された復号器構成情報として、またはビデオデータビットストリームの一部として、用いることが可能である。図57Aは、シーケンスレイヤビットストリームのシンタックス図であり、シーケンスレイヤを構成する要素を示す。クリッププロファイルPROFILE5701要素は、クリップ生成に用いられる符号化プロファイルを指定する。PROFILEがアドバンスドプロファイルの場合、クリップレベルLEVEL5702要素は、そのクリップの符号化レベルを指定する。あるいは例えば、他のプロファイルの場合、クリップレベルは、外部手段によって復号器に伝達される。INTERLACE5703要素は、PROFILEがアドバンスドプロファイルの場合に存在する1ビットフィールドである。INTERLACE5703は、ビデオがプログレッシブモードで符号化されているか、インターレースモードで符号化されているかを示す。INTERLACE=0であれば、ビデオフレームはプログレッシブモードで符号化されている。INTERLACE=1であれば、ビデオフレームはインターレースモードで符号化されている。PROFILE5701がアドバンスドプロファイルでない場合、ビデオはプログレッシブモードで符号化されている。拡張動きベクトルEXTENDED_MV5704要素は、拡張動きベクトル機能がオンになっているかオフになっているかを示す1ビットフィールドである。EXTENDED_MV=1であれば、動きベクトルは拡張範囲を有する。EXTENDED_MV=0であれば、動きベクトルは拡張範囲を有しない。2.ピクチャレイヤのシンタックスおよびセマンティクスピクチャのデータは、ピクチャヘッダと、それに続くマクロブロックレイヤ用データとからなる。図57Bは、ピクチャレイヤビットストリームのシンタックス図であり、インターレースPフィールドのピクチャレイヤを構成する要素を示す。ピクチャタイプPTYPE5722要素は、1ビットフィールドまたは可変サイズのフィールドである。Bピクチャがない場合は、IおよびPピクチャだけがシーケンス内に存在し、PTYPEは単一ビットで符号化される。PTYPE=0であれば、ピクチャタイプはIである。PTYPE=1であれば、ピクチャタイプはPである。Bピクチャの数が0より大きい場合、PTYPE5722は、フレームのピクチャタイプを示す、可変サイズのフィールドである。PTYPE=1であれば、ピクチャタイプはPである。PTYPE=01バイナリであれば、ピクチャタイプはIである。そして、PTYPE=00バイナリであれば、ピクチャタイプはBである。参照ピクチャ数NUMREF5731要素は、インターレースPフィールドヘッダ内に存在する、1ビットのシンタックス要素である。この要素は、インターレースPフィールドが1つの参照ピクチャを有するかNUMREF=0、2つの参照ピクチャを有するかNUMREF=1を示す。参照フィールドピクチャインジケータREFFIELD5732は、NUMREF=0の場合にインターレースPフィールドヘッダ内に存在する、1ビットのシンタックス要素である。この要素は、可能な2つの参照ピクチャのどれをインターレースPフィールドが用いるかを示す。拡張MV範囲フラグMVRANGE5733は、特定のプロファイルメインプロファイルを用いて符号化され、BROADCAST要素が1に設定されているシーケンスのPピクチャに存在する、可変サイズのシンタックス要素である。MVRANGE5733は、大まかには、動きベクトルの拡張範囲すなわち、動きベクトルの、より長い、可能な水平方向および/または垂直方向変位を示す。MVRANGE5733は、動きベクトル差分の復号に用いられる。動きベクトルモードMVMODE5735要素は、可変サイズのシンタックス要素であり、4つの動きベクトル符号化モードのうちの1つ、または1つの輝度補償モードを信号伝達する。動きベクトル符号化モードは、動き補償の端数画素補間規則が異なる3つの1MVモードを含む。1MVは、ピクチャ内の各マクロブロックがせいぜい1つの動きベクトルを有することを意味する。混在MVモードでは、ピクチャ内の各マクロブロックは、1つまたは4つの動きベクトルを有するか、スキップされることが可能である。PQUANTピクチャの量子化係数の値に応じて、図47Eに示すテーブルのうちのいずれか1つがMVMODE5735要素用に用いられる。動きベクトルモード2MVMODE25736要素は、可変サイズのシンタックス要素であり、MVMODE5735が輝度補償を信号伝達する場合にインターレースPフィールドヘッダ内に存在する。MVMODE25736については、先出のテーブルから輝度補償用のコードを除いたものを用いることが可能である。ルミナンス尺度LUMSCALE5738要素およびルミナンスシフトLUMSHIFT5739要素は、それぞれ、輝度補償に用いられる6ビット値である。LUMSCALE5738およびLUMSHIFT5739は、MVMODE5735が輝度補償を信号伝達する場合に、インターレースPフィールドヘッダ内に存在する。マクロブロックモードテーブルMBMODETAB5742要素は、インターレースPフィールドヘッダ用の2ビットフィールドである。MBMODETAB5742は、マクロブロックレイヤ内のマクロブロックモードMBMODE5761シンタックス要素を符号化/復号するために4つの符号テーブル2ビット値で指定されるテーブル0~3のどれが用いられるかを示す。動きベクトルテーブルMVTAB5743要素は、インターレースPフィールド用の2ビットフィールドである。MVTAB5743は、動きベクトルデータを符号化/復号するために4つの符号テーブル2ビット値で指定されるテーブル0~3のどれが用いられるかを示す。4MVブロックパターンテーブル4MVBPTAB5744要素は、ピクチャが混在MVタイプであることを、MVMODE5735または、MVMODE5735が輝度補償に設定されている場合はMVMODE25736が示している場合に、インターレースPフィールド内に存在する2ビット値である。4MVBPTAB5744は、4MVマクロブロック内の4MVブロックパターン4MVBP5764フィールドを符号化/復号するために4つの符号テーブル2ビット値で指定されるテーブル0~3のどれが用いられるかを信号伝達する。インターレースPフレームヘッダ図示せずは、図57Bに示したインターレースPフィールドヘッダと同じ要素を多く有する。これらは、PTYPE5722、MBMODETAB5742、MVTAB5743、および4MVBPTAB5744を含むが、インターレースPフレームの厳密なシンタックスおよびセマンティクスはインターレースPフィールドと異なる可能性がある。例えば、繰り返しになるが、4MVBPTABは、4MVマクロブロック内の4MVブロックパターン4MVBP要素を符号化/復号するために4つの符号テーブル2ビット値で指定されるテーブル0~3のどれが用いられるかを示す2ビットフィールドである。インターレースPフレームヘッダはさらに、1MVモードと4MVモードの切り換え、および輝度補償の信号伝達に関して、別の要素を含む。インターレースPフレームは、マクロブロックごとに2つの動きベクトルを有する、フィールド符号化されたマクロブロックを含むことが可能なので、インターレースPフレームヘッダは、2動きベクトルブロックパターンテーブル2MVBPTAB要素を含む。2MVBPTABは、インターレースPフレーム内に存在する2ビットフィールドである。このシンタックス要素は、2MVフィールド符号化されたマクロブロックにある2MVブロックパターン2MVBP要素を符号化/復号するために、4つのテーブル2ビット値で指定されるテーブル0~3のどれが用いられるかを信号伝達する。図47Kは、2MVBPに使用可能な4つのテーブルを示す。インターレースBフィールドおよびインターレースBフレームは、インターレースPフィールドおよびインターレースPフレームと同じ要素を多く有する。特に、インターレースBフレームは、2MVBPTABおよび4MVBPTAB5721の両シンタックス要素を含むが、これらの要素のセマンティクスはインターレースPフィールドおよびPフレームと異なる可能性がある。3.マクロブロックレイヤのシンタックスおよびセマンティクスマクロブロック用データは、マクロブロックヘッダとそれに続くブロックレイヤとからなる。図57Cは、マクロブロックレイヤビットストリームのシンタックス図であり、インターレースPフィールドのマクロブロックのマクロブロックレイヤを構成する要素を示す。マクロブロックモードMBMODE5761要素は、可変サイズの要素である。この要素は、マクロブロック1MV、4MV、またはイントラの動きベクトルの数、符号化されたブロックパターンCBPCY5762要素がマクロブロックに対して存在するかどうか、および一部のケースでは動きベクトル差分データがマクロブロックに対して存在するかどうかなどの情報を統合的に示す。動きベクトルデータMVDATA5763要素は、可変サイズの要素であり、マクロブロックの動きベクトルの動きベクトル情報例えば、水平方向および垂直方向の差分を符号化する。2つの参照フィールドを有するインターレースPフィールドについては、MVDATA5763はさらに、動きベクトルについて、優勢的および非優勢的な動きベクトルプレディクタの中から選択するための情報を符号化する。4動きベクトルブロックパターン4MVBP5764要素は、マクロブロックが4つの動きベクトルを有することをMBMODE5761が示している場合に存在する。4MVBP5764要素は、4つのルミナンスブロックのどれが非ゼロ動きベクトル差分を含むかを示す。符号テーブルを用いて、4MVBP5764要素が0~14の値に復号される。この復号された値は、バイナリ値で表される場合に、図34に示すように、対応するルミナンスブロックの動きベクトルが存在するかどうかを示すビットフィールドを表す。2動きベクトルブロックパターン2MVBP要素図示せずは、可変サイズのシンタックス要素であり、インターレースPフレーム内のマクロブロックに存在する。インターレースPフレームのマクロブロックでは、2MVBPは、マクロブロックが2つのフィールド動きベクトルを有することをMBMODE5761が示している場合に、存在する。この場合、2MVBPは、2つのフィールドトップおよびボトムのどれが非ゼロ動きベクトル差分を含むかを示す。ブロックレベル動きベクトルデータBLKMVDATA5765要素は、特定の状況で存在する、可変サイズの要素である。この要素は、マクロブロックのブロックの動き情報を含む。ハイブリッド動きベクトル予測HYBRIDPRED5766要素は、インターレースPフィールドのマクロブロックに存在可能な、動きベクトルごとの、1ビットのシンタックス要素である。ハイブリッド動きベクトル予測が用いられるときに、HYBRIDPRED5766は、2つの動きベクトルプレディクタのどれを用いるべきかを示す。4.ブロックレイヤのシンタックスおよびセマンティクスインターレースピクチャのブロックレイヤは、プログレッシブピクチャのブロックレイヤのシンタックスおよびセマンティクスに従う。一般に、ブロックおよびサブブロックのDC係数およびAC係数の情報は、ブロックレイヤで信号伝達される。D.第2の複合実装形態における復号以下のセクションでは、インターレースPフィールドの復号処理に焦点を当てる。1.インターレースPフィールド復号のための参照インターレースPフィールドは、動き補償において、既に復号された1つまたは2つのフィールドを参照することが可能である。ピクチャレイヤ内のNUMREF5731フィールドは、現在のフィールドが参照することが可能な先行参照フィールドピクチャが1つか2つかを示す。NUMREF=0であれば、現在のインターレースPフィールドは1つのフィールドだけを参照することが可能である。この場合は、ピクチャレイヤビットストリーム内でREFFIELD5732要素が続き、この要素が、どのフィールドが参照として用いられているかを示す。REFFIELD=0であれば、表示順で時間的に最も近いIフィールドまたはPフィールドが参照として用いられている。REFFIELD=1であれば、時間的に2番目に近いIフィールドピクチャまたはPフィールドピクチャが参照として用いられている。NUMREF=1であれば、現在のインターレースPフィールドピクチャは、表示順で時間的に最も近い2つのIフィールドピクチャまたはPフィールドピクチャを参照として用いる。前述の、図24A~図24Fに示した、NUMREF=0およびNUMREF=1の場合の参照フィールドピクチャの例は、第2の複合実装形態に当てはまる。2.ピクチャタイプおよびピクチャレイヤテーブルの選択インターレースPフィールドは、2つのタイプ1MVまたは混在MVのうちの1つであることが可能である。1MVPフィールドでは、1MVマクロブロックについて、マクロブロック内の6つのブロックすべての予測ブロックの変位を示すために単一の動きベクトルが用いられる。混在MVPフィールドでは、マクロブロックを1MVマクロブロックまたは4MVマクロブロックとして符号化することが可能である。4MVマクロブロックの場合は、4つのルミナンスブロックのそれぞれが、それぞれに関連付けられた動きベクトルを有することが可能である。1MVモードまたは混在MVモードは、MVMODE5735およびMVMODE25736ピクチャレイヤフィールドによって信号伝達される。インターレースPフィールドの場合、ピクチャレイヤは、フィールドの動き補償モードおよび輝度補償を制御するシンタックス要素を含む。MVMODE5735は、1フィールドの4つの動きベクトルモードのうちの1つ、または、2そのフィールドで輝度補償が用いられていること、を信号伝達する。輝度補償が信号伝達された場合は、ピクチャレイヤ内で、MVMODE25736、LUMSCALE5738、およびLUMSHIFT5739の各フィールドが続く。PQUANTが12より大きいかどうかに応じて、図47Eの2つのテーブルのうちの1つが、MVMODE5735およびMVMODE25736フィールドを復号するために用いられる。動きベクトルモードが混在MVモードの場合、MBMODETAB5742は、フィールドの各マクロブロックのモードを信号伝達するために4つの混在MVMBMODEテーブルのどれが用いられるかを信号伝達する。動きベクトルモードが混在MVでない場合この場合は、インター符号化されたすべてのマクロブロックが1つの動きベクトルを用いる、MBMODETAB5742は、フィールドの各マクロブロックのモードを信号伝達するために4つの1MVMBMODEテーブルのどれが用いられるかを信号伝達する。MVTAB5743は、インターレースPフィールドのマクロブロックの動きベクトル差分を復号するために用いられる符号テーブルを示す。4MVBPTAB5744は、インターレースPフィールドの4MVマクロブロックの4MVBP5764を復号するために用いられる符号テーブルを示す。3.マクロブロックモードおよび動きベクトルブロックパターンインターレースPフィールドのマクロブロックは、可能な3つのタイプ1MV、4MV、およびイントラのうちの1つであることが可能である。マクロブロックタイプは、マクロブロックレイヤ内のMBMODE5761によって信号伝達される。1MVマクロブロックは、1MVおよび混在MVPフィールドで発生する可能性がある。1MVマクロブロックは、マクロブロック内の6つのブロックすべてについて現在のピクチャと参照ピクチャとの間の変位が単一の動きベクトルによって表されるマクロブロックである。現在のブロックと参照ブロックとの間の差分は、ブロックレイヤにおいて符号化される。MBMODE5761は、1MVマクロブロックについて、1マクロブロックタイプが1MVであること、2CBPCY5762が存在するかどうか、および3MVDATA5763が存在するかどうか、を示す。CBPCY5762が存在することをMBMODE5761が示している場合は、CBPCY5762がマクロブロックレイヤ内に存在して、6つのブロックのどれがブロックレイヤ内で符号化されているかを示す。CBPCY5762が存在しないことをMBMODE5761要素が示している場合は、CBPCY5762が0に等しいと見なされ、マクロブロック内の6つのブロックのどれについてもブロックデータが存在しない。MVDATA5763が存在することをMBMODE5761が示している場合は、MVDATA5763がマクロブロックレイヤ内に存在して、動きベクトル差分を符号化する。この動きベクトル差分が動きベクトルプレディクタと結合されて動きベクトルが再構成される。MVDATA5763が存在しないことをMBMODE5761が示している場合は、動きベクトル差分がゼロであると見なされ、したがって、動きベクトルが動きベクトルプレディクタと等しくなる。4MVマクロブロックは、混在MVPフィールドにおいてのみ発生する。4MVマクロブロックは、マクロブロック内の4つのルミナンスブロックのそれぞれが、そのブロックの、現在のピクチャと参照ピクチャとの間の変位を示す関連付けられた動きベクトルを有することが可能であるマクロブロックである。クロマブロックの変位は、4つのルミナンス動きベクトルから導出される。現在のブロックと参照ブロックとの間の差分は、ブロックレイヤにおいて符号化される。MBMODE5761は、4MVマクロブロックについて、1マクロブロックタイプが4MVであること、2CBPCY5762が存在するかどうか、および34MVBP5764が存在するかどうか、を示す。4MVBP5764が存在することをMBMODE5761が示している場合は、4MVBP5764がマクロブロックレイヤ内に存在して、4つのルミナンスブロックのうちのどれが非ゼロ動きベクトル差分を含むかを示す。4MVBP5764は、0~14の値に復号される。これは、バイナリ値で表される場合に、図27に示すように、対応するルミナンスブロックの動きベクトルデータが存在するかどうかを示すビットフィールドを表す。4MVBP5764の4ビットの各場所においては、値0は、そのブロックについて動きベクトル差分BLKMVDATA5765が存在しないことを示し、動きベクトル差分は0と見なされる。値1は、そのブロックについて動きベクトル差分BLKMVDATA5765が存在することを示す。4MVBP5764が存在しないことをMBMODE5761が示している場合は、4つのルミナンスブロックすべてについて動きベクトル差分データBLKMVDATA5765が存在すると見なされる。インターレースPフレームのフィールド符号化されたマクロブロックは、2つの動きベクトルを含むことが可能である。2フィールドMVマクロブロックの場合、2MVBP要素は、2つのフィールドのどれが非ゼロ差分動きベクトルを有するかを示す。イントラマクロブロックは、1MVまたは混在MVPフィールドで発生する可能性がある。イントラマクロブロックは、6つのブロックすべてが、先行ピクチャデータをまったく参照せずに符号化されたマクロブロックである。現在のブロック画素と定数値128との差分が、ブロックレイヤ内で符号化される。MBMODE5761は、イントラマクロブロックについて、1マクロブロックタイプがイントラであること、および2CBPCY5762が存在するかどうかを示す。イントラマクロブロックの場合、CBPCY5762が存在すれば、これは、6つのブロックのどれが、符号化されたAC係数データをブロックレイヤ内に有するかを示す。4.動きベクトル差分の復号MVDATA5763フィールドおよびBLKMVDATA5765フィールドは、マクロブロックまたはマクロブロック内のブロックの動き情報を符号化する。1MVマクロブロックは、単一のMVDATA5763フィールドを有し、4MVマクロブロックは、0~4個のBLKMVDATA5765を有することが可能である。動きベクトル差分の算出は、参照が1つの場合NUMREF=0と参照が2つの場合NUMREF=1とでは実行のされかたが異なる。参照フィールドを1つだけ有するフィールドピクチャでは、マクロブロックレイヤ内のMVDATA5763またはBLKMVDATA5765フィールドのそれぞれが、1水平方向の動きベクトル差分成分、および2垂直方向の動きベクトル差分成分を統合的に符号化する。MVDATA5763フィールドまたはBLKMVDATA5765フィールドは、ハフマンVLCであり、その後にFLCが続く。VLCの値によってFLCのサイズが決まる。ピクチャレイヤ内のMVTAB5743フィールドは、VLCの復号に用いられるテーブルを指定する。図58Aは、1つの参照フィールドを有するフィールドピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分の復号を示す擬似コードである。この擬似コードでは、値dmv_xおよびdmv_yが算出される。値dmv_xは、差分水平方向動きベクトル成分であり、値dmv_yは、差分垂直方向動きベクトル成分である。変数k_xおよびk_yは、長い動きベクトルのための固定長値であって、図58Bのテーブルに示すように、MVRANGE5733で定義される動きベクトル範囲に依存する。値halfpel_flagは、ピクチャの動き補償に用いられる精度が1/2画素か1/4画素かを示すバイナリ値である。halfpel_flagの値は、動きベクトルモードによって決まる。モードが1MVまたは混在MVであれば、halfpel_flag=0であり、1/4画素精度が動き補償に用いられる。モードが1MV1/2画素または1MV1/2画素双線形であれば、halfpel_flag=1であり、1/2画素精度が用いられる。offset_tableは、次のように定義される配列である。offset_table[9]={0,1,2,4,8,16,32,64,128}2つの参照フィールドを有するフィールドピクチャでは、マクロブロックレイヤ内のMVDATA5763フィールドまたはBLKMVDATA5765フィールドのそれぞれが、1水平方向動きベクトル差分成分、2垂直方向動きベクトル差分成分、および3用いられる動きベクトルプレディクタが優勢的か非優勢的か、を統合的に符号化する。MVDATA5763フィールドまたはBLKMVDATA5765フィールドはハフマンVLCであり、その後にFLCが続く。VLCの値はFLCのサイズによって決まる。MVTAB5743フィールドは、VLCの復号に用いられるテーブルを指定する。図59は、2つの参照フィールドを有するフィールドピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分および優勢的/非優勢的なプレディクタの復号を示す擬似コードである。この擬似コードでは、値predictor_flagは、用いられているのが優勢的な動きベクトルプレディクタか、非優勢的な動きベクトルプレディクタかを示すバイナリフラグである0=優勢的なプレディクタ、1=非優勢的なプレディクタ。他の様々な変数dmv_x、dmv_y、k_x、k_y、halfpel_flag、およびoffset_table[]などは、参照フィールドが1つの場合と同様である。テーブルsize_tableは、次のように定義される配列である。size_table[14]={0,0,1,1,2,2,3,3,4,4,5,5,6,6}5.動きベクトルプレディクタ動きベクトルは、前のセクションで算出された動きベクトル差分を動きベクトルプレディクタに加算することによって算出される。プレディクタは、最大3つの隣接する動きベクトルから算出される。1MVインターレースPフィールドでは、現在のマクロブロックのプレディクタを算出するために最大3つの動きベクトルを用いる。隣接するプレディクタA、B、およびCの位置を図5Aおよび図5Bに示した。プログレッシブPフレームについて説明したように、隣接する候補プレディクタは、現在のマクロブロックが行の最後のマクロブロックである場合を除き、左、上、および右上のマクロブロックから取得される。マクロブロックが行の最後のマクロブロックである場合は、プレディクタBは、右上ではなく左上のマクロブロックから取得される。特殊なケースとして、フレームが1マクロブロック幅である場合は、プレディクタは常にプレディクタA上のプレディクタである。混在MVインターレースPフィールドでは、現在のブロックまたはマクロブロックのプレディクタを算出するために最大3つの動きベクトルを用いる。図6A~図10は、プログレッシブPフレームについて説明したように、混在MVPフィールドの1MVおよび4MVマクロブロックの3つの候補動きベクトルを示す。特殊なケースとして、フレームが1マクロブロック幅である場合は、プレディクタは常にプレディクタA上のプレディクタである。ピクチャヘッダ内のNUMREF5731フィールドが0であれば、現在のインターレースPフィールドは、既に符号化されたピクチャを1つだけ参照することが可能である。NUMREF=1であれば、現在のインターレースPフィールドは、最も近い2つの参照フィールドピクチャを参照することが可能である。前者の場合は、各動きベクトルについて単一のプレディクタを算出する。後者の場合は、2つの動きベクトルプレディクタを算出する。図60Aおよび図60Bの擬似コードは、参照フィールドが1つである場合について動きベクトルプレディクタを算出する様子を示す。変数fieldpred_xおよびfieldpred_yは、動きベクトルプレディクタの水平方向成分および垂直方向成分を表す。参照フィールドが2つであるインターレースPフィールドの場合NUMREF=1、現在のフィールドは、最も近い2つの参照フィールドを参照することが可能である。この場合は、インター符号化された各マクロブロックについて、2つの動きベクトルプレディクタが算出される。1つのプレディクタは、同じ極性の参照フィールドから算出され、もう1つのプレディクタは、反対の極性の参照フィールドから算出される。図61A~図61Fの擬似コードは、参照フィールドが2つあり、動きベクトルプレディクタ候補が3つある場合について、動きベクトルプレディクタが算出される様子を示す。変数samefieldpred_xおよびsamefieldpred_yは、同じフィールドにある動きベクトルプレディクタの水平方向成分および垂直方向成分を表し、変数oppositefieldpred_xおよびoppositefieldpred_yは、反対のフィールドにある動きベクトルプレディクタの水平方向成分および垂直方向成分を表す。変数dominantpredictorは、優勢的なプレディクタがどのフィールドに含まれるかを示す。動きベクトル差分から復号された値predictor_flagは、用いられているのが優勢的なプレディクタか、非優勢的なプレディクタかを示す。6.ハイブリッド動きベクトル予測インターレースPフィールドが1MVまたは混在MVの場合は、前のセクションで算出された動きベクトルプレディクタが、そのプレディクタがビットストリーム内で明示的に符号化されているかどうかを確認するために、A上のプレディクタおよびC左のプレディクタを基準にして検査される。明示的に符号化されている場合は、動きベクトルプレディクタとしてプレディクタAを用いるか、プレディクタCを用いるかを示すビットが存在する。図14Aおよび図14Bの擬似コードは、以下に示す変数を用いる、ハイブリッド動きベクトル予測の復号を示す。変数predictor_pre_xおよびpredictor_pre_yと、候補プレディクタA、B、およびCは、前のセクションで算出されているとおりであるすなわち、これらは、反対のフィールドのプレディクタまたは同じフィールドのプレディクタであり、どちらであるかはpredictor_flagで示される。変数predictor_post_xおよびpredictor_post_yは、それぞれ、ハイブリッド動きベクトル予測を検査した後の、水平方向および垂直方向の動きベクトルプレディクタである。7.動きベクトルの再構成1MVマクロブロックの場合も4MVマクロブロックの場合も、ルミナンス動きベクトルは、次のように差分をプレディクタに加算することによって再構成される。mv_x=dmv_xpredictor_xsmodrange_xmv_y=dmv_ypredictor_ysmodrange_yここでし、変数range_xおよびrange_yはMVRANGE5733に依存し、図58Bに示すテーブルで指定される。演算smodは、次のように定義される符号付きモジュラスsignedmodulusである。Asmodb=Ab2b-bこれによって、再構成されたベクトルが有効であることが保証される。Asmodbは、-b~b-1の範囲に収まる。1MVマクロブロックには、マクロブロックのルミナンス成分を構成する4つのブロックに対して1つの動きベクトルが存在する。マクロブロックがイントラ符号化されていることをdmv_xが示している場合は、そのマクロブロックに関連付けられた動きベクトルが存在しない。マクロブロックがスキップされていれば、dmv_x=0およびdmv_y=0であるので、mv_x=predictor_xおよびmv_y=predictor_yである。4MVマクロブロックでは、マクロブロック内のインター符号化されたルミナンスブロックのそれぞれが、それぞれの動きベクトルを有する。したがって、各4MVマクロブロックには0~4つのルミナンス動きベクトルが存在する。4MVマクロブロックにおいて符号化されていないブロックが発生しうるのは、1マクロブロックがスキップされ、マクロブロックが4MVである場合この場合はマクロブロック内のすべてのブロックがスキップされる、または2ブロックが符号化されていないことを、マクロブロックのCBPCY5762が示している場合である。ブロックが符号化されていない場合は、dmv_x=0およびdmv_y=0であるので、mv_x=predictor_xおよびmv_y=predictor_yである。8.クロマ動きベクトルの導出クロマ動きベクトルは、ルミナンス動きベクトルから導出される。さらに、4MVマクロブロックの場合は、クロマブロックをインター符号化するかイントラ符号化するかの決定が、ルミナンスブロックのステータスに基づいて行われる。クロマ動きベクトルは、2つのステップで再構成される。第1のステップでは、ルミナンス動きベクトルを適切に組み合わせ、スケーリングすることによって、名目上のクロマ動きベクトルを取得する。スケーリングは、1/4画素オフセットより1/2画素オフセットが優先されるように行われる。第2のステップでは、シーケンスレベルの1ビットフィールドのFASTUVMCフィールドを用いて、クロマ動きベクトルのさらなる丸めが必要かどうかを決定する。FASTUVMC=0であれば、第2のステップで丸めを行わない。FASTUVMC=1であれば、1/4画素オフセットにあるクロマ動きベクトルを、最も近いフル画素位置に丸める。さらに、FASTUVMC=1の場合は、双線形フィルタリングだけをすべてのクロマ補間に用いる。1MVマクロブロックでは、クロマ動きベクトルは、以下のように、ルミナンス動きベクトルから導出される。//s_RndTbl[0]=0,s_RndTbl[1]=0,s_RndTbl[2]=0,s_RndTbl[3]=1cmv_x=lmv_xs_RndTbl[lmv_x3]>>1cmv_y=lmv_ys_RndTbl[lmv_y3]>>1図16Bの擬似コードは、以下に示す変数を用いて、4MVマクロブロックの4つのルミナンスブロックの動き情報からクロマ動きベクトルを導出する第1のステップの様子を示している。4MVマクロブロックの最大4つのルミナンス動きベクトルの中での優勢極性が決定され、その優勢極性を有するルミナンス動きベクトルからクロマ動きベクトルが決定されるその他の極性のルミナンス動きベクトルからではない。9.輝度補償参照フィールドに輝度補償が用いられている場合は、参照フィールド内の画素が、プレディクタとして用いられる前に再マッピングされる。輝度補償が用いられている場合は、ピクチャビットストリーム内にLUMSCALE5738およびLUMSHIFT5739が存在する。図18または図56の擬似コードは、参照フィールドの画素を再マッピングするためにLUMSCALE5738およびLUMSHIFT5739が用いられる様子を示している。次のように、参照のY成分がLUTY[]テーブルを用いて再マッピングされ、U成分およびV成分がLUTUV[]テーブルを用いて再マッピングされる。ここで、pYは、参照フィールド内のオリジナルのルミナンス画素値であり、は、参照フィールド内の再マッピングされたルミナンス画素値であり、pUVは、参照フィールド内のオリジナルのUまたはVの画素値であり、は、参照フィールド内の再マッピングされたUまたはVの画素値である。10.残りの復号復号器は、マクロブロックのCBPCY5762要素が存在する場合にはこれを復号する。CBPCY5762要素は、係数データの存在/不在を示す。復号器は、ブロックレイヤにおいて、インター符号化されたブロックおよびイントラ符号化されたブロックの係数データを復号する。復号器は、インター符号化されたブロックを再構成するために、1変換タイプ8×8、8×4、4×8、または4×4を選択し、2サブブロックパターンを復号し、3係数を復号し、4逆変換を実行し、5逆量子化を実行し、6そのブロックの予測を取得し、7その予測と誤差ブロックとを加算する。様々な実施形態に関連して本発明の原理を説明および図示してきたが、これらの様々な実施形態は、本発明の原理から逸脱することなく、構成および細部を改変することが可能であることを認識されよう。本明細書に記載のプログラム、処理、または方法は、特に断らない限り、何ら特定タイプのコンピューティング環境に関連するものでも限定されるものでもないことを理解されたい。様々なタイプの汎用または専用コンピューティング環境を本明細書に記載の教示に従う操作に用いることが可能であり、あるいは、それらの環境を用いて、本明細書に記載の教示に従う操作を実行することが可能である。ソフトウェアの形で示した、実施形態の要素をハードウェアの形で実装することも、ハードウェアの形で示した、実施形態の要素をソフトウェアの形で実装することも可能である。本発明の原理を適用しうる、多くの可能な実施形態を考慮して、特許請求項ならびにその均等物の範囲および趣旨に含まれうるすべての実施形態を本発明として特許請求するものとする。"