(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
範囲組合せとフィルタとのマッピングを生成することと、
ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備え、
前記第１のメトリックは、ピクセルのブロックのピクセル値に基づいて判断され、
前記第２のメトリックは、前記ピクセルのブロックの前記ピクセル値に基づいて判断され、
前記第２のメトリックは、前記第１のメトリックとは異なる、
復号された現在の範囲組合せが以前に復号された範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、前記復号された現在の範囲組合せを前記同じフィルタにマッピングすることと、ここで、前記復号された現在の範囲組み合わせは、前記範囲組み合わせの知られている送信順序に基づいて判断される、
前記復号された現在の範囲組合せが前記以前に復号された範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、前記復号された現在の範囲組合せを新しいフィルタにマッピングすることと
を備える、方法。
【請求項２】
前記新しいフィルタは、フィルタ係数がシグナリングされる順序に基づいて判断される、
請求項１に記載の方法。
【請求項３】
前記第１のメトリックは、アクティビティメトリックを備え、前記第２のメトリックは、方向メトリックを備える、
請求項１に記載の方法。
【請求項４】
前記方向メトリックは、水平アクティビティの測定値を垂直アクティビティの測定値と比較することに基づいて判断される、
請求項３に記載の方法。
【請求項５】
水平アクティビティの前記測定値は、現在のピクセルのピクセル値を左の隣接ピクセルのピクセル値および右の隣接ピクセルのピクセル値と比較することに基づいて判断される、
請求項４に記載の方法。
【請求項６】
垂直アクティビティの前記測定値は、現在のピクセルのピクセル値を上の隣接ピクセルのピクセル値および下の隣接ピクセルのピクセル値と比較することに基づいて判断される、
請求項４に記載の方法。
【請求項７】
前記アクティビティメトリックは、水平アクティビティの前記測定値と垂直アクティビティの前記測定値との和に基づいて判断される、
請求項４に記載の方法。
【請求項８】
前記復号する方法は、複数のフィルタを用いた４分木ベース適応ループフィルタ（ＱＡＬＦ）スキームを実装する、
請求項１に記載の方法。
【請求項９】
ビデオデータをコーディングするための装置であって、前記装置は、
範囲組合せとフィルタとのマッピングを生成することと、
ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備え、
前記第１のメトリックは、ピクセルのブロックのピクセル値に基づいて判断され、
前記第２のメトリックは、前記ピクセルのブロックの前記ピクセル値に基づいて判断され、
前記第２のメトリックは、前記第１のメトリックとは異なる、
復号された現在の範囲組合せが以前に復号された範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、前記復号された現在の範囲組合せを前記以前に復号された範囲組合せと前記同じフィルタにマッピングすることと、ここで、前記復号された現在の範囲組み合わせは、前記範囲組み合わせの知られている送信順序に基づいて判断される、
前記復号された現在の範囲組合せは前記以前に復号された範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、前記復号された現在の範囲組合せを前記第２のコードワードによって識別されるフィルタにマッピングすることと
を行うように構成されるビデオデコーダを備える、
装置。
【請求項１０】
前記新しいフィルタは、フィルタ係数がシグナリングされる順序に基づいて判断される、
請求項９に記載の装置。
【請求項１１】
前記第１のメトリックは、アクティビティメトリックを備え、前記第２のメトリックは、方向メトリックを備える、
請求項９に記載の装置。
【請求項１２】
前記方向メトリックは、水平アクティビティの測定値を垂直アクティビティの測定値と比較することに基づいて判断される、
請求項１１に記載の装置。
【請求項１３】
水平アクティビティの前記測定値は、現在のピクセルのピクセル値を左の隣接ピクセルのピクセル値および右の隣接ピクセルのピクセル値と比較することに基づいて判断される、
請求項１２に記載の装置。
【請求項１４】
垂直アクティビティの前記測定値は、現在のピクセルのピクセル値を上の隣接ピクセルのピクセル値および下の隣接ピクセルのピクセル値と比較することに基づいて判断される、
請求項１２に記載の装置。
【請求項１５】
前記アクティビティメトリックは、水平アクティビティの前記測定値と垂直アクティビティの前記測定値との和に基づいて判断される、
請求項１２に記載の装置。
【請求項１６】
前記ビデオデコーダは、複数のフィルタを用いた４分木ベース適応ループフィルタ（ＱＡＬＦ）スキームを実装する、
請求項９に記載の装置。
【請求項１７】
範囲組合せとフィルタとのマッピングを生成するための手段と、
ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備え、
前記第１のメトリックは、ピクセルのブロックのピクセル値に基づいて判断され、
前記第２のメトリックは、前記ピクセルのブロックの前記ピクセル値に基づいて判断され、
前記第２のメトリックは、前記第１のメトリックとは異なる、
復号された現在の範囲組合せが以前に復号された範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、前記復号された現在の範囲組合せを前記以前に復号された範囲組合せと前記同じフィルタにマッピングするための手段と、ここで、前記復号された現在の範囲組み合わせは、前記範囲組み合わせの知られている送信順序に基づいて判断される、
前記復号された現在の範囲組合せが前記以前に復号された範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、前記復号された現在の範囲組合せを前記第２のコードワードによって識別されるフィルタにマッピングするための手段と
を備える装置。
【請求項１８】
実行されたとき、１つまたは複数のプロセッサに、
範囲組合せとフィルタとのマッピングを生成することと、
ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備え、
前記第１のメトリックは、ピクセルのブロックのピクセル値に基づいて判断され、
前記第２のメトリックは、前記ピクセルのブロックの前記ピクセル値に基づいて判断され、
前記第２のメトリックは、前記第１のメトリックとは異なる、
復号された現在の範囲組合せが以前に復号された範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、前記復号された現在の範囲組合せを前記以前に復号された範囲組合せと前記同じフィルタにマッピングすることと、ここで、前記復号された現在の範囲組み合わせは、前記範囲組み合わせの知られている送信順序に基づいて判断される、
前記復号された現在の範囲組合せが前記以前に復号された範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、前記復号された現在の範囲組合せを前記第２のコードワードによって識別されるフィルタにマッピングすることと
を行わせる、命令を記憶したコンピュータ可読記憶媒体。
【請求項１９】
ビデオデータを符号化する方法であって、
範囲組合せとフィルタとのマッピングを判断することと、
ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備え、
前記第１のメトリックは、ピクセルのブロックのピクセル値に基づいて判断され、
前記第２のメトリックは、前記ピクセルのブロックの前記ピクセル値に基づいて判断され、
前記第２のメトリックは、前記第１のメトリックとは異なる、
復号された現在の範囲組合せが以前に復号された範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、ここで、前記復号された現在の範囲組み合わせは、前記範囲組み合わせの知られている送信順序に基づいて判断される、
前記復号された現在の範囲組合せが前記以前に復号された範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成することと
を備え、前記第２のコードワードは、前記復号された現在の範囲組合せにマッピングされたフィルタを識別する、
方法。
【請求項２０】
前記新しいフィルタは、フィルタ係数がシグナリングされる順序に基づいて判断される、
請求項１９に記載の方法。
【請求項２１】
前記第１のメトリックは、アクティビティメトリックを備え、前記第２のメトリックは、方向メトリックを備える、
請求項１９に記載の方法。
【請求項２２】
前記方向メトリックは、水平アクティビティの測定値を垂直アクティビティの測定値と比較することに基づいて判断される、
請求項２１に記載の方法。
【請求項２３】
水平アクティビティの前記測定値は、現在のピクセルのピクセル値を左の隣接ピクセルのピクセル値および右の隣接ピクセルのピクセル値と比較することに基づいて判断される、
請求項２２に記載の方法。
【請求項２４】
垂直アクティビティの前記測定値は、現在のピクセルのピクセル値を上の隣接ピクセルのピクセル値および下の隣接ピクセルのピクセル値と比較することに基づいて判断される、
請求項２２に記載の方法。
【請求項２５】
前記アクティビティメトリックは、水平アクティビティの前記測定値と垂直アクティビティの前記測定値との和に基づいて判断される、
請求項２２に記載の方法。
【請求項２６】
前記ビデオを符号化する方法は、複数のフィルタを用いた４分木ベース適応ループフィルタ（ＱＡＬＦ）スキームを実装する、
請求項１９に記載の方法。
【請求項２７】
ビデオデータをコーディングするための装置であって、
範囲組合せとフィルタとのマッピングを判断することと、
ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備え、
前記第１のメトリックは、ピクセルのブロックのピクセル値に基づいて判断され、
前記第２のメトリックは、前記ピクセルのブロックの前記ピクセル値に基づいて判断され、
前記第２のメトリックは、前記第１のメトリックとは異なる、
復号された現在の範囲組合せが以前に復号された範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、ここで、前記復号された現在の範囲組み合わせは、前記範囲組み合わせの知られている送信順序に基づいて判断される、
前記復号された現在の範囲組合せが前記以前に復号された範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成することと
を行うように構成されたビデオエンコーダを備え、前記第２のコードワードは、前記復号された現在の範囲組合せにマッピングされたフィルタを識別する、
装置。
【請求項２８】
新しいフィルタは、フィルタ係数がシグナリングされる順序に基づいて判断される、
請求項２７に記載の装置。
【請求項２９】
前記第１のメトリックは、アクティビティメトリックを備え、前記第２のメトリックは、方向メトリックを備える、
請求項２７に記載の装置。
【請求項３０】
前記方向メトリックは、水平アクティビティの測定値を垂直アクティビティの測定値と比較することに基づいて判断される、
請求項２９に記載の装置。
【請求項３１】
水平アクティビティの前記測定値は、現在のピクセルのピクセル値を左の隣接ピクセルのピクセル値および右の隣接ピクセルのピクセル値と比較することに基づいて判断される、
請求項３０に記載の装置。
【請求項３２】
垂直アクティビティの前記測定値は、現在のピクセルのピクセル値を上の隣接ピクセルのピクセル値および下の隣接ピクセルのピクセル値と比較することに基づいて判断される、
請求項３０に記載の装置。
【請求項３３】
前記アクティビティメトリックは、水平アクティビティの前記測定値と垂直アクティビティの前記測定値との和に基づいて判断される、
請求項３０に記載の装置。
【請求項３４】
前記ビデオエンコーダは、複数のフィルタを用いた４分木ベース適応ループフィルタ（ＱＡＬＦ）スキームを実装する、
請求項２７に記載の装置の方法。
【請求項３５】
範囲組合せとフィルタとのマッピングを判断するための手段と、
ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備え、
前記第１のメトリックは、ピクセルのブロックのピクセル値に基づいて判断され、
前記第２のメトリックは、前記ピクセルのブロックの前記ピクセル値に基づいて判断され、
前記第２のメトリックは、前記第１のメトリックとは異なる、
復号された現在の範囲組合せが以前に復号された範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成するための手段と、ここで、前記復号された現在の範囲組み合わせは、前記範囲組み合わせの知られている送信順序に基づいて判断される、
前記復号された現在の範囲組合せが前記以前に復号された範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成するための手段と
を備え、前記第２のコードワードは、前記復号された現在の範囲組合せにマッピングされたフィルタを識別する、
装置。
【請求項３６】
実行されたとき、１つまたは複数のプロセッサに、
範囲組合せとフィルタとのマッピングを判断することと、
ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備え、
前記第１のメトリックは、ピクセルのブロックのピクセル値に基づいて判断され、
前記第２のメトリックは、前記ピクセルのブロックの前記ピクセル値に基づいて判断され、
前記第２のメトリックは、前記第１のメトリックとは異なる、
復号された現在の範囲組合せが以前に復号された範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、ここで、前記復号された現在の範囲組み合わせは、前記範囲組み合わせの知られている送信順序に基づいて判断される、
前記復号された現在の範囲組合せが前記以前に復号された範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成することと
を行わせる命令を記憶し、前記第２のコードワードは、前記復号された現在の範囲組合せにマッピングされたフィルタを識別する、
コンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、各々の内容全体が参照により本明細書に組み込まれる、  
２０１１年２月２３日に出願された米国仮出願第６１／４４５，９６７号、  
２０１１年３月３日に出願された米国仮出願第６１／４４８，７７１号、  
２０１１年４月８日に出願された米国仮出願第６１／４７３，７１３号、  
２０１１年４月１６日に出願された米国仮出願第６１／４７６，２６０号、  
２０１１年４月２２日に出願された米国仮出願第６１／４７８，２８７号、  
２０１１年６月３０日に出願された米国仮出願第６１／５０３，４２６号、  
２０１１年６月３０日に出願された米国仮出願第６１／５０３，４３４号、  
２０１１年６月３０日に出願された米国仮出願第６１／５０３，４４０号、  
２０１１年８月２５日に出願された米国仮出願第６１／５２７，４６３号、  
２０１１年９月６日に出願された米国仮出願第６１／５３１，５７１号  
の優先権を主張する。
【技術分野】
【０００２】
本開示は、ビデオデータを圧縮するために使用されるブロックベースのデジタルビデオコーディングに関し、より詳細には、ビデオブロックのフィルタ処理のための技法に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、無線電話ハンドセットなどのワイヤレス通信デバイス、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲームデバイス、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオをより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）などのビデオ圧縮技法を実装する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および時間的予測を実行する。ＭＰＥＧとＩＴＵ−Ｔとのコラボレーションである「Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ−Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」（ＪＣＴＶＣ）によって開発されている高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格など、新しいビデオ規格が出現し、発展し続けている。この新しいＨＥＶＣ規格はＨ．２６５と呼ばれることもある。
【０００４】
ブロックベースのビデオ圧縮技法は、空間的予測および／または時間的予測を実行し得る。イントラコーディングは、ビデオフレーム、ビデオフレームのスライスなどを備え得る、コード化ビデオの所与のユニット内のビデオブロック間の空間的冗長性を低減または除去するために空間的予測に依拠する。対照的に、インターコーディングは、ビデオシーケンスの連続するコーディングユニットのビデオブロック間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラコーディングの場合、ビデオエンコーダは、コード化ビデオの同じユニット内の他のデータに基づいて、データを圧縮するために空間的予測を実行する。インターコーディングの場合、ビデオエンコーダは、コード化ビデオの２つ以上の隣接するユニットの対応するビデオブロックの移動を追跡するために動き推定および動き補償を実行する。
【０００５】
コード化ビデオブロックは、予測ブロックを生成または識別するために使用され得る予測情報と、コーディングされているブロックと予測ブロックとの間の差を示すデータの残差ブロックとによって表され得る。インターコーディングの場合、１つまたは複数の動きベクトルを使用して、前または後続のコーディングユニットからデータの予測ブロックを識別するが、イントラコーディングの場合、予測モードを使用して、コーディングされているビデオブロックに関連するＣＵ内のデータに基づいて予測ブロックを生成することができる。イントラコーディングとインターコーディングの両方は、コーディングにおいて使用される異なるブロックサイズおよび／または予測技法を定義し得る、いくつかの異なる予測モードを定義し得る。また、コーディングプロセスにおいて使用されるコーディング技法またはパラメータを制御または定義するために、追加のタイプのシンタックス要素が、符号化ビデオデータの一部として含まれ得る。
【０００６】
ブロックベースの予測コーディングの後に、ビデオエンコーダは、残差ブロックの通信に関連するビットレートをさらに低減するために、変換、量子化およびエントロピーコーディングプロセスを適用し得る。変換技法は、離散コサイン変換（ＤＣＴ）、あるいはウェーブレット変換、整数変換、または他のタイプの変換など、概念的に同様のプロセスを備え得る。離散コサイン変換プロセスでは、一例として、変換プロセスは、ピクセル差分値のセットを、周波数領域におけるピクセル値のエネルギーを表し得る変換係数に変換する。量子化は、変換係数に適用され、概して、所与の変換係数に関連するビット数を制限するプロセスを伴う。エントロピーコーディングは、一連の量子化変換係数をまとめて圧縮する１つまたは複数のプロセスを備える。
【０００７】
ビデオブロックのフィルタ処理は、符号化ループおよび復号ループの一部として、または再構成ビデオブロックに対するポストフィルタ処理プロセスの一部として適用され得る。フィルタ処理は、通常、たとえば、ブロックベースのビデオコーディングに共通のブロッキネスまたは他のアーティファクトを低減するために使用される。ブロッキネスを低減し、および／または他の方法でビデオ品質を改善することができる、望ましいレベルのビデオブロックフィルタ処理を促進するために、（フィルタタップと呼ばれることがある）フィルタ係数が定義または選択され得る。フィルタ係数のセットは、たとえば、ビデオブロックのエッジまたはビデオブロック内の他のロケーションに沿ってフィルタ処理がどのように適用されるかを定義し得る。異なるフィルタ係数は、ビデオブロックの異なるピクセルに対する異なるレベルのフィルタ処理を生じ得る。フィルタ処理は、たとえば、不要なアーティファクトをなくすのを助けるために、隣接ピクセル値の強度の差を平滑化またはシャープ化し得る。
【発明の概要】
【０００８】
本開示では、ビデオ符号化および／またはビデオ復号プロセスにおけるビデオデータのフィルタ処理に関連する技法について説明する。本開示によれば、エンコーダにおいてフィルタ処理が適用され、エンコーダにおいて適用されたフィルタ処理をデコーダが識別することを可能にするためのフィルタ情報がビットストリーム中で符号化される。デコーダは、フィルタ情報を含む符号化ビデオデータを受信し、ビデオデータを復号し、フィルタ処理情報に基づいてフィルタ処理を適用する。このようにして、デコーダは、エンコーダにおいて適用されたのと同じフィルタ処理を適用する。本開示の技法によれば、フレームごとに、スライスごとに、またはＬＣＵごとに、エンコーダは、フィルタの１つまたは複数のセットを選択し得、コード化ユニットごとに、エンコーダは、フィルタ処理を適用すべきか否かを判断し得る。フィルタ処理されるべきコード化ユニット（ＣＵ：coded unit）について、エンコーダは、ピクセルごとにまたはグループごとにフィルタ処理を実行することができ、その場合、グループは、たとえば、ピクセルの２×２ブロックまたはピクセルの４×４ブロックであり得る。
【０００９】
１つの例では、ビデオデータを復号する方法は、範囲組合せとフィルタとのマッピングを生成することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、現在の範囲組合せを同じフィルタにマッピングすることと、現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、現在の範囲組合せを新しいフィルタにマッピングすることとを含む。
【００１０】
別の例では、ビデオデータをコーディングするための装置は、範囲組合せとフィルタとのマッピングを生成することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、現在の範囲組合せを前の範囲組合せと同じフィルタにマッピングすることと、現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、現在の範囲組合せを第２のコードワードによって識別されるフィルタにマッピングすることとを行うように構成されるビデオでコードを含む。
【００１１】
別の例では、装置は、範囲組合せとフィルタとのマッピングを生成するための手段と、ここで、範囲組合せが、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、現在の範囲組合せを前の範囲組合せと同じフィルタにマッピングするための手段と、現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、現在の範囲組合せを第２のコードワードによって識別されるフィルタにマッピングするための手段とを含む。
【００１２】
別の例では、コンピュータ可読記憶媒体は、実行されたとき、１つまたは複数のプロセッサに、範囲組合せとフィルタとのマッピングを生成することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、現在の範囲組合せを前の範囲組合せと同じフィルタにマッピングすることと、現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、現在の範囲組合せを第２のコードワードによって識別されるフィルタにマッピングすることとを行わせる、命令を記憶する。
【００１３】
別の例では、ビデオデータを符号化する方法は、範囲組合せとフィルタとのマッピングを判断することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成することと含み、第２のコードワードは、現在の範囲組合せにマッピングされたフィルタを識別する。
【００１４】
別の例では、ビデオデータをコーディングするための装置は、範囲組合せとフィルタとのマッピングを判断することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成することと行うように構成されたビデオエンコーダを含み、第２のコードワードは、前記現在の範囲組合せにマッピングされたフィルタを識別する。
【００１５】
別の例では、装置は、範囲組合せとフィルタとのマッピングを判断するための手段と、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成するための手段と、現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成するための手段とを含み、第２のコードワードは、現在の範囲組合せにマッピングされたフィルタを識別する。
【００１６】
別の例では、コンピュータ可読記憶媒体は、実行されたとき、１つまたは複数のプロセッサに、範囲組合せとフィルタとのマッピングを判断することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成することとを行わせる命令を記憶し、第２のコードワードは、現在の範囲組合せにマッピングされたフィルタを識別する。
【００１７】
１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１８】
【図１】例示的なビデオ符号化および復号システムを示すブロック図。
【図２Ａ】最大コーディングユニット（ＬＣＵ：largest coding unit）に適用される４分木区分の一例を示す概念図。
【図２Ｂ】最大コーディングユニット（ＬＣＵ）に適用される４分木区分の一例を示す概念図。
【図２Ｃ】図２Ａおよび図２Ｂの例示的な４分木区分に対応する一連のビデオブロックのためのフィルタマップの一例を示す概念図。
【図２Ｄ】図２Ａおよび図２Ｂの例示的な４分木区分に対応する一連のビデオブロックのためのフィルタマップの一例を示す概念図。
【図３】本開示に一致する例示的なビデオエンコーダを示すブロック図。
【図４Ａ】２つのメトリックのための範囲とフィルタとのマッピングを示す概念図。
【図４Ｂ】アクティビティメトリックおよび方向メトリックのための範囲とフィルタとのマッピングを示す概念図。
【図５】本開示に一致する例示的なビデオデコーダを示すブロック図。
【図６Ａ】ピクセルの４×４ブロックの概念図。
【図６Ｂ】ピクセルの４×４ブロックの概念図。
【図６Ｃ】ピクセルの４×４ブロックの概念図。
【図７】本開示に一致するコーディング技法を示すフローチャート。
【図８Ａ】本開示に一致するコーディング技法を示すフローチャート。
【図８Ｂ】本開示に一致するコーディング技法を示すフローチャート。
【図９Ａ】本開示に一致するコーディング技法を示すフローチャート。
【図９Ｂ】本開示に一致するコーディング技法を示すフローチャート。
【図１０】本開示に一致するコーディング技法を示すフローチャート。
【図１１】本開示に一致するコーディング技法を示すフローチャート。
【発明を実施するための形態】
【００１９】
本開示では、ビデオ符号化および／またはビデオ復号プロセスにおけるビデオデータのフィルタ処理に関連する技法について説明する。本開示によれば、エンコーダにおいてフィルタ処理が適用され、エンコーダにおいて適用されたフィルタ処理をデコーダが識別することを可能にするためのフィルタ情報がビットストリーム中で符号化される。デコーダは、フィルタ情報を含む符号化ビデオデータを受信し、ビデオデータを復号し、フィルタ処理情報に基づいてフィルタ処理を適用する。このようにして、デコーダは、エンコーダにおいて適用されたのと同じフィルタ処理を適用する。本開示の技法によれば、フレームごとに、スライスごとに、またはＬＣＵごとに、エンコーダは、フィルタの１つまたは複数のセットを選択し得、コード化ユニットごとに、エンコーダは、フィルタ処理を適用すべきか否かを判断し得る。フィルタ処理されるべきコード化ユニット（ＣＵ）について、エンコーダは、ピクセルごとにまたはグループごとにフィルタ処理を実行することができ、その場合、グループは、たとえば、ピクセルの２×２ブロックまたはピクセルの４×４ブロックであり得る。
【００２０】
本開示の技法によれば、ビデオデータは、コード化ユニット（ＣＵ）と呼ばれるユニットでコーディングされ得る。ＣＵは、４分木区分スキームを使用して、より小さいＣＵ、またはサブユニットに区分され得る。特定のＣＵのための４分木区分スキームを識別するシンタックスがエンコーダからデコーダに送信され得る。符号化ビデオデータを復号し、再構成するプロセス中に、所与のＣＵの各サブユニットに関連する複数の入力がフィルタ処理され得る。本開示の技法によれば、フィルタ記述シンタックスは、何個のフィルタがフィルタのセット中にあるか、またはフィルタがどんな形状をとるかなど、フィルタのセットを記述することができる。デコーダによって受信されたビットストリーム中の追加のシンタックスは、特定のサブユニットのためにエンコーダにおいて使用されたフィルタ（すなわちフィルタ係数）を識別することができる。特定の入力のために使用されるフィルタは、２つ以上のメトリックに基づいて選択され得、その場合、２つ以上のメトリックのための値のいくつかの組合せが、フィルタのセット内の特定のフィルタにインデックス付けされる。他の事例では、単一のメトリックを形成するために２つ以上のメトリックが組み合わせられ得る。また、フィルタとメトリックとのマッピングは、ビットストリーム中でシグナリングされ得る。
【００２１】
ビデオデータのために判断された２つ以上のメトリックに基づいて、異なるタイプのフィルタ処理がピクセルまたはピクセルのブロックに適用され得る。特定のピクセルのために使用されるフィルタは、アクティビティメトリックと方向メトリックとの何らかの組合せなど、２つ以上のメトリックに基づいて選択され得る。アクティビティメトリックは、たとえば、ビデオデータ内のピクセルの１つまたは複数のブロックに関連するアクティビティを定量化し得る。アクティビティメトリックは、ピクセルのセット内のピクセル分散を示す分散メトリックを備え得る。アクティビティメトリックは方向固有または非方向固有のいずれかであり得る。たとえば、以下でより詳細に説明するように、非方向固有アクティビティメトリックは和修正ラプラシアン値を含み得る。
【００２２】
方向固有アクティビティメトリックの例は、水平アクティビティメトリック、垂直アクティビティメトリック、４５度アクティビティメトリック、および１３５度アクティビティメトリックを含む。方向メトリックは、ピクセルのブロックについて、ピクセルまたはピクセルのグループの、水平アクティビティ、垂直アクティビティ、または対角アクティビティのいずれかを定量化し得、あるいは、方向メトリックは、水平アクティビティ、垂直アクティビティ、および／または対角アクティビティの比較を含み得、その場合、水平アクティビティは、概して、水平方向のピクセル値の変化を指し、垂直アクティビティは、概して、垂直方向のピクセル値の変化を指し、対角アクティビティは、概して、対角方向のピクセル値の変化を指す。
【００２３】
本開示の技法によれば、ピクセルのブロックのためのフィルタを判断するとき、符号化および復号の複雑さを低減するためにそのブロック内のピクセルのサブセットが使用され得る。たとえば、ピクセルの４×４ブロックのためのフィルタを判断するとき、４×４ブロックのすべての１６個のピクセルを使用することが必要でないことがある。さらに、本開示の技法によれば、コーディングされている現在ブロック内からのピクセルのサブセットは、隣接ブロックのピクセル値ではなく、現在ブロックのピクセル値のみを使用してメトリックが計算されるように、選択され得る。たとえば、評価されているピクセルのためのメトリックは、そのピクセルを近接ピクセルと比較することに基づいて計算され得る。いくつかの事例では、評価されているピクセルに対する近接ピクセルのうちの１つまたは複数が、評価されているピクセルとは異なるブロック中にあり得る。しかしながら、他の事例では、上記ピクセルに対する近接ピクセルのうちの１つまたは複数が、上記ピクセルと同じブロック中にあり得る。本開示の技法によれば、ピクセルのサブセットは、隣接ブロック中の近接ピクセルを有しないピクセルを含むように選択され得る。追加または代替として、ピクセルのサブセットは、隣接ブロック中の近接ピクセルを有するピクセルを含み得るが、隣接ブロック中のそれらの近接ピクセルは、メトリックを判断するときに使用されないことがある。隣接ブロックのピクセルにではなく、現在ブロック内のピクセルに基づいて、特定のメトリックの判断を行うことによって、エンコーダおよび／またはデコーダにおけるバッファの必要は、いくつかの事例では、低減されるか、さらにはなくなり得る。
【００２４】
いくつかの事例では、本開示の技法によれば、コーディングされている現在ブロック内からのピクセルのサブセットは、上の隣接ブロックまたは下の隣接ブロックのピクセル値ではなく、現在ブロックと左および右の隣接ブロックとのピクセル値のみを使用してメトリックが計算されるように、選択され得る。ビデオブロックをコーディングするときに使用されるラスタ走査順序の結果として、上および下の隣接ブロックのためのラインバッファは、左および右の隣接ブロックのピクセル値を記憶するためのラインバッファよりもはるかに多くのピクセル値を記憶する必要がある傾向がある。
【００２５】
本開示の技法によれば、適応ループ内（in loop）フィルタなどのフィルタユニットは、複数メトリックフィルタマッピングに基づいて複数のフィルタを利用するように構成され得る。それらの複数のフィルタは、単一の入力または複数の入力と併せて使用され得る。以下でより詳細に説明するように、本開示で説明する複数の入力は、概して、符号化および復号プロセス中に生成される中間ビデオブロックデータまたは画像データを指す。所与のビデオブロックに関連する複数の入力は、たとえば、再構成ブロックまたは画像（ＲＩ：reconstructed image）、デブロック前再構成ブロックまたは画像（ｐＲＩ：pre-deblocked reconstructed image）、予測ブロックまたは画像（ＰＩ：prediction image）、および／あるいは量子化予測誤差画像（ＥＩ：error image）を含むことができる。単一入力スキームでは、フィルタは、ＲＩなど、上記の入力のうちの１つにのみ適用され得る。また、以下でより詳細に説明するように、本開示のフィルタ処理技法は、４分木区分スキームを使用して、様々なサイズのＣＵに適用され得る。４分木区分スキームを使用して区分されたＣＵのための複数メトリックフィルタマッピングとともに複数のフィルタを利用することによって、圧縮レートと再構成ビデオ品質の一方または両方によって測定されるビデオコーディング性能が改善され得る。
【００２６】
上記で説明した複数メトリックフィルタ処理技法を実装するために、エンコーダは、生成、更新、記憶、または他の手段によって、範囲の組合せとフィルタとのマッピングを維持する。一例として、第１のメトリックのための第１の範囲と第２のメトリックのための第１の範囲との組合せが、第１のフィルタにマッピングし得る。また、第１のメトリックのための第１の範囲と第２のメトリックのための第２の範囲との組合せが、第１のフィルタにマッピングし得るかまたは第２のフィルタにマッピングし得る。たとえば、第１のメトリックが８つの範囲を有し、第２のメトリックが４つの範囲を有する場合、第１および第２のメトリックは範囲の３２個の組合せを有することができ、３２個の組合せの各々がフィルタにマッピングされ得る。ただし、各組合せは、必ずしもユニークなフィルタにマッピングされるとは限らない。したがって、３２個の組合せは、４つのフィルタ、８つのフィルタ、１０個のフィルタ、または何らかの他の数のフィルタにマッピングし得る。エンコーダと同じフィルタを適用するために、デコーダも範囲組合せとフィルタとの同じマッピングを維持し得る。
【００２７】
本開示では、符号化ビットストリーム中で、エンコーダからデコーダに範囲組合せとフィルタとのマッピングをシグナリングするための技法について説明する。そのマッピングは、たとえば、各範囲組合せをフィルタ識別情報（ＩＤ）に関連付け得る。このマッピングをシグナリングするための１つの単純な方法は、フィルタＩＤごとに１つのコードワードを使用し、次いで、範囲の組合せごとに、対応するフィルタＩＤのコードワードを送ることである。しかしながら、この技法は一般に非効率的である。本開示の技法は、差分コーディング方法を使用することによって上記マッピング内の相関関係を活用し得る。共通の範囲を共有する範囲の組合せは、時々、同じフィルタを使用する。一例として、第１のメトリックのための第１の範囲と第２のメトリックのための第１の範囲との組合せ、および第１のメトリックのための第１の範囲と第２のメトリックのための第２の範囲との組合せは、共通の範囲（第１のメトリックの第１の範囲）を共有する。したがって、これらの２つの組合せは、いくつかの事例では、同じフィルタＩＤにマッピングし得る。この相関関係を活用することによって、本開示の技法は、エンコーダからデコーダに範囲組合せとフィルタＩＤとのマッピングをシグナリングするために必要とされるビット数を低減し得る。
【００２８】
範囲組合せとフィルタＩＤとのマッピングをシグナリングすることに加えて、本開示では、符号化ビットストリーム中で、フィルタのためのフィルタ係数をシグナリングするための技法についても説明する。本開示の技法は、エンコーダからデコーダにフィルタ係数をシグナリングするために差分コーディング方法を使用することを含む。このようにして、第２のフィルタのためのフィルタ係数が差分情報としてデコーダに通信され得、その場合、差分情報は、第２のフィルタのフィルタ係数を生成するようにして第１のフィルタのフィルタ係数をどのように修正すべきかを記述する。差分コーディング技法は、第１のフィルタのフィルタ係数と第２のフィルタのフィルタ係数とがあまり類似していないときと比較して、第１のフィルタのフィルタ係数と第２のフィルタのフィルタ係数とがより類似しているとき、より効果的であり得る（すなわちビットがより多く節約され得る）。本開示の技法は、フィルタのためのフィルタ係数をシグナリングすべき順番を判断することを含む。本開示で説明する技法を使用して判断された順序付けにより、フィルタ係数の差分コーディングが改善され得、したがって、いくつかの事例では、フィルタ係数をシグナリングするときにビットが節約され得る。
【００２９】
本開示の技法について、時々、ループ内フィルタ処理に関して説明することがあるが、本技法は、ループ内フィルタ処理、ループ後（post-loop）フィルタ処理、およびスイッチフィルタ処理などの他のフィルタ処理スキームに適用され得る。ループ内フィルタ処理は、概して、フィルタ処理済みデータが予測イントラコーディングまたはインターコーディングのために使用されるように、フィルタ処理済みデータが符号化ループおよび復号ループの一部であるフィルタ処理を指す。ループ後フィルタ処理は、符号化ループの後に再構成ビデオデータに適用されるフィルタ処理を指す。ループ後フィルタ処理では、フィルタ処理済みデータとは対照的に、非フィルタ処理済みデータが予測イントラコーディングまたはインターコーディングのために使用される。いくつかの実装形態では、フィルタ処理のタイプは、たとえば、フレームごとに、スライスごとに、または他のそのようなベースで、ループ後フィルタ処理とループ内フィルタ処理との間でスイッチし得、ループ後フィルタ処理を使用すべきなのかループ内フィルタ処理を使用すべきなのかの決定は、各フレーム、スライスなどのために、エンコーダからデコーダにシグナリングされ得る。本開示の技法は、ループ内フィルタ処理またはポストフィルタ処理に限定されず、ビデオコーディング中に適用される広範囲のフィルタ処理に適用され得る。
【００３０】
本開示では、「コーディング」という用語は符号化または復号を指す。同様に、「コーダ」という用語は、概して、任意のビデオエンコーダ、ビデオデコーダ、または複合エンコーダ／デコーダ（コーデック）を指す。したがって、「コーダ」という用語は、本明細書では、ビデオ符号化またはビデオ復号を実行する専用コンピュータデバイスまたは装置を指すために使用される。
【００３１】
さらに、本開示では、「フィルタ」という用語は、概してフィルタ係数のセットを指す。たとえば、３×３フィルタは９つのフィルタ係数のセットによって定義され得、５×５フィルタは２５個のフィルタ係数のセットによって定義され得、９×５フィルタは４５個のフィルタ係数のセットによって定義され得るなどである。「フィルタのセット」という用語は、概して、２つ以上のフィルタのグループを指す。たとえば、２つの３×３フィルタのセットは、９つのフィルタ係数の第１のセットと９つのフィルタ係数の第２のセットとを含むことができる。本開示で説明する技法によれば、フレーム、スライス、または最大コーディングユニット（ＬＣＵ）など、一連のビデオブロックのために、フィルタのセットを識別する情報が一連のビデオブロックのヘッダ中でエンコーダからデコーダにシグナリングされる。「フィルタサポート」と呼ばれることがある、「形状」という用語は、概して、特定のフィルタのためのフィルタ係数の行の数とフィルタ係数の列の数とを指す。たとえば、９×９は第１の形状の一例であり、９×５は第２の形状の一例であり、５×９は第３の形状の一例である。いくつかの事例では、フィルタは、ダイヤモンド形状、ダイヤモンド様形状、円形形状、円形様形状、六角形形状、八角形形状、十字形状、Ｘ字形状、Ｔ字形状、他の幾何学的形状を含む、非矩形形状、あるいは多数の他の形状または構成をとり得る。
【００３２】
図１は、本開示の技法を実装し得る例示的なビデオ符号化および復号システム１１０を示すブロック図である。図１に示すように、システム１１０は、通信チャネル１１５を介して符号化ビデオデータを宛先デバイス１１６に送信するソースデバイス１１２を含む。ソースデバイス１１２および宛先デバイス１１６は、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１１２および宛先デバイス１１６は、いわゆるセルラー無線電話または衛星無線電話などのワイヤレス通信デバイスハンドセットを備え得る。ただし、より一般的にビデオデータのフィルタ処理に適用される本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らず、ビデオ符号化および／または復号機能を含む非ワイヤレスデバイスに適用され得る。
【００３３】
図１の例では、ソースデバイス１１２は、ビデオソース１２０と、ビデオエンコーダ１２２と、変調器／復調器（モデム）１２３と、送信機１２４とを含む。宛先デバイス１１６は、受信機１２６と、モデム１２７と、ビデオデコーダ１２８と、ディスプレイデバイス１３０とを含む。本開示によれば、ソースデバイス１１２のビデオエンコーダ１２２は、ビデオブロックフィルタ処理プロセスにおいて複数の入力のためのフィルタ係数の１つまたは複数のセットを選択し、次いで、フィルタ係数の選択された１つまたは複数のセットを符号化するように構成され得る。フィルタ係数の１つまたは複数のセットからの特定のフィルタが、１つまたは複数の入力のための１つまたは複数のメトリックに基づいて選択され得、フィルタ係数は、１つまたは複数の入力をフィルタ処理するために使用され得る。本開示のフィルタ処理技法は、概して、符号化ビットストリーム中でフィルタ係数をコーディングまたはシグナリングするためのどんな技法とも相性が良い。
【００３４】
本開示の技法によれば、ビデオエンコーダ１２２を含むデバイスが、ビデオデコーダ１２８を含むデバイスに、フレームまたはスライスなど、一連のビデオブロックのためのフィルタ係数の１つまたは複数のセットをシグナリングすることができる。一連のビデオブロックのために、ビデオエンコーダ１２２は、たとえば、すべての入力とともに使用されるべきフィルタの１つのセットをシグナリングし得るか、または複数の入力とともに使用されるべきフィルタの複数のセット（たとえば、入力ごとに１つのセット）をシグナリングし得る。一連のビデオブロック内の各ビデオブロックまたはＣＵは、さらに、そのビデオブロックの各入力に対してフィルタのセットのどの１つまたは複数のフィルタが使用されるべきかを識別するための追加のシンタックスを含むことができ、あるいは本開示の技法によれば、フィルタのセットのどの１つまたは複数のフィルタが使用されるべきかは、入力の１つまたは複数に関連する２つ以上のメトリックに基づいて判断され得る。
【００３５】
より詳細には、ソースデバイス１１２のビデオエンコーダ１２２は、一連のビデオブロックのためにフィルタの１つまたは複数のセットを選択し、符号化プロセス中に（１つまたは複数の）セットからのフィルタを一連のビデオブロックのＣＵに関連する入力のピクセルまたはピクセルのグループに適用し、次いで、宛先デバイス１１６のビデオデコーダ１２８に通信するためにフィルタのセット（すなわち、フィルタ係数のセット）を符号化し得る。ビデオエンコーダ１２２は、コーディングされるＣＵのためのピクセルまたはピクセルのグループとともにフィルタの（１つまたは複数の）セットからのどの（１つまたは複数の）フィルタを使用すべきかを選択するために、その特定のＣＵの入力に関連する１つまたは複数のメトリックを判断し得る。ビデオエンコーダ１２２はまた、コード化ビットストリームの一部として、ビデオデコーダ１２８に範囲の組合せとフィルタのセット内のフィルタとのマッピングをシグナリングし得る。
【００３６】
デコーダ側で、ビデオデコーダ１２８は、ビットストリームシンタックス中で受信されたフィルタ情報に基づいてフィルタ係数を判断し得る。ビデオデコーダ１２８は、ビットストリームシンタックスの一部としてシグナリングされ得る、フィルタ係数を符号化した方法に応じて、直接復号または予測復号に基づいてフィルタ係数を復号し得る。さらに、ビットストリームは、フィルタのセットについてフィルタを記述するためのフィルタ記述シンタックス情報を含み得る。フィルタ記述シンタックスに基づいて、デコーダ１２８は、エンコーダ１２２から受信された追加情報に基づいてフィルタ係数を再構成することができる。図１の図示のシステム１１０は例にすぎない。本開示のフィルタ処理技法は、任意の符号化デバイスまたは復号デバイスによって実行され得る。ソースデバイス１１２および宛先デバイス１１６は、そのような技法をサポートすることができるコーディングデバイスの例にすぎない。また、ビデオデコーダ１２８は、ビットストリームシンタックス中で受信されたフィルタ情報に基づいて範囲の組合せとフィルタとのマッピングを判断し得る。
【００３７】
ソースデバイス１１２のビデオエンコーダ１２２は、本開示の技法を使用して、ビデオソース１２０から受信されたビデオデータを符号化し得る。ビデオソース１２０は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、またはビデオコンテンツプロバイダからのビデオフィードを備え得る。さらなる代替として、ビデオソース１２０は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１２０がビデオカメラである場合、ソースデバイス１１２および宛先デバイス１１６は、いわゆるカメラフォンまたはビデオフォンを形成し得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオはビデオエンコーダ１２２によって符号化され得る。
【００３８】
ビデオデータがビデオエンコーダ１２２によって符号化されると、符号化されたビデオ情報は、次いで、たとえば、符号分割多元接続（ＣＤＭＡ）、周波数分割多元接続（ＦＤＭＡ）、直交周波数分割多重化（ＯＦＤＭ）などの通信規格、あるいは任意の他の通信規格または技法に従ってモデム１２３によって変調され、送信機１２４を介して宛先デバイス１１６に送信され得る。モデム１２３は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機１２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００３９】
宛先デバイス１１６の受信機１２６はチャネル１１５を介して情報を受信し、モデム１２７はその情報を復調する。ビデオデコーダ１２８によって実行されるビデオ復号プロセスは、たとえば、ループ内復号の一部としてまたは復号ループに続くポストフィルタ処理ステップとしてフィルタ処理を含み得る。いずれにしても、特定のスライスまたはフレームに対してビデオデコーダ１２８によって適用されるフィルタのセットは、本開示の技法を使用して復号され得る。復号されたフィルタ情報は、コード化ビットストリーム中のフィルタ記述シンタックスを識別することを含み得る。たとえば、フィルタ係数のために予測コーディングが使用される場合、チャネル１１５を介して搬送される情報の量を低減するために、異なるフィルタ係数間の類似性が活用され得る。詳細には、フィルタ（すなわち、フィルタ係数のセット）は、異なるフィルタに関連するフィルタ係数の別のセットに対する差分値として予測コーディングされ得る。異なるフィルタは、たとえば、異なるスライスまたはフレームに関連し得る。そのような場合、ビデオデコーダ１２８は、ビデオブロックとフィルタ情報とを備える符号化ビットストリームを受信し得、フィルタ情報は、異なるフィルタが関連する異なるフレームまたはスライスを識別する。フィルタ情報はまた、異なるＣＵのフィルタに対する現在のフィルタを定義する差分値を含む。詳細には、差分値は、異なるＣＵのために使用される異なるフィルタのフィルタ係数に対する現在のフィルタのためのフィルタ係数を定義するフィルタ係数差分値を備え得る。
【００４０】
ビデオデコーダ１２８は、ビデオブロックを復号し、フィルタ係数を生成し、生成されたフィルタ係数に基づいて、復号されたビデオブロックをフィルタ処理する。ビデオデコーダ１２８は、ビットストリームから取り出されたフィルタ記述シンタックスに基づいてフィルタ係数を生成することができる。復号され、フィルタ処理されたビデオブロックをビデオフレームにアセンブルして、復号されたビデオデータを形成することができる。ディスプレイデバイス１２８は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００４１】
通信チャネル１１５は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１１５は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１１５は、概して、ビデオデータをソースデバイス１１２から宛先デバイス１１６に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。ここでも、図１は例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データが、ローカルメモリから取り出されるか、ネットワークを介してストリーミングされる、などであり得る。
【００４２】
代替的に、符号化データは、ビデオエンコーダ１２２からストレージデバイス１３２に出力され得る。同様に、符号化データは、ビデオデコーダ１２８によってストレージデバイス１３２からアクセスされ得る。ストレージデバイス１３２は、ハードドライブ、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス１３２は、ソースデバイス１１２によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１１６は、ストリーミングまたはダウンロードを介して、ストレージデバイス１３２から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、その符号化ビデオデータを宛先デバイス１１６に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含むいずれかの標準データ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。ストレージデバイス１３２からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００４３】
本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００４４】
ビデオエンコーダ１２２およびビデオデコーダ１２８は、説明のために本開示の一部において使用される、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格に従って動作し得る。ただし、本開示の技法の多くは、新生のＨＥＶＣ規格を含む様々な他のビデオコーディング規格のいずれにも容易に適用され得る。概して、エンコーダおよびデコーダにおいてフィルタ処理を可能にする規格は、本開示の教示の様々な態様から恩恵を受け得る。
【００４５】
図１には示されていないが、いくつかの態様では、ビデオエンコーダ１２２およびビデオデコーダ１２８は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４６】
ビデオエンコーダ１２２およびビデオデコーダ１２８はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ１２２およびビデオデコーダ１２８の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに統合され得る。
【００４７】
場合によっては、デバイス１１２、１１６は、実質的に対称的に動作し得る。たとえば、デバイス１１２、１１６の各々は、ビデオ符号化構成要素とビデオ復号構成要素とを含み得る。したがって、システム１１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのためのビデオデバイス１１２とビデオデバイス１１６との間の一方向または双方向のビデオ送信をサポートし得る。
【００４８】
符号化プロセス中に、ビデオエンコーダ１２２は、いくつかのコーディング技法またはステップを実行し得る。概して、ビデオエンコーダ１２２は、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。一例では、ビデオブロックは、マクロブロックまたはマクロブロックのパーティションに対応し得る。マクロブロックは、ＩＴＵ  Ｈ．２６４規格および他の規格によって定義されているビデオブロックの１つのタイプである。マクロブロックという用語は、一般的に、Ｎ×ＮまたはＮ×Ｍサイズの任意のビデオブロックを指すために使用されることもあるが、マクロブロックは一般にデータの１６×１６ブロックを指す。ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分については１６×１６、８×８、または４×４、およびクロマ成分については８×８など、様々なブロックサイズのイントラ予測をサポートし、ならびにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８および４×４、およびクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。本開示では、「Ｎ×Ｎ」は、垂直寸法および水平寸法に関するブロックのピクセル寸法、たとえば、１６×１６ピクセルを指す。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し、水平方向に１６ピクセルを有する。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、Ｎは、正の整数値を表す。ブロック中のピクセルは行と列に構成され得る。
【００４９】
新生のＨＥＶＣ規格は、ビデオブロックのための新しい用語を定義している。特に、ビデオブロック（またはそのパーティション）は「コーディングユニット」（またはＣＵ）と呼ばれることがある。ＨＥＶＣ規格では、最大コード化ユニット（ＬＣＵ：largest coded unit）は、４分木区分スキームに従ってより小さいＣＵに分割され得、そのスキームにおいて定義されている様々なＣＵは、さらに、いわゆる予測ユニット（ＰＵ：prediction unit）に区分され得る。ＬＣＵ、ＣＵ、およびＰＵは、すべて、本開示の意味内のビデオブロックである。ＨＥＶＣ規格または他のビデオコーディング規格に一致する他のタイプのビデオブロックも使用され得る。したがって、「ビデオブロック」という句は、任意のサイズのビデオブロックを指す。所与のピクセルのルーマ成分のために個別のＣＵが含まれ、クロマ成分のためにスケーリングされたサイズが含まれ得るが、他の色空間も使用され得る。
【００５０】
ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは複数のスライスを含み得る。各スライスは複数のビデオブロックを含み得、それらのビデオブロックは、サブブロックとも呼ばれるパーティションに構成され得る。上記で参照し、以下でより詳細に説明する４分木区分スキームによれば、Ｎ／２×Ｎ／２の第１のＣＵは、Ｎ×Ｎ  ＬＣＵのサブブロックを備え得、Ｎ／４×Ｎ／４の第２のＣＵは、同じく、第１のＣＵのサブブロックを備え得る。Ｎ／８×Ｎ／８  ＰＵは第２のＣＵのサブブロックを備え得る。同様に、さらなる例として、１６×１６よりも小さいブロックサイズは、１６×１６ビデオブロックのパーティションまたは１６×１６ビデオブロックのサブブロックと呼ばれることがある。同様に、Ｎ×Ｎブロックについては、Ｎ×Ｎよりも小さいブロックサイズはＮ×Ｎブロックのパーティションまたはサブブロックと呼ばれることがある。ビデオブロックは、ピクセル領域中のピクセルデータのブロックを備え得、あるいは、たとえば、コード化ビデオブロックと予測ビデオブロックとの間のピクセル差分を表す残差ビデオブロックデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオブロックは、変換領域中の量子化変換係数のブロックを備え得る。
【００５１】
ビットストリーム内のシンタックスデータは、フレームまたはスライスのピクセルの数に関して最大のコーディングユニットである、そのフレームまたはスライスのＬＣＵを定義し得る。概して、ＬＣＵまたはＣＵは、ＬＣＵおよびＣＵが特定のサイズの差異を有しないことを除いて、Ｈ．２６４に従ってコーディングされるマクロブロックと同様の目的を有する。代わりに、ＬＣＵサイズは、フレームごとにまたはスライスごとに定義され得、ＬＣＵはＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャのＬＣＵまたはＬＣＵのサブＣＵを指すことがある。ＬＣＵはサブＣＵに分割され得、各サブＣＵはサブＣＵに分割され得る。ビットストリームのシンタックスデータは、ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。本開示ではまた、ＬＣＵ、ＣＵ、ＰＵ、ＳＣＵ、またはＴＵのいずれかを指すために、「ブロック」および「ビデオブロック」という用語を使用する。
【００５２】
上記で紹介したように、ＬＣＵは４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。
【００５３】
分割されないＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照フレーム、および／または動きベクトルの参照リスト（たとえば、リスト０もしくはリスト１）を記述し得る。（１つまたは複数の）ＰＵを定義するＣＵのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なり得る。
【００５４】
１つまたは複数のＰＵを有するＣＵはまた、１つまたは複数の変換ユニット（ＴＵ：transform unit）を含み得る。ＴＵは、一般に量子化される残差変換係数を含むデータ構造を備える。特に、ＰＵを使用した予測の後に、ビデオエンコーダは、ＰＵに対応するＣＵの部分の残差値を計算し得る。残差値は、変換され、量子化され、走査され、ＴＵに記憶され得、ＴＵは、実行された変換のサイズに対応する可変サイズを有し得る。したがって、ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、同じＣＵの対応するＰＵよりも大きいことも小さいこともある。いくつかの例では、ＴＵの最大サイズは、対応するＣＵのサイズであり得る。この場合も、ＴＵは、所与のＣＵに関連する残差変換係数を含むデータ構造を備え得る。
【００５５】
図２Ａおよび図２Ｂは、例示的な４分木２５０と、対応するＬＣＵ２７２とを示す概念図である。図２Ａは、階層式に構成されたノードを含む、例示的な４分木２５０を示している。４分木２５０など、４分木中の各ノードは、子をもたないリーフノードであるか、または４つの子ノードを有し得る。図２Ａの例では、４分木２５０はルートノード２５２を含む。ルートノード２５２は、リーフノード２５６Ａ〜２５６Ｃ（リーフノード２５６）とノード２５４とを含む、４つの子ノードを有する。ノード２５４はリーフノードでないので、ノード２５４は、この例ではリーフノード２５８Ａ〜２５８Ｄ（リーフノード２５８）である、４つの子ノードを含む。
【００５６】
４分木２５０は、この例ではＬＣＵ２７２など、対応するＬＣＵの特性を記述するデータを含み得る。たとえば、４分木２５０は、それの構造により、サブＣＵへのＬＣＵの分割を記述し得る。ＬＣＵ２７２が２Ｎ×２Ｎのサイズを有すると仮定する。ＬＣＵ２７２は、この例では、４つのサブＣＵ２７６Ａ〜２７６Ｃ（サブＣＵ２７６）および２７４を有し、各々はＮ×Ｎサイズである。サブＣＵ２７４はさらに４つのサブＣＵ２７８Ａ〜２７８Ｄ（サブＣＵ２７８）に分割され、各々はサイズＮ／２×Ｎ／２である。この例では、４分木２５０の構造はＬＣＵ２７２の分割に対応する。すなわち、ルートノード２５２はＬＣＵ２７２に対応し、リーフノード２５６はサブＣＵ２７６に対応し、ノード２５４はサブＣＵ２７４に対応し、リーフノード２５８はサブＣＵ２７８に対応する。
【００５７】
４分木２５０のノードのデータは、ノードに対応するＣＵが分割されるかどうかを記述し得る。ＣＵが分割される場合、４分木２５０中に４つの追加のノードが存在し得る。いくつかの例では、４分木のノードは以下の擬似コードと同様に実装され得る。
【数１】
0005897609.tif 000002
【００５８】
ｓｐｌｉｔ＿ｆｌａｇ値は、現在のノードに対応するＣＵが分割されるかどうかを表す１ビット値であり得る。ＣＵが分割されない場合、ｓｐｌｉｔ＿ｆｌａｇ値は「０」であり得るが、ＣＵが分割される場合、ｓｐｌｉｔ＿ｆｌａｇ値は「１」であり得る。４分木２５０の例に関して、分割フラグ値の配列は１０１００００００であり得る。
【００５９】
いくつかの例では、サブＣＵ２７６およびサブＣＵ２７８の各々は、同じイントラ予測モードを使用してイントラ予測符号化され得る。したがって、ビデオエンコーダ１２２は、ルートノード２５２においてイントラ予測モードの指示を与え得る。その上、サブＣＵのいくつかのサイズは、特定のイントラ予測モードのために複数の可能な変換を有し得る。ビデオエンコーダ１２２は、ルートノード２５２においてそのようなサブＣＵのために使用すべき変換の指示を与え得る。たとえば、サイズＮ／２×Ｎ／２のサブＣＵでは複数の可能な変換が利用可能であり得る。ビデオエンコーダ１２２は、ルートノード２５２において使用すべき変換をシグナリングし得る。したがって、ビデオデコーダ１２８は、ルートノード２５２においてシグナリングされたイントラ予測モードと、ルートノード２５２においてシグナリングされた変換とに基づいてサブＣＵ２７８に適用すべき変換を判断し得る。
【００６０】
したがって、ビデオエンコーダ１２２は、本開示の技法によれば、リーフノード２５６およびリーフノード２５８においてサブＣＵ２７６およびサブＣＵ２７８に適用すべき変換をシグナリングする必要はないが、代わりに、単に、ルートノード２５２において、イントラ予測モードと、いくつかの例では、いくつかのサイズのサブＣＵに適用すべき変換とをシグナリングし得る。このようにして、これらの技法は、ＬＣＵ２７２など、ＬＣＵのサブＣＵごとに変換機能をシグナリングするオーバーヘッドコストを低減し得る。
【００６１】
いくつかの例では、サブＣＵ２７６および／またはサブＣＵ２７８のイントラ予測モードは、ＬＣＵ２７２のイントラ予測モードとは異なり得る。ビデオエンコーダ１２２およびビデオデコーダ１３０は、ルートノード２５２においてシグナリングされるイントラ予測モードを、サブＣＵ２７６および／またはサブＣＵ２７８のために利用可能なイントラ予測モードにマッピングする機能を用いて構成され得る。この機能は、ＬＣＵ２７２のために利用可能なイントラ予測モードとサブＣＵ２７６および／またはサブＣＵ２７８のイントラ予測モードとの多対１のマッピングを与え得る。
【００６２】
スライスはビデオブロック（またはＬＣＵ）に分割され得、各ビデオブロックは、図２Ａ〜図２Ｂに関して説明した４分木構造に従って区分され得る。さらに、図２Ｃに示すように、「オン」によって示される４分木サブブロックは、本明細書で説明するループフィルタによってフィルタ処理され得るが、「オフ」によって示される４分木サブブロックはフィルタ処理されないことがある。所与のブロックまたはサブブロックをフィルタ処理すべきか否かの決定は、コーディングされている元のブロックに対するフィルタ処理済み結果と非フィルタ処理済み結果とを比較することによってエンコーダにおいて判断され得る。図２Ｄは、図２Ｃに示す４分木区分を生じる区分決定を表す決定木である。「オン」ブロックについてどのピクセルにも適用される実際のフィルタ処理は、本明細書で説明するメトリックに基づいて判断され得る。
【００６３】
詳細には、図２Ｃは、４分木分割スキームに従って、様々なサイズのより小さいビデオブロックに区分された比較的大きいビデオブロックを表し得る。図２Ｃの各ビデオブロックは、そのビデオブロックに対してフィルタ処理が適用されるべきかまたは回避されるべきかを示すために、（オンまたはオフと）標示されている。ビデオエンコーダは、各ビデオブロックのフィルタ処理済みバージョンと非フィルタ処理済みバージョンとをコーディングされている元のビデオブロックと比較することによって、このフィルタマップを定義し得る。
【００６４】
再び、図２Ｄは、図２Ｃに示す４分木区分を生じる区分決定に対応する決定木である。図２Ｄにおいて、各円はＣＵに対応し得る。円が「１」フラグを含む場合、そのＣＵは、もう４つのＣＵにさらに区分されるが、円が「０」フラグを含む場合、そのＣＵはそれ以上区分されない。（たとえば、ＣＵに対応する）各円はまた、関連するひし形を含む。所与のＣＵのひし形中のフラグが１に設定された場合、そのＣＵに対するフィルタ処理は「オン」になるが、所与のＣＵのひし形中のフラグが０に設定された場合、フィルタ処理はオフになる。このようにして、図２Ｃと図２Ｄとは、個々にまたはまとめてフィルタマップと見なされ得、フィルタマップは、各区分されたビデオブロック（たとえば、ＬＣＵ内の各ＣＵ）にフィルタ処理を適用すべきか否かにかかわらず、所与のビデオブロック（たとえば、ＬＣＵ）のための４分木区分のレベルを通信するために、エンコーダにおいて生成され、符号化ビデオデータのスライスごとに少なくとも１回デコーダに通信され得る。
【００６５】
小さいビデオブロックほど、より良い解像度が得られ、高い詳細レベルを含むビデオフレームのロケーションのために使用され得る。大きいビデオブロックほど、より高いコーディング効率が得られ、低い詳細レベルを含むビデオフレームのロケーションのために使用され得る。スライスは、複数のビデオブロックおよび／またはサブブロックであると見なされ得る。各スライスは、ビデオフレームの単独で復号可能な一連のビデオブロックであり得る。代替的に、フレーム自体が復号可能な一連のビデオブロックであり得るか、またはフレームの他の部分が復号可能な一連のビデオブロックとして定義され得る。「一連のビデオブロック」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャのグループ（ＧＯＰ）など、ビデオフレームの任意の単独で復号可能な部分、または適用可能なコーディング技法に従って定義される別の単独で復号可能なユニットを指すことがある。本開示の態様についてフレームまたはスライスに関して説明し得るが、そのような言及は例にすぎない。概して、任意の一連のビデオブロックがフレームまたはスライスの代わりに使用され得ることを理解されたい。
【００６６】
シンタックスデータは、各ＣＵが関連するシンタックスデータを含むように、コード化ユニットごとに定義され得る。本明細書で説明するフィルタ情報は、ＣＵのためのそのようなシンタックスの一部であり得るが、ＣＵのためではなく、フレーム、スライス、ＧＯＰ、ＬＣＵ、またはビデオフレームのシーケンスなど、一連のビデオブロックのためのシンタックスの一部である可能性が高いことがある。シンタックスデータは、スライスまたはフレームのＣＵとともに使用されるべきフィルタの１つまたは複数のセットを示すことができる。さらに、必ずしもすべてのフィルタ情報が、共通の一連のビデオブロックのヘッダ中に含まれなければならないとは限らない。たとえば、フィルタ記述シンタックスはフレームヘッダ中で送信され得、他のフィルタ情報はＬＣＵのためのヘッダ中でシグナリングされる。
【００６７】
ビデオエンコーダ１２２は、コーディングされているビデオブロックが、予測ブロックを識別するために予測フレーム（または他のＣＵ）と比較される、予測コーディングを実行し得る。コーディングされている現在のビデオブロックと予測ブロックとの間の差は残差ブロックとしてコーディングされ、予測ブロックを識別するために予測シンタックスが使用される。残差ブロックは、変換され、量子化され得る。変換技法は、ＤＣＴプロセスまたは概念的に同様のプロセス、整数変換、ウェーブレット変換、または他のタイプの変換を備え得る。ＤＣＴプロセスでは、一例として、変換プロセスは、ピクセル値のセットを、周波数領域におけるピクセル値のエネルギーを表し得る変換係数に変換する。量子化は、一般に変換係数に適用され、概して、所与の変換係数に関連するビット数を制限するプロセスを伴う。
【００６８】
変換および量子化の後に、量子化および変換された残差ビデオブロックに対してエントロピーコーディングが実行され得る。符号化中に定義されるフィルタ情報および予測ベクトルなど、シンタックス要素も、各ＣＵのためのエントロピーコード化ビットストリーム中に含まれ得る。概して、エントロピーコーディングは、一連の量子化変換係数および／または他のシンタックス情報をまとめて圧縮する、１つまたは複数のプロセスを備える。２次元ビデオブロックから係数の１つまたは複数のシリアル化１次元ベクトルを定義するために、たとえば、エントロピーコーディングプロセスの一部として、量子化変換係数に対してジグザグ走査技法などの走査技法が実行される。他の走査順序または適応走査を含む、他の走査技法も使用され、場合によっては、符号化ビットストリーム中でシグナリングされ得る。いずれの場合も、走査された係数は、次いで、たとえば、コンテンツ適応型可変長コーディング（ＣＡＶＬＣ：content adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、または別のエントロピーコーディングプロセスを介してシンタックス情報とともにエントロピーコーディングされる。
【００６９】
符号化プロセスの一部として、符号化ビデオブロックは、後続のビデオブロックの後続の予測ベースコーディングのために使用されるビデオデータを生成するために復号され得る。この段階で、ビデオ品質を改善し、たとえば、復号されたビデオからブロッキネスアーティファクトを除去するために、フィルタ処理が実行され得る。フィルタ処理済みデータは他のビデオブロックの予測のために使用され得、その場合、フィルタ処理は「ループ内」フィルタ処理と呼ばれる。代替的に、他のビデオブロックの予測は非フィルタ処理済みデータに基づき得、その場合、フィルタ処理は「ポストフィルタ処理」と呼ばれる。
【００７０】
フレームごとに、スライスごとに、またはＬＣＵごとに、ビデオエンコーダ１２２は、フィルタの１つまたは複数のセットを選択し得、コード化ユニットごとに、エンコーダは、フィルタ処理を適用すべきか否かを判断し得る。フィルタ処理されるべきＣＵについて、エンコーダは、ピクセルごとにまたはグループごとにフィルタ処理を実行することができ、その場合、グループは、たとえば、ピクセルの２×２ブロックまたはピクセルの４×４ブロックであり得る。これらの選択は、ビデオ品質を促進するように行われ得る。フィルタのそのようなセットは、フィルタのあらかじめ定義されたセットから選択され得るか、またはビデオ品質を促進するように適応的に定義され得る。一例として、ビデオエンコーダ１２２は、所与のフレームまたはスライスのＣＵの異なるピクセルまたはピクセルのグループのために異なるフィルタが使用されるように、そのフレームまたはスライスのためにフィルタのいくつかのセットを選択または定義し得る。詳細には、ＣＵに関連する各入力のために、フィルタ係数のいくつかのセットが定義され得、ＣＵのピクセルに関連する２つ以上のメトリックを使用して、そのようなピクセルまたはピクセルのグループとともにフィルタのセットからのどのフィルタを使用すべきかが判断され得る。
【００７１】
場合によっては、ビデオエンコーダ１２２は、フィルタ係数のいくつかのセットを適用し、コード化ブロックと元のブロックとの間のひずみの量に関する最高品質のビデオ、および／または最高レベルの圧縮を生成する、１つまたは複数のセットを選択し得る。いずれの場合も、選択されると、各ＣＵに対してビデオエンコーダ１２２によって適用されるフィルタ係数のセットは、ビデオデコーダ１２８が、所与の各ＣＵに対して符号化プロセス中に適用されたのと同じフィルタ処理を適用することができるように、符号化され、宛先デバイス１１８のビデオデコーダ１２８に通信され得る。
【００７２】
ＣＵのための特定の入力とともにどのフィルタを使用すべきかを判断するために２つ以上のメトリックが使用されるとき、その特定のＣＵのためのフィルタの選択は、必ずしもビデオデコーダ１２８に通信される必要があるとは限らない。代わりに、ビデオデコーダ１２８はまた、２つ以上のメトリックを計算し、ビデオエンコーダ１２２によって前に与えられたフィルタ情報に基づいて、２つ以上のメトリックの組合せを特定のフィルタに一致させることができる。
【００７３】
図３は、本開示に一致するビデオエンコーダ３５０を示すブロック図である。ビデオエンコーダ３５０は、デバイス１２０のビデオエンコーダ１２２、または異なるデバイスのビデオエンコーダに対応し得る。図３に示すように、ビデオエンコーダ３５０は、予測モジュール３３２と、加算器３４８および３５１と、メモリ３３４とを含む。ビデオエンコーダ３５０は、変換ユニット３３８および量子化ユニット３４０、ならびに逆量子化ユニット３４２および逆変換ユニット３４４をも含む。ビデオエンコーダ３５０は、デブロッキングフィルタ３４７と適応フィルタユニット３４９とをも含む。ビデオエンコーダ３５０はエントロピー符号化ユニット３４６をも含む。ビデオエンコーダ３５０のフィルタユニット３４９は、フィルタ処理演算を実行し得、また、復号のために使用されるべき望ましいまたは好適なフィルタまたはフィルタのセットを識別するためのフィルタ選択ユニット（ＦＳＵ：filter selection unit）３５３を含み得る。フィルタユニット３４９はまた、選択されたフィルタが、復号演算中に使用されるべき別のデバイスへのフィルタ情報として効率的に通信され得るように、選択されたフィルタを識別するフィルタ情報を生成し得る。
【００７４】
符号化プロセス中に、ビデオエンコーダ３５０が、コーディングされるべきＬＣＵなどのビデオブロックを受信し、予測モジュール３３２がビデオブロックに対して予測コーディング技法を実行する。上記で説明した４分木区分スキームを使用して、予測モジュール３３２はビデオブロックを区分し、異なるサイズのＣＵに対して予測コーディング技法を実行することができる。インターコーディングの場合、予測モジュール３３２は、予測ブロックを定義するために、ビデオブロックのサブブロックを含む符号化されるべきビデオブロックを、１つまたは複数のビデオ参照フレームまたはスライス中の様々なブロックと比較する。イントラコーディングの場合、予測モジュール３３２は、同じＣＵ内の隣接するデータに基づいて予測ブロックを生成する。予測モジュール３３２は予測ブロックを出力し、加算器３４８は、残差ブロックを生成するために、コーディングされているビデオブロックから予測ブロックを減算する。
【００７５】
インターコーディングの場合、予測モジュール３３２は、予測ブロックを指す動きベクトルを識別し、動きベクトルに基づいて予測ブロックを生成する、動き推定および動き補償ユニットを備え得る。一般に、動き推定は、動きを推定する、動きベクトルを生成するプロセスと考えられる。たとえば、動きベクトルは、現在のフレーム内のコーディングされている現在のブロックに対する予測フレーム内の予測ブロックの変位を示し得る。動き補償は、一般に、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成するプロセスと考えられる。イントラコーディングの場合、予測モジュール３３２は、同じＣＵ内の隣接するデータに基づいて予測ブロックを生成する。１つまたは複数のイントラ予測モードは、イントラ予測ブロックがどのように定義され得るかを定義し得る。
【００７６】
予測モジュール３３２が予測ブロックを出力し、加算器３４８が、残差ブロックを生成するために、コーディングされているビデオブロックから予測ブロックを減算した後に、変換ユニット３３８が残差ブロックに変換を適用する。変換は、離散コサイン変換（ＤＣＴ）、またはＨＥＶＣ規格などのコーディング規格によって定義された変換など、概念的に同様の変換を備え得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換ユニット３３８は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル領域から周波数領域に変換し得る。
【００７７】
次いで、量子化ユニット３４０が、ビットレートをさらに低減するために残差変換係数を量子化する。量子化ユニット３４０は、たとえば、係数の各々をコーディングするために使用されるビット数を制限し得る。量子化後に、エントロピー符号化ユニット３４６は、量子化係数ブロックを２次元表現から１つまたは複数のシリアル化１次元ベクトルに走査する。走査順序は、（ジグザグ走査、水平方向走査、垂直方向走査、組合せ、または別のあらかじめ定義された順序などの）定義された順序で行われるように事前プログラムされ得るか、または場合によっては、前のコーディング統計値に基づいて適応的に定義され得る。
【００７８】
この走査プロセスの後に、エントロピー符号化ユニット３４６が、データをさらに圧縮するために、ＣＡＶＬＣまたはＣＡＢＡＣなどのエントロピーコーディング方法に従って（シンタックス要素とともに）量子化変換係数を符号化する。エントロピーコード化ビットストリーム中に含まれるシンタックス要素は、インターコーディングのための動きベクトルまたはイントラコーディングのための予測モードなど、予測モジュール３３２からの予測シンタックスを含み得る。エントロピーコード化ビットストリーム中に含まれるシンタックス要素は、本明細書で説明する方法で符号化され得るフィルタユニット３４９からのフィルタ情報をも含み得る。
【００７９】
ＣＡＶＬＣは、エントロピー符号化ユニット３４６によってベクトル化ベースで適用され得る、ＩＴＵ  Ｈ．２６４／ＭＰＥＧ４，ＡＶＣ規格によってサポートされる１つのタイプのエントロピー符号化技法である。ＣＡＶＬＣは、変換係数および／またはシンタックス要素のシリアル化「ラン」を効果的に圧縮するように可変長コーディング（ＶＬＣ）テーブルを使用する。ＣＡＢＡＣは、エントロピー符号化ユニット３４６によってベクトル化ベースで適用され得る、ＩＴＵ  Ｈ．２６４／ＭＰＥＧ４，ＡＶＣ規格によってサポートされる別のタイプのエントロピーコーディング技法である。ＣＡＢＡＣは、２値化、コンテキストモデル選択、およびバイナリ算術コーディングを含む、いくつかの段を伴う。この場合、エントロピー符号化ユニット３４６は、ＣＡＢＡＣに従って変換係数とシンタックス要素とをコーディングする。ＩＴＵ  Ｈ．２６４／ＭＰＥＧ４，ＡＶＣ規格のように、新生のＨＥＶＣ規格も、ＣＡＶＬＣエントロピーコーディングとＣＡＢＡＣエントロピーコーディングの両方をサポートし得る。さらに、多くの他のタイプのエントロピーコーディング技法も存在し、新しいエントロピーコーディング技法が将来出現する可能性がある。本開示は、いかなる特定のエントロピーコーディング技法にも限定されない。
【００８０】
エントロピー符号化ユニット３４６によるエントロピーコーディングの後に、符号化されたビデオは、別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。この場合も、符号化されたビデオは、復号プロセスを適切に構成するためにデコーダによって使用され得るエントロピーコード化ベクトルと様々なシンタックスとを備え得る。逆量子化ユニット３４２および逆変換ユニット３４４が、それぞれ逆量子化および逆変換を適用して、ピクセル領域において残差ブロックを再構成する。加算器３５１が、デブロック前再構成画像と呼ばれることがあるデブロック前再構成ビデオブロックを生成するために、再構成残差ブロックを、予測モジュール３３２によって生成された予測ブロックに加算する。デブロッキングフィルタ３４７が、ブロッキネスまたは他のアーティファクトを除去することによってビデオ品質を改善するために、デブロック前再構成ビデオブロックにフィルタ処理を適用し得る。デブロッキングフィルタ３４７の出力は、デブロック後ビデオブロック、再構成ビデオブロック、または再構成画像と呼ばれることがある。
【００８１】
フィルタユニット３４９は、単一の入力または複数の入力を受信するように構成され得る。図３の例では、フィルタユニット３４９は、デブロック後再構成画像（ＲＩ）と、デブロック前再構成画像（ｐＲＩ）と、予測画像（ＰＩ）と、再構成残差ブロック（ＥＩ）とを入力として受信する。フィルタユニット３４９は、これらの入力のいずれかを個々にまたは組み合わせて使用して、再構成画像を生成してメモリ３３４に記憶することができる。さらに、以下でより詳細に説明するように、２つ以上のメトリックに基づいて、（１つまたは複数の）入力に適用されるべき１つまたは複数のフィルタが選択され得る。一例では、フィルタユニット３４９の出力は、ＲＩに適用される１つの追加のフィルタであり得る。別の例では、フィルタユニット３４９の出力は、ｐＲＩに適用される１つの追加のフィルタであり得る。しかしながら、他の例では、フィルタユニット３４９の出力は複数の入力に基づき得る。たとえば、フィルタユニット３４９は、第１のフィルタをｐＲＩに適用し、次いで、ＥＩおよびＰＩのフィルタ処理済みバージョンとともにｐＲＩのフィルタ処理済みバージョンを使用して、再構成画像を生成し得る。フィルタユニット３４９の出力が、１つの追加のフィルタが単一の入力に適用された結果である事例では、フィルタユニット３４９は、事実上、フィルタを他の入力に適用し得るが、それらのフィルタはオール０係数を有し得る。同様に、フィルタユニット３４９の出力が、３つのフィルタを３つの入力に適用した結果である場合、フィルタユニット３４９は、事実上、フィルタを第４の入力に適用し得るが、そのフィルタはオール０係数を有し得る。
【００８２】
フィルタユニット３４９は、単一の入力を受信するようにも構成され得る。たとえば、図３は、ＰＩ、ＥＩ、ｐＲＩ、およびＲＩがフィルタユニット３４９に入力されることを示しているが、いくつかの実装形態では、ＲＩが、フィルタユニット３４９によって受信される唯一の入力であり得る。そのような実装形態では、フィルタユニット３４９は、ＲＩのフィルタ処理済みバージョンがＲＩの非フィルタ処理済みバージョンよりも元の画像に類似しているように、ＲＩにフィルタを適用し得る。他の実装形態では、フィルタユニット３４９とデブロッキングフィルタ３４７とは、組み合わせられて、ｐＲＩにフィルタ処理を適用する単一のフィルタ処理ユニットになり得る。一般に複数メトリックベースのフィルタマッピングに関する、本開示の技法は、複数のフィルタを利用する単一入力フィルタ処理スキームと複数入力フィルタ処理スキームとの両方に適合する。
【００８３】
フィルタユニット３４９によるフィルタ処理は、非フィルタ処理済み予測ビデオブロックよりも、コーディングされているビデオブロックに厳密に一致する予測ビデオブロックを生成することによって圧縮を改善し得る。フィルタ処理後に、再構成ビデオブロックは、後続のビデオフレームまたは他のＣＵ中のブロックをインターコーディングするために予測モジュール３３２によって参照ブロックとして使用され得る。フィルタユニット３４９は「ループ内」に示されているが、本開示の技法はまた、ポストフィルタとともに使用され得、その場合、（フィルタ処理済みデータではなく）非フィルタ処理済みデータが、後続のＣＵ中のデータを予測するために使用されるであろう。
【００８４】
スライスまたはフレームなど、一連のビデオブロックのために、フィルタユニット３４９は、ビデオ品質を促進するように各入力のためのフィルタのセットを選択し得る。たとえば、フィルタユニット３４９は、係数のあらかじめ定義されたセットからフィルタのセットを選択し得るか、あるいはビデオ品質または改善された圧縮を促進するために、フィルタを適応的に定義し得る。フィルタユニット３４９は、フィルタの（１つまたは複数の）同じセットが、所与のＣＵの異なるビデオブロックのピクセルのために使用されるように、そのＣＵのためにフィルタの１つまたは複数のセットを選択または定義し得る。フィルタユニット３４９は、フィルタのいくつかのセットを複数の入力に適用し得、ＦＳＵ３５３は、最高品質のビデオまたは最高レベルの圧縮を生成するセットを選択し得る。代替的に、ＦＳＵ３５３は、複数の入力と元の画像との間の自己相関と相互相関とを分析することによって新しいフィルタをトレーニングし得る。フィルタの新しいセットは、たとえば、自己相関と相互相関とに基づいて、Ｗｉｅｎｔｅｒ−Ｈｏｐｔ式を解くことによって判断され得る。フィルタの新しいセットがトレーニングされるかまたはフィルタの既存のセットが選択されるかにかかわらず、フィルタユニット３４９は、特定のフレームまたはスライスのために使用されるべきフィルタの１つまたは複数のセットをデコーダが同じく識別することを可能にする、ビットストリーム中に含めるためのシンタックスを生成する。
【００８５】
本開示によれば、一連のビデオブロック内のＣＵの各ピクセルのために、フィルタユニット３４９は、ＣＵ内のピクセルの１つまたは複数のセットに関連する性質を定量化する２つ以上のメトリックに基づいて、フィルタのセットからのどのフィルタが使用されるべきかを選択し得る。このようにして、ＦＳＵ３５３は、フレームまたはスライスなど、上位レベルのコード化ユニットのためのフィルタのセットを判断し得るが、フィルタユニット３４９は、下位レベルのコード化ユニットのピクセルに関連する２つ以上のメトリックに基づいて、（１つまたは複数の）セットからのどの（１つまたは複数の）フィルタが、その下位レベルのコード化ユニットの特定のピクセルのために使用されるべきかを判断する。
【００８６】
各入力のためにＭ個のフィルタのセットが使用され得る。設計上の選好に応じて、Ｍは、たとえば、わずか２でも、または１６程度でも、さらにはより大きくてもよい。入力当たりの多数のフィルタはビデオ品質を改善し得るが、また、フィルタのセットをエンコーダからデコーダにシグナリングすることに関連するオーバーヘッドを増加させ得る。Ｍ個のフィルタのセットは、上記で説明したようにＦＳＵ３５３によって判断され、各フレームまたはスライスのためにデコーダにシグナリングされ得る。ＣＵがどのようにセグメント化されるかと、ＣＵの特定のサブユニットがフィルタ処理されるべきか否かとを示すために、セグメンテーションマップが使用され得る。セグメンテーションマップは、たとえば、ＣＵについて、上記で説明した分割フラグの配列を含み得、ならびに各サブＣＵがフィルタ処理されるべきかどうかをシグナリングする追加のビットを含み得る。フィルタ処理されるべきＣＵのピクセルに関連する各入力のために、フィルタのセットからの特定のフィルタが２つ以上のメトリックに基づいて選定され得る。２つ以上のメトリックのための値の組合せが、Ｍ個のフィルタのセットからの特定のフィルタにインデックス付けされ得る。
【００８７】
図４Ａは、フィルタのセットからのフィルタにインデックス付けされた２つのメトリックのための値の範囲を示す概念図である。図４Ａの特定の例は、８つのフィルタ（すなわちフィルタ１、フィルタ２．．．フィルタ８）を示しているが、より多いまたはより少ないフィルタが同様に使用され得る。図４Ａは、本開示の技法に従ってフィルタを選択するために使用され得る２つのメトリックを示している。２つのメトリックは、たとえば、非方向固有アクティビティ（たとえば和修正ラプラシアン値）および方向、方向固有アクティビティおよびエッジ検出、方向メトリックおよびエッジメトリック、水平アクティビティメトリックおよび垂直アクティビティメトリック、または２つの他のそのようなメトリックに関係するピクセルデータの性質を定量化し得る。いくつかの事例では、３つ以上のメトリックが使用され得、その場合、図４Ａの概念図は、メトリックの範囲をフィルタのセットからのフィルタにマッピングするための第３の次元を含むであろう。
【００８８】
図４Ａの例では、第１のメトリック（メトリック１）が４つの範囲（範囲１−１、１−２、１−３、および１−４）を有し、第２のメトリック（メトリック２）も４つの範囲（範囲２−１、２−２、２−３、および２−４）を有する。したがって、図４Ａの例は、メトリック１のための範囲とメトリック２のための範囲との１６個の組合せを有する。ただし、図４Ａからわかるように、各組合せは必ずしもユニークなフィルタに関連付けられるとは限らない。図４Ａの例では、範囲１−１と範囲２−１との組合せ、ならびに１−１と２−２との組合せ、および１−１と２−３との組合せが、たとえば、すべてフィルタ１にマッピングされる。フィルタ４は、対照的に、１つの組合せ（１−１と２−４）にのみマッピングされる。図４Ａの範囲は比較的等しいものとして示されているが、範囲のサイズは変動し得る。たとえば、いくつかの実装形態では、範囲１−１は、範囲１−２よりも大きい範囲の値を包含し得る。さらに、図４Ａは、メトリック１とメトリック２とを同数の範囲を有するものとして示しているが、第１のメトリックのための範囲の数と第２のメトリックのための範囲の数とは、必ずしも等しい必要があるとは限らない。たとえば、メトリック１が分散メトリックであり、メトリック２が方向メトリックである場合、メトリック１は８つの範囲を使用し得、メトリック２は３つの範囲を使用する。
【００８９】
いくつかの例では、メトリック１およびメトリック２の範囲は値の連続スペクトルを表し得る。たとえば、メトリック１が和修正ラプラシアン値である場合、範囲１−２は、範囲１−１よりも多いアクティビティだが範囲１−３よりも少ないアクティビティに対応し得、範囲１−４は、範囲１−３よりも多いアクティビティに対応し得る。ある範囲内で、特定のピクセルまたはピクセルのグループについて判断されるアクティビティの量は、メトリック１の軸に沿って同様に増加し得る。他の例では、メトリック１およびメトリック２の範囲は、実際の範囲を表さないことがあり、代わりに個別判断を表すことがある。たとえば、メトリック２が方向メトリックである場合、範囲１−１は方向なしの判断に対応し得、範囲２−２は水平方向の判断に対応し得、範囲２−３は垂直方向の判断に対応し得、範囲２−４は対角方向の判断を表し得る。以下でより詳細に説明するように、方向なし、水平方向、垂直方向、および対角方向は個別判断であり得、したがって、メトリック２のための範囲は、メトリック１の範囲が値の連続スペクトルを表すのと同様に値の連続スペクトルを表さないことがある。
【００９０】
図４Ｂは、アクティビティメトリックおよび方向メトリックのための値の範囲を示す概念図である。図４Ｂの例では、方向メトリックは３つの個別判断（方向なし、水平、および垂直）を含む。方向なし、水平、および垂直を判断するための技法、ならびにアクティビティを判断するための技法については、以下でさらに詳細に説明する。図４Ｂの特定の例は、６つのフィルタ（すなわちフィルタ１、フィルタ２．．．フィルタ６）を示しているが、より多いまたはより少ないフィルタが同様に使用され得る。図４Ｂからわかるように、２つのメトリック（アクティビティおよび方向）は、組合せ４２１〜４３５として識別される、１５個の組合せを作成する。ただし、いくつかの事例では、図４Ｂに明示的に示されていない追加の組合せも使用され得る。たとえば、アクティビティなしに対応する組合せが、対応するフィルタを同じく有する第１６の組合せであり得る。
【００９１】
フィルタユニット３４９は、図４Ａおよび図４Ｂの例示的なマッピングなど、フィルタと２つ以上のメトリックの範囲の組合せとのマッピングを記憶し、そのマッピングを使用して、ＣＵ中の特定のピクセルまたはピクセルのグループにフィルタのセットからのどのフィルタを適用すべきかを判断することができる。フィルタと２つ以上のメトリックの範囲の組合せとのマッピングは、たとえば、上記で説明したフィルタ選択プロセスの一部としてフィルタユニット３４９によって判断され得る。マッピングがどのように判断されるかにかかわらず、フィルタユニット３４９は、デコーダがマッピングを再構成することを可能にする情報を生成することができる。この情報は、範囲の組合せとフィルタとのマッピングをシグナリングするためにコード化ビットストリーム中に含まれ得る。シグナリングされる組合せと範囲とのマッピングは、範囲組合せをフィルタ識別ＩＤにマッピングし得る。特定のフィルタのための実際の係数は別個にシグナリングされ得る。
【００９２】
この情報を生成するために、フィルタユニット３４９は最初に組合せのための送信順序を判断する。送信順序は、概して、範囲の組合せのためにフィルタがシグナリングされることになる順序を指す。一例として図４Ａを使用すると、フィルタユニット３４９は、左から右へ、上から下への送信順序を使用し得、その場合、組合せ４０１のためのフィルタが最初にシグナリングされ、組合せ４０２のためのフィルタが第２にシグナリングされ、残りの組合せは、４０３＝＞４０４＝＞４０５＝＞４０６＝＞４０７＝＞４０８＝＞４０９＝＞４１０＝＞４１１＝＞４１２＝＞４１３＝＞４１４＝＞４１５＝＞４１６の順序でシグナリングされる。フィルタユニット３４９は、上から下へ、ジグザグの送信順序をも使用し得、その場合、組合せのためのフィルタは、４０１＝＞４０２＝＞４０３＝＞４０４＝＞４０８＝＞４０７＝＞４０６＝＞４０５＝＞４０９＝＞４１０＝＞４１１＝＞４１２＝＞４１６＝＞４１５＝＞４１４＝＞４１３の順序でシグナリングされる。フィルタユニット３４９は、上から下へ、左から右への送信順序をも使用し得、その場合、組合せのためのフィルタは、４０１＝＞４０５＝＞４０９＝＞４１３＝＞４０２＝＞４０６＝＞４１０＝＞４１４＝＞４０３＝＞４０７＝＞４１１＝＞４１５＝＞４０４＝＞４０８＝＞４１２＝＞４１６の順序でシグナリングされる。フィルタユニット３４９は、左から右へ、ジグザグの送信順序をも使用し得、その場合、組合せのためのフィルタは、４０１＝＞４０５＝＞４０９＝＞４１３＝＞４１４＝＞４１０＝＞４０６＝＞４０２＝＞４０３＝＞４０７＝＞４１１＝＞４１５＝＞４１６＝＞４１２＝＞４０８＝＞４０４の順序でシグナリングされる。図４Ｂを参照すると、フィルタユニット３４９は、送信順序が４２１＝＞４２２＝＞４２３＝＞４２４＝＞４２５＝＞４２６＝＞４２７＝＞４２８＝＞４２９＝＞４３０＝＞４３１＝＞４３２＝＞４３３＝＞４３４＝＞４３５であるように、左から右へ、下から上への送信順序を使用し得る。想像され得るように、これらは、可能である多くの送信順序のうちのわずか数個である。
【００９３】
本開示の技法によれば、フィルタユニット３４９は、デコーダにマッピングをシグナリングするために一連のコードワードを使用することができる。たとえば、フィルタユニット３４９は、復号されている現在の組合せが、第１のメトリックのための同じ範囲を共有する直近に復号された組合せと同じフィルタにマッピングするかどうかを示すための、第１のコードワードを生成することができる。復号されている現在の組合せが、第２のメトリックのための同じ範囲を共有する直近に復号された組合せと同じフィルタにマッピングする場合、フィルタユニット３４９は、第１のコードワードの代わりに第２のコードワードを生成することができる。復号されている現在の組合せが、これらの直近に復号された組合せのいずれかと同じフィルタにマッピングしない場合、フィルタユニット３４９は、第１のコードワードまたは第２のコードワードの代わりに、復号されている現在の組合せに対応するフィルタを示す第３のコードワードを生成することができる。本例の第１および第２のコードワードは、第３のコードワードと比較して比較的短いことがある。たとえば、第１のコードワードおよび第２のコードワードはそれぞれ２ビット（たとえばそれぞれ００および０１）であり得、第３のコードワードはより多くのビット（１の第１のビット、＋追加のビット）である。この特定のコンテキストでは、復号されている現在の組合せまたは復号されている前の組合せは、フィルタと範囲組合せとのマッピングがエンコーダによってシグナリングされているかまたはデコーダによって構成されている、符号化および復号プロセスの部分を指し、必ずしも組合せ自体の送信または復号を指すとは限らない。
【００９４】
次に、図４Ａと、上から下へ、左から右への送信順序とを参照しながら、上記で説明した技法の例を与える。たとえば、組合せ４０７が、現在復号されている組合せである場合、組合せ４０６は、メトリック１のための同じ範囲を共有する直近に復号された組合せであり、組合せ４０３は、メトリック２のための同じ範囲を共有する直近に復号された組合せである。組合せ４０７が、第２のメトリックのための同じ範囲（すなわちメトリック２のための範囲２−３）を共有する直近に復号された組合せと同じフィルタ（図４Ａ中のフィルタ７）にマッピングする場合、フィルタユニット３４９は、復号されている現在の組合せ（組合せ４０７）が、第２のメトリックのための同じ範囲を共有する直近に復号された組合せ（組合せ４０３）と同じフィルタにマッピングすることを示すための、第２のコードワード（たとえば０１）を送信することができる。
【００９５】
たとえば、組合せ４１０が、復号されている現在の組合せである場合、組合せ４０９は、メトリック１のための同じ範囲を共有する直近に復号された組合せであり、組合せ４０６は、メトリック２のための同じ範囲を共有する直近に復号された組合せである。組合せ４１０が、第１のメトリックのための同じ範囲（すなわちメトリック１のための範囲１−２）を共有する直近に復号された組合せと同じフィルタ（図４Ａ中のフィルタ２）にマッピングする場合、フィルタユニット３４９は、復号されている現在の組合せ（組合せ４１０）が、第１のメトリックのための同じ範囲を共有する直近に復号された組合せ（組合せ４０９）と同じフィルタ（フィルタ２）にマッピングすることを示すための、第１のコードワード（たとえば００）を送信することができる。
【００９６】
たとえば、組合せ４１１が、復号されている現在の組合せである場合、組合せ４１０は、メトリック１のための同じ範囲を共有する直近に復号された組合せであり、組合せ４０７は、メトリック２のための同じ範囲を共有する直近に復号された組合せである。組合せ４１１が、組合せ４１０または組合せ４０７のいずれかと同じフィルタにマッピングしない場合、フィルタユニット３４９は、復号されている現在の組合せ（組合せ４１１）が、メトリック１のための同じ範囲を共有する直近に復号された組合せとメトリック２のための同じ範囲を共有する直近に復号された組合せとの両方とは異なるフィルタ（フィルタ３）にマッピングすることを示すための、第３のコードワード（たとえば１＋追加のビット）を送信することができる。
【００９７】
メトリック１のための同じ範囲を共有する組合せまたはメトリック２のための同じ範囲を共有する組合せがまだ復号されていない、現在の組合せの場合、それらのオプションは、利用不可能であると見なされ得るかまたは異なる組合せによって置き換えられ得る。たとえば、組合せ４０９が、復号されるべき現在の組合せである場合、組合せ４０５は、メトリック２のための同じ範囲を共有する直近に復号された組合せであるが、メトリック１のための範囲を共有する組合せはまだ復号されていない。そのような場合、メトリック１のための範囲を共有する直近に復号された組合せは、復号されている現在の組合せと同じフィルタにマッピングしないと仮定され得る。したがって、この場合、第１のコードワードは組合せ４０９のために使用されないことになる。代替的に、メトリック１のための範囲を共有する組合せは、直近に復号された組合せまたは異なる前に復号された組合せなど、別の組合せによって置き換えられ得る。そのような場合、組合せ４０９の前の直近に復号された組合せは、組合せ４０８であろう。したがって、組合せ４０８が組合せ４０９と同じフィルタにマッピングする場合、フィルタユニット３４９は第１のコードワードを生成することができる。メトリック１のための共通の範囲を共有する、前の組合せがまだ復号されていない、組合せのために、類似する技法が使用され得る。
【００９８】
メトリック１のための同じ範囲を共有する組合せもメトリック２のための同じ範囲を共有する組合せも復号されていない、送信順序における第１の組合せ（たとえば図４Ａの例では組合せ４０１）の場合、フィルタユニット３４９は、第１の組合せにマッピングするフィルタを示すコードワードを生成することができる。そのフィルタは、たとえば、第３のコードワードを使用してシグナリングされ得るか、または異なる技法を使用してシグナリングされ得、その場合、本開示で説明する技法は、送信順序における第２の組合せまたはその後の組合せから始まり得る。
【００９９】
本開示の別の技法によれば、フィルタユニット３４９は、デコーダにマッピングをシグナリングするために一連のコードワードを使用することができる。いくつかの実装形態では、フィルタユニット３４９は、復号されている現在の組合せが、第１のメトリックのための同じ範囲を共有する直近に復号された組合せと同じフィルタにマッピングするかどうかを示すための、第１のコードワードを生成することができる。復号されている現在の組合せが、第１のメトリックのためのその範囲を共有する直近に復号された組合せと同じフィルタにマッピングしない場合、フィルタユニット３４９は、第１のコードワードの代わりに、復号されている現在の組合せにマッピングするフィルタを示す第２のコードワードを生成することができる。この例では、第１のコードワードは、第２のコードワードと比較して比較的短いことがある。たとえば、第１のコードワードは１ビット（たとえば０）であり得、第２のコードワードはより多くのビット（たとえば、１の第１のビット、＋追加のビット）である。現在の組合せが、メトリック１またはメトリック２のいずれかのための同じ範囲を共有する、前に復号された組合せと同じフィルタにマッピングする場合、短いコードワードが生成され得る、前の技法とは異なり、本技法は、現在の組合せが、メトリック１のための同じ範囲を共有する、前に復号された組合せと同じフィルタにマッピングする場合、短いコードワードを生成することのみを含む。したがって、現在の組合せが、メトリック２のための同じ範囲を共有する、前に復号された組合せと同じフィルタにマッピングする場合でも、フィルタユニット３４９は、依然として第２のコードワード（たとえば１＋追加のビット）を生成する。本開示では説明のためにメトリック１を使用しているが、メトリック２のみを使用して同じ技法が適用されることもある。
【０１００】
本開示のさらに別の技法によれば、フィルタユニット３４９は、デコーダにマッピングをシグナリングするために異なる一連のコードワードを使用することができる。たとえば、フィルタユニット３４９は、復号されている現在の組合せが、もしあれば、前に復号された組合せと共通してどの範囲を有するかにかかわらず、現在の組合せが、直近に復号された組合せと同じフィルタにマッピングするかどうかを示すための、第１のコードワードを生成することができる。復号されている現在の組合せが、直近に復号された組合せと同じフィルタにマッピングしない場合、フィルタユニット３４９は、現在の組合せにマッピングするフィルタを識別する第２のコードワードを生成することができる。この特定の実装形態では、第１のコードワードは、第２のコードワードと比較して比較的短いことがある。たとえば、第１のコードワードは１ビット（たとえば０）であり得、第２のコードワードはより多くのビット（たとえば、１の第１のビット、＋追加のビット）である。
【０１０１】
再び、図４Ａと、上から下へ、左から右への送信順序との例を使用すると、組合せ４０１は、組合せ４０２が現在復号されている場合、直近に復号された組合せとなり、組合せ４０２は、組合せ４０３が現在の組合せである場合、直近に復号された組合せとなり、以下同様である。４０４は、組合せ４０５が復号されている現在の組合せである場合、直近に復号された組合せとなる。したがって、フィルタユニット３４９は、組合せ４０２が組合せ４０１と同じフィルタにマッピングする場合、組合せ４０３が組合せ４０２と同じフィルタにマッピングする場合など、第１のコードワードを生成することができる。他の場合、フィルタユニット３４９は、現在の組合せにマッピングするフィルタを識別する第２のコードワードを生成することができる。
【０１０２】
本開示のさらに別の技法によれば、フィルタユニット３４９は、フィルタと組合せとのマッピングをシグナリングするために２つのコードワードを使用することができる。現在の組合せが前の組合せと同じフィルタを使用することをシグナリングするために、「０」などの第１のコードワードが使用され得る。現在の組合せが前の組合せとは異なるフィルタを有することをシグナリングするために、「１」などの第２のコードワードが使用され得る。ただし、第２のコードワードは新しいフィルタを識別する必要がない。代わりに、新しいフィルタは、クラスのための送信順序とフィルタ係数が送信される順序とに基づいて判断され得る。一例として、図４Ｂについて上記で説明した、左から右へ、下から上への送信順序を使用すると、コードワードはそれに応じて、４２１（０）＝＞４２２（０）＝＞４２３（１）＝＞４２４（０）＝＞４２５（０）＝＞４２６（０）＝＞４２７（０）＝＞４２８（１）＝＞４２９（０）＝＞４３０（０）＝＞４３１（０）＝＞４３２（１）＝＞４３３（０）＝＞４３４（０）＝＞４３５（０）、のように送信され得、丸括弧中の番号はその組合せのためのコードワードを表す。この例では、組合せ４２１〜４２２は第１のフィルタにマッピングされることになり、組合せ４２３〜４２７は第２のフィルタにマッピングされることになり、組合せ４２８〜４３１は第３のフィルタにマッピングされることになり、組合せ４３２〜４３５は第４のフィルタにマッピングされることになる。第１のフィルタ、第２のフィルタ、第３のフィルタ、および第４のフィルタのための係数は、フィルタ係数のセットがシグナリングされる順序に対応することができ、その場合、シグナリングされるフィルタ係数の第１のセットは第１のフィルタに対応し、シグナリングされるフィルタ係数の第２のセットは第２のフィルタに対応し、以下同様である。フィルタ係数のセットを送信するための順序を判断することについて、以下でより詳細に説明する。
【０１０３】
フィルタと範囲の組合せとのマッピングをシグナリングするための、本開示で説明する様々な技法は、相互排他的な代替形態でなく、むしろ、互いと併せて使用され得る。たとえば、いくつかの実装形態では、いくつかの組合せは第１の技法を使用してシグナリングされ得、他の組合せは第２の技法を使用してシグナリングされる。一例として、メトリック１のための同じ範囲を共有する組合せまたはメトリック２のための同じ範囲を共有する組合せのうちの一方がまだ復号されていない場合（たとえば組合せ４０２、４０３、４０４、４０５、４０９、および４１３）、フィルタユニット３４９は第１の技法を使用し得る。メトリック１のための同じ範囲を共有する組合せとメトリック２のための同じ範囲を共有する組合せとの両方が復号されている場合（たとえば組合せ４０６、４０７、４０８、４１０、４１１、４１２、４１４、４１５、および４１６）、第２の技法が使用され得る。さらに、上記で説明した第１、第２、および第３のコードワードのいずれかのために使用されるコードワードは、固定長コードワード、可変長コードワード、またはコンテキスト適応型可変長コードワードのいずれかであり得る。
【０１０４】
デコーダがフィルタと範囲の組合せとのマッピングを再構成することを可能にする情報を生成することに加えて、フィルタユニット３４９は、デコーダがフィルタ自体を再構成することを可能にする情報をも生成する。フィルタを再構成することは、フィルタのフィルタ係数を再構成することを含む。以下でより詳細に説明するように、フィルタユニット３４９は、フィルタ係数をシグナリングするために差分コーディング技法を使用することができる。差分コーディング技法を使用するために、フィルタユニット３４９は、フィルタ係数のセットをシグナリングすべき順序を判断する。
【０１０５】
その順序を判断することの一部として、フィルタユニット３４９は、範囲の各組合せのための連続値を表す組合せ識別情報（ＩＤ）を判断する。一例として図４Ａを使用すると、組合せは、左から右へ、上から下への順序で連続値を表す組合せＩＤを割り当てられ得、その場合、組合せ４０１は第１の連続値を割り当てられることになり、組合せ４０２は第２の連続値を割り当てられことになり、残りの組合せは、４０３＝＞４０４＝＞４０５＝＞４０６＝＞４０７＝＞４０８＝＞４０９＝＞４１０＝＞４１１＝＞４１２＝＞４１３＝＞４１４＝＞４１５＝＞４１６の順序での連続値を割り当てられることになる。フィルタユニット３４９は、上から下へ、ジグザグの順序をも使用して組合せＩＤを割り当て得、その場合、組合せは、４０１＝＞４０２＝＞４０３＝＞４０４＝＞４０８＝＞４０７＝＞４０６＝＞４０５＝＞４０９＝＞４１０＝＞４１１＝＞４１２＝＞４１６＝＞４１５＝＞４１４＝＞４１３の順序である連続値をもつ組合せＩＤを割り当てられることになる。フィルタユニット３４９は、上から下へ、左から右への順序をも使用して組合せＩＤを割り当て得、その場合、組合せは、４０１＝＞４０５＝＞４０９＝＞４１３＝＞４０２＝＞４０６＝＞４１０＝＞４１４＝＞４０３＝＞４０７＝＞４１１＝＞４１５＝＞４０４＝＞４０８＝＞４１２＝＞４１６の順序である連続値をもつ組合せＩＤを割り当てられる。フィルタユニット３４９は、左から右へ、ジグザグの順序をも使用し得、その場合、組合せは、４０１＝＞４０５＝＞４０９＝＞４１３＝＞４１４＝＞４１０＝＞４０６＝＞４０２＝＞４０３＝＞４０７＝＞４１１＝＞４１５＝＞４１６＝＞４１２＝＞４０８＝＞４０４の順序での連続値をもつ組合せＩＤを割り当てられる。想像され得るように、これらは、使用され得る多くの順序のうちのわずか数個である。さらに、説明した順序のいずれも、最低から最高へ、または最高から最低へのいずれかであり得る。
【０１０６】
フィルタユニット３４９がフィルタと範囲組合せとのマッピングを判断した後、フィルタユニット３４９は、同じフィルタにマッピングされた範囲組合せのグルーピングを識別することができる。一例として図４Ａを使用すると、グルーピングは以下のようなグルーピングであろう。
【０１０７】
フィルタ１のグループ：組合せ４１３、４１４、および４１５
フィルタ２のグループ：組合せ４０９、４１０
フィルタ３のグループ：組合せ４１１および４１２
フィルタ４のグループ：組合せ４１６
フィルタ５のグループ：組合せ４０１および４０５
フィルタ６のグループ：組合せ４０２および４０６
フィルタ７のグループ：組合せ４０３および４０７
フィルタ８のグループ：組合せ４０４および４０８。
【０１０８】
フィルタユニット３４９は次いで各グループにグループＩＤを割り当てることができ、グループＩＤは連続値を表すことができる。グループＩＤは、そのグループを備える組合せに関連する連続値に基づいてグループに割り当てられ得る。たとえば、組合せＩＤに基づく最低の関連する連続値をもつ組合せを有するグループは、最低連続値をもつグループＩＤを割り当てられ得る。残りのグループのうち、最低の関連する連続値をもつ組合せを有する残りのグループは、次の最低連続値をもつグループＩＤを割り当てられ得る。このプロセスは、すべてのグループがグループＩＤを割り当てられるまで繰り返すことができる。いくつかの実装形態では、グループＩＤは、最低ではなく最高の関連する連続値をもつ組合せに基づいて割り当てられ得る。いくつかの実装形態では、組合せＩＤに基づく最低の関連する連続値をもつ組合せを有するグループは、最高連続値をもつグループＩＤを割り当てられ得、またはその逆も同様である。
【０１０９】
再び、一例として図４Ａを使用すると、および組合せ４０１〜４１６が、左から右へ、上から下への順序での連続値をもつ組合せＩＤを割り当てられると仮定すると、フィルタユニット３４９は、以下で表１に示すように、フィルタグループにグループＩＤを割り当てることができる。
【表１】
0005897609.tif 000003
【０１１０】
表１に示す図４Ａの例では、フィルタユニット３４９は、フィルタ５のグループが、最低連続値をもつ範囲組合せ（すなわち、組合せ４０１）を含むので、フィルタ５のグループに最低連続値をもつグループＩＤを割り当てる。フィルタユニット３４９は、残りのフィルタグループ（すなわちフィルタ５のグループを除くすべてのグループ）のうち、フィルタ６のグループが、第２の最低連続値をもつ範囲組合せ（すなわち、組合せ４０２）を含むので、フィルタ６のグループに第２の最低連続値をもつグループＩＤを割り当てる。フィルタユニット３４９は、残りのフィルタグループ（すなわちフィルタ５のグループとフィルタ６のグループとを除くすべてのフィルタグループ）のうち、フィルタ７のグループが、最低連続値をもつ範囲組合せ（すなわち、組合せ４０３）を含むので、フィルタ７のグループに第３の最低連続値をもつグループＩＤを割り当てる。フィルタユニット３４９は、残りのフィルタグループ（すなわちフィルタ５のグループと、フィルタ６のグループと、フィルタ７のグループとを除くすべてのフィルタグループ）のうち、フィルタ８のグループが、第４の最低連続値をもつ範囲組合せ（組合せ４０４）を含むので、フィルタ８のグループに第４の最低連続値をもつグループＩＤを割り当てる。フィルタユニット３４９は、残りのフィルタグループのうち（すなわちフィルタ５のグループと、フィルタ６のグループと、フィルタ７のグループと、フィルタ８のグループとを除いて）、フィルタ２のグループが、最低連続値をもつ範囲組合せ（組合せ４０９）を含むので、フィルタ２のグループに第５の最低連続値をもつグループＩＤを割り当てる。フィルタユニット３４９は、残りのフィルタグループのうち（すなわちフィルタ５のグループと、フィルタ６のグループと、フィルタ７のグループと、フィルタ８のグループと、フィルタ２のグループとを除いて）、フィルタ３のグループが、最低連続値をもつ範囲組合せ（組合せ４１１）を含むので、フィルタ３のグループに第６の最低連続値をもつグループＩＤを割り当てる。フィルタユニット３４９は、残りのフィルタグループのうち（すなわちフィルタ５のグループと、フィルタ６のグループと、フィルタ７のグループと、フィルタ８のグループと、フィルタ２のグループと、フィルタ３のグループとを除いて）、フィルタ１のグループが、最低連続値をもつ範囲組合せ（組合せ４１３）を含むので、フィルタ１のグループに第７の最低連続値をもつグループＩＤを割り当てる。最後に、フィルタユニット３４９は、最後の残りのフィルタグループであるフィルタ４のグループに、最高連続値をもつグループＩＤ（この特定の例では８）を割り当てる。
【０１１１】
フィルタグループＩＤに基づいて、フィルタユニット３４９は、フィルタのフィルタ係数をシグナリングすべき順序を判断する。再び、図４Ａと表１との例を使用すると、フィルタユニット３４９は、最初にフィルタ５のための係数をシグナリングし、次いでフィルタ６のための係数をシグナリングし、次いでフィルタ７のための係数をシグナリングし、次いでフィルタ８のための係数をシグナリングし、次いでフィルタ２のための係数をシグナリングし、次いでフィルタ３のための係数をシグナリングし、次いでフィルタ１のための係数をシグナリングし、最後にフィルタ４のための係数をシグナリングする。本開示で説明する、差分コーディング技法を使用して、フィルタユニット３４９は、グループＩＤの順番に基づいて、フィルタ５のフィルタ係数に対する差分情報としてフィルタ６のための係数をコーディングし、フィルタ６のためのフィルタ係数に対する差分情報としてフィルタ７のための係数をコーディングし得、以下同様である。
【０１１２】
入力のための２つ以上のメトリックとフィルタとのマッピングは複数の方法で実装され得る。たとえば、いくつかの実装形態では、各入力はフィルタのユニークなセットを有し得るが、いくつかの実装形態では、入力はフィルタの共通のセットを共有する。さらに、いくつかの実装形態では、各入力のための２つ以上のメトリックが、各入力のための特定のフィルタを識別するために使用され得る。しかしながら、他の実装形態では、単一の入力のための２つ以上のメトリックが、すべての入力のためのフィルタを識別するために使用され得る。さらに他の実装形態では、第１の入力のための２つ以上のメトリックが、第２の異なる入力のためのフィルタを識別するために使用され得る。
【０１１３】
本開示によれば、フィルタユニット３４９は、フィルタ情報を符号化し、それをエンコーダ３５０から別のデバイスに搬送するために必要とされるデータの量を低減し得る、フィルタ情報に関するコーディング技法を実行し得る。この場合も、各フレームまたはスライスのために、フィルタユニット３４９は、そのフレームまたはスライスのＣＵのピクセルに適用されるべきフィルタ係数の１つまたは複数のセットを定義または選択し得る。フィルタユニット３４９は、フィルタ係数を適用して、メモリ３３４に記憶される再構成ビデオフレームのビデオブロックをフィルタ処理し、それらのビデオブロックは、ループ内フィルタ処理に従って予測コーディングのために使用され得る。フィルタユニット３４９は、フィルタ係数をフィルタ情報として符号化することができ、フィルタ情報は、符号化ビットストリーム中に含めるためにエントロピー符号化ユニット３４６にフォワーディングされる。
【０１１４】
さらに、本開示の技法は、ＦＳＵ３５３によって定義または選択されるフィルタ係数の一部が、別のフレームまたはスライスのＣＵのピクセルに対して適用される他のフィルタ係数に極めて類似していることがあることを活用し得る。同じタイプのフィルタ（たとえば、同じフィルタサポート）が異なるフレームまたはスライスに対して適用され得るが、フィルタは、フィルタサポートの異なるインデックスに関連するフィルタ係数値に関して異なり得る。したがって、そのようなフィルタ係数を搬送するために必要とされるデータの量を低減するために、フィルタユニット３４９は、フィルタ係数間の類似性を潜在的に活用して、別のＣＵのフィルタ係数に基づいて、フィルタ処理のために使用されるべき１つまたは複数のフィルタ係数を予測的に符号化し得る。しかしながら、場合によっては、たとえば、予測を使用せずに、フィルタ係数を直接符号化することがより望ましいことがある。予測コーディング技法を使用してフィルタ係数を符号化すべきときと、予測コーディングなしにフィルタ係数を直接符号化すべきときとを定義するためにアクティビティメトリックの使用を活用する技法など、様々な技法がフィルタ係数をデコーダに効率的に通信するために使用され得る。さらに、係数の完全セット（たとえば、５，−２，１０，１０，−２，５）を定義するために、デコーダによって知られている係数のサブセット（たとえば、５，−２，１０）が使用され得るように、対称性も課され得る。対称性は、直接コーディングシナリオと予測コーディングシナリオの両方において課され得る。
【０１１５】
上記で説明したように、ビデオエンコーダ３５０は、ピクセルのブロック内のピクセルのグループのための第１のメトリックを判断することと、ピクセルのグループのための第２のメトリックを判断することと、第１のメトリックと第２のメトリックとに基づいてフィルタを判断することと、ピクセルのグループにフィルタを適用することによってフィルタ処理済み画像を生成することとを行うように構成されたビデオエンコーダの一例を表す。ビデオエンコーダ３５０はまた、ピクセルのブロックのための第１のメトリックを判断することであって、第１のメトリックが、ブロック中のピクセルのサブセットとブロック中の他のピクセルとの比較に基づいて判断される、第１のメトリックを判断することと、ピクセルのブロックのための第２のメトリックを判断することと、第１のメトリックと第２のメトリックとに基づいてフィルタを判断することと、ピクセルのブロックにフィルタを適用することによってフィルタ処理済み画像を生成することとを行うように構成されたビデオエンコーダの一例を表す。
【０１１６】
上記で説明したように、ビデオエンコーダ３５０はまた、範囲組合せとフィルタとのマッピングを判断することであって、範囲組合せが、第１のメトリックのための範囲と第２のメトリックのための範囲とを備え、各範囲組合せが、ユニークな範囲組合せ識別情報（ＩＤ）を有し、各ユニークな範囲組合せＩＤが、範囲組合せのための連続値に対応する、判断することと、範囲組合せのための連続値に基づいて範囲組合せのグループにユニークなグループＩＤを割り当てることであって、各ユニークなグループＩＤが、グループのための連続値に対応する、割り当てることと、ユニークなグループＩＤに基づいてフィルタに対応するフィルタ係数のセットをコーディングすることとを行うように構成されたビデオエンコーダの一例を表す。ビデオエンコーダ３５０は、ユニークなグループＩＤの連続値に基づいて選択された順序で、コード化ビットストリーム中でフィルタ係数のセットをシグナリングすることによって、フィルタ係数のセットをコーディングすることができる。ビデオエンコーダ３５０は、差分コーディング技法を使用してフィルタ係数のセットをシグナリングすることができる。
【０１１７】
上記で説明したように、ビデオエンコーダ３５０はまた、範囲組合せとフィルタとのマッピングを判断することであって、範囲組合せが、第１のメトリックのための値の範囲と第２のメトリックのための値の範囲とを備える、判断することと、現在の範囲組合せが、第１のメトリックのための値の同じ範囲を備える、前の範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、現在の範囲組合せが、第２のメトリックのための値の同じ範囲を備える、前の範囲組合せと同じフィルタにマッピングされる場合、第２のコードワードを生成することと、現在の範囲組合せが、第１のメトリックのための値の同じ範囲を備える、前の範囲組合せ、および第２のメトリックのための値の同じ範囲を備える、前の範囲組合せとは異なるフィルタにマッピングされる場合、第３のコードワードを生成することとを行うように構成されたビデオエンコーダの一例を表す。ビデオエンコーダ３５０はまた、範囲組合せとフィルタとのマッピングを判断することであって、範囲組合せが、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、判断することと、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成することであって、第２のコードワードが、現在の範囲組合せにマッピングされたフィルタを識別する、第２のコードワードを生成することとを行うように構成されたビデオエンコーダの一例を表す。
【０１１８】
図５は、本明細書で説明する方法で符号化されたビデオシーケンスを復号するビデオデコーダ５６０の一例を示すブロック図である。受信されたビデオシーケンスは、画像フレームの符号化されたセット、フレームスライスのセット、一般にコード化されたピクチャのグループ（ＧＯＰ）を備え得、または符号化ビデオブロックと、そのようなビデオブロックを復号する方法を定義するためのシンタックスとを含む、多種多様なタイプの一連のビデオブロックを備え得る。
【０１１９】
ビデオデコーダ５６０は、図３のエントロピー符号化ユニット３４６によって実行される符号化の逆の復号機能を実行するエントロピー復号ユニット５５２を含む。詳細には、エントロピー復号ユニット５５２は、ＣＡＶＬＣまたはＣＡＢＡＣ復号、あるいはビデオエンコーダ３５０によって使用された他のタイプのエントロピー復号を実行し得る。１次元シリアル化フォーマットのエントロピー復号されたビデオブロックは、係数の１つまたは複数の１次元ベクトルを変換して２次元ブロックフォーマットに戻すために逆走査され得る。ベクトルの数およびサイズ、ならびにビデオブロックのために定義された走査順序は、２次元ブロックがどのように再構成されるかを定義し得る。エントロピー復号された予測シンタックスは、エントロピー復号ユニット５５２から予測モジュール５５４に送られ得、エントロピー復号されたフィルタ情報は、エントロピー復号ユニット５５２からフィルタユニット５５９に送られ得る。
【０１２０】
ビデオデコーダ５６０はまた、予測モジュール５５４と、逆量子化ユニット５５６と、逆変換ユニット５５８と、メモリと、加算器５６４とを含む。さらに、ビデオデコーダ５６０は、加算器５６４の出力をフィルタ処理するデブロッキングフィルタ５５７をも含む。本開示に従って、フィルタユニット５５９は、１つまたは複数の入力に適用されるべき１つまたは複数のフィルタを含むエントロピー復号されたフィルタ情報を受信し得る。図５には示されていないが、デブロッキングフィルタ５５７も、適用されるべき１つまたは複数のフィルタを含むエントロピー復号されたフィルタ情報を受信し得る。
【０１２１】
フィルタユニット５５９によって適用されるフィルタは、フィルタ係数のセットによって定義され得る。フィルタユニット５５９は、エントロピー復号ユニット５５２から受信されたフィルタ情報に基づいてフィルタ係数のセットを生成するように構成され得る。フィルタ情報は、たとえば、フィルタのセット中のフィルタの最大数および／またはフィルタのセット中のフィルタの形状を識別する、フィルタ記述シンタックスを含み得る。フィルタ記述シンタックスは、一連のビデオブロックのヘッダ、たとえば、ＬＣＵヘッダ、フレームヘッダ、スライスヘッダ、ＧＯＰヘッダ、シーケンスヘッダなどの中に含まれ得る。他の例では、フィルタ記述シンタックスは、フッタまたは他のデータ構造中に含まれ得る。フィルタ記述シンタックスに基づいて、フィルタユニット５５９は、エンコーダにおいて使用されたフィルタのセットを再構成することができる。
【０１２２】
フィルタ情報は、係数の所与のセットのために使用された符号化の方法をデコーダにシグナリングする追加のシグナリングシンタックスをも含み得る。いくつかの実装形態では、フィルタ情報は、たとえば、係数の所与のセットが使用されるべき２つ以上のメトリックのための範囲をも含み得る。フィルタの復号の後に、フィルタユニット５５９は、フィルタ係数の１つまたは複数のセットと、フィルタ係数の異なるセットが使用されるべき範囲を含むシグナリングシンタックスとに基づいて、復号されたビデオブロックのピクセル値をフィルタ処理することができる。
【０１２３】
フィルタユニット５５９は、各フレームまたはスライスのためのフィルタのセットを示す１つまたは複数のシンタックス要素、ならびにフィルタと２つ以上のメトリックとのマッピングを、ビットストリーム中で受信し得る。たとえば、エンコーダが、図４Ａに示したメトリックのための範囲とフィルタとのマッピングを使用する場合、エンコーダは、このマッピングをシグナリングするか、またはフィルタユニット５５９がこのマッピングを再構成することを可能にするためのデータを送信することになる。このマッピングが明示的にシグナリングされるか否かにかかわらず、フィルタユニット５５９は、エンコーダによって使用されたのと同じ、フィルタと範囲の組合せとのマッピングを維持することができる。
【０１２４】
上述のように、フィルタユニット５５９は、ビットストリーム中でシグナリングされたフィルタ情報に基づいてマッピングを生成する。このマッピングに基づいて、フィルタユニット５５９は、フィルタユニット３４９に関して上記で説明したのと同じ方法でグループを判断し、それらのグループにグループＩＤを割り当てることができる。これらのグループＩＤを使用して、フィルタユニット５５９は、受信されたフィルタ係数を関連付けることができる。
【０１２５】
フレームまたはスライス内の各ＣＵについて、フィルタユニット５５９は、（１つまたは複数の）セットのどの（１つまたは複数の）フィルタを各入力に適用すべきかを判断するために、複数の入力（すなわち、ＰＩ、ＥＩ、ｐＲＩ、およびＲＩ）のためのＣＵの復号されたピクセルに関連する１つまたは複数のメトリックを計算することができる。代替的に、フィルタユニット５５９は、ｐＲＩまたはＲＩなど、単一の入力のための１つまたは複数のメトリックを計算し得る。フィルタユニット５５９は、特定のピクセルまたはピクセルのグループについて判断されたメトリックに基づいてどのフィルタを適用すべきかを判断する。メトリック１とメトリック２とについての例として和修正ラプラシアン値と方向とを使用すると、および一例として図４Ａに示したマッピングを使用すると、フィルタユニット５５９が、ピクセルまたはピクセルのグループが範囲１−２中の和修正ラプラシアン値と範囲２−３に対応する方向とを有すると判断した場合、フィルタユニット５５９は、そのピクセルまたはピクセルのグループにフィルタ２を適用することができる。フィルタユニット５５９が、ピクセルまたはピクセルのグループが範囲１−４中の和修正ラプラシアン値と範囲２−２に対応する方向とを有すると判断した場合、フィルタユニット５５９は、そのピクセルまたはピクセルのグループにフィルタ６を適用することができる、などである。フィルタは、概して、任意のタイプのフィルタサポート形状または構成をとり得る。フィルタサポートは、フィルタ処理されている所与のピクセルに関するフィルタの形状を指し、フィルタ係数は、フィルタサポートに従って隣接ピクセル値に適用される重み付けを定義し得る。本開示の技法によれば、シンタックスデータは、フィルタを符号化した方法（たとえば、フィルタ係数を符号化した方法）、ならびに異なるフィルタが使用されるべきアクティビティメトリックの範囲をデコーダにシグナリングするために、ビットストリーム中に含まれ得る。
【０１２６】
フレームまたはスライス内の各ＣＵについて、フィルタユニット５５９は、（１つまたは複数の）セットのどの（１つまたは複数の）フィルタを各入力に適用すべきかを判断するために、複数の入力（すなわち、ＰＩ、ＥＩ、ｐＲＩ、およびＲＩ）のためのＣＵの復号されたピクセルに関連する１つまたは複数のメトリックを計算することができる。代替的に、フィルタユニット５５９は、ｐＲＩまたはＲＩなど、単一の入力のための１つまたは複数のメトリックを計算し得る。フィルタユニット５５９は、特定のピクセルまたはピクセルのグループについて判断されたメトリックに基づいてどのフィルタを適用すべきかを判断する。メトリック１とメトリック２とについての例として和修正ラプラシアン値と方向とを使用すると、および一例として図４Ａに示したマッピングを使用すると、フィルタユニット５５９が、ピクセルまたはピクセルのグループが範囲１−２中の和修正ラプラシアン値と範囲２−３に対応する方向とを有すると判断した場合、フィルタユニット５５９は、そのピクセルまたはピクセルのグループにフィルタ２を適用することができる。フィルタユニット５５９が、ピクセルまたはピクセルのグループが範囲１−４中の和修正ラプラシアン値と範囲２−２に対応する方向とを有すると判断した場合、フィルタユニット５５９は、そのピクセルまたはピクセルのグループにフィルタ６を適用することができる、などである。フィルタは、概して、任意のタイプのフィルタサポート形状または構成をとり得る。フィルタサポートは、フィルタ処理されている所与のピクセルに関するフィルタの形状を指し、フィルタ係数は、フィルタサポートに従って隣接ピクセル値に適用される重み付けを定義し得る。本開示の技法によれば、シンタックスデータは、フィルタを符号化した方法（たとえば、フィルタ係数を符号化した方法）、ならびに異なるフィルタが使用されるべきアクティビティメトリックの範囲をデコーダにシグナリングするために、ビットストリーム中に含まれ得る。
【０１２７】
予測モジュール５５４は、エントロピー復号ユニット５５２から（動きベクトルなどの）予測シンタックスを受信する。予測シンタックスを使用して、予測モジュール５５４は、ビデオブロックをコーディングするために使用された予測ブロックを生成する。逆量子化ユニット５５６は逆量子化を実行し、逆変換ユニット５５８は、逆変換を実行して、残差ビデオブロックの係数をピクセル領域に戻す。加算器５６４は、ビデオブロックを再構成するために、各予測ブロックを、逆変換ユニット５５８によって出力された対応する残差ブロックと結合する。
【０１２８】
フィルタユニット５５９は、ＣＵの各入力に対して適用されるべきフィルタ係数を生成し、次いで、そのようなフィルタ係数を適用して、そのＣＵの再構成ビデオブロックをフィルタ処理する。フィルタ処理は、たとえば、エッジを平滑化し、および／またはビデオブロックに関連するアーティファクトをなくす追加のデブロックフィルタ処理、量子化雑音を低減するための雑音除去フィルタ処理、あるいはコーディング品質を改善することができる他のタイプのフィルタ処理を備え得る。フィルタ処理済みビデオブロックは、ビデオ情報の復号されたフレーム（または他の復号可能なユニット）を再構成するためにメモリ５６２に蓄積される。復号されたユニットは、ユーザへのプレゼンテーションのためにビデオデコーダ５６０から出力され得るが、また、後続の予測復号において使用するために記憶され得る。
【０１２９】
ビデオコーディングの分野では、復号されたビデオ信号の品質を向上させるために、エンコーダおよびデコーダにおいてフィルタ処理を適用することが通例である。フィルタ処理はポストフィルタを介して適用され得、その場合、フィルタ処理済みフレームは将来のフレームの予測のためには使用されない。代替的に、フィルタ処理は「ループ内」で適用され得、その場合、フィルタ処理済みフレームは、将来のフレームを予測するために使用され得る。望ましいフィルタは、原信号と復号されたフィルタ処理済み信号との間の誤差を最小限に抑えることによって設計され得る。一般に、そのようなフィルタ処理は、再構成画像に対して１つまたは複数のフィルタを適用することに基づいている。たとえば、再構成画像がメモリに記憶されるより前にその画像にデブロッキングフィルタが適用され得るか、または再構成画像がメモリに記憶されるより前にその画像にデブロッキングフィルタと１つの追加のフィルタとが適用され得る。
【０１３０】
変換係数の量子化と同様の方法で、フィルタｈ（ｋ，ｌ）の係数も量子化され得、ｋ＝−Ｋ，．．．，Ｋであり、ｌ＝−Ｌ，．．．，Ｌである。ＫおよびＬは、整数値を表し得る。フィルタｈ（ｋ，ｌ）の係数は、次のように量子化され得る。
【数２】
0005897609.tif 000004
【０１３１】
上式で、ｎｏｒｍＦａｃｔは正規化ファクタであり、ｒｏｕｎｄは、所望のビット深度への量子化を達成するために実行される丸め演算である。フィルタ係数の量子化は、符号化中に図３のフィルタユニット３４９によって実行され得、逆量子化（de-quantization）または逆量子化（inverse quantization）は、図５のフィルタユニット５５９によって、復号されたフィルタ係数に対して実行され得る。フィルタｈ（ｋ，ｌ）は、任意のフィルタを一般的に表すものとする。たとえば、フィルタｈ（ｋ，ｌ）は、複数の入力のうちのいずれか１つに適用され得る。いくつかの事例では、ビデオブロックに関連する複数の入力は異なるフィルタを利用し、その場合、ｈ（ｋ，ｌ）と同様の複数のフィルタが、上記で説明したように量子化および逆量子化され得る。
【０１３２】
量子化されたフィルタ係数は符号化され、符号化ビットストリームの一部として、エンコーダ３５０に関連するソースデバイスからデコーダ５６０に関連する宛先デバイスに送られる。上記の例では、ｎｏｒｍＦａｃｔの値は通常２ｎに等しいが、他の値が使用され得る。ｎｏｒｍＦａｃｔの値が大きいほど、量子化は正確になり、量子化されたフィルタ係数ｆ（ｋ，ｌ）はより良好な性能を与えることになる。しかしながら、ｎｏｒｍＦａｃｔのより大きい値は、デコーダにシグナリングするためにより多くのビットを必要とする係数ｆ（ｋ，ｌ）を生成し得る。
【０１３３】
デコーダ５６０において、復号されたフィルタ係数ｆ（ｋ，ｌ）が適切な入力に適用され得る。たとえば、復号されたフィルタ係数がＲＩに適用されるべき場合、フィルタ係数は、以下のようにデブロック後再構成画像ＲＩ（ｉ，ｊ）に適用され得、ｉ＝０，．．．，Ｍであり、ｊ＝０，．．，Ｎである。
【数３】
0005897609.tif 000005
【０１３４】
変数Ｍ、Ｎ、ＫおよびＬは、整数を表し得る。ＫおよびＬは、−ＫからＫまでおよび−ＬからＬまでの２つの次元にわたるピクセルのブロックを定義し得る。他の入力に適用されるフィルタは、類似する方法で適用され得る。
【０１３５】
本開示の技法は、ポストフィルタまたはループ内フィルタの性能を改善し得、また、フィルタ係数ｆ（ｋ，ｌ）をシグナリングするために必要とされるビット数を低減し得る。場合によっては、各一連のビデオブロックのための、たとえば、各フレーム、スライス、フレームの部分、フレームのグループ（ＧＯＰ）などのための、いくつかの異なるポストフィルタまたはループ内フィルタがデコーダにシグナリングされる。各フィルタについて、所与のフィルタが適用されるべきＣＵ、マクロブロックおよび／またはピクセルを識別するための追加情報がビットストリーム中に含められる。
【０１３６】
フレームは、フレーム番号および／またはフレームタイプ（たとえば、Ｉフレーム、ＰフレームまたはＢフレーム）によって識別され得る。Ｉフレームは、イントラ予測されるイントラフレームを指す。Ｐフレームは、データの１つのリスト（たとえば、１つの前のフレーム）に基づいて予測されるビデオブロックを有する予測フレームを指す。Ｂフレームは、データの２つのリスト（たとえば、前および後続のフレーム）に基づいて予測される双方向予測フレームを指す。マクロブロックは、マクロブロックタイプ、および／またはマクロブロックを再構成するために使用される量子化パラメータ（ＱＰ）値の範囲をリストすることによって識別され得る。
【０１３７】
入力のためのフィルタ係数ｆ（ｋ，ｌ）は、前のＣＵのためにシグナリングされた係数からの予測を使用してコーディングされ得る。ＣＵ  ｍ（たとえば、各フレーム、スライスまたはＧＯＰ）の各入力のために、エンコーダは、以下のＭ個のフィルタのセットを符号化し、送信し得る。
【数４】
0005897609.tif 000006
【０１３８】
各フィルタについて、フィルタが使用されるべき２つ以上のメトリックのための範囲の組合せを識別するためにビットストリームも符号化され得る。
【０１３９】
フィルタ係数は、前のＣＵにおいて使用された再構成フィルタ係数を使用して予測され得る。前のフィルタ係数は、次のように表され得る。
【数５】
0005897609.tif 000007
【０１４０】
この場合、ＣＵの番号ｎは、現在のフィルタの予測のために使用される１つまたは複数のフィルタを識別するために使用され得、番号ｎは、符号化ビットストリームの一部としてデコーダに送られ得る。さらに、予測コーディングが使用される２つ以上のメトリックのための範囲の組合せを識別するための情報が符号化され、デコーダに送信され得る。
【０１４１】
フィルタ係数ｇ（ｋ，ｌ）の振幅は、ｋ値とｌ値とに依存する。通常、最大振幅をもつ係数は、係数ｇ（０，０）である。大きい振幅を有することが予想される他の係数は、ｋまたはｌの値が０に等しい係数である。この現象は、係数をシグナリングするために必要とされるビットの量をさらに低減するために利用され得る。インデックス値ｋおよびｌは、既知のフィルタサポート内のロケーションを定義し得る。
【０１４２】
各フレームｍのための係数
【数６】
0005897609.tif 000008
【０１４３】
は、パラメータｐに従って定義されるゴロムコードまたは指数ゴロムコードなどのパラメータ化可変長コードを使用してコーディングされ得る。パラメータ化可変長コードを定義するパラメータｐの値を変更することによって、これらのコードを使用して、広範囲のソース分布を効率的に表すことができる。係数ｇ（ｋ，ｌ）の分布（すなわち、大きい値または小さい値を有するそれらの可能性）は、ｋとｌの値に依存する。したがって、コーディング効率を高めるために、各フレームｍのために、各ペア（ｋ，ｌ）のパラメータｐの値が送信される。パラメータｐは、以下の係数を符号化するときにパラメータ化可変長コーディングのために使用され得る。
【数７】
0005897609.tif 000009
【０１４４】
上記で説明したように、ビデオデコーダ５６０は、ピクセルのブロック内のピクセルのグループのための第１のメトリックを判断することと、ピクセルのグループのための第２のメトリックを判断することと、第１のメトリックと第２のメトリックとに基づいてフィルタを判断することと、ピクセルのグループにフィルタを適用することによってフィルタ処理済み画像を生成することとを行うように構成されたビデオデコーダの一例を表す。ビデオデコーダ５６０はまた、ピクセルのブロックのための第１のメトリックを判断することであって、第１のメトリックが、ブロック中のピクセルのサブセットとブロック中の他のピクセルとの比較に基づいて判断される、第１のメトリックを判断することと、ピクセルのブロックのための第２のメトリックを判断することと、第１のメトリックと第２のメトリックとに基づいてフィルタを判断することと、ピクセルのブロックにフィルタを適用することによってフィルタ処理済み画像を生成することとを行うように構成されたビデオエンコーダの一例を表す。
【０１４５】
上記で説明したように、ビデオデコーダ５６０はまた、範囲組合せとフィルタとのマッピングを判断することであって、範囲組合せが、第１のメトリックのための範囲と第２のメトリックのための範囲とを備え、各範囲組合せが、ユニークな範囲組合せ識別情報（ＩＤ）を有し、各ユニークな範囲組合せＩＤが、範囲組合せのための連続値に対応する、判断することと、範囲組合せのための連続値に基づいて範囲組合せのグループにユニークなグループＩＤを割り当てることであって、各ユニークなグループＩＤが、グループのための連続値に対応する、割り当てることと、ユニークなグループＩＤに基づいてフィルタに対応するフィルタ係数のセットをコーディングすることとを行うように構成されたビデオデコーダの一例を表す。ビデオデコーダ５６０は、コード化ビットストリーム中で受信された情報に基づいてフィルタ係数のセットを生成することによってフィルタ係数のセットをコーディングすることができる。ビデオデコーダ５６０は、差分コーディング技法を使用してフィルタ係数のセットを生成することができる。
【０１４６】
ビデオデコーダ５６０はまた、第１の範囲組合せを第１のフィルタにマッピングすることであって、第１の範囲組合せが、第１のメトリックのための値の第１の範囲と第２のメトリックのための値の第１の範囲とを備える、マッピングすることと、第２の範囲組合せを第２のフィルタにマッピングすることであって、第２の範囲組合せが、第１のメトリックのための値の第２の範囲と第２のメトリックのための値の第２の範囲とを備える、マッピングすることと、現在の範囲組合せをフィルタにマッピングすることであって、現在の範囲組合せが、第１のメトリックの値の第１の範囲と第２のメトリックのための値の第２の範囲とを備える、マッピングすることとを行うように構成されたビデオデコーダの一例を表す。現在の範囲組合せをフィルタにマッピングすることは、現在の範囲組合せが第１の範囲組合せと同じフィルタにマッピングされることを示す第１のコードワードを受信したことに応答して、現在の範囲組合せを第１のフィルタにマッピングすることと、現在の範囲組合せが第２の組合せと同じフィルタにマッピングされることを示す第２のコードワードを受信したことに応答して、現在の範囲組合せを第２のフィルタにマッピングすることと、第３のフィルタを識別する第３のコードワードを受信したことに応答して、現在の範囲組合せをその第３のフィルタにマッピングすることとを含むことができる。ビデオデコーダ５６０はまた、範囲組合せとフィルタとのマッピングを生成することであって、範囲組合せが、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、生成することと、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、現在の範囲組合せを前の範囲組合せと同じフィルタにマッピングすることと、現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、現在の範囲組合せを第２のコードワードによって識別されるフィルタにマッピングすることとを行うように構成されたビデオデコーダの一例を表す。
【０１４７】
上記で紹介したように、本開示で説明する複数メトリックフィルタ処理技法と併せて、いくつかの異なるタイプのメトリックが使用され得る。これらのメトリックの一部は、ビデオデータ内のピクセルの１つまたは複数のブロックに関連するアクティビティを定量化するアクティビティメトリックである。アクティビティメトリックは、ピクセルのセット内のピクセル分散を示す分散メトリックを備えることができる。後述するように、これらのアクティビティメトリックの一部は方向固有である。たとえば、水平アクティビティメトリックは水平軸に沿ったアクティビティを定量化し、垂直アクティビティメトリックは垂直軸に沿ったアクティビティを定量化し、対角アクティビティメトリックは対角軸に沿ったアクティビティを定量化する、などである。
【０１４８】
一部のアクティビティメトリックは方向固有でない。たとえば、和修正ラプラシアン値は、現在のピクセルまたはピクセルの現在のグループを囲むピクセルの２次元ウィンドウに基づくアクティビティメトリックである。現在のピクセル（ｉ，ｊ）について、和修正ラプラシアン値は以下のように計算され得る。
【数８】
0005897609.tif 000010
【０１４９】
上式で、−ＫからＫまでおよび−ＬからＬまでにわたる２次元ウィンドウについて、ｋは、−ＫからＫまでのピクセル値の総和の値を表し、ｌは、−ＬからＬまでの総和の値を表し、ｉおよびｊは、ピクセルデータのピクセル座標を表し、ＲＩ（ｉ，ｊ）は、座標ｉおよびｊにおける所与のピクセル値を表し、ｖａｒ（ｉ，ｊ）はアクティビティメトリック（すなわち和修正ラプラシアン値）である。
【０１５０】
また、本開示の技法は、水平アクティビティと、垂直アクティビティと、対角アクティビティとのための方向固有メトリックを使用して実装され得る。式２および式３に、現在のピクセル（ｘ，ｙ）の、強度などのピクセル値（Ｒｅｃ）を、隣接ピクセルのピクセル値と比較することによって、現在のピクセルについて水平アクティビティおよび垂直アクティビティがどのように計算され得るかの例を示す。
【数９】
0005897609.tif 000011
【数１０】
0005897609.tif 000012
【０１５１】
式２によって示すように、水平アクティビティを判断するとき、現在のピクセル（ｘ，ｙ）は、左のネイバー（ｘ−１，ｙ）および右のネイバー（ｘ＋１，ｙ）と比較され得る。式３によって示すように、垂直アクティビティを判断するとき、現在のピクセルは、上のネイバー（ｘ，ｙ＋１）および下のネイバー（ｘ，ｙ−１）と比較され得る。
【０１５２】
式４および式５に、現在のピクセル（ｘ，ｙ）のピクセル値（Ｒｅｃ）を隣接ピクセルのピクセル値と比較することによって、現在のピクセルについて対角アクティビティがどのように計算され得るかの例を示す。
【数１１】
0005897609.tif 000013
【数１２】
0005897609.tif 000014
【０１５３】
式４によって示すように、対角アクティビティは、たとえば、現在のピクセル（ｘ，ｙ）を右上のネイバー（ｘ＋１，ｙ＋１）および左下のネイバー（ｘ−１，ｙ−１）と比較することによって４５度の方向において、計算され得る。式５によって示すように、対角アクティビティは、現在のピクセル（ｘ，ｙ）を左上のネイバー（ｘ−１，ｙ＋１）および右下のネイバー（ｘ＋１，ｙ−１）と比較することによって１３５度の方向においても計算され得る。
【０１５４】
上記の式２〜式５は、水平アクティビティ、垂直アクティビティ、および対角アクティビティがピクセルごとにどのように判断され得るかを示しているが、いくつかの実装形態では、水平アクティビティ、垂直アクティビティ、および対角アクティビティはグループごとに判断され得、その場合、ピクセルのグループは、ピクセルの２×２、４×４、またはＭ×Ｎブロックである。そのような実装形態では、水平アクティビティは、たとえば、式２に類似する方法で、現在のグループのピクセル値を左のグループおよび右のグループのピクセル値と比較することによって判断され得、垂直アクティビティは、式３に類似する方法で、現在のグループを上のグループおよび下のグループと比較することによって判断され得る。同様に、４５度対角アクティビティは、式４に類似する方法で、ピクセルの現在のグループを右上の隣接グループおよび左下の隣接グループと比較することによって判断され得、１３５度対角アクティビティは、式５に類似する方法で、ピクセルの現在のグループを左上の隣接グループおよび右下の隣接グループと比較することによって判断され得る。
【０１５５】
いくつかの実装形態では、水平アクティビティ、垂直アクティビティ、４５度対角アクティビティ、および１３５度対角アクティビティは、現在のピクセルまたはピクセルのグループをただ１つの方向における隣接ピクセルまたはピクセルのグループと比較することによって判断され得る。たとえば、現在のピクセルを左のネイバーおよび右のネイバーと比較することに基づいて水平アクティビティを判断する代わりに、水平アクティビティは、左のネイバーのみまたは右のネイバーのみに基づいて判断され得る。さらに、いくつかの実装形態では、水平アクティビティ、垂直アクティビティ、４５度対角アクティビティ、および１３５度対角アクティビティは、単一の隣接ピクセルまたはピクセルの単一のグループの代わりに、隣接ピクセルのエリアの平均または重み付き平均を使用して判断され得る。
【０１５６】
式２〜式５から得られる値は、２、４、８、または他の有限数など、有限数の範囲に分割され得、各範囲は範囲識別情報を割り当てられ得る。再び図４Ａを参照すると、たとえば、範囲１−１、範囲１−２、範囲２−１などは、すべて範囲識別情報の例である。一例として、水平アクティビティ値は４つの範囲に分割され得、それらの範囲は、ＩＤの範囲１−１、範囲１−２、範囲１−３、および範囲１−４を割り当てられ得る。水平しきい値（すなわち、ＴｈＨ1、．．．、ＴｈＨP-1）は、範囲がどこで開始し、終了するかを判断することができる。以下の表２に、水平ＩＤがＰ個の範囲にどのように割り当てられ得るかの一般的な場合を示す。
【表２】
0005897609.tif 000015
【０１５７】
表２の例を使用すると、現在のピクセルが、ＴｈＨ2よりも小さいがＴｈＨ1よりも大きい水平アクティビティ値を有する場合、現在のピクセルはメトリック２のための範囲２−２中にある。現在のピクセルは、水平範囲と水平ＩＤとについて表２において上記で説明したのと同様の方法で、垂直ＩＤをもつ垂直範囲、４５度対角ＩＤをもつ４５度対角範囲、および１３５度対角ＩＤをもつ１３５度対角範囲に割り当てられ得る。
【０１５８】
水平アクティビティ、垂直アクティビティ、４５度対角アクティビティ、および１３５度対角アクティビティのいずれも、本開示で説明する複数メトリックフィルタのフィルタ処理技法によるメトリックとして使用され得る。たとえば、再び図４Ａを参照すると、メトリック１は垂直アクティビティの測定値であり得、メトリック２は水平アクティビティの測定値であり得る。そのような例では、図４Ａのフィルタユニット３４９または図５のフィルタ５５９など、フィルタユニットは、ピクセルまたはピクセルのグループの水平アクティビティとピクセルまたはピクセルのグループの垂直アクティビティとに基づいて、ピクセルまたはピクセルのグループのためのフィルタを判断することができる。たとえば、現在のピクセルが、範囲２−３に入る水平アクティビティメトリックと範囲１−３に入る垂直アクティビティメトリックとを有する場合、フィルタユニットは、フィルタ４を使用してそのピクセルをフィルタ処理する。同様にして、４５度対角アクティビティと１３５度対角アクティビティとの組合せ、４５度対角アクティビティと水平アクティビティとの組合せ、４５度対角アクティビティと垂直アクティビティとの組合せ、１３５度対角アクティビティと水平アクティビティとの組合せ、または１３５度対角アクティビティと垂直アクティビティとの組合せも、ピクセルまたはピクセルのグループのためのフィルタを選択するためにフィルタユニットによって使用され得る。いくつかの実装形態では、水平アクティビティ、垂直アクティビティ、４５度対角アクティビティ、および１３５度対角アクティビティのうちの３つまたは４つ全部が、ピクセルまたはピクセルのグループのフィルタを選択するためにフィルタユニットによって使用され得る。
【０１５９】
上記で説明した実装形態では、水平アクティビティ、垂直アクティビティ、４５度対角アクティビティ、および１３５度対角アクティビティは、すべてメトリックとして、たとえば、図４Ａ中のメトリック１および／またはメトリック２として、使用され得る。しかしながら、いくつかの実装形態では、水平アクティビティ、垂直アクティビティ、４５度対角アクティビティ、および１３５度対角アクティビティは、それら自体メトリックでないことがあり、代わりに、全体的な方向メトリックを判断するための中間判断として使用されることがある。方向メトリックは、概して、どの方向において（たとえば方向なし、水平、垂直、４５度対角、または１３５度対角）ピクセルが最も変化しているかを記述する。
【０１６０】
一例では、式２および式３において説明した水平アクティビティおよび垂直アクティビティのみを使用して、ピクセルのための方向が以下の条件に基づいて判断され得る。
【数１３】
0005897609.tif 000016
【０１６１】
定数ｋ１およびｋ２は、水平アクティビティが垂直アクティビティよりも実質的に大きいかまたは垂直アクティビティが水平アクティビティよりも実質的に大きい場合、方向が方向１または方向２であるとしか見なされないように、選択され得る。水平アクティビティと垂直アクティビティとが等しいまたはほぼ等しい場合、方向は方向０である。方向１は、概して、ピクセル値が垂直方向においてよりも水平方向において多く変化していることを示し、方向２は、ピクセル値が水平方向においてよりも垂直方向において多く変化していることを示す。方向０は、水平方向におけるピクセル値の変化が垂直方向におけるピクセル値の変化にほぼ等しいことを示す。
【０１６２】
判断された方向メトリック（たとえば方向０、方向１、方向２）は、本開示で説明する複数メトリックフィルタ処理技法におけるメトリックとして使用され得る。再び図４Ａの例を使用すると、メトリック１は、和修正ラプラシアン値などの分散メトリックであり得、メトリック２は、上記で説明したように方向判断であり得る。図４Ａに関して説明したように、方向１、方向２、および方向０は、値のスペクトルの代わりに有限の判断を表すが、方向１、方向２、および方向０の各々は、メトリック２の範囲に関連付けられ得る。
【０１６３】
上記で説明したように水平アクティビティおよび垂直アクティビティのみを使用することに加えて、本開示の技法は、以下の条件に基づいて、方向を判断するために、式４および式５において説明したように、４５度対角アクティビティおよび１３５度対角アクティビティを使用することをも含む。
【数１４】
0005897609.tif 000017
【０１６４】
４５度対角アクティビティおよび１３５度対角アクティビティに基づく方向判断は、上記で説明したように、和修正ラプラシアン値などの別のメトリックとともにメトリックとして使用され得る。
【０１６５】
さらに、方向メトリックは、以下の条件にも基づいて判断され得る。
【数１５】
0005897609.tif 000018
【０１６６】
上記で説明したように、ｋ１〜ｋ１２は、ある方向が選択されるために、水平アクティビティ、垂直アクティビティ、４５度アクティビティ、および１３５度アクティビティのうちの１つが、他のアクティビティと比較してどれだけ大きい必要があるかを判断するように選択される、定数である。水平アクティビティ、垂直アクティビティ、４５度対角アクティビティ、および１３５度対角アクティビティに基づく方向判断は、上記で説明したように、和修正ラプラシアン値などの別のメトリックとともにメトリックとして使用され得る。
【０１６７】
本開示の技法とともに使用され得る別のメトリックはエッジメトリックを含む。エッジメトリックは、概して、ピクセルのブロック中のエッジの存在を示し得るアクティビティを定量化する。エッジは、たとえば、ピクセルのブロックが画像内の物体の境界を含んでいる場合にピクセルのそのブロック中で、発生し得る。エッジ検出の一例は、現在のピクセルの４つの隣接ピクセル（たとえば、左、右、上、下）を使用すること、または現在のピクセルの８つの隣接ピクセル（左、右、上、下、右上、左上、右下、左下）を使用することを含む。さらに、エッジタイプ検出は、上および下、左および右、左上および右下、または右上および左下など、２つの隣接ピクセルを使用することを含み得る。
【０１６８】
以下の擬似コードに、現在のピクセル（ｘ，ｙ）の、強度などのピクセル値（Ｒｅｃ）を、それらの隣接ピクセル（すなわち、４つ／８つのピクセル）のピクセル値と比較することによって、現在のピクセルについてエッジ情報がどのように計算され得るかの例を示す。
【０１６９】
ＥｄｇｅＴｙｐｅ変数は、開始されると０になる。文が真であるたびに、ＥｄｇｅＴｙｐｅ変数は、（擬似コードでＥｄｇｅＴｙｐｅ＋＋によって示すように）１だけ増分されるかまたは（擬似コードでＥｄｇｅＴｙｐｅ−−によって示すように）１だけ減分される。Ｒｅｃ［ｘ］［ｙ］は、（ｘ，ｙ）にあるピクセルの、ピクセル強度などのピクセル値を指す。「ｉｆ」文の第１のグルーピングは、現在のピクセルを上、下、左、および右のネイバーと比較するためのものである。「ｉｆ」文の第２のグルーピングは、現在のピクセルを左上、右上、左下、および右下のネイバーと比較するためのものである。本開示の技法は、いずれかのグループまたは両方のグループを使用して実装され得る。
【数１６】
0005897609.tif 000019
【０１７０】
現在のピクセルが極大値である場合、そのピクセルのピクセル値は、すべてのそれのネイバーよりも大きいことになり、４つのネイバーを使用する場合は４のエッジタイプを、または８つのネイバーを使用する場合は８のエッジタイプを、有することになる。現在のピクセルが極小値である場合、そのピクセルのピクセル値は、すべてのそれのネイバーよりも小さいことになり、４つのネイバーを使用する場合は−４のエッジタイプを、または８つのネイバーを使用する場合は−８のエッジタイプを、有することになる。したがって、−４から４または−８から８の間でエッジタイプを判断するために上記で説明した例示的な技法を使用することが、フィルタを判断する際に使用され得る。エッジタイプについて判断された値（すなわち−４〜４の値または−８〜８の値）は、図４Ａのメトリック１またはメトリック２など、メトリックの範囲にマッピングされ得る。いくつかの実装形態では、−３および３のエッジタイプが、たとえば、同じフィルタにマッピングすることになるように、エッジタイプ判断の絶対値が範囲にマッピングされ得る。
【０１７１】
本開示で説明する様々なメトリックの計算は、例にすぎないものであり、網羅的ではない。たとえば、それらのメトリックは、本開示で説明するよりも多くの隣接ピクセルを含む、ピクセルのウィンドウまたはラインを使用して判断され得る。
【０１７２】
さらに、いくつかの実装形態では、本開示で説明するメトリックは、特定のラインまたはウィンドウにおけるピクセルのサブサンプリングを使用して計算され得る。たとえば、ピクセルの４×４ブロックのためのブロックアクティビティメトリックを計算するために、アクティビティと方向とのためのメトリックは以下のように計算され得る。
【０１７３】
・方向メトリック  
【数１７】
0005897609.tif 000020
【０１７４】
・アクティビティメトリック  
【数１８】
0005897609.tif 000021
【０１７５】
・メトリック  
・アクティビティと方向との組合せ（たとえば図４Ｂの例において上記で説明したように１５個または１６個の組合せ）
【０１７６】
Ｈｏｒ＿ａｃｔ（ｉ，ｊ）は、概して、現在のピクセル（ｉ，ｊ）の水平アクティビティを指し、Ｖｅｒｔ＿ａｃｔ（ｉ，ｊ）は、概して、現在のピクセル（ｉ，ｊ）の垂直アクティビティを指す。Ｘ（ｉ，ｊ）は、概して、ピクセル（ｉ，ｊ）のピクセル値を指す。ＨBは、４×４ブロックの水平アクティビティを指し、これは、この例では、ピクセル（０，０）、（０，２）、（２，０）、および（２，２）のための水平アクティビティの和に基づいて判断される。ＶBは、４×４ブロックの垂直アクティビティを指し、これは、この例では、ピクセル（０，０）、（０，２）、（２，０）、および（２，２）のための垂直アクティビティの和に基づいて判断される。「＜＜１」は、２での乗算の演算を表す。上記で説明したように、ＨBおよびＶBの値に基づいて、方向が判断され得る。上記の例を使用すると、ＨBの値がＶBの値のｋ倍よりも大きい場合、方向は、垂直アクティビティよりも多くの水平アクティビティに対応し得る、方向１（すなわち水平）であると判断され得る。ＶBの値がＨBの値のｋ倍よりも大きい場合、方向は、水平アクティビティよりも多くの垂直アクティビティに対応し得る、方向２（すなわち垂直）であると判断され得る。他の場合、方向は、水平アクティビティも垂直アクティビティも支配的でないことを意味する、方向０（すなわち方向なし）であると判断され得る。他の標示と比も使用され得るので、様々な方向のための標示と、それらの方向を判断するために使用された比とは、一例を構成するにすぎない。
【０１７７】
４×４ブロックのためのアクティビティ（ＬB）は、水平アクティビティと垂直アクティビティとの和として判断され得る。ＬBの値は、上記で説明したように、範囲に分類され得る。この特定の例は５つの範囲を示しているが、より多いまたはより少ない範囲が同様に使用され得る。アクティビティと方向との組合せに基づいて、ピクセルの４×４ブロックのためのフィルタが選択され得る。上記で説明したように、フィルタは、図４Ａおよび図４Ｂに関して説明したように、アクティビティおよび方向とフィルタとの２次元マッピングに基づいて選択され得るか、またはアクティビティと方向とが組み合わせられて単一のメトリックになり得、その単一のメトリックが使用されてフィルタが選択され得る。
【０１７８】
図６Ａは、ピクセルの４×４ブロックを表す。上記で説明したサブサンプリング技法を使用して、１６個のピクセルのうちの４つのみが使用される。４つのピクセルは、ピクセル６０１と標示されたピクセル（０，０）、ピクセル６０２と標示されたピクセル（２，０）、ピクセル６０３と標示されたピクセル（０，２）、およびピクセル６０４と標示されたピクセル（２，２）である。ピクセル６０１の水平アクティビティ（すなわちｈｏｒ＿ａｃｔ（０，０））は、たとえば、左の隣接ピクセルと右の隣接ピクセルとに基づいて判断される。右の隣接ピクセルは、ピクセル６０５と標示されている。左の隣接ピクセルは、４×４ブロックとは異なるブロック中にあり、図６Ａ上には示されていない。ピクセル６０２の垂直アクティビティ（すなわちｖｅｒ＿ａｃｔ（２，０））は、たとえば、上の隣接ピクセルと下の隣接ピクセルとに基づいて判断される。下の隣接ピクセルは、ピクセル６０６と標示されており、上の隣接ピクセルは、４×４ブロックとは異なるブロック中にあり、図６Ａには示されていない。
【０１７９】
概して、上記で説明したのと同じ技法を使用して、ブロックアクティビティメトリックは、以下のようにピクセルの異なるサブセットをも使用して計算され得る。
【０１８０】
・方向メトリック  
【数１９】
0005897609.tif 000022
【０１８１】
・アクティビティメトリック  
【数２０】
0005897609.tif 000023
【０１８２】
・メトリック  
・アクティビティと方向との組合せ（たとえば図４Ｂの例において上記で説明したように１５個または１６個の組合せ）
【０１８３】
ＨBとＶBとを計算するためのピクセルのこの異なるサブセットは、図６Ｂ上でそれぞれピクセル６１１、６１２、６１３、および６１４として示される、ピクセル（１，１）、（２，１）、（１，２）、および（２，２）を含む。図６Ｂからわかるように、ピクセル６１１、６１２、６１３、および６１４のための、上の隣接ピクセル、下の隣接ピクセル、右の隣接ピクセル、および左の隣接ピクセルのすべてが、４×４ブロック内にある。図６Ｂの例では、ピクセル６１１、６１２、６１３、および６１４は、すべて、ブロック境界上にあるのとは対照的に、ブロックの内部にある。図６Ａ中のピクセル６０１、６０２、６０３、および６０５、ならびに図６Ｃ中のピクセル６２１、６２４、６２５、および６２８は、ブロック境界上にあるピクセルの例である。他の実装形態では、ピクセルの追加の異なるサブセットが選定され得る。たとえば、サブセットは、サブセットのピクセルのための上および下の隣接ピクセルは４×４ブロック内にあるが、いくつかの左および右の隣接ピクセルは隣接ブロック中にあるように、選択され得る。サブセットは、サブセットのピクセルのための左および右の隣接ピクセルは４×４ブロック内にあるが、いくつかの上および下の隣接ピクセルは隣接ブロック中にあるようにも、選択され得る。
【０１８４】
概して、上記で説明したのと同じ技法を使用して、ブロックアクティビティメトリックは、以下のように８つのピクセルのサブセットをも使用して計算され得る。
【０１８５】
・方向メトリック  
【数２１】
0005897609.tif 000024
【０１８６】
・アクティビティメトリック  
【数２２】
0005897609.tif 000025
【０１８７】
・メトリック  
・アクティビティと方向との組合せ（たとえば図４Ｂの例において上記で説明したように１５個または１６個の組合せ）
【０１８８】
ＨBとＶBとを計算するための８つのピクセルのこの異なるサブセットは、図６Ｃ上でそれぞれピクセル６２１、６２２、６２３、および６２４、６２５、６２６、６２７、および６２８として示される、ピクセル（０，１）、（１，１）、（２，１）、（３，１）、（０，２）、（１，２）、（２，２）、および（３，２）を含む。図６Ｃからわかるように、ピクセル６２１、６２２、６２３、および６２４、６２５、６２６、６２７、および６２８のための、上の隣接ピクセルおよび下の隣接ピクセルのすべてが、４×４ブロック内にあるが、ピクセル６２１および６２５は、それぞれ左の隣接ブロック中の左の隣接ピクセルを有し、ピクセル６２４および６２８は、それぞれ右の隣接ブロック中の右の隣接ピクセルを有する。ピクセルのこの特定の選択は、上および／または下の隣接ブロックのピクセル値を記憶するためのラインバッファの必要を回避することによって、エンコーダおよび／またはデコーダの複雑さを低減し得る。左から右へ、上から下へのラスタ走査順序により、上および下の隣接ブロックのピクセル値のためのラインバッファは、しばしば、上または下のライン全体のためのピクセル値を記憶する必要があり、これは、たとえば、１０８０Ｐビデオの場合、１９２０ピクセルであり得る。しかしながら、左および右の隣接ブロックのためのラインバッファは、しばしば、１つのＬＣＵまたは２つのＬＣＵのためのピクセル値を記憶する必要があるにすぎず、これは、たとえば、６４または１２８ピクセルのみであり得る。したがって、上および下の隣接ブロックのピクセル値のためのラインバッファは、左および右の隣接ブロックのピクセル値のために使用されるラインバッファよりも著しく大きい必要があり得る。図６Ｃに示すピクセルの選択は、上および下の隣接ブロックのピクセル値のためのラインバッファの使用を回避することが可能であり、したがってコーディング複雑さを低減し得る。
【０１８９】
図６Ａ〜図６Ｃの例は、本開示の紹介された技法にすぎない。これらの技法がわずか４×４以外のブロックに拡張され得ることと、ピクセルの異なるサブセットが選択され得ることとが、企図される。
【０１９０】
ブロックアクティビティメトリックを計算するとき、加算演算などの演算の複雑さを低減するために、元のピクセルの代わりに、量子化されたピクセル（すなわち、Ｘ（ｉ，ｊ）＞＞Ｎ）が使用され得る。さらに、計算は、ラプラシアンベースの代わりに絶対差ベースであり得る。たとえば、Ｈｏｒ＿ａｃｔ（ｉ，ｊ）またはＶｅｒ＿ａｃｔ（ｉ，ｊ）を計算するとき、以下のように、ラプラシアン値の代わりに絶対差が使用され得る。  
・方向メトリック  
【数２３】
0005897609.tif 000026
【０１９１】
・アクティビティメトリック  
【数２４】
0005897609.tif 000027
【０１９２】
・メトリック  
・アクティビティ＋方向（たとえば図４Ｂの例において上記で説明したように１５個または１６個の組合せ）
【０１９３】
本開示では、特定のメトリックの限られたグループを参照しながらサブサンプリング技法について説明した。ただし、これらのサブサンプリング技法は、概して、フィルタを判断するために使用され得る、本開示で説明する他のメトリックなど、他のメトリックに適用可能であることが企図される。さらに、ピクセルの４×４ブロックを参照しながら本開示のサブサンプリング技法について説明したが、それらの技法は他のサイズのブロックにも適用可能であり得る。
【０１９４】
図７は、本開示に一致するビデオコーディング技法を示すフローチャートである。図７において説明する技法は、ビデオエンコーダ３５０のフィルタユニット３４９またはビデオデコーダ５６０のフィルタユニット５５９など、ビデオエンコーダまたはビデオデコーダのフィルタユニットによって実行され得る。フィルタユニットは、ピクセルのブロック内のピクセルのグループのための第１のメトリックを判断する（７１０）。第１のメトリックは、たとえば、和修正ラプラシアン値などのアクティビティメトリックであり得、または第１のメトリックは方向メトリックであり得る。第１のメトリックは、たとえば、ブロック中のピクセルのセットとブロック中の他のピクセルとの比較に基づいて、またはブロック中のピクセルのサブセットとブロック中の他のピクセルとの比較に基づいて、判断され得る。フィルタユニットは、さらにブロックのための第２のメトリックを判断する（７２０）。第２のメトリックは、たとえば、水平アクティビティの測定値を垂直アクティビティの測定値と比較することに基づいて判断された方向メトリックであり得る。第１のメトリックと第２のメトリックとに基づいて、フィルタユニットはフィルタを判断する（７３０）。フィルタユニットは、ブロックにフィルタを適用することによってフィルタ処理済み画像を生成する（７４０）。上記で説明したように、いくつかの実装形態では、ブロックは、第１のメトリックまたは第２のメトリックを判断するために使用される、ピクセルの２×２、４×４、またはＭ×Ｎブロックであり得る。いくつかの実装形態では、第１のメトリックは水平アクティビティメトリックであり得、第２のメトリックは垂直アクティビティメトリックであり、または第１のメトリックはエッジメトリックであり得、第２のメトリックは方向メトリックである。
【０１９５】
図８Ａは、本開示に一致するビデオコーディング技法を示すフローチャートである。図８Ａにおいて説明する技法は、ビデオデコーダ５６０のフィルタユニット５５９など、ビデオデコーダのフィルタユニットによって実行され得る。フィルタユニット５５９は、第１の範囲組合せを第１のフィルタにマッピングする（８１０Ａ）。第１の範囲組合せは、第１のメトリックのための値の第１の範囲と第２のメトリックのための値の第１の範囲との組合せである。第１のメトリックは、たとえば、和修正ラプラシアン値であり得、第２のメトリックは方向メトリックであり得るが、他のメトリックも使用され得る。フィルタユニット５５９は、第２の範囲組合せを第２のフィルタにマッピングする（８２０Ａ）。第２の範囲組合せは、第１のメトリックのための値の第２の範囲と第２のメトリックのための値の第２の範囲との組合せである。フィルタユニット５５９は、次いで、受信されたコードワードに基づいて現在の範囲組合せをフィルタにマッピングする。現在の範囲組合せは、第１のメトリックの値の第１の範囲と第２のメトリックのための値の第２の範囲とを含む。コードワードが第１のコードワードである場合（８３０Ａ、はい）、フィルタユニット５５９は、現在の範囲組合せを第１のフィルタにマッピングする（８４０Ａ）。第１のコードワードは、現在の範囲組合せが第１の範囲組合せと同じフィルタにマッピングされることを示す。コードワードが第２のコードワードである場合（８５０Ａ、はい）、フィルタユニット５５９は、現在の範囲組合せを第２のフィルタにマッピングする（８６０Ａ）。第２のコードワードは、現在の範囲組合せが第２の組合せと同じフィルタにマッピングされることを示す。コードワードが第１のコードワードでも第２のコードワードでもない場合（８５０Ａ、いいえ）、フィルタユニット５５９は、現在の範囲組合せを第３のフィルタにマッピングする（８７０Ａ）。第３のコードワードを受信したことに応答する場合、第３のコードワードはその第３のフィルタを識別する。図８Ａの例では、第１のコードワードおよび第２のコードワードは、それぞれ第３のコードワードよりも少ないビットを含み得る。
【０１９６】
図８Ｂは、本開示に一致するビデオコーディング技法を示すフローチャートである。図８Ｂにおいて説明する技法は、ビデオデコーダ５６０のフィルタユニット５５９など、ビデオデコーダのフィルタユニットによって実行され得る。フィルタユニット５５９は、範囲組合せとフィルタとのマッピングを生成する（８１０Ｂ）。各範囲組合せは、たとえば、第１のメトリックのための範囲と第２のメトリックのための範囲とを含むことができる。現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して（８２０Ｂ、はい）、フィルタユニット５５９は、現在の範囲組合せを前の範囲組合せと同じフィルタにマッピングする（８３０Ｂ）。現在の範囲組合せが前の範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して（８２０Ｂ、いいえ）、フィルタユニット５５９は、現在の範囲組合せを新しいフィルタにマッピングする（８４０Ｂ）。上記で説明したように、現在の範囲組合せは、知られている送信順序に基づいて判断され得る。いくつかの例では、新しいフィルタは第２のコードワードに基づいて識別され得、他の例では、新しいフィルタは、フィルタ係数がシグナリングされる順序に基づいて判断され得る。
【０１９７】
図９Ａは、本開示に一致するビデオコーディング技法を示すフローチャートである。図９Ａにおいて説明する技法は、ビデオエンコーダ３５０のフィルタユニット３４９など、ビデオエンコーダのフィルタユニットによって実行され得る。フィルタユニット３４９は、範囲組合せとフィルタとのマッピングを判断する（９１０Ａ）。各範囲組合せは、第１のメトリックのための値の範囲と第２のメトリックのための値の範囲とを含む。現在の範囲組合せについて、現在の範囲組合せが、第１のメトリックのための値の同じ範囲を備える、前の範囲組合せと同じフィルタにマッピングされる場合（９２０Ａ、はい）、フィルタユニット３４９は第１のコードワードを生成する（９３０Ａ）。現在の範囲組合せが、第２のメトリックのための値の同じ範囲を備える、前の範囲組合せと同じフィルタにマッピングされる場合（９４０Ａ、はい）、フィルタユニット３４９は第２のコードワードを生成する（９５０Ａ）。現在の範囲組合せが、第１のメトリックのための値の同じ範囲を備える、前の範囲組合せ、または第２のメトリックのための値の同じ範囲を備える、前の範囲組合せのいずれかにマッピングされない場合（９５０Ａ、いいえ）、フィルタユニット３４９は第３のコードワードを生成する（９６０Ａ）。第３のコードワードは、現在の範囲組合せにマッピングされたフィルタを識別することができる。
【０１９８】
図９Ｂは、本開示に一致するビデオコーディング技法を示すフローチャートである。図９Ｂにおいて説明する技法は、ビデオエンコーダ３５０のフィルタユニット３４９など、ビデオエンコーダのフィルタユニットによって実行され得る。フィルタユニット３４９は、範囲組合せとフィルタとのマッピングを判断する（９１０Ｂ）。各範囲組合せは、たとえば、第１のメトリックのための範囲と第２のメトリックのための範囲とを含むことができる。コーディングされている現在の範囲組合せが、前にコーディングされた範囲組合せと同じフィルタを有するとき（９２０Ｂ、はい）、フィルタユニット３４９は、現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングするための、第１のコードワードを生成する（９３０Ｂ）。コーディングされている現在の範囲組合せが、前にコーディングされた範囲組合せと同じフィルタを有しないとき（９２０Ｂ、いいえ）、フィルタユニット３４９は第２のコードワードを生成する（９４０Ｂ）。第２のコードワードは、現在の範囲組合せにマッピングされたフィルタを識別することができる。上記で説明したように、現在の範囲組合せは、知られている送信順序に基づいて判断され得る。図９Ｂの例では、第１のコードワードは、第２のコードワードよりも少ないビットを含み得る。
【０１９９】
図８Ａおよび図８Ｂならびに図９Ａおよび図９Ｂの例では、「第１のコードワード」、「第２のコードワード」、および「第３のコードワード」という用語は、異なるコードワード間で区別するために使用されており、コードワードの順番を暗示するものではない。
【０２００】
図１０は、本開示に一致するビデオコーディング技法を示すフローチャートである。図１０において説明する技法は、ビデオエンコーダ３５０のフィルタユニット３４９など、ビデオエンコーダのフィルタユニット、またはフィルタユニット５５９など、ビデオデコーダのフィルタユニットによって実行され得る。フィルタユニットは、範囲組合せとフィルタとのマッピングを判断する（１０１０）。範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを含む。フィルタユニットは、各範囲組合せのためのユニークな範囲組合せ識別情報（ＩＤ）を判断する（１０２０）。ユニークな範囲組合せＩＤは連続値に対応する。フィルタユニットは、範囲組合せの第１のグループ中の少なくとも１つの範囲組合せの範囲組合せＩＤの連続値に基づいて、範囲組合せの第１のグループに第１のユニークなグループＩＤを割り当てる（１０３０）。範囲組合せのグループは、同じフィルタにマッピングされた範囲組合せを含み、ユニークなグループＩＤは、連続値のセットに対応する。フィルタユニットは、第１のユニークなフィルタＩＤの連続値に基づいて、同じフィルタに対応するフィルタ係数の第１のセットをコーディングする（１０４０）。ビデオエンコーダの場合、フィルタ係数の第１のセットをコーディングすることは、たとえば、差分コーディング技法を使用して符号化ビットストリーム中でフィルタ係数をシグナリングすることを含むことができる。ビデオデコーダの場合、フィルタ係数の第１のセットをコーディングすることは、符号化ビットストリーム中で受信された情報に基づいてフィルタ係数を再構成することを含むことができる。
【０２０１】
図１１は、本開示に一致するビデオコーディング技法を示すフローチャートである。図１１において説明する技法は、ビデオエンコーダ３５０のフィルタユニット３４９など、ビデオエンコーダのフィルタユニット、またはフィルタユニット５５９など、ビデオデコーダのフィルタユニットによって実行され得る。フィルタユニットは、範囲組合せとフィルタとのマッピングを判断する（１１１０）。範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを含むことができる。各範囲組合せは、ユニークな範囲組合せ識別情報（ＩＤ）を有することができ、各ユニークな範囲組合せＩＤは、範囲組合せのための連続値に対応することができる。フィルタユニットは、範囲組合せの各グループにユニークなグループＩＤを割り当てる（１１２０）。フィルタユニットは、たとえば、範囲組合せの連続値に基づいて、ユニークなグループＩＤを割り当てることができる。範囲組合せのグループは、共通のフィルタにマッピングされた範囲組合せを含むことができ、ユニークなグループＩＤは、連続値のセットに対応することができる。フィルタユニットは、ユニークなグループＩＤに基づいてフィルタのためのフィルタ係数のセットをコーディングする（１１４０）。
【０２０２】
図１１の例では、フィルタユニットは、たとえば、範囲組合せＩＤの最低連続値に対応する範囲組合せＩＤをもつ範囲組合せを備える範囲組合せのグループに、ユニークなグループＩＤの最低連続値に対応するユニークなグループＩＤを割り当てることによって、ユニークなグループＩＤを割り当てることができる。別の例では、フィルタユニットは、範囲組合せＩＤの最高連続値に対応する範囲組合せＩＤをもつ範囲組合せを備える範囲組合せのグループに、ユニークなグループＩＤの最高連続値に対応するユニークなグループＩＤを割り当てることができる。
【０２０３】
フィルタユニットがビデオデコーダの一部である事例では、フィルタユニットは、コード化ビットストリーム中で受信された情報に基づいてフィルタ係数のセットを生成することによって、フィルタ係数のセットをコーディングすることができる。フィルタユニットは、たとえば、差分コーディング技法を使用してフィルタ係数のセットを生成することができる。フィルタユニットがビデオエンコーダの一部である事例では、フィルタユニットは、ユニークなグループＩＤの連続値に基づいて選択された順序で、コード化ビットストリーム中でフィルタ係数のセットをシグナリングすることによって、フィルタ係数のセットをコーディングすることができる。フィルタユニットは、たとえば、差分コーディング技法を使用してフィルタ係数のセットをシグナリングすることができる。
【０２０４】
上記の開示は、詳細を伝えるために、ある程度まで簡略化してある。たとえば、本開示では、概して、フィルタのセットがフレームごとにまたはスライスごとにシグナリングされることについて説明したが、フィルタのセットは、シーケンスごとに、ピクチャのグループごとに、スライスのグループごとに、ＣＵごとに、ＬＣＵごとに、または他のそのようなベースでもシグナリングされ得る。概して、フィルタは、１つまたは複数のＣＵの任意のグルーピングのためにシグナリングされ得る。さらに、実装において、ＣＵごとの入力当たりの多数のフィルタと、フィルタ当たりの多数の係数と、フィルタの各々が分散の異なる範囲のために定義される、分散の多数の異なるレベルとがあり得る。たとえば、場合によっては、ＣＵの各入力のために定義された１６個以上のフィルタと、各フィルタに対応する分散の１６個の異なる範囲とがあり得る。さらに、本開示でフィルタ情報を送信することについて説明するとき、すべてのフィルタ情報が同じコーディングレベルにおいて送信されると仮定されるべきでない。たとえば、いくつかの実装形態では、フィルタ記述シンタックスなどの一部のフィルタ情報は、フレームごとにまたはスライスごとにシグナリングされ得、フィルタ係数などの他のフィルタ情報は、ＬＣＵごとにシグナリングされる。そのようなフィルタ情報の一部または全部を搬送するために、シーケンスレベル、ＧＯＰレベル、または他のレベルなど、コーディング階層の他のレベルにおけるシンタックスも定義され得る。
【０２０５】
各入力のためのフィルタの各々は多くの係数を含み得る。一例では、フィルタは、２つの次元にわたるフィルタサポートのために定義された８１個の異なる係数をもつ２次元フィルタを備える。しかしながら、各フィルタのためにシグナリングされるフィルタ係数の数は、場合によっては８１よりも少ないことがある。たとえば、１つの次元または象限におけるフィルタ係数が、他の次元または象限における係数に対する反転値または対称値に対応し得るように、係数対称性が課され得る。係数対称性により、８１個の異なる係数をより少ない係数によって表すことが可能になり得、その場合、エンコーダおよびデコーダは、係数の反転値または鏡像値が他の係数を定義すると仮定し得る。たとえば、係数（５，−２，１０，１０，−２，５）は、係数のサブセット（５，−２，１０）として符号化され、シグナリングされ得る。この場合、デコーダは、これらの３つの係数が、係数のより大きい対称セット（５，−２，１０，１０，−２，５）を定義することを知り得る。
【０２０６】
本開示の技法は、ワイヤレスハンドセット、および集積回路（ＩＣ）またはＩＣのセット（すなわち、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。機能的態様を強調するために任意の構成要素、モジュールまたはユニットについて説明し、与えたが、それらの任意の構成要素、モジュールまたはユニットは、異なるハードウェアユニットによる実現を必ずしも必要とするとは限らない。
【０２０７】
したがって、本明細書で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ハードウェアで実装される場合、モジュール、ユニットまたは構成要素として説明した特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装される場合、これらの技法は、プロセッサで実行されたとき、上記で説明した方法のうちの１つまたは複数を実行する、命令を備えるコンピュータ可読媒体によって少なくとも部分的に実現され得る。コンピュータ可読媒体は、コンピュータ可読記憶媒体を備え得、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読記憶媒体は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光学データ記憶媒体などを備え得る。本技法は、追加または代替として、命令またはデータ構造の形態でコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって少なくとも部分的に実現され得る。
【０２０８】
コードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）など、１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供されるか、あるいは複合ビデオコーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０２０９】
本開示の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号する方法であって、
範囲組合せとフィルタとのマッピングを生成することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、
現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、前記現在の範囲組合せを前記同じフィルタにマッピングすることと、
前記現在の範囲組合せが前記前の範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、前記現在の範囲組合せを新しいフィルタにマッピングすることと
を備える、方法。
［Ｃ２］ 
前記新しいフィルタは、フィルタ係数がシグナリングされる順序に基づいて判断される、
［Ｃ１］に記載の方法。
［Ｃ３］
前記現在の範囲組合せは、前記範囲組合せの知られている送信順序に基づいて判断される、
［Ｃ１］に記載の方法。
［Ｃ４］
前記第１のメトリックは、アクティビティメトリックを備え、前記第２のメトリックは、方向メトリックを備える、
［Ｃ１］に記載の方法。
［Ｃ５］
前記方向メトリックは、水平アクティビティの測定値を垂直アクティビティの測定値と比較することに基づいて判断される、
［Ｃ４］に記載の方法。
［Ｃ６］
水平アクティビティの前記測定値は、現在のピクセルのピクセル値を左の隣接ピクセルのピクセル値および右の隣接ピクセルのピクセル値と比較することに基づいて判断される、
［Ｃ５］に記載の方法。
［Ｃ７］
垂直アクティビティの前記測定値は、現在のピクセルのピクセル値を上の隣接ピクセルのピクセル値および下の隣接ピクセルのピクセル値と比較することに基づいて判断される、
［Ｃ５］に記載の方法。
［Ｃ８］
前記アクティビティメトリックは、水平アクティビティの前記測定値と垂直アクティビティの前記測定値との和に基づいて判断される、
［Ｃ５］に記載の方法。
［Ｃ９］
ビデオエンコーダは、複数のフィルタを用いた４分木ベース適応ループフィルタ（ＱＡＬＦ）スキームを実装する、
［Ｃ１］に記載の方法。
［Ｃ１０］
ビデオデータをコーディングするための装置であって、前記装置は、
範囲組合せとフィルタとのマッピングを生成することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、
現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、前記現在の範囲組合せを前記前の範囲組合せと前記同じフィルタにマッピングすることと、
前記現在の範囲組合せは前記前の範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、前記現在の範囲組合せを前記第２のコードワードによって識別されるフィルタにマッピングすることと
を行うように構成されるビデオデコーダを備える、
装置。
［Ｃ１１］
前記新しいフィルタは、フィルタ係数がシグナリングされる順序に基づいて判断される、
［Ｃ１０］に記載の装置。
［Ｃ１２］
前記現在の範囲組合せは、前記範囲組合せの知られている送信順序に基づいて判断される、
［Ｃ１０］に記載の装置。
［Ｃ１３］
前記第１のメトリックは、アクティビティメトリックを備え、前記第２のメトリックは、方向メトリックを備える、
［Ｃ１０］に記載の装置。
［Ｃ１４］
前記方向メトリックは、水平アクティビティの測定値を垂直アクティビティの測定値と比較することに基づいて判断される、
［Ｃ１３］に記載の装置。
［Ｃ１５］
水平アクティビティの前記測定値は、現在のピクセルのピクセル値を左の隣接ピクセルのピクセル値および右の隣接ピクセルのピクセル値と比較することに基づいて判断される、
［Ｃ１４］に記載の装置。
［Ｃ１６］
垂直アクティビティの前記測定値は、現在のピクセルのピクセル値を上の隣接ピクセルのピクセル値および下の隣接ピクセルのピクセル値と比較することに基づいて判断される、
［Ｃ１４］に記載の装置。
［Ｃ１７］
前記アクティビティメトリックは、水平アクティビティの前記測定値と垂直アクティビティの前記測定値との和に基づいて判断される、
［Ｃ１４］に記載の装置。
［Ｃ１８］
前記ビデオデコーダは、複数のフィルタを用いた４分木ベース適応ループフィルタ（ＱＡＬＦ）スキームを実装する、
［Ｃ１０］に記載の装置。
［Ｃ１９］
範囲組合せとフィルタとのマッピングを生成するための手段と、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、
現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、前記現在の範囲組合せを前記前の範囲組合せと前記同じフィルタにマッピングするための手段と、
前記現在の範囲組合せが前記前の範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、前記現在の範囲組合せを前記第２のコードワードによって識別されるフィルタにマッピングするための手段と
を備える装置。
［Ｃ２０］
実行されたとき、１つまたは複数のプロセッサに、
範囲組合せとフィルタとのマッピングを生成することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、
現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされることをシグナリングする第１のコードワードを受信したことに応答して、前記現在の範囲組合せを前記前の範囲組合せと前記同じフィルタにマッピングすることと、
前記現在の範囲組合せが前記前の範囲組合せとは異なるフィルタにマッピングされることをシグナリングする第２のコードワードを受信したことに応答して、前記現在の範囲組合せを前記第２のコードワードによって識別されるフィルタにマッピングすることと
を行わせる、命令を記憶したコンピュータ可読記憶媒体。
［Ｃ２１］
ビデオデータを符号化する方法であって、
範囲組合せとフィルタとのマッピングを判断することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、
現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、
前記現在の範囲組合せが前記前の範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成することと
備え、前記第２のコードワードは、前記現在の範囲組合せにマッピングされたフィルタを識別する、
方法。
［Ｃ２２］
前記新しいフィルタは、フィルタ係数はシグナリングされる順序に基づいて判断される、
［Ｃ２１］に記載の方法。
［Ｃ２３］
前記現在の範囲組合せは、前記範囲組合せの知られている送信順序に基づいて判断される、
［Ｃ２１］に記載の方法。
［Ｃ２４］
前記第１のメトリックは、アクティビティメトリックを備え、前記第２のメトリックは、方向メトリックを備える、
［Ｃ２１］に記載の方法。
［Ｃ２５］
前記方向メトリックは、水平アクティビティの測定値を垂直アクティビティの測定値と比較することに基づいて判断される、
［Ｃ２４］に記載の方法。
［Ｃ２６］
水平アクティビティの前記測定値は、現在のピクセルのピクセル値を左の隣接ピクセルのピクセル値および右の隣接ピクセルのピクセル値と比較することに基づいて判断される、
［Ｃ２５］に記載の方法。
［Ｃ２７］
垂直アクティビティの前記測定値は、現在のピクセルのピクセル値を上の隣接ピクセルのピクセル値および下の隣接ピクセルのピクセル値と比較することに基づいて判断される、
［Ｃ２５］に記載の方法。
［Ｃ２８］
前記アクティビティメトリックは、水平アクティビティの前記測定値と垂直アクティビティの前記測定値との和に基づいて判断される、
［Ｃ２５］に記載の方法。
［Ｃ２９］
前記ビデオエンコーダは、複数のフィルタを用いた４分木ベース適応ループフィルタ（ＱＡＬＦ）スキームを実装する、
［Ｃ２１］に記載の方法。
［Ｃ３０］
ビデオデータをコーディングするための装置であって、
範囲組合せとフィルタとのマッピングを判断することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、
現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、
前記現在の範囲組合せが前記前の範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成することと
行うように構成されたビデオエンコーダを備え、前記第２のコードワードは、前記現在の範囲組合せにマッピングされたフィルタを識別する、
装置。
［Ｃ３１］
前記新しいフィルタは、フィルタ係数がシグナリングされる順序に基づいて判断される、
［Ｃ３０］に記載の装置。
［Ｃ３２］
前記現在の範囲組合せは、前記範囲組合せの知られている送信順序に基づいて判断される、
［Ｃ３０］に記載の装置。
［Ｃ３３］
前記第１のメトリックは、アクティビティメトリックを備え、前記第２のメトリックは、方向メトリックを備える、
［Ｃ３０］に記載の装置。
［Ｃ３４］
前記方向メトリックは、水平アクティビティの測定値を垂直アクティビティの測定値と比較することに基づいて判断される、
［Ｃ３３］に記載の装置。
［Ｃ３５］
水平アクティビティの前記測定値は、現在のピクセルのピクセル値を左の隣接ピクセルのピクセル値および右の隣接ピクセルのピクセル値と比較することに基づいて判断される、
［Ｃ３４］に記載の装置。
［Ｃ３６］
垂直アクティビティの前記測定値は、現在のピクセルのピクセル値を上の隣接ピクセルのピクセル値および下の隣接ピクセルのピクセル値と比較することに基づいて判断される、
［Ｃ３４］に記載の装置。
［Ｃ３７］
前記アクティビティメトリックは、水平アクティビティの前記測定値と垂直アクティビティの前記測定値との和に基づいて判断される、
［Ｃ３４］に記載の装置。
［Ｃ３８］
前記ビデオエンコーダは、複数のフィルタを用いた４分木ベース適応ループフィルタ（ＱＡＬＦ）スキームを実装する、
［Ｃ３０］に記載の装置の方法。
［Ｃ３９］
範囲組合せとフィルタとのマッピングを判断するための手段と、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、
現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成するための手段と、
前記現在の範囲組合せが前記前の範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成するための手段と
を備え、前記第２のコードワードは、前記現在の範囲組合せにマッピングされたフィルタを識別する、
装置。
［Ｃ４０］
実行されたとき、１つまたは複数のプロセッサに、
範囲組合せとフィルタとのマッピングを判断することと、ここで、範囲組合せは、第１のメトリックのための範囲と第２のメトリックのための範囲とを備える、
現在の範囲組合せが前の範囲組合せと同じフィルタにマッピングされる場合、第１のコードワードを生成することと、
前記現在の範囲組合せが前記前の範囲組合せとは異なるフィルタにマッピングされる場合、第２のコードワードを生成することと
を行わせる命令を記憶し、前記第２のコードワードは、前記現在の範囲組合せにマッピングされたフィルタを識別する、
命令を記憶したコンピュータ可読記憶媒体。
【図１】
0005897609.tif 000028
【図２Ａ】
0005897609.tif 000029
【図２Ｂ】
0005897609.tif 000030
【図２Ｃ】
0005897609.tif 000031
【図２Ｄ】
0005897609.tif 000032
【図３】
0005897609.tif 000033
【図４Ａ】
0005897609.tif 000034
【図４Ｂ】
0005897609.tif 000035
【図５】
0005897609.tif 000036
【図６Ａ】
0005897609.tif 000037
【図６Ｂ】
0005897609.tif 000038
【図６Ｃ】
0005897609.tif 000039
【図７】
0005897609.tif 000040
【図８Ａ】
0005897609.tif 000041
【図８Ｂ】
0005897609.tif 000042
【図９Ａ】
0005897609.tif 000043
【図９Ｂ】
0005897609.tif 000044
【図１０】
0005897609.tif 000045
【図１１】
0005897609.tif 000046