(57)【要約】  ビデオデータをコーディングするためのデバイスは、ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断し、現在ブロックの第1の隣接ブロックのイントラ予測モードを、現在ブロック用の最確モード候補リストに追加し、現在ブロックの第2の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加し、現在ブロックの第3の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加し、イントラ予測モードを使用して、ビデオデータの現在ブロックをコーディングするように構成される。
2019515580.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断するステップと、
前記現在ブロックの第1の隣接ブロックのイントラ予測モードを、前記現在ブロック用の最確モード候補リストに追加するステップと、
前記現在ブロックの第2の隣接ブロック用のイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加するステップと、
前記現在ブロックの第3の隣接ブロック用のイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加するステップと、
前記最確モード候補リストを使用してイントラ予測モードを決定するステップと、
前記イントラ予測モードを使用してビデオデータの前記現在ブロックを復号するステップとを含む方法。
【請求項２】
前記第1の隣接ブロック、前記第2の隣接ブロック、および前記第3の隣接ブロックは、各々、前記現在ブロックに対する、左ネイバーブロック、上ネイバーブロック、左下ネイバーブロック、右上ネイバーブロック、または左上ネイバーブロックのうちの1つに対応する、請求項1に記載の方法。
【請求項３】
前記第1の隣接ブロックおよび前記第2の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加した後、ならびに前記第3の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加する前に、1つまたは複数のデフォルト候補を前記最確モード候補リストに追加するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記1つまたは複数のデフォルトは、平面モードおよびDCモードのうちの一方または両方を含む、請求項3に記載の方法。
【請求項５】
1つまたは複数の導出イントラ予測モードを前記最確モード候補リストに追加するステップをさらに含む、請求項1に記載の方法。
【請求項６】
隣接ブロックのイントラ予測モードに基づいて、前記1つまたは複数の導出イントラ予測モードを決定するステップをさらに含む、請求項5に記載の方法。
【請求項７】
前記1つまたは複数の導出イントラ予測モードは、前記隣接ブロックの前記イントラ予測モードのモードインデックスにオフセットを加えたものをもつイントラ予測モードを含む、請求項6に記載の方法。
【請求項８】
前記オフセットは-2、-1、1、または2のうちの1つに等しい、請求項7に記載の方法。
【請求項９】
2つの導出イントラ予測モードが同じイントラ予測モードであることに応答して、前記2つの導出イントラ予測モードのただ1つのインスタンスを前記最確モード候補リスト中に含めるステップをさらに含む、請求項5に記載の方法。
【請求項１０】
前記イントラ予測モードを決定するステップは、
前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードでないという指示を受信するステップと、
前記イントラ予測モードを示す追加シンタックスを受信するステップとを含む、請求項1に記載の方法。
【請求項１１】
前記イントラ予測モードを決定するステップは、
前記最確モード候補リスト中に含まれるイントラ予測モードを識別するコンテキストコード化インデックス値を受信するステップと、
前記コンテキストコード化インデックス値を復号するためのコンテキストを判断するステップと、
前記判断されたコンテキストを使用して、前記コンテキストコード化インデックス値をコンテキスト復号するステップと、
前記インデックス値に基づいて前記イントラ予測モードを決定するステップとを含む、請求項1に記載の方法。
【請求項１２】
前記判断されたコンテキストに基づいて、前記インデックス値を含むバイナリ化コードワードを判断するために、前記コンテキストコード化インデックス値をビンにマップするステップをさらに含み、前記バイナリ化コードワードは、前記最確モード候補リストからのイントラ予測モードに対応する、請求項11に記載の方法。
【請求項１３】
前記バイナリ化コードワードは短縮単項コードワードを含む、請求項12に記載の方法。
【請求項１４】
前記バイナリ化コードワードの各ビンはコンテキストコーディングされる、請求項12に記載の方法。
【請求項１５】
前記バイナリ化コードワードの各ビンは、前記最確モード候補リスト中の前記最確モードのうちの1つに対応する、請求項12に記載の方法。
【請求項１６】
各ビンに対応する前記最確モードの分類に基づいて、各ビンについての前記コンテキストを判断するステップをさらに含む、請求項12に記載の方法。
【請求項１７】
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードがモードの水平セットに属すかどうか、
前記第1の最確モードがモードの垂直セットに属すかどうか、または
前記第1の最確モードがモードの非角度セットに属すかどうかに基づいて判断するステップをさらに含む、請求項16に記載の方法。
【請求項１８】
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードから水平モードまでの距離、または
前記第1の最確モードから垂直モードまでの距離に基づいて判断するステップをさらに含む、請求項16に記載の方法。
【請求項１９】
隣接ブロックのグループを固定順序で検査して、前記隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断するステップであって、前記隣接ブロックのグループは、前記第1の隣接ブロック、前記第2の隣接ブロック、前記第3の隣接ブロック、および少なくとも1つの他の隣接ブロックを含む、ステップと、
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、前記最確モード候補リストの中に前記固定順序で追加するステップとをさらに含む、請求項1に記載の方法。
【請求項２０】
前記隣接ブロックのグループからの2つの隣接ブロックが、同じイントラ予測モードを使用してコーディングされていることに応答して、前記同じイントラ予測モードのただ1つのインスタンスを前記最確モード候補リスト中に含めるステップをさらに含む、請求項19に記載の方法。
【請求項２１】
前記隣接ブロックのグループの1つまたは複数の隣接ブロックを検査するステップは、マージモード用に隣接ブロックを検査するのに使われる同じ順序を使用して、前記1つまたは複数の隣接ブロックを検査するステップを含む、請求項19に記載の方法。
【請求項２２】
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを前記最確モード候補リストの中に追加したことにより、前記最確モード候補リスト中のイントラ予測モードの数が閾数を超えたことに応答して、前記隣接ブロックのグループの前記1つまたは複数の隣接ブロックをもう一度検査するという前記検査を終了させるステップをさらに含む、請求項19に記載の方法。
【請求項２３】
ビデオデータを復号するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
前記ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断し、
前記現在ブロックの第1の隣接ブロックのイントラ予測モードを、前記現在ブロック用の最確モード候補リストに追加し、
前記現在ブロックの第2の隣接ブロック用のイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加し、
前記現在ブロックの第3の隣接ブロック用のイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加し、
前記最確モード候補リストを使用してイントラ予測モードを決定し、
前記イントラ予測モードを使用して前記現在ブロックを復号するように構成される、デバイス。
【請求項２４】
前記第1の隣接ブロック、前記第2の隣接ブロック、および前記第3の隣接ブロックは、各々、前記現在ブロックに対する、左ネイバーブロック、上ネイバーブロック、左下ネイバーブロック、右上ネイバーブロック、または左上ネイバーブロックのうちの1つに対応する、請求項23に記載のデバイス。
【請求項２５】
前記1つまたは複数のプロセッサは、
前記第1の隣接ブロックおよび前記第2の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加した後、ならびに前記第3の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加する前に、1つまたは複数のデフォルト候補を前記最確モード候補リストに追加するように構成される、請求項23に記載のデバイス。
【請求項２６】
前記1つまたは複数のデフォルト候補は、平面モードおよびDCモードのうちの一方または両方を含む、請求項25に記載のデバイス。
【請求項２７】
前記1つまたは複数のプロセッサは、
1つまたは複数の導出イントラ予測モードを前記最確モード候補リストに追加するように構成される、請求項23に記載のデバイス。
【請求項２８】
前記1つまたは複数のプロセッサは、
隣接ブロックのイントラ予測モードに基づいて、前記1つまたは複数の導出イントラ予測モードを決定するように構成される、請求項27に記載のデバイス。
【請求項２９】
前記1つまたは複数の導出イントラ予測モードは、隣接ブロックの前記イントラ予測モードのモードインデックスにオフセットを加えたものをもつイントラ予測モードを含む、請求項23に記載のデバイス。
【請求項３０】
前記オフセットは-2、-1、1、または2のうちの1つに等しい、請求項29に記載のデバイス。
【請求項３１】
前記1つまたは複数のプロセッサは、
2つの導出イントラ予測モードが同じイントラ予測モードであることに応答して、前記2つの導出イントラ予測モードのただ1つのインスタンスを前記最確モード候補リスト中に含めるように構成される、請求項27に記載のデバイス。
【請求項３２】
前記イントラ予測モードを決定するために、前記1つまたは複数のプロセッサは、
前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードでないという指示を受信し、
前記イントラ予測モードを示す追加シンタックスを受信するように構成される、請求項23に記載のデバイス。
【請求項３３】
前記イントラ予測モードを決定するために、前記1つまたは複数のプロセッサは、
前記最確モード候補リスト中に含まれるイントラ予測モードを識別するコンテキストコード化インデックス値を受信し、
前記コンテキストコード化インデックス値を復号するためのコンテキストを判断し、
前記判断されたコンテキストを使用して、前記コンテキストコード化インデックス値をコンテキスト復号し、
前記インデックス値に基づいて前記イントラ予測モードを決定するように構成される、請求項23に記載のデバイス。
【請求項３４】
前記1つまたは複数のプロセッサは、
前記判断されたコンテキストに基づいて、前記インデックス値を含むバイナリ化コードワードを判断するために、前記コンテキストコード化インデックス値をビンにマップするように構成され、前記バイナリ化コードワードは、前記最確モード候補リストからのイントラ予測モードに対応する、請求項33に記載のデバイス。
【請求項３５】
前記バイナリ化コードワードは短縮単項コードワードを含む、請求項34に記載のデバイス。
【請求項３６】
前記バイナリ化コードワードの各ビンはコンテキストコーディングされる、請求項34に記載のデバイス。
【請求項３７】
前記バイナリ化コードワードの各ビンは、前記最確モード候補リスト中の前記最確モードのうちの1つに対応する、請求項34に記載のデバイス。
【請求項３８】
前記1つまたは複数のプロセッサは、各ビンに対応する前記最確モードの分類に基づいて、各ビンについての前記コンテキストを判断するように構成される、請求項34に記載のデバイス。
【請求項３９】
前記1つまたは複数のプロセッサは、
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードがモードの水平セットに属すかどうか、
前記第1の最確モードがモードの垂直セットに属すかどうか、または
前記第1の最確モードがモードの非角度セットに属すかどうかに基づいて判断するように構成される、請求項38に記載のデバイス。
【請求項４０】
前記1つまたは複数のプロセッサは、
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードから水平モードまでの距離、または
前記第1の最確モードから垂直モードまでの距離に基づいて判断するように構成される、請求項38に記載のデバイス。
【請求項４１】
前記1つまたは複数のプロセッサは、
隣接ブロックのグループを固定順序で検査して、前記隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断することであって、前記隣接ブロックのグループは、前記第1の隣接ブロック、前記第2の隣接ブロック、前記第3の隣接ブロック、および少なくとも1つの他の隣接ブロックを含む、ことと、
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、前記最確モード候補リストの中に前記固定順序で追加することとを行うように構成される、請求項23に記載のデバイス。
【請求項４２】
前記1つまたは複数のプロセッサは、
前記隣接ブロックのグループからの2つの隣接ブロックが、同じイントラ予測モードを使用してコーディングされていることに応答して、前記同じイントラ予測モードのただ1つのインスタンスを前記最確モード候補リスト中に含めるように構成される、請求項41に記載のデバイス。
【請求項４３】
前記隣接ブロックのグループの1つまたは複数の隣接ブロックを検査するために、前記1つまたは複数のプロセッサは、マージモード用に隣接ブロックを検査するのに使われる同じ順序を使用して、前記1つまたは複数の隣接ブロックを検査するように構成される、請求項42に記載のデバイス。
【請求項４４】
前記1つまたは複数のプロセッサは、
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを前記最確モード候補リストの中に追加したことにより、前記最確モード候補リスト中のイントラ予測モードの数が閾数を超えたことに応答して、前記隣接ブロックのグループの前記1つまたは複数の隣接ブロックをもう一度検査するという前記検査を終了させるように構成される、請求項43に記載のデバイス。
【請求項４５】
符号化ビデオデータを受信するように構成された受信機をさらに備えるワイヤレス通信デバイスを備える、請求項23に記載のデバイス。
【請求項４６】
前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記受信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを備える信号を復調するように構成される、請求項45に記載のデバイス。
【請求項４７】
ビデオデータを符号化するための方法であって、
ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断するステップと、
前記現在ブロックの第1の隣接ブロックのイントラ予測モードを、前記現在ブロック用の最確モード候補リストに追加するステップと、
前記現在ブロックの第2の隣接ブロック用のイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加するステップと、
前記現在ブロックの第3の隣接ブロック用のイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加するステップと、
前記最確モード候補リストを使用してイントラ予測モードを決定するステップと、
前記イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するステップとを含む方法。
【請求項４８】
前記第1の隣接ブロックおよび前記第2の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加した後、ならびに前記第3の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加する前に、1つまたは複数のデフォルト候補を前記最確モード候補リストに追加するステップをさらに含む、請求項47に記載の方法。
【請求項４９】
1つまたは複数の導出イントラ予測モードを前記最確モード候補リストに追加するステップをさらに含む、請求項47に記載の方法。
【請求項５０】
イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するステップは、
前記ビデオデータを含むビットストリームに含めるために、前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードでないという指示を生成するステップと、
前記ビデオデータを含む前記ビットストリームに含めるために、前記イントラ予測モードを示す追加シンタックスを生成するステップとを含む、請求項47に記載の方法。
【請求項５１】
イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するステップは、
前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードであると判断するステップと、
前記最確モード候補リスト中に含まれる前記イントラ予測モードに対応するインデックス値を判断するステップと、
前記インデックス値を符号化するためのコンテキストを判断するステップと、
前記判断されたコンテキストを使用して前記インデックス値をコンテキスト符号化するステップとを含む、請求項47に記載の方法。
【請求項５２】
前記判断されたコンテキストに基づいて、前記インデックス値を含むバイナリ化コードワードを判断するために、コンテキストコード化インデックス値をビンにマップするステップをさらに含み、前記バイナリ化コードワードは、前記最確モード候補リストからのイントラ予測モードに対応する、請求項51に記載の方法。
【請求項５３】
前記バイナリ化コードワードは短縮単項コードワードを含む、請求項52に記載の方法。
【請求項５４】
前記バイナリ化コードワードの各ビンはコンテキストコーディングされる、請求項52に記載の方法。
【請求項５５】
前記バイナリ化コードワードの各ビンは、前記最確モード候補リスト中の前記最確モードのうちの1つに対応する、請求項52に記載の方法。
【請求項５６】
各ビンに対応する前記最確モードの分類に基づいて、各ビンについての前記コンテキストを判断するステップをさらに含む、請求項52に記載の方法。
【請求項５７】
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードがモードの水平セットに属すかどうか、
前記第1の最確モードがモードの垂直セットに属すかどうか、または
前記第1の最確モードがモードの非角度セットに属すかどうかに基づいて判断するステップをさらに含む、請求項56に記載の方法。
【請求項５８】
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードから水平モードまでの距離、または
前記第1の最確モードから垂直モードまでの距離に基づいて判断するステップをさらに含む、請求項56に記載の方法。
【請求項５９】
隣接ブロックのグループを固定順序で検査して、前記隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断するステップであって、前記隣接ブロックのグループは、前記第1の隣接ブロック、前記第2の隣接ブロック、前記第3の隣接ブロック、および少なくとも1つの他の隣接ブロックを含む、ステップと、
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、前記最確モード候補リストの中に前記固定順序で追加するステップとをさらに含む、請求項47に記載の方法。
【請求項６０】
ビデオデータを符号化するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断し、
前記現在ブロックの第1の隣接ブロックのイントラ予測モードを、前記現在ブロック用の最確モード候補リストに追加し、
前記現在ブロックの第2の隣接ブロック用のイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加し、
前記現在ブロックの第3の隣接ブロック用のイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加し、
前記最確モード候補リストを使用してイントラ予測モードを決定し、
前記イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するように構成される、デバイス。
【請求項６１】
前記1つまたは複数のプロセッサは、
前記第1の隣接ブロックおよび前記第2の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加した後、ならびに前記第3の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加する前に、1つまたは複数のデフォルト候補を前記最確モード候補リストに追加するように構成される、請求項60に記載のデバイス。
【請求項６２】
前記1つまたは複数のプロセッサは、
1つまたは複数の導出イントラ予測モードを前記最確モード候補リストに追加するように構成される、請求項60に記載のデバイス。
【請求項６３】
イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するために、前記1つまたは複数のプロセッサは、
前記ビデオデータを含むビットストリームに含めるために、前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードでないという指示を生成し、
前記ビデオデータを含む前記ビットストリームに含めるために、前記イントラ予測モードを示す追加シンタックスを生成するように構成される、請求項60に記載のデバイス。
【請求項６４】
イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するために、前記1つまたは複数のプロセッサは、
前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードであると判断し、
前記最確モード候補リスト中に含まれる前記イントラ予測モードに対応するインデックス値を判断し、
前記インデックス値を符号化するためのコンテキストを判断し、
前記判断されたコンテキストを使用して前記インデックス値をコンテキスト符号化するように構成される、請求項60に記載のデバイス。
【請求項６５】
前記1つまたは複数のプロセッサは、
前記判断されたコンテキストに基づいて、前記インデックス値を含むバイナリ化コードワードを判断するために、コンテキストコード化インデックス値をビンにマップするように構成され、前記バイナリ化コードワードは、前記最確モード候補リストからのイントラ予測モードに対応する、請求項64に記載のデバイス。
【請求項６６】
前記バイナリ化コードワードは短縮単項コードワードを含む、請求項65に記載のデバイス。
【請求項６７】
前記バイナリ化コードワードの各ビンはコンテキストコーディングされる、請求項65に記載のデバイス。
【請求項６８】
前記バイナリ化コードワードの各ビンは、前記最確モード候補リスト中の前記最確モードのうちの1つに対応する、請求項65に記載のデバイス。
【請求項６９】
前記1つまたは複数のプロセッサは、
各ビンに対応する前記最確モードの分類に基づいて、各ビンについての前記コンテキストを判断するように構成される、請求項65に記載のデバイス。
【請求項７０】
前記1つまたは複数のプロセッサは、
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードがモードの水平セットに属すかどうか、
前記第1の最確モードがモードの垂直セットに属すかどうか、または
前記第1の最確モードがモードの非角度セットに属すかどうかに基づいて判断するように構成される、請求項69に記載のデバイス。
【請求項７１】
前記1つまたは複数のプロセッサは、
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードから水平モードまでの距離、または
前記第1の最確モードから垂直モードまでの距離に基づいて判断するように構成される、請求項70に記載のデバイス。
【請求項７２】
前記1つまたは複数のプロセッサは、
隣接ブロックのグループを固定順序で検査して、前記隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断することであって、前記隣接ブロックのグループは、前記第1の隣接ブロック、前記第2の隣接ブロック、前記第3の隣接ブロック、および少なくとも1つの他の隣接ブロックを含む、ことと、
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、前記最確モード候補リストの中に前記固定順序で追加することとを行うように構成される、請求項60に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、
2016年5月13日に出願された米国仮特許出願第62/336,414号、および
2016年10月4日に出願された米国仮特許出願第62/404,128号
の利益を主張し、その各々の内容全体は、参照により本明細書に組み込まれる。
【０００２】
本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【０００３】
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4, Part 10、アドバンストビデオコーディング(AVC)、現在開発中の高効率ビデオコーディング(HEVC)規格、およびそのような規格の拡張によって定義された規格に記載されるものなどのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実施することにより、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶することができる。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を実施する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)がビデオブロックに区分化される場合があり、ビデオブロックは、ツリーブロック、コーディングユニット(CU)、および/またはコーディングノードと呼ばれる場合もある。ピクチャのイントラコード化(I)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックの中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックの中の参照サンプルに対する空間予測、または他の参照ピクチャの中の参照サンプルに対する時間予測を使用し得る。ピクチャは、フレームと呼ばれる場合があり、参照ピクチャは、参照フレームと呼ばれる場合がある。
【０００５】
空間予測または時間予測は、コーディングされるべきブロックに対する予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらす場合があり、残差変換係数は、次いで量子化される場合がある。最初に2次元アレイに配置される量子化変換係数は、変換係数の1次元ベクトルを生成するために走査される場合があり、さらなる圧縮を実現するために、エントロピーコーディングが適用される場合がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
本開示は、イントラ予測に関連した技法を記載し、より詳細には、ビデオデータの特定のブロックを復号するのに使われるべきイントラ予測モードをビデオデコーダによって決定するのに使われる情報を、ビデオエンコーダからビデオデコーダへシグナリングするための技法を記載する。
【０００７】
一例では、ビデオデータを復号するための方法は、ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断するステップと、現在ブロックの第1の隣接ブロックのイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するステップと、現在ブロックの第2の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するステップと、現在ブロックの第3の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するステップと、最確モード候補リストを使用してイントラ予測モードを決定するステップと、イントラ予測モードを使用して、ビデオデータの現在ブロックを復号するステップとを含む。
【０００８】
別の例では、ビデオデータを復号するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、ビデオデータの現在ブロックが、イントラ予測モードを使用してコーディングされていると判断し、現在ブロックの第1の隣接ブロックのイントラ予測モードを、現在ブロック用の最確モード候補リストに追加し、現在ブロックの第2の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加し、現在ブロックの第3の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加し、最確モード候補リストを使用してイントラ予測モードを決定し、イントラ予測モードを使用して現在ブロックを復号するように構成された1つまたは複数のプロセッサとを含む。
【０００９】
別の例では、ビデオデータを符号化するための方法は、ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断するステップと、現在ブロックの第1の隣接ブロックのイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するステップと、現在ブロックの第2の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するステップと、現在ブロックの第3の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するステップと、最確モード候補リストを使用してイントラ予測モードを決定するステップと、イントラ予測モードを使用して、ビデオデータの現在ブロックを符号化するステップとを含む。
【００１０】
別の例では、ビデオデータを符号化するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断し、現在ブロックの第1の隣接ブロックのイントラ予測モードを、現在ブロック用の最確モード候補リストに追加し、現在ブロックの第2の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加し、現在ブロックの第3の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加し、最確モード候補リストを使用してイントラ予測モードを決定し、イントラ予測モードを使用して、ビデオデータの現在ブロックを符号化するように構成された1つまたは複数のプロセッサとを含む。
【００１１】
別の例では、コンピュータ可読記憶媒体は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断させ、現在ブロックの第1の隣接ブロックのイントラ予測モードを、現在ブロック用の最確モード候補リストに追加させ、現在ブロックの第2の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加させ、現在ブロックの第3の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加させ、最確モード候補リストを使用してイントラ予測モードを決定させ、イントラ予測モードを使用して現在ブロックを復号させる命令を記憶する。
【００１２】
別の例では、ビデオデータを復号するためのデバイスは、ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断するための手段と、現在ブロックの第1の隣接ブロックのイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するための手段と、現在ブロックの第2の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するための手段と、現在ブロックの第3の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するための手段と、最確モード候補リストを使用してイントラ予測モードを決定するための手段と、イントラ予測モードを使用して、ビデオデータの現在ブロックを復号するための手段とを含む。
【００１３】
別の例では、コンピュータ可読記憶媒体は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断させ、現在ブロックの第1の隣接ブロックのイントラ予測モードを、現在ブロック用の最確モード候補リストに追加させ、現在ブロックの第2の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加させ、現在ブロックの第3の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加させ、最確モード候補リストを使用してイントラ予測モードを決定させ、イントラ予測モードを使用して、ビデオデータの現在ブロックを符号化させる命令を記憶する。
【００１４】
別の例では、ビデオデータを符号化するためのデバイスは、ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断するための手段と、現在ブロックの第1の隣接ブロックのイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するための手段と、現在ブロックの第2の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するための手段と、現在ブロックの第3の隣接ブロック用のイントラ予測モードを、現在ブロック用の最確モード候補リストに追加するための手段と、最確モード候補リストを使用してイントラ予測モードを決定するための手段と、イントラ予測モードを使用して、ビデオデータの現在ブロックを符号化するための手段とを含む。
【００１５】
本開示の1つまたは複数の例の詳細が、添付図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００１６】
【図１】本開示に記載される技法を利用することができる例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】HEVCにおいて使われるイントラ予測モードの例解を示す図である。
【図３Ａ】現在ブロックのネイバーブロックについてのロケーションの例を示す図である。
【図３Ｂ】現在ブロックのネイバーブロックについてのロケーションの例を示す図である。
【図３Ｃ】現在ブロックのネイバーブロックについてのロケーションの例を示す図である。
【図３Ｄ】現在ブロックのネイバーブロックについてのロケーションの例を示す図である。
【図３Ｅ】現在ブロックのネイバーブロックについてのロケーションの例を示す図である。
【図４】MPMモード分類の例を示す図である。
【図５】本開示に記載される技法を実施することができる例示的なビデオエンコーダを示すブロック図である。
【図６】本開示に記載される技法を実施することができる例示的なビデオデコーダを示すブロック図である。
【図７Ａ】バイナリ算術コーディングにおける範囲更新プロセスを示す概念図である。
【図７Ｂ】バイナリ算術コーディングにおける範囲更新プロセスを示す概念図である。
【図８】バイナリ算術コーディングにおける出力プロセスを示す概念図である。
【図９】ビデオエンコーダ中のコンテキスト適応型バイナリ算術コーダを示すブロック図である。
【図１０】ビデオデコーダ中のコンテキスト適応型バイナリ算術コーダを示すブロック図である。
【図１１】本開示の技法による、最確モード候補リストを構築するための技法を示す流れ図である。
【図１２】本開示の技法による、ビデオデータのブロックを符号化するための技法を示す流れ図である。
【図１３】本開示の技法による、ビデオデータのブロックを復号するための技法を示す流れ図である。
【発明を実施するための形態】
【００１７】
最近開発された高効率ビデオコーディング(HEVC)規格を含む様々なビデオコーディング規格は、ビデオブロックに対する予測コーディングモードを含み、予測コーディングモードでは、現在コーディングされているブロックが、ビデオデータのすでにコーディングされたブロックに基づいて予測される。イントラ予測モードでは、現在ブロックは、現在ブロックと同じピクチャ内の1つまたは複数の以前コーディングされた隣接ブロックに基づいて予測され、インター予測モードでは、現在ブロックは、異なるピクチャ内のすでにコーディングされたブロックに基づいて予測される。インター予測モードでは、予測ブロックとして使用するために以前コーディングされたフレームのブロックを特定するプロセスは、動き推定と呼ばれるときがあり、それは概してビデオエンコーダによって実施され、予測ブロックを識別し取り出すプロセスは、動き補償と呼ばれるときがあり、それはビデオエンコーダとビデオデコーダの両方によって実施される。HEVCの拡張およびHEVCの後継は、イントラブロックコピー、辞書、およびパレットコーディングモードなどの追加コーディングモードも使う場合がある。
【００１８】
本開示は、イントラ予測に関連した技法を記載し、より詳細には、ビデオデータの特定のブロックを復号するのに使われるべきイントラ予測モードをビデオデコーダによって決定するのに使われる情報を、ビデオエンコーダからビデオデコーダへシグナリングするための技法を記載する。本開示は、ビデオデータのブロック用の最確イントラ予測モードのリストを判断するための技法と、最確イントラ予測モードのリストからの最確イントラ予測モードのどれが、ビデオデータのブロックを符号化するのに使われたかをシグナリングし、そうすることによって、ビデオデコーダが、そのイントラ予測モードを、ビデオデータのブロックを復号するのに使うことができるようにするための技法とを記載する。本開示では、最確イントラ予測モードは、単に最確モードまたはMPMと呼ばれる場合もある。最確イントラ予測モードのリストは、単に最確モード候補リストまたはMPM候補リストと呼ばれる場合もある。
【００１９】
以下でより詳しく説明する本開示の技法によると、ブロックがイントラ予測モードを使用してコーディングされるとき、ビデオエンコーダは、ブロック用のMPM候補リストを判断することができる。ビデオデコーダは、ビデオエンコーダによって実装される同じMPM候補リスト構築プロセスを実装することによって、ビデオエンコーダによって判断されたのと同じMPM候補リストを判断し得る。ビデオエンコーダおよびビデオデコーダが同じMPM候補リストを構築すると、ビデオエンコーダは、MPM候補リスト中の特定の候補に対応するインデックス値をシグナリングすることによって、ビデオデコーダにイントラ予測モードをシグナリングし得る。別段に明記されていない限り、本明細書に記載されるMPM候補リスト構築技法は、ビデオエンコーダまたはビデオデコーダのいずれかによって実施され得る。
【００２０】
MPM候補リストは、たとえば、すべての入手可能なイントラ予測モードの比較的小さいサブセットを含み得る。一例として、イントラ予測モードの総数は、HEVCによってサポートされる35であるか、またはHEVCの後継規格用に企図されるように、60を超えてよく、MPM候補リスト中に含まれる最確モードの数は、5もしくは6、または何らかの他の数であってもよく、可変であってもよい。MPM候補リストの一部ではないモードは、非最確モードと呼ばれ得る。本開示の技法は、どの特定の数のイントラ予測モードまたは最確モードにも限定されない。
【００２１】
任意の所与のブロック用に、どのイントラ予測モードが最確モードであるかを判断するための技法について、以下でより詳しく説明する。特定のブロック用の最確モードとして選択されるイントラ予測モードは概して、ブロックをコーディングするために使われる見込みが統計的により高いイントラ予測モードに対応する。以下でより詳しく説明するように、ビデオデータのブロック用の実際のイントラ予測モードをシグナリングするとき、実際のイントラ予測モードが最確モードのうちの1つ(たとえば、MPM候補リスト中のイントラ予測モード)である場合は、実際のイントラ予測が非最確モードのうちの1つである場合とは異なるシグナリング技法が使われてよい。最確モードをシグナリングするために利用される技法は、平均で、非最確モードのために利用されるシグナリング技法よりも少ないビットを利用し得る。したがって、実際のイントラ予測モードが、非最確モードであるよりも最確モードであることが多い場合、最確モードに関連付けられた、より低ビットのシグナリング技法をより頻繁に使うことによって、全体としてのビット節約が達成され得る。
【００２２】
本開示は、どの最確モードをMPM候補リスト中に含めるべきかを判断するための技法を記載し、実際のイントラ予測モードが最確モードのうちの1つであるときの事例において、ブロック用の実際のイントラ予測モードをシグナリングすることに関連した技法を記載する。本開示は、イントラ予測モードシグナリングに関連した技法を記載し、より詳細には、本開示は、すでにコーディングされているネイバーブロックのイントラ予測モードを、最確モードの予測子として使うための技法を記載する。さらに、本開示は、コンテキストを用いるエントロピーコーディングを使用して、最確モード関連情報をシグナリングするための技法を記載する。
【００２３】
本開示は、ときにはビデオコーダに言及し得る。ビデオコーダは、ビデオ符号化またはビデオ復号のいずれかを指す総称語であることが意図されている。同様に、ビデオコーディングという用語は、ビデオ符号化またはビデオ復号のいずれかを指す総称語であることが意図されている。ビデオ符号化またはビデオ復号のいずれかに関して、いくつかの技法が記載される場合があるが、別段に明記されていない限り、それらの技法は、ビデオ符号化またはビデオ復号の他方に等しく適用可能でないことは想定されるべきでない。したがって、本開示のいくつかの技法が、ビデオエンコーダまたはビデオデコーダのうちの1つに関して記載される場合であっても、技法は概して、ビデオエンコーダまたはビデオデコーダの他方にも適用可能であると想定されるべきである。
【００２４】
本開示は、たとえば、MPM候補リストを生成するため、および特定の情報をエントロピーコーディングするためのコンテキストを判断するための技法を記載する。ビデオエンコーダによって実施される、MPM候補リストを生成し、コンテキストを判断するための技法は、ビデオデコーダによって実施されるものと同じであってよく、そうであることにより、ビデオデコーダは、ビデオエンコーダからビデオデコーダへの明示的シグナリングがほとんどなしで、またはまったくなしで、エンコーダと同じMPM候補リストまたは同じコンテキストを判断し得る。
【００２５】
図1は、イントラ予測モードでブロックを符号化および復号するための技法を含む、本開示に記載される技法を利用することができる例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、後で宛先デバイス14によって復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのうちのいずれかを備える場合がある。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信用に装備される場合がある。
【００２６】
宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信することができる。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備える場合がある。一例では、リンク16は、ソースデバイス12がリアルタイムで宛先デバイス14に直接符号化ビデオデータを送信することを可能にするために、通信媒体を備える場合がある。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信される場合がある。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含む場合がある。
【００２７】
代替的に、符号化データは、出力インターフェース22から記憶デバイス17に出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイス17からアクセスされ得る。記憶デバイス17は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または、符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス17は、ソースデバイス12によって生成された符号化ビデオデータを保持し得るファイルサーバまたは別の中間記憶デバイスに相当し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス17からの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14へ送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。これには、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せが含まれる場合がある。記憶デバイス17からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであってよい。
【００２８】
本開示の技法は、ワイヤレスの適用例または設定に必ずしも限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途などの、様々なマルチメディア用途のうちのいずれかをサポートするビデオコーディングに適用される場合がある。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成される場合がある。
【００２９】
図1の例では、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成する場合がある。しかしながら、本開示に記載される技法は、一般に、ビデオコーディングに適用可能であり得、ワイヤレス用途および/またはワイヤード用途に適用され得る。
【００３０】
キャプチャされたビデオ、以前キャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化される場合がある。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して、宛先デバイス14に直接送信される場合がある。符号化ビデオデータは、同様に(または、代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために、記憶デバイス17に記憶される場合がある。
【００３１】
宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス34を含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信された、または記憶デバイス17上に提供された符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダによって使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体に記憶された、またはファイルサーバに記憶された符号化ビデオデータとともに含まれる場合がある。
【００３２】
ディスプレイデバイス34は、宛先デバイス14と統合されるか、または宛先デバイス14の外部にあってよい。いくつかの例では、宛先デバイス14は、集積ディスプレイデバイスを含み、また外部ディスプレイデバイスとインターフェースするように構成される場合もある。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス34は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備える場合がある。
【００３３】
ビデオエンコーダ20およびビデオデコーダ30は、HEVCのようなビデオ圧縮規格に従って動作することができ、HEVCテストモデル(HM)に準拠することができる。「HEVCワーキングドラフト10」または「HEVC WD10」と呼ばれるHEVC規格のワーキングドラフトは、Brossら、「Editors' proposed corrections to HEVC version 1」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT-VC)、第13回会合、仁川、韓国、2013年4月において記載されている。別のHEVCドラフト仕様は、http://phenix.int-evry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O1003-v2.zipから入手可能である。本開示に記載される技法はまた、現在開発中であるHEVC規格の拡張に従って動作し得る。
【００３４】
代替または追加として、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4, Part 10、アドバンストビデオコーディング(AVC)と呼ばれるITU-T H.264規格、またはそのような規格の拡張など、他の独自規格または工業規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、そのスケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張を含む、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 VisualおよびITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)を含む。ビデオコーディング規格は、Google VP8、VP9、VP10などの独自開発のビデオコーデック、および他の組織、たとえば、Alliance for Open Mediaによって開発されたビデオコーデックも含む。
【００３５】
ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG)のJCT-VCによって、HEVCの設計が確定されている。HEVC-RExtと呼ばれるHEVCに対する範囲拡張が、同じく、JCT-VCによって開発中である。これ以降ではRExt WD7と呼ばれる、範囲拡張の最近のワーキングドラフト(WD)が、http://phenix.int-evry.fr/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1005-v4.zipから入手可能である。
【００３６】
本開示は、全体的に、最近確定されたHEVC仕様テキストを、HEVCバージョン1またはベースHEVCとして参照する。範囲拡張仕様は、HEVCのバージョン2となる場合がある。動きベクトル予測などの多くのコーディングツールに関して、HEVCバージョン1または範囲拡張仕様は技術的に同様である。したがって、本開示がHEVCバージョン1に対する変更を記載するときはいつでも、全体的にベースHEVC仕様プラスいくつかの追加コーディングツールを含む範囲拡張仕様にも、同じ変更が適用される場合がある。さらに、HEVCバージョン1のモジュールがHEVC範囲拡張を実装するデコーダに組み込まれる場合もあることが、全体的に想定され得る。
【００３７】
JVETテストモデルなどの新規ビデオコーディング規格が、HEVCの後継として、現在開発中である。本開示は、説明を簡単にするために、HEVC用語を使用して、いくつかのビデオ技法を記載する。ただし、そのような技法はHEVCに限定されるわけではなく、HEVC以外のビデオコーディング規格に適用可能であり得ることを理解されたい。
【００３８】
ソースデバイス12のビデオエンコーダ20は、これらの現在または将来の規格のいずれかに従って、ビデオデータを符号化するように構成される場合があると一般的に考えられる。同様に、宛先デバイス14のビデオデコーダ30も、これらの現在または将来の規格のいずれかに従って、ビデオデータを復号するように構成される場合があると一般的に考えられる。
【００３９】
図1には示さないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、オーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリームの中のオーディオとビデオの両方の符号化を処理するために、好適なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含んでよい。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
【００４０】
ビデオエンコーダ20およびビデオデコーダ30は、各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装される場合がある。本技法が部分的にソフトウェアに実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェア用の命令を記憶し、1つまたは複数のプロセッサを使用してハードウェアにおいてその命令を実行して、本開示の技法を実施することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれることがあり、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されることがある。
【００４１】
上で紹介されたように、JCT-VCは、HEVC規格の開発を最近完了した。HEVC規格化の取組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づいた。HMは、たとえば、ITU-T H.264/AVCによる既存のデバイスに対して、ビデオコーディングデバイスのいくつかの追加機能を仮定する。たとえば、H.264は、9個のイントラ予測符号化モードを提供するが、HMは、35個ものイントラ予測符号化モードを提供し得る。
【００４２】
HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは、通常、一連のピクチャを含む。ピクチャは、「フレーム」と呼ばれることもある。ピクチャは、SL、SCb、およびSCrと表記される3つのサンプルアレイを含み得る。SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「彩度」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであることがあり、ルーマサンプルのアレイしか含まないことがある。
【００４３】
ピクチャの符号化表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU)のセットを生成することができる。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を含み得る。モノクロームピクチャ、または3つの別個のカラープレーンを有するピクチャでは、CTUは、単一のコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を含み得る。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれる場合もある。HEVCのCTUは、H.264/AVCなどの他の規格のマクロブロックに概して類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含む場合がある。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のCTUを含む場合がある。
【００４４】
コード化CTUを生成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロック上で4分木区分化を再帰的に実施して、コーディングツリーブロックをコーディングブロックに分割することができ、したがって、「コーディングツリーユニット」という名前である。コーディングブロックは、サンプルのN×Nブロックであり得る。CUは、ルーマサンプルアレイ、Cbサンプルアレイ、およびCrサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロック、およびクロマサンプルの2つの対応するコーディングブロック、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、CUは、単一のコーディングブロック、およびコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。
【００４５】
ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分化し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロック、クロマサンプルの2つの対応する予測ブロック、および予測ブロックを予測するために使用されるシンタックス構造を含み得る。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、PUは、単一の予測ブロック、および予測ブロックを予測するために使用されるシンタックス構造を含み得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックに対する、予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成し得る。
【００４６】
ビデオエンコーダ20は、PUに関する予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。
【００４７】
ビデオエンコーダ20がCUの1つまたは複数のPUに関する予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成した後、ビデオエンコーダ20は、CUに関するルーマ残差ブロックを生成し得る。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックのうちの1つの中のルーマサンプルとCUの元のルーマコーディングブロックの中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ20は、CUに関するCb残差ブロックを生成することができる。CUのCb残差ブロックの中の各サンプルは、CUの予測Cbブロックのうちの1つの中のCbサンプルと、CUの元のCbコーディングブロックの中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ20は、CUに関するCr残差ブロックを生成することもできる。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックのうちの1つの中のCrサンプルとCUの元のCrコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００４８】
さらに、ビデオエンコーダ20は、4分木区分化を使用して、CUのルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロックを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造を備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックと関連付けられ得る。TUと関連付けられるルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、TUは、単一の変換ブロック、および変換ブロックのサンプルを変換するために使用されるシンタックス構造を備え得る。
【００４９】
ビデオエンコーダ20は、TUに関するルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1つまたは複数の変換を適用し得る。係数ブロックは、変換係数の2次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、TUに関するCb係数ブロックを生成するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ20は、TUに関するCr係数ブロックを生成するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。
【００５０】
係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後に、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実施することができる。
【００５１】
ビデオエンコーダ20は、コード化ピクチャの表現および関連するデータを形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、NALユニットのシーケンスを備える場合がある。NALユニットは、NALユニット内のデータのタイプの指示と、必要に応じてエミュレーション防止ビットとともに分散したRBSPの形態でそのデータを含むバイトとを含む、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含む場合がある。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPは、0個のビットを含む。
【００５２】
様々なタイプのNALユニットは、様々なタイプのRBSPをカプセル化することができる。たとえば、第1のタイプのNALユニットはPPS用のRBSPをカプセル化することができ、第2のタイプのNALユニットはコード化スライス用のRBSPをカプセル化することができ、第3のタイプのNALユニットはSEIメッセージ用のRBSPをカプセル化することができ、以下同様である。(パラメータセットおよびSEIメッセージ用のRBSPとは対照的に)ビデオコーディングデータ用のRBSPをカプセル化するNALユニットは、VCL NALユニットと呼ばれる場合がある。
【００５３】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームを構文解析してビットストリームからシンタックス要素を取得し得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築することができる。ビデオデータを再構築するためのプロセスは、全般に、ビデオエンコーダ20によって実施されるプロセスの逆であり得る。加えて、ビデオデコーダ30は、現在のCUのTUと関連付けられる係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在のCUのTUと関連付けられた変換ブロックを再構築するために、係数ブロックに対して逆変換を実施し得る。ビデオデコーダ30は、現在のCUのPUの予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUのコーディングブロックを再構築し得る。ピクチャのCUごとにコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築し得る。
【００５４】
MPM候補リスト中に含まれるイントラ予測モードの多様性を増すために、本開示は、ネイバーブロックからのイントラ予測モードをMPM候補リスト中に含めるための技法、ならびにデフォルトおよび導出候補をMPM候補リスト中に含める技法を記載する。本開示の技法は、ビデオデータのブロックを符号化するのに使われる実際のイントラ予測モードが最確モードである確率を増大することによって、イントラ予測モードのシグナリングに関連付けられたコーディング効率を向上することができる。最確モードのシグナリングは通常、非最確モードのシグナリングよりも少ないビットを要求するので、ビデオデータのブロックを符号化するのに使われる実際のイントラ予測モードを、より頻繁に最確モードにすると、イントラ予測モードのシグナリングに関連付けられたシグナリングオーバーヘッドを削減することができる。
【００５５】
本開示に記載される技法は、任意のサイズ(総称的に、本明細書ではサイズNと呼ばれる)のMPM候補リストを生成するのに使うことができる。いくつかの例では、Nは、JVETにおいて現在企図されているように、6に等しくてよいが、Nのための他のより大きいか、またはより小さい値が使われてもよい。本開示の技法は、Nのいかなる特定の値にも限定されない。
【００５６】
図2は、HEVCにおいて使われるイントラ予測モードの例を示す。HEVCの35個のイントラ予測モードは、33個の方向性モード(図2のモードインデックス2〜34で示される)に加え、DCモード(図2のモードインデックス1)および平面モード(図2のモードインデックス0)と呼ばれる2つの非方向性モードを含む。本開示の技法は、イントラ予測のために使われる任意の数の方向性モードのために適用され得る。たとえば、モードの数は、HEVCにおいて使われるように35であってよく、またはHEVCの後継規格用に企図されているように、63、66、もしくは35よりも大きい何らかの他のモード数であってよい。記載される技法は、ルーマ成分のみもしくはクロマ成分のみなど、選択された色成分のみのイントラ予測モードコーディングのために適用されてよく、またはすべての利用可能な色成分(ルーマとクロマの両方)のために、もしくはどの他の組合せでも適用されてよい。
【００５７】
本開示の技法によると、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダが、現在ブロック用のMPM候補リストに追加するべきイントラ予測モードを識別するために、隣接ブロックのグループの3つ以上の隣接ブロックを検査し得る。隣接ブロックが、イントラ予測モードを使用してコーディングされている場合、ビデオコーダは、隣接ブロックをコーディングするのに使われているイントラ予測モードを、現在ブロック用のMPM候補リストに追加してよい。ビデオコーダによって検査されるネイバーブロックのロケーションは、現在ブロックに対して固定されてよい。たとえば、ネイバーブロックのロケーションは、左(L)ブロック、上(A)ブロック、左下(BL)ブロック、右上(AR)ブロック、および/または左上(AL)ブロックであってよい。他の隣接ブロックも使用され得る。ネイバーブロックからのイントラ予測モードがMPM候補リストに追加される順序は、固定される場合も変わる場合もあり、たとえば順序は、現在ブロックサイズ、ブロックが、矩形もしくは正方形など、特定の形状であるかどうかに依存するか、またはコンテキスト情報に基づき得る。
【００５８】
5つのネイバーロケーションが、一例として挙げられるが、より少ないか、またはより多くのネイバーブロックが、記載される技法を使う、MPM候補リストの構築において検討されてよい。5よりも多いロケーションを用いる一例が、図3Eに示されている。
【００５９】
隣接ブロックについてのロケーションは、サブブロックサイズ、たとえば4×4によって表すことができ、これは、イントラ予測モード情報が記憶される粒度であることを意味する。別の例では、イントラ予測モード情報は、ピクセルごとに、または8×8など、より大きいブロックについて特定され得る。クロマが、たとえば4:2:0カラーフォーマットで、ルーマ成分と比較してサブサンプリングされる場合、クロマ成分サブブロックロケーションはより小さく、たとえば2×2であってよく、これは、ルーマ4×4に対応し得る。
【００６０】
いくつかの例では、ネイバーブロックサイズに依存して、ロケーションは同じブロックに属し得る。たとえば、ネイバーブロックが16×16であり、現在コーディングされているブロックが8×8である場合、左上および左ロケーションは、同じ16×16ネイバーブロックに対応してよく、ここで、イントラ予測モード情報は、それらのロケーションにおいて同じになる。
【００６１】
ネイバーロケーションの数Mは、MPM候補リストサイズNに等しくてよいが、より小さいか、またはより大きくてもよい。一例では、数Mは、他のタイプのイントラ予測モードをMPM候補リスト中に含めるための、ある程度の余地を割り振るために、常にNよりも小さくてよい。ロケーションの数は、ブロックサイズ、ブロックが正方形それとも矩形であるか、矩形ブロックが水平ブロックである(すなわち、幅が高さよりも大きい)かどうか、高さと幅との間の比、高さおよび幅の大きい方の値と小さい方の値との間の比、またはブロックが垂直ブロック指向である(幅が高さよりも小さい)かどうかなど、現在および/またはネイバーブロックの特性に依存し得る。ロケーションの数は、ネイバーブロックの予測モード(たとえば、イントラまたはインター)にも依存し得る。
【００６２】
別の例では、ネイバーブロックロケーションおよびイントラ予測モードがMPM候補リスト中に追加される、イントラ予測モードの順序は異なり得る。たとえば、順序は、いくつかのブロックについて異なる場合があり、たとえば、現在ブロックサイズ、現在ブロックが正方形それとも矩形であるか、現在ブロックが垂直方向に配向している(幅が高さよりも小さい)か、それとも水平方向に配向している(幅が高さよりも大きい)かに依存してよい。
【００６３】
さらに別の例では、ロケーションおよびイントラ予測モードの順序は、ネイバーブロック特性に依存し得る。特性は、たとえば、ネイバーブロック予測モード(イントラまたはインター)、ネイバーブロックサイズ、ネイバーブロックが正方形それとも矩形であるか、ネイバーブロックが、垂直方向に配向している(幅が高さよりも小さい)かどうか、高さと幅との間の比、高さおよび幅の大きい方の値と小さい方の値との間の比、またはネイバーブロックが、水平方向に配向している(幅が高さよりも大きい)かどうかであってよい。
【００６４】
別の例では、現在ブロックに相対したネイバーブロックのロケーションは、マージまたは高度動きベクトル予測(AMVP)インター予測モードにおけるものと同じであってよい。この統一には、インターおよびイントラ予測モード用に同じ機能が再利用され得るので、実装利益があり得る。
【００６５】
概して、ビデオコーダは、異なるMPMタイプから、MPM候補リストを生成することができる。異なるタイプは、ネイバーベースのイントラ予測モード、導出イントラ予測モード、およびデフォルトイントラ予測モードを含み得るが、それに限定されない。ネイバーベースのイントラ予測モードは、隣接ブロック用に使われるイントラ予測モードを示す。デフォルトイントラ予測モードは、隣接ブロックとともに変化しない一定イントラ予測モードを指す。デフォルトイントラ予測モードは、たとえば、平面モード、DCモード、水平モード、または垂直モードであってよい。導出イントラ予測モードは、ネイバーベースのイントラ予測モードまたはデフォルトイントラ予測モードに基づいて導出されるイントラ予測モードを指す。たとえば、導出イントラ予測モードは、ネイバーベースのイントラ予測モード±1、±2、などであってよい。導出イントラ予測モードは、別の既存の導出イントラ予測モードによって生成することもできる。導出イントラ予測モードは、隣接ブロックの実際のイントラ予測モードでなくてよいが、むしろ、隣接ブロックの実際のイントラ予測モードから導出されるか、または何らかの他のやり方で導出されるイントラ予測モードであってよい。
【００６６】
ビデオコーダは、イントラ予測モードタイプに従って、MPM候補リストにイントラ予測モードを追加してよい。一例として、ビデオコーダは、最初に、ネイバーベースのイントラ予測モードを追加し、次いで、導出モードを追加し、次いで、デフォルトモードを追加すればよい。別の例では、ビデオコーダは、異なるタイプをもつイントラ予測モードをインターリーブ方式で追加し得る。たとえば、ビデオコーダは、一定数のネイバーベースのイントラ予測モードをリストに追加した後、1つまたは複数のデフォルトモードを追加してよい。たとえば、ビデオコーダは、2つのネイバーベースのモード、次いで2つのデフォルトモードを追加し、次いでより多くのネイバーベースのイントラ予測モードを追加してよい。
【００６７】
図3A〜図3Eは、ネイバーブロックについてのロケーションの例を示し、いくつかの例が示され、ブロックは矩形または正方形であってよい。図3Cは、マージ/AMVPモードと一体化された例を示す。図3Dは、より多数のネイバーロケーションを伴う例を示す。図には示されない、左または上のいくつかの中心ロケーションが使われてもよい。
【００６８】
MPM候補リスト構築および導出モードの態様について、ここで記載する。ネイバーベースのイントラ予測モードが、MPM候補リスト中に含められるべきであると見なされるとき、一意のイントラ予測モードのみがリストに追加され得る。たとえば、1つのネイバーブロックが、MPM候補リストにすでに追加されている同じイントラ予測モードを有する場合、そのようなモードは、リストに2度は追加されない。
【００６９】
ビデオコーダは、特定の数(K個)のネイバーベースのイントラ予測モードを、サイズNのMPM候補リストに追加するだけでよい。たとえば、M個のネイバーロケーションが検討されてよいが、Mよりも小さくてよいK個のネイバーベースのイントラ予測モードのみが、MPM候補リストに追加され得る。たとえば、ビデオコーダは、いくつかのロケーションからのネイバーベースのイントラ予測モードを特定の順序で追加してよく、追加されたネイバーモードの数がK個のモードに達すると、ビデオコーダは、ネイバーベースのイントラ予測モードをMPM候補リスト中に追加するのを停止してよい。いくつかの例では、Kは、一意のモードの数を表すのであって、必ずしも検討されるモードの数を表さなくてよい。言い換えると、複製モードが検討される(たとえば、2つの隣接ブロックが同じイントラ予測モードを有する)場合、ビデオコーダは、モードの1つのインスタンスをMPM候補リストに追加するだけでよい。K個のネイバーベースのイントラ予測モードをMPM候補リストに追加するだけで、以下でより詳しく説明する導出イントラ予測モードおよび/またはデフォルトイントラ予測モードなど、他のタイプのモード用に、MPM候補リスト中に空間を確保することができる。
【００７０】
ビデオコーダが、ネイバーブロックからのイントラ予測モードをMPM候補リストに追加した後、たとえばいくつかのモードが、同じであり、リストに追加されないので、MPM候補リストは依然として完成しない場合がある(モードの数がN未満である)。しかしながら、MPM候補リストは常に完成していなければならず、たとえばNのサイズを有することが要求され得る。
【００７１】
この場合、イントラ予測モードは、リストに追加される必要がある。それらの追加モードは、2つのタイプ、すなわち、MPM候補リストにすでに追加されているイントラ予測モードから導出されたイントラ予測モードと、デフォルトイントラ予測モードとに分類され得る。
【００７２】
導出イントラ予測モードは、MPM候補リストにすでに追加されているイントラ予測モードから導出されるモードである。たとえば、導出イントラ予測モードは、MPM候補リストからのモードに特定のオフセットを加えることによって取得されるモードであってよい。オフセットは、-+1、-+2などであってよい。オフセット値は、上で説明した現在またはネイバーブロック特性に依存し得る。
【００７３】
複数のオフセット値が、イントラ予測モードを導出するのに使われることを意図されているとき、オフセットは、特定の順序で適用されてよい。順序は、たとえば、ブロック特性に依存し得る。たとえば、始めに、第1のオフセットが、MPM候補リストにすでに追加されているすべてのイントラ予測モードに適用され、次いで、第2のオフセット値が、MPM候補リスト中にすでに追加されているモードに適用され、以下同様である。
【００７４】
別の例では、すべてのオフセット値が、MPM候補リストからの第1のイントラ予測モードに適用され、次いで、すべてのオフセット値が、MPM候補リストからの第2のイントラ予測モードに適用され、以下同様である。
【００７５】
さらに別の例では、上記例において、オフセット値はオフセットセットで置き換えられ得る。たとえば、オフセットセットは、同じ規模のオフセット値から作ることができる。たとえば、-+1は1つのオフセットセットであってよく、-+2は第2のオフセットセットであってよく、以下同様である。別の例では、オフセットセットは、同じ符号を有するオフセット値から作ることができる。たとえば、+1、+2、..が1つのセットであってよく、-1、-2、..は第2のセットである。上記2つの例は、組み合わせることができる。別の例では、オフセットセットは、すべての可能オフセット値からのサブセットとして作ることができ、サブセットは、たとえば、オフセットが適用される予定のイントラ予測モードに依存し得る。たとえば、あるイントラ予測モードが、オフセット値の特定のサブセットを有する場合があり、別のイントラ予測モードは、第1のサブセットとは異なり得る、オフセット値の別のサブセットを有する場合がある。
【００７６】
オフセット値は、いくつかのイントラ予測モードには適用されない場合があり、たとえばオフセットは、DC、PLANAR、またはLMモードなどの非角度モードには適用されず、オフセットは、導出、またはデフォルトイントラ予測モードには適用されなくてよい。
【００７７】
導出モードを作成する別の方法は、回転であり得る。たとえば、回転導出モードは、モードを特定の角度だけ回転することによって、ネイバーベースのイントラ予測モードから作成され得る。角度は、たとえば、45、90、もしくは180度またはどの他の値であってもよい。たとえば、回転角度が90度に等しく、ネイバーモードが水平イントラ予測モードである場合、導出モードは垂直モードであり得る。別の例として、ネイバーモードが水平モードである場合、導出モードは垂直モードである。同じ技法が、他の方向性モードまたは回転角度に適用され得る。
【００７８】
回転は、いくつかのネイバーモードのみに適用することができ、たとえば、回転は、非角度モードには適用されなくてよい。別の例では、回転の使用は、上述した現在またはネイバーブロック特性に依存し得る。たとえば、回転は、現在またはネイバーブロックが矩形形状を有する場合のモードにのみ適用することができる。
【００７９】
いくつかの実装形態では、一意の導出モードのみが、リストに追加され得る。したがって、導出イントラ予測モードに等しいイントラ予測モードが、MPM候補リストにすでに追加されている場合、導出モードはMPM候補リストに追加されなくてよい。いくつかの実装形態では、導出モードのうちのある特定の数のみが、MPM候補リストに追加されてよい。数は固定されてよい。別の例では、リストに追加される導出モードの数は、MPM候補リストサイズNから、ネイバーブロックからのモードの数Mを引いたものに等しくてよい。概して、導出モードは、MPM候補リストが完成するまで増やされ続けてよい。
【００８０】
いくつかのコーディングシナリオでは、ネイバーブロックからのイントラ予測モード、および導出モードは、MPM候補リストを完成するのに十分でない場合がある。一例では、たとえば、現在ブロックがピクチャ境界にあるか、またはすべてのネイバーブロックがインターコーディングされているので、ネイバーブロックから入手可能なイントラ予測モードがないコーディングシナリオがあり得る。そのようなケースでは、導出モードも入手可能でない場合がある。
【００８１】
MPM候補リストを完成するために、デフォルトイントラ予測モードがリストに追加されてよい。MPM候補リスト全体がデフォルトモードから作られ得るので、デフォルトイントラ予測モードの数は、所望のMPM候補リストサイズに等しくなければならない場合がある。ただし、MPM候補リスト中に、識別されているいくつかのモードがすでにある例では、デフォルトイントラ予測モードを含めることにより、MPM候補リストが確実に満杯になり得る。
【００８２】
デフォルトモードは、基本的に、可能イントラ予測モードのサブセットであってよく、それらのモードは一意であり得る。デフォルトモード用に選択されるイントラ予測モードは、固定されるか、または現在またはネイバーブロック特性に依存し得る。
【００８３】
別の例では、いくつかのモードが、常にデフォルトモードとして追加され得る。そのようなモードは、たとえば、PLANAR、DC、垂直モード、水平モード、対角線モード、たとえば、左(ブロックの左上隅から右下隅へ)または右(ブロックの右上隅から左下隅へ)対角線モードであってよい。デフォルトモードおよびデフォルトモードがMPM候補リストに追加される順序は、固定されてもよく、現在ブロックの特性に、および/またはネイバーブロックの特性に依存してもよい。
【００８４】
一例では、デフォルトモードリストは、PLANAR、DC、垂直、水平、左対角線、右対角線であってよい。別の例では、デフォルトモードリストは、PLANAR、DC、垂直、水平、垂直マイナス1、水平マイナス1であってよい。クロマ成分用には、デフォルトモードはDMまたはLMモードであってよい。さらに、1つまたは複数の導出デフォルトモードが、符号化および復号中に維持され、更新されてよく、デフォルトモードは、前にコーディングされたブロック中の最も頻繁に使われるモードであってよい。導出デフォルトモードは、MPM候補リストを生成するときに1つまたは複数のデフォルトモードが導出デフォルトモードで置き換えられるように適用され得る。
【００８５】
別の例では、満杯のデフォルトモードリストは、導出モードを取得するための、上述したオフセットまたは回転技法を適用することによって、より小さいモードリストから導出され得る。また、デフォルトモードリストが、一意のイントラ予測モードのみを含まなければならないことが要求事項であり得る。
【００８６】
別の例では、いくつかのデフォルトモードが、いくつかのネイバーロケーションに先立って、またはMPM候補リストにすでに含まれている特定の数のネイバーベースのイントラ予測モードの後に、リスト中に追加されてよく、たとえば、2つのネイバーベースのイントラ予測モードの後に、いくつかのデフォルトイントラ予測モードが追加される。
【００８７】
一例では、一意、等しい、または入手可能でない場合がある左および上イントラ予測モードが、MPM候補リストに追加され、次いで、PLANARまたはDCなどの非角度デフォルトモードが、MPM候補リストに追加される。デフォルトモードがMPM候補リストに追加された後、ネイバーブロック順序に従う、より多くのネイバーベースのイントラ予測モードが、MPM候補リストに追加される。やはり、いくつかの実装形態では、一意のモードのみがリストに追加される。モードを追加するインターリーブ方式は、現在およびネイバーブロックの特性に依存し得る。
【００８８】
MPMモードのためのコンテキストモデリングの態様について、ここで記載する。図9および図10に関して以下でより詳細に説明するように、エントロピーコーディングのために使われるコンテキストモデルは、エントロピーコーディングプロセスによって達成されるデータ圧縮に影響し得る。したがって、コンテキストモデリングは、ビデオエンコーダによって達成される全体としての圧縮に影響し得る。本開示は、全体としてのビデオ圧縮を改善し得るイントラ予測モードをシグナリングする際に使用するためのコンテキストモデルを選ぶための技法を記載する。
【００８９】
コーディングされるべき現在のイントラ予測モードが、MPMモードのうちの1つに等しい場合、ビデオコーダは、MPMモードに対応するコンテキストコード化ビンを使用して、現在のイントラ予測をシグナリングしてよい。たとえば、シグナリングされるべきビンはバイナリ化によって定義することができ、バイナリ化は、単項、短縮単項、固定バイナリ、ゴロム、指数ゴロム、ライスおよび限定なしで任意の他のバイナリ化など、どのコードワード導出方式であってもよい。バイナリ化は、MPMインデックス、たとえば、現在のイントラ予測モードと等しい、特定の位置にある、MPM候補リストからのMPMモードに適用され得る。このインデックスは、ビットストリーム中でシグナリングされ得る。バイナリ化表現中の各ビンまたはある特定の数のビンはコンテキストコーディングされてよく、コンテキストは、MPMモードの分類に従って導出されてよい。
【００９０】
たとえば、単項もしくは短縮単項バイナリ化または同様のバイナリ化において、各ビンは、MPM候補リストからのあらゆるモードに対応し、たとえば、0は、現在のモードがMPM候補リストからのモードに等しくないことを表し、1は、現在のモードがそのMPMモードに等しいことを表す。次いで、各ビンまたは特定の数の第1のビンがコンテキストコーディングされてよく、コンテキストは、対応付けられたMPMモード分類に依存する。
【００９１】
一例として、MPM候補リストは、{HOR,VER,PLANAR,DC,DIAG_LEFT,DIAG_RIGHT}モードから作ることができる。また、コーディングされるべき現在のイントラ予測モードをPLANARモードに等しくさせると、たとえば、MPMインデックスは、シグナリングされるべき2となる。バイナリ化が短縮単項である場合、バイナリ化コードワードは、インデックス2に対応する001であり、max値は5に等しい。
001:0(MPM0に対応する)0(MPM1に対応する)1(MPM2に対応する)。
MPM0=HOR、MPM1=VER、MPM2=PLANAR、...
【００９２】
見るとわかるように、各ビンはリストからの特定のMPMモードに対応し、そのビンについてのコンテキストは、この例では、MPMi分類、i=0..2に従って導出される。この例では、MPM0関連コンテキストはモードの水平セット用に使われてよく、MPM1関連コンテキストはモードの垂直セット用に使われてよく、MPM2関連コンテキストはモードの非角度セット用に使われてよい。
【００９３】
MPMモードの分類は、たとえば、イントラ予測モードが角度それとも非角度モードであるかに基づくか、または垂直もしくは水平セットなどの角度方向に従い得る。
【００９４】
別の例では、すべてのイントラ予測モードは、3つのセット、すなわち非角度、水平または垂直セットに分類され得る。垂直セットは、たとえば、垂直方向により近いイントラ予測モード、たとえば垂直方向から-+45度の角度のモードであってよく、水平セットは、水平方向から-+45度の角度のモードとして同様に導出される。
【００９５】
図4は、MPMモード分類の例(1つのセットが水平セットであり、1つのセットが垂直セットであり、1つのセットが非角度セットである。対角線モード(モード18などだが、別の例では、モード2、34、および同様のモードを含む)は、水平もしくは垂直セットに分類されてよく、または分離対角線セットに含めることができる)を示す。
【００９６】
別の例では、すべての角度方向が、水平または垂直セット以上のものに分割され得る。たとえば、角度モードは、いくつかのセットに均一に分割され得る。各イントラ予測モードは、たとえば特定の角度範囲内にあるものとして、セットのうちの1つに分類され得る。別の例では、各セットはただ1つのイントラ予測モードを含むことができ、選択はイントラモード固有であってよい。
【００９７】
イントラ予測モード分類および最確モードベクトル(MPMV)への一般化を使うコンテキストモデリングの態様について、ここで記載する。上述したイントラ予測モード分類は、ブロックのイントラ予測モードに適用されてよく、追加イントラ関連シンタックス要素をシグナリングするのに使うことができる。イントラ予測モード分類は、イントラ予測モードがコーディングされた後で、すなわち、イントラ予測モードがデコーダにおいてすでに知られているときに適用またはシグナリングされるどの方法またはシンタックス要素にも使うことができる。
【００９８】
たとえば、ブロック中のイントラ予測に使われるべき予測および変換のタイプをそれぞれ定義する、PDPCおよび/またはNSSTインデックスが、イントラ予測モード分類に基づくコンテキストモデリングを使用してシグナリングされ得る。分類におけるあらゆるセット用に、別個のコンテキストが使われてよい。
【００９９】
エントロピーコーディングは、上述したコンテキストベースの技法を使用してコーディングされるべき要素の間の統計的依存を利用することができる。別の方法は、データを組み合わせ、そのデータを一緒にコーディングすることに基づく。たとえば、予測モード(MPM)のみのリストを使うのではなく、最確モードベクトル(MPMV)と呼ばれる、関連イントラ予測情報のベクトルが作成され得る。たとえば、MPMV中の要素は、以下の情報およびインデックスを含み得る。
[予測モード、PDPC選択、NSST選択]
【０１００】
MPMを処理し、コーディングするための、前のセクションに記載された技法はMPMV用に拡張することができ、たとえば、単一バイナリシンボルが、ベクトル中の要素すべてが、MPMVリスト中の1つのエントリに等しいかどうかを示し得る。または、1つのバイナリシンボルが、要素のうちの少なくとも2つが等しいかどうかを示す、などのようになり得る。
【０１０１】
これらの拡張は、ベクトル情報の代替的バイナリ化に対応するが、別のものが完全にコーディングされた後でコード1タイプの情報のみに制限されるものよりも一般的であり、というのは、すべての要素についての部分的情報を一斉にコーディングすることを可能にするからである。
【０１０２】
現行のJEMでは、MPMインデックスコーディングについてのコンテキストは、3つのグループ、すなわち平面およびDC(非角度セット)、水平セット(左下から右上への対角線方向からのモードから、対角線モードまでを含む)、および垂直セット(対角線モードから、右上から左下への対角線方向まで)に分けられる。コンテキストセットは、イントラMPMモード方向および/もしくは現在ブロック形状、ならびに/またはMPM候補リスト中のMPMモードの数に基づいて改良され得る。
【０１０３】
たとえば、イントラ予測モードの総数が、HEVCにおいて使われる35個のモードよりも高い、たとえば67個のモードの場合、MPMインデックスについてのコンテキストは、たとえば次のテーブルに示すように、コンテキストモデルが、好ましいイントラ予測モード、たとえば垂直または水平方向までの距離に依存するようにグループ化され得る。
【０１０４】
【表１】
2019515580.tif 000003
【０１０５】
より一般的には、MPMインデックスをコーディングするのに使われるコンテキストが、デフォルトまたはあらかじめ選択されたイントラ予測モードからの特定のMPMモード(特定のMPMインデックスをもつモード)の距離、言い換えると、現在のMPMモードがデフォルトモードからどれだけ離れているかに従って割り当てられ得る。それらのデフォルトモードは、たとえば、水平、垂直、対角線またはどの他の方向であってもよい。
【０１０６】
図5は、本開示に記載される技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間冗長性を低減または除去するために空間予測に依存する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオにおける時間冗長性を低減または除去するために時間予測に依存する。イントラ予測モード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指す場合がある。
【０１０７】
図5の例では、ビデオエンコーダ20は、ビデオデータメモリ40、予測処理ユニット41、復号ピクチャバッファ(DPB)64、加算器50、変換処理ユニット52、量子化ユニット54、およびエントロピー符号化ユニット56を含む。予測処理ユニット41は、区分化ユニット35、動き推定ユニット42、動き補償ユニット44、イントラBCユニット48、およびイントラ予測処理ユニット46を含む。ビデオブロックの再構築のために、ビデオエンコーダ20は、逆量子化ユニット58、逆変換処理ユニット60、および加算器62も含む。加算器62とDPB64との間に、ループ内フィルタ(図示せず)が配置される場合がある。
【０１０８】
様々な例では、ビデオエンコーダ20の固定またはプログラム可能なハードウェアユニットは、本開示の技法を実施するように仕事を課せられる場合がある。また、いくつかの例では、本開示の技法は、図5に示されたビデオエンコーダ20の示された固定またはプログラム可能なハードウェアユニットのうちの1つまたは複数の間で分割される場合があるが、他のデバイスが本開示の技法を実施する場合もある。
【０１０９】
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ40内に記憶されるビデオデータは、たとえば、ビデオソース18から取得される場合がある。DPB64は、(たとえば、イントラ予測コーディングモードまたはインター予測コーディングモードとも呼ばれる、イントラコーディングモードまたはインターコーディングモードで)ビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶するバッファである。ビデオデータメモリ40およびDPB64は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成される場合がある。ビデオデータメモリ40およびDPB64は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ40は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１１０】
図5に示されるように、ビデオエンコーダ20はビデオデータを受信し、区分化ユニット35はデータをビデオブロックに区分化する。この区分化は、スライス、タイル、または他のより大きい単位への区分化、ならびに、たとえば、LCUおよびCUの4分木構造によるビデオブロック区分化を含む場合もある。ビデオエンコーダ20は、全体的に、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロック(および、場合によっては、タイルと呼ばれるビデオブロックのセット)に分割される場合がある。予測処理ユニット41は、エラー結果(たとえば、コーディングレートおよびひずみのレベル)に基づいて、現在ビデオブロックのために、複数のイントラコーディングモードのうちの1つまたは複数のインターコーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択することができる。予測処理ユニット41は、残差ブロックデータを生成するために加算器50に、また参照ピクチャとして使用するための符号化ブロックを再構築するために加算器62に、得られたイントラまたはインターコード化ブロックを提供し得る。
【０１１１】
予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を実現するために、コーディングされるべき現在ブロックと同じフレームまたはスライス内の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実施することができる。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を実現するために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実施する。
【０１１２】
動き推定ユニット42は、ビデオシーケンス用の所定のパターンに従って、ビデオスライス用のインター予測モードを決定するように構成される場合がある。所定のパターンは、シーケンス内のビデオスライスをPスライスまたはBスライスとして指定することができる。動き推定ユニット42および動き補償ユニット44は、高度に集積される場合があるが、概念的な目的のために別々に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示すことができる。イントラBCユニット48は、インター予測のための動き推定ユニット42による動きベクトルの特定と同様の方式で、イントラBCコーディングのためのベクトル、たとえばブロックベクトルを特定することができるか、または動き推定ユニット42を利用してブロックベクトルを特定することができる。
【０１１３】
予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUと厳密に一致することが判明したブロックである。いくつかの例では、ビデオエンコーダ20は、DPB64内に記憶された参照ピクチャのサブ整数ピクセル位置のための値を計算してよい。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実施し、分数ピクセル精度で動きベクトルを出力することができる。
【０１１４】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスの中のビデオブロックのPU用の動きベクトルを計算する。参照ピクチャは、その各々がDPB64に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送信する。
【０１１５】
いくつかの例では、イントラBCユニット48は、動き推定ユニット42および動き補償ユニット44に関して上述された方式と同様の方式でベクトルを生成し、予測ブロックをフェッチすることができるが、予測ブロックは現在ブロックと同じピクチャまたはフレームの中にあり、ベクトルは動きベクトルの対語としてブロックベクトルと呼ばれる。他の例では、イントラBCユニット48は、動き推定ユニット42および動き補償ユニット44を使用して、全体的または部分的に、本明細書に記載された技法によるイントラBC予測のためのそのような機能を実施することができる。いずれのケースでも、イントラBCの場合、予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックと厳密に一致することが判明したブロックの場合があり、ブロックの識別は、サブ整数ピクセル位置についての値の計算を含む場合がある。
【０１１６】
動き補償ユニット44によって実施される動き補償は、場合によっては、サブピクセル精度への補間を実施する、動き推定によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴う場合がある。現在ビデオブロックのPUに対する動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つの中で動きベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算してピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックおよびビデオスライスに関連するシンタックス要素を生成し得る。
【０１１７】
予測ビデオブロックが、イントラBC予測に従って同じピクチャからか、インター予測に従って異なるピクチャからかにかかわらず、ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成することができる。ピクセル差分値はブロック用の残差データを形成し、ルーマ成分差とクロマ成分差の両方を含む場合がある。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。イントラBCユニット48および/または動き補償ユニット44は、ビデオスライスのビデオブロックを復号する際に、ビデオデコーダ30などのビデオデコーダによって使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成することもできる。シンタックス要素には、たとえば、予測ブロックを識別するために使用されるベクトルを定義するシンタックス要素、予測モードを示す任意のフラグ、または本開示の技法に関して記載された任意の他のシンタックスが含まれ得る。
【０１１８】
イントラ予測処理ユニット46は、上述されたように、動き推定ユニット42および動き補償ユニット44によって実施されるインター予測、またはイントラBCユニット48によって実施されるイントラBC予測の代替として、現在ブロックをイントラ予測することができる。詳細には、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用する、イントラBCモードを含むイントラ予測モードを決定することができる。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別々の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット)は、テストされたモードから使用する適切なイントラ予測モードを選択することができる。イントラ予測モードを決定することの一部として、イントラ予測処理ユニット46は、本開示の技法に従ってMPM候補リストを構築し得る。イントラ予測処理ユニットは、特定のブロック用のイントラ予測モードとして、MPM候補リスト中のイントラ予測モードまたはMPM候補リスト中にない非最確モードのいずれかを選択してよい。
【０１１９】
イントラ予測処理ユニット46は、たとえば、様々なテストされたイントラ予測モードに対してレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中から最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された、符号化されていない元のブロックとの間のひずみ(すなわち、エラー)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックにとって最良のレートひずみ値を示すのかを決定するために、様々な符号化ブロックに対するひずみおよびレートから比を計算し得る。
【０１２０】
いずれのケースでも、ブロック用のイントラ予測モードを選択した後、イントラ予測処理ユニット46は、ブロック用の選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化することができる。イントラ予測モードを使用して符号化されるブロックについて、エントロピー符号化ユニット56は、たとえば、実際のイントラ予測モードが、MPM候補リスト中のモードであるかどうかを示す情報を符号化するための1つまたは複数のコンテキストを選択してよい。
【０１２１】
予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して現在ビデオブロック用の予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって、残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTUに含められ、変換処理ユニット52に適用される場合がある。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域にコンバートすることができる。
【０１２２】
変換処理ユニット52は、得られた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実施し得る。代替として、エントロピー符号化ユニット56が走査を実施する場合がある。
【０１２３】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分化エントロピー(PIPE)コーディング、または別のエントロピー符号化の方法もしくは技法を実施することができる。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30に送信されるか、または後の送信もしくはビデオデコーダ30による取出しのためにアーカイブされる場合がある。エントロピー符号化ユニット56は、コーディングされている現在ビデオスライスの動きベクトルおよび他のシンタックス要素をエントロピー符号化することもできる。
【０１２４】
逆量子化ユニット58および逆変換処理ユニット60は、それぞれ、逆量子化および逆変換を適用して、他のビデオブロックの予測のための参照ブロックとして後で使用するための、ピクセル領域における残差ブロックを再構築する。動き補償ユニット44および/またはイントラBCユニット48は、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することにより、参照ブロックを計算することができる。動き補償ユニット44および/またはイントラBCユニット48は、再構築残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算することもできる。
【０１２５】
加算器62は、DPB64に記憶するための参照ブロックを生成するために、再構築された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するために、参照ブロックとしてイントラBCユニット48、動き推定ユニット42、および動き補償ユニット44によって使用される場合がある。
【０１２６】
ビデオエンコーダ20は、ビデオデータの現在ブロックがイントラ予測モードでコーディングされていると判断し、現在ブロック用のMPM候補リストに第1の隣接ブロックのイントラ予測モードを追加し、MPM候補リストに第2の隣接ブロック用のイントラ予測モードを追加し、最確モードリストに第3の隣接ブロック用のイントラ予測モードを追加し、ビデオデータの現在ブロックを符号化するのに使われる実際のイントラ予測モードを識別する情報を生成するように構成される、ビデオデータを符号化するためのデバイスの例を表す。第1の隣接ブロック、第2の隣接ブロック、および第3の隣接ブロックは、各々、左ブロック、上ブロック、左下ブロック、右上ブロック、または左上ブロックのうちの1つに対応し得る。
【０１２７】
ビデオエンコーダ20は、隣接ブロックのグループを固定順序で検査して、隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断し得る。ビデオエンコーダ20は、隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、MPM候補リスト中に固定順序で追加し得る。ビデオエンコーダ20は、隣接ブロックのグループの1つまたは複数の隣接ブロックを検査して、1つまたは複数の隣接ブロックがイントラコーディングされたかどうかを判断し得る。隣接ブロックのグループ中の隣接ブロックの最大数は、MPM候補リスト用のエントリの最大数未満であり得る。ビデオエンコーダ20は、1つまたは複数の隣接ブロックを符号化するのに使われるイントラ予測モードをMPM候補リスト中に追加し得る。
【０１２８】
ビデオエンコーダ20は、隣接ブロックのグループの1つまたは複数の隣接ブロックを検査して、1つまたは複数の隣接ブロックがイントラコーディングされたかどうかを判断し、隣接ブロックのグループからの2つの隣接ブロックが、同じイントラ予測モードを使用してコーディングされていることに応答して、同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めてよい。同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオエンコーダ20は、同じイントラ予測モードの第2のインスタンスをMPM候補リストに追加しなくてよい。同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオエンコーダ20は、同じイントラ予測モードのインスタンスをMPM候補リストから削除してよい。
【０１２９】
ビデオエンコーダ20は、隣接ブロックのグループの1つまたは複数の隣接ブロックを検査して、MPM候補リストに追加するべきイントラ予測モードを識別し得る。隣接ブロックのグループの1つまたは複数の隣接ブロックを検査して、MPM候補リストに追加するべきイントラ予測モードを識別するために、ビデオエンコーダ20は、1つまたは複数の隣接ブロックが、イントラ予測モードを使用してコーディングされたかどうかを判断してよい。隣接ブロックが、イントラ予測モードを使用してコーディングされているとき、ビデオエンコーダ20は、隣接ブロックを符号化するのに使われるイントラ予測モードをMPM候補リストに追加してよい。
【０１３０】
ビデオエンコーダ20は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが水平ブロックそれとも垂直ブロックであるか、または隣接ブロックのグループの隣接ブロックを符号化するのに使われる予測モードのうちの1つまたは複数に基づいて、隣接ブロックのグループ中の隣接ブロックの数を判断し得る。ビデオエンコーダ20は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが垂直方向に配向しているか、それとも水平方向に配向しているか、ネイバーブロックのサイズ、ネイバーブロックが正方形ブロックであるか、それとも矩形ブロックであるか、またはネイバーブロックが垂直方向に配向しているか、それとも水平方向に配向しているかのうちの1つまたは複数に基づいて、隣接ブロックのグループ中の隣接ブロックのロケーションを判断し得る。ビデオエンコーダ20は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが垂直方向に配向しているか、それとも水平方向に配向しているか、ネイバーブロックのサイズ、ネイバーブロックが正方形ブロックであるか、それとも矩形ブロックであるか、またはネイバーブロックが垂直方向に配向しているか、それとも水平方向に配向しているかのうちの1つまたは複数に基づいて、隣接ブロックのグループ中の隣接ブロックを検査する順序を決定し得る。
【０１３１】
隣接ブロックのグループは、AMVPモードまたはマージモードの一方または両方のために使われる隣接ブロックの同じグループであってよい。隣接ブロックのグループの1つまたは複数の隣接ブロックを検査して、MPM候補リストに追加するべきイントラ予測モードを識別するために、ビデオエンコーダ20は、AMVPモードまたはマージモードの一方または両方のための隣接ブロックを検査するのに使われる同じ順序を使用して、1つまたは複数の隣接ブロックを検査すればよい。
【０１３２】
MPM候補リストに追加された、1つまたは複数の隣接ブロックからのイントラ予測モードの数が閾数を超えることに応答して、ビデオエンコーダ20は、隣接ブロックのグループの1つまたは複数の隣接ブロックをもう一度検査するという検査を終了させてよい。閾数は、隣接ブロックのグループ中の隣接ブロックの数未満であってよい。閾数は、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であってよい。
【０１３３】
ビデオエンコーダ20は、1つまたは複数の導出イントラ予測モードをMPM候補リストに追加してよい。ビデオエンコーダ20は、隣接ブロックのイントラ予測モードに基づいて、1つまたは複数の導出イントラ予測モードを決定し得る。隣接ブロックのイントラ予測モードに基づいて、1つまたは複数の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、隣接ブロックのイントラ予測モードのモードインデックスにオフセットを加えたものをもつイントラ予測モードを、MPM候補リストに追加してよい。
【０１３４】
隣接ブロックのイントラ予測モードに基づいて、1つまたは複数の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、第1の導出イントラ予測モードを決定するために第1の隣接ブロックのイントラ予測モードに第1のオフセットを加え、第2の導出イントラ予測モードを決定するために第1の隣接ブロックのイントラ予測モードに第2のオフセットを加え、第1の導出イントラ予測モードおよび第2の導出イントラ予測モードをMPM候補リストに追加すればよい。隣接ブロックのイントラ予測モードに基づいて、1つまたは複数の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、第1の導出イントラ予測モードを決定するために第1の隣接ブロックのイントラ予測モードに第1のオフセットを加え、第2の導出イントラ予測モードを決定するために第2の隣接ブロックのイントラ予測モードに第2のオフセットを加え、第1の導出イントラ予測モードおよび第2の導出イントラ予測モードをMPM候補リストに追加すればよい。
【０１３５】
ビデオエンコーダ20は、現在ブロックの特性または隣接ブロックの特性の一方または両方に基づいてオフセットを決定し得る。隣接ブロックのイントラ予測モードに基づいて、1つまたは複数の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、隣接ブロックのイントラ予測モードのモードインデックスよりも大きいモードインデックス1をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて、1つまたは複数の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、隣接ブロックのイントラ予測モードのモードインデックスよりも大きいモードインデックス2をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて、1つまたは複数の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、隣接ブロックのイントラ予測モードのモードインデックス未満のモードインデックス1をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて、1つまたは複数の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、隣接ブロックのイントラ予測モードのモードインデックス未満のモードインデックス2をもつイントラ予測モードをMPM候補リストに追加してよい。
【０１３６】
2つの導出イントラ予測モードが同じイントラ予測モードであることに応答して、ビデオエンコーダ20は、導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めてよい。導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオエンコーダ20は、導出イントラ予測モードの第2のインスタンスをMPM候補リストに追加しなくてよい。導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオエンコーダ20は、導出イントラ予測モードのインスタンスをMPM候補リストから削除する場合がある。
【０１３７】
MPM候補リストに追加された導出イントラ予測モードの数が導出イントラ予測モードの閾数を超えることに応答して、ビデオエンコーダ20は、導出イントラ予測モードの追加を終了させてよい。導出イントラ予測モードの閾数に、MPM候補リスト中に含まれるネイバーベースのイントラ予測モードの数を加えたものは、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であり得る。
【０１３８】
ビデオエンコーダ20は、1つまたは複数のデフォルト候補をMPM候補リストに追加し得る。ビデオエンコーダ20は、入手可能なネイバーベースのイントラ予測モードおよび導出イントラ予測モードの数が、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であることに応答して、1つまたは複数のデフォルト候補をMPM候補リストに追加してよい。1つまたは複数のデフォルト候補をMPM候補リストに追加するために、ビデオエンコーダ20は、MPM候補リスト中のイントラ予測モードの数が、MPM候補リスト中に含まれるイントラ予測モードの最大数に等しくなるまで、1つまたは複数のデフォルト候補をMPM候補リストに追加してよい。
【０１３９】
ビデオエンコーダ20は、1つまたは複数のネイバーベースのイントラ予測モードをMPM候補リストに追加し、1つまたは複数のネイバーベースのイントラ予測モードすべてをMPM候補リストに追加した後、1つまたは複数のデフォルトイントラ予測モードをMPM候補リストに追加してよい。1つまたは複数のネイバーベースのイントラ予測モードすべてをMPM候補リストに追加した後、ビデオエンコーダ20は、1つまたは複数のデフォルトイントラ予測モードをMPM候補リストに追加してよい。
【０１４０】
ビデオエンコーダ20は、1つまたは複数のネイバーベースのイントラ予測モードをMPM候補リストに追加し、1つまたは複数のネイバーベースのイントラ予測モードすべてをMPM候補リストに追加した後、1つまたは複数のデフォルトイントラ予測モードをMPM候補リストに追加してよい。1つまたは複数のネイバーベースのイントラ予測モードすべてをMPM候補リストに追加した後、ビデオエンコーダ20は、1つまたは複数の導出イントラ予測モードをMPM候補リストに追加してよい。1つまたは複数のネイバーベースのイントラ予測モードすべてをMPM候補リストに追加した後、ビデオエンコーダ20は、1つまたは複数のデフォルトイントラ予測モードをMPM候補リストに追加してよい。第1の隣接ブロックのイントラ予測モードを現在ブロック用のMPM候補リストに追加した後、ビデオエンコーダ20は、第1の導出された候補をMPM候補リストに追加してよく、第1の導出された候補をMPM候補リストに追加した後、ビデオエンコーダ20は、第2の隣接ブロック用のイントラ予測モードをMPM候補リストに追加してよい。
【０１４１】
いくつかの事例では、ビデオデータの現在ブロックを符号化するのに使われる実際のイントラ予測モードは、MPM候補リストからのイントラ予測モードであってよい。いくつかの事例では、ビデオデータの現在ブロックを符号化するのに使われる実際のイントラ予測モードは、非最確モードであり得る。
【０１４２】
ビデオデータの現在ブロックを符号化するのに使われる実際のイントラ予測モードを識別する情報は、MPM候補リスト中のイントラ予測モードのうちの1つを識別するコンテキストコード化インデックス値であってよく、ビデオエンコーダ20は、本開示に記載されるどの技法またはどの他の技法を使用してコンテキストコード化インデックス値を符号化してもよい。
【０１４３】
ビデオエンコーダ20は、隣接ブロックのグループの3つ以上の隣接ブロックを検査して、現在ブロック用のMPM候補リストに追加するべきイントラ予測モードを識別し、イントラ予測モードを使用して現在ブロックを符号化するように構成される、ビデオデータを符号化するためのデバイスの例も表す。ビデオエンコーダ20は、隣接ブロックのグループを固定順序で検査して、隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断し得る。ビデオエンコーダ20は、隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、MPM候補リストに固定順序で追加し得る。ビデオエンコーダ20は、隣接ブロックのグループの3つ以上の隣接ブロックを検査して、3つ以上の隣接ブロックがイントラコーディングされたかどうかを判断し、3つ以上の隣接ブロックを符号化するのに使われるイントラ予測モードをMPM候補リスト中に追加し得る。隣接ブロックのグループ中の隣接ブロックの最大数は、MPM候補リスト用のエントリの最大数未満である。
【０１４４】
ビデオエンコーダ20は、隣接ブロックのグループの3つ以上の隣接ブロックを検査して、3つ以上の隣接ブロックがイントラコーディングされたかどうかを判断し、隣接ブロックのグループからの2つの隣接ブロックが、同じイントラ予測モードを使用してコーディングされていることに応答して、同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めればよい。同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオエンコーダ20は、同じイントラ予測モードの第2のインスタンスをMPM候補リストに追加しなくてよい。同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオエンコーダ20は、同じイントラ予測モードのインスタンスをMPM候補リストから削除してよい。
【０１４５】
隣接ブロックのグループの3つ以上の隣接ブロックを検査して、MPM候補リストに追加するべきイントラ予測モードを識別するために、ビデオエンコーダ20は、3つ以上の隣接ブロックが、イントラ予測モードを使用してコーディングされたかどうかを判断してよい。隣接ブロックが、イントラ予測モードを使用してコーディングされているとき、ビデオエンコーダ20は、隣接ブロックを符号化するのに使われるイントラ予測モードをMPM候補リストに追加してよい。
【０１４６】
ビデオエンコーダ20は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが水平ブロックそれとも垂直ブロックであるか、または隣接ブロックのグループの隣接ブロックを符号化するのに使われる予測モードのうちの3つ以上に基づいて、隣接ブロックのグループ中の隣接ブロックの数を判断し得る。ビデオエンコーダ20は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが垂直方向に配向しているか、それとも水平方向に配向しているか、ネイバーブロックのサイズ、ネイバーブロックが正方形ブロックであるか、それとも矩形ブロックであるか、またはネイバーブロックが垂直方向に配向しているか、それとも水平方向に配向しているかのうちの3つ以上に基づいて、隣接ブロックのグループ中の隣接ブロックのロケーションを判断し得る。
【０１４７】
ビデオエンコーダ20は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが垂直方向に配向しているか、それとも水平方向に配向しているか、ネイバーブロックのサイズ、ネイバーブロックが正方形ブロックであるか、それとも矩形ブロックであるか、またはネイバーブロックが垂直方向に配向しているか、それとも水平方向に配向しているかのうちの1つまたは複数に基づいて、隣接ブロックのグループ中の隣接ブロックを検査する順序を決定し得る。
【０１４８】
隣接ブロックのグループは、AMVPモードまたはマージモードの一方または両方のために使われる隣接ブロックの同じグループに対応し得る。隣接ブロックのグループの3つ以上の隣接ブロックを検査して、MPM候補リストに追加するべきイントラ予測モードを識別するために、ビデオエンコーダ20は、AMVPモードまたはマージモードの一方または両方のための、隣接ブロックを検査するのに使われる同じ順序を使用して、3つ以上の隣接ブロックを検査すればよい。
【０１４９】
MPM候補リストに追加された、3つ以上の隣接ブロックからのイントラ予測モードの数が閾数を超えることに応答して、ビデオエンコーダ20は、隣接ブロックのグループの3つ以上の隣接ブロックをもう一度検査するという検査を終了させてよい。閾数は、隣接ブロックのグループ中の隣接ブロックの数未満であってよい。閾数は、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であってよい。
【０１５０】
ビデオエンコーダ20は、1つまたは複数の導出イントラ予測モードをMPM候補リストに追加してよい。ビデオエンコーダ20は、隣接ブロックのイントラ予測モードに基づいて、3つ以上の導出イントラ予測モードを決定し得る。隣接ブロックのイントラ予測モードに基づいて、3つ以上の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、隣接ブロックのイントラ予測モードのモードインデックスにオフセットを加えたものをもつイントラ予測モードを、MPM候補リストに追加してよい。ビデオエンコーダ20は、現在ブロックの特性または隣接ブロックの特性の一方または両方に基づいてオフセットを決定し得る。
【０１５１】
隣接ブロックのイントラ予測モードに基づいて、3つ以上の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、隣接ブロックのイントラ予測モードのモードインデックスよりも大きいモードインデックス1をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて、3つ以上の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、隣接ブロックのイントラ予測モードのモードインデックスよりも大きいモードインデックス2をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて、3つ以上の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、隣接ブロックのイントラ予測モードのモードインデックス未満のモードインデックス1をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて、3つ以上の導出イントラ予測モードを決定するために、ビデオエンコーダ20は、隣接ブロックのイントラ予測モードのモードインデックス未満のモードインデックス2をもつイントラ予測モードをMPM候補リストに追加してよい。
【０１５２】
2つの導出イントラ予測モードが同じイントラ予測モードであることに応答して、ビデオエンコーダ20は、導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めてよい。導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオエンコーダ20は、導出イントラ予測モードの第2のインスタンスをMPM候補リストに追加しなくてよい。導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオエンコーダ20は、導出イントラ予測モードのインスタンスをMPM候補リストから削除する場合がある。
【０１５３】
MPM候補リストに追加された導出イントラ予測モードの数が導出イントラ予測モードの閾数を超えることに応答して、ビデオエンコーダ20は、導出イントラ予測モードの追加を終了させてよい。導出イントラ予測モードの閾数に、MPM候補リスト中に含まれるネイバーベースのイントラ予測モードの数を加えたものは、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であり得る。
【０１５４】
ビデオエンコーダ20は、1つまたは複数のデフォルト候補をMPM候補リストに追加し得る。ビデオエンコーダ20は、入手可能なネイバーベースのイントラ予測モードおよび導出イントラ予測モードの数が、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であることに応答して、1つまたは複数のデフォルト候補をMPM候補リストに追加してよい。1つまたは複数のデフォルト候補をMPM候補リストに追加するために、ビデオエンコーダ20は、MPM候補リスト中のイントラ予測モードの数が、MPM候補リスト中に含まれるイントラ予測モードの最大数に等しくなるまで、1つまたは複数のデフォルト候補をMPM候補リストに追加してよい。
【０１５５】
ビデオエンコーダ20は、ビデオデータの現在ブロックを符号化するのに使われる実際のイントラ予測モードを識別する情報を生成し得る。ビデオデータの現在ブロックを符号化するのに使われる実際のイントラ予測モードは、最確モードであってもよく、非最確モードであってもよい。実際のイントラ予測モードが最確モードである場合、ビデオデータの現在ブロックを符号化するのに使われる実際のイントラ予測モードを識別する情報は、MPM候補リスト中のイントラ予測モードのうちの1つを識別するコンテキストコード化インデックス値を含んでよく、ビデオエンコーダ20は、本開示に記載されるどの技法を使用しても、または他の技法を使用して、コンテキストコード化インデックス値を符号化することができる。
【０１５６】
ビデオエンコーダ20は、ビデオデータを符号化するためのデバイスであって、現在ブロック用のMPM候補リストを生成し、現在ブロックを符号化するための実際のイントラ予測モードを決定し、実際のイントラ予測モードが、最確リスト中に含まれるイントラ予測モードであることに応答して、MPM候補リスト中に含まれる実際のイントラ予測モードを識別するインデックス値をコンテキスト符号化するように構成されるデバイスの例も表す。MPM候補リスト中に含まれる実際のイントラ予測モードを識別するインデックス値をコンテキスト符号化するために、ビデオエンコーダ20は、実際のイントラ予測モードに関連付けられたインデックス値を判断し、バイナリ化コードワードを判断するための実際のイントラ予測モードに関連付けられたインデックス値をバイナリ化し、バイナリ化インデックス値をビンにマップし、バイナリ化コードワードに関連付けられた各ビンをコンテキスト符号化すればよい。
【０１５７】
バイナリ化コードワードは、単項コード化コードワード、短縮単項コードワード、固定バイナリコードワード、ゴロムコード化コードワード、指数ゴロムコード化コードワード、またはライスコード化コードワードのうちの1つであってよい。バイナリ化コードワードの各ビンは、MPM候補リスト中の最確モードのうちの1つに対応し得る。
【０１５８】
ビデオエンコーダ20は、各ビンに対応する最確モードの分類に基づいて、各ビンについてのコンテキストを判断することができる。第1の最確モードに対応する第1のビンについて、ビデオエンコーダ20は、第1の最確モードが水平モードであるかどうか、第1の最確モードが垂直モードであるかどうか、第1の最確モードが対角線モードであるかどうか、または第1の最確モードが非角度モードであるかどうかに基づいて、第1のビンについてのコンテキストを判断し得る。コンテキストは、非イントラ予測関連シンタックス要素を復号するためにさらに使うことができる。現在ブロック用のMPM候補リストは、本開示に記載されるどの技法または他の技法を使用しても判断され得る。
【０１５９】
図6は、本開示に記載される技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。図6の例では、ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、およびDPB92を含む。予測処理ユニット81は、イントラBCユニット85、動き補償ユニット82、イントラ予測処理ユニット84を含む。ビデオデコーダ30は、いくつかの例では、図5からのビデオエンコーダ20に関して記載された符号化パスとは全体的に逆の復号パスを実施することができる。
【０１６０】
様々な例では、ビデオデコーダ30のユニットは、本開示の技法を実施するように仕事を課せられる場合がある。また、いくつかの例では、本開示の技法は、ビデオデコーダ30のユニットのうちの1つまたは複数の間で分割される場合がある。たとえば、イントラBCユニット85は、本開示の技法を単独で実施するか、または、動き補償ユニット82、イントラ予測処理ユニット84、およびエントロピー復号ユニット80などの、ビデオデコーダ30の他のユニットとの組合せで実施することができる。いくつかの例では、ビデオデコーダ30はイントラBCユニット85を含まない場合があり、イントラBCユニット85の機能性は、動き補償ユニット82などの予測処理ユニット81の他の構成要素によって実施される場合がある。
【０１６１】
ビデオデータメモリ79は、ビデオデコーダ30の構成要素によって復号されるべき符号化ビデオビットストリームなどのビデオデータを記憶することができる。ビデオデータメモリ79内に記憶されたビデオデータは、たとえば、記憶デバイス32から、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得されてよい。ビデオデータメモリ79は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成することができる。DPB92は、(たとえば、イントラ予測コーディングモードまたはインター予測コーディングモードとも呼ばれる、イントラコーディングモードまたはインターコーディングモードで)ビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する。ビデオデータメモリ79およびDPB92は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成される場合がある。ビデオデータメモリ79およびDPB92は、同じメモリデバイスまたは別個のメモリデバイスによって提供される場合がある。様々な例では、ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１６２】
復号プロセスの間に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、ビットストリームをエントロピー復号して、量子化係数、動きベクトル、および他のシンタックス要素を生成する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81にフォワードする。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信することができる。
【０１６３】
ビデオスライスがイントラコード化(I)スライスとして、または他のタイプのスライス中のイントラコード化ブロック用にコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モード、および現在フレームまたは現在ピクチャの、前に復号されたブロックからのデータに基づいて、現在ビデオスライスのビデオブロックに対する予測データを生成し得る。イントラ予測処理ユニット84は、イントラ予測を実施するための本開示の技法を実装するように構成される場合がある。より具体的には、イントラ予測処理ユニット84は、本明細書に記載されるMPM候補リスト構築技法に従って、MPM候補リストを生成するように構成され得る。ビデオフレームがインターコード化(すなわち、BまたはP)スライスとしてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックについての予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成される場合がある。ビデオデコーダ30は、DPB92に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、リスト0およびリスト1を構築し得る。
【０１６４】
他の例では、ビデオブロックが本明細書に記載されたイントラBCモードに従ってコーディングされたとき、予測処理ユニット81のイントラBCユニット85は、エントロピー復号ユニット80から受信されたブロックベクトルおよび他のシンタックス要素に基づいて、現在ビデオブロック用の予測ブロックを生成する。予測ブロックは、ビデオエンコーダ20によって規定された現在ビデオブロックと同じピクチャ内の再構築領域の中にあり、DPB92から取り出される場合がある。
【０１６５】
動き補償ユニット82および/またはイントラBCユニット85は、動きベクトルおよび他のシンタックス要素を構文解析することにより、現在ビデオスライスのビデオブロックについての予測情報を特定することができ、予測情報を使用して、復号されている現在ビデオブロック用の予測ブロックを生成する。たとえば、動き補償ユニット82は、受信されたシンタックス要素のうちのいくつかを使用して、現在ビデオスライス内のビデオブロックを復号するために、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数のための構築情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測状態、および他の情報を特定する。
【０１６６】
同様に、イントラBCユニット85は、受信されたシンタックス要素のうちのいくつか、たとえばフラグを使用して、現在ビデオスライス内のビデオブロックを復号するために、イントラBCモード、ピクチャのどのビデオブロックが再構築領域内にあり、DPB92に記憶されるべきかを示す構築情報、スライスのイントラBC予測ビデオブロックごとのブロックベクトル、スライスのイントラBC予測ビデオブロックごとのイントラBC予測状態、および他の情報を使用して、現在ビデオブロックが予測されたと判断することができる。
【０１６７】
動き補償ユニット82は、補間フィルタに基づいて補間を実施することもできる。動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用されたような補間フィルタを使用して、参照ブロックのサブ整数ピクセル用の補間値を計算することができる。このケースでは、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。ビデオデコーダ30は、マージモードおよび/またはAMVPモードでコーディングされたブロックを復号するように構成される場合があり、その場合、予測処理ユニット81は、ビデオエンコーダ20によって組み立てられた同じ候補リストを組み立てるように構成される場合がある。たとえば、予測処理ユニット81は、図6および図7に関して上述された技法を実施することもできる。
【０１６８】
逆量子化ユニット86は、ビットストリーム中で与えられエントロピー復号ユニット80によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、量子化解除(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス内のビデオブロックごとの、ビデオエンコーダ20によって計算された量子化パラメータの使用を含む場合がある。逆変換処理ユニット88は、ピクセル領域内の残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１６９】
動き補償ユニット82またはイントラBCユニット85が、ベクトルまたは他のシンタックス要素に基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82およびイントラBCユニット85によって生成された対応する予測ブロックと加算することにより、復号ビデオブロックを形成する。加算器90は、この加算演算を実施して再構築ビデオブロックを生成する1つまたは複数の構成要素を表す。
【０１７０】
加算器90は、この加算演算を実施する1つまたは複数の構成要素を表す。加算器90とDPB92との間に、ループ内フィルタ(図示せず)が置かれる場合がある。次いで、所与のフレームまたはピクチャ中の復号ビデオブロックは、DPB92内に記憶され、DPB92は、後続の動き補償のために使用される参照ピクチャを記憶する。DPB92、またはDPB92とは別のメモリデバイスはまた、後で図1のディスプレイデバイス34などのディスプレイデバイス上に提示するために、復号されたビデオを記憶し得る。
【０１７１】
ビデオデコーダ30は、ビデオデータの現在ブロックがイントラ予測モードでコーディングされていると判断し、現在ブロック用のMPM候補リストに第1の隣接ブロックのイントラ予測モードを追加し、MPM候補リストに第2の隣接ブロック用のイントラ予測モードを追加し、最確モードリストに第3の隣接ブロック用のイントラ予測モードを追加し、イントラ予測を使用してビデオデータの現在ブロックを復号するように構成される、ビデオデータを復号するためのデバイスの例を表す。第1の隣接ブロック、第2の隣接ブロック、および第3の隣接ブロックは、各々、左ブロック、上ブロック、下ブロック、右上ブロック、または左上ブロックのうちの1つに対応し得る。
【０１７２】
ビデオデコーダ30は、たとえば、隣接ブロックのグループを固定順序で検査して、隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断するように構成され得る。ビデオデコーダ30は、隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、MPM候補リスト中に固定順序で追加し得る。ビデオデコーダ30は、隣接ブロックのグループの1つまたは複数の隣接ブロックを検査して、1つまたは複数の隣接ブロックがイントラコーディングされたかどうかを判断し、1つまたは複数の隣接ブロックを符号化するのに使われるイントラ予測モードをMPM候補リスト中に追加し得る。隣接ブロックのグループ中の隣接ブロックの最大数は、MPM候補リスト用のエントリの最大数未満であり得る。
【０１７３】
ビデオデコーダ30は、たとえば、隣接ブロックのグループの1つまたは複数の隣接ブロックを検査して、1つまたは複数の隣接ブロックがイントラコーディングされたかどうかを判断し、隣接ブロックのグループからの2つの隣接ブロックが、同じイントラ予測モードを使用してコーディングされていることに応答して、同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めてよい。同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオデコーダ30は、同じイントラ予測モードの第2のインスタンスをMPM候補リストに追加しなくてよく、または同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオデコーダ30は、同じイントラ予測モードのインスタンスをMPM候補リストから削除してよい。
【０１７４】
ビデオデコーダ30は、隣接ブロックのグループの1つまたは複数の隣接ブロックを検査して、MPM候補リストに追加するべきイントラ予測モードを識別し得る。隣接ブロックのグループの1つまたは複数の隣接ブロックを検査して、MPM候補リストに追加するべきイントラ予測モードを識別するために、ビデオデコーダ30は、1つまたは複数の隣接ブロックが、イントラ予測モードを使用してコーディングされたかどうかを判断してよい。隣接ブロックが、イントラ予測モードを使用してコーディングされているとき、ビデオデコーダ30は、隣接ブロックを符号化するのに使われるイントラ予測モードをMPM候補リストに追加してよい。
【０１７５】
隣接ブロックのグループ中の隣接ブロックの数を判断するために、ビデオデコーダ30は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが水平ブロックそれとも垂直ブロックであるか、または隣接ブロックのグループの隣接ブロックを符号化するのに使われる予測モードのうちの1つまたは複数に基づいて、隣接ブロックのグループ中の隣接ブロックの数を判断すればよい。ビデオデコーダ30は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが垂直方向に配向しているか、それとも水平方向に配向しているか、ネイバーブロックのサイズ、ネイバーブロックが正方形ブロックであるか、それとも矩形ブロックであるか、またはネイバーブロックが垂直方向に配向しているか、それとも水平方向に配向しているかのうちの1つまたは複数に基づいて、隣接ブロックのグループ中の隣接ブロックのロケーションを判断し得る。ビデオデコーダ30は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが垂直方向に配向しているか、それとも水平方向に配向しているか、ネイバーブロックのサイズ、ネイバーブロックが正方形ブロックであるか、それとも矩形ブロックであるか、またはネイバーブロックが垂直方向に配向しているか、それとも水平方向に配向しているかのうちの1つまたは複数に基づいて、隣接ブロックのグループ中の隣接ブロックを検査する順序を決定し得る。
【０１７６】
隣接ブロックのグループは、AMVPモードまたはマージモードの一方または両方のために使われる隣接ブロックの同じグループに対応し得る。隣接ブロックのグループの1つまたは複数の隣接ブロックを検査して、MPM候補リストに追加するべきイントラ予測モードを識別するために、ビデオデコーダ30は、AMVPモードまたはマージモードの一方または両方のための隣接ブロックを検査するのに使われる同じ順序を使用して、1つまたは複数の隣接ブロックを検査すればよい。
【０１７７】
MPM候補リストに追加された、1つまたは複数の隣接ブロックからのイントラ予測モードの数が閾数を超えることに応答して、ビデオデコーダ30は、隣接ブロックのグループの1つまたは複数の隣接ブロックをもう一度検査するという検査を終了させてよい。閾数は、たとえば、隣接ブロックのグループ中の隣接ブロックの数未満であってよい。閾数は、たとえば、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であってよい。
【０１７８】
ビデオデコーダ30は、1つまたは複数の導出イントラ予測モードをMPM候補リストに追加してよい。ビデオデコーダ30は、隣接ブロックのイントラ予測モードに基づいて、1つまたは複数の導出イントラ予測モードを決定し得る。隣接ブロックのイントラ予測モードに基づいて1つまたは複数の導出イントラ予測モードを決定するために、ビデオデコーダ30は、隣接ブロックのイントラ予測モードのモードインデックスにオフセットを加えたものをもつイントラ予測モードを、MPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて1つまたは複数の導出イントラ予測モードを決定するために、ビデオデコーダ30は、第1の導出イントラ予測モードを決定するために第1の隣接ブロックのイントラ予測モードに第1のオフセットを加え、第2の導出イントラ予測モードを決定するために第1の隣接ブロックのイントラ予測モードに第2のオフセットを加え、第1の導出イントラ予測モードおよび第2の導出イントラ予測モードをMPM候補リストに追加すればよい。隣接ブロックのイントラ予測モードに基づいて1つまたは複数の導出イントラ予測モードを決定するために、ビデオデコーダ30は、第1の導出イントラ予測モードを決定するために第1の隣接ブロックのイントラ予測モードに第1のオフセットを加え、第2の導出イントラ予測モードを決定するために第2の隣接ブロックのイントラ予測モードに第2のオフセットを加え、第1の導出イントラ予測モードおよび第2の導出イントラ予測モードをMPM候補リストに追加すればよい。
【０１７９】
ビデオデコーダ30は、現在ブロックの特性または隣接ブロックの特性の一方または両方に基づいてオフセットを決定し得る。隣接ブロックのイントラ予測モードに基づいて1つまたは複数の導出イントラ予測モードを決定するために、ビデオデコーダ30は、隣接ブロックのイントラ予測モードのモードインデックスよりも大きいモードインデックス1をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて1つまたは複数の導出イントラ予測モードを決定するために、ビデオデコーダ30は、隣接ブロックのイントラ予測モードのモードインデックスよりも大きいモードインデックス2をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて1つまたは複数の導出イントラ予測モードを決定するために、ビデオデコーダ30は、隣接ブロックのイントラ予測モードのモードインデックス未満のモードインデックス1をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて1つまたは複数の導出イントラ予測モードを決定するために、ビデオデコーダ30は、隣接ブロックのイントラ予測モードのモードインデックス未満のモードインデックス2をもつイントラ予測モードをMPM候補リストに追加してよい。
【０１８０】
2つの導出イントラ予測モードが同じイントラ予測モードであることに応答して、ビデオデコーダ30は、導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めてよい。導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオデコーダ30は、導出イントラ予測モードの第2のインスタンスをMPM候補リストに追加しなくてよい。導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオデコーダ30は、導出イントラ予測モードのインスタンスをMPM候補リストから削除する場合がある。
【０１８１】
MPM候補リストに追加された導出イントラ予測モードの数が導出イントラ予測モードの閾数を超えることに応答して、ビデオデコーダ30は、導出イントラ予測モードの追加を終了させてよい。導出イントラ予測モードの閾数に、MPM候補リスト中に含まれるネイバーベースのイントラ予測モードの数を加えたものは、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であり得る。
【０１８２】
ビデオデコーダ30は、1つまたは複数のデフォルト候補をMPM候補リストに追加し得る。ビデオデコーダ30は、入手可能なネイバーベースのイントラ予測モードおよび導出イントラ予測モードの数が、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であることに応答して、1つまたは複数のデフォルト候補をMPM候補リストに追加してよい。1つまたは複数のデフォルト候補をMPM候補リストに追加するために、ビデオデコーダ30は、MPM候補リスト中のイントラ予測モードの数が、MPM候補リスト中に含まれるイントラ予測モードの最大数に等しくなるまで、1つまたは複数のデフォルト候補をMPM候補リストに追加してよい。
【０１８３】
ビデオデコーダ30は、1つまたは複数のネイバーベースのイントラ予測モードをMPM候補リストに追加し、1つまたは複数のネイバーベースのイントラ予測モードすべてをMPM候補リストに追加した後、1つまたは複数のデフォルトイントラ予測モードをMPM候補リストに追加してよい。1つまたは複数のネイバーベースのイントラ予測モードすべてをMPM候補リストに追加した後、ビデオデコーダ30は、1つまたは複数のデフォルトイントラ予測モードをMPM候補リストに追加してよい。
【０１８４】
ビデオデコーダ30は、1つまたは複数のネイバーベースのイントラ予測モードをMPM候補リストに追加し、1つまたは複数のネイバーベースのイントラ予測モードすべてをMPM候補リストに追加した後、1つまたは複数のデフォルトイントラ予測モードをMPM候補リストに追加してよい。1つまたは複数のネイバーベースのイントラ予測モードすべてをMPM候補リストに追加した後、ビデオデコーダ30は、1つまたは複数の導出イントラ予測モードをMPM候補リストに追加してよい。1つまたは複数のネイバーベースのイントラ予測モードすべてをMPM候補リストに追加した後、ビデオデコーダ30は、1つまたは複数のデフォルトイントラ予測モードをMPM候補リストに追加してよい。
【０１８５】
第1の隣接ブロックのイントラ予測モードを現在ブロック用のMPM候補リストに追加した後、ビデオデコーダ30は、第1の導出された候補をMPM候補リストに追加し、第1の導出された候補をMPM候補リストに追加した後、第2の隣接ブロック用のイントラ予測モードをMPM候補リストに追加してよい。
【０１８６】
いくつかの事例では、イントラ予測モードを使用してビデオデータの現在ブロックを復号するために、ビデオデコーダ30は、MPM候補リストからのイントラ予測モードを使えばよい。他の事例では、イントラ予測モードを使用してビデオデータの現在ブロックを復号するために、ビデオデコーダ30は、非最確モードであるイントラ予測モードを使えばよい。いくつかの事例では、ビデオデコーダ30は、MPM候補リスト中のイントラ予測モードのうちの1つを識別するコンテキストコード化インデックス値を受信し、本開示に記載される技法または他の技法を使用して、コンテキストコード化インデックス値を復号し得る。
【０１８７】
ビデオデコーダ30は、隣接ブロックのグループの3つ以上の隣接ブロックを検査して、現在ブロック用のMPM候補リストに追加するべきイントラ予測モードを識別し、イントラ予測モードを使用して現在ブロックを復号するように構成される、ビデオデータを復号するためのデバイスの例も表す。ビデオデコーダ30は、隣接ブロックのグループを固定順序で検査して、隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断し得る。ビデオデコーダ30は、隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、MPM候補リストに固定順序で追加し得る。
【０１８８】
ビデオデコーダ30は、隣接ブロックのグループの3つ以上の隣接ブロックを検査して、3つ以上の隣接ブロックがイントラコーディングされたかどうかを判断し得る。隣接ブロックのグループ中の隣接ブロックの最大数は、MPM候補リスト用のエントリの最大数未満であり得る。ビデオデコーダ30は、3つ以上の隣接ブロックを符号化するのに使われるイントラ予測モードをMPM候補リスト中に追加し得る。
【０１８９】
ビデオデコーダ30は、隣接ブロックのグループの3つ以上の隣接ブロックを検査して、3つ以上の隣接ブロックがイントラコーディングされたかどうかを判断し、隣接ブロックのグループからの2つの隣接ブロックが、同じイントラ予測モードを使用してコーディングされていることに応答して、同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めればよい。同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオデコーダ30は、同じイントラ予測モードの第2のインスタンスをMPM候補リストに追加しなくてよい。同じイントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオデコーダ30は、同じイントラ予測モードのインスタンスをMPM候補リストから削除してよい。
【０１９０】
隣接ブロックのグループの3つ以上の隣接ブロックを検査して、MPM候補リストに追加するべきイントラ予測モードを識別するために、ビデオデコーダ30は、3つ以上の隣接ブロックが、イントラ予測モードを使用してコーディングされたかどうかを判断してよい。隣接ブロックが、イントラ予測モードを使用してコーディングされているとき、ビデオデコーダ30は、隣接ブロックを符号化するのに使われるイントラ予測モードをMPM候補リストに追加してよい。
【０１９１】
ビデオデコーダ30は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが水平ブロックそれとも垂直ブロックであるか、または隣接ブロックのグループの隣接ブロックを符号化するのに使われる予測モードのうちの3つ以上に基づいて、隣接ブロックのグループ中の隣接ブロックの数を判断し得る。ビデオデコーダ30は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが垂直方向に配向しているか、それとも水平方向に配向しているか、ネイバーブロックのサイズ、ネイバーブロックが正方形ブロックであるか、それとも矩形ブロックであるか、またはネイバーブロックが垂直方向に配向しているか、それとも水平方向に配向しているかのうちの3つ以上に基づいて、隣接ブロックのグループ中の隣接ブロックのロケーションを判断し得る。ビデオデコーダ30は、現在ブロックのサイズ、現在ブロックが正方形ブロックそれとも矩形ブロックであるか、現在ブロックが垂直方向に配向しているか、それとも水平方向に配向しているか、ネイバーブロックのサイズ、ネイバーブロックが正方形ブロックであるか、それとも矩形ブロックであるか、またはネイバーブロックが垂直方向に配向しているか、それとも水平方向に配向しているかのうちの1つまたは複数に基づいて、隣接ブロックのグループ中の隣接ブロックを検査する順序を決定し得る。
【０１９２】
隣接ブロックのグループは、AMVPモードまたはマージモードの一方または両方のために使われる隣接ブロックの同じグループであってよい。隣接ブロックのグループの3つ以上の隣接ブロックを検査して、MPM候補リストに追加するべきイントラ予測モードを識別するために、ビデオデコーダ30は、AMVPモードまたはマージモードの一方または両方のための隣接ブロックを検査するのに使われる同じ順序を使用して、3つ以上の隣接ブロックを検査すればよい。
【０１９３】
MPM候補リストに追加された、3つ以上の隣接ブロックからのイントラ予測モードの数が閾数を超えることに応答して、ビデオデコーダ30は、隣接ブロックのグループの3つ以上の隣接ブロックをもう一度検査するという検査を終了させてよい。閾数は、隣接ブロックのグループ中の隣接ブロックの数未満であってよい。閾数は、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であってよい。
【０１９４】
ビデオデコーダ30は、1つまたは複数の導出イントラ予測モードをMPM候補リストに追加してよい。ビデオデコーダ30は、隣接ブロックのイントラ予測モードに基づいて、3つ以上の導出イントラ予測モードを決定し得る。隣接ブロックのイントラ予測モードに基づいて3つ以上の導出イントラ予測モードを決定するために、ビデオデコーダ30は、隣接ブロックのイントラ予測モードのモードインデックスにオフセットを加えたものをもつイントラ予測モードを、MPM候補リストに追加してよい。ビデオデコーダ30は、現在ブロックの特性または隣接ブロックの特性の一方または両方に基づいてオフセットを決定し得る。
【０１９５】
隣接ブロックのイントラ予測モードに基づいて3つ以上の導出イントラ予測モードを決定するために、ビデオデコーダ30は、隣接ブロックのイントラ予測モードのモードインデックスよりも大きいモードインデックス1をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて3つ以上の導出イントラ予測モードを決定するために、ビデオデコーダ30は、隣接ブロックのイントラ予測モードのモードインデックスよりも大きいモードインデックス2をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて3つ以上の導出イントラ予測モードを決定するために、ビデオデコーダ30は、隣接ブロックのイントラ予測モードのモードインデックス未満のモードインデックス1をもつイントラ予測モードをMPM候補リストに追加してよい。隣接ブロックのイントラ予測モードに基づいて3つ以上の導出イントラ予測モードを決定するために、ビデオデコーダ30は、隣接ブロックのイントラ予測モードのモードインデックス未満のモードインデックス2をもつイントラ予測モードをMPM候補リストに追加してよい。
【０１９６】
2つの導出イントラ予測モードが同じイントラ予測モードであることに応答して、ビデオデコーダ30は、導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めてよい。導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオデコーダ30は、導出イントラ予測モードの第2のインスタンスをMPM候補リストに追加しなくてよい。導出イントラ予測モードのただ1つのインスタンスをMPM候補リスト中に含めるために、ビデオデコーダ30は、導出イントラ予測モードのインスタンスをMPM候補リストから削除する場合がある。
【０１９７】
MPM候補リストに追加された導出イントラ予測モードの数が導出イントラ予測モードの閾数を超えることに応答して、ビデオデコーダ30は、導出イントラ予測モードの追加を終了させてよい。導出イントラ予測モードの閾数に、MPM候補リスト中に含まれるネイバーベースのイントラ予測モードの数を加えたものは、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であり得る。
【０１９８】
ビデオデコーダ30は、1つまたは複数のデフォルト候補をMPM候補リストに追加し得る。ビデオデコーダ30は、入手可能なネイバーベースのイントラ予測モードおよび導出イントラ予測モードの数が、MPM候補リスト中に含まれるイントラ予測モードの最大数未満であることに応答して、1つまたは複数のデフォルト候補をMPM候補リストに追加してよい。1つまたは複数のデフォルト候補をMPM候補リストに追加するために、ビデオデコーダ30は、MPM候補リスト中のイントラ予測モードの数が、MPM候補リスト中に含まれるイントラ予測モードの最大数に等しくなるまで、1つまたは複数のデフォルト候補をMPM候補リストに追加してよい。
【０１９９】
いくつかの事例では、イントラ予測モードを使用してビデオデータの現在ブロックを復号するために、ビデオデコーダ30は、非最確モードであるイントラ予測モードを使えばよい。いくつかの事例では、ビデオデコーダ30は、MPM候補リスト中のイントラ予測モードのうちの1つを識別するコンテキストコード化インデックス値を受信し、本開示に記載されるどの技法または異なる技法を使用しても、コンテキストコード化インデックス値を復号し得る。
【０２００】
ビデオデコーダ30は、現在ブロック用のMPM候補リストを生成し、MPM候補リスト中に含まれるイントラ予測モードを識別するコンテキストコード化インデックス値を受信し、コンテキストコード化インデックス値を復号するためのコンテキストを判断し、イントラ予測モードを決定するための判断されたコンテキストを使用して、コンテキストコード化インデックス値をコンテキスト復号するように構成される、ビデオデータを復号するためのデバイスの例も表す。MPM候補リストは、本開示に記載される技法のうちのどれを使用しても、および/または本開示に記載されない他の技法を使用して構築され得る。判断されたコンテキスト値に基づいて、ビデオデコーダ30は、コンテキストコード化インデックス値をビンにマップして、インデックス値を含むとともにMPM候補リストからのイントラ予測モードに対応するバイナリ化コードワードを判断することができる。
【０２０１】
バイナリ化コードワードは、単項コード化コードワード、短縮単項コードワード、固定バイナリコードワード、ゴロムコード化コードワード、および指数ゴロムコード化コードワード、またはゴロムライスコード化コードワードのうちのいずれであってもよい。バイナリ化コードワードの各ビンは、コンテキストコーディングされ得る。バイナリ化コードワードの各ビンは、MPM候補リスト中の最確モードのうちの1つに対応し得る。
【０２０２】
ビデオデコーダ30は、各ビンに対応する最確モードの分類に基づいて、各ビンについてのコンテキストを判断することができる。第1の最確モードに対応する第1のビンについて、ビデオデコーダ30は、第1の最確モードが水平モードであるかどうか、第1の最確モードが垂直モードであるかどうか、第1の最確モードが対角線モードであるかどうか、または第1の最確モードが非角度モードであるかどうかに基づいて、第1のビンについてのコンテキストを判断し得る。コンテキストは、非イントラ予測関連シンタックス要素を復号するためにさらに使うことができる。
【０２０３】
図7Aおよび図7Bは、ビンnにおけるCABACプロセスの例を示す。図7Aの例100では、ビンnにおいて、ビン2における範囲は、特定のコンテキスト状態(σ)が与えられると、LPS(pσ)の確率によって与えられるRangeMPSおよびRangeLPSを含む。例100は、ビンnの値がMPSに等しいときの、ビンn+1における範囲の更新を示す。この例では、低(low)は同じままであるが、ビンn+1における範囲の値は、ビンnにおけるRangeMPSの値まで低減される。図7Bの例102は、ビンnの値がMPSに等しくない(すなわち、LPSに等しい)ときの、ビンn+1における範囲の更新を示す。この例では、低(low)は、ビンnにおけるRangeLPSのより低い範囲値まで動かされる。さらに、ビンn+1における範囲の値は、ビンnにおけるRangeLPSの値まで低減される。
【０２０４】
HEVCビデオコーディングプロセスの一例では、範囲は9ビットで表され、低(low)は10ビットで表される。範囲および低(low)の値を十分な精度で維持するための再正規化プロセスがある。再正規化は、範囲が256未満であるときはいつでも起こる。したがって、範囲は、再正規化の後は常に256以上である。範囲および低(low)の値に依存して、BACは、ビットストリームに、「0」、もしくは「1」を出力し、または将来の出力に備えるために、内部変数(BO:未解決ビットと呼ばれる)を更新する。図8は、範囲に依存するBAC出力の例を示す。たとえば、範囲および低(low)が特定の閾(たとえば、512)を上回るとき、「1」がビットストリームに出力される。範囲および低(low)が特定の閾(たとえば、512)を下回るとき、「0」がビットストリームに出力される。範囲およびより低(lower)がいくつかの閾の間であるとき、ビットストリームには何も出力されない。そうではなく、BO値が増分され、次のビンが符号化される。
【０２０５】
H.264/AVCのCABACコンテキストモデルでは、およびHEVCのいくつかの例では、128個の状態がある。0〜63であってよい64個の可能LPS確率(状態σによって記される)がある。各MPSは、ゼロまたは1であり得る。したがって、128個の状態は、64個の状態確率かけるMPSについての2つの可能値(0または1)である。したがって、状態は、7ビットでインデックス付けられ得る。
【０２０６】
LPS範囲(rangeLPSσ)を導出する計算を削減するために、すべてのケースについての結果が、あらかじめ算出され、H.264/AVCにおける、およびHEVC用のいくつかの提案におけるルックアップテーブル中に近似として記憶される。したがって、LPS範囲は、単純なテーブルルックアップを使うことによって、いかなる乗算も用いずに取得され得る。乗算を避けることは、いくつかのデバイスまたはアプリケーションにとって重要な場合があり、というのは、この演算は、多くのハードウェアアーキテクチャにおいて多大な待ち時間を引き起こし得るからである。
【０２０７】
4列のあらかじめ算出されたLPS範囲テーブルが、乗算の代わりに使われ得る。範囲は、4つのセグメントに分割される。セグメントインデックスが、質問(range>>6)&3によって導出され得る。実際には、セグメントインデックスは、実際の範囲からビットをシフトし、除去することによって導出される。以下のTable 1(表2)は、可能範囲と、それらの対応するインデックスとを示す。
【０２０８】
【表２】
2019515580.tif 000004
【０２０９】
LPS範囲テーブルは、したがって、64個のエントリ(各確率状態について1つ)かける4(各範囲インデックスについて1つ)を有する。各エントリは、RangeLPS、つまり、範囲を乗算する値かけるLPS確率である。このテーブルの一部の例を、以下のTable 2(表3)に示す。Table 2(表3)は、確率状態9〜12を示す。HEVCのための1つの提案では、確率状態は、0〜63に渡り得る。
【０２１０】
【表３】
2019515580.tif 000005
【０２１１】
各セグメント(すなわち、範囲値)中で、各確率状態σのLPS範囲はあらかじめ定義される。言い換えると、確率状態σのLPS範囲は、4つの値(すなわち、各範囲インデックス用に1つの値)に量子化される。所与の点において使われる特定のLPS範囲は、どのセグメントに範囲が属すかに依存する。テーブル中で使われる可能LPS範囲の数は、テーブル列の数(すなわち、可能LPS範囲値の数)とLPS範囲精度との間のトレードオフである。概して、列が多いほど、LPS範囲値の量子化誤差は小さくなるが、テーブルを記憶するための、より多くのメモリの必要性も増す。列が少ないと量子化誤差が増大するが、テーブルを記憶するのに必要とされるメモリも低減する。
【０２１２】
上述したように、各LPS確率状態は、対応する確率を有する。各状態についての確率は、次のように導出される。
pσ=αpσ-1
上式で、状態σは0〜63である。定数αは、各コンテキスト状態の間の確率変化の量を表す。一例では、α=0.9493であり、または、より厳密には、α=(0.01875/0.5)1/63である。状態σ=0における確率は、0.5(すなわち、p0=1/2)に等しい。つまり、コンテキスト状態0において、LPSおよびMPSは、同程度の確率である。各継続状態における確率は、前の状態をαで乗算することによって導出される。したがって、LPSがコンテキスト状態α=1において起こる確率は、p0*0.9493(0.5*0.9493=.47465)である。したがって、状態αのインデックスが増大すると、LPSが起こる確率が下がる。
【０２１３】
CABACは、確率状態が信号統計(すなわち、前にコーディングされたビンの値)に従うために更新されるので、適応的である。更新プロセスは、次の通りである。所与の確率状態について、更新は、状態インデックスと、LPSまたはMPSのいずれかとして識別された符号化シンボルの値とに依存する。更新プロセスの結果、新規確率状態が導出され、これは、潜在的に修正されたLPS確率推定値と、必要な場合は、修正されたMPS値とからなる。
【０２１４】
ビン値がMPSに等しい場合、所与の状態インデックスは1だけ増分され得る。これは、MPSが、LPS確率がすでにその最小にある(または等価には、最大MPS確率に達している)状態インデックス62において起こるときを除いて、すべての状態に当てはまる。この場合、状態インデックス62は、LPSが見つかるか、または最終ビン値が符号化される(最終ビン値の特殊ケースについては、状態63が使われる)まで、固定されたままである。LPSが起こると、状態インデックスは、以下の式に示すように、状態インデックスを特定の量だけ減分することによって変えられる。この規則は、概して、以下を例外として、LPSの各出現に該当する。同程度の確率があるケースに対応するインデックスσ=0の状態において、LPSが符号化されていると仮定すると、状態インデックスは固定されたままであるが、MPS値は、LPSおよびMPSの値が交換されるようにトグルされる。すべての他のケースでは、どのシンボルが符号化されていても、MPS値は変えられることはない。LPS確率についての遷移規則の導出は、所与のLPS確率poldと、その更新された相対物pnewとの間の以下の関係に基づく。
pnew=max(αpold,p62) MPSが起こる場合
pnew=(1-α)+αpold LPSが起こる場合
【０２１５】
CABACにおける確率推定プロセスの現実的な実装形態に関して、すべての遷移規則は、6ビットの符号なし整数値の63個のエントリを各々が有する、最大で2つのテーブルによって実現され得ることに留意することが重要である。いくつかの例では、単一テーブルTransIdxLPSで状態遷移が決定されてよく、このテーブルは、所与の状態インデックスσについて、LPSが観察されているケースにおける新たな更新された状態インデックスTransIdxLPS[σ]を決定する。固定値1による、状態インデックスの単純な(飽和した)増分によって、MPS駆動遷移が取得されてよく、更新された状態インデックスmin(σ+1,62)が生じる。以下のTable 3(表4)は、部分的TransIdxLPSテーブルの例である。
【０２１６】
【表４】
2019515580.tif 000006
【０２１７】
前のBAC手法(たとえば、H.264/AVCにおいて使われるBAC手法)に伴う1つの問題は、テーブルRangeLPSおよびTransIdxLPSが、低解像度ビデオ(すなわち、共通中間フォーマット(CIF)およびクオーターCIF(QCIF)ビデオ)用に調整されることである。現在では、大量のビデオコンテンツが高精細(HD)であり、場合によっては、HDよりも大きい。HDであるか、またはHD解像度よりも大きいビデオコンテンツは、H.264/AVCを開発するのに使われた、10年もののQCIFシーケンスとは異なる統計値を有する。
【０２１８】
したがって、H.264/AVCからのテーブルRangeLPSおよびTransIdxLPSは、状態の間で、速すぎるような適応を引き起こす場合がある。つまり、特にLPSが起こるときの、確率状態の間の遷移は、HDビデオのより滑らかな、より高解像度のコンテンツにとっては大きすぎる場合がある。したがって、従来技術に従って使われる確率モデルは、HDおよびエクストラHDコンテンツにとって正確でない。さらに、HDビデオコンテンツが、より大きい範囲のピクセル値を含むとき、H.264/AVCテーブルは、HDコンテンツに存在し得る、より極端な値を考慮するための十分なエントリを含まない。
【０２１９】
したがって、RangeLPSおよびTransIdxLPSテーブルは、この新規コンテンツの特性を記載するように修正される必要がある。これは、BACが少なくとも2つの側面において異なるべきであることも含意する。1つの違いは、BACプロセスが、より遅い適応プロセスを可能にするテーブルを使うべきであることである。別の違いは、BACプロセスが、より極端なケース(すなわち、傾斜確率)を記載するべきであることである。
【０２２０】
現在のRangeLPSおよびTransIdxLPSテーブルは、単により多くの確率状態および範囲を含めることによって、これらの目標を達成するように修正され得る。ただし、この解決は、テーブルのサイズのかなりの増大を招く。より遅い適応が、現在使われているパラメータα(たとえば、α=0.9493)よりも1に近いパラメータαを使うことによって達成され得る。ただし、より大きい値のαを使うと、確率は、よりゆっくりと0に向かい、したがって、より多くの状態が必要とされる。さらに、より遅い適応を達成するために、最も低い可能確率が、現在使われている最も低い確率よりもはるかに低ければ有益であり得る。したがって、その非常に低い確率値に達するために、一層より多くの状態が必要とされ得る。
【０２２１】
上記の問題に鑑みて、本開示は、テーブルサイズ(たとえば、RangeLPSおよびTransIdxLPSテーブル)を現実的なレベルに保ったまま、より遅い適応およびより傾斜した確率を遂げるように、BACを修正するための技法を提案する。言い換えると、本開示は、比較的小さいサイズのテーブルを使いながら、より遅い適応およびより極端な確率(すなわち、0および1により近い確率)を達成するための技法を記載する。
【０２２２】
本開示に記載される技法は、より多くの確率状態、たとえば、H.264/AVCまたはHEVCを用いるBACにおいて使われるよりも多くの確率状態を使うことができる。この場合、TransIdxLPSテーブルは、より遅い適応およびより低い確率を取得し得る。一例では、本開示に記載される技法は、64個ではなく、128個の確率状態を使うことができる。こうすることにより、テーブルTransIdxLPSは、64個のエントリ(すなわち、64個ではなく、128個のエントリ)だけ増大する。この増大は、より遅い適応およびより低い極小確率を可能にする。一例として、パラメータα=0.9689を設定することによって、連続的確率の間の差がより小さくなる。さらに、最も低い最小確率は0.009まで下がり、これは、H.264/AVCケースの約2分の1(すなわち、0.01875)である。他の数の状態およびα値も可能であるが、概して、状態の数は増大されてよく、αの値は、α=0.9493のH.264/AVCケースよりも1に近くなり得る。
【０２２３】
HDまたはエクストラHDコーディングを改善するために修正されてもよい別のパラメータは、パラメータp0である。p0の値は概して、LPSについての最大確率を示す。この可能性を検討する理由は、より低いp0を有することは、極小確率も低下することを意味するからである。p0の値は、従来のBACプロセスでは0.5に設定される。本開示は、p0についての他の値を可能にすることを提案する。0.5よりも低い他の値のp0を有することは、MPS/LPSスワップが起きたとき、状態0におけるより滑らかな遷移を可能にする。一例では、p0は0.493に等しくてよいが、多くの他の例が使われてもよい。
【０２２４】
一般に、各確率状態は、それ自体のエントリをRangeLPSテーブル中に有する。テーブルサイズは、
#確率状態×#量子化された範囲インデックス
として表すことができ、これは、HEVC向けのいくつかの提案では64×4=256バイトである。状態の数は、本開示の例では増大する(上の例では2倍になる)ので、RangeLPSテーブルサイズは128×4=512バイトであり得る。ただし、RangeLPSテーブルサイズのこの増大を避けるために、本開示は、RangeLPSサイズをインデックス付けするために、確率状態インデックスを、より低いサイズ(すなわち、少数のインデックス)にマップすることをさらに提案する。言い換えると、本開示は、範囲計算プロセスから状態遷移プロセスを切り離すことを提案する。これは、本例では、状態から範囲への計算のためのマップがあることを意味する。1つの特定の例では、本開示は、ビデオエンコーダ20および/またはビデオデコーダ30が、判断された確率状態を示すインデックスを、複数のグループ化インデックスのうちの1つ(たとえば、RangeLPSテーブル用のグループ化インデックス)にマップするように構成されるプロセスを提案し、ここで、グループ化インデックスのうちの少なくとも1つは、複数の確率状態のうちの少なくとも2つを表す。したがって、RangeLPSテーブル(または他のBACテーブル)は、確率状態が存在するよりも少ないインデックスを使い得る。
【０２２５】
本開示の一例では、RangeLPSテーブル用のエントリとして使うための新規インデックスを生成するように、確率状態数が2で除算されてよい。この場合、128個の確率状態が、64個のエントリまで低減される。したがって、RangeLPSテーブルは、H.264/AVCにおいて使われる現在のサイズを保ち得る。したがって、範囲LPSテーブル中のエントリをインデックス付けするのに確率状態σを使うのではなく、本開示に記載される技法は(σ>>1)を利用し、つまり、状態σは、2で除算され、RangeLPSテーブル中への、グループ化インデックスとしての使用のために、より低い整数に丸められる。除算は、RangeLPSテーブルが所与の実装のためにより小さいことが望まれる場合、または状態の数がより大きい(たとえば、256個の確率状態)場合、より大きい数によるものであってよい。このコンテキストでは、各グループ化インデックスは2つの確率状態を表す。本開示の他の例では、グループ化インデックスは、2つ以上の確率状態を表し得る。
【０２２６】
最適エントロピーの観点から、除算または右ビットシフト演算を使うことによる、RangeLPSテーブルのための状態のグループ化は、有益であり得るが、常に最適な技法であるとは限らない場合がある。最適グループ化は、それ以外のものの中でも特に、状態の数およびパラメータαを含むいくつかの要因に依存し得る。最も望ましい(および、おそらく最適な)グループ化は、ビットシフト演算のような簡単な演算ではない可能性がある。概して、グループ化は、確率状態の総数から始まって、低減された数の確率状態(すなわち、グループ化状態)までのテーブルを用いて記述され得る。別の例では、本開示は、この種類のテーブルを使うことを提案する。この手法は、追加メモリという犠牲を払って、(除算または右シフトと比較して)性能を高めることになる。したがって、この例は、メモリと性能との間のトレードオフであり、線形マッピング例(すなわち、除算または右シフト)よりも、より優れた性能を優先する。
【０２２７】
したがって、RangeLPSテーブル中のエントリへの、確率状態の線形マッピングが使われ得るが、非線形マッピングを提供することが望ましい場合がある。たとえば、確率状態は、対数マッピングに従ってマップされ得る。対数マッピングは、いくつかの例では、区分的線形マッピング技法を使用して達成され得る。概して、そのようなマッピングは、あらかじめ計算されたマッピングテーブルなどのテーブルを使用して定義され得る。
【０２２８】
概して、本開示に記載される技法は、いくつかの例では、ビデオデータをエントロピーコーディングするための方法またはデバイスによって実施され得る。方法は、バイナリ算術コーディングプロセスにおいてシンボルの確率状態を判断するステップであって、確率状態は、複数の確率状態のうちの1つを含む、ステップと、判断された確率状態を示すインデックスを、複数のグループ化インデックスのうちの1つにマップするステップであって、グループ化インデックスのうちの少なくとも1つは、複数の確率状態のうちの少なくとも2つを表し、グループ化インデックスの各々は、テーブル中の最も低い確率シンボルについての範囲をポイントする、ステップとを含み得る。
【０２２９】
いくつかの例では、確率状態の数は64よりも大きくてよい。たとえば、確率状態の数は128であってよい。いくつかの例では、RangeLPSテーブル中への入力として使われるグループ化インデックスの数は64である。具体的には、確率状態の数は128であってよく、RangeLPSテーブル中への入力として使われるグループ化インデックスの数は64であってよい。シンボルは、グループ化インデックスに基づいて、たとえば、確率状態インデックスに基づくテーブルに従って、またはインデックスに基づく数学的演算に従ってコーディングされ得る。判断された確率状態は、テーブルに従って、または数学的演算に従って、複数のインデックスのうちの1つにマップする。マッピングは、線形または非線形であってよい。たとえば、マッピングは、2で除算する演算に従って実施され得る。いくつかの例では、マッピングは対数マッピングであってよい。いくつかの例では、区分的線形マッピングが、対数マッピングを定義するのに使われ得る。いくつかの例では、LPSについての最大確率の値p0は0.5未満であってよい。
【０２３０】
本開示に記載される技法は、たとえば、ビデオエンコーダ、ビデオデコーダ、または複合ビデオエンコーダデコーダ(コーデック)内で実施され得る。具体的には、そのような技法は、ビデオエンコーダのエントロピー符号化ユニットおよび/またはビデオデコーダのエントロピー復号ユニットにおいて実施され得る。技法は、たとえば、HEVC規格の態様によるビデオコーディングなどのビデオコーディングをサポートするように構成され得るCABACプロセス内で実施され得る。エントロピー符号化および復号ユニットは、たとえば、ビデオ符号化および/またはビデオ復号プロセスにおいて有用であり得る残差ビデオデータ、動きベクトル情報、シンタックス要素、および他のタイプの情報に関連付けられた量子化された変換係数など、様々なビデオデータのいずれも符号化または復号するために、相互(reciprocal)または逆(inverse)方式でコーディングプロセスを適用することができる。
【０２３１】
図9は、本開示の技法による、CABACを実施するように構成され得る例示的エントロピー符号化ユニット56のブロック図である。シンタックス要素118が、エントロピー符号化ユニット56の中に入力される。シンタックス要素が、すでにバイナリ値シンタックス要素(すなわち、0および1の値のみを有するシンタックス要素)である場合、バイナリ化のステップはスキップされてよい。シンタックス要素が非バイナリ値のシンタックス要素(たとえば、変換係数レベルなど、複数のビットによって表されるシンタックス要素)である場合、非バイナリ値のシンタックス要素はバイナライザ120によってバイナリ化される。バイナライザ120は、非バイナリ値のシンタックス要素の、バイナリ決定のシーケンスへのマッピングを実施する。これらのバイナリ決定はしばしば、「ビン」と呼ばれる。たとえば、変換係数レベルについて、レベルの値は連続ビンに分けることができ、各ビンは、係数レベルの絶対値が何らかの値よりも大きいかどうかを示す。たとえば、ビン0(重要度フラグと呼ばれることもある)は、変換係数レベルの絶対値が0よりも大きいかどうかを示す。ビン1は、変換係数レベルの絶対値が1よりも大きいかどうかを示し、以下同様である。各非バイナリ値のシンタックス要素用に、一意のマッピングが開発されてよい。
【０２３２】
バイナライザ120によって生成された各ビンは、エントロピー符号化ユニット56のバイナリ算術コーディング側に供給される。つまり、非バイナリ値のシンタックス要素の所定のセットについて、各ビンタイプ(たとえば、ビン0)は、次のビンタイプ(たとえば、ビン1)の前にコーディングされる。コーディングは、通常モードまたはバイパスモードのいずれかで実施され得る。バイパスモードでは、バイパスコーディングエンジン126は、固定確率モデルを使用して、たとえば、ゴロムライスまたは指数ゴロムコーディングを使用して、算術コーディングを実施する。バイパスモードは概して、より予測可能なシンタックス要素用に使われる。
【０２３３】
通常モードでのコーディングは、CABACを実施することを伴う。通常モードCABACは、前にコーディングされたビンの値を与えられるとビンの値の確率が予測可能である場合のビン値をコーディングするためである。ビンがLPSである確率は、コンテキストモデラ122によって判断される。コンテキストモデラ122は、ビン値およびコンテキストモデル(たとえば、確率状態σ)を出力する。コンテキストモデルは、一連のビンについての初期コンテキストモデルであってもよく、前にコーディングされたビンのコード化値に基づいて判断されてもよい。上述したように、コンテキストモデラは、前にコーディングされたビンがMPSそれともLPSであったかに基づいて状態を更新することができる。
【０２３４】
コンテキストモデルおよび確率状態σがコンテキストモデラ122によって判断された後、通常コーディングエンジン124は、ビン値に対してBACを実施する。本開示の技法によると、通常コーディングエンジン124は、64よりも多い確率状態σを含むTransIdxLPSテーブル130を使用してBACを実施する。一例では、確率状態の数は128である。TransIdxLPSは、前のビン(ビンn)がLPSであるとき、どの確率状態が次のビン(ビンn+1)用に使われるかを判断するのに使われる。通常コーディングエンジン124は、特定の確率状態σを与えられると、LPSについての範囲値を判断するのに、RangeLPSテーブル128を使用してもよい。ただし、本開示の技法によると、TransIdxLPSテーブル130のすべての可能な確率状態σを使うよりもむしろ、確率状態インデックスσは、RangeLPSテーブル中での使用のために、グループ化インデックスにマップされる。つまり、RangeLPSテーブル128の中への各インデックスは、確率状態の総数のうちの2つ以上を表し得る。確率状態インデックスσの、グループ化インデックスへのマッピングは、線形(たとえば、2で除算することによる)であってもよく、非線形(たとえば、対数関数もしくはマッピングテーブル)であってもよい。
【０２３５】
本開示の他の例では、連続確率状態の間の差は、パラメータαを、0.9493よりも大きくなるように設定することによって、より小さくすることができる。一例では、α=0.9689である。本開示の別の例では、LPSが起こる最も高い確率(p0)は、0.5よりも低くなるように設定され得る。一例では、p0は0.493に等しくてよい。
【０２３６】
本開示の1つまたは複数の技法によると、バイナリ算術コーディングプロセスにおいて確率状態を更新するのに使われる変数(たとえば、ウィンドウサイズ、スケーリング因子(α)、および確率更新速度のうちの1つまたは複数)の同じ値を使うのとは反対に、エントロピー符号化ユニット56は、異なるコンテキストモデルおよび/または異なるシンタックス要素について、変数の異なる値を使用してよい。たとえば、エントロピー符号化ユニット56は、複数のコンテキストモデルのうちのあるコンテキストモデルについて、バイナリ算術コーディングプロセスにおいて確率状態を更新するのに使われる変数の値を決定し、決定された値に基づいて確率状態を更新することができる。
【０２３７】
図5に戻ると、場合によっては、ビデオエンコーダ20のエントロピー符号化ユニット56または別のユニットは、エントロピーコーディングに加えて、他のコーディング機能を実施するように構成され得る。たとえば、エントロピー符号化ユニット56は、CUおよびPUのコード化ブロックパターン(CBP)値を判断するように構成され得る。また、場合によっては、エントロピー符号化ユニット56は、係数のランレングスコーディングを実施し得る。さらに、エントロピー符号化ユニット56、または他の処理ユニットはまた、量子化行列の値など、他のデータをコーディングすることができる。
【０２３８】
上記で説明したように、逆量子化ユニット58および逆変換処理ユニット60は、たとえば、参照ブロックとして後で使用するためのピクセル領域中の残差ブロックを再構築するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、DPB64のフレームのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを算出し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を算出するために、1つまたは複数の補間フィルタを再構築残差ブロックに適用し得る。加算器62は、DPB64に記憶するための再構築ビデオブロックを生成するために、動き補償ユニット44によって生成された動き補償された予測ブロックに再構築残差ブロックを加算する。再構築されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために、参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
【０２３９】
図10は、本開示の技法による、CABACを実施するように構成され得る例示的エントロピー復号ユニット80のブロック図である。図10のエントロピー復号ユニット80は、図5に記載されるエントロピー符号化ユニット56のものとは逆方式で、CABACを実施する。ビットストリーム218からのコード化ビットが、エントロピー復号ユニット80の中に入力される。コード化ビットは、コード化ビットが、バイパスモードそれとも通常モードを使用してエントロピーコーディングされたかに基づいて、コンテキストモデラ220またはバイパスコーディングエンジン222のいずれかに供給される。コード化ビットがバイパスモードでコーディングされた場合、バイパス復号エンジンは、たとえば、バイナリ値のシンタックス要素または非バイナリシンタックス要素のビンを取り出すのに、ゴロムライスまたは指数ゴロム復号を使うことになる。
【０２４０】
コード化ビットが通常モードでコーディングされた場合、コンテキストモデラ220は、コード化ビットについての確率モデルを判断してよく、通常復号エンジン224は、非バイナリ値のシンタックス要素のビン(または、バイナリ値である場合はシンタックス要素自体)を生成するように、コード化ビットを復号してよい。コンテキストモデルおよび確率状態σがコンテキストモデラ220によって判断された後、通常復号エンジン224は、ビン値に対してBACを実施する。本開示の技法によると、通常復号エンジン224は、64よりも多い確率状態σを含むTransIdxLPSテーブル228を使用してBACを実施する。一例では、確率状態の数は128であるが、本開示の技法と整合する、他の数の確率状態が定義されてもよい。TransIdxLPSは、前のビン(ビンn)がLPSであるとき、どの確率状態が次のビン(ビンn+1)用に使われるかを判断するのに使われる。通常復号エンジン224は、特定の確率状態σを与えられると、LPSについての範囲値を判断するのに、RangeLPSテーブル226を使用してもよい。ただし、本開示の技法によると、TransIdxLPSテーブル228のすべての可能な確率状態σを使うよりもむしろ、確率状態インデックスσは、RangeLPSテーブル226中での使用のために、グループ化インデックスにマップされる。つまり、RangeLPSテーブル226の中への各インデックスは、確率状態の総数のうちの2つ以上を表し得る。確率状態インデックスσの、グループ化インデックスへのマッピングは、線形(たとえば、2で除算することによる)であってもよく、非線形(たとえば、対数関数もしくはマッピングテーブル)であってもよい。
【０２４１】
本開示の他の例では、連続確率状態の間の差は、パラメータαを、0.9493よりも大きくなるように設定することによって、より小さくすることができる。一例では、α=0.9689である。本開示の別の例では、LPSが起こる最も高い確率(p0)は、0.5よりも低くなるように設定され得る。一例では、p0は0.493に等しくてよい。
【０２４２】
ビンが通常復号エンジン224によって復号された後、逆方向バイナライザ230が、ビンを非バイナリ値のシンタックス要素の値にコンバートし戻すために、逆方向マッピングを実施し得る。
【０２４３】
図11は、本開示の技法による、MPM候補リストを構築するための技法を示す流れ図である。図11の技法は、汎用ビデオコーダを参照して記載されるようなビデオデコーダ30またはビデオエンコーダ20のいずれかによって実施することができる。ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断した後、ビデオコーダは、図11の技法に従ってMPM候補リストを構築する。図11の例では、ビデオコーダは、2つの隣接ブロックを検討する(302)。2つの隣接ブロックが、イントラ予測モードを使用してコーディングされている場合、ビデオコーダは、第1の隣接ブロックのイントラ予測モードを現在ブロック用のMPM候補リストに追加し、第2の隣接ブロック用のイントラ予測モードをMPM候補リストに追加する。第1または第2の隣接ブロックがイントラ予測モードを使用してコーディングされていない場合、隣接ブロックは、ビデオコーダがMPM候補リストに追加するべき、関連付けられたイントラ予測モードを有していない。2つの隣接ブロックが、同じイントラ予測モードを使用してコーディングされている場合、ビデオコーダは、そのイントラ予測モードの1つのインスタンスをMPM候補リストに追加するだけでよい。
【０２４４】
第1の隣接ブロックおよび第2の隣接ブロックのイントラ予測モードを検討した後、ビデオコーダは、1つまたは複数のデフォルト候補を検討する(304)。デフォルト候補は、たとえば、平面モードおよびDCモードの一方または両方を含み得る。たとえば、デフォルトモードが第1または第2の隣接ブロックのイントラ予測モードだったために、デフォルトモードがMPM候補リスト中にすでに含まれている場合、ビデオコーダは、そのイントラ予測モードの別のインスタンスをMPM候補リストに追加しなくてよい。
【０２４５】
デフォルトイントラ予測モードを検討した後、ビデオコーダは、1つまたは複数の追加隣接ブロック候補を検討する(306)。追加隣接ブロックがイントラ予測モードを使用してコーディングされている場合、ビデオコーダは、追加隣接ブロックのそのイントラ予測モードを、現在ブロック用のMPM候補リストに追加する。追加隣接ブロックがイントラ予測モードを使用してコーディングされていない場合、関連付けられた隣接ブロックは、ビデオコーダがMPM候補リストに追加するべき、関連付けられたイントラ予測モードを有していない。追加近隣候補が、MPM候補リスト中にすでに含まれているイントラ予測モードを使用してコーディングされている場合、ビデオコーダは、そのイントラ予測モードの別のインスタンスをMPM候補リストに追加しなくてよい。
【０２４６】
追加近隣候補すべてを検討した後で、MPM候補リスト中のエントリの数が閾数、すなわちMに等しい場合(308、yes)、ビデオコーダは、MPM候補リスト構築プロセスを終了させる。追加近隣候補すべてを検討した後で、MPM候補リスト中のエントリの数がM未満の場合(308、no)、ビデオコーダは、導出された候補を検討する(310)。導出された候補を検討した後で、MPM候補リスト中のエントリの数が閾数、すなわちMに等しい場合(312、yes)、ビデオコーダは、MPM候補リスト構築プロセスを終了させる。導出された候補を検討した後で、MPM候補リスト中のエントリの数がM未満の場合(312、no)、ビデオコーダは、別の導出された候補を検討する(310)。ビデオコーダは、MPM候補リスト中のエントリの数がMに等しくなるまで、導出された候補を検討する。いくつかの事例では、ビデオコーダは、MPM候補リスト中のエントリの数がM未満の場合であっても、すべての可能な導出された候補を検討した後でMPM候補リスト構築プロセスを終了させてもよい。
【０２４７】
ビデオコーダは、隣接ブロックのイントラ予測モードに基づいて、1つまたは複数の導出イントラ予測モードを決定し得る。たとえば、隣接ブロックのイントラ予測モードに基づいて1つまたは複数の導出イントラ予測モードを決定するために、ビデオコーダは、隣接ブロックのイントラ予測モードのモードインデックスにオフセットを加えたものをもつイントラ予測モードを、MPM候補リストに追加してよい。オフセットは、たとえば、-2、-1、1、2、または何らかの他の値のうちの1つに等しくてよい。
【０２４８】
ネイバーブロック候補を検討するとき、ビデオコーダは、隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断するために、ネイバーブロック候補を固定順序で検討し、隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、MPM候補リスト中に固定順序で追加してよい。ビデオコーダは、たとえば、マージモード用の隣接ブロックを検査するのに使われる同じ順序を使用して、1つまたは複数の隣接ブロックを検査してよい。
【０２４９】
図12は、本開示の技法による、ビデオデータのブロックを符号化するための技法を示す流れ図である。図12の技法について、ビデオエンコーダ20に関して説明するが、図12の技法は、ビデオエンコーダのいかなる特定のタイプにも限定されない。図12の例では、ビデオエンコーダ20は、ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断する(320)。ビデオエンコーダ20は、MPM候補リストを生成する(322)。ビデオエンコーダ20は、たとえば、図11に関して記載される技法または本開示に記載されるどの他の技法を使用してMPM候補リストを生成してもよい。ビデオエンコーダ20は、MPM候補リストを使用してイントラ予測モードを決定する(324)。ビデオエンコーダ20は、イントラ予測モードを使用して、ビデオデータの現在ブロックを符号化する(326)。現在ブロックを符号化するのに使われるイントラ予測モードは、最確モード(すなわち、MPM候補リスト中に含まれるモード)であってもよく、非最確モード(すなわち、MPM候補リスト中に含まれないモード)であってもよい。
【０２５０】
図13は、本開示の技法による、ビデオデータのブロックを復号するための技法を示す流れ図である。図13の技法について、ビデオデコーダ30に関して説明するが、図13の技法は、ビデオデコーダのいかなる特定のタイプにも限定されない。図13の例では、ビデオデコーダ30は、ビデオデータの現在ブロックがイントラ予測モードを使用してコーディングされていると判断する(330)。ビデオデコーダ30は、MPM候補リストを生成する(332)。ビデオデコーダ30は、たとえば、図11に関して記載される技法または本開示に記載されるどの他の技法を使用してMPM候補リストを生成してもよい。ビデオデコーダ30は、MPM候補リストを使用してイントラ予測モードを決定する(334)。ビデオデコーダ30は、イントラ予測モードを使用して、ビデオデータの現在ブロックを復号する(336)。現在ブロックを復号するのに使われるイントラ予測モードは、最確モード(すなわち、MPM候補リスト中に含まれるモード)であってもよく、非最確モード(すなわち、MPM候補リスト中に含まれないモード)であってもよい。
【０２５１】
ビデオデコーダ30は、たとえば、イントラ予測モードが、MPM候補リスト中のモードのうちの1つであるかどうか、またはイントラ予測モードが、MPM候補リスト中にないモードであるかどうかを判断することによって、MPM候補リストを使用してイントラ予測モードを決定することができる。いくつかのコーディングシナリオでは、イントラ予測モードを使用してビデオデータの現在ブロックを復号するために、ビデオデコーダ30は、たとえば、イントラ予測モードが、MPM候補リスト中に含まれるイントラ予測モードでないという指示を受信し、イントラ予測モードを示す追加シンタックスを受信し得る。いくつかのコーディングシナリオでは、イントラ予測モードを使用して、ビデオデータの現在ブロックを復号するために、ビデオデコーダ30は、たとえば、MPM候補リスト中に含まれるイントラ予測モードを識別するコンテキストコード化インデックス値を受信し、コンテキストコード化インデックス値を復号するためのコンテキストを判断し、イントラ予測モードを決定するための判断されたコンテキストを使用して、コンテキストコード化インデックス値をコンテキスト復号し得る。判断されたコンテキスト値に基づいて、ビデオデコーダ30は、インデックス値を含むバイナリ化コードワードを判断するために、コンテキストコード化インデックス値をビンにマップしてよく、ここでコードワードは、MPM候補リストからのイントラ予測モードに対応する。バイナリ化コードワードは、たとえば、短縮単項コードワードであってよい。いくつかの例では、バイナリ化コードワードの各ビンはコンテキストコーディングされる。バイナリ化コードワードの各ビンは、MPM候補リスト中の最確モードのうちの1つに対応し得る。
【０２５２】
ビデオデコーダ30は、各ビンに対応する最確モードの分類に基づいて、各ビンについてのコンテキストを判断することができる。一例として、第1の最確モードに対応する第1のビンについて、ビデオデコーダ30は、第1の最確モードが水平モードであるかどうか、第1の最確モードが垂直モードであるかどうか、または第1の最確モードが非角度モードであるかどうかに基づいて、第1のビンについてのコンテキストを判断し得る。
【０２５３】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体を介して送信されてよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示に記載される技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０２５４】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得るとともにコンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【０２５５】
命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路機構もしくは個別論理回路機構などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書において使用される「プロセッサ」という用語は、上記の構造、または本明細書において説明される技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書において説明される機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で与えられることがあり、または複合コーデックに組み込まれることがある。また、技法は、1つまたは複数の回路または論理要素において完全に実装される可能性がある。
【０２５６】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。開示された技法を実施するように構成されたデバイスの機能的側面を強調するために、様々な構成要素、モジュール、またはユニットが本開示に記載されているが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられてよく、または好適なソフトウェアおよび/もしくはファームウェアとともに、上記で説明したような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０２５７】
様々な例を説明してきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【０２５８】
10  ビデオ符号化および復号システム、システム
12  ソースデバイス
14  宛先デバイス
16  リンク
17  記憶デバイス
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
32  記憶デバイス
34  ディスプレイデバイス
35  区分化ユニット
40  ビデオデータメモリ
41  予測処理ユニット
42  動き推定ユニット
44  動き補償ユニット
46  イントラ予測処理ユニット
48  イントラBCユニット
50  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
58  逆量子化ユニット
60  逆変換処理ユニット
62  加算器
64  復号ピクチャバッファ(DPB)
79  ビデオデータメモリ
80  エントロピー復号ユニット
81  予測処理ユニット
82  動き補償ユニット
84  イントラ予測処理ユニット
85  イントラBCユニット
86  逆量子化ユニット
88  逆変換処理ユニット
90  加算器
92  DPB
120  バイナライザ
122  コンテキストモデラ
124  通常コーディングエンジン
126  バイパスコーディングエンジン
128  RangeLPSテーブル
130  TransIdxLPSテーブル
220  コンテキストモデラ
222  バイパスコーディングエンジン
224  通常復号エンジン
226  RangeLPSテーブル
228  TransIdxLPSテーブル
230  逆方向バイナライザ
【図１】
2019515580.tif 000007
【図２】
2019515580.tif 000008
【図３Ａ】
2019515580.tif 000009
【図３Ｂ】
2019515580.tif 000010
【図３Ｃ】
2019515580.tif 000011
【図３Ｄ】
2019515580.tif 000012
【図３Ｅ】
2019515580.tif 000013
【図４】
2019515580.tif 000014
【図５】
2019515580.tif 000015
【図６】
2019515580.tif 000016
【図７Ａ】
2019515580.tif 000017
【図７Ｂ】
2019515580.tif 000018
【図８】
2019515580.tif 000019
【図９】
2019515580.tif 000020
【図１０】
2019515580.tif 000021
【図１１】
2019515580.tif 000022
【図１２】
2019515580.tif 000023
【図１３】
2019515580.tif 000024
【手続補正書】
【提出日】平成30年11月14日(2018.11.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
ビデオデータの現在ブロックがイントラコーディングされていると判断するステップと、
前記現在ブロックの第1の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第1の隣接ブロックを復号するのに使われるイントラ予測モードを、前記現在ブロック用の最確モード候補リストに追加するステップと、
前記現在ブロックの第2の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第2の隣接ブロックを復号するのに使われるイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加するステップと、
前記現在ブロックの第3の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第3の隣接ブロックを復号するのに使われるイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加するステップと、
前記最確モード候補リストを使用してイントラ予測モードを決定するステップと、
前記イントラ予測モードを使用してビデオデータの前記現在ブロックを復号するステップとを含む方法。
【請求項２】
前記第1の隣接ブロック、前記第2の隣接ブロック、および前記第3の隣接ブロックは、各々、前記現在ブロックに対する、左ネイバーブロック、上ネイバーブロック、左下ネイバーブロック、右上ネイバーブロック、または左上ネイバーブロックのうちの1つに対応する、請求項1に記載の方法。
【請求項３】
前記第1の隣接ブロックおよび前記第2の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加した後、ならびに前記第3の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加する前に、1つまたは複数のデフォルト候補を前記最確モード候補リストに追加するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記1つまたは複数のデフォルトは、平面モードおよびDCモードのうちの一方または両方を含む、請求項3に記載の方法。
【請求項５】
1つまたは複数の導出イントラ予測モードを前記最確モード候補リストに追加するステップをさらに含む、請求項1に記載の方法。
【請求項６】
隣接ブロックのイントラ予測モードに基づいて、前記1つまたは複数の導出イントラ予測モードを決定するステップをさらに含む、請求項5に記載の方法。
【請求項７】
前記1つまたは複数の導出イントラ予測モードは、前記隣接ブロックの前記イントラ予測モードのモードインデックスにオフセットを加えたものをもつイントラ予測モードを含む、請求項6に記載の方法。
【請求項８】
前記オフセットは-2、-1、1、または2のうちの1つに等しい、請求項7に記載の方法。
【請求項９】
2つの導出イントラ予測モードが同じイントラ予測モードであることに応答して、前記2つの導出イントラ予測モードのただ1つのインスタンスを前記最確モード候補リスト中に含めるステップをさらに含む、請求項5に記載の方法。
【請求項１０】
前記イントラ予測モードを決定するステップは、
前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードでないという指示を受信するステップと、
前記イントラ予測モードを示す追加シンタックスを受信するステップとを含む、請求項1に記載の方法。
【請求項１１】
前記イントラ予測モードを決定するステップは、
前記最確モード候補リスト中に含まれるイントラ予測モードを識別するコンテキストコード化インデックス値を受信するステップと、
前記コンテキストコード化インデックス値を復号するためのコンテキストを判断するステップと、
前記判断されたコンテキストを使用して、前記コンテキストコード化インデックス値をコンテキスト復号するステップと、
前記インデックス値に基づいて前記イントラ予測モードを決定するステップとを含む、請求項1に記載の方法。
【請求項１２】
前記判断されたコンテキストに基づいて、前記インデックス値を含むバイナリ化コードワードを判断するために、前記コンテキストコード化インデックス値をビンにマップするステップをさらに含み、前記バイナリ化コードワードは、前記最確モード候補リストからのイントラ予測モードに対応する、請求項11に記載の方法。
【請求項１３】
前記バイナリ化コードワードは短縮単項コードワードを含む、請求項12に記載の方法。
【請求項１４】
前記バイナリ化コードワードの各ビンはコンテキストコーディングされる、請求項12に記載の方法。
【請求項１５】
前記バイナリ化コードワードの各ビンは、前記最確モード候補リスト中の前記最確モードのうちの1つに対応する、請求項12に記載の方法。
【請求項１６】
各ビンに対応する前記最確モードの分類に基づいて、各ビンについての前記コンテキストを判断するステップをさらに含む、請求項12に記載の方法。
【請求項１７】
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードがモードの水平セットに属すかどうか、
前記第1の最確モードがモードの垂直セットに属すかどうか、または
前記第1の最確モードがモードの非角度セットに属すかどうかに基づいて判断するステップをさらに含む、請求項16に記載の方法。
【請求項１８】
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードから水平モードまでの距離、または
前記第1の最確モードから垂直モードまでの距離に基づいて判断するステップをさらに含む、請求項16に記載の方法。
【請求項１９】
隣接ブロックのグループを固定順序で検査して、前記隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断するステップであって、前記隣接ブロックのグループは、前記第1の隣接ブロック、前記第2の隣接ブロック、前記第3の隣接ブロック、および少なくとも1つの他の隣接ブロックを含む、ステップと、
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、前記最確モード候補リストの中に前記固定順序で追加するステップとをさらに含む、請求項1に記載の方法。
【請求項２０】
前記隣接ブロックのグループからの2つの隣接ブロックが、同じイントラ予測モードを使用してコーディングされていることに応答して、前記同じイントラ予測モードのただ1つのインスタンスを前記最確モード候補リスト中に含めるステップをさらに含む、請求項19に記載の方法。
【請求項２１】
前記隣接ブロックのグループの1つまたは複数の隣接ブロックを検査するステップは、マージモード用に隣接ブロックを検査するのに使われる同じ順序を使用して、前記1つまたは複数の隣接ブロックを検査するステップを含む、請求項19に記載の方法。
【請求項２２】
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを前記最確モード候補リストの中に追加したことにより、前記最確モード候補リスト中のイントラ予測モードの数が閾数を超えたことに応答して、前記隣接ブロックのグループの前記1つまたは複数の隣接ブロックをもう一度検査するという前記検査を終了させるステップをさらに含む、請求項19に記載の方法。
【請求項２３】
ビデオデータを復号するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
前記ビデオデータの現在ブロックがイントラコーディングされていると判断し、
前記現在ブロックの第1の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第1の隣接ブロックを復号するのに使われるイントラ予測モードを、前記現在ブロック用の最確モード候補リストに追加し、
前記現在ブロックの第2の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第2の隣接ブロックを復号するのに使われるイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加し、
前記現在ブロックの第3の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第3の隣接ブロックを復号するのに使われるイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加し、
前記最確モード候補リストを使用してイントラ予測モードを決定し、
前記イントラ予測モードを使用して前記現在ブロックを復号するように構成される、デバイス。
【請求項２４】
前記第1の隣接ブロック、前記第2の隣接ブロック、および前記第3の隣接ブロックは、各々、前記現在ブロックに対する、左ネイバーブロック、上ネイバーブロック、左下ネイバーブロック、右上ネイバーブロック、または左上ネイバーブロックのうちの1つに対応する、請求項23に記載のデバイス。
【請求項２５】
前記1つまたは複数のプロセッサは、
前記第1の隣接ブロックおよび前記第2の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加した後、ならびに前記第3の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加する前に、1つまたは複数のデフォルト候補を前記最確モード候補リストに追加するように構成される、請求項23に記載のデバイス。
【請求項２６】
前記1つまたは複数のデフォルト候補は、平面モードおよびDCモードのうちの一方または両方を含む、請求項25に記載のデバイス。
【請求項２７】
前記1つまたは複数のプロセッサは、
1つまたは複数の導出イントラ予測モードを前記最確モード候補リストに追加するように構成される、請求項23に記載のデバイス。
【請求項２８】
前記1つまたは複数のプロセッサは、
隣接ブロックのイントラ予測モードに基づいて、前記1つまたは複数の導出イントラ予測モードを決定するように構成される、請求項27に記載のデバイス。
【請求項２９】
前記1つまたは複数の導出イントラ予測モードは、隣接ブロックの前記イントラ予測モードのモードインデックスにオフセットを加えたものをもつイントラ予測モードを含む、請求項23に記載のデバイス。
【請求項３０】
前記オフセットは-2、-1、1、または2のうちの1つに等しい、請求項29に記載のデバイス。
【請求項３１】
前記1つまたは複数のプロセッサは、
2つの導出イントラ予測モードが同じイントラ予測モードであることに応答して、前記2つの導出イントラ予測モードのただ1つのインスタンスを前記最確モード候補リスト中に含めるように構成される、請求項27に記載のデバイス。
【請求項３２】
前記イントラ予測モードを決定するために、前記1つまたは複数のプロセッサは、
前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードでないという指示を受信し、
前記イントラ予測モードを示す追加シンタックスを受信するように構成される、請求項23に記載のデバイス。
【請求項３３】
前記イントラ予測モードを決定するために、前記1つまたは複数のプロセッサは、
前記最確モード候補リスト中に含まれるイントラ予測モードを識別するコンテキストコード化インデックス値を受信し、
前記コンテキストコード化インデックス値を復号するためのコンテキストを判断し、
前記判断されたコンテキストを使用して、前記コンテキストコード化インデックス値をコンテキスト復号し、
前記インデックス値に基づいて前記イントラ予測モードを決定するように構成される、請求項23に記載のデバイス。
【請求項３４】
前記1つまたは複数のプロセッサは、
前記判断されたコンテキストに基づいて、前記インデックス値を含むバイナリ化コードワードを判断するために、前記コンテキストコード化インデックス値をビンにマップするように構成され、前記バイナリ化コードワードは、前記最確モード候補リストからのイントラ予測モードに対応する、請求項33に記載のデバイス。
【請求項３５】
前記バイナリ化コードワードは短縮単項コードワードを含む、請求項34に記載のデバイス。
【請求項３６】
前記バイナリ化コードワードの各ビンはコンテキストコーディングされる、請求項34に記載のデバイス。
【請求項３７】
前記バイナリ化コードワードの各ビンは、前記最確モード候補リスト中の前記最確モードのうちの1つに対応する、請求項34に記載のデバイス。
【請求項３８】
前記1つまたは複数のプロセッサは、各ビンに対応する前記最確モードの分類に基づいて、各ビンについての前記コンテキストを判断するように構成される、請求項34に記載のデバイス。
【請求項３９】
前記1つまたは複数のプロセッサは、
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードがモードの水平セットに属すかどうか、
前記第1の最確モードがモードの垂直セットに属すかどうか、または
前記第1の最確モードがモードの非角度セットに属すかどうかに基づいて判断するように構成される、請求項38に記載のデバイス。
【請求項４０】
前記1つまたは複数のプロセッサは、
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードから水平モードまでの距離、または
前記第1の最確モードから垂直モードまでの距離に基づいて判断するように構成される、請求項38に記載のデバイス。
【請求項４１】
前記1つまたは複数のプロセッサは、
隣接ブロックのグループを固定順序で検査して、前記隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断することであって、前記隣接ブロックのグループは、前記第1の隣接ブロック、前記第2の隣接ブロック、前記第3の隣接ブロック、および少なくとも1つの他の隣接ブロックを含む、ことと、
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、前記最確モード候補リストの中に前記固定順序で追加することとを行うように構成される、請求項23に記載のデバイス。
【請求項４２】
前記1つまたは複数のプロセッサは、
前記隣接ブロックのグループからの2つの隣接ブロックが、同じイントラ予測モードを使用してコーディングされていることに応答して、前記同じイントラ予測モードのただ1つのインスタンスを前記最確モード候補リスト中に含めるように構成される、請求項41に記載のデバイス。
【請求項４３】
前記隣接ブロックのグループの1つまたは複数の隣接ブロックを検査するために、前記1つまたは複数のプロセッサは、マージモード用に隣接ブロックを検査するのに使われる同じ順序を使用して、前記1つまたは複数の隣接ブロックを検査するように構成される、請求項42に記載のデバイス。
【請求項４４】
前記1つまたは複数のプロセッサは、
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを前記最確モード候補リストの中に追加したことにより、前記最確モード候補リスト中のイントラ予測モードの数が閾数を超えたことに応答して、前記隣接ブロックのグループの前記1つまたは複数の隣接ブロックをもう一度検査するという前記検査を終了させるように構成される、請求項43に記載のデバイス。
【請求項４５】
符号化ビデオデータを受信するように構成された受信機をさらに備えるワイヤレス通信デバイスを備える、請求項23に記載のデバイス。
【請求項４６】
前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記受信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを備える信号を復調するように構成される、請求項45に記載のデバイス。
【請求項４７】
ビデオデータを符号化するための方法であって、
ビデオデータの現在ブロックがイントラコーディングされていると判断するステップと、
前記現在ブロックの第1の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第1の隣接ブロックを符号化するのに使われるイントラ予測モードを、前記現在ブロック用の最確モード候補リストに追加するステップと、
前記現在ブロックの第1の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第2の隣接ブロックを符号化するのに使われるイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加するステップと、
前記現在ブロックの第1の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第3の隣接ブロックを符号化するのに使われるイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加するステップと、
前記最確モード候補リストを使用してイントラ予測モードを決定するステップと、
前記イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するステップとを含む方法。
【請求項４８】
前記第1の隣接ブロックおよび前記第2の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加した後、ならびに前記第3の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加する前に、1つまたは複数のデフォルト候補を前記最確モード候補リストに追加するステップをさらに含む、請求項47に記載の方法。
【請求項４９】
1つまたは複数の導出イントラ予測モードを前記最確モード候補リストに追加するステップをさらに含む、請求項47に記載の方法。
【請求項５０】
イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するステップは、
前記ビデオデータを含むビットストリームに含めるために、前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードでないという指示を生成するステップと、
前記ビデオデータを含む前記ビットストリームに含めるために、前記イントラ予測モードを示す追加シンタックスを生成するステップとを含む、請求項47に記載の方法。
【請求項５１】
イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するステップは、
前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードであると判断するステップと、
前記最確モード候補リスト中に含まれる前記イントラ予測モードに対応するインデックス値を判断するステップと、
前記インデックス値を符号化するためのコンテキストを判断するステップと、
前記判断されたコンテキストを使用して前記インデックス値をコンテキスト符号化するステップとを含む、請求項47に記載の方法。
【請求項５２】
前記判断されたコンテキストに基づいて、前記インデックス値を含むバイナリ化コードワードを判断するために、コンテキストコード化インデックス値をビンにマップするステップをさらに含み、前記バイナリ化コードワードは、前記最確モード候補リストからのイントラ予測モードに対応する、請求項51に記載の方法。
【請求項５３】
前記バイナリ化コードワードは短縮単項コードワードを含む、請求項52に記載の方法。
【請求項５４】
前記バイナリ化コードワードの各ビンはコンテキストコーディングされる、請求項52に記載の方法。
【請求項５５】
前記バイナリ化コードワードの各ビンは、前記最確モード候補リスト中の前記最確モードのうちの1つに対応する、請求項52に記載の方法。
【請求項５６】
各ビンに対応する前記最確モードの分類に基づいて、各ビンについての前記コンテキストを判断するステップをさらに含む、請求項52に記載の方法。
【請求項５７】
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードがモードの水平セットに属すかどうか、
前記第1の最確モードがモードの垂直セットに属すかどうか、または
前記第1の最確モードがモードの非角度セットに属すかどうかに基づいて判断するステップをさらに含む、請求項56に記載の方法。
【請求項５８】
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードから水平モードまでの距離、または
前記第1の最確モードから垂直モードまでの距離に基づいて判断するステップをさらに含む、請求項56に記載の方法。
【請求項５９】
隣接ブロックのグループを固定順序で検査して、前記隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断するステップであって、前記隣接ブロックのグループは、前記第1の隣接ブロック、前記第2の隣接ブロック、前記第3の隣接ブロック、および少なくとも1つの他の隣接ブロックを含む、ステップと、
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、前記最確モード候補リストの中に前記固定順序で追加するステップとをさらに含む、請求項47に記載の方法。
【請求項６０】
ビデオデータを符号化するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
ビデオデータの現在ブロックがイントラコーディングされていると判断し、
前記現在ブロックの第1の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第1の隣接ブロックを復号するのに使われるイントラ予測モードを、前記現在ブロック用の最確モード候補リストに追加し、
前記現在ブロックの第2の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第2の隣接ブロックを符号化するのに使われるイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加し、
前記現在ブロックの第3の隣接ブロックがイントラ予測されたと判断したことに応答して、前記現在ブロックの前記第3の隣接ブロックを符号化するのに使われるイントラ予測モードを、前記現在ブロック用の前記最確モード候補リストに追加し、
前記最確モード候補リストを使用してイントラ予測モードを決定し、
前記イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するように構成される、デバイス。
【請求項６１】
前記1つまたは複数のプロセッサは、
前記第1の隣接ブロックおよび前記第2の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加した後、ならびに前記第3の隣接ブロックの前記イントラ予測モードを前記最確モード候補リストに追加する前に、1つまたは複数のデフォルト候補を前記最確モード候補リストに追加するように構成される、請求項60に記載のデバイス。
【請求項６２】
前記1つまたは複数のプロセッサは、
1つまたは複数の導出イントラ予測モードを前記最確モード候補リストに追加するように構成される、請求項60に記載のデバイス。
【請求項６３】
イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するために、前記1つまたは複数のプロセッサは、
前記ビデオデータを含むビットストリームに含めるために、前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードでないという指示を生成し、
前記ビデオデータを含む前記ビットストリームに含めるために、前記イントラ予測モードを示す追加シンタックスを生成するように構成される、請求項60に記載のデバイス。
【請求項６４】
イントラ予測モードを使用してビデオデータの前記現在ブロックを符号化するために、前記1つまたは複数のプロセッサは、
前記イントラ予測モードが、前記最確モード候補リスト中に含まれるイントラ予測モードであると判断し、
前記最確モード候補リスト中に含まれる前記イントラ予測モードに対応するインデックス値を判断し、
前記インデックス値を符号化するためのコンテキストを判断し、
前記判断されたコンテキストを使用して前記インデックス値をコンテキスト符号化するように構成される、請求項60に記載のデバイス。
【請求項６５】
前記1つまたは複数のプロセッサは、
前記判断されたコンテキストに基づいて、前記インデックス値を含むバイナリ化コードワードを判断するために、コンテキストコード化インデックス値をビンにマップするように構成され、前記バイナリ化コードワードは、前記最確モード候補リストからのイントラ予測モードに対応する、請求項64に記載のデバイス。
【請求項６６】
前記バイナリ化コードワードは短縮単項コードワードを含む、請求項65に記載のデバイス。
【請求項６７】
前記バイナリ化コードワードの各ビンはコンテキストコーディングされる、請求項65に記載のデバイス。
【請求項６８】
前記バイナリ化コードワードの各ビンは、前記最確モード候補リスト中の前記最確モードのうちの1つに対応する、請求項65に記載のデバイス。
【請求項６９】
前記1つまたは複数のプロセッサは、
各ビンに対応する前記最確モードの分類に基づいて、各ビンについての前記コンテキストを判断するように構成される、請求項65に記載のデバイス。
【請求項７０】
前記1つまたは複数のプロセッサは、
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードがモードの水平セットに属すかどうか、
前記第1の最確モードがモードの垂直セットに属すかどうか、または
前記第1の最確モードがモードの非角度セットに属すかどうかに基づいて判断するように構成される、請求項69に記載のデバイス。
【請求項７１】
前記1つまたは複数のプロセッサは、
第1の最確モードに対応する第1のビンについて、前記第1のビンについてのコンテキストを、
前記第1の最確モードから水平モードまでの距離、または
前記第1の最確モードから垂直モードまでの距離に基づいて判断するように構成される、請求項70に記載のデバイス。
【請求項７２】
前記1つまたは複数のプロセッサは、
隣接ブロックのグループを固定順序で検査して、前記隣接ブロックのグループからの隣接ブロックがイントラコーディングされたかどうかを判断することであって、前記隣接ブロックのグループは、前記第1の隣接ブロック、前記第2の隣接ブロック、前記第3の隣接ブロック、および少なくとも1つの他の隣接ブロックを含む、ことと、
前記隣接ブロックのグループからの隣接ブロックを符号化するのに使われるイントラ予測モードを、前記最確モード候補リストの中に前記固定順序で追加することとを行うように構成される、請求項60に記載のデバイス。
【国際調査報告】
2019515580.tif 000025
2019515580.tif 000026
2019515580.tif 000027
2019515580.tif 000028