(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
現在ブロックに空間的に隣接する、１つまたは複数の再構成されたサンプルを決定することと、ここにおいて、前記現在ブロックは、コーディングユニット（ＣＵ）、予測ユニット（ＰＵ）、およびサブ予測ユニット（サブＰＵ）のうちの１つまたは複数を含む、
前記現在ブロックについての１つまたは複数の照明補償パラメータを決定することと、ここにおいて、前記１つまたは複数の照明補償パラメータは、前記現在ブロックと少なくとも１つの予測ブロックとの間の照明の変動を補償し、前記１つまたは複数の照明補償パラメータは、双方向時間予測モードの各予測方向について決定され、前記双方向時間予測モードの各予測方向は、それぞれの参照ピクチャリストを使用する予測に対応し、各参照ピクチャリストは、前記現在ブロックに対する異なる時間ロケーション中にある参照ピクチャを備え、前記現在ブロックについての１つまたは複数の照明補償パラメータを決定することは、ｉ）前記現在ブロックについて、1つまたは複数の照明補償パラメータの複数のセットを含むリストを生成することと、ｉｉ）前記複数のセットのうちの１つまたは複数の照明補償パラメータを示すインデックスを、符号化ビットストリームから復号することと、を備え、前記複数のセットのうちの少なくとも１つのセットは、前記現在ブロックに空間的に隣接する、前記１つまたは複数の再構成されたサンプルのうちの少なくとも１つに基づく、
前記現在ブロックのための照明補償パラメータとして、前記インデックスにより選択された前記１つまたは複数の照明補償パラメータを使用して、前記符号化ビットストリームの一部として前記現在ブロックを復号することと、
を備える、方法。
【請求項２】
前記照明補償パラメータは、前記現在ブロックに関連する動き情報によって識別される参照ピクチャ中の前記現在ブロックに空間的に隣接する前記１つまたは複数の再構成されたサンプルに対する１つまたは複数の対応するサンプルにさらに基づいて決定される、請求項１に記載の方法。
【請求項３】
前記現在ブロックは、サブＰＵである、請求項１に記載の方法。
【請求項４】
ビデオデータを記憶するように構成されたメモリと、
プロセッサと、を備え、前記プロセッサは、
現在ブロックに空間的に隣接する、１つまたは複数の再構成されたサンプルを決定することと、ここにおいて、前記現在ブロックは、コーディングユニット（ＣＵ）、予測ユニット（ＰＵ）、およびサブ予測ユニット（サブＰＵ）のうちの１つまたは複数を含む、
前記現在ブロックについての１つまたは複数の照明補償パラメータを決定することと、ここにおいて、前記１つまたは複数の照明補償パラメータは、前記現在ブロックと少なくとも１つの予測ブロックとの間の照明の変動を補償し、前記１つまたは複数の照明補償パラメータは、双方向時間予測モードの各予測方向について決定され、前記双方向時間予測モードの各予測方向は、それぞれの参照ピクチャリストを使用する予測に対応し、各参照ピクチャリストは、前記現在ブロックに対する異なる時間ロケーション中にある参照ピクチャを備え、前記現在ブロックについての１つまたは複数の照明補償パラメータを決定することは、ｉ）前記現在ブロックについて、1つまたは複数の照明補償パラメータの複数のセットを含むリストを生成することと、ｉｉ）前記複数のセットのうちの１つまたは複数の照明補償パラメータを示すインデックスを、符号化ビットストリームから復号することと、を備え、前記複数のセットのうちの少なくとも１つのセットは、前記現在ブロックに空間的に隣接する、前記１つまたは複数の再構成されたサンプルのうちの少なくとも１つに基づく、
前記現在ブロックのための照明補償パラメータとして、前記インデックスにより選択された前記１つまたは複数の照明補償パラメータを使用して、前記符号化ビットストリームの一部として前記現在ブロックを復号することと、
を行うように構成された、装置。
【請求項５】
前記照明補償パラメータは、前記現在ブロックに関連する動き情報によって識別される参照ピクチャ中の前記現在ブロックに空間的に隣接する前記１つまたは複数の再構成されたサンプルに対する１つまたは複数の対応するサンプルにさらに基づいて決定される、請求項４に記載の装置。
【請求項６】
前記現在ブロックは、サブＰＵである、請求項４に記載の装置。
【請求項７】
プロセッサによって実行されたとき、前記プロセッサに、請求項１〜３のうちのいずれか一項に従った方法を行わせる命令を記憶したコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は一般にビデオコーディングに関する。より詳細には、本開示は、ビデオコーディングのための照明補償を実施するためのシステムおよび方法に関する。
【背景技術】
【０００２】
[0002]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００３】
[0003]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間（イントラピクチャ）予測および／または時間（インターピクチャ）予測を含む。ブロックベースビデオコーディングでは、ビデオスライス（たとえば、ビデオフレームまたはビデオフレームの一部分）が、いくつかの技法ではコーディングツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００４】
[0004]空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初に２次元アレイで構成される量子化された変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
【発明の概要】
【０００５】
[0005]いくつかの実施形態では、１つまたは複数の空間的に隣接するサンプルに基づいて１つまたは複数の照明補償（illumination compensation）パラメータを導出またはシグナリングするための技法およびシステムが説明される。ビデオエンコーダが、１つまたは複数のピクチャ間の照明の変動を効率的に補償するために照明補償を使用することができる。ビデオエンコーダは、符号化されているコーディングブロックについての、または、コーディングユニット、予測ユニット、サブ予測ユニット、あるいは他のコーディングブロック、コーディングユニット、あるいは予測ユニットについての、１つまたは複数の照明補償パラメータを決定することができる。照明補償パラメータは、オフセット、１つまたは複数のスケーリングファクタ、シフト数、または他の好適な照明補償パラメータを含むことができる。照明補償パラメータは、ビットストリーム中でシグナリングされ得るか、あるいは参照ブロック、隣接ブロック、特定のサンプル（たとえば、ピクセル）、または他の情報のうちの１つまたは複数に基づいて決定され得る。ビデオデコーダが、現在ブロックを復号するための予測データを構成するために、照明補償パラメータおよび／または他のデータを利用することができる。
【０００６】
[0006]少なくとも１つの例によれば、現在ブロックについての１つまたは複数の照明補償パラメータを決定することと、１つまたは複数の照明補償パラメータを使用して、符号化ビットストリームの一部として現在ブロックをコーディングすることとを含む、ビデオデータをコーディングする方法が提供される。
【０００７】
[0007]別の例では、ビデオデータを記憶するように構成されたメモリと、プロセッサとを含む装置が提供される。プロセッサは、現在ブロックについての１つまたは複数の照明補償パラメータを決定するように構成され、および決定し得る。プロセッサは、さらに、１つまたは複数の照明補償パラメータを使用して符号化ビットストリームの一部として現在ブロックをコーディングするように構成され、およびコーディングし得る。
【０００８】
[0008]別の例では、プロセッサによって実行されたとき、現在ブロックについての１つまたは複数の照明補償パラメータを決定することと、１つまたは複数の照明補償パラメータを使用して符号化ビットストリームの一部として現在ブロックをコーディングすることとを含む方法を実行する命令を記憶したコンピュータ可読媒体が提供される。
【０００９】
[0009]別の例では、現在ブロックについての１つまたは複数の照明補償パラメータを決定するための手段と、１つまたは複数の照明補償パラメータを使用して符号化ビットストリームの一部として現在ブロックをコーディングするための手段とを含む装置が提供される。
【００１０】
[0010]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、現在ブロックについての１つまたは複数の照明補償パラメータを決定することと、１つまたは複数の照明補償パラメータを使用して符号化ビットストリームの一部として現在ブロックをコーディングすることとをさらに含み得る。
【００１１】
[0011]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、現在ブロックについての１つまたは複数の空間的に隣接するサンプルを決定することと、１つまたは複数の空間的に隣接するサンプルのうちの少なくとも１つに基づいて、現在ブロックについての１つまたは複数の照明補償パラメータを導出することと、１つまたは複数の照明補償パラメータを使用して符号化ビットストリームの一部として現在ブロックをコーディングすることと、現在ブロックについて、個々に、符号化ビットストリーム中で照明補償ステータスをシグナリングすることと、をさらに含み得る。
【００１２】
[0012]いくつかの態様では、１つまたは複数の空間的に隣接するサンプルは、現在ブロックの１つまたは複数の再構成された空間的に隣接するサンプル；および／または、現在ブロックに関連する動き情報によって識別される参照ピクチャ中の現在ブロックの１つまたは複数の再構成された空間的に隣接するサンプルに対する１つまたは複数の対応するサンプル；のうちの少なくとも１つまたは複数である。
【００１３】
[0013]いくつかの態様では、１つまたは複数の対応するサンプルを識別するために使用される現在ブロックに関連する動き情報は、サブＰＵベースの時間または空間予測モードが現在ブロックのために使用されるとき、現在ブロックの代表的動き情報を含む。
【００１４】
[0014]いくつかの態様では、１つまたは複数の空間的に隣接するサンプルは、複数の隣接サンプルを備え、ここにおいて、空間的に隣接するサンプルのうちの少なくとも１つは、複数の隣接サンプルのすべてよりも少ないサンプルを含む。
【００１５】
[0015]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、符号化ビットストリーム中で現在ブロックについての１つまたは複数の照明補償パラメータのうちの少なくとも１つをシグナリングすることをさらに含み得る。
【００１６】
[0016]いくつかの態様では、現在ブロックは、候補ブロックから動き情報をコピーまたは導出するインター予測モードを使用してコーディングされ、１つまたは複数の照明補償パラメータは、候補ブロックの１つまたは複数の照明補償パラメータと同じであるように導出される。
【００１７】
[0017]いくつかの態様では、現在ブロックはマージモードを使用してコーディングされ、現在ブロックについての１つまたは複数の照明補償パラメータは、候補ブロックの１つまたは複数の照明補償パラメータと同じであるように導出される。
【００１８】
[0018]いくつかの態様では、候補ブロックは、空間マージ候補、時間マージ候補、または双予測マージ候補のうちの少なくとも１つまたは複数である。
【００１９】
[0019]いくつかの態様では、現在ブロックについての照明補償ステータスは、現在ブロックが、符号化ビットストリーム中で現在ブロックの動き情報を明示的にシグナリングするインター予測モードを使用してコーディングされるとき、符号化ビットストリーム中で明示的にシグナリングされる。
【００２０】
[0020]いくつかの態様では、現在ブロックについての１つまたは複数の照明補償パラメータは、符号化ビットストリーム中で明示的にシグナリングされる。
【００２１】
[0021]いくつかの態様では、現在ブロックについての両方の参照ピクチャリスト（参照ピクチャリスト０および参照ピクチャリスト１）についての１つまたは複数の照明補償パラメータは、符号化ビットストリーム中で一緒にシグナリングされる。たとえば、両方の参照ピクチャリスト（リスト０およびリスト１）についての照明補償パラメータの値を示すためにインデックスがシグナリングされる。
【００２２】
[0022]いくつかの態様では、現在ブロックについての１つまたは複数の照明補償パラメータは、現在ブロックが、高度動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）モードを使用してコーディングされるとき、符号化ビットストリーム中で明示的にシグナリングされる。
【００２３】
[0023]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、現在ブロックについての１つまたは複数の照明補償パラメータの複数のセットのリストを導出することをさらに含み得、ここにおいて、１つまたは複数の照明補償パラメータをシグナリングすることは、複数のセットのうちの１つの選択をシグナリングすることを備える。
【００２４】
[0024]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、スライスヘッダ中で現在ブロックを備えるスライスについての照明補償パラメータをシグナリングすることをさらに含み得る。いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、現在ブロックを備えるＣＴＵについての照明補償パラメータをシグナリングすることをさらに含み得る。いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、現在ブロックを備えるブロックのグループ、または現在ブロックを備える別の他のブロックレベルについての照明補償パラメータをシグナリングすることをさらに含み得る。
【００２５】
[0025]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、クロマ（chroma）とルーマ(luma)について別々に照明補償パラメータをシグナリングすることをさらに含み得る。
【００２６】
[0026]いくつかの態様では、１つまたは複数の照明補償パラメータは、スケールまたはオフセットのうちの少なくとも１つまたは複数を含む。
【００２７】
[0027]いくつかの態様では、方法はワイヤレス通信デバイス上で実行可能である。ワイヤレス通信デバイスは、ビデオデータを記憶するように構成されたメモリと、メモリに記憶されたビデオデータを処理するための命令を実行するように構成されたプロセッサと、符号化ビットストリームを受信するように構成された受信機とを備える。いくつかの態様では、ワイヤレス通信デバイスはセルラー電話であり、符号化ビデオビットストリームはセルラー通信規格に従って変調される。
【００２８】
[0028]本発明の概要は、請求される主題の主要なまたは本質的な特徴を識別するものではなく、請求される主題の範囲を決定するために独立して使用されるものでもない。本主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照することによって理解されたい。
【００２９】
[0029]上記のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照すると、より明らかになろう。
【００３０】
[0030]本発明の例示的な実施形態が、以下の図面を参照しながら以下で詳細に説明される。
【図面の簡単な説明】
【００３１】
【図１】本開示の技法を実装し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】コーディングユニットのためのパーティションモードの例を示すブロック図。
【図３】本開示の技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図４】本開示の技法を実装し得るビデオデコーダの一例を示すブロック図。
【図５Ａ】マージモードのための例示的な空間隣接動きベクトル候補を示す概念図。
【図５Ｂ】高度動きベクトル予測（ＡＭＶＰ）モードのための例示的な空間隣接動きベクトル候補を示す概念図。
【図６Ａ】例示的な時間動きベクトル予測子（ＴＭＶＰ：temporal motion vector predictor）候補および動きベクトルスケーリングを示す概念図。
【図６Ｂ】例示的な時間動きベクトル予測子（ＴＭＶＰ）候補および動きベクトルスケーリングを示す概念図。
【図７】テンプレートマッチングベースのデコーダ側動きベクトル導出（ＤＭＶＤ：decoder side motion vector derivation）の一例を示す概念図。
【図８】ＤＭＶＤにおけるミラーベースの双方向動きベクトル導出の一例を示す概念図。
【図９】ＤＭＶＤを使用して予測ユニット（ＰＵ）を復号する一例を示すフローチャート。
【図１０】現在ブロックについての照明補償（ＩＣ：illumination compensation）パラメータの導出のために使用されるサンプルの図。
【図１１】いくつかの実施形態による、ビデオデータをコーディングするプロセスの一実施形態を示すフローチャート。
【図１２】いくつかの実施形態による、ビデオデータをコーディングするプロセスの一実施形態を示すフローチャート。
【発明を実施するための形態】
【００３２】
[0043]本開示のいくつかの態様および実施形態が以下で与えられる。当業者に明らかであるように、これらの態様および実施形態のうちのいくつかは独立して適用され得、それらのうちのいくつかは組合せで適用され得る。以下の説明では、説明の目的で、本発明の実施形態の完全な理解を与えるために具体的な詳細が記載される。ただし、様々な実施形態は、これらの具体的な詳細なしに実施され得ることが明らかであろう。図および説明は限定するものではない。
【００３３】
[0044]以下の説明は、例示的な実施形態のみを与えるものであり、本開示の範囲、適用性、または構成を限定するものではない。そうではなく、例示的な実施形態の以下の説明は、例示的な実施形態を実装することを可能にする説明を当業者に与える。添付の特許請求の範囲に記載されるように、本発明の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得ることを理解されたい。
【００３４】
[0045]以下の説明では、実施形態の完全な理解を与えるために具体的な詳細が与えられる。ただし、実施形態はこれらの具体的な詳細なしに実施され得ることを当業者は理解されよう。たとえば、回路、システム、ネットワーク、プロセス、および他の構成要素は、実施形態を不要な詳細で不明瞭にしないためにブロック図の形態で構成要素として示され得る。他の事例では、実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法が不要な詳細なしに示され得る。
【００３５】
[0046]また、個々の実施形態は、フローチャート、流れ図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明されることがあることに留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えられ得る。それの動作が完了されるとき、プロセスは終了されるが、図中に含まれない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するとき、それの終了は呼出し関数またはメイン関数への関数の復帰に対応することができる。
【００３６】
[0047]「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブルストレージデバイス、光ストレージデバイス、ならびに（１つまたは複数の）命令および／またはデータを記憶、含有、または担持することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶され得る非一時的媒体を含み得、それは、ワイヤレスにまたはワイヤード接続を介して伝搬する搬送波および／または一時的電子信号を含まない。非一時的媒体の例としては、限定はしないが、磁気ディスクまたはテープ、コンパクトディスク（ＣＤ）またはデジタル多用途ディスク（ＤＶＤ）などの光記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスがあり得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは命令、データ構造、またはプログラムステートメントの任意の組合せを表し得るコードおよび／または機械実行可能命令をその上に記憶していることがある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容をパスおよび／または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を介してパス、フォワーディング、または送信され得る。
【００３７】
[0048]さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実装されるとき、必要なタスク（たとえば、コンピュータプログラム製品）を実施するためのプログラムコードまたはコードセグメントは、コンピュータ可読または機械可読媒体に記憶され得る。（１つまたは複数の）プロセッサが、必要なタスクを実施し得る。
【００３８】
[0049]ビデオエンコーダおよびデコーダを使用するビデオコーディングのいくつかのシステムおよび方法が本明細書で説明される。たとえば、コーディングの１つまたは複数のシステムおよび方法は、ブロックベースのビデオコーディングにおいて照明補償（ＩＣ）を適用することを対象とする。技法は、既存のビデオコーデック（たとえば、高効率ビデオコーディング（ＨＥＶＣ）、アドバンストビデオコーディング（ＡＶＣ）、または他の好適な既存のビデオコーデック）のいずれかに適用され得るか、または、任意の将来のビデオコーディング規格のための効率的なコーディングツールであり得る。
【００３９】
[0050]ビデオコーディングデバイスは、ビデオデータを効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長を低減または除去するために、空間予測（たとえば、イントラフレーム予測またはイントラ予測）、時間予測（たとえば、インターフレーム予測またはインター予測）、および／または他の予測技法を適用することを含み得る。ビデオエンコーダは、一般に、元のビデオシーケンスの各ピクチャを（以下でより詳細に説明される）ビデオブロックまたはコーディングユニットと呼ばれる矩形領域に区分する。これらのビデオブロックは、特定の予測モードを使用して符号化され得る。
【００４０】
[0051]ビデオブロックは、本明細書でさらに説明されるように、より小さいブロック（たとえば、コーディングツリーブロック（ＣＴＢ）、予測ブロック（ＰＢ）、変換ブロック（ＴＢ））の１つまたは複数のグループに１つまたは複数の方法で分割され得、各グループはビデオブロック全体を個々に表す。したがって、概してブロックへの言及は、別段に規定されていない限り、当業者によって理解されるように、そのようなビデオブロック（たとえば、コーディングツリーブロック（ＣＴＢ）、コーディングブロックなど）、予測ブロック、変換ブロック、あるいは他の適切なブロックまたはサブブロックを指すことがある。さらに、これらのブロックの各々はまた、本明細書では、互換的に「ユニット」（たとえば、コーディングツリーユニット（ＣＴＵ：coding tree unit）、コーディングユニット、予測ユニット（ＰＵ）、変換ユニット（ＴＵ）など）と呼ばれることがある。ユニットが、ビットストリーム中で符号化されるコーディング論理ユニットを示し得、ブロックが、プロセスがターゲットであるビデオフレームバッファの一部分を示し得ることを、当業者は認識されよう。
【００４１】
[0052]インター予測モードの場合、ビデオエンコーダは、一般に、参照フレームと呼ばれる、別の時間ロケーション中にあるフレーム中で符号化されているブロックと同様のブロックを探索する。ビデオエンコーダは、その探索を、符号化されるべきブロックからのある空間変位に制限し得る。最良マッチが、水平変位成分と垂直変位成分とを含む２次元（２Ｄ）動きベクトルを使用して特定され得る。イントラ予測モードの場合、ビデオエンコーダは、同じピクチャ内の前に符号化された隣接ブロックからのデータに基づいて、空間予測技法を使用して、予測されたブロックを形成し得る。
【００４２】
[0053]ビデオエンコーダは予測誤差を決定し得る。たとえば、予測は、符号化されているブロック中のピクセル値と予測されたブロック中のピクセル値との間の差分として決定され得る。予測誤差は残差と呼ばれることもある。ビデオエンコーダはまた、変換係数を生成するために、予測誤差に変換（たとえば、離散コサイン変換（ＤＣＴ）または他の好適な変換）を適用し得る。変換の後に、ビデオエンコーダは変換係数を量子化し得る。量子化された変換係数と動きベクトルとは、シンタックス要素を使用して表され、制御情報とともに、ビデオシーケンスのコード化表現を形成し得る。いくつかの事例では、ビデオエンコーダはシンタックス要素をエントロピーコーディングし、それにより、さらに、それらの表現のために必要とされるビット数を低減し得る。
【００４３】
[0054]ビデオデコーダは、上記で説明されたシンタックス要素および制御情報を使用して、現在フレームを復号するための予測データ（たとえば、予測ブロック）を構成し得る。たとえば、ビデオデコーダは、予測されたブロックと圧縮された予測誤差とを加え得る。ビデオデコーダは、量子化された係数を使用して変換基底関数（transform basis function）を重み付けすることによって、圧縮された予測誤差を決定し得る。再構成されたフレームと元のフレームとの間の差分は、再構成誤差（reconstruction error）と呼ばれる。
【００４４】
[0055]いくつかの事例では、ビデオエンコーダは、１つまたは複数のピクチャ間の照明（たとえば、輝度（brightness））の変動を効率的にコーディングするために照明補償（illumination compensation (IC)）を使用することができる。ビデオエンコーダは、符号化されているコーディングブロックについての、あるいは、コーディングユニット、予測ユニット、サブ予測ユニット、または他のコーディングブロック、コーディングユニット、または予測ユニットについての１つまたは複数のＩＣパラメータ（たとえば、オフセット、１つまたは複数のスケーリングファクタ、シフト数（固定であり得る）、または他の好適なＩＣパラメータ）を決定することができる。ＩＣパラメータは、参照ブロック、隣接ブロック、特定のサンプル（たとえば、ピクセル）、または他の情報のうちの１つまたは複数に基づいて決定され得る。ビデオエンコーダは、符号化ビットストリーム中で符号化されているブロックについてのインジケータ（たとえば、１つまたは複数のビット）および／またはＩＣパラメータを含むことができる。インジケータはフラグと呼ばれることもある。インジケータおよび／またはＩＣパラメータは、符号化ビットストリーム中でシンタックス要素の一部として符号化され得る。ビデオデコーダは、現在ブロックを復号するための予測データを構成するために、フラグ、ＩＣパラメータ、および／または他のデータを利用することができる。
【００４５】
[0056]本開示の態様によれば、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）は、ＩＣパラメータを導出し、および／またはビットストリームのためにコーディングするとき、ブロックがＩＣを使用するかどうかをシグナリングし得る。たとえば、ビデオコーダは、ＩＣがどのように使用されるかの指示、使用されるＩＣパラメータの指示、符号化ビットストリーム中のＩＣパラメータ自体、またはそれらの任意の組合せのうちの少なくとも１つまたは複数を含むＩＣ情報を挿入し得る。ビデオコーダは、符号化ビットストリーム中のＩＣ情報に基づいて、符号化ビットストリームをさらに復号し得る。
【００４６】
[0057]図１は、動き情報を導出し、ブロック区分を実施し、照明補償（ＩＣ）を実施するための技法を利用し、および／または他のコーディング演算を実施することができる例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを与えるソースデバイス１２を含む。特に、ソースデバイス１２は、コンピュータ可読媒体１６を介して宛先デバイス１４にビデオデータを与える。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００４７】
[0058]宛先デバイス１４は、コンピュータ可読媒体１６を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体１６は、ソースデバイス１２が、符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００４８】
[0059]いくつかの例では、符号化データは、出力インターフェース２２からストレージデバイスに出力され得る。同様に、符号化データは入力インターフェース２８によってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ソースデバイス１２によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、その符号化ビデオデータを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブがある。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００４９】
[0060]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００５０】
[0061]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、動き情報を導出し、ブロック区分を実施し、および／またはＩＣを実施するための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス１２は、外部カメラなど、外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイス３２とインターフェースし得る。
【００５１】
[0062]図１の図示のシステム１０は一例にすぎない。動き情報を導出し、ブロック区分を実施し、および／またはＩＣを実施するための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実施され得る。概して、本開示の技法はビデオ符号化デバイスによって実施されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実施され得る。その上、本開示の技法はビデオプリプロセッサによっても実施され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。
【００５２】
[0063]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。いくつかの場合には、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース２２によってコンピュータ可読媒体１６上に出力され得る。
【００５３】
[0064]コンピュータ可読媒体１６は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙディスク、または他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示せず）は、たとえば、ネットワーク送信を介して、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを宛先デバイス１４に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体１６は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
【００５４】
[0065]宛先デバイス１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ビデオエンコーダ２０によって定義され、またビデオデコーダ３０によって使用される、ブロックおよび他のコード化ユニット、たとえば、ピクチャグループ（ＧＯＰ）の特性および／または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００５５】
[0066]図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれ、オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００５６】
[0067]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実施するために１つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００５７】
[0068]本開示は、概して、ビデオエンコーダ２０が、ある情報をビデオデコーダ３０などの別のデバイスに「シグナリング」することに言及することがある。「シグナリング」という用語は、概して、圧縮された（符号化された）ビデオデータを復号するために使用され得るシンタックス要素および／または他のデータの通信を指すことがある。そのような通信は、リアルタイムまたはほぼリアルタイムに行われ得る。代替的に、そのような通信は、符号化時に符号化ビットストリーム中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われることがあるなど、ある時間期間にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。
【００５８】
[0069]ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオコーディング規格に従って動作し得る。ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ：Motion Picture Experts Group）とのジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）ならびにジョイントコラボレーションチームオン３Ｄビデオコーディング拡張開発（ＪＣＴ−３Ｖ：Joint Collaboration Team on 3D Video Coding Extension Development）によって開発された例示的なビデオコーディング規格は、それの範囲拡張、マルチビュー拡張（ＭＶ−ＨＥＶＣ）およびスケーラブル拡張（ＳＨＶＣ）を含む、高効率ビデオコーディング（ＨＥＶＣ）またはＩＴＵ−Ｔ  Ｈ．２６５を含む。確定されたＨＥＶＣ規格文書は、「ITU-T H.265, SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services - Coding of moving video - High Efficiency Video Coding」、国際電気通信連合（ＩＴＵ）の電気通信標準化部門、２０１３年４月として公開されている。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、それのスケーラブルビデオコーディング（ＳＶＣ：Scalable Video Coding）拡張およびマルチビュービデオコーディング（ＭＶＣ：Multiview Video Coding）拡張を含む、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌおよび（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４など、他のプロプライエタリ規格または業界規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。たとえば、本開示の技法は、様々な他のプロプライエタリまたは非プロプライエタリビデオコーディング技法、あるいはＩＴＵ−Ｔ  Ｈ．２６６などの後続の規格とともに使用され得る。
【００５９】
[0070]上述のように、インター予測モードの場合、ビデオエンコーダ２０は、符号化されているブロック（「現在ブロック」）と同様のブロックを、参照ピクチャと呼ばれる、別の時間ロケーションのピクチャ中で探索し得る。参照ピクチャを識別するために使用される情報は、動き情報と呼ばれることがある。たとえば、各ブロックについて、動き情報のセットが利用可能であり得る。動き情報のセットは、前方（forward）予測方向および後方（backward）予測方向のための動き情報を含んでいる。ここで、前方予測方向および後方予測方向は、双方向予測モードの２つの予測方向である。「前方」および「後方」という用語は、必ずしも幾何学的（geometrical）な意味を有するとは限らず、代わりに、現在ピクチャの参照ピクチャリスト０（ＲｅｆＰｉｃＬｉｓｔ０）および参照ピクチャリスト１（ＲｅｆＰｉｃＬｉｓｔ１）に対応し得る。１つの参照ピクチャリストのみがピクチャまたはスライスのために利用可能であるとき、ＲｅｆＰｉｃＬｉｓｔ０のみが利用可能であり、スライスの各ブロックの動き情報は常に前方予測方向であり得る。
【００６０】
[0071]各予測方向について、動き情報は、参照インデックスと動きベクトルとを含んでいる。いくつかの場合には、簡単のために、動きベクトル自体は、それが、関連する参照インデックスを有するとものとして言及され得る。参照インデックスは、現在参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）中の参照ピクチャを識別するために使用される。動きベクトルは水平成分と垂直成分とを有する。
【００６１】
[0072]いくつかの場合には、復号プロセスでは、動きベクトルがそれの参照インデックスとともに使用される。関連する参照インデックスをもつそのような動きベクトルは、動き情報の単予測セットとして示され得る。
【００６２】
[0073]ビデオコーディング規格において、ピクチャの表示順序を識別するためにピクチャ順序カウント（ＰＯＣ：picture order count）が広く使用されている。１つのコード化ビデオシーケンス内の２つのピクチャが同じＰＯＣ値を有し得る場合があり得るが、一般に、それはコード化ビデオシーケンス内で起こらない。複数のコード化ビデオシーケンスがビットストリーム中に存在するとき、ＰＯＣの同じ値をもつピクチャは、復号順序に関して互いに近いことがある。ピクチャのＰＯＣ値は、参照ピクチャリスト構成、（たとえば、ＨＥＶＣの場合のような）参照ピクチャセットの導出、動きベクトルスケーリング、または他の好適な使用のために使用され得る。
【００６３】
[0074]Ｈ．２６４／ＡＶＣでは、各インターマクロブロック（ＭＢ）は、１つの１６×１６ＭＢパーティションと、２つの１６×８ＭＢパーティションと、２つの８×１６ＭＢパーティションと、４つの８×８ＭＢパーティションとを含む、４つの異なる方法で区分され得る。１つのＭＢ中の異なるＭＢパーティションは、各方向について異なる参照インデックス値（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）を有し得る。ＭＢが４つの８×８ＭＢパーティションに区分されないとき、ＭＢは、各ＭＢパーティションについて各方向に１つの動きベクトルのみを有する。ＭＢが４つの８×８ＭＢパーティションに区分されるとき、各８×８ＭＢパーティションは、その各々が各方向に異なる動きベクトルを有することができるサブブロックにさらに区分され得る。８×８ＭＢパーティションから、１つの８×８サブブロックと、２つの８×４サブブロックと、２つの４×８サブブロックと、４つの４×４サブブロックとを含むサブブロックを得るための４つの異なる方法がある。各サブブロックは、各方向に異なる動きベクトルを有することができる。したがって、動きベクトルは、サブブロックに等しいかまたはそれよりも高いレベルにおいて存在することができる。
【００６４】
[0075]Ｈ．２６４／ＡＶＣでは、時間直接（temporal direct）モードは、Ｂスライス中のスキップまたは直接モードについてＭＢレベルまたはＭＢパーティションレベルのいずれかにおいてイネーブルにされ得る。各ＭＢパーティションについて、動きベクトルを導出するために、現在ブロックのＲｅｆＰｉｃＬｉｓｔ１［０］中の現在ＭＢパーティションとコロケートされたブロックの動きベクトルが使用される。コロケートされたブロック中の各動きベクトルは、ＰＯＣ距離に基づいてスケーリングされる。ＡＶＣでは、直接モードはまた、空間ネイバーから動き情報を予測することができ、それは、空間直接モードと呼ばれることがある。
【００６５】
[0076]ＨＥＶＣでは、ピクチャの符号化表現を生成するために、ビデオエンコーダ２０はコーディングツリーユニット（ＣＴＵ）のセットを生成し得る。コーディングツリーブロック（ＣＴＢ）は、スライス中の最大コーディングユニットであり、ノードとしてのコーディングユニットをもつ４分木を含んでいる。たとえば、ＣＴＵは、ルーマサンプルのＣＴＢと、クロマサンプルの２つの対応するＣＴＢと、ＣＴＢのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＴＵは、単一のＣＴＢブロックと、そのＣＴＢのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００６６】
[0077]ＣＴＢはサンプルのＮ×Ｎブロックであり得る。（技術的に、８×８ＣＴＢサイズがサポートされ得るが）ＣＴＢのサイズは、ＨＥＶＣメインプロファイルにおいて１６×１６から６４×６４に及び得る。コーディングユニット（ＣＵ）は、ＣＴＢと同じサイズであり得、８×８程度に小さくなり得る。各ＣＵは、１つの予測モードを用いてコーディングされる。ＣＴＵは「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ：largest coding unit）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のＣＴＵを含み得る。
【００６７】
[0078]コード化ＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するためにＣＴＵのＣＴＢに対して４分木区分を再帰的に実施し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックはサンプルのＮ×Ｎブロックであり得る。ＣＵは、ルーマサンプルアレイとＣｂサンプルアレイとＣｒサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの２つの対応するコーディングブロックとを備え得る。ＣＵは、コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造をさらに含み得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００６８】
[0079]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵの予測ユニット（ＰＵ）は、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＰＵは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックのための予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成し得る。
【００６９】
[0080]ビデオエンコーダ２０は、ＰＵのための予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連するピクチャの復号サンプルに基づいてＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連するピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ブロックを生成し得る。ＣＵがインター予測（またはインターコーディング）されるとき、そのＣＵは、２つまたは４つのＰＵにさらに区分され得る。いくつかの場合には、ＣＵがインター予測されるとき、そのＣＵは、さらなる区分が適用されないとき、ただ１つのＰＵになり得る。１つのＣＵ中に２つのＰＵが存在するとき、その２つのＰＵは、いくつかの事例では、１／２サイズの矩形、あるいはＣＵの１／４または３／４サイズをもつ２つの矩形サイズであり得る。図２は、インター予測モードを用いたＣＵのためのパーティションモードの例を示すブロック図である。図示のように、パーティションモードは、ＰＡＲＴ＿２Ｎ×２Ｎと、ＰＡＲＴ＿２Ｎ×Ｎと、ＰＡＲＴ＿Ｎ×２Ｎと、ＰＡＲＴ＿Ｎ×Ｎと、ＰＡＲＴ＿２Ｎ×ｎＵと、ＰＡＲＴ＿２Ｎ×ｎＤと、ＰＡＲＴ＿ｎＬ×２Ｎと、ＰＡＲＴ＿ｎＲ×２Ｎとを含む。ＣＵは、異なるパーティションモードに従ってＰＵに区分され得る。したがって、ＣＵは、区分モードのうちの１つまたは複数を使用して予測され得る。
【００７０】
[0081]ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵのための予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成した後、ビデオエンコーダ２０は、ＣＵのためのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つ中のルーマサンプルとＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ２０はＣＵのためのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルとＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０は、ＣＵのためのＣｒ残差ブロックをも生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルとＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００７１】
[0082]さらに、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックとＣｂ残差ブロックとＣｒ残差ブロックとを１つまたは複数のルーマ変換ブロックとＣｂ変換ブロックとＣｒ変換ブロックとに分解するために４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形（たとえば、正方形または非正方形）ブロックである。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックに関連し得る。ＴＵに関連するルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックはＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックはＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＴＵは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００７２】
[0083]ビデオエンコーダ２０は、ＴＵのためのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは変換係数の２次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ２０は、ＴＵのためのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのためのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００７３】
[0084]係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後に、ビデオエンコーダ２０は、係数ブロックを量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。ビデオエンコーダ２０が係数ブロックを量子化した後に、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）を実施し得る。
【００７４】
[0085]ビデオエンコーダ２０は、コード化ピクチャと関連データとの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、ネットワークアブストラクションレイヤ（ＮＡＬ：network abstraction layer）ユニットのシーケンスを備え得る。ＮＡＬユニットは、ＮＡＬユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在させられたローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）の形態でそのデータを含んでいるバイトとを含んでいる、シンタックス構造である。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、ＲＢＳＰをカプセル化する。
【００７５】
[0086]異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。たとえば、第１のタイプのＮＡＬユニットはピクチャパラメータセット（ＰＰＳ：picture parameter set）のためのＲＢＳＰをカプセル化し得、第２のタイプのＮＡＬユニットはコード化スライスのためのＲＢＳＰをカプセル化し得、第３のタイプのＮＡＬユニットはＳＥＩのためのＲＢＳＰをカプセル化し得、以下同様である。（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰとは対照的に）ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれることがある。
【００７６】
[0087]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。さらに、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得するために、ビットストリームをパースし得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ２０によって実施されるプロセスの逆であり得る。さらに、ビデオデコーダ３０は、現在ＣＵのＴＵに関連する係数ブロックを逆量子化し（inverse quantize）得る。ビデオデコーダ３０は、現在ＣＵのＴＵに関連する変換ブロックを再構成するために、係数ブロックに対して逆変換を実施し得る。ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックのサンプルを現在ＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在ＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵのためのコーディングブロックを再構成することによって、ビデオデコーダ３０はピクチャを再構成し得る。
【００７７】
[0088]ＣＵがインターコーディングされるとき、各ＣＵおよび／またはＰＵについて動き情報の１つのセットが存在する。さらに、各ＣＵおよび／またはＰＵは、動き情報のセットを導出するために固有のインター予測モードを用いてコーディングされる。ＨＥＶＣ規格では、マージモードと高度動きベクトル予測（ＡＭＶＰ）モードとを含む、予測ユニット（ＰＵ）のための２つのインター予測モードがある。スキップ予測モードは、マージ予測モードの特殊な場合と見なされる。
【００７８】
[0089]ＡＭＶＰモードまたはマージモードのいずれかでは、動きベクトル（ＭＶ）候補リストは、複数の動きベクトル予測子のために維持される。現在ＰＵの、（１つまたは複数の）動きベクトル、ならびにマージモードにおける参照インデックスは、ＭＶ候補リストから１つの候補をとることによって生成される。いくつかの例では、ＭＶ候補リストは、マージモードのための最高５つの候補とＡＭＶＰモードのための２つの候補とを含んでいる。他の数の候補がマージモードまたはＡＭＶＰモードのためのＭＶ候補リスト中に含まれ得ることを、当業者は諒解されよう。マージ候補は、参照ピクチャリスト（リスト０およびリスト１）と参照インデックスの両方に対応する動き情報のセット（たとえば、動きベクトル）を含んでいることがある。マージ候補がマージインデックスによって識別された場合、マージ候補に関連する参照ピクチャは現在ブロックの予測のために使用され、関連する動きベクトルが決定される。リスト０またはリスト１のいずれかからの各潜在的予測方向についてのＡＭＶＰモード下で、参照インデックスは、ＡＭＶＰ候補が動きベクトルのみを含んでいるので、ＭＶ候補リストへのＭＶＰインデックスとともに明示的にシグナリングされる必要がある。ＡＭＶＰモードでは、予測される動きベクトルはさらに改良され得る。したがって、マージ候補は動き情報のフルセットに対応し、ＡＭＶＰ候補は、特定の予測方向および参照インデックスのためのただ１つの動きベクトルを含んでいる。両方のモードのための候補は、図５Ａ、図５Ｂ、図６Ａ、および図６Ｂに関して以下で説明されるように、同じ空間および／または時間隣接ブロックから同様に導出される。
【００７９】
[0090]本開示の態様によれば、以下でより詳細に説明されるように、ビデオエンコーダ２０および／またはビデオデコーダ３０は、動き情報を導出し、ブロック区分を実施し、および／または照明補償（ＩＣ）を実施するための、本明細書で説明される技法の任意の組合せを実施するように構成され得る。
【００８０】
[0091]図３は、動き情報を導出し、ブロック区分を実施し、および／または照明補償（ＩＣ）を実施するための技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのコーディングモードのいずれかを指すことがある。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指すことがある。
【００８１】
[0092]図３に示されているように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図３の例では、ビデオエンコーダ２０は、ビデオデータメモリ３８と、モード選択ユニット４０と、参照ピクチャメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。モード選択ユニット４０は、今度は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、パーティションユニット４８とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するための（図３に示されていない）デブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。（ループ中またはループ後の）追加のフィルタもデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、（ループ内フィルタとして）加算器５０の出力をフィルタ処理し得る。
【００８２】
[0093]符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。ビデオデータメモリ３８は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ３８に記憶されるビデオデータは、たとえば、ビデオソース１８から取得され得る。参照ピクチャメモリ６４は、（たとえば、イントラコーディングモードまたはインターコーディングモードで）ビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータ（たとえば、参照ピクチャ）を記憶する復号ピクチャバッファ（ＤＰＢ）と呼ばれることがある。ビデオデータメモリ３８および参照ピクチャメモリ６４は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ３８および参照ピクチャメモリ６４は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ３８は、ビデオエンコーダ２０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【００８３】
[0094]動き推定ユニット４２および動き補償ユニット４４は、時間予測を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実施する。イントラ予測ユニット４６は、代替的に、空間予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実施し得る。ビデオエンコーダ２０は、（たとえば、ビデオデータの各ブロックについて適切なコーディングモードを選択するために）複数のコーディングパスを実施し得る。
【００８４】
[0095]その上、パーティションユニット４８は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、パーティションユニット４８は、初めにフレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化）に基づいてＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、さらに、サブＣＵへのＬＣＵの区分を示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つまたは複数のＰＵと１つまたは複数のＴＵとを含み得る。
【００８５】
[0096]モード選択ユニット４０は、（たとえば、誤差結果または他の好適なファクタに基づいて）コーディングモード、すなわち、イントラまたはインターのうちの１つを選択し得、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器５０に与え、参照ピクチャまたは参照フレームとして使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器６２に与え得る。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット５６に与える。
【００８６】
[0097]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実施される動き推定は、動きベクトルを生成するプロセスである。本明細書でさらに説明されるように、動きベクトルは、ビデオブロックのための動きを推定する。動きベクトルは、たとえば、現在フレーム（または他のコード化ユニット）内でコーディングされている現在ブロックに対する参照フレーム（または他のコード化ユニット）内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、２乗誤差和（ＳＳＥ：sum of square error）、絶対変換済み差分和（ＳＡＴＤ：sum of absolute transformed difference）、または他の差分メトリックによって決定され得る、（ピクセル差分に関して）コーディングされるべきブロックにぴったりマッチすることがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対して動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
【００８７】
[0098]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの各々は、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００８８】
[0099]動き補償ユニット４４によって実施される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを伴い得る。同じく、動き推定ユニット４２および動き補償ユニット４４は、いくつかの例では、機能的に統合され得る。現在ビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいて指す予測ブロックの位置を特定し得る。加算器５０は、以下で説明されるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。いくつかの例では、動き推定ユニット４２はルーマ成分に対して動き推定を実施し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【００８９】
[0100]本開示の態様によれば、本明細書で説明されるように、ビデオエンコーダ２０は、照明補償（ＩＣ）を実施するための、本明細書で説明される技法の任意の組合せを実施するように構成され得る。特に、本開示のいくつかの技法は、動き推定ユニット４２、動き補償ユニット４４、および／またはモード選択ユニット４０によって実施され得る。たとえば、ＩＣパラメータおよび／またはＩＣステータスは、動き推定ユニット４２および／または動き補償ユニット４２によって導出され得る。さらに、モード選択ユニット４０は、ビデオブロック、スライス、ピクチャ、シーケンスなどに関連するＩＣフラグを生成し得、ビデオブロックを復号する際にビデオデコーダ３０が使用するために、それらを符号化ビットストリーム中に含め得る。
【００９０】
[0101]イントラ予測ユニット４６は、上記で説明されたように、動き推定ユニット４２と動き補償ユニット４４とによって実施されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット４６は、（たとえば、別個の符号化パス中に、）様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
【００９１】
[0102]たとえば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのためのひずみおよびレートから比を計算し得る。
【００９２】
[0103]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に与え得る。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
【００９３】
[0104]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから（モード選択ユニット４０から受信された）予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実施する１つまたは複数の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、ＤＣＴと概念的に同様である他の変換を実施し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化された変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット５６が走査を実施し得る。
【００９４】
[0105]量子化の後に、エントロピー符号化ユニット５６は量子化された変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディング、または別のエントロピーコーディング技法を実施し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット５６によるエントロピーコーディングの後に、符号化ビットストリームは、別のデバイス（たとえば、ビデオデコーダ３０）に送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００９５】
[0106]逆量子化ユニット５８および逆変換ユニット６０は、（たとえば、参照ブロックとして後で使用するために）ピクセル領域において残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４は、残差ブロックを参照ピクチャメモリ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに１つまたは複数の補間フィルタを適用し得る。加算器６２は、参照ピクチャメモリ６４に記憶するための再構成されたビデオブロックを生成するために、動き補償ユニット４４によって生成された動き補償予測ブロックに再構成された残差ブロックを加算する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００９６】
[0107]図４は、動き情報を導出し、ブロック区分を実施し、および／またはビデオデータを補間するための技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。図４の例では、ビデオデコーダ３０は、ビデオデータメモリ６８と、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照ピクチャメモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図３）に関して説明された符号化パスとは概して逆の復号パスを実施し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。
【００９７】
[0108]復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデータメモリ６８に記憶されるビデオデータは、たとえば、コンピュータ可読媒体から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードまたはワイヤレスネットワーク通信を介して、あるいは物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ６８は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成し得る。参照ピクチャメモリ８２は、（たとえば、イントラコーディングモードまたはインターコーディングモードで）ビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶するＤＰＢと呼ばれることがある。ビデオデータメモリ６８および参照ピクチャメモリ８２は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ６８および参照ピクチャメモリ８２は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ６８は、ビデオデコーダ３０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【００９８】
[0109]ビデオデコーダ３０のエントロピー復号ユニット７０は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトルと他のシンタックス要素とを動き補償ユニット７２にフォワーディングする。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【００９９】
[0110]ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化（たとえば、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ８２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０およびリスト１を構成し得る。
【０１００】
[0111]動き補償ユニット７２は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスのための参照ピクチャリストのうちの１つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【０１０１】
[0112]動き補償ユニット７２はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット７２は、参照ブロックのサブ整数ピクセルの補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット７２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するために、その補間フィルタを使用し得る。
【０１０２】
[0113]本開示の態様によれば、ビデオデコーダ３０は、照明補償（ＩＣ）を実施するための、本明細書で説明される技法の任意の組合せを実施するように構成され得る。特に、動き補償ユニット７２は、予測ブロックについてのＩＣステータスおよび／またはＩＣパラメータを導出し、および／または適用するように構成され得る。
【０１０３】
[0114]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された量子化された変換係数を逆量子化（または量子化解除（de-quantize））する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックについてビデオデコーダ３０によって計算される量子化パラメータＱＰYの使用を含み得る。
【０１０４】
[0115]逆変換ユニット７８は、ピクセル領域において残差ブロックを生成するために、逆変換（たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセス）を変換係数に適用する。
【０１０５】
[0116]動き補償ユニット７２が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器８０は、この加算演算を実施する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するか、または場合によってはビデオ品質を改善するために、（コーディングループ中またはコーディングループ後のいずれかの）他のループフィルタも使用され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ８２に記憶される。参照ピクチャメモリ８２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上で後で提示するために復号ビデオを記憶する。
【０１０６】
[0117]前に説明されたように、マージモードとＡＭＶＰモードとを含む２つのインター予測モードが、インター予測のために使用され得る。いくつかの例では、マージモードは、インター予測ＰＵが、空間的に隣接する動きデータ位置と２つの時間的にコロケートされる動きデータ位置のうちの１つとのグループから選択される動きデータ位置を含むインター予測ＰＵから、１つまたは複数の同じ動きベクトルと、予測方向と、１つまたは複数の参照ピクチャインデックスとを継承することを可能にする。ＡＭＶＰモードの場合、ＰＵの１つまたは複数の動きベクトルは、エンコーダによって構成されたＡＭＶＰ候補リストからの１つまたは複数の動きベクトル予測子（ＭＶＰ）に対して叙述的に（predicatively）コーディングされ得る。いくつかの事例では、ＰＵの単一方向インター予測の場合、エンコーダは、単一のＡＭＶＰ候補リストを生成することができる。いくつかの事例では、ＰＵの双方向予測の場合、エンコーダは、１つが前方予測方向からの空間および時間隣接ＰＵの動きデータを使用し、１つが後方予測方向からの空間および時間隣接ＰＵの動きデータを使用する、２つのＡＭＶＰ候補リストを生成することができる。両方のモードのための候補は、空間および／または時間隣接ブロックから導出され得る。たとえば、図５Ａおよび図５Ｂは、ＨＥＶＣにおける空間隣接候補を示す概念図を含む。図５Ａは、マージモードのための空間隣接動きベクトル（ＭＶ）候補を示す。図５Ｂは、ＡＭＶＰモードのための空間隣接動きベクトル（ＭＶ）候補を示す。空間ＭＶ候補は、特定のＰＵ（ＰＵ０）について、隣接ブロックから導出されるが、ブロックから候補を生成する方法は、マージモードおよびＡＭＶＰモードについて異なる。
【０１０７】
[0118]マージモードでは、エンコーダは、様々な動きデータ位置からマージング候補を考慮することによって、マージング候補リストを形成することができる。たとえば、図５Ａに示されているように、最高４つの空間ＭＶ候補が、図５Ａにおいて番号０〜４で示されている空間的に隣接する動きデータ位置に関して導出され得る。ＭＶ候補は、番号０〜４によって示されている順序で、マージング候補リスト中で順序付けられ得る。たとえば、位置および順序は、左位置（０）と、上位置（１）と、右上位置（２）と、左下位置（３）と、左上位置（４）とを含むことができる。
【０１０８】
[0119]図５Ｂに示されているＡＶＭＰモードでは、隣接ブロックは、２つのグループ、すなわち、ブロック０および１を含む左グループと、ブロック２、３、および４を含む上グループとに分割される。各グループについて、シグナリングされた参照インデックスによって示された参照ピクチャと同じ参照ピクチャを参照する隣接ブロック中の潜在的候補は、グループの最終候補を形成するために選定されるべき最高優先度を有する。すべての隣接ブロックが、同じ参照ピクチャを指す動きベクトルを含んでいるとは限らない可能性がある。したがって、そのような候補が見つけられ得ない場合、第１の利用可能な候補は、最終候補を形成するためにスケーリングされることになり、したがって時間距離差分が補償され得る。
【０１０９】
[0120]図６Ａおよび図６Ｂは、ＨＥＶＣにおける時間動きベクトル予測を示す概念図を含む。時間動きベクトル予測子（ＴＭＶＰ）候補は、イネーブルにされ、利用可能である場合、空間動きベクトル候補の後にＭＶ候補リストに追加される。ＴＭＶＰ候補のための動きベクトル導出のプロセスは、マージモードとＡＭＶＰモードの両方について同じである。しかしながら、いくつかの事例では、マージモードでのＴＭＶＰ候補のためのターゲット参照インデックスは、０に設定され得るか、または隣接ブロックのそれから導出され得る。
【０１１０】
[0121]ＴＭＶＰ候補導出のための１次ブロックロケーションは、空間隣接候補を生成するために使用される上および左ブロックへのバイアスを補償するための、ブロック「Ｔ」として図６Ａに示されているような、コロケートされるＰＵの外側の右下ブロックである。しかしながら、そのブロックが現在ＣＴＢ（またはＬＣＵ）行の外側に位置するか、または動き情報が利用可能でない場合、ブロックはＰＵの中心ブロックと置換される。ＴＭＶＰ候補のための動きベクトルは、スライスレベルで示されている、コロケートされるピクチャのコロケートされるＰＵから導出される。ＡＶＣにおける時間直接モードと同様に、ＴＭＶＰ候補の動きベクトルは、動きベクトルスケーリングを受けることがあり、動きベクトルスケーリングは距離差分を補償するために実施される。
【０１１１】
[0122]動き予測の他の態様はＨＥＶＣ規格においてカバーされる。たとえば、マージモードおよびＡＭＶＰモードのいくつかの他の態様がカバーされる。一態様は動きベクトルスケーリングを含む。動きベクトルの値はプレゼンテーション時間におけるピクチャの距離に比例すると仮定され得る。動きベクトルは、２つのピクチャ、すなわち、参照ピクチャと、動きベクトルを含んでいるピクチャ（すなわち、含有ピクチャ（containing picture））とを関連付ける。他の動きベクトルを予測するために動きベクトルが利用されるとき、含有ピクチャと参照ピクチャとの距離は、ピクチャ順序カウント（ＰＯＣ）値に基づいて計算される。予測されるべき動きベクトルについて、それの関連する含有ピクチャと参照ピクチャの両方は異なり得る。したがって、（ＰＯＣに基づく）新しい距離が計算され、動きベクトルは、これらの２つのＰＯＣ距離に基づいてスケーリングされる。空間隣接候補では、２つの動きベクトルのための含有ピクチャは同じであるが、参照ピクチャは異なる。ＨＥＶＣでは、動きベクトルスケーリングは、空間および時間隣接候補のためにＴＭＶＰとＡＭＶＰの両方に適用される。
【０１１２】
[0123]別の態様は擬似動きベクトル候補生成を含む。たとえば、動きベクトル候補リストが完全でない場合、擬似動きベクトル候補が生成され、すべての候補が取得されるまでリストの最後に挿入され得る。マージモードでは、２つのタイプの擬似ＭＶ候補、すなわち、Ｂスライスについてのみ導出された複合候補と、第１のタイプが十分な擬似候補を与えない場合にＡＭＶＰのためにのみ使用されるゼロ候補とがある。すでに候補リスト中にあり、必要な動き情報を有する候補の各ペアについて、双方向複合動きベクトル候補が、リスト０中のピクチャを参照する第１の候補の動きベクトルとリスト１中のピクチャを参照する第２の候補の動きベクトルとの組合せによって導出される。
【０１１３】
[0124]マージモードおよびＡＭＶＰモードの別の態様は、候補挿入のためのプルーニングプロセスを含む。たとえば、異なるブロックからの候補は偶然同じであり得、これはマージおよび／またはＡＭＶＰ候補リストの効率を減少させる。この問題を解決するために、プルーニングプロセスが適用され得る。プルーニングプロセスは、ある程度において同等の候補を挿入することを回避するために、現在候補リスト中のある候補を他の候補と比較する。複雑さを低減するために、各潜在的候補をすべての他の既存の候補と比較する代わりに、限られた数のプルーニングプロセスのみが適用され得る。
【０１１４】
[0125]いくつかの場合には、デコーダが動きベクトルを導出することができる。たとえば、アドバンストビデオコーデックの出現とともに、ビットストリーム中の動き情報のビット割合が増加した。動き情報のビットコストを低減するために、デコーダ側動きベクトル導出（ＤＭＶＤ：decoder side motion vector derivation）が提案された。図７は、テンプレートマッチングベースのＤＭＶＤの一例を示す概念図である。テンプレートマッチングベースのＤＭＶＤは、良好なコーディング効率改善を示す。デコーダにおける現在ブロックである、予測ターゲットについて最良マッチを探索する代わりに、テンプレートマッチングベースのＤＭＶＤを用いて、テンプレートの最良マッチが参照フレーム中で探索される。テンプレートと予測ターゲットとが同じオブジェクトからのものであると仮定すると、テンプレートの動きベクトルは、予測ターゲットの動きベクトルとして使用され得る。テンプレートマッチングはエンコーダとデコーダの両方において行われるので、動きベクトルは、シグナリングコストを回避するためにデコーダ側において導出され得る。
【０１１５】
[0126]ＤＭＶＤの別のカテゴリは、ミラーベースの双方向ＭＶ導出である。図８は、ＤＭＶＤにおけるミラーベースの双方向動きベクトル導出の一例を示す概念図である。ミラーベースの双方向ＭＶ導出は、フレームレートアップコンバージョンにおける双方向動き推定と同様である。ミラーベースのＭＶ導出は、分数サンプル精度において探索中心の周りの中心対称動き推定（centro symmetric motion estimation）によって適用される。探索ウィンドウのサイズおよび／またはロケーションは、あらかじめ定義され得、ビットストリーム中でシグナリングされ得る。図８におけるｄＭＶは、ＭＶペア、すなわち、ＭＶ０およびＭＶ１を生成するために、ＰＭＶ０に加算され、ＰＭＶ１から減算されるオフセットである。
【０１１６】
[0127]探索ウィンドウ内のｄＭＶのすべての値が検査され、Ｌ０参照ブロックとＬ１参照ブロックとの間の絶対差分和（ＳＡＤ）が、中心対称動き推定の測定値として使用される。最小ＳＡＤをもつＭＶペアが、中心対称動き推定の出力として選択される。方法は、ＳＡＤマッチングのために将来の参照（現在フレームよりも後の時間位置における参照）と以前の参照（現在フレームよりも以前の時間位置における参照）とを必要とするので、それは、前の参照のみが利用可能であるＰフレームまたは低遅延Ｂフレームに適用され得ない。
【０１１７】
[0128]図９は、ＤＭＶＤを使用して予測ユニット（ＰＵ）を復号する一例を示すフローチャートである。ＨＥＶＣにおいてミラーベースの双方向ＭＶ導出をマージモードと組み合わせることが提案されている。たとえば、ＤＭＶＤモードが現在ＰＵに適用されるかどうかを示すために、ＢスライスのＰＵについて、ｐｕ＿ｄｍｖｄ＿ｆｌａｇと呼ばれるフラグが追加され得る。ＤＭＶＤモードはビットストリーム中でＭＶ情報を明示的に送信しないので、図９に示されているように、ＨＥＶＣコーディングプロセスにおいてｐｕ＿ｄｍｖｄ＿ｆｌａｇをマージモードのシンタックスと統合する復号プロセスが提示される。
【０１１８】
[0129]たとえば、９０２において、デコーダは、ＰＵを復号することを開始することができる。９０４において、デコーダは、マージモードがイネーブルにされるかどうかを決定することができる。マージがイネーブルにされない場合、９０６において、デコーダは、非マージＰＵのための通常プロセスを実施する。マージがイネーブルにされる場合、９０８において、デコーダは、ｐｕ＿ｄｍｖｄ＿ｆｌａｇが存在するかどうか、または、ＤＭＶＤモードが適用されるべきであることを示すある値（たとえば、０または１）を含むかどうかを決定することができる。ｐｕ＿ｄｍｖｄ＿ｆｌａｇが存在するか、または、ＤＭＶＤモードが適用されるべきであることを示す値を含む場合、デコーダは、９１２においてＤＭＶＤプロセスを実施する。他の場合、デコーダは、マージＰＵのための通常マージプロセスを実施することができる。プロセスは９１４において終了する。
【０１１９】
[0130]さらに、上述のように、ブロック／ＰＵは、動き導出方法に基づいて１つまたは複数の（非重複）サブＰＵまたはサブブロックにスプリットされ得る。ＰＵが複数のより小さいサイズのサブＰＵにスプリットされるとき、各サブＰＵは、導出される動き情報の一意のセットを有することができる。たとえば、３２×３２ＰＵは、１６個の８×８サブＰＵにスプリットされ得、８×８サブＰＵの各々は、異なる参照インデックスおよび／または動きベクトルを有し得る。そのようなサイズのサブＰＵは、４×４、２×２、または１×１程度に小さくなることさえあり得る。ここでは、ＰＵという用語はブロックと互換的に使用され、サブＰＵという用語はサブブロックと互換的に使用されることに留意されたい。
【０１２０】
[0131]サブブロックおよび／またはサブＰＵのサイズは、ブロックおよび／またはＰＵのサイズかかわらずあらかじめ定義され、固定され得る。代替的に、スプリット深度Ｄと最小サブＰＵおよび／またはサブブロックサイズとは、現在ブロックまたはＰＵがスプリットされるサブブロックまたはサブＰＵのターゲットサイズを示すために、あらかじめ定義されるかまたはシグナリングされる。ターゲットサイズは、最小サブＰＵまたはサブブロックサイズと、現在ブロックを４分木の様式でＤ回スプリットすることによって取得されるサイズとの間のより大きいサイズである。
【０１２１】
[0132]各サブＰＵについて、それの一意の動き情報の探索は、探索中心（初期探索点）としてブロック全体の動き情報をとることと、サブブロックのための動きを改良することとを含み得る。いくつかの事例では、各サブＰＵの探索中心は、開始点候補のリストから導出され得る。
【０１２２】
[0133]他の特性も、サブＰＵおよび／またはサブブロックに適用される。たとえば、動きベクトルの改良は、１つずつ別々にサブブロックに適用可能であり得る。さらに、動きベクトルフィルタ処理は、孤立した間違った動きベクトルを補正するためにサブＰＵについて実施され得る。たとえば、入力として、現在サブＰＵの動きベクトルと（最高）４つの隣接サブＰＵの動きベクトルとをもつメジアンフィルタが使用され得る。また、変換を適用するとき、変換がサブＰＵ境界を横断し得るように、ＰＵ全体がブロック全体と見なされ得る。いくつかの事例では、変換は、変換サイズがサブＰＵサイズよりも大きくならないように、各サブＰＵに適用される。
【０１２３】
[0134]ビデオコーディングにおいて照明補償（ＩＣ）を実施するための技法およびシステムが本明細書で説明される。たとえば、再構成された空間隣接サンプルに基づいて、各コーディングユニット、予測ユニット（ＰＵ）、および／またはサブＰＵについてのＩＣパラメータを導出するための技法およびシステムが説明される。いくつかの実施形態では、ＩＣパラメータは、１つまたは複数の予測方向で導出され得る。いくつかの実施形態によれば、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）は、ＩＣパラメータを導出し、および／またはビットストリーム中でコーディングされるとき、ブロックがＩＣを使用するかどうかをシグナリングし得る。たとえば、ビデオコーダは、ＩＣがどのように使用されるかの指示、使用されるＩＣパラメータの指示、符号化ビットストリーム中のＩＣパラメータ自体、またはそれらの任意の組合せのうちの少なくとも１つまたは複数を含むＩＣ情報を挿入し得る。ビデオコーダは、符号化ビットストリーム中のＩＣ情報に基づいて、符号化ビットストリームをさらに復号し得る。本明細書で説明される技法は個々に適用され得るか、または、本明細書で説明される技法の任意の組合せが互いに適用され得る。
【０１２４】
[0135]いくつかの態様によれば、ＩＣが、ピクチャまたはピクチャの一部分（たとえば、ブロック、スライス、コーディングユニット、ＰＵ、サブＰＵなど）のために使用されるかどうか、およびどのように使用されるのかは、符号化ビットストリーム中で複数の異なる方法で示され得、各々が、ＩＣがピクチャまたはピクチャの一部分のために使用される異なる様式を示す。したがって、本明細書で説明される技法は、ローカル照明変動を扱うことが可能であり得、いくつかの状況において、ＩＣフラグが明示的にシグナリングされることを必要としないことがあり、それにより、コーディング効率が高まる。いくつかの態様では、ＩＣフラグは、ＡＭＶＰモードを用いてコーディングされるＣＵ、ＰＵ、および／またはブロックについて、明示的にシグナリングされる。ＣＵ、ＰＵ、および／またはブロックがマージモードを用いてコーディングされるとき、ＣＵ、ＰＵ、および／またはブロックのＩＣパラメータは、マージインデックスによって示される隣接ブロックのそれ／それらからコピーされる。
【０１２５】
[0136]ＩＣパラメータは、本明細書で説明されるか、または場合によっては当技術分野で知られている、１つまたは複数の異なる技法を使用して導出され得る。ＩＣパラメータは、以下でより詳細に説明されるように、スケーリングファクタ、およびオフセット、またはスケーリングファクタおよびオフセットのうちの１つまたは複数を含むことができる。いくつかの態様では、ブロック（たとえば、ＣＵ、ＰＵ、サブＰＵ、または他のブロック）についてのＩＣパラメータは、現在ブロック（たとえば、現在ＣＵを含んでいるＣＵ、ＰＵ、サブＰＵまたは他のブロック）の隣接サンプル（たとえば、ピクセル）および現在ブロックの動き情報によって識別される参照ピクチャ中の（現在ブロックの隣接サンプルに対応する）対応するサンプルのうちの１つまたは複数に基づいて導出され得る。いくつかの例では、ＩＣパラメータは、各予測方向について、ブロックについて導出され得る。いくつかの例では、隣接サンプルは、パーティションベース照明補償（ＰＢＩＣ：partition based illumination compensation）などの技法を使用して選択され得る、再構成された空間的に隣接するサンプルを含むことができる。
【０１２６】
[0137]いくつかの態様では、サブＰＵベースの時間および／または空間予測モードが使用される場合、代表的動き情報（たとえば、予測方向、ならびに各予測方向における参照インデックスおよび動きベクトル）は、サブＰＵ時間および／または空間マージ候補を他のマージ候補を用いてプルーニングするために、サブＰＵの時間および／または空間隣接ブロックから生成される。したがって、代表的動き情報は、参照ピクチャ中の（現在ブロックの隣接サンプルに対応する）対応するサンプルを識別するために使用される。代替的に、いくつかの態様では、各サブＰＵは、参照ピクチャ中の（現在ブロックの隣接サンプルに対応する）対応するサンプルを識別ためにそれ自体の動き情報を使用する。
【０１２７】
[0138]いくつかの態様では、現在ブロック（たとえば、ＰＵ、サブＰＵなど）についてのＩＣパラメータは、現在ブロックの再構成されたおよび／または予測された空間的に隣接するサンプルならびに参照ピクチャ中の（たとえば、現在ブロックの動き情報によって識別される）それらの対応するサンプルから導出され得る。
【０１２８】
[0139]さらなる態様では、現在ブロック（たとえば、ＰＵ、サブＰＵ）についてのＩＣパラメータは、現在ブロックのすでに再構成された空間的に隣接するサンプルのみから導出され得る。たとえば、すでに再構成されている、現在ＰＵまたはサブＰＵの空間的に隣接するサンプルは、現在ＣＵと現在ＰＵまたはサブＰＵとの共通の空間的に隣接するサンプルであり得る。
【０１２９】
[0140]またさらなる態様では、ＩＣパラメータを導出するための上記で説明された態様のいずれかの場合、隣接サンプルのサブセットおよび／または参照ピクチャ中のそれらの対応するサンプルのみが、ブロックについてのＩＣパラメータを導出するために使用される。たとえば、上隣接サンプル、左隣接サンプル、および／または現在ＣＴＵ行にのみ属するサンプルのみが使用され得る。使用される隣接サンプルのサブセットは、ブロック（たとえば、ＣＵおよび／またはＰＵ）レベルにおいて符号化ビットストリーム中で（たとえば、１つまたは複数のビットを使用して）示され得る。代替的に、使用される隣接サンプルは、あらかじめ定義されるか、または、より高いレベルのシンタックス（たとえば、ＣＴＢ、スライス、フレームなど）においてシグナリングされ得る。
【０１３０】
[0141]いくつかの態様では、インター予測のために使用され得るＩＣモデルは、以下の通りである。
【０１３１】
【数１】
0006746620.tif 000002
【０１３２】
[0143]ここで、ＰＵcは現在ＰＵであり、（ｉ，ｊ）はＰＵc中のピクセルの座標であり、（ｍｖx，ｍｖy）はＰＵｃの動きベクトルであり、ｐ（ｉ，ｊ）はＰＵcの予測であり、ｒはＰＵの参照ピクチャであり、ａおよびｂは線形ＩＣモデルのＩＣパラメータである。たとえば、ａはスケーリングファクタであり、ｂはオフセットである。
【０１３３】
[0144]いくつかの態様では、ＰＵまたは他のブロックについてのパラメータａおよびｂを推定するために、ピクセルの２つのセットが使用される。図１０は、ＩＣパラメータを推定するために使用される隣接ピクセルを示す。ＰＵについてのＩＣパラメータａおよびｂを推定するために使用されるピクセルの２つのセットが、図１０に示されている。ピクセルの２つのセットは、現在ＣＵ（現在ＰＵを含んでいるＣＵ）の左の列および上の行中の利用可能な再構成された隣接ピクセルを含む第１のセットと、現在ＣＵの参照ブロックの対応する隣接ピクセルを含む第２のセットとを含む。現在ＣＵの参照ブロックは、（式１中で（ｍｖx，ｍｖy）として示されている）現在ＰＵの動きベクトルを使用することによって見つけられる。いくつかの場合には、式１のＩＣモデルは、ローカル照明間変動のために使用され得る。
【０１３４】
[0145]（ローカル照明間変動のためのみではなく）よりグローバルなスケールの照明変動を扱うために、ＩＣパラメータａおよびｂは次のように計算され得る。
【０１３５】
【数２】
0006746620.tif 000003
【０１３６】
[0148]ここで、ＲｅｃneigおよびＲｅｃrefneigは、それぞれ、現在ＣＵの使用される隣接ピクセルセットおよび現在ＣＵの参照ブロックの隣接ピクセルセットを示し、２Ｎは、ＲｅｃneigおよびＲｅｃrefneig中のピクセル数を示す。
【０１３７】
[0149]いくつかの例では、ａのみが線形モデルにおいて使用され、ｂは常に０に等しく設定される。いくつかの例では、ｂのみが使用され、ａは常に１に等しく設定される。いくつかの例では、ａとｂの両方が使用される。いくつかの態様では、ＩＣパラメータおよび／または（ＩＣを用いてコーディングされている、またはＩＣを用いてコーディングされていないというブロックのステータスを示す）ＩＣステータスが、ブロックについて個々に明示的にシグナリングされ得る。たとえば、ブロックについてのａおよびｂのＩＣパラメータは、ブロックが送られる符号化ビットストリーム中でシグナリングされ得る。いくつかの例では、ブロックについてのスケーリングファクタａのＩＣパラメータのみが、ブロックが送られる符号化ビットストリーム中でシグナリングされ得る。いくつかの例では、ブロックについてのオフセットｂのＩＣパラメータのみが、ブロックが送られる符号化ビットストリーム中でシグナリングされ得る。
【０１３８】
[0150]上記で説明されたように、いくつかの態様では、ＩＣパラメータは、ブロックの隣接サンプルに基づいて導出され得る。いくつかのさらなる態様では、追加または代替として、ＩＣパラメータは、明示的にシグナリング（たとえば、ビットストリーム中で符号化）され、および／または隣接ブロックから継承され得る。いくつかの態様では、ＩＣパラメータ（たとえば、１つまたは複数のスケーリングファクタａおよびオフセットｂ、またはそれらのうちの１つのみ）は、ＣＵ、ＰＵ、および／またはＡＭＶＰモードを用いてコーディングされたブロックについて明示的にシグナリングされる。ＣＵ、ＰＵ、および／またはブロックがマージモードを用いてコーディングされるとき、ＣＵ、ＰＵ、および／またはブロックのＩＣパラメータは、マージインデックスによって示される隣接ブロックのＩＣパラメータからコピーされる。いくつかのそのような態様では、ＩＣパラメータがブロックについて導出されるべきである様式は、（たとえば、ブロックレベルにおいて）インデックスを使用してなど、明示的にシグナリングされ得る。たとえば、ＩＣが、ブロックのために使用されるものとして決定される（たとえば、明示的にシグナリングされるか、または他の情報に基づいて導出される）とき、ＩＣパラメータのリストが生成され得、および／または、どのＩＣパラメータ候補が現在ブロックのために使用されるかを示すためのインデックスが、符号化ビットストリーム中でシグナリングされる。ＩＣパラメータ候補のリストは、隣接サンプルを使用することによって導出されるＩＣパラメータ、隣接ブロックのＩＣパラメータ、隣接ブロックのサブセットを使用することによって導出されるＩＣパラメータ、またはそれらの任意の組合せのうちの１つまたは複数を含み得る。いくつかの態様では、リストから選択されるＩＣパラメータは、ＩＣを使用する再構成されたブロックと、コーディングされている実際のブロックとに基づく測度（measure）（たとえば、絶対差分和（ＳＡＤ）、２乗誤差和（ＳＳＥ）、絶対変換済み差分和（ＳＡＴＤ）、２乗差分和（ＳＳＤ）、または他の好適な測度）に基づいて選択され得る。
【０１３９】
[0151]いくつかの態様では、ＩＣパラメータおよび／またはインデックスは、ブロックレベル（たとえば、ＣＵ、ＰＵ、サブＰＵ）においてシグナリングされ得る。いくつかの態様では、追加または代替として、ＩＣパラメータおよび／またはインデックスは、スライスレベルにおいてシグナリングされ、空間隣接サンプルが利用可能でないブロックのために使用され得る。
【０１４０】
[0152]いくつかの態様では、ＩＣは、１つまたは複数のシンタックスレベルにおいて（たとえば、スライスレベル、ピクチャレベル、ブロックレベル、または他の好適なシンタックスレベルにおいて）シグナリングされ得る。たとえば、１つまたは複数のＩＣフラグが、１つまたは複数のパラメータセット（たとえば、特定のシンタックスレベルに関連するシーケンスパラメータセット、ピクチャパラメータセット、あるいは他のヘッダまたはデータ構造）中に、そのパラメータセットに関連するシンタックスレベルにおけるＩＣのサポートを示すために、含まれ得る。たとえば、ＩＣが全シンタックスレベル（たとえば、スライス）のためにイネーブルにされるかどうかを示すために、１つのＩＣフラグが使用され得る。追加または代替として、いくつかの態様では、ＩＣが、シンタックスレベル全体についてサンプルの異なる成分のためにイネーブルにされるかどうかを別々に示すために、異なるＩＣフラグが（たとえば、あるフラグはルーマについて、あるフラグはクロマについて）使用され得る。
【０１４１】
[0153]追加または代替として、いくつかの態様では、予測が、ＩＣをもつ参照ピクチャから行われるべきであるのかＩＣをもたない参照ピクチャから行われるべきであるのかは、シンタックスレベル（たとえば、スライス、ピクチャ、ブロックなど）についての１つまたは複数のパラメータセットで示され得る。たとえば、スライスがＮ個の参照ピクチャ（または現在ピクチャのために使用され得る参照ピクチャセット（ＲＰＳ）中のＭ個のピクチャ）を含む場合、参照ピクチャの各々が、スライスの特定のブロックによって参照されるとき、ＩＣをイネーブルにすることができるか否かを示すために、Ｎ（またはＭ）個のシンタックス要素（たとえば、１つまたは複数のビット）がシグナリングされ得る。したがって、ブロックレベルにおいて、ＩＣフラグが、（たとえば、参照インデックスをシグナリングさせるＡＭＶＰモードの場合と同様に）明示的に存在するべきであるか否かは、Ｎ（またはＭ）個のシンタックス要素（ビット）存在に依存し、したがって、追加のシグナリングを潜在的に回避し得る。
【０１４２】
[0154]図１１は、ビデオデータをコーディングするプロセス１１００の一実施形態を示す。プロセス１１００は、１つまたは複数の照明補償パラメータを導出し、それらの照明補償パラメータをシグナリングするために実装される。いくつかの態様では、プロセス１１００は、図１または図３に示されているソースデバイス１２またはビデオエンコーダ２０など、コンピューティングデバイスまたは装置によって実施され得る。たとえば、コンピューティングデバイスまたは装置は、エンコーダ、あるいは、プロセス１１００のステップを行うように構成された、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはエンコーダの他の構成要素を含み得る。
【０１４３】
[0155]プロセス１１００は論理流れ図として示され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せで実装され得る動作のシーケンスを表す。コンピュータ命令のコンテキストでは、動作は、１つまたは複数のプロセッサによって実行されたとき、具陳された動作を実施する１つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実施するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は、限定として解釈されるものではなく、任意の数の説明される動作は、プロセスを実装するために任意の順序でおよび／または並行して組み合わせられ得る。
【０１４４】
[0156]さらに、プロセス１１００は、実行可能な命令で構成された１つまたは複数のコンピュータシステムの制御下で実施され得、１つまたは複数のプロセッサ上でまとめて実行するコード（たとえば、実行可能な命令、１つまたは複数のコンピュータプログラム、または１つまたは複数のアプリケーション）として、ハードウェア、またはそれらの組合せによって、実装され得る。上述のように、コードは、たとえば、１つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読または機械可読記憶媒体に記憶され得る。コンピュータ可読または機械可読記憶媒体は非一時的であり得る。
【０１４５】
[0157]１１０２において、プロセス１１００は、現在ブロックについての１つまたは複数の照明補償パラメータを決定することを含む。いくつかの例では、１つまたは複数の照明補償パラメータは、スケールまたはオフセットのうちの少なくとも１つまたは複数を含む。
【０１４６】
[0158]現在ブロックについての照明補償パラメータは、以下に再掲される、式２を使用して決定され得る。
【０１４７】
【数３】
0006746620.tif 000004
【０１４８】
[0160]１１０４において、プロセス１１００は、１つまたは複数の照明補償パラメータを使用して符号化ビットストリームの一部として現在ブロックをコーディングすることを含む。たとえば、エンコーダ（たとえば、ビデオエンコーダ２０）は、現在ブロックと少なくとも１つの予測ブロックとの間の照明（illumination）（たとえば、輝度(brightness)）の変動を補償するために照明補償パラメータを使用することができる。いくつかの実施形態では、照明補償パラメータは、符号化ビットストリーム中で１つまたは複数のシンタックス要素の一部として符号化され得る。デコーダ（たとえば、ビデオデコーダ３０）は、符号化ビットストリーム中の照明補償パラメータに少なくとも部分的に基づいて、符号化ビットストリームを復号し得る。
【０１４９】
[0161]いくつかの態様では、プロセス１１００は、現在ブロックについての１つまたは複数の空間的に隣接するサンプルを決定することと、１つまたは複数の空間的に隣接するサンプルのうちの少なくとも１つに基づいて、現在ブロックについての１つまたは複数の照明補償パラメータを導出することとを含む。そのような態様では、プロセス１１００は、１つまたは複数の照明補償パラメータを使用して符号化ビットストリームの一部として現在ブロックをコーディングすることと、現在ブロックについて、個々に、符号化ビットストリーム中で照明補償ステータスをシグナリングすることとを含む。いくつかの例では、照明補償ステータスは、現在ブロックが照明補償を使用してコーディングされるかどうかのフラグまたは他の指示を含むことができる。
【０１５０】
[0162]いくつかの態様では、１つまたは複数の空間的に隣接するサンプルは、現在ブロックの１つまたは複数の再構成された空間的に隣接するサンプルを含む。いくつかの態様では、１つまたは複数の空間的に隣接するサンプルは、現在ブロックに関連する動き情報によって識別される参照ピクチャ中の現在ブロックの１つまたは複数の再構成された空間的に隣接するサンプルに対する１つまたは複数の対応するサンプルを含む。いくつかの態様では、１つまたは複数の対応するサンプルを識別するために使用される現在ブロックに関連する動き情報は、サブＰＵベースの時間または空間予測モードが現在ブロックのために使用されるとき、現在ブロックの代表的動き情報を含む。たとえば、サブＰＵベースの時間および／または空間予測モードが使用されるとき、代表的動き情報（たとえば、予測方向、ならびに各予測方向における参照インデックスおよび動きベクトル）は、サブＰＵ時間および／または空間マージ候補を他のマージ候補を用いてプルーニングする（pruning）ために、サブＰＵの時間および／または空間隣接ブロックから生成され得る。そのような事例では、代表的動き情報は、参照ピクチャ中の（現在ブロックの隣接サンプルに対応する）対応するサンプルを識別するために使用され得る。代替的に、いくつかの事例では、各サブＰＵは、参照ピクチャ中の（現在ブロックの隣接サンプルに対応する）対応するサンプルを識別ためにそれ自体の動き情報を使用する。いくつかの例では、動き情報は１つまたは複数の動きベクトルを含むことができる。いくつかの態様では、１つまたは複数の空間的に隣接するサンプルは、現在ブロックの１つまたは複数の再構成された空間的に隣接するサンプルと、現在ブロックに関連する動き情報によって識別される参照ピクチャ中の１つまたは複数の対応するサンプルとを含む。前述のように、参照ピクチャの参照ブロック中の１つまたは複数の対応するサンプルは、現在ブロックの１つまたは複数の再構成された空間的に隣接するサンプルに対応する。たとえば、参照ピクチャの参照ブロック中の対応するサンプルは、現在ブロックに関連する１つまたは複数の動きベクトルを使用して識別され得る。
【０１５１】
[0163]いくつかの例では、１つまたは複数の空間的に隣接するサンプルは、複数の隣接サンプルを含む。そのような例では、空間的に隣接するサンプルのうちの少なくとも１つは、複数の隣接サンプルのすべてよりも少ないサンプルを含む。たとえば、現在ブロックについての１つまたは複数の照明補償パラメータを導出するために使用される少なくとも１つの空間的に隣接するサンプルは、現在ブロックについての空間的に隣接するサンプルの総数よりも少なくなり得る。
【０１５２】
[0164]いくつかの態様では、プロセス１１００は、符号化ビットストリーム中で現在ブロックについての１つまたは複数の照明補償パラメータのうちの少なくとも１つをシグナリングすることをさらに含む。たとえば、プロセス１１００は、現在ブロックについて、個々に、１つまたは複数の照明補償パラメータのうちの少なくとも１つをシグナリングすることができる。いくつかの態様では、プロセス１１００は、符号化ビットストリーム中で、現在ブロックについての参照ピクチャリスト０および参照ピクチャリスト１についての１つまたは複数の照明補償パラメータのうちの１つを一緒に（jointly）シグナリングすることを含む。たとえば、現在ブロックについての両方の参照ピクチャリスト（リスト０およびリスト１）についての１つまたは複数の照明補償パラメータは、符号化ビットストリーム中で一緒にシグナリングされ得る。１つの例示的な例では、両方の参照ピクチャリスト（リスト０およびリスト１）についての照明補償パラメータの値を示すためにインデックスがシグナリングされる。いくつかの態様では、現在ブロックは、候補ブロックから動き情報をコピーまたは導出するインター予測モードを使用してコーディングされ、その場合、１つまたは複数の照明補償パラメータは、候補ブロックの１つまたは複数の照明補償パラメータと同じであるように導出される。一例では、現在ブロックはマージモードを使用してコーディングされ、現在ブロックについての１つまたは複数の照明補償パラメータは、候補ブロックの１つまたは複数の照明補償パラメータと同じであるように導出される。いくつかの例では、候補ブロックは、空間マージ候補、時間マージ候補、双予測マージ候補、または任意の他の好適なマージ候補のうちの少なくとも１つまたは複数である。
【０１５３】
[0165]いくつかの態様では、現在ブロックについての照明補償ステータスは、現在ブロックが、符号化ビットストリーム中で現在ブロックの動き情報を明示的にシグナリングするインター予測モードを使用してコーディングされるとき、符号化ビットストリーム中で明示的にシグナリングされる。
【０１５４】
[0166]いくつかの態様では、現在ブロックについての１つまたは複数の照明補償パラメータは、現在ブロックが、高度動きベクトル予測（ＡＭＶＰ）モードを使用してコーディングされるとき、符号化ビットストリーム中で明示的にシグナリングされる。
【０１５５】
[0167]いくつかの例では、プロセス１１００は、現在ブロックについての１つまたは複数の照明補償パラメータの複数のセットのリストを導出することを含む。そのような例では、１つまたは複数の照明補償パラメータをシグナリングすることは、複数のセットのうちの１つの選択をシグナリングすることを備える。たとえば、照明補償が、現在ブロックのために使用されるものとして決定されるとき、１つまたは複数の照明補償パラメータの複数のセットのリストは、現在ブロックについて生成され得る。いくつかの例では、どの照明補償パラメータ候補が現在ブロックのために使用されるかを示すためのインデックスが、符号化ビットストリーム中でシグナリングされ得る。１つまたは複数の照明補償パラメータの複数のセットのリストは、候補のリストを含み得、隣接サンプルを使用することによって導出される照明補償パラメータ、隣接ブロックの照明補償パラメータ、隣接ブロックのサブセットを使用することによって導出される照明補償パラメータ、またはそれらの任意の組合せのうちの１つまたは複数を含み得る。
【０１５６】
[0168]いくつかの例では、プロセス１１００は、スライスヘッダ中で現在ブロックを備えるスライスについての照明補償パラメータをシグナリングすることを含む。いくつかの例では、プロセス１１００は、クロマとルーマについて別々に照明補償パラメータをシグナリングすることを含む。いくつかの例では、プロセス１１００は、現在ブロックを備えるＣＴＵについての照明補償パラメータをシグナリングすることを含む。いくつかの例では、プロセス１１００は、現在ブロックを備えるブロックのグループ、または現在ブロックを備える別の他のブロックレベルについての照明補償パラメータをシグナリングすることを含む。
【０１５７】
[0169]いくつかの実施形態では、デコーダ側動きベクトル導出（ＤＭＶＤ）が使用されるとき、照明補償（ＩＣ）使用がシグナリングされ得る。さらに、ＤＭＶＤモードを使用する（またはサブＰＵベースのＤＭＶＤモードにある）とき、候補動きベクトルの信頼性は、候補動きベクトルによって識別される２つの対応する領域（たとえば、同様である領域）間の差分によって測定され得る。いくつかの例では、２つの対応する領域は、（たとえば、上記の図７に関して説明されたように、テンプレートベースのＤＭＶＤモードで）現在ブロック中のテンプレートと参照ブロックまたはフレーム中のテンプレートとを含むことができる。差分は、絶対差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、２乗誤差和（ＳＳＥ）、絶対変換済み差分和（ＳＡＴＤ）、または他の好適な差分測度を使用して決定され得る。いくつかの態様では、現在ブロック（たとえば、ＣＵ、ＰＵ、サブＰＵ）のＩＣステータスが真である（ＩＣが現在ブロックのために使用されることを示す）とき、候補動きベクトルの信頼性を測定するために、２つの対応する領域の平均値が、２つの対応する領域間の差分を計算する前に、最初に除去され得る。２つの領域の平均値を計算する一例では、各ブロックについて、ブロックの各サンプルの平均ルーマ、クロマ、または他の特性が計算され、平均は各サンプルから減算される。そのような態様では、２つの対応する領域間の差分を計算することは、平均値除去ＳＡＤ、ＳＳＤ、ＳＳＥ、ＳＡＴＤなど、平均値除去差分（mean removed difference）、または他の平均値除去測度を実施することを含み得る。２つの対応する領域の平均値を除去することは、ＩＣによって考慮されるであろう対応する領域間の照明差分による、差分を部分的になくし得る。ＩＣパラメータおよび／またはＩＣステータスは、次いで、符号化ビットストリーム中でシグナリングされ得る。
【０１５８】
[0170]いくつかの態様では、代替的に、対応する領域のうちの１つが「現在領域」と見なされ得、他の対応する領域が「参照領域」と見なされ得る。ＩＣパラメータは、現在領域の隣接サンプルと参照領域の隣接サンプルとに基づき導出され、次いで、参照領域（照明補償された参照領域を作成すること）に適用され得る。現在領域と照明補償された参照領域との間の差分は、次いで、候補動きベクトルの信頼性を測定するために使用され得る。ＩＣパラメータおよび／またはＩＣステータスは、次いで、符号化ビットストリーム中でシグナリングされ得る。
【０１５９】
[0171]いくつかの態様では、代替的に、ＩＣは、ＤＭＶＤモードを用いてコーディングされるブロックについて、常にディセーブルにされ得る。
【０１６０】
[0172]図１２は、ビデオデータをコーディングするプロセス１２００の一実施形態を示す。プロセス１１００は、候補動きベクトルの信頼性を測定するために実装される。いくつかの態様では、プロセス１２００は、図１または図３に示されているソースデバイス１２またはビデオエンコーダ２０など、コンピューティングデバイスまたは装置によって実施され得る。たとえば、コンピューティングデバイスまたは装置は、エンコーダ、あるいは、プロセス１２００のステップを行うように構成された、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはエンコーダの他の構成要素を含み得る。いくつかの態様では、プロセス１２００は、図１または図４に示されている宛先デバイス１４またはビデオデコーダ３０など、コンピューティングデバイスまたは装置によって実施され得る。たとえば、コンピューティングデバイスまたは装置は、デコーダ、あるいは、プロセス１２００のステップを行うように構成された、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはデコーダの他の構成要素を含み得る。
【０１６１】
[0173]プロセス１２００は論理流れ図として示され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せで実装され得る動作のシーケンスを表す。コンピュータ命令のコンテキストでは、動作は、１つまたは複数のプロセッサによって実行されたとき、具陳された動作を実施する１つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実施するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は、限定として解釈されるものではなく、任意の数の説明される動作は、プロセスを実装するために任意の順序でおよび／または並行して組み合わせられ得る。
【０１６２】
[0174]さらに、プロセス１２００は、実行可能な命令で構成された１つまたは複数のコンピュータシステムの制御下で実施され得、１つまたは複数のプロセッサ上でまとめて実行するコード（たとえば、実行可能な命令、１つまたは複数のコンピュータプログラム、または１つまたは複数のアプリケーション）として、ハードウェア、またはそれらの組合せによって、実装され得る。上述のように、コードは、たとえば、１つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読または機械可読記憶媒体に記憶され得る。コンピュータ可読または機械可読記憶媒体は非一時的であり得る。
【０１６３】
[0175]１２０２において、プロセス１２００は、現在ブロック中のテンプレートに対応する第１の領域を参照フレーム中のテンプレートに対応する第２の領域にマッチさせることを含む。たとえば、第１の領域を第２の領域にマッチさせるために、テンプレートマッチングベースのＤＭＶＤが使用され得る。
【０１６４】
[0176]１２０４において、プロセス１２００は、第１の領域と第２の領域とを識別するマッチングに基づいて候補動きベクトルを生成することを含む。
【０１６５】
[0177]１２０６において、プロセス１２００は、１つまたは複数の照明補償パラメータを第１の領域および第２の領域のうちの１つに適用し、次いで、候補動きベクトルの信頼性を示すために第１の領域と第２の領域との間の差分を計算すること、ならびに、候補動きベクトルの信頼性を示すために第１の領域と第２の領域との間の平均値除去差分（mean removed difference）を計算することのうちの少なくとも１つまたは複数を含む。前述のように、２つの対応する領域の平均値を除去することは、ＩＣによって考慮されるであろう対応する領域間の照明差分による、差分を部分的になくし得る。現在領域と照明補償された参照領域との間の差分は、候補動きベクトルの信頼性を測定するために使用され得る。ＩＣパラメータおよび／またはＩＣステータスは、次いで、符号化ビットストリーム中でシグナリングされ得る。
【０１６６】
[0178]いくつかの実施形態では、重み付け予測（ＷＰ）が動き補償において使用され得る。たとえば、ＷＰは、動き補償において、スケーリングファクタ（ａ）と、シフト数（ｓ）と、オフセット（ｂ）とをサンプル値に適用することを含み得る。一例では、参照ピクチャの位置（ｘ，ｙ）中のサンプル値がｐ（ｘ，ｙ）であると仮定すると、値ｐ’（ｘ，ｙ）（ａ、ｓ、およびｂに基づく、ｐ（ｘ，ｙ）の、スケーリングされ、シフトされ、オフセットされた値）は、動き補償についての予測値としてｐ（ｘ，ｙ）の代わりに使用され得る。たとえば、
【０１６７】
【数４】
0006746620.tif 000005
【０１６８】
[0179]いくつかの態様では、現在スライスの各参照ピクチャについて、ＷＰが参照ピクチャのために適用されるか否かを示すためのフラグがシグナリングされる。ＷＰが参照ピクチャの適用される場合、ＷＰパラメータ（たとえば、ａ、ｓ、およびｂ）のセットが、参照ピクチャからの動き補償のために使用されるように、デコーダに、符号化ビットストリームの一部として送られ得る。いくつかの態様では、参照ピクチャのルーマ成分およびクロマ成分についてのＷＰのための別個のフラグおよびパラメータがあり得る。
【０１６９】
[0180]いくつかの態様では、ＩＣとＷＰの両方が、（たとえば、スライス、ピクチャ、シーケンスなどのために）イネーブルにされ得る。代替的に、いくつかの態様では、ＩＣとＷＰが両方ともイネーブルにされるわけではない。したがって、そのような態様では、ＩＣが明示的にイネーブルにされる場合、ＷＰがディセーブルにされるか、または、ＩＣが明示的にディセーブルにされる場合、ＷＰがイネーブルにされる。代替的に、いくつかの態様では、ＷＰは、特定のプロファイルのためにイネーブルにされないか、またはまったく使用されない。
【０１７０】
[0181]いくつかの態様では、ＩＣとＷＰの両方が（たとえば、スライス、ピクチャ、シーケンスのために）イネーブルにされるとき、所与のブロック（たとえば、ＣＵ、ＰＵ、サブＰＵ）について、ＩＣまたはＷＰのみがイネーブルにされるが、同時に両方ともイネーブルにされるわけではない。いくつかの態様では、ＷＰが、現在ブロックがそれから予測される参照ピクチャのためにイネーブルにされるか否かにかかわらず、ＩＣステータスがシグナリングされる（または導出される）。したがって、いくつかの態様では、ブロックのＩＣステータスが真であるとき、ＷＰが、現在ブロックがそれから予測される参照ピクチャのためにイネーブルにされるか否かを考慮せずに、ＩＣのみが、そのブロックのために適用される。さらに、いくつかの態様では、ブロックのＩＣステータスが偽であるとき、現在ブロックが、ＷＰがイネーブルにされる１つまたは複数の参照ピクチャから予測されるとき、ＷＰのみが適用され得る。
【０１７１】
[0182]いくつかの態様では、代替的に、ＩＣとＷＰの両方が（たとえば、スライス、ピクチャ、シーケンスのために）イネーブルにされるとき、現在ブロックが、ＷＰがイネーブルにされる１つまたは複数の参照ピクチャから予測され、および、現在ブロックのＩＣステータスが真であるとき、ＷＰの他に（たとえば、それに加えて）ＩＣが使用され得る。たとえば、ＷＰは、最初に、参照ブロックと、現在ブロックおよび参照ブロックの隣接サンプルとに適用され得る。ＷＰパラメータを用いて処理されたサンプルは、変更サンプル（modified sample）と呼ばれることがある。ＩＣパラメータは、次いで、現在ブロックおよび参照ブロックの変更隣接サンプルに基づいて導出され得、予測ブロックを生成するための変更参照ブロックに適用される。
【０１７２】
[0183]いくつかの態様では、代替的に、ＩＣとＷＰの両方が（たとえば、スライス、ピクチャ、シーケンスのために）イネーブルにされるとき、ＷＰが、現在ブロックがそれから予測される１つまたは複数の参照ピクチャのためにディセーブルにされるとき、ＩＣのみが使用され得る。たとえば、ブロックが、ＷＰがイネーブルにされた参照フレームからのみ予測されるとき、ＩＣステータスは、シグナリング（または隣接ブロック形態コピー）されず、そのブロックについて常に偽として設定される。したがって、重み付け予測がディセーブルにされた少なくとも１つの参照ピクチャからブロックが予測される（またはいくつかの態様では部分的に予測される）ときのみ、ＩＣステータスは真であり（シグナリングまたは導出され）得る。
【０１７３】
[0184]したがって、本開示の態様によれば、ビデオエンコーダ２０またはビデオデコーダ３０は、照明補償を、ビデオブロックまたはビデオの他の部分にどのようにシグナリングし、適用するかを決定し得る。たとえば、ビデオエンコーダ２０またはビデオデコーダ３０は、隣接サンプルに基づいてビデオブロックについてのＩＣパラメータを決定し得る。さらに、ビデオエンコーダ２０またはビデオデコーダ３０は、ブロックに関連する動き情報および／または使用されるインター予測モードのタイプ（たとえば、ＡＶＭＰ、ＤＭＶＤ、マージ（たとえば、タイプは、空間、時間、双予測、仮想単方向などを含む）、ＯＢＭＣなど）に基づいて、ブロックのＩＣステータスを決定し得る。また別の例では、ビデオエンコーダ２０またはビデオデコーダ３０は、マージモード以外にインター予測モードを使用して符号化されるブロックについてのＩＣの使用を明示的にシグナリングし得る。さらなる一例では、ビデオエンコーダ２０またはビデオデコーダ３０は、ブロックのために複数のＩＣパラメータのうちのどれを使用すべきかを示し得る。別の例では、ビデオエンコーダ２０またはビデオデコーダ３０は、ブロックのＩＣステータスに基づき、ＤＭＶＤのために基づく候補動きベクトルの信頼性を決定し得る。またさらなる例では、ビデオエンコーダ２０またはビデオデコーダ３０は、スライスレベル、またはパラメータセットに関連するレベルにおけるＩＣステータスを示し得る。さらなる例では、ビデオエンコーダ２０またはビデオデコーダ３０は、ＷＰとともにＩＣを使用し得る。
【０１７４】
[0185]上記の説明では、本出願の態様がそれの特定の実施形態を参照しながら説明されたが、本発明はそれに限定されないことを、当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されているが、従来技術によって限定される場合を除いて、発明的概念が、場合によってはさまざまに実施および採用され得、添付の特許請求の範囲が、そのような変形形態を含むように解釈されるものであることを理解されたい。上記で説明された発明の様々な特徴および態様は、個々にまたは一緒に使用され得る。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書で説明された環境および適用例以外に、任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定的なものではなく例示的なものとして考慮されるべきである。説明の目的で、方法は特定の順序で説明された。代替実施形態では、方法は、説明された順序とは異なる順序で実施され得ることを諒解されたい。
【０１７５】
[0186]上記例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントが、異なるシーケンスで実施され得、全体的に追加、マージ、または除外され得る（たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
【０１７６】
[0187]構成要素が、ある動作を実施する「ように構成されて」いるものとして説明される場合、そのような構成は、たとえば、動作を実施するように電子回路または他のハードウェアを設計することによって、動作を実施するようにプログラマブル電子回路（たとえば、マイクロプロセッサ、または他の好適な電子回路）をプログラムすることによって、またはそれらの任意の組合せによって、達成され得る。
【０１７７】
[0188]本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上記では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
【０１７８】
[0189]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベース処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１７９】
[0190]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１８０】
[0191]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０１８１】
[0192]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１８２】
[0193]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］ビデオデータをコーディングする方法であって、
現在ブロックについての１つまたは複数の照明補償パラメータを決定することと、
前記１つまたは複数の照明補償パラメータを使用して、符号化ビットストリームの一部として前記現在ブロックをコーディングすることと、
を備える、方法。
［Ｃ２］前記現在ブロックについての１つまたは複数の空間的に隣接するサンプルを決定することと、
前記１つまたは複数の空間的に隣接するサンプルのうちの少なくとも１つに基づいて、前記現在ブロックについての前記１つまたは複数の照明補償パラメータを導出することと、
前記１つまたは複数の照明補償パラメータを使用して、前記符号化ビットストリームの一部として前記現在ブロックをコーディングすることと、
前記現在ブロックについて、個々に、前記符号化ビットストリーム中で照明補償ステータスをシグナリングすることと、
をさらに備える、Ｃ１に記載の方法。
［Ｃ３］前記１つまたは複数の空間的に隣接するサンプルは、
前記現在ブロックの１つまたは複数の再構成された空間的に隣接するサンプル、または
前記現在ブロックに関連する動き情報によって識別される参照ピクチャ中の前記現在ブロックの前記１つまたは複数の再構成された空間的に隣接するサンプルに対する１つまたは複数の対応するサンプル、
のうちの少なくとも１つまたは複数である、Ｃ２に記載の方法。
［Ｃ４］前記１つまたは複数の対応するサンプルを識別するために使用される前記現在ブロックに関連する前記動き情報は、サブＰＵベースの時間または空間予測モードが前記現在ブロックのために使用されるとき、前記現在ブロックの代表的動き情報を含む、Ｃ３に記載の方法。
［Ｃ５］前記１つまたは複数の空間的に隣接するサンプルは、複数の隣接サンプルを備え、前記空間的に隣接するサンプルのうちの前記少なくとも１つは、前記複数の隣接サンプルのすべてよりも少ないサンプルを含む、Ｃ２に記載の方法。
［Ｃ６］前記符号化ビットストリーム中で、前記現在ブロックについての前記１つまたは複数の照明補償パラメータのうちの少なくとも１つをシグナリングすること、
をさらに備える、Ｃ１に記載の方法。
［Ｃ７］前記符号化ビットストリーム中で、前記現在ブロックについての参照ピクチャリスト０および参照ピクチャリスト１についての前記１つまたは複数の照明補償パラメータのうちの１つを一緒にシグナリングすること、
をさらに備える、Ｃ６に記載の方法。
［Ｃ８］前記現在ブロックは、候補ブロックから動き情報をコピーまたは導出するインター予測モードを使用してコーディングされ、前記１つまたは複数の照明補償パラメータは、前記候補ブロックの１つまたは複数の照明補償パラメータと同じであるように導出される、Ｃ６に記載の方法。
［Ｃ９］前記現在ブロックはマージモードを使用してコーディングされ、前記現在ブロックについての前記１つまたは複数の照明補償パラメータは、前記候補ブロックの前記１つまたは複数の照明補償パラメータと同じであるように導出される、Ｃ８に記載の方法。
［Ｃ１０］前記候補ブロックは、空間マージ候補、時間マージ候補、または双予測マージ候補のうちの少なくとも１つまたは複数である、Ｃ９に記載の方法。
［Ｃ１１］前記現在ブロックについての前記照明補償ステータスは、前記現在ブロックが、前記符号化ビットストリーム中で前記現在ブロックの前記動き情報を明示的にシグナリングするインター予測モードを使用してコーディングされるとき、前記符号化ビットストリーム中で明示的にシグナリングされる、Ｃ６に記載の方法。
［Ｃ１２］前記現在ブロックについての前記１つまたは複数の照明補償パラメータは、前記現在ブロックが、高度動きベクトル予測（ＡＭＶＰ）モードを使用してコーディングされるとき、前記符号化ビットストリーム中で明示的にシグナリングされる、Ｃ６に記載の方法。
［Ｃ１３］前記現在ブロックについての１つまたは複数の照明補償パラメータの複数のセットのリストを導出することをさらに備え、
前記１つまたは複数の照明補償パラメータをシグナリングすることは、前記複数のセットのうちの１つの選択をシグナリングすることを備える、Ｃ６に記載の方法。
［Ｃ１４］スライスヘッダ中で、前記現在ブロックを備えるスライスについての前記照明補償パラメータをシグナリングすることをさらに備える、Ｃ１に記載の方法。
［Ｃ１５］クロマとルーマについて別々に照明補償パラメータをシグナリングすることをさらに備える、Ｃ１に記載の方法。
［Ｃ１６］前記１つまたは複数の照明補償パラメータは、スケールまたはオフセットのうちの少なくとも１つまたは複数を含む、Ｃ１に記載の方法。
［Ｃ１７］ビデオデータを記憶するように構成されたメモリと、
現在ブロックについての１つまたは複数の照明補償パラメータを決定することと、
前記１つまたは複数の照明補償パラメータを使用して、符号化ビットストリームの一部として前記現在ブロックをコーディングすることと、
を行うように構成されたプロセッサと、
を備える装置。
［Ｃ１８］前記プロセッサは、
前記現在ブロックについての１つまたは複数の空間的に隣接するサンプルを決定することと、
前記１つまたは複数の空間的に隣接するサンプルのうちの少なくとも１つに基づいて、前記現在ブロックについての前記１つまたは複数の照明補償パラメータを導出することと、
前記１つまたは複数の照明補償パラメータを使用して、前記符号化ビットストリームの一部として前記現在ブロックをコーディングすることと、
前記現在ブロックについて、個々に、前記符号化ビットストリーム中で照明補償ステータスをシグナリングすることと、
を行うようにさらに構成された、Ｃ１７に記載の装置。
［Ｃ１９］前記１つまたは複数の空間的に隣接するサンプルは、
前記現在ブロックの１つまたは複数の再構成された空間的に隣接するサンプル、または
前記現在ブロックに関連する動き情報によって識別される参照ピクチャ中の前記現在ブロックの前記１つまたは複数の再構成された空間的に隣接するサンプルに対する１つまたは複数の対応するサンプル、
のうちの少なくとも１つまたは複数である、Ｃ１８に記載の装置。
［Ｃ２０］前記１つまたは複数の空間的に隣接するサンプルは、複数の隣接サンプルを備え、前記空間的に隣接するサンプルのうちの前記少なくとも１つは、前記複数の隣接サンプルのすべてよりも少ないサンプルを含む、Ｃ１８に記載の装置。
［Ｃ２１］前記プロセッサは、
前記符号化ビットストリーム中で、前記現在ブロックについての前記１つまたは複数の照明補償パラメータのうちの少なくとも１つをシグナリングする
ようにさらに構成された、Ｃ１７に記載の装置。
［Ｃ２２］前記現在ブロックは、候補ブロックから動き情報をコピーまたは導出するインター予測モードを使用してコーディングされ、前記１つまたは複数の照明補償パラメータは、前記候補ブロックの１つまたは複数の照明補償パラメータと同じであるように導出される、Ｃ２１に記載の装置。
［Ｃ２３］前記現在ブロックはマージモードを使用してコーディングされ、前記現在ブロックについての前記１つまたは複数の照明補償パラメータは、前記候補ブロックの前記１つまたは複数の照明補償パラメータと同じであるように導出される、Ｃ２２に記載の装置。
［Ｃ２４］前記候補ブロックは、空間マージ候補、時間マージ候補、または双予測マージ候補のうちの少なくとも１つまたは複数である、Ｃ２３に記載の装置。
［Ｃ２５］前記現在ブロックについての前記照明補償ステータスは、前記現在ブロックが、前記符号化ビットストリーム中で前記現在ブロックの前記動き情報を明示的にシグナリングするインター予測モードを使用してコーディングされるとき、前記符号化ビットストリーム中で明示的にシグナリングされる、Ｃ２１に記載の装置。
［Ｃ２６］前記現在ブロックについての前記１つまたは複数の照明補償パラメータは、前記現在ブロックが、高度動きベクトル予測（ＡＭＶＰ）モードを使用してコーディングされるとき、前記符号化ビットストリーム中で明示的にシグナリングされる、Ｃ２１に記載の装置。
［Ｃ２７］前記プロセッサは、前記現在ブロックについての１つまたは複数の照明補償パラメータの複数のセットのリストを導出するようにさらに構成され、
前記１つまたは複数の照明補償パラメータをシグナリングすることは、前記複数のセットのうちの１つの選択をシグナリングすることを備える、Ｃ２１に記載の装置。
［Ｃ２８］前記プロセッサは、スライスヘッダ中で、前記現在ブロックを備えるスライスについての前記照明補償パラメータをシグナリングするようにさらに構成された、Ｃ１７に記載の装置。
［Ｃ２９］前記プロセッサは、クロマとルーマについて別々に照明補償パラメータをシグナリングするようにさらに構成された、Ｃ１７に記載の装置。
［Ｃ３０］前記１つまたは複数の照明補償パラメータは、スケールまたはオフセットのうちの少なくとも１つまたは複数を含む、Ｃ１７に記載の装置。
［Ｃ３１］プロセッサによって実行されたとき、
現在ブロックについての１つまたは複数の照明補償パラメータを決定することと、
前記１つまたは複数の照明補償パラメータを使用して、符号化ビットストリームの一部として前記現在ブロックをコーディングすることと、
を含む方法を実行する命令を記憶したコンピュータ可読媒体。
［Ｃ３２］前記現在ブロックについての１つまたは複数の空間的に隣接するサンプルを決定することと、
前記１つまたは複数の空間的に隣接するサンプルのうちの少なくとも１つに基づいて、前記現在ブロックについての前記１つまたは複数の照明補償パラメータを導出することと、
前記１つまたは複数の照明補償パラメータを使用して、前記符号化ビットストリームの一部として前記現在ブロックをコーディングすることと、
前記現在ブロックについて、個々に、前記符号化ビットストリーム中で照明補償ステータスをシグナリングすることと、
をさらに備える、Ｃ３１に記載のコンピュータ可読媒体。
［Ｃ３３］前記１つまたは複数の空間的に隣接するサンプルは、
前記現在ブロックの１つまたは複数の再構成された空間的に隣接するサンプル、または
前記現在ブロックに関連する動き情報によって識別される参照ピクチャ中の前記現在ブロックの前記１つまたは複数の再構成された空間的に隣接するサンプルに対する１つまたは複数の対応するサンプル、
のうちの少なくとも１つまたは複数である、Ｃ３２に記載のコンピュータ可読媒体。
［Ｃ３４］前記１つまたは複数の空間的に隣接するサンプルは、複数の隣接サンプルを備え、前記空間的に隣接するサンプルのうちの前記少なくとも１つは、前記複数の隣接サンプルのすべてよりも少ないサンプルを含む、Ｃ３２に記載のコンピュータ可読媒体。
［Ｃ３５］前記符号化ビットストリーム中で、前記現在ブロックについての前記１つまたは複数の照明補償パラメータのうちの少なくとも１つをシグナリングすること、
をさらに備える、Ｃ３１に記載のコンピュータ可読媒体。
［Ｃ３６］前記現在ブロックは、候補ブロックから動き情報をコピーまたは導出するインター予測モードを使用してコーディングされ、前記１つまたは複数の照明補償パラメータは、前記候補ブロックの１つまたは複数の照明補償パラメータと同じであるように導出される、Ｃ３５に記載のコンピュータ可読媒体。
［Ｃ３７］前記現在ブロックはマージモードを使用してコーディングされ、前記現在ブロックについての前記１つまたは複数の照明補償パラメータは、前記候補ブロックの前記１つまたは複数の照明補償パラメータと同じであるように導出される、Ｃ３６に記載のコンピュータ可読媒体。
［Ｃ３８］前記候補ブロックは、空間マージ候補、時間マージ候補、または双予測マージ候補のうちの少なくとも１つまたは複数である、Ｃ３７に記載のコンピュータ可読媒体。
［Ｃ３９］前記現在ブロックについての前記照明補償ステータスは、前記現在ブロックが、前記符号化ビットストリーム中で前記現在ブロックの前記動き情報を明示的にシグナリングするインター予測モードを使用してコーディングされるとき、前記符号化ビットストリーム中で明示的にシグナリングされる、Ｃ３５に記載のコンピュータ可読媒体。
［Ｃ４０］前記現在ブロックについての前記１つまたは複数の照明補償パラメータは、前記現在ブロックが、高度動きベクトル予測（ＡＭＶＰ）モードを使用してコーディングされるとき、前記符号化ビットストリーム中で明示的にシグナリングされる、Ｃ３５に記載のコンピュータ可読媒体。
［Ｃ４１］前記現在ブロックについての１つまたは複数の照明補償パラメータの複数のセットのリストを導出することをさらに備え、
前記１つまたは複数の照明補償パラメータをシグナリングすることは、前記複数のセットのうちの１つの選択をシグナリングすることを備える、Ｃ３５に記載のコンピュータ可読媒体。
［Ｃ４２］スライスヘッダ中で、前記現在ブロックを備えるスライスについての前記照明補償パラメータをシグナリングすることをさらに備える、Ｃ３１に記載のコンピュータ可読媒体。
［Ｃ４３］クロマとルーマについて別々に照明補償パラメータをシグナリングすることをさらに備える、Ｃ３１に記載のコンピュータ可読媒体。
［Ｃ４４］前記１つまたは複数の照明補償パラメータは、スケールまたはオフセットのうちの少なくとも１つまたは複数を含む、Ｃ３１に記載のコンピュータ可読媒体。
［Ｃ４５］現在ブロックについての１つまたは複数の照明補償パラメータを決定するための手段と、
前記１つまたは複数の照明補償パラメータを使用して、符号化ビットストリームの一部として前記現在ブロックをコーディングするための手段と、
を備える、装置。
［Ｃ４６］前記現在ブロックについての１つまたは複数の空間的に隣接するサンプルを決定することと、
前記１つまたは複数の空間的に隣接するサンプルのうちの少なくとも１つに基づいて、前記現在ブロックについての前記１つまたは複数の照明補償パラメータを導出することと、
前記１つまたは複数の照明補償パラメータを使用して、前記符号化ビットストリームの一部として前記現在ブロックをコーディングすることと、
前記現在ブロックについて、個々に、前記符号化ビットストリーム中で照明補償ステータスをシグナリングすることと、
をさらに備える、Ｃ４５に記載の装置。
［Ｃ４７］前記１つまたは複数の空間的に隣接するサンプルは、
前記現在ブロックの１つまたは複数の再構成された空間的に隣接するサンプル、または
前記現在ブロックに関連する動き情報によって識別される参照ピクチャ中の前記現在ブロックの前記１つまたは複数の再構成された空間的に隣接するサンプルに対する１つまたは複数の対応するサンプル、
のうちの少なくとも１つまたは複数である、Ｃ４６に記載の装置。
［Ｃ４８］前記１つまたは複数の空間的に隣接するサンプルは、複数の隣接サンプルを備え、前記空間的に隣接するサンプルのうちの前記少なくとも１つが、前記複数の隣接サンプルのすべてよりも少ないサンプルを含む、Ｃ４６に記載の装置。
［Ｃ４９］前記符号化ビットストリーム中で、前記現在ブロックについての前記１つまたは複数の照明補償パラメータのうちの少なくとも１つをシグナリングすること、
をさらに備える、Ｃ４５に記載の装置。
［Ｃ５０］前記現在ブロックは、候補ブロックから動き情報をコピーまたは導出するインター予測モードを使用してコーディングされ、前記１つまたは複数の照明補償パラメータは、前記候補ブロックの１つまたは複数の照明補償パラメータと同じであるように導出される、Ｃ４９に記載の装置。
［Ｃ５１］前記現在ブロックはマージモードを使用してコーディングされ、前記現在ブロックについての前記１つまたは複数の照明補償パラメータは、前記候補ブロックの前記１つまたは複数の照明補償パラメータと同じであるように導出される、Ｃ５０に記載の装置。
［Ｃ５２］前記候補ブロックは、空間マージ候補、時間マージ候補、または双予測マージ候補のうちの少なくとも１つまたは複数である、Ｃ５１に記載の装置。
［Ｃ５３］前記現在ブロックについての前記照明補償ステータスは、前記現在ブロックが、前記符号化ビットストリーム中で前記現在ブロックの前記動き情報を明示的にシグナリングするインター予測モードを使用してコーディングされるとき、前記符号化ビットストリーム中で明示的にシグナリングされる、Ｃ４９に記載の装置。
［Ｃ５４］前記現在ブロックについての前記１つまたは複数の照明補償パラメータは、前記現在ブロックが、高度動きベクトル予測（ＡＭＶＰ）モードを使用してコーディングされるとき、前記符号化ビットストリーム中で明示的にシグナリングされる、Ｃ４９に記載の装置。
［Ｃ５５］前記現在ブロックについての１つまたは複数の照明補償パラメータの複数のセットのリストを導出することをさらに備え、
前記１つまたは複数の照明補償パラメータをシグナリングすることは、前記複数のセットのうちの１つの選択をシグナリングすることを備える、Ｃ４９に記載の装置。
［Ｃ５６］スライスヘッダ中で、前記現在ブロックを備えるスライスについての前記照明補償パラメータをシグナリングすることをさらに備える、Ｃ４５に記載の装置。
［Ｃ５７］クロマとルーマについて別々に照明補償パラメータをシグナリングすることをさらに備える、Ｃ４５に記載の装置。
［Ｃ５８］前記１つまたは複数の照明補償パラメータは、スケールまたはオフセットのうちの少なくとも１つまたは複数を含む、Ｃ４５に記載の装置。
【図１】
0006746620.tif 000006
【図２】
0006746620.tif 000007
【図３】
0006746620.tif 000008
【図４】
0006746620.tif 000009
【図５Ａ】
0006746620.tif 000010
【図５Ｂ】
0006746620.tif 000011
【図６Ａ】
0006746620.tif 000012
【図６Ｂ】
0006746620.tif 000013
【図７】
0006746620.tif 000014
【図８】
0006746620.tif 000015
【図９】
0006746620.tif 000016
【図１０】
0006746620.tif 000017
【図１１】
0006746620.tif 000018
【図１２】
0006746620.tif 000019