(57)【要約】技法およびシステムは、ビデオデータを処理するために提供される。例えば、ビデオデータのピクチャの現在のブロックは、符号化デバイスまたは復号デバイスによって処理するために取得されることができる。現在のブロックのパラメータが決定されることができる。現在のブロックの決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数が決定されることができる。現在のブロックのための動き補償が実行されることができる。例えば、１つまたは複数の照度補償パラメータは、現在のブロックのテンプレートおよび参照ピクチャのテンプレートを使用して現在のピクチャのために導出されることができる。【選択図】図１７
2019531029.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、
前記ビデオデータのピクチャの現在のブロックを取得することと、
前記現在のブロックのパラメータを決定することと、
前記現在のブロックの前記決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することと、
前記現在のブロックのための動き補償を実行すること、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を備える、方法。
【請求項２】
前記現在のブロックを前記パラメータは、前記現在のブロックのサイズを含む、
請求項１に記載の方法。
【請求項３】
前記現在のブロックを前記サイズは、前記現在のブロックの幅を含む、
請求項２に記載の方法。
【請求項４】
前記現在のブロックの前記テンプレート中のサンプルの前記行の数は、前記現在のブロックの前記幅が閾値幅より小さいときに１行である、
請求項３に記載の方法。
【請求項５】
前記現在のブロックの前記テンプレート中のサンプルの前記行の数は、前記現在のブロックの前記幅が閾値幅より大きいときに１行より多くなる、
請求項３に記載の方法。
【請求項６】
前記現在のブロックを前記サイズは、前記現在のブロックの高さを含む、
請求項２に記載の方法。
【請求項７】
前記現在のブロックのテンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより小さいときに１列である、
請求項６に記載の方法。
【請求項８】
前記現在のブロックの前記テンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより大きいときに１列より多くなる、
請求項６に記載の方法。
【請求項９】
前記現在のブロックを前記サイズは、前記ブロックの幅および前記ブロックの高さを含む、
請求項２に記載の方法。
【請求項１０】
前記現在のブロックを前記パラメータは、前記現在のブロックのクロマフォーマットを含む、
請求項１に記載の方法。
【請求項１１】
前記現在のブロックの前記テンプレート中の前記サンプルの行の数および前記サンプルの列の数は、前記現在のブロックの前記クロマフォーマットが４：２：０であるとき前記現在のブロックのルーマサイズの半分に設定される、
請求項１０に記載の方法。
【請求項１２】
前記現在のブロックの前記テンプレート中の前記サンプルの行の数は、前記現在のブロックのルーマサイズと同じサイズに設定され、前記現在のブロックの前記テンプレート中の前記サンプルの列の数は、前記現在のブロックの前記クロマフォーマットが４：２：２であるとき前記ルーマサイズの半分に設定される、
請求項１０に記載の方法。
【請求項１３】
前記１つまたは複数の照度補償パラメータを使用して前記現在のブロックを復号することをさらに備える、
請求項１に記載の方法。
【請求項１４】
符号かされたビデオビットストリーム中で、前記１つまたは複数の照度補償パラメータをシグナリングすることをさらに備える、
請求項１に記載の方法。
【請求項１５】
装置であって、
ビデオデータを記憶するように構成されたメモリと、
プロセッサと
を備え、前記プロセッサは、
前記ビデオデータのピクチャの現在のブロックを取得することと、
前記現在のブロックのパラメータを決定することと、
前記現在のブロックの前記決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することと、
前記現在のブロックのための動き補償を実行すること、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を行うように構成される、装置。
【請求項１６】
前記現在のブロックを前記パラメータは、前記現在のブロックのサイズを含む、
請求項１５に記載の装置。
【請求項１７】
前記現在のブロックを前記サイズは、前記現在のブロックの幅を含む、
請求項１６に記載の装置。
【請求項１８】
前記現在のブロックの前記テンプレート中のサンプルの前記行の数は、前記現在のブロックの前記幅が閾値幅より小さいときに１行である、
請求項１７に記載の装置。
【請求項１９】
前記現在のブロックの前記テンプレート中のサンプルの前記行の数は、前記現在のブロックの前記幅が閾値幅より大きいときに１行より多くなる、
請求項１７に記載の装置。
【請求項２０】
前記現在のブロックを前記サイズは、前記現在のブロックの高さを含む、
請求項１６に記載の装置。
【請求項２１】
前記現在のブロックの前記テンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより小さいときに１列である、
請求項２０に記載の装置。
【請求項２２】
前記現在のブロックのテンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより大きいときに１列より多くなる、
請求項２０に記載の装置。
【請求項２３】
前記現在のブロックを前記サイズは、前記ブロックの幅および前記ブロックの高さを含む、
請求項１６に記載の装置。
【請求項２４】
前記現在のブロックを前記パラメータは、前記現在のブロックのクロマフォーマットを含む、
請求項１５に記載の装置。
【請求項２５】
前記現在のブロックの前記テンプレート中の前記サンプルの行の数および前記サンプルの列の数は、前記現在のブロックの前記クロマフォーマットが４：２：０であるとき前記現在のブロックのルーマサイズの半分に設定される、
請求項２４に記載の装置。
【請求項２６】
前記現在のブロックの前記テンプレート中の前記サンプルの行の数は、前記現在のブロックのルーマサイズと同じサイズに設定され、前記現在のブロックの前記テンプレート中の前記サンプルの列の数は、前記現在のブロックの前記クロマフォーマットが４：２：２であるとき前記ルーマサイズの半分に設定される、
請求項２４に記載の装置。
【請求項２７】
前記ビデオデータを表示するためのディスプレイ
をさらに備える、請求項１５に記載の装置。
【請求項２８】
前記装置は、ピクチャをキャプチャするためのカメラを有するモバイルデバイスを備える、
請求項１５に記載の装置。
【請求項２９】
１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
ビデオデータのピクチャの現在のブロックを取得することと、
前記現在のブロックのパラメータを決定することと、
前記現在のブロックの前記決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することと、
前記現在のブロックのための動き補償を実行すること、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を行わせる命令を有する、非一時的コンピュータ可読媒体。
【請求項３０】
ビデオデータを処理するための装置であって、
前記ビデオデータの現在ピクチャの現在のブロックを取得するための手段と、
前記現在のブロックのパラメータを決定するための手段と、
前記現在のブロックの前記決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定するための手段と、
前記現在のブロックのための動き補償を実行するための手段、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本願は、ビデオコーディングおよび圧縮に関する。より詳細には、本願は、改良された照度補償を実行するシステムおよび方法に関する。
【背景技術】
【０００２】
[0002]多くのデバイスおよびシステムは、ビデオデータが処理され消費のために出力されることを認める。デジタルビデオデータは、消費者およびビデオプロバイダの要望を満たすために大容量を含む。例えば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートおよびそれらと同様のものをもつ、最大限の品質のビデオを望む。結果として、これらの要望を満たすために要求されたビデオデータは、ビデオデータを処理し記憶するデイバスおよび通信ネットワーク上に負担を掛ける。
【０００３】
[0003]様々なビデオコーディング技法は、ビデオデータを圧縮するために使用され得る。ビデオコーディングは、１つまたは複数のビデオコーディング標準に従って実行される。例えば、ビデオコーディング標準は、ＨＥＶＣ（high-efficiency video coding）、ＡＶＣ（advanced video coding）、ＭＰＥＧ（moving picture experts group）コーディング、または同様のものを含む。ビデオコーディングは一般に、ビデオ画像またはシーケンス中に存在する冗長性の利点を取る予測方法（例えば、インター予測、イントラ予測、または同様のもの）を利用する。ビデオコーディング技法の重要な目的は、より低いビットレートを使用する形式にビデオデータを圧縮する一方、ビデオ品質への劣化を避けるまたは最小限にすることである。利用可能になっている今まで発展してきているビデオサービスで、より良いコーディング効率をもつ符号化技法が必要とされる。
【発明の概要】
【０００４】
[0004]照度補償は、１つまたは複数のピクチャの間の照度における変動を効率的に補償するために使用されることができる。いくつかのインプリメンテーションでは、技法およびシステムは、ローカル照度補償（ＬＩＣ）のために使用する１つまたは複数のテンプレートのサイズを適応的に決定するために本明細書に説明される。例えば、現在のブロックのための１つまたは複数のＬＩＣパラメータを導出するために使用されるテンプレート中のピクセルの行および／または列の数は、現在のブロックのパラメータに依存して変化することができる。パラメータは、ブロックサイズ（例えば、ブロックの幅、ブロックの高さ、またはブロックの幅および高さ、あるいはサイズの他の適切な測定値）、ブロックのクロマフォーマット（例えば、４：２：０フォーマット、４：２：２フォーマット、４：４：４フォーマット、または他の適切なクロマフォーマット）、またはテンプレートサイズを決定するために使用されることができる他のパラメータを含むことができる。
【０００５】
[0005]少なくとも１つの例に従って、ビデオデータを処理する方法が提供される。方法は、ビデオデータの現在ピクチャの現在のブロックを取得することを備える。方法はさらに、現在のブロックのパラメータを決定することを備える。方法はさらに、現在のブロックの決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することを備える。方法はさらに、現在のブロックのための動き補償を実行することを備える。動き補償を実行することは、現在のブロックのテンプレートおよび参照ピクチャのテンプレートを使用して現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む。
【０００６】
[0006]別の例では、ビデオデータを記憶するように構成されたメモリと、プロセッサとを含むビデオデータを処理するための装置が提供される。プロセッサは、ビデオデータの現在ピクチャの現在のブロックを取得するように構成され、且つ取得することができる。プロセッサはさらに、現在のブロックのパラメータを決定するように構成され、且つ決定することができる。プロセッサはさらに、現在のブロックの決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定するように構成される。プロセッサはさらに、現在のブロックのための動き補償を実行するように構成され、且つ実行することができる。動き補償を実行することは、現在のブロックのテンプレートおよび参照ピクチャのテンプレートを使用して現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む。
【０００７】
[0007]別の例では、非一時的コンピュータ可読媒体は、１つまたは複数のプロセッサによって実行されると、１つまたは複数のプロセッサに、ビデオデータのピクチャの現在のブロックを取得することと、現在のブロックのパラメータを決定することと、現在のブロックの決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することと、現在のブロックのための動き補償を実行すること、ここにおいて、動き補償を実行することは、現在のブロックのテンプレートおよび参照ピクチャのテンプレートを使用して現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、とを行わせる命令を有することが提供される。
【０００８】
[0008]別の例では、ビデオデータを処理するための装置が提供される。装置は、ビデオデータの現在ピクチャの現在のブロックを取得するための手段を含む。装置はさらに、現在のブロックのパラメータを決定するための手段を含む。装置はさらに、現在のブロックの決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定するための手段を含む。装置はさらに、現在のブロックのための動き補償を実行するための手段を含む。動き補償を実行することは、現在のブロックのテンプレートおよび参照ピクチャのテンプレートを使用して現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む。
【０００９】
[0009]いくつかの態様では、現在のブロックをパラメータは、現在のブロックのサイズを含む。いくつかのケースでは、現在のブロックのサイズは、現在のブロックの幅を含む。いくつかの例では、現在のブロックのテンプレート中のサンプルの行の数は、現在のブロックの幅が閾値幅より小さいときに１行である。いくつかの例では、現在のブロックのテンプレート中のサンプルの行の数は、現在のブロックの幅が閾値幅より大きいときに１行である。
【００１０】
[0010]いくつかのケースでは、現在のブロックのサイズは、現在のブロックの高さを含む。いくつかの例では、現在のブロックのテンプレート中のサンプルの列の数は、現在のブロックの高さが閾値高さより小さいときに１列である。いくつかの例では、現在のブロックのテンプレート中のサンプルの列の数は、現在のブロックの高さが閾値高さより大きいときに１列より大きくなる。
【００１１】
[0011]いくつかのケースでは、現在のブロックをサイズは、ブロックの幅およびブロックの高さを含む。
【００１２】
[0012]いくつかの例では、現在のブロックをパラメータは、現在のブロックのクロマフォーマットを含む。１つの例示的な例では、現在のブロックのテンプレート中のサンプルの行の数およびサンプルの列の数は、現在のブロックのクロマフォーマットが４：２：０であるとき、現在のブロックのルーマサイズの半分に設定される。別の例では、現在のブロックのテンプレート中のサンプルの行の数は、現在のブロックのルーマサイズと同じサイズに設定され、現在のブロックのテンプレート中のサンプルの列の数は、現在のブロックのクロマフォーマットが４：２：２であるとき、ルーマサイズの半分に設定される。
【００１３】
[0013]いくつかの例では、上で説明される、方法、装置、およびコンピュータ可読媒体はさらに、１つまたは複数の照度補償パラメータを使用して現在のブロックを復号することを備える。
【００１４】
[0014]いくつかの態様では、上で説明される、方法、装置、およびコンピュータ可読媒体は、符号化されたビットストリーム中で１つまたは複数の照度補償パラメータをシグナリングすることを備える。
【００１５】
[0015]この発明の概要は、特許請求される主題の基幹的または本質的な特徴を識別することを意図されてはおらず、特許請求される主題の範囲を決定するために単独で使用されることも意図されてはいない。主題は、この特許の明細書全体の適切な部分、任意または全ての図面、および各請求項を参照することによって理解されるべきである。
【００１６】
[0016]前述は、他の特徴および実施形態とともに、後続の明細書、特許請求の範囲、および添付の図面を参照するとより明らかとなるであろう。
【図面の簡単な説明】
【００１７】
[0017]本発明の例示の実施形態は、次の図面を参照して以下に詳細に説明される。
【図１】いくつかの例に従って、符号化デバイスおよび復号デバイスの例を例示するブロック図である。
【図２Ａ】いくつかの例に従って、マージモードのための例となる空間的近隣モーションベクトル候補を例示する概念図である。
【図２Ｂ】いくつかの例に従って、アドバンスト動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）モードのための例となる空間的近隣モーションベクトル候補を例示する概念図である。
【図３Ａ】いくつかの例に従って、例となる時間的動きベクトル予測子（ＴＭＶＰ：temporal motion vector predictor）候補を例示する概念図である。
【図３Ｂ】いくつかの例に従って、動きベクトルスケーリングの例を例示する概念図である。
【図４Ａ】いくつかの例に従って、現在のコーディングユニットのための照度補償（ＩＣ）パラメータを推定するために使用される現在のコーディングユニットの近隣サンプルの例を例示する概念図である。
【図４Ｂ】いくつかの例に従って、現在のコーディングユニットのための照度補償（ＩＣ）パラメータを推定するために使用される参照ブロックの近隣サンプルの例を例示する概念図である。
【図５Ａ】いくつかの例に従って、現在のコーディングユニットのための照度補償（ＩＣ）パラメータの導出のために使用される現在のコーディングユニットの近隣サンプルの例を例示する概念図である。
【図５Ｂ】いくつかの例に従って、現在のコーディングユニットのためのＩＣパラメータの導出のために使用される参照ブロックの近隣サンプルの例を例示する概念図である。
【図６】いくつかの例に従って、重複したブロック動き補償（ＯＢＭＣ：overlapped block motion compensation）の例を例示する概念図である。
【図７Ａ】いくつかの例に従って、ＨＥＶＣのためのＯＢＭＣの例を例示する概念図である。
【図７Ｂ】いくつかの例に従って、ＨＥＶＣのためのＯＢＭＣの例を例示する別の概念図である。
【図８Ａ】いくつかの例に従って、ＯＢＭＣが適用する場合のサブブロックの例を例示する概念図である。
【図８Ｂ】いくつかの例に従って、ＯＢＭＣが適用する場合のサブ予測ユニットの例を例示する概念図である。
【図９】いくつかの例に従って、フレームレートアップ変換（ＦＲＵＣ：frame rate up conversion）におけるの片側動き推定の例を例示する概念図である。
【図１０】いくつかの例に従って、フレームレートアップ変換（ＦＲＵＣ：frame rate up conversion）におけるの両側動き推定の例を例示する概念図である。
【図１１Ａ】いくつかの例に従って、テンプレートマッチングベースの復号器側動きベクトル導出（ＤＭＶＤ）において使用される参照ピクチャの例を例示する概念図である。
【図１１Ｂ】いくつかの例に従って、テンプレートマッチングベースのＤＭＶＤにおいて使用される現在のピクチャの例を例示する概念図である。
【図１２】いくつかの例に従って、ＤＭＶＤにおけるミラーベースの双方向動きベクトル導出の例を例示する概念図である。
【図１３】いくつかの例に従って、ＤＭＶＤを使用して予測ユニット（ＰＵ）を復号する例を例示するフローチャートである。
【図１４】いくつかの例に従って、ローカル照度補償パラメータのテンプレートベースの導出の例を例示する概念図である。
【図１５】いくつかの例に従って、ＯＢＭＣフラグと照度補償（ＩＣ）フラグとの間の改善されたシグナリングのためのプロセスの例を例示するフローチャートである。
【図１６】本開示に従って、ビデオデータを処理するプロセスの例を例示するフローチャートである。
【図１７】本開示に従って、ビデオデータを処理するプロセスの別の例を例示するフローチャートである。
【図１８】本開示に従って、ビデオデータを処理するプロセスの別の例を例示するフローチャートである。
【図１９】いくつかの例に従って、例となるビデオ符号化デバイスを例示するブロック図である。
【図２０】いくつかの例に従って、例となるビデオ復号デバイスを例示するブロック図である。
【発明を実施するための形態】
【００１８】
[0045]本開示のある特定の態様および実施形態が、以下で提供される。当業者に明らかであるように、これらの態様および実施形態のうちのいくつかは、独立して適用されえ、およびそれらのうちのいくつかは、組み合わせて適用されうる。以下の説明では、説明を目的として、特定の詳細が発明の実施形態の完全な理解を提供するために示される。しかしながら、様々な実施形態がこれらの特定の詳細なしに実施され得ることは明らかであろう。図面および説明は、制限的であるとは意図されない。
【００１９】
[0046]次に続く説明は、例示の実施形態のみを提供しており、本開示の範囲、適用可能性、または構成を限定することを意図されてはいない。むしろ、次に続く例示の実施形態の説明は、例示の実施形態をインプリメントするための可能にする説明を当業者に提供する。添付された特許請求の範囲中に記載されているような本発明の精神および範囲から逸脱することなしに、要素の機能および配列において様々な変更がなされ得ることは理解されるべきである。
【００２０】
[0047]実施形態完全な理解を提供するために、説明において特定の詳細が与えられる。しかしながら、実施形態が、これらの特定の詳細なしで実施され得ることは、当業者によって理解されるであろう。例えば、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、不必要な詳細における実施形態を曖昧にしないために、ブロック図形式のコンポーネントとして示されうる。他の事例では、よく知られている回路、プロセス、アルゴリズム、構造、および技法が、実施形態を曖昧にすることを避けるために、不必要な詳細なしに示されうる。
【００２１】
[0048]また、個々の実施形態が、フローチャート、フロー図、データフロー図、構造図、またはブロック図として図示されるプロセスとして説明され得ることに留意されたい。フローチャートは、動作を連続的な処理として説明し得るが、動作の多くは、並行してまたは同時に実行されることができる。加えて、動作の順序は、再配列され得る。プロセスは、その動作が完了すると終了されるが、図面に含まれていない追加のステップを有する可能性がある。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラム、等に対応し得る。プロセスが関数に対応するとき、その終了は、その関数のｃａｌｌｉｎｇ関数またはｍａｉｎ関数への戻りに対応する可能性がある。
【００２２】
[0049]「コンピュータ可読媒体」という用語は、ポータブルまたは非ポータブル記憶デバイスと、光記憶デバイスと、命令（１つ以上）および／またはデータを記憶、包含、あるいは搬送することが可能である様々な他の媒体とを含むが、それらに限定されない。コンピュータ可読媒体は、データが記憶されることができ、且つワイヤレスにあるいはワイヤード接続を通して伝搬する搬送波および／または一時的電子信号を含まない、非一時的媒体を含み得る。非一時的媒体の例は、磁気ディスクまたはテープ、コンパクトディスク（ＣＤ）またはデジタル多用途ディスク（ＤＶＤ）、フラッシュメモリ、メモリまたはメモリデバイスのような光記憶媒体を含み得るが、それらに限定されない。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは命令、データ構造、またはプログラム文の任意の組み合わせを表し得るコードおよび／または機械実行可能命令を記憶していることがあり得る。コードセグメントは、情報、データ、引き数、パラメータ、またはメモリコンテンツを渡すおよび／または受け取ることによって別のコードセグメントまたはハードウェア回路に結合され得る。情報、引き数、パラメータ、データ、等は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信、または同様のものを含む任意の適した手段を介して渡されうるか、転送され得るか、または送信され得る。
【００２３】
[0050]さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによってインプリメントされ得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードにおいてインプリメントされたとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント（例えば、コンピュータプログラム製品）は、コンピュータ可読または機械可読媒体中に記憶され得る。プロセッサは、必要なタスクを実行し得る。
【００２４】
[0051]  ビデオコーディングデバイスは、ビデオデータを効率的に符号化および復号するためのビデオ圧縮技法をインプリメントする。ビデオ圧縮技法は、空間的予測（例えば、イントラフレーム予測またはイントラ予測）、時間的予測（例えば、インターフレーム予測またはインター予測）、（ビデオデータの異なるレイヤにわたるインターレイヤ予測、および／またはビデオシーケンスに固有の冗長性を低減または取り除く他の予測技法を含む、異なる予測モードを適用することを含み得る。ビデオ符号化器は、（より詳細に以下に説明される）コーディングユニットまたはビデオブロックと呼ばれる矩形領域中に元のビデオシーケンスの各ピクチャを区分化することができる。これらのビデオブロックは、特定の予測モードを使用して符号化され得る。
【００２５】
[0052]ビデオブロックは、より小さいブロックのうちの１つまたは複数のグループに１つまたは複数の方法において分割され得る。ブロックは、コーディングブロック、予測ブロック、変換ブロック、または他の適切なブロックをコーディングすることを含むことができる。別に指定されない限り、「ブロック」の一般的な参照は、このようなビデオブロック（例えば、コーディングツリーブロック、コーディングブロック、予測ブロック、変換ブロック、または当業者によって理解されるであろう、他の適切なブロックあるいはサブブロックを参照し得る。さらに、これらのブロックの各々はまた、「ユニット」（例えば、コーディングツリーユニット（ＣＴＵ）、コーディングユニット、予測ユニット（ＰＵ）、転送ユニット（ＴＵ）、または同様なもの）として本明細書に交換可能に参照され得る。いくつかのケースでは、ユニットは、ビットストリーム中に符号化されるコーディング論理ユニットを示す一方、ブロックは、プロセスが目標にするビデオフレームバッファの一部を示し得る。
【００２６】
[0053]インター予測モードについて、ビデオ符号化器は、参照フレームまたは参照ピクチャと呼ばれる別の時間的なロケーションにおいて位置付けられるフレーム（またはピクチャ）において符号化されているブロックと似ているブロックを探索することができる。ビデオ符号化器は、符号化されるべきブロックからある空間的置き換えに探索を制限し得る。最良の一致は、水平置き換えコンポーネントおよび垂直置き換えコンポーネントを含む２次元（２Ｄ）動きベクトルを使用して位置付けられ得る。イントラ予測モードについて、ビデオ符号化器は、同じピクチャ内で前に符号化された近隣ブロックからのデータに基づいて空間的予測技法を使用して予測されたブロックを形成し得る。
【００２７】
[0054]ビデオ符号化器は、予測誤りを決定し得る。例えば、予測は、符号化されているブロック中のピクセル値と、予測ブロックとの間の差として決定されることができる。予測誤りはまた、剰余と呼ばれることができる。ビデオ符号化器はまた、変換係数を生成するために、予測誤り（例えば、離散工サイン変換（ＤＣＴ）、または他の適切な変換）に変換を適用し得る。変換後、ビデオ符号化器は、変換係数を量子化し得る。量子化された変換係数および動きベクトルは、シンタックス要素を使用して表わされ、制御情報と共に、ビデオシーケンスのコード化表現を形成し得る。いくつかの例では、ビデオ符号化器は、シンタックス要素をエントロピーコードし得、それによりさらにそれらの表現のために必要とされるビットの数を低減する。
【００２８】
[0055]ビデ復号器は、上で説明したシンタックス要素および制御情報を使用して、現在のフレームを復号するための予測データ（例えば、予測ブロック）を構築し得る。例えば、ビデオ符号化器は、予測ブロックおよび圧縮された予測誤りを追加し得る。ビデオ復号器は、量子化された係数を使用して変換ベースの関数を重み付けすることによって圧縮された予測誤りを決定し得る。再構築されたフレームと元のフレームとの間の差分は、再構築誤りと呼ばれる。
【００２９】
[0056]いくつかの例では、ビデオデータを処理する１つまたは複数のシステムおよび方法は、ブロックベースのビデオコーディング中の照度補償（ＩＣ）パラメータを導出または推定することに向けられる。いくつかの例では、ビデオ符号化器および／またはビデオ復号器は、１つまたは複数のピクチャ官の照度（例えば、明るさ）における変化を効率的にコード化するためにローカル照度補償（ＬＩＣ）（または照度補償（ＩＣ））を実行することができる。ビデオ符号化器および／またはビデオ復号器は、符号化または復号されているコーディングブロックまたはコーディングユニットのための１つまたは複数のＩＣパラメータ（例えば、オフセット、１つまたは複数のスケーリングファクタ、シフト数、または他の適切なＩＣパラメータ）を決定することができる。ＩＣパラメータは、複数の参照ブロックのサンプル、現在の１つまたは複数の近隣ブロックのサンプル、および／または他の情報に基づいて決定されることができる。ビデオ復号器は、現在のブロックを復号するための予測データを構築するために、ＩＣパラメータおよび／または他のデータを利用することができる。
【００３０】
[0057]いくつかの例では、ビデオデータを処理する１つまたは複数のシステムおよび方法は、ＬＩＣのために使用する１つまたは複数のテンプレートのサイズを適応的に決定することに向けられる。例えば、現在のブロックのための１つまたは複数のＬＩＣパラメータを導出するために使用されるテンプレート中のピクセルの行および／または列の数は、現在のブロックのパラメータに依存して変化することができる。パラメータは、ブロックサイズ（例えば、ブロックの幅、ブロックの高さ、またはブロックの幅および高さ、あるいはサイズの他の適切な測定値）、ブロックのクロマフォーマット（例えば、４：２：０フォーマット、４：２：２フォーマット、４：４：４フォーマット、または他の適切なクロマフォーマット）、またはテンプレートサイズを決定するために使用されることができる他のパラメータを含むことができる。
【００３１】
[0058]いくつかの例では、ビデオデータを処理する１つまたは複数のシステムおよび方法は、所定のセットから重みの適応選択に向けられる。例えば、テンプレートベースのソリューションは、復号器に重みの選択をシグナルする必要なしに、重みの所定のセットの１つまたは複数の重みから１つまたは複数の最適重みを探索するために使用されることができる。このシステムおよび方法は、予測プロセスにおいて重みを利用する動きベクトルまたは補償に基づく任意のマッチングのために使用されることができる。例えば、このシステムおよび方法は、任意の２予測ブロック（bi-predicted block）のために使用されることができ、ここで、２つの論理的な分離ピクチャを指す２つの動きベクトルが考慮される。このような例では、重みは、１に等しい合計を持つ両方の参照ピクチャ（例えば、ｒｅｆ０およびｒｅｆ１）のための重み付けファクタのペアと呼ばれることができる。このようなシステムおよび方法がそれのために使用されることができるマッチングベースの動き予測または補償技法の例は、ＬＩＣ、重み付けされた予測（ＷＰ）、または予測プロセスにおける重みを利用する任意の他の適切な技法を含む。
【００３２】
[0059]本明細書に説明される技法は、既存のビデオコード（例えば、ＨＥＶＣ（High Efficiency Video Coding）、ＡＶＣ（Advanced Video Coding）、または他の適切な既存のビデオコーデック）に適用されることができ、例えば、ＪＥＭ（joint exploration modelのような、任意の未来のビデオコーディング基準のための効率的なコーディングツール出ることができる。
【００３３】
[0060]図１は、符号化デバイス１０４および復号デバイス１１２を含むシステム１００の例を例示するブロック図である。符号化デバイス１０４は、ソースデバイスの一部でありえ、および復号デバイス１１２は、受信デバイスの一部であり得る。ソースデバイスおよび／または受信デバイスは、モバイルまたは固定の電話ハンドセット（例えば、スマートフォン、セルラ電話、または同様のもの）、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、インターネットプロトコル（ＩＰ）カメラのような電子デバイス、または任意の他の適した電子デバイスを含み得る。いくつかの例では、ソースデバイスおよび受信デバイスは、ワイヤレス通信のための１つまたは複数のワイヤレストランシーバを含み得る。本明細書に説明されるコーディング技法は、（例えば、インターネットを通した）ストリーミングビデオ送信、テレビブロードキャストまたは送信、データ記憶媒体上での記憶のためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用を含む、様々なマルチメディア適用におけるビデオコーディングに適用可能である。いくつかの例では、システム１００は、ビデオ会議、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ゲーミング、および／またはビデオ電話通信のような適用をサポートするために、１方向（one-way）または２方向（two-way）のビデオ送信をサポートすることができる。
【００３４】
[0061]符号化デバイス１０４（または符号化器）は、符号化されたビデオビットストリームを生成すべく、ビデオコーディング規格またはプロトコルを使用してビデオデータを符号化するために使用されることができる。ビデオコーディング規格の例は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、そのスケーラブルビデオコーディング（ＳＶＣ）およびマルチビュービデオコーディング（ＭＶＣ）拡張を含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られている）ＩＴＵ−Ｔ  Ｈ．２６４、および高効率ビデオコーディング（ＨＥＶＣ）またはＩＴＵ−Ｔ  Ｈ．２６５を含む。範囲およびスクリーンコンテンツコーディング拡張、３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）およびマルチビュー拡張（ＭＶ−ＨＥＶＣ）およびスケーラブル拡張（ＳＨＶＣ）を含む、マルチレイヤビデオコーディングを扱うＨＥＶＣへの様々な拡張が存在する。ＨＥＶＣおよびその拡張は、ＩＴＵ−Ｔ  ビデオコーディングエキスパートグループ（ＶＣＥＧ）およびＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ）のビデオコーディングに関する共同コラボレーションチーム（ＪＣＴ−ＶＣ：the Joint Collaboration Team on Video Coding）ならびに３Ｄビデオコーディング拡張開発に関する共同コラボレーションチーム（ＪＣＴ−３Ｖ：Joint Collaboration Team on 3D Video Coding Extension Development）によって開発されてきた。ＭＰＥＧとＩＴＵ−Ｔ  ＶＣＥＧとはまた、次世代のビデオコーディング規格のための新しいコーディングツールを調査するために、共同調査ビデオチーム（ＪＶＥＴ）を結成した。参照ソフトウェアは、ＪＥＭ（共同調査モデル）と呼ばれる。
【００３５】
[0062]ここに説明される多くの例は、ＪＥＭモデル、ＨＥＶＣ規格、および／またはそれらの拡張を使用した例を提供する。しかしながら、ここに説明される技法およびシステムはまた、ＡＶＣ、ＭＰＥＧ、それらの拡張のような他のコーディング規格、あるいは現在存在する他の適したコーディング規格または将来のコーディング規格に適用可能であり得る。それ故に、ここに説明される技法およびシステムは、特定のビデオコーディング規格を参照して説明されうるが、当業者は、その説明がその特定の規格にしか適用されないと解釈されるべきではないことを認識するであろう。
【００３６】
[0063]図１を参照すると、ビデオソース１０２は、符号化デバイス１０４にビデオデータを提供し得る。ビデオソース１０２は、ソースデバイスの一部でありうるか、またはソースデバイス以外のデバイスの一部であり得る。ビデオソース１０２は、ビデオキャプチャデバイス（例えば、ビデオカメラ、カメラ電話、ビデオ電話、または同様のもの）、記憶されたビデオを包含するビデオアーカイブ、ビデオデータを提供するビデオサーバまたはコンテンツプロバイダ、ビデオサーバまたはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを生成するためのコンピュータグラフィックスシステム、そのようなソースの組み合わせ、または任意の他の適したビデオソースを含み得る。
【００３７】
[0064]ビデオソース１０２からのビデオデータは、１つまたは複数の入力ピクチャまたはフレームを含み得る。ピクチャまたはフレームは、ビデオの一部である静止画像である。符号化デバイス１０４の符号化器エンジン１０６（または符号化器）は、符号化されたビデオビットストリームを生成するためにビデオデータを符号化する。いくつかの例では、符号化されたビデオビットストリーム（あるいは、「ビデオビットストリーム」または「ビットストリーム」）は、一連の１つまたは複数のコーディングされたビデオシーケンスである。コーディングされたビデオシーケンス（ＣＶＳ）は、ベースレイヤ中にランダムアクセスポイントピクチャを有し、且つある特定の特性を有するアクセスユニット（ＡＵ）から開始し、ベースレイヤ中にランダムアクセスポイントピクチャを有し、且つある特定の特性を有する次のＡＵまでの、およびそれを含まない一連のＡＵを含む。例えば、ＣＶＳを開始するランダムアクセスポイントピクチャのある特定の特性は、１に等しいＲＡＳＬフラグ（例えば、ＮｏＲａｓｌＯｕｔｐｕｔＦｌａｇ）を含み得る。そうでない場合は、（０に等しいＲＡＳＬフラグを有する）ランダムアクセスポイントピクチャは、ＣＶＳを開始しない。アクセスユニット（ＡＵ）は、１つまたは複数のコーディングされたピクチャ、および同じ出力時間を共有するそのコーディングされたピクチャに対応する制御情報を含む。ピクチャのコーディングされたスライスは、ネットワーク抽象化レイヤ（ＮＡＬ）ユニットと呼ばれるデータユニットへとビットストリームレベルでカプセル化される。例えば、ＨＥＶＣビデオビットストリームは、ＮＡＬユニットを含む１つまたは複数のＣＶＳを含みうる。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを有する。一例では、ヘッダは、（マルチレイヤ拡張を除き）Ｈ．２６４／ＡＶＣの場合は１バイト、およびＨＥＶＣの場合は２バイトである。ＮＡＬユニットヘッダ中のシンタックス要素は、指定されたビットを取り、したがって、中でもとりわけ、トランスポートストリーム、リアルタイムトランスポート（ＲＴＰ）プロトコル、ファイルフォーマットのような全ての種類のシステムおよびトランスポートレイヤに対して可視である。
【００３８】
[0065]ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットおよび非ＶＣＬ  ＮＡＬユニットを含む、２つのクラスのＮＡＬユニットがＨＥＶＣ規格中に存在する。ＶＣＬ  ＮＡＬユニットは、コーディングされたピクチャデータの１つのスライスまたはスライスセグメント（以下に説明される）を含み、および非ＶＣＬ  ＮＡＬユニットは、１つまたは複数のコーディングされたピクチャに関連する制御情報を含む。いくつかのケースでは、ＮＡＬユニットは、パケットと呼ばれることができる。ＨＥＶＣ  ＡＵは、コーディングされたピクチャデータを包含するＶＣＬ  ＮＡＬユニットと、コーディングされたピクチャデータに対応する非ＶＣＬ  ＮＡＬユニット（ある場合には）とを含む。
【００３９】
[0066]ＮＡＬユニットは、ビデオ中のピクチャのコーディングされた表現のような、ビデオデータのコーディングされた表現を形成するビットのシーケンス（例えば、符号化されたビデオビットストリーム、ビットストリームのＣＶＳ、または同様のもの）を包含し得る。符号化器エンジン１０６は、各ピクチャを複数のスライスへと区分化することによってピクチャのコーディングされた表現を生成する。スライスは、同じピクチャ内の他のスライスからのデータへの依存なしにスライス中の情報がコーディングされるように、他のスライスとは独立している。スライスは、独立スライスセグメントと、存在する場合は、以前のスライスセグメントに従属する１つまたは複数の従属スライスセグメントとを含む１つまたは複数のスライスセグメントを含む。スライスはその後、ルーマサンプルおよびクロマサンプルのコーディングツリーブロック（ＣＴＢ）へと区分化される。ルーマサンプルの１つのＣＴＢおよびクロマサンプルの１つまたは複数のＣＴＢは、サンプルのためのシンタックスとともに、コーディングツリーユニット（ＣＴＵ）と呼ばれる。ＣＴＵは、ＨＥＶＣ符号化のための基本処理ユニットである。ＣＴＵは、変動するサイズの複数のコーディングユニット（ＣＵ）へと分割されることができる。ＣＵは、コーディングブロック（ＣＢ）と呼ばれるルーマおよびクロマサンプルアレイを包含する。
【００４０】
[0067]ルーマおよびクロマＣＢはさらに、予測ブロック（ＰＢ）へとさらに分割されることができる。ＰＢは、（利用可能であるか、または使用のために有効にされるときに）インター予測またはイントラブロックコピー予測のために同じ動きパラメータを使用するルーマ成分またはクロマ成分のサンプルのブロックである。１つのルーマＰＢおよび１つまたは複数のクロマＰＢは、関連するシンタックスとともに、予測ユニット（ＰＵ）を形成する。インター予測の場合、動きパラメータのセット（例えば、１つまたは複数の動きベクトル、参照インデックス、または同様のもの）は、ＰＵごとにビットストリーム中でシグナリングされ、１つのルーマＰＢおよび１つまたは複数のクロマＰＢのインター予測のために使用される。動きパラメータはまた、動き情報と呼ばれることができる。ＣＢはまた、１つまたは複数の変換ブロック（ＴＢ）へと区分化されることができる。ＴＢは、同じ２次元変換が予測残差信号をコーディングするために適用される色成分のサンプルの正方形ブロックを表す。変換ユニット（ＴＵ）は、ルーマおよびクロマサンプルのＴＢ、および対応するシンタックス要素を表す。
【００４１】
[0068]ＣＵのサイズは、コーディングモードのサイズに対応し、および形状が正方形であり得る。例えば、ＣＵのサイズは、８×８サンプル、１６×１６サンプル、３２×３２サンプル、６４×６４サンプル、または最大で対応するＣＴＵのサイズまでの任意の他の適切なサイズであり得る。「Ｎ×Ｎ」というフレーズは、垂直および水平寸法の観点からビデオブロックのピクセル寸法（例えば、８ピクセル×８ピクセル）を指すために本明細書では使用され得る。ブロック中の画素は、行と列に配置され得る。いくつかの実施形態では、ブロックは、水平方向に、垂直方向と同じ数のピクセルを有さないことがあり得る。ＣＵに関連付けられたシンタックスデータは、例えば、１つまたは複数のＰＵへのＣＵの区分化を説明し得る。区分化モードは、ＣＵがイントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なり得る。ＰＵは、形状が非正方形になるように区分化され得る。ＣＵに関連付けられたシンタックスデータはまた、例えば、ＣＴＵにしたがったＣＵの１つまたは複数のＴＵへの区分化を説明し得る。ＴＵは、形が正方形または非正方形であることができる。
【００４２】
[0069]ＨＥＶＣ規格によると、変換は、変換ユニット（ＴＵ）を使用して実行され得る。ＴＵは、ＣＵによって異なり得る。ＴＵは、所与のＣＵ内のＰＵのサイズに基づいてサイジングされ得る。ＴＵは、ＰＵと同じサイズであり得るか、またはより小さくあり得る。いくつかの例では、ＣＵに対応する残差サンプルは、「残差四分木」（ＲＱＴ）として知られる四分木構造を使用してより小さい単位にさらに分割され得る。ＲＱＴのリーフノードは、ＴＵに対応し得る。ＴＵに関連付けられたピクセル差分値は、変換係数を作り出すために変換され得る。変換係数はその後、符号化器エンジン１０６によって量子化され得る。
【００４３】
[0070]ビデオデータのピクチャがＣＵへと区分化されると、符号化器エンジン１０６は、予測モードを使用して各ＰＵを予測する。予測ユニットまたは予測ブロックはその後、残差を得るために元のビデオデータから減算される（以下に説明される）。各ＣＵについて、予測モードは、シンタックスデータを使用してビットストリーム内部でシグナリングされ得る。予測モードは、イントラ予測（またはイントラピクチャ予測）あるいはインター予測（またはインターピクチャ予測）を含み得る。イントラ予測は、ピクチャ内の空間的に近隣するサンプル間の相関を利用する。例えば、イントラ予測を使用して、各ＰＵは、例えば、ＰＵについての平均値を見出すためのＤＣ予測、平面をＰＵに合わせるための平面予測、近隣データから補外するための方向予測、または任意の他の適したタイプの予測を使用して、同じピクチャ中の近隣画像データから予測される。インター予測は、画像サンプルのブロックについての動き補償予測を導出するために、ピクチャ間の時間的相関を使用する。例えば、インター予測を使用して、各ＰＵは、（出力順序で現在のピクチャの前または後の）１つまたは複数の参照ピクチャ中の画像データからの動き補償予測を使用して予測される。ピクチャエリアを、インターピクチャ予測を使用してコーディングするか、またはイントラピクチャ予測を使用してコーディングするかの決定は、例えば、ＣＵレベルでなされ得る。
【００４４】
[0071]いくつかの例では、ピクチャの１つまたは複数のスライスは、スライスタイプを割り当てられる。スライスタイプは、Ｉスライス、Ｐスライス、およびＢスライスを含む。Ｉスライス（イントラフレーム、独立して復号可能）は、イントラ予測によってのみコーディングされるピクチャのスライスであり、およびしたがって、Ｉスライスがスライスの任意の予測ユニットまたは予測ブロックを予測するためにフレーム内のデータしか必要としないことから、独立して復号可能である。Ｐスライス（単方向（ｕｎｉ−ｄｉｒｅｃｔｉｏｎａｌ）予測フレーム）は、イントラ予測で、および単方向インター予測でコーディングされうるピクチャのスライスである。Ｐスライス内の各予測ユニットまたは予測ブロックは、イントラ予測でコーディングされるか、またはインター予測でコーディングされるかのいずれかである。インター予測が適用されると、予測ユニットまたは予測ブロックは、１つの参照ピクチャによってのみ予測され、およびしたがって、参照サンプルは、１つのフレームの１つの参照領域からのもののみである。Ｂスライス（双方向予測フレーム）は、イントラ予測で、およびインター予測で（例えば、双予測（bi-prediction）または単予測（uni-prediction）のいずれかで）コーディングされうるピクチャのスライスである。Ｂスライスの予測ユニットまたは予測ブロックは、２つの参照ピクチャから双方向に予測されえ、ここで、各ピクチャは、１つの参照領域を与え（contributes）、２つの参照領域のサンプルセットは、双方向予測ブロックの予測信号を作り出すために（例えば、等しい重みで、または異なる重みで）重み付けされる。上述されたように、１つのピクチャのスライスは、独立してコーディングされる。いくつかのケースでは、ピクチャは、単に１つのスライスとしてコーディングされることができる。
【００４５】
[0072]ＰＵは、予測プロセスに関連するデータ（例えば、動きパラメータまたは他の適したデータ）を含み得る。例えば、ＰＵがイントラ予測を使用して符号化されるとき、ＰＵは、ＰＵに対するイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインター予測を使用して符号化されるとき、ＰＵは、ＰＵのための動きベクトルを定義するデータを含み得る。ＰＵについての動きベクトルを定義するデータは、例えば、動きベクトルの水平成分（Δｘ）、動きベクトルの垂直成分（Δｙ）、動きベクトルについての解像度（例えば、整数精度、４分の１ピクセル精度、または８分の１ピクセル精度）、動きベクトルが指し示す参照ピクチャ、参照インデックス、動きベクトルについての参照ピクチャリスト（例えば、リスト０、リスト１、またはリストＣ）、あるいはそれらの任意の組み合わせを記述し得る。
【００４６】
[0073]符号化デバイス１０４はその後、変換および量子化を実行し得る。例えば、予測に続いて、符号化器エンジン１０６は、ＰＵに対応する残差値を算出し得る。残差値は、コーディングされるピクセルの現在のブロック（ＰＵ）と、現在のブロックを予測するために使用される予測ブロック（例えば、予測されたバージョンの現在のブロック）との間のピクセル差分値を備え得る。例えば、予測ブロックを生成した（例えば、インター予測またはイントラ予測を出した）後に、符号化器エンジン１０６は、現在のブロックから予測ユニットによって作り出される予測ブロックを減算することによって残差ブロックを生成することができる。残差ブロックは、現在のブロックのピクセル値と予測ブロックのピクセル値との間の差分を定量化するピクセル差分値のセットを含む。いくつかの例では、残差ブロックは、２次元ブロックフォーマット（例えば、ピクセル値の２次元行列または配列）で表され得る。そのような例では、残差ブロックは、ピクセル値の２次元表現である。
【００４７】
[0074]予測が実行された後に残り得る任意の残差データは、ブロック変換を使用して変換され、それは、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、他の適した変換関数、またはそれらの任意の組み合わせに基づき得る。いくつかのケースでは、１つまたは複数のブロック変換（例えば、サイズ３２×３２、１６×１６、８×８、４×４、または他の適切なサイズ）が、各ＣＵ中の残差データに適用され得る。いくつかの実施形態では、ＴＵが、符号化器エンジン１０６によってインプリメントされる変換および量子化プロセスのために使用され得る。１つまたは複数のＰＵを有する所与のＣＵがまた、１つまたは複数のＴＵを含み得る。以下でさらに詳細に説明されるように、残差値は、ブロック変換を使用して変換係数へと変換され得、その後、エントロピーコーディングのための直列化された変換係数（serialized transform coefficients）を生成するために、ＴＵを使用して量子化およびスキャンされ得る。
【００４８】
[0075]いくつかの実施形態では、ＣＵのＰＵを使用するイントラ予測またはインター予測コーディングに続いて、符号化器エンジン１０６は、ＣＵのＴＵについての残差データを算出し得る。ＰＵは、空間的ドメイン（またはピクセルドメイン）中のピクセルデータを備え得る。ＴＵは、ブロック変換の適用後の変換ドメイン中の係数を備え得る。前述されたように、残差データは、ＰＵに対応する予測値および符号化されていないピクチャのピクセル間のピクセル差分値に対応し得る。符号化器エンジン１０６は、ＣＵについての残差データを含むＴＵを形成しえ、およびその後、ＣＵについての変換係数を作り出すためにＴＵを変換し得る。
【００４９】
[0076]符号化器エンジン１０６は、変換係数の量子化を実行し得る。量子化は、係数を表すために使用されるデータの量を低減するために、変換係数を量子化することによって、さらなる圧縮を提供する。例えば、量子化は、係数のうちのいくつかまたは全てに関連付けられたビット深度を低減し得る。一例では、ｎビット値を有する係数は、量子化中にｍビット値に切り捨てられえ、ｎは、ｍよりも大きい。
【００５０】
[0077]量子化が実行されると、コーディングされたビデオビットストリームは、量子化された変換係数、予測情報（例えば、予測モード、動きベクトル、ブロックベクトル、または同様のもの）、区分化情報、および他のシンタックスデータのような任意の他の適したデータを含む。コーディングされたビデオビットストリームの異なる要素はその後、符号化器エンジン１０６によってエントロピー符号化され得る。いくつかの例では、符号化器エンジン１０６は、エントロピー符号化されることができる直列化されたベクトルを作り出すために、量子化された変換係数をスキャンするための予め定義されたスキャン順序を利用し得る。いくつかの例では、符号化器エンジン１０６は、適応スキャンを実行し得る。ベクトル（例えば、１次元ベクトル）を形成するために、量子化された変換係数をスキャンした後に、符号化器エンジン１０６は、ベクトルをエントロピー符号化し得る。例えば、符号化器エンジン１０６は、コンテキスト適応可変長コーディング（context adaptive variable length coding）、コンテキスト適応バイナリ算術コーディング（context adaptive binary arithmetic coding）、シンタックスベースのコンテキスト適応バイナリ算術コーディング（syntax-based context-adaptive binary arithmetic coding）、確率間隔区分化エントロピーコーディング（probability interval partitioning entropy coding）、または別の適したエントロピー符号化技法を使用し得る。
【００５１】
[0078]前述されたように、ＨＥＶＣビットストリームは、ＶＣＬ  ＮＡＬユニットおよび非ＶＣＬ  ＮＡＬユニットを含む、ＮＡＬユニットのグループを含む。ＶＣＬ  ＮＡＬユニットは、コーディングされたビデオビットストリームを形成するコーディングされたピクチャデータを含む。例えば、コーディングされたビデオビットストリームを形成するビットのシーケンスは、ＶＣＬ  ＮＡＬユニット中に存在する。非ＶＣＬ  ＮＡＬユニットは、他の情報に加えて、符号化されたビデオビットストリームに関連する高レベル情報を有するパラメータセットを包含し得る。例えば、パラメータセットは、ビデオパラメータセット（ＶＰＳ）、シーケンスパラメータセット（ＳＰＳ）、およびピクチャパラメータセット（ＰＰＳ）を含み得る。パラメータセットの目的の例は、ビットレート効率、誤り耐性、およびシステムレイヤインターフェースを提供することを含む。各スライスは、スライスを復号するために復号デバイス１１２が使用しうる情報にアクセスすべく、単一のアクティブＰＰＳ、ＳＰＳ、およびＶＰＳを参照する。識別子（ＩＤ）は、ＶＰＳ  ＩＤ、ＳＰＳ  ＩＤ、およびＰＰＳ  ＩＤを含むパラメータセットごとにコーディングされ得る。ＳＰＳは、ＳＰＳ  ＩＤおよびＶＰＳ  ＩＤを含む。ＰＰＳは、ＰＰＳ  ＩＤおよびＳＰＳ  ＩＤを含む。各スライスヘッダは、ＰＰＳ  ＩＤを含む。ＩＤを使用して、アクティブパラメータセットは、所与のスライスについて識別されることができる。
【００５２】
[0079]ＰＰＳは、所与のピクチャ中の全てのスライスに適用される情報を含む。このことから、ピクチャ中の全てのスライスは、同じＰＰＳを参照する。異なるピクチャ中のスライスもまた、同じＰＰＳを参照し得る。ＳＰＳは、同じコーディングされたビデオシーケンス（ＣＶＳ）またはビットストリーム中の全てのピクチャに適用される情報を含む。前述されたように、コーディングされたビデオシーケンスは、ベースレイヤ中のランダムアクセスポイントピクチャ（例えば、瞬時復号参照（ＩＤＲ：instantaneous decode reference）ピクチャまたはブロークンリンクアクセス（ＢＬＡ）ピクチャ、あるいは他の適切なランダムアクセスポイントピクチャ）から開始し、且つ（上述された）ある特定のプロパティを有し、そしてベースレイヤ中にランダムアクセスポイントピクチャを有し、且つある特定のプロパティを有する次のアクセスユニット（ＡＵ）（またはビットストリームの終了）までの、およびそれを含まない一連のＡＵである。ＳＰＳ中の情報は、コーディングされたビデオシーケンス内のピクチャごとに変化しないことがあり得る。コーディングされたビデオシーケンス中のピクチャは、同じＳＰＳを使用し得る。ＶＰＳは、コーディングされたビデオシーケンスまたはビットストリーム内の全てのレイヤに適用される情報を含む。ＶＰＳは、コーディングされたビデオシーケンス全体に適用されるシンタックス要素を有するシンタックス構造を含む。いくつかの実施形態では、ＶＰＳ、ＳＰＳ、またはＰＰＳは、符号化されたビデオビットストリームで帯域内で送信され得る。いくつかの実施形態では、ＶＰＳ、ＳＰＳ、またはＰＰＳは、コーディングされたビデオデータを包含するＮＡＬユニットとは別個の送信中で帯域外で送信され得る。
【００５３】
[0080]ビデオビットストリームはまた、補足エンハンスメント情報（ＳＥＩ：Supplemental Enhancement Information）メッセージを含むことができる。例えば、ＳＥＩ  ＮＡＬユニットは、ビデオビットストリームの一部であることができる。いくつかのケースでは、ＳＥＩメッセージは、復号プロセスによって必要とされない情報を包含することができる。例えば、ＳＥＩメッセージ中の情報は、復号器がビットストリームのビデオピクチャを復号するのに不可欠ではないことがありうるが、復号器は、ピクチャの表示または処理を改善するためにその情報を使用することができる（例えば、復号された出力）。ＳＥＩメッセージ中の情報は、埋め込まれたメタデータであることができる。１つの例示的な例では、ＳＥＩメッセージ中の情報は、コンテンツの見易さを改善するために復号器側エンティティによって使用されることができる。いくつかの事例では、ある特定の適用規格は、品質の改善が適用規格に適合する全てのデバイスにもたらされることができるように、ビットストリーム中におけるそのようなＳＥＩメッセージの存在を義務付けうる（例えば、多くの他の例に加えて、フレーム互換平面立体３ＤＴＶビデオフォーマット（frame-compatible plano-stereoscopic 3DTV video format）のためのフレームパッキングＳＥＩメッセージ（the frame-packing SEI message）の搬送、ここで、ＳＥＩメッセージは、ビデオのフレームごとに搬送される、回復ポイントＳＥＩメッセージ（a recovery point SEI message）の対応、ＤＶＢにおけるパンスキャンスキャン矩形ＳＥＩメッセージ（pan-scan scan rectangle SEI message）の使用）。
【００５４】
[0081]符号化デバイス１０４の出力１１０は、受信デバイスの復号デバイス１１２に通信リンク１２０を通して、符号化されたビデオビットストリームデータを構成するＮＡＬユニットを送り得る。復号デバイス１１２の入力１１４は、ＮＡＬユニットを受信し得る。通信リンク１２０は、ワイヤレスネットワーク、ワイヤードネットワーク、またはワイヤードネットワークとワイヤレスネットワークとの組み合わせによって提供されるチャネルを含み得る。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組み合わせを含み得、および任意の適したワイヤレスネットワーク（例えば、インターネットまたは他のワイドエリアネットワーク、パケットベースのネットワーク、ＷｉＦｉ（登録商標）、無線周波数（ＲＦ）、ＵＷＢ、ＷｉＦｉ−Ｄｉｒｅｃｔ、セルラ、ロングタームエボリューション（ＬＴＥ（登録商標））、ＷｉＭａｘ（登録商標）、または同様のもの）を含み得る。ワイヤードネットワークは、任意のワイヤードインターフェース（例えば、ファイバ、イーサネット（登録商標）、電力線イーサネット、同軸ケーブルを通したイーサネット、デジタル信号線（ＤＳＬ）、または同様のもの）を含み得る。ワイヤードおよび／またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチ、または同様のもののような様々な機器を使用してインプリメントされ得る。符号化されたビデオデータは、ワイヤレス通信プロトコルのような通信規格にしたがって変調され、および受信デバイスに送信され得る。
【００５５】
[0082]いくつかの例では、符号化デバイス１０４は、記憶装置１０８中に符号化されたビデオデータを記憶し得る。出力１１０は、符号化器エンジン１０６から、または記憶装置１０８から、符号化されたビデオデータを取り出し得る。記憶装置１０８は、多様な分散されたまたは局所的にアクセスされるデータ記憶媒体のうちの任意のものを含み得る。例えば、記憶装置１０８は、ハードドライブ、記憶ディスク、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化されたビデオデータを記憶するための任意の他の適したデジタル記憶媒体を含み得る。
【００５６】
[0083]復号デバイス１１２の入力１１４は、符号化されたビデオビットストリームを受信し、および復号器エンジン１１６に、または復号器エンジン１１６による後の使用のために記憶装置１１８にビデオビットストリームデータを提供し得る。復号器エンジン１１６は、（例えば、エントロピー復号器を使用した）エントロピー復号、および符号化されたビデオデータを構成する１つまたは複数のコーディングされたビデオシーケンスの要素を抽出することによって、符号化されたビデオビットストリームデータを復号し得る。復号器エンジン１１６はその後、符号化されたビデオビットストリームデータを再スケーリングし、それに対して逆変換を実行し得る。残差データはその後、復号器エンジン１１６の予測段に渡される。復号器エンジン１１６はその後、ピクセルのブロック（例えば、ＰＵ）を予測する。いくつかの例では、予測は、逆変換の出力に追加される（残差データ）。
【００５７】
[0084]復号デバイス１１２は、ビデオ宛先デバイス１１２に復号されたビデオを出力しえ、それは、コンテンツの消費者に復号されたビデオデータを表示するためのディスプレイまたは他の出力デバイスを含み得る。いくつかの態様では、ビデオ宛先デバイス１２２は、復号デバイス１１２を含む受信デバイスの一部であり得る。いくつかの態様では、ビデオ宛先デバイス１２２は、受信デバイス以外の別個のデバイスの一部であり得る。
【００５８】
[0085]いくつかの例では、ビデオ符号化デバイス１０４および／またはビデオ復号デバイス１１２は、それぞれ、オーディオ符号化デバイスおよびオーディオ復号デバイスと一体化され得る。ビデオ符号化デバイス１０４および／またはビデオ復号デバイス１１２はまた、１つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組み合わせのような、上述されたコーディング技法をインプリメントするのに必要な他のハードウェアまたはソフトウェアを含み得る。ビデオ符号化デバイス１０４およびビデオ復号デバイス１１２は、それぞれのデバイス中で、組み合わされた符号化器／復号器（コーデック）の一部として一体化され得る。符号化デバイス１０４の特定の詳細の例は、図１９を参照して以下に説明される。符号化デバイス１１２の特定の詳細の例は、図２０を参照して以下に説明される。
【００５９】
[0086]ＨＥＶＣ規格への拡張は、ＭＶ−ＨＥＶＣと呼ばれるマルチビュービデオコーディング拡張と、ＳＨＶＣと呼ばれるスケーラブルビデオコーディング拡張とを含む。ＭＶ−ＨＥＶＣおよびＳＨＶＣ拡張は、レイヤードコーディングの概念を共有しており、異なるレイヤが、符号化されたビデオビットストリーム中に含まれる。コーディングされたビデオシーケンス中の各レイヤは、一意のレイヤ識別子（ＩＤ）によってアドレスされる。レイヤＩＤは、ＮＡＬユニットが関連付けられるレイヤを識別するために、ＮＡＬユニットのヘッダ中に存在し得る。ＭＶ−ＨＥＶＣでは、異なるレイヤは通常、ビデオビットストリーム中の同じシーンの異なるビューを表す。ＳＨＶＣでは、ビデオビットストリームを異なる空間的解像度（またはピクチャ解像度）で、あるいは異なる再構築忠実度（ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｆｉｄｅｌｉｔｉｅｓ）で表す、異なるスケーラブルレイヤが提供される。スケーラブルレイヤは、（レイヤＩＤ＝０の）ベースレイヤと、（レイヤＩＤ＝１、２、．．．ｎの）１つまたは複数のエンハンスメントレイヤとを含み得る。ベースレイヤは、第１のバーションのＨＥＶＣのプロファイルに適合しえ、およびビットストリーム中の最下位の利用可能レイヤを表す。エンハンスメントレイヤは、ベースレイヤと比較して、増大された空間的解像度、時間的解像度またはフレームレート、および／または再構築忠実性（または品質）を有する。エンハンスメントレイヤは、階層的に編成され、およびより下位のレイヤに従属することも（またはしないことも）あり得る。いくつかの例では、異なるレイヤは、単一の標準コーデックを使用してコーディングされうる（例えば、全てのレイヤは、ＨＥＶＣ、ＳＨＶＣ、または他のコーディング規格を使用して符号化される）。いくつかの例では、異なるレイヤは、多標準コーデックを使用してコーディングされうる。例えば、ベースレイヤは、ＡＶＣを使用してコーディングされえ、その一方で、１つまたは複数のエンハンスメントレイヤは、ＨＥＶＣ規格へのＳＨＶＣおよび／またはＭＶ−ＨＥＶＣ拡張を使用してコーディングされうる。
【００６０】
[0087]一般に、レイヤは、ＶＣＬ  ＮＡＬユニットおよび非ＶＣＬ  ＮＡＬユニットの対応するセットを含む。ＮＡＬユニットは、特定のレイヤＩＤ値に割り当てられる。レイヤは、レイヤがより低いレイヤによって決まり得るセンスにおいて階層的であることができる。レイヤセットは、自己完結型であるビットストリーム中に表わされるレイヤのセットを参照し、それは、レイヤセット中のレイヤが復号プロセスにおけるレイヤセット中の他のレイヤによって決まることができるが、復号のための任意の他のレイヤによって決まらないことを意味する。従って、レイヤセット中のレイヤは、ビデオコンテンツを表わすことができる独立ビットストリームを形成することができる。レイヤセット中のレイヤのセットは、サブビットストリーム抽出プロセスの動作によって別のビットストリームから取得され得る。レイヤセットは、復号器があるパラメータに従って動作したいとき、復号されるべきレイヤのセットに対応し得る。
【００６１】
[0088]上述されたように、各ブロックについて、（ここでは動きパラメータとも呼ばれる）動き情報のセットが利用可能であることができる。動き情報のセットは、前方予測方向および後方予測方向についての動き情報を含む。前方および後方予測方向は、双方向予測モードの２つの予測方向であり、このケースでは、「前方」および「後方」という用語は、必ずしも幾何学的な意味を有してはいない。代わりに、「前方」および「後方」は、現在ピクチャの参照ピクチャリスト０（ＲｅｆＰｉｃＬｉｓｔ０）と参照ピクチャリスト１（ＲｅｆＰｉｃＬｉｓｔ１）とに対応する。いくつかの例では、１つの参照ピクチャリストしかピクチャまたはスライスに対して利用可能でないとき、ＲｅｆＰｉｃＬｉｓｔ０のみが利用可能であり、およびスライスの各ブロックの動き情報は、常に前方である。
【００６２】
[0089]いくつかのケースでは、その参照インデックスと一緒に動きベクトルは、コーディングプロセス（例えば、動き補償）に使用される。関連する参照インデックスを有するそのような動きベクトルは、動き情報の単予測セットとして表される。各予測方向について、動き情報は、参照インデックスおよび動きベクトルを包含することができる。いくつかのケースでは、動きベクトル自体が、それが関連する参照インデックスを有すると仮定されるように参照され得るように、動きベクトルを符号化し得る。参照インデックスは、現在の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）中の参照ピクチャを識別するために使用される。動きベクトルは、現在のピクチャ中の座標位置から参照インデックスによって識別される参照ピクチャ中の座標へのオフセットを提供する水平および垂直成分を有する。例えば、参照インデックスは、現在のピクチャ中のブロックに対して使用されるべき特定の参照ピクチャを示すことができ、および動きベクトルは、参照ピクチャ中のどこに、最もマッチするブロック（現在のブロックに最もマッチするブロック）が参照ピクチャ中にあるかを示すことができる。
【００６３】
[0090]ピクチャ順序カウント（ＰＯＣ）は、ピクチャの表示順序を識別するためにビデオコーディング規格において使用されることができる。１つのコード化されたビデオシーケンス内の２つのピクチャが同じＰＯＣ値を有するケースがあるが、それは、典型的にコーディングされたビデオシーケンス内で起こらない。複数のコーディングされたビデオシーケンスがビットストリーム中に存在するとき、ＰＯＣの同じ値を有するピクチャは、復号順序の観点から互いにより近いことがあり得る。ピクチャのＰＯＣ値は、参照ピクチャリスト構築、ＨＥＶＣにおけるような参照ピクチャセットの導出、および動きベクトルスケーリングのために使用されることができる。
【００６４】
[0091]Ｈ．２６４／ＡＶＣでは、各インターマクロブロック（ＭＢ）は、１つの１６×１６ＭＢ区分、２つの１６×８ＭＢ区分、２つの８×１６ＭＢ区分、および４つの８×８ＭＢ区分を含む、４つの異なる方法へと区分化され得る。１つのＭＢにおける異なるＭＢ区分は、各指示（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）のための異なる参照インデックス値を有し得る。いくつかのケースでは、ＭＢが４つの８×８ＭＢ区分へと区分化されないとき、それは、各方向におけるＭＢ区分ごとに１つの動きベクトルしか有することができない。いくつかのケースでは、ＭＢが４つの８×８ＭＢ区分へと区分化されるとき、各８×８ＭＢ区分は、サブブロックへとさらに区分化されることができ、このケースでは、各サブブロックは、各方向方向に異なる動きベクトルを有することができる。幾つかの例では、１つの８×８サブブロック、２つの８×４サブブロック、２つの４×８サブブロック、および４つの４×４サブブロックを含む８×８ＭＢ区分からサブブロックを得るために４つの異なる方法がある。各サブブロックは、各方向に異なる動きベクトルを有することができる。したがって、動きベクトルは、サブブロック以上のレベルで存在することができる。
【００６５】
[0092]ＡＶＣでは、時間的直接モードは、Ｂスライス中でのスキップおよび／または直接モードのためのＭＢまたはＭＢ区分レベルのいずれかで有効にされることができる。各ＭＢ区分について、現在のブロックのＲｅｆＰｉｃＬｉｓｔ１［０］中の現在のＭＢ区分とコロケートされたブロックの動きベクトルは、動きベクトルを導出するために使用される。コロケートされたブロック中の各動きベクトルは、ＰＯＣ距離に基づいてスケーリングされる。
【００６６】
[0093]空間的直接モードはまた、ＡＶＣにおいて実行されることができる。例えば、ＡＶＣでは、直接モードはまた、空間的近隣物から動き情報を予測することができる。
【００６７】
[0094]ＨＥＶＣでは、スライス中の最も大きいコーディングユニットは、コーディングツリーブロック（ＣＴＢ）と呼ばれる。ＣＴＢは、四分木を包含し、それのノードは、コーディングユニットである。ＣＴＢのサイズは、ＨＥＶＣメインプロファイルにおいて１６×１６から６４×６４までの範囲であることができる。いくつかのケースでは、８×８ＣＴＢサイズがサポートされることができる。コーディングユニット（ＣＵ）は、ＣＴＢと同じサイズであることができ、且つ８×８ほどに小さくあることができる。いくつかのケースでは、各コーディングユニットは、１つのモードでコーディングされる。ＣＵがインターコーディングされるとき、ＣＵは、２つまたは４つの予測ユニット（ＰＵ）へとさらに区分化され得る、またはさらなる区分が適用されないときにはただ１つのＰＵになり得る。１つのＣＵに２つのＰＵが存在するとき、それらは、ハーフサイズの長方形であるか、ＣＵの１／４または３／４のサイズを有する２つの長方形であることができる。
【００６８】
[0095]ＣＵがインターコーディングされるとき、動き情報の１つのセットが、ＰＵごとに存在することができる。加えて、各ＰＵは、動き情報のセットを導出するために、一意のインター予測モードでコード化される。
【００６９】
[0096]ＨＥＶＣにおける動き予測について、予測ユニット（ＰＵ）のための、アドバンスト動きベクトル予測（ＡＭＶＰ）およびマージモードを含む、２つのインター予測モードがある。スキップは、マージの特別なケースとして考慮される。ＡＭＶＰまたはマージモードのいずれでも、動きベクトル（ＭＶ）候補リストは、複数の動きベクトル予測子（ｐｒｅｄｉｃｔｏｒｓ）のために維持される。現在のＰＵの動きベクトル（１つ以上）、ならびにマージモードにおける参照インデックスは、ＭＶ候補リストから１つの候補を取ることによって生成される。
【００７０】
[0097]いくつかの例では、ＭＶ候補リストは最大で、マージモードについては５つまでの候補を、およびＡＭＶＰモードについては２つまでの候補を包含する。他の例では、異なる数の候補が、マージモードおよび／またはＡＭＶＰモードについてのＭＶ候補リスト中に含まれることができる。マージ候補は、動き情報のセットを包含し得る。例えば、動き情報のセットは、両方の参照ピクチャリスト（リスト０およびリスト１）に対応する動きベクトルおよび参照インデックスを含むことができる。マージ候補がマージインデックスによって識別される場合、参照ピクチャは、現在のブロックの予測のために使用され、並びに関連する動きが決定される。しかしながら、ＡＭＶＰモード下で、リスト０またはリスト１のいずれかからの各ポテンシャル予測指示について、参照インデックスは、ＡＭＶＰ候補が動きベクトルのみを包含するのでＭＣ候補リストにＭＶＰインデックスと一緒に、明示的にシグナリングされる必要がある。ＡＭＶＰモードでは、予測動きベクトルは、さらに精微化されることができる。
【００７１】
[0098]上記に見られることができるように、マージ候補は、動き情報のフルセットに対応するが、その一方でＡＭＶＰ候補は、特定の予測方向および参照インデックスについての単に１つの動きベクトルを包含する。両方のモードについての候補は、同じ空間的および時間的近隣ブロックから同様に導出される。
【００７２】
[0099]いくつかの例では、マージモードは、インター予測されたＰＵが同じ、動きベクトルまたは複数の動きベクトル、予測方向、空間的近隣動きデータ位置および１つまたは複数の時間的コロケートされた動きデータ位置のグループから選択された動きデータ位置を含むインター予測ＰＵからの、参照ピクチャインデックスまたは複数の参照ピクチャインデックスを継承することを可能にする。ＡＭＶＰモードについてＰＵの動きベクトルまたはまたは複数の動きベクトルは、符号化器によって構築されたＡＭＶＰ候補リストから１つまたは複数の動き予測（ＭＶＰ）に関連して叙述的にコード化されることができる。いくつかの例では、ＰＵの単一方向インター予測について、符号化器は、単一ＡＭＶＰ候補リストを生成することができる。いくつかの例では、ＰＵの両方向予測について、符号化器は、２つのＡＭＶＰ候補リスト、前方予測方向からの空間的または時間的近隣ＰＵの動きデータを使用して１つ、後方予測方向から空間的および時間的近隣ＰＵの動きデータを使用して１つを生成することができる。
【００７３】
[0100]両方のモードについての候補は、空間的および／または時間的近隣ブロックから導出されることができる。例えば、図２Ａおよび図２Ｂは、ＨＥＶＣにおける空間的近隣候補を例示する概念図を含む。図２Ａは、マージモードのための空間的近隣動きベクトル（ＭＶ）候補を例示する。図２Ｂは、ＡＭＶＰモードのための空間的近隣動きベクトル（ＭＶ）候補を例示する。空間的ＭＶ候補は、空間的ＰＵ（ＰＵ０）のための近隣ブロックから導出されるが、ブロックからの候補を生成する方法は、マージモードおよびＡＭＶＰモードによって異なる。
【００７４】
[0101]マージモードでは、符号化器は、様々な動きベクトル位置からマージする候補を考慮することによってマージする候補リストを形成することができる。例えば、図２Ａ中に示されるように、４つまでの空間的ＭＶは、図２Ａ中に数０−４で示されるそれぞれの空間的近隣動きデータ位置で導出されることができる。ＭＶ候補は、数０−４によって示される順でマージする候補リストに順序付けされることができる。例えば、位置および順序は、左位置（０）、上位置（１）、右上位置（２）、左下位置（３）、および左上位置（４）を含むことができる。
【００７５】
[0102]図２Ｂ中に示されるＡＶＭＰモードでは、近隣ブロックは、２つのグループ：ブロック０および１を含む左グループ、およびブロック２、３、および４を含む上グループに分けられる。各グループについて、シグナルされる参照インデックスによって示されたのと同じ参照ピクチャ近隣ブロックを参照する近隣ブロック中のポテンシャル候補は、グループの最終候補を形成するために選択されるべき最も高い優先順位を有する。全ての近隣ブロックが同じ参照ピクチャを指し示す動きベクトルを包含するわけではない可能性がある。したがって、そのような候補が見出されることができない場合、第１の利用可能な候補は、最終候補を形成するためにスケーリングされることができ、それ故、時間的距離差は、補償されることができる。
【００７６】
[0103]図３Ａおよび図３Ｂは、ＨＥＶＣ中の時間的動きベクトル予測を例示する概念図を含む。時間的動きベクトル予測子（ＴＭＶＰ）候補は、有効且つ利用可能である場合、空間的動きベクトル候補の後にＭＶ候補リストに追加される。ＴＭＶＰ候補のための動きベクトル導出のプロセスは、マージモードとＡＭＶＰモードとの両方について同じである。いくつかの例では、しかしながら、マージモードにおけるＴＭＶＰ候補のためのターゲット参照インデックスは、ゼロに設定されることができる、または近隣ブロックのそれから導出されることができる。
【００７７】
[0104]ＴＭＶＰ候補導出のためのプライマリブロックロケーションは、空間的近隣候補を生成するために使用された上および左ブロックへのバイアスを補償するために、ブロック「Ｔ］として図３Ａ中に示されるように、コロケートされたＰＵの右下ブロック外部にある。しかしながら、そのブロックが現在のブロックＣＴＢ（またはＬＣＵ）行の外側に位置付けられるまたは動き情報が利用可能でない場合、ブロックは、ＰＵの中心ブロックと置換される。ＴＭＶＰ候補のための動きベクトルは、スライスレベルにおいて示される、コロケートされたピクチャのコロケートされたＰＵから導出される。ＡＶＣ中の時間的直接モードと類似して、ＴＭＶＰ候補の動きベクトルは、動きベクトルスケーリングを被り、それは、距離差を補償するために実行される。
【００７８】
[0105]動き予測の他の態様は、ＨＥＶＣ基準においてカバーされる。例えば、マージモードおよびＡＭＶＰモードのいくつかの他の態様がカバーされる。１つの態様は、動きベクトルスケーリングを含む。動きベクトルスケーリングに関して、動きベクトルの値が、表示時間中のピクチャの距離に比例することが想定されることができる。動きベクトルは、２つのピクチャ−参照ピクチャと、動きベクトルを包含するピクチャ（すなわち包含ピクチャ）と、を関連付ける。動きベクトルが他の動きベクトルを予測するために利用されるとき、包含ピクチャと参照ピクチャとの距離は、ピクチャ順序カウント（ＰＯＣ）値に基づいて算出される。
【００７９】
[0106]予測されるべき動きベクトルについて、その関連付けられた包含ピクチャと参照ピクチャの両方は、異なり得る。従って、（ＰＯＣに基づく）新規距離が計算される。そして、動きベクトルは、これらの２つのＰＯＣ距離に基づいてスケーリングされる。空間的近隣候補について、２つの動きベクトルについての包含ピクチャは、同じである一方、参照ピクチャは異なる。ＨＥＶＣでは、動きベクトルスケーリングは、空間的および時間的近隣候補についてのＴＭＶＰとＡＭＶＰとの両方に適用される。
【００８０】
[0107]動き予測の別の態様は、人工動きベクトル候補生成を含む。例えば、動きベクトル候補リストが完了しない場合、人工動きベクトル候補が生成され、すべての候補が取得されるまでリストの終わりに挿入される。マージモードでは、２つのタイプの人工ＭＶ候補：Ｂスライスのためにのみ導出される組み合わされた候補と、第１のタイプが十分な人工候補を提供しない場合にＡＭＶＰのためにのみ使用されるゼロ候補と、がある。候補リスト中にすでにあり、必要な動き情報を有する候補の各ペアについて、両方向組み合わせ動きベクトル候補は、リスト０中のピクチャを参照する第１の候補の動きベクトルおよびリスト１中のピクチャを参照する第２の候補の動きベクトルの組合せによって導出される。
【００８１】
[0108]マージモードおよびＡＭＶＰモードの別の態様は、候補挿入のためのプルーニングプロセスを含む。例えば、別のブロックからの候補は、同じであり得、それは、マージおよび／またはＡＭＶＰ候補リストの効率を低下させる。プルーニングプロセスは、この問題を解決するために適用されることができる。プルーニングプロセスは、例えば、ある範囲において同一候補を挿入することを避けるために、ある１つの候補を現在の候補リスト中の他の複数の候補と比較する。複雑さを低減するために、プルーニングプロセスの限られた数のみが各ポテンシャルのものを他の存在するものすべてと比較することの代わりに適用される。
【００８２】
[0109]様々な関連する動き予測技法がある。１つよ予測技法は、ローカル照度補償（ＬＩＣ）である。照度補償は、ＨＥＶＣのために提案された。例えば、ＪＣＴＶＣ−Ｃ０４１では、区分ベースの照度補償（ＰＢＩＣ）が提案された。重み付け予測（ＷＰ）を有効および／または無効にする、ＷＰと異なり、（以下で説明される）スライスレベルでのＷＰパラメータをシグナルする、ＰＢＩＣは、ローカル照度変化を取り扱うために、予測ユニット（ＰＵ）レベルでＩＣパラメータをシグナルし、照度補償（ＩＣ）を有効および／または無効にする。ＪＶＥＴ−Ｂ００２３では、ブロックベースのＬＩＣは、ＣＵに拡張され、ＨＥＶＣにおけるＰＵと同様に、ＣＵは、ＱＴＢＴ構造における動き情報を搬送するベーシックユニットになる。
【００８３】
[0110]以下でより詳細に説明される重み付け予測（ＷＰ）と同様に、スケーリングファクタ（ａによっても示される）およびオフセット（ｂによっても示される）は、ＩＣによって使用され、シフト数は、６になるように固定される。ＩＣフラグは、ＩＣが現在のＰＵのために適用されるか否かを示すように各ＰＵのためにコード化される。ＩＣがＰＵのために適用される場合、ＩＣパラメータのセット（例えば、ａおよびｂ）は、復号器にシグナルされ、動き補償のために使用される。いくつかの例では、ＩＣパラメータ上で使われたビットをセーブするために、クロマコンポーネントは、ルーマコンポーネントとスケーリングファクタを共有し、固定されたオフセット１２８が使用される。
【００８４】
[0111]３Ｄ−ＨＥＶＣでは、ＩＣは、インタービュー予測のために有効にされる。明示的にＩＣパラメータをシグナルする、ＰＢＩＣおよびＷＰと異なる、それは、現在のＣＵの近隣サンプルおよび参照ブロックの近隣サンプルに基づいてＩＣパラメータを導出する。ＩＣは、２Ｎ×２Ｎ区分モードのみに適用される。ＡＭＶＰモードについて、ＩＣフラグのみがインタービュー参照ピクチャから予測される各ＣＵのためにシグナルされる。マージモードについて、ビットをセーブするために、ＩＣフラグは、ＰＵのマージインデックスが０に等しくない時にのみシグナルされる。いくつかのケースでは、ＩＣは、時間的参照ピクチャからのみ予測されるＣＵに適用されない。
【００８５】
[0112]ＩＣパラメータの導出に関して、インタービュー予測に使用される線形ＩＣモデルは、式（１）に示される。
【００８６】
【数１】
2019531029.tif 000003
【００８７】
[0113]ここで、ＰＵＣは、現在のＰＵであり、（ｉ，ｊ）は、ＰＵＣ中のピクセルの座標であり、（ｄνｘ，ｄνｙ）は、ＰＵＣの視差ベクトルである。ｐ（ｉ，ｊ）は、ＰＵＣの予測であり、ｒは、近隣ビューからのＰＵの参照ピクチャであり、ａおよびｂは、線形ＩＣモデルのパラメータである。
【００８８】
[0114]ＰＵのためのパラメータａおよびｂを推定するために、図４Ａおよび図４Ｂ中に示されるように、ピクセルの２つのセットが使用される。ピクセルの第１のセットは、図４Ａ中に示され、（現在のＰＵを包含するＣＵ）現在のＣＵの左の列および上の行中の利用可能な再構築された近隣ピクセルを含む。ピクセルの第２のセットは、図４Ｂ中に示され、現在のＣＵの参照ブロックの対応する近隣ピクセルを含む。現在のＣＵの参照ブロックは、現在のＰＵの視差ベクトルを使用することによって見出される。
【００８９】
[0115]仮に、ＲｅｃｎｅｉｇおよびＲｅｃｒｅｆｎｅｉｇは、現在のＣＵおよびその参照ブロックそれぞれの使用された近隣ピクセルセットを示し、２Ｎは、ＲｅｃｎｅｉｇおよびＲｅｃｒｅｆｎｅｉｇにおけるピクセル数を示すとする。その後、ａおよびｂは、以下のように計算されることができる。
【００９０】
【数２】
2019531029.tif 000004
【００９１】
【数３】
2019531029.tif 000005
【００９２】
[0116]いくつかのケースでは、ａのみが線形モデル中で使用され、ｂはいつも、０に等しくなるように設定される。いくつかのケースでは、ｂのみが使用され、ａはいつも１に等しくなるように設定される
[0117]ＨＥＶＣでは、重み付け予測（ＷＰ）は、（ａによって示される）スケーリング要素の場合に、サポートされ、（ｓによって表わされる）シフト数および（ｂによって表わされる）オフセットは、動き補償中で使用される。参照ピクチャの位置（ｘ，ｙ）におけるピクセル値がｐ（ｘ、ｙ）であると仮定して、その後、ｐ（ｘ、ｙ）の代わりにｐ’（ｘ、ｙ）＝（（ａ＊ｐ（ｘ，ｙ）＋（１＜＜（ｓ−１）））＞＞ｓ）＋ｂが動き補償において予測値として使用される。
【００９３】
[0118]ＷＰが有効であるとき、現在のスライスの各参照ピクチャについて、フラグは、ＷＰが参照ピクチャのために適用されるか否かを示すためにシグナリングされる。ＷＰが１つの参照ピクチャのために適用される場合、ＷＰパラメータのセット（例えば、ａ、ｓおよびｂ）は、復号器に送られ、参照ピクチャからの動き補償のために使用される。いくつかの例では、ルーマおよびクロマコンポーネントのためにＷＰをフレキシブルにオン／オフするために、ＷＰフラグおよびＷＰパラメータは、ルーマおよびクロマコンポーネントのために別々にシグナルされる。ＷＰでは、ＷＰパラメータの１つの同じセットが１つの参照ピクチャ中の全てのピクセルのために使用される。
【００９４】
[0119]ＪＶＥＴにおけるローカル照度補償（ＬＩＣ）に関して、ＬＩＣは、スケーリングファクタａおよびオフセットｂを使用して、照度変更のための線形モデルに基づく。このようなＬＩＣは、各インターモードコード化コーディングユニット（ＣＵ）のために適応的に有効にされるまたは無効にされる。ＬＩＣがＣＵのために適用されるとき、少なくとも２乗誤差方法は、現在のＣＵの近隣サンプルおよびそれらに対応する参照サンプルを使用することによってパラメータａおよびｂを導出するように用いられる。より詳細に、図５Ａおよび図５Ｂに例示されるように、ＣＵのサブサンプルされた（２：１サブサンプリング）近隣サンプルおよび参照ピクセルにおける（現在のＣＵまたはサブＣＵの動き情報によって識別される）対応するピクセルが使用される。いくつかの例では、ＩＣパラメータは、別々に、各予測方向のために導出され適用される。
【００９５】
[0120]ＣＵがマージモードでコード化されるとき、ＬＩＣフラグは、マージモードにおける動き情報コピーと同様の方法で、近隣ブロックからコピーされ；さもなければ、ＬＩＣフラグは、ＬＩＣが適用されるか否かを示すためにＣＵのためにシグナルされる。
【００９６】
[0121]重複したブロック動き補償（ＯＢＭＣ）は、Ｈ．２６３の発展において提案された。例えば、ＯＢＭＣは、８×８ブロック上で実行されることができ、２つの接続された近隣８×８ブロックの動きベクトルは、図６中に示されるように、現在のブロックために使用される。例えば、現在のマクロブロック中の第１の８×８ブロックについて、それ自身の動きベクトルを除いて、上および左近隣動きベクトルはまた、生成された２つの追加の予測ブロックに適用される。この方法では、現在の８×８ブロックにおける各ピクセルは、３つの予測値を有し、これらの３つの予測値の重み付けされた平均は、最終予測として使用される。
【００９７】
[0122]近隣ブロックがコード化されないまたは（イントラ予測を使用して）イントラとしてコード化されるとき、近隣ブロックが利用可能な動きベクトルを有しないことを意味するので、現在の８×８ブロックの動きベクトルは、近隣動きベクトルとして使用される。その一方で、（図６中に示されるように）現在のマクロブロックの第３および第４の８×８ブロックについて、下の近隣ブロックがいつも使用されない。言い換えれば、各ＭＢについて、それの下のＭＢからの動き情報がＯＢＭＣ中の現在のＭＢのピクセルを再構築するために全く使用されないことになる。
【００９８】
[0123]ＨＥＶＣでは、ＯＢＭＣはまた、すべての目的のためのそれら全体において参照することによって本願明細書に組み込まれる、米国公開番号ＵＳ２０１３／０１２８９７４号およびＵＳ２０１２／０１７７１２０号中に説明されるように、ＰＵ境界を滑らかにするために提案された。提案された方法の例は、図７Ａおよび図Ｂ中に示される。ＣＵが２つ（またはそれ以上）のＰＵを包含するとき、ＰＵ境界付近の線および／または列は、ＯＢＭＣによって滑らかにされる。「Ａ」または「Ｂ］でマークされたピクセルについて、２つの予測値は、（例えば、それぞれに、ＰＵ０およびＰＵ１の動きベクトルを適用することによって）生成され、それらの重み付けされた平均は、最終予測として使用される。
【００９９】
[0124]ＪＥＭ３．０（Joint Exploration Test Model 3.0）では、サブＰＵレベルのＯＢＭＣが適用される。ＯＢＭＣは、ＣＵの右および下境界を除くすべての動き補償（ＭＣ）ブロックのために実行される。さらに、ルーマおよびクロマコンポーネントの両方にそれが適用される。ＨＥＶＣでは、ＭＣブロックは、ＰＵに対応する。ＪＥＭでは、ＰＵがサブＰＵモードでコード化されるとき、ＰＵの各サブブロックは、ＭＣブロックである。統一したやり方でＣＵ／ＰＵ境界を処理するために、ＯＢＭＣは、すべてのＭＣブロック境界のためのサブブロックレベルで実行される。ここで、サブブロックサイズは、図８Ａおよび図８Ｂ中に例示されるように４×４に等しく設定される。
【０１００】
[0125]ＯＢＭＣが現在のサブブロックに適用されるとき、現在の動きベクトルに加えて、４つの接続された近隣サブブロックの動きベクトルはさらに、それらが利用可能であり、現在の動きベクトルと一致していない場合、現在のサブブロックのための予測ブロックを導出するために使用される。複数の動きベクトルに基づく複数の予測ブロックは、現在のサブブロックの最終予測信号を生成するために重み付けされる。
【０１０１】
[0126]近隣サブブロックの動きベクトルに基づく予測ブロックは、近隣上、下、左、および右サブブロックのためのインデックスを示すＮと共に、ＰＮとして示され、現在のサブブロック動きベクトルに基づく予測ブロックは、ＰＣとして示される。ＰＮがＰＣと同じＰＵに属している（従って、同じ動き情報を包含する）とき、ＯＢＭＣは、ＰＮから実行されない。さもなければ、ＰＮの各ピクセルは、ＰＣ中の同じピクセルに追加される、例えば、ＰＮの４つの行／列がＰＣに追加される。重み付け要素｛１／４、１／８、１／１６、１／３２｝は、ＰＮのために使用され、重み付け要素｛３／４、７／８、１５／１６、３１／３２｝は、ＰＣのために使用される。例外は、小さなＭＣブロックである（すなわち、ＰＵサイズが８×４に等しいとき４×８またはＰＵは、ＡＴＭＶＰモードでコード化される）、それは、ＰＮの２つのみの行／列がＰＣに追加される）。このケースでは、重み付け要素｛１／４、１／８｝は、ＰＮのために使用され、重み付け要素｛３／４、７／８｝は、ＰＣのために使用される。垂直に（水平に）近隣サブブロックの動きベクトルに基づいて生成されたＰＮについて、ＰＮの同じ行（列）におけるピクセルは、同じ重み付け要素でＰＣに追加される。ＰＵ境界のために留意すべき点は、ＯＢＭＣが境界の各辺上で適用されることができる。図８Ａおよび図８Ｂ中のようにＯＢＭＣは、２度、ＰＵ１とＰＵ２との間の境界に沿って適用されることができる。最初に、ＯＢＭＣは、境界内部のＰＵ１に沿って影付きブロックにＰＵ２のＭＶと共に適用される。第２に、ＯＢＭＣは、教会内部のＰＵ２に沿って影付きブロックにＰＵ１のＭＶと共に適用される。対照的に、ＯＢＭＣは、ＣＵ境界の１つの辺にのみ適用されることができ、それは、現在のＣＵをコード化しているとき、コード化されたＣＵが変更されることが出来ないからである。
【０１０２】
[0127]フレームレートアップコンバージョン（ＦＲＵＣ）技法は、低フレームレートビデオに基づいて高フレームレートビデオを生成するために使用される。ＦＲＵＣは、ディスプレイ産業において幅広く使用されている。ＦＲＵＣアルゴリズムは、２つのタイプに分けられることができる。ＦＲＵＣ方法の１つのタイプは、単一フレーム反復または平均することによって中間フレームを補間する。しかしながら、この方法は、多くの動きを包含するビデオにおいて不適切な結果を提供する。動き補償ＦＲＵＣ（ＭＣ−ＦＲＵＣ）と与ばれる、ＦＲＵＣ方法の他のタイプは、それが中間フレームを生成し、以下の２つのステップを含むときにオブジェクト移動を考慮する：（１）動き推定（ＭＥ）および（２）動き補償された補間（ＭＣＩ）。ＭＥは、ベクトルを使用するオブジェクト動きを表わす、動きベクトル（ＭＶ）を生成する一方で、ＭＣＩは、補間フレームを生成するためにＭＶを使用する。
【０１０３】
[0128]ブロックマッチングアルゴリズム（ＢＭＡ）は、それがインプリメントするのに単純であることから、ＭＣ−ＦＲＵＣにおけるＭＥのために広く使用されている。ＢＭＡは、画像をブロックへと分割し、およびそれらのブロックの移動を検出する。ＭＥの２つの種類は、一方的なＭＥおよび両面的なＭＥを含むＢＭＡのために主に使用される。
【０１０４】
[0129]図９は、ＦＲＵＣにおける一方的なＭＥを例示する。図９中に示されるように、一方的なＭＥは、現在のフレームの参照フレームから最もマッチするブロックを探索することによってＭＶを取得する。その後、保管されたフレーム中の動き軌道上のブロックは、ＭＶが達成されることができるように配置されることができる。図９中で示されるように、３つのフレーム中の３つのブロックは、動き軌道に従うことが含まれる。現在のフレーム中のブロックがコード化されたブロックに属するが、参照フレーム中で最もマッチするブロックは、コード化されたブロックに完全に属し得ない；いくつかのケースでは、補間フレーム中のブロックにもない。その結果として、ブロックの重なり合った領域と、満たされていない（穴）領域とが、補間フレーム中に生じ得る。
【０１０５】
[0130]重複を取り扱うために、単一ＦＲＵＣアルゴリズムは、重複したピクセルを平均することおよび上書きすることを単に包含する。さらに、穴は、参照または現在のフレームからのピクセル値によってカバーされる。しかしながら、これらのアルゴリズムは、ブロッキングアーティファクトおよびぼやけをもたらす。従って、動きフィールドセグメンテーション、離散ハートレー変換を使用する連続補外（successive extrapolation）、および画像インペインティング（image inpainting）は、ブロッキングアーティファクトおよびぼやけを増大させることなしに、穴および重複を取り扱うために提案される。
【０１０６】
[0131]図１０は、ＦＲＵＣにおける両面的なＭＥを例示する。図１０中に示されるように、両面的なＭＥは、重複および穴によって生じた問題を避けるように使用されることができる（ＭＣ−ＦＲＵＣにおける）別のソリューションである。両面的なＭＥは、参照および現在のフレームのブロック間の時間的対称性を使用して補間フレームにおけるブロックを通り抜けているＭＶを取得する。結果として、それは重複および穴を生成しない。現在のブロックが処理されているブロックであると仮定されるので、例えば、ビデオコーディングのケースなどの、ある順序では、このようなブロックは、重複無しに補間ピクチャ全体をカバーすることになる。例えば、ビデオコーディングのケースでは、ブロックは、復号順序において処理されることができる。従って、いくつかの例では、このような例は、ＦＲＵＣアイディアがビデオコーディングフレーム中で考慮される場合より適切になり得る。
【０１０７】
[0132]復号側の動きベクトル導出はまた実行されることができる。アドバンストビデオコーデックに起因して、ビットストリーム中の動き情報のより良いビット割合が達成されることができる。動き情報のビットコストを低減するために、復号器側動きベクトル導出（ＤＭＶＤ）が、提案された。
【０１０８】
[0133]テンプレートマッチングベースのＤＭＶＤは、良いコーディング効率改善を示す。図１１Ａおよび図１１Ｂは、テンプレートマッチングベースのＤＭＶＤのアイデアを例示する。復号器での現在のブロックである、予測ターゲットのために最もマッチするものを探索する代わりに、テンプレートの最もマッチするものが参照フレーム中で探索される。同じオブジェクトからテンプレートおよび予測ターゲットを仮定すると、テンプレートの動きベクトルは、予測ターゲットの動きベクトルとして使用されることができる。テンプレートマッチングが符号化器と復号器との両方において行われることから、動きベクトルは、シグナリングコストを避けるために復号器側において導出されることができる。
【０１０９】
[0134]ＤＭＶＤの別のカテゴリは、ミラーベースの両方向ＭＶ導出である。このアイデアは、ＦＲＵＣにおける両面的なＭＥに類似する。ミラーベースのＭＶ導出は、小数サンプル正確度（ｆｒａｃｔｉｏｎａｌ  ｓａｍｐｌｅ  ａｃｃｕｒａｃｙ）における、探索中心の周囲の中心対称動き推定によって適用される。探索ウィンドウのサイズおよび／またはロケーションは、予め定義されることができ、ビットストリーム中でシグナリングされることができる。図１２は、ＤＭＶＤにおけるミラーベースの両方向ＭＣ導出を例示する。図１２中の用語ｄＭＶは、ＭＶペア、ＭＶ０およびＭＶ１を生成するために、ＰＭＶ０に追加され、ＰＭＶ１から引かれたオフセットである。探索ウィンドウ内部のｄＭＶの全ての値は、チェックされることになり、Ｌ０およびＬ１参照ブロックの間の絶対差の合計（ＳＡＤ）は、中心対称動き推定の測定として使用される。最小ＳＡＤを持つＭＶペアは、中心対称動き推定の出力として選択される。方法は、ＳＡＤマッチングのために、将来参照（現在のフレームより後の時間的位置での参照）および早期参照（現在のブロックより前の時間的位置での参照）を必要とするので、それは、前の参照が利用可能であるＰフレームまたは低遅延Ｂフレームに適用できない。
【０１１０】
[0135]いくつかのケースでは、ＨＥＶＣにおいて、マージモードとミラーベースの両方向ＭＶを組み合わせるように提案された。例えば、ｐｕ＿ｄｍｖｄ＿ｆｌａｇと呼ばれるフラグは、ＤＭＶＰモードが現在のＰＵに適用されるかどうかを示すために、ＢスライスのＰＵために追加される。図１３は、追加されたｐｕ＿ｄｍｖｄ＿ｆｌａｇでのＰＵ復号のフローチャートである。ＤＭＶＤモードがビットストリーム中の任意のＭＶ情報を明示的に送信し得ないので、ＨＥＶＣコーディングプロセスにおけるマージモードのシンタックスでｐｕ＿ｄｍｖｄ＿ｆｌａｇを積分する復号プロセスは、図１３中に示されるように表わされる。
【０１１１】
[0136]様々な問題が上で説明された技法の１つまたは複数で存在する。例えば、既存のＬＩＣアルゴリズムでは、両予測動き補償の間、ＬＩＣパラメータは、予測子上の接合影響を考慮せずにＲｅｆ０およびＲｅｆ１から独立的に導出される。例えば、両予測ケースでは、別々のＬＩＣ補償予測パッチが決定され、等しい重み（０．５）が最終予測子を生成するためにＬＩＣ補償予測パッチを組み合わせるために使用される。さらに、既存のＬＩＣアルゴリズムでは、近隣ピクセルの単一行および単一列のサブセットのみがＬＩＣパラメータを導出するために使用され、それは、次善のソリューションを導き得る。さらにもっと、既存のＬＩＣアルゴリズムでは、整数に配置されたピクセルは、フィルタリング無しで（分数ピクセル精度無しで）ＬＩＣパラメータを導出するために使用され、それは、雑音の多い再構築されたピクセルに起因して次善のパラメータを作り出すことにつながり得る。また、ＬＩＣが有効であるとき、ＯＢＭＣは、両予測動き補償のために有効にされ、それは、ブロックの境界ピクセルにわたってスムーズになることにつながる。
【０１１２】
[0137]様々な技法は、前述の問題を解決するために本明細書で説明される。いくつかのケースでは、本明細書で説明される技法は、別個に適用され得る。いくつかのケースでは、本明細書で説明される技法の任意の組合せが適用され得る。本出願では、いくつかのケースでは、参照インデックス情報は動き情報と見なされ得る。いくつかの例では、それらは、動き情報のセットと一緒に呼び出される。
【０１１３】
[0138]いくつかの例では、方法およびシステムは、複数の参照ピクチャのテンプレートに基づいてピクチャのブロックのための１つまたは複数のローカル照度補償（ＬＩＣ）パラメータを導出するために本明細書で説明される。符号化器および復号器の両方は、本明細書で説明される技法を使用して照度補償パラメータを導出するために同じプロシージャに従うことができる。例えば、符号化器および復号器の両方は、ビットストリーム中で（復号器に）シグナルされるべきまたは別のシグナリングメカニズムを使用するパラメータ無しに同じプロシージャを使用してオフセットおよび重み（またはスケーリングファクタ）を導出することができる。いくつかのケースでは、符号器側で、符号化器および復号器ＬＩＣパラメータ導出における差のみが、ＬＩＣのスイッチと動き探索との間の接合最適化を実行するために必要になる。いくつかの例では、徹底的な探索が用いられることができる。
【０１１４】
[0139]本明細書に説明されるＬＩＣ方法は、両予測動き補償のためのＬＩＣパラメータを解決するために代替方法を含む。例えば、両予測動き補償の間、ＬＩＣパラメータは、同時に、参照ピクチャリスト０（ＲｅｆＰｉｃＬｉｓｔ０）からの第１の参照ピクチャのブロック（Ｒｅｆ０）および参照ピクチャリスト１（ＲｅｆＰｉｃＬｉｓｔ１）から第２の参照ピクチャのブロック（Ｒｅｆ１）の両方のテンプレートを考慮することによって導出されることができる。１つの例では、第１の参照ピクチャの第１のテンプレートおよび第２の参照ピクチャの第２のテンプレートは、１つまたは複数のローカル照度補償パラメータを同時に導出するために使用される。このような技法は、予測子のそれらの結合影響を考慮せずにＲｅｆ０およびＲｅｆ１から別々にＬＩＣパラメータを導出する既存の技法よりよい最適な予測子を提供する。例えば、既存のＬＩＣソリューションを使用して、ＬＩＣパラメータは、現在の再構築されたフレームと参照フレームとの間の近隣ピクチャによって形成さ有れたデータセットのペアのソリューションを見出すことによって導出される。両予測動き補償では、既存のＬＩＣソリューションの計算は、離れたコスト関数を使用して、別個にＬ０およびＬ１の参照ブロック関して行われる。等しい重みの両平均動作は、ＬＩＣ補償予測子を組み合わせるために使用される。Ｒｅｆ０およびＲｅｆ１のために別個にＬＩＣパラメータを導出することは、現在のフレームに対する２つの参照フレームの時間的距離が等しくないときに問題を提起し得る。さらに、時間的に非一様な照度変化があるとき、ＬＩＣパラメータの等しい導出は、それが両予測になるとき、次善のパラメータをもたらし得る。
【０１１５】
[0140]ＬＩＣパラメータのテンプレートベース導出を例示する図である。現在のブロック１４０２は、動き補償が実行される現在のピクチャのブロックである。参照ピクチャブロック１４０４は、参照ピクチャリスト０（ＲｅｆＰｉｃＬｉｓｔ０）からの第１の参照ピクチャのブロック（Ｒｅｆ０）であり、参照ピクチャブロック１４０６は、参照ピクチャリスト１（ＲｅｆＰｉｃＬｉｓｔ１）からの第２の参照ピクチャのブロック（Ｒｅｆ１）である。それぞれ、用語Ｐ０は、Ｒｅｆ０のテンプレート領域を表わし、用語Ｐ１は、Ｒｅｆ１のテンプレート領域を表わす。用語Ｎｉは、現在のブロック１４０２のテンプレート領域を示す。テンプレートＮｉにおけるサンプルは、現在のブロック１４０２近隣の再構築されたフレームの再構築されたブロックの一部である。
【０１１６】
[0141]照度補償パラメータは、オフセット、１つまたは複数の重み、シフト数、または他の適切な照度補償パラメータを含むことができる。重みはまた、スケーリングファクタと呼ばれることができる。第１の参照ピクチャおよび第２の参照ピクチャのテンプレートを使用することによって、例えば、１つまたは複数の重みは、第１の参照ピクチャのテンプレートのための第１の重みと第２の参照ピクチャのテンプレートのための第２の重みを含むことができる。
【０１１７】
[0142]いくつかのインプリメンテーションでは、線形最小二乗回帰（linear least square regression）は、両予測動き補償におけるＬＩＣパラメータを推定するために使用されることができる。１つの例では、ＬＩＣパラメータの導出は、下の最小二乗回帰方程式（例えば、下の方程式（５）−（６）または方程式（４）および１１））を使用してコスト関数（例えば、下の方程式（４）または方程式（１０））を解くことによって行うことができる。例えば、現在のブロックの１つまたは複数の近隣ブロックからのサンプルのサブセットは、ＬＩＣパラメータを導出するために使用されることができる。現在のブロックの近隣ブロックからのサンプルは、現在のブロック１４０２中に可能な照度変化を見出すために使用されることができ、それは、（近隣ブロック中の）近隣サンプルと（現在のブロック１４０２中の）現在のサンプルとの間の強い相関関係があると仮定されるからである。例えば、同じ動き情報を共有する、現在のブロックおよび近隣ブロックがとても類似する照度値を包含すべきであると仮定されることができる。近隣サンプルを使用する別の理由は、現在のブロックがまだ予測されていないことであり、（再構築された）近隣サンプルが現在のブロックの動き補償のためのテンプレートマッチングを実行する際に使用されることができる場合に、現在のブロックから使用するピクセルがなくなり得る。
【０１１８】
[0143]１つの例示的な例では、上ネイバー、左ネイバー、または上ネイバーおよび左ネイバーの両方が使用され得る。例えば、図１４中に示されるテンプレートＮｉは、現在のブロック１４０２の上ネイバーおよび左ネイバーからのサンプルのサブセットを含むことができる。図１４中に示されるテンプレートＰ０は、参照ブロック１４０４の上ネイバーおよび左ネイバーからのピクセルのサブセットを含み、テンプレートＰ１は、参照ブロック１４０６の上ネイバーおよび左ネイバーからのピクセルのサブセットを含むことができる。テンプレートＰ０およびＰ１中に使用される近隣ブロックのサンプルは、テンプレートＮｉ中で使用される近隣サンプルに対応するサンプルを含むことができる。いくつかのケースでは、テンプレートＰ０およびＰ１中で使用される対応するサンプルは、現在のブロックの動き情報によって識別されることができる。復号器側での１つの例示的な例では、動きベクトルは、マージモード、ＦＲＵＣマージモード、または通常のＡＭＶＰモードの何れかに処理してもらって、ビットストリーム中でシグナルされることが出来る。復号器は、動き情報（例えば、動きベクトルおよび参照インデックス）および参照ピクチャ順序カウント（ＰＯＣ）を再構築することができる。復号器は、参照インデックスを使用して参照ピクチャを識別することができ、動きベクトルを使用して参照ピクチャ内の参照ブロック１４０４および１４０６を識別することができる。復号器はその後、参照ブロック１４０４および１４０６の関連したテンプレート領域Ｐ０およびＰ１を導出することができる。例えば、一旦参照ブロック１４０４および１４０６が参照ピクチャ内で決定されると、近隣ブロックから上および左近隣ブロックサンプル（例えば、１つまたは複数の行および１つまたは複数の列）がテンプレート領域Ｐ０およびＰ１として決定されることができる。このような技法は、ＦＲＵＣテンプレートマッチングと異なり、ここで、現在のブロックのテンプレートは、最初に決定され、その後、テンプレートは、所与の参照フレーム上の動きベクトルを探索するために使用される。
【０１１９】
[0144]いくつかの例では、両予測ＬＩＣのための重みを解くために以下のコスト関数が考慮される：
【０１２０】
【数４】
2019531029.tif 000006
【０１２１】
[0145]ここで、λは、規則化パラメータであり、項Ｎｉは、現在の再構築されたフレーム中の現在のブロックの上近隣ピクセルおよび／または左近隣ピクセル（例えば、図１４中に示される現在のブロックのテンプレートＮｉ）であり、項Ｐ０，ｉおよびＰ１，ｉは、それぞれ、Ｌｉｓｔ０およびＬｉｓｔ１の参照フレームにおける参照ブロックの上および／または左近隣ピクセル（例えば、図１４中に示される参照ブロック１４０４のテンプレートＰ０および参照ブロック１４０６のテンプレートＰ１）であり、項ｉは、テンプレート領域内のピクセルインデックスであり、項Ｎは、テンプレート領域中のピクセルの総数（Ｎｉ、Ｐ０および／またはＰ１）である。
【０１２２】
[0146]項ｏは、オフセットであり、項ｗ０およびｗ１は、重みである。重みｗ０およびｗ１およびオフセットｏは、一連のピクチャ中の照度変化によって誘発される不一致を補償するために使用される。例えば、オフセットｏは、同時に、２つの参照フレームを考慮することによって平均照度変化を示すことができる。重みｗ０は、図１４中で示されるテンプレートＰ０中のサンプルである、（Ｌｉｓｔ０からの）参照ブロック１４０４から生成された予測サンプルを乗じる。重みｗ１は、図１４中で示されるテンプレートＰ０中のサンプルである、（Ｌｉｓｔ１からの）参照ブロック１４０６から生成された予測サンプルを乗じる。重みｗ０およびｗ１は、調整可能なパラメータであり、ピクチャのある特徴に基づく。例えば、重みｗ０およびｗ１は、ピクチャがより明るいかより暗いか、または他の特徴に基づいて現在のピクチャを予測するために使用されている参照ピクチャの時間的距離に基づくことができる。１つの例では、２つの参照ピクチャがある場合、第１の参照ピクチャが第２の参照ピクチャよりも現在のピクチャにより近くに位置して状態で、異なる重みは、動き補償が実行されている現在のブロックのためのより良い予測例を見出すためにこれら２つの異なる参照ピクチャに適用されることができる。例えば、より小さな重みは、（現在のピクチャにより近い）第１の参照ピクチャのサンプルに適用される重みよりも（現在のピクチャからより離れている）第２の参照ピクチャのサンプルに適用されることができる。別の例では、より高い重みは、より少ない照度変化を有するサンプルに適用されることができる。例えば、下の方程式（６）によって示されるように、相互相関は、近隣サンプルから第１の参照フレームの予測サンプルに取られ、参照フレームがより離れ、第１の参照フレームの近隣サンプルが第２の参照フレームの近隣サンプルより暗い場合、その後、重みは、より少なくなることができる。最終予測は、方程式（９）に従って生成される。
【０１２３】
[0147]方程式（４）は、重みｗ０およびｗ１且つオフセットｏの値を取得するために線形最小二乗回帰を使用して解かれることができる。例えば、線形最小二乗回帰を使用して方程式（４）を解くことによって、方程式（４）に対するソリューションは、以下のように見出されることができる。
【０１２４】
【数５】
2019531029.tif 000007
【０１２５】
[0148]したがって重みおよびオフセットは、方程式（４）を解くことによって見出されることができる。いくつかのケースでは、最小二乗ソリューション（方程式（５）における項ａ・ｃ−ｂ２）の決定がゼロに等しい場合、単方向ＬＩＣは、（同時に２つの参照ブロックを使用する）両方向ＬＩＣの代わりに使用される（時間で単一参照ブロックを使用する）ことができる。いくつかのケースでは、過度の補償を避けるために、方程式（５）におけるオフセットｏは、さらに制限されることができる。値の１つの例は、ビット深さ（ＢＤ）に関連付けられることができ、ここで、オフセットは、［−２ＢＤ，２ＢＤ−１］の範囲に制限されることができる。
【０１２６】
[0149]方程式（５）では、Ｎは、解析されているテンプレートにおけるピクセルの数（Ｎｉ，Ｐ０，および／またはＰ１）であり、項｛ａ，ｂ，ｃ，ｄ，ｅ｝は、以下のように定義される。
【０１２７】
【数６】
2019531029.tif 000008
【０１２８】
[0150]項ａおよびｃは、それぞれ、テンプレートＰ０およびテンプレートＰ１からのサンプルにわたる分散を表わす。例えば、項ａは、参照ブロック１４０４（Ｒｅｆ０）のためのテンプレートＰ０の予測サンプルの分散を表わし、項ｃは、参照ブロック１４０６（Ｒｅｆ１）のためのテンプレートＰ１の予測サンプルの分散を表わす。例としてａを使用して、テンプレートＰ０からのサンプル値Ｐ０，ｉは、二乗され、テンプレートＰ０中のサンプルの平均は、二乗サンプル値Ｐ０，Ｉから減算され、それは、サンプル値Ｐ０，ｉの分散を提供する。平均は、テンプレートＰ０におけるサンプルの総計によって割られた、二乗された、テンプレートＰ０におけるサンプルのすべての合計として示される。規則化パラメータλはまた、下で説明されるように（項ａ−ｅの各々のために）使用される。項ｃの定義は、テンプレートＰ１からのサンプル値Ｐ１，ｉに関するが、項ａの定義に類似する。
【０１２９】
[0151]項ｂは、Ｐ０およびＰ１における対応するサンプルの共分散（またはいくつかのケースでは相互相関）に関連する。項ｄは、テンプレートＰ０中のサンプルとテンプレートＮｉ中の対応するサンプルとの間の共分散（またはいくつかのケースでは相互相関）に関連する。同様に、項ｅは、テンプレートＰ１中のサンプルとテンプレートＮｉ中の対応するサンプルとの間の相互相関に関連する。方程式（５）中に示されるように、重みｗ０およびｗ１は、項ａ，ｂ，ｃ，ｄ，ｅに基づいて決定される。重みｗ０およびｗ１は、（現在のブロックの）現在の近隣サンプルと参照ブロックの参照ネイバーとの間の類似の測定値を表わす。他の参照ネイバーの分散が高い、または参照ネイバーと現在のブロックとの間の共分散が高い場合、重みはより高くなる。２つの参照ネイバーの分散が高い、または現在のネイバーおよび参照ネイバーの共分散が高い場合、重みはより低くなる。
【０１３０】
[0152]方程式（６）は、以下のように書き換えられることができる。
【０１３１】
【数７】
2019531029.tif 000009
【０１３２】
[0153]規則化パラメータλは、正の値として選択されることができる：
【０１３３】
【数８】
2019531029.tif 000010
【０１３４】
[0154]ここで、ｋは、絶対値が１より小さいスケーリングファクタである。代替として、λは、２乗の２つの合計の最大値になるように選択されることができる。
【０１３５】
【数９】
2019531029.tif 000011
【０１３６】
[0155]最終予測サンプルは、以下のように作り出される：
【０１３７】
【数１０】
2019531029.tif 000012
【０１３８】
[0156]最終予測サンプルＰ（ｘ，ｙ）は、現在のブロック１４０２における位置（ｘ、ｙ）でのサンプルのために使用されることになるサンプル値を表わす。本明細書で説明されるように、ＬＩＣのアプリケーションは、従来の両予測動き補償中に統合されることが出来る。最適な重みを見出すためにテンプレートベースの探索を考慮するとき、方程式（９）はまだ、両予測動き補償の間の最適な重みを適用するために使用されることができる。
【０１３９】
[0157]いくつかの例では、ＬＩＣパラメータを導出する１つよりも多くの導出方法が実行されることができる。このような例では、符号化器または他の送信機側デバイスは、導出方法が（例えばＶＰＳおよび／またはＳＰＳにおける）シーケンスレベルで、（例えば、ＰＰＳにおける）ピクチャレベルで、（例えば、スライスヘッダにおける）スライスレベルで、ＣＴＵレベルで、ＣＵレベルで、ＰＵレベルで、またはこれらの組合せ、あるいは他の適切なシグナリングレベルで使用されるべきであると復号器にシグナルすることができる。
【０１４０】
[0158]使用される代替のコスト関数の別の例示的な例が以下のように定義される。
【０１４１】
【数１１】
2019531029.tif 000013
【０１４２】
[0159]方程式（１０）におけるコスト関数に対する線形最小二乗ソリューションは、方程式（５）と同様の形式を有するが、以下のように｛ａ，ｂ，ｃ，ｄ，ｅ｝における各項のための異なる定義を持つ。
【０１４３】
【数１２】
2019531029.tif 000014
【０１４４】
[0160]より一般的に、方程式（１）は、以下のように定義される：
【０１４５】
【数１３】
2019531029.tif 000015
【０１４６】
[0161]ＤｅｆａｕｌｔＷ０およびＤｅｆａｕｌｔＷ１の値は、任意の適切な値に設定されることができ、ピクチャレベルで、スライスレベルで、ブロックレベルで、ブロックのグループのレベルでのような異なるレベルでビットストリーム中にシグナルされることができる。１つの例として、スライスヘッダ中でシグナルされた重み付けされた予測パラメータは、ＤｅｆａｕｌｔＷ０およびＤｅｆａｕｌｔＷ１の値を導出するために使用されることができる。方程式（１０）中の例となるコスト関数はＤｅｆａｕｌｔＷ０およびＤｅｆａｕｌｔＷ１項の両方のために０．５の値を使用する。しかしながら、この項は、構成可能であり、任意の適切な値に設定されることができる。
【０１４７】
[0162]いくつかの例では、最小二乗ソリューションは、ネイバー（例えば、上ネイバー、左ネイバー、上および左ネイバーの両方、または他のネイバーのいずれか）からのテンプレートの複数の線および／または列に基づいて計算されることができる。線および／または列の例となる数（いくつかのケースにおける、典型的な数）は、１つ、２つ、４つまたは他の適切な行および／または列の数を含む。例えば、現在のブロック１４０２の左ネイバーからのサンプルの１つより多くの線および／または列、および現在のブロック１４０２の上ネイバーからのサンプルの１つより多くの線および／または列は、テンプレートＮｉ中に含まれることができる。これらのケースでは、テンプレートＰ０およびＰ１中の線および／または列の対応する数があることになる。１つの例示的な例では、テンプレートＮｉは、現在のブロック１４０２の左近隣ブロックからのピクセルの２列および現在のブロック１４０２の上近隣ブロックからのピクセルの２行を含むことができる。この例では、テンプレートＰ０は、参照ブロック１４０４の左近隣ブロックからのピクセルの２列および参照ブロック１４０４の上近隣ブロックからのピクセルの２行を含むことができる。同様に、この例では、テンプレートＰ１は、参照ブロック１４０６の左近隣ブロックからのピクセルの２列および参照ブロック１４０６の上近隣ブロックからのピクセルの２行を含むことができる。
【０１４８】
[0163]上の方程式４−１１は、複数の線および／または列がテンプレート中に含まれるときに修正され得る。例えば、テンプレート領域（項Ｎ）中のピクセルの数は、テンプレート中の線および／または列の数に基づいて変更されるだろう。例えば、ブロックが１６×１６（ピクセルの１６行掛けるピクセルの１６列）であり、上近隣ブロックからの２つの線および左近隣ブロックからの２つの列が使用される場合、Ｎｉテンプレートは、６４サンプル（左近隣ブロックから３２サンプルおよび上近隣ブロックから３２サンプル）およを含むことになり、Ｎの値は６４になるだろう。この例では、Ｐ０およびＰ１テンプレートはさらに、６４個のサンプルを含むことになる。
【０１４９】
[0164]いくつかのケースでは、整数に位置付けられたサンプル（またはピクセル）は、ＬＩＣパラメータの導出のために使用される。いくつかのケースでは、小数に位置付けられたサンプル（またはピクセル）は、ＬＩＣパラメータの導出のために使用される。いくつかのケースでは、整数に位置付けられたサンプルおよび小数に位置付けられたサンプルは両方、使用されることができる。例えば、ピクチャかの移動オブジェクトの正確な変位は、連続であり、ビデオシーケンス中のピクチャのサンプリンググリッドに従わない傾向がある。このため、小数正確さは、ビデオコーダの整数正確さの代わりに動きベクトルのために使用されることができ、残差誤りにおける低減およびビデオコーダのコーディング効率における増加につながる。動きベクトルが小数値を有する場合、参照ブロックは、それに応じて、補間される必要がある。例えば、現在のブロックのサンプルのための動きベクトルは、参照ブロックにおける小数ピクセル位置を提示することができる。小数ピクセル位置は、ブロック中の小数サンプルロケーション（非整数ロケーション）でサンプル（例えば、ルーマサンプル）を参照する。このロケーションは、補間によって生成される必要がある。小数位置のサンプルが使用されるときの１つの例では、テンプレート（例えば、Ｐ０またはＰ１）の補間されたまたはフィルタされたバージョンは、ＬＩＣパラメータを導出するときの再構築されたピクセルから量子化誤差を低減するために使用されることができる。このテンプレートの保管されたバージョンは、１つまたは複数の補間フィルタを使用して生成されることができる。例えば、現在のブロックの動きベクトルが参照フレーム中の小数ピクセル位置を提示する場合、補間フィルタは、ＬＩＣパラメータを導出する前にテンプレートのためのサンプルのより良いセットを生成するために使用されることができる。例えば、補間フィルタのタイプは、ＨＥＶＣ基準において定義された、両線形補間フィルタ、８タップ補間フィルタ、または任意の他の適切なフィルタを含むが、これらに限定されない。現在のところ、照度補償ソリューションは、任意の小数ピクセル位置サンプルを使用しない。例えば、現在のソリューションを使用して、動きベクトルが小数ピクセル位置を提示すると仮定して、ＬＩＣ導出に使用されるべき予測子の値は、最も近い参照サンプル位置に丸められ、その後結果として生じるサンプルは、ＬＩＣパラメータを導出するために使用される。
【０１５０】
[0165]１つの例では、テンプレート（Ｐ０およびＰ１）からのいくつかのサンプルは、異常値になると決定され、排除されることができる。例えば、最小二乗ソリューションは、異常値を排除したサンプルに基づいて計算されることができる。いくつかのインプリメンテーションでは、復号されたまたは導出されたサンプル値範囲（またはしきい値）は、異常値を取り除くために適用されることができる。範囲は、異常値しきい値範囲と呼ばれることができる。値が範囲内にないサンプルは、取り除かれ、最小二乗ソリューションは、値が範囲内にあるサンプルに基づいて計算される。１つの例示的な例では、８ビットのピクセル値が利用され、そのケースでは、ピクセル値は、０−２５５からなることができる。いくつかのケースでは、所与のピクセルにおけるピクセルの値は、１６−２３５の間のピクセル値のサブセットのような利用可能な値すべてのサブセットを含むことができる。所与のピクチャ内で使用された値のサブセットは、異常値を排除するための範囲として使用されることができる。範囲外にある任意のサンプルの値は、異常値であると決定されることができ、上の方程式を使用してＬＩＣパラメータを導出する前にテンプレートから取り除かれることができる。別の例示的な例では、テンプレート中のサンプル値の平均値が計算されることができ、平均からのｘ標準偏差を含むことができる。ｘ項は、（３標準偏差のための）３、４、５、または他の適切な値のような任意の適切な値に設定されることができる。平均からのｘ標準偏差を超えるサンプルは、排除されることができる。範囲は、スライスレベル、ピクチャレベル、ブロックレベル、または同様なもので、復号器にシグナルされることができる。
【０１５１】
[0166]いくつかの例では、ルーマコンポーネントのみがＲｅｆ０およびＲｅｆ１の両方のためのＬＩＣパラメータを一緒に最適化するために使用される必要がある。代替として、ルーマおよびクロマコンポーネントの両方は、両予測ＬＩＣパラメータの導出の間考慮されることができる。符号化器は、クロマコンポーネントのうちの１つまたは複数にＬＩＣを適用するかどうか、またはルーマコンポーネントにＬＩＣを適用するかどうかのみを（パラメータセットにおいて、ＳＥＩメッセージにおいて、または他の適切なシグナリングメカニズムで）復号器にシグナルすることができる。
【０１５２】
[0167]いくつかのケースでは、ＦＲＵＣ二面マッチング（FRUC bilateral matching）が有効であるとき両予測ＬＩＣ導出は、スキップされ、システムは、単方向ＬＩＣで処理されることができる。いくつかのケースでは、ＦＲＵＣおよび二面（テンプレートベースの）ＬＩＣは、一緒に使用されることができる。
【０１５３】
[0168]いくつかの例では、前に説明された重複したブロック動き補償（ＢＯＭＣ）技法は、ＬＩＣ（例えば、両予測および／または単予測ＬＩＣのいずれか）が有効であるときバラバラに使用されることができる。例えば、いくつかのケースでは、ＬＩＣがブロックのために有効であるときＯＢＭＣは、ブロックのために無効にされる。別の例では、ＬＩＣが有効であるとき、ＯＢＭＣは、Ｂタイプスライスのみのために無効にされる。この例では、（例えば、パラメータセットのシンタックスにおいて、ヘッダにおいて、ＳＥＩメッセージにおいて、または同様なものにおいて）ＯＢＭＣフラグおよびＩＣフラグは、Ｐタイプスライス中のブロックのためにのみ一緒に有効にされることができる。別の例では、ＬＩＣが有効になるとき、ＯＢＭＣは、両予測ブロックのためにのみ無効にされる。この例では、ＯＢＭＣおよびＩＣ技法は、単予測ブロックのためにのみ同時に適用されることができる。
【０１５４】
[0169]加えて、ＯＢＭＣが適用されるかどうかを示すために、フラグが（例えば、パラメータセットのシンタックスにおいて、ＳＥＩメッセージにおいて、または同様なものにおいて）使用される場合、関連すｒうＯＢＭＣフラグは、ＯＢＭＣおよびＬＩＸがブロック、スライス、ピクチャまたは同様なもののために一緒に有効にされることができないときに送られないべきである。同様に、制限は、ＯＢＭＣフラグが最初にシグナルされた場合に、ＬＩＣフラグに適用されることができる。
【０１５５】
[0170]図１５は、ＩＣとＯＢＭＣフラグ（ブロック１５０４および１５０６）との間の既存のシグナリングと同様に、改善されたシグナリングでのフローチャートのためのプロセス１５００を例示する。上の例１、例２、または例３を使用することが既存の技法より低い符号化複雑性およびより良いコーディング効率性を達成することができる。例えば、ブロック１５０２で、プロセス１５００は、現在のブロックのための動きベクトルおよび参照インデックスをシグナルする。既存の技法を使用して、（ブロック１５０４で）ＯＢＭＣフラグおよび（ブロック１５０６０で）ＩＣフラグがシグナルされる。しかしながら、例１では、プロセス１５００は、ＩＣフラグがブロック１５０８でシグナルされるかどうかをチェックする。ＩＣフラグがシグナルされる場合、ＯＢＭＣフラグがシグナルされない。しかしながら、ＩＣフラグがシグナルされない場合、ＯＢＭＣフラグは、ブロック１５１０でシグナルされる。ＯＢＭＣフラグがシグナルされないとき、それは、現在のブロックのために無効にであると仮定される。
【０１５６】
[0171]例２では、プロセス１５００は、ブロック１５１２で、ＩＣフラグがシグナルされるかどうかおよび現在のスライスがＢタイプスライスであるかどうかをチェックする。ＩＣフラグがシグナルされ、現在のスライスがＢタイプスライスである場合、ＯＢＭＣフラグがシグナルされない。しかしながら、ＩＣフラグがシグナルされない、または現在のスライスがＢタイプスライスである場合、ＯＢＭＣフラグは、ブロック１５１４でシグナルされる。ＯＢＭＣフラグがシグナルされないとき、それは、現在のブロックのために無効にであると仮定される。
【０１５７】
[0172]例３では、プロセス１５００は、ブロック１５１６で、ＩＣフラグがシグナルされるかどうかおよび現在のブロックが両予測ブロックであるかどうかをチェックする。ＩＣフラグがシグナルされ、現在のブロックが両予測ブロックである場合、ＯＢＭＣフラグがシグナルされない。しかしながら、ＩＣフラグがシグナルされない、または現在のブロック両予測ブロックである場合、ＯＢＭＣフラグは、ブロック１５１８でシグナルされる。ＯＢＭＣフラグがシグナルされないとき、それは、現在のブロックのために無効にであると仮定される。
【０１５８】
[0173]上で説明される例のうちの１つまたは複数は、ＪＥＭ３．０における既存のローカル照度補償（ＬＩＣ）ツールに対する代替方法を提供する。例のうちのいくつかでは、線形最小二乗法が両予測動き補償におけるＬ０およびＬ１の両方一緒にＬＩＣパラメータを解くために使用される。共通テスト条件下のＪＥＭ−３．０でテストされた、提案された方法は、２−３％符号化時間増加と共に、ランダムアクセス、低遅延Ｂ、および低遅延Ｐ構成のために０．１８％／０．０１％／ｘｘｘ％ＢＤレート低減をそれぞれに提供し得る。
【０１５９】
[0174]実験は、本明細書で説明されるテンプレートベースの両予測ＬＩＣ導出を使用して肯定的な結果を示す。以下のシミュレーションでは、ラムダの値は、以下の式のように選択される：
【０１６０】
【数１４】
2019531029.tif 000016
【０１６１】
【表１】
2019531029.tif 000017
【０１６２】
【表２】
2019531029.tif 000018
【０１６３】
【表３】
2019531029.tif 000019
【０１６４】
[0175]テーブル１、２、および３の第１の３つの列中の値は、ＢＤレートと呼ばれ、それは、コーディング効率を測定するためにビデオコーディングにおけるメトリックが共通に使用される。ＢＤレートのための負の数は、同じ品質のビデオを表わすためのビットの低減を参照し、従って、コーディング利得を暗示する。次の２つの列はそれぞれ、符号化ランタイム（ＥｎｃＴ）および復号ランタイム（ＤｅｃＴ）である。テーブル１−３中の行の各々は、ＵＨＤ（クラスＡ１／クラスＡ２）、ＨＤ（クラスＢ）、ＷＶＧＡ（クラスＣ）、およびＷＱＶＧＡ（クラスＤ）からの異なるソシューションのシーケンスのセットを示す。クラスＦは、コンピュータスクリーンコンテンツ（ＳＣＣ）を含む特別なセットである。
【０１６５】
[0176]いくつかの例では、単予測動き補償および／または両予測動き補償の間、ＬＩＣパラメータは、様々な技法のすべてまたは任意のサブセットを組み合わせることによって導出されることができる。１つの例示となる例では、テンプレートは、上ネイバー、左ネイバー、上ネイバーおよび左ネイバーの両方、または別の近隣ブロックからサンプルの全て（例えば、ピクセル、すべての輝度サンプル、すべてのクロミナンスサンプル、クロミナンスサンプルのうちの１つのみ、これらの組合せ、または他の適切なサンプル）を考慮することによって生み出されることができる。
【０１６６】
[0177]いくつかのケースでは、（例えば、単予測動き補償または両予測動き補償のいずれかのための）回帰計算中に含まれるピクセル（または他のサンプル）の行および／または列の数は、１つ、２つ、または４つであることができる。行および／または列の他の適切な数はまた使用されることができる。いくつかのケースでは、可能な行および／または列の数は、固定されることができる。
いくつかのインプリメンテーションでは、システムおよび方法は、ＬＩＣのために使用する１つまたは複数のテンプレートのサイズを適応的に決定するために本明細書に説明される。例えば、現在のブロックのためのＬＩＣを実行するために使用されるテンプレート（例えば、上で説明されるＮｉ、Ｐ０、またはＰ１、あるいは単予測動き補償において使用される単一参照ピクチャのテンプレート）の行および／または列の数は、現在のブロックのパラメータに依存して変化することができる。パラメータは、現在のブロックのブロックサイズ（例えば、ブロックの幅、ブロックの高さ、またはブロックの幅および高さ）、現在のブロックのクロマフォーマット（例えば、４：２：０フォーマット、４：２：２フォーマット、４：４：４フォーマット、または他の適切なクロマフォーマット）、またはテンプレートサイズを決定するために使用されることができる他のパラメータを含むことができる。
【０１６７】
[0179]例えば、テンプレートにおける行および／または列（または他のサンプル）の数は、現在のブロックの幅および／または高さに依存して変化することができる。いくつかの例では、ブロック幅がしきい値幅より小さいとき、上テンプレートの行の数は１である。いくつかの例では、ブロック高さがしきい値高さより小さいとき、左テンプレートの列の数は１である。ブロック幅がしきい値幅より大きいとき、上テンプレートの行の数は１より大きく、ブロック高さがしきい値高さより大きいとき、左テンプレートの列の数は１より大きい。１つの例示的な例では、８ピクセル未満の幅および／または高さを持つブロックについて、線および／または列の数は、１に限定される。さもなければ、幅および／または高さが３２ピクセル未満であるとき線および／または列の数は、２に限定される。さもなければ、線および／または列の数は、最大４までであることができる。いくつかのケースでは、しきい値は、符号化器および／または復号器によって静的に決定されることができる。いくつかのケースでは、しきい値は、シーケンスパラメータセット（ＳＰＳ）中で、ピクチャパラメータセット（ＰＰＳ）中で、スライスヘッダ中で、ＳＥＩメッセージ中で、または他の適切なシグナリングを使用してシグナルされる。
【０１６８】
[0180]別の例では、クロマのための行および／または列（または他のサンプル）の数は、クロマフォーマットに依存する。例えば、４：２：０フォーマットについて、クロマのためのピクセルの行および／または列の数は、ルーマサイズの半分に設定される。別の例では、４：２：２フォーマットについて、クロマのためのピクセルの列の数は、ルーマサイズの半分に設定される一方、行の数は、ルーマサイズのと同じに設定される。関連するルーマコンポーネントの行および／または列の数が１であるとき、その後、関連する行および／または列は、１に設定される。
【０１６９】
[0181]いくつかのケースでは、テンプレートのサイズは、ＳＰＳ中で、ＰＰＳ中で、スライスヘッダ中で、ＳＥＩメッセージ中で、または他の適切なシグナリングを使用してシグナルされることができる。いくつかの例では、回帰計算の前に近隣ピクセルを前処理するための補間フィルタのタイプは、本明細書で説明されるように、ＨＥＶＣ基準において定義される双線形および８タップ補間フィルタを含む。いくつかのケースでは、補間フィルタのタイプは、ＳＰＳ、ＰＰＳ、スライスヘッダ、ＳＥＩメッセージを介して、または他の適切なシグナリングを使用してシグナルされることができる。
【０１７０】
[0182]いくつかの例では、１つまたは複数のシステムおよび方法はさらに、重みの所定のセットからの重みの適応選択を提供する。例えば、テンプレートベースのソリューションは、復号器に重みの選択をシグナルする必要なしに、重みの所定のセットの１つまたは複数の重みから１つまたは複数の最適重みを探索するために使用されることができる。適応重み選択は、ＬＩＣ、重み付けられた予測（ＷＰ）、または予測プロセスにおいて重みを利用する他の予測または補償技法のような、任意のテンプレートマッチングベースの動き予測または補償のために使用されることができる。
【０１７１】
[0183]例えば、重みの所定のセットが両予測動き補償の間に考慮される場合、テンプレートベースの方法は、復号器に重みの選択をシグナルする必要なしに重みの最適なセットのために探索するように利用されることができる。この方法は、ＬＩＣ有効およびＬＩＣ無効ケースの両方に適用可能であり、したがって、本明細書に説明される他の方法のいくつかまたはすべてと独立に適用されることができる。この方法および下の例は、両予測ブロックおよび／または単予測ブロックに適用されることができる。
【０１７２】
[0184]いくつかのケースでは、現在のブロックの近隣サンプルは、前に説明されたものと同様に、テンプレートとして使用されることができる。いくつかのケースでは、候補テンプレートのためのサンプルに関連付けられた１つまたは複数メトリックは、重みの所定のセットからどの重みを選択するかを決定するために使用されることができる。例えば、（現在のブロックの動き情報によって示される）１つまたは複数参照ブロックのそれらの対応するサンプルおよび現在のブロックの近隣サンプルの、絶対差の合計（ＳＡＤ）、絶対変換差の合計（ＳＡＴＤ）、および／または二乗誤差の合計（ＳＳＥ）は、テンプレートマッチングの基準として使用されることができる。この例では、テンプレートマッチングの、最も小さいＳＡＤ、ＳＡＴＤ、またはＳＳＥをもたらす重みの所定のセットからの重みが予測を生成するために生成され使用されることができる。当業者のうちの１人は、任意の他の測定値がテンプレートマッチングの基準として使用されることができることを理解できるだろう。このケースでは、１つまたは複数特定の重みパラメータのシグナリングが必要でない。
【０１７３】
[0185]いくつかのケースでは、所定のセットにおけるテンプレートマッチングのメトリック（例えば、ＳＡＤ、ＳＡＴＤ、ＳＳＥ、または同様なもの）は、重みパラメータのシグナリングのために使用されることができる。例えば、テンプレートマッチングのＳＡＤ／ＳＡＴＤ／ＳＳＥの順序は、重みパラメータのシグナリング順序を切り替えるために使用されることができる。１つの例示的な例では、重みおよび符号化器の４つのペアがどの重みのペアが使用されるかをシグナルするために必要である。最小のＳＡＤ／ＳＡＴＤ／ＳＳＥ値をもたらすペアは、「０」のコードワードを割り当てられ、２番目に最小のＳＡＤ／ＳＡＴＤ／ＳＳＥ値をもたらすペアは、「１０」のコードワードを割り当てられる。２つのペアの残りは、それぞれ「１１０」および「１１１」のコードワードを割り当てられる。
【０１７４】
[0186]図１６は、本明細書で説明される両予測ＬＩＣパラメータ導出技法のうちの１つまたは複数を使用してビデオデータを処理するプロセス１６００の例を例示するフローチャートである。１６０２で、プロセス１６００は、ビデオデータを取得することを含む。いくつかの例では、ビデオデータは、プロセス１８００が復号デバイスによって実行されるときのような、符号化されたビデオデータ（例えば、符号化されたビデオビットストリーム）を含むことができる。いくつかの例では、ビデオデータは、プロセス１８００が復号デバイスによって実行されるときのような、符号化されていないビデオデータを含むことができる。ビデオデータは、複数のピクチャを含むことができ、ピクチャは、前に説明されるように、複数のブロックに分割される。ビデオデータはさらに、動き補償を実行するために使用されることができる、ピクチャおよび／またはブロックのための動き情報を含むことができる。
【０１７５】
[0187]１６０４で、プロセス１６００は、ビデオデータのピクチャの現在のピクチャのための両予測動き補償を実行することを含む。両予測動き補償を実行することは、現在のブロックのテンプレート、第１の参照ピクチャの第１のテンプレート、および第２の参照ピクチャの第２のテンプレートを使用して現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む。１つの例示的な例では、現在のブロックは、図１４中で示される現在のブロックであることができ、現在のブロックのテンプレートは、テンプレートＮＩを含むことができ、第１の参照ピクチャは、参照ブロック１４０４を含むことができ、第１のテンプレートは、テンプレートＰ０を含むことができ、第２の参照ピクチャは、参照ブロック１４０６を含むことができ、第２のテンプレートは、テンプレートＰ１を含むことができる。
【０１７６】
[0188]いくつかの例では、第１の参照ピクチャの第１のテンプレートおよび第２の参照ピクチャの第２のテンプレートは、１つまたは複数のローカル照度補償パラメータを導出するために同時に使用される。例えば、方程式（４）中に示されるコスト関数または方程式（１０）中に示されるコスト関数（または他の適切な関数）は、同時に第１の参照ピクチャおよび第２の参照ピクチャの両方を使用して１つまたは複数ローカル輝度補償パラメータを導出するために解かれることができる（両方の参照ピクチャが同じコスト関数において使用される）。
【０１７７】
[0189]いくつかのケースでは、現在のブロックのテンプレートは、現在のブロックの１つまたは複数空間的近隣サンプルを含む。例えば、例として図１４を使用して、テンプレートＮｉは、現在のブロック１４０２に隣接しているブロックからのサンプルで構成される。このケースでは、第１のテンプレートは、第１の参照ブロックの１つまたは複数空間的近隣サンプルを含み、第２のテンプレートは、第２の参照ブロックの１つまたは複数空間的近隣サンプルを含む。例えば、例として図１４を再び使用して、テンプレートＰ０は、参照ブロック１４０４の空間的近隣サンプルを含み、テンプレートＰ１は、参照ブロック１４０６の空間的近隣サンプルを含む。
【０１７８】
[0190]いくつかの例では、現在のブロックのための１つまたは複数のローカル照度補償パラメータは、現在のブロックのテンプレートの１つまたは複数の空間的近隣サンプルを取得することによって導出されることができる。プロセス１６００は、第１の参照ピクチャの第１のテンプレートの１つまたは複数のサンプルを決定することができる。第１のテンプレートの１つまたは複数のサンプルは、第１の参照ピクチャの第１の参照ブロックの１つまたは複数の空間的近隣サンプルを含む。プロセス１６００はまた、第２の参照ピクチャの第２のテンプレートの１つまたは複数のサンプルを決定し、それは、第２の参照ピクチャの第２の参照ブロックの１つまたは複数の空間的近隣サンプルを含む。例えば、現在のブロックの動き情報（例えば、動きベクトルおよび２つの参照インデックス）は、（参照インデックスを使用して）第１および第２の参照ピクチャ、および（動きベクトルを使用して）参照ピクチャ内の第１および第２のブロックを位置付けるために使用されることができる。第１および第２の参照ブロックの１つまたは複数の空間的近隣サンプルは、その後決定されることができる。１つの例示的な例では、第１のテンプレート中に包含される第１の参照ブロックの１つまたは複数の空間的近隣サンプルは、第１の参照ブロックより上の近隣ブロックからのサンプルの１つまたは複数の行、および近隣ブロックから第１の参照ブロックの左へのサンプルの１つまたは複数の列として決定されることができる。この例では、第２のテンプレート中に包含される第２の参照ブロックの１つまたは複数の空間的近隣サンプルは、第２の参照ブロックより上の近隣ブロックからのサンプルの１つまたは複数の行、および近隣ブロックから第２の参照ブロックの左へのサンプルの１つまたは複数の列として決定されることができる。他の近隣ブロックからの行および／または列はまた、使用されることができる。
【０１７９】
[0191]１つまたは複数の照度補償パラメータは、現在のブロックの１つまたは複数の空間的近隣サンプル、第１のテンプレートの１つまたは複数のサンプル、第２のテンプレートの１つまたは複数のサンプルに基づいて現在のブロックのために導出されることができる。例えば、１つまたは複数のローカル照度補償パラメータは、オフセット、第１の重み、第２の重み、を使用してコスト関数を解くことによって導出されることができる。１つの例示的な例では、方程式（４）中に示されるコスト関数または方程式（１０）中に示されるコスト関数（または他の適切な関数）は、現在のブロックのための１つまたは複数のローカル照度補償パラメータを導出するために、現在のブロックの１つまたは複数の空間的近隣サンプル、第１のテンプレートの１つまたは複数のサンプル、および第２のテンプレートの１つまたは複数のサンプルを使用して解かれることができる。この例では、ＬＩＣプロシージャの入力は、現在のブロックの近隣サンプル、２つの参照ブロックの近隣サンプル、且つ２つの動きベクトルおよび参照インデックスを含み、それは、どの参照サンプルから来たのかを示す。
【０１８０】
[0192]いくつかのケースでは、現在のブロックのテンプレートは、現在のブロックの少なくとも１つの近隣ブロックの複数のサンプルのサブセットを含む。例えば、現在のブロックのテンプレートは、近隣ブロックからのピクセルの単一線または近隣ブロックからのピクセルの複数の線を含むことができる１つの例では、テンプレートを作り上げている近隣サンプルは、上近隣ブロック、左近隣ブロック、上近隣ブロックおよび左近隣ブロックの両方、または他の近隣ブロックからのものであることができる。現在のブロックのテンプレートが現在のブロックの上近隣ブロックおよび左近隣ブロックを含む例では、テンプレートは、上近隣ブロックからの単一行および左近隣ブロックからの単一列を含むことができる。いくつかのケースでは、現在のブロックのテンプレートは、現在のブロックの近隣ブロックからのサンプルの複数の線を含む。いくつかのケースでは、現在のブロックのテンプレートは、現在のブロックの第１の近隣ブロックからのサンプルの複数の線および現在のブロックの第２の近隣ブロックからのサンプルの複数の線を含む。いくつかのケースでは、テンプレートは、２つの近隣ブロックより多くのブロックからの近隣ブロックを含むことができる。現在のブロックのテンプレートが現在のブロックの上近隣ブロックおよび左近隣ブロックを含む例では、テンプレートは、上近隣ブロックからの２つ以上の行および左近隣ブロックの２つ以上の列を含むことができる。第１の参照ブロックの第１のテンプレートおよび第２の参照ブロックの第２のテンプレートはまた、それぞれの参照ブロックの近隣ブロックの単一行および／または列、または近隣ブロックからの複数の行および／または列を含むことができる。
【０１８１】
[0193]いくつかの例では、１つまたは複数のローカル照度補償パラメータは、１つまたは複数の重みを含む。例えば、１つまたは複数の重みは、第１の参照ピクチャに対応する第１の重みおよび第２の参照ピクチャに対応する第２の重みを含むことができる。前の例を使用して、第１の重みは、方程式（４）または方程式（１０）から、重みｗ０を含み、第２の重みは、重みｗ１を含むことができる。いくつかの例では、１つまたは複数のローカル照度補償パラメータは、オフセットを含み得る。上からの例を使用して、オフセットは、方程式（４）または方程式（１０）からのオフセットｏを含むことができる。いくつかの例では、１つまたは複数のローカル照度補償パラメータは、オフセット、第１の参照ピクチャに対応する第１の重み、および第２の参照ピクチャに対応する第２の重みを含むことができる。
【０１８２】
[0194]いくつかのインプリメンテーションでは、第１の参照ピクチャの第１のテンプレートにおける整数位置のサンプルおよび第２の参照ピクチャの第２のテンプレートにおける整数位置のサンプルは、１つまたは複数のローカル照度補償パラメータを導出するために使用される。いくつかのケースでは、第１の参照ピクチャの第１のテンプレートにおける小数位置のサンプルおよび第２の参照ピクチャの第２のテンプレートにおける小数位置のサンプルは、１つまたは複数のローカル照度補償パラメータを導出するために使用される。このケースでは、プロセス１６００は、第１の参照ピクチャの第１のテンプレートにおける小数位置のサンプルおよび第２のテンプレートにおける小数位置のサンプルを導出するために少なくとも１つの補間フィルタを使用することができる。
【０１８３】
[0195]いくつかの例では、第１および第２の参照ブロックの近隣サンプルからのあるサンプルは、１つまたは複数の照度補償パラメータを導出する際の使用から除外されることができる。例えば、プロセス１６００は、異常しきい値範囲の外側にある、第１のテンプレートまたは第２のテンプレートのうちの少なくとも１つまたは複数からの少なくとも１つのサンプルを決定することと、１つまたは複数の照度補償パラメータを導出するために使用することから少なくとも１つのサンプルを除外することとを含むことができる。例えば、前に説明されるように、異常しきい値範囲は、テンプレート中のすべての利用可能なピクセル値のサブセット、テンプレートにおけるピクセル値の平均値からのｘ標準偏差、または他の適切な範囲を含む。
【０１８４】
[0196]いくつかのケースでは、第１のテンプレートおよび第２のテンプレートのうちの１つまたは複数のサンプルからのルーマコンポーネントのみが１つまたは複数のローカル照度補償パラメータを導出するために使用される。
【０１８５】
[0196]いくつかのケースでは、第１のテンプレートおよび第２のテンプレートのうちの１つまたは複数のサンプルからの少なくとも１つのクロマコンポーネントおよびルーマコンポーネントが１つまたは複数のローカル照度補償パラメータを導出するために使用される。
【０１８６】
[0197]復号器によって実行されるとき、プロセス１６００はさらに、１つまたは複数の照度補償パラメータを使用して現在のブロックを復号することを含むことができる。符号化器または他の送信機サイドのデバイスによって実行されるとき、プロセス１６００は、符号化されたビデオビットストリーム中で１つまたは複数の照度補償パラメータをシグナリングすることを含む。
【０１８７】
[0198]いくつかの例では、重複ブロック動き補償（ＯＢＭＣ）は、ローカル照度補償が現在のブロックのために有効であるときに現在のブロックのために無効にされることができる。いくつかのケースでは、ＯＢＭＣは、ローカル照度補償がビデオデータのために有効であるとき、ビデオデータのＢタイプスライスに対して無効にされる。いくつかのケースでは、ＯＢＭＣは、ローカル照度補償がビデオデータのために有効であるとき、ビデオデータの両予測ブロックに対して無効にされる。
【０１８８】
[0199]図１７は、本明細書で説明される適応テンプレート導出技法のうちの１つまたは複数を使用してビデオデータを処理するプロセス１７００の例を例示するフローチャートである。１７０２で、プロセス１７００は、ビデオデータのピクチャの現在のブロックを取得することを備える。いくつかの例では、ビデオデータは、プロセス１８００が復号デバイスによって実行されるときのような、符号化されたビデオデータ（例えば、符号化されたビデオビットストリーム）を含むことができる。いくつかの例では、ビデオデータは、プロセス１８００が復号デバイスによって実行されるときのような、符号化されていないビデオデータを含むことができる。ビデオデータは、複数のピクチャを含むことができ、ピクチャは、前に説明されるように、複数のブロックに分割される。ビデオデータはさらに、動き補償を実行するために使用されることができる、ピクチャおよび／またはブロックのための動き情報を含むことができる。
【０１８９】
[0200]１７０４で、プロセス１７００は、現在のブロックのパラメータを決定することを含む。いくつかのケースでは、現在のブロックのパラメータは、現在のブロックのサイズを含む。１つの例示的な例では、現在のブロックのサイズは、現在のブロックの幅を含む。別の例では、現在のブロックのサイズは、現在のブロックの高さを含む。別の例では、現在のブロックをサイズは、ブロックの幅およびブロックの高さを含む。サイズはまた、ピクセルの数、エリア、または同様なもののような、任意の他の適切なサイズの測定値を含む。いくつかのケースでは、現在のブロックのパラメータは、現在のブロックのクロマフォーマットを含む。様々な例では、クロマフォーマットは、４：２：０クロマフォーマット、４：２：２クロマフォーマット、４：４：４クロマフォーマット、または他の適切なフォーマットを含むことができる。
【０１９０】
[0204]１７０６で、プロセス１７００は、現在のブロックの決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することを含む。１つの例示的な例では、パラメータがブロックの幅を含むとき、現在のブロックのテンプレート中のサンプルの行の数は、現在のブロックの幅が閾値幅より小さいときに１行である。別の例示的な例では、パラメータがブロックの幅を含むとき、現在のブロックのテンプレート中のサンプルの行の数は、現在のブロックの幅が閾値幅より大きいときに１行である。別の例示的な例では、パラメータがブロックの高さを含むとき、現在のブロックのテンプレート中のサンプルの列の数は、現在のブロックの高さが閾値高さより小さいときに１列である。別の例示的な例では、パラメータがブロックの高さを含むとき、現在のブロックのテンプレート中のサンプルの列の数は、現在のブロックの高さが閾値高さより大きいときに１列である。別の例示的な例では、パラメータがブロックのクロマフォーマットを含むとき、現在のブロックのテンプレート中のサンプルの行の数およびサンプルの列の数は、現在のブロックのクロマフォーマットが４：２：０であるとき、現在のブロックのルーマサイズの半分に設定される。別の例示的な例では、パラメータがブロックのクロマフォーマットを含むとき、現在のブロックのテンプレート中のサンプルの行の数は、現在のブロックのルーマサイズと同じサイズに設定され、現在のブロックのテンプレート中のサンプルの列の数は、現在のブロックのクロマフォーマットが４：２：２であるとき、ルーマサイズの半分に設定される。
【０１９１】
[0202]１７０８で、プロセス１７００は、現在のブロックのための動き補償を実行することを含む。動き補償を実行することは、現在のブロックのテンプレートおよび参照ピクチャのテンプレートを使用して現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む。動き補償は、単予測ブロック動き補償または両予測動き補償を含むことができる。
【０１９２】
[0203]復号器によって実行されるとき、プロセス１７００はさらに、１つまたは複数の照度補償パラメータを使用して現在のブロックを復号することを含むことができる。符号化器または他の送信機サイドのデバイスによって実行されるとき、プロセス１７００は、符号化されたビデオビットストリーム中で１つまたは複数の照度補償パラメータをシグナリングすることを含む。
【０１９３】
[0204]図１８は、本明細書で説明される適応重み選択導出技法のうちの１つまたは複数を使用してビデオデータを処理するプロセス１８００の例を例示するフローチャートである。１８０２で、プロセス１８００は、ビデオデータのピクチャの現在のブロックを取得することを備える。いくつかの例では、ビデオデータは、プロセス１８００が復号デバイスによって実行されるときのような、符号化されたビデオデータ（例えば、符号化されたビデオビットストリーム）を含むことができる。いくつかの例では、ビデオデータは、プロセス１８００が復号デバイスによって実行されるときのような、符号化されていないビデオデータを含むことができる。ビデオデータは、複数のピクチャを含むことができ、ピクチャは、前に説明されるように、複数のブロックに分割される。ビデオデータはさらに、動き補償を実行するために使用されることができる、ピクチャおよび／またはブロックのための動き情報を含むことができる。
【０１９４】
[0205]１８０４で、プロセス１８００は、テンプレートマッチングベースの動き補償のための重みの所定のセットを取得することを含む。いくつかのケースでは重みの所定のセットは、少なくとも、重みの第１のセットと重みの第２のセットとを含む。重みの所定のセットは、重みの第１のセットおよび第２のセットより多い重みのセットを含むことができる。重みは、ローカル照度補償、重み予測、またはビデオコーディングのための重みを使用する他の関数のような、推定関数または適切な任意の動き補償において使用されることができる。
【０１９５】
[0206]１８０６で、プロセス１８００は、現在のブロックの１つまたは複数の空間的近隣サンプルおよび参照フレームの１つまたは複数の空間的近隣サンプルに関連付けられた複数のメトリックを決定することを含む。例えば、複数のメトリックは、参照フレームの１つまたは複数の空間的近隣サンプルに重みの第１のセットを適用することによって第１のメトリックを決定することと、参照フレームの１つまたは複数の空間的近隣サンプルに重みの第２のセットを適用することによって第２のメトリックを決定することとによって決定されることができる。いくつかのケースでは、複数のメトリックは、現在のブロックの１つまたは複数の空間的近隣サンプルと、参照フレームの１つまたは複数の空間的近隣サンプルとの間の絶対差の合計を計算することによって決定されることができる。いくつかのケースでは、複数のメトリックは、現在のブロックの１つまたは複数の空間的近隣サンプルと、参照フレームの１つまたは複数の空間的近隣サンプルとの間の絶対変換差の合計を計算することによって決定されることができる。いくつかのケースでは、複数のメトリックは、現在のブロックの１つまたは複数の空間的近隣サンプルと、参照フレームの１つまたは複数の空間的近隣サンプルとの間の予測の二乗誤差の合計を計算することによって決定されることができる。
【０１９６】
[0207]１８０８で、プロセス１８００は、動き補償に基づくテンプレートマッチングのために使用する重みの所定のセットから重みのセットを選択することを含む。重みのセットは、複数のメトリックに基づいて決定される。例えば、重みのセットは、複数のメトリックに基づいて、第１のメトリックおよび第２のメトリックを比較することと、第２のメトリックより小さい第１のメトリックを決定することと、第２のメトリックより小さい第１のメトリックに基づいて重みの第１のセットを選択することとによって選択されることができる。第２のメトリックより小さい第１のメトリックによって示されるように、重みの第１のセットは、テンプレートマッチングベースの重み補償のための重みの所定のセットの中の最も小さいメトリックをもたらす。
【０１９７】
[0208]１８１０で、プロセス１８００は、選択された重みのセットを使用して現在のブロックのためのテンプレートマッチングベースの動き補償を実行することを含む。テンプレートマッチングベースの動き補償は、ローカル照度補償（ＬＩＣ）、重み付けされた予測（ＷＰ）、または他の適切なテンプレートマッチングベースの動き補償技法のような、任意の適切な動き補償技法を含むことができる。
【０１９８】
[0209]いくつかのケースでは、重み付けパラメータがビデオデータと共にシグナルされない。例えば、重みのセットを適応的に選択することによって、復号器がプロセスを使用して重みのセットを選択することができるので、重みパラメータを復号器にシグナルする必要がない。
【０１９９】
[0210]いくつかの例では、プロセス１６００、１７００、および１８００は、図１中に示されるシステムのような、計算デバイスまたは装置によって実行され得る。例えば、プロセス９００は、図１および図１２中に示される符号化デバイス１０４によって、別のソース側デバイスまたはビデオ送信デバイスによって、図１および図１２中に示される復号デバイス１１２によって、および／または別のクライアント側デバイス、ディスプレイ、または任意の他のクライアント側デバイスによって実行されることができる。プロセス１０００は、図１および図１２中に示される符号化デバイス１０４によって、または別のビデオソース側デバイスまたはビデオ送信デバイスによって実行されることができる。プロセス１１００は、図１および図２０中に示される復号デバイスによておよび／または図１および図１９中に示される符号化デバイス１０４によって実行されることができる。いくつかのケースでは、計算デバイスまたは装置は、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはプロセス１６００、１７００、および１８００のステップを遂行するように構成されたデバイスの他のコンポーネントを含み得る。いくつかの例では、計算デバイスまたは装置は、ビデオフレームを含むビデオデータ（例えば、ビデオシーケンス）をキャプチャするように構成されたカメラを含み得る。いくつかの例では、ビデオデータをキャプチャする他のキャプチャデバイスまたはカメラは、計算デバイスと離れており、そのケースでは、計算デバイスは、キャプチャされたビデオデータを受信または取得する。計算デバイスはさらに、ビデオデータを通信するように構成されたネットワークインターフェースを含む。ネットワークインターフェースは、インテ―ネットプロトコル（ＩＰ）ベースのデータまたはデータの他のタイプを通信するように構成され得る。いくつかの例では、計算デバイスまたは装置は、ビデオビットストリームのピクチャのサンプルのような、出力ビデオコンテンツを表示するためのディスプレイを含み得る。
【０２００】
[0211]プロセス１６００、１７００、および１８００は、論理フローチャートとして例示され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せによってインプリメントされることができる動作のシーケンスを表わす。コンピュータ命令のコンテキストでは、動作は、１つまたは複数のプロセッサによって実行されると、列挙された動作を実行する、１つまたは複数のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表わす。一般に、コンピュータ実行可能命令は、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、および特定の関数実行するか、または特定のデータタイプをインプリメントする同様のものを含む。説明される動作の順序は、限定されるように構築されるように意図されておらず、説明される動作の任意の数はプロセスをインプリメントするために、任意の順序で、および／または並列に組み合わされることができる。
【０２０１】
[0212]追加として、プロセス１６００、１７００、および１８００は、実行可能な命令と共に構築された１つまたは複数のコンピュータシステムの制御下で実行され、ハードウェアによって、１つまたは複数のプロセッサ上で集合的に、またはそれらの組合せで実行するコード（例えば、実行可能命令、１つまたは複数のコンピュータプログラム、または１つまたは複数のアプリケーション）としてインプリメントされ得る。上で注意されるように、コードは、例えば、１つまたは複数のプロ瀬在によって実行可能な複数の命令を備えるコンピュータプログラムの形成において、コンピュータ可読またはマシン可読記憶媒体上で記憶され得る。コンピュータ可読またはマシン可読記憶媒体は、非一時的であり得る。
【０２０２】
[0213]ここに論述されるコーディング技法は、実例的なビデオ符号化および復号システム（例えば、システム１００）においてインプリメントされ得る。いくつかの例では、システムは、宛先デバイスによって後の時間に復号されることになる符号化されたビデオデータを提供するソースデバイスを含む。特に、ソースデバイスは、コンピュータ可読媒体を介して宛先デバイスにビデオデータを提供する。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、または同様のものを含む、幅広い範囲のデバイスのうちの任意のものを備え得る。いくつかのケースでは、ソースデバイスおよび宛先デバイスは、ワイヤレス通信のために装備され得る。
【０２０３】
[0214]宛先デバイスは、コンピュータ可読媒体を介して復号されることになる符号化されたビデオデータを受信し得る。コンピュータ可読媒体は、ソースデバイスから宛先デバイスに符号化されたビデオデータを移動させることが可能である任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体は、ソースデバイスがリアルタイムで宛先デバイスに直接符号化されたビデオデータを送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルのような通信規格にしたがって変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線のような任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、またはインターネットのようなグローバルネットワークといった、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから宛先デバイスへの通信を容易にするのに役立ちうる任意の他の機器を含み得る。
【０２０４】
[0215]いくつかの例では、符号化されたデータは、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化されたデータは、記憶デバイスから、入力インターフェースによってアクセスされ得る。記憶デバイスは、ハードドライブ、ブルーレイディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または非揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体のような様々な分散型または局所的にアクセスされるデータ記憶媒体のうちの任意のものを含み得る。さらなる例では、記憶デバイスは、ファイルサーバ、またはソースデバイス１２によって生成された符号化されたビデオを記憶し得る別の中間記憶デバイスに対応し得る。宛先デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶するおよび符号化されたビデオデータを宛先デバイス１４に送信する能力がある任意のタイプのサーバであり得る。例となるファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む、任意の標準データ接続を通じて符号化されたビデオデータにアクセスしうる。これは、ファイルサーバに記憶された、符号化されたビデオデータにアクセスするのに適している、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ（登録商標）接続）、有線接続（例えば、ＤＳＬ、ケーブルモデム等）、またはその両方の組み合わせを含むことができる。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組み合わせであり得る。
【０２０５】
[0216]  本開示の技法は、必ずしも、ワイヤレスアプリケーション又はセッティングに制限されるわけではない。本技法は、無線テレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、ＨＴＴＰを介した動的適応型ストリーミング（ＤＡＳＨ）のようなインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他のアプリケーションのような、様々なマルチメディアアプリケーションの任意のものをサポートするビデオコード化に適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話通信のようなアプリケーションをサポートするために、一方向または二方向のビデオ送信をサポートするように構成され得る。
【０２０６】
[0217]一例では、ソースデバイスは、ビデオソース、ビデオ符号化器、および出力インターフェースを含む。宛先デバイスは、入力インターフェース、ビデオ復号器、およびディスプレイデバイスを含み得る。ソースデバイスのビデオ符号化器は、ここに開示されている技法を適用するように構成され得る。他の例では、ソースデバイス及び宛先デバイスは、他の構成要素（components）又は配置（arrangemants）を含むことができる。例えば、ソースデバイスは、外部カメラのような外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイスは、一体化されたディスプレイデバイスを含むというよりはむしろ、外部ディスプレイデバイスとインターフェースし得る。
【０２０７】
[0218]上記の実例的なシステムは単に一例に過ぎない。平行してビデオデータを処理するための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。概して、本開示の技法が、ビデオ符号化デバイスによって実行されるが、本技法はさらに、典型的に「ＣＯＤＥＣ」と呼ばれるビデオエンコーダ／デコーダによって実行され得る。更に本開示の技法はまた、ビデオプレプロセッサによっても実行され得る。ソースデバイスおよび宛先デバイスは単に、ソースデバイスが宛先デバイスへの送信のためのコード化されたビデオデータを生成するそのようなコーディングデバイスの例に過ぎない。いくつかの例では、ソースデバイスおよび宛先デバイスは、それらデバイスの各々がビデオ符号化および復号コンポーネントを含むような実質的に対称的な方法で動作し得る。故に、実例的なシステムは、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話通信のために、ビデオデバイス間の１方向または２方向ビデオ送信をサポートし得る。
【０２０８】
[0219]ビデオソースは、ビデオカメラのようなビデオキャプチャデバイス、以前にキャプチャされたビデオを包含するビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソースは、ソースビデオとしてコンピュータグラフィックスベースのデータを、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組み合わせを生成し得る。いくつかのケースでは、ビデオソースがビデオカメラである場合、ソースデバイスおよび宛先デバイスは、いわゆるカメラ電話またはビデオ電話を形成し得る。しかしながら上述されたように、本開示で説明される技法は、概してビデオコード化に適用可能であり得、ワイヤレスおよび／またはワイヤードアプリケーションに適用され得る。各ケースでは、キャプチャされた、事前にキャプチャされた、またはコンピュータ生成されたビデオは、ビデオ符号化器によって符号化され得る。符号化されたビデオ情報はその後、コンピュータ可読媒体上に出力インターフェースによって出力され得る。
【０２０９】
[0220]述べられたように、コンピュータ可読媒体は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信のような一過性媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク、もしくは他のコンピュータ可読媒体のような記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示せず）は、例えば、ネットワーク送信を介して、ソースデバイスから符号化されたビデオデータを受信し、および宛先デバイスに符号化されたビデオデータを提供し得る。同様に、ディスクスタンピング設備のような媒体製造設備のコンピューティングデバイスは、ソースデバイスから符号化されたビデオデータを受信し、および符号化されたビデオデータを包含するディスクを製造し得る。したがって、コンピュータ可読媒体は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むことが理解され得る。
【０２１０】
[0221]宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ブロックおよび他のコーディングユニット、例えば、ピクチャのグループ（ＧＯＰ：group of pictures）の特性および／または処理を記述するシンタックス要素を含む、ビデオ符号化器によって定義されるシンタックス情報を含み得、それはまた、ビデオ復号器によって使用される。ディスプレイデバイスは、ユーザに復号されたビデオデータを表示し、およびブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスのような多様なディスプレイデバイスのうちの任意のものを備え得る。本発明の様々な実施形態が、説明されてきた。
【０２１１】
[0222]符号化デバイス１０４および復号デバイス１１２の特定の詳細は、それぞれ図１９および図２０に示されている。図１９は、この開示において説明される技法のうちの１つまたは複数をインプリメントしうる実例的な符号化デバイス１０４を例示するブロック図である。符号化デバイス１０４は、例えば、ここに説明されるシンタックス構造（例えば、ＶＰＳ、ＳＰＳ、ＰＰＳ、または他のシンタックス要素のシンタックス構造）を生成し得る。符号化デバイス１０４は、ビデオスライス内のビデオブロックのイントラ予測およびインター予測コーディングを実行し得る。前述されたように、イントラコーディングは、所与のビデオフレームまたはピクチャ内の空間的冗長性を低減または取り除くために空間的予測に少なくとも部分的に依拠する。インターコーディングは、ビデオシーケンスの隣接または周囲フレーム内の時間的冗長性を低減または取り除くために時間的予測に少なくとも部分的に依拠する。イントラモード（Ｉモード）は、いくつかの空間的ベースの圧縮モードのうちの任意のものを指し得る。単方向予測（Ｐモード）又は双方向予測（Ｂモード）のようなインターモードは、いくつかの時間的ベースの圧縮モードのうちの任意のものを指し得る。
【０２１２】
[0223]符号化デバイス１０４は、区分化ユニット３５、予測処理ユニット４１、フィルタユニット６３、ピクチャメモリ６４、加算器５０、変換処理ユニット５２、量子化ユニット５４、およびエントロピー符号化ユニット５６を含む。予測処理ユニット４１は、動き推定ユニット４２、動き補償ユニット４４、およびイントラ予測処理ユニット４６を含む。ビデオブロック再構築のために、符号化デバイス１０４はまた、逆量子化ユニット５８、逆変換処理ユニット６０、および加算器６２を含む。フィルタユニット６３は、デブロッキングフィルタ、適応ループフィルタ（ＡＬＦ）、およびサンプル適応オフセット（ＳＡＯ）フィルタのような１つまたは複数のループフィルタを表すことを意図されている。フィルタユニット６３はインループフィルタとして図１９に示されているが、他の構成では、フィルタユニット６３は、ポストループフィルタとしてインプリメントされ得る。後処理デバイス（A post processing device）５７は、符号化デバイス１０４によって生成される符号化されたビデオデータに対して追加の処理を実行し得る。この開示の技法は、いくつかの事例では、符号化デバイス１０４によってインプリメントされ得る。他の事例では、しかしながら、この開示の技法のうちの１つまたは複数は、後処理デバイス５７によってインプリメントされ得る。
【０２１３】
[0224]図１９に示されているように、符号化デバイス１０４は、ビデオデータを受信し、および区分化ユニット３５は、データをビデオブロックへと区分化する。その区分化はまた、スライス、スライスセグメント、タイル、または他のより大きなユニットへの区分化、ならびに、例えば、ＬＣＵおよびＣＵの四分木構造にしたがったビデオブロック区分化を含み得る。符号化デバイス１０４は概して、符号化されることになるビデオスライス内のビデオブロックを符号化するコンポーネントを例示している。スライスは、複数のビデオブロック（そして、場合によっては、タイルと称されるビデオブロックのセット）へと分割され得る。予測処理ユニット４１は、誤差結果（例えば、コーディングレートおよび歪みのレベル、または同様のもの）に基づいて、現在のビデオブロックに対して、複数のイントラ予測コーディングモードのうちの１つまたは複数のインター予測コーディングモードのうちの１つのような複数の可能なコーディングモードのうちの１つを選択し得る。予測処理ユニット４１は、結果として生じるイントラ又はインターコード化されたブロックを、残差ブロックデータを生成するために加算器５０に、参照ピクチャとしての使用のための符号化されたブロックを再構築するために加算器６２に提供し得る。
【０２１４】
[0225]予測処理ユニット４１内のイントラ予測処理ユニット４６は、空間的圧縮を提供するためにコード化されるべき現在のブロックと同じフレームまたはスライスにおける１つまたは複数の近隣ブロックに関連して現在のビデオブロックのイントラ予測コード化を実行することができる。予測処理ユニット４１内の動き推定ユニット４２及び動き補償ユニット４４は、時間的圧縮を提供するために、１つ又は複数の参照ピクチャ内の１つ又は複数の予測ブロックに対して、現在のビデオブロックのインター予測コード化を実行する。
【０２１５】
[0226]動き推定ユニット４２は、ビデオシーケンスについての所定のパターンに従って、ビデオスライスに対するインター予測モードを決定するように構成され得る。所定のパターンは、Ｐスライス、Ｂスライス、またはＧＰＢスライスとしてシーケンスにおけるビデオスライスを指定することができる。動き推定ユニット４２及び動き補償ユニット４４は、高度に統合され得るが、概念的な目的のために別個に例示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックについての動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内のビデオブロックの予測ユニット（ＰＵ）の変位を示し得る。
【０２１６】
[0227]予測ブロックは、画素差の観点から、コード化されることとなるビデオブロックのＰＵに厳密に一致すると認められるブロックであり、これは、差分絶対値和（ＳＡＤ）、差分二乗和（ＳＳＤ）、又は他の差分メトリックによって決定され得る。いくつかの例では、符号化デバイス１０４は、ピクチャメモリ６４中に記憶された参照ピクチャのサブ整数ピクセル位置についての値を算出し得る。例えば、符号化デバイス１０４は、参照ピクチャの４分の１ピクセル位置、８分の１ピクセル位置、または他の分数ピクセル位置の値を補間し得る。従って、動き推定ユニット４２は、全画素位置及び分数画素位置に対して、動き探索を実行し、分数画素精度で動きベクトルを出力し得る。
【０２１７】
[0228]動き推定ユニット４２は、ＰＵの位置と参照ピクチャの予測ブロックの位置とを比較することで、インターコード化されたスライス内のビデオブロックのＰＵについての動きベクトルを算出する。参照ピクチャは、各々が参照ピクチャメモリ６４に記憶された１つ又は複数の参照ピクチャを識別する第１の参照ピクチャリスト（リスト０）又は第２の参照ピクチャリスト（リスト１）から選択され得る。動き推定ユニット４２は、算出された動きベクトルを、エントロピー符号化ユニット５６及び動き補償ユニット４４に送る。
【０２１８】
[0229]動き補償ユニット４４によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて、予測ブロックをフェッチすること又は生成ことを伴い得、場合によっては、サブ画素精度への補間を実行する。現在のビデオブロックのＰＵについての動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリスト中に、動きベクトルが指し示す予測ブロックを位置付け得る。符号化デバイス１０４は、コーディングされる現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することによって残差ビデオブロックを形成し、ピクセル差分値を形成する。画素差分値は、このブロックについての残差データを形成し、輝度及び彩度の両方の差分成分を含み得る。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際に復号デバイス１１２によって使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成し得る。
【０２１９】
[0230]イントラ予測処理ユニット４６は、上記に説明されるように、動き推定ユニット４２および動き補償ユニット４４によって実行されるインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測処理ユニット４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定することができる。いくつかの例では、イントラ予測処理ユニット４６は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、およびイントラ予測ユニット処理４６は、テストされたモードから使用するための適切なイントラ予測モードを選択し得る。例えば、イントラ予測処理ユニット４６は、様々なテストされたイントラ予測モードについてのレート歪み分析を使用してレート歪み値を算出し得、およびテストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択し得る。レート歪み分析は概して、符号化されたブロックを作り出すために使用されるビットレート（つまり、ビットの数）に加えて、符号化されたブロックと、符号化されたブロックを作り出すために符号化された元の符号化されていないブロックとの間の歪み（または誤り）の量を決定することができる。イントラ予測処理ユニット４６は、どのイントラ予測モードがそのブロックに関する最良のレート歪み値を示すかを決定するために、歪みの割合及び様々な符号化されたブロックについての変化量を計算し得る。
【０２２０】
[0231]いずれのケースでも、ブロックのためのイントラ予測モードを選択した後で、イントラ予測処理ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に提供することができる。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化し得る。符号化デバイス１０４は、様々なブロックについての符号化コンテキストの定義、ならびに最確（ｍｏｓｔ  ｐｒｏｂａｂｌｅ）イントラ予測モードのインジケーション、イントラ予測モードインデックステーブル、およびコンテキストの各々に対して使用するための修正されたイントラ予測モードインデックステーブルを、送信されたビットストリーム構成データ中に含め得る。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルと、複数の修正されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）とを含み得る。
【０２２１】
[0232]予測処理ユニット４１がインター予測またはイントラ予測のいずれかを介して現在のビデオブロックについての予測ブロックを生成した後に、符号化デバイス１０４は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、１つ又は複数のＴＵに含まれ、変換処理ユニット５２に適用され得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）のような変換又は概念上同様の変換を使用して、残差ビデオデータを残差変換係数へと変換する。変換処理ユニット５２は、残差ビデオデータを画素ドメインから周波数ドメインのような変換ドメインに変換し得る。
【０２２２】
[0233]変換処理ユニット５２は、結果として生じる変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートを更に低減するために、変換係数を量子化する。量子化プロセスは、係数のうちの一部または全部に関連付けられたビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することで修正され得る。いくつかの例では、次に、量子化ユニット５４は、量子化された変換係数を含む行列のスキャンを実行し得る。代替的に、エントロピー符号化ユニット５６がスキャンを実行し得る。
【０２２３】
[0234]量子化に続いて、エントロピー符号化ユニット５６は、量子化された変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コード化（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ）、シンタックスベースのコンテキスト適応型バイナリ算術コード化（ＳＢＡＣ）、確率間隔区分化エントロピー（ＰＩＰＥ：probability interval partitioning entropy）コード化、又は別のエントロピーコード化技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化に続いて、符号化されたビットストリームは、復号デバイス１１２に送信されうるか、または復号デバイス１１２による後の送信または取り出しのためにアーカイブされ得る。エントロピー符号化ユニット５６はまた、コード化されている現在のビデオスライスについての動きベクトル及び他のシンタックス要素をエントロピー符号化し得る。
【０２２４】
[0235]逆量子化ユニット５８及び逆変換処理ユニット６０は、参照ピクチャの参照ブロックとしての後の使用のために、画素ドメイン内において残差ブロックを再構築するために、それぞれ逆量子化及び逆変換を適用する。動き補償ユニット４４は、参照ピクチャリスト内の参照ピクチャのうちの１つの予測ブロックに残差ブロックを追加することによって、参照ブロックを算出し得る。動き補償ユニット４４はまた、再構築された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定で用いるサブ整数画素値を算出し得る。加算器６２は、ピクチャメモリ６４中での記憶のための参照ブロックを作り出すために、動き補償ユニット４４によって作り出された動き補償予測ブロックに再構築された残差ブロックを追加する。参照ブロックは、後続のビデオフレーム又はピクチャにおいてブロックをインター予測するために、動き推定ユニット４２及び動き補償ユニット４４によって参照ブロックとして使用され得る。
【０２２５】
[0236]この方法では、図１９の符号化デバイス１０４は、ＬＩＣパラメータを導出することと、テンプレートのサイズを適応的に決定することと、および／または重みを適応的に選択することとを行うように降雨性されたビデオ得符号化器の例を表わす。符号化デバイス１０４は、例えば、ＬＩＣパラメータを導出し得、テンプレートのサイズを適応的に決定し得、および／または上で説明されたような重みセットを適応的に選択し得る。例えば、符号化デバイスは、図１６、１７、および図１８に関して上述されたプロセスを含む、本明細書で説明される技法のうちの任意のものを実行しうる。いくつかのケースでは、本開示の技法のうちのいくつかはまた、後処理デバイス５７によってインプリメントされ得る。
【０２２６】
[0237]図２０は、実例的な復号デバイス１１２を例示するブロック図である。復号デバイス１１２は、エントロピー復号ユニット８０、予測処理ユニット８１、逆量子化ユニット８６、逆変換処理ユニット８８、加算器９０、フィルタユニット９１、およびピクチャメモリ９２を含む。予測処理ユニット８１は、動き補償ユニット８２およびイントラ予測処理ユニット８４を含む。復号デバイス１１２は、いくつかの例では、図２０からの符号化デバイス１０４に関して説明された符号化パスとは概して相反する復号パスを実行し得る。
【０２２７】
[0238]復号プロセス中に、復号デバイス１１２は、符号化デバイス１０４によって送られる符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。いくつかの実施形態では、復号デバイス１１２は、符号化デバイス１０４から符号化されたビデオビットストリームを受信し得る。いくつかの実施形態では、復号デバイス１１２は、サーバ、媒体認識ネットワーク要素（ＭＡＮＥ：a media-aware network element）、ビデオエディタ／スプライサ、または上述された技法のうちの１つまたは複数をインプリメントするように構成された他のそのようなデバイスのようなネットワークエンティティ７９から符号化されたビデオビットストリームを受信し得る。ネットワークエンティティ７９は、符号化デバイス１０４を含むことも含まないこともあり得る。この開示において説明される技法のうちのいくつかは、ネットワークエンティティ７９が復号デバイス１１２に符号化されたビデオビットストリームを送信するより前にネットワークエンティティ７９によってインプリメントされ得る。いくつかのビデオ復号システムでは、ネットワークエンティティ７９および復号デバイス１１２は、別個のデバイスの一部でありうるが、その一方で、他の事例では、ネットワークエンティティ７９に関して説明される機能は、復号デバイス１１２を備える同じデバイスによって実行され得る。
【０２２８】
[0239]復号デバイス１１２のエントロピー復号ユニット８０は、量子化された係数、動きベクトル、および他のシンタックス要素を生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、動きベクトル及び他のシンタックス要素を予測処理ユニット８１に転送する。復号デバイス１１２は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。エントロピー復号ユニット８０は、ＶＰＳ、ＳＰＳ、およびＰＰＳのような、または複数のパラメータセット中の固定長シンタックス要素と可変長シンタックス要素との両方を処理および構文解析し得る。
【０２２９】
[0240]ビデオスライスがイントラコード化された（Ｉ）スライスとしてコード化されるとき、予測処理ユニット８１のイントラ予測処理ユニット８４は、現在のフレームまたはピクチャの以前に復号されたブロックからの信号伝達されたイントラ予測モードおよびデータに基づいて現在のビデオスライスのビデオブロックに関する予測データを生成することができる。ビデオフレームがインターコーディングされた（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックについての予測ブロックを作り出す。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの１つから作り出され得る。復号デバイス１１２は、ピクチャメモリ９２中に記憶された参照ピクチャに基づいて、デフォルト構築技法を使用して参照フレームリスト、リスト０およびリスト１を構築し得る。
【０２３０】
[0241]動き補償ユニット８２は、動きベクトル及び他のシンタックス要素を解析することによって現在のビデオスライスのビデオブロックに関する予測情報を決定し、復号されている現在のビデオブロックに関する予測ブロックを作り出すためにその予測情報を使用する。例えば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（例えば、イントラまたはインター予測）と、インター予測スライスタイプ（例えば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスについての１つまたは複数の参照ピクチャリストについての構築情報と、スライスの各インター符号化されたビデオブロックについての動きベクトルと、スライスの各インターコーディングされたビデオブロックについてのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、パラメータセット中の１つまたは複数のシンタックス要素を使用し得る。
【０２３１】
[0242]動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８２は、参照ブロックのサブ整数ピクセルについての補間された値を算出するためにビデオブロックの符号化中に、符号化デバイス１０４によって使用されるような補間フィルタを使用し得る。このケースでは、動き補償ユニット８２は、受信されたシンタックス要素から符号化デバイス１０４によって使用される補間フィルタを決定しえ、および予測ブロックを作り出すために補間フィルタを使用し得る。
【０２３２】
[0243]逆量子化ユニット８６は、ビットストリーム中で提供され、且つエントロピー復号ユニット８０によって復号された、量子化された変換係数を逆量子化（inverse quantizes）、すなわち逆量子化（de-quantizes）する。逆量子化プロセスは、量子化の度合い、および同様に、適用されるべき逆量子化の度合いを決定するために、ビデオスライス中の各ビデオブロックについて符号化デバイス１０４によって算出される量子化パラメータの使用を含み得る。逆変換処理ユニット８８は、ピクセルドメイン中に残差ブロックを作り出すために、変換係数に逆変換（例えば、逆ＤＣＴまたは他の適した逆変換）、逆整数変換、あるいは概念的に同様の逆変換プロセスを適用する。
【０２３３】
[0244]動き補償ユニット８２が動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックについての予測ブロックを生成した後に、復号デバイス１１２は、逆変換処理ユニット８８からの残差ブロックを、動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つ又は複数の構成要素を表す。所望される場合、（コーディングループ中またはコーディングループ後のいずれかの）ループフィルタはまた、ピクセル遷移を平滑化にするために、またはそうでない場合にはビデオ品質を改善するために使用され得る。フィルタユニット９１は、デブロッキングフィルタ、適応ループフィルタ（ＡＬＦ）、およびサンプル適応オフセット（ＳＡＯ）フィルタのような１つまたは複数のループフィルタを表すことを意図されている。フィルタユニット９１はインループフィルタとして図１７に示されているが、他の構成では、フィルタユニット９１は、ポストループフィルタとしてインプリメントされ得る。所与のフレームまたはピクチャ中の復号されたビデオブロックはその後、ピクチャメモリ９２中に記憶され、それは、後続する動き補償のために使用される参照ピクチャを記憶する。ピクチャメモリ９２はまた、図１に示されているビデオ宛先デバイス１２２のようなディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する。
【０２３４】
[0245]この方法では、図２０の符号化デバイス１１２は、ＬＩＣパラメータを導出することと、テンプレートのサイズを適応的に決定することと、および／または重みを適応的に選択することとを行うように降雨性されたビデオ得符号化器の例を表わす。符号化デバイス１１２は、例えば、ＬＩＣパラメータを導出し得、テンプレートのサイズを適応的に決定し得、および／または上で説明されたような重みセットを適応的に選択し得る。例えば、復号デバイス１１２は、図１６、１７、および図１８に関して上述されたプロセスを含む、本明細書で説明される技法のうちの任意のものを実行しうる。
【０２３５】
[0246]前述の説明では、本願の態様は、その特定の実施形態に関して説明されているが、当業者は、本発明はそれに限定されないと認識するであろう。このことから、本願の例示的な実施形態がここに詳細に説明されてきたが、発明の概念は、他の方法で様々に具現化および用いられえ、および添付された特許請求の範囲は、先行技術によって限定される場合を除いて、そのような様々な変形を含むように解釈されることを意図されていることが理解されるべきである。上述された本発明の様々な特徴および態様は、個々にまたは一緒に使用され得る。さらに、実施形態は、本明細書のより広い精神および範囲から逸脱することなしに、本明細書に説明されたものを超えたあらゆる数の環境および適用において利用されることができる。本明細書および図面は、それ故に、制限的というよりはむしろ例示的であると見なされるべきである。例示を目的として、方法は、特定の順序で説明された。代替の実施形態では、方法は、説明されたものとは異なる順序で遂行されうることが認識されるべきである。
【０２３６】
[0247]コンポーネントがある特定の動作を実行する「ように構成される」ものとして説明される場合、そのような構成は、例えば、動作を実行するように電子回路または他のハードウェアを設計することによって、動作を実行するようにプログラマブル電子回路（例えば、マイクロプロセッサ、または他の適した電子回路）をプログラミングすることによって、またはそれらの任意の組み合わせで、達成されることができる。
【０２３７】
[0248]本明細書に開示されている実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組み合わせとしてインプリメントされ得る。ハードウェアとソフトウェアとのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、それらの機能の観点から概して上で説明されてきた。このような機能性がハードウェアとして実施されるかソフトウェアとして実施されるかは、特定のアプリケーション及びシステム全体に課せられる設計制約に依存する。当業者は、特定のアプリケーションごとに、説明された機能性を多様な方法で実装できるが、このような実装の判断は本発明の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
【０２３８】
[0249]本明細書に説明された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいてインプリメントされ得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおけるアプリケーションを含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。モジュールまたはコンポーネントとして説明されたどの特徴も、集積ロジックデバイスにおいてともに、またはディスクリートではあるが相互動作可能なロジックデバイスとして別個に、インプリメントされ得る。ソフトウェアで実施される場合、この技法は、少なくとも部分的に、命令を含むプログラムコードを備えるコンピュータ読取可能なデータ記憶媒体によって実現され得、これらの命令は、実行されると、上述した方法のうちの１つ又は複数を実行する。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０２３９】
[0250]プログラムコードは、１つ又は複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、又は他の同等の集積回路又はディスクリート論理回路のような１つ又は複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で記述された技法のうちの任意のものを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰと、１つのマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアに連結した１つ又は複数のマイクロプロセッサ又は任意の他のそのような構成との組み合わせとして実現され得る。従って、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明された技法の実装に適切な任意の他の構造または装置のいずれかを指し得る。加えて、いくつかの態様では、ここに説明された機能は、符号化および復号のために構成された専用ソフトウェアモジュールまたはハードウェアモジュール内で提供されうるか、あるいは組み合わされたビデオ符号化器−復号器（ＣＯＤＥＣ）中に組み込まれうる。
【図１】
2019531029.tif 000020
【図２Ａ】
2019531029.tif 000021
【図２Ｂ】
2019531029.tif 000022
【図３Ａ】
2019531029.tif 000023
【図３Ｂ】
2019531029.tif 000024
【図４Ａ】
2019531029.tif 000025
【図４Ｂ】
2019531029.tif 000026
【図５】
2019531029.tif 000027
【図６】
2019531029.tif 000028
【図７Ａ】
2019531029.tif 000029
【図７Ｂ】
2019531029.tif 000030
【図８Ａ】
2019531029.tif 000031
【図８Ｂ】
2019531029.tif 000032
【図９】
2019531029.tif 000033
【図１０】
2019531029.tif 000034
【図１１Ａ】
2019531029.tif 000035
【図１１Ｂ】
2019531029.tif 000036
【図１２】
2019531029.tif 000037
【図１３】
2019531029.tif 000038
【図１４】
2019531029.tif 000039
【図１５】
2019531029.tif 000040
【図１６】
2019531029.tif 000041
【図１７】
2019531029.tif 000042
【図１８】
2019531029.tif 000043
【図１９】
2019531029.tif 000044
【図２０】
2019531029.tif 000045
【手続補正書】
【提出日】令和1年6月17日(2019.6.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、
前記ビデオデータのピクチャの現在のブロックを取得することと、
前記現在のブロックのサイズを決定すること、前記現在のブロックの前記サイズは、少なくとも前記現在のブロックの幅を含む、と、
前記現在のブロックの前記決定されたサイズに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定すること、ここにおいて、前記現在のブロックのテンプレート中の前記サンプルの行の数は、前記現在のブロックの前記幅が閾値幅より大きいときに１行より大きくなる、と、
前記現在のブロックのための動き補償を実行すること、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を備える、方法。
【請求項２】
前記現在のブロックの前記テンプレート中のサンプルの前記行の数は、前記現在のブロックの前記幅が閾値幅より小さいときに１行である、
請求項１に記載の方法。
【請求項３】
前記現在のブロックを前記サイズは、前記現在のブロックの高さをさらに含む、
請求項１に記載の方法。
【請求項４】
前記現在のブロックのテンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより小さいときに１列である、
請求項３に記載の方法。
【請求項５】
前記現在のブロックの前記テンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより大きいときに１列より大きくなる、
請求項３に記載の方法。
【請求項６】
前記現在のブロックを前記サイズは、前記ブロックの幅および前記ブロックの高さを含む、
請求項１に記載の方法。
【請求項７】
前記ビデオデータの追加のピクチャの追加のブロックを取得することと、
前記追加のブロックのクロマフォーマットを決定することと、
前記追加のブロックの追加のテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と前記追加のブロックの前記決定されたクロマフォーマットに基づいて、追加の参照ピクチャの追加のテンプレート中のサンプルの行の列またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することと、
前記追加のブロックのための動き補償を実行すること、ここにおいて、前記追加のブロックのための前記動き補償は、前記追加のブロックの前記追加のテンプレートおよび前記追加の参照ピクチャの前記追加のテンプレートを使用して前記追加のブロックのための１つまたは複数のローカル照度補償パラメータを導出することを含む、と、
をさらに備える、請求項１に記載の方法。
【請求項８】
前記追加のブロックの前記追加のテンプレート中の前記サンプルの行の数および前記サンプルの列の数は、前記追加のブロックの前記クロマフォーマットが４：２：０であるとき前記追加のブロックのルーマサイズの半分に設定される、
請求項７に記載の方法。
【請求項９】
前記追加のブロックの前記追加のテンプレート中の前記サンプルの行の数は、前記追加のブロックのルーマサイズと同じサイズに設定され、前記追加のブロックの前記追加のテンプレート中の前記サンプルの列の数は、前記追加のブロックの前記クロマフォーマットが４：２：２であるとき前記ルーマサイズの半分に設定される、
請求項７に記載の方法。
【請求項１０】
前記１つまたは複数の照度補償パラメータを使用して前記現在のブロックを復号することをさらに備える、
請求項１に記載の方法。
【請求項１１】
符号かされたビデオビットストリーム中で、前記１つまたは複数の照度補償パラメータをシグナリングすることをさらに備える、
請求項１に記載の方法。
【請求項１２】
装置であって、
ビデオデータを記憶するように構成されたメモリと、
プロセッサと
を備え、前記プロセッサは、
前記ビデオデータのピクチャの現在のブロックを取得することと、
前記現在のブロックのサイズを決定すること、前記現在のブロックの前記サイズは、少なくとも前記現在のブロックの幅を含む、と、
前記現在のブロックの前記決定されたサイズに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定すること、ここにおいて、前記現在のブロックのテンプレート中の前記サンプルの行の数は、前記現在のブロックの前記幅が閾値幅より大きいときに１行より大きくなる、と、
前記現在のブロックのための動き補償を実行すること、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を行うように構成される、装置。
【請求項１３】
前記現在のブロックの前記テンプレート中のサンプルの前記行の数は、前記現在のブロックの前記幅が閾値幅より小さいときに１行である、
請求項１２に記載の装置。
【請求項１４】
前記現在のブロックを前記サイズは、前記現在のブロックの高さをさらに含む、
請求項１２に記載の装置。
【請求項１５】
前記現在のブロックの前記テンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより小さいときに１列である、
請求項１４に記載の装置。
【請求項１６】
前記現在のブロックのテンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより大きいときに１列より大きくなる、
請求項１４に記載の装置。
【請求項１７】
前記現在のブロックを前記サイズは、前記ブロックの幅および前記ブロックの高さを含む、
請求項１２に記載の装置。
【請求項１８】
前記プロセッサは、
前記ビデオデータの追加のピクチャの追加のブロックを取得することと、
前記追加のブロックのクロマフォーマットを決定することと、
前記追加のブロックの追加のテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と前記追加のブロックの前記決定されたクロマフォーマットに基づく追加の参照ピクチャの追加のテンプレート中のサンプルの行の列またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することと、
前記追加のブロックのための動き補償を実行すること、ここにおいて、前記追加のブロックのための前記動き補償は、前記追加のブロックの前記追加のテンプレートおよび前記追加の参照ピクチャの前記追加のテンプレートを使用して前記追加のブロックのための１つまたは複数のローカル照度補償パラメータを導出することを含む、と、
を行うようにさらに構成される、請求項１２に記載の装置。
【請求項１９】
前記追加のブロックの前記追加のテンプレート中の前記サンプルの行の数および前記サンプルの列の数は、前記追加のブロックの前記クロマフォーマットが４：２：０であるとき前記追加のブロックのルーマサイズの半分に設定される、
請求項１８に記載の装置。
【請求項２０】
前記追加のブロックの前記追加のテンプレート中の前記サンプルの行の数は、前記追加のブロックのルーマサイズと同じサイズに設定され、前記追加のブロックの前記追加のテンプレート中の前記サンプルの列の数は、前記追加のブロックの前記クロマフォーマットが４：２：２であるとき前記ルーマサイズの半分に設定される、
請求項１８に記載の装置。
【請求項２１】
前記ビデオデータを表示するためのディスプレイ
をさらに備える、請求項１２に記載の装置。
【請求項２２】
前記装置は、ピクチャをキャプチャするためのカメラを有するモバイルデバイスを備える、
請求項１２に記載の装置。
【請求項２３】
１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
ビデオデータのピクチャの現在のブロックを取得することと、
前記現在のブロックのサイズを決定すること、前記現在のブロックの前記サイズは、少なくとも前記現在のブロックの幅を含む、と、
前記現在のブロックの前記決定されたサイズに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定すること、ここにおいて、前記現在のブロックのテンプレート中の前記サンプルの行の数は、前記現在のブロックの前記幅が閾値幅より大きいときに１行より大きくなる、と、
前記現在のブロックのための動き補償を実行すること、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を行わせる命令を有する、非一時的コンピュータ可読媒体。
【請求項２４】
ビデオデータを処理するための装置であって、
前記ビデオデータの現在ピクチャの現在のブロックを取得するための手段と、
前記現在のブロックのサイズを決定するための手段、前記現在のブロックの前記サイズは、少なくとも前記現在のブロックの幅を含む、と、
前記現在のブロックの前記決定されたサイズに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定するための手段、ここにおいて、前記現在のブロックのテンプレート中の前記サンプルの行の数は、前記現在のブロックの前記幅が閾値幅より大きいときに１行より大きくなる、と、
前記現在のブロックのための動き補償を実行するための手段、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を備える、装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２３９
【補正方法】変更
【補正の内容】
【０２３９】
[0250]プログラムコードは、１つ又は複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、又は他の同等の集積回路又はディスクリート論理回路のような１つ又は複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で記述された技法のうちの任意のものを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰと、１つのマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアに連結した１つ又は複数のマイクロプロセッサ又は任意の他のそのような構成との組み合わせとして実現され得る。従って、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明された技法の実装に適切な任意の他の構造または装置のいずれかを指し得る。加えて、いくつかの態様では、ここに説明された機能は、符号化および復号のために構成された専用ソフトウェアモジュールまたはハードウェアモジュール内で提供されうるか、あるいは組み合わされたビデオ符号化器−復号器（ＣＯＤＥＣ）中に組み込まれうる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを処理する方法であって、
前記ビデオデータのピクチャの現在のブロックを取得することと、
前記現在のブロックのパラメータを決定することと、
前記現在のブロックの前記決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することと、
前記現在のブロックのための動き補償を実行すること、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を備える、方法。
［Ｃ２］
前記現在のブロックを前記パラメータは、前記現在のブロックのサイズを含む、
［Ｃ１］に記載の方法。
［Ｃ３］
前記現在のブロックを前記サイズは、前記現在のブロックの幅を含む、
［Ｃ２］に記載の方法。
［Ｃ４］
前記現在のブロックの前記テンプレート中のサンプルの前記行の数は、前記現在のブロックの前記幅が閾値幅より小さいときに１行である、
［Ｃ３］に記載の方法。
［Ｃ５］
前記現在のブロックの前記テンプレート中のサンプルの前記行の数は、前記現在のブロックの前記幅が閾値幅より大きいときに１行より多くなる、
［Ｃ３］に記載の方法。
［Ｃ６］
前記現在のブロックを前記サイズは、前記現在のブロックの高さを含む、
［Ｃ２］に記載の方法。
［Ｃ７］
前記現在のブロックのテンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより小さいときに１列である、
［Ｃ６］に記載の方法。
［Ｃ８］
前記現在のブロックの前記テンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより大きいときに１列より多くなる、
［Ｃ６］に記載の方法。
［Ｃ９］
前記現在のブロックを前記サイズは、前記ブロックの幅および前記ブロックの高さを含む、
［Ｃ２］に記載の方法。
［Ｃ１０］
前記現在のブロックを前記パラメータは、前記現在のブロックのクロマフォーマットを含む、
［Ｃ１］に記載の方法。
［Ｃ１１］
前記現在のブロックの前記テンプレート中の前記サンプルの行の数および前記サンプルの列の数は、前記現在のブロックの前記クロマフォーマットが４：２：０であるとき前記現在のブロックのルーマサイズの半分に設定される、
［Ｃ１０］に記載の方法。
［Ｃ１２］
前記現在のブロックの前記テンプレート中の前記サンプルの行の数は、前記現在のブロックのルーマサイズと同じサイズに設定され、前記現在のブロックの前記テンプレート中の前記サンプルの列の数は、前記現在のブロックの前記クロマフォーマットが４：２：２であるとき前記ルーマサイズの半分に設定される、
［Ｃ１０］に記載の方法。
［Ｃ１３］
前記１つまたは複数の照度補償パラメータを使用して前記現在のブロックを復号することをさらに備える、
［Ｃ１］に記載の方法。
［Ｃ１４］
符号かされたビデオビットストリーム中で、前記１つまたは複数の照度補償パラメータをシグナリングすることをさらに備える、
［Ｃ１］に記載の方法。
［Ｃ１５］
装置であって、
ビデオデータを記憶するように構成されたメモリと、
プロセッサと
を備え、前記プロセッサは、
前記ビデオデータのピクチャの現在のブロックを取得することと、
前記現在のブロックのパラメータを決定することと、
前記現在のブロックの前記決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することと、
前記現在のブロックのための動き補償を実行すること、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を行うように構成される、装置。
［Ｃ１６］
前記現在のブロックを前記パラメータは、前記現在のブロックのサイズを含む、
［Ｃ１５］に記載の装置。
［Ｃ１７］
前記現在のブロックを前記サイズは、前記現在のブロックの幅を含む、
［Ｃ１６］に記載の装置。
［Ｃ１８］
前記現在のブロックの前記テンプレート中のサンプルの前記行の数は、前記現在のブロックの前記幅が閾値幅より小さいときに１行である、
［Ｃ１７］に記載の装置。
［Ｃ１９］
前記現在のブロックの前記テンプレート中のサンプルの前記行の数は、前記現在のブロックの前記幅が閾値幅より大きいときに１行より多くなる、
［Ｃ１７］に記載の装置。
［Ｃ２０］
前記現在のブロックを前記サイズは、前記現在のブロックの高さを含む、
［Ｃ１６］に記載の装置。
［Ｃ２１］
前記現在のブロックの前記テンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより小さいときに１列である、
［Ｃ２０］に記載の装置。
［Ｃ２２］
前記現在のブロックのテンプレート中のサンプルの前記列の数は、前記現在のブロックの前記高さが閾値高さより大きいときに１列より多くなる、
［Ｃ２０］に記載の装置。
［Ｃ２３］
前記現在のブロックを前記サイズは、前記ブロックの幅および前記ブロックの高さを含む、
［Ｃ１６］に記載の装置。
［Ｃ２４］
前記現在のブロックを前記パラメータは、前記現在のブロックのクロマフォーマットを含む、
［Ｃ１５］に記載の装置。
［Ｃ２５］
前記現在のブロックの前記テンプレート中の前記サンプルの行の数および前記サンプルの列の数は、前記現在のブロックの前記クロマフォーマットが４：２：０であるとき前記現在のブロックのルーマサイズの半分に設定される、
［Ｃ２４］に記載の装置。
［Ｃ２６］
前記現在のブロックの前記テンプレート中の前記サンプルの行の数は、前記現在のブロックのルーマサイズと同じサイズに設定され、前記現在のブロックの前記テンプレート中の前記サンプルの列の数は、前記現在のブロックの前記クロマフォーマットが４：２：２であるとき前記ルーマサイズの半分に設定される、
［Ｃ２４］に記載の装置。
［Ｃ２７］
前記ビデオデータを表示するためのディスプレイ
をさらに備える、［Ｃ１５］に記載の装置。
［Ｃ２８］
前記装置は、ピクチャをキャプチャするためのカメラを有するモバイルデバイスを備える、
［Ｃ１５］に記載の装置。
［Ｃ２９］
１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
ビデオデータのピクチャの現在のブロックを取得することと、
前記現在のブロックのパラメータを決定することと、
前記現在のブロックの前記決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定することと、
前記現在のブロックのための動き補償を実行すること、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を行わせる命令を有する、非一時的コンピュータ可読媒体。
［Ｃ３０］
ビデオデータを処理するための装置であって、
前記ビデオデータの現在ピクチャの現在のブロックを取得するための手段と、
前記現在のブロックのパラメータを決定するための手段と、
前記現在のブロックの前記決定されたパラメータに基づいて、参照ピクチャのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数と、前記現在のブロックのテンプレート中のサンプルの行の数またはサンプルの列の数のうちの少なくとも１つまたは複数とを決定するための手段と、
前記現在のブロックのための動き補償を実行するための手段、ここにおいて、前記動き補償を実行することは、前記現在のブロックの前記テンプレートおよび前記参照ピクチャの前記テンプレートを使用して前記現在のブロックのための１つまたは複数のローカル照度補償を導出することを含む、と
を備える、装置。
【国際調査報告】
2019531029.tif 000046
2019531029.tif 000047
2019531029.tif 000048