(57)【要約】  ビデオデータを符号化および復号するための方法、装置およびシステム。  ビデオビットストリームからのコーディングユニットを復号する方法を開示する。コーディングユニットは以前に復号したサンプルを参照する。復号されるコーディングユニットに対する、以前のコーディングユニットの以前のブロックベクトルが決定される。以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成されている。該方法によれば、ビデオビットストリームから、復号されるコーディングユニットに対するブロックベクトル差が復号される。ブロックベクトル差は、以前のブロックベクトルと、復号されるコーディングユニットのブロックベクトルとの間の差を示す。以前のブロックベクトルおよびブロックベクトル差を使用して、復号されるコーディングユニットのブロックベクトルが決定される。復号されるコーディングユニットは、決定されたブロックベクトルを使用して選択された参照ブロックのサンプル値に基づいて、復号される。
2016534660.tif 000002
【特許請求の範囲】
【請求項１】
ビデオビットストリームからコーディングユニットを復号する方法であって、前記コーディングユニットは、以前に復号されたサンプルを参照する、前記方法は、
復号される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定する工程であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、
前記ビデオビットストリームから、復号される前記コーディングユニットに対するブロックベクトル差を復号する工程であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、復号される前記コーディングユニットのブロックベクトルとの間の差を示す、
前記以前のブロックベクトルおよび前記ブロックベクトル差を使用して、復号される前記コーディングユニットの前記ブロックベクトルを決定する工程、および
決定された前記ブロックベクトルを使用して選択される参照ブロックのサンプル値に基づいて、復号される前記コーディングユニットを復号する工程、
を含む。
【請求項２】
復号される前記コーディングユニットの前記ブロックベクトルは、前記以前のブロックベクトルおよび前記ブロックベクトル差のベクトル追加を使用して決定される、請求項１に記載の方法。
【請求項３】
復号される前記コーディングユニットの前記ブロックベクトルは、復号される前記コーディングユニットの左に隣接するおよび上に隣接する一連の位置から選択される、コーディングユニットのブロックベクトルを使用して決定され、前記選択は、前記ビデオビットストリームから復号されるフラグを使用する、請求項１に記載の方法。
【請求項４】
前記以前のコーディングユニットは、Ｚ−スキャン順において、復号される前記コーディングユニットに先行するコーディングユニットである、請求項１に記載の方法。
【請求項５】
ビデオビットストリームからコーディングユニットを復号するためのシステムであって、前記コーディングユニットは、以前に復号されたサンプルを参照する、前記システムは、
データおよびコンピュータプログラムを記憶するためのメモリと、
前記メモリに接続されたプロセッサとを備え、前記コンピュータプログラムは、
復号される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定するための命令であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、
前記ビデオビットストリームから、復号される前記コーディングユニットに対するブロックベクトル差を復号するための命令であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、復号される前記コーディングユニットのブロックベクトルとの間の差を示す、
前記以前のブロックベクトルおよび前記ブロックベクトル差を使用して、復号される前記コーディングユニットの前記ブロックベクトルを決定するための命令、および
決定された前記ブロックベクトルを使用して選択される参照ブロックのサンプル値に基づいて、復号される前記コーディングユニットを復号するための命令、
を含む。
【請求項６】
ビデオビットストリームからコーディングユニットを復号するための装置であって、前記コーディングユニットは、以前に復号されたサンプルを参照する、前記装置は、
復号される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定する手段であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、
前記ビデオビットストリームから、復号される前記コーディングユニットに対するブロックベクトル差を復号する手段であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、復号される前記コーディングユニットのブロックベクトルとの間の差を示す、
前記以前のブロックベクトルおよび前記ブロックベクトル差を使用して、復号される前記コーディングユニットの前記ブロックベクトルを決定する手段、および
決定された前記ブロックベクトルを使用して選択される参照ブロックのサンプル値に基づいて、復号される前記コーディングユニットを復号する手段、
を備える。
【請求項７】
ビデオビットストリームからコーディングユニットを復号するためのコンピュータプログラムを記憶する、非一時的コンピュータ読取可能媒体であって、前記コーディングユニットは、以前に復号されたサンプルを参照する、前記非一時的コンピュータ読取可能媒体、前記プログラムは、
復号される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定するためのコードであって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、
前記ビデオビットストリームから、復号される前記コーディングユニットに対するブロックベクトル差を復号するためのコードであって、前記ブロックベクトル差は、前記以前のブロックベクトルと、復号される前記コーディングユニットのブロックベクトルとの間の差を示す、
前記以前のブロックベクトルおよび前記ブロックベクトル差を使用して、復号される前記コーディングユニットの前記ブロックベクトルを決定するためのコード、および
決定された前記ブロックベクトルを使用して選択される参照ブロックのサンプル値に基づいて、復号される前記コーディングユニットを復号するためのコード、
を含む。
【請求項８】
ビデオビットストリームにコーディングユニットを符号化する方法であって、前記方法は、
符号化される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定する工程であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、
符号化される前記コーディングユニットに対するブロックベクトル差を決定する工程であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、符号化される前記コーディングユニットのブロックベクトルとの間の差を示す、
符号化される前記コーディングユニットに対する前記ブロックベクトル差を、前記ビデオビットストリームに符号化する工程、および
符号化される前記コーディングユニットの前記ブロックベクトルを使用して選択される参照ブロックのサンプル値を使用して、符号化される前記コーディングユニットを、前記ビデオビットストリームに符号化する工程、
を含む。
【請求項９】
ビデオビットストリームにコーディングユニットを符号化するためのシステムであって、前記システムは、
データおよびコンピュータプログラムを記憶するためのメモリと、
前記メモリに接続されたプロセッサとを備え、前記コンピュータプログラムは、
符号化される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定するための命令であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、
符号化される前記コーディングユニットに対するブロックベクトル差を決定するための命令であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、符号化される前記コーディングユニットのブロックベクトルとの間の差を示す、
符号化される前記コーディングユニットに対する前記ブロックベクトル差を、前記ビデオビットストリームに符号化するための命令、および
符号化される前記コーディングユニットの前記ブロックベクトルを使用して選択される参照ブロックのサンプル値を使用して、符号化される前記コーディングユニットを、前記ビデオビットストリームに符号化するための命令、
を含む。
【請求項１０】
ビデオビットストリームにコーディングユニットを符号化する装置であって、前記装置は、
符号化される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定する手段であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、
符号化される前記コーディングユニットに対するブロックベクトル差を決定する手段であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、符号化される前記コーディングユニットのブロックベクトルとの間の差を示す、  符号化される前記コーディングユニットに対する前記ブロックベクトル差を、前記ビデオビットストリームに符号化する手段、および
符号化される前記コーディングユニットの前記ブロックベクトルを使用して選択される参照ブロックのサンプル値を使用して、符号化される前記コーディングユニットを、前記ビデオビットストリームに符号化する手段、
を備える。
【請求項１１】
ビデオビットストリームにコーディングユニットを符号化するためのコンピュータプログラムを記憶する、非一時的コンピュータ読取可能媒体であって、前記プログラムは、
符号化される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定することであって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、
符号化される前記コーディングユニットに対するブロックベクトル差を決定することであって、前記ブロックベクトル差は、前記以前のブロックベクトルと、符号化される前記コーディングユニットのブロックベクトルとの間の差を示す、
符号化される前記コーディングユニットに対する前記ブロックベクトル差を、前記ビデオビットストリームに符号化すること、および
符号化される前記コーディングユニットの前記ブロックベクトルを使用して選択される参照ブロックのサンプル値を使用して、符号化される前記コーディングユニットを、前記ビデオビットストリームに符号化すること、
を含む。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、デジタルビデオ信号処理に関し、特に、ビデオデータを符号化および復号するための方法、装置およびシステムに関する。本発明はまた、ビデオデータを符号化および復号するためのコンピュータプログラムを記録したコンピュータ読取可能媒体を備えるコンピュータプログラム製品に関する。
【背景技術】
【０００２】
ビデオデータの送信および記憶のためのアプリケーションを含む、ビデオコーディングに関する多くのアプリケーションが現在存在する。多くのビデオコーディング標準規格もまた開発されており、その他のものも現在開発中である。ビデオコーディング標準化における近年の進展は、「Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」（ＪＣＴ−ＶＣ）と呼ばれるグループの形成につながっている。Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）は、ビデオ・コーディング・エキスパート・グループ（ＶＣＥＧ）として知られる、国際電気通信連合（ＩＴＵ）の電気通信標準化部門（ＩＴＵ−Ｔ）の研究委員会１６、課題６（ＳＧ１６／Ｑ６）のメンバーと、ムービング・ピクチャ・エクスパーツ・グループ（ＭＰＥＧ）としても知られる、国際標準化機構／国際電気標準会議の合同技術委員会１／分科委員会２９／ワーキンググループ１１（ＩＳＯ／ＩＥＣＪＴＣ１／ＳＣ２９／ＷＧ１１）のメンバーとを含む。
【０００３】
Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）は、「Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ」ビデオコーディング標準規格より性能が著しく優れている新しいビデオコーディング標準規格を生み出している。新しいビデオコーディング標準規格は、「high efficiency video coding（ＨＥＶＣ）」と名付けられている。high efficiency video coding（ＨＥＶＣ）のさらなる開発は、「クロマフォーマット」として知られる、ビデオデータに存在するクロマ情報の異なる表現のサポートと、より深いビット深度のサポートとを導入することに向けられている。high efficiency video coding（ＨＥＶＣ）標準規格は、８ビットおよび１０ビットのビット深度をそれぞれサポートする、「Ｍａｉｎ」および「Ｍａｉｎ１０」として知られる、２つのプロファイルを定義する。high efficiency video coding（ＨＥＶＣ）標準規格によりサポートされるビット深度を増やすためのさらなる開発は、「Ｒａｎｇｅ  ｅｘｔｅｎｓｉｏｎｓ」アクティビティの一部として進められている。１６ビットもの深さのビット深度に対するサポートは、Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）において研究中である。
【０００４】
ビデオデータは１以上のカラーチャネルを含む。通常、３つのカラーチャネルがサポートされ、カラー情報は、「色空間」を使用して表現される。色空間の一例は、「ＹＣｂＣｒ」として知られているが、他の色空間もまたありえる。「ＹＣｂＣｒ」色空間は、カラー情報の固定された正確な表現を可能にし、そのため、デジタル実現によく適している。「ＹＣｂＣｒ」色空間は、「ルマ」チャネル（Ｙ）および２つの「クロマ」チャネル（ＣｂおよびＣｒ）を含む。各カラーチャネルは、特定のビット深度を有する。ビット深度は、ビット中のそれぞれのカラーチャネルにおけるサンプルの幅を定義する。一般に、すべてのカラーチャネルは、同じビット深度を有するが、カラーチャネルは異なるビット深度を有していてもよい。
【０００５】
特定のビデオコーディング標準規格で達成可能な符号化効率性の１つの側面は、利用可能な予測方法の特性である。２次元ビデオフレームの圧縮シーケンスのためのビデオコーディング標準規格には、イントラ予測、インター予測、およびイントラ・ブロック・コピー・モードの３つのタイプの予測がある。フレームは、１以上のブロックに分割され、各ブロックは、予測のタイプのうちの１つを使用して予測される。イントラ予測方法により、ビデオフレームの１つの部分のコンテンツを、同じビデオフレームの他の部分から予測することが可能になる。イントラ予測方法は、通常、テクスチャの方向およびテクスチャを生成するためのベースとして使用されるフレーム内の近傍サンプルを規定するイントラ予測モードで、方向テクスチャを有するブロックを生成する。インター予測方法により、ビデオフレーム内のブロックのコンテンツを、以前のビデオフレーム中のブロックから予測することが可能になる。以前のビデオフレーム（すなわち、「表示順序」とは反対であり，異なることがある「復号順序」において）は、「参照フレーム」と呼ばれてもよい。イントラ・ブロック・コピー・モードは、現在のフレーム内に位置する別のブロックから参照ブロックを作成する。前のフレームを参照に利用できないことから、ビデオフレームのシーケンス内の第１のビデオフレームは、通常、フレーム内のすべてのブロックに対してイントラ予測を使用する。後続するビデオフレームは、ブロックを予測するための１以上の以前のビデオフレームを使用してもよい。
【０００６】
最高の符号化効率を達成するために、取得されたフレームデータに最も近い予測されたブロックを生成する予測方法が通常使用される。予測されたブロックと取得されたフレームデータとの間の残りの差は、「残差」として知られる。この差の空間ドメイン表現は、一般に、周波数ドメイン表現に変換される。一般に、周波数ドメイン表現は、空間ドメイン表現中に存在する情報をコンパクトに記憶する。周波数ドメイン表現は、整数の離散コサイン変換（ＤＣＴ）等の、変換を適用した結果の「残差係数」のブロックを含む。さらに、残差係数（または、「スケーリングされた変換係数」）は量子化され、これは、損失を発生させるが、ビットストリームに符号化される必要がある情報の量をさらに低減させもする。「変換係数」としても知られる、残差の損失のある周波数ドメイン表現は、ビットストリームに記憶されてもよい。復号器で復元される残差における損失の量は、取得されたフレームデータおよびビットストリームのサイズと比較して、ビットストリームから復号されるビデオデータの歪みに影響を与える。
【０００７】
ビデオビットストリームは、符号化されたシンタックス要素のシーケンスを含む。シンタックス要素は、「シンタックス構造」の階層に従って、順序付けられる。シンタックス構造は、一連のシンタックス要素と各シンタックス要素がコーディングされる条件を記述する。シンタックス構造は、シンタックス要素の階層的な構成を可能にする、他のシンタックス構造をもたらしてもよい。シンタックス構造はまた、シンタックス要素の再帰的な構成を可能にする、同じシンタックス構造の別のインスタンスをもたらしてもよい。各シンタックス要素は、「コンテキスト適応バイナリ演算コーディング」アルゴリズムを使用して符号化される、１以上の「ビン」からなる。所定のビンに関係付けられる「コンテキスト」がない場合、そのビンは「バイパス」コーディングされてもよい。あるいは、ビンに関係付けられるコンテキストがある場合、ビンは「コンテキスト」コーディングされてもよい。各コンテキストコーディングされたビンは、ビンに関係付けられる１つのコンテキストを有する。コンテキストは、１以上の可能性あるコンテキストから選択される。コンテキストは、メモリから抽出され、コンテキストが使用されるたびに、コンテキストも更新され、メモリに記憶され直す。２以上のコンテキストが所定のビンに対して使用されてもよいときに、どのコンテキストを使用すべきかを決定するための規則が、ビデオ符号化器とビデオ復号器に適用される。ビンを符号化または復号するときに、ビットストリーム中の過去の情報は、どのコンテキストを使用すべきかを選択するために使用される。復号器中のコンテキスト情報は、必ず、符号化器中のコンテキスト情報をトラックする（そうでなければ、復号器は、符号化器により生成されるビットストリームを構文解析できない）。コンテキストは、可能性のあるビン値（または「ｖａｌＭＰＳ」）および確率レベルの２つのパラメータを含む。
【０００８】
２つの異なる値を持つシンタックス要素はまた、「flags」として参照されてもよく、一般に、１つのコンテキストコーディングされたビンを使用して、符号化される。所定のシンタックス構造は、ビデオビットストリームに含めることができる可能なシンタックス要素および各シンタックス要素がビデオビットストリームに含まれる環境を定義する。シンタックス要素の各インスタンスは、ビデオビットストリームのサイズに寄与する。ビデオ圧縮の目的は、ビデオビットストリームを使用した、（損失のある場合および損失のない場合の双方を含む）所定の品質レベルに対する最小サイズ（例えば、バイト単位）を有する、所定のシーケンスの表現を可能にすることである。同時に、ビデオ復号器は、リアルタイムでビデオビットストリームを復号することを常に求められており、使用され得るアルゴリズムの複雑性に制限が設けられる。このため、アルゴリズム複雑性と圧縮性能との間のトレードオフが行われる。特に、アルゴリズム複雑性を低減させながら、圧縮性能を改善または維持できる変更が望ましい。
【発明の概要】
【０００９】
本発明の目的は、既存の構成の１以上の欠点を実質的に克服すること、または、少なくとも改善することである。
【００１０】
本発明の１つの態様は、ビデオビットストリームからコーディングユニットを復号する方法であって、前記コーディングユニットは、以前に復号されたサンプルを参照する、方法が提供され、前記方法は、復号される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定する工程であって、以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、工程と、前記ビデオビットストリームから、復号される前記コーディングユニットに対するブロックベクトル差を復号する工程であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、復号される前記コーディングユニットのブロックベクトルとの間の差を示す、工程と、前記以前のブロックベクトルおよび前記ブロックベクトル差を使用して、復号される前記コーディングユニットの前記ブロックベクトルを決定する工程と、決定された前記ブロックベクトルを使用して選択される参照ブロックのサンプル値に基づいて、復号される前記コーディングユニットを復号する工程とを含む、ことを特徴とする。
【００１１】
本発明の別の態様は、ビデオビットストリームからコーディングユニットを復号するためのシステムであって、前記コーディングユニットは、以前に復号されたサンプルを参照する、システムが提供され、前記システムは、データおよびコンピュータプログラムを記憶するためのメモリと、前記メモリに接続されたプロセッサとを備え、前記コンピュータプログラムは、復号される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定するための命令であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、命令と、前記ビデオビットストリームから、復号される前記コーディングユニットに対するブロックベクトル差を復号するための命令であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、復号される前記コーディングユニットのブロックベクトルとの間の差を示す、命令と、前記以前のブロックベクトルおよび前記ブロックベクトル差を使用して、復号される前記コーディングユニットの前記ブロックベクトルを決定するための命令と、決定された前記ブロックベクトルを使用して選択される参照ブロックのサンプル値に基づいて、復号される前記コーディングユニットを復号するための命令とを含む、ことを特徴とする。
【００１２】
本発明のさらに別の態様は、ビデオビットストリームからコーディングユニットを復号するための装置であって、前記コーディングユニットは、以前に復号されたサンプルを参照する、装置が提供され、前記装置は、復号される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定する手段であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、手段と、前記ビデオビットストリームから、復号される前記コーディングユニットに対するブロックベクトル差を復号する手段であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、復号される前記コーディングユニットのブロックベクトルとの間の差を示す、手段と、前記以前のブロックベクトルおよび前記ブロックベクトル差を使用して、復号される前記コーディングユニットの前記ブロックベクトルを決定する手段と、決定された前記ブロックベクトルを使用して選択される参照ブロックのサンプル値に基づいて、復号される前記コーディングユニットを復号する手段とを備える、ことを特徴とする。
【００１３】
本発明のさらに別の態様は、ビデオビットストリームからコーディングユニットを復号するためのコンピュータプログラムを記憶する、非一時的コンピュータ読取可能媒体であって、前記コーディングユニットは、以前に復号されたサンプルを参照する、非一時的コンピュータ読取可能媒体が提供され、前記プログラムは、復号される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定するためのコードであって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、コードと、前記ビデオビットストリームから、復号される前記コーディングユニットに対するブロックベクトル差を復号するためのコードであって、前記ブロックベクトル差は、前記以前のブロックベクトルと、復号される前記コーディングユニットのブロックベクトルとの間の差を示す、コードと、前記以前のブロックベクトルおよび前記ブロックベクトル差を使用して、復号される前記コーディングユニットの前記ブロックベクトルを決定するためのコードと、決定された前記ブロックベクトルを使用して選択される参照ブロックのサンプル値に基づいて、復号される前記コーディングユニットを復号するためのコードとを含む、ことを特徴とする。
【００１４】
本発明のさらに別の態様は、ビデオビットストリームにコーディングユニットを符号化する方法が提供され、前記方法は、符号化される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定する工程であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、工程、前記符号化される前記コーディングユニットに対するブロックベクトル差を決定する工程であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、符号化される前記コーディングユニットのブロックベクトルとの間の差を示す、工程と、符号化される前記コーディングユニットに対する前記ブロックベクトル差を、前記ビデオビットストリームに符号化する工程と、符号化される前記コーディングユニットの前記ブロックベクトルを使用して選択される参照ブロックのサンプル値を使用して、符号化される前記コーディングユニットを、前記ビデオビットストリームに符号化する工程とを含む、ことを特徴とする。
【００１５】
本発明のさらに別の態様は、ビデオビットストリームにコーディングユニットを符号化するためのシステムが提供され、前記システムは、データおよびコンピュータプログラムを記憶するためのメモリと、前記メモリに接続されたプロセッサとを備え、前記コンピュータプログラムは、符号化される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定するための命令であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、命令と、符号化される前記コーディングユニットに対するブロックベクトル差を決定するための命令であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、符号化される前記コーディングユニットのブロックベクトルとの間の差を示す、命令と、符号化される前記コーディングユニットに対する前記ブロックベクトル差を、前記ビデオビットストリームに符号化するための命令と、符号化される前記コーディングユニットの前記ブロックベクトルを使用して選択される参照ブロックのサンプル値を使用して、符号化される前記コーディングユニットを、前記ビデオビットストリームに符号化するための命令とを含む、ことを特徴とする。
【００１６】
本発明のさらに別の態様は、ビデオビットストリームにコーディングユニットを符号化する装置が提供され、前記装置は、符号化される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定する手段であって、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、手段と、符号化される前記コーディングユニットに対するブロックベクトル差を決定する手段であって、前記ブロックベクトル差は、前記以前のブロックベクトルと、符号化される前記コーディングユニットのブロックベクトルとの間の差を示す、手段と、符号化される前記コーディングユニットに対する前記ブロックベクトル差を、前記ビデオビットストリームに符号化する手段と、符号化される前記コーディングユニットの前記ブロックベクトルを使用して選択される参照ブロックのサンプル値を使用して、符号化される前記コーディングユニットを、前記ビデオビットストリームに符号化する手段とを備える、ことを特徴とする。
【００１７】
本発明のさらに別の態様は、ビデオビットストリームにコーディングユニットを符号化するためのコンピュータプログラムを記憶する、非一時的コンピュータ読取可能媒体が提供され、前記プログラムは、符号化される前記コーディングユニットに対する以前のコーディングユニットの以前のブロックベクトルを決定することであって、ここで、前記以前のコーディングユニットは、イントラ・ブロック・コピーを使用するように構成される、符号化される前記コーディングユニットに対するブロックベクトル差を決定することであって、ここで、前記ブロックベクトル差は、前記以前のブロックベクトルと、符号化される前記コーディングユニットのブロックベクトルとの間の差を示す、符号化される前記コーディングユニットに対する前記ブロックベクトル差を、前記ビデオビットストリームに符号化することと、符号化される前記コーディングユニットの前記ブロックベクトルを使用して選択される参照ブロックのサンプル値を使用して、符号化される前記コーディングユニットを、前記ビデオビットストリームに符号化することとを含む、ことを特徴とする。
【００１８】
本発明のさらに別の態様は、ビデオビットストリームからブロックを復号する方法であって、前記ブロックは、以前に復号されたサンプルを参照する、方法が提供され、前記方法は、前記ビデオビットストリームから予測モードを決定する工程と、決定された前記予測モードがイントラ予測である場合に、前記ビデオビットストリームからイントラ・ブロック・コピー・フラグを復号する工程であって、前記イントラ・ブロック・コピー・フラグは、現在のサンプルが、現在のフレームの以前に復号されたサンプルに基づくことを示す、工程と、前記以前に復号されたサンプルからの前記ブロックに対するサンプル値を決定することにより、復号された前記イントラ・ブロック・コピー・フラグに基づいて、前記ビデオビデオビットストリームから前記ブロックを復号する工程とを含む、ことを特徴とする。
【００１９】
本発明のさらに別の態様は、ビデオビットストリームからブロックを復号するためのシステムであって、前記ブロックは、以前に復号されたサンプルを参照する、システムが提供され、前記システムは、データおよびコンピュータプログラムを記憶するためのメモリと、前記メモリに接続されたプロセッサとを備え、前記コンピュータプログラムは、前記ビデオビットストリームから予測モードを決定するための命令と、決定された前記予測モードがイントラ予測である場合に、前記ビデオビットストリームからイントラ・ブロック・コピー・フラグを復号するための命令であって、前記イントラ・ブロック・コピー・フラグは、現在のサンプルが、現在のフレームの以前に復号されたサンプルに基づくことを示す、命令と、前記以前に復号されたサンプルからの前記ブロックに対するサンプル値を決定することにより、復号された前記イントラ・ブロック・コピー・フラグに基づいて、前記ビデオビデオビットストリームから前記ブロックを復号するための命令とを含む、ことを特徴とする。
【００２０】
本発明のさらに別の態様は、ビデオビットストリームからブロックを復号する装置であって、前記ブロックは、以前に復号されたサンプルを参照する、装置が提供され、前記装置は、前記ビデオビットストリームから予測モードを決定する手段と、決定された前記予測モードがイントラ予測である場合に、前記ビデオビットストリームからイントラ・ブロック・コピー・フラグを復号する手段であって、前記イントラ・ブロック・コピー・フラグは、現在のサンプルが、現在のフレームの以前に復号されたサンプルに基づくことを示す、手段と、前記以前に復号されたサンプルからの前記ブロックに対するサンプル値を決定することにより、復号された前記イントラ・ブロック・コピー・フラグに基づいて、前記ビデオビデオビットストリームから前記ブロックを復号する手段とを備える、ことを特徴とする。
【００２１】
本発明のさらに別の態様は、ビデオビットストリームからブロックを復号する方法のためのコンピュータプログラムを記憶する、非一時的コンピュータ読取可能媒体であって、前記ブロックは、以前に復号されたサンプルを参照する、非一時的コンピュータ読取可能媒体が提供され、前記プログラムは、前記ビデオビットストリームから予測モードを決定するためのコードと、決定された前記予測モードがイントラ予測である場合に、前記ビデオビットストリームからイントラ・ブロック・コピー・フラグを復号するためのコードであって、前記イントラ・ブロック・コピー・フラグは、現在のサンプルが、現在のフレームの以前に復号されたサンプルに基づくことを示す、コードと、前記以前に復号されたサンプルからの前記ブロックに対するサンプル値を決定することにより、復号された前記イントラ・ブロック・コピー・フラグに基づいて、前記ビデオビデオビットストリームから前記ブロックを復号するためのコードとを含む、ことを特徴とする。
【００２２】
他の態様もまた開示する。
【図面の簡単な説明】
【００２３】
以下の図面および付録を参照して、本発明の少なくとも１つの実施例をこれから説明する。
【図１】ビデオ符号化および復号システムを示す概略的なブロック図である。
【図２ａ】図１のビデオ符号化および復号システムの１つまたは双方が実施される、汎用コンピュータシステムの概略的なブロック図である。
【図２ｂ】図１のビデオ符号化および復号システムの１つまたは双方が実施される、汎用コンピュータシステムの概略的なブロック図である。
【図３】ビデオ符号化器の機能モジュールを示す概略的なブロック図である。
【図４】ビデオ復号器の機能モジュールを示す概略的なブロック図である。
【図５】２つのタイルおよび３つのスライスセグメントに分割されたフレームを示す概略的なブロック図である。
【図６ａ】図６（ａ）は、コーディング・ツリー・ブロック（ＣＴＢ）内のコーディングユニット（ＣＵ）をスキャンする「Ｚ−スキャン」順の例を示す概略的なブロック図である。
【図６ｂ】図６（ｂ）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）内のコーディングユニット（ＣＵ）に対する近傍コーディング・ツリー・ブロック（ＣＴＢ）中のサンプルのブロックを参照する、ブロックベクトルの例を示す概略的なブロック図である。
【図７ａ】図７（ａ）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）内のコーディングユニット（ＣＵ）に対する近傍コーディング・ツリー・ブロック（ＣＴＢ）中のサンプルのブロックを参照する、ブロックベクトルの例を示す概略的なブロック図である。
【図７ｂ】図７（ｂ）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）および近傍コーディング・ツリー・ブロック（ＣＴＢ）の双方にわたるサンプルのブロックを参照する、ブロックベクトルの例を示す概略的なブロック図である。
【図８ａ】図８（ａ）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）および利用不能であるとマークされた近傍コーディング・ツリー・ブロック（ＣＴＢ）の双方にわたるサンプルのブロックを参照する、ブロックベクトルの例を示す概略的なブロック図である。
【図８ｂ】図８（ｂ）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）内のサンプルのブロックを参照する、調節されたブロックベクトルの例を示す概略的なブロック図である。
【図８ｃ】図８（ｃ）は、参照されるサンプルのうちのいくつかが、インター予測を使用して復号されたサンプルのブロックを参照する、ブロックベクトルの例を示す概略的なブロック図である。
【図８ｄ】図８（ｄ）は、参照ブロックが、現在のコーディングユニット（ＣＵ）内のサンプルを含むサンプルのブロックを参照する、ブロックベクトルの例を示す概略的なブロック図である。
【図９】コーディングユニット（ＣＵ）シンタックス構造を示す概略的なブロック図である。
【図１０】コーディングユニット（ＣＵ）シンタックス構造を、符号化されたビットストリームに符号化する方法を示す概略的なフロー図である。
【図１１】符号化されたビットストリームから、コーディングユニット（ＣＵ）シンタックス構造を復号する方法を示す概略的なフロー図である。
【図１２】図１２（ａ）は、コーディングユニット（ＣＵ）に対するイントラ・ブロック・コピー・フラグのためのコンテキスト選択を示す概略的なブロック図である。
【００２４】
図１２（ｂ）は、コーディング・ツリー・ブロック（ＣＴＢ）のトップに整列したコーディングユニット（ＣＵ）に対するイントラ・ブロック・コピー・フラグのためのコンテキスト選択を示す概略的なブロック図である。
【図１３】図４のエントロピー復号器の機能モジュールを示す概略的なブロック図である。
【図１４】コーディングユニット（ＣＵ）に対するイントラ・ブロック・コピー・フラグを復号する方法を示す概略的なフロー図である。
【図１５ａ】図１５（ａ）は、コーディングユニット（ＣＵ）に対する予測モードを決定する方法を示す概略的なフロー図である。
【図１５ｂ】図１５（ｂ）は、コーディングユニット（ＣＵ）に対する予測モードを決定する方法を示す概略的なフロー図である。
【図１６】コーディング・ツリー・ブロック（ＣＴＢ）内のコーディングユニット（ＣＵ）中の残差四分木（ＲＱＴ）を示す概略的なブロック図である。
【図１７ａ】図１７（ａ）は、イントラ・ブロック・コピー・モードを使用するように構成されたコーディングユニット（ＣＵ）に対する参照サンプルブロックを生成させる方法を示す概略的なフロー図である。
【図１７ｂ】図１７（ｂ）は、イントラ・ブロック・コピー・モードを使用するように構成されたコーディングユニット（ＣＵ）に対する参照サンプルブロックを生成させる方法を示す概略的なフロー図である。
【図１７ｃ】図１７（ｃ）は、イントラ・ブロック・コピー・モードを使用するように構成されたコーディングユニット（ＣＵ）に対する参照サンプルブロックを生成させる方法を示す概略的なフロー図である。
【図１７ｄ】図１７（ｄ）は、イントラ・ブロック・コピー・モードを使用するように構成されたコーディングユニット（ＣＵ）に対する参照サンプルブロックを生成させる方法を示す概略的なフロー図である。
【図１８ａ】図１８（ａ）は、ブロックベクトルの起点が、現在のコーディングユニット（ＣＵ）の位置以外のポイントに対するものであるサンプルのブロックを参照する、ブロックベクトルの例を示す概略的なブロック図である。
【図１８ｂ】図１８（ｂ）は、イントラ・ブロック・コピー・モードを使用するように構成された連続コーディングユニット（ＣＵ）間のブロックベクトル表現の例を示す概略的なブロック図である。［付録Ａ］図１１の方法にかかるコーディングユニット（ＣＵ）シンタックス構造を示す。［付録Ｂ］図８（ｃ）にかかるブロックベクトル整合性制限を示す。［付録Ｃ］図８（ｃ）にかかるイントラ・ブロック・コピー方法を示す。［付録Ｄ］ステップ１４０２〜ステップ１４０８を省略した図１４の方法の構成にかかる、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対するコンテキスト選択を示す。
【発明を実施するための形態】
【００２５】
添付の図面のうちの任意の１以上において、同じ参照番号を有するステップおよび／または特徴に対する参照が行われる場合、これらのステップおよび／または特徴は、反する意図が生じない限り、ここでの説明の便宜上、同じ機能または動作を有することとする。
【００２６】
図１は、ビデオ符号化および復号システム１００の機能モジュールを示す概略的なブロック図である。システム１００は、複雑性を低減し、符号化効率を改善し、誤り耐性を改善するためにイントラ・ブロック・コピー技術を利用してもよい。システム１００中に存在するコンテキストの数を減少させることにより、あるいは、所定のコンテキストコーディングされたビンに対してどのコンテキストを使用すべきかを選択するために使用される規則を簡略化または廃止することにより、複雑性が低減されてもよい。システム１００は、発信元デバイス１１０および宛先デバイス１３０を含む。通信チャネル１２０は、発信元デバイス１１０から宛先デバイス１３０に、符号化されたビデオ情報を送るために使用される。いくつかの構成において、発信元デバイス１１０および宛先デバイス１３０は、通信チャネル１２０がワイヤレスチャネルである場合、それぞれ携帯電話機を含んでもよい。他の構成において、発信元デバイス１１０および宛先デバイス１３０は、通信チャネル１２０が通常、インターネット接続等のワイヤードチャネルである場合、ビデオ会議機器を含んでもよい。さらに、発信元デバイス１１０および宛先デバイス１３０は、無線テレビブロードキャスト、ケーブルテレビアプリケーション、インターネットビデオアプリケーションならびに符号化されたビデオデータが何らかの記憶媒体またはファイルサーバにおいて取得されるアプリケーションを通してサポートするデバイスを含む、幅広いデバイスのうちのいずれかを含んでもよい。
【００２７】
図１に示すように、発信元デバイス１１０は、ビデオソース１１２、ビデオ符号化器１１４、および送信機１１６を含む。ビデオソース１１２は、通常、撮像素子、非一時的記録媒体に記憶された、以前に取得されたビデオシーケンス、または、リモート撮像素子からフィードされるビデオ等の、取得されたビデオフレームデータのソースを含む。ビデオソース１１２として撮像素子を含んでもよい発信元デバイス１１０の例としては、スマートフォン、ビデオカムコーダおよびネットワークビデオカメラ等がある。
【００２８】
ビデオ符号化器１１４は、ビデオソース１１２からの取得されたフレームデータを、符号化されたビデオデータにコンバートするものであり、図３を参照してさらに説明する。符号化されたビデオデータは、通常、符号化されたビデオデータ（または、「符号化されたビデオ情報」）として、通信チャネル１２０を通して、送信機１１６により送信される。符号化されたビデオデータは、後に通信チャネル１２０を通して送信されるまで、「フラッシュ」メモリまたはハードディスクドライブ等の、何らかの記憶デバイスに記憶されることもできる。
【００２９】
宛先デバイス１３０は、受信機１３２、ビデオ復号器１３４およびディスプレイデバイス１３６を含む。受信機１３２は、通信チャネル１２０から、符号化されたビデオデータを受信し、ビデオ復号器１３４に、受信されたビデオデータを渡す。ビデオ復号器１３４はその後、復号されたフレームデータを、ディスプレイデバイス１３６に出力する。ディスプレイデバイス１３６の例としては、カソードレイチューブ、スマートフォン、タブレットコンピュータ、コンピュータモニタまたはスタンドアローンテレビセット等における、液晶ディスプレイ等がある。発信元デバイス１１０および宛先デバイス１３０の各々の機能性は、単一のデバイスでも具現化できる。
【００３０】
上述したデバイス例にもかかわらず、発信元デバイス１１０および宛先デバイス１３０の各々は、通常、ハードウェアおよびソフトウェアコンポーネントの組み合わせにより、汎用コンピューティングシステム内で構成されてもよい。図２（ａ）は、そのようなコンピュータシステム２００を図示し、コンピュータシステム２００は、コンピュータモジュール２０１と、キーボード２０２、マウス・ポイント・デバイス２０３、スキャナ２２６、ビデオソース１１２として構成されてもよいカメラ２２７、および、マイクロフォン２８０のような入力デバイスと、プリンタ２１５、ディスプレイデバイス１３６として構成されてもよいディスプレイデバイス２１４、および、ラウドスピーカ２１７を含む出力デバイスとを含む。外部変調−復調（Ｍｏｄｅｍ）トランシーバデバイス２１６は、接続２２１を介して、通信ネットワーク２２０とやりとりするためにコンピュータモジュール２０１により使用されてもよい。通信チャネル１２０に相当しうる通信ネットワーク２２０は、インターネット、セルラ電気通信ネットワーク、または、プライベートワイドエリアネットワーク（ＷＡＮ）等の、ＷＡＮであってもよい。接続２２１が電話線である場合に、モデム２１６は、従来の「ダイアルアップ」モデムであってもよい。あるいは、接続２２１が高容量（例えば、ケーブル）接続である場合に、モデム２１６はブロードバンドモデムであってもよい。ワイヤレスモデムが、通信ネットワーク２２０へのワイヤレス接続のために使用されてもよい。トランシーバデバイス２１６は、送信機１１６および受信機１３２の機能性を提供してもよく、通信チャネル１２０は、接続２２１で具現化されてもよい。
【００３１】
コンピュータモジュール２０１は、通常、少なくとも１つのプロセッサユニット２０５、およびメモリユニット２０６を含む。例えば、メモリユニット２０６は、半導体ランダムアクセスメモリ（ＲＡＭ）および半導体リードオンリーメモリ（ＲＯＭ）を有してもよい。コンピュータモジュール２０１はまた、ビデオディスプレイ２１４、ラウドスピーカ２１７およびマイクロフォン２８０に接続されたオーディオ−ビデオインターフェース２０７と、キーボード２０２、マウス２０３、スキャナ２２６、カメラ２２７および任意にジョイスティックまたは他のヒューマンインターフェースデバイス（図示していない）に接続されたＩ／Ｏインターフェース２１３と、外部モデム２１６およびプリンタ２１５のためのインターフェース２０８とを含む、多数の入力／出力（Ｉ／Ｏ）インターフェースを含む。いくつかの実施形態において、モデム２１６は、コンピュータモジュール２０１内、例えば、インターフェース２０８内に、組み込まれてもよい。コンピュータモジュール２０１はまた、ローカルエリアネットワーク（ＬＡＮ）として知られる、ローカルエリア通信ネットワーク２２２に対する、接続２２３を介しての、コンピュータシステム２００の接続を可能にする、ローカルネットワークインターフェース２１１を有する。図２（ａ）に図示するように、ローカル通信ネットワーク２２２は、接続２２４を介してワイドネットワーク２２０に接続されてもよく、その場合、通常、いわゆる「ファイアウォール」デバイスまたは同様の機能性のデバイスを含む。ローカルネットワークインターフェース２１１は、イーサネット（登録商標）回路カード、ブルートゥース（登録商標）ワイヤレス構成またはＩＥＥＥ８０２．１１ワイヤレス構成を含んでもよい。しかし、多数の他のタイプのインターフェースが、インターフェース２１１に対して実施されてもよい。ローカルネットワークインターフェース２１１はまた、送信機１１６および受信機１３２の機能性を提供してもよく、通信チャネル１２０は、ローカル通信ネットワーク２２２で具現化されてもよい。
【００３２】
Ｉ／Ｏインターフェース２０８およびＩ／Ｏインターフェース２１３は、直列および並列の接続性のいずれかあるいは双方でも差支えなく、前者は通常、ユニバーサルシリアルバス（ＵＳＢ）標準規格に従って実現され、対応するＵＳＢコネクタ（図示していない）を有する。記憶デバイス２０９が設けられ、通常、ハードディスクドライブ（ＨＤＤ）２１０を含む。フロッピー（登録商標）・ディスク・ドライブおよび磁気テープドライブ（図示していない）等の、他の記憶デバイスもまた使用されてもよい。光ディスクドライブ２１２は、通常、データの不揮発性ソースとして動作するよう設けられる。光ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイディスク（登録商標））、ＵＳＢ−ＲＡＭ、ポータブル外部ハードドライブ、およびフロッピー（登録商標）ディスク等の、ポータブル・メモリ・デバイスは、例えば、コンピュータシステム２００に対するデータの適切なソースとして使用されてもよい。通常、ＨＤＤ２１０、光ドライブ２１２、ネットワーク２２０およびネットワーク２２２のうちのいずれかは、ビデオソース１１２として、または、ディスプレイ２１４を介して再生するために記憶される、復号されたビデオデータの宛先として、動作するように構成されてもよい。
【００３３】
コンピュータモジュール２０１のコンポーネント２０５〜コンポーネント２１３は、通常、相互接続されたバス２０４を介して、当業者に知られているコンピュータシステム２００の動作の従来のモードに結果としてなる方法で、通信する。例えば、プロセッサ２０５は、接続２１８を使用して、システムバス２０４に接続される。同様に、メモリ２０６および光ディスクドライブ２１２は、接続２１９により、システムバス２０４に接続される。上記した構成を実施できるコンピュータの例として、ＩＢＭ−ＰＣおよびコンパチブル、Ｓｕｎ  ＳＰＡＲＣステーション、アップルＭａｃ（登録商標）あるいは類似のコンピュータシステム等がある。
【００３４】
必要に応じて、あるいは望ましいならば、ビデオ符号化器１１４およびビデオ復号器１３４とともに、以下に説明する方法が、コンピュータシステム２００を使用して実現されてもよい。特に、ビデオ符号化器１１４、ビデオ復号器１３４および説明される図１０、図１１、図１４、図１５（ａ）、図１５（ｂ）、図１７（ａ）、図１７（ｂ）、図１７（ｃ）および図１７（ｄ）の方法は、コンピュータシステム２００内で実行可能な１以上のソフトウェア・アプリケーション・プログラム２３３として実現されてもよい。ビデオ符号化器１１４、ビデオ復号器１３４および説明される方法のステップは、コンピュータシステム２００内で実行されるソフトウェア２３３中の命令２３１（図２（ｂ）参照）により実行されてもよい。ソフトウェア命令２３１は、１以上のコードモジュールとして形成されてもよく、各々が１以上の特定のタスクを実行するためのものである。ソフトウェアはまた、２つの別個の部分に分割され、第１のパートおよび対応するコードモジュールは、説明される方法を実行し、第２のパートおよび対応するコードモジュールは、第１のパートとユーザとの間のユーザインターフェースを管理してもよい。ソフトウェアは、例えば、以下に説明する記憶デバイスを含むコンピュータ読取可能媒体に記憶されてもよい。ソフトウェアは、コンピュータ読取可能媒体からコンピュータシステム２００にロードされ、その後、コンピュータシステム２００により実行される。このようなソフトウェアまたはコンピュータプログラムを記録しているコンピュータ読取可能媒体は、コンピュータプログラム製品である。コンピュータシステム２００において使われるコンピュータプログラム製品は、好ましくは、ビデオ符号化器１１４、ビデオ復号器１３４および説明される方法を実現するための有利な装置となる。
【００３５】
ソフトウェア２３３は、通常、ＨＤＤ２１０またはメモリ２０６に記憶される。ソフトウェアは、コンピュータ読取可能媒体からコンピュータシステム２００にロードされ、コンピュータシステム２００により実行される。このため、例えば、ソフトウェア２３３は、光ディスクドライブ２１２により読み出される光読取可能ディスク記憶媒体（例えば、ＣＤ−ＲＯＭ）２２５に記憶されてもよい。
【００３６】
場合によっては、アプリケーションプログラム２３３は、ユーザに供給され、１以上のＣＤ−ＲＯＭ２２５に符号化され、対応するドライブ２１２を介して読み出されるか、あるいは、ネットワーク２２０または２２２からユーザにより読み出されてもよい。さらになお、ソフトウェアはまた、他のコンピュータ読取可能媒体からコンピュータシステム２００にロードされ得る。コンピュータ読取可能記憶媒体は、実行および／または処理のために、コンピュータシステム２００に、記録された命令および／またはデータを提供する任意の非一時的タンジブル記憶媒体を指す。このような記憶媒体の例としては、このようなデバイスがコンピュータモジュール２０１の内部にあるかまたは外部にあるかにかかわらず、フロッピー（登録商標）ディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイディスク、ハードディスクドライブ、ＲＯＭまたは集積回路、ＵＳＢメモリ、光磁気ディスク、あるいは、ＰＣＭＣＩＡカード等のコンピュータ読取可能カードを含む。ソフトウェア、アプリケーションプログラム、命令および／またはビデオデータあるいは符号化されたビデオデータのコンピュータモジュール４０１への提供に関与しうる、一時的または非タンジブルコンピュータ読取可能送信媒体の例としては、無線または赤外線送信チャネルとともに別のコンピュータまたはネットワーク接続されたデバイスに対するネットワーク接続、ならびに、電子メール送信、ウェブサイト等に記録された情報含むインターネットまたはイントラネット等がある。
【００３７】
上述したアプリケーションプログラム２３３の第２のパートおよび対応するコードモジュールは、ディスプレイ２１４にレンダリングされる、あるいは表現される、１以上のグラフィカルユーザインターフェース（ＧＵＩ）を実現するように実行されてもよい。通常、キーボード２０２およびマウス２０３の操作を通して、コンピュータシステム２００およびアプリケーションのユーザは、ＧＵＩに関係付けられるアプリケーションに制御コマンドおよび／または入力を与えるために、機能的に適応可能な方法で、インターフェースを操作してもよい。機能的に適応可能なユーザインターフェースの他の形態もまた実現されてもよく、例えば発話を利用したオーディオインターフェースは、ラウドスピーカ２１７を介しての出力およびマイクロフォン２８０を介してのユーザ音声コマンド入力を促す。
【００３８】
図２（ｂ）は、プロセッサ２０５および「メモリ」２３４の詳細な概略的なブロック図である。メモリ２３４は、図２（ａ）中のコンピュータモジュール２０１によりアクセスできる、（ＨＤＤ２０９および半導体メモリ２０６を含む）すべてのメモリモジュールの論理構成を表す。
【００３９】
コンピュータモジュール２０１が最初に電源を入れられたときに、パワーオン・セルフ・テスト（ＰＯＳＴ）プログラム２５０が実行される。ＰＯＳＴプログラム２５０は、通常、図２（ａ）の半導体メモリ２０６のＲＯＭ２４９に記憶される。ソフトウェアを記憶するＲＯＭ２４９のようなハードウェアデバイスは、時に、ファームウェアと呼ばれる。ＰＯＳＴプログラム２５０は、適切な機能を保証するために、コンピュータモジュール２０１内のハードウェアを検査し、通常、プロセッサ２０５、メモリ２３４（２０９、２０６）、および、通常はＲＯＭ２４９に記憶されるベーシック・インプット−アウトプット・システム（ＢＩＯＳ）モジュール２５１の正確な動作をチェックする。一旦、ＰＯＳＴプログラム２５０がうまく動作すると、ＢＩＯＳ２５１は、図２（ａ）のハードディスクドライブ２１０を起動する。ハードディスクドライブ２１０の起動により、ハードディスクドライブ２１０に常駐するブートストラップローダープログラム２５２が、プロセッサ２０５を介して実行される。これにより、オペレーティングシステム２５３をＲＡＭメモリ２０６にロードし、このとき、オペレーティングシステム２５３は動作を開始する。オペレーティングシステム２５３は、プロセッサ管理、メモリ管理、デバイス管理、記憶装置管理、ソフトウェアアプリケーションインターフェースおよび汎用ユーザインターフェースを含む、様々な高レベルの機能を実現するために、プロセッサ２０５により実行可能な、システムレベルアプリケーションである。
【００４０】
オペレーティングシステム２５３は、コンピュータモジュール２０１上で動作する各プロセスまたはアプリケーションが、別のプロセスに割り当てられたメモリと衝突することなく実行されるのに十分なメモリを有することを保証するようメモリ２３４（２０９、２０６）を管理する。さらに、図２（ａ）のコンピュータシステム２００で利用可能な異なるタイプのメモリは、各プロセスが効果的に実行されるように適切に使用されなければならない。従って、集積メモリ２３４は、（特に明記しない限り）メモリの特定のセグメントがいかに割り当てられるかを示すためのものなく、むしろ、コンピュータシステム２００によりアクセス可能なメモリおよびこれらの使用状況についての大局がわかるようにするためのものである。
【００４１】
図２（ｂ）に示すように、プロセッサ２０５は、制御ユニット２３９、演算論理ユニット（ＡＬＵ）２４０、ならびに、時にはキャッシュメモリと呼ばれるローカルまたは内部メモリ２４８を含む多数の機能モジュールを備える。キャッシュメモリ２４８は、通常、レジスタセクションに多数の記憶レジスタ２４４〜２４６を含む。１以上の内部バス２４１は、機能的に、これらの機能モジュールを相互接続させる。プロセッサ２０５は、通常、接続２１８を使用して、システムバス２０４を介して、外部デバイスと通信するための１以上のインターフェース２４２も有する。メモリ２３４は、接続２１９を使用して、バス２０４に接続される。
【００４２】
アプリケーションプログラム２３３は、条件ブランチおよびループ命令を含んでもよい命令２３１のシーケンスを含む。プログラム２３３は、プログラム２３３の実行時に使用されるデータ２３２も含んでもよい。命令２３１およびデータ２３２は、メモリ位置２２８、２２９、２３０およびメモリ位置２３５、２３６、２３７にそれぞれ記憶される。命令２３１およびメモリ位置２２８〜２３０の相対的なサイズによって、特定の命令は、メモリ位置２３０に示された命令により表されるような、単一のメモリ位置に記憶されてもよい。あるいは、命令は、メモリ位置２２８およびメモリ位置２２９に示された命令セグメントにより表されるような、別個のメモリ位置に各々記憶される多数のパートにセグメント化されてもよい。
【００４３】
一般に、プロセッサ２０５は、プロセッサ２０５において実行される一連の命令を与えられる。プロセッサ２０５は、別の一連の命令を実行することによりプロセッサ２０５が反応する、後続する入力を待つ。各入力は、入力デバイス２０２、２０３の１つ以上により生成されるデータ、ネットワーク２２０、ネットワーク２０２のうちの１つにわたって外部ソースから受信されるデータ、記憶デバイス２０６、記憶デバイス２０９のうちの１つから読み出されるデータ、または、対応するリーダ２１２に挿入される記憶媒体２２５から読み出されるデータを含む、多数のソースのうちの１つ以上からなされてもよく、いずれも図２（ａ）に示した。場合によっては、一連の命令の実行は、結果的にデータの出力になりうる。実行は、メモリ２３４に、データまたは変数を記憶することを伴ってもよい。
【００４４】
ビデオ符号化器１１４、ビデオ復号器１３４および説明される方法は、対応するメモリ位置２５５、２５６、２５７においてメモリ２３４に記憶される、入力変数２５４を使用してもよい。ビデオ符号化器１１４、ビデオ復号器１３４および説明される方法は、対応するメモリ位置２６２、２６３、２６４においてメモリ２３４に記憶される、出力変数２６１を生成する。中間変数２５８は、メモリ位置２５９、２６０、２６６および２６７に記憶されてもよい。
【００４５】
図２（ｂ）のプロセッサ２０５に関して、レジスタ２４４、２４５、２４６、演算論理回路（ＡＬＵ）２４０、および制御ユニット２３９は、プログラム２３３を構成する一連の命令中のすべての命令に対して、「取得、復号、および実行」サイクルを実行するために必要とされるマイクロ動作のシーケンスを実行するよう共に作動する。各取得、復号、および実行サイクルは以下を含む、すなわち、
（ａ）メモリ位置２２８、メモリ位置２２９、メモリ位置２３０から命令２３１を取得または読み出す取得動作、
（ｂ）制御ユニット２３９がどの命令を取得するかを決定する復号動作、ならびに、
（ｃ）制御ユニット２３９および／またはＡＬＵ２４０が命令を実行する命令動作、である。
【００４６】
これ以降、次の命令に対するさらなる取得、復号、および実行サイクルが実行されてもよい。同様に、制御ユニット２３９がメモリ位置２３２に値を記憶または書き込む記憶サイクルが実行されてもよい。
【００４７】
説明される図９および図１０の方法における各ステップまたはサブプロセスは、プログラム２３３の１以上のセグメントに関係付けられ、通常、プログラム２３３の上記セグメントに対する命令中のすべての命令に対して取得、復号、および実行サイクルを実行するよう共に作動する、プロセッサ２０５中のレジスタセクション２４４、２４５、２４７、ＡＬＵ２４０および制御ユニット２３９により実行される。
【００４８】
図３は、ビデオ符号化器１１４の機能モジュールを示す概略的なブロック図である。図４は、ビデオ復号器１３４の機能モジュールを示す概略的なブロック図である。一般に、データは、例えば、サンプルのブロックまたは変換係数のブロック等の、ブロックまたはアレイ中のビデオ符号化器１１４およびビデオ復号器１３４の機能モジュール間で受け渡される。個別のアレイ要素（例えば、サンプルまたは変換係数）の動作を参照して、機能モジュールが説明される場合に、該動作は、すべてのアレイ要素に適用されると理解されるものとする。
【００４９】
ビデオ符号化器１１４およびビデオ復号器１３４は、図２（ａ）および図２（ｂ）に示すような、汎用コンピュータシステム２００を使用して実現されてもよく、コンピュータシステム２００内の専用ハードウェアにより、様々な機能モジュールが実現されてもよい。あるいは、ビデオ符号化器１１４およびビデオ復号器１３４の様々な機能モジュールは、ハードディスクドライブ２０５に常駐し、プロセッサ２０５により実行が制御されるソフトウェアアプリケーションプログラム２３３の１以上のソフトウェアコードモジュール等の、コンピュータシステム２００内で実行可能なソフトウェアにより実現されてもよい。さらにあるいは、ビデオ符号化器１１４およびビデオ復号器１３４の様々な機能モジュールは、コンピュータシステム２００内で実行可能な専用ハードウェアおよびソフトウェアの組み合わせにより実現されてもよい。ビデオ符号化器１１４、ビデオ復号器１３４および説明される方法は、あるいは、説明される方法の機能またはサブ機能を実行する１以上の集積回路等の、専用ハードウェアにおいて実現されてもよい。このような専用ハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）あるいは１以上のマイクロプロセッサおよび関係付けられたメモリを含んでもよい。特に、ビデオ符号化器１１４は、モジュール３２０〜３５０を含み、ビデオ復号器１３４は、各々ソフトウェアアプリケーションプログラム２３３の１以上のソフトウェアコードモジュールとして実現されてもよいモジュール４２０〜４３６を含む。
【００５０】
図３のビデオ符号化器１１４は、high efficiency video coding（ＨＥＶＣ）ビデオ符号化パイプラインの例であるが、本明細書で説明する処理ステージを実行するために、他のビデオコーデックもまた使用されてもよい。ビデオ符号化器１１４は、一連のフレーム等の、取得されたフレームデータを受信し、各フレームは、１以上のカラーチャネルを含む。
【００５１】
ビデオ符号化器１１４は、フレームデータ３１０等の、取得されたフレームデータの各フレームを、「コーディング・ツリー・ブロック」（ＣＴＢ）と一般に呼ばれる領域に分割する。フレームデータ３１０は、１以上のカラープレーンを含む。各カラープレーンはサンプルを含む。各サンプルは、ビット深度３９０に従ってサイジングされたバイナリワードを占める。このため、可能なサンプル値の範囲は、ビット深度３９０により定義される。例えば、ビット深度３９０が８ビットと設定された場合に、サンプル値はゼロ（０）〜２５５であってもよい。各コーディング・ツリー・ブロック（ＣＴＢ）は、「コーディングユニット」（ＣＵ）の集合にフレームの一部の階層的な四分木・サブ分割を含める。コーディング・ツリー・ブロック（ＣＴＢ）は、一般に、６４×６４ルマサンプルを占めるが、１６×１６、３２×３２等の、他のサイズも可能である。場合によっては、１２８×１２８ルマサンプル等の、コーディング・ツリー・ブロック（ＣＴＢ）に対するさらに大きなサイズが使用されてもよい。コーディング・ツリー・ブロック（ＣＴＢ）は、新規の階層レベルを作成するために、４つの等しくサイジングされた領域への分割により、サブ分割されてもよい。分割は再帰的に適用されてもよく、結果的に、四分木階層（または「コーディングツリー」）となる。コーディング・ツリー・ブロック（ＣＴＢ）側の次元は、２の乗数であり、四分木分割は、結果的に、幅および高さの二等分になり、領域側の次元もまた２の乗数である。領域のさらなる分割が実行されないときに、「コーディングユニット」（ＣＵ）は、領域内に存在すると言われる。コーディング・ツリー・ブロックのトップレベル（または、通常「最高レベル」）で分割が行われないときに、コーディング・ツリー・ブロック全体を占める領域は、１つのコーディングユニット（ＣＵ）を含む。このような場合では、コーディングユニット（ＣＵ）は、一般に、「最大コーディングユニット」（ＬＣＵ）と呼ばれる。各コーディングユニット（ＣＵ）に対して、８×８ルマサンプルにより占められるエリア等の、最小サイズも存在するが、他の最小サイズ（例えば、１６×１６ルマサンプルまたは３２×３２ルマサンプル）もまた可能である。最小サイズのコーディングユニットは、一般に、「最小コーディングユニット」（ＳＣＵ）と呼ばれる。四分木階層の結果として、コーディング・ツリー・ブロック（ＣＴＢ）の全体が、１以上のコーディングユニット（ＣＵ）により占められる。各コーディングユニット（ＣＵ）は、一般に、「予測ユニット」（ＰＵ）と呼ばれる、データサンプルの１以上の列に関係付けられる。予測ユニット（ＰＵ）はオーバーラップしない、かつ、コーディングユニット（ＣＵ）の全体が１以上の予測ユニット（ＰＵ）により占められるという要件の下、各コーディングユニット（ＣＵ）における予測ユニット（ＰＵ）の様々な構成が可能である。このような要件により、予測ユニット（ＰＵ）がフレーム全体をカバーすることが保証される。コーディングユニット（ＣＵ）に関係付けられる１以上の予測ユニット（ＰＵ）の構成は、「パーティションモード」と呼ばれる。
【００５２】
ビデオ符号化器１１４は、コーディングユニット（ＣＵ）のパーティションモードに従って、マルチプレクサモジュール３４０から、予測ユニット（ＰＵ）３８２を出力することにより、動作する。異なるモジュール３４４は、「残差サンプルアレイ」３６０を生成する。残差サンプルアレイ３６０は、予測ユニット（ＰＵ）３８２と、フレームデータ３１０のコーディング・ツリー・ブロック（ＣＴＢ）のコーディングユニット（ＣＵ）からの、対応するデータサンプルの２Ｄアレイとの間の差である。差は、アレイ中の各位置における対応するサンプルに対して算出される。差は、正または負であってもよいことから、１つの異なるサンプルの動的範囲は、ビット深度＋１ビットである。
【００５３】
残差サンプルアレイ３６０は、変換モジュール３２０において、周波数ドメインに変換されてもよい。差モジュール３４４からの残差サンプルアレイ３６０は、変換モジュール３２０により受信され、変換モジュール３２０は、「フォワード変換」を適用することにより、空間表現からの残差サンプルアレイ３６０を、周波数ドメイン表現にコンバートする。変換モジュール３２０は、特定の正確さを有する変換に従って、変換係数を作成する。コーディングユニット（ＣＵ）は、１以上の変換ユニット（ＴＵ）にサブ分割される。コーディングユニット（ＣＵ）の、１以上の変換ユニット（ＴＵ）へのサブ分割は、「残差四分木」または「residual quad-tree（ＲＱＴ）」または「変換ツリー」と呼ばれてもよい。
【００５４】
量子化制御モジュール３４６は、「レート歪み基準」に従って、様々な可能な量子化パラメータ値に対して、符号化されたビットストリーム３１２中で必要とされるビットレートをテストしてもよい。レート歪み基準は、符号化されたビットストリーム３１２のビットレートまたはそれらのローカル領域と歪みとの間の許容可能なトレードオフの測定である。歪みは、フレームバッファ３３２に存在するフレームと、取得されたフレームデータ３１０との間の差の測定である。歪みの測定方法は、ピーク信号対ノイズ比（ＰＳＮＲ）または差の絶対値の和（ＳＡＤ）メトリックの使用を含む。ビデオ符号化器１１４のいくつかの構成において、レート歪み基準は、ルマカラーチャネルに対するレートおよび歪みのみを考慮するため、符号化の判定は、ルマチャネルの特性に基づいて行われる。一般に、残差四分木（ＲＱＴ）は、ルマカラーチャネルおよびクロマカラーチャネル間で共有され、クロマ情報の量は、ルマと比較して相対的に小さいため、レート歪み基準でルマのみを考慮することが適していることがある。
【００５５】
量子化パラメータ３８４は、量子化制御モジュール３４６から出力される。量子化パラメータは、ビデオデータのフレームに対して固定されていてもよく、または、フレームは符号化されることから、ブロック毎に変化してもよい。量子化パラメータ３８４を制御するための他の方法もまた可能である。残差四分木に対する可能な一連の変換ユニット（ＴＵ）は、利用可能な変換サイズおよびコーディングユニット（ＣＵ）サイズに依存する。１つの構成では、残差四分木は、結果として、符号化されたビットストリーム３１２中の、より低いビットレートになり、このため、より高い符号化効率を達成する。より大きなサイズの変換ユニット（ＴＵ）は、結果として、ルマカラーチャネルおよびクロマカラーチャネル双方に対するより大きな変換を使用することになる。一般に、より大きな変換は、残差サンプルアレイにわたるサンプルデータ（または「残差エネルギー」）を持つ残差サンプルアレイの、さらにコンパクトな表現を提供する。一般に、より小さな変換は、大きな変換と比較して、残差サンプルアレイの特定の領域に位置付けられた残差エネルギーを持つ残差サンプルアレイの、さらにコンパクトな表現を提供する。このため、残差四分木（ＲＱＴ）の多くの可能な構成は、high efficiency video coding（ＨＥＶＣ）標準規格での残差サンプルアレイ３６０の高い符号化効率を達成する有効な手段を提供する。
【００５６】
変換制御モジュール３４８は、残差四分木（ＲＱＴ）の各リーフノードを符号化するときに使用するための変換サイズを選択する。例えば、様々な変換サイズ（および、従って、残差四分木構成または変換ツリー）がテストされてもよく、レート歪み基準からの最良のトレードオフに結果としてなる変換ツリーが選択されてもよい。変換サイズ３８６は、選択された変換のサイズを表す。変換サイズ３８６は、符号化されたビットストリーム３１２に符号化され、変換モジュール３２０、量子化モジュール３２２、逆量子化モジュール３２６および逆変換モジュール３２８に提供される。変換サイズ３８６は、変換次元（例えば、４×４、８×８、１６×１６または３２×３２）、変換サイズ（例えば、４、８、１６または３２）、あるいは、変換サイズのｌｏｇ２（例えば、２、３、４または５）により相互互換的に表されてもよい。変換サイズの特定の表現の数値が（例えば、等式中で）使用される状況では、変換サイズの他の何らかの表現からのコンバージョンが必要だと考えられ、以下の説明で示唆的に生じるものと考えられる。
【００５７】
ビデオ符号化器１１４は、「変換量子化バイパス」モードで実行されるように構成されてもよく、変換モジュール３２０および量子化モジュール３２２がバイパスされる。変換量子化バイパスモードにおいて、ビデオ符号化器１１４は、符号化されたビットストリーム３１２中のフレームデータ３１０を損失なく符号化する手段を提供する。変換量子化バイパスモードの使用は、コーディングユニット（ＣＵ）レベルで制御され、フレームデータ３１０の一部を、ビデオ符号化器１１４により損失なく符号化できる。「ハイレベルシンタックス」を介して、変換量子化バイパスモードの利用可能性が制御され、損失のない符号化がフレームデータ３１０の任意の一部で必要とされない場合では、制御変換量子化バイパスモードのシグナリングオーバーヘッドを除去できる。ハイレベルシンタックスは、一般に不定期に符号化され、ビットストリーム３１２のプロパティを記述するのに使用される、符号化されたビットストリーム３１２に存在するシンタックス構造を参照する。例えば、符号化されたビットストリーム３１２の高レベルシンタックス構造は、ビデオ符号化器１１４およびビデオ復号器１３４で使用される特定のコーディングツールを制限、または、そうでなければ構成するように使用されてもよい。高レベルシンタックス構造の例としては、「シーケンスパラメータセット」、「ピクチャパラメータセット」および「スライスヘッダ」等がある。
【００５８】
high efficiency video coding（ＨＥＶＣ）標準規格に対して、残差サンプルアレイ３６０の周波数ドメイン表現へのコンバージョンは、離散修正コサイン変換（ＤＣＴ）等の、変換を使用して実現される。このような変換では、修正により、多重化の代わりに、シフトおよび追加を使用した実現が可能になる。このような修正により、離散コサイン変換（ＤＣＴ）と比較して、実現の複雑性を低減することが可能になる。離散コサイン変換（ＤＣＴ）に加えて、修正離散サイン変換（ＤＳＴ）もまた、特定の状況で使用されてもよい。サポートされる変換サイズに従って、残差サンプルアレイ３６０の様々なサイズおよびスケーリングされた変換係数３６２が可能である。high efficiency video coding（ＨＥＶＣ）標準規格において、３２×３２、１６×１６、８×８および４×４等のサイズを有するデータサンプルの２Ｄアレイ上で変換が実行される。このため、変換サイズの予め定められたセットがビデオ符号化器１１４に対して利用可能である。さらに、変換サイズのセットは、ルマチャネルとクロマチャネルとの間で異なっていてもよい。
【００５９】
一般に、２次元変換は、「分離可能」であるように構成され、データサンプルの２Ｄアレイ上で１方向（例えば、行）に動作する１Ｄ変換の第１のセットとして実現が可能になる。１Ｄ変換の第１のセットの後に、１Ｄ変換の第１のセットから出力されたデータサンプルの２Ｄアレイ上上で他の方向（例えば、列）に動作する１Ｄ変換の第２のセットが続く。同じ幅および高さを有する変換は、一般に、「平方根変換」と呼ばれる。異なる幅および高さを有する追加の変換もまた使用されてもよく、一般に、「非平方根変換」と呼ばれる。行および列の１次元の変換は合成されて、４×４の変換モジュールまたは８×８の変換モジュール等の、特定のハードウェアまたはソフトウェアコードモジュールになってもよい。
【００６０】
より大きな次元を有する変換は、このような、より大きな次元変換が不定期に使用される場合であっても、実現のためにさらに大量の回路を必要とする。従って、high efficiency video coding（ＨＥＶＣ）標準規格は、３２×３２ルマサンプルの最大変換サイズを定義する。変換は、ルマチャネルおよびクロマチャネルの双方に適用されてもよい。変換ユニット（ＴＵ）に関して、ルマチャネルおよびクロマチャネルの取り扱いに差が存在する。各残差四分木は、１つのコーディングユニット（ＣＵ）を占め、残差四分木階層の各リーフノードにおける１つの送信ユニット（ＴＵ）を含む階層へのコーディングユニット（ＣＵ）の四分木の分解として定義される。各変換ユニット（ＴＵ）は、サポートされる変換サイズのうちの１つに対応する次元を有する。コーディング・ツリー・ブロック（ＣＴＢ）と同様に、コーディングユニット（ＣＴＵ）の全体が、１以上の変換ユニット（ＴＵ）により占められる必要がある。残差四分木階層の各レベルにおいて、「コーディングされたブロックフラグ値」は、各カラーチャネルでの可能な変換の存在をシグナリングする。シグナリングは、（さらなる分解が存在しないときに）現在の階層レベルにおける変換の存在を示してもよく、または、より低い階層レベルは、結果の変換ユニット（ＴＵ）内に少なくとも１つの変換を含んでもよいことを示してもよい。コーディングされたブロックフラグ値がゼロのときに、現在またはより低い階層レベルでのすべての残差係数は、ゼロとして知られる。このような場合では、現在の階層レベルまたはより低い階層レベルでの任意の変換ユニット（ＴＵ）の対応するカラーチャネルに対して、実行される変換はない。コーディングされたブロックフラグ値が１であるときに、現在の領域が、さらにサブ分割されない場合、領域は、少なくとも１つのゼロでない残差係数を必要とする変換を含む。現在の領域がさらにサブ分割される場合、１であるコーディングされたブロックフラグ値は、各結果のサブ分割された領域が、ゼロでない残差係数を含んでもよいことを示す。この方法で、各カラーチャネルに対して、ゼロ以上の変換は、コーディングユニット（ＣＵ）のどれもないこと（ｎｏｎｅ）からコーディングユニット（ＣＵ）全体まで変化する、コーディングユニット（ＣＵ）のエリアの一部をカバーしてもよい。別個の符号化されたブロックフラグ値は、各カラーチャネルに対して存在する。各符号化されたブロックフラグ値は、１つの可能な符号化されたブロックフラグ値のみが存在する場合、符号化される必要がない。
【００６１】
スケーリングされた変換係数３６２は、量子化モジュール３２２に対する入力であり、量子化モジュール３２２において、変換係数３６４を生成するために、決定された量子化パラメータ３８４に従って、量子化モジュール３２２のデータサンプル値がスケーリングおよび量子化される。変換係数３６４は、残差サンプルアレイ３６０と同じ次元を有する値のアレイである。変換係数３６４は、変換が適用されるときに、残差サンプルアレイ３６０の周波数ドメイン表現を提供する。変換がスキップされるときに、変換係数３６４は、残差（すなわち、量子化モジュール３２２により量子化されたが、変換モジュール３２０により変換されない）サンプルアレイ３６０の空間ドメイン表現を提供する。離散コサイン変換（ＤＣＴ）に対して、変換係数３６４の上側左の値は、残差サンプルアレイ３６０に対する「ＤＣ」値を規定し、「ＤＣ係数」として知られる。ＤＣ係数は、残差サンプルアレイ３６０の値の「平均」の表現である。変換係数３６４中の他の値は、残差サンプルアレイ３６０に対する「ＡＣ係数」を規定する。スケールおよび量子化は、決定された量子化パラメータ３８４の値に依存して、結果として、正確さの損失になる。決定された量子化パラメータ３８４のさらに高い値は、結果として、粗い量子化になるため、スケーリングされた変換係数３６２から損失する情報はより大きくなる。情報の損失は、符号化される情報が少ないことから、ビデオ符号化器１１４により達成される圧縮を増加させる。圧縮効率の増加は、ビデオ復号器１３４からの出力の視覚的な品質の低下という代償の上に生じる。例えば、フレームデータ３１０と比較して、復号されたフレーム４１２のピーク信号対ノイズ比（ＰＳＮＲ）が減少する。決定された量子化パラメータ３８４は、フレームデータ３１０の各フレームの符号化中に適応されてもよい。あるいは、決定された量子化パラメータ３８４は、フレームデータ３１０の一部に対して固定されてもよい。１つの構成では、決定された量子化パラメータ３８４は、フレームデータ３１０の全体に対して固定されてもよい。別個の値を持つスケーリングされた変換係数３６２の各々の量子化等、決定された量子化パラメータ３８４の他の適応もまた可能である。
【００６２】
変換係数３６４および決定された量子化パラメータ３８４は、逆量子化モジュール３２６に対する入力として取られる。逆量子化モジュール３２６は、再スケーリングされた変換係数３６６を生成するために、量子化モジュール３２２により実行されるスケーリングを反転させる。再スケーリングされた変換係数は、変換係数３６４の再スケーリングされたバージョンである。変換係数３６４、決定された量子化パラメータ３８４、変換サイズ３８６およびビット深度３９０は、エントロピー符号化モジュール３２４に対する入力としても取られる。エントロピー符号化モジュール３２４は、変換係数３６４の値を符号化されたビットストリーム３１２に符号化する。符号化されたビットストリーム３１２は、「ビデオビットストリーム」とも呼ばれる。（例えば、量子化モジュール３２２の動作に起因する）正確さの損失のため、再スケーリングされた変換係数３６６は、スケーリングされた変換係数３６２中のオリジナルの値に一致しない。逆量子化モジュール３２６からの再スケーリングされた変換係数３６６は、その後、逆変換モジュール３２８に対する出力になる。
【００６３】
逆変換モジュール３２８は、再スケーリングされた変換係数３６６の空間ドメイン表現３６８を生成するために、周波数ドメインから空間ドメインへの逆変換を実行する。空間ドメイン表現３６８は、ビデオ復号器１３４において生成される空間ドメインに実質的に一致する。空間ドメイン表現３６８は、その後、加算モジュール３４２に入力される。
【００６４】
動き推定モジュール３３８は、一般にメモリ２０６内で構成される、フレーム・バッファ・モジュール３３２に記憶される１以上の一連のフレームからの以前のフレームデータと、フレームデータ３１０とを比較することにより、動きベクトル３７４を生成させる。該一連のフレームは、「参照ピクチャ」として知られ、「参照ピクチャリスト」に列挙される。動きベクトル３７４は、その後、動きベクトル３７４から導出される空間オフセットを考慮して、フレーム・バッファ・モジュール３３２に記憶されるデータサンプルをフィルタリングすることにより、インター予測された予測ユニット（ＰＵ）３７６を生成する動き補償モジュール３３４に入力される。図３に示していないが、動きベクトル３７４もまた、符号化されたビットストリーム３１２に符号化するために、エントロピー符号化モジュール３２４に渡される。動きベクトルは、現在のブロックに対する動きベクトルと予測される動きベクトルとの間の差を表す、「動きベクトル差」（または「動きベクトルデルタ」）として符号化されてもよい。予測される動きベクトルは、１以上の空間的または時間的近傍ブロックから決定されてもよい。予測される動きベクトルは、動きベクトル差を符号化することなく、現在のブロックに対して使用されてもよい。動きベクトル差も符号化されたビットストリーム３１２中の残差係数も有さないコーディングユニット（ＣＵ）は、「スキップされた」ブロックと呼ばれる。
【００６５】
イントラフレーム予測モジュール３３６は、加算モジュール３４２から得られるサンプル３７０を使用して、イントラ予測された予測ユニット（ＰＵ）３７８を生成させる。特に、イントラフレーム予測モジュール３３６は、現在の予測ユニット（ＰＵ）に対するイントラ予測されたサンプルを生成するために既に復号されている、近傍ブロックからのサンプルを使用する。近傍ブロックが（例えば、フレーム境界において）利用可能でないときに、近傍サンプルは、参照用に「利用不能」として判断される。このような場合では、近傍サンプル値の代わりに、デフォルトの値を使用してもよい。通常、デフォルトの値（または「ハーフトーン」）はビット深度により示唆される範囲の半分に等しい。例えば、ビデオ符号化器１１４は、８であるビット深度に対して構成され、デフォルトの値は１２８である。加算モジュール３４２は、マルチプレクサ３４０からの予測ユニット（ＰＵ）３８２およびマルチプレクサ３８２の空間ドメイン出力を合計する。イントラフレーム予測モジュール３３６もまた、符号化されたビットストリーム３１２中に符号化されるためにエントロピー符号化器３２４に送信されるイントラ予測モード３８０を生成させる。
【００６６】
イントラ・ブロック・コピー・モジュール３５０は、予測ユニット（ＰＵ）３８２に対する参照ブロックを生成させるために、様々なブロックベクトルをテストする。参照ブロックは、現在のコーディング・ツリー・ブロック（ＣＴＢ）および／または以前のコーディング・ツリー・ブロック（ＣＴＢ）から得られたサンプルのブロック３７０を含む。参照ブロックは、まだ復号されておらず、従ってサンプル３７０で利用可能ではない、現在のコーディング・ツリー・ブロック（ＣＴＢ）中の任意のコーディングユニット（ＣＵ）からのサンプルを含まない。
【００６７】
ブロックベクトルは、一対のコーディング・ツリー・ブロック（ＣＴＢ）内のブロックを参照する２次元ベクトルである。イントラ・ブロック・コピー・モジュール３５０は、ネステッドループを使用してサーチを行うことにより、すべての妥当なブロックベクトルをテストしてもよい。しかし、参照ブロックを生成する際にイントラ・ブロック・コピー・モジュール３５０により、より速いサーチ方法が使用されてもよい。例えば、イントラ・ブロック・コピー・モジュール３５０は、現在のコーディングユニット（ＣＵ）に水平または垂直に整列したブロックベクトルをサーチすることにより、サーチの複雑性を減少させてもよい。別の例では、参照ブロックを生成するために、イントラ・ブロック・コピー・モジュール３５０により、水平に近いまたは垂直に近いブロックベクトルもまたサーチされてもよい。別の例では、イントラ・ブロック・コピー・モジュール３５０は、最終ブロックベクトルを生成するために、空間的にまばらな一連のブロックベクトルをテストし、まばらなブロックベクトルのうちの選択された１つのブロックベクトルの近傍において、絞り込みサーチを実行してもよい。
【００６８】
ブロックベクトルのエントロピーコーディングは、関係付けられたコストまたはレートを有する。ブロックベクトルをエントロピーコーディングする１つの方法は、動きベクトル差（すなわち、「ｍｖｄ＿ｃｏｄｉｎｇ」）シンタックス構造を再使用することである。動きベクトル差シンタックス構造は、２次元のサインベクトルの符号化を可能にするため、ブロックベクトルに適している。動きベクトル差シンタックス構造は、より小さな大きさのベクトルを、より大きな大きさのベクトルよりコンパクトに符号化する。結果的に、レート測定において、近くの参照ブロックの選択に対するバイアスが導入されることがある。
【００６９】
所定のブロックベクトルは、結果として、特定の歪みを有する特定の参照ブロックになる。ビデオ符号化器１１４によりテストされるブロックベクトルのうち、レート歪みトレードオフは、イントラ・ブロック・コピー・モードに対してどのブロックベクトルを適用すべきかを決定するために適用される。全レート歪みトレードオフは、イントラ・ブロック・コピー・モードに対する結果を、インター予測およびイントラ予測等の、他の予測方法に対する結果と比較してもよい。
【００７０】
予測ユニット（ＰＵ）は、イントラ予測方法、インター予測方法またはイントラ・ブロック・コピー方法のいずれかを使用して生成されてもよい。イントラ予測方法は、予測ユニット（ＰＵ）内の参照データサンプルを生成させるために、以前に復号された予測ユニット（ＰＵ）（すなわち、通常、予測ユニットの左および左の上）に隣り合うデータサンプルを利用する。イントラ予測の様々な方法が可能である。１つの構成では、３３方向のイントラ予測が可能である。計３５の可能なイントラ予測モードに対して、「ＤＣモード」および「プレーナーモード」がサポートされてもよい。
【００７１】
インター予測方法は、選択された参照フレームからのブロックを参照するために、動きベクトルを利用する。図３を参照して、動き推定モジュール３３８および動き補償モジュール３３４は、８分の１（１／８）のルマサンプルの正確さを有し、フレームデータ３１０中のフレーム間の動きの正確なモデリングを可能にする、動きベクトル３７４上で動作する。イントラ予測方法、インター予測方法またはイントラ・ブロック・コピー方法のいずれを使用すべきかに関する判定は、レート歪みトレードオフに従って、行われてもよい。結果の符号化されたビットストリーム３１２の所望のビットレートと、イントラ予測方法、インター予測方法またはイントラ・ブロック・コピー方法のいずれかにより導入される画像品質歪みの量との間で、レート歪みトレードオフが行われる。イントラ予測が使用される場合に、１つのイントラ予測モードは、レート歪みトレードオフにも従って、一連の可能なイントラ予測モードから選択される。マルチプレクサモジュール３４０は、イントラフレーム予測モジュール３３６からのイントラ予測された参照サンプル３７８、または、動き補償ブロック３３４からのインター予測された予測ユニット（ＰＵ）３７６、または、イントラ・ブロック・コピー・モジュール３５０からの参照ブロックを選択してもよい。
【００７２】
加算モジュール３４２は、デブロッキング・フィルタ・モジュール３３０に入力される和３７０を生成させる。デブロッキング・フィルタ・モジュール３３０は、ブロック境界に沿ったフィルタリングを実行し、メモリ２０６内で構成されたフレーム・バッファ・モジュール３３２に書き込まれるデブロッキングサンプル３７２を生成させる。フレーム・バッファ・モジュール３３２は、インター予測された予測ユニット（ＰＵ）に対する将来の参照のために、１以上の過去のフレームからのデータを保持するのに十分な容量を持つバッファである。
【００７３】
high efficiency video coding（ＨＥＶＣ）標準規格に対して、エントロピー符号化器３２４により生成される符号化されたビットストリーム３１２は、ネットワーク抽象化レイヤ（ＮＡＬ）ユニットに描写される。フレームは、１以上の「スライス」を使用して符号化され、各スライスは、１以上のコーディング・ツリー・ブロック（ＣＴＢ）を含む。「独立したスライスセグメント」と「依存性スライスセグメント」の、２つのタイプのタイルが定義される。一般に、フレームの各スライスは、１つのＮＡＬユニットに含まれる。エントロピー符号化器３２４は、コンテキスト適応バイナリ演算コーディング（ＣＡＢＡＣ）アルゴリズムを実行することにより、集合的に「シンタックス要素」と呼ばれる、変換係数３６４、イントラ予測モード３８０、動きベクトル（または動きベクトル差）および他のパラメータを、符号化されたビットストリーム３１２に符号化する。シンタックス要素は、共にグループ化されて、「シンタックス構造」になる。グルーピングは、階層構造を記述するための再帰を含んでもよい。動きベクトル等の、イントラ予測モードまたは整数値等の、序数値に加えて、四分木分割を示すため等に、シンタックス要素は、フラグも含む。
【００７４】
ビデオ符号化器１１４はまた、フレームを１以上の「タイル」に分割する。各タイルは、独立して符号化および復号されてもよいコーディング・ツリー・ブロック（ＣＴＢ）の長方形のセットであり、ビデオ符号化器１１４およびビデオ復号器１３４の並行実現を促進する。各タイル内で、コーディング・ツリー・ブロック（ＣＴＢは、ラスタ順でスキャンされ、ビデオ符号化器１１４またはビデオ復号器１３４のシングルコア（またはスレッド）実現は、ラスタスキャン順でタイルをスキャンする。ビデオ符号化器１１４およびビデオ復号器１３４の並行実現を可能にするために、タイル境界に沿ったブロックのイントラ予測は、近傍タイル中のブロックからのサンプルを使用しなくてもよい。このため、同じ値が存在する場合であっても、近傍サンプルは、イントラ予測に対して利用不能なものとしてマークされてもよい。
【００７５】
図４のビデオ復号器１３４は、high efficiency video coding（ＨＥＶＣ）ビデオ復号パイプラインを参照して説明されるが、他のビデオコーデックは、モジュール４２０〜４３６の処理ステージを用いてもよい。符号化されたビデオ情報はまた、メモリ２０６、ハードディスクドライブ２１０、ＣＤ−ＲＯＭ、ブルーレイディスクまたは他のコンピュータ読取可能記憶媒体から読み出されてもよい。あるいは、符号化されたビデオ情報は、通信ネットワーク２２０に接続されたサーバまたは無線周波数受信機等の、外部ソースから受信されてもよい。
【００７６】
図４に見られるように、符号化されたビットストリーム３１２等の、受信されたビデオデータは、ビデオ復号器１３４に入力される。符号化されたビットストリーム３１２は、メモリ２０６、ハードディスクドライブ２１０、ＣＤ−ＲＯＭ、ブルーレイディスク（登録商標）または他のコンピュータ読取可能記憶媒体から読み出されてもよい。あるいは、符号化されたビットストリーム３１２は、通信ネットワーク２２０に接続されたサーバまたは無線周波数受信機等の、外部ソースから受信されてもよい。符号化されたビットストリーム３１２は、復号される取得されたフレームデータを表す、符号化されたシンタックス要素を含む。
【００７７】
符号化されたビットストリーム３１２は、符号化されたビットストリーム３１２からシンタックス要素を抽出するエントロピー復号モジュール４２０に入力され、ビデオ復号器１３４中の他のブロックに、シンタックス要素の値を渡す。エントロピー復号モジュール４２０は、符号化されたビットストリーム３１２からシンタックス要素を復号するために、コンテキスト適応バイナリ演算コーディング（ＣＡＢＡＣ）を適用する。復号されたシンタックス要素は、ビデオ復号器１３４内でパラメータを再構築するために使用される。パラメータは、ゼロ以上の残差データアレイ４５０および動きベクトル４５２を含む。動きベクトル差は、符号化されたビットストリーム３１２から復号され、動きベクトル４５２は、復号された動きベクトル差から導出される。
【００７８】
ビデオ復号器１３４内で再構築されるパラメータはまた、予測モード４５４、量子化パラメータ４６８、変換サイズ４７０およびビット深度４７２を含む。変換サイズ４７０は、変換サイズ３８６に従って、ビデオ符号化器１１４により、符号化されたビットストリーム３１２に符号化される。ビット深度４７２は、ビット深度３９０に従って、ビデオ符号化器１１４により、符号化されたビットストリーム３１２に符号化される。量子化パラメータ４６８は、量子化パラメータ３８４に従って、ビデオ符号化器１１４により、符号化されたビットストリーム３１２に符号化される。このため、変換サイズ４７０は変換サイズ３８６に等しく、ビット深度４７２はビット深度３９０に等しく、量子化パラメータ４６８は量子化パラメータ３８４に等しい。
【００７９】
残差データアレイ４５０は、逆量子化モジュール４２１に渡され、動きベクトル４５２は動き補償モジュール４３４に渡され、予測モード４５４は、イントラフレーム予測モジュール４２６およびマルチプレクサ４２８に渡される。
【００８０】
図４に関して、逆量子化モジュール４２１は、変換係数の形で、再構築されたデータ４５５を作成するために、残差データアレイ４５０の残差データにおいて逆スケーリングを実行する。逆量子化モジュール４２１は、再構築されたデータ４５５を、逆変換モジュール４２２に出力する。逆変換モジュール４２２は、周波数ドメイン表現から空間ドメイン表現に再構築されたデータ４５５（すなわち、変換係数）をコンバートするために、「逆変換」を適用し、マルチプレクサモジュール４２３を介して残差サンプルアレイ４５６を出力する。逆変換モジュール４２２は、逆変換モジュール３２８として同じ動作を実行する。逆変換モジュール４２２は、ビット深度４７２に従ったビット深度を有する変換サイズ４７０に従いサイジングされた逆変換を実行するように構成されている。逆変換モジュール４２２により実行される変換は、high efficiency video coding（ＨＥＶＣ）標準規格と一致する、符号化されたビットストリーム３１２を復号するのに必要な、予め定められた一連の変換サイズから選択される。
【００８１】
動き補償モジュール４３４は、予測ユニット（ＰＵ）に対してインター予測された予測ユニット（ＰＵ）４６２を生成するために、メモリ２０６内で構成された、フレームバッファブロック４３２からの参照フレームデータ４６０と合成された、エントロピー復号モジュール４２０からの動きベクトル４５２を使用する。インター予測された予測ユニット（ＰＵ）４６２は、以前に復号されたフレームデータに基づく、復号されたフレームデータ出力の予測である。予測モード４５４が、現在の予測ユニット（ＰＵ）が、イントラ予測を使用してコーディングされたことを示すときに、イントラフレーム予測モジュール４２６は、予測ユニット（ＰＵ）に対するイントラ予測された予測ユニット（ＰＵ）４６４を生成させる。イントラ予測された予測ユニット（ＰＵ）４６４は、予測モード４５４によっても供給される予測ユニット（ＰＵ）および予測方向に空間的に近傍したデータサンプルを使用して、生成される。空間的に近傍したデータサンプルは、加算モジュール４２４から出力される、和４５８から得られる。
【００８２】
図４に見られるように、ビデオ復号器１３４のイントラ・ブロック・コピー・モジュール４３６は、現在および／または以前のコーディング・ツリー・ブロック（ＣＴＢ）からのサンプルのアレイをコピーすることにより、参照サンプルのブロックを生成する。参照サンプルのオフセットは、エントロピー復号器４２０により復号されるブロックベクトルを現在のコーディングユニット（ＣＵ）の位置に追加することにより算出される。マルチプレクサモジュール４２８は、現在の予測モード４５４に依存して、予測ユニット（ＰＵ）４６６に対するイントラ予測された予測ユニット（ＰＵ）４６４またはインター予測された予測ユニット（ＰＵ）４６２、あるいは、イントラ・ブロック・コピー・モジュール４３６からの参照ブロックを選択する。マルチプレクサモジュール４２８から出力される、予測ユニット（ＰＵ）４６６は、和４５８を生成するために、加算モジュール４２４により、逆スケーリングおよび変換モジュール４２２から、残差サンプルアレイ４５６に追加される。その後、和４５８は、デブロッキング・フィルタ・モジュール４３０、イントラフレーム予測モジュール４２６およびイントラ・ブロック・コピー・モジュール４３６の各々に入力される。デブロッキング・フィルタ・モジュール４３０は、視覚的なアーチファクトをスムーズにするために、変換ユニット（ＴＵ）境界等の、データブロック境界に沿ったフィルタリングを実行する。デブロッキング・フィルタ・モジュール４３０の出力は、メモリ２０６内に構成されるフレーム・バッファ・モジュール４３２に書き込まれる。フレーム・バッファ・モジュール４３２は、将来の参照のために、１以上の復号されたフレームを保持するのに十分な記憶装置を提供する。復号されたフレーム４１２はまた、ディスプレイデバイス２１４の形であってもよいディスプレイデバイス１３６等の、ディスプレイデバイスに対する、フレーム・バッファ・モジュール４３２からの出力である。
【００８３】
図５は、以下に説明するように、２つのタイルおよび３つのスライスセグメントに分割されたフレーム５００を示す概略的なブロック図である。
【００８４】
フレーム５００は、図５においてグリッドセルとして表される、コーディング・ツリー・ブロック（ＣＴＢのアレイを含む。フレーム５００は、図５中の点線５１６により分離される、２つのタイルに分割される。フレーム５００の３つのスライスは、独立したスライスセグメント５０２、５０６および５１２と、依存性スライスセグメント５０４、５０８、５１０および５１４を含む。依存性スライスセグメント５０４は、独立したスライスセグメント５０２に依存する。依存性スライスセグメント５０８および５１０は、独立したスライスセグメント５０６に依存する。依存性スライスセグメント５１４は、独立したスライスセグメント５１２に依存する。
【００８５】
フレーム５００のスライスへの分割は、線５２０等の、太線を使用して、図５中で表される。各スライスは、線５１８等の、図５中の点線で示されるような、独立したスライスセグメントとゼロ以上の依存性スライスセグメントとに分割される。従って、図５の例において、１つのスライスは、スライスセグメント５０２および５０４を含み、１つのスライスは、スライスセグメント５０６、５０８および５１０を含み、１つのスライスは、スライスセグメント５１２および５１４を含む。
【００８６】
フレーム５００中のコーディング・ツリー・ブロック（ＣＴＢ）のスキャニングは、第１のタイルがラスタ順でスキャンされるのに続き、第２のタイルがラスタ順でスキャンされるように、順序付けられている。イントラ予測された予測ユニット（ＰＵ）は、コーディング・ツリー・ブロック（ＣＴＢ）のトップ端または左端のいずれかまたは双方に整列されてもよい。このような場合では、イントラ予測に必要とされる近傍サンプルは、隣接コーディング・ツリー・ブロック（ＣＴＢ）に位置付けられていてもよい。隣接コーディング・ツリー・ブロック（ＣＴＢ）は、異なるタイルまたは異なるスライスに属していてもよい。このような場合では、近傍サンプルはアクセスされない。代わりに、デフォルトの値が使用される。デフォルトの値は、利用可能な他の近傍サンプルから導出されてもよい。一般に、各利用不能な近傍サンプルに対して、最も近い利用可能な近傍サンプル値が使用される。あるいは、デフォルトの値は、ビット深度により示唆されるハーフトーン値、すなわち、２〜ビット深度から１を引算した結果の乗数に等しく設定されてもよい。
【００８７】
図５に示すようなフレーム５００中のタイルの構成は、並行処理に利点がある。例えば、ビデオ符号化器１１４は、エントロピー符号化器３２４の複数のインスタンスを含んでもよく、ビデオ復号器１３４は、エントロピー復号器４２０の複数のインスタンスを含んでもよい。各タイルは、エントロピー符号化器３２４およびエントロピー復号器４２０の別個のインスタンスにより並行処理されてもよい。
【００８８】
図６（ａ）は、コーディング・ツリー・ブロック（ＣＴＢ）６００内の「Ｚ−スキャン」順の例を示す概略的なブロック図である。コーディング・ツリー・ブロック（ＣＴＢ）６００の階層分解の各レベルにおいて、「Ｚ」に似たスキャンが実行され、すなわち、左から右へ上側の２つの領域をスキャニングし、その後、左から右へ下側の２つの領域をスキャニングする。スキャンは、深度優先の方法で再帰的に適用される。例えば、現在の階層レベルにおける領域が、より低い階層レベルにおいてさらなる領域にサブ分割される場合に、現在の階層レベルにおける次の領域に対する処理の前に、より低い階層レベル内で、Ｚ−スキャンが適用される。さらにサブ分割されないコーディング・ツリー・ブロック（ＣＴＢ）の領域は、コーディングユニット（ＣＵ）を含む。図６（ａ）の例では、コーディング・ツリー・ブロック（ＣＴＢ）６００の左上にある４つのコーディングユニット（ＣＵ）が、Ｚ−スキャン順６２２でスキャンされ、図６（ａ）の例で現在処理されているコーディングユニット（ＣＵ）６２６に達する。コーディング・ツリー・ブロック（ＣＴＢ）６００の残りは、Ｚ−スキャン順６２４に従ってスキャンされる。コーディング・ツリー・ブロック（ＣＴＢ）６００中の以前に復号されたコーディングユニット（ＣＵ）からのサンプルは、イントラ予測に対して利用可能である。図６（ａ）中の斜線のハッチングにより表されるような、ビデオ復号器１３４によりまだ復号されていないコーディングユニット（ＣＵ）からのサンプルは、イントラ予測に対して利用可能ではない。このため、ビデオ符号化器１１４はまた、イントラ予測に対して利用可能でないものとして、まだ復号されていないサンプルを扱う。
【００８９】
図６（ｂ）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）内のコーディングユニット（ＣＵ）に対する近傍コーディング・ツリー・ブロック（ＣＴＢ）中のサンプルのブロックを参照する、ブロックベクトル６２４の例を示す概略的なブロック図である。近傍コーディング・ツリー・ブロック（ＣＴＢ）内の参照は、現在のコーディング・ツリー・ブロック（ＣＴＢ）中のコーディングユニット（ＣＵ）の垂直ポジションにより制限される。図６（ｂ）の例では、フレーム部６２０は、同一タイルおよび同一スライスに属する２つのコーディング・ツリー・ブロック（ＣＴＢ）を含む。２つのコーディング・ツリー・ブロック（ＣＴＢ）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）（すなわち、フレーム部６２０の右半分）および以前のコーディング・ツリー・ブロック（ＣＴＢ）（すなわち、フレーム部６２０の左半分）である。図６（ｂ）では、イントラ・ブロック・コピー予測は、コーディングユニット（ＣＵ）６２２に適用される。ブロックベクトル６２４は、コーディングユニット（ＣＵ）６２２の位置に対する参照ブロック６２６の位置を規定する。参照ブロック６２６は、サンプルにおいて実行されるループ内フィルタリング（例えば、デブロッキング）の前のサンプルから得られる。そのため、参照ブロックのすべての可能な位置におけるサンプルを提供するために、デブロッキング前の現在のコーディング・ツリー・ブロック（ＣＴＢ）および以前のコーディング・ツリー・ブロック（ＣＴＢ）のサンプルのバッファリングが必要とされる。
【００９０】
参照サンプルにおいて実施されるループ内フィルタリング前の参照サンプルの使用は、イントラ予測プロセスに一致する。イントラ予測プロセスにおいて、近傍サンプルは、デブロッキングプロセスが、現在のコーディングユニット（ＣＵ）内のサンプルへの依存をもたらすことから、必ず、デブロッキングの前に使用され、まだ利用可能ではない。ブロックベクトル６２４は、コーディングユニット（ＣＵ）６２２の位置に対して、左向き（水平）の転置および上向き（垂直）の転置として、参照ブロック６２６の位置を規定する２つの正の整数値（ｘ，ｙ）を含む。このため、ビデオ復号器１３４によりまだ復号されていない、現在のコーディング・ツリー・ブロック（ＣＴＢ）の一部（例えば、６３０）への依存をもたらすブロックベクトルを規定することはできない。例えば、現在のコーディング・ツリー・ブロック（ＣＴＢ）の左上象限におけるコーディングユニット（ＣＵ）６２２のポジションを仮定すると、記載された座標スキームでは、参照ブロックとして現在のコーディング・ツリー・ブロック（ＣＴＢ）の下半分（例えば、６３０）が使用されない。現在のコーディング・ツリー・ブロック（ＣＴＢ）の下半分（例えば、６３０）を使用しないことはまた、以前のコーディング・ツリー・ブロック（ＣＴＢ）の下半分（例えば、６２８）も使用しない。
【００９１】
ブロックベクトル６２４は、コーディングユニット（ＣＵ）６２２の左上のサンプル位置に対する参照ブロック６２６の左上のサンプル位置を規定する。このため、結果として、参照ブロックと現在のコーディングユニット（ＣＵ）とのオーバーラップになるブロックベクトルは禁止される。例えば、１６×１６のコーディングユニット（ＣＵ）サイズでは、（−１６，０）、（０，−１６）、（−１７，−１８）等のブロックベクトルが可能であるのに対し、（０，０）、（−１５，−１５）、（−８，０）等のブロックベクトルは禁止される。一般に、水平および垂直の転置の双方が、コーディングユニット（ＣＵ）の幅および高さより小さいブロックベクトルは禁止される。さらに、以前のコーディング・ツリー・ブロック（ＣＴＢ）中の参照ブロック位置に対する制限は、イントラ・ブロック・コピー・モジュール３５０により提供される利用可能な符号化効率の改善の低下につながる。以前のコーディング・ツリー・ブロック（ＣＴＢ）の全体が利用可能なとき、以前のコーディング・ツリー・ブロック（ＣＴＢ）において参照ブロック位置がどこにあってもよいように制限を緩和することにより、符号化効率は改善する。
【００９２】
図７（ａ）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）内のコーディングユニット（ＣＵ）に対する近傍コーディング・ツリー・ブロック（ＣＴＢ）中のサンプルのブロックを参照する、ブロックベクトル７０４の例を示す概略的なブロック図である。近傍コーディング・ツリー・ブロック（ＣＴＢ）内の参照は、現在のコーディング・ツリー・ブロック（ＣＴＢ）中のコーディングユニット（ＣＵ）の垂直ポジションにより制限されない。図６（ｂ）に関して、図７（ａ）に示すフレーム部７００の例としては、現在のコーディング・ツリー・ブロック（ＣＴＢ）および以前のコーディング・ツリー・ブロック（ＣＴＢ）等がある。イントラ・ブロック・コピー予測は、コーディングユニット（ＣＵ）７０２に適用される。ブロックベクトル７０４は、フレーム部７００内での参照ブロック７０６の位置を規定する。図６（ｂ）に関して、参照ブロックが、まだ復号されていない現在のコーディング・ツリー・ブロック（ＣＴＢ）の任意の一部（例えば、７０８）とオーバーラップする場合に、ブロックベクトル７０６による参照ブロックの配置が禁止される。ブロックベクトル７０６はまた、参照ブロックが現在のコーディングユニット（ＣＵ）７０２にオーバーラップする場合に、参照ブロックによる配置が禁止される。図６（ｂ）と対照的に、ブロックベクトル７０４は、ｘ軸およびｙ軸の双方における正および負の転置を規定してもよい。
【００９３】
図７（ｂ）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）および近傍コーディング・ツリー・ブロック（ＣＴＢ）の双方にわたるサンプルのブロックを参照する、ブロックベクトル７２４の例を示す概略的なブロック図である。図７（ｂ）の例を参照するブロックベクトルは、参照サンプルのブロックの右上隅に対するものである。図７（ａ）に関して、フレーム部７２０は２つのコーディング・ツリー・ブロック（ＣＴＢ）を含む。ブロックベクトル７２４は、図７（ｂ）の例で現在処理されているコーディングユニット（ＣＵ）７２２に対する参照ブロック７２６の位置を規定する。図７（ａ）に関して、参照ブロック７２６は、コーディングユニット（ＣＵ）７２２またはまだ復号されていな現在のコーディング・ツリー・ブロック（ＣＴＢ）の一部（例えば、７２８）にオーバーラップしないことがある。図７（ａ）とは対照的に、ブロックベクトル７２４は、参照ブロック７２６の右上の位置を規定する。例えば、（０，０）のブロックベクトルは、結果として、コーディングユニット（ＣＵ）に隣接する参照ブロックになる。コーディングユニット（ＣＵ）７２２の幅または高さを表す、可変の「ｃｕ＿ｓｉｚｅ」が定義されてもよい。このような構成では、参照ブロック７２６の位置は、コーディングユニット（ＣＵ）７２２の位置、ブロックベクトル７２４および（−ｃｕ＿ｓｉｚｅ，０）として定義されるオフセットベクトルのベクトル追加により規定されてもよい。例えば、（０，−ｃｕ＿ｓｉｚｅ）または（−ｃｕ＿ｓｉｚｅ，−ｃｕ＿ｓｉｚｅ）のような、他のオフセットベクトルもまた可能である。
【００９４】
図８（ａ）は、フレーム部８００内の現在のコーディング・ツリー・ブロック（ＣＴＢ）および近傍コーディング・ツリー・ブロック（ＣＴＢ）８１０の双方にわたるサンプルのブロックを参照する、ブロックベクトル８０４の例を示す概略的なブロック図である。コーディング・ツリー・ブロック（ＣＴＢ）８１０は、（例えば、現在のコーディング・ツリー・ブロック（ＣＴＢ）に対して異なるタイルに属するため）利用不能なものとしてマークされる。このため、参照ブロック８０６は、現在のコーディング・ツリー・ブロック（ＣＴＢ）内のサンプルのみを使用するように制限される。ブロックベクトル８０４は、コーディングユニット（ＣＵ）８０２の位置に対する参照ブロック８０６の位置を規定する。ブロックベクトル８０４は、コーディング・ツリー・ブロック（ＣＴＢ）８１０とオーバーラップする参照ブロックを規定する。コーディング・ツリー・ブロック（ＣＴＢ）８１０からのサンプルは、利用不能なものとしてマークされるので、参照ブロック８０６のコーディング・ツリー・ブロック（ＣＴＢ）８１０の一部にポピュレートするために使用される。１つの構成では、近傍サンプルがイントラ予測に対して利用可能でないときに使用されるデフォルトの値等の、デフォルトの値は、参照ブロック８０６のオーバーラップ部にポピュレートするために使用されてもよい。例えば、ビデオ符号化器１１４は、８のビット深度に対して構成されるときに、使用されるデフォルトの値は、１２８であり、１０のビット深度に対して構成されるときに、使用されるデフォルトの値は、５１２である。参照ブロック８０６のオーバーラップ部にポピュレートする他の方法も可能である。例えば、ビデオ符号化器１１４の１つの構成では、非オーバーラップ部の端にある（すなわち、現在のコーディング・ツリー・ブロック（ＣＴＢ）内の）サンプル値は、参照ブロック８０６のオーバーラップ部にポピュレートするために使用されてもよい。非オーバーラップ部の端にあるサンプル値は、現在のコーディング・ツリー・ブロック（ＣＴＢ）に従って、参照ブロック８０６内のサンプルの座標をクリッピングすることにより使用されてもよく、従って、コーディング・ツリー・ブロック（ＣＴＢ）８１０に対するアクセスを禁止する。
【００９５】
図８（ｂ）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）内のサンプルのブロックを参照する、調節されたブロックベクトル８２４の例を示す概略的なブロック図である。図８（ｂ）の例では、調節されたブロックベクトル８２４は、利用不能なものとしてマークされない近傍コーディング・ツリー・ブロック（ＣＴＢ）８３０からのサンプルを何ら参照しない。フレーム部８２０は、参照ブロック８２６が得られる２つのコーディング・ツリー・ブロック（ＣＴＢ）を含む。コーディング・ツリー・ブロック（ＣＴＢ）８３０は、（例えば、異なるタイルに属しているため）参照用に利用不能なものとしてマークされていることから、参照ブロック８２６は、参照のためにコーディング・ツリー・ブロック（ＣＴＢ）８３０からのサンプルを使用しないことがある。図８（ｂ）の例では、クリッピングされたブロックベクトル８２４は、コーディングユニット（ＣＵ）８２２に対する参照ブロック８２６の位置を規定する。ビデオ符号化器１１４およびビデオ復号器１３４の１つの構成では、クリッピングされたブロックベクトル８２４は、例えば、図８（ａ）のブロックベクトル８０４に等しい、符号化されたビットストリーム３１２に存在するブロックベクトルから導出されてもよい。符号化されたビットストリーム３１２に存在するブロックベクトルからのクリッピングされたブロックベクトル８２４を導出する構成では、クリッピング動作は、参照ブロック８２６が、利用不能なコーディング・ツリー・ブロック（ＣＴＢ）８３０にオーバーラップするのを妨げるのに使用されてもよい。
【００９６】
図８（ｃ）は、参照されるサンプルのうちのいくつかが、インター予測を使用して復号されたサンプルのブロック８４６を参照する、ブロックベクトル８４４の例を示す概略的なブロック図である。フレーム部８４０は、参照ブロック８４６が得られる２つのコーディング・ツリー・ブロック（ＣＴＢ）を含む。図８（ｃ）の例では、ビデオ符号化器１１４およびビデオ復号器１３４は、「制約付きイントラ予測」を使用するように構成される。制約付きイントラ予測は、イントラ予測プロセスに対する近傍サンプルが、他のイントラ予測された（または、イントラ・ブロック・コピーされた）コーディングユニット（ＣＵ）からのみ得られてもよいモードである。このため、インター予測を使用して予測されたコーディングユニット（ＣＵ）は、制約付きイントラ予測モードが有効である場合、イントラ予測のための近傍サンプルの提供に使用されないことがある。インター予測されたコーディングユニット（ＣＵ）は、参照用の以前のフレームに依存する。場合によっては、（例えば、通信チャネル１２０中の送信エラーのため）以前のフレームは、ビデオ復号器１３４において利用可能ではないかもしれない。以前のフレームがビデオ復号器１３４において利用可能である場合では、意図した参照ブロックが利用可能とならないように、他の何らかの情報がインター予測されたコーディングユニット（ＣＵ）に追加される。制約付きイントラ予測は、欠落フレームに起因するこのようなエラーデータが、イントラ予測されたコーディングユニット（ＣＵ）に伝搬するのを防ぐことにより、誤り耐性を改善する。従って、インター予測されたコーディングユニット（ＣＵ）は、制約付きイントラ予測が有効にされるときに、イントラ予測されたコーディングユニット（ＣＵ）により、参照用に利用可能ではないと考えられる。イントラ・ブロック・コピー・モードは、インター予測されたコーディングユニット（ＣＵ）を、参照用に利用不能なものとしてみなすことにより、同様の制約を有する。コーディングユニット（ＣＵ）に対する参照サンプルブロックを生成する方法１７００を、図１７（ａ）を参照して以下に説明する。
【００９７】
イントラ・ブロック・コピー・モードを使用して、コーディングユニット（ＣＵ）に対するコーディングユニット（ＣＵ）シンタックス構造（例えば、９０２、図９参照）を符号化する方法１０００を、図１０を参照して以下に説明する。方法１０００を使用したビデオ符号化器１１４の構成では、イントラ・ブロック・コピー・モードのためのインター予測されたコーディングユニット（ＣＵ）からの任意のサンプルへのアクセスにつながるブロックベクトルを禁止してもよい。方法１０００を使用した構成では、標準的制限が使用されてもよい。その標準的制限は、インター予測されたブロックからのサンプルを必要とする参照ブロックとなる、符号化されたビットストリーム３１２にイントラ・ブロック・ベクトルが存在しないことを述べている。方法１０００を使用した構成では、ブロック探索ステップ１００２は、不適合なビットストリームに結果としてなるこのようなブロックベクトルのサーチを実行しない。ビデオ復号器１３４は、もしこの状況が生じるとしたら、定義されていない方法で動作してもよい。その理由は、インター予測されたブロックからのサンプルを必要とする参照ブロックに結果としてなるビットストリームは、「不適合な」ビットストリームであり、復号器は、このようなビットストリームを復号するのに必要とされないからである。図８（ｃ）のブロックベクトル８４６は、不適合なビットストリームに結果としてなるブロックベクトルの例である。
【００９８】
ビデオ符号化器１１４は、不適合なビットストリームを生成しないように構成される。このため、ビデオ符号化器１１４の構成は、このような不適合なブロックベクトルのサーチを妨げるために、イントラ・ブロック・コピー・モジュール３５０に論理を含めてもよい。ビデオ符号化器１１４の１つの構成では、イントラ・ブロック・コピー・モジュール３５０は、（レート歪みの意味で）テストするための多くの異なるブロックベクトルを生成する。不適合なビットストリームに結果としてなる任意のブロックベクトルのテストは中止される。
【００９９】
あるいは、ビデオ符号化器１１４の１つの構成では、デフォルトのサンプル値は、インター予測されたコーディングユニット（ＣＵ）とオーバーラップする参照ブロックの任意の一部に対するサンプル値を提供するために使用されてもよい。図８（ｃ）の例では、コーディングユニット（ＣＵ）８４８は、インター予測されたコーディングユニット（ＣＵ）であり、制約付きイントラ予測は、コーディングユニット（ＣＵ）８４８を処理するためにビデオ符号化器１１４により使用される。従って、コーディングユニット（ＣＵ）８４８とオーバーラップする参照ブロック８４６の一部は、コーディングユニット（ＣＵ）８４８から得られるサンプル値を使用する代わりに、デフォルトのサンプル値を使用する。８×８の最小のコーディングユニット（ＳＣＵ）サイズでは、コーディング・ツリー・ブロック（ＣＴＢ）の予測モードは、どのコーディングユニット（ＣＵ）がインター予測されたかを示すために８×８アレイのフラグを必要とする。このような構成では、イントラ・ブロック・コピー・ステップ１０１８およびイントラ・ブロック・コピー・ステップ１１４０は、デフォルトのサンプル値とのオーバーラップ部（すなわち、インター予測されたコーディングユニット（ＣＵ）とのオーバーラップ）にポピュレートするように変更される。
【０１００】
図８（ｄ）は、参照ブロック８６６が、現在のコーディングユニット（ＣＵ）８６２内のサンプルを含む、サンプルのブロックを参照する、ブロックベクトル８６４の例を示す概略的なブロック図である。フレーム部８６０は、参照ブロック８６６が得られる２つのコーディング・ツリー・ブロック（ＣＴＢ）を含む。現在のコーディングユニット（ＣＵ）内のサンプルは、まだ決定されていないので、現在のコーディングユニット（ＣＵ）内のサンプルは、参照ブロック８６６の一部として使用できない。
【０１０１】
１つの構成では、利用不能なサンプル値の代わりに、デフォルトのサンプル値が提供されてもよい。デフォルトのサンプル値は、近傍サンプルが、参照に利用不能なものとしてマークされるときのイントラ予測のためのデフォルトのサンプル値と同様の方法で導出されてもよい。このような構成では、イントラ・ブロック・コピー・ステップ１０１８およびイントラ・ブロック・コピー・ステップ１１４０は、デフォルトのサンプル値とのオーバーラップ部（すなわち、現在のコーディングユニット（ＣＵ）とのオーバーラップ）にポピュレートするように変更される。図９は、ビットストリーム３１２の一部分９００内のコーディングユニット（ＣＵ）シンタックス構造９０２を示す概略的なブロック図である。符号化されたビットストリーム３１２は、例えば、スライス、フレーム、依存性スライスセグメント、独立したスライスセグメント、または、タイルに分割される、シンタックス要素のシーケンスを含む。シンタックス要素は、階層的な「シンタックス構造」に編成される。１つのこのようなシンタックス構造は、コーディングユニット（ＣＵ）シンタックス構造９０２である。コーディングユニット（ＣＵ）シンタックス構造のインスタンスは、スライス、タイルまたはフレームで、各コーディングユニット（ＣＵ）に対して存在する。コーディングユニット（ＣＵ）シンタックス構造のインスタンスのコンテキストは、特定のシンタックス要素が存在するのを妨げる。例えば、インター予測に関連するシンタックス要素は、イントラ予測のみを使用することが示されるスライス内のコーディングユニット（ＣＵ）シンタックス構造に存在しない。コーディングユニット（ＣＵ）シンタックス構造９０２は、イントラ・ブロック・コピー機能が利用可能であり、使用中の場合に使用されてもよい。
【０１０２】
図９に示すように、コーディングユニット（ＣＵ）シンタックス構造９０２は、他のシンタックス要素およびシンタックス構造（例えば、９０４〜９１８）を含む。トランスクアント（ｔｒａｎｓｑｕａｎｔ）・バイパス・フラグ９０４（「ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ」）は、コーディングユニット（ＣＵ）に対する「変換量子化バイパス」モードの使用をシグナリングする。トランスクアント・バイパス・フラグ９０４は、高レベルシンタックスに存在する「ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ」が真である場合に存在する。トランスクアント・バイパス・フラグ９０４は、イントラ・ブロック・コピーが有効にされるか否かに関係なくシグナリングされるため、イントラ・ブロック・コピーは、損失のないコーディングおよび損失のあるコーディングの双方の場合に適用されてもよい。
【０１０３】
スキップフラグ９０６（「ｃｕ＿ｓｋｉｐ＿ｆｌａｇ」）は、インター予測されてもよいスライスのコーディングユニット（ＣＵ）に対する符号化されたビットストリーム３１２に存在する。スキップフラグ９０６は、コーディングユニット（ＣＵ）が、インター予測された予測ユニット（ＰＵ）を含むこと、このコーディングユニット（ＣＵ）に関係付けられた予測ユニット（ＰＵ）に対する符号化されたビットストリーム３１２に残差または動きベクトル差が存在しないことをシグナリングする。この場合、予測ユニット（ＰＵ）シンタックス構造が含まれ、結果として、コーディングユニット（ＣＵ）に対する動きベクトルが導出される近傍予測ユニット（ＰＵ）を規定するために含まれる１つのシンタックス要素になってもよい。スキップフラグ９０６が、コーディングユニット（ＣＵ）のスキップの使用を示すときに、コーディングユニット（ＣＵ）シンタックス構造によりさらに含まれるシンタックス要素はない。このため、スキップフラグ９０６は、符号化されたビットストリーム３１２中のコーディングユニット（ＣＵ）を表すための効率的な手段を提供する。スキップフラグ９０６は、残差が必要とされない場合に使用可能である（すなわち、インター予測された参照ブロックは、フレームデータ３１０の対応する一部分に非常に近い、または、同一である）。コーディングユニット（ＣＵ）がスキップされないときに、コーディングユニット（ＣＵ）の構成をさらに規定するために、追加のシンタックス要素が、コーディングユニット（ＣＵ）シンタックス構造９０２により導入される。
【０１０４】
予測モードフラグ９０８（図９における「ＰＭＦ」または「ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ」）は、コーディングユニット（ＣＵ）に対するイントラ予測またはインター予測のいずれかの使用をシグナリングするために使用される。インター予測が利用可能でないスライスにおけるコーディングユニット（ＣＵ）に対して、予測モードフラグ９０８はシグナリングされない。予測モードフラグ９０８が、コーディングユニット（ＣＵ）が、イントラ予測を使用するように構成され、イントラ・ブロック・コピーのイネーブルフラグが真であることを示す場合に、イントラ・ブロック・コピー・フラグ９１０（または「ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ」）は、符号化されたビットストリーム３１２に存在する。
【０１０５】
イントラ・ブロック・コピー・フラグ９１０は、コーディングユニット（ＣＵ）に対するイントラ・ブロック・コピー・モードの使用をシグナリングする。イントラ・ブロック・コピー・フラグ９１０は、現在のサンプルが、現在のフレームの、以前に復号されたサンプルに基づくことを示すために使用される。
【０１０６】
イントラ・ブロック・コピーのイネーブルフラグは、高レベルシンタックスとして符号化される。コーディングユニット（ＣＵ）がイントラ・ブロック・コピー・モードを使用していない場合、および予測モードフラグのいずれか（または双方）が、コーディングユニット（ＣＵ）に対するインター予測の使用、あるいは、コーディングユニット（ＣＵ）サイズが最小コーディングユニット（ＳＣＵ）に等しいことを示す場合に、パーティションモード９１２シンタックス要素が符号化されたビットストリーム３１２に存在する。パーティションモード９１２は、１以上の予測ユニット（ＰＵ）へのコーディングユニット（ＣＵ）の分割を示す。複数の予測ユニット（ＰＵ）がコーディングユニット（ＣＵ）に含まれる場合に、パーティションモード９１２はまた、コーディングユニット（ＣＵ）内の予測ユニット（ＰＵ）の幾何学的構成を示す。例えば、コーディングユニット（ＣＵ）は、コーディングユニット（ＣＵ）の水平分割（例えば、「ＰＡＲＴ＿２Ｎ×Ｎ」）または垂直分割（例えば、ＰＡＲＴ＿Ｎ×２Ｎ）により、２つの長方形の予測ユニット（ＰＵ）を含んでもよく、これはパーティションモード９１２により規定される。単一の予測ユニット（ＰＵ）が、コーディングユニット（ＣＵ）全体を占める場合に、パーティションモードは「ＰＡＲＴ＿２Ｎ×２Ｎ」である。イントラ・ブロック・コピー・モードがコーディングユニット（ＣＵ）全体に適用されるため、パーティションモードは、シグナリングされず、「ＰＡＲＴ＿２Ｎ×２Ｎ」であると示唆される。イントラ・ブロック・コピー・モードが使用中である場合に、ブロックベクトル９１４として符号化されるブロックベクトルは、符号化されたビットストリーム３１２に存在する。
【０１０７】
ブロックベクトル９１４は、コーディングユニット（ＣＵ）に対する参照ブロックの位置を規定する。あるいは、ブロックベクトル９１４は、コーディングユニット（ＣＵ）が含まれるコーディング・ツリー・ブロック（ＣＴＢ）等の、他の何らかのエンティティに対する参照ブロックの位置を規定してもよい。ブロックベクトル９１４は、水平および垂直のオフセットを含み、既存のシンタックス構造を再利用してもよい。例えば、「動きベクトル差」シンタックス構造は、ブロックベクトルの水平および垂直オフセットを、符号化されたビットストリーム３１２に符号化するために使用されてもよい。
【０１０８】
ルート符号化されたブロックフラグ９１６（または「ｒｑｔ＿ｒｏｏｔ＿ｃｂｆ」）は、コーディングユニット（ＣＵ）内の残差データの存在をシグナリングする。フラグ９１６がゼロの値を有する場合に、残差データはコーディングユニット（ＣＵ）に存在しない。フラグ９１６が１の値を有する場合に、コーディングユニット（ＣＵ）中に少なくとも１つの有効な残差係数があり、従って、残差四分木（ＲＱＴ）がコーディングユニット（ＣＵ）に存在する。このような場合、変換ツリー９１８シンタックス構造は、残差四分木（ＲＱＴ）の最上の階層レベルを、符号化されたビットストリーム３１２に符号化する。コーディングユニット（ＣＵ）の残差四分木階層に従って、変換ツリーシンタックス構造および変換ユニットシンタックス構造の追加のインスタンスが、変換ツリー９１８シンタックス構造に存在する。
【０１０９】
イントラ・ブロック・コピー・モードを使用して、コーディングユニット（ＣＵ）に対するコーディングユニット（ＣＵ）シンタックス構造（例えば、９０２）を符号化する方法１０００をここで説明する。方法１０００は、ビデオ符号化器１１４を実現するソフトウェアコードモジュールのうちの１以上として実現されてもよく、ソフトウェアコードモジュールは、ハードディスクドライブ２１０に常駐し、プロセッサ２０５によりソフトウェアコードモジュールの実行が制御される。方法１０００は、図９のコーディングユニット（ＣＵ）シンタックス構造９００を、符号化されたビットストリーム３１２に符号化するために、ビデオ符号化器１１４により使用されてもよい。
【０１１０】
方法１０００は、ブロック・サーチ・ステップ１００２において開始し、ブロック・サーチ・ステップ１００２において、プロセッサ２０５は、現在および／または以前のコーディング・ツリー・ブロック（ＣＴＢ）内で参照ブロックをサーチするために使用される。１以上のブロックベクトルは、ステップ１００２においてテストされ、コーディング・ツリー・ブロック（ＣＴＢ）と再構築されたサンプルデータとの間の一致は、歪みを測定することにより測定される。ステップ１００２においてはまた、符号化されたビットストリーム３１２にブロックベクトルをコーディングするコストが、符号化されたビットストリーム３１２のビットレートに基づいて測定される。テストされたブロックベクトルのうち、ビデオ符号化器１１４によるブロックベクトルは、決定されたビットレートおよび歪みに基づいて、ビデオ符号化器１１４による使用のために選択される。選択されたブロックベクトルは、メモリ２０６に記憶されてもよい。上述したように、任意の適切なサーチアルゴリズムが、ステップ１００２においてブロックベクトルを選択するために使用されてもよい。すべての可能なブロックベクトルの完全なサーチが実行されてもよい。しかし、完全なサーチを実行する複雑性は、例えば、ビデオ符号化器１１４のリアルタイム実現にとって、通常は許容できない。現在のコーディングユニット（ＣＵ）に対する水平または垂直の（あるいは水平に近いおよび垂直に近い）参照ブロックに対するサーチ等の、他のサーチ方法が使用されてもよい。
【０１１１】
コーディング・ユニット・トランスクアント・バイパス・フラグ符号化ステップ１００４において、エントロピー符号化器３２０は、プロセッサ２０５の実行下で、コーディング・ユニット・トランスクアント・バイパス・フラグ（例えば、９０４）を、メモリ２０６に記憶されてもよい符号化されたビットストリーム３１２に符号化する。トランスクアント・バイパス・フラグは、コーディングユニット（ＣＵ）の損失のないコーディングが実行されるときに、１の値を有し、コーディングユニット（ＣＵ）の損失のあるコーディングが実行されるときに、０の値を有する。
【０１１２】
コーディング・ユニット・スキップ・フラグ符号化ステップ１００６において、エントロピー符号化器３２０は、プロセッサ２０５の実行下で、スキップフラグ（例えば、９０６）を、符号化されたビットストリーム３１２に符号化する。スキップフラグは、コーディングユニット（ＣＵ）に対する残差および動きベクトル差のコーディングをスキップするかどうかをシグナリングする。コーディングユニット（ＣＵ）に対する残差および動きベクトル差のコーディングがスキップされる場合、コーディングユニット（ＣＵ）に対する動きベクトルは、以前の動きベクトルから（例えば、現在のコーディングユニット（ＣＵ）に隣接するブロックから）導出される。また、スキップされたコーディングユニット（ＣＵ）に対する符号化されたビットストリーム中に残差は存在しない。
【０１１３】
ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号化ステップ１００８において、エントロピー符号化器３２０は、プロセッサ２０５の実行下で、コーディングユニット（ＣＵ）に対する予測モードフラグ（すなわち、ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ）に、予測モード（例えば、９０８）を符号化し、予測モードフラグをメモリ２０６に記憶する。一般に、ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇは、コーディングユニット（ＣＵ）に対するイントラ予測モード（すなわち、「ＭＯＤＥ＿ＩＮＴＲＡ」）およびインター予測モード（すなわち、「ＭＯＤＥ＿ＩＮＴＥＲ」）のうちの１つを示す。イントラ・ブロック・コピー・モードが使用中であるときに、ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇは、「ＭＯＤＥ＿ＩＮＴＲＡ」に設定されてもよいが、コーディングユニット（ＣＵ）の予測モードは「ＭＯＤＥ＿ＩＮＴＲＡＢＣ」であってもよい。その後、予測モード・テスト・ステップ１００９において、プロセッサ２０５は、コーディングユニット（ＣＵ）に対する予測モードをテストする。予測モードがインター予測である場合に、制御は、ｍｖｄ＿ｃｏｄｉｎｇ符号化ステップ１０１２に進む。この場合、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、符号化されたビットストリーム３１２に符号化されず、結果的に、符号化効率の改善になる。そうでなければ、制御は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号化ステップ１０１０に進む。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号化ステップ１０１０において、エントロピー符号化器３２０は、プロセッサ２０５の実行下で、イントラ・ブロック・コピー・フラグ（すなわち、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ）（例えば、９１０）を、符号化されたビットストリーム３１２に符号化する。
【０１１４】
ｍｖｄ＿ｃｏｄｉｎｇ符号化ステップ１０１２において、エントロピー符号化器３２０は、プロセッサ２０５の実行下で、動きベクトル差のコーディングのために使用される動きベクトル差（すなわち、「ｍｖｄ＿ｃｏｄｉｎｇ」）シンタックス構造を使用して、ブロックベクトルを、符号化されたビットストリーム３１２に符号化する。ｒｏｏｔ  ｃｂｆ符号化ステップ１０１４において、エントロピー符号化器３２０は、プロセッサ２０５の実行下で、ルート符号化ブロックフラグ（すなわち、ｒｏｏｔ＿ｃｂｆフラグ）を、符号化されたビットストリーム３１２に符号化する。ｒｏｏｔ＿ｃｂｆフラグは、コーディングユニット（ＣＵ）の残差四分木（ＲＱＴ）中の（すなわち、少なくとも１つの有効な残差係数を有する）少なくとも１つの変換の存在をシグナリングする。
【０１１５】
その後、変換ツリー符号化ステップ１０１６において、エントロピー符号化器３２０は、プロセッサ２０５の実行下で、ルート符号化ブロックフラグに依存して、コーディングユニット（ＣＵ）に対する変換ツリー（すなわち、残差四分木（ＲＱＴ））を符号化する。ルート符号化ブロックフラグ（すなわち、ｒｏｏｔ＿ｃｂｆフラグ）が、残差四分木（ＲＱＴ）中の少なくとも１つの変換の存在が示した場合に、ステップ１０１６が実行される。
【０１１６】
イントラ・ブロック・コピー・ステップ１０１８において、ステップ１００２において選択されたブロックベクトルを使用して、参照ブロックが生成される。参照ブロックは、サンプルのアレイをコピーすることにより生成される。サンプルのアレイは、コーディングユニット（ＣＵ）サイズに対して等しいサイズである。参照サンプルアレイの位置は、現在のコーディングユニット（ＣＵ）に対する、ブロックベクトルに従ったオフセットである。参照サンプルは、ループ内フィルタリング前に得られ、従って、サンプル３７０から得られる。ステップ１０１８において生成される参照ブロックは、プロセッサ２０５によりメモリ２０６に記憶されてもよい。
【０１１７】
方法１０００は、再構築ステップ１０２０において完結し、再構築ステップ１０２０において、加算モジュール３４２が、再構築されたブロックを決定するために（すなわち、サンプル３７０の一部として）、ステップ１０１８において生成された参照ブロックを、残差に追加する。マルチプレクサモジュール３４０により、プロセッサ２０５の実行下で、現在のコーディングユニット（ＣＵ）に対して使用中のイントラ・ブロック・コピー・モードとして、参照ブロックが選択される。
【０１１８】
図１１は、符号化されたビットストリーム３１２から、図９のコーディングユニット（ＣＵ）シンタックス構造９０２を復号する方法１１００を示す概略的なフロー図である。方法１０００は、ビデオ復号器１３４を実現するソフトウェアコードモジュールのうちの１以上として実現されてもよく、ソフトウェアコードモジュールは、ハードディスクドライブ２１０に常駐し、プロセッサ２０５によりソフトウェアコードモジュールの実行が制御される。方法１１００は、例えば、ビデオ復号器１３４が、コーディングユニット（ＣＵ）に関係付けられるシンタックス要素を構文解析するときに、ビデオ復号器１３４により実行されてもよい。
【０１１９】
方法１１００は、シンタックス要素の復号により以前に導出された値を有する変数をテストする。シンタックス要素が復号されない場合、変数のうちの１つは、一般に、「無効」状態を示すデフォルトの値を有する。方法１１００は、トランスクアント・バイパス・イネーブル・テスト・ステップ１１０２において開始し、トランスクアント・バイパス・イネーブル・テスト・ステップ１１０２において、以前に復号されたフラグ値（例えば、ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ）をチェックすることにより、トランスクアント・バイパス・モードがコーディングユニット（ＣＵ）に対して利用可能か否かをテストするために、プロセッサ２０５が使用される。トランスクアント・バイパス・モードが利用可能である場合に、制御は、ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ（例えば、「ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ」）復号ステップ１１０４に進む。そうでなければ、制御は、スライス・タイプ・テスト・ステップ１１０６に進み、トランスクアント・バイパス・モードは使用しないよう示唆される。
【０１２０】
ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ復号ステップ１１０４において、エントロピー復号器４２０は、プロセッサ２０５の実行下で、符号化されたビットストリーム３１２からのフラグ（すなわち、「ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ」）を復号する。ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇは、コーディングユニット（ＣＵ）がトランスクアント・バイパス・モードを使用するかどうかを示す。このため、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇは、コーディングユニット（ＣＵ）と配列されたフレームデータ３１０の一部を損失なく表すことができる。
【０１２１】
スライス・タイプ・テスト・ステップ１１０６において、プロセッサ２０５は、コーディングユニット（ＣＵ）がその中に存在するスライスが、イントラ予測のみをサポートするのか（すなわち、「ｓｌｉｃｅ＿ｔｙｐｅ＝＝Ｉ」）、または、イントラ予測およびインター予測の双方をサポートする（すなわち、「ｓｌｉｃｅ＿ｔｙｐｅ！＝Ｉ」）かどうかを決定するために使用される。イントラ予測が唯一の利用可能な予測メカニズムである場合は、制御は、ｃｕ＿ｓｋｉｐ＿ｆｌａｇテストステップ１１１０に進む。そうでなければ、制御は、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ復号ステップ１１０８に進む。
【０１２２】
ｃｕ＿ｓｋｉｐ＿ｆｌａｇ復号ステップ１１０８において、エントロピー復号モジュール４２０は、プロセッサ２０５の実行下で、符号化されたビットストリーム３１２からのスキップフラグ（すなわち、「ｃｕ＿ｓｋｉｐ＿ｆｌａｇ」）を復号する。スキップフラグは、コーディングユニット（ＣＵ）が「スキップモード」を使用して符号化されるかどうかを示す。「スキップモード」において、動きベクトル差または残差情報は符号化されたビットストリーム３１２に存在しない。
【０１２３】
その後、ｃｕ＿ｓｋｉｐ＿ｆｌａｇテストステップ１１１０において、プロセッサ２０５は、スキップフラグ、ｃｕ＿ｓｋｉｐ＿ｆｌａｇの値をテストするために使用される。スキップフラグが真である場合に、制御は予測ユニットステップ１１１２に進む。そうでなければ、制御は、スライス・タイプ・テスト１１１４に進む。
【０１２４】
予測ユニットステップ１１１２において、コーディングユニット（ＣＵ）は、「スキップモード」を使用するためにプロセッサ２０５により構成される。スキップモードにおいて、動きベクトル差または残差情報は符号化されたビットストリーム３１２から復号されない。動きベクトルは、１以上の近傍ブロックの動きベクトルから導出される。動きベクトルから、動き補償モジュール４３４により参照サンプルのブロックが生成される。このコーディングユニット（ＣＵ）に対する残差情報がないときに、逆量子化モジュール４２１および逆変換モジュール４２２はインアクティブである。参照サンプルは、デブロッカーモジュール４３０によりデブロッキングされ、結果のサンプルは、フレーム・バッファ・モジュール４３２に記憶される。スライス・タイプ・テスト・ステップ１１１４において、プロセッサ２０５は、コーディングユニット（ＣＵ）がその中に存在するスライスが、イントラ予測のみをサポートするのか（すなわち、「ｓｌｉｃｅ＿ｔｙｐｅ＝＝Ｉ」）、または、イントラ予測およびインター予測の双方をサポートする（すなわち、「ｓｌｉｃｅ＿ｔｙｐｅ！＝Ｉ」）かどうかを決定するために使用される。イントラ予測が唯一の利用可能な予測メカニズムである場合は、制御は、予測モード・テスト・ステップ１１１７に進む。そうでなければ、制御は、予測モードフラグ復号ステップ１１１６に進む。
【０１２５】
予測モード・フラグ・ステップ１１１６において、エントロピー復号器４２０は、プロセッサ２０５の実行下で、コーディングユニット（ＣＵ）に対する予測モードを決定するのに使用するために、符号化されたビットストリーム３１２から予測モードフラグを復号する。予測モードフラグは、コーディングユニット（ＣＵ）がイントラ予測（すなわち、「ＭＯＤＥ＿ＩＮＴＲＡ」）またはインター予測（すなわち、「ＭＯＤＥ＿ＩＮＴＥＲ」）を使用するかどうかを示す。予測モード・テスト・ステップ１１１７において、プロセッサ２０５は、コーディングユニット（ＣＵ）の予測モードがイントラ予測（すなわち、「ＭＯＤＥ＿ＩＮＴＲＡ」）であるかどうかを決定するために使用される。コーディングユニット（ＣＵ）の予測モードがイントラ予測（すなわち、「ＭＯＤＥ＿ＩＮＴＲＡ」）である場合に、制御は、ｉｎｔｒａ＿ｂｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇテストステップ１１１８に進む。そうでなければ、制御は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇテストステップ１１２２に進む。
【０１２６】
ｉｎｔｒａ＿ｂｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇテストステップ１１１８において、プロセッサ２０５は、フラグ値（例えば、シーケンスパラメータセットからの「ｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇ」）をチェックすることにより、コーディングユニット（ＣＵ）において使用するためにイントラ・ブロック・コピー・モードが利用可能であるかどうかを決定するために使用される。ステップ１１１８においてチェックされたフラグ値は、「高レベルシンタックス」の一部として、エントロピー復号モジュール４２０により、符号化されたビットストリーム３１２から以前に復号された。イントラ・ブロック・コピー・モードが利用可能である場合に、制御は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ復号ステップ１１２０に進む。そうでなければ、制御は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇテストステップ１１２２に進む。
【０１２７】
その後、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ復号ステップ１１２０において、エントロピー復号器４２０は、プロセッサ２０５の実行下で、コーディングユニット（ＣＵ）に対するイントラ・ブロック・コピー・モードの使用をシグナリングする符号化されたビットストリーム３１２からのフラグ（例えば、「ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ」）を復号するために使用される。イントラ・ブロック・コピー・フラグ（すなわち、「ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ」）は、決定された予測モードがイントラ予測である場合に、符号化されたビットストリーム３１２から復号される。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ復号ステップ１１２０を実行するときのエントロピー復号器４２０の動作は、図１２および図１３を参照して以下にさらに説明する。
【０１２８】
ｉｎｔｒａ＿ｂｃ＿ｆｌａｇテストステップ１１２２において、プロセッサ２０５は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇの値をテストするために使用される。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇが真に設定される場合、制御は、パーティションモード符号化テストステップ１１２４に進む。そうでなければ、制御は、ｃｕ＿ｔｙｐｅテストステップ１１２８に進む。
【０１２９】
その後、パーティションモード符号化テストステップ１１２４において、「ｐａｒｔ＿ｍｏｄｅ」シンタックス要素が符号化されたビットストリーム３１２に存在する条件が、プロセッサ２０５の実行下でテストされる。コーディングユニット（ＣＵ）予測モードは、非イントラ予測である（すなわち、ＭＯＤＥ＿ＩＮＴＲＡではない）か、または、コーディングユニット（ＣＵ）サイズが最小コーディングユニット（ＳＣＵ）サイズに等しい場合に、制御は、ｐａｒｔ＿ｍｏｄｅステップ１１２６に進む。そうでなければ、制御は、ｃｕ＿ｔｙｐｅテストステップ１１２８に進む。
【０１３０】
ステップ１１２６がスキップされる場合に、「ｐａｒｔ＿ｍｏｄｅ」は常に、インター予測を使用して、コーディングユニット（ＣＵ）に対して符号化される。イントラ予測を使用したコーディングユニット（ＣＵ）に対して、コーディングユニット（ＣＵ）サイズが、最小コーディングユニット（ＳＣＵ）サイズより大きい場合に、パーティションモードは、「ＰＡＲＴ＿２Ｎ×２Ｎ」である（すなわち、１つの予測ユニット（ＰＵ）はコーディングユニット（ＣＵ）全体を占める）と推測される。コーディングユニット（ＣＵ）サイズが、最小コーディングユニット（ＳＣＵ）サイズに等しい場合に、パーティションモードは、符号化されたビットストリーム３１２から復号され、「ＰＡＲＴ＿２Ｎ×２Ｎ」または「ＰＡＲＴ＿Ｎ×Ｎ」のいずれかの間で選択する。「ＰＡＲＴ＿Ｎ×Ｎ」モードは、４つの平方根非オーバーラップ予測ユニット（ＰＵ）へとコーディングユニット（ＣＵ）を分割する。
【０１３１】
パーティションモード復号ステップ１１２６において、エントロピー復号器４２０は、プロセッサ２０５の実行下で、符号化されたビットストリーム３１２からｐａｒｔ＿ｍｏｄｅシンタックス要素を復号する。ステップ１１２２のため、イントラ・ブロック・コピー・モードが使用中のとき、ｐａｒｔ＿ｍｏｄｅは符号化されたビットストリーム３１２から復号されない。このような場合、コーディングユニット（ＣＵ）のパーティションモードは、「ＰＡＲＴ＿２Ｎ×２Ｎ」であると推測されてもよい。
【０１３２】
その後、ｃｕ＿ｔｙｐｅテストステップ１１２８において、コーディング・ユニット・タイプ・フラグ、ｃｕ＿ｔｙｐｅをテストすることにより、プロセッサ２０５の実行下で、コーディングユニット（ＣＵ）の予測モードはテストされる。コーディング・ユニット・タイプ・フラグ、ｃｕ＿ｔｙｐｅが、予測モードがイントラ予測（すなわち、「ＣｕＰｒｅｄＭｏｄｅ＝＝ＭＯＤＥ＿ＩＮＴＲＡ」）であることを示す場合に、制御は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇテストステップ１０３０に進む。そうでなければ、制御は、ｉｎｔｒａ＿ｐｒｅｄモードステップ１０３４に進む。
【０１３３】
ｉｎｔｒａ＿ｂｃ＿ｆｌａｇテストステップ１１３０において、プロセッサ２０５は、イントラ・ブロック・コピー特徴がコーディングユニット（ＣＵ）により使用されるかどうかをテストするために使用される。イントラ・ブロック・コピー特徴がコーディングユニット（ＣＵ）により使用される場合に、制御は、ブロックベクトル復号ステップ１１３２に進む。そうでなければ、制御は、ｉｎｔｒａ＿ｐｒｅｄモードステップ１１３４に進む。
【０１３４】
その後、ブロックベクトル復号ステップ１１３２において、エントロピー復号器４２０は、プロセッサ２０５の実行下で、符号化されたビットストリーム３１２からのイントラ・コピー・モードに対するブロックベクトルを復号するために使用される。ブロックベクトルは、一般に、そうでなければ動きベクトル差に対して使用される「ｍｖｄ＿ｃｏｄｉｎｇ」シンタックス構造等の、既存のシンタックス構造を使用して、符号化されたビットストリーム３１２に符号化される。ステップ１１３２の後に、制御は、ルート符号化ブロックフラグ復号ステップ１０３６に進む。
【０１３５】
ｉｎｔｒａ＿ｐｒｅｄモードステップ１１３４において、エントロピー復号器４２０は、プロセッサ２０５の実行下で、符号化されたビットストリーム３１２からのコーディングユニット（ＣＵ）中の各予測ユニット（ＰＵ）に対するイントラ予測モードを復号する。イントラ予測モードは、３５の可能なモードのうちのどの１つが、コーディングユニット（ＣＵ）の各予測ユニット（ＰＵ）中のイントラ予測を実行するために使用されるかを規定する。
【０１３６】
その後、ルート符号化ブロックフラグ復号ステップ１１３６において、エントロピー復号器４２０は、プロセッサ２０５の実行下で、ルート符号化ブロックフラグ、ｒｑｔ＿ｒｏｏｔ＿ｃｂｆを、符号化されたビットストリーム３１２から復号する。ルート符号化ブロックフラグ、ｒｑｔ＿ｒｏｏｔ＿ｃｂｆは、コーディングユニット（ＣＵ）に対する任意の残差情報がある（すなわち、コーディングユニット（ＣＵ）内の変換ユニット（ＴＵ）のうちのいずれかに少なくとも１つの有効な係数がある）かどうかを規定する。コーディングユニット（ＣＵ）に関係付けられた残差情報がある場合に、復号変換ツリーステップ１１３８において、エントロピー復号器４２０は、プロセッサ２０５の実行下で、符号化されたビットストリーム３１２から変換ツリー（または、「残差四分木」）を復号する。変換ツリーは、各変換ユニット（ＴＵ）に対する残差四分木および残差係数の階層構造を示すようにシグナリングすることを含む。
【０１３７】
イントラ・ブロック・コピー・ステップ１１４０において、イントラ・ブロック・コピー・モジュール４３６は、プロセッサ２０５の実行下で、現在および／または以前のコーディング・ツリー・ブロック（ＣＴＢ）内に位置するサンプル値（または、サンプル）のブロック（または、アレイ）をコピーすることにより、参照ブロックを生成する。従って、サンプル値は、以前に復号されたサンプルからの参照ブロックに対して決定される。参照ブロックの位置は、ブロックベクトルを、現在のコーディングユニット（ＣＵ）の座標に追加することにより決定される。従って、イントラ・ブロック・コピー・モジュール４３６は、ステップ１１１６において復号されるイントラ・ブロック・コピー・フラグに基づいて、符号化されたビットストリーム３１２から参照ブロックに対するサンプル値を復号するために使用される。ステップ１１４０におけるサンプル値のブロックのコピーは、イントラ・ブロック・コピーと呼ばれてもよい。
【０１３８】
その後、再構築ステップ１１４２において、予測ユニット（ＰＵ）４６６（すなわち、参照ブロック）は、加算モジュール４２４中の残差サンプルアレイ４５６に追加され、和４５８（すなわち、再構築されたサンプル）が生成される。その後、方法１１００は、以下のステップ１１４２を終了する。
【０１３９】
図８（ａ）に示した方法１１００の１つの構成では、イントラ・ブロック・コピー・ステップ１１４０は、利用不能な近傍コーディング・ツリー・ブロック（ＣＴＢ）に対してオーバーラップする参照サンプルに対して、「デフォルトの値」が使用されるように、変更される。この構成は、図１７（ｃ）および図１７（ｄ）を参照して、以下でさらに詳細に説明する。
【０１４０】
図８（ｂ）に示した方法１１００の１つの構成では、方法１１００は、任意の利用不能なサンプル（例えば、８３０）が参照サンプルブロック（例えば、８２６）に含まれるのを妨げるために、復号されるブロックベクトル（例えば、８２４）がクリッピングされるように、（例えば、ブロックベクトル復号ステップ１１３２において）変更される。
【０１４１】
コーディングユニット（ＣＵ）に対するイントラ・ブロック・コピー・フラグ（例えば、９１０）に対するコンテキスト選択を、図１２を参照してここで説明する。以下に説明するように、ビデオ復号器１１４は、近傍ブロックに対するイントラ・ブロック・コピー・フラグの値とは関係なく、イントラ・ブロック・コピー・フラグに対するコンテキストを選択するために構成されてもよい。図１２の例では、フレーム部１２００は、コーディング・ツリー・ブロック（ＣＴＢ）１２０２および１２０４等の、コーディング・ツリー・ブロック（ＣＴＢ）を含む。フレーム部１２００中のコーディング・ツリー・ブロック（ＣＴＢ）は、ラスタ順でスキャンされる。図６（ａ）に示すように、各コーディング・ツリー・ブロック（ＣＴＢ）１２０２および１２０４内のコーディングユニット（ＣＵ）は、Ｚ順でスキャンされる。コーディング・ツリー・ブロック（ＣＵ）１２１０は、符号化されたビットストリーム３１２中のｉｎｔｒａ＿ｂｃ＿ｆｌａｇによりシグナリングされるときに、イントラ・ブロック・コピー・モードを使用する。
【０１４２】
ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、コンテキスト適応バイナリ演算コーディングを使用して符号化され、コンテキストは、３つの可能なコンテキストのうちの１つから選択される。近傍ブロックのｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値は、どのコンテキストを使用すべきかを決定するために使用される。これらのブロックは、以前に復号されており、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値はビデオ復号器１３４に対して利用可能であるため、現在のブロックの左のブロック（例えば、１２１４）、および、現在のブロックに隣接した上のブロック（例えば、１２１２）が使用される。近傍ブロックが利用可能でない場合（例えば、近傍ブロックが異なるスライスまたはタイルにあるか、または、現在のブロックがフレームの端にある場合）に、近傍ブロックｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値は、コンテキスト選択の目的のために、ゼロに設定される。コンテキストインデックスは、０〜２の値を有し、左ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値を右ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値に追加することにより決定される。追加の目的のために、「ｅｎａｂｌｅｄ」、「ｔｒｕｅ」または「ｓｅｔ」等の、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値は、１として扱われ、「ｄｉｓａｂｌｅｄ」、「ｆａｌｓｅ」または「ｃｌｅａｒ」等のｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値は０として扱われる。コーディング・ツリー・ブロック（ＣＴＢ）が６４×６４のサイズを有し、最小コーディングユニット（ＳＣＵ）サイズが８×８であるときに、８×８アレイのｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓは、コーディング・ツリー・ブロック（ＣＴＢ）内に存在する。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓの８×８のアレイの記憶は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇコンテキスト選択の依存を満たすために必要である。コーディング・ツリー・ブロック（ＣＴＢ）の左端に沿って、以前のコーディング・ツリー・ブロック（ＣＴＢ）の右端に沿った８つのｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓが必要とされてもよい。さらに、コーディング・ツリー・ブロック（ＣＴＢ）のスキャニングは、ラスタスキャン順で生じるため、８×８のサイズの、フレーム全体の幅の行に沿った、コーディングユニット（ＣＵ）に十分なｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓのアレイは、「上」ｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対する依存を満たすために必要である。例えば、ブロック１２１２は、コーディング・ツリー・ブロック（ＣＴＢ）の以前の行に位置付けられるため、ブロック１２１２に対応するｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対するストレージが必要とされる。コーディング・ツリー・ブロック（ＣＴＢ）の行に沿ったすべての可能なブロック位置に対するストレージが設定される。対照的に、ブロック１２２０は、コーディング・ツリー・ブロック（ＣＴＢ）のトップ、従って、近傍ブロック（すなわち、１２２２および１２２４）のｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値に沿って、位置しない。
【０１４３】
ＨＤ画像（１９２０×１０８０解像度）に対して、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓを記憶するのに必要とされるバッファサイズは、２４０フラグである。ＨＤを超える画像解像度に対して、一般に、「４Ｋ２Ｋ」と呼ばれる複数のバリアントが存在する。１つのバリアントは、３８４０×２１６０の解像度を持つ「ウルトラＨＤ」である。別のバリアントは、４０９６×２１６０の解像度を持つ「デジタルシネマ」である。４Ｋ２Ｋの解像度に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓを記憶するのに必要なバッファサイズは、最大５１２フラグである。一般的に、コーディングユニット（ＣＵ）毎に一度、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇバッファがアクセスされ、結果的に、単一のフラグのコンテキストインデックスを決定するための相対的に高いメモリ帯域幅になる。ビデオ符号化器１１４およびビデオ復号器１３４のハードウェア実現に対して、オンチップスタティックＲＡＭが、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓをバッファリングするために使用されてもよい。ビデオ符号化器１１４およびビデオ復号器１３４のソフトウェア実現に対して、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓバッファは、Ｌ１キャッシュに存在してもよく、有用なキャッシュラインを消費する。
【０１４４】
１つの構成において、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇのコンテキスト選択が、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対して単一のコンテキストを使用することにより簡略化されてもよい。このような構成は、以前に復号されたｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値を保持するためにバッファを除去することにより、複雑性を低下させる。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対する単一のコンテキストを使用する追加の利点は、コンテキストインデックスを決定するための、メモリアクセスの減少および計算の回避により、得られる。一般に、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ等の、シンタックス要素をコーディングするのに利用可能なコンテキストの数を減少させることにより、符号化効率が低下する。
【０１４５】
方法１０００により生成される、方法１１００により復号可能な、符号化されたビットストリーム３１２は、イントラ予測を使用することを示す、コーディングユニット（ＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇ（すなわち、ｐｒｅｄ＿ｍｏｄｅはＭＯＤＥ＿ＩＮＴＲＡを示す）を含む。このため、インター予測されたコーディングユニット（ＣＵ）に対して、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、符号化されたビットストリーム３１２に存在しない。このため、ｐｒｅｄ＿ｍｏｄｅシンタックス要素が、コーディングユニット（ＣＵ）に対するイントラ予測の使用を示すときに、イントラ・ブロック・コピー・モードのみを利用可能にさせることを犠牲にして、インター予測されたコーディングユニット（ＣＵ）に対する符号化効率の改善が達成される。
【０１４６】
一般に、イントラ予測は、インター予測により生成される予測より大きな歪みを持つ予測を生成する。出力されたイントラ予測における、さらに大量の歪みは、結果として、許容可能なレベルまで歪みをさらに補正するのに必要とされる（すなわち、量子化パラメータから導出される）残差情報の量の増加になる。より大量の残差情報は、通常、結果的に、インター予測されたフレームよりも、符号化されたビットストリーム３１２のさらに大きな一部を消費するイントラ予測されたフレームになる。このため、符号化効率に感度の高い適用に対して、インター予測は、可能な限り使用される。このため、インター予測されたコーディングユニット（ＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇのシグナリングを除去することに利点がある。
【０１４７】
図１３は、図４のエントロピー復号モジュール４２０の機能モジュール１３０２、１３０４、１３０６および１３０８を示す概略的なブロック図である。エントロピー復号モジュール４２０のモジュール１３０２、１３０４、１３０６および１３０８は、ビデオ復号モジュール１３４を実現するソフトウェアアプリケーションプログラム２３３の１以上のソフトウェアコードモジュールとして実現されてもよい。エントロピー復号モジュール４２０は、コンテキスト適応バイナリ演算コーディングを使用する。符号化されたビットストリーム３１２は、バイナリ演算復号モジュール１３０２に提供される。バイナリ演算復号モジュール１３０２は、コンテキストメモリ１３０４からのコンテキストに提供される。コンテキストは、復号されるフラグ（または「シンボル」）の可能性ある値およびフラグに対する確率レベルを示す。コンテキストは、コンテキストインデックス決定器１３０６により提供される、コンテキストインデックスに従って選択される。コンテキストインデックス決定器１３０６は、近傍コーディングユニット（ＣＵ）からのｉｎｔｒａ＿ｂｃ＿ｆｌａｇの値を使用することにより、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対するコンテキストインデックスを決定する。
【０１４８】
図１４は、コーディングユニット（ＣＵ）に対するイントラ・ブロック・コピー・フラグを復号する方法１４００を示す概略的なフロー図である。方法１４００は、一般に、エントロピー復号モジュール４２０はまたはエントロピー符号化モジュール３２４により実行される。方法１４００は、ビデオ復号器１３４またはビデオ符号化器１１４を実現するソフトウェアコードモジュールのうちの１以上として実現されてもよく、ソフトウェアコードモジュールは、ハードディスクドライブ２１０に常駐し、プロセッサ２０５によりソフトウェアコードモジュールの実行が制御される。方法１４００がビデオ復号器１３４により実行される例により、以下に方法１４００を説明する。
【０１４９】
方法１４００は、上フラグ利用可能テストステップ１４０２において開始し、上フラグ利用可能テストステップ１４０２において、プロセッサ２０５は、上のブロック（すなわち、現在のブロックに隣接した上のブロック）中のｉｎｔｒａ＿ｂｃ＿ｆｌａｇが利用可能である（例えば、「ａｖａｉｌａｂｌｅＡ」変数を導出する）かどうかをテストするために使用される。上のブロック中のｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、「ａｂｏｖｅ ｆｌａｇ」と呼ばれてもよい。現在のブロックがフレームのトップにある場合に、上ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは利用可能ではない。上ブロックが現在のブロックと異なるスライスセグメントにある場合に、ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは利用可能ではない。上ブロックが現在のブロックと異なるタイルにある場合に、ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは利用可能ではない。先の条件のいずれも満たさない場合に、上ブロックは利用可能である（すなわち、「ａｖａｉｌａｂｌｅＡ」は真である）。
【０１５０】
ステップ１４０２において、ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇが利用可能でない場合（すなわち、「ａｖａｉｌａｂｌｅＡ」が偽である）に、制御は、左フラグ利用可能テストステップ１４０６に進む。そうでなければ、制御は、ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ読み出しステップ１４０４に進む。
【０１５１】
ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ読み出しステップ１４０４において、現在のコーディングユニット（ＣＵ）の上のコーディングユニット（ＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値（すなわち、「ｃｏｎｄＡ」）は、プロセッサ２０５の実行下で、メモリ２０６内で構成されたフラグキャッシュモジュール１３０８から読み出される。現在のコーディングユニット（ＣＵ）が、現在のコーディング・ツリー・ブロック（ＣＴＢ）のトップに沿って整列するときに、読み出されるｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、現在のコーディング・ツリー・ブロック（ＣＴＢ）の上のコーディング・ツリー・ブロック（ＣＴＢ）の行に属するコーディングユニット（ＣＵ）からのものである。コーディング・ツリー・ブロック（ＣＴＢ）は、（１つのタイル内で）ラスタ順で処理され、最小コーディングユニット（ＳＣＵ）サイズは一般に８×８であり、１つのｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、すべての８サンプルのフレーム幅についてフラグキャッシュモジュール１３０８に記憶される。「４Ｋ２Ｋ」フレームに対して、最大５１２のｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓは、上ｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対する依存を満たすために、（例えば、メモリ２０６内に）バッファリングされる。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓバッファは、「ラインバッファ」と呼ばれてもよい。その理由は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓバッファは、フレームのライン全体に関する情報（例えば、最小コーディングユニット（ＳＣＵ）のラインまたはサンプルのライン）を保持するためである。
【０１５２】
イントラ・ブロック・コピー・フラグが高頻度でアクセスされるため（すなわち、コーディングユニット（ＣＵ）毎に一度）、イントラ・ブロック・コピー・フラグは、オンチップスタティックＲＡＭまたはメモリ２０６のキャッシュメモリに記憶されてもよい。フラグキャッシュモジュール１３０８中のこのようなメモリは、コストが高い（例えば、シリコンエリアの観点またはメモリ帯域幅の観点から）。現在のコーディングユニット（ＣＵ）が、現在のコーディング・ツリー・ブロック（ＣＴＢ）のトップに沿って整列しないときに、読み出されるｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、現在のコーディング・ツリー・ブロック（ＣＴＢ）に属するコーディングユニット（ＣＵ）からのものである。コーディング・ツリー・ブロック（ＣＴＢ）のコーディングツリー階層に従って、コーディングユニット（ＣＵ）は、Ｚ−スキャン順でスキャンされる。
【０１５３】
全体的に最小コーディングユニット（ＳＣＵ）サイズのコーディングユニット（ＣＵ）からなるコーディング・ツリー・ブロック（ＣＴＢ）に対して、ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対する依存を満たすために、８×７（すなわち、５６）のｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓのアレイがフラグキャッシュモジュール１３０８において必要とされる。８の幅は、６４サンプルのコーディング・ツリー・ブロック（ＣＴＢ）の幅の、８の最小コーディングユニット（ＳＣＵ）への分割に起因する。７の高さは、６４サンプルのコーディング・ツリー・ブロック（ＣＴＢ）の高さの、８行の最小コーディングユニット（ＳＣＵ）への分割に起因する。８行のうちの７行は、現在のコーディング・ツリー・ブロック（ＣＴＢ）に位置し、１行は、上のコーディング・ツリー・ブロック（ＣＴＢ）に位置する（すなわち、上述したように、別々にバッファリングされる）。
【０１５４】
その後、左フラグ利用可能テストステップ１４０６において、プロセッサ２０５は、現在のコーディングユニット（ＣＵ）の左に隣接するコーディングユニット（ＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇが利用可能であるかどうかを決定するために使用される。現在のコーディングユニット（ＣＵ）の左に隣接するコーディングユニット（ＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、「ｌｅｆｔ  ｆｌａｇ」と呼ばれてもよい。現在のコーディングユニット（ＣＵ）は、フレームの左に整列する場合に、ｌｅｆｔ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは利用不能であると考えられる。ｌｅｆｔ  コーディングユニット（ＣＵ）が、現在のコーディングユニット（ＣＵ）とは異なるスライスに属する場合に、ｌｅｆｔ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは利用不能であると考えられる。左のコーディングユニット（ＣＵ）が、現在のコーディングユニット（ＣＵ）とは異なるタイルに属する場合に、ｌｅｆｔ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは利用不能であると考えられる。これらの条件が何も満たされない場合に、ｌｅｆｔ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは利用可能であると考えられる（すなわち、「ａｖａｉｌａｂｌｅＬ」は偽）。ｌｅｆｔ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇが利用不能である場合に、制御は、コンテキストインデックス決定ステップ１４１０に進む。そうでなければ（すなわち、「ａｖａｉｌａｂｌｅＬ」は真）、制御は、左フラグ読み出しステップ１４０８に進む。
【０１５５】
左フラグ読み出しステップ１４０８において、現在のコーディングユニット（ＣＵ）の左に隣接するコーディングユニット（ＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値（すなわち、「ｃｏｎｄＬ」）が、プロセッサ２０５の実行下で、読み出される（すなわち、左フラグの読み出し）。現在のコーディングユニット（ＣＵ）が、現在のコーディング・ツリー・ブロック（ＣＴＢ）の左端に沿って整列する場合に、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、以前のコーディング・ツリー・ブロック（ＣＴＢ）の右端に沿った（最大）８つの最小コーディングユニット（ＳＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値を保持する８つのｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓのバッファから読み出される。現在のコーディングユニット（ＣＵ）が、現在のコーディング・ツリー・ブロック（ＣＴＢ）の左端に沿って整列しない場合に、フラグは、現在のコーディング・ツリー・ブロック（ＣＴＢ）内の最小コーディングユニット（ＳＣＵ）サイズの近傍コーディングユニット（ＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇの７×８のバッファから読み出される。７×８のバッファサイズは、「最悪の場合」では、６４×６４のコーディング・ツリー・ブロック（ＣＴＢ）の、６４（すなわち、８×８グリッド）の８×８のコーディングユニット（ＣＵ）に起因し、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓの７列は、現在のコーディング・ツリー・ブロック（ＣＴＢ）内から参照され、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓの１列は、以前（左）のコーディング・ツリー・ブロック（ＣＴＢ）から参照される。上ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓに対する８×７のｉｎｔｒａ＿ｂｃ＿ｆｌａｇバッファと、左ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓに対する８×７のバッファは、大半がオーバーラップする。オーバーラップのため、６３または６４のフラグバッファ（すなわち、８×８フラグバッファおよび下側右フラグはアクセスされず、そのため、省略されてもよい）は、現在のコーディング・ツリー・ブロック（ＣＴＢ）内のａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓおよびｌｅｆｔ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓの双方を提供するために、フラグキャッシュモジュール１３０８中で必要とされる。
【０１５６】
その後、コンテキストインデックス決定ステップ１４１０において、現在のコーディング・ツリー・ブロック（ＣＴＢ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対するコンテキストインデックスは、プロセッサ２０５の実行下で、決定される。コンテキストインデックスは、ゼロ（０）、１または２のうちの１つである。コンテキストメモリ１３０４が、様々なシンタックス要素に対するコンテキストを保持する連続的なメモリである場合に、オフセット（本明細書でさらに論じない）は、メモリ２０６内に構成されるコンテキストメモリ１３０４内のｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対するコンテキストの記憶を指し示すために、コンテキストインデックスにおいて暗黙のもの（ｉｍｐｌｉｃｉｔ）である。コンテキストインデックスは、ｌｅｆｔ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値およびａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値の和である（ブーリアン値は、偽に対して「０」、真に対して「１」と解釈される）。ｌｅｆｔ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇが利用可能でない場合に、ｌｅｆｔ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、和の算出に対してゼロであると考えられる。ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇが利用可能でない場合に、ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、和の算出に対してゼロであると考えられる。このため、コンテキストインデックスは、数式（ｃｏｎｄＬ＆＆ａｖａｉｌａｂｌｅＬ）＋（ｃｏｎｄＡ＆＆ａｖａｉｌａｂｌｅＡ）により表されてもよい。
【０１５７】
コンテキスト読み出しステップ１４１２において、プロセッサ２０５の実行下で、コンテキストは、コンテキストメモリモジュール１３０４から読み出され、コンテキストは、コンテキストインデックス決定ステップ１４１０からのコンテキストインデックスにより選択される。
【０１５８】
その後、ビン復号ステップ１４１４において、コンテキストは、符号化されたビットストリーム３１２から１つのフラグ（または「ビン」）を復号するために使用される。復号されるフラグは、現在のコーディングユニット（ＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対応する。
【０１５９】
フラグキャッシュにおける記憶ステップ１４１６において、復号されるフラグは、符号化されたビットストリーム３１２からの後続するｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓを復号するときに、将来の参照のために、メモリ２０６内に構成されるフラグキャッシュモジュール１３０８に記憶される。また、コンテキスト更新ステップ１４１８において、符号化されるフラグ値に従って、プロセッサ２０５の実行下で、コンテキストは更新される。コンテキストに関係付けられる確率および可能性あるビン値（すなわち、「ｖａｌＭＰＳ」）は更新される。
【０１６０】
その後、コンテキスト書き込みステップ１４２０において、更新されたコンテキストは、ステップ１４１２におけるのと同じコンテキストインデックスを使用して、コンテキストメモリモジュール１３０４にライトバックされる。ステップ１４２０に続いて、方法１４００は完結する。
【０１６１】
上述したように、方法１４００はまた、ビデオ符号化器１１４により実行されてもよく、その場合、ステップ１４１４は、符号化されたビットストリーム３１２にビン（すなわち、現在のコーディングユニット（ＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値）を符号化するように変更される。
【０１６２】
方法１４００の１つの代替的な構成では、ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ利用可能テストステップ１４０２は、現在のコーディングユニット（ＣＵ）が現在のコーディング・ツリー・ブロック（ＣＴＢ）のトップに整列するように変更され、上コーディング・ツリー・ブロック（ＣＴＢ）中の隣接するコーディングユニット（ＣＵ）が利用可能である場合でさえ、ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、利用不能であると考えられる。すなわち、現在のコーディング・ツリー・ブロック（ＣＴＢ）の左上ルマサンプルに対する、現在のルマコーディングブロックの左上サンプルを規定するコーディングユニット（ＣＵ）のＹ座標（すなわち、ｙＣｂ）がゼロであるときに、「ａｖａｉｌａｂｌｅＡ」＝ｆａｌｓｅである。ステップ１４０２がこのような方法で変更される構成では、コーディング・ツリー・ブロック（ＣＴＢ）にわたる依存の除去は、結果として、最大（５１２）のｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓに対するバッファリングを含む必要がないフラグキャッシュモジュール１３０８になる。ステップ１４０２がこのような方法で変更される構成では、コーディングユニット（ＣＵ）１２１０は、コンテキストインデックス決定ステップ１４１０に対するブロック１２１４のｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値に依存するのに対し、コーディングユニット（ＣＵ）１２２０は、コンテキストインデックス決定ステップ１４１０に対するブロック１２２２および１２２４のｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値に依存する。
【０１６３】
方法１４００の別の代替的な構成では、ａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ利用可能テストステップ１４０２およびａｂｏｖｅ  ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ読み出しステップ１４０４が省略される（すなわち、ａｖａｉｌａｂｌｅＡは常に偽である）。ステップ１４０２およびステップ１４０４が省略される構成では、コンテキストインデックス決定ステップ１４１０は、取るに足らないである。その理由は、コンテキストインデックスは、左フラグ読み出しステップ１４０８に起因するｌｅｆｔ ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値（または、左フラグが利用可能でない場合にはゼロ）のみに従って設定されるためである。ステップ１４０２およびステップ１４０４が省略される構成は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対するコンテキストメモリモジュール１３０４に２つのコンテキストのみがあることを必要とする。さらに、ステップ１４０２およびステップ１４０４が省略される方法１４００の構成は、上の近傍に対する最大５１２のｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓまたは５６のｉｎｔｒａ＿ｂｃ＿ｆｌａｇｓをバッファリングするために、フラグキャッシュモジュール１３０８においてメモリを必要としない。
【０１６４】
方法１４００のさらに別の代替的構成では、ステップ１４０２〜ステップ１４０８は省略される。ステップ１４０２〜ステップ１４０８が省略される構成では（すなわち、ａｖａｉｌａｂｌｅＡおよびａｖａｉｌａｂｌｅＬは常に偽である）、単一のコンテキストのみがｉｎｔｒａ＿ｂｃ＿ｆｌａｇに対して使用されることから、コンテキストインデックス決定ステップ１４１０は、取るに足らないものである。このため、コンテキストメモリモジュール１３０４は、単一のコンテキストに対応するシンタックス要素に対して１つのコンテキストのみを含む。ステップ１４０２〜ステップ１４０８が省略される構成では、フラグキャッシュモジュール１３０８は省略されてもよい。その理由は、現在のコーディングユニット（ＣＵ）に対するｉｎｔｒａ＿ｂｃ＿ｆｌａｇのコンテキストインデックスを決定するために、近傍コーディングユニット（ＣＵ）からｉｎｔｒａ＿ｂｃ＿ｆｌａｇ値を参照する必要がないためである。
【０１６５】
図１５（ａ）は、１つの構成にかかる、コーディングユニット（ＣＵ）に対する予測モードを決定する方法１５００を示す概略的なフロー図である。方法１５００は、コーディングユニット（ＣＵ）シンタックス構造を構文解析する一環として、ビデオ復号器１３４により実行される。方法１５００は、ビデオ復号器１３４を実現するソフトウェアコードモジュールのうちの１以上として実現されてもよく、ソフトウェアコードモジュールは、ハードディスクドライブ２１０に常駐し、プロセッサ２０５によりソフトウェアコードモジュールの実行が制御される。
【０１６６】
方法１５００は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ復号ステップ１５０２において開始し、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ復号ステップ１５０２において、イントラ・ブロック・コピー・フラグは、方法１４００に従って、符号化されたビットストリーム３１２から復号される。コーディングユニット（ＣＵ）に対する予測モードを決定するのに使用するために、イントラ・ブロック・コピー・フラグが、符号化されたビットストリーム３１２から復号される。
【０１６７】
その後、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇテストステップ１５０４において、イントラ・ブロック・コピー・フラグが１の値を有する場合に、コーディングユニット（ＣＵ）の予測モードは、「ＭＯＤＥ＿ＩＮＴＲＡＢＣ」であると知られ（すなわち、コーディングユニット（ＣＵ）に対する予測モードは、イントラ・ブロック・コピー・モードである）、制御は、サンプル値決定ステップ１５１０に進む。サンプル値決定ステップ１５１０において、参照サンプル値（またはサンプル）のブロックは、プロセッサ２０５の実行下で、イントラ・ブロック・コピー・モジュール４３６において、図１１のイントラ・ブロック・コピー・ステップ１１４０を実行することにより、コーディングユニット（ＣＵ）に対して決定される。
【０１６８】
イントラ・ブロック・コピー・フラグが、ゼロの値を有する場合に、制御は、ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ復号ステップ１５０６に進む。ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ復号ステップ１５０６は、図１１のステップ１１１６を実行することにより、符号化されたビットストリーム３１２から予測モードシンタックス要素を復号する。
【０１６９】
その後、ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇテストステップ１５０８において、コーディングユニット（ＣＵ）に対する予測モードは、復号された予測モードシンタックス要素に従って決定される。ゼロのｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ値（「０」）は、「ＭＯＤＥ＿ＩＮＴＥＲ」（すなわち、コーディングユニット（ＣＵ）に対する予測モードはインター予測モードであること）を示し、１のｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ値（「１」）は、「ＭＯＤＥ＿ＩＮＴＲＡ」（すなわち、コーディングユニット（ＣＵ）に対する予測モードはイントラ予測モードであること）を示す。
【０１７０】
図１５（ｂ）は、１つの構成にかかる、コーディングユニット（ＣＵ）に対する予測モードを決定する方法１５２０を示す概略的なフロー図である。方法１５００は、コーディングユニット（ＣＵ）シンタックス構造を構文解析する一環として、ビデオ復号器１３４により実行される。方法１５００は、ビデオ復号器１３４を実現するソフトウェアコードモジュールのうちの１以上として実現されてもよく、ソフトウェアコードモジュールは、ハードディスクドライブ２１０に常駐し、プロセッサ２０５によりソフトウェアコードモジュールの実行が制御される。
【０１７１】
方法１５２０は、コーディングユニット（ＣＵ）の予測モードを導出するための方法１１００のステップのサブセットを含む。
【０１７２】
方法１５２０は、ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ復号ステップ１５２２において開始する。ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ復号ステップ１５２２において、プロセッサ２０５の実行下で、方法１１００のステップ１１１６を実行することにより、予測モードシンタックス要素は、符号化されたビットストリーム３１２から復号される。上述したように、ステップ１１１６において、エントロピー復号器４２０は、コーディングユニット（ＣＵ）に対する予測モードを決定するのに使用するために、符号化されたビットストリーム３１２から予測モードフラグを復号するために使用される。
【０１７３】
その後、ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇテストステップ１５２４において、コーディングユニット（ＣＵ）に対する予測モードは、復号された予測モードシンタックス要素に従って決定される。ゼロ（０）のｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ値は、「ＭＯＤＥ＿ＩＮＴＥＲ」（すなわち、コーディングユニット（ＣＵ）に対する予測モードは、インター予測モードである）を示し、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、符号化されたビットストリーム３１２に存在しないため、方法１５２０により復号されない。ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ値が１である場合に、制御は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ復号ステップ１５２６に進む。
【０１７４】
ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ復号ステップ１５２６において、プロセッサ２０５は、方法１４００に従って、符号化されたビットストリーム３１２からイントラ・ブロック・コピー・フラグを復号するために使用される。上述したように、イントラ・ブロック・コピー・フラグは、現在のサンプルが、現在のフレームの以前に復号されたサンプルに基づくことを示すために使用される。このため、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇは、ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇが１の値を有する場合および場合にのみ、復号される。イントラ・ブロック・コピー・フラグが１の値を有する場合に、コーディングユニット（ＣＵ）の予測モードに、「ＭＯＤＥ＿ＩＮＴＲＡＢＣ」が割り当てられる（すなわち、コーディングユニット（ＣＵ）に対する予測モードは、イントラ・ブロック・コピー・モードである）。そうでなければ、コーディングユニット（ＣＵ）の予測モードに、「ＭＯＤＥ＿ＩＮＴＲＡ」が割り当てられる（すなわち、コーディングユニット（ＣＵ）に対する予測モードは、イントラ予測モードである）。
【０１７５】
その後、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇテストステップ１５２８において、イントラ・ブロック・コピー・フラグが１の値を有する場合に、コーディングユニット（ＣＵ）の予測モードは、「ＭＯＤＥ＿ＩＮＴＲＡＢＣ」であると知られ、制御は、サンプル値決定ステップ１５３０に進む。そうでなければ、コーディングユニット（ＣＵ）の予測モードは、「ＭＯＤＥ＿ＩＮＴＲＡ」であると知られる。
【０１７６】
サンプル値決定ステップ１５３０において、参照サンプル値（またはサンプル）のブロックは、プロセッサ２０５の実行下で、イントラ・ブロック・コピー・モジュール４３６において、図１１のイントラ・ブロック・コピー・ステップ１１４０を実行することにより、コーディングユニット（ＣＵ）に対して決定される。上述したように、参照サンプルのブロックは、以前に復号されたサンプルからの参照ブロックからサンプル値を決定することにより、符号化されたイントラ・ブロック・コピー・フラグに基づいて、符号化されたビットストリーム３１２から復号される。
【０１７７】
インター予測は、「ＭＯＤＥ＿ＩＮＴＥＲ」によりシグナリングされ、イントラ予測は、「ＭＯＤＥ＿ＩＮＴＲＡ」によりシグナリングされる。イントラ・ブロック・コピー・モードは、「ＭＯＤＥ＿ＩＮＴＲＡＢＣ」によりシグナリングされる。これは、イントラ・ブロック・コピー・モードが、イントラ予測に類似するセマンティックスを有するはずであることを示唆しない。イントラ・ブロック・コピー・モードは、「ＭＯＤＥ＿ＩＮＴＥＲＢＣ」によってもラベリングしうる。イントラ・ブロック・コピー・モードのセマンティックスは、インター予測とイントラ予測の各々と類似性を共有し、これについて、ここで要約する。
【０１７８】
すなわち、「ブロックベクトル」は、空間オフセットが、参照ブロックを選択するために、現在のブロックに対して適用されるという点で、動きベクトルに類似している。
【０１７９】
「ブロックベクトル」は、（現在のフレームを参照するために）時間的なオフセットが存在しないという点で、動きベクトルと異なり、従って、ベクトルは、いくつかの以前のフレーム以来動いている同一「オブジェクト」の参照パートとして解釈すべきではない（一般に、動きベクトルはこのように解釈される）。
【０１８０】
イントラ・ブロック・コピーされたコーディングユニットに対する参照サンプルは、イントラ予測方法の近傍サンプルと同様に、現在のフレームから得られる（すなわち、イントラフレーム予測）。
【０１８１】
イントラ・ブロック・コピーされたブロックは、制約付きイントラ予測が有効にされるときに、インター予測されたサンプルを参照するはずであり、そのため、参照は、制約付きイントラ予測により提供される誤り耐性特徴を減少させる。
【０１８２】
イントラ・ブロック・コピーされたブロックに対する残差情報は、動き補償された（インター予測された）ブロックの残差情報にさらに類似し、従って、一般に、離散コサイン変換（ＤＣＴ）を使用するのが望ましいのに対し、イントラ予測に対しては、離散コサイン変換（ＤＣＴ）が４×４変換ブロックに対して使用される。
【０１８３】
上述のセマンティックスから、「ＭＯＤＥ＿ＩＮＴＲＡＢＣ」のラベルは、ある程度任意のものであり、イントラ予測のセマンティックスがイントラ・ブロック・コピー・モードに均一に適用することを示唆すると解釈すべきではないことが理解できる。
【０１８４】
方法１５００および方法１５２０では、イントラ予測の場合とインター予測の場合とに対する予測モードを規定するためのシンタックス要素の構成が異なる。イントラ予測を使用するフレームは、一般に、符号化されたビットストリーム３１２に存在する大量の残差情報を有する。結果的に、予測モードをシグナリングするオーバーヘッドは、残差情報のオーバーヘッドと比較して小さい。対照的に、インター予測を使用するフレームは、一般に、符号化されたビットストリーム３１２に存在する少量の残差情報を有する。符号化されたビットストリーム３１２に存在する少量の残差情報は、空間オフセットで、フレームデータ３１０に非常に厳密に一致する、１以上の参照フレームから、参照ブロックを選択する動き推定モジュール３３８の能力に起因する。このため、非常に高い圧縮効率は、インター予測されたフレームまたはコーディングユニット（ＣＵ）に対して達成できる。このような場合、コーディングユニット（ＣＵ）に対する予測モードのシグナリングのオーバーヘッドは、符号化されたビットストリーム３１２中のコーディングユニット（ＣＵ）に対するデータのより大きな一部になる。方法１５２０は、「ＭＯＤＥ＿ＩＮＴＥＲ」の場合をシグナリングするための、単一のシンタックス要素（すなわち、「ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ」）を必要とする。対照的に、方法１５００は、「ＭＯＤＥ＿ＩＮＴＥＲ」の場合をシグナリングするための、２つのシンタックス要素（すなわち、「ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ」の後、「ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ」）を必要とする。
【０１８５】
ステップ１４０２が変更され、ステップ１４０２および１４０４が省略され、または、ステップ１４０２〜ステップ１４０８が省略される上述の方法１４００の代替構成は、方法１５００のステップ１５０２または方法１５２０のステップ１５２６において適用されてもよい。ステップ１５０２またはステップ１５２６において方法１４００の代替的な構成が適用される構成では、コンテキストメモリモジュール１３０４のメモリ容量の減少が達成される。
【０１８６】
ステップ１４０２が変更され、あるいは、ステップ１４０２およびステップ１４０４が省略される方法１４００の構成に対して、フラグキャッシュモジュール１３０８のメモリ容量の減少が達成される。ステップ１４０２〜ステップ１４０８が省略される方法１４００の構成に対して、フラグキャッシュモジュール１３０８は、ビデオ復号器１３４中のエントロピー復号器４２０ならびにビデオ符号化器１１４中のエントロピー符号化器３２４に存在しない。
【０１８７】
図１６は、コーディング・ツリー・ブロック（ＣＴＢ）内のコーディングユニット（ＣＵ）中の残差四分木（ＲＱＴ）１６００を示す概略的なブロック図である。図１６の例では、３２×３２コーディングユニット（ＣＵ）が、残差四分木（ＲＱＴ）１６００を含む。残差四分木（ＲＱＴ）１６００は、４つの領域にサブ分割される。下側左の領域は、１６×１６変換１６０２を含む。下側右の領域は、さらに４つの領域に別々にサブ分割され、その領域のうちの上側右の領域は、８×８の変換１６０４を含む。残差四分木（ＲＱＴ）の任意の「リーフノード」（すなわち、さらにサブ分割されない任意の領域）において変換が存在してもよい。残差四分木（ＲＱＴ）のリーフノードのようなポイントにおける変換の存在は、「符号化されたブロックフラグ」を使用してシグナリングされる。
【０１８８】
ビデオ符号化器１１４およびビデオ復号器１３４は、２つのタイプの変換、離散サイン変換（ＤＳＴ）および離散コサイン変換（ＤＣＴ）をサポートする。離散サイン変換（ＤＳＴ）の１つのサイズのみ（すなわち、４×４の離散サイン変換（ＤＳＴ））が、一般に、ビデオ符号化器１１４およびビデオ復号器１３４によりサポートされる。４×４、８×８、１６×１６および３２×３２の離散コサイン変換（ＤＣＴ）等の、離散コサイン変換（ＤＣＴ）の複数のサイズは、一般に、ビデオ符号化器１１４およびビデオ復号器１３４によりサポートされる。インター予測された予測ユニット（ＰＵ）を含むコーディングユニット（ＣＵ）の残差四分木（ＲＱＴ）中の変換ユニット（ＴＵ）に対して、離散コサイン変換（ＤＣＴ）がすべての変換に対して使用される。イントラ予測された予測ユニット（ＰＵ）を含むコーディングユニット（ＣＵ）の残差四分木（ＲＱＴ）中の４×４の変換ユニット（ＴＵ）に対して、４×４の変換がルマおよびクロマチャネルにおいて使用される。イントラ予測された予測ユニット（ＰＵ）を含むコーディングユニット（ＣＵ）の残差四分木（ＲＱＴ）中の８×８の変換ユニット（ＴＵ）に対して、４×４の変換がクロマチャネルにおいて使用されてもよい。このような場合、４×４の変換は離散サイン変換（ＤＳＴ）である。他のすべてのブロックサイズに対して、インター予測された予測ユニット（ＰＵ）を含むコーディングユニット中の変換ユニット（ＴＵ）に対して、離散コサイン変換（ＤＣＴ）が使用される。
【０１８９】
離散サイン変換（ＤＳＴ）は、特に、境界（例えば、変換ユニット（ＴＵ）境界および予測ユニット（ＰＵ）境界）において不連続の端を持つ、大量の残差情報（すなわち、空間ドメイン表現）がある状況において、よく機能する（すなわち、コンパクト周波数ドメイン表現を提供する）。大量の残差情報がある状況は、イントラ予想された予測ユニット（ＰＵ）にとって一般的である。
【０１９０】
離散コサイン変換（ＤＣＴ）は、「よりスムーズな」空間残差データ（すなわち、空間ドメインにおける大きさにおいてより不連続でないステップを持つ残差データ）で、より良く機能し、よりコンパクトな周波数ドメイン表現につながる。このようなよりスムーズな空間残差データは、インター予測された予測ユニット（ＰＵ）に特有である。
【０１９１】
残差四分木は最大「深度」を有する。最大深度は、コーディングユニット（ＣＵ）内で可能な四分木・サブ分割の最大数を規定する。一般に、最大数のサブ分割は、３の階層レベルに限定されるが、他の最大数のサブ分割もまた可能である。最小変換サイズにおける限定は、残差四分木のサブ分割の階層レベルの数が、最大数に達するのを妨げてもよい。例えば、４×４の最小変換サイズを持つ１６×１６のコーディングユニット（ＣＵ）は、２回のみサブ分割されてもよいのに対し（すなわち、２つの階層レベル）、（例えば、高レベルシンタックスにおいて）最大の３が規定された。インター予測されたコーディングユニット（ＣＵ）内およびイントラ予測されたコーディングユニット（ＣＵ）内の残差四分木に対して、最大深度が別々に規定される。インター予測されたコーディングユニット（ＣＵ）に対して、「ｍａｘ＿ｔｒａｎｓｆｏｒｍ＿ｈｉｅｒａｒｃｈｙ＿ｄｅｐｔｈ＿ｉｎｔｅｒ」シンタックス要素は、最大深度を定義するために、高レベルシンタックス（例えば、シーケンスパラメータセット）に存在する。
【０１９２】
イントラ予測されたコーディングユニット（ＣＵ）に対して、「ｍａｘ＿ｔｒａｎｓｆｏｒｍ＿ｈｉｅｒａｒｃｈｙ＿ｄｅｐｔｈ＿ｉｎｔｒａ」シンタックス要素は、最大深度を定義するために、高レベルシンタックス（例えば、シーケンスパラメータセット）に存在する。最大深度のイントラ予測されたコーディングユニット（ＣＵ）は、「ＰＡＲＴ＿Ｎ×Ｎ」パーティションモードが使用されるときに、１ずつ増加されてもよい。イントラ・ブロック・コピー・モードを使用するコーディングユニット（ＣＵ）に対して、パーティションモードは、「ＰＡＲＴ＿２Ｎ×２Ｎ」であると考えられる（すなわち、１つの予測ユニット（ＰＵ）は、コーディングユニット（ＣＵ）全体を占める）。
【０１９３】
方法１５２０は、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇテストステップ１５２８が、イントラ・ブロック・コピー（すなわち、「ＭＯＤＥ＿ＩＮＴＲＡＢＣ」）の使用を示すときに、変換選択の目的のために、「ＭＯＤＥ＿ＩＮＴＥＲ」としてパーティションモードを扱うように構成されてもよい。「ＭＯＤＥ＿ＩＮＴＥＲ」としてパーティションモードを扱う方法１５２０の構成では、コーディングユニット（ＣＵ）に対する最大深度の残差四分木（ＲＱＴ）は、ｍａｘ＿ｒａｎｓｆｏｒｍ＿ｈｉｅｒａｒｃｈｙ＿ｄｅｐｔｈ＿ｉｎｔｅｒにより規定される。さらに、「ＭＯＤＥ＿ＩＮＴＥＲ」としてパーティションモードを扱う方法１５２０の構成では、離散コサイン変換（ＤＣＴ）は、イントラ・ブロック・コピー・モードに対して構成されたコーディングユニット（ＣＵ）の残差四分木（ＲＱＴ）中のすべての変換サイズに対して使用される。
【０１９４】
図１７（ａ）は、イントラ・ブロック・コピー・モードを使用するように構成されたコーディングユニット（ＣＵ）に対する参照サンプルブロックを生成させる方法１７００を示す概略的なフロー図である。方法１７００に従って、参照ブロック内のサンプルは、high efficiency video coding（ＨＥＶＣ）の「制約付きイントラ予測」特徴とともに、生成される。方法１７００は、イントラ・ブロック・コピー・モードを使用するよう構成されたコーディングユニット（ＣＵ）の参照ブロックを生成させるときに、ビデオ符号化器１１４およびビデオ復号器１３４により実行される。方法１７００は、ビデオ符号化器１１４およびビデオ復号器１３４を実現するソフトウェアコードモジュールのうちの１以上として実現されてもよく、ソフトウェアコードモジュールは、ハードディスクドライブ２１０に常駐し、プロセッサ２０５によりソフトウェアコードモジュールの実行が制御される。
【０１９５】
方法１７００に対する入力は、ループ内フィルタリング前に、現在および以前のコーディング・ツリー・ブロック（ＣＴＢ）のブロックベクトルおよびサンプルを含む。方法１７００は、制約付きイントラ予測テストステップ１７０２において開始し、制約付きイントラ予測テストステップ１７０２において、プロセッサ２０５は、（例えば、「ピクチャパラメータセット」等の、高レベルシンタックスにおける「ｃｏｎｓｔｒａｉｎｅｄ＿ｉｎｔｒａ＿ｐｒｅｄ＿ｆｌａｇ」シンタックス要素の値をテストすることにより）制約付きイントラ予測モードが有効にされるかどうかをテストするために使用される。制約付きイントラ予測モードが有効にされる場合に、制御は、サンプル予測モード・テスト・ステップ１７０４に進む。そうでなければ、制約付きイントラ予測モードは無効にされ、制御は、参照サンプル・コピー・ステップ１７０８に進む。
【０１９６】
その後、サンプル予測モード・テスト・ステップ１７０４において、プロセッサ２０５は、現在のコーディングユニット（ＣＵ）内のサンプルポジションに対するブロックベクトルにより参照される現在または以前のおよび以前のコーディング・ツリー・ブロック（ＣＴＢ）内のサンプルの予測モードをテストするために使用される。サンプル位置は、コーディングユニット（ＣＵ）内の対応するサンプルのポジションにブロックベクトルをベクトル追加することにより得られる。予測モードが「ＭＯＤＥ＿ＩＮＴＲＡ」または「ＭＯＤＥ＿ＩＮＴＲＡＢＣ」である場合に、制御は、参照サンプル・コピー・ステップ１７０８に進む。そうでなければ（すなわち、予測モードが「ＭＯＤＥ＿ＩＮＴＥＲ」である）、制御は、デフォルト値割り当てステップ１７０６に進む。
【０１９７】
デフォルト値割り当てステップ１７０６において、デフォルトの値は、プロセッサ２０５の実行下で、参照ブロック内のサンプルに割り当てられる。例えば、近傍サンプルが、参照用に利用不能なものとしてマークされるときに、イントラ予測に対して使用されるデフォルトの値は、参照ブロック内のサンプルにデフォルトの値を割り当てるために使用されてもよい。
【０１９８】
参照サンプル・コピー・ステップ１７０８において、プロセッサ２０５の実行下で、現在のフレームからのサンプルは、参照ブロックにコピーされる（すなわち、参照サンプルコピーが実行される）。例えば、現在または以前のコーディング・ツリー・ブロック（ＣＴＢ）内に位置するサンプルは、参照ブロックにコピーされてもよい。コピーされるサンプルの位置は、現在のコーディングユニット（ＣＵ）および提供されたブロックベクトル内のサンプル位置のベクトル追加により決定される。
【０１９９】
方法１７００のすべてのステップは、参照ブロックのすべてのサンプルに対して実行されてもよい（すなわち、参照サンプルの２次元アレイにわたって繰り返される）。また、ステップ１７０２は、参照ブロックに対して一度実行されてもよく、ステップ１７０４〜ステップ１７０８は、参照ブロックのすべてのサンプルに対して実行されてもよく、ステップ１７０４またはステップ１７０８が、ステップ１７０２の結果に従って、各サンプルに対してもたらされる。
【０２００】
図１７（ｂ）は、イントラ・ブロック・コピー・モードを使用するように構成されたコーディングユニット（ＣＵ）に対する参照サンプルブロックを生成させる方法１７２０を示す概略的なフロー図である。方法１７２０に従って、参照ブロック内のサンプルは、high efficiency video coding（ＨＥＶＣ）の「制約付きイントラ予測」特徴とともに、生成される。
【０２０１】
方法１７００は、イントラ・ブロック・コピー・モードを使用するよう構成されたコーディングユニット（ＣＵ）の参照ブロックを生成させるときに、ビデオ符号化器１１４およびビデオ復号器１３４により実行される。繰り返しになるが、方法１７００は、ビデオ符号化器１１４およびビデオ復号器１３４を実現するソフトウェアコードモジュールのうちの１以上として実現されてもよく、ソフトウェアコードモジュールは、ハードディスクドライブ２１０に常駐し、プロセッサ２０５によりソフトウェアコードモジュールの実行が制御される。
【０２０２】
方法１７００に対する入力は、ループ内フィルタリング前に、現在および以前のコーディング・ツリー・ブロック（ＣＴＢ）のブロックベクトルおよびサンプルを含む。方法１７２０は、図１７（ａ）の方法１７００に機能的に同等である。相違点は、方法１７２０が、制約付きイントラ予測が有効にされたときでさえ、インター予測されたコーディングユニット（ＣＵ）からのサンプルにアクセスしてもよいことである。
【０２０３】
方法１７２０は、参照サンプル・ブロック・コピー・ステップ１７２２をもって開始する。参照サンプル・ブロック・コピー・ステップ１７２２において、プロセッサ２０５の実行下で、コーディングユニット（ＣＵ）全体（例えば、８４２）に、参照サンプル（例えば、８４６）がポピュレートされる（すなわち、参照サンプル・ブロック・コピーが実行される）。参照サンプル（例えば、８４６）は、イントラ予測されたコーディングユニット（ＣＵ）およびインター予測されたコーディングユニット（ＣＵ）（例えば、８４８）の双方からのサンプルを含んでもよい。
【０２０４】
その後、制約付きイントラ予測テストステップ１７２４において、プロセッサ２０５は、図１７（ａ）のステップ１７０２に従って、制約付きイントラ予測が有効にされるかどうかテストするために使用される。制約付きイントラ予測が無効にされる場合に、方法１７２０は終了する。そうでなければ、制御は、制約付きオーバーラップテストステップ１７２６に進む。
【０２０５】
制約付きオーバーラップテストステップ１７２６において、参照ブロックの任意のサンプルが、インター予測されたコーディングユニット（ＣＵ）とオーバーラップする場合、方法１７２０は終了する。そうでなければ、方法１７２０は、オーバーライト部ステップ１７２８に進み、オーバーライト部ステップ１７２８において、コピーされたサンプルは、参照サンプルが、イントラ予測に対して利用不能なものとしてマークされるときに、イントラ予測参照サンプルに使用されるデフォルト値等の、デフォルト値に置換される。ステップ１７２６およびステップ１７２８は、コーディングユニット中の各サンプルにわたって繰り返され、各サンプルを個別にテストすることにより、実現されてもよい。
【０２０６】
図１７（ｃ）は、イントラ・ブロック・コピー・モードを使用するように構成されたコーディングユニット（ＣＵ）に対する参照サンプルブロックを生成させる方法１７４０を示す概略的なフロー図である。方法１７４０は、ビデオ符号化器１１４およびビデオ復号器１３４を実現するソフトウェアコードモジュールのうちの１以上として実現されてもよく、ソフトウェアコードモジュールは、ハードディスクドライブ２１０に常駐し、プロセッサ２０５によりソフトウェアコードモジュールの実行が制御される。方法１７４０は、イントラ・ブロック・コピー・モードを使用するよう構成されたコーディングユニット（ＣＵ）の参照ブロックを生成させるときに実行される。ビデオ符号化器１１４およびビデオ復号器１３４の構成は、例えば、図８（ａ）に示すように、異なるスライスまたはタイルからのコーディング・ツリー・ブロック（ＣＴＢ）を含むフレーム部を処理するときに、方法１７４０を適用してもよい。方法１７４０は、（例えば、ネステッドループを使用して、すべての位置にわたって繰り返すことにより）コーディングユニット（ＣＵ）中の各位置に適用される。
【０２０７】
方法１７４０は、ビデオ符号化器１１４を参照した例により説明する。
【０２０８】
方法１７４０は、同一スライスおよびタイルテストステップ１７４２をもって開始する。
【０２０９】
同一スライスおよびタイルステップ１７４２において、プロセッサ２０５は、現在のコーディング・ツリー・ブロック（ＣＴＢ）および以前のコーディング・ツリー・ブロック（ＣＴＢ）のスライスならびに現在のコーディング・ツリー・ブロック（ＣＴＢ）および以前のコーディング・ツリー・ブロック（ＣＴＢ）のタイルをテストするために使用される。２つのコーディング・ツリー・ブロック（ＣＴＢ）が同一スライスおよび同一タイルに属する場合に、制御は、参照サンプル・コピー・ステップ１７４６に進む。そうでなければ、制御は、デフォルトのサンプル値割り当てステップ１７４４に進む。
【０２１０】
デフォルトのサンプル値割り当てステップ１７４４において、ビデオ符号化器１１４中のイントラ・ブロック・コピー・モジュール３５０は、参照サンプルブロック中のサンプル値にデフォルトのサンプル値を割り当てる。あるいは、方法１７４０が、ビデオ復号器１３４により実行されている場合に、ビデオ復号器１３４中のイントラ・ブロック・コピー・モジュール４３６はステップ１７４４を実行する。
【０２１１】
参照サンプル・コピー・ステップ１７４６において、ビデオ符号化器１１４中のイントラ・ブロック・コピー・モジュール３５０は、フレーム部８００等の、フレーム部からの参照サンプルを参照サンプルブロックにコピーする。あるいは、方法１７４０が、ビデオ復号器１３４により実行されている場合に、ビデオ復号器１３４中のイントラ・ブロック・コピー・モジュール４３６はステップ１７４６を実行する。
【０２１２】
その後、方法１７４０は終了する。
【０２１３】
図１７（ｄ）は、イントラ・ブロック・コピー・モードを使用するように構成されたコーディングユニット（ＣＵ）に対する参照サンプルブロックを生成させる方法１７６０を示す概略的なフロー図である。方法１７６０は、ビデオ符号化器１１４およびビデオ復号器１３４を実現するソフトウェアコードモジュールのうちの１以上として実現されてもよく、ソフトウェアコードモジュールは、ハードディスクドライブ２１０に常駐し、プロセッサ２０５によりソフトウェアコードモジュールの実行が制御される。方法１７６０は、イントラ・ブロック・コピー・モードを使用するよう構成されたコーディングユニット（ＣＵ）の参照ブロックを生成させるときに実行される。ビデオ符号化器１１４およびビデオ復号器１３４は、例えば、図８（ａ）に示すように、異なるスライスまたはタイルからのコーディング・ツリー・ブロック（ＣＴＢ）を含むフレーム部を処理するときに、方法１７６０を適用してもよい。方法１７６０は、ビデオ符号化器１１４を参照した例により説明する。方法１７６０は、参照サンプル・ブロック・コピー・ステップ１７６２をもって開始する。
【０２１４】
参照サンプル・ブロック・コピー・ステップ１７６２において、ビデオ符号化器１１４中のイントラ・ブロック・コピー・モジュール３５０は、フレーム部８００等の、フレーム部からの参照サンプルのブロックを参照サンプルブロックにコピーする。コピーされた参照サンプルのブロックは、異なるスライスまたはタイルに属するコーディング・ツリー・ブロック（ＣＴＢ）からの参照サンプルを含んでもよい。あるいは、方法１７６０が、ビデオ復号器１３４により実行される場合に、ビデオ復号器１３４中のイントラ・ブロック・コピー・モジュール４３６はステップ１７６２を実行する。
【０２１５】
同一スライスおよびタイルステップ１７６４において、プロセッサ２０５は、現在のコーディング・ツリー・ブロック（ＣＴＢ）および以前のコーディング・ツリー・ブロック（ＣＴＢ）のスライスならびに現在のコーディング・ツリー・ブロック（ＣＴＢ）および以前のコーディング・ツリー・ブロック（ＣＴＢ）のタイルをテストする。２つのコーディング・ツリー・ブロック（ＣＴＢ）が同一スライスおよび同一タイルに属する場合に、方法１７６０は終了する。そうでなければ、制御は、コピーされたサンプルの、デフォルトのサンプル値との置換１７６６に進む。
【０２１６】
コピーされたサンプルの、デフォルトのサンプル値との置換１７６６において、ビデオ符号化器１１４中のイントラ・ブロック・コピー・モジュール３５０は、デフォルトのサンプル値を、以前のコーディング・ツリー・ブロック（ＣＴＢ）（すなわち、図８（ａ）中の８１０）に対応する参照サンプルブロック中の位置に割り当てる。あるいは、方法１７６０が、ビデオ復号器１３４により実行されている場合に、ビデオ復号器１３４中のイントラ・ブロック・コピー・モジュール４３６はステップ１７６６を実行する。
【０２１７】
その後、方法１７６０は終了する。
【０２１８】
図１８（ａ）は、ブロックベクトル１８０４の起点が、現在のコーディングユニット（ＣＵ）１８０２位置以外のポイントに対するものである参照ブロック１８０６を参照する、ブロックベクトル１８０４の例を示す概略的なブロック図である。図１８（ａ）に示すように、参照ブロック１８０６の位置は、現在のコーディング・ツリー・ブロック（ＣＴＢ）の上側左隅の位置に対するブロックベクトルのベクトル追加により決定されてもよい。フレーム部１８００（すなわち、ループ内フィルタリング前の、現在および以前のコーディング・ツリー・ブロック（ＣＴＢ））がローカル記憶装置（例えば、メモリ２０６内）に保持される構成では、ベクトル追加は必要とされず、ブロックベクトル１８０４は直接、ローカル記憶装置中の参照ブロック１８０６の位置を規定する。図１８（ａ）の例は、ブロックベクトルが現在のコーディングユニット（ＣＵ）位置に相対的である図８（ａ）〜図８（ｃ）とは対照的である。
【０２１９】
現在のコーディングユニットの上側左隅を起点とするブロックベクトルに対して、ブロックベクトルの垂直的な転置は［０．．５６］に制限される。５６という最大値は、コーディング・ツリー・ブロック（ＣＴＢ）の高さ（すなわち、６４）から、最小コーディングユニット（ＳＣＵ）（すなわち、８）の高さを引くことにより導出される。このため、ｍｖｄ＿ｃｏｄｉｎｇシンタックス構造における垂直的な転置に対する「サイン」ビットを符号化する必要はない。
【０２２０】
ブロックベクトルの水平的な転置は、［−６４．．５６］に制限される。水平的な転置に対して、正および負の値の分布は、現在のコーディングユニット（ＣＵ）位置に対するブロックベクトルに対するものより、さらに均等であることが予想される。このため、ｍｖｄ＿ｃｏｄｉｎｇシンタックス構造における水平的な転置に対する「サイン」ビットに対するバイパス符号化されたビンを使用することで、より高い符号化効率が期待できる。
【０２２１】
図１８（ｂ）は、イントラ・ブロック・コピー・モードを使用するように構成された連続的なコーディングユニット（ＣＵ）間のブロックベクトル表現の例を示す概略的なブロック図である。図１８（ｂ）の例では、フレーム部１８２０は２つのコーディング・ツリー・ブロック（ＣＴＢ）を含む。図１８（ｂ）に見られるように、以前のコーディングユニット（ＣＵ）１８２２は、イントラ・ブロック・コピー・モードを使用するように構成され、ブロックベクトル１８３４は、参照ブロック１８３６を選択するよう構成される。現在のコーディングユニット（ＣＵ）１８２２はまた、イントラ・ブロック・コピー・モードを使用するように構成され、ブロックベクトル１８３０は、参照ブロック１８３２を選択する。コーディングユニット（ＣＵ）の順序付けは、図６（ａ）を参照して説明するように、「Ｚ−スキャン」順に従う。図１８（ｂ）の例では、ブロックベクトル差１８３８は、コーディングユニット（ＣＵ）１８２２のポジションとコーディングユニット（ＣＵ）１８２８との差を考慮して、ブロックベクトル１８３６とブロックベクトル１８３２との間の差を示す。コーディングユニット（ＣＵ）１８２８に対するコーディングユニット（ＣＵ）シンタックス構造は、「ｍｖｄ＿ｃｏｄｉｎｇ」シンタックス構造を使用して、ブロックベクトル１８３０の代わりに、符号化されたビットストリーム３１２にブロックベクトル差１８３８を符号化する。
【０２２２】
１つの構成では、ビデオ符号化器１１４は、上述したように、ブロックベクトル差１８３８を算出し、算出されたブロックベクトル差１８３８を、符号化されたビットストリーム１１４に符号化してもよい。１つの構成では、ビデオ復号器１３４は、符号化されたビットストリーム３１２からブロックベクトル差１８３８を復号し、ブロックベクトル１８３０を決定するために、ブロックベクトル１８３４にブロックベクトル差１８３８を追加してもよい。空間的に近くのイントラ・ブロック・コピーされたコーディングユニット（ＣＵ）のブロックベクトル間の相関が、符号化されたビットストリーム３１２中のブロックベクトルの符号化の効率を増加させるのに利用されることから、ビデオ符号化器１１４およびビデオ復号器１３４のこのような構成は、より高い符号化効率を達成する。このような構成はまた、現在のブロックベクトル（例えば、１８３０）の計算のために１つの以前のブロックベクトル（例えば、１８３４）の記憶を必要とする。以前のブロックベクトルは、現在のブロックベクトルに対する「予測変数」（すなわち、初期値）とみなされてもよい。以前のコーディングユニット（ＣＵ）が、イントラ・ブロック・コピー・モードを使用するよう構成されなかった場合、構成は、記憶されたブロックベクトルを（０，０）にリセットしてもよい。ビデオ符号化器が、算出されたブロックベクトル差１８３８を、符号化されたビットストリーム１１４に符号化し、かつ、ビデオ復号器１３４が、ブロックベクトル差１８３８をブロックベクトル１８３４に追加する構成では、現在のコーディングユニット（ＣＵ）のブロックベクトルに対する任意の相関を有する可能性が低い、より前のコーディングユニット（ＣＵ）からのブロックベクトルが、現在のコーディングユニット（ＣＵ）に対するブロックベクトルの算出に影響を与えるのが妨げられる。
【０２２３】
１つの構成では、現在のコーディングユニット（ＣＵ）の左に隣接する、および／または、上に隣接する、コーディングユニット（ＣＵ）のブロックベクトルも使用してもよい。このような構成では、コーディング・ツリー・ブロック（ＣＴＢ）のトップに沿ったコーディングユニット（ＣＵ）に対する「上」ブロックベクトルに対する「ラインバッファ」を含み、コーディング・ツリー・ブロック（ＣＴＢ）の以前の行からのブロックベクトルを保持する、追加のストレージが必要とされる。さらに、現在のコーディングユニット（ＣＵ）のブロックベクトルに対する予測変数を提供するために、利用可能なブロックベクトルのいずれかを使用してもよい。イントラ・ブロック・コピー・モードを使用するよう構成された近傍コーディングユニット（ＣＵ）は、ブロックベクトル予測に対して「利用可能」であると考えられる。イントラ・ブロック・コピー・モードを使用するよう構成されていない近傍コーディングユニット（ＣＵ）は、ブロックベクトル予測に対して「利用不能」であると考えられる。「左」および「上」ブロックベクトルの双方が利用可能な場合、２つのブロックベクトルの平均が予測変数として使用されてもよい。あるいは、ブロックベクトルのいずれを使用すべきかを規定するために、符号化されたビットストリーム３１２にフラグを符号化してもよい。例えば、フラグがゼロの場合に、左ブロックベクトルが予測変数として使用されてもよく、フラグが１の場合に、上ブロックベクトルが予測変数として使用されてもよい。
【０２２４】
本明細書で説明する構成は、例えば、シンタックス要素を符号化するために必要な多数のコンテキストを減少させることにより、複雑性を低減する方法を示す。説明される構成は、例えば、予測モードまたはコーディングユニット（ＣＵ）モードが、全フレームタイプ（例えば、インター予測対イントラ予測）に対して最適化された方法およびブロック・ベクトル・コーディング方法で、符号化されたビットストリーム３１２において規定されるように、シンタックス要素を順序付けることにより、符号化効率を改善する。さらに、本明細書で説明する構成は、スライス境界、タイル境界、制約付きイントラ予測を含む状況で、イントラ・ブロック・コピー・モードの動作を規定することにより、誤り耐性を提供する。
【産業上の利用可能性】
【０２２５】
説明される構成は、特に、ビデオ信号等の信号を符号化および復号するためのデジタル信号処理に対する、コンピュータおよびデータ処理産業に適用可能である。
【０２２６】
先の説明は、本発明のいくつかの実施形態のみを説明するものであり、発明の範囲および精神から逸脱することなく、発明のいくつかの実施形態に対する変更および／または改変も行うことができ、実施形態は例示であり、限定するものではない。
【０２２７】
本明細書のコンテキストでは、用語「含む（ｃｏｍｐｒｉｓｉｎｇ）」は、「原則的に含むが、必ずしもすべてではない」、または、「有する」、または、「含む（ｉｎｃｌｕｄｉｎｇ）」を意味するが、「のみからなる」を意味しない。「含む（ｃｏｍｐｒｉｓｅ）」および「含む（ｃｏｍｐｒｉｓｅｓ）」等の、用語「含む（ｃｏｍｐｒｉｓｉｎｇ）」の変形は、それに応じて、変化する意味を有する。
【０２２８】
［付録Ａ］
以下のテキストは、コーディングユニット（ＣＵ）シンタックス構造である。
【０２２９】
７．３．８．５  コーディング・ユニット・シンタックス
【０２３０】
【表１−１】
2016534660.tif 000003
【０２３１】
【表１−２】
2016534660.tif 000004
７．４．９．５  コーディング・ユニット・セマンティックス
０に等しいｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇは、現在のコーディングユニットがインター予測モードで符号化されることを規定する。１に等しいｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇは、現在のコーディングユニットがイントラ予測モードで符号化されることを規定する。変数ＣｕＰｒｅｄＭｏｄｅ［ｘ］［ｙ］は、ｘ＝ｘ０．．ｘ０＋ｎＣｂＳ−１かつｙ＝ｙ０．．ｙ０＋ｎＣｂＳ−１に対して、以下のように導出される。
−  ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇが０に等しい場合、ＣｕＰｒｅｄＭｏｄｅ［ｘ］［ｙ］はＭＯＤＥ＿ＩＮＴＥＲに等しく設定される。
−  そうでなければ（ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇが１に等しい）、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇが０に等しい場合に、ＣｕＰｒｅｄＭｏｄｅ［ｘ］［ｙ］はＭＯＤＥ＿ＩＮＴＲＡに等しく設定される。
−  そうでなければ（ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇが１に等しく、かつ、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇが１に等しい）、ＣｕＰｒｅｄＭｏｄｅ［ｘ］［ｙ］は、ＭＯＤＥ＿ＩＮＴＲＡＢＣに等しく設定される。
【０２３２】
ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇが存在しないときに、変数ＣｕＰｒｅｄＭｏｄｅ［ｘ］［ｙ］は、ｘ＝ｘ０．．ｘ０＋ｎＣｂＳ−１かつｙ＝ｙ０．．ｙ０＋ｎＣｂＳ−１に対して、以下のように導出される。
−  ｓｌｉｃｅ＿ｔｙｐｅがＩに等しい場合にＣｕＰｒｅｄＭｏｄｅ［ｘ］［ｙ］はＭＯＤＥ＿ＩＮＴＲＡに等しいと推測される。
−  そうでなければ（ｓｌｉｃｅ＿ｔｙｐｅがＰまたはＢに等しい）、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］が１に等しいときに、ＣｕＰｒｅｄＭｏｄｅ［ｘ］［ｙ］はＭＯＤＥ＿ＳＫＩＰに等しいと推測される。
【０２３３】
７．４．９．９  動きベクトル差セマンティックス
変数ＢｖＩｎｔｒａ［ｘ０］［ｙ０］［ｃｏｍｐＩｄｘ］は、イントラ・ブロック・コピー予測モードに対して使用されるベクトルを規定する。ＢｖＩｎｔｒａ［ｘ０］［ｙ０］は、−１２８〜１２８（１２８も含む）の範囲にある。アレイインデックスｘ０、ｙ０は、ピクチャの左上ルマサンプルに対する、考えられる予測ブロックの左上ルマサンプルの位置（ｘ０，ｙ０）を規定する。水平ブロックベクトル成分に、ｃｏｍｐＩｄｘ＝０が割り当てられ、垂直ブロックベクトル成分に、ｃｏｍｐＩｄｘ＝１が割り当てられる。
【０２３４】
付録Ａ終わり。
【０２３５】
［付録Ｂ］
付録Ｂは、図８（ｃ）に示す構成にかかるビデオ符号化器１１４およびビデオ復号器１３４に対する整合性制約を示す。
【０２３６】
ｃｏｎｓｔｒａｉｎｅｄ＿ｉｎｔｒａ＿ｐｒｅｄ＿ｆｌａｇが１に等しいときに、参照サンプル位置（ｘＲｅｆＣｍｐ、ｙＲｅｆＣｍｐ）における各サンプルが「イントラ予測に対して利用可能」なものとしてマークされるように、ＢｖＩｎｔｒａ［ｘ０］［ｙ０］が制約されることが、ビットストリームの整合性の要件である。
【０２３７】
付録Ｂ終わり。
【０２３８】
［付録Ｃ］
付録Ｂは、図８（ｃ）に示す構成にかかるビデオ符号化器１１４およびビデオ復号器１３４に対する整合性制約を示す。
【０２３９】
８．４．４．２．７  イントラ・ブロック・コピー予測モードの規定
変数ｂｉｔＤｅｐｔｈは以下のように導出される。
−  ｃＩｄｘが０に等しい場合、ｂｉｔＤｅｐｔｈはＢｉｔＤｅｐｔｈｙに等しく設定される。
−  そうでなければ、ｂｉｔＤｅｐｔｈはＢｉｔＤｅｐｔｈｃに等しく設定される。
【０２４０】
ｘ，ｙ＝０．．ｎＴｂＳ−１である、予測されるサンプルサンプルの（ｎＴｂＳ）×（ｎＴｂＳ）アレイは、以下のように導出される。
−  参照サンプル位置（ｘＲｅｆＣｍｐ，ｙＲｅｆＣｍｐ）は以下のように規定される。（ｘＲｅｆＣｍｐ，ｙＲｅｆＣｍｐ）＝（ｘＴｂＣｍｐ＋ｘ＋ｂｖ［０］，ｙＴｂＣｍｐ＋ｙ＋ｂｖ［１］）（８−６５）
−  「イントラ予測に対して利用可能である」とマークされた、位置（ｘＲｅｆＣｍｐ，ｙＲｅｆＣｍｐ）における各サンプルは、ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］に割り当てられる。
−  「イントラ予測に対して利用可能でない」とマークされた、位置（ｘＲｅｆＣｍｐ，ｙＲｅｆＣｍｐ）における各サンプルにおいて、１＜＜（ｂｉｔＤｅｐｔｈ−１）の値は、ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］に割り当てられる。
【０２４１】
付録Ｃ終わり。
【０２４２】
［付録Ｄ］
９．３．２．２  コンテキスト変数に対する初期化プロセス
表９−４−初期化プロセス中の各初期化タイプに対するｃｔｘＩｄｘおよびシンタックス要素の関連性
【０２４３】
【表２】
2016534660.tif 000005
表９−３３−ｉｎｔｒａ＿ｂｃ＿ｆｌａｇのｃｔｘＩｄｘに対するｉｎｉｔＶａｌｕｅの値
【０２４４】
【表３】
2016534660.tif 000006
９．３．４．２．２  左および上のシンタックス要素を使用した、ｃｔｘＩｎｃの導出プロセス
表９−４０−左および上のシンタックス要素を使用した、ｃｔｘＩｎｃの規定
【０２４５】
【表４】
2016534660.tif 000007
付録Ｄ終わり。
【図１】
2016534660.tif 000008
【図２ａ】
2016534660.tif 000009
【図２ｂ】
2016534660.tif 000010
【図３】
2016534660.tif 000011
【図４】
2016534660.tif 000012
【図５】
2016534660.tif 000013
【図６ａ】
2016534660.tif 000014
【図６ｂ】
2016534660.tif 000015
【図７ａ】
2016534660.tif 000016
【図７ｂ】
2016534660.tif 000017
【図８ａ】
2016534660.tif 000018
【図８ｂ】
2016534660.tif 000019
【図８ｃ】
2016534660.tif 000020
【図８ｄ】
2016534660.tif 000021
【図９】
2016534660.tif 000022
【図１０】
2016534660.tif 000023
【図１１】
2016534660.tif 000024
【図１２】
2016534660.tif 000025
【図１３】
2016534660.tif 000026
【図１４】
2016534660.tif 000027
【図１５ａ】
2016534660.tif 000028
【図１５ｂ】
2016534660.tif 000029
【図１６】
2016534660.tif 000030
【図１７ａ】
2016534660.tif 000031
【図１７ｂ】
2016534660.tif 000032
【図１７ｃ】
2016534660.tif 000033
【図１７ｄ】
2016534660.tif 000034
【図１８ａ】
2016534660.tif 000035
【図１８ｂ】
2016534660.tif 000036
【国際調査報告】
2016534660.tif 000037
2016534660.tif 000038