(57)【要約】  広角イントラ予測と共に位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用する技法について説明する。例えば、ビデオデータの現在ブロックのサイズが決定され得る。そのサイズに基づいて、現在ブロックのために広角イントラ予測モードが決定され得る。現在ブロックのための予測ブロックが、広角イントラ予測モードを使用して決定され得る。予測ブロックからの予測サンプルが、ＰＤＰＣを使用して修正された予測サンプルを生成するように修正され得、これは、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、決定された１つまたは複数の参照サンプルに基づいて修正された予測サンプルを生成するように予測サンプルを修正することとを含み得る。【選択図】図７
2021530906.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
ビデオデータの現在ブロックを取得することと、
前記現在ブロックのサイズを決定することと、
前記現在ブロックの前記サイズに基づいて、前記現在ブロックのために使用すべき広角イントラ予測モードを決定することと、
前記広角イントラ予測モードを使用して前記現在ブロックのための予測ブロックを決定することと、前記予測ブロックは、複数の予測サンプルを含み、
位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、前記予測ブロックの前記複数の予測サンプルのうちの１つの予測サンプルを修正することと、ここにおいて、前記予測サンプルを修正することは、
前記広角イントラ予測モードに基づいて、前記現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、
前記決定された１つまたは複数の参照サンプルに基づいて前記修正された予測サンプルを生成するように前記予測サンプルを修正することと
を備え、
前記修正された予測サンプルおよび残差値に基づいて前記現在ブロックのサンプルを再構成することと
を備える、方法。
【請求項２】
前記現在ブロックの前記サイズを決定することは、前記ブロックの幅と前記ブロックの高さとが異なるサイズであることを決定することを含む、請求項１に記載の方法。
【請求項３】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルは、前記予測サンプルに対する前記広角イントラ予測モードの角度を使用して決定される、請求項１に記載の方法。
【請求項４】
前記広角イントラ予測モードの前記角度は、前記予測サンプルに対して−１３５度より小さい、または４５度より大きい、請求項３に記載の方法。
【請求項５】
前記予測サンプルのｘ座標およびｙ座標に基づいて１つまたは複数の重みを決定することをさらに備え、ここにおいて、前記予測サンプルを修正することは、前記決定された１つまたは複数の参照サンプル、前記決定された１つまたは複数の重み、および前記予測サンプルに基づいて前記修正された予測サンプルを生成するように、前記予測サンプルを修正することを備える、
請求項１に記載の方法。
【請求項６】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、前記予測ブロック中の前記予測サンプルのそれぞれのｘ座標およびｙ座標の両方とは異なるｘ座標およびｙ座標の両方を有する前記１つまたは複数の参照サンプルを決定することを備える、請求項１に記載の方法。
【請求項７】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの上にある行を決定することと、
前記決定された行におけるｘ座標を決定することと、ここにおいて、前記決定された行における前記ｘ座標は、前記予測サンプルのｘ座標＋前記予測サンプルのｙ座標＋１に等しく、
前記決定された行および前記決定されたｘ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項１に記載の方法。
【請求項８】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの左にある列を決定することと、
前記決定された列におけるｙ座標を決定することと、ここにおいて、前記決定された列における前記ｙ座標は、前記予測サンプルのｙ座標＋前記予測サンプルのｘ座標＋１に等しく、
前記決定された列および前記決定されたｙ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項１に記載の方法。
【請求項９】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの上にある行を決定することと、
前記決定された行におけるｘ座標を決定することと、ここにおいて、前記決定された行における前記ｘ座標は、前記予測サンプルに対する前記広角イントラ予測モードの角度に基づいており、
前記決定された行および前記決定されたｘ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項１に記載の方法。
【請求項１０】
前記決定された行における前記ｘ座標を決定することは、
前記広角イントラ予測モードの前記角度の余接または正接のうちの１つを決定することと、
前記広角イントラ予測モードの前記角度の前記余接または正接のうちの１つ、前記予測サンプルのｘ座標、および前記予測サンプルのｙ座標に基づいて、前記決定された行における前記ｘ座標を決定することと
を備える、請求項９に記載の方法。
【請求項１１】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの左にある列を決定することと、
前記決定された列におけるｙ座標を決定することと、ここにおいて、前記決定された列における前記ｙ座標は、前記広角イントラ予測モードの角度に基づいており、
前記決定された列および前記決定されたｙ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項１に記載の方法。
【請求項１２】
前記決定された列における前記ｙ座標を決定することは、
前記広角イントラ予測モードの前記角度の余接または正接のうちの１つを決定することと、
前記広角イントラ予測モードの前記角度の前記余接または正接のうちの１つ、前記予測サンプルのｘ座標、および前記予測サンプルのｙ座標に基づいて、前記決定された列における前記ｙ座標を決定することと
を備える、請求項１１に記載の方法。
【請求項１３】
前記広角イントラ予測モードに基づいて前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記広角イントラ予測モードに基づいて１つまたは複数のサンプルのセットを決定することと、
前記１つまたは複数の参照サンプルを生成するために、前記１つまたは複数のサンプルのセットを補間すること、オフセットを用いて丸めること、またはオフセットを用いずに丸めることのうちの少なくとも１つを行うことと
を備える、請求項１に記載の方法。
【請求項１４】
前記広角イントラ予測モードに基づいて前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記広角イントラ予測モードに基づいて特定された前記現在ブロックの外部の１つまたは複数のサンプルが参照ラインバッファに記憶されていないことを決定することと、
前記参照ラインバッファに記憶された最後の参照サンプルに基づいて前記１つまたは複数の参照サンプルを決定することと
を備える、請求項１に記載の方法。
【請求項１５】
前記予測ブロックの前記複数の予測サンプルのうちの前記予測サンプルを修正することは、前記予測ブロックの第１の予測サンプルを修正することを備え、前記１つまたは複数の参照サンプルは、１つまたは複数の参照サンプルの第１のセットを備え、前記方法は、
前記予測ブロックの第２の予測サンプルについて、前記第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することと、
前記第２の予測サンプルにＰＤＰＣを適用しないこと、または参照ラインバッファにおいて利用可能な参照サンプルのみを使用してＰＤＰＣを適用することのうちの１つを行うことと
をさらに備える、請求項１に記載の方法。
【請求項１６】
前記広角イントラ予測モードは、ＤＣイントラ予測モード、プレーナイントラ予測モード、水平イントラ予測モード、または垂直イントラ予測モードのいずれでもない、請求項１に記載の方法。
【請求項１７】
ビデオデータを符号化する方法であって、
ビデオデータの現在ブロックを取得することと、
前記現在ブロックのサイズを決定することと、
前記現在ブロックの前記サイズに基づいて、前記現在ブロックのために使用すべき広角イントラ予測モードを決定することと、
前記広角イントラ予測モードを使用して前記現在ブロックのための予測ブロックを決定することと、前記予測ブロックは、複数の予測サンプルを含み、
位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、前記予測ブロックの前記複数の予測サンプルのうちの１つの予測サンプルを修正することと、ここにおいて、前記予測サンプルを修正することは、
前記広角イントラ予測モードに基づいて、前記現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、
前記決定された１つまたは複数の参照サンプルに基づいて前記修正された予測サンプルを生成するように前記予測サンプルを修正することと
を備え、
前記修正された予測サンプルおよび前記現在ブロックにおけるサンプル値に基づいて残差ブロックについての残差値を決定することと、
前記残差値を示す情報をシグナリングすることと
を備える、方法。
【請求項１８】
前記現在ブロックの前記サイズを決定することは、前記ブロックの幅と前記ブロックの高さとが異なるサイズであることを決定することを含む、請求項１７に記載の方法。
【請求項１９】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルは、前記予測サンプルに対する前記広角イントラ予測モードの角度を使用して決定される、請求項１７に記載の方法。
【請求項２０】
前記広角イントラ予測モードの前記角度は、前記予測サンプルに対して−１３５度より小さい、または４５度より大きい、請求項１９に記載の方法。
【請求項２１】
前記予測サンプルのｘ座標およびｙ座標に基づいて１つまたは複数の重みを決定することをさらに備え、ここにおいて、前記予測サンプルを修正することは、前記決定された１つまたは複数の参照サンプル、前記決定された１つまたは複数の重み、および前記予測サンプルに基づいて前記修正された予測サンプルを生成するように、前記予測サンプルを修正することを備える、
請求項１７に記載の方法。
【請求項２２】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、前記予測ブロック中の前記予測サンプルのそれぞれのｘ座標およびｙ座標の両方とは異なるｘ座標およびｙ座標の両方を有する前記１つまたは複数の参照サンプルを決定することを備える、請求項１７に記載の方法。
【請求項２３】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの上にある行を決定することと、
前記決定された行におけるｘ座標を決定することと、ここにおいて、前記決定された行における前記ｘ座標は、前記予測サンプルのｘ座標＋前記予測サンプルのｙ座標＋１に等しく、
前記決定された行および前記決定されたｘ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項１７に記載の方法。
【請求項２４】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの左にある列を決定することと、
前記決定された列におけるｙ座標を決定することと、ここにおいて、前記決定された列における前記ｙ座標は、前記予測サンプルのｙ座標＋前記予測サンプルのｘ座標＋１に等しく、
前記決定された列および前記決定されたｙ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項１７に記載の方法。
【請求項２５】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの上にある行を決定することと、
前記決定された行におけるｘ座標を決定することと、ここにおいて、前記決定された行における前記ｘ座標は、前記予測サンプルに対する前記広角イントラ予測モードの角度に基づいており、
前記決定された行および前記決定されたｘ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項１７に記載の方法。
【請求項２６】
前記決定された行における前記ｘ座標を決定することは、
前記広角イントラ予測モードの前記角度の余接または正接のうちの１つを決定することと、
前記広角イントラ予測モードの前記角度の前記余接または正接のうちの１つ、前記予測サンプルのｘ座標、および前記予測サンプルのｙ座標に基づいて、前記決定された行における前記ｘ座標を決定することと
を備える、請求項２５に記載の方法。
【請求項２７】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの左にある列を決定することと、
前記決定された列におけるｙ座標を決定することと、ここにおいて、前記決定された列における前記ｙ座標は、前記広角イントラ予測モードの角度に基づいており、
前記決定された列および前記決定されたｙ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項１７に記載の方法。
【請求項２８】
前記決定された列における前記ｙ座標を決定することは、
前記広角イントラ予測モードの前記角度の余接または正接のうちの１つを決定することと、
前記広角イントラ予測モードの前記角度の前記余接または正接のうちの１つ、前記予測サンプルのｘ座標、および前記予測サンプルのｙ座標に基づいて、前記決定された列における前記ｙ座標を決定することと
を備える、請求項２７に記載の方法。
【請求項２９】
前記広角イントラ予測モードに基づいて前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記広角イントラ予測モードに基づいて１つまたは複数のサンプルのセットを決定することと、
前記１つまたは複数の参照サンプルを生成するために、前記１つまたは複数のサンプルのセットを補間すること、オフセットを用いて丸めること、またはオフセットを用いずに丸めることのうちの少なくとも１つを行うことと
を備える、請求項１７に記載の方法。
【請求項３０】
前記広角イントラ予測モードに基づいて前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記広角イントラ予測モードに基づいて特定された前記現在ブロックの外部の１つまたは複数のサンプルが参照ラインバッファに記憶されていないことを決定することと、
前記参照ラインバッファに記憶された最後の参照サンプルに基づいて前記１つまたは複数の参照サンプルを決定することと
を備える、請求項１７に記載の方法。
【請求項３１】
前記予測ブロックの前記複数の予測サンプルのうちの前記予測サンプルを修正することは、前記予測ブロックの第１の予測サンプルを修正することを備え、前記１つまたは複数の参照サンプルは、１つまたは複数の参照サンプルの第１のセットを備え、前記方法は、
前記予測ブロックの第２の予測サンプルについて、前記第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することと、
前記第２の予測サンプルにＰＤＰＣを適用しないこと、または参照ラインバッファにおいて利用可能な参照サンプルのみを使用してＰＤＰＣを適用することのうちの１つを行うことと
をさらに備える、請求項１７に記載の方法。
【請求項３２】
前記広角イントラ予測モードは、ＤＣイントラ予測モード、プレーナイントラ予測モード、水平イントラ予測モード、または垂直イントラ予測モードのいずれでもない、請求項１７に記載の方法。
【請求項３３】
ビデオデータを復号するためのデバイスであって、
１つまたは複数の予測ブロックを記憶するように構成されたメモリと、
固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオデコーダと
を備え、前記ビデオデコーダは、
ビデオデータの現在ブロックを取得することと、
前記現在ブロックのサイズを決定することと、
前記現在ブロックの前記サイズに基づいて、前記現在ブロックのために使用すべき広角イントラ予測モードを決定することと、
前記広角イントラ予測モードを使用して前記現在ブロックのための予測ブロックを決定することと、前記予測ブロックは、複数の予測サンプルを含み、
位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、前記予測ブロックの前記複数の予測サンプルのうちの１つの予測サンプルを修正することと、ここにおいて、前記予測サンプルを修正することは、
前記広角イントラ予測モードに基づいて、前記現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、
前記決定された１つまたは複数の参照サンプルに基づいて前記修正された予測サンプルを生成するように前記予測サンプルを修正することと
を備え、
前記修正された予測サンプルおよび残差値に基づいて前記現在ブロックのサンプルを再構成することと
を行うように構成されている、デバイス。
【請求項３４】
前記現在ブロックの前記サイズを決定することは、前記ブロックの幅と前記ブロックの高さとが異なるサイズであることを決定することを含む、請求項３３に記載のデバイス。
【請求項３５】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルは、前記予測サンプルに対する前記広角イントラ予測モードの角度を使用して決定される、請求項３３に記載のデバイス。
【請求項３６】
前記広角イントラ予測モードの前記角度は、前記予測サンプルに対して−１３５度より小さい、または４５度より大きい、請求項３５に記載のデバイス。
【請求項３７】
前記ビデオデコーダは、
前記予測サンプルのｘ座標およびｙ座標に基づいて１つまたは複数の重みを決定することを行うように構成されており、ここにおいて、前記予測サンプルを修正することは、前記決定された１つまたは複数の参照サンプル、前記決定された１つまたは複数の重み、および前記予測サンプルに基づいて前記修正された予測サンプルを生成するように、前記予測サンプルを修正することを備える、
請求項３３に記載のデバイス。
【請求項３８】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、前記予測ブロック中の前記予測サンプルのそれぞれのｘ座標およびｙ座標の両方とは異なるｘ座標およびｙ座標の両方を有する前記１つまたは複数の参照サンプルを決定することを備える、請求項３３に記載のデバイス。
【請求項３９】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの上にある行を決定することと、
前記決定された行におけるｘ座標を決定することと、ここにおいて、前記決定された行における前記ｘ座標は、前記予測サンプルのｘ座標＋前記予測サンプルのｙ座標＋１に等しく、
前記決定された行および前記決定されたｘ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項３３に記載のデバイス。
【請求項４０】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの左にある列を決定することと、
前記決定された列におけるｙ座標を決定することと、ここにおいて、前記決定された列における前記ｙ座標は、前記予測サンプルのｙ座標＋前記予測サンプルのｘ座標＋１に等しく、
前記決定された列および前記決定されたｙ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項３３に記載のデバイス。
【請求項４１】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの上にある行を決定することと、
前記決定された行におけるｘ座標を決定することと、ここにおいて、前記決定された行における前記ｘ座標は、前記予測サンプルに対する前記広角イントラ予測モードの角度に基づいており、
前記決定された行および前記決定されたｘ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項３３に記載のデバイス。
【請求項４２】
前記決定された行における前記ｘ座標を決定することは、
前記広角イントラ予測モードの前記角度の余接または正接のうちの１つを決定することと、
前記広角イントラ予測モードの前記角度の前記余接または正接のうちの１つ、前記予測サンプルのｘ座標、および前記予測サンプルのｙ座標に基づいて、前記決定された行における前記ｘ座標を決定することと
を備える、請求項４１に記載のデバイス。
【請求項４３】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの左にある列を決定することと、
前記決定された列におけるｙ座標を決定することと、ここにおいて、前記決定された列における前記ｙ座標は、前記広角イントラ予測モードの角度に基づいており、
前記決定された列および前記決定されたｙ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項３３に記載のデバイス。
【請求項４４】
前記決定された列における前記ｙ座標を決定することは、
前記広角イントラ予測モードの前記角度の余接または正接のうちの１つを決定することと、
前記広角イントラ予測モードの前記角度の前記余接または正接のうちの１つ、前記予測サンプルのｘ座標、および前記予測サンプルのｙ座標に基づいて、前記決定された列における前記ｙ座標を決定することと
を備える、請求項４３に記載のデバイス。
【請求項４５】
前記広角イントラ予測モードに基づいて前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記広角イントラ予測モードに基づいて１つまたは複数のサンプルのセットを決定することと、
前記１つまたは複数の参照サンプルを生成するために、前記１つまたは複数のサンプルのセットを補間すること、オフセットを用いて丸めること、またはオフセットを用いずに丸めることのうちの少なくとも１つを行うことと
を備える、請求項３３に記載のデバイス。
【請求項４６】
前記広角イントラ予測モードに基づいて前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記広角イントラ予測モードに基づいて特定された前記現在ブロックの外部の１つまたは複数のサンプルが参照ラインバッファに記憶されていないことを決定することと、
前記参照ラインバッファに記憶された最後の参照サンプルに基づいて前記１つまたは複数の参照サンプルを決定することと
を備える、請求項３３に記載のデバイス。
【請求項４７】
前記予測ブロックの前記複数の予測サンプルのうちの前記予測サンプルを修正することは、前記予測ブロックの第１の予測サンプルを修正することを備え、前記１つまたは複数の参照サンプルは、１つまたは複数の参照サンプルの第１のセットを備え、前記ビデオデコーダは、
前記予測ブロックの第２の予測サンプルについて、前記第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することと、
前記第２の予測サンプルにＰＤＰＣを適用しないこと、または参照ラインバッファにおいて利用可能な参照サンプルのみを使用してＰＤＰＣを適用することのうちの１つを行うことと
を行うように構成されている、請求項３３に記載のデバイス。
【請求項４８】
前記広角イントラ予測モードは、ＤＣイントラ予測モード、プレーナイントラ予測モード、水平イントラ予測モード、または垂直イントラ予測モードのいずれでもない、請求項３３に記載のデバイス。
【請求項４９】
前記現在ブロックを表示するように構成されたディスプレイをさらに備える、請求項３３に記載のデバイス。
【請求項５０】
前記デバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの１つまたは複数を備える、請求項３３に記載のデバイス。
【請求項５１】
ビデオデータを符号化するデバイスであって、
１つまたは複数の予測ブロックを記憶するように構成されたメモリと、
固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオエンコーダと
を備え、前記ビデオエンコーダは、
ビデオデータの現在ブロックを取得することと、
前記現在ブロックのサイズを決定することと、
前記現在ブロックの前記サイズに基づいて、前記現在ブロックのために使用すべき広角イントラ予測モードを決定することと、
前記広角イントラ予測モードを使用して前記現在ブロックのための予測ブロックを決定することと、前記予測ブロックは、複数の予測サンプルを含み、
位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、前記予測ブロックの前記複数の予測サンプルのうちの１つの予測サンプルを修正することと、ここにおいて、前記予測サンプルを修正することは、
前記広角イントラ予測モードに基づいて、前記現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、
前記決定された１つまたは複数の参照サンプルに基づいて前記修正された予測サンプルを生成するように前記予測サンプルを修正することと
を備え、
前記修正された予測サンプルおよび前記現在ブロックにおけるサンプル値に基づいて残差ブロックについての残差値を決定することと、
前記残差値を示す情報をシグナリングすることと
を行うように構成されている、デバイス。
【請求項５２】
前記現在ブロックの前記サイズを決定することは、前記ブロックの幅と前記ブロックの高さとが異なるサイズであることを決定することを含む、請求項５１に記載のデバイス。
【請求項５３】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルは、前記予測サンプルに対する前記広角イントラ予測モードの角度を使用して決定される、請求項５１に記載のデバイス。
【請求項５４】
前記広角イントラ予測モードの前記角度は、前記予測サンプルに対して−１３５度より小さい、または４５度より大きい、請求項５３に記載のデバイス。
【請求項５５】
前記ビデオエンコーダは、
前記予測サンプルのｘ座標およびｙ座標に基づいて１つまたは複数の重みを決定することを行うように構成されており、ここにおいて、前記予測サンプルを修正することは、前記決定された１つまたは複数の参照サンプル、前記決定された１つまたは複数の重み、および前記予測サンプルに基づいて前記修正された予測サンプルを生成するように、前記予測サンプルを修正することを備える、
請求項５１に記載のデバイス。
【請求項５６】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、前記予測ブロック中の前記予測サンプルのそれぞれのｘ座標およびｙ座標の両方とは異なるｘ座標およびｙ座標の両方を有する前記１つまたは複数の参照サンプルを決定することを備える、請求項５１に記載のデバイス。
【請求項５７】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの上にある行を決定することと、
前記決定された行におけるｘ座標を決定することと、ここにおいて、前記決定された行における前記ｘ座標は、前記予測サンプルのｘ座標＋前記予測サンプルのｙ座標＋１に等しく、
前記決定された行および前記決定されたｘ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項５１に記載のデバイス。
【請求項５８】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの左にある列を決定することと、
前記決定された列におけるｙ座標を決定することと、ここにおいて、前記決定された列における前記ｙ座標は、前記予測サンプルのｙ座標＋前記予測サンプルのｘ座標＋１に等しく、
前記決定された列および前記決定されたｙ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項５１に記載のデバイス。
【請求項５９】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの上にある行を決定することと、
前記決定された行におけるｘ座標を決定することと、ここにおいて、前記決定された行における前記ｘ座標は、前記予測サンプルに対する前記広角イントラ予測モードの角度に基づいており、
前記決定された行および前記決定されたｘ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項５１に記載のデバイス。
【請求項６０】
前記決定された行における前記ｘ座標を決定することは、
前記広角イントラ予測モードの前記角度の余接または正接のうちの１つを決定することと、
前記広角イントラ予測モードの前記角度の前記余接または正接のうちの１つ、前記予測サンプルのｘ座標、および前記予測サンプルのｙ座標に基づいて、前記決定された行における前記ｘ座標を決定することと
を備える、請求項５９に記載のデバイス。
【請求項６１】
前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記現在ブロックの左にある列を決定することと、
前記決定された列におけるｙ座標を決定することと、ここにおいて、前記決定された列における前記ｙ座標は、前記広角イントラ予測モードの角度に基づいており、
前記決定された列および前記決定されたｙ座標に基づいて、前記１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することと
を備える、請求項５１に記載のデバイス。
【請求項６２】
前記決定された列における前記ｙ座標を決定することは、
前記広角イントラ予測モードの前記角度の余接または正接のうちの１つを決定することと、
前記広角イントラ予測モードの前記角度の前記余接または正接のうちの１つ、前記予測サンプルのｘ座標、および前記予測サンプルのｙ座標に基づいて、前記決定された列における前記ｙ座標を決定することと
を備える、請求項６１に記載のデバイス。
【請求項６３】
前記広角イントラ予測モードに基づいて前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記広角イントラ予測モードに基づいて１つまたは複数のサンプルのセットを決定することと、
前記１つまたは複数の参照サンプルを生成するために、前記１つまたは複数のサンプルのセットを補間すること、オフセットを用いて丸めること、またはオフセットを用いずに丸めることのうちの少なくとも１つを行うことと
を備える、請求項５１に記載のデバイス。
【請求項６４】
前記広角イントラ予測モードに基づいて前記現在ブロックの外部にある前記１つまたは複数の参照サンプルを決定することは、
前記広角イントラ予測モードに基づいて特定された前記現在ブロックの外部の１つまたは複数のサンプルが参照ラインバッファに記憶されていないことを決定することと、
前記参照ラインバッファに記憶された最後の参照サンプルに基づいて前記１つまたは複数の参照サンプルを決定することと
を備える、請求項５１に記載のデバイス。
【請求項６５】
前記予測ブロックの前記複数の予測サンプルのうちの前記予測サンプルを修正することは、前記予測ブロックの第１の予測サンプルを修正することを備え、前記１つまたは複数の参照サンプルは、１つまたは複数の参照サンプルの第１のセットを備え、前記ビデオエンコーダは、
前記予測ブロックの第２の予測サンプルについて、前記第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することと、
前記第２の予測サンプルにＰＤＰＣを適用しないこと、または参照ラインバッファにおいて利用可能な参照サンプルのみを使用してＰＤＰＣを適用することのうちの１つを行うことと
を行うように構成されている、請求項５１に記載のデバイス。
【請求項６６】
前記広角イントラ予測モードは、ＤＣイントラ予測モード、プレーナイントラ予測モード、水平イントラ予測モード、または垂直イントラ予測モードのいずれでもない、請求項５１に記載のデバイス。
【請求項６７】
前記デバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの１つまたは複数を備える、請求項５１に記載のデバイス。
【請求項６８】
実行されると、ビデオデータを復号するためのデバイスの１つまたは複数のプロセッサに、
ビデオデータの現在ブロックを取得することと、
前記現在ブロックのサイズを決定することと、
前記現在ブロックの前記サイズに基づいて、前記現在ブロックのために使用すべき広角イントラ予測モードを決定することと、
前記広角イントラ予測モードを使用して前記現在ブロックのための予測ブロックを決定することと、前記予測ブロックは、複数の予測サンプルを含み、
位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、前記予測ブロックの前記複数の予測サンプルのうちの１つの予測サンプルを修正することと、ここにおいて、前記予測サンプルを修正することは、
前記広角イントラ予測モードに基づいて、前記現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、
前記決定された１つまたは複数の参照サンプルに基づいて前記修正された予測サンプルを生成するように前記予測サンプルを修正することと
を備え、
前記修正された予測サンプルおよび残差値に基づいて前記現在ブロックのサンプルを再構成することと
を行わせる命令を記憶した、コンピュータ可読記憶媒体。
【請求項６９】
実行されると、ビデオデータを符号化するためのデバイスの１つまたは複数のプロセッサに、
ビデオデータの現在ブロックを取得することと、
前記現在ブロックのサイズを決定することと、
前記現在ブロックの前記サイズに基づいて、前記現在ブロックのために使用すべき広角イントラ予測モードを決定することと、
前記広角イントラ予測モードを使用して前記現在ブロックのための予測ブロックを決定することと、前記予測ブロックは、複数の予測サンプルを含み、
位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、前記予測ブロックの前記複数の予測サンプルのうちの１つの予測サンプルを修正することと、ここにおいて、前記予測サンプルを修正することは、
前記広角イントラ予測モードに基づいて、前記現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、
前記決定された１つまたは複数の参照サンプルに基づいて前記修正された予測サンプルを生成するように前記予測サンプルを修正することと
を備え、
前記修正された予測サンプルおよび前記現在ブロックにおけるサンプル値に基づいて残差ブロックについての残差値を決定することと、
前記残差値を示す情報をシグナリングすることと
を行わせる命令を記憶した、コンピュータ可読記憶媒体。
【請求項７０】
ビデオデータを復号するためのデバイスであって、
ビデオデータの現在ブロックを取得するための手段と、
前記現在ブロックのサイズを決定するための手段と、
前記現在ブロックの前記サイズに基づいて、前記現在ブロックのために使用すべき広角イントラ予測モードを決定するための手段と、
前記広角イントラ予測モードを使用して前記現在ブロックのための予測ブロックを決定するための手段と、前記予測ブロックは、複数の予測サンプルを含み、
位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、前記予測ブロックの前記複数の予測サンプルのうちの１つの予測サンプルを修正するための手段と、ここにおいて、前記予測サンプルを修正することは、
前記広角イントラ予測モードに基づいて、前記現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、
前記決定された１つまたは複数の参照サンプルに基づいて前記修正された予測サンプルを生成するように前記予測サンプルを修正することと
を備え、
前記修正された予測サンプルおよび残差値に基づいて前記現在ブロックのサンプルを再構成するための手段と
を備える、デバイス。
【請求項７１】
ビデオデータを符号化するためのデバイスであって、
ビデオデータの現在ブロックを取得するための手段と、
前記現在ブロックのサイズを決定するための手段と、
前記現在ブロックの前記サイズに基づいて、前記現在ブロックのために使用すべき広角イントラ予測モードを決定するための手段と、
前記広角イントラ予測モードを使用して前記現在ブロックのための予測ブロックを決定するための手段と、前記予測ブロックは、複数の予測サンプルを含み、
位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、前記予測ブロックの前記複数の予測サンプルのうちの１つの予測サンプルを修正するための手段と、ここにおいて、前記予測サンプルを修正することは、
前記広角イントラ予測モードに基づいて、前記現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、
前記決定された１つまたは複数の参照サンプルに基づいて前記修正された予測サンプルを生成するように前記予測サンプルを修正することと
を備え、
前記修正された予測サンプルおよび前記現在ブロックにおけるサンプル値に基づいて残差ブロックについての残差値を決定するための手段と、
前記残差値を示す情報をシグナリングするための手段と
を備える、デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本願は、ビデオ符号化および復号に関する。場合によっては、広角イントラ予測（wide angle intra prediction）と共に位置依存イントラ予測組み合わせ（ＰＤＰＣ：position dependent intra prediction combination）を実行するためのシステム、装置、方法、およびコンピュータ可読媒体について説明する。
【背景技術】
【０００２】
[0002]  デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラまたは衛星無線電話、いわゆる「スマートフォン」、ビデオテレビ会議デバイス、ビデオストリーミングデバイス、および同様のものを含む、広範囲のデバイスに組み込まれることができる。このようなデバイス（device）は、ビデオデータ（video data）が処理され、消費のために出力されることを可能にする。デジタルビデオデータは、消費者およびビデオプロバイダの要求を満たすために大量のデータを含む。例えば、ビデオデータの消費者は、忠実度、解像度、フレームレート、および同様のものが高い最高品質のビデオを望む。結果として、これらの要求を満たすために必要とされる大量のビデオデータが、ビデオデータを処理および記憶する通信ネットワークおよびデバイスに負担をかける。
【０００３】
[0003]  デジタルビデオデバイスは、ビデオデータを圧縮するためにビデオコーディング技法を実施することができる。ビデオコーディングは、１つまたは複数のビデオコーディング規格にしたがって実行される。例えば、ビデオコーディング規格は、とりわけ、ＶＶＣ（versatile video coding）、高効率ビデオコーディング（ＨＥＶＣ：high-efficiency video coding）、アドバンスドビデオコーディング（ＡＶＣ：advanced video coding）、ＭＰＥＧ−２パート２コーディング（ＭＰＥＧは動画専門家グループを表す）を含む。ビデオコーディングは、一般に、ビデオ画像またはシーケンスに存在する冗長性を利用する予測方法（例えば、インター予測、イントラ予測、または同様のもの）を利用する。ビデオコーディング技法の重要な目標は、ビデオ品質の劣化を回避または最小限に抑えながら、より低いビットレートを使用する形態にビデオデータを圧縮することである。ますます発展するビデオサービスが利用可能になるにつれて、より良好なコーディング効率を有する符号化技法が必要とされる。
【発明の概要】
【０００４】
[0004]  イントラ予測のための広角モードと共に位置依存イントラ予測組み合わせ（ＰＤＰＣ）を実行するための技法およびシステムについて本明細書で説明する。イントラ予測を使用すると、コーディングデバイス（coding device）（例えば、ビデオエンコーダ（video encoder）および／またはビデオデコーダ（video decoder））は、同じピクチャ内の前に符号化された隣接ブロックからの隣接サンプルに基づいて空間予測技法を使用して予測ブロック（prediction block）を形成することができる。隣接サンプルは、プレーナモード（Planar mode）、ＤＣモード、および／または複数の方向性予測モード（垂直モード、水平モード、および様々な角度モード（angular mode））のうちの１つなどの、使用されている特定のイントラ予測モードに基づいて特定され得る。方向性予測モードは、典型的には、予測サンプル（prediction sample）からの垂直方向に対して約−１３５度から約４５度の間の方向（または角度（angle））を使用する。
【０００５】
[0005]  効率的なビデオエンコーダおよび／またはデコーダでは、イントラ予測のための予測ブロックを指定するために使用されるブロック構造は、正方形に制限されない（ブロックは、幅（ｗ）＝高さ（ｈ）のときに正方形である）。矩形予測ブロック（ｗ＞ｈまたはｗ＜ｈ）を使用すると、コンテンツの特性に基づいてコーディング効率を高めることができる。このような矩形ブロックでは、イントラ予測の方向を−１３５度から４５度内に制限することにより、予測サンプル（予測されているサンプル）からより遠くにある参照サンプル（reference sample）が、より近い参照サンプルではなく、イントラ予測のために使用される状況が生じ得る。そのような設計は、コーディング効率に悪影響を及ぼす可能性が高い。より近い参照サンプル（例えば、−１３５から４５度の角度を超える）がイントラ予測のために使用されることができるように、制限の範囲を緩和させることがより有益となる。例えば、予測サンプルからの垂直方向に対して−１３５度より小さいまたは４５度より大きい方向（または角度）を使用する方向性予測モード（「広角モード」と呼ばれる）。
【０００６】
[0006]  ＰＤＰＣが、イントラ予測を使用して決定された予測サンプルを修正する（modify）ために使用されることができる。例えば、ＰＤＰＣを使用すると、コーディングデバイス（例えば、ビデオエンコーダおよび／またはビデオデコーダ）は、現在ブロック（current block）の上および／または左の１つまたは複数のラインに存在する参照サンプルを決定し得、イントラ予測を使用して決定された予測サンプルを修正するために参照サンプルを使用し得る。次いで、修正された予測サンプル（modified prediction sample）が、現在ブロックを符号化（encode）または復号する（decode）ために使用され得る。
【０００７】
[0007]  本明細書で説明する技法およびシステムは、広角イントラ予測モード（wide angle intra-prediction mode）が使用されるときにＰＤＰＣを実行するための方法を提供する。関連情報をシグナリングおよび／または復号するための技法も説明する。場合によっては、符号化の場合、ビデオエンコーダは、ビデオデコーダにシグナリングされる残差値（residual value）を決定するために、修正された予測サンプルを使用し得る。場合によっては、復号の場合、ビデオデコーダは、現在ブロックを再構成する（reconstruct）ために、修正された予測サンプルを、受信した残差値に加算し得る。
【０００８】
[0008]  少なくとも１つの例によれば、ビデオデータを復号する方法が提供される。本方法は、ビデオデータの現在ブロックを取得する（obtain）ことと、現在ブロックのサイズ（size）を決定する（determine）こととを含む。本方法は、現在ブロックのサイズに基づいて、現在ブロックのために使用すべき広角イントラ予測モードを決定することをさらに含む。本方法は、広角イントラ予測モードを使用して現在ブロックのための予測ブロックを決定することをさらに含む。予測ブロックは、複数の予測サンプルを含む。本方法は、位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成する（generate）ように、予測ブロックの複数の予測サンプルのうちの１つの予測サンプルを修正することをさらに含む。予測サンプルを修正することは、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正することとを備える。本方法は、修正された予測サンプルおよび残差値に基づいて現在ブロックのサンプルを再構成することをさらに含む。
【０００９】
[0009]  別の例では、１つまたは複数の予測ブロックを記憶する（store）ように構成されたメモリ（memory）と、固定機能回路（fixed-function circuitry）またはプログラマブル回路（programmable circuitry）のうちの少なくとも１つを備えるビデオデコーダ（video decoder）とを含む、ビデオデータを復号するためのデバイスが提供される。いくつかの例では、本ビデオデコーダは、ビデオデータの現在ブロックを取得し、現在ブロックのサイズを決定するように構成される。本ビデオデコーダは、現在ブロックのサイズに基づいて、現在ブロックのために使用すべき広角イントラ予測モードを決定するようにさらに構成される。ビデオデコーダは、広角イントラ予測モードを使用して現在ブロックのための予測ブロックを決定するようにさらに構成される。予測ブロックは、複数の予測サンプルを含む。ビデオデコーダは、位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、予測ブロックの複数の予測サンプルのうちの１つの予測サンプルを修正するようにさらに構成される。予測サンプルを修正することは、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正することとを備える。本ビデオデコーダは、修正された予測サンプルおよび残差値に基づいて現在ブロックのサンプルを再構成するようにさらに構成される。
【００１０】
[0010]  別の例では、実行されると、ビデオデータを復号するためのデバイスの１つまたは複数のプロセッサに、ビデオデータの現在ブロックを取得することと、現在ブロックのサイズを決定することと、現在ブロックのサイズに基づいて、現在ブロックのために使用すべき広角イントラ予測モードを決定することと、広角イントラ予測モードを使用して現在ブロックのための予測ブロックを決定することと、予測ブロックは、複数の予測サンプルを含み、位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、予測ブロックの複数の予測サンプルのうちの１つの予測サンプルを修正することと、ここにおいて、予測サンプルを修正することは、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正することとを備え、修正された予測サンプルおよび残差値に基づいて現在ブロックのサンプルを再構成することと、を行わせる命令を記憶した、コンピュータ可読記憶媒体（computer-readable storage medium）である。
【００１１】
[0011]  別の例では、ビデオデータを復号するためのデバイスが提供される。本デバイスは、ビデオデータの現在ブロックを取得するための手段と、現在ブロックのサイズを決定するための手段とを含む。本デバイスは、現在ブロックのサイズに基づいて、現在ブロックのために使用すべき広角イントラ予測モードを決定するための手段をさらに含む。本デバイスは、広角イントラ予測モードを使用して現在ブロックのための予測ブロックを決定するための手段をさらに含む。予測ブロックは、複数の予測サンプルを含む。本デバイスは、位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、予測ブロックの複数の予測サンプルのうちの１つの予測サンプルを修正するための手段をさらに含む。予測サンプルを修正することは、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正することとを備える。本デバイスは、修正された予測サンプルおよび残差値に基づいて現在ブロックのサンプルを再構成するための手段をさらに含む。
【００１２】
[0012]  別の例では、ビデオデータを符号化する（encode）方法が提供される。本方法は、ビデオデータの現在ブロックを取得することと、現在ブロックのサイズを決定することとを含む。本方法は、現在ブロックのサイズに基づいて、現在ブロックのために使用すべき広角イントラ予測モードを決定することをさらに含む。本方法は、広角イントラ予測モードを使用して現在ブロックのための予測ブロックを決定することをさらに含む。予測ブロックは、複数の予測サンプルを含む。本方法は、位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、予測ブロックの複数の予測サンプルのうちの１つの予測サンプルを修正することをさらに含む。予測サンプルを修正することは、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正することとを備える。本方法は、修正された予測サンプルおよび現在ブロックにおけるサンプル値に基づいて残差ブロック（residual block）についての残差値を決定することと、残差値を示す情報をシグナリングすることとをさらに含む。
【００１３】
[0013]  別の例では、１つまたは複数の予測ブロックを記憶するように構成されたメモリと、固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオエンコーダとを含む、ビデオデータを符号化するためのデバイスが提供される。いくつかの例では、本ビデオエンコーダは、ビデオデータの現在ブロックを取得し、現在ブロックのサイズを決定するように構成される。本ビデオエンコーダは、現在ブロックのサイズに基づいて、現在ブロックのために使用すべき広角イントラ予測モードを決定するようにさらに構成される。本ビデオエンコーダは、広角イントラ予測モードを使用して現在ブロックのための予測ブロックを決定するようにさらに構成される。予測ブロックは、複数の予測サンプルを含む。ビデオエンコーダは、位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、予測ブロックの複数の予測サンプルのうちの１つの予測サンプルを修正するようにさらに構成される。予測サンプルを修正することは、広角イントラ予測モードに基づいて現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正することとを備える。本ビデオエンコーダは、修正された予測サンプルおよび現在ブロックにおけるサンプル値に基づいて残差ブロックについての残差値を決定するようにさらに構成される。本ビデオエンコーダは、残差値を示す情報をシグナリングするようにさらに構成される。
【００１４】
[0014]  別の例では、実行されると、ビデオデータを符号化するためのデバイスの１つまたは複数のプロセッサに、ビデオデータの現在ブロックを取得することと、現在ブロックのサイズを決定することと、現在ブロックのサイズに基づいて、現在ブロックのために使用すべき広角イントラ予測モードを決定することと、広角イントラ予測モードを使用して現在ブロックのための予測ブロックを決定することと、予測ブロックは、複数の予測サンプルを含み、位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、予測ブロックの複数の予測サンプルのうちの１つの予測サンプルを修正することと、ここにおいて、予測サンプルを修正することは、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正することとを備え、修正された予測サンプルおよび現在ブロックにおけるサンプル値に基づいて残差ブロックについての残差値を決定することと、残差値を示す情報をシグナリングすることと、を行わせる命令を記憶した、コンピュータ可読記憶媒体である。
【００１５】
[0015]  別の例では、ビデオデータを符号化するためのデバイスが提供される。本デバイスは、ビデオデータの現在ブロックを取得するための手段と、現在ブロックのサイズを決定するための手段とを含む。本デバイスは、現在ブロックのサイズに基づいて、現在ブロックのために使用すべき広角イントラ予測モードを決定するための手段をさらに含む。本デバイスは、広角イントラ予測モードを使用して現在ブロックのための予測ブロックを決定するための手段をさらに含む。予測ブロックは、複数の予測サンプルを含む。本デバイスは、位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、予測ブロックの複数の予測サンプルのうちの１つの予測サンプルを修正するための手段をさらに含む。予測サンプルを修正することは、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正することとを備える。本デバイスは、修正された予測サンプルおよび現在ブロックにおけるサンプル値に基づいて残差ブロックについての残差値を決定するための手段をさらに含む。本デバイスは、残差値を示す情報をシグナリングするための手段をさらに含む。
【００１６】
[0016]  いくつかの態様では、現在ブロックのサイズを決定することは、ブロックの幅（width）とブロックの高さ（height）とが異なるサイズであることを決定することを含む。
【００１７】
[0017]  いくつかの態様では、現在ブロックの外部にある１つまたは複数の参照サンプルは、予測サンプルに対する広角イントラ予測モードの角度を使用して決定される。いくつかの例では、広角イントラ予測モードの角度は、予測サンプルに対して−１３５度より小さい、または４５度より大きい。
【００１８】
[0018]  いくつかの態様では、上述の方法、デバイス、およびコンピュータ可読媒体は、予測サンプルのｘ座標（x-coordinate）およびｙ座標（y-coordinate）に基づいて１つまたは複数の重み（weight）を決定することを備え得る。そのような態様では、予測サンプルを修正することは、決定された１つまたは複数の参照サンプル、決定された１つまたは複数の重み、および予測サンプルに基づいて修正された予測サンプルを生成するように予測サンプルを修正することを備える。
【００１９】
[0019]  いくつかの態様では、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、予測ブロック中の予測サンプルのそれぞれのｘ座標およびｙ座標の両方とは異なるｘ座標およびｙ座標の両方を有する１つまたは複数の参照サンプルを決定することを備える。
【００２０】
[0020]  いくつかの態様では、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの上にある行（row）を決定することと、決定された行におけるｘ座標を決定することと、ここにおいて、決定された行におけるｘ座標は、予測サンプルのｘ座標＋予測サンプルのｙ座標＋１に等しいものであり、決定された行および決定されたｘ座標に基づいて、１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを備える。
【００２１】
[0021]  いくつかの態様では、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの左にある列（column）を決定することと、決定された列におけるｙ座標を決定することと、ここにおいて、決定された列におけるｙ座標は、予測サンプルのｙ座標＋予測サンプルのｘ座標＋１に等しいものであり、決定された列および決定されたｙ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを備える。
【００２２】
[0022]  いくつかの態様では、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの上にある行を決定することと、決定された行におけるｘ座標を決定することと、ここにおいて、決定された行におけるｘ座標は、予測サンプルに対する広角イントラ予測モードの角度に基づいており、決定された行および決定されたｘ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを備える。場合によっては、決定された行におけるｘ座標を決定することは、広角イントラ予測モードの角度の余接（cotangent）または正接（tangent）のうちの１つを決定することと、広角イントラ予測モードの角度の余接または正接のうちの１つ、予測サンプルのｘ座標、および予測サンプルのｙ座標に基づいて、決定された行におけるｘ座標を決定することとを備える。
【００２３】
[0023]  いくつかの態様では、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの左にある列を決定することと、決定された列におけるｙ座標を決定することと、ここにおいて、決定された列におけるｙ座標は広角イントラ予測モードの角度に基づいており、決定された列および決定されたｙ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを備える。場合によっては、決定された列におけるｙ座標を決定することは、広角イントラ予測モードの角度の余接または正接のうちの１つを決定することと、広角イントラ予測モードの角度の余接または正接のうちの１つ、予測サンプルのｘ座標、および予測サンプルのｙ座標に基づいて、決定された列におけるｙ座標を決定することとを備える。
【００２４】
[0024]  いくつかの態様では、広角イントラ予測モードに基づいて現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、広角イントラ予測モードに基づいて１つまたは複数のサンプルのセットを決定することと、１つまたは複数の参照サンプルを生成するために、１つまたは複数のサンプルのセットを補間する（interpolate）こと、オフセット（offset）を用いて丸める（round）こと、またはオフセットを用いずに丸めることのうちの少なくとも１つを行うこととを備える。
【００２５】
[0025]  いくつかの態様では、広角イントラ予測モードに基づいて現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、広角イントラ予測モードに基づいて特定された現在ブロックの外部の１つまたは複数のサンプルが参照ラインバッファ（reference line buffer）に記憶されていないことを決定することと、参照ラインバッファに記憶された最後の参照サンプルに基づいて１つまたは複数の参照サンプルを決定することとを備える。
【００２６】
[0026]  いくつかの態様では、予測ブロックの複数の予測サンプルのうちの予測サンプルを修正することは、予測ブロックの第１の予測サンプルを修正することを備える。そのような態様では、１つまたは複数の参照サンプルは、１つまたは複数の参照サンプルの第１のセットを備える。そのような態様では、上述の方法、デバイス、およびコンピュータ可読媒体は、予測ブロックの第２の予測サンプルについて、第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することと、第２の予測サンプルにＰＤＰＣを適用しないこと、または参照ラインバッファにおいて利用可能な参照サンプルのみを使用してＰＤＰＣを適用することのうちの１つを行うこととを備え得る。
【００２７】
[0027]  いくつかの態様では、広角イントラ予測モードは、ＤＣイントラ予測モード（DC intra-prediction mode）、プレーナイントラ予測モード（planar intra-prediction mode）、水平イントラ予測モード（horizontal intra-prediction mode）、または垂直イントラ予測モード（vertical intra-prediction mode）のいずれでもない。
【００２８】
[0028]  いくつかの態様では、ビデオデータを復号するためのデバイスは、現在ブロックを表示するように構成されたディスプレイを備える。いくつかの態様では、ビデオを復号するためのデバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス（broadcast receiver device）、またはセットトップボックス（set-top box）のうちの１つまたは複数を備える。
【００２９】
[0029]  いくつかの態様では、ビデオデータを符号化するためのデバイスは、現在ブロックを表示するように構成されたディスプレイを備える。いくつかの態様では、ビデオを符号化するためのデバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの１つまたは複数を備える。
【００３０】
[0030]  この発明の概要は、請求項に記載の主題の重要または本質的な特徴を特定することを意図しておらず、また請求項に記載の主題の範囲を決定するために単独で使用されることも意図していない。主題は、本特許の明細書全体のうちの適切な部分、任意またはすべての図面、および各請求項を参照することによって理解されたい。
【００３１】
[0031]  前述のことは、他の特徴および実施形態とともに、この後に続く明細書、特許請求の範囲、および添付図面を参照するとより明らかとなるであろう。
【００３２】
[0032]  本願の例示的な実施形態が、以下の図を参照して以下で詳細に説明される。
【図面の簡単な説明】
【００３３】
【図１】[0033]  本開示の技法を実施するように構成された例示的なビデオ符号化および復号システムを例示するブロック図である。
【図２Ａ】[0034]  いくつかの例による、４×４ブロック中の予測サンプル位置についてのＤＣモード位置依存（イントラ）予測組み合わせ（ＰＤＰＣ）重みの例を例示する概念図である。
【図２Ｂ】いくつかの例による、４×４ブロック中の予測サンプル位置についてのＤＣモード位置依存（イントラ）予測組み合わせ（ＰＤＰＣ）重みの例を例示する概念図である。
【図３】[0035]  いくつかの例による、イントラ予測角度モードの例を例示する概念図である。
【図４Ａ】[0036]  いくつかの例による、対角右上モードの一例を例示する概念図である。
【図４Ｂ】[0037]  いくつかの例による、対角左下モードの一例を例示する概念図である。
【図４Ｃ】[0038]  いくつかの例による、隣接対角右上モードの一例を例示する概念図である。
【図４Ｄ】[0039]  いくつかの例による、隣接対角左下モードの一例を例示する概念図である。
【図５】[0040]  いくつかの例による、方向性イントラ予測モードの一例を例示する概念図である。
【図６】[0041]  いくつかの例による、広角モードを含む方向性イントラ予測モードの例を例示する概念図である。
【図７】[0042]  いくつかの例による、広角モードと広角モードを使用して実行されるＰＤＰＣとを使用するイントラ予測モードの一例を例示する概念図である。
【図８】[0043]  いくつかの例による、広角モードと広角モードを使用して実行されるＰＤＰＣとを使用するイントラ予測モードの別の例を例示する概念図である。
【図９】[0044]  いくつかの例による、ビデオデータを復号するためのプロセスの一例を例示するフロー図である。
【図１０】[0045]  いくつかの例による、ビデオデータを符号化するためのプロセスの一例を例示するフロー図である。
【図１１】[0046]  いくつかの例による、ビデオエンコーダの一例を例示するブロック図である。
【図１２】[0047]  いくつかの例による、ビデオデコーダの一例を例示するブロック図である。
【詳細な説明】
【００３４】
[0048]  本開示のある特定の態様および実施形態が、以下で提供される。当業者に明らかであるように、これらの態様および実施形態のうちのいくつかは、独立して適用され得、それらのうちのいくつかは、組み合わせて適用され得る。以下の説明では、説明を目的として、特定の詳細が本願の実施形態の完全な理解を提供するために記載される。しかしながら、様々な実施形態が、これらの特定の詳細なしで実施され得ることは、明らかであろう。図および説明は、制限的となることを意図していない。
【００３５】
[0049]  次に続く説明は、例示的な実施形態のみを提供するものであり、本開示の範囲、適用可能性、または構成を限定することを意図していない。むしろ、例示的な実施形態の次に続く説明は、例示的な実施形態を実施することを可能にする説明を当業者に提供する。添付された特許請求の範囲に記載の本願の趣旨および範囲から逸脱することなく、要素の機能および配置において様々な変更がなされ得ることを理解されたい。
【００３６】
[0050]  ビデオコーディングデバイス（ビデオコーダとも呼ばれる）は、ビデオデータを効率的に符号化および復号するためにビデオ圧縮技法を実施する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間予測（例えば、イントラフレーム予測またはイントラ予測）、時間予測（例えば、インターフレーム予測またはインター予測）、（ビデオデータの異なるレイヤにわたる）レイヤ間予測、および／または他の予測技法を含む、異なる予測モードを適用することを含み得る。ビデオエンコーダは、元のビデオシーケンスの各ピクチャを、ビデオブロックまたはコーディングユニットと呼ばれる矩形領域に分割することができる（以下でより詳細に説明する）。これらのビデオブロックは、特定の予測モードを使用して符号化され得る。
【００３７】
[0051]  ビデオブロックは、１つまたは複数の方法で、より小さいブロックの１つまたは複数のグループに分割され得る。ブロックは、コーディングツリーブロック、予測ブロック、変換ブロック、および／または他の好適なブロックを含むことができる。一般に「ブロック」への言及は、別段に指定されない限り、そのようなビデオブロック（例えば、当業者であれば理解するように、コーディングツリーブロック、コーディングブロック、予測ブロック、変換ブロック、または他の適切なブロックもしくはサブブロック）を指し得る。さらに、これらのブロックの各々は、本明細書では「ユニット」（例えば、コーディングツリーユニット（ＣＴＵ）、コーディングユニット、予測ユニット（ＰＵ）、変換ユニット（ＴＵ）、または同様のもの）とも交換可能に呼ばれ得る。場合によっては、ユニットは、ビットストリーム中で符号化されるコーディング論理ユニットを示し得、ブロックは、プロセスがターゲットとするビデオフレームバッファの一部分を示し得る。
【００３８】
[0052]  インター予測モードの場合、ビデオエンコーダは、参照フレームまたは参照ピクチャと呼ばれる、別の時間ロケーションに位置するフレーム（またはピクチャ）中で符号化されているブロックに類似するブロックについて探索することができる。ビデオエンコーダは、その探索を、符号化されることになるブロックからのある特定の空間変位に制限し得る。水平変位成分および垂直変位成分を含む２次元（２Ｄ）動きベクトルを使用して、最良のマッチが位置特定され得る。イントラ予測モードの場合、ビデオエンコーダは、同じピクチャ内の前に符号化された隣接ブロックからのデータに基づいて空間予測技法を使用して、予測されたブロックを形成し得る。
【００３９】
[0053]  ビデオエンコーダは、予測誤差を決定し得る。例えば、予測は、符号化されているブロックおよび予測されたブロックにおける画素値（またはサンプル値）間の差分として決定され得る。予測誤差は残差と呼ぶこともできる。ビデオエンコーダはまた、予測誤差に変換（例えば、離散コサイン変換（ＤＣＴ）または他の好適な変換）を適用して、変換係数を生成し得る。変換後、ビデオエンコーダは変換係数を量子化し得る。量子化された変換係数および動きベクトルは、シンタックス要素を使用して表され、制御情報とともに、ビデオシーケンスのコーディングされた表現を形成し得る。いくつかの例では、ビデオエンコーダは、シンタックス要素をエントロピーコーディングし得、それによって、それらを表すために必要とされるビット数をさらに低減する。
【００４０】
[0054]  ビデオデコーダは、上述のシンタックス要素および制御情報を使用して、現在フレームを復号するための予測データ（例えば、予測ブロック）を構築し得る。例えば、ビデオデコーダは、予測されたブロックと、圧縮された予測誤差とを加算し得る。ビデオデコーダは、量子化された係数を使用して変換基底関数に重み付けすることによって、圧縮された予測誤差を決定し得る。再構成されたフレームと元のフレームとの間の差分は、再構成誤差と呼ばれる。
【００４１】
[0055]  本開示は、イントラ予測および位置依存（イントラ）予測組み合わせ（ＰＤＰＣ）を使用してビデオデータの１つまたは複数のサンプルおよび／またはブロックをコーディングするためのシステムおよび技法について説明する。例えば、予測サンプルの予測ブロックを生成するために、広角イントラ予測モードが実行され得る。広角イントラ予測モードは、−１３５度（イントラ予測モード２）から４５度（イントラ予測モード６６）までの標準角度の外の角度を使用し、予測サンプルからの垂直方向に対して−１３５度より小さい角度および／または４５度より大きい角度を使用することができる。本明細書で提供されるシステムおよび技法は、予測ブロックの予測サンプルを修正するために使用される参照サンプルを決定するために、ＰＤＰＣの使用をそのような広角イントラ予測モードに拡張する。
【００４２】
[0056]  本明細書で説明するシステムおよび技法は、概してビデオデータのサンプルおよび／またはブロックをコーディングする際の圧縮効率の向上をもたらす。例えば、広角モードを使用するＰＤＰＣ手法を実行することによって圧縮効率が提供され、これは、ひとつには予測サンプルにより近い参照サンプルがＰＤＰＣのために使用されることに起因する。圧縮効率は、一般に、既存のビデオコーディング技法の状態を進歩させる上で望ましい目標である。
【００４３】
[0057]  本開示で使用される場合、ビデオコーディングという用語は、概して、ビデオ符号化またはビデオ復号のいずれかを指す。同様に、ビデオコーダという用語は、概して、ビデオエンコーダ、ビデオデコーダ、または複合ビデオエンコーダ・デコーダ（ＣＯＤＥＣ）を指し得る。さらに、ビデオ復号に関して本開示で説明されるある特定の技法は、ビデオ符号化にも適用され得、逆もまた同様である。例えば、ビデオエンコーダおよびビデオデコーダは、同じプロセス、または逆のプロセスを実行するように構成され得る。また、ビデオエンコーダは典型的には、ビデオデータをどのように符号化するかを決定するプロセスの一部としてビデオ復号を実行する。よって、その反対のことが記載されていない限り、ビデオ復号に関して説明された技法がビデオ符号化の一部としても実行されることはできない、またはその逆に実行されることはできないと仮定されるべきではない。
【００４４】
[0058]  本開示はまた、現在のレイヤ、現在ブロック、現在ピクチャ、現在のスライス等などの用語を使用し得る。本開示のコンテキストでは、現在のという用語は、例えば、前にまたは既にコーディングされているブロック、ピクチャ、およびスライス、またはまだコーディングされていないブロック、ピクチャ、およびスライスとは対照的に、現在コーディングされているブロック、ピクチャ、スライス等を特定することを意図する。
【００４５】
[0059]  本明細書で説明する技法は、既存のビデオコーデック（例えば、高効率ビデオコーディング（ＨＥＶＣ）、アドバンスドビデオコーディング（ＡＶＣ）、または他の好適な既存のビデオコーデック）のいずれかに適用することができ、および／または、例えば、ＶＶＣ（Versatile Video Coding）、ＪＥＭ（joint exploration model）、ならびに／もしくは開発中あるいは開発されることになる他のビデオコーディング規格など、開発中の任意のビデオコーディング規格ならびに／もしくは将来のビデオコーディング規格のための効率的なコーディングツールであり得る。例示の目的でビデオコーディングを使用する例が本明細書で提供されるが、場合によっては、本明細書で説明する技法は、画像コーダ（例えば、ＪＰＥＧエンコーダおよび／またはデコーダ、または同様のもの）、ビデオコーダ（例えば、ビデオエンコーダおよび／またはビデオデコーダ）、または他の好適なコーディングデバイスなど、任意のコーディングデバイスを使用して実行され得る。
【００４６】
[0060]  図１は、ビデオデータの１つまたは複数のサンプルおよび／またはブロックをコーディングするために本開示の技法を利用し得る例示的なビデオ符号化および復号システム１０を例示するブロック図である。いくつかの例では、ビデオ符号化および復号システム１０は、イントラコーディングされた予測サンプルを生成するため、および／またはイントラコーディングされた予測サンプルを修正するために使用されるＰＤＰＣ参照サンプルを生成するために複数参照ライン（multiple reference lines）が使用されるときに、ＰＤＰＣ手法を使用してビデオデータをコーディングすることができる。ＭＲＬモードは、現在ブロックの近傍にある複数参照ラインを使用することを含む。
【００４７】
[0061]  図１に示されるように、システム１０は、宛先デバイス１４によって後の時間に復号されることになる符号化されたビデオデータを提供するソースデバイス１２を含む。特に、ソースデバイス１２は、コンピュータ可読媒体１６を介して宛先デバイス１４にビデオデータを提供する。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、または同様のものを含む、幅広い範囲のデバイスのうちのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４が、ワイヤレス通信のために装備され得る。よって、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信デバイスであり得る。ソースデバイス１２は、例示的なビデオ符号化デバイス（すなわち、ビデオデータを符号化するためのデバイス）である。宛先デバイス１４は、例示的なビデオ復号デバイス（例えば、ビデオデータを復号するためのデバイスまたは装置）である。
【００４８】
[0062]  図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオデータを記憶するように構成された記憶媒体２０と、ビデオエンコーダ２２と、出力インターフェース２４とを含む。宛先デバイス１４は、入力インターフェース２６と、符号化されたビデオデータを記憶するように構成された記憶媒体２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。他の例では、ソースデバイス１２および宛先デバイス１４は、他の構成要素または配列を含む。例えば、ソースデバイス１２は、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス１４は、統合されたディスプレイデバイスを含むのではなくむしろ、外部ディスプレイデバイスとのインターフェースをとり得る。
【００４９】
[0063]  図１の例示されているシステム１０は、単に１つの例にすぎない。ビデオデータを処理するための技法は、任意のデジタルビデオ符号化および／または復号デバイスもしくは装置によって実行され得る。一般に、本開示の技法は、ビデオ符号化デバイスおよびビデオ復号デバイスによって実行されるが、本技法は、典型的に「ＣＯＤＥＣ」と呼ばれる複合ビデオエンコーダ／デコーダによっても実行され得る。ソースデバイス１２および宛先デバイス１４は単に、ソースデバイス１２が宛先デバイス１４への送信のための符号化されたビデオデータを生成する、コーディングデバイスの例にすぎない。いくつかの例では、ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２および宛先デバイス１４の各々がビデオ符号化および復号構成要素を含むように実質的に対称的な方法で動作する。したがって、システム１０は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話通信のために、ソースデバイス１２と宛先デバイス１４との間での一方向または二方向のビデオ送信をサポートし得る。
【００５０】
[0064]  ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされたビデオを含むビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてコンピュータグラフィックスベースのデータを、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せを、生成し得る。ソースデバイス１２は、ビデオデータを記憶するように構成された１つまたは複数のデータ記憶媒体（例えば、記憶媒体２０）を備え得る。本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤードアプリケーションに適用され得る。いずれの場合も、キャプチャされた、事前キャプチャされた、またはコンピュータ生成されたビデオは、ビデオエンコーダ２２によって符号化され得る。出力インターフェース２４は、符号化されたビデオ情報をコンピュータ可読媒体１６に出力し得る。
【００５１】
[0065]  宛先デバイス１４は、コンピュータ可読媒体１６を介して、復号されることになる符号化されたビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に、符号化されたビデオデータを移動することが可能な、任意のタイプの媒体またはデバイスを備え得る。いくつかの例では、コンピュータ可読媒体１６は、ソースデバイス１２が符号化されたビデオデータをリアルタイムに直接宛先デバイス１４に送信することを可能にするための通信媒体を備える。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格にしたがって変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルもしくは１つまたは複数の物理的な伝送線などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークなどの、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を容易にするのに有用であり得る他の任意の機器を含み得る。宛先デバイス１４は、符号化されたビデオデータおよび復号されたビデオデータを記憶するように構成された１つまたは複数のデータ記憶媒体を備え得る。
【００５２】
[0066]  いくつかの例では、符号化されたデータ（例えば、符号化されたビデオデータ）は、出力インターフェース２４から記憶デバイスに出力され得る。同様に、符号化されたデータは、入力インターフェース２６によって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための他の任意の好適なデジタル記憶媒体などの、様々な分散型またはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイス１２によって生成される符号化されたビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、符号化されたビデオデータを宛先デバイス１４に送信する能力がある任意のタイプのサーバであり得る。例示的なファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準データ接続を通して、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適である、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデム等）、またはその両方の組合せを含み得る。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００５３】
[0067]  本開示の技法は、無線テレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、ＨＴＴＰを介した動的適応型ストリーミング（ＤＡＳＨ）を含む適応型ストリーミング技法などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体上に記憶されるデジタルビデオの復号、または他のアプリケーションなどの、様々なマルチメディアアプリケーションのいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話通信などのアプリケーションをサポートするために、一方向または二方向のビデオ送信をサポートするように構成され得る。
【００５４】
[0068]  コンピュータ可読媒体１６は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時的媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示せず）は、符号化されたビデオデータをソースデバイス１２から受信し、例えばネットワーク送信を介して、符号化されたビデオデータを宛先デバイス１４に提供し得る。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスが、符号化されたビデオデータをソースデバイス１２から受信し、符号化されたビデオデータを含むディスクを作成し得る。それゆえ、コンピュータ可読媒体１６は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【００５５】
[0069]  宛先デバイス１４の入力インターフェース２６は、コンピュータ可読媒体１６からの情報を受信する。コンピュータ可読媒体１６の情報は、ブロックおよび他のコーディングされたユニット、例えば、ピクチャグループ（ＧＯＰ）、の処理および／または特性を記述するシンタックス要素を含む、ビデオエンコーダ２２のビデオエンコーダ２２によって定義されるシンタックス情報を含み得、これは、ビデオデコーダ３０によっても使用される。記憶媒体２８は、入力インターフェース２６によって受信される、符号化されたビデオデータを記憶し得る。ディスプレイデバイス３２は、復号されたビデオデータをユーザに表示する。ディスプレイデバイス３２は、ブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのうちのいずれかを備え得る。
【００５６】
[0070]  ビデオエンコーダ２２およびビデオデコーダユニット３０は、１つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せなどの、様々な好適なエンコーダまたはデコーダ回路のいずれかとして各々実装され得る。本技法が部分的にソフトウェアにおいて実施されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し得、本開示の技法を実行するために、１つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオエンコーダ２２およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれ得、それらのうちのいずれも、それぞれのデバイスに複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部として統合され得る。
【００５７】
[0071]  いくつかの例では、ビデオエンコーダ２２およびビデオデコーダ３０は、ビデオコーディング規格にしたがって動作し得る。例示的なビデオコーディング規格は、これらに限定されるものではないが、ＩＴＵ−Ｔ Ｈ．２６１、ＩＳＯ／ＩＥＣ ＭＰＥＧ−１ Ｖｉｓｕａｌ、ＩＴＵ−Ｔ Ｈ．２６２またはＩＳＯ／ＩＥＣ ＭＰＥＧ−２ Ｖｉｓｕａｌ、ＩＴＵ−Ｔ Ｈ．２６３、ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ Ｖｉｓｕａｌ、およびＩＴＵ−Ｔ Ｈ．２６４（ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ ＡＶＣとしても既知）を含み、そのスケーラブルビデオコーディング（ＳＶＣ）拡張およびマルチビュービデオコーディング（ＭＶＣ）拡張を含む。ビデオコーディング規格である高効率ビデオコーディング（ＨＥＶＣ）またはＩＴＵ−Ｔ Ｈ．２６５は、その範囲およびスクリーンコンテンツコーディング拡張、３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）およびマルチビュー拡張（ＭＶ−ＨＥＶＣ）およびスケーラブル拡張（ＳＨＶＣ）を含めて、ＩＴＵ−Ｔ ＶＣＥＧ（Video Coding Experts Group）およびＩＳＯ／ＩＥＣ ＭＰＥＧ（Motion Picture Experts Group）のＪＣＴ−ＶＣ（Joint Collaboration Team on Video Coding）によって開発されている。最近のＨＥＶＣドラフト仕様書は、以下ＨＥＶＣ ＷＤと呼ばれ、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから入手可能である。
【００５８】
[0072]  ビデオエンコーダ２２およびビデオデコーダ３０はまた、ＶＶＣ（Versatile Video Coding）とも呼ばれるＩＴＵ−Ｔ Ｈ．２６６またはＪＥＭ（Joint Exploration Test Model）などの、他の所有規格または業界規格にしたがって動作し得る。ＶＶＣ規格の最近のドラフトは、Ｂｒｏｓｓ他，“Versatile Video Coding (Draft 4)”，ＩＴＵ−Ｔ ＳＧ１６ ＷＰ３およびＩＳＯ／ＩＥＣ ＪＴＣ１／ＳＣ２９／ＷＧ１１のＪＶＥＴ（Joint Video Experts Team），第１３回会合：Ｍａｒｒａｋｅｃｈ，ＭＡ，２０１９年１月９日〜１８日，ＪＶＥＴ−Ｍ１００１−ｖ５（以下、「ＶＶＣドラフト４」）に記載されている。しかしながら、本開示の技法は、いずれの特定のコーディング規格にも限定されるものではない。
【００５９】
[0073]  ＨＥＶＣ、ＶＶＣ、および他のビデオコーディング仕様では、ビデオシーケンスは典型的に、一連のピクチャを含む。ピクチャは、「フレーム」とも呼ばれ得る。ピクチャは、ＳL、ＳCb、およびＳCrと示される３つのサンプルアレイを含み得る。ＳLは、ルーマサンプルの二次元アレイ（すなわち、ブロック）である。ＳCbは、Ｃｂクロミナンスサンプルの二次元アレイである。ＳCrは、Ｃｒクロミナンスサンプルの二次元アレイである。クロミナンスサンプルは、本明細書では、「クロマ」サンプルとも呼ばれ得る。画素は、ピクチャのアレイ中の所与のロケーションについての３つのすべての成分（ルーマサンプルおよびクロマサンプル）を指すことができる。他の例では、ピクチャはモノクロであり得、ルーマサンプルのアレイのみを含み得、この場合、画素およびサンプルという用語は交換可能に使用することができる。
【００６０】
[0074]  さらに、ＨＥＶＣおよび他のビデオコーディング仕様では、ピクチャの符号化された表現を生成するために、ビデオエンコーダ２２が、コーディングツリーユニット（ＣＴＵ）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルの１つのコーディングツリーブロック、クロマサンプルの２つの対応するコーディングツリーブロック、およびこれらコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロのピクチャまたは３つの別個の色平面を有するピクチャでは、ＣＴＵは、単一のコーディングツリーブロックと、このコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックは、サンプルのＮ×Ｎブロックであり得る。ＣＴＵは、「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ）とも呼ばれ得る。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなどの他の規格のマクロブロックに大まかに類似し得る。しかしながら、ＣＴＵは、必ずしも、特定のサイズに限定されるわけではなく、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。１つのスライスは、ラスター走査順に連続して並べられた整数の数のＣＴＵを含み得る。
【００６１】
[0075]  ＨＥＶＣにしたがって動作する場合、コーディングされたＣＴＵを生成するために、ビデオエンコーダ２２は、ＣＴＵのコーディングツリーブロックに対して四分木分割（quad-tree partitioning）を再帰的に実行して、コーディングツリーブロックをコーディングブロックへと分割し得、それゆえ、「コーディングツリーユニット」と呼ばれる。コーディングブロックは、サンプルのＮ×Ｎブロックである。ＣＵは、ルーマサンプルアレイ、Ｃｂサンプルアレイ、およびＣｒサンプルアレイを有するピクチャの、ルーマサンプルの１つのコーディングブロックおよびクロマサンプルの２つの対応するコーディングブロック、ならびにそれらコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロのピクチャまたは３つの別個の色平面を有するピクチャでは、ＣＵは、単一のコーディングブロックと、このコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００６２】
[0076]  ビットストリーム内のシンタックスデータは、ＣＴＵのためのサイズも定義し得る。１つのスライスは、コーディング順に連続する複数のＣＴＵを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスへと分割され得る。上述のように、各ツリーブロックは、四分木にしたがってＣＵへと分割され得る。一般に、四分木データ構造は、ルートノードがツリーブロックに対応する状態で１つのＣＵにつき１つのノードを含む。ＣＵが４つのサブＣＵへと分割される場合、ＣＵに対応するノードは４つのリーフノードを含み、その各々がサブＣＵのうちの１つに対応する。
【００６３】
[0077]  四分木データ構造の各ノードは、対応するＣＵにシンタックスデータを提供し得る。例えば、四分木におけるノードは、ノードに対応するＣＵがサブＣＵへと分割されるかどうかを示す、分割フラグ（split flag）を含み得る。ＣＵについてのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵへと分割されるかどうかに依存し得る。ＣＵがこれ以上分割されない場合、それはリーフＣＵと呼ばれる。ＣＵのブロックがさらに分割される場合、それは一般に、非リーフＣＵと呼ばれ得る。本開示のいくつかの例では、リーフＣＵの４つのサブＣＵは、元のリーフＣＵの明示的な分割が存在しない場合であっても、リーフＣＵと呼ばれ得る。例えば、１６×１６のサイズのＣＵがこれ以上分割されない場合、１６×１６のＣＵは一度も分割されていないが、４つの８×８のサブＣＵもまたリーフＣＵと呼ばれ得る。
【００６４】
[0078]  ＣＵは、ＣＵがサイズ区別（size distinction）を有さないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。例えば、ツリーブロックは４つの子ノード（サブＣＵとも呼ばれる）へと分割され得、各子ノードは、次に親ノードになり、別の４つの子ノードへと分割され得る。四分木のリーフノードと呼ばれる、最後の非分割子ノードは、リーフＣＵとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連付けられたシンタックスデータは、最大ＣＵ深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、またコーディングノードの最小サイズも定義し得る。したがって、ビットストリームはまた、最小コーディングユニット（ＳＣＵ）も定義し得る。本開示は、ＨＥＶＣのコンテキストではＣＵ、ＰＵ、またはＴＵのいずれかを、もしくは他の規格のコンテキストでは同様のデータ構造（例えば、Ｈ．２６４／ＡＶＣにおけるマクロブロックおよびそのサブブロック）を指すように、「ブロック」という用語を使用する。
【００６５】
[0079]  ＣＵは、コーディングノードと、このコーディングノードに関連付けられた変換ユニット（ＴＵ）および予測ユニット（ＰＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、いくつかの例では、形状が正方形であり得る。ＨＥＶＣの例では、ＣＵのサイズは、８×８画素から、最大６４×６４画素以上のツリーブロックのサイズまでの範囲であり得る。各ＣＵは、１つまたは複数のＰＵおよび１つまたは複数のＴＵを含み得る。ＣＵに関連付けられたシンタックスデータは、例えば、１つまたは複数のＰＵへのＣＵの分割を記述し得る。分割モードは、ＣＵが、スキップまたはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、インター予測モード符号化されるかで異なり得る。ＰＵは、形状が非正方形になるように分割され得る。ＣＵに関連付けられたシンタックスデータはまた、例えば、四分木にしたがった１つまたは複数のＴＵへのＣＵの分割を記述し得る。ＴＵは、形状が正方形または非正方形（例えば、矩形）であり得る。
【００６６】
[0080]  ＨＥＶＣ規格は、ＴＵにしたがった変換を可能にする。ＴＵは、ＣＵごとに異なり得る。ＴＵは典型的には、分割されたＬＣＵのために定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ変更されるが、これは、常に当てはまるわけではない。ＴＵは典型的には、ＰＵと同じサイズであるかそれよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差四分木」（ＲＱＴ）と呼ばれることがある四分木構造を使用してより小さいユニットへと再分割され得る。ＲＱＴのリーフノードは、ＴＵと呼ばれ得る。ＴＵに関連付けられた画素差分値は、量子化され得る変換係数を生成するために変換され得る。
【００６７】
[0081]  リーフＣＵは、１つまたは複数のＰＵを含み得る。一般に、ＰＵは、対応するＣＵのすべてまたは一部分に対応する空間的エリアを表し、ＰＵについての参照サンプルを検索するためのデータを含み得る。さらに、ＰＵは、予測に関連するデータを含む。例えば、ＰＵがイントラモード符号化されるとき、ＰＵについてのデータはＲＱＴに含まれ得、それは、ＰＵに対応するＴＵのためのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、そのＰＵについての１つまたは複数の動きベクトルを定義するデータを含み得る。ＰＵについての動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルについての解像度（例えば、４分の１画素精度または８分の１画素精度）、動きベクトルが指し示す参照ピクチャ、および／または動きベクトルについての参照ピクチャリスト（例えば、リスト０、リスト１、またはリストＣ）を記述し得る。
【００６８】
[0082]  １つまたは複数のＰＵを有するリーフＣＵもまた、１つまたは複数のＴＵを含み得る。ＴＵは、上述のように、ＲＱＴ（ＴＵ四分木構造とも呼ばれる）を使用して指定され得る。例えば、分割フラグが、リーフＣＵが４つの変換ユニットへと分割されるかを示し得る。いくつかの例では、各変換ユニットは、さらなるサブＴＵへとさらに分割され得る。ＴＵがこれ以上分割されないとき、それはリーフＴＵと呼ばれ得る。一般に、イントラコーディングの場合、リーフＣＵに属するすべてのリーフＴＵが、同じイントラ予測モードから生成された残差データを含む。すなわち、リーフＣＵのすべてのＴＵにおいて変換されることになる予測値を計算するために、同じイントラ予測モードが一般に適用される。イントラコーディングの場合、ビデオエンコーダ２２は、ＴＵに対応するＣＵの部分と元のブロックとの間の差分として、イントラ予測モードを使用して各リーフＴＵについての残差値を計算し得る。ＴＵは、必ずしもＰＵのサイズに限定されるわけではない。よって、ＴＵは、ＰＵより大きい場合も小さい場合もある。イントラコーディングの場合、ＰＵは、同じＣＵについて対応するリーフＴＵとコロケートされ得る。いくつかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００６９】
[0083]  さらに、リーフＣＵのＴＵは、それぞれのＲＱＴ構造にも関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵへと分割されるかを示す四分木を含み得る。ＴＵ四分木のルートノードは一般に、リーフＣＵに対応し、ＣＵ四分木のルートノードは一般に、ツリーブロック（または、ＬＣＵ）に対応する。
【００７０】
[0084]  上述のように、ビデオエンコーダ２２は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックへと分割し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵのＰＵは、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、これらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロのピクチャまたは３つの別個の色平面を有するピクチャでは、ＰＵは、単一の予測ブロックと、この予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ２２は、ＣＵの各ＰＵの予測ブロック（例えば、ルーマ、Ｃｂ、およびＣｒ予測ブロック）についての予測ブロック（例えば、ルーマ、Ｃｂ、およびＣｒ予測ブロック）を生成し得る。
【００７１】
[0085]  ビデオエンコーダ２２およびビデオデコーダ３０は、ＶＶＣにしたがって動作するように構成され得る。ＶＶＣによれば、ビデオコーダ（ビデオエンコーダ２２など）は、ピクチャを複数のコーディングツリーユニット（ＣＴＵ）に分割する。ビデオエンコーダ２２は、四分木二分木（ＱＴＢＴ）構造またはマルチタイプツリー（ＭＴＴ）構造などのツリー構造にしたがってＣＴＵを分割し得る。ＱＴＢＴ構造は、ＨＥＶＣのＣＵ、ＰＵ、およびＴＵ間の分離など、複数の分割タイプの概念を取り除く。ＱＴＢＴ構造は、四分木分割にしたがって分割された第１のレベルと、二分木分割にしたがって分割された第２のレベルとの２つのレベルを含む。ＱＴＢＴ構造のルートノードはＣＴＵに対応する。二分木のリーフノードは、コーディングユニット（ＣＵ）に対応する。
【００７２】
[0086]  ＭＴＴ分割構造では、ブロックは、四分木（ＱＴ）分割、二分木（ＢＴ）分割、および１つまたは複数のタイプの三分木（ＴＴ）分割を使用して分割され得る。三分木分割は、ブロックが３つのサブブロックに分割される分割である。いくつかの例では、三分木分割は、中心を通って元のブロックを分割することなくブロックを３つのサブブロックに分割する。ＭＴＴにおける分割タイプ（例えば、ＱＴ、ＢＴ、およびＴＴ）は、対称または非対称であり得る。
【００７３】
[0087]  いくつかの例では、ビデオエンコーダ２２およびビデオデコーダ３０は、ルミナンス成分およびクロミナンス成分の各々を表すように単一のＱＴＢＴまたはＭＴＴ構造を使用し得るが、他の例では、ビデオエンコーダ２２およびビデオデコーダ３０は、ルミナンス成分のための１つのＱＴＢＴ／ＭＴＴ構造と、両方のクロミナンス成分のための別のＱＴＢＴ／ＭＴＴ構造（またはそれぞれのクロミナンス成分のための２つのＱＴＢＴ／ＭＴＴ構造）など、２つ以上のＱＴＢＴまたはＭＴＴ構造を使用し得る。
【００７４】
[0088]  ＶＶＣでは、ピクチャは、スライス、タイル、およびブリック（brick）に分割され得る。一般に、ブリックは、ピクチャ中の特定のタイル内のＣＴＵ行の矩形領域であり得る。タイルは、ピクチャ中の特定のタイル列および特定のタイル行内のＣＴＵの矩形領域であり得る。タイル列は、ピクチャの高さに等しい高さと、ピクチャパラメータセット中のシンタックス要素によって指定された幅とを有するＣＴＵの矩形領域である。タイル行は、ピクチャパラメータセット中のシンタックス要素によって指定された高さと、ピクチャの幅に等しい幅とを有するＣＴＵの矩形領域である。場合によっては、タイルは、複数のブリックに分割され得、その各々は、タイル内に１つまたは複数のＣＴＵ行を含むことができる。複数のブリックへと分割されないタイルもブリックと呼ばれる。しかしながら、タイルの真のサブセットであるブリックは、タイルとは呼ばれない。スライスは、単一のＮＡＬユニットに排他的に含まれるピクチャの整数の数のブリックであり得る。場合によっては、スライスは、いくつかの完全なタイル、または１つのタイルの完全なブリックの連続したシーケンスのみのいずれかを含み得る。
【００７５】
[0089]  ビデオエンコーダ２２およびビデオデコーダ３０は、ＨＥＶＣによる四分木分割、ＱＴＢＴ分割、ＭＴＴ分割、または他の分割構造を使用するように構成され得る。説明を目的として、本開示の技法の説明は、ＱＴＢＴ分割に関して提示される。しかしながら、本開示の技法はまた、四分木分割、または他のタイプの分割も使用するように構成されたビデオコーダにも適用され得ることを理解されたい。
【００７６】
[0090]  ビデオエンコーダ２２は、ＰＵについての予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ２２が、ＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２２は、ＰＵを含むピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。ビデオエンコーダ２２が、ＣＵの１つまたは複数のＰＵについての予測ブロック（例えば、ルーマ、Ｃｂ、およびＣｒ予測ブロック）を生成した後、ビデオエンコーダ２２は、このＣＵについての１つまたは複数の残差ブロックを生成し得る。例えば、ビデオエンコーダ２２は、ＣＵについてのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つ中のルーマサンプルと、ＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ２２は、ＣＵについてのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２２はまた、ＣＵについてのＣｒ残差ブロックを生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックの１つ中のＣｒサンプルと、ＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００７７】
[0091]  さらに、上述のように、ビデオエンコーダ２２は、ＣＵの残差ブロック（例えば、ルーマ、Ｃｂ、およびＣｒ残差ブロック）を１つまたは複数の変換ブロック（例えば、ルーマ、Ｃｂ、およびＣｒ変換ブロック）へと分解するために四分木分割を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形（例えば、正方形または非正方形）ブロックである。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロック、クロマサンプルの２つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造を備え得る。ゆえに、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックを有し得る。ＴＵのルーマ変換ブロックは、ＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロのピクチャまたは３つの別個の色平面を有するピクチャでは、ＴＵは、単一の変換ブロックと、この変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００７８】
[0092]  ビデオエンコーダ２２は、ＴＵについての係数ブロックを生成するために、ＴＵの変換ブロックに１つまたは複数の変換を適用し得る。例えば、ビデオエンコーダ２２は、ＴＵについてのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは、変換係数の二次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ２２は、ＴＵについてのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２２は、ＴＵについてのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００７９】
[0093]  いくつかの例では、ビデオエンコーダ２２は、変換ブロックへの変換の適用を省略する。そのような例では、ビデオエンコーダ２２は、変換係数と同じ方法で残差サンプル値を扱い得る。よって、ビデオエンコーダ２２が変換の適用を省略する例では、変換係数および係数ブロックの以下の考察が、残差サンプルの変換ブロックに適用可能であり得る。
【００８０】
[0094]  係数ブロック（例えば、ルーマ係数ブロック、Ｃｂ係数ブロック、またはＣｒ係数ブロック）を生成した後、ビデオエンコーダ２２は、係数ブロックを表すために使用されるデータ量を可能な限り低減するために、係数ブロックを量子化し得、可能性としてさらなる圧縮を提供する。量子化は一般に、ある範囲の値が単一の値に圧縮されるプロセスを指す。例えば、量子化は、値を定数で除算し、次いで最も近い整数に端数を丸めることによって行われ得る。係数ブロックを量子化するために、ビデオエンコーダ２２は、係数ブロックの変換係数を量子化し得る。ビデオエンコーダ２２が係数ブロックを量子化した後、ビデオエンコーダ２２は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。例えば、ビデオエンコーダ２２は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）または他のエントロピーコーディング技法を実行し得る。
【００８１】
[0095]  ビデオエンコーダ２２は、コーディングされたピクチャの表現および関連するデータを形成するビットのシーケンスを含むビットストリームを出力し得る。よって、ビットストリームは、ビデオデータの符号化された表現を備える。ビットストリームは、ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのシーケンスを備え得る。ＮＡＬユニットは、ＮＡＬユニット中のデータのタイプを示すインジケーションと、必要に応じてエミュレーション防止ビットが組み入れられている生バイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）の形態でそのデータを含むバイトとを含むシンタックス構造である。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み得、ＲＢＳＰをカプセル化し得る。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化される整数の数のバイトを含むシンタックス構造であり得る。いくつかの例では、ＲＢＳＰは０ビットを含む。
【００８２】
[0096]  ビデオデコーダ３０は、ビデオエンコーダ２２によって生成されたビットストリームを受信し得る。ビデオデコーダ３０は、ビデオデータのピクチャを再構成するために、ビットストリームを復号し得る。ビットストリームを復号することの一部として、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得するためにビットストリームをパース（parse）し得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、ビデオエンコーダ２２によって実行されるプロセスとはほぼ逆であり得る。例えば、ビデオデコーダ３０は、現在のＣＵのＰＵについての予測ブロックを決定するために、ＰＵの動きベクトルを使用し得る。加えて、ビデオデコーダ３０は、現在のＣＵのＴＵの係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在のＣＵのＴＵの変換ブロックを再構成するために、係数ブロックに対して逆変換を実行し得る。ビデオデコーダ３０は、現在のＣＵのＰＵについての予測ブロックのサンプルを、現在のＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在のＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵについてのコーディングブロックを再構成することによって、ビデオデコーダ３０は、ピクチャを再構成し得る。
【００８３】
[0097]  本明細書で開示する技法は、ＡＶＣ、ＨＥＶＣ、およびＶＶＣを含むビデオ規格の一部であるブロックベースのイントラ予測に基づいて構築される。ブロックベースのイントラ予測では、典型的には、隣接の再構成されたブロックからの参照サンプルのラインが、現在ブロック内のサンプルを予測するために使用される。サンプルの１つまたは複数のラインが予測のために使用され得る。参照サンプルは、ＤＣモード、プレーナモード、および角度／方向性モードなどの典型的なイントラ予測モードによって用いられる。
【００８４】
[0098]  イントラ予測は、ブロックの空間的に隣接する再構成された画像サンプルを使用して画像ブロック予測を実行する。イントラ予測を用いて、Ｎ×Ｍ（例えば、４×４）ブロックが、選択された予測方向に沿った上および左の再構成された隣接サンプル（参照サンプル）によって予測される。１つの例として、ブロックは、選択された予測方向に沿った上および左の再構成された隣接サンプル（すなわち、参照サンプル）によって予測される。参照サンプルは、予測されているブロックの外部にある。参照サンプルを用いて、ビデオエンコーダ２２は、参照サンプルに基づいて予測サンプルを有する予測ブロックを構築する。
【００８５】
[0099]  概して、イントラ予測技法では、ビデオエンコーダ２２は、予測ブロックと現在ブロックとの間の差分を示す残差ブロック（例えば、予測サンプルと現在ブロックのサンプルとの間の差分を示す残差値）を決定し、残差ブロックにおける残差値を示す情報をシグナリングする。ビデオデコーダ３０は、同様に参照サンプルを決定し、予測ブロックを構築する。ビデオデコーダ３０は、受信した情報に基づいて残差ブロックの残差値を決定し、残差ブロックの残差値を予測ブロックの予測サンプルに加算して現在ブロックを再構成する。
【００８６】
[0100]  より詳細に説明するように、本開示で説明する例示的な技法は、予測ブロックの予測サンプルの１つまたは複数（例えば、すべて）を修正する。ビデオエンコーダ２２は、修正された予測サンプルに基づいて残差値を決定し得る。ビデオデコーダ３０は、残差値を、修正された予測サンプルに加算して現在ブロックを再構成し得る。
【００８７】
[0101]  複数のイントラ予測モード（「イントラモード」とも呼ばれる）がある。いくつかの例では、ルーマブロックのイントラ予測は、プレーナモード、ＤＣモード、および３３個の角度モード（例えば、対角イントラ予測モードおよび対角イントラ予測モードに隣接する角度モード）を含む、３５個のモードを含む。エンコーダ２２および／またはデコーダ３０は、予測ブロックと符号化されることになるブロックとの間の残差を最小にする各ブロックのための予測モードを、（例えば、絶対誤差の和（ＳＡＥ：Sum of Absolute Errors）、差分絶対値和（ＳＡＤ：Sum of Absolute Differences）、変換差分絶対値和（ＳＡＴＤ：Sum of Absolute Transformed Differences）、または他の類似性の尺度（measure of similarity）に基づいて）選択し得る。例えば、ＳＡＥは、符号化されることになるブロックにおける各画素（またはサンプル）と、比較のために使用されている予測ブロックにおける対応する画素（またはサンプル）との間の差分絶対値をとることによって計算され得る。画素（またはサンプル）の差分を合計して、差分画像のＬ１ノルム、２つの画像ブロック間のマンハッタン距離、または他の計算などのブロック類似性のメトリックを生成する。一例としてＳＡＥを使用すると、イントラ予測モードの各々を使用する各予測についてＳＡＥは予測誤差の大きさを示す。実際の現在ブロックに対する最良のマッチを有するイントラ予測モードは、最小のＳＡＥを与えるイントラ予測モードによって与えられる。
【００８８】
[0102]  イントラ予測の３５個のモードは、以下の表１に示すようにインデックスを付けられる。他の例では、３３個の角度モードによってまだ表されていない場合がある予測角度を含む、より多くのイントラモードが定義され得る。他の例では、角度モードに関連付けられた予測角度は、ＨＥＶＣにおいて使用されるものとは異なり得る。
【表１】
2021530906.tif 000003
【００８９】
[0103]  Ｎ×Ｎブロックについてプレーナ予測を実行するために、（ｘ，ｙ）に位置する各サンプルｐxyについて、予測サンプル値が、（イントラ予測のための参照サンプルとして使用される）４つの特定の再構成された隣接サンプルにバイリニアフィルタを適用することによって計算され得る。４つの参照サンプルは、右上の再構成されたサンプルＴＲと、左下の再構成されたサンプルＢＬと、現在サンプルの同じ列（ｒx,-1）および行（ｒ-1,y）に位置する２つの再構成されたサンプルとを含む。プレーナモードは、以下のように公式化することができる。
ｐxy＝（（Ｎ−ｘ１）＊・Ｌ＋（Ｎ−ｙ１）＊・Ｔ＋ｘ１＊・Ｒ＋ｙ１＊・Ｂ）／（２＊Ｎ）
【００９０】
[0104]  ここで、ｘ１＝ｘ＋１、ｙ１＝ｙ＋１、Ｒ＝ＴＲ、およびＢ＝ＢＬである。
【００９１】
[0105]  ＤＣモードの場合、予測ブロックは、再構成された隣接サンプルの平均値で埋められる。一般に、プレーナモードおよびＤＣモードの両方が、平滑に変化する一定の画像領域をモデル化するために適用される。
【００９２】
[0106]  ３３個の異なる予測方向を含む、ＨＥＶＣにおける角度イントラ予測モードの場合、イントラ予測プロセスは、次の通り説明できる。所与の角度イントラ予測モードごとに、それに応じてイントラ予測方向が特定され得、例えば、イントラモード１８は純水平予測方向に対応し、イントラモード２６は純垂直予測方向に対応する。角度予測モードを図３に示す。いくつかのコーデックでは、異なる数のイントラ予測モードが使用され得る。例えば、プレーナモードおよびＤＣモードに加えて、６５個の角度モードが定義され得、ここで、モード２は−１３５°の予測方向を示し、モード３４は−４５°の予測方向を示し、モード６６は４５°の予測方向を示す。いくつかのコーデック（例えば、ＶＶＣ）では、−１３５°を超える（−１３５°より小さい）および４５°を超える（４５°より大きい）角度も定義され得、これらは広角イントラモードと呼ばれ得る。本明細書での説明は、ＨＥＶＣにおけるイントラモード設計（すなわち、３５個のモードを有する）に関するが、開示される技法は、広角イントラモードを含むより多くのイントラモードにも適用され得る。
【００９３】
[0107]  予測ブロックの各サンプルの座標（ｘ，ｙ）が、特定のイントラ予測方向（例えば、角度イントラ予測モードのうちの１つ）に沿って投影される（projected）。例えば、特定のイントラ予測方向が与えられると、予測ブロックのサンプルの座標（ｘ，ｙ）は、まず、イントラ予測方向に沿う再構成された隣接サンプルの行／列に投影される。（ｘ，ｙ）が２つの再構成された隣接サンプルＬとＲとの間の分数位置αに投影される場合、（ｘ，ｙ）についての予測値は、以下のように公式化する２タップバイリニア補間フィルタ（two-tap bi-linear interpolation filter）を使用して計算され得る。
ｐxy＝（１−ａ）・Ｌ＋ａ・Ｒ
【００９４】
[0108]  浮動小数点演算を回避するために、ＨＥＶＣでは、上記の計算は、以下のように整数演算を使用して近似され得る。
ｐxy＝（（３２−ａ’）・Ｌ＋ａ’・Ｒ＋１６）＞＞５
【００９５】
[0109]  ここで、ａ’は３２＊ａに等しい整数である。
【００９６】
[0110]  いくつかの例では、イントラ予測の前に、隣接参照サンプルは、イントラ参照平滑化またはモード依存イントラ平滑化（ＭＤＩＳ：mode-dependent intra smoothing）として知られている、２タップバイリニアフィルタまたは３タップ（１、２、１）／４フィルタ（3-Tap (1,2,1)/4 filter）を使用してフィルタリングされる。イントラ予測を行うとき、イントラ予測モードインデックス（ｐｒｅｄＭｏｄｅＩｎｔｒａ）およびブロックサイズ（ｎＴｂＳ）が与えられ、参照平滑化プロセスが実行されるかどうか、およびどの平滑化フィルタが使用されるかが決められる。イントラ予測モードインデックスは、イントラ予測モードを示すインデックスである。
【００９７】
[0111]  予測ブロックの予測サンプルは、上記例示的な技法を使用して生成される。予測サンプルが生成された後、予測サンプルの１つまたは複数は、位置依存（イントラ）予測組み合わせ（ＰＤＰＣ）を使用して修正され得る。ＰＤＰＣの形態は、その全体がすべての目的のために参照によって本明細書に組み込まれる、ITU-T SG16/Q6 Doc. COM16-C1046, “Position Dependent intra Prediction Combination (PDPC)、およびX. Zhao, V. Seregin, A. Said, M. Karczewicz, “EE1 related: Simplification and extension of PDPC”, 8th JVET Meeting, Macau, Oct. 2018, JVET-H0057 に説明されている。この文献には、以下に要約するように、シグナリングすることなくプレーナモード、ＤＣモード、水平モード、および垂直モードに適用されるＰＤＰＣの導入が開示されている。
【００９８】
[0112]  例えば、（ｘ，ｙ）に位置する予測サンプルｐｒｅｄ（ｘ，ｙ）が、イントラ予測モード（例えば、プレーナ、ＤＣ、または角度）を用いて予測され、その値は、以下のように単一の参照サンプルラインについてのＰＤＰＣ式を使用して修正される。
ｐｒｅｄ（ｘ，ｙ）＝（ｗＬ×Ｒ-1,y＋ｗＴ×Ｒx,-1−ｗＴＬ×Ｒ-1,-1＋（６４−ｗＬ−ｗＴ＋ｗＴＬ）×ｐｒｅｄ’（ｘ，ｙ）＋３２）＞＞６              （式１）
【００９９】
[0113]  式１において、ｐｒｅｄ’（ｘ，ｙ）は、予測サンプルを生成するために上述のイントラ予測モードを使用して決定された予測サンプルの値であり、ｐｒｅｄ（ｘ，ｙ）は、ｐｒｅｄ’（ｘ，ｙ）の修正された値である。項Ｒx,-1およびＲ-1,yは、それぞれ、現在サンプル（ｘ，ｙ）の上および左に位置する参照サンプル（現在ブロックの外部の隣接する上および左のサンプル）を表し、項Ｒ-1,-1は、現在ブロックの左上角（top-left corner）に位置する参照サンプル（現在ブロックの外部の隣接する左上角）を表す。例えば、図２Ａ（後述）に示すように、ブロック２００Ａの左上角に位置する第１の予測サンプル２０２から見ると、Ｒx,-1は、修正されている予測サンプル（値ｐｒｅｄ’（ｘ，ｙ）に対応）のｘ座標と同じｘ座標を有する現在ブロックの１行上のサンプルを表し、Ｒ-1,yは、修正されている予測サンプルのｙ座標と同じｙ座標を有する現在ブロックの１列左（または「左側」）のサンプルを表し、Ｒ-1,-1は、現在ブロックの１列左かつ現在ブロックの１行上のサンプルを表す。
【０１００】
[0114]  （イントラ予測モードを使用して生成された）予測サンプルを修正するために使用されているサンプル（例えば、ＰＤＰＣのために使用される参照サンプル）は、ピクチャ中のサンプル（例えば、ルーマサンプルおよびクロマサンプル）であり、（可能ではあるが）必ずしも他の予測サンプルではない。例えば、Ｎ×Ｍのサイズを有するイントラ予測されている現在ブロックについて、ビデオエンコーダ２２および／またはビデオデコーダ３０は、Ｎ×Ｍサイズの予測ブロックを生成し得る。予測サンプルを修正するために使用される参照サンプルは、（現在ブロックを含む）現在ピクチャの参照サンプルであり、現在ブロックの外部にある（現在ブロックの１つまたは複数の隣接ブロック中にある）。
【０１０１】
[0115]  現在ブロックの外部のサンプルを特定するための座標系は、現在ブロックに対するものである。例えば、現在ブロックの左上角に位置するサンプルは、（０，０）の座標を有する。ビデオエンコーダ２２は、予測ブロックの左上角に位置する（例えば、座標（０，０）を有する）予測サンプルと、座標（０，０）を有する現在ブロック中のサンプルとの間の残差を決定し得る。現在ブロック中の（０，０）に位置するサンプルを再構成するために、ビデオデコーダ３０は、予測ブロック中の（０，０）に位置する予測サンプルを、（０，０）に位置するサンプルに対応する残差値に加算し得る。したがって、現在ブロック中のサンプルごとに、（例えば、同じ座標を有する）予測ブロック中に対応するサンプルがある。
【０１０２】
[0116]  したがって、Ｒx,-1は、ｙ座標が−１であることを意味し、したがって、現在ブロックの上にある行にあるサンプルを指す。ｘ座標は、修正されている予測サンプルのｘ座標と同じであり得る。Ｒ-1,yの場合、ｘ座標は−１であり、したがって、現在ブロックの左にある列を指す。ｙ座標は、修正されている予測サンプルのｙ座標と同じであり得る。
【０１０３】
[0117]  （０，０）座標がピクチャの右上サンプルを指す座標系など、異なる座標系を使用することも可能であり得る。例示的な技法を、（０，０）座標がブロックの左上サンプルを指す座標系に関して説明する。
【０１０４】
[0118]  ＤＣモードの場合、重みは、幅および高さの寸法を有するブロックについて以下のように計算する。
ｗＴ＝３２＞＞（（ｙ＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝３２＞＞（（ｘ＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝（ｗＬ＞＞４）＋（ｗＴ＞＞４）              （式２）
【０１０５】
[0119]  式２において、ｓｈｉｆｔ＝（ｌｏｇ2（ｗｉｄｔｈ）＋ｌｏｇ2（ｈｅｉｇｈｔ）＋２）＞＞２である。プレーナモードの場合はｗＴＬ＝０であり、水平モードの場合はｗＬ＝０およびｗＴＬ＝ｗＴであり、垂直モードの場合はｗＴ＝０およびｗＴＬ＝ｗＬである。場合によっては、ＰＤＰＣ重みは、加算およびシフトのみを用いて計算することができる。ｐｒｅｄ（ｘ，ｙ）の値は、式１を使用して単一のステップで算出することができる。
【０１０６】
[0120]  図２Ａは、１つの４×４ブロック２００Ａ内の（サンプル位置（０，０）における）第１の予測サンプル２０２についてのＤＣモードＰＤＰＣ重み（ｗＬ、ｗＴ、ｗＴＬ）を例示する図である。図示するように、Ｒ-1,yＰＤＰＣ参照サンプルについての重みｗＬは３２であり、Ｒx,-1ＰＤＰＣ参照サンプルについての重みｗＴは３２であり、Ｒ-1,-1ＰＤＰＣ参照サンプルについての重みｗＴＬは−４である。重み（ｗＬ、ｗＴ、ｗＴＬ）は、上式２にしたがって決定することができる。式２に示すように、重みは、現在ブロック中の予測サンプルｐｒｅｄ（ｘ，ｙ）の位置（ｘ，ｙ）に基づいて決定される。
【０１０７】
[0121]  図２Ｂは、１つの４×４ブロック内のサンプル位置（１，０）についてのＤＣモードＰＤＰＣ重み（ｗＬ、ｗＴ、ｗＴＬ）を例示する。図示するように、Ｒ-1,yＰＤＰＣ参照サンプルについての重みｗＬは８であり、Ｒx,-1ＰＤＰＣ参照サンプルについての重みｗＴは３２であり、Ｒ-1,-1ＰＤＰＣ参照サンプルについての重みｗＴＬは−２である。重み（ｗＬ、ｗＴ、ｗＴＬ）は、上式２にしたがって決定することができる。
【０１０８】
[0122]  場合によっては、ＰＤＰＣがＤＣイントラモード、プレーナイントラモード、水平イントラモード、および垂直イントラモードに適用される場合、ＤＣモード境界フィルタまたは水平／垂直モードエッジフィルタなどの追加の境界フィルタが適用されない。場合によっては、式１は、追加の参照サンプルラインを含むように一般化され得る（例えば、現在ブロックの１行上または１行左のサンプルに限定されない）。この場合、複数の参照サンプルが、Ｒx,-1、Ｒ-1,y、Ｒ-1,-1の近傍において利用可能であり、各々には、例えばトレーニングによって最適化することができる重みが割り当てられ得る。
【０１０９】
[0123]  場合によっては、ＰＤＰＣは、概して角度モードに（例えば、対角イントラモードに、および対角モードに隣接する角度モードに）拡張され得る。意図される対角イントラモードは、左下および右上の方向にしたがって予測するモード、ならびにいくつかの隣接角度モード（adjacent angular mode）、例えば、対角左下モード（bottom-left diagonal mode）と垂直モード（vertical mode）との間のＮ個の隣接モード（adjacent mode）、および対角右上モード（top-right diagonal mode）と水平モード（horizontal mode）との間のＮ個またはＭ個の隣接モードである。図３は、本明細書に開示される角度モードの特定を例示する。一般に、隣接モードは、利用可能な角度モードの選択されたサブセットであり得る。角度モード間の間隔は、例えば、不均一であり得、いくつかの角度モードは、例えば、スキップされ得る。
【０１１０】
[0124]  いくつかの例では、ビデオエンコーダ２２およびビデオデコーダ３０は、ＤＣモード、プレーナモード、垂直モード、または水平モードを除く角度モードで現在ブロックがイントラ予測されるＰＤＰＣを実行するように構成され得る。しかしながら、ＰＤＰＣを角度イントラ予測モードに拡張する際に技術的な複雑さがあり得る。例えば、参照サンプルは、現在ブロックの外部に位置するが、修正されている予測サンプルと同じｘ座標および／またはｙ座標を有する必要はない。したがって、ビデオコーディング効率が得られるように予測サンプルを修正するためにどの参照サンプルを使用すべきかが不確かであり得る。
【０１１１】
[0125]  例えば、残差値をシグナリングするのに必要な情報を低減した場合、帯域幅効率が増加する。したがって、（イントラ予測を使用して決定された）予測ブロックを修正するために使用されるＰＤＰＣ参照サンプルは、修正された予測ブロックから生成される残差値が、他の技法と比較して、シグナリングされるのにより少ない量の情報を必要とするようにするべきである。しかしながら、どの参照サンプルを使用すべきかの決定が過度に集中的である場合、ビデオデコーダ３０が現在ブロックを再構成するのに要する時間に待ち時間があり得る。
【０１１２】
[0126]  図４Ａ〜図４Ｄは、対角イントラモードおよび隣接角度イントラモードに拡張されたＰＤＰＣによって使用されるサンプルの定義を例示する。図４Ａ〜図４Ｄ中の破線矢印は、（例えば、図３からの）予測方向を示し、イントラ予測された予測サンプルｐｒｅｄ（ｘ’，ｙ’）のために使用される参照サンプルから生じている。図４Ａは、ＰＤＰＣを対角右上モードに拡張するためのＰＤＰＣ参照サンプルＲ(x,-1)、Ｒ(-1,y)、およびＲ(-1,-1)の定義を例示する。予測サンプルｐｒｅｄ（ｘ’，ｙ’）は、予測ブロック内の（ｘ’，ｙ’）に位置する。ＰＤＰＣ参照サンプルＲ(x,-1)の座標ｘは、ｘ＝ｘ’＋ｙ’＋１によって与えられ、ＰＤＰＣ参照サンプルＲ(-1,y)の座標ｙは、同様に、ｙ＝ｘ’＋ｙ’＋１によって与えられる。対角右上モードのためのＰＤＰＣ重みは、例えば、ｗＴ＝１６＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝１６＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝０である。
【０１１３】
[0127]  図４Ｂは、ＰＤＰＣを対角左下モードに拡張するための参照サンプルＲ(x,-1)、Ｒ(-1,y)、およびＲ(-1,-1)の定義を例示する。ＰＤＰＣ参照サンプルＲ(x,-1)の座標ｘは、ｘ＝ｘ’＋ｙ’＋１によって与えられ、ＰＤＰＣ参照サンプルＲ(-1,y)の座標ｙは、ｙ＝ｘ’＋ｙ’＋１によって与えられる。対角右上モードのためのＰＤＰＣ重みは、例えば、ｗＴ＝１６＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝１６＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝０である。
【０１１４】
[0128]  図４Ａおよび図４Ｂでは、ビデオエンコーダ２２およびビデオデコーダ３０の各々は、現在ブロックの上にある行（例えば、すぐ上にあるが、本技法はそのように限定されない）を決定し、決定された行におけるｘ座標を決定し得る。決定された行におけるｘ座標は、予測サンプルのｘ座標＋予測サンプルのｙ座標＋１に等しい。ビデオエンコーダ２２およびビデオデコーダ３０は、決定された行および決定されたｘ座標に基づいて、１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定し得る。
【０１１５】
[0129]  同様に、図４Ａおよび図４Ｂでは、ビデオエンコーダ２２およびビデオデコーダ３０は、現在ブロックの左にある列（例えば、すぐ左にあるが、本技法はそのように限定されない）を決定し得、決定された列におけるｙ座標を決定し得る。決定された列におけるｙ座標は、予測サンプルのｘ座標＋予測サンプルのｙ座標＋１に等しい。ビデオエンコーダ２２およびビデオデコーダ３０は、決定された列および決定されたｙ座標に基づいて、１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定し得る。
【０１１６】
[0130]  決定されたｘ座標およびｙ座標に基づいて、ビデオエンコーダ２２およびビデオデコーダ３０は、参照サンプルを（例えば、決定された行および決定されたｘ座標に基づいて第１の参照サンプルを、および決定された列および決定されたｙ座標に基づいて第２の参照サンプルを）決定し得る。ビデオエンコーダ２２およびビデオデコーダ３０はまた、対角モード（例えば、２つの例として、対角右上モードおよび対角左下モード）のための上記例示的な技法にしたがって重みを決定し得る。次いで、（１つの非限定的な例として）式１に基づいて、ビデオエンコーダ２２およびビデオデコーダ３０は、修正された予測サンプル（例えば、ｐｒｅｄ（ｘ，ｙ））を決定し得る。
【０１１７】
[0131]  隣接対角右上モードの場合が図４Ｃに例示されている。一般に、図３で定義する角度αについて、ＰＤＰＣ参照サンプルＲ(-1,y)のｙ座標は、ｙ＝ｙ’＋ｔａｎ（α）×（ｘ’＋１）のように決定され、ＰＤＰＣ参照サンプルＲ(x,-1)のｘ座標は、ｘ＝ｘ’＋ｃｏｔａｎ（α）×（ｙ’＋１）によって与えられ、ｔａｎ（α）およびｃｏｔａｎ（α）は、それぞれ角度αの正接および余接である。隣接対角右上モードのためのＰＤＰＣ重みは、例えば、ｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝０、またはｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝０、ｗＴＬ＝０である。
【０１１８】
[0132]  同様に、隣接対角左下モードの場合が図４Ｄに例示されている。一般に、図３で定義する角度βについて、ＰＤＰＣ参照サンプルＲ(x,-1)のｘ座標は、ｘ＝ｘ’＋ｔａｎ（β）×（ｙ’＋１）のように決定され、ＰＤＰＣ参照サンプルＲ(-1,y)のｙ座標は、ｙ＝ｙ’＋ｃｏｔａｎ（β）×（ｘ’＋１）によって与えられ、ｔａｎ（β）およびｃｏｔａｎ（β）は、それぞれ角度βの正接および余接である。隣接対角左下モードのためのＰＤＰＣ重みは、例えば、ｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝０、またはｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴ＝０、ｗＴＬ＝０である。
【０１１９】
[0133]  図４Ｃおよび図４Ｄでは、ビデオエンコーダ２２およびビデオデコーダ３０の各々は、現在ブロックの上にある行を（例えば、すぐ上にあるが、本技法はそのように限定されない）決定し得、決定された行におけるｘ座標を決定し得る。決定された行におけるｘ座標は、角度イントラ予測モードの角度に基づく。ビデオエンコーダ２２およびビデオデコーダ３０は、決定された行および決定されたｘ座標に基づいて、１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定し得る。
【０１２０】
[0134]  決定された行におけるｘ座標を決定するために、ビデオエンコーダ２２およびビデオデコーダ３０は、角度イントラ予測モードの角度の余接（例えば、隣接対角右上モードの場合）または正接（例えば、隣接対角左下モードの場合）のうちの１つを決定し得る。ビデオエンコーダ２２およびビデオデコーダ３０は、角度イントラ予測モードの角度の余接または正接のうちの１つ、予測サンプルのｘ座標、および予測サンプルのｙ座標に基づいて、決定された行におけるｘ座標を決定し得る。例えば、隣接対角右上の角度イントラ予測モードの場合、決定された行におけるｘ座標は、ｘ’＋ｃｏｔａｎ（α）×（ｙ’＋１）に等しく、隣接対角左下モードの場合、決定された行におけるｘ座標は、ｘ’＋ｔａｎ（β）×（ｙ’＋１）に等しく、ここで、ｘ’およびｙ’は、修正されている予測サンプルのｘ座標およびｙ座標である。
【０１２１】
[0135]  同様に、図４Ｃおよび図４Ｄでは、ビデオエンコーダ２２およびビデオデコーダ３０の各々は、現在ブロックの左にある列（例えば、すぐ左にあるが、本技法はそのように限定されない）を決定し得、決定された列におけるｙ座標を決定し得る。決定された列におけるｙ座標は、角度イントラ予測モードの角度に基づく。ビデオエンコーダ２２およびビデオデコーダ３０は、決定された列および決定されたｙ座標に基づいて、１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定し得る。
【０１２２】
[0136]  決定された列におけるｙ座標を決定するために、ビデオエンコーダ２２およびビデオデコーダ３０は、角度イントラ予測モードの角度の余接（例えば、隣接対角左下モードの場合）または正接（例えば、隣接対角右上モードの場合）のうちの１つを決定し得る。ビデオエンコーダ２２およびビデオデコーダ３０は、角度イントラ予測モードの角度の余接または正接のうちの１つ、予測サンプルのｘ座標、および予測サンプルのｙ座標に基づいて、決定された列におけるｙ座標を決定し得る。例えば、隣接対角右上の角度イントラ予測モードの場合、決定された列におけるｙ座標は、ｙ’＋ｔａｎ（α）×（ｘ’＋１）に等しく、隣接対角左下モードの場合、決定された列におけるｙ座標は、ｙ’＋ｃｏｔａｎ（β）×（ｘ’＋１）に等しく、ここで、ｘ’およびｙ’は、修正されている予測サンプルのｘ座標およびｙ座標である。
【０１２３】
[0137]  決定されたｘ座標およびｙ座標に基づいて、ビデオエンコーダ２２およびビデオデコーダ３０は、参照サンプルを（例えば、決定された行および決定されたｘ座標に基づいて第１の参照サンプルを、および決定された列および決定されたｙ座標に基づいて第２の参照サンプルを）決定し得る。ビデオエンコーダ２２およびビデオデコーダ３０はまた、隣接対角モード（例えば、２つの例として、隣接対角右上モードおよび隣接対角左下モード）のための上記例示的な技法にしたがって重みを決定し得る。次いで、（１つの非限定的な例として）式１に基づいて、ビデオエンコーダ２２およびビデオデコーダ３０は、修正された予測サンプル（例えば、ｐｒｅｄ（ｘ，ｙ））を決定し得る。
【０１２４】
[0138]  上述のように、ＰＤＰＣは、複雑さへの影響を最小にしたまま、角度イントラ予測モードに適用され得る。実際の実施では、角度の正接および余接の値は、それらがオンザフライで（例えば、実行時に）算出されないようにテーブルに記憶され得る。以下は、合計１２９個の角度モードのための例示的なテーブルである。
【０１２５】
[0139]  ＴａｎＡｎｇＴａｂｌｅ［３３］＝｛０、１、２、３、４、５、６、８、１０、１２、１４、１６、１８、２０、２２、２４、２６、２８、３０、３２、３４、３６、３８、４０、４２、４４、４６、４９、５２、５５、５８、６１、６４｝
【０１２６】
[0140]  ＣｏｔａｎＡｎｇＴａｂｌｅ［３３］＝｛０、６５５３６、３２７６８、２１８４５、１６３８４、１３１０７、１０９２３、８１９２、６５５４、５４６１、４６８１、４０９６、３６４１、３２７７、２９７９、２７３１、２５２１、２３４１、２１８５、２０４８、１９２８、１８２０、１７２５、１６３８、１５６０、１４８９、１４２５、１３３７、１２６０、１１９２、１１３０、１０７４、１０２４｝
【０１２７】
[0141]  正接テーブル中の値は、イントラ予測モードを使用して見つけられたサンプルのロケーションを示す。余接テーブル中の値は、正接テーブル中の対応する値によるＰＤＰＣ参照サンプルのロケーションを示す。例えば、正接テーブル中の第１のエントリ（イントラ予測サンプルのロケーションを示す）は、余接テーブル中の第１のエントリ（ＰＤＰＣ参照サンプルのロケーションを示す）に対応する。
【０１２８】
[0142]  さらに、これらテーブルは、ブロックの角度イントラ予測によってすでに用いられている場合があり、対角モードおよび隣接モード（例えば、角度イントラ予測モード）へのＰＤＰＣ拡張のために再使用され得る。したがって、ＰＤＰＣの実施時に追加のテーブルが必要でなくてよい。いくつかの例では、ＰＤＰＣをさらに最適化するために、例えばトレーニングによってカスタムテーブルが生成され得る。
【０１２９】
[0143]  いくつかのビデオコーデックでは、イントラ予測のための予測ブロックを指定するために使用されるブロック構造は、正方形（幅（ｗ）＝高さ（ｈ））に制限されない。矩形予測ブロック（ｗ＞ｈまたはｗ＜ｈ）は、コンテンツの特性に基づいてコーディング効率を高めることができる。そのような矩形ブロックでは、イントラ予測の方向を図３に例示する角度内（予測サンプルからの垂直方向に対して現在ブロックの−１３５度から４５度の間）になるように制限することにより、イントラ予測のためにより近い参照サンプルではなくより遠い参照サンプルが使用される状況が生じ得る。
【０１３０】
[0144]  図５は、方向性イントラ予測モードの一例を例示する図であり、ここでは、より近い参照サンプルではなく、より遠い参照サンプルが、現在ピクチャ５０２の現在ブロック５０３のイントラ予測のために使用される。現在ブロック５０３は、サンプルの４×８矩形ブロックである。参照サンプル５０６および参照サンプル５０８も示されている。参照サンプル５０６は、現在ピクチャ５０２の上の１つまたは複数のブロックの一部であり得、参照サンプル５０８は、現在ピクチャ５０２の左の１つまたは複数のブロックの一部であり得る。
【０１３１】
[0145]  イントラ予測が、予測サンプル５０４（ｐｒｅｄ（ｘ’，ｙ’）と示す）を決定するために実行される。（図３に示すように）イントラ予測方向を−１３５度から４５度までの範囲に制限することにより、より近い参照サンプルが使用されず、より遠い参照サンプルが使用され得る。例えば、対角左下モードが予測サンプル５０４を予測するために使用され得、対角左下モードの角度または方向は矢印５１２によって例示されている。対角右上モードも使用され得、このモードの角度または方向は矢印５１０によって例示されている。対角左下モードは、予測サンプル５０４からの垂直方向に対して−１３５度の角度であり得、これは、−１３５度から４５度までの範囲で使用され得る最も低い左下の角度である。
【０１３２】
[0146]  破線矢印５１４は、典型的なイントラ予測モード（図３に示すもの）で使用される４５度の角度よりも大きい角度に対応する。図５に示すように、対角左下モデルを使用して決定された参照サンプル５１８（矢印５１２によって例示）は、より広角のイントラ予測モードを使用して決定することができる参照サンプル５１６（破線矢印５１４によって例示）よりも予測サンプル５０４から遠い。このような設計は、コーディング効率に影響を及ぼす可能性が高い。より近い参照サンプル（例えば、−１３５から４５度の角度を超える）が予測のために使用されることができるように、制限の範囲を緩和することがより有益となる。
【０１３３】
[0147]  図６は、−１３５度（イントラ予測モード２）から４５度（イントラ予測モード６６）の角度を超えて延びるイントラ予測モードを含む、方向性イントラ予測モードの例を例示する図である。例えば、破線矢印で例示された方向性イントラ予測モード６７から８０および−１から−１４は、広角イントラ予測モードと呼ぶことができる。図６中の矢印は、予測のために使用される対応する参照サンプルを指しており、予測方向を示すものではないことに留意されたい。予測方向は、矢印が指すところの反対である。例えば、イントラ予測モード６８の予測方向は、（モード６８で使用される参照サンプルのおおよその位置である）図６の番号６８からブロックの中央までである。上述のように、ＰＤＰＣは、イントラ予測を使用して決定された予測サンプルを修正するために使用されることができる。例えば、ＰＤＰＣを使用すると、ビデオエンコーダ２２および／またはビデオデコーダ３０は、現在ブロックの上および／または左の１つまたは複数のライン中に存在する参照サンプルを決定し得、イントラ予測を使用して決定された予測サンプルを修正するために参照サンプルを使用し得る。修正された予測サンプルは次いで、現在ブロックを符号化または復号するために使用され得る。しかしながら、広角イントラ予測モードの１つまたは複数が使用されるとき、現在のビデオコーディング規格からはＰＤＰＣがどのように適用されるべきかは明らかでない。
【０１３４】
[0148]  −１３５度（モード２）から４５度（モード６６）までの標準角度の外の角度を使用する広角イントラ予測モードにＰＤＰＣの使用を拡張するためのシステムおよび技法を本明細書で説明する。本システムおよび技法は、広角イントラ予測モードと共に使用されるＰＤＰＣのための技法など、ビデオコーディング技法への実用的な適用を提供する。例えば、例示的な技法は、広角イントラ予測モードと共にＰＤＰＣを使用するための技術的解決法を提供する。ビデオエンコーダ２２およびビデオデコーダ３０が角度イントラ予測モードと共にＰＤＰＣを実行し得る例示的な方法を、以下でより詳細に説明する。
【０１３５】
[0149]  １つの例として、ビデオエンコーダ２２は、ビデオデータの現在ブロックを取得し、現在ブロックのサイズを決定するように構成され得る。例えば、現在ブロックの幅および高さが、現在ブロックが矩形であるかどうかを決定するために分析され得る。場合によっては、ビデオエンコーダ２２は、現在ブロックが垂直配向のブロック（高さ＞幅）であるか、水平配向のブロック（幅＞高さ）であるかを決定し得る。ビデオエンコーダ２２は、現在ブロックのサイズに基づいて（例えば、ブロックが矩形であることに基づいて）、広角イントラ予測モードが現在ブロックのために使用されることを決定し得る。広角イントラ予測モードは、ＤＣイントラ予測モードでも、プレーナイントラ予測モードでも、水平イントラ予測モードでも、垂直イントラ予測モードでもなく、予測ブロックの各予測サンプルからの垂直方向に対して−１３５度より小さいまたは４５度より大きい方向を有する。
【０１３６】
[0150]  場合によっては、現在ブロックの左下から現在ブロックの左上に及ぶ対角線の角度が、イントラ予測モードの選択に対する制限として使用され得、ここで、現在ブロックの（ブロックの左下角から右上角への）対角線を超えない角度を有する任意のイントラ予測モードが選択され得る。イントラ予測モードは、上述の技法に基づいて、許容可能なイントラ予測モードから選択され得る。例えば、予測ブロックと符号化されることになるブロックとの間の残差を最小にする、各ブロックのためのイントラ予測モードが、（例えば、絶対誤差の和（ＳＡＥ）、差分絶対値和（ＳＡＤ）、変換差分絶対値和（ＳＡＴＤ）、または他の類似性の尺度に基づいて）許容可能なイントラ予測モードから選択され得る。
【０１３７】
[0151]  ビデオエンコーダ２２は、広角イントラ予測モードに基づいて現在ブロックのための予測ブロック（複数の予測サンプルを含む）を決定するように構成され得る。ビデオエンコーダ２２は、ＰＤＰＣを使用して修正された予測サンプルを生成するように、予測ブロックの予測サンプルを修正するように構成され得る。本技法は１つの予測サンプルに関して説明されているが、例示的な技法はそのように限定されないことを理解されたい。いくつかの例では、ビデオエンコーダ２２は、ＰＤＰＣを使用して予測ブロックの他の予測サンプルを修正し得る。
【０１３８】
[0152]  予測サンプルを修正するために、ビデオエンコーダ２２は、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプル（ＰＤＰＣ参照サンプル）を決定し得、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正し得る。１つまたは複数の参照サンプルは、選択された広角イントラ予測モードの方向または角度を使用して特定され得る。例えば、予測サンプルが、予測サンプルロケーションからの垂直方向に対して角度ｎで現在ブロックの上に位置する隣接ブロックの画素行から選択される場合、第１のＰＤＰＣ参照サンプルが、サンプルロケーションに対して同じ角度ｎで現在ブロックの左に位置する隣接ブロックの画素列から選択され得る。いくつかの例では、第２のＰＤＰＣ参照サンプルが、予測サンプルのために使用されたものと同じサンプルロケーションから選択され得る。場合によっては、第２のＰＤＰＣ参照サンプルを取得するために、サンプルロケーションからの値がフィルタリングまたは平滑化され得る。いくつかの例では、第３のＰＤＰＣ参照サンプルが、現在ブロックの左上サンプルに隣接する隣接ブロック中のサンプルロケーション（例えば、図４Ａに示すＲ-1,-1ロケーション）から選択され得る。第１のＰＤＰＣ参照サンプル（および場合によっては第２および／または第３のＰＤＰＣ参照サンプル）は、修正された予測サンプルを生成するように予測ブロック中の予測サンプルを修正するために使用され得る。１つの例示的な例では、修正された予測サンプルは、上式１を使用するなどして、第１のＰＤＰＣ参照サンプル、第２のＰＤＰＣ参照サンプル、第３のＰＤＰＣ参照サンプル、および予測サンプルの（１つまたは複数の重みを使用する）重み付き組み合わせ（weighted combination）を計算することによって決定され得る。
【０１３９】
[0153]  ビデオエンコーダ２２は、修正された予測サンプルおよび現在ブロックにおけるサンプル値に基づいて残差ブロックについての残差値を決定し得、残差値を示す情報をシグナリングし得る。
【０１４０】
[0154]  別の例として、ビデオデコーダ３０は、ビデオデータの現在ブロックを取得し、現在ブロックのサイズを決定するように構成され得る。例えば、現在ブロックの幅および高さが、現在ブロックが矩形であるかどうかを決定するために分析され得る。場合によっては、ビデオデコーダ３０は、現在ブロックが垂直配向のブロック（高さ＞幅）であるか、水平配向のブロック（幅＞高さ）であるかを決定し得る。ビデオエンコーダ２２は、現在ブロックのサイズに基づいて（例えば、ブロックが矩形であることに基づいて）、広角イントラ予測モードが現在ブロックのために使用されることを決定し得る。広角イントラ予測モードは、ＤＣイントラ予測モードでも、プレーナイントラ予測モードでも、水平イントラ予測モードでも、垂直イントラ予測モードでもなく、予測ブロックの各予測サンプルからの垂直方向に対して−１３５度より小さいまたは４５度より大きい方向を有する。
【０１４１】
[0155]  ビデオデコーダ３０は、広角イントラ予測モードに基づいて、現在ブロックのための、複数の予測サンプルを含む予測ブロックを決定するように構成され得る。ビデオデコーダ３０は、ＰＤＰＣを使用して修正された予測サンプルを生成するように、予測ブロックの予測サンプルを修正し得る。上記と同様に、本技法は１つの予測サンプルに関して説明されているが、例示的な技法はそのように限定されない。いくつかの例では、ビデオデコーダ３０は、ＰＤＰＣを使用して予測ブロックの他の予測サンプルを修正し得る。
【０１４２】
[0156]  予測サンプルを修正するために、ビデオデコーダ３０は、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定し、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正するように構成され得る。ビデオエンコーダ２２に関して上述のものと同様に、１つまたは複数の参照サンプルは、選択された広角イントラ予測モードの方向または角度を使用して特定され得る。例えば、第１のＰＤＰＣ参照サンプルが、サンプルロケーションに対して同じ角度ｎにある隣接ブロックの画素列または画素行から選択され得る。いくつかの例では、第２のＰＤＰＣ参照サンプルが、予測サンプルのために使用されたものと同じサンプルロケーション（その値は、第２のＰＤＰＣ参照サンプルを取得するためにフィルタリングまたは平滑化される）から選択され得、および／または第３のＰＤＰＣ参照サンプルが、現在ブロックの左上サンプルに隣接する隣接ブロック中のサンプルロケーション（例えば、図４Ａに示すＲ-1,-1ロケーション）から選択され得る。第１のＰＤＰＣ参照サンプル（および場合によっては第２および／または第３のＰＤＰＣ参照サンプル）は、（例えば、上式１を使用して）修正された予測サンプルを生成するように、予測ブロック中の予測サンプルを修正するために使用され得る。ビデオデコーダ３０はまた、修正された予測サンプルおよび残差値に基づいて現在ブロックのサンプルを再構成するように構成され得る。
【０１４３】
[0157]  図７は、広角イントラ予測モードと共に実行されるＰＤＰＣの一例を例示する図である。現在ピクチャ７０２が、ビデオデータの現在ブロック７０３と共に示されている。現在ブロック７０３は、サンプル（例えば、ルーマおよび／またはクロマ成分サンプル、もしくは画素のブロックを構成するルーマおよびクロマ成分サンプルのフルセット）の４×８矩形ブロックである。再構成された隣接参照サンプル７０６および再構成された隣接参照サンプル７０８も示されている。隣接参照サンプル７０６は、現在ピクチャ７０２の上の１つまたは複数のブロックの一部であり得、隣接参照サンプル７０８は、現在ピクチャ７０２の左の１つまたは複数のブロックの一部であり得る。
【０１４４】
[0158]  コーディングデバイス（例えば、ビデオエンコーダ２２および／またはビデオデコーダ３０）は、現在ブロック７０３のサイズを決定し得、現在ブロック７０３のサイズに基づいて実行すべきイントラ予測モードを決定または選択し得る。上述のように、コーディングデバイスは、現在ブロック７０３のサイズに基づいて、広角イントラ予測モードが現在ブロック７０３のために使用されることを決定し得る。例えば、現在ブロックが矩形ブロックである（幅および高さが異なるサイズである）ことが決定されたときに、広角イントラ予測モードが使用され得る。場合によっては、現在ブロック７０３の（ブロックの左下角から右上角への）対角線を超えない角度を有する任意のイントラ予測モードが、現在ブロック７０３を予測する際に使用するために選択され得る。場合によっては、ブロックサイズ比は、使用すべきイントラ予測モードを決定するために使用され得る。例えば、矩形ブロックのブロックサイズ比は、左下から右上への対角線方向、したがって予測角度（または方向）の許容範囲を決定するために使用され得る。
【０１４５】
[0159]  いくつかの例では、ブロック７０３の対角線の角度の外にあるイントラ予測モード（モード２から６６を含む）が否認され得、ブロック７０３の対角線の角度内にある追加の広角モードが、コーディングデバイスによる選択のために利用可能にされ得る。例えば、水平配向の矩形ブロック７０３（幅＞高さ）の場合、イントラ予測モード５（図６に示す）に関連付けられた角度がブロック７０３の（左下角から右上角への）対角線の角度である場合、モード２、３、および４は否認され得、（現在ブロック７０３中の各サンプルロケーションからの垂直方向に対して４５°より大きい角度を有する）追加のモード６７、６８、および６９が、現在ブロック７０３の予測ブロックの１つまたは複数の予測サンプルを予測するために利用可能にされ得る。
【０１４６】
[0160]  様々な利用可能なイントラ予測モードの分析に基づいて（例えば、ブロックサイズ比に基づいて、上述のＳＡＥもしくは他の類似性尺度に基づいて、または他の好適な分析を使用して）、コーディングデバイスは、現在ブロック７０３のサンプルロケーションについてイントラ予測を実行するために広角イントラ予測モード（例えば、広角イントラ予測モード６７、６８、または６９）を選択し得る。図７の矢印７１０は、選択された広角イントラ予測モードの予測方向（または予測角度）を示し、予測サンプル７０４（ｐｒｅｄ（ｘ’，ｙ’）と示す）のイントラ予測のために使用される参照サンプル７１２から生じている。図７に例示する広角イントラ予測モードは、隣接対角左下モード（例えば、図６の広角イントラ予測モード６９）である。
【０１４７】
[0161]  選択された広角イントラ予測モードを使用して、現在ブロック７０３の予測ブロック中の右下サンプルロケーションについて予測サンプル７０４（ｐｒｅｄ（ｘ’，ｙ’））が決定され得る。例えば、隣接参照サンプル７０８からのサンプル７１２の値が、選択された広角イントラ予測モードの方向（矢印７１０によって表される）に基づいて、予測サンプル７０４についての値として選択され得る。場合によっては、同じ広角イントラ予測モードが、予測ブロックの各予測サンプルのために使用され得る。場合によっては、異なるイントラ予測モード（広角モードを含む）が、予測ブロックの異なる予測サンプルのために使用され得る。
【０１４８】
[0162]  コーディングデバイスは、次いで、予測サンプル７０４の値を修正するために使用されることになる１つまたは複数のＰＤＰＣ参照サンプルを決定するためにＰＤＰＣを実行し得る。１つまたは複数のＰＤＰＣ参照サンプルは、選択された広角イントラ予測モードの方向（矢印７１０によって表される）を使用して特定され得る。例えば、上述および図７に示すように、現在ブロック７０３の上に位置する参照サンプル７０８の行からのサンプル７１２は、予測サンプル７０４（ｐｒｅｄ（ｘ’，ｙ’））として選択される。予測サンプル７０４（ｐｒｅｄ（ｘ’，ｙ’））は、予測ブロック内のロケーション（ｘ’，ｙ’）に位置する。第１のＰＤＰＣ参照サンプル７１４（Ｒ(-1,y)と示す）が、現在ブロック７０３の左に、および広角イントラ予測モードの同じ予測方向（矢印７１０によって定義される）に沿って位置する参照サンプル７０６の列から選択される。図７に示す角度β（図３にも示す）について、参照サンプルＲ(-1,y)のｙ座標は、ｙ＝ｙ’＋ｃｏｔａｎ（β）×（ｘ’＋１）として決定され、ｃｏｔａｎ（β）は角度βの余接である。余接値の例を以下で説明する。
【０１４９】
[0163]  いくつかの実装形態では、第２のＰＤＰＣ参照サンプル（Ｒ(x,-1)と示す）もまた、予測サンプル７０４のために使用されたものと同じサンプルロケーション７１２から選択され得る。そのような例では、同じサンプル値（サンプル７１２の値）が、予測サンプル７０４および第２のＰＤＰＣ参照サンプルＲ(x,-1)のために使用され得、この場合、予測サンプル７０４（ｐｒｅｄ（ｘ’，ｙ’））は、第２のＰＤＰＣ参照サンプルＲ(x,-1)と同一である。図７に示す角度βについて、Ｒ(x,-1)のｘ座標は、ｘ＝ｘ’＋ｔａｎ（β）×（ｙ’＋１）によって与えられ、ｔａｎ（β）は角度βの正接である。正接値の例を以下で説明する。
【０１５０】
[0164]  場合によっては、サンプル７１２の値は、第２のＰＤＰＣ参照サンプルＲ(x,-1)を取得するためにフィルタリングまたは平滑化され得、この場合、第２のＰＤＰＣ参照サンプルＲ(x,-1)の値は、予測サンプル７０４の値とは異なることになる。上述のように、予測サンプル７０４（ｐｒｅｄ（ｘ’，ｙ’））は、第２の参照サンプルＲ(x,-1)サンプルがフィルタリングされていない場合、Ｒ(x,-1)と同一である。いくつかの例では、参照サンプル値は、イントラ参照平滑化（intra reference smoothing）、モード依存イントラ平滑化（ＭＤＩＳ：mode-dependent intra smoothing）、参照サンプル適応フィルタリング（ＲＳＡＦ：reference sample adaptive filtering）、適応参照サンプル平滑化（ＡＲＳＳ：adaptive reference sample smoothing）、および／または他のフィルタリング技法を使用してフィルタリングされ得る。例えば、２タップバイリニアフィルタ、３タップ［１、２、１］／４平滑化フィルタ、または他のフィルタが使用され得る。
【０１５１】
[0165]  １つの例示的な例では、サンプル７１２の値は、［１ ２ １］平滑化フィルタ（または他のフィルタ）によってフィルタリングされ得、フィルタリングされた値は、第２のＰＤＰＣ参照サンプルＲ(x,-1)として使用され得る。一例として３タップ［１ ２ １］／４平滑化フィルタを使用すると、最も外側の参照サンプルｐ［−１］［２Ｎ−１］およびｐ［２Ｎ−１］［−１］は修正されず（ここで、Ｎはｘ方向および／またはｙ方向のサンプルの数である）、すべての他の参照サンプルは、２つの隣接参照サンプルを使用することによってフィルタリングされる。以下でより詳細に説明するように、フィルタのタップの数は、選択される特定のイントラ予測モードに基づいて、ブロックのサイズに基づいて、１つまたは複数の隣接ブロックの特性に基づいて、それらの任意の組合せに基づいて、および／または他のファクタを使用して適応され得る。
【０１５２】
[0166]  いくつかの実装形態では、第３のＰＤＰＣ参照サンプル７１６（Ｒ(-1,-1)と示す）が、現在ブロック７０３の左上サンプルに隣接する隣接ブロックから選択され得る。第１のＰＤＰＣ参照サンプル７１４（Ｒ(-1,y)）、第２のＰＤＰＣ参照サンプルＲ(x,-1)、および第３のＰＤＰＣ参照サンプル７１６（Ｒ(-1,-1)）は、予測サンプル７０４（ｐｒｅｄ（ｘ’，ｙ’））を修正するために使用されて、（ｐｒｅｄ（ｘ，ｙ））と示せる修正された予測サンプルを生成し得る。例えば、上式１を使用して、修正された予測サンプルｐｒｅｄ（ｘ，ｙ）は、第１のＰＤＰＣ参照サンプル７１４、第２のＰＤＰＣ参照サンプルＲ(x,-1)、第３のＰＤＰＣ参照サンプル７１６、および予測サンプルｐｒｅｄ（ｘ’，ｙ’）の重み付き組み合わせを計算することによって決定され得る。重みは、上述の技法を使用して決定され得る。例えば、隣接対角左下モードのためのＰＤＰＣ重みは、例えば、ｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝０、またはｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴ＝０、ｗＴＬ＝０である。
【０１５３】
[0167]  ＰＤＰＣ参照サンプルＲ(x,-1)（例えば、図７中の第２のＰＤＰＣ参照サンプル）を決定するために、コーディングデバイスは、現在ブロックの上（例えば、すぐ上）にある行（または現在ブロック７０３の上の複数行）を決定し得、決定された行におけるｘ座標を決定し得る。上述のように、決定された行におけるｘ座標は、広角イントラ予測モードの方向（または角度）に基づいており、コーディングデバイスは、決定された行および決定されたｘ座標に基づいて参照サンプルを決定し得る。
【０１５４】
[0168]  決定された行におけるｘ座標を決定するために、コーディングデバイスは、広角イントラ予測モードの角度の余接（例えば、隣接対角右上モードの場合）または正接（例えば、隣接対角左下モードの場合）のうちの１つを決定し得る。コーディングデバイスは、広角イントラ予測モードの角度の余接または正接のうちの１つ、予測サンプルのｘ座標、および予測サンプルのｙ座標に基づいて、決定された行におけるｘ座標を決定し得る。１つの例では、（例えば、図７に示す）隣接対角左下広角イントラ予測モードの場合、決定された行におけるｘ座標は、ｘ＝ｘ’＋ｔａｎ（β）×（ｙ’＋１）に等しい。別の例では、隣接対角右上モードの場合、決定された行におけるｘ座標は、ｘ＝ｘ’＋ｃｏｔａｎ（α）×（ｙ’＋１）に等しい。ここで、ｘ’およびｙ’は、修正されている予測サンプルのｘ座標およびｙ座標である。
【０１５５】
[0169]  同様に、ＰＤＰＣ参照サンプルＲ(-1,y)（例えば、図７中の第１のＰＤＰＣ参照サンプル７１４）を決定するために、コーディングデバイスは、現在ブロックの左（例えば、すぐ左）にある列（または現在ブロック７０３の左の複数列）を決定し得、決定された列におけるｙ座標を決定し得る。上述のように、決定された列におけるｙ座標は、広角イントラ予測モードの方向に基づく。コーディングデバイスは、決定された列および決定されたｙ座標に基づいて、１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定し得る。
【０１５６】
[0170]  決定された列におけるｙ座標を決定するために、コーディングデバイスは、角度イントラ予測モードの角度の余接（例えば、隣接対角左下モードの場合）または正接（例えば、隣接対角右上モードの場合）のうちの１つを決定し得る。コーディングデバイスは、広角イントラ予測モードの角度の余接または正接のうちの１つ、予測サンプルのｘ座標、および予測サンプルのｙ座標に基づいて、決定された列におけるｙ座標を決定し得る。例えば、隣接対角右上の角度イントラ予測モードの場合、決定された列におけるｙ座標は、ｙ’＋ｔａｎ（α）×（ｘ’＋１）に等しく、隣接対角左下モード（例えば、図７からの例）の場合、決定された列におけるｙ座標は、ｙ’＋ｃｏｔａｎ（β）×（ｘ’＋１）に等しく、ここで、ｘ’およびｙ’は、修正されている予測サンプルのｘ座標およびｙ座標である。
【０１５７】
[0171]  決定されたｘ座標およびｙ座標に基づいて、コーディングデバイスは、ＰＤＰＣ参照サンプルを（例えば、決定された行および決定されたｘ座標に基づいて第１のＰＤＰＣ参照サンプルを、および決定された列および決定されたｙ座標に基づいて第２のＰＤＰＣ参照サンプルを）決定し得る。コーディングデバイスはまた、隣接対角モード（例えば、２つの例として、隣接対角右上モードおよび隣接対角左下モード）のための上記例示的な技法にしたがって重みを決定し得る。次いで、（１つの非限定的な例として）式１に基づいて、コーディングデバイスは、修正された予測サンプル（例えば、ｐｒｅｄ（ｘ，ｙ））を決定し得る。
【０１５８】
[0172]  上述のように、ＰＤＰＣは、複雑さへの影響を最小にしたまま、角度イントラ予測モードに適用され得る。実際の実施では、角度の正接（例えば、ｔａｎ（α）および／またはｔａｎ（β））および余接（例えば、ｃｏｔａｎ（α）および／またはｃｏｔａｎ（β））の値は、それらがオンザフライで（例えば、実行時に）算出されないようにテーブルに記憶され得る。以下は、様々な角度モード（広角モードを含む）のための例示的なテーブルである。
【０１５９】
[0173]  ＴａｎＡｎｇＴａｂｌｅ［３２］＝｛０、１、２、３、４、６、８、１０、１２、１４、１６、１８、２０、２３、２６、２９、３２、３５、３９、４５、５１、５７、６４、７３、８６、１０２、１２８、１７１、２５６、３４１、５１２、１０２４｝
【０１６０】
[0174]  ＣｏｔａｎＡｎｇＴａｂｌｅ［３２］＝｛０、８１９２、４０９６、２７３１、２０４８、１３６５、１０２４、８１９、６８３、５８５、５１２、４５５、４１０、３５６、３１５、２８２、２５６、２３４、２１０、１８２、１６０、１４４、１２８、１１２、９５、８０、６４、４８、３２、２４、１６、８｝；／／（２５６＊３２）／角度
【０１６１】
[0175]  正接テーブル「ＴａｎＡｎｇＴａｂｌｅ［３２］」中の値は、イントラ予測モードを使用して見つけられたサンプルのロケーションを示す。正接テーブル値は、３２という値によって正規化される。例えば、図６を参照すると、モード６６は、傾き１の（ブロックの中心からの垂直方向に対して）４５度であり、右上から左下に予測する（右上からのサンプル値が、図６のブロックの中央のサンプルについての予測サンプル値として使用される）。正接テーブル中の「３２」という値は、図６に示すモード６６に対応する。正接テーブル中の値「０」は、図６に示す垂直モード（モード５０）に対応する。「１０２４」という値は、図６のモード８０に対応する。
【０１６２】
[0176]  余接テーブル「ＣｏｔａｎＡｎｇＴａｂｌｅ［３２］」中の値は、正接テーブル中の対応する値によるＰＤＰＣ参照サンプルのロケーションを示す。余接テーブル値は、２５６という値によって正規化される。例えば、正接テーブル中の第１のエントリ（イントラ予測サンプルのロケーションを示す）は、余接テーブル中の第１のエントリ（ＰＤＰＣ参照サンプルのロケーションを示す）に対応する。図７を参照する１つの例では、予測サンプル７０４が、正接テーブル（正接テーブル中の１８番目の位置）に３５という正接テーブル値を有し得る参照サンプル７１２を使用して決定された場合、第２のＰＤＰＣサンプル７１４は、２３４という余接テーブル値（余接テーブル中の１８番目の位置）に対応し得る。余接は
【数１】
2021530906.tif 000004
に対応する。上述のように、正接テーブル「０」という値は、図６に示す垂直モード（モード５０）に対応する。垂直モード５０の反対はないことに留意されたい。モード５１の場合、反対のモードがあり、モード−１４である。モード５１は正接テーブル中の値「１」に対応する。
【０１６３】
[0177]  図７に関して上述の例（および図８に関して以下で説明する例）は、隣接右上広角イントラ予測モードのためのものである。隣接右上広角イントラ予測モードは、ＰＤＰＣが適用され得る例示的な広角イントラモードとして提供される。例示的な技法は、１つまたは複数の隣接左下広角イントラ予測モードまたは他の広角モードなど、他の角度モードにも拡張され得る。また、いくつかの例では、１つまたは複数の参照サンプルは、予測ブロック中の予測サンプルのｘ座標およびｙ座標の両方とは異なるｘ座標およびｙ座標の両方を有し得る。例えば、参照サンプルを決定するためにそれぞれの行および列におけるｘ座標およびｙ座標を決定する例示的な上式において、ｘ座標は、修正されている予測サンプルのｘ座標とは異なり得、ｙ座標は、修正されている予測サンプルのｙ座標とは異なり得る。そのような場合、参照サンプルは、修正されている予測サンプルと同じ行にも同じ列にもない場合がある。
【０１６４】
[0178]  ＤＣ、プレーナ、水平、および垂直モードＰＤＰＣの場合のように、ＰＤＰＣがこれらの角度モードに拡張されるとき、対角モードおよび隣接対角モードには、例えば、‘J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce, “Algorithm description of Joint Exploration Test Model 7,” 7th JVET Meeting, Torino, Italy, July 2017, JVET-G1001 に指定されているような追加の境界フィルタリングはなくてもよい。
【０１６５】
[0179]  場合によっては、右下対角線を中心としてブロックを反転させることによって、すべての水平角度モードが垂直モードにマッピングされ得る。垂直モードを中心とした対称性により、角度の数が、ＴａｎＡｎｇＴａｂｌｅおよびＣｏｔａｎＡｎｇＴａｂｌｅにそれぞれ正接値および余接値が記憶された３３個にさらに低減されることが可能となる。例えば、上述のように、正接テーブル中の「０」という値は、図６に示す垂直モード（モード５０）に対応する。垂直モードを中心とした対称性に基づいて、「０」という値はまた、図６の水平モード（モード１８）にも対応し得る。必要とされる整数精度により、両方のテーブル中の値は、ＴａｎＡｎｇＴａｂｌｅの場合にはファクタ６４によって、ＣｏｔａｎＡｎｇＴａｂｌｅの場合には値１０２４によってスケーリングされる。座標ｘおよびｙを算出するための上式における乗算は、予測ブロックを横断する間にｘ’およびｙ’を増加させて角度モードと対応するテーブル値を蓄積することによって回避される。
【０１６６】
[0180]  場合によっては、広角イントラ予測モードの方向（または角度）によって特定されるＰＤＰＣ参照サンプルは、整数の参照サンプル位置に対応しない場合があり、代わりに、分数位置（例えば、整数位置にある２つのサンプルの間）に対応し得る。図８は、広角モードと共に実行されるＰＤＰＣの別の例を例示する図である。現在ピクチャ８０２は、サンプルの４×８矩形ブロックである現在ブロック８０３を含む。図７のものと同様に、再構成された隣接参照サンプル８０６および再構成された隣接参照サンプル８０８も示されており、これらはそれぞれ、現在ピクチャ８０２の上および左の１つまたは複数のブロックの一部であり得る。
【０１６７】
[0181]  コーディングデバイス（例えば、ビデオエンコーダ２２および／またはビデオデコーダ３０）は、現在ブロック８０３のサイズを決定し得、現在ブロック８０３のサイズに基づいて実行すべきイントラ予測モードを選択し得る。現在ブロックが矩形ブロックであるという決定に基づいて、広角イントラ予測モードが使用され得る。例えば、図７に関して上述のものと同様に、様々な利用可能なイントラ予測モードの分析に基づいて（例えば、上述のＳＡＥまたは他の類似性尺度に基づいて）、コーディングデバイスは、現在ブロック８０３のサンプルロケーションについてイントラ予測を実行するために広角イントラ予測モード（例えば、広角イントラ予測モード−２、−３、または−４）を選択し得る。図８の矢印８１０は、選択された広角イントラ予測モードの予測方向を示し、予測サンプル８０４（ｐｒｅｄ（ｘ’，ｙ’）と示す）のイントラ予測のために使用される参照サンプル８１４から生じている。図８に例示する広角イントラ予測モードは、隣接対角右上モード（例えば、図６からの広角イントラ予測モード−３）である。
【０１６８】
[0182]  選択された広角イントラ予測モードの方向（矢印８１０によって表す）を使用して、隣接参照サンプル８０６からのサンプル８１４の値が、現在ブロック８０３の予測ブロック中の予測サンプル８０４（ｐｒｅｄ（ｘ’，ｙ’）と示す）についての値として選択され得る。コーディングデバイスは、次いで、予測サンプル８０４の値を修正するために使用されることになる１つまたは複数のＰＤＰＣ参照サンプルを決定し得る。例えば、上述のものと同様の技法を使用して、第１のＰＤＰＣ参照サンプル（Ｒ(x,-1)と示す）、および場合によっては第２のＰＤＰＣ参照サンプル（Ｒ(-1,y)と示す）および／または第３のＰＤＰＣ参照サンプル８１６（Ｒ(-1,-1)と示す）が決定され得る。第３のＰＤＰＣ参照サンプル８１６（Ｒ(-1,-1)）は、現在ブロック８０３の左上サンプルに隣接する隣接ブロックから選択され得る。
【０１６９】
[0183]  予測サンプル８０４（ｐｒｅｄ（ｘ’，ｙ’））は、予測ブロック内のロケーション（ｘ’，ｙ’）に位置する。第１のＰＤＰＣ参照サンプルＲ(x,-1)は、現在ブロック８０３の上に、および広角イントラ予測モードの同じ予測方向（矢印８１０によって定義される）に沿って位置する参照サンプル８０８の行から選択される。図８に示す角度α（図３にも示す）について、参照サンプルＲ(x,-1)のｘ座標は、ｘ＝ｘ’＋ｃｏｔａｎ（α）×（ｙ’＋１）として決定され、ｃｏｔａｎ（α）は角度αの余接である。余接値の例は上で説明した。
【０１７０】
[0184]  第２のＰＤＰＣ参照サンプル（Ｒ(-1,y)）もまた、予測サンプル８０４のために使用されたものと同じサンプルロケーション８１４から選択され得る。このような例では、同じサンプル値（サンプル８１４の値）が、予測サンプル８０４および第２のＰＤＰＣ参照サンプルＲ(-1,y)のために使用され得、この場合、予測サンプル８０４（ｐｒｅｄ（ｘ’，ｙ’））は、第２のＰＤＰＣ参照サンプルＲ(-1,y)と同一である。上述のように、サンプル８１４の値は、第２のＰＤＰＣ参照サンプルＲ(-1,y)を取得するためにフィルタリングまたは平滑化され得、この場合、第２のＰＤＰＣ参照サンプルＲ(-1,y)の値は、予測サンプル８０４の値とは異なることになる。図８に示す角度αについて、Ｒ(-1,y)のｙ座標は、ｙ＝ｙ’＋ｔａｎ（α）×（ｘ’＋１）によって与えられ、ｔａｎ（α）は角度αの正接である。正接値の例は上で説明した。
【０１７１】
[0185]  第１のＰＤＰＣ参照サンプルＲ(x,-1)、第２のＰＤＰＣ参照サンプルＲ(-1,y)、および第３のＰＤＰＣ参照サンプル８１６（Ｒ(-1,-1)）は、予測サンプル８０４（ｐｒｅｄ（ｘ’，ｙ’））を修正するために使用されて、ＰＤＰＣ参照サンプルおよび予測サンプルｐｒｅｄ（ｘ’，ｙ’）の重み付き組み合わせを（例えば、上式１を使用して）計算するなどによって、（ｐｒｅｄ（ｘ，ｙ））と示す修正された予測サンプルを生成し得る。例えば、隣接対角右上モードのためのＰＤＰＣ重みは、例えば、ｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝０、またはｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝０、ｗＴＬ＝０である。
【０１７２】
[0186]  図８に示すように、第１のＰＤＰＣ参照サンプルＲ(x,-1)は、整数の参照サンプル位置に対応せず、代わりに、各々が整数位置にある２つのサンプル８１２間の分数位置にある。このような例では、ＰＤＰＣ参照サンプルＲ(x,-1)は、２つの参照サンプル８１２に基づいて補間され得る。参照サンプル８１２の補間は、例えば、線形補間またはキュービック補間（cubic interpolation）によって実行され得るか、または分数値が計算される場合、最近傍丸め（nearest neighbor rounding）が使用され得る。場合によっては、補間は、補間フィルタを使用して実行され得る。例えば、補間フィルタは、２つの参照サンプル８１２間に線形補間を適用し得る。場合によっては、ＰＤＰＣ参照サンプルを取得するために使用される補間フィルタと補間フィルタのために使用されるタップ数とは、イントラ予測モード、ブロックのサイズ（例えば、幅および高さ）、１つ複数の隣接ブロックの特性（例えば、隣接ブロックがイントラ予測を使用してコーディングされるかどうか）、それらの任意の組合せに依存し、および／または他のファクタに基づき得る。１つの例示的な例では、ある特定のブロックサイズおよび４５度を超えるモードのための補間のために６タップガウスフィルタ（6-tap-Gaussian filter）が使用され得、他のブロックサイズおよび−１３５度を超えるモードのために４タップガウスフィルタが使用され得る。
【０１７３】
[0187]  補間は、分数（非整数）位置にあるＰＤＰＣ参照サンプルを決定することの１つの例示的な例である。いくつかの例では、コーディングデバイス（例えば、ビデオエンコーダ２２および／またはビデオデコーダ３０）は、補間、オフセットを用いた丸め、および／またはオフセットを用いない丸めのうちの少なくとも１つを実行し得る。コーディングデバイスは、１つまたは複数の参照サンプルを生成するために、１つまたは複数のサンプルのセット中の隣接サンプルに基づいて、オフセットを用いてまたは用いずにそのような丸めを実行し得る。
【０１７４】
[0188]  いくつかの例では、大きい座標値が算出される場合、参照ラインバッファ（reference line buffer）境界の外の参照サンプルのアクセスを防ぐために、クリッピングが必要とされ得る。クリッピングが実行される場合、最後に利用可能な参照サンプルが使用され得るか、またはＰＤＰＣが角度イントラ予測のみにフォールバック（fall back）し得、これは、例えば、式１においてｗＬ、ｗＴ、ｗＴＬに対してゼロ重みを適用することと同等である。例えば、角度イントラ予測モードに基づいて現在ブロックの外部にある１つまたは複数の参照サンプルを決定するために、コーディングデバイスは、角度イントラ予測モードに基づいて特定された現在ブロックの外部の１つまたは複数のサンプルが参照ラインバッファに記憶されていないことを決定するように構成され得、参照ラインバッファに記憶された最後の参照サンプルに基づいて１つまたは複数の参照サンプルを決定し得る。
【０１７５】
[0189]  いくつかの例では、参照ラインバッファにおける最後のサンプルを使用するのではなくむしろ、ＰＤＰＣが現在ブロックについて無効にされ得るか、またはＰＤＰＣがある特定の予測されたサンプルについて無効にされ得、その結果、（例えば、修正された予測サンプルのない）通常のイントラ予測が使用される。１つの例として、予測ブロック中のある予測サンプルについて、コーディングデバイスは、第１の参照サンプルが参照バッファにおいて利用可能であるが、第２の参照サンプルが参照バッファにおいて利用可能でないことを決定し得る。この例では、コーディングデバイスは、ＰＤＰＣが予測サンプルについて無効にされることを決定し得る。しかしながら、いくつかの例では、コーディングデバイスは、（例えば、第２の参照サンプルについての重みをゼロに等しく設定することによって）ＰＤＰＣのために第１の参照サンプルを利用し得、第２の参照サンプルを利用しない場合がある。
【０１７６】
[0190]  いくつかの例では、上述のように、ＰＤＰＣフィルタリングのために使用される参照サンプルは、フィルタ（例えば、［１ ２ １］フィルタまたはより強力なフィルタ）によってフィルタリング（または平滑化）され得る。タップの数は、特定のモード、ブロックのサイズ（例えば、幅および高さ）、１つまたは複数の隣接ブロックの特性、それらの任意の組合せに基づいて、および／または他のファクタに基づいて適応され得る。例えば、イントラモードが広角予測モードを示す場合、ＰＤＰＣ参照サンプルを取得するために、より強力なフィルタが参照サンプルに対して適用され得る。いくつかの例では、長いイントラ予測距離の場合、平滑化フィルタリングが適用され得、これは、何らかの雑音を除去し、より良好な予測をもたらすことができる。
【０１７７】
[0191]  場合によっては、参照フィルタリングのために使用されるフィルタおよび／または補間フィルタリングのために使用されるフィルタは、垂直参照サンプル（現在ブロックの左）と水平参照サンプル（現在ブロックの上）とで異なり得る。いくつかの代替例では、異なるフィルタを使用する決定は、ブロックのサイズ（例えば、幅および高さ）、予測のために使用されるイントラモード、１つまたは複数の隣接ブロックの特性、それらの任意の組合せに依存し、および／または他のファクタに基づき得る。
【０１７８】
[0192]  いくつかの例では、隣接ブロックからの２つ以上の参照ラインが、イントラ予測のために、および／またはＰＤＰＣ参照サンプルを決定するために使用され得る。隣接ブロックからの２つ以上の参照ラインがイントラ予測のために使用され得るとき、追加の参照ライン（単数または複数）のための広角イントラ予測モードのためにＰＤＰＣ参照サンプルが取得され得、それらは、２つ以上の参照ラインを組み合わせることによって、またはブロックの近傍から１つまたは複数の参照ラインを選択することによって取得され得る。
【０１７９】
[0193]  場合によっては、広角イントラ予測が使用されるとき、ＰＤＰＣは、ブロックのサイズ、予測のために使用されるイントラモード、１つまたは複数の隣接ブロックの特性、それらの任意の組合せに基づいて、および／または他のファクタに基づいて制限され得る。例えば、ＰＤＰＣは、サイズしきい値よりも小さい小ブロック（例えば、４×４ブロックなどの、幅および／または高さが４画素未満であるブロック）について無効にされ得る。
【０１８０】
[0194]  上述のように、いくつかの例では、コーディングデバイスは、予測ブロック中の複数の予測サンプルに対して例示的なＰＤＰＣ技法を実行することができる。しかしながら、ＰＤＰＣ技法が予測サンプルのいくつかに対しては使用されるが、同じ予測ブロック中の他の予測サンプルに対しては使用されない例があり得る。例えば、予測ブロック中の第１の予測サンプルについて、コーディングデバイス（例えば、ビデオエンコーダ２２および／またはビデオデコーダ３０）は、本明細書で説明するＰＤＰＣ技法を実行し得る。しかしながら、同じ予測ブロック中の第２の予測サンプルについては、第２の予測サンプルに対してＰＤＰＣ技法を実行するために必要な参照サンプルが参照ラインバッファに記憶されていない場合がある。この例では、第２の予測サンプルについて、コーディングデバイスは、ＰＤＰＣ技法を実行することができず、通常のイントラ予測技法が利用され得る。場合によっては、第２の予測サンプルについて、参照サンプルのうちの１つが参照ラインバッファにおいて利用可能であるが、他の１つがそうでないことがあり得る。いくつかの例では、コーディングデバイスは、第２の予測サンプルに対してＰＤＰＣ技法を実行しない場合があるか、または利用可能である参照サンプルのみを利用し、利用可能でない参照サンプルに適用される重みにゼロ重みを割り当てる場合がある。
【０１８１】
[0195]  図９は、本明細書で説明する技法のうちの１つまたは複数を使用してビデオデータを復号するプロセス９００の一例を例示するフローチャートである。ブロック９０２において、プロセス９００は、ビデオデータの現在ブロックを取得することを含む。１つの例示的な例では、ビデオデータの現在ブロックは、図７に示すビデオデータのブロック７０３を含み得る。別の例示的な例では、ビデオデータの現在ブロックは、図８に示すビデオデータのブロック８０３を含み得る。
【０１８２】
[0196]  ブロック９０４において、プロセス９００は、現在ブロックのサイズを決定することを含む。場合によっては、現在ブロックのサイズを決定することは、ブロックの幅とブロックの高さとが異なるサイズであることを決定することを含み得、これはブロックが矩形ブロックであることを示す。場合によっては、現在ブロックのサイズを決定することは、現在ブロックの対角線の角度または方向（例えば、現在ブロックの左下角（bottom-left corner）から現在ブロックの右上角（top-right corner）への対角線方向、または現在ブロックの左上角（top-left corner）から現在ブロックの右下角（bottom-right corner）への対角線方向）を決定することを含み得る。場合によっては、（例えば、ピタゴラスの定理
【数２】
2021530906.tif 000005
を使用して）対角線方向を決定するために、現在ブロックのブロックサイズ比が使用され得る。上述のように、予測方向（または角度）の許容範囲を決定するために、対角線方向（例えば、左下から右上または左上から右下）が使用され得る。
【０１８３】
[0197]  ブロック９０６において、プロセス９００は、現在ブロックのサイズに基づいて、現在ブロックのために使用すべき広角イントラ予測モードを決定することを含む。広角イントラ予測モードは、ＤＣイントラ予測モードでも、プレーナイントラ予測モードでも、水平イントラ予測モードでも、垂直イントラ予測モードでもない。例えば、広角イントラ予測モードの角度は、予測サンプルに対して（例えば、予測サンプルからの垂直方向に対して）−１３５度より小さい（例えば、図６に示すモード−１、−２、−３、〜−１４）または４５度より大きい（例えば、図６に示すモード６７、６８、６９、〜８０）ものであり得る。
【０１８４】
[0198]  ブロック９０６の例示的な実装態様として、コーディングデバイス（例えば、ビデオデータを復号するためのデバイス）は、現在ブロックのサイズに基づいて、広角イントラ予測モードが現在ブロックのために使用され得ることを決定し得る。例えば、現在ブロックが矩形ブロックである（幅および高さが異なるサイズである）ことが決定されたときに、広角イントラ予測モードが使用され得る。場合によっては、現在ブロックの（ブロックの左下角から右上角へ、またはブロックの左上角から右下角への）対角線を超えない方向（または角度）を有する任意のイントラ予測モードが、現在ブロックを予測する際に使用するために選択され得る。場合によっては、ブロックサイズ比は、使用すべきイントラ予測モードを決定するために使用され得る。例えば、矩形ブロックのブロックサイズ比は、（例えば、左下から右上への）対角線方向、したがって予測方向の許容範囲を決定するために使用され得る。
【０１８５】
[0199]  いくつかの例では、広角イントラ予測モードの指示は、ビットストリーム中でシグナリングされ得る。いくつかの例では、予測ブロックと符号化されることになるブロックとの間の残差を最小にするイントラ予測モードが、（例えば、絶対誤差の和（ＳＡＥ）、差分絶対値和（ＳＡＤ）、変換差分絶対値和（ＳＡＴＤ）、または他の類似性の尺度に基づいて）現在ブロックのために使用するために選択され得る。例示的な一例としてＳＡＥを使用すると、イントラ予測モードの各々を使用して決定される各予測についてＳＡＥは予測誤差の大きさを示す。実際の現在ブロックに対して最良のマッチを有するイントラ予測モードは、最小のＳＡＥを与えるイントラ予測モードによって与えられる。例えば、プロセス９００は、ＳＡＥ分析に基づいて広角イントラ予測モードを選択し得、このＳＡＥ分析は、現在ブロックが矩形であることに基づいて、広角イントラ予測モードを最良のモードとして示し得る。
【０１８６】
[0200]  ブロック９０８において、プロセス９００は、広角イントラ予測モードを使用して現在ブロックのための予測ブロックを決定することを含む。予測ブロックは、複数の予測サンプルを含む。各予測サンプルは、広角イントラ予測モードを使用して決定され得る。ブロック９１０において、プロセス９００は、位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、予測ブロックの複数の予測サンプルのうちの１つの予測サンプルを修正することを含む。例えば、予測サンプルを修正することは、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正することとを含み得る。
【０１８７】
[0201]  いくつかの例では、現在ブロックの外部にある１つまたは複数の参照サンプルは、予測サンプルに対する広角イントラ予測モードの角度を使用して決定される。例えば、図７に示すように、第１のＰＤＰＣ参照サンプル７１４（Ｒ(-1,y)と示す）、および場合によっては、第２のＰＤＰＣ参照サンプルＲ(x,-1)が、矢印７１０によって表される広角イントラ予測モードの方向（または角度）に沿って決定される。
【０１８８】
[0202]  場合によっては、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの上にある行を決定することと、決定された行におけるｘ座標を決定することと、決定された行および決定されたｘ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを含み得る。そのような場合、決定された行におけるｘ座標は、予測サンプルのｘ座標＋予測サンプルのｙ座標＋１に等しい。さらに、場合によっては、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの上にある行を決定することと、決定された行におけるｘ座標を決定すること（ここで、決定された行におけるｘ座標は、予測サンプルに対する広角イントラ予測モードの角度に基づく）と、決定された行および決定されたｘ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを含み得る。例えば、決定された行におけるｘ座標を決定することは、広角イントラ予測モードの角度の余接または正接のうちの１つを決定することと、広角イントラ予測モードの角度の余接または正接のうちの１つ、予測サンプルのｘ座標、および予測サンプルのｙ座標に基づいて、決定された行におけるｘ座標を決定することとを含み得る。１つの例示的な例では、図７を参照すると、第２のＰＤＰＣ参照サンプルＲ(x,-1)は、再構成された隣接参照サンプル７０８の行から決定される。Ｒ(x,-1)のｘ座標は、ｘ＝ｘ’＋ｔａｎ（β）×（ｙ’＋１）として決定され得、ｔａｎ（β）は、図７に示す角度βの正接である。そのような例では、決定された行（例えば、図７の行７０８）におけるｘ座標（ｘ）は、予測サンプルのｘ座標（ｘ’）＋予測サンプルのｙ座標（ｙ’）＋１に等しく、また広角イントラ予測モードの角度（角度βの正接、ｔａｎ（β））にも基づく。
【０１８９】
[0203]  場合によっては、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの左にある列を決定することと、決定された列におけるｙ座標を決定することと、決定された列および決定されたｙ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを含み得る。そのような場合、決定された列におけるｙ座標は、予測サンプルのｙ座標＋予測サンプルのｘ座標＋１に等しい。さらに、場合によっては、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの左にある列を決定することと、決定された列におけるｙ座標を決定すること（ここで、決定された列におけるｙ座標は、広角イントラ予測モードの角度に基づく）と、決定された列および決定されたｙ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを含み得る。例えば、決定された列におけるｙ座標を決定することは、広角イントラ予測モードの角度の余接または正接のうちの１つを決定することと、広角イントラ予測モードの角度の余接または正接のうちの１つ、予測サンプルのｘ座標、および予測サンプルのｙ座標に基づいて、決定された列におけるｙ座標を決定することとを含み得る。１つの例示的な例では、図７を参照すると、第１のＰＤＰＣ参照サンプル７１４（Ｒ(-1,y)）は、再構成された隣接参照サンプル７０６の列から決定される。Ｒ(-1,y)のｙ座標は、ｙ＝ｙ’＋ｃｏｔａｎ（β）×（ｘ’＋１）として決定され得、ｃｏｔａｎ（β）は、図７に示す角度βの余接である。そのような例では、決定された列（例えば、図７の列７０６）におけるｙ座標（ｙ）は、予測サンプルのｙ座標（ｙ’）＋予測サンプルのｘ座標（ｘ’）＋１に等しく、また広角イントラ予測モードの角度（角度βの余接、ｃｏｔａｎ（β））にも基づく。
【０１９０】
[0204]  いくつかの実装形態では、広角イントラ予測モードに基づいて現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、広角イントラ予測モードに基づいて１つまたは複数のサンプルのセットを決定することと、１つまたは複数の参照サンプルを生成するために、１つまたは複数のサンプルのセットを補間すること、オフセットを用いて丸めること、またはオフセットを用いずに丸めることのうちの少なくとも１つを行うこととを含み得る。例えば、図８を参照すると、ＰＤＰＣ参照サンプルＲ(x,-1)を生成するために、サンプル８１２に対して補間が実行され得る。
【０１９１】
[0205]  いくつかの例では、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、予測ブロック中の予測サンプルのそれぞれのｘ座標およびｙ座標の両方とは異なるｘ座標およびｙ座標の両方を有する１つまたは複数の参照サンプルを決定することを備える。例えば、図７に関して説明するように、第３のＰＤＰＣ参照サンプル７１６（Ｒ(-1,-1)と示す）もまた、現在ブロック７０３の左上サンプルに隣接する隣接ブロックから決定され得る。
【０１９２】
[0206]  いくつかの実装形態では、広角イントラ予測モードに基づいて現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、広角イントラ予測モードに基づいて特定された現在ブロックの外部の１つまたは複数のサンプルが参照ラインバッファに記憶されていないことを決定することを含み得る。１つまたは複数の参照サンプルは、現在ブロックの外部の１つまたは複数のサンプルが参照ラインバッファに記憶されていないことに基づいて、参照ラインバッファに記憶された最後の参照サンプルに基づいて決定され得る。
【０１９３】
[0207]  いくつかの態様では、プロセス９００は、予測サンプルのｘ座標およびｙ座標に基づいて１つまたは複数の重みを決定することを含み得る。例えば、上述のように、隣接対角右上モードのためのＰＤＰＣ重みは、ｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝０、またはｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝０、ｗＴＬ＝０の通り決定され得る。別の例では、上述のように、隣接対角左下モードのためのＰＤＰＣ重みは、ｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝０、またはｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴ＝０、ｗＴＬ＝０の通り決定され得る。決定された１つまたは複数の重みは、１つまたは複数の参照サンプルとともに予測サンプルを修正するために使用され得る。例えば、修正された予測サンプルは、決定された１つまたは複数の参照サンプル、決定された１つまたは複数の重み、および予測サンプルに基づいて（例えば、上式１を使用して）生成され得る。
【０１９４】
[0208]  いくつかの例では、予測ブロックの複数の予測サンプルのうちの予測サンプルを修正することは、予測ブロックの第１の予測サンプルを修正することを含み得る。例えば、１つまたは複数の参照サンプルは、１つまたは複数の参照サンプルの第１のセットを含み得、プロセス９００は、予測ブロックの第２の予測サンプルについて、第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することを含み得る。場合によっては、第２の予測サンプルについて、第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することに基づいて、ＰＤＰＣが、第２の予測サンプルに適用されない場合がある。場合によっては、第２の予測サンプルについて、第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することに基づいて、ＰＤＰＣが、参照ラインバッファにおいて利用可能な参照サンプルのみを使用して第２の予測サンプルに適用され得る。
【０１９５】
[0209]  ブロック９１２において、プロセス９００は、修正された予測サンプルおよび残差値に基づいて現在ブロックのサンプルを再構成することを含む。例えば、上述のように、ビデオデータを復号するためのデバイスは、受信した情報に基づいて残差ブロックの残差値を決定し得、現在ブロックを再構成するために、残差ブロックの残差値を予測ブロックの予測サンプルに加算し得る。ビデオデータを復号するためのデバイスは、残差値についての情報（例えば、ビットストリーム中の残差変換ブロックについての係数）を受信し得、現在ブロック中のサンプルを再構成するために、残差値を、（ＰＤＰＣを使用して修正された）修正された予測サンプルに加算することによってサンプルを再構成し得る。
【０１９６】
[0210]  図１０は、本明細書で説明する技法のうちの１つまたは複数を使用してビデオデータを符号化するプロセス１０００の一例を例示するフローチャートである。ブロック１００２において、プロセス１０００は、ビデオデータの現在ブロックを取得することを含む。１つの例示的な例では、ビデオデータの現在ブロックは、図７に示すビデオデータのブロック７０３を含み得る。別の例示的な例では、ビデオデータの現在ブロックは、図８に示すビデオデータのブロック８０３を含み得る。
【０１９７】
[0211]  ブロック１００４において、プロセス１０００は、現在ブロックのサイズを決定することを含む。場合によっては、現在ブロックのサイズを決定することは、ブロックの幅とブロックの高さとが異なるサイズであることを決定することを含み得、これはブロックが矩形ブロックであることを示す。場合によっては、現在ブロックのサイズを決定することは、現在ブロックの対角線の角度または方向（例えば、現在ブロックの左下角から現在ブロックの右上角への対角線方向、または現在ブロックの左上角から現在ブロックの右下角への対角線方向）を決定することを含み得る。場合によっては、（例えば、ピタゴラスの定理
【数３】
2021530906.tif 000006
を使用して）対角線方向を決定するために、現在ブロックのブロックサイズ比が使用され得る。上述のように、予測方向（または角度）の許容範囲を決定するために、対角線方向（例えば、左下から右上または左上から右下）が使用され得る。
【０１９８】
[0212]  ブロック１００６において、プロセス１０００は、現在ブロックのサイズに基づいて、現在ブロックのために使用すべき広角イントラ予測モードを決定することを含む。広角イントラ予測モードは、ＤＣイントラ予測モードでも、プレーナイントラ予測モードでも、水平イントラ予測モードでも、垂直イントラ予測モードでもない。例えば、広角イントラ予測モードの角度は、予測サンプルに対して（例えば、予測サンプルからの垂直方向に対して）−１３５度より小さい（例えば、図６に示すモード−１、−２、−３、〜−１４）または４５度より大きい（例えば、図６に示すモード６７、６８、６９、〜８０）ものであり得る。
【０１９９】
[0213]  ブロック１００６の例示的な実装態様として、コーディングデバイス（例えば、ビデオデータを符号化するためのデバイス）は、現在ブロックのサイズに基づいて、広角イントラ予測モードが現在ブロックのために使用され得ることを決定し得る。例えば、現在ブロックが矩形ブロックである（幅および高さが異なるサイズである）ことが決定されたときに、広角イントラ予測モードが使用され得る。場合によっては、現在ブロックの（ブロックの左下角から右上角へ、またはブロックの左上角から右下角への）対角線を超えない方向（または角度）を有する任意のイントラ予測モードが、現在ブロックを予測する際に使用するために選択され得る。場合によっては、ブロックサイズ比は、使用すべきイントラ予測モードを決定するために使用され得る。例えば、矩形ブロックのブロックサイズ比は、（例えば、左下から右上への）対角線方向、したがって予測方向の許容範囲を決定するために使用され得る。予測ブロックと符号化されることになるブロックとの間の残差を最小にするイントラ予測モードが、（例えば、絶対誤差の和（ＳＡＥ）、差分絶対値和（ＳＡＤ）、変換差分絶対値和（ＳＡＴＤ）、または他の類似性の尺度に基づいて）現在ブロックのために使用するために選択され得る。例示的な一例としてＳＡＥを使用すると、イントラ予測モードの各々を使用して決定される各予測についてＳＡＥは予測誤差の大きさを示す。実際の現在ブロックに対して最良のマッチを有するイントラ予測モードは、最小のＳＡＥを与えるイントラ予測モードによって与えられる。例えば、プロセス９００は、ＳＡＥ分析に基づいて広角イントラ予測モードを選択し得、このＳＡＥ分析は、現在ブロックが矩形であることに基づいて、広角イントラ予測モードを最良のモードとして示し得る。
【０２００】
[0214]  ブロック１００８において、プロセス１０００は、広角イントラ予測モードを使用して現在ブロックのための予測ブロックを決定することを含む。予測ブロックは、複数の予測サンプルを含む。予測ブロックは、複数の予測サンプルを含む。各予測サンプルは、広角イントラ予測モードを使用して決定され得る。ブロック１０１０において、プロセス１０００は、位置依存イントラ予測組み合わせ（ＰＤＰＣ）を使用して修正された予測サンプルを生成するように、予測ブロックの複数の予測サンプルのうちの１つの予測サンプルを修正することを含む。例えば、予測サンプルを修正することは、広角イントラ予測モードに基づいて、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することと、修正された予測サンプルを決定された１つまたは複数の参照サンプルに基づいて生成するように予測サンプルを修正することとを含み得る。
【０２０１】
[0215]  いくつかの例では、現在ブロックの外部にある１つまたは複数の参照サンプルは、予測サンプルに対する広角イントラ予測モードの角度を使用して決定される。例えば、図７に示すように、第１のＰＤＰＣ参照サンプル７１４（Ｒ(-1,y)と示す）、および場合によっては、第２のＰＤＰＣ参照サンプルＲ(x,-1)が、矢印７１０によって表される広角イントラ予測モードの方向（または角度）に沿って決定される。
【０２０２】
[0216]  場合によっては、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの上にある行を決定することと、決定された行におけるｘ座標を決定することと、決定された行および決定されたｘ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを含み得る。そのような場合、決定された行におけるｘ座標は、予測サンプルのｘ座標＋予測サンプルのｙ座標＋１に等しい。さらに、場合によっては、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの上にある行を決定することと、決定された行におけるｘ座標を決定すること（ここで、決定された行におけるｘ座標は、予測サンプルに対する広角イントラ予測モードの角度に基づく）と、決定された行および決定されたｘ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを含み得る。例えば、決定された行におけるｘ座標を決定することは、広角イントラ予測モードの角度の余接または正接のうちの１つを決定することと、広角イントラ予測モードの角度の余接または正接のうちの１つ、予測サンプルのｘ座標、および予測サンプルのｙ座標に基づいて、決定された行におけるｘ座標を決定することとを含み得る。１つの例示的な例では、図７を参照すると、第２のＰＤＰＣ参照サンプルＲ(x,-1)は、再構成された隣接参照サンプル７０８の行から決定される。Ｒ(x,-1)のｘ座標は、ｘ＝ｘ’＋ｔａｎ（β）×（ｙ’＋１）として決定され得、ｔａｎ（β）は、図７に示す角度βの正接である。そのような例では、決定された行（例えば、図７の行７０８）におけるｘ座標（ｘ）は、予測サンプルのｘ座標（ｘ’）＋予測サンプルのｙ座標（ｙ’）＋１に等しく、また広角イントラ予測モードの角度（角度βの正接、ｔａｎ（β））にも基づく。
【０２０３】
[0217]  場合によっては、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの左にある列を決定することと、決定された列におけるｙ座標を決定することと、決定された列および決定されたｙ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを含み得る。そのような場合、決定された列におけるｙ座標は、予測サンプルのｙ座標＋予測サンプルのｘ座標＋１に等しい。さらに、場合によっては、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、現在ブロックの左にある列を決定することと、決定された列におけるｙ座標を決定すること（ここで、決定された列におけるｙ座標は、広角イントラ予測モードの角度に基づく）と、決定された列および決定されたｙ座標に基づいて１つまたは複数の参照サンプルのうちの１つの参照サンプルを決定することとを含み得る。例えば、決定された列におけるｙ座標を決定することは、広角イントラ予測モードの角度の余接または正接のうちの１つを決定することと、広角イントラ予測モードの角度の余接または正接のうちの１つ、予測サンプルのｘ座標、および予測サンプルのｙ座標に基づいて、決定された列におけるｙ座標を決定することとを含み得る。１つの例示的な例では、図７を参照すると、第１のＰＤＰＣ参照サンプル７１４（Ｒ(-1,y)）は、再構成された隣接参照サンプル７０６の列から決定される。Ｒ(-1,y)のｙ座標は、ｙ＝ｙ’＋ｃｏｔａｎ（β）×（ｘ’＋１）として決定され得、ｃｏｔａｎ（β）は、図７に示す角度βの余接である。そのような例では、決定された列（例えば、図７の列７０６）におけるｙ座標（ｙ）は、予測サンプルのｙ座標（ｙ’）＋予測サンプルのｘ座標（ｘ’）＋１に等しく、また広角イントラ予測モードの角度（角度βの余接、ｃｏｔａｎ（β））にも基づく。
【０２０４】
[0218]  いくつかの実装形態では、広角イントラ予測モードに基づいて現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、広角イントラ予測モードに基づいて１つまたは複数のサンプルのセットを決定することと、１つまたは複数の参照サンプルを生成するために、１つまたは複数のサンプルのセットを補間すること、オフセットを用いて丸めること、またはオフセットを用いずに丸めることのうちの少なくとも１つを行うこととを含み得る。例えば、図８を参照すると、ＰＤＰＣ参照サンプルＲ(x,-1)を生成するために、サンプル８１２に対して補間が実行され得る。
【０２０５】
[0219]  いくつかの例では、現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、予測ブロック中の予測サンプルのそれぞれのｘ座標およびｙ座標の両方とは異なるｘ座標およびｙ座標の両方を有する１つまたは複数の参照サンプルを決定することを備える。例えば、図７に関して説明するように、第３のＰＤＰＣ参照サンプル７１６（Ｒ(-1,-1)と示す）もまた、現在ブロック７０３の左上サンプルに隣接する隣接ブロックから決定され得る。
【０２０６】
[0220]  いくつかの実装形態では、広角イントラ予測モードに基づいて現在ブロックの外部にある１つまたは複数の参照サンプルを決定することは、広角イントラ予測モードに基づいて特定された現在ブロックの外部の１つまたは複数のサンプルが参照ラインバッファに記憶されていないことを決定することを含み得る。１つまたは複数の参照サンプルは、現在ブロックの外部の１つまたは複数のサンプルが参照ラインバッファに記憶されていないことに基づいて、参照ラインバッファに記憶された最後の参照サンプルに基づいて決定され得る。
【０２０７】
[0221]  いくつかの態様では、プロセス９００は、予測サンプルのｘ座標およびｙ座標に基づいて１つまたは複数の重みを決定することを含み得る。例えば、上述のように、隣接対角右上モードのためのＰＤＰＣ重みは、ｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝０、またはｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＬ＝０、ｗＴＬ＝０の通り決定され得る。別の例では、上述のように、隣接対角左下モードのためのＰＤＰＣ重みは、ｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴ＝３２＞＞（（ｙ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴＬ＝０、またはｗＬ＝３２＞＞（（ｘ’＜＜１）＞＞ｓｈｉｆｔ）、ｗＴ＝０、ｗＴＬ＝０の通り決定され得る。決定された１つまたは複数の重みは、１つまたは複数の参照サンプルとともに予測サンプルを修正するために使用され得る。例えば、修正された予測サンプルは、決定された１つまたは複数の参照サンプル、決定された１つまたは複数の重み、および予測サンプルに基づいて（例えば、上式１を使用して）生成され得る。
【０２０８】
[0222]  いくつかの例では、予測ブロックの複数の予測サンプルのうちの予測サンプルを修正することは、予測ブロックの第１の予測サンプルを修正することを含み得る。例えば、１つまたは複数の参照サンプルは、１つまたは複数の参照サンプルの第１のセットを含み得、プロセス９００は、予測ブロックの第２の予測サンプルについて、第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することを含み得る。場合によっては、第２の予測サンプルについて、第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することに基づいて、ＰＤＰＣが、第２の予測サンプルに適用されない場合がある。場合によっては、第２の予測サンプルについて、第２の予測サンプルのための１つまたは複数の参照サンプルの第２のセットのうちの少なくとも１つの参照サンプルが参照ラインバッファに記憶されていないことを決定することに基づいて、ＰＤＰＣが、参照ラインバッファにおいて利用可能な参照サンプルのみを使用して第２の予測サンプルに適用され得る。
【０２０９】
[0223]  ブロック１０１２において、プロセス１０００は、修正された予測サンプルおよび現在ブロックにおけるサンプル値に基づいて残差ブロックについての残差値を決定することを含む。例えば、残差値は、修正された予測サンプルと現在ブロックにおけるサンプル値との間の差（または誤差）を含み得る。残差値および／または変換係数を有する変換ブロック（例えば、ＴＵ、ＴＢ、または同様のもの）が、現在ブロックのために決定された１つまたは複数の残差値に基づいて生成され得る。例えば、残差データは、画素ドメインから変換ドメインに変換され得、残差変換係数をもたらす。残差変換係数は量子化され得、場合によっては、量子化された変換係数にエントロピーコーディングが適用され得る。ブロック１０１４において、プロセス１０００は、残差値を示す情報をシグナリングすることを含む。情報は、残差変換ブロック（エントロピーコーディングされ得る）、残差変換係数、量子化された残差変換係数、またはエントロピーコーディングされた量子化された残差変換係数を含み得る。
【０２１０】
[0224]  いくつかの例では、プロセス９００および１０００は、コンピューティングデバイスまたは装置によって実行され得る。例えば、プロセス９００は、ビデオデコーダ３０によって、またはビデオデコーダ３０を含むビデオデータを復号するためのデバイスもしくは装置（例えば、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックス）によって実行され得る。別の例では、プロセス１０００は、ビデオエンコーダ２２によって、またはビデオエンコーダ２２を含むビデオデータを符号化するためのデバイスもしくは装置（例えば、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックス）によって実行され得る。場合によっては、コンピューティングデバイスまたは装置は、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはプロセス９００および１０００のうちの一方または両方のステップを行うように構成されたデバイスの他の構成要素を含み得る。いくつかの例では、コンピューティングデバイスまたは装置は、１つまたは複数の画像をキャプチャするための１つまたは複数のカメラ、入力デバイス（例えば、タッチスクリーンインターフェース、キーパッド、マウス、または他の入力デバイス）、出力デバイス（例えば、現在ブロック、１つまたは複数の画像、通知、および／または他の表示可能なデータを表示するためのディスプレイ、オーディオを出力するためのスピーカ、または他の出力デバイス）、それらの任意の組合せ、または他の好適な構成要素などの、１つまたは複数の構成要素を含み得る。いくつかの例では、コンピューティングデバイスは、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、ウェアラブルデバイス、もしくは同様のもの、または１つまたは複数の構成要素を有する他のデバイスを含み得る。場合によっては、コンピューティングデバイスはビデオコーデックを含み得る。いくつかの例では、１つまたは複数の構成要素のいくつかは、コンピューティングデバイスから分離している場合があり、その場合、コンピューティングデバイスは、データを受信するか、またはデータを送信する。コンピューティングデバイスは、データを通信するように構成されたネットワークインターフェースをさらに含み得る。ネットワークインターフェースは、インターネットプロトコル（ＩＰ）ベースのデータまたは他の好適なネットワークデータを通信するように構成され得る。
【０２１１】
[0225]  コンピューティングデバイスの構成要素（例えば、１つまたは複数のプロセッサ、１つまたは複数のマイクロプロセッサ、１つまたは複数のマイクロコンピュータ、および／または他の構成要素）は、回路内に実装され得る。例えば、これら構成要素は、電子回路または他の電子ハードウェアを含むことができ、および／またはそれらを使用して実装されることができ、電子回路または他の電子ハードウェアは、１つまたは複数のプログラマブル電子回路（例えば、マイクロプロセッサ、グラフィックス処理ユニット（ＧＰＵ）、デジタルシグナルプロセッサ（ＤＳＰ）、中央処理ユニット（ＣＰＵ）、および／または他の好適な電子回路）を含むことができ、ならびに／もしくは本明細書で説明する様々な動作を実行するために、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せを含むことができ、および／またはそれらを使用して実装されることができる。
【０２１２】
[0226]  プロセス９００および１０００は、論理フロー図として例示されており、それらの動作は、ハードウェア、コンピュータ命令、またはそれらの組合せにおいて実施されることができる一連の動作を表す。コンピュータ命令のコンテキストでは、動作は、１つまたは複数のプロセッサによって実行されると、記載された動作を実行する１つまたは複数のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造、および同様のものを含む。動作が説明された順序は、限定として解釈されることを意図しておらず、任意の数の説明された動作が、プロセスを実施するために任意の順序でおよび／または並行して組み合わされることができる。
【０２１３】
[0227]  加えて、プロセス９００および１０００は、実行可能命令で構成された１つまたは複数のコンピュータシステムの制御下で実行され得、１つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで、集合的に実行されるコード（例えば、実行可能命令、１つまたは複数のコンピュータプログラム、または１つまたは複数のアプリケーション）として実施され得る。上述のように、コードは、例えば、１つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体または機械可読記憶媒体上に記憶され得る。コンピュータ可読記憶媒体または機械可読記憶媒体は、非一時的であり得る。
【０２１４】
[0228]  図１１は、本開示の技法を実施し得る例示的なビデオエンコーダ２２を例示するブロック図である。図１１は説明を目的として提供されており、本開示に広く例示および説明される技法を限定するものとみなされるべきではない。本開示の技法は、様々なコーディング規格または方法に適用可能であり得る。
【０２１５】
[0229]  図１１の例では、ビデオエンコーダ２２は、予測処理ユニット１００、ビデオデータメモリ１０１、残差生成ユニット１０２、変換処理ユニット１０４、量子化ユニット１０６、逆量子化ユニット１０８、逆変換処理ユニット１１０、再構成ユニット１１２、フィルタユニット１１４、復号ピクチャバッファ１１６、およびエントロピー符号化ユニット１１８を含む。予測処理ユニット１００は、インター予測処理ユニット１２０およびイントラ予測処理ユニット１２６を含む。インター予測処理ユニット１２０は、動き推定ユニットおよび動き補償ユニットを含み得る（図示せず）。
【０２１６】
[0230]  ビデオデータメモリ１０１は、ビデオエンコーダ２２の構成要素によって符号化されることになるビデオデータを記憶するように構成され得る。ビデオデータメモリ１０１に記憶されたビデオデータは、例えば、ビデオソース１８から取得され得る。復号ピクチャバッファ１１６は、例えば、イントラコーディングモードまたはインターコーディングモードで、ビデオエンコーダ２２によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１０１および復号ピクチャバッファ１１６は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を含むＤＲＡＭ、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ１０１および復号ピクチャバッファ１１６は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ１０１は、ビデオエンコーダ２２の他の構成要素とともにオンチップであり得るか、またはそれらの構成要素に対してオフチップであり得る。ビデオデータメモリ１０１は、図１の記憶媒体２０と同じまたはその一部であり得る。
【０２１７】
[0231]  ビデオエンコーダ２２は、ビデオデータを受信する。ビデオエンコーダ２２は、このビデオデータのピクチャのスライス中の各ＣＴＵを符号化し得る。ＣＴＵの各々は、ピクチャの、等しいサイズのルーマＣＴＢおよび対応するＣＴＢに関連付けられ得る。ＣＴＵを符号化することの一部として、予測処理ユニット１００は、ＣＴＵのＣＴＢを漸進的に小さくなるブロックへと分割するために分割を実行し得る。より小さいブロックは、ＣＵのコーディングブロックであり得る。例えば、予測処理ユニット１００は、ツリー構造にしたがって、ＣＴＵに関連付けられたＣＴＢを分割し得る。本開示の１つまたは複数の技法にしたがって、ツリー構造の各深度レベルにあるツリー構造の各それぞれの非リーフノードについて、それぞれの非リーフノードに対して複数の許容分割パターンが存在し、それぞれの非リーフノードに対応するビデオブロックは、複数の許容可能な分割パターンのうちの１つにしたがって、それぞれの非リーフノードの子ノードに対応するビデオブロックへと分割される。１つの例では、予測処理ユニット１００またはビデオエンコーダ２２の別の処理ユニットは、本明細書で説明された技法の任意の組合せを実行するように構成され得る。
【０２１８】
[0232]  ビデオエンコーダ２２は、ＣＵの符号化された表現（すなわち、コーディングされたＣＵ）を生成するために、ＣＴＵのＣＵを符号化し得る。ＣＵを符号化することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵの間でＣＵに関連付けられたコーディングブロックを分割し得る。本開示の技法にしたがって、ＣＵは、単一のＰＵのみを含み得る。すなわち、本開示のいくつかの例では、ＣＵが別々の予測ブロックへと分割されるのではなく、むしろ、予測プロセスが、このＣＵ全体に対して実行される。よって、各ＣＵは、ルーマ予測ブロックおよび対応するクロマ予測ブロックに関連付けられ得る。ビデオエンコーダ２２およびビデオデコーダ３０は、様々なサイズを有するＣＵをサポートし得る。上述のように、ＣＵのサイズは、ＣＵのルーマコーディングブロックのサイズと、ルーマ予測ブロックのサイズを指し得る。上述のように、ビデオエンコーダ２２およびビデオデコーダ３０は、本明細書で説明する例示的な分割技法の任意の組合せによって定義されるＣＵサイズをサポートし得る。
【０２１９】
[0233]  インター予測処理ユニット１２０は、ＣＵの各ＰＵに対してインター予測を実行することによって、ＰＵについての予測データを生成し得る。本明細書で説明されたように、本開示のいくつかの例では、ＣＵは、単一のＰＵのみを含み得、すなわち、ＣＵおよびＰＵは同義であり得る。ＰＵについての予測データは、ＰＵの予測ブロックおよびＰＵについての動き情報を含み得る。インター予測処理ユニット１２０は、ＰＵが、Ｉスライス中にあるか、Ｐスライス中にあるか、Ｂスライス中にあるかに依存して、ＰＵまたはＣＵのために異なる動作を実行し得る。Ｉスライスでは、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測処理ユニット１２０は、ＰＵに対してインター予測を実行しない。よって、Ｉモードで符号化されるブロックの場合、予測されたブロックは、同じフレーム内の前に符号化された隣接ブロックからの空間的予測を使用して形成される。ＰＵがＰスライス中にある場合、インター予測処理ユニット１２０は、ＰＵの予測ブロックを生成するために、単方向性インター予測を使用し得る。ＰＵがＢスライス中にある場合、インター予測処理ユニット１２０は、ＰＵの予測ブロックを生成するために、単方向性または双方向性インター予測を使用し得る。
【０２２０】
[0234]  イントラ予測処理ユニット１２６は、ＰＵに対してイントラ予測を実行することによって、ＰＵについての予測データを生成し得る。ＰＵについての予測データは、ＰＵの予測ブロックおよび様々なシンタックス要素を含み得る。イントラ予測処理ユニット１２６は、Ｉスライス、Ｐスライス、およびＢスライス中のＰＵに対してイントラ予測を実行し得る。
【０２２１】
[0235]  ＰＵに対してイントラ予測を実行するために、イントラ予測処理ユニット１２６は、ＰＵについての予測データの複数のセットを生成するために、複数のイントラ予測モードを使用し得る。イントラ予測処理ユニット１２６は、ＰＵについての予測ブロックを生成するために、隣接するＰＵのサンプルブロックからサンプルを使用し得る。隣接するＰＵは、ＰＵ、ＣＵ、およびＣＴＵに対して左から右、上から下の符号化順序を前提として、ＰＵの上、右上、左上、または左にあり得る。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モード、例えば、３３個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、ＰＵに関連する領域のサイズに依存し得る。
【０２２２】
[0236]  １つの例では、イントラ予測処理ユニット１２６は、本開示の技法を実施するように構成され得る。他の例では、他のユニットまたはモジュールが、本開示の技法の全部または一部を実施するように構成され得る。
【０２２３】
[0237]  予測処理ユニット１００は、ＰＵについてのインター予測処理ユニット１２０によって生成された予測データまたはＰＵについてのイントラ予測処理ユニット１２６によって生成された予測データの中から、ＣＵのＰＵについての予測データを選択し得る。いくつかの例では、予測処理ユニット１００は、予測データのセットのレート／歪みメトリックに基づいて、ＣＵのＰＵについての予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれ得る。
【０２２４】
[0238]  残差生成ユニット１０２は、ＣＵについてのコーディングブロック（例えば、ルーマ、Ｃｂ、およびＣｒコーディングブロック）と、ＣＵのＰＵについての選択された予測ブロック（例えば、予測ルーマ、Ｃｂ、およびＣｒブロック）とに基づいて、ＣＵについての残差ブロック（例えば、ルーマ、Ｃｂ、およびＣｒ残差ブロック）を生成し得る。例えば、残差生成ユニット１０２は、残差ブロック中の各サンプルが、ＣＵのコーディングブロック中のサンプルと、ＣＵのＰＵの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０２２５】
[0239]  変換処理ユニット１０４は、ＣＵに関連付けられた残差ブロックをＣＵのＴＵに関連付けられた変換ブロックに分割するために四分木分割を実行し得る。よって、ＴＵは、１つのルーマ変換ブロックと、２つのクロマ変換ブロックとに関連付けられ得る。ＣＵのＴＵのルーマおよびクロマ変換ブロックのサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づく場合も基づかない場合もある。「残差四分木」（ＲＱＴ）として知られている四分木構造は、領域の各々に関連付けられたノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。他の例では、変換処理ユニット１０４は、本明細書で説明された分割技法にしたがってＴＵを分割するように構成され得る。例えば、ビデオエンコーダ２２は、ＲＱＴ構造を使用して、ＣＵをＴＵへとそれ以上分割することができない。このように、１つの例では、ＣＵは、単一のＴＵを含む。
【０２２６】
[0240]  変換処理ユニット１０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵのＴＵごとに変換係数ブロックを生成し得る。変換処理ユニット１０４は、ＴＵに関連付けられた変換ブロックに様々な変換を適用し得る。例えば、変換処理ユニット１０４は、変換ブロックに、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に類似した変換を適用し得る。いくつかの例では、変換処理ユニット１０４は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
【０２２７】
[0241]  量子化ユニット１０６は、係数ブロックにおける変換係数を量子化し得る。量子化プロセスは、変換係数のうちの一部または全部に関連付けられたビット深度を低減し得る。例えば、ｎビット変換係数は、量子化中に、ｍビット変換係数へと端数が切り捨てられ得、ここで、ｎは、ｍよりも大きい。量子化ユニット１０６は、ＣＵに関連付けられた量子化パラメータ（ＱＰ）値に基づいて、ＣＵのＴＵに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ２２は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失を引き起こし得る。よって、量子化された変換係数は、元のものよりも低い精度を有し得る。
【０２２８】
[0242]  逆量子化ユニット１０８および逆変換処理ユニット１１０は、係数ブロックから残差ブロックを再構成するために、それぞれ、係数ブロックに逆量子化および逆変換を適用し得る。再構成ユニット１１２は、ＴＵに関連付けられた再構成された変換ブロックを生成するために、再構成された残差ブロックを、予測処理ユニット１００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加算し得る。このようにしてＣＵのＴＵごとに変換ブロックを再構成することによって、ビデオエンコーダ２２は、ＣＵのコーディングブロックを再構成し得る。
【０２２９】
[0243]  フィルタユニット１１４は、ＣＵに関連付けられたコーディングブロック中のブロッキングアーティファクトを低減するために、１つまたは複数のデブロッキング動作を実行し得る。復号ピクチャバッファ１１６は、フィルタユニット１１４が再構成されたコーディングブロックに対して１つまたは複数のデブロッキング動作を実行した後に、再構成されたコーディングブロックを記憶し得る。インター予測処理ユニット１２０は、他のピクチャのＰＵに対してインター予測を実行するために、再構成されたコーディングブロックを含む参照ピクチャを使用し得る。加えて、イントラ予測処理ユニット１２６は、ＣＵと同じピクチャ中の他のＰＵに対してイントラ予測を実行するために、復号ピクチャバッファ１１６中の再構成されたコーディングブロックを使用し得る。
【０２３０】
[0244]  エントロピー符号化ユニット１１８は、ビデオエンコーダ２２の他の機能構成要素からデータを受信し得る。例えば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１８は、エントロピー符号化されたデータを生成するために、データに対して１つまたは複数のエントロピー符号化動作を実行し得る。例えば、エントロピー符号化ユニット１１８は、データに対して、ＣＡＢＡＣ動作、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）動作、Ｖ２Ｖ（variable-to-variable）長コーディング動作、シンタックスベースのコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）動作、確率区間区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作を実行し得る。ビデオエンコーダ２２は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化されたデータを含むビットストリームを出力し得る。例えば、ビットストリームは、本開示の技法にしたがってＣＵのための分割構造を表すデータを含み得る。
【０２３１】
[0245]  図１２は、本開示の技法を実施するように構成された例示的なビデオデコーダ３０を例示するブロック図である。図１２は説明を目的として提供されており、本開示において広く例示および説明される技法を限定するものではない。説明の目的のために、本開示は、ＨＥＶＣコーディングのコンテキストでビデオデコーダ３０を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０２３２】
[0246]  図１２の例では、ビデオデコーダ３０は、エントロピー復号ユニット１５０、ビデオデータメモリ１５１、予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構成ユニット１５８、フィルタユニット１６０、および復号ピクチャバッファ１６２を含む。予測処理ユニット１５２は、動き補償ユニット１６４およびイントラ予測処理ユニット１６６を含む。他の例では、ビデオデコーダ３０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０２３３】
[0247]  ビデオデータメモリ１５１は、ビデオデコーダ３０の構成要素によって復号されることになる、符号化されたビデオビットビットストリームなどの符号化されたビデオデータを記憶し得る。ビデオデータメモリ１５１に記憶されたビデオデータは、ビデオデータのワイヤードまたはワイヤレスネットワーク通信を介して、もしくは物理的データ記憶媒体にアクセスすることによって、例えば、コンピュータ可読媒体１６から、例えば、カメラなどのローカルビデオソースから、取得され得る。ビデオデータメモリ１５１は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成し得る。復号ピクチャバッファ１６２は、例えば、イントラコーディングモードまたはインターコーディングモードで、ビデオデコーダ３０によってビデオデータを復号する際に使用するための、または出力のための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１５１および復号ピクチャバッファ１６２は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を含むＤＲＡＭ、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ１５１および復号ピクチャバッファ１６２は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ１５１は、ビデオデコーダ３０の他の構成要素とともにオンチップであり得るか、またはそれらの構成要素に対してオフチップであり得る。ビデオデータメモリ１５１は、図１の記憶媒体２８と同じまたはその一部であり得る。
【０２３４】
[0248]  ビデオデータメモリ１５１は、ビットストリームの符号化されたビデオデータ（例えば、ＮＡＬユニット）を受信し、記憶する。エントロピー復号ユニット１５０は、ビデオデータメモリ１５１から符号化されたビデオデータ（例えば、ＮＡＬユニット）を受信し得、シンタックス要素を取得するためにそのＮＡＬユニットをパースし得る。エントロピー復号ユニット１５０は、ＮＡＬユニット中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構成ユニット１５８、およびフィルタユニット１６０は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成し得る。エントロピー復号ユニット１５０は、エントロピー符号化ユニット１１８のプロセスとはほぼ逆のプロセスを実行し得る。
【０２３５】
[0249]  本開示のいくつかの例にしたがって、エントロピー復号ユニット１５０、またはビデオデコーダ３０の別の処理ユニットは、ビットストリームからシンタックス要素を取得することの一部としてツリー構造を決定し得る。ツリー構造は、ＣＴＢなどの初期ビデオブロックがコーディングユニットなどのより小さいビデオブロックへとどのように分割されるかを指定し得る。本開示の１つまたは複数の技法にしたがって、ツリー構造の各深度レベルにあるツリー構造の各それぞれの非リーフノードについて、それぞれの非リーフノードに対して複数の許容分割タイプが存在し、それぞれの非リーフノードに対応するビデオブロックは、複数の許容可能な分割パターンのうちの１つにしたがって、それぞれの非リーフノードの子ノードに対応するビデオブロックへと分割される。
【０２３６】
[0250]  ビットストリームからシンタックス要素を取得することに加え、ビデオデコーダ３０は、分割されていないＣＵに対して再構成動作を実行し得る。ＣＵに対して再構成動作を実行するために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して再構成動作を実行し得る。ＣＵの各ＴＵに対して再構成動作を実行することによって、ビデオデコーダ３０は、ＣＵの残差ブロックを再構成し得る。上述のように、本開示の１つの例では、ＣＵは、単一のＴＵを含む。
【０２３７】
[0251]  ＣＵのＴＵに対して再構成動作を実行することの一部として、逆量子化ユニット１５４は、ＴＵに関連付けられた係数ブロックを逆量子化（inverse quantize）、すなわち逆量子化（de-quantize）し得る。逆量子化ユニット１５４が係数ブロックを逆量子化した後、逆変換処理ユニット１５６は、ＴＵに関連付けられた残差ブロックを生成するために、この係数ブロックに１つまたは複数の逆変換を適用し得る。例えば、逆変換処理ユニット１５６は、係数ブロックに、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向性変換、または別の逆変換を適用し得る。
【０２３８】
[0252]  ＣＵまたはＰＵがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット１６６は、ＰＵの予測ブロックを生成するために、イントラ予測を実行し得る。イントラ予測処理ユニット１６６は、ブロックに空間的に隣接するサンプルに基づいて、ＰＵの予測ブロックを生成するために、イントラ予測モードを使用し得る。イントラ予測処理ユニット１６６は、ビットストリームから取得された１つまたは複数のシンタックス要素に基づいて、ＰＵのためのイントラ予測モードを決定し得る。
【０２３９】
[0253]  １つの例では、イントラ予測処理ユニット１６６は、本開示の技法を実施するように構成され得る。他の例では、他のユニットまたはモジュールは、本開示の技法の全部または一部を実施するように構成され得る。
【０２４０】
[0254]  ＰＵがインター予測を使用して符号化される場合、エントロピー復号ユニット１５０は、ＰＵについての動き情報を決定し得る。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、１つまたは複数の参照ブロックを決定し得る。動き補償ユニット１６４は、１つまたは複数の参照ブロックに基づいて、ＰＵについての予測ブロック（例えば、予測ルーマ、Ｃｂ、およびＣｒブロック）を生成し得る。上述のように、ＣＵは単一のＰＵのみを含み得る。すなわち、ＣＵは、複数のＰＵへと分割されない場合がある。
【０２４１】
[0255]  再構成ユニット１５８は、ＣＵについてのコーディングブロック（例えば、ルーマ、Ｃｂ、およびＣｒコーディングブロック）を再構成するために、ＣＵのＴＵについての変換ブロック（例えば、ルーマ、Ｃｂ、およびＣｒ変換ブロック）およびＣＵのＰＵの予測ブロック（例えば、ルーマ、Ｃｂ、およびＣｒブロック）、すなわち、適用可能な場合、イントラ予測データまたはインター予測データのいずれかを使用し得る。例えば、再構成ユニット１５８は、ＣＵのコーディングブロック（例えば、ルーマ、Ｃｂ、およびＣｒコーディングブロック）を再構成するために、変換ブロック（例えば、ルーマ、Ｃｂ、およびＣｒ変換ブロック）のサンプルを、予測ブロック（例えば、ルーマ、Ｃｂ、およびＣｒ予測ブロック）の対応するサンプルに加算し得る。
【０２４２】
[0256]  フィルタユニット１６０は、ＣＵのコーディングブロックに関連付けられたブロッキングアーティファクトを低減するためにデブロッキング動作を実行し得る。ビデオデコーダ３０は、ＣＵのコーディングブロックを復号ピクチャバッファ１６２に記憶し得る。復号ピクチャバッファ１６２は、後続の動き補償、イントラ予測、および、図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のために、参照ピクチャを提供し得る。例えば、ビデオデコーダ３０は、復号ピクチャバッファ１６２中のブロックに基づいて、他のＣＵのＰＵのためにイントラ予測またはインター予測動作を実行し得る。
【０２４３】
[0257]  ビデオデコーダは、現在ブロックの復号されたバージョンを含む現在ピクチャの復号されたバージョンを出力する。ビデオデコーダが、表示可能な復号されたビデオを出力するように構成されたビデオデコーダであるとき、ビデオデコーダは、例えば、現在ピクチャの復号されたバージョンをディスプレイデバイスに出力し得る。復号がビデオ符号化プロセスの復号ループの一部として実行されるとき、ビデオデコーダは、ビデオデータの別のピクチャを符号化する際に使用するための参照ピクチャとして、現在ピクチャの復号されたバージョンを記憶し得る。
【０２４４】
[0258]  本開示の特定の態様は、例示の目的でＨＥＶＣ規格の拡張版に関連して説明されている。しかしながら、本開示で説明された技法は、未だ開発されていない他の標準的なまたは専有のビデオコーディングプロセスを含む、他のビデオコーディングプロセスに有用であり得る。
【０２４５】
[0259]  本開示で説明したように、ビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同じく、ビデオコーディングは、適用可能な場合、ビデオ符号化またはビデオ復号を指し得る。この開示において、「〜に基づいて」という語句は、〜のみに基づいて、〜に少なくとも部分的に基づいて、または〜に何らかの方法で基づいて、を示し得る。本開示は、１つまたは複数のサンプルブロックのサンプルをコーディングするために使用される１つまたは複数のサンプルブロックおよびシンタックス構造を指すために「ビデオ単位」または「ビデオブロック」または「ブロック」という用語を使用し得る。例示的なタイプのビデオ単位には、ＣＴＵ、ＣＵ、ＰＵ、変換ユニット（ＴＵ）、マクロブロック、マクロブロック分割等が含まれ得る。いくつかのコンテキストでは、ＰＵについての説明は、マクロブロックまたはマクロブロック分割についての説明と置き換えられ得る。例示的なタイプのビデオブロックには、コーディングツリーブロック、コーディングブロック、およびビデオデータの他のタイプのブロックが含まれ得る。
【０２４６】
[0260]  本開示の技法は、ワイヤレスアプリケーションまたは設定に必ずしも限定されるわけではない。本技法は、無線テレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、ＨＴＴＰを介した動的適応型ストリーミング（ＤＡＳＨ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他のアプリケーションなどの、様々なマルチメディアアプリケーションの任意のものをサポートするビデオコーディングに適用され得る。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話通信などのアプリケーションをサポートするために、一方向または二方向のビデオ送信をサポートするように構成され得る。
【０２４７】
[0261]  本明細書で使用されるとき、「コンピュータ可読媒体」という用語は、限定されるものではないが、ポータブルまたは非ポータブル記憶デバイス、光記憶デバイス、および命令（単数または複数の）および／またはデータを記憶、包含、または搬送することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データが記憶されることができかつワイヤレスにまたはワイヤード接続を介して伝搬する搬送波および／または一時的な電子信号を含まない、非一時的な媒体を含み得る。非一時的な媒体の例は、限定されるものではないが、磁気ディスクまたはテープ、コンパクトディスク（ＣＤ）またはデジタル多目的ディスク（ＤＶＤ）などの光記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスを含み得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得るコードおよび／または機械実行可能命令を記憶し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツを渡すことおよび／または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データ等は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信、または同様のものを含む任意の好適な手段を介して渡され得る、転送され得る、または送信され得る。
【０２４８】
[0262]  いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームおよび同様のものを含むワイヤレス信号またはケーブルを含み得る。しかしながら、言及されるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明示的に除外する。
【０２４９】
[0263]  本明細書で提供される実施形態および例の完全な理解を提供するために、上記説明において特定の詳細が提供されている。しかしながら、実施形態がこれらの特定の詳細なしに実施され得ることが当業者によって理解されよう。説明を明確にするために、いくつかの例では、本技術は、ソフトウェアまたはハードウェアとソフトウェアの組合せにおいて具現化されるデバイス、デバイス構成要素、方法のステップまたはルーチンを備える機能ブロックを含む個別の機能ブロックを含むものとして提示され得る。図示および／または本明細書で説明されたもの以外の追加の構成要素が使用されてもよい。例えば、回路、システム、ネットワーク、プロセス、および他の構成要素が、不要な詳細で実施形態を曖昧にしないように、ブロック図形式の構成要素として示され得る。他の例では、周知の回路、プロセス、アルゴリズム、構造、および技法が、実施形態を曖昧にすることを避けるために、不要な詳細なく示され得る。
【０２５０】
[0264]  個別の実施形態が、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスまたは方法として上で説明され得る。フローチャートは、動作を順次プロセスとして説明し得るが、これら動作の多くは並行してまたは同時に行われ得る。さらに、動作の順序は並べ換えられ得る。プロセスは、その動作が完了したときに終了するが、図面に含まれていない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラム等に対応し得る。プロセスが関数に対応するとき、その終了は、この関数が呼び出し関数または主関数に戻ることに対応し得る。
【０２５１】
[0265]  上述の例によるプロセスおよび方法は、コンピュータ可読媒体に記憶された、またはそうでない場合コンピュータ可読媒体から利用可能であるコンピュータ実行可能命令を使用して実施され得る。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、または処理デバイスが、ある特定の機能または機能グループを実行するようにさせるか、またはそうでない場合構成する命令およびデータを含み得る。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、ソースコード等であり得る。命令、使用される情報、および／または説明された例による方法の間に作成される情報を記憶するために使用され得るコンピュータ可読媒体の例には、磁気または光ディスク、フラッシュメモリ、不揮発性メモリが設けられたＵＳＢデバイス、ネットワーク化された記憶デバイス等が含まれる。
【０２５２】
[0266]  これらの開示によるプロセスおよび方法を実施するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せを含み得、様々なフォームファクタのいずれかをとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント（例えば、コンピュータプログラム製品）は、コンピュータ可読媒体または機械可読媒体に記憶され得る。プロセッサ（単数または複数）が、必要なタスクを実行し得る。フォームファクタの典型的な例には、ラップトップ、スマートフォン、モバイルフォン、タブレットデバイスまたは他のスモールフォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイス等が含まれる。本明細書で説明する機能は、周辺機器またはアドインカードでも具現化され得る。かかる機能はまた、さらなる例として、単一のデバイス内で実行される異なるプロセスまたは異なるチップ間の回路基板上で実施され得る。
【０２５３】
[0267]  命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示で説明する機能を提供するための例示的な手段である。
【０２５４】
[0268]  前述の説明では、本願の態様は、その特定の実施形態を参照して説明されたが、当業者であれば、本願がそれに限定されないことを認識するであろう。よって、本願の例示的な実施形態が本明細書で詳細に説明されたが、発明の概念は、他の方法で様々に具現化され用いられることができ、添付の特許請求の範囲は、先行技術によって限定される場合を除き、そのような変形例を含むように解釈されると意図していることを理解されたい。上述の出願の様々な特徴および態様は、個別または一緒に使用され得る。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書で説明したものを超える任意の数の環境および用途において利用され得る。したがって、本明細書および図面は、制限的ではなくむしろ例示的であると見なされるべきである。例示を目的として、方法は、特定の順序で説明された。代替の実施形態では、これら方法が、説明したものとは異なる順序で実行され得ることを理解されたい。
【０２５５】
[0269]  当業者は、本明細書で使用される小なり（「＜」）および大なり（「＞」）記号または用語が、本説明の範囲から逸脱することなく、それぞれ、小なりイコール（「≦」）および大なりイコール（「≧」）記号と置き換えできることを理解するであろう。
【０２５６】
[0270]  構成要素がある特定の動作を実行する「ように構成される」ものとして説明される場合、そのような構成は、例えば、動作を実行するように電子回路または他のハードウェアを設計することによって、動作を実行するようにプログラマブル電子回路（例えば、マイクロプロセッサ、または他の好適な電子回路）をプログラミングすることによって、またはそれらの任意の組合せによって、達成されることができる。
【０２５７】
[0271]  「〜に結合された」という語句は、直接的または間接的に別の構成要素に物理的に接続された任意の構成要素、および／または直接的または間接的に別の構成要素と通信している（例えば、ワイヤードまたはワイヤレス接続、および／または他の好適な通信インターフェースを介して別の構成要素に接続された）任意の構成要素を指す。
【０２５８】
[0272]  セット「のうちの少なくとも１つ」と記載する請求項の記載または他の記載は、セットのうちの１つのメンバまたはセットのうちの複数のメンバが請求項を満たすことを示す。例えば、「ＡおよびＢのうちの少なくとも１つ」と記載する請求項の記載は、Ａ、Ｂ、またはＡおよびＢを意味する。
【０２５９】
[0273]  本明細書に開示される実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装され得る。このハードウェアとソフトウェアの互換性を明確に例示するために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概して、それらの機能性の観点から上述されている。このような機能性が、ハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の用途およびシステム全体に課せられる設計制約に依存する。当業者は、特定の用途ごとに、説明された機能性を多様な方法で実装してよいが、このような実装の判断は本発明の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
【０２６０】
[0274]  本明細書で説明された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せにおい実施され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおけるアプリケーションを含む複数の用途を有する集積回路デバイスなどの様々なデバイスのうちの任意のものにおいて実施され得る。モジュールまたは構成要素として説明された任意の特徴は、集積論理デバイスにおいて共に、またはディスクリートではあるが相互動作可能な論理デバイスとして別々に実装され得る。ソフトウェアで実施される場合、本技法は、少なくとも部分的に、命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって実現され得、これら命令は、実行されると、上述の方法のうちの１つまたは複数を実行する。コンピュータ可読データ記憶媒体は、コンピュータプログラム製品の一部を形成し得、それは、パッケージング材料を含み得る。コンピュータ可読媒体は、同期ダイナミックミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、不揮発ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的に消去可能なプログラマブル読取専用メモリ（ＥＥＰＲＯＭ（登録商標））、ＦＬＡＳＨ（登録商標）メモリ、磁気または光データ記憶媒体、および同様のものなどの、メモリまたはデータ記憶媒体を備え得る。本技法は、追加的または代替的に、少なくとも部分的に、伝搬された信号または波などの、コンピュータによってアクセス、読取、および／または実行されることができ、かつ、データ構造または命令の形態でプログラムコードを搬送または通信する、コンピュータ可読通信媒体によって実現され得る。
【０２６１】
[0275]  プログラムコードは、プロセッサによって実行され得、これは、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等の集積回路またはディスクリート論理回路などの１つまたは複数のプロセッサを含み得る。そのようなプロセッサは、この開示に説明される技法のうちの任意のものを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、このプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアに連結した１つまたは複数のマイクロプロセッサ、または他の任意のそのような構成として実施され得る。したがって、本明細書で使用される場合、「プロセッサ」という用語は、前述の構造の任意のもの、前述の構造の任意の組合せ、または本明細書で説明された技法の実施に好適な任意の他の構造または装置を指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供され得るか、または複合ビデオエンコーダ・デコーダ（ＣＯＤＥＣ）に組み込まれ得る。
【図１】
2021530906.tif 000007
【図２Ａ】
2021530906.tif 000008
【図２Ｂ】
2021530906.tif 000009
【図３】
2021530906.tif 000010
【図４Ａ】
2021530906.tif 000011
【図４Ｂ】
2021530906.tif 000012
【図４Ｃ】
2021530906.tif 000013
【図４Ｄ】
2021530906.tif 000014
【図５】
2021530906.tif 000015
【図６】
2021530906.tif 000016
【図７】
2021530906.tif 000017
【図８】
2021530906.tif 000018
【図９】
2021530906.tif 000019
【図１０】
2021530906.tif 000020
【図１１】
2021530906.tif 000021
【図１２】
2021530906.tif 000022
【国際調査報告】
2021530906.tif 000023
2021530906.tif 000024
2021530906.tif 000025
2021530906.tif 000026