(57)【要約】【課題】様々なモデルおよび／またはモードを利用して、特に大きい／複雑な動きシーケンスに関するコーディング効率を著しく改善するビデオコーディング方法および装置を提供する。【解決手段】動き情報に基づいて、基準フレームのその一部に予測的に相関するビデオデータを含む、少なくとも１つの予測可能フレームの少なくとも一部を定義し、および対応する動き情報を含めないが、基準フレームのその一部に関連する動き情報を使用して予測可能フレームのその一部を直接導出することができることを識別するモード識別データを含めて、予測可能フレームの少なくとも一部を符号化する。【選択図】図３
2010119146.tif 000002
【特許請求の範囲】
【請求項１】
ビデオを符号化する方法であって、
ビデオエンコーダで、ビデオの現在の予測（Ｐ）フレームを符号化して、ビットストリーム内の符号化されたビデオを生成するステップであって、
前記現在のＰフレームについて可能な複数のマクロブロックモードから、マクロブロックモードを選択するステップであって、前記複数のマクロブロックモードが、
前記現在のＰフレームの現在のマクロブロックが、動きベクトル情報を使用しないで参照フレームに関して符号化される第一のＩＮＴＥＲモードと、
前記現在のマクロブロックが、前記ビットストリーム内で符号化される動きベクトル情報を使用して前記参照フレームに関して動き補償で符号化される第二のＩＮＴＥＲモードであって、該第二のＩＮＴＥＲモードにより、前記現在のマクロブロックの前記動きベクトル情報が、差分動きベクトル情報として前記ビットストリーム内で符号化される第二のＩＮＴＥＲモードと、
前記現在のマクロブロックが、前記ビットストリーム内で符号化されない予測動きベクトル情報を使用して前記参照フレームに関して動き補償で符号化される第三のＩＮＴＥＲモードとを含むステップと、
前記選択されたマクロブロックモードにより、前記現在のマクロブロックを符号化するステップと、
前記ビデオエンコーダから、前記ビットストリーム内の前記符号化されたビデオを出力するステップと
を含むステップを備えることを特徴とする方法。
【請求項２】
前記現在のＰフレームについて可能な前記複数のマクロブロックモードが、ＩＮＴＲＡモードをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第二のＩＮＴＥＲモードにより、前記現在のマクロブロックの前記動きベクトル情報を符号化することが、
前記現在のマクロブロックの前記動きベクトル情報を予測するステップと、
前記現在のマクロブロックの前記動きベクトル情報と前記予測動きベクトル情報との違いに基いて、前記現在のマクロブロックの前記差分動きベクトル情報を決定するステップと、
前記現在のマクロブロックの前記差分動きベクトル情報をエントロピーコーディングするステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記参照フレームが、前記現在のＰフレームの複数の参照フレームのうちの第一の参照フレームであり、前記現在のＰフレームについて可能な前記複数のマクロブロックモードは、前記現在のマクロブロックが動きベクトル情報を使用しないで第二の参照フレームに関して符号化される第四のＩＮＴＥＲモードであって、前記第二の参照フレームは前記第一の参照フレームとは異なる第四のＩＮＴＥＲモードをさらに含むことを特徴とする請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記第三のＩＮＴＥＲモードにより、前記現在のマクロブロックの前記予測動きベクトル情報が、前記現在のＰフレーム内の１つまたは複数の周囲のマクロブロックの動きベクトル情報から決定されることを特徴とする請求項１乃至３のいずれかに記載の方法。
【請求項６】
前記現在のＰフレームについて可能な前記複数のマクロブロックモードは、前記現在のマクロブロックが前記ビットストリーム内で符号化されない予測動きベクトル情報を使用して前記参照フレームに関して動き補償で符号化される第四のＩＮＴＥＲモードをさらに含み、該第四のＩＮＴＥＲモードの前記予測動きベクトル情報は、前記第三のＩＮＴＥＲモードの前記予測動きベクトル情報とは異なることを特徴とする請求項５に記載の方法。
【請求項７】
前記現在のＰフレームについて可能な前記複数のマクロブロックモードは、前記現在のマクロブロックが第四のブロックとして、該第四のブロックの動きベクトル情報を使用して前記参照フレームに関して動き補償で符号化される第五のＩＮＴＥＲモードをさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記現在のＰフレームについて可能な前記複数のマクロブロックモードの少なくとも一部において、複数の参照フレームが前記Ｐフレームに利用可能であることを特徴とする請求項１乃至３のいずれかに記載の方法。
【請求項９】
前記ビットストリーム内の前記符号化されたビデオは、前記選択されたマクロブロックモードを示すマクロブロックモード情報を含むことを特徴とする請求項１乃至３のいずれかに記載の方法。
【請求項１０】
前記現在のマクロブロックを符号化するステップは、
前記現在のマクロブロックの剰余情報を決定するステップと、
前記現在のマクロブロックの前記剰余情報を符号化するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
ビデオを復号化する方法であって、
ビットストリーム内の符号化されたビデオを受け取るステップと、
ビデオデコーダで、前記符号化されたビデオを使用して現在の予測（Ｐ）フレームを復号化するステップであって、
前記現在のＰフレームについて可能な複数のマクロブロックモードから、マクロブロックモードを選択するステップであって、前記複数のマクロブロックモードが、
前記現在のＰフレームの現在のマクロブロックが、動きベクトル情報を使用しないで参照フレームに関して復号化される第一のＩＮＴＥＲモードと、
前記現在のマクロブロックが、前記ビットストリームから復号化される動きベクトル情報を使用して前記参照フレームに関して動き補償で復号化される第二のＩＮＴＥＲモードであって、該第二のＩＮＴＥＲモードにより、前記現在のマクロブロックの前記動きベクトル情報が、差分動きベクトル情報として前記ビットストリームから復号化される第二のＩＮＴＥＲモードと、
前記現在のマクロブロックが、前記ビットストリームから復号化されない予測動きベクトル情報を使用して前記参照フレームに関して動き補償で復号化される第三のＩＮＴＥＲモードとを含むステップと、
前記選択されたマクロブロックモードにより前記現在のマクロブロックを復号化するステップとを含むステップと
を備えることを特徴とする方法。
【請求項１２】
前記現在のＰフレームについて可能な前記複数のマクロブロックモードが、ＩＮＴＲＡモードをさらに含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記第二のＩＮＴＥＲモードにより、前記現在のマクロブロックの前記動きベクトル情報を復号化することが、
前記現在のマクロブロックの前記動きベクトル情報を予測するステップと、
前記現在のマクロブロックの前記差分動きベクトル情報をエントロピーデコーディングするステップと、
前記現在のマクロブロックの前記差分動きベクトル情報を前記現在のマクロブロックの前記予測動きベクトル情報と組み合わせるステップと
を含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記参照フレームが、前記現在のＰフレームの複数の参照フレームのうちの第一の参照フレームであり、前記現在のＰフレームについて可能な前記複数のマクロブロックモードは、前記現在のマクロブロックが動きベクトル情報を使用しないで第二の参照フレームに関して復号化される第四のＩＮＴＥＲモードであって、前記第二の参照フレームは前記第一の参照フレームとは異なる第四のＩＮＴＥＲモードをさらに含むことを特徴とする請求項１１乃至１３のいずれかに記載の方法。
【請求項１５】
前記第三のＩＮＴＥＲモードにより、前記現在のマクロブロックの前記予測動きベクトル情報が、前記現在のＰフレーム内の１つまたは複数の周囲のマクロブロックの動きベクトル情報から決定されることを特徴とする請求項１１乃至１３のいずれかに記載の方法。
【請求項１６】
前記現在のＰフレームについて可能な前記複数のマクロブロックモードは、前記現在のマクロブロックが前記ビットストリームから復号化されない予測動きベクトル情報を使用して前記参照フレームに関して動き補償で復号化される第四のＩＮＴＥＲモードをさらに含み、該第四のＩＮＴＥＲモードの前記予測動きベクトル情報は、前記第三のＩＮＴＥＲモードの前記予測動きベクトル情報とは異なることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記現在のＰフレームについて可能な前記複数のマクロブロックモードは、前記現在のマクロブロックが第四のブロックとして、該第四のブロックの動きベクトル情報を使用して前記参照フレームに関して動き補償で復号化される第五のＩＮＴＥＲモードをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記現在のＰフレームについて可能な前記複数のマクロブロックモードの少なくとも一部において、複数の参照フレームが前記Ｐフレームに利用可能であることを特徴とする請求項１１乃至１３のいずれかに記載の方法。
【請求項１９】
前記ビットストリーム内の前記符号化されたビデオは、前記選択されたマクロブロックモードを示すマクロブロックモード情報を含むことを特徴とする請求項１１乃至１３のいずれかに記載の方法。
【請求項２０】
前記現在のマクロブロックを復号化するステップは、前記現在のマクロブロックの剰余情報を復号化するステップをさらに含むことを特徴とする請求項１１に記載の方法。
【請求項２１】
プロセッサ、メモリ、および、コンピュータ実行可能命令を格納する記憶装置を備えるビデオエンコーダであって、前記コンピュータ実行可能命令が実行されると実施される方法が、
ビデオの現在の予測（Ｐ）フレームを符号化して、ビットストリーム内の符号化されたビデオを生成するステップであって、
前記現在のＰフレームについて可能な複数のマクロブロックモードから、マクロブロックモードを選択するステップであって、前記複数のマクロブロックモードが、
前記現在のＰフレームの現在のマクロブロックが、動きベクトル情報を使用しないで参照フレームに関して符号化される第一のＩＮＴＥＲモードと、
前記現在のマクロブロックが、前記ビットストリーム内で符号化される動きベクトル情報を使用して前記参照フレームに関して動き補償で符号化される第二のＩＮＴＥＲモードと、
前記現在のマクロブロックが、前記ビットストリーム内で符号化されない予測動きベクトル情報を使用して前記参照フレームに関して動き補償で符号化される第三のＩＮＴＥＲモードであって、該第三のＩＮＴＥＲモードにより、前記現在のマクロブロックの前記予測動きベクトル情報が、前記現在のＰフレーム内の１つまたは複数の周囲のマクロブロックの動きベクトル情報から決定される第三のＩＮＴＥＲモードと、
前記現在のマクロブロックが、前記ビットストリーム内で符号化されない予測動きベクトル情報を使用して前記参照フレームに関して動き補償で符号化される第四のＩＮＴＥＲモードであって、該第四のＩＮＴＥＲモードの前記予測動きベクトル情報は前記第三の前記予測動きベクトル情報とは異なる第四のＩＮＴＥＲモードとを含むステップと、
前記選択されたマクロブロックモードにより、前記現在のマクロブロックを符号化するステップと、
前記ビットストリーム内の前記符号化されたビデオを出力するステップと
を含むステップを備えることを特徴とするビデオエンコーダ。
【請求項２２】
プロセッサ、メモリ、および、コンピュータ実行可能命令を格納する記憶装置を備えるビデオデコーダであって、前記コンピュータ実行可能命令が実行されると実施される方法が、
ビットストリーム内の符号化されたビデオを受け取るステップと、
前記符号化されたビデオを使用して現在の予測（Ｐ）フレームを復号化するステップであって、
前記現在のＰフレームについて可能な複数のマクロブロックモードから、マクロブロックモードを選択するステップであって、前記複数のマクロブロックモードが、
前記現在のＰフレームの現在のマクロブロックが、動きベクトル情報を使用しないで参照フレームに関して復号化される第一のＩＮＴＥＲモードと、
前記現在のマクロブロックが、前記ビットストリームから復号化される動きベクトル情報を使用して前記参照フレームに関して動き補償で復号化される第二のＩＮＴＥＲモードと、
前記現在のマクロブロックが、前記ビットストリームから復号化されない予測動きベクトル情報を使用して前記参照フレームに関して動き補償で復号化される第三のＩＮＴＥＲモードであって、該第三のＩＮＴＥＲモードにより、前記現在のマクロブロックの前記予測動きベクトル情報が、前記現在のＰフレーム内の１つまたは複数の周囲のマクロブロックの動きベクトル情報から決定される第三のＩＮＴＥＲモードと、
前記現在のマクロブロックが、前記ビットストリームから復号化されない予測動きベクトル情報を使用して前記参照フレームに関して動き補償で復号化される第四のＩＮＴＥＲモードであって、該第四のＩＮＴＥＲモードの前記予測動きベクトル情報は、前記第三のＩＮＴＥＲモードの前記予測動きベクトル情報とは異なる第四のＩＮＴＥＲモードとを含むステップと、
前記選択されたマクロブロックモードにより前記現在のマクロブロックを復号化するステップとを含むステップと
を備えることを特徴とするビデオデコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビデオコーディングに関し、より詳細には、様々なタイプのビデオデータに関連する、改良型のコーディング技法および／または予測技法を提供する方法および装置に関する。
【背景技術】
【０００２】
ビデオコーディングにおけるコーディング効率を改善しようとする動機付けにより、所与のマクロブロックに関する動き情報を記述する、改良型のより複雑なモデルおよびモードが、ジョイントビデオチーム（ＪＶＴ）（規格団体）で採用された。このモデルおよびモードは、ビデオシーケンス内に存在する可能性のある時間的冗長度をより良好に活用する傾向がある（例えば、非特許文献１および／または非特許文献２参照。）。
【０００３】
近年のモデルには、例えば動きベクトルのマルチフレームインデキシング（ｍｕｌｔｉ−ｆｒａｍｅ  ｉｎｄｅｘｉｎｇ）、サブピクセル精度の向上、マルチリファレンシング、ならびに木構造マクロブロックおよび動き割当てが含まれる。木構造マクロブロックおよび動き割当てによれば、マクロブロックの異なるサブエリアが異なる動き情報に割り当てられる。遺憾ながら、これらのモデルは、シーケンス内の動き情報の符号化に必要なビットの割合も著しく増大させる傾向がある。したがってある場合には、これらのモデルは、このようなコーディング方法の効率を低下させる傾向がある。
【０００４】
ある場合には、動きベクトルが空間予測子に対して差分式に符号化され、さらには動きゼロの場合には剰余イメージが送られないと同時に動きベクトルがスキップされるとしても、このことは効率を改善するのに十分とは思われない。
【０００５】
したがって、動き情報、すなわちシーケンス全体を符号化するために必要なビットをさらに削減すると同時に、品質に著しく影響を及ぼさないことが有利である。
【０００６】
このようなモデルおよびモードの採用によってやはり導入される別の問題は、例えば目標ビットレート、符号化／量子化パラメータなどを仮定して、すべての可能な選択肢の中から最良のモードを決定する問題である。現在、この問題は、使用するモードおよび／または量子化に応じてコスト指標／ペナルティを使用することによって、さらにはレートひずみ最適化技法を、ラグランジュの関数を最小化する目標と共に使用することによって部分的に解決することができる。
【０００７】
しかし、このような問題や他の問題は、将来および過去のフレームのどちらからでもマクロブロックを予測することができる双方向予測（Ｂ）フレームの場合に一層顕著になる。このことは本質的に、動きベクトルの符号化のために、ビットの割合をさらに多くする必要のある可能性があることを意味する。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】ＩＴＵ−Ｔ，  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ（ＶＣＥＧ），  “ＪＶＴ  Ｃｏｄｉｎｇ  −  （ＩＴＵ−Ｔ  Ｈ．２６Ｌ  ＆  ＩＳＯ／ＩＥＣ  ＪＴＣ１  Ｓｔａｎｄａｒｄ）  −  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  Ｎｕｍｂｅｒ  ２（ＷＤ−２）”，  ＩＴＵ−Ｔ  ＪＶＴ−Ｂ１１８，  Ｍａｒ．  ２００２
【非特許文献２】Ｈｅｉｋｏ  Ｓｃｈｗａｒｚ  ａｎｄ  Ｔｈｏｍａｓ  Ｗｉｅｇｒａｎｄ，  “Ｔｒｅｅ−ｓｔｒｕｃｔｕｒｅｄ  ｍａｃｒｏｂｌｏｃｋ  ｐａｒｔｉｔｉｏｎ”，  Ｄｏｃ．  ＶＣＥＧ−Ｎ１７，  Ｄｅｃ．  ２００１
【非特許文献３】Ｊａｎｉ  Ｌａｉｎｅｍａ  ａｎｄ  Ｍａｒｔａ  Ｋａｒｃｚｅｗｉｃｚ，  “Ｓｋｉｐ  ｍｏｄｅ  ｍｏｔｉｏｎ  ｃｏｍｐｅｎｓａｔｉｏｎ”，  Ｄｏｃ．  ＪＶＴ−Ｃ０２７，  Ｍａｙ  ２００２
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、ビデオデータをコーディング（例えば符号化および／または復号化）する際に使用する、改良型の方法および装置が求められている。
【課題を解決するための手段】
【００１０】
様々なモデルおよび／またはモードを利用して、特に大きい／複雑な動きシーケンスに関するコーディング効率を著しく改善するビデオコーディング方法および装置が提供される。この方法および装置は、フレームの一部、例えばマクロブロックレベルなどの中に存在する可能性のある時間的相関および／または空間的相関を利用する。この方法および装置は、ビデオイメージ品質を保持し、さらには改善すると共に、動き情報を符号化するのに必要なデータ量を著しく削減する傾向がある。
【００１１】
したがって、例えば本発明のある実装によれば、ビデオフレームのシーケンス内のビデオデータを符号化するのに使用する方法が提供される。この方法は、基準フレームの少なくとも一部に関連する動き情報を含めるために、基準（ｒｅｆｅｒｅｎｃｅ）フレームのその一部を符号化する。この方法は、動き情報に基づいて、基準フレームのその一部に予測的に相関するビデオデータを含む、少なくとも１つの予測可能フレームの少なくとも一部を定義し、および対応する動き情報を含めないが、基準フレームのその一部に関連する動き情報を使用して予測可能フレームのその一部を直接導出することができることを識別するモード識別データを含めて、予測可能フレームの少なくとも一部を符号化する。
【００１２】
少なくとも１つの予測可能フレームを含む複数のビデオフレーム中に、ビデオフレームのシーケンスに関するビデオデータを符号化する際に使用する装置も提供される。ここで、例えばこの装置はメモリおよび論理機構（ｌｏｇｉｃ）を含み、この論理機構は、少なくとも１つの基準フレームの少なくとも一部を符号化し、基準フレームのその一部に関連する動き情報を含めるように構成される。この論理機構はまた、動き情報に基づいて、基準フレームのその一部に予測的に相関するビデオデータを含む、少なくとも１つの予測可能フレームの少なくとも一部を決定し、かつ基準フレームのその一部に関連する動き情報を使用して予測可能フレームのその一部を導出できることを指定するためのモード識別データを提供するように予測可能フレームの少なくともその一部を符号化する。
【００１３】
さらに別の例示的実装によれば、少なくとも１つの予測可能ビデオフレームを含む符号化ビデオデータを復号化するために使用する方法が提供される。この方法は、少なくとも１つの基準フレームの少なくとも一部に関連する動き情報を決定し、その動き情報をバッファリングする。この方法はまた、バッファリングした動き情報を少なくとも使用して、予測可能フレームの少なくとも一部を直接導出できることを識別するモード識別データを決定し、バッファリングした動き情報を使用して、予測可能フレームの一部を生成する。
【００１４】
ビデオデータを復号化するための装置も提供される。この装置はメモリおよび論理機構を含み、この論理機構は、少なくとも１つの基準フレームの少なくとも一部に関連する動き情報をメモリ内にバッファリングし、バッファリングした動き情報を少なくとも使用して予測可能フレームの少なくとも一部を直接導出できることを識別するモード識別データを確認し、かつバッファリングした動き情報を使用して予測可能フレームのその一部を生成するように構成される。
【図面の簡単な説明】
【００１５】
【図１】本発明のある実装と共に使用するのに適した例示的コンピューティング環境を示すブロック図である。
【図２】本発明のある実装と共に使用するのに適した例示的な典型的装置を示すブロック図である。
【図３】本発明のある例示的実装による、Ｂフレームコーディングで使用するのに適した直接動き投影技法を示す説明図である。
【図４】本発明のある例示的実装による、ビデオフレームのシーケンス内の直接Ｐコーディング技法および直接Ｂコーディング技法を示す説明図である。
【図５】本発明のある例示的実装による、同一の動き情報を有する配列マクロブロックに関する直接動き予測を示す説明図である。
【図６】本発明のある例示的実装による、直接動き投影での加速度情報の使用を示す説明図である。
【図７】本発明のある例示的実装による、Ｂフレームコーディングで使用するのに適した直接ピクセル投影技法を示す説明図である。
【図８】本発明のある例示的実装による、Ｐフレームコーディングで使用するのに適した直接ピクセル投影技法を示す説明図である。
【図９】例示的な従来型ビデオエンコーダを示すブロック図である。
【図１０】例示的な従来型ビデオデコーダを示すブロック図である。
【図１１】本発明のある例示的実装による、直接予測を使用する例示的な改良型ビデオエンコーダを示すブロック図である。
【図１２】本発明のある例示的実装による、直接予測を使用する例示的な改良型ビデオデコーダを示すブロック図である。
【図１３】本発明のある例示的実装による直接ピクセル／ブロック投影技法を示す説明図である。
【図１４】本発明のある例示的実装による、Ｂフレームコーディングで使用するのに適した直接動き投影技法を示す説明図である。
【図１５】本発明のある例示的実装による、動きベクトル予測を示す説明図である。
【図１６】本発明のある例示的実装による、Ｐフレームに関するインターレースコーディング技法を示す説明図である。
【図１７】本発明のある例示的実装による、Ｂフレームに関するインターレースコーディング技法を示す説明図である。
【図１８】本発明のある例示的実装による、フレームおよびフィールドベースのコーディングを使用するインターレースコーディング技法を示す説明図である。
【図１９】本発明のある例示的実装による、コーディングジョイントフィールド／フレームイメージに関する方式を示す説明図である。
【発明を実施するための形態】
【００１６】
本発明を、限定的にではなく例示的に、添付の図面の各図に示す。同様の構成要素および／または機能を参照するために、各図を通して同じ符号を使用する。
【００１７】
本発明のある態様によれば、ビデオデータをコーディング（例えば符号化および／または復号化）する方法および装置が提供される。この方法および装置は、「インターレース」または漸進的ビデオコーディングストリーミング技術のコーディング効率を改善するように構成することができる。ある実装、例えば現在のＨ．２６Ｌ規格に関するある実装では、いくつかの追加のマクロブロックモードを導入することにより、いわゆる「Ｐフレーム」が著しく改善された。ある場合には、そのときマクロブロックごとに最大１６個の動きベクトルを送ることが必要となる可能性がある。本発明のある態様により、これらの動きベクトルを符号化する方法が提供される。例えば以下で説明するように、直接Ｐ予測技法を使用して、以前のフレーム中の配列ピクセル（ｃｏｌｌｏｃａｔｅｄ  ｐｉｘｅｌ）の動きベクトルを選択することができる。
【００１８】
上記や他の例示的方法および装置を説明するが、本発明の技法は、添付の図面で説明および図示される例に限定されず、他の同様の既存のビデオコーディング方式および将来のビデオコーディング方式などにも明らかに適合可能であることに留意されたい。
【００１９】
このような例示的方法および装置を紹介する前に、例えばコンピューティング装置や他のタイプの装置／電気器具の形態の、適切な例示的オペレーティング環境に関する概要を次節で与える。
【００２０】
例示的動作環境
各図面を参照すると、同じ参照符号は同じ要素を指しており、本発明が適切なコンピューティング環境で実装されるものとして示されている。必須ではないが、パーソナルコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的状況で本発明を説明する。
【００２１】
一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの消費者向け電子機器またはプログラム可能消費者向け電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、ポータブル通信装置などを含む他のコンピュータシステム構成を用いて本発明を実施できることを当業者は理解されよう。
【００２２】
本発明は、通信ネットワークを介してリンクされるリモート処理装置によってタスクが実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリ記憶装置とリモートメモリ記憶装置のどちらにも位置することができる。
【００２３】
図１に、後で説明するシステム、装置、および方法を実施することができる適切なコンピューティング環境１２０の例を示す。例示的コンピューティング環境１２０は、適切なコンピューティング環境の一例に過ぎず、本明細書で説明する改良型の方法およびシステムの使用範囲および機能範囲に関して何らかの制限を提案するものではない。コンピューティング環境１２０に図示する構成要素のうちのいずれか１つ、あるいはそれらの組合せに関係する何らかの依存関係または要件をコンピューティング環境１２０が有するものと解釈すべきでもない。
【００２４】
本明細書の改良型の方法およびシステムは、他の多数の汎用コンピューティングシステム環境または構成、あるいは他の多数の特殊目的コンピューティングシステム環境または構成で動作可能である。適切な周知のコンピューティングシステム、環境、および／または構成の例には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、薄型クライアント、厚型クライアント、ハンドヘルド装置またはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能消費者向け電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、ならびに上記のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
【００２５】
図１に示すように、コンピューティング環境１２０は、コンピュータ１３０の形態の汎用コンピューティング装置を含む。コンピュータ１３０の構成要素は、１つまたは複数のプロセッサまたは処理装置１３２と、システムメモリ１３４と、システムメモリ１３４を含む様々なシステム構成要素をプロセッサ１３２に結合するバス１３６とを含むことができる。
【００２６】
バス１３６は、メモリバスまたはメモリコントローラと、周辺バスと、アクセラレーテッドグラフィックスポートと、様々なバスアーキテクチャのうちのいずれかを用いるプロセッサバスまたはローカルバスとを含むいくつかのタイプのバス構造のうちのいずれか１つまたは複数を表す。例えば、限定はしないが、このようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも呼ばれるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【００２７】
コンピュータ１３０は、一般に様々なコンピュータ可読媒体を含む。このような媒体は、コンピュータ１３０がアクセス可能な入手可能などんな媒体でもよく、揮発性媒体と不揮発性媒体の両方、取外し可能媒体と取外し不能媒体の両方が含まれる。
【００２８】
図１では、システムメモリ１３４は、ランダムアクセスメモリ（ＲＡＭ）１４０などの揮発性メモリの形態のコンピュータ可読媒体、および／または読取り専用メモリ（ＲＯＭ）１３８などの不揮発性メモリの形態のコンピュータ可読媒体を含む。起動時などにコンピュータ１３０内の要素間で情報を転送する助けとなる基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１４２は、ＲＯＭ  １３８内に格納される。ＲＡＭ  １４０は一般に、直ちにプロセッサ１３２がアクセス可能であり、かつ／またはプロセッサ１３２が現在操作しているデータおよび／またはプログラムモジュールを含む。
【００２９】
コンピュータ１３０は、他の取外し可能／取外し不能な、揮発性／不揮発性コンピュータ記憶媒体をさらに含むことができる。例えば、図１に、取外し不能不揮発性磁気媒体（図示せず。一般には「ハードドライブ」と呼ばれる。）を読み書きするためのハードディスクドライブ１４４と、取外し可能不揮発性磁気ディスク１４８（例えば「フロッピー（登録商標）ディスク」）を読み書きするための磁気ディスクドライブ１４６と、ＣＤ−ＲＯＭ／Ｒ／ＲＷ、ＤＶＤ−ＲＯＭ／Ｒ／ＲＷ／＋Ｒ／ＲＡＭ、または他の光媒体などの取外し可能不揮発性光ディスク１５２を読み書きするための光ディスクドライブ１５０とを示す。ハードディスクドライブ１４４、磁気ディスクドライブ１４６、および光ディスクドライブ１５０はそれぞれ、１つまたは複数のインターフェース１５４によってバス１３６に接続される。
【００３０】
ドライブと、関連するコンピュータ可読媒体により、コンピュータ１３０に対するコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶が実現される。本明細書で説明する例示的環境ではハードディスク、取外し可能磁気ディスク１４８、および取外し可能光ディスク１５２を利用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）などの、コンピュータがアクセス可能な、データを格納することができる他のタイプのコンピュータ可読媒体もこの例示的動作環境で使用できることを当業者は理解されたい。
【００３１】
例えばオペレーティングシステム１５８、１つまたは複数のアプリケーションプログラム１６０、他のプログラムモジュール１６２、およびプログラムデータ１６４を含むいくつかのプログラムモジュールは、ハードディスク、磁気ディスク１４８、光ディスク１５２、ＲＯＭ  １３８、またはＲＡＭ  １４０上に格納することができる。
【００３２】
本明細書で説明する改良型の方法およびシステムは、オペレーティングシステム１５８、１つまたは複数のアプリケーションプログラム１６０、他のプログラムモジュール１６２、および／またはプログラムデータ１６４内に実装することができる。
【００３３】
ユーザは、キーボード１６６およびポインティングデバイス１６８（「マウス」など）などの入力装置を介して、コンピュータ１３０にコマンドおよび情報を与えることができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、シリアルポート、スキャナ、カメラなどを含めることができる。これらの入力装置や他の入力装置は、バス１３６に結合されるユーザ入力インターフェース１７０を介して処理装置１３２に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェース構造およびバス構造で接続することもできる。
【００３４】
モニタ１７２または他のタイプのディスプレイ装置もまた、ビデオアダプタ１７４などのインターフェースを介してバス１３６に接続される。モニタ１７２に加えて、パーソナルコンピュータは一般に、スピーカおよびプリンタなどの他の周辺出力装置（図示せず）を含む。これらは、出力周辺インターフェース１７５を介して接続することができる。
【００３５】
コンピュータ１３０は、リモートコンピュータ１８２などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク環境で動作することができる。リモートコンピュータ１８２は、コンピュータ１３０に関して本明細書で説明する要素および機能のうちの多く、またはすべてを含むことができる。
【００３６】
図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７７および汎用ワイドエリアネットワーク（ＷＡＮ）１７９である。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的なものである。
【００３７】
ＬＡＮネットワーキング環境で使用するとき、コンピュータ１３０は、ネットワークインターフェースまたはアダプタ１８６を介してＬＡＮ  １７７に接続される。ＷＡＮネットワーキング環境で使用するとき、コンピュータは一般に、モデム１７８、またはＷＡＮ  １７９を介して通信を確立する他の手段を含む。モデム１７８は内蔵でも外付けでもよく、ユーザ入力インターフェース１７０または他の適切な機構を介してシステムバス１３６に接続することができる。
【００３８】
図１には、インターネットを介するＷＡＮの特定の実装を図示する。この場合、コンピュータ１３０は、インターネット１８０を介して少なくとも１つのリモートコンピュータ１８２との通信を確立するためにモデム１７８を利用する。
【００３９】
ネットワーク環境では、コンピュータ１３０に関係して図示したプログラムモジュール、またはその一部は、リモートメモリ記憶装置内に格納することができる。したがって、例えば図１に図示するように、リモートアプリケーションプログラム１８９は、リモートコンピュータ１８２のメモリ装置上に常駐することができる。図示し、説明したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使用できることを理解されよう。
【００４０】
次に図２に注目する。図２は、本明細書で開示される方法および装置からやはり益を得ることができる別の例示的装置２００を示すブロック図である。装置２００は、本明細書で述べる方法および装置の全部または一部とその均等物による、ビデオおよび／または関係する任意のタイプのデータを処理するように動作可能に構成された、任意の１つまたは複数の装置または電気器具を表す。したがって、装置２００は、図１のようなコンピューティング装置の形態を取ることができ、または例えばワイヤレス装置、ポータブル通信装置、携帯情報端末、ビデオプレーヤ、テレビジョン、ＤＶＤプレーヤ、ＣＤプレーヤ、カラオケマシン、キオスク、デジタルビデオプロジェクタ、フラットパネルビデオディスプレイ装置機構、セットトップボックス、ビデオゲームマシンなどの他の形態を取ることができる。この例では、装置２００は、ビデオデータを処理するように構成された論理機構２０２と、ビデオデータを論理機構２０２に供給するように構成されたビデオデータソース２０４と、ビデオデータの少なくとも一部をユーザの閲覧のために表示することができる少なくとも１つのディスプレイモジュール２０６とを含む。論理機構２０２は、ハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組合せを表す。ある実装では、例えば論理機構２０２は、圧縮器／解凍器（コーデック）などを含む。ビデオデータソース２０４は、論理機構２０２で処理するのに適したビデオデータを供給し、通信し、出力し、かつ／または少なくとも瞬間的に格納することができる任意の機構を表す。ビデオ再生ソースは、装置２００の内側および／または外側にあるように例示的に図示されている。ディスプレイモジュール２０６は、ユーザが直接または間接に閲覧することができ、提示されたビデオデータの視覚結果を見ることができる任意の機構を表す。加えて、ある実装では、装置２００はまた、ビデオデータに関連するオーディオデータを再生し、または処理する、何らかの形態または機能も含むことができる。したがって、オーディオ再生モジュール２０８が図示されている。
【００４１】
図１および２の例や、同様の他の例を念頭に置いて、次節では、このような環境や装置を用いて少なくとも部分的に実施することができる、ある例示的方法および装置に焦点を当てる。
【００４２】
ビデオコーディングにおける予測（Ｐ）フレームおよび双方向予測（Ｂ）フレームに関する直接予測
本節では、特に大きい／複雑な動きシーケンスに関するコーディング効率を著しく改善することができる、新しく非常に効率的なインターマクロブロックタイプを提示する。この新しいタイプのインターマクロブロックは、マクロブロックレベルでフレーム内に存在する可能性のある時間的相関および空間的相関を利用し、その結果、品質を保持し、さらには改善すると共に、動き情報を符号化するのに必要なビットを著しく削減することができる。
【００４３】
直接予測
前述の問題および／または他の問題は、「直接予測モード」を導入することによって、本明細書で少なくとも部分的に解決される。直接予測モードでは、実際の動き情報を符号化する代わりに、後続の基準フレームの相関マクロブロックで使用する動きベクトルから、順方向動きベクトルおよび／または逆方向動きベクトルの両方を直接導出する。
【００４４】
このことを、例えば図３に示す。図３は、３つのビデオフレーム、すなわち時間ｔ、ｔ＋１、およびｔ＋２にそれぞれ対応するＰフレーム３００、Ｂフレーム３０２、およびＰフレーム３０４を示す。図３には、フレーム３００、３０２、および３０４内のマクロブロックと、例示的動きベクトル（ＭＶ）情報も示す。ここで、各フレームは、それぞれに関連するｘ座標とｙ座標を有する。Ｂフレーム３０２に関する動きベクトル情報は、Ｐフレーム３００および３０４に関して符号化された動きベクトル情報から予測される（この場合、例えば補間される）。この例示的技法は、オブジェクトが一定の速度で移動しているという仮定から導出され、それによって、動きベクトルを送ることなくＢフレーム３０２内部のオブジェクトの現在位置を予測することが可能となる。この技法は所与の品質に関してビットレートを著しく低下させる可能性があるが、この技法は常には適用されない。
【００４５】
本発明のある実装に従って、マクロブロックレベルで、具体的にはマクロブロックの動きベクトル情報に関して存在する可能性がある空間的相関および時間的相関を効果的に利用することができる、新しいインターマクロブロックタイプが本明細書で導入される。この新しいモードによれば、現在のマクロブロックが、以前に符号化した情報から直接導出（例えば動き投影）することができる動きを有する可能性がある。したがって、図４に例示的に示すように、マクロブロック、さらには全フレームに関する動きベクトルを送る必要がないことがある。この場合、ビデオフレームのシーケンス４００が、フレーム間のコード化関係を示す実線の矢印と、予測可能マクロブロックの関係を示す破線と共に示されている。ビデオフレーム４０２はＩフレームであり、ビデオフレーム４０４、４０６、４１０、および４１２はＢフレームであり、ビデオフレーム４０８および４１４はＰフレームである。この例では、Ｐフレーム４０８が
【００４６】
【数１】
2010119146.tif 000003
【００４７】
で記述される動きフィールドを有する場合、ピクチャ４０４、４０６、および４１４内の配列マクロブロックの動きも非常に相関する。具体的には、速度がフレーム全体に関して概して一定であり、かつフレーム４０４および４０６がフレーム４０２と４０８の間に時間的に等間隔に配置されていると仮定し、さらにＢフレームに関して、順方向動きベクトルと逆方向動きベクトルを共に使用することができるとみなすと、フレーム４０４内の動きフィールドは、順方向動きフィールドおよび逆方向動きフィールドそれぞれに関して、
【００４８】
【数２】
2010119146.tif 000004
【００４９】
【数３】
2010119146.tif 000005
【００５０】
と等しくすることができる。同様に、フレーム４０８では、動きフィールドは、順方向動きフィールドおよび逆方向動きフィールドそれぞれに関して、
【００５１】
【数４】
2010119146.tif 000006
【００５２】
【数５】
2010119146.tif 000007
【００５３】
と等しくすることができる。４１４および４０６は等しい間隔で配置されているので、次いで同じ仮定を用いて、配列マクロブロックは、動きベクトル
【００５４】
【数６】
2010119146.tif 000008
【００５５】
を有することができる。
【００５６】
Ｂフレーム内の直接モードと同様に、再び速度が一定であると仮定することによって、マクロブロックに関する動きは、基準フレームの相関マクロブロックから直接導出することができる。このことを、例えば図６にさらに示す。図６は、３つのビデオフレーム、すなわち時間ｔ、ｔ＋１、およびｔ＋２にそれぞれ対応するＰフレーム６００、Ｂフレーム６０２、およびＰフレーム６０４を示す。この場合、図示する配列マクロブロックは、同一でないとしても同様の動き情報を有する。
【００５７】
このような動きパラメータを改良するために、加速度を考慮することさえ可能である。例えば、図７を参照されたい。この場合、例えば３つのフレーム、すなわち時間ｔでの現フレーム７０４、前フレーム７０２（時間ｔ−１）および７００（時間ｔ−２）が示されており、異なる加速度情報が異なる長さの動きベクトルで示されている。
【００５８】
このプロセスもまた、動き投影やマクロブロックレベルを考慮する代わりに、前イメージ内部のピクセルが場合によっては一定速度または一定加速度で移動していることを考慮に入れる（例えばピクセル投影）ことによって著しく改善することができる。したがって、例えば図８に示すように、Ｂフレームのコーディングに関する、現フレームのより非常に正確な予測を生成することができ、例えば図９に図示するように、Ｐフレームコーディングに関する、現フレームのより非常正確な予測を生成することができる。例えば図８に、３つのビデオフレーム、すなわち時間ｔ、ｔ＋１、およびｔ＋２にそれぞれ対応するＰフレーム８００、Ｂフレーム８０２、およびＰフレーム８０４を示す。例えば図９に、３つのビデオフレーム、すなわち時間ｔ、ｔ＋１、およびｔ＋２にそれぞれ対応するＰフレーム９００、Ｂフレーム９０２、およびＰフレーム９０４を示す。
【００５９】
ある実装では、性能をさらに良好にするために各方法を組み合わせることも可能である。
【００６０】
ある別の実装によれば、動きは、例えば周囲のマクロブロックの動き情報から動きベクトルをコーディングするために利用される予測技法を使用して、空間情報からも導出することができる。加えて、動き情報を送る必要のない多重仮説予測アーキテクチャでこの２つの異なる方法を組み合わせることによって、性能をさらに向上させることもできる。したがって、このような新しいマクロブロックタイプは、同様の品質または品質の改善を達成すると共に、顕著なビットレートの低減を達成することができる。
【００６１】
例示的符号化プロセス
図１０に、従来のブロックベースのビデオエンコーダ１００２を有する例示的符号化環境１０００を示す。例示的符号化環境１０００では、ビデオデータ１００４がエンコーダ１００２に供給され、対応する符号化ビデオデータビットストリームが出力される。
【００６２】
ビデオデータ１００４は加算モジュール１００６に供給される。加算モジュール１００６はまた、動き補償（ＭＣ）モジュール１０２２からの出力も入力として受け取る。加算モジュール１００６からの出力は、離散コサイン変換（ＤＣＴ）モジュール１０１０に供給される。ＤＣＴモジュール１０１０の出力は、量子化モジュール（ＱＰ）１０１２への入力として供給される。ＱＰモジュール１０１２の出力は、逆量子化モジュール（ＱＰ-1）１０１４への入力として供給され、かつ可変長コーディング（ＶＬＣ）モジュール１０１６への入力として供給される。ＶＬＣモジュール１０１６はまた、動き推定（ＭＥ）モジュール１００８からの出力も入力として受け取る。ＶＬＣモジュール１０１６の出力は、符号化ビデオビットストリーム１２１０である。
【００６３】
ＱＰ-1モジュール１０１４の出力は、逆離散コサイン変換（ＤＣＴ）モジュール１０１８への入力として供給される。１０１８の出力は、加算モジュール１０２０に入力として供給される。加算モジュール１０２０は、ＭＣモジュール１０２２からの出力を別の入力として有する。加算モジュール１０２０からの出力は、ループフィルタモジュール１０２４への入力として供給される。ループフィルタモジュール１０２４からの出力は、フレームバッファモジュール１０２６への入力として供給される。フレームバッファモジュール１０２６からの１つの出力はＭＥモジュール１００８への入力として供給され、別の出力はＭＣモジュール１０２２への入力として供給される。モジュール１００８はまた、入力としてビデオデータ１００４も受け取る。ＭＥ  １００８からの出力は、ＭＣモジュール１０２２への入力として供給される。
【００６４】
この例では、ＭＣモジュール１０２２は、ＭＥモジュール１００８から入力を受け取る。この場合、ＭＥは、基準フレームに対する現フレームに関して実施される。ＭＥは、様々なブロックサイズおよび検索範囲を使用して実施することができ、その後、「最良の」パラメータが、例えばある事前定義された基準を使用して符号化および伝送される（ＩＮＴＥＲコーディング）。ＤＣＴおよびＱＰを実施した後、剰余情報もコード化される。ある場合には、ＭＥの性能が満足の行く結果を生成しない可能性もあり、したがってマクロブロック、さらにはサブブロックがＩＮＴＲＡ符号化される可能性がある。
【００６５】
動き情報が非常に費用がかかる可能性があることを考慮し、別のプロセスで、以前に符号化した動き情報からマクロブロックに関する動きベクトルを時間的および／または空間的に予測することができる可能性も考慮して、本発明のある例示的実装に従って、図１２のように符号化プロセスを変更することができる。このような決定は、例えばレートひずみ最適化技法または他のコスト指標を用いて実施することができる。このような技法／モードを使用すると、詳細な動き情報を送ることが不要となることがある。詳細な動き情報は、例えば図５に示すように、直接予測（直接Ｐ）モードで置換される可能性があるからである。
【００６６】
動きは、例えば以下の各モデルまたはそれらの組合せのいずれでもモデル化することができる。（１）動き投影（例えば、Ｂフレームに関して図３に示し、Ｐフレームに関して図６に示したもの）、（２）ピクセル投影（例えばＢフレームに関して図８に示し、Ｐフレームに関して図９に示したもの）、（３）空間ＭＶ予測（例えば配列マクロブロックの動きベクトルの中央値）、（４）動き投影および空間予測の重みつき平均、または（５）他の同様の技法。
【００６７】
他の予測モデル（例えば加速度、フィルタリングなど）も使用することができる。これらのモデルのうち１つだけを使用すべきである場合、これはエンコーダとデコーダで共通にすべきである。そうでない場合、どのモデルを使用すべきかに関してデコーダを迅速に導くサブモードを使用することができる。上記のモデルの任意の組合せを使用して、ブロックまたはマクロブロックをマルチリファレンシングすることも可能であることも当業者は理解されよう。
【００６８】
図１２では、改良型ビデオ符号化環境１２００は、ビデオデータ１００４を受け取り、対応する符号化ビデオデータビットストリームを出力するビデオエンコーダ１２０２を含む。
【００６９】
この場合、ビデオエンコーダ１２０２は、改良１２０４を含むように変更されている。改良１２０４は、追加の動きベクトル（ＭＶ）バッファモジュール１２０６およびＤＩＲＥＣＴ判定モジュール１２０８を含む。より具体的には、図示するように、ＭＶバッファモジュール１２０６が、フレームバッファモジュール１０２６からの出力と、ＭＥモジュール１００８からの出力とを入力として受け取るように構成される。ＭＶバッファモジュール１２０６からの出力は、ＭＥモジュール１００８からの出力と共に、ＤＩＲＥＣＴ判定モジュール１２０８への入力として供給される。次いでＤＩＲＥＣＴ判定モジュール１２０８からの出力は、フレームバッファモジュール１０２６からの出力と共に、ＭＣモジュール１０２２への入力として供給される。
【００７０】
この例示的アーキテクチャを首尾よく動作させるために、以前にコード化したフレームからの動き情報を、ＭＶバッファモジュール１２０６に加える目的で、完全な状態で格納する。動きベクトルを格納するために、ＭＶバッファモジュール１２０６を使用することができる。ある実装では、ＭＶバッファモジュール１２０６はまた、使用する基準フレームについての情報と、使用する動きモードの情報も格納することができる。加速度の場合、例えば加速度に関するより複雑モデルを利用するとき、例えば２番目の前フレーム、さらにはＮ番目の前フレームの動き情報を格納するための追加のバッファリングが有用であることがある。
【００７１】
マクロブロック、サブブロック、またはピクセルが動きベクトルと関連しない場合（すなわちマクロブロックがイントラコード化される場合）、そのようなブロックに関して、使用する動きベクトルが（０，０）であり、基準として以前のフレームだけを使用すると仮定する。
【００７２】
マルチフレームリファレンシングを使用する場合、動き情報を現状のまま使用し、かつ／または動き情報を以前のコード化フレームを参照して補間することを選択することができる。これは本質的には設計次第であるが、実際には、特に（０，０）動きベクトルの場合、現ブロックが依然としてずっと古いフレームから参照されている可能性は低いと思われる。
【００７３】
直接予測を追加の１組の動き情報と組み合わせることができる。この追加の１組の動き情報は、前とは異なり、直接予測の一部として符号化される。この場合、予測は、例えば直接予測と動き情報の両方の多重仮説予測とすることができる。
【００７４】
組み合わせることのできる、いくつかの可能な直接予測サブモードがあるので、これらは多重仮説フレームワーク内で組み合わせることもできる。例えば、動き投影からの予測は、ピクセル投影および／または空間ＭＶ予測からの予測と組み合わせることができる。
【００７５】
直接予測は、マクロブロック内のサブブロックレベルでも使用することができる。このことは、現行のＨ．２６Ｌコーデック内部で、Ｂフレームに関して既に行われているが、現在は動き投影のみを使用して行われており、ピクセル投影、または動き投影とピクセル投影の組合せは使用されていない。
【００７６】
Ｂフレームのコーディングでは、直接予測を実施できるのは一方向（順方向または逆方向）からのみであり、必ずしも常に両側から実施されるわけではない。予測の一方が直接予測を使用しているＢフレームの双方向モード内部でも、直接予測を使用することができる。
【００７７】
例えば多重仮説イメージの場合、Ｐフレームが将来のフレームを参照している可能性がある。この場合、Ｂフレーム動き補間と同様に、動き情報の適切なスケーリングおよび／または反転を実施することができる。
【００７８】
例えばランレングスコーディングも使用することができる。フレームまたはスライスをコーディングする際に後続の「同等な」直接Ｐモードを使用する場合、これらはランレングス表現を使用して符号化することができる。
【００７９】
ＤＩＲＥＣＴ判定モジュール１２０８は本質的に、既存のインターモードまたはイントラモードの代わりに直接予測モードを使用すべきかどうかの判定を実施する。例えば、この判定は、ジョイントレート／ひずみ最適化基準、および／または別々のビットレートまたはひずみの要件または制限に基づくことができる。
【００８０】
代替の実装では、モジュール直接予測モジュール１２０８がＭＥモジュール１００８に先行することも可能である。このような場合、ある事前定義された条件に基づいて直接予測が動きパラメータに関する十分良好な推定を直ちに提供することができる場合、ＭＥモジュール１００８を完全に迂回することができ、したがって符号化の計算もかなり削減することができる。
【００８１】
例示的復号化プロセス
次に図１１を参照する。図１１は、符号化ビデオデータビットストリーム１１０４を受け取り、対応する（復号化）ビデオデータ１１２０を出力するビデオデコーダ１１０２を有する例示的な従来型復号化環境１１００を示す。
【００８２】
符号化ビデオデータビットストリーム１１０４は、可変長復号化（ＶＬＤ）モジュール１１０６への入力として供給される。ＶＬＤモジュール１１０６の出力は、ＱＰ-1モジュール１１０８への入力として供給され、かつＭＣモジュール１１１０への入力として供給される。ＱＰ-1モジュール１１０８からの出力は、ＩＤＣＴモジュール１１１２への入力として供給される。ＩＤＣＴモジュール１１１２の出力は、加算モジュール１１１４への入力として供給される。加算モジュール１１１４は、ＭＣモジュール１１１０からの出力も、入力として受け取る。加算モジュール１１１４からの出力は、ループフィルタモジュール１１１６への入力として供給される。ループフィルタモジュール１１１６の出力は、フレームバッファモジュール１１１８に供給される。フレームバッファモジュール１１１８からの出力は、ＭＣモジュール１１１０への入力として供給される。フレームバッファモジュール１１１８は、（復号化）ビデオデータ１１２０も出力する。
【００８３】
直接予測環境１３００で使用するための例示的な改良型デコーダ１３０２は、改良１３０６をさらに含む。この場合、図１３に示すように、改良型デコーダ１３０２は、例えば図１２の改良型ビデオエンコーダ１２０２によって出力される符号化ビデオデータビットストリーム１２１０を受け取り、対応する（復号化）ビデオデータ１３０４を出力する。
【００８４】
改良１３０６は、この例ではＭＣモジュール１１１０とＶＬＤモジュール１１０６’との間に動作可能に挿入される。改良１３０６は、ＶＬＤモジュール１１０６’からの出力を入力として受け取るＭＶバッファモジュール１３０８を含む。ＭＶバッファモジュール１３０８の出力は、改良１３０６の選択モジュール１３１２への、選択可能な入力として供給される。改良１３０６には、ブロックモードモジュール１３１０も設ける。ブロックモードモジュール１３１０は、ＶＬＤモジュール１１０６’からの出力を入力として受け取る。ブロックモードモジュール１３１０の出力は、ＶＬＤモジュール１１０６’への入力として供給され、選択モジュール１３１２への制御入力としても供給される。ＶＬＤモジュール１１０６’からの出力は、選択モジュール１３１２への、選択可能な入力として供給される。選択モジュール１３１２は、ＭＶバッファモジュール１３０８またはＶＬＤモジュール１１０６’からの出力のどちらかを、ＭＣモジュール１１１０への入力として選択的に供給するように構成される。
【００８５】
改良１３０６を用いると、例えば各ピクセルについての動き情報を格納することができる。またマクロブロックのモードが直接予測モードとして識別される場合、格納した動き情報と、適切な投影方法または予測方法が選択され、使用される。動き投影だけが使用される場合、既存のデコーダの変化はごくわずかであり、デコーダに対して追加される追加の複雑さを無視できるとみなせることに留意されたい。
【００８６】
サブモードを使用する場合、改良型デコーダ１３０２は例えば、現マクロブロックを適切に復号化するために、改良型エンコーダ１２０２が実施する予測ステップと逆のステップを実施するように構成することができる。
【００８７】
この場合も、非参照のピクセル（イントラブロックなど）は、動き格納のために、ゼロモーションを有するとみなすことができる。
【００８８】
いくつかの例示的方式
直接予測と共に直ちに使用することができる、いくつかの可能な予測子があることを考慮して、この説明を簡単にするために、各ケースのより小さいサブセットをより詳細に説明する。このサブセットは、幾分効率的であるだけでなく、実装が容易でもある。具体的には、以下のモデルを例証的により詳細に検討する。
【００８９】
（Ａ）この例では、動き投影が、使用する唯一のモードである。直接モードのランレングスコーディングは使用しないが、剰余情報も送られる。ゼロ動きベクトルを使用する場合、動きパラメータの特別な変更を実施する。このような状況では、直接予測のための基準フレームは常にゼロに設定される（例えば以前の符号化フレーム）。さらに、イントラコード化ブロックは、ゼロモーションおよび基準フレームパラメータを有するとみなされる。
【００９０】
（Ｂ）この例は、剰余が送られないことを除き、例（Ａ）と同様である。
【００９１】
（Ｃ）この例は、ＱＰ＜ｎ（例えばｎ＝２４）である場合に剰余も符号化され、そうでない場合に剰余が送られないという点で、基本的には例（Ａ）と（Ｂ）の組合せである。
【００９２】
（Ｄ）この例は、３つのサブモード、すなわち、
（１）動き投影
【００９３】
【数７】
2010119146.tif 000009
【００９４】
（２）空間ＭＶ予測
【００９５】
【数８】
2010119146.tif 000010
【００９６】
（３）この２つのケースの重みつき平均
【００９７】
【数９】
2010119146.tif 000011
【００９８】
を組み合わせる拡張直接予測方式である。
【００９９】
ＱＰ＜ｎ（例えばｎ＝２４）の場合、剰余は送られない。この場合、ランレングスコーディングは使用しない。サブモードの区分化は以下のように設定することができる。
【０１００】
サブモード      コード
空間予測子      ０
動き投影        １
重みつき平均    ２
最良のサブモードは、レートひずみ最適化プロセスを使用して選択することができる（ビットレートと品質の間の最良の折合い）。
【０１０１】
（Ｅ）例（Ｃ）とピクセル投影との組合せ。この場合、例えば直接予測モードに関する２つの予測の平均。
【０１０２】
（Ｆ）これは、例（Ｃ）とＭｏｔｉｏｎ＿Ｃｏｐｙ  Ｒ２（例えば、非特許文献３参照。この文献は参照により本明細書に組み込まれる）などとの組合せである。このケースは、例（Ｄ）で使用される空間ＭＶ予測子の使用法の代替方法とみなすことができる。１つの差は、空間予測子がある条件の下でゼロスキップモードを完全に置換すること、およびこの例（Ｆ）をランレングス符号化することができ、したがってより効率的な性能を達成できることである。
【０１０３】
直接モードに関する双方向予測（Ｂ）フレームでの動きベクトル予測
現在のＪＶＴ規格は、直接モードコード化マクロブロックまたはブロックを双方向予測（Ｂ）フレーム内の動きベクトル予測でどのようにみなすべきかということについて非常に不明瞭であると思われる。その代わりに、現在のソフトウェアは、直接モードマクロブロックまたはサブブロックを「異なる基準フレーム」を有するものとみなし、したがって予測で使用されないと思われる。遺憾ながら、近接するブロックを有する直接予測ブロックの動きベクトル間に依然として高い相関がある可能性があることを考えると、このような条件は、Ｂフレームの性能を著しく妨げ、その効率を低下させる。このような条件はまた、エラー隠蔽アルゴリズムがＢフレームに適用されるとき、その効率も低下させる。
【０１０４】
本節では、例示的代替手法を提示する。この例示的代替手法は、例えばコーディング効率を改善し、Ｂフレーム内の動きベクトルの相関を増大させる。このことは、動き予測段階内の双方向予測ブロックと本質的に等価な直接モードコード化ブロックを考慮することによって行われる。
【０１０５】
（例えば８×８サブパーティションの場合の）直接モードマクロブロックまたはブロックは、隣接するフレームの動きベクトル情報の時間的相関を効果的に利用することができるので、双方向予測（Ｂ）フレームの効率を著しく改善することができる。この考えは、本質的に時間的補間技法から導出される。時間的補間技法では、ブロックを時間ｔでの位置（ｘ＋ｄｘ，ｙ＋ｄｙ）から時間ｔ＋２に位置（ｘ，ｙ）に移動した場合、時間的補間を使用することにより、時間ｔ＋１で、その同じブロックが本質的に位置
【０１０６】
【数１０】
2010119146.tif 000012
【０１０７】
を有していたはずであるという仮定が行われる。
【０１０８】
このことを、例えば図１４に示す。図１４は、３つのフレーム、すなわち時間ｔ、ｔ＋１、およびｔ＋２にそれぞれ対応するＰフレーム１４００、Ｂフレーム１４０２、およびＰフレーム１４０４を示す。しかし、この手法ではなく、現在の符号化規格で最も頻繁に使用される手法では、時間ｔ＋１でのフレームの位置（ｘ，ｙ）のところのブロックを、
時間ｔでは
【０１０９】
【数１１】
2010119146.tif 000013
【０１１０】
時間ｔ＋２では
【０１１１】
【数１２】
2010119146.tif 000014
【０１１２】
で見つけることができる可能性が最も高いと仮定する。
【０１１３】
後者を図１５に示す。図１５は、３つのフレーム、すなわち時間ｔ、ｔ＋１、およびｔ＋２にそれぞれ対応するＰフレーム１５００、Ｂフレーム１５０２、およびＰフレーム１５０４を示す。シーケンス内の直接モードコード化ブロックの数をかなり多くすることができる一方、そのようなケースに対して剰余および動き情報が送られないので、Ｂフレームの効率を著しく改善することができる。ランレングスコーディング（例えば、汎用可変長コード（ＵＶＬＣ）エントロピーコーディングを使用する場合）を使用して、性能をさらに改善することもできる。
【０１１４】
遺憾ながら、現在のＪＶＴ規格では、直接モードブロックに隣接するブロックの動きベクトル予測をどのように実施すべきかが明らかにされていない。現在のソフトウェアからわかるように、直接モードブロックは現在、「異なる基準フレーム」を有するものとみなされており、したがってこのような場合に、空間的相関が利用されない。このことは、予測の効率を著しく低下させる可能性があり、Ｂフレームに対して適用するエラー隠蔽アルゴリズムが必要である場合に、その性能に潜在的に影響を及ぼす可能性もある。
【０１１５】
例えば、Ａ、Ｂ、Ｃ、およびＤがすべて直接モードコード化される場合に現在のコーデックでＥの動きベクトルを予測したい場合、予測子が（０，０）として設定される。これは良い決定ではない。
【０１１６】
図１６では、例えば、ＥがＡ、Ｂ、Ｃ、およびＤから予測される。したがって、Ａ、Ｂ、Ｃ、またはＤが直接モードコード化される場合、その実際の値は、現在は予測では使用されない。しかしこのことは変更することができる。したがって、例えば、Ａ、Ｂ、Ｃ、またはＤが直接モード符号化される場合、動きベクトルの実際の値と、基準フレームを予測で使用することができる。これにより、２つの選択可能なオプションが与えられる。（１）後続のＰフレーム中の配列マクロブロック／ブロックがイントラコード化される場合、基準フレームが−１に設定される。（２）後続のＰフレーム中の配列マクロブロック／ブロックがイントラコード化される場合、基準フレームが０であると仮定する。
【０１１７】
本発明のある態様によれば、その代わりに、動きベクトル予測を実施するために、直接モードコード化ブロックから入手可能な実際の動き情報を使用することができる。これにより、Ｂフレームシーケンス内の動きベクトルの相関を高めることが可能となり、したがって、効率を改善することができる。
【０１１８】
１つの生じ得る問題は、後続のフレーム中の配列ブロック／マクロブロックがイントラコード化された直接モードマクロブロックを適切に処理する方法である。この場合、例えば、２つの可能なオプションには、
（１）このマクロブロック／ブロックを異なる基準フレームを有するものとみなし、したがって動きベクトル予測でこのマクロブロック／ブロックを使用しないこと、および
（２）このマクロブロックが（０，０）動きベクトルおよび基準フレーム０を有するものとみなすことが含まれる。
【０１１９】
本発明のある他の例示的実装によれば、ブロック化解除フィルタプロセスで別の変更を行うことができる。直接モードでは、ブロック化解除フィルタプロセスは、直接コード化ブロックから取られた格納動きベクトル情報を比較するように構成することができる。そうでない場合、これらは通常ゼロとみなされる。しかし別の修正形態では、その代わりに、使用するブロックタイプの如何に関わらず（厳密な）動きベクトルを比較するようにブロック化解除フィルタプロセスを構成することができる。したがって、ある実装では、直接コード化ブロックに関して剰余が送られない場合、「より強力な」ブロック化解除フィルタにより、さらに性能を改善することができる。
【０１２０】
さらに、ある他の実装では、Ｂフレームに関するレートひずみ決定を再設計することができる。動きベクトル予測方式のある実装に関して、レートひずみ最適化決定で使用する、異なるラグランジュパラメータλにより、コーディング効率がさらに向上する可能性が極めて高いからである。そのようなλは例えば、
【０１２１】
【数１３】
2010119146.tif 000015
【０１２２】
とすることができる。
【０１２３】
インターモード決定の細分化
ＪＶＴ規格は現在、ほとんどの現在の他のブロックベースのコーディング規格に対して圧倒的な性能上の利点を有している。この性能の一部は、固定ブロックサイズを有するのではなく、１６×１６から４×４（ピクセル）にわたる可変ブロックサイズを使用できるためであると考えることができる。そのようにすることにより、例えば、時間的相関をより効果的に利用することが可能となる。遺憾ながら、従来のコーディング論理機構（例えばハードウェア、ファームウェア、および／またはソフトウェア）に現在存在しているモード決定技法のためにモード決定が最適に実施されない可能性があり、したがってより良好に割り振ることができるビットを浪費されることがわかった。
【０１２４】
本節では、この問題および／または別の問題を少なくとも部分的に解決する、別の方法および装置を提供する。ここでは、少なくとも１６×８および８×１６（ピクセル）ブロックモードで使用するように、例示的方法および装置を構成した。さらに、少なくとも１つの追加の基準が導入される、比較的単純な解決策を使用して、エンコーダの複雑さについて約５％から１０％の間の節約が実現される。
【０１２５】
ＪＶＴ規格の２つの主要な特徴は、可変マクロブロックモード選択とレートひずみ最適化である。１６×１６（ピクセル）マクロブロックは、動き情報も送られる様々な区分化モードを使用してコード化することができる。使用するモードの選択は、レートひずみ最適化段階で実施することができ、その段階では、可能な最良のビットレートでの可能な最良の品質の決定が試みられる。遺憾ながら、サブパーティションごとの可能な最良の動き情報の割当ては、符号化の完全に異なるプロセスで行われるので、ある場合には、非１６×１６モード（例えば１６×８または８×１６（ピクセル））が１６×１６マクロブロックと等価な動き情報を搬送する可能性がある。各モードに対して使用する動き予測子は相異なる可能性があるので、このような１６×１６タイプ動き情報は、１６×１６モードに割り当てられたものとは異なる可能性が高い。さらに、ある条件の下では、非１６×１６マクロブロックタイプが１６×１６動き情報を持続する場合であっても、レートひずみ最適化が、１６×１６モードを使用してコード化することが良いかどうかを検討することなく、最終的に非１６×１６マクロブロックタイプを使用することを決定する可能性がある。
【０１２６】
このことを理解して、そのようなケースが生じたときを判定し、それによって性能の向上を達成することができるように例示的システムを構成することができる。本発明のある例示的実装によれば、例えばＰ２ｔｏ１およびＰ３ｔｏ１と呼ぶ、２つの追加のモードが、モード決定プロセス／段階内で使用可能となる。Ｐ２ｔｏ１およびＰ３ｔｏ１モードは、それぞれ１６×８サブパーティショニングおよび８×１６サブパーティショニングの動き情報が１６×１６モードと等価なときに使用可能にされる。
【０１２７】
ある実装では、各パーティションに割り当てられるすべての動きベクトルおよび基準フレームを等しくすることができる。したがって、レートひずみプロセス／段階中に、等しいモードを使用可能にし、検査することができる。剰余情報およびひずみ情報は、サブパーティションの場合と比較して変化しない可能性が高いので、著しく計算を増大させることなく、それらを再利用することができる。
【０１２８】
しかしレートひずみモード決定が完全ではないことを考慮すると、現在の最良のモードの如何に関わらずこの２つの追加のモードを追加および考慮することによって、ある限定されたケースでは、効率が改善されるのではなく、低下する可能性がある。代替方法として、使用するモード決定によれば、対応するサブパーティショニングモードも可能な最良のモードであるときにだけ、これらのモードを使用可能にすることができる。そのようにすることにより、ＰＳＮＲに影響を与えずに、他の論理機構（例えばコーデックなど）と比較して改善（例えばビットレート低減）を実現することができる。
【０１２９】
１６×８または８×１６サブパーティショニングの動き情報が１６×１６モードのものと等しい場合、このようなモードに関するモード決定の実施が不要となる。例えば、第１サブパーティションの動きベクトル予測子が１６×１６モードの動きベクトル予測子と全く同じである場合、モード決定の実施は不要である。このような条件が満たされる場合、モード決定プロセス中にこのモードを完全にスキップすることができる。そのようにすることにより、このモードについて、符号化プロセス中に比較的費用のかかる傾向があるＤＣＴ、量子化、および／または他の同様のレートひずみプロセス／測定を実施することが不要となるので、複雑さが著しく低下する。
【０１３０】
他のある例示的実装では、プロセス全体は、さらに木構造マクロブロックパーティションに拡張することもできる（例えば、非特許文献２参照。）。
【０１３１】
例示的アルゴリズム
以下は、例示的コーデックまたは他の同様の論理機構でモード細分化を実現するために実施することができる、ある動作である（他のある実装では、動作の順番は変化する可能性があり、かつ／またはある動作を一緒に実施できることに留意されたい）。
【０１３２】
動作１：Ｖａｌｉｄ［Ｐ２ｔｏ１］＝Ｖａｌｉｄ［Ｐ３ｔｏ１］＝０に設定する。
【０１３３】
動作２：可能な各インターモードについて、動きベクトルおよび基準フレームの決定を実施する。
【０１３４】
【数１４】
2010119146.tif 000016
【０１３５】
、およびｒｅｆｆｒａｍｅ16×16を、それぞれ１６×１６モードの動きベクトル、動きベクトル予測子、および基準フレームとし、
【０１３６】
【数１５】
2010119146.tif 000017
【０１３７】
【数１６】
2010119146.tif 000018
【０１３８】
を、１６×８モードについての対応する情報とし、
【０１３９】
【数１７】
2010119146.tif 000019
【０１４０】
【数１８】
2010119146.tif 000020
【０１４１】
を、８×１６モードについての対応する情報とする。
【０１４２】
動作３：
【０１４３】
【数１９】
2010119146.tif 000021
【０１４４】
【数２０】
2010119146.tif 000022
【０１４５】
である場合、動作７に進む。
【０１４６】
動作４：
【０１４７】
【数２１】
2010119146.tif 000023
【０１４８】
【数２２】
2010119146.tif 000024
【０１４９】
【数２３】
2010119146.tif 000025
【０１５０】
である場合、動作６に進む。
【０１５１】
動作５：Ｖａｌｉｄ［１６ｘ８］＝０；動作７に進む。
（例えば、１６×８モードが１６×１６モードと同一である場合、１６×８モードを使用不能にする。複雑さの低減。）
【０１５２】
動作６：Ｖａｌｉｄ［Ｐ２ｔｏ１］＝１；（例えば、１６×８に対する細分化モードを使用可能にする）
【０１５３】
【数２４】
2010119146.tif 000026
【０１５４】
動作７：
【０１５５】
【数２５】
2010119146.tif 000027
【０１５６】
【数２６】
2010119146.tif 000028
【０１５７】
である場合、動作１１に進む。
【０１５８】
動作８：
【０１５９】
【数２７】
2010119146.tif 000029
【０１６０】
【数２８】
2010119146.tif 000030
【０１６１】
【数２９】
2010119146.tif 000031
【０１６２】
である場合、動作１０に進む。
【０１６３】
動作９：Ｖａｌｉｄ［８ｘ１６］＝０；動作１１に進む。
（例えば、８×１６モードが１６×１６モードと等しい場合、複雑さを低減するため８×１６モードを使用不能にする）
【０１６４】
動作１０：Ｖａｌｉｄ［Ｐ３ｔｏ１］＝１
（例えば、８×１６に対する細分化モードを使用可能にする）
【０１６５】
【数３０】
2010119146.tif 000032
【０１６６】
動作１１：（Ｖａｌｉｄ［ＭＯＤＥ］＝１）の場合にすべてのインターモードおよびイントラモードに対してレートひずみを実施する。ただしＭＯＤＥ∈｛ＩＮＴＲＡ４ｘ４，ＩＮＴＲＡ１６ｘ１６，ＳＫＩＰ，１６ｘ１６，１６ｘ８，８ｘ１６，Ｐ８ｘ８｝である。ラングランジュの関数を使用して、
Ｊ（ｓ，ｃ，ＭＯＤＥ｜ＱＰ，λMODE）＝ＳＳＤ（ｓ，ｃ，ＭＯＤＥ｜ＱＰ）＋λMODE・Ｒ（ｓ，ｃ，ＭＯＤＥ｜ＱＰ）
最良のモードをＢｅｓｔＭｏｄｅにＡｃｔＳｅｔする。
【０１６７】
動作１２：（ＢｅｓｔＭｏｄｅ！＝１６ｘ８）である場合、Ｖａｌｉｄ［Ｐ３ｔｏ１］＝０（この動作は任意選択であることに留意されたい）。
【０１６８】
動作１３：（ＢｅｓｔＭｏｄｅ！＝８ｘ１６）である場合、Ｖａｌｉｄ［Ｐ２ｔｏ１］＝０（この動作は任意選択であることに留意されたい）。
【０１６９】
動作１４：ＭＯＤＥ∈｛Ｐ２ｔｏ１，Ｐ３ｔｏ１｝として、（Ｖａｌｉｄ［ＭＯＤＥ］＝１）である場合、
２つの追加のモードに対してレートひずみ最適化を実施する（例えば、モードは１６×１６モードと同等であるとみなされる）。
【０１７０】
動作１５：ＢｅｓｔＭｏｄｅを、見つかった全体の最良のモードに設定する。
【０１７１】
インターレースコーディングに対する例示的直接予測技法の適用
Ｈ．２６Ｌ規格内のインターレース化ビデオコーディングに対する関心が高まっているため、インターレース化シーケンスの符号化性能を高めることに関していくつかの提案が提示された。本節では、Ｈ．２６Ｌ現在のシンタックスおよび／または他の同様のシステムで実装することができる技法を提示する。これらの例示的技法は、性能の向上を実現することができる。さらに、インターレース化コーディングと漸進的ビデオコーディングのどちらにも適用することができる、直接Ｂ予測と類似した直接Ｐ予測技術を紹介する。
【０１７２】
例示的直接Ｐ予測技法に関する別の情報
Ｂフレーム内部の動きベクトルの直接モードにより、符号化性能から著しく益を受けることができる。特に最大２つの動きベクトルを送らなければならないことを考えると、動きベクトルの符号化に必要なビットを著しく削減することができるからである。しかし、直接モードを使用してブロックをコード化する場合、動きベクトルは不要であり、その代わりに、後続の第１の基準イメージ中の配列ブロックの動きベクトルの時間的補間として計算される。Ｐフレームに対する同様の手法は、決して考慮されてこなかったと思われる。Ｐフレームとその対応するマクロブロックの構造はずっと単純であり、一方各マクロブロックが必要とする動きベクトルは１つだけであるからである。このようなモードを加えることは、その代わりに、著しいオーバヘッドを招く可能性が非常に高く、したがって恐らくは可能などんな改善も無にされたであろう。
【０１７３】
一方Ｈ．２６Ｌでは、いくつかの追加のマクロブロックモードを導入することにより、Ｐフレームが著しく拡張された。先に述べたように、多くの場合、さらにマクロブロックごとに最大１６個の動きベクトルを送ることが必要となる可能性がある。Ｈ．２６ＬでのＰフレームが含む可能性のあるこの追加のモードオーバヘッドを考慮すると、動きベクトルの直接予測の実装は実行可能である。このようにして、追加のモードの犠牲を払うだけで、使用する動きベクトルおよび基準フレームに関するすべてのビットを節約することができる。例えば図４を参照されたい。
【０１７４】
直接Ｐ予測のより直接的な方法が、以前のフレーム内の配列ピクセルの動きベクトルを選択することであるとしても、他の実装では、動き加速度を代替の解決策として考慮することもできる。これは、恐らく動きがフレームごとに変化し、動きが一定でなく、かつ加速度を使用することによってより良好な結果を得ることができることに由来する。例えば図７を参照されたい。
【０１７５】
このような技法は、さらに漸進的ビデオコーディングに適用することができる。さらに、例えば一定の水平移動だけを伴う領域などのインターレースシーケンス内部でフィールドがある場合に有することができる相関を考慮すると、この手法を、インターレースシーケンスコーディングに関するコーディング効率を改善する助けとすることもできる。このことは、具体的には、例えば隣接するフィールドの動きが同じであると仮定した場合に、周知のフィールドタイプフレームにとって有利となる。このタイプの構成では、同じパリティフィールドを新しいフレームとみなすことができ、それが、インターレース機能を考慮することなく順次コード化される。これはデコーダ上に完全に残される。しかし、この例示的直接Ｐモードを使用することによって、最初にコード化される（例えばサイズ１６×１６ピクセルの）フィールドマクロブロックに対して１組の動きベクトルを使用することができるのに対して、同じ位置の第２フィールドは同じ動き情報を再利用している。送る必要のある他の情報は、コード化剰余イメージだけである。他の実装では、２つの配列フィールドブロックの剰余イメージ間の相関を考慮することにより、これらの技法をさらに改良することが可能である。
【０１７６】
Ｐフレームで直接モードを可能とするためには、１つの追加のインターモードをシステムに追加することが基本的に必要である。したがって、８個のインターモードだけを有するのではなく、１つの例では、以下に示す９個のインターモードを使用することができる。
【０１７７】
インターモード          説明
ＣＯＰＹ＿ＭＢ        ０        スキップマクロブロックモード
Ｍ１６ｘ１６＿ＭＢ      １        １つの１６×１６ブロック
Ｍ１６ｘ８＿ＭＢ        ２        ２つの１６×８ブロック
Ｍ８ｘ１６＿ＭＢ        ３        ２つの８×１６ブロック
Ｍ８ｘ８＿ＭＢ        ４        ４つの８×８ブロック
Ｍ８ｘ４＿ＭＢ        ５        ８つの８×４ブロック
Ｍ４ｘ８＿ＭＢ        ６        ８つの４×８ブロック
Ｍ４ｘ４＿ＭＢ        ７        １６個の１６×８ブロック
ＰＤＩＲＥＣＴ＿ＭＢ      ８        以前のフレーム中の配列マクロブロックのコピーモードおよび動きベクトル
【０１７８】
一般には、Ｐフレームに関するこのような例示的直接モードは、スキップマクロブロックを除くが、直接モードを含めて配列マクロブロックもＩＮＴＥＲタイプである場合に出現することができる。他の場合には、使用することができる動き情報が存在しないからである。以前のマクロブロックも直接Ｐモードで符号化される場合、代わりにこのマクロブロックに関する最も最近の動きベクトルおよびモードが考慮される。しかしこのモードが論理的に出現するのではない場合、具体的にはＩＮＴＲＡモードが使用された場合をより効率的に扱うために、情報のコピーが先フレームからではなく、その１つ前からである第２スキップマクロブロックモードをモードがそのとき示す場合にこのモードが出現することを可能とすることを選択することができる。この場合、剰余情報は符号化されない。これは、インターレースシーケンスに対して特に有用である。先の技法で提示したのと同様に、以前に符号化したフィールドフレームからではなく、同じパリティフィールドフレームからより高い精度でマクロブロックを見つけることができる可能性がより高いからである。
【０１７９】
効率をさらに改善するために、インターレースイメージをコーディングするときに１組の２つのフィールドタイプフレームを使用する場合、同じパリティフィールドイメージを使用するようにスキップマクロブロックモードを構成することができる。例えば直接Ｐモードをスキッピングフラグとして使用する場合、その代わりに異なるパリティが使用される。直接Ｐモードの追加の利点は、エンコーダ中の複雑さの著しい低減が可能であることである。直接Ｐモードが満足の行く十分な解決策を与えるかどうかをシステムが事前チェックを実施することが可能であるからであり、そうである場合、その特定のブロックのモード決定および動き推定に関して追加の計算は不要となる。動きベクトルコーディングの問題にも対処するため、直接Ｐコーディングのために使用する動きベクトルを、ＭＥＤＩＡＮ予測子の計算と「同様に」使用することができる。
【０１８０】
最良フィールドファースト技法およびフィールドリシャッフリング
インターレースフレーム素材と、同じストリーム内部の別々のインターレースフィールドイメージのどちらもサポートすることが可能なインターレース化シーケンスのコーディングにより、２つの方法の一方だけを使用するコーディングよりもずっと良好な解決策が得られる可能性が高い。別々のインターレースフィールド技法は、例えばブロック化解除などのいくつかの追加の利点を有し、具体的には強化エラー回復力を提供することができる。例えばエラーが１つのフィールドイメージ内部に生じた場合、第２イメージからの情報を使用して、エラーを容易に吸収することができる。
【０１８１】
フレームベースの技法に関してはそうではなく、特にこのようなフレームで使用する、しばしば大きなサイズのビットを考慮するときは、このようなフレーム内部のエラーがずっと高い確率で生じる可能性がある。ピクセル／ブロック間の相関の低下により、エラー回復が促進されない可能性がある。
【０１８２】
この場合、どのフィールドを最初に表示すべきかを無視すると同時に、どのフィールドを最初に符号化すべきかをエンコーダによって選択することを可能にすることにより、フィールド／フレームコーディングの概念をさらに改良することができる。このことは、デコーダ上で自動的に処理することができる。デコーダでは、将来のフィールドフレームを表示するまでそれを格納するために、大きいバッファが必要となる。例えば時間の点で上部フィールドが下部フィールドに先行する場合であっても、まず下部フィールドをコード化して送り、その後に上部フィールドフレームが続く場合、コーディング効率が高くなることがある。この決定は、例えばレートひずみ最適化プロセス／段階で行うことができる。レートひずみ最適化プロセス／段階では、奇数フィールドを最初にコード化し、その後に偶数フィールドが続く場合と、その代わりに偶数フィールドをコード化し、それを奇数フィールドに対する基準として使用する場合の性能をまず検査する。このような方法は、エンコーダとデコーダがどちらも、どのフィールドを最初に表示すべきかを認識すべきであることを意味し、任意のリシャッフリングがシームレスに行われる。奇数フィールドを最初にコード化する場合であっても、エンコーダとデコーダがどちらも、ＩＮＴＥＲ／ＩＮＴＲＡ予測のためにフレームを索引付けするときにこの変化を認識していることも重要である。４つの基準フレームを用いるこのような予測方式の例を図１７および図１８に示す。図１７では、Ｐフレームで例示的な最良フィールドファースト方式を用いるインターレースコーディングを示す。図１８では、Ｂフレームで最良フィールドファースト方式を用いるインターレースコーディングを示す。
【０１８３】
コーディングジョイントフィールド／フレームイメージの場合、図１９に例示的に示す方式を使用することができる。この場合、フレームおよびフィールドベースのコーディングを用いる最良フィールドファースト方式の例示的実装が示されている。フレームベースの動き推定のために２つのフレームを使用する場合、特にフィールドスワッピングが行われる場合にフィールドの動き推定のために少なくとも５つのフィールドフレームを使用することができる。これにより、同じパリティの少なくとも２つのフィールドフレームの参照が可能となる。一般には、Ｎ個の全フレームを使用すべきである場合、２×Ｎ＋１個のフィールドフレームを格納すべきである。フレームはまた、このようなプロセス用のエンコーダおよびデコーダ上で、容易にインターリーブおよびインターリーブ解除することもできる。
【０１８４】
結論
上記の説明では、構造的特徴および／または動作に特有の術語を用いたが、頭記の特許請求の範囲で定義される発明は、ここで説明した特定の機能および動作に限定されないことを理解されたい。むしろ、本発明を実施する例示的形態としてこの特定の特徴および操作を開示する。
【符号の説明】
【０１８５】
１３２  処理装置
１３４  システムメモリ
１３６  バス
１３８  読取り専用メモリ（ＲＯＭ）
１４０  ランダムアクセスメモリ（ＲＡＭ）
１４２  基本入出力システム（ＢＩＯＳ）
１４４  ハードディスクドライブ
１４６  磁気ディスクドライブ
１４８  取外し可能磁気ディスク
１５０  光ディスクドライブ
１５２  取外し可能光ディスク
１５８  オペレーティングシステム
１６０  アプリケーションプログラム
１６２  他のプログラムモジュール
１６４  プログラムデータ
１６６  キーボード
１６８  ポインティングデバイス
１７０  ユーザ入力インターフェース
１７２  モニタ
１７４  ビデオアダプタ
１７５  出力周辺インターフェース
１７７  ローカルエリアネットワーク（ＬＡＮ）
１７９  汎用ワイドエリアネットワーク（ＷＡＮ）
１８０  インターネット
１８２  リモートコンピュータ
１８６  ネットワークインターフェース
１８９  リモートアプリケーションプログラム
２００  例示的装置
２０２  論理機構
２０４  ビデオデータソース
２０６  ディスプレイモジュール
２０８  オーディオ再生モジュール
１０００  例示的符号化環境
１００２、１２０２  ビデオエンコーダ
１００４、１１０２、１３０４  ビデオデータ
１００６、１０２０、１１１４  加算モジュール
１００８  動き推定（ＭＥ）モジュール
１０１０  離散コサイン変換（ＤＣＴ）モジュール
１０１２  量子化モジュール（ＱＰ）
１０１４、１１０８  逆量子化モジュール（ＱＰ-1）
１０１６  可変長コーディング（ＶＬＣ）モジュール
１０１８、１１１２  逆離散コサイン変換（ＤＣＴ）モジュール
１０２２、１１１０  動き補償（ＭＣ）モジュール
１０２４、１１１６  ループフィルタモジュール
１０２６、１１１８  フレームバッファモジュール
１１００  従来型復号化環境
１１０４、１２１０  符号化ビデオデータビットストリーム
１１０６  可変長復号化（ＶＬＤ）モジュール
１２００  改良型ビデオ符号化環境
１２０４、１３０６  改良
１２０６、１３０８  動きベクトル（ＭＶ）バッファモジュール
１２０８  ＤＩＲＥＣＴ判定モジュール
１３００  直接予測環境
１３０２  改良型デコーダ
１３０８  ＭＶバッファモジュール
１３１０  ブロックモードモジュール
１３１２  選択モジュール
【図１】
2010119146.tif 000033
【図２】
2010119146.tif 000034
【図３】
2010119146.tif 000035
【図４】
2010119146.tif 000036
【図５】
2010119146.tif 000037
【図６】
2010119146.tif 000038
【図７】
2010119146.tif 000039
【図８】
2010119146.tif 000040
【図９】
2010119146.tif 000041
【図１０】
2010119146.tif 000042
【図１１】
2010119146.tif 000043
【図１２】
2010119146.tif 000044
【図１３】
2010119146.tif 000045
【図１４】
2010119146.tif 000046
【図１５】
2010119146.tif 000047
【図１６】
2010119146.tif 000048
【図１７】
2010119146.tif 000049
【図１８】
2010119146.tif 000050
【図１９】
2010119146.tif 000051