(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、前記方法は、
前記ビデオデータの現在ブロックについて、３つの色値を有するエントリを含む単一のパレットテーブルを導出することと、ここにおいて、前記現在ブロックは、４：２：２または４：２：０サブサンプリングでルーマ成分およびクロマ成分を含む、
前記単一のパレットテーブルに基づいて前記現在ブロック中のピクセルが復号されるべきでないと決定することと、
前記単一のパレットテーブルに基づいて復号されるべきでない前記ビデオデータの前記現在ブロック中の前記ピクセルが、ルーマ成分およびクロマ成分を含むか、前記ルーマ成分を含み、前記クロマ成分のいずれをも含まないかを決定することと、
前記現在ブロック中の前記ピクセルが、前記ルーマ成分および前記クロマ成分を含むか、前記ルーマ成分を含み、前記クロマ成分のいずれをも含まないかの前記決定に基づいて、ビットストリームからパースすべき色値の数を決定することと、
前記ビットストリームからパースすべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルを復号することと
を備える、方法。
【請求項２】
前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定すること
をさらに備え、
ここにおいて、前記現在ブロック中の前記ピクセルが、前記ルーマ成分および前記クロマ成分を含むか、前記ルーマ成分を含み、前記クロマ成分のいずれをも含まないかを決定することは、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが、前記ルーマ成分および前記クロマ成分を含むか、前記ルーマ成分を含み、前記クロマ成分のいずれをも含まないかを決定することを備える、
請求項１に記載の方法。
【請求項３】
前記ピクセルが第１のピクセルを備え、前記方法が、
前記ビデオデータの前記現在ブロック中の第２のピクセルが、前記ルーマ成分および前記クロマ成分を含むか、前記ルーマ成分を含み、前記クロマ成分のいずれをも含まないかを決定することと、
前記現在ブロック中の前記第２のピクセルが、前記ルーマ成分および前記クロマ成分を含むか、前記ルーマ成分を含み、前記クロマ成分のいずれをも含まないかの前記決定に基づいて、前記単一のパレットテーブルから取り出すべき色値の数を決定することと、  取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記第２のピクセルをパレットモード復号することと
をさらに備える、請求項１に記載の方法。
【請求項４】
取り出すべき色値の前記数を決定することは、前記現在ブロック中の前記第２のピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記単一のパレットテーブルから取り出されるべきであると決定することを備え、ここにおいて、前記現在ブロック中の前記第２のピクセルをパレットモード復号することが、前記単一のパレットテーブルから前記３つの色値を取り出すことと、前記３つの色値の各々を前記第２のピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを備える、請求項３に記載の方法。
【請求項５】
取り出すべき色値の前記数を決定することは、前記現在ブロック中の前記第２のピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記単一のパレットテーブルのエントリ中の前記３つの色値のうちの単一の色値のみが前記単一のパレットテーブルから取り出されるべきであると決定することを備え、ここにおいて、前記現在ブロック中の前記第２のピクセルをパレットモード復号することが、前記単一のパレットテーブルから前記単一の色値を取り出すことと、前記単一の色値を前記第２のピクセルの前記ルーマ成分に割り当てることとを備える、請求項３に記載の方法。
【請求項６】
前記単一の色値が、前記３つの色値のうちの第１の識別された色値を備える、請求項５に記載の方法。
【請求項７】
前記ビットストリームからパースすべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記ビットストリームからパースされるべきであると決定することを備え、前記現在ブロック中の前記ピクセルを復号することは、前記ビットストリームから前記３つの色値を取り出すことと、前記３つの色値の各々を、前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを備える、請求項１に記載の方法。
【請求項８】
前記ビットストリームからパースすべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリームからパースされるべきであると決定することを備え、前記現在ブロック中の前記ピクセルを復号することは、前記ビットストリームから前記単一の色値を取り出すことと、前記単一の色値を、前記ピクセルの前記ルーマ成分に割り当てることとを備える、請求項１に記載の方法。
【請求項９】
前記単一のパレットテーブル中の１つのエントリを識別する単一のインデックスを受信すること
をさらに備え、
ここにおいて、取り出すべき色値の前記数を決定することは、前記現在ブロック中の前記第２のピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブル中の前記識別されたエントリから取り出すべき色値の前記数を決定することを備える、
請求項３に記載の方法。
【請求項１０】
実行されたとき、ビデオデータを復号するためのデバイスの１つまたは複数のプロセッサに、請求項１〜９のいずれか一項に記載の方法を行わせる、命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項１１】
ビデオデータを復号するためのデバイスであって、前記デバイスは、
前記ビデオデータの現在ブロックについて、３つの色値を有するエントリを含む単一のパレットテーブルを導出するための手段と、ここにおいて、前記現在ブロックは、４：２：２または４：２：０サブサンプリングでルーマ成分およびクロマ成分を含む、
前記単一のパレットテーブルに基づいて前記現在ブロック中のピクセルが復号されるべきでないと決定するための手段と、
前記単一のパレットテーブルに基づいて復号されるべきでない前記ビデオデータの前記現在ブロック中の前記ピクセルが、ルーマ成分およびクロマ成分を含むか、前記ルーマ成分を含み、前記クロマ成分のいずれをも含まないかを決定するための手段と、
前記現在ブロック中の前記ピクセルが、前記ルーマ成分および前記クロマ成分を含むか、前記ルーマ成分を含み、前記クロマ成分のいずれをも含まないかの前記決定に基づいて、ビットストリームからパースすべき色値の数を決定するための手段と、
前記ビットストリームからパースすべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルを復号するための手段と
を備える、デバイス。
【請求項１２】
前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定するための手段
をさらに備え、
ここにおいて、前記現在ブロック中の前記ピクセルが、前記ルーマ成分および前記クロマ成分を含むか、前記ルーマ成分を含み、前記クロマ成分のいずれをも含まないかを決定するための前記手段は、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが、前記ルーマ成分および前記クロマ成分を含むか、前記ルーマ成分を含み、前記クロマ成分のいずれをも含まないかを決定するための手段を備える、
請求項１１に記載のデバイス。
【請求項１３】
パースすべき色値の前記数を決定するための前記手段は、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記ビットストリームからパースされるべきであると決定するための手段を備え、ここにおいて、前記現在ブロック中の前記ピクセルを復号するための前記手段は、前記ビットストリームから前記３つの色値を取り出すための手段と、前記３つの色値の各々を、前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てるための手段とを備える、請求項１１に記載のデバイス。
【請求項１４】
前記ビットストリームからパースすべき色値の前記数を決定するための前記手段は、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリームからパースされるべきであると決定するための手段を備え、ここにおいて、前記現在ブロック中の前記ピクセルを復号するための前記手段は、前記ビットストリームから前記単一の色値を取り出すための手段と、前記単一の色値を、前記ピクセルの前記ルーマ成分に割り当てるための手段とを備える、請求項１１に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本出願は、その内容全体が参照により本明細書に組み込まれる、２０１４年１２月１９日に出願された米国仮出願第６２／０９４，７３７号の利益を主張する。
【０００２】
[0002]  本開示は、ビデオ符号化および復号（video encoding and decoding）に関する。
【背景技術】
【０００３】
[0003]  デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイス（device）に組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]  ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間（イントラピクチャ（intra-picture））予測および／または時間（インターピクチャ（inter-picture））予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（video slice）（すなわち、ビデオフレームまたはビデオフレームの一部分）がビデオブロックに区分され得る。ピクチャ（picture）のイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データはコード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差係数が生じ得、その残差係数は、次いで量子化され得る。
【発明の概要】
【０００５】
[0005]  本開示は、クロマ成分（chroma component）の解像度（resolution）がルーマ成分（luma component）の解像度よりも小さいパレットモードコーディング（palette-mode coding）のための例示的な技法について説明する。パレットテーブル（palette table）のエントリ（entry）は３つの色値（three color values）を含み、ルーマ成分および２つのクロマ成分の各々に対して１つを含む（include）。ブロックのピクセル（pixel）がルーマ成分および２つのクロマ成分を有する場合、すべての３つの色値がピクセルのパレットモードコーディングのために使用される。しかしながら、ブロックのピクセルがルーマ成分のみを有し、クロマ成分を有しない場合、単一の色値（single color value）（たとえば、３つの色値のうちの第１の色値）のみがピクセルのパレットモードコーディングのために使用される。
【０００６】
[0006]  一例では、本開示は、ビデオデータ（video data）を復号（decode）する方法について説明し、本方法は、ビデオデータの現在ブロック（current block）について、３つの色値を有するエントリを含む単一のパレットテーブル（single palette table）を導出（derive）することと、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、単一のパレットテーブルから取り出す（retrieve）べき色値の数を決定することと、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号する（palette-mode decode）こととを備える。
【０００７】
[0007]  一例では、本開示は、ビデオデータを復号するためのデバイスについて説明し、本デバイスは、ビデオデータの現在ブロックについて、３つの色値を有するエントリを含むパレットテーブルを記憶する（store）ように構成されたメモリユニット（memory unit）と、メモリユニットに記憶するために、ビデオデータの現在ブロックについてのパレットテーブルを導出し、現在ブロックについての他のいかなるパレットテーブルをも導出しないことと、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、パレットテーブルから取り出すべき色値の数を決定することと、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号することとを行うように構成されたビデオデコーダ（video decoder）とを備える。
【０００８】
[0008]  一例では、本開示は、実行されたとき、ビデオデータを復号するためのデバイスの１つまたは複数のプロセッサに、ビデオデータの現在ブロックについて、３つの色値を有するエントリを含む単一のパレットテーブルを導出することと、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、単一のパレットテーブルから取り出すべき色値の数を決定することと、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号することとを行わせる、命令（instruction）を記憶した非一時的コンピュータ可読記憶媒体（non-transitory computer-readable storage medium）について説明する。
【０００９】
[0009]  一例では、本開示は、ビデオデータを復号するためのデバイスについて説明し、本デバイスは、ビデオデータの現在ブロックについて、３つの色値を有するエントリを含む単一のパレットテーブルを導出するための手段と、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定するための手段と、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、単一のパレットテーブルから取り出すべき色値の数を決定するための手段と、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号するための手段とを備える。
【００１０】
[0010]  一例では、本開示は、ビデオデータを符号化する（encode）方法について説明し、本方法は、単一のパレットテーブルに基づいて、ビデオデータの現在ブロック中のピクセルが符号化されるべきでないと決定することと、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリーム（bitstream）中でシグナリングすべき色値の数を決定することと、色値の決定された数に基づいて、現在ブロックを再構成する（reconstruct）ために使用される、ビットストリーム中のピクセルについての色値をシグナリングすることとを備える。
【００１１】
[0011]  一例では、本開示は、ビデオデータを符号化するためのデバイスについて説明し、本デバイスは、ビデオデータの現在ブロックについて、パレットテーブルを記憶するように構成されたメモリユニットと、パレットテーブルに基づいて、ビデオデータの現在ブロック中のピクセルが符号化されるべきでないと決定することと、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定することと、色値の決定された数に基づいて、現在ブロックを再構成するために使用される、ビットストリーム中のピクセルについての色値をシグナリングすること（signaling）とを行うように構成されたビデオエンコーダ（video encoder）とを備える。
【００１２】
[0012]  １つまたは複数の例の詳細が添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】[0013]  本開示で説明される技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。
【図２】[0014]  本開示で説明される技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図３】[0015]  本開示で説明される技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図４】[0016]  パレットベースビデオコーディング（palette-based video coding）のためのパレットエントリ（palette entry）を決定することの一例を示す概念図。
【図５】[0017]  パレット予測の一例を示す図。
【図６】[0018]  ピクセルのブロックについてのパレットへのインデックス（index）を決定することの一例を示す概念図。
【図７】[0019]  前にコーディングされた行からパレットインデックス（palette indices）をコピーすることの一例を示す概念図。
【図８】[0020]  位相整合事例（phase aligned case）の場合の４：２：０クロマサブサンプリングフォーマット（chroma subsampling format）の一例を示す概念図。
【図９】[0021]  位相不整合事例（phase misaligned case）の場合の４：２：０クロマサブサンプリングフォーマットの一例を示す概念図。
【図１０】[0022]  ビデオデータを復号することの一例を示すフローチャート。
【図１１】[0023]  ビデオデータを符号化することの一例を示すフローチャート。
【発明を実施するための形態】
【００１４】
[0024]  本開示は、ビデオコーディングおよび圧縮のための技法について説明する。特に、本開示は、ビデオデータのパレットベースビデオコーディングのための技法について説明する。パレットベースビデオコーディングでは、ビデオコーダ（video coder）（たとえば、ビデオエンコーダまたはビデオデコーダ）は、ピクセルのブロックについてのパレットテーブルを導出し、ここで、パレットテーブル中の各エントリは、パレットテーブルへのインデックスによって識別される色値を含む。パレットモードコーディング技法が４：４：４サンプリングフォーマット（sampling format）に適用される場合、ブロック中の各ピクセルについて、３つの色値、すなわち、１つのルーマ成分と２つのクロマ成分とがある。したがって、パレットテーブル中の各エントリは３つの色値を含む。
【００１５】
[0025]  しかしながら、コーディング効率は、非４：４：４サンプリングフォーマットを使用するパレットモードコーディング技法を用いて獲得され得る。非４：４：４サンプリングフォーマットでは、クロマ成分は、４：２：２または４：２：０サンプリングフォーマットなどにおいて、ルーマ成分に対してサブサンプリングされ得る。したがって、非４：４：４サンプリングフォーマットでは、ビデオデータのブロック中のいくつかのピクセルは、すべての３つの色値、すなわち、ルーマ成分と２つのクロマ成分とを含み、ビデオデータのブロック中のいくつかのピクセルは、単一の色値、すなわち、ルーマ成分のみを含む。
【００１６】
[0026]  本開示で説明される技法は、非４：４：４サンプリングフォーマットのためのパレットモードコーディングを使用するための方法について説明する。非４：４：４サンプリングフォーマットでは、ビデオコーダはパレットテーブルを導出し、パレットテーブル中の各エントリは３つの色値を含む。しかしながら、すべての３つの色値が取り出されるのか３つの色値のうちの単一の色値が取り出されるのかは、ビデオデータのブロック中のピクセルがすべての３つの色値を含むのか単一の色値を含むのかに基づく。ピクセルが単一の色のみを含む場合、単一の色値が取り出される。ピクセルがすべての３つの色を含む場合、すべての３つの色値が取り出される。
【００１７】
[0027]  いくつかの例では、パレットベースコーディング（palette-based coding）技法は、１つまたは複数のビデオコーディング規格とともに使用するために構成され得る。最近、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）の設計「ITU-T H.265, Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services- Coding of moving video, High efficiency video coding」、国際電気通信連合、２０１４年１０月が、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ：Motion Picture Experts Group）とのジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって確定された。ＨＥＶＣバージョン１と呼ばれる最新のＨＥＶＣ仕様は、http://www.itu.int/rec/T-REC-H.265-201304-Iから入手可能である。ＨＥＶＣに対する範囲拡張（Range Extension）、すなわちＨＥＶＣ−Ｒｅｘｔも、ＪＣＴ−ＶＣによって開発されている。ＲＥｘｔ  ＷＤ７と呼ばれる、範囲拡張の最近のワーキングドラフト（ＷＤ：Working Draft）が、
http://phenix.int-evry.fr/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1005-v4.zipから入手可能である。最近、ＪＣＴ−ＶＣは、ＨＥＶＣ−Ｒｅｘｔに基づく、スクリーンコンテンツコーディング（ＳＣＣ：screen content coding）の開発を開始した。スクリーンコンテンツコーディング（ＳＣＣ）についてのワーキングドラフトが、「High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 2」、ＪＣＴＶＣ−Ｓ１００５、Ｊｏｓｈｉらへの、ＩＴＵ−Ｔ  ＳＧ１６ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaborative Team on Video Coding）において与えられ、http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=9793.から入手可能である。
【００１８】
[0028]  本開示で説明される技法は、たとえば、ＨＥＶＣ拡張または他のスクリーンコンテンツ関連ビデオコーデックを用いた、スクリーンコンテンツコーディング（ＳＣＣ）に関係する。普及している国際ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４Ｖｉｓｕａｌ、および（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４、高効率ビデオコーディング（ＨＥＶＣ）などを含む。上記で説明されたように、ＳＣＣと称される、ＨＥＶＣに対するスクリーンコンテンツコーディング拡張が開発されている。同じく上述のように、パレットモードの説明を含むＳＣＣの最近のワーキングドラフト（ＷＤ）は、ＪＣＴＶＣ−Ｓ１００５「High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 2」ＩＴＵ−Ｔ  ＳＧ１６ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）第１８回会議、札幌、日本、２０１４年６月３０日〜７月９日において入手可能である。
【００１９】
[0029]  旧来のビデオコーディングでは、画像は、連続トーンであり空間的に滑らかである自然画像であると仮定される。これらの仮定に基づいて、ブロックベース変換、フィルタ処理などの様々なツールが開発されており、そのようなツールは、自然コンテンツビデオに対して良好な性能を示している。しかしながら、リモートデスクトップ、協調作業、およびワイヤレスディスプレイ（wireless display）のような適用例では、コンピュータ生成スクリーンコンテンツ（computer generated screen content）が、圧縮されるべき主要なコンテンツであり得る。このタイプのコンテンツは、離散トーン（discrete-tone）を有し、鋭いライン（sharp line）および高コントラストオブジェクト境界（high contrast object boundary）を特徴とする傾向がある。連続トーンおよび滑らかさの仮定はもはや適用されないことがあり、したがって、旧来のビデオコーディング技法は、コンテンツを圧縮するための非効率的な方法であり得る。
【００２０】
[0030]  本開示は、スクリーン生成コンテンツコーディングに特に好適であり得る、パレットベースコーディングについて説明する。たとえば、ビデオデータの特定のエリアが比較的少数の色を有すると仮定する。ビデオコーダ（ビデオエンコーダまたはビデオデコーダ）は、特定のエリア（たとえば、所与のブロック）のビデオデータを表すための色のテーブルとして、いわゆる「パレット（palette）」をコーディングし得る。各ピクセルは、ピクセル（たとえば、以下でより詳細に説明されるように、ルーマ（luma）およびクロマ（chroma）またはルーマだけ）の色を表すパレット中のエントリに関連付けられ得る。たとえば、ビデオコーダは、ピクセル値をパレット中の適切な値に関係付けるインデックスをコーディングし得る。本明細書で説明されるように、パレットエントリインデックスは、パレットインデックスまたは単にインデックスと呼ばれることがある。したがって、パレットモードでは、パレットは、ブロックサンプルのための予測子（predictor）としてまたは最終再構成済みブロックサンプル（final reconstructed block sample）として使用され得る色値を表すインデックスによって番号を付けられたエントリを含み得る。パレット中の各エントリは、使用されている特定の色フォーマットに応じて、１つの色成分（たとえば、ルーマ値）、２つの色成分（たとえば、２つのクロマ値）、または３つの色成分（たとえば、ＲＧＢ、ＹＵＶなど）を含んでいることがある。本開示で説明されるように、（パレットテーブルとも呼ばれる）パレットは、各エントリについて３つの色成分を含むが、１つの色成分が取り出されるのかすべての３つの色成分が取り出されるのかは、ピクセルがルーマ成分のみを含むのかルーマ成分とクロマ成分との組合せを含むのかに基づく。
【００２１】
[0031]  ＨＥＶＣフレームワークに関して、一例として、パレットベースコーディング技法は、コーディングユニット（ＣＵ：coding unit）モードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、ＨＥＶＣのフレームワーク中でＰＵモードとして使用されるように構成され得る。したがって、ＣＵモードのコンテキストにおいて説明される以下の開示されるプロセスのすべてが、追加または代替として、ＰＵに適用され得る。しかしながら、これらのＨＥＶＣベースの例は、本明細書で説明されるパレットベースコーディング技法が、独立して、あるいは他の既存のまたはまだ開発されていないシステム／規格の一部として動作するように適用され得るので、そのような技法の制限または限定であると見なされるべきではない。これらの場合、パレットコーディングのためのユニットは、正方形ブロック、矩形ブロック、さらには非矩形形状の領域であり得る。
【００２２】
[0032]  パレットコーディングモード（palette coding mode）を使用して、ビデオエンコーダは、ブロックについてのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリの位置を特定することと、ピクセル値をパレットに関係付けるピクセルについてのインデックス値を用いてパレットを符号化することとによって、ビデオデータのブロックを符号化し得る。ビデオデコーダは、符号化ビットストリームから、ブロックについてのパレット、ならびにブロックのピクセルについてのインデックス値を取得し得る。ビデオデコーダは、ブロックのピクセル値を再構成するために、ピクセルのインデックス値をパレットのエントリに関係付け得る。たとえば、パレットインデックスをもつパレットのエントリは、ブロックの１つまたは複数のピクセル成分の値または「サンプル（sample）」を決定するために使用され得る。上記の例は、パレットベースコーディングの概略的な説明を与えることを意図されている。
【００２３】
[0033]  本開示は、ビデオエンコーダがビデオデコーダに情報を与える方法を示すために「信号（signal）」または「シグナリング（signaling）」という用語を使用する。シンタックス要素（またはデータの他のタイプ）のシグナリングは、ビデオデコーダがビデオエンコーダからのシグナリングされた情報を直ちに受信することを意味すると解釈されるべきではなく、しかしながら、それは可能であり得る。いくつかの例では、ビデオエンコーダは、ストレージデバイスに記憶される情報（たとえば、シンタックス要素または他のビデオデータ）をシグナリングし得る。次いで、ビデオデコーダは、後でストレージデバイスから情報を取り出し得る。
【００２４】
[0034]  パレットモードでは、ＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥまたはＥＳＣＡＰＥモードのみが可能であるときの、おそらくブロックの最初の行を除いて、ブロックのあらゆるピクセルが、ＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥ、ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥ、またはＥＳＣＡＰＥモードを用いてコーディングされ得る。シンタックス要素ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇは、ＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥが使用されるのかＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥが使用されるのかを示す。コピーインデックスモード（すなわち、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇがＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥに等しい）では、パレットインデックス（すなわち、シンタックス要素ｐａｌｅｔｔｅ＿ｉｎｄｅｘ）がシグナリングされ、その後にパレットラン値ｐａｌｅｔｔｅ＿ｒｕｎが続く。ラン値（run value）は、同じパレットインデックスを有する後続のピクセルの数を示す。ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥでは、現在ピクセルのすぐ上に位置するピクセルからパレットインデックスがコピーされる後続のピクセルの数を示すラン値のみがシグナリングされ得る。ＥＳＣＡＰＥモードは、このモードを示すために特定のパレットインデックスが使用される、ＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥまたはＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥ内でコーディングされる。現在のパレットバージョンでは、このインデックスはパレットサイズに等しい。ＥＳＣＡＰＥモードでは、ピクセルトリプレット（pixel triplet）（ＹＣｂＣｒまたはＲＧＢ）またはそれの量子化バージョンが、ｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌとしてシグナリングされる。
【００２５】
[0035]  エスケープピクセル（escape pixel）の使用を示すために、フラグｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ＿ｐｒｅｓｅｎｔ＿ｆｌａｇがブロックごとにシグナリングされる。１に等しいこのフラグは、パレットコーディングされたブロック中に少なくとも１つのエスケープピクセルがあることを示し、他の場合、フラグは０に等しい。
【００２６】
[0036]  パレットサイズは、０〜ｍａｘ＿ｐａｌｅｔｔｅ＿ｓｉｚｅの範囲内にあるように制限される。最大サイズがシグナリングされ得る。
【００２７】
[0037]  パレットモードを用いてコーディングされたブロックでは、パレットが、前にパレットコーディングされたブロックのパレットエントリから予測され得、新しいエントリとして明示的にシグナリングされ得るか、または前にコーディングされたブロックのパレットが完全に再利用され得る。後者の場合はパレット共有（palette sharing）と呼ばれ、前のブロックのパレット全体が変更なしにそのままで再利用されることを示すために、フラグｐａｌｅｔｔｅ＿ｓｈａｒｅ＿ｆｌａｇがシグナリングされる。
【００２８】
[0038]  パレットモードでは、ブロック中のピクセル走査は、２つのタイプ、すなわち、垂直トラバース走査または（ヘビ状の）水平トラバース走査であり得る。ブロック中で使用される走査パターンは、ブロックユニットごとにシグナリングされるフラグｐａｌｅｔｔｅ＿ｔｒａｎｓｐｏｓｅ＿ｆｌａｇに従って導出される。
【００２９】
[0039]  上記で説明されたコーディングモードでは、値の「ラン（run）」は、概して、一緒にコーディングされるピクセル値のストリング（string）を指すことがある。ランは、概して、ラン中に含まれる要素の数に関して説明され得、それは、グループ（たとえば、ランレングス（run length））として一緒に処理されるか、またはコーディングされる。いくつかの例では、ランは同様の値のピクセル値を含み得る。たとえば、インデックスモードでのランは、値のストリングが（上述のように）同じインデックス値を有することを示し得る。説明の目的のための一例では、所与の走査順序での２つの連続するピクセルが異なる値を有する場合、ランレングスは０に等しい。所与の走査順序での２つの連続するピクセルが同じ値を有するが、その走査順序での３番目のピクセルが異なる値を有する場合、ランレングスは１に等しく、以下同様である。
【００３０】
[0040]  図１は、本開示の技法を利用し得る例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用される「ビデオコーダ（video coder）」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング（video coding）」または「コーディング（coding）」という用語は、ビデオ符号化（video encoding）またはビデオ復号（video decoding）を総称的に指すことがある。ビデオコーディングシステム１０のビデオエンコーダ２０およびビデオデコーダ３０は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの例を表す。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、クロマ成分がルーマ成分に対してサブサンプリングされるブロックのピクセルをコーディングするように構成され得る。
【００３１】
[0041]  図１に示されているように、ビデオコーディングシステム１０は、ソースデバイス（source device）１２と宛先デバイス（destination device）１４とを含む。ソースデバイス１２は符号化ビデオデータ（encoded video data）を生成する。したがって、ソースデバイス１２は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス１４は、ソースデバイス１２によって生成された符号化ビデオデータを復号し得る。したがって、宛先デバイス１４は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス１２および宛先デバイス１４は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【００３２】
[0042]  ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲にわたるデバイスを備え得る。
【００３３】
[0043]  宛先デバイス１４は、チャネル１６を介してソースデバイス１２から符号化ビデオデータを受信し得る。チャネル１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な１つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル１６は、ソースデバイス１２が符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にする１つまたは複数の通信媒体を備え得る。この例では、ソースデバイス１２は、ワイヤレス通信プロトコル（wireless communication protocol）などの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス１４に送信し得る。１つまたは複数の通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、ワイヤレスおよび／またはワイヤード通信媒体を含み得る。１つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク（たとえば、インターネット）など、パケットベースネットワークの一部を形成し得る。１つまたは複数の通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にする、ルータ、スイッチ、基地局、または他の機器を含み得る。
【００３４】
[0044]  別の例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス１４は、たとえば、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオデータを記憶するための他の好適なデジタル記憶媒体など、様々なローカルにアクセスされるデータ記憶媒体を含み得る。
【００３５】
[0045]  さらなる一例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶するファイルサーバまたは別の中間記憶デバイスを含み得る。この例では、宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間記憶デバイスに記憶された、符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス１４に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバとしては、（たとえば、ウェブサイトのための）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、およびローカルディスクドライブがある。
【００３６】
[0046]  宛先デバイス１４は、インターネット接続などの標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。例示的なタイプのデータ接続としては、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せがあり得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００３７】
[0047]  本開示の技法はワイヤレス適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の適用例など、様々なマルチメディア適用例をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００３８】
[0048]  図１に示されているビデオコーディングシステム１０は一例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスがデータを符号化し、メモリに記憶し得、および／またはビデオ復号デバイスがメモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信しないが、単にメモリにデータを符号化し、および／またはメモリからデータを取り出し、復号するデバイスによって実行される。
【００３９】
[0049]  図１の例では、ソースデバイス１２は、ビデオソース（video source）１８と、ビデオエンコーダ２０と、出力インターフェース（output interface）２２とを含む。いくつかの例では、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ビデオソース１８は、ビデオキャプチャデバイス（たとえば、ビデオカメラ）、以前にキャプチャ（capture）されたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および／またはビデオデータを生成するためのコンピュータグラフィクスシステム、あるいはビデオデータのそのようなソースの組合せを含み得る。
【００４０】
[0050]  ビデオエンコーダ２０は、ビデオソース１８からのビデオデータを符号化し得る。いくつかの例では、ソースデバイス１２は、出力インターフェース２２を介して宛先デバイス１４に符号化ビデオデータを直接送信する。他の例では、符号化ビデオデータは、復号および／または再生のための宛先デバイス１４による後のアクセスのために記憶媒体またはファイルサーバ上にも記憶され得る。
【００４１】
[0051]  図１の例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。いくつかの例では、入力インターフェース２８は受信機および／またはモデムを含む。入力インターフェース２８は、チャネル１６を介して符号化ビデオデータ（encoded video data）を受信し得る。ディスプレイデバイス３２は、宛先デバイス１４と一体化され得るかまたはその外部にあり得る。概して、ディスプレイデバイス３２は復号ビデオデータ（decoded video data）を表示する（display）。ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスを備え得る。
【００４２】
[0052]  ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ハードウェアなど、様々な好適な回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、好適な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し得、本開示の技法を実行するために１つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。（ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せなどを含む）上記のいずれも、１つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００４３】
[0053]  本開示は、概して、ビデオエンコーダ２０が、ある情報をビデオデコーダ３０などの別のデバイスに「シグナリングすること」または「送信すること」に言及することがある。「シグナリングすること」または「送信すること」という用語は、概して、圧縮されたビデオデータを復号するために使用されるシンタックス要素および／または他のデータの通信を指すことがある。そのような通信は、リアルタイムまたはほぼリアルタイムに行われ得る。代替的に、そのような通信は、符号化時に符号化ビットストリーム中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われることがあるなど、ある時間期間にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。
【００４４】
[0054]  いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、上記で述べられ、ＨＥＶＣバージョン１に記載されているＨＥＶＣ規格など、ビデオ圧縮規格に従って動作する。ベースＨＥＶＣ規格（ＨＥＶＣバージョン１）に加えて、ＨＥＶＣのためのスケーラブルビデオコーディング拡張、マルチビュービデオコーディング拡張、および３Ｄコーディング拡張を作成するための作業が進行中である。さらに、（たとえば、本開示で説明されるような）パレットベースコーディングモードが、ＨＥＶＣ規格の拡張（たとえば、ＨＥＶＣに対するスクリーンコンテンツコーディング拡張）のために与えられ得る。いくつかの例では、パレットベースコーディングのための本開示で説明される技法が、ＩＴＵ−Ｔ−Ｈ．２６４／ＡＶＣ規格または将来の規格など、他のビデオコーディング規格に従って動作に構成されたエンコーダおよびデコーダに適用され得る。したがって、ＨＥＶＣコーデックにおけるコーディングユニット（ＣＵ：coding unit）または予測ユニット（ＰＵ：prediction unit）のコーディングのためのパレットベースコーディングモード（palette-based coding mode）の適用が、例として説明される。
【００４５】
[0055]  ＨＥＶＣおよび他のビデオコーディング規格では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム（frame）」と呼ばれることもある。ピクチャは、ＳL、ＳCbおよびＳCrと示される、３つのそれぞれのサンプルアレイを表す３つの成分を含み得る。ＳLはルーマサンプル（luma sample）の２次元アレイ（すなわち、ブロック（block））である。ＳCbはＣｂクロミナンスサンプル（chrominance sample）の２次元アレイである。ＳCrはＣｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルは、本明細書では「クロマ（chroma）」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００４６】
[0056]  ピクチャの符号化表現を生成するために、ビデオエンコーダ２０はコーディングツリーユニット（ＣＴＵ：coding tree unit）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロック（coding tree block）、クロマサンプルの２つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造（syntax structure）であり得る。コーディングツリーブロックはサンプルのＮ×Ｎブロックであり得る。ＣＴＵは「ツリーブロック（tree block）」または「最大コーディングユニット」（ＬＣＵ：largest coding unit）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスタ走査において連続的に順序付けられた整数個のＣＴＵを含み得る。
【００４７】
[0057]  コード化ＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロック（coding block）に分割するためにＣＴＵのコーディングツリーブロックに対して４分木区分（quad-tree partitioning）を再帰的に実行し得、したがって「コーディングツリーユニット（coding tree unit）」という名称がある。コーディングブロックはサンプルのＮ×Ｎブロックである。ＣＵは、ルーマサンプルアレイ、ＣｂサンプルアレイおよびＣｒサンプルアレイ、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を有するピクチャのルーマサンプルの１つのコーディングブロックおよびクロマサンプルの２つの対応するコーディングブロックであり得る。ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックであり得る。ＣＵの予測ユニット（ＰＵ）は、ピクチャのルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とであり得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロックとＣｂ予測ブロックとＣｒ予測ブロックとのための予測ルーマブロックと予測Ｃｂブロックと予測Ｃｒブロックとを生成し得る。
【００４８】
[0058]  ビデオエンコーダ２０は、ＰＵのための予測ブロックを生成（たとえば、決定）するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号サンプルに基づいてＰＵの予測ブロックを生成し得る。
【００４９】
[0059]  ビデオエンコーダ２０が、ＰＵの予測ブロックを生成（たとえば、決定）するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０は、ＰＵの予測ブロックを生成するために単予測または双予測を使用し得る。ビデオエンコーダ２０が、ＰＵのための予測ブロックを生成するために単予測を使用するとき、ＰＵは単一の動きベクトル（ＭＶ：motion vector）を有し得る。ビデオエンコーダ２０が、ＰＵのための予測ブロックを生成するために双予測を使用するとき、ＰＵは２つのＭＶを有し得る。
【００５０】
[0060]  ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵのための予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成した後、ビデオエンコーダ２０は、ＣＵのためのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つルーマサンプルインとＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ２０はＣＵのためのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルとＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０は、ＣＵのためのＣｒ残差ブロックをも生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルとＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００５１】
[0061]  さらに、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックとＣｂ残差ブロックとＣｒ残差ブロックとを１つまたは複数のルーマ変換ブロックとＣｂ変換ブロックとＣｒ変換ブロックとに分解するために４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。ＣＵの変換ユニット（ＴＵ：transform unit）は、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とであり得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックに関連付けられ得る。ＴＵに関連付けられたルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックはＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックはＣＵのＣｒ残差ブロックのサブブロックであり得る。
【００５２】
[0062]  ビデオエンコーダ２０は、ＴＵのためのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは変換係数の２次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ２０は、ＴＵのためのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのためのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００５３】
[0063]  係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後に、ビデオエンコーダ２０は、係数ブロックを量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。ビデオエンコーダ２０が係数ブロックを量子化した後に、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）を実行し得る。ビデオエンコーダ２０は、エントロピー符号化シンタックス要素をビットストリーム中に出力し得る。
【００５４】
[0064]  ビデオエンコーダ２０は、エントロピー符号化シンタックス要素を含むビットストリームを出力し得る。ビットストリームは、コード化ピクチャと関連データとの表現を形成するビットのシーケンスを含み得る。ビットストリームは、ネットワークアブストラクションレイヤ（ＮＡＬ：network abstraction layer）ユニットのシーケンスを備え得る。ＮＡＬユニットの各々はＮＡＬユニットヘッダを含み、ローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）をカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰは０ビットを含む。
【００５５】
[0065]  異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。たとえば、第１のタイプのＮＡＬユニットはピクチャパラメータセット（ＰＰＳ：picture parameter set）のためのＲＢＳＰをカプセル化し得、第２のタイプのＮＡＬユニットはコード化スライスのためのＲＢＳＰをカプセル化し得、第３のタイプのＮＡＬユニットはＳＥＩのためのＲＢＳＰをカプセル化し得、以下同様である。（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰとは対照的に）ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれることがある。
【００５６】
[0066]  ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。さらに、ビデオデコーダ３０は、ビットストリームからシンタックス要素を復号するために、ビットストリームをパース（parse）し得る。ビデオデコーダ３０は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ２０によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックを決定するためにＰＵのＭＶを使用し得る。さらに、ビデオデコーダ３０は、現在ＣＵのＴＵに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在ＣＵのＴＵに関連付けられた変換ブロックを再構成するために変換係数ブロックに対して逆変換を実行し得る。ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックのサンプルを現在ＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在ＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵのためのコーディングブロックを再構成することによって、ビデオデコーダ３０はピクチャを再構成し得る。
【００５７】
[0067]  いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットベースコーディングを実行するように構成され得る。たとえば、パレットベースコーディングでは、上記で説明されたイントラ予測またはインター予測コーディング技法を実行することではなく、またはそれに加えて、ビデオエンコーダ２０およびビデオデコーダ３０は、特定のエリア（たとえば、所与のブロック）のビデオデータを表すための色のテーブルとして、いわゆるパレットをコーディングし得る。各ピクセルは、ピクセルの色を表すパレット中のエントリに関連付けられ得る。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、ピクセル値をパレット中の適切なエントリに関係付けるインデックスをコーディングし得る。
【００５８】
[0068]  上記の例では、ビデオエンコーダ２０は、ブロックのためのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリの位置を特定することと、ピクセル値をパレットに関係付けるピクセルについてのインデックス値を用いてパレットを符号化することとによって、ビデオデータのブロックを符号化し得る。ビデオデコーダ３０は、符号化ビットストリームから、ブロックのためのパレット、ならびにブロックのピクセルについてのインデックス値を取得し得る。ビデオデコーダ３０は、ブロックのピクセル値を再構成するために、ピクセルのインデックス値をパレットのエントリに関係付け得る。
【００５９】
[0069]  いくつかの例では、ビデオエンコーダ２０は、同じピクセル値を有する所与の走査順序での連続するピクセルの数を示す１つまたは複数のシンタックス要素を符号化し得る。同様の値のピクセル値のストリングは、本明細書では「ラン（run）」と呼ばれることがある。説明の目的のための一例では、所与の走査順序での２つの連続するピクセルが異なる値を有する場合、ランは０に等しい。所与の走査順序での２つの連続するピクセルが同じ値を有するが、その走査順序での３番目のピクセルが異なる値を有する場合、ランは１に等しい。ビデオデコーダ３０は、符号化ビットストリームからランを示すシンタックス要素を取得し、同じインデックス値を有する連続するピクセルロケーションの数を決定するためにそのデータを使用し得る。
【００６０】
[0070]  いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、マップの１つまたは複数のエントリのためのラインコピー（line copying）を実行し得る。たとえば、ビデオエンコーダ２０は、マップ中の特定のエントリのためのピクセル値が、特定のエントリの上のライン中のエントリに等しいことを示し得る。ビデオエンコーダ２０はまた、特定のエントリの上のライン中のエントリに等しい走査順序でのインデックスの数を、ランとして示し得る。この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、指定された隣接ラインから、および現在コーディングされているインデックスマップのラインのためのエントリの指定された数から、インデックス値をコピーし得る。
【００６１】
[0071]  本開示の態様によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、図４〜図７に関して以下で説明されるか、または本開示で他の方法で説明されるパレットコーディングのための技法の任意の組合せを実行し得る。言い換えれば、図４〜図７に関して説明される例は、本開示で説明される技法を限定する、または場合によっては、その技法によって必要とされるものと見なされるべきではない。
【００６２】
[0072]  本開示は、パレットモードで現在ブロックをコーディングするための例示的な技法について説明する。本開示では、「現在ブロック（current block）」という用語は、通常、ルーマ成分を有するルーマブロック（luma block）とそれぞれのクロマ成分を有する２つのクロマブロック（chroma block）とを指すために使用される。本開示で使用される、「現在ブロック」の一例は、上記の定義されたコーディングユニット（ＣＵ）である。ＨＥＶＣ規格は、３つのサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロック、クロマサンプルの２つの対応するコーディングブロック、あるいは、モノクロームピクチャ（monochrome picture）またはサンプルをコーディングするために使用される３つの別個の色平面とシンタックス構造とを使用してコーディングされるピクチャのサンプルのコーディングブロックのようにＣＵを定義する。
【００６３】
[0073]  上記で説明されたように、スクリーンコンテンツコーディング（ＳＣＣ）のための現在のワーキングドラフトがある。現在のＳＣＣワーキングドラフト、ＪＣＴＶＣ−Ｓ１００５では、パレットモードは、４：４：４クロマサブサンプリングフォーマットのみのために定義され、ここで、ルーマブロックサイズとクロマブロックサイズとは等しい。コーディング効率を改善するために、４：２：０または４：２：２など、非４：４：４クロマサブサンプリングフォーマットのためのパレットモードを設計することが望ましいことがあり、ここで、クロマサンプルブロックは概してルーマサンプルブロックよりも小さい。たとえば、４：２：０クロマサブサンプリングフォーマットおよび８×８ブロックの場合、ルーマサンプルブロックサイズは８×８であり、対応するクロマサンプルブロックサイズは４×４である（たとえば、垂直クロマと水平クロマの両方が１／２にされる）。４：２：２クロマサブサンプリングフォーマットおよび８×８の場合、ルーマサンプルブロックサイズは８×８であり、対応するクロマサンプルブロックサイズは４×８である（たとえば、水平クロマが１／２にされる）。一例として、パレットモードコーディングされる現在ブロックがサイズ８×８のＣＵであると仮定する。この８×８サイズのＣＵの場合、１つの８×８サイズのルーマブロックと、４：２：２サブサンプリングフォーマットのための２つの４×８クロマブロックまたは４：２：０サブサンプリングのための２つの４×４クロマブロックとがある。
【００６４】
[0074]  本開示は、非４：４：４クロマサブサンプリングフォーマットのためのパレットモードを設計するためのいくつかの技法について説明する。これらの技法はいくつかの部分に分割され得、ここで、各部分は、別々に、または他のものとの任意の組合せで適用され得る。各部分は、現在のパレットモード設計に関して行われ得る変更を表すことができ、本開示で述べられないパレットモードの態様は、限定はしないが、４：４：４パレットモードの場合と同じであると仮定され得る。
【００６５】
[0075]  パレットテーブル導出の場合、４：４：４パレットモードでは、各パレットエントリは、色トリプレット（color triplet）、たとえばＹ、Ｃb、およびＣrからなる。ブロック中のあらゆる非エスケープピクセルについて、パレットテーブル中のエントリを指すパレットインデックスがそれに割り当てられる。対応する色トリプレットが再構成のために使用され得る。しかしながら、非４：４：４の場合には、ルーマサンプル（ルーマ成分）の数がクロマサンプル（クロマ成分）の数よりも大きくなり得、ブロック中のあらゆるピクセルが３つの色成分を有するとは限らない。
【００６６】
[0076]  いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、パレットテーブルを導出し得る。本開示で使用される「パレットテーブルを導出する（derive a palette table）」という句またはそれの相当語句は、ビデオエンコーダ２０またはビデオデコーダ３０がパレットテーブルについての値を決定する方法を指す。たとえば、ビデオエンコーダ２０の観点から、ビデオエンコーダ２０は、符号化されているブロックの色値に基づいて、パレットテーブルについての値を決定し得る。ビデオデコーダ３０の観点から、ビデオデコーダ３０は、受信されたビットストリーム中に含まれている情報に基づいて、パレットテーブルについての値を決定し得る。これらの例の両方では、ビデオエンコーダ２０はパレットテーブルを導出するものと見なされ得、ビデオデコーダ３０はパレットテーブルを導出するものと見なされ得る。パレットテーブルの値を決定するための他の方法が可能であり、「パレットテーブルを導出する」という句またはそれの相当語句によって包含されると見なされる。
【００６７】
[0077]  この同じパレットテーブルは、ルーマサンプルおよびクロマサンプルについての色値を含む。本開示では、色値と色成分という用語は互換的に使用される。パレットテーブル中の各エントリは、３つの色成分（たとえば、３つの色値）、すなわち、ルーマサンプルのための第１の色成分と、第１のクロマ成分のための第２の色成分と、第２のクロマ成分のための第３の色成分とを含む。
【００６８】
[0078]  ビデオデコーダ３０が、パレットモードでコーディングされた現在ブロックを復号（たとえば、パレットテーブルに基づいて現在ブロックを再構成）すべきであるとき、ビデオデコーダ３０は、現在ブロックを再構成するためにこの単一のパレットテーブルを利用し得る。たとえば、ビデオデコーダ３０は、ルーマブロックのルーマ成分およびそれぞれのクロマブロックのための２つのクロマ成分についての色値（たとえば、色成分）を含むこのパレットテーブルを使用してこの現在ブロックのルーマブロックおよび２つのクロマブロックを再構成するために、この単一のパレットテーブルを利用し、他のパレットテーブルを利用しないことがある。
【００６９】
[0079]  Ｎ×ＮサイズのＣＵ（たとえば、Ｎ×Ｎサイズの現在ブロック）の場合、ルーマ成分を有する対応するＮ×Ｎルーマブロックがある。したがって、ＣＵ中の各ピクセルについて１つの対応するルーマサンプルがある。しかしながら、サブサンプリングの場合、ＣＵ中の各ピクセルについて１つの対応するクロマサンプルがない。たとえば、４：２：２サブサンプリングの場合、対応するクロマブロックはＮ／２×Ｎクロマサンプルを有し、したがって、ＣＵ中の２つのピクセルごとに、それぞれのクロマブロック中に１つの対応するサンプルがある。４：２：０サブサンプリングの場合、対応するクロマブロックはＮ／２×Ｎ／２クロマサンプルを有し、したがって、ＣＵ中の４つのピクセルごとに、それぞれのクロマブロック中に１つの対応するサンプルがある。
【００７０】
[0080]  いくつかの例では、現在ブロック（たとえば、ＣＵ）の各ピクセルについて、ビデオデコーダ３０は、現在ブロックのピクセルが、対応するルーマ成分およびクロマ成分を含むのか対応するルーマ成分だけを含むのかを決定し得る。現在ブロックのピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビデオデコーダ３０は、パレットテーブルから取り出すべき色値の数を決定し得る。たとえば、現在ブロックのピクセルがルーマ成分およびクロマ成分を含むとビデオデコーダ３０が決定した場合、ビデオデコーダ３０は、パレットテーブルからすべての３つの色値を取り出し得る。しかしながら、現在ブロックのピクセルがルーマ成分を含み、クロマ成分を含まないとビデオデコーダ３０が決定した場合、ビデオデコーダ３０は、パレットテーブルから３つの色値のうちの１つ（たとえば、３つの色値のうちの第１の色値）を取り出し得、すべての３つを取り出すとは限らない。
【００７１】
[0081]  ビデオデコーダ３０は、取り出すべき色値の数の決定に基づいて、現在ブロック中のピクセルをパレットモード復号し得る。たとえば、ビデオデコーダ３０は、パレットテーブル中への１つのエントリを識別する単一のインデックスを受信し得る。３つの色値が取り出されるべきであるとビデオデコーダ３０が決定した場合、ビデオデコーダ３０は、パレットテーブル中への識別されたエントリ（identified entry）からすべての３つの色値を取り出し、各それぞれの色値を、ルーマブロック中の対応するサンプルとそれぞれのクロマブロック中の対応するサンプルとに割り当て得る。１つの色値が取り出されるべきであるとビデオデコーダ３０が決定した場合、ビデオデコーダ３０は、パレットテーブル中への識別されたエントリから３つの色値のうちの１つの色値を取り出し、その色値を、ルーマブロック中の対応するサンプルに割り当て得る。
【００７２】
[0082]  上記の例によれば、サブサンプリングフォーマット（subsampling format）の場合、ビデオデコーダ３０は、非サブサンプリングフォーマット（non-subsampling format）と比較してビデオ復号プロセスへの大幅な変更を必要とすることなしに、現在ブロックのピクセルを再構成する（たとえば、ＣＵに対応するそれぞれのルーマブロックおよびクロマブロックのルーマサンプルおよびクロマサンプルを再構成する）ことが可能であり得る。たとえば、４：４：４サンプリングフォーマットの場合、現在ブロック（たとえば、ＣＵ）中のピクセルごとに、ルーマブロックおよび２つのクロマブロック中に対応するサンプルがある。そのような４：４：４サンプリングフォーマットの場合、ビデオエンコーダ２０は、単一のパレットテーブル中の単一のインデックスをシグナリングし、ビデオデコーダ３０は、インデックスによって識別されたパレットテーブル中のエントリに基づいてすべての３つの色値を取り出し、ルーマサンプルおよびクロマサンプルの各々をそれぞれの色値に割り当てる（assign）。
【００７３】
[0083]  サブサンプリングフォーマットの場合、ビデオデコーダ３０は、非サブサンプリングフォーマットと同様に、単一のパレットテーブルを導出し、このパレットテーブル中への信号エントリを受信し得る。しかしながら、ビデオデコーダ３０が取り出す色値の数は、現在ブロックのピクセルごとに異なり得る。このようにして、ビデオエンコーダ２０が、４：４：４サンプリングフォーマットのために、およびサブサンプリングフォーマットのためにシグナリングするビットストリームは、同じであるが、ビデオデコーダ３０は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかの決定に基づいて、異なる数の色値を選択的に取り出し得る。
【００７４】
[0084]  サブサンプリングフォーマットのためのビットストリームは、エスケープピクセルについて、パレットテーブル中のエントリに基づいてピクセルをパレットモードコーディングするとき、非サブサンプリングフォーマットに対して変化する必要がないことがあるが、サブサンプリングフォーマットのためのビットストリームは、非サブサンプリングフォーマットのためのビットストリームとは異なり得る。エスケープピクセルは、それについての色値が、導出されたパレットテーブル中にないピクセルである。エスケープピクセルについて、ビデオエンコーダ２０は、ルーマ成分およびクロマ成分についての（場合によっては量子化された（quantized））色値を明示的にシグナリングする。
【００７５】
[0085]  非サブサンプリングフォーマットの場合、エスケープピクセルについて、ビデオエンコーダ２０は、それぞれのルーマブロックおよびクロマブロック中の対応するルーマサンプルおよびクロマサンプルの各々についての色値をシグナリングし得、ビデオデコーダ３０はそれらを受信し得る。サブサンプリングフォーマットの場合、いくつかの例では、ビデオエンコーダ２０は、それについてルーマ成分のみがあるエスケープピクセルについての１つの色値のみをシグナリングし、それについてルーマ成分および両方のクロマ成分があるエスケープピクセルについてのすべての３つの色値をシグナリングし得る。これらの例では、ビデオデコーダ３０は、現在ブロックのエスケープピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリームからパースすべき色値の数を決定し得る。ビデオデコーダ３０は、次いで、ビットストリームからパースすべき色値の数の決定に基づいて、ピクセルを復号（たとえば、ピクセルを再構成）し得る。
【００７６】
[0086]  上記の例示的な技法は以下のように要約され得る。これらの例示的な技法は、４：２：２および４：２：０パレットブロックについてのデコーダ観点（すなわち、ビデオデコーダ３０の観点）から説明される。この場合、各パレットエントリは色成分（すなわち、３つの色値）からなる。ブロック（たとえば、ＣＵ）中の各ピクセルについて、インデックスが決定される（たとえば、復号によって決定される、あるいはコピーインデックスまたはコピーアバブ（copy above）ランの一部であり得る）。ビットストリームシンタックスは、４：４：４の場合、シンタックスと同様である。ピクセルがルーマ成分とクロマ成分の両方からなり、ピクセルインデックスがＥＳＣＡＰＥピクセルを示さない場合、対応するパレットエントリのすべての３つの色成分が、予測または再構成のために使用される。ピクセルがルーマ成分のみからなり、ピクセルインデックスがＥＳＣＡＰＥピクセルを示さない場合、対応するパレットエントリの第１の色成分のみが、予測または再構成のために使用される。ＥＳＣＡＰＥピクセルの場合、ピクセルがルーマ成分のみからなる場合、（場合によっては量子化された）単一の成分値がビットストリームから読み取られる。同様に、ＥＳＣＡＰＥピクセルがルーマ成分ならびにクロマ成分からなる場合、（場合によっては量子化された）３つの成分値がビットストリームから読み取られる。
【００７７】
[0087]  上記の例では、ビデオデコーダ３０は、ピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかの決定に基づいて、いくつの色値をパレットテーブルから読み取るべきか、またはいくつの色値をビットストリームからパースすべきかを決定し得る。ピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかをビデオデコーダ３０が決定し得る様々な方法があり得、本開示で説明される技法は１つのそのような技法に限定されない。１つの例示的な方法として、ビデオデコーダ３０は、位相整合（phase alignment）に基づいて、ピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかを決定し得る。
【００７８】
[0088]  図８および図９に関してより詳細に説明されるように、位相整合は、概して、現在ブロックのルーマ成分とクロマ成分との間の関連付けを指す。たとえば、４：２：０サブサンプリングの場合、ＣＵ中の４つのピクセルのグループ（たとえば、ピクセルの２×２サブブロック）について、ルーマブロック中にサンプルの２×２サブブロックの対応するグループがあり、それぞれのクロマブロック中に１つのサンプルのみがある。したがって、それぞれのクロマブロック中の１つのサンプルは、ルーマブロックの２×２サブブロック中の４つのピクセルのうちのいずれか１つに対応し得る（たとえば、１つのクロマ成分が４つのルーマ成分に対応する）。
【００７９】
[0089]  たとえば、ＣＵ中の２×２サブブロックについて、左上、右上、左下、および右下ピクセルがある。位相整合は、クロマブロック中のサンプルが、ルーマブロック中の同じサブブロックである、ＣＵ中の２×２サブブロック中の左上、右上、左下、または右下ピクセルに対応するかどうかを示す。ビデオデコーダ３０は、ピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかを決定するために、位相整合を利用し得る。この位相整合は、コーディング目的でのみ使用される。クロマサンプルの実際の物理的ロケーションは、位相整合によって示された物理的ロケーションとは異なり得る。クロマロケーションは、偶数の分数ピクセル位置に整合され得る。
【００８０】
[0090]  たとえば、クロマブロック中のサンプルはＣＵの２×２サブブロックの左上ピクセルと整合されると仮定する。この例では、現在ブロックのルーマ成分と現在ブロックのクロマ成分との間の位相整合は、ルーマブロック中の２×２サブブロックの左上サンプルがクロマブロック中のサンプルに関連付けられることを示す。ビデオデコーダ３０が２×２サブブロックの左上ピクセルをパレットモード復号しているとき、ビデオデコーダ３０は、パレットテーブルからのすべての３つの色値が取り出されるべきであると決定するか、またはビットストリームからのすべての３つの色値がエスケープピクセルについてパースされるべきであると決定し得る。ＣＵの２×２サブブロックの右上、右下、および左下ピクセルについて、ビデオデコーダ３０は、パレットテーブルからの１つの色値のみが取り出されるべきであると決定するか、またはビットストリームからの１つの色値のみがエスケープピクセルについてパースされるべきであると決定し得る。
【００８１】
[0091]  上記の例は、２×２サブブロックの左上ピクセルとの位相整合について説明するが、本開示で説明される技法はそのように限定されず、位相整合は、２×２サブブロックの右上、右下、または左下ピクセルについてのものであり得る。より一般的には、４：２：０サブサンプリングの場合、ある位相整合は、偶数のｘ座標および偶数のｙ座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る（たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の偶数のｘ座標および偶数のｙ座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す）。別の位相整合は、偶数のｘ座標および奇数のｙ座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る（たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の偶数のｘ座標および奇数のｙ座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す）。別の位相整合は、奇数のｘ座標および偶数のｙ座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る（たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の奇数のｘ座標および偶数のｙ座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す）。別の位相整合は、奇数のｘ座標および奇数のｙ座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る（たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の奇数のｘ座標および奇数のｙ座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す）。
【００８２】
[0092]  ４：２：２についての位相整合は、クロマブロック中の１つのサンプルごとに現在ブロック中の２つのピクセルがあることを除いて、同様であり得る。４：２：２事例の場合、ある位相整合は、偶数のｘ座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る（たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の偶数のｘ座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す）。別の位相整合は、奇数のｘ座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る（たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の奇数のｘ座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す）。４：２：２サブサンプリングフォーマットにおけるｙ座標の値は、水平部分のみが１／２サンプリングされ、垂直部分が同じであるので、関連がないことがある。
【００８３】
[0093]  ピクチャについての特定の位相整合がプリセットされ得る。別の例として、ビデオエンコーダ２０は、位相整合を示す情報（たとえば、４つの可能な位相整合があるとき４：２：０サブサンプリングについての２ビット値、または２つの可能な位相整合があるとき４：２：２サブサンプリングについての１ビット値）をシグナリングし得る。ビデオデコーダ３０は、位相整合を示す信号情報に基づいて位相整合を決定し得る。別の例として、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオエンコーダ２０が位相整合を明示的に示す必要がなく、位相整合がプリセットされる必要がないように、隣接ブロックのコンテンツ、前のブロックの位相整合など、他のファクタに基づいて位相整合を暗黙的に決定し得る。
【００８４】
[0094]  このようにして、ビデオデコーダ３０は、現在ブロックのルーマ成分と現在ブロックのクロマ成分との間の位相整合を決定し得る。現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定するために、ビデオデコーダ３０は、決定された位相整合に基づいて、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。
【００８５】
[0095]  単一のパレットテーブルを使用してパレットモード復号し、現在ブロックのルーマ成分と現在ブロックのクロマ成分との位相整合に基づいて、パレットテーブルエントリからすべての３つの色値が取り出されるべきであるのか１つの色値のみが取り出されるべきであるのかを決定するための一例について、上記で説明した。現在ブロックのルーマ成分と現在ブロックのクロマ成分との位相整合に基づいて、エスケープピクセルについてビットストリームから３つの色値がパースされるべきであるのか１つの色値がパースされるべきであるのかを決定することの例についても、上記で説明した。
【００８６】
[0096]  ただし、本開示で説明される例示的な技法はそのように限定されない。以下は、追加の例について説明し、上記で説明された例のいくつかを繰り返す。以下の技法は、適用可能なとき、上記のこととともに、または上記のこととは別々に使用され得る。
【００８７】
[0097]  いくつかの例では、単一のパレットテーブルを有するのではなく、複数のパレットテーブル（たとえば、すべての３つの色をもつ１つのパレット、ルーマ成分のための１つのパレット、およびクロマ成分のための別のパレット）が使用され得る。パレットテーブル導出は、３つよりも少ない色成分を有するパレットエントリを可能にすることによって、この差分を考慮するために変更され得、たとえば、パレットエントリは、色トリプレット（たとえば、Ｙ、Ｕ、Ｖ）、色ペア（たとえばＵ、Ｖ）または単一の色（たとえばＹ）、あるいは任意の他の色の組合せであり得る。ビデオエンコーダ２０は、たとえば、０−トリプレット、１０−ペア、および１１−単一のエントリまたは他の手段を使用して、パレットエントリタイプ、またはパレットエントリ中に含まれる色成分の数を示し得る。この指示によれば、新しいパレットエントリがシグナリングされる場合、ビデオエンコーダ２０は、対応する色成分のみをシグナリングし得る。たとえば、エントリがペアである場合、２つの新しい色成分のみが新しいパレットエントリとしてシグナリングされる。
【００８８】
[0098]  より特定の場合、パレットエントリは、２つのタイプ、すなわち、トリプレットおよび単一の成分のもののみであり得、ビデオエンコーダ２０は、エントリタイプを示すための１ビットフラグをシグナリングし得る。いくつかの例示的な技法が、この特定の場合のために説明されるが、（トリプレットまたは単一のエントリよりも多くのエントリを使用する）より一般的な手法が、本開示の範囲内で考慮されるべきである。
【００８９】
[0099]  トリプレット（triplet）、ペア、または単一の成分などの同様のエントリが、パレット予測子リスト（palette predictor list）中で使用され得る。代替または追加として、パレット予測子リストは常にトリプレットからなることができる。ペアおよび単一の成分エントリは、対応する色のみをおそらく使用することによってトリプレットから予測され得る。たとえば、単一の成分エントリがトリプレット（Ａ、Ｂ、Ｃ）から予測される場合、単一の成分パレットエントリの対応する成分値はＡに等しい。この例はまた、（たとえば、パレット予測子リストを使用して）単一のパレットを導出するための方法として、単一のパレットを使用することの上記の例に適用可能である。
【００９０】
[0100]  いくつかの例では、トリプレットおよび単一の成分パレットエントリのために別個のパレットおよびパレット予測子リストが維持される。この場合、ビデオエンコーダ２０は、それぞれ、トリプレットおよび単一の成分パレットエントリのためにパレット予測子再利用フラグおよび新しいパレットエントリを、別々にシグナリングし得る。
【００９１】
[0101]  パレットインデックスは、ブロック中のピクセルを予測する（または表す）ために使用されるパレットエントリを示すために使用され得、パレットエントリに関連付けられた（１つまたは複数の）色は、ビデオデコーダ３０の段においてピクセルに割り当てられ得る。
【００９２】
[0102]  パレットインデックス付けの場合、パレットテーブル導出のための上記の説明の代替または追加として、パレットエントリ中のすべての色が、ブロック中の特定のピクセルを予測するために使用されるとは限らないが、パレットエントリはトリプレットのみからなり得る。本開示で説明される技法では、ビデオエンコーダ２０およびビデオデコーダ３０は、ブロック内のピクセル位置およびクロマ色フォーマット（たとえば、位相整合）に従って、あるピクセルを予測する（表す）のに必要な色の数を導出し得る。たとえば、４：２：０クロマ色フォーマットでは、４つのルーマサンプルは１つの対応するクロマペア（ＵおよびＶ）を有し、すなわち、あらゆる第２の行およびあらゆる第２の列は３つの色成分を有するピクセルを有し得、すべての他のピクセルはルーマ成分のみを有する。したがって、一例では、クロマサンプルは、行インデックスと列インデックスの両方が偶数であるときに存在し得る。同様に、クロマサンプルとのルーマサンプルの異なる整合が可能である。したがって、パレットインデックスは、最初に、パレットテーブル中の３つの色成分を示し得る。特定のピクセル位置がルーマサンプルのみを有する場合、トリプレットの第１の色成分のみが、ピクセルを予測する（表す）ために使用され得る。
【００９３】
[0103]  同様の方法で、ＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥまたはＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥを用いてコーディングされたピクセルのグループについて、コピーすべき色成分の数が、ピクセル位置とクロマ色フォーマットとに基づいて導出され得る。パレットモードのラン値は、モード内でのルーマピクセルの連続の長さ（すべてのルーマサンプルが、対応するクロマサンプルを有するとは限らない）、または、概してより完全な色成分の長さを示し得る。
【００９４】
[0104]  ピクセルがＥＳＣＡＰＥピクセルである（すなわち、色値が明示的にシグナリングされる）場合、シグナリングされるべき色の数は、ピクセル位置とクロマ色フォーマットとに基づいて導出され得る。したがって、ピクセル位置がクロマサンプルを有しない場合、ルミナンス値のみが、エスケープピクセルについてコーディングされる。
【００９５】
[0105]  パレットテーブルは、ルーマサンプルの数がクロマサンプルの数の４倍であり、精度に関して、より多くの重みが、ルーマ成分に割り当てられ得ることを考慮に入れることによって、導出され得る。しかしながら、パレット導出の１つの方法のみを有する必要がある場合、パレットテーブルは、クロマピクセルに一致するようにルーマ成分をサブサンプリングすることによって、またはルーマサンプルの数に一致するようにクロマ成分をアップサンプリングすることによって、４：４：４パレット導出方法を使用することによって導出され得る。
【００９６】
[0106]  色固有パレット（color specific palette）およびパレット予測子の場合、ピクセルが異なる数の関連付けられた色成分を有するとき、パレットエントリのタイプごとに別個のパレットテーブルが維持され得る。たとえば、トリプレット専用エントリおよび単一のエントリを有する２つのパレットテーブルが使用され得る。あるピクセルのために使用されるべきパレット成分の数は、ピクセル位置とクロマ色フォーマットとに従って導出され得、色成分は、パレットインデックスに従って、導出されたパレットテーブルタイプから選択（select）され得る。ラン値は、一般にルーマ（luma）である、より長い色成分に対応し得る。
【００９７】
[0107]  たとえば、ピクセルのグループがＣＯＰＹ＿ＩＮＤＥＸ＿ＭＯＤＥを用いてコーディングされる場合、ビデオエンコーダ２０はパレットインデックスおよびラン値をシグナリングし得、ビデオデコーダ３０はそれらを受信し得る。シグナリングされたラン値内のあらゆるルーマピクセルについて、ビデオデコーダ３０は、最初にピクセルに関連付けられた色成分の数（すなわち、それがトリプレットエントリであるのか単一のエントリであるのか）を導出し得る。次いで、ビデオデコーダ３０は、対応するパレットテーブルから（１つまたは複数の）色の適切な数を選択し得る。
【００９８】
[0108]  パレット予測子は、トリプレットベースのみであり得るか、または、パレットエントリタイプに従って分離され、別々に維持され得る。パレット予測子がトリプレットのみからなる場合、およびパレットエントリがパレット予測子から予測されるとき、必要とされる色のみがコピーされる。
【００９９】
[0109]  代替または追加として、パレットテーブルは、ピクセルタイプ（たとえば、トリプレットまたは単一のエントリ）に従って分離され得るが、テーブルは、依然としてトリプレットを有し得、必要とされる色のみが、ピクセルタイプに従って使用され得る。この場合、すべてのエントリはトリプレットベースであるので、共通パレット予測子（common palette predictor）は、単に、すべての使用されるエントリから構成され得る。
【０１００】
[0110]  波面同期（wavefront synchronization）では、波面並列処理（ＷＰＰ：wavefront parallel processing）が可能にされる場合、最後のパレットコードディングされたブロックのパレット予測子およびパレットサイズは、次のコーディングツリーユニット（ＣＴＵ）行同期の目的で、ＣＴＵ行中のあらゆる第２のＣＴＵの終わりに記憶される。パレットまたはパレット予測子が、エントリタイプに従って分離される場合、最後のパレットコードディングされたブロックのパレット予測子の各タイプおよび／またはパレットサイズの各タイプは、ＷＰＰ同期のために記憶される必要があり得る。
【０１０１】
[0111]  以下は、理解をさらに支援するためのいくつかの例示的な態様について説明する。これらの例は、別々に、または、任意の組合せで一緒に適用され得る。１つの例示的な技法は、各パレットエントリが３つの色値を含む、上記で説明されたものであり、ビデオデコーダ３０は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかに基づいて、取り出すべき色値の数を決定する。ビデオデコーダ３０はまた、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかに基づいて、エスケープピクセルについてビットストリームからパースすべき色値の数を決定し得る。
【０１０２】
[0112]  上記で説明されたように、ビデオエンコーダ２０およびビデオデコーダ３０は、ピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかを決定するために、位相整合情報を使用し得る。ビデオエンコーダ２０は、パラメータセット（たとえば、シーケンスパラメータセット（ＳＰＳ：sequence parameter set）またはピクチャパラメータセット（ＰＰＳ））、スライスヘッダ中の位相整合情報をシグナリングし得、ビデオデコーダ３０はそれを受信し得るか、または、位相整合を伝達するために、ビデオユーザビリティ情報（ＶＵＩ：video usability information）が使用され得る。たとえば、トリプレットのみがパレットテーブル中で使用される場合、異なる位相整合を示すためにＳＰＳまたはＰＰＳあるいはスライスヘッダ中のシンタックス要素を使用することが提案される。代替または追加として、ＶＵＩが、そのような情報を伝達するために使用され得る。
【０１０３】
[0113]  たとえば、図８では、ルーマピクセル位置Ａ、Ｃ、Ｉ、およびＫは、３つの色成分（たとえば、ルーマ成分および２つのクロマ成分）を有すると見なされ、ルーマピクセル位置の残りは、単一の色成分を有する（たとえば、ルーマ成分を有し、クロマ成分を有しない）と見なされる。別の例では、図９に示されているように、ロケーションにおけるルーマピクセル位置Ｅ、Ｇ、Ｍ、およびＯは、３つの色成分（たとえば、ルーマ成分および２つのクロマ成分）を有すると見なされ、ルーマピクセル位置の残りは、単一の色成分を有する（たとえば、ルーマ成分を有し、クロマ成分を有しない）と見なされる。
【０１０４】
[0114]  したがって、そのような差分事例を示すためのシンタックス要素（たとえば、位相整合を示すためのシンタックス要素）が提案される。たとえば、要素が「００」に等しいとき、クロマピクセル値を導出するために、ルーマピクセル位置Ａ、Ｃ、Ｉ、Ｋが使用される。要素が「０１」に等しいとき、クロマピクセル値を導出するために、ルーマピクセル位置Ｂ、Ｄ、Ｊ、Ｌが使用される。要素が「１０」に等しいとき、クロマピクセル値を導出するために、ルーマピクセル位置Ｅ、Ｇ、Ｍ、Ｏが使用される。要素が「１１」に等しいとき、クロマピクセル値を導出するために、ルーマピクセル位置Ｆ、Ｈ、Ｎ、Ｐが使用される。
【０１０５】
[0115]  上記の例では、クロマピクセル値を導出するために、１つのルーマ位置のみが使用される。ただし、本開示で説明される技法はそのように限定されない。別の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、クロマピクセル値を導出するために２つ以上のルーマ位置を使用し得る。たとえば、図９では、ビデオエンコーダ２０またはビデオデコーダ３０がルーマ位置Ａ、Ｂ、Ｅ、Ｆについてのインデックスを得た後、これらのインデックス値は、パレットテーブルを使用して４色トリプレットにマッピングされ得る。したがって、４つのクロマペア（たとえば、ルーマ位置Ａについての２つのクロマ色値、ルーマ位置Ｂについての２つのクロマ色値、ルーマ位置Ｅについての２つのクロマ色値、およびルーマ位置Ｆについての２つのクロマ色値）がある。
【０１０６】
[0116]  一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、これらの４つのクロマペアの平均値を、再構成済みクロマピクセル値として使用し得る。代替または追加として、ビデオエンコーダ２０およびビデオデコーダ３０は、２つまたは３つのクロマペアを選択し、それらの平均を、再構成済みクロマピクセル値として使用し得る。代替または追加として、ビデオエンコーダ２０およびビデオデコーダ３０は、これらの４つのクロマペアを４タップフィルタに使用し、フィルタ処理されたピクセル値を、再構成済みクロマピクセル値として使用し得る。
【０１０７】
[0117]  別の例では、４：４：４パレットモードでは、ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥの場合、現在ピクセルは、それの上のネイバーピクセルと同じ色トリプレットを共有する。非４：４：４モードでは、すべての３つの成分を有するピクセル位置について、クロマ成分をコピーするために、ビデオエンコーダ２０およびビデオデコーダ３０は、すべての３つの成分を有する、現在ピクセル位置の上の最も近い位置からクロマ成分をコピーし得る。
【０１０８】
[0118]  たとえば、図８では、ルーマ位置Ｋがコピーアバブモード（copy above mode）にある場合、Ｇからインデックスをコピーし、パレットテーブルをルックアップすることによって対応するクロマ成分値を得る代わりに、ビデオデコーダ３０は位置Ｃのクロマ成分をコピーする。
【０１０９】
[0119]  図２は、本開示の技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。図２は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１１０】
[0120]  ビデオエンコーダ２０は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの一例を表す。たとえば、ビデオエンコーダ２０は、パレットモードを利用する現在ブロックをコーディングするように構成され得、ここにおいて、対応するクロマブロックのサイズは、対応するルーマブロックのサイズとは異なる。
【０１１１】
[0121]  図２の例では、ビデオエンコーダ２０は、予測処理ユニット（prediction processing unit）１００と、ビデオデータメモリ（video data memory）１０１と、残差生成ユニット（residual generation unit）１０２と、変換処理ユニット（transform processing unit）１０４と、量子化ユニット（quantization unit）１０６と、逆量子化ユニット（inverse quantization unit）１０８と、逆変換処理ユニット（inverse transform processing unit）１１０と、再構成ユニット（reconstruction unit）１１２と、フィルタユニット（filter unit）１１４と、復号ピクチャバッファ（decoded picture buffer）１１６と、エントロピー符号化ユニット（entropy encoding unit）１１８とを含む。予測処理ユニット１００は、インター予測処理ユニット（Inter-prediction processing unit）１２０と、イントラ予測処理ユニット（intra-prediction processing unit）１２６とを含む。インター予測処理ユニット（Inter-prediction processing unit）１２０は、動き推定ユニットと、動き補償ユニット（motion compensation unit）とを含む（図示せず）。ビデオエンコーダ２０は、本開示で説明されるパレットベースコーディング技法の様々な態様を実行するように構成された、パレットベース符号化ユニット（palette-based encoding unit）１２２をも含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０１１２】
[0122]  ビデオデータメモリ１０１は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ１０１に記憶されるビデオデータは、たとえば、ビデオソース１８から取得され得る。復号ピクチャバッファ１１６は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１０１および復号ピクチャバッファ１１６は、同期（synchronous）ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗（magnetoresistive）ＲＡＭ（ＭＲＡＭ）、抵抗性（resistive）ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ１０１および復号ピクチャバッファ１１６は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ１０１は、ビデオエンコーダ２０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１１３】
[0123]  ビデオエンコーダ２０はビデオデータを受信し得る。ビデオエンコーダ２０はビデオデータのピクチャのスライス中の各ＣＴＵを符号化し得る。ＣＴＵの各々は、等しいサイズのルーマコーディングツリーブロック（ＣＴＢ：coding tree block）と、ピクチャの対応するＣＴＢとに関連付けられ得る。ＣＴＵを符号化することの一部として、予測処理ユニット１００は、ＣＴＵのＣＴＢを徐々により小さいブロックに分割するために４分木区分を実行し得る。より小さいブロックはＣＵのコーディングブロックであり得る。たとえば、予測処理ユニット１００は、ＣＴＵに関連付けられたＣＴＢを４つの等しいサイズのサブブロックに区分し、サブブロックのうちの１つまたは複数を４つの等しいサイズのサブブロックに区分し得、以下同様である。
【０１１４】
[0124]  ビデオエンコーダ２０は、ＣＵの符号化表現（すなわち、コーディングされたＣＵ）を生成するためにＣＴＵのＣＵを符号化し得る。ＣＵを符号化することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵの間でＣＵに関連付けられたコーディングブロックを区分し得る。したがって、各ＰＵは、ルーマ予測ブロックと、対応するクロマ予測ブロックとに関連付けられ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートし得る。上記のように、ＣＵのサイズはＣＵのルーマコーディングブロックのサイズを指すことがあり、ＰＵのサイズはＰＵのルーマ予測ブロックのサイズを指すことがある。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測用の２Ｎ×２ＮまたはＮ×ＮのＰＵサイズと、インター予測用の２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称ＰＵサイズとをサポートし得る。ビデオエンコーダ２０およびビデオデコーダ３０は、インター予測用の２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズに対する非対称区分をもサポートし得る。
【０１１５】
[0125]  インター予測処理ユニット１２０は、ＣＵの各ＰＵに対してインター予測を実行することによって、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、ＰＵの予測ブロックとＰＵのための動き情報とを含み得る。インター予測ユニット１２１は、ＰＵがＩスライス中にあるのか、Ｐスライス中にあるのか、Ｂスライス中にあるのかに応じて、ＣＵのＰＵに対して異なる動作を実行し得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測ユニット１２１はＰＵに対してインター予測を実行しない。したがって、Ｉモードで符号化されたブロックの場合、予測ブロックは、同じフレーム内の前に符号化された隣接ブロックからの空間予測を使用して形成される。
【０１１６】
[0126]  ＰＵがＰスライス中にある場合、インター予測処理ユニット１２０の動き推定ユニットは、ＰＵの参照領域について参照ピクチャのリスト（たとえば、「ＲｅｆＰｉｃＬｉｓｔ０」）中の参照ピクチャを探索し得る。ＰＵのための参照領域は、ＰＵのサンプルブロックに最も密接に対応するサンプルブロックを含んでいる、参照ピクチャ内の領域であり得る。動き推定ユニットは、ＰＵのための参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０中の位置を示す参照インデックスを生成し得る。さらに、動き推定ユニットは、ＰＵのコーディングブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示すＭＶを生成し得る。たとえば、ＭＶは、現在の復号ピクチャ中の座標から参照ピクチャ中の座標までのオフセットを与える２次元ベクトルであり得る。動き推定ユニットは、ＰＵの動き情報として、参照インデックスとＭＶとを出力し得る。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。
【０１１７】
[0127]  ＰＵがＢスライス中にある場合、インター予測処理ユニット１２０の動き推定ユニットは、ＰＵについての単予測または双予測を実行し得る。ＰＵについての単予測を実行するために、動き推定ユニットは、ＰＵのための参照領域についてＲｅｆＰｉｃＬｉｓｔ０または第２の参照ピクチャリスト（「ＲｅｆＰｉｃＬｉｓｔ１」）の参照ピクチャを探索し得る。動き推定ユニットは、ＰＵの動き情報として、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照インデックスと、ＰＵの予測ブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示すＭＶと、参照ピクチャがＲｅｆＰｉｃＬｉｓｔ０中にあるのかＲｅｆＰｉｃＬｉｓｔ１中にあるのかを示す１つまたは複数の予測方向インジケータとを出力し得る。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０１１８】
[0128]  ＰＵについての双方向インター予測を実行するために、動き推定ユニットは、ＰＵのための参照領域についてＲｅｆＰｉｃＬｉｓｔ０中の参照ピクチャを探索し得、ＰＵのための別の参照領域についてＲｅｆＰｉｃＬｉｓｔ１中の参照ピクチャをも探索し得る。動き推定ユニットは、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照ピクチャインデックスを生成し得る。さらに、動き推定ユニットは、参照領域に関連付けられた参照ロケーションとＰＵのサンプルブロックとの間の空間変位を示すＭＶを生成し得る。ＰＵの動き情報は、ＰＵの参照インデックスとＭＶとを含み得る。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０１１９】
[0129]  本開示の様々な例によれば、ビデオエンコーダ２０は、パレットベースコーディングを実行するように構成され得る。ＨＥＶＣフレームワークに関して、一例として、パレットベースコーディング技法は、コーディングユニット（ＣＵ）モードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、ＨＥＶＣのフレームワーク中でＰＵモードとして使用されるように構成され得る。したがって、ＣＵモードのコンテキストにおいて（本開示全体にわたって）本明細書で説明される開示されるプロセスのすべてが、追加または代替として、ＰＵに適用され得る。しかしながら、これらのＨＥＶＣベースの例は、本明細書で説明されるパレットベースコーディング技法が、独立して、あるいは他の既存のまたはまだ開発されていないシステム／規格の一部として動作するように適用され得るので、そのような技法の制限または限定であると見なされるべきではない。これらの場合、パレットコーディングのためのユニットは、正方形ブロック、矩形ブロック、さらには非矩形形状の領域であり得る。
【０１２０】
[0130]  パレットベース符号化ユニット１２２は、たとえば、パレットベース符号化モードが、たとえば、ＣＵまたはＰＵのために選択されるとき、パレットベース符号化を実行し得る。たとえば、パレットベース符号化ユニット１２２は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置のピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロックの位置のうちの少なくともいくつかを選択されたピクセル値にそれぞれ対応するパレット中のエントリに関連付ける情報をシグナリングするように構成され得る。様々な機能が、パレットベース符号化ユニット１２２によって実行されるものとして説明されたが、そのような機能の一部または全部は、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
【０１２１】
[0131]  本開示の態様によれば、パレットベース符号化ユニット１２２は、図４〜図７に関して以下で説明されるか、または他の方法で本開示で説明されるパレットコーディングのための技法の任意の組合せを実行するように構成され得る。一例として、パレットベース符号化ユニット１２２は、現在ブロックについてのパレットテーブルを導出し、そのパレットテーブルをビデオデータメモリ１０１に記憶し得る。いくつかの場合には、パレットベース符号化ユニット１２２は、パレットテーブルに基づいて、ビデオデータの現在ブロック中のピクセルが符号化されないである（たとえば、ピクセルがエスケープピクセルである）と決定し得る。この例では、パレットベース符号化ユニット１２２は、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。たとえば、パレットベース符号化ユニット１２２は、ルーマ成分とクロマ成分との位相整合を決定し、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。
【０１２２】
[0132]  パレットベース符号化ユニット１２２は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定し得、ビデオエンコーダ２０は、色値の決定された数に基づいて、現在ブロックを再構成するために使用される、ビットストリーム中のピクセルについての色値をシグナリングし得る。この場合、ピクセルは、このピクセルについてのルーマおよび／またはクロマ値がパレット中にないことを意味するエスケープピクセルである。ルーマ／クロマ値がパレット中にある場合、ビデオエンコーダ２０は、パレットインデックスをシグナリングするであろう。
【０１２３】
[0133]  一例として、パレットベース符号化ユニット１２２は、現在ブロック中のエスケープピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、３つの色値が、エスケープピクセルについてビットストリーム中でシグナリングされるべきであると決定し得る。この例では、ビデオエンコーダ２０は、ビデオデコーダ３０が、現在ブロックを再構成するために使用するエスケープピクセルについての３つの色値をシグナリングする。別の例として、パレットベース符号化ユニット１２２は、現在ブロック中のエスケープピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、単一の色値のみがビットストリーム中でシグナリングされるべきであると決定し得る。この例では、ビデオエンコーダ２０は、ビデオデコーダ３０が、エスケープピクセルを再構成するために使用するピクセルについての１つの色値のみをシグナリングする。
【０１２４】
[0134]  イントラ予測処理ユニット１２６は、ＰＵに対してイントラ予測を実行することによって、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、ＰＵのための予測ブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット１２６は、Ｉスライス、Ｐスライス、およびＢスライス中のＰＵに対してイントラ予測を実行し得る。
【０１２５】
[0135]  ＰＵに対してイントラ予測を実行するために、イントラ予測処理ユニット１２６は、ＰＵのための予測データの複数のセットを生成するために複数のイントラ予測モードを使用し得る。イントラ予測処理ユニット１２６は、ＰＵのための予測ブロックを生成するために隣接ＰＵのサンプルブロックからのサンプルを使用し得る。隣接ＰＵは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右上、左上、または左にあり得る。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モード、たとえば、様々な方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、ＰＵに関連付けられた領域のサイズに依存し得る。
【０１２６】
[0136]  予測処理ユニット１００は、ＰＵのためにインター予測処理ユニット１２０によって生成された予測データ、またはＰＵのためにイントラ予測処理ユニット１２６によって生成された予測データの中からＣＵのＰＵのための予測データを選択し得る。いくつかの例では、予測処理ユニット１００は、予測データのセットのレート／ひずみメトリックに基づいて、ＣＵのＰＵのための予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれることがある。
【０１２７】
[0137]  残差生成ユニット１０２は、ＣＵのルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロックと、ＣＵのＰＵの選択された予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロックとに基づいて、ＣＵのルーマ残差ブロック、Ｃｂ残差ブロックおよびＣｒ残差ブロックを生成し得る。たとえば、残差生成ユニット１０２は、残差ブロック中の各サンプルが、ＣＵのコーディングブロック中のサンプルとＣＵのＰＵの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０１２８】
[0138]  変換処理ユニット１０４は、ＣＵに関連付けられた残差ブロックをＣＵのＴＵに関連付けられた変換ブロックに区分するために、４分木区分を実行し得る。したがって、ＴＵは、ルーマ変換ブロックと２つのクロマ変換ブロックとに関連付けられ得る。ＣＵのＴＵのルーマ変換ブロックとクロマ変換ブロックとのサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差４分木」（ＲＱＴ：residual quad-tree）として知られる４分木構造は、領域の各々に関連付けられたノードを含み得る。ＣＵのＴＵはＲＱＴのリーフノードに対応し得る。
【０１２９】
[0139]  変換処理ユニット１０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵのための変換係数ブロックを生成し得る。変換処理ユニット１０４は、ＴＵに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向変換、または概念的に同様の変換を変換ブロックに適用し得る。いくつかの例では、変換処理ユニット１０４は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われ得る。
【０１３０】
[0140]  量子化ユニット１０６は、係数ブロック中の変換係数を量子化し得る。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度（bit depth）を低減し得る。たとえば、量子化中にｎビットの変換係数がｍビットの変換係数に切り捨てられることがあり、ここで、ｎはｍよりも大きい。量子化ユニット１０６は、ＣＵに関連付けられた量子化パラメータ（ＱＰ：quantization parameter）値に基づいて、ＣＵのＴＵに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらし得、したがって、量子化変換係数は、量子化の前の元の変換係数よりも低い精度を有し得る。
【０１３１】
[0141]  逆量子化ユニット１０８および逆変換処理ユニット１１０は、係数ブロックから残差ブロックを再構成するために、それぞれ、係数ブロックに逆量子化および逆変換を適用し得る。再構成ユニット１１２は、ＴＵに関連付けられた再構成済み変換ブロックを生成するために、再構成済み残差ブロックを、予測処理ユニット１００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加算し得る。このようにＣＵの各ＴＵについて変換ブロックを再構成することによって、ビデオエンコーダ２０は、ＣＵのコーディングブロックを再構成し得る。
【０１３２】
[0142]  フィルタユニット１１４は、ＣＵに関連付けられたコーディングブロック内のブロッキングアーティファクト（blocking artifact）を低減するために１つまたは複数のデブロッキング演算（deblocking operation）を実行し得る。復号ピクチャバッファ１１６は、フィルタユニット１１４が、再構成済みコーディングブロックに対して１つまたは複数のデブロッキング演算を実行した後、再構成済みコーディングブロックを記憶し得る。インター予測処理ユニット１２０は、他のピクチャのＰＵに対してインター予測を実行するために、再構成済みコーディングブロックを含んでいる参照ピクチャを使用し得る。さらに、イントラ予測処理ユニット１２６は、ＣＵと同じピクチャの中の他のＰＵに対してイントラ予測を実行するために、復号ピクチャバッファ１１６中の再構成済みコーディングブロックを使用し得る。
【０１３３】
[0143]  エントロピー符号化ユニット１１８は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１８は、エントロピー符号化データを生成するために、データに対して１つまたは複数のエントロピー符号化演算を実行し得る。たとえば、エントロピー符号化ユニット１１８は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）演算、ＣＡＢＡＣ演算、可変対可変（Ｖ２Ｖ：variable-to-variable）長コーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング演算、指数ゴロム符号化演算（Exponential-Golomb encoding operation）、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。ビデオエンコーダ２０は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。たとえば、ビットストリームは、ＣＵのためのＲＱＴを表すデータを含み得る。
【０１３４】
[0144]  図３は、本開示の技法を実装するように構成された例示的なビデオデコーダ３０を示すブロック図である。図３は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１３５】
[0145]  ビデオデコーダ３０は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの一例を表す。たとえば、ビデオデコーダ３０は、パレットモードを利用する現在ブロックをコーディングするように構成され得、ここにおいて、対応するクロマブロックのサイズは、対応するルーマブロックのサイズとは異なる。
【０１３６】
[0146]  図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット（entropy decoding unit）１５０と、ビデオデータメモリ１５１と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換処理ユニット１５６と、再構成ユニット１５８と、フィルタユニット１６０と、復号ピクチャバッファ１６２とを含む。予測処理ユニット１５２は、動き補償ユニット１６４と、イントラ予測処理ユニット１６６とを含む。ビデオデコーダ３０は、本開示で説明されるパレットベースコーディング技法の様々な態様を実行するように構成された、パレットベース復号ユニット（palette-based decoding unit）１６５をも含む。他の例では、ビデオデコーダ３０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０１３７】
[0147]  ビデオデータメモリ１５１は、ビデオデコーダ３０の構成要素によって復号されるべき、符号化ビデオビットストリーム（encoded video bitstream）などのビデオデータを記憶し得る。ビデオデータメモリ１５１に記憶されるビデオデータは、たとえば、コンピュータ可読媒体１６から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードまたはワイヤレスネットワーク通信を介して、あるいは物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ１５１は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ：coded picture buffer）を形成し得る。復号ピクチャバッファ１６２は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１５１および復号ピクチャバッファ１６２は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ１５１および復号ピクチャバッファ１６２は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ１５１は、ビデオデコーダ３０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１３８】
[0148]  ビデオデータメモリ１５１中のコード化ピクチャバッファ（ＣＰＢ）は、ビットストリームの符号化ビデオデータ（たとえば、ＮＡＬユニット）を受信し、記憶し得る。エントロピー復号ユニット１５０は、ＣＰＢから符号化ビデオデータ（たとえば、ＮＡＬユニット）を受信し、シンタックス要素を復号するためにＮＡＬユニットをパースし得る。エントロピー復号ユニット１５０は、ＮＡＬユニット中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構成ユニット１５８、およびフィルタユニット１６０は、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成し得る。
【０１３９】
[0149]  ビットストリームのＮＡＬユニットはコード化スライスＮＡＬユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット１５０は、コード化スライスＮＡＬユニットからシンタックス要素を抽出し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたＰＰＳを識別するシンタックス要素を含み得る。
【０１４０】
[0150]  ビットストリームからシンタックス要素を復号することに加えて、ビデオデコーダ３０は、区分されていないＣＵに対して再構成演算（reconstruction operation）を実行し得る。区分されていないＣＵに対して再構成演算を実行するために、ビデオデコーダ３０はＣＵの各ＴＵに対して再構成演算を実行し得る。ＣＵの各ＴＵに対して再構成演算を実行することによって、ビデオデコーダ３０はＣＵの残差ブロックを再構成し得る。
【０１４１】
[0151]  ＣＵのＴＵに対して再構成演算を実行することの一部として、逆量子化ユニット１５４は、ＴＵに関連付けられた係数ブロックを逆量子化（inverse quantize）、すなわち、量子化解除（de-quantize）し得る。逆量子化ユニット１５４は、量子化の程度を決定し、同様に、逆量子化ユニット１５４が適用すべき逆量子化の程度を決定するために、ＴＵのＣＵに関連付けられたＱＰ値を使用し得る。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるＱＰの値を調整することによって制御され得る。圧縮比はまた、採用されたエントロピーコーディングの方法に依存し得る。
【０１４２】
[0152]  逆量子化ユニット１５４が係数ブロックを逆量子化した後、逆変換処理ユニット１５６は、ＴＵに関連付けられた残差ブロックを生成するために係数ブロックに１つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット１５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ：Karhunen-Loeve transform）、逆回転変換、逆方向変換、または別の逆変換を係数ブロックに適用し得る。
【０１４３】
[0153]  イントラ予測を使用してＰＵが符号化される場合、イントラ予測処理ユニット１６６は、ＰＵのための予測ブロックを生成するためにイントラ予測を実行し得る。イントラ予測処理ユニット１６６は、空間的に隣接するＰＵの予測ブロックに基づいてＰＵのための予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロックを生成するためにイントラ予測モードを使用し得る。イントラ予測処理ユニット１６６は、ビットストリームから復号された１つまたは複数のシンタックス要素に基づいてＰＵのためのイントラ予測モードを決定し得る。
【０１４４】
[0154]  予測処理ユニット１５２は、ビットストリームから抽出されたシンタックス要素に基づいて、第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）と第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）とを構成し得る。さらに、ＰＵがインター予測を使用して符号化される場合、エントロピー復号ユニット１５０はＰＵのための動き情報を抽出し得る。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、ＰＵのための１つまたは複数の参照領域を決定し得る。動き補償ユニット１６４は、ＰＵのための１つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、ＰＵのための予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロックを生成し得る。
【０１４５】
[0155]  再構成ユニット１５８は、ＣＵのルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロックを再構成するために、適用可能なとき、ＣＵのＴＵに関連付けられたルーマ変換ブロック、Ｃｂ変換ブロックおよびＣｒ変換ブロック、ならびにＣＵのＰＵの予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロック、すなわち、イントラ予測データまたはインター予測データのいずれかを使用し得る。たとえば、再構成ユニット１５８は、ＣＵのルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロックを再構成するために、ルーマ変換ブロック、Ｃｂ変換ブロックおよびＣｒ変換ブロックのサンプルを、予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロックの対応するサンプルに加算し得る。
【０１４６】
[0156]  フィルタユニット１６０は、ＣＵのルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロックに関連付けられたブロッキングアーティファクトを低減するためにデブロッキング演算を実行し得る。ビデオデコーダ３０は、ＣＵのルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロックを復号ピクチャバッファ１６２に記憶し得る。復号ピクチャバッファ１６２は、後続の動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のために、参照ピクチャを与え得る。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ１６２中のルーマブロック、Ｃｂブロック、およびＣｒブロックに基づいて、他のＣＵのＰＵに対してイントラ予測演算またはインター予測演算を実行し得る。
【０１４７】
[0157]  本開示の様々な例によれば、ビデオデコーダ３０は、パレットベースコーディングを実行するように構成され得る。パレットベース復号ユニット１６５は、たとえば、パレットベース復号モードが、たとえば、ＣＵまたはＰＵのために選択されるとき、パレットベース復号を実行し得る。たとえば、パレットベース復号ユニット１６５は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構成するように構成され得る。様々な機能が、パレットベース復号ユニット１６５によって実行されるものとして説明されたが、そのような機能の一部または全部は、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
【０１４８】
[0158]  パレットベース復号ユニット１６５は、パレットコーディングモード情報を受信し、パレットコーディングモードがブロックに適用されることをパレットコーディングモード情報が示すとき、上記の動作を実行し得る。パレットコーディングモードがブロックに適用されないことをパレットコーディングモード情報が示すとき、または他のモード情報が異なるモードの使用を示すとき、予測処理ユニット１５２は、たとえば、ＨＥＶＣインター予測またはイントラ予測コーディングモードなど、非パレットベースコーディングモードを使用してビデオデータのブロックを復号する。ビデオデータのブロックは、たとえば、ＨＥＶＣコーディングプロセスに従って生成されるＣＵまたはＰＵであり得る。パレットベースコーディングモードは、複数の異なるパレットベースコーディングモードのうちの１つを備え得るか、または単一のパレットベースコーディングモードがあり得る。
【０１４９】
[0159]  本開示の態様によれば、パレットベース復号ユニット１６５は、図４〜図７に関して以下で説明されるか、または他の方法で本開示で説明されるパレットコーディングのための技法の任意の組合せを実行するように構成され得る。たとえば、パレットベース復号ユニット１６５は、ビデオデータの現在ブロックについて、３つの色値を有するエントリを含む単一のパレットテーブルを導出し得る。ビデオデータメモリ１５１は、３つの色値を有するエントリを含むパレットテーブルを記憶し得る。
【０１５０】
[0160]  パレットベース復号ユニット１６５は、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。たとえば、パレットベース復号ユニット１６５は、現在ブロックのルーマ成分と現在ブロックのクロマ成分との間の位相整合を決定し得る。パレットベース復号ユニット１６５は、決定された位相整合に基づいて、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。
【０１５１】
[0161]  いくつかの例では、パレットベース復号ユニット１６５は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、パレットテーブルから取り出すべき色値の数を決定し得る。パレットベース復号ユニット１６５は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、３つの色値がパレットテーブルから取り出されるべきであると決定する。パレットベース復号ユニット１６５は、現在ブロック中のピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、３つの色値のうちの単一の色値のみがパレットテーブルから取り出されるべきであると決定する。概して、ビデオデコーダ３０は、パレットテーブル中への１つのエントリを識別する単一のインデックスを受信し得る。パレットベース復号ユニット１６５は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、パレットテーブル中への識別されたエントリから取り出すべき色値の数を決定し得る。
【０１５２】
[0162]  パレットベース復号ユニット１６５は、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号し得る。たとえば、ピクセルがルーマ成分およびクロマ成分を含むとパレットベース復号ユニット１６５が決定した場合、パレットベース復号ユニット１６５は、パレットテーブルから３つの色値を取り出し、３つの色値の各々をピクセルのそれぞれのルーマ成分およびクロマ成分に割り当て得る。ピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないとパレットベース復号ユニット１６５が決定した場合、パレットベース復号ユニット１６５は、パレットテーブルから単一の色値（たとえば、３つの色値のうちの第１の識別された色値（identified color value））を取り出し、単一の色値をピクセルのルーマ成分に割り当て得る。
【０１５３】
[0163]  上記の例では、現在ブロックのピクセルは、パレットテーブル中の１つまたは複数の色値に基づいて復号された。しかしながら、いくつかの例では、現在ブロック中のピクセルは、パレットテーブルに基づいて復号されないことがある（たとえば、エスケープピクセル）。そのような例では、パレットベース復号ユニット１６５は、現在ブロック中のエスケープピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。
【０１５４】
[0164]  パレットベース復号ユニット１６５は、現在ブロック中のエスケープピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリームからパースすべき色値の数を決定し得る。たとえば、パレットベース復号ユニット１６５は、現在ブロック中のエスケープピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、（場合によっては量子化された）３つの色値がビットストリームからパースされるべきであると決定し得る。別の例として、パレットベース復号ユニット１６５は、現在ブロック中のエスケープピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、（場合によっては量子化された）単一の色値のみがビットストリームからパースされるべきであると決定し得る。
【０１５５】
[0165]  エスケープピクセルについて、パレットベース復号ユニット１６５は、ビットストリームからパースすべき色値の決定された数に基づいて、エスケープピクセルを復号し得る。エスケープピクセルがルーマ成分およびクロマ成分を含む場合、パレットベース復号ユニット１６５は、（場合によっては量子化された）３つの色値をパースし、それぞれの色値をルーマ成分および２つのクロマ成分に割り当て得る。エスケープピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まない場合、パレットベース復号ユニット１６５は、（場合によっては量子化された）１つの色値のみをパースし、その色値をルーマ成分に割り当て得る。
【０１５６】
[0166]  図４は、ビデオデータをコーディングするためのパレットを決定することの一例を示す概念図である。図４の例は、第１のパレット１８４に関連付けられる第１のコーディングユニット（ＣＵ）１８０と第２のパレット１９２に関連付けられる第２のＣＵ１８８とを有するピクチャ１７８を含む。第１のＣＵ１８０および第２のＣＵ１８８は、パレットモード（ＰＡＬ）を使用してコーディングされる。以下でより詳細に説明されるように、第２のパレット１９２は第１のパレット１８４に基づく。ピクチャ１７８は、イントラ予測コーディングモードを用いてコーディングされるブロック１９６と、インター予測コーディングモードを用いてコーディングされるブロック２００とをも含む。
【０１５７】
[0167]  スクリーンコンテンツビデオの特性に基づいて、パレットコーディングは、ドキュメントＪＣＴＶＣ−Ｍ０３２３（「Palette Mode for Screen Content Coding」、Ｌ．Ｇｕｏら、ＪＣＴＶＣ−Ｍ０３２３、Ｉｎｃｈｅｏｎ、ＫＲ、２０１３年４月１８〜２６日）において第１に提案されたＳＣＣ効率を改善するために導入され、その内容全体は参照により本明細書に組み込まれる。詳細には、パレットコーディングは、ＳＣＣにおいて、１つのＣＵ内の色が、通常、数個のピーク値に集中するという事実に基づいて繰返しピクセル値を圧縮するために、ルックアップテーブル、すなわち、カラーパレットを導入する。特定のＣＵのためのパレットを仮定すれば、ＣＵ内のピクセルは、パレットインデックスにマッピングされる。第２の段では、インデックスブロックの繰返しパターンを効果的に圧縮するために、コピーフロムレフト（copy from left）ランレングス技法が提案される。ドキュメントＪＣＴＶＣ−Ｎ０２４９（「Non-RCE3: Modified Palette Mode for Screen Content Coding」、Ｇｕｏら、ＪＣＴＶＣ−Ｎ０２４９、Ｖｉｅｎｎａ、ＡＴ、２０１３年７月２５日〜８月２日）では、パレットインデックスコーディングモードは、ランレングスコーディングを用いたコピーフロムレフトとコピーフロムアバブ（copy from above）の両方を可能にするために一般化された。いくつかの事例では、変換プロセスが、シャープエッジを不鮮明にすることを回避するためにパレットコーディングのために呼び出されず、これがスクリーンコンテンツの視覚的品質に悪影響を与えることに留意されたい。
【０１５８】
[0168]  概して、パレットは、（インデックス、ピクセル値）ペアを記憶するデータ構造である。設計されたパレットは、たとえば、現在ＣＵ中のピクセル値のヒストグラムによって、ビデオエンコーダ２０において決定され得る。たとえば、ヒストグラム中のピーク値はパレット中に追加されるが、低度数ピクセル値はパレット中に含まれない。
【０１５９】
[0169]  図４の技法は、ビデオエンコーダ２０（図１および図２）とビデオデコーダ３０（図１および図３）のコンテキストにおいて、説明の目的でＨＥＶＣビデオコーディング規格に関して、説明される。しかしながら、本開示の技法はこのように限定されず、他のビデオコーディングプロセスおよび／または規格において他のビデオコーディングプロセッサおよび／またはデバイスによって適用され得ることを、理解されたい。
【０１６０】
[0170]  概して、パレットは、現在コーディングされているＣＵ、図４の例ではＣＵ１８０について支配的な（dominant）、および／または代表的な（representative）、いくつかのピクセル値を指す。第１のパレット１８４および第２のパレット１９２は、複数のパレットを含むものとして示されている。いくつかの例では、本開示の態様によれば、（ビデオエンコーダ２０またはビデオデコーダ３０などの）ビデオコーダは、ＣＵの各色成分について別々にパレットをコーディングし得る。たとえば、ビデオエンコーダ２０は、ＣＵのルーマ（Ｙ）成分のためのパレットと、ＣＵのクロマ（Ｕ）成分のための別のパレットと、ＣＵのクロマ（Ｖ）成分のためのまた別のパレットとを符号化し得る。この例では、ＹパレットのエントリはＣＵのピクセルのＹ値を表し得、ＵパレットのエントリはＣＵのピクセルのＵ値を表し得、ＶパレットのエントリはＣＵのピクセルのＶ値を表し得る。
【０１６１】
[0171]  他の例では、ビデオエンコーダ２０は、ＣＵのすべての色成分について単一のパレットを符号化し得る。この例では、ビデオエンコーダ２０は、Ｙｉと、Ｕｉと、Ｖｉとを含む、トリプル値であるｉ番目のエントリを有するパレットを符号化し得る。この場合、パレットは、ピクセルの成分の各々についての値を含む。したがって、複数の個々のパレットを有するパレットのセットとしてのパレット１８４および１９２の表現は、一例にすぎず、限定することは意図されない。
【０１６２】
[0172]  図４の例では、第１のパレット１８４の各々は、それぞれ、エントリインデックス値１、エントリインデックス値２、およびエントリインデックス値３を有する３つのエントリ２０２〜２０６を含む。エントリ２０２〜２０６は、それぞれ、ピクセル値Ａ、ピクセル値Ｂ、およびピクセル値Ｃを含むピクセル値に、インデックス値を関係付ける。本明細書で説明されるように、第１のＣＵ１８０の実際のピクセル値をコーディングするのではなく、（ビデオエンコーダ２０またはビデオデコーダ３０などの）ビデオコーダは、インデックス１〜３を使用してブロックのピクセルをコーディングするためにパレットベースコーディングを使用し得る。すなわち、第１のＣＵ１８０の各ピクセル位置について、ビデオエンコーダ２０はピクセルについてのインデックス値を符号化し得、インデックス値は、第１のパレット１８４のうちの１つまたは複数の中のピクセル値に関連付けられる。ビデオデコーダ３０は、ビットストリームからインデックス値を取得し、インデックス値と第１のパレット１８４のうちの１つまたは複数とを使用してピクセル値を再構成し得る。したがって、第１のパレット１８４は、パレットベース復号におけるビデオデコーダ３０による使用のために、符号化ビデオデータビットストリーム中でビデオエンコーダ２０によって送信される。
【０１６３】
[0173]  いくつかの例では、パレットの１つまたは複数のエントリは、別のパレット（たとえば、コーディング中に前に使用されたパレット）から予測され得る。たとえば、パレットは、予測子パレットからコピーされるエントリを含み得る。予測子パレットは、パレットモードを使用して前にコーディングされたブロックまたは他の再構成済みサンプルからのパレットエントリを含み得る。予測子パレット中の各エントリについて、そのエントリが現在パレット（current palette）にコピーされる（フラグ＝１によって示される）かどうかを示すために、バイナリフラグがビットストリーム中に含まれ得る。それぞれのパレットエントリのための一連のバイナリフラグは、バイナリパレット予測ベクトル（binary palette prediction vector）と呼ばれることがある。さらに、現在パレットは、明示的にシグナリングされる新しいエントリを含み得る。新しいエントリの数もシグナリングされ得る。
【０１６４】
[0174]  図４の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、第１のパレット１８４に基づいて第２のパレット１９２を決定し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、１つまたは複数のブロックの位置を特定し得、そのブロックから、予測パレット、この例では第１のパレット１８４が決定される。図４に示されている例など、いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、第２のＣＵ１８８のための予測パレットを決定するとき、左の隣接ＣＵ（第１のＣＵ１８０）など、前にコーディングされたＣＵの位置を特定し得る。
【０１６５】
[0175]  図４の例では、第２のパレット１９２は、それぞれ、エントリインデックス値１、エントリインデックス値２、およびエントリインデックス値３を有する３つのエントリ２０８〜２１２を含む。エントリ２０８〜２１２は、それぞれ、ピクセル値Ａ、ピクセル値Ｂ、およびピクセル値Ｃを含むピクセル値に、インデックス値を関係付ける。この例では、ビデオエンコーダ２０は、第１のパレット１８４のどのエントリが第２のパレット１９２中に含まれるかを示す１つまたは複数のシンタックス要素をコーディングし得る。図４の例では、１つまたは複数のシンタックス要素は、ベクトル２１６として示される。ベクトル２１６は、いくつかの関連するビン（またはビット）を有し、各ビンは、そのビンに関連付けられたパレット予測子が現在パレットのエントリを予測するために使用されるかどうかを示す。たとえば、ベクトル２１６は、第１のパレット１８４の最初の２つのエントリ（２０２および２０４）が、第２のパレット１９２中に含まれる（ベクトル２１６中の「１」の値）が、第１のパレット１８４の第３のエントリが、第２のパレット１９２中に含まれない（ベクトル２１６中の「０」の値）ことを示す。図４の例では、ベクトルは、ブールベクトル（Boolean vector）である。
【０１６６】
[0176]  いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、パレット予測を実行するとき、（パレット予測子テーブルと呼ばれることもある）パレット予測子リストを決定し得る。パレット予測子リストは、現在ブロックをコーディングするためのパレットの１つまたは複数のエントリを予測するために使用される１つまたは複数の隣接ブロックのパレットからのエントリを含み得る。ビデオエンコーダ２０およびビデオデコーダ３０は、同様の方法でリストを構成し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、パレット予測子リストのどのエントリが現在ブロックをコーディングするためのパレット中に含まれるべきかを示すために、（ベクトル２１６などの）データをコーディングし得る。
【０１６７】
[0177]  図５に、パレット予測の一例を示す。たとえば、ＳＣＣについて、１つのスライス内のＣＵブロックは多くの支配的な色（dominant color）を共有し得る。したがって、図４に関して上述したように、（ＣＵ復号順序での）前のパレットモードＣＵのパレットを参照として使用して、現在ブロックのパレットを予測することが可能であり得る。詳細には、０〜１バイナリベクトルが、参照パレット（reference palette）中のピクセル値が現在パレットによって再利用されるか否かを示すためにシグナリングされ得る。一例として、図５では、参照パレットが６つの項目を有すると仮定される。ベクトル（１，０，１，１，１，１）が現在パレットを用いてシグナリングされ得、これは、ｖ0、ｖ2、ｖ3、ｖ4、およびｖ5は現在パレット中で再利用されるが、ｖ1は再利用されないことを示す。現在パレットが参照パレットから予測可能でない色を含んでいる場合、予測されない色の数がコーディングされ、次いで、これらの色は直接シグナリングされ得る。たとえば、図５では、ｕ0およびｕ1が、ビットストリーム中で直接シグナリングされ得る。
【０１６８】
[0178]  図６は、ピクセルのブロックについてのパレットへのインデックスを決定することの一例を示す概念図である。たとえば、現在のＨＥＶＣスクリーンコンテンツコーディングテストモデル２（ＳＣＭ２：Screen Content Coding Test Model 2）参照ソフトウェアでは、規範的観点からの、パレットコーディングの２つの主要な態様は、パレットモードでコーディングされているブロック中の各サンプルについての、パレットのコーディングおよびパレットインデックスのコーディングである。上述のように、パレットインデックスのコーディングは、インデックスモードとコピーフロムアバブモードとを含む、２つの主要なモードを使用して実行され得る。インデックスモードでは、たとえば、パレットインデックスが最初にシグナリングされ得る。インデックスがパレットのサイズに等しい場合、これは、サンプルがエスケープサンプルであることを示す。この場合、各構成要素についてのサンプル値または量子化サンプル値がシグナリングされる。コピーフロムアバブモードでは、現在のピクセルを含む後続のｍ個のピクセルが、それぞれ、すぐ上のそれらのネイバーとしてパレットインデックスを共有することを示すために、非負ランレングス値ｍ−１のみが送信され得る。
【０１６９】
[0179]  いくつかの例では、特定のブロックのためのパレットモードが、ｐａｌｅｔｔｅ＿ｍｏｄｅフラグを使用してシグナリングされ得る。上述のように、インデックスモードはまた、エスケープサンプル、すなわち、パレットに属さないサンプルを示すために使用される。現在の設計では、コピーフロムアバブモードは、パレットブロックの第１の行のために可能でない。さらに、コピーフロムアバブモードは、別のコピーフロムアバブモードに続かないことがある。これらの場合、インデックスモードが推論される。
【０１７０】
[0180]  現在の設計では、パレットモードはＣＵレベルでシグナリングされるが、それをＰＵレベルでシグナリングすることが可能であり得る。現在ブロック中のエスケープサンプルの存在を示すために、フラグ、ｐａｌｅｔｔｅ＿ｅｓｃ＿ｖａｌ＿ｐｒｅｓｅｎｔ＿ｆｌａｇもシグナリングされ得る。異なる方法でパレットモードをシグナリングすることも可能である。たとえば、ドキュメントＪＣＴＶＣ−Ｐ０２３１（Ｗ．Ｐｕ、Ｆ．Ｚｏｕ、Ｍ．Ｋａｒｃｚｅｗｉｃｚ、およびＲ．Ｊｏｓｈｉ、「Non-RCE4: Refinement of the palette in RCE4 Test 2」、ＪＣＴＶＣ−Ｐ０２３１）では、現在のサンプルがエスケープサンプルであったかどうかを示すために明示的フラグを使用することが提案された。現在のサンプルが非エスケープであった場合、パレットモードがコピーフロムアバブモードであったのかインデックスモードであったのかを示すために、別のフラグがシグナリングされた。
【０１７１】
[0181]  図６の例は、インデックス値に関連付けられたピクセルのそれぞれの位置をパレット２４４のエントリに関係付ける、インデックス値（値１、２、および３）のマップ２４０を含む。マップ２４０は、各ピクセル位置についてのインデックス値を含むものとして図６の例に示されているが、他の例では、すべてのピクセル位置が、ピクセル値をパレット２４４のエントリに関係付けるインデックス値に関連付けられ得るとは限らないことを理解されたい。すなわち、上述のように、いくつかの例では、ビデオエンコーダ２０は、ピクセル値がパレット２４４中に含まれない場合、マップ２４０中の位置についての実際のピクセル値（またはそれの量子化バージョン）の指示を符号化し得る（および、ビデオデコーダ３０は、符号化ビットストリームからその指示を取得し得る）。
【０１７２】
[0182]  いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、どのピクセル位置がインデックス値に関連付けられるかを示す追加のマップをコーディングするように構成され得る。たとえば、マップ中の（ｉ，ｊ）のエントリがＣＵの（ｉ，ｊ）の位置に対応すると仮定する。ビデオエンコーダ２０は、エントリが、関連付けられたインデックス値を有するかどうかを示す、マップの各エントリ（すなわち、各ピクセル位置）のための１つまたは複数のシンタックス要素を符号化し得る。そのような例では、ビデオエンコーダ２０はまた、パレット中の対応するピクセル値を示し、ビデオデコーダ３０がピクセル値を再構成することを可能にするために、（値１〜３として図６の例に示されている）パレットインデックスを符号化し得る。
【０１７３】
[0183]  ＣＵの１つの位置におけるピクセルの値は、ＣＵの他の位置における１つまたは複数の他のピクセルの値の指示を与え得る。たとえば、ＣＵの隣接ピクセル位置が、同じピクセル値を有するか、または（２つ以上のピクセル値が単一のインデックス値にマッピングされ得る、不可逆コーディングの場合）同じインデックス値にマッピングされ得る確率が比較的高くなり得る。
【０１７４】
[0184]  したがって、ビデオエンコーダ２０は、グループとしてコーディングされる、所与の走査順序での連続するピクセルまたはインデックス値の数を示す１つまたは複数のシンタックス要素を符号化し得る。値のいわゆる「ストリング（string）」は、ランレングスを有するランと呼ばれることがある。たとえば、インデックスモードでのランが、同じインデックス値を有するピクセルのストリングを示し得る。別の例では、コピーフロムアバブモードでのランレングスが、上に隣接するピクセルと同じ値を共有するピクセル値のストリングを示し得る。ビデオデコーダ３０は、符号化ビットストリームからランを示すシンタックス要素を取得し、一緒にコーディングされる連続するロケーションの数を決定するためにそのデータを使用し得る。
【０１７５】
[0185]  上述のように、ランは、（コピーフロムアバブとも呼ばれる）コピートップ（Copy Top）または（インデックスモードとも呼ばれる）コピーレフト（Copy Left）モードとともに使用され得る。説明の目的のための一例では、マップ２４０の行２６４および２６８について考える。水平方向の左から右への走査方向を仮定すると、行２６４は、「１」の３つのインデックス値と、「２」の２つのインデックス値と、「３」の３つのインデックス値とを含む。行２６８は、「１」の５つのインデックス値と「３」の３つのインデックス値とを含む。この例では、ビデオエンコーダ２０は、行２６４の特定のエントリを識別し、その後、行２６８のためのデータを符号化するとき（たとえば、コピートップモード）にランを識別し得る。たとえば、ビデオエンコーダ２０は、行２６８の第１の位置（行２６８の一番左の位置）が行２６４の第１の位置と同じであることを示す、１つまたは複数のシンタックス要素を符号化し得る。ビデオエンコーダ２０はまた、行２６８中の走査方向での２つの連続するエントリの次のランが行２６４の第１の位置と同じであることを示す、１つまたは複数のシンタックス要素を符号化し得る。
【０１７６】
[0186]  （上述の）行２６４の第１の位置と２つのエントリのランとを示す１つまたは複数のシンタックス要素を符号化した後に、ビデオエンコーダ２０は、（左から右に）ライン２６８中の第４および第５の位置について、第４の位置についての１の値を示す１つまたは複数のシンタックス要素と、１のランを示す１つまたは複数のシンタックス要素とを符号化し得る（たとえば、コピーレフトモード）。したがって、ビデオエンコーダ２０は、別のラインと無関係にこれらの２つの位置を符号化する。いくつかの例では、コピーレフトモードは「バリュー（Value）」モードと呼ばれることもある。
【０１７７】
[0187]  ビデオエンコーダ２０は、次いで、上の行２６４に対する（たとえば、上の行２６４からのコピーと、同じインデックス値を有する、走査順序での連続する位置のランとを示す）行２６８中の３のインデックス値を有する第１の位置を符号化し得る。したがって、ビデオエンコーダ２０は、たとえば、ランを使用して、ラインのピクセルまたはインデックス値をラインの他の値に対してコーディングすること、ラインのピクセルまたはインデックス値を別のライン（または列）の値に対してコーディングすること、あるいはそれらの組合せの間で選択し得る。ビデオエンコーダ２０は、いくつかの例では、この選択を行うために、レート／ひずみ最適化（rate/distortion optimization）を実行し得る。
【０１７８】
[0188]  ビデオデコーダ３０は、上記で説明されたシンタックス要素を受信し、行２６８を再構成し得る。たとえば、ビデオデコーダ３０は、現在コーディングされているマップ２４０の位置についての関連付けられたインデックス値をそこからコピーするための、隣接する行中の特定のロケーションを示すデータを取得し得る。ビデオデコーダ３０は、たとえば、ランレングスを有するランにおいて、グループとして処理されている走査順序での連続する位置の数を示すデータをも取得し得る。水平方向の走査順序に関して説明されるが、本開示の技法はまた、垂直または対角（たとえば、ブロックにおいて対角方向に４５度または１３５度）の走査方向など、別の走査方向に適用され得る。
【０１７９】
[0189]  図７は、前にコーディングされた行からパレットインデックスをコピーすることの一例を示す概念図である。図７の例は、概して、コピープリビアスロウ（Copy Previous Row）モードを示し得る。たとえば、上述のように、コピープリビアスロウモードは、コピーフロムアバブモードと同様に動作し得るが、インデックスがそこからコピーされる行は、明示的にシグナリングされ得る。コピープリビアスロウモードは、ピクセル値が、現在コーディングされているピクセルのすぐ上の行以外の、前にコーディングされた行からコピーされることを可能にし得る。
【０１８０】
[0190]  たとえば、より良いコーディング効率を達成するために、コピープリビアスロウモードは、前にコーディングされた行が参照として使用されることを可能にする。コピープリビアスロウモードは、利用可能なパレットモード候補リスト中に追加され得る。コピープリビアスロウモードが選択されるとき、行インデックス情報がコーディングされ得る。行インデックスは、短縮されたバイナリコードワードを使用してコーディングされ得る。より短いコードワードが、現在の行のより近くに配置された行のために指定され得る。他のパレットモードの場合と同様に、マッチングレングス（matching length）（たとえば、一緒にコーディングされている位置のランレングス）はビットストリーム中でコーディングされ得る。コピーフロムアバブモードの場合の冗長性を低減するために、コピープリビアスロウモードは、現在ＣＵの第３の行からの有効な開始であり得る。
【０１８１】
[0191]  ２０１４年６月２０日に出願された米国仮出願第６２／０１５，１７７号（“ｔｈｅ  １７７  ｐｒｏｖｉｓｉｏｎａｌ）および２０１４年６月２７日に出願された米国仮出願第６２／０１８，４７７号（“ｔｈｅ  ４７７  ｐｒｏｖｉｓｉｏｎａｌ）、ならびに、ドキュメントＪＣＴＶＣ−Ｒ０２０２（Ｆ．Ｚｏｕ、Ｍ．Ｋａｒｃｚｅｗｉｃｚ、Ｒ．Ｊｏｓｈｉ、およびＪ．Ｓｏｌｅ、「Non-SCCE3: Copy from previous row mode for palette coding」、ＪＣＴＶＣ−Ｒ０２０２）では、限定はしないが、「インデックス」、「コピーフロムアバブ」、および「コピープリビアスロウ」モードを表すために使用され得るモードコーディング／シグナリング技法を含む、（「コピーフロムプリビアスロウ（Copy from Previous Row）」とも呼ばれる）コピープリビアスロウのいくつかの態様が提案された。いくつかの例では、短縮された単項コーディングがこれらの３つのモードのために使用され得る。そのような例では、モードのうちのいくつかが利用可能でないとき、最大シンボル値が低減され、したがって、オーバーヘッドコストが低減し得る。
【０１８２】
[0192]  図１０は、ビデオデータを復号することの一例を示すフローチャートである。ビデオデコーダ３０は、ビデオデータの現在ブロックについて、３つの色値を有するエントリを含む単一のパレットテーブルを導出する（１０００）。ビデオデータメモリ１５１はパレットテーブルを記憶し得る。
【０１８３】
[0193]  ビデオデコーダ３０は、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定する（１００２）。たとえば、ビデオデコーダ３０は、現在ブロックのルーマ成分と現在ブロックのクロマ成分との間の位相整合を決定し得る。ビデオデコーダ３０は、決定された位相整合に基づいて、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。
【０１８４】
[0194]  ビデオデコーダ３０は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、パレットテーブルから取り出すべき色値の数を決定する（１００４）。ビデオデコーダ３０は、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号する（１００６）。
【０１８５】
[0195]  たとえば、ビデオデコーダ３０は、パレットテーブル中への１つのエントリを識別する単一のインデックスを受信し得る。この例では、ビデオデコーダ３０は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、パレットテーブル中への識別されたエントリから取り出すべき色値の数を決定し得る。
【０１８６】
[0196]  一例では、ビデオデコーダ３０は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、３つの色値がパレットテーブルから取り出されるべきであると決定し得る。この例では、ピクセルをパレットモード復号するために、ビデオデコーダ３０は、パレットテーブルから３つの色値を取り出し、３つの色値の各々をピクセルのそれぞれのルーマ成分およびクロマ成分に割り当て得る。
【０１８７】
[0197]  別の例では、ビデオデコーダ３０は、現在ブロック中のピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、３つの色値のうちの単一の色値のみがパレットテーブルから取り出されるべきであると決定し得る。この例では、ピクセルをパレットモード復号するために、ビデオデコーダ３０は、パレットテーブルから単一の色値を取り出し、単一の色値をピクセルのルーマ成分に割り当て得る。たとえば、単一の色値は、パレットテーブルに記憶された３つの色値のうちの第１の識別された色値であり得る。
【０１８８】
[0198]  図１０に示されている上記の例では、現在ブロックのピクセルは第１のピクセルと見なされ得る。いくつかの例では、ビデオデコーダ３０は、パレットテーブルに基づいて、現在ブロック中の第２のピクセルが復号されるべきでない（たとえば、第２のピクセルがエスケープピクセルである）と決定し得る。ビデオデコーダ３０は、現在ブロック中の第２のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し、現在ブロック中の第２のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリームからパースすべき色値の数を決定し得る。色値は、場合によっては量子化され得、以下の説明では、明示的に述べられていないが、色値が場合によっては量子化され得ると仮定されるべきである。しかしながら、色値は、必ずしも常に量子化される必要があるとは限らない。
【０１８９】
[0199]  ビデオデコーダ３０は、ビットストリームからパースすべき色値の決定された数に基づいて、現在ブロック中の第２のピクセルを復号し得る。ビデオデコーダ３０は、現在ブロック中の第２のピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、３つの色値がビットストリームからパースされるべきであると決定し、ビデオデコーダ３０は、現在ブロック中の第２のピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、単一の色値のみがビットストリームからパースされるべきであると決定する。
【０１９０】
[0200]  図１１は、ビデオデータを符号化することの一例を示すフローチャートである。ビデオエンコーダ２０は、ビデオデータメモリ１０１に記憶されるパレットテーブルに基づいて、ビデオデータの現在ブロック中のピクセルが符号化されるべきでない（たとえば、エスケープピクセル）と決定する（１１００）。ビデオエンコーダ２０は、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し（１１０２）、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定する（１１０４）。ビデオエンコーダ２０は、色値の決定された数に基づいて、現在ブロックを再構成するために使用される、ビットストリーム中のピクセルについての色値をシグナリングする（１１０６）。
【０１９１】
[0201]  一例として、ビットストリーム中でシグナリングすべき色値の数を決定するために、ビデオエンコーダ２０は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、３つの色値がビットストリーム中でシグナリングされるべきであると決定し得る。色値をシグナリングするために、ビデオエンコーダ２０は、ビデオデコーダ３０が、現在ブロックを再構成するために使用するピクセルについての３つの色値をシグナリングし得る。
【０１９２】
[0202]  別の例として、ビットストリーム中でシグナリングすべき色値の数を決定するために、ビデオエンコーダ２０は、現在ブロック中のピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、単一の色値のみがビットストリーム中でシグナリングされるべきであると決定し得る。シグナリングするために、ビデオエンコーダ２０は、ビデオデコーダ３０が、現在ブロックを再構成するために使用するピクセルについての１つの色値のみをシグナリングし得る。
【０１９３】
[0203]  上記で説明された技法は、その両方が一般にビデオコーダと呼ばれることがある、ビデオエンコーダ２０（図１および図２）および／またはビデオデコーダ３０（図１および図３）によって実行され得る。同様に、ビデオコーディングは、適用可能なとき、ビデオ符号化またはビデオ復号を指すことがある。さらに、ビデオ符号化およびビデオ復号は、ビデオデータを「処理すること（processing）」と総称的に呼ばれることがある。
【０１９４】
[0204]  本明細書で説明された技法のすべては、個々にまたは組合せで使用され得ることを理解されたい。本開示は、ブロックサイズ、パレットサイズ、スライスタイプなど、いくつかのファクタに応じて変化し得るいくつかのシグナリング方法を含む。シンタックス要素をシグナリングまたは推論することにおけるそのような変形形態は、エンコーダおよびデコーダにアプリオリに知られ得るか、あるいはタイルレベルでまたは他の場所で、ビデオパラメータセット（ＶＰＳ：video parameter set）、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、スライスヘッダ中で明示的にシグナリングされ得る。
【０１９５】
[0205]  上記例に応じて、本明細書で説明された技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行され得、追加、マージ、または完全に除外され得る（たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実行され得る。さらに、本開示のいくつかの態様は、明快のために単一のモジュールまたはユニットによって実行されるものとして説明されたが、本開示の技法は、ビデオコーダに関連付けられたユニットまたはモジュールの組合せによって実行され得ることを理解されたい。
【０１９６】
[0206]  技法の様々な態様の特定の組合せが上記で説明されたが、これらの組合せは、本開示で説明された技法の例を示すために与えられるものにすぎない。したがって、本開示の技法は、これらの例示的な組合せに限定されるべきでなく、本開示で説明された技法の様々な態様の任意の想起可能な組合せを包含し得る。
【０１９７】
[0207]  １つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１９８】
[0208]  限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１９９】
[0209]  命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０２００】
[0210]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０２０１】
[0211]  様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号する方法であって、前記方法は、
前記ビデオデータの現在ブロックについて、３つの色値を有するエントリを含む単一のパレットテーブルを導出することと、
前記ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブルから取り出すべき色値の数を決定することと、
取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号することと
を備える、方法。
［Ｃ２］
前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定すること
をさらに備え、
ここにおいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定することは、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定することを備える、
Ｃ１に記載の方法。
［Ｃ３］
色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記単一のパレットテーブルから取り出されるべきであると決定することを備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号することが、前記単一のパレットテーブルから前記３つの色値を取り出すことと、前記３つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを備える、Ｃ１に記載の方法。
［Ｃ４］
色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記３つの色値のうちの単一の色値のみが前記単一のパレットテーブルから取り出されるべきであると決定することを備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号することが、前記単一のパレットテーブルから前記単一の色値を取り出すことと、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てることとを備える、Ｃ１に記載の方法。
［Ｃ５］
前記単一の色値が、前記３つの色値のうちの第１の識別された色値を備える、Ｃ４に記載の方法。
［Ｃ６］
前記ピクセルが第１のピクセルを備え、前記方法は、
前記単一のパレットテーブルに基づいて、前記現在ブロック中の第２のピクセルが復号されるべきでないと決定することと、
前記現在ブロック中の前記第２のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記第２のピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリームからパースすべき色値の数を決定することと、
前記ビットストリームからパースすべき色値の前記決定された数に基づいて、前記現在ブロック中の前記第２のピクセルを復号することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ７］
前記ビットストリームからパースすべき色値の前記数を決定することは、前記現在ブロック中の前記第２のピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記ビットストリームからパースされるべきであると決定することを備える、Ｃ６に記載の方法。
［Ｃ８］
前記ビットストリームからパースすべき色値の前記数を決定することは、前記現在ブロック中の前記第２のピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリームからパースされるべきであると決定することを備える、Ｃ６に記載の方法。
［Ｃ９］
前記単一のパレットテーブル中の１つのエントリを識別する単一のインデックスを受信すること
をさらに備え、
ここにおいて、取り出すべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブル中の前記識別されたエントリから取り出すべき色値の前記数を決定することを備える、
Ｃ１に記載の方法。
［Ｃ１０］
ビデオデータを復号するためのデバイスであって、前記デバイスは、
前記ビデオデータの現在ブロックについて、３つの色値を有するエントリを含むパレットテーブルを記憶するように構成されたメモリユニットと、
前記メモリユニットに記憶するために、前記ビデオデータの前記現在ブロックについての前記パレットテーブルを導出し、前記現在ブロックについての他のいかなるパレットテーブルをも導出しないことと、
前記ビデオデータの前記現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記パレットテーブルから取り出すべき色値の数を決定することと、
取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号することと
を行うように構成されたビデオデコーダと
を備える、デバイス。
［Ｃ１１］
前記ビデオデコーダは、
前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定すること
を行うように構成され、
ここにおいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するために、前記ビデオデコーダは、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するように構成された、
Ｃ１０に記載のデバイス。
［Ｃ１２］
色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記パレットテーブルから取り出されるべきであると決定するように構成され、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するために、前記ビデオデコーダは、前記パレットテーブルから前記３つの色値を取り出すことと、前記３つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを行うように構成された、Ｃ１０に記載のデバイス。
［Ｃ１３］
色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記３つの色値のうちの単一の色値のみが前記パレットテーブルから取り出されるべきであると決定するように構成され、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するために、前記ビデオデコーダは、前記パレットテーブルから前記単一の色値を取り出すことと、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てることとを行うように構成された、Ｃ１０に記載のデバイス。
［Ｃ１４］
前記単一の色値が、前記３つの色値のうちの第１の識別された色値を備える、Ｃ１３に記載のデバイス。
［Ｃ１５］
前記ピクセルが第１のピクセルを備え、ここにおいて、前記ビデオデコーダは、
前記パレットテーブルに基づいて、前記現在ブロック中の第２のピクセルが復号されるべきでないと決定することと、
前記現在ブロック中の前記第２のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記第２のピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリームからパースすべき色値の数を決定することと、
前記ビットストリームからパースすべき色値の前記決定された数に基づいて、前記現在ブロック中の前記第２のピクセルを復号することと
を行うように構成された、Ｃ１０に記載のデバイス。
［Ｃ１６］
前記ビットストリームからパースすべき色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記第２のピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記ビットストリームからパースされるべきであると決定するように構成された、Ｃ１５に記載のデバイス。
［Ｃ１７］
前記ビットストリームからパースすべき色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記第２のピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリームからパースされるべきであると決定するように構成された、Ｃ１５に記載のデバイス。
［Ｃ１８］
前記ビデオデコーダは、
前記パレットテーブル中の１つのエントリを識別する単一のインデックスを受信すること
を行うように構成され、
ここにおいて、取り出すべき色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記パレットテーブル中の前記識別されたエントリから取り出すべき色値の前記数を決定するように構成された、
Ｃ１０に記載のデバイス。
［Ｃ１９］
前記デバイスが、マイクロプロセッサ、集積回路、ワイヤレス通信デバイス、または前記現在ブロックを含むピクチャを表示するように構成されたディスプレイのうちの少なくとも１つを備える、Ｃ１０に記載のデバイス。
［Ｃ２０］
実行されたとき、ビデオデータを復号するためのデバイスの１つまたは複数のプロセッサに、
前記ビデオデータの現在ブロックについて、３つの色値を有するエントリを含む単一のパレットテーブルを導出することと、
前記ビデオデータの前記現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブルから取り出すべき色値の数を決定することと、
取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号することと
を行わせる、命令を記憶した非一時的コンピュータ可読記憶媒体。
［Ｃ２１］
前記１つまたは複数のプロセッサに、
前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定すること
を行わせる命令をさらに備え、
ここにおいて、前記１つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定させる前記命令は、前記１つまたは複数のプロセッサに、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定させる命令を備える、
Ｃ２０に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２２］
前記１つまたは複数のプロセッサに、色値の前記数を決定させる前記命令は、前記１つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記単一のパレットテーブルから取り出されるべきであると決定させる命令を備え、ここにおいて、前記１つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルをパレットモード復号させる前記命令は、前記１つまたは複数のプロセッサに、前記単一のパレットテーブルから前記３つの色値を取り出すことと、前記３つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを行わせる命令を備える、Ｃ２０に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２３］
前記１つまたは複数のプロセッサに、色値の前記数を決定させる前記命令は、前記１つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記３つの色値のうちの単一の色値のみが前記単一のパレットテーブルから取り出されるべきであると決定させる命令を備え、ここにおいて、前記１つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルをパレットモード復号させる前記命令は、前記１つまたは複数のプロセッサに、前記単一のパレットテーブルから前記単一の色値を取り出すことと、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てることとを行わせる命令を備える、Ｃ２０に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２４］
ビデオデータを復号するためのデバイスであって、前記デバイスは、
前記ビデオデータの現在ブロックについて、３つの色値を有するエントリを含む単一のパレットテーブルを導出するための手段と、
前記ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定するための手段と、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブルから取り出すべき色値の数を決定するための手段と、
取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号するための手段と
を備える、デバイス。
［Ｃ２５］
前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定するための手段
をさらに備え、
ここにおいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するための前記手段は、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するための手段を備える、
Ｃ２４に記載のデバイス。
［Ｃ２６］
色値の前記数を決定するための前記手段は、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記単一のパレットテーブルから取り出されるべきであると決定するための手段を備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するための前記手段は、前記単一のパレットテーブルから前記３つの色値を取り出すための手段と、前記３つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てるための手段とを備える、Ｃ２４に記載のデバイス。
［Ｃ２７］
色値の前記数を決定するための前記手段は、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記３つの色値のうちの単一の色値のみが前記単一のパレットテーブルから取り出されるべきであると決定するための手段を備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するための前記手段は、前記単一のパレットテーブルから前記単一の色値を取り出すための手段と、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てるための手段とを備える、Ｃ２４に記載のデバイス。
［Ｃ２８］
ビデオデータを符号化する方法であって、前記方法は、
単一のパレットテーブルに基づいて、前記ビデオデータの現在ブロック中のピクセルが符号化されるべきでないと決定することと、
前記ビデオデータの前記現在ブロック中の前記ピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定することと、
色値の前記決定された数に基づいて、前記現在ブロックを再構成するために使用される、前記ビットストリーム中の前記ピクセルについての色値をシグナリングすることとを備える、方法。
［Ｃ２９］
前記ビットストリーム中でシグナリングすべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記ビットストリーム中でシグナリングされるべきであると決定することを備え、ここにおいて、色値をシグナリングすることが、前記ピクセルについての３つの色値をシグナリングすることを備える、Ｃ２８に記載の方法。
［Ｃ３０］
前記ビットストリーム中でシグナリングすべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリーム中でシグナリングされるべきであると決定することを備え、ここにおいて、シグナリングすることが、前記ピクセルについての１つの色値のみをシグナリングすることを備える、Ｃ２８に記載の方法。
［Ｃ３１］
色値をシグナリングすることが、量子化色値をシグナリングすることを備える、Ｃ２８に記載の方法。
［Ｃ３２］
ビデオデータを符号化するためのデバイスであって、前記デバイスは、
前記ビデオデータの現在ブロックについて、パレットテーブルを記憶するように構成されたメモリユニットと、
前記パレットテーブルに基づいて、前記ビデオデータの前記現在ブロック中のピクセルが符号化されるべきでないと決定することと、
前記ビデオデータの前記現在ブロック中の前記ピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定することと、
色値の前記決定された数に基づいて、前記現在ブロックを再構成するために使用される、前記ビットストリーム中の前記ピクセルについての色値をシグナリングすることと
を行うように構成されたビデオエンコーダと
を備える、デバイス。
［Ｃ３３］
前記ビットストリーム中でシグナリングすべき色値の前記数を決定するために、前記ビデオエンコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、３つの色値が前記ビットストリーム中でシグナリングされるべきであると決定するように構成され、ここにおいて、色値をシグナリングするために、前記ビデオエンコーダは、前記ピクセルについての３つの色値をシグナリングするように構成された、Ｃ３２に記載のデバイス。
［Ｃ３４］
前記ビットストリーム中でシグナリングすべき色値の前記数を決定するために、前記ビデオエンコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリーム中でシグナリングされるべきであると決定するように構成され、ここにおいて、シグナリングするために、前記ビデオエンコーダは、前記ピクセルについての１つの色値のみをシグナリングするように構成された、Ｃ３２に記載のデバイス。
［Ｃ３５］
色値をシグナリングするために、前記ビデオエンコーダが、量子化色値をシグナリングするように構成された、Ｃ３２に記載のデバイス。
［Ｃ３６］
前記デバイスが、マイクロプロセッサ、集積回路、ワイヤレス通信デバイス、または前記現在ブロックを含むピクチャをキャプチャするように構成されたカメラのうちの少なくとも１つを備える、Ｃ３２に記載のデバイス。
【図１】
0006625644.tif 000002
【図２】
0006625644.tif 000003
【図３】
0006625644.tif 000004
【図４】
0006625644.tif 000005
【図５】
0006625644.tif 000006
【図６】
0006625644.tif 000007
【図７】
0006625644.tif 000008
【図８】
0006625644.tif 000009
【図９】
0006625644.tif 000010
【図１０】
0006625644.tif 000011
【図１１】
0006625644.tif 000012