(57)【要約】  ビデオエンコーダおよびビデオデコーダが、ブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのセットを決定し得る。適応ループフィルタの各セットは、前のピクチャからのフィルタ、現在のピクチャのためにシグナリングされたフィルタ、および／または事前トレーニングされたフィルタを含み得る。ブロックごとに適応ループフィルタのセットを変化させることによって、ビデオデータの各ブロックのために利用可能な適応ループフィルタは、ビデオデータの局所統計に、より適合し得る。【選択図】図８
2021525981.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングする方法であって、前記方法は、
適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定することと、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含み、
前記適応ループフィルタのそれぞれのセットに従って、前記現在のピクチャの前記ブロックを適応ループフィルタリングすることと
を備える、方法。
【請求項２】
前記適応ループフィルタのそれぞれのセットを決定することは、
適応ループフィルタが使用される前記現在のピクチャのブロックごとに、前記適応ループフィルタの複数のセットの中から、前記適応ループフィルタのそれぞれのセットを示す、それぞれのシンタックス要素をコーディングすること
を備える、請求項１に記載の方法。
【請求項３】
前記それぞれのシンタックス要素は、前記適応ループフィルタの複数のセットを含むリストへのインデックスである、請求項２に記載の方法。
【請求項４】
適応ループフィルタリングが前記それぞれのブロックについて使用されるかどうかを示す、ブロックごとのそれぞれのフラグをコーディングすること
をさらに備える、請求項１に記載の方法。
【請求項５】
適応ループフィルタリングがブロックのそれぞれのグループ内の各ブロックについて使用されるかどうかを示す、ブロックのグループごとのそれぞれのフラグをコーディングすること
をさらに備える、請求項１に記載の方法。
【請求項６】
適応ループフィルタリングが、各ブロックについて使用されるか、またはブロックのグループ内の各ブロックについて使用されるかを、
非ゼロコード化ブロックフラグ（ＣＢＦ）を有する、ブロックのグループ内のブロックの数と、
非ゼロ変換係数の数と、
特定のモードでコーディングされた、ブロックのグループ内のブロックの数と、
スキップモードでコーディングされた、ブロックのグループ内のブロックの数と
のうちの１つまたは複数に基づいて決定すること
をさらに備える、請求項１に記載の方法。
【請求項７】
前記現在のピクチャの前記ブロックは、前記現在のピクチャのコーディングツリーユニット（ＣＴＵ）である、請求項１に記載の方法。
【請求項８】
前記現在のピクチャのための前記適応ループフィルタの複数のセットを決定すること
をさらに備える、請求項１に記載の方法。
【請求項９】
適応ループフィルタの各それぞれのセットは、前記現在のピクチャのためにシグナリングされた現在の適応ループフィルタまたは事前トレーニングされた適応ループフィルタのうちの１つまたは複数をさらに含む、請求項１に記載の方法。
【請求項１０】
前記現在のピクチャのためにシグナリングされた任意の現在の適応ループフィルタが最初に追加され、任意の前の適応ループフィルタが２番目に追加され、任意の事前トレーニングされた適応ループフィルタが最後に追加されるように、適応ループフィルタの各それぞれのセットに適応ループフィルタを追加すること
をさらに備える、請求項９に記載の方法。
【請求項１１】
前記現在の適応ループフィルタは、前記現在のピクチャのためにシグナリングされ、かつ、フィルタセットリスト中でより低いインデックス値を有する、請求項１０に記載の方法。
【請求項１２】
前記現在のピクチャのために、前記現在のピクチャについての現在の適応ループフィルタを示す１つまたは複数のシンタックス要素をコーディングすること
をさらに備える、請求項９に記載の方法。
【請求項１３】
前記適応ループフィルタのそれぞれのセットは、複数のクラスの各クラスに割り当てられたそれぞれの適応ループフィルタを含む、請求項１に記載の方法。
【請求項１４】
前記適応ループフィルタのそれぞれのセットを決定することは、ビデオデータの第１のブロックのために、前記適応ループフィルタの複数のセットの中から適応ループフィルタの第１のセットを示す、第１のシンタックス要素をコーディングすることと、ビデオデータの第２のブロックのために、前記適応ループフィルタの複数のセットの中から適応ループフィルタの第２のセットを示す、第２のシンタックス要素をコーディングすることと、を備え、ここにおいて、前記適応ループフィルタの第２のセットは、前記適応ループフィルタの第１のセットとは異なり、前記方法は、
ビデオデータの第１の再構成されたブロックを作成するために、前記現在のピクチャ内の前記ビデオデータの第１のブロックをコーディングすることと、
前記ビデオデータの第１の再構成されたブロックのために、前記適応ループフィルタの第１のセットから第１の適応ループフィルタを決定することと、
前記ビデオデータの第１の再構成されたブロックに、前記第１の適応ループフィルタを適用することと、
ビデオデータの第２の再構成されたブロックを作成するために、前記現在のピクチャ内の前記ビデオデータの第２のブロックをコーディングすることと、
前記ビデオデータの第２の再構成されたブロックのために、前記適応ループフィルタの第２のセットから第２の適応ループフィルタを決定することと、
前記ビデオデータの第２の再構成されたブロックに、前記第２の適応ループフィルタを適用することと
をさらに備える、請求項１に記載の方法。
【請求項１５】
コーディングすることは、符号化することを備え、前記方法は、
カメラを用いて前記現在のピクチャをキャプチャすること
をさらに備える、請求項１に記載の方法。
【請求項１６】
コーディングすることは、復号することを備え、前記方法は、
前記現在のピクチャを表示すること
をさらに備える、請求項１に記載の方法。
【請求項１７】
ビデオデータをコーディングするように構成された装置であって、前記装置は、
ビデオデータの現在のピクチャを記憶するように構成されたメモリと、
前記メモリと通信状態にある１つまたは複数のプロセッサと
を備え、前記１つまたは複数のプロセッサは、
適応ループフィルタリングが使用されるブロックについて、前記現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定することと、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含み、
前記適応ループフィルタのそれぞれのセットに従って、前記現在のピクチャの前記ブロックを適応ループフィルタリングすることと
を行うように構成される、装置。
【請求項１８】
前記適応ループフィルタのそれぞれのセットを決定するために、前記１つまたは複数のプロセッサは、
適応ループフィルタが使用される前記現在のピクチャのブロックごとに、前記適応ループフィルタの複数のセットの中から、前記適応ループフィルタのそれぞれのセットを示す、それぞれのシンタックス要素をコーディングすること
を行うようにさらに構成される、請求項１７に記載の装置。
【請求項１９】
前記それぞれのシンタックス要素は、前記適応ループフィルタの複数のセットを含むリストへのインデックスである、請求項１８に記載の装置。
【請求項２０】
前記１つまたは複数のプロセッサは、
適応ループフィルタリングが前記それぞれのブロックについて使用されるかどうかを示す、ブロックごとのそれぞれのフラグをコーディングすること
を行うようにさらに構成される、請求項１７に記載の装置。
【請求項２１】
前記１つまたは複数のプロセッサは、
適応ループフィルタリングがブロックのそれぞれのグループ内の各ブロックについて使用されるかどうかを示す、ブロックのグループごとのそれぞれのフラグをコーディングすること
を行うようにさらに構成される、請求項１７に記載の装置。
【請求項２２】
前記１つまたは複数のプロセッサは、
適応ループフィルタリングが、各ブロックについて使用されるか、またはブロックのグループ内の各ブロックについて使用されるかを、
非ゼロコード化ブロックフラグ（ＣＢＦ）を有する、ブロックのグループ内のブロックの数と、
非ゼロ変換係数の数と、
特定のモードでコーディングされた、ブロックのグループ内のブロックの数と、
スキップモードでコーディングされた、ブロックのグループ内のブロックの数と
のうちの１つまたは複数に基づいて決定すること
を行うようにさらに構成される、請求項１７に記載の装置。
【請求項２３】
前記現在のピクチャの前記ブロックは、前記現在のピクチャのコーディングツリーユニット（ＣＴＵ）である、請求項１７に記載の装置。
【請求項２４】
前記１つまたは複数のプロセッサは、
前記現在のピクチャのための前記適応ループフィルタの複数のセットを決定すること
を行うようにさらに構成される、請求項１７に記載の装置。
【請求項２５】
適応ループフィルタの各それぞれのセットは、前記現在のピクチャのためにシグナリングされた現在の適応ループフィルタまたは事前トレーニングされた適応ループフィルタのうちの１つまたは複数をさらに含む、請求項１７に記載の装置。
【請求項２６】
前記１つまたは複数のプロセッサは、
前記現在のピクチャのためにシグナリングされた任意の現在の適応ループフィルタが最初に追加され、任意の前の適応ループフィルタが２番目に追加され、任意の事前トレーニングされた適応ループフィルタが最後に追加されるように、適応ループフィルタの各それぞれのセットに適応ループフィルタを追加すること
を行うようにさらに構成される、請求項２５に記載の装置。
【請求項２７】
前記現在の適応ループフィルタは、前記現在のピクチャのためにシグナリングされ、かつ、フィルタセットリスト中でより低いインデックス値を有する、請求項２６に記載の装置。
【請求項２８】
前記１つまたは複数のプロセッサは、
前記現在のピクチャのために、前記現在の適応ループフィルタを示す１つまたは複数のシンタックス要素をコーディングすること
を行うようにさらに構成される、請求項２５に記載の装置。
【請求項２９】
前記適応ループフィルタのそれぞれのセットは、複数のクラスの各クラスに割り当てられたそれぞれの適応ループフィルタを含む、請求項１７に記載の装置。
【請求項３０】
前記適応ループフィルタのそれぞれのセットを決定するために、前記１つまたは複数のプロセッサは、ビデオデータの第１のブロックのために、前記適応ループフィルタの複数のセットの中から適応ループフィルタの第１のセットを示す、第１のシンタックス要素をコーディングすることと、ビデオデータの第２のブロックのために、前記適応ループフィルタの複数のセットの中から適応ループフィルタの第２のセットを示す、第２のシンタックス要素をコーディングすることと、を行うようにさらに構成され、ここにおいて、前記適応ループフィルタの第２のセットは、前記適応ループフィルタの第１のセットとは異なり、ここにおいて、前記１つまたは複数のプロセッサは、
ビデオデータの第１の再構成されたブロックを作成するために、前記現在のピクチャ内の前記ビデオデータの第１のブロックをコーディングすることと、
前記ビデオデータの第１の再構成されたブロックのために、前記適応ループフィルタの第１のセットから第１の適応ループフィルタを決定することと、
前記ビデオデータの第１の再構成されたブロックに、前記第１の適応ループフィルタを適用することと、
ビデオデータの第２の再構成されたブロックを作成するために、前記現在のピクチャ内の前記ビデオデータの第２のブロックをコーディングすることと、
前記ビデオデータの第２の再構成されたブロックのために、前記適応ループフィルタの第２のセットから第２の適応ループフィルタを決定することと、
前記ビデオデータの第２の再構成されたブロックに、前記第２の適応ループフィルタを適用することと
を行うようにさらに構成される、請求項１７に記載の装置。
【請求項３１】
コーディングするために、前記１つまたは複数のプロセッサは符号化するように構成され、前記装置は、
前記現在のピクチャをキャプチャするように構成されたカメラ
をさらに備える、請求項１７に記載の装置。
【請求項３２】
コーディングするために、前記１つまたは複数のプロセッサは復号するように構成され、前記装置は、
前記現在のピクチャを表示するように構成されたディスプレイ
をさらに備える、請求項１７に記載の装置。
【請求項３３】
ビデオデータをコーディングするように構成された装置であって、前記装置は、
適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定するための手段と、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含み、
前記適応ループフィルタのそれぞれのセットに従って、前記現在のピクチャの前記ブロックを適応ループフィルタリングするための手段と
を備える、装置。
【請求項３４】
前記適応ループフィルタのそれぞれのセットを決定するための前記手段は、
適応ループフィルタリングが前記それぞれのブロックについて使用されるかどうかを示す、ブロックごとのそれぞれのフラグをコーディングするための手段と、
前記ブロックごとのそれぞれのフラグに基づいて、前記現在のピクチャのブロックごとに、前記適応ループフィルタの複数のセットの中から、前記適応ループフィルタのそれぞれのセットを示す、それぞれのシンタックス要素をコーディングするための手段と
を備える、請求項３３に記載の装置。
【請求項３５】
適応ループフィルタの各それぞれのセットは、前記現在のピクチャのためにシグナリングされた現在の適応ループフィルタまたは事前トレーニングされた適応ループフィルタのうちの１つまたは複数をさらに含む、請求項３３に記載の装置。
【請求項３６】
実行されると、１つまたは複数のプロセッサに、
適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定することと、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含み、
前記適応ループフィルタのそれぞれのセットに従って、前記現在のピクチャの前記ブロックを適応ループフィルタリングすることと、
を行わせる命令を記憶した非一時的なコンピュータ可読記憶媒体。
【請求項３７】
前記適応ループフィルタのそれぞれのセットを決定するために、前記命令は、前記１つまたは複数のプロセッサに、
適応ループフィルタリングが前記それぞれのブロックについて使用されるかどうかを示す、ブロックごとのそれぞれのフラグをコーディングすることと、
前記ブロックごとのそれぞれのフラグに基づいて、前記現在のピクチャのブロックごとに、前記適応ループフィルタの複数のセットの中から、前記適応ループフィルタのそれぞれのセットを示す、それぞれのシンタックス要素をコーディングすることと
をさらに行わせる、請求項３６に記載の非一時的なコンピュータ可読記憶媒体。
【請求項３８】
適応ループフィルタの各それぞれのセットは、前記現在のピクチャのためにシグナリングされた現在の適応ループフィルタまたは事前トレーニングされた適応ループフィルタのうちの１つまたは複数をさらに含む、請求項３６に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願の説明】
【０００１】
[0001]  本願は、２０１８年６月１日に出願された米国仮特許出願第６２／６７９，６８５号の利益を主張する、２０１９年５月３０日に出願された米国特許出願第１６／４２７，０１７号の優先権を主張し、これらの内容全体が、参照により本明細書に組み込まれる。
【技術分野】
【０００２】
[0002]  本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【０００３】
[0003]  デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラ式または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオコーディング（ＡＶＣ）によって定義された規格、最近完成した高効率ビデオコーディング（ＨＥＶＣ）規格、およびそのような規格の拡張に記載されているものなどの、ビデオ圧縮技法をインプリメントする。ビデオデバイスは、このようなビデオ圧縮技法をインプリメントすることによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]  ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードとも呼ばれ得る、ビデオブロック（video block）に区分され得る。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ内の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ内の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ内の参照サンプルに対する時間的予測を使用し得る。ピクチャは、フレームと呼ばれ得、参照ピクチャは、参照フレームと呼ばれ得る。
【０００５】
[0005]  空間的予測または時間的予測は、コーディングされるべきブロック（block）についての予測ブロック（predictive block）をもたらす。残差データ（Residual data）は、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指し示す動きベクトルと、コーディングされたブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコーディングされたブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され得、結果として残差変換係数が得られ、次いで、これは量子化され得る。最初に２次元アレイで配置される量子化された変換係数は、変換係数の１次元ベクトルを生成するために走査され得、エントロピーコーディングが、さらなる圧縮を達成するために適用され得る。
【発明の概要】
【０００６】
[0006]  本開示は、「適応ループフィルタ（ＡＬＦ：Adaptive Loop Filter）」と呼ばれるフィルタリング技法に関する技法を説明する。ＡＬＦは、インループコーディング（in-loop coding）のための後処理ステージにおいて、または予測プロセスにおいて使用され得る。サンプル適応オフセット（ＳＡＯ：sample adaptive offset）フィルタリングおよび／または適応ループフィルタリング（adaptive loop filtering）は、ＨＥＶＣ準拠コーデック技術などの様々な既存のビデオコーデック技術のうちの任意のものに適用され得、または任意の将来のビデオコーディング規格における効率的なコーディングツールになり得る。したがって、説明される技法は、ビデオがブロック単位で再構成される様々なブロックベースのビデオコーディング技法に適用され得る。ピクセルのブロックは、後に説明されるように、使用されるブロックベースのビデオコーディングに依存して、コーディングツリーユニット（ＣＴＵ：coding tree units）、最大コーディングユニット（ＬＣＵ：largest coding units）、予測ユニット（ＰＵ：prediction unit）、または他の用語で様々に呼ばれ得る。
【０００７】
[0007]  以下でより詳細に説明されるように、本開示の技法によれば、ビデオエンコーダ（video encoder）およびビデオデコーダ（video decoder）は、（例えば、適応ループフィルタリングがイネーブルにされるブロックについて）ブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのセットを決定するように構成され得る。このようにして、特定のブロックでの使用に利用可能な適応ループフィルタのセットは、特定のブロックの近くのビデオデータ（video data）の局所特性（local characteristics）により適合し得、したがって、コーディング効率（coding efficiency）および／またはピクチャ品質（picture quality）を改善する。
【０００８】
[0008]  一例では、方法が、適応ループフィルタリングが使用されるブロックについて、現在のピクチャ（current picture）のブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定することと、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャ（previous picture）において使用された前の適応ループフィルタを含み、適応ループフィルタのそれぞれのセットに従って、現在のピクチャのブロックを適応ループフィルタリングすることと、を含む。
【０００９】
[0009]  別の例では、ビデオデータをコーディングする（code）ように構成された装置（apparatus）が、ビデオデータの現在のピクチャを記憶するように構成されたメモリ（memory）と、メモリと通信状態にある１つまたは複数のプロセッサ（processor）とを含み、１つまたは複数のプロセッサは、適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定することと、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャ（または、前のピクチャ、スライス、または他の粒度のブロック）において使用された前の適応ループフィルタを含み、適応ループフィルタのそれぞれのセットに従って、現在のピクチャのブロックを適応ループフィルタリングすることと、を行うように構成される。
【００１０】
[0010]  別の例では、ビデオデータをコーディングするように構成された装置が、適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定するための手段と、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含み、適応ループフィルタのそれぞれのセットに従って、現在のピクチャのブロックを適応ループフィルタリングするための手段と、を含む。
【００１１】
[0011]  別の例では、本開示は、実行されると、１つまたは複数のプロセッサに、適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定することと、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含み、適応ループフィルタのそれぞれのセットに従って、現在のピクチャのブロックを適応ループフィルタリングすることと、を行わせる命令（instruction）を記憶した非一時的なコンピュータ可読記憶媒体（non-transitory computer-readable storage medium）を説明する。
【００１２】
[0012]  １つまたは複数の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点が、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】[0013]  図１は、本開示で説明される技法を利用し得る、例となるビデオ符号化および復号システムを例示するブロック図である。
【図２】[0014]  図２は、ＨＥＶＣデコーダの例となるブロック図を示す。
【図３Ａ】[0015]  図３Ａは、エッジオフセット（ＥＯ：edge offset）サンプル分類のための４つの１−Ｄ方向性パターン（directional patterns）のうちの１つを示す。
【図３Ｂ】図３Ｂは、エッジオフセット（ＥＯ）サンプル分類のための４つの１−Ｄ方向性パターンのうちの１つを示す。
【図３Ｃ】図３Ｃは、エッジオフセット（ＥＯ）サンプル分類のための４つの１−Ｄ方向性パターンのうちの１つを示す。
【図３Ｄ】図３Ｄは、エッジオフセット（ＥＯ）サンプル分類のための４つの１−Ｄ方向性パターンのうちの１つを示す。
【図４】[0016]  図４は、本開示で説明される技法をインプリメントし得る、例となるビデオエンコーダを例示するブロック図である。
【図５】[0017]  図５は、本開示で説明される技法をインプリメントし得る、例となるビデオデコーダを例示するブロック図である。
【図６】[0018]  図６は、本開示の技法を実行するためのフィルタユニット（filter unit）の例となるインプリメンテーションを示す。
【図７】[0019]  図７は、本開示の例となる方法を例示するフローチャートである。
【図８】[0020]  図８は、本開示の別の例となる方法を例示するフローチャートである。
【詳細な説明】
【００１４】
[0021]  図１は、本開示で説明される適応ループフィルタリングのための技法を利用し得る、例となるビデオ符号化および復号システム１０を例示するブロック図である。図１に示されるように、システム１０は、宛先デバイス１４によって後に復号されることになる符号化されたビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、または同様のものを含む、広範囲のデバイスのうちの任意のものであり得る。いくつかのケースでは、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００１５】
[0022]  宛先デバイス１４は、リンク１６を介して、復号されることになる符号化されたビデオデータを受信し得る。リンク１６は、符号化されたビデオデータをソースデバイス１２から宛先デバイス１４に移動させることが可能な任意のタイプの媒体またはデバイスであり得る。一例では、リンク１６は、ソースデバイス１２がリアルタイムで符号化されたビデオデータを宛先デバイス１４に直接送信することを可能にする、通信媒体であり得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を容易にするのに有用であり得るその他任意の機器を含み得る。
【００１６】
[0023]  別の例では、符号化されたビデオデータは、出力インターフェース２２から記憶デバイス２６に出力され得る。同様に、符号化されたビデオデータは、入力インターフェース２８によって、記憶デバイス２６からアクセスされ得る。記憶デバイス２６は、ハードドライブ、ブルーレイディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、または符号化されたビデオデータを記憶するためのその他任意の好適なデジタル記憶媒体などの、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のうちの任意のものを含み得る。さらなる例では、記憶デバイス２６は、ファイルサーバ、またはソースデバイス１２によって生成された符号化されたビデオを保持し得る別の中間記憶デバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、記憶デバイス２６からの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶することと、その符号化されたビデオデータを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例となるファイルサーバは、（例えば、ウェブサイト用の）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続記憶（ＮＡＳ：network attached storage）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに好適な、ワイヤレス接続（例えば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。記憶デバイス２６からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００１７】
[0024]  本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えば、インターネットを介した、ストリーミングビデオ送信、データ記憶媒体上での記憶のためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他のアプリケーションなどの、様々なマルチメディアアプリケーションのうちの任意のものをサポートするビデオコーディング（video coding）に適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話通信などのアプリケーションをサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００１８】
[0025]  図１の例では、ソースデバイス１２は、ビデオソース１８、ビデオエンコーダ２０、および出力インターフェース２２を含む。いくつかのケースでは、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、例えば、ビデオカメラのような、ビデオキャプチャデバイス、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含み得る。一般に、ビデオデータをキャプチャすることは、ビデオデータを記録、生成、および／または感知するための任意の技法を含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。しかしながら、本開示で説明される技法は、ビデオコーディング全般に適用可能であり得、ワイヤレスおよび／またはワイヤードアプリケーションに適用され得る。
【００１９】
[0026]  キャプチャされた、予めキャプチャされた、またはコンピュータにより生成されたビデオが、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオデータは、ソースデバイス１２の出力インターフェース２２を介して、宛先デバイス１４に直接送信され得る。符号化されたビデオデータはまた（または、代替として）、復号および／または再生のために、宛先デバイス１４または他のデバイスによる後のアクセスのために、記憶デバイス２６上に記憶され得る。
【００２０】
[0027]  宛先デバイス１４は、入力インターフェース２８、ビデオデコーダ３０、およびディスプレイデバイス３２を含む。いくつかのケースでは、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を通じて、符号化されたビデオデータを受信する。リンク１６を通じて通信されるか、または記憶デバイス２６上に提供される符号化されたビデオデータは、ビデオデータを復号する（decode）際に、ビデオデコーダ３０などのビデオデコーダによって使用するための、ビデオエンコーダ２０によって生成された様々なシンタックス要素（syntax element）を含み得る。そのようなシンタックス要素は、通信媒体上で送信される、記憶媒体上に記憶される、またはファイルサーバ上に記憶される、符号化されたビデオデータとともに含まれ得る。
【００２１】
[0028]  ディスプレイデバイス３２は、宛先デバイス１４と一体化されるか、またはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体化されたディスプレイデバイスを含み、そしてまた、外部ディスプレイデバイスとインターフェースするようにも構成され得る。他の例では、宛先デバイス１４は、ディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのうちの任意のものであり得る。
【００２２】
[0029]  ビデオエンコーダ２０およびビデオデコーダ３０は、最近完成した高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、さらに、ＩＴＵ−Ｔビデオコーディング専門家グループ（ＶＣＥＧ）と、ＩＳＯ／ＩＥＣモーションピクチャ専門家グループ（ＭＰＥＧ）とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）ならびに３Ｄビデオコーディング拡張開発共同研究部会（ＪＣＴ−３Ｖ）によって開発されてきた、応用範囲の拡張、マルチビュー拡張（ＭＶ−ＨＥＶＣ）、またはスケーラブル拡張（ＳＨＶＣ）などの、ＨＥＶＣ拡張に従って動作し得る。代替として、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＩＳＯ／ＩＥＣ  ＭＰＥＧ−４、パート１０、アドバンストビデオコーディング（ＡＶＣ）とも呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格などの、他のプロプライエタリまたは業界標準規格、あるいはスケーラブルビデオコーディング（ＳＶＣ）およびマルチビュービデオコーディング（ＭＶＣ）拡張などの、そのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、およびＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌを含む。その応用範囲の拡張と、マルチビュー拡張（ＭＶ−ＨＥＶＣ）と、スケーラブル拡張（ＳＨＶＣ）とを含む、ＨＥＶＣ  （ＩＴＵ−Ｔ  Ｈ．２６５）は、ＩＴＵ−Ｔビデオコーディング専門家グループ（ＶＣＥＧ）と、ＩＳＯ／ＩＥＣモーションピクチャ専門家グループ（ＭＰＥＧ）とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）ならびに３Ｄビデオコーディング拡張開発共同研究部会（ＪＣＴ−３Ｖ）によって開発されてきた。以下、ＨＥＶＣ  ＷＤと呼ばれる、完成したＨＥＶＣドラフトが、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipにおいて入手可能である。
【００２３】
[0030]  ＩＴＵ−Ｔ  ＶＣＥＧ（Ｑ６／１６）およびＩＳＯ／ＩＥＣ  ＭＰＥＧ（ＪＴＣ １／ＳＣ ２９／ＷＧ １１）は、（スクリーンコンテンツコーディングおよびハイダイナミックレンジコーディングについてのその現在の拡張と近い将来の拡張とを含む）現在のＨＥＶＣ規格のそれを潜在的に超過する圧縮能力を有する将来のビデオコーディング技術を現在開発中である。この新しい規格は、Ｈ．２６６／ＶＶＣ（Versatile Video coding）と呼ばれる。これらグループは、この分野におけるそれらの専門家によって提案された圧縮技術設計を評価するために、ＪＶＥＴ（Joint Video Exploration Team）として知られる共同研究の取り組みにおいて、この調査活動を共同で進めている。ＪＶＥＴは、２０１５年１０月１９日〜２１日にわたって最初の会合を行った。参照ソフトウェアの１つのバージョン、すなわち、Ｊｏｉｎｔ  Ｅｘｐｌｏｒａｔｉｏｎ  Ｍｏｄｅｌ  ７（ＪＥＭ７）が、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-7.0/からダウンロードされ得る。ＪＥＭ７についてのアルゴリズム解説は、J. Chen、E. Alshina、G. J. Sullivan、J.R. Ohm、J. Boyce、「Algorithm description of Joint Exploration Test Model 7 (JEM7)」、ＪＶＥＴ−Ｇ１００１、トリノ、２０１７年７月に説明されている。ＶＶＣ規格の最新ドラフトが、Bross他「Versatile Video Coding (Draft 5)」、Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第１４回会議：ジュネーブ、ＣＨ、２０１９年３月１９日〜２７日、ＪＶＥＴ−Ｎ１００１−ｖ３（以下、「ＶＶＣドラフト５」）に説明されている。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。
【００２４】
[0031]  図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、オーディオエンコーダおよびオーディオデコーダとそれぞれ一体化され得、共通のデータストリームまたは別個のデータストリームにおけるオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２５】
[0032]  ビデオエンコーダ２０およびビデオデコーダ３０は、１つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せなどの、様々な好適なエンコーダ回路またはデコーダ回路のうちの任意のものとしてそれぞれインプリメントされ得る。本技法が部分的にソフトウェアでインプリメントされるとき、デバイスは、好適な非一時的なコンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために、１つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部として一体化され得る。
【００２６】
[0033]  本開示は、インループコーディングの一部として、後処理ステージにおいて、またはビデオコーディングの予測ステージにおいて使用され得るフィルタリング動作に関する技法を説明する。本開示の技法は、ＨＥＶＣなどの、既存のビデオコーデックにインプリメントされるか、または現在開発中のＨ．２６６／ＶＶＣ規格などの、将来のビデオコーディング規格のための効率的なコーディングツールになり得る。
【００２７】
[0034]  ビデオコーディングは、典型的に、同じピクチャ内のビデオデータのすでにコーディングされたブロックから（例えば、イントラ予測）、または異なるピクチャ内のビデオデータのすでにコーディングされたブロックから（例えば、インター予測）のいずれかで、ビデオデータのブロックを予測することを伴う。いくつかの事例では、ビデオエンコーダ２０はまた、予測ブロックを元のブロックと比較することによって残差データを計算する。したがって、残差データは、予測ブロックと元のブロックとの間の差分を表す。
【００２８】
[0035]  ビデオエンコーダ２０は、残差データを変換および量子化し、符号化されたビットストリーム中で、変換および量子化された残差データをシグナリングする。ビデオデコーダ３０は、予測ブロック単独よりも密接に元のビデオブロックに一致する再構成されたビデオブロックを生成するために、残差データを予測ブロックに加算する。復号されたビデオの品質をさらに改善するために、ビデオエンコーダ２０およびビデオデコーダ３０は、再構成されたビデオブロックに対して１つまたは複数のフィルタリング動作を実行し得る。これらのフィルタリング動作の例は、デブロッキングフィルタリング（deblocking filtering）、サンプル適応オフセット（ＳＡＯ）フィルタリング、および適応ループフィルタリングを含む。これらのフィルタリング動作のためのパラメータは、ビデオエンコーダ２０によって決定され、符号化されたビデオビットストリーム中で明示的にシグナリングされ得るか、または、符号化されたビデオビットストリーム中でパラメータが明示的にシグナリングされる必要なしに、ビデオデコーダ３０によって暗黙的に決定され得る。
【００２９】
[0036]  本開示は、「適応ループフィルタ（ＡＬＦ）」と呼ばれる（１つまたは複数の）フィルタリング方法に関する技法を説明する。ＡＬＦは、インループコーディングのための後処理ステージにおいて、または予測プロセスにおいて使用され得る。ＳＡＯフィルタリングおよび／または適応ループフィルタリングは、ＨＥＶＣ準拠コーデック技術などの様々な既存のビデオコーデック技術のうちの任意のものに適用され得、または任意の将来のビデオコーディング規格における効率的なコーディングツールになり得る。
【００３０】
[0037]  本開示で使用される場合、ビデオコーディング（video coding）という用語は、総称的にビデオ符号化（video encoding）またはビデオ復号（video decoding）のいずれかを指す。同様に、ビデオコーダ（video coder）という用語は、総称的にビデオエンコーダまたはビデオデコーダを指し得る。さらに、ビデオ復号に関して本開示で説明されるある特定の技法は、ビデオ符号化にも適用され得、その逆もまた同様である。例えば、多くの場合、ビデオエンコーダおよびビデオデコーダは、同じプロセス、または逆のプロセスを実行するように構成される。また、ビデオエンコーダ２０は、典型的に、ビデオデータをどのように符号化する（encode）かを決定するプロセスの一部としてビデオ復号を実行する。
【００３１】
[0038]  以下でより詳細に説明されるように、本開示の技法によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、（例えば、適応ループフィルタリングがイネーブルにされるブロックについて）ブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのセットを決定するように構成され得る。このようにして、特定のブロックでの使用に利用可能な適応ループフィルタのセットは、特定のブロックの近くのビデオデータの局所特性により適合し得、したがって、コーディング効率（coding efficiency）および／またはピクチャ品質（picture quality）を改善する。
【００３２】
[0039]  ＨＥＶＣ、ＶＶＣ、および他のビデオコーディング仕様では、ビデオシーケンスは、典型的に、一連のピクチャを含む。ピクチャは、「フレーム（frame）」とも呼ばれ得る。１つの例となる手法では、ピクチャは、ＳＬ、ＳＣｂ、およびＳＣｒで示される、３つのサンプルアレイを含み得る。このような例となる手法では、ＳＬは、ルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳＣｂは、Ｃｂクロミナンスサンプルの２次元アレイである。ＳＣｒは、Ｃｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルはまた、本明細書では「クロマ（chroma）」サンプルとも呼ばれ得る。他の事例では、ピクチャは、モノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００３３】
[0040]  ピクチャの符号化された表現を生成するために、ビデオエンコーダ２０は、コーディングツリーユニット（ＣＴＵ）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロック（coding tree block）と、クロマサンプルの２つの対応するコーディングツリーブロックと、これらコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造（syntax structure）とを含み得る。モノクロームのピクチャまたは３つの別個の色平面を有するピクチャでは、ＣＴＵは、単一のコーディングツリーブロックと、コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを含み得る。コーディングツリーブロックは、サンプルのＮ×Ｎブロックであり得る。ＣＴＵは、「ツリーブロック（tree block）」または「最大コーディングユニット（largest coding unit）」（ＬＣＵ）とも呼ばれ得る。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなどの、他の規格のマクロブロックに大まかに類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるわけではなく、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスタ走査順に連続的に並べられた整数の数のＣＴＵを含み得る。
【００３４】
[0041]  一例では、コーディングされたＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するために、ＣＴＵのコーディングツリーブロックに対して４分木区分化（quad-tree partitioning）を再帰的に実行し得、これが、「コーディングツリーユニット」という名称の由来である。コーディングブロックは、サンプルのＮｘＮブロックであり得る。ＣＵは、ルーマサンプルアレイと、Ｃｂサンプルアレイと、Ｃｒサンプルアレイとを有するピクチャについての、ルーマサンプルのコーディングブロックと、クロマサンプルの２つの対応するコーディングブロックと、これらコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを含み得る。モノクロームのピクチャまたは３つの別個の色平面を有するピクチャでは、ＣＵは、単一のコーディングブロックと、コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを含み得る。
【００３５】
[0042]  ビデオエンコーダ２０は、ＣＵのコーディングブロックを、１つまたは複数の予測ブロック（prediction blocks）に区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵの予測ユニット（ＰＵ）は、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、これら予測ブロックを予測するために使用されるシンタックス構造とを含み得る。モノクロームのピクチャまたは３つの別個の色平面を有するピクチャでは、ＰＵは、単一の予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを含み得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ、Ｃｂ、およびＣｒ予測ブロックについての予測ルーマ、Ｃｂ、およびＣｒブロックを生成し得る。
【００３６】
[0043]  別の例として、ビデオエンコーダ２０およびビデオデコーダ３０は、ＪＥＭまたはＶＶＣに従って動作するように構成され得る。ＪＥＭまたはＶＶＣに従って、ビデオコーダ（ビデオエンコーダ２０など）は、ピクチャを複数のコーディングツリーユニット（ＣＴＵ）に区分する。ビデオエンコーダ２０は、４分木２分木（ＱＴＢＴ：quadtree-binary tree）構造またはマルチタイプツリー（ＭＴＴ：Multi-Type Tree）構造などの、ツリー構造に従ってＣＴＵを区分し得る。ＱＴＢＴ構造は、ＨＥＶＣのＣＵ、ＰＵ、およびＴＵ（変換ユニット）間の分離などの、複数の区分タイプの概念を除去する。ＱＴＢＴ構造は、４分木区分化に従って区分される第１のレベルと、２分木区分化に従って区分される第２のレベルとの、２つのレベルを含む。ＱＴＢＴ構造のルートノードは、ＣＴＵに対応する。２分木のリーフノードは、コーディングユニット（ＣＵ）に対応する。
【００３７】
[0044]  ＭＴＴ区分化構造では、ブロックは、４分木（ＱＴ）区分と、２分木（ＢＴ）区分と、１つまたは複数のタイプの３分木（ＴＴ）区分とを使用して区分され得る。３分木区分は、ブロックが３つのサブブロックに分割される区分である。いくつかの例では、３分木区分は、元のブロックを、中心を通って分割することなく、ブロックを３つのサブブロックに分割する。ＭＴＴにおける区分化タイプ（例えば、ＱＴ、ＢＴ、およびＴＴ）は、対称または非対称であり得る。
【００３８】
[0045]  いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ルミナンス成分とクロミナンス成分との各々を表すために、単一のＱＴＢＴまたはＭＴＴ構造を使用し得、一方、他の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ルミナンス成分のために１つのＱＴＢＴ／ＭＴＴ構造および両方のクロミナンス成分のために別のＱＴＢＴ／ＭＴＴ構造（または、それぞれのクロミナンス成分のために２つのＱＴＢＴ／ＭＴＴ構造）など、２つ以上のＱＴＢＴまたはＭＴＴ構造を使用し得る。
【００３９】
[0046]  ビデオエンコーダ２０およびビデオデコーダ３０は、４分木区分化、ＱＴＢＴ区分化、ＭＴＴ区分化、または他の区分化構造（partitioning structure）を使用するように構成され得る。
【００４０】
[0047]  ビデオエンコーダ２０は、ブロック（例えば、ＰＵ）についての予測ブロックを生成するために、イントラ予測またはインター予測を使用し得る。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。
【００４１】
[0048]  ＪＥＭおよびＶＶＣのいくつかの例はまた、アフィン動き補償モード（affine motion compensation mode）を提供し、これは、インター予測モードと見なされ得る。アフィン動き補償モードでは、ビデオエンコーダ２０は、ズームインまたはズームアウト、回転、遠近動き（perspective motion）、または他の不規則な動きタイプなどの、非並進動き（non-translational motion）を表す２つ以上の動きベクトルを決定し得る。
【００４２】
[0049]  イントラ予測を実行するために、ビデオエンコーダ２０は、予測ブロックを生成するためのイントラ予測モードを選択し得る。ＪＥＭおよびＶＶＣのいくつかの例は、様々な方向性モード、ならびにプレーナモード（planar mode）およびＤＣモードを含む、６７個のイントラ予測モードを提供する。一般に、ビデオエンコーダ２０は、現在のブロック（例えば、ＣＵのブロック）のサンプルをそこから予測するための、現在のブロックに隣接するサンプルを記述する（describes）イントラ予測モードを選択する。このようなサンプルは、一般に、ビデオエンコーダ２０がラスタ走査順（左から右、上から下）でＣＴＵおよびＣＵをコーディングすると仮定すると、現在のブロックと同じピクチャ内の、現在のブロックの上、左上、または左にあり得る。
【００４３】
[0050]  ビデオエンコーダ２０が、ＣＵの１つまたは複数のＰＵについての予測ルーマ、Ｃｂ、およびＣｒブロックを生成した後、ビデオエンコーダ２０は、ＣＵについてのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つ中のルーマサンプルと、ＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ２０は、ＣＵについてのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はまた、ＣＵについてのＣｒ残差ブロックを生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルと、ＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００４４】
[0051]  いくつかの例では、ビデオエンコーダ２０は、ＣＵのルーマ、Ｃｂ、およびＣｒ残差ブロックを、１つまたは複数のルーマ、Ｃｂ、およびＣｒ変換ブロックに分解するために、４分木区分化を使用し得る。他の例では、変換ブロックは、予測ブロックと同じサイズである。変換ブロックは、同じ変換が適用されるサンプルの矩形（例えば、正方形または非正方形）ブロックである。ＣＵの変換ユニット（ＴＵ：transform unit）は、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、これら変換ブロックサンプルを変換するために使用されるシンタックス構造とを含み得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロックと、Ｃｂ変換ブロックと、Ｃｒ変換ブロックとに関連付けられ得る。ＴＵに関連付けられたルーマ変換ブロックは、ＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロームのピクチャまたは３つの別個の色平面を有するピクチャでは、ＴＵは、単一の変換ブロックと、変換ブロックのサンプルを変換するために使用されるシンタックス構造とを含み得る。
【００４５】
[0052]  ビデオエンコーダ２０は、ＴＵについてのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは、変換係数の２次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ２０は、ＴＵについてのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵについてのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００４６】
[0053]  ＣＴＵ、ＣＵ、ＰＵ、およびＴＵでの上記ブロック構造は、一般に、ＨＥＶＣにおいて使用されるブロック構造を説明する。しかしながら、他のビデオコーディング規格は、異なるブロック構造を使用し得る。一例として、ＨＥＶＣは、ＰＵおよびＴＵが異なるサイズまたは形状を有することを可能にするが、他のビデオコーディング規格は、予測ブロックおよび変換ブロックが同じサイズを有することを必要とし得る。本開示の技法は、ＨＥＶＣのブロック構造に限定されず、他のブロック構造との互換性があり得る。
【００４７】
[0054]  係数ブロック（例えば、ルーマ係数ブロック、Ｃｂ係数ブロック、またはＣｒ係数ブロック）を生成した後、ビデオエンコーダ２０は、係数ブロックを量子化し得る。量子化は、一般に、変換係数が量子化されて、変換係数を表すために使用されるデータ量をできる限り（possibly）低減させ、さらなる圧縮を提供するプロセスを指す。ビデオエンコーダ２０が係数ブロックを量子化した後、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。例えば、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）を実行し得る。
【００４８】
[0055]  ビデオエンコーダ２０は、コーディングされたピクチャおよび関連するデータの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、ネットワーク抽象レイヤ（ＮＡＬ：Network Abstraction Layer）ユニットのシーケンスを含み得る。ＮＡＬユニットは、ＮＡＬユニット中のデータのタイプのインジケーションと、必要に応じてエミュレーション防止ビットが組み入れられている生バイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）の形式でそのデータを含むバイトとを含むシンタックス構造である。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、ＲＢＳＰをカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰは、ゼロビットを含む。
【００４９】
[0056]  異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。例えば、第１のタイプのＮＡＬユニットは、ピクチャパラメータセット（ＰＰＳ）のためのＲＢＳＰをカプセル化し得、第２のタイプのＮＡＬユニットは、コーディングされたスライスのためのＲＢＳＰをカプセル化し得、第３のタイプのＮＡＬユニットは、補足エンハンスメント情報（ＳＥＩ：supplemental enhancement information）メッセージのためのＲＢＳＰをカプセル化し得、以下同様である。（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰとは対照的に）ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれ得る。
【００５０】
[0057]  ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得するために、ビットストリームをパース（parse）し得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ２０によって実行されるプロセスの逆であり得る。加えて、ビデオデコーダ３０は、現在のＣＵのＴＵに関連付けられた係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在のＣＵのＴＵに関連付けられた変換ブロックを再構成するために、係数ブロックに対して逆変換を実行し得る。ビデオデコーダ３０は、現在のＣＵのＰＵについての予測ブロックのサンプルを、現在のＣＵのＴＵの変換ブロックの対応するサンプルに加算すること（adding）によって、現在のＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵについてのコーディングブロックを再構成することによって、ビデオデコーダ３０は、ピクチャを再構成し得る。
【００５１】
[0058]  ＨＥＶＣおよびＪＥＭの技法の態様が、ここで説明される。図２は、ＨＥＶＣデコーダ３１の例となるブロック図を示す。図２に示されるビデオデコーダ３１は、概して、ビデオデコーダ３０に対応するが、ビデオデコーダ３０とは異なり、再構成と参照ピクチャバッファとの間に適応ループフィルタを含まない。ビデオデコーダ３０は、図５により詳細に例示される。ＨＥＶＣは、デブロッキングフィルタ（ＤＢＦ：de-blocking filter）とサンプル適応オフセット（ＳＡＯ）フィルタとを含む、２つのインループフィルタを用いる。ＨＥＶＣ復号およびＳＡＯに関する追加の詳細は、C. Fu、E. Alshina、A. Alshin、Y. Huang、C.Chen、Chia. Tsai、C. Hsu、S. Lei、J. Park、W. Han、「Sample adaptive offset in the HEVC standard」、IEEE Trans. Circuits Syst. Video Technol.、22(12):1755-1764(2012)に説明されている。
【００５２】
[0059]  図２に例示されるように、ＤＢＦへの入力は、再構成ブロックからの出力で示されるように、イントラまたはインター予測後の再構成された画像であり得る。ＤＢＦは、コーディングされたブロック境界（block boundary）におけるアーティファクト（artifact）の検出を実行し、選択されたフィルタを適用することによって、アーティファクトを減衰させる。Ｈ．２６４／ＡＶＣデブロッキングフィルタと比較して、ＨＥＶＣデブロッキングフィルタは、依然として、視覚アーティファクトの大幅な低減を達成しながら、より低い計算複雑さおよびより良い並列処理能力を有する。追加の例については、A. Norkin、G. Bjontegaard、A. Fuldseth、M. Narroschke、M. Ikeda、K. Andersson、Minhua Zhou、G. Van der Auwera、「HEVC Deblocking Filter」、IEEE Trans. Circuits Syst. Video Technol.、22(12): 1746-1754 (2012)を参照。
【００５３】
[0060]  ＨＥＶＣでは、デブロッキングフィルタの決定は、ピクチャを８×８サンプルのブロックに分割するグリッド上にある４サンプル長の各境界について別々に行われる。デブロッキングは、以下の条件が真である場合に、ブロック境界に対して実行される：（１）ブロック境界が、予測ユニット（ＰＵ）または変換ユニット（ＴＵ）の境界である；（２）下記表１に定義されるように、境界強度（Ｂｓ）がゼロよりも大きい；（３）以下の式（１）に定義されるように、ブロック境界の両側にある信号の変動が、指定されたしきい値を下回る。
【００５４】
[0061]  表１．２つの隣接ルーマブロック間の境界についての境界強度（Ｂｓ）値
【００５５】
【表１】
2021525981.tif 000003
【００５６】
ルーマブロック境界についてＢｓ＞０である場合には、以下の条件が成り立つ場合、デブロッキングフィルタリングがその境界に適用される：
【００５７】
【数１】
2021525981.tif 000004
【００５８】
ここで、ｐおよびｑは、境界におけるルーマサンプル値であり、βは、しきい値である。
【００５９】
[0062]  ＨＥＶＣは、２つのタイプのルーマデブロッキングフィルタ、すなわち、（ｉ）ノーマルフィルタと、（ｉｉ）ストロングフィルタとを可能とする。デブロッキングフィルタの選択は、特定の信号変動項が、ある特定のしきい値よりも小さいかどうかに依存する（詳細については、上記で引用されたNorkin他による「HEVC Deblocking Filter」(2012)を参照）。フィルタリング決定は、４ピクセル長の垂直の（または場合によっては水平の）境界の２つの行（または列）のみに基づくが、フィルタは、境界における全ての行（または場合によっては列）に適用される。フィルタリングプロセスで使用されるピクセルの数、および各タイプのフィルタリングで修正され得るピクセルの数が、下記表２に要約される。
【００６０】
【表２】
2021525981.tif 000005
【００６１】
[0063]  クロマデブロッキング（すなわち、クロマ成分に対して実行されるデブロッキングフィルタリング）は、Ｂｓが２に等しいときのみ実行される。ＨＥＶＣでは、１つのタイプのクロマデブロッキングフィルタのみが使用される。クロマデブロッキングフィルタは、ピクセルｐ０、ｐ１、ｑ０、ｑ１を使用し、各行においてピクセルｐ０およびｑ０を修正し得る（行インデックスを示す第２の下付き文字は、フィルタが全ての行に適用されるので、簡潔さのために上記の説明では省略されている）。ＪＥＭでは、デブロッキングは、ＣＵレベルで実行される。境界の両側のＣＵのサイズは、８×８よりも大きくなり得る。ＪＥＭにおける最小ＣＵサイズは、４×４である。したがって、デブロッキングフィルタは、４×４ブロックの境界にも適用され得る。
【００６２】
[0064]  ＳＡＯフィルタへの入力は、図２のデブロッキングフィルタからの出力で示されるように、デブロッキングフィルタを適用した後の再構成されたブロック（reconstructed block）であり得る。ビデオコーダが、最初に領域サンプルを、選択された分類器（classifier）で複数のカテゴリに分類し、各カテゴリに対するオフセットを取得し、次いで、オフセットをカテゴリの各サンプルに加算することによって、領域の平均サンプル歪み（mean sample distortion）を低減するために、ＳＡＯフィルタを適用し得、ここで、領域のオフセットおよび分類器インデックスは、ビットストリーム中にコーディングされる。ＨＥＶＣでは、領域（ＳＡＯパラメータシグナリングのためのユニット）は、ＣＴＵであると定義される。
【００６３】
[0065]  低い複雑さであることの要件を満たし得る２つのＳＡＯタイプが、ＨＥＶＣにおいて採用された。これらの２つのタイプは、エッジオフセット（ＥＯ：edge offset）およびバンドオフセット（ＢＯ：band offset）ＳＡＯであり、これらは、以下でさらに詳細に説明される。ビデオエンコーダ２０およびビデオデコーダ３０は、ＳＡＯタイプのインデックスをコーディングし得る。ＥＯの場合、サンプル分類は、１−Ｄ方向性パターン：水平、垂直、斜め１３５°、および斜め４５°による、現在のサンプルと隣接サンプルとの間の比較に基づく。
【００６４】
[0066]  図３Ａ〜図３Ｄは、ＥＯサンプル分類についての４つの１−Ｄ方向性パターン：水平（図３Ａ、ＥＯクラス＝０）、垂直（図３Ｂ、ＥＯクラス＝１）、斜め１３５°（図３Ｃ、ＥＯクラス＝２）、および斜め４５°（図３Ｄ、ＥＯクラス＝３）を示す。ＳＡＯに関する追加の詳細は、C. Fu、E. Alshina、A. Alshin、Y. Huang、C. Chen、Chia. Tsai、C. Hsu、S. Lei、J. Park、W. Han、「Sample adaptive offset in the HEVC standard」、IEEE Trans. Circuits Syst. Video Technol.、22(12): 1755-1764 (2012)に説明されている。図３Ａ〜図３Ｄでは、ブロックＣは、現在のブロックであり、ブロックＡおよびＢは、隣接ブロックである。
【００６５】
[0067]  選択されたＥＯパターンに従って、表３のｅｄｇｅＩｄｘによって示される５つのカテゴリがさらに定義される。ｅｄｇｅＩｄｘが０〜３に等しい場合、オフセットの大きさ（magnitude）がシグナリングされ得るとともに、符号フラグが暗黙的にコーディングされ、すなわち、ｅｄｇｅＩｄｘが０または１に等しい場合は、負のオフセット、および、ｅｄｇｅＩｄｘが２または３に等しい場合は、正のオフセットである。ｅｄｇｅＩｄｘが４に等しい場合、オフセットは、常に０に設定され、これは、このケースでは、演算が必要でないことを意味する。
【００６６】
【表３】
2021525981.tif 000006
【００６７】
[0068]  ＢＯの場合、サンプル分類は、サンプル値に基づく。各色成分は、ＢＯタイプＳＡＯフィルタリングについての分類のための、それ自体のＳＡＯパラメータを有し得る。ＢＯは、１つのオフセットが、同じバンドの全てのサンプルに加算されることを暗示する。サンプル値の範囲は、３２個のバンドに均等に分割される。０から２５５までの範囲の８ビットのサンプルの場合、バンド幅は８であり、８ｋから８ｋ＋７までのサンプル値が、バンドｋに属し、ここで、ｋは、０から３１までの範囲にある。１つのオフセットが、同じバンドの全てのサンプルに加算される。バンドにおける元のサンプルと再構成されたサンプルとの間の平均差分（すわなち、バンドのオフセット）が、デコーダ（例えば、ビデオデコーダ３０）にシグナリングされる。オフセットの符号に対する制約はない。４つの連続するバンドのオフセットおよび開始バンド位置（starting band position ）のみが、デコーダ（例えば、ビデオデコーダ３０）にシグナリングされる。
【００６８】
[0069]  ビデオエンコーダ２０およびビデオデコーダ３０は、ＪＥＭおよび／またはＶＶＣのワーキングドラフトに記載された様々な適応ループフィルタリング技法をインプリメントするように構成され得る。いくつかの例となるＪＥＭフィルタリング技法（例えば、ＡＬＦ）の態様が、ここで説明される。修正されたデブロッキング（ＤＢ：de-blocking）およびＨＥＶＣ  ＳＡＯ方法に加えて、ＪＥＭは、ジオメトリ変換ベースの適応ループフィルタリング（ＧＡＬＦ：Geometry transformation-based Adaptive Loop Filtering）と呼ばれる、別のフィルタリング方法を含む。ＡＬＦ／ＧＡＬＦへの入力は、ＳＡＯの適用後の再構成された画像（例えば、図２のサンプル適応オフセットの出力）であり得る。ＧＡＬＦの態様は、Tsai, C.Y.、Chen, C.Y.、Yamakage, T.、Chong, I.S.、Huang, Y.W.、Fu, C.M.、Itoh, T.、Watanabe, T.、Chujoh, T.、Karczewicz, M.、および Lei, S.M.、「Adaptive loop filtering for video coding」、IEEE Journal of Selected Topics in Signal Processing,7(6)、pp.934-945、2013およびM. Karczewicz、L. Zhang、W.-J. Chien、およびX. Li、「Geometry transformation-based adaptive in-loop filter」、Picture Coding Symposium (PCS)、2016に説明されている。
【００６９】
[0070]  ＡＬＦ技法は、適応ウィーナーフィルタ（adaptive Wiener filter）を使用することによって、元のサンプルと、復号された／再構成されたサンプルとの間の平均２乗誤差を最小限にすることを試みる。入力画像をｐ、ソース画像をＳ、および有限インパルス応答（ＦＩＲ）フィルタをｈとして示す。次いで、２乗誤差の和（ＳＳＥ：sum of squared errors）の以下の式が最小化されるべきであり、ここで、（ｘ，ｙ）は、ｐまたはＳにおける任意のピクセル位置を示す。
【００７０】
【数２】
2021525981.tif 000007
【００７１】
ｈｏｐｔで表される最適なｈは、ｈ（ｉ，ｊ）に関するＳＳＥの偏導関数を以下のように０に等しく設定することによって得られ得る：
【００７２】
【数３】
2021525981.tif 000008
【００７３】
これにより、以下に示されるウィーナー・ホップ（Wiener-Hopf）の方程式が導かれ、最適なフィルタｈｏｐｔが得られる：
【００７４】
【数４】
2021525981.tif 000009
【００７５】
[0071]  ＪＥＭまたはＶＶＣのいくつかの例では、ピクチャ全体に対して１つのフィルタを使用する代わりに、ビデオエンコーダ２０および／またはビデオデコーダ３０は、局所勾配（local gradient）に基づいて、ピクチャ内のサンプルを２５個のクラス（class）に分類するように構成され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、各クラスにおけるピクセルのために別個の最適ウィーナーフィルタを導出し得る。いくつかの技法が、シグナリングオーバーヘッド（signaling overhead）および計算複雑さ（computational complexity）を低減させることによって、適応ループフィルタリングの有効性を増大させるために用いられてきた。シグナリングオーバーヘッドおよび／または計算複雑さを低減させることによって、ＡＬＦの有効性を増大させるために使用され得る技法のうちのいくつかが、以下に列挙される：
１．固定フィルタからの予測：各クラスについての最適なフィルタ係数が、各クラスについての１６個の候補フィルタを含む固定フィルタの予測プールを使用して予測される。各クラスについて最良の予測候補が選択され、予測誤差のみが送信される。
２．クラスマージング：２５個の異なるフィルタ（各クラスにつき１つ）を使用する代わりに、複数のクラスにおけるピクセルは、コーディングされるべきフィルタパラメータの数を低減させるために、１つのフィルタを共有し得る。２つのクラスをマージすることは、より高い累積ＳＳＥであるが、より低いレート−歪み（ＲＤ：Rate-Distortion）コストをもたらし得る。 
３．可変数のタップ：フィルタタップの数は、フレームレベルで適応できる（adaptive）。理論的には、より多くのタップを有するフィルタは、より低いＳＳＥを達成し得るが、より多くのフィルタ係数に関連付けられたビットオーバーヘッドのために、ＲＤコストの観点からは、良い選択ではない場合がある。
４．ブロックレベルのオン／オフ制御：ＡＬＦは、ブロックごとにオンおよびオフ（イネーブルまたはディセーブル）にされ得る。オン／オフ制御フラグがシグナリングされるブロックサイズは、フレームレベルで適応的に選択される。フィルタ係数は、ＡＬＦがイネーブルにされる（すなわち、ＡＬＦが使用される）それらのブロックのみからのピクセルを使用して再計算され得る。
５．時間的予測：以前にコーディングされたフレームに対して導出されたフィルタが、バッファに記憶されている。現在のフレームがＰまたはＢフレームである場合には、記憶されたセットのフィルタのうちの１つが、それがより良好なＲＤコストをもたらす場合、このフレームをフィルタリングするために使用され得る。フラグ（flag）が、時間的予測の使用を示すためにシグナリングされる。時間的予測が使用される場合には、記憶されたフィルタのどのセットが使用されるかを示すインデックスがシグナリングされる。ＡＬＦ係数の追加のシグナリングは必要ない。ブロックレベルＡＬＦオン／オフ制御フラグはまた、時間的予測を使用して、フレームのためにシグナリングされ得る。
【００７６】
[0072]  ＡＬＦのいくつかの態様の詳細が、この段落と以下の段落において要約される。ＡＬＦのいくつかの態様は、ピクセル分類およびジオメトリ変換に関連する。一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、（ＡＬＦの前の）再構成されたフレーム中の各ピクセルをカバーする６×６ウィンドウ内の全てのピクセルにおいて、垂直ラプラシアン（Laplacian）、水平ラプラシアン、および斜めラプラシアンの絶対値の和を計算するように構成され得る。ビデオエンコーダ２０およびビデオデコーダ３０は、再構成されたフレームを重複しない２×２ブロックに分割する。ビデオエンコーダ２０およびビデオデコーダ３０は、これらのブロック中の４つのピクセルを、そのブロックの全体のラプラシアンアクティビティおよび方向性（total Laplacian activity and directionality）に基づいて、Ｃｋ（ｋ＝０，１，．．．，２４）で表される２５個のカテゴリのうちの１つに分類する。加えて、ビデオエンコーダ２０およびビデオデコーダ３０は、そのブロックの勾配方向性に基づいて、フィルタに４つのジオメトリ変換（変換なし、対角反転、垂直反転、または回転）のうちの１つを適用する。さらなる詳細は、M. Karczewicz、L. Zhang、W.-J. Chien、およびX. Li、「Geometry transformation-based adaptive in-loop filter」、Picture Coding Symposium (PCS)、2016を参照のこと。
【００７７】
[0073]  適応ループフィルタリングのいくつかの態様は、固定フィルタからのフィルタ導出および予測に関する。各クラスＣｋについて、ビデオエンコーダ２０およびビデオデコーダ３０は、最初に、フィルタによって与えられるＳＳＥに基づいて、ｈｐｒｅｄ，ｋで表される、Ｃｋのためのプールからの最良の予測フィルタを決定する。最小化されるべきＣｋのＳＳＥは、以下のように書かれ得る。
【００７８】
【数５】
2021525981.tif 000010
【００７９】
ここで、ｈΔ，ｋは、Ｃｋのための最適なフィルタと、ｈｐｒｅｄ，ｋとの間の差分である。ｐ′（ｘ，ｙ）＝Σｉ，ｊｈｐｒｅｄ，ｋ（ｉ，ｊ）ｐ（ｘ−ｉ，ｙ−ｊ）を、ｈｐｒｅｄ，ｋによってピクセルｐ（ｘ，ｙ）をフィルタリングした結果とする。この場合、ＳＳＥｋの式は、次のように書き換えられ得る。
【００８０】
【数６】
2021525981.tif 000011
【００８１】
ｈΔ，ｋ（ｉ，ｊ）に関するＳＳＥｋの偏導関数を０に等しくすることによって、修正されたウィーナー・ホップの方程式が以下のように得られる：
【００８２】
【数７】
2021525981.tif 000012
【００８３】
式を簡略化するために、（ｘ，ｙ）∈Ｃｋでの、Σｘ，ｙｐ（ｘ−ｉ，ｙ−ｊ）ｐ（ｘ−ｍ，ｙ−ｎ）およびΣｘ，ｙ（Ｓ（ｘ，ｙ）−ｐ′（ｘ，ｙ））ｐ（ｘ−ｍ，ｙ−ｎ）を、それぞれＲｐｐ，ｋ（ｉ−ｍ，ｊ−ｎ）およびＲ′ｐｓ，ｋ（ｍ，ｎ）で表す。この場合、上記式は、次のように書かれ得る。
【００８４】
【数８】
2021525981.tif 000013
【００８５】
全てのＣｋについて、自己相関行列Ｒｐｐ，ｋ（ｉ−ｍ，ｊ−ｎ）および相互相関ベクトルＲ′ｐｓ，ｋ（ｍ，ｎ）は、全ての（ｘ，ｙ）∈Ｃｋにわたって計算される。
【００８６】
[0074]  適応ループフィルタリングの一例では、ビデオエンコーダ２０は、最適なフィルタと固定予測フィルタとの間の差分のみを計算および送信する。プール内で利用可能な候補フィルタのいずれも良好な予測子でない場合には、ビデオエンコーダ２０およびビデオデコーダ３０は、予測子としてアイデンティティフィルタ（identity filter）（すなわち、入力と出力とを同一にする、中心において１に等しい１つの非ゼロ係数（non-zero coefficient）のみを有するフィルタ）を使用する。
【００８７】
[0075]  適応ループフィルタリングのいくつかの態様は、ピクセルクラスのマージングに関する。クラスは、シグナリングフィルタ係数のオーバーヘッドを低減させるためにマージされる。２つのクラスをマージするコストは、ＳＳＥに関して（with respect to）増大される。それぞれＳＳＥｍおよびＳＳＥｎによって与えられるＳＳＥでの２つのクラスＣｍおよびＣｎを考慮する。Ｃｍ＋ｎは、ＳＳＥｍ＋ｎで表されるＳＳＥでの（with）、ＣｍとＣｎをマージすることによって得られるクラスを表すものとする。ＳＳＥｍ＋ｎは、常にＳＳＥｍ＋ＳＳＥｎ以上である。ΔＳＳＥｍ＋ｎは、ＣｍとＣｎをマージすることによって引き起こされるＳＳＥの増大を表すものとし、これは、ＳＳＥｍ＋ｎ−（ＳＳＥｍ＋ＳＳＥｎ）に等しい。ＳＳＥｍ＋ｎを計算するために、ビデオエンコーダ２０は、（１）と同様の以下の式を使用して、Ｃｍ＋ｎについてのフィルタ予測誤差であるｈΔ，ｍ＋ｎを導出し得る：
【００８８】
【数９】
2021525981.tif 000014
【００８９】
ビデオエンコーダ２０は、マージされたカテゴリＣｍ＋ｎについてのＳＳＥを次のように計算し得る：
【００９０】
【数１０】
2021525981.tif 000015
【００９１】
[0076]  クラスの数をＮからＮ−１に低減させるために、２つのクラスＣｍおよびＣｎは、それらをマージすることがその他任意の組合せと比較して最小のΔＳＳＥｍ＋ｎをもたらすように、求められる必要があり得る。いくつかのＡＬＦ設計では、ビデオエンコーダ２０は、最小のマージコストを有するペアを求めるために、マージするために利用可能なクラスの全てのペアをチェックするように構成される。
【００９２】
[0077]  ＣｍおよびＣｎ（ここで、ｍ＜ｎ）がマージされる場合には、ビデオエンコーダ２０およびビデオデコーダ３０は、Ｃｎをさらなるマージのために利用不可能であるとマークし得、Ｃｍのための自己相関および相互相関は、以下のように、組み合わされた自己相関および相互相関に変更される：
【００９３】
【数１１】
2021525981.tif 000016
【００９４】
[0078]  ビデオエンコーダ２０は、ＲＤコストに基づいて、各フレームについてのマージ後のＡＬＦクラスの最適な数を決定し得る。一例では、これは、２５個のクラスから開始し、（利用可能なクラスのセットからの）クラスのペアを、１つのクラスのみが残るまで連続的にマージすることによって行われる。マージ後に残ったクラスの可能な数（１，２，．．．，２５）ごとに、ビデオエンコーダ２０は、どのクラスが共にマージされたかを示すマップを記憶し得る。次いで、ビデオエンコーダ２０は、以下のように、ＲＤコストが最小化されるように、クラスの最適な数を選択する：
【００９５】
【数１２】
2021525981.tif 000017
【００９６】
ここで、Ｄ｜Ｎは、Ｎ個のクラスを使用した総ＳＳＥ
【００９７】
【数１３】
2021525981.tif 000018
【００９８】
であり、Ｒ｜Ｎは、Ｎ個のフィルタをコーディングするために使用されるビットの総数であり、λは、量子化パラメータ（ＱＰ：quantization parameter）によって決定される重み付け係数である。ビデオエンコーダ２０は、ビデオデコーダ３０に、どのクラスが共にマージされているかを示す、Ｎｏｐｔ個のクラスについてのマージマップを送信し得る。
【００９９】
[0079]  ＡＬＦパラメータをシグナリングすることの態様が、以下で説明される。ビデオエンコーダ２０によって実行される、例となるＡＬＦパラメータ符号化プロセスの簡単なステップごとの説明が、以下で与えられる。ビデオデコーダ３０は、逆のプロセスを実行するように構成され得る（例えば、ビデオデコーダ３０の観点からのシグナリング（signal）は、シンタックス要素の受信である）。 
１．フレームレベルＡＬＦオン／オフフラグをシグナリングする。
２．ＡＬＦがオンである場合には、前のピクチャからのフィルタの使用を示す時間的予測フラグをシグナリングする。
３．時間的予測が使用される場合には、それからの対応するＡＬＦパラメータが現在のフレームをフィルタリングするために使用されるフレームのインデックスをシグナリングする。
４．時間的予測が使用されない場合には、以下のように、補助ＡＬＦ情報およびフィルタ係数をシグナリングする：
ａ．以下の補助ＡＬＦ情報は、フィルタ係数をシグナリングする前にシグナリングされ得る。補助ＡＬＦ情報は、次のものを含み得る：
i．クラスマージ後に使用される一意のフィルタの数。 
ii．フィルタタップの数。 
iii．どのクラスがフィルタ予測誤差を共有するかを示すクラスマージ情報。 
iv．各クラスについての固定フィルタ予測子のインデックス。 
ｂ．補助ＡＬＦ情報をシグナリングした後、フィルタ係数予測誤差が、以下のようにシグナリングされ得る：
i．フラグが、マージ後に残ったクラスのうちのいくつかについて、フィルタ予測誤差が強制的にゼロ（０）にされるかどうかを示すためにシグナリングされる。
ii．フラグが、（マージ後に残ったクラスの数が１よりも大きい場合）差分コーディングがフィルタ予測誤差をシグナリングするために使用されるかどうかを示すためにシグナリングされる。
iii．次いで、フィルタ係数予測誤差は、ｋ次指数ゴロムコード（k-th order Exp-Golomb code）を使用してシグナリングされ、ここで、異なる係数位置についてのｋ値は、経験的に（empirically）選択される。 
ｃ．クロマ成分のためのフィルタ係数は、利用可能な場合、いかなる予測方法もなしに直接コーディングされる。
５．最後に、ブロックレベルＡＬＦオン／オフ制御フラグがシグナリングされる。
【０１００】
[0080]  ＪＥＭのいくつかの例における適応ループフィルタリングの設計は、１つまたは複数の潜在的な問題を提示し得る。一例として、いくつかの例となる適応ループフィルタリング設計は、フレーム全体に対して１セットのフィルタ（例えば、ピクセルの各クラスについて１つのフィルタ、またはフレームにおける複数のクラスの間で共有される１つのフィルタ）を設計するために、各フレームに対して複数のパス（pass）を実行する。このような技法は、高いエンコーダレイテンシをもたらす。高いエンコーダレイテンシは、部分的に符号化されたフレームであってもできるだけ早くチャネルに送ることが重要であり得るビデオ会議などの低遅延アプリケーションにおいて、特に問題となり得る。
【０１０１】
[0081]  別の例として、いくつかの適応ループフィルタリング設計によれば、１セットのフィルタがピクチャ全体のために使用される。元のピクチャおよび再構成されたピクチャの小さいブロックにおける局所統計（local statistics）は、ピクチャ全体を使用して得られる累積統計（cumulative statistics）とは異なり得る。したがって、ピクチャ全体に対して最適であるＡＬＦは、所与のブロックに対して最適ではない場合がある。
【０１０２】
[0082]  別の例として、より良好な局所適応性（local adaptivity）を得るために、ピクチャの小さいブロックを使用して新しいセットのウィーナーフィルタを設計することに伴う潜在的な問題は、小さいブロック中で利用可能なピクセルの数が、ビデオエンコーダ２０が相関行列およびベクトルの良好な推定値を決定するのに十分ではない場合があることである。これは、不良設定されたウィーナー・ホップの方程式をもたらし得、その結果、最適ではない（less than optimal）ＡＬＦ係数を出力し得る。
【０１０３】
[0083]  別の例として、いくつかの例となる適応ループフィルタリング設計は、２５個のクラスの各々について１６個の固定フィルタを定義し、それによって、合計４００個のフィルタをもたらす。これらのフィルタは、各クラスについての最終フィルタ係数のための予測子フィルタ（predictor filter）として使用され得る。使用される予測子フィルタのインデックスは、各クラスについてシグナリングされる。これは、高いシグナリングオーバーヘッド（signaling overhead）を引き起こし、全体的なコーディング利得（coding gain）を低減させ得る。
【０１０４】
[0084]  フィルタの固定セットを予測子として使用することの別の潜在的な欠点は、予測子セットが、前のフレームのために設計された新しいフィルタに基づいて修正されないことである。時間的に隣接するフレームは、同様の統計を有する可能性が高いので、前のフレームのための最適なフィルタを使用することは、現在のフレームのための最適なフィルタの効率的な予測をもたらし得る。
【０１０５】
[0085]  別の例として、いくつかの例となる適応ループフィルタリング設計は、ブロックレベルのフィルタオン／オフ決定を行うために、現在のフレームに対して２つのパスを必要とする。これは、追加のエンコーダレイテンシをもたらす。それについてのＡＬＦオン／オフフラグがシグナリングされるブロックは、コーディングユニット（ＣＵ）とアライン（align）しない。したがって、モード、コード化ブロックフラグ（coded block flag）などのようなＣＵ情報は、ＡＬＦオン／オフ制御決定において考慮されることができない。この情報を使用することは、オン／オフシグナリングオーバーヘッドを低減させ得る。
【０１０６】
[0086]  上記で説明された問題のうちの１つまたは複数に対処するために、本開示は、適応ループフィルタリングを使用することによって得られるコーディング利得および視覚的な品質（visual quality）をさらに改善するための技法を説明する。ビデオエンコーダ２０および／またはビデオデコーダ３０は、以下の項目別の技法のうちの任意のものを個々に適用し得る。代替として、ビデオエンコーダ２０および／またはビデオデコーダ３０は、以下で説明される項目別の技法の任意の組合せを適用し得る。
【０１０７】
[0087]  本開示の１つの例となる技法によれば、ビデオエンコーダ２０は、１つのピクチャ／スライス／タイル内のブロックごとに適応ループフィルタのセットをシグナリングし得る。例えば、ビデオデータのピクチャ、スライス、またはタイル内の、ビデオデータの各ブロックについて、ビデオエンコーダ２０は、そのブロックのために使用すべき適応ループフィルタのセットを示す１つまたは複数のシンタックス要素を符号化するように構成され得る。ビデオデコーダ３０は、そのブロックのために使用すべき適応ループフィルタのセットを決定するために、各ブロックについての１つまたは複数のシンタックス要素を復号するように構成され得る。
【０１０８】
[0088]  一例では、ビデオエンコーダ２０は、フィルタセット（例えば、適応ループフィルタの複数のセット）のリストへのセットインデックス（set index）を符号化することによって、ＡＬＦセット（例えば、上述された適応ループフィルタのセット）を示すように構成され得る。本開示では、「フィルタセット（filter set)」という用語は、適応ループフィルタの単一のセットを指し得、「フィルタセット（filter sets）」という用語は、適応ループフィルタの複数のセットを指し得、「フィルタセットリスト（filter set list）」という用語は、適応ループフィルタの複数のセットのリストを指し得る。一例では、フィルタセットリストは、適応ループフィルタの複数のセットを含み得る。すなわち、フィルタセットリストは、ピクチャ／スライス／タイルについての全ての決定された可能なフィルタセット（すなわち、適応ループフィルタの複数のセット）を含み得る。いくつかの例では、インデックスは、リスト中に含まれる適応ループフィルタの複数のセットの中から、適応ループフィルタの特定のセットを識別する。ビデオデコーダ３０は、所定のルールに従って、適応ループフィルタの複数のセットを記憶および／または決定するように構成され得る。以下で説明されるように、適応ループフィルタの複数のセットは、事前トレーニングされたフィルタ（pre-trained filter）と、現在のピクチャのためにシグナリングされた適応ループフィルタと、前のピクチャから再使用される適応ループフィルタとを含み得る。一例では、適応ループフィルタの特定のセットについて、適応ループフィルタの特定のセットの各それぞれのセットは、現在のピクチャのためにシグナリングされた現在の適応ループフィルタ（current adaptive loop filter）または事前トレーニングされた適応ループフィルタ（pre-trained adaptive loop filter）のうちの１つまたは複数を含む。ビデオデコーダ３０は、ビデオエンコーダ２０によって送られたインデックス（index）を復号し、適応ループフィルタの複数のセットの中から、ビデオデータの特定のブロックのために使用すべき適応ループフィルタのセットを決定するように構成され得る。
【０１０９】
[0089]  このようにして、ビデオエンコーダ２０およびビデオデコーダ３０は、適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定するように構成され得る。本開示の一例では、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含む。ビデオエンコーダ２０およびビデオデコーダ３０は、現在のピクチャのそれぞれのブロックについて、（例えば、ＡＬＦオン／オフフラグによって示されるように）適応ループフィルタリングがそのブロックについてイネーブルにされるケースでは、適応ループフィルタのそれぞれのセットを決定するように構成され得る。
【０１１０】
[0090]  ビデオエンコーダ２０およびビデオデコーダ３０は、適応ループフィルタのそれぞれのセットに従って、現在のピクチャのブロックを適応ループフィルタリングするようにさらに構成され得る。例えば、上記で説明されたように、ビデオエンコーダ２０およびビデオデコーダ３０は、ブロックのサンプルを分類し、次いで、分類に関連付けられた適応ループフィルタのそれぞれのセット中の適応ループフィルタを使用するように構成され得る。別の例では、ビデオエンコーダ２０は、適応ループフィルタのそれぞれのセット中のどの適応ループフィルタを現在のブロックのために使用すべきかを示すシンタックス要素をシグナリングするように構成され得る。したがって、一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、適応ループフィルタリングがそれぞれのブロックについて使用されるかどうかを示す、ブロックごとのそれぞれのフラグ（例えば、ブロックレベルＡＬＦオン／オフフラグ）をコーディングすることと、ブロックごとのそれぞれのフラグに基づいて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを示す、それぞれのシンタックス要素をコーディングすることと、を行うように構成され得る。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、適応ループフィルタリングが現在のブロックのために使用されない（例えば、ブロックレベルＡＬＦフラグが、適応ループフィルタリングがオフであるおよび／またはイネーブルにされないことを示す）ケースでは、適応ループフィルタのそれぞれのセットを示す、それぞれのシンタックス要素をコーディングしないことになる。
【０１１１】
[0091]  上記の例では、現在のピクチャの「ブロック」は、任意のサイズのブロックとして定義され得る。一例では、ブロックは、コーディングツリーユニット（ＣＴＵ）またはその他任意のブロックであり得る。ブロックは、区分化から分離され（decoupled from partitioning）得る。ブロックがＣＴＵであるケースでは、ビデオエンコーダ２０およびビデオデコーダ３０は、ＣＴＵから区分された全てのブロックについて、そのＣＴＵのために選ばれた適応ループフィルタのセットを使用するように構成され得る。
【０１１２】
[0092]  一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、適応ループフィルタの複数のセットのリストを決定するように構成され得る。ビデオエンコーダ２０およびビデオデコーダ３０は、ピクチャごと、スライスごと、またはタイルごとに、そのようなリストを決定するように構成され得る。適応ループフィルタの複数のセットの適応ループフィルタの各セットは、サンプルの各可能な分類が、関連するフィルタを有するように構成され得る。すなわち、各セットは、クラスごとに割り当てられたフィルタを含み得る。上記で説明されたように、ビデオエンコーダ２０およびビデオデコーダ３０は、ブロックごとに適応ループフィルタの複数のセットのリストへのセットインデックスをコーディングするように構成され得る。一例では、適応ループフィルタの複数のセットのリストは、テーブルであり得、ここで、テーブル中の各エントリは、適応ループフィルタの特定のセットである。加えて、ビデオエンコーダ２０およびビデオデコーダ３０は、ＡＬＦが使用されるか否かを示すために、ブロックごとのフラグ（例えば、ブロックレベルＡＬＦオン／オフフラグ）をコーディングするように構成され得る。適応ループフィルタの複数のセットのリストは、１つまたは複数の事前トレーニングされたフィルタ、前のピクチャからのフィルタを使用して導出された１つまたは複数のフィルタ、および／または現在のピクチャのためのビットストリーム中でシグナリングされたフィルタを含み得る。
【０１１３】
[0093]  本開示のいくつかの例によれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、異なるピクチャにわたって複数のフィルタセットのリストを共有し得る（例えば、前のピクチャのために使用された適応ループフィルタが、現在のブロックをコーディングするために使用される複数のフィルタセットのセット中（in a set of the plurality of filter sets）に含まれる）。一例では、フィルタセットリストは、事前トレーニングされたフィルタで初期化され得る。ピクチャをコーディングした後、ビデオエンコーダ２０は、符号化されたピクチャに基づいて新しいフィルタセットを導出し、新しいフィルタセットをフィルタセットリストに追加し得る。代替として、新しいフィルタセットは、リスト中の既存のフィルタセットを置き換え得る。別のピクチャをコーディングした後、ビデオエンコーダ２０は、別のフィルタセットを導出し、導出されたフィルタセットをフィルタセットリスト中に含め得る。この例では、フィルタセットリストは、全てのピクチャに対して共通であり、ピクチャをコーディングした後に更新され得る。デコーダ側から見ると、ビデオデコーダ３０は、ピクチャを復号した後に、またはピクチャを復号する前に、新しいフィルタセットのシグナリングを検出し得る。
【０１１４】
[0094]  本開示のいくつかの例によれば、ビデオエンコーダ２０は、ピクチャごと、スライスごと、および／またはタイルごとに、フィルタの新しいセットのシンタックス要素をシグナリング（例えば、符号化）するように構成され得る。ビデオデコーダ３０は、ビデオエンコーダ２０からのシグナリングに基づいてフィルタの新しいセットを決定し、フィルタの新しいセットを、フィルタの複数のセットを含むリストに追加するように構成され得る。
【０１１５】
[0095]  一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、フィルタの新しいセットをフィルタセットリストに追加するように構成され得る。次いで、更新されたリストが、次の１つまたは複数のピクチャ内のブロックをフィルタリングするために使用され得る。別の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、現在のピクチャ／スライス／タイル内のブロックをフィルタリングするために、（例えば、現在のピクチャ／スライス／タイルを使用して導出されたフィルタの新しいセットを含む）更新されたリストを使用するように構成され得る。
【０１１６】
[0096]  本開示のいくつかの例によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、前のピクチャ、前のスライス、および／または前のタイルを使用して導出されたフィルタを用いて、フィルタセットリスト（例えば、適応ループフィルタの複数のセットのリスト）を更新し得る。ビデオエンコーダ２０およびビデオデコーダ３０がフィルタセットリスト中に適応ループフィルタのセットを追加するように構成され得る順序は、固定か、予め定義されるか、またはフレキシブルであり得る。リストは、現在のピクチャに関連する情報と、リスト中の対応するフィルタがそれから導出されるピクチャに関連する情報とに基づいて、ピクチャごとに再順序付けされ得る。ビデオエンコーダ２０は、フィルタセットリスト中のインデックスを使用して、ビデオデコーダ３０にフィルタセットを示し得る。いくつかの例では、ビデオエンコーダ２０は、より頻繁に使用されるフィルタまたは新たに追加されたフィルタにより小さいインデックス値（smaller index value）を割り当て得る。
【０１１７】
[0097]  一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、新たに導出されたフィルタセットをリストの先頭に追加するように構成され得る。別の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、リスト中の、前のフレームを使用して導出されたフィルタのセット（例えば、前の適応ループフィルタ）を、現在シグナリングされているフィルタの後、およびリスト中の既存のフィルタセット（例えば、事前トレーニングされた固定フィルタのセット）の前に、追加するように構成され得る。別の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、現在の適応ループフィルタが最初に追加され、前の適応ループフィルタが２番目に追加され、事前トレーニングされた適応ループフィルタが最後に追加されるように、適応ループフィルタの各それぞれのセットに適応ループフィルタを追加するように構成され得る。
【０１１８】
[0098]  本開示の別の例では、リスト中のフィルタセットの順序付けは、他のピクチャ関連情報に依存し得る。例えば、現在のピクチャと同じ時間的レイヤにおけるピクチャから導出されたフィルタは、別の時間的レイヤにおけるピクチャを使用して導出されたフィルタの前に、リスト中に置かれ得る。別の例では、リスト中のフィルタセットのインデックスは、それがそこから導出される対応するピクチャが、現在のピクチャの予測のために使用される参照ピクチャであるかどうかに依存し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、他の参照ピクチャから導出されたフィルタの前に、より頻繁に使用される参照ピクチャに対応するフィルタを追加するように構成され得る。このようにしてフィルタセットを順序付けることは、フィルタセットリスト中の最も頻繁に使用されるフィルタセットのために、より少ないビットを有するシンタックス要素（例えば、フィルタセットリスト中のインデックス）をもたらし得る。したがって、より少ないビットが、ブロックのために使用されるフィルタセットをシグナリングするために使用され得、したがって、コーディング効率を増大させる。
【０１１９】
[0099]  別の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、現在のピクチャと同様の量子化パラメータ（ＱＰ：quantization parameter）を用いてコーディングされたピクチャを使用して導出されたフィルタを、異なるＱＰを用いてコーディングされた前のピクチャから導出されたフィルタの前に追加するように構成され得る。
【０１２０】
[0100]  本開示の別の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、フィルタセットリスト中のフィルタのセットの最大数を制限するように構成され得る。一例では、最大３２セットのフィルタが、フィルタセットリスト中に保持され得る。いくつかの例では、ビデオエンコーダ２０は、スライスヘッダ、シーケンスパラメータセット、ピクチャパラメータセットの中で、他の高レベルシンタックス情報の中で、またはその他の場所で、リスト中のフィルタセットの最大数をシグナリングするように構成され得る。
【０１２１】
[0101]  本開示の別の例では、ビデオエンコーダ２０は、異なるフィルタセットインデックスをシグナリングするために、異なる数のビットを使用し得る。より高いインデックス位置と比較して、より少ないビットがリスト中のより低いインデックス位置を示すために使用され得る（これは、リストの最上部付近のフィルタセットは、選択される可能性がより高いからである）。先と同様に、これは、より頻繁にブロックのために使用されるフィルタセットをシグナリングするために、より少ないビットが使用されることをもたらし得、したがって、コーディング効率を増大させる。
【０１２２】
[0102]  本開示のいくつかの例によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、いくつかのブロックに関してＡＬＦ情報を共有する（例えば、２つ以上のブロックにわたるＡＬＦ情報のマージング）ように構成され得る。一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、複数のブロックにわたって、フィルタのセットのインデックスおよび／またはＡＬＦオン／オフフラグ（このフラグは、適応ループフィルタリングがブロックに適用されるかどうかを示す）を共有するように構成され得る。ＡＬＦマージインジケータは、どのブロックがマージされるか、およびどのＡＬＦ情報がＡＬＦマージインジケータに関連付けられているかを示し得る。マージインジケータ（merge indicator）は、インデックス、フラグ、またはその他任意のシンタックス要素であり得る。
【０１２３】
[0103]  一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ブロックのＡＬＦ情報を、上のブロックと、または左のブロックとマージするように構成され得る。他の例では、１つのブロックと、ピクチャ内のその他任意のブロック（すなわち、必ずしも隣接ブロックではない）とのマージングを可能にする、よりフレキシブルなＡＬＦ情報マージングも使用され得る。
【０１２４】
[0104]  本開示のいくつかの例では、ビデオデコーダ３０は、他の既存のブロック情報に基づいて、ＡＬＦオン／オフフラグを導出するように構成され得る。一例では、ビデオデコーダ３０は、既存のブロック情報に基づいて、ＡＬＦオン／オフフラグを導出し得、したがって、ビデオエンコーダ２０は、ＡＬＦオン／オフフラグをシグナリングしない場合がある。ビデオエンコーダ２０は、ＡＬＦブロックとして示される、ブロックのグループのためのＡＬＦオン／オフフラグをシグナリングし得る。ＡＬＦブロックのサイズは、予め決定され得るか、またはビデオエンコーダ２０によってシグナリングされ得る。一例では、同じＡＬＦオン／オフフラグを共有するブロックは、ＡＬＦブロックを表し得る。別の例では、ＡＬＦブロックは、１つのブロックに等しくあり得る。
ａ．一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、非ゼロコード化ブロックフラグ（ＣＢＦ：coded block flag）を有する、同じＡＬＦオン／オフフラグを共有する、ＡＬＦブロック中のブロックの数に基づいて、ＡＬＦオン／オフフラグを導出するように構成され得る。ＣＢＦは、ブロックが何らかの有意（significant）（例えば、非ゼロ変換係数（non-zero transform coefficient））を含むかどうかを示す。ＣＢＦの「１」の値は、ブロックが非ゼロ変換係数を含むことを示す。非ゼロＣＢＦの数がある特定のしきい値よりも小さい場合には、ＡＬＦがディセーブルにされ得るか、またはデフォルトＡＬＦフィルタが、ＡＬＦブロック中のそれらのブロックに適用され得る。
ｂ．上記のサブブレット（sub-bullet）「ａ」の例では、非ゼロ変換係数の数が、ＣＢＦの代わりにカウントされ得る。しきい値がカウントされた係数に対して導入され得、非ゼロ変換係数の数がしきい値よりも小さい場合、適応ループフィルタリングが、ＡＬＦブロック中に含まれるブロックに対してディセーブルにされ得るか、またはデフォルトＡＬＦフィルタが、それらのブロックに適用され得る。
ｃ．別の例では、スキップモード（skip mode）でコーディングされたＡＬＦブロック中のブロックの数が、ある特定のしきい値よりも大きい場合には、適応ループフィルタリングが、ＡＬＦブロック中のそれらのブロックに対してディセーブルにされ得る。サブブレット「ｃ」の技法は、任意の組合せにおいて、サブブレット「ａ」および「ｂ」の技法とともに使用され得る。
ｄ．上記のサブブレット「ｃ」の例では、スキップモードは一例として使用されており、他のコーディングモード（例えば、特定のイントラ予測方向などの特定のモード（particular mode）、特定のインター予測モードなど）が、ＡＬＦオン／オフフラグを導出する際に利用され得る。
【０１２５】
[0105]  図４は、本開示で説明される技法をインプリメントし得る、例となるビデオエンコーダ２０を例示するブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間的冗長性を低減または除去するために、空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣り合ったフレームまたはピクチャ内のビデオにおける時間的冗長性を低減または除去するために、時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのうちの任意のものを指し得る。片方向予測（Ｐモード）または双予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのうちの任意のものを指し得る。
【０１２６】
[0106]  図４の例では、ビデオエンコーダ２０は、ビデオデータメモリ３３、区分化ユニット３５、予測処理ユニット４１、加算器５０、変換処理ユニット５２、量子化ユニット５４、エントロピー符号化ユニット５６を含む。予測処理ユニット４１は、動き推定ユニット（ＭＥＵ：motion estimation unit）４２、動き補償ユニット（ＭＣＵ：motion compensation unit）４４、およびイントラ予測ユニット４６を含む。ビデオブロックの再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８、逆変換処理ユニット６０、加算器６２、フィルタユニット６４、および復号ピクチャバッファ（ＤＰＢ：decoded picture buffer）６６を含む。
【０１２７】
[0107]  図４に示されるように、ビデオエンコーダ２０は、ビデオデータを受信し、受信されたビデオデータをビデオデータメモリ３３に記憶する。ビデオデータメモリ３３は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ３３に記憶されるビデオデータは、例えば、ビデオソース１８から取得され得る。ＤＰＢ６６は、例えば、イントラまたはインターコーディングモードで、ビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ３３およびＤＰＢ６６は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのうちの任意のものによって形成され得る。ビデオデータメモリ３３およびＤＰＢ６６は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ３３は、ビデオエンコーダ２０の他の構成要素とともにオンチップであり得、またはこれらの構成要素に対してオフチップであり得る。
【０１２８】
[0108]  区分化ユニット３５は、ビデオデータメモリ３３からビデオデータを取り出し、ビデオデータをビデオブロックに区分する。この区分化はまた、スライス、タイル、または他のより大きいユニットへの区分化のみならず、例えば、ＬＣＵおよびＣＵの４分木構造による、ビデオブロック区分化も含み得る。ビデオエンコーダ２０は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を例示する。スライスは、複数のビデオブロックに（および、場合によっては、タイルと呼ばれるビデオブロックのセットに）分割され得る。予測処理ユニット４１は、エラー結果（例えば、コーディングレートおよび歪みのレベル）に基づいて、現在のビデオブロックのために、複数のイントラコーディングモードのうちの１つまたは複数のインターコーディングモードのうちの１つなど、複数の可能なコーディングモードのうちの１つを選択し得る。予測処理ユニット４１は、残差ブロックデータを生成するために加算器５０に、および参照ピクチャとして使用するための符号化されたブロックを再構成するために加算器６２に、結果として得られたイントラまたはインターコーディングされたブロックを提供し得る。
【０１２９】
[0109]  予測処理ユニット４１内のイントラ予測ユニット４６は、空間的圧縮を提供するために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに関連して（relative to）、現在のビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット４１内の動き推定ユニット４２および動き補償ユニット４４は、時間的圧縮を提供するために、１つまたは複数の参照ピクチャ内の１つまたは複数の予測ブロックに関連して、現在のビデオブロックのインター予測コーディングを実行する。
【０１３０】
[0110]  動き推定ユニット４２は、ビデオシーケンスのための所定のパターンに従って、ビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、ＰスライスまたはＢスライスとして、シーケンス中のビデオスライスを指定し得る。動き推定ユニット４２および動き補償ユニット４４は、高度に一体化され得るが、概念的な目的のために別個に例示されている。動き推定ユニット４２によって実行される動き推定は、動きベクトルを生成するプロセスであり、これは、ビデオブロックに関する動きを推定する。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。
【０１３１】
[0111]  予測ブロックは、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリクスによって決定され得るピクセル差分の観点から、コーディングされるべきビデオブロックのＰＵと密接に一致することが見出されたブロックである。いくつかの例では、ビデオエンコーダ２０は、ＤＰＢ６６に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。例えば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置および分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【０１３２】
[0112]  動き推定ユニット４２は、ＰＵの位置と、参照ピクチャの予測ブロックの位置とを比較することによって、インターコーディングされたスライス中のビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、その各々がＤＰＢ６６に記憶された１つまたは複数の参照ピクチャを識別する、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得る。動き推定ユニット４２は、計算された動きベクトルを、エントロピー符号化ユニット５６および動き補償ユニット４４に送る。
【０１３３】
[0113]  動き補償ユニット４４によって実行される動き補償は、動き推定によって決定される動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得、場合によっては、サブピクセル精度までの（to sub-pixel precision）補間（interpolation）を実行する。現在のビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリストのうちの１つにおいて動きベクトルがそれを指し示す予測ブロックを位置特定し得る。ビデオエンコーダ２０は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックについての残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際に、ビデオデコーダ３０によって使用するための、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成し得る。
【０１３４】
[0114]  予測処理ユニット４１が、イントラ予測またはインター予測のいずれかを介して、現在のビデオブロックについての予測ブロックを生成した後、ビデオエンコーダ２０は、現在のビデオブロックから予測ブロックを減算することによって、残差ビデオブロックを形成する。残差ブロックにおける残差ビデオデータは、１つまたは複数のＴＵに含まれ、変換処理ユニット５２に適用され得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ：discrete cosine transform）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット５２は、残差ビデオデータを、ピクセル領域から周波数領域などの変換領域に変換し得る。
【０１３５】
[0115]  変換処理ユニット５２は、結果として得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減させるために、変換係数を量子化する。量子化プロセスは、係数の一部または全てに関連付けられたビット深度を低減させ得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化された変換係数を含む行列の走査を実行し得る。別の例では、エントロピー符号化ユニット５６が走査を実行し得る。
【０１３６】
[0116]  量子化に続いて、エントロピー符号化ユニット（entropy encoding unit）５６は、量子化された変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット５６は、コンテキスト適応可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースのコンテキスト適応バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分化エントロピー（ＰＩＰＥ：probability interval partitioning entropy）コーディング、または別のエントロピー符号化方法または技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化に続いて、符号化されたビットストリームは、ビデオデコーダ３０に送信されるか、またはビデオデコーダ３０による後の送信または取り出しのためにアーカイブされ得る。エントロピー符号化ユニット５６はまた、予測処理ユニット４１によって提供される、コーディングされている現在のビデオスライスのための動きベクトルおよび他のシンタックス要素をエントロピー符号化し得る。
【０１３７】
[0117]  逆量子化ユニット５８および逆変換処理ユニット６０は、参照ピクチャの参照ブロックとして後に使用するための、ピクセル領域における残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４は、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定の際に使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに１つまたは複数の補間フィルタを適用し得る。加算器６２は、再構成されたブロックを生成するために、動き補償ユニット４４によって生成された、動き補償された予測ブロックに、再構成された残差ブロックを加算する。
【０１３８】
[0118]  フィルタユニット６４は、再構成されたブロック（例えば、加算器６２の出力）をフィルタリングし、参照ブロックとしての使用のために、フィルタされた再構成されたブロックをＤＰＢ６６に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するための参照ブロックとして、動き推定ユニット４２および動き補償ユニット４４によって使用され得る。フィルタユニット６４は、デブロックフィルタリング、ＳＡＯフィルタリング、ピークＳＡＯフィルタリング、ＡＬＦ、および／またはＧＡＬＦ、および／または他のタイプのループフィルタなどの、任意のタイプのフィルタリングを実行し得る。デブロックフィルタは、例えば、ブロック境界をフィルタリングして、再構成されたビデオからブロッキネスアーティファクト（blockiness artifacts）を除去するために、デブロッキングフィルタリングを適用し得る。ピークＳＡＯフィルタは、コーディング品質全体を改善するために、再構成されたピクセル値にオフセットを適用し得る。追加のループフィルタ（インループまたはポストループ）もまた使用され得る。
【０１３９】
[0119]  加えて、フィルタユニット６４は、適応ループフィルタリングに関する本開示における技法のうちの任意のものを実行するように構成され得る。特に、上記で説明されたように、フィルタユニット６４は、適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定することと、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含み、適応ループフィルタのそれぞれのセットに従って、現在のピクチャのブロックを適応ループフィルタリングすることと、を行うように構成され得る。
【０１４０】
[0120]  図５は、本開示で説明される技法をインプリメントし得る、例となるビデオデコーダ３０を例示するブロック図である。図５のビデオデコーダ３０は、例えば、図４のビデオエンコーダ２０に関して上記で説明されたシグナリングを受信するように構成され得る。図５の例では、ビデオデコーダ３０は、ビデオデータメモリ７８、エントロピー復号ユニット８０、予測処理ユニット８１、逆量子化ユニット８６、逆変換処理ユニット８８、加算器９０、ＤＰＢ９４、およびフィルタユニット９２を含む。予測処理ユニット８１は、動き補償ユニット８２およびイントラ予測ユニット８４を含む。ビデオデコーダ３０は、いくつかの例では、図４からのビデオエンコーダ２０に関して説明された符号化パスとは概して逆の復号パスを実行し得る。
【０１４１】
[0121]  復号プロセス中、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオデコーダ３０は、受信された符号化されたビデオビットストリームをビデオデータメモリ７８に記憶する。ビデオデータメモリ７８は、ビデオデコーダ３０の構成要素によって復号されるべき、符号化されたビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ７８に記憶されたビデオデータは、例えば、リンク１６を介して、記憶デバイス２６から、またはカメラ（camera）などのローカルビデオソースから、または物理データ記憶媒体にアクセスすることによって、取得され得る。ビデオデータメモリ７８は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ：coded picture buffer）を形成し得る。ＤＰＢ９４は、例えば、イントラまたはインターコーディングモードで、ビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ７８およびＤＰＢ９４は、ＤＲＡＭ、ＳＤＲＡＭ、ＭＲＡＭ、ＲＲＡＭ、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのうちの任意のものによって形成され得る。ビデオデータメモリ７８およびＤＰＢ９４は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ７８は、ビデオデコーダ３０の他の構成要素とともにオンチップであり得、またはそれらの構成要素に対してオフチップであり得る。
【０１４２】
[0122]  ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化された係数、動きベクトル、および他のシンタックス要素を生成するために、ビデオデータメモリ７８に記憶されたビデオデータをエントロピー復号する。エントロピー復号ユニット８０は、予測処理ユニット８１に動きベクトルおよび他のシンタックス要素を転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【０１４３】
[0123]  ビデオスライスがイントラコーディングされた（Ｉ）スライスとしてコーディングされるとき、予測処理ユニット８１のイントラ予測ユニット８４は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックについての予測データを生成し得る。ビデオフレームがインターコーディングされたスライス（例えば、ＢスライスまたはＰスライス）としてコーディングされるとき、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックについての予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、ＤＰＢ９４に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０およびリスト１を構成し得る。
【０１４４】
[0124]  動き補償ユニット８２は、動きベクトルと他のシンタックス要素とをパースすることによって、現在のビデオスライスのビデオブロックについての予測情報を決定し、復号されている現在のビデオブロックについての予測ブロックを作成するために予測情報を使用する。例えば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（例えば、イントラまたはインター予測）と、インター予測スライスタイプ（例えば、ＢスライスまたはＰスライス）と、スライスのための参照ピクチャリストのうちの１つまたは複数についての構成情報と、スライスの各インター符号化されたビデオブロックについての動きベクトルと、スライスの各インターコーディングされたビデオブロックについてのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【０１４５】
[0125]  動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８２は、参照ブロックのサブ整数ピクセルについての補間された値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用されたような補間フィルタを使用し得る。このケースでは、動き補償ユニット８２は、受信されたシンタックス要素から、ビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するために、この補間フィルタを使用し得る。
【０１４６】
[0126]  逆量子化ユニット８６は、ビットストリームにおいて提供されてエントロピー復号ユニット８０によって復号された、量子化された変換係数を逆量子化、すなわち量子化解除する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス中の各ビデオブロックについてビデオエンコーダ２０によって計算された量子化パラメータの使用を含み得る。逆変換処理ユニット８８は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換、例えば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを適用する。
【０１４７】
[0127]  予測処理ユニット８１が、例えば、イントラまたはインター予測を使用して現在のビデオブロックについての予測ブロックを生成した後、ビデオデコーダ３０は、逆変換処理ユニット８８からの残差ブロックを、動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、再構成されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数の構成要素を表す。
【０１４８】
[0128]  フィルタユニット９２は、再構成されたブロック（例えば、加算器９０の出力）をフィルタリングし、参照ブロックとしての使用のために、フィルタされた再構成されたブロックをＤＰＢ９４に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャ内のブロックをインター予測するための参照ブロックとして、動き補償ユニット８２によって使用され得る。フィルタユニット９２は、デブロックフィルタリング、ＳＡＯフィルタリング、ピークＳＡＯフィルタリング、ＡＬＦ、および／またはＧＡＬＦ、および／または他のタイプのループフィルタなどの、任意のタイプのフィルタリングを実行し得る。デブロックフィルタは、例えば、ブロック境界をフィルタリングして、再構成されたビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタリングを適用し得る。ピークＳＡＯフィルタは、コーディング品質全体を改善するために、再構成されたピクセル値にオフセットを適用し得る。追加のループフィルタ（インループまたはポストループ）もまた使用され得る。
【０１４９】
[0129]  加えて、フィルタユニット９２は、適応ループフィルタリングに関する本開示における技法のうちの任意のものを実行するように構成され得る。特に、上記で説明されたように、フィルタユニット９２は、適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定することと、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含み、適応ループフィルタのそれぞれのセットに従って、現在のピクチャのブロックを適応ループフィルタリングすることと、を行うように構成され得る。
【０１５０】
[0130]  図６は、フィルタユニット９２の例となるインプリメンテーションを示す。フィルタユニット６４は、同様にインプリメントされ得る。フィルタユニット６４および９２は、場合によっては、ビデオエンコーダ２０またはビデオデコーダ３０の他の構成要素と連携して、本開示の技法を実行し得る。図６の例では、フィルタユニット９２は、デブロックフィルタ１０２、ＳＡＯフィルタ１０４、およびＡＬＦ／ＧＡＬＦフィルタ１０６を含む。ＳＡＯフィルタ１０４は、例えば、本開示で説明される方法で、ブロックのサンプルに対するオフセット値を決定するように構成され得る。ＡＬＦ／ＧＡＬＦフィルタ１０６は、適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定することと、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含み、適応ループフィルタのそれぞれのセットに従って、現在のピクチャのブロックを適応ループフィルタリングすることと、を行うように構成され得る。
【０１５１】
[0131]  フィルタユニット９２は、より少数のフィルタを含み得、および／または追加のフィルタを含み得る。加えて、図６に示される特定のフィルタは、異なる順序でインプリメントされ得る。他のループフィルタ（コーディングループ中またはコーディングループ後のいずれか）もまた、ピクセル遷移を平滑化するか、または別の方法でビデオ品質を改善するために使用され得る。次いで、所与のフレームまたはピクチャ内の復号されたビデオブロックは、後続の動き補償のために使用される参照ピクチャを記憶するＤＰＢ９４に記憶される。ＤＰＢ９４は、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する追加のメモリの一部であるか、またはそれとは別個であり得る。
【０１５２】
[0132]  図７は、本開示の例となる方法を例示するフローチャートである。図７の技法は、フィルタユニット６４およびフィルタユニット９２を含む、ビデオエンコーダ２０およびビデオデコーダ３０の１つまたは複数の構造ユニットによって実行され得る。上記で説明されたように、「コーディング（coding）」という用語は、一般に、符号化と復号の両方を指す。同様に、「コーディングする（code）」という用語は、一般に、符号化すると復号するとの両方を指す。
【０１５３】
[0133]  本開示の一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、適応ループフィルタリングが使用されるブロックについて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを決定するように構成され得、ここにおいて、適応ループフィルタの各それぞれのセットは、１つまたは複数の前のピクチャにおいて使用された前の適応ループフィルタを含む（７００）。一例では、適応ループフィルタのそれぞれのセットを決定するために、ビデオエンコーダ２０およびビデオデコーダ３０は、適応ループフィルタリングがそれぞれのブロックについて使用されるかどうかを示す、ブロックごとのそれぞれのフラグをコーディングすることと、ブロックごとのそれぞれのフラグに基づいて、現在のピクチャのブロックごとに、適応ループフィルタの複数のセットの中から、適応ループフィルタのそれぞれのセットを示す、それぞれのシンタックス要素をコーディングすることと、を行うようにさらに構成される。一例では、それぞれのシンタックス要素は、適応ループフィルタの複数のセットを含むリストへのインデックス（an index to a list）である。ビデオエンコーダ２０およびビデオデコーダ３０は、適応ループフィルタのそれぞれのセットに従って、現在のピクチャのブロックを適応ループフィルタリングするようにさらに構成され得る（７０２）。
【０１５４】
[0134]  図８は、本開示の別の例となる方法を例示するフローチャートである。図８は、図７の技法の例をより詳細に示す。例えば、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオデータの再構成されたブロックを作成するために、現在のピクチャ内のビデオデータのブロックをコーディングするように構成され得る（８００）。すなわち、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオデータの第１の再構成されたブロック（first reconstructed block）を作成するために、現在のピクチャ内のビデオデータの第１のブロック（first block）をコーディングするように構成され得る。
【０１５５】
[0135]  次いで、ビデオエンコーダ２０およびビデオデコーダ３０は、ブロックレベルＡＬＦオン／オフフラグがオンであるかどうかを決定するように構成され得る（８０２）。ＮＯの場合、ビデオエンコーダ２０およびビデオデコーダ３０は、ＡＬＦを適用せず、代わりに、ビデオデータの次のブロックをコーディングすることに進む（８１０）。ＹＥＳの場合、ビデオエンコーダ２０およびビデオデコーダ３０は、そのブロックのために、適応ループフィルタのセットを示すシンタックス要素をコーディングする（８０４）。例えば、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオデータの第１のブロックのために、適応ループフィルタの複数のセットの中から適応ループフィルタの第１のセット（first set）を示す、第１のシンタックス要素（first syntax element）をコーディングする。
【０１５６】
[0136]  次いで、ビデオエンコーダ２０およびビデオデコーダ３０は、現在コーディングされているブロックのための適応ループフィルタのセットから適応ループフィルタを決定し得る（８０６）。例えば、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオデータの第１の再構成されたブロックのための適応ループフィルタの第１のセットから、第１の適応ループフィルタ（first adaptive loop filter）を決定し得る。次いで、ビデオエンコーダ２０およびビデオデコーダ３０は、再構成されたブロックに適応ループフィルタを適用し得る（８０８）。次いで、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオデータの次のブロックをコーディングすることに進み得る（８１０）。例えば、ビデオデータの次のブロックは、ビデオデータの第２のブロック（second block）であり得る。次いで、図８のプロセスは繰り返される。本開示の技法を実行するとき、ビデオデータの次のブロック（例えば、ビデオデータの第２のブロック）のための適応ループフィルタのセットを決定するとき、ビデオデータの第２のブロックのための適応ループフィルタのセットは、ビデオデータの他のブロックのために使用される適応ループフィルタのセットとは異なり得ることに留意されたい。
【０１５７】
[0137]  １つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せでインプリメントされ得る。ソフトウェアでインプリメントされる場合、これら機能は、コンピュータ可読媒体上で１つまたは複数の命令またはコードとして記憶または送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、１つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体、またはデータ記憶媒体のような有形の媒体に対応するコンピュータ可読記憶媒体を含み得る。このように、コンピュータ可読媒体は一般に、（１）非一時的である有形のコンピュータ可読記憶媒体、または（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法のインプリメンテーションのための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１５８】
[0138]  限定ではなく例として、このようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶デバイス、フラッシュメモリ、あるいは、データ構造または命令の形式で所望のプログラムコードを記憶するために使用され得、かつコンピュータによってアクセスされ得るその他任意の媒体のうちの任意のものであり得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、またはその他の遠隔ソースから送信される場合には、この同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まないが、代わりに非一時的な有形の記憶媒体に向けられることが理解されるべきである。本明細書で使用される場合、ディスク（disk）およびディスク（disc）は、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタル多目的ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、およびブルーレイ（登録商標）ディスクを含み、ここでディスク（disk）は、通常磁気的にデータを再生し、一方ディスク（disc）は、レーザーを用いて光学的にデータを再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１５９】
[0139]  命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等の集積されたまたはディスクリートロジック回路などの、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される場合、「プロセッサ」という用語は、任意の前述の構造または本明細書で説明された技法のインプリメンテーションに好適なその他任意の構造を指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内で提供され得、または、複合コーデックに組み込まれ得る。また、これら技法は、１つまたは複数の回路または論理要素において完全にインプリメントされ得る。
【０１６０】
[0140]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、幅広い様々なデバイスまたは装置でインプリメントされ得る。様々な構成要素、モジュール、またはユニットが、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するために、本開示において説明されているが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上記で説明されたように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられるか、または、好適なソフトウェアおよび／またはファームウェアと併せて、上記で説明されたような１つまたは複数のプロセッサを含む、相互運用ハードウェアユニットの集合によって提供され得る。
【０１６１】
[0141]  様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。
【図１】
2021525981.tif 000019
【図２】
2021525981.tif 000020
【図３Ａ】
2021525981.tif 000021
【図３Ｂ】
2021525981.tif 000022
【図３Ｃ】
2021525981.tif 000023
【図３Ｄ】
2021525981.tif 000024
【図４】
2021525981.tif 000025
【図５】
2021525981.tif 000026
【図６】
2021525981.tif 000027
【図７】
2021525981.tif 000028
【図８】
2021525981.tif 000029
【国際調査報告】
2021525981.tif 000030
2021525981.tif 000031