(57)【特許請求の範囲】
【請求項１】
ビデオエンコーダ又は画像エンコーダを有するコンピューティング装置における方法であって、
ブロックベクトル（“ＢＶ”）予測を使用して、ピクチャの現在のブロックのためのＢＶ値を決定するステップであって、前記現在のブロックのための前記ＢＶ値は、前記ピクチャ内の領域に対する変位を示す、ステップと、
前記ＢＶ値と共にイントラブロックコピー予測を用いて前記現在のブロックをエンコードするステップと、
前記現在のブロックがスキップモードにおいてエンコードされている指標をビットストリーム内に出力するステップであって、前記ビットストリームは、前記現在のブロックのためのＢＶ差分及び残差データを欠く、ステップと、
を含み、
前記ビットストリームは、前記現在のブロックの前記ＢＶ値として使用するための、一組の複数のＢＶ予測子候補からの、ＢＶ予測子候補の選択を示すインデックス値を含み、前記複数のＢＶ予測子候補は１つ以上のデフォルトＢＶ予測子を含み、前記１つ以上のデフォルトＢＶ予測子の各々は、非ゼロ値を有するＢＶ予測子成分を含む、
方法。
【請求項２】
ビデオデコーダ又は画像デコーダを有するコンピューティング装置における方法であって、
ビットストリームから、ピクチャの現在のブロックがスキップモードにおいてエンコードされている指標を受信するステップであって、前記ビットストリームは、前記現在のブロックのためのブロックベクトル（“ＢＶ”）差分及び残差データを欠く、ステップと、
ＢＶ予測を使用して、前記現在のブロックのためのＢＶ値を決定するステップであって、前記現在のブロックのための前記ＢＶ値は、前記ピクチャ内の領域に対する変位を示す、ステップと、
前記ＢＶ値と共にイントラブロックコピー予測を用いて前記現在のブロックをデコードするステップと、
を含み、
前記ビットストリームは、前記現在のブロックの前記ＢＶ値として使用するための、一組の複数のＢＶ予測子候補からの、ＢＶ予測子候補の選択を示すインデックス値を含み、前記複数のＢＶ予測子候補は１つ以上のデフォルトＢＶ予測子を含み、前記１つ以上のデフォルトＢＶ予測子の各々は、非ゼロ値を有するＢＶ予測子成分を含む、
方法。
【請求項３】
前記インデックス値はフラグ値であり、前記一組の複数のＢＶ予測子候補は２つのＢＶ予測子候補を有する、請求項１又は２に記載の方法。
【請求項４】
前記インデックス値は整数値であり、前記一組の複数のＢＶ予測子候補は３つ以上のＢＶ予測子候補を有する、請求項１又は２に記載の方法。
【請求項５】
ビデオエンコーダ又は画像エンコーダを有するコンピューティング装置であって、
ピクチャの現在のブロックのための、一組の複数のブロックベクトル（“ＢＶ”）予測子候補を決定することであって、前記複数のＢＶ予測子候補は１つ以上のデフォルトＢＶ予測子を含み、前記１つ以上のデフォルトＢＶ予測子の各々は、非ゼロ値を有するＢＶ予測子成分を含み、
前記現在のブロックに使用するための、前記複数のＢＶ予測子候補のうち１つを選択し、
前記の選択されたＢＶ予測子候補と共にイントラブロックコピー予測を用いて前記現在のブロックをエンコードすることであって、前記の選択されたＢＶ予測子候補は、前記ピクチャ内の領域に対する変位を示し、
前記の選択されたＢＶ予測子候補を示すインデックス値をビットストリーム内に出力する
ように構成されたコンピューティング装置。
【請求項６】
ビデオデコーダ又は画像デコーダを有するコンピューティング装置であって、
ビットストリームから、インデックス値を受信し、
ピクチャの現在のブロックのための、一組の複数のブロックベクトル（“ＢＶ”）予測子候補を決定することであって、前記複数のＢＶ予測子候補は１つ以上のデフォルトＢＶ予測子を含み、前記１つ以上のデフォルトＢＶ予測子の各々は、非ゼロ値を有するＢＶ予測子成分を含み、
前記インデックス値に基づいて、前記現在のブロックに使用するための、前記複数のＢＶ予測子候補のうち１つを選択し、
前記の選択されたＢＶ予測子候補と共にイントラブロックコピー予測を用いて前記現在のブロックをデコードすることであって、前記の選択されたＢＶ予測子候補は、前記ピクチャ内の領域に対する変位を示す
ように構成されたコンピューティング装置。
【請求項７】
前記現在のブロックはマージモードブロックであり、前記ビットストリームは前記現在のブロックのためのＢＶ差分を欠く、請求項５又は６に記載のコンピューティング装置。
【請求項８】
前記ビットストリーム内の値が、前記現在のブロックがスキップモードブロックであると示し、前記ビットストリームは前記現在のブロックのためのＢＶ差分を欠き、前記ビットストリームは前記現在のブロックのための残差データを欠く、請求項５又は６に記載のコンピューティング装置。
【請求項９】
前記ビットストリームは前記現在のブロックのためのＢＶ差分を含み、前記ＢＶ差分は、前記の選択されたＢＶ予測子候補と前記現在のブロックのためのＢＶ値とにおける差を示す、請求項５又は６に記載のコンピューティング装置。
【請求項１０】
前記インデックス値はフラグ値であり、前記一組の複数のＢＶ予測子候補は２つのＢＶ予測子候補を有し、あるいは、
前記インデックス値は整数値であり、前記一組の複数のＢＶ予測子候補は３つ以上のＢＶ予測子候補を有する、
請求項５乃至９のうちいずれか１項に記載のコンピューティング装置。
【請求項１１】
前記複数のＢＶ予測子候補は、前のブロックの、最大ｘの実際のＢＶ値を含み、ｘは少なくとも２であり、前記前のブロックは、
前記現在のブロックの周りの近隣における場所、及び／又は
前記現在のブロックと比較したデコーディング順序
に少なくとも部分的に基づいて識別される、
請求項５乃至１０のうちいずれか１項に記載のコンピューティング装置。
【請求項１２】
請求項１乃至４のうちいずれか１項に記載の方法を実行するように構成されたコンピューティング装置。
【請求項１３】
請求項１乃至４のうちいずれか１項に記載の方法をコンピューティング装置に実行させるコンピュータプログラム。
【請求項１４】
請求項１３に記載のコンピュータプログラムを記憶したコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
エンジニアは、圧縮（ソースコーディング又はソースエンコーディングとも呼ばれる）を使用して、デジタルビデオのビットレートを低減させる。圧縮は、ビデオ情報をより低いビットレート形式にコンバートすることによって、該情報を記憶し及び送信することのコストを減らす。伸張（デコーディングとも呼ばれる）は、圧縮された形式から、元の情報のあるバージョンを再構成する。「コーデック」は、エンコーダ／デコーダシステムである。
【０００２】
この２０年を通じて、様々なビデオコーデック標準が採用されてきており、ＩＴＵ‐Ｔ  Ｈ．２６１、Ｈ．２６２（ＭＰＥＧ‐２又はＩＳＯ／ＩＥＣ１３８１８‐２）標準、Ｈ．２６３及びＨ．２６４（ＭＰＥＧ‐４ＡＶＣ又はＩＳＯ／ＩＥＣ１４４９６‐１０）標準、ＭＰＥＧ‐１（ＩＳＯ／ＩＥＣ１１１７２‐２）及びＭＰＥＧ‐４Ｖｉｓｕａｌ（ＩＳＯ／ＩＥＣ１４４９６‐２）標準、ＳＭＰＴＥ４２１Ｍ（ＶＣ‐１）標準が含まれる。最近では、ＨＥＶＣ標準（ＩＴＵ‐Ｔ  Ｈ．２６５又はＩＳＯ／ＩＥＣ２３００８‐２）が承認されている。ＨＥＶＣ標準に対するエクステンション（例えば、スケーラブルビデオコーディング／デコーディングのための、あるいはサンプルビット深度又はクロマサンプリングレートの観点においてより高い忠実度を有するビデオのコーディング／デコーディングのための、あるいはマルチビューコーディング／デコーディングのための）が、現在開発下にある。ビデオコーデック標準は典型的に、エンコードされるビデオビットストリームのシンタックスについてのオプションを定義し、特定の特徴がエンコーディング及びデコーディングにおいて使用されるときにビットストリームの中のパラメータを詳述する。多くの場合において、ビデオコーデック標準は、デコーディングにおいて合致する結果を達成するためにデコーダが実行すべきであるデコーディング動作に関する詳細をさらに提供する。コーデック標準の他に、様々な独自コーデックフォーマットが、エンコードされるビデオビットストリームのシンタックスと対応するデコーディング動作とについての他のオプションを定義している。
【０００３】
イントラブロックコピー（“ＢＣ”）は、ＨＥＶＣエクステンションに関する開発下の予測モードである。イントラＢＣ予測モードについて、ピクチャの現在のブロックのサンプル値は、同じピクチャの中の事前に再構成されたサンプル値を用いて予測される。ブロックベクトル（“ＢＶ”）が、予測に使用される事前に再構成されたサンプル値を含むピクチャの領域に対する、現在ブロックからの変位を示す。ＢＶは、ビットストリーム内で信号伝達される。イントラＢＣ予測は、ピクチャ内予測の一形態であり、ピクチャのブロックのイントラＢＣ予測は、同じピクチャの中のサンプル値以外のいかなるサンプル値も使用しない。
【０００４】
現在、ＨＥＶＣ標準において規定され、ＨＥＶＣ標準に対するいくつかの参照ソフトウェアにおいて実装されるとおり、イントラＢＣ予測モードはいくつかの問題を有する。具体的に、多くのシナリオにおいてＢＶ値が効率的に信号伝達されず、予測可能なＢＣ変位を有するブロックの符号化が効率的に取り扱われない。
【発明の概要】
【０００５】
要約すると、発明の詳細は、イントラブロックコピー（“ＢＣ”）予測を用いたブロックのエンコーディング又はデコーディングの間のブロックベクトル（“ＢＶ”）値の予測の分野におけるイノベーションを提示する。例えば、イノベーションのいくつかは、非ゼロ値を有するデフォルトＢＶ予測子の使用に関する。別のイノベーションが、現在のブロックのための複数のＢＶ予測子候補のうち選択された１つの使用に関する。さらに別のイノベーションが、現在のイントラＢＣ予測されたブロックが予測されたＢＶ値を使用するスキップモードの使用に関する。多くの状況において、本イノベーションは、ＢＶ値の符号化効率を向上させ、あるいはその他の方法で、イントラＢＣ予測されたブロックの符号化効率を向上させる。
【０００６】
本明細書に説明されるイノベーションの第１の態様に従い、エンコーダが、ピクチャの現在のブロックのためのデフォルトＢＶ予測子を決定する。デフォルトＢＶ予測子は、非ゼロ値を有するＢＶ予測子成分を含む。例えば、デフォルトＢＶ予測子の垂直ＢＶ成分及び水平ＢＶ成分のうち一方がゼロであり、他方が非ゼロ値を有する。エンコーダは、デフォルトＢＶ予測子を用いて現在のブロックをエンコードする。例えば、エンコーダは、現在のブロックのためのＢＶ値を用いてイントラブロックコピー（“ＢＣ”）予測を実行し、このＢＶ値と現在のブロックのためのデフォルトＢＶ予測子とを用いてＢＶ差分を決定し、それからＢＶ差分をエンコードする。あるいは、エンコーダは、デフォルトＢＶ予測子を用いてイントラＢＣ予測を単に実行する。
【０００７】
対応するデコーダは、ピクチャの現在のブロックのためのデフォルトＢＶ予測子を決定する。デフォルトＢＶ予測子は、非ゼロ値を有するＢＶ予測子成分を含む。例えば、デフォルトＢＶ予測子の垂直ＢＶ成分及び水平ＢＶ成分のうち一方がゼロであり、他方が非ゼロ値を有する。デコーダは、デフォルトＢＶ予測子を用いて現在のブロックをデコードする。例えば、デコーダは、現在のブロックのためのＢＶ差分をデコードし、それから、デコードされたＢＶ差分をデフォルトＢＶ予測子と組み合わせて、現在のブロックのためのＢＶ値を再構成する。デコーダは、このＢＶ値を用いてイントラＢＣ予測を実行する。あるいは、デコーダは、デフォルトＢＶ予測子を用いてイントラＢＣ予測を単に実行する。
【０００８】
エンコーダ又はデコーダは、ピクチャの前のブロックのための実際のＢＶ値が利用可能であるかどうかに依存して、デフォルトＢＶ予測子を条件付きで使用してもよい。例えば、エンコーダ／デコーダは、ピクチャの前のブロックのための実際のＢＶ値が利用可能であるかどうかをチェックする。そうである場合、前のブロックのための実際のＢＶ値が現在のブロックのためのＢＶ予測子として使用される。そうでない場合、デフォルトＢＶ予測子が現在のブロックのためのＢＶ予測子として使用される。いくつかの実施において、前のブロックのための実際のＢＶ値は、（１）前のブロックと現在のブロックとが所与の符号化ツリーユニットの一部であり、（２）前のブロックの予測モードがイントラＢＣ予測モードである、場合に利用可能である。
【０００９】
本明細書に説明されるイノベーションの第２の態様に従い、エンコーダは、ＢＶ予測を使用して、ピクチャの現在のブロックのためのＢＶ値を決定する。現在のブロックのためのＢＶ値は、ピクチャ内の領域に対する変位を示す。エンコーダは、ＢＶ値（ここでは、ＢＶ予測子）と共にイントラＢＣを用いて現在のブロックをエンコードする。エンコーダは、現在のブロックがスキップモードにおいてエンコードされているとの指標をビットストリーム内に出力し、このビットストリームは、現在のブロックのためのＢＶ差分及び残差データを欠く。
【００１０】
対応するデコーダは、ピクチャの現在のブロックがスキップモードにおいてエンコードされているとの指標をビットストリームから受信する。ビットストリームは、現在のブロックのためのＢＶ差分及び残差データを欠く。デコーダは、ＢＶ予測を使用して、現在のブロックのためのＢＶ値を決定する。それから、デコーダは、ＢＶ値（ここでは、ＢＶ予測子）と共にイントラブロックコピー予測を用いて現在のブロックをデコードする。
【００１１】
スキップされたブロックについて、ビットストリームは、現在のブロックのためのＢＶ値（ここでは、ＢＶ予測子）として使用するための、複数のＢＶ予測子候補のセットからの、ＢＶ予測子候補の選択を示すインデックス値を含むことができる。インデックス値は、フラグ値又は整数値であり得る。
【００１２】
本明細書に説明されるイノベーションの第３の態様に従い、エンコーダは、ピクチャの現在のブロックのための複数のＢＶ予測子候補のセットを決定し、それから、現在のブロックに使用するための、ＢＶ予測子候補のうち１つを選択する。エンコーダは、選択されたＢＶ予測子候補を用いて現在のブロックをエンコードし、ビットストリームの中に、選択された予測子候補を示すインデックス値を出力する。
【００１３】
対応するデコーダは、ビットストリームからインデック値を受信する。デコーダは、ピクチャの現在のブロックのための複数のＢＶ予測子候補のセットを決定し、インデックス値に基づいて、現在のブロックに使用するための、ＢＶ予測子候補のうち１つを選択する。デコーダは、選択されたＢＶ予測子候補を用いて現在のブロックをデコードする。
【００１４】
いくつかの場合において、ビットストリームは、現在のブロック（これは非スキップモードの、非マージモードブロックである）のためのＢＶ差分を含む。ＢＶ差分は、選択されたＢＶ予測子候補と現在のブロックのためのＢＶ値とにおける差を示す。別の場合において、現在のブロックはマージモードブロックであり、ビットストリームは現在のブロックのためのＢＶ差分を欠き、しかし現在のブロックのための残差データを含み得る。さらに別の場合において、ビットストリームの中の値が、現在のブロックがスキップモードブロックであると示す。上記の場合において、ビットストリームは、現在のブロックのためのＢＶ差分を欠き、ビットストリームは現在のブロックのための残差データを欠く。
【００１５】
一般に、複数のＢＶ予測子候補は、前のブロックの、最大でｘ個の実際のＢＶ値を含む。前のブロックは、現在のブロックの周りの近隣における場所に少なくとも部分的に基づいて識別されることができる（例えば、現在のブロックの左、上、及び右上に対するブロック）。あるいは、前のブロックは、現在のブロックと比較したデコーディング順序に少なくとも部分的に基づいて識別されることができる（例えば、最後の３つのイントラＢＣ予測されたブロック）。複数のＢＶ予測子候補が、１つ以上のデフォルトＢＶ予測子をさらに含むことができる。
【００１６】
ＢＶ予測のためのイノベーションは、方法の一部として、あるいは方法を実行するように適合されたコンピューティング装置の一部として、あるいはコンピューティング装置に方法を実行させるコンピュータ実行可能命令を記憶した有形コンピュータ可読媒体の一部として実施されることができる。様々なイノベーションが、組み合わせにおいて又は別個に使用されることができる。具体的に、ＢＶ予測のためのマージモードが、非ゼロの動きを有するデフォルトＢＶ予測子及び／又はイントラＢＣ予測されたブロックのためのスキップモードと関連して使用されることができる。イントラＢＣ予測されたブロックのためのスキップモードは、非ゼロの動きを有するデフォルトＢＶ予測子と関連して使用されることができる。
【００１７】
本発明に係る前述及び他の目的、特徴、及び利点は、添付図面を参照して進む下記の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００１８】
【図１】いくつかの説明される実施形態が実施されることが可能な一例示的なコンピューティングシステムの図である。
【図２ａ】いくつかの説明される実施形態が実施されることが可能な例示的なネットワーク環境の図である。
【図２ｂ】いくつかの説明される実施形態が実施されることが可能な例示的なネットワーク環境の図である。
【図３】一例示的なエンコーダシステムの図であり、該エンコーダシステムと関連して、いくつかの説明される実施形態が実施されることができる。
【図４】一例示的なデコーダシステムの図であり、該デコーダシステムと関連して、いくつかの説明される実施形態が実施されることができる。
【図５ａ】一例示的なビデオエンコーダを例示する図であり、該ビデオエンコーダと関連して、いくつかの説明される実施形態が実施されることができる。
【図５ｂ】一例示的なビデオエンコーダを例示する図であり、該ビデオエンコーダと関連して、いくつかの説明される実施形態が実施されることができる。
【図６】一例示的なビデオデコーダを例示する図であり、該ビデオデコーダと関連して、いくつかの説明される実施形態が実施されることができる。
【図７ａ】ピクチャのブロックのためのイントラＢＣ予測、ブロックのためのＢＶ予測、デフォルト（０，０）ＢＶ予測子、及び非ゼロ値を有するＢＶ予測子をそれぞれ例示する図である。
【図７ｂ】ピクチャのブロックのためのイントラＢＣ予測、ブロックのためのＢＶ予測、デフォルト（０，０）ＢＶ予測子、及び非ゼロ値を有するＢＶ予測子をそれぞれ例示する図である。
【図７ｃ】ピクチャのブロックのためのイントラＢＣ予測、ブロックのためのＢＶ予測、デフォルト（０，０）ＢＶ予測子、及び非ゼロ値を有するＢＶ予測子をそれぞれ例示する図である。
【図７ｄ】ピクチャのブロックのためのイントラＢＣ予測、ブロックのためのＢＶ予測、デフォルト（０，０）ＢＶ予測子、及び非ゼロ値を有するＢＶ予測子をそれぞれ例示する図である。
【図８】非ゼロ値を有するデフォルトＢＶ予測子の使用を含むエンコーディングの手法を例示するフローチャートである。
【図９】非ゼロ値を有するデフォルトＢＶ予測子の使用を含むエンコーディングの手法を例示するフローチャートである。
【図１０】非ゼロ値を有するデフォルトＢＶ予測子の使用を含むデコーディングの手法を例示するフローチャートである。
【図１１】非ゼロ値を有するデフォルトＢＶ予測子の使用を含むデコーディングの手法を例示するフローチャートである。
【図１２】イントラＢＣ予測されたブロックのスキップモードを含むエンコーディング及びデコーディングの手法をそれぞれ例示するフローチャートである。
【図１３】イントラＢＣ予測されたブロックのスキップモードを含むエンコーディング及びデコーディングの手法をそれぞれ例示するフローチャートである
【図１４】ピクチャ内の前のブロックの実際のＢＶ値間におけるＢＶ予測子候補を例示する図である。
【図１５】ピクチャ内の近隣のブロックの実際のＢＶ値間におけるＢＶ予測子候補を例示する図である。
【図１６ａ】複数のＢＶ予測子候補間における選択を含むエンコーディングの手法を例示するフローチャートである。
【図１６ｂ】複数のＢＶ予測子候補間における選択を含むエンコーディングの手法を例示するフローチャートである。
【図１７ａ】複数のＢＶ予測子候補間における選択を含むデコーディングの手法を例示するフローチャートである。
【図１７ｂ】複数のＢＶ予測子候補間における選択を含むデコーディングの手法を例示するフローチャートである。
【発明を実施するための形態】
【００１９】
本詳細な説明は、イントラブロックコピー（“ＢＣ”）予測を用いたブロックのエンコーディング又はデコーディングの間のブロックベクトル（“ＢＶ”）値の予測の分野におけるイノベーションを提示する。例えば、イノベーションのいくつかは、非ゼロ値を有するデフォルトＢＶ予測子の使用に関する。別のイノベーションが、現在のブロックのための複数のＢＶ予測子候補のうち選択された１つの使用に関する。さらに別のイノベーションが、現在のイントラＢＣ予測されたブロックが予測されたＢＶ値を使用するスキップモードの使用に関する。多くの状況において、本イノベーションは、ＢＶ値の符号化効率を向上させ、このことはビットレートを下げ、かつ／あるいは品質を向上させることが可能であり、あるいはその他の方法で、イントラＢＣ予測されたブロックの符号化効率を向上させる。
【００２０】
本明細書に説明される動作は、所々で、ビデオエンコーダ又はデコーダにより実行されるものとして説明されるが、多くの場合において、上記動作は、別のタイプのメディア処理ツール（例えば、画像エンコーダ又はデコーダ）により実行されることが可能である。
【００２１】
本明細書に説明されるイノベーションのいくつかは、ＨＥＶＣ標準に固有のシンタックス要素及び動作を参照して例示される。例えば、ＨＥＶＣ標準のドラフトバージョンＪＣＴＶＣ‐Ｏ１００５、“Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）  Ｒａｎｇｅ  Ｅｘｔｅｎｓｉｏｎｓ  Ｔｅｘｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ：Ｄｒａｆｔ  ５”、ＪＣＴＶＣ‐Ｏ１００５＿ｖ３、２０１３年１１月に対して、参照が行われる。本明細書に説明されるイノベーションは、さらに、他の標準又はフォーマットのために実施されることが可能である。
【００２２】
より一般的に、本明細書に説明される例に対する様々な代替物があり得る。例えば、本明細書に説明される方法のいくつかは、特定の方法動作を分割し、繰り返し、又は省略することなどにより、説明される方法動作の順序付けを変更することによって変えられることが可能である。開示されるテクノロジーの様々な態様が、組み合わせにおいて又は別個に使用されることができる。種々の実施形態が、説明されるイノベーションの１つ以上を使用する。本明細書に説明されるイノベーションのいくつかは、背景技術において記された問題のうち１つ以上に対処する。典型的に、所与の手法／ツールは、すべての上記の問題を解決するものではない。
【００２３】
Ｉ．例示的なコンピューティングシステム
図１は、説明されるイノベーションのいくつかが実施され得る適切なコンピューティングシステム（１００）の一般化された一例を例示する。イノベーションは、多様な汎用目的又は特別目的コンピューティングシステムにおいて実施され得るので、コンピューティングシステム（１００）は、使用法又は機能性の範囲に関していかなる限定も示唆するものではない。
【００２４】
図１を参照すると、コンピューティングシステム（１００）は、１つ以上の処理ユニット（１１０、１１５）、及びメモリ（１２０、１２５）を含む。処理ユニット（１１０、１１５）は、コンピュータ実行可能命令を実行する。処理ユニットは、汎用目的中央処理ユニット（“ＣＰＵ”）、特定用途向け集積回路（“ＡＳＩＣ”）におけるプロセッサ、又は任意の他のタイプのプロセッサであり得る。マルチプロセシングシステムにおいて、複数の処理ユニットが、コンピュータ実行可能命令を実行して処理パワーを増大させる。例えば、図１は、中央処理ユニット（１１０）と、グラフィクス処理ユニット又はコプロセシングユニット（１１５）とを示す。有形メモリ（１２０、１２５）は、処理ユニットによりアクセス可能な揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ等）、又は上記２つの何らかの組み合わせであり得る。メモリ（１２０、１２５）は、ブロックベクトル予測のための１つ以上のイノベーションを実施するソフトウェア（１８０）を、処理ユニットによる実行に適したコンピュータ実行可能命令の形式において記憶する。
【００２５】
コンピューティングシステムは、さらなる特徴を有し得る。例えば、コンピューティングシステム（１００）は、記憶装置（１４０）、１つ以上の入力装置（１５０）、１つ以上の出力装置（１６０）、及び１つ以上の通信接続（１７０）を含む。相互接続メカニズム（図示されていない）、例えば、バス、コントローラ、又はネットワークなどが、コンピューティングシステム（１００）のコンポーネントを相互接続する。典型的に、オペレーティングシステムソフトウェア（図示されていない）が、コンピューティングシステム（１００）において実行される他のソフトウェアのための動作環境を提供し、コンピューティングシステム（１００）のコンポーネントのアクティビティを調整する。
【００２６】
有形記憶装置（１４０）は、取外し可能又は取外し不能であることが可能であり、磁気ディスク、磁気テープ若しくはカセット、ＣＤ‐ＲＯＭ、ＤＶＤ、又は、情報を記憶することに使用されることが可能でありコンピューティングシステム（１００）内でアクセスされることが可能である任意の他の媒体を含む。記憶装置（１４０）は、ブロックベクトル予測のための１つ以上のイノベーションを実施するソフトウェア（１８０）の命令を記憶する。
【００２７】
入力装置（１５０）は、キーボード、マウス、ペン、若しくはトラックボールなどのタッチ入力装置、音声入力装置、スキャニング装置、又は、コンピューティングシステム（１００）に対する入力を提供する別の装置であり得る。ビデオについて、入力装置（１５０）は、カメラ、ビデオカード、ＴＶチューナカード、若しくは、アナログ若しくはデジタル形式においてビデオ入力を受け入れる同様の装置、又は、コンピューティングシステム（１００）へのビデオ入力を読み出すＣＤ‐ＲＯＭ若しくはＣＤ‐ＲＷであり得る。出力装置（１６０）は、ディスプレイ、プリンタ、スピーカー、ＣＤライタ、又は、コンピューティングシステム（１００）からの出力を提供する別の装置であり得る。
【００２８】
通信接続（１７０）は、通信媒体を通じて別のコンピューティングエンティティに対する通信を可能にする。通信媒体は、コンピュータ実行可能命令、オーディオ若しくはビデオの入力若しくは出力、又は他のデータなどの情報を、変調されたデータ信号において運ぶ。変調されたデータ信号は、その特性のうち１つ以上を、信号の中に情報をエンコードする仕方において設定させ又は変更させた信号である。限定ではなく例として、通信媒体は、電気、光、ＲＦ、又は他の搬送波を使用することができる。
【００２９】
イノベーションは、コンピュータ可読媒体の一般的文脈において説明されることができる。コンピュータ可読媒体は、コンピューティング環境内でアクセスされることが可能な任意の利用可能な有形媒体である。限定ではなく例として、コンピューティングシステム（１００）において、コンピュータ可読媒体は、メモリ（１２０、１２５）、記憶装置（１４０）、及び上記のうち任意のものの組み合わせを含む。
【００３０】
イノベーションは、コンピューティングシステムにおいてターゲットの実プロセッサ又は仮想プロセッサ上で実行される、プログラムモジュールに含まれるものなどのコンピュータ実行可能命令の一般的文脈において説明されることができる。一般に、プログラムモジュールは、特定のタスクを実行し又は特定の抽象データタイプを実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含む。プログラムモジュールの機能性は、様々な実施形態において所望されるとおりにプログラムモジュール間で組み合わせられ又は分割されてもよい。プログラムモジュールのコンピュータ実行可能命令は、局所的な又は分散されたコンピューティングシステム内で実行されることが可能である。
【００３１】
用語「システム」及び「装置」は、本明細書において、交換可能に使用される。文脈が別段明確に示さない限り、いずれの用語も、コンピューティングシステム又はコンピューティング装置のタイプに対するいかなる限定も暗示しない。一般に、コンピューティングシステム又はコンピューティング装置は、局所的であるか又は分散されることが可能であり、本明細書に説明される機能性を実施するソフトウェアを有する特別目的ハードウェア及び／又は汎用目的ハードウェアの任意の組み合わせを含むことができる。
【００３２】
開示される方法は、さらに、開示される方法のうち任意のものを実行するように構成された専用のコンピューティングハードウェアを用いて実施されてもよい。例えば、開示される方法は、開示される方法のうち任意のものを実施するように特別に設計され又は構成された集積回路（例えば、ＡＳＩＣ（ＡＳＩＣデジタルシグナルプロセッサ（“ＤＳＰ”）、グラフィクス処理ユニット（“ＧＰＵ”）、又は、プログラマブルロジック装置（“ＰＬＤ”）、例えば、フィールドプログラマブルゲートアレイ（“ＦＰＧＡ”）など）によって実施されることが可能である。
【００３３】
提示のために、本詳細な説明は、「決定する」及び「使用する」などの用語を用いて、コンピューティングシステムにおけるコンピュータ動作を説明する。上記用語は、コンピュータによって実行される動作の高レベル抽象化であり、人間によって実行される行為と混同されるべきではない。上記用語に対応する実際のコンピュータ動作は、実装に依存して変動する。
【００３４】
ＩＩ．例示的なネットワーク環境
図２ａ及び図２ｂは、ビデオエンコーダ（２２０）及びビデオデコーダ（２７０）を含む例示的なネットワーク環境（２０１、２０２）を示す。エンコーダ（２２０）及びデコーダ（２７０）は、ネットワーク（２５０）を通じて適切な通信プロトコルを用いて接続される。ネットワーク（２５０）は、インターネット又は別のコンピュータネットワークを含み得る。
【００３５】
図２ａに示されるネットワーク環境（２０１）において、各リアルタイム通信（“ＲＴＣ”）ツール（２１０）が、双方向通信のためにエンコーダ（２２０）とデコーダ（２７０）との双方を含む。所与のエンコーダ（２２０）が、ＨＥＶＣ標準（Ｈ．２６５としても知られる）、ＳＭＰＴＥ４２１Ｍ標準、ＩＳＯ‐ＩＥＣ１４４９６‐１０標準（Ｈ．２６４又はＡＶＣとしても知られる）、別の標準、又は独自フォーマットの、バリエーション又はエクステンションに準拠した出力を生成することができ、対応するデコーダ（２７０）は、エンコーダ（２２０）からのエンコードされたデータを受け入れることができる。双方向通信は、ビデオ会議、ビデオ電話呼び出し、又は、他の２つのパーティ若しくはマルチパートの通信シナリオの一部であり得る。図２ａにおけるネットワーク環境（２０１）は２つのリアルタイム通信ツール（２１０）を含むが、ネットワーク環境（２０１）は、代わって、マルチパーティ通信に参加する３つ又はそれ以上のリアルタイム通信ツール（２１０）を含んでもよい。
【００３６】
リアルタイム通信ツール（２１０）は、エンコーダ（２２０）によるエンコーディングを管理する。図３は、リアルタイム通信ツール（２１０）に含まれることが可能な一例示的なエンコーダシステム（３００）を示す。別法として、リアルタイム通信ツール（２１０）は別のエンコーダシステムを使用する。リアルタイム通信ツール（２１０）は、さらに、デコーダ（２７０）によるデコーディングを管理する。図４は、一例示的なデコーダシステム（４００）を示し、デコーダシステム（４００）は、リアルタイム通信ツール（２１０）に含まれ得る。別法として、リアルタイム通信ツール（２１０）は別のデコーダシステムを使用する。
【００３７】
図２ｂに示されるネットワーク環境（２０２）において、エンコーディングツール（２１２）が、複数の再生ツール（２１４）に対する配信のためにビデオをエンコードするエンコーダ（２２０）を含み、上記再生ツール（２１４）は、デコーダ（２７０）を含む。ビデオ監視システム、ウェブカメラモニタリングシステム、リモートデスクトップ会議プレゼンテーション、又は他のシナリオに対して、単方向通信が提供されることが可能であり、これにおいて、ビデオはエンコードされて、ある場所から１つ以上の他の場所に送られる。図２ｂにおけるネットワーク環境（２０２）は２つの再生ツール（２１４）を含むが、ネットワーク環境（２０２）は、より多くの又はより少ない再生ツール（２１４）を含むことが可能である。一般に、再生ツール（２１４）はエンコーディングツール（２１２）と通信して、再生ツール（２１４）が受信すべきビデオのストリームを決定する。再生ツール（２１４）は、ストリームを受信し、受信されたエンコードデータを適切な期間の間バッファし（buffers）、デコーディング及び再生を始める。
【００３８】
図３は、エンコーディングツール（２１２）に含まれることが可能な一例示的なエンコーダシステム（３００）を示す。別法として、エンコーディングツール（２１２）は別のエンコーダシステムを使用する。エンコーディングツール（２１２）は、１つ以上の再生ツール（２１４）との接続を管理するサーバ側コントローラロジックをさらに含み得る。図４は、一例示的なデコーダシステム（４００）を示し、デコーダシステム４００は、再生ツール（２１４）に含まれ得る。別法として、再生ツール（２１４）は別のデコーダシステムを使用する。再生ツール（２１４）は、エンコーディングツール（２１２）との接続を管理するクライアント側コントローラロジックをさらに含み得る。
【００３９】
ＩＩＩ．例示的なエンコーダシステム
図３は、一例示的なエンコーダシステム（３００）のブロック図であり、エンコーダシステム（３００）と関連して、いくつかの説明される実施形態が実施され得る。エンコーダシステム（３００）は、複数のエンコーディングモードのうち任意のもの、例えば、リアルタイム通信のための低レイテンシエンコーディングモード、トランスコーディングモード、及びファイル又はストリームから再生のためのメディアを生成するより高いレイテンシのエンコーディングモードなどにおいて動作することができる汎用目的エンコーディングツールであることが可能であり、あるいは、エンコーダシステム（３００）は、上記のエンコーディングモードの１つに適合された特別目的エンコーディングツールであってもよい。エンコーダシステム（３００）は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、あるいはスタンドアロンアプリケーションとして実装されることが可能である。全体的に見て、エンコーダシステム（３００）は、ビデオソース（３１０）からソースビデオフレーム（３１１）のシーケンスを受信し、エンコードされたデータをチャネル（３９０）に対する出力として生成する。チャネルに対して出力される、エンコードされたデータは、本明細書において説明されるＢＶ予測におけるイノベーションを用いてエンコードされたコンテンツを含み得る。
【００４０】
ビデオソース（３１０）は、カメラ、チューナカード、記憶媒体、又は他のデジタルビデオソースであり得る。ビデオソース（３１０）は、例えば３０フレーム毎秒のフレームレートにおいて、ビデオフレームのシーケンスを生成する。本明細書において使用されるとき、用語「フレーム」は、ソースの、符号化され又は再構成された画像データを一般に参照する。プログレッシブスキャンビデオについて、フレームは、プログレッシブスキャンビデオフレームである。インターレースされたビデオについて、例示的な実施形態において、インターレースされたビデオフレームは、エンコーディングの前にインターレース解除される。別法として、２つの相補的なインターレースされたビデオフィールドが、単一のビデオフレームとして一緒にエンコードされ、あるいは２つの別個にエンコードされるフィールドとしてエンコードされる。プログレッシブスキャンビデオフレーム又はインターレーススキャンビデオフレームを示すことの他に、用語「フレーム」又は「ピクチャ」は、単一の非ペアのビデオフィールド、相補的なペアのビデオフィールド、所与の時間におけるビデオオブジェクトを表すビデオオブジェクトプレーン、又はより大きい画像における関心のある領域を示し得る。ビデオオブジェクトプレーン又は領域は、あるシーンの複数のオブジェクト又は領域を含むより大きい画像のうちの一部であり得る。
【００４１】
到着するソースフレーム（３１１）はソースフレーム一時メモリ記憶エリア（３２０）に記憶され、ソースフレーム一時メモリ記憶エリア（３２０）は複数のフレームバッファ記憶エリア（３２１、３２２、・・・、３２ｎ）を含む。フレームバッファ（３２１、３２２等）は、ソースフレーム記憶エリア（３２０）の中の１つのソースフレームを保持する。ソースフレーム（３１１）のうち１つ以上がフレームバッファ（３２１、３２２等）に記憶された後、フレーム選択器（３３０）が、ソースフレーム記憶エリア（３２０）から個々のソースフレームを選択する。エンコーダ（３４０）に対する入力のためにフレーム選択器（３３０）によってフレームが選択される順序は、ビデオソース（３１０）によってフレームが生成される順序とは異なってもよい。例えば、いくつかのフレームのエンコーディングが順序において遅らせられて、いくつかの後のフレームが最初にエンコードされることを可能にし、ゆえに時間的に後方の予測を容易にすることができる。エンコーダ（３４０）の前に、エンコーダシステム（３００）はプリプロセッサ（図示されていない）を含んでもよく、プリプロセッサは、エンコーディングの前に選択されたフレーム（３３１）の前処理（例えば、フィルタリング）を実行する。前処理には、一次（例えば、ルマ）及び二次（例えば、赤に向かう及び青に向かうクロマ差分）成分への色空間コンバージョン、及び、エンコーディングのためのリサンプリング処理（例えば、クロマ成分の空間解像度を低減させるため）を含むことができる。典型的に、エンコーディングの前、ビデオはＹＵＶなどの色空間にコンバートされており、これにおいて、ルマ（Ｙ）成分のサンプル値は明るさ又は輝度値を表し、クロマ（Ｕ、Ｖ）成分のサンプル値は色差値を表す。クロマサンプル値は、より低いクロマサンプリングレートへ（例えば、ＹＵＶ４：２：０フォーマットのために）サブサンプリングされ（sub-sampled）てもよく、あるいは、クロマサンプル値は、ルマサンプル値と同じ（例えば、ＹＵＶ４：４：４フォーマットのための）解像度を有してもよい。あるいは、ビデオは別のフォーマット（例えば、ＲＧＢ４：４：４フォーマット）においてエンコードされてもよい。
【００４２】
エンコーダ（３４０）は、選択されたフレーム（３３１）をエンコードして、符号化されたフレーム（３４１）を生成し、さらに、メモリ管理制御動作（“ＭＭＣＯ”）信号（３４２）又は参照ピクチャセット（“ＲＰＳ”）情報を生成する。現在のフレームが、エンコードされている最初のフレームでない場合、そのエンコーディング処理を実行するとき、エンコーダ（３４０）は、デコード済みフレーム一時メモリ記憶エリア（３６０）に記憶されている１つ以上の事前にエンコードされた／デコードされたフレーム（３６９）を使用することができる。こうした記憶されているデコードされたフレーム（３６９）が、現在のソースフレーム（３３１）のコンテンツのフレーム間（inter-frame）予測のための参照フレームとして使用される。ＭＭＣＯ／ＲＰＳ情報（３４２）は、デコーダに対して、どの再構成されたフレームが参照フレームとして使用されることが可能であり、したがってフレーム記憶エリアに記憶されるべきであるかを示す。
【００４３】
一般に、エンコーダ（３４０）は、エンコーディングタスク、例えば、タイルへの区分化、イントラ予測推定及び予測、動き推定及び補償、周波数変換、量子化、並びにエントロピー符号化などを実行する、複数のエンコーディングモジュールを含む。エンコーダ（３４０）により実行される正確な動作は、圧縮フォーマットに依存して変動し得る。出力されるエンコードされたデータのフォーマットは、ＨＥＶＣフォーマット（Ｈ．２６５）、Ｗｉｎｄｏｗｓ  Ｍｅｄｉａ  Ｖｉｄｅｏフォーマット、ＶＣ‐１フォーマット、ＭＰＥＧｘフォーマット（例えば、ＭＰＥＧ‐１、ＭＰＥＧ‐２、又はＭＰＥＧ‐４）、Ｈ．２６ｘフォーマット（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６４）、又は別のフォーマットの、バリエーション又はエクステンションであり得る。
【００４４】
エンコーダ（３４０）は、フレームを、同じサイズ又は異なるサイズの複数のタイルに区分することができる。例えば、エンコーダ（３４０）は、フレームをタイル行及びタイル列に沿って分割する。該タイル行及びタイル列は、フレーム境界を用いて、フレーム内のタイルの水平及び垂直の境界を定義し、各タイルは、長方形の領域である。タイルは、並列処理のオプションを提供するためにしばしば使用される。フレームは、さらに、１つ以上のスライスとして編成されてもよく、スライスは、フレーム全体又はフレームのうちの領域であり得る。スライスは、フレームの中の他のスライスから独立してデコードされることが可能であり、このことは誤り耐性を向上させる。スライス又はタイルのコンテンツは、エンコーディング及びデコーディングの目的で、ブロック又は、サンプルの他のセットにさらに区分される。
【００４５】
ＨＥＶＣ標準に従うシンタックスのために、エンコーダは、フレーム（又は、スライス若しくはタイル）のコンテンツを、符号化ツリーユニット（coding  tree  unit）に分割する。符号化ツリーユニット（“ＣＴＵ”）は、ルマ符号化ツリーブロック（“ＣＴＢ”）として編成されたルマサンプル値と、２つのクロマＣＴＢとして編成された、対応するクロマサンプル値とを含む。ＣＴＵ（及び、そのＣＴＢ）のサイズはエンコーダによって選択され、例えば、６４×６４、３２×３２、又は１６×１６サンプル値であり得る。ＣＴＵは１つ以上の符号化ユニットを含む。符号化ユニット（“ＣＵ”）は、ルマ符号化ブロック（“ＣＢ”）と、２つの対応するクロマＣＢとを有する。例えば、６４×６４ルマＣＴＢ及び２つの６４×６４クロマＣＴＢを有するＣＴＵ（ＹＵＶ４：４：４フォーマット）が４つのＣＵに分割されることが可能であり、これにおいて、各ＣＵは３２×３２ルマＣＢ及び２つの３２×３２クロマＣＢを含み、各ＣＵは可能性として、より小さいＣＵにさらに分割される。あるいは、別の例として、６４×６４ルマＣＴＢ及び２つの３２×３２クロマＣＴＢを有するＣＴＵ（ＹＵＶ４：２：０フォーマット）が４つのＣＵに分割されることが可能であり、これにおいて、各ＣＵは３２×３２ルマＣＢ及び２つの１６×１６クロマＣＢを含み、各ＣＵは可能性として、より小さいＣＵにさらに分割される。ＣＵの最小許容可能サイズ（例えば、８×８、１６×１６）が、ビットストリームの中で信号伝達される（signaled）ことができる。
【００４６】
一般に、ＣＵはインター又はイントラなどの予測モードを有する。ＣＵは、予測情報（例えば、予測モード詳細、変位値等）及び／又は予測処理を信号伝達する目的で、１つ以上の予測ユニットを含む。予測ユニット（“ＰＵ”）は、ルマ予測ブロック（“ＰＢ”）と２つのクロマＰＢとを有する。イントラ予測されるＣＵについて、ＰＵは、ＣＵが最小サイズ（例えば、８×８）を有さない限り、ＣＵと同じサイズを有する。上記の場合、ＣＵのシンタックス要素により示されるとおり、ＣＵが４つのより小さいＰＵに分割されてもよく（例えば、最小ＣＵサイズが８×８である場合、各々４×４）、あるいは、ＰＵが最小ＣＵサイズを有してもよい。ＣＵは、残差符号化／デコーディングの目的で１つ以上の変換ユニットをさらに有し、変換ユニット（“ＴＵ”）は、変換ブロック（“ＴＢ”）と２つのクロマＴＢとを有する。イントラ予測されるＣＵにおけるＰＵは、単一のＴＵ（サイズにおいてＰＵに等しい）又は複数のＴＵを包含し得る。本明細書において使用されるとき、用語「ブロック」は、文脈に依存して、ＣＢ、ＰＢ、ＴＢ、又はサンプル値の他のセットを示すことがある。エンコーダは、ビデオを如何にしてＣＴＵ、ＣＵ、ＰＵ、ＴＵ等に区分するかを決める。
【００４７】
図３に戻ると、エンコーダは、ソースフレーム（３３１）のイントラ符号化されたブロックを、予測の観点において、フレーム（３３１）の中の他の事前に再構成されたサンプル値から表現する。イントラＢＣ予測について、ピクチャ内推定器が、他の事前に再構成されたサンプル値に関して、ブロックの変位を推定する。フレーム内（intra-frame）予測参照領域は、ブロックのＢＣ予測値を作り出すために使用されるフレームの中のサンプルの領域である。フレーム内予測領域は、ブロックベクトル（“ＢＶ”）値（ＢＶ推定において決定される）で示されることができる。ブロックのイントラ空間予測について、ピクチャ内推定器は、近隣の再構成されたサンプル値の、ブロックへの補外を推定する。ピクチャ内推定器は、予測情報（例えば、イントラＢＣ予測のためのＢＶ値、又はイントラ空間予測のための予測モード（方向）など）を出力することができ、これがエントロピー符号化される。フレーム内予測予測器が予測情報を適用して、イントラ予測値を決定する。
【００４８】
エンコーダ（３４０）は、ソースフレームのフレーム間符号化された予測されたブロックを、予測の観点において、参照フレームから表現する。動き推定器が、１つ以上の参照フレーム（３６９）に関して、ブロックの動きを推定する。複数の参照フレームが使用されるとき、この複数の参照フレームは、異なる時間方向又は同じ時間方向からであり得る。動き補償された予測参照領域は、現在のフレームのサンプル値のブロックについての動き補償された予測値を作り出すために使用される参照フレームの中のサンプル領域である。動き推定器は動きベクトル（“ＭＶ”）情報などの動き情報を出力し、これがエントロピー符号化される。動き補償器がＭＶを参照フレーム（３６９）に適用して、フレーム間予測のための動き補償された予測値を決定する。
【００４９】
エンコーダは、ブロックの予測値（イントラ又はインター）と対応する元の値とにおける差を（もしあれば）決定することができる。これら予測残差値は、周波数変換、量子化、及びエントロピーエンコーディングを用いて、さらにエンコードされる。例えば、エンコーダ（３４０）は、ピクチャ、タイル、スライス、及び／又はビデオの他の部分のための量子化パラメータ（“ＱＰ”）の値を設定し、これに従って、変換係数を量子化する。エンコーダ（３４０）のエントロピー符号器が、量子化された変換係数値と、特定の付帯情報（例えば、ＭＶ情報、ＢＶ予測子のインデックス値、ＢＶ差分、ＱＰ値、モード判断、パラメータ選択）とを圧縮する。典型的に、エントロピー符号化手法には、指数ゴロム（Exponential-Golomb）符号化、ゴロム・ライス符号化、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、可変長対可変長（“Ｖ２Ｖ”；variable-length-to-variable-length）符号化、可変長対固定長（“Ｖ２Ｆ”；variable-length-to-fixed-length）符号化、レンペル・ジブ（“ＬＺ”）符号化、辞書符号化、確率間隔区分エントロピー符号化（“ＰＩＰＥ”；probability  interval  partitioning  entropy  coding）、及び上記の組み合わせが含まれる。エントロピー符号器は、異なる種類の情報に対して異なる符号化手法を使用することができ、複数の手法を組み合わせにおいて適用することができ（例えば、ゴロム・ライス符号化の後に算術符号化を適用することによって）、特定の符号化手法内の複数の符号テーブルの中から選ぶことができる。
【００５０】
適応的デブロッキングフィルタが、エンコーダ（３４０）の中の動き補償ループ内に含まれて、デコードされたフレームの中のブロック境界行及び／又は列にわたる不連続性を滑らかにする。別法として、又はさらに、他のフィルタリング（例えば、デリンギング（de-ringing）フィルタリング、適応ループフィルタリング（“ＡＬＦ”）、又はサンプル適応オフセット（“ＳＡＯ”）フィルタリングなど；図示されていない）がインループフィルタリング動作として適用されてもよい。
【００５１】
符号化されたフレーム（３４１）及びＭＭＣＯ／ＲＰＳ情報（３４２）（又は、ＭＭＣＯ／ＲＰＳ情報（３４２）と同等の情報、なぜならば、フレームの依存性及び順序付け構造がエンコーダ（３４０）においてすでに知られているため）は、デコーディング処理エミュレータ（３５０）によって処理される。デコーディング処理エミュレータ（３５０）は、デコーダの機能性のうちいくつか、例えば、参照フレームを再構成するデコーディングタスクを実施する。ＭＭＣＯ／ＲＰＳ情報（３４２）に準拠する仕方において、デコーディング処理エミュレータ（３５０）は、所与の符号化されたフレーム（３４１）が、エンコードされるべき後のフレームのフレーム間予測における参照フレームとしての使用のために再構成され及び記憶される必要があるかどうかを決定する。符号化されたフレーム（３４１）が記憶される必要がある場合、デコーディング処理エミュレータ（３５０）は、符号化されたフレーム（３４１）を受信して対応するデコードされたフレーム（３５１）を生成するデコーダによって指揮されるであろうデコーディング処理を、モデル化する。そのようにすることにおいて、エンコーダ（３４０）が、デコードされたフレームの記憶領域（３６０）に記憶されているデコードされたフレーム（３６９）を使用しているとき、デコーディング処理エミュレータ（３５０）は、デコーディング処理の一部として、記憶領域（３６０）から、デコードされたフレーム（３６９）をさらに使用する。
【００５２】
デコード済みフレーム一時メモリ記憶エリア（３６０）は、複数のフレームバッファ記憶エリア（３６１、３６２、・・・、３６ｎ）を含む。ＭＭＣＯ／ＲＰＳ情報（３４２）に準拠する仕方において、デコーディング処理エミュレータ（３５０）は、記憶エリア（３６０）のコンテンツを管理して、エンコーダ（３４０）によって参照フレームとしての使用にもはや必要とされないフレームを有する任意のフレームバッファ（３６１、３６２等）を識別する。デコーディング処理をモデル化した後、デコーディング処理エミュレータ（３５０）は、上記の仕方において識別されたフレームバッファ（３６１、３６２等）に、新たにデコードされたフレーム（３５１）を記憶する。
【００５３】
符号化されたフレーム（３４１）及びＭＭＣＯ／ＲＰＳ情報（３４２）は、一時符号化済みデータエリア（３７０）にバッファされる。符号化済みデータエリア（３７０）に集められる符号化されたデータは、要素的な符号化されたビデオビットストリームのシンタックスの一部として、１つ以上のピクチャについてのエンコードされたデータを含む。符号化済みデータエリア（３７０）に集められる符号化されたデータは、符号化されたビデオデータに関するメディアメタデータを（例えば、１つ以上のサプリメンタルエンハンスメント情報（“ＳＥＩ”；supplemental  enhancement  information）メッセージ又はビデオユーザビリティ情報（“ＶＵＩ”；video  usability  information）メッセージの中の１つ以上のパラメータとして）さらに含み得る。
【００５４】
一時符号化済みデータエリア（３７０）からの集められたデータ（３７１）は、チャネルエンコーダ（３８０）によって処理される。チャネルエンコーダ（３８０）は、集められたデータを送信又は記憶のためにメディアストリームとして（例えば、ＩＴＵ‐Ｔ  Ｈ．２２２．０  ｜  ＩＳＯ／ＩＥＣ１３８１８‐１などのメディアプログラムストリーム若しくはトランスポートストリームフォーマット、又はＩＥＴＦ  ＲＦＣ３５５０などのインターネットリアルタイムトランスポートプロトコルフォーマットに従って）パケット化し、かつ／あるいは多重化することができる。上記の場合、チャネルエンコーダ（３８０）は、シンタックス要素をメディア送信ストリームのシンタックスの一部として追加することができる。あるいは、チャネルエンコーダ（３８０）は、集められたデータを記憶のためにファイルとして（例えば、ＩＳＯ／ＩＥＣ１４４９６‐１２などのメディアコンテナフォーマットに従って）編成することができ、この場合、チャネルエンコーダ（３８０）は、シンタックス要素をメディア記憶ファイルのシンタックスの一部として追加することができる。あるいは、より一般的に、チャネルエンコーダ（３８０）は、１つ以上のメディアシステム多重化プロトコル又はトランスポートプロトコルを実装することができ、この場合、チャネルエンコーダ（３８０）は、シンタックス要素をプロトコルのシンタックスの一部として追加することができる。チャネルエンコーダ（３８０）は、チャネルに対する出力を提供し、該チャネルは、記憶装置、通信接続、又は出力のための別のチャネルを表す。チャネルエンコーダ（３８０）又はチャネル（３９０）は、例えば、前方誤り訂正（“ＦＥＣ”）エンコーディング及びアナログ信号変調のために、他の要素（図示されていない）をさらに含んでもよい。
【００５５】
ＩＶ．例示的なデコーダシステム
図４は、一例示的なデコーダシステム（４００）のブロック図であり、デコーダシステム４００と関連して、いくつかの説明される実施形態が実施され得る。デコーダシステム（４００）は、複数のデコーディングモードのうち任意のもの、例えば、リアルタイム通信のための低レイテンシデコーディングモード、及びファイル又はストリームからのメディア再生のためのより高いレイテンシのデコーディングモードなどにおいて動作することができる汎用目的デコーディングツールであることが可能であり、あるいは、デコーダシステム（４００）は、上記のデコーディングモードの１つに適合された特別目的デコーディングツールであってもよい。デコーダシステム（４００）は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、あるいはスタンドアロンアプリケーションとして実装されることが可能である。全体的に見て、デコーダシステム（４００）は、符号化されたデータをチャネル（４１０）から受信し、再構成されたフレームを出力として出力あて先（４９０）のために生成する。符号化されたデータは、本明細書において説明されるＢＶ予測におけるイノベーションを用いてエンコードされたコンテンツを含み得る。
【００５６】
デコーダシステム（４００）はチャネル（４１０）を含み、チャネル４１０は、記憶装置、通信接続、又は入力としての符号化されたデータのための別のチャネルを表し得る。チャネル（４１０）は、チャネル符号化されている符号化されたデータを生成する。チャネルデコーダ（４２０）は、符号化されたデータを処理することができる。例えば、チャネルデコーダ（４２０）は、（例えば、ＩＴＵ‐Ｔ  Ｈ．２２２．０  ｜  ＩＳＯ／ＩＥＣ１３８１８‐１などのメディアプログラムストリーム若しくはトランスポートストリームフォーマット、又はＩＥＴＦ  ＲＦＣ３５５０などのインターネットリアルタイムトランスポートプロトコルフォーマットに従って）メディアストリームとして送信又は記憶のために集められたデータをパケット化解除し（de-packetizes）、かつ／あるいは多重分離する（demultiplexes）。上記の場合、チャネルデコーダ（４２０）は、メディア送信ストリームのシンタックスの一部として追加されたシンタックス要素をパースする（parse）ことができる。あるいは、チャネルデコーダ（４２０）は、（例えば、ＩＳＯ／ＩＥＣ１４４９６‐１２などのメディアコンテナフォーマットに従って）ファイルとして記憶のために集められている符号化されたビデオデータを分離し、この場合、チャネルデコーダ（４２０）は、メディア記憶ファイルのシンタックスの一部として追加されたシンタックス要素をパースすることができる。あるいは、より一般的に、チャネルデコーダ（４２０）は、１つ以上のメディアシステム多重分離プロトコル又はトランスポートプロトコルを実装することができ、この場合、チャネルデコーダ（４２０）は、プロトコルのシンタックスの一部として追加されたシンタックス要素をパースすることができる。チャネル（４１０）又はチャネルデコーダ（４２０）は、例えば、ＦＥＣデコーディング及びアナログ信号復調のために、他の要素（図示されていない）をさらに含んでもよい。
【００５７】
チャネルデコーダ（４２０）から出力される符号化されたデータ（４２１）は、十分な量のこうしたデータが受信されるまで、一時符号化済みデータエリア（４３０）に記憶される。符号化されたデータ（４２１）は、符号化されたフレーム（４３１）及びＭＭＣＯ／ＲＰＳ情報（４３２）を含む。符号化済みデータエリア（４３０）の中の符号化されたデータ（４２１）は、要素的な符号化されたビデオビットストリームのシンタックスの一部として、１つ以上のピクチャのための符号化されたデータを含む。符号化済みデータエリア（４３０）の中の符号化されたデータは、エンコードされたビデオデータに関するメディアメタデータを（例えば、１つ以上のＳＥＩメッセージ又はＶＵＩメッセージの中の１つ以上のパラメータとして）さらに含み得る。
【００５８】
一般に、符号化済みデータエリア（４３０）は、符号化されたデータ（４２１）を、こうした符号化されたデータ（４２１）がデコーダ（４５０）によって使用されるまで、一時的に記憶する。このポイントにおいて、符号化されたフレーム（４３１）及びＭＭＣＯ／ＲＰＳ情報（４３２）のための符号化されたデータ（４２１）は、符号化済みデータエリア（４３０）からデコーダ（４５０）に転送される。デコーディングが継続するとき、新しい符号化されたデータが、符号化済みデータエリア（４３０）に対して追加され、符号化済みデータエリア（４３０）に残っている最も古い符号化されたデータが、デコーダ（４５０）に転送される。
【００５９】
デコーダ（４５０）は、符号化されたフレーム（４３１）をデコードして、対応するデコードされたフレーム（４５１）を生成する。必要に応じて、デコーダ（４５０）は、そのデコーディング処理を実行するとき、１つ以上の事前にデコードされたフレーム（４６９）を参照フレームとしてフレーム間予測に使用してもよい。デコーダ（４５０）は、こうした事前にデコードされたフレーム（４６９）を、デコード済みフレーム一時メモリ記憶エリア（４６０）から読み出す。一般に、デコーダ（４５０）は、デコーディングタスク、例えば、エントロピーデコーディング、フレーム内予測、動き補償されたフレーム間予測、逆量子化、逆周波数変換、及びタイルをマージすることなどを実行する、複数のデコーディングモジュールを含む。デコーダ（４５０）により実行される正確な動作は、圧縮フォーマットに依存して変動し得る。
【００６０】
例えば、デコーダ（４５０）は、圧縮されたフレーム又はフレームのシーケンスのエンコードされたデータを受信し、デコードされたフレーム（４５１）を含む出力を生成する。デコーダ（４５０）において、バッファが、圧縮されたフレームのエンコードされたデータを受信し、適切な時間に、受信したエンコードされたデータをエントロピーデコーダに対して利用可能にする。エントロピーデコーダは、エントロピー符号化された量子化されたデータとエントロピー符号化された付帯情報とを、典型的にはエンコーダにおいて実行されたエントロピーエンコーディングの逆のことを適用することによって、エントロピーデコードする。動き補償器が、動き情報を１つ以上の参照フレームに適用して、再構成されるフレームの任意のインター符号化されたブロックについて、動き補償された予測値を形成する。フレーム内予測モジュールが、現在のブロックのサンプル値を、近隣の事前に再構成されたサンプル値から空間的に予測し、あるいは、イントラＢＣ予測について、現在のブロックのサンプル値を、フレームの中のフレーム内予測領域の事前に再構成されたサンプル値を用いて予測することができる。フレーム内予測領域は、ＢＶ値を用いて示されることができる。デコーダ（４５０）は、予測残差値をさらに再構成する。逆量子化器が、エントロピーデコードされたデータを逆量子化する。例えば、デコーダ（４５０）は、ビットストリームの中のシンタックス要素に基づいて、ピクチャ、タイル、スライス、及び／又はビデオの他の部分についてのＱＰの値を設定し、これに従って、変換係数を逆量子化する。逆周波数変換器が、量子化された周波数ドメインデータを空間ドメインデータにコンバートする。フレーム間予測されたブロックについて、デコーダ（４５０）は、再構成された予測残差値を、動き補償された予測値と組み合わせる。デコーダ（４５０）は、同様に、予測残差値を、イントラ予測からの予測値と組み合わせてもよい。適応的デブロッキングフィルタがビデオデコーダ（４５０）の中の動き補償ループ内に含まれて、デコードされたフレーム（４５１）の中のブロック境界行及び／又は列にわたる不連続性を滑らかにする。別法として、又はさらに、他のフィルタリング（例えば、デリンギング（de-ringing）フィルタリング、ＡＬＦ、又はＳＡＯフィルタリングなど；図示されていない）がインループフィルタリング動作として適用されてもよい。
【００６１】
デコード済みフレーム一時メモリ記憶エリア（４６０）は、複数のフレームバッファ記憶エリア（４６１、４６２、・・・、４６ｎ）を含む。デコードされたフレームの記憶エリア（４６０）は、デコード済みピクチャバッファの一例である。デコーダ（４５０）は、ＭＭＣＯ／ＲＰＳ情報（４３２）を使用して、デコードされたフレーム（４５１）をデコーダ（４５０）が記憶することができるフレームバッファ（４６１、４６２等）を識別する。デコーダ（４５０）は、上記フレームバッファの中にデコードされたフレーム（４５１）を記憶する。
【００６２】
出力シーケンサ（４８０）は、出力順序において生成される次のフレームがデコード済みフレーム記憶エリア（４６０）の中でいつ利用可能であるかを識別する。出力順序において生成される次のフレーム（４８１）が、デコード済みフレーム記憶エリア（４６０）において利用可能であるとき、該フレームは出力シーケンサ（４８０）によって読み出され、出力あて先（４９０）（例えば、ディスプレイ）に対して出力される。一般に、出力シーケンサ（４８０）によってデコード済みフレーム記憶エリア（４６０）からフレームが出力される順序は、デコーダ（４５０）によってフレームがデコードされる順序とは異なってもよい。
【００６３】
Ｖ．例示的なビデオエンコーダ
図５ａ及び図５ｂは、一般化されたビデオエンコーダ（５００）のブロック図であり、ビデオエンコーダ（５００）と関連して、いくつかの説明される実施形態が実施され得る。エンコーダ（５００）は、入力ビデオ信号（５０５）として現在のピクチャを含むビデオピクチャのシーケンスを受信し、出力として符号化されたビデオビットストリーム（５９５）におけるエンコードされたデータを生成する。
【００６４】
エンコーダ（５００）はブロックベースであり、実装に依存するブロックフォーマットを使用する。ブロックは、異なる段階において、例えば、予測、周波数変換、及び／又はエントロピーエンコーディング段階において、さらに細分されてもよい。例えば、ピクチャが、６４×６４ブロック、３２×３２ブロック、又は１６×１６ブロックに分けられることが可能であり、次に上記ブロックが、符号化及びデコーディングのためにサンプル値のより小さいブロックに分けられることが可能である。ＨＥＶＣ標準のエンコーディングの実施において、エンコーダは、ピクチャをＣＴＵ（ＣＴＢ）、ＣＵ（ＣＢ）、ＰＵ（ＰＢ）、及びＴＵ（ＴＢ）に区分する。
【００６５】
エンコーダ（５００）は、ピクチャ内（intra-picture）符号化及び／又はピクチャ間（inter-picture）符号化を用いて、ピクチャを圧縮する。エンコーダ（５００）のコンポーネントの多くは、ピクチャ内符号化及びピクチャ間符号化の双方に使用される。上記コンポーネントによって実行される正確な動作は、圧縮される情報のタイプに依存して変動し得る。
【００６６】
タイル化モジュール（tiling  module）（５１０）が、場合により、ピクチャを、同じサイズ又は異なるサイズの複数のタイルに区分する。例えば、タイル化モジュール（５１０）は、ピクチャをタイル行及びタイル列に沿って分割する。該タイル行及びタイル列は、ピクチャ境界を用いて、ピクチャ内のタイルの水平及び垂直の境界を定義し、各タイルは、長方形の領域である。
【００６７】
一般エンコーディング制御（５２０）が、入力ビデオ信号（５０５）のピクチャと、エンコーダ（５００）の様々なモジュールからのフィードバック（図示されていない）とを受信する。全体的に見て、一般エンコーディング制御（５２０）は、制御信号（図示されていない）を他のモジュール（例えば、タイル化モジュール（５１０）、変換器／スケーラ（scaler）／量子化器（５３０）、スケーラ／逆変換器（５３５）、ピクチャ内推定器（５４０）、動き推定器（５５０）、及びイントラ／インタースイッチなど）に提供して、エンコーディングの間の符号化パラメータを設定し及び変更する。具体的に、一般エンコーディング制御（５２０）は、エンコーディングの間にＢＶ予測の態様（例えば、予測されたＢＶ値を有するスキップモード、ＢＶ予測のためのマージモード）を使用するかどうかと如何にして使用するかとを決めることができる。一般エンコーディング制御（５２０）はさらに、エンコーディング、例えば、レート歪み分析を実行する間、中間結果を評価することができる。一般エンコーディング制御（５２０）は、エンコーディングの間に行われた判断を示す一般制御データ（５２２）を生成し、したがって、対応するデコーダが、一貫性のある判断を行うことができる。一般制御データ（５２２）は、ヘッダフォーマッタ（formatter）／エントロピー符号器（５９０）に提供される。
【００６８】
現在のピクチャがピクチャ間予測を用いて予測される場合、動き推定器（５５０）が、１つ以上の参照ピクチャに関して、入力ビデオ信号（５０５）の現在のピクチャのサンプル値のブロックの動きを推定する。デコード済みピクチャバッファ（５７０）が、１つ以上の再構成された事前に符号化されたピクチャを、参照ピクチャとしての使用のためにバッファする。複数の参照ピクチャが使用されるとき、この複数の参照ピクチャは、異なる時間方向又は同じ時間方向からであり得る。動き推定器（５５０）は、付帯情報として、動きデータ（５５２）、例えば、ＭＶデータ、マージモードインデックス値、及び参照ピクチャ選択データなどを生成する。動きデータ（５５２）は、ヘッダフォーマッタ／エントロピー符号器（５９０）と動き補償器（５５５）とに対して提供される。
【００６９】
動き補償器（５５５）は、ＭＶを、デコード済みピクチャバッファ（５７０）からの再構成された参照ピクチャに適用する。動き補償器（５５５）は、現在のピクチャの動き補償された予測を生成する。
【００７０】
エンコーダ（５００）内の別個の経路において、ピクチャ内推定器（５４０）が、入力ビデオ信号（５０５）の現在のピクチャのサンプル値のブロックについて、ピクチャ内予測を如何にして実行するかを決定する。現在のピクチャは、ピクチャ内符号化を用いて、全体的に又は部分的に符号化されることが可能である。現在のピクチャの再構成（５３８）の値を用いて、イントラ空間予測について、ピクチャ内推定器（５４０）は、現在のピクチャの現在のブロックのサンプル値を、現在のピクチャについての近隣の事前に再構成されたサンプル値から如何にして空間的に予測するかを決定する。あるいは、ＢＶ値を用いるイントラＢＣ予測について、ピクチャ内推定器（５４０）は、現在のピクチャ内の異なる候補領域に対する、現在のブロックのサンプル値の変位を推定する。
【００７１】
ピクチャ内推定器（５４０）は、付帯情報として、イントラ予測データ（５４２）、例えば、イントラ予測が空間予測又はイントラＢＣ予測を使用するか（例えば、イントラブロックごとのフラグ値）、予測モード方向（イントラ空間予測のための）、及びＢＶ値（イントラＢＣ予測のための）を示す情報などを生成する。イントラ予測データ（５４２）は、ヘッダフォーマッタ／エントロピー符号器（５９０）とピクチャ内予測器（５４５）とに対して提供される。
【００７２】
イントラ予測データ（５４２）に従い、ピクチャ内予測器（５４５）は、現在のピクチャの現在のブロックのサンプル値を、現在のピクチャについての近隣の事前に再構成されたサンプル値から空間的に予測する。あるいは、イントラＢＣ予測について、ピクチャ内予測器（５４５）は、現在のブロックのサンプル値を、フレーム内予測領域の事前に再構成されたサンプル値を用いて予測し、該フレーム内予測領域は、現在のブロックのＢＶ値によって示される。いくつかの場合において（例えば、スキップモードブロック又はマージモードブロックのために）、ＢＶ値は、ＢＶ予測子（予測されたＢＶ値）とすることができる。ピクチャのクロマデータが、ルマデータと同じ解像度を有するとき（例えば、フォーマットが、ＹＵＶ４：４：４フォーマット又はＲＧＢ４：４：４フォーマットであるとき）、クロマブロックに適用されるＢＶ値は、ルマブロックに適用されるＢＶ値と同じであり得る。一方、ピクチャのクロマデータが、ルマデータに対して低減された解像度を有するとき（例えば、フォーマットが、ＹＵＶ４：２：０フォーマットであるとき）、クロマブロックに適用されるＢＶ値は、下方にスケール変更され（scaled）、可能性として丸められて、クロマ解像度における差に関して調整される（例えば、ＢＶ値の垂直及び水平の成分を２で除算することと、これらを整数値へと切り捨て又は丸めることとによって）。
【００７３】
イントラ／インタースイッチは、所与のブロックのための予測（５５８）としての使用のために、動き補償された予測又はピクチャ内予測の値を選択する。予測（５５８）のブロックと入力ビデオ信号（５０５）の元の現在のピクチャの対応する部分とにおける差が（もしあれば）、非スキップモードブロックについて、残差（５１８）の値を提供する。現在のピクチャの再構成の間、非スキップモードブロックについて、再構成された残差値は予測（５５８）と組み合わせられて、ビデオ信号（５０５）からの元のコンテンツの再構成（５３８）が生成される。しかしながら、不可逆圧縮において、いくつかの情報は、ビデオ信号（５０５）から依然として失われる。
【００７４】
変換器／スケーラ／量子化器（５３０）において、周波数変換器は、空間ドメインビデオ情報を周波数ドメイン（すなわち、スペクトルの、変換）データにコンバートする。ブロックベースのビデオ符号化について、周波数変換器は、離散コサイン変換（“ＤＣＴ”）、その整数近似、又は別のタイプの前方ブロック変換（例えば、離散サイン変換又はその整数近似）を、予測残差データのブロック（又は、予測（５５８）がヌルである場合はサンプル値データ）に対して適用し、周波数変換係数のブロックを生成する。エンコーダ（５００）はさらに、こうした変換ステップがスキップされることを示すことが可能であり得る。スケーラ／量子化器は、変換係数をスケール変更し、量子化する。例えば、量子化器は、デッドゾーンスケーラ量子化を、周波数ドメインデータに対して、フレーム単位基準、タイル単位基準、スライス単位基準、ブロック単位基準、周波数固有基準、又は他の基準で変動する量子化ステップサイズを用いて適用する。量子化された変換係数データ（５３２）は、ヘッダフォーマッタ／エントロピー符号器（５９０）に提供される。
【００７５】
スケーラ／逆変換器（５３５）において、スケーラ／逆量子化器は、量子化された変換係数に対して逆スケール変更及び逆量子化を実行する。逆周波数変換器が逆周波数変換を実行し、再構成された予測残差値又はサンプル値のブロックを生成する。非スキップモードブロックについて、エンコーダ（５００）は、再構成された残差値を予測（５５８）の値（例えば、動き補償された予測値、ピクチャ内予測値）と組み合わせて、再構成（５３８）を形成する。スキップモードブロックについて、エンコーダ（５００）は、予測（５５８）の値を再構成（５３８）として使用する。
【００７６】
ピクチャ内予測について、再構成（５３８）の値は、ピクチャ内推定器（５４０）及びピクチャ内予測器（５４５）にフィードバックされることができる。さらに、再構成（５３８）の値は、後のピクチャの動き補償された予測に使用されてもよい。再構成（５３８）の値は、さらにフィルタされてもよい。フィルタリング制御（５６０）が、ビデオ信号（５０５）の所与のピクチャについて、再構成（５３８）の値に対してデブロックフィルタリング及びＳＡＯフィルタリングを如何にして実行するかを決定する。フィルタリング制御（５６０）はフィルタ制御データ（５６２）を生成し、これがヘッダフォーマッタ／エントロピー符号器（５９０）とマージ器／フィルタ（５６５）とに対して提供される。
【００７７】
マージ器／フィルタ（５６５）において、エンコーダ（５００）は、異なるタイルからのコンテンツをピクチャの再構成されたバージョンにマージする。エンコーダ（５００）は、デブロックフィルタリング及びＳＡＯフィルタリングをフィルタ制御データ（５６２）に従って選択的に実行して、フレームの中の境界をわたる不連続性を適応的に滑らかにする。別法として、又はさらに、他のフィルタリング（例えば、デリンギングフィルタリング又はＡＬＦなど；図示されていない）が適用されてもよい。タイル境界は、エンコーダ（５００）の設定に依存して、選択的にフィルタされ、あるいはまったくフィルタされないことが可能であり、エンコーダ（５００）は、符号化されたビットストリーム内でシンタックスを提供して、上記のフィルタリングが適用されたか否かを示してもよい。デコード済みピクチャバッファ（５７０）は、再構成された現在のピクチャを、後の動き補償された予測における使用のためにバッファする。
【００７８】
ヘッダフォーマッタ／エントロピー符号器（５９０）は、一般制御データ（５２２）、量子化された変換係数データ（５３２）、イントラ予測データ（５４２）、動きデータ（５２２）、及びフィルタ制御データ（５６２）をフォーマットし、かつ／あるいはエントロピー符号化する。イントラ予測データ（５４２）について、ヘッダフォーマッタ／エントロピー符号器（５９０）は、例えば、コンテキスト適応バイナリ算術符号化を用いて、ＢＶ予測子インデックス値（イントラＢＣ予測のための）を選択し、エントロピー符号化する。非スキップモード、非マージモードブロックについて、ヘッダフォーマッタ／エントロピー符号器（５９０）は、（ＢＶ値のＢＶ予測子に相対した）ＢＶ値のＢＶ差分を決定し、それから、例えば、コンテキスト適応バイナリ算術符号化を用いて、ＢＶ差分をエントロピー符号化する。スキップモードブロック又はマージモードブロックについて、ＢＶ差分は省略される。
【００７９】
ヘッダフォーマッタ／エントロピー符号器（５９０）は、符号化されたビデオビットストリーム（５９５）におけるエンコードされたデータを提供する。符号化されたビデオビットストリーム（５９５）のフォーマットは、ＨＥＶＣフォーマット、Ｗｉｎｄｏｗｓ  Ｍｅｄｉａ  Ｖｉｄｅｏフォーマット、ＶＣ‐１フォーマット、ＭＰＥＧ‐ｘフォーマット（例えば、ＭＰＥＧ‐１、ＭＰＥＧ‐２、又はＭＰＥＧ‐４）、Ｈ．２６ｘフォーマット（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６４）、又は別のフォーマットの、バリエーション又はエクステンションであり得る。
【００８０】
所望される実装及び圧縮のタイプに依存して、エンコーダのモジュールは、追加され、省略され、複数のモジュールに分割され、他のモジュールと組み合わせられ、かつ／あるいは同様のモジュールと置換されることができる。別の実施形態において、異なるモジュール及び／又はモジュールの他の構成を有するエンコーダが、所望される手法のうち１つ以上を実行する。エンコーダの具体的な実施形態は、典型的に、エンコーダ（５００）のバリエーション又は補足されたバージョンを使用する。エンコーダ（５００）内のモジュール間に示される関係はエンコーダにおける情報の一般的フローを示し、他の関係は簡潔さのために示されていない。
【００８１】
ＶＩ．例示的なビデオデコーダ
図６は、一般化されたデコーダ（６００）のブロック図であり、デコーダ（６００）と関連して、いくつかの説明される実施形態が実施され得る。デコーダ（６００）は、符号化されたビットストリーム（６０５）におけるエンコードされたデータを受信し、再構成されたビデオ（６９５）のピクチャを含む出力を生成する。符号化されたビデオビットストリーム（６０５）のフォーマットは、ＨＥＶＣフォーマット、Ｗｉｎｄｏｗｓ  Ｍｅｄｉａ  Ｖｉｄｅｏフォーマット、ＶＣ‐１フォーマット、ＭＰＥＧ‐ｘフォーマット（例えば、ＭＰＥＧ‐１、ＭＰＥＧ‐２、又はＭＰＥＧ‐４）、Ｈ．２６ｘフォーマット（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６４）、又は別のフォーマットの、バリエーション又はエクステンションであり得る。
【００８２】
デコーダ（６００）はブロックベースであり、実装に依存するブロックフォーマットを使用する。ブロックは、異なる段階においてさらに細分されてもよい。例えば、ピクチャが、６４×６４ブロック、３２×３２ブロック、又は１６×１６ブロックに分けられることが可能であり、次に上記ブロックが、サンプル値のより小さいブロックに分けられることが可能である。ＨＥＶＣ標準のデコーディングの実施において、ピクチャは、ＣＴＵ（ＣＴＢ）、ＣＵ（ＣＢ）、ＰＵ（ＰＢ）、及びＴＵ（ＴＢ）に区分される。
【００８３】
デコーダ（６００）は、ピクチャ内デコーディング及び／又はピクチャ間デコーディングを用いて、ピクチャを伸張する。デコーダ（６００）のコンポーネントの多くは、ピクチャ内デコーディング及びピクチャ間デコーディングの双方に使用される。上記コンポーネントによって実行される正確な動作は、伸張される情報のタイプに依存して変動し得る。
【００８４】
バッファが、符号化されたビデオビットストリーム（６０５）におけるエンコードされたデータを受信し、受信したエンコードされたデータをパーサ／エントロピーデコーダ（６１０）に対して利用可能にする。パーサ／エントロピーデコーダ（６１０）は、典型的にはエンコーダ（５００）において実行されたエントロピー符号化の逆のことを適用することによって（例えば、コンテキスト適応バイナリ算術デコーディング）、エントロピー符号化されたデータをエントロピーデコードする。パース及びエントロピーデコードの結果として、パーサ／エントロピーデコーダ（６１０）は、一般制御データ（６２２）、量子化された変換係数データ（６３２）、イントラ予測データ（６４２）、動きデータ（６５２）、及びフィルタ制御データ（６６２）を生成する。イントラ予測データ（６４２）について、パーサ／エントロピーデコーダ（６１０）は、（イントラＢＣ予測のための）ＢＶ予測子インデックス値を、例えば、コンテキスト適応バイナリ算術デコーディングを用いて、エントロピーデコードする。非スキップモード、非マージモードブロックについて、パーサ／エントロピーデコーダ（６１０）は、（例えば、コンテキスト適応バイナリ算術デコーディングを用いて）ＢＶ値のＢＶ差分をさらにエントロピーデコードし、それから、ＢＶ差分を対応するＢＶ予測子と組み合わせて、ＢＶ値を再構成する。スキップモードブロック又はマージモードブロックについて、ＢＶ差分はビットストリームから省略され、ＢＶ値は単にＢＶ予測子である（例えば、ＢＶ予測子インデックス値で示される）。
【００８５】
一般デコーディング制御（６２０）は一般制御データ（６２２）を受信し、制御信号（図示されていない）を他のモジュール（例えば、スケーラ／逆変換器（６３５）、ピクチャ内予測器（６４５）、動き補償器（６５５）、及びイントラ／インタースイッチ）に対して提供して、デコーディングの間のデコーディングパラメータを設定し及び変更する。
【００８６】
現在のピクチャがピクチャ間予測を用いて予測される場合、動き補償器（６５５）は、動きデータ（６５２）、例えば、ＭＶデータ、参照ピクチャ選択データ、マージモードインデックス値などを受信する。動き補償器（６５５）は、ＭＶを、デコード済みピクチャバッファ（６７０）からの再構成された参照ピクチャに適用する。動き補償器（６５５）は、現在のピクチャのインター符号化されたブロックについての動き補償された予測を生成する。デコード済みピクチャバッファ（６７０）は、１つ以上の事前に再構成されたピクチャを参照ピクチャとしての使用のために記憶する。
【００８７】
デコーダ（６００）内の別の経路において、フレーム内予測予測器（６４５）が、イントラ予測データ（６４２）、例えば、イントラ予測が空間予測又はイントラＢＣ予測を使用するか（例えば、イントラブロックごとのフラグ値）、予測モード方向（イントラ空間予測のための）、及びＢＶ値（イントラＢＣ予測のための）を示す情報などを受信する。イントラ空間予測について、現在のピクチャの再構成（６３８）の値を用いて、予測モードデータに従って、ピクチャ内予測器（６４５）は、現在のピクチャの現在のブロックのサンプル値を、現在のピクチャについての近隣の事前に再構成されたサンプル値から空間的に予測する。あるいは、ＢＶ値を用いるイントラＢＣ予測について、ピクチャ内予測器（６４５）は、現在のブロックのサンプル値を、フレーム内予測領域の事前に再構成されたサンプル値を用いて予測し、該フレーム内予測領域は、現在のブロックのＢＶ値によって示される。
【００８８】
イントラ／インタースイッチは、所与のブロックのための予測（６５８）としての使用のために、動き補償された予測又はピクチャ内予測の値を選択する。例えば、ＨＥＶＣシンタックスが守られるとき、イントラ／インタースイッチは、イントラ予測されたＣＵ及びインター予測されたＣＵを含み得るピクチャのＣＵのためにエンコードされたシンタックス要素に基づいて制御されることができる。非スキップモードブロックについて、デコーダ（６００）は、予測（６５８）を再構成された残差値と組み合わせて、ビデオ信号からのコンテンツの再構成（６３８）を生成する。スキップモードブロックについて、デコーダ（６００）は、予測（６５８）の値を再構成（６３８）として使用する。
【００８９】
非スキップモードブロックについて、残差を再構成するために、スケーラ／逆変換器（６３５）は、量子化された変換係数データ（６３２）を受信し、処理する。スケーラ／逆変換器（６３５）において、スケーラ／逆量子化器は、量子化された変換係数に対して逆スケール変更及び逆量子化を実行する。逆周波数変換器が逆周波数変換を実行し、再構成された予測残差値又はサンプル値のブロックを生成する。例えば、逆周波数変換器は逆ブロック変換を周波数変換係数に適用し、サンプル値データ又は予測残差データを生成する。逆周波数変換は、逆ＤＣＴ、その整数近似、又は別のタイプの逆周波数変換（例えば、逆離散サイン変換又はその整数近似）であり得る。
【００９０】
ピクチャ内予測について、再構成（６３８）の値は、ピクチャ内予測器（６４５）に対してフィードバックされることができる。ピクチャ間予測について、再構成（６３８）の値はさらにフィルタされることができる。マージ器／フィルタ（６６５）において、デコーダ（６００）は、異なるタイルからのコンテンツをピクチャの再構成されたバージョンにマージする。デコーダ（６００）は、デブロックフィルタリング及びＳＡＯフィルタリングを、フィルタ制御データ（６６２）及びフィルタ適応の規則に従って選択的に実行して、フレームの中の境界をわたる不連続性を適応的に滑らかにする。別法として、又はさらに、他のフィルタリング（例えば、デリンギングフィルタリング又はＡＬＦなど；図示されていない）が適用されてもよい。タイル境界は、デコーダ（６００）の設定又はエンコードされたビットストリームデータ内のシンタックス指標に依存して、選択的にフィルタされ、あるいはまったくフィルタされないことが可能である。デコード済みピクチャバッファ（６７０）は、再構成された現在のピクチャを、後の動き補償された予測における使用のためにバッファする。
【００９１】
デコーダ（６００）は、後処理（post-processing）フィルタをさらに含んでもよい。後処理フィルタ（６０８）は、デリンギングフィルタリング、適応ウィナー（Wiener）フィルタリング、フィルム粒子再現（film-grain  reproduction）フィルタリング、ＳＡＯフィルタリング、又は別の種類のフィルタリングを含み得る。
【００９２】
所望される実装及び伸張のタイプに依存して、デコーダのモジュールは、追加され、省略され、複数のモジュールに分割され、他のモジュールと組み合わせられ、かつ／あるいは同様のモジュールと置換されることができる。別の実施形態において、異なるモジュール及び／又はモジュールの他の構成を有するデコーダが、所望される手法のうち１つ以上を実行する。デコーダの具体的な実施形態は、典型的に、デコーダ（６００）のバリエーション又は補足されたバージョンを使用する。デコーダ（６００）内のモジュール間に示される関係はデコーダにおける情報の一般的フローを示し、他の関係は簡潔さのために示されていない。
【００９３】
ＶＩＩ．ブロックベクトル予測におけるイノベーション
本セクションは、ブロックベクトル（“ＢＶ”）予測の様々な特徴を提示する。特徴のうちいくつかは、デフォルトＢＶ予測子の使用に関し、特徴のうち別のものは、ＢＶ予測子のマージモード又はイントラブロックコピー（“ＢＣ”）予測のスキップモードに関する。こうした特徴が、レート歪み性能の観点においてより効率的であるイントラＢＣ予測を容易にすることができる。
【００９４】
具体的に、説明されるイノベーションは、特定の「人工的に」作成されたビデオコンテンツ、例えば、スクリーンキャプチャコンテンツなどをエンコードするとき、レート歪み性能を向上させることができる。スクリーンキャプチャコンテンツは、繰り返される構造（例えば、グラフィクス、テキスト文字）を典型的に含み、このことは、イントラＢＣ予測に関して性能を向上させる機会を提供する。スクリーンキャプチャコンテンツは、大抵、高いクロマサンプリング解像度を有するフォーマット（例えば、ＹＵＶ４：４：４又はＲＧＢ４：４：４）においてエンコードされるが、さらに、より低いクロマサンプリング解像度（例えば、ＹＵＶ４：２：０）を有するフォーマットにおいてエンコードされることもある。スクリーンキャプチャコンテンツのエンコーディング／デコーディングの一般的シナリオには、リモートデスクトップ会議、及び、自然のビデオ又は他の「ミックスされたコンテンツ」のビデオに対するグラフィカルなオーバーレイのエンコーディング／デコーディングが含まれる。
【００９５】
Ａ．イントラＢＣ予測モード、ＢＶ値、及びＢＶ予測  ‐  導入
イントラＢＣ予測について、ピクチャの現在のブロックのサンプル値は、同じピクチャの中のサンプル値を用いて予測される。ＢＶは、予測に使用されるサンプル値を含むピクチャの領域に対する、現在のブロックからの変位を示す。予測に使用されるサンプル値は、事前に再構成されたサンプル値である。ＢＶ値は、ビットストリームの中で信号伝達されることが可能であり、デコーダは、このＢＶ値を使用して、予測に使用するためのピクチャの領域を決定することができ、これもまた、デコーダにおいて再構成される。イントラＢＣ予測は、ピクチャ内予測（intra-picture  prediction）の一形式であり、ピクチャのブロックのためのイントラＢＣ予測は、同じピクチャの中のサンプル値以外のいかなるサンプル値も使用しない。
【００９６】
図７ａは、現在のフレーム（７１０）の現在のブロック（７６０）についてのイントラＢＣ予測を例示する。現在のブロックは、符号化ユニット（“ＣＵ”）の符号化ブロック（“ＣＢ”）、予測ユニット（“ＰＵ”）の予測ブロック（“ＰＢ”）、変換ユニット（“ＴＵ”）の変換ブロック（“ＴＢ”）、又は他のブロックであり得る。現在のブロックのサイズは、６４×６４、３２×３２、１６×１６、８×８、又は何らかの他のサイズであり得る。より一般的に、現在のブロックのサイズはｍ×ｎであり、これにおいて、ｍ及びｎの各々は自然数であり、ｍ及びｎは互いに等しくてもよく、あるいは異なる値を有してもよい。別法として、現在のブロックは、何らかの他の形状（例えば、非長方形の形状を有する符号化されたビデオオブジェクトのエリア）を有してもよい。
【００９７】
ＢＶ（７６１）は、現在のブロック（７６０）からの、予測に使用されるサンプル値を含むピクチャの領域（７６２）に対する変位（又は、オフセット）を示す。ＢＶ（７６１）によって示されるフレーム内予測領域（７６２）は、現在のブロック（７６０）のための「マッチングブロック」と称されることがある。マッチングブロックは、現在のブロック（７６０）と同一であってもよく、あるいは、現在のブロック（７６０）の近似であってもよい。現在のブロックの左上位置が現在のフレームにおける位置（ｘ０，ｙ０）にあると仮定し、フレーム内予測領域の左上位置が現在のフレームにおける位置（ｘ１，ｙ１）にあると仮定する。ＢＶは、変位（ｘ１−ｘ０，ｙ１−ｙ０）を示す。例えば、現在のブロックの左上位置が位置（２５６，１２８）にあり、フレーム内予測領域の左上位置が位置（１７６，１０４）にある場合、ＢＶ値は（−８０，−２４）である。上記の例において、負の水平の変位は現在のブロックの左に対する位置を示し、負の垂直の変位は現在のブロックの上の位置を示す。
【００９８】
イントラＢＣ予測は、ＢＣ動作を用いて冗長性（例えば、フレームの内側の繰り返されるパターンなど）を活用することによって符号化効率を向上させることができる。現在のブロックのサンプル値は、現在のブロックのサンプル値を直接エンコードすることに代わって、ＢＶ値を用いて表現される。現在のブロックのサンプル値が、ＢＶ値で示されるフレーム内予測領域のサンプル値に正確にマッチしないとしても、その差は無視可能である（知覚的に目立たない）可能性がある。あるいは、差が有意である（significant）場合、該差は、現在のブロックの元のサンプル値より効率的に圧縮されることが可能な残差値としてエンコードされることができる。
【００９９】
集合的に、イントラＢＣ予測を用いてエンコードされるブロックのＢＶ値は、相当数のビットを消費する可能性がある。ＢＶ値は、ビットレートを低減させるようにエントロピーエンコードされることができる。ＢＶ値のためのビットレートをさらに低減させるために、エンコーダは、ＢＶ値の予測を使用することができる。ＢＶ値は、冗長性をしばしば見せる。所与のブロックのためのＢＶ値は、ピクチャの中の前のブロックのＢＶ値としばしば類似し、あるいは同じでありさえする。ＢＶ予測について、所与のブロックのためのＢＶ値は、ＢＶ予測子を用いて予測される。それから、所与のブロックのためのＢＶ値とＢＶ予測子とにおける差（又は、ＢＶ差分）がエントロピー符号化される。典型的には、ＢＶ差分は、ＢＶ値の水平及び垂直の成分とＢＶ予測子とについて計算される。ＢＶ予測がうまく働くとき、ＢＶ差分は、効率的なエントロピー符号化をサポートする確率分布を有する。ＨＥＶＣ標準（ＪＣＴＶＣ−Ｏ１００５）の現在のドラフトバージョンにおいて、ＢＶ予測子は、現在のＣＴＵ内の最後の符号化されたＣＵのＢＶ値（すなわち、現在のＣＴＵ内の前のイントラＢＣ予測されたブロックのＢＶ値）である。
【０１００】
図７ｂは、フレームの中の現在のブロック（７６０）のＢＶ（７６１）と、フレーム（７１０）の中の前のブロック（７５０）のＢＶ（７５１）を示す。前のブロック（７５０）のＢＶ（７５１）は、現在のブロック（７６０）のＢＶ（７６１）のためのＢＶ予測子として使用される。例えば、ＢＶ値が（−８０，−２４）であり、ＢＶ予測子が（−８０，−３２）である場合、（０，８）のＢＶ差分がエントロピー符号化される。
【０１０１】
デコーダは、ＢＶ値のためのエントロピー符号化されたＢＶ差分を受信し、エントロピーデコードする。デコーダは、さらに、ＢＶ値のためのＢＶ予測子を決定する。デコーダによって決定されるＢＶ予測子は、エンコーダによって決定されるＢＶ予測子と同じである。デコーダは、ＢＶ予測子とデコードされたＢＶ差分とを組み合わせて、ＢＶ値を再構成する。
【０１０２】
ＨＥＶＣ標準（ＪＣＴＶＣ−Ｏ１００５＿ｖ３）の現在のドラフトバージョンにおいて、実際のＢＶ値に基づくＢＶ予測子は、いくつかの状況において利用可能でない。例えば、前の実際のＢＶ値は、所与のＣＴＵにおける最初のイントラＢＣ予測されたブロックに対して利用可能でない。前の実際のＢＶ値がＢＶ予測子に利用可能でないとき（図７ｃに示されるとおり）、（０，０）のデフォルト値がＢＶ予測子として使用される。実質上、このことは、ＣＴＵにおける前のイントラＢＣ予測されたブロックについて利用可能であるＢＶ値がないときに、ＢＶ予測がスキップされることを意味する。
【０１０３】
Ｂ．非ゼロ成分を有するデフォルトＢＶ予測子
本明細書に説明されるイノベーションの一態様に従い、前の実際のＢＶ値が、現在のブロックのＢＶ値のためのＢＶ予測子としての使用に利用可能でないとき、エンコーダ及びデコーダは、非ゼロ成分を有するデフォルトＢＶ予測子を使用する。ゼロ値デフォルトＢＶ予測子と比べて、非ゼロ成分を有するデフォルトＢＶ予測子は、現在のブロックのＢＶ値により近くなる傾向があり、このことは、ＢＶ差分についてのより効率的なエントロピー符号化を結果としてもたらす。さらに、非ゼロ値を有するデフォルトＢＶ予測子は、ＢＶ予測のためのスキップモード又はマージモードに使用可能なオプションを提供することができる。
【０１０４】
１．例示的なデフォルトＢＶ予測子
図７ｄに示されるとおり、現在のブロック（７６０）のＢＶ値（７６１）について、デフォルトＢＶ予測子（７６３）は、非ゼロ水平成分を有することができる。例えば、デフォルトＢＶ予測子は水平ベクトル（ＢＶｘ，０）である。水平ＢＶ成分ＢＶｘの値は、固定された非ゼロ値とすることができる。あるいは、ＢＶｘの値は、現在のブロックの幅であってもよく、これは、現在のブロックと参照領域とにおけるオーバーラップを回避する水平ＢＶ成分ＢＶｘの最小値である。
【０１０５】
例えば、現在のブロックが幅Ｗ及び高さＨを有するＣＵのＣＢであるとき、デフォルトＢＶ予測子の水平ＢＶ成分ＢＶｘの値は、ＣＵの幅Ｗに等しい負のオフセットであってもよい。すなわち、デフォルトＢＶ予測子は（−Ｗ，０）とすることができる。デフォルトＢＶ予測子（ＢＶｘ，０）は、（前のブロックの実際のＢＶ値に基づく）通常のＢＶ予測子（ＢＶｘ，０）が利用不能であるときいつでも、使用されることが可能である。あるいは、デフォルトＢＶ予測子（ＢＶｘ，０）は、現在のブロックのＢＶ値に依存して条件付きで使用されてもよい。例えば、現在のブロックのＢＶ値の垂直ＢＶ成分が−Ｈより小さい場合、デフォルトＢＶ予測子は（−Ｗ，０）である。そうでない場合（現在のブロックのＢＶ値の垂直ＢＶ成分が−Ｈより小さくない）、デフォルトＢＶ予測子は（０，０）である。上記条件は、現在のブロックのＢＶ値が有意な垂直ＢＶ成分を有するとき、（−Ｗ，０）のデフォルトＢＶ予測子が適用されないことを確保する。別法として、非ゼロデフォルトＢＶ予測子（ＢＶｘ，０）は、別の条件に従って条件付きで適用される。
【０１０６】
−Ｗの負のオフセットを有することに代わって、デフォルトＢＶ予測子は、別の負のオフセットを有してもよい。例えば、デフォルトＢＶ予測子は（−２＊Ｗ，０）とすることができる。
【０１０７】
別法として、デフォルトＢＶ予測子は、垂直ベクトル（０，ＢＶｙ）である。垂直ＢＶ成分ＢＶｙの値は固定された非ゼロ値であってもよく、あるいは、ＢＶｙの値は現在のブロックの高さであってもよく、これは現在のブロックと参照領域とにおけるオーバーラップを回避するＢＶｙの最小値である。例えば、現在のブロックが幅Ｗ及び高さＨを有するＣＵのＣＢであるとき、デフォルトＢＶ予測子は（０，−Ｈ）とすることができる。デフォルトＢＶ予測子（０，ＢＶｙ）は、通常のＢＶ予測子が利用不能であるときいつでも、使用されることが可能であり、あるいは、デフォルトＢＶ予測子（０，ＢＶｙ）は、現在のブロックのＢＶ値に依存して条件付きで使用されてもよい。
【０１０８】
別法として、デフォルトＢＶ予測子は、非ゼロ水平成分及び非ゼロ垂直成分を有してもよい。
【０１０９】
２．デフォルトＢＶ予測子を用いた例示的なエンコーディング
図８は、エンコーディングの間に非ゼロ成分を有するデフォルトＢＶ予測子を使用する一般化された手法（８００）を示す。画像エンコーダ又はビデオエンコーダ、例えば、図３又は図５ａ〜図５ｂを参照して説明されるものなどが、手法（８００）を実行することができる。
【０１１０】
エンコーダは、ピクチャの現在のブロックのためのデフォルトＢＶ予測子を決定する（８３０）。例えば、ＨＥＶＣ実装において、現在のブロックは、符号化ツリーユニットの符号化ユニットの一部である。デフォルトＢＶ予測子は、非ゼロ値を有するＢＶ予測子成分を含む。例えば、非ゼロ値を有するＢＶ予測子成分は、水平ＢＶ成分である。実装に依存して、非ゼロ水平ＢＶ成分は、固定値（現在のブロックのサイズから独立した）、現在のブロックの幅に等しい値、又は何らかの他の非ゼロ値を有することができる。あるいは、非ゼロ値を有するＢＶ予測子成分は、垂直ＢＶ成分である。実装に依存して、非ゼロ垂直ＢＶ成分は、固定値（現在のブロックのサイズから独立した）、現在のブロックの高さに等しい値、又は何らかの他の非ゼロ値を有することができる。あるいは、デフォルトＢＶ予測子は、非ゼロ水平ＢＶ成分及び非ゼロ垂直ＢＶ成分を含むことができる。デフォルトＢＶ予測子は、セクションＣに説明されるとおりのスキップモードのため、又はセクションＤに説明されるとおりのマージモードのために組み立てられた（assembled）複数のＢＶ予測子候補のセットの一部とすることができる。
【０１１１】
エンコーダは、デフォルトＢＶ予測子を用いて現在のブロックをエンコードする（８５０）。例えば、エンコーダは、（ａ）現在のブロックのためのＢＶ値を用いてイントラＢＣ予測を実行し、（ｂ）現在のブロックのためのＢＶ値とデフォルトＢＶ予測子とを用いてＢＶ差分を決定し、（ｃ）ＢＶ差分をエンコードする。別法として、エンコーダは、デフォルトＢＶ予測子を用いてイントラＢＣ予測を単に実行する。
【０１１２】
図９は、エンコーディングの間に非ゼロ成分を有するデフォルトＢＶ予測子を使用する、より詳細化された例示的な手法（９００）を示す。画像エンコーダ又はビデオエンコーダ、例えば、図３又は図５ａ〜図５ｂを参照して説明されるものなどが、手法（９００）を実行することができる。
【０１１３】
始め、エンコーダは、ピクチャの現在のブロックのためのＢＶ値を識別する（９１０）。エンコーダは、任意の形式のＢＶ推定を使用して、現在のブロックのためのＢＶ値を識別することができる。ＨＥＶＣ実装において、現在のブロックは、符号化ツリーユニットの符号化ユニットの一部である。
【０１１４】
エンコーダは、実際のＢＶ値がＢＶ予測子としての使用に利用可能であるかどうかをチェックする（９２０）。例えば、エンコーダは、ピクチャの前のブロックのための実際のＢＶ値が利用可能であるかどうかをチェックする。ＨＥＶＣ実装において、前のブロックのための実際のＢＶ値は、（１）前のブロックと現在のブロックとが同じＣＴＵの一部であり、（２）前のブロックの予測モードがイントラＢＣ予測モードである場合、利用可能である。前のブロックのための実際のＢＶ値は、例えば、所与のＣＴＵの最初のイントラＢＣ予測されたブロックについて、利用可能でない。
【０１１５】
実際のＢＶが、ＢＶ予測子としての使用に利用可能である場合、エンコーダは、ＢＶ予測子として実際のＢＶを使用する（９４０）。一方、いずれの前のブロックのための実際のＢＶも、ＢＶ予測子としての使用に利用可能でない場合、エンコーダは、現在のブロックのためのデフォルトＢＶ予測子を決定する（９３０）。デフォルトＢＶ予測子は、非ゼロ値を有するＢＶ予測子成分を含む。例えば、デフォルトＢＶ予測子は、図８の動作（８３０）に関して上記で説明されたとおり、決定される。
【０１１６】
エンコーダは、現在のブロックのためのＢＶ値とＢＶ予測子とにおけるＢＶ差分を決定する（９５０）。エンコーダは、ＢＶ差分をエントロピー符号化する（９６０）。
【０１１７】
３．デフォルトＢＶ予測子を用いた例示的なデコーディング
図１０は、デコーディングの間に非ゼロ成分を有するデフォルトＢＶ予測子を使用する一般化された手法（１０００）を示す。画像デコーダ又はビデオデコーダ、例えば、図４又は図６を参照して説明されるものなどが、手法（１０００）を実行することができる。
【０１１８】
デコーダは、ピクチャの現在のブロックのためのデフォルトＢＶ予測子を決定する（１０３０）。例えば、ＨＥＶＣ実装において、現在のブロックは、符号化ツリーユニットの符号化ユニットの一部である。デフォルトＢＶ予測子は、非ゼロ値を有するＢＶ予測子成分を含む。例えば、非ゼロ値を有するＢＶ予測子成分は、水平ＢＶ成分である。実装に依存して、非ゼロ水平ＢＶ成分は、固定値（現在のブロックのサイズから独立した）、現在のブロックの幅に等しい値、又は何らかの他の非ゼロ値を有することができる。あるいは、非ゼロ値を有するＢＶ予測子成分は、垂直ＢＶ成分である。実装に依存して、非ゼロ垂直ＢＶ成分は、固定値（現在のブロックのサイズから独立した）、現在のブロックの高さに等しい値、又は何らかの他の非ゼロ値を有することができる。あるいは、デフォルトＢＶ予測子は、非ゼロ水平ＢＶ成分及び非ゼロ垂直ＢＶ成分を含むことができる。デフォルトＢＶ予測子は、セクションＣに説明されるとおりのスキップモードのため、又はセクションＤに説明されるとおりのマージモードのために組み立てられた複数のＢＶ予測子候補のセットの一部とすることができる。
【０１１９】
デコーダは、デフォルトＢＶ予測子を用いて現在のブロックをデコードする（１０５０）。例えば、デコーダは、（ａ）現在のブロックのためのＢＶ差分をデコードし、（ｂ）デコードされたＢＶ差分をデフォルトＢＶ予測子と組み合わせて現在のブロックのためのＢＶ値を再構成し、（ｃ）現在のブロックのためのＢＶ値を用いてイントラＢＣ予測を実行する。別法として、デコーダは、デフォルトＢＶ予測子を用いてイントラＢＣ予測を単に実行する。
【０１２０】
図１１は、デコーディングの間に非ゼロ成分を有するデフォルトＢＶ予測子を使用する、より詳細化された例示的な手法（１１００）を示す。画像デコーダ又はビデオデコーダ、例えば、図４又は図６を参照して説明されるものなどが、手法（１１００）を実行することができる。
【０１２１】
デコーダは、実際のＢＶが、ピクチャの現在のブロックのＢＶ値のためのＢＶ予測子としての使用に利用可能であるかどうかをチェックする（１１２０）。例えば、デコーダは、ピクチャの前のブロックのための実際のＢＶ値が利用可能であるかどうかをチェックする。ＨＥＶＣ実装において、前のブロックの実際のＢＶ値は、（１）前のブロックと現在のブロックとが同じＣＴＵの一部であり、（２）前のブロックの予測モードがイントラＢＣ予測モードである場合、利用可能である。前のブロックのための実際のＢＶ値は、例えば、所与のＣＴＵの最初のイントラＢＣ予測されたブロックについて、利用可能でない。
【０１２２】
実際のＢＶが、ＢＶ予測子としての使用に利用可能である場合、デコーダは、ＢＶ予測子として実際のＢＶを使用する（１１４０）。一方、いかなる前のブロックのための実際のＢＶもＢＶ予測子としての使用に利用可能でない場合、デコーダは、現在のブロックのためのデフォルトＢＶ予測子を決定する（１１３０）。デフォルトＢＶ予測子は、非ゼロ値を有するＢＶ予測子成分を含む。例えば、デフォルトＢＶ予測子は、図１０の動作（１０３０）に関連して上記で説明されたとおり、決定される。
【０１２３】
デコーダはさらに、現在のブロックのためのＢＶ差分をエントロピーデコードする（１１５０）。それから、デコーダは、ＢＶ差分をＢＶ予測子と組み合わせて（１１６０）、現在のブロックのためのＢＶ値を再構成する。
【０１２４】
４．代替物及びバリエーション
上記で説明されたデフォルトＢＶ予測子の例において、デフォルトＢＶ予測子の値は、現在のブロックの場所に依存して制約されない。別法として、デフォルトＢＶ予測子の値は、現在のブロックの場所に依存して制約されてもよい。例えば、現在のブロックがピクチャの端部にあり、したがってデフォルトＢＶ予測子がピクチャの外側の場所を指し示すことになる場合、デフォルトＢＶ予測子はピクチャ内の場所を指し示すように制約され、あるいは、（０，０）ＢＶ予測子が使用される。あるいは、別の例として、ＢＶ値がＣＴＵの何らかのセット（例えば、現在のＣＴＵ及び前のＣＴＵ）の中の場所を参照するように制約されるＨＥＶＣ実装について、デフォルトＢＶ予測子は、ＣＴＵの上記セット内の場所を参照するように制約される。あるいは、別の例として、ピクチャが複数のタイル又は複数のスライスを含むＨＥＶＣ実装について、ＢＶ値（及び、デフォルトＢＶ予測子）は、現在のタイル（及び／又は現在のスライス）を用いてある場所を参照するように制約されてもよい。
【０１２５】
上記で説明されたデフォルトＢＶ予測子の例において、デフォルトＢＶ予測子の値は、現在のブロックの場所に依存して切り替わらない。別法として、デフォルトＢＶ予測子の値は、現在のブロックの場所に依存して切り替わることができる。例えば、現在のブロックが、ピクチャ（又は、使用される場合、タイル、若しくはスライス）の左端を除くどこかにある場合、デフォルトＢＶ予測子は、水平ＢＶ予測子（ＢＶｘ，０）である。現在のブロックがピクチャ（又は、使用される場合、タイル、若しくはスライス）の左端にあり、あるいは、デフォルト水平ＢＶ予測子がその他の方法でピクチャ（又は、使用される場合、タイル、若しくはスライス）の外側の場所を参照することになる場合、デフォルトＢＶ予測子は、垂直ＢＶ予測子（０，ＢＶｙ）である。そして、現在のブロックがピクチャ（又は、使用される場合、タイル、若しくはスライス）の左上角にあり、あるいは、デフォルト水平ＢＶ予測子及び垂直ＢＶ予測子がその他の方法でピクチャ（又は、使用される場合、タイル、若しくはスライス）の外側の場所を参照することになる場合、デフォルトＢＶ予測子は、（０，０）ＢＶ予測子である。
【０１２６】
Ｃ．イントラＢＶ予測のスキップモード
本明細書に説明されるイノベーションの別の態様に従い、エンコーダ及びデコーダは、特定のイントラＢＣ予測されたブロックについて、スキップモードを使用する。スキップモードにおいて、イントラＢＣ予測されたブロックは、予測されたＢＶ値を使用し、ビットストリームの中に残差データを有さない。いくつかのシナリオにおいて、イントラＢＣ予測されたブロックに対するスキップモードの使用は、レート歪み効率をかなり向上させることができる。
【０１２７】
一般に、エンコーダは、現在のイントラＢＣ予測されたブロックについて、スキップモードをいつ使用すべきかを決める。エンコーダは、イントラＢＣ予測された領域が現在のブロックとどれほど近くマッチするかに基づいて、残差値の知覚的な重要さに基づいて、残差値のエンコーディングに利用可能なビットレートに基づいて、及び／又は他のファクタに基づいて、スキップモードを使用することを決めることができる。エンコーダは、エンコーディング速度が制約である特定のエンコーディングモード、例えば、リアルタイムエンコーディングにおいて、イントラＢＣ予測されたブロックのスキップモードをより好むことができる。
【０１２８】
図１２は、イントラＢＣ予測されたブロックに対するスキップモードを含むエンコーディングの一般化された手法（１２００）を示す。画像エンコーダ又はビデオエンコーダ、例えば、図３又は図５ａ〜図５ｂを参照して説明されるものなどが、手法（１２００）を実行することができる。
【０１２９】
ピクチャの現在のブロックについて、現在のブロックが、スキップモードにおいてエンコードされた、イントラＢＣ予測されたブロックである場合、エンコーダは、ＢＶ予測を使用して（１２１０）現在のブロックのためのＢＶ値を決定する。現在のブロックのためのＢＶ値は、ピクチャ内の領域に対する変位を示す。ＢＶ予測は、マージモード予測、最後に符号化されたイントラＢＣ予測されたブロックのＢＶ値を用いた予測、近隣のイントラＢＣ予測されたブロックのＢＶ値の成分観点での中央値を用いた予測、又は何らかの他の形式のＢＶ予測を含むことができる。現在のブロックは、例えば、ＣＴＵのＣＵの一部である。
【０１３０】
エンコーダは、ＢＶ値（ここでは、予測されたＢＶ値）と共にイントラＢＣ予測を用いて現在のブロックをエンコードする（１２２０）。エンコーダは、ビットストリーム内に、現在のブロックがスキップモードにおいてエンコードされているとの指標を出力する。ブロックがスキップモードにおいてエンコードされるので、ビットストリームは、現在のブロックのためのＢＶ差分及び残差データを欠く。しかしながら、ビットストリームは、現在のブロックのためのＢＶ値として使用するための、複数のＢＶ予測子候補のセットからの、ＢＶ予測子候補の選択を示すインデックス値を含むことができる。例えば、複数のＢＶ予測子候補のセットが２つのＢＶ予測子候補を有するとき、インデックス値はフラグ値である。あるいは、複数のＢＶ予測子候補のセットが３つ以上のＢＶ予測子候補を有するとき、インデックス値は整数値である。インデックス値は、例えば算術符号化を用いて、エントロピー符号化されることができる。
【０１３１】
図１３は、イントラＢＣ予測されたブロックに対するスキップモードを含むデコーディングの一般化された手法（１３００）を示す。画像デコーダ又はビデオデコーダ、例えば、図４又は図６を参照して説明されるものなどが、手法（１３００）を実行することができる。
【０１３２】
ピクチャの現在のブロックについて、現在のブロックが、スキップモードにおいてエンコードされた、イントラＢＣ予測されたブロックである場合、デコーダは、ビットストリームから、現在のブロックがスキップモードにおいてエンコードされているとの指標を受信する。ブロックがスキップモードにおいてエンコードされているので、ビットストリームは、現在のブロックのためのＢＶ差分及び残差データを欠く。しかしながら、上記で説明されたとおり、ビットストリームは、現在のブロックのＢＶ値として使用するための、複数のＢＶ予測子候補のセットからの、ＢＶ予測子候補の選択を示すインデックス値を含むことができる。現在のブロックは、例えば、ＣＴＵのＣＵの一部である。
【０１３３】
デコーダは、ＢＶ予測を使用して（１３２０）現在のブロックのためのＢＶ値を決定する。ＢＶ予測は、エンコーダにおいて実行されるＢＶ予測を一般に反映する。ＢＶ予測は、マージモード予測、最後に符号化されたイントラＢＣ予測されたブロックのＢＶ値を用いた予測、近隣のイントラＢＣ予測されたブロックのＢＶ値の成分観点での中央値を用いた予測、又は何らかの他の形式のＢＶ予測を含むことができる。デコーダは、ＢＶ値（ここでは、予測されたＢＶ値）と共にイントラＢＣ予測を用いて現在のブロックをデコードする（１３３０）。
【０１３４】
Ｄ．ＢＶ予測のマージモード
本明細書に説明されるイノベーションの別の態様に従い、エンコーダ及びデコーダは、ＢＶ予測について、マージモードを使用する。マージモードは、ＢＶ予測の品質をかなり向上させることができ、このことが今度は、ビットストリーム内でＢＶ差分によって消費されるビットの量を低減させる。
【０１３５】
マージモードについて、ブロックのためのＢＶ予測子を決定するとき、エンコーダは、ＢＶ予測子候補のセットを組み立て、ブロックのＢＶ予測子として使用するための、ＢＶ予測子候補うち１つを選択し、選択されたＢＶ予測子候補を示すインデックス値をビットストリーム内で信号伝達する。デコーダは、ＢＶ予測子候補のセットを組み立て、信号伝達されたインデックス値に基づいて、ブロックのＢＶ予測子として使用するための、ＢＶ予測子候補のうち１つを選択する。インデックス値はビットストリーム内のビットを消費するが、マージモードはＢＶ予測をかなり向上させ、ゆえにＢＶ差分によって消費されるビットを低減させて、ビットレートにおける全体的な低減を結果としてもたらすことが可能である。
【０１３６】
例示的な実装において、ＢＶ予測に対するマージモードは、イントラＢＣ予測されたブロックに対するスキップモードとの組み合わせにおいて使用される。別法として、ＢＶ予測に対するマージモードは、スキップモードがイントラＢＣ予測されたブロックに対して有効にされない場合でさえ、使用されることが可能である。
【０１３７】
１．例示的なＢＶ予測子候補及びインデックス値
マージモードにおいてブロックのためのＢＶ予測子を決定するとき、エンコーダ又はデコーダは、ＢＶ予測子候補のセットを組み立てる。ＢＶ予測子候補のセットの組成は実装に依存し、しかし、エンコーダ側とデコーダ側とにおいて同じである。
【０１３８】
１つのアプローチにおいて、ＢＶ予測子候補は、ピクチャ内の事前に符号化されたブロックの実際のＢＶ値の中から組み立てられる。一般に、エンコーダ及びデコーダは、ピクチャ内の前のブロックの、最大ｘ個の実際のＢＶ値を決定する。前のブロックは、ピクチャ内の事前に符号化されたイントラＢＣ予測されたブロックである。具体的に、これらは、デコーディング順序において現在のブロックより早い、ｘ個の最も近いイントラＢＣ予測されたブロックである。ｘの値は実装に依存し、例えば、２、３、４、５、又は何らかの他の数とすることができる。より多くのＢＶ予測子候補を使用することは、インデックス値のためのビットレートを増加させるが、ＢＶ予測の品質を向上させる傾向があり、このことが今度は、ＢＶ差分によって消費されるビットを低減させる。
【０１３９】
前のイントラＢＣ予測されたブロックは、現在のブロックの近隣である必要はない。実際のＢＶ値を有する、ｘより少ない前のブロックが利用可能である場合、ＢＶ予測子のセットは、ｘより少ないＢＶ予測子候補を含むことができる。
【０１４０】
図１４は、上記アプローチの一例を示す。図１４において、３つの前のイントラＢＣ予測されたブロック（１４３０、１４４０、１４５０）の３つのＢＶ値（１４３１、１４４１、１４５１）が、現在のフレーム（１４１０）の現在のブロック（１４６０）のＢＶ予測子に対するマージモードのためのＢＶ予測子候補を提供する。前のブロック（１４３０、１４４０、１４５０）は図１４の例において連続的であるが、前のブロックは連続的である必要はない（すなわち、ＢＶ予測子候補を提供する、前のイントラＢＣ予測されたブロックは、ピクチャの中の他のイントラＢＣ予測されていないブロックによって分離されることが可能である）。
【０１４１】
ＢＶ予測子候補のセットは、１つ以上のデフォルトＢＶ予測子をさらに含むことができる。図１４の例において、ＢＶ予測子候補のセットは、水平変位を有するデフォルトＢＶ予測子（ＢＶｘ，０）と垂直変位を有するデフォルトＢＶ予測子（０，ＢＶｙ）とを含む。具体的に、水平変位及び垂直変位を有するデフォルトＢＶ予測子は、純粋な水平又は垂直方向に一般に続く、テキストコンテンツに有用である傾向がある。
【０１４２】
マージモードインデックス値は、それぞれのＢＶ予測子候補に関連付けられる。典型的に、より小さいインデックス値は、選択される可能性がより大きいＢＶ予測子候補に関連付けられ、より大きいインデックス値は、選択される可能性がより小さいＢＶ予測子候補に関連付けられ、このことは、エントロピー符号化の後、インデックス値のビットレートを低減させる傾向がある。図１４において、インデックス値ｉｄｘ０．．．ｉｄｘ４は、予期される選択の見込みに従って、ＢＶ値（１４５１、１４４１、１４３１）及びデフォルトＢＶ予測子を有するＢＶ予測子候補に割り当てられる。
【０１４３】
例えば、いくつかの実施において、事前に符号化されたブロックについての２つの実際のＢＶ値が、ＢＶ予測子候補ＢＶｃａｎｄ０及びＢＶｃａｎｄ１として記憶される。新しいＢＶ値が使用された後、より古いＢＶ予測子候補ＢＶｃａｎｄ１が、より新しいＢＶ予測子候補ＢＶｃａｎｄ０で置換され、より新しいＢＶ予測子候補ＢＶｃａｎｄ０は、ちょうど使用されたＢＶ値で置換される。エンコーダ側において、現在のブロックについて、エンコーダは、ＢＶ予測子として使用するための、ＢＶｃａｎｄ０及びＢＶｃａｎｄ１のうち１つを選択する。マージモードインデックス値として、エンコーダは、ＢＶｃａｎｄ０及びＢＶｃａｎｄ１のうちいずれの１つがエンコーダにより使用されており、デコーダにより使用されるべきであるかを示すフラグ値を信号伝達する。デコーダ側において、デコーダはフラグ値を受信し、パースし、フラグ値に基づいて、ブロックのＢＶ予測子として使用するための、ＢＶｃａｎｄ０及びＢＶｃａｎｄ１のうち１つを選択する。上記アプローチにおいて、エンコーダ及びデコーダは各々、２つのＢＶ予測子候補ＢＶｃａｎｄ０及びＢＶｃａｎｄ１を記憶し、更新する。
【０１４４】
別の例として、いくつかの他の実施において、事前に符号化されたブロックの１つの実際のＢＶ値が、第１のＢＶ予測子候補ＢＶｃａｎｄ０として記憶され、デフォルトＢＶ予測子が、第２のＢＶ予測子候補ＢＶｃａｎｄ１として記憶される。例えば、デフォルトＢＶ予測子は（ＢＶｘ，０）であり、ここで、ＢＶｘは、現在のブロックの幅Ｗに等しい負のオフセットであるか、あるいは何らかの他の非ゼロ値を有することが可能である。新しいＢＶ値が使用された後、第１のＢＶ予測子候補ＢＶｃａｎｄ０は、ちょうど使用されたＢＶ値で置換され、しかし、第２のＢＶ予測子候補ＢＶｃａｎｄ１は、変更されない。エンコーダ側において、現在のブロックについて、エンコーダは、ＢＶ予測子として使用するための、ＢＶｃａｎｄ０及びＢＶｃａｎｄ１のうち１つを選択する。エンコーダは、ＢＶｃａｎｄ０及びＢＶｃａｎｄ１のうちいずれの１つがエンコーダにより使用されており、デコーダにより使用されるべきであるかを示すフラグ値を信号伝達する。デコーダは、フラグ値を受信し、パースし、フラグ値に基づいて、ブロックのＢＶ予測子として使用するための、ＢＶｃａｎｄ０及びＢＶｃａｎｄ１のうち１つを選択する。上記アプローチにおいて、エンコーダ及びデコーダは各々、２つのＢＶ予測子候補ＢＶｃａｎｄ０及びＢＶｃａｎｄ１を記憶し、第１のＢＶ予測子候補ＢＶｃａｎｄ０は、エンコーディング又はデコーディングの間に更新される。
【０１４５】
別のアプローチにおいて、ＢＶ予測子候補は、ピクチャ内の現在のブロックの近くにある事前に符号化されたブロックの実際のＢＶ値の中から組み立てられる。エンコーダ及びデコーダは、近隣ブロックの、最大でｘ個の実際のＢＶ値を決定する。近隣のブロックは、現在のブロックの左、現在のブロックの上、現在のブロックの右上などに対するピクチャ内の事前に符号化されたイントラＢＣ予測されたブロックである。ｘの値は実装に依存し、例えば、２、３、４、５、又は何らかの他の数とすることができる。実際のＢＶ値を有する、ｘより少ない近隣ブロックが利用可能である場合、ＢＶ予測子候補のセットは、ｘより少ないＢＶ予測子候補を含むことができる。
【０１４６】
図１５は、上記アプローチの一例を示す。図１５において、３つの近隣のイントラＢＣ予測されたブロック（１５３０、１５４０、１５５０）の３つのＢＶ値（１５３１、１５４１、１５５１）が、現在のフレーム（１５１０）の現在のブロック（１５６０）のＢＶ予測子に対するマージモードのためのＢＶ予測子候補を提供する。近隣のブロックのうち１つが利用可能でない場合（例えば、イントラＢＣ予測されたブロックでない、あるいは、ピクチャ、タイル、又はスライスの外側である）、いくつかの場合において、別の近隣のブロックが追加されることが可能である（例えば、現在のブロックの左上に対するブロック）。図１５に示されるとおり、ＢＶ予測子候補のセットは、１つ以上のデフォルトＢＶ予測子を含むことができる（例えば、水平変位を有するデフォルトＢＶ予測子（ＢＶｘ，０）、及び垂直変位を有するデフォルトＢＶ予測子（０，ＢＶｙ）など）。図１５において、インデックス値ｉｄｘ０．．．．ｉｄｘ４は、予期される選択の見込みに従って、ＢＶ値（１５４１、１５３１、１５５１）及びデフォルトＢＶ予測子を有するＢＶ予測子候補に割り当てられる。
【０１４７】
ＢＶ予測子候補間における冗長値の扱いは、実装に依存する。いくつかの実装において、マージモードのためのＢＶ予測子候補のセットは、冗長値を含むことができる。すなわち、冗長なＢＶ予測子が、除去又は置換されない。別の実装において、マージモードのためのＢＶ予測子のセットを組み立てるとき、エンコーダ及びデコーダは、冗長なＢＶ予測子値をセットに追加しない。このアプローチは、ＢＶ予測子候補のより小さいセットを結果としてもたらすことが可能であり、符号化されたインデックス値のビットレートを低減させることができる。さらに別の実装において、マージモードのためのＢＶ予測子候補のセットを組み立てるとき、エンコーダ及びデコーダは、すでにセット内にあるＢＶ予測子候補に対して冗長であることになるＢＶ予測子候補を、異なるＢＶ予測子候補（例えば、別の事前に符号化されたイントラＢＣ予測されたブロックからの、別の近隣のイントラＢＣ予測されたブロックからの、別のデフォルトＢＣ予測子オプションからの）で置換する。例えば、第３の前のイントラＢＣ予測されたブロックのＢＶ値が、第１の前のイントラＢＣ予測されたブロック又は第２の前のイントラＢＣ予測されたブロックのＢＶ値と同じである場合、エンコーダ／デコーダは、代わって、第４の前のイントラＢＣ予測されたブロックのＢＶ値をＢＶ予測子候補のセットに追加する。このＢＶ値が冗長であることになる場合、エンコーダ／デコーダは、代わって、第５、第６等の前のイントラＢＣ予測されたブロックのＢＶ値を追加する。あるいは、エンコーダ／デコーダは、別のデフォルトＢＶ予測子を追加する。
【０１４８】
２.選択されたＢＶ予測子を用いた例示的なエンコーディング
図１６ａは、ＢＶ予測に対するマージモードを含むエンコーディングの一般化された手法（１６００）を示す。画像エンコーダ又はビデオエンコーダ、例えば、図３又は図５ａ〜図５ｂを参照して説明されるものなどが、手法（１６００）を実行することができる。
【０１４９】
始め、エンコーダは、ピクチャの現在のイントラＢＣ予測されたブロックのための複数のＢＣ予測子候補のセットを決定する（１６１０）。現在のブロックは、例えば、ＣＴＵのＣＵの一部である。エンコーダは、図１４及び図１５を参照して説明されたアプローチのうち１つを用いて、又は別のアプローチを用いて、ＢＶ予測子候補のセットを決定することができる。一般に、ＢＶ予測子候補は、それぞれ、前のブロックについての最大ｘ個の実際のＢＶ値を含むことができ、ここで、ｘは実装に依存する（例えば、ｘは、２、３、４、５、又は何らかの他の数である）。ｘ個の前のブロックは、現在のブロックの周りの近隣（neighborhood）における場所（例えば、図１５を参照）及び／又は現在のブロックと比較したデコーディング順序（例えば、図１４を参照）に少なくとも部分的に基づいて識別されることができる。ＢＶ予測子候補は、１つ以上のデフォルトＢＶ予測子（例えば、各々が、非ゼロ値を有するＢＶ予測子成分を有する）をさらに含むことができる。
【０１５０】
エンコーダは、現在のイントラＢＣ予測されたブロックに使用するための、複数のＢＶ予測子候補のうち１つを選択する（１６２０）。例えば、現在のブロックが、選択されたＢＶ予測子候補と共にイントラＢＣ予測を用いてエンコードされることになるとき、エンコーダは、参照されるイントラ予測領域が何らかのメトリック（例えば、絶対差の和、平均二乗誤差）によって現在のブロックに最も近くマッチするためのＢＶ予測子候補を選択する。あるいは、現在のブロックが、イントラＢＣ予測に使用されることになるＢＶ値（ＢＶ推定を通して識別される）を有するとき、エンコーダは、現在のブロックのためのＢＶ値に最も近くマッチするＢＶ予測子候補を選択する。上記選択は、最小のＢＶ差分を結果としてもたらし、このことは、エントロピー符号化の効率を向上させる傾向がある。
【０１５１】
エンコーダは、選択されたＢＶ予測子候補を用いて、現在のイントラＢＣ予測されたブロックをエンコードする（１６３０）。図１６ｂは、例示的な実装における現在のブロックのエンコーディング（１６３０）の詳細を示す。エンコーダは、現在のブロックがスキップモードにおいてエンコードされているかどうかをチェックする（１６３２）。そうである場合、エンコーダは、選択されたＢＶ予測子と共にイントラＢＣ予測を用い、しかしいかなる残差データも用いずに、現在のブロックをエンコードする（１６３３）。そうでない場合（スキップモードでない）、エンコーダは、現在のブロックがマージモードにおいてエンコードされているかどうかをチェックする（１６３４）。そうである場合、エンコーダは、選択されたＢＶ予測子と共にイントラＢＣ予測を用いて現在のブロックをエンコードする（１６３５）。マージモードにおいて、エンコーダは、現在のブロックのための残差データを場合によりエンコードする。そうでない場合（マージモードでない）、エンコーダは、現在のブロックのためのＢＶ値と共にイントラＢＣ予測を用いて現在のブロックをエンコードし（１６３７）、場合により、現在のブロックのための残差データをエンコードする。
【０１５２】
エンコーダは、選択されたＢＶ予測子候補を示すインデックス値をビットストリーム内に出力する（１６４０）。ＢＶ予測子候補のセットが２つのＢＶ予測子候補を含むとき、インデックス値はフラグとすることができる。あるいは、３つ以上のＢＶ予測子候補が存在するとき、インデックス値は整数値とすることができる。インデックス値はエントロピー符号化され、あるいは固定長値として信号伝達されることが可能である。イントラＢＣ予測モードシンタックス要素が、現在のブロックがイントラＢＣ予測モードを用いてエンコードされていることを示す場合、インデックス値は、別個のシンタックス要素としてビットストリーム内で（条件付きで）信号伝達されることが可能である。あるいは、インデックス値は、別のシンタックス要素（例えば、現在のブロックがイントラＢＣ予測モードを用いてエンコードされているかどうかを示すシンタックス要素）と共同でビットストリーム内で信号伝達されることが可能である。
【０１５３】
エンコーダは、現在のブロックのための任意のエンコードされたデータをさらに出力する。ビットストリーム内の値が、現在のブロックがスキップモードにおいてエンコードされているかどうかを示すことができる。現在のブロックがスキップモードブロックである場合、ビットストリームは、現在のブロックのためのＢＶ差分を欠き、現在のブロックのための残差データを欠く。現在のブロックがマージモードブロックである場合、ビットストリームは、現在のブロックのためのＢＶ差分を欠き、しかし、現在のブロックのための残差データを含み得る。そうでない場合（現在のブロックが非スキップモードの、非マージモードのブロックである）、ビットストリームは、現在のブロックのためのＢＶ差分（選択されたＢＶ予測子候補と現在のブロックのためのＢＶ値とにおける差を示す）を含み、さらに、現在のブロックのための残差データを含み得る。
【０１５４】
エンコーダがデータ構造を使用して、前のイントラＢＣ予測されたブロックに使用された実際のＢＶ値を追跡するとき、エンコーダは、現在のブロックのためのＢＶ値を用いて上記データ構造を更新することができる。
【０１５５】
３．選択されたＢＶ予測子を用いた例示的なデコーディング
図１７ａは、ＢＶ予測子に対するマージモードを含むデコーディングの一般化された手法（１７００）を示す。画像デコーダ又はビデオデコーダ、例えば、図４又は図６を参照して説明されるものなどが、手法（１７００）を実行することができる。
【０１５６】
始め、デコーダは、ビットストリームから、ピクチャの現在のブロックのためのインデックス値を受信する（１７１０）。現在のブロックは、例えば、ＣＴＵのＣＵの一部である。インデックス値は、複数のＢＶ予測子候補のセットの中から、選択されたＢＶ予測子候補を示す。ＢＶ予測子候補セットが２つのＢＶ予測子候補を含むとき、インデックス値はフラグとすることができる。あるいは、３つ以上のＢＶ予測子候補が存在するとき、インデックス値は整数値とすることができる。インデックス値は、エントロピー符号化されることが可能であり、この場合にはデコーダはインデックス値をエントロピーデコードし、あるいは、固定長値として信号伝達されることが可能である。イントラＢＣ予測モードシンタックス要素が、現在のブロックがイントラＢＣ予測モードを用いてエンコードされたことを示す場合、インデックス値は、別個のシンタックス要素としてビットストリーム内で（条件付きで）信号伝達されることが可能である。あるいは、インデックス値は、別のシンタックス要素（例えば、現在のブロックがイントラＢＣ予測モードを用いてエンコードされているかどうかを示すシンタックス要素）と共同でビットストリーム内で信号伝達されることが可能である。
【０１５７】
デコーダは、現在のブロックのための任意のエンコードされたデータをさらに受信する。デコーダは、デコーディングの適切な段階において、エンコードされたデータをエントロピーデコードする。ビットストリームの中の値が、現在のブロックがスキップモードにおいてエンコードされたかどうかを示すことができる。現在のブロックがスキップモードブロックである場合、ビットストリームは、現在のブロックのためのＢＶ差分を欠き、現在のブロックのための残差データを欠く。現在のブロックがマージモードブロックである場合、ビットストリームは、現在のブロックのためのＢＶ差分を欠き、しかし、現在のブロックのための残差データを含み得る。そうでない場合（現在のブロックが非スキップモードの、非マージモードのブロックである）、ビットストリームは、現在のブロックのためのＢＶ差分を含み、さらに、現在のブロックのための残差データを含み得る。
【０１５８】
デコーダは、現在のブロックのための複数のＢＶ予測子候補のセットを決定する（１７２０）。デコーダは、図１４及び図１５を参照して説明されたアプローチのうち１つを用いて、又は別のアプローチを用いて、ＢＶ予測子候補のセットを決定することができる。一般に、ＢＶ予測子候補は、前のブロックについての最大ｘ個の実際のＢＶ値を含むことができ、ここで、ｘは実装に依存する（例えば、ｘは、２、３、４、５、又は何らかの他の数である）。ｘ個の前のブロックは、現在のブロックの周りの近隣における場所（例えば、図１５を参照）及び／又は現在のブロックと比較したデコーディング順序（例えば、図１４を参照）に少なくとも部分的に基づいて識別されることができる。ＢＶ予測子候補は、１つ以上のデフォルトＢＶ予測子（例えば、各々が、非ゼロ値を有するＢＶ予測子成分を有する）をさらに含むことができる。
【０１５９】
インデックス値に基づいて、デコーダは、現在のブロックに使用するための、複数のＢＶ予測子候補のうち１つを選択する（１７３０）。デコーダは、選択されたＢＶ予測子候補を用いて、現在のブロックをデコードする（１７４０）。図１７ｂは、例示的な実装における現在のブロックのデコーディング（１７４０）の詳細を示す。デコーダは、現在のブロックがスキップモードにおいてエンコードされたかどうかをチェックする（１７４２）。そうである場合、デコーダは、選択されたＢＶ予測子と共にイントラＢＣ予測を用い、しかしいかなる残差データも用いずに、現在のブロックをデコードする（１７４３）。そうでない場合（スキップモードでない）、デコーダは、現在のブロックがマージモードにおいてエンコードされたかどうかをチェックする（１７４４）。そうである場合、デコーダは、選択されたＢＶ予測子と共にイントラＢＣ予測を用いて現在のブロックをデコードする（１７４５）。マージモードにおいて、デコーダは、現在のブロックのための残差データを（存在する場合に）デコードする。そうでない場合（マージモードでない）、デコーダは、現在のブロックのためのＢＶ値（選択されたＢＶ予測子に相対したＢＶ差分を用いてデコードされた）と共にイントラＢＣ予測を用いて現在のブロックをデコードし（１７４７）、さらに、現在のブロックのための残差データを（存在する場合に）デコードする。
【０１６０】
デコーダがデータ構造を使用して、前のイントラＢＣ予測されたブロックに使用された実際のＢＶ値を追跡するとき、デコーダは、現在のブロックのためのＢＶ値を用いて上記データ構造を更新することができる。
【０１６１】
４．マージモードの例示的な実装
ＨＥＶＣ実装において、ＣＵのシンタックス及びセマンティクスは、ＢＶ予測に対するマージモード及び／又はイントラＢＣ予測されたブロックに対するスキップモードのためのシンタックス要素を信号伝達するように、モディファイされることが可能である。
【０１６２】
ＪＣＴＶＣ−Ｏ１００５＿ｖ３におけるドラフトＨＥＶＣ仕様において、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］は現在のＣＵがスキップされるかどうかを示し、しかし、このフラグは、現在のスライスが“Ｐ”スライス（predictive  slice）又は“Ｂ”スライス（bi-predictive  slice）である場合のみ信号伝達される。アレイインデックスｘ０、ｙ０は、ピクチャの左上ルマサンプルに相対した、考慮されているＣＢの左上ルマサンプルの場所（ｘ０，ｙ０）を規定する。ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］が１である場合、現在のＣＵはスキップされ、ＣＵのｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］の後、マージ候補インデックスｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］を除き、さらなるシンタックス要素はパースされない。ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］が０である場合、ＣＵはスキップされない。ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］が存在しないとき、これは０であるように推論される。
【０１６３】
１つのあり得るモディフィケーションに従い、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］が、現在のスライスが“Ｉ”スライス（intra  slice）である場合にさらに信号伝達される。イントラＢＣ予測が（シーケンスパラメータセットの中のフラグｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇに従って）有効にされるとき、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］の値が１である場合、現在のＣＵはスキップされ、ＣＵのｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］の後、ＢＶ予測子インデックス値ｉｄｘを除き、さらなるシンタックス要素はパースされない。具体的に、現在のスキップされるＣＵについて、ＢＶ差が信号伝達されない。一方、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］の値が０である場合、現在のＣＵはスキップされない。
【０１６４】
ＪＣＴＶＣ−Ｏ１００５＿ｖ３におけるドラフトＨＥＶＣ仕様において、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］は、現在のＣＵがイントラＢＣ予測モードにおいて符号化されるかどうかを示す。アレイインデックスｘ０、ｙ０は、ピクチャの左上ルマサンプルに相対した、考慮されているＣＢの左上ルマサンプルの場所（ｘ０，ｙ０）を規定する。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］が１である場合、現在のＣＵはイントラＢＣ予測モードにおいて符号化される。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］が０である場合、現在のＣＵはイントラ空間予測を用いて符号化される。存在しないとき、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇの値は０であるように推論される。
【０１６５】
ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］に対する１つのあり得るモディフィケーションに従い、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］が１であるとき、現在のＣＵのためのシンタックスが、ＢＶ予測子候補の選択を示すＢＶ予測子インデックス値ｉｄｘを含む。インデックス値ｉｄｘは、２つのＢＶ予測子候補間における選択を示すフラグ値であることが可能であり、あるいは、３つ以上のＢＶ予測子候補間における選択を示す整数値であることが可能である。インデックス値は、例えば算術符号化を用いて、エントロピー符号化されることができる。
【０１６６】
あるいは、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］の別のあり得るモディフィケーションに従い、シンタックス要素は、２値フラグに代わって整数値である。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］が０である場合、現在のＣＵは、ＪＣＴＶＣ−Ｏ１００５＿ｖ３にあるとおり、イントラ空間予測を用いて符号化される。一方、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］が０より大きい場合、現在のＣＵはイントラＢＣ予測モードにおいて符号化され、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］はさらに、ＢＶ予測子インデックス値ｉｄｘを示す。例えば、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］が１である場合、ｉｄｘは１であり、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］が２である場合、ｉｄｘは２である、などである。換言すると、ＢＶ予測子インデックス値ｉｄｘは、単一のシンタックス要素において空間又はＢＣ予測のための２成分値（binary  value）を用いて共同で符号化される。
【０１６７】
ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］をモディファイすることとインデックス値ｉｄｘを信号伝達することとのいずれの方法についても、変数ＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［ｉｄｘ］［ｃｏｍｐＩｄｘ］が、現在のＣＵのイントラＢＣ予測に使用されることになるＢＶ予測子候補を規定する。例えば、図１４の例において、ＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［０］［ｃｏｍｐＩｄｘ］、ＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［１］［ｃｏｍｐＩｄｘ］、及びＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［２］［ｃｏｍｐＩｄｘ］が、最も最近の前のイントラＢＣ予測されたブロックのうち最大で３つのＢＶ値を記憶する。あるいは、図１５の例において、ＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［０］［ｃｏｍｐＩｄｘ］、ＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［１］［ｃｏｍｐＩｄｘ］、及びＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［２］［ｃｏｍｐＩｄｘ］が、最大で３つの近隣のイントラＢＣ予測されたブロックのＢＶ値を記憶する。ＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［３］［ｃｏｍｐＩｄｘ］及びＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［４］［ｃｏｍｐＩｄｘ］が、それぞれ、水平方向及び垂直方向におけるデフォルトＢＶ予測子を記憶する。水平ＢＶ成分は、ｃｏｍｐＩｄｘ＝０を割り当てられ、垂直ＢＶ成分は、ｃｏｍｐＩｄｘ＝１を割り当てられる。
【０１６８】
スキップモードブロック又はマージモードブロックについて、ブロックに対してＢＶ差分は信号伝達されない。ブロックのＢＶ値は、選択されたＢＶ予測子候補である。
【０１６９】
非スキップモードの、非マージモードのブロックについて、ＢＶ差分はビットストリーム内で信号伝達される。変数ＢｖｄＩｎｔｒａ［ｘ０］［ｙ０］［ｃｏｍｐＩｄｘ］が、ＢＶ差分を規定する。アレイインデックスｘ０、ｙ０は、ピクチャの左上ルマサンプルに相対した、考慮されているＰＢの左上ルマサンプルの場所（ｘ０，ｙ０）を規定する。水平ＢＶ差分成分は、ｃｏｍｐＩｄｘ＝０を割り当てられ、垂直ＢＶ差分成分は、ｃｏｍｐＩｄｘ＝１を割り当てられる。ブロックのＢＶ値は、ｃｏｍｐＩｄｘ＝０．．１について、ＢｖＩｎｔｒａ［ｘ０］［ｙ０］［ｃｏｍｐＩｄｘ］＝ＢｖｄＩｎｔｒａ［ｘ０］［ｙ０］［ｃｏｍｐＩｄｘ］＋ＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［ｉｄｘ］［ｃｏｍｐＩｄｘ］である。
【０１７０】
それから、変数ＢｖＩｎｔｒａＰｒｅｄｉｃｔｏｒ［ｉｄｘ］［ｃｏｍｐＩｄｘ］は、現在のＣＵのためのＢＶ値を含むように更新されることが可能である。
【０１７１】
５．代替物及びバリエーション
現在のブロックが、ＢＶ推定を通して識別されたＢＶ値を有するとき、エンコーダは、任意の形式のＢＶ推定を使用して、現在のブロックのためのＢＶ値を識別することができる。現在のブロックのためのＢＶ推定の間、エンコーダは、現在のブロックに利用可能な１つ以上のＢＶ予測子候補を評価することによって開始することができる。ＢＶ予測子候補と共にＢＶ推定を開始することは、適切なＢＶ値を迅速に識別するのに役立ち、他のＢＶ値の評価を回避することができる。エンコーダは、必要に応じて、他のＢＶ値を評価する。エンコーダは、データ構造を使用して、ＢＶ予測子候補を追跡することができる。ＢＶ値が、ブロックの異なるサイズに対して（例えば、３２×３２ＣＵ、１６×１６ＣＵ、８×８ＣＵ、又はより小さいＴＵ若しくはＣＵに対して）適用されることができるとき、データ構造は、ブロックの異なるサイズに対して、異なるＢＶ予測子候補を含むことができる（例えば、３２×３２ＣＵのための１つ以上のＢＶ予測子候補、１６×１６ＣＵのための１つ以上のＢＶ予測子候補、など）。現在のブロックについて、エンコーダは、現在のブロックのレベル（サイズ）のためのデータ構造に記憶されたＢＶ予測子候補を最初評価し、それから、必要とされる場合、他のＢＶ値の評価を進める。
【０１７２】
開示された発明の原理が適用され得る多くのとり得る実施形態の観点から、例示された実施形態は本発明の好適な例に過ぎず、本発明の範囲を限定するものと解されるべきでないことが認識されるべきである。むしろ、本発明の範囲は、別記の請求項によって定義される。したがって、これら請求項の範囲及び主旨内に入るすべてを本発明として主張する。
上記の実施形態につき以下の付記を残しておく。
［付記１］
ビデオエンコーダ又は画像エンコーダを有するコンピューティング装置において、
ピクチャの現在のブロックのためのデフォルトブロックベクトル（“ＢＶ”）予測子を決定するステップであって、上記デフォルトＢＶ予測子は、非ゼロ値を有するＢＶ予測子成分を含む、ステップと、
上記デフォルトＢＶ予測子を用いて上記現在のブロックをエンコードするステップと、
を含む方法。
［付記２］
上記デフォルトＢＶ予測子を用いて上記現在のブロックをエンコードするステップは、
上記現在のブロックのためのＢＶ値を用いてイントラブロックコピー（“ＢＣ”）予測を実行することと、
上記現在のブロックのための上記ＢＶ値と上記現在のブロックのための上記デフォルトＢＶ予測子とを用いて上記現在のブロックのためのＢＶ差分を決定することと、
上記現在のブロックのための上記ＢＶ差分をエンコードすることと、
を含む、付記１に記載の方法。
［付記３］
上記デフォルトＢＶ予測子を用いて上記現在のブロックをエンコードするステップは、上記デフォルトＢＶ予測子を用いてイントラＢＣ予測を実行することを含む、付記１に記載の方法。
［付記４］
ビデオデコーダ又は画像デコーダを有するコンピューティング装置において、
ピクチャの現在のブロックのためのデフォルトブロックベクトル（“ＢＶ”）予測子を決定するステップであって、上記デフォルトＢＶ予測子は、非ゼロ値を有するＢＶ予測子成分を含む、ステップと、
上記デフォルトＢＶ予測子を用いて上記現在のブロックをデコードするステップと、
を含む方法。
［付記５］
上記デフォルトＢＶ予測子を用いて上記現在のブロックをデコードするステップは、
上記現在のブロックのためのＢＶ差分をデコードすることと、
上記現在のブロックのための上記のデコードされたＢＶ差分を、上記現在のブロックのための上記デフォルトＢＶ予測子と組み合わせて、上記現在のブロックのためのＢＶ値を再構成することと、
上記現在のブロックのための上記ＢＶ値を用いて、イントラブロックコピー（“ＢＣ”）予測を実行することと、
を含む、付記４に記載の方法。
［付記６］
上記デフォルトＢＶ予測子を用いて上記現在のブロックをデコードするステップは、上記デフォルトＢＶ予測子を用いてイントラＢＣ予測を実行することを含む、付記４に記載の方法。
［付記７］
上記デフォルトＢＶ予測子は、組み立てられた複数のＢＶ予測子候補のセットの一部である、付記１乃至６のうちいずれか１項に記載の方法。
［付記８］
上記ピクチャの前のブロックのための実際のＢＶ値が利用可能であるかをチェックするステップであって、上記現在のブロックのための上記デフォルトＢＶ予測子は、上記ピクチャのいずれの前のブロックのための実際のＢＶ値も利用可能でない場合のみ使用される、ステップ、
をさらに含む付記１乃至６のうちいずれか１項に記載の方法。
［付記９］
上記前のブロックのための上記実際のＢＶ値は、（１）上記前のブロックと上記現在のブロックとが所与の符号化ツリーユニットの一部であり、（２）上記前のブロックの予測モードがイントラＢＣ予測モードである、場合に利用可能である、付記８に記載の方法。
［付記１０］
上記現在のブロックは符号化ユニットの一部である、付記１乃至９のうちいずれか１項に記載の方法。
［付記１１］
上記非ゼロ値を有する上記ＢＶ予測子成分は、水平ＢＶ成分である、付記１乃至１０のうちいずれか１項に記載の方法。
［付記１２］
上記非ゼロ値を有する上記ＢＶ予測子成分は、垂直ＢＶ成分である、付記１乃至１０のうちいずれか１項に記載の方法。
［付記１３］
上記非ゼロ値は、上記現在のブロックの高さ又は幅である、付記１乃至１０のうちいずれか１項に記載の方法。
［付記１４］
上記非ゼロは、上記現在のブロックのサイズから独立した固定値である、付記１乃至１０のうちいずれか１項に記載の方法。
［付記１５］
ビデオエンコーダ又は画像エンコーダを有するコンピューティング装置において、
ブロックベクトル（“ＢＶ”）予測を使用して、ピクチャの現在のブロックのためのＢＶ値を決定するステップであって、上記現在のブロックのための上記ＢＶ値は、上記ピクチャ内の領域に対する変位を示す、ステップと、
上記ＢＶ値と共にイントラブロックコピー予測を用いて上記現在のブロックをエンコードするステップと、
上記現在のブロックがスキップモードにおいてエンコードされている指標をビットストリーム内に出力するステップであって、上記ビットストリームは、上記現在のブロックのためのＢＶ差分及び残差データを欠く、ステップと、
を含む方法。
［付記１６］
ビデオデコーダ又は画像デコーダを有するコンピューティング装置において、
ビットストリームから、ピクチャの現在のブロックがスキップモードにおいてエンコードされている指標を受信するステップであって、上記ビットストリームは、上記現在のブロックのためのブロックベクトル（“ＢＶ”）差分及び残差データを欠く、ステップと、
ＢＶ予測を使用して、上記現在のブロックのためのＢＶ値を決定するステップであって、上記現在のブロックのための上記ＢＶ値は、上記ピクチャ内の領域に対する変位を示す、ステップと、
上記ＢＶ値と共にイントラブロックコピー予測を用いて上記現在のブロックをデコードするステップと、
を含む方法。
［付記１７］
上記ビットストリームは、上記現在のブロックの上記ＢＶ値として使用するための、複数のＢＶ予測子候補のセットからの、ＢＶ予測子候補の選択を示すインデックス値を含む、付記１５又は１６に記載の方法。
［付記１８］
上記インデックス値はフラグ値であり、上記複数のＢＶ予測子候補のセットは２つのＢＶ予測子候補を有する、付記１７に記載の方法。
［付記１９］
上記インデックス値は整数値であり、上記複数のＢＶ予測子候補のセットは３つ以上のＢＶ予測子候補を有する、付記１７に記載の方法。
［付記２０］
上記複数のＢＶ予測子候補は１つ以上のデフォルトＢＶ予測子を含み、上記１つ以上のデフォルトＢＶ予測子の各々は、非ゼロ値を有するＢＶ予測子成分を含む、付記１９に記載の方法。
［付記２１］
ビデオエンコーダ又は画像エンコーダを有するコンピューティング装置において、
ピクチャの現在のブロックのための、複数のブロックベクトル（“ＢＶ”）予測子候補のセットを決定するステップと、
上記現在のブロックに使用するための、上記複数のＢＶ予測子候補のうち１つを選択するステップと、
上記の選択されたＢＶ予測子候補を用いて上記現在のブロックをエンコードするステップと、
上記の選択されたＢＶ予測子候補を示すインデックス値をビットストリーム内に出力するステップと、
を含む方法。
［付記２２］
ビデオデコーダ又は画像デコーダを有するコンピューティング装置において、
ビットストリームから、インデックス値を受信するステップと、
ピクチャの現在のブロックのための、複数のブロックベクトル（“ＢＶ”）予測子候補のセットを決定するステップと、
上記インデックス値に基づいて、上記現在のブロックに使用するための、上記複数のＢＶ予測子候補うち１つを選択するステップと、
上記の選択されたＢＶ予測子候補を用いて上記現在のブロックをデコードするステップと、
を含む方法。
［付記２３］
上記現在のブロックはマージモードブロックであり、上記ビットストリームは上記現在のブロックのためのＢＶ差分を欠く、付記２１又は２２に記載の方法。
［付記２４］
上記ビットストリームは上記現在のブロックのための残差データを欠く、付記２３に記載の方法。
［付記２５］
上記ビットストリームは上記現在のブロックのための残差データを含む、付記２３に記載の方法。
［付記２６］
上記ビットストリーム内の値が、上記現在のブロックがスキップモードブロックであると示し、上記ビットストリームは上記現在のブロックのためのＢＶ差分を欠き、上記ビットストリームは上記現在のブロックのための残差データを欠く、付記２１又は２２に記載の方法。
［付記２７］
上記ビットストリームは上記現在のブロックのためのＢＶ差分を含み、上記ＢＶ差分は、上記の選択されたＢＶ予測子候補と上記現在のブロックのためのＢＶ値とにおける差を示す、付記２１又は２２に記載の方法。
［付記２８］
上記インデックス値はフラグ値であり、上記複数のＢＶ予測子候補のセットは２つのＢＶ予測子候補を有する、付記２１乃至２７のうちいずれか１項に記載の方法。
［付記２９］
上記インデックス値は整数値であり、上記複数のＢＶ予測子候補のセットは、３つ以上のＢＶ予測子候補を有する、付記２１乃至２７のうちいずれか１項に記載の方法。
［付記３０］
上記複数のＢＶ予測子候補は、前のブロックの、最大ｘの実際のＢＶ値を含む、付記２１乃至２９のうちいずれか１項に記載の方法。
［付記３１］
ｘは少なくとも２である、付記３０に記載の方法。
［付記３２］
上記前のブロックは、上記現在のブロックの周りの近隣における場所に少なくとも部分的に基づいて識別される、付記３０に記載の方法。
［付記３３］
上記前のブロックは、上記現在のブロックと比較したデコーディング順序に少なくとも部分的に基づいて識別される、付記３０に記載の方法。
［付記３４］
上記複数のＢＶ予測子候補は１つ以上のデフォルトＢＶ予測子を含み、上記１つ以上のデフォルトＢＶ予測子の各々は、非ゼロ値を有するＢＶ予測子成分を含む、付記２１乃至３３のうちいずれか１項に記載の方法。
［付記３５］
上記インデックス値は、上記現在のブロックがイントラブロックコピー予測モードを用いてエンコードされているかを示すシンタックス要素の一部としてビットストリーム内で信号伝達される、付記２１乃至３４のうちいずれか１項に記載の方法。
［付記３６］
イントラブロックコピー予測モードシンタックス要素が、上記現在のブロックがイントラブロックコピー予測モードを用いてエンコードされていると示す場合、上記インデックス値は、上記ビットストリーム内で条件付きで信号伝達される、付記２１乃至３４のうちいずれか１項に記載の方法。
［付記３７］
前のブロックの実際のＢＶ値を追跡することに使用されるデータ構造を更新するステップ、
をさらに含む付記２１乃至３６のうちいずれか１項に記載の方法。
［付記３８］
付記１乃至３７のうちいずれか１項に記載の方法を実行するように適合させたコンピューティング装置。
［付記３９］
コンピュータ実行可能命令を記憶した１つ以上のコンピュータ可読媒体であって、上記コンピュータ実行可能命令によりプログラムされたコンピューティング装置に付記１乃至３７のうちいずれか１項に記載の方法を実行させる、１つ以上のコンピュータ可読媒体。
【図１】
0006355744.tif 000002
【図２ａ】
0006355744.tif 000003
【図２ｂ】
0006355744.tif 000004
【図３】
0006355744.tif 000005
【図４】
0006355744.tif 000006
【図５ａ】
0006355744.tif 000007
【図５ｂ】
0006355744.tif 000008
【図６】
0006355744.tif 000009
【図７ａ】
0006355744.tif 000010
【図７ｂ】
0006355744.tif 000011
【図７ｃ】
0006355744.tif 000012
【図７ｄ】
0006355744.tif 000013
【図８】
0006355744.tif 000014
【図９】
0006355744.tif 000015
【図１０】
0006355744.tif 000016
【図１１】
0006355744.tif 000017
【図１２】
0006355744.tif 000018
【図１３】
0006355744.tif 000019
【図１４】
0006355744.tif 000020
【図１５】
0006355744.tif 000021
【図１６ａ】
0006355744.tif 000022
【図１６ｂ】
0006355744.tif 000023
【図１７ａ】
0006355744.tif 000024
【図１７ｂ】
0006355744.tif 000025