(57)【要約】  ビデオデータを復号するためのデバイスは、ビットストリーム中の第１のエントロピー符号化データに基づいて、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、第２のエントロピー符号化データそのビットストリームに基づいて、現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、第１のエントロピー符号化データが、第２のエントロピー符号化データの前にビットストリーム中で発生し、ここにおいて、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示し、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、サンプル値に基づいて、現在ブロックを再構築することとを行うように構成される。
2018520562.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築することと
を備える方法。
【請求項２】
前記ラン関係シンタックス要素グループのセットを決定することが、前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、
複数のエントロピーコーディングコンテキストから、前記それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択することと、ここにおいて、前記それぞれのエントロピーコーディングコンテキストの前記選択が、前記パレットインデックスシンタックス要素のいずれにも依存しない、
前記選択されたエントロピーコーディングコンテキストに基づいて、前記それぞれのラン関係シンタックス要素グループのビンをエントロピー復号することと
を備える、請求項１に記載の方法。
【請求項３】
前記エントロピーコーディングコンテキストを選択することが、
基準に基づいて、前記それぞれのラン関係シンタックス要素グループのための前記それぞれのエントロピーコーディングコンテキストを選択すること、ここにおいて、前記基準が、前記それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの前記現在ブロック内の位置、または前記パレットのサイズのうちの一方または両方を備える
を備える、請求項２に記載の方法。
【請求項４】
前記パレットインデックスシンタックス要素のセットを決定することが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
同じパレットインデックスをもつ連続するロケーションの数に基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を備える、請求項１に記載の方法。
【請求項５】
前記パレットインデックスシンタックス要素のセットを決定することが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を備える、請求項１に記載の方法。
【請求項６】
前記パレットインデックスシンタックス要素のセットを決定することが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズと、同じパレットインデックスをもつ連続するロケーションの数とに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を備える、請求項１に記載の方法。
【請求項７】
前記パレットインデックスシンタックス要素のセットのためのインデックス値が、インデックス予測子のリストを使用して予測可能であるか否かを示す、フラグを受信すること
をさらに備える、請求項１に記載の方法。
【請求項８】
前記現在ブロックのために使用される前記ラン関係シンタックス要素グループのセット中で示す最大ラン値を示すシンタックス要素を復号することと、
切捨て値として前記最大ラン値を使用して、ラン値を復号することと
をさらに備える、請求項１に記載の方法。
【請求項９】
第１の最大パレットインデックス値を決定することと、
第２の最大パレットインデックス値を決定することと、ここにおいて、前記第２の最大パレットインデックス値が、ランがランしきい値以上であるときのための最大パレットインデックス値を備え、ここにおいて、前記第２の最大パレットインデックス値が、前記第１の最大パレットインデックス値未満である、
ラン値が前記ランしきい値以上であるとき、前記第２の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、インデックス値をコーディングすることと、
前記ラン値が前記ランしきい値未満であるとき、前記第１の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、前記インデックス値をコーディングすることと
をさらに備える、請求項１に記載の方法。
【請求項１０】
前記１つまたは複数のパレットエントリのための１つまたは複数のインデックス値を復号すること、前記１つまたは複数のインデックス値のうちの少なくとも１つのインデックス値が、前記パレットの第１の領域に属し、前記１つまたは複数のインデックス値のうちの少なくとも１つの他のインデックス値が、前記パレットの第２の領域に属し、ここにおいて、制限に従って、前記第２の領域のインデックス値が連続的な走査順序においてコーディングされ、前記制限が、前記インデックス値が前記連続的な走査順序において前記第２の領域中に現れるべきであることを示す
をさらに備える、請求項１に記載の方法。
【請求項１１】
デバイスが、ワイヤレス通信デバイスを備え、前記デバイスが、符号化ビデオデータを受信するように構成された受信機をさらに備える、請求項１に記載のデバイス。
【請求項１２】
前記ワイヤレス通信デバイスが、電話ハンドセットを備え、ここにおいて、前記受信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを備える信号を復調するように構成される、請求項１１に記載のデバイス。
【請求項１３】
ワイヤレス通信デバイスの受信機において、前記ビデオデータを受信することと、
前記ワイヤレス通信デバイスのメモリ上に、前記ビデオデータを記憶することと、
１つまたは複数のプロセッサによって、前記現在ブロックを再構築するために、前記メモリ中に記憶された前記ビデオデータを処理することと
をさらに備える、請求項１に記載の方法。
【請求項１４】
前記ワイヤレス通信デバイスがセルラー電話を備え、ここにおいて、前記受信機において前記ビデオデータを受信することが、セルラー通信規格に従って、前記ビデオデータを復調することを備える、請求項１３に記載の方法。
【請求項１５】
ビデオデータを復号するためのデバイスであって、
ビデオデータのビットストリームを記憶するように構成されたメモリと、
１つまたは複数のプロセッサと
を備え、前記１つまたは複数のプロセッサが、
前記ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築することと
を行うように構成される、デバイス。
【請求項１６】
前記ラン関係シンタックス要素グループのセットを決定するために、前記１つまたは複数のプロセッサが、前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、
複数のエントロピーコーディングコンテキストから、前記それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択することと、ここにおいて、前記それぞれのエントロピーコーディングコンテキストの前記選択が、前記パレットインデックスシンタックス要素のいずれにも依存しない、
前記選択されたエントロピーコーディングコンテキストに基づいて、前記それぞれのラン関係シンタックス要素グループのビンをエントロピー復号することと
を行うように構成される、請求項１５に記載のデバイス。
【請求項１７】
前記エントロピーコーディングコンテキストを選択するために、前記１つまたは複数のプロセッサが、
基準に基づいて、前記それぞれのラン関係シンタックス要素グループのための前記それぞれのエントロピーコーディングコンテキストを選択すること、ここにおいて、前記基準が、前記それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの前記現在ブロック内の位置、または前記パレットのサイズのうちの一方または両方を備える
を行うように構成される、請求項１６に記載のデバイス。
【請求項１８】
前記パレットインデックスシンタックス要素のセットを決定するために、前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
同じパレットインデックスをもつ連続するロケーションの数に基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を行うように構成される、請求項１５に記載のデバイス。
【請求項１９】
前記パレットインデックスシンタックス要素のセットを決定するために、前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を行うように構成される、請求項１５に記載のデバイス。
【請求項２０】
前記パレットインデックスシンタックス要素のセットを決定するために、前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズと、同じパレットインデックスをもつ連続するロケーションの数とに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を行うように構成される、請求項１５に記載のデバイス。
【請求項２１】
前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのためのインデックス値が、インデックス予測子のリストを使用して予測可能であるか否かを示す、フラグを受信すること
を行うように構成される、請求項１５に記載のデバイス。
【請求項２２】
前記１つまたは複数のプロセッサが、
前記現在ブロックのために使用される前記ラン関係シンタックス要素グループのセット中で示す最大ラン値を示すシンタックス要素を復号することと、
切捨て値として前記最大ラン値を使用して、ラン値を復号することと
を行うように構成される、請求項１５に記載のデバイス。
【請求項２３】
前記１つまたは複数のプロセッサが、
第１の最大パレットインデックス値を決定することと、
第２の最大パレットインデックス値を決定することと、ここにおいて、前記第２の最大パレットインデックス値が、ランがランしきい値以上であるときのための最大パレットインデックス値を備え、ここにおいて、前記第２の最大パレットインデックス値が、前記第１の最大パレットインデックス値未満である、
ラン値が前記ランしきい値以上であるとき、前記第２の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、インデックス値をコーディングすることと、
前記ラン値が前記ランしきい値未満であるとき、前記第１の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、前記インデックス値をコーディングすることと
を行うように構成される、請求項１５に記載のデバイス。
【請求項２４】
前記１つまたは複数のプロセッサが、
前記１つまたは複数のパレットエントリのための１つまたは複数のインデックス値を復号すること、前記１つまたは複数のインデックス値のうちの少なくとも１つのインデックス値が、前記パレットの第１の領域に属し、前記１つまたは複数のインデックス値のうちの少なくとも１つの他のインデックス値が、前記パレットの第２の領域に属し、ここにおいて、制限に従って、前記第２の領域のインデックス値が連続的な走査順序においてコーディングされ、前記制限が、前記インデックス値が前記連続的な走査順序において前記第２の領域中に現れるべきであることを示す
を行うように構成される、請求項１５に記載のデバイス。
【請求項２５】
前記デバイスが、ワイヤレス通信デバイスを備え、前記デバイスが、符号化ビデオデータを受信するように構成された受信機をさらに備える、請求項１５に記載のデバイス。
【請求項２６】
前記ワイヤレス通信デバイスが、電話ハンドセットを備え、ここにおいて、前記受信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを備える信号を復調するように構成される、請求項２５に記載のデバイス。
【請求項２７】
ビデオデータを復号するための装置であって、
ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定するための手段と、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定するための手段と、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築するための手段と
を備える装置。
【請求項２８】
前記ラン関係シンタックス要素グループのセットを決定するための前記手段が、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、複数のエントロピーコーディングコンテキストから、前記それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択するための手段と、ここにおいて、前記それぞれのエントロピーコーディングコンテキストの前記選択が、前記パレットインデックスシンタックス要素のいずれにも依存しない、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、前記選択されたエントロピーコーディングコンテキストに基づいて、前記それぞれのラン関係シンタックス要素グループのビンをエントロピー復号するための手段と
を備える、請求項２７に記載の装置。
【請求項２９】
前記エントロピーコーディングコンテキストを選択するための前記手段が、
基準に基づいて、前記それぞれのラン関係シンタックス要素グループのための前記それぞれのエントロピーコーディングコンテキストを選択するための手段、ここにおいて、前記基準が、前記それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの前記現在ブロック内の位置、または前記パレットのサイズのうちの一方または両方を備える
を備える、請求項２８に記載の装置。
【請求項３０】
１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築することと
を行わせる命令を記憶する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、その各々の内容全体が参照により本明細書に組み込まれる、
２０１５年５月２１日に出願された米国仮特許出願第６２／１６５，０４９号と、
２０１５年６月８日に出願された米国仮特許出願第６２／１７２，７０５号と、
２０１５年６月８日に出願された米国仮特許出願第６２／１７２，７７８号と、
２０１５年６月８日に出願された米国仮特許出願第６２／１７２，７７１号と、
２０１５年６月９日に出願された米国仮特許出願第６２／１７３，２０１号と、
２０１５年６月９日に出願された米国仮特許出願第６２／１７３，３２５号と、
２０１５年６月９日に出願された米国仮特許出願第６２／１７３，２９８号と
の利益を主張する。
【０００２】
[0002]本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）、Ｈ．２６５、高効率ビデオコーディング（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。これらのビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実施する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）がビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれる場合がある。
【０００５】
[0005]空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差係数が生じ得、その残差係数は、次いで量子化され得る。
【発明の概要】
【０００６】
[0006]本開示は、ビデオコーディングおよび圧縮のための技法について説明する。詳細には、本開示は、パレットコーディングを用いる、ビデオコンテンツ、特にスクリーンコンテンツのコーディングをサポートするための技法について説明する。従来のビデオコーディングでは、画像は、連続トーンであり空間的に滑らかであると仮定される。これらの仮定に基づいて、ブロックベースの変換、フィルタリングなどのような様々なツールが開発されており、そのようなツールは、自然のコンテンツのビデオに対しては良好な性能を示している。
【０００７】
[0007]一例では、ビデオデータを復号する方法は、ビットストリーム中の第１のエントロピー符号化データに基づいて、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、第２のエントロピー符号化データそのビットストリームに基づいて、現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、第１のエントロピー符号化データが、第２のエントロピー符号化データの前にビットストリーム中で発生し、ここにおいて、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示し、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、パレット中のサンプル値に基づいて、現在ブロックを再構築することとを含む。
【０００８】
[0008]別の例では、ビデオデータを復号するためのデバイスは、ビデオデータのビットストリームを記憶するように構成されたメモリと、１つまたは複数のプロセッサとを含み、１つまたは複数のプロセッサが、ビットストリーム中の第１のエントロピー符号化データに基づいて、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、第２のエントロピー符号化データそのビットストリームに基づいて、現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、第１のエントロピー符号化データが、第２のエントロピー符号化データの前にビットストリーム中で発生し、ここにおいて、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示し、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、パレット中のサンプル値に基づいて、現在ブロックを再構築することとを行うように構成される。
【０００９】
[0009]別の例では、ビデオデータを復号するための装置は、ビットストリーム中の第１のエントロピー符号化データに基づいて、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定するための手段と、第２のエントロピー符号化データそのビットストリームに基づいて、現在ブロックのためのパレットインデックスシンタックス要素のセットを決定するための手段と、第１のエントロピー符号化データが、第２のエントロピー符号化データの前にビットストリーム中で発生し、ここにおいて、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示し、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、パレット中のサンプル値に基づいて、現在ブロックを再構築するための手段とを含む。
【００１０】
[0010]別の例では、１つまたは複数のプロセッサによって実行されたとき、１つまたは複数のプロセッサに、ビットストリーム中の第１のエントロピー符号化データに基づいて、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、第２のエントロピー符号化データそのビットストリームに基づいて、現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、第１のエントロピー符号化データが、第２のエントロピー符号化データの前にビットストリーム中で発生し、ここにおいて、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示し、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、パレット中のサンプル値に基づいて、現在ブロックを再構築することとを行わせる命令を記憶する、コンピュータ可読記憶媒体。
【００１１】
[0011]１つまたは複数の例の詳細が以下の添付の図面および説明に記載されている。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】[0012]本開示で説明される技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。
【図２】[0013]パレットモードビデオコーディングを示す概念図。
【図３】[0014]本開示の技法に一致する、ビデオデータをコーディングするためのパレットを決定する例を示す概念図。
【図４】[0015]本開示の技法に一致する、ビデオブロックのためのパレットへのインデックスを決定する例を示す概念図。
【図５】[0016]本開示で説明される技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図６】[0017]本開示で説明される技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図７】[0018]本開示の技法による、ビデオデータを符号化するための例示的な方法を示すフローチャート。
【図８】[0019]本開示の技法による、ビデオデータを符号化するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１３】
[0020]本開示は、ビデオコーディングおよび圧縮のための技法について説明する。詳細には、本開示は、パレットコーディングを用いる、ビデオコンテンツ、特にスクリーンコンテンツのコーディングをサポートするための技法について説明する。従来のビデオコーディングでは、画像は、連続トーンであり空間的に滑らかであると仮定される。これらの仮定に基づいて、ブロックベースの変換、フィルタリングなどのような様々なツールが開発されており、そのようなツールは、自然のコンテンツのビデオに対しては良好な性能を示している。
【００１４】
[0021]しかしながら、リモートデスクトップ、協調作業、およびワイヤレスディスプレイのような適用例では、コンピュータ生成スクリーンコンテンツが、圧縮されるべき主要なコンテンツであり得る。このタイプのコンテンツは、離散トーンを有し、鋭利な線と高コントラストのオブジェクト境界とを特徴とする傾向がある。連続的なトーンおよび滑らかさという仮定はもはや当てはまらないことがあるので、従来のビデオコーディング技法は、スクリーンコンテンツなど、いくつかのタイプのビデオコンテンツを圧縮するために使用されるとき、非効率的であり得る。
【００１５】
[0022]本開示は、スクリーン生成コンテンツコーディングに特に好適であり得る、パレットベースコーディングに関係する技法について説明する。たとえば、ビデオデータの特定のエリアが比較的少数の色を有すると仮定する。ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）は、特定のエリア（たとえば、所与のブロック）のビデオデータを表すための色のテーブルとして、いわゆる「パレット」をコーディングし得る。各ピクセルは、ピクセルの色を表すパレット中のエントリに関連付けられ得る。たとえば、ビデオコーダは、ピクセル値をパレット中の適切な値に関係付けるインデックスをコーディングし得る。
【００１６】
[0023]上記の例では、ビデオエンコーダは、ブロックのためのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリを位置特定することと、ピクセル値をパレットに関係付けるピクセルのためのインデックス値でパレットを符号化することとによって、ビデオデータのブロックを符号化し得る。ビデオデコーダは、符号化ビットストリームから取得されたシンタックス要素に基づいて、ブロックのためのパレット、ならびにブロックのピクセルのためのインデックス値を決定し得る。ビデオデコーダは、ブロックのピクセル値を再構築するために、ピクセルのインデックス値をパレットのエントリに関係付け得る。上記の例は、パレットベースコーディングの全般的な説明を与えることが意図されている。
【００１７】
[0024]本開示の技法は、概して、パレットモードコーディングにおいて利用されるシンタックス要素（たとえば、インデックスシンタックス要素、ランシンタックス要素、およびエスケープシンタックス要素）を効率的にコーディングするための技法に向けられている。以下でより詳細に説明されるように、本開示の技法は、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）コーディングされ得る、コンテキストコード化ラン値の後で、バイパスコーディングされ得る、非コンテキストコード化インデックスビンをグループ化することを含む。本開示はまた、ラン値のためのコンテキストが、インデックス値を使用して決定され得ないことを意味する、ラン値がインデックス値の前にコーディングされるとき、ラン値のためのコンテキストを決定するための技法についても説明する。本開示はまた、インデックス値のための様々な２値化技法についても説明する。本開示の技法は、いくつかのコーディングシナリオでは、パレットモードコーディング関係シンタックス要素を順序付け、既存の技法と比較されたとき、コーディング利得を生じる方法で、２値化技法とコンテキスト決定技法とを利用し得る。本開示の技法はまた、いくつかのコーディングシナリオでは、ハードウェア効率を改善し得る。
【００１８】
[0025]本開示の例によれば、ビデオデコーダは、ビットストリーム中の第１のエントロピー符号化データに基づいて、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定し得る。さらに、ビデオデコーダは、ビットストリーム中の第２のエントロピー符号化データに基づいて、現在ブロックのためのパレットインデックスシンタックス要素のセットを決定し得、パレットインデックスシンタックス要素のセットが、ラン関係シンタックス要素グループのセットの後、ビットストリーム中で発生する。この例では、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループは、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示す。この例では、サンプル値のセットを備えるパレット中のエントリを示す、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素。ビデオデコーダは、パレット中のサンプル値に基づいて、現在ブロックを再構築し得る。
【００１９】
[0026]同様に、一例では、ビデオエンコーダは、ビットストリーム中に、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットに対応する、第１のエントロピー符号化データを含め得る。ビデオエンコーダは、ビットストリーム中に、現在ブロックのためのパレットインデックスシンタックス要素のセットに対応する、第２のエントロピー符号化データを含め得る。この例では、第１のエントロピー符号化データは、第２のエントロピー符号化データの前に、ビットストリーム中で発生する。この例では、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループは、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示す。この例では、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素は、サンプル値のセットを備えるパレット中のエントリを示す。
【００２０】
[0027]図１は、本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォン、いわゆる「スマート」パッドなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００２１】
[0028]宛先デバイス１４は、リンク１６を介して、復号されるべき符号化ビデオデータを受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、ソースデバイス１２が符号化ビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００２２】
[0029]代替的に、符号化データは、出力インターフェース２２からストレージデバイス２６に出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイス２６からアクセスされ得る。ストレージデバイス２６は、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス２６は、ソースデバイス１２によって生成された符号化ビデオを保持し得る、ファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイス２６から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶すること、およびその符号化ビデオデータを宛先デバイス１４へ送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイト用の）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む任意の標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または、ファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに好適である、両方の組合せを含み得る。ストレージデバイス２６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００２３】
[0030]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話のような適用例をサポートするために、一方向または双方向のビデオ伝送をサポートするように構成され得る。
【００２４】
[0031]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。しかしながら、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤードの適用例に適用され得る。
【００２５】
[0032]キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４へ直接送信され得る。符号化ビデオデータは、さらに（または代替的に）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのために、ストレージデバイス２６上に記憶され得る。
【００２６】
[0033]宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を通じて符号化ビデオデータを受信する。リンク１６を介して通信されるかまたはストレージデバイス２６上で提供される符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ３０などのビデオデコーダによって使用するための、ビデオエンコーダ２０によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信される符号化ビデオデータとともに含められてよく、記憶媒体上に記憶されてよく、またはファイルサーバを記憶されてもよい。
【００２７】
[0034]ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、集積ディスプレイデバイスを含んでよく、また、外部ディスプレイデバイスとインターフェースするように構成されてもよい。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００２８】
[0035]ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびそれのスケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）拡張とを含む、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含む。最近では、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）の設計が、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ）とのジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ）によって確定された。以下でＨＥＶＣバージョン１と呼ばれる、最新のＨＥＶＣ仕様は、ｈｔｔｐ：／／ｗｗｗ．ｉｔｕ．ｉｎｔ／ｒｅｃ／Ｔ−ＲＥＣ−Ｈ．２６５−２０１３０４−Ｉから入手可能である。ＨＥＶＣの範囲拡張、すなわち、ＨＥＶＣ−Ｒｅｘｔもまた、ＪＣＴ−ＶＣによって開発中である。以下でＲＥｘｔ  ＷＤ７と呼ばれる、範囲拡張の最近のワーキングドラフト（ＷＤ）は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１７＿Ｖａｌｅｎｃｉａ／ｗｇ１１／ＪＣＴＶＣ−Ｑ１００５−ｖ４．ｚｉｐから入手可能である。最近では、ＪＣＴ−ＶＣは、ＨＥＶＣ−Ｒｅｘｔに基づく、スクリーンコンテンツコーディング（ＳＣＣ）の開発を開始しており、いくつかの主要な技法が検討されている。
【００２９】
[0036]ビデオエンコーダ２０およびビデオデコーダ３０は、ＨＥＶＣ規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。ビデオエンコーダ２０およびビデオデコーダ３０はまた、上記に記載された規格のいずれか、ならびに、現在開発中の新しい規格を含む、他のプロプライエタリな規格または業界規格に従って動作し得る。本開示の技法は、いかなる特定のコーディング規格にも限定されない。
【００３０】
[0037]本開示の技法は、説明を簡単にするために、ＨＥＶＣ用語を利用し得る。しかしながら、本開示の技法がＨＥＶＣに限定されると仮定されるべきではなく、実際は、本開示の技法は、ＨＥＶＣの後継規格およびその拡張、ならびに他の将来のコーデック設計および規格において実装され得ることが明示的に企図される。
【００３１】
[0038]図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれ、オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３２】
[0039]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実施するために、１つまたは複数のプロセッサを使用して、ハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００３３】
[0040]上記で紹介したように、ＪＣＴ−ＶＣはＨＥＶＣ規格の開発を最近確定した。ＨＥＶＣ規格化の取組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づいていた。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は、９つのイントラ予測符号化モードを与えるが、ＨＭは、３５個ものイントラ予測符号化モードを与え得る。
【００３４】
[0041]ＨＥＶＣおよび他のビデオコーディング仕様では、ビデオシーケンスは、一般に一連のピクチャを含む。ピクチャは、「フレーム」と呼ばれることもある。ピクチャは、ＳL、ＳCbおよびＳCrと示される、３つのサンプルアレイを含み得る。ＳLは、ルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳCbは、Ｃｂクロミナンスサンプルの２次元アレイである。ＳCrは、Ｃｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００３５】
[0042]ピクチャの符号化された表現を生成するために、ビデオエンコーダ２０は、コーディングツリーユニット（ＣＴＵ）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの２つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＴＵは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックは、サンプルのＮ×Ｎブロックであり得る。ＣＴＵは、「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のＣＴＵを含み得る。
【００３６】
[0043]コード化ＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するためにＣＴＵのコーディングツリーブロックに対して４分木区分を再帰的に実施し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックは、サンプルのＮ×Ｎのブロックであり得る。ＣＵは、ルーマサンプルアレイとＣｂサンプルアレイとＣｒサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの２つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００３７】
[0044]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵの予測ユニット（ＰＵ）は、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＰＵは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロック、Ｃｂ予測ブロックおよびＣｒ予測ブロックのための予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロックを生成し得る。
【００３８】
[0045]ビデオエンコーダ２０は、ＰＵのための予測ブロックを生成するために、イントラ予測、インター予測、またはパレットコーディングなどの別のコーディングモードを使用し得る。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号サンプルに基づいて、ＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ブロックを生成し得る。
【００３９】
[0046]ビデオエンコーダ２０が、ＣＵの１つまたは複数のＰＵのための予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成した後、ビデオエンコーダ２０は、ＣＵのためのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つ中のルーマサンプルとＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ２０は、ＣＵのためのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルとＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はまた、ＣＵのためのＣｒ残差ブロックを生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルとＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００４０】
[0047]さらに、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックと、Ｃｂ残差ブロックと、Ｃｒ残差ブロックとを、１つまたは複数のルーマ変換ブロックと、Ｃｂ変換ブロックと、Ｃｒ変換ブロックとに分解するために、４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形（たとえば、正方形または非正方形）ブロックである。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックに関連付けられ得る。ＴＵに関連付けられたルーマ変換ブロックは、ＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＴＵは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００４１】
[0048]ビデオエンコーダ２０は、ＴＵのためのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは、変換係数の２次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ２０は、ＴＵのためのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのためのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００４２】
[0049]係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後、ビデオエンコーダ２０は、係数ブロックを量子化することができる。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。ビデオエンコーダ２０が係数ブロックを量子化した後に、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素に対してＣＡＢＡＣを実施し得る。
【００４３】
[0050]シンタックス要素にＣＡＢＡＣ符号化を適用するために、ビデオエンコーダは、「ビン」と呼ばれる一連の１つまたは複数のビットを形成するために、シンタックス要素を２値化し得る。加えて、ビデオエンコーダは、コーディングコンテキストを特定することができる。コーディングコンテキストは、特定の値を有するビンをコーディングする確率を特定し得る。たとえば、コーディングコンテキストは、０の値のビンをコーディングする０．７の確率と、１の値のビンをコーディングする０．３の確率とを示し得る。コーディングコンテキストを特定した後、ビデオエンコーダは、間隔を下位サブ間隔と上位サブ間隔とに分割し得る。サブ間隔のうちの一方は、値０に関連付けられ得、他方のサブ間隔は、値１に関連付けられ得る。サブ間隔の幅は、特定されたコーディングコンテキストによって、関連付けられた値について示される確率に比例し得る。シンタックス要素のビンが、下位サブ間隔に関連付けられた値を有する場合、符号化された値は、下位サブ間隔の下位境界に等しくなり得る。シンタックス要素の同じビンが、上位サブ間隔に関連付けられた値を有する場合、符号化された値は、上位サブ間隔の下位境界に等しくなり得る。シンタックス要素の次のビンを符号化するために、ビデオエンコーダは、符号化ビットの値に関連付けられたサブ間隔である間隔で、これらのステップを繰り返し得る。ビデオエンコーダが、次のビンについてこれらのステップを繰り返すとき、ビデオエンコーダは、特定されたコーディングコンテキストおよび符号化されたビンの実際の値によって示される確率に基づく、修正された、すなわち、更新された確率を使用し得る。
【００４４】
[0051]ビデオデコーダが、シンタックス要素に対してＣＡＢＡＣ復号を実施するとき、ビデオデコーダは、コーディングコンテキストを特定し得る。ビデオデコーダは次いで、間隔を下位サブ間隔と上位サブ間隔とに分割し得る。サブ間隔のうちの一方は、値０に関連付けられ得、他方のサブ間隔は、値１に関連付けられ得る。サブ間隔の幅は、特定されたコーディングコンテキストによって、関連付けられた値について示される確率に比例し得る。符号化された値が下位サブ間隔内にある場合、ビデオデコーダは、下位サブ間隔に関連付けられた値を有するビンを復号し得る。符号化された値が上位サブ間隔内にある場合、ビデオデコーダは、上位サブ間隔に関連付けられた値を有するビンを復号し得る。シンタックス要素の次のビンを復号するために、ビデオデコーダは、符号化された値を含んでいるサブ間隔である間隔で、これらのステップを繰り返し得る。ビデオデコーダが、次のビンについてこれらのステップを繰り返すとき、ビデオデコーダは、特定されたコーディングコンテキストおよび復号されたビンによって示される確率に基づく、修正された確率を使用し得る。ビデオデコーダは次いで、シンタックス要素を復元するために、ビンを逆２値化し得る。
【００４５】
[0052]すべてのシンタックス要素において正規のＣＡＢＡＣ符号化を実施するのではなく、ビデオエンコーダは、バイパスＣＡＢＡＣコーディング技法を使用して、いくつかのシンタックス要素（たとえば、ビン）を符号化し得る。ビンにおいて正規のＣＡＢＡＣコーディングを実施することよりも、ビンにおいてバイパスＣＡＢＡＣコーディングを実施することの方が、より計算コストが低くなり得る。さらに、バイパスＣＡＢＡＣコーディングを実施することは、より高度の並列化およびスループットを可能にし得る。バイパスＣＡＢＡＣコーディングを使用して符号化されたビンは、「バイパスビン」と呼ばれる場合がある。一緒にバイパスビンをグループ化することは、ビデオエンコーダおよびビデオデコーダのスループットを高め得る。バイパスＣＡＢＡＣコーディングエンジンは、単一のサイクルにおいていくつかのビンをコーディングすることが可能であり得るのに対して、正規のＣＡＢＡＣコーディングエンジンは、サイクルにおいて単一のビンのみをコーディングすることが可能であり得る。バイパスＣＡＢＡＣコーディングエンジンは、コンテキストを選択せず、両方のシンボル（０および１）について１／２の確率を仮定し得るので、バイパスＣＡＢＡＣコーディングエンジンは、より簡単であり得る。したがって、バイパスＣＡＢＡＣコーディングでは、間隔は、半分に直接分割されるものとして概念化され得る。
【００４６】
[0053]ビデオエンコーダ２０は、エントロピー符号化シンタックス要素を含むビットストリームを出力し得る。ビットストリームは、コード化ピクチャおよび関連するデータの表現を形成するビットのシーケンスを含み得る。ビットストリームは、ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットのシーケンスを備え得る。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、ローバイトシーケンスペイロード（ＲＢＳＰ）をカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰは０ビットを含む。
【００４７】
[0054]異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。たとえば、第１のタイプのＮＡＬユニットは、ピクチャパラメータセット（ＰＰＳ）のためのＲＢＳＰをカプセル化し得、第２のタイプのＮＡＬユニットは、コード化スライスのためのＲＢＳＰをカプセル化し得、第３のタイプのＮＡＬユニットは、補足エンハンスメント情報（ＳＥＩ：Supplemental Enhancement Information）のためのＲＢＳＰをカプセル化し得、以下同様である。（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰとは対照的に）ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれることがある。
【００４８】
[0055]図１の例では、ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信する。加えて、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得するために、ビットストリームをパースし得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築し得る。ビデオデータを再構築するためのプロセスは、概して、ビデオエンコーダ２０によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ３０は、現在ＣＵのＰＵの予測ブロックを決定するために、イントラ予測またはインター予測を使用し得る。加えて、ビデオデコーダ３０は、現在ＣＵのＴＵのための係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在ＣＵのＴＵのための変換ブロックを再構築するために、係数ブロックに対して逆変換を実施し得る。ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックのサンプルを、現在ＣＵのＴＵのための変換ブロックの対応するサンプルに加算することによって、現在ＣＵのコーディングブロックを再構築し得る。ピクチャの各ＣＵのためのコーディングブロックを再構築することによって、ビデオデコーダ３０は、ピクチャを再構築し得る。
【００４９】
[0056]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットベースコーディングを実施するように構成され得る。たとえば、パレットベースコーディングでは、上記で説明されたイントラ予測コーディング技法またはインター予測コーディング技法を実施するのではなく、ビデオエンコーダ２０およびビデオデコーダ３０は、特定のエリア（たとえば、所与のブロック）のビデオデータを表すための色のテーブルとして、いわゆるパレットをコーディングし得る。各ピクセルは、ピクセルの色を表すパレット中のエントリに関連付けられ得る。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、ピクセル値をパレット中の適切な値に関係付けるインデックスをコーディングし得る。
【００５０】
[0057]上記の例では、ビデオエンコーダ２０は、ブロックのためのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリを位置特定することと、ピクセル値をパレットに関係付けるピクセルについてのインデックス値を用いてパレットを符号化することとによって、ビデオデータのブロックを符号化し得る。ビデオデコーダ３０は、符号化ビットストリームから、ブロックのためのパレット、ならびにブロックのピクセルのためのインデックス値を取得し得る。ビデオデコーダ３０は、ブロックのピクセル値を再構築するために、ピクセルのインデックス値をパレットのエントリに関係付け得る。
【００５１】
[0058]いくつかの例では、ビデオエンコーダ２０は、同じピクセル値を有する所与の走査順序における連続するピクセルの数を示す１つまたは複数のシンタックス要素を符号化し得る。同様の値のピクセル値の列は、本明細書では「ラン」と呼ばれることがある。例示を目的とする例では、所与の走査順序の２つの連続するピクセルが異なる値を有する場合、ランは０に等しい。所与の走査順序の２つの連続するピクセルが同じ値を有するが、その走査順序の３番目のピクセルが異なる値を有する場合、ランは１に等しい。ビデオデコーダ３０は、符号化ビットストリームからランを示すシンタックス要素を取得し、同じインデックス値を有する連続するピクセルロケーションの数を決定するためにそのデータを使用し得る。
【００５２】
[0059]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、マップの１つまたは複数のエントリのためのラインコピーを実施し得る。たとえば、ビデオエンコーダ２０は、マップ中の特定のエントリのためのピクセル値が、特定のエントリの上のライン中のエントリに等しいことを示し得る。ビデオエンコーダ２０はまた、特定のエントリのの上のライン中のエントリに等しい走査順序でのインデックスの数を、ランとして示し得る。この例では、ビデオエンコーダ２０およびまたはビデオデコーダ３０は、指定された隣接ラインから、および、現在コーディングされているマップのラインのための指定された数のエントリから、インデックス値をコピーし得る。
【００５３】
[0060]以下でより詳細に説明されるように、パレットモードでは、パレットは、ブロックサンプルのための予測子としてまたは最終的な再構築ブロックサンプルとして使用され得る色成分値を表すインデックスによって番号を付けられたエントリを含む。パレット中の各エントリは、１つの色成分（たとえば、ルーマ値）、または２つの成分（たとえば、２つのクロマ値）、または３つの色成分（たとえば、ＲＧＢ、ＹＵＶなど）を含んでいることがある。
【００５４】
[0061]上記で導入されたように、ＨＥＶＣの拡張および他のコーディング規格は、イントラ予測およびインター予測以外のコーディングモードを実装し得る。１つのそのようなコーディングモードは、パレットモードであり、パレットモードでは、ビデオエンコーダ２０およびビデオデコーダ３０は、両方で、ピクセルのブロックのためのパレットを導出し、ここで、パレットテーブル中の各エントリは、パレットテーブルへのインデックスによって特定される色値を含む。次いで、ビデオエンコーダ２０は、パレットモードのサンプルについて、パレットのどのエントリがブロックの様々なサンプルのための色値に対応するかを示す、符号化ブロックインデックス値を符号化し得る。ビデオデコーダ３０は、インデックス値を受信し、インデックス値に基づいて、ブロックを再構築する。
【００５５】
[0062]図２は、本開示の技法に一致する、ビデオデータをコーディングするためのパレットを決定する例を示す概念図である。図２の例は、第１のパレットのセット（すなわち、第１のパレット１８４）に関連付けられる第１のコーディングユニット（ＣＵ）１８０と、第２のパレットのセット（すなわち、第２のパレット１９２）に関連付けられる第２のＣＵ１８８とを有する、ピクチャ１７８を含む。以下でより詳細に説明されるように、および本開示の技法のうちの１つまたは複数によれば、第２のパレット１９２は第１のパレット１８４に基づく。ピクチャ１７８はまた、イントラ予測コーディングモードによりコーディングされるブロック１９６と、インター予測コーディングモードによりコーディングされるブロック２００とを含む。
【００５６】
[0063]図２の技法は、ビデオエンコーダ２０（図１および図６）とビデオデコーダ３０（図１および図７）のコンテキストにおいて、説明を目的としてＨＥＶＣビデオコーディング規格に関して説明される。ＨＥＶＣフレームワークに関して、一例として、パレットベースコーディング技法は、ＣＵモードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、ＨＥＶＣのフレームワークにおいてＰＵモードまたはＴＵモードとして使用されるように構成され得る。したがって、ＣＵモードのコンテキストにおいて説明される以下の開示されるプロセスのすべてが、追加または代替として、ＰＵまたはＴＵに適用され得る。しかしながら、本開示の技法はこのように限定されず、他のビデオコーディングプロセスおよび／または規格において他のビデオコーディングプロセッサおよび／またはデバイスによって適用され得ることを理解されたい。
【００５７】
[0064]概して、パレットは、現在コーディングされているＣＵ（たとえば、図２の例ではＣＵ１８８）について支配的である、および／またはそのＣＵを代表する、いくつかのピクセル値を指す。第１のパレット１８４および第２のパレット１９２は、複数のパレットを含むものとして示されている。いくつかの例では、本開示の態様によれば、（ビデオエンコーダ２０またはビデオデコーダ３０などの）ビデオコーダは、ＣＵの各色成分について別々にパレットをコーディングし得る。たとえば、ビデオエンコーダ２０は、ＣＵのルーマ（Ｙ）成分のためのパレットと、ＣＵのクロマ（Ｕ）成分のための別のパレットと、ＣＵのクロマ（Ｖ）成分のためのまた別のパレットとを符号化し得る。この例では、ＹパレットのエントリはＣＵのピクセルのＹ値を表し得、ＵパレットのエントリはＣＵのピクセルのＵ値を表し得、ＶパレットのエントリはＣＵのピクセルのＶ値を表し得る。
【００５８】
[0065]他の例では、ビデオエンコーダ２０は、ＣＵのすべての色成分のための単一のパレットを符号化し得る。この例では、ビデオエンコーダ２０は、Ｙiと、Ｕiと、Ｖiとを含む、三重の値であるｉ番目のエントリを有するパレットを符号化し得る。この場合、パレット中の各エントリは、ピクセルの成分の各々のための値を含む。したがって、複数の個々のパレットを有するパレットのセットとしてのパレット１８４および１９２の表現は、一例にすぎず、限定することは意図されない。それとは反対に述べられる場合を除いて、図２に関して以下で説明される技法は、単一の値を使用するパレットに適用可能であるように、三重の値を使用するパレットに等しく適用可能である。
【００５９】
[0066]図２の例では、第１のパレット１８４の各々は、それぞれ、エントリインデックス値１、エントリインデックス値２、およびエントリインデックス値３を有する、３つのエントリ２０２〜２０６を含む。エントリ２０２〜２０６は、それぞれ、ピクセル値Ａ、ピクセル値Ｂ、およびピクセル値Ｃを含むピクセル値に、インデックス値を関係付ける。第１のパレット１８４の各々は、実際にはインデックスと列ヘッダとを含まず、ピクセル値Ａ、Ｂ、およびＣのみを含み、インデックスは、パレット中のエントリを特定するために使用されることに留意されたい。
【００６０】
[0067]本明細書で説明されるように、第１のＣＵ１８０の実際のピクセル値をコーディングするのではなく、（ビデオエンコーダ２０またはビデオデコーダ３０などの）ビデオコーダは、インデックス１〜３を使用してブロックのピクセルをコーディングするために、パレットベースコーディングを使用し得る。すなわち、第１のＣＵ１８０の各ピクセル位置について、ビデオエンコーダ２０は、ピクセルのためのインデックス値を符号化し得、そこで、インデックス値は、第１のパレット１８４のうちの１つまたは複数の中のピクセル値に関連付けられる。ビデオデコーダ３０は、ビットストリームからインデックス値を取得し得、インデックス値と第１のパレット１８４のうちの１つまたは複数とを使用して、ピクセル値を再構築し得る。言い換えれば、ブロックのための各それぞれのインデックス値について、ビデオデコーダ３０は、第１のパレット１８４のうちの１つの中のエントリを決定し得る。ビデオデコーダ３０は、ブロック中のそれぞれのインデックス値を、パレット中の決定されたエントリによって指定されるピクセル値で置き換え得る。ビデオエンコーダ２０は、パレットベースの復号におけるビデオデコーダ３０による使用のために、符号化ビデオデータビットストリーム中で第１のパレット１８４を送信し得る。一般に、１つまたは複数のパレットが、各ＣＵのために送信され得るか、または異なるＣＵの間で共有され得る。
【００６１】
[0068]ビデオエンコーダ２０およびビデオデコーダ３０は、第１のパレット１８４に基づいて、第２のパレット１９２を決定し得る。たとえば、ビデオエンコーダ２０は、（空間的に、または走査順序に基づいて）隣接ＣＵ、または原因となるネイバーの最頻のサンプルなど、１つまたは複数の他のＣＵに関連付けられた１つまたは複数のパレットから、ＣＵのためのパレットが予測されるか否かを示すために、各ＣＵ（一例として、第２のＣＵ１８８を含む）のためのｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇを符号化し得る。たとえば、そのようなフラグの値が１に等しいとき、ビデオデコーダ３０は、第２のＣＵ１８８のための第２のパレット１９２が１つまたは複数のすでに復号されているパレットから予測され、したがって、第２のＣＵ１８８のための新しいパレットがｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇを含んでいるビットストリーム中に含まれないと決定し得る。そのようなフラグが０に等しいとき、ビデオデコーダ３０は、第２のＣＵ１８８のためのパレット１９２が新しいパレットとしてビットストリーム中に含まれると決定し得る。いくつかの例では、ｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇは、ＣＵの各異なる色成分について別々にコーディングされ得る（たとえば、ＹＵＶビデオにおけるＣＵでは、Ｙのために１つ、Ｕのために１つ、およびＶのために１つの、３つのフラグ）。他の例では、単一のｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇが、ＣＵのすべての色成分についてコーディングされ得る。
【００６２】
[0069]上記の例では、ｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇは、現在ＣＵのためのパレットが前のＣＵのためのパレットと同じであるか否かを示すために、ＣＵごとにシグナリングされる。ｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇの値が真である場合、第２のパレット１９２は、第１のパレット１８４に等しく、追加の情報がシグナリングされない。他の例では、１つまたは複数のシンタックス要素は、エントリごとにシグナリングされ得る。すなわち、そのエントリが現在のパレット中に存在するか否かを示すために、フラグがパレット予測子の各エントリについてシグナリングされ得る。上述のように、パレットエントリが予測されない場合、パレットエントリが明示的にシグナリングされ得る。他の例では、これらの２つの方法が組み合わされ得る。たとえば、最初に、ｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇがシグナリングされる。フラグが０である場合、エントリごとの予測フラグがシグナリングされ得る。加えて、新しいエントリの数およびそれらの明示的な値が、シグナリングされ得る。以下でより詳細に説明されるように、本開示の技法によれば、新しいエントリの値は、新しいエントリの実効値と予測子サンプルの値との間の差分情報としてシグナリングされ得る。
【００６３】
[0070]第１のパレット１８４に対して第２のパレット１９２を決定する（たとえば、ｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇが１に等しい）とき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、そこから予測パレット、この例では第１のパレット１８４が決定される、１つまたは複数のブロックを位置特定し得る。予測パレットは、現在コーディングされているＣＵの１つまたは複数の隣接ＣＵ（たとえば、（空間的に、または走査順序に基づいて）隣接ＣＵ、または原因となるネイバーの最頻のサンプルなど）、すなわち第２のＣＵ１８８に関連付けられ得る。１つまたは複数の隣接ＣＵのパレットは、予測パレットに関連付けられ得る。図２に示されている例など、いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、第２のＣＵ１８８のための予測パレットを決定するとき、左の隣接ＣＵである第１のＣＵ１８０を位置特定し得る。他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、上のＣＵであるＣＵ１９６など、第２のＣＵ１８８に対して他の位置にある１つまたは複数のＣＵを位置特定し得る。別の例では、パレットモードを使用した走査順序中の最後のＣＵのためのパレットが、予測パレットとして使用され得る。
【００６４】
[0071]ビデオエンコーダ２０および／またはビデオデコーダ３０は、階層に基づいて、パレット予測のためのＣＵを決定し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、最初に、パレット予測のために、左の隣接ＣＵである第１のＣＵ１８０を特定し得る。左の隣接ＣＵが予測のために利用可能ではない（たとえば、左の隣接ＣＵが、イントラ予測モアもしくはイントラ予測モードなど、パレットベースコーディングモード以外のモードでコーディングされる、またはピクチャもしくはスライスの左端に位置する）場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、上の隣接ＣＵであるＣＵ１９６を特定し得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、パレット予測のために利用可能なパレットを有するＣＵを位置特定するまで、所定のロケーションの順序に従って利用可能なＣＵを探し続け得る。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、複数のブロック、および／または隣接ブロックの再構築されたサンプルに基づいて、予測パレットを決定し得る。
【００６５】
[0072]図２の例は、単一のＣＵ（すなわち、第１のＣＵ１８０）からの予測パレットとして第１のパレット１８４を示すが、他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、隣接ＣＵの組合せから予測のためのパレットを位置特定し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダは、複数の（空間的な、または走査順序における）隣接ＣＵの１つまたは組合せのパレットに基づいて予測パレットを生成するために、１つまたは複数の式、関数、ルールなどを適用し得る。
【００６６】
[0073]さらに他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、パレット予測のためのいくつかの潜在的な候補を含む候補リストを構築し得る。そのような例では、ビデオエンコーダ２０は、そこからパレット予測のために使用される現在ＣＵが選択される（たとえば、パレットをコピーする）リスト中の候補ＣＵを示すために、候補リストへのインデックスを符号化し得る。ビデオデコーダ３０は、同じ方式で候補リストを構築し、インデックスを復号し、現在ＣＵとともに使用するための対応するＣＵのパレットを選択するために、復号されたインデックスを使用し得る。別の例では、リスト中の示された候補ＣＵのパレットは、現在ＣＵのための現在のパレットのエントリごとの予測のための予測パレットとして使用され得る。
【００６７】
[0074]例示を目的とする例では、ビデオエンコーダ２０およびビデオデコーダ３０は、現在コーディングされているＣＵの上に配置されている１つのＣＵと、現在コーディングされているＣＵの左に配置されている１つのＣＵとを含む、候補リストを構築し得る。この例では、ビデオエンコーダ２０は、候補選択を示すために、１つまたは複数のシンタックス要素を符号化し得る。たとえば、ビデオエンコーダ２０は、現在ＣＵのためのパレットが現在ＣＵの左に配置されているＣＵからコピーされることを示すために、０の値を有するフラグを符号化し得る。ビデオエンコーダ２０は、現在ＣＵのためのパレットが現在ＣＵの上に配置されているＣＵからコピーされることを示すために、１の値を有するフラグを符号化し得る。ビデオデコーダ３０は、フラグを復号し、パレット予測のために適切なＣＵを選択する。別の例では、フラグは、上または左の隣接ＣＵのパレットが予測パレットとして使用されるか否かを示し得る。次いで、予測パレット中の各エントリについて、そのエントリが現在ＣＵのためのパレットにおいて使用されるか否かが示され得る。
【００６８】
[0075]さらに他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、１つまたは複数の他のパレット中に含まれるサンプル値が１つまたは複数の隣接ＣＵの中で現れる頻度に基づいて、現在コーディングされているＣＵのためのパレットを決定する。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、所定の数のＣＵのコーディングの間に最も頻繁に使用されるインデックス値に関連付けられた色を追跡し得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在コーディングされているＣＵのためのパレットに、最も頻繁に使用される色を含め得る。
【００６９】
[0076]上述のように、いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダは、現在ＣＵをコーディングするために、隣接ＣＵからパレット全体をコピーし得る。追加または代替として、ビデオエンコーダ２０および／またはビデオデコーダ３０は、エントリごとの（ｅｎｔｒｙ−ｗｉｓｅ  ｂａｓｅｄ）パレット予測を実施し得る。たとえば、ビデオエンコーダ２０は、予測パレット（たとえば、別のＣＵのパレット）に基づいて、それぞれのエントリが予測されるか否かを示す、パレットの各エントリのための１つまたは複数のシンタックス要素を符号化し得る。この例では、ビデオエンコーダ２０は、エントリが予測パレットからの予測された値（たとえば、隣接ＣＵに関連付けられたパレットの対応するエントリ）であるとき、所与のエントリのための１の値を有するフラグを符号化し得る。ビデオエンコーダ２０は、特定のエントリが別のＣＵのパレットから予測されないことを示すために、その特定のエントリのための０の値を有するフラグを符号化し得る。この例では、ビデオエンコーダ２０はまた、予測されないパレットエントリの値を示す追加のデータを符号化し得る。
【００７０】
[0077]本開示は、現在ＣＵのためのパレットを予測するためのいくつかの代替的な技法について説明する。一例では、１つまたは複数の前にコーディングされた隣接ＣＵからのパレットエントリを含む予測パレットは、ある数の、すなわちＮ個のエントリを含む。この場合、ビデオエンコーダ２０は、最初に、ビデオデコーダ３０に、予測パレットと同じサイズ、すなわち、サイズＮを有するバイナリベクトルＶを送信する。バイナリベクトル中の各エントリは、予測パレット中の対応するエントリが現在ＣＵのためのパレットに対して再使用またはコピーされるか否かを示す。たとえば、Ｖ（ｉ）＝１は、隣接ＣＵのための予測パレット中のｉ番目のエントリが、現在ＣＵにおいて異なるインデックスを有し得る現在ＣＵのためのパレットに対して再使用またはコピーされることを意味する。
【００７１】
[0078]加えて、ビデオエンコーダ２０は、いくつの新しいパレットエントリが現在ＣＵのためのパレット中に含まれるかを示す数Ｍを送信し得、次いで、新しいパレットエントリの各々のためのピクセル値をビデオデコーダ３０に送信する。この例では、現在ＣＵのためのパレットの最終的なサイズは、Ｍ＋Ｓに等しいものとして導出され得、ただし、Ｓは、現在ＣＵのためのパレットに対して再使用またはコピーされ得る（すなわち、Ｖ（ｉ）＝１）予測パレット中のエントリの数である。現在ＣＵのためのパレットを生成するために、ビデオデコーダ３０は、送信された新しいパレットエントリと、予測パレットから再使用されるコピーされたパレットエントリとをマージし得る。場合によっては、このマージはピクセル値に基づき得るので、現在ＣＵのためのパレット中のエントリは、パレットインデックスとともに増大（または減少）し得る。他の場合には、このマージは、エントリの２つのセット、すなわち、新しいパレットエントリおよびコピーされたパレットエントリの連結であり得る。
【００７２】
[0079]別の例では、ビデオエンコーダ２０は、最初に、現在ＣＵのためのパレットのサイズＮの指示をビデオデコーダ３０に送信する。次いで、ビデオエンコーダ２０は、現在ＣＵのためのパレットと同じサイズ、すなわちサイズＮを有するベクトルＶを、ビデオデコーダ３０に送信する。ベクトル中の各エントリは、現在ＣＵのためのパレット中の対応するエントリがビデオエンコーダ２０によって明示的に送信されるか、または予測パレットからコピーされるかを示す。たとえば、Ｖ（ｉ）＝１は、ビデオエンコーダ２０がパレット中のｉ番目のエントリをビデオデコーダ３０に送信することを意味し、Ｖ（ｉ）＝０は、パレット中のｉ番目のエントリが予測パレットからコピーされることを意味する。予測パレットからコピーされる（すなわち、Ｖ（ｉ）＝０）エントリでは、ビデオエンコーダ２０は、予測パレット中のどのエントリが現在ＣＵのためのパレットにおいて使用されるかをシグナリングするために、異なる方法を使用し得る。場合によっては、ビデオエンコーダ２０は、現在ＣＵのためのパレットに予測パレットからコピーされるべきエントリのパレットインデックスをシグナリングし得る。他の場合には、ビデオエンコーダ２０は、インデックスオフセットをシグナリングすることができ、インデックスオフセットは、現在ＣＵのためのパレット中のインデックスと予測パレット中のインデックスとの間の差分である。
【００７３】
[0080]２つの上記の例では、現在ＣＵのためのパレットの予測のために使用される予測パレットを生成するために使用される１つまたは複数の前にコーディングされた隣接ＣＵは、現在ＣＵに対して最上の隣接（すなわち、上の）ＣＵまたは左の隣接ＣＵであり得る。いくつかの例では、隣接ＣＵの候補リストが構築され得、ビデオエンコーダ２０は、どの候補隣接ＣＵおよび関連付けられたパレットが現在ＣＵのためのパレット予測のために使用されるかを示すために、インデックスを送信する。いくつかのＣＵ、たとえば、スライスの始めもしくは他のスライス境界に配置されるＣＵ、またはビデオデータのスライスもしくはピクチャ中の最も左のＣＵでは、パレット予測が無効にされ得る。
【００７４】
[0081]追加の例では、ビデオエンコーダ２０は、現在ＣＵのためのパレット中に含まれるエントリの数の指示をビデオデコーダ３０に送信する。次いで、パレットエントリの各々について、ビデオエンコーダ２０は、パレットエントリがビデオエンコーダ２０によって明示的に送信されるか否か、またはパレットエントリが前に再構築されたピクセルから導出されるか否かを示すために、フラグまたは他のシンタックス要素を送信する。たとえば、１に等しく設定された１ビットのフラグは、ビデオエンコーダ２０がパレットエントリを明示的に送ることを意味し得、０に等しく設定された１ビットのフラグは、パレットエントリが前に再構築されたピクセルから導出されることを意味し得る。前に再構築されたピクセルから導出されるパレットエントリの各々について、ビデオエンコーダ２０は、パレットエントリに対応する現在ＣＵまたは隣接ＣＵ中の再構築されたピクセルのピクセルロケーションに関する別の指示を送信する。場合によっては、再構築されたピクセルロケーション指示は、現在ＣＵの左上の位置に対する変位ベクトルであり得る。他の場合には、再構築されたピクセルロケーション指示は、現在ＣＵのためのパレットエントリを指定するために使用され得る再構築されたピクセルのリストへのインデックスであり得る。たとえば、このリストは、ＨＥＶＣにおいて通常のイントラ予測のために使用され得るすべての参照ピクセルを含み得る。
【００７５】
[0082]図２の例では、第２のパレット１９２は、エントリインデックス値１、エントリインデックス値２、エントリインデックス値３、およびエントリインデックス４をそれぞれ有する、４つのエントリ２０８〜２１４を含む。エントリ２０８〜２１４は、ピクセル値Ａ、ピクセル値Ｂ、ピクチャ値Ｃ、およびピクセル値Ｄをそれぞれ含むピクセル値に、インデックス値を関係付ける。本開示の１つまたは複数の態様によれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、パレット予測の目的で第１のＣＵ１８０を位置特定し、第１のパレット１８４のエントリ１〜３を、第２のＣＵ１８８をコーディングするための第２のパレット１９２のエントリ１〜３にコピーするために、上記で説明された技法のいずれかを使用し得る。このようにして、ビデオエンコーダ２０および／またはビデオデコーダ３０は、第１のパレット１８４に基づいて、第２のパレット１９２を決定し得る。加えて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、第２のパレット１９２とともに含まれるべきエントリ４のためのデータをコーディングし得る。そのような情報は、予測パレットから予測されないパレットエントリの数と、それらのパレットエントリに対応するピクセル値とを含み得る。
【００７６】
[0083]いくつかの例では、本開示の態様によれば、１つまたは複数のシンタックス要素は、第２のパレット１９２などのパレットが予測パレット（図２では第１のパレット１８４として示されるが、１つまたは複数のブロックからのエントリから構成され得る）から完全に予測されるか否か、または第２のパレット１９２の特定のエントリが予測されるか否かを示し得る。たとえば、初期シンタックス要素は、エントリのすべてが予測されるか否かを示し得る。エントリのすべてが予測されるとは限らないことを初期シンタックス要素が示す（たとえば、０の値を有するフラグ）場合、１つまたは複数の追加のシンタックス要素が、第２のパレット１９２のどのエントリが予測パレットから予測されるかを示し得る。
【００７７】
[0084]本開示のいくつかの態様によれば、パレット予測に関連付けられたいくつかの情報は、コーディングされているデータの１つまたは複数の特性から推論され得る。すなわち、ビデオエンコーダ２０がシンタックス要素を符号化する（および、ビデオデコーダ３０がそのようなシンタックス要素を復号する）のではなく、ビデオエンコーダ２０およびビデオデコーダ３０は、コーディングされているデータの１つまたは複数の特性に基づいて、パレット予測を実施し得る。
【００７８】
[0085]一例では、例示の目的で、上記で説明されたｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇの値は、例として、コーディングされているＣＵのサイズ、フレームタイプ、色空間、色成分、フレームサイズ、フレームレート、スケーラブルビデオコーディングにおけるレイヤｉｄ、またはマルチビューコーディングにおけるビューｉｄのうちの１つまたは複数から推論され得る。すなわち、一例として、ＣＵのサイズに関して、ビデオエンコーダ２０および／またはビデオデコーダ３０は、上記で説明されたｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇが、所定のサイズを超えるかまたはそれ未満である任意のＣＵについて１に等しいと決定し得る。この例では、ｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇは、符号化ビットストリーム中でシグナリングされる必要はない。
【００７９】
[0086]ｐｒｅｄ＿ｐａｌｅｔｔｅ＿ｆｌａｇに関して上記で説明されたが、ビデオエンコーダ２０および／またはビデオデコーダ３０は、同じくまたは代替的に、コーディングされているデータの１つまたは複数の特性に基づいて、そこからパレットが予測のために使用される候補ＣＵ、またはパレット予測候補を構築するためのルールなど、パレット予測に関連付けられた他の情報を推論し得る。
【００８０】
[0087]本開示の他の態様によれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、オンザフライでパレットを構築し得る。たとえば、第２のＣＵ１８８を最初にコーディングするとき、パレット１９２の中にエントリはない。ビデオエンコーダ２０およびビデオデコーダ３０が第２のＣＵ１８８のピクセルのための新しい値をコーディングするにつれて、各新しい値がパレット１９２の中に含められる。すなわち、たとえば、ビデオエンコーダ２０は、ピクセル値がＣＵ１８８の中の位置のために生成されシグナリングされるにつれて、ピクセル値をパレット１９２に追加する。ビデオエンコーダ２０はＣＵにおいて相対的により後でピクセルを符号化するので、ビデオエンコーダ２０は、ピクセル値をシグナリングするのではなくインデックス値を使用して、パレットにすでに含まれているものと同じ値を有するピクセルを符号化することができる。同様に、ビデオデコーダ３０が第２のＣＵ１８８の中の位置のための新しいピクセル値（たとえば、ビデオエンコーダ２０によってシグナリングされる）を受信するとき、ビデオデコーダ３０は、ピクセル値をパレット１９２に含める。第２のＣＵ１８８において相対的により後で復号されるピクセル位置が、第２のパレット１９２に追加されているピクセル値を有するとき、ビデオデコーダ３０は、第２のＣＵ１８８のピクセル値の再構築のために、第２のパレット１９２中の対応するピクセル値を特定する情報、たとえばインデックス値などを受信し得る。
【００８１】
[0088]いくつかの例では、以下でより詳細に説明されるように、ビデオエンコーダ２０および／またはビデオデコーダ３０は、パレット１８４と１９２とを最大パレットサイズ以下に維持し得る。本開示の態様によれば、最大パレットサイズに達する場合、たとえば、第２のパレット１９２がオンザフライで動的に構築されるにつれて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、第２のパレット１９２のエントリを除去するために同じプロセスを実施する。パレットエントリを除去するための１つの例示的なプロセスは、ビデオエンコーダ２０およびビデオデコーダ３０がパレットの最も古いエントリを除去する先入れ先出し（ＦＩＦＯ）技法である。別の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットから最も使用頻度の低いパレットエントリを除去し得る。さらに別の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、どのエントリを除去するかを決定するために、ＦＩＦＯプロセスと使用頻度プロセスの両方を重視し得る。すなわち、エントリの除去は、エントリがどれだけ古いか、およびエントリがどれだけ頻繁に使用されるかに基づき得る。
【００８２】
[0089]いくつかの態様によれば、エントリ（ピクセル値）がパレットから除去され、ピクセル値がコーディングされているＣＵ中のより後の位置において再び現れる場合、ビデオエンコーダ２０は、パレットにエントリを含めてインデックスを符号化する代わりに、ピクセル値を符号化し得る。追加または代替として、ビデオエンコーダ２０は、たとえば、ビデオエンコーダ２０およびビデオデコーダ３０がＣＵの中の位置を走査するとき、パレットエントリを、除去された後でパレットに再び入れ得る。
【００８３】
[0090]いくつかの例では、オンザフライでパレットを導出するための技法は、パレットを決定するための１つまたは複数の他の技法と組み合わされ得る。具体的には、一例として、ビデオエンコーダ２０およびビデオデコーダ３０は、（たとえば、第１のパレット１８４から第２のパレット１９２を予測するためにパレット予測を使用して）第２のパレット１９２を最初にコーディングし得、第２のＣＵ１８８のピクセルをコーディングするときに第２のパレット１９２を更新し得る。たとえば、初期パレットを送信すると、ビデオエンコーダ２０は、ＣＵの中の追加のロケーションのピクセル値が走査されるにつれて、値を初期パレットに追加し、または初期パレット中の値を変更し得る。同様に、初期パレットを受信すると、ビデオデコーダ３０は、ＣＵの中の追加のロケーションのピクセル値が走査されるにつれて、値を初期パレットに追加し（すなわち、含め）、または初期パレット中の値を変更し得る。
【００８４】
[0091]ビデオエンコーダ２０は、いくつかの例では、現在ＣＵがパレット全体の送信を使用するか、またはオンザフライのパレット生成を使用するか、または、初期パレットの送信とオンザフライの導出による初期パレットの更新との組合せを使用するかをシグナリングし得る。いくつかの例では、初期パレットは、最大パレットサイズにある満杯のパレットであり得、その場合、初期パレット中の値は変更され得る。他の例では、初期パレットは、最大パレットサイズよりも小さくなり得、その場合、ビデオエンコーダ２０およびビデオデコーダ３０は、初期パレットの値に値を追加し、および／または初期パレットの値を変更し得る。
【００８５】
[0092]本開示の１つまたは複数の態様によれば、たとえば、パレット中に含まれるピクセル値の数による、第１のパレット１８４および第２のパレット１９２などのパレットのサイズは、固定され得るか、または、符号化ビットストリーム中の１つまたは複数のシンタックス要素を使用してシグナリングされ得る。たとえば、いくつかの態様によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットサイズをコーディングするために、単項コードまたは切捨て単項コード（たとえば、最大限のパレットサイズにおいて切り捨てるコード）を使用し得る。他の態様によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットサイズをコーディングするために、指数ゴロムコードまたはライス−ゴロムコードを使用し得る。
【００８６】
[0093]さらに他の態様によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットの各エントリの後でパレットのサイズを示すデータをコーディングし得る。一例として、第２のパレット１９２に関して、ビデオエンコーダ２０は、エントリ２０８〜２１４の各々の後で停止フラグを符号化し得る。この例では、１に等しい停止フラグは、現在コーディングされているエントリが第２のパレット１９２の最後のエントリであることを指定し得るが、０に等しい停止フラグは、第２のパレット１９２中に追加のエントリがあることを示し得る。したがって、ビデオエンコーダ２０は、エントリ２０８〜２１２の各々の後で０の値を有する停止フラグを符号化し、エントリ２１４の後で１の値を有する停止フラグを符号化し得る。いくつかの事例では、停止フラグは、構築されたパレットが最大パレットサイズの限度に達すると、ビットストリーム中に含まれなくてよい。上記の例は、パレットのサイズを明示的にシグナリングするための技法を開示するが、他の例では、パレットのサイズはまた、いわゆるサイド情報（たとえば、上述のように、コーディングされているＣＵのサイズ、フレームタイプ、色空間、色成分、フレームサイズ、フレームレート、スケーラブルビデオコーディングにおけるレイヤｉｄ、またはマルチビューコーディングにおけるビューｉｄのような特性情報）に基づいて、条件的に送信または推論され得る。
【００８７】
[0094]本開示の技法は、可逆的に、または代替的にはいくらかの損失を伴って（不可逆コーディング）、データをコーディングすることを含む。たとえば、不可逆コーディングに関して、ビデオエンコーダ２０は、パレットのピクセル値を厳密にＣＵ中の実際のピクセル値と厳密に照合することなく、ＣＵのピクセルをコーディングし得る。本開示の技法が不可逆コーディングに適用されるとき、いくつかの制限がパレットに適用され得る。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、第１のパレット１８４および第２のパレット１９２のようなパレットを量子化することができる。すなわち、ビデオエンコーダ２０およびビデオデコーダ３０は、エントリのピクセル値が互いに所定の範囲内にあるとき、パレットのエントリをマージまたは組み合わせる（すなわち、量子化する）ことができる。言い換えれば、新しいパレット値の誤差の限度内にあるパレット値がすでにある場合、新しいパレット値はパレットに追加されない。別の例では、ブロック中の複数の異なるピクセル値が、単一のパレットエントリに、または等価的に、単一のパレットピクセル値にマッピングされ得る。
【００８８】
[0095]ビデオデコーダ３０は、特定のパレットが可逆的であるか不可逆的であるかにかかわらず、同じ方式でピクセル値を復号し得る。一例として、ビデオデコーダ３０は、コード化ブロック中の所与のピクセル位置のためにビデオエンコーダ２０によって送信されるインデックス値を使用して、パレットが可逆的であるか不可逆的であるかに関係なく、そのピクセル位置のためのパレット中のエントリを選択し得る。この例では、パレットエントリのピクセル値は、それが元のピクセル値と厳密に一致するか否かにかかわらず、コード化ブロック中のピクセル値として使用される。
【００８９】
[0096]例示の目的で、不可逆コーディングの例では、ビデオエンコーダ２０は、デルタ値と呼ばれる誤差の限界を決定し得る。候補ピクセル値エントリＰｌｔ＿ｃａｎｄは、ＣＵまたはＰＵなどのコーディングされるべきブロック中のある位置におけるピクセル値に対応し得る。パレットの構築の間、ビデオエンコーダ２０は、候補ピクセル値エントリＰｌｔ＿ｃａｎｄとパレット中の既存のピクセル値エントリのすべてとの間の絶対差分を決定する。候補ピクセル値エントリＰｌｔ＿ｃａｎｄとパレット中の既存のピクセル値エントリとの間の絶対差分のすべてが、デルタ値よりも大きい場合、ビデオエンコーダ２０は、ピクセル値候補をエントリとしてパレットに追加し得る。ピクセル値エントリＰｌｔ＿ｃａｎｄとパレット中の少なくとも１つの既存のピクセル値エントリとの間の絶対差分が、デルタ値以下である場合、ビデオエンコーダ２０は、候補ピクセル値エントリＰｌｔ＿ｃａｎｄをパレットに追加しなくてよい。したがって、ピクセル値エントリＰｌｔ＿ｃａｎｄをコーディングするとき、ビデオエンコーダ２０は、ピクセル値エントリＰｌｔ＿ｃａｎｄに最も近いピクセル値を伴うエントリを選択し、それによっていくらかの損失をシステムにもたらし得る。パレットが複数の成分（たとえば、３つの色成分）から構成されるとき、個々の成分値の絶対差分の合計が、デルタ値に対する比較のために使用され得る。代替または追加として、各成分値のための絶対差分は、第２のデルタ値に対して比較され得る。
【００９０】
[0097]いくつかの例では、上述されたパレット中の既存のピクセル値エントリが、同様のデルタ比較プロセスを使用して追加されていることがある。他の例では、パレット中の既存のピクセル値が、他のプロセスを使用して追加されていることがある。たとえば、１つまたは複数の初期ピクセル値エントリが、パレットを構築するデルタ比較プロセスを開始するために（デルタ比較を伴わずに）パレットに追加され得る。上記で説明されたプロセスは、ルーマパレットおよび／またはクロマパレットを生成するために、ビデオエンコーダ２０および／またはビデオデコーダ３０によって実施され得る。
【００９１】
[0098]パレット構築に関して上記で説明された技法も、ピクセルコーディングの間にビデオエンコーダ２０およびビデオデコーダ３０によって使用され得る。たとえば、ピクセル値を符号化するとき、ビデオエンコーダ２０は、ピクセルの値をパレット中のエントリのピクセル値と比較し得る。ピクセルの値とパレット中のエントリのうちの１つとの間の絶対ピクセル値差分が、デルタ値以下である場合、ビデオエンコーダ２０は、パレットのエントリとしてピクセル値を符号化し得る。すなわち、この例では、ビデオエンコーダ２０は、ピクセル値がパレットエントリに対して十分に小さい（たとえば、所定の範囲内の）絶対差分を生じるとき、パレットのエントリのうちの１つを使用して、ピクセル値を符号化する。
【００９２】
[0099]いくつかの例では、ビデオエンコーダ２０は、ピクセル値を符号化するために、（コーディングされているピクセル値と比較して）最小の絶対ピクセル値差分を生じるパレットエントリを選択し得る。一例として、ビデオエンコーダ２０は、ピクセル値のために使用されることになるパレットエントリ、たとえば、ビデオデコーダ３０においてコード化ピクセル値を再構築するために使用されることになるパレットピクセル値エントリを示すために、インデックスを符号化し得る。ピクセルの値とパレット中のエントリのすべてとの間の絶対ピクセル値差分が、デルタよりも大きい場合、エンコーダは、ピクセル値を符号化するためにパレットエントリのうちの１つを使用しなくてよく、代わりに、ビデオデコーダ３０に（場合によっては、量子化後に）ピクセルのピクセル値を送信（および、場合によっては、ピクセル値をエントリとしてパレットに追加）し得る。
【００９３】
[0100]別の例では、ビデオエンコーダ２０は、ピクセル値を符号化するためにパレットのエントリを選択し得る。ビデオエンコーダ２０は、予測ピクセル値として、選択されたエントリを使用し得る。すなわち、ビデオエンコーダ２０は、実際のピクセル値と選択されたエントリとの間の差分を表す残差値を決定し、残差を符号化し得る。ビデオエンコーダ２０は、パレットのエントリによって予測されるブロック中のピクセルのための残差値を生成し得、ピクセルのブロックのためのそれぞれの残差ピクセル値を含む残差ブロックを生成し得る。ビデオエンコーダ２０は、その後、（図２に関して上述されたような）変換と量子化とを残差ブロックに適用し得る。このようにして、ビデオエンコーダ２０は、量子化された残差変換係数を生成し得る。別の例では、残差は、可逆的に（変換および量子化を伴わずに）、または変換を伴わずにコーディングされ得る。
【００９４】
[0101]ビデオデコーダ３０は、残差ブロックを再生するために、変換係数を逆変換し、逆量子化し得る。次いで、ビデオデコーダ３０は、予測パレットエントリ値とピクセル値のための残差値とを使用して、ピクセル値を再構築し得る。たとえば、ビデオデコーダ３０は、コード化ピクセル値を再構築するために、残差値をパレットエントリ値と組み合わせ得る。
【００９５】
[0102]いくつかの例では、デルタ値は、異なるＣＵサイズ、ピクチャサイズ、色空間、または異なる色成分に対して異なり得る。デルタ値は、様々なコーディング条件に基づいて事前に決定されてよく、または決定されてよい。たとえば、ビデオエンコーダ２０は、ＰＰＳ、ＳＰＳ、ＶＰＳ、および／またはスライスヘッダ中のシンタックスのような高レベルのシンタックスを使用して、デルタ値をビデオデコーダ３０にシグナリングすることができる。他の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、同じ固定されたデルタ値を使用するように事前構成され得る。さらに他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、サイド情報（たとえば、上述されたような、ＣＵサイズ、色空間、色成分などのような）に基づいて、デルタ値を適応的に導出し得る。
【００９６】
[0103]いくつかの例では、不可逆コーディングパレットモードは、ＨＥＶＣコーディングモードとして含まれ得る。たとえば、コーディングモードは、イントラ予測モードと、インター予測モードと、可逆コーディングパレットモードと、不可逆コーディングパレットモードとを含み得る。ＨＥＶＣコーディングでは、図２および図３に関して上述されたように、可能にされたひずみを制御するために、量子化パラメータ（ＱＰ）が使用される。パレットベースコーディングのためのデルタの値は、ＱＰの関数として計算され得るか、または別様に決定され得る。
【００９７】
[0104]本開示で説明される不可逆コーディング技法を使用したパレットの生成は、ビデオエンコーダ２０、ビデオデコーダ３０、または両方によって実施され得る。たとえば、ビデオエンコーダ２０は、上記で説明されたデルタ比較技法を使用して、ＣＵのためのパレット中のエントリを生成し、ビデオデコーダ３０による使用のためにパレットの構築のための情報をシグナリングし得る。すなわち、ビデオエンコーダ２０は、ＣＵのためのパレット中のエントリのためのピクセル値を示す情報をシグナリングし、次いで、そのようなパレットエントリに関連付けられたピクセル値を使用して、ピクセル値を符号化するように構成され得る。ビデオデコーダ３０は、そのような情報を使用してパレットを構築し得、次いで、コード化ブロックのピクセル値を復号するために、エントリを使用し得る。いくつかの例では、ビデオエンコーダ２０は、コード化ブロックの１つまたは複数のピクセル位置のためのパレットエントリを特定するインデックス値をシグナリングし得、ビデオデコーダ３０は、パレットから関連するピクセル値エントリを取り出すために、インデックス値を使用し得る。
【００９８】
[0105]他の例では、ビデオデコーダ３０は、上記で説明されたデルタ比較技法を適用することによって、パレットを構築するように構成され得る。たとえば、ビデオデコーダ３０は、コード化ブロック内の位置のためのピクセル値を受信し得、ピクセル値とパレット中の既存のピクセル値エントリとの間の絶対差分がデルタ値よりも大きいか否かを決定し得る。そうである場合、ビデオデコーダ３０は、たとえば、ビデオエンコーダ２０によってシグナリングされた対応するインデックス値を使用したブロックの他のピクセル位置のためのピクセル値のパレットベースの復号において後で使用するために、ピクセル値をエントリとしてパレット中に追加し得る。この場合、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットを生成するために同じまたは同様のプロセスを適用する。そうでない場合、ビデオデコーダ３０は、ピクセル値をパレットに追加しなくてよい。
【００９９】
[0106]例示を目的とする例では、ビデオデコーダ３０は、ブロック中の様々なピクセル位置のためのインデックス値またはピクセル値を受信し得る。インデックス値がピクセル位置について受信される場合、たとえば、ビデオデコーダ３０は、パレット中のエントリを特定するためにインデックス値を使用し、ピクセル位置のためのパレットエントリのピクセル値を使用し得る。ピクセル値がピクセル位置について受信される場合、ビデオデコーダ３０は、ピクセル位置について受信されたピクセル値を使用し得、また、ピクセル値がパレットに追加され次いでパレットコーディングのために後で使用されるべきであるか否かを決定するために、デルタ比較を適用し得る。
【０１００】
[0107]エンコーダ側では、ブロック中の位置のためのピクセル値が、デルタ値以下である、ピクセル値とパレット中の既存のピクセル値エントリとの間の絶対差分を生じる場合、ビデオエンコーダ２０は、その位置のためのピクセル値を再構築する際に使用するためのパレット中のエントリを特定するために、インデックス値を送り得る。ブロック中の位置のためのピクセル値が、すべてがデルタ値よりも大きい、ピクセル値とパレット中の既存のピクセル値エントリとの間の絶対差分値を生じる場合、ビデオエンコーダ２０は、ピクセル値を送り得、ピクセル値をパレット中の新しいエントリとして追加し得る。パレットを構築するために、ビデオデコーダ３０は、たとえば、上記で説明されたように、エンコーダによってシグナリングされたデルタ値を使用し、固定もしくは既知のデルタ値に依拠し、またはデルタ値を推論もしくは導出し得る。
【０１０１】
[0108]上述のように、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータをコーディングするとき、イントラ予測モードと、インター予測モードと、可逆コーディングパレットモードと、不可逆コーディングパレットモードとを含む、コーディングモードを使用し得る。本開示のいくつかの態様によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットベースコーディングが有効にされるか否かを示す１つまたは複数のシンタックス要素をコーディングし得る。たとえば、各ＣＵにおいて、ビデオエンコーダ２０は、フラグＰＬＴ＿Ｍｏｄｅ＿ｆｌａｇのようなシンタックス要素を符号化することができる。ＰＬＴ＿Ｍｏｄｅ＿ｆｌａｇまたは他のシンタックス要素は、パレットベースコーディングモードが所与のＣＵ（または、他の例ではＰＵ）のために使用されるべきであるか否かを示し得る。たとえば、このフラグは、ＣＵレベルで符号化ビデオビットストリーム中でシグナリングされ得、次いで、符号化ビデオビットストリームを復号すると、ビデオデコーダ３０によって受信され得る。
【０１０２】
[0109]この例では、１に等しいこのＰＬＴ＿Ｍｏｄｅ＿ｆｌａｇの値は、パレットベースコーディングモードを使用して現在ＣＵが符号化されることを指定し得る。この場合、ビデオデコーダ３０は、ＣＵを復号するために、パレットベースコーディングモードを適用し得る。いくつかの例では、シンタックス要素は、ＣＵのための複数の異なるパレットベースコーディングモードのうちの１つ（たとえば、不可逆または可逆）を示し得る。０に等しいこのＰＬＴ＿Ｍｏｄｅ＿ｆｌａｇの値は、パレットモード以外のモードを使用して現在ＣＵが符号化されることを指定し得る。たとえば、様々なインター予測コーディングモード、イントラ予測コーディングモード、または他のコーディングモードのいずれもが使用され得る。ＰＬＴ＿Ｍｏｄｅ＿ｆｌａｇの値が０であるとき、ビデオエンコーダ２０はまた、それぞれのＣＵを符号化するために使用される特定のモード（たとえば、ＨＥＶＣコーディングモード）を示すように、追加のデータを符号化し得る。ＰＬＴ＿Ｍｏｄｅ＿ｆｌａｇの使用が、例を目的に説明される。しかしながら、他の例では、マルチビットコードのような他のシンタックス要素が、パレットベースコーディングモードがＣＵ（または、他の例ではＰＵ）のために使用されるべきであるか否かを示すために、または、複数のモードのいずれがコーディングのために使用されるべきであるかを示すために使用され得る。
【０１０３】
[0110]いくつかの例では、上記で説明されたフラグまたは他のシンタックス要素は、ＣＵ（またはＰＵ）レベルよりも高いレベルで送信され得る。たとえば、ビデオエンコーダ２０は、そのようなフラグをスライスレベルでシグナリングし得る。この場合、１に等しい値は、スライス中のＣＵのすべてがパレットモードを使用して符号化されることを示す。この例では、たとえばパレットモードまたは他のモードのために、追加のモード情報はＣＵレベルでシグナリングされない。別の例では、ビデオエンコーダ２０は、そのようなフラグを、ＰＰＳ、ＳＰＳ、またはＶＰＳにおいてシグナリングし得る。
【０１０４】
[0111]本開示のいくつかの態様によれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、パレットモードが特定のスライス、ピクチャ、シーケンスなどのために有効にされるか無効にされるかを指定する１つまたは複数のシンタックス要素（たとえば、上記で説明されたフラグなど）を、スライスレベル、ＰＰＳレベル、ＳＰＳレベル、またはＶＰＳレベルのうちの１つにおいてコーディングし得、一方、ＰＬＴ＿Ｍｏｄｅ＿ｆｌａｇは、パレットベースコーディングモードが各ＣＵのために使用されるか否かを示す。この場合、スライスレベル、ＰＰＳレベル、ＳＰＳレベル、またはＶＰＳレベルで送られたフラグまたは他のシンタックス要素が、パレットコーディングモードが無効にされることを示す場合、いくつかの例では、各ＣＵのためにＰＬＴ＿Ｍｏｄｅ＿ｆｌａｇをシグナリングする必要はないことがある。代替的に、スライスレベル、ＰＰＳレベル、ＳＰＳレベル、またはＶＰＳレベルで送られたフラグまたは他のシンタックス要素が、パレットコーディングモードが有効にされることを示す場合、パレットベースコーディングモードが各ＣＵのために使用されるべきであるか否かを示すために、ＰＬＴ＿Ｍｏｄｅ＿ｆｌａｇがさらにシグナリングされ得る。やはり、上述のように、ＣＵのパレットベースコーディングを示すためのこれらの技法の適用は、追加または代替として、ＰＵのパレットベースコーディングを示すために使用され得る。
【０１０５】
[0112]いくつかの例では、上記で説明されたシンタックス要素は、ビットストリーム中で条件付きでシグナリングされ得る。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、ＣＵのサイズ、フレームタイプ、色空間、色成分、フレームサイズ、フレームレート、スケーラブルビデオコーディングにおけるレイヤｉｄ、またはマルチビューコーディングにおけるビューｉｄに基づいて、シンタックス要素をそれぞれ符号化するだけでよく、または復号するだけでよい。
【０１０６】
[0113]上記で説明された例は、たとえば、ビットストリーム中の１つまたは複数のシンタックス要素を伴う明示的なシグナリングに関するが、他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、パレットコーディングモードがアクティブであるか否か、および／または特定のブロックをコーディングするために使用されるか否かを暗黙的に決定し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、たとえば、ＣＵのサイズ、フレームタイプ、色空間、色成分、フレームサイズ、フレームレート、スケーラブルビデオコーディングにおけるレイヤｉｄ、またはマルチビューコーディングにおけるビューｉｄに基づいて、パレットベースコーディングがブロックのために使用されるか否かを決定し得る。
【０１０７】
[0114]図２の技法は、ＣＵ（ＨＥＶＣ）のコンテキストにおいて上記で説明されるが、この技法は、予測ユニット（ＰＵ）にも、または、他のビデオコーディングプロセスおよび／もしくは規格においても適用され得ることを理解されたい。
【０１０８】
[0115]図３は、本開示の技法に一致する、ビデオブロックのためのパレットへのインデックスを決定する例を示す概念図である。たとえば、図３は、インデックス値に関連付けられたピクセルのそれぞれの位置をパレット２４４のエントリに関係付ける、インデックス値（値１、２、および３）のマップ２４０を含む。パレット２４４は、図２に関して上記で説明された第１のパレット１８４および第２のパレット１９２と同様の方式で決定され得る。
【０１０９】
[0116]ここでも、図３の技法は、ビデオエンコーダ２０（図１および図６）およびビデオデコーダ３０（図１および図７）のコンテキストにおいて、説明の目的でＨＥＶＣビデオコーディング規格に関して説明される。しかしながら、本開示の技法はこのように限定されず、他のビデオコーディングプロセスおよび／または規格において他のビデオコーディングプロセッサおよび／またはデバイスによって適用され得ることを理解されたい。
【０１１０】
[0117]マップ２４０は、各ピクセル位置のためのインデックス値を含むものとして図３の例に示されているが、他の例では、すべてのピクセル位置が、ブロックのピクセル値を指定するパレット２４４のエントリを示すインデックス値に関連付けられ得るとは限らないことを理解されたい。すなわち、上述のように、いくつかの例では、ビデオエンコーダ２０は、ピクセル値がパレット２４４中に含まれない場合、マップ２４０中の位置のための実際のピクセル値（または、それの量子化バージョン）の指示を符号化し得る（および、ビデオデコーダ３０は、符号化ビットストリームからその指示を取得し得る）。
【０１１１】
[0118]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、どのピクセル位置がインデックス値に関連付けられるかを示す追加のマップをコーディングするように構成され得る。たとえば、マップ中の（ｉ，ｊ）のエントリがＣＵの（ｉ，ｊ）の位置に対応すると仮定する。ビデオエンコーダ２０は、エントリが、関連付けられたインデックス値を有するか否かを示す、マップの各エントリ（すなわち、各ピクセル位置）のための１つまたは複数のシンタックス要素を符号化し得る。たとえば、ビデオエンコーダ２０は、ＣＵ中の（ｉ，ｊ）のロケーションにおけるピクセル値がパレット２４４中の値のうちの１つであることを示すように、１の値を有するフラグを符号化し得る。そのような例では、ビデオエンコーダ２０はまた、パレット中のそのピクセル値を示し、ビデオデコーダがピクセル値を再構築することを可能にするように、パレットインデックス（値１〜３として図３の例では示される）を符号化し得る。パレット２４４が単一のエントリと関連付けられたピクセル値とを含む事例では、ビデオエンコーダ２０は、インデックス値のシグナリングをスキップし得る。ビデオエンコーダ２０は、ＣＵ中の（ｉ，ｊ）のロケーションにおけるピクセル値がパレット２４４中の値のうちの１つではないことを示すように、０の値を有するようにフラグを符号化し得る。この例では、ビデオエンコーダ２０はまた、ピクセル値を再構築する際にビデオデコーダ３０によって使用するために、ピクセル値の指示を符号化し得る。いくつかの事例では、ピクセル値は不可逆的な方式でコーディングされ得る。
【０１１２】
[0119]ＣＵの１つの位置におけるピクセルの値は、ＣＵの他の位置における１つまたは複数の他のピクセルの値の指示を提供し得る。たとえば、ＣＵの隣接ピクセル位置が同じピクセル値を有すること、または、（２つ以上のピクセル値が単一のインデックス値にマッピングされ得る、不可逆コーディングの場合において）ＣＵの隣接ピクセル位置が同じインデックス値にマッピングされ得ることの確率が比較的高いことがある。
【０１１３】
[0120]本開示の態様によれば、ビデオエンコーダ２０は、同じピクセル値またはインデックス値を有する、所与の走査順序における連続するピクセル値またはインデックス値の数を示す、１つまたは複数のシンタックス要素を符号化し得る。上述のように、同様の値のピクセル値またはインデックス値の列は、本明細書では、ランと呼ばれることがある。例示を目的とする例では、所与の走査順序の２つの連続するピクセルまたはインデックスが異なる値を有する場合、ランは０に等しい。所与の走査順序の２つの連続するピクセルまたはインデックスが同じ値を有するが、その走査順序の３番目のピクセルまたはインデックスが異なる値を有する場合、ランは１に等しい。同じ値をもつ３つの連続するインデックスまたはピクセルでは、ランは２であり、以下同様である。ビデオデコーダ３０は、符号化ビットストリームからランを示すシンタックス要素を取得し、同じピクセル値またはインデックス値を有する連続するロケーションの数を決定するためにそのデータを使用し得る。
【０１１４】
[0121]いくつかの例では、現在ＣＵのためのパレット中にあるピクセル値を有する現在ＣＵ中のすべてのピクセルロケーションは、連続的なピクセルロケーションにおいてピクセル値の「ラン」が後に続くパレットインデックスとともに符号化される。パレット中に１つのエントリしかない場合、パレットインデックスまたは「ラン」の送信は、現在ＣＵについてはスキップされ得る。現在ＣＵ中のピクセルロケーションのうちの１つにおけるピクセル値が、パレット中のピクセル値に対して厳密な一致を有していない場合、ビデオエンコーダ２０は、最も近いピクセル値を有するパレットエントリのうちの１つを選択し得、元のピクセル値とパレット中に含まれる予測ピクセル値との間の予測誤差または残差値を計算し得る。ビデオエンコーダ２０は、ピクセルロケーションのための残差値を符号化し、ビデオデコーダに送信する。ビデオデコーダ３０は次いで、対応する受信されたパレットインデックスに基づいて、ピクセルロケーションにおけるピクセル値を導出し得、次いで、導出されたピクセル値および残差値は、現在ＣＵ中のピクセルロケーションにおける元のピクセル値を予測するために使用される。一例では、残差値は、残差値を変換し、変換係数を量子化し、量子化変換係数をエントロピー符号化するために、ＲＱＴを適用することなど、ＨＥＶＣ方法を使用して符号化され得る。場合によっては、上記の例は、不可逆コーディングと呼ばれることがある。
【０１１５】
[0122]例示を目的とする例では、マップ２４０のライン２４８を考える。水平方向の左から右への走査方向を仮定すると、ライン２４８は、５つの「２」のインデックス値と、３つの「３」のインデックス値とを含む。本開示の態様によれば、ビデオエンコーダ２０は、走査方向におけるライン２４８の第１の位置のために２のインデックス値を符号化し得る。加えて、ビデオエンコーダ２０は、シグナリングされたインデックス値と同じインデックス値を有する、走査方向における連続する値のランを示す１つまたは複数のシンタックス要素を符号化し得る。ライン２４８の例では、ビデオエンコーダ２０は、４のランをシグナリングし、それによって、走査方向における後続の４つの位置のインデックス値がシグナリングされたインデックス値と同じインデックス値を共有することを示し得る。ビデオエンコーダ２０は、ライン２４８中の次の異なるインデックス値のために、同じプロセスを実施し得る。すなわち、ビデオエンコーダ２０は、３のインデックス値と、２のランを示す１つまたは複数のシンタックス要素とを符号化し得る。ビデオデコーダ３０は、インデックス値と、同じインデックス値を有する走査方向における連続するインデックスの数（ラン）とを示す、シンタックス要素を取得し得る。
【０１１６】
[0123]上述のように、マップのインデックスは、特定の順序で走査される。本開示の態様によれば、走査方向は、垂直方向、水平方向、または対角方向（たとえば、ブロックにおいて対角方向に４５度または１３５度）であり得る。いくつかの例では、ビデオエンコーダ２０は、ブロックのインデックスを走査するための走査方向を示す、各ブロックのための１つまたは複数のシンタックス要素を符号化し得る。追加または代替として、走査方向は、たとえば、ブロックサイズ、色空間、および／または色成分のようないわゆるサイド情報に基づいて、シグナリングまたは推論され得る。ビデオエンコーダ２０は、ブロックの各色成分のための走査を指定し得る。代替的に、指定された走査は、ブロックのすべての色成分に適用され得る。
【０１１７】
[0124]たとえば、列ベースの走査に関して、マップ２４０の列２５２を考える。垂直方向の上から下への走査方向を仮定すると、列２５２は、１つの「１」のインデックス値と、５つの「２」のインデックス値と、２つの「３」のインデックス値とを含む。本開示の態様によれば、ビデオエンコーダ２０は、（列２５２の相対的な上部における）走査方向におけるライン２５２の第１の位置のために１のインデックス値を符号化し得る。加えて、ビデオエンコーダ２０は、０のランをシグナリングし、それによって、走査方向において後続の位置のインデックス値が異なることを示し得る。ビデオエンコーダ２０は次いで、走査方向における次の位置のための２のインデックス値と、４のラン、すなわち、走査方向における後続の４つの位置のインデックス値が、シグナリングされたインデックス値と同じインデックス値を共有することを示す、１つまたは複数のシンタックス要素とを符号化し得る。次いで、ビデオエンコーダ２０は、走査方向における次の異なるインデックス値のための３のインデックス値と、１のランを示す１つまたは複数のシンタックス要素とを符号化し得る。ビデオデコーダ３０は、インデックス値と、同じインデックス値を有する走査方向における連続するインデックスの数（ラン）とを示す、シンタックス要素を取得し得る。
【０１１８】
[0125]本開示の態様によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、追加または代替として、マップ２４０の１つまたは複数のエントリのためにラインコピーを実施し得る。ラインコピーは、いくつかの例では、走査方向に依存し得る。たとえば、ビデオエンコーダ２０は、マップ中の特定のエントリのためのピクセル値またはインデックス値が、（水平方向の走査では）特定のエントリの上のラインにおける、または（垂直方向の走査では）特定のエントリの左の列における、ピクセル値またはインデックス値に等しいことを示し得る。ビデオエンコーダ２０はまた、特定のエントリの上のライン、または特定のエントリの左の列におけるエントリに等しい、走査順序におけるピクセル値またはインデックス値の数を、ランとして示し得る。この例では、ビデオエンコーダ２０およびまたはビデオデコーダ３０は、指定された隣接ラインから、および、現在コーディングされているマップのラインのための指定された数のエントリから、ピクセル値またはインデックス値をコピーし得る。
【０１１９】
[0126]例示を目的とする例では、マップ２４０の列２５６と２６０とを考える。垂直方向の上から下への走査方向を仮定すると、列２５６は、３つの「１」のインデックス値と、３つの「２」のインデックス値と、２つの「３」のインデックス値とを含む。列２６０は、走査方向において同じ順序を有する同じインデックス値を含む。本開示の態様によれば、ビデオエンコーダ２０は、列２６０全体が列２５６からコピーされることを示す、列２６０のための１つまたは複数のシンタックス要素を符号化し得る。１つまたは複数のシンタックス要素は、マップ２４０の相対的な上部において列２６０の第１のエントリに関連付けられ得る。ビデオデコーダ３０は、ラインコピーを示すシンタックス要素を取得し、列２６０を復号するときに列２６０のための列２５６のインデックス値をコピーし得る。
【０１２０】
[0127]本開示の態様によれば、エントリのいわゆるランをコーディングするための技法が、上記で説明されたラインコピーのための技法とともに使用され得る。たとえば、ビデオエンコーダ２０は、マップ中のエントリの値がパレットから取得されるか否か、または、マップ中のエントリの値がマップ２４０中の前にコーディングされたラインから取得されるか否かを示す、１つまたは複数のシンタックス要素（たとえば、フラグ）を符号化し得る。ビデオエンコーダ２０はまた、パレットのインデックス値、またはライン（行または列）中のエントリのロケーションを示す、１つまたは複数のシンタックス要素を符号化し得る。ビデオエンコーダ２０はまた、同じ値を共有する連続するエントリの数を示す、１つまたは複数のシンタックス要素を符号化し得る。ビデオデコーダ３０は、符号化ビットストリームからそのような情報を取得し得、ブロックのためのマップとピクセル値とを再構築するために、その情報を使用し得る。
【０１２１】
[0128]説明の目的のための一例では、マップ２４０の行２６４および２６８について考える。水平方向の左から右への走査方向を仮定すると、行２６４は、５つの「１」のインデックス値と、３つの「３」のインデックス値とを含む。行２６８は、３つの「１」のインデックス値と、２つの「２」のインデックス値と、３つの「３」のインデックス値とを含む。この例では、ビデオエンコーダ２０は、行２６８のためのデータを符号化するときにランの前にある行２６４の特定のエントリを特定し得る。たとえば、ビデオエンコーダ２０は、行２６８の第１の位置（行２６８の一番左の位置）が行２６４の第１の位置と同じであることを示す、１つまたは複数のシンタックス要素を符号化し得る。ビデオエンコーダ２０はまた、行２６８中の走査方向における２つの連続するエントリの次のランが行２６４の第１の位置と同じであることを示す、１つまたは複数のシンタックス要素を符号化し得る。
【０１２２】
[0129]いくつかの例では、ビデオエンコーダ２０はまた、別の行（または列）中のある位置に対する現在のピクセル値もしくはインデックス値をコーディングするべきか否か、または、ランシンタックス要素を使用して現在のピクセル値もしくはインデックス値をコーディングするべきか否かを決定し得る。たとえば、（上述されたように）行２６４の第１の位置と２つのエントリのランとを示す、１つまたは複数のシンタックス要素を符号化した後、ビデオエンコーダ２０は、ライン２６８中の（左から右に）第４の位置および第５の位置について、第４の位置のための２の値を示す１つまたは複数のシンタックス要素と、１のランを示す１つまたは複数のシンタックス要素とを符号化し得る。したがって、ビデオエンコーダ２０は、別のライン（または列）を参照することなしに、これらの２つの位置を符号化する。ビデオエンコーダ２０は次いで、上の行２６４に対する、行２６８中の３のインデックス値を有する第１の位置をコーディングし得る（たとえば、上の行２６４からのコピーと、同じインデックス値を有する、走査順序における連続する位置のランとを示す）。したがって、本開示の態様によれば、ビデオエンコーダ２０は、たとえばランを使用して、ライン（または列）のピクセル値またはインデックス値をそのライン（または列）の他の値に対してコーディングすること、ライン（または列）のピクセル値またはインデックス値を別のライン（または列）の値に対してコーディングすること、またはそれらの組合せの間で選択し得る。いくつかの例では、ビデオエンコーダ２０は、選択を行うために、レート／ひずみ最適化を実施し得る。
【０１２３】
[0130]ビデオデコーダ３０は、上記で説明されたシンタックス要素を受信し得、行２６８を再構築し得る。たとえば、ビデオデコーダ３０は、現在コーディングされているマップ２４０の位置のための関連付けられたインデックス値をそこからコピーするための、隣接行中の特定のロケーションを示すデータを取得し得る。ビデオデコーダ３０はまた、同じインデックス値を有する、走査順序における連続するロケーションの数を示すデータを取得し得る。
【０１２４】
[0131]いくつかの事例では、そこからエントリがコピーされるラインは、（図３の例に示されているように）現在コーディングされているラインのエントリに直接隣接し得る。しかしながら、他の例では、ある数のラインが、ビデオエンコーダ２０および／またはビデオデコーダ３０によってバッファリングされ得るので、マップのその数のラインのいずれかが、現在コーディングされているマップのラインのための予測エントリとして使用され得る。したがって、いくつかの例では、エントリのためのピクセル値は、現在の行のすぐ上の行（もしくは左の列）、または現在の行の２つ以上上の行（もしくは左の列）の中のエントリのピクセル値に等しくなるようにシグナリングされ得る。
【０１２５】
[0132]例示を目的とする例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、エントリの現在の行をコーディングするより前に、エントリの以前のｎ個の行を記憶するように構成され得る。この例では、ビデオエンコーダ２０は、切捨て単項コードまたは他のコードを用いて、ビットストリーム中で予測行（そこからエントリがコピーされる行）を示し得る。別の例では、ビデオエンコーダ２０は、現在のラインと、現在のラインをコーディングするために参照として使用されるマップ２４０の予測ラインとの間の、変位値を符号化し得る（および、ビデオデコーダ３０は復号し得る）。すなわち、ビデオエンコーダ２０は、そこからインデックス値がコピーされる特定のライン（または列）の指示を符号化し得る。いくつかの例では、変位値は変位ベクトルであり得る。すなわち、ｃ［０］、ｃ［１］、．．．を、マップ２４０の現在のラインのインデックスを示すものとし、ｕ［０］、ｕ［１］、ｕ［２］、．．．を、上の隣接ラインなど、マップ２４０の予測ラインのインデックスを示すものとする。この例では、変位ベクトルがｄであるとすると、ｃ［ｉ］のためのインデックス値は、ｄが負の値をとることを避けるために、ｕ［ｉ＋ｄ］またはｕ［ｉ−ｄ］から予測され得る。ｄの値は、単項コード、切捨て単項コード、指数ゴロムコード、またはゴロム−ライスコードを使用してコーディングされ得る。
【０１２６】
[0133]別の例として、ビデオエンコーダ２０は、「上のラインの左半分からコピー」または「上のラインの右半分からコピー」など、現在コーディングされているマップのラインにコピーするべき、隣接ラインと隣接ラインのエントリの数または部分とを示す、命令をシグナリングし得る。追加の例として、インデックス値のマップは、コーディングの前に再び順序付けられ得る。たとえば、インデックス値のマップは、コーディング効率を改善するために、９０度、１８０度、もしくは２７０度回転されてよく、または上下もしくは左右が反転されてよい。
【０１２７】
[0134]他の例では、ビデオエンコーダ２０は、マップ２４０の同様の値のインデックス値のランをビデオデコーダ３０に送信しなくてよい。この場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ランの値を暗黙的に導出することができる。一例では、ランの値は、定数値、たとえば４、８、１６などであってよい。別の例では、ランの値は、たとえば、ブロックサイズ、量子化パラメータ（ＱＰ）、フレームタイプ、色成分、カラーフォーマット（たとえば、４：４：４、４：２：２、または４：２：０）、色空間（たとえば、ＹＵＶまたはＲＧＢ）、走査方向、および／または現在ブロックのための他のタイプの特性情報のような、コーディングされているビデオデータの現在ブロックのサイド情報に依存し得る。ランの値がブロックサイズに依存する場合、ランは、現在ブロックの幅、現在ブロックの高さ、現在ブロックの幅の半分（もしくは、高さの半分）、現在ブロックの幅および／もしくは高さの分数、または現在ブロックの幅および／もしくは高さの倍数に等しくなり得る。別の例では、ビデオエンコーダ２０は、ピクチャパラメータセット（ＰＰＳ）、シーケンスパラメータセット（ＳＰＳ）、ビデオパラメータセット（ＶＰＳ）、および／またはスライスヘッダ中のシンタックス情報のような高レベルのシンタックスを使用して、ランの値をビデオデコーダ３０にシグナリングし得る。
【０１２８】
[0135]追加または代替として、ビデオエンコーダ２０は、マップ２４０をビデオデコーダ３０に送信する必要もないことがある。代わりに、ビデオエンコーダ２０および／またはビデオデコーダ３０は、マップ２４０中に含まれるインデックス値の各ランの開始の位置またはロケーションを、暗黙的に導出し得る。一例では、ビデオエンコーダ２０および／またはビデオデコーダ３０によって適用されるビデオコーディング規格は、ランがあるロケーションにおいてのみ開始し得ると決定し得る。たとえば、ランは、各行の始め、またはコーディングされている現在ブロックのＮ行ごとの始めにおいてのみ開始し得る。開始ロケーションは、異なる走査順序に対して異なり得る。たとえば、垂直方向の走査が使用される場合、ランは、列の始め、または現在ブロックのＮ列ごとの始めにおいてのみ開始し得る。
【０１２９】
[0136]別の例では、開始ロケーションは、たとえば、ブロックサイズ、ＱＰ、フレームタイプ、色成分、カラーフォーマット（たとえば、４：４：４、４：２：２、または４：２：０）、色空間（たとえば、ＹＵＶまたはＲＧＢ）、走査方向、および／または現在ブロックのための他のタイプの特性情報のような、現在ブロックのためのサイド情報に応じて導出され得る。ランの開始ロケーションがブロックサイズに依存する場合、開始ロケーションは、各行および／もしくは各列の中間点、または各行および／もしくは列の分数（たとえば、１／ｎ、２／ｎ、．．．（ｎ−１）／ｎ）であり得る。別の例では、ビデオエンコーダ２０は、ＰＰＳ、ＳＰＳ、ＶＰＳ、および／またはスライスヘッダ中のシンタックスのような高レベルのシンタックスを使用して、開始位置をビデオデコーダ３０にシグナリングし得る。
【０１３０】
[0137]いくつかの例では、各々上記で説明された、暗黙的な開始位置の導出および暗黙的なランの導出は、組み合わされ得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、マップの同様の値のインデックス値のランが２つの隣接開始位置の間の距離に等しいと決定し得る。開始位置が現在ブロックの各行の始め（すなわち、最初の位置）である場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ランの長さが現在ブロックの行全体の長さに等しいと決定し得る。
【０１３１】
[0138]パレットを使用して、サンプルブロックが、インデックスブロックにマッピングされ得る。ランレングスベースのエントロピーコーディングが、インデックスブロックを圧縮するために使用される。Ｐｅｒ  Ｒ．ＪｏｓｈｉおよびＪ．  Ｘｕ、「Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｔ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  （ＨＥＶＣ）  ｓｃｒｅｅｎ  ｃｏｎｔｅｎｔ  ｃｏｄｉｎｇ：Ｄｒａｆｔ  ２」、ＪＣＴＶＣ−Ｓ１００５、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）、第１８回会合：札幌、日本、２０１４年６月３０日〜７月９日（以下、「ＪＣＴＶＣ−Ｓ１００５」）、パレットモードが、４：４：４クロマサブサンプリングのためのＨＥＶＣスクリーンコンテンツコーディング規格に採用された。本開示は、パレットモードを非４：４：４クロマサブサンプリングシナリオに拡張するための新しいプロセスについて説明する。たとえば、関連技術は、４：４：２クロマサブサンプリング、または４：２：０クロマサブサンプリングに適用され得る。
【０１３２】
[0139]スクリーンコンテンツビデオの特性に基づいて、ＳＣＣ効率を改善するために、パレットコーディングが導入された。詳細には、パレットコーディングは、ＳＣＣにおいて、１つのＣＵ内の色が、通常、数個のピーク値に集中するという事実に基づいて繰返しピクセル値を圧縮するために、ルックアップテーブル、すなわち、カラーパレットを導入する。特定のＣＵのためのパレットを仮定すれば、ＣＵ内のピクセルは、パレットインデックスにマッピングされる。第２の段階では、インデックスブロックの繰返しパターンを効果的に圧縮するために、効果的なｃｏｐｙ  ｆｒｏｍ  ｌｅｆｔランレングス方法が提案される。後に、パレットインデックスコーディングモードは、ランレングスコーディングを用いるｃｏｐｙ  ｆｒｏｍ  ｌｅｆｔとｃｏｐｙ  ｆｒｏｍ  ａｂｏｖｅの両方に一般化された。変換プロセスは、理論的にはパレットコーディングとともに実装され得るが、大部分の実装形態では、スクリーンコンテンツの視覚的品質に悪影響を及ぼし得る、鋭いエッジのぼかしを回避するために、変換プロセスは呼び出されない。
【０１３３】
[0140]パレットは、（インデックス、ピクセル値）ペアを記憶するデータ構造である。設計されたパレットは、たとえば、現在ＣＵ中のピクセル値のヒストグラムに基づいて、エンコーダ２０によって決定され得る。たとえば、ビデオエンコーダ２０は、パレット中に低周波数ピクセル値を含めることなしに、ピストグラム中のピーク値をパレットに追加し得る。パレットのサイズは、０から、３１に等しいｍａｘ＿ｐａｌｅｔｔｅ＿ｓｉｚｅまでの範囲内であるように制限され得る。
【０１３４】
[0141]ＳＣＣでは、１つのスライス内のＣＵブロックは、多くの支配的な色を共有し得る。したがって、（ＣＵ復号順序における）前のパレットモードＣＵのパレットを参照として使用して、現在ブロックのパレットを予測することが可能であり得る。たとえば、０〜１バイナリベクトルが、参照パレット中のピクセル値が現在のパレットによって再利用されるか否かを示すためにシグナリングされ得る。一例として、図４では、参照パレットが６つの項目を有すると仮定される。ベクトル（１，０，１，１，１，１）が現在パレットを用いてシグナリングされ、これは、ｖ0、ｖ2、ｖ3、ｖ4、およびｖ5は現在パレット中で再利用されるが、ｖ1は再利用されないことを示す。現在パレットが参照パレットから予測可能でない色を含んでいる場合、いくつかの予測されない色がコーディングされ、次いで、これらの色が直接シグナリングされる。たとえば、図４では、ｕ0およびｕ1が、ビットストリーム中に直接シグナリングされる。
【０１３５】
[0142]パレットモードを用いてコーディングされるブロックの場合、パレットは、前にパレットコーディングされたブロックのパレットエントリから予測され得、新しいエントリとして明示的にシグナリングされ得、または前にコーディングされたブロックのパレットが再利用され得る。再利用ベクトルは、デコーダに明示的にシグナリングされ得る。
【０１３６】
[0143]現在のＳＣＭ４．０テストモード（すなわち、Ｊｏｓｈｉら、「ＨＥＶＣ  Ｓｃｒｅｅｎ  Ｃｏｎｔｅｎｔ  Ｃｏｄｉｎｇ  Ｄｒａｆｔ  Ｔｅｘｔ  ３」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）、第２０回会合、ジュネーブ、スイス、２０１５年２月１０日〜２月１７日、文書ＪＣＴＶＣ−Ｔ１００５、以下「ＪＣＴＶＣ−Ｔ１００５」）では、規範的観点からのパレットコーディングの２つの主要な態様は、パレットのコーディングと、パレットモードでコーディングされているブロック中の各サンプルのためのパレットインデックスのコーディングとである。パレットインデックスのコーディングは、「インデックス」モードおよび「ｃｏｐｙ  ａｂｏｖｅ」モードという、２つの主要モードを使用して実施される。これは、ｐａｌｅｔｔｅ＿ｍｏｄｅフラグをコーディングすることによってシグナリングされる。「インデックス」モードはまた、エスケープサンプル、すなわち、パレットに属さないサンプルを示すために使用される。現在の設計では、「ｃｏｐｙ  ａｂｏｖｅ」モードは、パレットブロックの第１の行では可能でない。加えて、「ｃｏｐｙ  ａｂｏｖｅ」モードは、別の「ｃｏｐｙ  ａｂｏｖｅ」モードに後続しないことがある。これらの場合、「インデックス」モードが推論される。
【０１３７】
[0144]具体的には、パレットモードでは、ＣＵ中のピクセルが、次のように水平／垂直スネーク走査順序で符号化される。
【０１３８】
[0145]「インデックス」モードでは、１つのパレットインデックスが最初にシグナリングされる。インデックスがパレットのサイズに等しい場合、これは、サンプルがエスケープサンプルであることを示す。この場合、各成分のためのサンプル値または量子化サンプル値がシグナリングされる。たとえば、パレットサイズが４である場合、非エスケープサンプルについて、パレットインデックスは範囲［０，３］中にある。この場合、４のインデックス値がエスケープサンプルを示す。インデックスが非エスケープサンプルを示す場合、ランレングスを示す非負値ｎ−１によって、同じインデックスを共有する走査順序での後続のサンプルの数を指定するランレングスがシグナリングされ、これは、現在ピクセルを含む後続のｎ個のピクセルが、最初にシグナリングされたピクセルインデックスと同じピクセルインデックスを有することを意味する。
【０１３９】
[0146]「Ｃｏｐｙ  ｆｒｏｍ  Ａｂｏｖｅ」ランモード（ＣＡ）では、現在ピクセルを含む後続のｍ個のピクセルについて、それぞれ、パレットインデックスがすぐ上のそれらのネイバーと同じであることを示すために、非負ランレングス値ｍ−１のみが送信される。このモードは、パレットインデックスがＣｏｐｙ  ｆｒｏｍ  Ａｂｏｖｅランモード内で異なり得るという意味で、「インデックス」モードとは異なることに留意されたい。
【０１４０】
[0147]現在の設計では、パレットモードは、ＣＵレベルでシグナリングされるが、パレットモードは、ＰＵレベルでそれをシグナリングすることが可能であり得る。現在ブロック中のエスケープサンプルの存在を示すために、フラグｐａｌｅｔｔｅ＿ｅｓｃ＿ｖａｌ＿ｐｒｅｓｅｎｔ＿ｆｌａｇもシグナリングされる。
【０１４１】
[0148]パレットモードでは、ブロック中のピクセル走査は、２つのタイプ、すなわち、垂直トラバースまたは水平トラバース（スネーク状）走査であり得る。ブロック中で使用される走査パターンは、ブロック単位でシグナリングされるフラグｐａｌｅｔｔｅ＿ｔｒａｎｓｐｏｓｅ＿ｆｌａｇに従って導出される。
【０１４２】
[0149]パレットインデックスコーディング中に、パレットインデックス調整プロセスが適用され得る。ブロック中の第２のピクセルから開始すると、パレットインデックス調整プロセスは、前にコーディングされたピクセルのパレットモードを検査することを備えるか、またはそれからなり得る。最初に、パレットサイズが１だけ低減され、左モードがインデックスモードに等しい場合、コーディングされるべきパレットインデックスが１だけ低減される。インデックスが左パレットインデックスよりも大きい場合、または、左モードがＣｏｐｙ  ｆｒｏｍ  Ａｂｏｖｅモードである場合、コーディングされるべきパレットインデックスは、インデックスが上パレットインデックスよりも大きい場合、１だけ低減される。この説明は、符号化側から与えられており、対応するプロセスは、デコーダ側においても逆順で実施され得る。
【０１４３】
[0150]現在のＳＣＭ４．０テストモードでは、パレットインデックスは、切捨て２進コードを使用してコーディングされる。切捨て２進コーディングは、典型的には、有限アルファベットを伴う一様確率分布のために使用されるが、現在のＨＥＶＣでは使用されない。切捨て２進コーディングは、数ｎの合計サイズをもつアルファベットによってパラメータ化される。切捨て２進コーディングは、ｎが２のべき乗ではないとき、２進符号化のわずかにより一般的な形式である。
【０１４４】
[0151]ｎが２のべき乗である場合、０≦ｘ＜ｎについてのコード化値は、長さｌｏｇ２（ｎ）のｘのための単純なバイナリコードである。それ以外の場合、２ｋ≦ｎ＜２ｋ＋１となるようにｋ＝ｆｌｏｏｒ（ｌｏｇ２（ｎ））とし、ｕ＝２ｋ＋１−ｎとする。
【０１４５】
[0152]切捨て２進コーディングは、長さｋのコードワードを最初のｕ個のシンボルに割り当て、次いで、長さｋ＋１の最後のｎ−ｕ個のコードワードを残りのｎ−ｕ個のシンボルに割り当てる。表１は、ｎ＝５についての例である。
【０１４６】
【表１】
2018520562.tif 000003
【０１４７】
[0153]現在のＳＣＭ４．０インデックスコーディングでは、切捨て２進コード中のすべてのビンが再バイパスコーディングした。切捨て２進コードの動的範囲は、上記で説明されたインデックス調整プロセス後の低減されたインデックス動的範囲である。
【０１４８】
[0154]現在のＳＣＭ４．０では、表２に示されているように、ラン値の２値化は、単項コードと次数０の指数ゴロムコードとの連結（１における切替え点）である。
【０１４９】
【表２】
2018520562.tif 000004
【０１５０】
[0155]プレフィックス中の最大で最初の５つのビンは、通常のビンと（もしあれば）残りのプレフィックスとを使用中であり、サフィックスは、バイパスビンを使用中である。最初のビンでは、コンテキスト割当ては、（パレットランモードがインデックスモードである場合は）パレットランモードおよびパレットインデックス値に依存する。
【０１５１】
[0156]エントロピーコーディングのスループットを高めるために、バイパスビンのグループ化が望ましい。１つの可能な解決策は、Ｋａｒｃｚｅｗｉｃｚら、「Ｎｏｎ  ＣＥ１：Ｇｒｏｕｐｉｎｇ  Ｐａｌｅｔｔｅ  Ｉｎｄｉｃｅｓ  Ａｔ  Ｆｒｏｎｔ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）、第２０回会合、ＪＣＴＶＣ−Ｔ００６５、ジュネーブ、スイス、２０１５年２月１０〜１８日（以下、「ＪＣＴＶＣ−Ｔ００６５）において説明されているように、（ランコーディング前に）前部でインデックスコーディングをグループ化することになる。別の可能な解決策は、（ランコーディング後に）最後にインデックスをグループ化することである。この場合、インデックスとランとの間の依存問題が解決されなければならない。以下は、提案される解決策である。
【０１５２】
[0157]本開示の１つまたは複数の技法によれば、パレットインデックスのすべてが、（たとえば、ラン値の後で）最後にグループ化される。したがって、ラン値のコーディングは、インデックス値に依存しない。代わりに、ランコンテキストは、現在ブロック内のピクセル位置、もしくは現在ブロックのための（調整された）パレットサイズ、または両方の組合せに依存するように提案される。
【０１５３】
[0158]インデックスコーディングのコーディング性能を改善するために、パレットサイズ（または調整されたパレットサイズ）とラン値とに依存する、新規の２値化方法が提案される。
【０１５４】
[0159]エントロピーコーディングスループットを高めるために、本開示は、ランコーディングの後（たとえば、ラン関係シンタックス要素の後）、インデックスコーディング（たとえば、インデックス関係シンタックス要素）を一緒にグループ化することを提案する。そのような技法を実装するシンタックス構造の一例が、以下に表３において示される。
【０１５５】
【表３】
2018520562.tif 000005
【０１５６】
[0160]いくつかの例では、表３に示されているシンタックスは、ｐａｌｅｔｔｅ＿ｃｏｄｉｎｇシンタックス構造におけるものである。ｐａｌｅｔｔｅ＿ｃｏｄｉｎｇシンタックス構造は、ＣＵのためのｃｏｄｉｎｇ＿ｕｎｉｔシンタックス構造中に含まれる。
【０１５７】
[0161]表３では、ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥに等しいシンタックス要素ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇ［ｘＣ］［ｙＣ］は、パレットインデックスが上の行の中の同じロケーションにおけるパレットインデックスに等しいことを指定する。ＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに等しいｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇ［ｘＣ］［ｙＣ］は、サンプルのパレットインデックスの指示がビットストリーム中でコーディングされることを指定する。アレイインデックスｘＣ、ｙＣは、ピクチャの左上ルーマサンプルに対するサンプルのロケーション（ｘＣ，ｙＣ）を指定する。ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇが存在しないとき、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇは、次のように推論される。ＣｕｒｒＮｕｍＩｎｄｉｃｅｓがＮｕｍＰａｌｅｔｔｅＩｎｄｉｃｅｓに等しく、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘが０よりも大きい場合、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇは、ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥに等しいと推論される。そうでない場合（ＣｕｒｒＮｕｍＩｎｄｉｃｅｓがＮｕｍＰａｌｅｔｔｅＩｎｄｉｃｅｓ未満であるか、またはＭａｘＰａｌｅｔｔｅＩｎｄｅｘが０に等しい）、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇは、ＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに等しいと推論される。
【０１５８】
[0162]シンタックス要素ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１−１は、ｐａｌｅｔｔｅＲｕｎの２進表現における最上位ビットのインデックスを指定する。ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１の値は、両端値を含む０〜Ｆｌｏｏｒ（Ｌｏｇ２（（ＭａｘＰａｌｅｔｔｅＲｕｎ））＋１の範囲内にあるものとする。
【０１５９】
[0163]シンタックス要素ｐａｌｅｔｔｅ＿ｒｕｎ＿ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓは、ｐａｌｅｔｔｅＲｕｎの２進表現におけるリファインメントビットを指定する。変数ｐａｌｅｔｔｅＲｕｎは、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇがＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥに等しいときは、上の行の中の位置と同じパレットインデックスをもつ連続するロケーションの数−１を指定し、または、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇがＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに等しいときは、同じパレットインデックスをもつ連続するロケーションの数−１を指定する。ｐａｌｅｔｔｅ＿ｒｕｎ＿ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓが存在しないとき、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓは、０に等しいと推論される。ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１が存在するとき、変数ｐａｌｅｔｔｅＲｕｎは、次のように導出される。
・ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１が１よりも大きい場合、ｐａｌｅｔｔｅＲｕｎ＝（１＜＜（ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１−１））＋ｐａｌｅｔｔｅ＿ｒｕｎ＿ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓ
そうでない場合（０または１にに等しいｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１）、ｐａｌｅｔｔｅＲｕｎは、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１に等しく設定される。
【０１６０】
[0164]シンタックス要素ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｉｄｃは、ｃｕｒｒｅｎｔＰａｌｅｔｔｅＥｎｔｒｉｅｓによって表されたアレイへのインデックスの指示である。ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｉｄｃの値は、ブロック中の最初のインデックスについては、両端値を含む０〜ＭａｘＰａｌｅｔｔｅＩｎｄｅｘの範囲内にあるものとし、ブロック中の残りのインデックスについては、両端値を含む０〜（ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ−１）の範囲内にあるものとする。ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｉｄｃが存在しないとき、それは０に等しいと推論される。
【０１６１】
[0165]ランが最初にコーディングされるとき、ランコンテキスト割当ては、インデックス値情報がこの段階で利用可能ではないので、インデックス値に依存しないことがある。この依存問題を解決し、ランコーディングの良好なコーディング性能を維持するために、異なるコンテキスト割当て方法が、以下において提案される。
【０１６２】
[0166]したがって、本開示の一例によれば、ビデオデコーダ３０は、ビットストリーム中の第１のエントロピー符号化データに基づいて、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセット（たとえば、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇシンタックス要素と、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１シンタックス要素と、場合によってはｐａｌｅｔｔｅ＿ｒｕｎ＿ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓシンタックス要素と）を決定し得る。さらに、ビデオデコーダ３０は、ビットストリーム中の第２のエントロピー符号化データに基づいて、現在ブロックのためのパレットインデックスシンタックス要素のセット（たとえば、ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｉｄｃ）を決定し得、パレットインデックスシンタックス要素のセットが、ラン関係シンタックス要素グループのセットの後、ビットストリーム中で発生する。この例では、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループは、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示す。この例では、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素は、サンプル値のセットを備えるパレット中のエントリを示す。ビデオデコーダ３０は、パレット中のサンプル値に基づいて、現在ブロックを再構築し得る。
【０１６３】
[0167]同様に、一例では、ビデオエンコーダ２０は、ビットストリーム中に、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセット（たとえば、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇシンタックス要素と、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１シンタックス要素と、場合によってはｐａｌｅｔｔｅ＿ｒｕｎ＿ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓシンタックス要素と）に対応する、第１のエントロピー符号化データを含め得る。ビデオエンコーダ２０は、ビットストリーム中に、現在ブロックのためのパレットインデックスシンタックス要素のセット（たとえば、ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｉｄｃ）に対応する、第２のエントロピー符号化データを含め得る。この例では、第１のエントロピー符号化データは、第２のエントロピー符号化データの前に、ビットストリーム中で発生する。この例では、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループは、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示す。この例では、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素は、サンプル値のセットを備えるパレット中のエントリを示す。
【０１６４】
[0168]本開示は、インデックス値に依存するのではなく、ランコンテキスト割当てを使用することを提案する。本開示は、ランコーディングのためのコンテキストを割り当てるために、現在のランのための開始ピクセルロケーションを使用することを提案する。一例として、開始ピクセルが現在ブロック中の第１のピクセルである場合、コンテキストＡが、ランの第１のビンをコーディングするために使用され、そうでない場合、開始ピクセルが第１の行中のそのである場合、コンテキストＢが、ランの第１のビンをコーディングするために使用され、そうでない場合、コンテキストＣが、ランの第１のビンをコーディングするために使用される。この場合、「インデックス」モードおよび「ｃｏｐｙ  ａｂｏｖｅ」モードのためのコンテキストは、同じであってもそうでなくてもよいことに留意されたい。言い換えれば、各ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇについて、位置依存コンテキスト割当てのセットが使用され得る。これらの２つのモードのためのコンテキストは、共有されてもされなくてもよい。また、位置依存コンテキスト割当ては、第１のビンのみに制限されず、他の通常のビンにも同様に適用され得ることに留意されたい。
【０１６５】
[0169]たとえば、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、複数のエントロピーコーディングコンテキストから、それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択し得る。この例では、それぞれのエントロピーコーディングコンテキストの選択は、パレットインデックスシンタックス要素のいずれにも依存しない。ビデオコーダは、選択されたエントロピーコーディングコンテキストに基づいて、それぞれのラン関係シンタックス要素グループのビンをエントロピーコーディングし得る。この例では、ビデオコーダは、それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの現在ブロック内の位置に基づいて、それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択し得る。
【０１６６】
[0170]代替的に、本開示は、ランコーディングの第１のビン（または、他の通常のビン）のためのコンテキストを割り当てるために、現在ブロックのパレットサイズを使用することを提案する。一例として、現在のパレットサイズがしきい値Ｔ1よりも小さい場合、コンテキストＡが、第１のビンをコーディングするために使用され、そうでない場合、パレットサイズがＴ2よりも小さい場合、コンテキストＢが、第１のビンをコーディングするために使用され、そうでない場合、コンテキストＣが、第１のビンをコーディングするために使用される。開始ピクセルロケーションに応じたランコンテキスト割当てに関して上記で説明された技法と同様に、コンテキスト割当ては、「インデックス」モードと「ｃｏｐｙ  ａｂｏｖｅ」モードの両方、もしくは複数の通常のビン、またはこれらの組合せに一般化され得る。
【０１６７】
[0171]たとえば、ビデオコーダは、パレットのサイズに基づいて、それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択し得る。
【０１６８】
[0172]（調整された）パレットサイズとラン値情報との間の関係を効率的に活用するために、インデックス値をコーディングするために、新規の２値化方法が提案される。このセクションでは、提案される方法が、一例として、本開示における他の場所で上述されたように、インデックス調整後に調整されたパレットサイズに基づいて説明されることに留意されたい。提案される方法は、元のパレットサイズにも同様に適用され得る。容易な説明のために、調整されたパレットサイズが以下で使用される。
【０１６９】
[0173]異なるラン値に応じて、異なるインデックス２値化方法が提案される。一例として、ラン値がＲ1である場合、２値化方法Ｂ1が使用され、そうでない場合、２値化方法Ｂ2が、表４に示されているように使用され、ただし、Ｒ1は、この例では０に等しい。Ｂ1およびＢ2は、両端値を含めて、［０，ａｄｊｕｓｔｅｄＰａｌｅｔｔｅＳｉｚｅ−１］の範囲内の値を表すことができる、任意の２値化方法であり得る。一例として、Ｂ1またはＢ2は、切捨て２進コードワードもしくは単項コード、またはゴロムファミリーコード（指数ゴロムコード、ゴロムライスコード、これらの連結、もしくはこれらの切捨てバージョン）、またはこれらの組合せ、またはフラグ＋これらの２値化コードワードのいずれかであり得る。
【０１７０】
[0174]代替例として、３つ以上の２値化方法が、ラン値に応じて使用され得る。
【０１７１】
【表４】
2018520562.tif 000006
【０１７２】
[0175]たとえば、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビデオデコーダ３０は、ビットストリームから、それぞれのパレットインデックスシンタックス要素に対応するデータを取得し得る。この例では、ビデオデコーダ３０は、それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、それぞれのパレットインデックスシンタックス要素に対応するデータをエントロピー復号し得る。さらに、ビデオデコーダ３０は、同じパレットインデックスをもつ連続するロケーションの数に基づいて、２値化方法を決定し得る。ビデオデコーダ３０は、それぞれのパレットインデックスシンタックス要素の２値化バージョンを逆２値化するために、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素を決定し得る。
【０１７３】
[0176]別の例では、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビデオエンコーダ２０は、同じパレットインデックスをもつ連続するロケーションの数に基づいて、２値化方法を決定し得る。ビデオエンコーダ２０は、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素の２値化バージョンを生成し得る。さらに、この例では、ビデオエンコーダ２０は、それぞれのインデックスシンタックス要素の２値化バージョンをエントロピー符号化し得る。ビデオエンコーダ２０は、ビットストリーム中に、それぞれのパレットインデックスシンタックス要素のエントロピー符号化された２値化バージョンを含め得る。
【０１７４】
[0177]異なる調整されたパレットサイズ（ａｄｊｕｓｔｅｄＰａｌｅｔｔｅＳｉｚｅ）に応じて、異なるインデックス２値化方法が提案される。一例として、ａｄｊｕｓｔｅｄＰａｌｅｔｔｅＳｉｚｅがＳ1よりも小さい場合、２値化方法Ｂ1が使用され、そうでない場合、２値化方法Ｂ2が使用される。Ｓ1は、両端値を含めて、［０，ｍａｘＰａｌｅｔｔｅＳｉｚｅ］の範囲内の任意の有効な整数であり得る。しきい値Ｓ1は、エンコーダとデコーダの両方において、あらかじめ定義された値であり、またはスライス、ピクチャもしくはシーケンスレベルにおいて明示的にコーディングされ、または、０もしくはｍａｘＰａｌｅｔｔｅＳｉｚｅの間の相対差分を使用してコーディングされ得る。一例として、Ｓ1は、表５に示されている５に等しい。「ラン値情報を使用するインデックスコーディング」という名称の本開示のセクションと同様に、Ｂ1またはＢ2は、切捨て２進コードワードもしくは単項コード、またはゴロムファミリーコード（指数ゴロムコード、ゴロムライスコード、これらの連結、もしくはこれらの切捨てバージョン）、またはこれらの組合せ、またはフラグ＋これらの２値化コードワードのいずれかであり得、Ｂ1およびＢ2は、潜在的に異なる。ここで、異なる２値化方法（Ｂ1またはＢ2）が、異なるインデックス動的範囲をコーディングするために使用される。たとえば、表５では、以下で、Ｂ1は、両端値を含めて、［０，４］のインデックス動的範囲をコーディングするために使用されるが、Ｂ2は、両端値を含めて、［５，ａｄｊｕｓｔｅｄＰａｌｅｔｔｅＳｉｚｅ−１］のインデックス動的範囲をコーディングするために使用される。
【０１７５】
[0178]代替例として、３つ以上の２値化方法が、（調整された）パレットサイズに応じて使用され得る。
【０１７６】
【表５】
2018520562.tif 000007
【０１７７】
[0179]たとえば、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビデオデコーダ３０は、ビットストリームから、それぞれのパレットインデックスシンタックス要素に対応するデータを取得し得る。この例では、ビデオデコーダ３０は、それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、それぞれのパレットインデックスシンタックス要素に対応するデータをエントロピー復号し得る。さらに、ビデオデコーダ３０は、パレットサイズに基づいて、２値化方法を決定し得る。ビデオデコーダ３０は、それぞれのパレットインデックスシンタックス要素の２値化バージョンを逆２値化するために、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素を決定し得る。
【０１７８】
[0180]別の例では、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビデオエンコーダ２０は、パレットサイズに基づいて、たとえば、複数の異なる２値化方法のうちの１つを選択することによって、２値化方法を決定し得る。ビデオエンコーダ２０は、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素の２値化バージョンを生成し得る。さらに、この例では、ビデオエンコーダ２０は、それぞれのインデックスシンタックス要素の２値化バージョンをエントロピー符号化し得る。ビデオエンコーダ２０は、ビットストリーム中に、それぞれのパレットインデックスシンタックス要素のエントロピー符号化された２値化バージョンを含め得る。
【０１７９】
[0181]本開示は、「ラン値情報を使用するインデックスコーディング」および「（調整された）パレットサイズ情報を使用するインデックスコーディング」という名称の本開示のセクションにおける方法と一緒に、ラン情報と（調整された）パレットサイズ情報の両方を使用してインデックスをコーディングすることを提案する。各２値化方法では、インデックス値並べ替えが、コーディング効率を改善するために適用され得る。たとえば、表６では、シンボル「０」は、すべてのシンボルをシフトし、シンボル「０」を最後に置くことによって、「００」の代わりに、コードワード「１１１」を使用中である。
【０１８０】
【表６】
2018520562.tif 000008
【０１８１】
[0182]パレットサイズ情報とラン情報の両方を使用する一例として、以下は、インデックスコーディングのための２値化方法である。
【０１８２】
【表７−１】
2018520562.tif 000009
【表７−２】
2018520562.tif 000010
【０１８３】
[0183]いくつかの例では、これらのパレットインデックス予測子技法は、２つ（以上）の前にコーディングされたパレットインデックスが、現在のインデックスを予測するために使用される、以下でより詳細に説明される技法と組み合わされ得る。予測子機構は、パレットサイズおよび／またはランレングスに依存し得る。
【０１８４】
[0184]使用されるべき可変長コードの明示的シグナリングもまた、実装され得る。そのような例では、複数の可変長コードが、インデックス値をコーディングするために使用され得る。各パレットブロックについて、使用されるべき可変長コードのタイプが、明示的にシグナリングされる。一例として、選定は、切捨て２進コードと指数ゴロムタイプのコードとの間であり得る。可変長コードがパラメータ化される場合、使用されるべき特定のパラメータがシグナリングされ得る。たとえば、指数ゴロムタイプのコードがシグナリングされるとき、指数ゴロムのためのパラメータがシグナリングされ得る。
【０１８５】
[0185]代替実施形態では、シグナリングされた可変長コードのタイプは、ＲＵＮ＿ＴＨＲＥＳＨＯＬＤ以上のランのためにのみ使用され得る。好ましい実施形態では、ＲＵＮ＿ＴＨＲＥＳＨＯＬＤは１である。可変長コードのタイプのシグナリングは、ＭＡＧ＿ＴＨＲＥＳＨＯＬＤを超えるＲＵＮ＿ＴＨＲＥＳＨＯＬＤ以上のランの数または割合を条件とし得る。可変長コードのタイプがシグナリングされない場合、デフォルトのものが使用され得る。デフォルトの可変長コードの一例は、切捨て２進コードになる。
【０１８６】
[0186]ＲＵＮ＿ＴＨＲＥＳＨＯＬＤおよびＭＡＧ＿ＴＨＲＥＳＨＯＬＤは、エンコーダとデコーダの両方に知られ得るか、または、たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダなどにおいて、ビットストリーム中で送られ得る。
【０１８７】
[0187]本開示の技法はまた、インデックスコーディングのための可変長コードを適応的に選定することを含む。そのような例では、複数の可変長コードが、インデックス値をコーディングするために使用され得る。しかしながら、使用するべき可変長コードを明示的にシグナリングするか、またはラン値およびａｄｊｕｓｔｅｄＰａｌｅｔｔｅＳｉｚｅに基づく固定ルールを有するのではなく、可変長コードの選定は、インデックス統計値に基づいて適応的である。一例として、コーディングされる各インデックス値について、カウンタが維持される。値が特定のしきい値を超える場合、カウンタは、１だけインクリメントされ、そうでない場合、１だけデクリメントされる。しきい値は、ビデオシーケンス全体を通して固定され得るか、またはａｄｊｕｓｔｅｄＰａｌｅｔｔｅＳｉｚｅに依存し得る。カウンタの値は、インデックス値をコーディングするために使用される可変長コードを決定し得る。たとえば、ＶＬＣコードのタイプは、ａｄｊｕｓｔｅｄＰａｌｅｔｔｅＳｉｚｅの切捨て値をもつ切捨て２進コード、指数ゴロムコード、または上記で説明された他のコードであり得る。
【０１８８】
[0188]しきい値は、エンコーダとデコーダの両方に知られ得るか、または、たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダなどにおいて、ビットストリーム中で送られ得る。
【０１８９】
[0189]上記で説明された技法の一例では、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビデオデコーダ３０は、ビットストリームから、それぞれのパレットインデックスシンタックス要素に対応するデータを取得し得る。この例では、ビデオデコーダ３０は、それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、それぞれのパレットインデックスシンタックス要素に対応するデータをエントロピー復号し得る。さらに、ビデオデコーダ３０は、パレットサイズと、同じパレットインデックスをもつ連続するロケーションの数とに基づいて、２値化方法を決定し得る。ビデオデコーダ３０は、それぞれのパレットインデックスシンタックス要素の２値化バージョンを逆２値化するために、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素を決定し得る。
【０１９０】
[0190]別の例では、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビデオエンコーダ２０は、パレットサイズと、同じパレットインデックスをもつ連続するロケーションの数とに基づいて、２値化方法を決定し得る。ビデオエンコーダ２０は、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素の２値化バージョンを生成し得る。さらに、この例では、ビデオエンコーダ２０は、それぞれのインデックスシンタックス要素の２値化バージョンをエントロピー符号化し得る。ビデオエンコーダ２０は、ビットストリーム中に、それぞれのパレットインデックスシンタックス要素のエントロピー符号化された２値化バージョンを含め得る。
【０１９１】
[0191]ブロックの前部でインデックスをグループ化するのではなく、パレットランタイプおよびパレットランレングスシンタックス要素の発生の一部または全部をシグナリングした後、インデックスをグループ化するための例が、本明細書で説明される。そのような例では、パレットランレングスシンタックス要素のＣＡＢＡＣコンテキストは、デコーダがインデックスを復号する前にランレングスを復号するので、対応するインデックスに依存しないことがある。インデックスの対応するランレングスに応じて、インデックスをコーディングするためのさらなる例が、本明細書で説明される。
【０１９２】
[0192]いくつかの例では、ＩＮＤＥＸ＿ＣＯＰＹランレングスが、対応するインデックスを復号する前に知られているとき、そのようなランレングス情報が、インデックスを復号するために使用され得る。たとえば、ブロックのためのパレットインデックスは、インデックス０、インデックス１、インデックス２、インデックス３、インデックス４、およびインデックス５を含む、｛０，１，２，３，４，５｝を含み得る。ランレングス情報を使用する一例では、ランレングスが、しきい値Ｔなどのしきい値よりも大きい場合、あるセットのコードワードが、インデックスを復号するために使用され得る。別の例では、ランレングスがしきい値Ｔ以下である場合、別のセットのコードワードが使用され得る。一例では、Ｔは、０に等しくなり得る。そのような例では、ランレングスが０よりも大きいとき、あるセットのコードワードが使用され得る。ランレングスが０に等しいとき、別のセットのコードワードが使用され得る。
【０１９３】
[0193]いくつかの例では、ランレングスがＴよりも大きいとき、インデックス予測子のリスト（または、インデックス予測子リスト）が、現在のインデックスをコーディングするために使用され得る。場合によっては、リストにおける最大サイズ制限があり得る。一例では、２の最大リストサイズが、本明細書で説明されるいくつかの例について説明するために使用される。しかしながら、本明細書で説明される例は、この例に限定されず、任意の他の予測子リストサイズ制限が使用され得る。
【０１９４】
[0194]いくつかの例では、インデックス予測子リストは、前に復号されたインデックスを使用して構築され得る。ブロック中のインデックスを復号する前に、インデックス予測子リストは、空になるように初期化され得るか、またはいくつかのあらかじめ定義されたインデックスを用いて初期化され得る。一例では、インデックス予測子リストは、｛０｝または｛０，１｝に等しい単一の要素を用いて初期化され得る。いくつかの例では、１つまたは複数のプルーニング方法が、（個別に、または任意の組合せにおいて）予測子リストに適用され得る。たとえば、以下のようになる。
１．復号されたインデックスが、リスト中のいかなる既存の要素とも異なる場合のみ、復号されたインデックスが、インデックス予測子リストに追加され得る。
２．復号されたインデックスの対応するランレングスが、しきい値Ｔ1よりも大きい場合のみ、復号されたインデックスが、インデックス予測子リストに追加され得る。一例では、Ｔ1は、０に等しい。そのような例では、対応するランレングスが０よりも大きい場合のみ、復号されたインデックスが、リストに追加され得る。
３．一例では、インデックス予測子リストに追加される値は、復号されたインデックス値であり得る。別の実施形態では、インデックス予測子リストに追加される値は、復号前のパースされた値であり得る。本明細書で使用される、パースされた値という用語は、その隣接インデックス値に基づいて調整を行う前の、エントロピーデコーダの出力値を指すために使用される。
【０１９５】
[0195]いくつかの例では、本明細書で説明されるパレットインデックス予測方法は、パレットサイズまたは最大実現可能インデックス値がしきい値よりも大きいときのみ、適用され得る。一例では、しきい値のための値は、４になるように選定され得る。
【０１９６】
[0196]デコーダにおいて、リストが空ではない場合、対応するインデックスがインデックス予測子リストから予測されるか否かを示すために、フラグが復号され得る。一例では、フラグのための１の値が、インデックスがインデックス予測子リストから予測されることを示すために使用される。別の例では、フラグのための０の値が、インデックスがインデックス予測子リストから予測されることを示すために使用される。現在のインデックスがリストから予測される場合、リスト中のどのエントリが使用されるかを指定するために、値Ｉが復号される。リストサイズが１に等しい場合、リスト中に１つの候補のみがあるので、値Ｉがバイパスされ得る。リストサイズが１よりも大きい場合、コードは、Ｉをコーディングするために使用され得る。コードの例は、ゴロム−ライスコード、指数ゴロムコード、単項コード、これらのコードの切捨てバージョン、または他の好適なコードを含み得る。たとえば、リストサイズが２である場合、フラグは、リスト中のどのエントリが使用のために選定されるかを指定するために使用され得る。リスト中で選択されたエントリ値は、復号されたインデックスまたはパースされたインデックスのいずれかとして扱われ得る。選択されたエントリ値が、復号されたインデックスとして扱われる場合、値を得た後、デコーダは、隣接インデックスに基づいて、インデックス調整動作を実施する必要がないことがある。代替的に、選択されたエントリ値が、パースされたインデックスとして扱われる場合、値を得た後、デコーダは、その隣接インデックスに基づいて、インデックス調整動作を実施する必要があり得る。
【０１９７】
[0197]いくつかの例では、フラグが、インデックスがインデックス予測子リストから予測可能であることを示す場合、デコーダは、予測子リスト中のアクティブな候補（または、エントリ）の数が定数またはしきい値Ｔであると仮定し得る。たとえば、デコーダは、予測子リスト中のアクティブな候補の数が２であると仮定し得る。候補の実際の数がＴよりも大きい場合、それらのうちのＴ個のみが実際に使用され得る。たとえば、Ｔ＝２の場合、最初の２つのエントリ、最後の２つのエントリ、またはあるルールに従って選択された２つのエントリのみが使用され得る。リスト中の実際のエントリの数がＴ未満である場合、冗長シグナリングが、実装を簡略化するために使用され得る。たとえば、Ｔ＝２であり、候補がただ１つの要素を有する場合、リスト中の（合計１つからの）最初の要素が使用されることを示すために、１つの冗長ビンが依然としてシグナリングされ得る。
【０１９８】
[0198]いくつかの例では、インデックスがインデックス予測子リストから予測可能であるか否かを示すために最初にフラグをシグナリングし、次いで、予測されたエントリインデックスをシグナリングするのではなく、インデックス予測子リスト中で使用されるエントリの代替的シグナリングが使用され得る。たとえば、別個のコードワードが、選択された予測されたエントリのために予約され得る。たとえば、Ｔ＝２の場合、第１の予測子エントリは、コードワード「０」とともに割り振られ得、第２の予測子エントリは、コードワード「１０」とともに割り振られ得、予測されないエントリは、「１１」を前に付けられ得る。
【０１９９】
[0199]いくつかの例では、パレットインデックス予測子リスト中の候補数を低減するために、プルーニング手順が適用され得る。たとえば、走査順序における前のピクセルが、ＩＮＤＥＸ＿ＣＯＰＹのパレットランタイプを有する場合、現在のインデックスは、前のピクセルのインデックスと同じではないことがある。この例では、前のピクセルのインデックスが、インデックス予測子リストから除去され得るか、または、インデックス予測子リスト中で保たれるが、現在のインデックス予測のために無効としてマークされ得る。代替的に、走査順序における前のピクセルが、ＣＯＰＹ＿ＡＢＯＶＥのパレットランタイプを有する場合、現在のインデックスは、前のピクセルの上方ネイバーのインデックスと同じではないことがある。この例では、上方ネイバーのインデックスが、予測子リストから除去され得るか、または、リスト中で保たれるが、現在のインデックス予測のために無効としてマークされ得る。
【０２００】
[0200]上記で説明されたフラグが、現在のインデックスがインデックス予測子リストから予測可能ではないことを示す場合、インデックスは、ビットストリームから復号され得る。コードが、インデックスをコーディングするために使用され得る。コードの例は、ゴロム−ライスコード、指数ゴロムコード、単項コード、これらのコードの切捨てバージョン、または他の好適なコードを含み得る。いくつかの例では、調整プロセスが、インデックス値Ｉ、ならびに、最大実現可能インデックス値Ｍのために使用され得る（値Ｍは、コードワードの切捨てバージョンが使用される場合、使用され得る）。いくつかの例では、拡張リストは、隣接ベースの調整が適用可能ではない場合、インデックス予測子リストを示し得る。いくつかの例では，拡張リストは、隣接ベースの調整が適用可能である場合、インデックス予測子リストと参照隣接インデックスとをマージすることによって、インデックス予測子リストを示す。拡張リスト中に重複エントリがある場合、重複エントリのうちの１つのみが保たれる。最大実現可能インデックス値Ｍが、拡張リストサイズによって低減され得る。エンコーダ側で、インデックス値Ｉをコーディングするために、それらの値がＩよりも小さい、拡張リスト中の数エントリによって、それが低減され得る。
【０２０１】
[0201]いくつかの例では、実装を簡略化するために、動的範囲低減手順が緩められ得る。一例では、Ｍは、拡張予測子リストのサイズではなく、インデックス予測子リストのサイズによって減算され得る。この場合、予測子リストのサイズが一定（たとえば、上記で説明された定数Ｔ）である場合、最大実現可能インデックスが、パーシングの前にあらかじめ決定され得る。
【０２０２】
[0202]上記で説明された技法を実装する一例では、ビデオエンコーダ２０は、ビデオデータの符号化ブロックのためのパレットを生成する。パレットは、１つまたは複数のパレットエントリを含む。パレットエントリは、ビデオデータの符号化ブロックによって表されたビデオデータのブロックのピクセルのためのピクセル値を示す。ビデオエンコーダ２０は、１つまたは複数のパレットエントリのための１つまたは複数のインデックス値を決定し、ビデオデータの符号化ブロックのためのシグナリング情報を送信する。シグナリング情報は、たとえば、パレットランタイプと、パレットランレングスと、１つまたは複数のインデックス値とを含む。パレットランタイプおよびパレットランレングスは、１つまたは複数のインデックス値の前にシグナリングされ得る。シグナリング情報は、インデックス値がインデックス予測子のリストを使用して予測可能であるか否かを示す、フラグをさらに含み得る。ビデオエンコーダ２０は、ゴロム−ライスコーディング、指数ゴロムコーディング、単項コーディング、切捨てゴロム−ライスコーディング、切捨て指数ゴロムコーディング、または切捨て単項コーディングを使用して、１つまたは複数のインデックス値を決定し得る。
【０２０３】
[0203]上記で説明された技法を実装する別の例では、ビデオデコーダ３０は、ビデオデータの符号化ブロックを受信し、ビデオデータの符号化ブロックのためのパレットを取得する。パレットは、ビデオデータの符号化ブロックによって表されたビデオデータのブロックのピクセルのためのピクセル値を示す、１つまたは複数のパレットエントリを含む。ビデオデコーダ３０は、ビデオデータの符号化ブロックのためのシグナリング情報を取得する。シグナリング情報は、パレットランタイプとパレットランレングスとを含む。ビデオデコーダ３０は、パレットランレングスに基づいて、インデックス値を決定する。
【０２０４】
[0204]一例では、ビデオデコーダ３０は、インデックス値を決定するために使用するために、インデックス予測子のリストを決定する。インデックス予測子のリストは、１つまたは複数のインデックス値を含み、インデックス予測子のリストは、パレットランレングスがしきい値よりも大きいとき、インデックス値を決定するために使用され得る。ビデオデコーダ３０は、インデックス予測子のリストを使用して、インデックス値を決定する。しきい値は、たとえば、０に等しくなり得る。ビデオデコーダ３０は、１つまたは複数の前に復号されたインデックス値を使用して、インデックス予測子のリストを構築し得る。
【０２０５】
[0205]１つまたは複数の前に復号されたインデックス値を使用して、インデックス予測子のリストを構築するために、ビデオデコーダ３０は、たとえば、復号されたインデックス値が、インデックス予測子のリスト中に含まれる１つまたは複数の要素のいずれとも異なると決定し、復号されたインデックス値をインデックス予測子のリストに追加し得る。１つまたは複数の要素は、少なくとも１つの前に復号されたインデックス値を含み得る。１つまたは複数の前に復号されたインデックス値を使用して、インデックス予測子のリストを構築するために、含む、ビデオデコーダ３０は、追加または代替として、復号されたインデックスのランレングスがしきい値よりも大きいと決定し、復号されたインデックスをインデックス予測子のリストに追加し得る。インデックス予測子のリスト中の１つまたは複数のインデックス値は、復号されたインデックス値またはパースされたインデックス値を含み得る。
【０２０６】
[0206]いくつかの例では、シグナリング情報は、インデックス値がインデックス予測子のリストを使用して予測可能であるか否かを示す、フラグを含み得、ビデオデコーダ３０は、フラグの値を決定し、フラグの値に基づいて、インデックス値がインデックス予測子のリストを使用して予測可能であると決定し得る。ビデオデコーダ３０は、インデックス値を決定するために使用するために、インデックス予測子のリストからのエントリを示す、エントリ値を復号し得る。
【０２０７】
[0207]いくつかの例では、領域ＩＩに属するパレットインデックスが走査順序において連続的に現れるという規範的制限が、エンコーダに課せられる。たとえば、領域Ｉがパレットインデックス｛０，１，２｝を含んでおり、領域ＩＩがパレットインデックス｛３，４，５｝を含んでおり、インデックス中の各値がインデックスであると仮定する。インデックス｛０，１，２｝にかかわらず、規範的制限は、インデックス３の最初の発生が｛４，５｝の前でなければならず、インデックス４の最初の発生が５の前でなければならないことを示す。
【０２０８】
[0208]この段落では、ブロック中にエスケープピクセルがないと仮定される。切捨て２進コードを使用してパレットインデックスをコーディングするとき、２つの入力パラメータが使用される。第１の入力パラメータは、インデックス値自体であり、他方の入力パラメータは、最大実現可能インデックス値である。上記で提示された例示的な領域Ｉ（｛０，１，２｝）および領域ＩＩインデックス（｛３，４，５｝）を使用すると、そのような最大実現可能インデックス値は、５であり得る。そのような例では、切捨て２進コードを使用して各インデックスをコーディングするコストは、２ビットと３ビットとの間である。いくつかの例では、上記で説明された規範的ビットストリーム制限が課せられる場合、ブロックの始めにおいて、デコーダがインデックスを復号することを開始するとき、５に等しい最大実現可能インデックス値を選定するのではなく、デコーダは、領域Ｉインデックス中の要素の数に等しくなるように、最大値を選定し得る。そのような例では、最大実現可能値は３であり得る。インデックスを復号した後、インデックスが最大実現可能値に等しい場合、最大実現可能値は、パレットサイズ−１に達するのでない限り、１だけ増加される（その例では、最大実現可能値は、５に達するとき、パレットサイズが６に等しくなるために、増加を停止する）。復号されたインデックスが、最大実現可能値に等しくない場合、最大実現可能値が不変のまま保たれる。
【０２０９】
[0209]１つまたは複数のエスケープピクセルが現在ブロック中に存在する例では、エスケープピクセルは、現在のドラフト仕様におけるパレットサイズに等しい予約済みインデックスを使用してマークされる。いくつかの例では、エスケープピクセルは、ブロックのためのパレット中に含まれていないブロックのピクセルを含み得る。上記で説明された例では、インデックス６は、エスケープピクセルを表すために使用される。そのため、その例では、領域Ｉ＝｛０，１，２｝、領域ＩＩ＝｛３，４，５｝、エスケープ＝｛６｝である。
【０２１０】
[0210]いくつかの例では、上記で説明された規範的制限を使用するとき、エスケープピクセルは、領域Ｉのサイズに等しい予約済み値を使用してマークされ得る。上記で提示された例示的な領域Ｉ（｛０，１，２｝）および領域ＩＩインデックス（｛３，４，５｝）を使用すると、エスケープピクセルは、インデックス３を使用してマークされる。この変更によって、領域ＩＩ中のインデックスは、１だけ増加される。たとえば、領域ＩＩは、インデックス｛４，５，６｝を含む。具体的には、領域Ｉ＝｛０，１，２｝、領域ＩＩ＝｛４，５，６｝、エスケープ＝｛３｝である。この場合、デコーダがブロックを復号することを開始するとき、最大実現可能インデックスは、領域Ｉのサイズ＋１に初期化され得る。その例では、初期最大実現可能インデックスは、（領域Ｉのサイズが３に等しいために）４になるように選定され得る。インデックスを復号した後、インデックスが最大実現可能値に等しい場合、最大実現可能値は、パレットサイズに達するのでない限り、１だけ増加される（その例では、最大実現可能値は、６に達するとき、増加を停止する）。復号されたインデックスが、最大実現可能値に等しくない場合、最大実現可能値が不変のまま保たれる。
【０２１１】
[0211]いくつかの例では、切捨て単項コード、切捨て指数ゴロムコード、または切捨てゴロム−ライスコード、またはそれらの組合せなど、切捨て２進コード以外の切捨てコードも、同様にインデックスをコーディングするために使用され得る。
【０２１２】
[0212]パレットモードのいくつかの事例では、パレットランがｃｏｐｙ  ａｂｏｖｅラン（またはモード）であるか、インデックスコピーラン（またはモード）であるかを指定する、パレットランタイプ（たとえば、パレットランタイプフラグ、またはパレットランモードフラグ）が最初にシグナリングされ、その後、タイプがインデックスコピーモードまたはランである場合、インデックス値が続き得る。そのような事例では、ビットストリーム中の全体的なビットは、以下のようになり得る。
【０２１３】
ｃｏｐｙ  ａｂｏｖｅモードの場合：’１’
ｃｏｐｙ  ｌｅｆｔモードの場合：’０’＋インデックス
【０２１４】
[0213]インデックスは、両端値を含めて、０からしきい値Ｔまで選択され得る。一例では、Ｔは、エスケープピクセルがない場合、パレットサイズから１を引いたもの（パレットサイズ−１）に等しくなるように選択され得る。別の例では、Ｔは、エスケープピクセルが存在し得る場合、パレットサイズに等しくなるように選択され得る。これらの２つの例を表すために、１つまたは複数の統合されたコードワードを使用するための例が、本明細書で説明される。いくつかの例では、ｃｏｐｙ  ａｂｏｖｅモードは、Ｔ＋１に等しい予約済みインデックスを割り振られ得る。
【０２１５】
[0214]いくつかの例では、デコーダ側で、パレットランモードフラグまたはタイプフラグがない場合がある。たとえば、デコーダは、最初にインデックスコードワードを復号し得る。復号されたインデックスコードワードが、予約済みインデックス（たとえば、Ｔ＋１）に等しい場合、現在のランは、ｃｏｐｙ  ａｂｏｖｅラン（またはモード）であると決定される。復号されたインデックスコードワードが、予約済みインデックス（たとえば、Ｔ＋１）に等しくない場合、現在のランは、インデックスコピーラン（またはモード）であると決定される。
【０２１６】
[0215]いくつかの例では、ｃｏｐｙ  ａｂｏｖｅランモードのために予約されたインデックスコードワードは、エンコーダとデコーダの両方によって知られているか、または推論される、１つまたは複数の所定の値であり得る。いくつかの例では、ｃｏｐｙ  ａｂｏｖｅランモードのために予約されたインデックスコードワードは、ブロックサイズ、パレットサイズ、エスケープピクセルの存在、ブロック中のインデックスの数、量子化ステップなどに基づいて、適応的に選択され得る。
【０２１７】
[0216]いくつかの例では、統合されたインデックス（たとえば、１つまたは複数の統合されたコードワード）をコーディングするために、単項コード、ゴロムコード、２進コード、これらのコードの切捨てバージョン、それらの組合せ、または他の好適なコードが使用され得る。
【０２１８】
[0217]上記で説明された技法を実装する一例では、ビデオエンコーダ２０は、ビデオデータのブロックのためのパレットを生成する。パレットは、１つまたは複数のパレットエントリを含み、パレットエントリは、ビデオデータのブロックのピクセルのためのピクセル値を示す。ビデオエンコーダ２０は、１つまたは複数のパレットエントリのための１つまたは複数のインデックス値を決定する。１つまたは複数のインデックス値のうちの少なくとも１つのインデックス値は、パレットの第１の領域と、パレットの第２の領域に属する１つまたは複数のインデックス値のうちの少なくとも１つの他のインデックス値とに属する。ビデオエンコーダ２０は、制限に従って、インデックス値を連続的な走査順序においてパレットの第２の領域に割り当て、制限は、インデックス値が連続的な走査順序において第２の領域中に現れるべきであることを示す。制限は、たとえば、インデックス値の最初の発生が、連続的な走査順序において第２の領域中に現れるべきであることを示し得る。
【０２１９】
[0218]いくつかの例では、ビデオデータのブロックは、エスケープピクセルを含まないが、他の例では、ビデオデータのブロックは、１つまたは複数のエスケープピクセルを含み得る。ビデオエンコーダ２０は、切捨て２進コーディング、切捨て単項コーディング、切捨て指数ゴロムコーディング、または切捨てゴロム−ライスコーディングを使用して、１つまたは複数のインデックス値を決定し得る。
【０２２０】
[0219]上記で説明された技法を実装する別の例では、ビデオデコーダ３０は、符号化ビデオブロックを受信し、符号化ビデオブロックのためのパレットを取得する。パレットは、１つまたは複数のパレットエントリを含み、パレットエントリは、符号化ビデオブロックによって表されたビデオデータのブロックのピクセルのためのピクセル値を示す。ビデオデコーダ３０は、１つまたは複数のパレットエントリのための１つまたは複数のインデックス値を復号する。１つまたは複数のインデックス値のうちの少なくとも１つのインデックス値は、パレットの第１の領域に属し、１つまたは複数のインデックス値のうちの少なくとも１つの他のインデックス値は、パレットの第２の領域に属する。第２の領域のインデックス値は、インデックス値が連続的な走査順序において第２の領域中に現れるべきであることを示す制限に従って、連続的な走査順序においてコーディングされる。ビデオデコーダ３０は、パレットと１つまたは複数のインデックス値とを使用して、ビデオデータのブロックのピクセルのためのピクセル値を決定する。制限は、たとえば、インデックス値の最初の発生が、連続的な走査順序において第２の領域中に現れるべきであることを示し得る。ビデオデコーダ３０は、切捨て２進コーディング、切捨て単項コーディング、切捨て指数ゴロムコーディング、または切捨てゴロム−ライスコーディングを使用して、１つまたは複数のインデックス値を復号し得る。
【０２２１】
[0220]いくつかの例では、ビデオデータのブロックは、エスケープピクセルを含んでいない。ビデオデコーダ３０はまた、第１の領域中のインデックス値の数になるように、最大実現可能インデックス値を選択し得る。ビデオデコーダ３０は、インデックス値を復号し、復号されたインデックス値が最大実現可能値に等しいと決定し得る。ビデオデコーダ３０は、復号されたインデックス値が最大実現可能値に等しいとき、最大実現可能インデックス値を１だけ増加させ得る。いくつかの例では、ビデオデコーダ３０は、復号されたインデックス値がパレット中のインデックス値の数−１に等しいとき、最大実現可能インデックス値を増加させなくてよい。
【０２２２】
[0221]いくつかの例では、ビデオデータのブロックは、１つまたは複数のエスケープピクセルを含む。エスケープピクセルは、第１の領域中のインデックス値の数に等しい予約済み値を使用して、インデックス付けされ得る。ビデオデコーダ３０は、第１の領域中のインデックス値の数＋１になるように、最大実現可能インデックス値を選択し得る。ビデオデコーダ３０は、インデックス値を復号し、復号されたインデックス値が最大実現可能値に等しいと決定し得る。ビデオデコーダ３０は、復号されたインデックス値が最大実現可能値に等しいとき、最大実現可能インデックス値を１だけ増加させ得る。いくつかの例では、復号されたインデックス値がパレット中のインデックス値の数に等しいとき、最大実現可能インデックス値が増加されない。
【０２２３】
[0222]現在のＳＣＣテキスト仕様およびテストモデルでは、パレットモードを使用してブロックがコーディングされる場合、ブロック中のサンプルのためのパレットインデックスは、ランコーディングを使用してコーディングされる。単項コードと次数０の指数ゴロムコードとの連結の切捨てバージョンが、個々のランをコーディングするために使用される。６の切捨て値（最大値）のために使用されるコードの一例が、表８において以下で示されている。表８はまた、対応する非切捨てコードを示している。ラン値４、５、および６では、プレフィックスとサフィックスの両方が切り捨てられることに留意されたい。プレフィックスでは、切捨て単項コードが使用される。したがって、ラン値４、５、および６では、プレフィックスとして０００１を使用するのではなく、プレフィックス０００を使用することで十分である。サフィックスでは、切捨て２進コードが使用される。これは、４のラン値では１ビットプレフィックスと、５および６のラン値では２ビットプレフィックスとを生じる。また、タイプ０００１（ゼロの後に１が続く）のプレフィックスを使用するのではなく、我々は、等価なコードを作成するために、１１１０（１の後に０が続く）を使用した可能性がある。
【０２２４】
【表８】
2018520562.tif 000011
【０２２５】
[0223]切捨て値Ｔ≧２が与えられれば、２k≦Ｔ＜２k+1であるように、ｋを決定することが必要である。次いで、最高の単項プレフィックスは、（ｋ＋１）個の０からなる。所与のラン値ｘでは、プレフィックスが最高の可能な（ｋ＋１個の０）である場合、サフィックスは、（Ｔ−２k）の最大可能値をもつ、（ｘ−２k）のための切捨て２進コードである。切捨て２進コードを符号化および復号するために、いくつかのさらなる計算が必要である。
【０２２６】
[0224]ＨＥＶＣ  ＳＣＣドラフト仕様において現在使用されている切捨てラン２値化では、ランがブロックの最後まで継続する場合、切捨て値は、最大可能ラン値である。現在のサンプルのためのトラバース走査インデックスがｎであり、ブロック中のサンプルの数がｐである場合、最大可能ラン値は、（ｐ−１−ｎ）である。したがって、切捨て値は、各ランとともに変化する。これは、各ランについて、ｋと、（サフィックスのための）切捨て２進コードとを再計算することを必要とし、それは望ましくないことがある。たとえば、ｋと切捨て２進コードとの再計算は、ランコーディングの複雑さを増すことがある。
【０２２７】
[0225]本開示は、ランコーディングの複雑さを低減するための技法を提示する。本開示で提案された技法または態様のいずれも、個別に、あるいは他の技法のうちの１つまたは複数と組み合わせて適用され得る。
【０２２８】
[0226]本開示の１つまたは複数の技法によれば、ビデオコーダは、各パレットブロックのための最大ラン値をコーディングし得る。たとえば、各パレットブロックについて、そのブロックのための最大ラン値が、エンコーダによってビットストリーム中で明示的にコーディング（シグナリング）され、デコーダによって受信され得る。次いで、この値が、トラバース走査における現在のサンプルの位置に基づいて切捨て値を使用する代わりに、ランコーディングのための切捨て値として使用され得る。いくつかの例では、最大ラン値は、ビットストリーム中で実際にシグナリングされる任意のラン値以上であるべきである。いくつかの例では、ｌａｓｔ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇが、ラン値を送る前に送られ得、最後のラン値は、ビットストリーム中で決して明示的にシグナリングされなくてよい。
【０２２９】
[0227]最大ラン値は、固定長コード、単項コード、指数ゴロムコード、ゴロム−ライスコード、ゴロム−ライスコードと指数ゴロムコードとの連結を使用して、コーディングされ得る。これらのコードの切捨てバージョン、または切捨て２進コードは、（ｐ−１）の最大可能（切捨て）値に基づいて使用され得、ただし、ｐは、ブロック中のサンプルの数である。
【０２３０】
[0228]いくつかの例では、ブロック全体のための最大ラン値をコーディングするのではなく、インデックスがＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤ以上であるとき、ＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに対応する最大ラン値がシグナリングされ得る。そのような例のいくつかでは、ランがＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥに対応する場合、または、ランがＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに対応し、対応するインデックスがＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤ未満である場合、（ｐ−１）の切捨て値が使用され得、ただし、ｐは、ブロック中のサンプルの数である。切捨て値として（ｐ−１）を使用するのではなく、表８に示されているようなコードの非切捨てバージョンが使用され得る。
【０２３１】
[0229]いくつかの例では、ランがＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに対応し、対応するインデックスがＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤ以上である場合、シグナリングされた最大ラン値が、切捨て値として使用され得る。ＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤは、エンコーダとデコーダの両方に知られ得るか、または、たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダなどにおいて、ビットストリーム中で送られ得る。
【０２３２】
[0230]いくつかの例では、そのような最大ラン値がビットストリーム中でシグナリングされるか否かを示すために、フラグがパレットブロックレベルにおいて送られ得る。フラグが０である場合、最大ラン値は、ビットストリーム中でシグナリングされなくてよい。この場合、（ｐ−１）の切捨て値は、すべてのコード化ランのために使用され得、ただし、ｐは、ブロック中のサンプルの数である。いくつかの例では、表８に示されているようなコードの非切捨てバージョンが使用され得る。フラグが１である場合、上記で説明されたシグナリング戦略が後続され得る。フラグは、バイパスモードでコンテキストコーディングまたはコーディングされ得る。
【０２３３】
[0231]各パレットブロックのための最大ラン値をコーディングすることは、１つまたは複数の利点を提示し得る。たとえば、各パレットブロックのための最大ラン値をコーディングすることによって、１つまたは２つの切捨て値のみがブロックごとに使用され得、それはランコーディングを簡略化し得る。
【０２３４】
[0232]いくつかの例では、ラン２値化は（場合によっては、非切捨てバージョンを使用することを除いて）不変であり得、異なる切捨て値（サンプル位置に依存しない）のみが使用され得る。
【０２３５】
[0233]本開示の１つまたは複数の技法によれば、ｌｉｍｉｔ＿ｒｕｎ＿ｉｎｄｅｘなどのインデックス値が、各パレットブロックのためにシグナリングされ得る。ｌｉｍｉｔ＿ｒｕｎ＿ｉｎｄｅｘは、対応するインデックス値がｌｉｍｉｔ＿ｒｕｎ＿ｉｎｄｅｘ以上であり、コード化ラン値がＲＵＮ＿ＴＨＲＥＳＨＯＬＤ以下であるところの、ＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに対応するランについて、それを示し得る。したがって、この場合、ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥに対応するランでは、および、ｌｉｍｉｔ＿ｒｕｎ＿ｉｎｄｅｘ未満の対応するインデックス値をもつＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに対応するランでは、（ｐ−１）の切捨て値が、ランをコーディングするために使用され得、ただし、ｐは、ブロック中のサンプルの数である。いくつかの例では、表８に示されているようなコードの非切捨てバージョンが使用され得る。
【０２３６】
[0234]ランがＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに対応し、対応するインデックスがｌｉｍｉｔ＿ｉｎｄｅｘ＿ｒｕｎ以上である場合など、いくつかの例では、パレットランコーディングが、ＲＵＮ＿ＴＨＲＥＳＨＯＬＤに等しく設定された切捨て値とともに呼び出され得る。ＲＵＮ＿ＴＨＲＥＳＨＯＬＤは、エンコーダとデコーダの両方に知られ得るか、または、たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダなどにおいて、ビットストリーム中で送られ得る。
【０２３７】
[0235]いくつかの例では、ｌｉｍｉｔ＿ｒｕｎ＿ｉｎｄｅｘ値は、固定長コード、単項コード、指数ゴロムコード、ゴロム−ライスコード、ゴロム−ライスコードと指数ゴロムコードとの連結を使用して、コーディングされ得る。これらのコードの切捨てバージョン、または切捨て２進コードは、ｐａｌｅｔｔｅ＿ｅｓｃ＿ｖａｌ＿ｐｒｅｓｅｎｔ＿ｆｌａｇが１であるとき、エスケープ値に割り振られた余分のインデックスを検討した後、パレットインデックスのための最大可能値に等しい切捨て値に基づいて使用され得る。
【０２３８】
[0236]いくつかの例では、ｌｉｍｉｔ＿ｒｕｎ＿ｉｎｄｅｘは、（ｐａｌｅｔｔｅ＿ｅｓｃ＿ｖａｌ＿ｐｒｅｓｅｎｔ＿ｆｌａｇが１であるとき、エスケープシンボルを表すために余分のインデックスを考慮した後の）パレットサイズがＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤ＿２よりも大きいときのみ、シグナリングされ得る。ｌｉｍｉｔ＿ｒｕｎ＿ｉｎｄｅｘが、パレットコード化ブロックのためにシグナリグされないとき、（ｐ−１）の切捨て値は、ランをコーディングするために使用され得、ただし、ｐは、ブロック中のサンプルの数である。いくつかの例では、表８に示されているようなコードの非切捨てバージョンが使用され得る。いくつかの例では、ＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤ＿２は、エンコーダとデコーダの両方に知られ得るか、または、たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダなどにおいて、ビットストリーム中で送られ得る。
【０２３９】
[0237]いくつかの例では、ｌｉｍｉｔ＿ｒｕｎ＿ｉｎｄｅｘがビットストリーム中でシグナリングされるか否かを示すために、フラグがパレットブロックレベルにおいて送られ得る。フラグが０である場合、ｌｉｍｉｔ＿ｒｕｎ＿ｉｎｄｅｘは、ビットストリーム中でシグナリングされなくてよい。そのような例のうちのいくつかでは、（ｐ−１）の切捨て値は、すべてのコード化ランのために使用され得、ただし、ｐは、ブロック中のサンプルの数である。いくつかの例では、表８に示されているようなコードの非切捨てバージョンが使用され得る。フラグが１である場合、上記で説明されたシグナリング戦略が後続され得る。フラグは、バイパスモードでコンテキストコーディングまたはコーディングされ得る。フラグは、このセクションで説明された２つの例のいずれかとともに使用され得る。
【０２４０】
[0238]各パレットブロックのためのインデックス値をコーディングすることは、１つまたは複数の利点を提示し得る。たとえば、各パレットブロックのためのインデックス値をコーディングすることによって、１つまたは２つの切捨て値のみがブロックごとに使用され得、それはランコーディングを簡略化し得る。
【０２４１】
[0239]いくつかの例では、ラン２値化は（場合によっては、非切捨てバージョンを使用することを除いて）不変であり得、異なる切捨て値（サンプル位置に依存しない）のみが使用され得る。
【０２４２】
[0240]Ｓｕｎら「ＣＥ１−ｒｅｌａｔｅｄ：Ｈａｒｍｏｎｉｚａｔｉｏｎ  ｂｅｔｗｅｅｎ  ＪＣＴＶＣ−Ｔ００６５  Ｎｏｎ  ＣＥ１：Ｇｒｏｕｐｉｎｇ  Ｐａｌｅｔｔｅ  Ｉｎｄｉｃｅｓ  Ａｔ  Ｆｒｏｎｔ  ａｎｄ  ＣＥ１  Ｔｅｓｔ  Ａ．１．５」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）、第２０回会合：ジュネーブ、スイス、２０１５年２月１０〜１８日、ＪＣＴＶＣ−Ｔ０２３３では、パレットブロックの外部からの値のコピーと、ブロックの始めにおけるインデックスのグルーピングとの組合せが説明された。この組合せでは、ブロック中のサンプルのためのパレットインデックスについての情報が、以下の順序でコーディングされる。
１．コーディングされるべきパレットインデックスの数（ｎｕｍ＿ｐａｌｅｔｔｅ＿ｉｎｄｉｃｅｓ＿ｉｄｃ）
２．実際のパレットインデックス（ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｉｄｃ）
３．ｌａｓｔ＿ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇ
４．ブロック全体のためのパレットサンプルモード（ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥおよびＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥ）
５．ブロック全体のためのラン値
【０２４３】
[0241]２つ以上のラン値が、プレフィックスとサフィックスとからなる。最大５つのプレフィックスビンが、コンテキストコーディングされる。残りのプレフィックスビンおよびすべてのサフィックスビンは、バイパスコーディングされる。バイパスビンのグループ化は、ＣＡＢＡＣスループットを高め得る。しかしながら、切捨てランコーディングのために、次のランのための切捨て値は、現在のランが十分に復号される（プレフィックスならびにサフィックス）まで、知られない。これは、次のランの開始の位置を計算するために、現在のランの厳密な値を知ることが必要であり、それが望ましくないことがあるからである。この限定は、次のように克服され得る。
【０２４４】
[0242]本開示の１つまたは複数の技法によれば、現在のＨＥＶＣ  ＳＣＣテキスト仕様およびテストモデルにおける切捨てランコーディングは、上記で説明された技法のうちの１つによって置き換えられる。一例として、現在のＨＥＶＣ  ＳＣＣテキスト仕様およびテストモデルにおける切捨てランコーディングは、各ブロックのための最大ラン値をコーディングすることによって置き換えられ得る。別の例として、現在のＨＥＶＣ  ＳＣＣテキスト仕様およびテストモデルにおける切捨てランコーディングは、各ブロックのためのインデックス値をコーディングすることによって置き換えられ得る。このようにして、トラバースにおけるサンプル位置上のランコーディングの依存性が除去され得る。また、ブロック中のすべてのサンプルのためのパレットサンプルモードがすでにコーディングされているので、コード化ランの数も同様に知られ得る。このために、コーディングされるべきラン値のプレフィックスのすべてが、一緒にグループ化され得る。これは、コーディングされるべきラン値のすべてのサフィックスのグループ化によって後続され得る。
【０２４５】
[0243]本明細書で説明された技法を実装する一例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ビデオデータの現在ブロックのために、およびコード化ビデオビットストリーム中で、現在ブロックのために使用される最大ラン値を示すシンタックス要素をコーディングし、ビデオデータの現在ブロックのために、切捨て値として最大ラン値を使用して、ラン値をコーディングし得る。シンタックス要素をコーディングするために、ビデオコーダは、固定長コード、単項コード、指数ゴロムコード、ゴロム−ライスコード、またはゴロム−ライスコードと指数ゴロムコードとの連結を使用して、シンタックス要素をコーディングし得る。ビデオコーダは、シンタックス要素がビットストリーム中に存在するか否かを示すフラグをコーディングし得る。
【０２４６】
[0244]上記で説明された技法を実装する別の例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ビデオデータの現在ブロックのために、およびコード化ビデオビットストリーム中で、現在ブロックのラン値をコーディングするために使用されるインデックス値を示すシンタックス要素をコーディングし得る。ビデオコーダは、ランしきい値に等しい第１の切捨て値に基づいて、コピーインデックスモードに対応し、シンタックス要素によって示されたインデックス値以上である対応するインデックス値を有する、現在ブロックのラン値をコーディングし得る。ビデオコーダは、現在ブロック中のサンプルの数に基づく第２の切捨て値に基づいて、ｃｏｐｙ  ａｂｏｖｅモードに対応し、シンタックス要素によって示されたインデックス値未満である対応するインデックス値を有する、現在ブロックのラン値をコーディングし得る。
【０２４７】
[0245]ビデオコーダは、固定長コード、単項コード、指数ゴロムコード、ゴロム−ライスコード、またはゴロム−ライスコードと指数ゴロムコードとの連結を使用して、シンタックス要素をコーディングし得る。シンタックス要素は、たとえば、ｌｉｍｉｔ＿ｒｕｎインデックスシンタックス要素であり得る。現在ブロック中のサンプルの数に基づく切捨て値は、たとえば、現在ブロック中のサンプルの数未満のものであり得る。ランしきい値は、コード化ビデオビットストリーム中でコーディングされ得るか、あらかじめ決定され得るか、または何らかの他の方法で決定され得る。ビデオコーダは、現在ブロックのためのパレットサイズがパレットサイズしきい値よりも大きいことに応答して、シンタックス要素をコーディングし得る。
【０２４８】
[0246]現在のＳＣＣテキスト仕様およびテストモデル（ＪＣＴＶＣ−Ｔ１００５−ｖ２）では、パレットブロック中のサンプルのためのパレットインデックス情報が、以下の順序で送られる。
１．コード化インデックスの数（ｎｕｍ＿ｐａｌｅｔｔｅ＿ｉｎｄｉｃｅｓ＿ｉｄｃ）
２．ＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに対応するパレットインデックス（ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｉｄｃ）
３．ｌａｓｔ＿ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇ
４．ランタイプ（ｌａｓｔ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇ）
５．ラン値
６．エスケープサンプル値
【０２４９】
[0247]ランタイプおよびラン値は、インターリーブされる。この場合、すべてのインデックスが、前方でグループ化され、切捨て２進コーディングを使用してコーディングされる。パレットインデックスコーディングのための切捨て値は、次のように導出されるＭａｘＰａｌｅｔｔｅＩｎｄｅｘである。
ＣｕｒｒｅｎｔＰａｌｅｔｔｅＳｉｚｅ＝ＮｕｍＰｒｅｄｉｃｔｅｄＰａｌｅｔｔｅＥｎｔｒｉｅｓ＋ｎｕｍ＿ｓｉｇｎａｌｌｅｄ＿ｐａｌｅｔｔｅ＿ｅｎｔｒｉｅｓ
【０２５０】
【数１】
2018520562.tif 000012
【０２５１】
[0248]上記の順序は、インデックス情報が（たとえば、ラン値の後であるが、エスケープサンプル値の前に）ブロックの最後に向かってグループ化されるように変更され、または、ランタイプ、ラン値、およびパレットインデックスが、パレットインデックスがラン値の後でシグナリングされるようにインターリーブされる場合、パレットインデックスをシグナリングするコーディング効率を改善することが可能であり得る。パレットインデックスがこのモードのためにのみコーディングされる必要があるので、これらの方法は、ランタイプ（または、パレットサンプルモード）がＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥであるときのみ適用可能であることに留意されたい。
【０２５２】
[0249]パレットインデックスが、対応するラン値の後でシグナリングされる（インターリーブされるか、またはブロックの最後でグループ化されるかのいずれかの）とき、我々は、対応するラン値に基づいて、パレットインデックスのコーディングの改善を提案する。本開示で提案された方法または態様のいずれも、個別に、または、互いともしくは既存の方法と組み合わせて適用され得る。
【０２５３】
[0250]本開示の１つの例示的な技法では、ランがＲＵＮ＿ＴＨＲＥＳＨＯＬＤ以上であるときに発生する、最大パレットインデックス値を指定するために、パレットブロックのためのブロックレベルにおいてシンタックス要素を、ビデオエンコーダ２０はシグナリングし得、ビデオデコーダ３０は受信し得る。そのような値がＭａｘＰａｌｅｔｔｅＩｎｅｘＲｅｓｔｒｉｃｔｅｄによって示されるとする。次いで、ラン値がＲＵＮ＿ＴＨＲＥＳＨＯＬＤ以上であるとき、インデックスをコーディングするために、ＭａｘＰａｌｅｔｔｅＩｎｅｘＲｅｓｔｒｉｃｔｅｄの切捨て値とともに、切捨て２進コーディングが呼び出される。ラン値がＲＵＮ＿ＴＨＲＥＳＨＯＬＤ未満である場合、ｍａｘＰａｌｅｔｔｅＩｎｄｅｘの切捨て値とともに、切捨て２進コーディングが呼び出される。ＭａｘＰａｌｅｔｔｅＩｎｄｅｘＲｅｓｔｒｉｃｔｅｄは、常にＭａｘＰａｌｅｔｔｅＩｎｄｅｘ以下であるので、これは、インデックスコーディングのためのビット節約を生じ得る。例示的な一実装形態では、１に等しいＲＵＮ＿ＴＨＲＥＳＨＯＬＤ値が使用され得る。
【０２５４】
[0251]ＲＵＮ＿ＴＨＲＥＳＨＯＬＤは、エンコーダとデコーダの両方に知られ得るか、または、たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダなどにおいて、ビットストリーム中で送られ得る。
【０２５５】
[0252]ＭａｘＰａｌｅｔｔｅＩｎｄｅｘＲｅｓｔｒｉｃｔｅｄは、固定長コード、単項コード、指数ゴロムコード、ゴロム−ライスコード、ゴロム−ライスコードと指数ゴロムコードとの連結を使用して、直接コーディングされ得る。これらのコードの切捨てバージョン、または切捨て２進コードは、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘに等しい切捨て値に基づいて使用され得る。
【０２５６】
[0253]ＭａｘＰａｌｅｔｔｅＩｎｄｅｘＲｅｓｔｒｉｃｔｅｄを直接コーディングする代わりに、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘＲｅｓｔｒｉｃｔｅｄは、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘに対して予測コーディングされ得る。例示的な一実装形態では、シンボルＳ＝（ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ−ＭａｘＰａｌｅｔｔｅＩｎｄｅｘＲｅｓｔｒｉｃｔｅｄ）がコーディングされる。それは、固定長コード、単項コード、指数ゴロムコード、ゴロム−ライスコード、ゴロム−ライスコードと指数ゴロムコードとの連結を使用して、コーディングされ得る。これらのコードの切捨てバージョン、または切捨て２進コードは、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘに等しい切捨て値に基づいて使用され得る。例示的な一実装形態では、次数０の切捨て指数コード（切捨てＥＧ０）が使用される。さらに、ソースシンボルは、次のように再配列される。シンボル、（ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ−ＭａｘＰａｌｅｔｔｅＩｎｄｅｘＲｅｓｔｒｉｃｔｅｄ）が、０または１に等しい場合、シンボルは、それぞれ０および１にマッピングされる。シンボルＳがＭａｘＰａｌｅｔｔｅＩｎｄｅｘに等しい場合、シンボルＳは２にマッピングされる。これに適応するために、２から（ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ−１）までのシンボルは、１だけインクリメントされる。例示的な一実装形態では、シンボルＳがＭａｘＰａｌｅｔｔｅＩｎｄｅｘ−１に等しい場合、シンボルＳは２にマッピングされる。これに適応するために、２から（ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ−２）までのシンボルは、１だけインクリメントされる。
【０２５７】
[0254]本開示の別の技法によれば、フラグは、ランがＲＵＮ＿ＴＨＲＥＳＨＯＬＤ以上であるとき、そのような最大パレットインデックス値がシグナリングされるか否かを示すために、ブロックレベルでシグナリングされ得る。フラグが０である場合、フラグは、ＭａｘＰａｌｅｔｔｅＩｎｅｘＲｅｓｔｒｉｃｔｅｄがＭａｘＰａｌｅｔｔｅＩｎｅｘに等しいことを示す。この場合、すべてのインデックスが、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘの切捨て値とともに切捨て２進コーディングを使用してコーディングされる。そうでない場合、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘＲｅｓｔｒｉｃｔｅｄがエンコーダによってシグナリングされ、デコーダによって受信され、それがＭａｘＰａｌｅｔｔｅＩｎｄｅｘ未満であることが推論され得る。この場合、（ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ−ＭａｘＰａｌｅｔｔｅＩｎｄｅｘＲｅｓｔｒｉｃｔｅｄ−１）がシグナリングされ得る。フラグは、コンテキストコーディングまたはバイパスコーディングされ得る。
【０２５８】
[0255]（ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ−ＭａｘＰａｌｅｔｔｅＩｎｄｅｘＲｅｓｔｒｉｃｔｅｄ）が、切捨てＥＧ０、またはＥＧ０、または、シンボルが非０であるか否かを第１のビンが示す任意の他のコードを使用してコーディングされるとき、これは、上記で説明されたように、フラグを送ることと等価であることに留意されたい。
【０２５９】
[0256]本開示の別の技法によれば、ブロックレベルフラグは、ランがＲＵＮ＿ＴＨＲＥＳＨＯＬＤ以上であるとき、パレットインデックスがコーディングされず、０に推論されることを示すために、シグナリングされる。したがって、フラグが０であるとき、すべてのインデックスが、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘの切捨て値とともに切捨て２進コーディングを使用してコーディングされる。同様に、フラグが１であり、ランがＲＵＮ＿ＴＨＲＥＳＨＯＬＤ未満であるとき、インデックスはまた、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘの切捨て値とともに切捨て２進コーディングを使用してコーディングされる。フラグが１であり、ランがＲＵＮ＿ＴＨＲＥＳＨＯＬＤ以上であるとき、インデックスはコーディングされないが、０であると推論される。
【０２６０】
[0257]ＲＵＮ＿ＴＨＲＥＳＨＯＬＤは、エンコーダとデコーダの両方に知られ得るか、または、たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダなどにおいて、ビットストリーム中で送られ得る。
【０２６１】
[0258]（ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ−ＭａｘＰａｌｅｔｔｅＩｎｄｅｘＲｅｓｔｒｉｃｔｅｄ）の第１のビンまたは最初のいくつかのビンは、複数のＣＡＢＡＣコンテストを使用してコーディングされ得る。コンテキストは、パレットサイズ、および／またはＭａｘＰａｌｅｔｔｅＩｎｄｅｘ、およびまたはブロックサイズ、およびまたはインデックスの数、および／またはランの数、および／またはｃｏｐｙ  ａｂｏｖｅランの数、および／またはインデックスコピーランの数に依存し得る。
【０２６２】
[0259]本開示の別の技法によれば、シンタックス要素ｌｉｍｉｔ＿ｒｕｎ＿ｖａｌｕｅは、ランがｌｉｍｉｔ＿ｒｕｎ＿ｖａｌｕｅ以上である場合、最大可能インデックス値がＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤ以下であることを示すために、シグナリングされる。ブロックのためのＭａｘＰａｌｅｔｔｅＩｎｄｅｘがＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤ以下である場合、ｌｉｍｉｔ＿ｒｕｎ＿ｖａｌｕｅがコーディングされない。この場合、すべてのインデックスが、ＭａｘＰａｌｅｔｔｅＩｎｅｘの切捨て値とともに切捨て２進コーディングを使用してコーディングされる。そうでない場合、ｌｉｍｉｔ＿ｒｕｎ＿ｖａｌｕｅがシグナリングされる。この場合、ランがｌｉｍｉｔ＿ｒｕｎ＿ｖａｌｕｅ以上である場合、インデックスは、ＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤの切捨て値とともに切捨て２進コーディングを使用してコーディングされる。ランがｌｉｍｉｔ＿ｒｕｎ＿ｖａｌｕｅ未満である場合、インデックスは、ＭａｘＰａｌｅｔｔｅＩｎｅｘの切捨て値とともに切捨て２進コーディングを使用してコーディングされる。
【０２６３】
[0260]ＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤは、エンコーダとデコーダの両方に知られ得るか、または、たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダなどにおいて、ビットストリーム中で送られ得る。シンタックス要素「ｌｉｍｉｔ＿ｒｕｎ＿ｖａｌｕｅ」は、固定長コード、単項コード、指数ゴロムコード、ゴロム−ライスコード、またはゴロム−ライスコードと指数ゴロムコードとの連結を使用して、コーディングされ得る。これらのコードの切捨てバージョン、または切捨て２進コードは、ブロックサイズ−１に等しい切捨て値に基づいて使用され得る。
【０２６４】
[0261]ブロックのためのＭａｘＰａｌｅｔｔｅＩｎｄｅｘがＩＮＤＥＸ＿ＴＨＲＥＳＨＯＬＤよりも大きいとき、ブロックレベルフラグは、ｌｉｍｉｔ＿ｒｕｎ＿ｖａｌｕｅがコーディングされるか否かを示すためにシグナリングされ得る。それがコーディングされない場合、すべてのインデックスが、ＭａｘＰａｌｅｔｔｅＩｎｅｘの切捨て値とともに切捨て２進コーディングを使用してコーディングされる。フラグが１である場合、ｌｉｍｉｔ＿ｒｕｎ＿ｖａｌｕｅがコーディングされ、インデックスコーディングが、上記で説明された技法に従って実施される。
【０２６５】
[0262]上記で説明された技法を実装する一例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ビデオデータのブロックがパレットモードを使用してコーディングされると決定し、第１の最大パレットインデックス値を決定し得る。ビデオコーダは、第２の最大パレットインデックス値を決定し得る。第２の最大パレットインデックス値は、ランがランしきい値以上であるときのための最大パレットインデックス値であり得、第２の最大パレットインデックス値は、第１の最大パレットインデックス値未満であり得る。ラン値がランしきい値以上であることに応答して、ビデオコーダは、第２の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、インデックス値をコーディングし得る。ビデオコーダはまた、ラン値がランしきい値未満であることに応答して、第１の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、インデックス値をコーディングし得る。第１の最大パレットインデックス値は、第２の最大パレットインデックス値の予測であり得る。第２の最大パレットインデックス値を決定するために、ビデオコーダ（ビデオ復号を実施中の場合）は、第２の最大パレットインデックス値を示すブロックレベルシグナリングを受信し得る。
【０２６６】
[0263]ビデオコーダは、たとえば、シグナリング情報を送信すること、またはシグナリング情報を受信することによって、たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ、またはスライスヘッダのうちの１つまたは複数において、ランしきい値をシグナリングし得る。ランしきい値は、代替的に、ビデオＣＯＤＥＣによって定義され得る。
【０２６７】
[0264]第２の最大パレットインデックス値を決定するために、ビデオコーダは、第２の最大パレットインデックス値の指示をシグナリングし得る。指示は、たとえば、固定長コーディング、単項コーディング、指数ゴロムコーディング、ゴロム−ライスコーディング、または、ゴロム−ライスコードと指数ゴロムコードとの連結のうちの１つまたは複数を使用してコーディングされ得る。指示はまた、上記のコーディング技法の切捨てバージョン、または切捨て２進コーディングを使用してコーディングされ得る。切捨て値は、第１の最大パレットインデックス値に等しくなり得る。
【０２６８】
[0265]第２の最大パレットインデックス値を決定するために、ビデオコーダは、第２の最大パレットインデックス値を予測し、予測と第２の最大パレットインデックス値との間の差分をシグナリングし得る。ビデオコーダは、固定長コーディング、単項コーディング、指数ゴロムコーディング、ゴロム−ライスコーディング、または、ゴロム−ライスコードと指数ゴロムコードとの連結のうちの１つまたは複数を使用して、差分をコーディングし得る。差分はまた、上記で具陳されたコーディング技法の切捨てバージョン、または切捨て２進コーディングを使用してコーディングされ得る。切捨て値は、第１の最大パレットインデックス値に等しくなり得る。
【０２６９】
[0266]上記で説明された技法を実装する別の例では、ビデオコーダは、ビデオデータのブロックがパレットモードを使用してコーディングされると決定し、ビデオデータのブロックのための最大パレットインデックス値を決定する。ビデオコーダは、インデックスしきい値を決定し、第１の最大パレットインデックス値がインデックスしきい値よりも大きいことに応答して、ラン限界値を決定する。ラン値がラン限界値以上であることに応答して、ビデオコーダは、インデックスしきい値に等しい切捨て値とともに切捨て２進コーディングを使用して、インデックス値をコーディングする。ビデオコーダは、たとえば、シグナリング情報を送信すること、またはシグナリング情報を受信することによって、たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ、またはスライスヘッダのうちの１つまたは複数において、ランしきい値をシグナリングし得る。ランしきい値は、代替的に、ビデオＣＯＤＥＣによって定義され得る。
【０２７０】
[0267]第１の最大パレットインデックス値がインデックスしきい値以下であることに応答して、ビデオコーダは、最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、インデックス値をコーディングし得る。第２の最大パレットインデックス値を決定するために、ビデオコーダは、第２の最大パレットインデックス値の指示をシグナリングし得る。指示は、たとえば、固定長コーディング、単項コーディング、指数ゴロムコーディング、ゴロム−ライスコーディング、または、ゴロム−ライスコードと指数ゴロムコードとの連結のうちの１つまたは複数を使用してコーディングされ得る。指示はまた、上記のコーディング技法の切捨てバージョン、または切捨て２進コーディングを使用してコーディングされ得る。切捨て値は、第１の最大パレットインデックス値に等しくなり得る。
【０２７１】
[0268]図５は、本開示の技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。図５は、説明の目的で与えられており、本開示で広く例示され、説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０２７２】
[0269]ビデオエンコーダ２０は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実施するように構成され得るデバイスの一例を表す。
【０２７３】
[0270]図５の例では、ビデオエンコーダ２０は、予測処理ユニット３００と、ビデオデータメモリ３０１と、残差生成ユニット３０２と、変換処理ユニット３０４と、量子化ユニット３０６と、逆量子化ユニット３０８と、逆変換処理ユニット３１０と、再構築ユニット３１２と、フィルタユニット３１４と、復号ピクチャバッファ３１６と、エントロピー符号化ユニット３１８とを含む。予測処理ユニット３００は、インター予測処理ユニット３２０と、イントラ予測処理ユニット３２６とを含む。インター予測処理ユニット３２０は、動き推定ユニットと、動き補償ユニットとを含む（図示せず）。ビデオエンコーダ２０はまた、本開示で説明されるパレットベースコーディング技法の様々な態様を実施するように構成された、パレットベース符号化ユニット３２２を含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０２７４】
[0271]ビデオデータメモリ３０１は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶するように構成され得る。ビデオデータメモリ３０１に記憶されたビデオデータは、たとえば、ビデオソース１８から取得され得る。復号ピクチャバッファ３１６は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ２０によってビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ３０１および復号ピクチャバッファ３１６は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ３０１および復号ピクチャバッファ３１６は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ３０１は、ビデオエンコーダ２０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０２７５】
[0272]ビデオエンコーダ２０は、ビデオデータを受信する。ビデオエンコーダ２０は、ビデオデータのピクチャのスライス中の各ＣＴＵを符号化し得る。ＣＴＵの各々は、ピクチャの等しいサイズのルーマコーディングツリーブロック（ＣＴＢ）と、対応するＣＴＢとに関連付けられ得る。ＣＴＵを符号化することの一部として、予測処理ユニット３００は、ＣＴＵのＣＴＢを徐々により小さいブロックに分割するために４分木区分を実施し得る。より小さいブロックは、ＣＵのコーディングブロックであり得る。たとえば、予測処理ユニット３００は、ＣＴＵに関連付けられたＣＴＢを４つの等しいサイズのサブブロックに区分し、サブブロックのうちの１つまたは複数を４つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【０２７６】
[0273]ビデオエンコーダ２０は、ＣＵの符号化された表現（すなわち、コード化ＣＵ）を生成するために、ＣＴＵのＣＵを符号化し得る。ＣＵを符号化することの一部として、予測処理ユニット３００は、ＣＵの１つまたは複数のＰＵの間でＣＵに関連付けられたコーディングブロックを区分し得る。したがって、各ＰＵは、ルーマ予測ブロックと、対応するクロマ予測ブロックとに関連付けられ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートし得る。上記のように、ＣＵのサイズは、ＣＵのルーマコーディングブロックのサイズを指すことがあり、ＰＵのサイズは、ＰＵのルーマ予測ブロックのサイズを指すことがある。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測のための２Ｎ×２ＮまたはＮ×ＮのＰＵサイズと、インター予測のための２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称ＰＵサイズとをサポートし得る。ビデオエンコーダ２０およびビデオデコーダ３０は、インター予測のための２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズに対する非対称区分をもサポートし得る。
【０２７７】
[0274]インター予測処理ユニット３２０は、ＣＵの各ＰＵに対してインター予測を実施することによって、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、ＰＵの予測ブロックと、ＰＵのための動き情報とを含み得る。インター予測処理ユニット３２０は、ＰＵがＩスライス中にあるか、Ｐスライス中にあるか、Ｂスライス中にあるかに応じて、ＣＵのＰＵに対して異なる動作を実施し得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測処理ユニット３２０は、ＰＵに対してインター予測を実施しない。したがって、Ｉモードで符号化されたブロックの場合、予測ブロックは、同じフレーム内の前に符号化された隣接ブロックからの空間予測を使用して形成される。ＰＵがＰスライス中にある場合、インター予測処理ユニット３２０は、ＰＵの予測ブロックを生成するために、単方向インター予測を使用し得る。ＰＵがＢスライス中にある場合、インター予測処理ユニット３２０は、ＰＵの予測ブロックを生成するために、単方向インター予測または双方向インター予測を使用し得る。
【０２７８】
[0275]本開示の様々な例によれば、ビデオエンコーダ２０は、パレットベースコーディングを実施するように構成され得る。ＨＥＶＣフレームワークに関して、一例として、パレットベースコーディング技法は、コーディングユニット（ＣＵ）モードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、ＨＥＶＣのフレームワークにおいてＰＵモードとして使用されるように構成され得る。したがって、ＣＵモードのコンテキストにおいて（本開示全体を通して）本明細書で説明される開示されるプロセスのすべてが、追加または代替として、ＰＵに適用され得る。しかしながら、これらのＨＥＶＣベースの例は、本明細書で説明されるパレットベースコーディング技法が、独立して、あるいは他の既存のまたはまだ開発されていないシステム／規格の一部として動作するように適用され得るので、そのような技法の制限または限定であると見なされるべきではない。これらの場合、パレットコーディングのためのユニットは、正方形ブロック、矩形ブロック、さらには非矩形形状の領域であり得る。
【０２７９】
[0276]パレットベース符号化ユニット３２２は、たとえば、パレットベース符号化モードが、たとえば、ＣＵまたはＰＵのために選択されるとき、パレットベース復号を実施し得る。たとえば、パレットベース符号化ユニット３２２は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置のピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロックの位置のうちの少なくともいくつかを選択されたピクセル値にそれぞれ対応するパレット中のエントリに関連付ける情報をシグナリングするように構成され得る。様々な機能がパレットベースの符号化ユニット３２２によって実施されるものとして説明されるが、そのような機能のいくつかまたはすべては、他の処理ユニット、または異なる処理ユニットの組合せによって実施され得る。
【０２８０】
[0277]イントラ予測処理ユニット３２６は、ＰＵに対してイントラ予測を実施することによって、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、ＰＵの予測ブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット３２６は、Ｉスライス、Ｐスライス、およびＢスライス中のＰＵに対してイントラ予測を実施し得る。
【０２８１】
[0278]ＰＵに対してイントラ予測を実施するために、イントラ予測処理ユニット３２６は、ＰＵのための予測データの複数のセットを生成するために複数のイントラ予測モードを使用し得る。イントラ予測処理ユニット３２６は、ＰＵのための予測ブロックを生成するために、隣接ＰＵのサンプルブロックからのサンプルを使用し得る。隣接ＰＵは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右上、左上、または左にあり得る。イントラ予測処理ユニット３２６は、様々な数のイントラ予測モード、たとえば、３３個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、ＰＵに関連付けられた領域のサイズに依存し得る。
【０２８２】
[0279]予測処理ユニット３００は、ＰＵのためにインター予測処理ユニット３２０によって生成された予測データ、またはＰＵのためにイントラ予測処理ユニット３２６によって生成された予測データの中から、ＣＵのＰＵのための予測データを選択し得る。いくつかの例では、予測処理ユニット３００は、予測データのセットのレート／ひずみメトリックに基づいて、ＣＵのＰＵのための予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれることがある。
【０２８３】
[0280]残差生成ユニット３０２は、ＣＵのためのコーディングブロック（たとえば、ルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）、ならびにＣＵのＰＵのための選択された予測ブロック（たとえば、予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロック）に基づいて、ＣＵのための残差ブロック（たとえば、ルーマ残差ブロック、Ｃｂ残差ブロック、およびＣｒ残差ブロック）を生成し得る。たとえば、残差生成ユニット３０２は、残差ブロック中の各サンプルが、ＣＵのコーディングブロック中のサンプルと、ＣＵのＰＵの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０２８４】
[0281]変換処理ユニット３０４は、ＣＵに関連付けられた残差ブロックをＣＵのＴＵに関連付けられた変換ブロックに区分するために、４分木区分を実施し得る。したがって、ＴＵは、ルーマ変換ブロックと２つのクロマ変換ブロックとに関連付けられ得る。ＣＵのＴＵのルーマ変換ブロックとクロマ変換ブロックとのサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差４分木」（ＲＱＴ：residual quad-tree）として知られる４分木構造は、領域の各々に関連付けられたノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。
【０２８５】
[0282]変換処理ユニット３０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵのための変換係数ブロックを生成し得る。変換処理ユニット３０４は、ＴＵに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット３０４は、離散コサイン変換（ＤＣＴ）、方向変換、または概念的に同様の変換を、変換ブロックに適用し得る。いくつかの例では、変換処理ユニット３０４は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
【０２８６】
[0283]量子化ユニット３０６は、係数ブロック中の変換係数を量子化し得る。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、ｎビット変換係数は量子化の間にｍビットの変換係数に切り捨てられ得、ただし、ｎはｍよりも大きい。量子化ユニット３０６は、ＣＵに関連付けられた量子化パラメータ（ＱＰ）値に基づいて、ＣＵのＴＵに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらし得、したがって、被量子化変換係数は、元の係数よりも低い精度を有し得る。
【０２８７】
[0284]逆量子化ユニット３０８および逆変換処理ユニット３１０は、係数ブロックから残差ブロックを再構築するために、それぞれ、係数ブロックに逆量子化および逆変換を適用し得る。再構築ユニット３１２は、ＴＵに関連付けられた再構築された変換ブロックを生成するために、再構築された残差ブロックを、予測処理ユニット３００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加算し得る。このようにＣＵの各ＴＵのための変換ブロックを再構築することによって、ビデオエンコーダ２０は、ＣＵのコーディングブロックを再構築し得る。
【０２８８】
[0285]フィルタユニット３１４は、ＣＵに関連付けられたコーディングブロック中のブロッキングアーティファクトを低減するために、１つまたは複数のデブロッキング演算を実施し得る。復号ピクチャバッファ３１６は、フィルタユニット３１４が、再構築されたコーディングブロックに対して１つまたは複数のデブロッキング演算を実施した後、再構築されたコーディングブロックを記憶し得る。インター予測処理ユニット３２０は、他のピクチャのＰＵに対してインター予測を実施するために、再構築されたコーディングブロックを含んでいる参照ピクチャを使用し得る。さらに、イントラ予測処理ユニット３２６は、ＣＵと同じピクチャ中の他のＰＵに対してイントラ予測を実施するために、復号ピクチャバッファ３１６中の再構築されたコーディングブロックを使用し得る。
【０２８９】
[0286]エントロピー符号化ユニット３１８は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット３１８は、量子化ユニット３０６から係数ブロックを受信し得、予測処理ユニット３００からシンタックス要素を受信し得る。エントロピー符号化ユニット３１８は、エントロピー符号化データを生成するために、データに対して１つまたは複数のエントロピー符号化演算を実施し得る。たとえば、エントロピー符号化ユニット３１８は、ＣＡＢＡＣ演算、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）演算、可変対可変（Ｖ２Ｖ）長コーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）演算、確率間隔区分エントロピー（ＰＩＰＥ）コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算を、データに対して実施し得る。ビデオエンコーダ２０は、エントロピー符号化ユニット３１８によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。たとえば、ビットストリームは、ＣＵのためのＲＱＴを表すデータを含み得る。
【０２９０】
[0287]本開示の例示的な技法によれば、エントロピー符号化ユニット３１８は、ビットストリーム中に、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットに対応する、第１のエントロピー符号化データを含め得る。エントロピー符号化ユニット３１８は、ビットストリーム中に、現在ブロックのためのパレットインデックスシンタックス要素のセットに対応する、第２のエントロピー符号化データを含め得、第１のエントロピー符号化データは、第２のエントロピー符号化データの前にビットストリーム中で発生する。この例では、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループは、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示す。さらに、この例では、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素は、サンプル値のセットを備えるパレット中のエントリを示す。
【０２９１】
[0288]図６は、本開示の技法を実装するように構成される例示的なビデオデコーダ３０を示すブロック図である。図６は、説明の目的で与えられており、本開示で広く例示され、説明される技法に対する限定ではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０２９２】
[0289]ビデオエンコーダ２０は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実施するように構成され得るデバイスの一例を表す。たとえば、ビデオエンコーダ２０は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、ＨＥＶＣコーディングにおけるＣＵまたはＰＵなど、ビデオデータの様々なブロックを選択的に復号するように構成され得る。非パレットベースコーディングモードは、ＨＥＶＣバージョン１によって指定される様々なコーディングモードなど、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。ビデオデコーダ３０は、一例では、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構築するように構成され得る。
【０２９３】
[0290]図６の例では、ビデオデコーダ３０は、エントロピー復号ユニット３５０と、ビデオデータメモリ３５１と、予測処理ユニット３５２と、逆量子化ユニット３５４と、逆変換処理ユニット３５６と、再構築ユニット３５８と、フィルタユニット３６０と、復号ピクチャバッファ３６２とを含む。予測処理ユニット３５２は、動き補償ユニット３６４と、イントラ予測処理ユニット３６６とを含む。ビデオデコーダ３０はまた、本開示で説明されるパレットベースコーディング技法の様々な態様を実施するように構成された、パレットベース復号ユニット３６５を含む。他の例では、ビデオデコーダ３０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０２９４】
[0291]ビデオデータメモリ３５１は、ビデオデコーダ３０の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ３５１に記憶されるビデオデータは、たとえば、コンピュータ可読媒体３６から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードまたはワイヤレスネットワーク通信を介して、あるいは物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ３５１は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成し得る。復号ピクチャバッファ３６２は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ３０によってビデオデータを復号する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ３５１および復号ピクチャバッファ３６２は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ３５１および復号ピクチャバッファ３６２は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ３５１は、ビデオデコーダ３０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０２９５】
[0292]ビデオデータメモリ３５１は、ビットストリームの符号化ビデオデータ（たとえば、ＮＡＬユニット）を受信し、記憶する。エントロピー復号ユニット３５０は、ＣＰＢから符号化ビデオデータ（たとえば、ＮＡＬユニット）を受信し、シンタックス要素を取得するために、ＮＡＬユニットをパースし得る。エントロピー復号ユニット３５０は、ＮＡＬユニット中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット３５２、逆量子化ユニット３５４、逆変換処理ユニット３５６、再構築ユニット３５８、およびフィルタユニット３６０は、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成し得る。エントロピー復号ユニット３５０は、エントロピー符号化ユニット３１８のプロセスとは全体的に逆のプロセスを実施し得る。
【０２９６】
[0293]ビットストリームからシンタックス要素を取得することに加えて、ビデオデコーダ３０は、区分されていないＣＵに対して再構築演算を実施し得る。ＣＵに対して再構築演算を実施するために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して再構築演算を実施し得る。ＣＵの各ＴＵに対して再構築演算を実施することによって、ビデオデコーダ３０は、ＣＵの残差ブロックを再構築し得る。
【０２９７】
[0294]ＣＵのＴＵに対して再構築演算を実施することの一部として、逆量子化ユニット３５４は、ＴＵに関連付けられた係数ブロックを逆量子化、すなわち、量子化解除し得る。逆量子化ユニット３５４は、量子化の程度を決定し、同様に、逆量子化ユニット３５４が適用すべき逆量子化の程度を決定するために、ＴＵのＣＵに関連付けられたＱＰ値を使用し得る。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるＱＰの値を調整することによって制御され得る。圧縮比はまた、採用されたエントロピーコーディングの方法に依存し得る。
【０２９８】
[0295]逆量子化ユニット３５４が係数ブロックを逆量子化した後、逆変換処理ユニット３５６は、ＴＵに関連付けられた残差ブロックを生成するために、係数ブロックに１つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット３５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向変換、または別の逆変換を係数ブロックに適用し得る。
【０２９９】
[0296]本開示の例示的な技法によれば、エントロピー復号ユニット３５０は、ビットストリーム中の第１のエントロピー符号化データに基づいて、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定し得る。加えて、エントロピー復号ユニット３５０は、第２のエントロピー符号化データそのビットストリームに基づいて、現在ブロックのためのパレットインデックスシンタックス要素のセットを決定し得、第１のエントロピー符号化データは、第２のエントロピー符号化データの前にビットストリーム中で発生する。この例では、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループは、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示す。この例では、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素は、サンプル値のセットを備えるパレット中のエントリを示す。ビデオデコーダ３０の他の構成要素は、パレット中のサンプル値に基づいて、現在ブロックを再構築し得る。たとえば、パレットベース復号ユニット３６５は、ＣＵのＰＵのための予測ブロックを生成するために、パレット中のサンプル値を使用し得る。
【０３００】
[0297]ＰＵが、イントラ予測を使用して符号化される場合、イントラ予測処理ユニット３６６は、ＰＵの予測ブロックを生成するために、イントラ予測を実施し得る。イントラ予測処理ユニット３６６は、サンプル空間的隣接ブロックに基づいてＰＵの予測ブロックを生成するために、イントラ予測モードを使用し得る。イントラ予測処理ユニット３６６は、ビットストリームから取得された１つまたは複数のシンタックス要素に基づいて、ＰＵのためのイントラ予測モードを決定し得る。
【０３０１】
[0298]ＰＵが、インター予測を使用して符号化される場合、エントロピー復号ユニット３５０は、ＰＵのための動き情報を決定し得る。動き補償ユニット３６４は、ＰＵの動き情報に基づいて、１つまたは複数の参照ブロックを決定し得る。動き補償ユニット３６４は、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ブロック（たとえば、予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロック）を生成し得る。
【０３０２】
[0299]再構築ユニット３５８は、ＣＵのためのコーディングブロック（たとえば、ルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）を再構築するために、適用可能であれば、ＣＵのＴＵのための変換ブロック（たとえば、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロック）、ならびにＣＵのＰＵの予測ブロック（たとえば、ルーマブロック、Ｃｂブロック、およびＣｒブロック）、すなわち、イントラ予測データまたはインター予測データのいずれかを使用し得る。たとえば、再構築ユニット３５８は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）を再構築するために、変換ブロック（たとえば、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロック）のサンプルを、予測ブロック（たとえば、ルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロック）の対応するサンプルに加算し得る。
【０３０３】
[0300]フィルタユニット３６０は、ＣＵのコーディングブロックに関連付けられたブロッキングアーティファクトを低減するために、デブロッキング演算を実施し得る。ビデオデコーダ３０は、復号ピクチャバッファ３６２にＣＵのコーディングブロックを記憶し得る。復号ピクチャバッファ３６２は、後続の動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のために、参照ピクチャを与え得る。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ３６２中のブロックに基づいて、他のＣＵのＰＵに対してイントラ予測動作またはインター予測動作を実施し得る。
【０３０４】
[0301]ビデオデコーダ３０は、パレットベースコーディングを実施するように構成され得る。たとえば、パレットベース復号ユニット３６５は、パレットベース復号モードが、たとえば、ＣＵまたはＰＵのために選択されるとき、パレットベース復号を実施し得る。たとえば、パレットベース復号ユニット３６５は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構築し得る。様々な機能がパレットベース復号ユニット３６５によって実施されるものとして説明されるが、そのような機能のいくつかまたはすべては、他の処理ユニット、または異なる処理ユニットの組合せによって実施され得る。
【０３０５】
[0302]パレットベース復号ユニット３６５は、パレットコーディングモード情報を受信し、パレットコーディングモードがブロックに適用されることをパレットコーディングモード情報が示すとき、上記の動作を実施し得る。パレットコーディングモードがブロックに適用されないことをパレットコーディングモード情報が示すとき、または他のモード情報が異なるモードの使用を示すとき、パレットベース復号ユニット３６５は、たとえば、ＨＥＶＣインター予測またはイントラ予測コーディングモードなど、非パレットベースコーディングモードを使用してビデオデータのブロックを復号する。ビデオデータのブロックは、たとえば、ＨＥＶＣコーディングプロセスに従って生成されるＣＵまたはＰＵであり得る。パレットベースコーディングモードは、複数の異なるパレットベースコーディングモードのうちの１つを備え得るか、または単一のパレットベースコーディングモードがあり得る。
【０３０６】
[0303]本明細書で説明された技法のすべてが、個々にまたは組合せで使用され得ることを理解されたい。例に応じて、本明細書で説明された技法のうちのいずれかのいくつかの行為またはイベントは、異なるシーケンスで実施され得、追加、マージ、または完全に除外され得る（たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。加えて、本開示のいくつかの態様は、明快のために単一のモジュールまたはユニットによって実施されるものとして説明されるが、本開示の技法は、ビデオコーダに関連付けられたユニットまたはモジュールの組合せによって実施され得ることを理解されたい。
【０３０７】
[0304]例示のためにＨＥＶＣ規格に関して、本開示のいくつかの態様が説明された。ただし、本開示で説明された技法は、まだ開発されていない他の規格またはプロプライエタリビデオコーディングプロセスを含む、他のビデオコーディングプロセスのために有用であり得る。
【０３０８】
[0305]上記で説明された技法は、その両方が一般にビデオコーダと呼ばれることがある、ビデオエンコーダ２０（図１および図５）および／またはビデオデコーダ３０（図１および図６）によって実施され得る。同様に、ビデオコーディングは、適用可能なとき、ビデオ符号化またはビデオ復号を指すことがある。
【０３０９】
[0306]図７は、本開示の技法による、ビデオデータを符号化するための例示的な方法を示すフローチャートである。図７の技法は、図１および５のビデオエンコーダ２０に関して説明されるが、図７の技法は、いかなる特定のタイプのビデオエンコーダにも限定されない。図７の例では、ビデオエンコーダ２０は、ビットストリーム中に、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットに対応する、第１のエントロピー符号化データを含める（４０２）。ビデオエンコーダ２０は、ビットストリーム中に、現在ブロックのためのパレットインデックスシンタックス要素のセットに対応する、第２のエントロピー符号化データを含め、第１のエントロピー符号化データは、第２のエントロピー符号化データの前にビットストリーム中で発生する（４０４）。ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループは、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示し、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素は、サンプル値のセットを備えるパレット中のエントリを示す。ビデオエンコーダ２０は、第１のエントロピー符号化ビデオデータと、第２のエントロピー符号化ビデオデータとともに、ビットストリームを出力する（４０６）。
【０３１０】
[0307]第１のエントロピー符号化データを含めるために、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、ビデオエンコーダ２０は、複数のエントロピーコーディングコンテキストから、それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択し、ここにおいて、それぞれのエントロピーコーディングコンテキストの選択が、パレットインデックスシンタックス要素のいずれにも依存せず、また、選択されたエントロピーコーディングコンテキストに基づいて、それぞれのラン関係シンタックス要素グループのビンをエントロピー符号化する。エントロピーコーディングコンテキストを選択するために、ビデオエンコーダ２０は、それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの現在ブロック内の位置に基づいて、それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択する。追加または代替として、エントロピーコーディングコンテキストを選択するために、ビデオエンコーダ２０は、パレットのサイズに基づいて、それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択する。
【０３１１】
[0308]第２のエントロピー符号化データを含めるために、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビデオエンコーダ２０は、同じパレットインデックスをもつ連続するロケーションの数に基づいて、２値化方法を決定し、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素の２値化バージョンを生成し得る。ビデオエンコーダ２０は、それぞれのインデックスシンタックス要素の２値化バージョンをエントロピー符号化し、ビットストリーム中に、それぞれのパレットインデックスシンタックス要素のエントロピー符号化された２値化バージョンを含め得る。
【０３１２】
[0309]パレットインデックスシンタックス要素のセットを取得するために、ビデオエンコーダ２０は、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、パレットサイズに基づいて、２値化方法を決定し、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素の２値化バージョンを生成し、それぞれのインデックスシンタックス要素の２値化バージョンをエントロピー符号化し、ビットストリーム中に、それぞれのパレットインデックスシンタックス要素のエントロピー符号化された２値化バージョンを含め得る。パレットサイズの異なる値は、異なる２値化方法に対応し得る。ビデオエンコーダ２０はまた、調整されたパレットサイズを生じるために、パレットサイズ調整プロセスを実施し得る。
【０３１３】
[0310]パレットインデックスシンタックス要素のセットを取得するために、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビデオエンコーダ２０は、パレットサイズと、同じパレットインデックスをもつ連続するロケーションの数とに基づいて、２値化方法を決定し、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素の２値化バージョンを生成し、それぞれのインデックスシンタックス要素の２値化バージョンをエントロピー符号化し、ビットストリーム中に、それぞれのパレットインデックスシンタックス要素のエントロピー符号化された２値化バージョンを含め得る。ビデオエンコーダ２０はまた、調整されたパレットサイズを生じるために、パレットサイズ調整プロセスを実施し得る。
【０３１４】
[0311]図８は、本開示の技法による、ビデオデータを復号するための例示的な方法を示すフローチャートである。図８の技法は、図１および６のビデオデコーダ３０に関して説明されるが、図８の技法は、いかなる特定のタイプのビデオデコーダにも限定されない。図８の例では、ビデオデコーダ３０は、ビットストリーム中の第１のエントロピー符号化データに基づいて、ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定する（４２２）。ビデオデコーダ３０は、第２のエントロピー符号化データそのビットストリームに基づいて、現在ブロックのためのパレットインデックスシンタックス要素のセットを決定し、第１のエントロピー符号化データは、第２のエントロピー符号化データの前にビットストリーム中で発生する（４２４）。ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループは、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、それぞれのランのそれぞれの長さとを示し、パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素は、サンプル値のセットを備えるパレット中のエントリを示す。ビデオデコーダ３０は、パレット中のサンプル値に基づいて、現在ブロックを再構築する（４２６）。
【０３１５】
[0312]ラン関係シンタックス要素グループのセットを決定することは備える、ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、ビデオデコーダ３０は、複数のエントロピーコーディングコンテキストから、それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択し、選択されたエントロピーコーディングコンテキストに基づいて、それぞれのラン関係シンタックス要素グループのビンをエントロピー復号する。それぞれのエントロピーコーディングコンテキストの選択は、パレットインデックスシンタックス要素のいずれにも依存しなくてよい。エントロピーコーディングコンテキストを選択するために、ビデオデコーダ３０は、それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの現在ブロック内の位置に基づいて、それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択し得る。エントロピーコーディングコンテキストを選択するために、ビデオデコーダ３０は、パレットのサイズに基づいて、それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択し得る。
【０３１６】
[0313]パレットインデックスシンタックス要素のセットを決定するために、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビデオデコーダ３０は、ビットストリームから、それぞれのパレットインデックスシンタックス要素に対応するデータを取得し、それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、それぞれのパレットインデックスシンタックス要素に対応するデータをエントロピー復号する。ビデオデコーダ３０はまた、同じパレットインデックスをもつ連続するロケーションの数に基づいて、２値化方法を決定し、それぞれのパレットインデックスシンタックス要素の２値化バージョンを逆２値化するために、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素を決定し得る。
【０３１７】
[0314]パレットインデックスシンタックス要素のセットを決定するために、ビデオデコーダ３０は、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビットストリームから、それぞれのパレットインデックスシンタックス要素に対応するデータを取得し、それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、それぞれのパレットインデックスシンタックス要素に対応するデータをエントロピー復号し得る。ビデオデコーダ３０はまた、パレットサイズに基づいて、２値化方法を決定し、それぞれのパレットインデックスシンタックス要素の２値化バージョンを逆２値化するために、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素を決定し得る。パレットサイズの異なる値は、異なる２値化方法に対応し得る。ビデオデコーダ３０は、調整されたパレットサイズを生じるために、パレットサイズ調整プロセスを実施し得る。
【０３１８】
[0315]パレットインデックスシンタックス要素のセットを決定するために、パレットインデックスシンタックス要素要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、ビデオデコーダ３０は、ビットストリームから、それぞれのパレットインデックスシンタックス要素に対応するデータを取得し、それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、それぞれのパレットインデックスシンタックス要素に対応するデータをエントロピー復号し得る。ビデオデコーダ３０はまた、パレットサイズと、同じパレットインデックスをもつ連続するロケーションの数とに基づいて、２値化方法を決定し、それぞれのパレットインデックスシンタックス要素の２値化バージョンを逆２値化するために、決定された２値化方法を使用して、それぞれのパレットインデックスシンタックス要素を決定し得る。ビデオデコーダ３０は、調整されたパレットサイズを生じるために、パレットサイズ調整プロセスを実施し得る。
【０３１９】
[0316]技法の様々な態様の特定の組合せが上記で説明されているが、これらの組合せは、本開示で説明された技法の例を示すために与えられたにすぎない。したがって、本開示の技法は、これらの例示的な組合せに限定されるべきでなく、本開示で説明された技法の様々な態様の任意の考えられる組合せを包含し得る。
【０３２０】
[0317]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０３２１】
[0318]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０３２２】
[0319]命令は、１つもしくは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な集積回路もしくはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または、本明細書で説明された技法の実装のために好適な任意の他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０３２３】
[0320]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置に実装され得る。様々な構成要素、モジュール、またはユニットは、開示された技法を実施するように構成されたデバイスの機能的態様を強調するように本開示で説明されるが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットは、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされるか、または相互動作ハードウェアユニットの集合によって提供され得る。
【０３２４】
[0321]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。
【図１】
2018520562.tif 000013
【図２】
2018520562.tif 000014
【図３】
2018520562.tif 000015
【図４】
2018520562.tif 000016
【図５】
2018520562.tif 000017
【図６】
2018520562.tif 000018
【図７】
2018520562.tif 000019
【図８】
2018520562.tif 000020
【手続補正書】
【提出日】平成30年1月25日(2018.1.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
ここにおいて、前記ラン関係シンタックス要素グループのセットを決定することが、前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、
複数のエントロピーコーディングコンテキストから、基準に基づいて、前記それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択することと、ここにおいて、前記それぞれのエントロピーコーディングコンテキストの前記選択が、前記パレットインデックスシンタックス要素のいずれにも依存せず、前記基準が、前記それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの前記現在ブロック内の位置、または前記パレットのサイズのうちの一方または両方を備える、
前記選択されたエントロピーコーディングコンテキストに基づいて、前記それぞれのラン関係シンタックス要素グループのビンをエントロピー復号することと、
を備え、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築することと
を備える、方法。
【請求項２】
前記パレットインデックスシンタックス要素のセットを決定することが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
同じパレットインデックスをもつ連続するロケーションの数に基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を備える、請求項１に記載の方法。
【請求項３】
前記パレットインデックスシンタックス要素のセットを決定することが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を備える、請求項１に記載の方法。
【請求項４】
前記パレットインデックスシンタックス要素のセットを決定することが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズと、同じパレットインデックスをもつ連続するロケーションの数とに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を備える、請求項１に記載の方法。
【請求項５】
前記パレットインデックスシンタックス要素のセットのためのインデックス値が、インデックス予測子のリストを使用して予測可能であるかどうかを示す、フラグを受信することをさらに備える、請求項１に記載の方法。
【請求項６】
前記現在ブロックのために使用される前記ラン関係シンタックス要素グループのセット中で示す最大ラン値を示すシンタックス要素を復号することと、
切捨て値として前記最大ラン値を使用して、ラン値を復号することと
をさらに備える、請求項１に記載の方法。
【請求項７】
第１の最大パレットインデックス値を決定することと、
第２の最大パレットインデックス値を決定することと、ここにおいて、前記第２の最大パレットインデックス値が、ランがランしきい値以上であるときのための最大パレットインデックス値を備え、ここにおいて、前記第２の最大パレットインデックス値が、前記第１の最大パレットインデックス値未満である、
ラン値が前記ランしきい値以上であるとき、前記第２の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、インデックス値をコーディングすることと、
前記ラン値が前記ランしきい値未満であるとき、前記第１の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、前記インデックス値をコーディングすることと
をさらに備える、請求項１に記載の方法。
【請求項８】
前記１つまたは複数のパレットエントリのための１つまたは複数のインデックス値を復号すること、前記１つまたは複数のインデックス値のうちの少なくとも１つのインデックス値が、前記パレットの第１の領域に属し、前記１つまたは複数のインデックス値のうちの少なくとも１つの他のインデックス値が、前記パレットの第２の領域に属し、ここにおいて、制限に従って、前記第２の領域のインデックス値が連続的な走査順序においてコーディングされ、前記制限が、前記インデックス値が前記連続的な走査順序において前記第２の領域中に現れるべきであることを示す
をさらに備える、請求項１に記載の方法。
【請求項９】
ワイヤレス通信デバイスの受信機において、前記ビデオデータを受信することと、
前記ワイヤレス通信デバイスのメモリ上に、前記ビデオデータを記憶することと、
１つまたは複数のプロセッサによって、前記現在ブロックを再構築するために、前記メモリ中に記憶された前記ビデオデータを処理することと
をさらに備える、請求項１に記載の方法。
【請求項１０】
前記ワイヤレス通信デバイスがセルラー電話を備え、ここにおいて、前記受信機において前記ビデオデータを受信することが、セルラー通信規格に従って、前記ビデオデータを復調することを備える、請求項９に記載の方法。
【請求項１１】
ビデオデータを復号するためのデバイスであって、
ビデオデータのビットストリームを記憶するように構成されたメモリと、
１つまたは複数のプロセッサと
を備え、前記１つまたは複数のプロセッサが、
前記ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
ここにおいて、前記ラン関係シンタックス要素グループのセットを決定するために、前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、前記１つまたは複数のプロセッサが、
複数のエントロピーコーディングコンテキストから、基準に基づいて、前記それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択することと、ここにおいて、前記それぞれのエントロピーコーディングコンテキストの前記選択が、前記パレットインデックスシンタックス要素のいずれにも依存せず、前記基準が、前記それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの前記現在ブロック内の位置、または前記パレットのサイズのうちの一方または両方を備える、
前記選択されたエントロピーコーディングコンテキストに基づいて、前記それぞれのラン関係シンタックス要素グループのビンをエントロピー復号することと、
を行うように構成され、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築することと
を行うように構成される、デバイス。
【請求項１２】
前記パレットインデックスシンタックス要素のセットを決定するために、前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
同じパレットインデックスをもつ連続するロケーションの数に基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を行うように構成される、請求項１１に記載のデバイス。
【請求項１３】
前記パレットインデックスシンタックス要素のセットを決定するために、前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を行うように構成される、請求項１１に記載のデバイス。
【請求項１４】
前記パレットインデックスシンタックス要素のセットを決定するために、前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズと、同じパレットインデックスをもつ連続するロケーションの数とに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を行うように構成される、請求項１１に記載のデバイス。
【請求項１５】
前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのためのインデックス値が、インデックス予測子のリストを使用して予測可能であるかどうかを示す、フラグを受信することを行うように構成される、請求項１１に記載のデバイス。
【請求項１６】
前記１つまたは複数のプロセッサが、
前記現在ブロックのために使用される前記ラン関係シンタックス要素グループのセット中で示す最大ラン値を示すシンタックス要素を復号することと、
切捨て値として前記最大ラン値を使用して、ラン値を復号することと
を行うように構成される、請求項１１に記載のデバイス。
【請求項１７】
前記１つまたは複数のプロセッサが、
第１の最大パレットインデックス値を決定することと、
第２の最大パレットインデックス値を決定することと、ここにおいて、前記第２の最大パレットインデックス値が、ランがランしきい値以上であるときのための最大パレットインデックス値を備え、ここにおいて、前記第２の最大パレットインデックス値が、前記第１の最大パレットインデックス値未満である、
ラン値が前記ランしきい値以上であるとき、前記第２の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、インデックス値をコーディングすることと、
前記ラン値が前記ランしきい値未満であるとき、前記第１の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、前記インデックス値をコーディングすることと
を行うように構成される、請求項１１に記載のデバイス。
【請求項１８】
前記１つまたは複数のプロセッサが、
前記１つまたは複数のパレットエントリのための１つまたは複数のインデックス値を復号すること、前記１つまたは複数のインデックス値のうちの少なくとも１つのインデックス値が、前記パレットの第１の領域に属し、前記１つまたは複数のインデックス値のうちの少なくとも１つの他のインデックス値が、前記パレットの第２の領域に属し、ここにおいて、制限に従って、前記第２の領域のインデックス値が連続的な走査順序においてコーディングされ、前記制限が、前記インデックス値が前記連続的な走査順序において前記第２の領域中に現れるべきであることを示す
を行うように構成される、請求項１１に記載のデバイス。
【請求項１９】
前記デバイスが、ワイヤレス通信デバイスを備え、前記デバイスが、符号化ビデオデータを受信するように構成された受信機をさらに備える、請求項１１に記載のデバイス。
【請求項２０】
前記ワイヤレス通信デバイスが、電話ハンドセットを備え、ここにおいて、前記受信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを備える信号を復調するように構成される、請求項１９に記載のデバイス。
【請求項２１】
ビデオデータを復号するための装置であって、
ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定するための手段と、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定するための手段と、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
ここにおいて、前記ラン関係シンタックス要素グループのセットを決定するための前記手段が、前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、
複数のエントロピーコーディングコンテキストから、基準に基づいて、前記それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択するための手段と、ここにおいて、前記それぞれのエントロピーコーディングコンテキストの前記選択が、前記パレットインデックスシンタックス要素のいずれにも依存せず、前記基準が、前記それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの前記現在ブロック内の位置、または前記パレットのサイズのうちの一方または両方を備える、
前記選択されたエントロピーコーディングコンテキストに基づいて、前記それぞれのラン関係シンタックス要素グループのビンをエントロピー復号するための手段と、
を備え、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築するための手段と
を備える、装置。
【請求項２２】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
ここにおいて、前記ラン関係シンタックス要素グループのセットを決定するために、前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、前記命令は、前記１つまたは複数のプロセッサに、
複数のエントロピーコーディングコンテキストから、基準に基づいて、前記それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択することと、ここにおいて、前記それぞれのエントロピーコーディングコンテキストの前記選択が、前記パレットインデックスシンタックス要素のいずれにも依存せず、前記基準が、前記それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの前記現在ブロック内の位置、または前記パレットのサイズのうちの一方または両方を備える、
前記選択されたエントロピーコーディングコンテキストに基づいて、前記それぞれのラン関係シンタックス要素グループのビンをエントロピー復号することと、
を行わせ、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築することと
を行わせる、コンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０３２４
【補正方法】変更
【補正の内容】
【０３２４】
[0321]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号する方法であって、
ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築することと
を備える方法。
［Ｃ２］
前記ラン関係シンタックス要素グループのセットを決定することが、前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、
複数のエントロピーコーディングコンテキストから、前記それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択することと、ここにおいて、前記それぞれのエントロピーコーディングコンテキストの前記選択が、前記パレットインデックスシンタックス要素のいずれにも依存しない、
前記選択されたエントロピーコーディングコンテキストに基づいて、前記それぞれのラン関係シンタックス要素グループのビンをエントロピー復号することと
を備える、Ｃ１に記載の方法。
［Ｃ３］
前記エントロピーコーディングコンテキストを選択することが、
基準に基づいて、前記それぞれのラン関係シンタックス要素グループのための前記それぞれのエントロピーコーディングコンテキストを選択すること、ここにおいて、前記基準が、前記それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの前記現在ブロック内の位置、または前記パレットのサイズのうちの一方または両方を備える
を備える、Ｃ２に記載の方法。
［Ｃ４］
前記パレットインデックスシンタックス要素のセットを決定することが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
同じパレットインデックスをもつ連続するロケーションの数に基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を備える、Ｃ１に記載の方法。
［Ｃ５］
前記パレットインデックスシンタックス要素のセットを決定することが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を備える、Ｃ１に記載の方法。
［Ｃ６］
前記パレットインデックスシンタックス要素のセットを決定することが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズと、同じパレットインデックスをもつ連続するロケーションの数とに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を備える、Ｃ１に記載の方法。
［Ｃ７］
前記パレットインデックスシンタックス要素のセットのためのインデックス値が、インデックス予測子のリストを使用して予測可能であるか否かを示す、フラグを受信することをさらに備える、Ｃ１に記載の方法。
［Ｃ８］
前記現在ブロックのために使用される前記ラン関係シンタックス要素グループのセット中で示す最大ラン値を示すシンタックス要素を復号することと、
切捨て値として前記最大ラン値を使用して、ラン値を復号することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ９］
第１の最大パレットインデックス値を決定することと、
第２の最大パレットインデックス値を決定することと、ここにおいて、前記第２の最大パレットインデックス値が、ランがランしきい値以上であるときのための最大パレットインデックス値を備え、ここにおいて、前記第２の最大パレットインデックス値が、前記第１の最大パレットインデックス値未満である、
ラン値が前記ランしきい値以上であるとき、前記第２の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、インデックス値をコーディングすることと、
前記ラン値が前記ランしきい値未満であるとき、前記第１の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、前記インデックス値をコーディングすることと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１０］
前記１つまたは複数のパレットエントリのための１つまたは複数のインデックス値を復号すること、前記１つまたは複数のインデックス値のうちの少なくとも１つのインデックス値が、前記パレットの第１の領域に属し、前記１つまたは複数のインデックス値のうちの少なくとも１つの他のインデックス値が、前記パレットの第２の領域に属し、ここにおいて、制限に従って、前記第２の領域のインデックス値が連続的な走査順序においてコーディングされ、前記制限が、前記インデックス値が前記連続的な走査順序において前記第２の領域中に現れるべきであることを示す
をさらに備える、Ｃ１に記載の方法。
［Ｃ１１］
デバイスが、ワイヤレス通信デバイスを備え、前記デバイスが、符号化ビデオデータを受信するように構成された受信機をさらに備える、Ｃ１に記載のデバイス。
［Ｃ１２］
前記ワイヤレス通信デバイスが、電話ハンドセットを備え、ここにおいて、前記受信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを備える信号を復調するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１３］
ワイヤレス通信デバイスの受信機において、前記ビデオデータを受信することと、
前記ワイヤレス通信デバイスのメモリ上に、前記ビデオデータを記憶することと、
１つまたは複数のプロセッサによって、前記現在ブロックを再構築するために、前記メモリ中に記憶された前記ビデオデータを処理することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１４］
前記ワイヤレス通信デバイスがセルラー電話を備え、ここにおいて、前記受信機において前記ビデオデータを受信することが、セルラー通信規格に従って、前記ビデオデータを復調することを備える、Ｃ１３に記載の方法。
［Ｃ１５］
ビデオデータを復号するためのデバイスであって、
ビデオデータのビットストリームを記憶するように構成されたメモリと、
１つまたは複数のプロセッサと
を備え、前記１つまたは複数のプロセッサが、
前記ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築することと
を行うように構成される、デバイス。
［Ｃ１６］
前記ラン関係シンタックス要素グループのセットを決定するために、前記１つまたは複数のプロセッサが、前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、
複数のエントロピーコーディングコンテキストから、前記それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択することと、ここにおいて、前記それぞれのエントロピーコーディングコンテキストの前記選択が、前記パレットインデックスシンタックス要素のいずれにも依存しない、
前記選択されたエントロピーコーディングコンテキストに基づいて、前記それぞれのラン関係シンタックス要素グループのビンをエントロピー復号することと
を行うように構成される、Ｃ１５に記載のデバイス。
［Ｃ１７］
前記エントロピーコーディングコンテキストを選択するために、前記１つまたは複数のプロセッサが、
基準に基づいて、前記それぞれのラン関係シンタックス要素グループのための前記それぞれのエントロピーコーディングコンテキストを選択すること、ここにおいて、前記基準が、前記それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの前記現在ブロック内の位置、または前記パレットのサイズのうちの一方または両方を備える
を行うように構成される、Ｃ１６に記載のデバイス。
［Ｃ１８］
前記パレットインデックスシンタックス要素のセットを決定するために、前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
同じパレットインデックスをもつ連続するロケーションの数に基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を行うように構成される、Ｃ１５に記載のデバイス。
［Ｃ１９］
前記パレットインデックスシンタックス要素のセットを決定するために、前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を行うように構成される、Ｃ１５に記載のデバイス。
［Ｃ２０］
前記パレットインデックスシンタックス要素のセットを決定するために、前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素について、
前記ビットストリームから、前記パレットインデックスシンタックス要素のうちのそれぞれの１つに対応するデータを取得することと、
前記それぞれのパレットインデックスシンタックス要素の２値化バージョンを決定するために、前記それぞれのパレットインデックスシンタックス要素に対応する前記データをエントロピー復号することと、
パレットサイズと、同じパレットインデックスをもつ連続するロケーションの数とに基づいて、２値化方法を決定することと、
前記それぞれのパレットインデックスシンタックス要素の前記２値化バージョンを逆２値化するために、前記決定された２値化方法を使用して、前記それぞれのパレットインデックスシンタックス要素を決定することと
を行うように構成される、Ｃ１５に記載のデバイス。
［Ｃ２１］
前記１つまたは複数のプロセッサが、
前記パレットインデックスシンタックス要素のセットのためのインデックス値が、インデックス予測子のリストを使用して予測可能であるか否かを示す、フラグを受信することを行うように構成される、Ｃ１５に記載のデバイス。
［Ｃ２２］
前記１つまたは複数のプロセッサが、
前記現在ブロックのために使用される前記ラン関係シンタックス要素グループのセット中で示す最大ラン値を示すシンタックス要素を復号することと、
切捨て値として前記最大ラン値を使用して、ラン値を復号することと
を行うように構成される、Ｃ１５に記載のデバイス。
［Ｃ２３］
前記１つまたは複数のプロセッサが、
第１の最大パレットインデックス値を決定することと、
第２の最大パレットインデックス値を決定することと、ここにおいて、前記第２の最大パレットインデックス値が、ランがランしきい値以上であるときのための最大パレットインデックス値を備え、ここにおいて、前記第２の最大パレットインデックス値が、前記第１の最大パレットインデックス値未満である、
ラン値が前記ランしきい値以上であるとき、前記第２の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、インデックス値をコーディングすることと、
前記ラン値が前記ランしきい値未満であるとき、前記第１の最大パレットインデックス値に等しい切捨て値とともに切捨て２進コーディングを使用して、前記インデックス値をコーディングすることと
を行うように構成される、Ｃ１５に記載のデバイス。
［Ｃ２４］
前記１つまたは複数のプロセッサが、
前記１つまたは複数のパレットエントリのための１つまたは複数のインデックス値を復号すること、前記１つまたは複数のインデックス値のうちの少なくとも１つのインデックス値が、前記パレットの第１の領域に属し、前記１つまたは複数のインデックス値のうちの少なくとも１つの他のインデックス値が、前記パレットの第２の領域に属し、ここにおいて、制限に従って、前記第２の領域のインデックス値が連続的な走査順序においてコーディングされ、前記制限が、前記インデックス値が前記連続的な走査順序において前記第２の領域中に現れるべきであることを示す
を行うように構成される、Ｃ１５に記載のデバイス。
［Ｃ２５］
前記デバイスが、ワイヤレス通信デバイスを備え、前記デバイスが、符号化ビデオデータを受信するように構成された受信機をさらに備える、Ｃ１５に記載のデバイス。
［Ｃ２６］
前記ワイヤレス通信デバイスが、電話ハンドセットを備え、ここにおいて、前記受信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを備える信号を復調するように構成される、Ｃ２５に記載のデバイス。
［Ｃ２７］
ビデオデータを復号するための装置であって、
ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定するための手段と、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定するための手段と、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築するための手段と
を備える装置。
［Ｃ２８］
前記ラン関係シンタックス要素グループのセットを決定するための前記手段が、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、複数のエントロピーコーディングコンテキストから、前記それぞれのラン関係シンタックス要素グループのためのそれぞれのエントロピーコーディングコンテキストを選択するための手段と、ここにおいて、前記それぞれのエントロピーコーディングコンテキストの前記選択が、前記パレットインデックスシンタックス要素のいずれにも依存しない、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループについて、前記選択されたエントロピーコーディングコンテキストに基づいて、前記それぞれのラン関係シンタックス要素グループのビンをエントロピー復号するための手段と
を備える、Ｃ２７に記載の装置。
［Ｃ２９］
前記エントロピーコーディングコンテキストを選択するための前記手段が、
基準に基づいて、前記それぞれのラン関係シンタックス要素グループのための前記それぞれのエントロピーコーディングコンテキストを選択するための手段、ここにおいて、前記基準が、前記それぞれのラン関係シンタックス要素グループに対応するそれぞれのランの開始ピクセルの前記現在ブロック内の位置、または前記パレットのサイズのうちの一方または両方を備える
を備える、Ｃ２８に記載の装置。
［Ｃ３０］
１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
ビットストリーム中の第１のエントロピー符号化データに基づいて、前記ビデオデータの現在ピクチャの現在ブロックのためのラン関係シンタックス要素グループのセットを決定することと、
第２のエントロピー符号化データ前記ビットストリームに基づいて、前記現在ブロックのためのパレットインデックスシンタックス要素のセットを決定することと、前記第１のエントロピー符号化データが、前記第２のエントロピー符号化データの前に前記ビットストリーム中で発生し、ここにおいて、
前記ラン関係シンタックス要素グループのセットのうちの各それぞれのラン関係シンタックス要素グループが、等しいパレットモードタイプインジケータのそれぞれのランのそれぞれのタイプと、前記それぞれのランのそれぞれの長さとを示し、
前記パレットインデックスシンタックス要素のセットのうちの各それぞれのパレットインデックスシンタックス要素が、サンプル値のセットを備えるパレット中のエントリを示す、
前記パレット中の前記サンプル値に基づいて、前記現在ブロックを再構築することと
を行わせる命令を記憶する、コンピュータ可読記憶媒体。
【国際調査報告】
2018520562.tif 000021
2018520562.tif 000022
2018520562.tif 000023
2018520562.tif 000024
2018520562.tif 000025
2018520562.tif 000026
2018520562.tif 000027
2018520562.tif 000028
2018520562.tif 000029