(57)【要約】      （修正有）【課題】インターレース・ビデオを符号化および復号する手法とツールを提供する。【解決手段】手法とツールは、（１）インターレース順方向予測フィールドのハイブリッド動きベクトル予測、（２）動きベクトル・ブロック・パターンを使用する、（３）動きベクトル・プレディクタについての優勢極性および非優勢極性を選択する、（４）参照フィールド選択情報および差分動きベクトル情報の統合的に符号化することおよび復号する、（５）インターレース順方向予測フィールドのマクロブロックのマクロブロック・モード情報を統合的に符号化する／復号する、（６）インターレース順方向予測フィールドに用いることが可能な参照フィールドの数の信号伝達を使用する、ならびに（７）インターレース順方向予測フィールドのマクロブロック用のクロマ動きベクトルを導出する、が含まれる。これらの手法とツールは、組み合わせて用いても、別々に用いてもよい。【選択図】図３１Ａ
2011101416.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ符号化器を実装するコンピューティング・デバイスを使用してビデオ情報を変換するコンピュータ実装方法であって、前記方法は、前記ビデオ符号化器を実装する前記コンピューティング・デバイスにより、
動きベクトル・プレディクタの優勢極性を決定すること、
前記優勢極性に少なくとも部分的に基づいて前記動きベクトル・プレディクタをどのように表すかを決定すること、
前記動きベクトル・プレディクタの極性選択情報を、ビットストリーム内で信号伝達すること、
前記動きベクトル・プレディクタに少なくとも部分的に基づいて動きベクトルを処理することであって、前記処理することは前記動きベクトルおよび前記動きベクトル・プレディクタから動きベクトル差分情報を決定することを含むこと、および
前記動きベクトル差分情報を、前記ビットストリーム内で信号伝達すること
を備え、
前記動きベクトルは、現在符号化中のインターレース順方向予測フィールドの現在のブロックまたはマクロブロックのためのものであり、前記優勢極性は、前記インターレース順方向予測フィールドにおける隣接するブロックまたはマクロブロックの複数の先行動きベクトルのそれぞれの参照フィールド極性に少なくとも部分的に基づくことを特徴とする方法。
【請求項２】
前記優勢極性は、前記複数の先行動きベクトルの多数が、現在符号化中のフィールドと同じ極性のフィールドを参照する場合には、同じ極性であり、前記優勢極性は、前記複数の先行動きベクトルの多数が、現在符号化中のフィールドと反対の極性のフィールドを参照する場合には、反対の極性であることを特徴とする請求項１に記載の方法。
【請求項３】
前記複数の先行動きベクトルは、前記隣接するブロックまたはマクロブロックの最大３つの先行動きベクトルからなり、前記隣接するブロックまたはマクロブロックは、前記現在のブロックまたはマクロブロックの左、上、および右上にあることを特徴とする請求項１に記載の方法。
【請求項４】
複数の追加動きベクトルのそれぞれについて、前記優勢極性を決定すること、前記動きベクトル・プレディクタをどのように表すかを決定すること、極性選択情報を信号伝達すること、前記動きベクトルを処理すること、および前記動きベクトル差分情報を信号伝達することを繰り返すことをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記動きベクトル・プレディクタは、最も近い２つのインターレース・イントラ・フィールドまたは順方向予測フィールドのうちのいずれか１つを参照するように強制されることを特徴とする請求項１に記載の方法。
【請求項６】
現在符号化中の前記フィールドは、極性を有し、前記動きベクトル・プレディクタの優勢極性を決定することは、
前記複数の先行動きベクトルのそれぞれについて、前記先行動きベクトルが同じ極性の参照フィールドを参照するか反対極性の参照フィールドを参照するかをチェックすることであって、前記同じ極性の参照フィールドは前記現在符号化中のフィールドの極性と同じ極性を有し、前記反対極性の参照フィールドは前記現在符号化中のフィールドの極性と反対の極性を有すること、
前記同じ極性の参照フィールドまたは反対極性の参照フィールドが前記チェックすることの結果を用いて優勢極性参照フィールドであるかを決定すること、および
前記優勢極性参照フィールドに依存して前記優勢極性を設定すること
を含むことを特徴とする請求項１に記載の方法。
【請求項７】
ビデオ符号化器を実装するコンピューティング・デバイスを使用してビデオ情報を変換するコンピュータ実装方法であって、前記方法は、前記ビデオ符号化器を実装する前記コンピューティング・デバイスにより、
動きベクトル・プレディクタの優勢極性および非優勢極性の選択を示す選択情報を処理することであって、前記優勢極性および非優勢極性は隣接するブロックまたはマクロブロックの複数の先行動きベクトルのそれぞれの参照フィールド極性に少なくとも部分的に基づいて決定されること、
前記動きベクトル・プレディクタの優勢極性および非優勢極性の選択を示す前記選択情報を、ビットストリーム内で信号伝達すること、
前記動きベクトル・プレディクタに少なくとも部分的に基づいて動きベクトルを処理することであって、前記処理することは前記動きベクトルおよび前記動きベクトル・プレディクタから動きベクトル差分情報を決定することを含むこと、および
前記動きベクトル差分情報を、前記ビットストリーム内で信号伝達すること
を備えることを特徴とする方法。
【請求項８】
前記動きベクトルは、インターレース順方向予測フィールドの現在のブロックまたはマクロブロックのためのものであり、前記選択情報を処理する前に、前記インターレース順方向予測フィールドが２つの参照フィールドを有することを示す信号を処理すること
をさらに備えることを特徴とする請求項７に記載の方法。
【請求項９】
前記選択情報がマクロブロック・レベルで信号伝達されることを特徴とする請求項７に記載の方法。
【請求項１０】
複数の追加動きベクトルのそれぞれについて、前記選択情報を処理すること、前記選択情報を信号伝達すること、前記動きベクトルを処理すること、および前記動きベクトル差分情報を信号伝達することを繰り返すことをさらに備えることを特徴とする請求項７に記載の方法。
【請求項１１】
前記優勢極性および非優勢極性をさらに備え、
前記複数の先行動きベクトルのそれぞれについて、前記先行動きベクトルが同じ極性の参照フィールドを参照するか反対極性の参照フィールドを参照するかをチェックすることであって、前記同じ極性の参照フィールドは前記現在のフィールドの極性と同じ極性を有し、前記反対極性の参照フィールドは前記現在のフィールドの極性と反対の極性を有すること、
前記同じ極性の参照フィールドまたは反対極性の参照フィールドが前記チェックすることの結果を用いて優勢極性参照フィールドであるかを決定すること、および
前記優勢極性参照フィールドに依存して前記優勢極性および非優勢極性を設定すること
を含むことを特徴とする請求項７に記載の方法。
【請求項１２】
動きベクトルの優勢極性動きベクトル・プレディクタおよび非優勢極性動きベクトル・プレディクタを決定する手段、
前記優勢極性か非優勢極性かの選択を示す、信号伝達された情報を復号する手段、
前記信号伝達された情報に少なくとも部分的に基づいて前記優勢極性動きベクトル・プレディクタか前記非優勢極性動きベクトル・プレディクタかを選択する手段、および
前記選択された動きベクトル・プレディクタに少なくとも部分的に基づいて前記動きベクトルを再構成する手段
を備え、
前記動きベクトルは、インターレース順方向予測フィールドの現在のブロックまたはマクロブロックのためのものであり、前記優勢極性動きベクトル・プレディクタおよび非優勢極性動きベクトル・プレディクタを決定する前記手段は、隣接するブロックまたはマクロブロックの複数の先行動きベクトルのそれぞれの参照フィールド極性を考慮することを特徴とするビデオ復号器。
【請求項１３】
動きベクトル差分情報を復号する手段をさらに備え、前記動きベクトルはさらに、前記動きベクトル差分情報に少なくとも部分的に基づくことを特徴とする請求項１２に記載の復号器。
【請求項１４】
前記選択された動きベクトル・プレディクタおよび前記動きベクトルは、（１）最も近いインターレース・イントラ・フィールドまたは順方向予測フィールド、あるいは（２）２番目に近いインターレース・イントラ・フィールドまたは順方向予測フィールドのいずれかを参照するように強制されることを特徴とする請求項１２に記載の復号器。
【請求項１５】
前記信号伝達された情報がマクロブロック・レベルで信号伝達されることを特徴とする請求項１２に記載の復号器。
【請求項１６】
ビデオ復号器を実装するコンピューティング・デバイスを使用して符号化ビデオ情報を変換するコンピュータ実装方法であって、前記方法は、前記ビデオ復号器を実装する前記コンピューティング・デバイスにより、
復号中の現在のインターレース順方向予測フィールドの現在のブロックまたはマクロブロックの動きベクトルの優勢極性動きベクトル・プレディクタおよび非優勢極性動きベクトル・プレディクタを決定することであって、前記決定することは前記現在のフィールドにおける１以上の隣接するブロックまたはマクロブロックのそれぞれの先行動きベクトルの参照フィールド極性に少なくとも部分的に基づくこと、
極性選択情報を、ビットストリーム内で受信すること、
前記極性選択情報に少なくとも部分的に基づいて前記優勢極性動きベクトル・プレディクタか前記非優勢極性動きベクトル・プレディクタかを選択すること、
動きベクトル差分情報を、前記ビットストリーム内で受信すること、および
前記選択された動きベクトル・プレディクタおよび前記動きベクトル差分情報から動きベクトルを再構成すること
を備えることを特徴とする方法。
【請求項１７】
前記現在のフィールドは極性を有し、前記優勢極性動きベクトル・プレディクタおよび前記非優勢極性動きベクトル・プレディクタを決定することは、
前記現在のフィールドにおける前記１つ以上の隣接するブロックまたはマクロブロックのそれぞれについて、前記先行動きベクトルが同じ極性の参照フィールドを参照するか反対極性の参照フィールドを参照するかをチェックすることであって、前記同じ極性の参照フィールドは前記現在のフィールドの極性と同じ極性を有し、前記反対極性の参照フィールドは前記現在のフィールドの極性と反対の極性を有すること、
前記同じ極性の参照フィールドまたは反対極性の参照フィールドが前記チェックすることの結果を用いて優勢極性参照フィールドであるかを決定すること、および
前記優勢極性参照フィールドに依存して前記優勢極性動きベクトル・プレディクタおよび前記非優勢極性動きベクトル・プレディクタを設定すること
を含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記１つ以上の隣接するブロックまたはマクロブロックは、前記現在のブロックまたはマクロブロックの左、上、および右上にあることを特徴とする請求項１６に記載の方法。
【請求項１９】
複数の追加動きベクトルのそれぞれについて、前記決定すること、極性選択情報を受信すること、選択すること、動きベクトル差分情報を受信すること、および前記動きベクトルを再構成することを繰り返すことをさらに備えることを特徴とする請求項１６に記載の方法。
【請求項２０】
前記選択された動きベクトル・プレディクタは、最も近い２つのインターレース・イントラ・フィールドまたは順方向予測フィールドのうちのいずれか１つを参照するように強制されることを特徴とする請求項１６に記載の方法。
【請求項２１】
ビデオ復号器を実装するコンピューティング・デバイスを使用して符号化ビデオ情報を変換するコンピュータ実装方法であって、前記方法は、前記ビデオ復号器を実装する前記コンピューティング・デバイスにより、
復号中の現在のフィールドの現在のブロックまたはマクロブロックの動きベクトルの優勢極性動きベクトル・プレディクタおよび非優勢極性動きベクトル・プレディクタを決定することであって、前記決定することは前記現在のフィールドにおける１以上の隣接するブロックまたはマクロブロックのそれぞれの先行動きベクトルの参照フィールド極性に少なくとも部分的に基づくこと、
前記優勢動きベクトル・プレディクタおよび非優勢極性動きベクトル・プレディクタ間の選択を示す選択情報を、ビットストリーム内で受信すること、
前記選択情報に少なくとも部分的に基づいて前記優勢動きベクトル・プレディクタか非優勢極性動きベクトル・プレディクタかを選択すること、
動きベクトル差分情報を、前記ビットストリーム内で受信すること、および
前記選択された動きベクトル・プレディクタおよび動きベクトル差分情報から動きベクトルを再構成すること
を備えることを特徴とする方法。
【請求項２２】
前記選択情報を受信する前に、前記現在のフィールドが２つの参照フィールドを有することを示す信号を受信することをさらに備えることを特徴とする請求項２１に記載の方法。
【請求項２３】
前記選択情報がマクロブロック・レベルで信号伝達されることを特徴とする請求項２１に記載の方法。
【請求項２４】
複数の追加動きベクトルのそれぞれについて、前記決定すること、前記選択情報を受信すること、前記選択すること、および前記動きベクトル差分情報を受信すること、および前記再構成することを繰り返すことをさらに備えることを特徴とする請求項２１に記載の方法。
【請求項２５】
前記現在のフィールドは極性を有し、前記優勢極性動きベクトル・プレディクタおよび前記非優勢極性動きベクトル・プレディクタを決定することは、
前記現在のフィールドにおける前記１つ以上の隣接するブロックまたはマクロブロックのそれぞれについて、前記先行動きベクトルが同じ極性の参照フィールドを参照するか反対極性の参照フィールドを参照するかをチェックすることであって、前記同じ極性の参照フィールドは前記現在のフィールドの極性と同じ極性を有し、前記反対極性の参照フィールドは前記現在のフィールドの極性と反対の極性を有すること、
前記同じ極性の参照フィールドまたは反対極性の参照フィールドが前記チェックすることの結果を用いて優勢極性参照フィールドであるかを決定すること、および
前記優勢極性参照フィールドに依存して前記優勢極性動きベクトル・プレディクタおよび前記非優勢極性動きベクトル・プレディクタを設定すること
を含むことを特徴とする請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許文書の開示の一部は、著作権保護の対象となる内容を含む。著作権保有者は、本特許開示が特許商標庁の特許ファイルまたはレコードにあるとおりにファクシミリ複製されることには異存がないが、それ以外の場合は、すべての著作権を保有するものとする。
【０００２】
本発明は、インターレース・ビデオの符号化および復号の手法およびツールに関する。
【背景技術】
【０００３】
デジタル・ビデオは、大量の記憶容量および伝送容量を消費する。一般的なＲＡＷの（加工処理していない）デジタル・ビデオ・シーケンスは、毎秒１５枚または３０枚のフレームを含む。各フレームは数万個または数十万個の画素（ペル（pels）とも呼ばれる）を含むことが可能であり、各画素は画像の非常に小さな構成要素を表す。ＲＡＷ形式の場合、コンピュータは一般に、画素を３つのサンプルの組（計２４ビット）で表す。例えば、画素は、画素のグレイ・スケール成分を定義する８ビットのルミナンス・サンプルと、画素のクロマ成分を定義する２つの８ビットのクロマ・サンプルとを含むことが可能である。したがって、一般的なＲＡＷデジタル・ビデオ・シーケンスの毎秒のビット数（ビット・レート）は、毎秒５００万ビット／秒以上になる可能性がある。
【０００４】
コンピュータやコンピュータ・ネットワークの多くは、ＲＡＷデジタル・ビデオを処理するに足るだけのリソースを有していない。このため、技術者らは、圧縮（符号化とも言う）を用いてデジタル・ビデオのビットレートを低減する。圧縮は、ビットをより低いビットレートの形式に変換することによって、ビデオを格納しおよび伝送するコストを下げる。圧縮解除（復号とも言う）は、オリジナルのビデオのバージョンを圧縮形式から再構成する。「コーデック（codec）」は、符号化器／復号器システムである。圧縮は可逆的（lossless）であることが可能であり、可逆的圧縮では、ビデオの画質は劣化しないが、ビットレートの低減量が、ビデオデータの変動性（エントロピーと呼ばれることもある）の固有の量によって制限される。また、圧縮は非可逆的（lossy）であることも可能であり、非可逆的圧縮では、ビデオの画質が劣化するが、ビットレートをより大幅に低減することが可能である。非可逆的圧縮は、可逆的圧縮と組み合わせて用いられることが多く、非可逆的圧縮は情報の近似を確立し、その近似を表すために可逆的圧縮が適用される。
【０００５】
一般に、ビデオ圧縮手法は、「イントラ・ピクチャ（ピクチャ内）」圧縮と「インター・ピクチャ（ピクチャ間）」圧縮とを含み、ここでピクチャは、例えば、プログレッシブ・スキャン・ビデオ・フレーム、（ビデオ・フィールドのラインが互い違いである）インターレース・ビデオ・フレーム、またはインターレース・ビデオ・フィールドである。プログレッシブ・フレームに対して、イントラ・ピクチャ圧縮手法は個別のフレーム（一般に、Ｉフレームまたはキー・フレームと呼ばれる）を圧縮し、インター・ピクチャ圧縮手法は、先行および／または後続の１つのフレーム（一般に、参照フレームまたはアンカー・フレームと呼ばれる）または複数のフレーム（Ｂフレームの場合）を基準（reference）にして複数のフレーム（一般に、予測フレーム、Ｐフレーム、またはＢフレームと呼ばれる）を圧縮する。
【０００６】
インター・ピクチャ圧縮手法では、動き推定および動き補償を用いることが多い。動き推定では、例えば、符号化器は、現在の予測フレームを８×８または１６×１６の画素単位に分割する。現在のフレームの、ある単位に対して、参照フレーム内の類似する単位が見つけだされ、プレディクタとして用いられる。動きベクトルは、参照フレーム内のプレディクタの位置を示す。言い換えると、現在のフレームの、ある単位に対応する動きベクトルは、現在のフレーム内のその単位の空間的位置と、参照フレーム内のプレディクタの空間的位置との間の変位を表す。符号化器は、現在の単位とプレディクタとの、サンプルごとの差分を計算して残差（誤差信号とも呼ばれる）を算出する。現在の単位のサイズが１６×１６であれば、残差は、４つの８×８ブロックに分割される。各８×８残差に対し、符号化器が可逆的周波数変換演算を適用する。これによって、一組の周波数領域（すなわち、スペクトル）係数が生成される。離散コサイン変換［「ＤＣＴ」］は、周波数変換の一種である。結果として得られる、スペクトル係数のブロックを量子化およびエントロピー符号化する。予測フレームが後続の動き補償の基準として用いられる場合は、符号化器が予測フレームを再構成する。符号化器は、残差を再構成する際に、量子化された変換係数（例えば、ＤＣＴ係数）を再構成し、逆周波数変換（例えば、逆ＤＣＴ［「ＩＤＣＴ」］）を行う。符号化器は、動き補償を実行してプレディクタを算出し、プレディクタと残差とを結合する。復号時には一般に、復号器が、情報をエントロピー復号し、同様の演算を実行して残差を再構成し、動き補償を実行し、プレディクタと残差とを結合する。
【０００７】
Ｉ．Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ｖｉｄｅｏバージョン８および９におけるインター圧縮
Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＷｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ｖｉｄｅｏバージョン８［「ＷＭＶ８」］は、ビデオ符号化器とビデオ復号器とを含む。ＷＭＶ８符号化器はイントラ圧縮およびインター圧縮を用い、ＷＭＶ８復号器はイントラ圧縮解除およびインター圧縮解除を用いる。Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ｖｉｄｅｏバージョン９［「ＷＭＶ９」］は、これらに類似するアーキテクチャを多くの操作に用いる。
【０００８】
ＷＭＶ８符号化器におけるインター圧縮では、ブロック・ベースの動き補償予測符号化を行い、その後に、残余誤差（residual error）の変換符号化を行う。図１および図２は、ＷＭＶ８符号化器における予測フレームのブロック・ベースのインター圧縮を示す。具体的には、図１は、予測フレーム（１１０）の動き推定を示し、図２は、予測フレームの動き補償されたブロックの予測残差の圧縮を示す。
【０００９】
例えば、図１では、ＷＭＶ８符号化器は、予測フレーム（１１０）内のマクロブロック（１１５）の動きベクトルを算出する。符号化器は、動きベクトルを算出するために、参照フレーム（１３０）のサーチ領域（１３５）内をサーチする。符号化器は、サーチ領域（１３５）内で、予測フレーム（１１０）内のマクロブロック（１１５）と、様々な候補マクロブロックとを比較して、よく一致する候補マクロブロックを見つける。符号化器は、一致するマクロブロックの動きベクトルを示す（エントロピー符号化された）情報を出力する。
【００１０】
動きベクトルの値は、空間的に周囲にある動きベクトルの値と相関があることが多いので、動きベクトル情報の伝送に使用されるデータを圧縮するには、隣接するマクロブロックから動きベクトル・プレディクタを決定しまたは選択して、その動きベクトル・プレディクタを用いて現在のマクロブロックの動きベクトルを予測する。符号化器は、動きベクトルと動きベクトル・プレディクタとの差分を符号化することが可能である。例えば、符号化器は、動きベクトルの水平成分と動きベクトル・プレディクタの水平成分との差分を算出し、動きベクトルの垂直成分と動きベクトル・プレディクタの垂直成分との差分を算出し、それら差分を符号化する。
【００１１】
復号器は、その算出された差分を動きベクトル・プレディクタに加算して動きベクトルを再構成した後、その動きベクトルを用い、参照フレーム（１３０）（符号化器および復号器で使用可能に、あらかじめ再構成されたフレーム）からの情報を用いて、マクロブロック（１１５）の予測マクロブロックを算出する。予測が完全であることはほとんどないので、符号化器は、通常、予測マクロブロックとマクロブロック（１１５）自体との画素差のブロック（誤差ブロックまたは残差ブロックとも呼ばれる）を符号化する。
【００１２】
図２は、ＷＭＶ８符号化器における誤差ブロック（２３５）の算出および符号化の例を示す。誤差ブロック（２３５）は、予測ブロック（２１５）とオリジナルの現在のブロック（２２５）との差分である。符号化器は、誤差ブロック（２３５）に離散コサイン変換［「ＤＣＴ」］（２４０）を適用して、８×８ブロックの係数（２４５）を得る。次に符号化器は、ＤＣＴ係数を量子化し（２５０）、８×８ブロックの量子化されたＤＣＴ係数（２５５）を得る。符号化器は、８×８ブロック（２５５）をスキャンして（２６０）、係数が最低周波数から最高周波数へと大まかに並べられた１次元配列（２６５）を得る。符号化器は、一種のランレングス符号化（２７０）により、スキャンされた係数をエントロピー符号化する。符号化器は、１つまたは複数のｒｕｎ／ｌｅｖｅｌ／ｌａｓｔテーブル（run/level/last tables）（２７５）からエントロピー符号を選択し、そのエントロピー符号を出力する。
【００１３】
図３は、インター符号化（インター圧縮）されたブロックに対応する復号処理（３００）の例を示す。図３の概要を述べると、予測残差を表す、エントロピー符号化された情報を、復号器が、１つまたは複数のｒｕｎ／ｌｅｖｅｌ／ｌａｓｔテーブル（３１５）を用いる可変長復号３１０とランレングス復号とにより復号する（３１０、３２０）。復号器は、エントロピー復号された情報を格納する１次元配列（３２５）を逆スキャンして（３３０）２次元ブロック（３３５）にする。復号器は、データを逆量子化および逆離散コサイン変換して（まとめて３４０）、再構成された誤差ブロック（３４５）を得る。別の動き補償パスで、復号器は、参照フレームからの変位に関する動きベクトル情報（３５５）を用いて予測ブロック（３６５）を算出する。復号器は、予測ブロック（３６５）と、再構成された誤差ブロック（３４５）とを結合して（３７０）、再構成されたブロック（３７５）を形成する。
【００１４】
ＩＩ．インターレース・ビデオとプログレッシブ・ビデオ
ビデオ・フレームは、ビデオ信号の空間情報からなる複数のライン（走査線）を収容する。プログレッシブ・ビデオの場合、これらのラインは、ある時点から始まり、ラスタ・スキャン方式で、連続する複数のラインを通ってフレームの一番下まで続くサンプル群を収容する。プログレッシブＩフレームは、イントラ符号化（イントラ圧縮）されたプログレッシブ・ビデオ・フレームである。プログレッシブＰフレームは、順方向予測を用いて符号化されたプログレッシブ・ビデオ・フレームであり、プログレッシブＢフレームは、双方向予測を用いて符号化されたプログレッシブ・ビデオ・フレームである。
【００１５】
インターレース・ビデオの一番の特徴は、ビデオ・フレーム全体のラスタ・スキャンが２パスで行われ、パスごとに交互のラインがスキャンされることである。例えば、第１のスキャンがフレームの偶数ラインで構成され、第２のスキャンがスキャンの奇数ラインで構成される。その結果、各フレームは、異なる２つの時刻エポックを表す２つのフィールドを収容する。図４は、トップ・フィールド（４１０）とボトム・フィールド（４２０）とを含むインターレース・ビデオ・フレーム（４００）を示している。このフレーム（４００）では、ある時刻（例えば、時刻ｔ）から偶数番号ライン（トップ・フィールド）のスキャンが開始され、別の（一般に後の）時刻（例えば、時刻ｔ＋１）から奇数番号ライン（ボトムフィールド）のスキャンが開始される。このようなタイミングは、異なるタイミングで２つのフィールドの走査が開始されたときに動きがあったインターレース・ビデオ・フレームの領域内に、ぎざぎざの歯のような外観を生じさせる場合がある。このため、フィールド構成に従ってインターレース・ビデオ・フレームを、奇数ライン群を一方のフィールドにまとめ、偶数ライン群をもう一方のフィールドにまとめる態様で、再配置することが可能である。フィールド符号化と呼ばれるこの配置は、そのようなぎざぎざのエッジのアーティファクトを低減するために、動きの多いピクチャにおいて有効である。これに対し、静的な領域では、そのような再配置を行わなくても、インターレース、ビデオ、フレームの画像詳細をより効率的に保存することが可能である。したがって、静的な、動きの少ないインターレース、ビデオ、フレームでは、オリジナルの交番するフィールド・ライン配置が保存されるフレーム符号化が行われることが多い。
【００１６】
一般的なプログレッシブ、ビデオ、フレームは、交番するラインを有しないコンテンツからなる１フレームから構成される。インターレース、ビデオと異なり、プログレッシブ、ビデオでは、ビデオ、フレームが別々のフィールドに分割されず、フレーム全体が、左から右、上から下へのスキャンが単一の時刻から開始される。
【００１７】
ＩＩＩ．ＷＭＶ符号化器および復号器における従来の符号化および復号
従来のＷＭＶ符号化器および復号器用ソフトウェアは、実行可能形式でリリースされ、プログレッシブＰフレームとインターレースＰフレームの符号化および復号を用いている。これらの符号化器および復号器は、様々な符号化／復号シナリオおよびコンテンツ・タイプに有効であるが、いくつかの点で改善の余地がある。
【００１８】
Ａ．動き補償用参照ピクチャ
符号化器および復号器では、プログレッシブおよびインターレースの順方向予測フレームに動き補償を用いる。プログレッシブＰフレームの場合、動き補償は、単一の参照フレームを基準にするが、その参照フレームは、現在のＰフレームの直前の、既に再構成されているＩフレームまたはＰフレームである。現在のＰフレームの参照フレームは既知であって、可能な参照フレームは１つだけなので、複数の参照フレームの中から選択するための情報が不要である。
【００１９】
インターレースＰフレームのマクロブロックは、フィールド符号化またはフレーム符号化が可能である。フィールド符号化されたマクロブロックでは、最大２つの動きベクトルがマクロブロックに関連付けられ、１つはトップ・フィールド用、もう１つはボトム・フィールド用である。フレーム符号化されたマクロブロックでは、最大１つの動きベクトルがマクロブロックに関連付けられる。インターレースＰフレーム内のフレーム符号化されたマクロブロックの場合、動き補償は、単一の参照フレームを参照にするが、その参照フレームは、現在のＰフレームの直前の、既に再構成されているＩフレームまたはＰフレームである。インターレースＰフレーム内のフィールド符号化されたマクロブロックの場合、動き補償はやはり単一の参照フレームを参照にするが、フィールド符号化されたマクロブロックのトップ・フィールドの動きベクトルについては、参照フレームのトップ・フィールドのラインだけが考慮され、フィールド符号化されたマクロブロックのボトム・フィールドの動きベクトルについては、参照フレームのボトム・フィールドのラインだけが考慮される。ここでも、参照フレームは既知であって、可能な参照フレームは１つだけなので、複数の参照フレームの中から選択するための情報が不要である。
【００２０】
特定の符号化／復号シナリオでは（例えば、動きの多い、高ビットレートのインターレース・ビデオの場合には）、順方向予測の動き補償の基準を単一の参照フレームだけにすると、全体の圧縮効率が低下する可能性がある。
【００２１】
Ｂ．マクロブロック情報の信号伝達（シグナリング）
符号化器および復号器では、プログレッシブまたはインターレースＰフレーム用のマクロブロック情報を信号伝達（シグナリング）する。
【００２２】
１．プログレッシブＰフレーム用マクロブロック情報の信号伝達
プログレッシブＰフレームは、１ＭＶフレームまたは混在（mixed）ＭＶフレームであることが可能である。１ＭＶプログレッシブＰフレームは、１ＭＶマクロブロックを含む。１ＭＶマクロブロックは、マクロブロック内の６つのブロックすべてについて予測ブロックの変位を示す１つの動きベクトルを使用する。混在ＭＶプログレッシブＰフレームは、１ＭＶおよび／または４ＭＶマクロブロックを含む。４ＭＶマクロブロックは、０〜４つの動きベクトルを有し、各動きベクトルは、マクロブロックの最大４つのルミナンス・ブロックのうちの１つに用いられる。プログレッシブＰフレームのマクロブロックは、可能な３つのタイプ、すなわち、１ＭＶ、４ＭＶ、スキップされたもののいずれかであることが可能である。さらに、１ＭＶおよび４ＭＶマクロブロックは、イントラ符号化可能である。マクロブロックのタイプは、ピクチャ・レイヤ要素とマクロブロック・レイヤ要素との組合せで示される。
【００２３】
したがって、１ＭＶマクロブロックは、１ＭＶおよび混在ＭＶプログレッシブＰフレームに発生する可能性がある。１ＭＶマクロブロック内のすべてのブロックに、単一動きベクトル・データであるＭＶＤＡＴＡ要素が関連付けられる。ＭＶＤＡＴＡは、ブロックがイントラ符号化されているか、インター符号化されているかを信号伝達する。インター符号化されている場合、ＭＶＤＡＴＡは、動きベクトル差分も示す。
【００２４】
プログレッシブＰフレームが１ＭＶであれば、その中のすべてのマクロブロックが１ＭＶマクロブロックなので、マクロブロックのタイプを個別に信号伝達する必要はない。プログレッシブＰフレームが混在ＭＶであれば、その中のマクロブロックは１ＭＶまたは４ＭＶである可能性がある。この場合は、マクロブロック・タイプ（１ＭＶまたは４ＭＶ）が、ビットストリーム内のピクチャ・レイヤにあるビット・プレーンによって、フレーム内の各マクロブロックに向けて信号伝達される。復号されたビット・プレーンは、マクロブロックの１ＭＶ／４ＭＶステータスを、左上から右下へのラスタ・スキャン順序の１ビット値の面（プレーン）として表す。値０は、対応するマクロブロックが１ＭＶモードで符号化されていることを示す。値１は、対応するマクロブロックが４ＭＶモードで符号化されていることを示す。ある符号化モードでは、１ＭＶ／４ＭＶステータス情報は、（プログレッシブＰフレームに対応するプレーンとしてではなく）ビットストリームのマクロブロック・レイヤにおいてマクロブロックごとに信号伝達される。
【００２５】
４ＭＶマクロブロックは、混在ＭＶプログレッシブＰフレームにおいて発生する。４ＭＶマクロブロック内の個々のブロックは、イントラ・ブロックとして符号化されることが可能である。４ＭＶマクロブロックの４つのルミナンス・ブロックのそれぞれに対して、イントラ／インターのステータスが、そのブロックに関連付けられたブロック動きベクトル・データであるＢＬＫＭＶＤＡＴＡ要素によって信号伝達される。４ＭＶマクロブロックについては、符号化されたブロック・パターンであるＣＢＰＣＹ要素が、どのブロックがＢＬＫＭＶＤＡＴＡ要素をビットストリーム内に有するかを示す。クロマ・ブロックのインター／イントラのステータスは、ルミナンスのインター／イントラのステータスから抽出される。２つ以上のルミナンス・ブロックがイントラ符号化されていれば、クロマ・ブロックもイントラ符号化されている。
【００２６】
さらに、フレーム内の各マクロブロックのスキップ／非スキップのステータスも、プログレッシブＰフレーム用のビット・プレーンによって信号伝達される。スキップ（された）マクロブロックも、ハイブリッド動きベクトル予測のための関連情報を有することが可能である。
【００２７】
ＣＢＰＣＹは、６ビット・フィールドに復号される可変長符号［「ＶＬＣ」］である。ＣＢＰＣＹは、１ＭＶおよび４ＭＶマクロブロック用ビットストリーム内の様々な位置に現れ、１ＭＶおよび４ＭＶマクロブロック用の様々なセマンティクスを有する。
【００２８】
ＣＢＰＣＹは、（１）ＭＶＤＡＴＡが、マクロブロックがインター符号化されていることを示し、（２）ＭＶＤＡＴＡが、１ＭＶマクロブロックの少なくとも１つのブロックに（ＭＶＤＡＴＡから復号された「ｌａｓｔ」値で示され）係数情報が含まれていることを示す場合、１ＭＶマクロブロック・レイヤに存在する。ＣＢＰＣＹが存在すれば、ＣＢＰＣＹは、対応する６つのブロックのどれに少なくとも１つの非ゼロ係数が含まれているかを示す６ビット・フィールドに復号される。
【００２９】
ＣＢＰＣＹは、４ＭＶマクロブロック・レイヤ内に常に存在する。ルミナンス・ブロック用のＣＢＰＣＹビット位置（ビット０〜３）は、クロマ・ブロック用のビット位置（ビット４および５）と若干異なる意味を有する。ルミナンス・ブロック用のビット位置の場合、０は、対応するブロックが動きベクトル情報または何らかの非ゼロ係数を含まないことを示す。そのようなブロックでは、ＢＬＫＭＶＤＡＴＡが存在せず、予測動きベクトルが動きベクトルとして用いられ、残差データがない。ハイブリッド動きベクトル予測が用いられていることが動きベクトル・プレディクタによって示されていれば、使用候補である動きベクトル・プレディクタを示す単一ビットが存在する。ルミナンス・ブロック用ビット位置の１は、そのブロックに対応するＢＬＫＭＶＤＡＴＡが存在することを示す。ＢＬＫＭＶＤＡＴＡは、そのブロックがインターかイントラかを示し、インターである場合は、動きベクトル差分を示す。ＢＬＫＭＶＤＡＴＡはさらに、そのブロックに係数データがあるかどうかも（ＢＬＫＭＶＤＡＴＡから復号される「ｌａｓｔ」値によって）示す。クロマ・ブロック用のビット位置の場合、０または１は、対応するブロックが非ゼロ係数情報を収容するかどうかを示す。
【００３０】
符号化器および復号器では、ＭＶＤＡＴＡ、ＢＬＫＭＶＤＡＴＡ、およびＣＢＰＣＹのそれぞれのＶＬＣテーブルについて符号テーブルを選択する。
【００３１】
２．インターレースＰフレーム用マクロブロック情報の信号伝達
インターレースＰフレームは、フレーム符号化されたマクロブロックとフィールド符号化されたマクロブロックとを混在させて有することが可能である。フィールド符号化されたマクロブロックでは、最大２つの動きベクトルがマクロブロックに関連付けられる。フレーム符号化されたマクロブロックでは、最大１つの動きベクトルがマクロブロックに関連付けられる。シーケンス・レイヤ要素のＩＮＴＥＲＬＡＣＥが１であれば、ピクチャ・レイヤ要素のＩＮＴＲＬＣＦがビットストリーム内に存在する。ＩＮＴＲＬＣＦは、そのフレーム内のマクロブロックの符号化に用いられるモードを示す１ビット要素である。ＩＮＴＲＬＣＦ＝０であれば、フレーム内のすべてのマクロブロックがフレーム・モードで符号化される。ＩＮＴＲＬＣＦ＝１であれば、マクロブロックがフィールド・モードまたはフレーム・モードで符号化されることが可能であり、ピクチャ・レイヤに存在するビット・プレーンのＩＮＴＲＬＣＭＢが、インターレースＰフレーム内の各マクロブロックのフィールド／フレーム符号化ステータスを示す。
【００３２】
インターレースＰフレームのマクロブロックは、可能な３つのタイプ、すなわち、フレーム符号化されたもの、フィールド符号化されたもの、スキップされたもののいずれかであることが可能である。マクロブロックのタイプは、ピクチャ・レイヤ要素とマクロブロック・レイヤ要素との組合せで示される。
【００３３】
単一のＭＶＤＡＴＡが、フレーム符号化されたマクロブロック内のすべてのブロックに関連付けられる。このＭＶＤＡＴＡは、ブロックがイントラ符号化されているか、インター符号化されているかを信号伝達する。インター符号化されている場合、ＭＶＤＡＴＡは、動きベクトル差分も示す。
【００３４】
フィールド符号化されたマクロブロックでは、トップ・フィールド動きベクトル・データであるＴＯＰＭＶＤＡＴＡ要素がトップ・フィールドのブロックに関連付けられ、ボトム・フィールド動きベクトル・データであるＢＯＴＭＶＤＡＴＡ要素がボトム・フィールドのブロックに関連付けられる。それらの要素は、各フィールドの１番目のブロックにおいて信号伝達される。より具体的には、ＴＯＰＭＶＤＡＴＡは、左のトップ・フィールド・ブロックとともに信号伝達され、ＢＯＴＭＶＤＡＴＡは、左のボトム・フィールド・ブロックとともに信号伝達される。ＴＯＰＭＶＤＡＴＡは、トップ・フィールド・ブロックがイントラかインターかを示す。それらがインターであれば、ＴＯＰＭＶＤＡＴＡはさらに、トップ・フィールド・ブロックの動きベクトル差分も示す。同様に、ＢＯＴＭＶＤＡＴＡは、ボトム・フィールド・ブロックのインター／イントラのステータスと、ボトム・フィールド・ブロックの潜在的な動きベクトル差分情報を信号伝達する。ＣＢＰＣＹは、どのフィールドが動きベクトル・データ要素をビットストリーム内に有するかを示す。
【００３５】
スキップされたマクロブロックは、ピクチャ・レイヤ内のＳＫＩＰＭＢビット・プレーンによって信号伝達される。ＣＢＰＣＹおよび動きベクトル・データ要素は、ブロックがＡＣ係数を有するかどうかを示すために用いられる。復号すべきデータが動きベクトルの後に存在することが、ＭＶＤＡＴＡから復号された「ｌａｓｔ」値によって示されている場合は、インターレースＰフレームのフレーム符号化されたマクロブロックに対してＣＢＰＣＹが存在する。ＣＢＰＣＹが存在すれば、ＣＢＰＣＹは６ビット・フィールドに復号され、４つのＹブロックのそれぞれに１ビットずつ対応し、１ビットが両方のＵブロック（トップ・フィールドおよびボトム・フィールド）に対応し、１ビットが両方のＶブロック（トップ・フィールドおよびボトム・フィールド）に対応する。
【００３６】
ＣＢＰＣＹは、フィールド符号化されたマクロブロックに対して常に存在する。ＣＢＰＣＹと２つのフィールド動きベクトル・データ要素を用いて、マクロブロックのブロック内の存在ＡＣ係数（presence AC coefficients）が算出される。ＣＢＰＣＹの意味は、ビット１、３、４、および５については、フレーム符号化されたマクロブロックの場合と同じである。すなわち、それらは、右のトップ・フィールドＹブロック、右のボトム・フィールドＹブロック、トップ／ボトムのＵブロック、およびトップ／ボトムのＶブロックにおけるＡＣ係数の存在または不在をそれぞれ示す。ビット位置０および２については、意味が若干異なる。ビット位置０に０があることは、ＴＯＰＭＶＤＡＴＡが存在せず、動きベクトル・プレディクタがトップ・フィールド・ブロックの動きベクトルとして用いられることを示す。これはさらに、左のトップ・フィールド・ブロックに非ゼロ係数がまったく含まれないことも示している。ビット位置０に１があることは、ＴＯＰＭＶＤＡＴＡが存在することを示す。ＴＯＰＭＶＤＡＴＡは、トップ・フィールド・ブロックがインターかイントラかを示し、インターである場合はさらに、動きベクトル差分を示す。ＴＯＰＭＶＤＡＴＡから復号された「ｌａｓｔ」値が１に復号された場合は、左のトップ・フィールド・ブロックに対応するＡＣ係数が存在せず、それ以外の場合は、左のトップ・フィールド・ブロックに対応する非ゼロＡＣ係数が存在する。同様に、上述の規則は、ＢＯＴＭＶＤＡＴＡおよび左のボトム・フィールド・ブロックに対応するビット位置２についても当てはまる。
【００３７】
符号化器および復号器では、ＭＶＤＡＴＡ、ＴＯＰＭＶＤＡＴＡ、ＢＯＴＭＶＤＡＴＡ、およびＣＢＰＣＹのそれぞれのＶＬＣテーブルについて符号テーブルを選択する。
【００３８】
３．従来のマクロブロック情報の信号伝達の問題
要約すると、プログレッシブＰフレームおよびインターレースＰフレームのマクロブロックに関する様々な情報が、フレーム・レイヤおよびマクロブロック・レイヤにおいて、別々の符号（または符号の組合せ）を用いて信号伝達される。この別々に信号伝達される情報に含まれるものは、動きベクトルの数、マクロブロックのイントラ／インターのステータス、ＣＢＰＣＹが存在するか不在か（例えば、１ＭＶおよびフレーム符号化されたマクロブロックの「ｌａｓｔ」値による）、および動きベクトル・データが存在するか不在か（例えば、４ＭＶおよびフィールド符号化されたマクロブロックのＣＢＰＣＹによる）などである。この信号伝達は、多くのケースにおいて良好な全体性能を与えるが、各種の一般的なケースにおいて、信号伝達される様々な情報の間の統計的依存性を十分に活用していない。さらにこの信号伝達は、４ＭＶマクロブロックのＣＢＰＣＹの存在／不在や、１ＭＶマクロブロックの動きベクトル・データの存在／不在など、各種の有用なコンフィギュレーションを可能にしたり、それらに対応したりしていない。
【００３９】
さらに、動きベクトル・データの存在／不在が（例えば、４ＭＶおよびフィールド符号化されたマクロブロックのＣＢＰＣＹによって）信号伝達される限り、ＣＢＰＣＹ要素の従来の役割の紛らわしい再定義が必要である。そして、それによって、従来そうした目的に用いられていなかった様々な要素（例えば、ＢＬＫＭＶＤＡＴＡ、ＴＯＰＭＶＤＡＴＡ、ＢＯＴＭＶＤＡＴＡ）を用いて従来のＣＢＰＣＹ情報を信号伝達することが必要になる。そして、この信号伝達は、動きベクトル・データの不在時の係数情報の存在など、各種の有用なコンフィギュレーションを可能にせず、それらに対応していない。
【００４０】
Ｃ．動きベクトル予測
インターレースまたはプログレッシブＰフレームのマクロブロック（またはブロック、またはマクロブロックのフィールドなど）の動きベクトルについては、符号化器は、隣接する動きベクトルに基づいて動きベクトル・プレディクタを算出し、動きベクトルと動きベクトル・プレディクタとの差分を算出し、その差分を符号化することによって、動きベクトルを符号化する。復号器は、（ここでも隣接する動きベクトルに基づいて）動きベクトル・プレディクタを算出し、動きベクトル差分を復号し、動きベクトル差分を動きベクトル・プレディクタに加算することによって、動きベクトルを再構成する。
【００４１】
図５Ａおよび図５Ｂは、１ＭＶプログレッシブＰフレームの１ＭＶマクロブロックの候補動きベクトル・プレディクタと見なされるマクロブロックの位置を示す。候補プレディクタは、マクロブロックが行（row）の最後のマクロブロックである場合を除き、左、上、および右上のマクロブロックから取得される。マクロブロックが行の最後のマクロブロックである場合は、プレディクタＢは、右上ではなく左上のマクロブロックから取得される。特殊なケースとして、フレームが１マクロブロック幅である場合は、プレディクタは常にプレディクタＡ（上のプレディクタ）である。マクロブロックが最上行にあるためにプレディクタＡが範囲外である場合のプレディクタは、プレディクタＣである。他の特殊なケース（イントラ符号化されたプレディクタなど）には、他の様々な規則が対応する。
【００４２】
図６Ａ〜図１０は、混在ＭＶプログレッシブＰフレームの１ＭＶまたは４ＭＶマクロブロックの動きベクトルの最大３つの候補動きベクトルと見なされるブロックまたはマクロブロックの位置を示す。これらの図では、大きい正方形がマクロブロック境界を示し、小さい正方形がブロック境界を示す。特殊なケースとして、フレームが１マクロブロック幅である場合は、プレディクタは常にプレディクタＡ（上のプレディクタ）である。他の特殊なケース（最上行の４ＭＶマクロブロックの最上行のブロック、上の行の１ＭＶマクロブロック、イントラ符号化されたプレディクタなど）には、他の様々な規則が対応する。
【００４３】
具体的には、図６Ａおよび図６Ｂは、混在ＭＶプログレッシブＰフレームの現在の１ＭＶマクロブロックの候補動きベクトル・プレディクタと見なされるブロックの位置を示す。隣接するマクロブロックは、１ＭＶまたは４ＭＶマクロブロックである可能性がある。図６Ａおよび図６Ｂは、隣接するマクロブロックが４ＭＶであると仮定した場合の候補動きベクトルの位置を示す（すなわち、現在のマクロブロックの上のマクロブロックのブロック２の動きベクトルがプレディクタＡであり、現在のマクロブロックのすぐ左のマクロブロックのブロック１の動きベクトルがプレディクタＣである）。すべての隣接するマクロブロックが１ＭＶマクロブロックであれば、図５Ａおよび図５Ｂに示した動きベクトル・プレディクタが、マクロブロック全体の動きベクトル・プレディクタとなる。図６Ｂに示すように、マクロブロックが行の最後のマクロブロックであれば、プレディクタＢは、他のケースと同様に、右上のマクロブロックのブロック２ではなく、左上のマクロブロックのブロック３の動きベクトルになる。
【００４４】
図７Ａ〜図１０は、混在ＭＶプログレッシブＰフレームの４ＭＶマクロブロックにある４つのルミナンス・ブロックのそれぞれの候補動きベクトル・プレディクタと見なされるブロックの位置を示す。図７Ａおよび図７Ｂは、位置０にあるブロックの候補動きベクトル・プレディクタと見なされるブロックの位置を示す。図８Ａおよび図８Ｂは、位置１にあるブロックの候補動きベクトル・プレディクタと見なされるブロックの位置を示す。図９は、位置２にあるブロックの候補動きベクトル・プレディクタと見なされるブロックの位置を示す。図１０は、位置３にあるブロックの候補動きベクトル・プレディクタと見なされるブロックの位置を示す。この場合も、隣接するマクロブロックが１ＭＶマクロブロックであれば、そのマクロブロックの動きベクトル・プレディクタがマクロブロックのブロックに用いられる。
【００４５】
マクロブロックが行の最初のマクロブロックであるケースでは、ブロック０のプレディクタＢの扱いが、その行の他のマクロブロックのブロック０の場合と異なる（図７Ａおよび図７Ｂを参照）。このケースでは、プレディクタＢは、他のケースと同様に、現在のマクロブロックの上および左のマクロブロックにあるブロック３からではなく、現在のマクロブロックのすぐ上のマクロブロックにあるブロック３から取得される。同様に、マクロブロックが行の最後のマクロブロックであるケースでは、ブロック１のプレディクタＢの扱いが異なる（図８Ａおよび図８Ｂ）。このケースでは、プレディクタは、他のケースと同様に、現在のマクロブロックの上および右のマクロブロックにあるブロック２からではなく、現在のマクロブロックのすぐ上のマクロブロックにあるブロック２から取得される。一般に、マクロブロックが最初のマクロブロック列にある場合は、ブロック０および２のプレディクタＣが０に等しく設定される。
【００４６】
プログレッシブＰフレームのマクロブロックが、スキップされた（マクロブロック）として符号化されている場合、そのマクロブロックの動きベクトル・プレディクタが、そのマクロブロックの動きベクトルとして用いられる（または、そのマクロブロックのブロックのプレディクタがそのブロックについて用いられる、など）。ハイブリッド動きベクトル予測にどのプレディクタを用いるかを示す単一ビットが存在し続けることが可能である。
【００４７】
図１１および図１２Ａ〜図１２Ｂは、インターレースＰフレームのフレーム符号化されたマクロブロックおよびフィールド符号化されたマクロブロックの動きベクトル予測の候補プレディクタの例をそれぞれ示している。図１１は、インターレースＰフレームの（マクロブロック行の最初または最後のマクロブロックでなく、一番上の行でない）内側の位置にある、現在のフレーム符号化されたマクロブロック用の候補プレディクタＡ、Ｂ、およびＣを示す。プレディクタは、Ａ、Ｂ、およびＣとラベル付けされた以外の様々な候補方向から取得可能である（例えば、現在のマクロブロックが、行の最初または最後のマクロブロックである場合や、一番上の行にある場合のような特殊なケースでは、使用不可能なプレディクタがあるため）。現在のフレーム符号化されたマクロブロックの場合、プレディクタ候補は、隣接するマクロブロックがフィールド符号化されているかフレーム符号化されているかに応じて異なる算出が行われる。隣接するマクロブロックがフレーム符号化されている場合は、そのマクロブロックの動きベクトルが、単純に、プレディクタ候補として取得される。隣接するマクロブロックがフィールド符号化されている場合は、トップ・フィールドとボトム・フィールドの動きベクトルを平均することによって候補動きベクトルが決定される。
【００４８】
図１２Ａおよび図１２Ｂは、フィールドの内側の位置にあるフィールド符号化されたマクロブロックにおける、現在のフィールドの候補プレディクタＡ、Ｂ、およびＣを示す。図１２Ａでは、現在のフィールドはボトム・フィールドであり、隣接するマクロブロックにあるボトム・フィールド動きベクトルが候補プレディクタとして用いられる。図１２Ｂでは、現在のフィールドはトップ・フィールドであり、隣接するマクロブロックにあるトップ・フィールド動きベクトルが候補プレディクタとして用いられる。現在のフィールド符号化されたマクロブロックの各フィールドについては、各フィールドの動きベクトル・プレディクタ候補の数は最大で３である。各候補は、現在のフィールドと同じフィールド・タイプ（例えば、トップまたはボトム）から取得される。隣接するマクロブロックがフレーム符号化されている場合は、そのマクロブロックの動きベクトルが、そのマクロブロックのトップ・フィールド・プレディクタおよびボトム・フィールド・プレディクタとして用いられる。ここでも、現在のマクロブロックが、行の最初または最後のマクロブロックである場合や、一番上の行にある場合には、使用不可能なプレディクタがあるため、様々な特殊ケース（図示せず）が当てはまる。フレームが１マクロブロック幅である場合の動きベクトル・プレディクタは、プレディクタＡである。隣接するマクロブロックがイントラである場合、そのマクロブロックの動きベクトル・プレディクタは０である。
【００４９】
図１３Ａおよび図１３Ｂは、一組のプレディクタをＡ、Ｂ、およびＣとして、動きベクトル・プレディクタを算出する擬似コードを示す。符号化器および復号器は、一組のプレディクタ候補からプレディクタを選択するために、図１３Ｃに示す「median-of-three」アルゴリズムのような選択アルゴリズムを用いる。
【００５０】
Ｄ．プログレッシブＰフレームのハイブリッド動きベクトル予測
プログレッシブＰフレームの動きベクトルについては、ハイブリッド動きベクトル予測が可能である。マクロブロックまたはブロックの動きベクトルについては、プログレッシブＰフレームが１ＭＶであれ、混在ＭＶであれ、前のセクションで算出された動きベクトル・プレディクタが、ＡプレディクタおよびＣプレディクタを基準にして検査されて、プレディクタ選択がビットストリーム内で明示的に符号化されているかどうかが判定される。明示的に符号化されていれば、（前述のセクションＣで算出された動きベクトル・プレディクタを用いるのではなく）動きベクトル用の動きベクトル・プレディクタとしてプレディクタＡを用いるか、プレディクタＣを用いるかを示すビットが復号される。ハイブリッド動きベクトル予測は、インターレースＰフレームおよびインターレース・ビデオの任意の表現用の動きベクトル予測には、用いられない。
【００５１】
図１４Ａおよび図１４Ｂの擬似コードは、プログレッシブＰフレームの動きベクトルのハイブリッド動きベクトル予測を示す。この擬似コードでは、変数ｐｒｅｄｉｃｔｏｒ＿ｐｒｅ＿ｘおよびｐｒｅｄｉｃｔｏｒ＿ｐｒｅ＿ｙが、それぞれ、前のセクションで算出された水平方向および垂直方向の動きベクトル・プレディクタである。変数ｐｒｅｄｉｃｔｏｒ＿ｐｏｓｔ＿ｘおよびｐｒｅｄｉｃｔｏｒ＿ｐｏｓｔ＿ｙは、それぞれ、ハイブリッド動きベクトル予測を検査した後の、水平方向および垂直方向の動きベクトル・プレディクタである。
【００５２】
Ｅ．動きベクトル差分の復号
プログレッシブＰフレームのマクロブロックまたはブロックについては、ＭＶＤＡＴＡまたはＢＬＫＭＶＤＡＴＡ要素が動きベクトル差分情報を信号伝達する。１ＭＶマクロブロックは、単一のＭＶＤＡＴＡを有する。４ＭＶマクロブロックは、０〜４つのＢＬＫＭＶＤＡＴＡ要素を有する。（その存在はＣＢＰＣＹによって示される）。
【００５３】
ＭＶＤＡＴＡまたはＢＬＫＭＶＤＡＴＡは、共同で、（１）動きベクトル差分の水平方向成分、（２）動きベクトル差分の垂直方向成分、および（３）変換係数が存在するかどうかを大まかに示すバイナリ「ｌａｓｔ」フラグ、の３つを符号化する。マクロブロック（４ＭＶの場合はブロック）がイントラ符号化されているかインター符号化されているかは、動きベクトル差分の可能性の１つとして信号伝達される。図１５Ａおよび図１５Ｂの擬似コードは、動きベクトル差分情報、インター／イントラのタイプ、およびｌａｓｔフラグ情報がＭＶＤＡＴＡまたはＢＬＫＭＶＤＡＴＡに対して復号される様子を示す。この擬似コードでは、変数ｌａｓｔ＿ｆｌａｇが、バイナリ・フラグであり、この使用は、マクロブロック情報の信号伝達のセクションで使用方法を説明する。変数ｉｎｔｒａ＿ｆｌａｇは、ブロックまたはマクロブロックがイントラかどうかを示すバイナリ・フラグである。変数ｄｍｖ＿ｘおよびｄｍｖ＿ｙは、それぞれ、動きベクトル差分の水平方向成分および垂直方向成分である。変数ｋ＿ｘおよびｋ＿ｙは、拡張範囲（extended range）の動きベクトルに対して固定長であって、その長さは図１５Ｃの表に示すように様々である。変数ｈａｌｆｐｅｌ＿ｆｌａｇは、動きベクトルの精度として１／２画素を用いるか、１／４画素を用いるか、およびピクチャ・レイヤのシンタックス要素に基づいてどの値を設定するかを示すバイナリ値である。最後に、テーブルｓｉｚｅ＿ｔａｂｌｅおよびｏｆｆｓｅｔ＿ｔａｂｌｅは、次のように定義される配列である。  
ｓｉｚｅ＿ｔａｂｌｅ［６］＝｛０，２，３，４，５，８｝  
ｏｆｆｓｅｔ＿ｔａｂｌｅ［６］＝｛０，１，３，７，１５，３１｝
インターレースＰフレームのフレーム符号化されたマクロブロックまたはフィールド符号化されたマクロブロックについても、ＭＶＤＡＴＡ、ＴＯＰＭＶＤＡＴＡ、およびＢＯＴＭＶＤＡＴＡ要素が同様に復号される。
【００５４】
Ｆ．動きベクトルの再構成および導出
ルミナンス動きベクトルは、符号化された動きベクトル差分情報および動きベクトル・プレディクタから再構成され、クロマ動きベクトルは、再構成されたルミナンス動きベクトルから導出される。
【００５５】
プログレッシブＰフレームの１ＭＶおよび４ＭＶマクロブロックの場合、ルミナンス動きベクトルは、次のように、差分を動きベクトル・プレディクタに加算することによって再構成される。  
ｍｖ＿ｘ＝（ｄｍｖ＿ｘ＋ｐｒｅｄｉｃｔｏｒ＿ｘ）ｓｍｏｄ  ｒａｎｇｅ＿ｘ  
ｍｖ＿ｙ＝（ｄｍｖ＿ｙ＋ｐｒｅｄｉｃｔｏｒ＿ｙ）ｓｍｏｄ  ｒａｎｇｅ＿ｙ  
ここで、ｓｍｏｄは、次のように定義される符号付き法演算である。  
Ａ  ｓｍｏｄ  ｂ＝（（Ａ＋ｂ）％２ｂ）−ｂ  
これによって、再構成されたベクトルが有効であることが保証される。
【００５６】
１ＭＶマクロブロックには、マクロブロックのルミナンス成分を構成する４つのブロックに対して１つの動きベクトルが存在する。マクロブロックがイントラであれば、マクロブロックに関連付けられた動きベクトルは存在しない。マクロブロックがスキップされていれば、ｄｍｖ＿ｘ＝０およびｄｍｖ＿ｙ＝０であるので、ｍｖ＿ｘ＝ｐｒｅｄｉｃｔｏｒ＿ｘおよびｍｖ＿ｙ＝ｐｒｅｄｉｃｔｏｒ＿ｙである。
【００５７】
４ＭＶマクロブロック内の各インタールミナンス・ブロックは、各自で動きベクトルを使用する。したがって、４ＭＶマクロブロックには０〜４つのルミナンス・動きベクトルが存在する。４ＭＶマクロブロックがスキップされているか、４ＭＶマクロブロックのＣＢＰＣＹが、ブロックが符号化されていないことを示している場合には、４ＭＶマクロブロック内に符号化されていないブロックがあってもよい。ブロックが符号化されていない場合は、ｄｍｖ＿ｘ＝０およびｄｍｖ＿ｙ＝０であるので、ｍｖ＿ｘ＝ｐｒｅｄｉｃｔｏｒ＿ｘおよびｍｖ＿ｙ＝ｐｒｅｄｉｃｔｏｒ＿ｙである。
【００５８】
プログレッシブＰフレームの場合、クロマ動きベクトルはルミナンス動きベクトルから導出される。さらに、４ＭＶマクロブロックの場合は、クロマ・ブロックをインター符号化するかイントラ符号化するかの決定が、ルミナンス・ブロックのステータスに基づいて行われる。クロマ・ベクトルは、２つのステップで再構成される。
【００５９】
第１のステップでは、ルミナンス動きベクトルを適切に組み合わせ、スケーリングすることによって、名目上のクロマ動きベクトル（nominal chroma motion vector）が取得される。スケーリングは、１／４画素オフセットより１／２画素オフセットが優先されるように行われる。図１６Ａは、１ＭＶマクロブロックのルミナンス動きベクトルからクロマ動きベクトルを導出する際のスケーリングを行う擬似コードである。図１６Ｂは、４ＭＶマクロブロックのクロマ動きベクトルを導出する際に、最大４つのルミナンス動きベクトルを結合してスケーリングする擬似コードを示す。図１３Ｃは、ｍｅｄｉａｎ３（）関数の擬似コードを示し、図１６Ｃは、ｍｅｄｉａｎ４（）関数の擬似コードを示す。
【００６０】
第２のステップでは、シーケンス・レベルの１ビット要素を用いて、クロマ動きベクトルのさらなる丸めが必要かどうかが決定される。さらなる丸めが必要であれば、１／４画素オフセットのところにあるクロマ動きベクトルが最も近いフル画素位置に丸められる。
【００６１】
インターレースＰフレームのフレーム符号化されたマクロブロックおよびフィールド符号化されたマクロブロックについては、プログレッシブＰフレームについて行われるのと同様に、ルミナンス動きベクトルが再構成される。フレーム符号化されたマクロブロックには、マクロブロックのルミナンス成分を構成する４つのブロックに対して１つの動きベクトルが存在する。マクロブロックがイントラであれば、そのマクロブロックに関連付けられた動きベクトルは存在しない。そのマクロブロックがスキップされていれば、ｄｍｖ＿ｘ＝０およびｄｍｖ＿ｙ＝０であるので、ｍｖ＿ｘ＝ｐｒｅｄｉｃｔｏｒ＿ｘおよびｍｖ＿ｙ＝ｐｒｅｄｉｃｔｏｒ＿ｙである。フィールド符号化されたマクロブロックでは、各フィールドは、それ自身の動きベクトルを有することが可能である。したがって、フィールド符号化されたマクロブロックには０〜２つのルミナンス動きベクトルが存在する。フィールド符号化されたマクロブロックがスキップされているか、フィールド符号化されたマクロブロックのＣＢＰＣＹが、フィールドが符号化されていないことを示している場合は、フィールド符号化されたマクロブロック内に符号化されていないフィールドがあってもよい。フィールドが符号化されていない場合は、ｄｍｖ＿ｘ＝０およびｄｍｖ＿ｙ＝０であるので、ｍｖ＿ｘ＝ｐｒｅｄｉｃｔｏｒ＿ｘおよびｍｖ＿ｙ＝ｐｒｅｄｉｃｔｏｒ＿ｙである。
【００６２】
インターレースＰフレームの場合、クロマ動きベクトルはルミナンス動きベクトルから導出される。フレーム符号化されたマクロブロックの場合は、単一のルミナンス動きベクトルに対応するクロマ動きベクトルが１つ存在する。フィールド符号化されたマクロブロックの場合は、クロマ動きベクトルが２つ存在する。１つはトップ・フィールド用であり、１つはボトム・フィールド用であって、トップおよびボトム・フィールドのルミナンス動きベクトルに対応する。クロマ動きベクトルを導出する規則は、フィールド符号化されたマクロブロックとフレーム符号化されたマクロブロックとで同じである。これらは、マクロブロックのタイプによってではなく、ルミナンス動きベクトルによって異なる。図１７は、インターレースＰフレームのフレーム符号化されたマクロブロックまたはフィールド符号化されたマクロブロックのルミナンス動きベクトルからクロマ動きベクトルを導出する擬似コードを示す。基本的に、クロマ動きベクトルのｘ成分は４倍にされ、クロマ動きベクトルのｙ成分はそのままである（４：１：１マクロブロッククロマ・サブサンプリングのため）。クロマ動きベクトルのスケーリングされたｘ成分も、隣接する１／４画素位置に丸められる。ｃｍｖ＿ｘまたはｃｍｖ＿ｙが境界の外にある場合は、有効な範囲まで引き戻される。
【００６３】
Ｇ．輝度補償（Intensity Compensation）
プログレッシブＰフレームの場合、ピクチャ・レイヤは、フレームの動き補償モードおよび輝度補償を制御するシンタックス要素を含む。輝度補償が信号伝達された場合は、ＬＵＭＳＣＡＬＥ要素およびＬＵＭＳＨＩＦＴ要素がピクチャ・レイヤ内で続く。ＬＵＭＳＣＡＬＥおよびＬＵＭＳＨＩＦＴは、輝度補償処理で用いられるパラメータを指定する６ビット値である。
【００６４】
プログレッシブＰフレームに対して輝度補償が用いられる場合は、参照フレーム内の画素が、Ｐフレームの動き補償予測に用いられる前に再マッピングされる。図１８の擬似コードは、参照フレーム画素の再マッピングに用いるルックアップ・テーブルを構築するためにＬＵＭＳＣＡＬＥ要素およびＬＵＭＳＨＩＦＴ要素が用いられる様子を示している。次のように、参照フレームのＹ成分がＬＵＴＹ［］テーブルを用いて再マッピングされ、Ｕ成分およびＶ成分がＬＵＴＵＶ［］テーブルを用いて再マッピングされる。
【００６５】
【数１】
2011101416.tif 000003
【００６６】
ここで、ｐYは、参照フレーム内のオリジナルのルミナンス画素値であり、
【００６７】
【数２】
2011101416.tif 000004
【００６８】
は、参照フレーム内の再マッピングされたルミナンス画素値であり、ｐUVは、参照フレーム内のオリジナルのＵまたはＶの画素値であり、
【００６９】
【数３】
2011101416.tif 000005
【００７０】
は、参照フレーム内の再マッピングされたＵまたはＶの画素値である。
【００７１】
インターレースＰフレームの場合は、１ビットのピクチャ・レイヤＩＮＴＣＯＭＰ値が、そのフレームに対して輝度補償を用いるかどうかを信号伝達する。輝度補償を用いる場合は、ＬＵＭＳＣＡＬＥ要素およびＬＵＭＳＨＩＦＴ要素がピクチャ・レイヤ内で続く。ＬＵＭＳＣＡＬＥおよびＬＵＭＳＨＩＦＴは、インターレースＰフレーム全体の輝度補償処理で用いられるパラメータを指定する６ビット値である。輝度補償自体は、プログレッシブＰフレームの場合と同じである。
【００７２】
ＶＩ．ビデオの圧縮および圧縮解除の規格
従来のＷＭＶ符号化器および復号器の話からはそれるが、ビデオの圧縮および圧縮解除に関連する国際規格がいくつかある。これらの規格には、Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ［「ＭＰＥＧ」］−１、−２、および−４規格と、国際電気通信連合（International Telecommunication Union）［「ＩＴＵ」］のＨ．２６１、Ｈ．２６２（ＭＰＥＧ−２の別名）、Ｈ．２６３、およびＨ．２６４規格とが含まれる。これらのいずれかの規格に準拠している符号化器および復号器は、通常、動き推定と動き補償とを用いて、ピクチャ間の時間的冗長度を低減する。
【００７３】
Ａ．動き補償用参照ピクチャ
一部の規格では、順方向予測フレームの動き補償は、単一の参照フレーム（現在の順方向予測フレームの直前の、既に再構成されているＩフレームまたはＰフレーム）を基準にしている。現在の順方向予測フレームの参照フレームは既知であって、可能な参照フレームは１つだけなので、複数の参照フレームの中から選択するための情報が不要である。例えば、Ｈ．２６１規格およびＭＰＥＧ−１規格を参照されたい。特定の符号化／復号シナリオでは（例えば、動きの多い、高ビットレートのインターレース・ビデオの場合には）、順方向予測の動き補償の基準を単一の参照フレームだけにすると、全体の圧縮効率が低下する可能性がある。
【００７４】
Ｈ．２６２規格では、インターレース・ビデオ・フレームを１つのフレームとして、または２つのフィールドとして符号化することが可能であり、フレーム符号化とフィールド符号化とをフレームごとに適応的に選択することが可能である。現在のフィールドのフィールド・ベース予測では、既に再構成されているトップ・フィールドまたはボトム・フィールドを動き補償に用いる［Ｈ．２６２規格、セクション７．６．１および７．６．２．１］。Ｈ．２６２規格には、動きベクトルによる現在のフィールドの動き補償に用いる参照フィールドを、２つの参照フィールドから選択することが記載されている［Ｈ．２６２規格、セクション６．２．５．２、６．３．１７．２、および７．６．４］。１６×１６マクロブロック（または、マクロブロックの上半分の１６×８、またはマクロブロックの下半分の１６×８）の所与の動きベクトルについて、動きベクトルをトップ参照フィールドに適用するか、ボトム参照フィールドに適用するかを示す単一ビットが信号伝達される。［Ｉｄ］。詳細については、Ｈ．２６２規格を参照されたい。
【００７５】
そのような参照フィールド選択は、場合によっては動き補償にいくらかの柔軟性および予測の向上をもたらすが、ビットレートに関しては不利点がいくつかある。動きベクトルの参照フィールド選択信号は、多数のビットを消費する可能性がある。例えば、８１０個のマクロブロックを有し、各マクロブロックが０、１、または２つの動きベクトルを使用する単一の７２０×２８８フィールドでは、動きベクトルの参照フィールド選択ビットは、最大１６２０ビットを消費する。それぞれの動きベクトルに対してどの参照フィールドが選択されるかを予測することによって参照フィールド選択情報のビットレートを低減する試みは行われていない。参照フィールド選択情報の信号伝達は、純粋に符号化効率に関して言えば、効率が悪い。さらに、シナリオによっては、情報がどのように符号化されようと、参照フィールド選択情報が多数のビットを消費する可能性があるので、動き補償において複数の使用可能な基準を有することによる予測の向上という利点は小さくなる。そのようなシナリオに対応するために参照フィールド選択を無効にするという選択肢は与えられていない。
【００７６】
Ｈ．２６２規格にはさらに、デュアル・プライム予測が記載されている。デュアルプライム予測は、インターレースＰピクチャ内の１６×１６ブロックについて２つの順方向フィールド・ベース予測が平均される予測モードである［Ｈ．２６２規格、セクション７．６．３．６］。
【００７７】
ＭＰＥＧ−４規格では、インターレース・ビデオ・フレームのマクロブロックをフレーム符号化またはフィールド符号化することが可能である［ＭＰＥＧ−４規格、セクション６．１．３．８］。フィールド符号化されたマクロブロックのトップまたはボトム・フィールド・ラインのフィールド・ベース予測の動き補償では、既に再構成されたトップ・フィールドまたはボトム・フィールドを用いる［ＭＰＥＧ−４規格、セクション６．３．７．３および７．６．２］。ＭＰＥＧ−４規格には、動き補償に用いる参照フィールドを、２つの参照フィールドから選択することが記載されている［ＭＰＥＧ−４規格、セクション６．３．７．３］。マクロブロックのトップ・フィールド・ラインまたはボトム・フィールド・ラインの所与の動きベクトルについて、動きベクトルをトップ参照フィールドに適用するか、ボトム参照フィールドに適用するかを示す単一ビットが信号伝達される［同上の文献］。詳細については、ＭＰＥＧ−４規格を参照されたい。そのような参照フィールド選択情報の信号伝達には、前述のＨ．２６２の場合と同様の問題がある。
【００７８】
Ｈ．２６３規格には、プログレッシブＰフレームの動き補償が記載されており、これには、オプションの参照ピクチャ選択モードが含まれる［Ｈ．２６３規格、セクション３．４．１２、Ａｎｎｅｘ  Ｎ］。通常は、最も近い、時間的に先行するアンカー・ピクチャが動き補償に用いられる。しかしながら、参照ピクチャ選択モードが用いられている場合には、最も近い参照ピクチャ以外のピクチャからの時間的予測が可能である［同上の文献Ｉｄ］。これにより、符号化器がチャネル状態に応じてビデオ符号化を最適化する（例えば、インターフレーム符号化の基準として必要な情報がない場合にエラーが伝搬されるのを止める）ことを可能にすることによって、エラーが発生しやすいチャネルでのリアルタイム・ビデオ通信の性能を向上させることが可能である［同上の文献］。ピクチャ内の所与のブロック群またはスライスについて参照ピクチャ選択モードが用いられた場合は、１０ビット値が、そのブロック群またはスライスの予測に用いられる基準を示す［同上の文献］。Ｈ．２６３に記載されている参照ピクチャ選択メカニズムは、プログレッシブ・ビデオのためのものであり、本質的に、圧縮効率向上のためではなく、エラーが発生しやすいチャネルでのエラー伝搬の問題に対応するように適合されている。
【００７９】
Ｈ．２６４規格の草案ＪＶＴ−Ｄ１５７では、ブロックの動き補償予測のインター予測処理が、保存されているいくつかの、あらかじめ復号されたピクチャの中から参照ピクチャを選択することを含むことが可能である［ＪＶＴ−Ｄ１５７、セクション０．４．３］。ピクチャ・レベルでは、１つまたは複数のパラメータが、ピクチャの復号に用いられる参照ピクチャの数を指定する［ＪＶＴ−Ｄ１５７、セクション７．３．２．２および７．４．２．２］。スライス・レベルでは、使用可能な参照ピクチャの数を変更することが可能であり、リストにある参照ピクチャの並べ替えおよび管理のために追加パラメータを受け取ることが可能である［ＪＶＴ−Ｄ１５７、セクション７．３．３および７．４．３］。（マクロブロックまたはサブマクロブロック部分の）所与の動きベクトルについて、参照インデックスが存在すれば、その参照インデックスが、予測に用いられる参照ピクチャを示す［ＪＶＴ−Ｄ１５７、セクション７．３．５．１および７．４．５．１］。参照インデックスは、リスト内の第１、第２、第３、．．．のフレームまたはフィールドを示す［同上の文献］。リスト内にアクティブな参照ピクチャが１つしかない場合は、参照インデックスが存在しない［同上の文献Ｉｄ］。リスト内にアクティブな参照ピクチャが２つしかない場合は、参照インデックスを表すために単一の符号化されたビットが用いられる［同上の文献Ｉｄ］。詳細については、Ｈ．２６４規格の草案ＪＶＴ−Ｄ１５７を参照されたい。
【００８０】
ＪＶＴ−Ｄ１５７の参照ピクチャ選択は柔軟性をもたらし、それによって、動き補償の予測を向上させることが可能になる。しかしながら、参照ピクチャリストを管理し、参照ピクチャ選択を信号伝達する処理は、複雑であり、シナリオによっては効率的でない数のビットを消費する。
【００８１】
Ｂ．マクロブロック・モードの信号伝達
マクロブロック情報を信号伝達するために、様々な規格で様々なメカニズムが用いられている。例えば、Ｈ．２６１規格では、マクロブロックのマクロブロック・ヘッダに、マクロブロック・タイプであるＭＴＹＰＥ要素が含まれ、これはＶＬＣとして信号伝達される［Ｈ．２６１規格、セクション４．２．３］。ＭＴＹＰＥ要素は、予測モード（イントラ、インター、インター＋ＭＣ、インター＋ＭＣ＋ループ・フィルタリング）、マクロブロックに対して、量子化器であるＭＱＵＡＮＴ要素が存在するかどうか、マクロブロックに対して、動きベクトル・データであるＭＶＤ要素が存在するかどうか、マクロブロックに対して、符号化されたブロック・パターンであるＣＢＰ要素が存在するかどうか、およびマクロブロックのブロックに対して、変換係数であるＴＣＯＥＦＦ要素が存在するかどうか、を示す［同上の文献］。すべての動き補償マクロブロックについてＭＶＤ要素が存在する［同上の文献］。
【００８２】
ＭＰＥＧ−１規格では、マクロブロックがｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅ要素を有し、これはＶＬＣとして信号伝達される［ＭＰＥＧ−１規格、セクション２．４．３．６、表Ｂ．２ａ〜Ｂ．２ｄ、Ｄ．６．４．２］。順方向予測ピクチャのマクロブロックの場合は、ｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅ要素は、マクロブロックに対して、ｑｕａｎｔｉｚｅｒ  ｓｃａｌｅ要素が存在するかどうか、マクロブロックに対して、順方向動きベクトル・データが存在するかどうか、マクロブロックに対して、符号化されたブロック・パターン要素が存在するかどうか、およびマクロブロックがイントラかどうか、を示す［同上の文献］。マクロブロックが順方向動き補償を用いる場合は、順方向動きベクトル・データが必ず存在する［同上の文献］。
【００８３】
Ｈ．２６２規格では、マクロブロックがｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅ要素を有し、これはＶＬＣとして信号伝達される［Ｈ．２６２規格、セクション６．２．５．１、６．３．１７．１、および表Ｂ．２〜Ｂ．８］。順方向予測ピクチャのマクロブロックの場合は、ｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅ要素は、マクロブロックに対して、ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅ要素が存在するかどうか、マクロブロックに対して、順方向動きベクトル・データが存在するかどうか、マクロブロックに対して、符号化されたブロック・パターン要素が存在するかどうか、マクロブロックがイントラかどうか、およびマクロブロックに対するスケーラビリティ・オプションを示す［同上の文献］。マクロブロックが順方向動き補償を用いる場合は、順方向動きベクトル・データが必ず存在する［同上の文献Ｉｄ］。別の符号（ｆｒａｍｅ＿ｍｏｔｉｏｎ＿ｔｙｐｅまたはｆｉｅｌｄ＿ｍｏｔｉｏｎ＿ｔｙｐｅ）が、マクロブロックの動きベクトルの数および動きベクトルの形式を含むマクロブロック予測タイプをさらに示すことが可能である［同上の文献］。
【００８４】
Ｈ．２６３規格では、マクロブロックは、クロマＭＣＢＰＣ要素のマクロブロック・タイプおよび符号化されたブロック・パターンを有し、これらはＶＬＣとして信号伝達される［Ｈ．２６３規格、セクション５．３．２、表８〜表９、およびＦ．２］。マクロブロック・タイプは、マクロブロックに関する情報（例えば、インター、インター４Ｖ、イントラ）を与える。［Ｉｄ］。インター符号化されたピクチャの符号化されたマクロブロックについては、ＭＣＢＰＣおよび符号化されたブロック・パターンがルミナンスに関して必ず存在し、マクロブロック・タイプは、マクロブロックに対してｑｕａｎｔｉｚｅｒ  ｉｎｆｏｒｍａｔｉｏｎ要素が存在するかどうかを示す。順方向動き補償マクロブロックは、存在するマクロブロック（またはインター４Ｖタイプの場合はブロック）の動きベクトル・データを必ず有する［同上の文献］。ＭＰＥＧ−４規格でも同様に、ＶＬＣとして信号伝達されるＭＣＢＰＣ要素が示されている［ＭＰＥＧ−４規格、セクション６．２．７、６．３．７、１１．１．１］。
【００８５】
ＪＶＴ−Ｄ１５７では、ｍｂ＿ｔｙｐｅ要素はマクロブロック・レイヤの一部である［ＪＶＴ−Ｄ１５７、セクション７．３．５および７．４．５．］。ｍｂ＿ｔｙｐｅは、マクロブロック・タイプおよび各種関連情報を示す［同上の文献］。例えば、Ｐスライスについては、ｍｂ＿ｔｙｐｅ要素は、予測のタイプ（イントラか順方向か）、各種イントラモード符号化パラメータ（マクロブロックがイントラ符号化されている場合）、マクロブロック・パーティション（例えば、１６×１６、１６×８、８×１６、または８×８）およびそれゆえの動きベクトルの数（マクロブロックが順方向予測されている場合）、参照ピクチャ選択情報が存在するかどうか（パーティションが８×８の場合）を示す。［同上の文献］。予測のタイプおよびｍｂ＿ｔｙｐｅはさらに、マクロブロックに対して、符号化されたブロック・パターン要素が存在するかどうかを一括して示す。［同上の文献］。順方向動き補償されたマクロブロックの１６×１６、１６×８、または８×１６の各パーティションについて、動きベクトル・データが信号伝達される［同上の文献］。８×８パーティションを有する、順方向予測されたマクロブロックの場合は、ｓｕｂ＿ｍｂ＿ｔｙｐｅ要素が８×８パーティションごとに、それの予測のタイプ（イントラか順方向か）を示す［同上の文献］。８×８パーティションが順方向予測されている場合、ｓｕｂ＿ｍｂ＿ｔｙｐｅは、サブパーティション（例えば、８×８、８×４、４×８、または４×４）と、それゆえの動きベクトルの数（８×８パーティションの場合）とを示す［同上の文献］。順方向動き補償された８×８パーティションの中の各サブパーティションについて、動きベクトル・データが信号伝達される［同上の文献］。
【００８６】
様々な規格で、非常に様々な、マクロブロック情報の信号伝達メカニズムが用いられている。それらの信号伝達メカニズムがどのような利点を有していても、それらはまた、次の不利点を有する。まず、それらは、マクロブロック・タイプ、符号化されたブロック・パターン情報の存在／不在、および動き補償されたマクロブロックの動きベクトル差分情報の存在／不在を効率的に信号伝達しないことがある。実際、それらの規格では、動き補償されたマクロブロック（または、そのブロックまたはフィールド）の動きベクトル差分情報の存在／不在をまったく信号伝達しないのが一般的であり、その代わりに、動き補償が用いられた場合に動きベクトル差分情報が信号伝達されると仮定している。さらに、これらの規格は、マクロブロック・モード情報にどの符号テーブルを用いるかの決定において柔軟性がない。
【００８７】
Ｃ．動きベクトル予測
Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、ＭＰＥＧ−１、ＭＰＥＧ−４、およびＪＶＴ−Ｄ１５７規格のそれぞれは、何らかの形式の動きベクトル予測を示しているが、動きベクトル予測の細部は、規格間で大きく異なる。動きベクトル予測が最も単純なのは、Ｈ．２６１規格である。Ｈ．２６１規格では、例えば、現在のマクロブロック用の動きベクトルの動きベクトル・プレディクタは、既に符号化／復号されているマクロブロックの動きベクトルである［Ｈ．２６１規格、セクション４．２．３．４］。様々な特殊ケース（例えば、現在のマクロブロックが行の最初にある場合）において、動きベクトル・プレディクタは０になる。動きベクトル・プレディクタは、ＭＰＥＧ−１規格の場合と同様である［ＭＰＥＧ−１規格、セクション２．４．４．２およびＤ．６．２．３］。
【００８８】
他の規格（Ｈ．２６２など）では、格段に複雑な動きベクトル予測が示されているが、それらの規格でも、動きベクトル・プレディクタは単一の隣接する動きベクトルから決定されるのが一般的である［Ｈ．２６２規格、セクション７．６．３．］。動きベクトル・プレディクタを単一の隣接する動きベクトルから決定することは、動きが一様の場合は十分であるが、そうでない多くの場合で不十分である。
【００８９】
そこでさらに、他の規格（Ｈ．２６３、ＭＰＥＧ−４、ＪＶＴ−Ｄ１５７など）では、異なる候補動きベクトル・プレディクタを有する、複数の異なる隣接する動きベクトルから動きベクトル・プレディクタを決定する［Ｈ．２６３規格、セクション６．１．１；ＭＰＥＧ−４規格、セクション７．５．５および７．６．２、Ｆ．２；  ＪＶＴ−Ｄ１５７、セクション８．４．１］。これらは、より多くの種類の動きに対して十分であるが、異なる候補動きベクトル・プレディクタの間のばらつきが大きく、動きパターンに不連続があるシナリオに対しては、やはり対応が十分ではない。
【００９０】
詳細については、それぞれの規格を参照されたい。
【００９１】
Ｄ．動きベクトル差分の復号
Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、ＭＰＥＧ−１、ＭＰＥＧ−４、およびＪＶＴ−Ｄ１５７のそれぞれは、何らかの形式の差分動きベクトルの符号化および復号を示しているが、符号化および復号の細部は、規格間で大きく異なる。動きベクトルの符号化および復号が最も単純なのは、Ｈ．２６１規格である。Ｈ．２６１規格では、例えば、１つのＶＬＣが水平方向差分成分を表し、もう１つのＶＬＣが垂直方向差分成分を表す［Ｈ．２６１規格、セクション４．２．３．４］。他の規格では、動きベクトル差分情報のより複雑な符号化および復号が示されている。詳細については、それぞれの規格を参照されたい。
【００９２】
Ｅ．動きベクトルの再構成および導出
一般に、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、ＭＰＥＧ−１、ＭＰＥＧ−４、またはＪＶＴ−Ｄ１５７における動きベクトルは、動きベクトル・プレディクタと動きベクトル差分とを結合することによって再構成される。この場合も、再構成の細部は規格ごとに異なる。
【００９３】
（信号伝達されない）クロマ動きベクトルは、一般に、（信号伝達される）ルミナンス動きベクトルから導出される。例えば、Ｈ．２６１規格では、クロマ動きベクトルを導出するために、ルミナンス動きベクトルが二分され、ゼロまで切り詰められる［Ｈ．２６１規格、セクション３．２．２］。同様に、ＭＰＥＧ−１規格およびＪＶＴ−Ｄ１５７でも、クロマ動きベクトルを導出するためにルミナンス動きベクトルが二分される［ＭＰＥＧ−１規格、セクション２．４．４．２；ＪＶＴ−Ｄ１５７、セクション８．４．１．４］。
【００９４】
Ｈ．２６２規格では、クロマ・サブサンプリング・モード（例えば、４：２：０、４：２：２、または４：４：４）に依存する比率で、ルミナンス動きベクトルがクロマ動きベクトルにスケールダウンされる［Ｈ．２６２規格、セクション７．６．３．７］。
【００９５】
Ｈ．２６３規格では、４つのルミナンス・ブロックのすべてに対し単一のルミナンス動きベクトルを有するマクロブロックの場合、ルミナンス動きベクトルを２で割り、１／２画素位置まで丸めることによってクロマ動きベクトルが導出される［Ｈ．２６３規格、セクション６．１．１］。４つのルミナンス動きベクトル（ブロックごとに１つ）を有するマクロブロックの場合、クロマ動きベクトルは、４つのルミナンス動きベクトルを合計し、８で割り、１／２画素位置まで丸めることによって導出される［Ｈ．２６３規格、セクションＦ．２］。ＭＰＥＧ−４規格でも、クロマ動きベクトルが同様に導出される［ＭＰＥＧ−４規格、セクション７．５．５および７．６．２］。
【００９６】
Ｆ．重み付け予測
Ｈ．２６４規格の草案ＪＶＴ−Ｄ１５７には、重み付け予測が記載されている。ピクチャの重み付け予測フラグが、ピクチャ内の予測スライス（predicted slices）に重み付け予測を用いているかどうかを示す［ＪＶＴ−Ｄ１５７、セクション７．３．２．２および７．４．２．２］。ピクチャに重み付け予測が用いられている場合は、ピクチャ内の各予測スライスが、予測重みのテーブルを有する［ＪＶＴ−Ｄ１５７、セクション７．３．３、７．３．３．２、７．４．３．３、および１０．４．１］。そのテーブル用として、ルミナンス重みパラメータの分母と、クロマ重みパラメータの分母とが信号伝達される［同上文献］。そして、そのスライスに使用可能な参照ピクチャごとに、そのピクチャについてルミナンス重みパラメータおよびルミナンス・オフセット分子パラメータが信号伝達されているかどうかをルミナンス重みフラグが示し（信号伝達される場合は、フラグの後にパラメータが続く）、そのピクチャについてクロマ重みパラメータおよびクロマ・オフセット分子パラメータが信号伝達されているかどうかをクロマ重みフラグが示す（信号伝達される場合は、フラグの後にパラメータが続く）。［同上文献］。信号伝達されない分子重みパラメータには、信号伝達された分母値に関連するデフォルト値が与えられる。［同上文献］。ＪＶＴ−Ｄ１５７では、重み付け予測パラメータの信号伝達にいくらかの柔軟性が与えられているが、その信号伝達メカニズムは、様々なシナリオにおいて不十分である。
【００９７】
デジタル・ビデオにおいては、ビデオの圧縮および圧縮解除はきわめて重要なので、ビデオの圧縮および圧縮解除の分野が非常に発達していることは驚くことではない。従来のビデオ圧縮および圧縮解除手法の利点がどうであれ、それらの手法は、以下に示す手法およびツールの利点を有していない。
【００９８】
【特許文献１】米国特許出願第１０／８５７４７３号
【特許文献２】米国特許出願公開第２００３／０２０６５９３−Ａ１号明細書
【発明の概要】
【発明が解決しようとする課題】
【００９９】
デジタル・ビデオにおいては、ビデオの圧縮および圧縮解除はきわめて重要なので、ビデオの圧縮および圧縮解除の分野が非常に発達していることは驚くことではない。従来のビデオ圧縮および圧縮解除手法の利点がどうであれ、それらの手法は、以下に示す手法およびツールの利点を有していない。
【０１００】
本発明の目的は、ビデオ・コンテンツの圧縮および圧縮解除について、特にインターレース・ビデオ・コンテンツの圧縮および圧縮解除についての現在の手法を改善することにある。
【課題を解決するための手段】
【０１０１】
本明細書では、インターレース・ビデオの符号化および復号の様々な手法およびツールについて詳細に説明する。それらの様々な手法およびツールは、組み合わせて用いても、別々に用いてもよい。
【０１０２】
詳細説明の一部は、インターレース順方向予測フィールドのハイブリッド動きベクトル予測の様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
【０１０３】
ビデオ符号化器または復号器などのツールは、動きベクトル・プレディクタに適用可能なプレディクタ極性信号に少なくとも部分的に基づいて、ハイブリッド動きベクトル予測条件をチェックする。ここで、プレディクタ極性信号は、動きベクトル・プレディクタの優勢極性（優勢的な極性）（dominant polarity）または非優勢極性（非優勢的な極性）（non-dominant polarity）を選択するためのものである。それによってツールが動きベクトル・プレディクタを決定することになる。
【０１０４】
または、ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドの動きベクトル用の初期導出動きベクトル・プレディクタを決定する。そしてツールは、初期導出動きベクトル・プレディクタおよび１つまたは複数の隣接する動きベクトルに少なくとも部分的に基づいて、分散条件（variation condition）をチェックする。分散条件が満たされていれば、ツールは、１つまたは複数の隣接する動きベクトルの１つを、動きベクトルの最終的な動きベクトル・プレディクタとして用いる。分散条件が満たされていない場合、ツールは、初期導出動きベクトル・プレディクタを最終的な動きベクトル・プレディクタとして用いる。
【０１０５】
詳細説明の一部は、複数の動きベクトルを有するマクロブロックの動きベクトル・データの存在または不在を信号伝達する動きベクトル・ブロック・パターンを用いる様々な手法およびツールを対象にする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
【０１０６】
ビデオ符号化器または復号器などのツールは、複数のルミナンス動きベクトルを有するマクロブロックに関する第１の情報を表す第１の可変長符号を処理する。第１の情報は、マクロブロックのルミナンス動きベクトルごとに１つの動きベクトル・データ存在インジケータを含む。ツールはさらに、マクロブロックに関する第２の情報を表す第２の可変長符号を処理する。第２の情報は、マクロブロックの複数のブロックについての複数の変換係数データ存在インジケータを含む。
【０１０７】
または、ビデオ符号化器または復号器などのツールは、第１の数（＞１）のルミナンス動きベクトルを有するマクロブロックについて、第２の数（＝第１の数）のビットからなる動きベクトル・ブロック・パターンを処理する。各ビットは、それに対応するルミナンス動きベクトルが、ビットストリーム内で信号伝達される関連付けられた動きベクトル・データを有するかどうかを示す。ツールはさらに、関連付けられた動きベクトル・データがビットストリーム内で信号伝達されることが示されているルミナンス動きベクトルのそれぞれについて、関連付けられた動きベクトル・データを処理する。
【０１０８】
詳細説明の一部は、動きベクトル・プレディクタの優勢極性または非優勢極性を選択する様々な手法およびツールを対象にする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
【０１０９】
ビデオ符号化器または復号器などのツールは、動きベクトル・プレディクタの優勢極性を決定する。ツールは、優勢極性に少なくとも部分的に基づいて動きベクトル・プレディクタを処理し、その動きベクトル・プレディクタに少なくとも部分的に基づいて動きベクトルを処理する。例えば、この動きベクトルは、インターレース順方向予測フィールドの現在のブロックまたはマクロブロック用のものであり、優勢極性は、隣接するブロックまたはマクロブロックの複数の先行動きベクトルのそれぞれの極性に少なくとも部分的に基づく。
【０１１０】
または、ビデオ符号化器または復号器などのツールは、動きベクトル・プレディクタの優勢極性または非優勢極性の選択を示す情報を処理し、その動きベクトル・プレディクタに少なくとも部分的に基づいて動きベクトルを処理する。例えば、復号器は、優勢極性および非優勢極性を決定してから、優勢極性および非優勢極性と、それらからの選択を示す情報とに少なくとも部分的に基づいて動きベクトル・プレディクタを決定する。
【０１１１】
詳細説明の一部は、参照フィールド選択情報および差分動きベクトル情報の統合符号化および統合復号（joint coding and decoding）の様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。ビデオ復号器などのツールは、動きベクトルの差分動きベクトル情報および動きベクトル・プレディクタ選択を統合的に表現する可変長符号を復号する。そして復号器は、差分動きベクトル情報および動きベクトル・プレディクタ選択に少なくとも部分的に基づいて、動きベクトルを再構成する。
【０１１２】
または、ビデオ符号化器などのツールは、動きベクトルの優勢的／非優勢的プレディクタ選択を決定する。符号化器は、動きベクトルの差分動きベクトル情報を決定し、優勢的／非優勢的プレディクタ選択と差分動きベクトル情報とを統合的に符号化する。
【０１１３】
詳細説明の一部は、インターレース順方向予測フィールドのマクロブロックのマクロブロック・モード情報の符号テーブル選択および統合符号化／復号の様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
【０１１４】
ビデオ符号化器または復号器などのツールは、マクロブロックのマクロブロック・モード情報を統合的に信号伝達する可変長符号を処理する。マクロブロックは動き補償され、統合的に信号伝達されるマクロブロック・モード情報は、（１）マクロブロック・タイプ、（２）符号化されたブロック・パターンが存在するか不在か、および（３）動き補償されたマクロブロックの動きベクトル・データが存在するか不在か、を含む。
【０１１５】
または、ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドのマクロブロック・モード情報の、複数の使用可能な符号テーブルから符号テーブルを選択する。ツールは、選択された符号テーブルを用いて、マクロブロックのマクロブロック・モード情報を示す可変長符号を処理する。マクロブロック・モード情報は、（１）マクロブロック・タイプ、（２）符号化されたブロック・パターンが存在するか不在か、および（３）マクロブロック・タイプに適用可能な場合に、動きベクトル・データが存在するか不在か、を含む。
【０１１６】
詳細説明の一部は、インターレース順方向予測フィールドに使用可能な参照フィールドの数の信号を用いる様々な手法およびツールを対象にする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
【０１１７】
ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドが動き補償用として１つの参照フィールドを有するか、２つの可能な参照フィールドを使用するか、を示す第１の信号を処理する。インターレース順方向予測フィールドが１つの参照フィールドを使用することが第１の信号によって示された場合、ツールは、２つの可能な参照フィールドの中からその１つの参照フィールドを識別する第２の信号を処理する。一方、インターレース順方向予測フィールドが２つの可能な参照フィールドを有することが第１の信号によって示された場合、ツールは、インターレース順方向予測フィールドのブロックおよび／またはマクロブロックの複数の動きベクトルのそれぞれについて、その２つの可能な参照フィールドからの選択を行う第３の信号を処理することが可能である。そしてツールは、インターレース順方向予測フィールドに対して動き補償を行う。
【０１１８】
または、ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドが動き補償用として１つの参照フィールドを使用するか、２つの可能な参照フィールドを使用するか、を示す信号を処理する。ツールは、インターレース順方向予測フィールドに対して動き補償を行う。ツールはさらに、後続の動き補償のための参照フィールド・バッファを更新する。参照フィールド・バッファを管理するためにさらなる信号を処理することはない。
【０１１９】
詳細説明の一部は、インターレース順方向予測フィールドのマクロブロックのクロマ動きベクトルを導出する様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
【０１２０】
ビデオ符号化器または復号器などのツールは、１つまたは複数のルミナンス動きベクトルを有するマクロブロックに対し、その１つまたは複数のルミナンス動きベクトルの極性評価（polarity evaluation）に少なくとも部分的に基づいてクロマ動きベクトルを導出する。例えば、その１つまたは複数のルミナンス動きベクトルのそれぞれは奇数極性または偶数極性（odd or even polarity）であり、極性評価は、その１つまたは複数のルミナンス動きベクトルの中でどの極性がより一般的か（多く見られるか）を決定することを含む。
【０１２１】
または、ビデオ符号化器または復号器などのツールは、マクロブロックの複数のルミナンス動きベクトルの中から一般的な極性（prevailing polarity）を決定する。そしてツールは、一般的な極性を有する複数のルミナンス動きベクトルのうちの１つまたは複数に少なくとも部分的に基づいて、マクロブロックのクロマ動きベクトルを導出する。
【０１２２】
以下、添付図面を参照しながら、様々な実施形態の詳細説明を進めていく中で、さらなる特徴や利点が明らかになるであろう。
【図面の簡単な説明】
【０１２３】
【図１】従来技術による、ビデオ符号化器における動き推定を示す図である。
【図２】従来技術による、ビデオ符号化器における８×８ブロックの予測残差のブロックベース圧縮を示す図である。
【図３】従来技術による、ビデオ復号器における８×８ブロックの予測残差のブロックベース圧縮解除を示す図である。
【図４】従来技術によるインターレース・フレームを示す図である。
【図５Ａ】従来技術による、プログレッシブＰフレームにおける１ＭＶマクロブロックの候補動きベクトル・プレディクタのマクロブロックの位置を示す図である。
【図５Ｂ】従来技術による、プログレッシブＰフレームにおける１ＭＶマクロブロックの候補動きベクトル・プレディクタのマクロブロックの位置を示す図である。
【図６Ａ】従来技術による、混在１ＭＶ／４ＭＶプログレッシブＰフレームにおける１ＭＶマクロブロックの候補動きベクトル・プレディクタのブロックの位置を示す図である。
【図６Ｂ】従来技術による、混在１ＭＶ／４ＭＶプログレッシブＰフレームにおける１ＭＶマクロブロックの候補動きベクトル・プレディクタのブロックの位置を示す図である。
【図７Ａ】従来技術による、混在１ＭＶ／４ＭＶプログレッシブＰフレームにおける４ＭＶマクロブロック内の様々な場所にあるブロックの候補動きベクトル・プレディクタのブロックの位置を示す図である。
【図７Ｂ】従来技術による、混在１ＭＶ／４ＭＶプログレッシブＰフレームにおける４ＭＶマクロブロック内の様々な場所にあるブロックの候補動きベクトル・プレディクタのブロックの位置を示す図である。
【図８Ａ】従来技術による、混在１ＭＶ／４ＭＶプログレッシブＰフレームにおける４ＭＶマクロブロック内の様々な場所にあるブロックの候補動きベクトル・プレディクタのブロックの位置を示す図である。
【図８Ｂ】従来技術による、混在１ＭＶ／４ＭＶプログレッシブＰフレームにおける４ＭＶマクロブロック内の様々な場所にあるブロックの候補動きベクトル・プレディクタのブロックの位置を示す図である。
【図９】従来技術による、混在１ＭＶ／４ＭＶプログレッシブＰフレームにおける４ＭＶマクロブロック内の様々な場所にあるブロックの候補動きベクトル・プレディクタのブロックの位置を示す図である。
【図１０】従来技術による、混在１ＭＶ／４ＭＶプログレッシブＰフレームにおける４ＭＶマクロブロック内の様々な場所にあるブロックの候補動きベクトル・プレディクタのブロックの位置を示す図である。
【図１１】従来技術による、インターレースＰフレームにおける現在のフレーム符号化されたマクロブロックの候補動きベクトル・プレディクタを示す図である。
【図１２Ａ】従来技術による、インターレースＰフレームにおける現在のフィールド符号化されたマクロブロックの候補動きベクトル・プレディクタを示す図である。
【図１２Ｂ】従来技術による、インターレースＰフレームにおける現在のフィールド符号化されたマクロブロックの候補動きベクトル・プレディクタを示す図である。
【図１３Ａ】従来技術による、動きベクトル・プレディクタを算出する擬似コードである。
【図１３Ｂ】従来技術による、動きベクトル・プレディクタを算出する擬似コード（図１３Ａからの続き）である。
【図１３Ｃ】従来技術による、プログレッシブＰフレームのクロマ動きベクトルの導出を示す擬似コードである。
【図１４Ａ】従来技術による、プログレッシブＰフレームのハイブリッド動きベクトル予測を示す擬似コードである。
【図１４Ｂ】従来技術による、プログレッシブＰフレームのハイブリッド動きベクトル予測を示す擬似コード（図１４Ａからの続き）である。
【図１５Ａ】従来技術による、動きベクトル差分情報の復号を示す擬似コードである。
【図１５Ｂ】従来技術による、動きベクトル差分情報の復号を示す擬似コード（図１５Ａからの続き）である。
【図１５Ｃ】従来技術による、動きベクトル差分情報の復号を示すテーブルである。
【図１６Ａ】従来技術による、プログレッシブＰフレームのクロマ動きベクトルの導出を示す擬似コードである。
【図１６Ｂ】従来技術による、プログレッシブＰフレームのクロマ動きベクトルの導出を示す擬似コードである。
【図１６Ｃ】従来技術による、プログレッシブＰフレームのクロマ動きベクトルの導出を示す擬似コードである。
【図１７】従来技術による、インターレースＰフレームのクロマ動きベクトルの導出を示す擬似コードである。
【図１８】従来技術による、プログレッシブＰフレームの輝度補償を示す擬似コードである。
【図１９】記載の各種実施形態の実装との組合せに好適なコンピューティング環境のブロック図である。
【図２０】記載の各種実施形態の実装との組合せが可能な、一般化されたビデオ符号化器システムのブロック図である。
【図２１】記載の各種実施形態の実装との組合せが可能な、一般化されたビデオ復号器システムのブロック図である。
【図２２】記載の各種実施形態で用いられるマクロブロック形式を示す図である。
【図２３Ａ】トップ・フィールドとボトム・フィールドの互い違いのラインを示す、インターレース・ビデオ・フレームの一部分の図である。
【図２３Ｂ】符号化／復号のためにフレームとして構成されたインターレース・ビデオ・フレームを示す図である。
【図２３Ｃ】符号化／復号のためにフィールドとして構成されたインターレース・ビデオ・フレームを示す図である。
【図２４Ａ】インターレースＰフィールドの参照フィールドの例を示すチャートである。
【図２４Ｂ】インターレースＰフィールドの参照フィールドの例を示すチャートである。
【図２４Ｃ】インターレースＰフィールドの参照フィールドの例を示すチャートである。
【図２４Ｄ】インターレースＰフィールドの参照フィールドの例を示すチャートである。
【図２４Ｅ】インターレースＰフィールドの参照フィールドの例を示すチャートである。
【図２４Ｆ】インターレースＰフィールドの参照フィールドの例を示すチャートである。
【図２５Ａ】参照フィールドの数および選択情報を符号化する手法を示すフローチャートである。
【図２５Ｂ】参照フィールドの数および選択情報を復号する手法を示すフローチャートである。
【図２６】ＭＢＭＯＤＥ値を示すテーブルである。
【図２７】ＭＢＭＯＤＥ値を示すテーブルである。
【図２８Ａ】インターレースＰフィールドのマクロブロックのマクロブロック・モード情報を符号化する手法を示すフローチャートである。
【図２８Ｂ】インターレースＰフィールドのマクロブロックのマクロブロック・モード情報を復号する手法を示すフローチャートである。
【図２９】優勢的な参照フィールドと非優勢的な参照フィールドとを決定する擬似コードである。
【図３０】動きベクトルに用いられる参照フィールドが優勢的か非優勢的かを信号伝達する擬似コードである。
【図３１Ａ】参照フィールドが２つであるインターレースＰフィールドの動きベクトルの符号化における動きベクトル予測のための優勢極性および非優勢極性を決定する手法を示すフローチャートである。
【図３１Ｂ】参照フィールドが２つであるインターレースＰフィールドの動きベクトルの復号における動きベクトル予測のための優勢極性および非優勢極性を決定する手法を示すフローチャートである。
【図３２】復号時のハイブリッド動きベクトル予測の擬似コードである。
【図３３Ａ】符号化時のハイブリッド動きベクトル予測の手法を示すフローチャートである。
【図３３Ｂ】復号時のハイブリッド動きベクトル予測の手法を示すフローチャートである。
【図３４】ルミナンス・ブロックと４ＭＶＢＰ要素との間の関連付けを示す図である。
【図３５Ａ】動きベクトル・ブロック・パターンを用いる符号化の手法を示すフローチャートである。
【図３５Ｂ】動きベクトル・ブロック・パターンを用いる復号の手法を示すフローチャートである。
【図３６】参照フィールドが２つであるインターレースＰフィールドについての動きベクトル差分情報および優勢的／非優勢的プレディクタ選択を符号化する擬似コードである。
【図３７Ａ】参照フィールドが２つであるインターレースＰフィールドについての動きベクトル差分情報および優勢的／非優勢的プレディクタ選択の符号化の手法を示すフローチャートである。
【図３７Ｂ】参照フィールドが２つであるインターレースＰフィールドについての動きベクトル差分情報および優勢的／非優勢的プレディクタ選択の復号の手法を示すフローチャートである。
【図３８】４：２：０マクロブロックのクロマ・サブサンプリング・パターンを示す図である。
【図３９】動きベクトルの垂直方向成分について現在のフィールドと参照フィールドとの間の関係を示す図である。
【図４０】インターレースＰフィールドの動き補償されたマクロブロックのクロマ動きベクトルに寄与するルミナンス動きベクトルを選択する擬似コードである。
【図４１】インターレースＰフィールドのマクロブロックのルミナンス動きベクトルからクロマ動きベクトルを導出する手法を示すフローチャートである。
【図４２】インターレースＰフィールドに対し輝度補償を行う符号化器フレームワークを示す図である。
【図４３】インターレースＰフィールドに対し輝度補償を行う復号器フレームワークを示す図である。
【図４４】インターレースＰフィールドの輝度補償参照フィールド・パターンを信号伝達するシンタックス要素を示すテーブルである。
【図４５Ａ】インターレースＰフィールドの符号化においてフェード（fading）推定を行う手法を示すフローチャートである。
【図４５Ｂ】インターレースＰフィールドの復号においてフェード補償を実行する手法を示すフローチャートである。
【図４６Ａ】第１の複合実装形態（combined implementation）による、ビットストリームのレイヤのシンタックス図である。
【図４６Ｂ】第１の複合実装形態による、ビットストリームのレイヤのシンタックス図である。
【図４６Ｃ】第１の複合実装形態による、ビットストリームのレイヤのシンタックス図である。
【図４６Ｄ】第１の複合実装形態による、ビットストリームのレイヤのシンタックス図である。
【図４６Ｅ】第１の複合実装形態による、ビットストリームのレイヤのシンタックス図である。
【図４７Ａ】第１の複合実装形態における符号のテーブルである。
【図４７Ｂ】第１の複合実装形態における符号のテーブルである。
【図４７Ｃ】第１の複合実装形態における符号のテーブルである。
【図４７Ｄ】第１の複合実装形態における符号のテーブルである。
【図４７Ｅ】第１の複合実装形態における符号のテーブルである。
【図４７Ｆ】第１の複合実装形態における符号のテーブルである。
【図４７Ｇ】第１の複合実装形態における符号のテーブルである。
【図４７Ｈ】第１の複合実装形態における符号のテーブルである。
【図４７Ｉ】第１の複合実装形態における符号のテーブルである。
【図４７Ｊ】第１の複合実装形態における符号のテーブルである。
【図４７Ｋ】第１の複合実装形態における符号のテーブルである。
【図４８】第１の複合実装形態における、動きベクトルの垂直方向成分について現在のフィールドと参照フィールドとの間の関係を示す図である。
【図４９Ａ】第１の複合実装形態における、参照フィールドが１つであるインターレースＰフィールドの動きベクトル差分復号の擬似コードである。
【図４９Ｂ】第１の複合実装形態における、参照フィールドが１つであるインターレースＰフィールドの動きベクトル差分復号のテーブルである。
【図５０】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドについての動きベクトル差分情報および優勢的／非優勢的プレディクタ選択を復号する擬似コードである。
【図５１Ａ】第１の複合実装形態における、参照フィールドが１つであるインターレースＰフィールドの動きベクトル予測の擬似コードである。
【図５１Ｂ】第１の複合実装形態における、参照フィールドが１つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図５１Ａからの続き）である。
【図５２Ａ】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コードである。
【図５２Ｂ】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図５２Ａからの続き）である。
【図５２Ｃ】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図５２Ｂからの続き）である。
【図５２Ｄ】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図５２Ｃからの続き）である。
【図５２Ｅ】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図５２Ｄからの続き）である。
【図５２Ｆ】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図５２Ｅからの続き）である。
【図５２Ｇ】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コードである。
【図５２Ｈ】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コードである。
【図５２Ｉ】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測のテーブルである。
【図５２Ｊ】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測のテーブルである。
【図５２Ｋ】図５２Ｈ〜図５２Ｊに示したものの代替となるスケーリング操作の擬似コードである。
【図５２Ｌ】図５２Ｈ〜図５２Ｊに示したものの代替となるスケーリング操作のテーブルである。
【図５２Ｍ】図５２Ｈ〜図５２Ｊに示したものの代替となるスケーリング操作のテーブルである。
【図５２Ｎ】図５２Ｈ〜図５２Ｊに示したものの代替となるスケーリング操作のテーブルである。
【図５３】第１の複合実装形態における、インターレースＰフィールドのハイブリッド動きベクトル予測の擬似コードである。
【図５４】第１の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル再構成の擬似コードである。
【図５５Ａ】第１の複合実装形態における、インターレースＰフィールドのクロマ動きベクトル導出の擬似コードである。
【図５５Ｂ】第１の複合実装形態における、インターレースＰフィールドのクロマ動きベクトル導出の擬似コードである。
【図５６】第１の複合実装形態における、インターレースＰフィールドの輝度補償の擬似コードである。
【図５７Ａ】第２の複合実装形態による、ビットストリームのレイヤのシンタックス図である。
【図５７Ｂ】第２の複合実装形態による、ビットストリームのレイヤのシンタックス図である。
【図５７Ｃ】第２の複合実装形態による、ビットストリームのレイヤのシンタックス図である。
【図５８Ａ】第２の複合実装形態における、参照フィールドが１つであるインターレースＰフィールドの動きベクトル差分復号の擬似コードである。
【図５８Ｂ】第２の複合実装形態における、参照フィールドが１つであるインターレースＰフィールドの動きベクトル差分復号のテーブルである。
【図５９】第２の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドについての動きベクトル差分情報および優勢的／非優勢的プレディクタ選択を復号する擬似コードである。
【図６０Ａ】第２の複合実装形態における、参照フィールドが１つであるインターレースＰフィールドの動きベクトル予測の擬似コードである。
【図６０Ｂ】第２の複合実装形態における、参照フィールドが１つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図６０Ａからの続き）である。
【図６１Ａ】第２の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コードである。
【図６１Ｂ】第２の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図６１Ａからの続き）である。
【図６１Ｃ】第２の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図６１Ｂからの続き）である。
【図６１Ｄ】第２の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図６１Ｃからの続き）である。
【図６１Ｅ】第２の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図６１Ｄからの続き）である。
【図６１Ｆ】第２の複合実装形態における、参照フィールドが２つであるインターレースＰフィールドの動きベクトル予測の擬似コード（図６１Ｅからの続き）である。
【発明を実施するための形態】
【０１２４】
本出願は、インターレース・ビデオの効率的な圧縮および圧縮解除の手法およびツールに関する。インターレース・ビデオ表現の特定の特性を扱うことに特化した様々な手法およびツールを用いて、インターレース・ビデオ・コンテンツの圧縮および圧縮解除を改善する。記載の各種実施形態では、ビデオ符号化器および復号器に、インターレース順方向予測フィールドを符号化および復号する手法が組み込まれ、さらに、それらに対応する信号伝達手法が組み込まれる。これらの信号伝達手法は、様々なレイヤまたはレベル（例えば、シーケンス・レベル、フレーム・レベル、フィールド・レベル、スライス・レベル、マクロブロック・レベル、および／またはブロック・レベル）を含むビットストリーム形式またはシンタックスに用いられる。
【０１２５】
インターレース・ビデオ・コンテンツは、ケーブル、衛星、ＤＳＬなどを経由するデジタル・ビデオ放送システムにおいて一般的に用いられている。インターレース・ビデオ・コンテンツを圧縮および圧縮解除する効率的な手法およびツールは、ビデオ・コーデックの重要な要素である。
【０１２６】
本明細書に記載の実装形態に対する様々な代替が可能である。例えば、フローチャート図を参照して記載されている手法は、フローチャートに示されているステージの順序を変えたり、特定のステージを繰り返したり省略したりして変更することが可能である。あるいは、一部の実装形態は特定のマクロブロック形式を基準にして記載されているが、他の形式を用いることも可能である。さらには、インターレース順方向予測フィールドに関して記載されている手法およびツールを他のタイプのピクチャに適用することも可能である。
【０１２７】
各種実施形態では、符号化器および復号器は、ビットストリーム内の複数のフラグおよび／または複数の信号を用いる。特定の複数のフラグおよび複数の信号について記載しているが、この記載方法は、フラグおよび信号についての様々な規約（例えば、１ではなく０）を包含することを理解されたい。
【０１２８】
これらの様々な手法およびツールは、組み合わせて用いても、別々に用いてもよい。記載の手法およびツールのうちの１つまたは複数が、様々な実施形態において実装される。本明細書に記載の手法およびツールのいくつかは、ビデオ符号化器または復号器に用いたり、ビデオの符号化または復号に特に限定されない他のシステムに用いたりすることが可能である。
【０１２９】
Ｉ．コンピューティング環境
図１９は、記載の実施形態のいくつかを実装することが可能な、好適なコンピューティング環境（１９００）を一般化した例を示す。記載の手法およびツールは、多種多様な汎用または専用コンピューティング環境への実装が可能なので、コンピューティング環境（１９００）は、使用または機能性の範囲の何らかの限定を意図するものではない。
【０１３０】
図１９に示すように、コンピューティング環境（１９００）は、少なくとも１つの処理ユニット（１９１０）とメモリ（１９２０）とを含む。図１９では、この最も基本的な構成（１９３０）を破線で囲んでいる。処理ユニット（１９１０）は、コンピュータで実行可能な命令を実行し、実際のプロセッサであっても仮想のプロセッサであってもよい。マルチ処理システムでは、処理能力を高めるために複数の処理ユニットが、コンピュータで実行可能な命令を実行する。メモリ（１９２０）は、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）であっても、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリなど）であっても、これらのうちの２つの組合せであってもよい。メモリ（１９２０）は、ビデオ符号化器または復号器を実装するソフトウェア（１９８０）を格納する。
【０１３１】
コンピュータ環境は、付加機能を有することが可能である。例えば、コンピューティング環境（１９００）は、記憶装置（１９４０）、１つまたは複数の入力装置（１９５０）、１つまたは複数の出力装置（１９６０）、および１つまたは複数の通信接続（１９７０）を含む。バス、コントローラ、ネットワークなどの相互接続メカニズム（図示せず）が、コンピューティング環境（１９００）のコンポーネントを相互接続する。一般に、オペレーティング・システム・ソフトウェア（図示せず）が、コンピューティング環境（１９００）で実行される他のソフトウェアの動作環境を提供し、コンピューティング環境（１９００）のコンポーネントのアクティビティを調整する。
【０１３２】
記憶装置（１９４０）は、リムーバブルであっても非リムーバブルであってもよく、磁気ディスク、磁気テープまたはカセット、ＣＤ−ＲＯＭ、ＤＶＤ、または他の任意の、コンピューティング環境（１９００）内で情報を記憶するために用いられることが可能であって、アクセスされることが可能である媒体を含む。記憶装置（１９４０）は、ビデオ符号化器または復号器を実装するソフトウェア（１９８０）に対する命令を格納する。
【０１３３】
入力装置（１９５０）としては、キーボード、マウス、ペン、トラック・ボールなどのタッチ入力装置、音声入力装置、スキャン装置、または他の、コンピューティング環境（１９００）に入力を提供する装置が可能である。オーディオまたはビデオの符号化に関する入力装置（１９５０）としては、サウンド・カード、ビデオ・カード、ＴＶチューナ・カード、または同様の、オーディオまたはビデオの入力をアナログまたはデジタル形式で受け付ける装置や、オーディオまたはビデオのサンプルをコンピューティング環境（１９００）に読み込むＣＤ−ＲＯＭやＣＤ−ＲＷなどが可能である。出力装置（１９６０）としては、ディスプレイ、プリンタ、スピーカ、ＣＤライタ、または他の、コンピューティング環境（１９００）からの出力を提供する装置が可能である。
【０１３４】
通信接続（１９７０）は、通信媒体を経由しての、別のコンピューティング・エンティティとの通信を可能にする。通信媒体は、コンピュータで実行可能な命令のような情報、オーディオまたはビデオの入力または出力、または他のデータを、変調データ信号の形で搬送する。変調データ信号は、その特性の１つまたは複数が、信号内の情報を符号化するように設定または変更される信号である。限定ではなく例として、通信媒体は、電気、光、ＲＦ、赤外線、音響、または他のキャリアを用いて実装される有線または無線技術を含む。
【０１３５】
本発明の手法およびツールは、コンピュータ可読媒体の一般的なコンテキストの形での説明が可能である。コンピュータ可読媒体は、コンピューティング環境においてアクセス可能な任意の使用可能な媒体である。限定ではなく例として、コンピューティング環境（１９００）では、コンピュータ可読媒体は、メモリ（１９２０）、記憶装置（１９４０）、通信媒体、およびこれらの任意の組合せを含む。
【０１３６】
本発明の手法およびツールは、プログラム・モジュールに含まれ、コンピューティング環境内のターゲット実プロセッサまたは仮想プロセッサで実行される、コンピュータで実行可能な命令などの、コンピュータで実行可能な命令の一般的なコンテキストの形での説明が可能である。一般に、プログラム・モジュールとしては、特定のタスクを実行したり、特定の抽象データ型を実装したりするルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造体などがある。プログラム・モジュールの機能は、様々な実施形態において、必要に応じてプログラム・モジュール間で結合したり分割したりすることが可能である。プログラム・モジュールのコンピュータで実行可能な命令は、ローカル・コンピューティング環境においても分散コンピューティング環境においても実行可能である。
【０１３７】
説明のための表現として、以下の詳細説明では、「推定する」、「補償する」、「予測する」、「適用する」などの用語を、コンピューティング環境内のコンピュータ動作を記述するために用いる。これらの用語は、コンピュータによって実行される動作の高レベル抽象化であって、人間によって実行される動作と混同されてはならない。これらの用語に対応する実際のコンピュータ動作は、実装に応じて異なる。
【０１３８】
ＩＩ．一般化されたビデオ符号化器および復号器
図２０は、一般化されたビデオ符号化器システム（２０００）のブロック図であり、図２１は、一般化されたビデオ復号器システム（２１００）のブロック図であり、これらのシステムと組み合わせて、記載の各種実施形態を実装することが可能である。
【０１３９】
符号化器および復号器内のモジュール間の、図示した関係が、符号化器および復号器における情報の主要なフローを示しており、他の関係は簡略化のために図示していない。具体的には、図２０および図２１は、通例として、ビデオのシーケンス、フレーム、マクロブロック、ブロックなどに用いられる符号化器の設定、モード、テーブルなどを表す副情報を示していない。そのような副情報は、一般に、エントロピー符号化されてから出力ビットストリームの中で送信される。出力ビットストリームの形式は、Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ｖｉｄｅｏバージョン９であっても他の形式であってもよい。
【０１４０】
符号化器（２０００）および復号器（２１００）は、ビデオ・ピクチャを処理するが、それらは、ビデオ・フレームであってもビデオ・フィールドであってもフレームとフィールドの組合せであってもよい。ピクチャ・レベルおよびマクロブロック・レベルにおけるビットストリームのシンタックスおよびセマンティクスは、フレームを用いるかフィールドを用いるかによって異なってもよい。マクロブロック構成および全体のタイミングも同様に異なってもよい。符号化器（２０００）および復号器（２１００）は、ブロック・ベースであり、フレームに４：２：０マクロブロック形式を用いる。各マクロブロックは、４つの８×８ルミナンス・ブロック（１つの１６×１６マクロブロックとして扱われることもある）と２つの８×８クロマ・ブロックとを含む。フィールドについて用いるマクロブロック構成および型式は、同じであっても異なっていてもよい。これらの８×８ブロックは、例えば、周波数変換、およびエントロピー符号化などの様々なステージにおいて、さらに分割することが可能である。次のセクションで、ビデオ・フレーム構成の例を示す。
【０１４１】
実装および必要な圧縮のタイプに応じて、符号化器または復号器のモジュールを追加したり、省略したり、複数のモジュールに分割したり、他のモジュールと組み合わせたり、および／または同様のモジュールで置き換えたりすることが可能である。代替実施形態では、異なるモジュールおよび／または他のモジュール構成を有する符号化器または復号器が、記載の手法のうちの１つまたは複数を実施する。
【０１４２】
Ａ．ビデオ・フレーム構成
一部の実装形態では、符号化器（２０００）および復号器（２１００）は、以下のように構成されたビデオ・フレームを処理する。フレームは、ビデオ信号の空間情報をライン（走査線）の形で収容する。プログレッシブ・ビデオの場合、これらのラインは、ある時点から始まり、連続するラインを通ってフレームの一番下まで続くサンプル群を収容する。プログレッシブ・ビデオ・フレームは、図２２に示すマクロブロック（２２００）のように、マクロブロックに分割される。マクロブロック（２２００）は、４つの８×８ルミナンス・ブロック（Ｙ１〜Ｙ４）と２つの８×８クロマ・ブロックとを含む。２つの８×８クロマ・ブロックは、４つのルミナンス・ブロックと同じ場所にあるが、従来の４：２：０マクロブロック形式に従って、水平方向および垂直方向の解像度がルミナンス・ブロックの半分である。これらの８×８ブロックは、例えば、周波数変換（例えば、８×８、４×８、または４×４のＤＣＴなど）、エントロピー符号化などの様々なステージにおいて、さらに分割することが可能である。プログレッシブＩフレームは、イントラ符号化されたプログレッシブ・ビデオ・フレームである。プログレッシブＰフレームは、順方向予測を用いて符号化されたプログレッシブ・ビデオ・フレームであり、プログレッシブＢフレームは、双方向予測を用いて符号化されたプログレッシブ・ビデオ・フレームである。プログレッシブＰフレームおよびプログレッシブＢフレームは、イントラ符号化されたマクロブロックだけでなく、様々なタイプの予測マクロブロックを含むことが可能である。
【０１４３】
インターレース・ビデオ・フレームは、１フレームに属する２つのスキャンで構成され、１つはフレームの偶数ライン（トップ・フィールド）を含み、もう１つはフレームの奇数ライン（ボトム・フィールド）を含む。これら２つのフィールドは、異なる２つの時間帯を表すことも可能であり、同じ時間帯であることも可能である。図２３Ａは、インターレース・ビデオ・フレーム（２３００）の一部を示しており、インターレース・ビデオ・フレーム（２３００）の左上部分の、トップ・フィールドとボトム・フィールドとで互い違いになるラインを含む。
【０１４４】
図２３Ｂは、フレーム（２３３０）として符号化／復号するために構成された、図２３Ａのインターレース・ビデオ・フレーム（２３００）を示す。インターレース・ビデオ・フレーム（２３００）は、マクロブロック（２３３１）および（２３３２）のように、図２２に示した４：２：０形式を用いるマクロブロックに分割されている。ルミナンス・プレーンでは、各マクロブロック（２３３１、２３３２）は、トップ・フィールドの８ラインとボトム・フィールドの８ラインとが互い違いになっている合計１６ラインを含み、各ラインの長さが１６画素である（マクロブロック（２３３１、２３３２）内のルミナンス・ブロックおよびクロマ・ブロックの実際の構成および配置は図示していない。これらは、実際には、符号化決定（encoding decisions）が異なれば異なる可能性がある）。所与のマクロブロック内で、トップ・フィールド情報およびボトム・フィールド情報を、任意の様々なフェーズにおいて、統合的に、または別々に符号化することが可能である。インターレースＩフレームは、インターレース・ビデオ・フレームの、イントラ符号化された２つのフィールドであって、マクロブロックがその２つのフィールドの情報を含む。インターレースＰフレームは、インターレース・ビデオ・フレームの、順方向予測を用いて符号化された２つのフィールドであり、インターレースＢフレームは、インターレース・ビデオ・フレームの、双方向予測を用いて符号化された２つのフィールドであり、マクロブロックがその２つのフィールドの情報を含む。インターレースＰフレームおよびインターレースＢフレームは、イントラ符号化されたマクロブロックだけでなく、様々なタイプの予測マクロブロックを含むことが可能である。
【０１４５】
図２３Ｃは、フィールド（２３６０）として符号化／復号するために構成された、図２３Ａのインターレース・ビデオ・フレーム（２３００）を示す。インターレース・ビデオ・フレーム（２３００）の２つのフィールドのそれぞれがマクロブロックに分割されている。トップ・フィールドは、マクロブロック（２３６１）のようなマクロブロックに分割され、ボトム・フィールドは、マクロブロック（２３６２）のようなマクロブロックに分割されている（この場合も、マクロブロックは、図２２に示すように、４：２：０形式を用いており、マクロブロック内のルミナンス・ブロックおよびクロマ・ブロックの構成および配置は図示していない）。ルミナンス・プレーンでは、マクロブロック（２３６１）がトップ・フィールドの１６ラインを含み、マクロブロック（２３６２）がボトム・フィールドの１６ラインを含み、各ラインの長さが１６画素である。インターレースＩフィールドは、インターレース・ビデオ・フレームに属する、単独で表現された１つのフィールドである。インターレースＰフィールドは、順方向予測を用いて符号化された、インターレース・ビデオ・フレームに属する、単独で表現された１つのフィールドであり、インターレースＢフィールドは、双方向予測を用いて符号化された、インターレース・ビデオ・フレームに属する、単独で表現された１つのフィールドである。インターレースＰフィールドおよびインターレースＢフィールドは、イントラ符号化されたマクロブロックだけでなく、様々なタイプの予測マクロブロックを含むことが可能である。
【０１４６】
ピクチャという用語は、一般に、ソース画像データ、符号化された画像データ、または再構成された画像データを指す。プログレッシブ・ビデオについては、ピクチャは、プログレッシブ・ビデオ・フレームである。インターレース・ビデオについては、ピクチャは、コンテキストに応じて、インターレース・ビデオ・フレームを指す場合、フレームのトップ・フィールドを指す場合、またはフレームのボトム・フィールドを指す場合がある。
【０１４７】
あるいは、符号化器（２０００）および復号器（２１００）は、オブジェクトベースであり、別のマクロブロック形式またはブロック形式を用いるか、８×８ブロックや１６×１６マクロブロックとは異なるサイズまたは構成の画素集合に対して操作を実行する。
【０１４８】
Ｂ．ビデオ符号化器
図２０は、一般化されたビデオ符号化器システム（２０００）のブロック図である。符号化器システム（２０００）は、現在のピクチャ（２００５）を含むビデオ・ピクチャ（例えば、プログレッシブ・ビデオ・フレーム、インターレース・ビデオ・フレーム、またはインターレース・ビデオ・フレームのフィールド）のシーケンスを受け取り、圧縮ビデオ情報（２０９５）を出力として生成する。ビデオ符号化器の個々の実施形態では、一般に、一般化された符号化器（２０００）の変形形態または強化形態を用いる。
【０１４９】
符号化器システム（２０００）は、予測ピクチャおよびキー・ピクチャを圧縮する。説明のための表現として、図２０は、符号化器システム（２０００）を通るキー・ピクチャのパスと、順方向予測ピクチャのパスとを示す。符号化器システム（２０００）のコンポーネントの多くは、キー・ピクチャと予測ピクチャの両方の圧縮に用いられる。それらのコンポーネントによって実行される動作は、厳密には、圧縮される情報のタイプによって異なる可能性がある。
【０１５０】
予測ピクチャ（Ｐピクチャ、双方向予測ピクチャとしてのＢピクチャ、またはインター符号化されたピクチャ、とも呼ばれる）は、１つまたは複数の他のピクチャからの予測（または差分）という形で表現される。予測残差は、予測されたものとオリジナルピクチャとの差分である。一方、キー・ピクチャ（Ｉピクチャ、またはイントラ符号化されたピクチャとも呼ばれる）は、他のピクチャを参照せずに圧縮される。
【０１５１】
現在のピクチャ（２００５）が順方向予測ピクチャである場合は、動き推定器（２０１０）が、ピクチャ記憶器（２０２０）にバッファリングされている再構成された先行ピクチャ（reconstructed previous picture）（２０２５）である参照ピクチャを基準にして、現在のピクチャ（２００５）のマクロブロックまたは他の画素集合の動きを推定する。代替実施形態では、参照ピクチャが後のピクチャであったり、現在のピクチャが双方向予測されたりする。動き推定器（２０１０）は、１画素、１／２画素、１／４画素、または他の増分を単位として動きを推定することが可能であり、ピクチャごと、または他の区切りごとに動き推定の精度を切り替えることが可能である。動き推定の精度は、水平方向と垂直方向とで同じであっても異なってもよい。動き推定器（２０１０）は、動きベクトルなどの動き情報（２０１５）を副情報として出力する。動き補償器（２０３０）は、再構成された先行ピクチャ（２０２５）に動き情報（２０１５）を適用して、動き補償された、現在のピクチャ（２０３５）を形成する。予測が完全であることはまれであり、動き補償された、現在のピクチャ（２０３５）と、オリジナルの現在のピクチャ（２００５）との差分が予測残差（２０４５）である。あるいは、動き推定器および動き補償器は、別のタイプの動き推定／補償を適用する。
【０１５２】
周波数変換器（２０６０）は、空間領域のビデオ情報を、周波数領域の（すなわち、スペクトル）データに変換する。ブロック・ベースのビデオ・ピクチャの場合、周波数変換器（２０６０）は、画素データまたは予測残差データのブロックにＤＣＴまたはＤＣＴの変形形態を適用して、ＤＣＴ係数のブロックを生成する。あるいは、周波数変換器（２０６０）は、別の従来の周波数変換（例えば、フーリエ変換）を適用したり、ウェーブレット解析またはサブバンド解析を行ったりする。周波数変換器（２０６０）は、予測ピクチャの予測残差に、８×８、８×４、４×８、または他のサイズの周波数変換（例えば、ＤＣＴ）を適用する。
【０１５３】
次に量子化器（２０７０）が、スペクトル・データ係数のブロックを量子化する。量子化器は、ピクチャごと、または他の区切りごとに異なるステップ・サイズを使用して、スペクトル・データに、均一のスカラ量子化を適用する。あるいは、量子化器は、別のタイプの量子化（例えば、不均一量子化、ベクトル量子化、または非適応量子化（non-adaptive quantization））をスペクトル・データ係数に適用したり、あるいは周波数変換を行わない符号化器システムにおいて空間領域データを直接量子化したりする。符号化器（２０００）は、適応量子化に加えて、フレームドロップ、適応フィルタリング、または他のレート制御手法を用いることが可能である。
【０１５４】
予測ピクチャ内の所与のマクロブロックが特定タイプの情報を有しない場合（例えば、マクロブロックの動き情報がない場合や、残差情報がない場合）、符号化器（２０００）は、そのマクロブロックを、スキップされたマクロブロックとして符号化することが可能である。その場合、符号化器は、スキップされたマクロブロックを、圧縮ビデオ情報（２０９５）の出力ビットストリームの中で信号伝達する。
【０１５５】
再構成された現在のピクチャが後続の動き推定／補償に必要である場合は、逆量子化器（２０７６）が、量子化されたスペクトル・データ係数に逆量子化を実行する。次に逆周波数変換器（２０６６）が、周波数変換器（２０６０）とは逆の操作を実行して、（予測ピクチャの）再構成された予測残差または（イントラ符号化されたピクチャの）再構成されたサンプルを生成する。符号化されるピクチャ（２００５）が、イントラ符号化されるピクチャであれば、再構成されたサンプルは、再構成された現在のピクチャ（図示せず）を形成する。符号化されるピクチャ（２００５）が予測ピクチャであれば、再構成された予測残差を、動き補償された予測（２０３５）に加算して、再構成された現在のピクチャを形成する。ピクチャ記憶装置（２０２０）は、次のピクチャの予測に用いる、再構成された現在のピクチャをバッファリングする。一部の実施形態では、符号化器は、再構成されたフレームにデブロッキング・フィルタを適用して、フレームのブロック間の不連続部分を適応的に平滑化する。
【０１５６】
エントロピー符号化器（２０８０）は、量子化器（２０７０）の出力ならびに特定の副情報（例えば、動き情報（２０１５）、量子化ステップ・サイズ）を圧縮する。一般的なエントロピー符号化手法として、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、ＬＺ符号化、辞書符号化、およびこれらの組合せなどがある。エントロピー符号化器（２０８０）は、一般に、様々な種類の情報（例えば、ＤＣ係数、ＡＣ係数、様々な種類の副情報）に対して様々な符号化手法を用い、特定の符号化手法において複数の符号化テーブル間で選択することが可能である。
【０１５７】
エントロピー符号化器（２０８０）は、圧縮ビデオ情報（２０９５）をバッファ（２０９０）内に配置する。バッファ・レベル・インジケータがビットレート適応モジュールにフィードバックされる。圧縮ビデオ情報（２０９５）は、一定または比較的一定のビットレートでバッファ（２０９０）から引き出され、そのビットレートでの後続のストリーミングに備えて保存される。したがって、バッファ（２０９０）のレベルは、主に、フィルタリングおよび量子化されたビデオ情報のエントロピーの関数であって、これは、エントロピー符号化の効率に影響を及ぼす。あるいは、符号化器システム（２０００）は、圧縮後ただちに圧縮ビデオ情報をストリーミングし、バッファ（２０９０）のレベルは、やはり、情報が送り出し用バッファ（２０９０）から引き出されるレートに依存する。
【０１５８】
バッファ（２０９０）の前または後で、圧縮ビデオ情報（２０９５）を、ネットワーク送信のためにチャネル符号化することが可能である。チャネル符号化では、エラーの検出および訂正のデータを圧縮ビデオ情報（２０９５）に適用（追加）することが可能である。
【０１５９】
Ｃ．ビデオ復号器
図２１は、一般化されたビデオ復号器システム（２１００）のブロック図である。復号器システム（２１００）は、ビデオ・ピクチャの圧縮されたシーケンスの情報（２１９５）を受け取り、再構成されたピクチャ（２１０５）（例えば、プログレッシブ・ビデオ・フレーム、インターレース・ビデオ・フレーム、またはインターレース・ビデオ・フレームのフィールド）を含む出力を生成する。ビデオ復号器の個々の実施形態では、一般に、一般化された復号器（２１００）の変形形態または強化形態を用いる。
【０１６０】
復号器システム（２１００）は、予測ピクチャおよびキー・ピクチャを圧縮解除する。説明のために、図２１は、復号器システム（２１００）を通るキー・ピクチャのパスと、順方向予測ピクチャのパスとを示す。復号器システム（２１００）のコンポーネントの多くは、キー・ピクチャと予測ピクチャの両方の圧縮解除に用いられる。それらのコンポーネントによって実行される動作は、厳密には、圧縮解除される情報のタイプによって異なる可能性がある。
【０１６１】
バッファ（２１９０）は、圧縮ビデオシーケンスの情報（２１９５）を受け取り、受け取った情報を、エントロピー復号器（２１８０）で利用できるようにする。バッファ（２１９０）は、一般に、時間に対してほぼ一定のレートで情報を受け取り、帯域幅または伝送の短時間変動を平滑化するジッタ・バッファを含む。バッファ（２１９０）は、再生バッファおよび他のバッファも含むことが可能である。あるいは、バッファ（２１９０）は、情報を変動レートで受け取る。バッファ（２１９０）の前または後で、圧縮ビデオ情報を、エラーの検出および訂正のためにチャネル復号および処理することが可能である。
【０１６２】
エントロピー復号器（２１８０）は、エントロピー符号化された量子化データならびにエントロピー符号化された副情報（例えば、動き情報（２１１５）、量子化ステップ・サイズ）をエントロピー復号する。これには、一般に、符号化器で実行されたエントロピー符号化の逆が適用される。エントロピー復号手法として、算術復号、差分復号、ハフマン復号、ランレングス復号、ＬＺ復号、辞書復号、およびこれらの組合せなどがある。エントロピー復号器（２１８０）は、しばしば、様々な種類の情報（例えば、ＤＣ係数、ＡＣ係数、様々な種類の副情報）に対して様々な復号手法を用い、特定の復号手法において複数の符号化テーブル間で選択することが可能である。
【０１６３】
再構成されるピクチャ（２１０５）が順方向予測ピクチャであれば、動き補償器（２１３０）が、動き情報（２１１５）を参照ピクチャ（２１２５）に適用して、再構成されるピクチャ（２１０５）の予測（２１３５）を形成する。例えば、動き補償器（２１３０）が、マクロブロック動きベクトルを用いて、参照ピクチャ（２１２５）内のマクロブロックを見つける。ピクチャ・バッファ（２１２０）が、再構成された先行ピクチャを、参照ピクチャとして用いるために格納する。動き補償器（２１３０）は、１画素、１／２画素、１／４画素、または他の増分を単位として動きを補償することが可能であり、ピクチャごと、または他の区切りごとに動き補償の精度を切り替えることが可能である。動き補償の精度は、水平方向と垂直方向とで同じであっても異なってもよい。あるいは、動き補償器は、別のタイプの動き補償を適用する。動き補償器による予測が完全であることはまれなので、復号器（２１００）はさらに、予測残差を再構成する。
【０１６４】
復号器において、再構成されたピクチャが後続の動き補償に必要な場合は、ピクチャ記憶装置（２１２０）が、再構成されたピクチャを、次のピクチャの予測に用いるためにバッファリングする。一部の実施形態では、符号化器は、再構成されたフレームにデブロッキング・フィルタを適用して、フレームのブロック間の不連続部分を適応的に平滑化する。
【０１６５】
逆量子化器（２１７０）は、エントロピー復号されたデータを逆量子化する。一般に、逆量子化器は、ピクチャごと、または他の区切りごとに異なるステップ・サイズを使用して、エントロピー復号されたデータに、均一のスカラ逆量子化を適用する。あるいは、逆量子化器は、別のタイプの逆量子化（例えば、不均一逆量子化、ベクトル逆量子化、または非適応逆量子化）をデータに適用したり、逆周波数変換を行わない復号器システムにおいて空間領域データを直接逆量子化したりする。
【０１６６】
逆周波数変換器（２１６０）が、量子化された周波数領域データを空間領域ビデオ情報に変換する。ブロック・ベースのビデオ・ピクチャについては、逆周波数変換器（２１６０）は、ＩＤＣＴまたはＩＤＣＴの変形形態をＤＣＴ係数のブロックに適用して、キー・ピクチャの画素データ、または予測ピクチャの予測残差データをそれぞれ生成する。あるいは、周波数変換器（２１６０）は、別の従来の逆周波数変換（例えば、フーリエ変換）を適用するか、ウェーブレット合成またはサブバンド合成を行う。逆周波数変換器（２１６０）は、予測ピクチャの予測残差に、８×８、８×４、４×８、または他のサイズの逆周波数変換（例えば、ＩＤＣＴ）を適用する。
【０１６７】
ＩＩＩ．インターレースＰフィールドとインターレースＰフレーム
一般的なインターレース・ビデオ・フレームは、異なる時刻にスキャンされた２つのフィールド（例えば、トップ・フィールドとボトム・フィールド）からなる。一般に、インターレース・ビデオ・フレームの静止領域については、フィールドをまとめて符号化（「フレームモード」符号化）することによって符号化するのが効率的である。一方、インターレース・ビデオ・フレームの、動きのある領域については、フィールドを別々に符号化（「フィールド・モード符号化」）することによって符号化するのが効率的である場合が多い。これは、２つのフィールドがそれぞれ異なる動きを有する傾向があるからである。順方向予測インターレース・ビデオ・フレームは、２つの別々の順方向予測フィールド（インターレースＰフィールド）として符号化されることが可能である。順方向予測インターレース・ビデオ・フレームのフィールドを別々に符号化することは、例えば、インターレース・ビデオ・フレーム全体で動きが多く、したがって、フィールド間の差分が大きい場合に効率的である可能性がある。
【０１６８】
または、順方向予測インターレース・ビデオ・フレームは、インターレースＰフレームのように、フィールド符号化とフレーム符号化の混在を用いて符号化されることが可能である。インターレースＰフレームのマクロブロックの場合、マクロブロックは、トップ・フィールドおよびボトム・フィールドの画素のラインを含み、これらのラインは、フレーム符号化モードで一括して符号化されるか、フィールド符号化モードで別々に符号化されることが可能である。
【０１６９】
インターレースＰフィールドは、既に復号されている１つまたは複数のフィールドを参照する。例えば、一部の実施形態では、インターレースＰフィールドは、既に復号されている１つまたは２つのフィールドを参照し、インターレースＢフィールドは、先行の参照フィールドを２つまでと、後続の参照フィールドを２つまで（すなわち、全部で４つまでの参照フィールドを）参照する（インターレースＰフィールドの符号化および復号の手法については後で詳述する）。また、特に、一部の実施形態による、インターレースＰフィールドおよび２つの参照インターレースＰフィールドの詳細については、２００４年５月２７日出願、「Predicting Motion Vectors for Fields of Forward-predicted Interlaced Video Frames」という名称の特許文献１を参照されたい。
【０１７０】
ＩＶ．インターレースＰフィールドの参照フィールドの数
一部の実施形態では、単一の、現在のインターレースＰフィールドの動き補償予測を実行する際に、既に符号化／復号されている２つのフィールドを参照フィールドとして用いることが可能である。一般に、参照フィールドを２つ用いることができれば、動き補償予測が１つの参照フィールドに制限される場合より、圧縮効率がよくなる。しかしながら、信号伝達オーバーヘッドは、参照フィールドを２つ使用できる場合のほうが大きい。これは、動きベクトルを有するマクロブロックまたはブロックのそれぞれに対し、２つのうちのどのフィールドが参照を与えるかを示す情報を余計に送らなければならないからである。
【０１７１】
状況によっては、（参照フィールドが２つの場合と１つの場合とで）動きベクトルごとの潜在的動き補償プレディクタの数がより多いことの利点が、参照フィールド選択を信号伝達するために必要なオーバーヘッドを補って余りあるものにならない場合がある。例えば、最良の基準が、常に、可能な２つの参照フィールドのうちの一方から得られる場合は、２つではなく１つの参照フィールドを用いるほうが有利である可能性がある。通常、これは、２つの参照フィールドのうちの一方だけが現在のフィールドと同じシーンからのものになるようなシーン・チェンジによる場合である。または、シーケンスの先頭のように、参照フィールドが１つしか使用可能でない場合がある。こうした場合に効率的であるのは、参照フィールドが１つだけ使用されていることと、その１つの参照フィールドが何であるかを、現在のＰフィールドのフィールド・レベルで信号伝達し、その決定が、現在のＰフィールド内のマクロブロックおよびブロックに適用されるようにすることである。結果として、動きベクトルを有するマクロブロックまたはブロックで参照フィールド選択情報を送ることは不要になる。
【０１７２】
Ａ．様々なスキームでの参照フィールドの数
あるスキームでは、既に符号化／復号された２つのフィールドを、現在のＰフィールドの参照フィールドとして用いることが可能である。（マクロブロックまたはブロックの）動きベクトルが用いる参照フィールドは、その動きベクトルに関する他の情報と同様に、その動きベクトルに関して信号伝達される。例えば、動きベクトルに関して、信号伝達される情報は、（１）参照フィールドと、（２）動きベクトルに関連付けられた現在のブロックまたはマクロブロックのブロック・プレディクタまたはマクロブロック・プレディクタに対する参照フィールドの位置、とを示す。または、参照フィールド情報および動きベクトル情報は、セクションＸＩＩの複合実装形態のいずれかで説明されるように信号伝達される。
【０１７３】
別のスキームでは、既に符号化／復号されたフィールドの１つだけを、現在のＰフィールドの参照フィールドとして用いることが可能である。動きベクトルについては、動きベクトルが参照する参照フィールドを示すことは不要である。例えば、動きベクトルについては、信号伝達される情報は、動きベクトルに関連付けられた現在のブロックまたはマクロブロックの・プレディクタの、参照フィールド内の位置だけを示す。または、動きベクトル情報は、セクションＸＩＩの複合実装形態のいずれかで説明されるように信号伝達される。１つの参照フィールドのスキームにおける動きベクトルは、一般に、２つの参照フィールドのスキームにおける同じ動きベクトルより少ないビット数で符号化される。
【０１７４】
どのスキームの場合も、参照フィールド用のバッファまたはピクチャ記憶装置を、後続の動き補償のために更新することは単純である。現在のＰフィールドの１つまたは複数の参照フィールドは、現在のＰフィールドの前にある、現在のＰフィールドに最も近いＩまたはＰフィールドと、現在のＰフィールドに２番目に近いＩまたはＰフィールドとのうちのいずれかまたは両方である。候補参照フィールドの場所が既知であるので、符号化器および復号器は、バッファ管理信号を用いることなく、自動的に、次のＰフィールドの動き補償用の参照ピクチャ・バッファを更新することが可能である。
【０１７５】
あるいは、符号化器および復号器は、インターレースＰフィールドの多数の参照フィールドに関して１つまたは複数の補助スキームを用いる。
【０１７６】
Ｂ．信号伝達の例
本セクション、およびセクションＸＩＩの複合実装形態で説明する、信号伝達の具体例では、現在のＰフィールドに用いられる参照フィールドの数と、１つの参照フィールドが用いられる場合には、どの候補参照フィールドが用いられているかを信号伝達する。例えば、Ｐフィールド・ヘッダ内の（ＮＵＭＲＥＦと呼ばれる）１ビット・フィールドは、Ｐフィールドが参照として用いる先行フィールドが１つか２つかを示す。ＮＵＭＲＥＦ＝０であれば、参照フィールドが１つだけ用いられる。ＮＵＭＲＥＦ＝１であれば、参照フィールドが２つ用いられる。ＮＵＭＲＥＦ＝０の場合は、別の（ＲＥＦＦＩＥＬＤと呼ばれる）１ビット・フィールドが存在し、２つのフィールドのうちのいずれを参照として用いるかを示す。ＲＥＦＦＩＥＬＤ＝０であれば、時間的に近いほうのフィールドが参照フィールドとして用いられる。ＲＥＦＦＩＥＬＤ＝１であれば、２つの候補参照フィールドのうち、時間的に遠いほうのフィールドが、現在のＰフィールドの参照フィールドとして用いられる。あるいは、符号化器および復号器は、別の信号および／または追加の信号を参照フィールド選択のために用いる。
【０１７７】
Ｃ．参照フィールドの場所
図２４Ａ〜図２４Ｆは、インターレースＰフィールドの動き補償予測に使用可能な参照フィールドの場所を示す。Ｐフィールドは、１つまたは２つの既に符号化／復号されたフィールドを参照として用いることが可能である。具体的には、図２４Ａ〜図２４Ｆは、ＮＵＭＲＥＦ＝１およびＮＵＭＲＥＦ＝０の場合の参照フィールドの例を示している。
【０１７８】
図２４Ａおよび図２４Ｂは、現在のＰフィールドに対して２つの参照フィールドを用いる例を示す（ＮＵＭＲＥＦ＝１）。図２４Ａでは、現在のフィールドは、時間的に先行しているインターレース・ビデオ・フレームのトップ・フィールドとボトム・フィールドとを参照する。中間にあるインターレースＢフィールドは、参照フィールドとして用いられない。図２４Ｂでは、現在のフィールドは、現在のフィールドを含むインターレース・ビデオ・フレームの直前にあるインターレース・ビデオ・フレームのトップ・フィールドとボトム・フィールドとを参照する。
【０１７９】
図２４Ｃおよび図２４Ｄは、現在のＰフィールドに対して１つの参照フィールドを用いる例（ＮＵＭＲＥＦ＝０）を示し、この１つの参照フィールドは、時間的に最も近い参照フィールドである（ＲＥＦＦＩＥＬＤ＝０）。この参照フィールドの極性は、現在のＰフィールドの極性の反対である。このことは、例えば、現在のＰフィールドが偶数ラインからのものであれば、参照フィールドが奇数ラインからのものであることを意味する。図２４Ｃでは、現在のフィールドは、時間的に先行するインターレース・ビデオ・フレームのボトム・フィールドを参照し、そのインターレース・ビデオ・フレーム内のより遠くにあるトップ・フィールドを参照しない。この場合も、中間にあるインターレースＢフィールドは、使用可能な参照フィールドではない。図２４Ｄでは、現在のフィールドは、現在のフィールドを含むインターレース・ビデオ・フレームの直前にあるインターレース・ビデオ・フレームのボトム・フィールドを参照し、より遠くにあるトップ・フィールドは参照しない。
【０１８０】
図２４Ｅおよび図２４Ｆは、現在のＰフィールドに対して１つの参照フィールドを用いる例（ＮＵＭＲＥＦ＝０）を示し、この１つの参照フィールドは、時間的に２番目に近い参照フィールドである（ＲＥＦＦＩＥＬＤ＝１）。この参照フィールドの極性は、現在のフィールドの極性と同じである。このことは、例えば、現在のフィールドが偶数ラインからのものであれば、参照フィールドも偶数ラインからのものであることを意味する。図２４Ｅでは、現在のフィールドは、時間的に先行するインターレース・ビデオ・フレームのトップ・フィールドを参照し、より近くにあるボトム・フィールドを参照しない。この場合も、中間にあるインターレースＢフィールドは、使用可能な参照フィールドではない。図２４Ｆでは、現在のフィールドは、より近いボトム・フィールドではなくトップ・フィールドを参照する。
【０１８１】
あるいは、符号化器および復号器は、別の場所またはタイミング、および／または追加の場所またはタイミングにある参照フィールドを、インターレースＰフィールドの動き補償予測に用いる。例えば、現在のＰフィールドと同じフレーム内にある参照フィールドが可能である。または、フレームのトップ・フィールドとボトム・フィールドのいずれかを先に符号化／復号することが可能である。
【０１８２】
Ｄ．符号化手法
図２０の符号化器（２０００）のような符号化器が、複数の参照フィールド・スキームのうちのどれがインターレースＰフィールドの符号化に用いられているかを信号伝達する。例えば、この符号化器は、図２５Ａに示す手法（２５００）を実行する。
【０１８３】
所与のインターレースＰフィールドについて、符号化器は、インターレースＰフィールドの動き補償予測に用いられている参照フィールドの数を信号伝達する（２５１０）。例えば、符号化器は、用いられている参照フィールドが１つか２つかを、単一ビットを用いて示す。あるいは、符号化器は、参照フィールドの数のために別の信号伝達／符号化メカニズムを用いる。
【０１８４】
符号化器は、用いられている参照フィールドが１つか２つかを決定する（２５２０）。１つの参照フィールドが用いられている場合、符号化器は、インターレースＰフィールドの参照フィールド選択を信号伝達する（２５３０）。例えば、符号化器は、用いられているのが、時間的に最も近い参照フィールド（先行するＩまたはＰフィールド）なのか、時間的に２番目に近い参照フィールド（先行するＩまたはＰフィールド）なのかを、単一ビットを用いて示す。あるいは、符号化器は、Ｐフィールドの参照フィールド選択のために別の信号伝達／符号化メカニズムを用いる。
【０１８５】
２つの参照フィールドが用いられている場合、符号化器は、インターレースＰフィールドのブロック、マクロブロック、または他の部分の動きベクトルの参照フィールド選択を信号伝達する（２５４０）。例えば、符号化器は、動きベクトルの参照フィールド選択を、動きベクトルの差分動きベクトル情報と統合的に符号化する。あるいは、符号化器は、動きベクトルの参照フィールド選択のために別の信号伝達／符号化メカニズムを用いる。符号化器は、次の動きベクトルについての信号伝達を、Ｐフィールドについて信号伝達すべき動きベクトルがなくなるまで繰り返す（２５４５、２５４０）（簡略化のために、図２５Ａでは、参照フィールド選択の信号伝達（２５４０）の後または前後にありうる、マクロブロックおよびブロックの符号化および対応する信号伝達の各種ステージを示していない。そうすることで、図２５Ａでは、Ｐフィールドの複数の動きベクトルの参照フィールド選択の信号伝達の繰り返しに注目している）。
【０１８６】
あるいは、符号化器は、複数の参照フィールド・スキームのうちのどれがインターレースＰフィールドの符号化に用いられているかを示すために別の手法を実行する。例えば、符号化器は、参照フィールドの数について、さらなるオプションおよび／または別のオプションを有する。
【０１８７】
簡略化のために、図２５Ａでは、手法（２５００）が、符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０１８８】
Ｅ．復号手法
図２１の復号器（２１００）のような復号器が、複数のスキームのどれをインターレースＰフィールドの復号に用いるべきかを示す信号を受け取り、復号する。例えば、この復号器は、図２５Ｂに示す手法（２５５０）を実行する。
【０１８９】
所与のインターレースＰフィールドについて、復号器は、インターレースＰフィールドの動き補償予測に用いられている参照フィールドの数の信号を受け取り、復号する（２５６０）。例えば、復号器は、用いられている参照フィールドが１つか２つかを示す単一ビットを受け取り、復号する。あるいは、復号器は、参照フィールドの数のために別の復号メカニズムを用いる。
【０１９０】
復号器は、用いられている参照フィールドが１つか２つかを決定する（２５７０）。１つの参照フィールドが用いられている場合、復号器は、インターレースＰフィールドの参照フィールド選択の信号を受け取り、復号する（２５８０）。例えば、復号器は、用いられているのが、時間的に最も近い参照フィールド（先行するＩまたはＰフィールド）なのか、時間的に２番目に近い参照フィールド（先行するＩまたはＰフィールド）なのかを示す単一ビットを受け取り、復号する。あるいは、復号器は、Ｐフィールドの参照フィールド選択のために別の復号メカニズムを用いる。
【０１９１】
２つの参照フィールドが用いられている場合、復号器は、インターレースＰフィールドのブロック、マクロブロック、または他の部分の動きベクトルの参照フィールド選択の信号を受け取り、復号する（２５９０）。例えば、復号器は、動きベクトルの差分動きベクトル情報と統合的に符号化された動きベクトルの参照フィールド選択を復号する。あるいは、復号器は、動きベクトルの参照フィールド選択のために別の復号メカニズムを用いる。復号器は、次の動きベクトルについての信号の受け取りおよび復号を、Ｐフィールドについて信号伝達された動きベクトルがなくなるまで繰り返す（２５９５、２５９０）（簡略化のために、図２５Ｂでは、参照フィールド選択の受け取りおよび復号（２５９０）の後または前後にありうる、マクロブロックおよびブロックの復号の各種ステージを示していない。そうすることで、図２５Ｂでは、Ｐフィールドの複数の動きベクトルの参照フィールド選択の受け取り／復号の繰り返しに注目している）。
【０１９２】
あるいは、復号器は、複数の参照フィールド・スキームのうちのどれがインターレースＰフィールドの復号に用いられるかを決定するために別の手法を実行する。例えば、復号器は、参照フィールドの数について、さらなるオプションおよび／または別のオプションを有する。
【０１９３】
簡略化のために、図２５Ｂでは、手法（２５５０）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０１９４】
Ｖ．インターレースＰフィールドのマクロブロック・モード情報の信号伝達
一部の実施形態では、インターレースＰフィールドのマクロブロックの各種のマクロブロック・モード情報が、信号伝達のために統合的にグループ化される。インターレースＰフィールドのマクロブロックは、いくつかのシンタックス要素のうちのあるものが存在したり不在であったりする態様で、多様なモードで符号化されることが可能である。特に、動き補償のタイプ（例えば、１ＭＶ、４ＭＶ、またはイントラ）、符号化されたブロック・パターンがマクロブロックのビットストリーム内に存在するかどうか、および（１ＭＶの場合に）動きベクトル・データがマクロブロックのビットストリーム内に存在するかどうか、が統合的に符号化される。マクロブロック・モード情報の様々なシナリオに対して様々な符号テーブルを用いて、情報の全体的な圧縮効率をより高めることが可能である。
【０１９５】
本セクション、およびセクションＸＩＩの複合実装形態で説明する信号伝達の具体例では、可変長符号化されたＭＢＭＯＤＥシンタックス要素によりマクロブロック・モード情報を信号伝達する。ＭＢＭＯＤＥのテーブル選択は、フィールド・レベル要素である、固定長符号化されたＭＢＭＯＤＥＴＡＢによって信号伝達される。あるいは、符号化器および復号器は、他の信号および／または追加の信号を用いてマクロブロック・モード情報を信号伝達する。
【０１９６】
Ａ．様々なタイプのインターレースＰフィールドのマクロブロック・モード
一般に、マクロブロック・モードは、マクロブロック・タイプ（１ＭＶ、４ＭＶ、またはイントラ）、マクロブロックの符号化されたブロック・パターンの存在／不在、およびマクロブロックの動きベクトル・データの存在／不在を示す。マクロブロックモードシンタックス要素によって示される情報は、インターレースＰフィールドが、（イントラおよび／または１ＭＶマクロブロックを有する）１ＭＶフィールドとして符号化されているか、あるいは（イントラ、１ＭＶ、および／または４ＭＶマクロブロックを有する）混在ＭＶフィールドとして符号化されているかに依存する。
【０１９７】
１ＭＶインターレースＰフィールドでは、マクロブロックのマクロブロック・モード要素は、マクロブロック・タイプ（イントラまたは１ＭＶ）、マクロブロックの符号化されたブロック・パターン要素の存在／不在、および（マクロブロック・タイプが１ＭＶであって、イントラでない場合に）動きベクトル・データの存在／不在、を統合的に表現する。図２６のテーブルは、１ＭＶインターレースＰフィールドのＭＢＭＯＤＥによって信号伝達されるマクロブロック情報の完全なイベント空間を示す。
【０１９８】
混在ＭＶインターレースＰフィールドでは、マクロブロックのマクロブロック・モード要素は、マクロブロック・タイプ（イントラ、１ＭＶまたは４ＭＶ）、マクロブロックの符号化されたブロック・パターン要素の存在／不在、および（マクロブロック・タイプが１ＭＶであって、イントラでも４ＭＶでもでない場合に）動きベクトル・データの存在／不在、を統合的に表現する。図２７のテーブルは、混在ＭＶインターレースＰフィールドのＭＢＭＯＤＥによって信号伝達されるマクロブロック情報の完全なイベント空間を示す。
【０１９９】
マクロブロック・モードが、動きベクトル・データが存在することを示している場合は、動きベクトル・データが、マクロブロック・レイヤ内に存在し、動きベクトル差分を信号伝達する。この動きベクトル差分は、動きベクトルを再構成するために、動きベクトル・プレディクタと結合される。マクロブロック・モード要素が、動きベクトル・データが存在しないことを示している場合は、動きベクトル差分がゼロであると見なされ、したがって、動きベクトルは動きベクトル・プレディクタと等しくなる。したがって、マクロブロック・モード要素は、動きベクトル・プレディクタだけを用いる（動きベクトル差分による修正がまったくない）動き補償がいつ行われるかを効率的に信号伝達する。
【０２００】
インターレースＰフィールドのマクロブロック・モード要素の信号伝達には、複数の異なるＶＬＣテーブルのうちの１つを用いる。例えば、図４７Ｈは、混在ＭＶインターレースＰフィールドのマクロブロックのＭＢＭＯＤＥのための、８つの異なる符号テーブルであり、図４７Ｉは、１ＭＶインターレースＰフィールドのマクロブロックのＭＢＭＯＤＥのための、８つの異なる符号テーブルである。テーブル選択は、フィールド・レイヤのところで信号伝達されるＭＢＭＯＤＥＴＡＢ要素によって示される。あるいは、符号化器および復号器は、他の符号および／または追加の符号を用いてマクロブロック・モード情報およびテーブル選択を信号伝達する。
【０２０１】
Ｂ．符号化手法
図２０の符号化器（２０００）のような符号化器が、インターレースＰフィールドのマクロブロックのマクロブロック・モード情報を符号化する。例えば、この符号化器は、図２８Ａに示す手法（２８００）を実行する。
【０２０２】
所与のインターレースＰフィールドについて、符号化器は、インターレースＰフィールドのマクロブロックのマクロブロック・モード情報を符号化するために用いる符号テーブルを選択する（２８１０）。例えば、符号化器は、図４７Ｈまたは図４７Ｉに示すＭＢＭＯＤＥ用ＶＬＣテーブルのうちの１つを選択する。あるいは、符号化器は、他のテーブルおよび／または追加のテーブルの中から選択する。
【０２０３】
符号化器は、選択した符号テーブルをビットストリーム内で信号伝達する（２８２０）。例えば、符号化器は、所与のタイプのインターレースＰフィールドについて選択した符号テーブルを示すＦＬＣを信号伝達する。あるいは、符号化器は、別の符号テーブル選択用信号伝達メカニズム（例えば、符号テーブル選択にＶＬＣを用いるメカニズム）を用いる。
【０２０４】
符号化器は、マクロブロックのマクロブロック・モードを、使用可能な複数のマクロブロック・モードの中から選択する（２８３０）。例えば、符号化器は、マクロブロック・タイプ、符号化されたブロック・パターンが存在するかどうか、および（マクロブロック・タイプについて適用可能である場合に）動きベクトル・データが存在するかどうか、を示すマクロブロック・モードを選択する。ＭＢＭＯＤＥのオプションの様々な組合せを図２６および図２７にリストした。あるいは、符号化器は、マクロブロック・オプションの他の組合せおよび／または追加の組合せのために、他のマクロブロック・モードおよび／または追加のマクロブロック・モードの中から選択する。
【０２０５】
符号化器は、選択したマクロブロック・モードを、選択した符号テーブルを用いて信号伝達する（２８４０）。一般に、符号化器は、マクロブロック・モードを、選択したＶＬＣテーブルを用いてＶＬＣとして信号伝達する。符号化器は、マクロブロック・モードの選択および信号伝達を、Ｐフィールドについて信号伝達すべきマクロブロック・モードがなくなるまで繰り返す（２８４５、２８３０、２８４０）（簡略化のために、図２８Ａでは、選択されたマクロブロック・モードの信号伝達（２８４０）の後または前後にありうる、マクロブロックおよびブロックの符号化および対応する信号伝達の各種ステージを示していない。そうすることで、図２８Ａでは、Ｐフィールドについて選択された符号テーブルを用いる、Ｐフィールド内の複数のマクロブロックのマクロブロック・モードの信号伝達の繰り返しに注目している）。
【０２０６】
あるいは、符号化器は、インターレースＰフィールド内の複数のマクロブロックのマクロブロック・モード情報を符号化するために、別の手法を実行する。例えば、図２８Ａでは、モードを選択する前に符号テーブルを選択するが、多くの一般的な符号化シナリオでは、符号化器は、最初にマクロブロックのマクロブロック・モードを選択し、それらの選択したマクロブロック・モードを効率的に信号伝達するための符号テーブルを選択してから、符号テーブル選択とモードとを信号伝達する。さらに、図２８Ａでは、インターレースＰフィールドごとに符号テーブル選択を実行するが、別の方法として、符号テーブルが、より頻繁に、またはより少ない頻度で、または不定期に選択されたり、または符号化器が符号テーブル選択を完全にスキップ（すなわち、常に同じ符号テーブルを使用）したりする。または、符号化器は、コンテキスト情報から符号テーブルを選択することが可能である（これにより、符号テーブル選択の信号伝達が不要になる）。
【０２０７】
簡略化のために、図２８Ａでは、手法（２８００）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０２０８】
Ｃ．復号手法
図２１の復号器（２１００）のような復号器が、インターレースＰフィールドのマクロブロックのマクロブロック・モード情報を受け取り、復号する。例えば、この復号器は、図２８Ｂに示す手法（２８５０）を実行する。
【０２０９】
所与のインターレースＰフィールドについて、復号器は、インターレースＰフィールドのマクロブロックのマクロブロック・モード情報の復号に使用される符号テーブルの符号テーブル選択を受け取り、復号する（２８６０）。例えば、復号器は、所与のタイプのインターレースＰフィールドについて選択された符号テーブルを示すＦＬＣを受け取り、復号する。あるいは、復号器は、別の符号テーブル選択用信号伝達メカニズム（例えば、符号テーブル選択にＶＬＣを用いるメカニズム）を用いる。
【０２１０】
復号器は、復号した符号テーブル選択（および場合によって他の情報）に基づいて符号テーブルを選択する（２８７０）。例えば、復号器は、図４７Ｈまたは図４７Ｉに示すＭＢＭＯＤＥ用ＶＬＣテーブルのうちの１つを選択する。あるいは、復号器は、他のテーブルおよび／または追加のテーブルの中から選択する。
【０２１１】
復号器は、マクロブロックのマクロブロック・モード情報を受け取り、復号する（２８８０）。例えば、マクロブロック・モード選択は、マクロブロック・タイプ、符号化されたブロック・パターンが存在するかどうか、および（マクロブロック・タイプについて適用可能である場合に）動きベクトル・データが存在するかどうかを示す。これらのＭＢＭＯＤＥのオプションの様々な組合せを図２６および図２７にリストした。あるいは、マクロブロック・モードは、マクロブロック・オプションの他の組合せおよび／または追加の組合せのための、他のマクロブロック・モードおよび／または追加のマクロブロック・モードのうちの１つである。復号器は、次のマクロブロックのマクロブロック・モードの受け取りおよび復号を、Ｐフィールドについて受け取り、復号すべきマクロブロック・モードがなくなるまで繰り返す（２８８５、２８８０）（簡略化のために、図２８Ｂでは、マクロブロック・モード選択の受け取りおよび復号（２８８０）の後または前後にありうる、マクロブロックおよびブロックの復号の各種ステージを示していない。そうすることで、図２８Ｂでは、Ｐフィールドについて選択された符号テーブルを用いる、Ｐフィールド内の複数のマクロブロックのマクロブロック・モード選択の受け取り／復号の繰り返しに注目している）。
【０２１２】
あるいは、復号器は、インターレースＰフィールドのマクロブロックのマクロブロック・モード情報を復号するために、別の手法を実行する。例えば、図２８Ｂでは、インターレースＰフィールドごとに符号テーブル選択を実行するが、別の方法として、符号テーブルが、より頻繁に、またはより少ない頻度で、または不定期に選択されたり、復号器が符号テーブル選択を完全にスキップ（すなわち、常に同じ符号テーブルを使用）したりする。または、復号器が、コンテキスト情報から符号テーブルを選択することが可能である（これにより、符号テーブル選択の受け取りおよび復号が不要になる）。
【０２１３】
簡略化のために、図２８Ｂでは、手法（２８５０）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０２１４】
ＶＩ．参照フィールドが２つであるインターレースＰフィールドにおける参照フィールド選択
一部の実施形態では、単一の、現在のインターレースＰフィールドの動き補償予測を行う際に、既に符号化／復号されている２つのフィールドを参照フィールドとして用いる（例についてはセクションＩＶを参照されたい）。信号伝達される情報は、動きベクトルを使用する各マクロブロック（またはブロック）に対して、２つのフィールドのどれが参照を与えるかを示す。
【０２１５】
このセクションでは、現在のマクロブロックまたはブロックを符号化または復号する際の動き補償予測情報を与えるために、既に符号化／復号されている複数の参照フィールドのどれが用いられるかを効率的に信号伝達するための様々な手法およびツールについて説明する。例えば、符号化器および復号器は、インターレースＰフィールド内の既に符号化されている動きベクトルに基づいて、現在のマクロブロックまたはブロックに対する優勢的および非優勢的な参照フィールドを暗黙のうちに導出する（または、これに対応して、符号化器および復号器は、優勢的および非優勢的な動きベクトル・プレディクタ極性を導出する）。そして、信号伝達される情報は、現在のマクロブロックまたはブロックの動き補償に用いられるのが優勢的な参照フィールドか、非優勢的な参照フィールドかを示す。
【０２１６】
Ａ．優勢的および非優勢的な参照フィールドおよび・プレディクタ
インターレース・フィールドを符号化するには、動き補償を用いないか（Ｉフィールド）、順方向動き補償を用いるか（Ｐフィールド）、あるいは順方向および逆方向動き補償を用いる（Ｂフィールド）。インターレースＰフィールドは、２つの参照フィールド（既に符号化／復号されているＩフィールドまたはＰフィールド）を参照することが可能である。図２４Ａおよび図２４Ｂは、現在のＰフィールドに対して２つの参照フィールドを用いる例を示す。これら２つの参照フィールドは、極性が反対である。一方の参照フィールドがビデオ・フレームの奇数ラインを表し、もう一方の参照フィールドがビデオ・フレームの偶数ラインを表す（後者のビデオ・フレームは、奇数ラインの参照フィールドを含むフレームと同じフレームであるとは限らない）。現在符号化中または復号中のＰフィールドは、既に符号化／復号されている２つのフィールドの一方または両方を、動き補償の参照として用いることが可能である。したがって、Ｐフィールドのマクロブロックまたはブロックの動きベクトル・データは、一般に、（１）どのフィールドを動き補償の参照フィールドとして用いるか、および（２）動き補償で用いるべきサンプル値の、その参照フィールドにおける変位／位置、を何らかの形で示す。
【０２１７】
参照フィールド選択情報の信号伝達では、非効率な数のビットが消費される可能性がある。しかしながら、このビット数は、所与の動きベクトルに対して、どの参照フィールドが用いられるかを予測することと、およびその予測された参照フィールドが実際にその動きベクトルの参照フィールドとして用いられているかどうかを信号伝達すること、によって、低減が可能である。
【０２１８】
例えば、インターフェースＰフィールドにおいて動き補償を用いる各マクロブロックまたはブロックについて、符号化器または復号器は、隣接するマクロブロックまたはブロックから、既に符号化／復号されている最大３つの動きベクトルを、解析する。符号化器または復号器は、その解析結果から、優勢的および非優勢的な参照フィールドを導出する。要するに、符号化器または復号器は、可能な２つの参照フィールドのどれが、隣接するマクロブロックまたはブロックの大多数の動きベクトルによって用いられるかを決定する。隣接するマクロブロックまたはブロックの動きベクトルのうちのより多くによって参照されているフィールドが、優勢的な参照フィールドであり、そうでないほうの参照フィールドが、非優勢的な参照フィールドである。同様に、優勢的な参照フィールドの極性が、優勢的な動きベクトル・プレディクタ極性であり、非優勢的な参照フィールドの極性が、非優勢的な動きベクトル・プレディクタ極性である。
【０２１９】
図２９の擬似コードは、符号化器または復号器が優勢的および非優勢的な参照フィールドを決定する一手法を示す。この擬似コードでの用語「same field（同じフィールド）」および「opposite field（反対のフィールド）」は、現在のインターレースＰフィールドを基準にしている。例えば、現在のＰフィールドが偶数フィールドであれば、「same field」は偶数ラインの参照フィールドであり、「opposite field」は奇数ラインの参照フィールドである。図５Ａ〜図１０は、プレディクタＡ、Ｂ、およびＣが取得される、隣接するマクロブロックおよびブロックの位置を示す。図２９の擬似コードでは、優勢的なフィールドは、大多数の動きベクトル・プレディクタ候補によって参照されるフィールドである。同数の場合は、反対のフィールドから導出された動きベクトルが、優勢的な動きベクトル・プレディクタであると見なされる。イントラ符号化されたマクロブロックは、優勢的／非優勢的なプレディクタの算出では考慮されない。すべての候補プレディクタのマクロブロックがイントラ符号化されている場合、優勢的および非優勢的な動きベクトル・プレディクタはゼロに設定され、優勢的なプレディクタは、反対のフィールドからのものであると見なされる。
【０２２０】
あるいは、符号化器および復号器は、隣接するマクロブロックまたはブロックからの他の動きベクトルおよび／または追加の動きベクトルを解析し、かつ／または、別の決定論理を適用して優勢的および非優勢的な参照フィールドを決定する。または、符号化器および復号器は、別のメカニズムを用いて、インターレースＰフィールドの所与の動きベクトルについてどの参照フィールドが選択されるかを予測する。
【０２２１】
場合によっては、優勢的あるいは非優勢的のどちらのフィールドが使用されるかを示す１ビットの情報が、差分動きベクトル情報と統合的に符号化される。したがって、この１ビットの情報のビット／シンボルは、真のシンボル・エントロピーとより正確に一致することが可能である。例えば、図３０の擬似コードに示すように、優勢的／非優勢的選択子が、動きベクトル差分の垂直方向成分の一部として信号伝達される。この擬似コードでは、ＭＶＹが動きベクトルの垂直方向成分であり、ＰＭＶＹが動きベクトル・プレディクタの垂直方向成分である。本質的には、垂直方向の動きベクトル差分は、次のように、参照フィールド選択子と垂直方向オフセット差分とを統合的に符号化する。  
ＤＭＶＹ＝（ＭＶＹ−ＰＭＶＹ）＊２＋ｐ  
ここで、優勢的な参照フィールドが用いられている場合はｐ＝０であり、非優勢的な参照フィールドが用いられている場合はｐ＝１である。数値的な例として、現在のブロックが偶数極性であり、動きベクトルの実際の参照フィールドが偶数極性であり、優勢的なプレディクタがｏｐｐｆｉｅｌｄ（言い換えると、優勢的な参照フィールドが奇数極性の参照フィールド）であるとする。さらに、動きベクトルの垂直方向変位が７単位（ＭＶＹ＝７）であり、動きベクトル・プレディクタの垂直方向成分が４単位（ＰＭＶＹ＝４）であるとする。現在の参照フィールドおよび優勢的なプレディクタが反対の極性なので、ＤＭＶＹ＝（７−４）＊２＋１＝７である。
【０２２２】
あるいは、優勢的／非優勢的選択子は、何らかの別の形で、動きベクトル差分情報と統合的に符号化される。または、優勢的／非優勢的選択子は、別のメカニズムによって信号伝達される。
【０２２３】
Ｂ．符号化手法
図２０の符号化器（２０００）のような符号化器が、参照フィールドが２つであるインターレースＰフィールドの動きベクトルの符号化時に、動きベクトル・プレディクタ候補の優勢的および非優勢的な参照フィールド極性を決定する。例えば、この符号化器は、現在のマクロブロックまたはブロックの動きベクトルについて、図３１Ａに示す手法（３１００）を実行する。一般に、符号化器は、２つの参照フィールドにおいて何らかの形の動き推定を実行して、動きベクトルおよび参照フィールドを取得する。その動きベクトルを、手法（３１００）に従って符号化する。
【０２２４】
符号化器は、同じ参照フィールド極性の動きベクトル・プレディクタを動きベクトルとして決定する（３１１０）。例えば、符号化器は、セクションＶＩＩで説明するように、動きベクトルに関連付けられた参照フィールドの動きベクトル・プレディクタを決定する。あるいは、符号化器は、別のメカニズムを用いて動きベクトル・プレディクタを決定する。
【０２２５】
符号化器は、動きベクトルの優勢的および非優勢的な参照フィールド極性を決定する（３１２０）。例えば、符号化器は、図２９の擬似コードに従う。あるいは、符号化器は、別の手法を用いて、優勢極性および非優勢極性を決定する。
【０２２６】
符号化器は、優勢／非優勢の極性選択子をビットストリーム内で信号伝達する（３１２５）。この優勢／非優勢の極性選択子は、動きベクトルに関連付けられた動きベクトル・プレディクタおよび参照フィールドに対して用いるべき極性が優勢的か非優勢的かを示す。例えば、符号化器は、統合ＶＬＣを用いて、優勢的／非優勢の極性選択子を、他の情報と統合的に符号化する。あるいは、符号化器は、優勢的／非優勢の極性選択子を、別のメカニズム、例えば、選択子を示すビットの算術符号化、を用いて信号伝達する。動きベクトル・プレディクタの参照フィールド極性を予測すると、選択子情報のエントロピーが小さくなり、選択子情報のより効率的な符号化が可能になる。
【０２２７】
符号化器は、動きベクトル予測および動きベクトルから動きベクトル差分を算出し（３１３０）、その動きベクトル差分の情報を信号伝達する（３１４０）。
【０２２８】
あるいは、符号化器は、別の手法を用いて、参照フィールドが２つであるインターレースＰフィールドの動きベクトルの符号化時に、動きベクトル予測の優勢／非優勢の極性を決定する。さらに、図３１Ａでは、優勢／非優勢の極性選択子と動きベクトル差分情報とを別々に信号伝達しているが、様々な実施形態において、これらの厳密な情報が統合的に信号伝達される。ほかにも様々な順序変更が可能である。例えば、（選択子の信号伝達のオーバーヘッドのコストを動きベクトル選択処理に織り込むために）優勢／非優勢の極性を決定してから動きベクトルを決定することが可能である。
【０２２９】
簡略化のために、図３１Ａでは、手法（３１００）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０２３０】
Ｃ．復号手法
図２１の復号器（２１００）のような復号器が、参照フィールドが２つであるインターレースＰフィールドの動きベクトルの復号時に、動きベクトル・プレディクタ候補の優勢的および非優勢的な参照フィールド極性を決定する。例えば、この復号器は、図３１Ｂに示す手法（３１５０）を実行する。
【０２３１】
復号器は、現在のマクロブロックまたはブロックの動きベクトルの優勢的および非優勢的参照フィールド極性を決定する（３１６０）。例えば、復号器は、図２９の擬似コードに従う。あるいは、復号器は、別の手法を用いて、優勢および非優勢の極性を決定する。
【０２３２】
復号器は、ビットストリーム内の優勢／非優勢の極性選択子を受け取り、復号する（３１６５）。優勢／非優勢の極性選択子は、動きベクトルに関連付けられた動きベクトル・プレディクタおよび参照フィールドに対して用いるべき極性が優勢的か非優勢的かを示す。例えば、復号器は、統合ＶＬＣを用いて他の情報と統合的に符号化されている優勢／非優勢の極性選択子を受け取り、復号する。あるいは、復号器は、信号伝達された優勢／非優勢の極性選択子を受け取り、別のメカニズム（例えば、選択子を示すビットの算術復号）を用いて復号する。
【０２３３】
復号器は、動きベクトルに用いられる、参照フィールドの動きベクトル・プレディクタを決定する（３１７０）。例えば、復号器は、セクションＶＩＩで説明するように、信号伝達された極性に対する動きベクトル・プレディクタを決定する。あるいは、復号器は、別のメカニズムを用いて動きベクトル・プレディクタを決定する。
【０２３４】
復号器は、動きベクトル差分の情報を受け取って復号し（３１８０）、動きベクトル差分と動きベクトル・プレディクタとから動きベクトルを再構成する（３１９０）。
【０２３５】
あるいは、復号器は、別の手法を用いて、参照フィールドが２つであるインターレースＰフィールドの動きベクトルの復号時に、動きベクトル予測の優勢／非優勢の極性を決定する。例えば、図３１Ｂでは、優勢／非優勢の極性選択子と動きベクトル差分情報とを別々に信号伝達しているが、代替方法では、これらの情報が統合的に信号伝達される。さらに他の様々な順序変更が可能である。
【０２３６】
簡略化のために、図３１Ｂでは、手法（３１５０）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０２３７】
ＶＩＩ．インターレースＰフィールドのハイブリッド動きベクトル予測
一部の実施形態では、動きベクトルの信号伝達に関連するビットレートを下げるために、動きベクトルを、動きベクトル・プレディクタに対する差分として信号伝達する。動きベクトル差分の信号伝達の性能は、動きベクトル予測の質に部分的に依存する。動きベクトル予測の質は、現在のマクロブロック、ブロックなどの周辺の領域において複数の候補動きベクトル・プレディクタが考慮される場合に高まる。しかしながら、場合によっては、複数の候補プレディクタを用いると、動きベクトル予測の質が低下する。これは、例えば、動きベクトル・プレディクタが、多様な（例えば、動きベクトル・プレディクタ間の分散が大きい）候補プレディクタの集合のメジアンとして算出される場合に起こる。
【０２３８】
したがって、一部の実施形態では、符号化器および復号器は、インターレースＰフィールドの動きベクトルのハイブリッド動きベクトル予測を実行する。現在のマクロブロックまたはブロックと因果関係を有する近傍を構成するベクトルが、何らかの基準からみて多様である場合に、ハイブリッド動きベクトル予測モードが用いられる。このモードでは、候補プレディクタの集合のメジアンを動きベクトル・プレディクタとして用いる代わりに、その集合にある特定の動きベクトル（例えば、上のプレディクタ、左のプレディクタ）を、選択子ビットまたは符号ワードによって信号伝達する。これにより、インターレースＰフィールドにおける動きの不連続点での動きベクトル予測を向上させることが可能になる。参照フィールドが２つであるインターレースＰフィールドの場合は、ハイブリッド動きベクトル予測条件のチェック時に、優勢極性がさらに考慮される。
【０２３９】
Ａ．インターレースＰフィールドの動きベクトル予測
ハイブリッド動きベクトル予測は、インターレースＰフィールドの通常の動きベクトル予測の特殊なケースである。既述のように、動きベクトルは、動きベクトル・プレディクタに（ビットストリーム内で信号伝達される）動きベクトル差分を加算することによって再構成される。プレディクタは、最大３つの隣接する動きベクトルから算出される。図５Ａ〜図１０は、動きベクトル予測のためにプレディクタＡ、Ｂ、およびＣが取得される、隣接するマクロブロックおよびブロックの位置を示す（これらの図は、プログレッシブＰフレームのマクロブロックおよびブロックを示しているが、セクションＶＩで説明するように、インターレースＰフィールドのマクロブロックおよびブロックにも当てはまる）。
【０２４０】
インターレースＰフィールドが１つの先行フィールドだけを参照する場合は、Ｐフィールドの動きベクトルのそれぞれに対して動きベクトル・プレディクタが１つずつ算出される。例えば、図５１Ａおよび図５１Ｂ（または代替として図６０Ａおよび図６０Ｂ）の擬似コードは、セクションＸＩＩで詳述する、参照フィールドが１つであるインターレースＰフィールドの動きベクトルに対して動きベクトル・プレディクタが算出される要素を示す。
【０２４１】
インターレースＰフィールドに対して２つの参照フィールドが用いられる場合は、Ｐフィールドの動きベクトルのそれぞれに対して２つずつの動きベクトル・プレディクタが可能である。両方の動きベクトル・プレディクタを算出してから一方を選択することも可能であり、最初にプレディクタの選択を決定することによって一方の動きベクトル・プレディクタだけを算出することも可能である。一方の候補動きベクトル・プレディクタは優勢的な参照フィールドにあり、もう一方の候補動きベクトル・プレディクタは非優勢的な参照フィールドにある（用語の「優勢的」および「非優勢的」は、例えば、セクションＶＩで説明したとおりである）。優勢的な参照フィールドと非優勢的な参照フィールドは反対の極性を有するので、一方の動きベクトル・プレディクタは現在のＰフィールドと同じ極性の参照フィールドにあり、もう一方の動きベクトル・プレディクタは現在のＰフィールドと反対の極性の参照フィールドにある。例えば、図５２Ａ〜図５２Ｎの擬似コードおよびテーブルは、セクションＸＩＩで詳述する、参照フィールドが２つであるＰフィールドの動きベクトルの動きベクトル・プレディクタを算出する方法を示す。変数ｓａｍｅｆｉｅｌｄｐｒｅｄ＿ｘおよびｓａｍｅｆｉｅｌｄｐｒｅｄ＿ｙは、それぞれ、同じフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表し、変数ｏｐｐｏｓｉｔｅｆｉｅｌｄｐｒｅｄ＿ｘおよびｏｐｐｏｓｉｔｅｆｉｅｌｄｐｒｅｄ＿ｙは、それぞれ、反対のフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表す。変数ｄｏｍｉｎａｎｔｐｒｅｄｉｃｔｏｒは、優勢的なプレディクタがどのフィールドに含まれるかを示す。ｐｒｅｄｉｃｔｏｒ＿ｆｌａｇは、動きベクトルに対して用いられているプレディクタが優勢的か非優勢的かを示す。あるいは、図６１Ａ〜図６１Ｆの擬似コードを用いる。
【０２４２】
Ｂ．インターレースＰフィールドのハイブリッド動きベクトル予測
動きベクトルのハイブリッド動きベクトル予測では、符号化器および復号器が、動きベクトルのハイブリッド動きベクトル予測条件をチェックする。この条件は、一般に、動きベクトル・プレディクタの分散の度合いに関連する。評価されるプレディクタは、候補動きベクトル・プレディクタおよび／または通常の動きベクトル予測を用いて算出される動きベクトル・プレディクタであることが可能である。条件が満たされた場合（例えば、分散の度合いが高い場合）は、一般に、通常の動きベクトル・プレディクタではなく、オリジナルの候補動きベクトル・プレディクタのうちの１つが用いられる。符号化器は、どのハイブリッド動きベクトル・プレディクタを用いるべきかを信号伝達し、復号器は、その信号を受け取り、復号する。ハイブリッド動きベクトル・プレディクタは、インター・プレディクタの分散が小さい場合（よくあるケースである）には用いられない。
【０２４３】
符号化器および復号器は、インターレースＰフィールドの各動きベクトルについて、その動きベクトルがマクロブロック用であれ、ブロック用であれ、それ以外であれ、ハイブリッド動きベクトル条件をチェックする。言い換えると、符号化器および復号器は、各動きベクトルについて、ハイブリッド動きベクトル条件がトリガされていて、それゆえ、プレディクタ選択信号が期待されるかどうかを決定する。あるいは、符号化器および復号器は、インターレースＰフィールドの一部の動きベクトルについてのみハイブリッド動きベクトル条件をチェックする。
【０２４４】
インターレースＰフィールドのハイブリッド動きベクトル予測の利点は、良好な動きベクトル・プレディクタを選択するために、算出されたプレディクタと優勢極性とを用いる点である。多彩な実験の結果から、後述するハイブリッド動きベクトル予測は、ハイブリッド動きベクトル予測を行わない動きベクトル予測より、さらにはハイブリッド動きベクトル予測の従来の実装より、大幅にすぐれた圧縮／画質をもたらすことがわかった。のみならず、ハイブリッド・ベクトル予測チェックに必要な追加算出のコストはあまり大きくない。
【０２４５】
一部の実施形態では、符号化器または復号器は、オリジナルの候補動きベクトル・プレディクタの集合に対して、（セクションＶＩＩ．Ａで説明した手法によって決定される）通常の動きベクトル・プレディクタを検査する。通常の動きベクトル・プレディクタは、プレディクタＡ、Ｂ、および／またはＣの成分ごとのメジアンであり、符号化器または復号器はそれを、プレディクタＡおよびプレディクタＣを基準にして検査する。この検査は、通常の動きベクトル・プレディクタと候補との間の分散が大きいかどうかをチェックする。大きい場合は、真の動きベクトルが、メジアン操作から導出されたプレディクタよりも、候補プレディクタ（Ａ、Ｂ、またはＣ）のいずれかに近い可能性が大きい。候補プレディクタが互いに離れている場合は、これらの成分ごとのメジアンは良好な予測を与えないので、真の動きベクトルがＡに近いかＣに近いかを示す追加信号を送るほうが効率的である。プレディクタＡがその近いプレディクタである場合は、プレディクタＡが現在の動きベクトルの動きベクトル・プレディクタとして用いられ、プレディクタＣがその近いプレディクタである場合は、プレディクタＣが現在の動きベクトルの動きベクトル・プレディクタとして用いられる。
【０２４６】
図３２の擬似コードは、復号時の、そのようなハイブリッド動きベクトル予測を示す。変数ｐｒｅｄｉｃｔｏｒ＿ｐｒｅ＿ｘおよびｐｒｅｄｉｃｔｏｒ＿ｐｒｅ＿ｙは、それぞれ、通常のハイブリッド動きベクトル予測を用いて算出される水平方向および垂直方向の動きベクトル・プレディクタである。変数ｐｒｅｄｉｃｔｏｒ＿ｐｏｓｔ＿ｘおよびｐｒｅｄｉｃｔｏｒ＿ｐｏｓｔ＿ｙは、それぞれ、ハイブリッド動きベクトル予測後の、水平方向および垂直方向の動きベクトル・プレディクタである。この擬似コードでは、動きベクトル・プレディクタ選択がビットストリーム内で明示的に符号化されているかどうかを調べるために、通常の動きベクトル・プレディクタが、プレディクタＡおよびＣに対して検査される。そうなっている場合は、動きベクトル・プレディクタとしてプレディクタＡを用いるか、プレディクタＣを用いるかを示す単一ビットがビットストリーム内に存在する。そうなっていない場合は、通常の動きベクトル・プレディクタが用いられる。他の様々な条件（例えば、ＡまたはＣがイントラである場合の、通常の動きベクトルの大きさ）もチェックすることが可能である。ＡまたはＣがイントラである場合は、ＡまたはＣに対応する動きがそれぞれゼロであると見なされる。
【０２４７】
参照フィールドが２つであるＰフィールドの動きベクトルの場合は、すべてのプレディクタが同一極性を有する。一部の実施形態では、参照フィールド極性は、優勢的／非優勢的なプレディクタ極性と、差分動きベクトル復号処理で得られる選択子信号とによって決定される。例えば、反対のフィールド・プレディクタが用いられている場合は、  
predictor_pre_x = oppositefieldpred_x、  
predictor_pre_x = oppositefieldpred_y、  
ｐredictorA_x = oppositefieldpredA_x、  
predictorA_y = oppositefieldpredA_y、  
predictorC_x = oppositefieldpredC_x、および  
predictorC_y = oppositefieldpredC_yである。  
同じフィールド・プレディクタが用いられている場合は、  
predictor_pre_x = samefieldpred_x、  
predictor_pre_x = samefieldpred_y、  
predictorA_x = samefieldpredA_x、  
predictorA_y = samefieldpredA_y、  
predictorC_x = samefieldpredC_x、および  
predictorC_y = samefieldpredC_yである。oppositefieldpredおよびsamefieldpredの値は、例えば、図５２Ａ〜図５２Ｊまたは図６１Ａ〜図６１Ｆの擬似コードにあるように算出される。図５３は、複合実装形態（セクションＸＩＩを参照）におけるハイブリッド動きベクトル予測の代替擬似コードである。
【０２４８】
あるいは、符号化器および復号器は、別のハイブリッド動きベクトル予測条件（例えば、他のプレディクタおよび／または追加のプレディクタを検討する条件、動きの不連続を検出するために別の決定論理を用いる条件、および／または別の分散しきい値（３２以外を用いる条件）を検査する。
【０２４９】
２つの候補プレディクタ（例えば、ＡおよびＣ）から選択する単純な信号は、動きベクトルごとに１ビットである。あるいは、符号化器および復号器は、別の信号伝達メカニズム（例えば、選択子ビットと他の情報（動きベクトルデータなど）とを統合的に信号伝達するメカニズム）を用いる。
【０２５０】
Ｃ．符号化手法
図２０の符号化器（２０００）のような符号化器が、インターレースＰフィールドの動きベクトルの符号化時にハイブリッド動きベクトル予測を行う。例えば、この符号化器は、現在のマクロブロックまたはブロックの動きベクトルについて、図３３Ａに示す手法（３３００）を実行する。
【０２５１】
符号化器は、動きベクトルの動きベクトル・プレディクタを決定する（３３１０）。例えば、符号化器は、セクションＶＩＩ．Ａで説明した手法を用いて、動きベクトル・プレディクタを決定する。あるいは、符号化器は、別の手法を用いて動きベクトル・プレディクタを決定する。
【０２５２】
次に符号化器は、その動きベクトル・プレディクタのハイブリッド動きベクトル予測条件をチェックする（３３２０）。例えば、符号化器は、図３２に示した、復号器側の擬似コードを逆の形で反映した処理を実行する手法（technique that mirrors the decoder-side pseudocode）を用いる。あるいは、符号化器は、別のハイブリッド動きベクトル予測条件をチェックする（対応する復号器は、符号化器と同じハイブリッド動きベクトル予測条件を、その条件がどのようなものであれ、チェックする。これは、プレディクタ信号情報の存在／不在が暗黙のうちに符号化器および対応する復号器によって導出されるからである）。
【０２５３】
ハイブリッド動きベクトル条件がトリガされていない場合（判断３３２５からの「いいえ」のパス）、符号化器は、最初に決定された動きベクトル予測子を用いる。
【０２５４】
これに対し、ハイブリッド動きベクトル条件がトリガされている場合（判断３３２５からの「はい」のパス）、符号化器は、用いるハイブリッド動きベクトル・プレディクタを選択する（３３３０）。例えば、符号化器は、隣接する動きベクトルである、上の候補プレディクタおよび左の候補プレディクタから選択する。あるいは、符号化器は、他のプレディクタおよび／または追加のプレディクタの中から選択する。
【０２５５】
次に符号化器は、選択したハイブリッド動きベクトル・プレディクタを信号伝達する（３３４０）。例えば、符号化器は、動きベクトル・プレディクタとして用いられるのが上の候補プレディクタか、左の候補プレディクタかを示す単一ビットを送信する。あるいは、符号化器は、別の信号伝達メカニズムを用いる。
【０２５６】
符号化器は、（例えば、マクロブロック・タイプに応じて）インターレースＰフィールドのすべての動きベクトルに対して、または、インターレースＰフィールドの特定の動きベクトルに対してのみ、手法（３３００）を実行する。簡略化のために、図３３Ａでは、手法（３３００）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０２５７】
Ｄ．復号手法
図２１の復号器（２１００）のような復号器が、インターレースＰフィールドの動きベクトルの復号時にハイブリッド動きベクトル予測を行う。例えば、この復号器は、現在のマクロブロックまたはブロックの動きベクトルについて、図３３Ｂに示す手法（３３５０）を実行する。
【０２５８】
復号器は、動きベクトルの動きベクトル・プレディクタを決定する（３３６０）。例えば、復号器は、セクションＶＩＩ．Ａで説明した手法を用いて、動きベクトル・プレディクタを決定する。あるいは、復号器は、別の手法を用いて動きベクトル・プレディクタを決定する。
【０２５９】
次に復号器は、その動きベクトル・プレディクタのハイブリッド動きベクトル予測条件をチェックする（３３７０）。例えば、復号器は、図３２の擬似コードに従う。あるいは、復号器は、別のハイブリッド動きベクトル予測条件をチェックする（復号器は、対応する符号化器と同じハイブリッド動きベクトル予測条件を、その条件がどのようなものであれ、チェックする）。
【０２６０】
ハイブリッド動きベクトル条件がトリガされていない場合（判断３３７５からの「いいえ」のパス）、復号器は、最初に決定された動きベクトル・プレディクタを用いる。
【０２６１】
これに対し、ハイブリッド動きベクトル条件がトリガされている場合（判断３３７５からの「はい」のパス）、復号器は、選択されたハイブリッド動きベクトル・プレディクタを示す信号を受け取り、復号する（３３８０）。例えば、復号器は、動きベクトル・プレディクタとして用いられるのが上の候補プレディクタか、左の候補プレディクタかを示す単一ビットを取得する。あるいは、復号器は、別の信号伝達メカニズムと連係して動作する。
【０２６２】
次に復号器は、用いるハイブリッド動きベクトル・プレディクタを選択する（３３９０）。例えば、復号器は、隣接する動きベクトルである、上の候補プレディクタおよび左の候補プレディクタから選択する。あるいは、復号器は、他のプレディクタおよび／または追加のプレディクタの中から選択する。
【０２６３】
復号器は、（例えば、マクロブロック・タイプに応じて）インターレースＰフィールドのすべての動きベクトルに対して、または、インターレースＰフィールドの特定の動きベクトルに対してのみ、手法（３３５０）を実行する。簡略化のために、図３３Ｂでは、手法（３３５０）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０２６４】
ＶＩＩＩ．動きベクトル・ブロック・パターン
一部の実施形態では、マクロブロックが複数の動きベクトルを有することが可能である。例えば、混在ＭＶインターレースＰフィールドのマクロブロックは、１つの動きベクトルまたは４つの動きベクトル（マクロブロックのルミナンス・ブロックごとに１つ）を有するか、イントラ符号化される（動きベクトルを有しない）ことが可能である。同様に、インターレースＰフレームのフィールド符号化されたマクロブロックは、２つの動きベクトル（フィールドごとに１つ）または４つの動きベクトル（フィールドごとに２つ）有することが可能であり、インターレースＰフレームのフレーム符号化されたマクロブロックは、１つの動きベクトルまたは４つの動きベクトル（ルミナンス・ブロックごとに１つ）を有することが可能である。
【０２６５】
２ＭＶまたは４ＭＶマクロブロックは、信号伝達すべき関連付けられた動きベクトル・データ（例えば、差分）を有しない場合には、「スキップされた」ものとして信号伝達されることが可能である。その場合には、動きベクトル・プレディクタが、そのマクロブロックの動きベクトルとして用いられるのが普通である。または、マクロブロックは、１つの動きベクトルについては信号伝達すべき非ゼロの動きベクトル・データを有し、（（０，０）の動きベクトル差分を有する）別の動きベクトルについては有しないことが可能である。すべての動きベクトルではないが少なくとも１つの動きベクトルについて（０，０）の差分を有する２ＭＶまたは４ＭＶマクロブロックの場合は、動きベクトル・データを信号伝達することで非効率的な数のビットが消費される可能性がある。
【０２６６】
したがって、一部の実施形態では、符号化器または復号器は、複数の動きベクトルを有するマクロブロックの動きベクトル・データの存在または不在を効率的に信号伝達する信号伝達メカニズムを用いる。マクロブロックの、動きベクトルの符号化されたブロック・パターン（または短縮して「動きベクトル・ブロック・パターン」）は、どのブロック、フィールド、半フィールドなどが、ビットストリーム内で信号伝達される動きベクトル・データを有し、どのブロック、フィールド、半フィールドなどが有していないかを、動きベクトルごとに示す。動きベクトル・ブロック・パターンは、マクロブロックの動きベクトル・データのパターンを統合的に信号伝達する。これによって、符号化器および復号器は、ブロック間に存在する空間的相関を活用することが可能になる。さらに、動きベクトル・データの存在／不在を動きベクトル・ブロック・パターンで信号伝達することにより、この情報を、変換係数データ（ＣＢＰＣＹ要素を有するデータなど）の存在／不在に関する信号伝達と切り離す形で単純に信号伝達することが可能になる。
【０２６７】
本セクション、およびセクションＸＩＩの複合実装形態で説明する信号伝達の具体例では、可変長符号化された２ＭＶＢＰおよび４ＭＶＢＰシンタックス要素により動きベクトル・ブロック・パターンを信号伝達する。２ＭＶＢＰおよび４ＭＶＢＰについてのテーブル選択は、それぞれ、固定長符号化された２ＭＶＢＰＴＡＢおよび４ＭＶＢＰＴＡＢ要素によって信号伝達される。あるいは、符号化器および復号器は、他の信号および／または追加の信号を用いて動きベクトル・ブロック・パターンを信号伝達する。
【０２６８】
Ａ．動きベクトル・ブロック・パターン
動きベクトル・ブロック・パターンは、複数の動きベクトルを有するマクロブロックについて、どの動きベクトルが「符号化されている」か、および、どの動きベクトルが「符号化されていない」かを示す。動きベクトルが符号化されるのは、その動きベクトルの差分動きベクトルが非ゼロの場合（すなわち、信号伝達される動きベクトルが、その動きベクトル・プレディクタと異なる場合）である。そうでない場合は、動きベクトルは符号化されない。
【０２６９】
マクロブロックが４つの動きベクトルを有する場合、動きベクトル・ブロック・パターンは４ビットを有し、各ビットが４つの動きベクトルのそれぞれに対応する。動きベクトル・ブロック・パターン内のビットの並びは、インターレースＰフィールドの４ＭＶマクロブロックまたはインターレースＰフレームの４ＭＶフレーム符号化されたマクロブロックの場合には、図３４に示すブロック並びに従う。インターレースＰフレームの４ＭＶフィールド符号化されたマクロブロックの場合、動きベクトル・ブロック・パターンのビット並びは、左上のフィールドの動きベクトル、右上のフィールドの動きベクトル、左下のフィールドの動きベクトル、および右下のフィールドの動きベクトルである。
【０２７０】
マクロブロックが２つの動きベクトルを有する場合、動きベクトル・ブロック・パターンは２ビットを有し、各ビットが２つの動きベクトルのそれぞれに対応する。インターレースＰフレームの２ＭＶフィールド符号化されたマクロブロックの場合、動きベクトル・ブロック・パターンのビット並びは、単純に、トップ・フィールドの動きベクトル、そしてボトム・フィールドの動きベクトルである。
【０２７１】
動きベクトル・ブロック・パターン要素を信号伝達するために、複数の異なるＶＬＣテーブルのうちの１つを用いることが可能である。例えば、図４７Ｊは、４ＭＶＢＰの場合の４つの異なる符号テーブルを示し、図４７Ｋは、２ＭＶＢＰの場合の４つの異なる符号テーブルを示す。テーブル選択は、ピクチャ・レイヤにおいて信号伝達される４ＭＶＢＰＴＡＢまたは２ＭＶＢＰＴＡＢ要素によって示される。あるいは、符号化器および復号器は、他の符号および／または追加の符号を用いて動きベクトル・ブロック・パターン情報およびテーブル選択を信号伝達する。
【０２７２】
参照フィールドが２つであるインターレースＰフィールドのマクロブロックについては、どの動きベクトルが符号化されているかを決定する追加規則が適用される。「符号化されていない」動きベクトルは、セクションＶＩで説明したように、優勢的なプレディクタを有する。「符号化されている」動きベクトルは、ゼロ値の動きベクトル差分を有することが可能であるが、非優勢的なプレディクタを信号伝達することが可能である。または、「符号化されている」動きベクトルは、非ゼロの差分動きベクトルを有することが可能であり、優勢的なプレディクタでも非優勢的なプレディクタでも信号伝達することが可能である。
【０２７３】
あるいは、符号化器および復号器は、他の種類および／または追加の種類のピクチャの動きベクトル・ブロック・パターン、他の種類および／または追加の種類のマクロブロックの動きベクトル・ブロック・パターン、他の数および／または追加の数の動きベクトルの動きベクトル・ブロック・パターン、および／または異なるビット位置の動きベクトル・ブロック・パターンを用いる。
【０２７４】
Ｂ．符号化手法
図２０の符号化器（２０００）のような符号化器が、動きベクトル・ブロック・パターンを用いて、マクロブロックの動きベクトル・データを符号化する。例えば、この符号化器は、図３５Ａに示す手法（３５００）を実行する。
【０２７５】
複数の動きベクトルを有する所与のマクロブロックに対して、符号化器は、そのマクロブロックの動きベクトル・ブロック・パターンを決定する（３５１０）。例えば、符号化器は、インターレースＰフィールドの４ＭＶマクロブロックについて、またはインターレースＰフレームの４ＭＶフィールド符号化またはフレーム符号化されたマクロブロックについて、４つの動きベクトル・ブロック・パターンを決定する。または、符号化器は、インターレースＰフレームの２ＭＶフィールド符号化されたマクロブロックについて、２つの動きベクトル・ブロック・パターンを決定する。あるいは、符号化器は、別の種類のマクロブロックおよび／または別の数の動きベクトルについて動きベクトル・ブロック・パターンを決定する。
【０２７６】
次に符号化器は、動きベクトル・ブロック・パターンを信号伝達する（３５２０）。通常、符号化器は、例えば、図４７Ｊおよび図４７Ｋに示すような符号テーブルを用いて、動きベクトル・ブロック・パターンのＶＬＣを信号伝達する。あるいは、符号化器は、別のメカニズムを用いて、動きベクトル・ブロック・パターンを信号伝達する。
【０２７７】
動きベクトル・データを信号伝達すべき動きベクトルが少なくとも１つ存在する場合（判断３５２５からの「はい」のパス）、符号化器は、その動きベクトルの動きベクトル・データを信号伝達する（３５３０）。例えば、符号化器は、セクションＩＸで説明する手法を用いて、動きベクトル・データをＢＬＫＭＶＤＡＴＡ、ＴＯＰＭＶＤＡＴＡ、またはＢＯＴＭＶＤＡＴＡ要素として符号化する。あるいは、符号化器は、別の信号伝達手法を用いる。
【０２７８】
符号化器は、動きベクトル・データの符号化を、動きベクトル・データを信号伝達すべき動きベクトルがなくなるまで（判断３５２５からの「いいえ」のパス）繰り返す（３５２５、３５３０）。
【０２７９】
符号化器は、動きベクトル・ブロック・パターンを符号化するために複数の符号テーブルから符号テーブルを選択することが可能である（図３５Ａには示していない）。例えば、符号化器は、インターレースＰフィールドまたはＰフレームについて符号テーブルを選択し、その符号テーブルを用いて、ピクチャ内のマクロブロックの動きベクトル・ブロック・パターンを符号化する。あるいは、符号化器は、符号テーブルを、より頻繁に、またはより少ない頻度で、または不定期に選択したり、符号テーブル選択を完全にスキップ（すなわち、常に同じ符号テーブルを使用）したりする。または、符号化器が、コンテキスト情報から符号テーブルを選択することが可能である（これにより、符号テーブル選択の信号伝達が不要になる）。符号テーブルは、図４７Ｊおよび図４７Ｋに示すテーブル、他のテーブル、および／または追加のテーブルであることが可能である。符号化器は、例えば、選択された符号テーブルを示すＦＬＣ、選択された符号テーブルを示すＶＬＣ、または別の信号伝達メカニズムを用いて、選択された符号テーブルをビットストリーム内で信号伝達する。
【０２８０】
あるいは、符号化器は、別の手法により、動きベクトル・ブロック・パターンを用いてマクロブロックの動きベクトル・データを符号化する。簡略化のために、図３５Ａでは、手法（３５００）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態様については、セクションＸＩＩで詳述する。
【０２８１】
Ｃ．復号手法
図２１の復号器（２１００）のような復号器が、動きベクトル・ブロック・パターンを用いて、インターレースＰフィールドまたはインターレースＰフレームのマクロブロックの動きベクトル・データを受け取り、復号する。例えば、この復号器は、図３５Ｂに示す手法（３５５０）を実行する。
【０２８２】
複数の動きベクトルを有する所与のマクロブロックに対して、復号器は、そのマクロブロックの動きベクトル・ブロック・パターンを受け取り、復号する（３５６０）。例えば、復号器は、前のセクションで説明した、４つの動きベクトル・ブロック・パターン、２つの動きベクトル・ブロック・パターン、または他の動きベクトル・ブロック・パターンを受け取り、復号する。通常、復号器は、動きベクトル・ブロック・パターンのＶＬＣを受け取り、例えば、図４７Ｊおよび図４７Ｋに示すような符号テーブルを用いて復号する。あるいは、復号器は、別の信号伝達メカニズムと連係して、動きベクトル・ブロック・パターンを受け取り、復号する。
【０２８３】
動きベクトル・データが信号伝達されている動きベクトルが少なくとも１つ存在する場合（判断３５６５からの「はい」のパス）、復号器は、その動きベクトルの動きベクトル・データを受け取り、復号する（３５７０）。例えば、復号器は、セクションＩＸで説明する手法を用いてＢＬＫＭＶＤＡＴＡ、ＴＯＰＭＶＤＡＴＡ、またはＢＯＴＭＶＤＡＴＡ要素として符号化された動きベクトル・データを受け取り、復号する。あるいは、復号器は、別の復号手法を用いる。
【０２８４】
復号器は、動きベクトル・データの受け取りおよび復号を、動きベクトル・データが信号伝達されるべき動きベクトルがなくなるまで（判断３５６５からの「いいえ」のパス）繰り返す（３５６５、３５７０）。
【０２８５】
復号器は、動きベクトル・ブロック・パターンを復号するために複数の符号テーブルから符号テーブルを選択することが可能である（図３５Ｂには示していない）。例えば、テーブル選択オプションおよびテーブル選択信号伝達オプションは、前のセクションで符号化器について説明した内容を逆の形で反映した処理を実行する。
【０２８６】
あるいは、復号器は、別の手法により、動きベクトル・ブロック・パターンを用いてマクロブロックの動きベクトル・データを復号する。簡略化のために、図３５Ｂでは、手法（３５５０）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０２８７】
ＩＸ．インターレースＰフィールドの動きベクトル差分
一部の実施形態では、単一の、現在のインターレースＰフィールドの動き補償予測を行う際に、既に符号化／復号されている２つのフィールドを参照フィールドとして用いる（例については、セクションＩＶ、ＶＩ、およびＶＩＩを参照されたい）。Ｐフィールドの動きベクトルについて信号伝達される情報は、（１）２つのフィールドのどれが動きベクトルの参照を与えるか、および（２）動きベクトル値、を指し示す。通常、動きベクトル値は、動きベクトル・プレディクタに対する差分として信号伝達される。可能な２つの参照フィールドからの選択は、その動きベクトルに関する１つのビットを追加して信号伝達されることが可能であるが、その信号伝達方式は、多くの場合、非効率的である。通常、２つの参照フィールドは、所与の動きベクトルに対して同程度に可能性があるわけではなく、動きベクトルに関する選択は、他の（例えば、隣接する）動きベクトルに関する選択と無関係ではない。したがって、実際には、選択ごとに１つのビットを用いる参照フィールド選択の信号伝達は、効率的でないのが普通である。
【０２８８】
そこで、一部の実施形態では、符号化器が、動きベクトル差分情報と参照フィールド選択情報とを統合的に符号化する。復号器は、統合的に符号化された情報について、対応する復号を実行する。
【０２８９】
Ａ．理論および実験結果
参照フィールドが２つであるインターレースＰフィールドの場合、２つの参照フィールドは、そのＰフィールドに対して以下の空間的および時間的関係を有する。時間的順序において最も近い参照フィールドの極性は、現在のＰフィールドの極性の反対である。例えば、現在のＰフィールドが（インターレース・フレームの偶数ラインで構成される）偶数フィールドの場合は、時間的順序における最も近い参照フィールドが奇数フィールドであり、もう一方の参照フィールド（時間的順序における遠いほうのフィールド）が偶数フィールドである。
【０２９０】
符号化器および復号器は、因果関係を示す情報（causal information）を用いて現在の動きベクトルの参照フィールド選択を予測する。例えば、既に符号化されている隣接の動きベクトルからの参照フィールド選択情報が、現在の動きベクトルに用いられる参照フィールドの予測に用いられる。そして、予測した参照フィールドが用いられているかどうかは、バイナリ値によって示される。一方の値は、現在の動きベクトルの実際の参照フィールドが、予測された参照フィールドであることを示し、もう一方の値は、現在の動きベクトルの実際の参照フィールドが、他の参照フィールドであることを示す。一部の実装形態では、参照フィールド予測は、現在の動きベクトルに対する、既に用いられた参照フィールドおよび予想される参照フィールドの極性の観点から表現される（例えば、優勢極性と非優勢極性として。セクションＶＩを参照）。ほとんどのケースでは、そのような予測を行うと、バイナリ値の参照フィールド選択子の確率分布が一定になり、予測された参照フィールドに偏る。実験では、予測された参照フィールドは、７０％前後の動きベクトルに用いられ、３０％前後の動きベクトルには他の参照フィールドが用いられる。
【０２９１】
そのような確率分布の参照フィールド選択情報を信号伝達するために１つのビットを伝送することは、効率的ではない。より効率的な方法は、参照フィールド選択情報を差分動きベクトル情報と統合的に符号化することである。
【０２９２】
Ｂ．信号伝達メカニズムの例
動きベクトル差分情報と参照フィールド選択情報とを統合的に符号化および復号する信号伝達メカニズムの様々な例を示す。代替として、符号化器および復号器は、別のメカニズムと連係してそれらの情報を統合的に符号化および復号する。
【０２９３】
図３６の擬似コードは、一般化された信号伝達メカニズムによる、動きベクトル差分情報と参照フィールド選択情報との統合的な符号化を示す。この擬似コードでは、変数ＤＭＶＸおよびＤＭＶＹが、それぞれ、差分動きベクトルの水平方向成分および垂直方向成分である。変数ＡＸおよびＡＹは差分成分の絶対値であり、変数ＳＸおよびＳＹは差分成分の符号である。水平方向の動きベクトルの範囲は−ＲＸ〜ＲＸ＋１であり、垂直方向の動きベクトルの範囲は−ＲＹ〜ＲＹ＋１である。ＲＸおよびＲＹは２のべき乗であり、それぞれの指数がＭＸおよびＭＹである。変数ＥＳＣＸおよびＥＳＣＹ（それぞれ、指数をＫＸおよびＫＹとする２のべき乗）は、これを超えるとエスケープ符号化が用いられるしきい値を示す。変数Ｒは、参照フィールド選択のバイナリ値である。
【０２９４】
エスケープ条件がトリガされると（ＡＸ＞ＥＳＣＸまたはＡＹ＞ＥＳＣＹ）、符号化器が、エスケープ・モード信号およびＲを統合的に表すＶＬＣを送る。次に符号化器は、ＤＭＶＸおよびＤＭＶＹを、長さがそれぞれＭＸ＋１およびＭＹ＋１である固定長符号として送る。したがって、ＶＬＣテーブルの２つの要素が使用され、（１）ＤＭＶＸおよびＤＭＶＹが（ＭＸ＋ＭＹ＋２）ビットを用いて一括して符号化されていることと、（２）関連付けられたＲ値、を信号伝達する。言い換えると、この２つの要素は、Ｒ＝０およびＲ＝１に対応するエスケープ符号である。
【０２９５】
他のイベントについては、変数ＮＸおよびＮＹは、それぞれ、ＡＸおよびＡＹの様々な値の信号伝達に用いられるビット数を示す。ＮＸ＝０，１，２，．．．ＫＸ−１であれば、ＡＸは２NX≦ＡＸ＜２NX+1の区間にあり、ＮＸ＝−１であればＡＸ＝０である。ＮＹ＝０，１，２，．．．ＫＹ−１であれば、ＡＹは２NY≦ＡＹ＜２NY+1の区間にあり、ＮＹ＝−１であればＡＹ＝０である。
【０２９６】
サイズ情報ＮＸおよびＮＹと、フィールド参照情報Ｒとを符号化するために用いられるＶＬＣテーブルは、（ＫＸ＋１）＊（ＫＹ＋１）＊２＋１個の要素のテーブルであり、各要素は（符号ワード、符号サイズ）のペアである。このテーブルの要素のうちの、２つを除くすべてを用いて、ＮＸ、ＮＹ、およびＲの値が統合的に信号伝達される。除いた２つの要素は、エスケープ符号である。
【０２９７】
ＮＸおよびＮＹを用いて信号伝達されるイベントについては、符号化器は、ＮＸ、ＮＹ、およびＲの値の組合せを示すＶＬＣを送る。次に符号化器は、ＡＸをＮＸビットで送り、ＳＸを１ビットで送り、ＡＹをＮＹビットで送り、ＳＹを１ビットで送る。ＮＸが０または−１であれば、ＡＸを送る必要がない。これは、ＮＹとＡＹについても当てはまる。それらの場合は、ＡＸまたはＡＹの値がＮＸまたはＮＹから直接導出されることが可能だからである。
【０２９８】
ＡＸ＝０、ＡＹ＝０、およびＲ＝０である場合のイベントは、別のメカニズム（例えば、スキップ・マクロブロック・メカニズムまたは動きベクトル・ブロック・パターン（セクションＶＩＩＩを参照））によって信号伝達される。［０，０，０］要素は、図３６の擬似コードのためのＶＬＣテーブルに存在しないか、この擬似コードにおいて対応されていない。
【０２９９】
対応する復号器は、図３６に示した符号化を逆の形で反映した処理を実行する統合的復号を実行する。例えば、復号器は、ビットを送る代わりに受け取り、可変長符号化の代わりに可変長復号を実行する。
【０３００】
図５０の擬似コードは、一つの組み合わされた実装形態における信号伝達メカニズムに従って統合的に符号化された動きベクトル差分情報および参照フィールド選択情報の復号を示す。図５９の擬似コードは、別の組み合わされた実装形態における信号伝達メカニズムに従って統合的に符号化された動きベクトル差分情報および参照フィールド選択情報の復号を示す。図５０および図５９の擬似コードについては、セクションＸＩＩで詳述する。特に、この擬似コードは、垂直方向差分値、または垂直方向差分値および水平方向差分値のサイズと共に、予測選択子の統合的な符号化および復号を示す。
【０３０１】
対応する符号化器は、図５０または図５９に示した復号を逆の形で反映した処理を実行する統合的符号化を実行する。例えば、符号化器は、ビットを受け取る代わりに送り、可変長復号の代わりに可変長符号化を実行する。
【０３０２】
Ｃ．符号化手法
図２０の符号化器（２０００）のような符号化器が、参照フィールド予測選択子情報と差分動きベクトル情報とを統合的に符号化する。例えば、この符号化器は、図３７Ａに示す手法（３７００）を実行して、情報を統合的に符号化する。一般に、符号化器は、２つの参照フィールドにおいて何らかの形の動き推定を実行して、動きベクトルおよび参照フィールドを取得する。その後、動きベクトルを手法（３７００）に従って符号化し、この時点で、選択子情報を、例えば、垂直方向の動きベクトル差分と統合的に符号化することによって、可能な２つの参照フィールドのうちの１つを動きベクトルに関連付ける。
【０３０３】
符号化器は、動きベクトルの動きベクトル・プレディクタを決定する（３７１０）。例えば、符号化器は、セクションＶＩＩで説明したように、動きベクトル・プレディクタを決定する。あるいは、符号化器は、別のメカニズムを用いて動きベクトル・プレディクタを決定する。
【０３０４】
符号化器は、動きベクトルの、動きベクトル・プレディクタに対する動きベクトル差分を決定する（３７２０）。通常、この差分は、動きベクトルと動きベクトル・プレディクタとの間の成分ごとの差分である。
【０３０５】
符号化器はさらに、参照フィールド予測選択子情報を決定する（３７３０）。例えば、符号化器は、動きベクトルの優勢的および非優勢的な極性（および、それゆえの優勢的な参照フィールド、動きベクトル・プレディクタの優勢的な極性、その他。セクションＶＩを参照）を決定する。この場合、選択子は、その優勢極性が用いられているかどうかを示す。あるいは、符号化器は、別の手法を用いて、参照フィールド予測選択子情報を決定する。例えば、符号化器は、別のタイプの参照フィールド予測を用いる。
【０３０６】
次に符号化器は、動きベクトルの動きベクトル差分情報および参照フィールド予測選択子情報を統合的に符号化する（３７４０）。例えば、符号化器は、前のセクションで説明したメカニズムのいずれかを用いて情報を符号化する。あるいは、符号化器は、別のメカニズムを用いる。
【０３０７】
簡略化のために、図３７Ａでは、手法（３７００）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０３０８】
Ｄ．復号手法
図２１の復号器（２１００）のような復号器が、統合的に符号化された参照フィールド予測選択子情報と差分動きベクトル情報とを復号する。例えば、この復号器は、図３７Ｂに示す手法（３７５０）を実行して、そのような統合的に符号化された情報を復号する。
【０３０９】
復号器は、動きベクトルの、統合的に符号化された動きベクトル差分情報および参照フィールド予測選択子情報を復号する（３７６０）。例えば、復号器は、セクションＩＸ．Ｂで説明したメカニズムのいずれかを用いて信号伝達された情報を復号する。あるいは、復号器は、別のメカニズムを用いて信号伝達された情報を復号する。
【０３１０】
次に復号器は、動きベクトルの動きベクトル・プレディクタを決定する（３７７０）。例えば、復号器は、動きベクトルの優勢的および非優勢的な極性を決定し（セクションＶＩを参照）、その選択子情報を適用し、選択された極性についての、セクションＶＩＩで説明された動きベクトル・プレディクタを決定する。あるいは、復号器は、別のメカニズムを用いて、動きベクトル・プレディクタを決定する。例えば、復号器は、別のタイプの参照フィールド予測を用いる。
【０３１１】
最後に復号器は、動きベクトル差分と動きベクトル・プレディクタとを結合することによって動きベクトルを再構成する（３７８０）。
【０３１２】
簡略化のために、図３７Ｂでは、手法（３７５０）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０３１３】
Ｘ．インターレースＰフィールドのクロマ動きベクトルの導出
一部の実施形態では、符号化器および復号器は、インターレースＰフィールドのマクロブロックについて信号伝達されるルミナンス動きベクトルからクロマ動きベクトルを導出する。クロマ動きベクトルは、ビットストリーム内では明示的に信号伝達されない。クロマ動きベクトルは、明示的に信号伝達されずに、マクロブロックのルミナンス動きベクトルから決定される。符号化器および復号器は、プログレッシブＰフレームまたはインターレースＰフレームに適合されたクロマ動きベクトル導出を行うことが可能であるが、これは一般に、インターレースＰフィールドに関しては性能が不十分である。そこで、符号化器および復号器は、インターレースＰフィールドの参照フィールド構成に適合されたクロマ動きベクトル導出を行う。
【０３１４】
クロマ動きベクトル導出には２つのフェーズがある。（１）選択と（２）サブサンプリングおよびクロマ丸めである。これらのフェーズのうち、特に選択フェーズが、インターレースＰフィールドのクロマ動きベクトル導出に適合されている。選択フェーズの結果は、初期クロマ動きベクトルである。この結果は、マクロブロックのルミナンス動きベクトルの数（および潜在的に極性）に依存する。マクロブロックにルミナンス動きベクトルが用いられていない場合（イントラマクロブロックの場合）は、クロマ動きベクトルが導出されない。マクロブロックに１つのルミナンス動きベクトルが用いられている場合（１ＭＶマクロブロックの場合）は、その１つのルミナンス動きベクトルが、第２および第３のフェーズで用いられるために選択される。マクロブロックに４つのルミナンス動きベクトルが用いられている場合（４ＭＶマクロブロックの場合）は、４つのルミナンス度動きベクトルの中でより多くある極性を優先する論理を用いて、初期クロマ動きベクトルが選択される。
【０３１５】
Ａ．クロマサブサンプリングと動きベクトル表現
インターレースＰフィールドのマクロブロックのクロマ動きベクトル導出は、マクロブロックに用いられるクロマ・サブサンプリングのタイプと、さらに動きベクトル表現とに依存する。
【０３１６】
一般的なクロマ・サブサンプリングの形式として、４：２：０および４：１：１がある。図３８は、ＹＵＶ  ４：２：０マクロブロックのサンプリング・グリッドを示す。これによってクロマ・サンプルが、ルミナンス・サンプルに対して規則的な４：１パターンでサブサンプリングされる。図３８は、（図２２で表されるような）４つの８×８ルミナンス・ブロック、１つの８×８クロマ「Ｕ」ブロック、および１つの８×８クロマ「Ｖ」ブロックを有する１６×１６マクロブロックの場合の、ルミナンス・サンプルとクロマサンプルとの空間的関係を示している。全体で、クロマ・グリッドの解像度は、ｘ方向とｙ方向の両方とも、ルミナンス・グリッドの解像度の半分である。これは、クロマ動きベクトル導出におけるダウンサンプリングの基本原理である。ルミナンス・グリッドでの動きベクトル距離を、クロマ・グリッドにおいて対応する距離までスケーリングするために、動きベクトル値を係数２で割る。本明細書で説明する選択フェーズ手法は、ＹＵＶ  ４：２：０マクロブロックまたは別のクロマ・サブサンプリング形式のマクロブロックに適用可能である。
【０３１７】
インターレースＰフィールドのルミナンス動きベクトルおよびクロマ動きベクトルの表現は、動きベクトルおよび動き補償の精度に部分的に依存する。標準的な動きベクトル精度は１／２画素および１／４画素であり、これはそれぞれ、動き補償における１／２画素および１／４画素の補間を使用して動作する。
【０３１８】
一部の実施形態では、インターレースＰフィールドの動きベクトルは、上（top）または下（bottom）の（同一または反対の極性）の参照フィールドを参照することが可能である。動きベクトル値で示される垂直方向変位は、現在のＰフィールドおよび参照フィールドの極性に依存する。動きベクトルの単位は、一般に、フィールド・ピクチャ単位で表される。例えば、動きベクトルの垂直方向成分が（１／４画素単位で）＋６であれば、これは一般に、（必要に応じて、現在のＰフィールドと参照フィールドとで極性が異なる場合の調整を行う前の）垂直方向変位が１と１／２フィールド・ピクチャ・ライン（走査線）であることを示す。
【０３１９】
様々な垂直方向動きベクトル成分値と、フィールド極性の組合せとについて、図３９は、第１の規約による、現在のフィールドと参照フィールドにおける対応する空間位置を示す。フィールド極性の各組合せは列のペアであり、一方（左の列）が現在のフィールドのライン（Ｎ＝０，１，２．．．と番号付けされたライン）の画素に対応し、もう一方（右の列）が参照フィールドのライン（これもＮ＝０，１，２．．．と番号付けされたライン）の画素に対応する。○印は、整数の画素位置にあるサンプルを表し、×印は、端数の画素位置にある補間されたサンプルを表す。この規約では、垂直方向動きベクトル成分値０は、参照フィールド内の整数の画素位置（すなわち、実際のライン上のサンプル）を参照する。現在のフィールドと参照フィールドの極性が同じ場合、現在のフィールドのラインＮの垂直方向成分値０は、参照フィールドのラインＮを参照する。これは、フレーム内では同じ実オフセットのところにある場所である。現在のフィールドと参照フィールドの極性が反対の場合も、現在のフィールドのラインＮの垂直方向成分値０は、参照フィールドのラインＮを参照するが、参照される場所は、奇数ラインと偶数ラインのインターレースのため、フレーム内では１／２画素の実オフセットのところにある場所である。
【０３２０】
図４８は、第２の規約による、現在のフィールドと参照フィールドにおける対応する空間位置を示す。この規約では、垂直方向動きベクトル成分値０は、インターレース・フレーム内の同じ実オフセットのところにあるサンプルを参照する。参照されるサンプルは、同じ極性の参照フィールドの整数の画素位置、または反対の極性の参照フィールドの１／２画素位置にある。
【０３２１】
あるいは、インターレースＰフィールドの動きベクトルは、極性の垂直方向変位を扱う別の表現を用いるか、かつ／または、極性の垂直方向変位を扱う別の規約に従う。
【０３２２】
Ｂ．選択フェーズの例
一部の実施形態では、クロマ動きベクトル導出の選択フェーズは、１つまたは２つの参照フィールドを有するインターレースＰフィールドの動き補償に用いられる参照フィールド・パターンに適合されている。例えば、マクロブロックの選択フェーズの結果は、マクロブロックのルミナンス動きベクトルの数および極性に依存する。
【０３２３】
最も単純なケースは、マクロブロック全体がイントラ符号化されている場合である。このケースでは、クロマ動きベクトルは存在せず、クロマ動きベクトル導出の第２および第３のフェーズがスキップされる。マクロブロックのクロマ・ブロックは、イントラ符号化／復号され、動き補償は行われない。
【０３２４】
次いで最も単純なケースは、マクロブロックが４つのルミナンス・ブロックのすべてに対して１つのルミナンス動きベクトルを有する場合である。現在のＰフィールドが参照フィールドを１つ有するか、２つ有するかにかかわらず、１つのルミナンス動きベクトルが単に丸めおよびサブサンプリングに向けて送られるだけであるので、選択操作それ自体がない。
【０３２５】
マクロブロックが４つまでのルミナンス動きベクトルを有する場合、選択フェーズはより複雑になる。全体として、選択フェーズでは、マクロブロックのルミナンス動きベクトルの中の優勢極性が優先される。Ｐフィールドが参照フィールドを１つしか有しない場合は、マクロブロックのルミナンス動きベクトルのすべてに対して極性が同一である。これに対し、Ｐフィールドが参照フィールドを２つ有する場合は、マクロブロックの、異なるルミナンス動きベクトルが異なる参照フィールドをポイントすることが可能である。例えば、現在のＰフィールドの極性が奇数であれば、マクロブロックは、（偶数極性参照フィールドを参照する）極性が反対である２つのルミナンス動きベクトルと、（奇数極性参照フィールドを参照する）極性が同じである２つのルミナンス動きベクトルとを有することが可能である。符号化器または復号器は、マクロブロックのルミナンス動きベクトルの優勢極性を決定し、この優勢極性のルミナンス動きベクトルから初期クロマ動きベクトルを決定する。
【０３２６】
一部の実装形態では、４ＭＶマクロブロックは、０〜４つの動きベクトルを有する。そのような４ＭＶマクロブロックのルミナンス・ブロックは、イントラ符号化されているか、関連付けられた、同じ極性のルミナンス動きベクトルを有するか、または関連付けられた、同じ極性のルミナンス動きベクトルを有する。他の実装形態では、４ＭＶマクロブロックは、必ず４つのルミナンス動きベクトルを有する。（例えば、（０，０）の差分を有するなどの理由で）それらのいくつかが信号伝達されないとしても、必ず４つ有する。そのような４ＭＶマクロブロックのルミナンス・ブロックは、反対の極性の動きベクトルを有するか、同じ極性の動きベクトルを有する。選択フェーズの論理は、以下の様々な実装形態に応じて多少異なる。
【０３２７】
１．０〜４つのルミナンス動きベクトルを有する４ＭＶマクロブロック
図４０の擬似コードは、選択フェーズの論理の一例である。これは、０〜４つのルミナンス動きベクトルを有する４ＭＶマクロブロックに適用される。ルミナンス動きベクトルのうち、同じ極性の参照フィールドを参照するルミナンス動きベクトルの数が、反対の極性の参照フィールドを参照するルミナンス動きベクトルの数より多い場合、符号化器／復号器は、同じ極性の参照フィールドを参照するルミナンス動きベクトルから初期クロマ動きベクトルを導出する。そうでない場合、符号化器／復号器は、反対の極性の参照フィールドを参照するルミナンス動きベクトルから初期クロマ動きベクトルを導出する。
【０３２８】
４つのルミナンス動きベクトルが優勢極性（例えば、すべての奇数参照フィールドまたはすべての偶数参照フィールド）を有する場合、符号化器／復号器は、その４つのルミナンス動きベクトルのメジアンを算出する。（例えば、１つのルミナンス・ブロックがイントラであるか、非優勢極性の動きベクトルを有するなどの理由で）３つのルミナンス動きベクトルだけが優勢極性を有するかする場合、符号化器／復号器は、これら３つのルミナンス動きベクトルのメジアンを算出する。２つのルミナンス動きベクトルが優勢極性を有する場合、符号化器／復号器は、それら２つのルミナンス動きベクトルの平均を算出する（同じ極性の数と反対の極性の数が同じである場合は、（現在のＰフィールドと）同じ極性が優先される）。最後に、（例えば、３つのルミナンス・ブロックがイントラであるなどの理由で）優勢極性のルミナンス動きベクトルが１つだけ存在する場合は、その１つのルミナンス動きベクトルが選択フェーズの結果であるとされる。すべてのルミナンス・ブロックがイントラである場合は、そのマクロブロックがイントラであり、図４０の擬似コードは適用されない。
【０３２９】
２．４つのルミナンス動きベクトルを有する４ＭＶマクロブロック
図５５Ａおよび図５５Ｂの擬似コードは、選択フェーズの論理の別の例である。これは、（例えば、イントラ符号化されたルミナンス・ブロックが許可されないなどの理由で）常に４つのルミナンス動きベクトルを有する４ＭＶマクロブロックに適用される。図５５Ａは、参照フィールドが１つであるインターレースＰフィールドにおけるそのような４ＭＶマクロブロックのクロマ動きベクトル導出を示し、図５５Ｂは、参照フィールドが２つであるインターレースＰフィールドにおけるそのような４ＭＶマクロブロックのクロマ動きベクトル導出を示す。
【０３３０】
図５５Ｂに関しては、符号化器／復号器は、４ＭＶマクロブロックの４つのルミナンス動きベクトルの中でどの極性が優勢であるか（例えば、奇数または偶数）を決定する。４つのルミナンス動きベクトルのすべてが同じフィールドから（例えば、すべてが奇数、またはすべてが偶数）であれば、その４つのルミナンス動きベクトルのメジアンが算出される。４つのうちの３つが同じフィールドからであれば、その３つのルミナンス動きベクトルのメジアンが算出される。最後に、各極性のルミナンス動きベクトルが２つずつ存在する場合は、現在のＰフィールドと同じ極性を有する２つのルミナンス動きベクトルが優先され、それらの平均が算出される（優勢極性を有するルミナンス動きベクトルが１つだけ存在するケースと、１つも存在しないケースは、４ＭＶマクロブロックが常に４つのルミナンス動きベクトルを有する場合にはありえない）。
【０３３１】
あるいは、符号化器または復号器は、別の選択論理を用いて、インターレースＰフィールドのマクロブロックの複数のルミナンス動きベクトルからクロマ動きベクトルを導出する。または、符号化器または復号器は、別のタイプのマクロブロック（例えば、異なる数のルミナンス動きベクトルを有するマクロブロック、および／またはインターレースＰフィールド以外のタイプのピクチャにあるマクロブロック）のクロマ動きベクトル導出におけるルミナンス動きベクトル極性を考慮する。
【０３３２】
Ｃ．サブサンプリング／丸めフェーズ
クロマ動きベクトル導出の第２のフェーズとして、符号化器または復号器は、一般に、丸め論理を適用して、初期クロマ動きベクトルから特定の画素位置を除去する（例えば、３／４画素位置を切り上げて、そのようなクロマ動きベクトルがダウンサンプリング後に１／４画素（単位）の変位を示さないようにする）。丸めを用いる度合いを調節して、予測の質と補間の複雑さとをトレードオフすることが可能である。例えば、符号化器または復号器は、より積極的な丸めを行うことにより、得られるクロマ動きベクトルにおける１／４画素のクロマ変位をすべて除去して、整数画素および１／２画素の変位だけが許可されるようにする。これによって、クロマ・ブロックの動き補償での補間が簡略化される。
【０３３３】
第２のフェーズでは、符号化器および復号器はさらに、初期クロマ動きベクトルをダウンサンプリングして、クロマ解像度にふさわしい尺度のクロマ動きベクトルを得る。例えば、クロマ解像度が水平方向および垂直方向の両方でルミナンス解像度の１／２である場合は、水平方向および垂直方向の動きベクトル成分が係数２でダウンサンプリングされる。
【０３３４】
あるいは、符号化器または復号器は、丸め、サブサンプリング、プルバック、または他のクロマ動きベクトル調節に関して、他のメカニズムおよび／または追加のメカニズムを適用する。
【０３３５】
Ｄ．導出手法
図２０の符号化器（２０００）のような符号化器が、インターレースＰフィールドのマクロブロックのクロマ動きベクトルを導出する。または、図２１の復号器（２１００）のような復号器が、インターレースＰフィールドのマクロブロックのクロマ動きベクトルを導出する。例えば、符号化器／復号器は、図４１に示す手法（４１００）を実行して、クロマ動きベクトルを導出する。
【０３３６】
符号化器／復号器は、現在のマクロブロックがイントラ・マクロブロックかどうかを決定する（４１１０）。イントラ・マクロブロックであれば、符号化器／復号器は、クロマ動きベクトル導出をスキップし、動き補償のかわりに、そのマクロブロックに対してイントラ符号化／復号を行う。
【０３３７】
マクロブロックがイントラ・マクロブロックでない場合は、符号化器／復号器は、マクロブロックが１ＭＶマクロブロックかどうかを決定する（４１２０）。１ＭＶマクロブロックであれば、符号化器／復号器は、マクロブロックの単一のルミナンス動きベクトルを、手法（４１００）の後段の調節ステージ（４１５０）に渡す初期クロマ動きベクトルとして用いる。
【０３３８】
マクロブロックが１ＭＶマクロブロックでない場合は、符号化器／復号器は、マクロブロックのルミナンス動きベクトルの中の優勢極性を決定する（４１３０）。例えば、符号化器／復号器は、図４０または図５５Ａおよび図５５Ｂに示すように、マクロブロックの１つまたは複数のルミナンス動きベクトルの中の一般的な極性（prevailing polarity）を決定する。あるいは、符号化器／復号器は、他の決定論理および／または追加の決定論理を適用して一般的な極性を決定する。マクロブロックを含むＰフィールドが参照フィールドを１つしか有しない場合、ルミナンス動きベクトルの中の優勢極性は、単純に、その１つの参照フィールドの極性である。
【０３３９】
次に符号化器／復号器は、優勢極性を有する、マクロブロックのそれらのルミナンス動きベクトルから初期クロマ動きベクトルを決定する（４１４０）。例えば、符号化器／復号器は、図４０または図５５Ａおよび図５５Ｂに示すような初期クロマ動きベクトルを決定する。あるいは、符号化器／復号器は、他の論理および／または追加の論理を用いて、初期クロマ動きベクトルを、優勢極性の動きベクトルのメジアン、平均、または他の組合せとして決定する。
【０３４０】
最後に、符号化器／復号器は、先行段のいずれかによって生成された初期クロマ動きベクトルを調節する（４１５０）。例えば、符号化器／復号器は、前述の丸めおよびサブサンプリングを行う。あるいは、符号化器／復号器は、他の調節および／または追加の調節を行う。
【０３４１】
あるいは、符号化器／復号器は、様々なマクロブロックのタイプおよび極性条件を別の順序でチェックする。または、符号化器／復号器は、インターレースＰフィールドまたは他のタイプのピクチャにある他のタイプおよび／または追加のタイプのマクロブロックのクロマ動きベクトルを導出する。
【０３４２】
簡略化のために、図４１では、手法（４１００）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０３４３】
ＸＩ．インターレースＰフィールドの輝度補償
ビデオコンテンツの作成および編集では、フェード、モーフィング、およびブレンドが広く用いられている。これらの手法は、コンテンツの変わり目にまたがるビデオの視覚的展開を円滑化する。さらに、照明の変化によるフェードがビデオ・シーケンスに自然に含まれる場合がある。フェード、モーフィング、ブレンドなどの影響を受ける予測ピクチャの場合、基準ピクチャに比べてルミナンスが全体的に変化すると、従来の動き推定および動き補償の有効性が低下する。結果として、動き補償予測が悪化して、予測ピクチャを表現するために必要なビット数が多くなる。この問題は、１つまたは複数の参照フィールドを有するインターレースＰフィールドの場合には、さらに複雑である。
【０３４４】
一部の実施形態では、符号化器および復号器が、インターレースＰフィールドの参照フィールドに対してフェード補償（輝度補償とも呼ばれる）を行う。符号化器は、対応するフェード推定を行う。フェード推定とフェード補償、およびフェード補償パラメータの信号伝達メカニズムは、インターレースＰフィールドの参照フィールド構成に適合される。例えば、１つまたは２つの参照フィールドを有するインターレースＰフィールドの場合は、フェード補償を実行するかどうかの決定を、参照フィールドごとに別々に行う。フェード補償を用いる各参照フィールドは、それぞれのフェード補償パラメータを有することが可能である。フェード補償の決定およびパラメータの信号伝達メカニズムは、この情報を効率的に表現する。結果として、インターレース・ビデオの画質が向上し、かつ／またはビットレートが低減される。
【０３４５】
Ａ．参照フィールドに対するフェード推定および補償
フェード補償では、フェード、ブレンド、モーフィングなどに対する補償のために、１つまたは複数の参照フィールドを変化させる必要がある。一般に、フェード補償は、フェード（すなわち、黒へのフェード、または黒からのフェード）、ブレンド、モーフィング、または他の、画素値輝度（pixel value intensities）に影響を及ぼす自然光効果または合成光効果に対する何らかの補償を含む。例えば、全体的なルミナンス変化は、シーンの明るさおよび／またはコントラストの変化として表すことが可能である。一般に、変化は線形であるが、同じフレーム内で何らかの円滑な非線形マッピングを含むように変化を定義することも可能である。次に現在のＰフィールドが、調節された１つまたは複数の参照フィールドから、動き推定／補償によって予測される。
【０３４６】
ＹＵＶクロマ空間にある参照フィールドの場合、調節は、ルミナンス・チャネルおよびクロマ・チャネルにあるサンプルを調節することによって行われる。この調節は、ルミナンス値のスケーリングおよびシフトと、クロマ値のスケーリングおよびシフトとを含むことが可能である。あるいは、クロマ空間が別のクロマ空間（例えば、ＹＩＱまたはＲＧＢ）であり、かつ／または、補償において他の調節手法が用いられる。
【０３４７】
符号化器／復号器は、フェード推定／補償をフィールドごとに行う。あるいは、符号化器／復号器は、フェード推定／補償を、他の何らかの区切りごとに行う。したがって、フェード補償調節は、指定領域（フィールドでもフィールドの一部（例えば、個々のブロックまたはマクロブロック、あるいはマクロブロックのひとかたまり）でもよい）に影響を及ぼし、フェード補償パラメータは、指定領域が対象である。または、フェード補償パラメータは、フィールド全体が対象であるが、フィールド内の領域に、選択的に、かつ、必要に応じて適用される。
【０３４８】
Ｂ．インターレースＰフィールドの参照フィールド構成
一部の実施形態では、インターレースＰフィールドは、動き補償のための参照フィールドを１つまたは２つ有する（例についてはセクションＩＶを参照されたい）。図２４Ａ〜図２４Ｆは、インターレースＰフィールドの動き補償予測に使用可能な参照フィールドの場所を示す。符号化器および復号器は、別の場所またはタイミング、および／または追加の場所またはタイミングにある参照フィールドを、Ｐフィールドの動き補償予測に用いることが可能である。例えば、現在のＰフィールドと同じフレーム内にある参照フィールドが可能である。または、フレームのトップ・フィールドまたはボトム・フィールドを先に符号化／復号することが可能である。
【０３４９】
動き補償のための参照フィールドを１つまたは２つ有するインターレースＰフィールドの場合、Ｐフィールドは、参照フィールドを１つだけ有するか、または、Ｐフィールドは、２つの参照フィールドを有し、異なる動きベクトルに対して、または他の何らかの基準で、２つの参照フィールドを切り替えることが可能である。
【０３５０】
あるいは、Ｐフィールドは、さらに多くの参照フィールドおよび／または別の場所にある参照フィールドを有する。
【０３５１】
Ｃ．符号化器と復号器
図４２は、１つまたは２つの参照フィールドを有するインターレースＰフィールドの輝度推定および輝度補償を行う例示的符号化器フレームワーク（４２００）を示す。このフレームワーク（４２００）では、符号化器は、フェード推定によって取得したパラメータを用いて、参照フィールドを条件付きで再マッピングする。符号化器は、フィールド全体である程度の確実性および一貫性があるフェードを検出した場合に、再マッピング（フェード補償）を行う。そうでない場合、フェード補償は、一致演算（すなわち、出力＝入力）である。
【０３５２】
図４２では、符号化器は、フェード検出モジュール（４２３０）を用いて現在のＰフィールド（４２１０）と第１の参照フィールド（４２２０）とを比較して、それらのフィールド（４２２０、４２１０）間でフェードが発生しているかどうかを決定する。符号化器は、これとは別に、フェード検出モジュール（４２３０）を用いて現在のＰフィールド（４２１０）と第２の参照フィールド（４２２５）とを比較して、それらのフィールド（４２２５、４２１０）間でフェードが発生しているかどうかを決定する。符号化器は、フェード検出結果に基づいて、１つまたは複数の「フェード・オン」信号または「フェード・オフ」信号（４２４０）を生成する。これらの信号は、フェード補償をとにかく行うかどうか、および、行う場合は、第１の参照フィールドに対してのみ行うか、第２の参照フィールドに対してのみ行うか、両方の参照フィールド（４２２０、４２２５）に対して行うかを示す。
【０３５３】
第１の参照フィールド（４２２０）についてフェード補償がオンの場合は、フェード推定モジュール（４２５０）が、第１の参照フィールド（４２２０）についてフェード・パラメータ（４２６０）を推定する（フェード推定の詳細については後述）。同様に、第２の参照フィールド（４２２５）についてフェード補償がオンの場合は、フェード推定モジュール（４２５０）が、別途、第２の参照フィールドについてフェード・パラメータ（４２６０）を推定する。
【０３５４】
フェード補償モジュール（４２７０、４２７５）は、フェード・パラメータ（４２６０）を用いて、参照フィールド（４２２０）の一方または両方を再マッピングする。図４２では２つのフェード補償モジュール（４２７０、４２７５）（参照フィールドごとに１つ）を示しているが、代替として、符号化器フレームワーク（４２００）は、参照フィールド（４２２０、４２２５）のいずれかに対して動作する単一のフェード補償モジュールを含む。
【０３５５】
他の符号化器モジュール（４２８０）（例えば、動き推定および補償、周波数変換、量子化などのモジュール）は、現在のＰフィールド（４２１０）を圧縮する。符号化器は、動きベクトル、残差、および符号化済みＰフィールド（４２１０）を表す他の情報（４２９０）を出力する。変換動きベクトル（translational motion vectors）による動き推定／補償は別として、フレームワーク（４２００）は、多種多様な動き補償ベースのビデオ・コーデックに適用可能である。
【０３５６】
図４３は、輝度補償を行う例示的復号器フレームワーク（４３００）を示す。この復号器は、復号されたＰフィールド（４３１０）を生成する。符号化されている、フェード補償されたＰフィールドを復号するために、復号器は、フェード補償モジュール（４３７０、４３７５）を用いて、既に復号されている１つまたは２つの参照フィールド（４３２０、４３２５）に対してフェード補償を行う。代替として、復号器フレームワーク（４３００）は、参照フィールド（４３２０、４３２５）のいずれかに対して動作する単一のフェード補償モジュールを含む。
【０３５７】
フェード補償が第１の参照フィールド（４３２０）およびＰフィールド（４３１０）に対して行われていることをフェード・オン／オフ信号（４３４０）が示している場合、復号器は、第１の参照フィールド（４３２０）に対してフェード補償を行う。同様に、フェード補償が第２の参照フィールド（４３２５）およびＰフィールド（４３１０）に対して行われていることをフェード・オン／オフ信号（４３４０）が示している場合、復号器は、第２の参照フィールド（４３２５）に対してフェード補償を行う。復号器は、第１および第２の参照フィールド（４３２０、４３２５）のフェード推定で取得したフェード・パラメータのそれぞれのセット（４３６０）を用いて（符号化器内で行われたものと同様の）フェード補償を行う。フェード補償がオフの場合、フェード補償は、一致演算（すなわち、出力＝入力）である。
【０３５８】
他の復号器モジュール（４３８０）（例えば、動き補償、逆周波数変換、逆量子化などのモジュール）は、動きベクトル、残差、および他の、符号化器から提供される情報（４３９０）を用いて、符号化されているＰフィールド（４３１０）を圧縮解除する。
【０３５９】
Ｄ．パラメータ化と補償
複数のパラメータが、Ｐフィールドと第１の参照フィールドとの間、および／またはＰフィールドと第２の参照フィールドとの間でのフェード、ブレンド、モーフィング、またはその他の変化を表す。これらのパラメータはフェード補償に適用される。
【０３６０】
ビデオ編集では、ルミナンス・チャネルおよびクロマ・チャネルに画素ごとの単純な線形変換を適用して合成フェードを実現することがある。同様に、２つのビデオ・シーケンスを、時間とともに組成を変化させながら線形加算することによって、クロス・フェードを実現することがある。したがって、一部の実施形態では、フェードやその他の輝度補償調節を画素ごとの線形変換としてパラメータ化し、クロス・フェードを線形加算としてパラメータ化する。
【０３６１】
Ｉ（ｎ）をＰフィールドｎとし、Ｉ（ｎ−１）を１つの参照フィールドと仮定する。動きが小さい場合、単純なフェードは、次式で示される１次関係によってモデル化される。この式による関係は、ビデオ・シーケンス内では可能な動きなので近似である。
【０３６２】
【数４】
2011101416.tif 000006
【０３６３】
ここで、フェード・パラメータＢ１およびＣ１は、それぞれ、参照フィールドの明るさおよびコントラストの変化に対応する。（パラメータＢ２およびＣ２は、それぞれ、他の参照フィールドの明るさおよびコントラストの変化に対応する）。非線形フェードが発生した場合は、一般に、この１次成分が変化の大部分を占める。
【０３６４】
画像シーケンスＵ（ｎ）から画像シーケンスＶ（ｎ）へのクロス・フェードは、次式に示される関係によってモデル化が可能である。この場合も、この式による関係は、シーケンス内では可能な動きなので近似である。
【０３６５】
【数５】
2011101416.tif 000007
【０３６６】
ここで、
【０３６７】
【数６】
2011101416.tif 000008
【０３６８】
はクロス・フェードの開始点を表し、
【０３６９】
【数７】
2011101416.tif 000009
【０３７０】
はクロス・フェードの終了点を表す。クロス・フェードが複数のフィールドにまたがる場合は、αが小さい。クロス・フェードの開始点では、ｎ番目のフィールドは、ｎ−１番目のフィールドを減衰させたもの（コントラスト＜１）に近い。終了点に向かっては、ｎ番目のフィールドは、ｎ−１番目のフィールドを増幅したもの（コントラスト＞１）である。
【０３７１】
符号化器は、参照フィールドを再マッピングすることによって輝度補償を実行する。符号化器は、参照フィールドを、画素ごとに、または他の何らかの区切りごとに再マッピングする。オリジナルの、再マッピングされていない参照フィールドは、基本的に廃棄される（ここで、実装によっては、再マッピングされていない参照フィールドも動き補償に用いる場合がある）。
【０３７２】
次の線形公式により、２つのパラメータＢ１およびＣ１に関して、参照フィールドＲのルミナンス値が、再マッピングされた参照フィールド
【０３７３】
【数８】
2011101416.tif 000010
【０３７４】
に再マッピングされる。
【０３７５】
【数９】
2011101416.tif 000011
【０３７６】
参照フィールドのルミナンス値は、コントラスト値によってスケーリング（または「重み付け」）され、明るさ値によってシフト（すなわち、オフセットの加算によってシフト）される。クロマについては、再マッピングは次の公式に従う。
【０３７７】
【数１０】
2011101416.tif 000012
【０３７８】
ここで、μはクロマ値の平均である。一実施形態では、クロマ値の符号なし８ビット表現の平均を１２８としている。この、クロマの再マッピングの公式では、明るさ成分を用いない。一部の実施形態では、２つのパラメータによる線形再マッピングを高次の項まで拡張する。例えば、ルミナンス値Ｒを
【０３７９】
【数１１】
2011101416.tif 000013
【０３８０】
に再マッピングする２次式は次のとおりである。
【０３８１】
【数１２】
2011101416.tif 000014
【０３８２】
別の実施形態では、別の再マッピング公式を用いる。あるカテゴリのそのような再マッピング公式では、非線形フェードについて、線形マッピングを非線形マッピングに置き換えている。
【０３８３】
フェード補償は、動き補償の前に参照フィールドに適用することが可能である。または、動き補償中に、必要に応じて参照フィールドに適用することが可能である。例えば、参照フィールドの、動きベクトルによって実際に参照されている領域に適用することが可能である。
【０３８４】
Ｅ．パラメータの推定
推定は、符号化処理中に補償パラメータを算出する処理である。図４２のフレームワーク（４２００）に示すような符号化器が、符号化処理中に明るさパラメータ（Ｂ１、Ｂ２）およびコントラスト・パラメータ（Ｃ１、Ｃ２）を算出する。あるいは、そのような符号化器は、別の補償パラメータを算出する。
【０３８５】
推定を速めるために、符号化器は、参照フィールドごとに別々に、各パラメータを考慮および評価する。さらに符号化器は、ルミナンス・チャネルだけを解析する。あるいは、符号化器は、より多くの計算リソースが使用可能な場合に、クロマを解析に含める。例えば、符号化器は、Ｃ１（またはＣ２）をよりロバストにするために、第１の参照フィールドについては、ルミナンスの再マッピング式だけでなくルミナンスおよびクロマの再マッピング式で、Ｃ１（またはＣ２）の値を求める。
【０３８６】
フェード推定処理では、シーン内の動きを無視する。これは、（ａ）フェードおよびクロス・フェードは、一般に、静止シーンまたは動きの少ないシーンで発生する、および（ｂ）動きの多いシーンでの輝度補償の有用性は非常に低い、という報告に基づいている。あるいは、符号化器は、フェード補償パラメータと動き情報とを統合的に求める。動き情報は、この手法の後段、または、ある別の時点で、フェード補償パラメータの精度をより高めるために用いられる。動き情報の１つの用途は、参照フィールドの、動きが検出された部分をフェード推定計算から省くことである。
【０３８７】
絶対誤差合計Σａｂｓ（Ｉ（ｎ）−Ｒ）または
【０３８８】
【数１３】
2011101416.tif 000015
【０３８９】
は、フェードの存在およびパラメータを決定するための測定基準としての役目を果たす。あるいは、符号化器は、同じ誤差項の二乗誤差または平均二乗誤差の合計のような他の測定基準または追加の測定基準を用いるか、または別の誤差項を用いる。
【０３９０】
符号化器は、後述するような終了条件が満たされたら、推定を終了することが可能である。別の終了条件では、符号化器は、推定の開始時または中間段階で、コントラスト・パラメータＣ１（またはＣ２）が１．０に近いかどうか（一実装形態では、０．９９＜Ｃ＜１．０２かどうか）をチェックし、そのとおりであれば、この手法を終了する。
【０３９１】
符号化器は、現在のフィールドおよび選択された（第１または第２の）参照フィールドをダウンサンプリングすることによって推定を開始する。一実装形態では、符号化器は、水平方向および垂直方向に係数４でダウンサンプリングを行う。あるいは、符号化器は、別の係数でダウンサンプリングを行うか、ダウンサンプリングをまったく行わない。
【０３９２】
次に符号化器は、現在のフィールドおよび参照フィールドの、解像度を落としたＩd（ｎ）およびＲdの絶対誤差合計Σａｂｓ（Ｉd（ｎ）−Ｒd）を算出する。絶対誤差合計は、ダウンサンプリングされた現在のフィールドとダウンサンプリングされた参照フィールドとの間の値の差分を計測する。絶対誤差合計が特定のしきい値（例えば、あらかじめ決められた差分測定値）より小さければ、符号化器は、フェードが発生していないのでフェード補償を用いないと結論づける。
【０３９３】
それ以外であれば、符号化器は、明るさパラメータＢ１（またはＢ２）およびコントラスト・パラメータＣ１（またはＣ２）を推定する。様々なパラメータ値についてＲdの観点からＩd（ｎ）をモデル化することによって、最初の推定が得られる。例えば、明るさおよびコントラストのパラメータは、ダウンサンプリングされたフィールドの全体に対する線形回帰から得られる。または、符号化器は、さらなる確実な解析のために、総最小二乗、最小平均二乗などのような他の形式の統計解析を行う。例えば、符号化器は、誤差項Ｉd（ｎ）−ＲｄのＭＳＥまたはＳＳＥを最小化する。状況によっては、ＭＳＥおよびＳＳＥがロバストではないので、符号化器はさらに、誤差項の絶対誤差合計を検査する。符号化器は、（フェードではなく動きに起因する可能性がある）特定の点の高い誤差値を廃棄する。
【０３９４】
最初のパラメータが許容範囲内にあることの確認と、それらの適合性の検査とのために、最初のパラメータを量子化および逆量子化する。一部の実施形態では、一般的な８ビット深度の画像に対し、これらのパラメータをそれぞれ６ビットに量子化する。Ｂ１（またはＢ２）は、符号付き６ビット整数として表される、−３２〜３１の範囲の整数値をとる。Ｃ１（またはＣ２）は、０．０１５６２５（１／６４）の均等ステップで０．５〜１．４８４３７５の範囲をとり、これは、Ｃ１（またはＣ２）の量子化値０〜６３に対応する。量子化は、Ｂ１（またはＢ２）およびＣ１（またはＣ２）を、最も近い有効な逆量子化値に丸め、該当する二進指数を取得することによって行われる。
【０３９５】
符号化器は、オリジナルの有界絶対誤差合計（ＳOrgBnd）と再マッピングされた有界絶対誤差合計（ＳRmpBnd）とを算出する。一部の実施形態では、符号化器は、適合度解析（goodness-of-fit analysis）を用いて合計を算出する。符号化器は、オリジナルの解像度の画素のランダム集合または擬似ランダム集合について、再マッピングされた有界絶対誤差合計Σｂａｂｓ（Ｉ（ｎ）−ＣfＲ−Ｂf）を算出する。ここで、符号化されるフィールドの量子化パラメータの倍数など、何らかの範囲Ｍについてｂａｂｓ（ｘ）＝ｍｉｎ（ａｂｓ（ｘ），Ｍ）である。限界Ｍは、量子化パラメータが粗い場合には高くなり、細かい場合には低くなる。符号化器はさらに、オリジナルの有界絶対誤差合計Σｂａｂｓ（Ｉ（ｎ）−Ｒ）を蓄積する。符号化器は、計算リソースが使用可能であれば、フィールド全体の有界誤差合計を算出することが可能である。
【０３９６】
符号化器は、オリジナルの有界絶対誤差合計と再マッピングされた有界絶対誤差合計との相対的な値に基づいて、フェード補償を用いるかどうかを決定する。例えば、一部の実施形態では、符号化器は、再マッピングされた有界絶対誤差合計が、オリジナルの有界絶対誤差合計の特定のしきい値パーセンテージσ以下にならない限り、フェード補償を行わない。一部の実装形態では、σ＝０．９５である。
【０３９７】
フェード補償を用いる場合、符号化器は、フェード・パラメータを、今度は、Ｉ（ｎ）とＲとの間の線形回帰に基づいて、ただし、フル解像度で再計算する。計算時間を節約するために、符号化器は、フィールドのランダムまたは擬似ランダム・サンプリングに対して線形回帰を繰り返すことが可能である。この場合も、符号化器は、代替として、さらなる確実な解析のために（例えば、総最小二乗、最小平均二乗などの）他の形式の統計解析を行うことが可能である。
【０３９８】
一部の実装形態では、符号化器は、Ｃ１（またはＣ２）の再構成された値が−１である特殊なケースを可能にする。この特殊なケースは、Ｃ１（またはＣ２）が０に等しくなるシンタックス要素によって信号伝達される。この「反転」モードでは、参照フィールドがシフトの前にＢ１（またはＢ２）によって反転され、Ｂ１（またはＢ２）の範囲は均等ステップ２で１９３〜３１９である。あるいは、一部またはすべてのフェード補償パラメータが別の表現を用いるか、または他のパラメータおよび／または追加のパラメータが用いられる。
【０３９９】
Ｆ．信号伝達
高レベルでは、信号伝達されるフェード補償情報は、（１）補償オン／オフ情報、および（２）補償パラメータ、を収容する。このオン／オフ情報は、（ａ）全体に対して（例えば、シーケンス全体に対して）フェード補償が可能かどうか、（ｂ）フェード補償が可能な場合、特定のＰフィールドに対してフェード補償を用いるかどうか、および（ｃ）特定のＰフィールドに対してフェード補償が用いられる場合に、フェード補償によってどの参照フィールドを調節すべきか、を含むことが可能である。参照フィールドに対してフェード補償を用いる場合は、フェード補償パラメータを以下のように適用する。
【０４００】
１．全体のオン／オフの信号伝達
シーケンス・レベルにおいて、１つのビットが、フェード補償がそのシーケンスに対して有効化されているかどうかを示す。フェード補償が可能な場合は、後続の要素が、フェード補償をいつどのように行うかを示す。あるいは、フェード補償は、他の何らかのシンタックス・レベルで有効化／無効化される。または、フェード補償が常に可能になっていて、全体のオン／オフの信号伝達がスキップされる。
【０４０１】
２．Ｐフィールドのオン／オフの信号伝達
フェード補償が可能な場合は、１つまたは複数の追加信号が、フェード補償をいつ行うかを示す。一般的なインターレース・ビデオ・シーケンスのフィールドにおいては、輝度補償を行うことはまれである。Ｐフィールドのフェード補償を用いることの信号伝達は、フィールドごとに１つのビット（例えば、フィールド・レベルで信号伝達される１つのビット）を追加することによって可能である。しかしながら、フェード補償を用いることを、他の情報と統合的に信号伝達するほうが経済的である。
【０４０２】
１つのオプションは、Ｐフィールドにフェード補償を用いることを、動きベクトル・モード（例えば、動きベクトルの数および構成、端数画素補間スキームなど）と統合的に信号伝達することである。例えば、あるＶＬＣは、最低頻度の動きベクトル・モードと、Ｐフィールドのフェード補償のアクティベーションとを統合的に示す。詳細については、「Fading Estimation/Compensation」という名称の特許文献２を参照されたい。または、後述の複数の複合実装形態に示すように、Ｐフィールドのフェード補償を用いるかどうかを、動きベクトル・モード情報とともに信号伝達する。セクションＸＩＩのＭＶＭＯＤＥ要素およびＭＶＭＯＤＥ２要素を参照されたい。あるいは、Ｐフィールドのフェード補償のオン／オフの情報を信号伝達する別のメカニズムを用いる。
【０４０３】
３．参照フィールドのオン／オフの信号伝達
Ｐフィールドに対してフェード補償を用いる場合は、どの参照フィールドがフェード補償を受けるかについていくつかのオプションがありうる。Ｐフィールドがフェード補償を用い、２つの参照フィールドを有する場合は、３つのケースが存在する。フェード補償を行う対象は、（１）両方の参照フィールド、（２）第１の参照フィールドのみ（例えば、時間的に２番目に近い参照フィールド）、または（３）第２の参照フィールドのみ（例えば、時間的に最も近い参照フィールド）である。フェード補償の参照フィールドのパターン情報は、ＰフィールドごとにＦＬＣまたはＶＬＣとして信号伝達可能である。図４４のテーブルは、Ｐフィールド・ヘッダ内で信号伝達される、要素ＩＮＴＣＯＭＰＦＩＥＬＤのパターン情報のＶＬＣの１つの集合を示す。あるいは、フィールド・レベルまたは別のシンタックスレベルで、図４７Ｇのテーブルまたは別のテーブルを用いる。
【０４０４】
一部の実装形態では、すべてのＰフィールドについて、フェード補償用参照フィールド・パターンを信号伝達する。あるいは、フェード補償を用いる参照フィールドが１つであるＰフィールドの場合は、参照フィールド・パターンの信号伝達をスキップする。これは、フェード補償が自動的に単一参照フィールドに適用されるからである。
【０４０５】
４．フェード補償パラメータの信号伝達
参照フィールドに対してフェード補償を用いる場合は、その参照フィールドについてのフェード補償パラメータを信号伝達する。例えば、Ｐフィールドのヘッダ内にフェード補償パラメータの第１の集合が存在する。１つの参照フィールドに対してのみフェード補償を用いる場合、パラメータの第１の集合は、その１つの参照フィールドが対象である。しかしながら、Ｐフィールドの２つの参照フィールドに対してフェード補償を用いる場合、パラメータの第１の集合は一方の参照フィールドが対象であり、もう一方の参照フィールドのフェード補償のための、フェード補償パラメータの第２の集合がヘッダ内に存在する。
【０４０６】
フェード補償パラメータの各集合は、例えば、コントラスト・パラメータおよび明るさパラメータを収容する。一複合実装形態では、パラメータの第１の集合は、ＬＵＭＳＣＡＬＥ１要素およびＬＵＭＳＨＩＦＴ１要素を含む。これらは、Ｐフィールドのための輝度補償が信号伝達されるときにＰフィールド・ヘッダ内に存在する。両方の参照フィールドまたは２番目に近い参照フィールドだけがフェード補償を用いることをＩＮＴＣＯＭＰＦＩＥＬＤが示した場合は、その２番目に近い参照フィールドにＬＵＭＳＣＡＬＥ１およびＬＵＭＳＨＩＦＴ１が適用される。それ以外の場合（最も近い参照フィールドだけがフェード補償を用いることをＩＮＴＣＯＭＰＦＩＥＬＤが示した場合）は、その最も近い参照フィールドにＬＵＭＳＣＡＬＥ１およびＬＵＭＳＨＩＦＴ１が適用される。ＬＵＭＳＣＡＬＥ２要素およびＬＵＭＳＨＩＦＴ２要素を含む、パラメータの第２の集合は、Ｐフィールドのための輝度補償が信号伝達され、ＩＮＴＣＯＭＰＦＩＥＬＤが、両方の参照フィールドがフェード補償を用いることを示す場合に、Ｐフィールド・ヘッダ内に存在する。ＬＵＭＳＣＡＬＥ２およびＬＵＭＳＨＩＦＴ２は、より近い参照フィールドに適用される。
【０４０７】
ＬＵＭＳＨＩＦＴ１、ＬＵＭＳＣＡＬＥ１、ＬＵＭＳＨＩＦＴ２、およびＬＵＭＳＣＡＬＥ２は、パラメータＢ１、Ｃ１、Ｂ２、およびＣ２に対応する。ＬＵＭＳＣＡＬＥ１、ＬＵＭＳＣＡＬＥ２、ＬＵＭＳＨＩＦＴ１、およびＬＵＭＳＨＩＦＴ２は、それぞれ、６ビットＦＬＣを用いて信号伝達される。あるいは、これらのパラメータは、ＶＬＣを用いて信号伝達される。図５６は、ＬＵＭＳＨＩＦＴ１およびＬＵＭＳＣＡＬＥ１に基づいて第１の参照フィールドに対してフェード補償を行う擬似コードを示す。ＬＵＭＳＨＩＦＴ２およびＬＵＭＳＣＡＬＥ２に基づく、第２の参照フィールドに対するフェード補償についても、同様の処理を行う。
【０４０８】
あるいは、フェード補償パラメータは、別の表現を有するか、かつ／または、別の信号伝達メカニズムで信号伝達される。
【０４０９】
Ｇ．推定および信号伝達の手法
図２０の符号化器（２０００）のような符号化器、または図４２のフレームワーク（４２００）内の符号化器が、２つの参照フィールドを有するインターレースＰフィールドについてフェード推定および対応する信号伝達を行う。例えば、この符号化器は、図４５Ａに示す手法（４５００）を実行する。
【０４１０】
符号化器は、Ｐフィールドの２つの参照フィールドのうちの第１の参照フィールドに対してフェード検出を行う（４５１０）。フェードが検出された場合（判断４５１２からの「はい」のパス）、符号化器は、第１の参照フィールドを基準にして、Ｐフィールドのフェード推定を行う（４５１４）。これによって、第１の参照フィールドについてのフェード補償パラメータが生成される。符号化器はさらに、Ｐフィールドの２つの参照フィールドのうちの第２の参照フィールドに対してフェード検出を行う（４５２０）。フェードが検出された場合（判断４５２２からの「はい」のパス）、符号化器は、第２の参照フィールドを基準にして、Ｐフィールドのフェード推定を行う（４５２４）。これによって、第２の参照フィールドについてのフェード補償パラメータが生成される。例えば、符号化器は、セクション「フェード・パラメータの推定」で説明されたようなフェード検出および推定を行う。あるいは、符号化器は、別の手法を用いて、フェードを検出するか、かつ／またはフェード補償パラメータを取得する。現在のＰフィールドが参照フィールドを１つだけ有する場合は、第２の参照フィールドに対する操作をスキップすることが可能である。
【０４１１】
符号化器は、Ｐフィールドについてフェード補償がオンかオフかを信号伝達する（４５３０）。例えば、符号化器は、この情報を、Ｐフィールドの動きベクトル・モード情報と統合的に符号化する。あるいは、符号化器は、他の信号および／または追加の信号を用いて、Ｐフィールドについてフェード補償がオンかオフかを示す。フェード補償が現在のＰフィールドについてオンでない場合は（判断４５３２からの「いいえ」のパス）、手法（４５００）を終了する。
【０４１２】
そうでない場合（判断４５３２からの「はい」のパス）、符号化器は、フェード補償の参照フィールド・パターンを信号伝達する（４５４０）。例えば、符号化器は、フェード補償を両方の参照フィールドに用いるか、第１の参照フィールドだけに用いるか、または第２の参照フィールドだけに用いるかを示すＶＬＣを信号伝達する。あるいは、符号化器は、別の信号伝達メカニズム（例えば、ＦＬＣ）を用いて、参照フィールド・パターンを示す。このパスでは、符号化器はさらに、フェード推定において算出されていたフェード補償パラメータの第１の集合および／または第２の集合を信号伝達する（４５４２）。例えば、符号化器は、セクションＸＩ．Ｆで説明した信号伝達を用いる。あるいは、符号化器は、別の信号伝達を用いる。
【０４１３】
一般には符号化器はさらにフェード補償、動き推定、および動き補償を行うが、図４５Ａでは、簡略化のためにこれらの操作を示していない。さらに、フェード推定は、動き推定の前に、または動き推定と並行して行うことが可能である。図４５Ａでは、手法（４５００）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０４１４】
Ｈ．復号および補償の手法
図２１の復号器（２１００）のような復号器、または図４３のフレームワーク（４３００）内の復号器が、２つの参照フィールドを有するインターレースＰフィールドについて復号およびフェード補償を行う。例えば、この復号器は、図４５Ｂに示す手法（４５５０）を実行する。
【０４１５】
復号器は、Ｐフィールドについてフェード補償がオンかオフかを示す１つまたは複数の信号を受け取り、復号する（４５６０）。例えば、この情報は、Ｐフィールドの動きベクトル・モード情報と統合的に符号化されている。あるいは、復号器は、Ｐフィールドについてフェード補償がオンかオフかを示す他の信号および／または追加の信号を受け取り、復号する。フェード補償がＰフィールドについてオンでない場合は（判断４５６２からの「いいえ」のパス）、手法（４５５０）を終了する。
【０４１６】
そうでない場合（判断４５６２からの「はい」のパス）、復号器は、フェード補償の参照フィールド・パターンを受け取り、復号する（４５７０）。例えば、復号器は、フェード補償を両方の参照フィールドに用いるか、第１の参照フィールドだけに用いるか、または第２の参照フィールドだけに用いるかを示すＶＬＣを受け取り、復号する。あるいは、復号器は、別の信号伝達メカニズム（例えば、ＦＬＣ）と連係動作して、参照フィールド・パターンを決定する。
【０４１７】
このパスでは、復号器はさらに、フェード補償パラメータの第１の集合を受け取り、復号する（４５７２）。例えば、復号器は、セクションＸＩ．Ｆで説明した信号伝達にしたがって動作する。あるいは、復号器は、他の信号伝達にしたがって動作する。
【０４１８】
２つの参照フィールドのうちの１つについてのみフェード補償を行う場合は（判断４５７５からの「いいえ」のパス）、パラメータの第１の集合は、参照フィールド・パターンによって示されるように、第１または第２の参照フィールドが対象である。復号器は、指定された参照フィールドに対し、フェード補償パラメータの第１の集合を用いてフェード補償を行い（４５９２）、手法（４５００）を終了する。
【０４１９】
そうでない場合、すなわち、２つの参照フィールドの両方についてフェード補償を行う場合は（判断４５７５からの「はい」のパス）、復号器は、フェード補償パラメータの第２の集合を受け取り、復号する（４５８０）。例えば、復号器は、セクションＸＩ．Ｆで説明した信号伝達にしたがって動作する。あるいは、復号器は、他の信号伝達にしたがって動作する。この場合、パラメータの第１の集合は、２つの参照フィールドのうちの一方が対象であり、パラメータの第２の集合は、もう一方が対象である。復号器は、一方の参照フィールドに対し、パラメータの第１の集合を用いてフェード補償を行い（４５９２）、もう一方の参照フィールドに対し、パラメータの第２の集合を用いてフェード補償を行う（４５８２）。
【０４２０】
簡略化のために、図４５Ｂでは、手法（４５５０）が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションＸＩＩで詳述する。
【０４２１】
ＸＩＩ．複合実装形態  以下では、ビットストリーム・シンタックス、セマンティクス、および復号器の複合実装形態について、特にインターレースＰフィールドに関し、詳細に説明する。以下の説明は、第１の複合実装態様と、代替の第２の複合実装態様とを含む。さらに、２００４年５月２７日出願の特許文献１が、第３の複合実装態様の態様を開示する。
【０４２２】
インターレースＰフィールドに重点を置いているが、このセクションの様々な場所で、他のピクチャ・タイプ（例えば、インターレースＰおよびＢフレーム、インターレースＩ、ＢＩ、ＰＩ、およびＢフィールド）に対するシンタックス要素、セマンティクス、および復号の適用可能性について述べている。
【０４２３】
Ａ．第１の複合実装態様におけるシーケンスおよびセマンティクス
第１の複合実装態様では、圧縮ビデオ・シーケンスは、階層型レイヤ（ピクチャ・レイヤ、マクロブロック・レイヤ、およびブロック・レイヤ）に構造化されたデータで構成される。このシーケンスにはシーケンス・レイヤが先行し、シーケンス内にはエントリ・ポイント・レイヤを点在させることが可能である。図４６Ａ〜図４６Ｅは、各種レイヤを構成するビットストリーム要素を示す。
【０４２４】
１．シーケンス・レイヤのシンタックスおよびセマンティクス
シーケンス・レベル・ヘッダが、圧縮ピクチャのシーケンスの復号に用いられるシーケンス・レベル・パラメータを収容する。一部のプロファイルでは、トランスポート・レイヤまたは他の手段によって、シーケンス関連メタデータが復号器に伝達される。しかしながら、インターレースＰフィールドを有するプロファイル（アドバンスド・プロファイル）の場合は、このヘッダ・シンタックスは、ビデオ・データ・ビットストリームの一部である。
【０４２５】
図４６Ａは、アドバンスド・プロファイルのシーケンス・ヘッダを構成するシンタックス要素を示す。ＰＲＯＦＩＬＥ（４６０１）要素およびＬＥＶＥＬ（４６０２）要素は、それぞれ、シーケンスの符号化に用いられたプロファイルと、プロファイル内の符号化レベルとを指定する。特にインターレースＰフィールドに関しては、ＩＮＴＥＲＬＡＣＥ（４６０３）要素が、ソース・コンテンツがプログレッシブ（ＩＮＴＥＲＬＡＣＥ＝０）か、インターレース（ＩＮＴＥＲＬＡＣＥ＝１）かを信号伝達する、１ビットのシンタックス要素である。ＩＮＴＥＲＬＡＣＥ＝１の場合には、個々のフレームもプログレッシブ・シンタックスまたはインターレース・シンタックスを用いて符号化されることが可能である。
【０４２６】
２．エントリ・ポイント・レイヤのシンタックスおよびセマンティクス
アドバンスド・プロファイルには、エントリ・ポイント・ヘッダが存在する。エントリ・ポイントには２つの用途がある。第１に、エントリポイントは、ビットストリーム内でランダム・アクセス・ポイントを信号伝達するために用いられる。第２に、エントリ・ポイントは、符号化制御パラメータの変化を信号伝達するために用いられる。
【０４２７】
図４６Ｂは、エントリ・ポイント・レイヤを構成するシンタックス要素を示す。特にインターレースＰフィールドに関しては、参照フレーム距離フラグＲＥＦＤＩＳＴ＿ＦＬＡＧ（４６１１）要素が、１ビットのシンタックス要素である。ＲＥＦＤＩＳＴ＿ＦＬＡＧ＝１は、ＲＥＦＤＩＳＴ（４６２４）要素がＩ／Ｉ、Ｉ／Ｐ、Ｐ／Ｉ、またはＰ／Ｐフィールド・ピクチャ・ヘッダ内に存在することを示す。ＲＥＦＤＩＳＴ＿ＦＬＡＧ＝０は、ＲＥＦＤＩＳＴ（４６２４）要素がＩ／Ｉ、Ｉ／Ｐ、Ｐ／Ｉ、またはＰ／Ｐフィールド・ピクチャ・ヘッダ内に存在しないことを示す。
【０４２８】
拡張動きベクトル・フラグＥＸＴＥＮＤＥＤ＿ＭＶ（４６１２）要素は、拡張動きベクトル機能がオンになっているか（ＥＸＴＥＮＤＥＤ＿ＭＶ＝１）、オフになっているか（ＥＸＴＥＮＤＥＤ＿ＭＶ＝０）を示す１ビット要素である。拡張差分動きベクトル範囲フラグＥＸＴＥＮＤＥＤ＿ＤＭＶ（４６１３）要素は、ＥＸＴＥＮＤＥＤ＿ＭＶ＝１の場合に存在する、１ビットのシンタックス要素である。ＥＸＴＥＮＤＥＤ＿ＤＭＶ＝１であれば、拡張差分動きベクトル範囲内の動きベクトル差分が、エントリ・ポイント・セグメント内のピクチャ・レイヤにおいて信号伝達される。ＥＸＴＥＮＤＥＤ＿ＤＭＶ＝０であれば、拡張差分動きベクトル範囲内の動きベクトル差分が信号伝達されない。拡張差分動きベクトル範囲は、インターレースＰフィールドおよびＰフレームと、インターレースＢフィールドおよびＢフレームとを含むインターレースＰおよびＢピクチャについてのオプションである。
【０４２９】
３．ピクチャ・レイヤのシンタックスおよびセマンティクス
ピクチャのデータは、ピクチャ・ヘッダと、それに続くマクロブロック・レイヤ用データとからなる。図４６Ｃは、インターレース・フィールド・ピクチャ用フレーム・ヘッダを構成するビットストリーム要素を示す。以下の説明はインターレースＰフィールドに用いられる要素に重点を置いているが、図４６Ｃに示したヘッダは、インターレースＩ、Ｐ、Ｂ、およびＢＩフィールドの様々な組合せに適用可能である。
【０４３０】
フレーム符号化モードＦＣＭ（４６２１）要素は、シーケンス・レイヤＩＮＴＥＲＬＡＣＥ（４６０３）が値１を有する場合のみ、アドバンスド・プロファイルにのみ存在する。ＦＣＭ（４６２１）は、ピクチャがプログレッシブとして符号化されているか、インターレース・フィールドとして符号化されているか、インターレース・フレームとして符号化されているかを示す。図４７Ａのテーブルは、ピクチャ符号化タイプをＦＣＭによって示すために用いられるＶＬＣを含む。
【０４３１】
フィールド・ピクチャ・タイプＦＰＴＹＰＥ（４６２２）要素は、インターレース・フィールド・ピクチャのピクチャ・ヘッダに存在する、３ビットのシンタックス要素である。ＦＰＴＹＰＥは、図４７Ｂのテーブルに従って復号される。このテーブルに示すように、インターレース・フレームは、２つのインターレースＩフィールド、１つのインターレースＩフィールドと１つのインターレースＰフィールド、２つのインターレースＰフィールド、２つのインターレースＢフィールド、１つのインターレースＢフィールドと１つのインターレースＢＩフィールド、または２つのインターレースＢＩフィールドを含むことが可能である。
【０４３２】
トップ・フィールド第１のＴＦＦ（４６２３）要素は、シーケンス・ヘッダ要素ＰＵＬＬＤＯＷＮ＝１であってシーケンスヘッダ要素ＩＮＴＥＲＬＡＣＥ＝１である場合に、アドバンスド・プロファイルのピクチャ・ヘッダ内に存在する１ビット要素である。ＴＦＦ＝１は、トップ・フィールドが第１の復号されたフィールドであることを示す。ＴＦＦ＝０であれば、ボトム・フィールドが第１の復号されたフィールドである。
【０４３３】
Ｐ参照距離ＲＥＦＤＩＳＴ（４６２４）要素は、エントリ・レベル・フラグＲＥＦＤＩＳＴ＿ＦＬＡＧ＝１であって、ピクチャ・タイプがＢ／Ｂ、Ｂ／ＢＩ、ＢＩ／Ｂ、ＢＩ／ＢＩでない場合に、インターレース・フィールド・ピクチャ・ヘッダ内に存在する、可変サイズのシンタックス要素である。ＲＥＦＤＩＳＴ＿ＦＬＡＧ＝０であれば、ＲＥＦＤＩＳＴ（４６２４）がデフォルト値０に設定される。ＲＥＦＤＩＳＴ（４６２４）は、現在のフレームと参照フレームとの間のフレーム数を示す。図４７Ｃのテーブルは、ＲＥＦＤＩＳＴ（４６２４）値に用いられるＶＬＣを含む。このテーブルの最後の行は、２より大きい参照フレーム距離を表すために用いられる符号ワードを示す。これらは、（バイナリの）１１として符号化され、その後にＮ−３個の１が続く。Ｎは参照フレーム距離である。符号ワードの最後のビットは０である。ＲＥＦＤＩＳＴ（４６２４）の値は１６以下である。例えば、次のようになる。  
Ｎ＝３、ＶＬＣ符号ワード＝１１０、ＶＬＣサイズ＝３  
Ｎ＝４、ＶＬＣ符号ワード＝１１１０、ＶＬＣサイズ＝４  
Ｎ＝５、ＶＬＣ符号ワード＝１１１１０、ＶＬＣサイズ＝５
フィールド・ピクチャ・レイヤＦＩＥＬＤＰＩＣＬＡＹＥＲ（４６２５）要素は、インターレース・フレームの別々のインターレース・フィールドのうちの１つに関するデータである。インターレース・フレームがＰ／Ｐフレーム（ＦＰＴＹＰＥ＝０１１）であれば、ビットストリームは、２つのインターレースＰフィールドに対し、２つのＦＩＥＬＤＰＩＣＬＡＹＥＲ（４６２５）要素を含む。図４６Ｄは、インターレースＰフィールド・ピクチャのフィールド・ピクチャ・ヘッダを構成するビットストリーム要素を示す。
【０４３４】
参照ピクチャ数ＮＵＭＲＥＦ（４６３１）要素は、インターレースＰフィールド・ヘッダ内に存在する、１ビットのシンタックス要素である。この要素は、インターレースＰフィールドが１つの参照ピクチャを有するか（ＮＵＭＲＥＦ＝０）、２つの参照ピクチャを有するか（ＮＵＭＲＥＦ＝１）を示す。参照フィールド・ピクチャ・インジケータＲＥＦＦＩＥＬＤ（４６３２）は、ＮＵＭＲＥＦ＝０の場合にインターレースＰフィールド・ヘッダ内に存在する、１ビットのシンタックス要素である。この要素は、可能な２つの参照ピクチャのどれをインターレースＰフィールドが用いるかを示す。
【０４３５】
拡張ＭＶ範囲フラグＭＶＲＡＮＧＥ（４６３３）は、大まかには、動きベクトルの拡張範囲（すなわち、動きベクトルの、より長い、可能な水平方向および／または垂直方向変位）を示す、可変サイズのシンタックス要素である。拡張差分ＭＶ範囲フラグＤＭＶＲＡＮＧＥ（４６３４）は、ＥＸＴＥＮＤＥＤ＿ＤＭＶ＝１の場合に存在する、可変サイズのシンタックス要素である。図４７Ｄのテーブルは、ＤＭＶＲＡＮＧＥ（４６３４）要素に用いられる。ＭＶＲＡＮＧＥ（４６３３）およびＤＭＶＲＡＮＧＥ（４６３４）の両方が動きベクトル差分の復号に用いられ、拡張差分動きベクトル範囲は、インターレースＰフィールド、インターレースＰフレーム、インターレースＢフィールド、およびインターレースＢフレームのオプションである。
【０４３６】
動きベクトルモードＭＶＭＯＤＥ（４６３５）要素は、４つの動きベクトル符号化モードのうちの１つ、または１つの輝度補償モードを信号伝達する、可変サイズのシンタックス要素である。動きベクトル符号化モードは、動き補償の端数画素補間規則が異なる３つの「１ＭＶ」モードを含む。１ＭＶは、ピクチャ内の各マクロブロックがせいぜい１つの動きベクトルを有することを意味する。「混在（mixed）ＭＶ」モードでは、ピクチャ内の各マクロブロックは、１つまたは４つの動きベクトルを有するか、スキップされることが可能である。ＰＱＵＡＮＴ（ピクチャの量子化係数）の値に応じて、図４７Ｅに示すテーブルのうちのいずれか１つがＭＶＭＯＤＥ（４６３５）要素に用いられる。
【０４３７】
動きベクトル・モード２  ＭＶＭＯＤＥ２（４６３６）要素は、ＭＶＭＯＤＥ（４６３５）が輝度補償を信号伝達する場合にインターレースＰフィールド・ヘッダ内に存在する、可変サイズのシンタックス要素である。ＰＱＵＡＮＴの値に応じて、図４７Ｆに示すテーブルのいずれかが、ＭＶＭＯＤＥ（４６３５）要素に対して用いられる。
【０４３８】
輝度補償フィールドＩＮＴＣＯＭＰＦＩＥＬＤ（４６３７）は、インターレースＰフィールド・ピクチャ・ヘッダに存在する、可変サイズのシンタックス要素である。図４７Ｇのテーブルに示すように、ＩＮＴＣＯＭＰＦＩＥＬＤ（４６３７）は、どの参照フィールドが輝度補償を受けるかを示すために用いられる。ＩＮＴＣＯＭＰＦＩＥＬＤ（４６３７）は、ＮＵＭＲＥＦ＝０の場合でも存在する。
【０４３９】
フィールド・ピクチャ・ルミナンス尺度１  ＬＵＭＳＣＡＬＥ１（４６３８）要素、フィールド・ピクチャ輝度シフト１  ＬＵＭＳＨＩＦＴ１（４６３９）要素、フィールド・ピクチャ・ルミナンス尺度２  ＬＵＭＳＣＡＬＥ２（４６４０）要素、およびフィールド・ピクチャ・ルミナンス・シフト２  ＬＵＭＳＨＩＦＴ２（４６４１）要素は、それぞれ、輝度補償に用いられる６ビット値である。ＬＵＭＳＣＡＬＥ１（４６３８）要素およびＬＵＭＳＨＩＦＴ１（４６３９）要素は、ＭＶＭＯＤＥ（４６３５）が輝度補償を信号伝達する場合に存在する。ＩＮＴＣＯＭＰＦＩＥＬＤ（４６３７）要素が「１」または「００」の場合は、ＬＵＭＳＣＡＬＥ１（４６３８）およびＬＵＭＳＨＩＦＴ１（４６３９）がトップ・フィールドに適用される。それ以外の場合は、ＬＵＭＳＣＡＬＥ１（４６３８）およびＬＵＭＳＨＩＦＴ１（４６３９）がボトム・フィールドに適用される。ＬＵＭＳＣＡＬＥ２（４６４０）要素およびＬＵＭＳＨＩＦＴ２（４６４１）要素は、ＭＶＭＯＤＥ（４６３５）が輝度補償を信号伝達し、ＩＮＴＣＯＭＰＦＩＥＬＤ（４６３７）要素が「１」である場合に存在する。ＬＵＭＳＣＡＬＥ２（４６４０）およびＬＵＭＳＨＩＦＴ２（４６４１）は、ボトム・フィールドに適用される。
【０４４０】
マクロブロック・モード・テーブルＭＢＭＯＤＥＴＡＢ（４６４２）要素は、インターレースＰフィールド・ヘッダ用に３ビット値を有する固定長フィールドである。ＭＢＭＯＤＥＴＡＢ（４６４２）は、マクロ・ブロック・レイヤ内のマクロ・ブロック・モードＭＢＭＯＤＥ（４６６１）シンタックス要素を符号化／復号するために８つの符号テーブル（３ビット値で指定されるテーブル０〜７）のどれが用いられるかを示す。８つの符号テーブルは２セットあり、どのセットが用いられるかは、ＭＶＭＯＤＥ（４６３５）によって示されるように、４ＭＶマクロブロックがピクチャ内で可能かどうかに依存する。図４７Ｈは、混在ＭＶモードのインターレースＰフィールドにおいて、ＭＢＭＯＤＥ（４６６１）に使用可能な８つのテーブルを示す。図４７Ｉは、１ＭＶモードのインターレースＰフィールドにおいて、ＭＢＭＯＤＥ（４６６１）に使用可能な８つのテーブルを示す。
【０４４１】
動きベクトルテーブルＭＶＴＡＢ（４６４３）要素は、固定長フィールドである。ＮＵＭＲＥＦ＝０であるインターレースＰフィールドの場合、ＭＶＴＡＢ（４６４３）は、動きベクトルデータを復号するために４つの符号テーブル（２ビット値で指定されるテーブル０〜３）のどれが用いられるかを示す、２ビットのシンタックス要素である。ＮＵＭＲＥＦ＝１であるインターレースＰフィールドの場合、ＭＶＴＡＢ（４６４３）は、動きベクトル・データを符号化／復号するために８つの符号テーブル（３ビット値で指定されるテーブル０〜７）のどれが用いられるかを示す、３ビットのシンタックス要素である。
【０４４２】
インターレースＰフィールド・ヘッダ内の４ＭＶブロック・パターン・テーブル４ＭＶＢＰＴＡＢ（４６４４）要素は、ピクチャが混在ＭＶタイプであることを、ＭＶＭＯＤＥ（４６３５）（または、ＭＶＭＯＤＥ（４６３５）が輝度補償に設定されている場合はＭＶＭＯＤＥ２（４６３６））が示している場合に存在する２ビット値である。４ＭＶＢＰＴＡＢ（４６４４）シンタックス要素は、４ＭＶマクロブロック内の４ＭＶブロック・パターン４ＭＶＢＰ（４６６４）シンタックス要素について４つのテーブル（２ビット値で指定されるテーブル０〜３）のどれが用いられるかを信号伝達する。図４７Ｊは、４ＭＶＢＰ（４６６４）に使用可能な４つのテーブルを示す。
【０４４３】
インターレースＰフレーム・ヘッダ（図示せず）は、図４６Ｃに示した、フィールド符号化されたインターレース・フレーム・ヘッダおよび図４６Ｄに示したインターレースＰフィールド・ヘッダと同じ要素を多く有する。これらは、ＦＣＭ（４６２１）、ＭＶＲＡＮＧＥ（４６３３）、ＤＭＶＲＡＮＧＥ（４６３４）、ＭＢＭＯＤＥＴＡＢ（４６４２）、およびＭＶＴＡＢ（４６４３）を含むが、インターレースＰフレームの厳密なシンタックスおよびセマンティクスはインターレースＰフィールドと異なる可能性がある。インターレースＰフレーム・ヘッダはさらに、ピクチャ・タイプ、１ＭＶモードと４ＭＶモードの切り換え、および輝度補償の信号伝達に関して、別の要素を含む。
【０４４４】
インターレースＰフレームは、マクロブロックごとに２つの動きベクトルを有する、フィールド符号化されたマクロブロックを含むことが可能なので、インターレースＰフレーム・ヘッダは、２動きベクトル・ブロック・パターン・テーブル２ＭＶＢＰＴＡＢ要素を含む。２ＭＶＢＰＴＡＢは、インターレースＰフレーム内に存在する２ビット値である。このシンタックス要素は、２ＭＶフィールド符号化されたマクロブロックにある２ＭＶブロック・パターン（２ＭＶＢＰ）要素を復号するために４つのテーブル（２ビット値で指定されるテーブル０〜３）のどれが用いられるかを信号伝達する。図４７Ｋは、２ＭＶＢＰに使用可能な４つのテーブルを示す。
【０４４５】
インターレースＢフィールドおよびインターレースＢフレームは、インターレースＰフィールドおよびインターレースＰフレームと同じ要素を多く有する。特に、インターレースＢフィールドは、４ＭＶＢＰＴＡＢ（４６４４）シンタックス要素を含むことが可能である。インターレースＢフレームは、２ＭＶＢＰＴＡＢシンタックス要素と４ＭＶＢＰＴＡＢ（４６４４）シンタックス要素の両方を含むが、それらの要素のセマンティクスは異なる可能性がある。
【０４４６】
４．マクロブロック・レイヤのシンタックスおよびセマンティクス
マクロブロック用データは、マクロブロック・ヘッダとそれに続くブロック・レイヤとからなる。図４６Ｅは、インターレースＰフィールドのマクロブロック・レイヤ構造を示す。
【０４４７】
マクロブロック・モードＭＢＭＯＤＥ（４６６１）要素は、可変サイズの要素である。この要素は、マクロブロック（１ＭＶ、４ＭＶ、またはイントラ）の動きベクトルの数、符号化されたブロック・パターンＣＢＰＣＹ（４６６２）要素がマクロブロックに対して存在するかどうか、および（一部のケースでは）動きベクトル差分データがマクロブロックに対して存在するかどうか、などの情報を統合的に示す。図４７Ｈおよび図４７Ｉは、インターレースＰフィールドのＭＢＭＯＤＥ（４６６１）に使用可能なテーブルを示す。
【０４４８】
動きベクトル・データＭＶＤＡＴＡ（４６６３）要素は、動きベクトルの動きベクトル情報（例えば、水平方向および垂直方向の差分）を符号化する、可変サイズの要素である。２つの参照フィールドを有するインターレースＰフィールドについては、ＭＶＤＡＴＡ（４６６３）はさらに、動きベクトルについて可能な複数の動きベクトル・プレディクタの中から選択するための情報を符号化する。
【０４４９】
４動きベクトルブロックパターン４ＭＶＢＰ（４６６４）要素は、インターレースＰフィールド、Ｂフィールド、Ｐフレーム、およびＢフレームのマクロブロック内に存在可能な、可変サイズのシンタックス要素である。インターレースＰフィールド、Ｂフィールド、およびＰフレームのマクロブロックでは、４ＭＶＢＰ（４６６４）要素は、マクロブロックが４つの動きベクトルを有することをＭＢＭＯＤＥ（４６６１）が示している場合に存在する。この場合、４ＭＶＢＰ（４６６４）は、４つのルミナンス・ブロックのどれが非ゼロ動きベクトル差分を含むかを示す。
【０４５０】
インターレースＢフレームのマクロブロックでは、４ＭＶＢＰ（４６６４）は、マクロブロックが２つのフィールド動きベクトルを含むことをＭＢＭＯＤＥ（４６６１）が示している場合、およびマクロブロックが補間されたマクロブロックである場合に存在する。このケースでは、４ＭＶＢＰ（４６６４）は、４つの動きベクトル（トップおよびボトムフィールドの順方向動きベクトルと、トップおよびボトム・フィールドの逆方向動きベクトル）のどれが存在するかを示す。
【０４５１】
２動きベクトル・ブロック・パターン２ＭＶＢＰ要素（図示せず）は、インターレースＰフレームおよびＢフレーム内のマクロブロックに存在する、可変サイズのシンタックス要素である。インターレースＰフレームのマクロブロックでは、２ＭＶＢＰは、マクロブロックが２つのフィールド動きベクトルを有することをＭＢＭＯＤＥ（４６６１）が示している場合に存在する。この場合、２ＭＶＢＰは、２つのフィールド（トップおよびボトム）のどれが非ゼロ動きベクトル差分を含むかを示す。インターレースＢフレームのマクロブロックでは、２ＭＶＢＰは、マクロブロックが１つの動きベクトルを含むことをＭＢＭＯＤＥ（４６６１）が示していて、マクロブロックが補間されたマクロブロックである場合に存在する。この場合、２ＭＶＢＰは、２つの動きベクトル（順方向および逆方向の動きベクトル）のどれが存在するかを示す。
【０４５２】
ブロック・レベル動きベクトル・データＢＬＫＭＶＤＡＴＡ（４６６５）要素は、特定の状況で存在する、可変サイズの要素である。この要素は、マクロブロックのブロックの動き情報を含む。
【０４５３】
ハイブリッド動きベクトル予測ＨＹＢＲＩＤＰＲＥＤ（４６６６）要素は、インターレースＰフィールドのマクロブロックに存在可能な、動きベクトルごとの、１ビットのシンタックス要素である。ハイブリッド動きベクトル予測が用いられるときに、ＨＹＢＲＩＤＰＲＥＤ（４６６６）が、２つの動きベクトル・プレディクタのどれを用いるべきかを示す。
【０４５４】
５．ブロック・レイヤのシンタックスおよびセマンティクス
インターレース・ピクチャのブロック・レイヤは、プログレッシブ・ピクチャのブロック・レイヤのシンタックスおよびセマンティクスに従う。一般に、ブロックおよびサブブロックのＤＣ係数およびＡＣ係数の情報は、ブロック・レイヤで信号伝達される。
【０４５５】
Ｂ．第１の複合実装形態における復号
ビデオ・シーケンスがインターレース・ビデオ・フレームからなるか、インターレース・フレームとプログレッシブ・フレームの混在を含む場合、ＦＣＭ（４６２１）要素は、所与のピクチャがプログレッシブ・フレームとして符号化されているか、インターレース・フィールドとして符号化されているか、またはインターレース・フレームとして符号化されているかを示す。インターレース・フィールドとして符号化されたフレームの場合、ＦＰＴＹＰＥ（４６２２）は、そのフレームが、２つのインターレースＩフィールドを含むか、１つのインターレースＩフィールドと１つのインターレースＰフィールドを含むか、２つのインターレースＰフィールドを含むか、２つのインターレースＢフィールドを含むか、１つのインターレースＢフィールドと１つのインターレースＢＩフィールドを含むか、あるいは２つのインターレースＢＩフィールドを含むかを示す。以下、インターレース・フィールドの復号について説明する。以下のセクションでは、インターレースＰフィールドの復号処理に焦点を当てる。
【０４５６】
１．インターレースＰフィールド復号のための参照
インターレースＰフィールドは、動き補償において、既に復号された１つまたは２つのフィールドを参照することが可能である。ＮＵＭＲＥＦ（４６３１）要素は、現在のＰフィールドが１つの先行参照フィールドを参照できるか、２つの先行参照フィールドを参照できるかを示す。ＮＵＭＲＥＦ＝０であれば、現在のＰフィールドは１つのフィールドだけを参照することが可能である。この場合は、ビットストリーム内でＲＥＦＦＩＥＬＤ（４６３２）が後に続く。ＲＥＦＦＩＥＬＤ（４６３２）は、既に復号されているどのフィールドが参照として用いられているかを示す。ＲＥＦＦＩＥＬＤ＝０であれば、（表示順で）時間的に最も近いＩフィールドまたはＰフィールドが参照として用いられている。ＲＥＦＦＩＥＬＤ＝１であれば、時間的に２番目に近いＩフィールドまたはＰフィールドが参照として用いられている。ＮＵＭＲＥＦ＝１であれば、現在のＰフィールドは、（表示順で）時間的に最も近い２つのＩフィールドまたはＰフィールドを参照として用いる。前述の、図２４Ａ〜図２４Ｆに示した、ＮＵＭＲＥＦ＝０およびＮＵＭＲＥＦ＝１の場合の参照フィールド・ピクチャの例は、第１の複合実装形態に当てはまる。
【０４５７】
２．ピクチャ・タイプ
インターレースＰフィールドは、２つのタイプ（１ＭＶまたは混在ＭＶ）のうちの１つであることが可能である。１ＭＶ  Ｐフィールドでは、各マクロブロックが１ＭＶマクロブロックである。混在ＭＶ  Ｐフィールドでは、各マクロブロックは、すべてのマクロブロックにおいてＭＢＭＯＤＥ（４６６１）によって示されるように、１ＭＶまたは４ＭＶマクロブロックとして符号化されることが可能である。インターレースＰフィールドについては、１ＭＶモードか混在ＭＶモードかは、ＭＶＭＯＤＥ（４６３５）要素およびＭＶＭＯＤＥ２（４６３６）要素によって信号伝達される。
【０４５８】
３．マクロブロック・モード
インターレースＰフィールドのマクロブロックは、可能な３つのタイプ（１ＭＶ、４ＭＶ、およびイントラ）のうちの１つであることが可能である。ＭＢＭＯＤＥ（４６６１）要素は、マクロブロック・タイプ（１ＭＶ、４ＭＶ、またはイントラ）と、さらにＣＢＰおよびＭＶデータの存在と、を示す。ＭＶＭＯＤＥ（４６３５）／ＭＶＭＯＤＥ２（４６３６）シンタックス要素が示す、インターレースＰフィールドが混在ＭＶか、すべて１ＭＶかに応じて、ＭＢＭＯＤＥ（４６６１）は、以下のように情報を信号伝達する。
【０４５９】
図２６のテーブルは、ＭＢＭＯＤＥ（４６６１）が、すべて１ＭＶであるＰフィールドのマクロブロックについて情報を信号伝達する様子を示している。図４７Ｉに示すように、８つのテーブルのうちの１つを用いて、１ＭＶ  ＰフィールドのＭＢＭＯＤＥ（４６６１）が符号化／復号される。図２７のテーブルは、ＭＢＭＯＤＥ（４６６１）が、混在ＭＶであるＰフィールドのマクロブロックについて情報を信号伝達する様子を示している。図４７Ｈに示すように、８つのテーブルのうちの１つを用いて、混在ＭＶ  ＰフィールドのＭＢＭＯＤＥ（４６６１）が符号化／復号される。
【０４６０】
したがって、１ＭＶマクロブロックは、１ＭＶ  インターレースＰフィールドと混在ＭＶインターレースＰフィールドとで発生する可能性がある。１ＭＶマクロブロックは、マクロブロック内の６つのブロックすべてについて現在のピクチャと参照ピクチャとの間の変位が単一の動きベクトルによって表されるマクロブロックである。１ＭＶマクロブロックについては、ＭＢＭＯＤＥ（４６６１）要素は、（１）マクロブロックタイプが１ＭＶであること、（２）マクロブロックについてＣＢＰＣＹ（４６６２）要素が存在するかどうか、および（３）マクロブロックについてＭＶＤＡＴＡ（４６６３）要素が存在するかどうか、を示す。
【０４６１】
ＣＢＰＣＹ（４６６２）要素が存在することをＭＢＭＯＤＥ（４６６１）要素が示している場合は、マクロブロック・レイヤ内の対応する場所にＣＢＰＣＹ（４６６２）要素が存在する。ＣＢＰＣＹ（４６６２）は、ブロック・レイヤ内で６つのブロックのどれが符号化されているかを示す。ＣＢＰＣＹ（４６６２）が存在しないことをＭＢＭＯＤＥ（４６６１）要素が示している場合は、ＣＢＰＣＹ（４６６２）が０に等しいと見なされ、マクロブロック内の６つのブロックのどれについてもブロック・データが存在しない。
【０４６２】
ＭＶＤＡＴＡ（４６６３）要素が存在することをＭＢＭＯＤＥ（４６６１）要素が示している場合は、マクロブロック・レイヤ内の対応する場所にＭＶＤＡＴＡ（４６６３）要素が存在する。ＭＶＤＡＴＡ（４６６３）要素は、動きベクトル差分を符号化する。動きベクトル差分は、動きベクトルを再構成するために、動きベクトル・プレディクタと結合される。ＭＶＤＡＴＡ（４６６３）要素が存在しないことをＭＢＭＯＤＥ（４６６１）要素が示している場合は、動きベクトル差分がゼロであると見なされ、したがって、動きベクトルが動きベクトル・プレディクタと等しくなる。
【０４６３】
４ＭＶマクロブロックは、混在ＭＶ  Ｐフィールドにおいて発生する。４ＭＶマクロブロックは、マクロブロック内の４つのルミナンス・ブロックのそれぞれが、そのブロックの、現在のピクチャと参照ピクチャとの間の変位を示す関連付けられた動きベクトルを有することが可能であるマクロブロックである。クロマ・ブロックの変位は、４つのルミナンス動きベクトルから導出される。現在のブロックと参照ブロックとの間の差分は、ブロック・レイヤにおいて符号化される。４ＭＶマクロブロックについては、ＭＢＭＯＤＥ（４６６１）要素は、（１）マクロブロック・タイプが４ＭＶであること、および（２）ＣＢＰＣＹ（４６６２）要素が存在するかどうか、を示す。
【０４６４】
イントラ・マクロブロックは、１ＭＶまたは混在ＭＶ  Ｐフィールドで発生する可能性がある。イントラ・マクロブロックは、６つのブロックすべてが、先行ピクチャ・データをまったく参照せずに符号化されたマクロブロックである。イントラ・マクロブロックについては、ＭＢＭＯＤＥ（４６６１）要素は、（１）マクロブロック・タイプがイントラであること、および（２）ＣＢＰＣＹ（４６６２）要素が存在するかどうか、を示す。イントラ・マクロブロックの場合、ＣＢＰＣＹ（４６６２）要素が存在すれば、これは、６つのブロックのどれが、符号化されたＡＣ係数データをブロックレイヤ内に有するか、を示す。ＤＣ係数は、どの場合でも、各ブロックについて存在する。
【０４６５】
４．動きベクトル・ブロック・パターン
４ＭＶＢＰ（４６６４）要素は、４つのルミナンス・ブロックのどれが非ゼロ動きベクトル差分を含むかを示す。４ＭＶＢＰ（４６６４）は、０〜１５の値に復号される。これは、バイナリ値で表された場合には、対応するルミナンス・ブロックの動きベクトルが存在するかどうかを示すビット・シンタックス要素を表す。図３４のテーブルは、ルミナンス・ブロックと４ＭＶＢＰ（４６６４）の各ビットとの関連付けを示している。図４７Ｊに示すように、４つのテーブルのうちの１つを用いて４ＭＶＢＰ（４６６４）が符号化／復号される。
【０４６６】
４ＭＶＢＰ（４６６４）の４ビットの各場所においては、値０は、（ＢＬＫＭＶＤＡＴＡ内の）動きベクトル差分が、ブロックの、対応する場所に存在しないことを示し、動きベクトル差分は０と見なされる。値１は、（ＢＬＫＭＶＤＡＴＡ内の）動きベクトル差分が、ブロックの、対応する場所に存在することを示す。例えば、４ＭＶＢＰ（４６６４）がバイナリ値１１００に復号された場合、ビットストリームは、ブロック０および１についてはＢＬＫＭＶＤＡＴＡ（４６６５）を含み、ブロック２および３についてはＢＬＫＭＶＤＡＴＡ（４６６５）が存在しない。同様に、４ＭＶＢＰ（４６６４）は、インターレースＢフィールドおよびインターレースＰフレームの４ＭＶマクロブロックについて動きベクトル差分情報の存在／不在を示すために用いられる。
【０４６７】
インターレースＰフレームまたはインターレースＢフレームのフィールド符号化されたマクロブロックは、２つの動きベクトルを含むことが可能である。２フィールドＭＶマクロブロックの場合、２ＭＶＢＰ要素は、２つのフィールドのどれが非ゼロ差分動きベクトルを有するかを示す。図４７Ｋに示すように、４つのテーブルのうちの１つを用いて２ＭＶＢＰが符号化／復号される。
【０４６８】
５．フィールド・ピクチャ座標系
以下のセクションでは、動きベクトルの単位をフィールド・ピクチャの単位で表す。例えば、動きベクトルの垂直方向成分が（１／４画素単位で）＋６の変位を示した場合、これは、１と１／２フィールド・ピクチャ・ラインの変位を示している。
【０４６９】
図４８は、動きベクトルの垂直方向成分と、現在のフィールドと参照フィールドの、同じ極性と反対の極性の両方の組合せでの空間位置との関係を示す。図４８は、現在のフィールドおよび参照フィールドにおける画素の１つの縦列を示している。○印は、整数の画素位置を表し、×印は、１／４画素位置を表す。値０は、現在のフィールドと参照フィールドとで、場所の垂直方向変位がないことを示す。現在のフィールドと参照フィールドとが反対の極性の場合、０垂直方向ベクトルは、参照フィールド内のフィールド・ライン間の途中の場所（１／２画素シフト）をポイントする。現在のフィールドと参照フィールドとが同じ極性の場合、０垂直方向ベクトルは、参照フィールド内の対応するフィールド・ラインをポイントする。
【０４７０】
６．動きベクトル差分の復号
ＭＶＤＡＴＡ（４６６３）要素およびＢＬＫＭＶＤＡＴＡ（４６６５）要素は、マクロブロックまたはマクロブロック内のブロックの動き情報を符号化する。１ＭＶマクロブロックは、単一のＭＶＤＡＴＡ（４６６３）要素を有し、４ＭＶマクロブロックは、０〜４個のＢＬＫＭＶＤＡＴＡ（４６６５）を有することが可能である。ＭＶＤＡＴＡ（４６６３）またはＢＬＫＭＶＤＡＴＡ（４６６５）から動きベクトル差分を算出する処理は、参照（ＮＵＭＲＥＦ＝０）が１つの場合と参照（ＮＵＭＲＥＦ＝１）が２つの場合とで異なる。
【０４７１】
参照フィールドを１つだけ有するフィールド・ピクチャでは、ＭＶＤＡＴＡ（４６６３）またはＢＬＫＭＶＤＡＴＡ（４６６５）シンタックス要素のそれぞれが、（１）水平方向の動きベクトル差分成分、および（２）垂直方向の動きベクトル差分成分を統合的に符号化する。ＭＶＤＡＴＡ（４６６３）要素またはＢＬＫＭＶＤＡＴＡ（４６６５）要素は、ＶＬＣであり、その後にＦＬＣが続く。ＶＬＣの値によってＦＬＣのサイズが決まる。ＭＶＴＡＢ（４６４３）シンタックス要素は、ＶＬＣの復号に用いられるテーブルを指定する。
【０４７２】
図４９Ａは、１つの参照フィールドを有するフィールド・ピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分の復号を示す擬似コードである。この擬似コードでは、値ｄｍｖ＿ｘおよびｄｍｖ＿ｙを算出する。ここで、ｄｍｖ＿ｘは、差分水平方向動きベクトル成分であり、ｄｍｖ＿ｙは、差分垂直方向動きベクトル成分である。変数ｋ＿ｘおよびｋ＿ｙは、図４９Ｂに示すテーブルに従うＭＶＲＡＮＧＥ（４６３３）によって定義される動きベクトル範囲に依存する固定長値である。
【０４７３】
変数ｅｘｔｅｎｄ＿ｘは、拡張範囲水平方向動きベクトル差分に対応し、変数ｅｘｔｅｎｄ  ＿ｙは、拡張範囲垂直方向動きベクトル差分に対応する。変数ｅｘｔｅｎｄ＿ｘおよびｅｘｔｅｎｄ＿ｙは、ＤＭＶＲＡＮＧＥ（４６３４）シンタックス要素から導出される。水平方向成分の拡張範囲が用いられていることをＤＭＶＲＡＮＧＥ（４６３４）が示している場合は、ｅｘｔｅｎｄ＿ｘ＝１である。そうでない場合は、ｅｘｔｅｎｄ＿ｘ＝０である。同様に、垂直方向成分の拡張範囲が用いられていることをＤＭＶＲＡＮＧＥ（４６３４）が示している場合は、ｅｘｔｅｎｄ＿ｙ＝１である。そうでない場合は、ｅｘｔｅｎｄ＿ｙ＝０である。ｏｆｆｓｅｔ＿ｔａｂｌｅは、次のように定義される配列である。  
ｏｆｆｓｅｔ＿ｔａｂｌｅ１［９］＝｛０，１，２，４，８，１６，３２，６４，１２８｝  
ｏｆｆｓｅｔ＿ｔａｂｌｅ２［９］＝｛０，１，３，７，１５，３１，６３，１２７，２５５｝  
ここで、ｏｆｆｓｅｔ＿ｔａｂｌｅ２［］は、差分範囲が拡張されている場合に、水平方向成分または垂直方向成分についてついて用いられる。図４９Ａおよび図４９Ｂは、インターレースＰフィールドの場合の拡張差分動きベクトルの復号を示しているが、拡張差分動きベクトルの復号は、第１の複合実装形態において、インターレースＢフィールド、インターレースＰフレーム、およびインターレースＢフレームにも用いられる。
【０４７４】
２つの参照フィールドを有するフィールド・ピクチャでは、ＭＶＤＡＴＡ（４６６３）またはＢＬＫＭＶＤＡＴＡ（４６６５）の各シンタックス要素が、（１）水平方向動きベクトル差分成分、（２）垂直方向動きベクトル差分成分、および（３）用いられているのが優勢的なプレディクタか、非優勢的なプレディクタか、すなわち、その２つのフィールドのどれが動きベクトルによって参照されているか、を統合的に符号化する。参照フィールドが１つである場合と同様に、ＭＶＤＡＴＡ（４６６３）要素またはＢＬＫＭＶＤＡＴＡ（４６６５）要素はＶＬＣであり、その後にＦＬＣが続く。ＶＬＣの値によってＦＬＣのサイズが決まり、ＭＶＴＡＢ（４６４３）シンタックス要素が、ＶＬＣの復号に用いられるテーブルを指定する。
【０４７５】
図５０は、２つの参照フィールドを有するフィールド・ピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分および優勢的／非優勢的なプレディクタの復号を説明する擬似コードである。この擬似コードでは、値ｐｒｅｄｉｃｔｏｒ＿ｆｌａｇは、用いられているのが優勢的な動きベクトル・プレディクタか、非優勢動きベクトルプレディクタかを示すバイナリ・フラグである。ｐｒｅｄｉｃｔｏｒ＿ｆｌａｇ＝０であれば優勢プレディクタが用いられており、ｐｒｅｄｉｃｔｏｒ＿ｆｌａｇ＝１であれば非優勢プレディクタが用いられている。他の様々な変数（ｄｍｖ＿ｘ、ｄｍｖ＿ｙ、ｋ＿ｘ、ｋ＿ｙ、ｅｘｔｅｎｄ＿ｘ、ｅｘｔｅｎｄ＿ｙ、ｏｆｆｓｅｔ＿ｔａｂｌｅ１［］、ｏｆｆｓｅｔ＿ｔａｂｌｅ２［］など）は、参照フィールドが１つの場合と同様である。テーブルｓｉｚｅ＿ｔａｂｌｅは、次のように定義される配列である。  
ｓｉｚｅ＿ｔａｂｌｅ［１６］＝｛０，０，１，１，２，２，３，３，４，４，５，５，６，６，７，７｝
【０４７６】
７．動きベクトル・プレディクタ
動きベクトルは、前のセクションで算出された動きベクトル差分を動きベクトルプレディクタに加算することによって算出される。プレディクタは、最大３つの隣接する動きベクトルから算出される。動きベクトル・プレディクタの算出は、動きベクトル・モードが１／２画素であっても、１／４画素単位で行う。
【０４７７】
１ＭＶインターレースＰフィールドでは、現在のマクロブロックのプレディクタを算出するために最大３つの隣接する動きベクトルを用いる。１ＭＶプログレッシブＰフレームについては、対象の動きベクトルに隣接するマクロブロックの位置を図５Ａおよび図５Ｂに示して説明した。
【０４７８】
混在ＭＸインターレースＰフィールドでは、現在のブロックまたはマクロブロックのプレディクタを算出するために最大３つの隣接する動きベクトルを用いる。混在ＭＶプログレッシブＰフレームについては、対象の動きベクトルに隣接するブロックおよび／またはマクロブロックの位置を図６Ａ〜図１０に示して説明した。
【０４７９】
ピクチャ・ヘッダ内のＮＵＭＲＥＦ（４６３１）シンタックス要素が０であれば、現在のインターレースＰフィールドは、既に符号化されたフィールドを１つだけ参照することが可能である。ＮＵＭＲＥＦ＝１であれば、現在のインターレースＰフィールドは、最も近い２つの参照フィールド・ピクチャを参照することが可能である。前者の場合は、各動きベクトルについて単一のプレディクタを算出する。後者の場合は、２つの動きベクトル・プレディクタを算出する。図５１Ａおよび図５１Ｂの擬似コードは、参照フィールドが１つである場合について動きベクトル・プレディクタを算出する様子を示す。この擬似コードの変数ｆｉｅｌｄｐｒｅｄ＿ｘおよびｆｉｅｌｄｐｒｅｄ＿ｙは、動きベクトル・プレディクタの水平方向成分および垂直方向成分を表す。
【０４８０】
参照フィールドが２つであるインターレースＰフィールドの場合（ＮＵＭＲＥＦ＝１）、現在のフィールドは、最も近い２つの参照フィールドを参照することが可能である。この場合は、インター符号化された各マクロブロックについて、２つの動きベクトル・プレディクタが算出される。１つのプレディクタは、同じ極性の参照フィールドから算出され、もう１つのプレディクタは、反対の極性の参照フィールドから算出される。同じ極性のフィールドと反対の極性のフィールドのうち、一方が優勢的なフィールドであり、もう一方が非優勢的なフィールドである。優勢的なフィールドは、動きベクトル・プレディクタ候補の大多数を含むフィールドである。同数の場合は、反対のフィールドから導出された動きベクトルが、優勢的なプレディクタであると見なされる。イントラ符号化されたマクロブロックは、優勢的／非優勢的なプレディクタの算出では考慮されない。すべての候補プレディクタ・マクロブロックがイントラ符号化されている場合、優勢的および非優勢的な動きベクトル・プレディクタはゼロに設定され、優勢的なプレディクタは、反対のフィールドからのものであると見なされる。
【０４８１】
図５２Ａ〜図５２Ｆの擬似コードは、参照フィールドが２つあり、動きベクトル・プレディクタ候補が３つある場合について、動きベクトル・プレディクタが算出される様子を示す。変数ｓａｍｅｆｉｅｌｄｐｒｅｄ＿ｘおよびｓａｍｅｆｉｅｌｄｐｒｅｄ＿ｙは、同じフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表し、変数ｏｐｐｏｓｉｔｅｆｉｅｌｄｐｒｅｄ＿ｘおよびｏｐｐｏｓｉｔｅｆｉｅｌｄｐｒｅｄ＿ｙは、反対のフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表す。変数ｓａｍｅｃｏｕｎｔおよびｏｐｐｏｓｉｔｅｃｏｕｎｔは、０に初期設定される。変数ｄｏｍｉｎａｎｔｐｒｅｄｉｃｔｏｒは、優勢的なプレディクタがどのフィールドに含まれるかを示す。（動きベクトル差分から復号された）値ｐｒｅｄｉｃｔｏｒ＿ｆｌａｇは、用いられているのが優勢的なプレディクタか、非優勢的なプレディクタかを示す。
【０４８２】
図５２Ｇおよび図５２Ｈの擬似コードは、図５２Ａ〜図５２Ｆの擬似コードで参照されているスケーリング操作を示す。この操作は、一方のフィールドのプレディクタをもう一方のフィールドのプレディクタから導出するために用いられる。ＳＣＡＬＥＯＰＰ、ＳＣＡＬＥＳＡＭＥ１、ＳＣＡＬＥＳＡＭＥ２、ＳＣＡＬＥＺＯＮＥ１＿Ｘ、ＳＣＡＬＥＺＯＮＥ１＿Ｙ、ＺＯＮＥ１ＯＦＦＳＥＴ＿Ｘ、およびＺＯＮＥ１ＯＦＦＳＥＴ＿Ｙの値を、現在のフィールドが第１のフィールドである場合について図５２Ｉのテーブルに示し、現在のフィールドが第２のフィールドである場合について図５２Ｊのテーブルに示す。参照フレーム距離は、ピクチャヘッダ内のＲＥＦＤＩＳＴ（４６２４）フィールドにおいて符号化される。参照フレーム距離はＲＥＦＤＩＳＴ＋１である。
【０４８３】
図５２Ｋ〜図５２Ｎは、図５２Ｈ〜図５２Ｊに示したものの代替となるスケーリング操作の擬似コードおよびテーブルである。（図５２Ａ〜図５２Ｇの擬似コードは引き続き用いるが）図５２Ｈ〜図５２Ｊのスケーリングの擬似コードおよびテーブルの代わりに、図５２Ｋ〜図５２Ｎのスケーリングの擬似コードおよびテーブルを用いる。参照フレーム距離は、フィールドレイヤヘッダの要素から取得される。Ｎの値は、図５２Ｎのテーブルに示すように、動きベクトル範囲に依存する。
【０４８４】
８．ハイブリッド動きベクトル予測
前のセクションで算出された動きプレディクタは、そのプレディクタがビットストリーム内で明示的に符号化されているかどうかを確認するために、Ａ（上の）プレディクタおよびＣ（左の）プレディクタを基準にして検査される。明示的に符号化されている場合は、動きベクトル・プレディクタとしてプレディクタＡを用いるか、プレディクタＣを用いるかを示すビットが存在する。図５３の擬似コードは、そのようなハイブリッド動きベクトル予測の復号を示す。この擬似コードでは、変数ｐｒｅｄｉｃｔｏｒ＿ｐｒｅ＿ｘおよびｐｒｅｄｉｃｔｏｒ＿ｐｒｅ＿ｙが、それぞれ、前のセクションで算出された水平方向および垂直方向の動きベクトルプレディクタである。変数ｐｒｅｄｉｃｔｏｒ＿ｐｏｓｔ＿ｘおよびｐｒｅｄｉｃｔｏｒ＿ｐｏｓｔ＿ｙは、それぞれ、ハイブリッド動きベクトル予測を検査した後の、水平方向および垂直方向の動きベクトル・プレディクタである。変数ｐｒｅｄｉｃｔｏｒ＿ｐｒｅ、ｐｒｅｄｉｃｔｏｒ＿ｐｏｓｔ、ｐｒｅｄｉｃｔｏｒＡ、ｐｒｅｄｉｃｔｏｒＢ、およびｐｒｅｄｉｃｔｏｒＣはすべて、ｐｒｅｄｉｃｔｏｒ＿ｆｌａｇの値で示される極性のフィールドを表す。例えば、反対のフィールド・プレディクタが用いられていることをｐｒｅｄｉｃｔｏｒ＿ｆｌａｇが示している場合は次のようになる。
【０４８５】
【表１】
2011101416.tif 000016
【０４８６】
同様に、同じフィールドプレディクタが用いられていることをｐｒｅｄｉｃｔｏｒ＿ｆｌａｇが示している場合は次のようになる。
【０４８７】
【表２】
2011101416.tif 000017
【０４８８】
ここで、ｏｐｐｏｓｉｔｅｆｉｅｌｄｐｒｅｄおよびｓａｍｅｆｉｅｌｄｐｒｅｄの値は、前のセクションで説明したように算出される。
【０４８９】
９．ルミナンス動きベクトルの再構成
１ＭＶおよび４ＭＶマクロブロックの両方について、ルミナンス動きベクトルは、以下のように、差分をプレディクタに加算することによって再構成される。ここで、変数ｒａｎｇｅ＿ｘおよびｒａｎｇｅ＿ｙは、ＭＶＲＡＮＧＥ（４６３３）に依存し、図４９Ｂのテーブルで指定される。ＮＵＭＲＥＦ＝０の場合（参照フィールドが１つであるインターレースＰフィールド）：  
ｍｖ＿ｘ＝（ｄｍｖ＿ｘ＋ｐｒｅｄｉｃｔｏｒ＿ｘ）ｓｍｏｄ  ｒａｎｇｅ＿ｘ  
ｍｖ＿ｙ＝（ｄｍｖ＿ｙ＋ｐｒｅｄｉｃｔｏｒ＿ｙ）ｓｍｏｄ（ｒａｎｇｅ＿ｙ）  
ＮＵＭＲＥＦ＝１の場合（参照フィールドが２つであるインターレースＰフィールド）：  
ｍｖ＿ｘ＝（ｄｍｖ＿ｘ＋ｐｒｅｄｉｃｔｏｒ＿ｘ）ｓｍｏｄ  ｒａｎｇｅ＿ｘ  
ｍｖ＿ｙ＝（ｄｍｖ＿ｙ＋ｐｒｅｄｉｃｔｏｒ＿ｙ）ｓｍｏｄ（ｒａｎｇｅ＿ｙ／２）
インターレースＰフィールドが２つの参照ピクチャを用いる場合（ＮＵＭＲＥＦ＝１）は、図５４に示すように、（動きベクトル差分の復号において導出された）ｐｒｅｄｉｃｔｏｒ＿ｆｌａｇと、（動きベクトル予測において導出された）ｄｏｍｉｎａｎｔｐｒｅｄｉｃｔｏｒの値との組合せによって、どのフィールドが参照として用いられているかが決定される。
【０４９０】
１ＭＶマクロブロックには、マクロブロックのルミナンス成分を構成する４つのブロックに対して１つの動きベクトルが存在する。マクロブロック・レイヤにＭＶデータが存在しないことをＭＢＭＯＤＥ（４６６１）シンタックス要素が示している場合は、ｄｍｖ＿ｘ＝０およびｄｍｖ＿ｙ＝０（ｍｖ＿ｘ＝ｐｒｅｄｉｃｔｏｒ＿ｘおよびｍｖ＿ｙ＝ｐｒｅｄｉｃｔｏｒ＿ｙ）である。
【０４９１】
４ＭＶマクロブロックでは、マクロブロック内のインター符号化されたルミナンス・ブロックのそれぞれが、それぞれの動きベクトルを有する。したがって、各４ＭＶマクロブロックには４つのルミナンス動きベクトルが存在する。ブロックについて動きベクトル情報が存在しないことを４ＭＶＢＰ（４６６４）シンタックス要素が示している場合は、そのブロックについてｄｍｖ＿ｘ＝０およびｄｍｖ＿ｙ＝０（ｍｖ＿ｘ＝ｐｒｅｄｉｃｔｏｒ＿ｘおよびｍｖ＿ｙ＝ｐｒｅｄｉｃｔｏｒ＿ｙ）である。
【０４９２】
１０．クロマ動きベクトルの導出
クロマ動きベクトルは、ルミナンス動きベクトルから導出される。クロマ動きベクトルは、２つのステップで再構成される。第１のステップでは、ルミナンス動きベクトルを適切に組み合わせ、スケーリングすることによって、名目上のクロマ動きベクトルを取得する。スケーリングは、１／４画素オフセットより１／２画素オフセットが優先されるように行われる。第２のステップでは、１ビットのＦＡＳＴＵＶＭＣシンタックス要素を用いて、クロマ動きベクトルのさらなる丸めが必要かどうかを決定する。ＦＡＳＴＵＶＭＣ＝０であれば、第２のステップで丸めを行わない。ＦＡＳＴＵＶＭＣ＝１であれば、１／４画素オフセットにあるクロマ動きベクトルを、最も近い１／２画素位置およびフル画素位置に丸める。双線形（bilinear）フィルタリングだけがすべてのクロマ補間に用いられる。変数ｃｍｖ＿ｘおよびｃｍｖ＿ｙは、それぞれクロマ動きベクトル成分を表し、ｌｍｖ＿ｘおよびｌｍｖ＿ｙは、それぞれルミナンス動きベクトル成分を表す。
【０４９３】
１ＭＶマクロブロックでは、クロマ動きベクトルは、以下のように、ルミナンス動きベクトルから導出される。  
ｃｍｖ＿ｘ＝（ｌｍｖ＿ｘ＋ｒｏｕｎｄ［ｌｍｖ＿ｘ  ＆  ３］）＞＞１  
ｃｍｖ＿ｙ＝（ｌｍｖ＿ｙ＋ｒｏｕｎｄ［ｌｍｖ＿ｙ  ＆  ３］）＞＞１  
ここで、ｒｏｕｎｄ［０］＝０、ｒｏｕｎｄ［１］＝０、ｒｏｕｎｄ［２］＝０、ｒｏｕｎｄ［３］＝１。
【０４９４】
図５５Ａおよび図５５Ｂの擬似コードは、４ＭＶマクロブロックの４つのルミナンス・ブロックにある動き情報からクロマ動きベクトルを導出する第１のステップの様子を示す。この擬似コードのｉｘおよびｉｙは一時変数である。図５５Ａは、参照フィールドが１つであるインターレースＰフィールドのクロマ動きベクトル導出の擬似コードであり、図５５Ｂは、参照フィールドが２つであるインターレースＰフィールドのクロマ動きベクトル導出の擬似コードである。
【０４９５】
１１．輝度補償
インターレースＰフィールドに輝度補償が用いられていることをＭＶＭＯＤＥ（４６３５）が示している場合は、参照フィールドの１つまたは両方の画素が、現在のＰフィールドのプレディクタとして用いられる前に再マッピングされる。輝度補償が用いられる場合は、第１の参照フィールドのビットストリーム内にＬＵＭＳＣＡＬＥ１（４６３８）およびＬＵＭＳＨＩＦＴ１（４６３９）シンタックス要素が存在し、第２の参照フィールドについても同様にＬＵＭＳＣＡＬＥ２（４６４０）およびＬＵＭＳＨＩＦＴ２（４６４１）要素が存在することが可能である。図５６の擬似コードは、第１の参照フィールドの参照フィールド画素の再マッピングに用いられるルック・アップ・テーブルを構築するために、ＬＵＭＳＣＡＬＥ１（４６３８）およびＬＵＭＳＨＩＦＴ１（４６３９）の値が用いられる様子を示す（この擬似コードは、第２の参照フィールドの場合のＬＵＭＳＣＡＬＥ２（４６４０）およびＬＵＭＳＨＩＦＴ２（４６４１）にも同様に適用可能である）。
【０４９６】
次のように、参照フィールドのＹ成分がＬＵＴＹ［］テーブルを用いて再マッピングされ、Ｃb／Ｃr成分がＬＵＴＵＶ［］テーブルを用いて再マッピングされる。
【０４９７】
【数１４】
2011101416.tif 000018
【０４９８】
ここで、ｐYは、参照フィールド内のオリジナルのルミナンス画素値であり、
【０４９９】
【数１５】
2011101416.tif 000019
【０５００】
は、参照フィールド内の再マッピングされたルミナンス画素値であり、ｐUVは、参照フィールド内のオリジナルのＣbまたはＣr画素値であり、
【０５０１】
【数１６】
2011101416.tif 000020
【０５０２】
は、参照フィールド内の再マッピングされたＣbまたはＣr画素値である。
【０５０３】
１２．残りの復号
復号器は、マクロブロックのＣＢＰＣＹ（４６６２）要素が存在する場合にはこれを復号する。ＣＢＰＣＹ（４６６２）要素は、係数データの存在／不在を示す。復号器は、ブロック・レイヤにおいて、インター符号化されたブロックおよびイントラ符号化されたブロックの係数データを復号する（４ＭＶマクロブロックの場合を除く）。復号器は、インター符号化されたブロックを再構成するために、復号器は、（１）変換タイプ（８×８、８×４、４×８、または４×４）を選択し、（２）サブブロック・パターンを復号し、（３）係数を復号し、（４）逆変換を実行し、（５）逆量子化を実行し、（６）そのブロックの予測を取得し、（７）その予測と誤差ブロックとを加算する。
【０５０４】
Ｃ．第２の複合実装形態におけるシーケンスおよびセマンティクス
第２の複合実装形態では、圧縮ビデオ・シーケンスは、階層型レイヤとして構造化されたデータで構成される。これらのレイヤは、上から順に、ピクチャ・レイヤ、マクロブロック・レイヤ、およびブロック・レイヤである。このシーケンスの前にシーケンス・レイヤがある。図５７Ａ〜図５７Ｃは、各種レイヤを構成するビットストリーム要素を示す。
【０５０５】
１．シーケンス・レイヤのシンタックスおよびセマンティクス
シーケンス・レベル・ヘッダは、圧縮ピクチャのシーケンスの復号に用いられるシーケンス・レベル・パラメータを収容する。復号器は、このヘッダを、外部から伝達された復号器構成情報として、またはビデオ・データ・ビットストリームの一部として、用いることが可能である。図５７Ａは、シーケンス・レイヤ・ビットストリームのシンタックス図であり、シーケンス・レイヤを構成する要素を示す。クリップ・プロファイルＰＲＯＦＩＬＥ（５７０１）要素は、クリップ生成に用いられる符号化プロファイルを指定する。ＰＲＯＦＩＬＥが「アドバンスド」プロファイルの場合、クリップ・レベルＬＥＶＥＬ（５７０２）要素は、そのクリップの符号化レベルを指定する。あるいは（例えば、他のプロファイルの場合）、クリップ・レベルは、外部手段によって復号器に伝達される。
【０５０６】
ＩＮＴＥＲＬＡＣＥ（５７０３）要素は、ＰＲＯＦＩＬＥがアドバンスド・プロファイルの場合に存在する１ビット・フィールドである。ＩＮＴＥＲＬＡＣＥ（５７０３）は、ビデオがプログレッシブ・モードで符号化されているか、インターレース・モードで符号化されているかを示す。ＩＮＴＥＲＬＡＣＥ＝０であれば、ビデオ・フレームはプログレッシブ・モードで符号化されている。ＩＮＴＥＲＬＡＣＥ＝１であれば、ビデオ・フレームはインターレース・モードで符号化されている。ＰＲＯＦＩＬＥ（５７０１）がアドバンスド・プロファイルでない場合、ビデオはプログレッシブ・モードで符号化されている。
【０５０７】
拡張動きベクトルＥＸＴＥＮＤＥＤ＿ＭＶ（５７０４）要素は、拡張動きベクトル機能がオンになっているかオフになっているかを示す１ビット・フィールドである。ＥＸＴＥＮＤＥＤ＿ＭＶ＝１であれば、動きベクトルは拡張範囲を有する。ＥＸＴＥＮＤＥＤ＿ＭＶ＝０であれば、動きベクトルは拡張範囲を有しない。
【０５０８】
２．ピクチャ・レイヤのシンタックスおよびセマンティクス
ピクチャのデータは、ピクチャ・ヘッダと、それに続くマクロブロック・レイヤ用データとからなる。図５７Ｂは、ピクチャ・レイヤ・ビットストリームのシンタックス図であり、インターレースＰフィールドのピクチャ・レイヤを構成する要素を示す。
【０５０９】
ピクチャ・タイプＰＴＹＰＥ（５７２２）要素は、１ビット・フィールドまたは可変サイズのフィールドである。Ｂピクチャがない場合は、ＩおよびＰピクチャだけがシーケンス内に存在し、ＰＴＹＰＥは単一ビットで符号化される。ＰＴＹＰＥ＝０であれば、ピクチャ・タイプはＩである。ＰＴＹＰＥ＝１であれば、ピクチャ・タイプはＰである。Ｂピクチャの数が０より大きい場合、ＰＴＹＰＥ（５７２２）は、フレームのピクチャ・タイプを示す、可変サイズのフィールドである。ＰＴＹＰＥ＝１であれば、ピクチャ・タイプはＰである。ＰＴＹＰＥ＝０１（バイナリ）であれば、ピクチャ・タイプはＩである。そして、ＰＴＹＰＥ＝００（バイナリ）であれば、ピクチャ・タイプはＢである。
【０５１０】
参照ピクチャ数ＮＵＭＲＥＦ（５７３１）要素は、インターレースＰフィールド・ヘッダ内に存在する、１ビットのシンタックス要素である。この要素は、インターレースＰフィールドが１つの参照ピクチャを有するか（ＮＵＭＲＥＦ＝０）、２つの参照ピクチャを有するか（ＮＵＭＲＥＦ＝１）を示す。参照フィールド・ピクチャ・インジケータＲＥＦＦＩＥＬＤ（５７３２）は、ＮＵＭＲＥＦ＝０の場合にインターレースＰフィールド・ヘッダ内に存在する、１ビットのシンタックス要素である。この要素は、可能な２つの参照ピクチャのどれをインターレースＰフィールドが用いるかを示す。
【０５１１】
拡張ＭＶ範囲フラグＭＶＲＡＮＧＥ（５７３３）は、特定のプロファイル（「メイン」プロファイル）を用いて符号化され、ＢＲＯＡＤＣＡＳＴ要素が１に設定されているシーケンスのＰピクチャに存在する、可変サイズのシンタックス要素である。ＭＶＲＡＮＧＥ（５７３３）は、大まかには、動きベクトルの拡張範囲（すなわち、動きベクトルの、より長い、可能な水平方向および／または垂直方向変位）を示す。ＭＶＲＡＮＧＥ（５７３３）は、動きベクトル差分の復号に用いられる。
【０５１２】
動きベクトル・モードＭＶＭＯＤＥ（５７３５）要素は、可変サイズのシンタックス要素であり、４つの動きベクトル符号化モードのうちの１つ、または１つの輝度補償モードを信号伝達する。動きベクトル符号化モードは、動き補償の端数画素補間規則が異なる３つの「１ＭＶ」モードを含む。１ＭＶは、ピクチャ内の各マクロブロックがせいぜい１つの動きベクトルを有することを意味する。「混在ＭＶ」モードでは、ピクチャ内の各マクロブロックは、１つまたは４つの動きベクトルを有するか、スキップされることが可能である。ＰＱＵＡＮＴ（ピクチャの量子化係数）の値に応じて、図４７Ｅに示すテーブルのうちのいずれか１つがＭＶＭＯＤＥ（５７３５）要素用に用いられる。
【０５１３】
動きベクトル・モード２  ＭＶＭＯＤＥ２（５７３６）要素は、可変サイズのシンタックス要素であり、ＭＶＭＯＤＥ（５７３５）が輝度補償を信号伝達する場合にインターレースＰフィールド・ヘッダ内に存在する。ＭＶＭＯＤＥ２（５７３６）については、先出のテーブル（から輝度補償用のコードを除いたもの）を用いることが可能である。
【０５１４】
ルミナンス尺度ＬＵＭＳＣＡＬＥ（５７３８）要素およびルミナンス・シフトＬＵＭＳＨＩＦＴ（５７３９）要素は、それぞれ、輝度補償に用いられる６ビット値である。ＬＵＭＳＣＡＬＥ（５７３８）およびＬＵＭＳＨＩＦＴ（５７３９）は、ＭＶＭＯＤＥ（５７３５）が輝度補償を信号伝達する場合に、インターレースＰフィールド・ヘッダ内に存在する。
【０５１５】
マクロブロック・モード・テーブルＭＢＭＯＤＥＴＡＢ（５７４２）要素は、インターレースＰフィールド・ヘッダ用の２ビット・フィールドである。ＭＢＭＯＤＥＴＡＢ（５７４２）は、マクロブロック・レイヤ内のマクロブロック・モードＭＢＭＯＤＥ（５７６１）シンタックス要素を符号化／復号するために４つの符号テーブル（２ビット値で指定されるテーブル０〜３）のどれが用いられるかを示す。
【０５１６】
動きベクトル・テーブルＭＶＴＡＢ（５７４３）要素は、インターレースＰフィールド用の２ビット・フィールドである。ＭＶＴＡＢ（５７４３）は、動きベクトル・データを符号化／復号するために４つの符号テーブル（２ビット値で指定されるテーブル０〜３）のどれが用いられるかを示す。
【０５１７】
４ＭＶブロック・パターン・テーブル４ＭＶＢＰＴＡＢ（５７４４）要素は、ピクチャが混在ＭＶタイプであることを、ＭＶＭＯＤＥ（５７３５）（または、ＭＶＭＯＤＥ（５７３５）が輝度補償に設定されている場合はＭＶＭＯＤＥ２（５７３６））が示している場合に、インターレースＰフィールド内に存在する２ビット値である。４ＭＶＢＰＴＡＢ（５７４４）は、４ＭＶマクロブロック内の４ＭＶブロック・パターン４ＭＶＢＰ（５７６４）フィールドを符号化／復号するために４つの符号テーブル（２ビット値で指定されるテーブル０〜３）のどれが用いられるかを信号伝達する。
【０５１８】
インターレースＰフレーム・ヘッダ（図示せず）は、図５７Ｂに示したインターレースＰフィールド・ヘッダと同じ要素を多く有する。これらは、ＰＴＹＰＥ（５７２２）、ＭＢＭＯＤＥＴＡＢ（５７４２）、ＭＶＴＡＢ（５７４３）、および４ＭＶＢＰＴＡＢ（５７４４）を含むが、インターレースＰフレームの厳密なシンタックスおよびセマンティクスはインターレースＰフィールドと異なる可能性がある。例えば、繰り返しになるが、４ＭＶＢＰＴＡＢは、４ＭＶマクロブロック内の４ＭＶブロック・パターン４ＭＶＢＰ要素を符号化／復号するために４つの符号テーブル（２ビット値で指定されるテーブル０〜３）のどれが用いられるかを示す２ビット・フィールドである。インターレースＰフレーム・ヘッダはさらに、１ＭＶモードと４ＭＶモードの切り換え、および輝度補償の信号伝達に関して、別の要素を含む。
【０５１９】
インターレースＰフレームは、マクロブロックごとに２つの動きベクトルを有する、フィールド符号化されたマクロブロックを含むことが可能なので、インターレースＰフレーム・ヘッダは、２動きベクトル・ブロック・パターン・テーブル２ＭＶＢＰＴＡＢ要素を含む。２ＭＶＢＰＴＡＢは、インターレースＰフレーム内に存在する２ビット・フィールドである。このシンタックス要素は、２ＭＶフィールド符号化されたマクロブロックにある２ＭＶブロック・パターン（２ＭＶＢＰ）要素を符号化／復号するために、４つのテーブル（２ビット値で指定されるテーブル０〜３）のどれが用いられるかを信号伝達する。図４７Ｋは、２ＭＶＢＰに使用可能な４つのテーブルを示す。
【０５２０】
インターレースＢフィールドおよびインターレースＢフレームは、インターレースＰフィールドおよびインターレースＰフレームと同じ要素を多く有する。特に、インターレースＢフレームは、２ＭＶＢＰＴＡＢおよび４ＭＶＢＰＴＡＢ（５７２１）の両シンタックス要素を含むが、これらの要素のセマンティクスはインターレースＰフィールドおよびＰフレームと異なる可能性がある。
【０５２１】
３．マクロブロック・レイヤのシンタックスおよびセマンティクス
マクロブロック用データは、マクロブロック・ヘッダとそれに続くブロック・レイヤとからなる。図５７Ｃは、マクロブロック・レイヤ・ビットストリームのシンタックス図であり、インターレースＰフィールドのマクロブロックのマクロブロック・レイヤを構成する要素を示す。
【０５２２】
マクロブロック・モードＭＢＭＯＤＥ（５７６１）要素は、可変サイズの要素である。この要素は、マクロブロック（１ＭＶ、４ＭＶ、またはイントラ）の動きベクトルの数、符号化されたブロック・パターンＣＢＰＣＹ（５７６２）要素がマクロブロックに対して存在するかどうか、および（一部のケースでは）動きベクトル差分データがマクロブロックに対して存在するかどうかなどの情報を統合的に示す。
【０５２３】
動きベクトル・データＭＶＤＡＴＡ（５７６３）要素は、可変サイズの要素であり、マクロブロックの動きベクトルの動きベクトル情報（例えば、水平方向および垂直方向の差分）を符号化する。２つの参照フィールドを有するインターレースＰフィールドについては、ＭＶＤＡＴＡ（５７６３）はさらに、動きベクトルについて、優勢的および非優勢的な動きベクトル・プレディクタの中から選択するための情報を符号化する。
【０５２４】
４動きベクトル・ブロック・パターン４ＭＶＢＰ（５７６４）要素は、マクロブロックが４つの動きベクトルを有することをＭＢＭＯＤＥ（５７６１）が示している場合に存在する。４ＭＶＢＰ（５７６４）要素は、４つのルミナンス・ブロックのどれが非ゼロ動きベクトル差分を含むかを示す。符号テーブルを用いて、４ＭＶＢＰ（５７６４）要素が０〜１４の値に復号される。この復号された値は、バイナリ値で表される場合に、図３４に示すように、対応するルミナンス・ブロックの動きベクトルが存在するかどうかを示すビット・フィールドを表す。
【０５２５】
２動きベクトル・ブロック・パターン２ＭＶＢＰ要素（図示せず）は、可変サイズのシンタックス要素であり、インターレースＰフレーム内のマクロブロックに存在する。インターレースＰフレームのマクロブロックでは、２ＭＶＢＰは、マクロブロックが２つのフィールド動きベクトルを有することをＭＢＭＯＤＥ（５７６１）が示している場合に、存在する。この場合、２ＭＶＢＰは、２つのフィールド（トップおよびボトム）のどれが非ゼロ動きベクトル差分を含むかを示す。
【０５２６】
ブロック・レベル動きベクトル・データＢＬＫＭＶＤＡＴＡ（５７６５）要素は、特定の状況で存在する、可変サイズの要素である。この要素は、マクロブロックのブロックの動き情報を含む。
【０５２７】
ハイブリッド動きベクトル予測ＨＹＢＲＩＤＰＲＥＤ（５７６６）要素は、インターレースＰフィールドのマクロブロックに存在可能な、動きベクトルごとの、１ビットのシンタックス要素である。ハイブリッド動きベクトル予測が用いられるときに、ＨＹＢＲＩＤＰＲＥＤ（５７６６）は、２つの動きベクトル・プレディクタのどれを用いるべきかを示す。
【０５２８】
４．ブロック・レイヤのシンタックスおよびセマンティクス
インターレース・ピクチャのブロック・レイヤは、プログレッシブ・ピクチャのブロック・レイヤのシンタックスおよびセマンティクスに従う。一般に、ブロックおよびサブブロックのＤＣ係数およびＡＣ係数の情報は、ブロック・レイヤで信号伝達される。
【０５２９】
Ｄ．第２の複合実装形態における復号
以下のセクションでは、インターレースＰフィールドの復号処理に焦点を当てる。
【０５３０】
１．インターレースＰフィールド復号のための参照
インターレースＰフィールドは、動き補償において、既に復号された１つまたは２つのフィールドを参照することが可能である。ピクチャ・レイヤ内のＮＵＭＲＥＦ（５７３１）フィールドは、現在のフィールドが参照することが可能な先行参照フィールド・ピクチャが１つか２つかを示す。ＮＵＭＲＥＦ＝０であれば、現在のインターレースＰフィールドは１つのフィールドだけを参照することが可能である。この場合は、ピクチャ・レイヤ・ビットストリーム内でＲＥＦＦＩＥＬＤ（５７３２）要素が続き、この要素が、どのフィールドが参照として用いられているかを示す。ＲＥＦＦＩＥＬＤ＝０であれば、（表示順で）時間的に最も近いＩフィールドまたはＰフィールドが参照として用いられている。ＲＥＦＦＩＥＬＤ＝１であれば、時間的に２番目に近いＩフィールド・ピクチャまたはＰフィールド・ピクチャが参照として用いられている。ＮＵＭＲＥＦ＝１であれば、現在のインターレースＰフィールド・ピクチャは、（表示順で）時間的に最も近い２つのＩフィールド・ピクチャまたはＰフィールド・ピクチャを参照として用いる。前述の、図２４Ａ〜図２４Ｆに示した、ＮＵＭＲＥＦ＝０およびＮＵＭＲＥＦ＝１の場合の参照フィールド・ピクチャの例は、第２の複合実装形態に当てはまる。
【０５３１】
２．ピクチャ・タイプおよびピクチャ・レイヤ・テーブルの選択
インターレースＰフィールドは、２つのタイプ（１ＭＶまたは混在ＭＶ）のうちの１つであることが可能である。１ＭＶ  Ｐフィールドでは、１ＭＶマクロブロックについて、マクロブロック内の６つのブロックすべての予測ブロックの変位を示すために単一の動きベクトルが用いられる。混在ＭＶ  Ｐフィールドでは、マクロブロックを１ＭＶマクロブロックまたは４ＭＶマクロブロックとして符号化することが可能である。４ＭＶマクロブロックの場合は、４つのルミナンス・ブロックのそれぞれが、それぞれに関連付けられた動きベクトルを有することが可能である。１ＭＶモードまたは混在ＭＶモードは、ＭＶＭＯＤＥ（５７３５）およびＭＶＭＯＤＥ２（５７３６）ピクチャ・レイヤ・フィールドによって信号伝達される。
【０５３２】
インターレースＰフィールドの場合、ピクチャ・レイヤは、フィールドの動き補償モードおよび輝度補償を制御するシンタックス要素を含む。ＭＶＭＯＤＥ（５７３５）は、１）フィールドの４つの動きベクトル・モードのうちの１つ、または、２）そのフィールドで輝度補償が用いられていること、を信号伝達する。輝度補償が信号伝達された場合は、ピクチャ・レイヤ内で、ＭＶＭＯＤＥ２（５７３６）、ＬＵＭＳＣＡＬＥ（５７３８）、およびＬＵＭＳＨＩＦＴ（５７３９）の各フィールドが続く。ＰＱＵＡＮＴが１２より大きいかどうかに応じて、図４７Ｅの２つのテーブルのうちの１つが、ＭＶＭＯＤＥ（５７３５）およびＭＶＭＯＤＥ２（５７３６）フィールドを復号するために用いられる。
【０５３３】
動きベクトル・モードが混在ＭＶモードの場合、ＭＢＭＯＤＥＴＡＢ（５７４２）は、フィールドの各マクロブロックのモードを信号伝達するために４つの混在ＭＶ  ＭＢＭＯＤＥテーブルのどれが用いられるかを信号伝達する。動きベクトル・モードが混在ＭＶでない場合（この場合は、インター符号化されたすべてのマクロブロックが１つの動きベクトルを用いる）、ＭＢＭＯＤＥＴＡＢ（５７４２）は、フィールドの各マクロブロックのモードを信号伝達するために４つの１ＭＶ  ＭＢＭＯＤＥテーブルのどれが用いられるかを信号伝達する。
【０５３４】
ＭＶＴＡＢ（５７４３）は、インターレースＰフィールドのマクロブロックの動きベクトル差分を復号するために用いられる符号テーブルを示す。４ＭＶＢＰＴＡＢ（５７４４）は、インターレースＰフィールドの４ＭＶマクロブロックの４ＭＶＢＰ（５７６４）を復号するために用いられる符号テーブルを示す。
【０５３５】
３．マクロブロック・モードおよび動きベクトル・ブロック・パターン
インターレースＰフィールドのマクロブロックは、可能な３つのタイプ（１ＭＶ、４ＭＶ、およびイントラ）のうちの１つであることが可能である。マクロブロック・タイプは、マクロブロック・レイヤ内のＭＢＭＯＤＥ（５７６１）によって信号伝達される。
【０５３６】
１ＭＶマクロブロックは、１ＭＶおよび混在ＭＶ  Ｐフィールドで発生する可能性がある。１ＭＶマクロブロックは、マクロブロック内の６つのブロックすべてについて現在のピクチャと参照ピクチャとの間の変位が単一の動きベクトルによって表されるマクロブロックである。現在のブロックと参照ブロックとの間の差分は、ブロック・レイヤにおいて符号化される。ＭＢＭＯＤＥ（５７６１）は、１ＭＶマクロブロックについて、（１）マクロブロック・タイプが１ＭＶであること、（２）ＣＢＰＣＹ（５７６２）が存在するかどうか、および（３）ＭＶＤＡＴＡ（５７６３）が存在するかどうか、を示す。
【０５３７】
ＣＢＰＣＹ（５７６２）が存在することをＭＢＭＯＤＥ（５７６１）が示している場合は、ＣＢＰＣＹ（５７６２）がマクロブロック・レイヤ内に存在して、６つのブロックのどれがブロックレイヤ内で符号化されているかを示す。ＣＢＰＣＹ（５７６２）が存在しないことをＭＢＭＯＤＥ（５７６１）要素が示している場合は、ＣＢＰＣＹ（５７６２）が０に等しいと見なされ、マクロブロック内の６つのブロックのどれについてもブロックデータが存在しない。
【０５３８】
ＭＶＤＡＴＡ（５７６３）が存在することをＭＢＭＯＤＥ（５７６１）が示している場合は、ＭＶＤＡＴＡ（５７６３）がマクロブロック・レイヤ内に存在して、動きベクトル差分を符号化する。この動きベクトル差分が動きベクトル・プレディクタと結合されて動きベクトルが再構成される。ＭＶＤＡＴＡ（５７６３）が存在しないことをＭＢＭＯＤＥ（５７６１）が示している場合は、動きベクトル差分がゼロであると見なされ、したがって、動きベクトルが動きベクトル・プレディクタと等しくなる。
【０５３９】
４ＭＶマクロブロックは、混在ＭＶ  Ｐフィールドにおいてのみ発生する。４ＭＶマクロブロックは、マクロブロック内の４つのルミナンス・ブロックのそれぞれが、そのブロックの、現在のピクチャと参照ピクチャとの間の変位を示す関連付けられた動きベクトルを有することが可能であるマクロブロックである。クロマ・ブロックの変位は、４つのルミナンス動きベクトルから導出される。現在のブロックと参照ブロックとの間の差分は、ブロック・レイヤにおいて符号化される。ＭＢＭＯＤＥ（５７６１）は、４ＭＶマクロブロックについて、（１）マクロブロック・タイプが４ＭＶであること、（２）ＣＢＰＣＹ（５７６２）が存在するかどうか、および（３）４ＭＶＢＰ（５７６４）が存在するかどうか、を示す。
【０５４０】
４ＭＶＢＰ（５７６４）が存在することをＭＢＭＯＤＥ（５７６１）が示している場合は、４ＭＶＢＰ（５７６４）がマクロブロック・レイヤ内に存在して、４つのルミナンス・ブロックのうちのどれが非ゼロ動きベクトル差分を含むかを示す。４ＭＶＢＰ（５７６４）は、０〜１４の値に復号される。これは、バイナリ値で表される場合に、図２７に示すように、対応するルミナンス・ブロックの動きベクトル・データが存在するかどうかを示すビット・フィールドを表す。４ＭＶＢＰ（５７６４）の４ビットの各場所においては、値０は、そのブロックについて動きベクトル差分（ＢＬＫＭＶＤＡＴＡ（５７６５））が存在しないことを示し、動きベクトル差分は０と見なされる。値１は、そのブロックについて動きベクトル差分（ＢＬＫＭＶＤＡＴＡ（５７６５））が存在することを示す。４ＭＶＢＰ（５７６４）が存在しないことをＭＢＭＯＤＥ（５７６１）が示している場合は、４つのルミナンス・ブロックすべてについて動きベクトル差分データ（ＢＬＫＭＶＤＡＴＡ（５７６５））が存在すると見なされる。
【０５４１】
インターレースＰフレームのフィールド符号化されたマクロブロックは、２つの動きベクトルを含むことが可能である。２フィールドＭＶマクロブロックの場合、２ＭＶＢＰ要素は、２つのフィールドのどれが非ゼロ差分動きベクトルを有するかを示す。
【０５４２】
イントラ・マクロブロックは、１ＭＶまたは混在ＭＶ  Ｐフィールドで発生する可能性がある。イントラ・マクロブロックは、６つのブロックすべてが、先行ピクチャ・データをまったく参照せずに符号化されたマクロブロックである。現在のブロック画素と定数値１２８との差分が、ブロック・レイヤ内で符号化される。ＭＢＭＯＤＥ（５７６１）は、イントラ・マクロブロックについて、（１）マクロブロック・タイプがイントラであること、および（２）ＣＢＰＣＹ（５７６２）が存在するかどうかを示す。イントラ・マクロブロックの場合、ＣＢＰＣＹ（５７６２）が存在すれば、これは、６つのブロックのどれが、符号化されたＡＣ係数データをブロックレイヤ内に有するかを示す。
【０５４３】
４．動きベクトル差分の復号
ＭＶＤＡＴＡ（５７６３）フィールドおよびＢＬＫＭＶＤＡＴＡ（５７６５）フィールドは、マクロブロックまたはマクロブロック内のブロックの動き情報を符号化する。１ＭＶマクロブロックは、単一のＭＶＤＡＴＡ（５７６３）フィールドを有し、４ＭＶマクロブロックは、０〜４個のＢＬＫＭＶＤＡＴＡ（５７６５）を有することが可能である。動きベクトル差分の算出は、参照が１つの場合（ＮＵＭＲＥＦ＝０）と参照が２つの場合（ＮＵＭＲＥＦ＝１）とでは実行のされかたが異なる。
【０５４４】
参照フィールドを１つだけ有するフィールド・ピクチャでは、マクロブロック・レイヤ内のＭＶＤＡＴＡ（５７６３）またはＢＬＫＭＶＤＡＴＡ（５７６５）フィールドのそれぞれが、（１）水平方向の動きベクトル差分成分、および（２）垂直方向の動きベクトル差分成分を統合的に符号化する。ＭＶＤＡＴＡ（５７６３）フィールドまたはＢＬＫＭＶＤＡＴＡ（５７６５）フィールドは、ハフマンＶＬＣであり、その後にＦＬＣが続く。ＶＬＣの値によってＦＬＣのサイズが決まる。ピクチャ・レイヤ内のＭＶＴＡＢ（５７４３）フィールドは、ＶＬＣの復号に用いられるテーブルを指定する。
【０５４５】
図５８Ａは、１つの参照フィールドを有するフィールド・ピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分の復号を示す擬似コードである。この擬似コードでは、値ｄｍｖ＿ｘおよびｄｍｖ＿ｙが算出される。値ｄｍｖ＿ｘは、差分水平方向動きベクトル成分であり、値ｄｍｖ＿ｙは、差分垂直方向動きベクトル成分である。変数ｋ＿ｘおよびｋ＿ｙは、長い動きベクトルのための固定長値であって、図５８Ｂのテーブルに示すように、ＭＶＲＡＮＧＥ（５７３３）で定義される動きベクトル範囲に依存する。値ｈａｌｆｐｅｌ＿ｆｌａｇは、ピクチャの動き補償に用いられる精度が１／２画素か１／４画素かを示すバイナリ値である。ｈａｌｆｐｅｌ＿ｆｌａｇの値は、動きベクトル・モードによって決まる。モードが１ＭＶまたは混在ＭＶであれば、ｈａｌｆｐｅｌ＿ｆｌａｇ＝０であり、１／４画素精度が動き補償に用いられる。モードが１ＭＶ  １／２画素または１ＭＶ  １／２画素双線形であれば、ｈａｌｆｐｅｌ＿ｆｌａｇ＝１であり、１／２画素精度が用いられる。ｏｆｆｓｅｔ＿ｔａｂｌｅは、次のように定義される配列である。  
ｏｆｆｓｅｔ＿ｔａｂｌｅ［９］＝｛０，１，２，４，８，１６，３２，６４，１２８｝
【０５４６】
２つの参照フィールドを有するフィールド・ピクチャでは、マクロブロック・レイヤ内のＭＶＤＡＴＡ（５７６３）フィールドまたはＢＬＫＭＶＤＡＴＡ（５７６５）フィールドのそれぞれが、（１）水平方向動きベクトル差分成分、（２）垂直方向動きベクトル差分成分、および（３）用いられる動きベクトル・プレディクタが優勢的か非優勢的か、を統合的に符号化する。ＭＶＤＡＴＡ（５７６３）フィールドまたはＢＬＫＭＶＤＡＴＡ（５７６５）フィールドはハフマンＶＬＣであり、その後にＦＬＣが続く。ＶＬＣの値はＦＬＣのサイズによって決まる。ＭＶＴＡＢ（５７４３）フィールドは、ＶＬＣの復号に用いられるテーブルを指定する。
【０５４７】
図５９は、２つの参照フィールドを有するフィールド・ピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分および優勢的／非優勢的なプレディクタの復号を示す擬似コードである。この擬似コードでは、値ｐｒｅｄｉｃｔｏｒ＿ｆｌａｇは、用いられているのが優勢的な動きベクトル・プレディクタか、非優勢的な動きベクトル・プレディクタかを示すバイナリ・フラグである（０＝優勢的なプレディクタ、１＝非優勢的なプレディクタ）。他の様々な変数（ｄｍｖ＿ｘ、ｄｍｖ＿ｙ、ｋ＿ｘ、ｋ＿ｙ、ｈａｌｆｐｅｌ＿ｆｌａｇ、およびｏｆｆｓｅｔ＿ｔａｂｌｅ［］など）は、参照フィールドが１つの場合と同様である。テーブルｓｉｚｅ＿ｔａｂｌｅは、次のように定義される配列である。  
ｓｉｚｅ＿ｔａｂｌｅ［１４］＝｛０，０，１，１，２，２，３，３，４，４，５，５，６，６｝
【０５４８】
５．動きベクトル・プレディクタ
動きベクトルは、前のセクションで算出された動きベクトル差分を動きベクトル・プレディクタに加算することによって算出される。プレディクタは、最大３つの隣接する動きベクトルから算出される。
【０５４９】
１ＭＶインターレースＰフィールドでは、現在のマクロブロックのプレディクタを算出するために最大３つの動きベクトルを用いる。隣接するプレディクタＡ、Ｂ、およびＣの位置を図５Ａおよび図５Ｂに示した。プログレッシブＰフレームについて説明したように、隣接する候補プレディクタは、現在のマクロブロックが行の最後のマクロブロックである場合を除き、左、上、および右上のマクロブロックから取得される。マクロブロックが行の最後のマクロブロックである場合は、プレディクタＢは、右上ではなく左上のマクロブロックから取得される。特殊なケースとして、フレームが１マクロブロック幅である場合は、プレディクタは常にプレディクタＡ（上のプレディクタ）である。
【０５５０】
混在ＭＶインターレースＰフィールドでは、現在のブロックまたはマクロブロックのプレディクタを算出するために最大３つの動きベクトルを用いる。図６Ａ〜図１０は、プログレッシブＰフレームについて説明したように、混在ＭＶ  Ｐフィールドの１ＭＶおよび４ＭＶマクロブロックの３つの候補動きベクトルを示す。特殊なケースとして、フレームが１マクロブロック幅である場合は、プレディクタは常にプレディクタＡ（上のプレディクタ）である。
【０５５１】
ピクチャ・ヘッダ内のＮＵＭＲＥＦ（５７３１）フィールドが０であれば、現在のインターレースＰフィールドは、既に符号化されたピクチャを１つだけ参照することが可能である。ＮＵＭＲＥＦ＝１であれば、現在のインターレースＰフィールドは、最も近い２つの参照フィールドピクチャを参照することが可能である。前者の場合は、各動きベクトルについて単一のプレディクタを算出する。後者の場合は、２つの動きベクトル・プレディクタを算出する。図６０Ａおよび図６０Ｂの擬似コードは、参照フィールドが１つである場合について動きベクトル・プレディクタを算出する様子を示す。変数ｆｉｅｌｄｐｒｅｄ＿ｘおよびｆｉｅｌｄｐｒｅｄ＿ｙは、動きベクトル・プレディクタの水平方向成分および垂直方向成分を表す。
【０５５２】
参照フィールドが２つであるインターレースＰフィールドの場合（ＮＵＭＲＥＦ＝１）、現在のフィールドは、最も近い２つの参照フィールドを参照することが可能である。この場合は、インター符号化された各マクロブロックについて、２つの動きベクトル・プレディクタが算出される。１つのプレディクタは、同じ極性の参照フィールドから算出され、もう１つのプレディクタは、反対の極性の参照フィールドから算出される。
【０５５３】
図６１Ａ〜図６１Ｆの擬似コードは、参照フィールドが２つあり、動きベクトル・プレディクタ候補が３つある場合について、動きベクトル・プレディクタが算出される様子を示す。変数ｓａｍｅｆｉｅｌｄｐｒｅｄ＿ｘおよびｓａｍｅｆｉｅｌｄｐｒｅｄ＿ｙは、同じフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表し、変数ｏｐｐｏｓｉｔｅｆｉｅｌｄｐｒｅｄ＿ｘおよびｏｐｐｏｓｉｔｅｆｉｅｌｄｐｒｅｄ＿ｙは、反対のフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表す。変数ｄｏｍｉｎａｎｔｐｒｅｄｉｃｔｏｒは、優勢的なプレディクタがどのフィールドに含まれるかを示す。（動きベクトル差分から復号された）値ｐｒｅｄｉｃｔｏｒ＿ｆｌａｇは、用いられているのが優勢的なプレディクタか、非優勢的なプレディクタかを示す。
【０５５４】
６．ハイブリッド動きベクトル予測
インターレースＰフィールドが１ＭＶまたは混在ＭＶの場合は、前のセクションで算出された動きベクトル・プレディクタが、そのプレディクタがビットストリーム内で明示的に符号化されているかどうかを確認するために、Ａ（上の）プレディクタおよびＣ（左の）プレディクタを基準にして検査される。明示的に符号化されている場合は、動きベクトル・プレディクタとしてプレディクタＡを用いるか、プレディクタＣを用いるかを示すビットが存在する。図１４Ａおよび図１４Ｂの擬似コードは、以下に示す変数を用いる、ハイブリッド動きベクトル予測の復号を示す。変数ｐｒｅｄｉｃｔｏｒ＿ｐｒｅ＿ｘおよびｐｒｅｄｉｃｔｏｒ＿ｐｒｅ＿ｙと、候補プレディクタＡ、Ｂ、およびＣは、前のセクションで算出されているとおりである（すなわち、これらは、反対のフィールドのプレディクタまたは同じフィールドのプレディクタであり、どちらであるかはｐｒｅｄｉｃｔｏｒ＿ｆｌａｇで示される）。変数ｐｒｅｄｉｃｔｏｒ＿ｐｏｓｔ＿ｘおよびｐｒｅｄｉｃｔｏｒ＿ｐｏｓｔ＿ｙは、それぞれ、ハイブリッド動きベクトル予測を検査した後の、水平方向および垂直方向の動きベクトル・プレディクタである。
【０５５５】
７．動きベクトルの再構成
１ＭＶマクロブロックの場合も４ＭＶマクロブロックの場合も、ルミナンス動きベクトルは、次のように差分をプレディクタに加算することによって再構成される。  
ｍｖ＿ｘ＝（ｄｍｖ＿ｘ＋ｐｒｅｄｉｃｔｏｒ＿ｘ）ｓｍｏｄ  ｒａｎｇｅ＿ｘ  
ｍｖ＿ｙ＝（ｄｍｖ＿ｙ＋ｐｒｅｄｉｃｔｏｒ＿ｙ）ｓｍｏｄ  ｒａｎｇｅ＿ｙ  
ここでし、変数ｒａｎｇｅ＿ｘおよびｒａｎｇｅ＿ｙはＭＶＲＡＮＧＥ（５７３３）に依存し、図５８Ｂに示すテーブルで指定される。演算「ｓｍｏｄ」は、次のように定義される符号付きモジュラス（signed modulus）である。  
Ａ  ｓｍｏｄ  ｂ＝（（Ａ＋ｂ）％２ｂ）−ｂ  
これによって、再構成されたベクトルが有効であることが保証される。（Ａ  ｓｍｏｄ  ｂ）は、−ｂ〜ｂ−１の範囲に収まる。
【０５５６】
１ＭＶマクロブロックには、マクロブロックのルミナンス成分を構成する４つのブロックに対して１つの動きベクトルが存在する。マクロブロックがイントラ符号化されていることをｄｍｖ＿ｘが示している場合は、そのマクロブロックに関連付けられた動きベクトルが存在しない。マクロブロックがスキップされていれば、ｄｍｖ＿ｘ＝０およびｄｍｖ＿ｙ＝０であるので、ｍｖ＿ｘ＝ｐｒｅｄｉｃｔｏｒ＿ｘおよびｍｖ＿ｙ＝ｐｒｅｄｉｃｔｏｒ＿ｙである。
【０５５７】
４ＭＶマクロブロックでは、マクロブロック内のインター符号化されたルミナンス・ブロックのそれぞれが、それぞれの動きベクトルを有する。したがって、各４ＭＶマクロブロックには０〜４つのルミナンス動きベクトルが存在する。４ＭＶマクロブロックにおいて符号化されていないブロックが発生しうるのは、（１）マクロブロックがスキップされ、マクロブロックが４ＭＶである場合（この場合はマクロブロック内のすべてのブロックがスキップされる）、または（２）ブロックが符号化されていないことを、マクロブロックのＣＢＰＣＹ（５７６２）が示している場合である。ブロックが符号化されていない場合は、ｄｍｖ＿ｘ＝０およびｄｍｖ＿ｙ＝０であるので、ｍｖ＿ｘ＝ｐｒｅｄｉｃｔｏｒ＿ｘおよびｍｖ＿ｙ＝ｐｒｅｄｉｃｔｏｒ＿ｙである。
【０５５８】
８．クロマ動きベクトルの導出
クロマ動きベクトルは、ルミナンス動きベクトルから導出される。さらに、４ＭＶマクロブロックの場合は、クロマ・ブロックをインター符号化するかイントラ符号化するかの決定が、ルミナンス・ブロックのステータスに基づいて行われる。クロマ動きベクトルは、２つのステップで再構成される。第１のステップでは、ルミナンス動きベクトルを適切に組み合わせ、スケーリングすることによって、名目上のクロマ動きベクトルを取得する。スケーリングは、１／４画素オフセットより１／２画素オフセットが優先されるように行われる。第２のステップでは、シーケンス・レベルの１ビット・フィールドのＦＡＳＴＵＶＭＣフィールドを用いて、クロマ動きベクトルのさらなる丸めが必要かどうかを決定する。ＦＡＳＴＵＶＭＣ＝０であれば、第２のステップで丸めを行わない。ＦＡＳＴＵＶＭＣ＝１であれば、１／４画素オフセットにあるクロマ動きベクトルを、最も近いフル画素位置に丸める。さらに、ＦＡＳＴＵＶＭＣ＝１の場合は、双線形フィルタリングだけをすべてのクロマ補間に用いる。
【０５５９】
１ＭＶマクロブロックでは、クロマ動きベクトルは、以下のように、ルミナンス動きベクトルから導出される。  
／／ｓ＿ＲｎｄＴｂｌ［０］＝０，ｓ＿ＲｎｄＴｂｌ［１］＝０，ｓ＿ＲｎｄＴｂｌ［２］＝０，ｓ＿ＲｎｄＴｂｌ［３］＝１  
ｃｍｖ＿ｘ＝（ｌｍｖ＿ｘ＋ｓ＿ＲｎｄＴｂｌ［ｌｍｖ＿ｘ  ＆  ３］）＞＞１  
ｃｍｖ＿ｙ＝（ｌｍｖ＿ｙ＋ｓ＿ＲｎｄＴｂｌ［ｌｍｖ＿ｙ  ＆  ３］）＞＞１
【０５６０】
図１６Ｂの擬似コードは、以下に示す変数を用いて、４ＭＶマクロブロックの４つのルミナンス・ブロックの動き情報からクロマ動きベクトルを導出する第１のステップの様子を示している。４ＭＶマクロブロックの最大４つのルミナンス動きベクトルの中での優勢極性が決定され、その優勢極性を有するルミナンス動きベクトルからクロマ動きベクトルが決定される（その他の極性のルミナンス動きベクトルからではない）。
【０５６１】
９．輝度補償
参照フィールドに輝度補償が用いられている場合は、参照フィールド内の画素が、プレディクタとして用いられる前に再マッピングされる。輝度補償が用いられている場合は、ピクチャ・ビットストリーム内にＬＵＭＳＣＡＬＥ（５７３８）およびＬＵＭＳＨＩＦＴ（５７３９）が存在する。図１８または図５６の擬似コードは、参照フィールドの画素を再マッピングするためにＬＵＭＳＣＡＬＥ（５７３８）およびＬＵＭＳＨＩＦＴ（５７３９）が用いられる様子を示している。次のように、参照のＹ成分がＬＵＴＹ［］テーブルを用いて再マッピングされ、Ｕ成分およびＶ成分がＬＵＴＵＶ［］テーブルを用いて再マッピングされる。
【０５６２】
【数１７】
2011101416.tif 000021
【０５６３】
ここで、ｐYは、参照フィールド内のオリジナルのルミナンス画素値であり、
【０５６４】
【数１８】
2011101416.tif 000022
【０５６５】
は、参照フィールド内の再マッピングされたルミナンス画素値であり、ｐUVは、参照フィールド内のオリジナルのＵまたはＶの画素値であり、
【０５６６】
【数１９】
2011101416.tif 000023
【０５６７】
は、参照フィールド内の再マッピングされたＵまたはＶの画素値である。
【０５６８】
１０．残りの復号
復号器は、マクロブロックのＣＢＰＣＹ（５７６２）要素が存在する場合にはこれを復号する。ＣＢＰＣＹ（５７６２）要素は、係数データの存在／不在を示す。復号器は、ブロック・レイヤにおいて、インター符号化されたブロックおよびイントラ符号化されたブロックの係数データを復号する。復号器は、インター符号化されたブロックを再構成するために、（１）変換タイプ（８×８、８×４、４×８、または４×４）を選択し、（２）サブブロック・パターンを復号し、（３）係数を復号し、（４）逆変換を実行し、（５）逆量子化を実行し、（６）そのブロックの予測を取得し、（７）その予測と誤差ブロックとを加算する。
【０５６９】
様々な実施形態に関連して本発明の原理を説明および図示してきたが、これらの様々な実施形態は、本発明の原理から逸脱することなく、構成および細部を改変することが可能であることを認識されよう。本明細書に記載のプログラム、処理、または方法は、特に断らない限り、何ら特定タイプのコンピューティング環境に関連するものでも限定されるものでもないことを理解されたい。様々なタイプの汎用または専用コンピューティング環境を本明細書に記載の教示に従う操作に用いることが可能であり、あるいは、それらの環境を用いて、本明細書に記載の教示に従う操作を実行することが可能である。ソフトウェアの形で示した、実施形態の要素をハードウェアの形で実装することも、ハードウェアの形で示した、実施形態の要素をソフトウェアの形で実装することも可能である。
【０５７０】
本発明の原理を適用しうる、多くの可能な実施形態を考慮して、特許請求項ならびにその均等物の範囲および趣旨に含まれうるすべての実施形態を本発明として特許請求するものとする。
【符号の説明】
【０５７１】
１１０  予測フレーム
１１５  マクロブロック
１３０  参照フレーム
１３５  サーチ領域
２６５  １次元配列
２７５  テーブル
３１５  テーブル
３２５  １次元配列
３４５  再構成された誤差ブロック
３７０  結合
４００  インターレース・ビデオ・フレーム
１９３０  最も基本的な構成
２０００  一般化されたビデオ符号化器システム
２０１５  動き情報
２０３５  動き補償された、現在のピクチャ
２１００  一般化されたビデオ復号器システム
２１１５  動き情報
２２００  マクロブロック
２３００  インターレース・ビデオ・フレーム
２３３０  フレーム
２３６０  フィールド
２３６１  マクロブロック
２３６２  マクロブロック
２５００  手法
２５５０  手法
２８００  手法
２８５０  手法
３１００  手法
３１５０  手法
３３００  手法
３３５０  手法
３５００  手法
３５５０  手法
３７００  手法
３７５０  手法
４１００  手法
４２００  符号化器フレームワーク
４３００  復号器フレームワーク
４５００  手法
４５５０  手法
【図１】
2011101416.tif 000024
【図２】
2011101416.tif 000025
【図３】
2011101416.tif 000026
【図４】
2011101416.tif 000027
【図５Ａ】
2011101416.tif 000028
【図５Ｂ】
2011101416.tif 000029
【図６Ａ】
2011101416.tif 000030
【図６Ｂ】
2011101416.tif 000031
【図７Ａ】
2011101416.tif 000032
【図７Ｂ】
2011101416.tif 000033
【図８Ａ】
2011101416.tif 000034
【図８Ｂ】
2011101416.tif 000035
【図９】
2011101416.tif 000036
【図１０】
2011101416.tif 000037
【図１１】
2011101416.tif 000038
【図１２Ａ】
2011101416.tif 000039
【図１２Ｂ】
2011101416.tif 000040
【図１３Ａ】
2011101416.tif 000041
【図１３Ｂ】
2011101416.tif 000042
【図１３Ｃ】
2011101416.tif 000043
【図１４Ａ】
2011101416.tif 000044
【図１４Ｂ】
2011101416.tif 000045
【図１５Ａ】
2011101416.tif 000046
【図１５Ｂ】
2011101416.tif 000047
【図１５Ｃ】
2011101416.tif 000048
【図１６Ａ】
2011101416.tif 000049
【図１６Ｂ】
2011101416.tif 000050
【図１６Ｃ】
2011101416.tif 000051
【図１７】
2011101416.tif 000052
【図１８】
2011101416.tif 000053
【図１９】
2011101416.tif 000054
【図２０】
2011101416.tif 000055
【図２１】
2011101416.tif 000056
【図２２】
2011101416.tif 000057
【図２３Ａ】
2011101416.tif 000058
【図２３Ｂ】
2011101416.tif 000059
【図２３Ｃ】
2011101416.tif 000060
【図２４Ａ】
2011101416.tif 000061
【図２４Ｂ】
2011101416.tif 000062
【図２４Ｃ】
2011101416.tif 000063
【図２４Ｄ】
2011101416.tif 000064
【図２４Ｅ】
2011101416.tif 000065
【図２４Ｆ】
2011101416.tif 000066
【図２５Ａ】
2011101416.tif 000067
【図２５Ｂ】
2011101416.tif 000068
【図２６】
2011101416.tif 000069
【図２７】
2011101416.tif 000070
【図２８Ａ】
2011101416.tif 000071
【図２８Ｂ】
2011101416.tif 000072
【図２９】
2011101416.tif 000073
【図３０】
2011101416.tif 000074
【図３１Ａ】
2011101416.tif 000075
【図３１Ｂ】
2011101416.tif 000076
【図３２】
2011101416.tif 000077
【図３３Ａ】
2011101416.tif 000078
【図３３Ｂ】
2011101416.tif 000079
【図３４】
2011101416.tif 000080
【図３５Ａ】
2011101416.tif 000081
【図３５Ｂ】
2011101416.tif 000082
【図３６】
2011101416.tif 000083
【図３７Ａ】
2011101416.tif 000084
【図３７Ｂ】
2011101416.tif 000085
【図３８】
2011101416.tif 000086
【図３９】
2011101416.tif 000087
【図４０】
2011101416.tif 000088
【図４１】
2011101416.tif 000089
【図４２】
2011101416.tif 000090
【図４３】
2011101416.tif 000091
【図４４】
2011101416.tif 000092
【図４５Ａ】
2011101416.tif 000093
【図４５Ｂ】
2011101416.tif 000094
【図４６Ａ】
2011101416.tif 000095
【図４６Ｂ】
2011101416.tif 000096
【図４６Ｃ】
2011101416.tif 000097
【図４６Ｄ】
2011101416.tif 000098
【図４６Ｅ】
2011101416.tif 000099
【図４７Ａ】
2011101416.tif 000100
【図４７Ｂ】
2011101416.tif 000101
【図４７Ｃ】
2011101416.tif 000102
【図４７Ｄ】
2011101416.tif 000103
【図４７Ｅ】
2011101416.tif 000104
【図４７Ｆ】
2011101416.tif 000105
【図４７Ｇ】
2011101416.tif 000106
【図４７Ｈ】
2011101416.tif 000107
【図４７Ｉ】
2011101416.tif 000108
【図４７Ｊ】
2011101416.tif 000109
【図４７Ｋ】
2011101416.tif 000110
【図４８】
2011101416.tif 000111
【図４９Ａ】
2011101416.tif 000112
【図４９Ｂ】
2011101416.tif 000113
【図５０】
2011101416.tif 000114
【図５１Ａ】
2011101416.tif 000115
【図５１Ｂ】
2011101416.tif 000116
【図５２Ａ】
2011101416.tif 000117
【図５２Ｂ】
2011101416.tif 000118
【図５２Ｃ】
2011101416.tif 000119
【図５２Ｄ】
2011101416.tif 000120
【図５２Ｅ】
2011101416.tif 000121
【図５２Ｆ】
2011101416.tif 000122
【図５２Ｇ】
2011101416.tif 000123
【図５２Ｈ】
2011101416.tif 000124
【図５２Ｉ】
2011101416.tif 000125
【図５２Ｊ】
2011101416.tif 000126
【図５２Ｋ】
2011101416.tif 000127
【図５２Ｌ】
2011101416.tif 000128
【図５２Ｍ】
2011101416.tif 000129
【図５２Ｎ】
2011101416.tif 000130
【図５３】
2011101416.tif 000131
【図５４】
2011101416.tif 000132
【図５５Ａ】
2011101416.tif 000133
【図５５Ｂ】
2011101416.tif 000134
【図５６】
2011101416.tif 000135
【図５７Ａ】
2011101416.tif 000136
【図５７Ｂ】
2011101416.tif 000137
【図５７Ｃ】
2011101416.tif 000138
【図５８Ａ】
2011101416.tif 000139
【図５８Ｂ】
2011101416.tif 000140
【図５９】
2011101416.tif 000141
【図６０Ａ】
2011101416.tif 000142
【図６０Ｂ】
2011101416.tif 000143
【図６１Ａ】
2011101416.tif 000144
【図６１Ｂ】
2011101416.tif 000145
【図６１Ｃ】
2011101416.tif 000146
【図６１Ｄ】
2011101416.tif 000147
【図６１Ｅ】
2011101416.tif 000148
【図６１Ｆ】
2011101416.tif 000149