(57)【特許請求の範囲】
【請求項１】
ビデオコーディングプロセスにおいてビデオデータをフィルタ処理する方法であって、
ビデオデータのブロックを受信することと、ここで、前記ビデオデータのブロックが複数のサンプル値を含む、
適応ループフィルタ（ＡＬＦ）のための前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、ここで、前記ビデオデータのブロックのための前記１つまたは複数のフィルタ係数を判断することは、前記ＡＬＦのための１つまたは複数のＡＣ係数を判断することと、前記ＡＬＦのためのＤＣ係数を判断しないこととを含む、
前記１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、ここで、前記それぞれのオフセット値は、サンプル適応オフセット（ＳＡＯ）フィルタのためのものである、
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することと
を備える方法。
【請求項２】
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、ＳＡＯフィルタ適用なしと、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジと、１Ｄ４５度未満エッジと、１Ｄ１３５度超エッジと、中心帯フィルタと、側波帯フィルタとを含む、
請求項１に記載の方法。
【請求項３】
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジとを含む、請求項１に記載の方法。
【請求項４】
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックのための方向性アクティビティを判断することを含み、ＳＡＯフィルタモードを選択することは、前記方向性アクティビティに少なくとも部分的に基づいてＳＡＯフィルタモードを選択することを含む、
請求項３に記載の方法。
【請求項５】
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックの方向性アクティビティに基づいて前記ビデオデータのブロックのための分類を判断することを含み、それぞれのオフセット値を判断することは、前記分類が小さい方向性アクティビティを示すときにＳＡＯフィルタを適用しないと判断することを含む、
請求項１に記載の方法。
【請求項６】
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することは、前記１つまたは複数のフィルタ係数を重み値として使用し、それぞれのサンプル値に前記それぞれのオフセット値を加算することによって、前記ビデオデータのブロック中の前記サンプルのうちの前記１つまたは複数の前記値を調整することを含む、
請求項１に記載の方法。
【請求項７】
前記ビデオデータのブロックは、ビデオデータのサンプル値ブロックの４×４アレイである、
請求項１に記載の方法。
【請求項８】
前記ビデオデータのブロックは、ビデオフレームの１６個の領域のうちの１つである、請求項１に記載の方法。
【請求項９】
予測技法を使用して前記ビデオデータのブロックを符号化することと、符号化ビットストリーム中で前記１つまたは複数のフィルタ係数とそれぞれのオフセット値とをシグナリングすることとをさらに備える、
請求項１に記載の方法。
【請求項１０】
符号化ビットストリームから前記ビデオデータのブロックを復号することをさらに備え、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することは、符号化ビットストリームから前記それぞれのオフセット値を復号することを含む、請求項１に記載の方法。
【請求項１１】
ビデオコーディングプロセスにおいてビデオデータをフィルタ処理するように構成される装置であって、
ビデオデータのブロックを受信するための手段と、ここで、前記ビデオデータのブロックは、複数のサンプル値を含む、
適応ループフィルタ（ＡＬＦ）のための前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断するための手段と、ここで、前記ビデオデータのブロックのための前記１つまたは複数のフィルタ係数を判断するための手段は、前記ＡＬＦのためのＤＣ係数を判断することなしに前記ＡＬＦのための１つまたは複数のＡＣ係数を判断するための手段を含む、
前記１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断するための手段と、ここで、前記それぞれのオフセット値は、サンプル適応オフセット（ＳＡＯ）フィルタのためのものである、
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理するための手段とを備える装置。
【請求項１２】
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、ＳＡＯフィルタ適用なしと、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジと、１Ｄ４５度未満エッジと、１Ｄ１３５度超エッジと、中心帯フィルタと、側波帯フィルタとを含む、
請求項１１に記載の装置。
【請求項１３】
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジとを含む、請求項１１に記載の装置。
【請求項１４】
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックのための方向性アクティビティを判断することを含み、ＳＡＯフィルタモードを選択することは、前記方向性アクティビティに少なくとも部分的に基づいてＳＡＯフィルタモードを選択することを含む、
請求項１３に記載の装置。
【請求項１５】
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックの方向性アクティビティに基づいて前記ビデオデータのブロックのための分類を判断することを含み、それぞれのオフセット値を判断することは、前記分類が小さい方向性アクティビティを示すときにＳＡＯフィルタを適用しないと判断することを含む、
請求項１１に記載の装置。
【請求項１６】
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することは、前記１つまたは複数のフィルタ係数を重み値として使用し、それぞれのサンプル値に前記それぞれのオフセット値を加算することによって、前記ビデオデータのブロック中の前記サンプルのうちの前記１つまたは複数の前記値を調整することを含む、
請求項１１に記載の装置。
【請求項１７】
前記ビデオデータのブロックは、ビデオデータのサンプル値ブロックの４×４アレイである、
請求項１１に記載の装置。
【請求項１８】
前記ビデオデータのブロックは、ビデオフレームの１６個の領域のうちの１つである、請求項１１に記載の装置。
【請求項１９】
予測技法を使用して前記ビデオデータのブロックを符号化するための手段と、符号化ビットストリーム中で前記１つまたは複数のフィルタ係数とそれぞれのオフセット値とをシグナリングするための手段とをさらに備える、
請求項１１に記載の装置。
【請求項２０】
符号化ビットストリームから前記ビデオデータのブロックを復号するための手段をさらに備え、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することは、符号化ビットストリームから前記それぞれのオフセット値を復号することを含む、請求項１１に記載の装置。
【請求項２１】
ビデオコーダを備えるデバイスであって、前記ビデオコーダは、
ビデオデータのブロックを受信することと、ここで、前記ビデオデータのブロックは、複数のサンプル値を含む、
適応ループフィルタ（ＡＬＦ）のための前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、ここで、前記ビデオデータのブロックのための前記１つまたは複数のフィルタ係数を判断することは、前記ＡＬＦのための１つまたは複数のＡＣ係数を判断することと、前記ＡＬＦのためのＤＣ係数を判断しないこととを含む、
前記１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、ここで、前記それぞれのオフセット値は、サンプル適応オフセット（ＳＡＯ）フィルタのためのものである、
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することと
を行うように構成される、デバイス。
【請求項２２】
それぞれのオフセット値を判断するように構成されることは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、ＳＡＯフィルタ適用なしと、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジと、１Ｄ４５度未満エッジと、１Ｄ１３５度超エッジと、中心帯フィルタと、側波帯フィルタとを含む、
請求項２１に記載のデバイス。
【請求項２３】
それぞれのオフセット値を判断するように構成されることは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジとを含む、
請求項２１に記載のデバイス。
【請求項２４】
１つまたは複数のフィルタ係数を判断するように構成されることは、前記ビデオデータのブロックのための方向性アクティビティを判断することを含み、ＳＡＯフィルタモードを選択するように構成されることは、前記方向性アクティビティに少なくとも部分的に基づいてＳＡＯフィルタモードを選択することを含む、
請求項２３に記載のデバイス。
【請求項２５】
１つまたは複数のフィルタ係数を判断するように構成されることは、前記ビデオデータのブロックの方向性アクティビティに基づいて前記ビデオデータのブロックのための分類を判断することを含み、それぞれのオフセット値を判断することは、前記分類が小さい方向性アクティビティを示すときにＳＡＯフィルタを適用しないと判断することを含む、請求項２１に記載のデバイス。
【請求項２６】
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理するように構成されることは、前記１つまたは複数のフィルタ係数を重み値として使用し、それぞれのサンプル値に前記それぞれのオフセット値を加算することによって、前記ビデオデータのブロック中の前記サンプルのうちの前記１つまたは複数の前記値を調整することを含む、
請求項２１に記載のデバイス。
【請求項２７】
前記ビデオデータのブロックは、ビデオデータのサンプル値ブロックの４×４アレイである、
請求項２１に記載のデバイス。
【請求項２８】
前記ビデオデータのブロックは、ビデオフレームの１６個の領域のうちの１つである、請求項２１に記載のデバイス。
【請求項２９】
前記ビデオコーダは、ビデオエンコーダを備え、予測技法を使用して前記ビデオデータのブロックを符号化することと、符号化ビットストリーム中で前記１つまたは複数のフィルタ係数とそれぞれのオフセット値とをシグナリングすることとを行うようにさらに構成される、
請求項２１に記載のデバイス。
【請求項３０】
前記ビデオコーダは、ビデオデコーダを備え、前記ビデオデコーダは、符号化ビットストリームから前記ビデオデータのブロックを復号するように構成され、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断するように構成されることが、符号化ビットストリームから前記それぞれのオフセット値を復号することを含む、
請求項２１に記載のデバイス。
【請求項３１】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されると、
ビデオデータのブロックを受信することと、ここで、前記ビデオデータのブロックが複数のサンプル値を含む、
適応ループフィルタ（ＡＬＦ）のための前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、ここで、前記ビデオデータのブロックのための前記１つまたは複数のフィルタ係数を判断することは、前記ＡＬＦのための１つまたは複数のＡＣ係数を判断することと、前記ＡＬＦのためのＤＣ係数を判断しないこととを含む、
前記１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、ここで、前記それぞれのオフセット値は、サンプル適応オフセット（ＳＡＯ）フィルタのためのものである、
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することと
をビデオコーディングデバイスの１つまたは複数のプロセッサに行わせる、非一時的コンピュータ可読記憶媒体。
【請求項３２】
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、ＳＡＯフィルタ適用なしと、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジと、１Ｄ４５度未満エッジと、１Ｄ１３５度超エッジと、中心帯フィルタと、側波帯フィルタとを含む、
請求項３１に記載の非一時的コンピュータ可読記憶媒体。
【請求項３３】
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジとを含む、請求項３１に記載の非一時的コンピュータ可読記憶媒体。
【請求項３４】
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックのための方向性アクティビティを判断することを含み、ＳＡＯフィルタモードを選択することは、前記方向性アクティビティに少なくとも部分的に基づいてＳＡＯフィルタモードを選択することを含む、
請求項３３に記載の非一時的コンピュータ可読記憶媒体。
【請求項３５】
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックの方向性アクティビティに基づいて前記ビデオデータのブロックのための分類を判断することを含み、それぞれのオフセット値を判断することは、前記分類が小さい方向性アクティビティを示すときにＳＡＯフィルタを適用しないと判断することを含む、
請求項３１に記載の非一時的コンピュータ可読記憶媒体。
【請求項３６】
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することは、前記１つまたは複数のフィルタ係数を重み値として使用し、それぞれのサンプル値に前記それぞれのオフセット値を加算することによって、前記ビデオデータのブロック中の前記サンプルのうちの前記１つまたは複数の前記値を調整することを含む、
請求項３１に記載の非一時的コンピュータ可読記憶媒体。
【請求項３７】
前記ビデオデータのブロックは、ビデオデータのサンプル値ブロックの４×４アレイである、
請求項３１に記載の非一時的コンピュータ可読記憶媒体。
【請求項３８】
前記ビデオデータのブロックは、ビデオフレームの１６個の領域のうちの１つである、請求項３１に記載の非一時的コンピュータ可読記憶媒体。
【請求項３９】
前記命令が、実行されると、予測技法を使用して前記ビデオデータのブロックを符号化することと、符号化ビットストリーム中で前記１つまたは複数のフィルタ係数とそれぞれのオフセット値とをシグナリングすることとをビデオコーディングデバイスにさらに行わせる、
請求項３１に記載の非一時的コンピュータ可読記憶媒体。
【請求項４０】
前記命令が、実行されると、符号化ビットストリームから前記ビデオデータのブロックを復号することをビデオコーディングデバイスにさらに行わせ、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することが、符号化ビットストリームから前記それぞれのオフセット値を復号することを含む、
請求項３１に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、その全体が参照により本明細書に組み込まれる、２０１１年１０月１３日に出願された米国仮出願第６１／５４６，９２５号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングプロセスにおいてサンプル適応オフセットプロセスと適応ループフィルタプロセスとを実行するための技法に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）によって定義された規格、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を含む。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測、あるいは他の参照フレーム中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。
【０００５】
インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。最初は２次元アレイに構成される、量子化された変換係数は、特定の順序でスキャンされて、エントロピーコーディングのための変換係数の１次元ベクトルが生成され得る。
【発明の概要】
【０００６】
概して、本開示では、ビデオデータをコーディングするための技法について説明する。特に、本開示では、ビデオコーディングプロセスにおいてサンプル適応オフセット（ＳＡＯ：sample adaptive offset）プロセスと適応ループフィルタ（ＡＬＦ：adaptive loop filter）プロセスとを実行するための技法について説明する。適応ループフィルタは、ＳＡＯオフセット値が、適応ループフィルタのＡＣ係数に関連する値に少なくとも部分的に基づくように、オフセット値のＳＡＯ判断とマージされ得る。
【０００７】
本開示の一例によれば、ビデオデータをフィルタ処理する方法は、ビデオデータのブロックを受信することであって、ビデオデータのブロックが複数のサンプル値を含む、受信することと、ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、判断された１つまたは複数のフィルタ係数と判断されたそれぞれのオフセット値とに基づいてビデオデータのブロックをフィルタ処理することとを備える。
【０００８】
本開示の別の例によれば、ビデオデータをフィルタ処理するように構成される装置は、ビデオデータのブロックを受信するための手段であって、ビデオデータのブロックが複数のサンプル値を含む、受信するための手段と、ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断するための手段と、１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、複数のサンプル値の各々のためのそれぞれのオフセット値を判断するための手段と、判断された１つまたは複数のフィルタ係数と判断されたそれぞれのオフセット値とに基づいてビデオデータのブロックをフィルタ処理するための手段とを備える。
【０００９】
本開示の別の例によれば、デバイスは、ビデオデータのブロックを受信することであって、ビデオデータのブロックが複数のサンプル値を含む、受信することと、ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、判断された１つまたは複数のフィルタ係数と判断されたそれぞれのオフセット値とに基づいてビデオデータのブロックをフィルタ処理することとを行うように構成されるビデオコーダを備える。
【００１０】
本開示の別の例によれば、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオデータのブロックを受信することであって、ビデオデータのブロックが複数のサンプル値を含む、受信することと、ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、判断された１つまたは複数のフィルタ係数と判断されたそれぞれのオフセット値とに基づいてビデオデータのブロックをフィルタ処理することとをビデオコーディングデバイスの１つまたは複数のプロセッサに行わせる命令を記憶している。
【００１１】
１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】ＳＡＯフィルタ処理のための４つの可能なエッジオフセット分類を示す概念図。
【図２】ＳＡＯフィルタ処理のための２つの可能なエッジオフセット分類を示す概念図。
【図３】ＳＡＯフィルタ処理のための例示的な帯域オフセットタイプを示す概念図。
【図４】適応ループフィルタのための領域ベースの分類を示す概念図。
【図５】適応ループフィルタのためのブロックベースの分類を示す概念図。
【図６】例示的なビデオ符号化および復号システムを示すブロック図。
【図７】例示的なビデオエンコーダを示すブロック図。
【図８Ａ】区分されたピクチャまたはビデオフレームの例を示す概念図。
【図８Ｂ】区分されたピクチャまたはビデオフレームの例を示す概念図。
【図９】ビデオエンコーダ中に含まれる例示的なＳＡＯ／ＡＬＦモジュールを示すブロック図。
【図１０】本開示の技法に従ってビデオデータをフィルタ処理する一例を示すフローチャート。
【図１１】例示的なビデオデコーダを示すブロック図。
【図１２】ビデオデコーダ中に含まれる例示的なＳＡＯ／ＡＬＦモジュールを示すブロック図。
【図１３】本開示の技法に従ってビデオデータをフィルタ処理する一例を示すフローチャート。
【発明を実施するための形態】
【００１３】
概して、本開示では、ビデオデータをコーディングするための技法について説明する。本開示では、ビデオコーディングプロセスにおいてサンプル適応オフセットプロセスと適応ループフィルタプロセスとを実行するための技法について説明する。ある場合には、ＳＡＯがＤＣオフセットをすでに使用しているので、ＡＬＦにおけるＤＣ係数オフセットは冗長であり得る。さらに、ＳＡＯは、一般にＡＬＦを適用する前に実行されるので、追加のエンコーダフレーム遅延が生じ得る。この点から見て、本開示は、ＳＡＯフィルタ処理技法をＡＬＦフィルタ処理技法と組み合わせるためのいくつかの技法を提案する。
【００１４】
デジタルビデオデバイスは、デジタルビデオ情報をより効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮技法はビデオコーディング規格に従って定義され得る。ビデオコーディング規格の例としては、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびスケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）拡張とを含む、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４がある。さらに、ＩＴＵ−Ｔビデオコーディングエキスパーツグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣモーションピクチャエキスパーツグループ（ＭＰＥＧ：Motion Picture Experts Group）とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって開発されている新しいビデオコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）がある。
【００１５】
ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）と呼ばれるビデオコーディングデバイスのモデルに基づく。ＨＭは、他の前のビデオコーディング規格、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣの開発中に利用可能なビデオコーディングデバイスに対する現在のビデオコーディングデバイスの能力の改善が開発されたと仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＥＶＣは３５個ものイントラ予測符号化モードを提供する。「ＨＥＶＣワーキングドラフト４」または「ＷＤ４」と呼ばれるＨＥＶＣの最近のワーキングドラフト（ＷＤ）が、文書ＪＣＴＶＣ−Ｆ８０３＿ｄ２、Ｂｒｏｓｓら、「WD4: Working Draft 4 of High-Efficiency Video Coding (HEVC)」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）、第６回会合：トリノ、イタリア、２０１１年７月に記載されている。さらに、ＨＥＶＣの別の最近のワーキングドラフト、ワーキングドラフト８が、文書ＨＣＴＶＣ−Ｊ１００３＿ｄ７、Ｂｒｏｓｓら、「High Efficiency Video Coding (HEVC) Text Specification Draft 8」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）、第１０回会合：ストックホルム、スウェーデン、２０１２年７月１１〜２０日に記載されている。ＨＥＶＣ規格は、ＨＥＶＣの配信されたバージョンの標準番号であることが意図された、ＩＳＯ／ＩＥＣ  ２３００８−ＨＥＶＣと呼ばれることもある。
【００１６】
ＨＥＶＣ  ＷＤ４などのビデオコーディング規格に従って動作する典型的なビデオエンコーダは、元のビデオシーケンスの各フレームを、「ブロック」または「コーディングユニット」と呼ばれる連続矩形領域に区分する。これらのブロックは、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的（フレーム内）予測および／または時間的（フレーム間）予測技法を適用することによって符号化され得る。空間的予測は「イントラモード」（Ｉモード）と呼ばれることがあり、時間的予測は「インターモード」（ＰモードまたはＢモード）と呼ばれることがある。
【００１７】
インターモードでは、エンコーダは、最初に、コーディングされるべきブロックと同様であるブロックの（Ｆrefによって示される）「参照フレーム」を探索する。フレーム内でコーディングされるべきブロックのロケーションは（ｘ，ｙ）によって示され得る。探索は、概して、符号化されるべきブロックからある空間変位以下になるように制限される。最良の一致、すなわち、予測ブロックまたは「予測」が識別されたとき、それは２次元（２Ｄ）動きベクトル（Δｘ，Δｙ）の形式で表現され得、ただし、Δｘは、コーディングされるべきブロックの位置に対する参照フレーム中の予測ブロックの位置の水平変位であり、Δｙはその垂直変位である。動きベクトルは、参照フレームとともに、以下のように予測ブロックＦpredを構成するために使用される。
【数１】
0005922244.tif 000002
【００１８】
イントラモードで符号化されたブロックの場合、予測ブロックは、コーディングされるべきブロックと同じフレーム内の前に符号化された隣接ブロックからの空間的予測を使用して形成される。
【００１９】
ＩモードとＰまたはＢモードの両方の場合、予測誤差、すなわち、符号化されているブロック中のピクセル値と予測ブロックとの間の差分は、離散コサイン変換（ＤＣＴ）など、何らかの離散変換の重み付けされた基底関数のセットとして表され得る。変換は、４×４、８×８または１６×１６およびそれ以上など、ブロックの様々なサイズに基づいて実行され得る。また、たとえば、１６×４、３２×８などの変換ブロックサイズをもつ、矩形形状変換ブロックが使用され得る。その後、重み（すなわち、変換係数）は量子化され得る。量子化係数は元の変換係数よりも低い精度を有し得る。したがって、量子化は情報の損失をもたらし得る。量子化パラメータ（ＱＰ：quantization parameter）が量子化係数の精度のレベルを決定し得る。
【００２０】
これらの量子化係数、および動きベクトルなどのシンタックス要素、さらに何らかの制御情報は、ビデオシーケンスのコード化表現を形成し得る。さらに、量子化係数、シンタックス要素および制御情報はまた、エントロピーコーディングされ、それによって、それらの表現のために必要とされるビット数がさらに低減され得る。エントロピーコーディングは、確率分布に基づいて送信または記憶されるシンボルを表すために必要とされるビット数を最小限に抑えること（すなわち、それらが生じる頻度に基づいてシンボルをコーディングすること）を目的としたロスレス演算である。圧縮比、すなわち、コーディングされたビデオシーケンスを表すために使用されるビット数に対する、元のシーケンスを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるＱＰの値を調整することによって制御され得る。ただし、値ＱＰを調整すると、コーディングされたビデオシーケンスの視覚的品質が影響を受け得る。圧縮比はまた、採用されたエントロピーコーディングの方法に依存し得る。デコーダにおいて、復号されるべき現在フレーム中のブロックは、識別された予測ブロックに予測誤差を加算することによって再構成され得る。コーディングプロセスにおける情報損失により、場合によっては、再構成されたフレームは元のフレームと異なり得る。再構成されたフレームと元のフレームとの間の差分は再構成誤差と呼ばれる。
【００２１】
一例として、ＨＥＶＣに従うビデオコーディングでは、ビデオフレームはコーディングユニットに区分され得る。コーディングユニット（ＣＵ：coding unit）は、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。ＣＵは、通常、Ｙとして示されるルミナンス成分と、ＵおよびＶとして示される２つのクロマ成分とを有する。２つのクロマ成分はＣbおよびＣrで示されることもある。ビデオサンプリングフォーマットが、ルーマサンプルの数に対するクロマサンプルの数を定義し得る。いくつかのビデオサンプリングフォーマットでは、クロマサンプルの数は、ルーマサンプルの数と同じであるか、またはそれとは異なり得る。ＣＵは、一般に方形であり、たとえば、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４などの他のビデオコーディング規格に記載されているいわゆる「マクロブロック」と同様であると見なされ得る。本出願では、例示のために、開発中のＨＥＶＣ規格の現在提案されている態様のいくつかに従うコーディングについて説明する。ただし、本開示で説明する技法はまた、ＩＴＵ−Ｔ  Ｈ．２６４または他の規格に従って定義されるビデオコーディングプロセスあるいはプロプライエタリビデオコーディングプロセスなど、他のビデオコーディングプロセスのために有用であり、それらのプロセスに適用され得る。
【００２２】
ＨＥＶＣによれば、ＣＵは、１つまたは複数の予測ユニット（ＰＵ：prediction unit）および／または１つまたは複数の変換ユニット（ＴＵ：transform unit）を含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大ＣＵである最大コーディングユニット（ＬＣＵ：largest coding unit）を定義し得る。概して、ＣＵは、ＣＵがサイズの差異を有しないことを除いて、Ｈ．２６４のマクロブロックと同様の目的を有する。したがって、ＬＣＵはサブＣＵに分割され得、各サブＣＵはさらにサブＣＵに分割され得る。さらに、ＣＵは、予測のために予測ＰＵに区分され得る。ＰＵは、対応するＣＵの全部または一部分を表し得、そのＰＵの参照サンプルを取り出すためのデータを含み得る。ＰＵは方形または矩形の形状を有し得る。ＴＵは、変換係数を生成するように変換され得る、ピクセル差分値またはピクセル残差のセットを表す。ビットストリームのシンタックスデータは、ＣＵ深度と呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。本開示ではまた、ＣＵ、ＰＵ、またはＴＵのいずれかを指すために「ブロック」、「パーティション」、または「部分」という用語を使用する。概して、「部分」は、ビデオフレームの任意のサブセットを指し得る。
【００２３】
さらに、ＨＥＶＣ  ＷＤ４は、サンプル適応オフセット（ＳＡＯ）コーディング技法を記載している。追加のＳＡＯコーディング技法が、ＨＥＶＣ規格への可能性がある包含のために提案されている。１つの例示的なＳＡＯコーディング技法が、Ｃ．−Ｍ．  Ｆｕ、Ｃ．−Ｙ．  Ｃｈｅｎ、Ｃ．−Ｙ．  Ｔｓａｉ、Ｙ．−Ｗ．  Ｈｕａｎｇ、Ｓ．  Ｌｅｉ、「CE13: Sample Adaptive Offset with LCU-Independent Decoding」、ＪＣＴ−ＶＣ  Ｃｏｎｔｒｉｂｕｔｉｏｎ、Ｅ０４９、ジュネーブ、２０１１年３月（以下、「ＪＣＴ−ＶＣ  Ｅ０４９」）に記載されている。概して、ＳＡＯコーディング技法は、ビデオフレーム中のピクセルにオフセット値を加算するフィルタ処理技法である。場合によっては、オフセット値は、再構成されたビデオフレーム中のピクセルに加算され得る。オフセット値をもつ再構成されたフレームはさらに、参照ビデオフレームとして使用されおよび／またはディスプレイに出力され得る。ＳＡＯ技法は、他のフィルタ処理技法と併せてビデオエンコーダまたはデコーダの「ループ内」フィルタブロック中で実行され得る。
【００２４】
上記で説明したように、予測コーディングは再構成誤差を生じ得る。概して、再構成されたビデオフレーム中のピクセルへのオフセット値の加算は、ビデオシーケンスのフレーム間の照明変化中の（たとえば、フレーム間の閃光、暗くなる空、または他のタイプの照明変化などの間の）コーディングを改善し得る。そのような照明変化は、フレーム中のピクセルの領域にわたって比較的均一な強度変化を加え得る。ＳＡＯ技法は、ＳＡＯ技法の使用によって改善される照明変化または他のビデオコーディング状態を補償するように予測ビデオブロックの値をバイアスするために、予測ビデオブロックのピクセルにオフセット値を適用し得る。ＳＡＯ技法は、分類メトリックに従ってピクセルを分類することによってピクセルへのオフセット値を判断し、適用し得る。分類メトリックは、ピクセル分類またはオフセットタイプと呼ばれることもある。さらに、分類メトリックに従ってピクセルを分類した結果は、オフセットタイプ、ピクセルオフセットタイプ、カテゴリーまたはピクセルカテゴリーと呼ばれることもある。可能な分類メトリックは、エッジメトリックおよび帯域メトリックなど、アクティビティメトリックを含む。
【００２５】
いくつかのＳＡＯ技法は複数のピクセル分類技法を含む。いくつかのビデオコーディング規格は、フレームごとに適用され得る異なるピクセル分類の数を制限し得る（たとえば、フレームごとに１つの技法）が、他のビデオコーディング規格は、異なるピクセル分類がブロックごとにまたはピクセルごとに適用されることを可能にすることによってさらなるフレキシビリティを可能にし得る。適用されることを可能にされたピクセル分類タイプの数と、異なるピクセル分類がビデオフレーム中に適用されることを可能にされた頻度とは、コーディング効率に影響を及ぼし得ることに留意されたい。
【００２６】
ＨＥＶＣ  ＷＤ４は、（ＬＣＵのセットからなる）各パーティションが、オフセットなし、エッジ分類ベースタイプ、および帯域分類ベースオフセットタイプという３つのピクセル分類のうちの１つを有することができる、ＨＥＶＣのための可能なＳＡＯ実装形態を記載している。さらに、エッジ分類ベースタイプは、（分類０のＳＡＯエッジオフセットまたはＳＡＯ＿ＥＯ＿０とも呼ばれる）１Ｄ０度エッジ、（分類１のＳＡＯエッジオフセットまたはＳＡＯ＿ＥＯ＿１とも呼ばれる）１Ｄ９０度エッジ、（分類２のＳＡＯエッジオフセットまたはＳＡＯ＿ＥＯ＿２とも呼ばれる）１Ｄ１３５度エッジ、および（分類３のＳＡＯエッジオフセットまたはＳＡＯ＿ＥＯ＿３とも呼ばれる）１Ｄ４５度エッジという４つのエッジオフセット分類を含む。帯域分類ベースオフセットタイプは、中心帯および側波帯という２つの帯域オフセットタイプ分類を含む。
【００２７】
エッジ分類ベースタイプＳＡＯ技法は、エッジ情報に基づいてパーティション内の各ピクセルを分類する。図１は、４つの可能なエッジオフセット分類を示す概念図である。ＪＣＴ−ＶＣ  Ｅ０４９が、上述の４つのエッジオフセットタイプ分類を含むエッジ分類技法の一例を記載している。図１に示す所与のエッジ分類について、現在ピクセルのエッジタイプは、現在ピクセル（Ｃ）の値を隣接ピクセル（１および２）の値と比較することによって計算される。いくつかの例では、ピクセル値は、２５６個の可能な値を含む８ビットストリング、または１０２４個の可能な値を含む１０ビットストリングであり得る。ＳＡＯ＿ＥＯ＿０では、現在ピクセルは左および右のネイバーピクセルと比較される。ＳＡＯ＿ＥＯ＿１では、現在ピクセルは上および下のネイバーピクセルと比較される。ＳＡＯ＿ＥＯ＿２では、現在ピクセルは左上および右下のネイバーピクセルと比較される。ＳＡＯ＿ＥＯ＿３では、現在ピクセルは左下および右上のネイバーピクセルと比較される。
【００２８】
最初に、現在ピクセルのエッジタイプは０であると仮定される。現在ピクセルＣの値が左と右のネイバーピクセル（１と２）の両方の値に等しい場合、エッジタイプは０にあるままである。現在ピクセルＣの値がネイバーピクセル１の値よりも大きい場合、エッジタイプは１だけ増加される。現在ピクセルＣの値がネイバーピクセル１の値よりも小さい場合、エッジタイプは１だけ減少される。同様に、現在ピクセルＣの値がネイバーピクセル２の値よりも大きい場合、エッジタイプは１だけ増加され、現在ピクセルＣの値がネイバーピクセル２の値よりも小さい場合、エッジタイプは１だけ減少される。
【００２９】
したがって、現在ピクセルＣは、−２、−１、０、１、または２のいずれかのエッジタイプを有し得、（１）現在ピクセルＣの値がネイバーピクセル１とネイバーピクセル２の両方の値よりも小さい場合、エッジタイプは−２であり、（２）現在ピクセルＣの値が１つのネイバーピクセルよりも小さいが他のネイバーピクセルに等しい場合、エッジタイプは−１であり、（３）現在ピクセルＣの値が両方のネイバーピクセルと同じ場合、または現在ピクセルＣの値が１つのネイバーピクセルよりも大きいが他のネイバーピクセルよりも小さい場合、エッジタイプは０であり、（４）現在ピクセルＣの値が１つのネイバーピクセルよりも大きいが他のネイバーピクセルに等しい場合、エッジタイプは１であり、（５）現在ピクセルＣの値がネイバーピクセル１とネイバーピクセル２の両方の値よりも大きい場合、エッジタイプは２である。隣接するピクセル１およびピクセル２のうちの一方が利用可能でない（すなわち、現在ピクセルＣがフレームまたはパーティションのエッジに位置する）とき、デフォルトエッジタイプが定義され得ることに留意されたい。
【００３０】
上記の説明に鑑みて、各エッジオフセット分類について、エッジタイプ値が以下の式を用いて計算され得る。
【数２】
0005922244.tif 000003
【００３１】
現在ピクセルのエッジタイプが判断されると、現在ピクセルのオフセット値が判断され得る。オフセット値は、元のビデオフレームと再構成されたビデオフレームとの間の差分に基づく。一例では、各非０エッジタイプ値（すなわち、−２、−１、１、および２）は、元のピクセルの値と、パーティション中の各カテゴリーに属する再構成されたピクセルの値との間の差分の平均を取ることによって計算される１つのオフセット値を有する。４つのオフセット値は、ｅｏｆｆｓｅｔ-2、ｅｏｆｆｓｅｔ-1、ｅｏｆｆｓｅｔ1、およびｅｏｆｆｓｅｔ2として示され得る。ｅｏｆｆｓｅｔ-2、ｅｏｆｆｓｅｔ-1、ｅｏｆｆｓｅｔ1、およびｅｏｆｆｓｅｔ2の各々は、ビデオデコーダにおいて入手可能でない元のビデオフレームに基づくので、ビデオデコーダは、元のビデオフレームの依拠することなしにこれらの４つのオフセット値を導出するための機構を含む。
【００３２】
図１に示す４つのオフセット分類に加えて、追加のエッジオフセット分類が、図１に示すエッジオフセット分類と併せてまたはそれの代替として使用され得る。図２に、図１に示すオフセット分類に加えてまたはそれの代替として使用され得る２つの追加のオフセット分類を示す。図２に示す追加のオフセット分類は、それぞれ１Ｄ１３５度超エッジ（ＳＡＯ＿ＥＯ＿４）、および１Ｄ４５度未満エッジ（ＳＡＯ＿ＥＯ＿５）と呼ばれることがある。したがって、図１および図２に示すエッジオフセット分類の任意の組合せがエッジオフセットフィルタ処理のために使用され得る。以下でより詳細に説明するように、エッジオフセット分類の組合せは帯域分類ベースオフセットタイプとともに使用され得る。図２に示す各エッジオフセット分類について、エッジタイプ値が、図１に示したエッジオフセット分類に関して上記で与えた式に従って計算され得る。
【００３３】
帯域分類ベースオフセットタイプは、ピクセルの強度に基づいてピクセルを異なる帯域に分類する。上記で説明したように、帯域分類ベースオフセットタイプは、中心帯および側波帯という２つの帯域オフセットタイプ分類を含み得る。図３は、中心帯と側波帯とを含む例示的な帯域分類ベースオフセットタイプを示す概念図である。図３に示すように、ピクセル強度０〜ＭＡＸの各々は、３２個の帯域のうちの１つにカテゴリー分類され得る。一例では、ピクセルは８ビット強度値を有し得、ＭＡＸは２５５に等しくなり得る。図３の例では、中心にある１６個の帯域は第１のグループに分類され、残りの側波帯は第２のグループに分類される。エッジタイプ帯域オフセットと同様の方法で、現在ピクセルの帯域タイプが判断されると、現在ピクセルのオフセット値が、元のビデオフレームと再構成されたビデオフレームとの間の差分に基づいて判断され得る。一例では、各帯域タイプ値（すなわち、０〜３１）は、元のピクセルの値と、パーティション中の各帯域タイプカテゴリーに属する再構成されたピクセルの値との間の差分の平均を取ることによって計算される１つのオフセット値を有する。したがって、帯域の各グループ（すなわち、第１のグループおよび第２のグループ）について、１６個のオフセット値が判断される。各グループの１６個のオフセット値はｂｏｆｆｓｅｔ0、．．．、ｂｏｆｆｓｅｔ15と示され得る。ｅｏｆｆｓｅｔ-2、ｅｏｆｆｓｅｔ-1、ｅｏｆｆｓｅｔ1、およびｅｏｆｆｓｅｔ2の場合と同様に、ｂｏｆｆｓｅｔ0、．．．、ｂｏｆｆｓｅｔ15の各々は元のビデオフレームに基づき、ビデオデコーダは、１６個のオフセット値を導出するための機構を含む。一般に、符号化ビデオビットストリームは、ビデオフレームの各パーティションについて、６つのピクセル分類タイプのうちの１つと、オフセットの対応するセット（すなわち、ｅｏｆｆｓｅｔ-2、．．．、ｅｏｆｆｓｅｔ2およびｂｏｆｆｓｅｔ0、．．．、ｂｏｆｆｓｅｔ15）とを示す情報を含む。いくつかの例では、オフセット値のセット中の各オフセット値は、パーティションごとに符号付き単項コーディングを使用して独立してコーディングされ、ビットストリーム中でシグナリングされる。他の例では、オフセット値は、ビットストリーム中の他のオフセット値を使用してビデオデコーダによって予測され得る。たとえば、ビデオデコーダはｅｏｆｆｓｅｔ2からｅｏｆｆｓｅｔ-2の値を予測し得る。このようにして、オフセット値のセットをシグナリングするために必要とされるビット数は低減され得る。オフセット値をシグナリングする例は、参照により本明細書に組み込まれる、２０１２年９月２６日に出願された同時係属米国特許出願第１３／６２７，４５７号に記載されている。
【００３４】
さらに、上記で説明したように、ＳＡＯ技法は、追加のフィルタ処理技法と併せて実行され得る。追加のフィルタ処理技法としては、たとえば、ウィーナー（Weiner）フィルタ処理技法がある。ＳＡＯ技法のためのオフセット値の計算と同様に、追加のフィルタ処理技法は、元のフレームと再構成されたフレームとの間の差分に基づいてフィルタ係数を計算し得る。たとえば、ウィーナーフィルタのためのフィルタ係数が、元のピクチャと再構成されたピクチャとの間の差分に基づいて判断され得る。オフセット値のように、計算された係数は、ビデオデコーダが使用するためにビットストリーム中にも含まれ得る。
【００３５】
ＨＥＶＣのための他の提案では、適応ループフィルタ（ＡＬＦ）プロセスについて説明する。１つの例示的なＡＬＦプロセスでは、２つの適応モード（すなわち、ブロック適応および領域適応）が提案される。領域ベースの適応モードの場合、フレームは１６個の領域に分割され、各領域は線形フィルタ係数（ＡＣ係数および１つのＤＣ係数）の１つのセットを有し得、１つの領域は他の領域と同じフィルタ係数を共有することができる。図４は、適応ループフィルタのための領域ベースの分類を示す概念図である。図４に示すように、フレームは１６個の領域に分割され、各領域は、インデックス値、すなわち、０、．．．、１５に従ってインデックス付けされる。図４に示すように、インデックスは、図示したパターンに従ってフレームの領域に割り当てられる。他の例では、インデックス値は、他のパターン、たとえば、ラスタスキャン、ジグザグなどに基づいてフレームの領域に割り当てられ得る。いくつかの例では、インデックス値０、．．．、１５は、領域上で動作が実行される順序に関連付けられ得る。
【００３６】
図５は、適応ループフィルタのためのブロックベースの分類を示す概念図である。１つの例示的なブロックベースのモードでは、各４×４ブロックは、方向およびアクティビティ情報を使用してメトリックを計算することによってクラスを導出する。方向、アクティビティおよび対応するクラスは以下の式に従って計算され得る。以下の式において、（ｉ，ｊ）は、水平座標および垂直座標によるピクセルのロケーションを示す。
【数３】
0005922244.tif 000004
【００３７】
各クラス（すなわち、０、１、．．．、１４、１５）について、線形フィルタ係数（ＡＣ係数および１つのＤＣ係数）の１つのセットが使用され得る。さらに、一例では、クラスは、フィルタ係数を他のクラスと共有することが可能にされ得る。
【００３８】
したがって、領域ベースの分類では、各領域は、ＡＣフィルタ係数とＤＣフィルタ係数との１つのセットを有し得る。同様に、ブロックベースの分類では、各ブロックは、ＡＣフィルタ係数とＤＣフィルタ係数との１つのセットを有し得る。さらに、例示的なＡＬＦプロセスでは、フィルタ処理されたピクセル値は、ビデオブロックのパーティション内の現在ピクセルと隣接ピクセルとの調整値の合計を取ることによって導出され、現在ピクセルと隣接ピクセルとの値は、計算されたＡＣ係数を乗算し、現在ピクセルと隣接ピクセルとにＤＣ係数を加算することによって調整される。このように、ＡＣ係数は乗数または重みとして記述され得る。合計の値はさらに、合計の結果を、パーティション中に含まれるピクセルの総数で除算することによって正規化され得る。以下の式に、ＡＣ係数とＤＣ係数とを使用してフィルタ処理されたピクセルを計算するための例示的な式を与え、ただし、ピクセルはサイズｌ×ｍのパーティション中に含まれ、ｂｉｔ＿ｓｈｉｆｔは正規化ファクタである。
【数４】
0005922244.tif 000005
【００３９】
ＳＡＯプロセスがピクセルにオフセット値を加算するので、場合によっては、ＳＡＯフィルタ処理されたピクセルへのＤＣ係数の加算は冗長であり得る。さらに、ＳＡＯは、一般にＡＬＦを適用する前に実行されるので、各フィルタ処理プロセス中にＤＣ係数／オフセットを適用することによって追加のエンコーダフレーム遅延が生じ得る。以下に鑑みて、本開示は、ＳＡＯフィルタ処理技法を、ＡＣ係数とＤＣ係数とを利用する領域ベースおよびブロックベースのフィルタ処理技法（たとえば、ＡＬＦ）とマージするための技法を提案する。
【００４０】
図６は、ＡＬＦ技法とＳＡＯ技法との組合せを使用してビデオをフィルタ処理するための技法を利用するように構成され得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図６に示すように、システム１０はソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は、符号化ビデオを、通信チャネル１６を介して宛先デバイス１４に、または必要に応じて宛先デバイス１４によってアクセスされ得るファイルサーバ３６に送信するように構成され得る。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、多種多様なデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤードおよび／またはワイヤレス通信が可能であり得る。したがって、通信チャネル１６は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送ラインなど、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００４１】
同様に、ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を通してソースデバイス１２と宛先デバイス１４とによってアクセスされ得る。これは、ファイルサーバ３６に記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデム、イーサネット（登録商標）、ＵＳＢなど）、またはその両方の組合せを含み得る。ファイルサーバ３６は、符号化ビデオを記憶し、符号化ビデオを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、（たとえば、ウェブサイト用の）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶し、それを宛先デバイスに送信することが可能な他のタイプのデバイスがある。ファイルサーバ３６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００４２】
ソースデバイス１２はまた、記憶媒体３４に符号化ビデオデータを記憶するように構成され得る。記憶媒体３４は、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。符号化ビデオデータが記憶媒体３４またはファイルサーバ３６に記憶されたとき、ビデオエンコーダ２０は、コード化ビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスク（ＣＤ）、ブルーレイまたはデジタルビデオディスク（ＤＶＤ）バーナーまたはスタンピングファシリティデバイス、あるいは他のデバイスなど、別のデバイスにコード化ビデオデータを与え得る。同様に、ネットワークインターフェース、ＣＤまたはＤＶＤリーダーなど、ビデオデコーダ３０とは別個のデバイスが、記憶媒体からコード化ビデオデータを取り出し、取り出されたデータをビデオデコーダ３０に与え得る。
【００４３】
本開示の例による、ＡＬＦ技法とＳＡＯ技法との組合せを使用してビデオデータをフィルタ処理するための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００４４】
図６の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器２２と、送信機２４とを含む。ビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例、あるいは符号化ビデオデータがローカルディスクに記憶された適用例に適用され得る。ビデオエンコーダ２０は、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオを符号化し得る。符号化ビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。ビデオエンコーダ２０は、後で消費するために符号化ビデオ情報を記憶媒体３４またはファイルサーバ３６に記憶し得る。記憶媒体３４に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス１４によってアクセスされ得る。
【００４５】
図６の例では、宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調して、ビデオデコーダ３０のための復調されたビットストリームを生成する。チャネル１６を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ３０が使用する、ビデオエンコーダ２０によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ（コーデック）の一部を形成し得る。
【００４６】
ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００４７】
ビデオエンコーダ２０およびビデオデコーダ３０は、ＨＥＶＣなどのビデオ圧縮規格に従って動作し得、ＨＭに準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、ＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。
【００４８】
図６には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４９】
ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで部分的に実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００５０】
ビデオエンコーダ２０は、ビデオ符号化プロセスにおいてサンプル適応オフセット値とフィルタ係数とをコーディングし、シグナリングするために本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ３０は、ビデオコーディングプロセスにおいてＡＬＦのためのサンプル適応オフセット値とＡＣ係数とをコーディングするためにこれらの技法のいずれかまたはすべての逆バージョンを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。このように、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、１つまたは複数のフィルタ係数に少なくとも部分的に基づいて、複数のサンプル値の各々のためのそれぞれのオフセット値を判断することとを行うように構成されるビデオコーダの例を表す。
【００５１】
図７は、本開示で説明するＡＬＦ技法とＳＡＯ技法との組合せを使用してビデオデータをフィルタ処理するための技法を使用するように構成され得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０について、説明のためにＨＥＶＣコーディングのコンテキストにおいて説明するが、本明細書で説明する技法は他のビデオコーディング規格に等しく適用可能であり得る。ビデオエンコーダ２０は、ビデオフレーム内のＣＵのイントラコーディングおよびインターコーディングを実行し得る。上記で説明したように、イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在フレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指し得る。
【００５２】
図７に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内のソースビデオブロックを受信する。図７の例では、ビデオエンコーダ２０は、モード選択モジュール４０と、動き推定モジュール４２と、動き補償モジュール４４と、イントラ予測モジュール４６と、参照フレームバッファ６４と、加算器５０と、変換モジュール５２と、量子化モジュール５４と、エントロピー符号化モジュール５６とを含む。ビデオエンコーダ２０はまた、ビデオブロック再構成のために、逆量子化モジュール５８と、逆変換モジュール６０と、加算器６２と、デブロッキングモジュール４３と、ＳＡＯ／ＡＬＦモジュール４５とを含む。
【００５３】
符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。動き推定モジュール４２および動き補償モジュール４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対して受信したビデオブロックのインター予測コーディングを実行する。イントラ予測モジュール４６は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して受信したビデオブロックのイントラ予測コーディングを実行し得る。
【００５４】
上記で説明したように、ＨＥＶＣによるビデオコーディングのために、フレームまたはスライスは複数のビデオブロック（すなわち、ＬＣＵ、ＣＵ、ＴＵ、およびＰＵ）に分割され得る。ＬＣＵは４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割される場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応し得る。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的分割が存在しなくても、リーフＣＵの４つのサブＣＵをリーフＣＵとも呼ぶ。たとえば、１６×１６サイズのＣＵがさらに分割されない場合、この１６×１６ＣＵが決して分割されなくても、４つの８×８サブＣＵをリーフＣＵとも呼ぶ。
【００５５】
その上、リーフＣＵのＴＵもそれぞれの４分木データ構造に関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。本開示では、ＬＣＵがどのように区分されるかを示す４分木をＣＵ４分木と呼び、リーフＣＵがどのようにＴＵに区分されるかを示す４分木をＴＵ４分木と呼ぶ。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、ＣＵ４分木のルートノードは概してＬＣＵに対応する。分割されないＴＵ４分木のＴＵはリーフＴＵと呼ばれる。
【００５６】
リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含み得る。たとえば、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照フレーム、および／または動きベクトルの参照リスト（たとえば、リスト０もしくはリスト１）を記述し得る。（１つまたは複数の）ＰＵを定義するリーフＣＵのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかに応じて異なり得る。イントラコーディングの場合、ＰＵは、以下で説明するリーフ変換ユニットと同じように扱われ得る。
【００５７】
一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００５８】
本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ただし、Ｎは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備え得、ただし、Ｍは必ずしもＮに等しいとは限らない。
【００５９】
モード選択モジュール４０は、たとえば、各モードのレートひずみ分析に基づいて、コーディングモードのうちの１つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインター予測ブロック（たとえば、予測ユニット（ＰＵ））を、残差ブロックデータを生成するために加算器５０に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器６２に与える。加算器６２は、以下でより詳細に説明するように、予測ブロックを、そのブロックについての、逆変換モジュール６０からの逆量子化され逆変換されたデータと合成して、符号化ブロックを再構成する。いくつかのビデオフレームはＩフレームに指定され得、Ｉフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定モジュール４２によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測モジュール４６は、ＰフレームまたはＢフレーム中のブロックのイントラ予測符号化を実行し得る。
【００６０】
動き推定モジュール４２と動き補償モジュール４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定（または動き探索）は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。動き推定モジュール４２は、予測ユニットを参照フレームバッファ６４に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットの動きベクトルを計算する。参照サンプルは、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of squared difference）、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得、必ずしも、参照フレームまたはスライスのブロック（たとえば、コーディングユニット）境界において発生するとは限らない。いくつかの例では、参照サンプルは分数ピクセル位置において発生し得る。
【００６１】
動き推定モジュール４２は、計算された動きベクトルをエントロピー符号化モジュール５６と動き補償モジュール４４とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償モジュール４４は、たとえば、ＰＵの動きベクトルによって識別される参照サンプルを取り出すことによって、現在ＣＵの予測ユニットについての予測値を計算し得る。
【００６２】
イントラ予測モジュール４６は、動き推定モジュール４２と動き補償モジュール４４とによって実行されるインター予測の代替として、受信ブロックをイントラ予測し得る。イントラ予測モジュール４６は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在ブロックの上、右上、左上、または左のブロックに対して受信ブロックを予測し得る。イントラ予測モジュール４６は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測モジュール４６は、符号化されているＣＵのサイズに基づいて、一定数の方向性予測モード、たとえば、３５個の方向性予測モードで構成され得る。
【００６３】
イントラ予測モジュール４６は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成し、その合成された値をＰＵ中の１つまたは複数のピクセル位置に適用するための機能を含み得る。ＰＵ中のすべてのピクセル位置の値が計算されると、イントラ予測モジュール４６は、ＰＵと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測モジュール４６は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測モジュール４６は、次いで、ＰＵを加算器５０に送り得る。
【００６４】
ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償モジュール４４またはイントラ予測モジュール４６によって計算された予測データを減算することによって残差ブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の２次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するＰＵ中のピクセルの数と同じである。残差ブロック中の値は、ＰＵ中と、コーディングされるべき元のブロック中とで、コロケートされたピクセルの値の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
【００６５】
変換モジュール５２は、残差ブロックから１つまたは複数の変換ユニット（ＴＵ）を形成し得る。変換モジュール５２は、複数の変換の中から変換を選択する。変換は、ブロックサイズ、コーディングモードなど、１つまたは複数のコーディング特性に基づいて選択され得る。変換モジュール５２は、次いで、選択された変換をＴＵに適用して、変換係数の２次元アレイを備えるビデオブロックを生成する。変換モジュール５２は、上記で説明した本開示の技法に従って変換パーティションを選択し得る。さらに、変換モジュール５２は、選択された変換パーティションを符号化ビデオビットストリーム中でシグナリングし得る。
【００６６】
変換モジュール５２は、得られた変換係数を量子化モジュール５４に送り得る。量子化モジュール５４は、次いで、変換係数を量子化し得る。エントロピー符号化モジュール５６は、次いで、スキャンモードに従って、行列中の量子化された変換係数のスキャンを実行し得る。本開示では、エントロピー符号化モジュール５６がスキャンを実行するものとして説明する。ただし、他の例では、量子化モジュール５４などの他の処理モジュールがスキャンを実行し得ることを理解されたい。変換係数が１次元アレイにスキャンされると、エントロピー符号化モジュール５６は、ＣＡＶＬＣ、ＣＡＢＡＣ、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、または別のエントロピーコーディング方法などのエントロピーコーディングを係数に適用し得る。
【００６７】
ＣＡＶＬＣを実行するために、エントロピー符号化モジュール５６は、送信されるべきシンボルの可変長コードを選択し得る。ＶＬＣのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。ＣＡＢＡＣを実行するために、エントロピー符号化モジュール５６は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接値が非０であるか否かに関係し得る。エントロピー符号化モジュール５６はまた、選択された変換を表す信号、および以下でより詳細に説明するフィルタシンタックス要素など、シンタックス要素をエントロピー符号化し得る。本開示の技法によれば、エントロピー符号化モジュール５６は、コンテキストモデル選択のために使用されるファクタの中でも、たとえば、イントラ予測モードのためのイントラ予測方向、シンタックス要素に対応する係数のスキャン位置、ブロックタイプ、および／または変換タイプに基づいて、これらのシンタックス要素を符号化するために使用されるコンテキストモデルを選択し得る。エントロピー符号化モジュール５６によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ３０などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００６８】
場合によっては、エントロピー符号化モジュール５６またはビデオエンコーダ２０の別のモジュールは、エントロピーコーディングに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化モジュール５６は、ＣＵおよびＰＵのコード化ブロックパターン（ＣＢＰ：coded block pattern）値を判断するように構成され得る。また、場合によっては、エントロピー符号化モジュール５６は係数のランレングスコーディングを実行し得る。
【００６９】
逆量子化モジュール５８および逆変換モジュール６０は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償モジュール４４は、残差ブロックを参照フレームバッファ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償モジュール４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償モジュール４４によって生成された動き補償予測ブロックに加算して、再構成されたビデオブロックを生成する。
【００７０】
デブロッキングモジュール４３は、再構成されたビデオのスライスまたはフレームを形成する複数の再構成されたビデオブロックを受信し、スライスまたはフレームからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理し得る。一例では、デブロッキングモジュール４３は、ビデオブロックのいわゆる「境界強度」を評価する。ビデオブロックの境界強度に基づいて、ビデオブロックのエッジピクセルは、閲覧者にとって１つのビデオブロックからの遷移を知覚することがより困難になるように、隣接ビデオブロックのエッジピクセルに対してフィルタ処理され得る。デブロッキングフィルタによって使用される変数は、一般に、再構成されたビデオブロックを元のソースビデオブロックと比較するなしに、再構成されたビデオブロックから導出され得ることに留意されたい。したがって、ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、ビットストリーム中でコーディングされた元のビデオフレームに関する最小の追加の情報を用いて、再構成されたビデオブロック上で同じデブロッキングプロセスを実行するようにプログラムされ得る。ただし、場合によっては、ビデオエンコーダ２０は、デブロッキングが実行されるべきであるかどうか、および／または特定のタイプのデブロッキングモードのうちの１つが実行されるべきであるかどうかを示すシンタックス要素をビットストリーム中に含み得ることに留意されたい。
【００７１】
ＳＡＯ／ＡＬＦモジュール４５は、デブロッキングモジュール４３から再構成されたビデオブロックを受信し、再構成されたビデオブロックにＳＡＯおよび他のフィルタ処理技法を適用し得る。フィルタ処理された再構成されたビデオブロックは、次いで、参照フレームバッファ６４に記憶され得る。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定モジュール４２および動き補償モジュール４４によって参照ブロックとして使用され得る。上記で説明したように、ＳＡＯコーディング技法は、再構成されたビデオフレーム中のピクセルにオフセット値を加算し得、オフセット値はソースビデオフレームに基づいて計算される。さらに、他のフィルタ処理技法は、ソースビデオフレームと再構成されたビデオフレームとの間の差分に基づいてＡＣ係数およびＤＣ係数を計算するＡＬＦプロセスおよび／またはウィーナーフィルタ処理技法を含み得る。したがって、図７に示すように、ＳＡＯ／ＡＬＦ調整されたビデオブロックを参照フレームバッファ６４に出力することに加えて、ＳＡＯ／ＡＬＦモジュール４５は、ビデオデコーダが後で使用するためにフィルタシンタックス要素をエントロピー符号化モジュール５６に出力する。どのフィルタ処理プロセスが実行されるべきであるかに関する情報を含むことに加えて、一例では、フィルタシンタックス要素は、オフセット値とフィルタ係数とのセットを含み得る。他の例では、フィルタシンタックス要素は、ビデオデコーダがオフセットおよび／または係数値のセットを判断し得るような情報を含み得る。
【００７２】
一例では、ＳＡＯ／ＡＬＦモジュール４５は、以下のフィルタ処理技法の任意の組合せを実行するように構成され得る。
【００７３】
（１）ブロック適応性をもつＡＬＦ技法。ＡＬＦ技法は、ＨＥＶＣのための提案において説明したＡＬＦ技法であり得る。ブロック適応性は、図４および図５に関して上記で説明したブロックおよび／または領域適応モードを含み得る。
【００７４】
（２）ブロック適応性をもたないＡＬＦ技法。ＡＬＦ技法は、ＨＥＶＣのための提案において説明したＡＬＦ技法であり得る。ＡＬＦ技法がブロック適応性を含まないとき、ビデオデータのパーティションのために単一のフィルタが使用され得る。
【００７５】
（３）ＳＡＯフィルタ処理技法。ＳＡＯフィルタ処理技法は、図１および図２に示したエッジオフセット分類の任意の組合せを利用する帯域オフセット分類技法またはエッジオフセット技法を含み得る。
【００７６】
（４）ブロック適応性をもつＡＬＦ技法とＳＡＯフィルタ処理技法との組合せを含むフィルタ処理技法。ブロック適応性をもつＡＬＦ技法とＳＡＯフィルタ処理技法との例示的な組合せについては、図９に関して以下でより詳細に説明する。
【００７７】
（５）ブロック適応性をもたないＡＬＦ技法とＳＡＯフィルタ処理技法との組合せを含むフィルタ処理技法。
【００７８】
（６）フィルタ処理またはオフセットが適用されないフィルタ処理技法。
【００７９】
ビデオエンコーダ２０は、ビデオフレームをいくつかのパーティションに分割するように構成され得、各パーティションのためにフィルタ処理技法が選択され得る。図８Ａ〜図８Ｂに、フィルタ処理技法をパーティションに割り当てるためにパーティションに分割されたビデオフレームの一例を示す。図８Ａは、フレームが異なるサイズのパーティション（Ｐ0〜Ｐ2）に分割された一例を示している。図８Ｂは、フレームが異なるサイズのパーティション（Ｐ0〜Ｐ3）に分割された一例を示している。一例では、ビデオフレームのパーティション（Ｐ0〜Ｐ2）および（Ｐ0〜Ｐ3）はビデオデータまたはＣＵの整数個のスライスに対応し得る。一例では、図８Ａおよび図８Ｂのパーティションの各々は、上記で説明した６つのフィルタ処理技法のうちの１つを割り当てられ得る。たとえば、Ｐ0はＳＡＯ技法に従ってフィルタ処理され得、Ｐ1はフィルタ処理されないことがあり、Ｐ3は、ブロック適応性をもつＡＬＦフィルタ処理技法とＳＡＯフィルタ処理技法との組合せであるフィルタ処理技法を使用してフィルタ処理され得る。
【００８０】
図９は、ビデオエンコーダ中に含まれ得る例示的なＳＡＯ／ＡＬＦモジュールを示すブロック図である。ＳＡＯ／ＡＬＦモジュール４５は、ＳＡＯフィルタ処理技法を、ＡＣ係数とＤＣ係数とを利用するフィルタ処理技法とマージするように構成され得るＳＡＯ／ＡＬＦモジュールの一例を示す。ＳＡＯフィルタ技法の例は、図１および図２に関して上記で説明した。ＡＣ係数とＤＣ係数とを利用するフィルタ処理技法の例としては、図４および図５に関して上記で説明した領域ベースおよびブロックベースのフィルタ処理技法がある。ＨＥＶＣのための提案されたＡＬＦ技法では、ＣＵレベルＡＬＦオン／オフマップがある。すなわち、ＡＬＦはＣＵごとに選択的に適用され得る。ＳＡＯ／ＡＬＦモジュール４５は、ＡＬＦとＳＡＯとが組み合わせられた技法においてＳＡＯシグナリングがＡＬＦのＣＵレベルオン／オフマップと同期され得るように構成され得る。すなわち、組み合わせられたフィルタ処理技法はＣＵごとに選択的に適用され得る。
【００８１】
図９に示すように、ＳＡＯ／ＡＬＦモジュール４５は、フィルタ係数計算モジュール４０２と、ＳＡＯモード選択モジュール４０４と、ピクセル分類モジュール４０６と、オフセット値分類モジュール４０８と、ビデオブロックフィルタモジュール４１０とを含む。フィルタ係数計算モジュール４０４は、ソースビデオブロックと再構成されたビデオブロックとを受信し、再構成されたビデオブロックをフィルタ処理するために使用されるべきフィルタ係数を計算するように構成される。フィルタ係数は、図４および図５に関して上記で説明した領域ベースまたはブロックベースの技法を使用してビデオデータのブロックについて計算され得る。上記で説明したように、両方の技法は、分類に基づいて１つまたは複数の係数を判断することを含み得る。フィルタ係数計算モジュール４０４は、図４に関して上記で説明したように領域ベースの分類を使用してビデオデータのブロックを分類するか、あるいは図５に関して上記で説明したブロックベースの技法を使用してビデオデータのブロックを分類するように構成され得る。たとえば、フィルタ係数計算モジュール４０４は、上記で与えた式に従って、方向およびアクティビティ情報を計算することによって４×４ブロックのクラスを導出し得る。
【００８２】
フィルタ係数計算モジュール４０４は、判断された分類に基づいてＡＣおよび／またはＤＣフィルタ係数を判断するように構成され得る。一例では、フィルタ係数計算モジュール４０２は、ソースビデオフレームと再構成されたビデオフレームとの間の差分に基づいてＡＣおよび／またはＤＣフィルタ係数を計算するように構成され得る。別の例では、ＡＣおよび／またはＤＣフィルタ係数は事前計算され得、フィルタ係数計算モジュール４０２は、領域またはブロックに関連する分類に基づいてフィルタ係数をルックアップするように構成され得る。図９に示すように、フィルタ係数計算モジュール４０２は、分類情報をＳＡＯモード選択モジュール４０４に出力し、フィルタ係数をビデオブロックフィルタモジュール４１０に出力する。
【００８３】
さらに、一例では、ブロックベースの分類が使用されるとき、各クラスはｃｌａｓｓ＿ｉとして識別され得、ただし、ｉ＝０、．．．、Ｌ−１およびＬはクラスの数である。一例では、ｆ＿ｉ（ｍ）として識別され得る１つのフィルタ（ただし、ｍ＝０、．．．、Ｍ）が各クラスに割り当てられ得、ｆ＿ｉ（Ｍ）はクラスのためのＡＣおよびＤＣ係数を与える。同様にして、一例では、領域ベースの分類が使用されるとき、各クラスはｒｅｇｉｏｎ＿ｉとして識別され得、ただし、ｉ＝０、．．．、Ｐ−１およびＰはフレームの領域の数であり、ｆ＿ｉ（ｍ）として識別され得る１つのフィルタ（ただし、ｍ＝０、．．．、Ｍ）が各クラスに割り当てられ得、ｆ＿ｉ（Ｍ）はクラスまたは領域のためのＡＣおよびＤＣ係数を与える。
【００８４】
しかしながら、上記で説明したように、ＳＡＯプロセスはピクセルにオフセット値を加算するので、場合によっては、ＤＣ係数が冗長であり得る。したがって、代替例では、ｆ＿ｉ（Ｍ）は、ｆ＿ｉ（Ｍ）がＤＣ係数を与えず、代わりに、上記で説明したオフセット分類方法（すなわち、エッジオフセット０／１／２／３または帯域オフセット０／１）を使用してブロックまたは領域について複数のオフセットが計算され得るように修正され得る。たとえば、４×４ブロックでは、アクティビティおよび方向メトリックを使用してブロックについて１つのＡＣフィルタ係数が判断され得、エッジオフセット分類を使用して１６個のピクセルの各々についてＳＡＯオフセット値が判断され得る。このようにして、ＡＬＦフィルタ処理技法とＳＡＯフィルタ処理技法とは組み合わせられ得る。したがって、フィルタ係数計算モジュール４０２は、（たとえば、ＳＡＯがＡＬＦと組み合わせられるときに）ブロックもしくは領域のＡＣ係数のみを計算し、および／または（たとえば、ＡＬＦが単独で実行されるときに）ブロックもしくは領域のＡＣ係数とＤＣ係数とを計算するように構成され得る。
【００８５】
ＳＡＯモード選択モジュール４０４は、クラス情報と、ソースビデオブロックと、再構成されたビデオブロックとを受信し、ビデオブロックのパーティションのための様々なＳＡＯ技法の間で選択するように構成され得る。一例では、ＳＡＯモード選択モジュール４０４は、ＳＡＯフィルタを適用しないこと、１Ｄ０度エッジフィルタを適用すること、１Ｄ９０度エッジフィルタを適用すること、１Ｄ１３５度エッジフィルタを適用すること、１Ｄ４５度エッジフィルタを適用すること、図２に示すＳＡＯフィルタのいずれかを適用すること、中心帯フィルタを適用すること、または側波帯フィルタを適用することの間で選択するように構成される。一例では、ＳＡＯモード選択モジュール４０４は、ソースビデオフレームの特性、再構成されたビデオフレームの特性、再構成誤差、および／またはソースビデオブロックと再構成されたビデオブロックとの間の差分に基づいてモードを選択するように構成され得る。他の例では、モード選択モジュール４０４は、複数のＳＡＯ技法が実行され、ＳＡＯモード選択モジュール４０４がレートひずみ分析に基づいてＳＡＯ技法を選択する反復的プロセスに基づいてＳＡＯ技法を選択するように構成され得る。
【００８６】
さらに、一例では、ＳＡＯモード選択モジュール４０４は、ＡＬＦのブロックベースまたは領域ベースの分類に基づいてＳＡＯモードを選択するように構成され得る。このようにして、ＡＬＦフィルタ処理技法とＳＡＯフィルタ処理技法とがさらに組み合わせられ得る。たとえば、図５に関して上記で説明したブロックベースの分類技法では、クラス（すなわち、０、１、．．．、１４、１５）の各々は、ブロックに関連するアクティビティおよび方向の計算に基づく。アクティビティおよび方向の計算は、エッジオフセット技法のどれがより最適なフィルタ処理結果を与え得るかの指示を与え得る。一例では、ＳＡＯモード選択モジュール４０４は、可能なオフセット分類方法を優先させる（すなわち、特定のオフセットモードが選択される確率を高める）か、またはブロックに関連するクラスに基づいてブロックのための可能なオフセット分類方法の数を制限するように構成され得る。
【００８７】
たとえば、クラス５、６、．．、９は強い水平方向アクティビティを示す。したがって、ＳＡＯモード選択モジュール４０４は、クラスが５、６、．．、９のうちのいずれかに等しいとき、水平方向ピクセルを使用するエッジオフセット０の選択を優先させるように構成され得る。クラスが５、６、．．、９のうちのいずれかに等しいときにエッジオフセット０の選択を優先させることの追加または代替として、ＳＡＯモード選択モジュール４０４は、クラスが５、６、．．、９のうちのいずれかに等しいとき、垂直方向ピクセルを使用するエッジオフセット１をなくすようにさらに構成され得る。さらに、クラス１０、１１、．．、１４は強い垂直方向アクティビティを示す。したがって、ＳＡＯモード選択モジュール４０４は、垂直方向ピクセルを使用するエッジオフセット１の選択を優先させ、および／または、クラスが１０、１１、．．、１４のうちのいずれかに等しいときにエッジオフセット０をなくすように構成され得る。
【００８８】
さらに、ＳＡＯモード選択モジュール４０４は、領域ベースの分類におけるビデオフレームの各領域が、領域内でブロックベースの分類を使用することによって２つ以上のオフセット分類モードを有し得るように構成され得ることに留意されたい。たとえば、ｒｅｇｉｏｎ＿０では、エッジｏｆｆｓｅｔ0が、ｃｌａｓｓ＿５〜ｃｌａｓｓ＿９のクラスを有する領域内のすべての４×４ブロックのために適用され得、エッジｏｆｆｓｅｔ1が、ｃｌａｓｓ＿１０〜ｃｌａｓｓ＿１４のクラスを有する領域内のすべての４×４ブロックのために適用され得る。
【００８９】
さらに、ＳＡＯ／ＡＬＦモード選択モジュール４０４はまた、特定のｃｌａｓｓ＿ｉをもつ４×４ブロックのためにＡＬＦが適用されるが、それらのブロックのためのＳＡＯフィルタ処理を実行することをスキップするように構成され得る。たとえば、ｃｌａｓｓ＿０をもつ４×４ブロックでは、ｃｌａｓｓ＿０は、それらのブロック上で小さい方向性およびラプラシアンアクティビティがあることを意味するので、ＳＡＯがスキップされ得る。このようにして、領域ベースの分類技法とブロックベースの分類技法とは組み合わせられ得る。
【００９０】
ピクセル分類モジュール４０６は、ＳＡＯモード選択モジュール４０４からＳＡＯ技法の指示を受信し、それに応じてピクセルを分類するように構成され得る。たとえば、上記の図２に関して説明したように、指示されたＳＡＯ技法がＳＡＯ＿ＥＯ＿４である場合、ピクセル分類モジュール４０６は、図２において１および２として識別されるピクセルの値に基づいてブロックまたは領域ピクセル内のピクセルの各々について−２、−１、０、１、または２のいずれかのエッジタイプを計算し得る。１または２として識別されるピクセルのうちの一方が、現在ピクセルのエッジタイプを計算するために利用不可能であるとき、ピクセル分類モジュール４０６は、現在ピクセルにデフォルトエッジタイプ値（たとえば、エッジタイプ０）を割り当て得る。さらに、ピクセル分類モジュール４０６は、帯域オフセットが選択されたとき、ピクセルを帯域に分類するように構成され得る。
【００９１】
オフセット値計算モジュール４０８は、ビデオデータのパーティションのためのエッジタイプ値または帯域分類のセットを受信し、対応するオフセット値のセットを判断するように構成され得る。上記で説明したように、オフセット値は、元のビデオフレームと再構成されたビデオフレームとの間の差分に基づき得る。さらに、上記で説明したように、エッジ分類の場合、１つの例示的なＳＡＯ技法では、各非０エッジタイプ値（すなわち、−２、−１、１、および２）は１つのオフセット値（すなわち、ｅｏｆｆｓｅｔ-2、ｅｏｆｆｓｅｔ-1、ｅｏｆｆｓｅｔ1、およびｅｏｆｆｓｅｔ2）を有し得る。ただし、１つの他の例では、オフセット値計算モジュール４０８はまた、ＥｄｇｅＴｙｐｅ＝０のときにエッジオフセット値を判断するように構成され得る。したがって、オフセット値計算モジュール４０８は、各エッジタイプ値（すなわち、−２、−１、０、１、および２）について１つのオフセット値（すなわち、ｅｏｆｆｓｅｔ-2、ｅｏｆｆｓｅｔ-1、ｅｏｆｆｓｅｔ0、ｅｏｆｆｓｅｔ1、ｅｏｆｆｓｅｔ2）を判断し得る。さらに、オフセット値計算モジュール４０８は、ＳＡＯフィルタ処理技法がＡＬＦとマージされるかどうかに基づいてＥｄｇｅＴｙｐｅ＝０の場合のエッジオフセット値を判断するように構成され得る。たとえば、オフセット値計算モジュール４０８は、フィルタ処理係数計算モジュール４０２がＤＣ係数を計算するかどうかに基づいて、ＥｄｇｅＴｙｐｅ＝０の場合のエッジオフセット値を計算するように構成され得る。
【００９２】
さらに、オフセット値計算モジュール４０８は、オフセット値を再構成するためにビデオデコーダによって使用され得るオフセット値シンタックスを生成するように構成され得る。さらに、オフセット値計算モジュール４０８は、反復的モード選択プロセスの一部として、モード選択モジュール４０４にオフセット値を出力し得る。一例では、オフセット値計算モジュール４０８は、ＳＡＯモードと対応するオフセット値とを示すオフセット値シンタックスを生成し得、対応するオフセット値の各々はバイナリストリング（たとえば、５つのオフセット値では５つのバイナリ値）を使用して表される。さらに、一例では、オフセット値計算モジュール４０６は、グループ内のオフセット値の間の相関を利用することによってオフセット値のグループを送るために必要とされるビット数を低減し得る。したがって、各オフセット値を個々に表す代わりに、オフセット値計算モジュール４０６は、ビデオデコーダがオフセット値のグループを判断／予測することを可能にするシンタックス要素を出力し得る。
【００９３】
一例では、オフセット値計算モジュール４０６は、以下の２つの方法のうちの１つで、すなわち、独立して、または予測技法を使用して、上記で説明した５つのエッジオフセット値（すなわち、ｅｏｆｆｓｅｔ-2、ｅｏｆｆｓｅｔ-1、ｅｏｆｆｓｅｔ0、ｅｏｆｆｓｅｔ1、ｅｏｆｆｓｅｔ2）をシグナリングするように構成され得る。予測技法は、ビデオデコーダが逆演算を実行することによってオフセット値のセットを生成することができるように、知られている演算を使用してオフセット値のセット内の１つまたは複数のオフセット値を修正することを含み得る。予測技法は、エッジオフセット値が短縮単項コーディング技法を使用してコーディングされるときに特に有用であり得る。一例では、オフセット値のうちの１つが別のオフセット値から減算され得、オフセット値の１つと減算の結果とがビットストリーム中でシグナリングされ得る。この場合、ビデオデコーダは、知られているオフセット値に結果を加算することによってオフセット値を判断し得る。一例では、ｅｏｆｆｓｅｔ0が、エッジオフセット値のセット内の他のオフセット値から減算され得る。この例では、オフセット値計算モジュールは、符号化ビットストリーム中にｅｏｆｆｓｅｔ-2−ｅｏｆｆｓｅｔ0と、ｅｏｆｆｓｅｔ-1−ｅｏｆｆｓｅｔ0と、ｅｏｆｆｓｅｔ0と、ｅｏｆｆｓｅｔ1−ｅｏｆｆｓｅｔ0と、ｅｏｆｆｓｅｔ2−ｅｏｆｆｓｅｔ0との値を含めるように構成され得る。
【００９４】
一例では、オフセット値計算モジュール４０６は、独立してまたは予測技法を使用して、上記で説明した１６個の帯域オフセット値（すなわち、ｂｏｆｆｓｅｔ0、．．．、ｂｏｆｆｓｅｔ15）をシグナリングするようにさらに構成され得る。一例では、予測技法は、ｂｏｆｆｓｅｔ0、．．．、ｂｏｆｆｓｅｔ15の各々からｂｏｆｆｓｅｔ0、．．．、ｂｏｆｆｓｅｔ15の平均を計算することと、符号化ビットストリーム中にＭ＿ｂ＝Ｍｅａｎ（ｂｏｆｆｓｅｔ0，．．．，ｂｏｆｆｓｅｔ15）と、ｂｏｆｆｓｅｔ0−Ｍ＿ｂと、ｂｏｆｆｓｅｔ1−Ｍ＿ｂと、．．．と、ｂｏｆｆｓｅｔ15−Ｍ＿ｂとの値を含めることとを含み得る。予測技法は、上記で説明した領域ベースの分類技法とブロックベースの分類技法とのいずれかと併せて使用され得ることに留意されたい。
【００９５】
フィルタモジュール４１０は、再構成されたビデオブロックと、オフセット値と、フィルタ係数とを受信するように構成され得、フィルタ処理されたビデオブロックとフィルタ係数シンタックスとを出力する。フィルタモジュール４１０は、ＨＥＶＣへの提案において説明したウィーナーフィルタ処理技法またはＡＬＦ技法など、フィルタ処理係数を使用したフィルタ処理技法を実行するように構成され得る。さらに、フィルタモジュール４１０は、再構成されたビデオブロックにオフセット値を加算するように構成され得る。フィルタモジュール４１０は、領域またはブロック内の各ピクセルについて係数の単一のセットを使用してビデオデータの領域またはブロックにフィルタ処理技法を適用し、領域またはブロック内の各ピクセルにそれぞれのオフセット値を加算するように構成され得る。上記で説明したように、オフセット値は、ビデオデータの領域またはブロックに関連する分類に基づいて判断され得る。
【００９６】
このようにして、ビデオエンコーダ２０、ＳＡＯ／ＡＬＦモジュール４５、フィルタ係数計算モジュール４０２、ＳＡＯモード選択モジュール４０４、ピクセル分類モジュール４０６、オフセット値計算モジュール４０８および／またはフィルタモジュール４１０は、ビデオデータのブロックを受信することであって、ビデオデータのブロックが複数のサンプル値を含む、受信することと、ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、１つまたは複数のフィルタ係数に少なくとも部分的に基づいて、複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、判断された１つまたは複数のフィルタ係数と判断されたそれぞれのオフセット値とに基づいてビデオデータのブロックをフィルタ処理することとを行うように構成され得る。
【００９７】
図１０は、本開示の技法に従ってフィルタ処理技法を適用し、フィルタシンタックスを符号化する例を示すフローチャートである。図１０のプロセスについて、ビデオＳＡＯ／ＡＬＦモジュール４５に関して以下で説明するが、このプロセスは、ビデオエンコーダ２０、ＳＡＯ／ＡＬＦモジュール４５、フィルタ係数計算モジュール４０２、ＳＡＯモード選択モジュール４０４、ピクセル分類モジュール４０６、オフセット値計算モジュール４０８および／またはフィルタモジュール４１０の任意の組合せによって実行され得る。
【００９８】
図１０に示すように、ＳＡＯ／ＡＬＦモジュール４５は、再構成されたビデオブロックを受信する（１００２）。再構成されたビデオブロックは予測技法に従って生成され得る。場合によっては、再構成されたビデオブロックがＳＡＯ／ＡＬＦモジュール４５によって受信される前にそれらにデブロッキングフィルタが適用され得る。ＳＡＯ／ＡＬＦモジュール４５はビデオブロックのフィルタ係数を判断する（１００４）。フィルタ係数は、ＡＣ係数、ＤＣ係数、またはＡＣ係数とＤＣ係数を含み得る。フィルタ係数は、上記で説明した技法に従って生成されたウィーナーフィルタプロセスとＡＬＦフィルタプロセスとに対応し得る。ＳＡＯ／ＡＬＦモジュール４５は、ビデオブロック内のサンプルのためのオフセット値を判断する（１００６）。オフセット値は、エッジオフセット分類または帯域オフセット分類に対応し得、上記で説明した技法を使用して判断され得る。ＳＡＯ／ＡＬＦモジュール４５は、生成されたフィルタ係数およびオフセット値を使用して再構成されたビデオブロックをフィルタ処理する（１００８）。再構成されたビデオブロックをフィルタ処理することは、再構成されたビデオブロック中のピクセル値にＳＡＯオフセットを加算すること、および／またはビデオブロック内のピクセル値のすべてにフィルタ係数のセットを乗算することを含み得る。ＳＡＯ／ＡＬＦモジュール４５は、フィルタ処理された再構成されたビデオブロックを出力する（１０１０）。フィルタ処理された再構成されたビデオブロックは、後続の予測のために使用されるために参照フレームバッファに出力され得る。ＳＡＯ／ＡＬＦモジュール４５はフィルタシンタックスを生成する（１０１２）。フィルタシンタックスは、上記で説明したシンタックス要素のいずれかを含み得、ビデオデコーダがフィルタ処理技法を判断し、フィルタ技法に関連する値をフィルタ処理することを可能にする任意のシンタックス要素をさらに含み得る。ＳＡＯ／ＡＬＦモジュール４５は、生成されたフィルタシンタックスを出力する（１０１４）。ＳＡＯ／ＡＬＦモジュール４５は、上記で説明したエントロピーエンコーダ５６など、エントロピーエンコーダにフィルタシンタックスを出力し得る。
【００９９】
図１１は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図１１の例では、ビデオデコーダ３０は、エントロピー復号モジュール７０と、動き補償モジュール７２と、イントラ予測モジュール７４と、逆量子化モジュール７６と、デブロッキングモジュール７７と、逆変換モジュール７８と、参照フレームバッファ８２と、ＳＡＯおよびＡＬＦモジュール７９と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図７参照）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【０１００】
エントロピー復号モジュール７０は、変換係数の１次元アレイを取り出すために、符号化ビットストリームに対してエントロピー復号プロセスを実行する。使用されるエントロピー復号プロセスは、ビデオエンコーダ２０によって使用されたエントロピーコーディング（たとえば、ＣＡＢＡＣ、ＣＡＶＬＣなど）に依存する。エンコーダによって使用されたエントロピーコーディングプロセスは、符号化ビットストリーム中でシグナリングされるか、または所定のプロセスであり得る。
【０１０１】
いくつかの例では、エントロピー復号モジュール７０（または逆量子化モジュール７６）は、ビデオエンコーダ２０のエントロピー符号化モジュール５６（または量子化モジュール５４）によって使用されたスキャンモードをミラーリングするスキャンを使用して受信値をスキャンし得る。係数のスキャンは逆量子化モジュール７６において実行され得るが、スキャンについては、例示のために、エントロピー復号モジュール７０によって実行されるものとして説明する。さらに、説明しやすいように別個の機能モジュールとして示されているが、ビデオデコーダ３０のエントロピー復号モジュール７０、逆量子化モジュール７６、および他のモジュールの構造および機能は互いに高度に統合され得る。さらに、エントロピー復号モジュール７０は、上記で説明したフィルタシンタックス要素などのシンタックス要素をエントロピー復号し得る。
【０１０２】
逆量子化モジュール７６は、ビットストリーム中で与えられ、エントロピー復号モジュール７０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、ＨＥＶＣのために提案されたプロセスまたはＨ．２６４復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、ＣＵについてビデオエンコーダ２０によって計算される量子化パラメータＱＰの使用を含み得る。逆量子化モジュール７６は、係数が１次元アレイから２次元アレイに変換される前または変換された後に変換係数を逆量子化し得る。
【０１０３】
逆変換モジュール７８は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換モジュール７８は、ビデオエンコーダ２０からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの１つまたは複数のコーディング特性から変換を推論することによって、逆変換を判断し得る。いくつかの例では、逆変換モジュール７８は、現在ブロックを含むＬＣＵのための４分木のルートノードにおけるシグナリングされた変換に基づいて、現在ブロックに適用すべき変換を判断し得る。代替的に、変換は、ＬＣＵ４分木中のリーフノードＣＵのためのＴＵ４分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換モジュール７８は、逆変換モジュール７８が、復号されている現在ブロックの変換係数に２つ以上の逆変換を適用する、カスケード逆変換を適用し得る。
【０１０４】
イントラ予測モジュール７４は、シグナリングされたイントラ予測モードと、現在フレームの前に復号されたブロックからのデータとに基づいて、現在フレームの現在ブロックについての予測データを生成し得る。取り出された動き予測方向、参照フレームインデックス、および計算された現在動きベクトルに基づいて、動き補償モジュール７２は現在部分の動き補償ブロックを生成する。これらの動き補償ブロックは、本質的に、残差データを生成するために使用される予測ブロックを再作成する。動き補償モジュール７２は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行し得る。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子がシンタックス要素中に含まれ得る。動き補償モジュール７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償モジュール７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１０５】
さらに、動き補償モジュール７２およびイントラ予測モジュール７４は、ＨＥＶＣの例では、（たとえば、４分木によって与えられる）シンタックス情報の一部を使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されたＬＣＵのサイズを判断し得る。動き補償モジュール７２およびイントラ予測モジュール７４はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報を判断し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード（たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各インター符号化ＰＵについての１つまたは複数の参照フレーム（および／またはそれらの参照フレームの識別子を含んでいる参照リスト）と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。加算器８０は、残差ブロックを、動き補償モジュール７２またはイントラ予測モジュール７４によって生成される対応する予測ブロックと合成して、復号ブロックを形成する。
【０１０６】
デブロッキングモジュール７７は、再構成されたビデオのスライスまたはフレームを形成する複数の再構成されたビデオブロックを受信し、スライスまたはフレームからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理し得る。デブロッキングモジュール７７は、上記で説明したデブロッキングモジュール４３と同様に動作し得る。一例では、デブロッキングモジュール７７は、ビデオブロックのいわゆる「境界強度」を評価する。ビデオブロックの境界強度に基づいて、ビデオブロックのエッジピクセルは、隣接ビデオブロックのエッジピクセルに対してフィルタ処理され得る。
【０１０７】
ＳＡＯ／ＡＬＦモジュール７９は、フィルタシンタックスと再構成されたビデオブロックとを受信し、フィルタ処理された再構成されたビデオブロックを出力する。ＳＡＯ／ＡＬＦモジュール７９は、たとえば図９に関して上記で説明したフィルタ技法に従って動作する。ＳＡＯ／ＡＬＦモジュール７９は、参照フレームバッファ８２および／または（図６のディスプレイデバイス３２などの）ディスプレイにフィルタ処理されたビデオブロックを出力し得る。フィルタ処理されたビデオブロックが参照フレームバッファ８２に記憶されると、それらは後続の動き補償のための参照ブロックとして使用され得る。
【０１０８】
図１２は、ビデオデコーダ中に含まれる例示的なＳＡＯ／ＡＬＦモジュールを示すブロック図である。ＳＡＯ／ＡＬＦモジュール７９は、入力および出力のフィルタ処理されたビデオブロックとして、再構成されたビデオブロックおよびフィルタシンタックス（たとえば、モードシンタックス、オフセット値、およびフィルタ係数）を受信する。ＳＡＯ／ＡＬＦモジュール７９は、ＳＡＯフィルタ処理技法を単独で使用することによって、ＨＥＶＣのための提案において説明したウィーナーフィルタ処理技法またはＡＬＦプロセスなどの他のフィルタ処理技法を単独で使用することによって、あるいは上記で説明したＳＡＯフィルタ処理技法と他のフィルタ処理技法とを組み合わせて使用することによって、フィルタ処理されたビデオブロックを生成し得る。たいていの場合、ＳＡＯ／ＡＬＦモジュール７９は、ビデオエンコーダによって実行されたフィルタプロセスに一致するフィルタ処理を実行することになる。したがって、ＳＡＯ／ＡＬＦモジュール７９は、ＳＡＯ／ＡＬＦモジュール７９がＳＡＯ／ＡＬＦモジュール４５に関して上記で説明した例示的なフィルタ技法のいずれかを実行することができるように構成され得る。簡潔のために、ＳＡＯ／ＡＬＦモジュール４５に関して説明したフィルタ処理技法の詳細な説明については繰り返さない。ただし、ＳＡＯ／ＡＬＦ４５は、フィルタ処理モードを判断し、フィルタ処理プロセスを実行するとき、元のビデオフレームを参照し得るが、ＳＡＯ／ＡＬＦモジュール７９は、符号化ビットストリーム中に含まれる情報に依拠することに留意されたい。図１２に示す例示的なＳＡＯ／ＡＬＦモジュール７９は、領域／ブロック分類モジュール７０２と、ピクセル分類モジュール７０４と、フィルタパラメータモジュール７０６と、フィルタモジュール７０８とを含む。
【０１０９】
一例では、領域／ブロック分類モジュール７０２は、ビデオフレームのパーティションと分類の指示（たとえば、ブロックベースの分類または領域ベースの分類）とを受信し、パーティションに関連する値に基づいてパーティションを分類するように構成され得る。たとえば、領域／ブロック分類モジュール７０４は、図４および５に関して上記で説明した技法に基づいてピクセルを分類し得る。たとえば、領域／ブロック分類モジュール７０２は、４×４ビデオブロックを受信し、上記で説明した方向およびアクティビティ計算を使用してブロックをクラス０〜１５のうちの１つとして分類し得る。場合によっては、分類値はフィルタシンタックス中に含まれ得ることに留意されたい。
【０１１０】
一例では、ピクセル分類モジュール７０４は、フィルタシンタックスからＳＡＯ技法の指示を受信し、再構成されたビデオブロックのピクセル値に基づいてピクセルを分類するように構成され得る。一例では、ピクセル分類モジュール７０４は、上記の図１〜図３に関して上記で説明した技法に基づいてピクセルを分類し得る。さらに、上記で説明したように、ピクセル分類は、ビデオデータの領域またはブロックに関連する分類に基づいて判断され得る。したがって、場合によっては、ピクセル分類モジュール７０４は、ブロックベースの分類を受信し、分類に基づいてＳＡＯ技法を判断し得る。場合によっては、ピクセル分類値はフィルタシンタックス中に含まれ得ることに留意されたい。
【０１１１】
フィルタパラメータモジュール７０６は、パーティションのオフセットタイプ値と分類とのセットを受信し、対応するフィルタ係数およびオフセット値およびフィルタ係数を判断するように構成され得る。フィルタパラメータモジュール７０６は、判断された分類に基づいてＡＣおよび／またはＤＣフィルタ係数を判断するように構成され得る。別の例では、ＡＣおよび／またはＤＣフィルタ係数は、符号化ビットストリーム中のフィルタシンタックス中に含まれ得る。さらに、フィルタ係数は事前計算され得、フィルタ係数計算モジュール７０６は、領域またはブロックに関連する分類に基づいてフィルタ係数をルックアップするように構成され得る。
【０１１２】
さらに、図９に関して上記の例で説明したように、オフセット値シンタックスは、各オフセット値を明示的にシグナリングするシグナリング技法、またはオフセット値間の相関を利用する技法に基づき得る。フィルタパラメータモジュール７０６は、上記で説明したコーディングプロセスのいずれかに対する逆コーディングプロセスを実行することによってオフセット値を判断するように構成され得る。
【０１１３】
フィルタモジュール７０８は、再構成されたビデオブロックと、オフセット値と、フィルタ係数と、オフセット値とを受信し、フィルタ処理されたビデオブロックを出力するように構成され得る。フィルタモジュール７０８は、ＨＥＶＣのための提案において説明したウィーナーフィルタ処理技法またはＡＬＦ技法など、フィルタ処理係数を使用したフィルタ処理技法を実行するように構成され得る。さらに、フィルタモジュール７０８は、再構成されたビデオブロックにオフセット値を加算するように構成され得る。フィルタモジュール７０８は、ブロックまたは領域について係数の単一セットを使用してビデオデータの領域またはブロックにフィルタ処理技法を適用し、領域またはブロック内の各ピクセルにそれぞれのオフセット値を加算するように構成され得る。
【０１１４】
このようにして、ビデオデコーダ３０、ＳＡＯ／ＡＬＦモジュール７９、領域／ブロック分類モジュール７０２、ピクセル分類モジュール７０４、フィルタパラメータモジュール７０６、および／またはフィルタモジュール７０８は、ビデオデータのブロックを受信することであって、ビデオデータのブロックが複数のサンプル値を含む、受信することと、ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、１つまたは複数のフィルタ係数に少なくとも部分的に基づいて、複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、判断された１つまたは複数のフィルタ係数と判断されたそれぞれのオフセット値とに基づいてビデオデータのブロックをフィルタ処理することとを行うように構成され得る。
【０１１５】
図１３は、本開示の技法に従ってフィルタ処理技法を適用する一例を示すフローチャートである。図１３のプロセスについて、ビデオＳＡＯ／ＡＬＦモジュール７９に関して以下で説明するが、このプロセスは、ビデオデコーダ３０、ＳＡＯ／ＡＬＦモジュール７９、領域／ブロック分類モジュール７０２、ピクセル分類モジュール７０４、フィルタパラメータモジュール７０６、および／またはフィルタモジュール７０８の任意の組合せによって実行され得る。
【０１１６】
図１３に示すように、ＳＡＯ／ＡＬＦモジュール７９は、再構成されたビデオブロックを受信する（１３０２）。再構成されたビデオブロックは予測技法に従って生成され得る。場合によっては、再構成されたビデオブロックがＳＡＯ／ＡＬＦモジュール７９によって受信される前にそれらにデブロッキングフィルタが適用され得る。ＳＡＯ／ＡＬＦモジュール７９はビデオブロックのフィルタ係数を受信する（１３０４）。フィルタ係数は、ＡＣ係数、ＤＣ係数、またはＡＣ係数とＤＣ係数を含み得る。フィルタ係数は、上記で説明した技法に従って生成されたウィーナーフィルタプロセスとＡＬＦフィルタプロセスとに対応し得る。ＳＡＯ／ＡＬＦモジュール７９は、ビデオブロック内のサンプルのためのオフセット値を受信する（１３０６）。オフセット値は、エッジオフセット分類または帯域オフセット分類に対応し得、上記で説明した技法を使用して判断され得る。ＳＡＯ／ＡＬＦモジュール４５は、受信されたフィルタ係数およびオフセット値を使用して再構成されたビデオブロックをフィルタ処理する（１３０８）。再構成されたビデオブロックをフィルタ処理することは、再構成されたビデオブロック中のピクセル値にＳＡＯオフセットを加算すること、および／またはビデオブロック内のピクセル値のすべてにフィルタ係数のセットを乗算することを含み得る。ＳＡＯ／ＡＬＦモジュール７９は、フィルタ処理された再構成されたビデオブロックを出力する（１３１０）。フィルタ処理された再構成されたビデオブロックは、後続の予測のために使用されるために参照フレームバッファに出力され得る。
【０１１７】
ビデオエンコーダ２０は、ビデオコーディングプロセスにおいてサンプル適応オフセットプロセスと適応ループフィルタプロセスとを実行するために本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ３０は、ビデオコーディングプロセスにおいてサンプル適応オフセットプロセスと適応ループフィルタプロセスとを実行するためにこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。
【０１１８】
１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１１９】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１２０】
命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成される専用ハードウェアおよび／またはソフトウェアモジュール内に提供され得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１２１】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されるデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１２２】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオコーディングプロセスにおいてビデオデータをフィルタ処理する方法であって、
ビデオデータのブロックを受信することと、ここで、前記ビデオデータのブロックが複数のサンプル値を含む、
前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、
前記１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することと
を備える方法。
［Ｃ２］
前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することは、１つまたは複数のＡＣ係数を判断することと、ＤＣ係数を判断しないこととを含む、
［Ｃ１］に記載の方法。
［Ｃ３］
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、ＳＡＯフィルタ適用なしと、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジと、１Ｄ４５度未満エッジと、１Ｄ１３５度超エッジと、中心帯フィルタと、側波帯フィルタとを含む、
［Ｃ１］に記載の方法。
［Ｃ４］
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジとを含む、
［Ｃ１］に記載の方法。
［Ｃ５］
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックのための方向性アクティビティを判断することを含み、ＳＡＯオフセットフィルタモードを選択することは、前記方向性アクティビティに少なくとも部分的に基づいてＳＡＯフィルタモードを選択することを含む、
［Ｃ４］に記載の方法。
［Ｃ６］
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックの方向性アクティビティに基づいて前記ビデオデータのブロックのための分類を判断することを含み、それぞれのオフセット値を判断することは、前記分類が小さい方向性アクティビティを示すときにＳＡＯフィルタを適用しないと判断することを含む、
［Ｃ１］に記載の方法。
［Ｃ７］
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することは、前記１つまたは複数のフィルタ係数を重み値として使用し、それぞれのサンプル値に前記それぞれのオフセット値を加算することによって、前記ビデオデータのブロック中の前記サンプルのうちの前記１つまたは複数の前記値を調整することを含む、
［Ｃ１］に記載の方法。
［Ｃ８］
前記ビデオデータのブロックは、ビデオデータのサンプル値ブロックの４×４アレイである、
［Ｃ１］に記載の方法。
［Ｃ９］
前記ビデオデータのブロックは、ビデオフレームの１６個の領域のうちの１つである、
［Ｃ１］に記載の方法。
［Ｃ１０］
予測技法を使用して前記ビデオデータのブロックを符号化することと、符号化ビットストリーム中で前記１つまたは複数のフィルタ係数とそれぞれのオフセット値とをシグナリングすることとをさらに備える、
［Ｃ１］に記載の方法。
［Ｃ１１］
符号化ビットストリームから前記ビデオデータのブロックを復号することをさらに備え、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することは、符号化ビットストリームから前記それぞれのオフセット値を復号することを含む、
［Ｃ１］に記載の方法。
［Ｃ１２］
ビデオコーディングプロセスにおいてビデオデータをフィルタ処理するように構成される装置であって、
ビデオデータのブロックを受信するための手段と、ここで、前記ビデオデータのブロックは、複数のサンプル値を含む、
前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断するための手段と、
前記１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断するための手段と、
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理するための手段と
を備える装置。
［Ｃ１３］
前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することは、１つまたは複数のＡＣ係数を判断することと、ＤＣ係数を判断しないこととを含む、
［Ｃ１２］に記載の装置。
［Ｃ１４］
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、ＳＡＯフィルタ適用なしと、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジと、１Ｄ４５度未満エッジと、１Ｄ１３５度超エッジと、中心帯フィルタと、側波帯フィルタとを含む、
［Ｃ１２］に記載の装置。
［Ｃ１５］
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジとを含む、
［Ｃ１２］に記載の装置。
［Ｃ１６］
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックのための方向性アクティビティを判断することを含み、ＳＡＯオフセットフィルタモードを選択することは、前記方向性アクティビティに少なくとも部分的に基づいてＳＡＯフィルタモードを選択することを含む、
［Ｃ１５］に記載の装置。
［Ｃ１７］
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックの方向性アクティビティに基づいて前記ビデオデータのブロックのための分類を判断することを含み、それぞれのオフセット値を判断することは、前記分類が小さい方向性アクティビティを示すときにＳＡＯフィルタを適用しないと判断することを含む、
［Ｃ１２］に記載の装置。
［Ｃ１８］
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することは、前記１つまたは複数のフィルタ係数を重み値として使用し、それぞれのサンプル値に前記それぞれのオフセット値を加算することによって、前記ビデオデータのブロック中の前記サンプルのうちの前記１つまたは複数の前記値を調整することを含む、
［Ｃ１２］に記載の装置。
［Ｃ１９］
前記ビデオデータのブロックは、ビデオデータのサンプル値ブロックの４×４アレイである、
［Ｃ１２］に記載の装置。
［Ｃ２０］
前記ビデオデータのブロックは、ビデオフレームの１６個の領域のうちの１つである、
［Ｃ１２］に記載の装置。
［Ｃ２１］
予測技法を使用して前記ビデオデータのブロックを符号化するための手段と、符号化ビットストリーム中で前記１つまたは複数のフィルタ係数とそれぞれのオフセット値とをシグナリングするための手段とをさらに備える、
［Ｃ１２］に記載の装置。
［Ｃ２２］
符号化ビットストリームから前記ビデオデータのブロックを復号するための手段をさらに備え、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することは、符号化ビットストリームから前記それぞれのオフセット値を復号することを含む、
［Ｃ１２］に記載の装置。
［Ｃ２３］
ビデオコーダを備えるデバイスであって、前記ビデオコーダは、
ビデオデータのブロックを受信することと、ここで、前記ビデオデータのブロックは、複数のサンプル値を含む、
前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、
前記１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することと
を行うように構成される、デバイス。
［Ｃ２４］
前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することは、１つまたは複数のＡＣ係数を判断することと、ＤＣ係数を判断しないこととを含む、
［Ｃ２３］に記載のデバイス。
［Ｃ２５］
それぞれのオフセット値を判断するように構成されることは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、ＳＡＯフィルタ適用なしと、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジと、１Ｄ４５度未満エッジと、１Ｄ１３５度超エッジと、中心帯フィルタと、側波帯フィルタとを含む、
［Ｃ２３］に記載のデバイス。
［Ｃ２６］
それぞれのオフセット値を判断するように構成されることは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジとを含む、
［Ｃ２３］に記載のデバイス。
［Ｃ２７］
１つまたは複数のフィルタ係数を判断するように構成されることは、前記ビデオデータのブロックのための方向性アクティビティを判断することを含み、ＳＡＯオフセットフィルタモードを選択するように構成されることは、前記方向性アクティビティに少なくとも部分的に基づいてＳＡＯフィルタモードを選択することを含む、
［Ｃ２６］に記載のデバイス。
［Ｃ２８］
１つまたは複数のフィルタ係数を判断するように構成されることは、前記ビデオデータのブロックの方向性アクティビティに基づいて前記ビデオデータのブロックのための分類を判断することを含み、それぞれのオフセット値を判断することは、前記分類が小さい方向性アクティビティを示すときにＳＡＯフィルタを適用しないと判断することを含む、
［Ｃ２３］に記載のデバイス。
［Ｃ２９］
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理するように構成されることは、前記１つまたは複数のフィルタ係数を重み値として使用し、それぞれのサンプル値に前記それぞれのオフセット値を加算することによって、前記ビデオデータのブロック中の前記サンプルのうちの前記１つまたは複数の前記値を調整することを含む、
［Ｃ２３］に記載のデバイス。
［Ｃ３０］
前記ビデオデータのブロックは、ビデオデータのサンプル値ブロックの４×４アレイである、
［Ｃ２３］に記載のデバイス。
［Ｃ３１］
前記ビデオデータのブロックは、ビデオフレームの１６個の領域のうちの１つである、
［Ｃ２３］に記載のデバイス。
［Ｃ３２］
前記ビデオコーディングデバイスは、ビデオエンコーダを備え、予測技法を使用して前記ビデオデータのブロックを符号化することと、符号化ビットストリーム中で前記１つまたは複数のフィルタ係数とそれぞれのオフセット値とをシグナリングすることとを行うようにさらに構成される、
［Ｃ２３］に記載のデバイス。
［Ｃ３３］
前記ビデオコーディングデバイスは、ビデオデコーダを備え、前記ビデオデコーダは、符号化ビットストリームから前記ビデオデータのブロックを復号するように構成され、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断するように構成されることが、符号化ビットストリームから前記それぞれのオフセット値を復号することを含む、
［Ｃ２３］に記載のデバイス。
［Ｃ３４］
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されると、
ビデオデータのブロックを受信することと、ここで、前記ビデオデータのブロックが複数のサンプル値を含む、
前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することと、
前記１つまたは複数のフィルタ係数に関連する値に少なくとも部分的に基づいて、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することと、
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することと
をビデオコーディングデバイスの１つまたは複数のプロセッサに行わせる、非一時的コンピュータ可読記憶媒体。
［Ｃ３５］
前記ビデオデータのブロックのための１つまたは複数のフィルタ係数を判断することは、１つまたは複数のＡＣ係数を判断することと、ＤＣ係数を判断しないこととを含む、
［Ｃ３４］に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３６］
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、ＳＡＯフィルタ適用なしと、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジと、１Ｄ４５度未満エッジと、１Ｄ１３５度超エッジと、中心帯フィルタと、側波帯フィルタとを含む、
［Ｃ３４］に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３７］
それぞれのオフセット値を判断することは、ＳＡＯフィルタモードのセットからＳＡＯフィルタモードを選択することを含み、前記ＳＡＯフィルタモードのセットは、１Ｄ０度エッジと、１Ｄ９０度エッジと、１Ｄ１３５度エッジと、１Ｄ４５度エッジとを含む、
［Ｃ３４］に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３８］
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックのための方向性アクティビティを判断することを含み、ＳＡＯオフセットフィルタモードを選択することは、前記方向性アクティビティに少なくとも部分的に基づいてＳＡＯフィルタモードを選択することを含む、
［Ｃ３７］に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３９］
１つまたは複数のフィルタ係数を判断することは、前記ビデオデータのブロックの方向性アクティビティに基づいて前記ビデオデータのブロックのための分類を判断することを含み、それぞれのオフセット値を判断することは、前記分類が小さい方向性アクティビティを示すときにＳＡＯフィルタを適用しないと判断することを含む、
［Ｃ３４］に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ４０］
前記判断された１つまたは複数のフィルタ係数と前記判断されたそれぞれのオフセット値とに基づいて前記ビデオデータのブロックをフィルタ処理することは、前記１つまたは複数のフィルタ係数を重み値として使用し、それぞれのサンプル値に前記それぞれのオフセット値を加算することによって、前記ビデオデータのブロック中の前記サンプルのうちの前記１つまたは複数の前記値を調整することを含む、
［Ｃ３４］に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ４１］
前記ビデオデータのブロックは、ビデオデータのサンプル値ブロックの４×４アレイである、
［Ｃ３４］に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ４２］
前記ビデオデータのブロックは、ビデオフレームの１６個の領域のうちの１つである、
［Ｃ３４］に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ４３］
前記命令が、実行されると、予測技法を使用して前記ビデオデータのブロックを符号化することと、符号化ビットストリーム中で前記１つまたは複数のフィルタ係数とそれぞれのオフセット値とをシグナリングすることとをビデオコーディングデバイスにさらに行わせる、
［Ｃ３４］に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ４４］
前記命令が、実行されると、符号化ビットストリームから前記ビデオデータのブロックを復号することをビデオコーディングデバイスにさらに行わせ、前記複数のサンプル値の各々のためのそれぞれのオフセット値を判断することが、符号化ビットストリームから前記それぞれのオフセット値を復号することを含む、
［Ｃ３４］に記載の非一時的コンピュータ可読記憶媒体。
【図１】
0005922244.tif 000006
【図２】
0005922244.tif 000007
【図３】
0005922244.tif 000008
【図４】
0005922244.tif 000009
【図５】
0005922244.tif 000010
【図６】
0005922244.tif 000011
【図７】
0005922244.tif 000012
【図８Ａ】
0005922244.tif 000013
【図８Ｂ】
0005922244.tif 000014
【図９】
0005922244.tif 000015
【図１０】
0005922244.tif 000016
【図１１】
0005922244.tif 000017
【図１２】
0005922244.tif 000018
【図１３】
0005922244.tif 000019