(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
前記ビデオデータのパレットモードコード化ブロックについてのピクセル値を表すエントリを含むパレットを取得することと、
前記ビデオデータの前記パレットモードコード化ブロックが、前記パレット中に含まれる前記エントリのいずれとも関連しないエスケープピクセルを含み、および前記パレット中に含まれる前記エントリが前記エスケープピクセルを予測するために使用されないと決定することと、
前記ビデオデータの前記パレットモードコード化ブロックの前記エスケープピクセルについてのクロミナンスまたはルミナンス値を定義するシンタックス要素についての値の少なくとも一部分を定義する指数ゴロムコードワードを復号することと、ここにおいて、前記指数ゴロムコードワードを復号することは、パラメータ３を伴う指数ゴロム復号を使用して前記指数ゴロムコードワードを復号することを備え、パラメータ３を伴う指数ゴロム復号を使用して前記指数ゴロムコードワードを復号することは、係数２３を使用して前記指数ゴロムコードワードを復号することを備える、
前記エスケープピクセルについての前記クロミナンスまたはルミナンス値を定義する前記シンタックス要素についての前記値を使用して前記パレットモードコード化ブロックを復号することと
を備える方法。
【請求項２】
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定することと、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定することと、をさらに備え、
前記指数ゴロムコードワードを復号することは、前記最大量子化値を使用して前記指数ゴロムコードワードを復号することを備える、請求項１に記載の方法。
【請求項３】
前記最大量子化値を決定することは、前記量子化ステップサイズ値のみに基づいて前記最大量子化値を決定することを備える、請求項２に記載の方法。
【請求項４】
前記最大量子化値を決定することは、前記量子化ステップサイズ値、量子化スケール値、右シフトオフセット値、および右シフトパラメータ値に基づいて前記最大量子化値を決定することを備え、前記方法は、ルックアップテーブルから、前記量子化スケール値と、前記右シフトオフセット値と、前記右シフトパラメータ値とを決定することをさらに備える、請求項２に記載の方法。
【請求項５】
前記最大量子化値を決定することは、クリッピング演算を実施せずに前記最大量子化値を決定することを備える、請求項４に記載の方法。
【請求項６】
前記最大量子化値を決定することは、除算演算を実施せずに前記最大量子化値を計算することを備える、請求項２に記載の方法。
【請求項７】
前記最大量子化値を決定することは、前記量子化パラメータによってインデックス付けされたルックアップテーブルから前記最大量子化値を取り出すことを備える、請求項２に記載の方法。
【請求項８】
前記エスケープピクセルを含む色成分に基づいて、前記量子化パラメータを決定することをさらに備える、請求項７に記載の方法。
【請求項９】
前記値の少なくとも前記一部分が前記値の第２の部分を備え、前記方法は、
前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを復号することと、
前記エスケープピクセルについての前記値を生じるために、前記第１の部分と前記第２の部分とを組み合わせることとをさらに備える、請求項１に記載の方法。
【請求項１０】
ビデオデータを復号するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
回路内に実装されるビデオデコーダと、を備え、前記ビデオデコーダが、
前記ビデオデータのパレットモードコード化ブロックについてのピクセル値を表すエントリを含むパレットを取得することと、
前記ビデオデータの前記パレットモードコード化ブロックが、前記パレット中に含まれる前記エントリのいずれとも関連しないエスケープピクセルを含み、および前記パレット中に含まれる前記エントリが前記エスケープピクセルを予測するために使用されないと決定することと、
前記記憶されたビデオデータの前記パレットモードコード化ブロックの前記エスケープピクセルについてのクロミナンスまたはルミナンス値を定義するシンタックス要素についての値の少なくとも一部分を定義する指数ゴロムコードワードを復号することと、ここにおいて、前記ビデオデコーダは、パラメータ３を伴う指数ゴロム復号を使用して前記指数ゴロムコードワードを復号するように構成され、パラメータ３を伴う指数ゴロム復号を使用して前記指数ゴロムコードワードを復号するために、前記ビデオデコーダは、係数２３を使用して前記指数ゴロムコードワードを復号するように構成される、
前記エスケープピクセルについての前記クロミナンスまたはルミナンス値を定義する前記シンタックス要素についての前記値を使用して前記パレットモードコード化ブロックを復号することと
を行うように構成される、デバイス。
【請求項１１】
前記ビデオデコーダは、
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定し、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定するようにさらに構成され、
前記ビデオデコーダは、前記最大量子化値を使用して前記指数ゴロムコードワードを復号するように構成される、請求項１０に記載のデバイス。
【請求項１２】
前記ビデオデコーダは、前記量子化ステップサイズ値のみに基づいて前記最大量子化値を決定するように構成される、請求項１１に記載のデバイス。
【請求項１３】
前記ビデオデコーダは、前記量子化ステップサイズ値、量子化スケール値、右シフトオフセット値、および右シフトパラメータ値に基づいて前記最大量子化値を決定するように構成され、前記ビデオデコーダは、ルックアップテーブルから、前記量子化スケール値と、前記右シフトオフセット値と、前記右シフトパラメータ値とを決定するようにさらに構成される、請求項１１に記載のデバイス。
【請求項１４】
前記ビデオデコーダは、クリッピング演算を実施せずに前記最大量子化値を決定するように構成される、請求項１３に記載のデバイス。
【請求項１５】
前記ビデオデコーダは、除算演算を実施せずに前記最大量子化値を計算するように構成される、請求項１１に記載のデバイス。
【請求項１６】
前記ビデオデコーダは、前記量子化パラメータによってインデックス付けされたルックアップテーブルから前記最大量子化値を取り出すように構成される、請求項１１に記載のデバイス。
【請求項１７】
前記値の少なくとも前記一部分が前記値の第２の部分を備え、前記ビデオデコーダは、
前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを復号し、
前記エスケープピクセルについての前記値を生じるために、前記第１の部分と前記第２の部分とを組み合わせるようにさらに構成される、請求項１０に記載のデバイス。
【請求項１８】
ビデオデータを復号するためのデバイスであって、
前記ビデオデータのパレットモードコード化ブロックについてのピクセル値を表すエントリを含むパレットを取得するための手段と、
前記ビデオデータの前記パレットモードコード化ブロックが、前記パレット中に含まれる前記エントリのいずれとも関連しないエスケープピクセルを含み、および前記パレット中に含まれる前記エントリが前記エスケープピクセルを予測するために使用されないと決定するための手段と、
前記ビデオデータの前記パレットモードコード化ブロックの前記エスケープピクセルについてのクロミナンスまたはルミナンス値を定義するシンタックス要素についての値の少なくとも一部分を定義する指数ゴロムコードワードを復号するための手段と、ここにおいて、前記指数ゴロムコードワードを復号するための前記手段は、パラメータ３を伴う指数ゴロム復号を使用して前記指数ゴロムコードワードを復号するための手段を備え、パラメータ３を伴う指数ゴロム復号を使用して前記指数ゴロムコードワードを復号するための前記は、係数２３を使用して前記指数ゴロムコードワードを復号するための手段を備える、
前記エスケープピクセルについての前記クロミナンスまたはルミナンス値を定義する前記シンタックス要素についての前記値を使用して前記パレットモードコード化ブロックを復号するための手段と
を備えるデバイス。
【請求項１９】
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定するための手段と、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定するための手段と、をさらに備え、
前記指数ゴロムコードワードを復号するための前記手段は、前記最大量子化値を使用して前記指数ゴロムコードワードを復号するための手段を備える、請求項１８に記載のデバイス。
【請求項２０】
前記値の少なくとも前記一部分が前記値の第２の部分を備え、
前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを復号するための手段と、
前記エスケープピクセルについての前記値を生じるために、前記第１の部分と前記第２の部分とを組み合わせるための手段とをさらに備える、請求項１８に記載のデバイス。
【請求項２１】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、ビデオ復号デバイスの１つまたは複数のプロセッサに、
ビデオデータのパレットモードコード化ブロックについてのピクセル値を表すエントリを含むパレットを取得することと、
前記ビデオデータの前記パレットモードコード化ブロックが、前記パレット中に含まれる前記エントリのいずれとも関連しないエスケープピクセルを含み、および前記パレット中に含まれる前記エントリが前記エスケープピクセルを予測するために使用されないと決定することと、
前記ビデオデータの前記パレットモードコード化ブロックの前記エスケープピクセルについてのクロミナンスまたはルミナンス値を定義するシンタックス要素についての値の少なくとも一部分を定義する指数ゴロムコードワードを復号ことと、を行わせ、ここにおいて、前記プロセッサに前記指数ゴロムコードワードを復号させる前記命令は、前記プロセッサに、パラメータ３を伴う指数ゴロム復号を使用して前記指数ゴロムコードワードを復号させる命令を備え、前記プロセッサにパラメータ３を伴う指数ゴロム復号を使用して前記指数ゴロムコードワードを復号させる前記命令は、前記プロセッサに係数２３を使用して前記指数ゴロムコードワードを復号させる命令を備える、および、
前記エスケープピクセルについての前記クロミナンスまたはルミナンス値を定義する前記シンタックス要素についての前記値を使用して前記パレットモードコード化ブロックを復号させる、非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記プロセッサに、
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定することと、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定することと、を行わせる命令をさらに備え、
前記プロセッサに前記指数ゴロムコードワードを復号させる前記命令は、前記プロセッサに、前記最大量子化値を使用して前記指数ゴロムコードワードを復号させる命令を備える、請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記値の少なくとも前記一部分が前記値の第２の部分を備え、前記プロセッサに、
ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の第１の部分を表すゴロムライスコードワードを復号することと、
前記エスケープピクセルについての前記値を生じるために、前記第１の部分と前記第２の部分とを組み合わせることとを行わせる命令をさらに備える、請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２４】
ビデオデータを符号化する方法であって、
前記ビデオデータのパレットモードコード化ブロックについてのピクセル値を表すエントリを含むパレットを取得することと、
前記ビデオデータの前記パレットモードコード化ブロックのエスケープピクセルについてのクロミナンスまたはルミナンス値を定義するシンタックス要素についての値を決定することと、ここにおいて、前記エスケープピクセルは前記パレット中に含まれる前記エントリのいずれとも関連せず、および前記パレット中に含まれる前記エントリは前記エスケープピクセルを予測するために使用されない、
前記エスケープピクセルについての前記クロミナンスまたはルミナンス値を定義する前記シンタックス要素についての前記値の少なくとも一部分を定義する指数ゴロムコードワードを符号化することと、ここにおいて、前記指数ゴロムコードワードを符号化することは、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムを符号化することを備え、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムを符号化することは、係数２３を使用して前記指数ゴロムコードワードを符号化することを備える、
を備える方法。
【請求項２５】
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定することと、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定することと、をさらに備え、
前記指数ゴロムコードワードを符号化することは、前記最大量子化値を使用して前記指数ゴロムコードワードを符号化することを備える、請求項２４に記載の方法。
【請求項２６】
前記最大量子化値を決定することは、前記量子化ステップサイズ値のみに基づいて前記最大量子化値を決定することを備える、請求項２５に記載の方法。
【請求項２７】
前記最大量子化値を決定することは、前記量子化ステップサイズ値、量子化スケール値、右シフトオフセット値、および右シフトパラメータ値に基づいて前記最大量子化値を決定することを備え、前記方法は、ルックアップテーブルからの、前記量子化スケール値と、前記右シフトオフセット値と、前記右シフトパラメータ値とを表す値を符号化することをさらに備える、請求項２５に記載の方法。
【請求項２８】
前記最大量子化値を決定することは、クリッピング演算を実施せずに前記最大量子化値を決定することを備える、請求項２７に記載の方法。
【請求項２９】
前記最大量子化値を決定することは、除算演算を実施せずに前記最大量子化値を計算することを備える、請求項２５に記載の方法。
【請求項３０】
前記最大量子化値を決定することは、前記量子化パラメータによってインデックス付けされたルックアップテーブルから前記最大量子化値を取り出すことを備える、請求項２５に記載の方法。
【請求項３１】
前記エスケープピクセルを含む色成分に基づいて、前記量子化パラメータを決定することをさらに備える、請求項３０に記載の方法。
【請求項３２】
前記少なくとも一部分は前記値の第２の部分を備え、前記方法は、前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを符号化することをさらに備える、請求項２４に記載の方法。
【請求項３３】
ビデオデータを符号化するためのデバイスであって、
前記ビデオデータの少なくとも一部分を記憶するように構成されたメモリと、
回路内で実装されるビデオエンコーダと、を備え、前記ビデオエンコーダが、
前記ビデオデータのパレットモードコード化ブロックについてのピクセル値を表すエントリを含むパレットを取得することと、
前記ビデオデータの前記パレットモードコード化ブロックのエスケープピクセルについてのクロミナンスまたはルミナンス値を定義するシンタックス要素についての値を決定することと、ここにおいて、前記エスケープピクセルは前記パレット中に含まれる前記エントリのいずれとも関連せず、および前記パレット中に含まれる前記エントリは前記エスケープピクセルを予測するために使用されない、
前記エスケープピクセルについての前記クロミナンスまたはルミナンス値を定義する前記シンタックス要素についての前記値の少なくとも一部分を定義する指数ゴロムコードワードを符号化することと、を行うように構成され、ここにおいて、前記ビデオエンコーダは、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムコードワードを符号化するように構成され、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムコードワードを符号化するために、前記ビデオエンコーダは、係数２３を使用して前記指数ゴロムコードワードを符号化するように構成される、
デバイス。
【請求項３４】
前記ビデオエンコーダは、
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定し、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定するようにさらに構成され、
前記ビデオエンコーダは、前記最大量子化値を使用して前記指数ゴロムコードワードを符号化するように構成される、請求項３３に記載のデバイス。
【請求項３５】
前記ビデオエンコーダは、前記量子化ステップサイズ値のみに基づいて前記最大量子化値を決定するように構成される、請求項３４に記載のデバイス。
【請求項３６】
前記ビデオエンコーダは、前記量子化ステップサイズ値、量子化スケール値、右シフトオフセット値、および右シフトパラメータ値に基づいて前記最大量子化値を決定するように構成され、前記ビデオエンコーダは、ルックアップテーブルからの、前記量子化スケール値と、前記右シフトオフセット値と、前記右シフトパラメータ値とを表す値を符号化するようにさらに構成される、請求項３４に記載のデバイス。
【請求項３７】
前記ビデオエンコーダは、クリッピング演算を実施せずに前記最大量子化値を決定するように構成される、請求項３６に記載のデバイス。
【請求項３８】
前記ビデオエンコーダは、除算演算を実施せずに前記最大量子化値を計算するように構成される、請求項３４に記載のデバイス。
【請求項３９】
前記ビデオエンコーダは、前記量子化パラメータによってインデックス付けされたルックアップテーブルから前記最大量子化値を取り出すように構成される、請求項３４に記載のデバイス。
【請求項４０】
前記少なくとも一部分は前記値の第２の部分を備え、前記ビデオエンコーダは、前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを符号化するようにさらに構成される、請求項３３に記載のデバイス。
【請求項４１】
ビデオデータを符号化するためのデバイスであって、
前記ビデオデータのパレットモードコード化ブロックについてのピクセル値を表すエントリを含むパレットを取得するための手段と、
ビデオデータの前記パレットモードコード化ブロックのエスケープピクセルについてのクロミナンスまたはルミナンス値を定義するシンタックス要素についての値を決定するための手段と、ここにおいて、前記エスケープピクセルは前記パレット中に含まれる前記エントリのいずれとも関連せず、および前記パレット中に含まれる前記エントリは前記エスケープピクセルを予測するために使用されない、
前記エスケープピクセルについての前記クロミナンスまたはルミナンス値を定義する前記シンタックス要素についての前記値の少なくとも一部分を定義する指数ゴロムコードワードを符号化するための手段と、ここにおいて、前記指数ゴロムコードワードを符号化するための前記手段は、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムコードワードを符号化するための手段を備え、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムコードワードを符号化するための前記手段は、係数２３を使用して前記指数ゴロムコードワードを符号化するための手段を備える、
を備えるデバイス。
【請求項４２】
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定するための手段と、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定するための手段とをさらに備え、
前記指数ゴロムコードワードを符号化するための前記手段は、前記最大量子化値を使用して前記指数ゴロムコードワードを符号化するための手段を備える、請求項４１に記載のデバイス。
【請求項４３】
前記少なくとも一部分は第２の部分を備え、前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを符号化するための手段をさらに備える、請求項４１に記載のデバイス。
【請求項４４】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、ビデオ符号化デバイスの１つまたは複数のプロセッサに、
ビデオデータのパレットモードコード化ブロックについてのピクセル値を表すエントリを含むパレットを取得することと、
前記ビデオデータの前記パレットモードコード化ブロックのエスケープピクセルについてのクロミナンスまたはルミナンス値を定義するシンタックス要素についての値を決定することと、ここにおいて、前記エスケープピクセルは前記パレット中に含まれる前記エントリのいずれとも関連せず、および前記パレット中に含まれる前記エントリは前記エスケープピクセルを予測するために使用されない、
前記エスケープピクセルについての前記クロミナンスまたはルミナンス値を定義する前記シンタックス要素についての前記値の少なくとも一部分を定義する指数ゴロムコードワードを符号化することと、を行わせ、ここにおいて、前記プロセッサに前記指数ゴロムコードワードを符号化させる前記命令は、前記プロセッサに、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムコードワードを符号化させる命令を備え、前記プロセッサに、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムコードワードを符号化させる前記命令は、前記プロセッサに、係数２３を使用して前記指数ゴロムコードワードを符号化させる命令を備える、
非一時的コンピュータ可読記憶媒体。
【請求項４５】
前記プロセッサに、
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定することと、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定することとを行わせる命令をさらに備え、
前記プロセッサに前記指数ゴロムコードワードを符号化させる前記命令は、前記プロセッサに、前記最大量子化値を使用して前記指数ゴロムコードワードを符号化させる命令を備える、請求項４４に記載の非一時的コンピュータ可読記憶媒体。
【請求項４６】
前記少なくとも一部分は、前記エスケープピクセルについての前記値の第２の部分を備え、前記プロセッサに、前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを符号化させる命令をさらに備える、請求項４４に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、
２０１５年１月３０日に出願された米国仮出願第６２／１１０，３９５号、および
２０１５年２月２日に出願された米国仮出願第６２／１１０，９９５号
の利益を主張する。
【０００２】
[0002]本開示は、ビデオデータのブロックの符号化および復号に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）、ＩＴＵ−Ｔ  Ｈ．２６５（高効率ビデオコーディング（ＨＥＶＣ）とも呼ばれる）、およびそのような規格の拡張によって定義された規格に記載されたものなどのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化（encode）、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（ピクチャ内）予測および／または時間的（ピクチャ間）予測を実施する（perform）。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）は、ビデオブロックに区分され得る。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的または時間的予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コーディングされたブロックと予測ブロックとの間の差分を示す。イントラコーディングされたブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データはピクセル領域から変換領域に変換されて残差係数が得られ得、その残差係数は、次いで量子化され得る。最初に２次元アレイで構成される量子化された係数は、係数の１次元ベクトルを生成するために走査され得、なお一層の（even more）圧縮を達成するためにエントロピーコーディングが適用され得る。
【０００６】
[0006]マルチビューコーディングビットストリームは、たとえば、複数の視点からのビューを符号化することによって生成され得る。マルチビューコーディング態様を利用するいくつかの３次元（３Ｄ）ビデオ規格が開発されている。たとえば、３Ｄビデオをサポートするために、異なるビューが左眼ビューと右眼ビューとを送信し得る。代替的に、いくつかの３Ｄビデオコーディング処理は、いわゆるマルチビュープラス深度コーディングを適用することができる。マルチビュープラス深度コーディングでは、３Ｄビデオビットストリームは、テクスチャビュー成分だけでなく深度ビュー成分も含むことができる。たとえば、各ビューは、１つのテクスチャビュー成分と１つの深度ビュー成分とを備え得る。
【発明の概要】
【０００７】
[0007]概して、本開示は、パレットモードを使用してビデオデータをコーディングすることに関連した技法について記載する。より詳細には、本開示の技法は、パレットモードコード化ブロック中のエスケープピクセルをコーディングすることを対象とする。たとえば、本開示は、最大量子化エスケープピクセル値の決定に基づいて、打切り（truncated）コードワードを使用してエスケープピクセルをコーディングするための技法について記載する。本開示は、最大量子化エスケープピクセル値を決定するための様々な技法についても記載する。さらに、本開示は、エスケープピクセル値を２つの部分においてコーディングする、たとえば、ゴロムライスコーディング（Golomb rice coding）を使用して第１の部分を、およびパラメータ３を伴う指数ゴロムコーディング（exponential Golomb coding with parameter 3）を使用して第２の部分をコーディングするための技法について記載する。
【０００８】
[0008]一例では、ビデオデータを復号する方法は、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを復号することを含み、指数ゴロムコードワードを復号することは、パラメータ３を伴う指数ゴロム復号（exponential Golomb with parameter 3 decoding）を使用して、指数ゴロムコードワードを復号することと、エスケープピクセルについての値を使用してブロックを復号することとを備える。
【０００９】
[0009]別の例では、ビデオデータを復号するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の少なくとも一部分を表す（representative of）指数ゴロムコードワードを復号するように構成されたビデオデコーダとを含み、ビデオデコーダは、パラメータ３を伴う指数ゴロム復号を使用して、指数ゴロムコードワードを復号し、エスケープピクセルについての値を使用してブロックを復号するように構成される。
【００１０】
[0010]別の例では、ビデオデータを復号するためのデバイスは、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワード（exponential Golomb codeword）を復号するための手段を含み、指数ゴロムコードワードを復号するための手段は、パラメータ３を伴う指数ゴロム復号を使用して、指数ゴロムコードワードを復号するための手段と、エスケープピクセルについての値を使用してブロックを復号するための手段とを備える。
【００１１】
[0011]別の例では、コンピュータ可読記憶媒体は、実行されたとき、１つまたは複数のプロセッサに、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを復号させる命令を記憶しており、プロセッサに、指数ゴロムコードワードを復号させる命令は、プロセッサに、パラメータ３を伴う指数ゴロム復号を使用して、指数ゴロムコードワードを復号させ、エスケープピクセルについての値を使用してブロックを復号させる命令を備える。
【００１２】
[0012]別の例では、ビデオデータを符号化する方法は、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定することと、エスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを符号化することとを含み、指数ゴロムコードワードを符号化することは、パラメータ３を伴う指数ゴロム符号化（exponential Golomb with parameter 3 encoding）を使用して指数ゴロムを符号化することを備える。
【００１３】
[0013]別の例では、ビデオデータを符号化するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定し、エスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを符号化するように構成されたビデオエンコーダとを含み、ビデオエンコーダは、パラメータ３を伴う指数ゴロム符号化を使用して指数ゴロムコードワードを符号化するように構成される。
【００１４】
[0014]別の例では、ビデオデータを符号化するためのデバイスは、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定するための手段と、エスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを符号化するための手段とを含み、指数ゴロムコードワードを符号化するための手段は、パラメータ３を伴う指数ゴロム符号化を使用して指数ゴロムコードワードを符号化するための手段を備える。
【００１５】
[0015]別の例では、コンピュータ可読記憶媒体は、実行されたとき、１つまたは複数のプロセッサに、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定させ、エスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを符号化させる命令を記憶しており、プロセッサに指数ゴロムコードワードを符号化させる命令は、プロセッサに、パラメータ３を伴う指数ゴロム符号化を使用して指数ゴロムコードワードを符号化させる命令を備える。
【００１６】
[0016]１つまたは複数の例の詳細が添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１７】
【図１】[0017]本開示で説明する技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。
【図２】[0018]本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図３】[0019]本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図４】[0020]本開示の技法による、ビデオデータのブロックを符号化するための例示的な方法を示すフローチャート。
【図５】[0021]本開示の技法による、ビデオデータのブロックを符号化するための別の例示的な方法を示すフローチャート。
【図６】[0022]本開示の技法による、ビデオデータのブロックを復号するための例示的な方法を示すフローチャート。
【図７】[0023]本開示の技法による、ビデオデータのブロックを復号するための別の例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１８】
[0024]本開示は、パレットコーディングのためのエスケープピクセルコーディング、より詳細には、最大量子化エスケープピクセル値を導出することを対象とする技法を提供する。いくつかの例では、本開示において提案される技法は、１つまたは複数の、エンコーダ依存パラメータを使用する計算および／または最大量子化エスケープピクセル値を導出するための除算演算をなくす（remove）か、または排除することができる。いくつかの例では、本開示は新たなコードワードを提供し、これ（which）は、最大量子化エスケープピクセル値に依存せずに設計され得る。
【００１９】
[0025]いくつかの例では、本開示の技法は、デコーダにおいて最大量子化エスケープピクセル値を導出するのに、エンコーダ依存パラメータを使用しなくてよい。代わりに、本開示の技法は、パラメータ導出において量子化ステップサイズを使用するだけでよい。さらに、いくつかの例では、本開示の技法は、最大量子化エスケープピクセル値を導出する間、除算演算の代わりに、加算と比較とを使用することができる。
【００２０】
[0026]いくつかの例では、本開示の技法は、デコーダにおいて最大量子化エスケープ値を導出するために、エンコーダパラメータを使用することができる。したがって、本開示の技法は、エンコーダ関連パラメータを、デコーダ側におけるルックアップテーブルに記憶し得る。さらに、本開示の技法は、量子化エスケープ値を表すための最大ビット数を導出するために、ループまたはシフト演算を使用することができる。
【００２１】
[0027]いくつかの例では、本開示の技法は、クリッピングおよび除算演算なしで最大量子化エスケープ値を導出するために、エンコーダパラメータを使用し得る。したがって、本開示の技法は、エンコーダ関連パラメータを、デコーダ側におけるルックアップテーブルに記憶し得る。本開示にさらに記載されるように、いくつかの例では、本開示の技法は、量子化パラメータｑＰと色成分ｂｉｔＤｅｐｔｈとを使用して、最大量子化エスケープピクセル値を導出することができる。具体的には、本開示の技法は、ｑＰおよびｂｉｔＤｅｐｔｈをもつルックアップテーブルを使用して、ｃＭａｘ値を取得することができる。
【００２２】
[0028]従来のビデオコーディングでは、画像は、色調が連続的であり空間的に滑らかであると仮定される。これらの仮定に基づいて、ブロックベースの変換、フィルタ処理など、様々なツールが開発されており、そのようなツールは、自然のコンテンツのビデオに対しては良好な性能を示している。しかしながら、リモートデスクトップ、協調作業およびワイヤレスディスプレイのような用途では、（たとえば、テキストまたはコンピュータグラフィックスなどの）コンピュータ生成されたスクリーンコンテンツが、圧縮されるべき支配的コンテンツであり得る。このタイプのコンテンツは、不連続な色調を有し、鋭利なラインと高コントラストのオブジェクト境界とを特徴とする傾向がある。連続的な色調および滑らかさという仮定はもはやスクリーンコンテンツに対しては当てはまらないことがあり、したがって、従来のビデオコーディング技法は、スクリーンコンテンツを含むビデオデータを圧縮するための効率的な方法ではないことがある。
【００２３】
[0029]本開示では、スクリーン生成されたコンテンツコーディングに特に好適であり得る、パレットベースコーディングについて説明する。たとえば、ビデオデータの特定のエリアが比較的少数の色を有し、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）が、特定のエリアのビデオデータを表すためのいわゆる「パレット」を形成し得ると仮定する。パレットは、特定のエリア（たとえば、所与のブロック）のビデオデータを表す色または画素値のテーブルとして表され得る。たとえば、パレットは、所与のブロック中の最も支配的なピクセル値を含み得る。いくつかの場合、最も支配的なピクセル値は、ブロック内で最も頻繁に現れる１つまたは複数のピクセル値を含み得る。さらに、いくつかの場合、ビデオコーダが、あるピクセル値がブロック中の最も支配的なピクセル値の１つとして含まれるべきかどうかを決定するために、閾値を適用し得る。パレットベースコーディングの様々な態様によると、ビデオコーダは、ビデオデータの現在のブロックについて実際のピクセル値またはそれらの残差をコーディングするのではなく、現在のブロックのピクセル値のうちの１つまたは複数を示すインデックス値をコーディングし得る。パレットベースコーディングのコンテキストにおいて、インデックス値は、現在のブロックの個々のピクセル値を表すのに使われる、パレット中のそれぞれのエントリを示す。
【００２４】
[0030]たとえば、ビデオエンコーダは、ブロックのためのパレットを決定し（たとえば、パレットを明示的にコーディングする、パレットを予測する、またはこれらの組合せ）、ピクセル値の１つまたは複数を表すためのパレット中のエントリを見つけ（locating）、ブロックのピクセル値を表すために使用されるパレット中のエントリを示すインデックス値を伴うブロックを符号化することによって、ビデオデータのブロックを符号化することができる。いくつかの例では、ビデオエンコーダは、符号化ビットストリーム中でパレットおよび／またはインデックス値をシグナリングすることができる。さらに（In turn,）、ビデオデコーダは、符号化ビットストリームから、ブロックのためのパレットと、さらにはブロックの個々のピクセルのインデックス値とを取得することができる。ビデオデコーダは、ブロックの様々なピクセル値を再構成するために、ピクセルのインデックス値をパレットのエントリに関連付けることができる。
【００２５】
[0031]より詳細には、パレットモードを使用してコーディングされたブロックのピクセルは、パレットへの参照を使用してピクセルがコーディングされる「インデックス」モード、または上に隣接するピクセルへの参照を使用してピクセルがコーディングされる上方コピーモード（copy from above mode）を使用してコーディングされ得る。第３の選択肢は、ピクセルをエスケープピクセルとしてコーディングすることである。この場合、ピクセルの値（またはピクセル用の（for）量子化値）は直接シグナリングされる。
【００２６】
[0032]本開示の技法によると、ビデオコーダ（たとえば、ビデオエンコーダおよびビデオデコーダ）は、エントロピーコーディングモードの組合せを使用して、エスケープピクセル用の量子化値をエントロピーコーディングするように構成され得る。具体的には、一例では、ビデオコーダは、ゴロムライスコーディングを使用してエスケープピクセル用の量子化値の第１の部分を、およびパラメータ３を伴う指数ゴロムを使用して量子化値の第２の部分をコーディングする。多くのシンタックス要素向けに、パラメータ３を伴う指数ゴロムは、比較的乏しい性能をもたらしているが、経験則テストは、パラメータ３を伴う指数ゴロムを使用してエスケープピクセル用の量子化値をエントロピーコーディングするとき、予想外に高い性能を明らかにしている。
【００２７】
[0033]したがって、ビデオエンコーダは最初に、パレットモードを使用してピクセルのブロック（たとえば、コーディングユニット（ＣＵ）または予測ユニット（ＰＵ））を符号化することを決定し得る。ビデオエンコーダは、ブロックのためのパレットを形成するためにピクセルを分析し、次いで、各ピクセル用のピクセルベースのコーディングモードを決定するためにピクセルを走査すれ（scan）ばよい。たとえば、ビデオエンコーダは、ピクセルの値がパレット中に含まれる場合はピクセル用のインデックスモード、ピクセルが、上に隣接する（above-neighboring）ピクセルに等しい値を有する場合は上方コピーモード（copy-from-above mode）、またはピクセルがパレット中になく、上方からコピーすることができない場合はエスケープモードを選択すればよい。ビデオエンコーダが、エスケープモードを使用してピクセルがコーディングされるべきであると決定すると、ビデオエンコーダは、ピクセルの値を第１の部分および第２の部分としてエントロピー符号化してよく、第１の部分および第２の部分は、連結されると、ピクセルについての全値を表す。具体的には、ビデオエンコーダは、ゴロムライスコーディングを使用して第１の部分を、およびパラメータ３を伴う指数ゴロムを使用して第２の部分を符号化し得る。さらに、ビデオエンコーダは、ブロックのためのパレットのサイズに等しいインデックス値をシグナリングすることによって、ピクセルがエスケープモードを使用してコーディングされることをシグナリングし得る。ビデオエンコーダはまた、たとえば、前にコーディングされたブロックのパレットを参照パレットとして使用して、ブロックのためのパレットを符号化し得る。
【００２８】
[0034]ビデオデコーダは、同様に、ブロック用の符号化データを受信し得る。符号化データは、パレットモードを使用してブロックが予測されることを示すデータと、パレットを表すデータ（たとえば、パレットの符号化バージョン）と、ブロックのピクセルの各々についての値と符号化モードとを表すデータとを含み得る。さらに、各エスケープモード符号化ピクセルについて、ビデオデコーダは、ゴロムライスコーディングを使用して、ピクセルの値の第１の部分を、およびパラメータ３を伴う指数ゴロムを使用して値の第２の部分をエントロピー復号し、次いで、ピクセルの値を再生するために第１および第２の部分を連結し得る。
【００２９】
[0035]ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌと、それのスケーラブルビデオコーディング（ＳＶＣ）拡張およびマルチビュービデオコーディング（ＭＶＣ）拡張を含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４とを含む。
【００３０】
[0036]最近では、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）の設計が、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ）とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）によって確定された（finalized）。以降ではＨＥＶＣバージョン１と呼ばれる最新のＨＥＶＣ仕様が、ｈｔｔｐ：／／ｗｗｗ．ｉｔｕ．ｉｎｔ／ｒｅｃ／Ｔ−ＲＥＣ−Ｈ．２６５−２０１３０４−Ｉから入手可能なＩＴＵ−Ｔ  Ｈ．２６５に記載されている。ＨＥＶＣに対する範囲拡張、すなわちＨＥＶＣ−Ｒｅｘｔも、ＪＣＴ−ＶＣによって開発されている。以降ではＲＥｘｔ  ＷＤ７と呼ばれる、範囲拡張の最近の作業草案（ＷＤ）が、ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１７＿Ｖａｌｅｎｃｉａ／ｗｇ１１／ＪＣＴＶＣ−Ｑ１００５−ｖ４．ｚｉｐから入手可能である。
【００３１】
[0037]最近では、ＪＣＴ−ＶＣは、ＨＥＶＣ−Ｒｅｘｔに基づく、スクリーンコンテンツコーディング（ＳＣＣ）の開発を開始し、いくつかの主要な技法が検討されている。ＨＥＶＣスクリーンコンテンツコーディングについて記載する草案文書（Ｒ．Ｊｏｓｈｉ、Ｊ．Ｘｕ、「ＨＥＶＣ  Ｓｃｒｅｅｎ  Ｃｏｎｔｅｎｔ  Ｃｏｄｉｎｇ  Ｄｒａｆｔ  Ｔｅｘｔ  ２」、ＪＣＴＶＣ−Ｓ１００５）は、ｈｅｖｃ．ｈｈｉ．ｆｒａｕｎｈｏｆｅｒ．ｄｅ／ｓｖｎ／ｓｖｎ＿ＨＥＶＣＳｏｆｔｗａｒｅ／ｔａｇｓ／ＨＭ−１６．２＋ＳＣＭ−３．０で見ることができる。
【００３２】
[0038]いくつかの例では、パレットベースコーディング技法は、ＨＥＶＣ規格またはＨＥＶＣ  ＳＣＣ規格の１つまたは複数のコーディングモードにおいて使用するために構成され得る。他の例では、パレットベースコーディング技法は、独立して、または他の既存もしくは将来のシステムもしくは規格の一部として使用され得る。いくつかの例では、ビデオデータのパレットベースコーディングのための技法は、ビデオデータのインター予測コーディングまたはイントラ予測コーディングのための技法など、１つまたは複数の他のコーディング技法とともに使用され得る。たとえば、以下でより詳細に説明されるように、エンコーダもしくはデコーダ、または複合エンコーダデコーダ（コーデック）は、インター予測コーディングおよびイントラ予測コーディング、ならびにパレットベースコーディングを実施するように構成され得る。
【００３３】
[0039]ＨＥＶＣフレームワークに関して、一例として、パレットベースコーディング技法は、コーディングユニット（ＣＵ）モードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、ＨＥＶＣのフレームワークにおいて予測ユニット（ＰＵ）モードとして使用されるように構成され得る。したがって、ＣＵモードのコンテキストにおいて説明する以下の開示するプロセスのすべては、追加または代替として、ＰＵに適用され得る。しかしながら、これらのＨＥＶＣベースの例は、本明細書で説明するパレットベースコーディング技法の制約または制限であると見なされるべきではなく、なぜなら、そのような技法は、他の既存のシステム／規格またはまだ開発されていないシステム／規格とは独立にまたはそれらの一部として働くように適用され得るからである。これらの場合、パレットコーディングのためのユニットは、正方形ブロック、長方形ブロック、またはさらには非長方形形状の領域であり得る。
【００３４】
[0040]パレットベースコーディングの基本的な考えは、各コーディングユニット（ＣＵ）用に、現在のＣＵ中の最も支配的なピクセル値を備える（およびそれらからなる）パレットが導出されるというものである。パレットのサイズおよび要素は最初に、ビデオエンコーダからビデオデコーダに送信される。パレットのサイズおよび／または要素は、直接コーディングされるか、または隣接ＣＵ（たとえば、上および／または左のコード化ＣＵ）中のパレットのサイズおよび／もしくは要素を使用して予測符号化され得る。その後、ＣＵ中のピクセル値は、一定の走査順序に従って、パレットに基づいて符号化される。ＣＵ中の各ピクセルロケーションについて、フラグ、たとえば、ｐａｌｅｔｔｅ＿ｆｌａｇが、ピクセル値がパレット中に含まれるかどうかを示すために最初に送信される。パレットの中のエントリにマッピングするピクセル値の場合、ＣＵの中の所与のピクセルロケーションに関して、そのエントリに関連付けられたパレットインデックスがシグナリングされる。パレット中に存在しないピクセル値について、特別なインデックスがピクセルに割り当てられてよく、実際のピクセル値が、ＣＵ中の所与のピクセルロケーション向けに送信される。これらのピクセルは、「エスケープピクセル」と呼ばれる。「エスケープピクセル」は、たとえば固定長コーディング、単項（unary）コーディングなど、任意の既存のエントロピーコーディング方法を使用してコーディングされてもよい。
【００３５】
[0041]本開示は、ビデオコンテンツ、特にパレットコーディングを伴うスクリーンコンテンツのコーディングをサポートするための方法を説明する。提案される方法は主に、パレットモードコーディングのためのエスケープピクセルコーディングに関する。
【００３６】
[0042]スクリーンコンテンツビデオの特性に基づいて、ＪＣＴＶＣ−Ｍ０３２３に記載されているＳＣＣ効率を改善するために、パレットコーディングが導入された。詳細には、パレットコーディングは、ＳＣＣにおいて、１つのＣＵ内の色が、通常、数個のピーク値に集中するという事実に基づいて繰返しピクセル値を圧縮するために、ルックアップテーブル、すなわち、カラーパレットを導入する。特定のＣＵのためのパレットを仮定すれば、ＣＵ内のピクセルは、パレットインデックスにマッピングされる。第２の段では、インデックスブロックの繰返しパターンを効果的に圧縮するために、効果的な左からのコピー（copy from left）ランレングス方法が提案される。後に、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、ＪＣＴＶＣ−Ｎ０２４９、第１４回会合、オーストリア、ウィーン、２０１３年７月２５日〜８月２日のＧｕｏら、「Ｎｏｎ−ＲＣＥ３：Ｍｏｄｉｆｉｅｄ  Ｐａｌｅｔｔｅ  Ｍｏｄｅ  ｆｏｒ  Ｓｃｒｅｅｎ  Ｃｏｎｔｅｎｔ  Ｃｏｄｉｎｇ」、ＪＣＴ−ＶＣにおいて、パレットインデックスコーディングモードが、ランレングスコーディングを用いる左からのコピーと上方コピー（copy from above）の両方に一般化された。変換プロセスが、シャープエッジを不鮮明にすることを回避するためにパレットコーディングのために呼び出されず、これがスクリーンコンテンツの視覚的品質に悪影響を与え得ることに留意されたい。
【００３７】
[0043]パレットは、（インデックス、ピクセル値）ペアを記憶するデータ構造である。設計された（designed）パレットは、たとえば、現在のＣＵなど、ビデオデータの現在のブロック中のピクセル値のヒストグラムによって、エンコーダにおいて決定され得る。たとえば、ヒストグラム中のピーク値はパレット中に追加されるが、低度数ピクセル値（low frequency pixel values）はパレット中に含まれない。パレットサイズは、０〜ｍａｘ＿ｐａｌｅｔｔｅ＿ｓｉｚｅの範囲内にあるように制限されてよく、これは３１に等しくてよい。
【００３８】
[0044]ＳＣＣについて、１つのスライス内のＣＵブロックは多くの支配的な色を共有し得る。したがって、（ＣＵ復号順序での）前のパレットモードＣＵのパレットを参照として使用して、現在ブロックのパレットを予測することが可能である。詳細には、０〜１バイナリベクトルが、参照パレット中のピクセル値が現在のパレットによって再利用されるかどうかを示すためにシグナリングされ得る。一例として、以下の表１および２では、参照パレットが６つの項目を有すると仮定される。ベクトル（１，０，１，１，１，１）が現在のパレットを用いてシグナリングされ、これは、ｖ０、ｖ２、ｖ３、ｖ４、およびｖ５は現在のパレット中で再利用されるが、ｖ１は再利用されないことを示す。現在のパレットが参照パレットから予測可能でない色を含んでいる場合、これらのいくつかの予測されない色がコーディングされ、次いで、これらの色は直接シグナリングされる。たとえば、表１および２において、ｕ０およびｕ１は、ビットストリームの中に直接シグナリングされる。
【００３９】
【表１】
0006710691.tif 000002
【００４０】
【表２−１】
0006710691.tif 000003
【表２−２】
0006710691.tif 000004
【００４１】
[0045]パレットモードを用いてコーディングされたブロックでは、パレットが、前にパレットコーディングされたブロックのパレットエントリから予測され得、新しいエントリとして明示的にシグナリングされ得るか、または前にコーディングされたブロックのパレットが完全に再利用され得る。後者の場合はパレット共有と呼ばれ、前のブロックのパレット全体が変更なしにそのままで再利用されることを示すために、フラグｐａｌｅｔｔｅ＿ｓｈａｒｅ＿ｆｌａｇがシグナリングされる。参照パレットおよび現在のパレットの例が、上の表１および２に示されている。具体的には、表１は例示的な参照パレットを示し、表２は、表１の参照パレットから予測され得る例示的な現在のパレットを示す。
【００４２】
[0046]現在のＳＣＭ３．０参照ソフトウェアでは、規範的観点からの、パレットコーディングの２つの主要な態様は、パレットモードでコーディングされているブロック中の各サンプルについての、パレットのコーディングおよびパレットインデックスのコーディングである。パレットインデックスのコーディングは、「インデックス」モードおよび「上方コピー」モードという、２つの主要モードを使用して実施される。これは、ｐａｌｅｔｔｅ＿ｍｏｄｅフラグをコーディングすることによってシグナリングされる。「インデックス」モードはまた、エスケープサンプル、すなわち、パレットに属さないサンプルを示すために使用される。現在の設計では、「上方コピー」モードは、パレットブロックの第１の行のためには可能でない。さらに、「上方コピー」モードは、別の「上方コピー」モードには続くことができない。これらの場合、「インデックス」モードが推論される。
【００４３】
[0047]具体的には、パレットモードに対して、ＣＵ中のピクセルが、水平／垂直スネーク走査順序で次のように符号化される。
【００４４】
１．「インデックス」モード：このモードでは、１つのパレットインデックスが最初にシグナリングされる。インデックスがパレットのサイズに等しい場合、これは、サンプルがエスケープサンプルであることを示す。この場合、各成分についてのサンプル値または量子化サンプル値がシグナリングされる。たとえば、パレットサイズが４の場合、非エスケープサンプルについて、パレットインデックスは範囲［０，３］内である。この場合、４というインデックス値はエスケープサンプルを示す（signifies）。インデックスが非エスケープサンプルを示す場合、ランレングスがシグナリングされ、これは、同じインデックスを共有する、走査順序での後続サンプルの数を、ランレングスを示す負でない値ｎ−１によって指定し、これは、現在のピクセルを含む、以降のｎ個のピクセルが、最初にシグナリングされたものと同じピクセルインデックスを有することを意味する。
【００４５】
２．「上方コピー」ランモード（ＣＡ）：このモードでは、負でないランレングス値ｍ−１のみが、現在のピクセルを含む、以降のｍ個のピクセルについて、パレットインデックスが、それぞれ、すぐ上にあるそれらのネイバーと同じであることを示すために送信される。このモードは、上方コピーランモードにおいて（within）パレットインデックスが異なる場合があるという意味で、「インデックス」モードとは異なることに留意されたい。
【００４６】
[0048]現在の設計では、パレットモードはＣＵレベルでシグナリングされるが、それをＰＵレベルでシグナリングすることが可能であり得る。現在のブロック中のエスケープサンプルの存在を示すために、フラグ、すなわちｐａｌｅｔｔｅ＿ｅｓｃ＿ｖａｌ＿ｐｒｅｓｅｎｔ＿ｆｌａｇもシグナリングされる。
【００４７】
[0049]パレットモードでは、ブロック中のピクセル走査は、２つのタイプ、すなわち、垂直横断走査または（ヘビ状の）水平横断走査であり得る。ブロック中で使用される走査パターンは、ブロックユニットごとにシグナリングされるフラグｐａｌｅｔｔｅ＿ｔｒａｎｓｐｏｓｅ＿ｆｌａｇに従って導出される。
【００４８】
[0050]パレットインデックスコーディング中に、パレットインデックス調節プロセスが適用され得る。ブロック中の第２のピクセルから始まり、これは、前にコーディングされたピクセルのパレットモードを調べることからなる。最初に、パレットサイズが１だけ低減され、左モードがランモードに等しい場合、コーディングされるべきパレットインデックスは、インデックスが左パレットインデックスよりも大きい場合、１だけ低減され、または左モードが、コーディングされるべきパレットインデックスよりもコピーモードである場合、コーディングされるべきパレットインデックスは、インデックスが上のパレットインデックスよりも大きい場合、１だけ低減される。この記述は、符号化側から与えられており、対応するプロセスは、デコーダ側においても逆順で実施され得る。
【００４９】
[0051]ＳＣＭ−３．０では、以下のシンタックス最適化が採用された。
パレットサイズが０の場合、すべてのエスケープスピクセルが導出され、どのエスケープ存在フラグ、パレットモード、パレットインデックス、パレットラン、およびパレット転置（transpose）フラグもシグナリングされず、エスケープ存在フラグは１に等しいと推論され、パレットモードはＩＮＤＥＸモードに等しいと推論され、パレットインデックスはＥＳＣＡＰＥに等しく設定され、パレットラン値はブロックサイズに等しく設定され、パレット転置フラグは０に設定される。
パレットサイズが１であり、ブロック中でエスケープピクセルが使用されない場合、どのパレットモード、パレットラン、またはパレット転置フラグもシグナリングされず、パレットモードはＩＮＤＥＸモードに等しくなるように導出され、パレットインデックスは０に設定され、パレットラン値はブロックサイズに等しく設定され、パレット転置フラグは０に設定される。
【００５０】
[0052]ＳＣＭ３．０では、打切りバイナリ（ＴＢ）コードワードが、量子化エスケープピクセルをシグナリングするために使用される。このコードワードは、ｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌシンタックス要素と呼ばれ得る。打切りバイナリを使用するために、可能な値の総数が必要とされる。たとえば、打切りバイナリコードワードが、Ｎ個の可能な値のセット｛０，１，２，３，．．．，Ｎ−１｝を示す（signify）ために使用される場合、Ｎは、打切りバイナリコードワードを構成するために使用される（Ｎ−１は最大値である）。同等に、最大値、すなわちこの例ではＮ−１（０から始まると仮定する）が知られているとき、対応する打切りバイナリコードワードは、同じやり方で構成され得る。最大量子化エスケープ値を得るために、ＳＣＭ３．０において、以下の手順が使用される。
【００５１】
１．量子化パラメータｑＰは、次のように導出される。
【００５２】
【数１】
0006710691.tif 000005
【００５３】
２．量子化スケーリングファクタｑｕａｎｔＳｃａｌｅ、右シフトオフセットｒｉｇｈｔＳｈｉｆｔＯｆｆｓｅｔおよび右シフトパラメータｒｉｇｈｔＳｈｉｆｔＰａｒａｍが、ＨＥＶＣ量子化ルックアップテーブルに基づいて次のように導出される。
【００５４】
【数２】
0006710691.tif 000006
【００５５】
３．量子化ステップサイズパラメータｑＳｔｅｐが次のように導出される。
【００５６】
【数３】
0006710691.tif 000007
【００５７】
４．最大可能量子化値ｍａｘＶａｌｕｅが次のように導出される。
【００５８】
【数４】
0006710691.tif 000008
【００５９】
５．ｍａｘＶａｌｕｅを表すための、ビンの数ｎｕｍＢｉｎｓが、次のように導出される。
【００６０】
【数５】
0006710691.tif 000009
【００６１】
６．打切りバイナリコードワード用の最大パラメータｃＭａｘが、次のように導出される。
【００６２】
【数６】
0006710691.tif 000010
【００６３】
[0053]現在のエスケープピクセル設計には、少なくとも２つの起こり得る問題が存在する。
【００６４】
[0054]最初に、デコーダ側において、量子化スケールファクタ、右シフトオフセットおよびパラメータは利用可能でなく、というのは、これらのパラメータは、典型的なエンコーダパラメータであり、デコーダによって標準化されていないからである。異なるエンコーダは、異なるスケールファクタと、右シフトパラメータと、オフセットとを有する場合があり、したがって、異なるエンコーダとデコーダとの間で整合しないパラメータを使用すると、不正確なｃＭａｘ計算を引き起こし得る。
【００６５】
[0055]第２に、ｍａｘＶａｌｕｅの導出は除算演算を伴い、これはデコーダにとって望ましくない。具体的には、異なるデコーダは、除算演算について異なる精度または解釈を有し、したがって、異なるデコーダプラットフォーム中では異なるｍａｘＶａｌｕｅ計算を有し得る。したがって、ｍａｘＶａｌｕｅの整合しない計算は、エンコーダ／デコーダ不一致を引き起こし得る。
【００６６】
[0056]本開示は、これらおよび他の問題に対する解決策を提供し得る様々な技法について記載する。本開示の様々な技法は、エンコーダ依存パラメータを使用する計算をなくすこと、および／または除算演算をなくすことを含む。
【００６７】
[0057]追加または代替として、最大値に依存しなくてよい新たなコードワードが設計され得る。
【００６８】
[0058]一例では、エンコーダ依存パラメータは、デコーダにおいて最大量子化エスケープピクセル値を導出するためには使用されない。代わりに、量子化ステップサイズのみが、パラメータ導出において使用される。さらに、最大量子化エスケープピクセル値の導出中、加算および比較が、除算演算の代わりに使用される。以下の手順が、最大量子化エスケープピクセル値を導出するために提案される。
【００６９】
１．量子化パラメータｑＰが、色成分に基づいて導出される。異なる色成分は、異なる量子化パラメータを有し得る。以下は、それぞれ、異なる場合もまたは異ならない場合もある成分Ｙ、ＣｂおよびＣｒについて、Ｑｐ’Y、Ｑｐ’CbまたはＱｐ’Crを得るための例である。
【００７０】
【数７】
0006710691.tif 000011
【００７１】
２．量子化ステップサイズパラメータｑＳｔｅｐが、量子化パラメータｑＰを入力としてもつ公式を使用して導出される。以下の公式は、Ｒｏｕｎｄ（．）が丸め演算子である例である。これは、Ｒｏｕｎｄ（．）のみに限定されるとは限らないことに留意されたい。そうではなく、他の演算子、たとえば、フロア演算子
【００７２】
【数８】
0006710691.tif 000012
【００７３】
またはシーリング演算子
【００７４】
【数９】
0006710691.tif 000013
【００７５】
によって置き換えられてもよい。
【００７６】
【数１０】
0006710691.tif 000014
【００７７】
３．量子化前の最大ピクセル値と、ループを使用するｑＳｔｅｐとを与えられると、最大可能量子化値ｃＭａｘ（０として初期化される）が、次のように導出される（ｑＳｔｅｐＴｅｍｐは、ｑＳｔｅｐとして初期化される）。
【００７８】
【数１１】
0006710691.tif 000015
【００７９】
[0059]次いで、ｃＭａｘが、現在のコーディングユニット用の量子化エスケープピクセルをコーディングするための打切りバイナリコードワードを構成するために使用される。量子化エスケープピクセルはすべて、両端値を含む（inclusive）［０，ｃＭａｘ］の範囲に制約されることに留意されたい。
【００８０】
[0060]代替として、ステップ３において、比較的正確でない、次のようなシフト演算を使用して、ｃＭａｘ（１として初期化される）が導出され得る。
【００８１】
【数１２】
0006710691.tif 000016
【００８２】
[0061]別の例では、エンコーダパラメータ（たとえば、量子化スケール値（ｑｕａｎｔＳｃａｌｅ）、右シフトオフセット値（ｒｉｇｈｔＳｈｉｆｔＯｆｆｓｅｔ）、および右シフトパラメータ（ｒｉｇｈｔＳｈｉｆｔＰａｒａｍ）値）が、デコーダにおいて最大量子化エスケープ値を導出するために使用され得る。したがって、エンコーダ関連パラメータは、デコーダ側においてルックアップテーブル中に記憶され得る。さらに、ループまたはシフト演算が、量子化エスケープ値を表すための最大ビット数を導出するために使用され得る。以下の手順が、最大量子化エスケープピクセル値を導出するために使用され得る。
【００８３】
１．量子化パラメータｑＰが、色成分に基づいて導出される。異なる色成分は、異なる量子化パラメータを有し得る。以下は、それぞれ、異なる場合もまたは異ならない場合もある、成分Ｙ、ＣｂおよびＣｒについてのＱｐ’Y、Ｑｐ’CbまたはＱｐ’Crを得るための例である。
【００８４】
【数１３】
0006710691.tif 000017
【００８５】
２．量子化スケーリングファクタｑｕａｎｔＳｃａｌｅ、右シフトオフセットｒｉｇｈｔＳｈｉｆｔＯｆｆｓｅｔおよび右シフトパラメータｒｉｇｈｔＳｈｉｆｔＰａｒａｍが、たとえば、デコーダにおいて記憶されたルックアップテーブルに基づいて導出される。
【００８６】
【数１４】
0006710691.tif 000018
【００８７】
３．量子化ステップサイズパラメータｑＳｔｅｐが、量子化パラメータｑＰを入力としてもつ公式を使用して導出される。以下の公式は、ｑＳｔｅｐを導出するための例であり、ここでＲｏｕｎｄ（．）は丸め演算子である。これは、Ｒｏｕｎｄ（．）のみに限定されるとは限らないことに留意されたい。そうではなく、他の演算子、たとえば、フロア演算子
【００８８】
【数１５】
0006710691.tif 000019
【００８９】
またはシーリング演算子
【００９０】
【数１６】
0006710691.tif 000020
【００９１】
によって置き換えられてもよい。
【００９２】
【数１７】
0006710691.tif 000021
【００９３】
４．最大可能量子化値ｍａｘＶａｌｕｅ（０として初期化される）が次のように導出される（ｑＳｔｅｐＴｅｍｐはｑＳｔｅｐとして初期化される）。
【００９４】
【数１８】
0006710691.tif 000022
【００９５】
５．ｍａｘＶａｌｕｅを表すための、ビンの数ｎｕｍＢｉｎｓが、次のように導出される。
【００９６】
【数１９】
0006710691.tif 000023
【００９７】
６．打切りバイナリコードワード用の最大パラメータｃＭａｘが、次のように導出される。
【００９８】
【数２０】
0006710691.tif 000024
【００９９】
[0062]この場合、量子化エスケープピクセルは、両端値を含む［０，ｃＭａｘ］の範囲内になるように制約されることに留意されたい。
【０１００】
[0063]別の例では、エンコーダパラメータは、クリッピングおよび／または除算演算を実施せずに最大量子化エスケープ値を導出するために使用され得る。したがって、エンコーダ関連パラメータは、デコーダ側においてルックアップテーブル中に記憶される必要がある。以下の手順が、最大量子化エスケープピクセル値を導出するために使用され得る。
【０１０１】
１．量子化パラメータｑＰが、色成分に基づいて導出される。異なる色成分は、異なる量子化パラメータを有し得る。以下は、それぞれ、異なる場合もまたは異ならない場合もある、成分Ｙ、ＣｂおよびＣｒについてのＱｐ’Y、Ｑｐ’CbまたはＱｐ’Crを得るための例である。
【０１０２】
【数２１】
0006710691.tif 000025
【０１０３】
２．量子化スケーリングファクタｑｕａｎｔＳｃａｌｅ、右シフトオフセットｒｉｇｈｔＳｈｉｆｔＯｆｆｓｅｔおよび右シフトパラメータｒｉｇｈｔＳｈｉｆｔＰａｒａｍが、たとえば、デコーダにおいて記憶されたルックアップテーブルに基づいて導出される。
【０１０４】
【数２２】
0006710691.tif 000026
【０１０５】
３．打切りバイナリコードワード用の最大パラメータｃＭａｘが、次のように導出される。
【０１０６】
【数２３】
0006710691.tif 000027
【０１０７】
[0064]この場合、量子化エスケープピクセルは、両端値を含む［０，ｃＭａｘ］の範囲内の制約であることに留意されたい。
【０１０８】
[0065]別の例では、最大量子化エスケープピクセル値は、ルックアップテーブルとともに、量子化パラメータｑＰと色成分ｂｉｔＤｅｐｔｈとを使用して導出され得る。具体的には、ｑＰおよびｂｉｔＤｅｐｔｈをもつループアップテーブルを使用して、ｃＭａｘが取得され得る。以下は、ｃＭａｘ導出の例である。
【０１０９】
１．量子化パラメータｑＰが、色成分に基づいて導出される。異なる色成分は、異なる量子化パラメータを有し得る。以下は、それぞれ、異なる場合もまたは異ならない場合もある、成分Ｙ、ＣｂおよびＣｒについてのＱｐ’Y、Ｑｐ’CbまたはＱｐ’Crを得るための例である。
【０１１０】
【数２４】
0006710691.tif 000028
【０１１１】
２．ベース量子化パラメータｂａｓｅＱｐが、所与のｂｉｔＤｅｐｔｈを用いて導出される。
【０１１２】
【数２５】
0006710691.tif 000029
【０１１３】
３．ｂａｓｅＱｐが０に等しいかまたはそれよりも大きい場合、ｃＭａｘは、ｂａｓｅＱｐが入力エントリとして与えられると、ルックアップテーブルを通して見つけられ得る
４．そうでない（ｂａｓｅＱｐが負である）場合、ｃＭａｘは次のように導出され得る。
【０１１４】
【数２６】
0006710691.tif 000030
【０１１５】
【表３】
0006710691.tif 000031
【０１１６】
【表４】
0006710691.tif 000032
【０１１７】
[0066]いくつかの例では、エンコーダまたはデコーダなどのコーディングシステムが、例によっては、共同で（jointly）、または別個に、ビット深度および量子化パラメータに基づいて、等式に基づく公式を使用して最大値を導出することができる。以下の手順は、ビット深度と量子化パラメータとを共同で検討するための一例である。
【０１１８】
[0067]量子化パラメータｑＰは、色成分に基づいて導出される。異なる色成分は、異なる量子化パラメータを有し得る。以下は、それぞれ、異なる場合もまたは異ならない場合もある、成分Ｙ、ＣｂおよびＣｒについてのＱｐ’Y、Ｑｐ’CbまたはＱｐ’Crを得るための例である。
【０１１９】
【数２７】
0006710691.tif 000033
【０１２０】
[0068]量子化ベースパラメータｑＰＢａｓｅが、エンコーダとデコーダの両方においてあらかじめ規定され、もしくはＳＰＳ、ＰＰＳ、スライスレベルなどのような、異なるレベルにおいてシグナリングされるか、または各ｑＰ値およびビット深度に基づいて、共同で、もしくは別個に適応的に導出される。以下は、ｑＰＢａｓｅ用に固定数を使用するための例である。
【０１２１】
【数２８】
0006710691.tif 000034
【０１２２】
[0069]等式を使用して、またはエンコーダとデコーダの両方において記憶されたルックアップテーブルに基づいて、量子化ビット低減ファクタｑｕａｎｔＢｉｔｓが次のように導出される。ここで呼び出される演算は、以下の等式に示すフロア演算
【０１２３】
【数２９】
0006710691.tif 000035
【０１２４】
に限定されないことに留意されたい。シーリング演算
【０１２５】
【数３０】
0006710691.tif 000036
【０１２６】
が、フロア演算の代わりに使用され得る。
【０１２７】
【数３１】
0006710691.tif 000037
【０１２８】
[0070]最大ビットパラメータｍａｘＢｉｔが、ビット深度およびｑｕａｎｔＢｉｔｓに基づいて導出されてよく、以下が例である。
【０１２９】
【数３２】
0006710691.tif 000038
【０１３０】
[0071]打切りバイナリコードワード（または、可能最大値の計算を要求する他のコードワード、たとえば、固定長コードワード）用の最大パラメータｃＭａｘは、次のように導出される
【０１３１】
【数３３】
0006710691.tif 000039
【０１３２】
[0072]この場合、量子化エスケープピクセルは、両端値を含む［０，ｃＭａｘ］の範囲内に制約されることに留意されたい。
【０１３３】
[0073]上の例は、現在のパレットモードが不可逆モード（lossy mode）で動作しているときの場合に対処することにも留意されたい。現在のパレットモードが可逆モードで動作しているとき、最大パラメータｃＭａｘは、現在のＳＣＭ３．０でのように、ｃＭａｘ＝（（１＜＜ｂｉｔＤｅｐｔｈ）−１）の形で不変に保たれ得る。
【０１３４】
[0074]さらに、上で論じた様々な例は、可変長コードワードに該当する（apply to）。固定長コードワードが、量子化エスケープピクセルをコーディングするために使用される場合、上の例におけるものと同様の手順が、最大量子化エスケープピクセル値を導出するために使用され得る。次いで、ループが、最大量子化エスケープピクセル値を提示するためのビットの数を決定するために使用され得る。
【０１３５】
[0075]本開示は、最大値制約に依存しないコードワードを設計するために使用され得る技法についても記載する。これらの技法は、単独で、または上で論じた様々な例と組み合わせて使用され得る。具体的には、最大値制約のないコードワードが、量子化エスケープピクセルコーディング中に使用され得る。一例では、ゴロムライスおよび指数ゴロムコードワードの連結が、量子化エスケープピクセルをコーディングするために使用される。代替として、単項コード、もしくはゴロムファミリーコードワードまたはそれらの組合せも、量子化エスケープピクセルをコーディングする間、ここで適用され得る。たとえば、エンコーダまたはデコーダは、ライスパラメータＫを伴うゴロムライス、および／またはパラメータＬを伴う指数ゴロムを使用することができ、ここでＫ、およびＬは任意の整数、すなわち０、１、２、３．．．であり得る。パラメータ（Ｌ、Ｋ）の値は、ビット深度に依存し得る。量子化エスケープピクセルは、８ビット入力信号について１５ビットの精度（プラス符号）に制約されてよく、精度は、ｍａｘ（１５，ｂｉｔＤｅｐｔｈ＋６）として保たれ得る。たとえば、ゴロムライスコーディングは、エスケープピクセル値の第１の部分をコーディングするために使用されてよく、パラメータ３を伴う指数ゴロムは、エスケープピクセル値の第２の部分をコーディングするために使用されてよい。
【０１３６】
[0076]パラメータＬコーディングを伴う指数ゴロムコーディングにおいて、コーディングされるべき値が２Lで除算される。この除算の結果は、０次指数ゴロムコードワードを使用してコーディングされ、剰余（remainder）（すなわち、２Lを法とする値（value modulo ２L））はバイナリでコーディングされる。したがって、パラメータＬは、剰余に含まれるビットの数に影響する。同じ値が、パラメータＬ用に異なる値を使用してコーディングされるとき、異なる長さを有する指数ゴロムコードワードを生じ得ることを理解されたい。さらに、いくつかの場合では、パラメータＬ用のより大きい値が、コーディングされるべき同じ値に対して、パラメータＬ用のより小さい値よりも、コーディングされるべき値についてのより短いコードワードを生じ得る。
【０１３７】
[0077]最大値制約に依存しないものとして記載されているが、ゴロムライス、およびパラメータ３を伴う指数ゴロムの組合せを使用してエスケープピクセル値をコーディングするための技法は、最大量子化エスケープピクセル値を決定するための、上で論じた他の技法のいずれとも組み合わせて使用され得る。たとえば、エスケープピクセル値は依然として打ち切られ得る（たとえば、１つのビットが削除され得る）。一例として、エスケープピクセル値の第２の部分（すなわち、上述した、パラメータ３を伴う指数ゴロムを使用してコーディングされた部分）は、上述したように、決定された最大量子化エスケープピクセル値に基づいて打ち切られ得る。
【０１３８】
[0078]本開示は、最大量子化エスケープピクセル値を導出する方法について記載する。本開示の技法によると、ビデオエンコーダおよび／またはビデオデコーダが、複数のピクセルを示すブロックを決定し、量子化パラメータに少なくとも部分的に基づいて最大量子化エスケープピクセル値を決定し、最大量子化エスケープピクセル値を使用してブロックをコーディングし得る。
【０１３９】
[0079]たとえば、本開示の技法は、デコーダにおいて最大量子化エスケープピクセル値を導出するのに、エンコーダ依存パラメータを使用しなくてよい。代わりに、本開示の技法は、パラメータ導出において量子化ステップサイズを使用するだけでよい。さらに、いくつかの例では、本開示の技法は、最大量子化エスケープピクセル値を導出する間、除算演算の代わりに、加算と比較とを使用することができる。
【０１４０】
[0080]別の例として、本開示の技法は、デコーダにおいて最大量子化エスケープ値を導出するために、エンコーダパラメータを使用することができる。したがって、本開示の技法は、エンコーダ関連パラメータを、デコーダ側におけるルックアップテーブルに記憶し得る。さらに、本開示の技法は、量子化エスケープ値を表すための最大ビット数を導出するために、ループまたはシフト演算を使用することができる。
【０１４１】
[0081]いくつかの例では、本開示の技法は、クリッピングおよび除算演算なしで最大量子化エスケープ値を導出するために、エンコーダパラメータを使用し得る。したがって、本開示の技法は、エンコーダ関連パラメータを、デコーダ側におけるルックアップテーブルに記憶し得る。本開示にさらに記載されるように、いくつかの例では、本開示の技法は、量子化パラメータｑＰと色成分ｂｉｔＤｅｐｔｈとを使用して、最大量子化エスケープピクセル値を導出することができる。具体的には、本開示の技法は、ｑＰおよびｂｉｔＤｅｐｔｈをもつループアップテーブルを使用して、ｃＭａｘ値を取得することができる。
【０１４２】
[0082]図１は、本開示の技法を利用し得る例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用する「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、総称的にビデオ符号化またはビデオ復号を指すことがある。ビデオコーディングシステム１０のビデオエンコーダ２０およびビデオデコーダ３０は、本開示で説明する様々な例に従ってパレットベースのビデオコーディングのための技法を実施するように構成され得るデバイスの例を表す。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、ＨＥＶＣコーディングにおけるＣＵまたはＰＵなど、ビデオデータの様々なブロックを選択的にコーディングするように構成され得る。非パレットベースコーディングモードは、ＨＥＶＣドラフト１０によって規定される様々なコーディングモードなど、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。
【０１４３】
[0083]図１に示されているように、ビデオコーディングシステム１０は、ソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は符号化ビデオデータを生成する。したがって、ソースデバイス１２は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス１４は、ソースデバイス１２によって生成された符号化ビデオデータを復号し得る。したがって、宛先デバイス１４は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス１２および宛先デバイス１４は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【０１４４】
[0084]ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲のデバイスを備え得る。
【０１４５】
[0085]宛先デバイス１４は、チャネル１６を介してソースデバイス１２から符号化ビデオデータを受信し得る。チャネル１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な１つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル１６は、ソースデバイス１２が符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にする１つまたは複数の通信媒体を備え得る。この例では、ソースデバイス１２は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス１４に送信し得る。１つまたは複数の通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路など、ワイヤレスおよび／またはワイヤード通信媒体を含み得る。１つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク（たとえば、インターネット）など、パケットベースネットワークの一部を形成し得る。１つまたは複数の通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にする、ルータ、スイッチ、基地局、または他の機器を含み得る。
【０１４６】
[0086]別の例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス１４は、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体など、様々なローカルにアクセスされるデータ記憶媒体を含み得る。
【０１４７】
[0087]さらなる例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶するファイルサーバまたは別の中間ストレージデバイスを含み得る。この例では、宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間ストレージデバイスに記憶された符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス１４に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバとしては、（たとえば、ウェブサイト用の）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、およびローカルディスクドライブがある。
【０１４８】
[0088]宛先デバイス１４は、インターネット接続などの標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。例示的なタイプのデータ接続としては、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せがあり得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【０１４９】
[0089]本開示の技法は、ワイヤレス適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の適用例など、様々なマルチメディア適用例をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
【０１５０】
[0090]図１に示されているビデオコーディングシステム１０は一例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データが、ローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスはデータを符号化し、メモリに記憶し得、および／またはビデオ復号デバイスはメモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信しないが、メモリにデータを符号化し、および／またはメモリからデータを取り出して復号するだけであるデバイスによって実施される。
【０１５１】
[0091]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。いくつかの例では、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ビデオソース１８は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および／もしくはビデオデータを生成するためのコンピュータグラフィックスシステム、またはビデオデータのそのようなソースの組合せを含み得る。
【０１５２】
[0092]ビデオエンコーダ２０は、ビデオソース１８からのビデオデータを符号化し得る。いくつかの例では、ソースデバイス１２は、出力インターフェース２２を介して宛先デバイス１４に符号化ビデオデータを直接送信する。他の例では、符号化ビデオデータはまた、復号および／または再生のための宛先デバイス１４による後のアクセスのために記憶媒体またはファイルサーバ上に記憶され得る。
【０１５３】
[0093]図１の例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。いくつかの例では、入力インターフェース２８は受信機および／またはモデムを含む。入力インターフェース２８は、チャネル１６を介して符号化ビデオデータを受信し得る。ディスプレイデバイス３２は、宛先デバイス１４と一体化され得るか、またはその外部にあり得る。概して、ディスプレイデバイス３２は復号ビデオデータを表示する。ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスを備え得る。
【０１５４】
[0094]本開示は全般に、ビデオエンコーダ２０が、ある情報をビデオデコーダ３０などの別のデバイスに「シグナリングすること」または「送信すること」に言及することがある。「シグナリング」または「送信」という用語は、概して、圧縮されたビデオデータを復号するために使用されるシンタックス要素および／または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムで行われ得る。代替的に、そのような通信は、符号化時に符号化されたビットストリーム中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われることがあるなど、ある時間期間にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。したがって、ビデオデコーダ３０は、ある情報を「受信する」ものとして参照され得るが、情報の受信は、必ずしもリアルタイムまたはほぼリアルタイムで行われるとは限らず、記憶の後の何らかの時間に媒体から取り出されることがある。
【０１５５】
[0095]ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ハードウェア、またはそれらの任意の組合せなどの様々な好適な回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、好適な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し得、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実施し得る。（ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せなどを含む）上記のいずれも、１つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【０１５６】
[0096]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、上記で言及されＨＥＶＣドラフト１０に記載されたＨＥＶＣ規格など、ビデオ圧縮規格に従って動作する。ベースＨＥＶＣ規格に加えて、ＨＥＶＣのためのスケーラブルビデオコーディング拡張、マルチビュービデオコーディング拡張、および３Ｄコーディング拡張を作成するための作業が進行中である。さらに、たとえば本開示で説明するような、パレットベースコーディングモードが、ＨＥＶＣ規格の拡張のために提供され得る。いくつかの例では、パレットベースコーディングのための本開示で説明する技法は、ＩＴＵ−Ｔ−Ｈ．２６４／ＡＶＣ規格または将来の規格など、他のビデオコーディング規格に従う動作のために構成されたエンコーダおよびデコーダに適用され得る。したがって、例として、ＨＥＶＣコーデックにおけるコーディングユニット（ＣＵ）または予測ユニット（ＰＵ）のコーディングのためのパレットベースコーディングモードの適用例について説明する。
【０１５７】
[0097]ＨＥＶＣおよび他のビデオコーディング規格では、ビデオシーケンスは、通常、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、ＳL、ＳCbおよびＳCrと示される、３つのサンプルアレイを含み得る。ＳLは、ルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳCbは、Ｃｂクロミナンスサンプルの２次元アレイである。ＳCrは、Ｃｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【０１５８】
[0098]ピクチャの符号化表現を生成するために、ビデオエンコーダ２０は、コーディングツリーユニット（ＣＴＵ）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの２つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とであり得る。コーディングツリーブロックはサンプルのＮ×Ｎブロックであり得る。ＣＴＵは「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなどの他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスタ走査において連続的に順序付けられた整数個のＣＴＵを含み得る。コーディングされたスライスは、スライスヘッダとスライスデータとを備え得る。スライスのスライスヘッダは、スライスについての情報を提供するシンタックス要素を含むシンタックス構造であり得る。スライスデータは、スライスのコーディングされたＣＴＵを含み得る。
【０１５９】
[0099]本開示は、サンプルの１つまたは複数のブロックのサンプルをコーディングするために使用される１つまたは複数のサンプルブロックとシンタックス構造とを指すために、「ビデオユニット」または「ビデオブロック」または「ブロック」という用語を使用し得る。例示的なタイプのビデオユニットまたはブロックとしては、ＣＴＵ、ＣＵ、ＰＵ、変換ユニット（ＴＵ）、マクロブロック、マクロブロックパーティションなどがあり得る。いくつかのコンテキストでは、ＰＵの説明は、マクロブロックまたはマクロブロックパーティションの説明と交換され得る。
【０１６０】
[0100]コーディングされたＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するために、ＣＴＵのコーディングツリーブロックに対して４分木区分を再帰的に実施し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックはサンプルのＮ×Ｎブロックである。ＣＵは、ルーマサンプルアレイ、ＣｂサンプルアレイおよびＣｒサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロックと、クロマサンプルの２つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とであり得る。ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの長方形（すなわち、正方形または非正方形）ブロックであり得る。ＣＵの予測ユニット（ＰＵ）は、ピクチャのルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、それらの予測ブロックサンプルを予測するために使用されるシンタックス構造とであり得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロック、Ｃｂ予測ブロックおよびＣｒ予測ブロックのための予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロックを生成し得る。
【０１６１】
[0101]ビデオエンコーダ２０は、ＰＵの予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号サンプルに基づいてＰＵの予測ブロックを生成し得る。
【０１６２】
[0102]ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいてＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０は、ＰＵの予測ブロックを生成するために単予測または双予測を使用し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するために単予測を使用するとき、ＰＵは単一の動きベクトル（ＭＶ）を有し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するために双予測を使用するとき、ＰＵは２つのＭＶを有し得る。
【０１６３】
[0103]ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵのための予測ブロック（たとえば、予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロック）を生成した後に、ビデオエンコーダ２０は、ＣＵの残差ブロックを生成し得る。ＣＵの残差ブロック中の各サンプルは、ＣＵのＰＵの予測ブロック中のサンプルと、ＣＵのコーディングブロック中の対応するサンプルとの間の差分を示し得る。たとえば、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つの中のルーマサンプルと、ＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ２０は、ＣＵのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つの中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はまた、ＣＵのＣｒ残差ブロックを生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つの中のＣｒサンプルと、ＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【０１６４】
[0104]さらに、ビデオエンコーダ２０は、ＣＵの残差ブロック（たとえば、ルーマ残差ブロック、Ｃｂ残差ブロックおよびＣｒ残差ブロック）を１つまたは複数の変換ブロック（たとえば、ルーマ変換ブロック、Ｃｂ変換ブロックおよびＣｒ変換ブロック）に分解するために、４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの長方形ブロックであり得る。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とであり得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックに関連付けられ得る。ＴＵに関連付けられたルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。
【０１６５】
[0105]ビデオエンコーダ２０は、ＴＵのための係数ブロックを生成するために、変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは、変換係数の２次元アレイであり得る。変換係数はスカラー量であり得る。たとえば、ビデオエンコーダ２０は、ＴＵのためのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのためのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのためのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【０１６６】
[0106]係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後に、ビデオエンコーダ２０は係数ブロックを量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。ビデオエンコーダ２０が係数ブロックを量子化した後に、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を実施し得る。ビデオエンコーダ２０は、エントロピー符号化されたシンタックス要素をビットストリーム中に出力し得る。ビットストリームはまた、エントロピー符号化されないシンタックス要素を含み得る。
【０１６７】
[0107]ビデオエンコーダ２０は、エントロピー符号化されたシンタックス要素を含むビットストリームを出力し得る。ビットストリームは、コーディングされたピクチャおよび関連するデータの表現を形成するビットのシーケンスを含み得る。ビットストリームは、ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットのシーケンスを備え得る。ＮＡＬユニットの各々はＮＡＬユニットヘッダを含み、ローバイトシーケンスペイロード（ＲＢＳＰ）をカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰは０ビットを含む。
【０１６８】
[0108]異なるタイプのＮＡＬユニットは異なるタイプのＲＢＳＰをカプセル化し得る。たとえば、第１のタイプのＮＡＬユニットはピクチャパラメータセット（ＰＰＳ：picture parameter set）のためのＲＢＳＰをカプセル化し得、第２のタイプのＮＡＬユニットは、コーディングされたスライスのためのＲＢＳＰをカプセル化し得、第３のタイプのＮＡＬユニットは補足エンハンスメント情報（ＳＥＩ：supplemental enhancement information）のためのＲＢＳＰをカプセル化し得、以下同様である。（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰではなく）ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれることがある。
【０１６９】
[0109]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。さらに、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得し得る。たとえば、ビデオデコーダ３０は、ビットストリームをパースして、ビットストリームからシンタックス要素を復号し得る。ビデオデコーダ３０は、ビットストリームから取得（たとえば、復号）されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ２０によって実施されるプロセスの逆であり得る。たとえば、ビデオデコーダ３０は、現在のＣＵのＰＵのための予測サンプルブロック（すなわち、予測ブロック）を決定するためにＰＵのＭＶを使用し得る。さらに、ビデオデコーダ３０は、現在のＣＵのＴＵに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在のＣＵのＴＵに関連付けられる変換ブロックを再構成するために、変換係数ブロックに対して逆変換を実施し得る。ビデオデコーダ３０は、現在のＣＵのＰＵのための予測サンプルブロックのサンプルを現在のＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在のＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵのコーディングブロックを再構成することによって、ビデオデコーダ３０はピクチャを再構成し得る。
【０１７０】
[0110]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、パレットベースコーディングを実施するように構成され得る。たとえば、パレットベースコーディングでは、上記で説明したイントラ予測コーディング技法またはインター予測コーディング技法を実施するのではなく、ビデオエンコーダ２０およびビデオデコーダ３０は、特定のエリア（たとえば、所与のブロック）のビデオデータを表す色またはピクセル値のテーブルとして、いわゆるパレットをコーディングし得る。このようにして、ビデオデータの現在のブロックの実際のピクセル値またはそれらの残差をコーディングするのではなく、ビデオコーダは、現在のブロックのピクセル値の１つまたは複数のためのインデックス値をコーディングし得、ここで、インデックス値は、現在のブロックのピクセル値を表すために使用されるパレット中のエントリを示す。
【０１７１】
[0111]たとえば、ビデオエンコーダ２０は、ブロックのためのパレットを決定することと、ブロックの１つまたは複数の個々のピクセルの値を表す値を有するパレット中のエントリを位置特定することと、ブロックの１つまたは複数の個々のピクセル値を表すために使用されるパレット中のエントリを示すインデックス値でブロックを符号化することとによって、ビデオデータのブロックを符号化し得る。さらに、ビデオエンコーダ２０は、符号化ビットストリーム中でインデックス値をシグナリングし得る。次に、ビデオ復号デバイス（たとえば、ビデオデコーダ３０）は、符号化ビットストリームから、ブロックのためのパレット、ならびにパレットを使ってブロックの様々な個々のピクセルを決定するために使用されるインデックス値を取得し得る。ビデオデコーダ３０は、ブロックのピクセル値を再構成するために、個々のピクセルのインデックス値をパレットのエントリとマッチングし得る。個々のピクセルに関連付けられたインデックス値が、ブロックのための対応するパレットのどのインデックス値ともマッチングしない事例では、ビデオデコーダ３０は、そのようなピクセルを、パレットベースコーディングの目的のために、エスケープピクセルとして識別し得る。
【０１７２】
[0112]別の例では、ビデオエンコーダ２０は、以下の動作に従ってビデオデータのブロックを符号化し得る。ビデオエンコーダ２０は、ブロックの個々のピクセルについての予測残差値を決定し、ブロックのためのパレットを決定し、個々のピクセルの予測残差値のうちの１つまたは複数の値を表す値を有する、パレット中のエントリ（たとえば、インデックス値）を位置特定し得る。さらに、ビデオエンコーダ２０は、ブロックの各個々のピクセルについての対応する予測残差値を表すために使用される、パレット中のエントリを示すインデックス値でブロックのピクセルを符号化し得る。ビデオデコーダ３０は、ソースデバイス１２によってシグナリングされた符号化ビットストリームから、ブロックのためのパレット、ならびにブロックの個々のピクセルに対応する予測残差値のためのインデックス値を取得し得る。説明したように、インデックス値は、現在のブロックに関連付けられたパレット中のエントリに対応し得る。次に、ビデオデコーダ３０は、ブロックの予測残差値を再構成するために、予測残差値のインデックス値をパレットのエントリに関連付け得る。予測残差値は、ブロックのピクセル値を再構成するために、（たとえば、イントラ予測またはインター予測を使用して取得された）予測値に加算され得る。
【０１７３】
[0113]以下でより詳細に説明されるように、パレットベースコーディングの基本的な考えは、コーディングされるべきビデオデータのブロックに対して、ブロック中の最も支配的なピクセル値を含むパレットを、ビデオエンコーダ２０が導出し得るというものである。たとえば、パレットは、現在のＣＵについて支配的でありおよび／またはそれを表すと決定または仮定される、いくつかのピクセル値を指し得る。ビデオエンコーダ２０は、パレットのサイズと要素とを表すデータを符号化し得る。さらに、ビデオエンコーダ２０は、ある走査順序に従って、ブロック中のピクセル値を符号化し得る。ブロック中に含まれる各ピクセルについて、ビデオエンコーダ２０は、ピクセルの値がパレット中に含まれているかどうか決定し得る。ピクセルがパレット中に含まれている場合、ビデオエンコーダ２０は、ピクセル値をパレット中の対応するエントリにマッピングするインデックス値をシグナリングし得る。さらに、ビデオエンコーダ２０は、インデックスがシグナリングされたピクセルに続く何個のピクセルが同じ値を有するかを示す「ラン」値をシグナリングし得る。代替として、一連のピクセルが、上の隣接ピクセルからの値と同じである値を有する場合、ビデオエンコーダ２０は、「上方コピー」モードを使用してピクセルを符号化してよく、ここで、ラン値（ただし、インデックス値なし）は、上からのピクセルと値を共有するピクセルの数を示す。
【０１７４】
[0114]一方、ブロックの現在のピクセルの値がパレット中に含まれず（すなわち、パレットコード化ブロックの特定のピクセル値を指定するパレットエントリが存在しない）、ピクセルが、上に隣接するピクセルと値を共有しない場合、このようなピクセルは、「エスケープピクセル」と定義され得る。パレットベースコーディングに従って、ビデオエンコーダ２０は、エスケープピクセルのために予約されたインデックス値を符号化し、シグナリングし得る。たとえば、エスケープピクセルを表すインデックス値は、パレットがゼロインデックス付けされると仮定すると、パレットのサイズであり得る。すなわち、ゼロ〜３とインデックス付けされた４つのエントリを有するパレットの場合、ビデオエンコーダ２０は、ピクセルがエスケープピクセルとして符号化されていることを示すために、ピクセルについて４という値をシグナリングすればよい。いくつかの例では、ビデオエンコーダ２０はまた、ブロック中に含まれるエスケープピクセルについてのピクセル値もしくは残差値（またはそれの量子化バージョン）を符号化し、シグナリングし得る。
【０１７５】
[0115]本開示の技法によると、ビデオエンコーダ２０は、エスケープピクセルの値を２つのパート、すなわち第１の部分および第２の部分において符号化し得る。第１および第２の部分は、連結されると、エスケープピクセルの値を表し得る。ビデオエンコーダ２０は、ゴロムライスコードワードを使用して第１の部分を、およびパラメータ３コードワードを伴う指数ゴロムを使用して第２の部分を符号化し得る。
【０１７６】
[0116]ビデオエンコーダ２０によってシグナリングされた符号化ビデオビットストリームを受信すると、ビデオデコーダ３０は、最初に、ビデオエンコーダ２０から受信された情報に基づいてパレットを決定し得る。ビデオデコーダ３０は、次いで、所与のブロックのピクセル値を再構成するために、所与のブロック中のピクセルロケーションに関連付けられる、受信されたインデックス値をパレットのエントリにマッピングし得る。いくつかの事例では、ビデオデコーダ３０は、エスケープピクセルのために予約されたインデックス値でピクセルがパレットコーディングされていると決定することなどによって、パレットコーディングされたブロックのピクセルがエスケープピクセルであると決定し得る。ビデオデコーダ３０が、パレットコーディングされたブロック中のエスケープピクセルを識別する事例では、ビデオデコーダ３０は、所与のブロック中に含まれるエスケープピクセルについてのピクセル値もしくは残差値（またはそれの量子化バージョン）を受信し得る。ビデオデコーダ３０は、個々のピクセル値を対応するパレットエントリにマッピングすることによって、およびパレットコーディングされたブロック中に含まれるいずれかのエスケープピクセルを再構成するためにピクセル値もしくは残差値（またはそれの量子化バージョン）を使用することによって、パレットコーディングされたブロックを再構成し得る。
【０１７７】
[0117]ビデオエンコーダ２０および／ビデオデコーダ３０は、最大量子化エスケープピクセル値を導出するために、本開示に記載される技法に従って動作するように構成され得る。たとえば、ビデオエンコーダ２０および／ビデオデコーダ３０は、複数のピクセルを示すブロックを決定し、量子化パラメータに少なくとも部分的に基づいて最大量子化エスケープピクセル値を決定し、最大量子化エスケープピクセル値を使用してブロックをコーディングし得る。
【０１７８】
[0118]いくつかの例では、最大量子化エスケープピクセル値を決定することは、色成分に基づいて量子化パラメータを決定することと、量子化パラメータに基づいて量子化ステップサイズを決定することと、量子化ステップサイズに基づいて最大可能量子化値を決定することと、最大量子化エスケープピクセル値に基づいて、量子化エスケープピクセルをコーディングするための打切りバイナリコードワードを生成することとをさらに備える。いくつかの例では、最大量子化エスケープピクセル値は、量子化ステップのみを使用して決定される。いくつかの例では、最大量子化エスケープピクセル値を決定することは、エンコーダ依存パラメータに基づかない。
【０１７９】
[0119]いくつかの例では、本開示の技法は、最大量子化エスケープピクセル値が除算演算を使用せずに実施されると決定することを含む。いくつかの例では、最大量子化エスケープピクセル値を決定することは、加算と比較とを使用して実施される。いくつかの例では、最大量子化エスケープピクセル値を決定することは、色成分に基づいて量子化パラメータを決定することと、量子化パラメータに基づいて、量子化スケーリングファクタまたはシフトパラメータのうちの少なくとも１つを決定することと、量子化スケーリングファクタまたはシフトパラメータのうちの少なくとも１つに基づいて、最大可能量子化値を決定することと、最大量子化エスケープピクセル値に基づいて、量子化エスケープピクセルをコーディングするための打切りバイナリコードワードを生成することとをさらに備える。
【０１８０】
[0120]いくつかの例では、本開示の技法は、量子化パラメータに基づいて量子化ステップサイズパラメータを決定することを含み、最大可能量子化値はさらに、量子化ステップサイズに基づいて決定される。いくつかの例では、量子化スケーリングファクタまたはシフトパラメータのうちの少なくとも１つはエンコーダパラメータである。いくつかの例では、本開示の技法は、量子化スケーリングファクタまたはシフトパラメータのうちの少なくとも１つをルックアップテーブル中に記憶することを含み、量子化パラメータに基づいて、量子化スケーリングファクタまたはシフトパラメータのうちの少なくとも１つを決定することは、量子化スケーリングファクタまたはシフトパラメータのうちの少なくとも１つを決定するために、ルックアップテーブル中でルックアップを実施することをさらに備える。
【０１８１】
[0121]いくつかの例では、最大量子化エスケープピクセル値を決定することは、色成分に基づいて量子化パラメータを決定することと、ビット深度に基づいてベース量子化パラメータを決定することと、ベース量子化パラメータが閾を満足するかどうか決定することと、ベース量子化パラメータが閾を満足するときは、ルックアップテーブルから、およびベース量子化パラメータに基づいて、最大可能量子化値を決定し、ベース量子化パラメータが閾を満足しないときは、ルックアップテーブルから、およびビット深度に基づいて、最大可能量子化値を決定することとをさらに含む。
【０１８２】
[0122]いくつかの例では、量子化エスケープピクセルは、固定長コードワード中でコーディングされる。いくつかの例では、最大量子化エスケープピクセル値を含むコードワードが、最大値制約なしで生成される。いくつかの例では、最大量子化エスケープピクセル値は、少なくとも、除算演算を実施せずに、またはエンコーダ依存パラメータを使用せずに決定される。
【０１８３】
[0123]図２は、本開示の様々な技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。図２は、説明のために与えられており、本開示で広く例示され説明される技法を限定するものと見なされるべきではない。説明のために、本開示では、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１８４】
[0124]図２の例では、ビデオエンコーダ２０は、ビデオデータメモリ９８と、予測処理ユニット１００と、残差生成ユニット１０２と、変換処理ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換処理ユニット１１０と、再構成ユニット１１２と、フィルタユニット１１４と、復号ピクチャバッファ１１６と、エントロピー符号化ユニット１１８とを含む。予測処理ユニット１００は、インター予測処理ユニット１２０と、イントラ予測処理ユニット１２６とを含む。インター予測処理ユニット１２０は、動き推定ユニットと、動き補償ユニットと（図示せず）を含む。ビデオエンコーダ２０はまた、本開示で説明するパレットベースコーディング技法の様々な態様を実施するように構成されたパレットベース符号化ユニット１２２を含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０１８５】
[0125]ビデオデータメモリ９８は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ９８に記憶されたビデオデータは、たとえば、ビデオソース１８から取得され得る。復号ピクチャバッファ１１６は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ２０によってビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ９８および復号ピクチャバッファ１１６は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ９８および復号ピクチャバッファ１１６は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ９８は、ビデオエンコーダ２０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１８６】
[0126]ビデオエンコーダ２０はビデオデータを受信し得る。ビデオエンコーダ２０はビデオデータのピクチャのスライス中の各ＣＴＵを符号化し得る。ＣＴＵの各々は、ピクチャの等しいサイズのルーマコーディングツリーブロック（ＣＴＢ）と、対応するＣＴＢとに関連付けられ得る。ＣＴＵを符号化することの一部として、予測処理ユニット１００は、ＣＴＵのＣＴＢを徐々により小さいブロックに分割するために、４分木区分を実施し得る。より小さいブロックはＣＵのコーディングブロックであり得る。たとえば、予測処理ユニット１００は、ＣＴＵに関連付けられたＣＴＢを４つの等しいサイズのサブブロックに区分し得、サブブロックのうちの１つまたは複数を４つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【０１８７】
[0127]ビデオエンコーダ２０は、ＣＵの符号化表現（すなわち、コーディングされたＣＵ）を生成するために、ＣＴＵのＣＵを符号化し得る。ＣＵを符号化することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵの間でＣＵに関連付けられたコーディングブロックを区分し得る。したがって、各ＰＵは、ルーマ予測ブロックと、対応するクロマ予測ブロックとに関連付けられ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートし得る。上記で示したように、ＣＵのサイズはＣＵのルーマコーディングブロックのサイズを指すことがあり、ＰＵのサイズはＰＵのルーマ予測ブロックのサイズを指すことがある。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測に関して２Ｎ×２ＮまたはＮ×ＮのＰＵサイズをサポートし得、インター予測に関して２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称のＰＵサイズをサポートし得る。ビデオエンコーダ２０およびビデオデコーダ３０はまた、インター予測のための２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズに関して非対称区分をサポートし得る。
【０１８８】
[0128]インター予測処理ユニット１２０は、ＣＵの各ＰＵに対してインター予測を実施することによって、ＰＵのための予測データを生成し得る。ＰＵの予測データは、ＰＵの１つまたは複数の予測サンプルブロックと、ＰＵの動き情報とを含み得る。インター予測ユニット１２１は、ＰＵがＩスライス中にあるか、Ｐスライス中にあるか、またはＢスライス中にあるかに応じて、ＣＵのＰＵに対して異なる動作を実施し得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測ユニット１２１は、ＰＵに対してインター予測を実行しない。したがって、Ｉモードで符号化されたブロックに対して、予測ブロックは、同じフレーム内の以前に符号化された近隣ブロックからの空間的予測を使用して形成される。
【０１８９】
[0129]ＰＵがＰスライス中にある場合、インター予測処理ユニット１２０の動き推定ユニットは、ＰＵの参照領域について参照ピクチャのリスト（たとえば、「ＲｅｆＰｉｃＬｉｓｔ０」）中の参照ピクチャを探索し得る。ＰＵの参照領域は、ＰＵのサンプルブロックに最も密接に対応するサンプルブロックを含んでいる、参照ピクチャ内の領域であり得る。動き推定ユニットは、ＰＵの参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０中の位置を示す参照インデックスを生成し得る。さらに、動き推定ユニットは、ＰＵのコーディングブロックと、参照領域に関連付けられた参照ロケーションとの間の空間変位を示すＭＶを生成し得る。たとえば、ＭＶは、現在の復号ピクチャ中の座標から参照ピクチャ中の座標までのオフセットを提供する２次元ベクトルであり得る。動き推定ユニットは、ＰＵの動き情報として参照インデックスとＭＶとを出力し得る。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに基づいて、ＰＵの予測サンプルブロックを生成し得る。
【０１９０】
[0130]ＰＵがＢスライス中にある場合、動き推定ユニットは、ＰＵについて単予測または双予測を実施し得る。ＰＵについて単予測を実施するために、動き推定ユニットは、ＰＵの参照領域についてＲｅｆＰｉｃＬｉｓｔ０または第２の参照ピクチャリスト（「ＲｅｆＰｉｃＬｉｓｔ１」）の参照ピクチャを探索し得る。動き推定ユニットは、ＰＵの動き情報として、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照インデックスと、ＰＵのサンプルブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示すＭＶと、参照ピクチャがＲｅｆＰｉｃＬｉｓｔ０中にあるかまたはＲｅｆＰｉｃＬｉｓｔ１中にあるかを示す１つまたは複数の予測方向インジケータとを出力し得る。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測サンプルブロックを生成し得る。
【０１９１】
[0131]ＰＵについて双方向インター予測を実施するために、動き推定ユニットは、ＰＵの参照領域についてＲｅｆＰｉｃＬｉｓｔ０中の参照ピクチャを探索し得、またＰＵの別の参照領域についてＲｅｆＰｉｃＬｉｓｔ１中の参照ピクチャを探索し得る。動き推定ユニットは、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照ピクチャインデックスを生成し得る。さらに、動き推定ユニットは、参照領域に関連付けられた参照ロケーションとＰＵのサンプルブロックとの間の空間変位を示すＭＶを生成し得る。ＰＵの動き情報は、ＰＵの参照インデックスとＭＶとを含み得る。動き補償ユニットは、ＰＵの動きベクトルによって示された参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測サンプルブロックを生成し得る。
【０１９２】
[0132]本開示の様々な例によれば、ビデオエンコーダ２０は、パレットベースコーディングを実施するように構成され得る。ＨＥＶＣフレームワークに関して、一例として、パレットベースコーディング技法は、ＣＵモードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、ＨＥＶＣのフレームワークにおいてＰＵモードとして使用されるように構成され得る。したがって、ＣＵのコンテキストにおいて（本開示全体で）本明細書で説明する開示されるプロセスのすべてが、追加または代替として、ＰＵモードに適用され得る。しかしながら、これらのＨＥＶＣベースの例は、本明細書で説明するパレットベースコーディング技法の制約または制限であると見なされるべきではなく、それは、そのような技法は、他の既存のシステム／規格もしくはまだ開発されていないシステム／規格とは独立に、またはそれらの一部として働くように適用され得るからである。これらの場合、パレットコーディングのためのユニットは、正方形ブロック、長方形ブロック、またはさらには非長方形形状の領域であり得る。
【０１９３】
[0133]パレットベース符号化ユニット１２２は、たとえば、パレットベース符号化モードがたとえばＣＵまたはＰＵのために選択されたとき、パレットベースの符号化を実施し得る。たとえば、パレットベース符号化ユニット１２２は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置のピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロックの位置のうちの少なくともいくつかを、選択されたピクセル値にそれぞれ対応するパレット中のエントリに関連付ける、インデックス値などの情報をシグナリングするように構成され得る。様々な機能がパレットベース符号化ユニット１２２によって実施されるものとして説明されるが、そのような機能の一部または全部は、他の処理ユニット、または異なる処理ユニットの組合せによって実施され得る。
【０１９４】
[0134]パレットベース符号化ユニット１２２は、本明細書で説明する様々なシンタックス要素のいずれかを生成するように構成され得る。したがって、ビデオエンコーダ２０は、本開示で説明するパレットベースコードモードを使用してビデオデータのブロックを符号化するように構成され得る。ビデオエンコーダ２０は、パレットコーディングモードを使用してビデオデータのブロックを選択的に符号化するか、または、たとえばＨＥＶＣインター予測コーディングモードまたはイントラ予測コーディングモードなど、異なるモードを使用してビデオデータのブロックを符号化し得る。ビデオデータのブロックは、たとえば、ＨＥＶＣコーディングプロセスに従って生成されるＣＵまたはＰＵであり得る。ビデオエンコーダ２０は、インター予測時間予測コーディングモードまたはイントラ予測空間コーディングモードでいくつかのブロックを符号化し、パレットベースコーディングモードで他のブロックを復号し得る。
【０１９５】
[0135]イントラ予測処理ユニット１２６は、ＰＵに対してイントラ予測を実施することによって、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、ＰＵのための予測サンプルブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット１２６は、Ｉスライス、Ｐスライス、およびＢスライス中のＰＵに対してイントラ予測を実施し得る。
【０１９６】
[0136]ＰＵに対してイントラ予測を実施するために、イントラ予測処理ユニット１２６は、ＰＵのための予測データの複数のセットを生成するために複数のイントラ予測モードを使用し得る。ＰＵのための予測データのセットを生成するためにいくつかのイントラ予測モードを使用するとき、イントラ予測処理ユニット１２６は、そのイントラ予測モードに関連付けられた方向へ、ＰＵの予測ブロックにわたって、近隣ＰＵのサンプルブロックからサンプルの値を延ばし得る。近隣ＰＵは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右上、左上、または左にあり得る。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モード、たとえば、３３個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、ＰＵに関連付けられた領域のサイズに依存し得る。
【０１９７】
[0137]予測処理ユニット１００は、ＰＵについてインター予測処理ユニット１２０によって生成された予測データ、またはＰＵについてイントラ予測処理ユニット１２６によって生成された予測データの中から、ＣＵのＰＵのための予測データを選択し得る。いくつかの例では、予測処理ユニット１００は、予測データのセットのレート／ひずみメトリックに基づいて、ＣＵのＰＵのための予測データを選択する。選択された予測データの予測サンプルブロックは、本明細書では、選択された予測サンプルブロックと呼ばれることがある。
【０１９８】
[0138]残差生成ユニット１０２は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロック）と、ＣＵのＰＵの選択された予測サンプルブロック（たとえば、予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロック）とに基づいて、ＣＵの残差ブロック（たとえば、ルーマ残差ブロック、Ｃｂ残差ブロックおよびＣｒ残差ブロック）を生成し得る。たとえば、残差生成ユニット１０２は、残差ブロック中の各サンプルが、ＣＵのコーディングブロック中のサンプルと、ＣＵのＰＵの対応する選択された予測サンプルブロック中の対応するサンプルとの間の差分に等しい値を有するようにＣＵの残差ブロックを生成し得る。
【０１９９】
[0139]変換処理ユニット１０４は、ＣＵに関連付けられる残差ブロックをＣＵのＴＵに関連付けられる変換ブロックに区分するために、４分木区分を実施し得る。したがって、いくつかの例では、ＴＵは、ルーマ変換ブロックと、２つのクロマ変換ブロックとに関連付けられ得る。ＣＵのＴＵのルーマ変換ブロックとクロマ変換ブロックとのサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づくことも、または基づかないこともある。「残差４分木」（ＲＱＴ）として知られる４分木構造は、領域の各々に関連付けられたノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。
【０２００】
[0140]変換処理ユニット１０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵについて変換係数ブロックを生成し得る。変換処理ユニット１０４は、ＴＵに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換を変換ブロックに適用し得る。いくつかの例では、変換処理ユニット１０４は変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
【０２０１】
[0141]量子化ユニット１０６は、係数ブロック中の変換係数を量子化し得る。量子化プロセスは、変換係数の一部またはすべてに関連付けられたビット深度を低減し得る。たとえば、ｎビット変換係数は、量子化中にｍビット変換係数に切り捨てられ得、ここで、ｎはｍよりも大きい。量子化ユニット１０６は、ＣＵに関連付けられた量子化パラメータ（ＱＰ）値に基づいて、ＣＵのＴＵに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらすことがあり、したがって、量子化された変換係数は、元の係数よりも低い精度を有し得る。
【０２０２】
[0142]逆量子化ユニット１０８および逆変換処理ユニット１１０は、それぞれ、係数ブロックから残差ブロックを再構成するために、係数ブロックに逆量子化および逆変換を適用し得る。再構成ユニット１１２は、ＴＵに関連付けられた再構成された変換ブロックを生成するために、予測処理ユニット１００によって生成された１つまたは複数の予測サンプルブロックからの対応するサンプルに、再構成された残差ブロックを加算し得る。このようにＣＵの各ＴＵのための変換ブロックを再構成することによって、ビデオエンコーダ２０は、ＣＵのコーディングブロックを再構成し得る。
【０２０３】
[0143]フィルタユニット１１４は、ＣＵに関連付けられたコーディングブロック中のブロッキングアーティファクトを低減するために、１つまたは複数のデブロッキング動作を実施し得る。復号ピクチャバッファ１１６は、フィルタユニット１１４が、再構成されたコーディングブロックに対して１つまたは複数のデブロッキング動作を実施した後に、再構成されたコーディングブロックを記憶し得る。インター予測処理ユニット１２０は、他のピクチャのＰＵに対してインター予測を実施するために、再構成されたコーディングブロックを含んでいる参照ピクチャを使用し得る。さらに、イントラ予測処理ユニット１２６は、ＣＵと同じピクチャ中の他のＰＵに対してイントラ予測を実施するために、復号ピクチャバッファ１１６中の再構成されたコーディングブロックを使用し得る。
【０２０４】
[0144]エントロピー符号化ユニット１１８は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１８は、エントロピー符号化データを生成するために、データに対して１つまたは複数のエントロピー符号化演算を実施し得る。たとえば、エントロピー符号化ユニット１１８は、ＣＡＢＡＣ演算、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）演算、可変対可変（Ｖ２Ｖ）長コーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）演算、確率間隔区分エントロピー（ＰＩＰＥ）コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算をデータに対して実施し得る。ビデオエンコーダ２０は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。たとえば、ビットストリームは、ＣＵのためのＲＱＴを表すデータを含み得る。
【０２０５】
[0145]いくつかの例では、残差コーディングは、パレットコーディングとともに実施されない。したがって、ビデオエンコーダ２０は、パレットコーディングモードを使用してコーディングするとき、変換または量子化を実施しないことがある。さらに、ビデオエンコーダ２０は、残差データとは別個に、パレットコーディングモードを使用して生成されたデータをエントロピー符号化し得る。
【０２０６】
[0146]本開示の技法の１つまたは複数によると、ビデオエンコーダ２０、および具体的にはパレットベース符号化ユニット１２２は、予測ビデオブロックのパレットベースビデオコーディングを実施することができる。上で説明されたように、ビデオエンコーダ２０によって生成されたパレットは、明示的に符号化されてよく、以前のパレットエントリから予測されてよく、以前のピクセル値から予測されてよく、またはこれらの組合せであってよい。
【０２０７】
[0147]具体的には、予測処理ユニット１００は、インター予測、イントラ予測、またはパレットモードなど、ビデオデータのブロック（たとえば、ＣＵまたはＰＵ）用の符号化モードを決定することができる。パレットモードが選択されていると仮定すると、パレットベース符号化ユニット１２２は、ブロックについてのピクセル値の統計に基づいて、ブロックのためのパレットを形成することができる。ブロックの各ピクセルについて、パレットベース符号化ユニット１２２は、ピクセルがパレット中に対応する値を有するかどうか決定し、有する場合、パレット中へのインデックスを、ピクセルについての対応する値にシグナリングすればよい。パレットベース符号化ユニット１２２は、前のピクセルと同じ値を有するピクセルの数を表すラン値をシグナリングしてもよい。
【０２０８】
[0148]代替として、ピクセルのシーケンスが、上に隣接するピクセルと等しい値を有する場合、パレットベース符号化ユニット１２２は、「上方コピー」モード用のラン値をシグナリングすればよく、ランは、上に隣接するピクセルに等しい値を有するピクセルの数を表す。
【０２０９】
[0149]インデックスモードも上方コピーモードも、パレットモードコード化ブロックの現在のピクセルの値を適切に表さない場合、パレットベース符号化ユニット１２２は、ピクセルをエスケープピクセルとしてコーディングするための、本開示の技法を使用し得る。本開示の技法によると、ビデオエンコーダ２０は、エスケープピクセルの値を２つのパート、すなわち第１の部分および第２の部分において符号化し得る。第１および第２の部分は、連結されると、エスケープピクセルの値を表し得る。エントロピー符号化ユニット１１８は、ゴロムライスコードワードを使用して第１の部分を、およびパラメータ３コードワードを伴う指数ゴロム（exponential Golomb with parameter 3 codeword）を使用して第２の部分を符号化し得る。さらに他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、パラメータ３を伴う指数ゴロムコーディングを使用して単一の値のみをコーディング（それぞれ、符号化または復号）すればよく、この値は、エスケープピクセルについての値全体（entire value）を表す。さらに他の例では、エントロピー符号化ユニット１１８は、パラメータ３を伴う指数ゴロムコーディングを使用して単一の値のみを符号化すればよく、この値は、エスケープピクセルについての値全体を表す。
【０２１０】
[0150]いくつかの例では、エントロピー符号化ユニット１１８は、打切り指数ゴロムコーディングを使用して第２の部分を符号化し得る。打切り指数ゴロムコーディングは、決定された最大量子化エスケープピクセル値に基づき得る。ビデオエンコーダ２０（より詳細には、エントロピー符号化ユニット１１８）は、本明細書に記載される様々な技法のうちのいずれかを使用して、最大量子化エスケープピクセル値を決定し得る。
【０２１１】
[0151]たとえば、エントロピー符号化ユニット１１８は、上の公式（２）に従って、ブロック用の量子化パラメータに基づいて量子化ステップサイズ値を決定し、次いで、たとえば、上のプロセス（３）に従って、最大量子化エスケープピクセル値を決定するために量子化ステップサイズを使用し得る。具体的には、プロセス（３）において、一時的値（temporary value）が、公式（２）を使用して決定された量子化ステップ値に初期化される。次いで、一時的値が（１＜＜ｂｉｔＤｅｐｔｈ）−１、すなわち、値１をビット深度だけ左シフトしたものマイナス１よりも小さい間、一時的値は、決定された量子化ステップ値だけ増大され、最大量子化エスケープピクセル値（１に初期化されている）は１だけ増大される。代替として、エントロピー符号化ユニット１１８は、上のプロセス（４）に従って最大量子化エスケープピクセル値を決定することができる。
【０２１２】
[0152]別の例として、ビデオエンコーダ２０は、量子化スケール値（ｑｕａｎｔＳｃａｌｅ）、右シフトパラメータ値（ｒｉｇｈｔＳｈｉｆｔＰａｒａｍ）、および右シフトオフセット値（ｒｉｇｈｔＳｈｉｆｔＯｆｆｓｅｔ）など、いくつかのエンコーダ変数についての値をシグナリングし得る。通常、これらの値は、ビデオエンコーダ２０にとって利用可能になるだけであるが、この例では、ビデオエンコーダ２０は、これらの要素についての値をビットストリーム中でシグナリングし、これらの値を、最大量子化エスケープピクセル値を決定するために使用することもできる。ビデオエンコーダ２０は、これらの要素についての値を、１つまたは複数のルックアップテーブルを使用してシグナリングし得る。さらに、エントロピー符号化ユニット１１８は、上のプロセス（５）、（６）、および（７）を使用して最大量子化エスケープピクセル値を計算することができる。見るとわかるように、プロセス（７）は、ｑｕａｎｔＳｃａｌｅと、ｒｉｇｈｔＳｈｉｆｔＯｆｆｓｅｔと、ｒｉｇｈｔＳｈｉｆｔＰａｒａｍとを使用して最大量子化エスケープピクセル値ｃＭａｘを計算することを含む。代替として、エントロピー符号化ユニット１１８は、プロセス（８）を使用して最大量子化エスケープピクセル値を計算することができ、これは、ｑｕａｎｔＳｃａｌｅ、ｒｉｇｈｔＳｈｉｆｔＯｆｆｓｅｔ、およびｒｉｇｈｔＳｈｉｆｔＰａｒａｍ要素を使用し、クリッピングおよび除算演算は省く。
【０２１３】
[0153]さらに別の例として、エントロピー符号化ユニット１１８は、上のプロセス（９）を使用して最大量子化エスケープピクセル値を決定することができ、これは、量子化パラメータ（ｑＰ）およびビット深度に基づくルックアップテーブルを使用する。ルックアップテーブルは、表３もしくは４、または他のルックアップテーブルのいずれかに従って定義され得る。
【０２１４】
[0154]別の例として、エントロピー符号化ユニット１１８は、上のプロセス（１０）〜（１３）を使用して最大量子化エスケープピクセルを決定することができる。すなわち、エントロピー符号化ユニット１１８は、所定の値であり得るｑＰＢａｓｅ値を（プロセス（１０）を使用して）決定することができる。エントロピー符号化ユニット１１８は次いで、プロセス（１１）を使用して、量子化パラメータ（ｑＰ）およびｑＰＢａｓｅ値からｑｕａｎｔＢｉｔｓ値を決定し、ビット深度および決定されたｑｕａｎｔＢｉｔｓ値から、プロセス（１２）に従ってｍａｘＢｉｔ値を決定することができる。最終的に、エントロピー符号化ユニット１１８は、プロセス（１３）に従って最大量子化エスケープピクセル値（ｃＭａｘ）を、１をｍａｘＢｉｔ値だけ左シフトしたものマイナス１という値として決定することができる。
【０２１５】
[0155]上述したように、これらの様々な例示的技法のうちのどれが、最大量子化エスケープピクセル値を決定するために使用されてもよく、これは、エントロピー符号化ユニット１１８が、エスケープピクセル値の第２の部分の打切り指数ゴロムコーディングを実施するために使用し得る。代替として、エントロピー符号化ユニット１１８は、ゴロムライスコーディングおよびパラメータ３を伴う指数ゴロムコーディングの組合せを実施せずに、エスケープピクセル値の打切りバイナリコーディングを実施するために、これらの様々な技法のうちのいずれかを使用すればよい。
【０２１６】
[0156]このように、ビデオエンコーダ２０は、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定し、エスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを符号化するように構成されたビデオエンコーダの例を表し、指数ゴロムコードワードを符号化するために、ビデオエンコーダは、パラメータ３を伴う指数ゴロム符号化を使用するように構成される。
【０２１７】
[0157]図３は、本開示の技法を実装するように構成された例示的なビデオデコーダ３０を示すブロック図である。図３は、説明のために与えられており、本開示において広く例示され説明される技法を限定するものではない。説明のために、本開示では、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０２１８】
[0158]図３の例では、ビデオデコーダ３０は、ビデオデータメモリ１４８と、エントロピー復号ユニット１５０と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換処理ユニット１５６と、再構成ユニット１５８と、フィルタユニット１６０と、復号ピクチャバッファ１６２とを含む。予測処理ユニット１５２は、動き補償ユニット１６４と、イントラ予測処理ユニット１６６とを含む。ビデオデコーダ３０はまた、本開示で説明するパレットベースコーディング技法の様々な態様を実施するように構成されたパレットベース復号ユニット１６５を含む。他の例では、ビデオデコーダ３０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０２１９】
[0159]ビデオデータメモリ１４８は、ビデオデコーダ３０の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ１４８に記憶されるビデオデータは、たとえば、コンピュータ可読媒体１６から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ１４８は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成し得る。復号ピクチャバッファ１６２は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１４８および復号ピクチャバッファ１６２は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ１４８および復号ピクチャバッファ１６２は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ１４８は、ビデオデコーダ３０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０２２０】
[0160]ビデオデータメモリ１４８、すなわち、ＣＰＢは、ビットストリームの符号化ビデオデータ（たとえば、ＮＡＬユニット）を受信し、記憶し得る。エントロピー復号ユニット１５０は、ビデオデータメモリ１４８から符号化ビデオデータ（たとえば、ＮＡＬユニット）を受信し、ＮＡＬユニットをパースしてシンタックス要素を復号し得る。エントロピー復号ユニット１５０は、ＮＡＬユニット中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構成ユニット１５８、およびフィルタユニット１６０は、ビットストリームから取得（たとえば、抽出）されたシンタックス要素に基づいて、復号ビデオデータを生成し得る。
【０２２１】
[0161]ビットストリームのＮＡＬユニットは、コーディングされたスライスＮＡＬユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット１５０は、コーディングされたスライスＮＡＬユニットからシンタックス要素を抽出し、エントロピー復号し得る。コーディングされたスライスの各々は、スライスヘッダと、スライスデータとを含み得る。スライスヘッダは、スライスに関係するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたＰＰＳを識別するシンタックス要素を含み得る。
【０２２２】
[0162]ビットストリームからのシンタックス要素を復号することに加えて、ビデオデコーダ３０は、区分されていないＣＵに対して再構成動作を実施し得る。区分されていないＣＵに対して再構成動作を実施するために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して再構成動作を実施し得る。ＣＵの各ＴＵについて再構成動作を実施することによって、ビデオデコーダ３０は、ＣＵの残差ブロックを再構成し得る。
【０２２３】
[0163]ＣＵのＴＵに対して再構成動作を実施することの一部として、逆量子化ユニット１５４は、ＴＵに関連付けられた係数ブロックを逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）し得る。逆量子化ユニット１５４は、量子化の程度を決定するために、また同様に、逆量子化ユニット１５４が適用すべき逆量子化の程度を決定するために、ＴＵのＣＵに関連付けられたＱＰ値を使用し得る。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるＱＰの値を調整することによって制御され得る。圧縮比はまた、採用されたエントロピーコーディングの方法に依存し得る。
【０２２４】
[0164]逆量子化ユニット１５４が係数ブロックを逆量子化した後に、逆変換処理ユニット１５６は、ＴＵに関連付けられた残差ブロックを生成するために、係数ブロックに１つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット１５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向性変換、または別の逆変換を係数ブロックに適用し得る。
【０２２５】
[0165]イントラ予測を使用してＰＵが符号化される場合、イントラ予測処理ユニット１６６は、ＰＵのための予測ブロックを生成するためにイントラ予測を実施し得る。イントラ予測処理ユニット１６６は、イントラ予測モードを使用して、空間的に近接するＰＵの予測ブロックに基づいてＰＵのための予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロックを生成し得る。イントラ予測処理ユニット１６６は、ビットストリームから復号された１つまたは複数のシンタックス要素に基づいて、ＰＵのためのイントラ予測モードを決定し得る。
【０２２６】
[0166]予測処理ユニット１５２は、ビットストリームから抽出されたシンタックス要素に基づいて、第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）と第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）とを構成し得る。さらに、インター予測を使用してＰＵが符号化された場合、エントロピー復号ユニット１５０は、ＰＵについての動き情報を抽出し得る。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、ＰＵのための１つまたは複数の参照領域を決定し得る。動き補償ユニット１６４は、ＰＵのための１つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、ＰＵのための予測ブロック（たとえば、予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロック）を生成し得る。
【０２２７】
[0167]再構成ユニット１５８は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロック）を再構成するために、適用可能なとき、ＣＵのＴＵに関連付けられた変換ブロック（たとえば、ルーマ変換ブロック、Ｃｂ変換ブロックおよびＣｒ変換ブロック）と、ＣＵのＰＵの予測ブロック（たとえば、ルーマブロック、ＣｂブロックおよびＣｒブロック）とを、すなわち、イントラ予測データまたはインター予測データのいずれかを使用し得る。たとえば、再構成ユニット１５８は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロック）を再構成するために、変換ブロック（たとえば、ルーマ変換ブロック、Ｃｂ変換ブロックおよびＣｒ変換ブロック）のサンプルを、予測ブロック（たとえば、予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロック）の対応するサンプルに加算し得る。
【０２２８】
[0168]フィルタユニット１６０は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロック）に関連付けられたブロッキングアーティファクトを低減するために、デブロッキング演算を実施し得る。ビデオデコーダ３０は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロック）を復号ピクチャバッファ１６２に記憶し得る。復号ピクチャバッファ１６２は、後続の動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のための、参照ピクチャを提供し得る。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ１６２中のブロック（たとえば、ルーマブロック、ＣｂブロックおよびＣｒブロック）に基づいて、他のＣＵのＰＵに対してイントラ予測演算またはインター予測演算を実施し得る。このようにして、ビデオデコーダ３０は、有意係数ブロックの変換係数レベルをビットストリームから抽出し、変換係数レベルを逆量子化し、変換ブロックを生成するため、変換ブロックに少なくとも部分的に基づいてコーディングブロックを生成するため、およびコーディングブロックを表示のために出力するために、変換係数レベルに変換を適用し得る。
【０２２９】
[0169]本開示の様々な例によれば、ビデオデコーダ３０は、パレットベースコーディングを実施するように構成され得る。特に、ビデオデコーダ３０は、パレットベースのコーディングを実施し得るパレットベース復号ユニット１６５を含む。たとえば、パレットベース復号ユニット１６５は、ピクセル値を示すエントリを有するパレットを生成するように構成され得る。さらに、この例では、パレットベース復号ユニット１６５は、ビデオデータのブロックの少なくともいくつかの位置をパレット中のエントリに関連付ける情報を受信し得る。この例では、パレットベース復号ユニット１６５は、その情報に基づいてパレット中のピクセル値を選択し得る。さらに、この例では、パレットベース復号ユニット１６５は、選択されたピクセル値に基づいてブロックのピクセル値を再構成し得る。様々な機能がパレットベース復号ユニット１６５によって実施されるものとして説明されるが、そのような機能の一部または全部は、他の処理ユニット、または異なる処理ユニットの組合せによって実施され得る。
【０２３０】
[0170]パレットベース復号ユニット１６５は、パレットコーディングモード情報を受信し、パレットコーディングモードがブロックに適用されることをパレットコーディングモード情報が示すとき、上記の動作を実施し得る。パレットコーディングモードがブロックに適用されないことをパレットコーディングモード情報が示すとき、または、他のモード情報が異なるモードの使用を示すとき、パレットベース復号ユニット１６５は、パレットコーディングモードがブロックに適用されないことをパレットコーディングモード情報が示すとき、たとえば、ＨＥＶＣインター予測コーディングモードまたはイントラ予測コーディングモードなど、非パレットベースコーディングモードを使用してビデオデータのブロックを復号する。ビデオデータのブロックは、たとえば、ＨＥＶＣコーディングプロセスに従って生成されるＣＵまたはＰＵであり得る。ビデオデコーダ３０は、インター予測時間予測コーディングモードまたはイントラ予測空間コーディングモードでいくつかのブロックを復号し、パレットベースコーディングモードで他のブロックを復号し得る。パレットベースコーディングモードは、複数の異なるパレットベースコーディングモードのうちの１つを備え得るか、または単一のパレットベースコーディングモードがあり得る。
【０２３１】
[0171]本開示の技法のうちの１つまたは複数によれば、ビデオデコーダ３０、具体的にはパレットベース復号ユニット１６５は、パレットコーディングされたビデオブロックのパレットベースビデオ復号を実施し得る。上記で説明したように、ビデオデコーダ３０によって復号されたパレットは、明示的に符号化およびシグナリングされるか、受信されたパレットコーディングされたブロックに関してビデオデコーダ３０によって再構成されるか、前のパレットエントリから予測されるか、以前のピクセル値から予測されるか、またはこれらの組合せであり得る。
【０２３２】
[0172]具体的には、エントロピー復号ユニット１５０は、ビデオデータのブロック（たとえば、ＰＵまたはＣＵ）がパレットモードを使用してコーディングされていることを示す情報を復号することができる。エントロピー復号ユニット１５０は、ブロックの各ピクセルが、パレットモードを使用してどのようにコーディングされているかを表す情報をさらに復号することができる。たとえば、エントロピー復号ユニット１５０は、インデックス値とラン値とを、｛インデックス，ラン｝ペアとして復号し得る。インデックス値は、ブロックのためのパレットのエントリを表し、エントリはピクセル値を指定し、ラン値は、同じ値を有する現在のピクセルに加え、ピクセルの数を示す。
【０２３３】
[0173]インデックス値がパレットのサイズに等しい場合、エントロピー復号ユニット１５０は、現在のピクセルがエスケープピクセルであると決定し得る。したがって、本開示の技法によると、エントロピー復号ユニット１５０は、ビットストリームの２つの後続値、すなわち、ゴロムライスコーディングされた第１の値と、パラメータ３を伴う指数ゴロムコーディングをされた第２の値とを復号することができる。第１の値はエスケープピクセルの値の第１の部分を表し、第２の値はエスケープピクセルの値の第２の部分を表す。したがって、第１の値と第２の値とを復号した（それぞれ、第１の部分と第２の部分とを生じる（producing））後、エントロピー復号ユニット１５０は、エスケープピクセルの値を再生するために第１の部分と第２の部分とを連結し、エスケープピクセルの値をパレットベース復号ユニット１６５に与えればよい。代替として、エントロピー復号ユニット１５０は、第１の部分と第２の部分とをパレットベース復号ユニット１６５に与えてよく、これは、エスケープピクセルの値を再生するために、第１の部分と第２の部分とを連結し得る。さらに他の例では、エントロピー復号ユニット１５０は、パラメータ３を伴う指数ゴロムコーディングを使用して単一の値のみを復号すればよく、この値は、エスケープピクセルについての値全体を表す。
【０２３４】
[0174]いくつかの例では、エントロピー復号ユニット１５０は、打切り指数ゴロムコーディングを使用して第２の部分を復号し得る。打切り指数ゴロムコーディングは、決定された最大量子化エスケープピクセル値に基づき得る。ビデオデコーダ３０（より詳細には、エントロピー復号ユニット１５０）は、本明細書に記載される様々な技法のうちのいずれかを使用して、最大量子化エスケープピクセル値を決定し得る。
【０２３５】
[0175]たとえば、エントロピー復号ユニット１５０は、上の公式（２）に従って、ブロック用の量子化パラメータに基づいて量子化ステップサイズ値を決定し、次いで、たとえば、上のプロセス（３）に従って、最大量子化エスケープピクセル値を決定するために量子化ステップサイズを使用し得る。具体的には、プロセス（３）において、一時的値が、公式（２）を使用して決定された量子化ステップ値に初期化される。次いで、一時的値が（１＜＜ｂｉｔＤｅｐｔｈ）−１、すなわち、値１をビット深度だけ左シフトしたものマイナス１よりも小さい間、一時的値は、決定された量子化ステップ値だけ増大され、最大量子化エスケープピクセル値（１に初期化されている）は１だけ増大される。代替として、エントロピー復号ユニット１５０は、上のプロセス（４）に従って最大量子化エスケープピクセル値を決定することができる。
【０２３６】
[0176]別の例として、ビデオデコーダ３０は、量子化スケール値（ｑｕａｎｔＳｃａｌｅ）、右シフトパラメータ値（ｒｉｇｈｔＳｈｉｆｔＰａｒａｍ）、および右シフトオフセット値（ｒｉｇｈｔＳｈｉｆｔＯｆｆｓｅｔ）など、いくつかのエンコーダ変数についての値を受信し得る。通常、これらの値は、ビデオエンコーダにとって利用可能になるだけであるが、この例では、ビデオデコーダ３０は、これらの要素についての値をビットストリームから復号し、これらの値を、最大量子化エスケープピクセル値を決定するために使用することもできる。ビデオデコーダ３０は、インデックスを、これらのエンコーダ変数を表す１つまたは複数のルックアップテーブルの中に復号し得る。さらに、エントロピー復号ユニット１５０は、上のプロセス（５）、（６）、および（７）を使用して最大量子化エスケープピクセル値を計算することができる。見るとわかるように、プロセス（７）は、ｑｕａｎｔＳｃａｌｅと、ｒｉｇｈｔＳｈｉｆｔＯｆｆｓｅｔと、ｒｉｇｈｔＳｈｉｆｔＰａｒａｍとを使用して最大量子化エスケープピクセル値ｃＭａｘを計算することを含む。代替として、エントロピー復号ユニット１５０は、プロセス（８）を使用して最大量子化エスケープピクセル値を計算することができ、これは、ｑｕａｎｔＳｃａｌｅ、ｒｉｇｈｔＳｈｉｆｔＯｆｆｓｅｔ、およびｒｉｇｈｔＳｈｉｆｔＰａｒａｍ要素を使用し、クリッピングおよび除算演算は省く。
【０２３７】
[0177]さらに別の例として、エントロピー復号ユニット１５０は、上のプロセス（９）を使用して最大量子化エスケープピクセル値を決定することができ、これは、量子化パラメータ（ｑＰ）およびビット深度に基づくルックアップテーブルを使用する。ルックアップテーブルは、表３もしくは４、または他のルックアップテーブルのいずれかに従って定義され得る。
【０２３８】
[0178]別の例として、エントロピー復号ユニット１５０は、上のプロセス（１０）〜（１３）を使用して最大量子化エスケープピクセルを決定することができる。すなわち、エントロピー復号ユニット１５０は、所定の値であり得るｑＰＢａｓｅ値を（プロセス（１０）を使用して）決定することができる。エントロピー復号ユニット１５０は次いで、プロセス（１１）を使用して、量子化パラメータ（ｑＰ）およびｑＰＢａｓｅ値からｑｕａｎｔＢｉｔｓ値を決定し、次いで、ビット深度および決定されたｑｕａｎｔＢｉｔｓ値から、プロセス（１２）に従ってｍａｘＢｉｔ値を決定することができる。最終的に、エントロピー復号ユニット１５０は、プロセス（１３）に従って最大量子化エスケープピクセル値（ｃＭａｘ）を、１をｍａｘＢｉｔ値だけ左シフトしたものマイナス１という値として決定することができる。
【０２３９】
[0179]上述したように、これらの様々な例示的技法のうちのどれが、最大量子化エスケープピクセル値を決定するために使用されてもよく、これは、エントロピー復号ユニット１５０が、エスケープピクセル値の第２の部分の打切り指数ゴロムコーディングを実施するために使用し得る。代替として、エントロピー復号ユニット１５０は、ゴロムライスコーディングおよびパラメータ３を伴う指数ゴロムコーディングの組合せを実施せずに、エスケープピクセル値の打切りバイナリコーディングを実施するために、これらの様々な技法のうちのいずれかを使用すればよい。
【０２４０】
[0180]やはり（Again）、エントロピー復号ユニット１５０は、パレットのサイズに等しいパレットインデックス値によってシグナリングされたエスケープピクセル値を復号するために、上記のプロセスを実施し得る。代替として、エントロピー復号ユニット１５０は、ラン値のみを復号し得る。ラン値は、上方コピーモードを使用してコーディングされたピクセルの数を示す。エントロピー復号ユニット１５０は、復号されたラン値をパレットベース復号ユニット１６５に与えればよい。したがって、パレットベース復号ユニット１６５は、これらのピクセルの各々についての値を、それぞれの上に隣接するピクセルから取り出すことができる。
【０２４１】
[0181]このように、ビデオデコーダ３０は、パレットモードコード化ブロックのエスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを復号するように構成されたビデオデコーダの例を表し、ビデオデコーダは、パラメータ３を伴う指数ゴロム復号を使用して指数ゴロムコードワードを復号し、エスケープピクセルについての値を使用してブロックを復号するように構成される。
【０２４２】
[0182]図４は、本開示の技法による、ビデオデータのブロックを符号化するための例示的な方法を示すフローチャートである。図４の方法は、（たとえば、図２に示される）ビデオエンコーダ２０およびその構成要素によって実施され得る。
【０２４３】
[0183]この例では、予測処理ユニット１００は最初に、ビデオデータのブロックを受信する（２００）。ブロックは、たとえば、予測ユニット（ＰＵ）またはコーディングユニット（ＣＵ）であり得る。予測処理ユニット１００は次いで、ブロック用のコーディングモードを決定する（２０２）。たとえば、予測処理ユニット１００は、様々なコーディングモードをテストし、レートひずみ最適化（ＲＤＯ）プロセスを使用してモードを比較すればよい。さらに、予測処理ユニット１００は、ＲＤＯプロセスを使用して、様々なブロックサイズとブロック区分方式（block partitioning schemes）とを比較することもできる。
【０２４４】
[0184]予測処理ユニット１００はイントラまたはインター予測モードを選択することができ、この場合、インター予測処理ユニット１２０またはイントラ予測処理ユニット１２６は、それぞれ予測ブロックを形成するイントラ予測またはインター予測を使用してブロックのピクセルを予測することができる（２０４）。ビデオエンコーダ２０は次いで、ブロックの残差値を形成し、処理し得る（２０６）。たとえば、残差生成ユニット１０２は、予測ブロックから元のブロックをピクセル単位で減算して、残差ブロックを形成することができる。変換処理ユニット１０４は次いで、たとえば、ＤＣＴなどの変換を使用して残差ブロックを変換して、変換ブロックを形成することができる。量子化ユニット１０６は次いで、変換ブロックの変換係数を量子化し、量子化変換係数をエントロピー符号化ユニット１１８に与えればよい。予測処理ユニット１００はまた、予測モードを表す情報（たとえば、イントラ／インター、イントラ予測が使用される場合は選択されたイントラモード、またはインター予測が使用される場合は動きパラメータ）をエントロピー符号化ユニット１１８に提供する。したがって、エントロピー符号化ユニット１１８は、予測情報と残差値（すなわち、量子化変換係数）とをエントロピー符号化する（２０８）。
【０２４５】
[0185]代替として、予測処理ユニット１００は、ブロックをコーディングするためのパレットモードを選択することができ、この場合、パレットベース符号化ユニット１２２は、ブロックについてのピクセル統計を分析する（２１０）。たとえば、パレットベース符号化ユニット１２２は、頻繁に使用されるピクセル値を決定することができる。パレットベース符号化ユニット１２２は次いで、統計に基づいて、ブロックのためのパレットを形成する（２１２）。図４には示されていないが、エントロピー符号化ユニット１１８は、パレットについてのデータをエントロピー符号化し得る。たとえば、パレットは、たとえば、表１および２に関して上述したように、前に使用されたパレットに相対して（relative to）予測コーディングされ（predictively coded）得る。
【０２４６】
[0186]パレットベース符号化ユニット１２２は次いで、ピクセルをどのようにしてコーディングするかを決定するために、ブロックのピクセルを走査し得る（２１４）。たとえば、パレットベース符号化ユニット１２２は、現在のピクセル値がパレット中に含まれるかどうか決定し得る。ピクセル値がパレット中に含まれる場合、パレットベース符号化ユニット１２２は、ピクセル値に対応する、パレットからのインデックスをエントロピー符号化ユニット１１８に与えてよく、これは、インデックス値をエントロピー符号化し得る（２１６）。その上、パレットベース符号化ユニット１２２は、同じ値を有する、前のピクセルに続く行中のピクセルの数を決定し、エントロピー符号化ユニット１１８に「ラン」値を与えればよく、これは、ラン値をエントロピー符号化し得る（２１８）。
【０２４７】
[0187]代替として、現在のピクセルがパレット中に値をもたない場合、パレットベース符号化ユニット１２２は、ピクセルについての値が、上に隣接するピクセル値と同じかどうか決定すればよい。いくつかの例では、この決定は、ピクセル値が、パレット中の値に対応するかどうか決定することに先立って行われ得る。いずれの場合にも、現在のピクセルが、上に隣接するピクセル値に等しい値を有する場合、パレットベース符号化ユニット１２２は、上に隣接するピクセルに等しい値を有するピクセルの数を記述するラン値をエントロピー符号化ユニット１１８に与えればよく、これは、ラン値をエントロピー符号化し得る（２２０）。
【０２４８】
[0188]現在のピクセルが、パレット中の値に対応せず、上に隣接するピクセルに等しい値をもたない場合、パレットベース符号化ユニット１２２は、ピクセルをエスケープピクセルとして符号化してよい。具体的には、パレットベース符号化ユニット１２２は、パレットのサイズに等しいインデックス値をエントロピー符号化ユニット１１８に与えればよく、これは、インデックス値をパレットのサイズとしてエントロピーコーディングし得る（２２２）。パレットのサイズに等しいインデックス値は、現在のピクセルがエスケープピクセルとして符号化されていることをシグナリングし得る。パレットベース符号化ユニット１２２は、エスケープピクセルの値をエントロピー符号化ユニット１１８にさらに与えてよい。
【０２４９】
[0189]本開示の技法によると、エントロピー符号化ユニット１１８は、エスケープピクセルの値を２つのパートにおいて符号化することができる。より詳細には、エントロピー符号化ユニット１１８は、エスケープピクセルの値を第１の部分および第２の部分に分割し（split）得る。エントロピー符号化ユニット１１８は、ピクセル値の第１の部分をゴロムライス符号化し（Golomb-rice encode）（２２４）、ピクセル値の第２の部分に、パラメータ３を伴う指数ゴロム符号化をし得る（２２６）。図４には示されていないが、エントロピー符号化ユニット１１８は、決定された最大量子化エスケープピクセル値に基づいて、打切りパラメータ３を伴う指数ゴロムを使用して第２の部分をコーディングすることができる。
【０２５０】
[0190]ビデオエンコーダ２０は、このプロセス（たとえば、ステップ２１６および２１８からなるシーケンス、ステップ２２０、またはステップ２２２〜２２６からなるシーケンスのうちの１つ）を、パレットモードコード化ブロックの各ピクセルについて実施することができる。
【０２５１】
[0191]このように、図４の方法は、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定することと、エスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを符号化することと、ここにおいて、指数ゴロムコードワードを符号化することは、パラメータ３を伴う指数ゴロム符号化を使用して指数ゴロムコードワードを符号化することを備える、を含む方法の例を表す。
【０２５２】
[0192]図４の方法は、ゴロムライスコーディングを使用してエスケープピクセルの値の第１の部分と、指数ゴロムコーディングを使用してエスケープピクセルの値の第２の部分の両方を符号化することを含むが、他の例では、エスケープピクセルについての値全体が、指数ゴロムコーディングのみを使用して（たとえば、指数ゴロムコーディング用にパラメータ３を使用して、コーディングされ得ることを理解されたい。
【０２５３】
[0193]図５は、本開示の技法による、ビデオデータのブロックを符号化するための別の例示的な方法を示すフローチャートである。図５の方法は、（たとえば、図２に示される）ビデオエンコーダ２０およびその構成要素によって実施され得る。概して、図５の方法は、実質的に図４の方法に従う。ただし、図５では、現在のピクセルが、パレット中の値に対応せず、上に隣接するピクセルに等しい値をもたないとき、パレットベース符号化ユニット１２２は、ピクセルをエスケープピクセルとして符号化し、具体的には、エスケープピクセルについての値を、パラメータ３を伴う指数ゴロムコーディングを使用して符号化すればよい（may）（２２８）。
【０２５４】
[0194]このように、図５の方法は、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定することと、エスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを符号化することと、ここにおいて、指数ゴロムコードワードを符号化することは、パラメータ３を伴う指数ゴロム符号化を使用して指数ゴロムコードワードを符号化することを備える、を含む方法の別の例を表す。
【０２５５】
[0195]図６は、本開示の技法による、ビデオデータのブロックを復号するための例示的な方法を示すフローチャートである。図６の方法は、（たとえば、図３に示される）ビデオデコーダ３０およびその構成要素によって実施され得る。
【０２５６】
[0196]最初に、エントロピー復号ユニット１５０は、ビデオデータのブロック用のコーディングモードを示すデータを復号し得る（２５０）。エントロピー復号ユニット１５０は、このデータを、ブロック用のコーディングモード、たとえば、イントラ予測、インター予測、またはパレットモードのうちの１つを決定するために使用することができる（２５２）。
【０２５７】
[0197]コーディングモードがイントラ予測またはインター予測である場合、エントロピー復号ユニット１５０は、予測情報（たとえば、イントラモードまたは動きパラメータ）を復号し、予測情報を予測処理ユニット１５２に与え得る。予測処理ユニット１５２は、予測情報を、イントラ予測またはインター予測を使用して、ブロックのピクセルを予測するために使用することができる（２５４）。たとえば、イントラ予測処理ユニット１６６は、ブロックに隣接ピクセルから（from neighboring pixels to the block）予測ブロックを構成するために、イントラ予測モードを使用し得る。別の例として、動き補償ユニット１６４は、復号ピクチャバッファ１６２の、前に復号されたピクチャから参照ブロックを取り出す（および、可能性としては、処理する、たとえば、フィルタリングする）ために、動きパラメータを使用し得る。
【０２５８】
[0198]さらに、ビデオデコーダ３０は、ブロックの残差値を復号し、処理し得る（２５６）。たとえば、逆量子化ユニット１５４は量子化変換係数を逆量子化することができ、逆変換処理ユニット１５６は、残差ブロックを再構成するために、変換係数を逆変換することができる。再構成ユニット１５８は次いで、元の（original）ブロックを再構成するために、残差ブロックの残差値と、予測ブロックの予測値とを組み合わせればよい（２５８）。
【０２５９】
[0199]代替として、エントロピー復号ユニット１５０は、ブロック用のコーディングモードがパレットモードであると決定し得る。この場合、エントロピー復号ユニット１５０は、ブロックのためのパレットを復号することができる（２６０）。表１および２に関して上述したように、パレットは、前のパレットに相対して予測コーディングされ得る。したがって、エントロピー復号ユニット１５０は、パレット用の復号データをパレットベース復号ユニット１６５に与えればよく、これは、復号データを使用して、ブロックのためのパレットを再構成し得る。
【０２６０】
[0200]エントロピー復号ユニット１５０は、ブロックのピクセルについてのデータを復号することもできる（２６４）。たとえば、復号データは、パレットのサイズよりも小さいインデックス値に対応し得る。この場合、エントロピー復号ユニット１５０はまた、ラン値を復号し（２６６）、インデックスとラン値とをパレットベース復号ユニット１６５に与え得る。パレットベース復号ユニット１６５は、ピクセルと、ラン中のピクセルの各々との値を、インデックス値に対応する、パレットのピクセル値に等しく設定すればよい（２６８）。
【０２６１】
[0201]別の例として、復号データは、インデックス値をもたないラン値であってよい。このような、インデックス値をもたないラン値は、上方コピーモードを使用してコーディングされたピクセルの数を示し得る。この場合、エントロピー復号ユニット１５０はラン値をパレットベース復号ユニット１６５に与えればよく、これは、ラン中のピクセルの各々についての値を、それぞれの、上に隣接するピクセル値の値に等しく設定し得る。
【０２６２】
[0202]別の例として、復号データは、パレットのサイズに等しいインデックス値であり得る。この場合、エントロピー復号ユニット１５０は、ピクセル値の第１の部分に対応する第１の値をゴロムライス復号することができる（２７２）。エントロピー復号ユニット１５０は、ピクセル値の第２の部分に対応する第２の値に、パラメータ３を伴う指数ゴロム復号をすることもできる（２７４）。上述したように、エントロピー復号ユニット１５０は代替として、第２の値の、打切りパラメータ３を伴う指数ゴロム復号を実施するために、最大量子化エスケープピクセル値を決定し得る。エントロピー復号ユニット１５０（またはパレットベース復号ユニット１６５）は次いで、ピクセル値を再生するために、第１の部分と第２の部分とを連結し得る（２７６）。
【０２６３】
[0203]ビデオデコーダ３０は、このプロセス（たとえば、ステップ２６６および２６８からなるシーケンス、ステップ２７０、またはステップ２７２〜２７６からなるシーケンスのうちの１つ）を、パレットモードコード化ブロックの各ピクセルについて実施することができる。
【０２６４】
[0204]このように、図６の方法は、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを復号することを含む方法の例を表し、指数ゴロムコードワードを復号することは、パラメータ３を伴う指数ゴロム復号を使用して、指数ゴロムコードワードを復号することと、エスケープピクセルについての値を使用してブロックを復号することとを備える。
【０２６５】
[0205]図６の方法は、ゴロムライスコーディングを使用してエスケープピクセルの値の第１の部分と、指数ゴロムコーディングを使用してエスケープピクセルの値の第２の部分の両方を復号することを含むが、他の例では、エスケープピクセルについての値全体が、指数ゴロムコーディングのみを使用して（たとえば、指数ゴロムコーディング用にパラメータ３を使用して、コーディングされ得ることを理解されたい。
【０２６６】
[0206]図７は、本開示の技法による、ビデオデータのブロックを復号するための別の例示的な方法を示すフローチャートである。図７の方法は、（たとえば、図３に示される）ビデオデコーダ３０およびその構成要素によって実施され得る。概して、図７の方法は、実質的に図６の方法に従う。ただし、図７では、インデックス値がパレットサイズに等しいとき、パレットベース復号ユニット１６５は、ピクセルをエスケープピクセルとして復号し、具体的には、パラメータ３を伴う指数ゴロムコーディングを使用して、エスケープピクセルについての値を復号し得る（２７８）。
【０２６７】
[0207]このように、図７の方法は、ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを復号することを含む方法の例を表し、指数ゴロムコードワードを復号することは、パラメータ３を伴う指数ゴロム復号を使用して、指数ゴロムコードワードを復号することと、エスケープピクセルについての値を使用してブロックを復号することとを備える。
【０２６８】
[0208]例によっては、本明細書で説明した技法のうちのいずれかの、いくつかの動作またはイベントは、異なる順序で実施され得、追加、マージ、または完全に除外され得る（たとえば、すべての説明した動作またはイベントが、本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、動作またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。加えて、本開示のいくつかの態様は、明確にするために、単一のモジュールまたはユニットによって実施されるものとして記載されているが、本開示の技法は、ビデオコーダに関連付けられたユニットまたはモジュールの組合せによって実施される場合があることを理解されたい。
【０２６９】
[0209]本開示のいくつかの態様について、説明のために開発中のＨＥＶＣ規格に関して説明した。ただし、本開示で説明する技法は、他の規格またはまだ開発されていないプロプライエタリなビデオコーディング処理を含む、他のビデオコーディング処理にとって有用であり得る。
【０２７０】
[0210]上で説明された技法は、ビデオエンコーダ２０（図１および図２）および／またはビデオデコーダ３０（図１および図３）によって実施されてよく、その両方が全般にビデオコーダと呼ばれ得る。同様に、ビデオコーディングは、適用可能なとき、ビデオ符号化またはビデオ復号を指すことがある。
【０２７１】
[0211]技法の様々な態様の特定の組合せが上述されたが、これらの組合せは、本開示に記載された技法の例を単に示すために提供される。したがって、本開示の技法は、これらの例示的な組合せに限定されるべきでなく、本開示で説明した技法の様々な態様の任意の想起可能な組合せを包含し得る。
【０２７２】
[0212]１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれの任意の組合せで実施され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つもしくは複数のコンピュータまたは１つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０２７３】
[0213]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【０２７４】
[0214]命令は、１つもしくは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の等価な集積回路もしくはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造または本明細書で説明した技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用ハードウェアおよび／またはソフトウェアモジュール内で提供され得る。また、本技法は、１つまたは複数の回路または論理要素において完全に実装され得る。
【０２７５】
[0215]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、様々な構成要素、モジュール、またはユニットについて、開示する技法を実施するように構成されたデバイスの機能的態様を強調するように説明したが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされるか、または相互動作するハードウェアユニットの集合によって提供され得る。
【０２７６】
[0216]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内にある。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号する方法であって、
ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを復号することと、ここにおいて、前記指数ゴロムコードワードを復号することは、パラメータ３を伴う指数ゴロム復号を使用して、前記指数ゴロムコードワードを復号することを備える、
前記エスケープピクセルについての前記値を使用して前記ブロックを復号することとを備える方法。
［Ｃ２］
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定することと、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定することとをさらに備え、
前記指数ゴロムコードワードを復号することは、前記最大量子化値を使用して前記指数ゴロムコードワードを復号することを備える、Ｃ１に記載の方法。
［Ｃ３］
前記最大量子化値を決定することは、前記量子化ステップサイズ値のみに基づいて前記最大量子化値を決定することを備える、Ｃ２に記載の方法。
［Ｃ４］
前記最大量子化値を決定することは、前記量子化ステップサイズ値、量子化スケール値、右シフトオフセット値、および右シフトパラメータ値に基づいて前記最大量子化値を決定することを備え、前記方法は、ルックアップテーブルから、前記量子化スケール値と、前記右シフトオフセット値と、前記右シフトパラメータ値とを決定することをさらに備える、Ｃ２に記載の方法。
［Ｃ５］
前記最大量子化値を決定することは、クリッピング演算を実施せずに前記最大量子化値を決定することを備える、Ｃ４に記載の方法。
［Ｃ６］
前記最大量子化値を決定することは、除算演算を実施せずに前記最大量子化値を計算することを備える、Ｃ２に記載の方法。
［Ｃ７］
前記最大量子化値を決定することは、前記量子化パラメータによってインデックス付けされたルックアップテーブルから前記最大量子化値を取り出すことを備える、Ｃ２に記載の方法。
［Ｃ８］
前記エスケープピクセルを含む色成分に基づいて、前記量子化パラメータを決定することをさらに備える、Ｃ７に記載の方法。
［Ｃ９］
前記値の前記少なくとも一部分が前記値の第２の部分を備え、前記方法は、
前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを復号することと、
前記エスケープピクセルについての前記値を生じるために、前記第１の部分と前記第２の部分とを組み合わせることとをさらに備える、Ｃ１に記載の方法。
［Ｃ１０］
ビデオデータを復号するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
ビデオデコーダとを備え、前記ビデオデコーダが、
ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを復号することと、ここにおいて、前記ビデオデコーダは、パラメータ３を伴う指数ゴロム復号を使用して、前記指数ゴロムコードワードを復号するように構成される、
前記エスケープピクセルについての前記値を使用して前記ブロックを復号することとを行うように構成される、デバイス。
［Ｃ１１］
前記ビデオデコーダは、
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定し、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定するようにさらに構成され、
前記ビデオデコーダは、前記最大量子化値を使用して、前記指数ゴロムコードワードを復号するように構成される、Ｃ１０に記載のデバイス。
［Ｃ１２］
前記ビデオデコーダは、前記量子化ステップサイズ値のみに基づいて、前記最大量子化値を決定するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１３］
前記ビデオデコーダは、前記量子化ステップサイズ値、量子化スケール値、右シフトオフセット値、および右シフトパラメータ値に基づいて前記最大量子化値を決定するように構成され、前記ビデオデコーダは、ルックアップテーブルから、前記量子化スケール値と、前記右シフトオフセット値と、前記右シフトパラメータ値とを決定するようにさらに構成される、Ｃ１１に記載のデバイス。
［Ｃ１４］
前記ビデオデコーダは、クリッピング演算を実施せずに前記最大量子化値を決定するように構成される、Ｃ１３に記載のデバイス。
［Ｃ１５］
前記ビデオデコーダは、除算演算を実施せずに前記最大量子化値を計算するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１６］
前記ビデオデコーダは、前記量子化パラメータによってインデックス付けされたルックアップテーブルから前記最大量子化値を取り出すように構成される、Ｃ１１に記載のデバイス。
［Ｃ１７］
前記値の前記少なくとも一部分は前記値の第２の部分を備え、前記ビデオデコーダは、
前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを復号し、
前記エスケープピクセルについての前記値を生じるために、前記第１の部分と前記第２の部分とを組み合わせるようにさらに構成される、Ｃ１０に記載のデバイス。
［Ｃ１８］
ビデオデータを復号するためのデバイスであって、
ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の少なくとも一部分を表す指数ゴロムコードワードを復号するための手段と、ここにおいて、前記指数ゴロムコードワードを復号するための前記手段は、パラメータ３を伴う指数ゴロム復号を使用して、前記指数ゴロムコードワードを復号するための手段を備える、
前記エスケープピクセルについての前記値を使用して前記ブロックを復号するための手段とを備えるデバイス。
［Ｃ１９］
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定するための手段と、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定するための手段とをさらに備え、
前記指数ゴロムコードワードを復号するための前記手段は、前記最大量子化値を使用して前記指数ゴロムコードワードを復号するための手段を備える、Ｃ１８に記載のデバイス。
［Ｃ２０］
前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを復号するための手段と、
前記エスケープピクセルについての前記値を生じるために、前記第１の部分と前記第２の部分とを組み合わせるための手段とをさらに備える、Ｃ１８に記載のデバイス。
［Ｃ２１］
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、１つまたは複数のプロセッサに、
前記エスケープピクセルについての前記値の第２の部分を表す指数ゴロムコードワードを復号ことと、ここにおいて、前記プロセッサに前記指数ゴロムコードワードを復号させる前記命令は、前記プロセッサに、パラメータ３を伴う指数ゴロム復号を使用して前記指数ゴロムコードワードを復号させる命令を備える、
前記エスケープピクセルについての前記値を使用して前記ブロックを復号することとを行わせる、コンピュータ可読記憶媒体。
［Ｃ２２］
前記プロセッサに、
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定することと、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定することとを行わせる命令をさらに備え、
前記プロセッサに前記指数ゴロムコードワードを復号させる前記命令は、前記プロセッサに、前記最大量子化値を使用して前記指数ゴロムコードワードを復号させる命令を備える、Ｃ２１に記載のコンピュータ可読記憶媒体。
［Ｃ２３］
前記値の前記少なくとも一部分は前記値の第２の部分を備え、前記プロセッサに、
ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値の第１の部分を表すゴロムライスコードワードを復号することと、
前記エスケープピクセルについての前記値を生じるために、前記第１の部分と前記第２の部分とを組み合わせることとを行わせる命令をさらに備える、Ｃ２１に記載のコンピュータ可読記憶媒体。
［Ｃ２４］
ビデオデータを符号化する方法であって、
ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定することと、
前記エスケープピクセルについての前記値の少なくとも一部分を表す指数ゴロムコードワードを符号化することと、ここにおいて、前記指数ゴロムコードワードを符号化することは、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムを符号化することを備える、を備える方法。
［Ｃ２５］
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定することと、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定することとをさらに備え、
前記指数ゴロムコードワードを符号化することは、前記最大量子化値を使用して前記指数ゴロムコードワードを符号化することを備える、Ｃ２４に記載の方法。
［Ｃ２６］
前記最大量子化値を決定することは、前記量子化ステップサイズ値のみに基づいて前記最大量子化値を決定することを備える、Ｃ２５に記載の方法。
［Ｃ２７］
前記最大量子化値を決定することは、前記量子化ステップサイズ値、量子化スケール値、右シフトオフセット値、および右シフトパラメータ値に基づいて前記最大量子化値を決定することを備え、前記方法は、ルックアップテーブルからの、前記量子化スケール値、前記右シフトオフセット値、および前記右シフトパラメータ値を表す値を符号化することをさらに備える、Ｃ２５に記載の方法。
［Ｃ２８］
前記最大量子化値を決定することは、クリッピング演算を実施せずに前記最大量子化値を決定することを備える、Ｃ２７に記載の方法。
［Ｃ２９］
前記最大量子化値を決定することは、除算演算を実施せずに前記最大量子化値を計算することを備える、Ｃ２５に記載の方法。
［Ｃ３０］
前記最大量子化値を決定することは、前記量子化パラメータによってインデックス付けされたルックアップテーブルから前記最大量子化値を取り出すことを備える、Ｃ２５に記載の方法。
［Ｃ３１］
前記エスケープピクセルを含む色成分に基づいて、前記量子化パラメータを決定することをさらに備える、Ｃ３０に記載の方法。
［Ｃ３２］
前記少なくとも一部分は前記値の第２の部分を備え、前記方法は、前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを符号化することをさらに備える、Ｃ２４に記載の方法。
［Ｃ３３］
ビデオデータを符号化するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
ビデオエンコーダとを備え、前記ビデオエンコーダが、
ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定することと、
前記エスケープピクセルについての前記値の少なくとも一部分を表す指数ゴロムコードワードを符号化することと、ここにおいて、前記ビデオエンコーダは、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムコードワードを符号化するように構成される、を行うように構成される、デバイス。
［Ｃ３４］
前記ビデオエンコーダは、
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定し、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定するようにさらに構成され、
前記ビデオエンコーダは、前記最大量子化値を使用して、前記指数ゴロムコードワードを符号化するように構成される、Ｃ３３に記載のデバイス。
［Ｃ３５］
前記ビデオエンコーダは、前記量子化ステップサイズ値のみに基づいて、前記最大量子化値を決定するように構成される、Ｃ３３に記載のデバイス。
［Ｃ３６］
前記ビデオエンコーダは、前記量子化ステップサイズ値、量子化スケール値、右シフトオフセット値、および右シフトパラメータ値に基づいて前記最大量子化値を決定するように構成され、前記ビデオエンコーダは、ルックアップテーブルからの、前記量子化スケール値、前記右シフトオフセット値、および前記右シフトパラメータ値を表す値を符号化するようにさらに構成される、Ｃ３３に記載のデバイス。
［Ｃ３７］
前記ビデオエンコーダは、クリッピング演算を実施せずに前記最大量子化値を決定するように構成される、Ｃ３７に記載のデバイス。
［Ｃ３８］
前記ビデオエンコーダは、除算演算を実施せずに前記最大量子化値を計算するように構成される、Ｃ３３に記載のデバイス。
［Ｃ３９］
前記ビデオエンコーダは、前記量子化パラメータによってインデックス付けされたルックアップテーブルから前記最大量子化値を取り出すように構成される、Ｃ３３に記載のデバイス。
［Ｃ４０］
前記少なくとも一部分は前記値の第２の部分を備え、前記ビデオエンコーダは、前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを符号化するようにさらに構成される、Ｃ３３に記載のデバイス。
［Ｃ４１］
ビデオデータを符号化するためのデバイスであって、
ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定するための手段と、
前記エスケープピクセルについての前記値の第２の部分を表す指数ゴロムコードワードを符号化するための手段と、ここにおいて、前記指数ゴロムコードワードを符号化するための前記手段は、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムコードワードを符号化するための手段を備える、を備えるデバイス。
［Ｃ４２］
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定するための手段と、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定するための手段とをさらに備え、
前記指数ゴロムコードワードを符号化するための前記手段は、前記最大量子化値を使用して前記指数ゴロムコードワードを符号化するための手段を備える、Ｃ４１に記載のデバイス。
［Ｃ４３］
前記少なくとも一部分は第２の部分を備え、前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを符号化するための手段をさらに備える、Ｃ４１に記載のデバイス。
［Ｃ４４］
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、１つまたは複数のプロセッサに、
ビデオデータのパレットモードコード化ブロックのエスケープピクセルについての値を決定することと、
前記エスケープピクセルについての前記値の第２の部分を表す指数ゴロムコードワードを符号化することと、ここにおいて、前記プロセッサに前記指数ゴロムコードワードを符号化させる前記命令は、前記プロセッサに、パラメータ３を伴う指数ゴロム符号化を使用して前記指数ゴロムコードワードを符号化させる命令を備える、を行わせるコンピュータ可読記憶媒体。
［Ｃ４５］
前記プロセッサに、
前記パレットモードコード化ブロック用の量子化パラメータを使用して、前記パレットモードコード化ブロック用の量子化ステップサイズ値を決定することと、
前記量子化ステップサイズ値に基づいて、前記パレットモードコード化ブロックの前記エスケープピクセル用の最大量子化値を決定することとを行わせる命令をさらに備え、
前記プロセッサに前記指数ゴロムコードワードを符号化させる前記命令は、前記プロセッサに、前記最大量子化値を使用して前記指数ゴロムコードワードを符号化させる命令を備える、Ｃ４４に記載のコンピュータ可読記憶媒体。
［Ｃ４６］
前記少なくとも一部分は、前記エスケープピクセルについての前記値の第２の部分を備え、前記プロセッサに、前記エスケープピクセルについての前記値の第１の部分を表すゴロムライスコードワードを符号化させる命令をさらに備える、Ｃ４４に記載のコンピュータ可読記憶媒体。
【図１】
0006710691.tif 000040
【図２】
0006710691.tif 000041
【図３】
0006710691.tif 000042
【図４】
0006710691.tif 000043
【図５】
0006710691.tif 000044
【図６】
0006710691.tif 000045
【図７】
0006710691.tif 000046