(57)【特許請求の範囲】
【請求項１】
ビデオデータをコード化する方法において、
前記ビデオデータのコード化ユニットの画素データをコード化することと、
前記画素データ上のフィルタリングプロセスに関係するフィルタ情報をコード化することとを含み、
前記コード化することはフィルタリングプロセスを含み、
前記フィルタリングプロセスは、前記画素データ内の画素分散を示す分散メトリックを含むアクティビティメトリックの異なる値に基づいて、異なるフィルタを使用することを含み、前記アクティビティメトリックの第１の範囲に対して、前記フィルタのうちの１つ以上は、前記フィルタ情報中に直接的にエンコードされ、前記アクティビティメトリックの第２の範囲に対して、前記フィルタのうちの１つ以上が、前のコード化ユニットに対して送信された係数からの予測を使用して、前記フィルタ情報中に予測的にエンコードされ、前記アクティビティメトリックは以下の式にしたがって規定される合計修正ラプラシアン値ｖａｒ（ｉ，ｊ）を含み、
【数１】
0005405596.tif 000011
ここで、ｋは、−ＫからＫまでの合計の値を表し、ｌは、−ＫからＫまでにわたり、−ＬからＬまでにわたる２次元ウィンドウに対する−ＬからＬまでの合計の値を表し、ｉおよびｊは、前記画素データの画素座標を表し、Ｒ（ｉ，ｊ）は、座標ｉおよびｊにおける所定の画素値を表し、ｖａｒ（ｉ，ｊ）は、前記アクティビティメトリックである方法。
【請求項２】
前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記アクティビティメトリックの第１の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に直接的にコード化され、前記アクティビティメトリックの第２の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に予測的にコード化される請求項１記載の方法。
【請求項３】
前記ビデオデータをコード化することは、前記ビデオデータをエンコードすることを含み、前記画素データをコード化することは、エンコードされたビットストリーム中に前記画素データをエンコードすることを含み、前記フィルタ情報をコード化することは、前記フィルタ情報をエンコードすることを含み、前記方法は、前記エンコードされたビットストリームの一部として前記フィルタ情報を出力することをさらに含む請求項１記載の方法。
【請求項４】
前記ビデオデータをコード化することは、前記ビデオデータをデコードすることを含み、前記画素データをコード化することは、前記画素データをエンコードされたビットストリームからデコードすることを含み、前記フィルタ情報をコード化することは、前記フィルタ情報をデコードすることを含み、前記方法は、前記エンコードされたビットストリームの一部として前記フィルタ情報を受信することをさらに含む請求項１記載の方法。
【請求項５】
前記フィルタ情報は、
特定のフィルタに関係するフレーム番号を識別する情報と、
特定のフィルタに関係するフレームタイプを識別する情報と、
特定のフィルタに関係するビデオブロックタイプを識別する情報と、
特定のフィルタに関係する量子化パラメータを識別する情報とのうちの１つ以上をさらに含む請求項１記載の方法。
【請求項６】
前記アクティビティメトリックの第２の範囲に対して、前記フィルタ情報は、予測的にコード化される前記フィルタのうちの前記１つ以上を予測するために使用される基準データを識別する情報を含む請求項１記載の方法。
【請求項７】
前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記方法は、パラメータ化された可変長コードを使用して、前記フィルタ係数をコード化することをさらに含む請求項１記載の方法。
【請求項８】
前記コード化ユニットは、
ビデオフレームと、
ビデオフレームの部分と、
ピクチャのグループ（ＧＯＰ）とのうちの１つを含む請求項１記載の方法。
【請求項９】
ビデオデータをコード化する装置において、
前記ビデオデータのコード化ユニットの画素データをコード化し、
前記画素データ上のフィルタリングプロセスに関係するフィルタ情報をコード化するビデオコーダを具備し、
前記コード化はフィルタリングプロセスを含み、
前記フィルタリングプロセスは、前記画素データ内の画素分散を示す分散メトリックを含むアクティビティメトリックの異なる値に基づいて、異なるフィルタを使用することを含み、前記アクティビティメトリックの第１の範囲に対して、前記フィルタのうちの１つ以上は、前記フィルタ情報中に直接的にエンコードされ、前記アクティビティメトリックの第２の範囲に対して、前記フィルタのうちの１つ以上が、前のコード化ユニットに対して送信された係数からの予測を使用して、前記フィルタ情報中に予測的にエンコードされ、前記アクティビティメトリックは以下の式にしたがって規定される合計修正ラプラシアン値ｖａｒ（ｉ，ｊ）を含み、
【数２】
0005405596.tif 000012
ここで、ｋは、−ＫからＫまでの合計の値を表し、ｌは、−ＫからＫまでにわたり、−ＬからＬまでにわたる２次元ウィンドウに対する−ＬからＬまでの合計の値を表し、ｉおよびｊは、前記画素データの画素座標を表し、Ｒ（ｉ，ｊ）は、座標ｉおよびｊにおける所定の画素値を表し、ｖａｒ（ｉ，ｊ）は、前記アクティビティメトリックである装置。
【請求項１０】
前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記アクティビティメトリックの第１の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に直接的にコード化され、前記アクティビティメトリックの第２の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に予測的にコード化される請求項９記載の装置。
【請求項１１】
前記装置は、前記ビデオデータをエンコードし、前記ビデオコーダは、エンコードされたビットストリーム中に前記画素データをエンコードし、前記フィルタ情報をエンコードし、前記エンコードされたビットストリームの一部として前記フィルタ情報を出力するエンコーダを備える請求項９記載の装置。
【請求項１２】
前記装置は、前記ビデオデータをデコードし、前記ビデオコーダは、エンコードされたビットストリームの一部として前記フィルタ情報を受信し、前記画素データを前記エンコードされたビットストリームからデコードし、前記フィルタ情報を前記エンコードされたビットストリームからデコードするデコーダを備える請求項９記載の装置。
【請求項１３】
前記フィルタ情報は、
特定のフィルタに関係するフレーム番号を識別する情報と、
特定のフィルタに関係するフレームタイプを識別する情報と、
特定のフィルタに関係するビデオブロックタイプを識別する情報と、
特定のフィルタに関係する量子化パラメータを識別する情報とのうちの１つ以上をさらに含む請求項９記載の装置。
【請求項１４】
前記アクティビティメトリックの第２の範囲に対して、前記フィルタ情報は、予測的にコード化される前記フィルタのうちの前記１つ以上を予測するために使用される基準データを識別する情報を含む請求項９記載の装置。
【請求項１５】
前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記ビデオコーダは、パラメータ化された可変長コードを使用して、前記フィルタ係数をコード化する請求項９記載の装置。
【請求項１６】
前記コード化ユニットは、
ビデオフレームと、
ビデオフレームの部分と、
ピクチャのグループ（ＧＯＰ）とのうちの１つを含む請求項９記載の装置。
【請求項１７】
前記ビデオコーダは、集積回路を備える請求項９記載の装置。
【請求項１８】
前記ビデオコーダは、マイクロプロセッサを備える請求項９記載の装置。
【請求項１９】
前記装置は、前記ビデオコーダを備えるワイヤレス通信デバイスを具備する請求項９記載の装置。
【請求項２０】
ビデオデータをコード化するデバイスにおいて、
前記ビデオデータのコード化ユニットの画素データをコード化する手段と、
前記画素データ上のフィルタリングプロセスに関係するフィルタ情報をコード化する手段とを具備し、
前記コード化することはフィルタリングプロセスを含み、
前記フィルタリングプロセスは、前記画素データ内の画素分散を示す分散メトリックを含むアクティビティメトリックの異なる値に基づいて、異なるフィルタを使用することを含み、前記アクティビティメトリックの第１の範囲に対して、前記フィルタのうちの１つ以上は、前記フィルタ情報中に直接的にエンコードされ、前記アクティビティメトリックの第２の範囲に対して、前記フィルタのうちの１つ以上が、前のコード化ユニットに対して送信された係数からの予測を使用して、前記フィルタ情報中に予測的にエンコードされ、前記アクティビティメトリックは以下の式にしたがって規定される合計修正ラプラシアン値ｖａｒ（ｉ，ｊ）を含み、
【数３】
0005405596.tif 000013
ここで、ｋは、−ＫからＫまでの合計の値を表し、ｌは、−ＫからＫまでにわたり、−ＬからＬまでにわたる２次元ウィンドウに対する−ＬからＬまでの合計の値を表し、ｉおよびｊは、前記画素データの画素座標を表し、Ｒ（ｉ，ｊ）は、座標ｉおよびｊにおける所定の画素値を表し、ｖａｒ（ｉ，ｊ）は、前記アクティビティメトリックであるデバイス。
【請求項２１】
前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記アクティビティメトリックの第１の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に直接的にコード化され、前記アクティビティメトリックの第２の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に予測的にコード化される請求項２０記載のデバイス。
【請求項２２】
前記ビデオデータをコード化する手段は、前記ビデオデータをエンコードする手段を備え、前記画素データをコード化する手段は、エンコードされたビットストリーム中に前記画素データをエンコードする手段を備え、前記フィルタ情報をコード化する手段は、前記フィルタ情報をエンコードする手段を備え、前記デバイスは、前記エンコードされたビットストリームの一部として前記フィルタ情報を出力する手段をさらに具備する請求項２０記載のデバイス。
【請求項２３】
前記ビデオデータをコード化する手段は、前記ビデオデータをデコードする手段を備え、前記画素データをコード化する手段は、前記画素データをエンコードされたビットストリームからデコードする手段を備え、前記フィルタ情報をコード化する手段は、前記フィルタ情報をデコードする手段を備え、前記デバイスは、前記エンコードされたビットストリームの一部として前記フィルタ情報を受信する手段をさらに具備する請求項２０記載のデバイス。
【請求項２４】
前記フィルタ情報は、
特定のフィルタに関係するフレーム番号を識別する情報と、
特定のフィルタに関係するフレームタイプを識別する情報と、
特定のフィルタに関係するビデオブロックタイプを識別する情報と、
特定のフィルタに関係する量子化パラメータを識別する情報とのうちの１つ以上をさらに含む請求項２０記載のデバイス。
【請求項２５】
前記アクティビティメトリックの第２の範囲に対して、前記フィルタ情報は、予測的にコード化される前記フィルタのうちの前記１つ以上を予測するために使用される基準データを識別する情報を含む請求項２０記載のデバイス。
【請求項２６】
前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記デバイスは、パラメータ化された可変長コードを使用して、前記フィルタ係数をコード化する手段をさらに具備する請求項２０記載のデバイス。
【請求項２７】
前記コード化ユニットは、
ビデオフレームと、
ビデオフレームの部分と、
ピクチャのグループ（ＧＯＰ）とのうちの１つを含む請求項２０記載のデバイス。
【請求項２８】
命令を含むコンピュータ読み取り可能記憶媒体において、
前記命令は、プロセッサにおける実行のときに、
ビデオデータのコード化ユニットの画素データを前記プロセッサにコード化させる命令と、
前記画素データ上のフィルタリングプロセスに関係するフィルタ情報を前記プロセッサにコード化させる命令とを含み、
前記コード化させることはフィルタリングプロセスを含み、
前記フィルタリングプロセスは、前記画素データ内の画素分散を示す分散メトリックを含むアクティビティメトリックの異なる値に基づいて、異なるフィルタを使用することを含み、前記アクティビティメトリックの第１の範囲に対して、前記フィルタのうちの１つ以上は、前記フィルタ情報中に直接的にエンコードされ、前記アクティビティメトリックの第２の範囲に対して、前記フィルタのうちの１つ以上が、前のコード化ユニットに対して送信された係数からの予測を使用して、前記フィルタ情報中に予測的にエンコードされ、前記アクティビティメトリックは以下の式にしたがって規定される合計修正ラプラシアン値ｖａｒ（ｉ，ｊ）を含み、
【数４】
0005405596.tif 000014
ここで、ｋは、−ＫからＫまでの合計の値を表し、ｌは、−ＫからＫまでにわたり、−ＬからＬまでにわたる２次元ウィンドウに対する−ＬからＬまでの合計の値を表し、ｉおよびｊは、前記画素データの画素座標を表し、Ｒ（ｉ，ｊ）は、座標ｉおよびｊにおける所定の画素値を表し、ｖａｒ（ｉ，ｊ）は、前記アクティビティメトリックであるコンピュータ読み取り可能記憶媒体。
【請求項２９】
前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記アクティビティメトリックの第１の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に直接的にコード化され、前記アクティビティメトリックの第２の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に予測的にコード化される請求項２８記載のコンピュータ読み取り可能記憶媒体。
【請求項３０】
前記命令は、前記デバイスに、エンコードされたビットストリーム中に前記画素データをエンコードさせ、前記フィルタ情報をエンコードさせ、前記エンコードされたビットストリームの一部として前記フィルタ情報を出力させる請求項２８記載のコンピュータ読み取り可能記憶媒体。
【請求項３１】
前記命令は、前記デバイスに、前記画素データをエンコードされたビットストリームからデコードさせ、前記エンコードされたビットストリームの一部として前記フィルタ情報を受信するときに、前記フィルタ情報をデコードさせる請求項２８記載のコンピュータ読み取り可能記憶媒体。
【請求項３２】
前記フィルタ情報は、
特定のフィルタに関係するフレーム番号を識別する情報と、
特定のフィルタに関係するフレームタイプを識別する情報と、
特定のフィルタに関係するビデオブロックタイプを識別する情報と、
特定のフィルタに関係する量子化パラメータを識別する情報とのうちの１つ以上をさらに含む請求項２８記載のコンピュータ読み取り可能記憶媒体。
【請求項３３】
前記アクティビティメトリックの第２の範囲に対して、前記フィルタ情報は、予測的にコード化される前記フィルタのうちの前記１つ以上を予測するために使用される基準データを識別する情報を含む請求項２８記載のコンピュータ読み取り可能記憶媒体。
【請求項３４】
前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記命令は、パラメータ化された可変長コードを使用して、前記フィルタ係数を前記プロセッサにコード化させる請求項２８記載のコンピュータ読み取り可能記憶媒体。
【請求項３５】
前記コード化ユニットは、
ビデオフレームと、
ビデオフレームの部分と、
ピクチャのグループ（ＧＯＰ）とのうちの１つを含む請求項２８記載のコンピュータ読み取り可能記憶媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、２００９年１月１５日に出願された米国仮出願番号第６１／１４４，８７３号と、２００９年５月１４日に出願された米国仮出願番号第６１／１７８，３４６号の利益を主張し、これらの全体的な内容は、参照によりここに組み込まれている。
【技術分野】
【０００２】
本開示は、ビデオデータを圧縮するために使用する、ブロックベースのデジタルビデオコーディングに関連する。さらに詳細には、本開示は、ビデオブロックのフィルタリングに関係するフィルタ係数をコード化する技術に関連する。
【背景】
【０００３】
デジタルテレビや、デジタルダイレクトブロードキャストシステムや、無線電話機ハンドセットのようなワイヤレス通信デバイスや、ワイヤレスブロードキャストシステムや、パーソナルデジタルアシスタント（ＰＤＡ）や、ラップトップまたはデスクトップコンピュータや、デジタルカメラや、デジタル記録デバイスや、ビデオゲーミングデバイスや、ビデオゲームコンソールや、これらに類するもののようなものを含む幅広いデバイスに、デジタルビデオ能力を組み込むことができる。デジタルビデオデバイスは、デジタルビデオをより効率的に送信および受信するための、ＭＰＥＧ−２、ＭＰＥＧ−４、またはＩＴＵ−Ｔ Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０、高度ビデオコーディング（ＡＶＣ）のようなビデオ圧縮技術を実現する。ビデオ圧縮技術は、ビデオシーケンス固有の冗長性を減少または除去するために、空間的および時間的な予測を実行する。
【０００４】
ブロックベースのビデオ圧縮技術は、空間的予測および／または時間的予測を実行する。イントラコーディングは、空間的予測に依存して、所定のコード化ユニット内のビデオブロック間の空間的冗長性を減少または除去する。所定のコード化ユニットは、ビデオフレーム、ビデオフレームのスライス、またはこれらに類するものを含んでいてもよい。これに対して、インターコーディングは、時間的予測に依存して、ビデオシーケンスの連続的なコード化ユニットのビデオブロック間の時間的冗長性を減少または除去する。イントラコーディングに対しては、同じコード化ユニット内の他のデータに基づいてデータを圧縮するために、ビデオエンコーダが空間的予測を実行する。インターコーディングに対しては、２つ以上の近接するコード化ユニットの対応するビデオブロックの動きを追跡するために、ビデオエンコーダが、動き推定と動き補償とを実行する。
【０００５】
予測ブロックを生成または識別するために使用できる予測情報と、コード化されているブロックと予測ブロックとの間の差分を示すデータの残差ブロックとによって、コード化ビデオブロックを表すことができる。インターコーディングのケースでは、前のまたは後続するコード化ユニットから、データの予測ブロックを識別するために、１つ以上の動きベクトルを使用する一方で、イントラコーディングのケースでは、コード化されているビデオブロックに関係するコード化ユニット内のデータに基づいて予測ブロックを発生させるために、予測モードを使用することができる。イントラコーディングおよびインターコーディングの双方とも、異なるいくつかの予測モードを規定してもよく、このいくつかの異なる予測モードは、コーディングの際に使用される、異なるブロックサイズおよび／または予測技術を規定してもよい。コーディングプロセスの際に使用されるコーディング技術またはパラメータを制御または規定するために、さらなるタイプのシンタックスエレメントが、エンコードされたビデオデータの一部としても含まれていてもよい。
【０００６】
ブロックベースの予測コーディングの後に、ビデオエンコーダが、変換プロセスと、量子化プロセスと、エントロピーコーディングプロセスとを適用し、残差ブロックの通信に関係するビットレートをさらに低下させることができる。変換技術は、離散コサイン変換（ＤＣＴ）、あるいは、ウェーブレット変換、整数変換、または他のタイプの変換のような概念的に類似したプロセスを含んでいてもよい。離散コサイン変換プロセスでは、例として、変換プロセスにより、１セットの画素値を変換係数にコンバートする。変換係数は、周波数ドメイン中の画素値のエネルギーを表してもよい。量子化が、変換係数に適用され、一般的に、任意の所定の変換係数に関係するビット数を制限するプロセスを伴う。エントロピーコーディングは、量子化された変換係数のシーケンスを集約的に圧縮する１つ以上のプロセスを含む。
【０００７】
エンコーディングループおよびデコーディングループの一部として、あるいは、再構成されたビデオブロック上でのポストフィルタリングプロセスの一部として、ビデオブロックのフィルタリングを適用してもよい。例えば、ブロックベースのビデオコーディングに共通する、ブロックノイズまたは他のアーティファクトを減少させるために、一般的に、フィルタリングを使用する。ブロックノイズを減少させることができる、および／または、ビデオ品質を他の方法で向上させることができる、好ましいレベルのビデオブロックフィルタリングを促進するために、（ときにはフィルタタップと呼ばれる）フィルタ係数を規定または選択してもよい。例えば、ビデオブロックの端にまたはビデオブロック内の他の位置に沿ってどのようにフィルタリングが適用されるかを、１セットのフィルタ係数が規定してもよい。異なるフィルタ係数は、ビデオブロックの異なる画素に対して異なるレベルのフィルタリングを生じさせることがある。望まれていないアーティファクトをなくすのを助けるために、フィルタリングは、例えば、近接する画素の輝度値の差分を平滑化または鮮明にすることができる。
【概要】
【０００８】
本開示は、ビデオエンコーディングおよび／またはデコーディングプロセスの際の、ビデオデータのフィルタリングに関係する技術を記述する。本開示にしたがうと、１つ以上のフィルタがエンコーダにおいて適用され、そしてエンコーダにおいて適用されたフィルタを識別するために、フィルタ情報が、ビットストリーム中にエンコードされる。デコーダは、フィルタ情報を含む、エンコードされたビデオデータを受け取り、ビデオデータをデコードし、ビットストリーム中にエンコードされたフィルタリング情報に基づいて１つ以上のフィルタを適用する。ビデオデータに対して決定されたアクティビティメトリックに基づいて、異なるタイプのフィルタを適用してもよい。さらに、本開示にしたがった、フィルタ情報をビットストリーム中にエンコードする方法は、アクティビティメトリックに依存していてもよい。
【０００９】
例えば、コード化ユニットの画素に関係するアクティビティメトリックの異なる値に基づいて、コード化ユニットに対して、異なるフィルタを規定してもよい。アクティビティメトリックの異なる範囲に入る画素データに異なるフィルタを適用してもよい。さらに、フィルタのエンコーディングも、アクティビティメトリックに依存している。アクティビティメトリックの第１の範囲に対して、１つ以上のフィルタは、フィルタ情報中に直接的にコード化される。このケースでは、例えば、何ら予測エンコーディング技術を使用せずに、フィルタ係数の値をビットストリーム中にエンコードしてもよい。しかしながら、アクティビティメトリックの第２の範囲に対して、１つ以上のフィルタは、フィルタ情報中に予測的にコード化される。このケースでは、別のコード化ユニットに対して規定されたフィルタ係数に関する残差値または差分によって、フィルタ係数の値を規定してもよい。アクティビティメトリックの第１の範囲に対して、何ら予測しない直接エンコーディングを使用して、１つ以上のフィルタをエンコードすることと、アクティビティメトリックの第２の範囲に対して、予測エンコーディングを使用して、１つ以上のフィルタをエンコードすることとによって、改善されたデータ圧縮を実現できる。異なるフィルタが異なるフィルタ係数を使用すること以外は、異なるフィルタは同一であってもよい。代替的に、異なるフィルタは、異なる数の係数を含んでいてもよく、または、異なるフィルタサポートを規定してもよい。
【００１０】
１つの例では、本開示は、ビデオデータをコード化する方法を記述する。方法は、ビデオデータのコード化ユニットの画素データをコード化することと、画素データ上のフィルタリングプロセスに関係するフィルタ情報をコード化することとを含み、フィルタ情報は、アクティビティメトリックの異なる値に基づいて、コード化ユニットに対して規定される異なるフィルタを含み、アクティビティメトリックの第１の範囲に対して、フィルタのうちの１つ以上は、フィルタ情報中に直接的にエンコードされ、アクティビティメトリックの第２の範囲に対して、フィルタのうちの１つ以上が、フィルタ情報中に予測的にエンコードされる。本開示では、「コーディング」という用語は、エンコーディングまたはデコーディングのいずれかを意味する。
【００１１】
別の例では、本開示は、ビデオデータをコード化（例えば、エンコードまたはデコード）する装置を記述する。装置は、ビデオデータのコード化ユニットの画素データをコード化し、画素データ上のフィルタリングプロセスに関係するフィルタ情報をコード化するビデオコーダを具備し、フィルタ情報は、アクティビティメトリックの異なる値に基づいて、コード化ユニットに対して規定される異なるフィルタを含み、アクティビティメトリックの第１の範囲に対して、フィルタのうちの１つ以上は、フィルタ情報中に直接的にエンコードされ、アクティビティメトリックの第２の範囲に対して、フィルタのうちの１つ以上が、フィルタ情報中に予測的にエンコードされる。
【００１２】
別の例では、本開示は、ビデオデータをコード化するデバイスを記述し、デバイスは、ビデオデータのコード化ユニットの画素データをコード化する手段と、画素データ上のフィルタリングプロセスに関係するフィルタ情報をコード化する手段とを具備し、フィルタ情報は、アクティビティメトリックの異なる値に基づいて、コード化ユニットに対して規定される異なるフィルタを含み、アクティビティメトリックの第１の範囲に対して、フィルタのうちの１つ以上は、フィルタ情報中に直接的にエンコードされ、アクティビティメトリックの第２の範囲に対して、フィルタのうちの１つ以上が、フィルタ情報中に予測的にエンコードされる。
【００１３】
他の開示において記述した技術は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意のものを組み合わせたもので実現してもよい。ハードウェアで実現した場合、装置は、集積回路、プロセッサ、ディスクリート論理、またはこれらを任意に組み合わせたものとして実現してもよい。ソフトウェアで実現した場合、ソフトウェアは、それぞれ、マイクロプロセッサや、特定用途向け集積回路（ＡＳＩＣ）や、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）や、またはデジタルシグナルプロセッサ（ＤＳＰ）のような、１つ以上のプロセッサで実行してもよい。技術を実行するソフトウェアは、最初にコンピュータ読み取り可能媒体中に記憶させてもよく、プロセッサ中でロードおよび実行してもよい。
【００１４】
したがって、本開示は、プロセッサにおける実行のときに、ビデオデータのコード化ユニットの画素データをプロセッサにコード化させる命令と、画素データ上のフィルタリングプロセスに関係するフィルタ情報をプロセッサにコード化させる命令とを含むコンピュータ読み取り可能記憶媒体も企図している。フィルタ情報は、アクティビティメトリックの異なる値に基づいて、コード化ユニットに対して規定される異なるフィルタを含み、アクティビティメトリックの第１の範囲に対して、フィルタのうちの１つ以上は、フィルタ情報中に直接的にエンコードされ、アクティビティメトリックの第２の範囲に対して、フィルタのうちの１つ以上が、フィルタ情報中に予測的にエンコードされる。
【００１５】
図面および以下の説明では、開示の１つ以上の態様の詳細について述べた。本開示で記述した技術の他の特徴、目的、および効果は、記述、図面から、そして特許請求の範囲から明らかになるだろう。
【図面の簡単な説明】
【００１６】
【図１】図１は、例示的なビデオエンコーディングおよびデコーディングシステムを図示している例示的なブロック図である。
【図２】図２は、本開示と一致した、例示的なビデオエンコーダを図示しているブロック図である。
【図３】図３は、本開示と一致した、例示的なビデオデコーダを図示しているブロック図である。
【図４】図４は、アクティビティメトリックに対する値の範囲を図示している概念図である。
【図５】図５は、本開示と一致した、エンコーディング技術を図示しているフロー図である。
【図６】図６は、本開示と一致した、デコーディング技術を図示しているフロー図である。
【詳細な説明】
【００１７】
本開示は、ビデオエンコーディングおよび／またはビデオデコーディングプロセスにおける、ビデオデータのフィルタリングに関係する技術を記述している。本開示にしたがって、エンコーダにおいてフィルタリングを適用し、フィルタ情報をビットストリーム中にエンコードして、エンコーダにおいて適用したフィルタリングを識別する。デコーダは、フィルタ情報を含むエンコードされたビデオデータを受け取り、ビデオデータをデコードし、フィルタリング情報に基づいたフィルタリングを適用する。この方法では、デコーダは、エンコーダにおいて適用されたのと同じフィルタリングを適用する。
【００１８】
ビデオデータに対して決定されたアクティビティメトリックに基づいて、異なるタイプのフィルタリングを適用してもよい。アクティビティメトリックは、ビデオデータ内の画素の１つ以上のブロックに関係するアクティビティを定量化できる。アクティビティメトリックは、１セットの画素内の画素分散を示す分散メトリックを含んでいてもよい。例えば、アクティビティメトリックは、以下でより詳細に説明するような、合計修正ラプラシアン関数値を含んでいてもよい。いずれのケースにおいても、本開示にしたがって、フィルタ情報をエンコード（およびデコード）する方法は、アクティビティメトリックに依存している。例えば、本開示にしたがうと、コード化ユニットの画素に関係するアクティビティメトリックの異なる値に基づいて、コード化ユニットに対して、異なるフィルタが規定される。
【００１９】
アクティビティメトリックの第１の範囲に対して、１つ以上のフィルタをフィルタ情報中に直接的にコード化する。このケースでは、例えば、何ら予測エンコーディング技術を使用せずに、直接的にフィルタ係数の値をビットストリーム中にエンコードする。しかしながら、アクティビティメトリックの第２の範囲に対しては、１つ以上のフィルタをフィルタ情報中に予測的にコード化する。このケースでは、別のコード化ユニットに対して規定されたフィルタ係数に関する残差値または差分によって、フィルタ係数の値を規定してもよい。予測的にコード化されるフィルタ情報は、例えば、異なるコード化ユニットを識別することによって、異なるエンコードされたフィルタを識別する第１のデータを含んでいてもよい。さらに、予測的にコード化されるフィルタ情報は、コード化されている現在のフィルタ係数と、第１のデータによって識別される異なるフィルタのフィルタ係数との間の差分を表す第２のデータも含んでいてもよい。
【００２０】
アクティビティメトリックの第１の範囲に対して、何ら予測しない直接エンコーディングを使用して、１つ以上のフィルタをエンコードすることと、アクティビティメトリックの第２の範囲に対して、予測エンコーディングを使用して、１つ以上のフィルタをエンコードすることとによって、改善されたデータ圧縮を達成することができる。このケースでは、フィルタをエンコードおよびデコードする方法は、アクティブメトリックに依存して実行される。さらには、フィルタ選択自体も、アクティビティメトリックに依存していることがある。したがって、アクティビティメトリックが、コード化ユニットの画素に適用されるフィルタリングを決定することができ、また、アクティビティメトリックは、フィルタ情報をビットストリーム中にエンコードし、この情報をビットストリームからデコードする方法を規定でき、または、この方法に影響を与えることができる。
【００２１】
本開示の技術は、インループフィルタリングまたはポストフィルタリングに適用できる。インループフィルタリングは、予測イントラコーディングまたは予測インターコーディングに対して、フィルタリングされたデータが使用されるように、フィルタリングされたデータがエンコーディングループおよびデコーディングループの一部であるフィルタリングのことを指す。ポストフィルタリングは、エンコーディングループの後に、再構成されたビデオデータに適用されるフィルタリングのことを意味する。ポストフィルタリングでは、予測イントラコーディングまたは予測インターコーディングに対して、フィルタリングされていないデータが使用される。本開示の技術は、インループフィルタリングまたはポストフィルタリングに限定されず、ビデオコーディングの間に適用される、幅広いフィルタリングに適用してもよい。
【００２２】
本開示では、用語「コーディング」は、エンコーディングまたはデコーディングを意味する。同様に、用語「コーダ」は、一般的に、任意のビデオエンコーダ、ビデオデコーダ、または組み合わせたエンコーダ／デコーダ（コーデック）を意味する。したがって、ビデオエンコーディングまたはビデオデコーディングを実行する、専用コンピュータデバイスまたは装置のことを指すために、ここでは、用語「コーダ」を使用する。
【００２３】
図１は、本開示の技術を実現できる、例示的なビデオエンコーディングおよびデコーディングシステム１０を図示しているブロック図である。図１中に示したように、システム１０は、送信元デバイス１２を備えており、送信元デバイス１２は、通信チャネル１５を通して、エンコードされたビデオを宛先デバイス１６に送信する。送信元デバイス１２および宛先デバイス１６は、幅広いデバイスのうちの任意のものを備えていてもよい。いくつかのケースでは、送信元デバイス１２および宛先デバイス１６は、例えば、いわゆるセルラまたは衛星無線電話機のような、ワイヤレス通信デバイスハンドセットを含んでいてもよい。しかしながら、さらに一般的に、ビデオデータのフィルタリングとフィルタ情報のコーディングとに適用する本開示の技術は、必ずしも、ワイヤレスアプリケーションまたはセッティングに限定されず、ビデオエンコーディングおよび／またはデコーディング能力を備える非ワイヤレスデバイスに適用してもよい。
【００２４】
図１の例では、送信元デバイス１２は、ビデオソース２０と、ビデオエンコーダ２２と、変調器／復調器（モデム）２３と、送信機２４とを備えている。宛先デバイス１６は、受信機２６と、モデム２７と、ビデオデコーダ２８と、ディスプレイデバイス３０とを備えている。本開示にしたがった、送信元デバイス１２のビデオエンコーダ２２は、ビデオブロックの画素に関係するアクティビティメトリックに基づいて、ビデオブロックフィルタリングプロセスのためのフィルタ係数を選択して、選択したフィルタ係数を、アクティビティメトリックに基づいてエンコードするように構成されていてもよい。特に、アクティビティメトリックの第１の範囲に対して、フィルタ係数を直接的にエンコードして、アクティビティメトリックの第２の範囲に対しては、フィルタ係数を予測的にコード化する。
【００２５】
エンコードされたビットストリームは、各所定のセットのフィルタ係数が予測的にエンコードされる否か、あるいは、直接的にエンコードされるか否かを規定するための、シグナリングシンクタックスエレメントを含んでいてもよい。エンコーダにおいて考慮されるアクティビティメトリックのそれぞれの範囲に対して、例えば、ビットストリームは、その範囲において使用されることになるフィルタ係数をエンコードするために、直接コーディングまたは予測コーディングが使用されたか否かを示す対応するビットを含んでいてもよい。したがって、デコーダは、シグナリングシンタックスエレメントによって規定されるように、予測デコーディングまたは直接デコーディングを適用することによって、フィルタ係数を適切にデコードすることができる。さらに、デコーダは、デコードされた画素値に基づいてもアクティビティメトリックを計算でき、これにより、アクティビティメトリックが第１の範囲または第２の範囲中にあるか否かを決定できる。この方法では、デコーダは、アクティビティメトリックに基づいて、どのフィルタを異なる画素データに適用するかを決定することができる。
【００２６】
さらに詳細には、送信元デバイス１２のビデオエンコーダ２２が、フィルタ係数を選択し、エンコーディングプロセスの間にこのようなフィルタ係数を適用して、宛先デバイス１６のビデオデコーダ２８への通信のためにフィルタ係数をエンコードしてもよい。フィルタ係数を選択するためと、フィルタ係数をどのようにエンコードするかを決定するためとの双方のために、ビデオエンコーダ２２は、コード化されている画素に関係するアクティビティメトリックを決定できる。デコーダ側では、宛先デバイス１６のビデオデコーダ２８が、画素データに適用するフィルタ係数を決定することができるように、ビデオデコーダ２８も、画素に関係するアクティビティメトリックを決定する。フィルタ係数がどのようにエンコードされたかに応じて、ビデオデコーダ２８は、直接デコーディングまたは予測デコーディングに基づいてフィルタ係数をデコードしてもよく、このフィルタ係数は、ビットストリームシンタックスの一部として信号送信されてもよい。図１の図示したシステム１０は、単なる例である。本開示のフィルタリング技術は、任意のエンコーディングまたはデコーディングデバイスによって実行してもよい。送信元デバイス１２および宛先デバイス１６は、このような技術をサポートすることができる、コーディングデバイスの単なる例である。
【００２７】
送信元デバイス１２のビデオエンコーダ２２は、本開示の技術を使用して、ビデオソース２０から受け取ったビデオデータをエンコードする。ビデオソース２０は、ビデオカメラ、以前に取り込んだビデオを含むビデオアーカイブ、またはビデオコンテンツプロバイダからのビデオフィードのようなビデオ取り込みデバイスを含んでいてもよい。さらなる代替実施形態として、ビデオソース２０は、コンピュータグラフィックベースデータをソースビデオとして、または、ライブビデオと、アーカイブされたビデオと、コンピュータにより発生されるビデオとを組み合わせたものを発生させてもよい。いくつかのケースにおいて、ビデオソース２０がビデオカメラである場合には、送信元デバイス１２および宛先デバイス１６は、いわゆるカメラ電話機またはテレビ電話機を形成していてもよい。それぞれのケースでは、取り込まれたビデオ、以前取り込まれたビデオ、またはコンピュータにより発生されるビデオは、ビデオエンコーダ２２によってエンコードされてもよい。
【００２８】
いったん、ビデオエンコーダ２２によってビデオデータがエンコードされると、例えば、コード分割多元接続（ＣＤＭＡ）、あるいは別の通信標準規格または技術のような通信標準規格にしたがって、エンコードされたビデオ情報をモデム２３によって変調し、送信機２４を通して宛先デバイス１６に送信してもよい。モデム２３は、さまざまな、ミキサ、フィルタ、増幅器、または、信号変調のために設計されている他のコンポーネントを含んでいてもよい。送信機２４は、データを送信するために設計されている回路を備えていてもよく、この回路は、増幅器と、フィルタと、１つ以上のアンテナとを備えている。
【００２９】
宛先デバイス１６の受信機２６が、チャネル１５を通して情報を受け取り、モデム２７が情報を復調する。ビデオデコーダ２８によって実行されるビデオデコーディングプロセスは、例えば、インループデコーディングの一部として、または、デコーディングループに続くポストフィルタリングステップとして、フィルタリングを含んでいてもよい。どちらにしても、本開示の技術を使用して、ビデオデコーダ２８によって適用されるフィルタ係数をデコードすることができる。フィルタ係数に対して予測コーディングが使用されたとき、チャネル１５を通して伝えられる情報量を減少させるために、異なるフィルタ係数間の類似性を活用することができる。特に、異なるコード化ユニットに関係する別のセットのフィルタ係数に関して、１セットのフィルタ係数を差分値として予測的にコード化することができる。このケースでは、ビデオデコーダ２８が、異なるコード化ユニットを識別する（関係するフィルタを識別するための）フィルタ情報とビデオブロックとを含むエンコードされたビットストリームを受け取る。フィルタ情報は、異なるコード化ユニットのフィルタに関して現在のフィルタを規定する差分値も含む。特に、差分値は、フィルタ係数の差分値を含んでいてもよく、フィルタ係数の差分値は、異なるコード化ユニットに対して使用される異なるフィルタのフィルタ係数に関して現在のフィルタに対するフィルタ係数を規定する。
【００３０】
ビデオデコーダ２８は、ビデオブロックをデコードし、フィルタ係数を発生させ、発生させたフィルタ係数に基づいて、デコードしたビデオブロックをフィルタリングする。デコードしてフィルタリングしたビデオブロックをビデオフレームにアセンブルして、デコードしたビデオデータを形成することができる。ディスプレイデバイス３０は、デコードされたビデオデータをユーザに表示し、ディスプレイデバイス３０は、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイのような、さまざまなディスプレイデバイスのうちの任意のものを含んでいてもよい。
【００３１】
通信チャネル１５は、無線周波数（ＲＦ）スペクトラムまたは１つ以上の物理送信線のような、任意のワイヤレス通信媒体またはワイヤード通信媒体、あるいはワイヤレス媒体およびワイヤード媒体の任意の組み合わせを含んでいてもよい。通信チャネル１５は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークのような、パケットベースネットワークの一部を形成してもよい。通信チャネル１５は、一般的に、ビデオデータを送信元デバイス１２から宛先デバイス１６に送信するための、任意の適切な通信媒体、または異なる通信媒体の集合体を表している。
【００３２】
ビデオエンコーダ２２およびビデオデコーダ２８は、ＩＴＵ−Ｔ Ｈ．２６４標準規格のようなビデオ圧縮規格にしたがって動作してもよい。ＩＴＵ−Ｔ Ｈ．２６４標準規格は、代わりに、ＭＰＥＧ−４，Ｐａｒｔ１０、高度ビデオコーディング（ＡＶＣ）とも呼ばれる。しかしながら、本開示の技術は、さまざまな他のビデオコーディング標準規格のうちの任意のものに容易に適用することができる。特に、エンコーダおよびデコーダにおけるフィルタリングを可能にする任意の標準規格は、エンコーダからデコーダにフィルタ情報を通信するのに必要とされるデータ量を減少させることによる、本開示の教示から利益を得ることができる。
【００３３】
図１には示していないが、いくつかの態様では、ビデオエンコーダ２２およびビデオデコーダ２８は、それぞれ、オーディオエンコーダおよびデコーダと一体化されてもよく、そして共通のデータストリームまたは別個のデータストリーム中で、オーディオおよびビデオの両方のエンコーディングを取り扱うための、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んでいてもよい。適用可能な場合に、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）のような他のプロトコルに準拠していてもよい。
【００３４】
ビデオエンコーダ２２およびビデオデコーダ２８は、それぞれ、１つ以上のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらを組み合わせたものとして実現してもよい。ビデオエンコーダ２２およびビデオエンコーダ２８のそれぞれは、１つ以上のエンコーダまたはデコーダ中に備えられていてもよく、これらのいずれかは、各移動体デバイス、加入者デバイス、ブロードキャストデバイス、サーバ、またはこれらに類するもの中で、組み合わせられたエンコーダ／デコーダ（コーデック）の一部として一体化してもよい。
【００３５】
いくつかのケースにおいて、デバイス１２、１６は、実質的に対称的な方法で動作することができる。例えば、デバイス１２、１６のそれぞれが、ビデオエンコーディングコンポーネントと、ビデオデコーディングコンポーネントとを備えていることがある。それゆえ、システム１０は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはテレビ電話通信のために、ビデオデバイス１２、１６間の、一方向または双方向のビデオ送信をサポートすることができる。
【００３６】
エンコーディングプロセスの間に、ビデオエンコーダ２２は、多数のコーディング技術またはステップを実行することができる。一般的に、ビデオブロックをエンコードするために、ビデオエンコーダ２２が、個々のビデオフレーム（または、スライスのような、他の独立的にコード化されるユニット）内のビデオブロック上で動作する。フレーム、スライス、フレームの部分、ピクチャのグループ（ＧＯＰ）、または他のデータ構成を、複数のビデオブロックを含む独立的にデコード可能なユニットとして規定してもよい。いくつかのケースでは、それぞれのビデオフレームは、一連の独立的にデコード可能なスライスを含んでいてもよく、それぞれのスライスは、偶数のより小さいブロック中に配列できる一連のマクロブロックを含んでいてもよい。「コード化ユニット」という用語は、フレーム、スライス、フレームの部分、ピクチャのグループ（ＧＯＰ）、または独立的にデコード可能である他のデータ構造を意味する。コード化ユニット内のビデオブロックは、固定サイズまたは可変サイズを有していてもよく、指定されたコーディング標準規格にしたがってサイズが異なっていてもよい。それぞれのコード化ユニットが、関係するシンタックスデータを含むように、シンタックスデータはコード化ユニット当たりのベースで規定されてもよい。ここで記述するフィルタ情報は、コード化ユニットに対するこのようなシンタックスの一部であってもよく、コード化ユニットに対するフィルタ係数を、または場合によっては、コード化ユニットの画素データをフィルタリングするために使用されたフィルタの他の特性（例えば、フィルタタイプ）を示すことができる。例えば、フィルタタイプは、線形、双１次、２次元、双３次であってもよく、あるいは、一般的に、フィルタサポートの任意の形状を規定してもよい。ときには、フィルタタイプは、エンコーダおよびデコーダによって予測されることもあり、このケースでは、フィルタタイプはビットストリーム中には含まれていないが、他のケースでは、フィルタタイプは、ここで記述したようなフィルタ係数情報ともにエンコードされていてもよい。どのようにフィルタがエンコードされたか（例えば、どのようにフィルタ係数がエンコードされたか）とともに、異なるフィルタが使用されるべきアクティビティメトリックの範囲について、シンタックスデータは、デコーダにも信号送信されてもよい。予測デコーディングまたは直接デコーディングが使用されるべきか否かを規定するために、アクティビティメトリックの範囲に対してビットが含まれていてもよい。
【００３７】
マクロブロックは、典型的に、１６×１６ブロックのデータのことを指す。ＩＴＵ−Ｔ Ｈ．２６４標準規格は、ルミナンス成分に対して１６×１６、８×８、または４×４であり、クロマ成分に対しては８×８のような、さまざまなブロックサイズでのイントラ予測ととともに、ルミナンス成分に対して１６×１６、１６×８、８×１６、８×８、８×４、４×８、および４×４であり、クロマ成分に対しては、対応するスケーリングされたサイズのような、さまざまなブロックサイズでのインター予測をサポートしている。本開示において、「ビデオブロック」というフレーズは、任意のサイズのビデオブロックを意味する。さらに、ビデオブロックは、画素ドメイン中のビデオデータのブロックを、あるいは、離散コサイン変換（ＤＣＴ）ドメイン、ＤＣＴに類似するドメイン、ウェーブレットドメイン、またはこれらに類するような変換ドメイン中のデータのブロックを意味することもある。
【００３８】
ビデオエンコーダ２２が予測コーディングを実行してもよく、予測コーディングでは、予測ブロックを識別するために、コード化されているビデオブロックを予測フレーム（または他のコード化ユニット）と比較する。コード化されている現在のビデオブロックと予測ブロックとの間の差分を残差ブロックとしてコード化し、予測ブロックを識別するために予測シンタックスを使用する。残差ブロックは、変換および量子化してもよい。変換技術は、ＤＣＴプロセスまたは概念的に類似しているプロセス、整数変換、ウェーブレット変換、または他のタイプの変換を含んでいてもよい。ＤＣＴプロセスでは、例として、変換プロセスにより、１セットの画素値を変換係数にコンバートし、変換係数は、周波数ドメイン中の画素値のエネルギーを表してもよい。量子化は、典型的に、変換係数に適用され、そして一般的に、任意の所定の変換係数に関係するビット数を制限するプロセスを伴う。
【００３９】
変換および量子化に続いて、量子化および変換された残差ビデオブロック上で、エントロピーコーディングを実行してもよい。エンコーディングの間に規定されたフィルタ情報および予測ベクトルのようなシンタックスエレメントも、それぞれのコード化ユニットに対するエントロピーコード化されたビットストリーム中に含めてもよい。一般的に、エントロピーコーディングは、量子化された変換係数のシーケンスおよび／または他のシンタックス情報を集約的に圧縮する１つ以上のプロセスを含む。１つ以上のシリアル化された１次元のベクトルの係数を２次元のビデオブロックから規定するために、ジグザグスキャニング技術のようなスキャニング技術を、例えば、エントロピーコーディングプロセスの一部として、量子化された変換係数上で実行する。その後、例えば、コンテンツ適応可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ）、または別のエントロピーコーディングプロセスを通して、スキャンされた係数を、任意のシンタックス情報とともにエントロピーコード化する。
【００４０】
後続するビデオブロックの後続する予測ベースのコーディングのために使用するビデオデータを発生させるために、エンコーディングプロセスの一部として、エンコードされたビデオブロックをデコードしてもよい。この段階において、ビデオの品質を向上させるために、例えば、デコードされたビデオからブロックノイズのアーティファクトを除去するために、フィルタリングを用いることができる。他のビデオブロックの予測のために、フィルタリングされたデータを使用してもよく、このケースでは、このフィルタリングを、「インループ」フィルタリングと呼ぶ。代替的に、他のビデオブロックの予測は、フィルタリングされていないデータに基づいていてもよく、このケースでは、このフィルタリングを、「ポストフィルタリング」と呼ぶ。
【００４１】
エンコーダが、ビデオ品質を向上させる方法でフィルタ係数を選択してもよい。このようなフィルタ係数は、予め規定されたセットの係数から選択してもよく、あるいは、ビデオ品質を向上させるように適応的に規定してもよい。例として、そのコード化ユニットのビデオブロックの異なる画素に対して、異なるセットのフィルタ係数が使用されるように、ビデオエンコーダ２２が、所定のコード化ユニットに対するいくつかのセットのフィルタ係数を選択または規定してもよい。特に、それぞれのコード化ユニットに対して、いくつかのセットのフィルタ係数を規定してもよく、コード化ユニットの画素に関係するアクティビティが、このような画素を使用するためのフィルタ係数を規定してもよい。いくつかのケースにおいて、ビデオエンコーダ２２が、いくつかのセットのフィルタ係数を適用して、そして、コード化されたブロックとオリジナルブロックとの間の歪みの量の面で最高品質のビデオを生じさせる、および／または、最高レベルの圧縮を生じさせる１つ以上のセットを選択してもよい。いずれのケースにおいても、いったん選択されると、それぞれのコード化ユニットに対する、ビデオエンコーダ２２によって適用されたフィルタ係数のセットが、エンコードされ、宛先デバイス１８のビデオデコーダ２８に通信され得る。これにより、ビデオデコーダ２８は、それぞれの所定のコード化ユニットに対するエンコードプロセスの間に適用されたのと同じフィルタリングを適用することができる。
【００４２】
本開示の技術は、特に、フィルタ係数の選択およびエンコーディングに適用する。特に、述べたように、アクティビティメトリックを使用して、フィルタ係数とともに、フィルタ係数を（例えば、直接的または予測的のいずれかで）エンコードする方法も規定できる。コード化ユニットに対してアクティビティメトリックを規定してもよく、またはコード化ユニット内の異なる部分（例えば、サブブロックの画素）に対して、異なるアクティビティメトリックを規定してもよい。例示的なアクティビティメトリックのさらなる詳細な説明を以下でより詳細に述べる。
【００４３】
図２は、本開示と一致した、ビデオエンコーダ５０を図示しているブロック図である。ビデオエンコーダ５０は、デバイス２０のビデオエンコーダ２２に対応していてもよく、または異なるデバイスのビデオエンコーダに対応していてもよい。図２中に示したように、ビデオエンコーダ５０は、予測ユニット３２と、加算器４８および５１と、メモリ３４とを備えている。ビデオエンコーダ５０はまた、変換ユニット３８と量子化ユニット４０とともに、逆量子化ユニット４２と、逆変換ユニット４４も備えている。ビデオエンコーダ５０はまた、スキャンユニット４５と、エントロピーコーディングユニット４６とを備えている。ビデオエンコーダ５０のフィルタユニット４７は、フィルタリングを実行し、フィルタ情報を効率的に別のデバイスに通信することができるように、本開示にしたがって、フィルタ情報をエンコードできる。
【００４４】
エンコーディングプロセスの間に、ビデオエンコーダ５０は、コード化されることになるビデオブロックを受け取り、予測ユニット３２が、予測コーディング技術を実行する。インターコーディングに対しては、予測ユニット３２は、予測ブロックを規定するために、エンコードされることになるビデオブロックを、１つ以上のビデオ参照フレームまたはスライス中のさまざまなブロックと比較する。イントラコーディングに対しては、予測ユニット３２は、同じコード化ユニット内の隣接データに基づいて予測ブロックを発生させる。予測ユニット３２は、予測ブロックを出力し、加算器４８が、残差予測ブロックを発生させるために、コード化されているビデオブロックから予測ブロックを減算する。
【００４５】
インターコーディングに対しては、予測ユニット３２は、予測ブロックを指し示す動きベクトルを識別して、動きベクトルに基づいて予測ブロックを発生させる、動き推定ユニットと動き補償ユニットとを備えている。典型的に、動き推定は、動きを推定する動きベクトルを発生させるプロセスであると考えられる。例えば、現在のフレーム内でコード化されている現在のブロックに関する、予測フレーム内の予測ブロックの変位を、動きベクトルは示すことができる。動き補償は、典型的に、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは発生させるプロセスであると考えられる。イントラコーディングに対しては、予測ユニット３２は、同じコード化ユニット内の隣接するデータに基づいて予測ブロックを発生させる。１つ以上のイントラ予測モードが、どのようにイントラ予測ブロックを規定できるかを規定してもよい。
【００４６】
予測ユニット３２が予測ブロックを出力し、加算器４８が、残差ブロックを発生させるために、予測ブロックをコード化されているビデオブロックから減算した後に、変換ユニユニット３８が、残差ブロックに変換を適用する。変換は、離散コサイン変換（ＤＣＴ）、または、Ｈ．２６４標準規格によって規定されているような概念的に類似している変換を含んでいてもよい。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換も使用することができる。いずれのケースにおいても、変換ユニット３８は、残差ブロックに変換を適用して、残差変換係数のブロックを生成させる。変換は、画素ドメインから周波数ドメインに残差情報をコンバートしてもよい。
【００４７】
その後、量子化ユニット４０が、残差変換係数を量子化して、ビットレートをさらに低下させる。例えば、量子化ユニット４０は、係数のそれぞれをコード化するために使用するビット数を制限してもよい。量子化の後、エントロピーコーディングユニット４６が、量子化された係数ブロックをスキャンして、２次元的表現から、１つ以上のシリアル化された１次元ベクトルにする。スキャン順序は（ジグザグスキャニングまたは別の予め規定した順序のような）規定した順序で行われるように予めプログラミングされていてもよく、またはおそらくは以前のコーディング統計に基づいて適応的に規定してもよい。
【００４８】
このスキャニングプロセスに続いて、エントロピーエンコーディングユニット４６が、ＣＡＶＬＣまたはＣＡＢＡＣのようなエントロピーコーディング方法論にしたがって、（任意のシンタックスエレメントとともに）量子化された変換係数をエンコードして、データをさらに圧縮する。エントロピーコード化されたビットストリーム中に含まれているシンタックスエレメントは、インターコーディングのための動きベクトルまたはイントラコーディングのための予測モードのような、予測ユニット３２からの予測シンタックスを含んでいてもよい。エントロピーコード化されたビットストリーム中に含まれているシンタックスエレメントは、フィルタユニット４７からのフィルタ情報も含んでいてもよく、このフィルタ情報は、ここで記述した方法でエンコードすることができる。
【００４９】
ＣＡＶＬＣは、エントロピーコーディングユニット４６によってベクトル化ベースで適用され得るＩＴＵ Ｈ．２６４／ＭＰＥＧ４、ＡＶＣ標準規格によってサポートされている、１つのタイプのエントロピーコーディング技術である。ＣＡＶＬＣは、変換係数および／またはシンタックスエレメントのシリアル化された「ラン」を効率的に圧縮する方法で、可変長コーディング（ＶＬＣ）テーブルを使用する。ＣＡＢＡＣは、エントロピーコーディングユニット４６によってベクトル化ベースで適用され得るＩＴＵ Ｈ．２６４／ＭＰＥＧ４、ＡＶＣ標準規格によってサポートされている、別のタイプのエントロピーコーディング技術である。ＣＡＢＡＣは、バイナリ化と、コンテキストモデル選択と、バイナリコーディングとを含むいくつかの段階を伴っていてもよい。このケースでは、エントロピーコーディングユニット４６は、ＣＡＢＡＣにしたがって、変換係数とシンタックスエレメントとをコード化する。他の多くのタイプのエントロピーコーディング技術も存在しているが、おそらく、将来、新しいエントロピーコーディング技術が登場するだろう。本開示は、何ら特定のエントロピーコーディング技術に限定されない。
【００５０】
エントロピーエンコーディングユニット４６によるエントロピーコーディングに続いて、エンコードされたビデオは、別のデバイスに送信しても、または、後の送信または検索のためにアーカイブしてもよい。再度説明すると、エンコードされたビデオは、デコーディングプロセスを適切に構成しているデコーダによって使用できる、エントロピーコード化されたベクトルとさまざまなシンタックスとを含んでいてもよい。逆量子化ユニット４２および逆変換ユニット４４は、画素ドメイン中で残差ブロックを再構成するように、それぞれ、逆量子化および逆変換を適用する。加算器５１が、再構成された残差ブロックを、予測ユニット３２によって生成された予測ブロックに加算し、メモリ３４中への記憶のために、再構成されたビデオブロックを生成させる。しかしながら、このような記憶の前に、ビデオ品質を向上させるために、フィルタユニット４７が、ビデオブロック上でフィルタリングを適用してもよい。フィルタユニット４７によるこのようなフィルタリングにより、ブロックノイズまたは他のアーティファクトを減少させることができる。いくつかのケースにおいて、フィルタユニット４７を、デブロッキングフィルタユニットと呼ぶことがある。さらに、フィルタリングされていない予測ビデオブロックよりも、コーディングされているビデオブロックに、さらによく一致する予測ビデオブロックを発生させることによって、フィルタリングは圧縮を改善させることができる。フィルタリングの後、再構成されたビデオブロックを基準ブロックとして予測ユニット３２によって使用して、後続するビデオフレームまたは他のコード化ユニット中のブロックをインターコード化してもよい。フィルタユニット４７が「インループ」で示されているが、また、本開示の技術は、ポストフィルタとともに使用でき、このケースでは、後続するコード化ユニット中でデータを予測する目的のために、（フィルタリングされたデータよりむしろ）フィルタリングされていないデータを使用するだろう。
【００５１】
フィルタユニット４７が、ビデオ品質を向上させる方法でフィルタ係数選択を実行してもよい。例えば、フィルタユニット４７は、ビデオ品質を向上させる、または、改善した圧縮を促進させるために、フィルタ係数を、予め規定されたセットの係数から選択してもよく、または、フィルタ係数を適応的に規定してもよい。そのコード化ユニットの異なるビデオブロックの画素に対して同じセットのフィルタ係数が使用されるように、フィルタユニット４７は、所定のコード化ユニットに対して、１つ以上のセットのフィルタ係数を選択または規定してもよい。いくつかのケースにおいて、フィルタユニット４７が、いくつかのセットのフィルタ係数を適用し、最高品質のビデオまたは最高レベルの圧縮を生じさせるセットを選択することができる。いずれのケースにおいても、いったん選択されると、それぞれのコード化ユニットに対して、フィルタユニット４７によって適用されたフィルタ係数のセット（または複数のセット）は、エンコードして、デコーディングデバイスに通信する必要がある。
【００５２】
本開示にしたがうと、フィルタユニット４７が、アクティビティメトリックに基づいてフィルタ係数を選択してもよい。アクティビティメトリックは、コード化ユニット内の画素の１つ以上のセットに関係するアクティビティを定量化する。この方法では、フィルタユニット４７によって適用されるフィルタリングは、コード化ユニット内の画素に関係するアクティビティによって規定される。コード化ユニット内の画素値の分散の観点から、アクティビティを示すことができる。コード化ユニットにおける、画素値のより大きい分散は、より高いレベルの画素アクティビティを示す一方で、コード化ユニット中の、画素値のより小さい分散は、より低いレベルの画素アクティビティを示す。異なるフィルタ係数は、画素分散のレベル、すなわちアクティビティに応じて、結果的に、よりよいフィルタリング（例えば、より高い画像品質）をもたらすことができる。画素分散は、アクティビティメトリックによって定量化してもよい。アクティビティメトリックは、以下でより詳細に説明するような、合計修正ラプラシアン値を含んでいてもよい。しかしながら、他のタイプのアクティビティメトリックも使用できる。
【００５３】
本開示にしたがうと、フィルタユニット４７は、フィルタ情報に関するコーディング技術を実行する。このコーディング技術は、フィルタ情報をエンコードして、エンコーダ５０から別のデバイスに伝えるのに必要とされるデータ量を減少させることができる。再度説明すると、それぞれの（フレーム、ピクチャのグループ（ＧＯＰ）、スライス、または他のコード化ユニットのような）コード化ユニットに対して、フィルタユニット４７が、そのコード化ユニットの画素に適用されることになるフィルタ係数の１つ以上のセットを規定または選択してもよい。メモリ３４中に記憶されている再構成されたビデオフレームのビデオブロックをフィルタリングするために、フィルタユニット４７は、フィルタ係数を適用する。このビデオブロックは、インループフィルタリングと一致する予測コーディングのために使用してもよい。フィルタユニット４７は、フィルタ係数をフィルタ情報としてエンコードできる。このフィルタ情報は、エンコードされたビットストリーム中に含めるためにエントロピーコーディングユニット４６に転送される。
【００５４】
フィルタユニット４７によって規定または選択されたフィルタ係数のうちのいくつかが、別のコード化ユニットの画素に対して適用された他のフィルタ係数に非常によく類似し得るという事実を、本開示の技術は認識および活用している。異なるコーディングユニットに対して、同じタイプのフィルタを適用（例えば、同じフィルタサポート）してもよいが、フィルタは、フィルタサポートの異なるインデックスに関係するフィルタ係数値の点で異なっていることがある。したがって、このようなフィルタ係数を伝えるのに必要とされるデータ量を減少させるために、フィルタユニット４７は、フィルタ係数間の何らかの類似性を活用して、別のコード化ユニットのフィルタ係数に基づいて、フィルタリングするために使用することになる１つ以上のフィルタ係数を予測的にエンコードしてもよい。しかしながら、いくつかのケースでは、例えば、何ら予測を使用せずに、直接的にフィルタ係数をエンコードすることが、より好ましいことがある。予測コーディング技術を使用してフィルタ係数をエンコードするときを、そして、何ら予測コーディングせずに、直接的にフィルタ係数をエンコードするときを規定するために、本開示は、アクティブメトリックの使用を活用する。
【００５５】
アクティビティメトリックの第１の範囲に対して、フィルタユニット４７は、１つ以上のフィルタをフィルタ情報中に直接的にエンコードする。このケースでは、例えば、何ら予測エンコーディング技術を使用せずに、直接的にフィルタ係数の値をビットストリーム中にエンコードしてもよい。しかしながら、アクティビティメトリックの第２の範囲に対しては、フィルタユニット４７は、１つ以上のフィルタをフィルタ情報中に予測的にエンコードする。このケースでは、別のコード化ユニットに対して規定されたフィルタ係数に関して、残差値、または、差分によって、フィルタ係数の値が規定してもよい。先に述べたように、予測的にコード化されたフィルタ情報は、例えば、異なるコード化ユニットを識別することによって、異なるエンコードされたフィルタを識別する第１のデータを含んでいてもよく、予測的にコード化されたフィルタ情報は、コード化されている現在のフィルタ係数と、第１のデータによって識別される異なるフィルタのフィルタ係数との差分を表す第２のデータも含んでいてもよい。
【００５６】
例えば、１セットのフィルタ係数が、垂直または水平次元のいずれかでの６エレメントのフィルタサポートのための（５、−２、１０、１０、−２、５）を含む場合には、これらのフィルタ係数の直接エンコーディングにより、それぞれの値、例えば、５、−２、１０、１０、−２、および５をエンコードするだろう。しかしながら、予測コーディングに対しては、フィルタユニット４７は、例えば、前のセットのフィルタ係数（６、−２、１２、１２、−２、６）を規定した、前のコード化ユニットを識別するかもしれない。このケースでは、前のセットのフィルタ係数（６、−２、１２、１２、−２、６）を識別することによって、現在のセットのフィルタ係数（５、−２、１０、１０、−２、５）を、差分値（１、０、２、２、０、１）としてエンコードしてもよい。この方法では、予測コーディングにより、フィルタ係数を伝えるのに必要とされるデータ量を減少させることができる。この例では、１次元における３つの隣接している画素が、それぞれ、係数１０、−２、および５に基づいてフィルタリングされるように、そして、他の次元における３つの画素も、それぞれ、係数１０、−２、および５に基づいてフィルタリングされるように、係数のセット（５、−２、１０、１０、−２、５）は、対称フィルタタップを含んでいてもよい。このケースでは、現在の画素に対してすぐに近接している画素に対しては係数１０および１０を使用し、現在の画素から２整数位置である次の画素に対しては係数−２および−２を使用し、現在の画素から３整数位置である次の画素に対しては係数５および５を使用する。
【００５７】
完全なセット（５、−２、１０、１０、−２、５）を規定するために、デコーダによって係数のサブセット（例えば、５、−２、１０）が把握されるように、対称性も課してもよい。直接コーディングシナリオと予測コーディングの両方に対称性を課してもよい。
【００５８】
アクティビティメトリックの第１の範囲に対して、何ら予測しない直接エンコーディングを使用して、１つ以上のフィルタをエンコードすることと、アクティビティメトリックの第２の範囲に対して、予測エンコーディングを使用して、１つ以上のフィルタをエンコードすることとによって、改善したデータ圧縮を達成することができる。このケースでは、フィルタをエンコードおよびデコードする方法は、アクティビティメトリックに基づいて行われる。さらに、述べたように、フィルタ選択自体も、アクティビティメトリックに基づいていてもよい。したがって、アクティビティメトリックは、コード化ユニットの画素に適用されるフィルタリングを決定でき、フィルタ情報をビットストリーム中にエンコードしたり、フィルタ情報をビットストリームからデコードしたりする方法を規定でき、または、これに影響を与えることもできる。エンコードされたフィルタ情報は、任意の所定のセットの係数に対して使用されるエンコードする方法とともに、任意の所定のセットの係数が使用されるべきアクティビティメトリック範囲をデコーダに信号送信するシグナリングシンタックスを含んでいてもよい。デコーダは、このシグナリングシンタックスにしたがったフィルタ係数をデコードして適用してもよい。
【００５９】
図３は、ここで記述した方法でエンコードされたビデオシーケンスをデコードする、ビデオデコーダ６０の例を図示しているブロック図である。受信されたビデオシーケンスは、エンコードされたセットの画像フレーム、１セットのフレームスライス、共通にコード化された、ピクチャのグループ（ＧＯＰ）、または、幅広いさまざまなコード化ビデオユニットを含んでいてもよく、これらは、エンコードされたビデオブロックと、このようなビデオブロックをどのようにデコードするかを規定するためのシンタックスとを含んでいる。いくつかのケースにおいて、例えば、マクロブロックが、別個にデコード可能なユニットとしてエンコードされた場合には、マクロブロックまたは他のビデオブロックでさえ、コード化されるユニットとすることができる。
【００６０】
ビデオデコーダ６０は、エントロピーデコーディングユニット５２を備えており、エントロピーデコーディングユニット５２は、図２のエントロピーエンコーディングユニット４６によって実行されたエンコーディングの逆のデコーディング機能を実行する。特に、エントロピーデコーディングユニット５２は、ビデオエンコーダ５０によって使用された、ＣＡＶＬＣまたはＣＡＢＡＣデコーディングあるいは他の何らかのタイプのエントロピーデコーディングを実行してもよい。１次元シリアル化されたフォーマットのエントロピーデコードされたビデオブロックを逆スキャンして、１つ以上の１次元ベクトルの係数をコンバートして、２次元ブロックフォーマットに戻してもよい。ベクトルの数およびサイズとともに、ビデオブロックに対して規定されたスキャン順序が、どのように２次元ブロックを再構成するかを規定してもよい。エントロピーデコードされた予測シンタックスは、エントロピーデコーディングユニット５２から予測ユニット５４に送られてもよく、エントロピーデコードされたフィルタ情報は、エントロピーデコーディングユニット５２からフィルタユニット５７に送られてもよい。
【００６１】
ビデオデコーダ６０はまた、予測ユニット５４と、逆量子化ユニット５６と、逆変換ユニット５８と、メモリと、加算器６４とを備えている。さらに、ビデオデコーダ６０は、加算器６４の出力をフィルタリングするフィルタユニット５７も備えている。本開示と一致して、フィルタユニット５７は、適用されることになる１つ以上のフィルタを含む、エントロピーデコードされたフィルタ情報を受け取ってもよい。フィルタは、フィルタ係数のセットによって規定されてもよい。フィルタユニット５７は、フィルタ情報に基づいてフィルタ係数を発生させるように構成されていてもよい。フィルタ情報は、任意の所定のセットの係数に対して使用されるエンコーディングの方法とともに、任意の所定のセットの係数が使用されるべきアクティビティメトリック範囲をデコーダに信号送信するシグナリングシンタックスを含んでいてもよい。フィルタのデコーディングに続いて、１つ以上のセットのフィルタ係数と、異なるセットのフィルタ係数が使用されるべきアクティビティメトリック範囲を含むシグナリングシンタックスとに基づいて、フィルタユニット５７は、デコードされたビデオブロックの画素値をフィルタリングすることができる。使用されるエンコーディングのタイプ（例えば、予測または直接）を規定するために使用するアクティビティメトリックの範囲を規定する１セットのアクティビティ値によって、アクティビティメトリック範囲は規定されてもよい。
【００６２】
フィルタをどのように適用するかを決定するために、フィルタユニット５７は、コード化ユニットのデコードされる画素（例えば、加算器５１の出力）に関係する１つ以上のアクティビティメトリックを計算してもよい。アクティビティメトリックの第１の範囲に対して、フィルタユニット５７は、フィルタ情報中に直接的にエンコードされた１つ以上のフィルタを適用する。このケースでは、フィルタ係数の値は、例えば、何ら予測エンコーディング技術を使用せずに、直接的に、ビットストリーム中にエンコードされていただろう。しかしながら、アクティビティメトリックの第２の範囲に対しては、フィルタユニット５７は、フィルタ情報中に予測的にエンコードされた１つ以上のフィルタを適用する。このケースでは、フィルタ係数の値は、別のコード化ユニットに対して規定されたフィルタ係数に関して、残差値または差分によって規定されていてもよい。これらの係数に対しては、現在のコード化ユニットに適用されることになる１つ以上の新しいフィルタを発生させるために、フィルタユニット５７は、フィルタ情報に基づいて、異なるコード化ユニットの異なるフィルタを識別して、フィルタ情報に基づいて残差値を決定し、残差値を、異なるコード化ユニットの１つ以上の異なるフィルタと組み合わせてもよい。フィルタユニット５７によって計算されるアクティビティメトリックは、デコーディングプロセスの際にどのフィルタを適用するかを規定する。フィルタユニット５７による、フィルタ係数の実際のデコーディング（例えば、直接デコーディングまたは予測デコーディング）は、フィルタがどのようにエンコードされたかを規定するエンコードされたフィルタ情報中のシグナリングシンタックスに基づいて実行されてもよい。
【００６３】
フィルタは、一般的に、任意のタイプのフィルタサポートの形または配置を仮定できる。フィルタサポートは、フィルタリングされている所定の画素に対するフィルタの形を意味し、フィルタ係数は、フィルタサポートにしたがって、隣接する画素値に適用される重み付けを規定してもよい。ときには、フィルタタイプは、エンコーダおよびデコーダによって推定されることもあり、このケースでは、フィルタタイプはビットストリーム中に含まれていないが、他のケースでは、フィルタタイプは、ここで記述したように、フィルタ係数情報とともにエンコードされてもよい。シンタックスデータは、フィルタがどのようにエンコードされたか（例えば、フィルタ係数がどのようにエンコードされたか）とともに、異なるフィルタが使用されるべきアクティビティメトリックの範囲も、デコーダに信号送信してもよい。
【００６４】
予測ユニット５４が、（動きベクトルのような）予測シンタックスをエントロピーデコーディングユニット５２から受け取る。予測シンタックスを使用して、予測ユニット５４は、ビデオブロックをコード化するために使用した予測ブロックを発生させる。逆量子化ユニット５６が逆量子化を実行し、逆変換ユニット５８が、残差ビデオブロックの係数を変えて画素ドメインに戻すように逆変換を実行する。加算器６４は、ビデオブロックを再構成するために、それぞれの予測ブロックを、逆変換ユニット５８により出力された対応する残差ブロックと組み合わせる。
【００６５】
そのコード化ユニットの再構成されたビデオブロックをフィルタリングするために、フィルタユニット５７は、それぞれのコード化ユニットに対して適用されることになるフィルタ係数を発生させて、このようなフィルタ係数を適用してもよい。例えば、フィルタリングは、端を平滑化する、および／または、ビデオブロックに関係するアーティファクトをなくす、デブロックフィルタリングを含んでいてもよい。ビデオ情報のデコードされたフレーム（または他のデコード可能なユニット）を再構成するために、フィルタリングされたビデオブロックはメモリ６２中に累積される。デコードされたユニットは、ユーザへの提示のために、ビデオデコーダ６０から出力されてもよいが、後続する予測デコーディングにおける使用のために記憶させてもよい。
【００６６】
ビデオコーディングの分野では、デコードされたビデオ信号の品質を向上させるために、エンコーダおよびデコーダにおいてフィルタリングを適用するのが一般的である。フィルタリングは、ポストフィルタを通して適用することができるが、このケースでは、フィルタリングされたフレームは、将来のフレームの予測のために使用されない。代替的に、フィルタリングは、「インループ」で適用することができるが、このケースでは、将来のフレームを予測するために、フィルタリングされたフレームが使用されるかもしれない。オリジナル信号とデコードされフィルタリングされた信号との間のエラーを最小限にすることによって、好ましいフィルタを設計することができる。
【００６７】
変換係数の量子化に類似した方法で、ｋ＝−Ｋ，．．．，Ｋであり、ｌ＝−Ｌ，．．．，Ｌである、フィルタの係数ｈ（ｋ，ｌ）も量子化されてもよい。ＫおよびＬは、整数値を表してもよい。フィルタの係数ｈ（ｋ，ｌ）は、
【数１】
0005405596.tif 000002
【００６８】
として量子化されてもよい。ここで、ｎｏｒｍＦａｃｔは正規化ファクタであり、ｒｏｕｎｄは、所望のビット深度に対する量子化を達成するために実行される丸め込み演算である。フィルタ係数の量子化は、エンコーディングの間にフィルタユニット４７（図２）によって実行されてもよく、デクオンタイゼーション、すなわち逆量子化は、フィルタユニット５７（図３）によって、デコードされたフィルタ係数上で実行されてもよい。
【００６９】
量子化されたフィルタ係数は、エンコードされ、エンコードされたビットストリームの一部として、エンコーダ６０に関係する送信元デバイスから、デコーダ６０に関係する宛先デバイスに送られてもよい。先の例では、ｎｏｒｍＦａｃｔの値は、通常、２に等しいが、他の値を使用することもできる。量子化されたフィルタ係数ｆ（ｋ，ｌ）がよりよい性能を提供するので、ｎｏｒｍＦａｃｔのより大きい値は、より正確な量子化につながる。しかしながら、ｎｏｒｍＦａｃｔのより大きい値は、デコーダに送信するためにより多くのビットを必要とする係数ｆ（ｋ，ｌ）を生じさせることもある。
【００７０】
デコーダ６０において、デコードされたフィルタ係数ｆ（ｋ，ｌ）は、以下：
【数２】
0005405596.tif 000003
【００７１】
のように再構成された画像Ｒ（ｉ，ｊ）に適用されてもよい。ここで、ｉ＝０，．．．，Ｍであり、ｊ＝０，．．．，Ｎである。変数Ｍ、Ｎ、Ｋ、およびＬは、整数を表してもよい。ＫおよびＬは、−ＫからＫまでと、−ＬからＬまでの２次元にわたる画素のブロックを規定してもよい。
【００７２】
本開示の技術により、ポストフィルタまたはインループフィルタの性能を向上させることができ、また、フィルタ係数ｆ（ｋ，ｌ）を送信するために必要とされるビット数を減少させることもできる。いくつかのケースでは、それぞれのコード化ユニットに対して、例えば、それぞれのフレーム、スライス、フレームの部分、フレームのグループ（ＧＯＰ）、またはこれら類するものに対して、多数の異なるポストフィルタまたはインループフィルタがデコーダに送信される。所定のフィルタが適用されるべき、コード化ユニット、マクロブロック、および／または画素を識別するために、それぞれのフィルタに対して、付加的な情報が、ビットストリーム中に含まれる。
【００７３】
フレームは、フレーム番号および／またはフレームのタイプ（例えば、Ｉフレーム、Ｐフレーム、またはＢフレーム）によって識別できる。Ｉフレームは、イントラ予測されるイントラフレームを意味する。Ｐフレームは、１つのリストのデータ（例えば、１つの前のフレーム）に基づいて予測されるビデオブロックを有する予測フレームを意味する。Ｂ−フレームは、２つのリストのデータ（例えば、前および後続フレーム）に基づいて予測される双方向の予測フレームを意味する。マクロブロックを再構成するために使用される、マクロブロックタイプおよび／または量子化パラメータ（ＱＰ）値の範囲をリストアップすることによって、マクロブロックは識別することができる。
【００７４】
指定された範囲内に、アクティビティメトリックと呼ばれる、画像の局所特性の所定の尺度の値がある画素だけが特定のフィルタでフィルタリングされるべきであることも、フィルタ情報は示すことができる。例えば、画素（ｉ，ｊ）に対して、アクティビティメトリックは、以下：
【数３】
0005405596.tif 000004
【００７５】
のように計算される、合計修正ラプラシアン値を含んでいてもよい。ここで、ｋは、−ＫからＫまでの画素値の合計の値を表し、ｌは、−ＫからＫまでにわたり、−ＬからＬまでにわたる２次元ウィンドウに対する−ＬからＬまでの合計の値を表し、ｉおよびｊは、画素データの画素座標を表し、Ｒ（ｉ，ｊ）は、座標ｉおよびｊにおける所定の画素値を表し、ｖａｒ（ｉ，ｊ）は、アクティビティメトリックである。
【００７６】
前のコード化ユニットのために送信された係数からの予測を使用して、フィルタ係数ｆ（ｋ，ｌ）をコード化してもよい。それぞれのコード化ユニットｍ（例えば、それぞれのフレーム、スライス、またはＧＯＰ）に対して、エンコーダが、１セットのＭフィルタ：ｇimをエンコードして、送信してもよい。ここで、ｉ＝０，．．．，Ｍ−１である。フィルタが使用されるべき、アクティビティメトリック値ｖａｒの値の範囲を識別するために、それぞれのフィルタに対して、ビットストリームをエンコードしてもよい。
【００７７】
例えば、アクティビティメトリック値ｖａｒが、間隔［０，ｖａｒ0）、すなわち、ｖａｒ≧０であり、ｖａｒ＜ｖａｒ0内にある画素に対して、フィルタｇomが使用されるべきであることを、エンコーダ５０のフィルタユニット４７が示してもよい。さらに、アクティビティメトリック値ｖａｒが、間隔［ｖａｒi-1，ｖａｒi）内にある画素に対して、フィルタ：ｇimが使用されるべきことを、エンコーダ５０のフィルタユニット４７は示してもよい。ここで、ｉ＝１，．．，Ｍ−２である。さらには、アクティビティメトリックｖａｒがｖａｒ＞ｖａｒM-2である画素に対して、フィルタ：ｇM-1mを使用すべきことを、エンコーダ５０のフィルタユニット４７は示すことができる。
【００７８】
前のコード化ユニットにおいて使用された、再構成されたフィルタ係数を使用して、フィルタ係数を予測できる。前のフィルタ係数を、ｆinと表すことができる。ここで、ｉ＝０，．．．．，Ｎ−１である。このケースでは、現在のフィルタの予測のために使用する１つ以上のフィルタを識別するために、コード化ユニットの数ｎを使用してもよく、数ｎは、エンコードされたビットストリームの一部としてデコーダに送られてもよい。さらには、予測コーディングが使用されるアクティビティメトリックｖａｒの値を識別するために、情報をエンコードして、デコーダに送信できる。
【００７９】
例えば、現在コード化されているフレームｍについて、アクティビティメトリック値［ｖａｒr-1，ｖａｒr）に対して係数：ｇrmが送信されると仮定する。フレームｍのフィルタ係数は、フレームｎのフィルタ係数から予測される。アクティビティメトリックが間隔［ｖａｒs-1，ｖａｒs）内にある画素に対して、フィルタｆsnがフレームｎ中で使用されると仮定する。ここで、ｖａｒs-1＝＝ｖａｒr-1であり、ｖａｒs＞ｖａｒrである。このケースでは、間隔［ｖａｒr-1，ｖａｒr）は、間隔［ｖａｒs-1，ｖａｒs）内に含まれている。さらに、アクティビティ値［ｖａｒt，ｖａｒt+1）に対してでなく、アクティビティ値［ｖａｒt-1，ｖａｒt）に対して、フィルタ係数の予測が使用されるべきことを示している情報をデコーダに送信してもよい。ここで、ｖａｒt-1＝＝ｖａｒr-1であり、ｖａｒt+1＝＝ｖａｒrである。
【００８０】
図４では、間隔［ｖａｒr-1−１，ｖａｒr）と、［ｖａｒs-1，ｖａｒs）と、［ｖａｒt-1，ｖａｒt）と、［ｖａｒt，ｖａｒt+1）との間の関係を図示している。このケースでは、間隔［ｖａｒt-1，ｖａｒt）中のアクティビティメトリックを有する画素をフィルタリングするために使用される、フィルタ係数：ｆtmの最終値は、係数：ｆsnおよびｇrmの合計に等しい。
【００８１】
したがって、
【数４】
0005405596.tif 000005
【００８２】
である。さらに、アクティビティメトリック［ｖａｒt，ｖａｒt+1）を有する画素に対して使用されるフィルタ係数：ｆt+1mは、フィルタ係数：ｇlmに等しい。したがって：
【数５】
0005405596.tif 000006
【００８３】
フィルタ係数ｇ（ｋ，ｌ）の大きさは、Ｋ値とｌ値とに依存する。通常、大きさが最大である係数は、係数ｇ（０，０）である。大きな大きさを持つことが予想される他の係数は、ｋまたはｌの値が０に等しい係数である。この現象を利用して、係数を送信するのに必要とされるビット量をさらに減少させることができる。インデックス値ｋおよびｌは、既知のフィルタサポート内の位置を規定できる。
【００８４】
パラメータｐにしたがって規定された、ゴロムコードまたは指数ゴロムコードのようなパラメータ化された可変長コードを使用して、それぞれのフレームｍに対する係数：ｇim（ｋ，ｌ）をコード化してもよい。ここで、ｉ＝０，．．．，Ｍ−１である。パラメータ化された可変長コードを規定する、パラメータｐの値を変えることによって、幅広い範囲のソース分布を効率的に表すために、これらのコードを使用することができる。係数ｇ（ｋ，ｌ）の分布（すなわち、大きい値または小さい値を持つ可能性）は、ｋおよびｌの値に依存する。したがって、コーディング効率を向上させるために、それぞれのフレームｍに対して、パラメータｐの値がそれぞれの対（ｋ，ｌ）のために送信される。エンコーディング係数：ｇim（ｋ，ｌ）であるときに、パラメータ化された可変長コーディングのために、パラメータｐを使用することができる。ここで、ｋ＝−Ｋ，．．．，Ｋであり、ｌ＝−Ｌ，．．．，Ｌである。
【００８５】
図５は、本開示と一致したエンコーディング技術を図示しているフロー図である。図５中に示したように、ビデオエンコーダ５０が、コード化ユニットの画素データをエンコードする（１０１）。コード化ユニットは、フレーム、スライス、ピクチャのグループ（ＧＯＰ）、または別の独立的にデコード可能なユニットを含んでいてもよい。画素データは、ビデオブロック中で配置されていてもよく、ビデオエンコーダ５０は、ＩＴＵ−Ｔ Ｈ．２６４または類似したブロックベースのビデオコーディング標準規格のような、ビデオエンコーディング標準規格にしたがって、ビデオブロックをエンコードすることによって、画素データをエンコードしてもよい。
【００８６】
ビデオエンコーディングプロセスの一部として、ビデオエンコーダ５０のフィルタユニット４７が、コード化ユニットの画素データをフィルタリングする１つ以上のフィルタを選択する（１０２）。このフィルタリングを使用して、異なるブロック間の端を平滑化することによって、ブロックノイズのアーティファクトを除去することができる。フィルタユニット４７をインループであるとして示しており、これは、後のビデオブロックの予測エンコーディングのために、フィルタリングされたデータを使用することを意味する。しかしながら、代替的に、フィルタユニット４７は、ポストフィルタリングを適用できるが、このケースでは、後のビデオブロックの予測エンコーディングのために、フィルタリングされていないデータが使用されるだろう。
【００８７】
フィルタユニット４７が、先に説明した、合計修正ラプラシアン値のようなアクティビティメトリックの異なる値に基づいてフィルタをエンコードする（１０３）。これを実行する際に、フィルタユニット４７は、アクティビティメトリックの第１の範囲において適用されるフィルタに対しては直接エンコーディングを使用し、アクティビティメトリックの第２の範囲において適用されるフィルタに対しては予測エンコーディングを使用する（１０３）。この方法では、フィルタユニット４７によって、アクティビティメトリックの異なる範囲に対して、異なるフィルタが適用されてもよく、アクティビティメトリックに基づいて異なるフィルタをエンコードするために、異なるタイプのエンコーディング（直接または予測）がフィルタユニット４７によって使用されてもよい。ビデオエンコーダ５０が、コード化ユニットに対する、エンコードされたビットストリームを出力する（１０４）。エンコードされたビットストリームは、エンコードされた画素データと、エンコードされたフィルタとを含む。エンコードされた画素データは、エントロピーコード化され、量子化され、変換された値として表してもよく、この値は、画素値を発生させるためにデコーダにおいてデコードされ得る。エンコードされたフィルタは、エントロピーコード化されたシンタックスによって表してもよく、シンタックスは、直接的にエンコードされたフィルタおよび／または予測的にコード化されたフィルタを含む。エンコードされたフィルタはまた、フィルタがどのようにエンコードされたかと、異なるフィルタが適用されるべきアクティビティメトリックの範囲とを識別するシグナリングシンタックスを含んでいてもよい。
【００８８】
２次元のフィルタサポートのサイズを変えるために適用される異なるセットのフィルタ係数によって、異なるフィルタを規定してもよい。アクティビティメトリックの第１の範囲に対して、セットのフィルタ係数のうちの１つ以上をフィルタ情報中に直接的にコード化し、アクティビティメトリックの第２の範囲に対して、セットのフィルタ係数のうちの１つ以上をフィルタ情報中に予測的にコード化する。代替的に、所定のフィルタに対して、異なるフィルタタイプおよび異なるセットのフィルタ係数を規定してもよい。ここで、アクティビティメトリックの第１の範囲に対して、フィルタ係数のセットのうちの１つ以上をフィルタ情報中に直接的にコード化してもよく、アクティビティメトリックの第２の範囲に対して、フィルタ係数のセットのうちの１つ以上をフィルタ情報中に予測的にコード化する。いくつかのケースでは、異なるフィルタは、類似した数のフィルタ係数を有することがある。しかしながら、他の例では、異なるフィルタは、異なる数のフィルタ係数と、異なるフィルタサポートとを規定するまったく異なるフィルタを含むこともある。
【００８９】
エンコードされたフィルタ情報は、特定のフィルタに関係するフレーム番号を識別する情報、特定のフィルタに関係するフレームタイプを識別する情報、特定のフィルタに関係するビデオブロックタイプを識別する情報、および／または特定のフィルタに関係する量子化パラメータを識別する情報を含んでいてもよい。特に、フィルタに対して予測コーディングを使用するときに、ビットストリーム中のフィルタを識別するために、これらのメカニズムまたはエレメント、あるいは、他のメカニズムまたはエレメントを使用してもよい。また、エンコードされたフィルタ情報は、どのようにフィルタがエンコードされたかと、異なるフィルタが適用されるべきアクティビティメトリックの範囲とを識別するシグナリングシンタックスも含んでいてもよい。
【００９０】
アクティビティメトリックの第２の範囲に対して、フィルタ情報は、予測的にコード化されているフィルタのうちの１つ以上を予測するために使用する基準データを識別する情報を含んでいてもよい。この基準データは、例えば、前のコード化ユニットまたは後続するコード化ユニットを識別する情報のような、ビットストリーム中の、前のフィルタまたは後続するフィルタを識別する情報であってもよい。このケースでは、前のコード化ユニットまたは後続するコード化ユニットを識別することによって、フィルタ情報は、前のコード化ユニットまたは後続するコード化ユニットに対して使用されるフィルタが、現在のフィルタの予測コーディングに使用されたことを意味する。したがって、フィルタ情報は、現在のフィルタと、前のコード化ユニットまたは後続するコード化ユニットのフィルタとの間の差分を示す差分値をさらに含んでいてもよい。現在のコード化ユニットに対する現在のフィルタ係数を発生させるために、基準データによって規定されているフィルタ係数に差分値を加算してもよい。フィルタの圧縮をさらに改善させるために、先に述べたように、パラメータ化された可変長コードを使用して、フィルタ係数をコード化してもよい。
【００９１】
図６は、本開示と一致した、デコーディング技術を図示しているフロー図である。図６中に示したように、ビデオデコーダ６０が、コード化ユニットに対する、エンコードされたビデオデータとエンコードされたフィルタとを含むエンコードされたビットストリームを受け取る（１１１）。ビデオデコーダ６０が、ビデオデータをデコードして、画素データを発生させる（１１２）。特に、ビデオデコーダ６０は、ＩＴＵ−Ｔ Ｈ．２６４ビデオ標準規格、または類似したブロックベースのビデオコーディング標準規格と一致した、ブロックベースのビデオ再構成を実行してもよい。
【００９２】
本開示にしたがうと、ビデオデコーダ６０が、直接デコーディングまたは予測デコーディングを使用してフィルタをデコードする（１１３）。特に、エントロピーデコーディングユニット５２によるエントロピーデコーディングに続いて、エンコードされたフィルタ情報がフィルタユニット５７に送られてもよい。フィルタユニット５７は、直接デコーディングまたは予測デコーディングのいずれかを使用してフィルタをデコードしてもよく、ビットストリームは、直接エンコーディングまたは予測デコーディングのいずれかを使用して、フィルタをどのように適切にデコードするかを（例えば、シンタックス情報を通して）フィルタユニット５７に知らせてもよい。その後、フィルタユニット５７が、デコードされた画素データに関係するアクティビティメトリックに基づいて、フィルタを選択的に適用する（１１４）。特に、アクティビティメトリックの第１の範囲に対しては、ビットストリーム中に直接的にエンコードされたフィルタが、フィルタユニット５７によって使用されてもよいのに対して、アクティビティメトリックの第２の範囲に対しては、ビットストリーム中に予測的にエンコードされたフィルタが、フィルタユニット５７によって使用されてもよい。
【００９３】
この方法では、画素のアクティビティメトリックに基づいてビデオエンコーダ５０によって適用されたフィルタは、アクティビティメトリックの、第１の範囲または第２の範囲に対してこのようなフィルタを使用するか否かに基づいて、直接エンコーディングまたは予測エンコーディングを使用して、ビットストリーム中にエンコードできる。その後、デコーダにおいて再構成されたデータが、エンコーダにおいて再構成されたデータと一致するように、ビデオデコーダ６０によって同じフィルタを適用してもよい。先に説明したように、アクティビティメトリックの、第１の範囲または第２の範囲に対してこのようなフィルタを使用するか否かに基づいて、フィルタに対して、異なるタイプのエンコーディングを使用することによって、改善したデータ圧縮を達成することができる。
【００９４】
詳細な説明を伝えるために、先述の開示は、ある程度、簡略化している。しかしながら、インプリメンテーションでは、コード化ユニット当たり多数のフィルタや、フィルタ当たり多数の係数や、フィルタのそれぞれが異なる範囲の分散に対して規定される多数の異なるレベルの分散が存在していることがある。例えば、いくつかのケースでは、それぞれのコード化ユニットに対して規定された１６以上のフィルタと、それぞれのフィルタに対応している１６の異なる範囲の分散とが存在していることがある。このケースでは、フィルタに対して、直接エンコーディングまたは予測エンコーディングが使用されるか否かを規定する、（アクティビティメトリックによって規定される）２つのより広い範囲の分散がさらに存在しているかもしれない。代替的に、または、これに加えて、アクティビティメトリックのそれぞれの分散の範囲は、直接または予測エンコーディングが使用されたか否かをデコーダに知らせる、ビットストリーム中の対応ビットを規定してもよい。
【００９５】
フィルタのそれぞれは、多くの係数を含んでいてもよい。１つの例示では、フィルタは、２次元に広がるフィルタサポートのために規定された８１個の異なる係数を持つ２次元のフィルタを含む。しかしながら、いくつかのケースにおいて、それぞれのフィルタに対して送信されるフィルタ係数の数は、８１個よりも少ないことがある。１次元または象限におけるフィルタ係数が、他の次元または象限における係数に関して、逆にされた値または対称値に対応し得るように、例えば、係数の対称性を課してもよい。係数の対象性により、８１個の異なる係数をより少ない係数によって表すことができるが、このケースでは、エンコーダおよびデコーダは、係数の、逆にされた値またはミラー値の係数が他の係数を規定すると仮定する。例えば、係数（５，−２，１０，１０，−２，５）をエンコードして、係数のサブセット（５，−２，１０）として送信してもよい。このケースでは、これらの３つの係数が、係数のより大きい対称セット（５，−２，１０，１０，−２，５）を規定していることを、デコーダは把握していてもよい。
【００９６】
本開示の技術は、ワイヤレスハンドセットや、集積回路（ＩＣ）または１セットのＩＣ（すなわち、チップセット）を含む、幅広いさまざまなデバイスまたは装置で実現してもよい。機能的態様を強調するために、任意のコンポーネント、モジュール、またはユニットについて記述したが、異なるハードウェアユニットによる実現に必ずしも必要ではない。
【００９７】
したがって、ここで記述した技術は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせで実現してもよい。ハードウェアで実現する場合、モジュール、ユニット、またはコンポーネントとして記述した、あらゆる機能は、集積ロジックデバイスにおいて一緒に実現してもよく、または、ディスクリートではあるが相互運用可能ロジックデバイスとして別々に実現してもよい。ソフトウェアで実現する場合、技術は、プロセッサにおいて実行されたときに、先に記述した方法のうちの１つ以上のものを実行する命令を含むコンピュータ読み取り可能媒体によって、少なくとも部分的に実現してもよい。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能記憶媒体を含んでいてもよく、コンピュータプログラムプロダクトの一部を形成していてもよく、コンピュータプログラムプロダクトは、パッケージングマテリアルを含んでいてもよい。コンピュータ読み取り可能記憶媒体は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）や、リードオンリーメモリ（ＲＯＭ）や、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）や、電気的消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）や、フラッシュメモリや、磁気記憶媒体または光データ記憶媒体や、これらに類するものを含んでいてもよい。さらに、または、代替的に、技術は、コンピュータ読み取り可能通信媒体によって少なくとも部分的に実現してもよく、コンピュータ読み取り可能通信媒体は、コードを命令またはデータ構造の形態で伝える、または、通信し、そして、コンピュータによってアクセス、読み取り、および／または実行することとができる。
【００９８】
コードは、１つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、または他の均等な集積回路またはディスクリートロジック回路のような、１つ以上のプロセッサによって実行されてもよい。したがって、ここで使用した「プロセッサ」という用語は、ここで記述した技術のインプリメンテーションに適した、先述した構造または他の何らかの構造のうちの任意のものを意味してもよい。さらに、いくつかの様態では、ここで記述した機能性は、エンコーディングおよびデコーディングのために構成されている、専用ソフトウェアモジュールまたはハードウェアモジュール内で提供してもよく、あるいは組み合わされたビデオコーデックに組み込んでもよい。また、技術は、１つ以上の回路または論理素子で完全に実現することができる。
【００９９】
本開示のさまざまな様態を記述した。これらの様態および他の様態は、特許請求の範囲の範囲内のものである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］ビデオデータをコード化する方法において、
前記ビデオデータのコード化ユニットの画素データをコード化することと、
前記画素データ上のフィルタリングプロセスに関係するフィルタ情報をコード化することとを含み、
前記フィルタ情報は、アクティビティメトリックの異なる値に基づいて、前記コード化ユニットに対して規定される異なるフィルタを含み、前記アクティビティメトリックの第１の範囲に対して、前記フィルタのうちの１つ以上は、前記フィルタ情報中に直接的にエンコードされ、前記アクティビティメトリックの第２の範囲に対して、前記フィルタのうちの１つ以上が、前記フィルタ情報中に予測的にエンコードされる方法。
［２］前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記アクティビティメトリックの第１の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に直接的にコード化され、前記アクティビティメトリックの第２の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に予測的にコード化される［１］記載の方法。
［３］前記ビデオデータをコード化することは、前記ビデオデータをエンコードすることを含み、前記画素データをコード化することは、エンコードされたビットストリーム中に前記画素データをエンコードすることを含み、前記フィルタ情報をコード化することは、前記フィルタ情報をエンコードすることを含み、前記方法は、前記エンコードされたビットストリームの一部として前記フィルタ情報を出力することをさらに含む［１］記載の方法。
［４］前記ビデオデータをコード化することは、前記ビデオデータをデコードすることを含み、前記画素データをコード化することは、前記画素データをエンコードされたビットストリームからデコードすることを含み、前記フィルタ情報をコード化することは、前記フィルタ情報をデコードすることを含み、前記方法は、前記エンコードされたビットストリームの一部として前記フィルタ情報を受信することをさらに含む［１］記載の方法。
［５］前記フィルタ情報は、
特定のフィルタに関係するフレーム番号を識別する情報と、
特定のフィルタに関係するフレームタイプを識別する情報と、
特定のフィルタに関係するビデオブロックタイプを識別する情報と、
特定のフィルタに関係する量子化パラメータを識別する情報とのうちの１つ以上をさらに含む［１］記載の方法。
［６］前記アクティビティメトリックの第２の範囲に対して、前記フィルタ情報は、予測的にコード化される前記フィルタのうちの前記１つ以上を予測するために使用される基準データを識別する情報を含む［１］記載の方法。
［７］前記アクティビティメトリックは、合計修正ラプラシアン値を含む［１］記載の方法。
［８］前記合計修正ラプラシアン値は、以下の式：
【数６】
0005405596.tif 000007
にしたがって近似的に規定されているｖａｒ（ｉ，ｊ）を含み、ここで、ｋは、−ＫからＫまでの合計の値を表し、ｌは、−ＫからＫまでにわたり、−ＬからＬまでにわたる２次元ウィンドウに対する−ＬからＬまでの合計の値を表し、ｉおよびｊは、前記画素データの画素座標を表し、Ｒ（ｉ，ｊ）は、座標ｉおよびｊにおける所定の画素値を表し、ｖａｒ（ｉ，ｊ）は、前記アクティビティメトリックである［７］記載の方法。
［９］前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記方法は、パラメータ化された可変長コードを使用して、前記フィルタ係数をコード化することをさらに含む［１］記載の方法。
［１０］前記コード化ユニットは、
ビデオフレームと、
ビデオフレームの部分と、
ピクチャのグループ（ＧＯＰ）とのうちの１つを含む［１］記載の方法。
［１１］ビデオデータをコード化する装置において、
前記ビデオデータのコード化ユニットの画素データをコード化し、
前記画素データ上のフィルタリングプロセスに関係するフィルタ情報をコード化するビデオコーダを具備し、
前記フィルタ情報は、アクティビティメトリックの異なる値に基づいて、前記コード化ユニットに対して規定される異なるフィルタを含み、前記アクティビティメトリックの第１の範囲に対して、前記フィルタのうちの１つ以上は、前記フィルタ情報中に直接的にエンコードされ、前記アクティビティメトリックの第２の範囲に対して、前記フィルタのうちの１つ以上が、前記フィルタ情報中に予測的にエンコードされる装置。
［１２］前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記アクティビティメトリックの第１の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に直接的にコード化され、前記アクティビティメトリックの第２の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に予測的にコード化される［１１］記載の装置。
［１３］前記装置は、前記ビデオデータをエンコードし、前記ビデオコーダは、エンコードされたビットストリーム中に前記画素データをエンコードし、前記フィルタ情報をエンコードし、前記エンコードされたビットストリームの一部として前記フィルタ情報を出力するエンコーダを備える［１１］記載の装置。
［１４］前記装置は、前記ビデオデータをデコードし、前記ビデオコーダは、エンコードされたビットストリームの一部として前記フィルタ情報を受信し、前記画素データを前記エンコードされたビットストリームからデコードし、前記フィルタ情報を前記エンコードされたビットストリームからデコードするデコーダを備える［１１］記載の装置。
［１５］前記フィルタ情報は、
特定のフィルタに関係するフレーム番号を識別する情報と、
特定のフィルタに関係するフレームタイプを識別する情報と、
特定のフィルタに関係するビデオブロックタイプを識別する情報と、
特定のフィルタに関係する量子化パラメータを識別する情報とのうちの１つ以上をさらに含む［１１］記載の装置。
［１６］前記アクティビティメトリックの第２の範囲に対して、前記フィルタ情報は、予測的にコード化される前記フィルタのうちの前記１つ以上を予測するために使用される基準データを識別する情報を含む［１１］記載の装置。
［１７］前記アクティビティメトリックは、合計修正ラプラシアン値を含む［１１］記載の装置。
［１８］前記合計修正ラプラシアン値は、以下の式：
【数７】
0005405596.tif 000008
にしたがって近似的に規定されているｖａｒ（ｉ，ｊ）を含み、ここで、ｋは、−ＫからＫまでの合計の値を表し、ｌは、−ＫからＫまでにわたり、−ＬからＬまでにわたる２次元ウィンドウに対する−ＬからＬまでの合計の値を表し、ｉおよびｊは、前記画素データの画素座標を表し、Ｒ（ｉ，ｊ）は、座標ｉおよびｊにおける所定の画素値を表し、ｖａｒ（ｉ，ｊ）は、前記アクティビティメトリックである［１７］記載の装置。
［１９］前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記ビデオコーダは、パラメータ化された可変長コードを使用して、前記フィルタ係数をコード化する［１１］記載の装置。
［２０］前記コード化ユニットは、
ビデオフレームと、
ビデオフレームの部分と、
ピクチャのグループ（ＧＯＰ）とのうちの１つを含む［１１］記載の装置。
［２１］前記ビデオコーダは、集積回路を備える［１１］記載の装置。
［２２］前記ビデオコーダは、マイクロプロセッサを備える［１１］記載の装置。
［２３］前記装置は、前記ビデオコーダを備えるワイヤレス通信デバイスを具備する［１１］記載の装置。
［２４］ビデオデータをコード化するデバイスにおいて、
前記ビデオデータのコード化ユニットの画素データをコード化する手段と、
前記画素データ上のフィルタリングプロセスに関係するフィルタ情報をコード化する手段とを具備し、
前記フィルタ情報は、アクティビティメトリックの異なる値に基づいて、前記コード化ユニットに対して規定される異なるフィルタを含み、前記アクティビティメトリックの第１の範囲に対して、前記フィルタのうちの１つ以上は、前記フィルタ情報中に直接的にエンコードされ、前記アクティビティメトリックの第２の範囲に対して、前記フィルタのうちの１つ以上が、前記フィルタ情報中に予測的にエンコードされるデバイス。
［２５］前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記アクティビティメトリックの第１の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に直接的にコード化され、前記アクティビティメトリックの第２の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に予測的にコード化される［２４］記載のデバイス。
［２６］前記ビデオデータをコード化する手段は、前記ビデオデータをエンコードする手段を備え、前記画素データをコード化する手段は、エンコードされたビットストリーム中に前記画素データをエンコードする手段を備え、前記フィルタ情報をコード化する手段は、前記フィルタ情報をエンコードする手段を備え、前記デバイスは、前記エンコードされたビットストリームの一部として前記フィルタ情報を出力する手段をさらに具備する［２４］記載のデバイス。
［２７］前記ビデオデータをコード化する手段は、前記ビデオデータをデコードする手段を備え、前記画素データをコード化する手段は、前記画素データをエンコードされたビットストリームからデコードする手段を備え、前記フィルタ情報をコード化する手段は、前記フィルタ情報をデコードする手段を備え、前記デバイスは、前記エンコードされたビットストリームの一部として前記フィルタ情報を受信する手段をさらに具備する［２４］記載のデバイス。
［２８］前記フィルタ情報は、
特定のフィルタに関係するフレーム番号を識別する情報と、
特定のフィルタに関係するフレームタイプを識別する情報と、
特定のフィルタに関係するビデオブロックタイプを識別する情報と、
特定のフィルタに関係する量子化パラメータを識別する情報とのうちの１つ以上をさらに含む［２４］記載のデバイス。
［２９］前記アクティビティメトリックの第２の範囲に対して、前記フィルタ情報は、予測的にコード化される前記フィルタのうちの前記１つ以上を予測するために使用される基準データを識別する情報を含む［２４］記載のデバイス。
［３０］前記アクティビティメトリックは、合計修正ラプラシアン値を含む［２４］記載のデバイス。
［３１］前記合計修正ラプラシアン値は、以下の式：
【数８】
0005405596.tif 000009
にしたがって近似的に規定されているｖａｒ（ｉ，ｊ）を含み、ここで、ｋは、−ＫからＫまでの合計の値を表し、ｌは、−ＫからＫまでにわたり、−ＬからＬまでにわたる２次元ウィンドウに対する−ＬからＬまでの合計の値を表し、ｉおよびｊは、前記画素データの画素座標を表し、Ｒ（ｉ，ｊ）は、座標ｉおよびｊにおける所定の画素値を表し、ｖａｒ（ｉ，ｊ）は、前記アクティビティメトリックである［３０］記載のデバイス。
［３２］
前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記デバイスは、パラメータ化された可変長コードを使用して、前記フィルタ係数をコード化する手段をさらに具備する［２４］記載のデバイス。
［３３］前記コード化ユニットは、
ビデオフレームと、
ビデオフレームの部分と、
ピクチャのグループ（ＧＯＰ）とのうちの１つを含む［２４］記載のデバイス。
［３４］命令を含むコンピュータ読み取り可能記憶媒体において、
前記命令は、プロセッサにおける実行のときに、
ビデオデータのコード化ユニットの画素データを前記プロセッサにコード化させる命令と、
前記画素データ上のフィルタリングプロセスに関係するフィルタ情報を前記プロセッサにコード化させる命令とを含み、
前記フィルタ情報は、アクティビティメトリックの異なる値に基づいて、前記コード化ユニットに対して規定される異なるフィルタを含み、前記アクティビティメトリックの第１の範囲に対して、前記フィルタのうちの１つ以上は、前記フィルタ情報中に直接的にエンコードされ、前記アクティビティメトリックの第２の範囲に対して、前記フィルタのうちの１つ以上が、前記フィルタ情報中に予測的にエンコードされるコンピュータ読み取り可能記憶媒体。
［３５］前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記アクティビティメトリックの第１の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に直接的にコード化され、前記アクティビティメトリックの第２の範囲に対して、フィルタ係数の前記セットのうちの１つ以上は、前記フィルタ情報中に予測的にコード化される［３４］記載のコンピュータ読み取り可能記憶媒体。
［３６］前記命令は、前記デバイスに、エンコードされたビットストリーム中に前記画素データをエンコードさせ、前記フィルタ情報をエンコードさせ、前記エンコードされたビットストリームの一部として前記フィルタ情報を出力させる［３４］記載のコンピュータ読み取り可能記憶媒体。
［３７］前記命令は、前記デバイスに、前記画素データをエンコードされたビットストリームからデコードさせ、前記エンコードされたビットストリームの一部として前記フィルタ情報を受信するときに、前記フィルタ情報をデコードさせる［３４］記載のコンピュータ読み取り可能記憶媒体。
［３８］前記フィルタ情報は、
特定のフィルタに関係するフレーム番号を識別する情報と、
特定のフィルタに関係するフレームタイプを識別する情報と、
特定のフィルタに関係するビデオブロックタイプを識別する情報と、
特定のフィルタに関係する量子化パラメータを識別する情報とのうちの１つ以上をさらに含む［３４］記載のコンピュータ読み取り可能記憶媒体。
［３９］前記アクティビティメトリックの第２の範囲に対して、前記フィルタ情報は、予測的にコード化される前記フィルタのうちの前記１つ以上を予測するために使用される基準データを識別する情報を含む［３４］記載のコンピュータ読み取り可能記憶媒体。
［４０］前記アクティビティメトリックは、合計修正ラプラシアン値を含む［３４］記載のコンピュータ読み取り可能記憶媒体。
［４１］前記合計修正ラプラシアン値は、以下の式：
【数９】
0005405596.tif 000010
にしたがって近似的に規定されているｖａｒ（ｉ，ｊ）を含み、ここで、ｋは、−ＫからＫまでの合計の値を表し、ｌは、−ＫからＫまでにわたり、−ＬからＬまでにわたる２次元ウィンドウに対する−ＬからＬまでの合計の値を表し、ｉおよびｊは、前記画素データの画素座標を表し、Ｒ（ｉ，ｊ）は、座標ｉおよびｊにおける所定の画素値を表し、ｖａｒ（ｉ，ｊ）は、前記アクティビティメトリックである［４０］記載のコンピュータ読み取り可能記憶媒体。
［４２］前記異なるフィルタは、異なるセットのフィルタ係数によって規定され、前記命令は、パラメータ化された可変長コードを使用して、前記フィルタ係数を前記プロセッサにコード化させる［３４］記載のコンピュータ読み取り可能記憶媒体。
［４３］前記コード化ユニットは、
ビデオフレームと、
ビデオフレームの部分と、
ピクチャのグループ（ＧＯＰ）とのうちの１つを含む［３４］記載のコンピュータ読み取り可能記憶媒体。
【図１】
0005405596.tif 000015
【図２】
0005405596.tif 000016
【図３】
0005405596.tif 000017
【図４】
0005405596.tif 000018
【図５】
0005405596.tif 000019
【図６】
0005405596.tif 000020