(57)【要約】ビデオデータは、１つまたは複数のブロックを備え得、各ブロックは、ブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備えるブロックパレットに関連する。ブロックは、複数のサブブロックにさらに分割される。ブロックのためのサブブロック走査順序およびサブブロックのためのピクセル走査順序が、ブロック内およびサブブロック内でのピクセル値の分布に基づいて適応的に選択される。サブブロックは、ブロックパレットのパレットエントリへのポインタを規定するサブブロックパレットに関連付けられ得る。いくつかのサブブロックは、隣接サブブロックのピクセル値に基づいて符号化され得る。【選択図】図７Ｂ
2017521964.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックが符号化されるべき順序を規定する、前記ブロックの前記サブブロックのためのサブブロック走査順序を、前記ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記複数のサブブロックのうちの第１のサブブロックに対して、前記第１のサブブロックの前記ピクセルが符号化されるべき順序を規定する、前記第１のサブブロックのためのピクセル走査順序を、前記第１のサブブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記選択されたサブブロック走査順序を使用して前記ブロックを符号化することと、ここにおいて、前記第１のサブブロックが、それの選択されたピクセル走査順序を使用して符号化され、ここにおいて、前記第１のサブブロックの前記ピクセルの少なくとも一部分が、前記パレットのパレットエントリに対応するインデックス値を使用して符号化される、
を備える方法。
【請求項２】
ピクセル値がカラー成分値を備える、請求項１に記載の方法。
【請求項３】
前記第１のサブブロックのためのピクセル走査順序を選択することが、
複数の可能なピクセル走査順序を識別することと、
前記複数の可能なピクセル走査順序の各々に対するコストを評価することと、ここにおいて、前記複数の可能なピクセル走査順序のうちの１つの可能なピクセル走査順序に対するコストは、前記可能なピクセル走査順序が前記第１のサブブロックのために使用される場合に前記第１のサブブロックに関連することになるビットストリーム長を示す、
最小コストを有する可能なピクセル走査順序を選択することと
を備える、請求項１に記載の方法。
【請求項４】
前記複数の可能なピクセル走査順序が、水平走査順序、垂直走査順序、水平トラバース走査順序、および垂直トラバース走査順序のうちの少なくとも１つを備える、請求項３に記載の方法。
【請求項５】
前記第１のサブブロックをサブブロックパレットに関連付けることをさらに備え、前記サブブロックパレットが、前記第１のサブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットエントリのサブセットを参照する、請求項１に記載の方法。
【請求項６】
前記サブブロックパレットが、複数のエントリを備え、各エントリが、前記パレットの対応するエントリへのポインタを備える、請求項５に記載の方法。
【請求項７】
前記第１のサブブロックの中のピクセルが、前記第１のサブブロックの前記ピクセルが前記サブブロックパレットに関連するピクセル値に相当しないピクセル値を有することを示すエスケープピクセルに指定され、ここにおいて、前記エスケープピクセルに関連する前記ピクセル値は、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化される、請求項５に記載の方法。
【請求項８】
前記第１のサブブロックが、ランレングスコーディングを使用して符号化され、ここにおいて、ランレングス値が、前記第１のサブブロックの中のピクセルの数に対応するランレングス上限に少なくとも部分的に基づいて短縮される、請求項１に記載の方法。
【請求項９】
前記複数のサブブロックのうちの第２のサブブロックに対して、ここにおいて、前記第２のサブブロックが前記第１のサブブロックに隣接し、前記第２のサブブロックのためのピクセル走査順序を、前記第１のサブブロックのための前記ピクセル走査順序に少なくとも部分的に基づいて決定することをさらに備える、請求項１に記載の方法。
【請求項１０】
ビデオデータを符号化する方法であって、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックのうちの第１のサブブロックに対して、（ｉ）隣接サブブロックの中の指定ピクセルのピクセル値を決定することと、（ｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するか否かを決定することと、（ｉｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するという決定に応答して、前記第１のサブブロックの前記ピクセルが同じピクセル値を有することが前記指定ピクセルであったことを示すフラグをシグナリングすることと、を備え、
ここにおいて、前記指定ピクセルの前記ピクセル値を決定することが前記指定ピクセルのインデックス値を決定することを備え、ここにおいて、前記インデックス値が前記パレットのパレットエントリに対応する、
方法。
【請求項１１】
前記隣接サブブロックが、前記第１のサブブロックの左のサブブロック、または前記第１のサブブロックの上のサブブロックを備え、ここにおいて、前記指定ピクセルが、前記隣接サブブロックの一番左の列の最上部のピクセル、または前記隣接サブブロックの最下部の行の一番左のピクセルを備える、請求項１０に記載の方法。
【請求項１２】
前記フラグがシグナリングされる場合、前記第１のサブブロックの前記ピクセルの前記ピクセル値が符号化されない、請求項１０に記載の方法。
【請求項１３】
前記第１のサブブロックの全てのピクセルが前記指定ピクセルと同じピクセル値を有するとは限らないという決定に応答して、前記フラグをシグナリングしないことをさらに備える、請求項１０に記載の方法。
【請求項１４】
前記フラグがシグナリングされない場合、前記第１のサブブロックをサブブロックパレットに関連付けることをさらに備え、前記サブブロックパレットが、前記第１のサブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットエントリのサブセットを示す、請求項１３に記載の方法。
【請求項１５】
前記第１のサブブロックの中のピクセルがエスケープピクセルであり、ここにおいて、前記エスケープピクセルが、前記サブブロックパレットに関連するピクセル値に相当しないピクセル値を有する前記サブブロックのピクセルであり、ここにおいて、前記エスケープピクセルに関連する前記ピクセル値は、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化される、請求項１４に記載の方法。
【請求項１６】
ビデオエンコーダであって、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックが符号化されるべき順序を規定する、前記ブロックの前記サブブロックのためのサブブロック走査順序を、前記ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記複数のサブブロックのうちの第１のサブブロックに対して、前記第１のサブブロックの前記ピクセルが符号化されるべき順序を規定する、前記第１のサブブロックのためのピクセル走査順序を、前記第１のサブブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記選択されたサブブロック走査順序を使用して前記ブロックを符号化することと、ここにおいて、前記第１のサブブロックが、その選択されたピクセル走査順序を使用して符号化され、ここにおいて、前記第１のサブブロックの前記ピクセルの少なくとも一部分が、前記パレットのパレットエントリに対応するインデックス値を使用して符号化される、
を行うように構成されたプロセッサと
を備えるビデオエンコーダ。
【請求項１７】
ピクセル値がカラー成分値を備える、請求項１６に記載のビデオエンコーダ。
【請求項１８】
前記第１のサブブロックのためのピクセル走査順序を選択するために、前記プロセッサが、
複数の可能なピクセル走査順序を識別することと、
前記複数の可能なピクセル走査順序の各々に対するコストを評価することと、ここにおいて、前記複数の可能なピクセル走査順序のうちの１つの可能なピクセル走査順序に対するコストは、前記可能なピクセル走査順序が前記第１のサブブロックのために使用される場合に前記第１のサブブロックに関連することになるビットストリーム長を示す、
最小コストを有する可能なピクセル走査順序を選択することと
を行うように構成される、請求項１６に記載のビデオエンコーダ。
【請求項１９】
前記複数の可能なピクセル走査順序が、水平走査順序、垂直走査順序、水平トラバース走査順序、および垂直トラバース走査順序のうちの少なくとも１つを備える、請求項１８に記載のビデオエンコーダ。
【請求項２０】
前記プロセッサが、前記第１のサブブロックをサブブロックパレットに関連付けるようにさらに構成され、前記サブブロックパレットが、前記第１のサブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットエントリのサブセットを参照する、請求項１６に記載のビデオエンコーダ。
【請求項２１】
前記サブブロックパレットが、複数のエントリを備え、各エントリが、前記パレットの対応するエントリへのポインタを備える、請求項２０に記載のビデオエンコーダ。
【請求項２２】
前記第１のサブブロックの中のピクセルが、前記第１のサブブロックの前記ピクセルが前記サブブロックパレットに関連するピクセル値に相当しないピクセル値を有することを示すエスケープピクセルに指定され、ここにおいて、前記プロセッサが、前記エスケープピクセルに関連する前記ピクセル値を、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化するように構成される、請求項２０に記載のビデオエンコーダ。
【請求項２３】
前記プロセッサが、ランレングスコーディングを使用して前記第１のサブブロックを符号化するように構成され、ここにおいて、ランレングス値が、前記第１のサブブロックの中のピクセルの数に対応するランレングス上限に少なくとも部分的に基づいて短縮される、請求項１６に記載のビデオエンコーダ。
【請求項２４】
前記複数のサブブロックのうちの第２のサブブロックに対して、ここにおいて、前記第２のサブブロックが前記第１のサブブロックに隣接し、前記プロセッサが、前記第２のサブブロックのためのピクセル走査順序を、前記第１のサブブロックのための前記ピクセル走査順序に少なくとも部分的に基づいて決定するようにさらに構成される、請求項１６に記載のビデオエンコーダ。
【請求項２５】
ビデオエンコーダであって、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックのうちの第１のサブブロックに対して、（ｉ）隣接サブブロックの中の指定ピクセルのピクセル値を決定することと、（ｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するか否かを決定することと、（ｉｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するという決定に応答して、前記第１のサブブロックの前記ピクセルが同じピクセル値を有することが前記指定ピクセルであったことを示すフラグをシグナリングすることと
を行うように構成されたプロセッサとを備え、
ここにおいて、前記指定ピクセルの前記ピクセル値を決定するために、前記プロセッサが、前記指定ピクセルのインデックス値を決定するように構成され、ここにおいて、前記インデックス値が前記パレットのパレットエントリに対応する、
ビデオエンコーダ。
【請求項２６】
前記隣接サブブロックが、前記第１のサブブロックの左のサブブロック、または前記第１のサブブロックの上のサブブロックを備え、ここにおいて、前記指定ピクセルが、前記隣接サブブロックの一番左の列の最上部のピクセル、または前記隣接サブブロックの最下部の行の一番左のピクセルを備える、請求項２５に記載のビデオエンコーダ。
【請求項２７】
前記フラグがシグナリングされる場合、前記プロセッサが、前記第１のサブブロックの前記ピクセルの前記ピクセル値を符号化しないように構成される、請求項２５に記載のビデオエンコーダ。
【請求項２８】
前記プロセッサが、前記第１のサブブロックの全てのピクセルが前記指定ピクセルと同じピクセル値を有するとは限らないという決定に応答して、前記フラグをシグナリングしないようにさらに構成される、請求項２５に記載のビデオエンコーダ。
【請求項２９】
前記フラグがシグナリングされない場合、前記プロセッサが、前記第１のサブブロックをサブブロックパレットに関連付けるように構成され、前記サブブロックパレットが、前記サブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットの前記エントリのサブセットを示す、請求項２８に記載のビデオエンコーダ。
【請求項３０】
前記第１のサブブロックの中のピクセルがエスケープピクセルであり、ここにおいて、前記エスケープピクセルが、前記サブブロックパレットに関連するピクセル値に対応しないピクセル値を有する前記サブブロックのピクセルであり、ここにおいて、前記プロセッサが、前記エスケープピクセルに関連する前記ピクセル値を、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化するように構成される、請求項２９に記載のビデオエンコーダ。
【発明の詳細な説明】
【優先権出願の参照による組込み】
【０００１】
[0001]  本出願は、２０１４年７月２４日に出願された米国仮出願第６２／０２８，６５２号の優先権と利益とを主張するもので、その全てが参照により本明細書に組み込まれる。外国および国内の優先権主張が本出願とともに提出された出願データシートにおいて確認される任意および全ての出願が、連邦規則法典第３７巻第１．５７項に基づいて参照により本明細書に組み込まれる。
【技術分野】
【０００２】
[0002]  本開示は、ビデオコーディングの分野に関する。より詳細には、本開示は、ビデオデータをコーディングするときにピクセル値データをインデックス付けするためのパレットの使用に適用可能である。
【背景技術】
【０００３】
[0003]  デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ）、高効率ビデオコーディング（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されるもののような、ビデオ圧縮技法を実施する。ビデオデバイスは、そのようなビデオコーディング技法を実施することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]  ビデオデータは、ピクセルに関連する色を示すピクセル値を有するピクセルを備え得る。ピクセル値は、１つのカラー成分（例えば、ルーマ値）、２つの成分（例えば、２つのクロマ値）、または３つのカラー成分としてのトリプレット（例えば、ＲＧＢカラー成分、ＹＵＶカラー成分、および／または同様なもの）を含み得る。符号化ビデオビットストリームのビットレートを低減するために、ビデオデータの中に存在するピクセル値をインデックス付けするためにパレットが使用され得る。
【発明の概要】
【０００５】
[0005]  本開示のシステム、方法、およびデバイスは、いくつかの発明的態様をそれぞれ有し、それらの態様は、１つとして、本明細書で開示する望ましい属性を単独で担うものではない。添付の特許請求の範囲を限定することなしに、いくつかの特徴が本明細書で説明される。
【０００６】
[0006]  本明細書で説明する主題の１つまたは複数の実施の詳細は、添付の図面および以下の説明に示されている。他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになろう。以下の図の相対寸法が一定の縮尺で描かれないことがあることに留意されたい。
【０００７】
[0007]  本開示の１つまたは複数の態様によれば、ビデオデータを符号化するための方法が提供される。方法は、１つまたは複数のブロックを備えるビデオデータを受信することを備え得、各ブロックは、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備えるパレットに関連する。１つまたは複数のブロックのうちの１つのブロックに対して、方法は、ブロックを複数のサブブロックに分割することと、各サブブロックが、ブロック内のピクセルのアレイを備える、複数のサブブロックが符号化されるべき順序を規定する、ブロックのサブブロックのためのサブブロック走査順序を、ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することとをさらに備え得る。複数のサブブロックのうちの第１のサブブロックに対して、方法は、第１のサブブロックのピクセルが符号化されるべき順序を規定する、第１のサブブロックのためのピクセル走査順序を、第１のサブブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、選択されたサブブロック走査順序を使用してブロックを符号化することと、ここにおいて、第１のサブブロックが、その選択されたピクセル走査順序を使用して符号化され、ここにおいて、第１のサブブロックのピクセルの少なくとも一部分が、パレットのパレットエントリに対応するインデックス値を使用して符号化される、をさらに備え得る。
【０００８】
[0008]  いくつかの実施形態において、第１のサブブロックは、４×４ピクセルのアレイを備え得る。いくつかの実施形態において、ピクセル値は、カラー成分値を備え得る。
【０００９】
[0009]  いくつかの実施形態において、第１のサブブロックのためのピクセル走査順序を選択することは、複数の可能なピクセル走査順序を識別することと、複数の可能なピクセル走査順序の各々に対するコストを評価することと、ここにおいて、複数の可能なピクセル走査順序のうちの１つの可能なピクセル走査順序に対するコストは、可能なピクセル走査順序が第１のサブブロックのために使用される場合に第１のサブブロックに関連することになるビットストリーム長を示す、最小コストを有する可能なピクセル走査順序を選択することとを備え得る。
【００１０】
[0010]  いくつかの実施形態において，複数の可能なピクセル走査順序は、水平走査順序、垂直走査順序、水平トラバース(traverse)走査順序、および垂直トラバース走査順序のうちの少なくとも１つを備え得る。
【００１１】
[0011]  いくつかの実施形態において、方法は、第１のサブブロックをサブブロックパレットに関連付けることをさらに備え得、ここにおいて、サブブロックパレットは、第１のサブブロックのピクセルにおいて使用されるピクセル値に対応するパレットエントリのサブセットを参照する。サブブロックパレットは、複数のエントリを備え得、各エントリは、パレットの対応するエントリへのポインタを備える。
【００１２】
[0012]  いくつかの実施形態において、第１のサブブロックの中のピクセルは、第１のサブブロックのピクセルがサブブロックパレットに関連するピクセル値に相当しないピクセル値を有することを示すエスケープピクセルに指定される。エスケープピクセルに関連するピクセル値は、エスケープピクセルとして指定されない第１のサブブロックのピクセルが符号化された後に符号化され得る。
【００１３】
[0013]  いくつかの実施形態において，第１のサブブロックは、ランレングスコーディングを使用して符号化され得、ここにおいて、ランレングス値は、第１のサブブロックの中のピクセルの数に対応するランレングス上限(run-length upper bound)に少なくとも部分的に基づいて短縮される。
【００１４】
[0014]  いくつかの実施形態において、方法は、複数のサブブロックのうちの第２のサブブロックに対して、ここにおいて、第２のサブブロックが第１のサブブロックに隣接し、第２のサブブロックのためのピクセル走査順序を、第１のサブブロックのためのピクセル走査順序に少なくとも部分的に基づいて決定することをさらに備え得る。
【００１５】
[0015]  本開示の別の態様は、ビデオデータを符号化するための方法を提供する。方法は、１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備えるパレットに関連する、１つまたは複数のブロックのうちの１つのブロックに対して、ブロックを複数のサブブロックに分割することと、各サブブロックが、ブロック内のピクセルのアレイを備える、複数のサブブロックのうちの第１のサブブロックに対して、（ｉ）隣接サブブロックの中の指定ピクセル(designated pixel)のピクセル値を決定することと、（ｉｉ）第１のサブブロックのピクセルが隣接サブブロックの指定ピクセルと同じピクセル値を有するか否かを決定することと、（ｉｉｉ）第１のサブブロックのピクセルが隣接サブブロックの指定ピクセルと同じピクセル値を有するという決定に応答して、第１のサブブロックのピクセルが同じピクセル値を有することが指定ピクセルであったことを示すフラグをシグナリングすることと、を備え得、ここにおいて、指定ピクセルのピクセル値を決定することが指定ピクセルのインデックス値を決定することを備え、ここにおいて、インデックス値がパレットのパレットエントリに対応する。
【００１６】
[0016]  いくつかの実施形態において、隣接サブブロックは、第１のサブブロックの左のサブブロック、または第１のサブブロックの上のサブブロックを備える。指定ピクセルは、隣接サブブロックの一番左の列の最上部のピクセル、または隣接サブブロックの最下部の行の一番左のピクセルを備え得る。
【００１７】
[0017]  いくつかの実施形態において、フラグがシグナリングされる場合、第１のサブブロックのピクセルのピクセル値は符号化されない。いくつかの実施形態において、第１のサブブロックの全てのピクセルが指定ピクセルと同じピクセル値を有するとは限らないという決定に応答して、フラグはシグナリングされ得ない。
【００１８】
[0018]  いくつかの実施形態において、フラグがシグナリングされない場合、方法は、第１のサブブロックをサブブロックパレットに関連付けることをさらに備え得、サブブロックパレットは、サブブロックのピクセルにおいて使用されるピクセル値に対応するパレットのエントリのサブセットを示す。サブブロックパレットは、複数のエントリを備え得、各エントリは、パレットの対応するエントリへのポインタを備える。いくつかの実施形態において、第１のサブブロックの中のピクセルは、サブブロックパレットに関連するピクセル値に相当しないピクセル値を有するエスケープピクセルであり得、ここにおいて、エスケープピクセルに関連するピクセル値は、エスケープピクセルとして指定されない第１のサブブロックのピクセルが符号化された後に符号化される。サブブロックは、ランレングスコーディングを使用して符号化され得、ここにおいて、ランレングス値は、サブブロックの中のピクセルの数に対応するランレングス上限に少なくとも部分的に基づいて短縮される。
【００１９】
[0019]  本開示の別の態様は、ビデオエンコーダを提供する。ビデオエンコーダは、ビデオデータを記憶するように構成されたメモリと、メモリと通信しているプロセッサとを備え得る。いくつかの実施形態において、プロセッサは、１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備えるパレットに関連する、１つまたは複数のブロックのうちの１つのブロックに対して、ブロックを複数のサブブロックに分割することと、各サブブロックが、ブロック内のピクセルのアレイを備える、を行うように構成され得る。さらに、プロセッサは、複数のサブブロックが符号化されるべき順序を規定する、ブロックのサブブロックのためのサブブロック走査順序を、ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、複数のサブブロックのうちの第１のサブブロックに対して、第１のサブブロックのピクセルが符号化されるべき順序を規定する、第１のサブブロックのピクセル走査順序を、第１のサブブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することとを行うように構成され得る。プロセッサは、選択されたサブブロック走査順序を使用してブロックを符号化するようにさらに構成され得、ここにおいて、第１のサブブロックが、その選択されたピクセル走査順序を使用して符号化され、ここにおいて、第１のサブブロックのピクセルの少なくとも一部分が、パレットのパレットエントリに対応するインデックス値を使用して符号化される。
【００２０】
[0020]  いくつかの実施形態において、第１のサブブロックは、４×４ピクセルのアレイを備える。ピクセル値は、カラー成分値を備え得る。
【００２１】
[0021]  いくつかの実施形態において、プロセッサは、複数の可能なピクセル走査順序を識別することと、複数の可能なピクセル走査順序の各々に対するコストを評価することと、ここにおいて、複数の可能なピクセル走査順序のうちの１つの可能なピクセル走査順序に対するコストは、可能なピクセル走査順序が第１のサブブロックのために使用される場合に第１のサブブロックに関連することになるビットストリーム長を示す、最小コストを有する可能なピクセル走査順序を選択することとによって、第１のサブブロックのためのピクセル走査順序を選択する。複数の可能なピクセル走査順序は、水平走査順序、垂直走査順序、水平トラバース走査順序、および垂直トラバース走査順序のうちの少なくとも１つを備え得る。
【００２２】
[0022]  いくつかの実施形態において、プロセッサは、第１のサブブロックをサブブロックパレットに関連付けるようにさらに構成され、サブブロックパレットは、第１のサブブロックのピクセルにおいて使用されるピクセル値に対応するパレットエントリのサブセットを参照する。サブブロックパレットは、複数のエントリを備え得、各エントリは、パレットの対応するエントリへのポインタを備える。いくつかの実施形態において、第１のサブブロックの中のピクセルは、第１のサブブロックのピクセルがサブブロックパレットに関連するピクセル値に相当しないピクセル値を有することを示すエスケープピクセルに指定され得、ここにおいて、エスケープピクセルに関連するピクセル値は、エスケープピクセルとして指定されない第１のサブブロックのピクセルが符号化された後に符号化される。
【００２３】
[0023]  いくつかの実施形態において，第１のサブブロックは、ランレングスコーディングを使用して符号化され得、ここにおいて、ランレングス値は、第１のサブブロックの中のピクセルの数に対応するランレングス上限に少なくとも部分的に基づいて短縮される。
【００２４】
[0024]  いくつかの実施形態において、プロセッサは、複数のサブブロックのうちの第２のサブブロックに対して、ここにおいて、第２のサブブロックが第１のサブブロックに隣接し、第２のサブブロックのためのピクセル走査順序を、第１のサブブロックのためのピクセル走査順序に少なくとも部分的に基づいて決定するようにさらに構成され得る。
【００２５】
[0025]  本開示の別の態様は、ビデオエンコーダを提供する。ビデオエンコーダは、ビデオデータを記憶するように構成されたメモリと、メモリと通信しているプロセッサとを備え得る。いくつかの実施形態において、プロセッサは、１つまたは複数のブロックを備えるビデオデータを受信するように構成され得、各ブロックは、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備えるパレットに関連する。１つまたは複数のブロックのうちの１つのブロックに対して、プロセッサは、ブロックを複数のサブブロックにさらに分割することと、各サブブロックが、ブロック内のピクセルのアレイを備える、複数のサブブロックのうちの第１のサブブロックに対して、（ｉ）隣接サブブロックの中の指定ピクセルのピクセル値を決定することと、（ｉｉ）第１のサブブロックのピクセルが隣接サブブロックの指定ピクセルと同じピクセル値を有するか否かを決定することと、（ｉｉｉ）第１のサブブロックのピクセルが隣接サブブロックの指定ピクセルと同じピクセル値を有するという決定に応答して、第１のサブブロックのピクセルが同じピクセル値を有することが指定ピクセルであったことを示すフラグをシグナリングすることとを行い得、ここにおいて、指定ピクセルのピクセル値を決定することが指定ピクセルのインデックス値を決定することを備え、ここにおいて、インデックス値がパレットのパレットエントリに対応する。
【００２６】
[0026]  いくつかの実施形態において、隣接サブブロックは、第１のサブブロックの左のサブブロック、または第１のサブブロックの上のサブブロックを備える。指定ピクセルは、隣接サブブロックの一番左の列の最上部のピクセル、または隣接サブブロックの最下部の行の一番左のピクセルを備え得る。
【００２７】
[0027]  いくつかの実施形態において、フラグがシグナリングされる場合、第１のサブブロックのピクセルのピクセル値は符号化されない。
【００２８】
[0028]  いくつかの実施形態において、プロセッサは、第１のサブブロックの全てのピクセルが指定ピクセルと同じピクセル値を有するとは限らないという決定に応答して、フラグをシグナリングしないように構成され得る。フラグがシグナリングされない場合、プロセッサは、第１のサブブロックをサブブロックパレットに関連付け得、サブブロックパレットは、サブブロックのピクセルにおいて使用されるピクセル値に対応するパレットのエントリのサブセットを示す。サブブロックパレットは、複数のエントリを備え得、各エントリは、パレットの対応するエントリへのポインタを備える。
【００２９】
[0029]  いくつかの実施形態において、複数のサブブロックのうちの１つのサブブロックの中のピクセルは、エスケープピクセルであり得、ここにおいて、エスケープピクセルは、サブブロックパレットに関連するピクセル値に相当しないピクセル値を有するサブブロックのピクセルである。エスケープピクセルに関連するピクセル値は、エスケープピクセルとして指定されない第１のサブブロックのピクセルが符号化された後に符号化され得る。
【００３０】
[0030]  いくつかの実施形態において、フラグがシグナリングされない場合、サブブロックは、ランレングスコーディングを使用して符号化され、ここにおいて、ランレングス値は、サブブロックの中のピクセルの数に対応するランレングス上限に少なくとも部分的に基づいて短縮される。
【図面の簡単な説明】
【００３１】
【図１Ａ】本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図１Ｂ】本開示で説明する態様による技法を行い得る別の例示的なビデオ符号化および復号システムを示すブロック図である。
【図２Ａ】本開示で説明する態様による技法を実施し得るビデオエンコーダの一例を示すブロック図である。
【図２Ｂ】本開示で説明する態様による技法を実施し得るビデオエンコーダの一例を示すブロック図である。
【図３Ａ】本開示で説明する態様による技法を実施し得るビデオデコーダの一例を示すブロック図である。
【図３Ｂ】本開示で説明する態様による技法を実施し得るビデオデコーダの一例を示すブロック図である。
【図４】いくつかの実施形態による、ブロックとともに使用され得るパレットを示す図である。
【図５】いくつかの実施形態による、強いブロックベースパターンを示すブロックの一部分を示す図である。
【図６Ａ】いくつかの実施形態による、サブブロックを符号化するために使用され得る異なるサブブロック走査順序を示す図である。
【図６Ｂ】いくつかの実施形態による、サブブロックを符号化するために使用され得る異なるサブブロック走査順序を示す図である。
【図７Ａ】いくつかの実施形態による、異なるピクセル走査順序に関連し得る２つの異なるサブブロックを示す図である。
【図７Ｂ】いくつかの実施形態による、異なるピクセル走査順序に関連し得る２つの異なるサブブロックを示す図である。
【図８】いくつかの実施形態による、適応走査順序を使用してビデオデータのブロックを符号化するためのプロセスのフローチャートである。
【図９】いくつかの実施形態による、隣接サブブロックのピクセルと同じである単一のピクセル値を有するサブブロックを示す図である。
【図１０】いくつかの実施形態によるサブブロックピクセル値断定を実施するためのフローチャートである。
【図１１】いくつかの実施形態によるブロックパレットとサブブロックパレットとを示す図である。
【図１２】いくつかの実施形態によるサブブロックパレットを実施するためのプロセスのフローチャートである。
【図１３】いくつかの実施形態による、ブロックに対応する符号化ビデオデータビットストリームの構造を示す図である。
【詳細な説明】
【００３２】
[0047]  一般に、本開示は、高効率ビデオコーディング（ＨＥＶＣ）などのアドバンストビデオコーデックのコンテキストにおけるパレットおよびサブブロックの使用に関する。より詳細には、本開示は、ビデオコーディングのコンテキストにおけるパレットおよびサブブロックの使用を通じて改善されたビットレートコーディングのためのシステムおよび方法に関する。
【００３３】
[0048]  いくつかの実施形態は、スケーラブルビデオコーディングのコンテキストにおいて実施され得る。スケーラブルビデオコーディングは、参照レイヤ（ＲＬ：reference layer）と呼ばれることがあるベースレイヤ（ＢＬ：base layer）と、１つまたは複数のスケーラブルエンハンスメントレイヤ（ＥＬ：enhancement layer）とが使用されるビデオコーディングを指す。スケーラブルビデオコーディングでは、ＢＬは、ベースレベルの品質でビデオデータを搬送できる。１つまたは複数のＥＬは、例えば、より高い空間レベル、時間レベル、および／または信号対雑音比（ＳＮＲ：signal-to-noise）レベルをサポートするために、追加のビデオデータを搬送できる。ＥＬは、前に符号化されたレイヤに対して定義され得る。例えば、最下位レイヤはＢＬとして働き得、最上位レイヤはＥＬとして働き得る。中間レイヤは、ＥＬまたはＲＬのいずれか、あるいはその両方として働き得る。例えば、中間レイヤ（例えば、最下位レイヤでもなく最上位レイヤでもないレイヤ）は、ＢＬまたは介在ＥＬなどの中間レイヤの下のレイヤのためのＥＬであり得、同時に、中間レイヤの上の１つまたは複数のＥＬのためのＲＬとして働き得る。同様に、ＨＥＶＣ規格のマルチビューまたは３Ｄ拡張では、複数のビューがあり得、１つのビューの情報は、別のビューの情報（例えば、動き推定、動きベクトル予測および／または他の冗長）をコーディング（例えば、符号化または復号）するために利用され得る。
【００３４】
[0049]  以下の説明では、いくつかの実施形態に関係するＨ．２６４／ＡＶＣ技法が記載され、ＨＥＶＣ規格および関係する技法も説明される。ＨＥＶＣ規格および／またはＨ．２６４規格のコンテキストにおいて、いくつかの実施形態が本明細書に記載されるが、本明細書で開示されるシステムおよび方法が任意の適切なビデオコーディング規格に適用可能であり得ることを、当業者なら諒解されよう。例えば、本明細書で開示する実施形態は、（例えば、国際電気通信連合電気通信標準化部門［ＩＴＵ−Ｔ］ビデオコーディングエキスパートグループ［ＶＣＥＧ］または国際標準化機構／国際電気標準会議［ＩＳＯ／ＩＥＣ］ムービングピクチャエキスパートグループ［ＭＰＥＧ］によって開発された規格を含む）次の規格、すなわち、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１ビジュアル、ＩＴＵ−Ｔ  Ｈ．２６２もしくはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２ビジュアル、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４ビジュアル、およびそのスケーラブルビデオコーディング（ＳＶＣ）およびマルチビュービデオコーディング（ＭＶＣ）拡張を含むＩＴＵ−Ｔ  Ｈ．２６４（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとも呼ばれる）のうちの、１つまたは複数に適用可能であり得る。
【００３５】
[0050]  ＨＥＶＣは、概して、多くの点で、前のビデオコーディング規格のフレームワークに従う。ＨＥＶＣにおける予測の単位は、いくつかの前のビデオコーディング規格における予測の単位（例えば、マクロブロック）とは異なる。事実上、マクロブロックの概念は、いくつかの前のビデオコーディング規格において理解されているように、ＨＥＶＣ中に存在しない。マクロブロックは、他の考えられる利益の中でも高いフレキシビリティを与え得る、４分木方式に基づく階層構造と置き換えられる。例えば、ＨＥＶＣ方式内で、コーディングユニット（ＣＵ：Coding Unit）、予測ユニット（ＰＵ：Prediction Unit）、および変換ユニット（ＴＵ：Transform Unit）という３つのタイプのブロックが定義される。ＣＵは領域分割の基本単位を指すことがある。ＣＵはマクロブロックの概念に類似するとみなされてよいが、ＨＥＶＣは、ＣＵの最大サイズを制限せず、コンテンツ適応性を改善するために４つの等しいサイズのＣＵへの再帰的分割を可能にし得る。ＰＵは、インター／イントラ予測の基本単位とみなされてよく、単一のＰＵは、不規則なイメージパターンを効率的にコーディングするために、複数の任意形状区分を含み得る。ＴＵは、変換の基本単位とみなされてよい。ＴＵはＰＵとは無関係に定義され得るが、ＴＵのサイズはＴＵが属するＣＵのサイズに限定されることがある。３つの異なる概念へのブロック構造のこの分離は、各ユニットがそのユニットのそれぞれの役割に従って最適化されることを可能にし得、このことはコーディング効率の改善をもたらし得る。
【００３６】
[0051]  単に説明の目的で、本明細書で開示するいくつかの実施形態は、ビデオデータの２つのレイヤ（例えば、ＢＬのなどの下位レイヤおよびＥＬなどの上位レイヤ）のみを含む例を用いて説明する。ビデオデータの「レイヤ」は、概して、ビュー、フレームレート、解像度などの、少なくとも１つの共通の特性を有するピクチャのシーケンスを指すことがある。例えば、レイヤは、マルチビュービデオデータの特定のビュー（例えば、視点）に関連したビデオデータを含み得る。別の例として、レイヤは、スケーラブルビデオデータの特定のレイヤに関連したビデオデータを含み得る。従って、本開示は、ビデオデータのレイヤおよびビューを互換的に指すことがある。例えば、ビデオデータのビューは、ビデオデータのレイヤと呼ばれることがあり、ビデオデータのレイヤは、ビデオデータのビューと呼ばれることがある。加えて、マルチレイヤコーデック（マルチレイヤビデオコーダまたはマルチレイヤエンコーダデコーダとも呼ばれる）は、マルチビューコーデックまたはスケーラブルコーデック（例えば、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、ＳＨＶＣ、または別のマルチレイヤコーディング技法を使用してビデオデータを符号化および／または復号するように構成されるコーデック）を一緒に指すことがある。ビデオ符号化およびビデオ復号は、概して、両方ともビデオコーディングと呼ばれることがある。そのような例が複数のＢＬ、ＲＬおよび／またはＥＬを含む構成に適用可能であり得ることを理解されたい。さらに、説明を簡単にするために、以下の開示は、いくつかの実施形態に関して「フレーム」または「ブロック」という用語を含む。しかしながら、これらの用語は、限定的であることを意味しない。例えば、以下で説明する技法は、ブロック（例えば、ＣＵ、ＰＵ、ＴＵ、マクロブロックなど）、スライス、フレームなどの、任意の適切なビデオユニットとともに使用され得る。
【００３７】
ビデオコーディング規格
[0052]  ビデオ画像、ＴＶ画像、静止画像、またはビデオレコーダもしくはコンピュータによって生成された画像などの、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルまたはサンプルからなり得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の純粋な量は、リアルタイム画像伝送を不可能にすることになる。送信されるべき情報の量を低減するために、ＪＰＥＧ、ＭＰＥＧおよびＨ．２６３規格など、いくつかの異なる圧縮方法が開発された。
【００３８】
[0053]  ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１ビジュアルと、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２ビジュアルと、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４ビジュアルと、それのスケーラブルビデオコーディング（ＳＶＣ）およびマルチビュービデオコーディング（ＭＶＣ）拡張を含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとも呼ばれる）ＩＴＵ−Ｔ  Ｈ．２６４とを含む。
【００３９】
[0054]  さらに、ビデオコーディング規格、すなわち、ＨＥＶＣが、ＩＴＵ−Ｔ  ＶＣＥＧとＩＳＯ／ＩＥＣ  ＭＰＥＧとのジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって開発されている。ＨＥＶＣドラフト１０についての完全引用は、文書ＪＣＴＶＣ−Ｌ１００３、Ｂｒｏｓｓら、「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）Ｔｅｘｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｄｒａｆｔ  １０」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）、第１２回会合：ジュネーブ、スイス、２０１３年１月１４日〜２０１３年１月２３日である。ＨＥＶＣへのマルチビュー拡張、すなわち、ＭＶ−ＨＥＶＣ、およびＳＨＶＣと名付けられたＨＥＶＣへのスケーラブル拡張も、ＪＣＴ−３Ｖ（ＩＴＵ−Ｔ／ＩＳＯ／ＩＥＣジョイントコラボレーティブチームオン３Ｄビデオコーディング拡張開発）およびＪＣＴ−ＶＣによって、それぞれ開発されている。
【００４０】
ビデオコーディングシステム
[0055]  新規のシステム、装置、および方法の様々な態様は、これ以降、添付図面を参照しながら、より十分に説明される。しかしながら、本開示は、多くの異なる形態で実施可能であり、本開示の全体を通して示される任意の特定の構造または機能に限定されるものと解釈されるべきでない。むしろ、本開示が、入念で完全であり、本開示の範囲を当業者に十分に伝達するように、これらの態様が提供される。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様と無関係に実施されるにせよ、本開示の他の態様と組み合わせて実施されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。例えば、本明細書に記載される任意の数の態様を使用して装置が実施されてよく、または方法が実施されてもよい。さらに、本開示の範囲は、本明細書に記載する本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示する任意の態様は、特許請求の範囲の１つまたは複数の要素により実施されてもよいことを理解されたい。
【００４１】
[0056]  特定の態様について本明細書で説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好ましい態様のいくつかの利益および利点が述べられるが、本開示の範囲は、特定の利益、使用、または目的に限定されることを意図しない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能なものであり、そのうちのいくつかが図面および好ましい態様の以下の説明において例として示される。詳細な説明および図面は、限定的ではなく、本開示の例示にすぎず、本開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
【００４２】
[0057]  添付の図面は、例を示す。添付の図面内で参照番号によって指示される要素は、以下の説明において同様の参照番号で指示される要素に対応する。本開示では、序数語（例えば、「第１の」、「第２の」、「第３の」など）で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの、異なる要素を指すために使用されるにすぎない。
【００４３】
[0058]  図１Ａは、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願に記載される態様は、トランスコーダ（例えば、ビットストリームを復号し別のビットストリームを再符号化できるデバイス）およびミドルボックス（例えば、ビットストリームを修正、変換、および／または別のやり方で操作できるデバイス）などの、他の関係するデバイスに拡張され得る。
【００４４】
[0059]  図１Ａに示すように、ビデオコーディングシステム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。図１Ａの例では、ソースデバイス１２および宛先デバイス１４は別個のデバイス上にある−  詳細には、ソースデバイス１２はソースデバイスの部分であり、宛先デバイス１４は宛先デバイスの部分である。しかしながら、ソースおよび宛先デバイス１２、１４が、図１Ｂの例に示すように、同じデバイス上にあってもよく、または同じデバイスの部分であってもよいことに留意されたい。
【００４５】
[0060]  もう一度図１Ａを参照すると、ソースデバイス１２および宛先デバイス１４はそれぞれ、デスクトップコンピュータ、ノートブック（例えば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。様々な実施形態において、ソースデバイス１２および宛先デバイス１４はワイヤレス通信のために装備され得る。
【００４６】
[0061]  宛先デバイス１４は、リンク１６を介して、復号されるべき符号化ビデオデータを受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを動かすことが可能な任意のタイプの媒体またはデバイスを備え得る。図１Ａの例では、リンク１６は、ソースデバイス１２が、符号化ビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され得、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路などの、任意のワイヤレス通信媒体または有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークなどのパケットベースのネットワーク、またはインターネットなどのグローバルネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を容易にするために有用であり得る、任意の他の機器を含み得る。
【００４７】
[0062]  代替的に、符号化データは出力インターフェース２２から、随意の記憶デバイス３１に出力され得る。同様に、符号化データは、例えば、宛先デバイス１４の入力インターフェース２８によって、記憶デバイス３１からアクセスされ得る。記憶デバイス３１は、ハードドライブ、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたは局所的にアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス３１は、ソースデバイス１２によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに相当し得る。宛先デバイス１４は、記憶されているビデオデータに、記憶デバイス３１からストリーミングまたはダウンロードを介してアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶でき、その符号化ビデオデータを宛先デバイス１４に送信できる、任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ（例えば、ウェブサイト用の）、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（例えば、ワイヤレスローカルエリアネットワーク［ＷＬＡＮ］接続）、ワイヤード接続（例えば、デジタル加入者回線（ＤＳＬ）、ケーブルモデムなど）、またはその両方の組合せを含み得る。記憶デバイス３１からの符号化ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、またはその両方の組合せであり得る。
【００４８】
[0063]  本開示の技法は、ワイヤレスの用途または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信（例えば、動的適応ストリーミングオーバーハイパーテキスト転送プロトコル（ＨＴＴＰ）など）、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などの用途をサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
【００４９】
[0064]  図１Ａの例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、例えばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、図１Ｂの例に示すように、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き電話またはビデオ電話を形成し得る。しかしながら、本開示に記載される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスアプリケーションおよび／または有線アプリケーションに適用され得る。
【００５０】
[0065]  キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して、宛先デバイス１４に直接送信され得る。符号化ビデオデータは、さらに（または代替的に）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのために、記憶デバイス３１に記憶され得る。図１Ａおよび図１Ｂに示すビデオエンコーダ２０は、図２Ａに示すビデオエンコーダ２０、図２Ｂに示すビデオエンコーダ２３、または本明細書に記載される任意の他のビデオエンコーダを備えてよい。
【００５１】
[0066]  図１Ａの例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、符号化ビデオデータを、リンク１６を介しておよび／または記憶デバイス３１から受信し得る。リンク１６を介して通信され、または記憶デバイス３１上に提供された符号化ビデオデータは、ビデオデータを復号する際のビデオデコーダ３０などのビデオデコーダによる使用のために、ビデオエンコーダ２０によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体に記憶されるか、またはファイルサーバに記憶される符号化ビデオデータに含まれ得る。図１Ａおよび図１Ｂに示すビデオデコーダ３０は、図３Ａに示すビデオデコーダ３０、図３Ｂに示すビデオデコーダ３３、または本明細書に記載される任意の他のビデオデコーダを備えてよい。
【００５２】
[0067]  ディスプレイデバイス３２は、宛先デバイス１４と一体化されるか、またはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み得、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００５３】
[0068]  関係する態様では、図１Ｂは、例示的なビデオ符号化および復号システム１０’を示し、ここにおいて、ソースおよび宛先デバイス１２、１４は、デバイス１１上にあり、またはその部分である。デバイス１１は、「スマート」フォンなどの電話ハンドセットであり得る。デバイス１１は、ソースおよび宛先デバイス１２、１４と動作可能に通信している随意のプロセッサ／コントローラデバイス１３を含み得る。図１Ｂのシステム１０’およびその構成要素は、図１Ａのシステム１０およびその構成要素と場合によっては類似である。
【００５４】
[0069]  ビデオエンコーダ２０およびビデオデコーダ３０は、ＨＥＶＣ規格など、ビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，ＡＶＣと呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他の独自の規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。但し、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３を含む。
【００５５】
[0070]  図１Ａおよび図１Ｂの例に示されないが、ビデオエンコーダ２０およびビデオデコーダ３０は各々、オーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００５６】
[0071]  ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの様々な適切なエンコーダ回路のいずれかとして実施され得る。本技法が部分的にソフトウェアで実施されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し得、本開示の技法を行うために、１つまたは複数のプロセッサを使用して、命令をハードウェアで実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（例えば、コーデック）の一部として統合され得る。
【００５７】
ビデオコーディングプロセス
[0072]  上記で簡略に述べられたように、ビデオエンコーダ２０はビデオデータを符号化する。ビデオデータは、１つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャは、ビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコーディングされた表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャと、関連するデータとを含み得る。コード化ピクチャは、ピクチャのコーディングされた表現である。
【００５８】
[0073]  ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化演算を行い得る。ビデオエンコーダ２０がピクチャに対して符号化演算を行うとき、ビデオエンコーダ２０は、一連のコード化ピクチャと、関連するデータとを生成し得る。関連するデータは、ビデオパラメータセット（ＶＰＳ：video parameter set）と、シーケンスパラメータセット（ＳＰＳ）と、ピクチャパラメータセット（ＰＰＳ）と、適応パラメータセット（ＡＰＳ）と、他のシンタックス構造とを含み得る。ＳＰＳは、ピクチャの０個以上のシーケンスに適用可能なパラメータを含み得る。ＰＰＳは、０個以上のピクチャに適用可能なパラメータを含み得る。ＡＰＳは、０個以上のピクチャに適用可能なパラメータを含み得る。ＡＰＳ中のパラメータは、ＰＰＳ中のパラメータよりも変化する可能性が高いパラメータであり得る。
【００５９】
[0074]  コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの２次元アレイであり得る。ビデオブロックの各々は、ツリーブロックに関連付けられる。いくつかの事例では、ツリーブロックは、最大コーディングユニット（ＬＣＵ：largest coding unit）と呼ばれることがある。ＨＥＶＣのツリーブロックは、Ｈ．２６４／ＡＶＣのような従来の規格のマクロブロックに、広い意味で類似し得る。しかしながら、ツリーブロックは、特定のサイズに必ずしも限定されず、１つまたは複数のＣＵを含み得る。ビデオエンコーダ２０は、ツリーブロックのビデオブロックを、ＣＵに関連付けられたビデオブロックに区分するために、４分木区分を使用し得、従って、「ツリーブロック」という名前である。
【００６０】
[0075]  いくつかの例では、ビデオエンコーダ２０は、ピクチャを複数のスライスに区分し得る。スライスの各々は、整数個のＣＵを含み得る。いくつかの事例では、スライスは、整数個のツリーブロックを備える。他の事例では、スライスの境界は、ツリーブロック内にあり得る。
【００６１】
[0076]  ピクチャに対して符号化演算を行うことの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を行い得る。ビデオエンコーダ２０がスライスに対して符号化演算を行うとき、ビデオエンコーダ２０は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは、「コード化スライス」と呼ばれることがある。
【００６２】
[0077]  コード化スライスを生成するために、ビデオエンコーダ２０は、スライス中の各ツリーブロックに対して符号化演算を行い得る。ビデオエンコーダ２０がツリーブロックに対して符号化演算を行うとき、ビデオエンコーダ２０は、コーディングされたツリーブロックを生成し得る。コーディングされたツリーブロックは、ツリーブロックの符号化されたバージョンを表すデータを備え得る。
【００６３】
[0078]  ビデオエンコーダ２０がコード化スライスを生成するとき、ビデオエンコーダ２０は、ラスタ走査順序に従って、スライス中のツリーブロックに対して符号化演算を行い（例えば、符号化）得る。例えば、ビデオエンコーダ２０は、スライス中のツリーブロックの一番上の行にわたって左から右に進み、次いでツリーブロックの次の下の行にわたって左から右に進み、以下同様に進む順序で、ビデオエンコーダ２０がスライス中のツリーブロックの各々を符号化するまで、スライスのツリーブロックを符号化し得る。
【００６４】
[0079]  ラスタ走査順序に従ってツリーブロックを符号化した結果として、所与のツリーブロックの上および左のツリーブロックは符号化されていることがあるが、所与のツリーブロックの下および右のツリーブロックはまだ符号化されていない。従って、ビデオエンコーダ２０は、所与のツリーブロックを符号化するとき、所与のツリーブロックの上および左のツリーブロックを符号化することによって生成される情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ２０は、所与のツリーブロックを符号化するとき、所与のツリーブロックの下および右のツリーブロックを符号化することによって生成される情報にアクセスできないことがある。
【００６５】
[0080]  コーディングされたツリーブロックを生成するために、ビデオエンコーダ２０は、ビデオブロックを徐々により小さいビデオブロックに分割するために、ツリーブロックのビデオブロック上で４分木区分を再帰的に行い得る。より小さいビデオブロックの各々は、異なるＣＵに関連付けられ得る。例えば、ビデオエンコーダ２０は、ツリーブロックのビデオブロックを４つの等しいサイズのサブブロックに区分し得、サブブロックのうちの１つまたは複数を４つの等しいサイズのサブサブブロックに区分し得、以下同様である。区分されたＣＵは、そのビデオブロックが他のＣＵに関連付けられたビデオブロックに区分されているＣＵであり得る。区分されていないＣＵは、そのビデオブロックが他のＣＵに関連付けられたビデオブロックに区分されていないＣＵであり得る。
【００６６】
[0081]  ビットストリーム中の１つまたは複数のシンタックス要素は、ビデオエンコーダ２０がツリーブロックのビデオブロックを区分し得る最大の回数を示し得る。ＣＵのビデオブロックは形状が正方形であり得る。ＣＵのビデオブロックのサイズ（例えば、ＣＵのサイズ）は、８×８のピクセルから、最大で６４×６４以上のピクセルを有するツリーブロックのビデオブロックのサイズ（例えば、ツリーブロックのサイズ）までわたり得る。
【００６７】
[0082]  ビデオエンコーダ２０は、ｚ走査順序に従って、ツリーブロックの各ＣＵに対して符号化演算を行い（例えば、符号化）得る。言い換えれば、ビデオエンコーダ２０は、左上のＣＵと、右上のＣＵと、左下のＣＵと、次いで右下のＣＵとを、その順序で符号化し得る。ビデオエンコーダ２０が、区分されているＣＵに対して符号化演算を行うとき、ビデオエンコーダ２０は、ｚ走査順序に従って、区分されているＣＵのビデオブロックのサブブロックに関連付けられたＣＵを符号化し得る。言い換えれば、ビデオエンコーダ２０は、左上のサブブロックに関連付けられたＣＵと、右上のサブブロックに関連付けられたＣＵと、左下のサブブロックに関連付けられたＣＵと、次いで右下のサブブロックに関連付けられたＣＵとを、その順序で符号化し得る。
【００６８】
[0083]  ｚ走査順序に従ってツリーブロックのＣＵを符号化した結果として、所与のＣＵの上、左上、右上、左、および左下のＣＵは符号化されていることがある。所与のＣＵの下または右のＣＵはまだ符号化されていない。従って、ビデオエンコーダ２０は、所与のＣＵを符号化するとき、所与のＣＵに隣接するいくつかのＣＵを符号化することによって生成される情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ２０は、所与のＣＵを符号化するとき、所与のＣＵに隣接する他のＣＵを符号化することによって生成される情報にアクセスできないことがある。
【００６９】
[0084]  ビデオエンコーダ２０が、区分されていないＣＵを符号化するとき、ビデオエンコーダ２０は、ＣＵに対する１つまたは複数の予測ユニット（ＰＵ）を生成し得る。ＣＵのＰＵの各々は、ＣＵのビデオブロック内の異なるビデオブロックに関連付けられ得る。ビデオエンコーダ２０は、ＣＵの各ＰＵに対して予測ビデオブロックを生成し得る。ＰＵの予測ビデオブロックは、サンプルのブロックであり得る。ビデオエンコーダ２０は、ＰＵのための予測ビデオブロックを生成するために、イントラ予測またはインター予測を使用し得る。
【００７０】
[0085]  ビデオエンコーダ２０がＰＵの予測ビデオブロックを生成するためにイントラ予測を使用するとき、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号サンプルに基づいて、ＰＵの予測ビデオブロックを生成し得る。ビデオエンコーダ２０がＣＵのＰＵの予測ビデオブロックを生成するためにイントラ予測を使用する場合、ＣＵはイントラ予測されたＣＵである。ビデオエンコーダ２０がＰＵの予測ビデオブロックを生成するためにインター予測を使用するとき、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ビデオブロックを生成し得る。ビデオエンコーダ２０がＣＵのＰＵの予測ビデオブロックを生成するためにインター予測を使用する場合、ＣＵはインター予測されたＣＵである。
【００７１】
[0086]  さらに、ビデオエンコーダ２０がＰＵのための予測ビデオブロックを生成するためにインター予測を使用するとき、ビデオエンコーダ２０は、ＰＵのための動き情報を生成し得る。ＰＵのための動き情報は、ＰＵの１つまたは複数の参照ブロックを示し得る。ＰＵの各参照ブロックは、参照ピクチャ内のビデオブロックであり得る。参照ピクチャは、ＰＵに関連付けられたピクチャ以外のピクチャであり得る。いくつかの事例では、ＰＵの参照ブロックは、ＰＵの「参照サンプル」と呼ばれることもある。ビデオエンコーダ２０は、ＰＵの参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。
【００７２】
[0087]  ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵのための予測ビデオブロックを生成した後、ビデオエンコーダ２０は、ＣＵのＰＵのための予測ビデオブロックに基づいて、ＣＵに対する残差データを生成し得る。ＣＵの残差データは、ＣＵのＰＵのための予測ビデオブロック中のサンプルと、ＣＵの元のビデオブロック中のサンプルとの差分を示し得る。
【００７３】
[0088]  さらに、区分されていないＣＵに対して符号化演算を行うことの一部として、ビデオエンコーダ２０は、ＣＵの残差データを、ＣＵの変換ユニット（ＴＵ）に関連付けられた残差データの１つまたは複数のブロック（例えば、残差ビデオブロック）に区分するために、ＣＵの残差データに対して再帰的な４分木区分を行い得る。ＣＵの各ＴＵは、異なる残差ビデオブロックに関連付けられ得る。
【００７４】
[0089]  ビデオエンコーダ２０は、ＴＵに関連付けられた変換係数ブロック（例えば、変換係数のブロック）を生成するために、ＴＵに関連付けられた残差ビデオブロックに１つまたは複数の変換を適用し得る。概念的に、変換係数ブロックは変換係数の２次元（２Ｄ）行列であり得る。
【００７５】
[0090]  変換係数ブロックを生成した後、ビデオエンコーダ２０は、変換係数ブロックに対して量子化プロセスを行い得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、変換係数の一部または全部に関連するビット深度を低減し得る。例えば、量子化中に、ｎビット変換係数はｍビット変換係数に切り捨てられ得、ここで、ｎはｍよりも大きい。
【００７６】
[0091]  ビデオエンコーダ２０は、各ＣＵを、量子化パラメータ（ＱＰ）値に関連付け得る。ＣＵに関連付けられたＱＰ値は、ビデオエンコーダ２０が、ＣＵに関連付けられた変換係数ブロックをどのように量子化するかを決定し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。
【００７７】
[0092]  ビデオエンコーダ２０が変換係数ブロックを量子化した後、ビデオエンコーダ２０は、量子化された変換係数ブロックの中で変換係数を表すシンタックス要素のセットを生成し得る。ビデオエンコーダ２０は、これらのシンタックス要素のうちのいくつかに、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context Adaptive Binary Arithmetic Coding）演算などのエントロピー符号化演算を適用し得る。コンテンツ適応型可変長コーディング（ＣＡＶＬＣ：content adaptive variable length coding）、確率間隔区分エントロピー（ＰＩＰＥ：probability interval partitioning entropy）コーディング、または他のバイナリ算術コーディングなど、他のエントロピーコーディング技法も使用され得る。
【００７８】
[0093]  ビデオエンコーダ２０によって生成されるビットストリームは、一連のネットワークアブストラクションレイヤ（ＮＡＬ：Network Abstraction Layer）ユニットを含み得る。ＮＡＬユニットの各々は、ＮＡＬユニット中のデータのタイプの指示と、データを含むバイトとを含む、シンタックス構造であり得る。例えば、ＮＡＬユニットは、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、コード化スライス、補足エンハンスメント情報（ＳＥＩ：supplemental enhancement information）、アクセスユニットデリミタ、フィラーデータ、または別のタイプのデータを表すデータを含み得る。ＮＡＬユニット中のデータは、様々なシンタックス構造を含み得る。
【００７９】
[0094]  ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。ビットストリームは、ビデオエンコーダ２０によって符号化されたビデオデータのコーディングされた表現を含み得る。ビデオデコーダ３０がビットストリームを受信すると、ビデオデコーダ３０は、ビットストリームに対して解析動作(parsing operation)を行い得る。ビデオデコーダ３０が解析動作を行うとき、ビデオデコーダ３０は、ビットストリームからシンタックス要素を抽出し得る。ビデオデコーダ３０は、ビットストリームから抽出されたシンタックス要素に基づいて、ビデオデータのピクチャを再構成し得る。シンタックス要素に基づいてビデオデータを再構成するためのプロセスは、一般に、シンタックス要素を生成するためにビデオエンコーダ２０によって行われるプロセスの逆であり得る。
【００８０】
[0095]  ビデオデコーダ３０がＣＵに関連付けられたシンタックス要素を抽出した後、ビデオデコーダ３０は、シンタックス要素に基づいて、ＣＵのＰＵのための予測ビデオブロックを生成し得る。さらに、ビデオデコーダ３０は、ＣＵのＴＵに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ３０は、ＣＵのＴＵに関連付けられた残差ビデオブロックを再構成するために、変換係数ブロックに対して逆変換を行い得る。予測ビデオブロックを生成し、残差ビデオブロックを再構成した後、ビデオデコーダ３０は、予測ビデオブロックおよび残差ビデオブロックに基づいて、ＣＵのビデオブロックを再構成し得る。このようにして、ビデオデコーダ３０は、ビットストリーム中のシンタックス要素に基づいて、ＣＵのビデオブロックを再構成し得る。
【００８１】
ビデオエンコーダ
[0096]  図２Ａは、本開示で説明する態様による技法を実施し得るビデオエンコーダの一例を示すブロック図である。ビデオエンコーダ２０は、ＨＥＶＣの場合など、ビデオフレームの単一のレイヤを処理するように構成され得る。さらに、ビデオエンコーダ２０は、本開示の技法のいずれかまたは全てを行うように構成され得る。一例として、予測処理ユニット１００は、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。別の実施形態において、ビデオエンコーダ２０は、本開示で説明する技法のいずれかまたは全てを行うように構成された随意のレイヤ間予測ユニット１２８を含む。他の実施形態において、レイヤ間予測は、予測処理ユニット１００（例えば、インター予測ユニット１２１および／またはイントラ予測ユニット１２６）によって行われ得、その場合、レイヤ間予測ユニット１２８は省略され得る。しかしながら、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ２０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。
【００８２】
[0097]  説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。図２Ａに示す例は、シングルレイヤコーデックのためのものである。しかしながら、図２Ｂに関してさらに説明するように、ビデオエンコーダ２０の一部または全部は、マルチレイヤコーデックの処理のために複製され得る。
【００８３】
[0098]  ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを行い得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために、空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレーム内またはピクチャ内のビデオの時間的冗長性を低減または除去するために時間予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのコーディングモードのいずれかを参照し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを参照し得る。
【００８４】
[0099]  図２Ａの例では、ビデオエンコーダ２０は複数の機能構成要素を含む。ビデオエンコーダ２０の機能構成要素は、予測処理ユニット１００と、残差生成ユニット１０２と、変換処理ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換ユニット１１０と、再構成ユニット１１２と、フィルタユニット１１３と、復号ピクチャバッファ１１４と、エントロピー符号化ユニット１１６とを含む。予測処理ユニット１００は、インター予測ユニット１２１と、動き推定ユニット１２２と、動き補償ユニット１２４と、イントラ予測ユニット１２６と、レイヤ間予測ユニット１２８とを含む。他の例では、ビデオエンコーダ２０は、より多いか、より少ないか、または異なる機能構成要素を含み得る。さらに、動き推定ユニット１２２および動き補償ユニット１２４は、高度に統合され得るが、図２Ａの例では、説明の目的で別々に表されている。
【００８５】
[0100]  ビデオエンコーダ２０は、ビデオデータを受信し得る。ビデオエンコーダ２０は、様々なソースからビデオデータを受信し得る。例えば、ビデオエンコーダ２０は、ビデオソース１８（例えば、図１Ａまたは図１Ｂに示す）または別のソースからビデオデータを受信し得る。ビデオデータは、一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ２０は、ピクチャの各々に対して符号化演算を行い得る。ピクチャに対して符号化演算を行うことの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を行い得る。スライスに対して符号化演算を行うことの一部として、ビデオエンコーダ２０は、スライス中のツリーブロックに対して符号化演算を行い得る。
【００８６】
[0101]  ツリーブロックに対して符号化演算を行うことの一部として、予測処理ユニット１００は、ビデオブロックを徐々により小さいビデオブロックに分割するために、ツリーブロックのビデオブロックに対して４分木区分を行い得る。より小さいビデオブロックの各々は、異なるＣＵに関連付けられ得る。例えば、予測処理ユニット１００は、ツリーブロックのビデオブロックを４つの等しいサイズのサブブロックに区分し得、サブブロックのうちの１つまたは複数を４つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【００８７】
[0102]  ＣＵに関連付けられたビデオブロックのサイズは、８×８サンプルから、最大で６４×６４サンプル以上のツリーブロックのサイズにまでわたり得る。本開示では、「Ｎ×Ｎ」および「Ｎ  ｂｙ  Ｎ」は、垂直方向の寸法および水平方向の寸法に関するビデオブロックのサンプルの寸法、例えば、１６×１６サンプルまたは１６  ｂｙ  １６サンプルを指すために、互換的に使用され得る。一般に、１６×１６のビデオブロックは、垂直方向に１６個のサンプルを有し（ｙ＝１６）、水平方向に１６個のサンプルを有する（ｘ＝１６）。同様に、Ｎ×Ｎのブロックは、一般に、垂直方向にＮ個のサンプルを有し、水平方向にＮ個のサンプルを有し、ここで、Ｎは非負整数値を表す。
【００８８】
[0103]  さらに、ツリーブロックに対して符号化演算を行うことの一部として、予測処理ユニット１００は、ツリーブロック用の階層的な４分木データ構造を生成し得る。例えば、ツリーブロックは、４分木データ構造のルートノードに対応し得る。予測処理ユニット１００がツリーブロックのビデオブロックを４つのサブブロックに区分する場合、ルートノードは、４分木データ構造中に４つの子ノードを有する。子ノードの各々は、サブブロックのうちの１つに関連付けられたＣＵに対応する。予測処理ユニット１００がサブブロックのうちの１つを４つのサブサブブロックに区分する場合、サブブロックに関連付けられたＣＵに対応するノードは、サブサブブロックのうちの１つに関連付けられたＣＵに各々が対応する、４つの子ノードを有し得る。
【００８９】
[0104]  ４分木データ構造の各ノードは、対応するツリーブロックまたはＣＵのシンタックスデータ（例えば、シンタックス要素）を含み得る。例えば、４分木の中のノードは、そのノードに対応するＣＵのビデオブロックが４つのサブブロックに区分（例えば、分割）されているかどうかを示すスプリットフラグを含み得る。ＣＵのためのシンタックス要素は、再帰的に定義され得、ＣＵのビデオブロックがサブブロックに分割されているかどうかに依存し得る。ビデオブロックが区分されていないＣＵは、４分木データ構造におけるリーフノードに対応し得る。コーディングされたツリーブロックは、対応するツリーブロック用の４分木データ構造に基づくデータを含み得る。
【００９０】
[0105]  ビデオエンコーダ２０は、ツリーブロックの区分されていない各ＣＵに対して符号化演算を行い得る。ビデオエンコーダ２０が、区分されていないＣＵに対して符号化演算を行うとき、ビデオエンコーダ２０は、区分されていないＣＵの符号化された表現を表すデータを生成する。
【００９１】
[0106]  ＣＵに対して符号化演算を行うことの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵの中で、ＣＵのビデオブロックを区分し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なＰＵサイズをサポートし得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズ、および２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、２Ｎ×ｎＵ、ｎＬ×２Ｎ、ｎＲ×２Ｎ、または同様の対称ＰＵサイズでのインター予測とをサポートし得る。ビデオエンコーダ２０およびビデオデコーダ３０は、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズに対する非対称区分もサポートし得る。いくつかの例では、予測処理ユニット１００は、ＣＵのビデオブロックの辺に直角に接触しない境界に沿ってＣＵのＰＵの間でＣＵのビデオブロックを区分するように、幾何学的な区分を行い得る。
【００９２】
[0107]  インター予測ユニット１２１は、ＣＵの各ＰＵに対してインター予測を行い得る。インター予測は、時間圧縮を実現し得る。ＰＵに対してインター予測を行うために、動き推定ユニット１２２は、ＰＵのための動き情報を生成し得る。動き補償ユニット１２４は、ＰＵベースの動き情報およびＣＵに関連付けられたピクチャ以外のピクチャ（例えば、参照ピクチャ）の復号サンプルのための、予測ビデオブロックを生成し得る。本開示では、動き補償ユニット１２４によって生成される予測ビデオブロックは、インター予測ビデオブロックと呼ばれることがある。
【００９３】
[0108]  スライスは、Ｉスライス、Ｐスライス、またはＢスライスであり得る。動き推定ユニット１２２および動き補償ユニット１２４は、ＰＵがＩスライス中にあるのか、Ｐスライス中にあるのか、それともＢスライス中にあるのかに応じて、ＣＵのＰＵのための異なる演算を行い得る。Ｉスライス中では、全てのＰＵがイントラ予測される。従って、ＰＵがＩスライス中にある場合、動き推定ユニット１２２および動き補償ユニット１２４は、ＰＵに対してインター予測を行わない。
【００９４】
[0109]  ＰＵがＰスライス中にある場合、ＰＵを含むピクチャは、「リスト０」と呼ばれる参照ピクチャのリストに関連付けられる。リスト０中の参照ピクチャの各々は、他のピクチャのインター予測のために使用され得るサンプルを含む。動き推定ユニット１２２がＰスライス中のＰＵに関して動き推定演算を行うとき、動き推定ユニット１２２は、ＰＵのための参照ブロックについて、リスト０中の参照ピクチャを探索し得る。ＰＵの参照ブロックは、ＰＵのビデオブロック中のサンプルに最も密接に対応するサンプルのセット、例えば、サンプルのブロックであり得る。動き推定ユニット１２２は、参照ピクチャ中のサンプルのセットがどの程度密接にＰＵのビデオブロック中のサンプルに対応するかを決定するために、様々なメトリックを使用し得る。例えば、動き推定ユニット１２２は、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって、参照ピクチャ中のサンプルのセットがどの程度密接にＰＵのビデオブロック中のサンプルに対応するかを決定し得る。
【００９５】
[0110]  Ｐスライス中のＰＵの参照ブロックを識別した後、動き推定ユニット１２２は、参照ブロックを含んでいる、リスト０中の参照ピクチャを示す参照インデックスと、ＰＵと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。様々な例において、動き推定ユニット１２２は、動きベクトルを異なる精度に生成し得る。例えば、動き推定ユニット１２２は、１／４サンプル精度、１／８サンプル精度、または他の分数のサンプル精度で動きベクトルを生成し得る。分数のサンプル精度の場合、参照ブロック値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット１２４は、ＰＵの動き情報によって識別された参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【００９６】
[0111]  ＰＵがＢスライス中にある場合、ＰＵを含むピクチャは、「リスト０」および「リスト１」と呼ばれる参照ピクチャの２つのリストに関連付けられ得る。いくつかの例では、Ｂスライスを含むピクチャは、リスト０とリスト１の組合せである、リストの組合せと関連付けられ得る。
【００９７】
[0112]  さらに、ＰＵがＢスライス中にある場合、動き推定ユニット１２２は、ＰＵのための単方向予測または双方向予測を行い得る。動き推定ユニット１２２がＰＵのための単方向予測を行うとき、動き推定ユニット１２２は、ＰＵのための参照ブロックについて、リスト０またはリスト１の参照ピクチャを探索し得る。動き推定ユニット１２２は、次いで、参照ブロックを含む、リスト０またはリスト１中の参照ピクチャを示す参照インデックスと、ＰＵと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照インデックスと、予測方向インジケータと、動きベクトルとを出力し得る。予測方向インジケータは、参照インデックスが、リスト０中の参照ピクチャを示すのか、それともリスト１中の参照ピクチャを示すのかを示し得る。動き補償ユニット１２４は、ＰＵの動き情報によって示された参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【００９８】
[0113]  動き推定ユニット１２２がＰＵのための双方向予測を行うとき、動き推定ユニット１２２は、ＰＵのための参照ブロックについて、リスト０中の参照ピクチャを探索し得、また、ＰＵのための別の参照ブロックについて、リスト１中の参照ピクチャを探索し得る。動き推定ユニット１２２は、次いで、参照ブロックを含む、リスト０およびリスト１中の参照ピクチャを示す参照インデックスと、参照ブロックとＰＵとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット１２２は、ＰＵの動き情報として、ＰＵの参照インデックスと動きベクトルとを出力し得る。動き補償ユニット１２４は、ＰＵの動き情報によって示された参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【００９９】
[0114]  いくつかの事例では、動き推定ユニット１２２は、ＰＵのための動き情報のフルセットをエントロピー符号化ユニット１１６に出力しない。そうではなく、動き推定ユニット１２２は、別のＰＵの動き情報を参照して、ＰＵの動き情報をシグナリングし得る。例えば、動き推定ユニット１２２は、ＰＵの動き情報が、隣接ＰＵの動き情報と十分に類似していると決定し得る。この例では、動き推定ユニット１２２は、ＰＵに関連付けられたシンタックス構造において、ＰＵが隣接ＰＵと同じ動き情報を有することをビデオデコーダ３０に示す値を示し得る。別の例では、動き推定ユニット１２２は、ＰＵに関連付けられたシンタックス構造において、隣接ＰＵと動きベクトル差分（ＭＶＤ）とを識別し得る。動きベクトル差分は、ＰＵの動きベクトルと、示される隣接ＰＵの動きベクトルとの差分を示す。ビデオデコーダ３０は、ＰＵの動きベクトルを決定するために、示された隣接ＰＵの動きベクトルと、動きベクトル差分とを使用し得る。第２のＰＵの動き情報をシグナリングするときに第１のＰＵの動き情報を参照することによって、ビデオエンコーダ２０は、より少数のビットを使用して、第２のＰＵの動き情報をシグナリングすることが可能であり得る。
【０１００】
[0115]  ＣＵに対して符号化演算を行うことの一部として、イントラ予測ユニット１２６は、ＣＵのＰＵに対してイントラ予測を行い得る。イントラ予測は、空間圧縮を実現し得る。イントラ予測ユニット１２６がＰＵに対してイントラ予測を行うとき、イントラ予測ユニット１２６は、同じピクチャ中の他のＰＵの復号サンプルに基づいて、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。イントラ予測ユニット１２６は、Ｉスライス、Ｐスライス、およびＢスライス中のＰＵに対してイントラ予測を行い得る。
【０１０１】
[0116]  ＰＵに対してイントラ予測を行うために、イントラ予測ユニット１２６は、ＰＵのための予測データの複数のセットを生成するために、複数のイントラ予測モードを使用し得る。イントラ予測ユニット１２６がＰＵのための予測データのセットを生成するためにイントラ予測モードを使用するとき、イントラ予測ユニット１２６は、イントラ予測モードと関連する方向および／または勾配で、隣接ＰＵのビデオブロックからＰＵのビデオブロックにわたってサンプルを延ばし得る。ＰＵ、ＣＵ、およびツリーブロックについて左から右、上から下の符号化順序を仮定すると、隣接ＰＵは、ＰＵの上、右上、左上、または左にあり得る。イントラ予測ユニット１２６は、ＰＵのサイズに応じて、様々な数のイントラ予測モード、例えば、３３個の方向性イントラ予測モードを使用し得る。
【０１０２】
[0117]  予測処理ユニット１００は、動き補償ユニット１２４によってＰＵのために生成された予測データ、またはイントラ予測ユニット１２６によってＰＵのために生成された予測データの中から、ＰＵのための予測データを選択し得る。いくつかの例では、予測処理ユニット１００は、予測データのセットのレート／ひずみメトリックに基づいて、ＰＵのための予測データを選択する。
【０１０３】
[0118]  予測処理ユニット１００がイントラ予測ユニット１２６によって生成された予測データを選択する場合、予測処理ユニット１００は、ＰＵのための予測データを生成するために使用されたイントラ予測モード、例えば、選択されたイントラ予測モードをシグナリングし得る。予測処理ユニット１００は、選択されたイントラ予測モードを様々な方法でシグナリングし得る。例えば、選択されたイントラ予測モードは、隣接ＰＵのイントラ予測モードと同じであることが起こり得る。言い換えれば、隣接ＰＵのイントラ予測モードは、現在ＰＵに対して最確モードであり得る。従って、予測処理ユニット１００は、選択されたイントラ予測モードが隣接ＰＵのイントラ予測モードと同じであることを示すためのシンタックス要素を生成し得る。
【０１０４】
[0119]  上記で説明したように、ビデオエンコーダ２０は、レイヤ間予測ユニット１２８を含み得る。レイヤ間予測ユニット１２８は、スケーラブルビデオコーディングにおいて利用可能である１つまたは複数の異なるレイヤ（例えば、ＢＬまたはＲＬ）を使用して、現在ブロック（例えば、ＥＬ中の現在ブロック）を予測するように構成される。そのような予測は、レイヤ間予測と呼ばれることがある。レイヤ間予測ユニット１２８は、レイヤ間冗長性を低減するための予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例は、レイヤ間イントラ予測と、レイヤ間動き予測と、レイヤ間残差予測とを含む。レイヤ間イントラ予測は、ＥＬ中の現在ブロックを予測するために、ＢＬの中でコロケートされているブロックの再構成を使用する。レイヤ間動き予測は、ＥＬ中の動作を予測するために、ＢＬの動き情報を使用する。レイヤ間残差予測は、ＥＬの残差を予測するために、ＢＬの残差を使用する。レイヤ間予測方式の各々について、以下でより詳細に説明する。
【０１０５】
[0120]  予測処理ユニット１００がＣＵのＰＵのための予測データを選択した後、残差生成ユニット１０２は、ＣＵのビデオブロックからＣＵのＰＵの予測ビデオブロックを差し引くこと（例えば、マイナス符号によって示される）によって、ＣＵの残差データを生成し得る。ＣＵの残差データは、ＣＵのビデオブロック中のサンプルの異なるサンプル成分に対応する２Ｄ残差ビデオブロックを含み得る。例えば、残差データは、ＣＵのＰＵの予測ビデオブロック中のサンプルのルミナンス成分と、ＣＵの元のビデオブロック中のサンプルのルミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。さらに、ＣＵの残差データは、ＣＵのＰＵの予測ビデオブロック中のサンプルのクロミナンス成分と、ＣＵの元のビデオブロック中のサンプルのクロミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。
【０１０６】
[0121]  予測処理ユニット１００は、ＣＵの残差ビデオブロックをサブブロックに区分するために、４分木区分を行い得る。分割されていない各残差ビデオブロックは、ＣＵの異なるＴＵに関連付けられ得る。ＣＵのＴＵに関連付けられる残差ビデオブロックのサイズおよび位置は、ＣＵのＰＵに関連付けられたビデオブロックのサイズおよび位置に基づいてもよく、または基づかなくてもよい。「残差４分木」（ＲＱＴ）と呼ばれる４分木構造は、残差ビデオブロックの各々に関連付けられたノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。
【０１０７】
[0122]  変換処理ユニット１０４は、ＴＵに関連付けられた残差ビデオブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵのための１つまたは複数の変換係数ブロックを生成し得る。変換係数ブロックの各々は、変換係数の２Ｄ行列であり得る。変換処理ユニット１０４は、ＴＵに関連付けられた残差ビデオブロックに様々な変換を適用し得る。例えば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向変換、または概念的に類似の変換を、ＴＵに関連付けられた残差ビデオブロックに適用し得る。
【０１０８】
[0123]  変換処理ユニット１０４が、ＴＵに関連付けられた変換係数ブロックを生成した後、量子化ユニット１０６は、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット１０６は、ＣＵに関連付けられたＱＰ値に基づいて、ＣＵのＴＵに関連付けられた変換係数ブロックを量子化し得る。
【０１０９】
[0124]  ビデオエンコーダ２０は、様々な方法でＱＰ値をＣＵに関連付け得る。例えば、ビデオエンコーダ２０は、ＣＵに関連付けられたツリーブロックに対して、レートひずみ分析を行い得る。レートひずみ分析では、ビデオエンコーダ２０は、ツリーブロックに対して符号化演算を複数回行うことによって、ツリーブロックの複数のコーディングされた表現を生成し得る。ビデオエンコーダ２０が、ツリーブロックの異なる符号化表現を生成するとき、ビデオエンコーダ２０は、異なるＱＰ値をＣＵに関連付け得る。最小のビットレートおよびひずみメトリックを有するツリーブロックのコーディングされた表現で所与のＱＰ値がＣＵに関連付けられるとき、ビデオエンコーダ２０は、所与のＱＰ値がＣＵに関連付けられることをシグナリングし得る。
【０１１０】
[0125]  逆量子化ユニット１０８および逆変換ユニット１１０は、変換係数ブロックから残差ビデオブロックを再構成するために、それぞれ、逆量子化と逆変換とを変換係数ブロックに適用し得る。再構成ユニット１１２は、ＴＵに関連付けられた再構成されたビデオブロックを生成するために、再構成された残差ビデオブロックを、予測処理ユニット１００によって生成された１つまたは複数の予測ビデオブロックからの対応するサンプルに追加し得る。このようにＣＵの各ＴＵについてビデオブロックを再構成することによって、ビデオエンコーダ２０は、ＣＵのビデオブロックを再構成し得る。
【０１１１】
[0126]  再構成ユニット１１２がＣＵのビデオブロックを再構成した後、フィルタユニット１１３は、ＣＵに関連付けられたビデオブロックにおけるブロッキングアーティファクトを低減するために、デブロッキング演算を行い得る。１つまたは複数のデブロッキング演算を行った後、フィルタユニット１１３は、ＣＵの再構成されたビデオブロックを復号ピクチャバッファ１１４に記憶し得る。動き推定ユニット１２２および動き補償ユニット１２４は、後続のピクチャのＰＵに対してインター予測を行うために、再構成されたビデオブロックを含む参照ピクチャを使用し得る。さらに、イントラ予測ユニット１２６は、ＣＵと同じピクチャ中の他のＰＵに対してイントラ予測を行うために、復号ピクチャバッファ１１４の中の再構成されたビデオブロックを使用し得る。
【０１１２】
[0127]  エントロピー符号化ユニット１１６は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。例えば、エントロピー符号化ユニット１１６は、量子化ユニット１０６から変換係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１６がデータを受信すると、エントロピー符号化ユニット１１６は、エントロピー符号化データを生成するために、１つまたは複数のエントロピー符号化演算を行い得る。例えば、ビデオエンコーダ２０は、ＣＡＶＬＣ演算、ＣＡＢＡＣ演算、変数間（Ｖ２Ｖ：variable-to-variable）レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ）コーディング演算、または別のタイプのエントロピー符号化演算をデータに対して行い得る。エントロピー符号化ユニット１１６は、エントロピー符号化データを含むビットストリームを出力し得る。
【０１１３】
[0128]  データに対してエントロピー符号化演算を行うことの一部として、エントロピー符号化ユニット１１６は、コンテキストモデルを選択し得る。エントロピー符号化ユニット１１６がＣＡＢＡＣ演算を行っている場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。ＣＡＢＡＣのコンテキストでは、「ビン」という用語は、シンタックス要素の２値化されたバージョンのビットを指すために使用される。
【０１１４】
マルチレイヤビデオエンコーダ
[0129]  図２Ｂは、本開示で説明する態様による技法を実施し得るマルチレイヤビデオエンコーダ２３（単にビデオエンコーダ２３とも呼ばれる）の一例を示すブロック図である。ビデオエンコーダ２３は、ＳＨＶＣおよびマルチビューコーディングの場合など、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオエンコーダ２３は、本開示の技法のいずれかまたは全てを行うように構成され得る。
【０１１５】
[0130]  ビデオエンコーダ２３はビデオエンコーダ２０Ａとビデオエンコーダ２０Ｂとを含み、それらの各々はビデオエンコーダ２０として構成され得、ビデオエンコーダ２０に関して上記で説明した機能を行い得る。さらに、参照番号の再利用によって示されるように、ビデオエンコーダ２０Ａおよび２０Ｂは、ビデオエンコーダ２０としてのシステムおよびサブシステムのうちの少なくともいくつかを含み得る。ビデオエンコーダ２３は、２つのビデオエンコーダ２０Ａおよび２０Ｂを含むように示されるが、ビデオエンコーダ２３は、そのように限定されず、任意の数のビデオエンコーダ２０のレイヤを含み得る。いくつかの実施形態において、ビデオエンコーダ２３は、アクセスユニット中の各ピクチャまたは各フレームに対してビデオエンコーダ２０を含み得る。例えば、５つのピクチャを含むアクセスユニットは、５つのエンコーダレイヤを含むビデオエンコーダによって処理または符号化され得る。いくつかの実施形態において、ビデオエンコーダ２３は、アクセスユニット中のフレームよりも多くのエンコーダレイヤを含み得る。いくつかのそのような場合では、ビデオエンコーダのレイヤのうちのいくつかは、いくつかのアクセスユニットを処理するときに非アクティブであり得る。
【０１１６】
[0131]  ビデオエンコーダ２０Ａおよび２０Ｂに加えて、ビデオエンコーダ２３は、リサンプリングユニット９０を含み得る。リサンプリングユニット９０は、場合によっては、例えば、ＥＬを作成するために、受信されたビデオフレームのＢＬをアップサンプリングし得る。リサンプリングユニット９０は、フレームの受信されたＢＬに関連付けられた特定の情報をアップサンプリングし得るが、他の情報をアップサンプリングしないことがある。例えば、リサンプリングユニット９０は、ＢＬの空間サイズまたはピクセルの数をアップサンプリングし得るが、スライスの数またはピクチャ順序カウントは一定のままであり得る。場合によっては、リサンプリングユニット９０は、受信されたビデオを処理しないことがあり、および／または随意であり得る。例えば、場合によっては、予測処理ユニット１００は、アップサンプリングを行い得る。いくつかの実施形態において、リサンプリングユニット９０は、レイヤをアップサンプリングし、スライス境界ルールおよび／またはラスタ走査ルールのセットに準拠するように、１つまたは複数のスライスを再編成、再定義、修正、または調整するように構成される。アクセスユニット中のＢＬまたは下位レイヤをアップサンプリングするものとして主に説明したが、場合によっては、リサンプリングユニット９０は、レイヤをダウンサンプリングし得る。例えば、ビデオのストリーミング中に帯域幅が低減した場合、フレームは、アップサンプリングされるのではなく、ダウンサンプリングされ得る。
【０１１７】
[0132]  リサンプリングユニット９０は、下位レイヤエンコーダ（例えば、ビデオエンコーダ２０Ａ）の復号ピクチャバッファ１１４からピクチャまたはフレーム（またはピクチャに関連付けられたピクチャ情報）を受信し、ピクチャ（または受信されたピクチャ情報）をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤエンコーダと同じアクセスユニット中のピクチャを符号化するように構成された、上位レイヤエンコーダ（例えば、ビデオエンコーダ２０Ｂ）の予測処理ユニット１００に供給され得る。場合によっては、上位レイヤエンコーダは、下位レイヤエンコーダから除去された１つのレイヤである。他の場合には、図２Ｂのレイヤ０ビデオエンコーダとレイヤ１エンコーダとの間に、１つまたは複数の上位レイヤエンコーダがあり得る。
【０１１８】
[0133]  場合によっては、リサンプリングユニット９０は、省略またはバイパスされ得る。そのような場合、ビデオエンコーダ２０Ａの復号ピクチャバッファ１１４からのピクチャは、直接、または少なくともリサンプリングユニット９０に供給されずに、ビデオエンコーダ２０Ｂの予測処理ユニット１００に供給され得る。例えば、ビデオエンコーダ２０Ｂに供給されたビデオデータ、およびビデオエンコーダ２０Ａの復号ピクチャバッファ１１４からの参照ピクチャが、同じサイズまたは解像度である場合、参照ピクチャは、いかなるリサンプリングも伴わずにビデオエンコーダ２０Ｂに供給され得る。
【０１１９】
[0134]  いくつかの実施形態において、ビデオエンコーダ２３は、ビデオエンコーダ２０Ａにビデオデータを供給する前に、ダウンサンプリングユニット９４を使用して下位レイヤエンコーダに供給されるべきビデオデータをダウンサンプリングする。代替的に、ダウンサンプリングユニット９４は、ビデオデータをアップサンプリングまたはダウンサンプリングすることが可能なリサンプリングユニット９０であり得る。また他の実施形態において、ダウンサンプリングユニット９４は省略され得る。
【０１２０】
[0135]  図２Ｂに示すように、ビデオエンコーダ２３は、マルチプレクサ９８、すなわちｍｕｘをさらに含み得る。ｍｕｘ９８は、ビデオエンコーダ２３から合成ビットストリームを出力できる。合成ビットストリームは、ビデオエンコーダ２０Ａおよび２０Ｂの各々からビットストリームを取ることと、所与の時間において出力されるビットストリームを交替することとによって、作成され得る。場合によっては、２つの（または、３つ以上のビデオエンコーダレイヤの場合には、より多くの）ビットストリームからのビットが一度に１ビットずつ交替され得るが、多くの場合、ビットストリームは別様に合成される。例えば、出力ビットストリームは、選択されたビットストリームを一度に１ブロックずつ交替することによって作成され得る。別の例では、出力ビットストリームは、ビデオエンコーダ２０Ａおよび２０Ｂの各々から非１：１比のブロックを出力することによって作成され得る。例えば、２つのブロックは、ビデオエンコーダ２０Ａから出力された各ブロックについてビデオエンコーダ２０Ｂから出力され得る。いくつかの実施形態において、ｍｕｘ９８からの出力ストリームはプリプログラムされ得る。他の実施形態において、ｍｕｘ９８は、ソースデバイス１２を含むソースデバイス上のプロセッサからなど、ビデオエンコーダ２３の外部のシステムから受信された制御信号に基づいて、ビデオエンコーダ２０Ａ、２０Ｂからのビットストリームを合成し得る。制御信号は、ビデオソース１８からのビデオの解像度またはビットレートに基づいて、リンク１６の帯域幅に基づいて、ユーザに関連するサブスクリプション（例えば、有料サブスクリプション対無料サブスクリプション）に基づいて、またはビデオエンコーダ２３から望まれる解像度出力を決定するための他のファクタに基づいて生成され得る。
【０１２１】
ビデオデコーダ
[0136]  図３Ａは、本開示で説明する態様による技法を実施し得るビデオデコーダの一例を示すブロック図である。ビデオデコーダ３０は、ＨＥＶＣの場合など、ビデオフレームの単一のレイヤを処理するように構成され得る。さらに、ビデオデコーダ３０は、本開示の技法のいずれかまたは全てを行うように構成され得る。一例として、動き補償ユニット１６２および／またはイントラ予測ユニット１６４は、本開示で説明する技法のうちのいずれかまたは全てを行うように構成され得る。一実施形態において、ビデオデコーダ３０は、本開示で説明する技法のいずれかまたは全てを行うように構成されたレイヤ間予測ユニット１６６を随意に含み得る。他の実施形態において、レイヤ間予測は、予測処理ユニット１５２（例えば、動き補償ユニット１６２および／またはイントラ予測ユニット１６４）によって行われ得、その場合、レイヤ間予測ユニット１６６は省略され得る。しかしながら、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオデコーダ３０の様々な構成要素の間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。
【０１２２】
[0137]  説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０を説明する。しかしながら、本開示の技法は他のコーディング規格または方法に適用可能であり得る。図３Ａに示す例は、シングルレイヤコーデックのためのものである。しかしながら、図３Ｂに関してさらに説明するように、ビデオデコーダ３０の一部または全部は、マルチレイヤコーデックの処理のために複製され得る。
【０１２３】
[0138]  図３Ａの例では、ビデオデコーダ３０は複数の機能構成要素を含む。ビデオデコーダ３０の機能構成要素は、エントロピー復号ユニット１５０と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換ユニット１５６と、再構成ユニット１５８と、フィルタユニット１５９と、復号ピクチャバッファ１６０とを含む。予測処理ユニット１５２は、動き補償ユニット１６２と、イントラ予測ユニット１６４と、レイヤ間予測ユニット１６６とを含む。いくつかの例では、ビデオデコーダ３０は、図２Ａのビデオエンコーダ２０に関して説明された符号化経路とは全般に逆の復号経路を行い得る。他の例では、ビデオデコーダ３０は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
【０１２４】
[0139]  ビデオデコーダ３０は、符号化ビデオデータを備えるビットストリームを受信し得る。ビットストリームは、複数のシンタックス要素を含み得る。ビデオデコーダ３０がビットストリームを受信すると、エントロピー復号ユニット１５０は、ビットストリームに対して解析動作を行い得る。ビットストリームに対して解析動作を行った結果として、エントロピー復号ユニット１５０は、ビットストリームからシンタックス要素を抽出し得る。解析動作を行うことの一部として、エントロピー復号ユニット１５０は、ビットストリーム中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換ユニット１５６、再構成ユニット１５８、およびフィルタユニット１５９は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成する再構成演算を行い得る。
【０１２５】
[0140]  上記で説明したように、ビットストリームは、一連のＮＡＬユニットを備え得る。ビットストリームのＮＡＬユニットは、ビデオパラメータセットＮＡＬユニット、シーケンスパラメータセットＮＡＬユニット、ピクチャパラメータセットＮＡＬユニット、ＳＥＩ  ＮＡＬユニットなどを含み得る。ビットストリームに対して解析動作を行うことの一部として、エントロピー復号ユニット１５０は、シーケンスパラメータセットＮＡＬユニットからのシーケンスパラメータセット、ピクチャパラメータセットＮＡＬユニットからのピクチャパラメータセット、ＳＥＩ  ＮＡＬユニットからのＳＥＩデータなどを抽出しエントロピー復号する解析動作を行い得る。
【０１２６】
[0141]  さらに、ビットストリームのＮＡＬユニットは、コード化スライスＮＡＬユニットを含み得る。ビットストリームに対して解析動作を行うことの一部として、エントロピー復号ユニット１５０は、コード化スライスＮＡＬユニットからコード化スライスを抽出しエントロピー復号する解析動作を行い得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含むピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号ユニット１５０は、スライスヘッダを復元するために、コード化スライスヘッダ中のシンタックス要素に対してＣＡＢＡＣ復号演算などのエントロピー復号演算を行い得る。
【０１２７】
[0142]  コード化スライスＮＡＬユニットからスライスデータを抽出することの一部として、エントロピー復号ユニット１５０は、スライスデータ中のコーディングされたＣＵからシンタックス要素を抽出する解析動作を行いし得る。抽出されたシンタックス要素は、変換係数ブロックに関連付けられたシンタックス要素を含み得る。エントロピー復号ユニット１５０は、次いで、シンタックス要素のうちのいくつかに対してＣＡＢＡＣ復号演算を行い得る。
【０１２８】
[0143]  エントロピー復号ユニット１５０が、区分されていないＣＵに対して解析動作を行った後、ビデオデコーダ３０は、区分されていないＣＵに対して再構成演算を行い得る。区分されていないＣＵに対して再構成演算を行うために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して再構成演算を行い得る。ＣＵの各ＴＵについて再構成演算を行うことによって、ビデオデコーダ３０は、ＣＵに関連付けられた残差ビデオブロックを再構成し得る。
【０１２９】
[0144]  ＴＵに対して再構成演算を行うことの一部として、逆量子化ユニット１５４は、ＴＵに関連付けられた変換係数ブロックを逆量子化（inverse quantize）、例えば、逆量子化（de-quantize）し得る。逆量子化ユニット１５４は、ＨＥＶＣのために提案された、またはＨ．２６４復号規格によって定義された逆量子化処理と同様の方法で、変換係数ブロックを逆量子化し得る。逆量子化ユニット１５４は、量子化の程度を決定し、同様に、逆量子化ユニット１５４が適用すべき逆量子化の程度を決定するために、変換係数ブロックのＣＵに関してビデオエンコーダ２０によって計算される量子化パラメータＱＰを使用し得る。
【０１３０】
[0145]  逆量子化ユニット１５４が変換係数ブロックを逆量子化した後、逆変換ユニット１５６は、変換係数ブロックに関連付けられたＴＵのための残差ビデオブロックを生成し得る。逆変換ユニット１５６は、ＴＵのための残差ビデオブロックを生成するために、変換係数ブロックに逆変換を適用し得る。例えば、逆変換ユニット１５６は、変換係数ブロックに、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ：Karhunen-Loeve transform）、逆回転変換、逆方向変換、または別の逆変換を適用し得る。いくつかの例では、逆変換ユニット１５６は、ビデオエンコーダ２０からのシグナリングに基づいて、変換係数ブロックに適用すべき逆変換を決定し得る。そのような例では、逆変換ユニット１５６は、変換係数ブロックに関連付けられたツリーブロックの４分木のルートノードにおいてシグナリングされた変換に基づいて、逆変換を決定し得る。他の例では、逆変換ユニット１５６は、ブロックサイズ、コーディングモードなど、１つまたは複数のコーディング特性から逆変換を推定し得る。いくつかの例では、逆変換ユニット１５６はカスケード逆変換を適用し得る。
【０１３１】
[0146]  いくつかの例では、動き補償ユニット１６２は、補間フィルタに基づく補間を行いことによって、ＰＵの予測ビデオブロックを改良し得る。サブサンプル精度を有する動き補償のために使用されるべき補間フィルタ用の識別子は、シンタックス要素に含まれ得る。動き補償ユニット１６２は、参照ブロックのサブ整数サンプルについての補間値を計算するために、ＰＵの予測ビデオブロックの生成中にビデオエンコーダ２０によって使用された同じ補間フィルタを使用し得る。動き補償ユニット１６２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し得、予測ビデオブロックを生成するためにその補間フィルタを使用し得る。
【０１３２】
[0147]  ＰＵが、イントラ予測を使用して符号化される場合、イントラ予測ユニット１６４は、ＰＵのための予測ビデオブロックを生成するためにイントラ予測を行い得る。例えば、イントラ予測ユニット１６４は、ビットストリーム中のシンタックス要素に基づいて、ＰＵのためのイントラ予測モードを決定し得る。ビットストリームは、ＰＵのイントラ予測モードを決定するためにイントラ予測ユニット１６４が使用し得るシンタックス要素を含み得る。
【０１３３】
[0148]  いくつかの事例では、イントラ予測ユニット１６４が現在ＰＵのイントラ予測モードを決定するために別のＰＵのイントラ予測モードを使用するべきであることを、シンタックス要素が示し得る。例えば、現在ＰＵのイントラ予測モードが隣接ＰＵのイントラ予測モードと同じであることが起こり得る。言い換えれば、隣接ＰＵのイントラ予測モードは、現在ＰＵに対して最確モードであり得る。従って、この例では、ビットストリームは、ＰＵのイントラ予測モードが隣接ＰＵのイントラ予測モードと同じであることを示す、小さいシンタックス要素を含み得る。イントラ予測ユニット１６４は、次いで、空間的に隣接するＰＵのビデオブロックに基づいてＰＵのための予測データ（例えば、予測サンプル）を生成するために、イントラ予測モードを使用し得る。
【０１３４】
[0149]  上記で説明したように、ビデオデコーダ３０もレイヤ間予測ユニット１６６を含み得る。レイヤ間予測ユニット１６６は、スケーラブルビデオコーディングにおいて利用可能である１つまたは複数の異なるレイヤ（例えば、ＢＬまたはＲＬ）を使用して、現在ブロック（例えば、ＥＬ中の現在ブロック）を予測するように構成される。そのような予測は、レイヤ間予測と呼ばれることがある。レイヤ間予測ユニット１６６は、レイヤ間冗長性を低減するための予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例は、レイヤ間イントラ予測と、レイヤ間動き予測と、レイヤ間残差予測とを含む。レイヤ間イントラ予測は、ＥＬ中の現在ブロックを予測するために、ＢＬの中でコロケートされているブロックの再構成を使用する。レイヤ間動き予測は、ＥＬ中の動作を予測するために、ＢＬの動き情報を使用する。レイヤ間残差予測は、ＥＬの残差を予測するために、ＢＬの残差を使用する。レイヤ間予測方式の各々について、以下でより詳細に説明する。
【０１３５】
[0150]  再構成ユニット１５８は、ＣＵのビデオブロックを再構成するために、ＣＵのＴＵに関連付けられた残差ビデオブロックおよびＣＵのＰＵの予測ビデオブロック、例えば、適用可能なとき、イントラ予測データまたはインター予測データのいずれかを使用し得る。従って、ビデオデコーダ３０は、ビットストリーム中のシンタックス要素に基づいて予測ビデオブロックと残差ビデオブロックとを生成し得、予測ビデオブロックと残差ビデオブロックとに基づいてビデオブロックを生成し得る。
【０１３６】
[0151]  再構成ユニット１５８がＣＵのビデオブロックを再構成した後、フィルタユニット１５９は、ＣＵに関連したブロッキングアーティファクトを低減するためにデブロッキング演算を行い得る。フィルタユニット１５９が、ＣＵに関連したブロッキングアーティファクトを低減するためにデブロッキング演算を行った後、ビデオデコーダ３０は、ＣＵのビデオブロックを復号ピクチャバッファ１６０に記憶し得る。復号ピクチャバッファ１６０は、次の動き補償、イントラ予測、および図１Ａまたは図１Ｂのディスプレイデバイス３２などのディスプレイデバイス上での提示のために、参照ピクチャを提供し得る。例えば、ビデオデコーダ３０は、復号ピクチャバッファ１６０の中のビデオブロックに基づいて、他のＣＵのＰＵに対して、イントラ予測演算またはインター予測演算を行い得る。
【０１３７】
マルチレイヤデコーダ
[0152]  図３Ｂは、本開示で説明する態様による技法を実施し得るマルチレイヤビデオデコーダ３３（単にビデオデコーダ３３とも呼ばれる）の一例を示すブロック図である。ビデオデコーダ３３は、ＳＨＶＣおよびマルチビューコーディングの場合など、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオデコーダ３３は、本開示の技法のいずれかまたは全てを行うように構成され得る。
【０１３８】
[0153]  ビデオデコーダ３３は、ビデオデコーダ３０Ａとビデオデコーダ３０Ｂとを含み、それらの各々はビデオデコーダ３０として構成され得、ビデオデコーダ３０に関して上記で説明した機能を行い得る。さらに、参照番号の再利用によって示されるように、ビデオデコーダ３０Ａおよび３０Ｂは、ビデオデコーダ３０としてのシステムおよびサブシステムのうちの少なくともいくつかを含み得る。ビデオデコーダ３３は、２つのビデオデコーダ３０Ａおよび３０Ｂを含むように示されるが、ビデオデコーダ３３は、そのように限定されず、任意の数のビデオデコーダ３０のレイヤを含み得る。いくつかの実施形態において、ビデオデコーダ３３はアクセスユニット中の各ピクチャまたは各フレームに対してビデオデコーダ３０を含み得る。例えば、５つのピクチャを含むアクセスユニットは、５つのデコーダレイヤを含むビデオデコーダによって処理または復号され得る。いくつかの実施形態において、ビデオデコーダ３３は、アクセスユニット中のフレームよりも多くのデコーダレイヤを含み得る。いくつかのそのような場合では、ビデオデコーダのレイヤのうちのいくつかは、いくつかのアクセスユニットを処理するときに非アクティブであり得る。
【０１３９】
[0154]  ビデオデコーダ３０Ａおよび３０Ｂに加えて、ビデオデコーダ３３は、アップサンプリングユニット９２を含み得る。いくつかの実施形態において、アップサンプリングユニット９２は、フレームまたはアクセスユニットのための参照ピクチャリストに追加されるべきエンハンストレイヤを作成するために、受信されたビデオフレームのＢＬをアップサンプリングし得る。このエンハンストレイヤは、復号ピクチャバッファ１６０に記憶され得る。いくつかの実施形態において、アップサンプリングユニット９２は、図２Ｂのリサンプリングユニット９０に関して説明した実施形態の一部または全部を含むことができる。いくつかの実施形態において、アップサンプリングユニット９２は、レイヤをアップサンプリングし、スライス境界ルールおよび／またはラスタ走査ルールのセットに準拠するように、１つまたは複数のスライスを再編成、再定義、修正、または調整するように構成される。場合によっては、アップサンプリングユニット９２は、受信されたビデオフレームのレイヤをアップサンプリングおよび／またはダウンサンプリングするように構成されたリサンプリングユニットであり得る。
【０１４０】
[0155]  アップサンプリングユニット９２は、下位レイヤデコーダ（例えば、ビデオデコーダ３０Ａ）の復号ピクチャバッファ１６０からピクチャまたはフレーム（またはピクチャに関連付けられたピクチャ情報）を受信し、ピクチャ（または受信されたピクチャ情報）をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤデコーダと同じアクセスユニット中のピクチャを復号するように構成された、上位レイヤデコーダ（例えば、ビデオデコーダ３０Ｂ）の予測処理ユニット１５２に供給され得る。場合によっては、上位レイヤデコーダは、下位レイヤデコーダから除去された１つのレイヤである。他の場合には、図３Ｂのレイヤ０デコーダとレイヤ１デコーダとの間に、１つまたは複数の上位レイヤデコーダがあり得る。
【０１４１】
[0156]  場合によっては、アップサンプリングユニット９２は、省略またはバイパスされ得る。そのような場合、ビデオデコーダ３０Ａの復号ピクチャバッファ１６０からのピクチャは、直接、または少なくともアップサンプリングユニット９２に供給されずに、ビデオデコーダ３０Ｂの予測処理ユニット１５２に供給され得る。例えば、ビデオデコーダ３０Ｂに供給されたビデオデータ、およびビデオデコーダ３０Ａの復号ピクチャバッファ１６０からの参照ピクチャが、同じサイズまたは解像度である場合、参照ピクチャは、アップサンプリングを伴わずにビデオデコーダ３０Ｂに供給され得る。さらに、いくつかの実施形態において、アップサンプリングユニット９２は、ビデオデコーダ３０Ａの復号ピクチャバッファ１６０から受信された参照ピクチャを、アップサンプリングまたはダウンサンプリングするように構成されたリサンプリングユニット９０であり得る。
【０１４２】
[0157]  図３Ｂに示すように、ビデオデコーダ３３は、デマルチプレクサ９９、すなわちｄｅｍｕｘをさらに含み得る。ｄｅｍｕｘ９９は、符号化ビデオビットストリームを複数のビットストリームに分割でき、ｄｅｍｕｘ９９によって出力された各ビットストリームは、異なるビデオデコーダ３０Ａおよび３０Ｂに供給される。複数のビットストリームは、ビットストリームを受信することによって作成され得、ビデオデコーダ３０Ａおよび３０Ｂの各々は、所与の時間においてビットストリームの一部分を受信する。場合によっては、ｄｅｍｕｘ９９において受信されるビットストリームからのビットは、ビデオデコーダの各々（例えば、図３Ｂの例ではビデオデコーダ３０Ａおよび３０Ｂ）の間で、一度に１ビットずつ交替され得るが、多くの場合、ビットストリームは別様に分割される。例えば、ビットストリームは、一度に１ブロックずつビットストリームを受信するビデオデコーダを交替することによって分割され得る。別の例では、ビットストリームは、非１：１比のブロックによって、ビデオデコーダ３０Ａおよび３０Ｂの各々に分割され得る。例えば、２つのブロックは、ビデオデコーダ３０Ａに供給される各ブロックについてビデオデコーダ３０Ｂに供給され得る。いくつかの実施形態において、ｄｅｍｕｘ９９によるビットストリームの分割は、プリプログラムされ得る。他の実施形態において、ｄｅｍｕｘ９９は、宛先デバイス１４を含む宛先デバイス上のプロセッサからなど、ビデオデコーダ３３の外部のシステムから受信された制御信号に基づいてビットストリームを分割し得る。制御信号は、入力インターフェース２８からのビデオの解像度またはビットレートに基づいて、リンク１６の帯域幅に基づいて、ユーザに関連付けられたサブスクリプション（例えば、有料サブスクリプション対無料サブスクリプション）に基づいて、またはビデオデコーダ３３によって取得可能な解像度を決定するための他のファクタに基づいて生成され得る。
【０１４３】
ブロックおよびパレット
[0158]  いくつかの実施形態において、ビデオデータは、以下でブロックと呼ぶ複数のユニットに分割され得る。いくつかの実施形態において、ブロックは、ＣＵに相当し得る。他の実施形態において、ブロックは、ビデオ画像の任意の所望の部分に相当し得る（例えば、ブロックは、コーディングツリーユニット、予測ユニット、変換ユニット、および／または同様なものに相当し得る）。
【０１４４】
[0159]  いくつかの実施形態において、ビデオデータのブロックを符号化するために、パレットが使用され得る。パレットは、ブロック内に含まれるピクセル値をインデックス付けする１つまたは複数のエントリを備える。例えば、パレットの中の各エントリは、異なるピクセル値に関連付けられるべきインデックスを規定し得る。いくつかの実施形態において、ピクセル値は、１つのカラー成分（例えば、ルーマ値）、２つの成分（例えば、２つのクロマ値）、または３つのカラー成分としてのトリプレット（例えば、ＲＧＢカラー成分、ＹＵＶカラー成分、および／または同様なもの）を含み得る。従って、各ピクセルのピクセル値を符号化する代わりに、ブロックのピクセルは、パレットによって定義されるような、それらのピクセル値に対応するインデックス値を参照し得る。いくつかの実施形態において、ブロックのためのパレット情報が、ブロックの冒頭で送信され得る。
【０１４５】
[0160]  パレットの使用を通じて、ブロックを符号化するのに必要なビット数が低減され得る。例えば、特定のブロックが１６個の異なるピクセル値を使用し、各ピクセル値がそれぞれ８ビットとしての３つのカラー成分を備える場合、ブロックの中の各ピクセルのピクセル値を符号化するために２４ビットが必要とされることになる。しかしながら、１６個の異なるピクセル値をインデックス付けするためにパレットを使用することによって、ピクセル値は、４ビットのみを使用してインデックス付けされ得る。従って、ブロックの中のピクセル当たり４ビットしか必要とされない。
【０１４６】
[0161]  例えば、図４は、いくつかの実施形態による、ブロックとともに使用され得るパレットを示す。パレット４０２は、複数のエントリを備え、各エントリは、インデックス値４０４を特定のピクセル値４０６に関連付ける（例えば、ピクセル値ｖ0がインデックス値０に関連付けられ、ピクセル値ｖ1がインデックス値１に関連付けられるなど）。従って、ブロック４０８の中のピクセルごとに完全なピクセル値が規定される必要がない。代わりに、ピクセルは、パレット４０２からのインデックス値に関連付けられ、次いで、ピクセルのピクセル値がそこから決定され得る。
【０１４７】
[0162]  いくつかの実施形態において、特定のブロックのためのパレットは、ブロックの中に現れる異なるピクセル値の全てに対するエントリを備え得る。いくつかの実施形態において、パレットは、代わりに、ブロックの中に現れるピクセル値のサブセット（例えば、ブロックの中で最も共通のピクセル値、ブロック内のピクセルの少なくともしきい値量に関連するピクセル値、および／または同様なもの）に対するエントリを備えてもよい。
【０１４８】
[0163]  いくつかの実施形態において、ブロックおよびパレットを使用してビデオデータを符号化することは、スクリーンコンテンツを（例えば、ＨＥＶＣスクリーンコンテンツコーディング拡張に従って）符号化するために使用され得る。スクリーンコンテンツまたはスクリーン画像は、自然コンテンツまたは自然画像（例えば、カメラを通じてキャプチャされたビデオ画像）ではなく、コンピュータ生成された画像またはグラフィックスを指し得る。自然コンテンツと比較して、スクリーンコンテンツは、しばしば、さほど緩やかでない遷移およびより鋭いエッジ、並びにより限定された数の可能なカラーまたはピクセル値を示す。いくつかの実施形態において、スクリーンコンテンツは、ハイブリッド画像を包含し得る。例えば、ビデオは、スクリーンの第１の部分に自然ビデオを有するコンピュータスクリーンの画像と（例えば、メディアプレーヤにおいて）、スクリーンの第２の部分に表示されたスクリーンコンテンツ（例えば、開かれた文書、コンピュータ生成されたユーザインターフェース、および／または同様なもの）とを含むことがある。但し、本明細書はスクリーンコンテンツビデオデータを符号化するために使用されているブロックおよびパレットを参照することがあるが、本明細書で開示するシステムおよび方法が同様に他のタイプのビデオに適用され得ることが理解される。
【０１４９】
サブブロック
[0164]  その多くが自然画像とコンピュータ生成されたスクリーン画像の両方を含む、多くのタイプのビデオ画像では、互いに隣接するピクセルは、同じまたは類似のピクセル値を有することの、より高い尤度を有する傾向がある。従って、多くのビデオ画像は、強いブロックベースパターンを示すことがある。例えば、図５は、いくつかの実施形態による、強いブロックベースパターンを示すブロック５００の一部分を示す。ブロック５００の図示した部分は、複数のサブブロック（サブブロック５０２、５０４、５０６、５０８、５１０、および５１２）に分割され得、各サブブロックは、同じピクセル値を有するピクセルを含む。
【０１５０】
[0165]  従って、いくつかの実施形態において、各ブロックは、複数のサブブロックに分割され得、各サブブロックは、ブロック内に配置されたピクセルのアレイを備える。例えば、図５に示すように、サブブロックは、ピクセルの正方形４×４アレイを備え得る。いくつかの実施形態において、サブブロックは、Ｋが整数値に相当するものとしてＫ×Ｋピクセルとしての正方形アレイ、またはピクセルの非正方形アレイを備え得る。いくつかの実施形態において、サブブロックのサイズは、事前決定される。図５が、同じピクセル値を有するピクセルを含むものとしてサブブロックを示すことが理解されるが、他の実施形態において、特定のサブブロックが２つ以上の異なるピクセル値を有するピクセルを含んでよいことが理解される。
【０１５１】
適応走査順序
[0166]  ビデオデータのブロックを符号化するとき、ブロックのピクセルおよび／またはサブブロックがどんな順序で符号化されるべきかを決定することが必要である。ピクセルおよび／またはサブブロックが符号化されるべき順序は、以下で走査順序と呼ばれることがある。走査順序は、水平走査順序と垂直走査順序とを備え得る。対角もしくはジグザグ走査順序、または水平トラバース走査もしくは垂直トラバース走査（すなわち、ヘビの形）などの、他のタイプの走査順序も使用され得る。いくつかの実施形態において、ブロックによって使用されるべき走査順序は、事前決定され得る。代替的に、使用されるべき走査順序は、ビットストリームの中へシグナリングされてもよい。いくつかの実施形態において、ビデオを符号化するのに必要なビットを低減するために、走査順序が適応的に選ばれてよい。
【０１５２】
[0167]  ブロックが複数のサブブロックに分割される（例えば、図５に示すような）実施形態において、ブロックは、ブロックを構成するサブブロックが符号化される順序を示すサブブロック走査順序に関連し得る。さらに、サブブロックは、サブブロックを構成するピクセルが符号化される順序を示すピクセル走査順序に関連し得る。これらの順序は事前定義されてよく、デコーダおよびエンコーダに知られているか、またはビットストリームの中へシグナリングされるか、あるいは隣接ピクセル値、ブロックの中でのサブブロックの位置、および／または隣接する復号ブロックもしくはサブブロックの他の特性に従って適応的に更新される。
【０１５３】
[0168]  図６Ａおよび図６Ｂは、いくつかの実施形態による、図５に示すサブブロックを符号化するために使用され得る異なるサブブロック走査順序を示す。図６Ａは、水平ラスタ走査順序で走査される図５に示すサブブロックを示し、ここにおいて、サブブロックの行（それぞれ、３つのサブブロックを備える）が、特定の方向（例えば、左から右へ）で連続的に（例えば、上から下へ）走査される。従って、図示したサブブロックは、以下の順序、すなわち、５０２、５０４、５０６、５０８、５１０、および５１２で走査される。
【０１５４】
[0169]  一方、図６Ｂは、水平トラバース順序で走査されるサブブロックを示す。水平トラバース順序は、走査される各サブブロックが以前に走査されたサブブロックに隣接するように、互い違いの方向で連続的に行を走査することを備える。例えば、図に示すように、サブブロックの第１の行は左から右へ走査され、右から左へ走査されるサブブロックの第２の行が後続する。従って、図示したサブブロックは、以下の順序、すなわち、５０２、５０４、５０６、５１２、５１０、および５０８で走査される。
【０１５５】
[0170]  いくつかの実施形態において、他のタイプの走査順序が使用され得る。これらは、垂直ラスタ走査順序（列が特定の方向で連続的に走査される）と垂直トラバース走査順序（列が互い違いの方向で連続的に走査される）とを含み得る。
【０１５６】
[0171]  上記で述べたように、互いに隣接するピクセルおよび／またはサブブロックは、同じまたは類似のピクセル値を有する傾向が強い。例えば、図５に示すように、サブブロック５０２および５０４は同じピクセル値を有し、サブブロック５０６および５１２も同じピクセル値を有する。ビデオデータを符号化するのに必要なビット数を低減するために、サブブロックが、同じまたは類似のピクセル値を連続的に走査させることが、しばしば、望ましい。従って、図５に示す特定のサブブロックパターンにとって、水平トラバース走査順序がサブブロック５０６および５１２を連続的に走査させ、従って、ビデオデータを符号化するのに必要とされるビットの量を潜在的に低減するという理由から、水平トラバース走査順序は水平ラスタ走査順序にまさって好まれることになる。
【０１５７】
[0172]  いくつかの実施形態において、ブロックを符号化するときにどの走査順序を使用するべきかを選ぶために、ビデオエンコーダは、いくつかの異なる候補走査順序を評価し得る。これらは、水平および垂直ラスタ走査順序、水平および垂直トラバース走査順序、並びに／または同様なものを含み得る。ビデオエンコーダは、少なくとも１つの候補走査順序に対するコストを計算し得、ここにおいて、コストは、候補走査順序が使用されたことを使用してブロックが符号化された場合に使用されることになるビットレートを示す。エンコーダは、次いで、最小コストに関連する候補走査順序を選択し得る。例えば、図５に示すブロックを参照すると、水平ラスタ走査順序（図６Ａ）に関連するコストが、水平トラバース走査順序（図６Ｂ）に関連するコストよりも大きいと決定され得る。従って、水平トラバース走査順序が水平ラスタ走査順序にまさって選択され得る。
【０１５８】
[0173]  いくつかの実施形態において、個々のサブブロックは、サブブロックを構成するピクセルが走査される順序を示すピクセル走査順序に関連し得る。いくつかの実施形態において、サブブロックのためのピクセル走査順序は、事前決定され得るが、他の実施形態において、適応的に選ばれてよい。走査順序が適応的に選ばれるとき、順序は、ビットストリームの中へシグナリングされ得る。代替的に、いくつかの実施形態において、順序は、以前にパース／復号されたブロックから推定されてもよい。例えば、前のブロックが垂直パターンよりも強い水平パターンを示した場合、現在ブロックの走査順序は水平であると推定され得る。前のブロックが水平パターンよりも強い垂直パターンを示した場合、現在ブロックの走査順序は垂直であると推定され得る。
【０１５９】
[0174]  特定のサブブロックの中の全てのピクセルが同じピクセル値を有する場合（例えば、図５に示すように）、どの走査順序が選ばれるのかが重要でない場合があり（例えば、全ての候補走査順序が同じコストを有し得る）、任意の走査順序が選択されてよい。しかしながら、特定のサブブロックのピクセルが２つ以上の異なるピクセル値に関連する場合、異なる走査順序が異なるコストに関連し得る。例えば、いくつかの実施形態において、サブブロックのピクセルが、ランレングスコーディングを使用して符号化され得る。ランレングスコーディングでは、ラン値（または、ラン）は、いくつかの後続のサンプル（例えば、ピクセル）が同じピクセル値またはパレットインデックスを有することを規定する。例示のための一例では、一連の連続した、ブロックのパレットインデックスは、０、２、２、２、２、５であり得る。この例では、ビデオコーダは、値モードを使用して（すなわち、明示的に際立って、パレットインデックスの値）、第２のサンプル（例えば、２としての最初のパレットインデックス）をコーディングし得る。２に等しいインデックスをコーディングした後、ビデオコーダは、後続の３つのサンプルも２としての同じパレットインデックスを有することを示す、３としてのランをコーディングし得る。いくつかの実施形態において、ランは、上に隣接するパレットインデックスからコピーされるパレットインデックスのランを指すことがある。
【０１６０】
[0175]  従って、行の中で同じピクセル値を有する多くのピクセルを走査する第１のピクセル走査順序は、頻繁に変化するピクセル値を有するピクセルを通じて走査する第２のピクセル走査順序に比較して、サブブロックを符号化するためにより少数のビットしか潜在的に使用しないことになる（例えば、第１のピクセル走査順序がより少数の異なるランしか含まないことに起因して）。従って、第１のピクセル走査順序は、第２のピクセル走査順序に比較してより小さいコストに関連することになる。
【０１６１】
[0176]  図７Ａおよび図７Ｂは、いくつかの実施形態による、それぞれが２つ以上のピクセル値に関連する２つの異なるサブブロック７０２および７０４を示す。図示したサブブロックの各々を伴うピクセル値の異なる分布のため、異なるピクセル走査順序が、サブブロックの各々に対する異なるコストに関連し得る。従って、サブブロック７０２および７０４の各々は、異なるピクセル走査順序を使用し得る。例えば、図７Ｂに示すように、サブブロック７０２は水平トラバース順序を使用して符号化され得、サブブロック７０４は垂直ラスタ順序を使用して符号化され得る。
【０１６２】
[0177]  いくつかの実施形態において、特定のサブブロックに対して選ばれる走査順序は、隣接サブブロックによって使用される走査順序に少なくとも部分的に基づいて断定され得る。例えば、候補走査順序が、隣接サブブロックによって使用される走査順序に基づいて限定され得る。いくつかの実施形態において、サブブロック内でのピクセル値の分布が隣接サブブロックのそれと類似であると決定される場合、隣接サブブロックのために使用された同じ走査順序が、サブブロックに対して選ばれ得る。
【０１６３】
[0178]  図８は、いくつかの実施形態による、適応走査順序を使用してビデオデータのブロックを符号化するためのプロセスのフローチャートを示す。プロセスは、ブロック８０２において開始し、ここにおいて、１つまたは複数のブロックを備えるビデオデータが、符号化するために受信される。ブロックは、ＣＵ、またはビデオ画像の任意の他の部分に相当し得る。
【０１６４】
[0179]  ブロック８０４において、１つまたは複数のブロックのうちの１つのブロックが、複数のサブブロックに分割される。いくつかの実施形態において、サブブロックは、ブロック内のピクセルの正方形アレイを備える。例えば、サブブロックは、ブロック内のピクセルの４×４正方形アレイを備え得る。いくつかの実施形態において、ブロックに対してパレットが構成され得る。パレットは、ブロック内に存在しているピクセル値にインデックス値を関連付ける１つまたは複数のエントリを備える。いくつかの実施形態において、パレットは、ブロックの中に存在するピクセル値の全てに対応するエントリを備えてよいが、他の実施形態において、パレットは、ブロックの中に存在するピクセル値の一部分（例えば、最も共通のピクセル値、ブロック内のピクセルのしきい値量に関連するピクセル値、および／または同様なもの）だけのためのエントリを備えてもよい。
【０１６５】
[0180]  ブロック８０６において、ブロックのためのサブブロック走査順序が、ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択される。いくつかの実施形態において、複数の候補サブブロック走査順序が識別され得る。候補サブブロック走査順序は、水平ラスタ走査順序、水平トラバース走査順序、垂直ラスタ走査順序、および／または垂直トラバース走査順序を備え得る。候補走査順序のうちの１つまたは複数に対してコストが決定され得、ここにおいて、候補走査順序に関連するコストは、ブロックが候補走査順序を使用して符号化された場合に使用されることになるビットレートを示す。最小コストに関連する候補走査順序が選択され得る。
【０１６６】
[0181]  ブロック８０８において、複数のサブブロックのうちの１つのサブブロックが選択される。ブロック８１０において、選択されたサブブロックのためのピクセル走査順序が、サブブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択される。いくつかの実施形態において、ピクセル走査順序を選択することは、１つまたは複数の候補走査順序を識別することを備え得る。これらは、例えば、水平ラスタ走査順序、水平トラバース走査順序、垂直ラスタ走査順序、および／または垂直トラバース走査順序を含み得る。候補走査順序のうちの１つまたは複数に対してコストが決定され得、ここにおいて、候補走査順序に関連するコストは、ブロックが候補走査順序を使用して符号化された場合に使用されることになるビットレートを示す。最小コストに関連する候補走査順序が選択され得る。
【０１６７】
[0182]  ブロック８１２において、それに対してピクセル走査順序が選択されるべきこれ以上のサブブロックがあるかどうかについての決定が行われ得る。そうである場合、プロセスは、ブロック８０８に戻ってよく、ここにおいて、複数のサブブロックのうちの別のサブブロックが選択され得る。さもなければ、プロセスは、ブロック８１４に進んでよく、ここにおいて、ブロックは、選択されたサブブロック走査順序を使用して符号化され、ここにおいて、ブロックのサブブロックは、それらのそれぞれの選択されたピクセル走査順序を使用して符号化される。
【０１６８】
サブブロック予測
[0183]  いくつかの実施形態において、特定のサブブロックのピクセルを符号化することが常に必要とは限らない場合がある。代わりに、場合によっては、サブブロックのピクセルは、他のサブブロックの中のピクセルのピクセル値に基づいて断定され得、ビデオデータを符号化するのに必要なビットレートを潜在的に低減し得る。
【０１６９】
[0184]  上記で説明したように、互いに隣接するサブブロックは、類似のピクセル値を有するピクセルを有する傾向が強い。例えば、ビデオ画像は、一定のカラーまたはピクセル値を有する複数のサブブロックを包含する大きいエリアを含むことがある。このことは、特にコンピュータ生成されたスクリーンコンテンツビデオ画像において一般的であり得る。いくつかの実施形態において、特定のサブブロック内の全てのピクセルが同じピクセル値を有することがあり、ここにおいて、ピクセル値は、隣接サブブロックの中のピクセルのピクセル値と同じであり得る。そのような事例では、サブブロックのピクセルを（例えば、ランレングスコーディングを使用して）符号化することは不必要であり得る。代わりに、サブブロックの全てのピクセルが隣接サブブロックの中のピクセルのそれらと同じであることをシグナリングするフラグが生成され得る。
【０１７０】
[0185]  例えば、図９は、いくつかの実施形態による、隣接サブブロックのピクセルと同じである単一のピクセル値を有するサブブロックを示す。サブブロック９０２（「現在サブブロック９０２」とも呼ばれる）は、サブブロック９０４（「隣接サブブロック９０４」とも呼ばれる）に直接隣接する。サブブロック９０２の中の全てのピクセルは、同じピクセル値（例えば、ピクセル値１）を有する。さらに、ピクセル値は、隣接サブブロック９０４の中の特定のピクセル（ピクセル９０６）と同じである。このことが起こるとき、現在サブブロック９０２のピクセルを符号化することが必要であり得ない。代わりに、現在サブブロック９０２の中の全てのピクセルが隣接サブブロック９０４のピクセル９０６と同じピクセル値を有することを示すフラグがシグナリングされ得る。
【０１７１】
[0186]  いくつかの実施形態において、現在サブブロックのピクセル値がそれに対して比較される隣接サブブロックのピクセル（例えば、ピクセル９０６）は、指定ピクセルであり得る。例えば、いくつかの実施形態において、図９に示すように、指定ピクセルは、現在サブブロックの左のサブブロックの一番右の列の一番上のピクセルであり得る。いくつかの実施形態において、指定ピクセルは、現在サブブロックの上にあるサブブロックの最下部の行の一番左のピクセルであり得る。いくつかの実施形態において、指定ピクセルは、現在サブブロックに直接隣接するピクセルである。他の実施形態において指定ピクセルが隣接サブブロック内の他のロケーションにあってよいことを理解されたい。
【０１７２】
[0187]  図１０は、いくつかの実施形態によるサブブロックピクセル値断定を実施するためのフローチャートを示す。ブロック１００２において、符号化されるべきビデオデータが受信され、ここにおいて、受信されたビデオデータは１つまたは複数のブロックを備える。
【０１７３】
[0188]  ブロック１００４において、１つまたは複数のブロックのうちの１つのブロックが、複数のサブブロックに分割される。いくつかの実施形態において、サブブロックは、ブロック内のピクセルの正方形アレイを備える。例えば、サブブロックは、ブロック内のピクセルの４×４正方形アレイを備え得る。さらに、いくつかの実施形態において、ブロックに対してパレットが構成され得、ブロックのためのサブブロック走査順序が選択され得る。サブブロック走査順序は、ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択され得る。
【０１７４】
[0189]  ブロック１００６において、複数のサブブロックのうちの１つのサブブロックが選択される。ブロック１００８において、選択されたサブブロックの隣接サブブロックの指定ピクセルが識別される。いくつかの実施形態において、隣接サブブロックは、選択されたサブブロックの左の、または選択されたサブブロックの上のサブブロックを備え得る。指定ピクセルは、隣接サブブロックの特定のピクセルに相当し得る。いくつかの実施形態において、指定ピクセルは、選択されたサブブロックに直接隣接するように選択される。例えば、隣接サブブロックが、左の選択されたサブブロックの方である場合、指定ピクセルは、隣接サブブロックの一番右の列の一番上のピクセルであり得る。一方、隣接サブブロックが、選択されたサブブロックの上にある場合、指定ピクセルは、隣接サブブロックの最下部の行の一番左のピクセルであり得る。他の実施形態において、指定ピクセルおよび隣接サブブロックが、選択されたサブブロックに対して他のロケーションにあってよいことが理解される。
【０１７５】
[0190]  ブロック１０１０において、指定ピクセルのピクセル値が決定される。いくつかの実施形態において、このことは、指定ピクセルに対応するインデックス値を識別することを備え得る。パレット（例えば、ブロックに関連するパレット）を使用して、識別されたインデックス値が、次いで、ピクセル値にマッピングされ得る。いくつかの実施形態において、指定ピクセルは、ピクセル値に直接関連付けられてよい。ブロックがパレットに関連しない場合、パレットに含まれないピクセル値にピクセルが対応する場合、および／または同様な場合にこのことが起こり得る。
【０１７６】
[0191]  ブロック１０１２において、選択されたサブブロックの中の全てのピクセルが指定ピクセルと同じピクセル値を有するかどうかについての決定が行われる。いくつかの実施形態において、このことは、サブブロックの中の全てのピクセルが同じピクセル値を有するという決定を最初に行うことを備え得る。そうである場合、次いで、選択されたサブブロックのピクセルが指定ピクセルと同じピクセル値を有するかどうかについての決定が行われ得る。他の実施形態において、合致しないピクセル、または選択されたサブブロックの終わりのいずれかに到達するまで、選択されたサブブロックのピクセルは、指定ピクセルのピクセル値と比較され得る。他の実施形態において、選択されたサブブロック内の全てのピクセルが指定ピクセルと同じピクセル値を有するかどうかを決定するための他の方法が使用され得ることが理解される。
【０１７７】
[0192]  選択されたサブブロックのピクセルが指定ピクセルと同じピクセル値を有すると決定される場合、プロセスはブロック１０１４に進んでよく、ここにおいて、選択されたサブブロックのピクセルが指定ピクセルと同じピクセル値を有することを示すためのフラグがシグナリングされる。さらに、サブブロック内の全てのピクセルが隣接サブブロックの指定ピクセルと同じピクセル値を有することが知識であるので、選択されたサブブロックのピクセル値を実際に符号化する必要がない。
【０１７８】
[0193]  一方、選択されたサブブロック内の全てのピクセルが指定ピクセルと同じピクセル値を有するとは限らないと決定される場合、プロセスはブロック１０１６に進んでよく、ここにおいて、フラグはシグナリングされない。さらに、選択されたサブブロックのピクセル値が符号化される。いくつかの実施形態において、このことは、選択されたサブブロックのためのピクセル走査順序を選択することを備え得る。いくつかの実施形態において、サブブロックのピクセルに関連するピクセル値は、ランレングスコーディングを使用して符号化され得る。
【０１７９】
[0194]  ブロック１０１８において、ブロック内の処理されるべきさらなるサブブロックがあるか否かについての決定が行われ得る。そうである場合、プロセスはブロック１００６に戻ってよく、ここにおいて、別のサブブロックが選択される。さもなければ、プロセスはブロック１０２０に進んでよく、ここにおいて、ブロックおよびそれのサブブロックが符号化される。
サブブロックパレット
[0195]  いくつかの実施形態において、ブロックのためのパレットは、多数の異なるピクセル値（例えば、１６個の異なるピクセル値、３２個の異なるピクセル値、および／または同様なもの）を含むことがある。一方、ブロック内の特定のサブブロックは、ずっと少数の異なるピクセル値（例えば、２つの異なるピクセル値、４つの異なるピクセル値、および／または同様なもの）しか含まないことがある。異なるピクセル値の数が多くなると、より多くのビットがインデックスに対して必要になる。例えば、１６個の異なるピクセル値がある場合、インデックス値は、固定長コードを使用する場合に４ビットを必要とする。一方、４個の異なるピクセル値しかない場合、インデックス値は２ビットしか必要としない。
【０１８０】
[0196]  いくつかの実施形態において、サブブロックは、サブブロックパレットに関連付けられ得る。サブブロックパレットは、１つまたは複数のエントリを備え、ここにおいて、各エントリは、サブブロックインデックス値をブロックパレットのエントリへのポインタに関連付ける。いくつかの実施形態において、ポインタは、ブロックパレットのインデックス値を備え得る。サブブロックを符号化するとき、ピクセル値は、ピクセル値に対応しているブロックパレットインデックス値に対応するサブブロックインデックス値を参照することによって規定され得る。
【０１８１】
[0197]  図１１は、いくつかの実施形態によるブロックパレットとサブブロックパレットとを示す。ブロックパレット１１０２は、ブロックインデックス値１１０８をピクセル値１１１０にマッピングし得る。例えば、図示の実施形態において、ブロックパレット１１０２は６としてのサイズを有し、６個のインデックス値を６個の異なるピクセル値にマッピングする。インデックス値が固定長コードを使用する実施形態において、インデックス値はそれぞれ少なくとも３ビットを必要とする。
【０１８２】
[0198]  ブロックは、第１のサブブロックパレット１１０４を有する第１のサブブロックと、第２のサブブロックパレット１１０６を有する第２のサブブロックとを含み得る。図示の実施形態において、各サブブロックは、２つの異なるピクセル値を有し、従って、サブブロックパレット１１０４および１１０６はそれぞれ２つのエントリを含む。図示の実施形態において各サブブロックパレットの中に２つのエントリしかないので、サブブロックインデックス値は、１ビットだけを使用して表現され得る。
【０１８３】
[0199]  各サブブロックパレットは、サブブロックインデックス値１１１２をピクセル値ポインタ１１１４にマッピングし、ここにおいて、ピクセル値ポインタ１１１４は、サブブロックの中に存在しているピクセル値に対応する、ブロックパレット１１０２の中のエントリを指すか、または参照する。いくつかの実施形態において、ポインタは、ブロックパレット１１０２のエントリのインデックス値であり得る。例えば、第１のサブブロックパレット１１０４の中の０としてのインデックス値は、ピクセル値ｖ4に対応するインデックス値４を有するブロックパレット１１０２のエントリへのポインタに関連付けられる。一方、第２のサブブロックパレット１１０６の中のインデックス値０は、ピクセル値ｖ1に対応するインデックス値１を有するブロックパレット１１０２のエントリへのポインタに関連付けられる。第１および第２のサブブロックを符号化するとき、ブロックインデックス値（３ビット）の代わりにサブブロックインデックス値（１ビット）が使用され得、ビデオデータを符号化するのに必要なビットの量を潜在的に低減し得る。
【０１８４】
[0200]  図１２は、いくつかの実施形態によるサブブロックパレットを実施するためのプロセスのフローチャートを示す。ブロック１２０２において、符号化されるべきビデオデータが受信され、ここにおいて、受信されたビデオデータは１つまたは複数のブロックを備える。
【０１８５】
[0201]  ブロック１２０４において、１つまたは複数のブロックのうちの１つのブロックが、複数のサブブロックに分割される。いくつかの実施形態において、サブブロックは、ブロック内のピクセルの正方形アレイを備える。例えば、サブブロックは、ブロック内のピクセルの４×４正方形アレイを備え得る。いくつかの実施形態において、ブロックのためのサブブロック走査順序が選択され得る。サブブロック走査順序は、ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択され得る。
【０１８６】
[0202]  ブロック１２０６において、いくつかの実施形態において、ブロックに対してパレットが構成され得る。パレットは、ブロックの中に存在しているピクセル値をブロックインデックス値にマッピングするエントリを備える。いくつかの実施形態において、パレットは、ブロックの中に存在する全ての一意のピクセル値のためのエントリを備え得る。他の実施形態において、パレットは、ブロックの中に存在する一意のピクセル値のサブセットのためのエントリを備えてもよい。例えば、パレットは、ブロックの最も共通のピクセル値、ブロックの中のピクセルのしきい値数に関連するピクセル値、および／または同様なもののためのエントリを備え得る。
【０１８７】
[0203]  ブロック１２０８において、ブロック内のサブブロックに対してサブブロックパレットが構成され、サブブロックパレットは、サブブロック内に存在しているピクセル値を規定するために使用され得る。但し、サブブロックパレットのエントリはピクセル値を含まないが、代わりに、ピクセル値に対応するブロックパレットのエントリを指すか、または別のやり方で参照する、ポインタを含み得る。いくつかの実施形態において、各サブブロックパレットエントリは、サブブロックインデックス値をブロックパレットの中の対応するエントリへのポインタにマッピングする。いくつかの実施形態において、ポインタは、ブロックパレットエントリに対応するブロックパレットのインデックス値を備え得る。
【０１８８】
[0204]  ブロック１２１０において、ブロックおよびそれのサブブロックが符号化され、ここにおいて、各サブブロックは、それのそれぞれのサブブロックパレットを使用して符号化される。従って、サブブロックのピクセルは、サブブロックパレットのサブブロックインデックス値を使用して符号化される。サブブロックが復号されるとき、サブブロックインデックス値は、ブロックインデックス値を決定するためにサブブロックパレットによって使用され得、ブロックパレットを使用してピクセル値がそこから決定され得る。
【０１８９】
ランレングスコーディング
[0205]  いくつかの実施形態において、パレットの中のサンプルは、ランレングスコーディングを使用してコーディングされる。ピクセル値および／またはインデックス値を個々のピクセルごとに符号化する代わりに、ピクセル値またはインデックス値を備えるランレングスコーディングは、ピクセル値を有する順次ピクセルの数を示す長さ値を用いて符号化され得る。例えば、同じピクセル値を有する連続した１０個のピクセルがある場合、１０個のピクセルに対応する１０個のピクセル値またはインデックス値を個々に符号化する代わりに、特定のピクセルまたはインデックス値を有する順次ピクセルの数を示す長さ値（例えば、１０）とともに、単一のピクセルまたはインデックス値が符号化され得る。長さ値は「ランレングス」呼ばれることもある。いくつかの実施形態において、ランレングスコーディングは、指数ゴロム（ＥｘｐＧｏｌｏｍｂ）コーディングまたはゴロムライスコーディングなどのゴロムコーディングを使用して行われ得る。
【０１９０】
[0206]  いくつかの実施形態において、最大ランレングスを示すランレングス上限が決定され得る。例えば、サブブロックに対するランレングス上限は、サブブロック内のピクセルの数に相当し得る。ランレングス上限は、符号化サブブロックの一部として含まれてよく、ランレングスコーディングを短縮するために使用されてよい。例えば、いくつかの実施形態において、ＥｘｐＧｏｌｏｍｂコードが使用され得、ここにおいて、プレフィックス部は単項から短縮単項に変更され、サフィックスコーディング部は固定長コードから短縮バイナリコードに変更される。いくつかの実施形態において、短縮ライスコードが使用され、ここにおいて、プレフィックス部は単項から短縮単項に変更され、サフィックスコーディング部は固定長コードから短縮バイナリコードに変更される。短縮ＥｘｐＧｏｌｏｍｂと短縮ライスとを実施するための例示的なシステムおよび方法は、２０１５年６月９日に出願された米国特許出願第６２／１７３，２１５号および２０１５年５月２１日に出願された米国特許出願第１４／７１９，２１５号に開示されており、その両方は、それらの全体が参照により本明細書に組み込まれる。
【０１９１】
エスケープピクセル
[0207]  いくつかの実施形態において、ブロックのためのパレットが、ブロックの中に存在している全ての一意のピクセル値に対するエントリを含むとは限らない場合がある。その結果、ブロック内のいくつかのピクセルは、パレット内で表されないピクセル値を有する。これらのピクセルは「エスケープピクセル」と呼ばれることがある。
【０１９２】
[0208]  いくつかの実施形態において、エスケープピクセルは、サブブロックが符号化されているときに識別およびマークされ得る。エスケープピクセルでないピクセルが符号化されるとき、それらは、パレット（例えば、ブロックパレットおよび／またはサブブロックパレット）を使用してピクセル値がそこから決定され得るインデックス値（例えば、ブロックインデックス値またはサブブロックインデックス値）に関連付けられ得る。しかしながら、エスケープピクセルの場合、ピクセル値はパレットの中に見つけられ得ない。いくつかの実施形態において、エスケープピクセルの出現をマークするために、規定のインデックス値（例えば、ブロックパレットサイズまたはサブブロックパレットサイズに等しい）が使用され得る。さらに、エスケープピクセルのピクセル値が、ビットストリームの中で符号化される。
【０１９３】
[0209]  いくつかの実施形態において、エスケープピクセルのピクセル値は、エスケープピクセルに対してマーク（例えば、規定のインデックス値）した直後に、ビットストリームの中で符号化され得る。しかしながら、他の実施形態において、エスケープピクセルに対するピクセル値は、現在サブブロックの末尾において符号化される。符号化サブブロックのシンタックスをよりすっきりとさせ、および／または（バイパスビンを一緒にグループ化することによって）ＣＡＢＡＣデコーダスループットを増大させるために、このことが行われ得る。例えば、符号化ビデオデータビットストリームを復号するとき、デコーダは、サブブロックのインデックス値とランレングスとを復号する。インデックス値とランレングスとを取得した後、デコーダは、次いで、エスケープピクセルに対するピクセル値を復号し得る。いくつかの実施形態において、特別な事例として、ブロックが１つのサブブロックしか含まないとき（すなわち、ブロックサイズがサブブロックサイズに等しいとき）、この構成は、結果として現在ブロック内のエスケープピクセル値の全てをブロックの末尾に置くことになる。
【０１９４】
符号化ビットストリーム構造
[0210]  図１３は、いくつかの実施形態による、ブロックに対応する符号化ビデオデータビットストリームの構造を示す。いくつかの実施形態において、ビデオデータのブロックに対応する符号化ビットストリームは、パレットデータ１３０２とともに開始することがあり、ここにおいて、パレットデータ１３０２は、インデックス値をピクセル値にマッピングする１つまたは複数のパレットエントリを備える。さらに、ビットストリームは、ブロックによって使用されているサブブロック走査順序の表示を備え得る。
【０１９５】
[0211]  符号化ビットストリームは、複数のサブブロックに対するデータ１３０４をさらに備え得る。いくつかの実施形態において、特定のサブブロックに対するデータ（例えば、データ１３０４−１）は、サブブロックパレットデータ１３０６を備え得る。サブブロックパレットデータ１３０６は、サブブロックの中に存在するピクセル値に対応するパレットデータ１３０２のパレットエントリにサブブロックインデックス値をマッピングする、１つまたは複数のエントリを備え得る。さらに、サブブロックのためのピクセル走査順序も規定され得る。
【０１９６】
[0212]  サブブロックデータ１３０４−１は、サブブロック内のピクセルのピクセル値を示すピクセルデータ１３０８をさらに備え得る。いくつかの実施形態において、ピクセル値は、サブブロックパレットデータ１３０６の中で定義されるようなサブブロックインデックス値を使用して示される。いくつかの実施形態において、ピクセルデータは、ランレングスコーディングを使用してコーディングされ得る。
【０１９７】
[0213]  いくつかの実施形態において、サブブロックは、１つまたは複数のエスケープピクセルを備え得る。特定のピクセルがエスケープピクセルである場合、ピクセルデータ１３０６は、特定のピクセルがエスケープピクセルであることを示すフラグまたはインジケータを含み得る。しかしながら、ピクセルデータ１３０６は、エスケープピクセルに対する実際のピクセル値を含まなくてよい。代わりに、エスケープピクセルに対するピクセル値は、ピクセルデータ１３０８の後に、エスケープピクセル値１３１０としてコーディングされ得る。
【０１９８】
[0214]  いくつかの実施形態において、ブロックの１つまたは複数のサブブロックのピクセル値は、隣接サブブロックに少なくとも部分的に基づいて決定され得る。例えば、第２のサブブロックに対するデータ（例えば、データ１３０４−２）は、第２のサブブロックの全てのピクセルが隣接サブブロックの中の指定ピクセルと同じピクセル値を有することを示す、シグナリングされるフラグ１３１２を備え得る。第２のサブブロックの全てのピクセルのピクセル値がすでに知られているので、第２のサブブロックに対するサブブロックパレットデータまたはサブブロックピクセルデータを含めることが必要であり得ない。
【０１９９】
他の考察
[0215]  本明細書で開示された情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。例えば、上記の説明全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【０２００】
[0216]  本明細書で開示された実施形態に関して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実施され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上記で説明されている。そのような機能性が、ハードウェアまたはソフトウェアのどちらとして実施されるのかは、特定の応用例と、システム全体に課せられる設計制約とに依存する。当業者は、特定の適用例ごとに様々な方法で記載された機能を実施し得るが、そのような実施の決定が、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。
【０２０１】
[0217]  本明細書に記載された技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実施され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実施され得る。モジュールまたは構成要素として記載された任意の特徴は、集積論理デバイス内で一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実施され得る。ソフトウェアで実施された場合、本技法は、実行されたとき、上記で説明された方法のうちの１つまたは複数を行う命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０２０２】
[0218]  プログラムコードは、１つまたは複数のＤＳＰなどの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、または他の等価の集積回路もしくはディスクリート論理回路を含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示に記載された技法のいずれかを行うように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実施され得る。従って、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書に記載された技法の実施に適した任意の他の構造もしくは装置のいずれかを指し得る。さらに、いくつかの態様では、本明細書に記載された機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内に提供され得るか、または複合ビデオエンコーダ／デコーダ（コーデック）に組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実施され得る。
【０２０３】
[0219]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、多種多様なデバイスまたは装置で実施され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技術を行うように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記で説明したように、様々なユニットが、適切なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０２０４】
[0220]  本発明の様々な実施形態について説明した。これらおよび他の実施形態は、以下の特許請求の範囲内に入る。
【図１Ａ】
2017521964.tif 000003
【図１Ｂ】
2017521964.tif 000004
【図２Ａ】
2017521964.tif 000005
【図２Ｂ】
2017521964.tif 000006
【図３Ａ】
2017521964.tif 000007
【図３Ｂ】
2017521964.tif 000008
【図４】
2017521964.tif 000009
【図５】
2017521964.tif 000010
【図６Ａ】
2017521964.tif 000011
【図６Ｂ】
2017521964.tif 000012
【図７Ａ】
2017521964.tif 000013
【図７Ｂ】
2017521964.tif 000014
【図８】
2017521964.tif 000015
【図９】
2017521964.tif 000016
【図１０】
2017521964.tif 000017
【図１１】
2017521964.tif 000018
【図１２】
2017521964.tif 000019
【図１３】
2017521964.tif 000020
【手続補正書】
【提出日】平成29年4月11日(2017.4.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックが符号化されるべき順序を規定する、前記ブロックの前記サブブロックのためのサブブロック走査順序を、前記パレットのパレットエントリに対応するインデックス値を使用して符号化される場合に最小コストである走査順序を選択することによって、前記ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記複数のサブブロックのうちの第１のサブブロックに対して、前記第１のサブブロックの前記ピクセルが符号化されるべき順序を規定する、前記第１のサブブロックのためのピクセル走査順序を、前記パレットのパレットエントリに対応するインデックス値を使用して符号化される場合に最小コストである走査順序を選択することによって、前記第１のサブブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記選択されたサブブロック走査順序を使用して前記ブロックを符号化することと、ここにおいて、前記第１のサブブロックが、それの選択されたピクセル走査順序を使用して符号化され、ここにおいて、前記第１のサブブロックの前記ピクセルの少なくとも一部分が、前記パレットのパレットエントリに対応するインデックス値を使用して符号化される、
を備える方法。
【請求項２】
ピクセル値がカラー成分値を備える、請求項１に記載の方法。
【請求項３】
前記第１のサブブロックのためのピクセル走査順序を選択することが、
複数の可能なピクセル走査順序を識別することと、
前記複数の可能なピクセル走査順序の各々に対するコストを評価することと、ここにおいて、前記複数の可能なピクセル走査順序のうちの１つの可能なピクセル走査順序に対するコストは、前記可能なピクセル走査順序が前記第１のサブブロックのために使用される場合に前記第１のサブブロックに関連することになるビットストリーム長を示す、
最小コストを有する可能なピクセル走査順序を選択することと
を備える、請求項１に記載の方法。
【請求項４】
前記複数の可能なピクセル走査順序が、水平走査順序、垂直走査順序、水平トラバース走査順序、および垂直トラバース走査順序のうちの少なくとも１つを備える、請求項３に記載の方法。
【請求項５】
前記第１のサブブロックをサブブロックパレットに関連付けることをさらに備え、前記サブブロックパレットが、前記第１のサブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットエントリのサブセットを参照する、請求項１に記載の方法。
【請求項６】
前記サブブロックパレットが、複数のエントリを備え、各エントリが、前記パレットの対応するエントリへのポインタを備える、請求項５に記載の方法。
【請求項７】
前記第１のサブブロックの中のピクセルが、前記第１のサブブロックの前記ピクセルが前記サブブロックパレットに関連するピクセル値に対応しないピクセル値を有することを示すエスケープピクセルに指定され、ここにおいて、前記エスケープピクセルに関連する前記ピクセル値は、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化される、請求項５に記載の方法。
【請求項８】
前記第１のサブブロックが、ランレングスコーディングを使用して符号化され、ここにおいて、ランレングス値が、前記第１のサブブロックの中のピクセルの数に対応するランレングス上限に少なくとも部分的に基づいて短縮される、請求項１に記載の方法。
【請求項９】
前記複数のサブブロックのうちの第２のサブブロックに対して、ここにおいて、前記第２のサブブロックが前記第１のサブブロックに隣接し、前記第２のサブブロックのためのピクセル走査順序を、前記第１のサブブロックのための前記ピクセル走査順序に少なくとも部分的に基づいて決定することをさらに備える、請求項１に記載の方法。
【請求項１０】
ビデオデータを符号化する方法であって、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックのうちの第１のサブブロックに対して、（ｉ）隣接サブブロックの中の指定ピクセルのピクセル値を決定することと、（ｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するか否かを決定することと、（ｉｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するという決定に応答して、前記第１のサブブロックの前記ピクセルが同じピクセル値を有することが前記指定ピクセルであったことを示すフラグをシグナリングすることと、を備え、
ここにおいて、前記指定ピクセルの前記ピクセル値を決定することが前記指定ピクセルのインデックス値を決定することを備え、ここにおいて、前記インデックス値が前記パレットのパレットエントリに対応する、
方法。
【請求項１１】
前記隣接サブブロックが、前記第１のサブブロックの左のサブブロック、または前記第１のサブブロックの上のサブブロックを備え、ここにおいて、前記指定ピクセルが、前記隣接サブブロックの一番左の列の最上部のピクセル、または前記隣接サブブロックの最下部の行の一番左のピクセルを備える、請求項１０に記載の方法。
【請求項１２】
前記フラグがシグナリングされる場合、前記第１のサブブロックの前記ピクセルの前記ピクセル値が符号化されない、請求項１０に記載の方法。
【請求項１３】
前記第１のサブブロックの全てのピクセルが前記指定ピクセルと同じピクセル値を有するとは限らないという決定に応答して、前記フラグをシグナリングしないことをさらに備える、請求項１０に記載の方法。
【請求項１４】
前記フラグがシグナリングされない場合、前記第１のサブブロックをサブブロックパレットに関連付けることをさらに備え、前記サブブロックパレットが、前記第１のサブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットエントリのサブセットを示す、請求項１３に記載の方法。
【請求項１５】
前記第１のサブブロックの中のピクセルがエスケープピクセルであり、ここにおいて、前記エスケープピクセルが、前記サブブロックパレットに関連するピクセル値に対応しないピクセル値を有する前記サブブロックのピクセルであり、ここにおいて、前記エスケープピクセルに関連する前記ピクセル値は、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化される、請求項１４に記載の方法。
【請求項１６】
ビデオエンコーダであって、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックが符号化されるべき順序を規定する、前記ブロックの前記サブブロックのためのサブブロック走査順序を、前記パレットのパレットエントリに対応するインデックス値を使用して符号化される場合に最小コストである走査順序を選択することによって、前記ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記複数のサブブロックのうちの第１のサブブロックに対して、前記第１のサブブロックの前記ピクセルが符号化されるべき順序を規定する、前記第１のサブブロックのためのピクセル走査順序を、前記パレットのパレットエントリに対応するインデックス値を使用して符号化される場合に最小コストである走査順序を選択することによって、前記第１のサブブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記選択されたサブブロック走査順序を使用して前記ブロックを符号化することと、ここにおいて、前記第１のサブブロックが、その選択されたピクセル走査順序を使用して符号化され、ここにおいて、前記第１のサブブロックの前記ピクセルの少なくとも一部分が、前記パレットのパレットエントリに対応するインデックス値を使用して符号化される、
を行うように構成されたプロセッサと
を備えるビデオエンコーダ。
【請求項１７】
ピクセル値がカラー成分値を備える、請求項１６に記載のビデオエンコーダ。
【請求項１８】
前記第１のサブブロックのためのピクセル走査順序を選択するために、前記プロセッサが、
複数の可能なピクセル走査順序を識別することと、
前記複数の可能なピクセル走査順序の各々に対するコストを評価することと、ここにおいて、前記複数の可能なピクセル走査順序のうちの１つの可能なピクセル走査順序に対するコストは、前記可能なピクセル走査順序が前記第１のサブブロックのために使用される場合に前記第１のサブブロックに関連することになるビットストリーム長を示す、
最小コストを有する可能なピクセル走査順序を選択することと
を行うように構成される、請求項１６に記載のビデオエンコーダ。
【請求項１９】
前記複数の可能なピクセル走査順序が、水平走査順序、垂直走査順序、水平トラバース走査順序、および垂直トラバース走査順序のうちの少なくとも１つを備える、請求項１８に記載のビデオエンコーダ。
【請求項２０】
前記プロセッサが、前記第１のサブブロックをサブブロックパレットに関連付けるようにさらに構成され、前記サブブロックパレットが、前記第１のサブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットエントリのサブセットを参照する、請求項１６に記載のビデオエンコーダ。
【請求項２１】
前記サブブロックパレットが、複数のエントリを備え、各エントリが、前記パレットの対応するエントリへのポインタを備える、請求項２０に記載のビデオエンコーダ。
【請求項２２】
前記第１のサブブロックの中のピクセルが、前記第１のサブブロックの前記ピクセルが前記サブブロックパレットに関連するピクセル値に対応しないピクセル値を有することを示すエスケープピクセルに指定され、ここにおいて、前記プロセッサが、前記エスケープピクセルに関連する前記ピクセル値を、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化するように構成される、請求項２０に記載のビデオエンコーダ。
【請求項２３】
前記プロセッサが、ランレングスコーディングを使用して前記第１のサブブロックを符号化するように構成され、ここにおいて、ランレングス値が、前記第１のサブブロックの中のピクセルの数に対応するランレングス上限に少なくとも部分的に基づいて短縮される、請求項１６に記載のビデオエンコーダ。
【請求項２４】
前記複数のサブブロックのうちの第２のサブブロックに対して、ここにおいて、前記第２のサブブロックが前記第１のサブブロックに隣接し、前記プロセッサが、前記第２のサブブロックのためのピクセル走査順序を、前記第１のサブブロックのための前記ピクセル走査順序に少なくとも部分的に基づいて決定するようにさらに構成される、請求項１６に記載のビデオエンコーダ。
【請求項２５】
ビデオエンコーダであって、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックのうちの第１のサブブロックに対して、（ｉ）隣接サブブロックの中の指定ピクセルのピクセル値を決定することと、（ｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するか否かを決定することと、（ｉｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するという決定に応答して、前記第１のサブブロックの前記ピクセルが同じピクセル値を有することが前記指定ピクセルであったことを示すフラグをシグナリングすることと
を行うように構成されたプロセッサとを備え、
ここにおいて、前記指定ピクセルの前記ピクセル値を決定するために、前記プロセッサが、前記指定ピクセルのインデックス値を決定するように構成され、ここにおいて、前記インデックス値が前記パレットのパレットエントリに対応する、
ビデオエンコーダ。
【請求項２６】
前記隣接サブブロックが、前記第１のサブブロックの左のサブブロック、または前記第１のサブブロックの上のサブブロックを備え、ここにおいて、前記指定ピクセルが、前記隣接サブブロックの一番左の列の最上部のピクセル、または前記隣接サブブロックの最下部の行の一番左のピクセルを備える、請求項２５に記載のビデオエンコーダ。
【請求項２７】
前記フラグがシグナリングされる場合、前記プロセッサが、前記第１のサブブロックの前記ピクセルの前記ピクセル値を符号化しないように構成される、請求項２５に記載のビデオエンコーダ。
【請求項２８】
前記プロセッサが、前記第１のサブブロックの全てのピクセルが前記指定ピクセルと同じピクセル値を有するとは限らないという決定に応答して、前記フラグをシグナリングしないようにさらに構成される、請求項２５に記載のビデオエンコーダ。
【請求項２９】
前記フラグがシグナリングされない場合、前記プロセッサが、前記第１のサブブロックをサブブロックパレットに関連付けるように構成され、前記サブブロックパレットが、前記サブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットの前記エントリのサブセットを示す、請求項２８に記載のビデオエンコーダ。
【請求項３０】
前記第１のサブブロックの中のピクセルがエスケープピクセルであり、ここにおいて、前記エスケープピクセルが、前記サブブロックパレットに関連するピクセル値に対応しないピクセル値を有する前記サブブロックのピクセルであり、ここにおいて、前記プロセッサが、前記エスケープピクセルに関連する前記ピクセル値を、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化するように構成される、請求項２９に記載のビデオエンコーダ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２０４
【補正方法】変更
【補正の内容】
【０２０４】
［０２２０］  本発明の様々な実施形態について説明した。これらおよび他の実施形態は、以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを符号化する方法であって、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックが符号化されるべき順序を規定する、前記ブロックの前記サブブロックのためのサブブロック走査順序を、前記ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記複数のサブブロックのうちの第１のサブブロックに対して、前記第１のサブブロックの前記ピクセルが符号化されるべき順序を規定する、前記第１のサブブロックのためのピクセル走査順序を、前記第１のサブブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記選択されたサブブロック走査順序を使用して前記ブロックを符号化することと、ここにおいて、前記第１のサブブロックが、それの選択されたピクセル走査順序を使用して符号化され、ここにおいて、前記第１のサブブロックの前記ピクセルの少なくとも一部分が、前記パレットのパレットエントリに対応するインデックス値を使用して符号化される、
を備える方法。
［Ｃ２］
ピクセル値がカラー成分値を備える、Ｃ１に記載の方法。
［Ｃ３］
前記第１のサブブロックのためのピクセル走査順序を選択することが、
複数の可能なピクセル走査順序を識別することと、
前記複数の可能なピクセル走査順序の各々に対するコストを評価することと、ここにおいて、前記複数の可能なピクセル走査順序のうちの１つの可能なピクセル走査順序に対するコストは、前記可能なピクセル走査順序が前記第１のサブブロックのために使用される場合に前記第１のサブブロックに関連することになるビットストリーム長を示す、
最小コストを有する可能なピクセル走査順序を選択することと
を備える、Ｃ１に記載の方法。
［Ｃ４］
前記複数の可能なピクセル走査順序が、水平走査順序、垂直走査順序、水平トラバース走査順序、および垂直トラバース走査順序のうちの少なくとも１つを備える、Ｃ３に記載の方法。
［Ｃ５］
前記第１のサブブロックをサブブロックパレットに関連付けることをさらに備え、前記サブブロックパレットが、前記第１のサブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットエントリのサブセットを参照する、Ｃ１に記載の方法。
［Ｃ６］
前記サブブロックパレットが、複数のエントリを備え、各エントリが、前記パレットの対応するエントリへのポインタを備える、Ｃ５に記載の方法。
［Ｃ７］
前記第１のサブブロックの中のピクセルが、前記第１のサブブロックの前記ピクセルが前記サブブロックパレットに関連するピクセル値に相当しないピクセル値を有することを示すエスケープピクセルに指定され、ここにおいて、前記エスケープピクセルに関連する前記ピクセル値は、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化される、Ｃ５に記載の方法。
［Ｃ８］
前記第１のサブブロックが、ランレングスコーディングを使用して符号化され、ここにおいて、ランレングス値が、前記第１のサブブロックの中のピクセルの数に対応するランレングス上限に少なくとも部分的に基づいて短縮される、Ｃ１に記載の方法。
［Ｃ９］
前記複数のサブブロックのうちの第２のサブブロックに対して、ここにおいて、前記第２のサブブロックが前記第１のサブブロックに隣接し、前記第２のサブブロックのためのピクセル走査順序を、前記第１のサブブロックのための前記ピクセル走査順序に少なくとも部分的に基づいて決定することをさらに備える、Ｃ１に記載の方法。
［Ｃ１０］
ビデオデータを符号化する方法であって、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックのうちの第１のサブブロックに対して、（ｉ）隣接サブブロックの中の指定ピクセルのピクセル値を決定することと、（ｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するか否かを決定することと、（ｉｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するという決定に応答して、前記第１のサブブロックの前記ピクセルが同じピクセル値を有することが前記指定ピクセルであったことを示すフラグをシグナリングすることと、を備え、
ここにおいて、前記指定ピクセルの前記ピクセル値を決定することが前記指定ピクセルのインデックス値を決定することを備え、ここにおいて、前記インデックス値が前記パレットのパレットエントリに対応する、
方法。
［Ｃ１１］
前記隣接サブブロックが、前記第１のサブブロックの左のサブブロック、または前記第１のサブブロックの上のサブブロックを備え、ここにおいて、前記指定ピクセルが、前記隣接サブブロックの一番左の列の最上部のピクセル、または前記隣接サブブロックの最下部の行の一番左のピクセルを備える、Ｃ１０に記載の方法。
［Ｃ１２］
前記フラグがシグナリングされる場合、前記第１のサブブロックの前記ピクセルの前記ピクセル値が符号化されない、Ｃ１０に記載の方法。
［Ｃ１３］
前記第１のサブブロックの全てのピクセルが前記指定ピクセルと同じピクセル値を有するとは限らないという決定に応答して、前記フラグをシグナリングしないことをさらに備える、Ｃ１０に記載の方法。
［Ｃ１４］
前記フラグがシグナリングされない場合、前記第１のサブブロックをサブブロックパレットに関連付けることをさらに備え、前記サブブロックパレットが、前記第１のサブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットエントリのサブセットを示す、Ｃ１３に記載の方法。
［Ｃ１５］
前記第１のサブブロックの中のピクセルがエスケープピクセルであり、ここにおいて、前記エスケープピクセルが、前記サブブロックパレットに関連するピクセル値に相当しないピクセル値を有する前記サブブロックのピクセルであり、ここにおいて、前記エスケープピクセルに関連する前記ピクセル値は、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化される、Ｃ１４に記載の方法。
［Ｃ１６］
ビデオエンコーダであって、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックが符号化されるべき順序を規定する、前記ブロックの前記サブブロックのためのサブブロック走査順序を、前記ブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記複数のサブブロックのうちの第１のサブブロックに対して、前記第１のサブブロックの前記ピクセルが符号化されるべき順序を規定する、前記第１のサブブロックのためのピクセル走査順序を、前記第１のサブブロック内でのピクセル値の分布に少なくとも部分的に基づいて選択することと、
前記選択されたサブブロック走査順序を使用して前記ブロックを符号化することと、ここにおいて、前記第１のサブブロックが、その選択されたピクセル走査順序を使用して符号化され、ここにおいて、前記第１のサブブロックの前記ピクセルの少なくとも一部分が、前記パレットのパレットエントリに対応するインデックス値を使用して符号化される、
を行うように構成されたプロセッサと
を備えるビデオエンコーダ。
［Ｃ１７］
ピクセル値がカラー成分値を備える、Ｃ１６に記載のビデオエンコーダ。
［Ｃ１８］
前記第１のサブブロックのためのピクセル走査順序を選択するために、前記プロセッサが、
複数の可能なピクセル走査順序を識別することと、
前記複数の可能なピクセル走査順序の各々に対するコストを評価することと、ここにおいて、前記複数の可能なピクセル走査順序のうちの１つの可能なピクセル走査順序に対するコストは、前記可能なピクセル走査順序が前記第１のサブブロックのために使用される場合に前記第１のサブブロックに関連することになるビットストリーム長を示す、
最小コストを有する可能なピクセル走査順序を選択することと
を行うように構成される、Ｃ１６に記載のビデオエンコーダ。
［Ｃ１９］
前記複数の可能なピクセル走査順序が、水平走査順序、垂直走査順序、水平トラバース走査順序、および垂直トラバース走査順序のうちの少なくとも１つを備える、Ｃ１８に記載のビデオエンコーダ。
［Ｃ２０］
前記プロセッサが、前記第１のサブブロックをサブブロックパレットに関連付けるようにさらに構成され、前記サブブロックパレットが、前記第１のサブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットエントリのサブセットを参照する、Ｃ１６に記載のビデオエンコーダ。
［Ｃ２１］
前記サブブロックパレットが、複数のエントリを備え、各エントリが、前記パレットの対応するエントリへのポインタを備える、Ｃ２０に記載のビデオエンコーダ。
［Ｃ２２］
前記第１のサブブロックの中のピクセルが、前記第１のサブブロックの前記ピクセルが前記サブブロックパレットに関連するピクセル値に相当しないピクセル値を有することを示すエスケープピクセルに指定され、ここにおいて、前記プロセッサが、前記エスケープピクセルに関連する前記ピクセル値を、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化するように構成される、Ｃ２０に記載のビデオエンコーダ。
［Ｃ２３］
前記プロセッサが、ランレングスコーディングを使用して前記第１のサブブロックを符号化するように構成され、ここにおいて、ランレングス値が、前記第１のサブブロックの中のピクセルの数に対応するランレングス上限に少なくとも部分的に基づいて短縮される、Ｃ１６に記載のビデオエンコーダ。
［Ｃ２４］
前記複数のサブブロックのうちの第２のサブブロックに対して、ここにおいて、前記第２のサブブロックが前記第１のサブブロックに隣接し、前記プロセッサが、前記第２のサブブロックのためのピクセル走査順序を、前記第１のサブブロックのための前記ピクセル走査順序に少なくとも部分的に基づいて決定するようにさらに構成される、Ｃ１６に記載のビデオエンコーダ。
［Ｃ２５］
ビデオエンコーダであって、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
１つまたは複数のブロックを備えるビデオデータを受信することと、各ブロックが、パレットの関連するブロックの中で使用されるピクセル値を規定する１つまたは複数のパレットエントリを備える前記パレットに関連する、
前記１つまたは複数のブロックのうちの１つのブロックに対して、
前記ブロックを複数のサブブロックに分割することと、各サブブロックが、前記ブロック内のピクセルのアレイを備える、
前記複数のサブブロックのうちの第１のサブブロックに対して、（ｉ）隣接サブブロックの中の指定ピクセルのピクセル値を決定することと、（ｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するか否かを決定することと、（ｉｉｉ）前記第１のサブブロックの前記ピクセルが前記隣接サブブロックの前記指定ピクセルと同じピクセル値を有するという決定に応答して、前記第１のサブブロックの前記ピクセルが同じピクセル値を有することが前記指定ピクセルであったことを示すフラグをシグナリングすることと
を行うように構成されたプロセッサとを備え、
ここにおいて、前記指定ピクセルの前記ピクセル値を決定するために、前記プロセッサが、前記指定ピクセルのインデックス値を決定するように構成され、ここにおいて、前記インデックス値が前記パレットのパレットエントリに対応する、
ビデオエンコーダ。
［Ｃ２６］
前記隣接サブブロックが、前記第１のサブブロックの左のサブブロック、または前記第１のサブブロックの上のサブブロックを備え、ここにおいて、前記指定ピクセルが、前記隣接サブブロックの一番左の列の最上部のピクセル、または前記隣接サブブロックの最下部の行の一番左のピクセルを備える、Ｃ２５に記載のビデオエンコーダ。
［Ｃ２７］
前記フラグがシグナリングされる場合、前記プロセッサが、前記第１のサブブロックの前記ピクセルの前記ピクセル値を符号化しないように構成される、Ｃ２５に記載のビデオエンコーダ。
［Ｃ２８］
前記プロセッサが、前記第１のサブブロックの全てのピクセルが前記指定ピクセルと同じピクセル値を有するとは限らないという決定に応答して、前記フラグをシグナリングしないようにさらに構成される、Ｃ２５に記載のビデオエンコーダ。
［Ｃ２９］
前記フラグがシグナリングされない場合、前記プロセッサが、前記第１のサブブロックをサブブロックパレットに関連付けるように構成され、前記サブブロックパレットが、前記サブブロックの前記ピクセルにおいて使用されるピクセル値に対応する前記パレットの前記エントリのサブセットを示す、Ｃ２８に記載のビデオエンコーダ。
［Ｃ３０］
前記第１のサブブロックの中のピクセルがエスケープピクセルであり、ここにおいて、前記エスケープピクセルが、前記サブブロックパレットに関連するピクセル値に対応しないピクセル値を有する前記サブブロックのピクセルであり、ここにおいて、前記プロセッサが、前記エスケープピクセルに関連する前記ピクセル値を、エスケープピクセルとして指定されない前記第１のサブブロックの前記ピクセルが符号化された後に符号化するように構成される、Ｃ２９に記載のビデオエンコーダ。
【国際調査報告】
2017521964.tif 000021
2017521964.tif 000022
2017521964.tif 000023
2017521964.tif 000024
2017521964.tif 000025