(57)【要約】  ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、ｃｏｐｙ  ｉｎｄｅｘモードでコーディングされない、現在のピクセルが、対角方向のピクセルのパレットインデックスに基づいてパレットモードコーディングされる技法が説明される。
2017536014.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングする方法であって、
前記ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定することと、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定することと、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングすることと
を備える、方法。
【請求項２】
前記走査順序が水平方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することが、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することを備える、請求項１に記載の方法。
【請求項３】
前記走査順序が垂直方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することが、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することを備える、請求項１に記載の方法。
【請求項４】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定することをさらに備える、請求項１に記載の方法。
【請求項５】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定することをさらに備える、請求項１に記載の方法。
【請求項６】
前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に左から右であることに基づいて前記現在のピクセルの右上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に右から左であることに基づいて前記現在のピクセルの左上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に下から上であることに基づいて左下部に位置するピクセルを備え、または、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に上から下であることに基づいて左上部に位置するピクセルを備える、請求項１に記載の方法。
【請求項７】
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素を受信することをさらに備え、
前記現在のピクセルの対角方向に位置する前記ピクセルのための前記パレットインデックスに基づいて前記現在のピクセルのための前記パレットの前記パレットインデックスを決定することが、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示す前記シンタックス要素を受信したことに応答して、前記現在のピクセルの対角方向に位置する前記ピクセルのための前記パレットインデックスに基づいて、前記現在のピクセルのための前記パレットの前記パレットインデックスを決定することを備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード復号することを備える、請求項１に記載の方法。
【請求項８】
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを示すシンタックス要素をシグナリングすることをさらに備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード符号化することを備える、請求項１に記載の方法。
【請求項９】
前記現在のピクセルが第１のピクセルを備え、前記方法は、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することと、
前記走査順序に対して前記第２のピクセルの直交方向に位置する隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、前記第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定することと、
前記第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、および、前記走査順序に対して前記第２のピクセルの直交方向に位置する前記隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する前記隣接ピクセル、と同じパレットインデックスを、前記第２のピクセルの対角方向に位置する前記ピクセルの前記パレットインデックスが有すると、決定したことに応答して、デフォルトのパレットインデックスに基づいて、前記第２のピクセルのための前記パレットのパレットインデックスを決定することと、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定することと、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングすることと
をさらに備える、請求項１に記載の方法。
【請求項１０】
前記現在のピクセルが第１のピクセルを備え、前記方法は、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することと、
前記第２のピクセルがブロック境界に位置すると決定することと、
前記第２のピクセルが、前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、前記ブロック境界に位置すると決定したことに応答して、デフォルトのパレットインデックスに基づいて前記第２のピクセルのための前記パレットのパレットインデックスを決定することと、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定することと、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングすることと
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記現在のピクセルのための前記決定されたパレットインデックスに基づいて前記パレットのパレット値を決定することをさらに備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレット値に基づいて前記現在のピクセルをパレットモードコーディングすることを備える、請求項１に記載の方法。
【請求項１２】
ビデオデータをコーディングするためのデバイスであって、
パレットのパレット値を記憶するように構成されるメモリと、
ビデオコーダとを備え、前記ビデオコーダが、
前記ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定し、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのための前記パレットのパレットインデックスを決定し、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングする
ように構成される、デバイス。
【請求項１３】
前記走査順序が水平方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するために、前記ビデオコーダが、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成される、請求項１２に記載のデバイス。
【請求項１４】
前記走査順序が垂直方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するために、前記ビデオコーダが、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成される、請求項１２に記載のデバイス。
【請求項１５】
前記ビデオコーダが、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するように構成される、請求項１２に記載のデバイス。
【請求項１６】
前記ビデオコーダが、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するように構成される、請求項１２に記載のデバイス。
【請求項１７】
前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に左から右であることに基づいて前記現在のピクセルの右上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に右から左であることに基づいて前記現在のピクセルの左上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に下から上であることに基づいて左下部に位置するピクセルを備え、または、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に上から下であることに基づいて左上部に位置するピクセルを備える、請求項１２に記載のデバイス。
【請求項１８】
前記ビデオコーダがビデオデコーダを備え、前記ビデオデコーダが、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素を受信し、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示す前記シンタックス要素を受信したことに応答して、前記現在のピクセルの対角方向に位置する前記ピクセルのための前記パレットインデックスに基づいて、前記現在のピクセルのための前記パレットの前記パレットインデックスを決定し、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード復号するように構成される、請求項１２に記載のデバイス。
【請求項１９】
前記ビデオコーダがビデオエンコーダを備え、前記ビデオエンコーダが、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素をシグナリングし、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード符号化するように構成される、請求項１２に記載のデバイス。
【請求項２０】
前記現在のピクセルが第１のピクセルを備え、前記ビデオコーダが、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、
前記走査順序に対して前記第２のピクセルの直交方向に位置する隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、前記第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定し、
前記第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、および、前記走査順序に対して前記第２のピクセルの直交方向に位置する前記隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する前記隣接ピクセル、と同じパレットインデックスを、前記第２のピクセルの対角方向に位置する前記ピクセルの前記パレットインデックスが有すると、決定したことに応答して、デフォルトのパレットインデックスに基づいて、前記第２のピクセルのための前記パレットのパレットインデックスを決定し、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定し、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングするように構成される、請求項１２に記載のデバイス。
【請求項２１】
前記現在のピクセルが第１のピクセルを備え、前記ビデオコーダが、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、
前記第２のピクセルがブロック境界に位置すると決定し、
前記第２のピクセルが、前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、前記ブロック境界に位置すると決定したことに応答して、デフォルトのパレットインデックスに基づいて前記第２のピクセルのための前記パレットのパレットインデックスを決定し、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定し、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングするように構成される、請求項１２に記載のデバイス。
【請求項２２】
前記ビデオコーダが、
前記現在のピクセルのための前記決定されたパレットインデックスに基づいて前記パレットのパレット値を決定するように構成され、
前記現在のピクセルをパレットモードコーディングするために、前記ビデオコーダが、前記決定されたパレット値に基づいて前記現在のピクセルをパレットモードコーディングするように構成される、請求項１２に記載のデバイス。
【請求項２３】
前記デバイスが、
集積回路（ＩＣ）、
マイクロプロセッサ、または
前記現在のピクセルを表示するためのディスプレイまたは前記現在のピクセルをキャプチャするためのカメラのうちの少なくとも１つを備えるワイヤレス通信デバイス
のうちの１つを備える、請求項１２に記載のデバイス。
【請求項２４】
ビデオコーディングのためのデバイスであって、
ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定するための手段と、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定するための手段と、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングするための手段と
を備える、デバイス。
【請求項２５】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するための手段をさらに備える、請求項２４に記載のデバイス。
【請求項２６】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するための手段をさらに備える、請求項２４に記載のデバイス。
【請求項２７】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、ビデオコーディングのためのデバイスの１つまたは複数のプロセッサに、
ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定させ、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定させ、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングさせる、
非一時的コンピュータ可読記憶媒体。
【請求項２８】
１つまたは複数のプロセッサに、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定させる命令をさらに備える、請求項２７に記載の非一時的コンピュータ可読記憶媒体。
【請求項２９】
１つまたは複数のプロセッサに、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定させる命令をさらに備える、請求項２７に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、２０１４年１０月６日に出願された米国仮出願第６２／０６０，４１９号の利益を主張し、その内容全体が参照により本明細書に組み込まれる。
【０００２】
[0002]本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンスト・ビデオコーディング（ＡＶＣ：Advanced Video Coding）、ＩＴＵ−Ｔ  Ｈ．２６５、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などの、ビデオ圧縮技法を実装する。これらのビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）がビデオブロックに区分され得る。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロック（predictive block）をもたらす。
【０００５】
[0005]残差データ（residual data）は、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分（pixel differences）を表す。インターコーディングされるブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コーディングされたブロックと予測ブロックとの差分を示す。イントラコーディングされるブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差係数をもたらすことができ、その残差係数が次いで量子化され得る。
【発明の概要】
【０００６】
[0006]全般に、本開示は、現在のピクセルの対角方向に位置する（located diagonal to）ピクセルのパレットインデックスを現在のピクセルのパレットインデックスとして利用するための、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）のための技法に関する。たとえば、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされる（palette mode coded）こと（たとえば、水平方向の走査順序（horizontal scan order）の場合は上のピクセル（above pixel）からインデックスを複製すること（copying）、または垂直方向の走査順序（vertical scan order）の場合は左のピクセルからインデックスを複製すること）が可能ではなく、現在のピクセルがｃｏｐｙ  ｉｎｄｅｘモードでパレットモードコーディングされる（水平方向の走査順序の場合は左もしくは右のピクセルからインデックスを複製する、または垂直方向の走査順序の場合は上もしくは下のピクセルからインデックスを複製する）べきではない場合、ビデオコーダは、対角方向のピクセルのパレットインデックスに基づいて、現在のモードのパレットインデックスを決定することができる。
【０００７】
[0007]いくつかの例では、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではない場合でも、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでコーディングされるか、またはｃｏｐｙ  ｉｎｄｅｘモードでコーディングされるかを示すシンタックス要素を、ビデオエンコーダがシグナリングすることがあり、ビデオデコーダが受信することがある。この場合、現在のピクセルはｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることは可能ではないが、現在のピクセルが対角方向のピクセルのパレットインデックスを使用してパレットモードコーディングされるべきである場合、ビデオエンコーダは、ｃｏｐｙ  ａｂｏｖｅモードが復号のために使用されるべきであることを示すシンタックス要素をシグナリングすることができる。この場合、ビデオデコーダは、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードを使用して復号されることが可能ではないと決定することができ、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードを使用して復号されるべきであることを示すシンタックス要素が実際には、現在のピクセルが対角方向のピクセルのパレットインデックスを使用して復号されるべきであることを示していると、決定することができる。
【０００８】
[0008]一例では、本開示は、ビデオデータをコーディングする方法を説明し、この方法は、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、ビデオデータの現在のピクセルが、走査順序に対して現在のピクセルの直交方向に位置する（located perpendicular to）隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することと、現在のピクセルの対角方向に位置するビデオデータのピクセルのためのパレットインデックスに基づいて、現在のピクセルのためのパレットのパレットインデックスを決定することと、決定されたパレットインデックスに基づいて現在のピクセルをパレットモードコーディングすることとを備える。
【０００９】
[0009]一例では、本開示は、ビデオデータをコーディングするためのデバイスを説明し、このデバイスは、パレットのパレット値を記憶するように構成されるメモリと、ビデオコーダとを備える。ビデオコーダは、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、ビデオデータの現在のピクセルが、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、現在のピクセルの対角方向に位置するビデオデータのピクセルのためのパレットインデックスに基づいて、現在のピクセルのためのパレットのパレットインデックスを決定し、決定されたパレットインデックスに基づいて現在のピクセルをパレットモードコーディングするように構成される。
【００１０】
[0010]一例では、本開示は、ビデオデータをコーディングするためのデバイスを説明し、このデバイスは、ビデオデータの現在のピクセルが、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するための手段と、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、現在のピクセルの対角方向に位置するビデオデータのピクセルのためのパレットインデックスに基づいて、現在のピクセルのためのパレットのパレットインデックスを決定するための手段と、決定されたパレットインデックスに基づいて現在のピクセルをパレットモードコーディングするための手段とを備える。
【００１１】
[0011]一例では、本開示は、実行されると、ビデオデータをコーディングするためのデバイスの１つまたは複数のプロセッサに、ビデオデータの現在のピクセルが、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定させ、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、現在のピクセルの対角方向に位置するビデオデータのピクセルのためのパレットインデックスに基づいて、現在のピクセルのためのパレットのパレットインデックスを決定させ、決定されたパレットインデックスに基づいて現在のピクセルをパレットモードコーディングさせる、命令を記憶した非一時的コンピュータ可読記憶媒体を説明する。
【００１２】
[0012]本開示の１つまたは複数の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】[0013]本開示で説明される技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。
【図２】[0014]現在のピクセルが存在するライン（line）における走査順序が左から右であると仮定した、コーディングすべき現在のピクセルを示す概念図。
【図３】[0015]現在のピクセルの走査順序が左から右である、現在のピクセルのための対角方向の複製（diagonal copy）の例を示す概念図。
【図４】[0016]現在のピクセルのための対角方向の複製の別の例を示す概念図。
【図５】[0017]走査順序が右から左である場合の、現在のピクセルのための隣接位置（neighbor positions）を示す概念図。
【図６】[0018]本開示で説明される技法を実施し得る例示的なビデオエンコーダを示すブロック図。
【図７】[0019]本開示で説明される技法を実施し得る例示的なビデオデコーダを示すブロック図。
【図８】[0020]パレットベースのビデオコーディングのためのパレットエントリーを決定する例を示す概念図。
【図９】[0021]ピクセルのブロックのためのパレットに対するインデックスを決定する例を示す概念図。
【図１０】[0022]本開示で説明される１つまたは複数の例による、ビデオデータをコーディングする方法を示すフローチャート。
【詳細な説明】
【００１４】
[0023]本開示は、ビデオコーディングおよび圧縮のための技法について説明する。具体的には、本開示は、ビデオデータのパレットベースのコーディング（たとえば、パレットモードでブロックを予測またはコーディングすること）のための技法を説明する。従来のビデオコーディングでは、画像は、色調が連続的（continuous-tone）であり空間的に滑らかである自然な画像であると仮定される。これらの仮定に基づいて、ブロックベースの変換、フィルタリングなどのような様々なツールが開発されており、そのようなツールは、自然のコンテンツのビデオに対しては良好な性能を示している。
【００１５】
[0024]しかしながら、リモートデスクトップ、共同作業用ディスプレイおよびワイヤレスディスプレイのような適用例では、コンピュータで生成されたスクリーンコンテンツが、圧縮されるべき有力なコンテンツ（dominant content）であり得る。このタイプのコンテンツは、不連続な色調を有する傾向があり、鋭利なラインと高コントラストのオブジェクト境界とを特徴とする。連続的な色調および滑らかさという仮定はもはや当てはまらないことがあるので、従来のビデオコーディング技法は、そのコンテンツを圧縮するための効率的な方法ではないことがある。
【００１６】
[0025]本開示は、パレットベースのコーディングを説明し、これは、スクリーンで生成されたコンテンツのコーディングに特に適していることがある。しかしながら、本開示で説明される技法は、スクリーンで生成されたコンテンツのコーディングに限定されるものと見なされるべきではない。スクリーンで生成されるコンテンツのコーディングは、単なる例として説明される。本開示で説明される技法は、他のタイプのビデオデータにも適していることがある。
【００１７】
[0026]パレットコーディングでは、ビデオデータのある特定の領域が、比較的少数の色を有すると仮定する。ビデオコーダ（ビデオエンコーダまたはビデオデコーダ）は、特定のエリア（たとえば、所与のブロック）のビデオデータを表すための色のテーブルとして、いわゆる「パレット（palette）」をコーディング（符号化または復号）し得る。各ピクセルは、ピクセルの色を表すパレット中のエントリーと関連付けられ得る。たとえば、ビデオコーダは、ピクセル値をパレット中の適切な値に関連付けるインデックスをコーディングすることができる。したがって、パレットモードでは、パレットは、ブロックサンプルのための予測子として、または最終的な再構築されたブロックサンプルとして使用され得る、色成分値を表すインデックスによって番号を付けられたエントリーを含み得る。パレット中の各エントリーは、使用されている具体的な実装形態に応じて、１つの色成分（たとえば、ルーマ値）、２つの色成分（たとえば、２つのクロマ値）、または３つの色成分（たとえば、ＲＧＢ、ＹＵＶなど）を含み得る。
【００１８】
[0027]上記の例では、ビデオエンコーダは、ブロックのためのパレットを決定し、各ピクセルの値を表すためのパレット中のエントリーを見つけ（locate）、ピクセル値をパレットに関連付けるピクセルのためのインデックス値を用いてパレットを符号化することによって、ビデオデータのブロックを符号化することができる。ビデオデコーダは、符号化されたビットストリームから、ブロックのためのパレット、ならびにブロックのピクセルのためのインデックス値を取得することができる。ビデオデコーダは、ブロックのピクセル値を再構築するために、ピクセルのインデックス値をパレットのエントリーに関連付けることができる。上記の例は、パレットベースのコーディングの全般的な説明を与えることが意図されている。
【００１９】
[0028]いくつかの例では、パレットの１つまたは複数のエントリーは、別のパレット（たとえば、コーディングの間に以前に使用されたパレット）から予測され得る。たとえば、パレットは、予測子パレット（predictor palette）から複製されるエントリーを含み得る。予測子パレットは、パレットモードを使用して以前にコーディングされたブロックからの、または他の再構築されたサンプルからのパレットエントリーを含み得る。予測子パレット中の各エントリーに対して、そのエントリーが現在のパレットに複製される（フラグ＝１によって示される）かどうかを示すために、二進フラグが符号化されたビデオビットストリームに含まれ得る。それぞれのパレットエントリーのための一連の二進フラグは、二進パレット予測ベクトル（binary palette prediction vector）と呼ばれ得る。加えて、現在のパレットは、明示的にシグナリングされる新たなエントリーを含み得る。新たなエントリーの数もシグナリングされ得る。
【００２０】
[0029]いくつかの例では、ブロック中のサンプルは、水平方向のラスター走査順序を使用して処理され得る。しかしながら、垂直方向のラスター走査順序などの他の走査も適用可能である。走査パターンは、水平方向であっても垂直方向であっても、蛇状の横行走査（snake-like traverse scanning）であり得る。上記で言及されたように、パレットは、たとえば以前のブロックをコーディングするために使用されるパレットから予測される、予測されたパレットエントリーと、現在のブロックに対して固有であることがあり明示的にシグナリングされる新たなエントリーとを含むことがある。ビデオエンコーダおよびビデオデコーダは予測されるパレットエントリーと新たなパレットエントリーの数を知っていることがあり、それらの合計がブロックにおける総パレットサイズを示し得る。
【００２１】
[0030]いくつかの例では、パレットを用いてコーディングされたブロック中の各サンプルは、３つのモードのうちの１つに属し得る。たとえば、パレットモードＣＵの中のピクセルは、次のように詳述される３つのランモードを用いてコーディングされる。  
・Ｅｓｃａｐｅモード：このモードでは、サンプル値はパレットエントリーとしてパレット中に存在しない。量子化されたサンプル値が、すべての色成分に対して明示的にシグナリングされる。まず現在のピクセルがｅｓｃａｐｅモードにあることを示すために、たとえば切捨てられた二進符号（truncated binary code）を使用して所定のインデックス値がシグナリングされ、量子化されたピクセル値がそれに続く。最新の設計では、所定のインデックスは最大のパレットインデックスに１を足したものに等しい。  
・Ｃｏｐｙ  Ａｂｏｖｅモード：このモードでは、現在のサンプルのためのパレットエントリーインデックスは、水平方向の走査についてはブロック中の現在のサンプルのすぐ上に位置するサンプルから複製され、垂直方向の走査についてはブロック中の現在のサンプルのすぐ左に位置するサンプルから複製される。いくつかの態様によれば、複製の長さ（たとえば、ランレングス（run length））を指定するシンタックス要素だけがビットストリームにおいてシグナリングされる。  
・Ｃｏｐｙ  Ｌｅｆｔモード。このモードでは、パレットエントリーインデックスの値が、切捨てられた二進符号を使用して明示的にシグナリングされ、走査順序において後続するどれだけのピクセルがシグナリングされたピクセルと同じインデックスを共有するか（ランレングス）を指定する別のシンタックス要素が続く。いくつかの事例では、Ｃｏｐｙ  Ｌｅｆｔモードは、「Ｖａｌｕｅ」モードまたはＣｏｐｙ  Ｉｎｄｅｘモードとも呼ばれることがある。
【００２２】
[0031]本明細書で説明されるように、パレットエントリーインデックスは、パレットインデックスまたは単にインデックスと呼ばれ得る。これらの用語が、本開示の技法を説明するために交換可能に使用され得る。
【００２３】
[0032]また、上記は、ｃｏｐｙ  ａｂｏｖｅモードとｃｏｐｙ  ｌｅｆｔモード（ｃｏｐｙ  ｉｎｄｅｘモード）とを含むものとして、ランモードの例を説明する。たとえば、水平方向の左から右または右から左の走査のためのｃｏｐｙ  ａｂｏｖｅモードでは、現在のピクセルの上のピクセルのインデックスが、現在のピクセルのインデックスとして複製される。垂直方向の上から下または下から上の走査のためのｃｏｐｙ  ａｂｏｖｅモードでは、現在のピクセルの左のピクセルのインデックスが、現在のピクセルのインデックスとして複製される。この場合、「ｃｏｐｙ  ａｂｏｖｅモード」という語句は、すべての事例において上のピクセルのインデックスが複製されることを文字通りには意味しない。むしろ、水平方向の走査については、ｃｏｐｙ  ａｂｏｖｅモードにおいて、上のピクセルのインデックスが複製されるが、垂直方向の走査については、ｃｏｐｙ  ａｂｏｖｅモードであっても、現在のピクセルの左のピクセルのインデックスが複製される。
【００２４】
[0033]一般に、ｃｏｐｙ  ａｂｏｖｅモードは、走査順序に対して現在のピクセルの直交方向にある隣接ピクセルのパレットインデックスを使用する、パレットコーディングモードを意味する。たとえば、水平方向の走査では、現在のピクセルの上のピクセルのインデックスがｃｏｐｙ  ａｂｏｖｅモードにおいて使用され、現在のピクセルの上のピクセルは水平方向の走査に対して直交方向にある。垂直方向の走査では、現在のピクセルの左のピクセルのインデックスがｃｏｐｙ  ａｂｏｖｅモードにおいて使用され、現在のピクセルの左のピクセルは垂直方向の走査に対して直交方向にある。
【００２５】
[0034]水平方向の左から右への走査（horizontal left-to-right scan）のためのｃｏｐｙ  ｉｎｄｅｘモード（またはｃｏｐｙ  ｌｅｆｔモード）では、現在のピクセルの左のピクセルのインデックスが、現在のピクセルのインデックスとして複製される。しかし、水平方向の右から左への走査では、現在のピクセルの右のピクセルのインデックスが、ｃｏｐｙ  ｉｎｄｅｘモードのための現在のピクセルのインデックスとして複製される。垂直方向の上から下への走査（vertical top-to-bottom scan）では、現在のピクセルの上のピクセルのインデックスが、ｃｏｐｙ  ｉｎｄｅｘモードのための現在のピクセルのインデックスとして複製される。垂直方向の下から上への走査では、現在のピクセルの下のピクセルのインデックスが、ｃｏｐｙ  ｉｎｄｅｘモードのための現在のピクセルのインデックスとして複製される。したがって、ｃｏｐｙ  ａｂｏｖｅモードのように、ｃｏｐｙ  ｌｅｆｔモードまたはｃｏｐｙ  ｉｎｄｅｘモードは、どのピクセルからインデックスが複製されるかを示すための一般的な語句であり、ｃｏｐｙ  ｌｅｆｔモードという語句は、左のピクセルを使用することを文字通り要求するものと解釈されるべきではない。
【００２６】
[0035]一般に、ｃｏｐｙ  ｌｅｆｔモードまたはｃｏｐｙ  ｉｎｄｅｘモードは、走査順序において最後の近くにある隣接ピクセルからインデックスを複製することを指す。たとえば、ｃｏｐｙ  ｌｅｆｔモードまたはｃｏｐｙ  ｉｎｄｅｘモードでは、走査順序に平行な隣接ピクセルのインデックスが、現在のピクセルのインデックスを決定するために使用される。ある例として、水平方向の左から右への走査では、現在のピクセルの左のピクセルが、走査順序において最後の近くにある隣接ピクセルであり、左から右への走査順序に平行であり、現在のピクセルのためのインデックスを決定するために使用される。水平方向の右から左への走査では、現在のピクセルの右のピクセルが、走査順序において最後の近くにある隣接ピクセルであり、右から左への走査順序に平行であり、現在のピクセルのためのインデックスを決定するために使用される。垂直方向の上から下への走査では、現在のピクセルの上のピクセルが、走査順序において最後の近くにある隣接ピクセルであり、上から下への走査順序に平行であり、現在のピクセルのためのインデックスを決定するために使用される。垂直方向の下から上への走査では、現在のピクセルの下のピクセルが、走査順序において最後の近くにある隣接ピクセルであり、上から下への走査順序に平行であり、現在のピクセルのためのインデックスを決定するために使用される。
【００２７】
[0036]さらに、蛇状の横行走査では、水平方向の走査は最初の行では左から右への順序であることがあり、続いて次の行では右から左であり、その次の行では左から右の順序であり、その次の行では右から左の順序であり、以下同様であり得る。蛇状の横行走査では、垂直方向の走査は、最初の列では上から下への順序であり、続いて次の行では下から上であり、以下同様であり得る。したがって、水平方向の走査が左から右であるとき、ｃｏｐｙ  ｉｎｄｅｘモードは左のピクセルを使用するが、水平方向の走査が右から左であるときは、ｃｏｐｙ  ｉｎｄｅｘモードは右のピクセルを使用する。同様に、垂直方向の走査が上から下であるとき、ｃｏｐｙ  ｉｎｄｅｘモードは上部のピクセルを使用するが、垂直方向の走査が下から上であるときは、ｃｏｐｙ  ｉｎｄｅｘモードは下部のピクセルを使用する。これらの例において、ｃｏｐｙ  ｉｎｄｅｘモード（または場合によってはｃｏｐｙ  ｌｅｆｔモード）では、走査順序において最後の近くにある隣接ピクセルのパレットインデックスが、現在のピクセルのためのパレットインデックスとして複製される。
【００２８】
[0037]混乱を避けるために、本開示は、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するパレットコーディングモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）を指すために、「第１のモード」という用語を使用する。たとえば、走査順序が水平方向である場合、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルは上のピクセルである（たとえば、上のピクセルは現在のピクセルに対して垂直方向にあり、水平方向の走査に対して直交方向にある）。走査順序が垂直方向である場合、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルは左のピクセルである（たとえば、左のピクセルは現在のピクセルに対して水平方向にあり、垂直方向の走査に対して直交方向にある）。
【００２９】
[0038]本開示は、走査順序に対して現在のピクセルに沿って位置する（located in line with）隣接ピクセル（たとえば、走査順序において最後の近くにある隣接ピクセル）のパレットインデックスを使用するパレットコーディングモードを指すために、「第２のモード」という用語を使用する。たとえば、走査順序が水平方向である場合、走査順序に対して現在のピクセルに沿って位置する隣接ピクセルは（水平方向に左から右であるかまたは右から左であるかに基づいて）左のピクセルまたは右のピクセルである（たとえば、左または右のピクセルは現在のピクセルに対して水平方向にあり、水平方向の走査に沿っている）。この場合、第２のモードはｃｏｐｙ  ｌｅｆｔモード（またはｃｏｐｙ  ｒｉｇｈｔモード）である。走査順序が垂直方向である場合、走査順序に対して現在のピクセルに沿って位置する隣接ピクセルは（垂直方向に上から下であるかまたは下から上であるかに基づいて）上のピクセルまたは下のピクセルである（たとえば、上または下のピクセルは現在のピクセルに対して垂直方向にあり、垂直方向の走査に沿っている）。
【００３０】
[0039]既存のパレットコーディング技法にはいくつかの問題がある。たとえば、現在のピクセルは、以下で説明される要因により、第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）を使用してパレットモードコーディングされることを制限されることがある。現在のピクセルは第１のモードを使用してパレットモードコーディングされる（たとえば、符号化または復号される）のを制限されることがあるが、それでもビデオエンコーダは、現在のピクセルが第１のモードを使用してパレットモードコーディングされるか第２のモード（たとえば、ｃｏｐｙ  ｉｎｄｅｘモード）を使用してパレットモードコーディングされるかを示すシンタックス要素をシグナリングすることがある。
【００３１】
[0040]このシンタックス要素のシグナリングは、現在のピクセルがパレットモードコーディングされることが可能ではないときには、冗長または不必要であることがあり、帯域幅と処理時間とを無駄にする。たとえば、ビデオデコーダは、現在のピクセルが第１のモードを使用してパレットモードコーディングされることが可能ではないと決定することが可能であり得るが、それでもビットストリームは、現在のピクセルが第１のモードを使用してコーディングされるかどうかを示すシンタックス要素を含み、ビデオデコーダは依然としてこのシンタックス要素を構文解析する（parse）必要がある。
【００３２】
[0041]本開示で説明される例示的な技法では、現在のピクセルが第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）を使用してパレットモードコーディングされることが可能ではないとき、現在のピクセルのパレットモードコーディングのモードを第２のモード（または場合によってはビデオエンコーダがパレットインデックスをビデオデコーダにシグナリングするインデックスモード）に制限する代わりに、本技法は異なるパレットコーディングモードを利用する。たとえば、現在のピクセルが現在のピクセルの対角方向に位置するピクセル（たとえば、現在のピクセルと同じ行または列の中にないピクセル）のパレットインデックスに基づいて、パレットモードコーディングされ得る。
【００３３】
[0042]いくつかの例では、ビデオエンコーダおよびビデオデコーダは、対角方向のピクセルのパレットインデックスが現在のピクセルのパレットインデックスを決定するために使用されるべきであることを示すために、第１のモードまたは第２のモードを示すために使用されるのと同じシンタックス要素を再使用することができる。たとえば、以下で説明される様々な例示的な基準に基づいて、ビデオエンコーダおよびビデオデコーダはともに、それぞれ、現在のピクセルが第１のモードを使用してパレットモード符号化またはパレットモード復号されることが可能ではないと決定することができる。この場合、ビデオエンコーダはそれでも、現在のピクセルが第１のモードまたは第２のモードを使用して符号化されるかどうかを示すシンタックス要素をシグナリングすることがあり、より具体的には、現在のピクセルが第１のモードを使用して符号化されることを示すことがある。しかしながら、ビデオデコーダはすでに、現在のピクセルが第１のモードを使用して復号されることが可能ではないことを決定しているので、ビデオデコーダは、現在のピクセルが第１のモードを使用して復号されるべきであることをシンタックス要素が示しても、現在のピクセルが対角方向のピクセルのパレットインデックスに基づいて復号されるべきであると決定することができる。
【００３４】
[0043]本開示で説明される技法では、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）は、ビデオデータの現在のピクセルが、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用する第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）でパレットモードコーディング（たとえば、符号化または復号）されることが可能ではなく、走査順序に対して現在のピクセルに沿って位置する隣接ピクセルのパレットインデックスを使用する第２のモード（たとえば、ｃｏｐｙ  ｉｎｄｅｘモードまたはｃｏｐｙ  ｌｅｆｔモード）でパレットモードコーディングされるべきではないと、決定することができる。現在のピクセルが第１のモードでパレットモードコーディングされることが可能ではなく、第２のモードでパレットモードコーディングされるべきではないと決定したことに応答して、ビデオコーダは、現在のピクセルの対角方向に位置するビデオデータのピクセルのためのパレットインデックスに基づいて、現在のピクセルのためのパレットのパレットインデックスを決定することができる。
【００３５】
[0044]ビデオコーダは、決定されたパレットインデックスに基づいて、現在のピクセルをパレットモードコーディングすることができる。たとえば、ビデオコーダは、現在のピクセルのための決定されたパレットインデックスに基づいてパレットのパレット値を決定し、決定されたパレット値に基づいて現在のピクセルをコーディングすることができる。
【００３６】
[0045]図１は、本開示の技法を利用できる例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用される「ビデオコーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化またはビデオ復号を総称的に指し得る。ビデオコーディングシステム１０のビデオエンコーダ２０およびビデオデコーダ３０は、本開示で説明される様々な例に従ってパレットベースのビデオコーディングのための技法を実行するように構成され得る、デバイスの例を代表する。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットベースのコーディングまたは非パレットベースのコーディングのいずれかを使用して、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）におけるＣＵまたはＰＵなどの、ビデオデータの様々なブロックを選択的にコーディングするように構成され得る。非パレットベースのコーディングモードは、ＨＥＶＣドラフト１０によって規定される様々なコーディングモードなどの、様々なインター予測時間コーディングモード（inter-predictive temporal coding modes）またはイントラ予測空間コーディングモード（intra-predictive spatial coding modes）を指し得る。
【００３７】
[0046]いくつかの例では、パレットベースのコーディング技法は、１つまたは複数のビデオコーディング規格とともに使用するために構成され得る。たとえば、ＨＥＶＣは、ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）およびＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって開発された新しいビデオコーディング規格である。最近のＨＥＶＣテキスト仕様ドラフトは、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１２＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｌ１００３−ｖ１３．ｚｉｐ．から利用可能である、Ｂｒｏｓｓ他、「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ＨＥＶＣ）  Ｔｅｘｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｄｒａｆｔ  １０  （ｆｏｒ  ＦＤＩＳ  ＆  Ｃｏｎｓｅｎｔ）」、ＪＣＶＣ−Ｌ１００３＿ｖ１３、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ  ３およびＩＳＯ／ＩＥＣ  ＪＣＴ  １／ＳＣ  ２９／ＷＧ  １１のＪＣＴ−ＶＣの第１２回会合、２０１３年１月１４〜２３日（“ＨＥＶＣ  Ｄｒａｆｔ  １０”）に記載されている。ＨＥＶＣの別のドラフトは、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１２＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｌ１００３−ｖ１４．ｚｉｐから入手可能である。２０１５年４月付けのＨＥＶＣ規格は、ｈｔｔｐ：／／ｗｗｗ．ｉｔｕ．ｉｎｔ／ｒｅｃ／Ｔ−ＲＥＣ−Ｈ．２６５−２０１５０４−Ｉ／ｅｎから入手可能である。ＩＴＵ−Ｔ  Ｈ．２６５、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）は、「ＳＥＲＩＥＳ  Ｈ：  ＡＵＤＩＯＶＩＳＵＡＬ  ＡＮＤ  ＭＵＬＴＩＭＥＤＩＡ  ＳＹＳＴＥＭＳ，  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ｏｆ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ−Ｃｏｄｉｎｇ  ｏｆ  ｍｏｖｉｎｇ  ｖｉｄｅｏ」、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ、ＩＴＵ−Ｔ  Ｈ．２６５、２０１３年４月にも記述されている。
【００３８】
[0047]図１に示されるように、ビデオコーディングシステム１０は、ソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は、符号化されたビデオデータを生成する。したがって、ソースデバイス１２は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス１４は、ソースデバイス１２によって生成された符号化されたビデオデータを復号し得る。したがって、宛先デバイス１４はビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス１２および宛先デバイス１４は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【００３９】
[0048]ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ワイヤレス通信デバイス（たとえば、モバイルコンピューティングデバイス、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ）、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車載用コンピュータなどを含む、広範囲のデバイスを備え得る。
【００４０】
[0049]宛先デバイス１４は、チャネル１６を介してソースデバイス１２から符号化されたビデオデータを受信し得る。チャネル１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移動することが可能な１つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル１６は、ソースデバイス１２が符号化されたビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にする１つまたは複数の通信媒体を備え得る。この例では、ソースデバイス１２は、ワイヤレス通信プロトコルなどの通信規格に従って、符号化されたビデオデータを変調することができ、変調されたビデオデータを宛先デバイス１４に送信することができる。１つまたは複数の通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路などのワイヤレスおよび／または有線の通信媒体を含み得る。１つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク（たとえば、インターネット）などのパケットベースネットワークの一部を形成し得る。１つまたは複数の通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を容易にする、ルータ、スイッチ、基地局、または他の機器を含み得る。
【００４１】
[0050]別の例では、チャネル１６は、ソースデバイス１２によって生成された、符号化されたビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス１４は、たとえば、ディスクアクセスまたはカードアクセスを介して、記憶媒体にアクセスし得る。記憶媒体は、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化されたビデオデータを記憶するための他の適切なデジタル記憶媒体などの、様々なローカルにアクセスされるデータ記憶媒体を含み得る。
【００４２】
[0051]さらなる例では、チャネル１６は、ソースデバイス１２によって生成された符号化されたビデオデータを記憶するファイルサーバまたは別の中間ストレージデバイスを含み得る。この例では、送信先デバイス１４は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間ストレージデバイスに記憶された、符号化されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶することと、符号化されたビデオデータを宛先デバイス１４に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、およびローカルディスクドライブを含む。
【００４３】
[0052]宛先デバイス１４は、インターネット接続などの標準的なデータ接続を通して符号化されたビデオデータにアクセスし得る。例示的なタイプのデータ接続は、ファイルサーバに記憶されている符号化されたビデオデータにアクセスするのに適した、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、有線接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。ファイルサーバからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００４４】
[0053]本開示の技法は、ワイヤレスの用途または設定に限定されない。本技法は、オーバージエアテレビジョン放送（over-the-air television broadcasts）、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の用途などの様々なマルチメディア用途をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などの用途をサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
【００４５】
[0054]図１に示されるビデオコーディングシステム１０は例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間の任意のデータ通信を必ずしも含まないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データが、ローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスはデータを符号化し、メモリに記憶することができ、および／または、ビデオ復号デバイスはメモリからデータを取り出し、復号することができる。多くの例では、符号化および復号は、互いに通信しないが、メモリにデータを符号化し、および／またはメモリからデータを取り出して復号するだけであるデバイスによって実行される。
【００４６】
[0055]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。いくつかの例では、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ビデオソース１８は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および／もしくは、ビデオデータを生成するためのコンピュータグラフィックスシステム、またはビデオデータのそのようなソースの組合せを含み得る。
【００４７】
[0056]ビデオエンコーダ２０は、ビデオソース１８からのビデオデータを符号化し得る。いくつかの例では、ソースデバイス１２は、出力インターフェース２２を介して宛先デバイス１４に符号化されたビデオデータを直接送信する。他の例では、符号化されたビデオデータはまた、復号および／または再生のための宛先デバイス１４による後のアクセスのために記憶媒体またはファイルサーバ上に記憶され得る。
【００４８】
[0057]図１の例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。いくつかの例では、入力インターフェース２８は、受信機および／またはモデムを含む。入力インターフェース２８は、チャネル１６を介して、符号化されたビデオデータを受信することができる。ディスプレイデバイス３２は、宛先デバイス１４と一体化され得るか、またはその外部にあり得る。一般に、ディスプレイデバイス３２は、復号されたビデオデータを表示する。ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスを備え得る。
【００４９】
[0058]ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ハードウェアなどの、様々な適切な回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで部分的に実装される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェア用の命令を記憶することができ、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェア内でそれらの命令を実行することができる。（ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む）上記のいずれもが、１つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれることがあり、両者のいずれかがそれぞれのデバイス内の複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部として組み込まれることがある。
【００５０】
[0059]本開示は全般に、ビデオエンコーダ２０が、ある情報をビデオデコーダ３０のような別のデバイスに「シグナリングすること」または「送信すること」に言及することがある。「シグナリング」または「送信」という用語は、一般に、圧縮されたビデオデータを復号するために使用されるシンタックス要素および／または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムに起こり得る。代替的に、そのような通信は、符号化のときに符号化されたビットストリームの中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに起こり得るなど、ある時間の長さにわたって起こることがあり、これらの要素は次いで、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。
【００５１】
[0060]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、上記で言及されたＨＥＶＣ規格などの、ビデオ圧縮規格に従って動作する。基本的なＨＥＶＣ規格に加えて、ＨＥＶＣのためのスケーラブルビデオコーディング拡張、マルチビュービデオコーディング拡張、および３Ｄコーディング拡張を作成するための作業が進行中である。加えて、たとえば本開示で説明されるような、パレットベースのコーディングモードが、ＨＥＶＣ規格の拡張のために、または次世代のビデオコーディング規格のために提供され得る。いくつかの例では、パレットベースのコーディングのために本開示で説明される技法は、他のビデオコーディング規格または将来の規格に従って動作するように構成される、エンコーダおよびデコーダに適用され得る。したがって、ＨＥＶＣコーデックにおけるコーディングユニット（ＣＵ）または予測ユニット（ＰＵ）のコーディングのためのパレットベースのコーディングモードの適用が、例として説明される。
【００５２】
[0061]たとえば、ＨＥＶＣフレームワークに関して、例として、パレットベースのコーディング技法は、コーディングユニット（ＣＵ）モードとして使用されるように構成され得る。他の例では、パレットベースのコーディング技法は、ＨＥＶＣのフレームワークにおいてＰＵモードとして使用されるように構成され得る。したがって、ＣＵモードの状況において説明される以下の開示されるプロセスのすべてが、追加で、または代替的に、ＰＵに適用され得る。しかしながら、これらのＨＥＶＣベースの例は、本明細書で説明されるパレットベースのコーディング技法の制約または制限であると見なされるべきではなく、それは、そのような技法は、他の既存のシステム／規格もしくはまだ開発されていないシステム／規格とは独立に、またはそれらの一部として機能するように適用され得るからである。これらの場合、パレットコーディングのためのユニットは、正方形のブロック、長方形のブロック、または非長方形の領域であってもよい。
【００５３】
[0062]ＨＥＶＣおよび他のビデオコーディング規格では、ビデオシーケンスは一般に、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、ＳL、ＳCbおよびＳCrと表記される３つのサンプルアレイを含み得る。ＳLは、ルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳCbは、Ｃｂクロミナンスサンプルの２次元アレイである。ＳCrは、Ｃｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の例では、ピクチャは、モノクロであることがあり、ルーマサンプルのアレイしか含まないことがある。
【００５４】
[0063]ビデオエンコーダ２０は、ピクチャの符号化された表現を生成するために、コーディングツリーユニット（ＣＴＵ：coding tree unit）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの２つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造であり得る。コーディングツリーブロックは、サンプルのＮ×Ｎブロックであり得る。ＣＴＵは「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ：largest coding unit）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなどの他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスター走査順序で連続的に順序付けられた整数個のＣＴＵを含み得る。
【００５５】
[0064]コーディングされたＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するように、ＣＴＵのコーディングツリーブロックに対して４分木区分（quad-tree partitioning）を再帰的に実行することができ、したがって「コーディングツリーユニット」という名称である。コーディングブロックは、サンプルのＮ×Ｎブロックである。ＣＵは、ルーマサンプルアレイと、ＣｂサンプルアレイおよびＣｒサンプルアレイと、コーディングブロックのサンプルをコーディングするのに使用されるシンタックス構造とを有するピクチャの、ルーマサンプルの１つのコーディングブロックおよびクロマサンプルの２つの対応するコーディングブロックであり得る。ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックであり得る。ＣＵの予測ユニット（ＰＵ）は、ルーマサンプルの予測ブロック、ピクチャのクロマサンプルの２つの対応する予測ブロック、予測ブロックサンプルを予測するのに使用されるシンタックス構造であり得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックのために、予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成することができる。
【００５６】
[0065]ビデオエンコーダ２０は、ＰＵの予測ブロックを生成するためにイントラ予測またはインター予測を使用することができる。ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵと関連付けられたピクチャの復号されたサンプルに基づいてＰＵの予測ブロックを生成することができる。
【００５７】
[0066]ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵと関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０は、ＰＵの予測ブロックを生成するために単予測または双予測（uni-prediction or bi-prediction）を使用し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するために単予測を使用するとき、ＰＵは単一の動きベクトル（ＭＶ：motion vector）を有し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するために双予測を使用するとき、ＰＵは２つのＭＶを有し得る。
【００５８】
[0067]ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵの予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成した後、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックを生成することができる。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つの中のルーマサンプルと、ＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ２０は、ＣＵのＣｂ残差ブロックを生成することができる。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つの中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０は、ＣＵのＣｒ残差ブロックを生成することもできる。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つの中のＣｒサンプルと、ＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００５９】
[0068]さらに、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックと、Ｃｂ残差ブロックと、Ｃｒ残差ブロックとを、１つまたは複数のルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックに分解するために、４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロック、クロマサンプルの２つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造であり得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックと関連付けられ得る。ＴＵと関連付けられたルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。
【００６０】
[0069]ビデオエンコーダ２０は、ＴＵのルーマ変換ブロックに１回または複数回の変換を適用して、ＴＵのルーマ係数ブロックを生成することができる。係数ブロックは変換係数の２次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ２０は、ＴＵのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１回または複数回の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００６１】
[0070]係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後、ビデオエンコーダ２０は、係数ブロックを量子化することができる。量子化は一般に、変換係数を表すために使用されるデータの量を低減することを意図して変換係数が量子化され、さらなる圧縮を実現する処理を指す。ビデオエンコーダ２０が係数ブロックを量子化した後で、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）を実行し得る。ビデオエンコーダ２０は、エントロピー符号化されたシンタックス要素をビットストリームに出力することができる。
【００６２】
[0071]ビデオエンコーダ２０は、エントロピー符号化されたシンタックス要素を含むビットストリームを出力し得る。ビットストリームは、コーディングされたピクチャおよび関連するデータの表現を形成するビットのシーケンスを含み得る。ビットストリームは、一連のネットワーク抽象化レイヤ（ＮＡＬ：network abstraction layer）ユニットを備え得る。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、ローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）をカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプ符号を示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプ符号は、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの例では、ＲＢＳＰは０ビットを含む。
【００６３】
[0072]異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。たとえば、第１のタイプのＮＡＬユニットはピクチャパラメータセット（ＰＰＳ：picture parameter set）のためのＲＢＳＰをカプセル化することができ、第２のタイプのＮＡＬユニットはコーディングされたスライスのためのＲＢＳＰをカプセル化することができ、第３のタイプのＮＡＬユニットはＳＥＩのためのＲＢＳＰをカプセル化することができ、以下同様である。ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰとは対照的に）、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれ得る。
【００６４】
[0073]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ３０は、ビットストリームからシンタックス要素を復号するためにビットストリームを構文解析し得る。ビデオデコーダ３０は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築し得る。ビデオデータを再構築するためのプロセスは全般に、ビデオエンコーダ２０によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ３０は、現在のＣＵのＰＵの予測ブロックを決定するために、ＰＵの動きベクトル（ＭＶ）を使用することができる。加えて、ビデオデコーダ３０は、現在のＣＵのＴＵと関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在のＣＵのＴＵと関連付けられる変換ブロックを再構築するために、変換係数ブロックに対して逆変換を実行することができる。ビデオデコーダ３０は、現在のＣＵのＰＵの予測ブロックのサンプルを現在のＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在のＣＵのコーディングブロックを再構築することができる。ピクチャの各ＣＵのためのコーディングブロックを再構築することによって、ビデオデコーダ３０はピクチャを再構築することができる。
【００６５】
[0074]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットベースのコーディングを実行するように構成され得る。たとえば、パレットベースのコーディングでは、上記で説明されたイントラ予測コーディング技法またはインター予測コーディング技法を実行するのではなく、ビデオエンコーダ２０およびビデオデコーダ３０は、特定のエリア（たとえば、所与のブロック）のビデオデータを表すための色のテーブルとして、いわゆるパレットをコーディングすることができる。各ピクセルは、ピクセルの色を表すパレット中のエントリーと関連付けられ得る。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、ピクセル値をパレット中の適切な値に関連付けるインデックスをコーディングすることができる。
【００６６】
[0075]上記の例では、ビデオエンコーダ２０は、ブロックのためのパレットを決定し、各ピクセルの値を表すためのパレット中のエントリーを見つけ、ピクセル値をパレットに関連付けるピクセルのためのインデックス値を用いてパレットを符号化することによって、ビデオデータのブロックを符号化することができる。ビデオデコーダ３０は、符号化されたビットストリームから、ブロックのためのパレット、ならびにブロックのピクセルのためのインデックス値を取得することができる。ビデオデコーダ３０は、ブロックのピクセル値を再構築するために、ピクセルのインデックス値をパレットのエントリーに関連付けることができる。
【００６７】
[0076]パレットモードコーディング技法を使用して、ピクチャの１つまたは複数のブロックを、ビデオエンコーダ２０は符号化し、ビデオデコーダ３０は復号することができる。しかしながら、ピクチャ中のあらゆる単一のブロックがパレットモードコーディング技法を使用して符号化／復号されることは必要ではない。ピクチャのいくつかのブロックは、インター予測モード、イントラ予測モード、またはイントラブロック複製モード（intra-block copy mode）を使用して符号化／復号され得る。すべてのブロックがパレットモードコーディングを使用して予測されることも可能であり得る。
【００６８】
[0077]いくつかの例では、ビデオエンコーダ２０は、同じピクセル値（たとえば、同じパレットインデックス）を有する所与の走査順序において連続するピクセルの数を示す１つまたは複数のシンタックス要素を符号化し得る。ピクセル値の列（string）は、本明細書では「ラン（run）」と呼ばれることがある。ビデオデコーダ３０は、符号化されたビットストリームからランを示すシンタックス要素を取得し、パレットコーディング技法に従ったビデオコーディングの目的でそのデータを使用することができる。
【００６９】
[0078]上記で説明されたコーディングモードでは、値の「ラン」は一般に、一緒にコーディングされるピクセル値の列を指し得る。ランは一般に、ランに含まれ一緒にコーディングされる要素の数、たとえばランレングス（run length）に関連して説明され得る。説明を目的とする例では、所与の走査順序の２つの連続するピクセルが異なる値（たとえば、異なるパレットインデックス）を有する場合、ランレングスは０に等しい。所与の走査順序における２つの連続するピクセルが同じ値（たとえば、同じパレットインデックス）を有するが、その走査順序の３番目のピクセルが異なる値を有する場合、ランレングスは１に等しく、以下同様である。いくつかの例では、ランは同様の値のピクセル値を含み得る。たとえば、Ｉｎｄｅｘモードにおけるランは、（上記で述べられたような）同じエスケープ値を有する値の列を示し得る。他の例では、上記で述べられたように、Ｃｏｐｙ  ｆｒｏｍ  Ａｂｏｖｅモードにおけるランレングスは、上側の隣接ピクセルと同じ値を共有するピクセル値の列を示し得る。この例では、コーディングされている位置の上のサンプル値が現在のサンプルと同じであれば、ラン内の値は異なることがある（たとえば、現在の行がインデックス値１  ２  ２  ２  ４を有し、現在の行の上の行がインデックス値１  ２  ２  ２  ４を有する場合、ランは４である）。
【００７０】
[0079]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、マップの１つまたは複数のエントリーに対してラインの複製（line copying）を実行することができる。たとえば、ビデオエンコーダ２０は、マップ中の特定のエントリーに対するピクセル値が、その特定のエントリーの上のラインの中のエントリーに等しいことを示し得る。ビデオエンコーダ２０はまた、特定のエントリーの上のラインの中のエントリーに等しい、走査順序におけるインデックスの数を、ランとして示すことができる。この例では、ビデオエンコーダ２０またはビデオデコーダ３０は、規定された隣接するラインから、および、現在コーディングされているマップのラインに対する規定された数のエントリーから、インデックス値を複製することができる。
【００７１】
[0080]しかしながら、本開示で説明されるいくつかの例示的な技法では、ビデオエンコーダ２０およびビデオデコーダ３０は、現在のピクセルのすぐ上のエントリーからではなく、対角方向の隣接ピクセルから現在のピクセルのためのインデックス値を複製することができる。対角方向の隣接ピクセルは、現在のピクセルと同じ行および列の中にないが現在のピクセルに隣接するピクセル（たとえば、上右のピクセル、上左のピクセル、左上のピクセル（これは上右のピクセルと同じである）、および左下のピクセル）を指す。
【００７２】
[0081]ビデオエンコーダ２０およびビデオデコーダ３０は、ランのために対角方向の隣接ピクセルからインデックス値を複製することができる。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ランの現在のピクセルだけのために対角方向の隣接ピクセルからインデックス値を複製し、ラン中の他のピクセルのためにそれぞれの上部のピクセルからインデックス値を複製することができる。対角方向の隣接ピクセルのロケーション（location）は、走査順序（たとえば、水平方向または垂直方向の走査順序）、走査パターン（たとえば、蛇状の横行走査）、および／または走査方向（たとえば、左から右への走査、右から左への走査、上から下への走査、または下から上への走査）に基づき得る。いくつかの例では、現在のピクセルのためのパレットインデックス値は、インデックス値が水平方向の隣接ピクセルと異なるように、デフォルト値に基づき得る。
【００７３】
[0082]たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットコーディングのための様々なモードを実行するように構成され得る。１つの例はｃｏｐｙ  ａｂｏｖｅモードである。ｃｏｐｙ  ａｂｏｖｅモードでは、パレットインデックスが使用されるピクセルは、水平方向の走査では現在のピクセルの上にあり、または垂直方向の走査では現在のピクセルの左にあり得るので、本開示はｃｏｐｙ  ａｂｏｖｅモードを指すために「第１のモード」という用語を使用する。たとえば、第１のモードでは、現在のピクセルのためのパレットインデックスは、走査順序に対して現在のピクセルの直交方向にある隣接ピクセルのパレットインデックスから複製される（たとえば、上のピクセルは現在のピクセルに対して垂直方向にあり、水平方向の走査順序に対して直交方向にあり、または左のピクセルは現在のピクセルに対して水平方向にあり、垂直方向の走査順序に対して直交方向にある）。
【００７４】
[0083]別の例は、パレットモードコーディングされている現在のピクセルを含む行の水平方向の走査に対するｃｏｐｙ  ｌｅｆｔモードまたはｃｏｐｙ  ｒｉｇｈｔモードである。別の例は、パレットモードコーディングされている現在のピクセルを含む列の垂直方向の走査に対するｃｏｐｙ  ａｂｏｖｅモードまたはｃｏｐｙ  ｂｅｌｏｗモードである。本開示では、水平方向の走査に対するｃｏｐｙ  ｌｅｆｔモードもしくはｃｏｐｙ  ｒｉｇｈｔモード、または垂直方向の走査に対するｃｏｐｙ  ａｂｏｖｅモードもしくはｃｏｐｙ  ｂｅｌｏｗモードのいずれかを指すために、「第２のモード」またはｃｏｐｙ  ｉｎｄｅｘモードという用語が使用される。たとえば、第２のモードでは、現在のピクセルのためのパレットインデックスは、走査順序に対して現在のピクセルに沿っている隣接ピクセルのパレットインデックスから複製される（たとえば、左もしくは右のピクセルは現在のピクセルに対して水平方向にあり、水平方向の走査順序に沿っており、または上もしくは下のピクセルは現在のピクセルに対して垂直方向にあり、垂直方向の走査順序に沿っている）。言い換えると、第２のモードでは、現在のピクセルのためのパレットインデックスは、走査順序において最後の近くにある隣接ピクセルのパレットインデックスから複製される。
【００７５】
[0084]いくつかの例では、現在のピクセルは、第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）においてパレットモードコーディングされることが可能ではないことがある。たとえば、様々な要因により、第１のモードでのパレットモードコーディングが現在のピクセルに対して利用不可能になることがある。
【００７６】
[0085]図２は、現在のピクセルが存在するラインにおける走査順序が水平方向に左から右であると仮定した、コーディングすべき現在のピクセルを示す概念図である。図２に示されるように、Ｘがコーディングすべき現在のピクセルであると仮定する。また、Ｘの走査順序が左から右であることが仮定される。現在のパレット設計では、ピクセルＡのパレットインデックスがピクセルＢのパレットインデックスに等しい場合（およびいくつかの場合には、しかしすべての場合に限定されず、それらはｅｓｃａｐｅモードにない）、ピクセルＸのモードは「Ｃｏｐｙ  Ａｂｏｖｅ」ではあり得ない（たとえば、第１のモードでパレットモードコーディングされることが可能ではない）。
【００７７】
[0086]その理由は、Ｘのモードが「Ｃｏｐｙ  Ａｂｏｖｅ」である場合、「Ｃｏｐｙ  Ａｂｏｖｅ」が「Ｃｏｐｙ  Ａｂｏｖｅ」の後に来ないという規則により、ピクセルＢは「Ｃｏｐｙ  Ｌｅｆｔ」モード（たとえば、ｃｏｐｙ  ｉｎｄｅｘモード）であるべきである（たとえば、そうでなければならない）からである。しかしながら、Ｘが「Ｃｏｐｙ  Ａｂｏｖｅ」モードであるという仮定によって、ＸのインデックスはＡに等しく、したがってＢに等しい。したがって、ＸはピクセルＢの「Ｃｏｐｙ  Ｌｅｆｔ」ランへと含められるべきである。
【００７８】
[0087]現在のパレット設計では、上記の事例が発生する場合、Ｘのモードが「Ｃｏｐｙ  Ａｂｏｖｅ」ではない（すなわち、Ｘのモードが「Ｉｎｄｅｘ  Ｃｏｐｙ」である）ことが推測され得るとしても、ビデオエンコーダ２０は、ビデオデコーダ３０が受信するフラグをシグナリングし得る。たとえば、「Ｃｏｐｙ  Ａｂｏｖｅ」モードであるか「Ｃｏｐｙ  Ｌｅｆｔモード」であるかを示すために、上記の事例でもフラグをシグナリングするビデオエンコーダ２０が、「ＨＥＶＣ  Ｓｃｒｅｅｎ  Ｃｏｎｔｅｎｔ  Ｃｏｄｉｎｇ  Ｄｒａｆｔ  Ｔｅｘｔ  １」、ＪＣＴＶＣ−Ｒ１００５、Ｓｅｃｔｉｏｎ  ７．３．８．８、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］）において記述されている。Ｔｈｅ  ＪＣＴＶＣ−Ｒ１００５文書は、Ｊｏｓｈｉ他による、ＩＴＵ−Ｔ  ＳＧ  １６  ＷＰ  ３およびＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ  １１のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）、第１８回会議、札幌、日本、２０１４年６月３０日〜７月９日のためのものであり、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝９４７１から入手可能である。
【００７９】
[0088]上記で説明されたように、現在のピクセルの上の隣接ピクセルと、走査順序において現在のピクセルの最後の隣接ピクセルとの両方が、同じパレットインデックスを有する場合、現在のピクセルは、ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを制約される。ｃｏｐｙ  ａｂｏｖｅモードに対するこの制約は、水平方向の走査順序のためのものであり、現在のピクセルは左から右に走査されるラインの中に存在する。水平方向の走査順序が右から左であれば、現在のピクセルの上の隣接ピクセルと、走査順序において現在のピクセルの最後の隣接ピクセルとの両方が、同じパレットインデックスを有する場合、現在のピクセルは、ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを制約される。
【００８０】
[0089]垂直方向の走査順序では、現在のピクセルの左の隣接ピクセルと、走査順序において最後の隣接ピクセルとの両方が、同じパレットインデックスを有する場合、現在のピクセルは、ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを制約される。ｃｏｐｙ  ａｂｏｖｅモードに対するこの制約は、上から下への垂直方向のライン走査順序（vertical line scan order）のためのものである。垂直方向のライン走査順序が下から上であれば、現在のピクセルの左の隣接ピクセルと、走査順序において最後の隣接ピクセルとの両方が、同じパレットインデックスを有する場合、現在のピクセルは、ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを制約される。やはり、ｃｏｐｙ  ａｂｏｖｅモードは、走査順序に対して直交方向（例えば、水平方向の走査では上、垂直方向の走査では左）にある隣接ピクセルのパレットインデックスを複製することを指し、すべての事例において上のピクセルのパレットインデックスが複製されることを文字通り要求することに限定されるものと見なされるべきではない。
【００８１】
[0090]したがって、ビデオエンコーダ２０およびビデオデコーダ３０は、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセル（たとえば、水平方向の走査では上のピクセルまたは垂直方向の走査では左のピクセル）が、走査順序に対して現在のピクセルの最後の隣接ピクセルと同じパレットインデックスを有する場合、現在のピクセルは第１のモードでパレットモードコーディングされることが可能ではないと決定することができる。しかしながら、ビデオエンコーダ２０はそれでも、現在のピクセルが第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）でパレットモードコーディングされるか第２のモード（たとえば、ｃｏｐｙ  ｉｎｄｅｘモード）でパレットモードコーディングされるかを示す、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素をシグナリングすることがある。
【００８２】
[0091]現在のピクセルが第１のモードを使用して符号化されることが可能ではないとビデオエンコーダ２０が決定するときでも、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素をそのようにシグナリングすることは、冗長または不要であり得る。たとえば、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素は、現在のピクセルが第１のモードを使用して符号化されるか第２のモードを使用して符号化されるかを示すが、第１のモードは利用不可能であるとすでに決定されている。
【００８３】
[0092]本開示は、ピクセルのためのパレットインデックスを決定するための例示的な技法を説明する。いくつかの例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、現在のピクセルの対角方向に位置するピクセルのためのパレットインデックス値に基づいて現在のピクセルのためのパレットインデックス値を決定することができる（たとえば、対角方向のピクセルのためのパレットインデックス値が現在のピクセルのためのパレットインデックス値として複製される）。いくつかの例では、ビデオコーダは、デフォルト値に基づいて現在のピクセルのためのパレットインデックス値を決定することができ、デフォルト値は隣接ピクセルのパレットインデックス値に基づく。
【００８４】
[0093]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、対角方向のピクセルのパレットインデックスに基づいて現在のピクセルが符号化される、または復号されるべきであることを特定する（identify）ために、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素を使用することができる。たとえば、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］がフラグ（たとえば、０または１）であり、０という値が、現在のピクセルが第１のモードを使用してパレットモード符号化される（たとえば、水平方向の走査では上のピクセルから複製し、または垂直方向の走査では左のピクセルから複製する）ことを示し、１という値が、現在のピクセルが走査順序において最後の近くにある隣接ピクセルから複製する第２のモード（たとえば、水平方向の左から右への走査ではｃｏｐｙ  ｌｅｆｔ、水平方向の右から左への走査ではｃｏｐｙ  ｒｉｇｈｔ、垂直方向の上から下への走査ではｃｏｐｙ  ａｂｏｖｅ、または下から上への走査ではｃｏｐｙ  ｂｅｌｏｗ）を使用してパレットモード符号化されることを示すと、仮定する。また、現在のピクセルのためのパレットインデックスが対角方向のピクセルのパレットインデックスから決定されるべきであることをビデオエンコーダ２０が決定したと、仮定する。
【００８５】
[0094]ビデオエンコーダ２０とビデオデコーダ３０の両方が、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードで符号化または復号されることが可能ではないと決定しても、上記の理由で、ビデオエンコーダ２０は依然として、ｃｏｐｙ  ａｂｏｖｅモードであることを示すｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素フラグの値をシグナリングすることがあり、ビデオデコーダ３０は、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素フラグをｃｏｐｙ  ａｂｏｖｅモードのインジケータとして構文解析することがある。この場合、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードにおいてパレットモードコーディングされることをｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素フラグが示しても、ビデオデコーダ３０は、現在のピクセルが実際には対角方向のピクセルのパレットインデックスを使用してパレットモード復号されるべきであると決定することがある。
【００８６】
[0095]この例では、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素は、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないとき、冗長にはならない。むしろ、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素は、現在のピクセルのためのパレットインデックスが対角方向のピクセルからのものであることを示す。
【００８７】
[0096]ビデオデータのパレットベースのコーディングのための技法は、インター予測コーディングまたはイントラ予測コーディングのための技法などの、１つまたは複数の他のコーディング技法とともに使用され得る。たとえば、以下でより詳細に説明されるように、エンコーダもしくはデコーダ、または組み合わされたエンコーダ−デコーダ（コーデック）は、インター予測コーディングおよびイントラ予測コーディング、ならびにパレットベースのコーディングを実行するように構成され得る。
【００８８】
[0097]本開示では、上記で説明されたように、パレットインデックスを予測するための新たな対角方向の予測方法が説明される。このモードは、すでに存在する「Ｃｏｐｙ  Ａｂｏｖｅ」モード（たとえば、第１のモード）または「Ｃｏｐｙ  Ｌｅｆｔ」（Ｃｏｐｙ  Ｉｎｄｅｘとも呼ばれる）モード（たとえば、第２のモード）に加えて、選択またはシグナリングされ得る。加えて、または代替的に、対角方向の予測は、既存のピクセルモードのシグナリングが冗長であるいくつかの場合に使用され得る。
【００８９】
[0098]たとえば、上記の例はｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素が冗長である場合にそれを再使用することを説明するが、本開示で説明される技法はそのようには限定されないことがある。いくつかの例では、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素を再使用するのではなく、本技法は、現在のピクセルが対角方向のピクセルのパレットインデックスに基づいて復号されるべきであることを示すために、別個のシグナリングに依存することがある。
【００９０】
[0099]また、いくつかの事例では、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないというだけで、現在のピクセルが対角方向のピクセルのパレットインデックスに基づいてパレットモードコーディングされるべきであるとは限らない。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は各々、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、それぞれ決定することがある。しかしながら、ビデオエンコーダ２０は、現在のピクセルがインデックスモードでパレットモードコーディングされるべきである（たとえば、ビデオエンコーダ２０が現在のピクセルのパレットインデックスをシグナリングする場合）こと、または、ｃｏｐｙ  ｉｎｄｅｘモード（たとえば、水平方向の走査ではｃｏｐｙ  ｌｅｆｔもしくはｃｏｐｙ  ｒｉｇｈｔ、または垂直方向の走査ではｃｏｐｙ  ａｂｏｖｅもしくはｃｏｐｙ  ｂｅｌｏｗ）でパレットモードコーディングされるべきであること、を決定することがある。したがって、いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、ｃｏｐｙ  ｉｎｄｅｘモードでパレットモードコーディングされるべきではなく、ｉｎｄｅｘモードでパレットモードコーディングされるべきではないと決定したことに応答して、対角方向のピクセルのパレットインデックスに基づいて現在のピクセルのためのパレットインデックスを決定することができる。
【００９１】
[0100]上記で説明されたように、ビデオエンコーダ２０およびビデオデコーダ３０は、対角方向のピクセルのパレットインデックスに基づいて、現在のピクセルをパレットモード符号化またはパレットモード復号する（たとえば、対角方向のピクセルのパレットインデックスに基づいて現在のピクセルのパレットインデックスを決定する）ことができる。以下では、本開示で説明される対角方向の複製技法のための例示的な実装形態（異なる実装形態、または互いに連携して使用され得る複数の実装形態）を説明する。
【００９２】
[0101]いくつかの例では、図３に関して以下で説明されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、現在のピクセルのピクセルのランのためのパレットのパレットインデックスを決定することができる。いくつかの例では、図４に関して以下で説明されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、現在のピクセルのピクセルのランのためのパレットのパレットインデックスを決定することができる。
【００９３】
[0102]図３は、現在のピクセルの走査順序が左から右である、現在のピクセルのための対角方向の複製の例を示す概念図である。図３に示される一例では、ピクセルＸに対して、それの隣接ピクセルＡおよびＢがエスケープピクセルではなく、それらのパレットインデックスが等しく、Ｘが「Ｃｏｐｙ  Ａｂｏｖｅ」モードにある場合、Ｘのインデックスは、それの上のピクセルＡの代わりにそれの対角方向のピクセルＤから複製される。図３は、対角方向の複製方法のそのような例を示し、Ｘの走査順序はＢ→Ｘ→Ｇ→Ｈ…である。たとえば、図３では、ビデオエンコーダ２０またはビデオデコーダ３０は、現在のピクセルのラン中のそれぞれのピクセルの対角方向に位置するそれぞれのピクセルに基づいて（たとえば、ＸについてはＤから、ＧについてはＥから、ＨについてはＦから、以下同様）、現在のピクセルのラン中のピクセルのためのパレットインデックスを決定することができる。
【００９４】
[0103]図３は、走査順序が水平方向および左から右である場合を示す。この場合、対角方向のピクセルは現在のピクセルの右上である。しかしながら、対角方向のピクセルは必ずしも、現在のピクセルの右上のピクセルである必要はない。たとえば、図５に関してより詳細に説明されるように、右から左への水平方向の走査順序では、対角方向のピクセルは現在のピクセルの左上のピクセルである。
【００９５】
[0104]一般に、対角方向のピクセルは、現在のピクセルに隣接し（たとえば、隣接ピクセルと現在のピクセルとの間に、それらが隣接する角度において他のピクセルがない）、現在のピクセルと異なる列および行の中にあるピクセルであり得る。現在のピクセルの対角方向に位置するピクセルの例は、走査順序が水平方向に左から右であること基づく現在のピクセルの右上に位置する（located above-right）ピクセル、走査順序が水平方向に右から左であること基づく現在のピクセルの左上に位置する（located above-left）ピクセル、走査順序が垂直方向に下から上であること基づく左下部に位置する（located left-bottom）ピクセル、および、走査順序が垂直方向に上から下であること基づく左上部に位置する（located left-top）ピクセルを含む。
【００９６】
[0105]図４は現在のピクセルのための対角方向の複製の別の例を示す概念図である。図３のように常に複製する代わりに、ラン中の最初のピクセル（たとえば、最初のピクセルだけ）に対して対角方向から複製することを許可することが提案される。一例が図４に示される。代替的に、または加えて、ピクセルＸのためのパレットインデックス値は、右から左下へと対角方向に沿って（図４に示されないインデックスＢの上のロケーション）複製され得る。
【００９７】
[0106]図４では、ビデオエンコーダ２０またはビデオデコーダ３０は、現在のピクセルの対角方向に位置するピクセルに基づいて、ラン中の現在のピクセルだけのためのパレットインデックス値を決定することができ、ラン中のそれぞれの他のピクセルの対角方向に位置しないそれぞれのピクセルに基づいて（たとえば、ＤからＸ、ＤからＧ、ＥからＨ、以下同様）、ラン中の他のピクセルのためのパレットインデックス値を決定することができる。図４に示されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれの上のピクセルに基づいて、現在のピクセルのラン中のそれぞれのピクセルのためのパレットインデックスを決定することができる。垂直方向の走査が使用された場合、現在のピクセルのラン中のそれぞれのピクセルのためのパレットインデックスは、それぞれの左のピクセルに基づく。
【００９８】
[0107]したがって、図３に示される例では、ビデオエンコーダ２０またはビデオデコーダ３０は、現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、現在のピクセルのピクセルのランのためのパレットのパレットインデックスを決定するように構成され得る。図４に示される例では、ビデオエンコーダ２０またはビデオデコーダ３０は、現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、現在のピクセルのピクセルのランのためのパレットのパレットインデックスを決定するように構成され得る。
【００９９】
[0108]いくつかの例では、ビデオエンコーダ２０またはビデオデコーダ３０は、インデックスＤを参照することなく、ピクセルＸ（たとえば、現在のピクセル）のためのパレットインデックス値をデフォルトのパレットインデックス値に設定することができる。デフォルトのパレットインデックス値の一例は０である。いくつかの例では、ビデオエンコーダ２０またはビデオデコーダ３０は、デフォルト値がインデックスＡ（またはＢ）に等しくない場合、ピクセルＸのためのパレットインデックス値をデフォルト値（０など）に等しく設定することができる。それ以外の場合、ビデオエンコーダ２０またはビデオデコーダ３０は、ピクセルＸのためのパレットインデックス値を、たとえば以前のデフォルト値に（１などを）足したものまたは１を引いたものなどの、異なるデフォルト値に等しく設定することができる。一例として、ビデオエンコーダ２０またはビデオデコーダ３０は、インデックスＢが０に等しい場合、ピクセルＸのためのパレットインデックス値を１に等しく設定し、インデックスＢが０に等しくない場合、ピクセルＸのためのパレットインデックス値を０に等しく設定することができる。
【０１００】
[0109]いくつかの例では、ビデオエンコーダ２０またはビデオデコーダ３０は、インデックスＡ（またはＢ）が０に等しくない場合、ピクセルＸのためのパレットインデックス値をインデックスＡ（またはＢ）から１を引いたものに設定することができる。それ以外の場合、ビデオエンコーダ２０またはビデオデコーダ３０は、ピクセルＸのためのパレットインデックス値をインデックスＡ（またはＢ）に１を足したものに等しく設定することができ、またはその逆も同様であり、ここで、インデックス０の代わりに最大インデックスに対する確認（すなわち、インデックスに１を足したものが最大インデックスより大きくないことの確認）が行われる。一般に、インデックスＸは、左および上からの近隣パレットインデックスの関数として設定され得る。
【０１０１】
[0110]上記で説明されたように、対角方向は走査パターンに依存し得る。いくつかの例では、走査順序はＰＵまたはＣＵのすべての行または列に対して同じであり得るが、走査方向は行ごとまたは列ごとに異なり（different row-to-row or column-to-column）得る。
【０１０２】
[0111]たとえば、ビデオエンコーダ２０またはビデオデコーダ３０は、最初の行では左から右の順序、続いて次の行では右から左などの、または最初の列では上から下の順序、続いて次の列では下から上の順序などの、何らかの蛇状の横行走査を利用することができる。そのような例では、対角方向のピクセルの方向は、行における走査順序または行インデックスに依存し得る。一例では、対角方向は、すべての奇数の行インデックスに対しては左から右下であり、偶数の行インデックスに対しては右から左下であってよく、またはその逆であってよい。
【０１０３】
[0112]水平方向の走査に関して上記で説明された技法は、垂直方向の走査にも適用可能であり得る。たとえば、水平方向の走査順序について説明されたのと同様の方法が、垂直方向の走査、垂直方向の蛇状の走査などの、垂直の方向を向いた走査パターンに対して使用されることが可能であり、この場合、行が列によって置き換えられる。
【０１０４】
[0113]水平方向の走査と垂直方向の走査の両方が可能であるので、本開示は、走査順序に対して相対的な、ピクセルのロケーションとパレットコーディングモードとを説明する。たとえば、上記で説明されたように、第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）は、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用する、パレットコーディングモードである。
【０１０５】
[0114]第２のモード（たとえば、ｃｏｐｙ  ｉｎｄｅｘモード）は、走査順序に対して現在のピクセルに沿って位置する隣接ピクセル（たとえば、走査順序において最後の近くにある隣接ピクセル）のパレットインデックスを使用するパレットコーディングモードである。走査順序が水平方向の走査である場合、第２のモードでは、左または右のピクセルのパレットインデックスが複製される。走査順序が垂直方向の走査である場合、第２のモードでは、上または下のピクセルのパレットインデックスが複製される。
【０１０６】
[0115]図５は、走査順序が右から左である場合の、現在のピクセルのための隣接位置を示す概念図である。Ｘ（現在のピクセル）の走査順序が右から左である場合、それ自体（ピクセルＸ）とそれの近隣との間の相対的な配置が図５に示されている。この場合にも、上記で説明された対角方向の複製方法が直接適用され得る。たとえば、図３と同様に、いくつかの例では、現在のピクセルのラン中のピクセルおよび現在のピクセルのためのパレットのパレットインデックスは、対角方向のピクセルのそれぞれのパレットインデックスである（ピクセルＸのためのパレットインデックスはピクセルＤからのものであり、ピクセルＧのためのパレットインデックスはピクセルＥからのものであり、ピクセルＨのためのパレットインデックスはピクセルＦからのものである）。いくつかの例では、図４と同様に、現在のピクセルのためのパレットのパレットインデックスは、対角方向のピクセルからのものであり、および現在のピクセルのラン中のピクセルに対して、パレットインデックスは、対角方向に位置しないピクセル（たとえば、上のピクセル）からのものである。たとえば、図５において破線矢印で示されるように、ピクセルＸのためのパレットインデックスはピクセルＤからのものであり、ピクセルＧのためのパレットインデックスはピクセルＤからのものであり、ピクセルＨのためのパレットインデックスはピクセルＥからのものである。
【０１０７】
[0116]図３、図４、および図５の例などのいくつかの例では、現在のピクセルの対角方向に位置するピクセルに基づいてブロックの現在のピクセルのためのパレットインデックス値を決定するために、ビデオエンコーダ２０およびビデオデコーダ３０は、複数の隣接ピクセルのためのパレットインデックス値が同じである（たとえば、隣接ピクセルＡおよびＢがエスケープピクセルではなく、それらのインデックス値が等しい）という決定に基づいて、現在のピクセルの対角方向に位置するピクセルに基づいてブロックの現在のピクセルのためのパレットインデックス値を決定するように構成され得る。図３、図４、および図５の例などのいくつかの例では、現在のピクセルの対角方向に位置するピクセルに基づいてブロックの現在のピクセルのためのパレットインデックス値を決定するために、ビデオエンコーダ２０およびビデオデコーダ３０は、Ｃｏｐｙ  Ｄｉａｇｏｎａｌモードが有効にされているという決定、またはＣｏｐｙ  Ａｂｏｖｅモードが現在のピクセルに対して有効にされているという決定に基づいて、および現在のピクセルの対角方向に位置するピクセルに基づいてブロックの現在のピクセルのためのパレットインデックス値を決定するように構成され得る。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、新しいｃｏｐｙ  ｄｉａｇｏｎａｌモードを利用し得る。別の例として、現在のピクセルがＣｏｐｙ  Ａｂｏｖｅモードにあるべきである場合、ビデオエンコーダ２０およびビデオデコーダ３０は、（たとえば、（一例として）ＡおよびＢなどの複数の隣接ピクセルのためのインデックス値が同じであり、Ｃｏｐｙ  Ａｂｏｖｅモードが現在のピクセルＸに対して有効にされている状況において）対角方向のピクセルからパレットインデックス値を複製することができる。
【０１０８】
[0117]いくつかの例では、ビデオエンコーダ２０が、その後に「Ｃｏｐｙ  Ａｂｏｖｅ」が続く「Ｃｏｐｙ  Ａｂｏｖｅ」でビットストリームを生成しない（すなわち、Ｂが「Ｃｏｐｙ  Ａｂｏｖｅ」モードにある場合、上記の対角方向の複製方法は無効にされる）という、ビデオエンコーダ２０に対する規範的な制約が課されることがある。そのような例では、対角方向の複製が利用可能ではないのでｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］の冗長なシグナリングはない可能性があり、したがって、ビデオエンコーダ２０は、現在のピクセルが第１のモードでパレットモードコーディングされることが可能ではない場合、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］シンタックス要素をシグナリングすらしないことがある。
【０１０９】
[0118]いくつかの場合、追加の制約により、ピクセルのパレットインデックスが対角方向のピクセルのパレットインデックス以外の何らかの値になることがある。上記の例は、現在のピクセルに適用されるものとして技法を説明した。混乱を避けるために、以下の説明は第２のピクセルに基づく。たとえば、これらの例ではピクセルＸは第２のピクセルであると仮定する。
【０１１０】
[0119]ビデオエンコーダ２０またはビデオデコーダ３０は、第２のピクセルが第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）でパレットモードコーディングされることが可能ではないと決定することができ、走査順序に対して第２のピクセルの直交方向に位置する隣接ピクセル、および走査順序に対して第２のピクセルに沿って位置する隣接ピクセル、と同じパレットインデックスを、第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有するとさらに決定することができる。たとえば、ピクセルＸが第２のピクセルであり、ビデオエンコーダ２０またはビデオデコーダ３０がピクセルＡのためのパレットインデックスがピクセルＢのパレットインデックスに等しく、ピクセルＢのパレットインデックスがピクセルＤのパレットインデックスに等しいと決定することができることを仮定する。
【０１１１】
[0120]この場合、第２のピクセルが第１のモードでパレットモードコーディングされることが可能ではなく、走査順序に対して第２のピクセルの直交方向に位置する隣接ピクセル、および走査順序に対して第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定したことに応答して、ビデオエンコーダ２０またはビデオデコーダ３０は、デフォルトのパレットインデックスに基づいて、第２のピクセルのためのパレットのパレットインデックスを決定することができる。ビデオエンコーダ２０またはビデオデコーダ３０は、第２のピクセルのための決定されたパレットインデックスに基づいてパレット値を決定し、決定されたパレット値に基づいて第２のピクセルをパレットモードコーディングすることができる。
【０１１２】
[0121]たとえば、ピクセルインデックスＡ＝＝インデックスＢ＝＝インデックスＤである場合、ビデオエンコーダ２０またはビデオデコーダ３０は、ピクセルＤのインデックスの代わりに、対角方向の複製において事前に定められた値をＸに割り当てる。ある例として、ピクセルインデックスＡ＝＝Ｂ＝＝Ｄである場合、Ｄのインデックスが０に等しい場合、ビデオエンコーダ２０またはビデオデコーダ３０は、対角方向の複製においてインデックス１をＸに割り当てる。Ｄのインデックスが０に等しくない場合、ビデオエンコーダ２０またはビデオデコーダ３０は、対角方向の複製においてインデックス０をＸに割り当てることができ、または、デフォルトのパレットインデックス値のための方法の１つまたは複数が上記で説明されたように使用される。
【０１１３】
[0122]ピクセルのパレットインデックスを対角方向のピクセルのパレットインデックス以外の何らかの値にさせ得る追加の制約の別の例として、ビデオエンコーダ２０またはビデオデコーダ３０は、第２のピクセルが第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）でパレットモードコーディングされることが可能ではないと決定することがあり、第２のピクセルがブロック境界（たとえば、ＰＵまたはＣＵの境界）に位置するとさらに決定することがある。この場合、第２のピクセルが第１のモードでパレットモードコーディングされることが可能ではなく、ブロック境界に位置すると決定したことに応答して、ビデオエンコーダ２０またはビデオデコーダ３０は、デフォルトのパレットインデックスに基づいて第２のピクセルのためのパレットのパレットインデックスを決定することができる。ビデオエンコーダ２０またはビデオデコーダ３０は、第２のピクセルのための決定されたパレットインデックスに基づいてパレット値を決定し、決定されたパレット値に基づいて第２のピクセルをパレットモードコーディングすることができる。
【０１１４】
[0123]たとえば、ピクセルＤがＸと一緒に用いられる（collocate with）（すなわち、Ｘが最初のラインを除くラインの始点である（ラインインデックスは０から開始する））ときの境界条件では、対角方向の複製方法は無効にされることがあり、または、ビデオエンコーダ２０もしくはビデオデコーダ３０は、上記で説明されたデフォルトのパレットインデックス値のための方法の１つまたは複数を使用して、Ｂのインデックス値と異なる事前に定められた値を割り当てることができる。たとえば、ビデオエンコーダ２０またはビデオデコーダ３０は、ピクセルインデックスＡ＝＝インデックスＢ＝＝インデックスＤである場合から第２のピクセルが境界のピクセルである場合まで、上記で説明された技法と同じ技法を利用することができる。
【０１１５】
[0124]図６は、本開示の技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。図６は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、ＨＥＶＣコーディングの文脈において、ビデオエンコーダ２０を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１１６】
[0125]ビデオエンコーダ２０は、本開示で説明される様々な例に従ってパレットベースのビデオコーディングのための技法を実行するように構成され得る、デバイスの例を代表する。たとえば、ビデオエンコーダ２０は、パレットベースのコーディングまたは非パレットベースのコーディングのいずれかを使用して、ＨＥＶＣコーディングにおけるＣＵまたはＰＵなどの、ビデオデータの様々なブロックを選択的にコーディングするように構成され得る。非パレットベースのコーディングモードは、ＨＥＶＣドラフト１０によって規定される様々なコーディングモードなどの、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。
【０１１７】
[0126]ビデオエンコーダ２０は、一例では、ピクセル値を示すエントリーを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションのピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロック中のピクセルロケーションの少なくともいくつかをパレット中の選択されたピクセル値にそれぞれ対応するパレット中のエントリーと関連付ける情報をシグナリングするように構成され得る。シグナリングされた情報は、ビデオデータを復号するためにビデオデコーダ３０によって使用され得る。
【０１１８】
[0127]図６の例では、ビデオエンコーダ２０は、予測処理ユニット１００と、ビデオデータメモリ１０１と、残差生成ユニット１０２と、変換処理ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換処理ユニット１１０と、再構築ユニット１１２と、フィルタユニット１１４と、復号ピクチャバッファ（decoded picture buffer）１１６と、エントロピー符号化ユニット１１８とを含む。予測処理ユニット１００は、インター予測処理ユニット１２０と、イントラ予測処理ユニット１２６とを含む。インター予測処理ユニット１２０は、動き推定ユニットと、動き補償ユニットと（図示されず）を含む。ビデオエンコーダ２０はまた、本開示で説明されるパレットベースのコーディング技法の様々な態様を実行するように構成される、パレットベースの符号化ユニット１２２を含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能コンポーネントを含み得る。
【０１１９】
[0128]ビデオデータメモリ１０１は、ビデオエンコーダ２０のコンポーネントによって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ１０１内に記憶されるビデオデータは、たとえば、ビデオソース１８から取得され得る。復号ピクチャバッファ１１６は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１０１および復号ピクチャバッファ１１６は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）（同期ＤＲＡＭ（ＳＤＲＡＭ）を含む）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ１０１および復号ピクチャバッファ１１６は、同じメモリデバイスまたは別々のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ１０１は、ビデオエンコーダ２０の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
【０１２０】
[0129]ビデオエンコーダ２０は、ビデオデータを受信することができる。ビデオエンコーダ２０は、ビデオデータのピクチャのスライス内の各ＣＴＵを符号化することができる。ＣＴＵの各々は、ピクチャの等しいサイズのルーマコーディングツリーブロック（ＣＴＢ）と、対応するＣＴＢとに関連付けられ得る。ＣＴＵを符号化することの一部として、予測処理ユニット１００は、４分木区分を実行して、ＣＴＵのＣＴＢを徐々により小さいブロックに分割することができる。より小さいブロックはＣＵのコーディングブロックであり得る。たとえば、予測処理ユニット１００は、ＣＴＵと関連付けられたＣＴＢを４つの等しいサイズのサブブロックに区画することができ、サブブロックの１つまたは複数を４つの等しいサイズのサブブロックに区画することができ、以下同様である。
【０１２１】
[0130]ビデオエンコーダ２０は、ＣＵの符号化された表現（すなわち、コーディングされたＣＵ）を生成するために、ＣＴＵのＣＵを符号化することができる。ＣＵを符号化することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵの間でＣＵと関連付けられたコーディングブロックを区分化することができる。したがって、各ＰＵは、ルーマ予測ブロックおよび対応するクロマ予測ブロックと関連付けられ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートすることができる。上記で示されたように、ＣＵのサイズはＣＵのルーマコーディングブロックのサイズを指すことがあり、ＰＵのサイズはＰＵのルーマ予測ブロックのサイズを指すことがある。特定のＣＵのサイズを２Ｎ×２Ｎと仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測の場合は２Ｎ×２ＮまたはＮ×ＮのＰＵサイズをサポートすることができ、インター予測の場合は２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称のＰＵサイズをサポートすることができる。ビデオエンコーダ２０およびビデオデコーダ３０はまた、インター予測の場合は２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズのための非対称区分をサポートすることができる。
【０１２２】
[0131]インター予測処理ユニット１２０は、ＣＵの各ＰＵに対してインター予測を実行することによって、ＰＵのための予測データを生成することができる。ＰＵのための予測データは、ＰＵの予測ブロックとＰＵの動き情報とを含み得る。インター予測処理ユニット１２０は、ＰＵがＩスライス中にあるか、Ｐスライス中にあるか、またはＢスライス中にあるかに応じて、ＣＵのＰＵに対して異なる動作を実行することができる。Ｉスライス中では、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測処理ユニット１２０は、ＰＵに対してインター予測を実行しない。したがって、Ｉモードで符号化されたブロックでは、予測されるブロックは、同じフレーム内の前に符号化された隣接ブロックからの空間的予測を使用して形成される。
【０１２３】
[0132]ＰＵがＰスライス中にある場合、インター予測処理ユニット１２０の動き推定ユニットは、ＰＵの参照領域について参照ピクチャのリスト（たとえば、「ＲｅｆＰｉｃＬｉｓｔ０」）中の参照ピクチャを探索することができる。ＰＵの参照領域は、ＰＵのサンプルブロックに最も密接に対応するサンプルブロックを含む参照ピクチャ内の領域であり得る。動き推定ユニットは、ＰＵの参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０中での位置（position）を示す参照インデックスを生成することができる。加えて、動き推定ユニットは、ＰＵのコーディングブロックと、参照領域と関連付けられた参照ロケーション（reference location）との間の空間変位を示すＭＶを生成することができる。たとえば、ＭＶは、現在の復号されたピクチャ中の座標から参照ピクチャ中の座標までのオフセットを提供する２次元ベクトルであり得る。動き推定ユニットは、ＰＵの動き情報として、参照インデックスとＭＶとを出力することができる。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに基づいて、ＰＵの予測ブロックを生成することができる。
【０１２４】
[0133]ＰＵがＢスライス中にある場合、インター予測処理ユニット１２０の動き推定ユニットは、ＰＵについての単予測または双予測を実行することができる。ＰＵについての単予測を実行するために、動き推定ユニットは、ＰＵの参照領域についてＲｅｆＰｉｃＬｉｓｔ０または第２の参照ピクチャリスト（「ＲｅｆＰｉｃＬｉｓｔ１」）の参照ピクチャを探索することができる。動き推定ユニットは、ＰＵの動き情報として、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照インデックスと、ＰＵの予測ブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示すＭＶと、参照ピクチャがＲｅｆＰｉｃＬｉｓｔ０中にあるかＲｅｆＰｉｃＬｉｓｔ１中にあるかを示す１つまたは複数の予測方向インジケータとを出力することができる。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成することができる。
【０１２５】
[0134]ＰＵについての双方向インター予測を実行するために、動き推定ユニットは、ＰＵの参照領域についてＲｅｆＰｉｃＬｉｓｔ０中の参照ピクチャを探索することができ、またＰＵの別の参照領域についてＲｅｆＰｉｃＬｉｓｔ１中の参照ピクチャを探索することができる。動き推定ユニットは、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１中での位置を示す参照ピクチャインデックスを生成することができる。加えて、動き推定ユニットは、参照領域と関連付けられる参照ロケーションとＰＵのサンプルブロックとの間の空間変位を示すＭＶを生成することができる。ＰＵの動き情報は、ＰＵの参照インデックスとＭＶとを含み得る。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成することができる。
【０１２６】
[0135]本開示の様々な例によれば、ビデオエンコーダ２０は、パレットベースのコーディングを実行するように構成され得る。ＨＥＶＣフレームワークに関して、例として、パレットベースのコーディング技法は、コーディングユニット（ＣＵ）モードとして使用されるように構成され得る。他の例では、パレットベースのコーディング技法は、ＨＥＶＣのフレームワークにおいてＰＵモードとして使用されるように構成され得る。したがって、ＣＵモードの状況において（本開示全体で）本明細書で説明される開示されるプロセスのすべてが、追加で、または代替的に、ＰＵに適用され得る。しかしながら、これらのＨＥＶＣベースの例は、本明細書で説明されるパレットベースのコーディング技法の制約または制限であると見なされるべきではなく、それは、そのような技法は、他の既存のシステム／規格もしくはまだ開発されていないシステム／規格とは独立に、またはそれらの一部として機能するように適用され得るからである。これらの場合、パレットコーディングのためのユニットは、正方形のブロック、長方形のブロック、または非長方形の領域であってもよい。
【０１２７】
[0136]パレットベースの符号化ユニット１２２は、たとえば、パレットベースの符号化モードがたとえばＣＵまたはＰＵのために選択されるとき、パレットベースの符号化を実行することができる。たとえば、パレットベースの符号化ユニット１２２は、ピクセル値を示すエントリーを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置のピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロックの位置の少なくともいくつかを選択されたピクセル値にそれぞれ対応するパレット中のエントリーと関連付ける情報をシグナリングするように構成され得る。様々な機能がパレットベースの符号化ユニット１２２によって実行されるものとして説明されるが、そのような機能のいくつかまたはすべては、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
【０１２８】
[0137]イントラ予測処理ユニット１２６は、ＰＵに対してイントラ予測を実行することによって、ＰＵ用の予測データを生成することができる。ＰＵのための予測データは、ＰＵの予測ブロックと様々なシンタックス要素とを含み得る。イントラ予測処理ユニット１２６は、Ｉスライス、Ｐスライス、およびＢスライスの中のＰＵに対してイントラ予測を実行し得る。
【０１２９】
[0138]ＰＵに対してイントラ予測を実行するために、イントラ予測処理ユニット１２６は、ＰＵの予測データの複数のセットを生成するために、複数のイントラ予測モードを使用することができる。イントラ予測処理ユニット１２６は、ＰＵの予測ブロックを生成するために、隣接ＰＵのサンプルブロックからのサンプルを使用し得る。隣接ＰＵは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右上（above and to the right）、左上（above and to the left）、または左にあり得る。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モード、たとえば３３個の方向のイントラ予測モードを使用することができる。いくつかの例では、イントラ予測モードの数はＰＵと関連付けられた領域のサイズに依存し得る。
【０１３０】
[0139]予測処理ユニット１００は、ＰＵのためにインター予測処理ユニット１２０によって生成された予測データ、またはＰＵのためにイントラ予測処理ユニット１２６によって生成された予測データの中から、ＣＵのＰＵのための予測データを選択することができる。いくつかの例では、予測処理ユニット１００は、予測データのセットのレート／歪み測定基準（rate/distortion metrics）に基づいて、ＣＵのＰＵの予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれ得る。
【０１３１】
[0140]残差生成ユニット１０２は、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック、ならびにＣＵのＰＵの選択された予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックに基づいて、ＣＵのルーマ残差ブロックと、Ｃｂ残差ブロックと、Ｃｒ残差ブロックとを生成することができる。たとえば、残差生成ユニット１０２は、残差ブロックの中の各サンプルが、ＣＵのコーディングブロックの中のサンプルと、ＣＵのＰＵの対応する選択された予測ブロックの中の対応するサンプルとの差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０１３２】
[0141]変換処理ユニット１０４は、ＣＵと関連付けられる残差ブロックをＣＵのＴＵと関連付けられる変換ブロックに区分するために、４分木区分を実行することができる。したがって、ＴＵは、ルーマ変換ブロックおよび２つのクロマ変換ブロックと関連付けられ得る。ＣＵのＴＵのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差４分木（residual quad-tree）」（ＲＱＴ）として知られる４分木構造は、領域の各々と関連付けられたノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。
【０１３３】
[0142]変換処理ユニット１０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵのための変換係数ブロックを生成し得る。変換処理ユニット１０４は、ＴＵと関連付けられた変換ブロックに様々な変換を適用することができる。たとえば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向性変換（a directional transform）、または概念的に同様の変換を変換ブロックに適用することができる。いくつかの例において、変換処理ユニット１０４は変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
【０１３４】
[0143]量子化ユニット１０６は、係数ブロック中の変換係数を量子化することができる。量子化プロセスは、変換係数の一部またはすべてと関連付けられたビット深度（bit depth）を低減し得る。たとえば、ｎビットの変換係数は量子化の間にｍビットの変換係数へと切り捨てられてよく、ただし、ｎはｍよりも大きい。量子化ユニット１０６は、ＣＵと関連付けられた量子化パラメータ（ＱＰ：quantization parameter）値に基づいて、ＣＵのＴＵと関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵと関連付けられたＱＰ値を調整することによって、ＣＵと関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は、情報の喪失をもたらすことがあり、したがって、量子化された変換係数は、元の係数よりも精度が低いことがある。
【０１３５】
[0144]逆量子化ユニット１０８および逆変換処理ユニット１１０は、それぞれ、係数ブロックから残差ブロックを再構築するために、係数ブロックに逆量子化および逆変換を適用することができる。再構築ユニット１１２は、ＴＵと関連付けられる再構築された変換ブロックを生成するために、再構築された残差ブロックを、予測処理ユニット１００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加算することができる。このようにＣＵの各ＴＵのための変換ブロックを再構築することによって、ビデオエンコーダ２０は、ＣＵのコーディングブロックを再構築することができる。
【０１３６】
[0145]フィルタユニット１１４は、ＣＵと関連付けられたコーディングブロックの中のブロッキングアーティファクトを低減するために、１つまたは複数のデブロッキング動作を実行し得る。復号ピクチャバッファ１１６は、フィルタユニット１１４が、再構築されたコーディングブロックに対して１つまたは複数のデブロッキング動作を実行した後、再構築されたコーディングブロックを記憶することができる。インター予測処理ユニット１２０は、他のピクチャのＰＵに対してインター予測を実行するために、再構築されたコーディングブロックを含む参照ピクチャを使用することができる。加えて、イントラ予測処理ユニット１２６は、ＣＵと同じピクチャ中の他のＰＵに対してイントラ予測を実行するために、復号ピクチャバッファ１１６中の再構築されたコーディングブロックを使用することができる。
【０１３７】
[0146]エントロピー符号化ユニット１１８は、ビデオエンコーダ２０の他の機能コンポーネントからデータを受信し得る。たとえば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受け取ることができ、予測処理ユニット１００からシンタックス要素を受け取ることができる。エントロピー符号化ユニット１１８は、このデータに対して１つまたは複数のエントロピー符号化演算を実行して、エントロピー符号化されたデータを生成することができる。たとえば、エントロピー符号化ユニット１１８は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）演算、ＣＡＢＡＣ演算、変数−変数（Ｖ２Ｖ：variable-to-variable）レングスコーディング（length coding）演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング演算、指数ゴロム符号化演算（Exponential-Golomb encoding operation）、または別のタイプのエントロピー符号化演算をそのデータに対して実行し得る。ビデオエンコーダ２０は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。たとえば、ビットストリームはＣＵのＲＱＴを表すデータを含み得る。
【０１３８】
[0147]本開示の態様によれば、パレットベースの符号化ユニット１２２は、ビデオを符号化するための本開示で説明されるパレットコーディングのための技法の任意の組合せを実行するように構成され得る。たとえば、パレットベースの符号化ユニット１２２は、ビデオデータの現在のピクセルが、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用する第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）でパレットモード符号化されることが可能ではないと、決定するように構成され得る。
【０１３９】
[0148]走査順序が水平方向の走査である例では、パレットベースの符号化ユニット１２２は、現在のピクセルが、現在のピクセルの上のピクセルと、同じパレットインデックスを有する現在のピクセルに水平方向に隣接するピクセル（たとえば、ピクセルＡおよびＢはパレットの同じパレットインデックスを有する）とに基づいて、ｃｏｐｙ  ａｂｏｖｅモードでパレットモード符号化されることが可能ではないと、決定することができる。走査順序が垂直方向の走査である例では、パレットベースの符号化ユニット１２２は、現在のピクセルが、現在のピクセルの左のピクセルと、同じパレットインデックスを有する現在のピクセルに垂直方向に隣接するピクセルとに基づいて、ｃｏｐｙ  ａｂｏｖｅモードでパレットモード符号化されることが可能ではないと、決定することができる。
【０１４０】
[0149]たとえば、ピクセルＡおよびＢがパレットの同じパレットインデックスを有する場合、ＡとＢが同じインデックスを有するのでピクセルＸがピクセルＡと同じインデックスを有していればピクセルＸがピクセルＢ上のランの一部であるから、ピクセルＸはｃｏｐｙ  ａｂｏｖｅではあり得ない。したがって、いくつかの例では、ピクセルＸのインデックスは、ピクセルＡのインデックスとは異なるべきであり、ｃｏｐｙ  ａｂｏｖｅモードでパレットモード符号化されることが可能ではない。したがって、ピクセルＡおよびＢが同じインデックスを有するとき、パレットベースの符号化ユニット１２２は、ピクセルＸがｃｏｐｙ  ａｂｏｖｅモードでパレットモード符号化されることが可能ではないと決定することができる。
【０１４１】
[0150]現在のピクセルが第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）でパレットモード符号化されることが可能ではないと決定したことに応答して、パレットベースの符号化ユニット１２２は、現在のピクセルの対角方向に位置するビデオデータのピクセルのためのパレットインデックスに基づいて、現在のピクセルのためのパレットのパレットインデックスを決定することができる（たとえば、ピクセルＸのパレットインデックスはピクセルＤのパレットインデックスから複製される）。加えて、パレットベースの符号化ユニット１２２は、現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、現在のピクセルのピクセルのランからパレットのパレットインデックスを決定することができる。別の例として、パレットベースの符号化ユニット１２２は、現在のピクセルのランのそれぞれのピクセルの対角方向に位置しない（たとえば、ラン中のピクセルの上または左の）ピクセルのそれぞれのパレットインデックスに基づいて、現在のピクセルのピクセルのランからパレットのパレットインデックスを決定することができる。
【０１４２】
[0151]パレットベースの符号化ユニット１２２は、決定されたパレットインデックスに基づいて、現在のピクセルをパレットモード符号化することができる。たとえば、パレットベースの符号化ユニット１２２は、現在のピクセルの決定されたパレットインデックスに基づいてパレットのパレット値を決定することができ、決定されたパレット値に基づいて現在のピクセルをパレットモード符号化することができる。加えて、いくつかの例では、現在のピクセルが第１のモードでパレットモード符号化されることが可能ではなくても、パレットベースの符号化ユニット１２２は依然として、ビデオエンコーダ２０に、現在のピクセルが第１のモードでパレットモード符号化されることを示すシンタックス要素（たとえば、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］）をシグナリングさせることがある。現在のピクセルが第１のモードで符号化または復号されることが可能ではないので、ビデオデコーダ３０は対角方向のピクセルを特定するためにこの情報を使用する。
【０１４３】
[0152]図７は、本開示の技法を実装するように構成された例示的なビデオデコーダ３０を示すブロック図である。図７は、説明の目的で与えられており、本開示において広く例示され説明される技法に対する限定ではない。説明の目的で、本開示は、ＨＥＶＣコーディングの文脈において、ビデオデコーダ３０を説明する。しかしながら、本開示の技法は他のコーディング規格または方法に適用可能であり得る。
【０１４４】
[0153]ビデオデコーダ３０は、本開示で説明される様々な例に従ってパレットベースのビデオコーディングのための技法を実行するように構成され得る、デバイスの例を代表する。たとえば、ビデオデコーダ３０は、パレットベースのコーディングまたは非パレットベースのコーディングのいずれかを使用して、ＨＥＶＣコーディングにおけるＣＵまたはＰＵなどの、ビデオデータの様々なブロックを選択的に復号するように構成され得る。非パレットベースのコーディングモードは、ＨＥＶＣドラフト１０によって規定される様々なコーディングモードなどの、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。ビデオデコーダ３０は、一例では、ピクセル値を示すエントリーを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリーと関連付ける情報を受信し、その情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構築するように構成され得る。
【０１４５】
[0154]図７の例では、ビデオデコーダ３０は、エントロピー復号ユニット１５０と、ビデオデータメモリ１５１と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換処理ユニット１５６と、再構築ユニット１５８と、フィルタユニット１６０と、復号ピクチャバッファ１６２とを含む。予測処理ユニット１５２は、動き補償ユニット１６４とイントラ予測処理ユニット１６６とを含む。ビデオデコーダ３０はまた、本開示で説明されるパレットベースのコーディング技法の様々な態様を実行するように構成された、パレットベースの復号ユニット１６５を含む。他の例では、ビデオデコーダ３０は、より多数の、より少数の、または異なる機能コンポーネントを含み得る。
【０１４６】
[0155]ビデオデータメモリ１５１は、ビデオデコーダ３０のコンポーネントによって復号されるべき、符号化されたビデオビットストリームなどのビデオデータを記憶することができる。ビデオデータメモリ１５１に記憶されるビデオデータは、たとえば、コンピュータ可読媒体１６から、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって、取得され得る。ビデオデータメモリ１５１は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコーディングされたピクチャバッファ（ＣＰＢ：coded picture buffer）を形成し得る。復号ピクチャバッファ１６２は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１５１および復号ピクチャバッファ１６２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）（同期ＤＲＡＭ（ＳＤＲＡＭ）を含む）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ１５１および復号ピクチャバッファ１６２は、同じメモリデバイスまたは別々のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ１５１は、ビデオデコーダ３０の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
【０１４７】
[0156]コーディングされたピクチャのバッファ（ＣＰＢ）は、ビットストリームの符号化されたビデオデータ（たとえば、ＮＡＬユニット）を受け取り、記憶することができる。エントロピー復号ユニット１５０は、ＣＰＢから符号化されたビデオデータ（たとえば、ＮＡＬユニット）を受け取り、ＮＡＬユニットを構文解析してシンタックス要素を復号することができる。エントロピー復号ユニット１５０は、ＮＡＬユニット中のエントロピー符号化されたシンタックス要素をエントロピー復号することができる。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構築ユニット１５８、およびフィルタユニット１６０は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成し得る。
【０１４８】
[0157]ビットストリームのＮＡＬユニットは、コーディングされたスライスＮＡＬユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット１５０は、コーディングされたスライスＮＡＬユニットからシンタックス要素を抽出し、エントロピー復号し得る。コーディングされたスライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含むピクチャと関連付けられたＰＰＳを識別するシンタックス要素を含み得る。
【０１４９】
[0158]ビデオデコーダ３０は、ビットストリームからのシンタックス要素を復号することに加えて、区分されていないＣＵに対して再構築動作を実行し得る。区分されていないＣＵに対して再構築動作を実行するために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して再構築動作を実行することができる。ＣＵの各ＴＵに対して再構築動作を実行することによって、ビデオデコーダ３０はＣＵの残差ブロックを再構築することができる。
【０１５０】
[0159]ＣＵのＴＵに対して再構築動作を実行することの一部として、逆量子化ユニット１５４は、ＴＵと関連付けられた係数ブロックを逆量子化（ｉｎｖｅｒｓｅ  ｑｕａｎｔｉｚｅ）、すなわち逆量子化（ｄｅ−ｑｕａｎｔｉｚｅ）することができる。逆量子化ユニット１５４は、量子化の程度を決定するために、また同様に、逆量子化ユニット１５４が適用すべき逆量子化の程度を決定するために、ＴＵのＣＵと関連付けられたＱＰ値を使用することができる。つまり、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるＱＰの値を調整することによって制御され得る。圧縮比はまた、利用されるエントロピーコーディングの方法に依存し得る。
【０１５１】
[0160]逆量子化ユニット１５４が係数ブロックを逆量子化した後、逆変換処理ユニット１５６は、ＴＵと関連付けられた残差ブロックを生成するために、係数ブロックに１つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット１５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ：Karhunen-Loeve transform）、逆回転変換、逆方向変換（inverse directional transform）、または別の逆変換を、係数ブロックに適用することができる。
【０１５２】
[0161]イントラ予測を使用してＰＵが符号化される場合、イントラ予測処理ユニット１６６は、ＰＵの予測ブロックを生成するためにイントラ予測を実行することができる。イントラ予測処理ユニット１６６は、空間的に隣接するＰＵの予測ブロックに基づいて、ＰＵ用の予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成するために、イントラ予測モードを使用することができる。イントラ予測処理ユニット１６６は、ビットストリームから復号された１つまたは複数のシンタックス要素に基づいて、ＰＵのためのイントラ予測モードを決定することができる。
【０１５３】
[0162]予測処理ユニット１５２は、ビットストリームから抽出されたシンタックス要素に基づいて、第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）と第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）とを構築することができる。さらに、ＰＵがインター予測を使用して符号化される場合、エントロピー復号ユニット１５０は、ＰＵの動き情報を抽出することができる。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、ＰＵのための１つまたは複数の参照領域を決定することができる。動き補償ユニット１６４は、ＰＵの１つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、ＰＵの予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成することができる。
【０１５４】
[0163]再構築ユニット１５８は、ＣＵのＴＵと関連付けられたルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロック、ならびにＣＵのＰＵの予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを、すなわち、イントラ予測データまたはインター予測データのいずれかを、適宜使用して、ＣＵのルーマコーディングブロックと、Ｃｂコーディングブロックと、Ｃｒコーディングブロックとを再構築することができる。たとえば、再構築ユニット１５８は、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックのサンプルを予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックの対応するサンプルに加算して、ＣＵのルーマコーディングブロックと、Ｃｂコーディングブロックと、Ｃｒコーディングブロックとを再構築することができる。
【０１５５】
[0164]フィルタユニット１６０は、デブロッキング動作を実行して、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロックと関連付けられたブロッキングアーティファクトを低減することができる。ビデオデコーダ３０は、ＣＵのルーマコーディングブロックと、Ｃｂコーディングブロックと、Ｃｒコーディングブロックとを、復号ピクチャバッファ１６２に記憶することができる。復号ピクチャバッファ１６２は、後続の動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示、のために参照ピクチャを与え得る。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ１６２中のルーマブロック、Ｃｂブロック、およびＣｒブロックに基づいて、他のＣＵのＰＵに対してイントラ予測動作またはインター予測動作を実行し得る。
【０１５６】
[0165]本開示の様々な例によれば、ビデオデコーダ３０は、パレットベースのコーディングを実行するように構成され得る。パレットベースの復号ユニット１６５は、たとえば、パレットベースの復号モードがたとえばＣＵまたはＰＵのために選択されるとき、パレットベースの復号を実行することができる。たとえば、パレットベースの復号ユニット１６５は、ピクセル値を示すエントリーを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリーと関連付ける情報を受信し、その情報に基づいてパレット中のエントリーと関連付けられたピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構築するように構成され得る。様々な機能がパレットベースの復号ユニット１６５によって実行されるものとして説明されるが、そのような機能のいくつかまたはすべては、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
【０１５７】
[0166]パレットベースの復号ユニット１６５は、パレットコーディングモード情報を受け取り、パレットコーディングモードがブロックに適用されることをパレットコーディングモード情報が示すとき、上記の動作を実行することができる。パレットコーディングモードがブロックに適用されないことをパレットコーディングモード情報が示すとき、または、他のモード情報が異なるモードの使用を示すとき、予測処理ユニット１５２は、たとえば、ＨＥＶＣインター予測コーディングモードまたはイントラ予測コーディングモードなどの非パレットベースのコーディングモードを使用して、ビデオデータのブロックを復号する。ビデオデータのブロックは、たとえば、ＨＥＶＣコーディングプロセスに従って生成されるＣＵまたはＰＵであり得る。パレットベースのコーディングモードは、複数の異なるパレットベースのコーディングモードのうちの１つを備え得るか、または単一のパレットベースのコーディングモードがあり得る。
【０１５８】
[0167]本開示の態様によれば、パレットベースの復号ユニット１６５は、ビデオを復号するための本開示で説明されるパレットコーディングのための技法の任意の組合せを実行するように構成され得る。たとえば、パレットベースの復号ユニット１６５は、ビデオデータの現在のピクセルが、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用する第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）でパレットモード復号されることが可能ではないと、決定するように構成され得る。
【０１５９】
[0168]走査順序が水平方向の走査である例では、パレットベースの復号ユニット１６５は、現在のピクセルが、現在のピクセルの上のピクセルと、同じパレットインデックスを有する現在のピクセルに水平方向に隣接するピクセル（たとえば、ピクセルＡおよびＢはパレットの同じパレットインデックスを有する）とに基づいて、ｃｏｐｙ  ａｂｏｖｅモードでパレットモード復号されることが可能ではないと、決定することができる。走査順序が垂直方向の走査である例では、パレットベースの復号ユニット１６５は、現在のピクセルが、現在のピクセルの左のピクセルと、同じパレットインデックスを有する現在のピクセルに垂直方向に隣接するピクセルとに基づいて、ｃｏｐｙ  ａｂｏｖｅモードでパレットモード復号されることが可能ではないと、決定することができる。
【０１６０】
[0169]たとえば、ピクセルＡおよびＢがパレットの同じパレットインデックスを有する場合、ＡとＢが同じインデックスを有するのでピクセルＸがピクセルＡと同じインデックスを有していればピクセルＸがピクセルＢ上のランの一部であるから、ピクセルＸはｃｏｐｙ  ａｂｏｖｅではあり得ない。したがって、いくつかの例では、ピクセルＸのインデックスは、ピクセルＡのインデックスとは異なるべきであり、ｃｏｐｙ  ａｂｏｖｅモードでパレットモード符号化されることが可能ではない。したがって、ピクセルＡおよびＢが同じインデックスを有するとき、パレットベースの復号ユニット１６５は、ピクセルＸがｃｏｐｙ  ａｂｏｖｅモードでパレットモード復号されることが可能ではないと決定することができる。
【０１６１】
[0170]現在のピクセルが第１のモード（たとえば、ｃｏｐｙ  ａｂｏｖｅモード）でパレットモード復号されることが可能ではないと決定したことに応答して、パレットベースの復号ユニット１６５は、現在のピクセルの対角方向に位置するビデオデータのピクセルのためのパレットインデックスに基づいて、現在のピクセルのためのパレットのパレットインデックスを決定することができる（たとえば、ピクセルＸのパレットインデックスはピクセルＤのパレットインデックスから複製される）。加えて、パレットベースの復号ユニット１６５は、現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、現在のピクセルのピクセルのランからパレットのパレットインデックスを決定することができる。別の例として、パレットベースの復号ユニット１６５は、現在のピクセルのランのそれぞれのピクセルの対角方向に位置しない（たとえば、ラン中のピクセルの上または左の）ピクセルのそれぞれのパレットインデックスに基づいて、現在のピクセルのピクセルのランからパレットのパレットインデックスを決定することができる。
【０１６２】
[0171]パレットベースの復号ユニット１６５は、決定されたパレットインデックスに基づいて、現在のピクセルをパレットモード復号することができる。たとえば、パレットベースの復号ユニット１６５は、現在のピクセルの決定されたパレットインデックスに基づいてパレットのパレット値を決定することができ、決定されたパレット値に基づいて現在のピクセルをパレットモード復号することができる。
【０１６３】
[0172]加えて、いくつかの例では、現在のピクセルが第１のモードでパレットモード符号化されることが可能ではなくても、パレットベースの復号ユニット１６５は依然として、現在のピクセルが第１のモードでパレットモード復号されるべきであることを示すシンタックス要素（たとえば、ｐａｌｅｔｔｅ＿ｍｏｄｅ［ｘＣ］［ｙＣ］）をビデオエンコーダ２０から受信することがある。この例では、パレットベースの復号ユニット１６５は、現在のピクセルが第１のモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、現在のピクセルが第１のモードでパレットモードコーディングされるべきであることを示すシンタックス要素を受信したことに応答して、現在のピクセルの対角方向に位置するピクセルのためのパレットインデックスに基づいて、現在のピクセルのためのパレットのパレットインデックスを決定することができる。
【０１６４】
[0173]図８は、ビデオデータをコーディングするためのパレットを決定する例を示す概念図である。図８の例は、第１のパレット１８４と関連付けられる第１のコーディングユニット（ＣＵ）１８０と、第２のパレット１９２と関連付けられる第２のＣＵ１８８とを有するピクチャ１７８を含む。第１のＣＵ１８０および第２のＣＵ１８８は、パレットモード（ＰＡＬ：palette mode）を使用してコーディングされる。いくつかの例では、第２のパレット１９２は第１のパレット１８４に基づき得る。ピクチャ１７８はまた、イントラ予測コーディングモードによりコーディングされるブロック１９６と、インター予測コーディングモードによりコーディングされるブロック２００とを含む。
【０１６５】
[0174]図８の技法は、ビデオエンコーダ２０（図１および図６）とビデオデコーダ３０（図１および図７）の状況において、説明を目的としてＨＥＶＣビデオコーディング規格に関して説明される。しかしながら、本開示の技法はこのように限定されず、他のビデオコーディングプロセスおよび／または規格において他のビデオコーディングプロセッサおよび／またはデバイスによって適用され得ることを、理解されたい。
【０１６６】
[0175]一般に、パレットは、現在コーディングされているＣＵ、図８の例ではＣＵ１８８、について支配的（dominant）である、および／またはそのＣＵを表現する、いくつかのピクセル値を指す。第１のパレット１８４および第２のパレット１９２は、複数のパレットを含むものとして示されている。いくつかの例では、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０のような）は、ＣＵの各々の色成分に対して別々にパレットをコーディングすることができる。たとえば、ビデオエンコーダ２０は、ＣＵのルーマ（Ｙ）成分のためのパレットと、ＣＵのクロマ（Ｕ）成分のための別のパレットと、ＣＵのクロマ（Ｖ）成分のためのさらに別のパレットとを符号化することができる。この例では、ＹパレットのエントリーはＣＵのピクセルのＹの値を表すことができ、ＵパレットのエントリーはＣＵのピクセルのＵの値を表すことができ、ＶパレットのエントリーはＣＵのピクセルのＶの値を表すことができる。
【０１６７】
[0176]他の例では、ビデオエンコーダ２０は、ＣＵのすべての色成分に対して単一のパレットを符号化することができる。この例では、ビデオエンコーダ２０は、Ｙｉと、Ｕｉと、Ｖｉとを含む、三重の値（triple value）であるｉ番目のエントリーを有するパレットを符号化することができる。この場合、パレットは、ピクセルの成分の各々の値を含む。したがって、複数の個々のパレットを有するパレットのセットとしてのパレット１８４およびパレット１９２の表現は、一例にすぎず、限定することは意図されない。
【０１６８】
[0177]図８の例では、第１のパレット１８４の各々は、エントリーインデックス値１、エントリーインデックス値２、およびエントリーインデックス値３をそれぞれ有する、３つのエントリー２０２〜２０６を含む。エントリー２０２〜２０６は、ピクセル値Ａ、ピクセル値Ｂ、およびピクセル値Ｃをそれぞれ含むピクセル値に、インデックス値を関連付ける。本明細書で説明されるように、第１のＣＵ１８０の実際のピクセル値をコーディングするのではなく、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、インデックス１〜３を使用してブロックのピクセルをコーディングするために、パレットベースのコーディングを使用することができる。すなわち、第１のＣＵ１８０の各ピクセル位置に対して、ビデオエンコーダ２０はピクセルのインデックス値を符号化することができ、インデックス値は、第１のパレット１８４の１つまたは複数の中のピクセル値と関連付けられる。ビデオデコーダ３０は、ビットストリームからインデックス値を取得し、インデックス値と第１のパレット１８４の１つまたは複数とを使用してピクセル値を再構築することができる。したがって、第１のパレット１８４は、パレットベースの復号におけるビデオデコーダ３０による使用のために、符号化されたビデオデータビットストリーム中でビデオエンコーダ２０によって送信される。
【０１６９】
[0178]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、第１のパレット１８４に基づいて第２のパレット１９２を決定することができる。しかしながら、本開示で説明される技法はそのように限定されず、第２のパレット１９２は第１のパレット１８４を伴わずに決定され得る。第２のパレット１９２が第１のパレット１８４に基づいて決定される例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、予測パレットが、この例では第１のパレット１８４が、１つまたは複数のブロックから決定される、その１つまたは複数のブロックを位置特定する（locate）ことができる。いくつかの例では、図８に示される例のように、ビデオエンコーダ２０および／またはビデオデコーダ３０は、第２のＣＵ１８８のための予測パレットを決定するとき、左の隣接ＣＵ（第１のＣＵ１８０）などの、前にコーディングされたＣＵを位置特定し得る。
【０１７０】
[0179]図８の例では、第２のパレット１９２は、エントリーインデックス値１、エントリーインデックス値２、およびエントリーインデックス値３をそれぞれ有する、３つのエントリー２０８〜２１２を含む。エントリー２０８、２１０、２１２は、インデックス値をそれぞれ、ピクセル値Ａ、ピクセル値Ｂ、およびピクセル値Ｄを含むピクセル値に関連付ける。この例では、ビデオエンコーダ２０は、第１のパレット１８４のどのエントリーが第２のパレット１９２に含まれるかを示す１つまたは複数のシンタックス要素をコーディングし得る。図８の例では、１つまたは複数のシンタックス要素は、ベクトル２１６として示される。ベクトル２１６は、いくつかの関連するビン（またはビット）を有し、各ビンは、そのビンと関連付けられたパレット予測子が現在のパレットのエントリーを予測するために使用されるかどうかを示す。たとえば、ベクトル２１６は、第１のパレット１８４の最初の２つのエントリー（２０２および２０４）が、第２のパレット１９２中に含まれる（ベクトル２１６中の「１」の値）一方で、第１のパレット１８４の第３のエントリーが、第２のパレット１９２中に含まれない（ベクトル２１６中の「０」の値）ことを示す。図８の例では、ベクトルは、ブールベクトル（Boolean vector）である。
【０１７１】
[0180]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、パレット予測を実行するとき、（パレット予測子テーブルとも呼ばれ得る）パレット予測子リストを決定することができる。パレット予測子リストは、現在のブロックをコーディングするためのパレットの１つまたは複数のエントリーを予測するために使用される１つまたは複数の隣接ブロックのパレットからのエントリーを含み得る。ビデオエンコーダ２０およびビデオデコーダ３０は、同じ方式でこのリストを構築し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、パレット予測子リストのどのエントリーが現在のブロックをコーディングするためのパレットに含まれるべきかを示すために、データ（ベクトル２１６など）をコーディングし得る。
【０１７２】
[0181]図９は、本開示の技法に従った、ピクセルのブロックのためのパレットに対するインデックスを決定する例を示す概念図である。たとえば、図９は、インデックス値と関連付けられるピクセルのそれぞれの位置をパレット２４４のエントリーに関連付ける、インデックス値（値１、２、および３）のマップ２４０を含む。
【０１７３】
[0182]マップ２４０は、各ピクセル位置に対するインデックス値を含むものとして図９の例において示されるが、他の例では、すべてのピクセル位置が、ピクセル値をパレット２４４のエントリーに関連付けるインデックス値と関連付けられ得るとは限らないことを理解されたい。すなわち、上記で述べられたように、いくつかの例では、ビデオエンコーダ２０は、ピクセル値がパレット２４４に含まれない場合、マップ２４０の中のある位置に対する実際のピクセル値（またはそれの量子化されたバージョン）の指示を符号化することができる（および、ビデオデコーダ３０は、符号化されたビットストリームからその指示を取得することができる）。
【０１７４】
[0183]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、どのピクセル位置がインデックス値と関連付けられるかを示す追加のマップをコーディングするように構成され得る。たとえば、マップ中の（ｉ，ｊ）のエントリーがＣＵの（ｉ，ｊ）の位置に対応すると仮定する。ビデオエンコーダ２０は、関連付けられるインデックス値をエントリーが有するかどうかを示す、マップの各エントリー（すなわち、各ピクセル位置）のための１つまたは複数のシンタックス要素を符号化することができる。たとえば、ビデオエンコーダ２０は、ＣＵ中の（ｉ，ｊ）のロケーションにおけるピクセル値がパレット２４４の中の値の１つであることを示すように、１という値を有するフラグを符号化することができる。
【０１７５】
[0184]そのような例では、ビデオエンコーダ２０はまた、パレット中のその対応するピクセル値を示すために、およびビデオデコーダがそのピクセル値を再構築することを可能にするために、パレットインデックス（値１〜３として図９の例では示される）を符号化することができる。パレット２４４が単一のエントリーと、関連付けられるピクセル値とを含む例では、ビデオエンコーダ２０は、インデックス値のシグナリングをスキップすることができる。ビデオエンコーダ２０は、ＣＵ中の（ｉ，ｊ）のロケーションにおけるピクセル値がパレット２４４の中の値の１つではないことを示すように、０という値を有するようにフラグを符号化することができる。この例では、ビデオエンコーダ２０はまた、ピクセル値を再構築する際にビデオデコーダ３０によって使用するために、ピクセル値の指示を符号化することができる。たとえば、ビデオエンコーダ２０はピクセル値を明示的にコーディングし得る。いくつかの例では、ピクセル値は損失の多い方式（lossy manner）でコーディングされ得る。
【０１７６】
[0185]ＣＵの１つの位置におけるピクセルの値は、ＣＵの他の位置における１つまたは複数の他のピクセルの値の指示を提供することができる。たとえば、ＣＵの隣接ピクセル位置が同じピクセル値を有すること、または、（２つ以上のピクセル値が単一のインデックス値にマッピングされ得る、損失の多いコーディングの場合において）ＣＵの隣接ピクセル位置が同じインデックス値にマッピングされ得ることの確率が比較的高いことがある。
【０１７７】
[0186]上記で述べられたように、ランは、Ｃｏｐｙ  ＡｂｏｖｅまたはＣｏｐｙ  Ｌｅｆｔモードとともに使用され得る。説明を目的とする例では、マップ２４０の行２６４と２６８とを考える。水平方向の左から右への走査方向を仮定すると、行２６４は、「１」という３個のインデックス値と、「２」という２個のインデックス値と、「３」という３個のインデックス値とを含む。行２６８は、「１」という５個のインデックス値と、「３」という３個のインデックス値とを含む。この例では、ビデオエンコーダ２０は、行２６８のためのデータを符号化するとき（たとえば、Ｃｏｐｙ  Ａｂｏｖｅモード）に、その後にランが続く行２６４の特定のエントリーを特定することができる。たとえば、ビデオエンコーダ２０は、行２６８の第１番目の位置（行２６８の一番左の位置）が行２６４の第１番目の位置と同じであることを示す、１つまたは複数のシンタックス要素を符号化することができる。ビデオエンコーダ２０はまた、行２６８の中の走査方向における２つの連続するエントリーの次のランが行２６４の第１番目の位置と同じであることを示す、１つまたは複数のシンタックス要素を符号化することができる。
【０１７８】
[0187]しかしながら、本開示で説明されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、上部のピクセルのためのパレットインデックス値を使用することに限定されないことがあり、代わりに、対角方向のピクセル（すなわち、現在のピクセルから対角方向に位置するピクセル）のパレットインデックス値を使用することがある。対角方向のピクセルは、走査順序または走査パターンなどの様々な要因に基づき得る。いくつかの例では、対角方向のピクセルが選択されるべきであるかどうかは、（水平方向の左から右への走査を仮定すると）上部のピクセルおよび左のピクセルなどの前のピクセルのパレットインデックス値に基づき得る。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットインデックス値のためのデフォルト値を利用することができる。
【０１７９】
[0188]行２６４の第１番目の位置を示す１つまたは複数のシンタックス要素と、（上記で述べられた）２つのエントリーのランとを符号化した後で、ビデオエンコーダ２０は、（左から右に）ライン２６８の中の第４番目の位置および第５番目の位置に対して、第４番目の位置に対して１という値を示す１つまたは複数のシンタックス要素と、１というランを示す１つまたは複数のシンタックス要素とを符号化することができる（たとえば、Ｃｏｐｙ  Ｌｅｆｔモード）。したがって、ビデオエンコーダ２０は、別のラインを参照することなくこれらの２つの位置を符号化する。いくつかの例では、Ｃｏｐｙ  Ｌｅｆｔモードは、「Ｖａｌｕｅ」モードまたはＣｏｐｙ  Ｉｎｄｅｘモードとも呼ばれることがある。
【０１８０】
[0189]ビデオエンコーダ２０は次いで、上の行２６４に対する、行２６８の中の３というインデックス値を有する第１番目の位置を符号化することができる（たとえば、上の行２６４からの複製と、同じインデックス値を有する走査順序における連続する位置のランとを示す）。したがって、ビデオエンコーダ２０は、たとえばランを使用してラインのピクセルまたはインデックス値をラインの他の値に対してコーディングすること、ラインのピクセルまたはインデックス値を別のライン（または列）の値に対してコーディングすること、またはこれらの組合せの中から選択することができる。ビデオエンコーダ２０は、いくつかの例では、この選択を行うために、レート／歪みの最適化を実行することができる。
【０１８１】
[0190]ビデオデコーダ３０は、上記で説明されたシンタックス要素を受け取り、行２６８を再構築することができる。たとえば、ビデオデコーダ３０は、現在コーディングされているマップ２４０の位置に対する関連するインデックス値を複製する際に元となる、隣接する行の中の特定のロケーションを示すデータを取得することができる。ビデオデコーダ３０はまた、同じインデックス値を有する、走査順序における連続する位置の数を示すデータを取得することができる。水平方向の走査順序に関して説明されるが、本開示の技法はまた、垂直方向または対角方向（たとえば、ブロックにおいて対角方向に４５度または１３５度）の走査方向などの、別の走査方向に適用され得る。
【０１８２】
[0191]本開示のいくつかの態様は、説明を目的に、開発中のＨＥＶＣ規格に関して説明された。しかしながら、本開示で説明される技法は、他の規格またはまだ開発されていないプロプライエタリなビデオコーディング処理を含む、他のビデオコーディング処理にとって有用であり得る。
【０１８３】
[0192]上記で説明された技法は、その両方が一般にビデオコーダと呼ばれることがある、ビデオエンコーダ２０（図１および図６）および／またはビデオデコーダ３０（図１および図７）によって実行され得る。同様に、ビデオコーディングは、適用可能なとき、ビデオ符号化またはビデオ復号を指すことがある。
【０１８４】
[0193]図１０は、本開示で説明される１つまたは複数の例による、ビデオデータをコーディングする方法を示すフローチャートである。ビデオエンコーダ２０およびビデオデコーダ３０は、図１０に示される例を実行するように構成され得る。したがって、図１０に示される例は、現在のピクセルをパレットモードコーディング（たとえば、パレットモード符号化またはパレットモード復号）するビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）に関して説明される。
【０１８５】
[0194]ビデオコーダは、ビデオデータの現在のピクセルが、走査順序に対して現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定するように構成され得る（３００）。たとえば、左から右への水平方向の走査では、現在のピクセルの上のピクセルおよび現在のピクセルの左のピクセルが同じインデックスを有する場合、現在のピクセルが上のピクセルと同じインデックスを有するとすれば、現在のピクセルは左のピクセルのランの中にあるであろう。現在のピクセルが左のピクセルのランではない場合、現在のピクセルのパレットインデックスが上のピクセルのパレットインデックスと異なることを意味する。したがって、この場合、ビデオコーダは、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することができる。
【０１８６】
[0195]走査順序が水平方向の走査である例では、ビデオコーダは、現在のピクセルの上のピクセルと、同じパレットインデックスを有する現在のピクセルに水平方向に隣接するピクセル（たとえば、ピクセルＡおよびＢはパレットの同じパレットインデックスを有する）とに基づいて、現在のピクセルが、ｃｏｐｙ  ａｂｏｖｅモードでパレットモード復号されることが可能ではないと、決定することができる。走査順序が垂直方向の走査である例では、ビデオコーダは、現在のピクセルの左のピクセルと、同じパレットインデックスを有する現在のピクセルに垂直方向に隣接するピクセルとに基づいて、現在のピクセルが、ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定することができる。
【０１８７】
[0196]現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモード復号されることが可能ではないと決定したことに応答して、ビデオコーダは、現在のピクセルの対角方向に位置するビデオデータのピクセルのためのパレットインデックスに基づいて、現在のピクセルのためのパレットのパレットインデックスを決定することができる（たとえば、ピクセルＸのパレットインデックスはピクセルＤのパレットインデックスから複製される）（３０２）。上記で説明されたように、対角方向のピクセルは隣接ピクセルであり（たとえば、対角方向のピクセルと現在のピクセルとの間に一列に並ぶピクセル（pixel inline between）はない）、対角方向のピクセルは現在のピクセルとは異なる行および列の中にある。
【０１８８】
[0197]走査が水平方向の左から右への走査である場合、対角方向のピクセルは、現在のピクセルに対して１ピクセル位置だけ上にあり、１ピクセル位置だけ右にある。走査が水平方向の右から左への走査である場合、対角方向のピクセルは、現在のピクセルに対して１ピクセル位置だけ上にあり１ピクセル位置だけ左にある。走査が垂直方向の上から下への走査である場合、対角方向のピクセルは、現在のピクセルに対して１ピクセル位置だけ左にあり１ピクセル位置だけ上部にある。走査が垂直方向の下から上への走査である場合、対角方向のピクセルは、現在のピクセルに対して１ピクセル位置だけ左にあり１ピクセル位置だけ下部にある。
【０１８９】
[0198]加えて、ビデオコーダは、現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、現在のピクセルのピクセルのランからパレットのパレットインデックスを決定することができる。別の例として、ビデオコーダは、現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセル（たとえば、ラン中のピクセルの上または左）のそれぞれのパレットインデックスに基づいて、現在のピクセルのピクセルのランからパレットのパレットインデックスを決定することができる。
【０１９０】
[0199]ビデオコーダは、決定されたパレットインデックスに基づいて、現在のピクセルをパレットモードコーディングすることができる（３０４）。たとえば、ビデオコーダは、現在のピクセルの決定されたパレットインデックスに基づいてパレットのパレット値を決定することができ、決定されたパレット値に基づいて現在のピクセルをパレットモードコーディングすることができる。
【０１９１】
[0200]ビデオコーダがビデオデコーダ３０である例では、ビデオデコーダ３０は、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素を受信するように構成され得る。また、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素を受信したことに応答して、ビデオデコーダ３０は、現在のピクセルの対角方向に位置するピクセルのためのパレットインデックスに基づいて、現在のピクセルのためのパレットのパレットインデックスを決定することができる。ビデオデコーダ３０は、決定されたパレットインデックスに基づいて、現在のピクセルをパレットモード復号することができる。
【０１９２】
[0201]ビデオコーダがビデオエンコーダ２０である例では、ビデオエンコーダ２０は、現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素をシグナリングする。ビデオエンコーダ２０は、決定されたパレットインデックスに基づいて、現在のピクセルをパレットモード符号化することができる。
【０１９３】
[0202]上記は、現在のピクセルのパレットインデックスが対角方向のピクセルのパレットインデックスに基づく場合を説明する。しかしながら、いくつかの場合、何らかの追加の制約があるときには、ピクセルのパレットインデックスは対角方向のピクセルに基づかないことがある。
【０１９４】
[0203]混乱を避けるために、上記の例は現在のピクセルに関して説明され、以下の例は第２のピクセルに関して説明される。たとえば、ビデオコーダは、第２のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、走査順序に対して第２のピクセルの直交方向に位置する隣接ピクセル、および走査順序に対して第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定することができる。
【０１９５】
[0204]この例では、第２のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、走査順序に対して第２のピクセルの直交方向に位置する隣接ピクセル、および走査順序に対して第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定したことに応答して、ビデオコーダは、デフォルトのパレットインデックス（たとえば、ビデオエンコーダ２０およびビデオデコーダ３０によって記憶されている事前に定められたパレットインデックス値）に基づいて、第２のピクセルのためのパレットのパレットインデックスを決定することができる。ビデオコーダは、第２のピクセルのための決定されたパレットインデックスに基づいてパレット値を決定し、決定されたパレット値に基づいて第２のピクセルをパレットモードコーディングすることができる。
【０１９６】
[0205]別の例として、ビデオコーダは、第２のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、第２のピクセルがブロック境界に位置すると決定することができる。この例では、第２のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、ブロック境界に位置すると決定したことに応答して、ビデオコーダは、デフォルトのパレットインデックスに基づいて第２のピクセルのためのパレットのパレットインデックスを決定し、第２のピクセルのための決定されたパレットインデックスに基づいてパレット値を決定し、決定されたパレット値に基づいて第２のピクセルをパレットモードコーディングすることができる。
【０１９７】
[0206]本明細書で説明された技法のすべてが、個々にまたは組合せで使用され得ることを理解されたい。本開示は、ブロックサイズ、パレットサイズ、スライスタイプなどの、いくつかの要因に応じて変化し得るいくつかのシグナリング方法を含む。シンタックス要素をシグナリングまたは推測することにおけるそのような変化は、エンコーダおよびデコーダに先験的に知られ得るか、またはタイルレベルで（at a tile level）もしくは他の場所で、ビデオパラメータセット（ＶＰＳ）、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、スライスヘッダ中で明示的にシグナリングされ得る。
【０１９８】
[0207]例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントが、異なる順序で実行されてよく、全体的に追加され、統合され、または完全に除外され得る（たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、行為またはイベントは、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを用いて、連続的にではなく同時に実行され得る。加えて、本開示の特定の態様は、明快にするために、単一のモジュールまたはユニットによって実行されるものとして説明されているが、本開示の技術は、ビデオコーダと関連付けられるユニットまたはモジュールの組合せによって実行され得ることを理解されたい。
【０１９９】
[0208]技法の様々な態様の特定の組合せが上で説明されたが、これらの組合せは、本開示で説明される技法の例を単に示すために与えられる。したがって、本開示の技法は、これらの例示的な組合せに限定されるべきではなく、本開示で説明される技法の様々な態様の任意の想起可能な組合せを包含し得る。
【０２００】
[0209]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって処理され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は一般に、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コード、および／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０２０１】
[0210]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０２０２】
[0211]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路などの、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用ハードウェアおよび／またはソフトウェアモジュール内で提供され得る。また、本技法は、１つまたは複数の回路または論理要素において完全に実装され得る。
【０２０３】
[0212]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために様々なコンポーネント、モジュール、またはユニットが説明されたが、それらは、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明されたように、様々なユニットは、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされるか、または相互動作するハードウェアユニットの集合によって提供され得る。
【０２０４】
[0213]様々な例が、説明された。これらおよび他の例は、次の特許請求の範囲内に入る。
【図１】
2017536014.tif 000003
【図２】
2017536014.tif 000004
【図３】
2017536014.tif 000005
【図４】
2017536014.tif 000006
【図５】
2017536014.tif 000007
【図６】
2017536014.tif 000008
【図７】
2017536014.tif 000009
【図８】
2017536014.tif 000010
【図９】
2017536014.tif 000011
【図１０】
2017536014.tif 000012
【手続補正書】
【提出日】平成29年6月6日(2017.6.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングする方法であって、
前記ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定することと、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定することと、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングすることと
を備え、
前記走査順序が水平方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することが、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することを備え、
前記走査順序が垂直方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することが、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することを備える、方法。
【請求項２】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定することをさらに備える、請求項１に記載の方法。
【請求項３】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定することをさらに備える、請求項１に記載の方法。
【請求項４】
前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に左から右であることに基づいて前記現在のピクセルの右上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に右から左であることに基づいて前記現在のピクセルの左上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に下から上であることに基づいて左下部に位置するピクセルを備え、または、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に上から下であることに基づいて左上部に位置するピクセルを備える、請求項１に記載の方法。
【請求項５】
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素を受信することをさらに備え、
前記現在のピクセルの対角方向に位置する前記ピクセルのための前記パレットインデックスに基づいて前記現在のピクセルのための前記パレットの前記パレットインデックスを決定することが、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示す前記シンタックス要素を受信したことに応答して、前記現在のピクセルの対角方向に位置する前記ピクセルのための前記パレットインデックスに基づいて、前記現在のピクセルのための前記パレットの前記パレットインデックスを決定することを備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード復号することを備える、請求項１に記載の方法。
【請求項６】
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを示すシンタックス要素をシグナリングすることをさらに備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード符号化することを備える、請求項１に記載の方法。
【請求項７】
前記現在のピクセルが第１のピクセルを備え、前記方法は、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することと、
前記走査順序に対して前記第２のピクセルの直交方向に位置する隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、前記第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定することと、
前記第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、および、前記走査順序に対して前記第２のピクセルの直交方向に位置する前記隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する前記隣接ピクセル、と同じパレットインデックスを、前記第２のピクセルの対角方向に位置する前記ピクセルの前記パレットインデックスが有すると、決定したことに応答して、デフォルトのパレットインデックスに基づいて、前記第２のピクセルのための前記パレットのパレットインデックスを決定することと、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定することと、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングすることと
をさらに備える、請求項１に記載の方法。
【請求項８】
前記現在のピクセルが第１のピクセルを備え、前記方法は、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することと、
前記第２のピクセルがブロック境界に位置すると決定することと、
前記第２のピクセルが、前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、前記ブロック境界に位置すると決定したことに応答して、デフォルトのパレットインデックスに基づいて前記第２のピクセルのための前記パレットのパレットインデックスを決定することと、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定することと、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングすることと
をさらに備える、請求項１に記載の方法。
【請求項９】
前記現在のピクセルのための前記決定されたパレットインデックスに基づいて前記パレットのパレット値を決定することをさらに備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレット値に基づいて前記現在のピクセルをパレットモードコーディングすることを備える、請求項１に記載の方法。
【請求項１０】
ビデオデータをコーディングするためのデバイスであって、
パレットのパレット値を記憶するように構成されるメモリと、
ビデオコーダとを備え、前記ビデオコーダが、
前記ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定し、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのための前記パレットのパレットインデックスを決定し、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングする
ように構成され、
前記走査順序が水平方向の走査を備え、前記ビデオコーダが、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成され、
前記走査順序が垂直方向の走査を備え、前記ビデオコーダが、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成される、デバイス。
【請求項１１】
前記ビデオコーダが、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するように構成される、請求項１０に記載のデバイス。
【請求項１２】
前記ビデオコーダが、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するように構成される、請求項１０に記載のデバイス。
【請求項１３】
前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に左から右であることに基づいて前記現在のピクセルの右上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に右から左であることに基づいて前記現在のピクセルの左上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に下から上であることに基づいて左下部に位置するピクセルを備え、または、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に上から下であることに基づいて左上部に位置するピクセルを備える、請求項１０に記載のデバイス。
【請求項１４】
前記ビデオコーダがビデオデコーダを備え、前記ビデオデコーダが、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素を受信し、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示す前記シンタックス要素を受信したことに応答して、前記現在のピクセルの対角方向に位置する前記ピクセルのための前記パレットインデックスに基づいて、前記現在のピクセルのための前記パレットの前記パレットインデックスを決定し、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード復号するように構成される、請求項１０に記載のデバイス。
【請求項１５】
前記ビデオコーダがビデオエンコーダを備え、前記ビデオエンコーダが、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素をシグナリングし、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード符号化するように構成される、請求項１０に記載のデバイス。
【請求項１６】
前記現在のピクセルが第１のピクセルを備え、前記ビデオコーダが、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、
前記走査順序に対して前記第２のピクセルの直交方向に位置する隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、前記第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定し、
前記第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、および、前記走査順序に対して前記第２のピクセルの直交方向に位置する前記隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する前記隣接ピクセル、と同じパレットインデックスを、前記第２のピクセルの対角方向に位置する前記ピクセルの前記パレットインデックスが有すると、決定したことに応答して、デフォルトのパレットインデックスに基づいて、前記第２のピクセルのための前記パレットのパレットインデックスを決定し、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定し、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングするように構成される、請求項１０に記載のデバイス。
【請求項１７】
前記現在のピクセルが第１のピクセルを備え、前記ビデオコーダが、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、
前記第２のピクセルがブロック境界に位置すると決定し、
前記第２のピクセルが、前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、前記ブロック境界に位置すると決定したことに応答して、デフォルトのパレットインデックスに基づいて前記第２のピクセルのための前記パレットのパレットインデックスを決定し、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定し、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングするように構成される、請求項１０に記載のデバイス。
【請求項１８】
前記ビデオコーダが、
前記現在のピクセルのための前記決定されたパレットインデックスに基づいて前記パレットのパレット値を決定するように構成され、
前記現在のピクセルをパレットモードコーディングするために、前記ビデオコーダが、前記決定されたパレット値に基づいて前記現在のピクセルをパレットモードコーディングするように構成される、請求項１０に記載のデバイス。
【請求項１９】
前記デバイスが、
集積回路（ＩＣ）、
マイクロプロセッサ、または
前記現在のピクセルを表示するためのディスプレイまたは前記現在のピクセルをキャプチャするためのカメラのうちの少なくとも１つを備えるワイヤレス通信デバイス
のうちの１つを備える、請求項１０に記載のデバイス。
【請求項２０】
ビデオコーディングのためのデバイスであって、
ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定するための手段と、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定するための手段と、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングするための手段と
を備え、
前記走査順序が水平方向の走査を備え、前記ビデオデータの前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するための前記手段が、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するための手段を備え、
前記走査順序が垂直方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するための前記手段が、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するための手段を備える、デバイス。
【請求項２１】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するための手段をさらに備える、請求項２０に記載のデバイス。
【請求項２２】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するための手段をさらに備える、請求項２０に記載のデバイス。
【請求項２３】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、ビデオコーディングのためのデバイスの１つまたは複数のプロセッサに、
ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定させ、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定させ、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングさせ、
前記走査順序が水平方向の走査を備え、前記１つまたは複数のプロセッサに、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定させる前記命令が、前記１つまたは複数のプロセッサに、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定させる命令を備え、
前記走査順序が垂直方向の走査を備え、前記１つまたは複数のプロセッサに、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定させる前記命令が、前記１つまたは複数のプロセッサに、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定させる命令を備える、非一時的コンピュータ可読記憶媒体。
【請求項２４】
１つまたは複数のプロセッサに、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定させる命令をさらに備える、請求項２３に記載の非一時的コンピュータ可読記憶媒体。
【請求項２５】
１つまたは複数のプロセッサに、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定させる命令をさらに備える、請求項２３に記載の非一時的コンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２０４
【補正方法】変更
【補正の内容】
【０２０４】
[0213]様々な例が、説明された。これらおよび他の例は、次の特許請求の範囲内に入る。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータをコーディングする方法であって、
前記ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定することと、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定することと、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングすることと
を備える、方法。
［Ｃ２］
前記走査順序が水平方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することが、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することを備える、Ｃ１に記載の方法。
［Ｃ３］
前記走査順序が垂直方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することが、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することを備える、Ｃ１に記載の方法。
［Ｃ４］
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定することをさらに備える、Ｃ１に記載の方法。
［Ｃ５］
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定することをさらに備える、Ｃ１に記載の方法。
［Ｃ６］
前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に左から右であることに基づいて前記現在のピクセルの右上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に右から左であることに基づいて前記現在のピクセルの左上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に下から上であることに基づいて左下部に位置するピクセルを備え、または、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に上から下であることに基づいて左上部に位置するピクセルを備える、Ｃ１に記載の方法。
［Ｃ７］
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素を受信することをさらに備え、
前記現在のピクセルの対角方向に位置する前記ピクセルのための前記パレットインデックスに基づいて前記現在のピクセルのための前記パレットの前記パレットインデックスを決定することが、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示す前記シンタックス要素を受信したことに応答して、前記現在のピクセルの対角方向に位置する前記ピクセルのための前記パレットインデックスに基づいて、前記現在のピクセルのための前記パレットの前記パレットインデックスを決定することを備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード復号することを備える、Ｃ１に記載の方法。
［Ｃ８］
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを示すシンタックス要素をシグナリングすることをさらに備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード符号化することを備える、Ｃ１に記載の方法。
［Ｃ９］
前記現在のピクセルが第１のピクセルを備え、前記方法は、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することと、
前記走査順序に対して前記第２のピクセルの直交方向に位置する隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、前記第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定することと、
前記第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、および、前記走査順序に対して前記第２のピクセルの直交方向に位置する前記隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する前記隣接ピクセル、と同じパレットインデックスを、前記第２のピクセルの対角方向に位置する前記ピクセルの前記パレットインデックスが有すると、決定したことに応答して、デフォルトのパレットインデックスに基づいて、前記第２のピクセルのための前記パレットのパレットインデックスを決定することと、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定することと、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングすることと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１０］
前記現在のピクセルが第１のピクセルを備え、前記方法は、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することと、
前記第２のピクセルがブロック境界に位置すると決定することと、
前記第２のピクセルが、前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、前記ブロック境界に位置すると決定したことに応答して、デフォルトのパレットインデックスに基づいて前記第２のピクセルのための前記パレットのパレットインデックスを決定することと、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定することと、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングすることと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１１］
前記現在のピクセルのための前記決定されたパレットインデックスに基づいて前記パレットのパレット値を決定することをさらに備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレット値に基づいて前記現在のピクセルをパレットモードコーディングすることを備える、Ｃ１に記載の方法。
［Ｃ１２］
ビデオデータをコーディングするためのデバイスであって、
パレットのパレット値を記憶するように構成されるメモリと、
ビデオコーダとを備え、前記ビデオコーダが、
前記ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定し、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのための前記パレットのパレットインデックスを決定し、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングする
ように構成される、デバイス。
［Ｃ１３］
前記走査順序が水平方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するために、前記ビデオコーダが、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成される、Ｃ１２に記載のデバイス。
［Ｃ１４］
前記走査順序が垂直方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するために、前記ビデオコーダが、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成される、Ｃ１２に記載のデバイス。
［Ｃ１５］
前記ビデオコーダが、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するように構成される、Ｃ１２に記載のデバイス。
［Ｃ１６］
前記ビデオコーダが、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するように構成される、Ｃ１２に記載のデバイス。
［Ｃ１７］
前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に左から右であることに基づいて前記現在のピクセルの右上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に右から左であることに基づいて前記現在のピクセルの左上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に下から上であることに基づいて左下部に位置するピクセルを備え、または、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に上から下であることに基づいて左上部に位置するピクセルを備える、Ｃ１２に記載のデバイス。
［Ｃ１８］
前記ビデオコーダがビデオデコーダを備え、前記ビデオデコーダが、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素を受信し、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示す前記シンタックス要素を受信したことに応答して、前記現在のピクセルの対角方向に位置する前記ピクセルのための前記パレットインデックスに基づいて、前記現在のピクセルのための前記パレットの前記パレットインデックスを決定し、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード復号するように構成される、Ｃ１２に記載のデバイス。
［Ｃ１９］
前記ビデオコーダがビデオエンコーダを備え、前記ビデオエンコーダが、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示すシンタックス要素をシグナリングし、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード符号化するように構成される、Ｃ１２に記載のデバイス。
［Ｃ２０］
前記現在のピクセルが第１のピクセルを備え、前記ビデオコーダが、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、
前記走査順序に対して前記第２のピクセルの直交方向に位置する隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、前記第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定し、
前記第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、および、前記走査順序に対して前記第２のピクセルの直交方向に位置する前記隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する前記隣接ピクセル、と同じパレットインデックスを、前記第２のピクセルの対角方向に位置する前記ピクセルの前記パレットインデックスが有すると、決定したことに応答して、デフォルトのパレットインデックスに基づいて、前記第２のピクセルのための前記パレットのパレットインデックスを決定し、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定し、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングするように構成される、Ｃ１２に記載のデバイス。
［Ｃ２１］
前記現在のピクセルが第１のピクセルを備え、前記ビデオコーダが、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、
前記第２のピクセルがブロック境界に位置すると決定し、
前記第２のピクセルが、前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、前記ブロック境界に位置すると決定したことに応答して、デフォルトのパレットインデックスに基づいて前記第２のピクセルのための前記パレットのパレットインデックスを決定し、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定し、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングするように構成される、Ｃ１２に記載のデバイス。
［Ｃ２２］
前記ビデオコーダが、
前記現在のピクセルのための前記決定されたパレットインデックスに基づいて前記パレットのパレット値を決定するように構成され、
前記現在のピクセルをパレットモードコーディングするために、前記ビデオコーダが、前記決定されたパレット値に基づいて前記現在のピクセルをパレットモードコーディングするように構成される、Ｃ１２に記載のデバイス。
［Ｃ２３］
前記デバイスが、
集積回路（ＩＣ）、
マイクロプロセッサ、または
前記現在のピクセルを表示するためのディスプレイまたは前記現在のピクセルをキャプチャするためのカメラのうちの少なくとも１つを備えるワイヤレス通信デバイス
のうちの１つを備える、Ｃ１２に記載のデバイス。
［Ｃ２４］
ビデオコーディングのためのデバイスであって、
ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定するための手段と、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定するための手段と、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングするための手段と
を備える、デバイス。
［Ｃ２５］
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するための手段をさらに備える、Ｃ２４に記載のデバイス。
［Ｃ２６］
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するための手段をさらに備える、Ｃ２４に記載のデバイス。
［Ｃ２７］
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、ビデオコーディングのためのデバイスの１つまたは複数のプロセッサに、
ビデオデータの現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定させ、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定させ、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングさせる、
非一時的コンピュータ可読記憶媒体。
［Ｃ２８］
１つまたは複数のプロセッサに、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定させる命令をさらに備える、Ｃ２７に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２９］
１つまたは複数のプロセッサに、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定させる命令をさらに備える、Ｃ２７に記載の非一時的コンピュータ可読記憶媒体。
【手続補正書】
【提出日】平成29年6月7日(2017.6.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングする方法であって、
前記ビデオデータの現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを示すシンタックス要素を決定することと、
前記ビデオデータの前記現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定することと、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、前記ビデオデータの前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであると示されている場合、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定することと、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングすることと
を備え、
前記走査順序が水平方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することが、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することを備え、
前記走査順序が垂直方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することが、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することを備える、方法。
【請求項２】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定することをさらに備える、請求項１に記載の方法。
【請求項３】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定することをさらに備える、請求項１に記載の方法。
【請求項４】
前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に左から右であることに基づいて前記現在のピクセルの右上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に右から左であることに基づいて前記現在のピクセルの左上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に下から上であることに基づいて左下部に位置するピクセルを備え、または、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に上から下であることに基づいて左上部に位置するピクセルを備える、請求項１に記載の方法。
【請求項５】
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示す前記シンタックス要素を受信することをさらに備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード復号することを備える、請求項１に記載の方法。
【請求項６】
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを示す前記シンタックス要素をシグナリングすることをさらに備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード符号化することを備える、請求項１に記載の方法。
【請求項７】
前記現在のピクセルが第１のピクセルを備え、前記方法は、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することと、
前記走査順序に対して前記第２のピクセルの直交方向に位置する隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、前記第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定することと、
前記第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、および、前記走査順序に対して前記第２のピクセルの直交方向に位置する前記隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する前記隣接ピクセル、と同じパレットインデックスを、前記第２のピクセルの対角方向に位置する前記ピクセルの前記パレットインデックスが有すると、決定したことに応答して、デフォルトのパレットインデックスに基づいて、前記第２のピクセルのための前記パレットのパレットインデックスを決定することと、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定することと、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングすることと
をさらに備える、請求項１に記載の方法。
【請求項８】
前記現在のピクセルが第１のピクセルを備え、前記方法は、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することと、
前記第２のピクセルがブロック境界に位置すると決定することと、
前記第２のピクセルが、前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、前記ブロック境界に位置すると決定したことに応答して、デフォルトのパレットインデックスに基づいて前記第２のピクセルのための前記パレットのパレットインデックスを決定することと、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定することと、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングすることと
をさらに備える、請求項１に記載の方法。
【請求項９】
前記現在のピクセルのための前記決定されたパレットインデックスに基づいて前記パレットのパレット値を決定することをさらに備え、
前記現在のピクセルをパレットモードコーディングすることが、前記決定されたパレット値に基づいて前記現在のピクセルをパレットモードコーディングすることを備える、請求項１に記載の方法。
【請求項１０】
ビデオデータをコーディングするためのデバイスであって、
パレットのパレット値を記憶するように構成されるメモリと、
ビデオコーダとを備え、前記ビデオコーダが、
前記ビデオデータの現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを示すシンタックス要素を決定し、
前記ビデオデータの前記現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定し、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、前記ビデオデータの前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであると示されている場合、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのための前記パレットのパレットインデックスを決定し、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングする
ように構成され、
前記走査順序が水平方向の走査を備え、前記ビデオコーダが、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成され、前記ビデオコーダが、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成され、
前記走査順序が垂直方向の走査を備え、前記ビデオコーダが、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成され、前記ビデオコーダが、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成される、デバイス。
【請求項１１】
前記ビデオコーダが、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するように構成される、請求項１０に記載のデバイス。
【請求項１２】
前記ビデオコーダが、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するように構成される、請求項１０に記載のデバイス。
【請求項１３】
前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に左から右であることに基づいて前記現在のピクセルの右上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が水平方向に右から左であることに基づいて前記現在のピクセルの左上に位置するピクセルを備え、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に下から上であることに基づいて左下部に位置するピクセルを備え、または、前記現在のピクセルの対角方向に位置する前記ピクセルが、前記走査順序が垂直方向に上から下であることに基づいて左上部に位置するピクセルを備える、請求項１０に記載のデバイス。
【請求項１４】
前記ビデオコーダがビデオデコーダを備え、前記ビデオデコーダが、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示す前記シンタックス要素を受信し、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード復号するように構成される、請求項１０に記載のデバイス。
【請求項１５】
前記ビデオコーダがビデオエンコーダを備え、前記ビデオエンコーダが、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであることを示す前記シンタックス要素をシグナリングし、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモード符号化するように構成される、請求項１０に記載のデバイス。
【請求項１６】
前記現在のピクセルが第１のピクセルを備え、前記ビデオコーダが、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、
前記走査順序に対して前記第２のピクセルの直交方向に位置する隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する隣接ピクセルと同じパレットインデックスを、前記第２のピクセルの対角方向に位置するピクセルのパレットインデックスが有すると決定し、
前記第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、および、前記走査順序に対して前記第２のピクセルの直交方向に位置する前記隣接ピクセル、および前記走査順序に対して前記第２のピクセルに沿って位置する前記隣接ピクセル、と同じパレットインデックスを、前記第２のピクセルの対角方向に位置する前記ピクセルの前記パレットインデックスが有すると、決定したことに応答して、デフォルトのパレットインデックスに基づいて、前記第２のピクセルのための前記パレットのパレットインデックスを決定し、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定し、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングするように構成される、請求項１０に記載のデバイス。
【請求項１７】
前記現在のピクセルが第１のピクセルを備え、前記ビデオコーダが、
第２のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定し、
前記第２のピクセルがブロック境界に位置すると決定し、
前記第２のピクセルが、前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではなく、前記ブロック境界に位置すると決定したことに応答して、デフォルトのパレットインデックスに基づいて前記第２のピクセルのための前記パレットのパレットインデックスを決定し、
前記第２のピクセルのための前記決定されたパレットインデックスに基づいてパレット値を決定し、
前記決定されたパレット値に基づいて前記第２のピクセルをパレットモードコーディングするように構成される、請求項１０に記載のデバイス。
【請求項１８】
前記ビデオコーダが、
前記現在のピクセルのための前記決定されたパレットインデックスに基づいて前記パレットのパレット値を決定するように構成され、
前記現在のピクセルをパレットモードコーディングするために、前記ビデオコーダが、前記決定されたパレット値に基づいて前記現在のピクセルをパレットモードコーディングするように構成される、請求項１０に記載のデバイス。
【請求項１９】
前記デバイスが、
集積回路（ＩＣ）、
マイクロプロセッサ、または
前記現在のピクセルを表示するためのディスプレイまたは前記現在のピクセルをキャプチャするためのカメラのうちの少なくとも１つを備えるワイヤレス通信デバイス
のうちの１つを備える、請求項１０に記載のデバイス。
【請求項２０】
ビデオコーディングのためのデバイスであって、
ビデオデータの現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを示すシンタックス要素を決定するための手段と、
前記ビデオデータの前記現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定するための手段と、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、前記ビデオデータの前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであると示されている場合、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定するための手段と、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングするための手段と
を備え、
前記走査順序が水平方向の走査を備え、前記手段が、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成され、前記ビデオコーダが、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成され、
前記走査順序が垂直方向の走査を備え、前記手段が、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成され、前記ビデオコーダが、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定するように構成される、デバイス。
【請求項２１】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するための手段をさらに備える、請求項２０に記載のデバイス。
【請求項２２】
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定するための手段をさらに備える、請求項２０に記載のデバイス。
【請求項２３】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、ビデオコーディングのためのデバイスの１つまたは複数のプロセッサに、
ビデオデータの現在のピクセルがｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることを示すシンタックス要素を決定させ、
前記ビデオデータの前記現在のピクセルが、走査順序に対して前記現在のピクセルの直交方向に位置する隣接ピクセルのパレットインデックスを使用するｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと、決定させ、
前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定したことに応答して、および、前記ビデオデータの前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされるべきであると示されている場合、前記現在のピクセルの対角方向に位置する前記ビデオデータのピクセルのためのパレットインデックスに基づいて、前記現在のピクセルのためのパレットのパレットインデックスを決定させ、
前記決定されたパレットインデックスに基づいて、前記現在のピクセルをパレットモードコーディングさせ、
前記走査順序が水平方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することが、前記現在のピクセルの上のピクセルと、同じパレットインデックスを有する前記現在のピクセルに水平方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することを備え、
前記走査順序が垂直方向の走査を備え、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することが、前記現在のピクセルの左のピクセルと、同じパレットインデックスを有する前記現在のピクセルに垂直方向に隣接するピクセルとに基づいて、前記現在のピクセルが前記ｃｏｐｙ  ａｂｏｖｅモードでパレットモードコーディングされることが可能ではないと決定することを備える、非一時的コンピュータ可読記憶媒体。
【請求項２４】
１つまたは複数のプロセッサに、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置するピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定させる命令をさらに備える、請求項２３に記載の非一時的コンピュータ可読記憶媒体。
【請求項２５】
１つまたは複数のプロセッサに、
前記現在のピクセルのランのそれぞれのピクセルの対角方向に位置しないピクセルのそれぞれのパレットインデックスに基づいて、前記現在のピクセルのピクセルの前記ランのための前記パレットのパレットインデックスを決定させる命令をさらに備える、請求項２３に記載の非一時的コンピュータ可読記憶媒体。
【国際調査報告】
2017536014.tif 000013
2017536014.tif 000014
2017536014.tif 000015
2017536014.tif 000016
2017536014.tif 000017