(57)【要約】  本発明は、ビットストリームを復号する方法であって、該方法は、（ａ）ビットストリームからの少なくとも一つのピクチャを復号するステップと；（ｂ）該少なくとも一つのピクチャの各々を複数のスライスにパーティショニングするステップであって、該複数のスライスの各々は少なくとも一つの符号化ユニットを含む、該パーティショニングするステップと；を含み、（ｃ）該少なくとも一つの符号化ユニットの一符号化ユニットのパレットテーブル予測子サイズは、該複数のスライスの一スライスの開始点で０に等しく設定される。
2017522839.tif 000002
【特許請求の範囲】
【請求項１】
ビットストリームを復号する方法であって、
（ａ）前記ビットストリームからの少なくとも一つのピクチャを復号するステップと、
（ｂ）前記少なくとも一つのピクチャの各々を複数のスライスにパーティショニングするステップであって、前記複数のスライスの各々は少なくとも一つの符号化ユニットを含む、前記パーティショニングするステップと、
を含み、
（ｃ）前記少なくとも一つの符号化ユニットの一符号化ユニットのパレットテーブル予測子サイズは、前記複数のスライスの一スライスの開始点で０に等しく設定される、
方法。
【請求項２】
（ａ）ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇを受信し、１に等しい前記ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇは、現符号化ユニットがパレットモードを使って符号化されることを指定する、
請求項１に記載の方法。
【請求項３】
前記パレットテーブル予測子サイズが、前記パレットテーブル予測子の前記サイズを指定する、
請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ符号化および／または復号に関する。
【背景技術】
【０００２】
電子デバイスは、消費者のニーズを満たし、携帯性および利便性を高めるために、より小型で強力になっている。消費者は、電子デバイスに依存するようになり、機能性の増大を期待するようになっている。電子デバイスのいくつかの例には、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話、スマートフォン、メディアプレーヤ、集積回路などが含まれる。
【０００３】
いくつかの電子デバイスは、デジタルメディアを処理および／または表示するために用いられる。例えば、携帯式電子デバイスは、現在では消費者がいる可能性のあるほとんどどこででもデジタルメディアを生成および／または消費することを可能にする。さらに、一部の電子デバイスは、消費者が利用し楽しむための、デジタルメディアコンテンツのダウンロードまたはストリーミングを提供することができる。
【０００４】
デジタルビデオは、通常、一連の画像またはフレームとして表され、これらのそれぞれが画素の配列を包含する。各画素は、明暗度および／またはカラー情報などの情報を含む。多くの場合、各画素は、各々が８ビットカラー値で定義される３つのカラーのセットとして表現される。
【０００５】
一部のビデオ符号化方式は、複雑性の増加を代償としてより高い符号化効率を提供する。また、ビデオ符号化方式に対する画像品質への要求の増大、および画像解像度への要求の増大も符号化の複雑性を増加している。並列復号に適したビデオデコーダは、復号プロセスの速度を向上し、メモリ要求量を低減することができ；並列符号化に適したビデオエンコーダは、符号化プロセスの速度を向上し、メモリ要求量を低減することができる。
【０００６】
デジタルメディアの普及の拡大はいくつかの問題を提起している。例えば、ストレージ、送信、および再生のため、高品質のデジタルメディアを効率的に表現する上で、いくつかの課題が提起されている。デジタルメディアをさらに効率的に表現できるシステムおよび方法は有益である。
【０００７】
本発明の前述および他の目的、特徴、および利点は、添付の図面と併せ、以下の本発明の詳細な説明を考慮することによって、より容易に理解されよう。
【０００８】
本発明は、より高いビット深度での画像およびビデオ復号に関する。
【０００９】
Ｈ．２６４／ＡＶＣ、高効率ビデオ符号化（ＨＥＶＣ：ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ）など既存のビデオ符号化規格は、一般に、計算複雑性の増加を代償として比較的に高い符号化効率を提供する。計算複雑性が増加するにつれ、符号化および／または復号の速度は低下しがちある。また、時と共により高度な忠実度への要求が増大する傾向にあり、これにより、ますます大きなメモリ要求、ますます大きなメモリバンド幅要求、およびますます高まるハードウェアの複雑性を必要とする傾向にある。増大するメモリ要求および増大するメモリバンド幅要求は、特に内蔵型システムの場合に、ますます高価で複雑な計算回路をもたらす傾向がある。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
図２２に参照されるように、多くのデコーダ（およびエンコーダ）が、画像のブロックに対する符号化されたデータを受信（エンコーダは供給）している。通常、画像はブロックに分割され、ブロックの各々は、離散コサイン変換（ＤＣＴ：ｄｉｓｃｒｅｔｅ  ｃｏｓｉｎｅ  ｔｒａｎｓｆｏｒｍ）を使うなど何らかの方法で符号化され、デコーダに供給される。デコーダは、符号化ブロックを受信し、逆離散コサイン変換を使うなど何らかの方法でブロックの各々を復号する。多くの場合、画像ブロックの画像係数の復号は、マトリックス乗算によって達成される。マトリックス乗算は、垂直方向に行われてもよく、マトリックス乗算は水平方向に行われてもよい。例として、８ビットの値に対し、第一のマトリックス乗算により１６ビットの値が得られ、場合によって、第二のマトリックス乗算では２４ビットの値を得ることができる。さらに、画像の各ブロックの符号化は、通常、量子化され、これは、符号化の値を量子化係数のより小さなセットにマップする。量子化は、デコーダによる逆量子化を必要とし、これは、量子化係数のセットを、適切な符号化値または逆量子化係数にマップする。逆量子化係数に対する望ましいビットの数は、一つの設計パラメータである。このマトリックス乗算および逆量子化演算からもたらされる可能性のある大きな逆量子化係数の値は、特に内蔵型システムなど、リソースが制約されたシステムに対して問題となる。
【課題を解決するための手段】
【００１１】
本発明の或る好適な実施形態は、ビットストリームを復号する方法であって、該方法は、（ａ）ビットストリームからの少なくとも一つのピクチャを復号するステップと；（ｂ）該少なくとも一つのピクチャの各々を複数のスライスにパーティショニングするステップであって、該複数のスライスの各々は少なくとも一つの符号化ユニットを含む、該パーティショニングするステップと；を含み、（ｃ）該少なくとも一つの符号化ユニットの一符号化ユニットのパレットテーブル予測子サイズは、該複数のスライスの一スライスの開始点で０に等しく設定される。
【図面の簡単な説明】
【００１２】
【図１】ＨＥＶＣエンコーダを含んだ電子デバイスの一構成を示すブロック図である。
【図２】ＨＥＶＣデコーダを含んだ電子デバイスの一構成を示すブロック図である。
【図３】コーダおよびデコーダの一例を示すブロック図である。
【図４】電子デバイスにおいて利用可能な様々なコンポーネントを示す。
【図５】例示的なスライス構造を示す。
【図６】別の例示的なスライス構造を示す。
【図７】一つのスライスおよび９つのタイルを有するフレームを示す。
【図８】３つのスライスおよび３つのタイルを有するフレームを示す。
【図９】コンテンツを有する画面を示す。
【図１０】別のコンピューティング環境を示す。
【図１１】パレットテーブル示す。
【図１２】パレットテーブルとフラグのセットとを示す。
【図１３】前のパレットテーブル、予測パレットテーブル、および更新されたパレットテーブルを示す。
【図１４】エスケープモード、インデックスモード、および上部コピーモードに対する選択プロセスを示す。
【図１５】タイル、符号化ユニット、およびパレットテーブルの予測のセットを示す。
【図１６】スライス、符号化ユニット、およびパレットテーブルの予測のセットを示す。
【図１７】ウェーブフロント、符号化ツリーブロック、およびパレットテーブルの予測のセットを示す。
【図１８】従属スライスおよびパレットテーブルの予測のセットを示す。
【図１９】符号化ユニット、およびパレットテーブルの予測のセットを示す。
【図２０Ａ】例示的なパレットテーブル予測プロセスを示す。
【図２０Ｂ】前のパレットテーブルおよび現パレットテーブル予測子が同じストレージを使用可能な一例を示す。
【図２１】同期のためパレットテーブル予測子の一部を格納して使用する例示の実施形態を示す。
【図２２】エンコーダおよびデコーダを示す。
【図２３】逆量子化部、逆変換および逆変換スキップを備えるデコーダを示す。
【図２４】変換スキップフラグに依存する例示的な逆量子化部を示す。
【図２５】逆量子化部、逆変換、逆変換スキップ、および適応カラー変換を用い、復号残差を算定する方法の一つの構成を示すフロー図である。
【図２６】逆量子化部、逆変換、逆変換スキップ、および適応カラー変換を用い、復号残差を算定する方法の一つの構成を示す別のフロー図である。
【図２７】逆量子化部、逆変換、逆変換スキップ、および適応カラー変換を用い、復号残差を算定する方法の一つの構成を示す別のフロー図である。
【図２８】逆量子化部、逆変換、逆変換スキップ、および適応カラー変換を備えるデコーダを示す［図２］。
【発明を実施するための形態】
【００１３】
本発明の前述および他の目的、特徴および利点は、本発明の以下の詳細な説明を添付の図面と併せ以下の詳細な説明考慮すすることによって、より容易に理解されよう。
【００１４】
国際電気通信連合電気通信標準化部門（ＩＴＵ−Ｔ：Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｓｅｃｔｏｒ）研究グループ１６（ＳＧ１６：Ｓｔｕｄｙ  Ｇｒｏｕｐ  １６）作業班３（ＷＰ３：Ｗｏｒｋｉｎｇ  Ｐａｒｔｙ  ３）および国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ：Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ／Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）合同専門委員会１／小委員会２９／作業グループ１１（ＪＴＣ１／ＳＣ２９／ＷＧ１１：Ｊｏｉｎｔ  Ｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｔｔｅｅ  １／Ｓｕｂｃｏｍｍｉｔｔｅｅ  ２９／Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ  １１））は、高効率ビデオ符号化規格（ＨＥＶＣ）と呼ばれるビデオ符号化規格に対する規格化の取り組みを開始した。ＨＥＶＣは、ブロックベースの符号化を用いる。
【００１５】
ビデオ符号化では、変換および量子化された係数（ＴＱＣ：Ｔｒａｎｓｆｏｒｍｅｄ  ａｎｄ  Ｑｕａｎｔｉｚｅｄ  Ｃｏｅｆｆｉｃｉｅｎｔ）を損失なく圧縮するために、２つのエントロピー符号化技法（例えば、コンテキスト適応型可変長符号化（ＣＡＶＬＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）、およびコンテキスト適応型２値算術符号化（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ））を用いることが可能である。ＴＱＣは、変換サイズ（例えば、４×４、８×８、１６×１６、３２×３２）に従って、いろいろなブロックサイズを使ってもよい。
【００１６】
２次元（２Ｄ）ＴＱＣは、エントロピー符号化の前に一次元（１Ｄ）配列に変換される。一例として、４×４ブロックでの２Ｄ配列のＴＱＣは表（１）に示されるように配列できる。
【表１】
2017522839.tif 000003
表（１）
【００１７】
２Ｄ  ＴＱＣを１Ｄ配列へ変換するときに、ブロックを斜めジグザグ状にスキャンすることができる。この例を続けると、表（１）に示される２Ｄ配列のＴＱＣは、第一行第一列、第一行第二列、第二行第一列、第三行第一列、第二行第二列、第一行第三列、第一行第４列、第二行第三列、第三行および第二列、第４行第一列などをスキャンすることにより１Ｄ配列のＴＱＣ［４，０，３，−３，２，１，０，−１，０…］に変換することが可能である。
【００１８】
ＣＡＶＬＣ符号化手順は、例えば、次のように進めればよい。１Ｄ配列のＴＱＣはスキャン位置に従って順序付けることができる。最後の有意係数のスキャン位置および最後の係数レベルが確定可能である。最後の有意係数が符号化できる。なお、通常、係数は逆スキャン順に符号化される。ラン−レベル符号化が実施でき、これは、最後の係数符号化の直後にアクティブ化される。次いで、レベル符号化の実施が可能である。有意係数という用語は、ゼロより大きい係数レベル値を有する係数を言う。係数レベル値とは、変換および量子化された係数（ＴＱＣ）値の大きさ（または絶対値）の固有のインジケータを言う。
【００１９】
この手順は（１Ｄ配列のＴＱＣ［４，０，３，−３，２，１，０，−１，０，…］を用いた）上記の例の続きとして表（２）に示すことができる。
【表２】
2017522839.tif 000004
【００２０】
表（２）では、例えば、スキャン位置７における係数レベル−１が最後の非ゼロ係数であり得る。しかして、最後の位置はスキャン位置７であり、最後の係数レベルは−１である。スキャン位置６、５および４における係数０、１および２に対してラン−レベル符号化を行うことが可能である（係数が逆スキャン順に符号化される）。次に、係数レベル−３、３、０および４に対してレベル符号化を行うことができる。
【００２１】
図１は、ビデオが符号化可能な電子デバイス１０２の一構成を示すブロック図である。なお、電子デバイス１０２内に含まれて示される一つ以上の要素は、ハードウェアでも、ソフトウェアでもまたは両方の組み合わせで実装されてもよい。例えば、電子デバイス１０２は、ハードウェアでも、ソフトウェアでもまたは両方の組み合わせで実装されてもよいコーダ１０８を含む。例として、コーダ１０８は、回路、集積回路、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、実行可能な命令を有するメモリと電子通信を行うプロセッサ、ファームウェア、フィールドプログラマブルゲート配列（ＦＰＧＡ：ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）など、またはそれらの組み合わせとして実装されてもよい。いくつかの構成において、コーダ１０８は、高効率ビデオ符号化（ＨＥＶＣ）コーダとすることができる。
【００２２】
電子デバイス１０２は、供給部１０４を含むとよい。供給部１０４は、ピクチャまたは画像データ（例えば、ビデオ）を情報源１０６としてコーダ１０８に供給することが可能である。供給部１０４の例は、イメージセンサ、メモリ、通信インターフェース、ネットワークインターフェース、ワイヤレス受信機、ポートなどを含む。
【００２３】
情報源１０６は、イントラフレーム予測モジュールおよび再構成バッファ１１０に供給することができる。情報源１０６は、動き推定および動き補償モジュール１３６および減算モジュール１１６にも供給が可能である。
【００２４】
イントラフレーム予測モジュールおよび再構成バッファ１１０は、情報源１０６および再構成データ１５０に基づいてイントラモード情報１２８およびイントラ信号１１２を発生させることができる。動き推定および動き補償モジュール１３６は、情報源１０６および参照ピクチャバッファ１６６信号１６８に基づいてインターモード情報１３８およびインター信号１１４を発生させることが可能である。参照ピクチャバッファ１６６信号１６８は、参照ピクチャバッファ１６６に格納された一つ以上の参照ピクチャからのデータを含むことができる。
【００２５】
コーダ１０８は、モードに従ってイントラ信号１１２とインター信号１１４との間で選択を行うことが可能である。イントラ信号１１２は、イントラ符号化モードでピクチャ内の空間的特性を活用するために用いるとよい。インター信号１１４は、インター符号化モードでピクチャ間の時間的特性を活用するためにも用いるとよい。イントラ符号化モードの間は、イントラ信号１１２を減算モジュール１１６に供給でき、イントラモード情報１２８をエントロピー符号化モジュール１３０に供給できる。インター符号化モードの間は、インター信号１１４を減算モジュール１１６に供給でき、インターモード情報１３８をエントロピー符号化モジュール１３０に供給できる。
【００２６】
予測残差１１８を生成するために、（モードに依存して）イントラ信号１１２またはインター信号１１４のいずれかが、減算モジュール１１６で情報源１０６から減算される。予測残差１１８は、変換モジュール１２０に供給される。変換モジュール１２０は、量子化モジュール１２４に供給される変換信号１２２を生成するために、予測残差１１８を圧縮することができる。量子化モジュール１２４は、変換および量子化された係数（ＴＱＣ）１２６を生成するために、変換信号１２２を量子化する。
【００２７】
ＴＱＣ１２６は、エントロピー符号化モジュール１３０および逆量子化モジュール１４０に供給される。逆量子化モジュール１４０は、逆変換モジュール１４４に供給される逆量子化された信号１４２を生成するために、ＴＱＣ１２６に対して逆量子化を実施する。逆変換モジュール１４４は、再構成モジュール１４８に供給される圧縮解除信号１４６を生成するために、逆量子化された信号１４２を圧縮解除する。
【００２８】
再構成モジュール１４８は、圧縮解除信号１４６に基づいて再構成データ１５０を生成することができる。例えば、再構成モジュール１４８は、（修正された）ピクチャを再構成することが可能である。再構成データ１５０は、デブロッキングフィルタ１５２に、およびイントラ予測モジュールおよび再構成バッファ１１０に供給することができる。デブロッキングフィルタ１５２は、再構成データ１５０に基づいてフィルタされた信号１５４を生成すればよい。
【００２９】
フィルタされた信号１５４は、サンプル適応オフセット（ＳＡＯ：ｓａｍｐｌｅ  ａｄａｐｔｉｖｅ  ｏｆｆｓｅｔ）モジュール１５６に供給することができる。ＳＡＯモジュール１５６は、エントロピー符号化モジュール１３０に供給されるＳＡＯ情報１５８、および適応ループフィルタ（ＡＬＦ：ａｄａｐｔｉｖｅ  ｌｏｏｐ  ｆｉｌｔｅｒ）１６２に供給されるＳＡＯ信号１６０を生成することが可能である。ＡＬＦ１６２は、参照ピクチャバッファ１６６に供給されるＡＬＦ信号１６４を生成する。ＡＬＦ信号１６４は、参照ピクチャとして用いられる一つ以上のピクチャからのデータを含んでよい。場合によっては、ＡＬＦ１６２は省略されてもよい。
【００３０】
エントロピー符号化モジュール１３０は、ビットストリーム１３４を生成するためにＴＱＣ１２６を符号化することができる。前述のように、ＴＱＣ１２６は、エントロピー符号化の前に１Ｄ配列へ変換されてよい。また、エントロピー符号化モジュール１３０は、ＣＡＶＬＣまたはＣＡＢＡＣを用いてＴＱＣ１２６を符号化することができる。具体的に、エントロピー符号化モジュール１３０は、イントラモード情報１２８、インターモード情報１３８、およびＳＡＯ情報１５８のうちの一つ以上に基づいてＴＱＣ１２６を符号化することができる。ビットストリーム１３４は、符号化ピクチャデータを含んでよい。
【００３１】
ＨＥＶＣなどのビデオ圧縮に含まれる量子化は、ある範囲の値を単一の量子値に圧縮することによって達成される損失の多い圧縮技術である。量子化パラメータ（ＱＰ：ｑｕａｎｔｉｚａｔｉｏｎ  ｐａｒａｍｅｔｅｒ）は、再構成ビデオの品質および圧縮比の両方に基づいて量子化を行うために用いられる予め定義されたスケーリングパラメータである。ＨＥＶＣでは、所与のブロックの特性をブロックサイズおよびそのカラー情報に基づいて表現するためにブロック型が定義される。ＱＰ、解像度情報およびブロック型は、エントロピー符号化の前に確定されるとよい。例えば、電子デバイス１０２（例えば、コーダ１０８）は、エントロピー符号化モジュール１３０に供給可能なＱＰ、解像度情報およびブロック型を決定することができる。
【００３２】
エントロピー符号化モジュール１３０は、ＴＱＣ１２６のブロックに基づいてブロックサイズを決定することが可能である。例えば、ブロックサイズは、ＴＱＣのブロックの一つのディメンジョンに沿ったＴＱＣ１２６の数とすればよい。言い換えれば、ＴＱＣのブロック中のＴＱＣ１２６の数は、ブロックサイズの二乗に等しくてよい。例として、ブロックサイズは、ＴＱＣのブロック中のＴＱＣ１２６の数の平方根として決定することが可能である。解像度は、画素の幅×画素の高さとして定義することができる。解像度情報は、ピクチャの幅、ピクチャの高さ、または両方に関する画素数を含めばよい。ブロックサイズは、ＴＱＣの２Ｄのブロックの一つのディメンジョンに沿ったＴＱＣの数として定義されてもよい。
【００３３】
いくつかの構成において、ビットストリーム１３４は、別の電子デバイスに送信することができる。例えば、ビットストリーム１３４は、通信インターフェース、ネットワークインターフェース、ワイヤレス送信機、ポートなどに供給することが可能である。例として、ビットストリーム１３４は、ローカルエリアネットワーク（ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、セルラーフォン基地局などを介して別の電子デバイスへ送信さてよい。これに加えてまたは換えて、ビットストリーム１３４は、電子デバイス１０２上のメモリに格納されてもよい。
【００３４】
図２は、高効率ビデオ符号化（ＨＥＶＣ）デコーダとすることが可能なデコーダ２７２を含んだ電子デバイス２７０の一構成を示すブロック図である。デコーダ２７２およびデコーダ２７２に含まれて示される一つ以上の要素は、ハードウェアでも、ソフトウェアでもまたは両方の組み合わせで実装されてもよい。デコーダ２７２は、復号するためにビットストリーム２３４（例えば、ビットストリーム２３４に含まれる一つ以上の符号化ピクチャ）を受信することができる。いくつかの構成において、受信ビットストリーム２３４は、受信されたオーバーヘッド情報、例えば、受信されたスライスヘッダ、受信されたピクチャパラメータセット（ＰＰＳ：ｐｉｃｔｕｒｅ  ｐａｒａｍｅｔｅｒ  ｓｅｔ）、受信されたバッファ記述情報、分類インジケータなどを含むことが可能である。
【００３５】
ビットストリーム２３４から受信されたシンボル（例えば、符号化ＴＱＣ）は、エントロピー復号モジュール２７４によってエントロピー復号することができる。これは、動き情報信号２９８ならびに復号、変換および量子化された係数（ＴＱＣ）５７８を生成することが可能である。
【００３６】
動き情報信号２９８は、動き補償モジュール２９４においてフレームメモリ２９０からの復号ピクチャ２９２の一部分と結合すればよく、該モジュールはフレーム間予測信号２９６を生成することができる。復号された変換および量子化された係数（ＴＱＣ）２７８は、逆量子化および逆変換モジュール２８０により逆量子化および逆変換が可能で、これにより、復号残差信号２８２を生成される。復号残差信号２８２は、結合信号２８４を生成するために加算モジュール２０７によって予測信号２０５に加算することができる。予測信号２０５は、動き補償モジュール２９４によって生成されたフレーム間予測信号２９６、またはイントラフレーム予測モジュール２０１によって生成されたイントラフレーム予測信号２０３のいずれかから選択された信号であり得る。いくつかの構成において、この信号選択は、ビットストリーム２３４に基づけば（例えば、ビットストリーム２３４によって制御すれば）よい。
【００３７】
フレーム内予測信号２０３は、（例えば、現フレームにおける）結合信号２８４中の前に復号された情報から予測が可能である。また、結合信号２８４は、デブロッキングフィルタ２８６によってフィルタするとよい。得られたフィルタ済み信号２８８は、サンプル適応オフセット（ＳＡＯ）モジュール２３１に供給することができる。フィルタ済み信号２８８およびエントロピー復号モジュール２７４からの情報２３９に基づいて、ＳＡＯモジュール２３１は、適応ループフィルタ（ＡＬＦ）２３３に供給されるＳＡＯ信号２３５を生成することが可能である。ＡＬＦ２３３は、フレームメモリ２９０に供給されるＡＬＦ信号２３７を生成する。ＡＬＦ信号２３７は、参照ピクチャとして用いることの可能な一つ以上のピクチャからのデータを含むことができる。ＡＬＦ信号２３７は、フレームメモリ２９０へ書き込めばよい。得られたＡＬＦ信号２３７は、復号ピクチャを含むことが可能である。場合によって、ＡＬＦ２３３は省略されてもよい。
【００３８】
フレームメモリ２９０は、復号ピクチャバッファ（ＤＰＢ：ｄｅｃｏｄｅｄ  ｐｉｃｔｕｒｅ  ｂｕｆｆｅｒ）を含むことが可能である。また、フレームメモリ２９０は、復号ピクチャに対応するオーバーヘッド情報も含むことも可能である。例えば、フレームメモリ２９０は、スライスヘッダ、ピクチャパラメータセット（ＰＰＳ）情報、サイクルパラメータ、バッファ記述情報などを含んでよい。これらの情報の一つ以上は、コーダ（例えば、コーダ１０８）からシグナリングすることができる。
【００３９】
フレームメモリ２９０は、一つ以上の復号ピクチャ２９２を動き補償モジュール２９４に供給することが可能である。さらに、フレームメモリ２９０は、デコーダ２７２から出力された一つ以上の復号ピクチャ２９２も供給できる。一つ以上の復号ピクチャ２９２は、例えば、ディスプレイ上に提示されるか、メモリに格納されるか、または別のデバイスへ送信されてよい。
【００４０】
図３は、コーダ９０８およびデコーダ３７２の一例を示すブロック図である。この例では、電子デバイスＡ３０２および電子デバイスＢ３７０が示されている。但し、一部の構成では、電子デバイスＡ３０２および電子デバイスＢ３７０に関して説明する特徴および機能は、単一の電子デバイス中に組み合わされてもよい。
【００４１】
電子デバイスＡ３０２は、コーダ３０８を含む。コーダ３０８は、ハードウェア中に、ソフトウェア中に、または両方の組み合わせ中に実装されてもよい。一構成において、コーダ３０８は、高効率ビデオ符号化（ＨＥＶＣ）エンコーダとすることができる。電子デバイスＡ３０２は情報源３０６を取得することが可能である。いくつかの構成において、情報源３０６は、イメージセンサを用いて電子デバイスＡ３０２上で取り込まれるか、メモリから読み出されるか、または別の電子デバイスから受信することができる。
【００４２】
コーダ３０８は、ビットストリーム３３４を生成するために情報源３０６を符号化することができる。例えば、コーダ３０８は、情報源３０６中の一連のピクチャ（例えば、ビデオ）を符号化することが可能である。コーダ３０８は、図１に関連して前述したコーダ１０８と同様であってよい。
【００４３】
ビットストリーム３３４は、情報源３０６に基づく符号化ピクチャデータを含むことができる。また、いくつかの構成において、ビットストリーム３３４は、スライスヘッダ情報、ＰＰＳ情報などのオーバーヘッド・データも含んでよい。情報源３０６中のさらなるピクチャが符号化されれば、ビットストリーム３３４は一つ以上の符号化ピクチャを含むことが可能である。
【００４４】
ビットストリーム３３４は、デコーダ３７２に供給されてよい。一例において、ビットストリーム３３４は、有線または無線リンクを用いて電子デバイスＢ３７０に送信することができる。いくつかの場合、これは、インターネットまたはローカルエリアネットワーク（ＬＡＮ）などのネットワークを介して行えばよい。図３に示されるように、デコーダ３７２は、電子デバイスＡ３０２上のコーダ３０８とは別に、電子デバイスＢ３７０上に実装することができる。但し、一部の構成では、コーダ３０８およびデコーダ３７２が同じ電子デバイス上に実装されてもよい。コーダ３０８およびデコーダ３７２が同じ電子デバイス上に実装される或る実装において、例えば、ビットストリーム３３４は、バスを介してデコーダ３７２に供給するか、またはデコーダ３７２による読み出しのためにメモリに格納することが可能である。
【００４５】
デコーダ３７２は、ハードウェアでも、ソフトウェアでも、または両方の組み合わせで実装されてもよい。一構成において、デコーダ３７２は、高効率ビデオ符号化（ＨＥＶＣ）デコーダとすることが可能である。デコーダ３７２は、図２に関連して前述したデコーダ２７２と同様であってよい。
【００４６】
図４は、電子デバイス１００９において利用可能な様々なコンポーネントを示す。電子デバイス１００９は、一つ以上の電子デバイスとして実装されてもよい。例えば、電子デバイス１００９は、図１に関連して前述した電子デバイス１０２として、図２に関連して前述した電子デバイス５７０として、またはその両方として実装されてもよい。
【００４７】
電子デバイス４０９は、電子デバイス４０９の動作を制御するプロセッサ４１７を含む。プロセッサ４１７は、ＣＰＵとも呼ばれることもある。メモリ４１１は、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）の両方、または情報を格納可能な任意の種類のデバイスを含んでよく、命令４１３ａ（例えば、実行可能命令）およびデータ４１５ａをプロセッサ４１７に供給する。メモリ４１１の一部は、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ：ｎｏｎ−ｖｏｌａｔｉｌｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）を含んでもよい。メモリ４１１は、プロセッサ４１７と電子通信が可能である。
【００４８】
また、命令４１３ｂおよびデータ４１５ｂは、プロセッサ４１７にも常駐することができる。プロセッサ４１７の中にロードされる命令４１３ｂおよび／またはデータ４１５ｂは、プロセッサ４１７による実行または処理のためにロードされた、メモリ４１１からの命令４１３ａおよび／またはデータ４１５ａも含み得る。命令４１３ｂは、本明細書に開示される一つ以上の技法を実装するためにプロセッサ４１７によって実行することができる。
【００４９】
電子デバイス４０９は、他の電子デバイスとの通信のために一つ以上の通信インターフェース４１９を含むことが可能である。通信インターフェース４１９は、有線通信技術、ワイヤレス通信技術、または両方に基づくことができる。通信インターフェース４１９の例は、シリアルポート、パラレルポート、ユニバーサルシリアルバス（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、イーサネット（登録商標）アダプタ、ＩＥＥＥ１３９４バスインターフェース、小型コンピュータシステムインターフェース（ＳＣＳＩ：ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）バスインターフェース、赤外線（ＩＲ）通信ポート、Ｂｌｕｅｔｏｏｔｈ（登録商標）ワイヤレス通信アダプタ、第三世代パートナーシップ・プロジェクト（３ＧＰＰ：３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ）仕様によるワイヤレストランシーバなどを含む。
【００５０】
電子デバイス４０９は、一つ以上の出力デバイス４２３および一つ以上の入力デバイス４２１を含むことができる。出力デバイス４２３の例は、スピーカ、プリンタなどを含む。電子デバイス４０９に含めることが可能な出力デバイスの一つの種類には、ディスプレイデバイス４２５がある。本明細書に開示される構成とともに用いられるディスプレイデバイス４２５には、陰極線管（ＣＲＴ：ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ）、液晶ディスプレイ（ＬＣＤ：ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）、発光ダイオード（ＬＥＤ：ｌｉｇｈｔ−ｅｍｉｔｔｉｎｇ  ｄｉｏｄｅ）、気体プラズマ、エレクトロルミネセンスなど、任意の適切な画像投影技術を利用すればよい。ディスプレイコントローラ４２７は、メモリ４１１に格納されたデータをディスプレイ４２５上に示される（必要に応じ）テキスト、グラフィックス、および／または動画像に変換するために設けることができる。入力デバイス４２１の例は、キーボード、マウス、マイクロフォン、リモートコントロールデバイス、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペンなどを含む。
【００５１】
電子デバイス４０９の様々なコンポーネントは、バスシステム４２９によって一緒に連結され、該バスシステムは、データバスに加えて、電力バス、制御信号バス、およびステータス信号バスを含み得る。但し、明確化のため、図４ではこれら様々なバスが、バスシステム４２９として示されている。図４に示される電子デバイス４０９は、具体的なコンポーネントのリスティングというよりもむしろ機能ブロック図である。
【００５２】
用語「コンピュータ可読媒体」とは、コンピュータまたはプロセッサによってアクセスできる任意の利用可能な媒体を言う。本明細書用いる用語「コンピュータ可読媒体」は、非一時的かつ有形のコンピュータおよび／またはプロセッサ可読媒体を表し得る。限定ではなく例として、コンピュータ可読またはプロセッサ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、あるいは、命令の形で所望のプログラムコードまたはデータ構造体を搬送もしくは格納するために用いることができ、コンピュータまたはプロセッサによってアクセス可能な任意の他の媒体を含むことが可能である。本明細書で用いるディスク（ｄｉｓｋ）およびディスク（ｄｉｓｃ）は、コンパクトディスク（ＣＤ：ｃｏｍｐａｃｔ  ｄｉｓｃ）、レーザディスク（ｄｉｓｃ）、光ディスク（ｄｉｓｃ）、デジタルバーサタイルディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｃ）、フロッピー（登録商標）ディスク（ｄｉｓｋ）およびＢｌｕ−ｒａｙ（登録商標）ディスク（ｄｉｓｃ）を含み、ディスク（ｄｉｓｋ）は、通常、磁気的にデータを再生し、一方、ディスク（ｄｉｓｃ）はレーザを用いて光学的にデータを再生する。デコーダおよび／またはエンコーダのためのコードは、コンピュータ可読媒体に格納することができる。
【００５３】
「符号化ブロック」：或る値Ｎに対するサンプル群のＮ×Ｎブロックであって、符号化ツリーブロックの符号化ブロックへの分割がパーティショニングとなる。
【００５４】
「符号化ツリーブロック」：或る値Ｎに対するサンプル群のＮ×Ｎブロックであって、コンポーネントの符号化ツリーブロックへの分割がパーティショニングとなる。
【００５５】
「符号化ツリーユニット」：輝度サンプルの符号化ツリーブロック、または、３つのサンプル配列を有するピクチャの色差サンプルの２つの対応符号化ツリーブロック、または、白黒ピクチャもしくは３つの別個のカラー平面とサンプルの符号化に使われる構文構造体とを用いて符号化されたピクチャのサンプルの符号化ツリーブロック。
【００５６】
「符号化ユニット」：輝度サンプルの符号化ユニット、または、３つのサンプル配列を有するピクチャの色差サンプルの２つの対応符号化ブロック、または、白黒ピクチャもしくは３つの別個のカラー平面と当該サンプルの符号化に使われる構文構造体とを用いて符号化されたピクチャのサンプルの符号化ブロック。
【００５７】
「コンポーネント」：４：２：０、４：２：２、または４：４：４のカラーフォーマットでピクチャを構成する３つの配列（輝度および２つの色差）の一つからの配列または単一のサンプル、または、白黒フォーマットでピクチャを構成する配列の該配列または単一のサンプル。
【００５８】
「ネットワーク抽象化層（ＮＡＬ：ｎｅｔｗｏｒｋ  ａｂｓｔｒａｃｔｉｏｎ  ｌａｙｅｒ）ユニット」：後続のデータの種類の表示を包含する構文構造体、および必要に応じエミュレーション防止バイトと共に散在されたＲＢＳＰの形で当該データを包含するバイト。
【００５９】
「ネットワーク抽象化層（ＮＡＬ）ユニットストリーム」：ＮＡＬユニットのシーケンス。
【００６０】
「ピクチャ」：白黒フォーマットでの輝度サンプルの配列、または輝度サンプルと、４：２：０、４：２：２、または４：４：４のカラーフォーマットによる色差サンプルの２つの対応配列との配列。ピクチャはフレームまたはフィールドのいずれでもよい。但し、一ＣＶＳでは、全てのピクチャがフレームであるか、もしくは全てのピクチャがフィールドである。
【００６１】
「ピクチャパラメータセット（ＰＰＳ）」：各スライスセグメントヘッダ中の或る構文要素によって決まり、ゼロ以上の全符号化ピクチャに適用される構文要素群を包含する構文構造体。
【００６２】
「予測ブロック」：同じ予測が適用されるサンプルのＭ×Ｎの矩形ブロック。
【００６３】
「予測プロセス」：現在復号中のデータ要素（例えばサンプル値または動きベクトル）の推定を提供するための、予測子の使用。
【００６４】
「予測ユニット」：輝度サンプルの予測ブロック、または、３つのサンプル配列を有するピクチャの色差サンプルの２つの対応予測ブロック、または、白黒ピクチャのサンプルの予測ブロックもしくは３つの別個のカラー平面と予測ブロックサンプルの予測に使われる構文構造体とを用いて符号化されたピクチャのサンプルの予測ブロック。
【００６５】
「予測子」：後続するデータ要素の復号プロセスにおいて使われる、指定値、または前に復号されたデータ要素（例えば、サンプル値または動きベクトル）の組み合わせ。
【００６６】
「四分ツリー」：親ノードが４つの子ノードに分割可能なツリーで、それぞれの子ノードは、４つの子ノードへの別の分割の親ノードになることができる。
【００６７】
「量子化パラメータ」：変換係数レベルのスケーリングのため、復号プロセスで使用される変数。
【００６８】
「ラスタスキャン」：一次元パターンへの最初のエントリが、左から右にスキャンされる二次元パターンの第一トップ行からであり、同様に、各々が左から右へスキャンされるパターンの第二、第三などの行が（下方向に）続く、矩形二次元パターンの一次元パターンへのマッピング。
【００６９】
「スケーリング」：変換係数レベルに倍数を乗じて、変換係数を得る処理。
【００７０】
「シーケンスパラメータセット（ＳＰＳ：ｓｅｑｕｅｎｃｅ  ｐａｒａｍｅｔｅｒ  ｓｅｔ）」：各スライスセグメントヘッダの構文要素によって参照されるＰＰＳ中の構文要素のコンテンツによって決まる、ゼロ以上の全ＣＶＳに適用される構文要素を包含する構文構造体。
【００７１】
「スライスヘッダ」：現在のスライスセグメントである独立スライスセグメント、または復号順序で現在の従属スライスセグメントに先行する直近の独立スライスセグメントのスライスセグメントヘッダ。
【００７２】
「スライスセグメント」：タイルスキャン中に連続的に順序付けられ、単一のＮＡＬユニット中に包含される符号化ツリーユニットの数の整数。
【００７３】
「スライスセグメントヘッダ」：スライスセグメント中に表された最初のまたは全ての符号化ツリーユニットに関連するデータ要素を包含する符号化スライスセグメントの部分。
【００７４】
「タイルスキャン」：ピクチャのタイルのラスタスキャンにおいてピクチャ中のタイルが連続的に順序付けられ、タイル中の符号化ツリーブロックのラスタスキャンにおいて符号化ツリーブロックが連続的に順序付けられる、符号化ツリーブロックがピクチャをパーティショニングする特定の逐次的順序付け。
【００７５】
「変換ブロック」：同一の変換が適用される、サンプルのＭ×Ｎの矩形ブロック。
【００７６】
「変換係数」：復号プロセスの逆変換部分における、特定の一次元または二次元の周波数インデックスに関連付けられた、周波数ドメイン中にあると見なされるスカラー量。
【００７７】
「変換係数レベル」：変換係数値の計算のためのスケーリングに先立って、復号プロセスにおいて特定の二次元周波数インデックスに関連付けられた値を表す整数量。
【００７８】
「変換ユニット」：サイズ８×８、１６×１６もしくは３２×３２の輝度サンプルの変換ブロック、または、サイズ４×４の輝度サンプルの４つの変換ブロック、または４：２：０カラーフォーマットによるピクチャの色差サンプルの２つの対応変換ブロック；あるいは、サイズ８×８、１６×１６もしくは３２×３２の輝度サンプルの変換ブロックおよび色差サンプルの４つの対応変換ブロック、または、サイズ４×４の輝度サンプルの４つの変換ブロックおよび４：２：２カラーフォーマットによるピクチャの色差サンプルの４つの対応変換ブロック；あるいは、サイズ４×４、８×８、１６×１６もしくは３２×３２の輝度サンプルの変換ブロック、および３つの別個のカラー平面と変換ブロックサンプルを変換するのに使われる構文構造体とを用いて符号化をされていない、４：４：４カラーフォーマットによるピクチャの色差サンプルの２つの対応変換ブロック；あるいは、サイズ８×８、１６×１６もしくは３２×３２の輝度サンプルの変換ブロック、または、白黒ピクチャ、もしくは、３つの別個のカラー平面と変換ブロックサンプルを変換するのに使われる関連構文構造体とを用いて符号化された、４：４：４カラーフォーマットによるピクチャのサイズ４×４の輝度サンプルの４つの変換ブロック。
【００７９】
「ｚ−スキャン順序」：ピクチャをパーティショニングするブロックの特定の逐次順序であって、この順序は、ブロックが符号化ツリーブロックと同じサイズのときは、ピクチャの符号化ツリーブロックラスタスキャンと同一であり、ブロックが符号化ツリーブロックより小さいサイズ、すなわち、符号化ツリーブロックがさらに小さな符号化ブロックにパーティショニングされるとき、この順序は、ピクチャの符号化ツリーブロックのラスタスキャンにおいて、符号化ツリーブロックから符号化ツリーブロックへ横断し、各符号化ツリーブロックは、階層的に下部レベルへと四分ツリーに分割可能であり、その内部では、この順序は、直近上部レベルの四分ツリーの特定レベル四分ツリーラスタスキャンで、特定レベルの四分ツリーから四分ツリーへと横断する。複数の（例えば、本明細書では一般的にブロックと称する）符号化ツリーブロックを含む入力ピクチャは、一つまたは複数のスライスにパーティショニングすることができる。スライスが表現するピクチャの区域でのサンプルの値は、エンコーダおよびデコーダで用いられる参照ピクチャが同じであり、かつデブロッキングフィルタリングがスライス境界を越えて情報を用いないことを条件として、他のスライスからのデータを用いることなく適切に復号することが可能である。したがって、スライスに対するエントロピー復号およびブロック再構成は、他のスライスに依存しない。具体的に、エントロピー符号化状態は各スライスの開始時にリセットすることができる。他のスライス中のデータは、エントロピー復号および再構成の両方について近傍の利用可能性を定義するときに、利用不可能とマーク付けすることが可能である。スライス群は、並列にエントロピー復号および再構成することができる。或る例では、スライスの境界を横断するイントラ予測および動きベクトル予測は許されない。対照的に、デブロッキングフィルタリングは、スライス境界を越えて情報を用いることができる。
【００８０】
図５は、水平方向に１１ブロックおよび垂直方向に９ブロックを備える例示的なビデオピクチャ９０を示す（９つの例示的なブロックが９１〜９９とラベル付けされる）。図５は、３つの例示的なスライス、すなわち、「スライス＃０」８０と表示された第一スライス、「スライス＃１」８１と表示された第二スライス、および「スライス＃２」８２と表示された第三スライスを示す。デコーダは、３つのスライス８０、８１、８２を並列に復号して再構成することができる。それぞれのスライスは、スキャンライン順に順次的に送信が可能である。各スライスに対する復号／再構成の初めに、コンテキストモデルが初期化またはリセットされ、他のスライス中のブロックは、エントロピー復号およびブロック再構成の両方について利用不可能とマーク付けされる。コンテキストモデルは、一般に、エントロピーエンコーダおよび／またはデコーダの状態を表す。しかして、或るブロック、例えば、「スライス＃１」中の９３とラベル付けされたブロックに対して、「スライス＃０」中のブロック（例えば、９１および９２とラベル付けされたブロック）は、コンテキストモデル選択にも再構成にも用いることができない。一方、或るブロック、例えば、「スライス＃１」中の９５とラベル付けされたブロックに対して、「スライス＃１」中の他のブロック（例えば、９３および９４とラベル付けされたブロック）は、コンテキストモデル選択または再構成に用いることができる。したがって、エントロピー復号およびブロック再構成はスライス内で順次に進む。スライスがフレキシブルなブロック順序付け（ＦＭＯ：ｆｌｅｘｉｂｌｅ  ｂｌｏｃｋ  ｏｒｄｅｒｉｎｇ）を用いて定義されている場合を除き、スライス内のブロックは、ラスタスキャン順に処理される。
【００８１】
フレキシブルなブロック順序付けは、どのようにピクチャがスライスにパーティショニングされるかを変更するためのスライスグループを定義する。スライスグループ中のブロックは、ブロック−スライスグループ間のマップによって定義され、該マップはピクチャパラメータセットのコンテンツおよびスライスヘッダ中の追加情報としてシグナリングされる。このブロック−スライスグループ間のマップは、ピクチャ中の各ブロックに対するスライスグループの識別番号から成る。スライスグループ識別番号は、関連するブロックがどのスライスグループに属するかを指定する。各スライスグループは、一つ以上のスライスにパーティショニング可能で、スライスは、或る特定のスライスグループのブロックのセット内の、ラスタスキャンの順に処理される同じスライスグループ中のブロックのシーケンスである。エントロピー復号およびブロック再構成は、スライスグループ内で順次的に進む。
【００８２】
図５は、３つのスライスグループ、すなわち、「スライスグループ＃０」１０３と表示された第一スライスグループ、「スライスグループ＃１」１０４と表示された第二スライスグループ、および「スライスグループ＃２」１０５と表示された第三スライスグループへの例示的なブロック割り当てを表す。これらのスライスグループ１０３、１０４、１０５は、ピクチャ９０におけるそれぞれ２つの前景領域および一つの背景領域に関連付けることができる。
【００８３】
図５に示されるようなスライスの配置は、各スライスを、ラスタスキャンまたはラスタスキャン順としても知られる、画像スキャン順にブロックの対の間に定義するように限定することができる。スキャン順スライスのこの配置は、計算が効率的であるが、高効率並列符号化および復号には適さない傾向がある。さらに、スライスのこのスキャン順の定義は、符号化効率に大いに適した共通の特性を有する可能性の高い画像のより小さい局所領域を、一緒にグループ化することもしにくい。図６に示されるようなスライスの配置は、その配置が非常にフレキシブルであるが、高効率並列符号化または復号には結び付きにくい。さらに、この極めてフレキシブルなスライスの定義は、デコーダに実装するには計算が複雑である。
【００８４】
図７を参照すると、タイル技法により、画像を一組の（正方形を含めて）矩形の領域に分割されている。それぞれのタイル内の（いくつかのシステムでは代わりに最大符号化ユニットまたは符号化ツリーブロックと呼ばれる）ブロック群は、ラスタスキャン順に符号化および復号される。タイル群の配置も同様にラスタスキャン順に符号化または復号される。それに沿って、任意の適切な数（例えば、０以上）の列境界があり、かつ任意の適切な数（例えば、０以上）の行境界があってもよい。しかして、フレームが一つ以上のスライス、例えば、図７に示される一つのスライスを定義してもよい。いくつかの実施形態において、異なるタイルに位置するブロックは、隣接ブロックの情報に依存するイントラ予測、動き補償、エントロピー符号化コンテキスト選択または他の処理には利用できない。
【００８５】
図８を参照すると、画像を３つの矩形列の一セットに分割するタイル技法が示されている。それぞれのタイル内の（一部のシステムでは代わりに最大符号化ユニットまたは符号化ツリーブロックと呼ばれる）ブロック群は、ラスタスキャン順に符号化および復号される。タイルも同様にラスタスキャン順に符号化および復号される。一つ以上のスライスは、タイルのスキャン順に定義されてよい。それぞれのスライスは、独立して復号可能である。例えば、スライス１がブロック１〜９を含むと定義でき、スライス２がブロック１０〜２８を含むとして定義でき、３つのタイルに及ぶスライス３がブロック２９〜１２６を含むとして定義できる。タイルの使用により、フレームのさらに局所化された領域のデータを処理することにより、符号化の効率化が促進される。
【００８６】
一実施形態において、エントロピー符号化および復号プロセスは、各タイルの開始時に初期化される。エンコーダ側では、この初期化には、エントロピーエンコーダにおいて、掃き出しとしても知られる、所定のビットストリーム位置のセットの一つに達するため、ビットストリームに残りの情報を書き込んで追加のデータをビットストリームに詰め込み、エントロピーエンコーダを所定の状態またはエンコーダおよびデコーダ両方が知っている既知の状態に設定するプロセスを含めることができる。多くの場合、この既知の状態は数値のマトリックスの形である。さらに、所定のビットストリームの位置は、複数のビットが整列された位置、例えば整列されたバイトとすることが可能である。デコーダ側では、この初期化プロセスには、エントロピーデコーダをエンコーダおよびデコーダ両方が知っている既知の状態に設定し、ビットストリーム位置の所定のセットからの読み取るまでは、ビットストリーム中のビットを無視するプロセスを含めることができる。
【００８７】
いくつかの実施形態において、エンコーダおよびデコーダに対して複数の既知の状態が利用可能で、エントロピー符号化および／または復号プロセスを初期化するために用いることが可能である。従来から、初期化のために用いられる既知の状態は、エントロピー初期化インジケータ値を使ってスライスヘッダ中でシグナリングされている。図７および図８中に示されるタイル技法では、タイルとスライスとは相互に整列はされていない。しかして、これら整列されていないタイルおよびスライスについては、従来、スライス中に最初のブロックと同一場所配置される、ラスタスキャン順序で最初のブロックを包含していないタイルに対して送信されるエントロピー初期化インジケータ値がない。例えば図７を参照すると、ブロック１は、スライスヘッダ中で送信されるエントロピー初期化インジケータ値を用いて初期化されているが、次のタイルのブロック１６に対しては同様なエントロピー初期化インジケータ値がなく、該ブロックは、上記スライスヘッダ中で送信されるエントロピー初期化インジケータ値を用いることが可能である。同様に、単一のスライス（これはブロック１に対してはスライスヘッダを有する）に対応する諸タイルに対するブロック３４、４３、６３、８７、９９、１０９、および１２１については、通常、エントロピー初期化インジケータ値は存在せず、これらのブロックは、上記スライスヘッダ中で送信されるエントロピー初期化インジケータ値を用いるほかない。
【００８８】
図８を参照すると、エントロピー初期化インジケータ値が、３つのスライス対し同様な仕方で、スライス１のブロック１に対するスライスヘッダ中に備えられ、スライス２のブロック１０に対するスライスヘッダ中に備えられ、スライス３のブロック２９に対するスライスヘッダ中に備えられる。しかしながら、図７と同様に、中央タイル（ブロック３７から開始）および右側タイル（ブロック１００から開始）に対してはエントロピー初期化インジケータ値が欠如している。中央タイルおよび右側タイルに対するエントロピー初期化インジケータ値が無くては、並列方式且つ高い符号化能率で諸タイルのブロックを効率的に符号化および復号する上で問題が生ずる。一般的には、エンコーダおよび／またはデコーダは、ピクチャを一つ以上のスライスおよび／または一つ以上のタイルにパーティショニングすることが可能である。タイルは、通常、４×４；８×８；１６×１６；３２×３２；および６４×６４などのサイズを有する、複数の正方形符号化ブロックを含む。相互に隣接する符号化ブロックの群を一緒にグループ化して、一般に最大符号化ユニットおよび／または符号化ツリーブロックと称されるグループを形成することができる。通常、スライス内には複数の符号化ツリーブロック（例えば、最大符号化ユニット）がある。通常、タイル内にも複数の符号化ツリーブロック（例えば、最大符号化ユニット）がある。
【００８９】
再度、図７を参照すると、デコーダはピクチャフレーム中のブロック１６の場所を知っているが、エントロピー符号化に起因して、ブロック１５がエントロピー復号されるまで、ビットストリーム中のブロック１６を表すビットの位置は知らない。次のブロックを復号し識別するこのやり方は、低いビットオーバーヘッドを維持しこれは望ましい。しかしながら、これはタイルを並列に復号するのを容易でなくする。エントロピー復号の完了を待たずに、デコーダ中で相異なるタイルを並列して同時に復号できるようにすべく、フレーム中の特定のタイルに対するビットストリーム中の特定の位置を識別する能力を向上するため、ビットストリーム中のタイルの位置を識別する信号をビットストリームの中に含めることが可能である。一例において、ビットストリーム中のタイルの位置のシグナリングが、スライスのヘッダ中で提示される。或る例では、フラグが、ビットストリーム中の諸タイルの位置がスライス内で送信されていることを示す場合、そのスライスには、スライス内のタイル（群）のそれぞれの最初のブロックのスライス内での位置に加え、フレーム内のかかるタイルの数を含めることも可能である。さらに、望ましい場合、タイルの選択されたセットだけに対し、位置情報を含めてもよい。
【００９０】
当然のことながら、いくつかの場合、ビデオ符号化は、タイルを随意的に含まずに、ビデオのフレームに対するウェーブフロント符号化／復号パターンの使用を随意的に含んでもよい。（それぞれのグループがウェーブフロントサブストリームを表現する、符号化ツリーブロックの一つ以上の行の複数のブロックなどの）ビデオの一つ以上のラインを並列方式で符号化／復号することができる。一般に、ビデオのパーティショニングは、任意の適切な方法で構成することが可能である。これにより、低ビットレートエントリポイントシグナリング技法が、ウェーブフロントサブストリームの長さをシグナリングするなど、ビットストリームの他の態様にも同様に適用することができる。
【００９１】
ビデオ符号化規格は、多くの場合、限られた周波数バンド幅および／または限られたストレージ容量をもつチャネルを介して送信するためにビデオデータを圧縮する。これらのビデオ符号化規格は、フレームをより効果的に符号化および復号するために、イントラ予測、空間領域から周波数領域への変換、量子化、エントロピー符号化、動き推定、および動き補償などの、複数の符号化段階を含み得る。符号化および復号段階の多くは、極めて計算的に複雑であるが、そうしなければ最適な仕方で動作ができない。
【００９２】
特に、タイル、スライス、およびウェーブフロントに適したビデオ符号化方式および／または復号方式として、例えば、高効率ビデオ符号化（ＨＥＶＣ）およびその拡張版、例えば、スケーラブル高効率ビデオ符号化（ＳＨＶＣ：Ｓｃａｌａｂｌｅ  Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）、および多視点高効率ビデオ符号化（ＭＶＨＥＶＣ：Ｍｕｌｔｉ−ｖｉｅｗ  Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ））で開示された技法など、任意の適切な技法があろう。ＨＥＶＣ規格は、文書『ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６５、「Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（高効率ビデオ符号化）」、ＳＥＲＩＥＳ  Ｈ：ＡＵＤＩＯＶＩＳＵＡＬ  ＡＮＤ  ＭＵＬＴＩＭＥＤＩＡ  ＳＹＳＴＥＭＳ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ｏｆ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ−Ｃｏｄｉｎｇ  ｏｆ  ｍｏｖｉｎｇ  ｖｉｄｅｏ（２０１３年４月）』に記載されており、この文書は参照することによりその全体が本明細書に組み込まれる。ＭＶ−ＨＥＶＣに対するテキスト草稿が、文書「ＭＶ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ７」、ＪＣＴ３Ｖ−Ｇ１００４、および「ＭＶ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ８」、ＪＣＴ３Ｖ−Ｈ１００２＿ｖ５．ｄｏｃ、Ｖａｌｅｎｃｉａ、２０１４年５月に記載されており、これら文書のそれぞれは参照することによりその全体が本明細書に組み込まれる。ＳＨＶＣに対するテキスト草稿が、文書「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）Ｓｃａｌａｂｌｅ  Ｅｘｔｅｎｓｉｏｎ  （高効率ビデオ符号化スケーラブル拡張）Ｄｒａｆｔ６」、ＪＣＴＶＣ−Ｑ１００８＿ｖ３．ｄｏｃ、および「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）Ｒａｎｇｅ  Ｅｘｔｅｎｓｉｏｎ（高効率ビデオ符号化（ＨＥＶＣ範囲拡張）Ｄｒａｆｔ７」、ＪＣＴＶＣ−Ｑ１００５＿ｖ９．ｄｏｃ、Ｖａｌｅｎｃｉａ、２０１４年５月に記載されており、これら文書のそれぞれは参照することによりその全体が本明細書に組み込まれる。
【００９３】
前述のＨＥＶＣ、ＳＨＶＣ、およびＭＶ−ＨＥＶＣに対する適切な定義は以下を含む：
【００９４】
＊  マトリックス乗算を含む乗算。
【００９５】
／  結果の剰余をゼロに切り捨てる整数除算。例えば、７／４および−７／−４は１に剰余を切り捨てられ、−７／４および７／−４は−１に剰余を切り捨てられる。
【００９６】
÷  数学方程式の中の除算を表すために使用され、この除算では切り捨てまたは丸めは意図されていない。
【００９７】
ｘ？ｙ：ｚ  ｘが真または０に等しくない場合、ｙの値と見なされ、それ以外の場合はｚの値と見なされる。
【００９８】
ｘ＞＞ｙ  ｘの２の補数の整数表現に対するｙバイナリディジットの算術右シフト。この関数は、非負整数値のｙに対してだけ定義される。右シフトの結果としてＭＳＢにシフトされたビットは、シフト演算の前のｘのＭＳＢに等しい値を有する。
【００９９】
ｘ＜＜ｙ  ｘの２の補数の整数表現に対するｙバイナリディジットの算術左シフト。この関数は、非負整数値のｙに対してだけ定義される。左シフトの結果としてＬＳＢにシフトされたビットは、０に等しい値を有する。
【０１００】
Ｌｏｇ２（ｘ）  底２のｘの対数
【数１】
2017522839.tif 000005
【０１０１】
以下の関係演算子は以下のように定義される：
【０１０２】
＞  より大きい
【０１０３】
≧  より以上
【０１０４】
＜  より小さい
【０１０５】
≦  より以下
【０１０６】
＝  に等しい
【０１０７】
！＝  に等しくない。
【０１０８】
或る関係演算子が、値「ｎａ」（ｎｏｔ  ａｐｐｌｉｃａｂｌｅ（非適用））を割り当てられている構文要素または変数に適用される場合、値「ｎａ」は、その構文要素または変数とは別個の値として取り扱われる。値「ｎａ」は、他のいかなる値にも等しくないと見なされる。
【０１０９】
Ｃｅｉｌ（ｘ）ｘ以上の最小の整数に相当する。
【０１１０】
ｒｅａｄ＿ｂｉｔｓ（ｎ）は、ビットストリームから次のｎビットを読み取り、ビットストリームポインタをｎビットに位置分進める。ｎが０に等しい場合、ｒｅａｄ＿ｂｉｔｓ（ｎ）は０に等しい値に戻り、ビットストリームポインタを進めないように指定される。
【０１１１】
ｕ（ｎ）は、ｎビットを用いた符号なし整数に対応する。構文テーブルにおいてｎが「ｖ」のとき、ビットの数は、他の構文要素の値に依存する形で変化する。この記述子に対する構文解析処理は、最上位ビットが最初に書かれた符号無し整数のバイナリ表現として解釈される、関数ｒｅａｄ＿ｂｉｔｓ（ｎ）の戻り値によって指定される。
【０１１２】
ｕｅ（ｖ）は、左ビットが最初のＥｘｐ−Ｇｏｌｏｍｂ符号化構文要素のゼロ順位の符号無し整数に対応する。
【０１１３】
サンプルは、記符号化ツリーブロックを単位として処理される。各輝度符号化ツリーブロックの幅および高さの両方の配列サイズは、サンプルを単位としてＣｔｂＳｉｚｅＹである。各色差記符号化タブに対する配列の幅および高さは、それぞれサンプルを単位としてＣｔｂＷｉｄｔｈＣおよびＣｔｂＨｅｉｇｈｔＣである。変数ＣｔｂＳｉｚｅＹおよびＣｔｂＳｉｚｅＣは、シーケンスパラメータセット中でシグナリングされる構文要素を用いて導出することが可能である。
【０１１４】
ＣＡＢＡＣコンテキストに対し、変数ｐＳｔａｔｅＩｄｘは或る確率状態インデックスに対応し、変数ｖａｌＭｐｓは最確符号の値に対応する。
【０１１５】
構文要素ｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇが、ピクチャパラメータセット中でシグナリングされる。１に等しいｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ＰＰＳを参照する符号化ピクチャに対し、スライスセグメントヘッダ中に、構文要素ｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇが存在することを指定する。０に等しいｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ＰＰＳを参照する符号化ピクチャに対し、スライスセグメントヘッダ中に、構文要素ｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇが存在しないことを指定する。
【０１１６】
構文要素ｅｎｄ＿ｏｆ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇが、スライスセグメントデータ中でシグナリングされる。０に等しいｅｎｄ＿ｏｆ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇは、別の符号化ツリーユニットがスライス中に後続していることを指定する。１に等しいｅｎｄ＿ｏｆ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇは、スライスセグメントの終了、すなわちスライス中に後続している符号化ツリーユニットがもうないことを指定する。
【０１１７】
構文要素ｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇがスライスセグメントヘッダ中でシグナリングされる。１に等しいｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇは、存在しない各スライスセグメントヘッダ構文要素の値が、スライスヘッダ中の対応するスライスセグメント構文要素の値に等しいと推定されることを指定する。存在しないとき、ｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇの値は０に等しいと推定される。
【０１１８】
ビデオのフレームに対しウェーブフロント符号化／復号パターンが用いられるとき、スライスセグメントヘッダ構文要素「ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇ」がその値を１に設定されてシグナリングされる。
【０１１９】
ピクチャパラメータセット中でスケーリングリストデータがシグナリングされ、４次元配列ＳｃａｌｉｎｇＦａｃｔｏｒの要素に割り当てられる値の導出に使用される。
【０１２０】
ＢｉｔＤｅｐｔｈＹは、輝度配列のサンプルのビット深度である。
【０１２１】
ＢｉｔＤｅｐｔｈＣは、色差配列のサンプルのビット深度である。
【０１２２】
構文要素ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇが、シーケンスパラメータセット範囲拡張中でシグナリングされる。１に等しいｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇは、インター予測補間および逆変換処理のために拡張ダイナミックレンジが使用されることを指定する。０に等しいｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇは、拡張ダイナミックレンジが使用されないことを指定する。存在しないとき、ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推定される。
【０１２３】
変数ＣｏｅｆｆＭｉｎＹ、ＣｏｅｆｆＭｉｎＣ、ＣｏｅｆｆＭａｘＹ、およびＣｏｅｆｆＭａｘＣは、次のように導出される：
【０１２４】
ＣｏｅｆｆＭｉｎＹ＝−（１＜＜（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍａｘ（１５，ＢｉｔＤｅｐｔｈＹ＋６）：１５））
【０１２５】
ＣｏｅｆｆＭｉｎＣ＝−（１＜＜（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍａｘ（１５，ＢｉｔＤｅｐｔｈＣ＋６）：１５））
【０１２６】
ＣｏｅｆｆＭａｘＹ＝（１＜＜（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍａｘ（１５，ＢｉｔＤｅｐｔｈＹ＋６）：１５））−１
【０１２７】
ＣｏｅｆｆＭａｘＣ＝（１＜＜（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍａｘ（１５，ＢｉｔＤｅｐｔｈＣ＋６）：１５））−１
【０１２８】
ＣｕＰｒｅｄＭｏｄｅ［ｘＴｂＹ］［ｙＴｂＹ］は、対応位置（ｘＴｂＹ，ｙＴｂＹ）に対する符号化ユニットの予測モードである。
【０１２９】
ＭＯＤＥ＿ＩＮＴＲＡはイントラ符号化モードに対応する。
【０１３０】
ＭＯＤＥ＿ＩＮＴＥＲはインター符号化モードに対応する。
【０１３１】
変換係数レベルは、配列ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ［ｘ０］［ｙ０］［ｃＩｄｘ］［ｘＣ］［ｙＣ］によって表される。配列インデックスｘ０，ｙ０は、ピクチャの最上左部の輝度サンプルに対する対象変換ブロックの最上左部の輝度サンプル位置（ｘ０，ｙ０）を指定する。配列インデックスｃＩｄｘはカラー成分に対するインジケータを指定し、これはＹに対しては０、Ｃｂに対しては１、Ｃｒに対しては２に等しい。配列インデックスｘＣおよびｙＣは、現在の変換ブロック内の変換係数の位置（ｘＣ，ｙＣ）を指定する。ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ［ｘ０］［ｙ０］［ｃＩｄｘ］［ｘＣ］［ｙＣ］の値が指定されていないとき、その値は０に等しいと推定される。
【０１３２】
変数ＰｉｃＳｉｚｅＩｎＣｔｂｓＹは、ピクチャの輝度成分での符号化ツリーブロックの数に対応する。
【０１３３】
変数ＣｔｂＡｄｄｒＩｎＲｓは、ラスタスキャン順での符号化ツリーブロックアドレスに対応する。
【０１３４】
変数ＣｔｂＡｄｄｒＩｎＴｓは、タイルスキャン順での符号化ツリーブロックアドレスに対応する。
【０１３５】
リストＣｔｂＡｄｄｒＲｓＴｏＴｓ［ｃｔｂＡｄｄｒＲｓ］は、ラスタスキャン順での符号化ツリーブロックアドレスからタイルスキャンでの符号化ツリーブロックアドレスへの変換を指定する。
【０１３６】
両端を含め０〜ＰｉｃＳｉｚｅＩｎＣｔｂｓＹ−１の範囲のｃｔｂＡｄｄｒＴｓに対するリストＴｉｌｅＩｄ［ｃｔｂＡｄｄｒＴｓ］は、タイルスキャンでの符号化ツリーブロックアドレスからタイルへＩＤへの変換を指定する。
【０１３７】
ｐｉｃ＿ｗｉｄｔｈ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅｓは、輝度サンプルを単位にして各復号ピクチャの幅を指定する。変数ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹは、Ｃｅｉｌ（ｐｉｃ＿ｗｉｄｔｈ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅｓ÷ＣｔｂＳｉｚｅＹ）に対応する。
【０１３８】
変数ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅは、パレットテーブル予測子のサイズを指定する。
【０１３９】
変数ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅは、前の符号化パレットテーブルのサイズを指定する。
【０１４０】
変数はＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＥｎｔｒｉｅｓ、パレットテーブル予測子内のエントリを指定する。
【０１４１】
具体的に、前述のＨＥＶＣ、ＳＨＶＣ、およびＭＶ−ＨＥＶＣは、ウェーブフロントおよび従属スライスを指定するために以下のフラグを含む。従属スライスは、或る特定のウェーブフロントのエントリポイントまたはタイルに関連付けられたデータが別個のＮＡＬユニット中に搬入されるのを可能にし、しかして、システムが利用可能なデータを、それが全部一つのスライスに一緒に符号化された場合よりも、少ない待ち時間の断片にパケット化することを可能にする。ウェーブフロントエントリポイントのための従属スライスは、別のスライスセグメントの復号プロセスの少なくとも一部が実施された後でだけ復号することができる。複数の従属スライスが一緒になってスライスを形成する。
【０１４２】
構文要素ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ピクチャパラメータセット中でシグナリングすることが可能である。１に等しい「ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇ」は、コンテキスト変数に対する特定の同期プロセスが、ＰＰＳを参照する、各ピクチャ中の各タイル中の符号化ツリーブロック行の最初の符号化ツリーブロックを含む、符号化ツリーユニットを復号する前に呼び出されること、およびコンテキスト変数に対する或る特定のストレージプロセスが、ＰＰＳを参照する、各ピクチャ中の各タイル中の符号化ツリーブロック行の第二の符号化ツリーブロックを含む、符号化ツリーユニットを復号した後で呼び出されること、を指定する。０に等しいｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ＰＰＳを参照する、各ピクチャ中の各タイル中の符号化ツリーブロック行の最初の符号化ツリーブロックを含む符号化ツリーユニットを復号する前に、コンテキスト変数に対する特定の同期プロセスを起動する必要がないこと、およびＰＰＳを参照する、各ピクチャ中の各タイル中の符号化ツリーブロック行の第二の符号化ツリーブロックを含む、符号化ツリーユニットを復号した後で、コンテキスト変数に対する或る特定のストレージプロセスを起動する必要がないこと、を指定する。
【０１４３】
符号化ビデオシーケンス（ＣＶＳ：ｃｏｄｅｄ  ｖｉｄｅｏ  ｓｅｑｕｅｎｃｅ）内でアクティブ化された全てのＰＰＳに対し、ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が同じであることが、ビットストリーム適合の要件であり得る。
【０１４４】
ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しく、且つスライス中の最初の符号化ツリーブロックがタイル中の符号化ツリーブロック行の最初の符号化ツリーブロックでないとき、スライス中の最後の符号化ツリーブロックが該スライス中の最初の符号化ツリーブロックと同じ符号化ツリーブロック行に属することがビットストリーム適合の要件である。
【０１４５】
ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しく、且つスライスセグメント中の最初の符号化ツリーブロックがタイル中の符号化ツリーブロック行の最初の符号化ツリーブロックでないとき、スライスセグメント中の最後の符号化ツリーブロックが該スライスセグメント中の最初の符号化ツリーブロックと同じ符号化ツリーブロック行に属することがビットストリーム適合の要件である。
【０１４６】
タイルが有効化されていず、且つｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しいとき、エントリポイントに対応するスライスセグメントデータの各サブセットは、ピクチャの同じ輝度符号化ツリーブロック行中に在る輝度符号化ツリーブロックを含むスライスセグメント中の、全て符号化ツリーユニットの全ての符号化ビットから成るものとし、サブセットの数は、符号化スライスセグメント中に在る符号化ツリーユニットを包含する、ピクチャの符号化ツリーブロック行の数に等しいものとする。
【０１４７】
タイルが有効化され、ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しいとき、エントリポイントに対応するスライスセグメントデータの各サブセットは、タイルの同じ輝度符号化ツリーブロック行中に在る輝度符号化ツリーブロックを含むスライスセグメント中の、全て符号化ツリーユニットの全ての符号化ビットから成るものとし、サブセットの数は、符号化スライスセグメント中に在る符号化ツリーユニットを包含する、タイルの輝度符号化ツリーブロック行の数に等しいものとする。
【０１４８】
ＣＡＢＡＣ構文解析プロセスの初期化プロセスは、以下の一つ以上の構文解析を開始するときに起動される：
【０１４９】
スライスセグメントデータ構文。
【０１５０】
符号化ツリーユニット構文および符号化ツリーユニットが、タイル中の最初の符号化ツリーユニットである。
【０１５１】
符号化ツリーユニット構文ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しく、関連する輝度符号化ツリーブロックが、符号化ツリーユニットの行中の最初の輝度符号化ツリーブロックである。
【０１５２】
スライスセグメントデータを構文解析している間に、コンテキスト変数およびＲｉｃｅパラメータ初期化状態に対するストレージプロセスが次のように適用される：
【０１５３】
符号化ツリーユニット構文の構文解析が終了するとき、ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇは１に等しく、且つ、ＣｔｂＡｄｄｒＩｎＲｓ％ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹが１に等しいかもしくはＣｔｂＡｄｄｒＩｎＲｓが１より大きくてＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＩｎＴｓ］がＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＲｓＴｏＴｓ［ＣｔｂＡｄｄｒＩｎＲｓ−２］］と等しくないかのいずれかであり、コンテキスト変数およびＲｉｃｅパラメータ初期化に対するストレージプロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＷｐｐ、ＴａｂｌｅＭｐｓＶａｌＷｐｐ、およびＴａｂｌｅＳｔａｔＣｏｅｆｆＷｐｐを出力として起動される。
【０１５４】
一般スライスセグメントデータ構文の構文解析を終了するとき、ｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは１に等しく、且つｅｎｄ＿ｏｆ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇが１に等しく、コンテキスト変数およびＲｉｃｅパラメータ初期化状態に対するストレージプロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＤｓ、ＴａｂｌｅＭｐｓＶａｌＤｓ、およびＴａｂｌｅＳｔａｔＣｏｅｆｆＤｓを出力として起動される。
【０１５５】
ＣＡＢＡＣ構文解析プロセスの初期化プロセスは、次のように指定される：
【０１５６】
このプロセスの出力は、初期化されたＣＡＢＡＣ内部変数および初期化されたＲｉｃｅパラメータ初期化状態ＳｔａｔＣｏｅｆｆである。
【０１５７】
算術複合エンジンのコンテキスト変数は以下のように初期化される：
−  符号化ツリーユニットがタイル中の最初の符号化ツリーユニットである場合、以下が適用される：
−  コンテキスト変数に対する初期化プロセスが起動される。
−  両端を含め０〜３の範囲のｋに対し変数ＳｔａｔＣｏｅｆｆ［ｋ］が０に等しく設定される。
−  それ以外の場合、ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しく且つＣｔｂＡｄｄｒＩｎＲｓ％ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹが０に等しいか、またはＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＩｎＴｓ］がＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＲｓＴｏＴｓ［ＣｔｂＡｄｄｒＲｓ−１］］に等しくない場合は、以下が適用される：
−  空間的隣接ブロックＴの最上左部の輝度サンプルの位置（ｘＮｂＴ，ｙＮｂＴ）が、現符号化ツリーブロックの最上左部の輝度サンプルの位置（ｘ０，ｙ０）を使って、以下により導出される：
（ｘＮｂＴ，ｙＮｂＴ）＝（ｘ０＋ＣｔｂＳｉｚｅＹ，ｙ０−ＣｔｂＳｉｚｅＹ）
−  ｚ―スキャン順でのブロックに対するアベイラビリティ導出プロセスが、（ｘ０，ｙ０）に等しく設定された位置（ｘＣｕｒｒ，ｙＣｕｒｒ）および（ｘＮｂＴ，ｙＮｂＴ）に等しく設定された（ｘＮｂＸ，ｙＮｂＹ）隣接位置を入力として起動され、その出力がａｖａｉｌａｂｌｅＦｌａｇＴに割り当てられる。
−  コンテキスト変数に対する同期プロセスが以下により起動される：
−  ａｖａｉｌａｂｌｅＦｌａｇＴが１に等しい場合は、コンテキスト変数およびＲｉｃｅパラメータ初期化状態に対する同期プロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＷｐｐ、ＴａｂｌｅＭｐｓＶａｌＷｐｐ、およびＴａｂｌｅＳｔａｔＣｏｅｆｆＷｐｐを入力として起動される。
−  それ以外の場合は以下が適用される：
−  コンテキスト変数に対する初期化プロセスが起動される。
−  両端を含め０〜３の範囲のｋに対して、変数ＳｔａｔＣｏｅｆｆ［ｋ］が０に等しく設定される。
−  上記以外の場合、ＣｔｂＡｄｄｒＩｎＲｓがｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ａｄｒｅｓｓに等しく、且つｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇが１に等しい場合は、コンテキスト変数およびＲｉｃｅパラメータ初期化状態の同期プロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＤｓ、ＴａｂｌｅＭｐｓＶａｌＤｓ、およびＴａｂｌｅＳｔａｔＣｏｅｆｆＤｓを入力として起動される。
−  それ以外の場合、以下が適用される：
−  コンテキスト変数に対する初期化プロセスが起動される。
−  両端を含め０〜３の範囲のｋに対し、変数ＳｔａｔＣｏｅｆｆ［ｋ］が０に等しく設定される。
【０１５８】
算術復号エンジンに対する初期化プロセスが起動される。
【０１５９】
コンテキスト変数およびＲｉｃｅパラメータ初期化状態に対するストレージ処理は、以下のように説明することができる。
【０１６０】
このプロセスへの入力は、ｃｔｘＴａｂｌｅおよびｃｔｘＩｄｘによってインデックスされたＣＡＢＡＣコンテキスト変数、およびｋによってインデックスされたＲｉｃｅパラメータ初期化状態である。
【０１６１】
このプロセスの出力は、所定の構文要素のサブセットを除く、一般スライスセグメントデータ構文、符号化ツリーユニット構文、サンプル適応オフセット構文、符号化四分ツリー構文、符号化ユニット構文、予測ユニット構文、ＰＣＭサンプル構文、変換ツリー構文、動きベクトル差構文、変換ユニット構文、残差符号化構文中の、全ての構文要素に割り当てられ、コンテキスト変数およびＲｉｃｅパラメータ初期化状態の初期化プロセスにおいて使用される変数ｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓの値を包含する変数ｔａｂｌｅＳｔａｔｅＳｙｎｃおよびｔａｂｌｅＭＰＳＳｙｎｃ、並びに、コンテキスト変数およびＲｉｃｅパラメータ初期化状態の初期化プロセスにおいて使用される変数ＳｔａｔＣｏｅｆｆ［ｋ］の値を包含する変数ｔａｂｌｅＳｔａｔＣｏｅｆｆＳｙｎｃである。
【０１６２】
各コンテキスト変数に対し、テーブルｔａｂｌｅＳｔａｔｅＳｙｎｃおよびｔａｂｌｅＭＰＳＳｙｎｃの対応するエントリｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓは、対応するｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓに初期化される。
【０１６３】
各Ｒｉｃｅパラメータ初期化状態ｋに対し、テーブルｔａｂｌｅＳｔａｔＣｏｅｆｆＳｙｎｃの各エントリは、ＳｔａｔＣｏｅｆｆ［ｋ］の対応する値に初期化される。
【０１６４】
コンテキスト変数およびＲｉｃｅパラメータ初期化状態に対する同期プロセスは、以下のように説明することができる。
【０１６５】
このプロセスへの入力は、所定の構文要素のサブセットを除く、一般スライスセグメントデータ構文、符号化ツリーユニット構文、サンプル適応オフセット構文、符号化四分ツリー構文、符号化ユニット構文、予測ユニット構文、ＰＣＭサンプル構文、変換ツリー構文、動きベクトル差構文、変換ユニット構文、残差符号化構文の中の、全ての構文要素に割り当てられ、コンテキスト変数のストレージプロセスにおいて使用される変数ｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓの値を包含する変数ｔａｂｌｅＳｔａｔｅＳｙｎｃおよびｔａｂｌｅＭＰＳＳｙｎｃ、並びに、コンテキスト変数およびＲｉｃｅパラメータ初期化状態のストレージプロセスにおいて使用される変数ＳｔａｔＣｏｅｆｆ［ｋ］の値を包含する変数ｔａｂｌｅＳｔａｔＣｏｅｆｆＳｙｎｃである。
【０１６６】
このプロセスの出力は、ｃｔｘＴａｂｌｅおよびｃｔｘＩｄｘによってインデックスされ初期化された、ＣＡＢＡＣコンテキスト変数、並びにｋによりインデックスされ、初期化されたＲｉｃｅパラメータ初期化状態ＳｔａｔＣｏｅｆｆである。
【０１６７】
各コンテキスト変数に対し、対応するコンテキスト変数ｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓがテーブルｔａｂｌｅＳｔａｔｅＳｙｎｃおよびｔａｂｌｅＭＰＳＳｙｎｃの対応するエントリｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓに初期化される。
【０１６８】
それぞれのＲｉｃｅパラメータ初期化状態に対し、各変数ＳｔａｔＣｏｅｆｆ［ｋ］がテーブルｔａｂｌｅＳｔａｔＣｏｅｆｆＳｙｎｃの対応するエントリに初期化される。
【０１６９】
算術復号エンジンのコンテキスト変数は以下のように初期化される：
【０１７０】
符号化ツリーユニットがタイル中の最初の符号化ツリーユニットの場合、コンテキスト変数に対する初期化プロセスが起動される。
【０１７１】
その他の場合、ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しく、且つＰＰＳを参照する各ピクチャ中の各タイル中の符号化ツリーブロック行の最初の符号化ツリーブロックを含む符号化ツリーユニットが復号される前の場合は、以下が適用される：
空間的隣接ブロックＴの最上左部の輝度サンプルの位置（ｘＮｂＴ，ｙＮｂＴ）が、現符号化ツリーブロックの最上左部の輝度サンプルの位置（ｘ０，ｙ０）を使って、次式により導出される：（ｘＮｂＴ，ｙＮｂＴ）＝（ｘ０＋ＣｔｂＳｉｚｅＹ，ｙ０−ＣｔｂＳｉｚｅＹ）
現在位置（ｘ０，ｙ０）および隣接位置（ｘＮｂＴ，ｙＮｂＴ）でのｚ−スキャン順によるブロックの可用性が判定され、ａｖａｉｌａｂｌｅＦｌａｇＴに割り当てられる。
コンテキスト変数に対する同期プロセスが以下のように起動される：
ａｖａｉｌａｂｌｅＦｌａｇＴが１に等しい場合は、コンテキスト変数に対する同期プロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＷｐｐおよびＴａｂｌｅＭｐｓＶａｌＷｐｐを入力として起動される。
それ以外の場合はコンテキスト変数に対する初期化プロセスが起動される。
上記以外の場合、最初のＣＴＢが従属スライスの場合は、ＴａｂｌｅＳｔａｔｅＩｄｘＤｓおよびＴａｂｌｅＭｐｓＶａｌＤｓを入力として起動される。
それ以外の場合はコンテキスト変数に対する初期化プロセスが起動される。
【０１７２】
受信されたビデオストリームに対する逆量子化／スケーリングプロセスは、係数に対するスケーリングプロセスであり、以下のように説明することができる。
【０１７３】
このプロセスへの入力は、例えば以下を含めればよい。
【０１７４】
現ピクチャの最上左部の輝度サンプルに対する現輝度変換ブロックの最上左部のサンプルを指定する輝度位置（ｘＴｂＹ，ｙＴｂＹ）、
【０１７５】
現変換ブロックのサイズを指定する変数ｎＴｂＳ、
【０１７６】
現ブロックのカラー成分を指定する変数ｃＩｄｘ、
【０１７７】
量子化パラメータを指定する変数ｑＰ。
【０１７８】
このプロセスの出力は、例えば、要素ｄ［ｘ］［ｙ］を有するスケールされた変換係数の（ｎＴｂＳ）×（ｎＴｂＳ）配列ｄを含み得る。
【０１７９】
変数ｌｏｇ２ＴｒａｎｓｆｏｒｍＲａｎｇｅ、ｂｄＳｈｉｆｔ、ｃｏｅｆｆＭｉｎ、およびｃｏｅｆｆＭａｘは以下のように導出される：
ｃＩｄｘが０に等しい場合は、
ｌｏｇ２ＴｒａｎｓｆｏｒｍＲａｎｇｅ＝ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍａｘ（１５，ＢｉｔＤｅｐｔｈＹ＋６）：１５
ｂｄＳｈｉｆｔ＝ＢｉｔＤｅｐｔｈＹ＋Ｌｏｇ２（ｎＴｂＳ）＋１０−ｌｏｇ２ＴｒａｎｓｆｏｒｍＲａｎｇｅ
ｃｏｅｆｆＭｉｎ＝ＣｏｅｆｆＭｉｎＹ
ｃｏｅｆｆＭａｘ＝ＣｏｅｆｆＭａｘＹ
その他の場合は、
ｌｏｇ２ＴｒａｎｓｆｏｒｍＲａｎｇｅ＝ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍａｘ（１５，ＢｉｔＤｅｐｔｈＣ＋６）：１５
ｂｄＳｈｉｆｔ＝ＢｉｔＤｅｐｔｈｙＣ＋Ｌｏｇ２（ｎＴｂＳ）＋１０−ｌｏｇ２ＴｒａｎｓｆｏｒｍＲａｎｇｅ
ｃｏｅｆｆＭｉｎ＝ＣｏｅｆｆＭｉｎＣ
ｃｏｅｆｆＭａｘ＝ＣｏｅｆｆＭａｘＣ
【０１８０】
リストｌｅｖｅｌＳｃａｌｅ［  ］は、ｌｅｖｅｌＳｃａｌｅ［ｋ］＝｛４０，４５，５１，５７，６４，７２｝として指定され、ｋ＝０…５である。
【０１８１】
ｘ＝０…ｎＴｂＳ−１、ｙ＝０…ｎＴｂＳ−１で、スケールされた変換係数ｄ［ｘ］［ｙ］の導出のために、以下が適用される：
次の条件一つ以上が真であれば、ｍ［ｘ］［ｙ］は１６に等しく設定される：
ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しい、
ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇ［ｘＴｂＹ］［ｙＴｂＹ］が１に等しく且つｎＴｂＳが４より大きい。
上記以外は、次が適用される：
ｍ［ｘ］［ｙ］＝ＳｃａｌｉｎｇＦａｃｔｏｒ［ｓｉｚeＩｄ］［ｍａｔｒｉｘＩｄ］［ｘ］［ｙ］
【０１８２】
上式において、ｓｉｚｅＩｄは（ｎＴｂＳ）×（ｎＴｂＳ）に等しい量子化マトリックスのサイズであり、ｍａｔｒｉｘＩｄは、ｓｉｚｅＩｄ、予測モードおよびカラー成分ｓｉｚｅＩｄ、ＣｕＰｒｅｄＭｏｄｅ［ｘＴｂＹ］［ｙＴｂＹ］、並びにｃＩｄｘに、それぞれ従って指定される。例示のマッピングを下に示す。
【表３】
2017522839.tif 000006
表（３）
【０１８３】
スケールされた変換係数ｄ［ｘ］［ｙ］は、以下のように導出することができる：
【０１８４】
ｄ［ｘ］［ｙ］＝Ｃｌｉｐ３（ｃｏｅｆｆＭｉｎ，ｃｏｅｆｆＭａｘ，（（ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ［ｘＴｂＹ］［ｙＴｂＹ］［ｃＩｄｘ］［ｘ］［ｙ］＊ｍ［ｘ］［ｙ］＊ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］＜＜（ｑＰ／６））＋（１＜＜（ｂｄＳｈｉｆｔ−１）））＞＞ｂｄＳｈｉｆｔ）。
【０１８５】
画面キャプチャツールは、コンピュータが、コンピュータモニタなどの画像表示ユニット上に表示された画像を記録するのを容易にする。同じような方法で、コンピュータ生成のグラフィカルコンテンツに対しても、コンピュータは、画像表示ユニット上に表示対象の画像を記録することができる。
【０１８６】
図９は、コンピュータデスクトップ環境の取り込み画面域５００を示す。取り込み画面域５００は、デスクトップ全体を示しているが、その代わりに、ウィンドウ５３０またはデスクトップのいくつかの他の部分だけを示してもよい。カーソルグラフィック５４０は、ウィンドウ５３０上に置かれ、いくつかのアイコングラフィック５２０、５２２、５２４がそのバックグラウンド５１０に置かれている。取り込み画面域５００はシリーズの一部であってよい。ビデオシーケンスなどのシリーズを通して、取り込み画面域５００の中の画面コンテンツの多くはおそらくは同じままであろう。バックグラウンド５１０およびアイコングラフィック５２０、５２２、５２４などの画面コンテンツは、通常、フレーム毎には変化しない。他方で、カーソルグラフィック５４０は、ユーザがマウスまたは他の入力デバイスを操作するにつれて、しばしば位置および形状を変化させ、ウィンドウ５３０のコンテンツも、ユーザが、タイプし、グラフィックスなどを加えるにつれてしばしば変化する。デジタルビデオの他の形式と同様に、画面取り込みビデオも大量のストレージおよび送信容量を消費する。
【０１８７】
画面取り込み画像は、連続する色調コンテンツおよびパレット化コンテンツの混成を包含み得る。連続する色調コンテンツは、例えば、徐々に変化するカラーまたは色調を有する写真または他の画像を含み、通常、人間の眼には実質上連続して見える画像色調の範囲を使用する。パレット化コンテンツは、例えば、アイコン、ツールバー、および均一なカラーのバックグラウンドおよび対照的なカラーの前面テキストから成るコマンドまたはノートパッドウィンドウを含む。パレット化コンテンツのカラーパレットは、通常、画像カラーまたは色調の比較的に小さなセット（例えば、２５６の相異なる２４ビットカラー）を含む。パレット化コンテンツは、多くの場合、知覚的に重要な微細部―不連続なテキスト要素または他の画像を表す、空間的に局所的で高周波数の変化部を含む。
【０１８８】
取り込み画面域のシリーズは、通常、シリーズの格納またはシリーズのネットワークを介する送信に非常に高いビットレートをもたらす。このビットテートを低減するために、多くの場合、取り込み画面域の圧縮技法が用いられる。損失のない圧縮技法の使用が可能であるが、得られるビットレートの低減が限定される傾向ある。損失の多い圧縮技法も使用でき、この場合、得られるビットレート低減はより大きくなる傾向があるが、ビデオの品質が劣化しがちである。
【０１８９】
損失の多い圧縮をパレット化コンテンツに適用することは、知覚的に重要な微細部の喪失をもたらすことが多い。例えば、解凍コンテンツ中で、テキストおよび鋭い縁が不鮮明化または変形される可能性がある。これらの結果、パレット化コンテンツの損失のない符号化が多くの状況で望まれている。品質とビットレートとにトレードを意図する一部のシステムにおいて、画面取り込みビデオを、パレット化コンテンツとして扱いながら量子化を施すことは可能である。他方で、一部のシナリオでは、十分なリソースが利用可能な場合、損失のない圧縮だけを用いて連続する色調コンテンツを符号化することが望まれている。一部のシステムでは、低いビットレートで、連続する色調コンテンツを効率的に圧縮するために損失の多い圧縮を用いることもできる。
【０１９０】
諸ビデオコーダは、様々な異なった圧縮技法を用いる。これらの圧縮技法は、通常、個別のフレームに対する変換、量子化、およびエントロピー符号化、並びにフレームのシリーズに対する動き推定を含む。これら圧縮技法は、多くの場合、ランレングス符号化およびＣＡＢＡＣ符号化を含む。
【０１９１】
ランレングス符号化は、カメラビデオ、オーディオ、テキスト、および他の種類のコンテンツに対して使用される圧縮技法である。一般に、ランレングス符号化は、同じ値を持つ連続する記号のシーケンス（すなわちラン）をそのシーケンスの値および長さで置き替える。ランレングス復号では、ラン値およびラン長さから、連続する記号のシーケンスが再構成される。ランレングス符号化の結果（例えば、ラン値およびラン長さ）は、ビットレートをさらに低減するために、ＣＡＢＡＣを用いて符号化することができる。
【０１９２】
パレット化画面取り込みコンテンツに適合されたランレングス符号化において、エンコーダは、カラー値符号、上側符号、および／またはエスケープ符号のランを符号化する。フレームの行中の所与の画素に対し、カラー値符号は、該所与の画素に対するカラー値（例えば、カラーパレットのインデックス、または何らかのカラー空間におけるカラー成分値（群））を示すことができ、上側符号は、所与の画素の真上の画素のカラー値を参照することができ、またはエスケープ符号は画素のカラー値を直接にシグナリングすることができる。一部のランは、それらのランに対するカラー値符号を使ってだけランレングスを符号化することが可能である。他方で、一部の場合には、画素の特定のシリーズが、代わりに上側符号またはエスケープ符号を使って符号化されることがあり得よう。
【０１９３】
図１０参照すると、コンピューティング環境６００は、少なくとも一つの処理ユニット６１０およびメモリ６２０を含む。処理ユニット６１０はコンピュータ実行可能命令を実行し、これは実在プロセッサでもよく、または仮想プロセッサでもよい。或る多重処理システムでは、処理能力を向上するために多重処理ユニットがコンピュータ実行可能命令を実行する。メモリ６２０は、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）でも、不揮発セメモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、フラッシュメモリなど）でも、またはこれら２つの何らかの組み合わせでもよい。メモリ６２０は、適応画面取り込みエントロピーエンコーダおよび／またはデコーダを実装するソフトウェア６８０を格納する。
【０１９４】
また、コンピューティング環境６００は、ディスプレイカード６３０も含む。ディスプレイカード６３０（これに換えて、ビデオカード、グラフィックスカード、グラフィックス出力デバイス、ディスプレイアダプタ、ビデオグラフィックスアダプタ、などとも呼ばれる）は、コンピュータモニタなどの画像表示ユニットに出力を配信する。ディスプレイカード６３０は、画面に表示するための画素情報を格納するフレームバッファを含む。フレームバッファは、多くの場合、ディスプレイカード６３０上の何らかの型のＲＡＭであるが、代わりに、何らかの他の種類のメモリ、および／またはディスプレイカード自体上に物理的に配置されていないものであってもよい。ディスプレイカード６３０は、グラフィックスプロセッサ、グラフィックスアクセラレータ、および／または他の特化されたディスプレイハードウェアを含むことができる。通常、オペレーティングシステムソフトウェア（図示せず）が、コンピューティング環境６００中で実行される他のソフトウェアに対しオペレーティング環境を提供し、コンピューティング環境６００の諸コンポーネントの活動を調整する。さらに、ディスプレイドライバソフトウェアが、ディスプレイカード６３０の種々の機能へのアクセスを可能にする。ディスプレイドライバソフトウェアは、ディスプレイカード６３０の機能へのアクセスを仲介するオペレーティングシステムソフトウェアの一つ以上の層と共に動作できる。例えば、かかる機能を介し、画面キャプチャツールは、画像表示ユニットの画面上に現在表示されている画面コンテンツに対しディスプレイカード６３０のフレームバッファから画素情報を読み出すことが可能であろう。
【０１９５】
このコンピューティング環境は、さらなる機能を有することが可能である。例えば、コンピューティング環境６００は、ストレージ６４０、一つ以上の入力デバイス６５０、一つ以上の出力デバイス６６０、および一つ以上の通信接続６７０を含む。バス、コントローラ、ネットワークなどの相互接続メカニズム（図示せず）がコンピューティング環境６００の諸コンポーネントを相互接続する。
【０１９６】
ストレージ６４０は、リムーバブルでも非リムーバブルでもよく、磁気ディスク、磁気テープもしくはカセット、ＣＤ−ＲＯＭ、ＣＤ―ＲＷ、ＤＶＤ、または、情報を格納するために使用可能で、コンピューティング環境６００内でアクセス可能な任意の他の媒体を含む。ストレージ６４０は、適応画面取り込みエントロピーエンコーダおよび／またはデコーダを実装するソフトウェア６８０のための命令を格納する。入力デバイス（群）６５０は、キーボード、マウス、ペン、もしくはトラックボールなどのタッチ入力デバイス、音声入力デバイス、スキャンデバイス、音声カード、ＴＶチューナ／ビデオ入力カード、または、コンピューティング環境６００に入力を提供する他のデバイスであればよい。
【０１９７】
出力デバイス（群）６６０は、画像表示ユニット、プリンタ、スピーカ、ＣＤライタ、または、コンピューティング環境６００からの出力を提供する他のデバイスであればよい。画像表示ユニットは、ディスプレイカード６３０から配信される出力に基づいて、画面コンテンツを提示する。
【０１９８】
通信接続（群）６７０は、通信媒体を介して別のコンピューティングエンティティとの通信を可能にする。通信媒体は、コンピュータ実行可能命令、圧縮取り込み画面域情報、または変調データ信号中の他のデータなどの情報を搬送する。変調データ信号は、一つ以上のその特性セットを有し、または信号中に情報を符号化するように変更された信号である。限定ではなく例として、通信媒体は、電子、光、ＲＦ、赤外線、音響または他の搬送波を使って実装される有線または無線の技法を含む。
【０１９９】
ビデオビットストリーム内で、シーケンスパラメータセット中の「ｐａｌｅｔｔｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ」を使うことによってパレット符号化技法を有効化、または無効化することができる。これは、ｓｐｓ＿ｅｘｔｅｎｓｉｏｎ＿ｆｌａｇが１に等しいときにシグナリングが可能である。シーケンスパラメータセット（ＳＰＳ）は、各スライスセグメントヘッダ中の構文要素によって参照されるピクチャパラメータセット中に在る構文要素のコンテンツによって決まる、ゼロ以上の全符号化ビデオシーケンスに適用される構文要素を包含する、構文構造体とすることができる。ピクチャパラメータセット（ＰＰＳ）は、各スライスセグメントヘッダ中に在る構文要素によって決まる、ゼロ以上の全符号化ピクチャに適用される構文要素を包含する構文構造体である。１に等しいｐａｌｅｔｔｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、イントラブロックでパレットモードが使用可能であることを指定し、一方、０に等しいｐａｌｅｔｔｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、パレットモードが適用されないことを指定する。ｐａｌｅｔｔｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇが存在しないとき、ｐａｌｅｔｔｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推定される。
【０２００】
或る例において、画素のブロックに対するパレット符号化の使用をフラグを使ってシグナリングすることができる。或る例では、画素のブロックに対するパレット符号化の使用は、ビットストリームの過去のデータを用いて、デコーダによって推定することが可能である。
【０２０１】
ビデオストリーム内で、各符号化ユニットに対する「ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ」によって、パレット符号化技法を有効化または無効化することができる。各符号化ユニット内のパレットモードは、「ｐａｌｅｔｔｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ」が有効化され（＝＝１）、且つイントラモード（ＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］＝＝ＭＯＤＥ＿ＩＮＴＲＡ（例えば、符号化ユニットのイントラモード符号化）のとき、シグナリングすることが可能である。１に等しいｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ［ｘ０］［ｙ０］は、現符号化ユニットがパレットモードを用いて符号化されることを指定し、一方、０に等しいｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ［ｘ０］［ｙ０］は、現符号化ユニットがパレットモードを用いて符号化されないことを指定する。配列インデックスｘ０，ｙ０は、ピクチャの最上左部の輝度サンプルに対する、対象の符号化ブロックの最上左部の輝度サンプルの位置（ｘ０，ｙ０）を指定する。コーダについて述べることは、エンコーダおよびデコーダの双方を含むことが意図されている。
【０２０２】
或る例示の実施形態において、パレット符号化は、非イントラモード（例えば、インタモード）に対して使用可能である。或る例示の実施形態では、パレット符号化は、イントラモードに加えて非イントラモード（例えばインタモード）に対しても使用可能である。
【０２０３】
ビデオビットストリーム内で、有効化された「ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ」（すなわち、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇが１に等しい）によってパレット符号化を示すことができる。これは、パレットテーブルが使われ、符号化ユニットに対しパレットテーブルが生成され、該符号化ユニットの各画素値がそのパレットテーブルを使って符号化されることを示す。
【０２０４】
図１１を参照すると、赤（Ｒ：ｒｅｄ）、緑（Ｇ：ｇｒｅｅｎ）、および青（Ｂ：ｂｌｕｅ）画素のセットに対する例示的なパレットテーブルが示されており、３つの画素の各セットが特定の画素のカラーを示している。赤、緑、および青の画素値のセット各々に対し、インデックス値を割り当てることが可能である。パレットテーブルは、インデックスを示す任意の方法とともに、任意の仕方で画素のカラーを示すことができる。通常、インデックスと画素値とのペアが在る。
【０２０５】
例えば、パレットテーブルへのエントリは、エンコーダ中の現符号化ユニットの代表的画素値、例えば、量子化画素値のヒストグラムを使って導出が可能である。このような仕方で、システムは、符号化効率を向上させるために、量子化された画素値を使用すればよい。符号化ユニットの代表的画素値は、このパレットテーブルに基づいて適切な仕方で符号化され復号される。
【０２０６】
或る特定の符号化ユニットに対するパレットテーブルを生成することが可能で、符号化ユニットの画素は、その生成されたパレットテーブルを使って符号化される。各後続の符号化ユニットに対して、ビットストリーム中で別個のパレットテーブルをシグナリングするよりも、むしろ、前のパレットテーブルのエントリから、後続のパレットテーブルのエントリの、全てでなくても少なくともその一部を予測する方がより効率的である。前のパレットテーブルに基づいて予測されない、後続のパレットテーブルの部分は、後続のパレットテーブル中に新規エントリを含めるため、ビットストリーム中で更新することが可能である。この後続のパレットテーブルを予測パレットテーブルと称することにする。
【０２０７】
図１２を参照すると、例として、予測パレットテーブルは、インデックス中のエントリのそれぞれに対する、「ｐｒｅｖｉｏｕｓ＿ｐａｌｅｔｔｅ＿ｅｎｔｒｙ＿ｆｌａｇ」などのフラグのセット（例えば一次元テーブル）に基づくことが可能である。例えば、ｉ番目のインデックス値に対するｐｒｅｖｉｏｕｓ＿ｐａｌｅｔｔｅ＿ｅｎｔｒｙ＿ｆｌａｇ［ｉ］＝１（または別途に推定）は、前のパレットテーブルからのｉ番目のパレットテーブルのエントリを維持することを示す。例えば、ｉ番目のインデックス値に対するｐｒｅｖｉｏｕｓ＿ｐａｌｅｔｔｅ＿ｅｎｔｒｙ＿ｆｌａｇ［ｉ］＝０（または別途に推定）は、前のパレットテーブルからのｉ番目のパレットテーブルのエントリを含まないことを示す。或る例において、前のパレットテーブルのインデックス値の全てに対してｐｒｅｖｉｏｕｓ＿ｐａｌｅｔｔｅ＿ｅｎｔｒｙ＿ｆｌａｇ［ｉ］が符号化される。但し、必要な場合、エントリの一部は推定することができる。後続の符号化ユニットに対する更新されたパレットテーブルを形成するために、予測パレットテーブルに追加のパレットテーブルエントリを加えることが可能である。１に等しいｐｒｅｖｉｏｕｓ＿ｐａｌｅｔｔｅ＿ｅｎｔｒｙ＿ｆｌａｇ［ｉ］は、前回使用のパレットからのｉ番目のパレットエントリがコピーされることを指定し、０に等しいｐｒｅｖｉｏｕｓ＿ｐａｌｅｔｔｅ＿ｅｎｔｒｙ＿ｆｌａｇ［ｉ］は、前回使用のパレットからのｉ番目のパレットエントリがコピーされないことを指定する。
【０２０８】
図１３を参照すると、前のパレットテーブルが、インデックスそれぞれに対し一つのｐｒｅｖｉｏｕｓ＿ｐａｌｅｔｔｅ＿ｅｎｔｒｙ＿ｆｌａｇ［ｉ］のフラグのセットと一緒に示されている。示されるように、フラグのセット［１  １  ０  １］は、インデックス０は維持し、インデックス１は維持し、インデックス２は維持せず、インデックス３は維持することを表すことができる。このフラグのセットに基づいて、予測パレットテーブルが示されており、維持されない一切のパレットテーブルエントリは、何らかの後続のインデックスにより置き換えられる。このように、必要に応じ、再インデックス付けを行うことができる。
【０２０９】
再インデックス付けされた予測パレットテーブルに含まれることになる追加のエントリに対し、予測パレットテーブルに対する追加のエントリの数を示すため、「ｐａｌｅｔｔｅ＿ｎｕｍ＿ｓｉｇｎａｌｌｅｄ＿ｅｎｔｒｉｅｓ」など、対応構文要素を含めることが可能である。ｐａｌｅｔｔｅ＿ｎｕｍ＿ｓｉｇｎａｌｌｅｄ＿ｅｎｔｒｉｅｓの各々に対し、構文要素「ｐａｌｅｔｔｅ＿ｅｎｔｒｉｅｓ［ｃｌｄｘ］［ｊ］」が、カラー成分ｃｌｄｘに対するパレット中のｊ番目の要素を指定する。
【０２１０】
例えば、２のｐａｌｅｔｔｅ＿ｎｕｍ＿ｓｉｇｎａｌｌｅｄ＿ｅｎｔｒｉｅｓのシグナリングに基づいて、パレットｐａｌｅｔｔｅ＿ｅｎｔｒｉｅｓ［ｃｌｄｘ］［ｊ］に対するエントリの新規セット｛例えば、［［６５，７８，２００］［２５０，１０，３０］］｝をシグナリングすることができる。これにより、後続の符号化ユニットに対する、エントリの新規セットを含む更新されたパレットテーブルが得られる。ｐａｌｅｔｔｅ＿ｎｕｍ＿ｓｉｇｎａｌｌｅｄ＿ｅｎｔｒｉｅｓは、現符号化ユニットに対し明示的にシグナリングされる、パレット中のエントリの数を指定し、ｐａｌｅｔｔｅ＿ｎｕｍ＿ｓｉｇｎａｌｌｅｄ＿ｅｎｔｒｉｅｓが存在しないときそれは０に等しいと推定される。ｐａｌｅｔｔｅ＿ｅｎｔｒｉｅｓ［ｃＩｄｘ］［ｊ］は、パレット中のカラー成分ｃＩｄｘに対するｊ番目の要素を指定する。変数ｐａｌｅｔｔｅ＿ｓｉｚｅは、前のパレットテーブルから予測されたパレットテーブルのエントリの数と、ｐａｌｅｔｔｅ＿ｎｕｍ＿ｓｉｇｎａｌｌｅｄ＿ｅｎｔｒｉｅｓの値との和として導出される。
【０２１１】
符号化ユニット中の画素は、３つのモードの一つを使って更新されたパレットテーブルに基づいて、ラスタスキャン順に符号化すればよい。
【０２１２】
第一のモードは、ＩＮＤＥＸ＿ＭＯＤＥを含むことができ、このモードでは、一つのカラーインデックスがシグナリングされ、現在のライン中の全てのインデックスがシグナリングされたカラーインデックスに設定される。例えば、ＩＮＤＥＸ＿ＭＯＤＥのシグナリングに際し、構文に（例えば、パレットインデックスを識別する）ｐａｌｅｔｔｅ＿ｉｎｄｅｘを含め、それに続いて、Ｍ個のパレットインデックスが、シグナリングされた一つと同じであることを表す値Ｍ（例えば、これをｐａｌｅｔｔｅ＿ｒｕｎと称してもよい）がシグナリングされてもよい。これは、水平方向の予測である。ｐａｌｅｔｔｅ＿ｒｕｎは、同一のパレットインデックスを用いる、現在位置の後に連続する位置の数を指定する。
【０２１３】
第二のモードは、ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥを含むことができ、このモードでは、現在のラインのインデックスは上側ラインからコピーされる。例えば、ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥをシグナリングに際し、構文には、引き続くＮのパレットインデックスが、それらのそれぞれの上側隣接部と同じであることを表す値Ｎ（例えば、これをｐａｌｅｔｔｅ＿ｒｕｎと称してもよい）を含めることができる。これは、垂直方向の予測である。
【０２１４】
第三のモードは、ｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌに先立ってシグナリングされるＥＳＣＡＰＥモードを含むことができ、このモードでは、パレットテーブルに基づいて決められるのでなく、画素値自体（これは量子化されていてもいなくてもよい）が送信される。例えば、ＥＳＣＡＰＥモードをシグナリングするのに際し、以下のようなｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ構文要素が画素値を含むことができる。この画素値は、ＥＳＣＡＰＥモードで送信される量子化（または非量子化）画素値とすればよい。
【０２１５】
適合ビットストリームにおいて、符号化ユニット中で受信された全ての（ｐａｌｅｔｔｅ＿ｒｕｎ＋１）および復号されたエスケープ画素の数の総和は、該符号化ユニット中の画素の合計数に等しいものとする。別の例において、適合ビットストリームに対して、符号化ユニットに対し復号された画素値の数は、その符号化ユニット中の画素の合計数と等しいものとする。
【０２１６】
構文要素ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇは、ランの型を示すために以下のように符号化することが可能である。
【０２１７】
ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇが０に等しい場合、モードはＩＮＤＥＸ＿ＭＯＤＥである。この場合、システムは「インデックス」情報をシグナリングする。インデックスがｐａｌｅｔｔｅ＿ｓｉｚｅに等しい場合、システムは、量子化画素値を直接符号化し、それ以外の場合は、システムはｐａｌｅｔｔｅ＿ｒｕｎ情報をシグナリングする。
【０２１８】
ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇが１に等しい場合、モードはＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥである。この場合、システムはｐａｌｅｔｔｅ＿ｒｕｎ情報をシグナリングする。
【０２１９】
次の２つの条件が満たされたとき、ＥＳＣＡＰＥモードが有効化される。第一条件は、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇが０に等しいかどうかである。第二条件は、現在符号化されているｐａｌｅｔｔｅ＿ｉｎｄｅｘがｐａｌｅｔｔｅ＿ｓｉｚｅに等しいかどうかである。ｐａｌｅｔｔｅ＿ｉｎｄｅｘは、パレットエントリに対するインデックスである。ｐａｌｅｔｔｅ＿ｓｉｚｅは、パレットインデックスのエントリの数を示す。
【０２２０】
或る例において、各符号化ユニットの第一行では、構文要素ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇは送信されずに、０であると推定される（すなわちＩＮＤＥＸ＿ＭＯＤＥ）、なぜなら、ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥがコピーできる利用可能な上側ラインがないからである。
【０２２１】
図１４を参照すると、インデックスマップ符号化構造に対する例示的なフローが示されている。ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇが０でない場合、システムは、ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥを用いて、ｐａｌｅｔｔｅ＿ｒｕｎを符号化する。ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇが０の場合、システムはｐａｌｅｔｔｅ＿ｉｎｄｅｘを符号化する。次いで、システムはｐａｌｅｔｔｅ＿ｉｎｄｅｘがｐａｌｅｔｔｅ＿ｓｉｚｅと同じかどうかを判定し、同じでなければ、システムは、ＩＮＤＥＸ＿ＭＯＤＥでｐａｌｅｔｔｅ＿ｒｕｎを符号化する。システムが、ｐａｌｅｔｔｅ＿ｉｎｄｅｘがｐａｌｅｔｔｅ＿ｓｉｚｅと同じであると判定した場合、システムは、ＥＳＣＡＰＥモードでｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌｕｅを符号化する。
【０２２２】
或る例示の実施形態おいて、パレット符号化は、ＣＶＳの各カラー成分に対して、独立的に実施が可能である。別の例示の実施形態では、カラー成分は一緒にグループ化でき、各グループが、ＣＶＳに対して独立的にパレット符号化を実施する。
【０２２３】
或る例示の実施形態おいて、パレット符号化は、例えばＣＶＳ内のスライスのサブセット、ＣＶＳ内のピクチャのサブセットなどＣＶＳのサブセット内の各カラー成分に対して独立的に実施が可能である。別の例では、カラー成分は一緒にグループ化でき、各グループが、例えばＣＶＳ内のスライスのサブセット、ＣＶＳ内のピクチャのサブセットなどＣＶＳの一つのサブセット内で独立的にパレット符号化を実施する。
【０２２４】
或る例示の実施形態において、前のパレットテーブルと、画素の現ブロックに対する現在のパレットテーブル予測子とは異なり得る。
【０２２５】
或る例示の実施形態では、パレットテーブル予測子は、前のパレットテーブル予測子および前のパレットテーブル内のエントリを、少なくとも部分的に用いて生成することが可能である。
【０２２６】
或る例示の実施形態において、パレットテーブル予測子は、前のパレットテーブル予測子および前のパレットテーブル内のエントリのサブセットを、少なくとも部分的に乗算することによって生成できる。
【０２２７】
或る例示の実施形態では、パレットテーブル予測子に関連付けられた変数およびパレットテーブル予測子内のエントリは、値の所定のセットに設定することが可能である。
【０２２８】
或る例示の実施形態において、パレットテーブルの最大サイズは、ビットストリーム（例えば、シーケンスパラメータセット）中でシグナリングすることができる。すなわち、パレットテーブルの最大サイズは、ビットストリーム中でデコーダによって受信することが可能である。或る例示の実施形態では、パレットテーブルの最大サイズは、ビットストリーム中にシグナリングされた、すなわちデコーダによって受信された過去のデータを用いて導出することができる。或る例示の実施形態では、パレットテーブルの最大サイズは、所定の値に設定すればよい。
【０２２９】
或る例示の実施形態において、パレットテーブル予測子の最大サイズは、ビットストリーム（例えば、シーケンスパラメータセット）中でシグナリングすること、すなわちデコーダによって受信することができる。或る例示の実施形態では、パレットテーブル予測子の最大サイズは、ビットストリーム中にシグナリングされた、すなわちデコーダによって受信された過去のデータを用いて導出すればよい。或る例示の実施形態では、パレットテーブル予測子の最大サイズは、所定の値に設定すればよい。
【０２３０】
パレットテーブルおよびパレットテーブル予測子の最大サイズが、シーケンスパラメータセット中で受信される場合の例示的な構文および意味記号を以下にリストする。
【表４】
2017522839.tif 000007
表（４）
【０２３１】
上の表において、
【０２３２】
１に等しい「ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ」は、パレットモードがイントラブロックに対し使用可能であることを指定する。０に等しいｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、パレットモードが適用されないことを指定する。存在しないとき、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推定される。
【０２３３】
「ｐａｌｅｔｔｅ＿ｍａｘ＿ｓｉｚｅ」は、容認可能な最大のパレットサイズを指定する。存在しないとき、ｐａｌｅｔｔｅ＿ｍａｘ＿ｓｉｚｅの値は０であると推定される。
【０２３４】
「ｄｅｌｔａ＿ｐａｌｅｔｔｅ＿ｍａｘ＿ｐｒｅｄｉｃｔｏｒ＿ｓｉｚｅ」は、最大のパレットテーブル予測子のサイズを指定する。存在しないとき、ｐａｌｅｔｔｅ＿ｍａｘ＿ｐｒｅｄｉｃｔｏｒ＿ｓｉｚｅの値は０であると推定される。
【０２３５】
或る例示の実施形態において、パレットテーブル予測子の最大サイズは、常に、パレットテーブルの最大サイズ以上である。かかる場合、パレットテーブル予測子の最大サイズをシグナリングするためのビット効率的な方法は、これからパレットテーブルの最大サイズを減算してその差をシグナリングすることである。なお、この差は、常に０以上である。このとき、デコーダは、パレットテーブル予測子の最大サイズおよびシグナリングされた差を受信し、受信された差の値をパレットテーブルの最大サイズに加えることによって、パレットテーブル予測子の最大サイズを復元する。
【０２３６】
「パレットテーブルの最大サイズ」および「パレットテーブルの最大サイズとパレットテーブル予測子の最大サイズとの間の差」を受信するための例示的な構文および意味記号を以下にリストする。
【表５】
2017522839.tif 000008
表（５）
【０２３７】
１に等しい「ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ」は、パレットモードがイントラブロックに対し使用可能であることを指定する。０に等しいｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、パレットモードが適用されないことを指定する。存在しないとき、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推定される。
【０２３８】
「ｐａｌｅｔｔｅ＿ｍａｘ＿ｓｉｚｅ」は、容認可能な最大のパレットサイズを指定する。存在しないとき、ｐａｌｅｔｔｅ＿ｍａｘ＿ｓｉｚｅの値は０であると推定される。
【０２３９】
「ｄｅｌｔａ＿ｐａｌｅｔｔｅ＿ｍａｘ＿ｐｒｅｄｉｃｔｏｒ＿ｓｉｚｅ」は、最大パレットテーブル予測子サイズと、容認可能な最大パレットサイズ「ｐａｌｅｔｔｅ＿ｍａｘ＿ｓｉｚｅ」との間の差を指定する。存在しないとき、ｄｅｌｔａ＿ｐａｌｅｔｔｅ＿ｍａｘ＿ｐｒｅｄｉｃｔｏｒ＿ｓｉｚｅの値は０であると推定される。
【０２４０】
デコーダは、ｐａｌｅｔｔｅ＿ｍａｘ＿ｓｉｚｅおよびｄｅｌｔａ＿ｐａｌｅｔｔｅ＿ｍａｘ＿ｐｒｅｄｉｃｔｏｒ  ｓｉｚｅ構文要素に対応する値の和として、最大パレットテーブル予測子のサイズを導出する。
【０２４１】
或る例示の実施形態において、パレットテーブル予測子の最大サイズは、常に、パレットテーブルの最大サイズ以上である。しかして、パレットテーブル予測子の最大サイズに対応する構文要素は、パレットテーブルの最大サイズ以上の値のセットに制限される。或る例示の実施形態では、この制限はビットストリーム適合要件に該当する。或る例示の実施形態において、この制限は、パレットテーブル予測子の最大サイズに対応する構文要素の意味論に対する制約である（例えば、構文要素ｐａｌｅｔｔｅ＿ｍａｘ＿ｐｒｅｄｉｃｔｏｒ＿ｓｉｚｅの値は、構文要素ｐａｌｅｔｔｅ＿ｍａｘ＿ｓｉｚｅの値以上でなければならない）。
【０２４２】
或る例示の実施形態において、パレット共用モードが有効化されているとき、現符号化ユニットに対するパレットは、パレットテーブル予測子からの最初のＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅのエントリをコピーすることによって導出される。
【０２４３】
本明細書の諸例において、符号化ユニットレベルの決定（諸）を行うことができる。また一方、本開示は、パレット符号化を用いる画素の任意のブロックに適用が可能である。当業者には当然のことながら、これらの決定は、符号化ユニットレベル以外のレベル、例えば、変換ユニットレベル、予測ユニットレベル、スライスレベル。ピクチャレベル、シーケンスレベルなどで行うことも可能で実用的なこともあり得る。
【０２４４】
パレット符号化モードは、画素値ドメイン中で画素のブロックに対し作動し、一方で、符号化の過程で用いられる、画素のブロックの逆量子化／スケーリングは、周波数ドメインなど別のドメインで動作するよう設計することもできる。その結果として、逆量子化／スケーリングを重みと関連付けることが可能になる。或る例示の実施形態において、これらの重みは、処理中の画素のブロック内で復号されている画素の位置により決まる。これらの重みは、逆量子化／スケーリング処理の過程で、対応する画素データに乗じられる値で表すことができる。画素値ドメイン、および同じピクチャに対する相異なるドメイン中の両方で同時に作動される逆量子化／スケーリング符号化演算を用いることは、必ずしも相互に両立するものではなく、復号された画像中に画像アーチファクトをもたらしがちである。パレット符号化が、相異なるドメイン中で作動するよう設計された逆量子化／スケーリング演算と一緒に用いられる場合に生じる影響を低減するため、パレット符号化モードを使うときの制限事項を含めることが望ましい。例えば、符号化される符号化ユニットがパレット符号化技法を用い、且つ（１）変換ブロックのサイズが特定の値のセット（一つのかかる値のセットは、全ての変換ブロックサイズを含み得る）に属し、且つ（２）符号化ユニットのサイズが特定の値のセット（一つのかかる値のセットは、全ての符号化ユニットサイズを含み得る）に属するとき、使われる符号化技法を修正するのが望ましい。使われる符号化技法を修正する一つの方法は、逆量子化／スケーリングに対し所定の重みを使用することである。或る例示の実施形態において、この重みは、スケール係数に対応し、ビットストリーム中でシグナリングされるスケーリングリストを使って導出され、次いで、パレット符号化が用いられ関連付けられた条件が満たされているときは常に、所定の値がシグナリングされた重みに優先されることになろう。
【０２４５】
或る例では、これは、変換係数に対するスケーリング処理の過程で、スケール係数配列ｍ［ｘ］［ｙ］の全ての要素を１６の値に設定することに該当し得る。この修正されたスケール係数の配列の使用は、以下の条件が生じたときに行われ得る。
【０２４６】
（１）現符号化ユニットに対してパレット符号化モードが用いられている：
【０２４７】
（２）変換ブロックのサイズが「ｘ」より大きい。このｘは定数か、またはｘは、過去にビットストリーム内でシグナリングされたデータを使って決定された値（例えば、ｘ＝４）である；
【０２４８】
（３）符号化ユニットのサイズが「ｙ」より大きい。このｙは定数か、またはｙは、過去にビットストリーム内でシグナリングされたデータを使って決定された値（例えば、ｙ＝８）である。
【０２４９】
或る例示の実施形態において、パレット符号化においてＥＳＣＡＰＥモードを使用するときにだけ、重みを使用可能な逆量子化部が使われる。かかる実施形態は、逆量子化／スケーリングの過程で、パレット符号化に対し、スケール係数配列の各要素が１６に設定された均一なスケール係数配列を使えばよい。或る実施形態では、このスケール係数の配列はｍ［ｘ］［ｙ］に対応する。
【０２５０】
当然のことながら、本符号化技法は、符号化ツリーブロック（ＣＴＢ：ｃｏｄｅｄ  ｔｒｅｅ  ｂｌｏｃｋｓ）、変換ユニット、符号化ユニット、またはその他のものなど、符号化ビットストリームの他のユニットに対しても使用することができる。
【０２５１】
図１５を参照すると、パレット符号化技法は、時としてパレットテーブル予測子と称される、前のパレットテーブルに基づく、予測パレットテーブルおよび／または更新パレットテーブルの予測に少なくとも部分的に基づいている。矢印線は、パレットテーブル予測を示し、タイルは相当数の符号化ユニット（例えばｃｕ）で構成することができる。また一方、符号化ユニットを中に含むタイルは、各々他のタイルに対し独立的に復号可能である。他のタイルに対し独立的に復号可能なタイルを用いるので、タイル間の境界をまたがる、パレット符号化に対する予測は許されないことを、構文内に示すことが望ましい。或る例において、パレット符号化の符号化ユニットに関連付けられたデータおよび画素値は、かかる境界を越えて利用できないとしてフラグされる。或る例では、パレットテーブル予測子が、かかる境界に対して利用できないとしてフラグされる。或る例では、パレットテーブル予測子が、タイル境界越え情報は利用できないとしてフラグされる。
【０２５２】
或る例において、パレットテーブル予測子は、前の符号化パレットテーブルである。或る例では、パレットテーブル予測子を利用できないとしてフラグすることが、パレットテーブル予測子に関連付けられた変数を所定の値に設定することによって達成することができる。或る例では、パレットテーブル予測子を利用できないとしてフラグすることが、パレットテーブル予測子のサイズを示す変数をゼロに設定することによって達成される。或る例では、パレットテーブル予測子を利用できないとしてフラグすることが、ＣＡＢＡＣ初期化の過程で遂行される。というのは、ＣＡＢＡＣはタイルの開始時に常に初期化されるからである。或る例では、ＣＡＢＡＣはタイルの開始時に常に初期化されるので、ＣＡＢＡＣ初期化の過程でパレットテーブル予測子のサイズを示す変数がゼロに設定される。
【０２５３】
用語「フラグすること」の使用は、ビットストリーム内にフラグをシグナリングすることの結果とすることも可能であり、ビットストリーム内にフラグをシグナリングすることなく達成することもできる。
【０２５４】
図１６を参照すると、パレット符号化技法は、時としてパレットテーブル予測子と称される、前のパレットテーブルに基づく予測パレットテーブルおよび／または更新パレットテーブルの予測に少なくとも部分的に基づいている。また一方、中に符号化ユニットを含むスライスは、各々が他のスライスに対し独立的に復号可能である。他のスライスに対し独立的に復号可能なスライスを用いるので、スライス間の境界をまたがる、パレット符号化に対する予測は許されないことを、構文内に示すことが望ましい。或る例において、パレット符号化の符号化ユニットに関連付けられたデータおよび画素値は、かかる境界を越えて利用できないとしてフラグされる。或る例では、パレットテーブル予測子が、かかる境界に対して利用できないとしてフラグされる。或る例では、パレットテーブル予測子が、スライス境界越え情報は利用できないとしてフラグされる。
【０２５５】
或る例において、パレットテーブル予測子は、前の符号化パレットテーブルである。或る例では、パレットテーブル予測子を利用できないとしてフラグすることが、パレットテーブル予測子に関連付けられた変数を所定の値に設定することによって達成することができる。或る例では、パレットテーブル予測子を利用できないとしてフラグすることが、パレットテーブル予測子のサイズを示す変数をゼロに設定することによって達成される。或る例では、パレットテーブル予測子を利用できないとしてフラグすることが、ＣＡＢＡＣ初期化の過程で遂行される、というのは、ＣＡＢＡＣはスライスの開始時に常に初期化されるからである。或る例では、ＣＡＢＡＣはスライスの開始時に常に初期化されるので、ＣＡＢＡＣ初期化の過程でパレットテーブル予測子のサイズを示す変数がゼロに設定される。
【０２５６】
或る例示の実施形態において、タイルおよびスライスの境界をまたいだパレットテーブル予測を防止することは、ＣＡＢＡＣ構文解析プロセスの初期化処理を以下のように修正することによって達成される。
【０２５７】
この処理の出力は、初期化されたＣＡＢＡＣ内部変数、初期化されたＲｉｃｅパラメータ初期化状態ＳｔａｔＣｏｅｆｆ、およびサイズｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅに対応するパレットテーブル予測子変数である。
【０２５８】
算術復号エンジンのコンテキスト変数は以下のように初期化される：
−  符号化ツリーユニットがタイル中の最初の符号化ツリーユニットの場合、以下が適用される：
−  コンテキスト変数に対する初期化プロセスが起動される。
−  両端を含め０〜３の範囲のｋに対し、変数ＳｔａｔＣｏｅｆｆ［ｋ］が０に等しく設定される。
−  変数ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅが０に等しく設定される。
−  それ以外の場合、ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しく且つＣｔｂＡｄｄｒＩｎＲｓ％ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹが０に等しいか、またはＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＩｎＴｓ］がＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＲｓＴｏＴｓ［ＣｔｂＡｄｄｒＩｎＲｓ−１］］に等しくない場合には以下が適用される：
−  空間的隣接ブロックＴの最上左部の輝度サンプルの位置（ｘＮｂＴ，ｙＮｂＴ）が、現符号化ツリーブロックの最上左部の輝度サンプルの位置（ｘ０，ｙ０）を使って、以下により導出される：
（ｘＮｂＴ，ｙＮｂＴ）＝（ｘ０＋ＣｔｂＳｉｚｅＹ，ｙ０−ＣｔｂＳｉｚｅＹ）
−  ｚ―スキャン順でのブロックに対するアベイラビリティ導出プロセスが、（ｘ０，ｙ０）に等しく設定された位置（ｘＣｕｒｒ，ｙＣｕｒｒ）、および（ｘＮｂＴ，ｙＮｂＴ）に等しく設定された（ｘＮｂＸ，ｙＮｂＹ）隣接位置を入力として起動され、その出力がａｖａｉｌａｂｌｅＦｌａｇＴに割り当てられる。
−  コンテキスト変数に対する同期プロセスが以下により起動される：
−  ａｖａｉｌａｂｌｅＦｌａｇＴが１に等しい場合は、コンテキスト変数およびＲｉｃｅパラメータ初期化状態に対する同期プロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＷｐｐ、ＴａｂｌｅＭｐｓＶａｌＷｐｐ、およびＴａｂｌｅＳｔａｔＣｏｅｆｆＷｐｐを入力として起動される。
−  それ以外の場合は以下が適用される：
−  コンテキスト変数に対する初期化プロセスが起動される。
−  両端を含め０〜３の範囲のｋに対して、変数ＳｔａｔＣｏｅｆｆ［ｋ］が０に等しく設定される。
−  変数ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅが０に等しく設定される。
−  上記以外の場合、ＣｔｂＡｄｄｒＩｎＲｓがｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ａｄｒｅｓｓに等しく、且つｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇが１に等しい場合は、コンテキスト変数およびＲｉｃｅパラメータ初期化状態の同期プロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＤｓ、ＴａｂｌｅＭｐｓＶａｌＤｓ、およびＴａｂｌｅＳｔａｔＣｏｅｆｆＤｓを入力として起動される。
−  それ以外の場合、以下が適用される：
−  コンテキスト変数に対する初期化プロセスが起動される。
−  両端を含め０〜３の範囲のｋに対して、変数ＳｔａｔＣｏｅｆｆ［ｋ］が０に等しく設定される。
−  変数ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅが０に等しく設定される。
【０２５９】
算術復号エンジンに対する初期化プロセスが起動される。
【０２６０】
空間的に隣接する対応パレットテーブルが予測子として使われる別の例示の実施形態において、スライス／タイル境界をまたがるパレットテーブルの予測は、その空間的に隣接するブロックに対応するデータ／画素値を利用できないとしてフラグすることにより防止される。
【０２６１】
図１７を参照すると、パレット符号化技法は、時としてパレットテーブル予測子と称される、前のパレットテーブルに基づく予測パレットテーブルおよび／または更新パレットテーブルの予測に少なくとも部分的に基づいている。また一方、符号化ユニットを中に含む複数のウェーブフロントの符号化ツリーブロックのセットが復号されるにつれ、ウェーブフロントのそれぞれに対し、パレットテーブルのセットが生成され、予測され、更新される。前のウェーブフロントよりも遅れた時間に後続のウェーブフロントが復号プロセスを開始すると、先行のウェーブフロント予測済みパレットテーブルおよび／または更新済みパレットテーブルの一部が、後続ウェーブフロントに対するパレットテーブルを予測および／または更新するために利用可能にできる。或る例において、一つのウェーブフロントのパレットテーブルが格納され、（例えば、パレットテーブル予測子として使われることによって）後続のウェーブフロントを同期するために用いられる。或る例では、この後続のウェーブフロントは、下側の符号化ツリーブロック行中のウェーブフロントである。或る例では、一つのウェーブフロントは、符号化ツリーブロックの或る行の、第二符号化ツリーブロックを含む符号化ツリーユニットを復号した後、パレットテーブルを格納し、これは、符号化ツリーブロックの或る行の、第一符号化ツリーブロックを含む符号化ツリーユニットを復号する前に、該格納されたパレットテーブルをパレットテーブル予測子として設定することによって、後続のウェーブフロントを同期するために使用される。別の実施形態において、パレット符号化技法は、各ウェーブフロントの最初の符号化ツリーブロックの最初の符号化ユニットを復号する前に、パレットテーブル予測子に関連付けられた変数を所定の値に初期化することができる。
【０２６２】
図２０Ａを参照すると、前のパレットテーブルが、前のパレットテーブル予測子から予測されるのが示されている。また、示されるように、前のパレットテーブルは追加のエントリを使って更新することも可能である。前のパレットテーブル予測子および前のパレットテーブルの空白エントリは無効のデータを含んでよい。示されるように、次いで、前のパレットテーブル予測子および前のパレットテーブル内のエントリを用いて現パレットテーブル予測子を生成することができる。次に、その現パレットテーブル予測子を使って現パレットテーブルを予測することが可能である。示されるように、或る例では、パレットテーブル予測子からのパレットテーブルの予測は、選択されたエントリをコピーすることに該当し得る。
【０２６３】
図２０Ｂを参照すると、前のパレットテーブルと現パレットテーブル予測子とは、前のパレットテーブルおよび現パレットテーブル予測子内のエントリがオーバーラップしているので、同じメモリストレージ領域を使用すればよい。前のパレットテーブルと現パレットテーブル予測子とのサイズは、テーブルのどの部分が前のパレットテーブル予測子に対応し、どれが現パレットテーブル予測子に対応するかを識別するために、別個の変数に格納することが必要となり得る。或る例において、これらの変数は、ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅＳｙｎｃおよびＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＳｙｎｃを含むことができる。或る例では、これらの変数を結び付けてもよい。或る例において、ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅＳｙｎｃは、Ｍｉｎ（ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅ，ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅ）に等しくでき、上記のＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅは、格納対象のパレットテーブル予測子の最大サイズを表す。或る例では、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＳｙｎｃは、Ｍｉｎ（ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅ，ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅ）に等しくでき、このＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅは、格納対象のパレットテーブル予測子の最大サイズを表す。
【０２６４】
或る例において、現パレットテーブル予測子は、前のパレットテーブル内の有効なエントリをコピーすることによって生成され、現パレットテーブル予測子内でさらなるスペースが利用可能な場合は、前のパレットテーブル予測子内の、予測に使われなかったエントリが一つずつ、現パレットテーブル予測子内に利用可能なさらなるスペースがなくなるまで、現パレットテーブル予測子に添付される。これらのステップがもう尽きた後に、現パレットテーブル予測子内にまだ利用可能なスペースがある場合は、該スペースには無効なデータを包含させればよい。
【０２６５】
当然のことながら、パレットテーブルおよびパレットテーブル予測子は、これらのテーブル内の有効なエントリの数を識別するデータを含むことができる。
【０２６６】
これも当然のことながら、パレットテーブルおよびパレットテーブル予測子は、これらのテーブル内に容認可能なエントリの最大数を識別するデータを含むことが可能である。
【０２６７】
或る例示の実施形態では、パレットテーブルおよびパレットテーブル予測子内に許容されるエントリの最大数は相異なり得る。
【０２６８】
或る例示の実施形態においては、パレットテーブルおよびパレットテーブル予測子内に許容されるエントリの最大数は同じであり得る。
【０２６９】
図１７を参照すると、或る例示の実施形態において、パレット符号化技法は、パレットテーブル予測子を用いるパレットテーブルの予測に少なくとも部分的に基づいている。或る例において、パレットテーブル予測子は、例えば、複数の前の符号化パレットテーブルまたは単一の前の符号化パレットテーブルなど、少なくとも一つの前の符号化パレットテーブルに少なくとも部分的に基づいて生成可能であるが、別の例では、パレットテーブル予測子は所定の情報を使って生成されてもよい。符号化ユニットを中に含む複数のウェーブフロントの符号化ツリーブロックのセットが復号されるにつれ、ウェーブフロントのそれぞれに対し、パレットテーブル予測子のセットが生成され、更新される。前のウェーブフロントよりも遅れた時間に後続のウェーブフロントが復号プロセスを開始すると、先行のウェーブフロントのパレットテーブル予測子またはその部分の一部が、後続ウェーブフロントに対するパレットテーブルを予測および／または更新するために利用可能にできる。或る例において、一つのウェーブフロントのパレットテーブル予測子またはその一部が格納され、（例えば、パレットテーブル予測のため使われることによって）後続のウェーブフロントを同期させるために用いられる。
【０２７０】
図２１は、パレットテーブル予測子ＰＴＰＡの一部が格納され、格納されたエントリが、後続のウェーブフロントと同期させる過程で、パレットテーブル予測子ＰＴＰＢを生成するためにコピーされる例示の実施形態を示す。パレットテーブル予測子ＰＴＰＢ内の残りのエントリは無効なデータを包含してもよい。或る例では、パレットテーブル予測子の格納される部分は、パレットテーブル予測子内で許容されるエントリの最大数の半分に相当し得る。或る例では、パレットテーブル予測子の格納される部分は、パレットテーブル予測子内で許容されるエントリの最大数の四分の一に相当し得る。或る例では、パレットテーブル予測子の格納される部分は、パレットテーブル予測子内のエントリの所定の数に相当し得る。或る例において、格納され後続のウェーブフロントと同期されるパレットテーブル予測子のサイズは、ビットストリーム中でシグナリングすることができる。或る例では、格納され後続のウェーブフロントと同期されるパレットテーブル予測子の部分は、パレットテーブル内で許容されるエントリの最大数に相当し得る。或る例では、格納され後続のウェーブフロントと同期されるパレットテーブル予測子の部分は、（ｉ）所定数、および（ｉｉ）パレットテーブル予測子内で許容されるエントリの最大数の半分、の２つの値のうちの大きい方に相当し得る。或る例では、格納され後続のウェーブフロントと同期されるパレットテーブル予測子の部分は、上に記載した数の任意の他の組み合わせに対応させてもよい。或る例では、格納され後続のウェーブフロントと同期させるパレットテーブル予測子の部分は、ビットストリーム中で受信された過去のデータを用いる導出される値に対応させてもよい。
【０２７１】
或る例において、格納され後続のウェーブフロントと同期させるパレットテーブル予測子のサイズは、ビットストリーム中で受信することができる。或る例では、格納され後続のウェーブフロントと同期されるパレットテーブル予測子のサイズは、ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅ、Ｍｉｎ（ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅ，ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅ）など、またはそれらの組み合せに対応させてもよい。さらに別の例では、ストレージおよび選択され、後続のウェーブフロントと同期させるために選択されるエントリは、最初に、格納され後続のウェーブフロントのパレットテーブル予測子のエントリと同期されるパレットテーブル予測子のサイズに対応する。
【０２７２】
或る例において、格納され後続のウェーブフロントと同期させるパレットテーブル予測子のサイズは、変数ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅの値によって制限することができる。例えば、図２０Ｂを参照すると、後続のウェーブフロントと同期させるために格納される現パレットテーブル予測子のサイズは、（ｉ）現パレットテーブル予測子のサイズ、および（ｉｉ）ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅの２つの値のうちの小さい方として決定される。或る例では、ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅの値は、ビットストリーム中でシグナリングされた、すなわちデコーダによって受信された過去のデータを使って導出することが可能である。或る例では、ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅの値は、ビットストリーム中にシグナリング、すなわちデコーダによって受信されてもよい。
【０２７３】
或る例において、パレット共用モードが有効化されているとき、現符号化ユニットに対するパレットは、パレットテーブル予測子から、最初のＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅエントリをコピーすることによって導出される。一実施形態において、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅは、前のパレットテーブルのサイズに相当する。結果として、パレットテーブル予測子が、後続のウェーブフロントと同期させるために格納されるとき、変数ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅの値も同様に、例えばＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＳｙｎｃとして、格納されることになろう。但し、格納されるテーブルのサイズがＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅの最大に結び付けられている場合、後続のウェーブフロントと同期させるために格納される変数「ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＳｙｎｃ」は、（ｉ）ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅ、および（ｉｉ）ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅの２つの値のうちの小さな方に設定される。
【０２７４】
或る例において、パレットテーブル予測子ＰＴＰＢは、パレットテーブル予測子ＰＴＰＡの部分と、ビットストリーム中にシグナリング、すなわち、デコーダによって受信が可能な所定のパレットテーブル予測子の値と、を含むことができる。或る例では、後続のウェーブフロントは、下側の符号化ツリーブロック行中のウェーブフロントである。或る例では、一つのウェーブフロントは、格納されたパレットテーブル予測子からパレットテーブル予測子として導出することによって（例えば、格納されたパレットテーブル予測子から現パレットテーブル予測子を導出することによって）、符号化ツリーブロック行の最初の符号化ツリーブロックを含む符号化ツリーユニットを復号する前に、符号化ツリーブロック行の２番目の符号化ツリーブロックを含む符号化ツリーユニット（これは後続のウェーブフロントと同期するために用いられるのであるが）を復号した後で、（次のパレットモードの画素符号化ブロックによって、パレットの予測のために使用される）パレットテーブル予測子またはその一部を格納する。別の実施形態において、パレット符号化技法は、各ウェーブフロントの最初の符号化ツリーブロックの最初の符号化ユニットを復号する前に、パレットテーブル予測子に関連付けられた変数を所定の値に初期化することができる。
【０２７５】
或る例示のデコーダにおいて、現画素ブロック（例えば、現ＣＵ）内の、ＥＳＣＡＰＥモードで符号化された画素は、前画素ブロック（例えば、前ＣＵ）内の、ＥＳＣＡＰＥモードで符号化された画素を使って予測することが可能である。
【０２７６】
或る実施形態において、前画素ブロック内のＥＳＣＡＰＥモードで符号化された画素が、対象の現画素に対応するスライスと異なるスライスに対応している場合は、それら画素を予測に利用できないことがある。
【０２７７】
或る実施形態では、前画素ブロック内の、ＥＳＣＡＰＥモードで符号化された画素が、対象の現画素に対応するタイルと異なるタイルに対応している場合、それら画素を予測に利用できないことがある。
【０２７８】
パレット符号化技法は、ＥＳＣＡＰＥモード符号化画素の予測に少なくとも部分的に基づいている。また一方、符号化ユニットを中に含む複数のウェーブフロントの符号化ツリーブロックのセットが復号されるにつれ、ウェーブフロントのそれぞれに対し、パレットテーブルのセットが生成され、予測され、更新される。前のウェーブフロントよりも遅れた時間に後続のウェーブフロントが復号プロセスを開始すると、先行のウェーブフロントのＥＳＣＡＰＥモード符号化画素の一部が、後続ウェーブフロントのＥＳＣＡＰＥモード符号化画素を予測するために利用可能にできる。或る例において、一つのウェーブフロントの（例えば、次のパレットモード画素符号化ブロック中のＥＳＣＡＰＥモード画素の予測のために用いられることになる）ＥＳＣＡＰＥモード符号化画素が格納され、（例えば、ＥＳＣＡＰＥモード符号化画素予測子として使われることによって）後続のウェーブフロントと同期させるために用いられる。或る例では、この後続のウェーブフロントは、下側の符号化ツリーブロック行中のウェーブフロントである。或る例では、一つのウェーブフロントは、符号化ツリーブロック行の２番目の符号化ツリーブロックを含む符号化ツリーユニットを復号した後、ＥＳＣＡＰＥモード符号化画素を格納する。これは、符号化ツリーブロック行の最初の符号化ツリーブロックを含む符号化ツリーユニットを復号する前に、格納されたＥＳＣＡＰＥモード符号化画素をＥＳＣＡＰＥモード符号化画素予測子として設定することによって（例えば、格納されたＥＳＣＡＰＥモード符号化画素から現在のＥＳＣＡＰＥモード符号化画素予測子を導出することによって）後続のウェーブフロントと同期させるために用いられる。別の実施形態において、パレット符号化技法は、各ウェーブフロントの最初の符号化ツリーブロックの最初の符号化ユニットを復号する前に、ＥＳＣＡＰＥモード符号化画素予測子に関連付けられた変数を所定の値に初期化することができる。
【０２７９】
図１８を参照すると、パレット符号化技法は、前のパレットテーブルに基づく予測パレットテーブルおよび／または更新パレットテーブルの予測に少なくとも部分的に基づいている。また一方、符号化ユニットを中に含む、複数の従属スライスの符号化ツリーブロックのセットが復号されるにつれ、従属スライスのそれぞれに対し、パレットテーブルのセットが生成され、予測され、更新される。前の従属スライスよりも遅れた時間に後続の従属スライスが時間的に復号されると、先行の従属スライスの予測済みパレットテーブルおよび／または更新済みパレットテーブルが、後続の従属スライスに対するパレットテーブルを予測および／または更新するために利用可能にできる。或る例において、一つの従属スライスの予測済みパレットテーブルおよび／または更新済みパレットテーブルが、（例えば、パレットテーブル予測子として使われることによって）後続の従属スライスと同期させるために用いられる。別の実施形態において、パレット符号化技法は、各従属スライスの第一符号化ツリーブロックに対する第一符号化ユニットを復号する前に、パレットテーブル予測子に関連付けられた変数を所定の値に初期化することができる。別の実施形態において、パレット符号化技法は、同じスライス内に包含される次の従属スライスの最初の符号化ツリーブロックの最初の符号化ユニットを復号する前に、従属スライスの終端部の現パレットテーブルを格納し、それをパレットテーブル予測子として設定することができる。
【０２８０】
図１８を参照すると、パレット符号化技法は、パレットテーブル予測子を使ったパレットテーブルの予測に少なくとも部分的に基づいている。或る例において、パレットテーブル予測子は、例えば、複数の前の符号化パレットテーブルまたは単一の前の符号化パレットテーブルなど、少なくとも一つの前の符号化パレットテーブルに少なくとも部分的に基づいて生成できるが、別の例では、パレットテーブル予測子は、任意の前の符号化パレットテーブルに加えて、情報を使って生成されてもよい。また一方、符号化ユニットを中に含む複数の従属スライスの符号化ツリーブロックのセットが復号されるにつれ、従属スライスのそれぞれに対し、パレットテーブル予測子のセットが生成され、および／または予測され、および／または更新される。前の従属スライスよりも遅れた時間に後続の従属スライスが時間的に復号されると、先行の従属スライスのパレットテーブル予測子および／または更新済みパレットテーブル予測子が、後続の従属スライスに対するパレットテーブルを予測および／または更新するために利用可能にできる。或る例において、（例えば、画素の次のパレットモード符号化ブロックによって、パレットテーブルの予測のために使用すべく）一つの従属スライスのパレットテーブル予測子および／または更新済みパレットテーブル予測子が、後続の従属スライスと（例えば、従属スライスの開始部のパレットテーブル予測子を導出するのに使われることにより）同期させるために用いられる。別の実施形態において、パレット符号化技法は、各従属スライスの最初の符号化ツリーブロックに対する最初の符号化ユニットを復号する前に、パレットテーブル予測子に関連付けられた変数を所定の値に初期化することができる。別の実施形態において、パレット符号化技法は、同じスライス内に包含される次の従属スライスの最初の符号化ツリーブロックの最初の符号化ユニットを復号する前に、従属スライスの終端部の現パレットテーブル予測子を格納し、それをパレットテーブル予測子として設定することができる。
【０２８１】
図２１は、パレットテーブル予測子ＰＴＰＡの一部が格納され、後続のウェーブフロントと同期させる過程で、使われる例示の実施形態を示す。或る例において、従属スライスに対し同じストレージおよび同期方法が用いられ、後続の従属スライスと同期させるために、パレットテーブル予測子ＰＴＰＡの一部が格納される。
【０２８２】
後続ウェーブフロントとの同期に対し格納されるパレットテーブル予測子のサイズを決定するための前述のアプローチが、後続従属スライスとの同期に対し格納されるパレットテーブル予測子のサイズを決定するためにも使用可能なのは明らかである。
【０２８３】
後続ウェーブフロントとの同期に対する格納パレットテーブル予測子に関連する変数を決定するための前述のアプローチが、後続従属スライスとの同期に対する格納パレットテーブル予測子に関連する変数を決定するためにも使用可能なのは明らかである。或る特定の実施形態において、該変数はＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＳｙｎｃを含む。
【０２８４】
或る例示の実施形態において、ウェーブフロントおよび従属スライスに対するパレットテーブルの予測を容易化するために、ＣＡＢＡＣの初期化が修正される。また、コンテキスト変数およびＲｉｃｅパラメータ初期化に対するストレージおよび同期プロセスも、コンテキスト変数と、パレットテーブル予測子と、Ｒｉｃｅパラメータ初期化とに対するストレージおよび同期プロセスに修正される。これらの対応する起動も修正される。これらの修正は以下をもたらす：
【０２８５】
スライスセグメントデータを構文解析する間に、コンテキスト変数およびＲｉｃｅパラメータ初期化状態に対するストレージ処理が、以下のように適用される：
【０２８６】
符号化ツリーユニット構文の構文解析が終了したとき、ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇは１に等しく、且つ、ＣｔｂＡｄｄｒＩｎＲｓ％ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹが１に等しいかもしくはＣｔｂＡｄｄｒＩｎＲｓが１より大きくてＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＩｎＴｓ］がＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＲｓＴｏＴｓ［ＣｔｂＡｄｄｒＩｎＲｓ−２］］と等しくないかのいずれかであり、コンテキスト変数、パレットテーブル予測子、およびＲｉｃｅパラメータ初期化に対するストレージプロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＷｐｐ、ＴａｂｌｅＭｐｓＶａｌＷｐｐ、ＴａｂｌｅＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓＷｐｐ、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＷｐｐ、およびＴａｂｌｅＳｔａｔＣｏｅｆｆＷｐｐを出力として起動される。
【０２８７】
一般スライスセグメントデータ構文の構文解析が終了したとき、ｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは１に等しく、ｅｎｄ＿ｏｆ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇは１に等しく、コンテキスト変数、パレットテーブル予測子、およびＲｉｃｅパラメータ初期化状態に対するストレージプロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＤｓ、ＴａｂｌｅＭｐｓＶａｌＤｓ、ＴａｂｌｅＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓＤｓ、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＤｓ、およびＴａｂｌｅＳｔａｔＣｏｅｆｆＤｓを出力として起動される。
【０２８８】
ＣＡＢＡＣ構文解析プロセスの修正された初期化プロセスは以下のとおりである。
【０２８９】
このプロセスの出力は、初期化されたＣＡＢＡＣ内部変数、初期化されたＲｉｃｅパラメータ初期化状態ＳｔａｔＣｏｅｆｆ、並びにパレットテーブル予測子のコンテンツに対応するその変数ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓｓおよびサイズに対応するその変数ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅである。
【０２９０】
算術復号エンジンのコンテキスト変数は以下のように初期化される：
−  符号化ツリーユニットがタイル中の最初の符号化ツリーユニットの場合、以下が適用される：
−  コンテキスト変数に対する初期化プロセスが起動される。
−  両端を含め０〜３の範囲のｋに対し、変数ＳｔａｔＣｏｅｆｆ［ｋ］が０に等しく設定される。
−  それ以外の場合、ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しく、且つＣｔｂＡｄｄｒＩｎＲｓ％ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹが０に等しいかまたはＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＴｓ］がＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＲｓＴｏＴｓ［ＣｔｂＡｄｄｒＩｎＲｓ−１］］に等しくない場合には以下が適用される：
−  空間的隣接ブロックＴの最上左部の輝度サンプルの位置（ｘＮｂＴ，ｙＮｂＴ）が、現符号化ツリーブロックの最上左部の輝度サンプルの位置（ｘ０，ｙ０）を使って、以下により導出される：
（ｘＮｂＴ，ｙＮｂＴ）＝（ｘ０＋ＣｔｂＳｉｚｅＹ，ｙ０−ＣｔｂＳｉｚｅＹ）
−  ｚ−スキャン順でのブロックに対するアベイラビリティ導出プロセスが、（ｘ０，ｙ０）に等しく設定された位置（ｘＣｕｒｒ，ｙＣｕｒｒ）、および（ｘＮｂＴ，ｙＮｂＴ）に等しく設定された（ｘＮｂＸ，ｙＮｂＹ）隣接位置を入力として起動され、その出力がａｖａｉｌａｂｌｅＦｌａｇＴに割り当てられる。
−  コンテキスト変数に対する同期プロセスが以下により起動される：
−  ａｖａｉｌａｂｌｅＦｌａｇＴが１に等しい場合は、コンテキスト変数およびＲｉｃｅパラメータ初期化状態に対する同期プロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＷｐｐ、ＴａｂｌｅＭｐｓＶａｌＷｐｐ、ＴａｂｌｅＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓＷｐｐ、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＷｐｐおよびＴａｂｌｅＳｔａｔＣｏｅｆｆＷｐｐを入力として起動される。
−  それ以外の場合は以下が適用される：
−  コンテキスト変数に対する初期化プロセスが起動される。
−  両端を含め０〜３の範囲のｋに対して、変数ＳｔａｔＣｏｅｆｆ［ｋ］が０に等しく設定される。
−  上記以外の場合、ＣｔｂＡｄｄｒＩｎＲｓがｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ａｄｄｒｅｓｓに等しく、且つｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇが１に等しい場合は、コンテキスト変数およびＲｉｃｅパラメータ初期化状態の同期プロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＤｓ、ＴａｂｌｅＭｐｓＶａｌＤｓ、ＴａｂｌｅＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓＤｓ、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＤｓ、およびＴａｂｌｅＳｔａｔＣｏｅｆｆＤｓを入力として起動される。
−  それ以外の場合、以下が適用される：
−  コンテキスト変数に対する初期化プロセスが起動される。
−  両端を含め０〜３の範囲のｋに対して、変数ＳｔａｔＣｏｅｆｆ［ｋ］が０に等しく設定される。
算術復号エンジンに対する初期化プロセスが起動される。
【０２９１】
コンテキスト変数、パレットテーブル予測子、およびＲｉｃｅパラメータ初期化状態に対するストレージプロセスは以下のように説明できる。
【０２９２】
このプロセスへの入力は、ｃｔｘＴａｂｌｅおよびｃｔｘＩｄｘによってインデックスされたＣＡＢＡＣのコンテキスト変数、並びにｃＩｄｘおよびｎによってインデックスされた前のパレットテーブル、並びにｋによってインデックスされたＲｉｃｅパラメータ初期化状態とである。
【０２９３】
このプロセスの出力は、所定の構文要素のサブセットを除く、一般スライスセグメントデータ構文、符号化ツリーユニット構文、サンプル適応オフセット構文、符号化四分ツリー構文、符号化ユニット構文、予測ユニット構文、ＰＣＭサンプル構文、変換ツリー構文、動きベクトル差構文、変換ユニット構文、残差符号化構文中の、全ての構文要素に割り当てられ、コンテキスト変数およびＲｉｃｅパラメータ初期化状態の初期化プロセスにおいて使用される変数ｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓの値を包含する変数ｔａｂｌｅＳｔａｔｅＳｙｎｃおよびｔａｂｌｅＭＰＳＳｙｎｃ、並びに、コンテキスト変数、パレットテーブル予測子、およびＲｉｃｅパラメータ初期化状態の初期化プロセスにおいて使用される変数ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓ［ｃＩｄｘ］［ｎ］、ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅの値を包含する変数ｔａｂｌｅＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓＳｙｎｃ、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＳｙｎｃ、並びに、コンテキスト変数、パレットテーブル予測子、およびＲｉｃｅパラメータ初期化状態の初期化プロセスにおいて使用される変数ＳｔａｔＣｏｅｆｆ［ｋ］の値を包含する変数ｔａｂｌｅＳｔａｔＣｏｅｆｆＳｙｎｃである。
【０２９４】
各コンテキスト変数に対し、テーブルｔａｂｌｅＳｔａｔｅＳｙｎｃおよびｔａｂｌｅＭＰＳＳｙｎｃの対応エントリｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓは、対応するｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓに初期化される。
【０２９５】
ｃＩｄｘが両端を含め０〜（ＣｈｒｏｍａＡｒｒａｙＴｙｐｅ！＝０？２：０）の範囲で変化し、ｎが両端を含め０〜前のＰａｌｅｔｔｅＳｉｚｅ−１の範囲で変化する、各々の前のパレットテーブルエントリに対し、テーブルｔａｂｌｅＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓＳｙｎｃの各エントリは、ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓ［ｃＩｄｘ］［ｎ］の対応値に初期化される。
【０２９６】
各Ｒｉｃｅパラメータ初期化状態ｋに対し、テーブルｔａｂｌｅＳｔａｔＣｏｅｆｆＳｙｎｃの各エントリは、ＳｔａｔＣｏｅｆｆ［ｋ］の対応値に初期化される。
【０２９７】
コンテキスト変数、パレットテーブル予測子、およびＲｉｃｅパラメータ初期化状態に対する同期プロセスは以下のように説明できる。
【０２９８】
このプロセスへの入力は、所定の構文要素のサブセットを除く、一般スライスセグメントデータ構文、符号化ツリーユニット構文、サンプル適応オフセット構文、符号化四分ツリー構文、符号化ユニット構文、予測ユニット構文、ＰＣＭサンプル構文、変換ツリー構文、動きベクトル差構文、変換ユニット構文、残差符号化構文中の、全ての構文要素に割り当てられる、コンテキスト変数のストレージプロセスにおいて使用される変数ｐＳｔａｔｅＩｄｘおよびｖａｌＭＰｓの値を包含する変数ｔａｂｌｅＳｔａｔｅＳｙｎｃおよびｔａｂｌｅＭＰＳＳｙｎｃ、並びに、コンテキスト変数、パレットテーブル予測子、およびＲｉｃｅパラメータ初期化状態のストレージプロセスにおいて使用される変数ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓ［ｃＩｄｘ］［ｎ］およびｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅの値を包含する変数ｔａｂｌｅＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓＳｙｎｃおよびｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＳｙｎｃ、並びに、コンテキスト変数、パレットテーブル予測子、およびＲｉｃｅパラメータ初期化状態のストレージプロセスにおいて使用される変数ＳｔａｔＣｏｅｆｆ［ｋ］の値を包含する変数ｔａｂｌｅＳｔａｔＣｏｅｆｆＳｙｎｃである。
【０２９９】
このプロセスの出力は、ｃｔｘＴａｂｌｅおよびｃｔｘＩｄｘによってインデックスされた、初期化ＣＡＢＡＣコンテキスト変数、並びに、ｃＩｄｘおよびｎによってインデックスされた初期化された前のパレットテーブルエントリ、および前のパレットテーブルサイズ、並びに、ｋによってインデックスされ初期化されたＲｉｃｅパラメータ初期化状態ＳｔａｔＣｏｅｆｆである。
【０３００】
各コンテキスト変数に対し、対応するコンテキスト変数ｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓが、テーブルｔａｂｌｅＳｔａｔｅＳｙｎｃおよびｔａｂｌｅＭＰＳＳｙｎｃの対応エントリｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓに初期化される。
【０３０１】
ｃＩｄｘが、両端を含め０〜（ＣｈｒｏｍａＡｒｒａｙＴｙｐｅ！＝０？２：０）の範囲で変化する場合において、各々の前のパレットテーブルエントリｎに対し、各変数ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓ［ｃＩｄｘ］［ｎ］が、テーブルｔａｂｌｅＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＥｎｔｒｉｅｓＳｙｎｃの対応するエントリに初期化される。変数ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅは、ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＳｙｎｃに初期化される。
【０３０２】
各Ｒｉｃｅパラメータ初期化状態に対し、各変数ＳｔａｔＣｏｅｆｆ［ｋ］が、テーブルｔａｂｌｅＳｔａｔＣｏｅｆｆＳｙｎｃの対応するエントリに初期化される。
【０３０３】
図１９を参照すると、ＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥを用い、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇが、符号化ユニットの境界を横断する上側コピーであるようにできることが望ましい。これらの境界がタイルおよび／またはスライスの境界でもあるときは、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇを、符号化ユニットの境界を横断するＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥにすることを容認すべきでない。かかる状況で、この制限は、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇがＣＯＰＹ＿ＡＢＯＶＥ＿ＭＯＤＥの値を取ることを容認しないこと、および／または、タイルおよび／またはスライス境界をまたがってブロックは利用できないことのフラグ設定、および／または、タイルおよび／またはスライスの境界を越えて利用できない画素を所定の値に設定することによってシグナリングすることが可能である。
【０３０４】
前述の例において、変数ｐｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅは、符号化ユニットに対するパレット符号化の過程で対象となるよりも多くのパレットテーブルを許容できるリストに変換するとよい。これに応じて、前述の例示の実施形態を適切に修正することが可能である。
【０３０５】
ｘ＜＜ｙは、ｘの２の補数の整数表現に対するｙバイナリディジットの算術左シフトを表す。この関数は、非負整数値のｙに対してだけ定義される。左シフトの結果として最下位ビットにシフトされたビットは、０に等しい値を有する。これは左ビットシフトとも言われる。
【０３０６】
ｘ＞＞ｙは、ｘの２の補数の整数表現に対するｙバイナリディジットの算術右シフトを表す。この関数は、非負整数値のｙに対してだけ定義される。右シフトの結果としてＭＳＢにシフトされたビットは、そのシフト演算の前のｘのＭＳＢに等しい値を有する。これは右ビットシフトとも言われる。
【０３０７】
Ｃｅｉｌ（ｘ）は、ｘ以上の最小の整数を表す。
【０３０８】
＋は加算を表す。
【０３０９】
−は減算を表す。
【０３１０】
÷は数学方程式中の除算を表すために使用され、この除算では切り捨てまたは丸めは意図されていない。
【０３１１】
ｘ／ｙは数学方程式中の除算を表すために使用され、この除算では切り捨てまたは丸めは意図されていない。
【０３１２】
ｘ％ｙは剰余演算で、ｘをｙで除した剰余を表し、ｘ≧０且つｙ＞０の整数ｘおよびｙに対してだけ定義される。
【０３１３】
＞は、より大きいを表す。
【０３１４】
≧は、より以上を表す。
【０３１５】
＜は、より小さいを表す。
【０３１６】
≦は、より以下を表す。
【０３１７】
＝＝は、に等しいを表す。
【０３１８】
！＝は、に等しくないを表す。
【０３１９】
＝は代入演算子を表す。
【０３２０】
＊は、マトリックス乗算を含む、乗算を表す。
【０３２１】
ｘ＆＆ｙは、ｘとｙとのブール論理積を表す。
【０３２２】
ｘ｜｜ｙは、ｘとｙとのブール論理和を表す。
【０３２３】
Ｌｏｇ２（ｘ）は、底２のｘの対数を表す。
【０３２４】
数学関数Ｃｌｉｐ３（ｘ，ｙ，ｚ）は次のように見なす。
【数２】
2017522839.tif 000009
【０３２５】
数学関数Ｍｉｎ（ｘ，ｙ）は次のように見なす。
【数３】
2017522839.tif 000010
【０３２６】
数学関数Ｍａｘ（ｘ，ｙ）は次のように見なす。
【数４】
2017522839.tif 000011
【０３２７】
論理演算子ｘ？ｙ：ｚは、以下のように定義される。
【０３２８】
ｘ？ｙ：ｚ  ｘが真または０に等しくない場合、ｙの値と見なす；
【０３２９】
それ以外の場合はｚの値と見なす。
【０３３０】
一符号化ツリーブロックの符号化ブロック群への分割がパーティショニングであって、符号化ブロックは、或る値のＮＢに対するサンプルのＮＢ×ＮＢブロックである。
【０３３１】
一コンポーネントの符号化ツリーブロック群への分割がパーティショニングであって、符号化ツリーブロックは、或る値のＮＢに対するサンプルのＮＢ×ＮＢブロックである。
【０３３２】
符号化ツリーユニットは、輝度サンプルの符号化ツリーブロック、または、３つのサンプル配列を有するピクチャの色差サンプルの２つの対応符号化ツリーブロック、または、白黒ピクチャもしくは３つの別個のカラー平面とサンプルの符号化に使われる構文構造体とを用いて符号化されたピクチャのサンプルの符号化ツリーブロックである。
【０３３３】
符号化ユニットは、輝度サンプルの符号化ユニット、または、３つのサンプル配列を有するピクチャの色差サンプルの２つの対応符号化ブロック、または、白黒ピクチャもしくは３つの別個のカラー平面と当該サンプルの符号化に使われる構文構造体とを用いて符号化されたピクチャのサンプルの符号化ブロックである。
【０３３４】
コンポーネントは、４：２：０、４：２：２、または４：４：４のカラーフォーマットでピクチャを構成する３つの配列（輝度および２つの色差）の一つからの配列もしくは単一のサンプル、または、白黒フォーマットでピクチャを構成する配列の配列もしくは単一のサンプルである。
【０３３５】
変換ブロックは、同一の変換が適用されるサンプルのＭ×Ｎの矩形ブロックである。
【０３３６】
変換係数は、復号プロセスの逆変換部分における、特定の一次元または二次元の周波数インデックスに関連付けられた周波数ドメイン中にあると見なされるスカラー量である。
【０３３７】
変換係数レベルは、変換係数値の計算に対するスケーリングに先立って、復号プロセスにおいて特定の二次元周波数インデックスに関連付けられた値を表す整数量である。或る例示の実施形態において、変換係数レベルは、量子化係数レベルに相当する。
【０３３８】
変換ユニットは、サイズ８×８、１６×１６もしくは３２×３２の輝度サンプルの変換ブロック、または、サイズ４×４の輝度サンプルの４つの変換ブロック、または４：２：０カラーフォーマットによるピクチャの色差サンプルの２つの対応変換ブロック；あるいは、サイズ８×８、１６×１６もしくは３２×３２の輝度サンプルの変換ブロックおよび色差サンプルの４つの対応変換ブロック、または、サイズ４×４の輝度サンプルの４つの変換ブロックおよび４：２：２カラーフォーマットによるピクチャの色差サンプルの４つの対応変換ブロック；あるいは、サイズ４×４、８×８、１６×１６もしくは３２×３２の輝度サンプルの変換ブロック、および３つの別個のカラー平面と変換ブロックサンプルを変換するのに使われる構文構造体とを使って符号化をされていない、４：４：４カラーフォーマットによるピクチャの色差サンプルの２つの対応変換ブロック；あるいは、サイズ８×８、１６×１６もしくは３２×３２の輝度サンプルの変換ブロック、または、白黒ピクチャ、もしくは、３つの別個のカラー平面と変換ブロックサンプルを変換するのに使われる関連構文構造体とを用いて符号化された、４：４：４カラーフォーマットによるピクチャのサイズ４×４の輝度サンプルの４つの変換ブロック；である。
【０３３９】
ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］［ｃＩｄｘ］は、ビットストリーム中にシグナリング可能な構文要素である。ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］［ｃＩｄｘ］は、関連する変換ブロックに変換が適用されるかどうかを指定する。配列インデックスｘ０，ｙ０は、ピクチャの最上左部の輝度サンプルに対する、対象の符号化ブロックの最上左部の輝度サンプルの位置（ｘ０，ｙ０）を指定する。配列インデックスｃＩｄｘはカラー成分に対するインジケータを指定し、これは輝度に対しては０、Ｃｂに対しては１、Ｃｒに対しては２に等しい。１に等しいｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］［ｃＩｄｘ］は、現在の変換ブロックに変換が適用されないことを指定する。０に等しいｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］［ｃＩｄｘ］は、現在の変換ブロックに変換が適用されるかどうかの決定が、他の構文要素に依存しないことを指定する。ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］［ｃＩｄｘ］が存在しないときそれは０に等しいと推定される。
【０３４０】
ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇは、ビットストリーム中にシグナリング可能な構文要素である。１に等しいｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇは、インター予測の補間および逆変換プロセスのため、拡張ダイナミックレンジが使われることを指定する。０に等しいｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇは、拡張ダイナミックレンジが使われないことを指定する。存在しないとき、ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推定される。別の実施形態において、１に等しいｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇは、係数構文解析および逆変換プロセスのため、拡張ダイナミックレンジが使われることを指定する。
【０３４１】
ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇは、ビットストリーム中にシグナリング可能な構文要素である。１に等しいｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇは、現符号化ユニットの残差サンプルに適応カラー変換が適用されることを指定する。０に等しいｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇは、現符号化ユニットの残差サンプルに適応カラー変換が適用されないことを指定する。或る例示の実施形態において、ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇが１に等しく、符号化ユニットがイントラ符号化されるとき、現符号化ユニット内の全ての予測ユニットの色差モードが４に等しいものとする。或る例示の実施形態では、ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇが存在しないときそれは０に等しいと推定される。
【０３４２】
Ｑｐ’Ｙは輝度量子化パラメータである。
【０３４３】
Ｑｐ’ＣｂはＣｂ成分に対する量子化パラメータである。
【０３４４】
Ｑｐ’ＣｒはＣｒ成分に対する量子化パラメータである。
【０３４５】
図２３を参照すると、画像ブロックに対し、エンコーダから受信された量子化係数の逆量子化および逆変換／逆変換スキップのための例示的なデコーダ要素１２０１が、関連する部分について示されている。該デコーダは、逆量子化部１２０５で、量子化係数レベル値１２００を受信する。次いで、逆量子化部１２０５からもたらされる逆量子化係数は、復号残差３２０を算定するために逆変換１２７５または逆変換スキップ３０５のペアのいずれかによって処理される。該逆変換のペアは、マトリックス乗算演算子または他の適切な処理を用いて、データを変換ドメインから空間ドメインにマップする。
【０３４６】
逆量子化部１２０５はスケール除去プロセスを含む。スケール除去プロセスは、ビットストリーム中に送信された量子化係数レベル値１２００を逆量子化係数値１２６０にマップする。スケール除去プロセスは、量子化係数レベル値に、スケーリング係数ｍ１２１０、量子化パラメータ（ｑＰ：ｑｕａｎｔｉｚａｔｉｏｎ  ｐａｒａｍｅｔｅｒ）によって決まる整数ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］１２２０を乗じ、次いでｑＰ／６の左ビットシフト１２２５、次いで丸め係数１＜＜（ｂｄＳｈｉｆｔＱ−１）の加算１２３０、次いでｂｄＳｈｉｆｔＱの右ビットシフト１２４０、最後に１６ビットクリッピング処理１２５０を行うことに該当する。１６ビットクリッピング処理は、３２，７６７を上回る任意の値を最大値３２，７６７に設定する。同様に、１６ビットクリッピング処理は、−３２，７６８を下回る任意の値を最小値−３２，７６８に設定する。スケーリング係数ｍは、逆量子化プロセスによってスケーリングリストが使用されない場合、所定の値にデフォルト化され、それ以外の場合は、該係数は、係数インデックスおよびビットストリーム中にシグナリング可能な値を用いて決定される。ｂｄＳｈｉｆｔＱの値は、変換サイズ（Ｎ）およびサンプルのビット深度（ＢＤ：ｂｉｔ  ｄｅｐｔｈ）によって決まり得る。逆量子化係数値１２６０には、ビットストリーム中にシグナリングされたｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇの値に基づいて、逆変換プロセス１２７５または逆変換スキッププロセス３０５のどちらかを施すことができる。図２３には、これがスイッチ１２７０の助力と共に示されている。逆変換１２７５は、一次元逆垂直変換１２８０を行うことができ、その出力は１６ビットにクリップ１２９０される。また、逆変換１２７５には一次元逆水平変換３００の実施が可能で、これにより、逆変換済みサンプル３１５が得られる。次いで、逆変換済みサンプル３１５に、丸め係数１＜＜（ｂｄＳｈｉｆｔＴ−１）が加えられ、続いて、逆変換後の復号残差３２０を算定するために、ｂｄＳｈｉｆｔＴによって右ビットシフトすることができる。ｂｄＳｈｉｆｔＴの値は、ビット深度ＢＤにより決まり得る。変換１２８０と３００とは、必要に応じ、相互入れ替えが可能である。一次元逆変換（垂直および水平の両方）は、ブロックサイズＮおよび入力変数ｔｒＴｙｐｅに基づいて選択することができる。ｔｒＴｙｐｅがとる値は、対処中のブロックによって使われている予測モードおよびカラー成分インデックスに基づいて決めればよい。逆変換スキッププロセス３０５は、逆量子化係数値１２６０を所定量のビットシフトをすること３１０が可能で、これにより、逆変換スキップサンプル３２５が得られる。次いで、逆変換スキップサンプル３２５に、丸め係数１＜＜（ｂｄＳｈｉｆｔＴＳ−１）を加えればよく、続いて、ｂｄＳｈｉｆｔＴＳによって右ビットシフトされる。ｂｄＳｈｉｆｔＴＳの値は、ビット深度ＢＤにより決めることができ、逆変換スキップ後に得られた復号残差３３０が算定される。ＨＥＶＣでは、ｂｄＳｈｉｆｔＴの値とｂｄＳｈｉｆｔＴＳの値とは同じである。
【０３４７】
図２３に示されたビデオデコーダのメモリストレージ１２２０のメモリバンド幅は、「Ｐａｒｔ１０：Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（パート１０：アドバンストビデオ符号化）」、ＩＳＯ  ｐｕｂｌｉｃａｔｉｏｎ：ＩＳＯ／ＩＥＣ１４４９６−１０：２００５−Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ−Ｃｏｄｉｎｇ  Ｏｆ  Ａｕｄｉｏ−Ｖｉｓｕａｌ  Ｏｂｊｅｃｔｓ（Ｈ．２６４／ＡＶＣ規格）内で実装されている場合、制約を使って制限することが可能である。（上記規格書は参照することにより本明細書に組み込まれる。）例えば、Ｈ．２６４／ＡＶＣ規格の８．５．１０項では、４×４の輝度ＤＣ変換係数に対するメモリアクセスの幅は、以下のステートメントを含めることによって制限されている：「ビットストリームは、両端を含め−２（７＋ｂｉｔＤｅｐｔｈ）〜２（７＋ｂｉｔＤｅｐｔｈ）−１の整数値の範囲を超えるｉ，ｊ＝０…３でのｆのいかなる要素ｆｉｊをもたらすデータも包含してはならない」、および「ビットストリームは、両端を含め−２（７＋ｂｉｔＤｅｐｔｈ）〜２（７＋ｂｉｔＤｅｐｔｈ）−１の整数値の範囲を超えるｉ，ｊ＝０…３でのｄｃＹのいかなる要素ｄｃＹｉｊをもたらすデータも包含してはならない」。Ｈ．２６４／ＡＶＣ規格は、他の変換サイズに対しても同様なメモリ制限を含む。Ｈ．２６４／ＡＶＣ規格は、複雑なメモリバンド幅の制限の包含に加えて、この制限の実行を確実にするためのいかなるメカニズムも含んではいない。同様に、ＪＣＴ−ＶＣ、「Ｄｒａｆｔ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｕｎｄｅｒ  Ｃｏｎｓｉｄｅｒａｔｉｏｎ（検討中のテストモデル案）」、ＪＣＴＶＣ−Ａ２０５、ＪＣＴ−ＶＣ会議、Ｄｒｅｓｄｅｎ、２０１０年４月（ＪＣＴ−ＶＣ）もメモリバンド幅実行メカニズムを含んでいない。上記の論文は参照することにより本明細書に組み込まれる。ロバスト性のため、デコーダは、適合ビットストリームを損なう送信エラーまたは不適合エンコーダに起因し得るこれらの制限に反する可能性のあるビットストリームを受け入れる用意ができていなければならない。かかる潜在的制限を軽減するために、多くの場合、デコーダは、送られてくる不適合ビットストリームに対処するために、コスト及び複雑性の増加を負担し追加のメモリバンド幅を含む。
【０３４８】
限定されたメモリバンド幅および／またはメモリストレージ要件でより計算的にロバストなデコーダを提供するために、デコーダを適切な仕方で改良することができよう。但し、メモリ要件を低減するようにデコーダを改良する一方で、ビデオの対応するレート歪パフォーマンスが大きく劣化しないようにする必要がある。さもなければ、メモリ要件は低減可能であるが、得られるビデオの品質は視聴者が視聴するのに不適なものになってしまう可能性がある。修正１２２５は、６ステップごとに量子化パラメータ中の係数の値の倍加をもたらし、しかして、メモリサイズへの要求を大幅に増大し得る。この増大された値は、最下位ビットとして含められる一つ以上のゼロをもたらす。
【０３４９】
図２３を参照すると、１２４０の出力でのデータは、望ましくは１６ビットにクリップ１２５０される。このように、必要な最大メモリバンド幅は、入力量子化係数レベル値とは関係ない仕方で、システムによって制限される。図２３において、逆変換１２７５および逆変換スキップ３０５は、これらのプロセスに入力されるデータが、入力量子化係数レベル値とは関係なく、１６ビットを超えることはないという知識を用いて実装することが可能である。これは、システムの計算複雑性を低減し、メモリ要求を低下させ、内蔵型システムに対して特に適している。示されるように、前述の逆量子化部のダイナミックレンジを制限するための技法は、（１）逆量子化、逆変換、および／または再構築プロセスの様々なポイントに、ダイナミックレンジに対する実施不能基準制限を設けること、および（２）逆変換の前に、ビットストリームから生成された逆量子化係数データの基準クリッピングを行うこと、を含むとよい。これらの技法の両方は、最初から望ましくない高ダイナミックレンジのデータが生ずるのを防ぐのでなく、もたらされた高ダイナミックレンジのデータに、それが逆変換に供される前にパッチを当てるよう試みる。高ダイナミックレンジのデータにパッチを当てるのとは対照的に、ビットストリーム中の量子化係数レベル値の構文を、無効な高ダイナミックレンジのデータが生じないように制限するのが望ましい。量子化係数レベル値に対応するビットストリーム構文に対し制限を設けることによって、高ダイナミックレンジ制約が、デコーダによる大きな処理の必要なく、容易に実施でき、同様に改良されたビデオ品質を得ることが可能である。有効な制限内にない、受信された一切の量子化係数レベル値は投棄されるかまたはエラーとして検出することができる。これらの制限の別の使用は、全ての復号量子化係数レベル値を、限度で定めた範囲にクリップすることである。レベル値のこのクリッピング処理は、逆量子化処理の結果が、ビットストリームのコンテンツに関係なく、常に望ましい限度内にあることを確実にする。このクリッピングを、量子化係数レベル値に対する何らかの限度に関連させて使用すればよい。
【０３５０】
エントロピーコーダは、ビットストリームに、ビットストリームの構文によって制限される、受容可能な値を含めるだけで、逆量子化係数レベル値のダイナミックレンジを制限することができる。エントロピーエンコーダには、例えば、可変長コーダまたは算術コーダなど任意の適切なコーダを使用すればよい。エンコーダは、ビットストリームを介してデコーダに、量子化パラメータおよび量子化係数レベル値を含む、データのセットを供給する。デコーダは、供給される他のデータと共に量子化パラメータ（例えばｑＰ）および量子化係数レベル値を受信する。量子化パラメータおよび量子化係数レベル値は、エントロピー復号、スケール除去、および逆量子化の後におけるダイナミックレンジを本質的に制限するような方法で選択され、且つそのような方法により許容範囲内でビットストリーム中にシグナリングされる必要がある。エントロピー符号化構文要素に対する制限はかかる制限から導出することができる。
【０３５１】
量子化係数レベル値１２００に基づくビットストリーム適合テストを、エンコーダの出力部もしくはデコーダの入力部、またはその双方の位置で遂行することが可能であり、所定の限度を使えばよい。逆量子化係数値の許容範囲は、最大許容量子化係数レベル値に対する限度として表すことが可能である。量子化係数レベル値を表すビットストリーム構文に対する制限の決定は、量子化係数レベル値に対するこの制限から導出すればよい。例えば、逆量子化係数値のサイズに対する望ましい限度が１５ビットプラス符号ビットの場合、この望ましい限度を、量子化パラメータおよび変換ブロックのサイズに応じて、ビットストリーム中の量子化係数レベル値の選択に対する最大を決めるのに使うことができる。多くの場合、エンコーダが、典型的な仕方で量子化パラメータを選択し、選択された量子化パラメータに基づいて、ビットストリームに対する量子化係数レベル値についての上限を定めるのを許容するのが望ましい。この場合、ビットストリームは、有効範囲を外れる量子化係数レベル値をサポートしないように構築される。さすれば、ビットストリームは、望ましいサイズを超える、Ｑｕａｎｔｉｚｅｄ  Ｃｏｅｆｆｉｃｉｅｎｔまたは量子化係数の値をサポートしない。ＨＥＶＣでは、これは、ビットストリーム内で構文要素「ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ」［ｎ］が取り得る値に対する限度として表される。この限度を包含するＨＥＶＣ規格書からの抜粋を以下にリストする。
【０３５２】
『「ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ」［ｎ］は、スキャニング位置ｎで、Ｇｏｌｏｍｂ−Ｒｉｃｅ符号により符号化された変換係数レベルの残余絶対値である。ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ［ｎ］が存在しないときそれは０に等しいと推定される。
【０３５３】
ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ［ｘ０］［ｙ０］［ｃＩｄｘ］［ｘＣ］［ｙＣ］の対応値が両端を含め−３２７６８〜３２７６７の範囲にあるように、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ［ｎ］の値が制約されることが、ビットストリーム適合の要件である。』
【０３５４】
一部のシステムでは、構文要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ［ｎ］に対する限度を、サンプルビット深度、デコーダの動作モード（例えば、拡張精度処理モード）、変換スキップフラグの全てまたはサブセットの如何よって変化させることが望ましくあり得る。他の実施形態において、構文要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ［ｎ］に対する限度は、ビットストリーム中にシグナリングされた過去のデータにより決まるようにすることもできる。ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ［ｎ］に対する例示の制約を以下にリストする。
【０３５５】
『ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］［ｃＩｄｘ］が０に等しいとき、ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ［ｘ０］［ｙ０］［ｃＩｄｘ］［ｘＣ］［ｙＣ］の対応値が両端を含め−３２７６８〜３２７６７の範囲にあるように、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ［ｎ］の値が制約されることが、ビットストリーム適合の要件である。ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］［ｃＩｄｘ］が１に等しいとき、ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ［ｘ０］［ｙ０］［ｃＩｄｘ］［ｘＣ］［ｙＣ］の対応値が両端を含め、ＬｏｗｅｒＬｉｍｉｔＥＣＴＳ〜ＵｐｐｅｒＬｉｍｉｔＴＣの範囲にあるように、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ［ｎ］の値が制約されることが、ビットストリーム適合の要件である。』
【０３５６】
別の例示の実施形態において、ウェーブフロントに対し、パレットテーブル予測子の一部だけが格納され（従属スライスはそれでもパレットテーブル予測子全体を格納することになろう）、変数ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅの値として所定数３２が使用されるよう容易化するために、ＣＡＢＡＣの初期化が修正される。また、コンテキスト変数およびＲｉｃｅパラメータ初期化に対するストレージおよび同期プロセスも、コンテキスト変数と、パレットテーブル予測子と、Ｒｉｃｅパラメータ初期化とに対するストレージおよび同期プロセスに修正される。これらの対応する起動も修正される。題名ＪＣＴＶＣ−Ｓ１００５「ＨＥＶＣ  Ｓｃｒｅｅｎ  Ｃｏｎｔｅｘｔ  Ｃｏｄｉｎｇ  ｄｒａｆｔ  ｔｅｘｔ２（ＨＥＶＣ画面コンテキスト符号化案テキスト２）」（バージョン１−日付２０１４年１２月１０日１７：２４：５７）の文書（この文書は参照することによりその全体が本明細書に組み込まれる）に基づくこれらの修正は、以下をもたらす：
【０３５７】
或る例において、スライスセグメントデータを構文解析する間に、コンテキスト変数に対するストレージプロセスが以下のように適用される：
【０３５８】
−  符号化ツリーユニット構文の構文解析が終了したとき、ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇは１に等しく、且つ、ＣｔｂＡｄｄｒＩｎＲｓ％ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹが１に等しいかもしくはＣｔｂＡｄｄｒＩｎＲｓが１より大きくてＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＩｎＴｓ］がＴｉｌｅＩｄ［ＣｔｂＡｄｄｒＲｓＴｏＴｓ［ＣｔｂＡｄｄｒＩｎＲｓ−２］］等しくないかのいずれかであり、「ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅが３２に等しく設定され」、コンテキスト変数、Ｒｉｃｅパラメータ初期化状態およびパレット予測変数に対するストレージプロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＷｐｐ、ＴａｂｌｅＭｐｓＶａｌＷｐｐ、ＴａｂｌｅＳｔａｔＣｏｅｆｆＷｐｐ、ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅＷｐｐ、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＷｐｐ、およびＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＥｎｔｒｉｅｓＷｐｐを出力として起動される。
【０３５９】
−  一般スライスセグメントデータ構文の構文解析が終了したとき、ｄｅｐｅｎｄｅｎｔ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは１に等しく、ｅｎｄ＿ｏｆ＿ｓｌｉｃｅ＿ｓｅｇｍｅｎｔ＿ｆｌａｇは１に等しく、「‘ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅはＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅに等しく設定され」、コンテキスト変数、Ｒｉｃｅパラメータ初期化状態、およびパレット予測変数に対するストレージプロセスが、ＴａｂｌｅＳｔａｔｅＩｄｘＤｓ、ＴａｂｌｅＭｐｓＶａｌＤｓ、ＴａｂｌｅＳｔａｔＣｏｅｆｆＤｓ、ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅＤｓ、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＤｓ、およびＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＥｎｔｒｉｅｓＤｓを出力として起動される。
【０３６０】
コンテキスト変数、Ｒｉｃｅパラメータ初期化状態、およびパレット予測変数に対するストレージプロセスは以下のように説明することができる：
【０３６１】
このプロセスに対する入力は：
−  ｃｔｘＴａｂｌｅおよびｃｔｘＩｄｘによってインデックスされたＣＡＢＡＣコンテキスト変数と、
−  ｋによってインデックスされたＲｉｃｅパラメータ初期化状態と、
−  パレット予測変数ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅ、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅ、およびＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＥｎｔｒｉｅｓと、
−  「変数ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅ」と、である。
【０３６２】
このプロセスの出力は：
−  ｃｔｘＴａｂｌｅおよびｃｔｘＩｄｘによってインデックスされ、初期化されたＣＡＢＡＣコンテキスト変数と、
−  ｋによってインデックスされ、初期化されたＲｉｃｅパラメータ初期化状態と、
−  パレット予測変数ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅ、ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅ、およびＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＥｎｔｒｉｅｓと、である。
【０３６３】
各コンテキスト変数に対し、対応するコンテキスト変数ｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓが、テーブルｔａｂｌｅＳｔａｔｅＳｙｎｃおよびｔａｂｌｅＭＰＳＳｙｎｃの対応エントリｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓに初期化される。
【０３６４】
各Ｒｉｃｅパラメータ初期化状態に対し、各変数ＳｔａｔＣｏｅｆｆ［ｋ］がテーブルｔａｂｌｅＳｔａｔＣｏｅｆｆＳｙｎｃの対応エントリに初期化される。
【０３６５】
パレット予測変数に対しては、ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅＳｙｎｃが、Ｍｉｎ（ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅ，ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅ）に初期化され；ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅＳｙｎｃが、Ｍｉｎ（ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅ，ＰｒｅｖｉｏｕｓＰａｌｅｔｔｅＳｉｚｅ）に初期化される。ｔａｂｌｅＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＥｎｔｒｉｅｓＳｙｎｃに対して、最初のＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＳｉｚｅＳｙｎｃの各エントリが、ＰｒｅｄｉｃｔｏｒＰａｌｅｔｔｅＥｎｔｒｉｅｓの対応値に初期化される。
【０３６６】
なお、同期プロセスは、同期のため、格納済みの値、サイズなどを使用する。したがって、格納されたエントリの数の変更を、同期プロセスに反映する必要はない。
【０３６７】
他の例示の実施形態において、前述のドラフトテキスト中のＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅは本明細書で説明した他の値としてもよい。例えば、ＭａｘＳｔｏｒｅＰａｌｅｔｔｅＳｉｚｅは、パレットテーブル予測子内に許容されるエントリの最大数（例えば、ｐａｌｅｔｔｅ＿ｍａｘ＿ｐｒｅｄｉｃｔｏｒ＿ｓｉｚｅ＞＞１、Ｍａｘ（所定数，ｐａｌｅｔｔｅ＿ｍａｘ＿ｐｒｅｄｉｃｔｏｒ＿ｓｉｚｅ＞＞１））に基づいてもよく、またはパレットテーブル内に許容されるエントリの最大数（例えば、ｐａｌｅｔｔｅ＿ｍａｘ＿ｓｉｚｅ＋１）に基づいてもよく、または、所定の数もしくはビットストリーム中にシグナリングされた（すなわち、デコーダによって受信された）数、または前述の組み合わせとしてもよい。
【０３６８】
本開示の例示の諸特徴は：
【０３６９】
要約Ｉ−パレットテーブル予測子の部分を格納し、パレットテーブル予測子の部分を用いて後続の従属スライスと同期させるデコーダ。或る例において、格納されるパレットテーブル予測子の部分のサイズは、所定である。或る例では、格納されるパレットテーブル予測子の部分のサイズは、ビットストリーム中にシグナリングされた、すなわちデコーダによって受信された過去のデータから導出される。
【０３７０】
１−１．パレットテーブル予測子のエントリのサブセットを選択し、該パレットテーブル予測子は一つのウェーブフロントと関連しており、
選択されたパレットテーブル予測子のエントリのサブセットをメモリデバイスに格納し、
格納された選択部分を用いて後続のウェーブフロントと同期させ、該同期は、格納された選択部分のエントリに基づいて後続のウェーブフロントに対するパレットテーブル予測子を導出することを含む、
ように構成されたデコーダ。
【０３７１】
１−２．後続のウェーブフロントに対するパレットテーブル予測子を導出することが、
格納された選択部分の各エントリのデータを、後続のウェーブフロントに対するパレットテーブル予測子の対応するエントリ中にコピーすること、
を含む、特徴１−１に記載のデコーダ。
【０３７２】
１−３．デコーダが、無効のデータを後続のウェーブフロントに対するパレット予測子の任意の残りのエントリ中にコピーするようさらに構成される、特徴１−２に記載のデコーダ。
【０３７３】
１−４．デコーダが、中にコピーされたデータを有する対応エントリの数を識別するようさらに構成される、特徴１−２に記載のデコーダ。
【０３７４】
１−５．パレットテーブル予測子のエントリのサブセットを選択することが、
ビットストリーム中で受信されたシグナリング値を判定することと、
判定されたシグナリング値に基づいて、パレットテーブル予測子のエントリのサブセットを選択することと、
を含む、特徴１−１または１−２に記載のデコーダ。
【０３７５】
１−６．パレットテーブル予測子のエントリのサブセットを選択することが、所定の値に基づいて、パレットテーブル予測子のエントリのサブセットを選択することを含む、特徴１−１または１−２に記載のデコーダ。
【０３７６】
２−１．パレットテーブル予測子のエントリのサブセットを選択し、該パレットテーブル予測子は少なくとも一つのウェーブフロントまたは従属スライスと関連しており；選択されたパレットテーブル予測子のエントリのサブセットをメモリデバイスに格納し；格納された選択部分を用いて後続の従属スライスと同期させ、該同期が、格納された選択部分のエントリに基づいて後続の従属スライスに対するパレットテーブル予測子を導出することを含む、
ように構成されたデコーダ。
【０３７７】
２−２．後続の従属スライスに対するパレットテーブル予測子を導出することが、
格納された選択部分の各エントリのデータを、後続の従属スライスに対するパレットテーブル予測子の対応するエントリ中にコピーすること、
を含む、特徴２−１に記載のデコーダ。
【０３７８】
２−３．パレットテーブル予測子のエントリのサブセットを選択することが、
ビットストリーム中で受信されたシグナリング値を判定することと；
【０３７９】
判定されたシグナリング値に基づいて、パレットテーブル予測子のエントリのサブセットを選択することと、
を含む、特徴２−１または２−２に記載のデコーダ。
【０３８０】
２−４．パレットテーブル予測子のエントリのサブセットを選択することが、所定の値に基づいて、パレットテーブル予測子のエントリのサブセットを選択することを含む、特徴２−１または２−２に記載のデコーダ。
【０３８１】
要約ＩＩＩ−パレットテーブルの最大サイズを受信し、該パレットテーブルの最大サイズに対する差としてパレットテーブル予測子の最大サイズを受信するデコーダ。該デコーダは、該受信された差とパレットテーブルの最大サイズとの和としてパレットテーブル予測子の最大サイズを計算するように構成される。或る例において、デコーダは、パレットテーブル予測子の最大サイズの値がパレットテーブルの最大サイズよりも大きくなるよう制限するビットストリーム適合要件に従って動作する。或る例では、デコーダは、パレットテーブル予測子の最大サイズの値がパレットテーブルの最大サイズよりも大きくなるよう制限する意味制約に従って動作する。
【０３８２】
３．１  受信されたビットストリームから第一値を回収し、第一値はパレットテーブルの最大サイズを含み、
受信されたビットストリームから第二値を回収し、第二値は差の値を含み、
該第一および第二値に基づいて第三値を導出し、該第三値はパレットテーブル予測子の最大サイズを含む、
ように構成されたデコーダ。
【０３８３】
３．２  第一および第二値に基づいて第三値を導出することが、第一値と第二値とを合計することをさらに含む、３．１に記載のデコーダ。
【０３８４】
或る例示の実施形態において、ＬｏｗｅｒＬｉｍｉｔＥＣＴＳおよびＵｐｐｅｒＬｉｍｉｔＥＣＴＳは、サンプルビット深度ＢＤの関数である。例えば：
ＢＤが１５以下の場合は以下が適用される：
ＬｏｗｅｒＬｉｍｉｔＥＣＴＳ＝−３２７６８
ＵｐｐｅｒＬｉｍｉｔＥＣＴＳ＝３２７６７
それ以外の場合は、
ＬｏｗｅｒＬｉｍｉｔＥＣＴＳ＝−（１＜＜ＢＤ）
ＵｐｐｅｒＬｉｍｉｔＥＣＴＳ＝（１＜＜ＢＤ）−１
【０３８５】
或る例示の実施形態において、ＬｏｗｅｒＬｉｍｉｔＥＣＴＳおよびＵｐｐｅｒＬｉｍｉｔＥＣＴＳは、サンプルビット深度ＢＤおよびデコーダの動作モード（例えば、拡張精度処理モード）の関数である。
【０３８６】
或る例示の実施形態では、ＬｏｗｅｒＬｉｍｉｔＥＣＴＳおよびＵｐｐｅｒＬｉｍｉｔＥＣＴＳは、サンプルビット深度ＢＤ、変換スキップフラグ、およびデコーダの動作モード（例えば、拡張精度処理モード）の関数である。例えば：
【０３８７】
ＢＤが１５以下、またはｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇが０に等しい場合は、以下が適用される：
ＬｏｗｅｒＬｉｍｉｔＥＣＴＳ＝−３２７６８
ＵｐｐｅｒＬｉｍｉｔＥＣＴＳ＝３２７６７
それ以外の場合は、
ＬｏｗｅｒＬｉｍｉｔＥＣＴＳ＝−（１＜＜ＢＤ）
ＵｐｐｅｒＬｉｍｉｔＥＣＴＳ＝（１＜＜ＢＤ）−１
【０３８８】
別の例では、ＬｏｗｅｒＬｉｍｉｔＥＣＴＳ、ＵｐｐｅｒＬｉｍｉｔＥＣＴＳは、以下のように算定できる：
ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇが０に等しい場合は、以下が適用される：
ＬｏｗｅｒＬｉｍｉｔＥＣＴＳ＝−３２７６８
ＵｐｐｅｒＬｉｍｉｔＥＣＴＳ＝３２７６７
それ以外の場合は、
ＬｏｗｅｒＬｉｍｉｔＥＣＴＳ＝−（１＜＜（ＢＤ＋ｅｃ＿ｏｆｆｓｅｔ））
ＵｐｐｅｒＬｉｍｉｔＥＣＴＳ＝（１＜＜（ＢＤ＋ｅｃ＿ｏｆｆｓｅｔ））−１
【０３８９】
上式のｅｃ＿ｏｆｆｓｅｔは整数である。一部の実施形態では、ｅｃ＿ｏｆｆｓｅｔは、ビットストリーム中にシグナリングされた過去のデータから決めることができる。
【０３９０】
量子化係数レベル値の限度の別の選択は、逆量子化係数の最大として望ましい限度を使用し、パラメータのより多くの数に基づいて量子化係数レベル値に対する値を選択することである。一部の場合、エンコーダが、標準的な仕方で量子化パラメータおよびブロックサイズ（例えばＮ）を選択し、選択された量子化パラメータおよびブロックサイズに基づいて、ビットストリームに対する量子化係数レベル値の上限を定めるのを許容するのが望ましいことがある。この場合、ビットストリームは、ｑＰ，Ｎ、量子化係数および量子化係数群の望ましいサイズから導出された限度を超える、量子化係数レベルの値または量子化係数レベル値をサポートしないように構築される。一部の場合、エンコーダが、標準的な仕方で、量子化パラメータ、変換ブロックサイズ、およびＢｉｔＩｎｃｒｅｍｅｎｔ値を選択し、選択された量子化パラメータ、変換ブロックサイズ、およびＢｉｔＩｎｃｒｅｍｅｎｔ値に基づいて、ビットストリームに対する量子化係数レベル値の上限を定めるのを容認するのが望ましいことがある。このＢｉｔＩｎｃｒｅｍｅｎｔは（ＢＤ−８）を表す。この場合も、ビットストリームは、有効範囲を外れる量子化係数レベル値の値をサポートしないように構築される。
【０３９１】
一つの特定の実装において、ビットストリーム中にシグナリングされた逆量子化係数、量子化パラメータ（例えば、ｑＰ）、および量子化係数レベル値に対する望ましい限度の間における適切な関係を決めるのが望ましい。所与の逆量子化関係を用いて、逆量子化係数値に対する望ましい限度と絶対量子化レベル値に対する望ましい限度との間の関係を決めることが可能である。別の逆量子化関係も同様に使用可能である。
【０３９２】
例えば、ｋ個の符号付きビットによる表現に対し、逆量子化係数は、２ｋ−１−１の絶対値中に制限することが可能で、例えば、符号付き１６ビットに対して、絶対逆量子化係数レベル値は、上端を含め２１５−１に制限される。
【０３９３】
逆量子化係数レベル値のセットは以下のように定義することができる：
【０３９４】
ＢＤ＝サンプルビット深度（例えば、８または１０ビット）。なお、サンプルビット深度は各カラー成分に対して異なり得、したがって、各カラー成分の復号は、入力値の同じセットに対し相異なる出力をもたらし得る。
【０３９５】
ＤＢ＝Ｂ−８（内部ビット深度が８ビットの入力によって増加する）：
【０３９６】
Ｎ＝ブロックサイズ；なお、非正方形ブロックの場合、Ｎは｛ｆｄ，ｓｄ｝を包含する２タップルのベクトルを表し、このｆｄは第一一次元逆変換のサイズであり、ｓｄは第二一次元逆変換のサイズである。
【０３９７】
Ｍ＝Ｌｏｇ２（Ｎ）；なお、非正方形ブロックの場合、Ｍは、第一および第二一次元逆変換のサイズの関数、例えば、Ｍ＝（Ｌｏｇ２（ｆｄ）＋Ｌｏｇ２（ｓｄ））＞＞１、とすることができる。
【０３９８】
Ｑ＝ｆ［ｑＰ％６］、
【０３９９】
ここで、ｆ［ｘ］＝｛２６２１４，２３３０２，２０５６０，１８３９６，１６３８４，１４５６４｝、ｘ＝０，…，５。
【０４００】
ＩＱ＝ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］、
【０４０１】
リストｌｅｖｅｌＳｃａｌｅ［  ］は、ｌｅｖｅｌＳｃａｌｅ［ｋ］＝｛４０，４５，５１，５７，６４，７２｝として指定され、ｋ＝０…５である。
【０４０２】
変数ｂｄＳｈｉｆｔＱは、ｂｄＳｈｉｆｔＱ＝ＢＤ＋Ｍ−５として導出できる。
【０４０３】
係数インデックス（ｘ，ｙ）に対するスケーリング係数は、以下のように導出される：
【０４０４】
逆量子化にスケーリングリストが使われていない場合（これはビットストリーム内にシグナリングされた情報に基づいて判定することができる）、
ｍ＝１６
それ以外の場合、
ｍ＝ＳｃａｌｉｎｇＦａｃｔｏｒ［ｓｉｚｅＩｄ］［ｍａｔｒｉｘＩｄ］［ｘ］［ｙ］
【０４０５】
上式のＳｃａｌｉｎｇＦａｃｔｏｒ［ｓｉｚｅＩｄ］［ｍａｔｒｉｘＩｄ］［ｘ］［ｙ］は、ｘ，ｙ＝０…（１＜＜（２＋ｓｉｚｅＩｄ））−１で、スケーリング係数の四次元配列を指定する。ｓｉｚｅＩｄは、ブロックサイズによって決まる変数であり、ｍａｔｒｉｘＩｄは、ｓｉｚｅＩｄ、ブロックによって使われる予測モード、およびカラー成分インデックスによって決まる変数である。ＳｃａｌｉｎｇＦａｃｔｏｒの要素は、ルールの所定のセットを使って導出されるか、またはビットストリーム中に明示的にシグナリングできる。或る例において、ＳｃａｌｉｎｇＦａｃｔｏｒの要素は、両端を含め０〜２５５の範囲中の整数値を取り得る。
【０４０６】
量子化係数レベル値ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ、係数インデックス（ｘ，ｙ）、カラー成分インデックス、サンプルビット深度、ブロックサイズ、および量子化パラメータｑＰを逆量子化係数に変換する逆量子化は、以下の式で与えることができる：
ｃｏｅｆｆＤＱ＝Ｃｌｉｐ３（−３２７６８，３２７６７，（（ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ＊ｍ＊ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］＜＜（ｑＰ／６））＋（１＜＜（ｂｄＳｈｉｆｔＱ−１）））＞＞ｂｄＳｈｉｆｔＱ）
【０４０７】
次いで、逆量子化係数は、逆変換または逆変換スキッププロセスのいずれかを施され、その後に丸められ、復号残差を算定するためにスケーリングされる。
【０４０８】
或る例示的な逆変換は、入力として、変換型ｔｒＴｙｐｅ、ブロックサイズＮ、サンプルビット深度ＢＤ、および逆量子化係数値の配列を取り、逆変換済みサンプル値３１５、例えば「ｉｎｔｅｒｍｅｄｉａｔｅＲｅｓｉｄｕｅＳａｍｐｌｅＶａｌｕｅｓＴ」を出力する。これらの逆変換済みサンプル値には、以下の式で与えられるさらなる丸めおよびスケーリングを施すことができ、逆変換後に得られる復号残差３２０「ｄｅｃＲｅｓｉｄｕｅＴ」が取得される：
ｂｄＳｈｉｆＴ＝２０−ＢＤ
ｄｅｃＲｅｓｉｄｕｅＴ＝（ｉｎｔｅｒｍｅｄｉａｔｅＲｅｓｉｄｕｅＳａｍｐｌｅＶａｌｕｅｓＴ＋（１＜＜（ｂｄＳｈｉｆｔＴ−１）））＞＞ｂｄＳｈｉｆｔＴ
【０４０９】
或る例示的な逆変換スキップは、入力として逆量子化係数値の配列を取り、逆変換スキップサンプル値３２５、例えば「ｉｎｔｅｒｍｅｄｉａｔｅＲｅｓｉｄｕｅＳａｍｐｌｅＶａｌｕｅｓＴＳ」を出力する。逆変換サンプル値は以下の式によって算定することができる。
【０４１０】
ｉｎｔｅｒｍｅｄｉａｔｅＲｅｓｉｄｕｅＳａｍｐｌｅＶａｌｕｅｓＴＳ＝ｃｏｅｆｆＤＱ＜＜７
【０４１１】
次いで、これらの逆変換スキップサンプル値３２５には、以下の式で与えられるさらなる丸めおよびスケーリングを施すことができ、逆変換スキップ後に得られる復号残差３３０「ｄｅｃＲｅｓｉｄｕｅＴ」が取得される：
ｂｄＳｈｉｆｔＴＳ＝２０−ＢＤ
ｄｅｃＲｅｓｉｄｕｅＴＳ＝（ｉｎｔｅｒｍｅｄｉａｔｅＲｅｓｉｄｕｅＳａｍｐｌｅＶａｌｕｅｓＴＳ＋（１＜＜（ｂｄＳｈｉｆｔＴＳ−１）））＞＞ｂｄＳｈｉｆｔＴＳ
【０４１２】
大きなサンプルビット深度に対しては、生成される量子化係数レベル値も大きくなり得る。かかる場合、逆量子化部内での１６ビットクリッピング１２５０は、より頻繁に行うことができ、これにより、出力逆量子化係数値１２６０の範囲が制限される。この制限範囲は、逆変換の後で得られる復号残差３２０の範囲に、しかして圧縮効率に影響を与える。或る例において、１２５０でのクリッピング範囲が拡張される。ＨＥＣＶでは、１２５０のクリッピング範囲は１６ビットである。１６ビットを超えてクリッピング範囲を拡張する場合、その逆変換実装は、ＨＥＶＣ対し実装される逆変換よりも、大きな範囲および高精度を使ってデータを取り扱う能力を有することが必要となろう。これは、増大された逆変換精度要件からもたらされる必要な再設計、およびより広大なハードウェア要求事項に起因して、デコーダのコストを増加させることになろう。しかしながら、変換スキップのパス（すなわち、ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇが１に等しいとき）だけに対し選択的にクリップ１２５０を拡張することは、ＨＥＶＣの逆変換実装を再利用可能な折衷を提供する。これには、（より大きな逆量子化係数値に起因して）逆変換スキップパス路のデータ処理能力の増強が必要となろう。但し、逆変換スキップパス路の変更は、逆変換パス路への変更に比べて、実装がより容易である。
【０４１３】
或る例において、変換スキップパス路だけに対する逆量子化クリッピング１２５０での変更を達成すべく、逆量子化係数値ｃｏｅｆｆＤＱを算定するため以下の式を用いることができる：
【０４１４】
ｔｒａｎｓｆｏｒｍｓ＿ｓｋｉｐ＿ｆｌａｇが１に等しい場合、以下が適用される：
ｃｏｅｆｆＤＱ＝Ｃｌｉｐ３（ＬｏｗｅｒＬｉｍｉｔＴＳ，ＵｐｐｅｒＬｉｍｉｔＴＳ，（（ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ＊ｍ＊ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］＜＜（ｑＰ／６）＋（１＜＜（ｂｄＳｈｉｆｔＱ−１）））＞＞ｂｄＳｈｉｆｔＱ）
それ以外の場合は、
ｃｏｅｆｆＤＱ＝Ｃｌｉｐ３（−３２７６８，３２７６７，（（ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ＊ｍ＊ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］＜＜（ｑＰ／６））＋（１＜＜（ｂｄＳｈｉｆｔＱ−１）））＞＞ｂｄＳｈｉｆｔＱ）
【０４１５】
上式のＬｏｗｅｒＬｉｍｉｔＴＳおよびＵｐｐｅｒＬｉｍｉｔＴＳは整数値である。
【０４１６】
図２４を参照すると、ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇに基づく２つの異なるクリッピング演算の選択に、逆量子化部中のスイッチ４００が使われている。
【０４１７】
或る例示の実施形態において、ＬｏｗｅｒＬｉｍｉｔＴＳおよびＵｐｐｅｒＬｉｍｉｔＴＳはサンプルビット深度ＢＤの関数である。例えば、
ＢＤが１５以下の場合以下が適用される：
ＬｏｗｅｒＬｉｍｉｔＴＳ＝−３２７６８
ＵｐｐｅｒＬｉｍｉｔＴＳ＝３２７６７
その他の場合は、
ＬｏｗｅｒＬｉｍｉｔＴＳ＝−（１＜＜ＢＤ）
ＵｐｐｅｒＬｉｍｉｔＴＳ＝（１＜＜ＢＤ）−１
【０４１８】
逆量子化部内の右ビットシフトｂｄＳｈｉｆｔＱ１２４０の選択は、逆量子化係数値１２６０への量子化係数レベル値１２００のマッピングに影響する。逆量子化係数値１２６０の望ましい範囲に対し、ｂｄＳｈｉｆｔＱ１２４０のより小さな値は、量子化係数レベル値１２００に対するより大きな必要範囲をもたらすことになろう。量子化係数レベル値１２００に対するより大きな範囲が、今度は圧縮効率を低下させることになろう。或る実施形態において、より高い圧縮効率を達成するために、ｂｄＳｈｉｆｔＱの値が増大される。量子化部のステップのサイズ関係で同じ全体的なｑＰを維持するために、ｂｄＳｈｉｆｔＱの変更は、デコーダ中の何らかの他の場所で補償される。例えば、整数「ｘ」によるｂｄＳｈｉｆｔＱの増大は、ｂｄＳｈｉｆｔＴおよびｂｄＳｈｉｆｔＴＳを「ｘ」分低減することによって補償することができる。以下にリストする算式はこのシフト係数の変更を示す：
ｂｄＳｈｉｆｔＱ＝ＢＤ＋Ｍ−５＋ｘ
ｂｄＳｈｉｆｔＴ＝２０−ＢＤ−ｘ
ｂｄＳｈｉｆｔＴＳ＝２０−ＢＤ−ｘ
【０４１９】
上式のｘは整数である。或る例において、ｘは、サンプルビット深度ＢＤ、ブロックサイズＮ、デコーダ動作のモード（例えば、拡張精度処理モード）の全てまたはサブセットに基づいて算定することが可能である。
【０４２０】
或る例示の実施形態において、ｂｄＳｈｉｆｔＱの変更は、逆変換スキッププロセスパス路に対してだけ実装される。次いで、シフト係数ｂｄＳｈｉｄｆｔＱ、ｂｄＳｈｉｆｔＴ、およびｂｄＳｈｉｆｔＴＳが、以下の式を用いて算定される：
【０４２１】
ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇが１に等しい場合、以下が適用される：
ｂｄＳｈｉｆｔＱ＝ＢＤ＋Ｍ−５＋ｙ
ｂｄＳｈｉｆｔＴＳ＝２０−ＢＤ−ｙ
その他の場合は、
ｂｄＳｈｉｆｔＱ＝ＢＤ＋Ｍ−５
ｂｄＳｈｉｆｔＴ＝２０−ＢＤ
【０４２２】
上式のｙは整数である。或る例において、ｙは、サンプルビット深度ＢＤ、ブロックサイズＮ、デコーダ動作のモード（例えば、拡張精度処理モード）の全てまたはサブセットに基づいて算定することが可能である。
【０４２３】
或る例示の実施形態において、逆変換プロセスパス路と逆変換スキッププロセスパス路とに対するｂｄＳｈｉｆｔＱの変更は相異なる。次いで、これらのシフト係数ｂｄＳｈｉｄｆｔＱ、ｂｄＳｈｉｆｔＴ、およびｂｄＳｈｉｆｔＴＳが、以下の式を使って算定される：
【０４２４】
ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇが１に等しい場合、以下が適用される：
ｂｄＳｈｉｆｔＱ＝ＢＤ＋Ｍ−５＋ｗ
ｂｄＳｈｉｆｔＴＳ＝２０−ＢＤ−ｗ
その他の場合は、
ｂｄＳｈｉｆｔＱ＝ＢＤ＋Ｍ−５＋ｚ
ｂｄＳｈｉｆｔＴ＝２０−ＢＤ−ｚ
【０４２５】
上式のｗおよびｚは整数である。或る例において、ｗおよびｚは、サンプルビット深度ＢＤ、ブロックサイズＮ、デコーダ動作のモード（例えば、拡張精度処理モード）の全てまたはサブセットに基づいて算定することが可能である。
【０４２６】
別の例示的な逆変換スキッププロセスにおいて、逆変換スキッププロセスは、入力として逆量子化係数値の配列、変数ｂｄＳｈｉｆｔＴＳを取り、逆変換スキップサンプル値３２５、例えば「ｉｎｔｅｒｍｅｄｉａｔｅＲｅｓｉｄｕｅＳａｍｐｌｅＶａｌｕｅｓＴＳ」を出力する。ｉｎｔｅｒｍｅｄｉａｔｅＲｅｓｉｄｕｅＳａｍｐｌｅＶａｌｕｅｓＴＳの値は、以下の式で算定することができる：
【０４２７】
ｉｎｔｅｒｍｅｄｉａｔｅＲｅｓｉｄｕｅＳａｍｐｌｅＶａｌｕｅｓＴＳ＝ｃｏｅｆｆＤＱ＜＜ｔｓＳｈｉｆｔ
【０４２８】
上式のｔｓＳｈｉｆｔは、非負整数である。或る例では、ｔｓＳｈｉｆｔはＭｉｎ（７，ｂｄＳｈｉｆｔＴＳ）に等しい。
【０４２９】
この例において、変換スキップパス路だけに対し、逆量子化部の右ビットシフトｂｄＳｈｉｆｔＱ２４０の変更を達成すべく、逆量子化係数値ｃｏｅｆｆＤＱを算定するために以下の算式のセットを用いることができる：
【０４３０】
ｔｒａｎｓｆｏｒｍｓ＿ｓｋｉｐ＿ｆｌａｇが１に等しい場合、以下が適用される：
ｂｄＳｈｉｆｔＱ＝ＢＤ＋Ｍ−５−Ｍａｘ（０，ＢＤ＋Ｍ−１５）
ｃｏｅｆｆＤＱ＝Ｃｌｉｐ３（ＬｏｗｅｒＬｉｍｉｔＴＳ，ＵｐｐｅｒＬｉｍｉｔＴＳ，（（ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ＊ｍ＊ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］＜＜（ｑＰ／６））＋（１＜＜（ｂｄＳｈｉｆｔＱ−１）））＞＞ｂｄＳｈｉｆｔＱ）
その他の場合は、
ｃｏｅｆｆＤＱ＝Ｃｌｉｐ３（−３２７６８，３２７６７，（（ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ＊ｍ＊ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］＜＜（ｑＰ／６））＋（１＜＜（ｂｄＳｈｉｆｔＱ−１）））＞＞ｂｄＳｈｉｆｔＱ）
【０４３１】
上式のＬｏｗｅｒＬｉｍｉｔＴＳおよびＵｐｐｅｒＬｉｍｉｔＴＳは整数値である。或る例において、ＬｏｗｅｒＬｉｍｉｔＴＳおよびＵｐｐｅｒＬｉｍｉｔＴＳはサンプルビット深度ＢＤの関数である。例えば、
ＢＤが１５以下の場合、以下が適用される：
ＬｏｗｅｒＬｉｍｉｔＴＳ＝−３２７６８
ＵｐｐｅｒＬｉｍｉｔＴＳ＝３２７６７
その他の場合は、
ＬｏｗｅｒＬｉｍｉｔＴＳ＝−（１＜＜ＢＤ）
ＵｐｐｅｒＬｉｍｉｔＴＳ＝（１＜＜ＢＤ）−１
【０４３２】
別の実施形態において、算式、
ｉｎｔｅｒｍｅｄｉａｔｅＲｅｓｉｄｕｅＳａｍｐｌｅＶａｌｕｅｓＴＳ＝ｃｏｅｆｆＤＱ＜＜ｔｓＳｈｉｆｔ
上式中のｔｓＳｈｉｆｔの値は、
【０４３３】
所定の値のセットから選択することが可能で、どの値を選択するかは、動作のモードを示すフラグにより決めることができる。例えば、デコーダ動作のモードを示すために、構文要素ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇを使うことができ、この場合、ｔｓＳｈｉｆｔは、以下の式を使って算定される：
ｔｓＳｈｉｆｔ＝ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍｉｎ（７，ｂｄＳｈｉｆｔ）：７
【０４３４】
この例において、変換スキップパス路だけに対し、逆量子化部の右シフトｂｄＳｈｉｆｔＱ２４０の変更を達成すべく、逆量子化係数値ｃｏｅｆｆＤＱを算定するために以下の算式のセットを用いることができる：
【０４３５】
ｔｒａｎｓｆｏｒｍｓ＿ｓｋｉｐ＿ｆｌａｇが１に等しい場合、以下が適用される：
ｂｄＳｈｉｆｔＱ＝ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？（ＢＤ＋Ｍ−５−Ｍａｘ（０，ＢＤ＋Ｍ−１５））：（ＢＤ＋Ｍ−５）
ｃｏｅｆｆＤＱ＝Ｃｌｉｐ３（ＬｏｗｅｒＬｉｍｉｔＴＳ，ＵｐｐｅｒＬｉｍｉｔＴＳ，（（ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ＊ｍ＊ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］＜＜（ｑＰ／６））＋（１＜＜（ｂｄＳｈｉｆｔＱ−１）））＞＞ｂｄＳｈｉｆｔＱ）
その他の場合は、
ｃｏｅｆｆＤＱ＝Ｃｌｉｐ３（−３２７６８，３２７６７，（（ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ＊ｍ＊ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］＜＜（ｑＰ／６））＋（１＜＜（ｂｄＳｈｉｆｔＱ−１）））＞＞ｂｄＳｈｉｆｔＱ）
【０４３６】
上式のＬｏｗｅｒＬｉｍｉｔＴＳおよびＵｐｐｅｒＬｉｍｉｔＴＳは整数値である。或る例示の実施形態において、ＬｏｗｅｒＬｉｍｉｔＴＳおよびＵｐｐｅｒＬｉｍｉｔＴＳはサンプルビット深度ＢＤの関数である。例えば：
【０４３７】
ＢＤが１５以下の場合、以下が適用される：
ＬｏｗｅｒＬｉｍｉｔＴＳ＝−３２７６８
ＵｐｐｅｒＬｉｍｉｔＴＳ＝３２７６７
その他の場合は、
ＬｏｗｅｒＬｉｍｉｔＴＳ＝−（１＜＜ＢＤ）
ＵｐｐｅｒＬｉｍｉｔＴＳ＝（１＜＜ＢＤ）−１
【０４３８】
別の例示的な実施形態において、逆変換スキッププロセスは、逆量子化プロセス内に併合される。かかる例において、逆変換スキップの後、復号残差を得るべく、以下の式にリストされるように逆量子化および逆変換スキップが遂行される：
【０４３９】
ｔｒａｎｓｆｏｒｍｓ＿ｓｋｉｐ＿ｆｌａｇが１に等しい場合、以下が適用される：
ｂｄＳｈｉｆｔＱ  ＝  ｔｓＳｈｉｆｔ
ｃｏｅｆｆＤＱ＝Ｃｌｉｐ３（ＬｏｗｅｒＬｉｍｉｔＴＳ，ＵｐｐｅｒＬｉｍｉｔＴＳ，（（ＴｒａｎｓＣｏｅｆｆＬｅｖｅｌ＊ｍ＊ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］＜＜（ｑＰ／６））＋（１＜＜（ｂｄＳｈｉｆｔＱ−１）））＞＞ｂｄＳｈｉｆｔＱ）
ｄｅｃＲｅｓｉｄｕｅＴＳ＝ｃｏｅｆｆＤＱ
その他の場合は、
逆量子化係数値を得るため、逆変換パス路に対する量子化係数レベル値を逆量子化し、
逆変換サンプルを得るため、逆量子化係数値を逆変換し、
逆変換後に復号残差を得るため、丸め係数を加えスケーリングを行う。
【０４４０】
上式のｔｓＳｈｉｆｔＱは整数である。或る例では、ｔｓＳｈｉｆｔＱは１３に等しい。別の例において、ｔｓＳｈｉｆｔＱは、サンプルビット深度ＢＤ、ブロックサイズＮ、デコーダ動作のモード（例えば、拡張精度処理モード）の全てまたはサブセットにより決まる。
【０４４１】
ＬｏｗｅｒＬｉｍｉｔＴＳおよびＵｐｐｅｒＬｉｍｉｔＴＳは整数値である。或る例示の実施形態において、ＬｏｗｅｒＬｉｍｉｔＴＳおよびＵｐｐｅｒＬｉｍｉｔＴＳはサンプルビット深度ＢＤの関数である。例えば、
【０４４２】
ＢＤが１５以下の場合、以下が適用される：
ＬｏｗｅｒＬｉｍｉｔＴＳ＝−３２７６８
ＵｐｐｅｒＬｉｍｉｔＴＳ＝３２７６７
その他の場合は、
ＬｏｗｅｒＬｉｍｉｔＴＳ＝−（１＜＜ＢＤ）
ＵｐｐｅｒＬｉｍｉｔＴＳ＝（１＜＜ＢＤ）−１
【０４４３】
或る例示の実施形態において、ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇは、ビットストリーム中の任意の適切なフラグで置き換えることが可能である。別の実施形態では、ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇは、ビットストリーム内でシグナリングされた過去のデータに基づいて決められた任意の適切な条件で置き換えることができる。
【０４４４】
或る例示の実施形態において、逆変換スキップパス路は、任意の適切なデコーダ処理パス路に置き換えることが可能である。
【０４４５】
図２５は、デコーダ中で復号残差を算定するため用いられる方法１５０１Ａの一つの構成を示すフロー図である。
【０４４６】
ステップ１５００で、デコーダはビットストリームからデータを受信する。ステップ１５１０で、デコーダは、ビットストリーム中で受信されたデータに対し、逆量子化および逆変換ステップをバイパスするかどうかを判定する。デコーダが、逆量子化および逆変換ステップをバイパスすると判定した場合、デコーダは、逆変換スキップステップ１５４０を実行し、結果１５４５を出力する。デコーダが、ステップ１５１０で逆量子化および逆変換ステップをバイパスしないと判定した場合、デコーダは、ステップ１５２０で受信された量子化係数レベル値を逆量子化する。ステップ１５３０で、デコーダは、ビットストリーム中で受信されたデータから、逆変換ステップをスキップするかどうかを判定する。デコーダが、ステップ１５３０で、逆変換ステップをスキップすると判定した場合、デコーダは、逆変換スキップステップ１５４０を実行し、結果１５４５を出力する。デコーダが、ステップ１５３０で、逆変換ステップをスキップしないと判定した場合、デコーダは、逆変換ステップ１５５０を実行し、結果１５４５を出力する。
【０４４７】
引き続き図２５を参照すると、ステップ１５６０で、デコーダは、適応カラー変換ステップを遂行するかどうかを判定する。デコーダが、適応カラー変換ステップを遂行すると判定した場合、デコーダは、入力として結果１５４５を用い、適応カラー変換ステップ１５７０を実行し、出力として復号残差１５８０を提供する。デコーダが、適応カラー変換ステップを遂行しないと判定した場合、結果１５４５が、復号残差１５８０として提供される。
【０４４８】
図２６は、デコーダ中で復号残差を算定するため用いられる別の方法１５０１Ｂを示すフロー図である。方法１５０１Ａと１５０１Ｂとは、同じ参照符号によって示された共通のステップを含む。これらに加えて、方法１５０１Ｂは、結果１５４５を受信し、ビットストリーム中で受信された量子化パラメータｑＰが閾値ｑｐＴより小さいかどうかを判定するステップ１５５５を含む。受信された量子化パラメータｑＰが閾値ｑｐＴより小さい場合、結果１５４５に対応する値が、デコーダによって、復号残差１５８０として出力される。受信された量子化パラメータｑＰが閾値ｑｐＴより小さくない場合、結果１５４５に対応する値は、ステップ１５６０に進む。閾値ｑｐＴは、いくつかの任意の仕方で設定することが可能である。一実施形態において、閾値ｑｐＴは固定された所定値である。別の実施形態では、閾値ｑｐＴは、ビットストリーム中でシグナリングされた過去のデータを使って導出される。別の実施形態では、閾値ｑｐＴは、ビットストリーム中にシグナリングされる。或る実施形態において、閾値ｑｐＴは、相異なるカラー成分に対しては相異なり得る。
【０４４９】
別のデコーダ構成において、適応カラー変換ステップ１５７０は、量子化パラメータｑＰの値の特定の範囲に対して無効化されることがある。これは、いくつかの仕方の一つで達成することができる。或る例示の実施形態において、適応カラー変換が遂行されるかどうかを決める構文要素ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇは、量子化パラメータｑＰの値の或る範囲に対し、ビットストリーム中で、ビットストリーム制約として常に所定の値（例えば０）に設定される。ｑＰ値のこの範囲は、相異なるカラー成分に対しては相異なり得る。
【０４５０】
構文要素ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇの意味に対する或る例示的なビットストリーム制約は、以下の形とすることができる：
【０４５１】
各カラー成分に対し、現符号化ユニットのスケーリング処理に使用されている量子化パラメータｑＰの対応値が両端を含めｍｉｎＱＰ〜ｍａｘＱＰの範囲に在るように、ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇの値が制約されることがビットストリーム適合の要件である。一例において、ｍｉｎＱＰは０に等しく、ｍａｘＱＰは５１に等しい。別の例では、ｍｉｎＱＰは０に等しく、ｍａｘＱＰは５１＋（ＢＤ−８）＊６に等しい。さらに別の例では、ｍｉｎＱＰおよびｍａｘＱＰは、ビットストリーム中にシグナリングされた過去のデータに基づいて導出される。さらなる別の例では、ｍｉｎＱＰおよびｍａｘＱＰは、ビットストリーム中にシグナリングされる。
【０４５２】
構文要素ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇの意味に対する別の例示的なビットストリーム制約は、以下の形とすることができる：
【０４５３】
各カラー成分に対し、現符号化ユニットのスケーリング処理に使用されている量子化パラメータｑＰの対応値が０以上となるように、ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇの値が制約されることがビットストリーム適合の要件である。
【０４５４】
構文要素ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇの意味に対する別の例示的なビットストリーム制約は、以下の形とすることができる：
【０４５５】
各カラー成分に対し、現在の変換ユニットのスケーリング処理に使用されている量子化パラメータｑＰの対応値が０以上となるように、ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇの値が制約されることがビットストリーム適合の要件である。構文要素ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇの意味に対するさらに別の例示的なビットストリーム制約は、以下の形とすることができる：
【０４５６】
現符号化ユニットに対し、Ｑｐ’Ｙが５より小さいか、またはＱｐ’Ｃｂが５より小さいか、またはＱｐ’Ｃｒが３より小さいとき、ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇの値が０であることがビットストリーム適合の要件である。
【０４５７】
別の例示の実施形態において、適応カラー変換が遂行されるかどうかを決める構文要素ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇは、ビットストリーム中にシグナリングされずに、量子化パラメータｑＰの値の或る範囲に対し所定の値（例えば０）であると推定される。ｑＰ値のこの範囲は、相異なるカラー成分に対しては相異なり得る。
【０４５８】
別の例示の実施形態において、適応カラー変換が遂行されるかどうかを決める構文要素ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇは、ビットストリーム中にシグナリングされずに、Ｑｐ’Ｙ、Ｑｐ’Ｃｂ、Ｑｐ’Ｃｒ値の或る範囲に対し所定の値（例えば０）であると推定される。この範囲は、Ｑｐ’Ｙ、Ｑｐ’Ｃｂ、Ｑｐ’Ｃｒに対し相異なり得る。
【０４５９】
或る例示的な符号化ユニット構文が下記の表（１）にリストされている。この例示的な符号化ユニット構文は、現符号化ユニットに対し、Ｑｐ’Ｙが５より小さいか、またはＱｐ’Ｃｂが５より小さいか、またはＱｐ’Ｃｒが３より小さいとき、適応カラー変換フラグｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇのシグナリングをバイパスする。存在しないとき、ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇは０に等しいと推定される。
【表６】
2017522839.tif 000012
表（６）
【０４６０】
ＮＢ×ＮＢの符号化ユニットに対し、上表の１＜＜ｌｏｇ２ＣｂＳｉｚｅは、サイズＮＢに等しい。
【０４６１】
１に等しいｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］は、現符号化ユニットに対し、ＰまたはＢスライスを復号するとき、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］の後、併合候補インデックスｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］を除き、構文要素がもはや構文解析されないことを指定する。０に等しいｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］は、符号化ユニットがスキップされないことを指定する。配列インデックスｘ０，ｙ０は、ピクチャの最上左部の輝度サンプルに対する、対象の符号化ブロックの最上左部の輝度サンプルの位置（ｘ０，ｙ０）を指定する。
【０４６２】
ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］が存在しないときそれは０に等しいと推定される。
【０４６３】
１に等しいｐｃｍ＿ｆｌａｇ［ｘ０］［ｙ０］は、位置（ｘ０，ｙ０）の輝度符号化ブロックを含む符号化ユニット中に、ｐｃｍ＿ｓａｍｐｌｅ（  ）構文構造体が存在し、ｔｒａｎｓｆｏｒｍ＿ｔｒｅｅ（  ）構文構造体が存在しないことを指定する。０に等しいｐｃｍ＿ｆｌａｇ［ｘ０］［ｙ０］は、ｐｃｍ＿ｓａｍｐｌｅ（  ）構文構造体が存在しないことを指定する。ｐｃｍ＿ｆｌａｇ［ｘ０］［ｙ０］が存在しないときそれは０に等しいと推定される。
【０４６４】
ｉ＝１…ｎＣｂＳ−１、ｊ＝１…ｎＣｂＳ−１でのｐｃｍ＿ｆｌａｇ［ｘ０＋ｉ］［ｙ０＋ｊ］の値は、ｐｃｍ＿ｆｌａｇ［ｘ０］［ｙ０］に等しいと推定される。０に等しいｒｅｓｉｄｕａｌ＿ａｄａｐｔｉｖｅ＿ｃｏｌｏｕｒ＿ｔｒａｎｓｆｏｒｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、適応カラー変換が無効であることを指定する。１に等しいｒｅｓｉｄｕａｌ＿ａｄａｐｔｉｖｅ＿ｃｏｌｏｕｒ＿ｔｒａｎｓｆｏｒｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、適応カラー変換が有効であることを指定する。
【０４６５】
ＭＯＤＥ＿ＩＮＴＥＲに等しいＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］は、符号化ユニットが、インター予測プロセスを用いて符号化されることを指定する。ＭＯＤＥ＿ＩＮＴＲＡに等しいＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］は、符号化ユニットが、イントラ予測プロセスを用いて符号化されることを指定する。配列インデックスｘ０，ｙ０は、ピクチャの最上左部の輝度サンプルに対する、対象の符号化ブロックの最上左部の輝度サンプルの位置（ｘ０，ｙ０）を指定する。
【０４６６】
１に等しいｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］は、現符号化ユニットがイントラブロックコピーモードで符号化されることを指定する。０に等しいｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］は、現符号化ユニットがｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇに従って符号化されることを指定する。存在しないとき、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇの値は０に等しいと推定される。配列インデックスｘ０，ｙ０は、ピクチャの最上左部の輝度サンプルに対する、対象の符号化ブロックの最上左部の輝度サンプルの位置（ｘ０，ｙ０）を指定する。
【０４６７】
ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ［ｘ０］［ｙ０］は、色差サンプルに対するイントラ予測モードを指定する。配列インデックスｘ０，ｙ０は、ピクチャの最上左部の輝度サンプルに対する、対象の符号化ブロックの最上左部の輝度サンプルの位置（ｘ０，ｙ０）を指定する。
【０４６８】
図２７は、デコーダ中で復号残差を算定するため用いられる方法１５０１Ｃ別の構成を示すフロー図である。方法１５０１Ｃは、方法１５０１Ａおよび１５０１Ｂと共通のステップを含み、共通ステップは同じ参照符号によって示されている。これステップに加えて、方法１５０１Ｂは、ビットストリーム中で受信された量子化パラメータｑＰが閾値ｑｐＴ１より小さいかどうかを判定するステップ１５１５を含む。量子化パラメータｑＰが閾値ｑｐＴ１より小さい場合、復号プロセスの後のステップに対し用いられる変数ｑＰは、ステップ１５２５で値ｑｐＴ２に設定される。
【０４６９】
一実施形態において、閾値ｑｐＴ１は固定された所定値である。別の実施形態では、閾値ｑｐＴ１は、ビットストリーム中でシグナリングされた過去のデータを使って導出される。さらに別の実施形態では、閾値ｑｐＴ１は、ビットストリーム中にシグナリングされる。これらの実施形態のいずれにおいても、閾値ｑｐＴ１は、相異なるカラー成分に対しては相異なり得る。一実施形態において、閾値ｑｐＴ２は固定された所定値である。別の実施形態では、閾値ｑｐＴ２は、ビットストリーム中でシグナリングされた過去のデータを使って導出される。さらに別の実施形態では、値ｑｐＴ２は、ビットストリーム中にシグナリングされる。さらなる別の実施形態では、ｑｐＴ２はｑｐＴ１に等しい。これらの実施形態のいずれにおいても、閾値ｑｐＴ２は、相異なるカラー成分に対しては相異なり得る。
【０４７０】
図２８は、復号残差１３００を算定するために使用される例示的なデコーダ要素１６０１の図である。デコーダ要素１６０１は、デコーダ要素１２０１（図２３）と共通の要素を含み、共通の要素は同じ参照符号によって示されている。デコーダ要素１６０１は、例示的な逆量子化部１６００で、量子化係数レベル値１２００を受信する。次いで、逆量子化部１６００からもたらされる逆量子化係数値１２６０は、復号残差８５０のセットを算定するために、逆変換７００または逆変換スキップ８００のいずれかによって処理される。逆変換７００は、１−Ｄ逆変換垂直１２８０および１−Ｄ逆変換水平３００を含み、マトリックス乗算演算子または他の適切な処理を用いて、データを変換ドメインから空間ドメインにマップする。
【０４７１】
逆量子化部１６００は、スケール除去を提供し、これは、ビットストリーム中で送信される量子化係数レベル値１２００を逆量子化係数値１２６０にマップする。このスケール除去は、量子化係数レベル値に、スケーリング係数ｍ（ブロック１２１０）、量子化パラメータ（ｑＰ）によって決まる整数ｌｅｖｅｌＳｃａｌｅ［ｑＰ％６］（ブロック１２２０）を乗じ、次いでｑＰ／６の左ビットシフト（ブロック１２２５）、次いで丸め係数１＜＜（ｂｄＳｈｉｆｔＱＸ−１）（ブロック１６４０）の加算、次いでｂｄＳｈｉｆｔＱＸの右ビットシフト（ブロック１６５０）、最後にクリッピングブロック１６６０行うことに該当する。クリッピングブロック１６６０は、ｃｏｅｆｆＭａｘを上回る任意の値を最大値ｃｏｅｆｆＭａｘに設定する。同様に、クリッピングブロック１６６０は、ｃｏｅｆｆＭｉｎを下回る任意の値を最小値ｃｏｅｆｆＭｉｎに設定する。ブロック１２１０および１２２０で用いられるｑＰ値は、ｑＰ調整ブロック１６３０からの結果に基づいている。
【０４７２】
ブロック１６３０では、適応カラー変換を遂行するかどうかを判定するためにテストが行われる。適応カラー変換が遂行されることになり、処理されるカラー成分がインデックス０または１を有する場合、値ｑＰは５低減される。適応カラー変換が遂行されることになり、処理されるカラー成分がインデックス２を有する場合、値ｑＰは３低減される。逆量子化プロセスによってスケーリングリストが使われない場合、スケーリング係数ｍは所定の値にデフォルトされ、その他の場合は、スケーリング係数ｍは係数インデックスおよびビットストリーム中にシグナリング可能な値を用いて決定される。ｂｄＳｈｉｆｔＱＸの値は、変換サイズ（Ｎ）、サンプルビット深度（ＢＤ）、および拡張精度処理フラグ（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ）により決めることができる。
【０４７３】
逆量子化係数値１２６０には、ビットストリーム中にシグナリングされるｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇの値に基づいて、逆変換プロセス７００または逆変換スキッププロセス８００のいずれかを施すことができる。図２８には、これがスイッチ１２７０の助力と共に示されている。逆変換７００は、一次元逆垂直変換１２８０を行うことができ、その出力はクリップされる（ブロック７１０）。また、逆変換８００は、一次元逆水平変換３００の実施が可能で、これにより、中間サンプル値８５０が得られる。次いで、中間サンプル値８５０には丸め演算９００を施すことができる。丸め演算９００において、中間サンプル値８５０に丸め係数１＜＜（ｂｄＳｈｉｆｔＸ−１）が加算され（ブロック９１０）、次いで、中間復号残差９５０を算定するために、その和がｂｄＳｈｉｆｔＸだけ右ビットシフトされる（ブロック９２０）。ｂｄＳｈｉｆｔＸの値は、ビット深度ＢＤおよび拡張精度処理フラグ（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ）により決めることができる。逆変換１２８０および３００は、必要に応じ相互に取り換えが可能である。一次元逆変換（垂直および水平の双方、ブロック１２８０および３００）はブロックサイズＮおよび入力変数ｔｒＴｙｐｅに基づいて選択することができる。ｔｒＴｙｐｅがとる値は、対処中のブロックにより使われている予測モードおよびカラー成分インデックスに基づいて決めればよい。逆変換スキッププロセス８００は、スイッチ８１０の状態の如何により、逆量子化係数値１２６０を回転すること８２０ができる。スイッチ８１０の状態は、対処中のブロックにより使われている予測モード、対処中のブロックのサイズ、対処中のブロック逆量子化および変換がスキップされたかどうか、並びに変換スキップ回転が有効かどうか、に基づいて決定することが可能である。この演算に続いて、中間サンプル値８５０を出力するために、データをｔｓＳｈｉｆｔだけ左ビットシフト８３０すればよい。変数ｔｓＳｈｉｆｔは、ビット深度ＢＤ、ブロックサイズＮ、拡張精度処理フラグ（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ）に基づいて決めることができる。次いで、中間サンプル値８５０には、中間復号残差９５０を算定するために、丸め（ブロック９００）を施す。
【０４７４】
中間復号残差９５０には、スイッチ１０００の状態に基づいて、適応カラー変換１１００を施すことが可能である。スイッチ１０００の状態は、対処中のブロックに対する構文要素ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇの状態によって制御できる。スイッチ１０００が適応カラー変換処理１１００をバイパスするとき、中間復号残差９００は、復号残差１３００に該当し、その他の場合は、中間サンプル値９５０には適応カラー変換処理１１００が施され、その後で復号残差１３００として出力される。
【０４７５】
図２８を参照すると、例示のｑＰ調整１６３０において、適応カラー変換を遂行すべきかどうかを判定するためにテストが行われる。適応カラー変換が遂行されることになり、処理されるカラー成分がインデックス０または１を有する場合、処理１６３０へのｑＰ入力が５以上の場合だけ、ｑＰは５低減され、その他の場合ｑＰは０に設定される。適応カラー変換が遂行されることになり、処理されるカラー成分がインデックス２を有する場合、処理１６３０へのｑＰ入力が３以上の場合だけ、ｑＰは３低減され、その他の場合ｑＰは０に設定される。
【０４７６】
一例示の実施形態において、ｑＰ調整１６３０は、以下のように遂行することができる：
−ｃＩｄｘが０に等しい場合、
ｑＰ＝Ｍａｘ（０，Ｑｐ’Ｙ＋（ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇ［ｘＴｂＹ］［ｙＴｂＹ］？−５：０））
−その他の場合、ｃＩｄｘが１に等しければ、
ｑＰ＝Ｍａｘ（０，Ｑｐ’Ｃｂ＋（ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇ［ｘＴｂＹ］［ｙＴｂＹ］？−５：０））
−上記以外の場合（ｃＩｄｘが２に等しい）、
ｑＰ＝Ｍａｘ（０，Ｑｐ’Ｃｒ＋（ｃｕ＿ｒｅｓｉｄｕａｌ＿ａｃｔ＿ｆｌａｇ［ｘＴｂＹ］［ｙＴｂＹ］？−３：０））
【０４７７】
上式のｃＩｄｘは現ブロックのカラー成分のインデックスであり、輝度位置（ｘＴｂＹ，ｙＴｂＹ）は、現ピクチャの最上左部の輝度サンプルに対する、現輝度変換ブロックの最上左部のサンプルを指定する。
【０４７８】
或る例示の実施形態において、逆量子化部１６００中の量子化パラメータｑＰは、負の入力ｑＰ値を別の値（例えば、０または１）に設定することによって、負の値を取ることを防止される。
【０４７９】
或る例示の実施形態では、逆量子化部１６００中の量子化パラメータｑＰは、所定の値、例えばＶ０より大きな値を取ることを防止される。これは、入力ｑＰがＶ０より大きいとき、ｑＰ値を別の値（例えば、Ｖ２）に設定することによって達成することができる。或る例では、Ｖ２はＶ０に等しい。
【０４８０】
或る例示の実施形態において、デコーダにおける適応カラー変換処理１１００は、次の線形変換マトリックス算出式に対応する：
【数５】
2017522839.tif 000013
【０４８１】
上式のＹ＿ｉｎ、Ｃｂ＿ｉｎ、Ｃｒ＿ｉｎは入力値である。
【０４８２】
Ｙ＿ｏｕｔ、Ｃｂ＿ｏｕｔ、Ｃｒ＿ｏｕｔは出力値である。
【０４８３】
ｉ＝０，１，２およびｊ＝０，１，２について、ｃ＿ｉｊは、線形変換マトリックスに対し用いられる係数である。或る例示の実施形態では、適応カラー変換に対応する線形変換マトリックス係数ｃ＿ｉｊは、以下のように制限される：
Ｎｏｒｍ２（ｃ＿ｉ０，ｃ＿ｉ１，ｃ＿ｉ２）は各々ｉ＝０，１，２に対し１に等しい。
【０４８４】
上式において、
【数６】
2017522839.tif 000014
【０４８５】
或る実施形態において、適応カラー変換に対応し、係数に対し上記に指定された制限を有する線形変換は、整数算術演算を使って概算される。かかる場合、Ｎｏｒｍ２（Ｎｏｒｍ２（ｃ＿ｉ０，ｃ＿ｉ１，ｃ＿ｉ２）−１）は、小さな非ゼロ量であり得る。
【０４８６】
或る例示の実施形態では、適応カラー変換１１００に対応する線形変換マトリックス係数ｃ＿ｉｊは、損失なく符号化されたブロックに対するものと、損失の多い符号化を施されたブロックに対するものとでは異なる。
【０４８７】
乗算演算への入力を１６ビットに制限し、中間値のダイナミックレンジを限度付けることが望ましい。相異なるアーキテクチャは、中間値に対する相異なる望ましい限度を有する。例えば、典型的なＣＰＵは、中間値を３２ビットに制限することの恩恵を受け、一方、３２の値は、ＦＰＧＡまたはＡＳＩＣへのハードウェア実装に大きな問題はない。入力データに課されるダイナミックレンジの低減量を減らし、データに対するより大きなダイナミックレンジを別途に容易化するために、許容可能な量子化係数レベル値は、量子化パラメータ、および望ましい場合変換サイズに基づくべきである。量子化係数レベル値は、８ビット重みマトリックスなどの重みマトリックスに基づいてさらに選択することができる。許容可能量子化係数レベル値の選択は、８ビット重みマトリックスの全ての値に対し、逆量子化部内の結果を３２ビットに制限することによるものとしてもよい。この制限は、例えば、３２ビットのオーバーフロー状態を回避するために、中間値に対する３２ビット制限を用いる逆量子化部の実装と、逆量子化の前に量子化係数レベルデータをクリップまたは別途に制限する能力とを可能にする。３２ビットよりも大きなビット範囲を許容する実装において、システムは、量子化パラメータに関係なく、量子化係数レベルデータを１６ビット（または他の値）にクリップし、最終での１６ビットへのクリップの後と同じ結果を計算することができる。
【０４８８】
逆量子化の過程で極端なダイナミックレンジを回避する一つの方法は、符号化ビットストリーム中のまたはそれからもたらされる許容量子化係数レベル値に対し、量子化パラメータ依存的な制限を含めることである。かかる制限が課される場合、逆量子化を実装するためのいくつかの好適な技法がある。逆量子化部が３２ビットなど所定のビット深度を超えないことを確実にするための一つのかかる技法は、量子化パラメータ依存的なクリッピング制限を含めることである。別のかかる技法は、１６ビットなどの量子化パラメータ非依存型のクリッピング限度を実装しておいて、３８ビット逆量子化部の使用を要求することである。さらなるかかる技法は、３３ビットだけの逆量子化部を求め、１５ビットの量子化パラメータ非依存型のクリッピング限度を、量子化パラメータの範囲に基づくスイッチと共に使用することである。これら３つの技法の全ては、中間のビット深度要件の違いに関わらず、最終のクリップの後同一の結果をもたらすことになる。これは、特定のアーキテクチャのリソースに基づいて、逆量子化部に適切な実装を選択することを可能にする。
【０４８９】
前述の明細書中で用いられた用語および表現は、限定でなく説明の用語として使われたものであり、かかる用語および表現の使用において、提示され説明された特徴またはそれらの部分の等価物を除外する意図はなく、本発明の範囲は、添付の特許請求の範囲によってだけ定義され限定されることを認識されたい。
【図１】
2017522839.tif 000015
【図２】
2017522839.tif 000016
【図３】
2017522839.tif 000017
【図４】
2017522839.tif 000018
【図５】
2017522839.tif 000019
【図６】
2017522839.tif 000020
【図７】
2017522839.tif 000021
【図８】
2017522839.tif 000022
【図９】
2017522839.tif 000023
【図１０】
2017522839.tif 000024
【図１１】
2017522839.tif 000025
【図１２】
2017522839.tif 000026
【図１３】
2017522839.tif 000027
【図１４】
2017522839.tif 000028
【図１５】
2017522839.tif 000029
【図１６】
2017522839.tif 000030
【図１７】
2017522839.tif 000031
【図１８】
2017522839.tif 000032
【図１９】
2017522839.tif 000033
【図２０Ａ】
2017522839.tif 000034
【図２０Ｂ】
2017522839.tif 000035
【図２１】
2017522839.tif 000036
【図２２】
2017522839.tif 000037
【図２３】
2017522839.tif 000038
【図２４】
2017522839.tif 000039
【図２５】
2017522839.tif 000040
【図２６】
2017522839.tif 000041
【図２７】
2017522839.tif 000042
【図２８】
2017522839.tif 000043
【国際調査報告】
2017522839.tif 000044
2017522839.tif 000045