(57)【要約】      （修正有）【課題】ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための値を量子化する方法を提供する。【解決手段】ビデオデータを復号するための方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータの値が０よりも小さいと決定することと、右シフトパラメータの値が０よりも小さいことに基づいて左シフトパラメータの値を右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することを含む。【選択図】図６
2020039138.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、前記方法は、
ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、
前記右シフトパラメータのための前記値が０よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、
前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化することと
を備える、方法。
【請求項２】
前記ブロックのための量子化パラメータ（ｑＰ）の値に基づいて前記右シフトパラメータのための前記値を決定することを更に備える、請求項１に記載の方法。
【請求項３】
前記エスケープモードコード化画素を含む色成分の色成分インデックス（ｃＩｄｘ）に基づいてｑＰの前記値を決定することを更に備える、請求項２に記載の方法。
【請求項４】
前記右シフトパラメータのための前記値を決定することが、
量子化比（ｑＰｐｅｒ）を式ｑＰｐｅｒ＝ｑＰ／６に従って計算することと、ここにおいて、ｑＰが前記ｑＰの前記値を表す、
前記右シフトパラメータのための前記値（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ）を式ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ＝６-ｑＰｐｅｒに従って計算することと
を備える、請求項２に記載の方法。
【請求項５】
前記エスケープモードコード化画素を逆量子化することが、前記エスケープモードコード化画素のための値（ｄｅＱｕａｎｔＥｓｐＶａｌｕｅ）を以下の式に従って計算することを備え、
deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,   ここにおいて、ＥｓｐＶａｌｕｅが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、ｉｎｖＱｕａｎｔＳｃａｌｅが逆量子化スケール値のアレイを表し、ｑＰｒｅｍが量子化パラメータ剰余値を表し、ｉｎｖＱｕａｎｔＬｅｆｔＳｈｉｆｔが前記左シフトパラメータの前記値を表し、＜＜がビット単位左シフト演算子を表す、
請求項１に記載の方法。
【請求項６】
ｉｎｖＱｕａｎｔＳｃａｌｅが｛４０，４５，５１，５７，６４，７２｝を備える、請求項５に記載の方法。
【請求項７】
前記パレットモードコード化ブロックのためのパレットを復号することと、
前記パレットを使用して前記ブロックの少なくとも１つの他の画素を復号することと、  前記エスケープモードコード化画素と前記復号された少なくとも１つの他の画素とを使用して前記ブロックを再構成することと
を更に備える、請求項１に記載の方法。
【請求項８】
ビデオデータを復号するための機器であって、前記機器は、
ビデオデータを記憶するように構成されたメモリと、
ビデオデコーダと
を備え、前記ビデオデコーダは、
前記ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、
前記右シフトパラメータのための前記値が０よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、
前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化することと
を行うように構成された、
機器。
【請求項９】
前記ビデオデコーダが、前記ブロックのための量子化パラメータ（ｑＰ）の値に基づいて前記右シフトパラメータのための前記値を決定するように更に構成された、請求項８に記載の機器。
【請求項１０】
前記ビデオデコーダが、前記エスケープモードコード化画素を含む色成分の色成分インデックス（ｃＩｄｘ）に基づいて前記ｑＰの前記値を決定するように更に構成された、請求項９に記載の機器。
【請求項１１】
前記右シフトパラメータのための前記値を決定するために、前記ビデオデコーダは、  量子化比（ｑＰｐｅｒ）を式ｑＰｐｅｒ＝ｑＰ／６に従って計算することと、ここにおいて、ｑＰが前記ｑＰの前記値を表す、
前記右シフトパラメータのための前記値（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ）を式ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ＝６-ｑＰｐｅｒに従って計算することと
を行うように構成された、請求項９に記載の機器。
【請求項１２】
前記エスケープモードコード化画素を逆量子化するために、前記ビデオデコーダが、前記エスケープモードコード化画素のための値（ｄｅＱｕａｎｔＥｓｐＶａｌｕｅ）を以下の式に従って計算するように構成され、
deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,   ここにおいて、ＥｓｐＶａｌｕｅが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、ｉｎｖＱｕａｎｔＳｃａｌｅが逆量子化スケール値のアレイを表し、ｑＰｒｅｍが量子化パラメータ剰余値を表し、ｉｎｖＱｕａｎｔＬｅｆｔＳｈｉｆｔが前記左シフトパラメータの前記値を表し、＜＜がビット単位左シフト演算子を表す、
請求項８に記載の機器。
【請求項１３】
ｉｎｖＱｕａｎｔＳｃａｌｅが｛４０，４５，５１，５７，６４，７２｝を備える、請求項１２に記載の機器。
【請求項１４】
前記ビデオデコーダが、
前記パレットモードコード化ブロックのためのパレットを復号することと、
前記パレットを使用して前記ブロックの少なくとも１つの他の画素を復号することと、  前記エスケープモードコード化画素と復号された前記少なくとも１つの他の画素とを使用して前記ブロックを再構成することと
を行うように更に構成された、請求項８に記載の機器。
【請求項１５】
前記機器が、
集積回路、
マイクロプロセッサ、又は
ワイヤレス通信機器
のうちの少なくとも１つを備える、請求項８に記載の機器。
【請求項１６】
ビデオデータを復号するための機器であって、前記機器は、
ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定するための手段と、
前記右シフトパラメータのための前記値が０よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定するための手段と、
前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化するための手段と
を備える、機器。
【請求項１７】
前記ブロックのための量子化パラメータ（ｑＰ）の値に基づいて前記右シフトパラメータのための前記値を決定するための手段を更に備える、請求項１６に記載の機器。
【請求項１８】
前記エスケープモードコード化画素を含む色成分の色成分インデックス（ｃＩｄｘ）に基づいて前記ｑＰの前記値を決定するための手段を更に備える、請求項１７に記載の機器。
【請求項１９】
前記右シフトパラメータのための前記値を決定するための前記手段が、
量子化比（ｑＰｐｅｒ）を式ｑＰｐｅｒ＝ｑＰ／６に従って計算するための手段と、ここにおいて、ｑＰが前記ｑＰの前記値を表す、
前記右シフトパラメータのための前記値（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ）を式ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ＝６-ｑＰｐｅｒに従って計算するための手段と
を備える、請求項１７に記載の機器。
【請求項２０】
前記エスケープモードコード化画素を逆量子化するための前記手段が、前記エスケープモードコード化画素のための値（ｄｅＱｕａｎｔＥｓｐＶａｌｕｅ）を以下の式に従って計算するための手段を備え、
deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,   ここにおいて、ＥｓｐＶａｌｕｅが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、ｉｎｖＱｕａｎｔＳｃａｌｅが逆量子化スケール値のアレイを表し、ｑＰｒｅｍが量子化パラメータ剰余値を表し、ｉｎｖＱｕａｎｔＬｅｆｔＳｈｉｆｔが前記左シフトパラメータの前記値を表し、＜＜がビット単位左シフト演算子を表す、
請求項１６に記載の機器。
【請求項２１】
ｉｎｖＱｕａｎｔＳｃａｌｅが｛４０，４５，５１，５７，６４，７２｝を備える、請求項２０に記載の機器。
【請求項２２】
前記パレットモードコード化ブロックのためのパレットを復号するための手段と、
前記パレットを使用して前記ブロックの少なくとも１つの他の画素を復号するための手段と、
前記エスケープモードコード化画素と前記復号された少なくとも１つの他の画素とを使用して前記ブロックを再構成するための手段と
を更に備える、請求項１６に記載の機器。
【請求項２３】
実行されたとき、ビデオデータを復号するための機器のプロセッサに、
前記ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、
前記右シフトパラメータのための前記値が０よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、
前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項２４】
前記プロセッサに、前記ブロックのための量子化パラメータ（ｑＰ）の値に基づいて前記右シフトパラメータのための前記値を決定させる命令を更に備える、請求項２３に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記プロセッサに、前記エスケープモードコード化画素を含む色成分の色成分インデックス（ｃＩｄｘ）に基づいて前記ｑＰの前記値を決定させる命令を更に備える、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２６】
前記プロセッサに前記右シフトパラメータのための前記値を決定させる前記命令は、前記プロセッサに、
量子化比（ｑＰｐｅｒ）を式ｑＰｐｅｒ＝ｑＰ／６に従って計算することと、ここにおいて、ｑＰが前記ｑＰの前記値を表す、
前記右シフトパラメータのための前記値（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ）を式ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ＝６-ｑＰｐｅｒに従って計算することと
を行わせる命令を備える、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記プロセッサに前記エスケープモードコード化画素を逆量子化させる前記命令が、前記プロセッサに、前記エスケープモードコード化画素のための値（ｄｅＱｕａｎｔＥｓｐＶａｌｕｅ）を以下の式に従って計算させる命令を備え、
deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,   ここにおいて、ＥｓｐＶａｌｕｅが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、ｉｎｖＱｕａｎｔＳｃａｌｅが逆量子化スケール値のアレイを表し、ｑＰｒｅｍが量子化パラメータ剰余値を表し、ｉｎｖＱｕａｎｔＬｅｆｔＳｈｉｆｔが前記左シフトパラメータの前記値を表し、＜＜がビット単位左シフト演算子を表す、
請求項２３に記載のコンピュータ可読記憶媒体。
【請求項２８】
ｉｎｖＱｕａｎｔＳｃａｌｅが｛４０，４５，５１，５７，６４，７２｝を備える、請求項２７に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記プロセッサに、
前記パレットモードコード化ブロックのためのパレットを復号することと、
前記パレットを使用して前記ブロックの少なくとも１つの他の画素を復号することと、  前記エスケープモードコード化画素と前記復号された少なくとも１つの他の画素とを使用して前記ブロックを再構成することと
を行わせる命令を更に備える、請求項２３に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、その全体が参照により本明細書に組み込まれる、２０１５年１月３１日に出願された米国仮出願第６２／１１０，５１９号の利益を主張する。
【０００２】
[0002]本開示は、ビデオコード化に関し、より詳細には、パレットモードを使用してビデオデータをコード化することに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、所謂「スマートフォン」、ビデオ遠隔会議機器、ビデオストリーミング機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、ＭＰＥＧ-２、ＭＰＥＧ-４、ＩＴＵ-Ｔ  Ｈ．２６３、ＩＴＵ-Ｔ  Ｈ．２６４／ＭＰＥＧ-４，Ｐａｒｔ  １０，高度ビデオコード化（ＡＶＣ：Advanced Video Coding）、高効率ビデオコード化（ＨＥＶＣ：High Efficiency Video Coding）とも呼ばれるＩＴＵ-Ｔ  Ｈ．２６５によって定義された規格及びそのような規格の拡張に記載されているビデオコード化技法などのビデオコード化技法を実装する。ビデオ機器は、そのようなビデオコード化技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号及び／又は記憶し得る。
【０００４】
[0004]ビデオコード化技法は、ビデオシーケンスに固有の冗長性を低減又は除去するための空間（イントラピクチャ）予測及び／又は時間（インターピクチャ）予測を含む。ブロックベースのビデオコード化では、ビデオスライス（例えば、ビデオピクチャ又はビデオピクチャの一部分）が、コード化ツリー単位（ＣＴＵ：coding tree unit）、コード化単位（ＣＵ：coding unit）及び／又はコード化ノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化（Ｐ又はＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測又は他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間予測又は時間予測は、コード化されるべきブロックのための予測ブロックを生じる。残差データは、コード化されるべき元のブロックと予測ブロックとの間の画素差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコード化モードと残差データとに従って符号化される。更なる圧縮のために、残差データは、画素領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。被量子化変換係数は、最初は２次元アレイで構成され、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコード化が適用され得る。
【発明の概要】
【０００６】
[0006]概して、本開示は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための値を量子化することに関係する技法について説明する。特に、幾つかの事例では、従来のエスケープモードコード化技法は、２進値が負値によって右シフトされるべきである幾つかの状況になった。負値によるビット単位シフト演算は、概して、エラーを生じ得る定義されていない演算である。本開示の技法は、そのようなエラーが生じるとき、それらを補正するために使用され得る。特に、本開示の技法は、シフト値を負から正に変更し、ビット単位右シフト演算の代わりにビット単位左シフト演算を実行するために使用され得る。
【０００７】
[0007]一例では、方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、右シフトパラメータのための元の値が０よりも小さいことに基づいて、左シフトパラメータのための値を、元の値の絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを含む。
【０００８】
[0008]別の例では、ビデオデータを復号するための機器は、ビデオデータを記憶するように構成されたメモリと、ビデオデコーダとを含み、ビデオデコーダは、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、右シフトパラメータのための値が０よりも小さいことに基づいて、左シフトパラメータのための値を、右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを行うように構成される。
【０００９】
[0009]別の例では、ビデオデータを復号するための機器は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定するための手段と、右シフトパラメータのための値が０よりも小さいことに基づいて、左シフトパラメータのための値を、右シフトパラメータの絶対値に等しい絶対値を有する正値に設定するための手段と、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化するための手段とを含む。
【００１０】
[0010]別の例では、コンピュータ可読記憶媒体は、実行されたとき、プログラマブルプロセッサに、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、右シフトパラメータのための値が０よりも小さいことに基づいて、左シフトパラメータのための値を、右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを行わせる命令を用いて符号化される。
【００１１】
[0011]別の例では、ビデオデータを符号化する方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための左シフトパラメータのための値が０よりも小さいと決定することと、左シフトパラメータのための値が０よりも小さいことに基づいて、右シフトパラメータのための値を、左シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を量子化することとを含む。
【００１２】
[0012]１つ又は複数の例の詳細が添付の図面及び以下の説明に記載される。他の特徴、目的、及び利点は、説明及び図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】[0013]パレットモードコード化ブロック中のエスケープ画素をコード化するための本開示の技法を利用し得る例示的なビデオ符号化及び復号システムを示すブロック図。
【図２】[0014]本開示の技法による、パレットモードコード化ブロック中のエスケープ画素を符号化するための技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図３】[0015]本開示の技法による、パレットモードコード化ブロック中のエスケープ画素を復号するための技法を実装し得るビデオデコーダの一例を示すブロック図。
【図４】[0016]本開示の技法による、ビデオデータのブロックを符号化するための例示的な方法を示すフローチャート。
【図５】[0017]本開示の技法による、ビデオデータのブロックを復号するための例示的な方法を示すフローチャート。
【図６】[0018]本開示の技法による、パレット復号ユニットがビデオデータのパレットモード符号化ブロックの被量子化エスケープ画素値を逆量子化し得る例示的な技法を示すフローチャート。
【発明を実施するための形態】
【００１４】
[0019]概して、本出願は、ビデオコンテンツ、特にパレットモードコード化を用いたスクリーンコンテンツのコード化をサポートするための技法について説明する。より詳細には、これらの技法は、（「パレットコード化」とも呼ばれる）パレットモードコード化のためのエスケープ画素コード化に関する。
【００１５】
[0020]旧来のビデオコード化では、画像は、連続トーンであり空間的に滑らかであると仮定される。これらの仮定に基づいて、ブロックベース変換、フィルタ処理などの様々なツールが開発されており、そのようなツールは、自然コンテンツビデオに対して良好な性能を示している。しかしながら、リモートデスクトップ、協調作業及びワイヤレス表示器のような適用例では、コンピュータ生成スクリーンコンテンツ（例えば、テキスト又はコンピュータグラフィックスなど）が、圧縮されるべき主要なコンテンツであり得る。このタイプのコンテンツは、離散トーンを有し、鋭いラインと高コントラストオブジェクト境界とを特徴とする傾向がある。連続トーン及び滑らかさの仮定はスクリーンコンテンツにもはや適用されないことがあり、従って、旧来のビデオコード化技法は、スクリーンコンテンツを含むビデオデータを圧縮するための効率的な方法でないことがある。
【００１６】
[0021]スクリーンコンテンツビデオの特性に基づいて、パレットコード化がスクリーンコンテンツコード化（ＳＣＣ）効率を改善するために導入され、Ｇｕｏら、「Palette Mode for Screen Content Coding」、ＩＴＵ-Ｔ  ＳＧ１３  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のＪＣＴ-ＶＣ、第１３回会議、ＪＣＴＶＣ-Ｍ０３２３、仁川、韓国、２０１３年４月１８日〜２６日において最初に提案された。詳細には、パレットコード化は、ＳＣＣでは１つのコード化単位（ＣＵ）内の色が通常数個のピーク値に集中するということに基づいて、反復的な画素値を圧縮するために、ルックアップテーブル、即ち、カラーパレットを導入する。特定のＣＵのためのパレットを仮定すれば、ＣＵ内の画素はパレットインデックスにマッピングされる。第２の段階では、インデックスブロックの繰返しパターンを効果的に圧縮するために、有効コピーフロムレフトランレングス方法が提案されている。後で、Ｇｕｏら、「Non-RCE3: Modified Palette Mode for Screen Content Coding」、ＩＴＵ-Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のＪＣＴ-ＶＣ、ＪＣＴＶＣ-Ｎ０２４９、第１４回会議、ウィーン、オーストリア、２０１３年７月２５日〜８月２日において、パレットインデックスコード化モードが、ランレングスコード化を用いたコピーフロムレフトとコピーフロムアバブの両方に対して一般化された。スクリーンコンテンツの視覚的品質に莫大な悪影響を及ぼす、シャープエッジを不鮮明にすることを回避するために、パレットコード化のために変換プロセスが呼び出されないことに留意されたい。
【００１７】
[0022]パレットは、｛インデックス，画素値｝ペアを記憶するデータ構造である。ビデオエンコーダは、例えば、現在ＣＵ中の画素値のヒストグラムに基づいてパレットを決定し得る。例えば、ヒストグラム中のピーク値がパレットに追加され得、低頻度画素値がパレット中に含まれる必要はない。パレットサイズは、０から、３１に等しいｍａｘ＿ｐａｌｅｔｔｅ＿ｓｉｚｅまでの範囲にあるように制限され得る。
【００１８】
[0023]ＳＣＣの場合、１つのスライス内のＣＵブロックが多くの優勢色を共有し得る。従って、（ＣＵ復号順序での）前のパレットモードＣＵのパレットを参照として使用して、現在ブロックのパレットを予測することが可能である。詳細には、参照パレット中の画素値が現在パレットによって再利用されるか否かを示すために、０〜１のバイナリベクトルが信号伝達され得る。一例として、以下の表１及び表２では、参照パレットが６つの項目を有すると仮定される。ｖ０、ｖ２、ｖ３、ｖ４及びｖ５が現在パレット中で再利用され、ｖ１が再利用されないことを示すベクトル（１，０，１，１，１，１）が、現在パレットを用いて信号伝達される。現在パレットが参照パレットから予測可能でない色を含んでいる場合、予測されない色の数がコード化され、次いで、これらの画素値（例えば、ルーマ値又はクロマ値）は直接信号伝達される。例えば、表１及び表２では、ｕ０及びｕ１がビットストリームに直接信号伝達される。
【００１９】
【表１】
2020039138.tif 000003
【００２０】
【表２】
2020039138.tif 000004
【００２１】
[0024]パレットモードを用いてコード化されるブロックの場合、パレットは、前にパレットコード化されたブロックのパレットエントリから予測され得、新しいエントリとして明示的に信号伝達され得るか、又は前にコード化されたブロックのパレットが完全に再利用され得る。後者の場合はパレット共有と呼ばれ、前のブロックのパレット全体が変更なしに再利用されることを示すために、フラグｐａｌｅｔｔｅ＿ｓｈａｒｅ＿ｆｌａｇが信号伝達される。参照パレット及び現在パレットの例が、上記の表１及び表２中に示されている。特に、表１は例示的な参照パレットを示し、表２は表１の参照パレットから予測され得る例示的な現在パレットを示す。
【００２２】
[0025]現在のＳＣＭ３．０参照ソフトウェアでは、規範的観点からのパレットコード化の２つの主要な態様は、パレットのコード化と、パレットモードでコード化されているブロック中の各サンプルのためのパレットインデックスのコード化とである。パレットインデックスのコード化は、２つの主要なモード、「インデックス」モード及び「コピーアバブ」モードを使用して実行される。これは、ｐａｌｅｔｔｅ＿ｍｏｄｅフラグをコード化することによって信号伝達される。「インデックス」モードはまた、エスケープサンプル、即ち、パレットに属さないサンプルを示すために使用される。現在の設計では、「コピーアバブ」モードは、パレットブロックの最初の行のために可能でない。更に、「コピーアバブ」モードは、別の「コピーアバブ」モードに後続しないことがある。これらの場合、「インデックス」モードが推論される。
【００２３】
[0026]詳細には、パレットモードの場合、ＣＵ中の画素が、以下のように水平／垂直スネーク走査順序で符号化される。  
１．「インデックス」モード：このモードでは、１つのパレットインデックスが最初に信号伝達される。インデックスがパレットのサイズに等しい場合、これは、サンプルがエスケープサンプルであることを示す。この場合、各構成要素（例えば、ルーマ及びクロマ）のためのサンプル値又は被量子化サンプル値が信号伝達される。例えば、パレットサイズが４である場合、非エスケープサンプルについて、パレットインデックスは範囲［０，３］中にある。この場合、４のインデックス値がエスケープサンプルを示す。インデックスが非エスケープサンプルを示す場合、ランレングスを示す非負値ｎ-１によって、同じインデックスを共有する走査順序での後続のサンプルの数を指定するランレングスが信号伝達され、これは、現在画素を含む後続のｎ個の画素が、最初に信号伝達された画素インデックスと同じ画素インデックスを有することを意味する。  
２．「コピーフロムアバブ」ランモード（ＣＡ）：このモードでは、現在画素を含む後続のｍ個の画素について、それぞれ、パレットインデックスがすぐ上のそれらの隣接と同じであることを示すために、非負ランレングス値ｍ-１のみが送信される。このモードは、パレットインデックスがコピーフロムアバブランモード内で異なり得るという意味で、「インデックス」モードとは異なることに留意されたい。
【００２４】
[0027]現在の設計では、パレットモードはＣＵレベルで信号伝達されるが、それをＰＵレベルで信号伝達することが可能であり得る。現在ブロック中のエスケープサンプルの存在を示すために、フラグｐａｌｅｔｔｅ＿ｅｓｃ＿ｖａｌ＿ｐｒｅｓｅｎｔ＿ｆｌａｇも信号伝達される。
【００２５】
[0028]パレットモードでは、ブロック中の画素走査は、２つのタイプ、即ち、垂直トラバース又は水平トラバース（スネーク状）走査であり得る。ブロック中で使用される走査パターンは、ブロック単位で信号伝達されるフラグｐａｌｅｔｔｅ＿ｔｒａｎｓｐｏｓｅ＿ｆｌａｇに従って導出される。
【００２６】
[0029]パレットインデックスコード化中に、パレットインデックス調整プロセスが適用され得る。ブロック中の第２の画素から開始すると、パレットインデックス調整プロセスは、前にコード化された画素のパレットモードを検査することからなる。最初に、パレットサイズが１だけ低減され、左モードがランモードに等しい場合、コード化されるべきパレットインデックスは、インデックスが左パレットインデックスよりも大きい場合、１だけ低減されるか、又は左モードがコピーモードである場合、コード化されるべきパレットインデックスは、インデックスが上のパレットインデックスよりも大きい場合、１だけ低減される。説明が符号化側から与えられ、対応するプロセスがデコーダ側において同様に逆順で実行され得る。
【００２７】
[0030]ＳＣＭ-３．０では、以下のシンタックス最適化が採用された。  
・パレットサイズが０である場合、全てのエスケープ画素が導出され、エスケープ存在フラグ、パレットモード、パレットインデックス、パレットラン及びパレット転置フラグは信号伝達されず、エスケープ存在フラグが１に等しいと推論され、パレットモードがＩＮＤＥＸモードに等しいと推論され、パレットインデックスがＥＳＣＡＰＥに等しく設定され、パレットラン値がブロックサイズに等しく設定され、パレット転置フラグが０に設定される。
・パレットサイズが１であり、エスケープ画素がブロック中で使用されない場合、パレットモード、パレットラン又はパレット転置フラグは信号伝達されず、パレットモードがＩＮＤＥＸモードに等しく導出され、パレットインデックスが０に設定され、パレットラン値がブロックサイズに等しく設定され、パレット転置フラグが０に設定される。
【００２８】
[0031]本開示は、スクリーン生成コンテンツコード化に特に好適であり得る、パレットベースコード化に関係する技法について説明する。例えば、ビデオデータの特定のエリアが比較的少数の色を有すると仮定すると、ビデオコーダ（例えば、ビデオエンコーダ又はビデオデコーダ）は、特定のエリアのビデオデータを表すための所謂「パレット」を形成し得る。パレットは、特定のエリア（例えば、所与のブロック）のビデオデータを表す色又は画素値のテーブルとして表され得る。例えば、パレットは、所与のブロック中の最も支配的な画素値を含み得る。幾つかの場合には、最も支配的な画素値は、ブロック内で最も頻繁に生じる１つ又は複数の画素値を含み得る。更に、幾つかの場合には、ビデオコーダが、画素値がブロック中の最も支配的な画素値のうちの１つとして含まれるべきであるかどうかを決定するためのしきい値を適用し得る。パレットベースコード化の様々な態様によれば、ビデオコーダは、ビデオデータの現在ブロックのための実際の画素値又はそれらの残差をコード化するのではなく、現在ブロックの画素値のうちの１つ又は複数を示すインデックス値をコード化し得る。パレットベースコード化のコンテキストにおいて、インデックス値は、現在ブロックの個々の画素値を表すために使用される、パレット中のそれぞれのエントリを示す。
【００２９】
[0032]例えば、ビデオエンコーダは、ブロックのためのパレットを決定すること（例えば、パレットを明示的にコード化すること、パレットを予測すること、又はそれらの組合せ）と、画素値のうちの１つ又は複数を表すためのパレット中のエントリの位置を特定することと、ブロックの画素値を表すために使用されるパレット中のエントリを示すインデックス値を用いてブロックを符号化することとによって、ビデオデータのブロックを符号化し得る。幾つかの例では、ビデオエンコーダは、符号化ビットストリーム中でパレット及び／又はインデックス値を信号伝達し得る。次に、ビデオデコーダは、符号化ビットストリームから、ブロックのためのパレット及びブロックの個々の画素のためのインデックス値を取得し得る。ビデオデコーダは、ブロックの様々な画素値を再構成するために、画素のインデックス値をパレットのエントリに関係付け得る。
【００３０】
[0033]より詳細には、パレットモードを使用してコード化されるブロックの画素は、画素がパレットへの参照を使用してコード化される「インデックス」モード、又は画素が上隣接画素への参照を使用してコード化されるコピーフロムアバブモードを使用してコード化され得る。第３のオプションは、画素をエスケープ画素としてコード化することである。この場合、画素の値（又は画素のための被量子化値）が直接信号伝達される。
【００３１】
[0034]本開示の時点での現在のＳＣＭ３．０では、パレットモードにおいて被量子化エスケープ画素を再構成するために逆量子化が使用される。詳細には、エスケープ画素を再構成するために以下の手順が使用される。  
１．量子化パラメータｑＰが、以下のように、異なる色成分インデックス（ｃＩｄｘ）値に従って導出される。  
qP = （ cIdx  = =  0 ） ? Qp′Y : （ （ cIdx  = =  1 ） ? Qp′Cb : Qp′Cr ）
２．量子化比ｑＰｐｅｒ及び量子化剰余ｑＰｒｅｍが以下のように導出される。  
qPper = qP /6
qPrem = qP%6
３．右シフトパラメータｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ及びオフセットパラメータａｄｄＯｆｆｓｅｔが以下のように導出した。  
invQuantRightShift = 6 - qPper
addOffset = invQuantRightShift == 0 ? 0 : 1<< （invQuantRightShift - 1）  ４．被逆量子化エスケープ画素ｄｅＱｕａｎｔＥｓｐＶａｌｕｅが、以下のように、エントロピー復号されたＥｓｐＶａｌｕｅに基づいて導出される
invQuantRightShift = 6 - qPper
addOffset = invQuantRightShift == 0 ? 0 : 1<< （invQuantRightShift - 1）  ５．ｄｅＱｕａｎｔＥｓｐＶａｌｕｅは、更に、以下のように、深度範囲内にあるように変更される
deQuantEspValue = clip3 （0, 2bitDepth-1, deQuantEspValue）
【００３２】
[0035]ＳＣＭ３．０の現在の設計において遭遇され得る１つの問題は、ｑＰｐｅｒが６よりも大きいとき、ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔが負であることである。負数による右シフトの定義はない。従って、このシナリオは、異なるデコーダのための逆量子化の異なる解釈を生じ得、これは、実際的設計にとって望ましくない。
【００３３】
[0036]本開示の技法によれば、ビデオコーダ（例えば、ビデオエンコーダ及びビデオデコーダ）は、上記で説明された問題を回避するように構成され得る。特に、ビデオコーダは、量子化パラメータ（ｑＰ）値の全範囲に対処するように構成され得る。例えば、ｑＰは、両端値を含む［０，１，．．．，５１］の範囲内にあり得る。また、パレットモードのためのエスケープ画素を再構成するために、異なる逆量子化プロセスが使用され得る。これら及び他の技法は以下で更に詳細に説明される。
【００３４】
[0037]図１は、パレットモードコード化ブロック中のエスケープ画素をコード化するための本開示の技法を利用し得る例示的なビデオ符号化及び復号システム１０を示すブロック図である。図１に示されているように、システム１０は、宛先機器１４によって後で復号されるべき符号化ビデオデータを与える発信源機器１２を含む。特に、発信源機器１２は、コンピュータ可読媒体１６を介してビデオデータを宛先機器１４に与える。発信源機器１２及び宛先機器１４は、デスクトップコンピュータ、ノートブック（即ち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話ハンドセット、所謂「スマート」パッド、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング機器などを含む、広範囲にわたる機器のいずれかを備え得る。幾つかの場合には、発信源機器１２及び宛先機器１４は、ワイヤレス通信のために装備され得る。
【００３５】
[0038]宛先機器１４は、コンピュータ可読媒体１６を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体１６は、発信源機器１２から宛先機器１４に符号化ビデオデータを移動させることが可能な任意のタイプの媒体又は機器を備え得る。一例では、コンピュータ可読媒体１６は、発信源機器１２が、符号化ビデオデータを宛先機器１４にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先機器１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトル又は１つ又は複数の物理伝送線路など、任意のワイヤレス又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、発信源機器１２から宛先機器１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局又は任意の他の機器を含み得る。
【００３６】
[0039]幾つかの例では、符号化データは、出力インターフェース２２から記憶装置に出力され得る。同様に、符号化データは、入力インターフェースによって記憶装置からアクセスされ得る。記憶装置は、ハードドライブ、Ｂｌｕ-ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ-ＲＯＭ、フラッシュメモリ、揮発性又は不揮発性メモリ若しくは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散された、又はローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。更なる一例では、記憶装置は、発信源機器１２によって生成された符号化されたビデオを記憶し得るファイルサーバ又は別の中間記憶装置に対応し得る。宛先機器１４は、ストリーミング又はダウンロードを介して、記憶装置から記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、その符号化ビデオデータを宛先機器１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ）装置又はローカルディスクドライブがある。宛先機器１４は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（例えば、Ｗｉ-Ｆｉ（登録商標）接続）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデムなど）、又はその両方の組合せを含み得る。記憶装置からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組合せであり得る。
【００３７】
[0040]本開示の技法は、必ずしもワイヤレス適用例又は設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング及び／又はビデオテレフォニーなどの適用例をサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。
【００３８】
[0041]図１の例では、発信源機器１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先機器１４は、入力インターフェース２８と、ビデオデコーダ３０と、表示装置３２とを含む。本開示によれば、発信源機器１２のビデオエンコーダ２０は、パレットモードコード化ブロック中のエスケープ画素をコード化するための技法を適用するように構成され得る。他の例では、発信源機器及び宛先機器は他の構成要素又は構成を含み得る。例えば、発信源機器１２は、外部カメラなど、外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先機器１４は、内蔵表示装置を含むのではなく、外部表示装置とインターフェースし得る。
【００３９】
[0042]図１の図示のシステム１０は一例にすぎない。パレットモードにおいてエスケープ画素をコード化するための技法は、任意のデジタルビデオ符号化及び／又は復号機器によって実行され得る。概して、本開示の技法はビデオ符号化機器によって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。その上、本開示の技法はビデオプリプロセッサによっても実行され得る。発信源機器１２及び宛先機器１４は、発信源機器１２が宛先機器１４に送信するためのコード化ビデオデータを生成するような、コード化機器の例にすぎない。幾つかの例では、機器１２、１４は、機器１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。従って、システム１０は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング又はビデオテレフォニーのための、ビデオ機器１２とビデオ機器１４との間の一方向又は双方向のビデオ送信をサポートし得る。
【００４０】
[0043]発信源機器１２のビデオソース１８は、ビデオカメラなどの撮像装置、以前に撮られたビデオを含んでいるビデオアーカイブ及び／又はビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。更なる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ又はライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。幾つかの場合には、ビデオソース１８がビデオカメラである場合、発信源機器１２及び宛先機器１４は、所謂カメラフォン又はビデオフォンを形成し得る。但し、上述のように、本開示で説明される技法は、概してビデオコード化に適用可能であり得、ワイヤレス及び／又はワイヤード適用例に適用され得る。各場合において、撮られたビデオ、前に撮られたビデオ又はコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース２２によってコンピュータ可読媒体１６上に出力され得る。
【００４１】
[0044]コンピュータ可読媒体１６は、ワイヤレスブロードキャスト又はワイヤードネットワーク送信などの一時媒体若しくはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ-ｒａｙディスク、又は他のコンピュータ可読媒体などの記憶媒体（即ち、非一時的記憶媒体）を含み得る。幾つかの例では、ネットワークサーバ（図示せず）は、例えば、ネットワーク送信を介して、発信源機器１２から符号化ビデオデータを受信し、その符号化ビデオデータを宛先機器１４に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピュータ機器は、発信源機器１２から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。従って、コンピュータ可読媒体１６は、様々な例において、様々な形態の１つ又は複数のコンピュータ可読媒体を含むことが理解されよう。
【００４２】
[0045]宛先機器１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ビデオエンコーダ２０によって定義され、またビデオデコーダ３０によって使用される、ブロック及び他のコード化単位の特性及び／又は処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。表示装置３２は、復号ビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【００４３】
[0046]ビデオエンコーダ２０及びビデオデコーダ３０は、ＩＴＵ-Ｔ  Ｈ．２６５とも呼ばれる、高効率ビデオコード化（ＨＥＶＣ）規格など、ビデオコード化規格に従って動作し得る。代替的に、ビデオエンコーダ２０及びビデオデコーダ３０は、代替的にＭＰＥＧ-４，Ｐａｒｔ１０，高度ビデオコード化（ＡＶＣ）と呼ばれるＩＴＵ-Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格又は業界規格、若しくはそのような規格の拡張に従って動作し得る。但し、本開示の技法は、いかなる特定のコード化規格にも限定されない。ビデオコード化規格の他の例としては、ＭＰＥＧ-２及びＩＴＵ-Ｔ  Ｈ．２６３がある。図１には示されていないが、幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ３０は、それぞれ、オーディオエンコーダ及びデコーダと統合され得、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ-ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、ＭＵＸ-ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４４】
[0047]ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、１つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、機器は、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために１つ又は複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも、それぞれの機器において複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００４５】
[0048]概して、ＩＴＵ-Ｔ  Ｈ．２６５に従って、ビデオピクチャが、ルーマサンプルとクロマサンプルの両方を含み得る、コード化ツリーユニット（ＣＴＵ）（又は最大コード化単位（ＬＣＵ））のシーケンスに分割され得る。代替的に、ＣＴＵはモノクロームデータ（即ち、ルーマサンプルのみ）を含み得る。ビットストリーム内のシンタックスデータが、画素の数に関して最大コード化単位であるＣＴＵのサイズを定義し得る。スライスは、コード化順序で幾つかの連続するＣＴＵを含む。ビデオピクチャは、１つ又は複数のスライスに区分され得る。各ＣＴＵは、４分木に従ってコード化単位（ＣＵ）にスプリットされ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＣＴＵに対応する。ＣＵが４つのサブＣＵにスプリットされた場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。
【００４６】
[0049]４分木データ構造の各ノードは、対応するＣＵのためのシンタックスデータを与え得る。例えば、４分木のノードは、そのノードに対応するＣＵがサブＣＵにスプリットされるかどうかを示すスプリットフラグを含み得る。ＣＵのためのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵにスプリットされるかどうかに依存し得る。ＣＵが更にスプリットされない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的スプリッティングが存在しない場合でも、リーフＣＵの４つのサブＣＵはリーフＣＵとも呼ばれる。例えば、１６×１６サイズのＣＵが更にスプリットされない場合、その１６×１６ＣＵが決してスプリットされなくても、４つの８×８サブＣＵはリーフＣＵとも呼ばれる。
【００４７】
[0050]ＣＵは、ＣＵがサイズ差異を有しないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。例えば、ＣＴＵは、（サブＣＵとも呼ばれる）４つの子ノードにスプリットされ得、各子ノードは、今度は親ノードとなり、別の４つの子ノードにスプリットされ得る。４分木のリーフノードと呼ばれる、最後のスプリットされていない子ノードは、リーフＣＵとも呼ばれるコード化ノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大ＣＵ深さと呼ばれる、ＣＴＵがスプリットされ得る最大回数を定義し得、また、コード化ノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コード化単位（ＳＣＵ：smallest coding unit）をも定義し得る。本開示では、ＨＥＶＣのコンテキストにおけるＣＵ、予測単位（ＰＵ）、又は変換単位（ＴＵ）、若しくは他の規格のコンテキストにおける同様のデータ構造（例えば、Ｈ．２６４／ＡＶＣにおけるマクロブロック及びそれのサブブロック）のいずれかを指すために「ブロック」という用語を使用する。
【００４８】
[0051]ＣＵは、コード化ノードと、コード化ノードに関連する予測単位（ＰＵ：prediction unit）及び変換単位（ＴＵ：transform unit）とを含む。ＣＵのサイズは、コード化ノードのサイズに対応し、概して形状が方形である。ＣＵのサイズは、８×８画素から最大サイズ、例えば、６４×６４以上の画素を有するＣＴＵのサイズまでに及び得る。各ＣＵは、１つ又は複数のＰＵと、１つ又は複数のＴＵとを含んでいることがある。ＣＵに関連するシンタックスデータは、例えば、ＣＵを１つ又は複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化又はダイレクトモード符号化されるか、イントラ予測モード符号化されるか、若しくはインター予測モード符号化されるかの間で異なり得る。ＰＵは、形状が非正方形になるように区分され得る。ＣＵに関連するシンタックスデータは、例えば、４分木に従ってＣＵを１つ又は複数のＴＵに区分することをも記述し得る。ＴＵは、形状が正方形又は非正方形（例えば、矩形）であり得る。
【００４９】
[0052]ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＣＴＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。ＴＵは、一般にＰＵと同じサイズであるか、又はＰＵよりも小さい。幾つかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用して、より小さい単位に再分割され得る。ＲＱＴのリーフノードは変換単位（ＴＵ）と呼ばれることがある。ＴＵに関連する画素差分値は、変換係数を生成するために変換され得、その変換係数は量子化され得る。
【００５０】
[0053]リーフＣＵは１つ又は複数の予測単位（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部又は一部分に対応する空間エリアを表し、そのＰＵの参照サンプルを取り出し、及び／又は生成するためのデータを含み得る。その上、ＰＵは、予測に関係するデータを含む。例えば、ＰＵがイントラモード符号化されるとき、ＰＵについてのデータは、ＰＵに対応するＴＵについてのイントラ予測モードを記述するデータを含み得る残差４分木（ＲＱＴ）中に含まれ得る。ＲＱＴは変換ツリーと呼ばれることもある。幾つかの例では、イントラ予測モードは、ＲＱＴの代わりに、リーフＣＵシンタックス中で信号伝達され得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための、１つ又は複数の動きベクトルなど、動き情報を定義するデータを含み得る。ＰＵの動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／４画素精度又は１／８画素精度）、動きベクトルが指す参照ピクチャ及び／又は動きベクトルの参照ピクチャリスト（例えば、リスト０又はリスト１）を記述し得る。
【００５１】
[0054]１つ又は複数のＰＵを有するリーフＣＵはまた、１つ又は複数の変換単位（ＴＵ）を含み得る。変換単位は、上記で説明されたように、（ＴＵ４分木構造とも呼ばれる）ＲＱＴを使用して指定され得る。例えば、スプリットフラグは、リーフＣＵが４つの変換単位にスプリットされるかどうかを示し得る。次いで、各変換単位は、更なるサブＴＵに更にスプリットされ得る。ＴＵが更にスプリットされないとき、そのＴＵはリーフＴＵと呼ばれることがある。概して、イントラコード化の場合、リーフＣＵに属する全てのリーフＴＵは同じイントラ予測モードを共有する。即ち、概して、リーフＣＵの全てのＴＵの予測値を計算するために同じイントラ予測モードが適用される。イントラコード化では、ビデオエンコーダは、イントラ予測モードを使用して各リーフＴＵの残差値を、ＴＵに対応するＣＵの一部と元のブロックとの間の差分として計算し得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。従って、ＴＵは、ＰＵよりも大きいことも小さいこともある。イントラコード化では、ＰＵは、同じＣＵの対応するリーフＴＵとコロケートされ得る。幾つかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００５２】
[0055]その上、リーフＣＵのＴＵはまた、残差４分木（ＲＱＴ）と呼ばれる、それぞれの４分木データ構造に関連し得る。即ち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、ＣＵ４分木のルートノードは概してＣＴＵ（又はＬＣＵ）に対応する。スプリットされないＲＱＴのＴＵはリーフＴＵと呼ばれる。概して、本開示では、別段に記載されていない限り、リーフＣＵ及びリーフＴＵに言及するためにそれぞれＣＵ及びＴＵという用語を使用する。
【００５３】
[0056]ビデオシーケンスは、一般に、ランダムアクセスポイント（ＲＡＰ）ピクチャで開始する、一連のビデオフレーム又はピクチャを含む。ビデオシーケンスは、ビデオシーケンスのシーケンスパラメータセット（ＳＰＳ）その特性中のシンタックスデータを含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックはＣＵ内のコード化ノードに対応し得る。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定されたコード化規格に応じてサイズが異なり得る。
【００５４】
[0057]一例として、予測は様々なサイズのＰＵについて実行され得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、イントラ予測が、２Ｎ×２Ｎ又はＮ×ＮのＰＵサイズに対して実行され得、インター予測が、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎの対称的なＰＵサイズに対して実行され得る。インター予測のための非対称区分は、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２ＮのＰＵサイズについても実行され得る。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」又は「Ｒｉｇｈｔ」という表示によって示される。従って、例えば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００５５】
[0058]本開示では、「Ｎ×Ｎ（NxN）」及び「Ｎ×Ｎ（N by N）」は、垂直寸法及び水平寸法に関するビデオブロックの画素寸法、例えば、１６×１６（16x16）画素又は１６×１６（16 by 16）画素を指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６画素を有し（ｙ＝１６）、水平方向に１６画素を有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮ画素を有し、水平方向にＮ画素を有し、ここで、Ｎは非負整数値を表す。ブロック中の画素は行及び列に配列され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要があるとは限らない。例えば、ブロックはＮ×Ｍ画素を備え得、ここで、Ｍは必ずしもＮに等しいとは限らない。
【００５６】
[0059]ＣＵのＰＵを使用したイントラ予測コード化又はインター予測コード化の後に、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（画素領域とも呼ばれる）空間領域において予測画素データを生成する方法又はモードを記述するシンタックスデータを備え得、ＴＵは、変換、例えば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャの画素と、ＰＵに対応する予測値との間の画素差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを表す被量子化変換係数を含むようにＴＵを形成し得る。即ち、ビデオエンコーダ２０は、（残差ブロックの形態の）残差データを計算し、変換係数のブロックを生成するために残差ブロックを変換し、次いで、被量子化変換係数を形成するために変換係数を量子化し得る。ビデオエンコーダ２０は、被量子化変換係数を含むＴＵ、又は他のシンタックス情報（例えば、ＴＵのためのスプリッティング情報）を形成し得る。
【００５７】
[0060]上述のように、変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、更なる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。例えば、量子化中にｎビット値がｍビット値に切り捨てられ得、ここで、ｎはｍよりも大きい。
【００５８】
[0061]量子化の後に、ビデオエンコーダは、変換係数を走査し、被量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー（従って、より低い周波数）係数を配置し、アレイの後部により低いエネルギー（従って、より高い周波数）係数を配置するように設計され得る。幾つかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、被量子化変換係数を走査するために予め定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応型走査を実行し得る。１次元ベクトルを形成するために被量子化変換係数を走査した後に、ビデオエンコーダ２０は、例えば、コンテキスト適応型可変長コード化（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コード化（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コード化、又は別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【００５９】
[0062]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、例えば、シンボルの隣接値が非０であるか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択し得る。ＶＬＣ中のコードワードは、比較的より短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、例えば、送信されるべき各シンボルのための等長コードワードを使用することに勝るビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００６０】
[0063]概して、ビデオデコーダ３０は、符号化データを復号するためにビデオエンコーダ２０によって実行されるものと、逆ではあるが、実質的に同様のプロセスを実行する。例えば、ビデオデコーダ３０は、残差ブロックを再生するために、受信されたＴＵの係数を逆量子化及び逆変換する。ビデオデコーダ３０は、予測されたブロックを形成するために、信号伝達された予測モード（イントラ予測又はインター予測又はパレットモード）を使用する。次いで、ビデオデコーダ３０は、元のブロックを再生するために、（画素ごとに）予測されたブロックと残差ブロックとを組み合わせる。ブロック境界に沿って視覚的アーティファクトを低減するためにデブロッキングプロセスを実行することなど、追加の処理が実行され得る。更に、ビデオデコーダ３０は、ビデオエンコーダ２０のＣＡＢＡＣ符号化プロセスとは逆ではあるが、それと実質的に同様の様式でＣＡＢＡＣを使用してシンタックス要素を復号し得る。
【００６１】
[0064]ビデオエンコーダ２０は、更に、ブロックベースシンタックスデータ、ピクチャベースシンタックスデータ、及びシーケンスベースシンタックスデータなど、シンタックスデータを、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ又はシーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）若しくはビデオパラメータセット（ＶＰＳ）など、他のシンタックスデータ中でビデオデコーダ３０に送り得る。ビデオデコーダ３０は、ビデオデータを復号するために、これらのパラメータを使用し得る。
【００６２】
[0065]本開示の技法によれば、ビデオエンコーダ２０は、パレットモードコード化中にエスケープ画素値を量子化するために、以下のプロセスを実行し得る。  
１．ビデオエンコーダ２０は、以下のように、異なる色成分インデックス（ｃＩｄｘ）値に従って量子化パラメータｑＰを導出する。  
qP =  cIdx  = =  0） ? Qp′Y : （ （ cIdx  = =  1） ? Qp′Cb : Qp′Cr）
２．ビデオエンコーダ２０は、以下のように、量子化比ｑＰｐｅｒ及び量子化剰余ｑＰｒｅｍを導出する。  
qPper = qP /6
qPrem = qP%6
３．ビデオエンコーダ２０は、以下のように、右シフトパラメータｑｕａｎｔＲｉｇｈｔＳｈｉｆｔ及びオフセットパラメータＯｆｆｓｅｔを導出する。  
quantRightShift = 14 + qPper
Offset = 1 << （quantRightShift - 1）
４．被量子化エスケープ画素値が以下のように導出される
EspValue = （pixelValue * quantScale[qPrem]+Offset） >> quantRightShift
【００６３】
[0066]同様に、逆のプロセスとして、ビデオデコーダ３０は、パレットモードコード化中にエスケープ画素値を逆量子化する（inverse quantize）（又は逆量子化する（dequantize））ために、以下のプロセスを実行し得る。  
１．ビデオデコーダ３０は、以下のように、異なる色成分インデックス（ｃＩｄｘ）値に従って量子化パラメータｑＰを導出する。  
qP = （cIdx  = =  0） ? Qp′Y : （（ cIdx  = =  1） ? Qp′Cb : Qp′Cr） 
２．ビデオデコーダ３０は、以下のように、量子化比ｑＰｐｅｒ及び量子化剰余ｑＰｒｅｍを導出する。  
qPper = qP /6
qPrem = qP%6
３．ビデオデコーダ３０は、以下のように、右シフトパラメータｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ及びオフセットパラメータａｄｄＯｆｆｓｅｔを導出する。  
invQuantRightShift = 6 - qPper
addOffset = invQuantRightShift == 0 ? 0 : 1<< （invQuantRightShift - 1）
４Ａ．ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔが０よりも大きい場合、ビデオデコーダ３０は以下のプロシージャを実行する。  
deQuantEspValue = （ EspValue * invQuantScale[qPrem] + addOffset ）>>         invQuantRightShift
４Ｂ．他の場合（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ≦０）、ビデオデコーダ３０は以下の手順を実行する。  
invQuantLeftShift = - invQuantRightShift
deQuantEspValue = EspValue * invQuantScale[qPrem] << nvQuantLeftShift
５．ビデオデコーダ３０は、更に、以下のように、ｄｅＱｕａｎｔＥｓｐＶａｌｕｅを深度範囲内にあるように変更する。  
deQuantEspValue = clip3 （0, 2bitDepth-1, deQuantEspValue）
【００６４】
[0067]ｑｕａｎｔＳｃａｌｅ［．］及びｉｎｖＱｕａｎｔＳｃａｌｅ［．］は、適応量子化スケーリングが有効にされるとき、それぞれ｛２６２１４，２３３０２，２０５６０，１８３９６，１６３８４，１４５６４｝、｛４０，４５，５１，５７，６４，７２｝であり得る（例えば、アレイとして実装される）ルックアップテーブル又は６つのエントリの別のルックアップテーブル（又はアレイ）であり得る。例えば、適応量子化スケーリングが有効にされるとき、ビデオデコーダ３０は、適応量子化スケーリングによって導入されたスケーリングファクタを正規化するように、ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ及び／又はｉｎｖＱｕａｎｔＬｅｆｔＳｈｉｆｔを調整し得る。
【００６５】
[0068]ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、適用可能なとき、１つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ又はデコーダ回路のいずれか、又はそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０及び／又はビデオデコーダ３０を含む機器は、集積回路、マイクロプロセッサ及び／又はセルラー電話などのワイヤレス通信機器を備え得る。
【００６６】
[0069]図２は、本開示の技法による、パレットモードコード化ブロック中のエスケープ画素を符号化するための技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコード化及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム又はピクチャ内のビデオの空間冗長性を低減又は除去するために空間予測に依拠する。インターコード化は、ビデオシーケンスの隣接フレーム又はピクチャ内のビデオの時間冗長性を低減又は除去するために時間予測に依拠する。イントラモード（Ｉモード）は、幾つかの空間ベースコード化モードのいずれかを指すことがある。単方向予測（Ｐモード）又は双方向予測（Ｂモード）などのインターモードは、幾つかの時間ベースのコード化モードのいずれかを指すことがある。
【００６７】
[0070]図２に示されているように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、（復号ピクチャバッファ（ＤＰＢ）と呼ばれることもある）参照ピクチャメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。モード選択ユニット４０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、パレットモード符号化ユニット４９と、区分ユニット４８とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロック歪み（blockiness artifacts）を除去するためにブロック境界をフィルタ処理するための（図２に示されていない）デブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。（ループ中又はループ後の）追加のフィルタもデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、（ループ内フィルタとして）加算器５０の出力をフィルタ処理し得る。
【００６８】
[0071]符号化プロセス中に、ビデオエンコーダ２０はコード化されるべきビデオフレーム又はスライスを受信する。フレーム又はスライスは複数のビデオブロックに分割され得る。動き推定ユニット４２及び動き補償ユニット４４は、時間予測を行うために、１つ又は複数の参照フレーム中の１つ又は複数のブロックに対する受信されたビデオブロックのインター予測符号化を実行する。イントラ予測ユニット４６は、代替的に、空間予測を行うために、コード化されるべきブロックと同じフレーム又はスライス中の１つ又は複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測符号化を実行し得る。ビデオエンコーダ２０は、例えば、ビデオデータのブロックごとに適切なコード化モードを選択するために、複数のコード化パスを実行し得る。
【００６９】
[0072]その上、区分ユニット４８は、前のコード化パスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。例えば、区分ユニット４８は、初めにフレーム又はスライスをＣＴＵに区分し、レート歪み分析（例えば、レート歪み最適化）に基づいてＣＴＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、更に、サブＣＵへのＣＴＵの区分を示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つ又は複数のＰＵと１つ又は複数のＴＵとを含み得る。
【００７０】
[0073]モード選択ユニット４０は、例えば、誤差結果に基づいて予測モード、即ち、イントラ又はインターのうちの１つを選択し得、残差データを生成するために、得られた予測されたブロックを加算器５０に与え、参照フレームとして使用するための符号化ブロックを再構成するために、得られた予測されたブロックを加算器６２に与える。更に、モード選択ユニット４０は、イントラ予測モード及びインター予測モードの代替としてパレットモードを選択し得る。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、区分情報、及び他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット５６に与える。
【００７１】
[0074]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在フレーム（又は他のコード化単位）内でコード化されている現在ブロックに対する参照フレーム（又は他のコード化単位）内の予測ブロックに対する現在ビデオフレーム又はピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、又は他の差分メトリックによって決定され得る画素差分に関して、コード化されるべきブロックにぴったり一致することがわかるブロックである。幾つかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数画素位置の値を計算し得る。例えば、ビデオエンコーダ２０は、参照ピクチャの１／４画素位置、１／８画素位置、又は他の分数画素位置の値を補間し得る。従って、動き推定ユニット４２は、フル画素位置と分数画素位置とに対して動き探索を実行し、分数画素精度で動きベクトルを出力し得る。
【００７２】
[0075]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）又は第２の参照ピクチャリスト（リスト１）から選択され得、それらの各々が、参照ピクチャメモリ６４に記憶された１つ又は複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００７３】
[0076]動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成することを伴い得る。同じく、動き推定ユニット４２及び動き補償ユニット４４は、幾つかの例では、機能的に統合され得る。現在ビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいて指す予測ブロックの位置を特定し得る。加算器５０は、以下で説明するように、コード化されている現在ビデオブロックの画素値から予測ブロックの画素値を減算し、画素差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット４２はルーマ成分に対して動き推定を実行し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【００７４】
[0077]イントラ予測ユニット４６は、上記で説明されたように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。幾つかの例では、イントラ予測ユニット４６は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット４６（又は、幾つかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
【００７５】
[0078]例えば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択し得る。レート歪み分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み（又は誤差）の量、及び符号化ブロックを生成するために使用されるビットレート（即ち、ビット数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレート歪み値を呈するかを決定するために、様々な符号化ブロックのための歪み及びレートから比を計算し得る。
【００７６】
[0079]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に与え得る。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブル及び複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、及び変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
【００７７】
[0080]ビデオエンコーダ２０は、コード化されている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つ又は複数の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）又は概念的に同様の変換などの変換を残差ブロックに適用し、変換係数値を備えるビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、離散サイン変換（ＤＳＴ）、又は他のタイプの変換が、ＤＣＴの代わりに使用され得る。いずれの場合も、変換処理ユニット５２は、変換を残差ブロックに適用し、変換係数のブロックを生成する。変換は、残差情報を画素領域から周波数領域などの変換領域に変換し得る。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートを更に低減するために変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
【００７８】
[0081]量子化の後に、エントロピー符号化ユニット５６は被量子化変換係数をエントロピーコード化する。例えば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コード化（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コード化（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コード化又は別のエントロピーコード化技法を実行し得る。コンテキストベースエントロピーコード化の場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット５６によるエントロピーコード化の後に、符号化ビットストリームは、別の機器（例えば、ビデオデコーダ３０）に送信されるか、又は後で送信するか、若しくは取り出すためにアーカイブされ得る。
【００７９】
[0082]逆量子化ユニット５８及び逆変換ユニット６０は、画素領域において残差ブロックを再構成するために、それぞれ逆量子化及び逆変換を適用する。特に、加算器６２は、参照ピクチャメモリ６４に記憶するための再構成されたビデオブロックを生成するために、動き補償ユニット４４又はイントラ予測ユニット４６によって前に生成された動き補償予測ブロックに、再構成された残差ブロックを加算する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコード化するために動き推定ユニット４２及び動き補償ユニット４４によって参照ブロックとして使用され得る。
【００８０】
[0083]本開示の技法によれば、ビデオエンコーダ２０は、パレットベースコード化を実行するように構成され得る。より詳細には、パレット符号化ユニット４９は、ビデオデータのブロック（例えば、ＣＵ又はＰＵ）のパレットモード符号化を実行し得る。ＨＥＶＣフレームワークに関して、一例として、パレットベースコード化技法は、ＣＵモードとして使用されるように構成され得る。他の例では、パレットベースコード化技法は、ＨＥＶＣのフレームワークにおいてＰＵモードとして使用されるように構成され得る。従って、ＣＵモードのコンテキストにおいて（本開示全体にわたって）本明細書で説明される開示されるプロセスの全てが、追加又は代替として、ＰＵモードに適用され得る。しかしながら、これらのＨＥＶＣベースの例は、本明細書で説明されるパレットベースコード化技法が、独立して、若しくは他の既存の又はまだ開発されていないシステム／規格の一部として動作するように適用され得るので、そのような技法の制限又は限定であると見なされるべきではない。これらの場合、パレットコード化のためのユニットは、正方形ブロック、矩形ブロック、更には非矩形形状の領域であり得る。
【００８１】
[0084]パレット符号化ユニット４９は、例えば、パレットベース符号化モードが、例えば、ＣＵ又はＰＵのために選択されるとき、パレットベース符号化を実行し得る。例えば、パレット符号化ユニット４９は、画素値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくとも幾つかの位置の画素値を表すためにパレット中の画素値を選択し、ビデオデータのブロックの位置のうちの少なくとも幾つかを選択された画素値にそれぞれ対応するパレット中のエントリに関連付ける情報を信号伝達するように構成され得る。様々な機能が、パレット符号化ユニット４９によって実行されるものとして説明されたが、そのような機能の一部又は全部は、他の処理ユニット、又は異なる処理ユニットの組合せによって実行され得る。
【００８２】
[0085]本開示の技法のうちの１つ又は複数によれば、ビデオエンコーダ２０、及び詳細にはパレット符号化ユニット４９は、予測ビデオブロックのパレットベースビデオコード化を実行し得る。上記で説明されたように、ビデオエンコーダ２０によって生成されたパレットは、明示的に符号化されるか、前のパレットエントリから予測されるか、前の画素値から予測されるか、又はこれらの組合せであり得る。
【００８３】
[0086]詳細には、モード選択ユニット４０が、インター予測、イントラ予測又はパレットモードなど、ビデオデータのブロック（例えば、ＣＵ又はＰＵ）のための符号化モードを決定し得る。パレットモードが選択されたと仮定して、パレット符号化ユニット４９は、ブロックのための画素値の統計値に基づいて、ブロックのためのパレットを形成し得る。ブロックの各画素について、パレット符号化ユニット４９は、画素がパレット中の対応する値を有するかどうか、及び対応する値を有する場合、画素のための対応する値に対するパレットへのインデックスを信号伝達するかどうかを決定し得る。パレット符号化ユニット４９はまた、前の画素と同じ値を有する画素の数を表すラン値を信号伝達し得る。
【００８４】
[0087]代替的に、画素のシーケンスが上隣接画素に等しい値を有する場合、パレット符号化ユニット４９は、ランが上隣接画素に等しい値を有する画素の数を表す、「コピーフロムアバブ」モードのためのラン値を信号伝達し得る。
【００８５】
[0088]インデックスモードもコピーフロムアバブモードもパレットモードコード化ブロックの現在画素の値を適切に表さない場合、パレット符号化ユニット４９は、画素をエスケープ画素としてコード化するために、本開示の技法を使用し得る。即ち、これらの技法はエスケープ画素値を量子化するために実行され得、エスケープ画素値はコード化されている画素の実際の値（例えば、ルーマ値及び／又はクロマ値）を表す。本開示の技法によれば、ビデオエンコーダ２０は、例えば、図１に関して上記で説明された、エスケープ画素としてコード化されるべき画素の値を量子化し得る。即ち、パレット符号化ユニット４９は、以下の量子化プロセスを実行し得る。  
１．パレット符号化ユニット４９は、以下のように、異なる色成分インデックスｃＩｄｘに従ってｑＰを導出する。  
qP = （ cIdx = = 0 ） ? Qp′Y : （（ cIdx  = =  1 ） ? Qp′Cb : Qp′Cr）
２．パレット符号化ユニット４９は、以下のように、量子化比ｑＰｐｅｒ及び量子化剰余ｑＰｒｅｍを導出する。  
qPper = qP /6
qPrem = qP%6
３．パレット符号化ユニット４９は、以下のように、右シフトパラメータｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ及びオフセットパラメータａｄｄＯｆｆｓｅｔを導出する。    invQuantRightShift = 6 - qPper
addOffset = invQuantRightShift == 0 ? 0 : 1<< （invQuantRightShift - 1）
４．パレット符号化ユニット４９は、以下のように、エントロピー復号されたＥｓｐＶａｌｕｅに基づいて、被逆量子化エスケープ画素ｄｅＱｕａｎｔＥｓｐＶａｌｕｅを導出する。  
deQuantEspValue = （ EspValue * invQuantScale[qPrem] + addOffset ）>> 
invQuantRightShift
５．パレット符号化ユニット４９は、更に、以下のように、ｄｅＱｕａｎｔＥｓｐＶａｌｕｅを深度範囲内にあるように変更する。  
deQuantEspValue = clip3 （0, 2bitDepth-1, deQuantEspValue）
【００８６】
[0089]この例では、「ＥｓｐＶａｌｕｅ」は、「ｐｉｘｅｌＶａｌｕｅ」によって表される元の値を有する画素のための被量子化エスケープ値を表す。
【００８７】
[0090]このようにして、図２のビデオエンコーダ２０は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための左シフトパラメータのための値が０よりも小さいと決定することと、左シフトパラメータのための値が０よりも小さいことに基づいて、右シフトパラメータのための値を、左シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を量子化することとを行うように構成されたビデオエンコーダの一例を表す。
【００８８】
[0091]図３は、本開示の技法による、パレットモードコード化ブロック中のエスケープ画素を復号するための技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、パレット復号ユニット７５と、逆量子化ユニット７６と、逆変換ユニット７８と、参照ピクチャメモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、幾つかの例では、ビデオエンコーダ２０（図２）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。
【００８９】
[0092]復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット７０は、被量子化係数と、動きベクトル又はイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトルと他のシンタックス要素とを動き補償ユニット７２に転送する。ビデオデコーダ３０は、ビデオスライスレベル及び／又はビデオブロックレベルでシンタックス要素を受信し得る。
【００９０】
[0093]ビデオスライスがイントラコード化（Ｉ）スライスとしてコード化されるとき、イントラ予測ユニット７４は、信号伝達されたイントラ予測モードと、現在フレーム又はピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化（即ち、Ｂ又はＰ）スライスとしてコード化されるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つの中の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ８２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、即ち、リスト０及びリスト１を構成し得る。動き補償ユニット７２は、動きベクトルと他のシンタックス要素とを構文解析する（parsing）ことによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。例えば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコード化するために使用される予測モード（例えば、イントラ又はインター予測）と、インター予測スライスタイプ（例えば、Ｂスライス又はＰスライス）と、スライスのための参照ピクチャリストのうちの１つ又は複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちの幾つかを使用する。
【００９１】
[0094]動き補償ユニット７２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット７２は、参照ブロックのサブ整数画素の補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット７２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するために、その補間フィルタを使用し得る。
【００９２】
[0095]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された被量子化変換係数を逆量子化（inverse quantize）、即ち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオデコーダ３０によって計算される量子化パラメータＱＰYの使用を含み得る。
【００９３】
[0096]逆変換ユニット７８は、画素領域において残差ブロックを生成するために、逆変換、例えば、逆ＤＣＴ、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用する。
【００９４】
[0097]動き補償ユニット７２が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器８０は、この加算演算を実行する１つ又は複数の構成要素を表す。所望される場合、ブロック歪みを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。画素遷移を平滑化するために、又は場合によってはビデオ品質を改善するために、他のループフィルタも（コード化ループ中又はコード化ループ後のいずれかで）使用され得る。所与のフレーム又はピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ８２に記憶される。参照ピクチャメモリ８２はまた、図１の表示装置３２などの表示装置上で後で提示するために復号ビデオを記憶する。
【００９５】
[0098]本開示の様々な例によれば、ビデオデコーダ３０は、パレットベース復号を実行するように構成され得る。詳細には、ビデオデコーダ３０は、パレットベース復号を実行し得るパレット復号ユニット７５を含む。例えば、パレットベース復号ユニット７５は、画素値を示すエントリを有するパレットを生成するように構成され得る。更に、この例では、パレット復号ユニット７５は、図３に示されているシンタックス要素など、ビデオデータのブロックの少なくとも幾つかの位置をパレット中のエントリに関連付ける情報を受信し得る。この例では、パレット復号ユニット７５は、その情報に基づいてパレット中の画素値を選択し得る。更に、この例では、パレット復号ユニット７５は、選択された画素値に基づいてブロックの画素値を再構成し得る。様々な機能が、パレット復号ユニット７５によって実行されるものとして説明されたが、そのような機能の一部又は全部は、他の処理ユニット、又は異なる処理ユニットの組合せによって実行され得る。
【００９６】
[0099]パレット復号ユニット７５は、パレットコード化モード情報を受信し、パレットコード化モードがブロックに適用されることをパレットコード化モード情報が示すとき、上記の動作を実行し得る。パレットコード化モードがブロックに適用されないことをパレットコード化モード情報が示すとき、又は、他のモード情報が異なるモードの使用を示すとき、パレット復号ユニット７５は、パレットコード化モードがブロックに適用されないことをパレットコード化モード情報が示すとき、例えば、ＨＥＶＣインター予測コード化モード又はイントラ予測コード化モードなど、非パレットベースコード化モードを使用してビデオデータのブロックを復号する。ビデオデータのブロックは、例えば、ＨＥＶＣコード化プロセスに従って生成されるＣＵ又はＰＵであり得る。ビデオデコーダ３０は、インター予測時間予測コード化モード又はイントラ予測空間コード化モードを用いて幾つかのブロックを復号し、パレットベースコード化モードを用いて他のブロックを復号し得る。パレットベースコード化モードは、複数の異なるパレットベースコード化モードのうちの１つを備え得るか、又は単一のパレットベースコード化モードがあり得る。
【００９７】
[00100]本開示の技法のうちの１つ又は複数によれば、ビデオデコーダ３０、及び詳細にはパレット復号ユニット７５は、パレットコード化ビデオブロックのパレットベースビデオ復号を実行し得る。上記で説明されたように、ビデオデコーダ３０によって復号されたパレットは、明示的に符号化及び信号伝達されるか、受信されたパレットコード化ブロックに関してビデオデコーダ３０によって再構成されるか、前のパレットエントリから予測されるか、前の画素値から予測されるか、又はそれらの組合せであり得る。
【００９８】
[00101]詳細には、エントロピー復号ユニット１５０は、ビデオデータのブロック（例えば、ＰＵ又はＣＵ）がパレットモードを使用してコード化されることを示す情報を復号し得る。エントロピー復号ユニット１５０は、ブロックの各画素がパレットモードを使用してどのようにしてコード化されるかを表す情報を更に復号し得る。例えば、エントロピー復号ユニット１５０は、インデックス値とラン値とを｛インデックス，ラン｝ペアとして復号し得る。インデックス値は、ブロックのためのパレットのエントリを表し、ここで、エントリは画素値を指定し、ラン値は、現在画素に加えて、同じ値を有する画素の数を示す。
【００９９】
[00102]インデックス値がパレットのサイズに等しい場合、エントロピー復号ユニット１５０は、現在画素がエスケープ画素であると決定し得る。従って、エントロピー復号ユニット１５０は、エスケープ画素を表す値をエントロピー復号し得る。詳細には、エントロピー復号ユニット１５０は、エスケープ画素のための被量子化エスケープ画素値を復号し得る。エントロピー復号ユニット１５０は、次いで、被量子化エスケープ画素値をパレット復号ユニット７５に受け渡し得る。
【０１００】
[00103]本開示の技法によれば、パレット復号ユニット７５は、被量子化エスケープ画素値を逆量子化し得る。被量子化エスケープ画素値を逆量子化するために、パレット復号ユニット７５は以下のプロセスを実行し得る。  
１．パレット復号ユニット７５は、以下のように、異なる色成分インデックスｃＩｄｘに従ってｑＰを導出する。  
qP = （ cIdx  = =  0 ） ? Qp′Y : （（cIdx  = =  1） ? Qp′Cb : Qp′Cr）
２．パレット復号ユニット７５は、以下のように、量子化比ｑＰｐｅｒ及び量子化剰余ｑＰｒｅｍを導出する。  
qPper = qP /6
qPrem = qP%6
３．パレット復号ユニット７５は、以下のように、右シフトパラメータｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ及びオフセットパラメータａｄｄＯｆｆｓｅｔを導出する。    invQuantRightShift = 6 - qPper
addOffset = invQuantRightShift == 0 ? 0 : 1<< （invQuantRightShift - 1）
４Ａ．ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔが０よりも大きい場合、パレット復号ユニット７５は以下のプロシージャを実行する。  
deQuantEspValue = （ EspValue * invQuantScale[qPrem] + addOffset ）>> 
invQuantRightShift
４Ｂ．他の場合（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ≦０）、パレット復号ユニット７５は以下のプロシージャを実行する。  
invQuantLeftShift = - invQuantRightShift
deQuantEspValue = EspValue * invQuantScale[qPrem] << nvQuantLeftShift
５．パレット復号ユニット７５は、更に、以下のように、ｄｅＱｕａｎｔＥｓｐＶａｌｕｅを深度範囲内にあるように変更する。  
deQuantEspValue = clip3 （0, 2bitDepth-1, deQuantEspValue）
【０１０１】
[00104]ｉｎｖＱｕａｎｔＳｃａｌｅ［．］ルックアップテーブルは、エントリ｛４０，４５，５１，５７，６４，７２｝を有するアレイ、又は例えば、６つのエントリの別のルックアップテーブルとして実装され得、適応量子化スケーリングが有効にされるときに使用され得る。例えば、適応量子化スケーリングが有効にされるとき、ビデオデコーダ３０は、適応量子化スケーリングによって導入されたスケーリングファクタを正規化するように、ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ及び／又はｉｎｖＱｕａｎｔＬｅｆｔＳｈｉｆｔを調整し得る。
【０１０２】
[00105]このようにして、図３のビデオデコーダ３０は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、右シフトパラメータのための元の値が０よりも小さいことに基づいて、左シフトパラメータのための値を、元の値の絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを行うように構成されたビデオデコーダの一例を表す。
【０１０３】
[00106]図４は、本開示の技法による、ビデオデータのブロックを符号化するための例示的な方法を示すフローチャートである。図４の方法は、（例えば、図２に示されている）ビデオエンコーダ２０及びそれの構成要素によって実行され得る。
【０１０４】
[00107]この例では、モード選択ユニット４０は、最初にビデオデータのブロックを受信する（１００）。ブロックは、例えば、予測単位（ＰＵ）又はコード化単位（ＣＵ）であり得る。モード選択ユニット４０は、次いで、ブロックのためのコード化モードを決定する（１０２）。例えば、モード選択ユニット４０は、様々なコード化モードをテストし、レート歪み最適化（ＲＤＯ）プロセスを使用してモードを比較し得る。更に、モード選択ユニット４０は、ＲＤＯプロセスを使用して、様々なブロックサイズ及びブロック区分方式をも比較し得る。
【０１０５】
[00108]モード選択ユニット４０は、イントラ予測モード又はインター予測モードを選択し、その場合、動き推定ユニット４２及び動き補償ユニット４４又はイントラ予測ユニット４６は、それぞれ、イントラ予測又はインター予測を使用してブロックの画素を予測し（１０４）、予測されたブロックを形成する。ビデオエンコーダ２０は、次いで、ブロックの残差値を形成し、処理する（１０６）。例えば、残差生成ユニット５０は、画素ごとに、予測されたブロックから元のブロックを減算し、残差ブロックを形成し得る。変換処理ユニット５２は、次いで、例えば、ＤＣＴなど、変換を使用して、残差ブロックを変換し、変換ブロックを形成し得る。量子化ユニット５４は、次いで、変換ブロックの変換係数を量子化し、被量子化変換係数をエントロピー符号化ユニット５６に与え得る。また、モード選択ユニット４０は、予測モードを表す情報（例えば、イントラ／インター、イントラ予測が使用される場合の選択されたイントラモード、又はインター予測が使用される場合の動きパラメータ）をエントロピー符号化ユニット５６に与える。従って、エントロピー符号化ユニット５６は、予測情報及び残差値（即ち、被量子化変換係数）をエントロピー符号化する（１０８）。
【０１０６】
[00109]代替的に、モード選択ユニット４０は、ブロックをコード化するためにパレットモードを選択し、その場合、パレット符号化ユニット４９は、ブロックのための画素統計値を分析する（１１０）。例えば、パレット符号化ユニット４９は、頻繁に使用される画素値を決定し得る。パレット符号化ユニット４９は、次いで、統計値に基づいてブロックのためのパレットを形成する（１１２）。図４には示されていないが、エントロピー符号化ユニット５６は、パレットのためのデータをエントロピー符号化し得る。例えば、パレットは、例えば、表１及び表２に関して上記で説明されたように、前に使用されたパレットに対して予測コード化され得る。
【０１０７】
[00110]パレット符号化ユニット４９は、次いで、画素をどのようにコード化すべきかを決定するために、ブロックの画素を走査する（１１４）。例えば、パレット符号化ユニット４９は、現在画素値がパレット中に含まれるかどうかを決定し得る。画素値がパレット中に含まれる場合、パレット符号化ユニット４９は、画素値に対応するパレットからのインデックスをエントロピー符号化ユニット５６に与え、エントロピー符号化ユニット５６はインデックス値をエントロピー符号化する（１１６）。その上、パレット符号化ユニット４９は、同じ値を有する、前の画素に後続する行中の画素の数を決定し、「ラン」値をエントロピー符号化ユニット５６に与え、エントロピー符号化ユニット５６は、ラン値をエントロピー符号化する（１１８）。
【０１０８】
[00111]代替的に、現在画素がパレット中の値を有しない場合、パレット符号化ユニット４９は、画素のための値が上隣接画素値と同じであるかどうかを決定し得る。幾つかの例では、この決定は、画素値がパレット中の値に対応するかどうかを決定するより前に行われ得る。いずれの場合も、現在画素が上隣接画素値に等しい値を有する場合、パレット符号化ユニット４９は、それらの上隣接画素に等しい値を有する画素の数を記述するラン値をエントロピー符号化ユニット５６に与え、エントロピー符号化ユニット５６はラン値をエントロピー符号化する（１２０）。
【０１０９】
[00112]現在画素がパレット中の値に対応せず、上隣接画素に等しい値を有しない場合、パレット符号化ユニット４９は、画素をエスケープ画素として符号化し得る。詳細には、パレット符号化ユニット４９は、パレットのサイズに等しいインデックス値をエントロピー符号化ユニット５６に与え、エントロピー符号化ユニット５６は、インデックス値をパレットのサイズとしてエントロピーコード化する（１２２）。パレットのサイズに等しいインデックス値は、現在画素がエスケープ画素として符号化されていることを信号伝達し得る。パレット符号化ユニット４９は、更に、エスケープ画素の値をエントロピー符号化ユニット５６に与え得る。
【０１１０】
[00113]本開示の技法によれば、パレット符号化ユニット４９は画素値を量子化する（１２４）。画素値の量子化は、概して、ビット単位シフト演算を含み得る。詳細には、上記で説明されたように、パレット符号化ユニット４９が、量子化中に、左シフトパラメータが０よりも小さいか、又はそれに等しいと決定した場合、パレット符号化ユニット４９は、代わりに、左シフトパラメータの絶対値に等しい絶対値を有するが、正値をも有する、右シフトパラメータを使用して、ビット単位右シフトを実行し得る。パレット符号化ユニット４９は、次いで、被量子化エスケープ画素値をエントロピー符号化ユニット５６に与え、エントロピー符号化ユニット５６は、被量子化画素値をエントロピー符号化する（１２６）。
【０１１１】
[00114]ビデオエンコーダ２０は、パレットモードコード化ブロックの各画素のために、このプロセス（例えば、ステップ１１６及び１１８のシーケンス、ステップ１２０又はステップ１２２〜１２６のシーケンスのうちの１つ）を実行し得る。
【０１１２】
[00115]このようにして、図４の方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための左シフトパラメータのための値が０よりも小さいと決定することと、左シフトパラメータのための値が０よりも小さいことに基づいて、右シフトパラメータのための値を、左シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を量子化することとを含む、ビデオデータを符号化する方法の一例を表す。
【０１１３】
[00116]図５は、本開示の技法による、ビデオデータのブロックを復号するための例示的な方法を示すフローチャートである。図５の方法は、（例えば、図３に示されている）ビデオデコーダ３０及びそれの構成要素によって実行され得る。
【０１１４】
[00117]最初に、エントロピー復号ユニット７０は、ビデオデータのブロックのためのコード化モードを示すデータを復号する（１５０）。エントロピー復号ユニット７０は、ブロックのためのコード化モード、例えば、イントラ予測、インター予測、又はパレットモードのうちの１つを決定するためにこのデータを使用する（１５２）。
【０１１５】
[00118]コード化モードがイントラ予測又はインター予測である場合、エントロピー復号ユニット７０は、イントラ予測又はインター予測を実行するために、予測情報（例えば、イントラモード又は動きパラメータ）を復号し、動き補償ユニット７２又はイントラ予測ユニット７４のうちの適切な１つに予測情報を与える（１５４）。例えば、イントラ予測ユニット７４は、ブロックへの隣接画素から予測ブロックを構成するためにイントラ予測モードを使用し得る。別の例として、動き補償ユニット７２は、参照ピクチャメモリ８２の前に復号されたピクチャから参照ブロックを取り出す（及び潜在的に処理する、例えば、フィルタする）ために、動きパラメータを使用し得る。
【０１１６】
[00119]更に、ビデオデコーダ３０は、ブロックの残差値を復号し、処理する（１５６）。例えば、逆量子化ユニット７６は、被量子化変換係数を逆量子化し得、逆変換ユニット７８は、残差ブロックを再構成するために変換係数を逆変換し得る。加算器８０は、次いで、元のブロックを再構成するために、残差ブロックの残差値と予測されたブロックの予測値とを組み合わせる（１５８）。
【０１１７】
[00120]代替的に、エントロピー復号ユニット７０は、ブロックのためのコード化モードがパレットモードであると決定し得る。この場合、エントロピー復号ユニット７０は、ブロックのパレットのためのデータをエントロピー復号し得、パレット復号ユニット７５は、エントロピー復号データを使用してブロックのためのパレットを復号する（１６０）。表１及び表２に関して上記で説明されたように、パレットは、前のパレットに対して予測コード化され得る。従って、エントロピー復号ユニット７０は、パレットのためのエントロピー復号データをパレット復号ユニット７５に与え得、パレット復号ユニット７５は、復号データを使用してブロックのためのパレットを再構成し得る。
【０１１８】
[00121]エントロピー復号ユニット７０はまた、ブロックの画素のためのデータを復号する（１６４）。例えば、復号データは、パレットのサイズよりも小さいインデックス値に対応し得る。この場合、エントロピー復号ユニット７０はまた、ラン値を復号し（１６６）、パレット復号ユニット７５にインデックス及びラン値を与える。パレット復号ユニット７５は、画素の値と、ラン中の画素の各々とを、インデックス値に対応するパレットの画素値に等しく設定する（１６８）。
【０１１９】
[00122]別の例として、復号データは、インデックス値なしのラン値であり得る。インデックス値なしのそのようなラン値は、コピーフロムアバブモードを使用してコード化された画素の数を示し得る。この場合、エントロピー復号ユニット７０は、パレット復号ユニット７５にラン値を与え得、パレット復号ユニット７５は、ラン中の画素の各々のための値を、それぞれの上隣接画素値の値に等しく設定する（１７０）。
【０１２０】
[00123]別の例として、復号データは、パレットのサイズに等しいインデックス値であり得る。この場合、エントロピー復号ユニット７０は、現在画素がエスケープ画素として符号化されたと決定し得る。従って、エントロピー復号ユニット７０は、エスケープ画素のための被量子化値をエントロピー復号し（１７２）、被量子化値をパレット復号ユニット７５に与える。パレット復号ユニット７５は、今度は、被量子化値を逆量子化する（１７４）。詳細には、パレット復号ユニット７５は、例えば、上記で及び以下の図６に関してより詳細に説明されるように、本開示の技法を使用して、被量子化値を逆量子化し得る。
【０１２１】
[00124]ビデオデコーダ３０は、パレットモードコード化ブロックの各画素のために、このプロセス（例えば、ステップ１６６及び１６８のシーケンス、ステップ１７０、又はステップ１７２及び１７４のシーケンスのうちの１つ）を実行し得、それにより、パレットモードコード化ブロックを復号し得る。
【０１２２】
[00125]このようにして、図５の方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、右シフトパラメータのための元の値が０よりも小さいことに基づいて、左シフトパラメータのための値を、元の値の絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを含む方法の一例を表す。
【０１２３】
[00126]図６は、本開示の技法による、パレット復号ユニット７５がビデオデータのパレットモード符号化ブロックの被量子化エスケープ画素値を逆量子化し得る例示的な技法を示すフローチャートである。概して、図６の方法は、図５の要素１７４に対応し得る。即ち、図６は、ビデオデータのパレットモード符号化ブロックの被量子化エスケープ画素値を逆量子化する方法の一例を表す。図６に示されているステップは必ずしも示された順序で実行される必要があるとは限らず、幾つかのステップが並列に実行され得る。
【０１２４】
[00127]この例では、最初に、パレット復号ユニット７５が、ビデオデータのパレットモード符号化ブロックのための量子化パラメータ（ＱＰ）を導出する（２００）。例えば、パレット復号ユニット７５は、以下の式を使用してＱＰを決定し得る。  
QP = （cIdx  = =  0） ? Qp′Y : （（ cIdx  = =  1）  ? Qp′Cb : Qp′Cr） 
この例示的な式では、ｃＩｄｘは、ビデオデータのブロックのためのコンテキストインデックスを表す。ｃＩｄｘの値は、ブロックがルーマブロックであるのか、青色相クロミナンスブロックであるのか、又は赤色相クロミナンスブロックであるのかに基づいて設定され得る。
【０１２５】
[00128]パレット復号ユニット７５は、次いで、ＱＰ比値及びＱＰ剰余値を決定する（２０２）。例えば、パレット復号ユニット７５は、以下の式に従ってＱＰ比（ｑＰｐｅｒ）値及びＱＰ剰余（ｑＰｒｅｍ）値を決定し得る。  
qPper = qP /6
qPrem = qP%6
【０１２６】
[00129]パレット復号ユニット７５は、次いで、右シフトパラメータ値を導出する（２０４）。例えば、パレット復号ユニット７５は、以下の式に従って右シフトパラメータ（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ）値を導出し得る。  
invQuantRightShift = 6 - qPper
【０１２７】
[00130]更に、パレット復号ユニット７５はオフセットパラメータ値を導出する（２０６）。パレット復号ユニット７５は、以下の式に従ってオフセットパラメータ（ａｄｄＯｆｆｓｅｔ）値を導出し得る。  
addOffset = invQuantRightShift == 0 ? 0 : 1<< （invQuantRightShift - 1）
【０１２８】
[00131]パレット復号ユニット７５は、次いで、右シフトパラメータ値が０よりも小さいか、又はそれに等しいどうかを決定する（２０８）。そうでない場合（即ち、右シフトパラメータ値が０よりも大きい場合）（２０８の「いいえ」分岐）、パレット復号ユニット７５は、右シフトパラメータ値及びオフセットパラメータ値を使用して、エスケープ画素のための被量子化値からエスケープ画素のための被逆量子化値を計算する（２１０）。例えば、パレット復号ユニット７５は、以下の式に従って被逆量子化値（ｄｅＱｕａｎｔＥｓｐＶａｌｕｅ）を計算し得る。  
deQuantEspValue = （ EspValue * invQuantScale[qPrem] + addOffset ）>>         invQuantRightShift,
ここで、ＥｓｐＶａｌｕｅは被量子化値を表し、ｉｎｖＱｕａｎｔＳｃａｌｅ［．］は、｛４０，４５，５１，５７，６４，７２｝など、ルックアップテーブルを表す。
【０１２９】
[00132]一方、右シフトパラメータが０よりも小さいか又はそれに等しい場合（２０８の「はい」分岐）、パレット復号ユニット７５は、右シフトパラメータ値の絶対値に等しい正値であるものとして左シフトパラメータ値を計算する（２１２）。パレット復号ユニット７５は、次いで、左シフトパラメータ値を使用して、被量子化値から被逆量子化値を計算する（２１４）。例えば、パレット復号ユニット７５は、以下の式に従って被逆量子化値（ｄｅＱｕａｎｔＥｓｐＶａｌｕｅ）を計算し得る。  
deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift
【０１３０】
[00133]パレット復号ユニット７５は、次いで、被逆量子化値を丸める（２１６）。例えば、パレット復号ユニット７５は、以下の例示的なクリッピング演算を使用して、逆量子化値を丸め得る。  
deQuantEspValue = clip3 （0, 2bitDepth-1, deQuantEspValue）,
ここで、ｃｌｉｐ３は、ＩＴＵ-Ｔ  Ｈ．２６５において定義されている関数である。詳細には、Ｈ．２６５は、ｃｌｉｐ３（ｘ、ｙ、ｚ）を以下のように定義する。
【０１３１】
【数１】
2020039138.tif 000005
【０１３２】
他の例では、被逆量子化エスケープ画素の値が対応する深度範囲内にあることを保証するために、他の丸め演算が使用され得る。
【０１３３】
[00134]このようにして、図６の方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、右シフトパラメータのための元の値が０よりも小さいことに基づいて、左シフトパラメータのための値を、元の値の絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを含む方法の一例を表す。
【０１３４】
[00135]上記例に応じて、本明細書で説明された技法のうちのいずれかの幾つかの行為又はイベントが、異なるシーケンスで実行され得、全体的に追加、マージ、又は除外され得る（例えば、全ての説明された行為又はイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、幾つかの例では、行為又はイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通して同時に実行され得る。
【０１３５】
[00136]１つ又は複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つ又は複数の命令又はコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のための命令、コード及び／又はデータ構造を取り出すために、１つ又は複数のコンピュータあるいは１つ又は複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１３６】
[00137]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ-ＲＯＭ又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気記憶装置、フラッシュメモリ、あるいは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、及びＢｌｕ-ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１３７】
[00138]命令は、１つ又は複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは他の等価な集積回路又はディスクリート論理回路など、１つ又は複数のプロセッサによって実行され得る。従って、本明細書で使用される「プロセッサ」という用語は、上記の構造、又は本明細書で説明された技法の実装に好適な他の構造のいずれかを指すことがある。更に、幾つかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用ハードウェア及び／又はソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つ又は複数の回路又は論理要素で十分に実装され得る。
【０１３８】
[00139]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置で実装され得る。本開示では、開示される技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットが説明されたが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェア及び／又はファームウェアとともに、上記で説明された１つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
【０１３９】
[00140]様々な例が説明された。これら及び他の例は以下の特許請求の範囲内に入る。
【図１】
2020039138.tif 000006
【図２】
2020039138.tif 000007
【図３】
2020039138.tif 000008
【図４】
2020039138.tif 000009
【図５】
2020039138.tif 000010
【図６】
2020039138.tif 000011
【手続補正書】
【提出日】令和1年11月22日(2019.11.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、前記方法は、
ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、
前記右シフトパラメータのための前記値が０よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、
前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化することと
を備える、方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１３９
【補正方法】変更
【補正の内容】
【０１３９】
[00140]様々な例が説明された。これら及び他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号する方法であって、前記方法は、
ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、
前記右シフトパラメータのための前記値が０よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、
前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化することと
を備える、方法。
［Ｃ２］
前記ブロックのための量子化パラメータ（ｑＰ）の値に基づいて前記右シフトパラメータのための前記値を決定することを更に備える、［Ｃ１］に記載の方法。
［Ｃ３］
前記エスケープモードコード化画素を含む色成分の色成分インデックス（ｃＩｄｘ）に基づいてｑＰの前記値を決定することを更に備える、［Ｃ２］に記載の方法。
［Ｃ４］
前記右シフトパラメータのための前記値を決定することが、
量子化比（ｑＰｐｅｒ）を式ｑＰｐｅｒ＝ｑＰ／６に従って計算することと、ここにおいて、ｑＰが前記ｑＰの前記値を表す、
前記右シフトパラメータのための前記値（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ）を式ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ＝６-ｑＰｐｅｒに従って計算することと
を備える、［Ｃ２］に記載の方法。
［Ｃ５］
前記エスケープモードコード化画素を逆量子化することが、前記エスケープモードコード化画素のための値（ｄｅＱｕａｎｔＥｓｐＶａｌｕｅ）を以下の式に従って計算することを備え、
deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,   ここにおいて、ＥｓｐＶａｌｕｅが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、ｉｎｖＱｕａｎｔＳｃａｌｅが逆量子化スケール値のアレイを表し、ｑＰｒｅｍが量子化パラメータ剰余値を表し、ｉｎｖＱｕａｎｔＬｅｆｔＳｈｉｆｔが前記左シフトパラメータの前記値を表し、＜＜がビット単位左シフト演算子を表す、
［Ｃ１］に記載の方法。
［Ｃ６］
ｉｎｖＱｕａｎｔＳｃａｌｅが｛４０，４５，５１，５７，６４，７２｝を備える、［Ｃ５］に記載の方法。
［Ｃ７］
前記パレットモードコード化ブロックのためのパレットを復号することと、
前記パレットを使用して前記ブロックの少なくとも１つの他の画素を復号することと、  前記エスケープモードコード化画素と前記復号された少なくとも１つの他の画素とを使用して前記ブロックを再構成することと
を更に備える、［Ｃ１］に記載の方法。
［Ｃ８］
ビデオデータを復号するための機器であって、前記機器は、
ビデオデータを記憶するように構成されたメモリと、
ビデオデコーダと
を備え、前記ビデオデコーダは、
前記ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、
前記右シフトパラメータのための前記値が０よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、
前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化することと
を行うように構成された、
機器。
［Ｃ９］
前記ビデオデコーダが、前記ブロックのための量子化パラメータ（ｑＰ）の値に基づいて前記右シフトパラメータのための前記値を決定するように更に構成された、［Ｃ８］に記載の機器。
［Ｃ１０］
前記ビデオデコーダが、前記エスケープモードコード化画素を含む色成分の色成分インデックス（ｃＩｄｘ）に基づいて前記ｑＰの前記値を決定するように更に構成された、［Ｃ９］に記載の機器。
［Ｃ１１］
前記右シフトパラメータのための前記値を決定するために、前記ビデオデコーダは、  量子化比（ｑＰｐｅｒ）を式ｑＰｐｅｒ＝ｑＰ／６に従って計算することと、ここにおいて、ｑＰが前記ｑＰの前記値を表す、
前記右シフトパラメータのための前記値（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ）を式ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ＝６-ｑＰｐｅｒに従って計算することと
を行うように構成された、［Ｃ９］に記載の機器。
［Ｃ１２］
前記エスケープモードコード化画素を逆量子化するために、前記ビデオデコーダが、前記エスケープモードコード化画素のための値（ｄｅＱｕａｎｔＥｓｐＶａｌｕｅ）を以下の式に従って計算するように構成され、
deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,   ここにおいて、ＥｓｐＶａｌｕｅが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、ｉｎｖＱｕａｎｔＳｃａｌｅが逆量子化スケール値のアレイを表し、ｑＰｒｅｍが量子化パラメータ剰余値を表し、ｉｎｖＱｕａｎｔＬｅｆｔＳｈｉｆｔが前記左シフトパラメータの前記値を表し、＜＜がビット単位左シフト演算子を表す、
［Ｃ８］に記載の機器。
［Ｃ１３］
ｉｎｖＱｕａｎｔＳｃａｌｅが｛４０，４５，５１，５７，６４，７２｝を備える、［Ｃ１２］に記載の機器。
［Ｃ１４］
前記ビデオデコーダが、
前記パレットモードコード化ブロックのためのパレットを復号することと、
前記パレットを使用して前記ブロックの少なくとも１つの他の画素を復号することと、  前記エスケープモードコード化画素と復号された前記少なくとも１つの他の画素とを使用して前記ブロックを再構成することと
を行うように更に構成された、［Ｃ８］に記載の機器。
［Ｃ１５］
前記機器が、
集積回路、
マイクロプロセッサ、又は
ワイヤレス通信機器
のうちの少なくとも１つを備える、［Ｃ８］に記載の機器。
［Ｃ１６］
ビデオデータを復号するための機器であって、前記機器は、
ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定するための手段と、
前記右シフトパラメータのための前記値が０よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定するための手段と、
前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化するための手段と
を備える、機器。
［Ｃ１７］
前記ブロックのための量子化パラメータ（ｑＰ）の値に基づいて前記右シフトパラメータのための前記値を決定するための手段を更に備える、［Ｃ１６］に記載の機器。
［Ｃ１８］
前記エスケープモードコード化画素を含む色成分の色成分インデックス（ｃＩｄｘ）に基づいて前記ｑＰの前記値を決定するための手段を更に備える、［Ｃ１７］に記載の機器。
［Ｃ１９］
前記右シフトパラメータのための前記値を決定するための前記手段が、
量子化比（ｑＰｐｅｒ）を式ｑＰｐｅｒ＝ｑＰ／６に従って計算するための手段と、ここにおいて、ｑＰが前記ｑＰの前記値を表す、
前記右シフトパラメータのための前記値（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ）を式ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ＝６-ｑＰｐｅｒに従って計算するための手段と
を備える、［Ｃ１７］に記載の機器。
［Ｃ２０］
前記エスケープモードコード化画素を逆量子化するための前記手段が、前記エスケープモードコード化画素のための値（ｄｅＱｕａｎｔＥｓｐＶａｌｕｅ）を以下の式に従って計算するための手段を備え、
deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,   ここにおいて、ＥｓｐＶａｌｕｅが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、ｉｎｖＱｕａｎｔＳｃａｌｅが逆量子化スケール値のアレイを表し、ｑＰｒｅｍが量子化パラメータ剰余値を表し、ｉｎｖＱｕａｎｔＬｅｆｔＳｈｉｆｔが前記左シフトパラメータの前記値を表し、＜＜がビット単位左シフト演算子を表す、
［Ｃ１６］に記載の機器。
［Ｃ２１］
ｉｎｖＱｕａｎｔＳｃａｌｅが｛４０，４５，５１，５７，６４，７２｝を備える、［Ｃ２０］に記載の機器。
［Ｃ２２］
前記パレットモードコード化ブロックのためのパレットを復号するための手段と、
前記パレットを使用して前記ブロックの少なくとも１つの他の画素を復号するための手段と、
前記エスケープモードコード化画素と前記復号された少なくとも１つの他の画素とを使用して前記ブロックを再構成するための手段と
を更に備える、［Ｃ１６］に記載の機器。
［Ｃ２３］
実行されたとき、ビデオデータを復号するための機器のプロセッサに、
前記ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が０よりも小さいと決定することと、
前記右シフトパラメータのための前記値が０よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、
前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
［Ｃ２４］
前記プロセッサに、前記ブロックのための量子化パラメータ（ｑＰ）の値に基づいて前記右シフトパラメータのための前記値を決定させる命令を更に備える、［Ｃ２３］に記載のコンピュータ可読記憶媒体。
［Ｃ２５］
前記プロセッサに、前記エスケープモードコード化画素を含む色成分の色成分インデックス（ｃＩｄｘ）に基づいて前記ｑＰの前記値を決定させる命令を更に備える、［Ｃ２４］に記載のコンピュータ可読記憶媒体。
［Ｃ２６］
前記プロセッサに前記右シフトパラメータのための前記値を決定させる前記命令は、前記プロセッサに、
量子化比（ｑＰｐｅｒ）を式ｑＰｐｅｒ＝ｑＰ／６に従って計算することと、ここにおいて、ｑＰが前記ｑＰの前記値を表す、
前記右シフトパラメータのための前記値（ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ）を式ｉｎｖＱｕａｎｔＲｉｇｈｔＳｈｉｆｔ＝６-ｑＰｐｅｒに従って計算することと
を行わせる命令を備える、［Ｃ２４］に記載のコンピュータ可読記憶媒体。
［Ｃ２７］
前記プロセッサに前記エスケープモードコード化画素を逆量子化させる前記命令が、前記プロセッサに、前記エスケープモードコード化画素のための値（ｄｅＱｕａｎｔＥｓｐＶａｌｕｅ）を以下の式に従って計算させる命令を備え、
deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,   ここにおいて、ＥｓｐＶａｌｕｅが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、ｉｎｖＱｕａｎｔＳｃａｌｅが逆量子化スケール値のアレイを表し、ｑＰｒｅｍが量子化パラメータ剰余値を表し、ｉｎｖＱｕａｎｔＬｅｆｔＳｈｉｆｔが前記左シフトパラメータの前記値を表し、＜＜がビット単位左シフト演算子を表す、
［Ｃ２３］に記載のコンピュータ可読記憶媒体。
［Ｃ２８］
ｉｎｖＱｕａｎｔＳｃａｌｅが｛４０，４５，５１，５７，６４，７２｝を備える、［Ｃ２７］に記載のコンピュータ可読記憶媒体。
［Ｃ２９］
前記プロセッサに、
前記パレットモードコード化ブロックのためのパレットを復号することと、
前記パレットを使用して前記ブロックの少なくとも１つの他の画素を復号することと、
前記エスケープモードコード化画素と前記復号された少なくとも１つの他の画素とを使用して前記ブロックを再構成することと
を行わせる命令を更に備える、［Ｃ２３］に記載のコンピュータ可読記憶媒体。
【外国語明細書】
2020039138000001.pdf