(57)【特許請求の範囲】
【請求項１】
ビデオコーディングプロセスにおける適応ループフィルタ処理の方法であって、
ピクセルのブロックに対してルーマ適応ループフィルタ処理を実行すべきかどうかを判断することと、
ピクセルの前記ブロックに対してクロマ適応ループフィルタ処理を実行すべきかどうかを判断することであって、クロマ適応ループフィルタ処理を実行すべきかどうかを判断することが、ルーマ適応ループフィルタ処理を実行すべきかどうかを判断することとは無関係に実行される、判断することと、
ルーマ適応ループフィルタ処理を実行することを判断したことに応答して、ピクセルの前記ブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、
クロマ適応ループフィルタ処理を実行することを判断したことに応答して、ピクセルの前記ブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することと、
ブロックベース分類モードおよび領域ベース分類モードのうちの１つに基づいて、前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理の両方のためのフィルタ係数を導出することと
を備え、
前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理は、ルーマ成分とクロマ成分とについて独立したＣＵレベルＡＬＦフラグを使用することによって実行される、方法。
【請求項２】
ピクセルの前記ブロックの前記ルーマ成分および前記クロマ成分が、４：２：０、４：２：２または４：４：４フォーマットである、請求項１に記載の方法。
【請求項３】
クロマ適応ループフィルタ処理を実行することを判断することが、ＣＵレベルＡＬＦオン／オフフラグの値を判断することを含む、請求項１に記載の方法。
【請求項４】
クロマ適応ループフィルタ処理のためにルーマ適応ループフィルタ処理のフィルタ情報を共有すること
をさらに備える、請求項１に記載の方法。
【請求項５】
前記フィルタ情報が、ＣＵレベルオン／オフフラグ、フィルタ係数、および／またはブロックベース分類を含む、請求項４に記載の方法。
【請求項６】
ルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマ適応ループフィルタ処理のための前記フィルタ係数を予測すること
をさらに備える、請求項１に記載の方法。
【請求項７】
クロマ適応ループフィルタ処理のための前記フィルタ係数を予測することが、差分を作成するためにルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマフィルタ係数を減算することを含む、請求項６に記載の方法。
【請求項８】
クロマ適応ループフィルタ処理を実行することが、ピクセルの前記ブロックのＣｒクロマ成分のためのＣｒクロマ適応ループフィルタ処理を実行することと、ピクセルの前記ブロックのためのＣｂクロマ成分のためのＣｂクロマ適応ループフィルタ処理を実行することとを含む、請求項１に記載の方法。
【請求項９】
Ｃｂクロマ適応ループフィルタ処理のためにＣｒクロマ適応ループフィルタ処理のフィルタ情報を共有すること
をさらに備える、請求項８に記載の方法。
【請求項１０】
前記フィルタ情報が、ＣＵレベルオン／オフマップ、フィルタ係数、および／またはブロックベース分類を含む、請求項９に記載の方法。
【請求項１１】
前記ＣＵレベルオン／オフマップがＣＵレベルオン／オフフラグの値を含み、１の値をもつＣＵレベルオン／オフフラグは、ＡＬＦがピクセルの前記ブロックのために実行されることを示し、値０をもつＣＵレベルオン／オフフラグは、ＡＬＦがピクセルの前記ブロックのために実行されないことを示す、請求項１０に記載の方法。
【請求項１２】
Ｃｒクロマ適応ループフィルタ処理のための前記フィルタ係数からＣｂクロマ適応ループフィルタ処理のための前記フィルタ係数を予測すること
をさらに備える、請求項８に記載の方法。
【請求項１３】
前記ビデオコーディングプロセスがビデオ符号化プロセスであり、前記方法が、
符号化ビデオデータを作成するためにビデオデータを符号化することと、
再構成ビデオデータを作成するために前記符号化ビデオデータを再構成することであって、ピクセルの前記ブロックが再構成ビデオデータである、再構成することと、
前記ルーマ適応ループフィルタ処理に関係するフィルタ情報および前記クロマ適応ループフィルタ処理に関係するフィルタ情報のうちの１つまたは複数をシグナリングすることと
をさらに備える、請求項１に記載の方法。
【請求項１４】
前記ビデオコーディングプロセスがビデオ復号プロセスであり、前記方法が、
前記ルーマ適応ループフィルタ処理に関係するフィルタ情報および前記クロマ適応ループフィルタ処理に関係するフィルタ情報のうちの１つまたは複数を受信することと、
符号化ビデオデータを受信することと、
復号ビデオデータを作成するために前記符号化ビデオデータを復号することであって、ピクセルの前記ブロックが復号ビデオデータである、復号することと
をさらに備える、請求項１に記載の方法。
【請求項１５】
ビデオコーディングプロセスにおいて適応ループフィルタ処理を実行するように構成された装置であって、
ピクセルのブロックに対してルーマ適応ループフィルタ処理を実行すべきかどうかを判断することと、
ピクセルの前記ブロックに対してクロマ適応ループフィルタ処理を実行すべきかどうかを判断することであって、クロマ適応ループフィルタ処理を実行すべきかどうかを判断することが、ルーマ適応ループフィルタ処理を実行すべきかどうかを判断することとは無関係に実行される、判断することと、
ルーマ適応ループフィルタ処理を実行することを判断したことに応答して、ピクセルの前記ブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、
クロマ適応ループフィルタ処理を実行することを判断したことに応答して、ピクセルの前記ブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することと、
ブロックベース分類モードおよび領域ベース分類モードのうちの１つに基づいて、前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理の両方のためのフィルタ係数を導出することと
を行うように構成されたビデオコーダ
を備え、
前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理は、ルーマ成分とクロマ成分とについて独立したＣＵレベルＡＬＦフラグを使用することによって実行される、装置。
【請求項１６】
ピクセルの前記ブロックの前記ルーマ成分および前記クロマ成分が、４：２：０、４：２：２または４：４：４フォーマットである、請求項１５に記載の装置。
【請求項１７】
前記ビデオコーダが、ＣＵレベルＡＬＦオン／オフフラグの値を判断するようにさらに構成された、請求項１５に記載の装置。
【請求項１８】
前記ビデオコーダが、
クロマ適応ループフィルタ処理のためにルーマ適応ループフィルタ処理のフィルタ情報を共有すること
を行うようにさらに構成された、請求項１５に記載の装置。
【請求項１９】
前記フィルタ情報が、ＣＵレベルオン／オフフラグ、フィルタ係数、および／またはブロックベース分類を含む、請求項１８に記載の装置。
【請求項２０】
前記ビデオコーダが、
ルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマ適応ループフィルタ処理のための前記フィルタ係数を予測すること
を行うようにさらに構成された、請求項１５に記載の装置。
【請求項２１】
前記ビデオコーダが、
差分を作成するためにルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマフィルタ係数を減算すること
を行うようにさらに構成された、請求項２０に記載の装置。
【請求項２２】
前記ビデオコーダが、ピクセルの前記ブロックのＣｒクロマ成分のためのＣｒクロマ適応ループフィルタ処理を実行することと、ピクセルの前記ブロックのためのＣｂクロマ成分のためのＣｂクロマ適応ループフィルタ処理を実行することとを行うようにさらに構成された、請求項１５に記載の装置。
【請求項２３】
前記ビデオコーダが、
Ｃｂクロマ適応ループフィルタ処理のためにＣｒクロマ適応ループフィルタ処理のフィルタ情報を共有すること
を行うようにさらに構成された、請求項２２に記載の装置。
【請求項２４】
前記フィルタ情報が、ＣＵレベルオン／オフマップ、フィルタ係数、および／またはブロックベース分類を含む、請求項２３に記載の装置。
【請求項２５】
前記ＣＵレベルオン／オフマップがＣＵレベルオン／オフフラグの値を含み、１の値をもつＣＵレベルオン／オフフラグは、ＡＬＦがピクセルの前記ブロックのために実行されることを示し、値０をもつＣＵレベルオン／オフフラグは、ＡＬＦがピクセルの前記ブロックのために実行されないことを示す、請求項２４に記載の装置。
【請求項２６】
前記ビデオコーダが、
Ｃｒクロマ適応ループフィルタ処理のための前記フィルタ係数からＣｂクロマ適応ループフィルタ処理のための前記フィルタ係数を予測すること
を行うようにさらに構成された、請求項２２に記載の装置。
【請求項２７】
前記ビデオコーダがビデオエンコーダであり、前記ビデオエンコーダが、
符号化ビデオデータを作成するためにビデオデータを符号化することと、
再構成ビデオデータを作成するために前記符号化ビデオデータを再構成することであって、ピクセルの前記ブロックが再構成ビデオデータである、再構成することと、
前記ルーマ適応ループフィルタ処理に関係するフィルタ情報および前記クロマ適応ループフィルタ処理に関係するフィルタ情報のうちの１つまたは複数をシグナリングすることと
を行うようにさらに構成された、請求項１５に記載の装置。
【請求項２８】
前記ビデオコーダがビデオデコーダであり、前記ビデオデコーダが、
前記ルーマ適応ループフィルタ処理に関係するフィルタ情報および前記クロマ適応ループフィルタ処理に関係するフィルタ情報のうちの１つまたは複数を受信することと、
符号化ビデオデータを受信することと、
復号ビデオデータを作成するために前記符号化ビデオデータを復号することであって、ピクセルの前記ブロックが復号ビデオデータである、復号することと
を行うようにさらに構成された、請求項１５に記載の装置。
【請求項２９】
ビデオコーディングプロセスにおいて適応ループフィルタ処理を実行するように構成された装置であって、
ピクセルのブロックに対してルーマ適応ループフィルタ処理を実行すべきかどうかを判断するための手段と、
ピクセルの前記ブロックに対してクロマ適応ループフィルタ処理を実行すべきかどうかを判断するための手段であって、クロマ適応ループフィルタ処理を実行すべきかどうかを判断することが、ルーマ適応ループフィルタ処理を実行すべきかどうかを判断することとは無関係に実行される、判断するための手段と、
ルーマ適応ループフィルタ処理を実行することを判断したことに応答して、ピクセルの前記ブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行するための手段と、
クロマ適応ループフィルタ処理を実行することを判断したことに応答して、ピクセルの前記ブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行するための手段と、
ブロックベース分類モードおよび領域ベース分類モードのうちの１つに基づいて、前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理の両方のためのフィルタ係数を導出するための手段と
を備え、
前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理は、ルーマ成分とクロマ成分とについて独立したＣＵレベルＡＬＦフラグを使用することによって実行される、装置。
【請求項３０】
ピクセルの前記ブロックの前記ルーマ成分および前記クロマ成分が、４：２：０、４：２：２または４：４：４フォーマットである、請求項２９に記載の装置。
【請求項３１】
クロマ適応ループフィルタ処理を実行することを判断するための前記手段が、ＣＵレベルＡＬＦオン／オフフラグの値を判断するための手段を含む、請求項２９に記載の装置。
【請求項３２】
クロマ適応ループフィルタ処理のためにルーマ適応ループフィルタ処理のフィルタ情報を共有するための手段
をさらに備える、請求項２９に記載の装置。
【請求項３３】
前記フィルタ情報が、ＣＵレベルオン／オフフラグ、フィルタ係数、および／またはブロックベース分類を含む、請求項３２に記載の装置。
【請求項３４】
ルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマ適応ループフィルタ処理のための前記フィルタ係数を予測するための手段
をさらに備える、請求項２９に記載の装置。
【請求項３５】
クロマ適応ループフィルタ処理のための前記フィルタ係数を予測するための前記手段が、差分を作成するためにルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマフィルタ係数を減算するための手段を含む、請求項３４に記載の装置。
【請求項３６】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、実行されたとき、ビデオコーディングプロセスにおいて適応ループフィルタ処理を実行するように構成されたデバイスの１つまたは複数のプロセッサに、
ピクセルのブロックに対してルーマ適応ループフィルタ処理を実行すべきかどうかを判断することと、
ピクセルの前記ブロックに対してクロマ適応ループフィルタ処理を実行すべきかどうかを判断することであって、クロマ適応ループフィルタ処理を実行すべきかどうかを判断することが、ルーマ適応ループフィルタ処理を実行すべきかどうかを判断することとは無関係に実行される、判断することと、
ルーマ適応ループフィルタ処理を実行することを判断したことに応答して、ピクセルの前記ブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、
クロマ適応ループフィルタ処理を実行することを判断したことに応答して、ピクセルの前記ブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することと、
ブロックベース分類モードおよび領域ベース分類モードのうちの１つに基づいて、前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理の両方のためのフィルタ係数を導出することと
を行わせ、
前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理は、ルーマ成分とクロマ成分とについて独立したＣＵレベルＡＬＦフラグを使用することによって実行される、コンピュータ可読記憶媒体。
【請求項３７】
ピクセルの前記ブロックの前記ルーマ成分および前記クロマ成分が、４：２：０、４：２：２または４：４：４フォーマットである、請求項３６に記載のコンピュータ可読記憶媒体。
【請求項３８】
クロマ適応ループフィルタ処理を実行することを判断することが、ＣＵレベルＡＬＦオン／オフフラグの値を判断することを含む、請求項３６に記載のコンピュータ可読記憶媒体。
【請求項３９】
前記命令がさらに、前記１つまたは複数のプロセッサに、
クロマ適応ループフィルタ処理のためにルーマ適応ループフィルタ処理のフィルタ情報を共有すること
を行わせる、請求項３６に記載のコンピュータ可読記憶媒体。
【請求項４０】
前記フィルタ情報が、ＣＵレベルオン／オフフラグ、フィルタ係数、および／またはブロックベース分類を含む、請求項３９に記載のコンピュータ可読記憶媒体。
【請求項４１】
前記命令がさらに、前記１つまたは複数のプロセッサに、
ルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマ適応ループフィルタ処理のための前記フィルタ係数を予測すること
を行わせる、請求項３６に記載のコンピュータ可読記憶媒体。
【請求項４２】
クロマ適応ループフィルタ処理のための前記フィルタ係数を予測することが、差分を作成するためにルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマフィルタ係数を減算することを含む、請求項４１に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、２０１１年１０月２１日に出願された米国仮出願第６１／５５０，２５９号の利益を主張する。
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングプロセスにおけるクロマ成分のための適応ループフィルタ処理のための技法に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）によって定義された規格、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法のような、ビデオ圧縮技法を実装する。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を含む。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測、あるいは他の参照フレーム中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。最初は２次元アレイに構成される、量子化された変換係数は、特定の順序で走査されて、エントロピーコーディングのための変換係数の１次元ベクトルが生成され得る。
【発明の概要】
【０００５】
概して、本開示では、ビデオデータをコーディングするための技法について説明する。特に、本開示では、ビデオコーディングのための適応ループフィルタ（ＡＬＦ：adaptive loop filter）プロセスのための技法について説明する。本開示は、ＡＬＦプロセスにおいてクロマ成分をフィルタ処理する際により多くのフレキシビリティを可能にするための技法を提案する。
【０００６】
本開示の一例では、ビデオコーディングプロセスにおける適応ループフィルタ処理のための方法が開示される。本方法は、ピクセルのブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、ピクセルのブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することとを含み、ルーマ適応ループフィルタ処理とクロマ適応ループフィルタ処理の両方のためのフィルタ係数がブロックベースモード（block-based mode）または領域ベースモード（region-based mode）から導出される。ピクセルのブロックのクロマ成分は、４：２：０、４：２：２または４：４：４ピクセルフォーマットであり得る。
【０００７】
本開示の別の例では、本方法は、ピクセルのブロックに対してルーマ適応ループフィルタ処理を実行することを判断することと、ピクセルのブロックに対してクロマ適応ループフィルタ処理を実行することを判断することであって、クロマ適応ループフィルタ処理を実行することを判断することが、ルーマ適応ループフィルタ処理を実行することを判断することとは無関係に実行される、判断することとをさらに含み得る。クロマ適応ループフィルタ処理を実行することを判断することは、ＣＵレベルＡＬＦオン／オフフラグをシグナリングすることまたは受信することを含み得る。
【０００８】
本開示の別の例では、ルーマ適応ループフィルタ処理のためのフィルタ情報は、クロマ適応ループフィルタ処理のために使用される。フィルタ情報は、ＣＵレベルオン／オフマップ、フィルタ係数、および／またはブロックベース分類を含み得る。
【０００９】
本開示の別の例では、クロマ適応ループフィルタ処理のためのフィルタ係数は、ルーマ適応ループフィルタ処理のためのフィルタ係数から予測される。
【００１０】
本開示の別の例では、クロマ適応ループフィルタ処理を実行することが、ピクセルのブロックのＣｒクロマ成分のためのＣｒクロマ適応ループフィルタ処理を実行することと、ピクセルのブロックのためのＣｂクロマ成分のためのＣｂクロマ適応ループフィルタ処理を実行することとを含み得る。Ｃｒクロマ適応ループフィルタ処理のためのフィルタ情報は、Ｃｂクロマ適応ループフィルタ処理のために使用され得る。フィルタ情報は、ＣＵレベルオン／オフマップ、フィルタ係数、および／またはブロックベース分類を含む。本開示の別の例では、Ｃｂクロマ適応ループフィルタ処理のためのフィルタ係数は、Ｃｒクロマ適応ループフィルタ処理のためのフィルタ係数から予測される。
【００１１】
また、本開示の技法について、技法を実行するように構成された装置およびデバイス、ならびに１つまたは複数のプロセッサに技法を実行させ得る命令を記憶するコンピュータ可読記憶媒体に関して説明する。
【００１２】
１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】例示的なビデオ符号化および復号システムを示すブロック図。
【図２】適応ループフィルタのための領域ベース分類を示す概念図。
【図３】適応ループフィルタのためのブロックベース分類を示す概念図。
【図４】例示的なコーディングユニット（ＣＵ：coding unit）レベルＡＬＦオン／オフフラグマップを示す概念図。
【図５】別の例示的なコーディングユニット（ＣＵ）レベルＡＬＦオン／オフフラグマップを示す概念図。
【図６】例示的なビデオエンコーダを示すブロック図。
【図７】例示的なビデオデコーダを示すブロック図。
【図８】本開示の技法による例示的な符号化方法を示すフローチャート。
【図９】本開示の技法による例示的な復号方法を示すフローチャート。
【詳細な説明】
【００１４】
概して、本開示では、ビデオデータをコーディングするための技法について説明する。特に、本開示では、ビデオコーディングプロセスにおけるクロマ成分の適応ループフィルタ処理（ＡＬＦ：adaptive loop filtering）のための技法について説明する。
【００１５】
ＡＬＦを適用するための以前の技法では、ピクセルのルーマ成分とクロマ成分とを別様に扱った。特に、ルーマ成分のローカル領域またはアクティビティに基づいて、ルーマ成分のために使用するために、複数の可能なＡＬＦの中から特定のＡＬＦが選定される。したがって、ルーマ成分のためのＡＬＦはフレキシブルであり、ビデオの特定のシーンに、より適合される。一方、クロマ成分のためにただ１つのＡＬＦが使用され、それの使用は使用されているルーマＡＬＦに依存する。クロマ成分のためにただ１つのＡＬＦを使用すること、ならびにルーマ成分のためのＡＬＦと無関係にクロマ成分のためのＡＬＦを適用しないことは、クロマサンプリングフォーマットとも呼ばれる、４：２：０ピクセルサンプリングフォーマットのためのＡＬＦの品質を限定し得る。したがって、本開示は、ＡＬＦにおいてクロマ成分をフィルタ処理する際により多くのフレキシビリティを可能にするための技法を提案する。他の例では、クロマ成分のＡＬＦのための本開示の技法は４：２：０ピクセルフォーマットだけに限定されない。本開示のＡＬＦ技法は、４：２：２および４：４：４ピクセルフォーマットなど、他のピクセルフォーマットのクロマ成分に適用され得る。
【００１６】
デジタルビデオデバイスは、デジタルビデオ情報をより効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（フレーム内（intra-frame））予測および／または時間的（フレーム間（inter-frame））予測技法を適用し得る。
【００１７】
ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）とＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって開発されている新しいビデオコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）がある。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ８」または「ＷＤ８」と呼ばれるＨＥＶＣ規格の最近のドラフトは、２０１２年１０月１５日現在、http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zipからダウンロード可能である、ドキュメントＪＣＴＶＣ−Ｊ１００３、Ｂｒｏｓｓら、「High efficiency video coding (HEVC) text specification draft 6」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）、第１０回会合：Ｓｔｏｃｋｈｏｌｍ，ＳＥ、２０１２年７月１１〜２０日に記載されている。
【００１８】
ＨＥＶＣによるビデオコーディングの場合、一例として、ビデオフレームはコーディングユニットに区分され得る。コーディングユニット（ＣＵ）は、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。ＣＵは、通常、Ｙとして示されることがあるルミナンス成分と、ＣｒおよびＣｂとして示されることがある２つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプルの数で表されるＣｒおよびＣｂ成分のサイズは、Ｙ成分のサイズと同じであるかまたはそれとは異なり得る。ＣＵは、一般に方形であり、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４などの他のビデオコーディング規格の下で、いわゆるマクロブロックと同様であると見なされ得る。
【００１９】
ＣＵ中のピクセルのルーマ成分とクロマ成分とは異なるサブサンプリングフォーマットでコーディングされ得る。ＨＥＶＣのための１つの提案では、ピクセルのルーマ成分およびクロマ成分は４：２：０フォーマットでコーディングされる。４：２：０ピクセルフォーマットでは、ピクセルのあらゆる４×２ブロックについて、８つのルーマ成分（各行に４つ）および２つのクロマ成分（たとえば、４×２ブロックの第１の行中に１つのＣｒクロマ成分と１つのＣｂクロマ成分）がある。４×２ブロックの第２の行はクロマ情報を有しないことになる。したがって、ピクセルの４×２ブロックでは、クロマ成分は１／２水平解像度および１／２垂直解像度でサンプリングされる。ただし、ビデオコーディング技法は４：２：０のクロマサブサンプリングに限定されない。４：２：２および４：４：４を含む、他のサブサンプリングフォーマットが使用され得る。４：２：２ピクセルフォーマットでは、ピクセルのあらゆる４×２ブロックについて、８つのルーマ成分（各行に４つ）および４つのクロマ成分（たとえば、４×２ブロックの第１の行および第２の行の各々中に１つのＣｒクロマ成分と１つのＣｂクロマ成分）がある。したがって、４：２：２フォーマットでは、クロマ成分は１／２水平解像度および全垂直解像度でサンプリングされる。４：４：４ピクセルフォーマットはクロマ成分のサブサンプリングを伴わない。すなわち、ピクセルの４×２ブロックの場合、８つのルーマ成分、８つのＣｒ成分、および８つのＣｂ成分がある。
【００２０】
より良好なコーディング効率を達成するために、コーディングユニットは、ビデオコンテンツに応じて可変サイズを有し得る。さらに、コーディングユニットは、予測または変換のためにより小さいブロックに分割され得る。具体的には、各コーディングユニットは、予測ユニット（ＰＵ）と変換ユニット（ＴＵ）とにさらに区分され得る。ＰＵは、ＩＴＵ−Ｔ  Ｈ．２６４などの他のビデオコーディング規格の下でのいわゆるパーティションと同様であると見なされ得る。ＴＵは、変換係数を生成するために変換が適用される残差データのブロックを指す。
【００２１】
本開示では、例示のために、開発中のＨＥＶＣ規格の現在提案されている態様のいくつかに従うコーディングについて説明する。ただし、本開示で説明する技法は、Ｈ．２６４または他の規格に従って定義されるビデオコーディングプロセスあるいはプロプライエタリビデオコーディングプロセスなど、他のビデオコーディングプロセスのために有用であり得る。
【００２２】
ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスのモデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを与えるが、ＨＭは３５個ものイントラ予測符号化モードを与える。
【００２３】
ＨＭによれば、ＣＵは、１つまたは複数の予測ユニット（ＰＵ：prediction unit）および／または１つまたは複数の変換ユニット（ＴＵ：transform unit）を含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大ＣＵである最大コーディングユニット（ＬＣＵ）を定義し得る。概して、ＣＵは、ＣＵがサイズの差異を有しないことを除いて、Ｈ．２６４のマクロブロックと同様の目的を有する。したがって、ＣＵはサブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニットまたはＬＣＵのサブＣＵを指すことがある。ＬＣＵはサブＣＵに分割され得、各サブＣＵはさらにサブＣＵに分割され得る。ビットストリームのシンタックスデータは、ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。本開示ではまた、ＣＵ、ＰＵ、またはＴＵのいずれかを指すために「ブロック」、「パーティション」、または「部分」という用語を使用する。概して、「部分」は、ビデオフレームの任意のサブセットを指し得る。
【００２４】
ＬＣＵは４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。
【００２５】
その上、リーフＣＵのＴＵもそれぞれの４分木データ構造に関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。本開示では、ＬＣＵがどのように区分されるかを示す４分木をＣＵ４分木と呼び、リーフＣＵがどのようにＴＵに区分されるかを示す４分木をＴＵ４分木と呼ぶ。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、ＣＵ４分木のルートノードは概してＬＣＵに対応する。分割されないＴＵ４分木のＴＵはリーフＴＵと呼ばれる。
【００２６】
リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含み得る。たとえば、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルがポイントする参照フレーム、および／または動きベクトルの参照リスト（たとえば、リスト０もしくはリスト１）を記述し得る。（１つまたは複数の）ＰＵを定義するリーフＣＵのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが予測コーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかに応じて異なり得る。イントラコーディングの場合、ＰＵは、以下で説明するリーフ変換ユニットと同じように扱われ得る。
【００２７】
ブロック（たとえば、ビデオデータの予測ユニット（ＰＵ））をコーディングするために、ブロックの予測子（predictor）が最初に導出される。予測子は、イントラ（Ｉ）予測（すなわち、空間的予測）またはインター（ＰまたはＢ）予測（すなわち、時間的予測）のいずれかを通して導出され得る。したがって、いくつかの予測ユニットは、同じフレーム中の隣接参照ブロックに関する空間的予測を使用してイントラコーディング（Ｉ）され得、他の予測ユニットは、他のフレーム中の参照ブロックに関してインターコーディング（ＰまたはＢ）され得る。予測のために使用される参照ブロックは、いわゆる整数ピクセル位置における実際のピクセル値を参照サンプルとして含むか、または分数ピクセル位置（fractional pixel positions）における補間によって生成された合成ピクセル値を参照サンプルとして含み得る。
【００２８】
予測子が識別されると、元のビデオデータブロックとそれの予測子との間の差分が計算される。この差分は、予測残差とも呼ばれ、コード化されるべきブロックのピクセルと、参照ブロックの（上述のように、整数精度ピクセルまたは補間分数精度ピクセル（interpolated fractional-precision pixels）であり得る）対応する参照サンプル、すなわち、予測子との間のピクセル差分を指す。より良好な圧縮を達成するために、予測残差（すなわち、ピクセル差分値のアレイ）は、概して、たとえば、離散コサイン変換（ＤＣＴ）、整数変換、カルーネンレーベ（Karhunen-Loeve）（Ｋ−Ｌ）変換、または他の変換を使用してピクセル（すなわち、空間）領域から変換領域に変換される。変換領域は、たとえば、周波数領域であり得る。
【００２９】
インター予測を使用してＰＵをコーディングすることは、現在のブロックと参照フレーム中のブロックとの間の動きベクトルを計算することを伴う。動きベクトルは、動き推定（または動き探索）と呼ばれるプロセスを通して計算される。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在のフレーム中の予測ユニットの変位（displacement）を示し得る。参照サンプルは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of squared difference）、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得る。いくつかの例では、参照サンプルは、全体的にまたは部分的に補間され、分数ピクセル位置において発生し得る。現在の部分に最も良く一致する参照フレームの部分を見つけると、エンコーダは、現在の部分のための現在の動きベクトルを、現在の部分から参照フレーム中の一致する部分までの（たとえば、現在の部分の中心から一致する部分の中心までの）ロケーションの差分として判断する。
【００３０】
いくつかの例では、エンコーダは、符号化ビデオビットストリーム中で、各部分について動きベクトルをシグナリングし得る。シグナリングされた動きベクトルは、ビデオデータを復号するために、デコーダによって動き補償を実行するために使用される。
【００３１】
現在の部分について動きベクトルを判断するために動き推定が実行されると、エンコーダは、参照フレーム中の一致する部分を現在の部分と比較する。この比較は、一般に、上述のように、現在の部分から参照フレーム中の（「参照サンプル」と通常呼ばれる）部分を減算することを伴い、いわゆる残差データを生じる。残差データは、現在の部分と参照サンプルとの間のピクセル差分値を示す。エンコーダは、次いで、この残差データを空間領域から、周波数領域などの変換領域に変換する。通常、エンコーダは、この変換を達成するために、残差データに離散コサイン変換（ＤＣＴ）を適用する。得られた変換係数は異なる周波数を表し、エネルギーの大部分が、通常、数個の低周波係数（low frequency coefficients）に集中するので、エンコーダは、残差データの圧縮を可能にするためにこの変換を実行する。
【００３２】
一般に、得られた変換係数は、特に変換係数が最初に量子化される（丸められる）場合、エントロピーコーディングを可能にする方法で一緒にグループ化される。エンコーダは、次いで、ランレングス（run-length）コーディングされた量子化変換係数をさらに圧縮するために統計的ロスレス（またはいわゆる「エントロピー」）符号化を実行する。ロスレスエントロピーコーディングを実行した後に、エンコーダは、符号化ビデオデータを含むビットストリームを生成する。
【００３３】
ビデオ符号化プロセスはまた、いわゆる「再構成ループ」を含み得、それによって、符号化されたビデオブロックが復号され、後でコーディングされるビデオブロックのための参照フレームとして使用するために参照フレームバッファ中に記憶される。参照フレームバッファは復号ピクチャバッファ（decoded picture buffer）またはＤＰＢとも呼ばれる。再構成されたビデオブロックは、参照フレームバッファ中に記憶する前にしばしばフィルタ処理される。フィルタ処理は、通常、たとえば、ブロックベースのビデオコーディングに共通のブロッキネスまたは他のアーティファクトを低減するために使用される。ブロッキネスを低減し、および／または他の方法でビデオ品質を改善することができる、望ましいレベルのビデオブロックフィルタ処理を促進するために、（フィルタタップと呼ばれることがある）フィルタ係数が定義または選択され得る。フィルタ係数のセットは、たとえば、ビデオブロックのエッジまたはビデオブロック内の他のロケーションに沿ってフィルタ処理がどのように適用されるかを定義し得る。異なるフィルタ係数は、ビデオブロックの異なるピクセルに対する異なるレベルのフィルタ処理を生じ得る。フィルタ処理は、たとえば、不要なアーティファクトをなくすのを助けるために、隣接ピクセル値の強度の差を平滑化またはシャープ化し得る。
【００３４】
一例として、コード化ビデオデータのブロック間のアピアランス（appearance）を改善する（たとえば、エッジを平滑化する）ために、デブロッキングフィルタが使用され得る。別の例示的なフィルタは、画質およびコーディング効率を改善するためにピクセルの再構成されたブロックにオフセットを加算するために使用されるサンプル適応オフセット（ＳＡＯ：sample adaptive offset）フィルタである。ＨＥＶＣのための１つの提案において再構成ループ中で使用される別のタイプのフィルタは、適応ループフィルタ（ＡＬＦ）である。ＡＬＦは、一般に、デブロッキングフィルタの後に実行される。ＡＬＦは、ビデオコーディング圧縮プロセスによって低下するピクセルの忠実度（fidelity）を回復する。ＡＬＦは、ソースフレーム中の元のピクセル値と再構成されたフレームの元のピクセル値との間の平均自乗誤差を最小限に抑えようと試みる。また、ＡＬＦは、符号化プロセス中に適用されたのと同じ様式で、ビデオデコーダの出力において適用される。集合的に、再構成ループ中で使用されるフィルタは「ループフィルタ」と呼ばれることがある。ループフィルタは、１つまたは複数のデブロッキングフィルタ、ＳＡＯフィルタ、およびＡＬＦを含み得る。さらに、再構成ループにおいて使用する他のタイプのフィルタも可能である。
【００３５】
本開示では、ＡＬＦのための技法を提示する。特に、本開示では、クロマ成分のＡＬＦのための技法を提示する。本開示の１つまたは複数の例では、クロマ成分のためのＡＬＦが、ルーマ成分のためのＡＬＦとは無関係に適用され得る。本開示の他の例では、クロマ成分のための特定のＡＬＦが、ブロックベースまたは領域ベース分類の使用によって、複数のＡＬＦのグループから判断される。
【００３６】
図１は、本開示の例による、ビデオコーディングプロセスにおける適応ループフィルタ処理のための技法を利用するように構成され得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。符号化ビデオデータはまた、記憶媒体３４またはファイルサーバ３６に記憶され得、必要に応じて宛先デバイス１４によってアクセスされ得る。記憶媒体またはファイルサーバに記憶されたとき、ビデオエンコーダ２０は、コード化ビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスク（ＣＤ）、Ｂｌｕ−ｒａｙ（登録商標）またはデジタルビデオディスク（ＤＶＤ）バーナーまたはスタンピングファシリティデバイス、あるいは他のデバイスなど、別のデバイスにコード化ビデオデータを与え得る。同様に、ネットワークインターフェース、ＣＤまたはＤＶＤリーダーなど、ビデオデコーダ３０とは別個のデバイスが、記憶媒体からコード化ビデオデータを取り出し、取り出されたデータをビデオデコーダ３０に与え得る。
【００３７】
ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、多種多様なデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。したがって、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。
【００３８】
本開示の例による、ビデオコーディングプロセスにおける適応ループフィルタ処理のための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００３９】
図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器２２と、送信機２４とを含む。ソースデバイス１２において、ビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例、あるいは符号化ビデオデータがローカルディスクに記憶された適用例に適用され得る。
【００４０】
キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００４１】
ビデオエンコーダ２０によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体３４またはファイルサーバ３６に記憶され得る。記憶媒体３４は、Ｂｌｕ−ｒａｙディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。記憶媒体３４に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス１４によってアクセスされ得る。
【００４２】
ファイルサーバ３６は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ３６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデム、イーサネット（登録商標）、ＵＳＢなど）、または両方の組合せを含み得る。
【００４３】
図１の例では、宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調して、ビデオデコーダ３０のための復調されたビットストリームを生成する。チャネル１６を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ３０が使用する、ビデオエンコーダ２０によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ（コーデック）の一部を形成し得る。
【００４４】
ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００４５】
図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００４６】
ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中のＨＥＶＣ規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００４７】
図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４８】
ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００４９】
ビデオエンコーダ２０は、ビデオコーディングプロセスにおける適応ループフィルタ処理のための本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ３０は、ビデオコーディングプロセスにおける適応ループフィルタ処理のためのこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。このコンテキストでは、ビデオコーディングユニットは、物理的ハードウェアであり、上記で説明したＣＵデータ構造とは異なる。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。
【００５０】
本開示の一例では、ビデオエンコーダ２０は、ピクセルのブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、ピクセルのブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することとを行うように構成され得、ルーマ適応ループフィルタ処理とクロマ適応ループフィルタ処理の両方のためのフィルタ係数がブロックベースモードまたは領域ベースモードから導出される。
【００５１】
同様に、本開示の別の例では、ビデオエンコーダ３０は、ピクセルのブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、ピクセルのブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することとを行うように構成され得、ルーマ適応ループフィルタ処理とクロマ適応ループフィルタ処理の両方のためのフィルタ係数がブロックベースモードまたは領域ベースモードから導出される。
【００５２】
ＨＥＶＣのための１つのＡＬＦ提案では、２つの適応モード（すなわち、ブロックベース適応モードおよび領域ベース適応モード）が提案されている。領域ベース適応モードの場合、フレームは１６個の領域に分割され、各領域は線形フィルタ係数の１つのセット（複数のＡＣ係数および１つのＤＣ係数）を有することができる。他の例では、より多いまたはより少ない領域が使用され得る。領域は、他の領域と同じフィルタ係数を共有し得る。図２は、適応ループフィルタのための領域ベース分類を示す概念図である。図２に示すように、フレーム１２０は１６個の領域に分割され、各領域は複数のＣＵを含み得る。これらの１６個の領域の各々は、その領域によって使用される線形フィルタ係数の特定のセットを示す番号（０〜１５）によって表される。番号（０〜１５）は、ビデオエンコーダとビデオデコーダの両方において記憶されるフィルタ係数の所定のセットに対するインデックス番号であり得る。すなわち、各番号（０〜１５）は、フィルタ係数の複数のセットの特定の１つに対するインデックスであり得る。一例では、ビデオエンコーダは、符号化ビデオビットストリーム中で、特定の領域のためのビデオエンコーダによって使用されるフィルタ係数のセットのインデックス番号をシグナリングし得る。シグナリングされたインデックスに基づいて、ビデオデコーダは、その領域のための復号プロセスにおいて使用するために、フィルタ係数の複数の異なるセットの中からフィルタ係数の同じ所定のセットを取り出し得る。他の例では、フィルタ係数は、たとえば、エンコーダによって、デコーダによって受信された符号化ビットストリーム中のシンタックス要素として、領域ごとに明示的にシグナリングされる。
【００５３】
ブロックベース適応モードの場合、フレームは４×４ブロックに分割され、各４×４ブロックは、方向およびアクティビティ情報を使用してメトリックを計算することによって、１つのクラスを導出する。クラスごとに、線形フィルタ係数の１つのセット（複数のＡＣ係数および１つのＤＣ係数）が使用され得、１つのクラスは他のクラスと同じフィルタ係数を共有することができる。図３は、適応ループフィルタのためのブロックベース分類を示す概念図である。
【００５４】
方向およびアクティビティの計算、ならびに方向およびアクティビティに基づいて得られたメトリックは、以下のように示される。
【００５５】
・方向
【数１】
0005922245.tif 000002
【００５６】
・アクティビティ
【数２】
0005922245.tif 000003
【００５７】
・メトリック
【数３】
0005922245.tif 000004
【００５８】
Ｈｏｒ＿ａｃｔ（ｉ，ｊ）は、概して、現在のピクセル（ｉ，ｊ）の水平アクティビティを指し、Ｖｅｒｔ＿ａｃｔ（ｉ，ｊ）は、概して、現在のピクセル（ｉ，ｊ）の垂直アクティビティを指す。Ｘ（ｉ、ｊ）は、概して、ピクセル（ｉ，ｊ）のピクセル値を指し、ただし、ｉおよびｊは、フレームまたはブロック内の現在のピクセルの水平および垂直座標を示す。このコンテキストでは、アクティビティは、概して、あるロケーションにおけるピクセル間の勾配（gradient）または分散（variance）である。
【００５９】
ＨBは、４×４ブロックの水平アクティビティを指し、これは、この例では、ピクセル（１，１）、（１，２）、（２，１）、および（２，２）のための水平アクティビティの和に基づいて判断される。ＶBは、４×４ブロックの垂直アクティビティを指し、これは、この例では、ピクセル（１，１）、（１，２）、（２，１）、および（２，２）のための垂直アクティビティの和に基づいて判断される。「＜＜１」は、２での乗算の演算（a multiply by two operation）を表す。ＨBおよびＶBの値に基づいて、方向が判断され得る。一例として、ＨBの値がＶBの値の２倍よりも大きい場合、方向は、垂直アクティビティよりも多くの水平アクティビティに対応し得る、方向１（すなわち水平）であると判断され得る。ＶBの値がＨBの値の２倍よりも大きい場合、方向は、水平アクティビティよりも多くの垂直アクティビティに対応し得る、方向２（すなわち垂直）であると判断され得る。他の場合、方向は、水平アクティビティも垂直アクティビティも支配的でないことを意味する、方向０（すなわち方向なし）であると判断され得る。他の標示（labels）と比も使用され得るので、様々な方向のための標示と、それらの方向を判断するために使用された比とは、一例を構成するにすぎない。
【００６０】
４×４ブロックのためのアクティビティ（ＬB）は、水平アクティビティと垂直アクティビティとの和として判断され得る。ＬBの値は範囲に分類され得る。この特定の例はＮ個の範囲を示す。すなわち、任意の数の範囲が使用され得る。アクティビティと方向との組合せに基づいて、ピクセルの４×４ブロックのためのフィルタが選択され得る。一例として、フィルタは、アクティビティおよび方向とフィルタとの２次元マッピングに基づいて選択され得るか、またはアクティビティと方向とが組み合わせられて単一のメトリックになり得、その単一のメトリックが使用されてフィルタが選択され得る（たとえば、メトリック＝Ａｃｔｉｖｉｔｙ＋Ｎ＊Ｄｉｒｅｃｔｉｏｎ）。
【００６１】
図３に戻ると、ブロック１４０はピクセルの４×４ブロックを表す。この例では、１６個のピクセルのうちの４つのみが、ブロックベースＡＬＦのためのアクティビティおよび方向メトリックを計算するために使用される。４つのピクセルは、ピクセル１４１と標示されたピクセル（１，１）、ピクセル１４２と標示されたピクセル（２，１）、ピクセル１４３と標示されたピクセル（１，２）、およびピクセル１４４と標示されたピクセル（２，２）である。ピクセル１４１の水平アクティビティ（すなわちｈｏｒ＿ａｃｔ（１，１））は、たとえば、左の隣接ピクセルと右の隣接ピクセルとに基づいて判断される。右の隣接ピクセルはピクセル１４５と標示され、左の隣接ピクセルはピクセル１４６と標示されている。ピクセル１４２の垂直アクティビティ（すなわちｖｅｒ＿ａｃｔ（２，１））は、たとえば、上の隣接ピクセルと下の隣接ピクセルとに基づいて判断される。下の隣接ピクセルはピクセル１４７と標示され、上の隣接ピクセルはピクセル１４８と標示されている。同様にして、ピクセル１４３および１４４について水平および垂直アクティビティが計算され得る。
【００６２】
ＨＥＶＣのための前の適応ループフィルタ提案では、ピクセルの特定のブロック内のルーマ成分およびクロマ成分は、異なる適応ループフィルタを使用する。ルーマ成分の場合、上記の領域またはブロックベース適応ＡＬＦが使用される。領域またはブロックベース適応ＡＬＦは、複数のフィルタ（たとえば、最大１６個のフィルタ）を利用し得る。さらに、ルーマＡＬＦを使用するという決定は、ＣＵレベルＡＬＦオン／オフ決定フラグを使用して、ＣＵごとに行われ得る。クロマ成分の場合、ただ１つのフィルタが使用される。クロマ成分のためにＡＬＦを使用するという決定は、ルーマＡＬＦと無関係に制御されない。代わりに、ルーマＡＬＦフィルタが使用可能にされるとき（すなわち、ＣＵレベルＡＬＦフラグがオンであるとき）のみクロマＡＬＦフィルタは使用可能にされる。
【００６３】
図４に、ＣＵレベルＡＬＦオン／オフ決定フラグの使用の概念マップを示す。ピクチャ１６０は、コーディングのために複数のＣＵに分けられる。図４の例では、理解しやすいように、ＣＵを同等のサイズであるとして示した。ただし、ＣＵは異なるサイズであり得る。たとえば、ＨＥＶＣにおけるＣＵは、４分木構造に従って区分され得る。
【００６４】
図４では、網目模様（hashed marking）のＣＵ１６３は、オンであるＡＬＦフラグ（たとえば、ＡＬＦフラグ＝１）でコーディングされている。したがって、ＨＥＶＣのための前の提案によれば、ビデオエンコーダとデコーダの両方は、そのＣＵ中のピクセルのルーマ成分とクロマ成分の両方にＡＬＦを適用することになる。ビデオデコーダが復号プロセスにおいて同じＡＬＦ係数を適用し得るように、ビデオエンコーダは、符号化ビデオビットストリームにおいて使用されるＡＬＦ係数または使用されるＡＬＦ係数を示すインデックスをさらにシグナリングし得る。模様がないＣＵ１６５は、オフであるＡＬＦフラグ（たとえば、ＡＬＦフラグ＝０）でコーディングされている。この場合、そのＣＵ中のルーマ成分にもピクセル成分にもＡＬＦは適用されない。
【００６５】
クロマ成分のためのただ１つのＡＬＦを使用すること、ならびにルーマ成分のためのＡＬＦと無関係にクロマ成分のためのＡＬＦを適用しないことは、４：２：０ピクセルフォーマットについてのＡＬＦの品質を限定し得る。したがって、本開示は、ＡＬＦにおいてクロマ成分をフィルタ処理する際により多くのフレキシビリティを可能にするための技法を提案する。他の例では、クロマ成分のＡＬＦのための本開示の技法は４：２：０ピクセルフォーマットだけに限定されない。本開示のＡＬＦ技法は、４：２：２および４：４：４ピクセルフォーマットなど、他のピクセルフォーマットのクロマ成分に適用され得る。
【００６６】
一例では、本開示では、クロマ成分のためのＡＬＦは、ルーマ成分のためのＡＬＦとは無関係に制御されることを提案する。１つの特定の例では、ルーマＡＬＦとクロマＡＬＦの両方は、それら自体の、独立したＣＵレベルＡＬＦオン／オフ決定フラグを有し得る。すなわち、ＡＬＦを用いてルーマ成分をフィルタ処理することはＣＵレベルルーマＡＬＦオン／オフフラグを用いて示され、ＡＬＦを用いてクロマ成分をフィルタ処理することはＣＵレベルクロマＡＬＦオン／オフフラグを用いて示される。
【００６７】
図５に、ルーマおよびクロマＣＵレベルＡＬＦオン／オフ決定フラグの使用の概念マップを示す。ピクチャ１７０は、コーディングのために複数のＣＵに分けられる。この場合も、図５の例では、理解しやすいように、ＣＵを同等のサイズであるとして示した。ただし、ＣＵは異なるサイズであり得る。たとえば、ＨＥＶＣにおけるＣＵは、４分木構造に従って区分され得る。
【００６８】
図５では、斜線模様（uni-directional hashed marking）のＣＵ１７３は、オンであるルーマＡＬＦフラグ（たとえば、ルーマＡＬＦフラグ＝１）のみでコーディングされている。ＣＵ１７３の場合、クロマＡＬＦフラグはオフである（たとえば、クロマＡＬＦフラグ＝０）。ＣＵ１７３の場合、ＡＬＦはピクセルのルーマ成分にのみ適用される。ＡＬＦはクロマ成分に適用されない。格子模様（checkerboard marking）のＣＵ１７５の場合、クロマＡＬＦフラグのみがオンである（たとえば、クロマＡＬＦフラグ＝１）。ＣＵ１７５の場合、ルーマＡＬＦフラグはオフである（たとえば、ルーマＡＬＦフラグ＝０）。したがって、ＣＵ１７５の場合、ＡＬＦはピクセルのクロマ成分にのみ適用される。ＡＬＦはルーマ成分に適用されない。網目模様（bi-directional diagonal marking）のＣＵ１７７の場合、ルーマＡＬＦフラグとクロマＡＬＦフラグの両方がオンである（たとえば、ルーマＡＬＦフラグ＝１およびクロマＡＬＦフラグ＝１）。したがって、ＣＵ１７７の場合、ＡＬＦは、ピクセルのルーマ成分とクロマ成分の両方に適用される。網目模様（bi-directional hashed marking）のＣＵ１７９の場合、ルーマＡＬＦフラグとクロマＡＬＦフラグの両方がオフである（たとえば、ルーマＡＬＦフラグ＝０およびクロマＡＬＦフラグ＝０）。したがって、ＣＵ１７９の場合、ＡＬＦは、ピクセルのルーマ成分にもクロマ成分にも適用されない。
【００６９】
図５からわかるように、ルーマ成分とクロマ成分とについて独立したＣＵレベルＡＬＦ決定フラグを使用することは、ルーマ成分のみがＡＬＦを用いてフィルタ処理される状況と、クロマ成分のみがＡＬＦを用いてフィルタ処理される状況と、ルーマ成分とクロマ成分の両方がＡＬＦを用いてフィルタ処理される状況と、ルーマ成分もクロマ成分もＡＬＦを用いてフィルタ処理されない状況とを考慮に入れる（allow）。したがって、ＡＬＦのピクセル成分への適用は、より多くのフレキシビリティを伴って適用され得る。この概念は、ＡＬＦをＣｒ成分およびＣｂ成分個々に独立して適用することにさらに拡張され得ることに留意されたい。すなわち、Ｃｒ成分とＣｂ成分の両方に適用される単一のクロマＡＬＦフラグを有するのではなく、個々のＣｒ  ＡＬＦフラグおよびＣｂ  ＡＬＦフラグが、ＡＬＦのＣｒ成分への適用およびＣｂ成分への適用を独立して示すために使用され得る。
【００７０】
本開示の別の例では、クロマＡＬＦは、任意のサブサンプリングフォーマットについて、ルーマＡＬＦによって使用されるのと同じまたは同様の領域またはブロックベース適応ＡＬＦを使用し得る。すなわち、クロマＡＬＦをただ１つのフィルタに制限することの代わりに、クロマ成分のためのＡＬＦは、図２および図３に関して上記で説明した領域またはブロックベース分類ＡＬＦ技法に従って判断され得る。いくつかの例では、領域またはブロックベース適応ＡＬＦは、両方のクロマ成分（すなわち、ＣｒおよびＣｂ）に適用され得る。他の例では、領域またはブロックベース適応ＡＬＦはただ１つのクロマ成分（すなわち、ＣｒまたはＣｂ）に適用され得、別のＡＬＦは他のクロマ成分（たとえば、単一のＡＬＦ）に適用され得る。すなわち、Ｃｒ成分およびＣｂ成分は、同じ領域またはブロックベース分類技法を使用し、最終的にフィルタ係数の同じ判断されたセットによってフィルタ処理され得る。別の例では、Ｃｒ成分およびＣｂ成分のためのＡＬＦは、独立して判断され得る。
【００７１】
ルーマ成分のために使用されるＡＬＦ技法をクロマ成分に拡張することは、クロマＡＬＦを定義するために符号化ビデオビットストリーム中でシグナリングされ得る情報の量を増加させ得る。したがって、本開示の別の例では、クロマＡＬＦのために使用されるそのような情報を記憶および／またはシグナリングするために必要とされるフィルタ情報（たとえば、ＣＵレベルＡＬＦオン／オフフラグ、フィルタ係数、領域またはブロックベース分類など）の量を低減するための技法が提案される。１つの一般的な例として、ルーマＡＬＦのためのフィルタ情報はクロマＡＬＦのために使用され得る。たとえば、ルーマＡＬＦのためのフィルタ情報は、クロマＡＬＦのためのフィルタ情報のための予測子としてコピーまたは使用され得る。
【００７２】
一例では、ルーマＡＬＦのためのＣＵレベルオン／オフフラグのマップ（すなわち、どのＣＵが使用可能なルーマＡＬＦを有するかを示すシンタックス）が、クロマＡＬＦによって使用され得る。すなわち、クロマ成分が領域またはブロックベース適応ＡＬＦを使用する状況では、ルーマ成分のためのＣＵレベルＡＬＦフラグはクロマ成分によっても使用され得る。この状況では、クロマＡＬＦを使用するという決定はルーマＡＬＦと無関係でない。ただし、使用される実際のフィルタは異なることがある。たとえば、ルーマ成分は、領域ベース適応ＡＬＦに従ってフィルタ処理され得るが、クロマ成分は、ブロックベース適応ＡＬＦに従ってフィルタ処理され、逆もまた同じである。別の例として、ルーマ成分とクロマ成分の両方は同じタイプのＡＬＦ（すなわち、領域ベースまたはブロックベース）を使用し得るが、ルーマ成分とクロマ成分とに対して異なるフィルタ係数が判断され得る。
【００７３】
別の例では、ルーマＡＬＦが使用する領域またはブロックベース分類に従って判断された実際のフィルタ係数は、クロマＡＬＦのためにも使用され得る。この例では、ルーマＡＬＦとクロマＡＬＦの両方がそれらのそれぞれのＣＵレベルオン／オフフラグ（たとえば、ルーマＡＬＦフラグおよびクロマＡＬＦフラグ）によって使用可能であるとして示される状況では、フィルタ係数は共有され得る。すなわち、クロマＡＬＦがルーマＡＬＦとは無関係にオンおよびオフにされることが可能な場合でも、ルーマＡＬＦとクロマＡＬＦの両方が使用可能にされる状況では、フィルタ係数は共有され得る。別の例では、クロマＡＬＦがルーマＡＬＦのＣＵレベルオン／オフフラグも共有する例では、ルーマＡＬＦのフィルタ係数はクロマＡＬＦによって共有され得る。
【００７４】
本開示の別の例では、追加のフィルタ情報がルーマＡＬＦとクロマＡＬＦとの間で共有され得る。たとえば、ルーマＡＬＦのために使用されるブロックベース分類は、クロマＡＬＦによっても使用され得る。フィルタ係数を共有する場合と同様に、クロマＡＬＦがルーマＡＬＦとＣＵレベルオン／オフフラグを共有する場合、またはクロマＡＬＦが独立したＣＵレベル／オンオフフラグを有するとき、ブロックベース分類の共有が行われ得る。
【００７５】
さらに別の例では、クロマＡＬＦのためのフィルタ係数は、ルーマＡＬＦのフィルタ係数から予測され得る。この例では、ビデオエンコーダにおいて、ルーマＡＬＦとクロマＡＬＦの両方のためのフィルタ係数は、独立して計算され得る。ルーマＡＬＦのためのフィルタ係数が、次いで、符号化ビデオビットストリーム中でシグナリングされる。クロマＡＬＦ係数をもシグナリングすることの代わりに、ルーマＡＬＦ係数とクロマＡＬＦ係数との間の差分が計算され、シグナリングされる。ルーマＡＬＦ係数とクロマＡＬＦ係数との間の差分は、一般に、クロマＡＬＦ係数自体をシグナリングすることよりも少ないデータ（たとえば、より少ないビット）を備え、したがってコーディング効率を改善することになる。ビデオデコーダにおいて、クロマＡＬＦ係数を再構成するために、ルーマＡＬＦ係数とクロマＡＬＦ係数との間の受信した差分は、受信したルーマＡＬＦ係数に加算され得る。Ｃｒ成分とＣｂ成分の両方が同じフィルタ係数を使用するとき、またはＣｒ成分とＣｂ成分とがフィルタ係数の異なるセットを使用する状況では、この技法が使用され得る。Ｃｒ成分とＣｂ成分とがフィルタ係数の異なるセットを使用する状況では、各セットはルーマＡＬＦ係数から予測され得る。
【００７６】
上記のように、いくつかの例では、クロマＡＬＦは、Ｃｒクロマ成分のための別個のＣｒクロマＡＬＦとＣｂクロマ成分のための別個のＣｂクロマＡＬＦとからなり得る。ルーマＡＬＦとクロマＡＬＦとの間のフィルタ情報を共有することに関係する上記で説明した技法と同様に、フィルタ情報はＣｒクロマＡＬＦとＣｂクロマＡＬＦとの間でも共有され得る。
【００７７】
一例では、ＣｒクロマＡＬＦのためのＣＵレベルオン／オフフラグのマップ（すなわち、どのＣＵが使用可能なＣｒクロマＡＬＦを有するかを示すシンタックス）が、ＣｂクロマＡＬＦによって使用され得る。別の例では、ＣｒクロマＡＬＦによって使用されるフィルタ係数はＣｂクロマＡＬＦのために使用され得る。また別の例では、ＣｒクロマＡＬＦのために使用されるブロックベース分類はＣｂクロマＡＬＦによって使用され得る。さらに別の例では、ＣｂクロマＡＬＦのためのフィルタ係数はＣｒクロマＡＬＦのフィルタ係数から予測され得、逆もまた同じである。
【００７８】
図６は、本開示で説明するビデオコーディングプロセスにおける適応ループフィルタ処理のための技法を使用し得るビデオエンコーダ２０の例を示すブロック図である。ビデオエンコーダ２０について、例示のためにＨＥＶＣコーディングのコンテキストにおいて説明するが、適応ループフィルタ処理を必要とし得る他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ２０は、ビデオフレーム内のＣＵのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在のフレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモードは、いくつかの空間ベースのビデオ圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指し得る。
【００７９】
図６に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図６の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測モジュール４６と、参照フレームバッファ６４と、加算器５０と、変換モジュール５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換モジュール６０と、加算器６２と、ＡＬＦユニット４３とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。
【００８０】
符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット（ＬＣＵ：largest coding unit）に分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を与えるために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを実行する。イントラ予測モジュール４６は、空間圧縮を与えるために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。
【００８１】
モード選択ユニット４０は、たとえば、各モードについてのレートひずみ結果に基づいて、コーディングモードのうちの１つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインター予測ブロック（たとえば、予測ユニット（ＰＵ））を、残差ブロックデータを生成するために加算器５０に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器６２に与える。加算器６２は、以下でより詳細に説明するように、予測ブロックを、そのブロックについての、逆変換モジュール６０からの逆量子化され逆変換されたデータと合成して、符号化ブロックを再構成する。いくつかのビデオフレームはＩフレームに指定され得、Ｉフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット４２によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測モジュール４６は、ＰフレームまたはＢフレーム中のブロックのイントラ予測符号化を実行し得る。
【００８２】
動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定（または動き探索）は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在のフレーム中の予測ユニットの変位を示し得る。動き推定ユニット４２は、予測ユニットを参照フレームバッファ６４に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットの動きベクトルを計算する。参照サンプルは、絶対値差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得、必ずしも、参照フレームまたはスライスのブロック（たとえば、コーディングユニット）境界において発生するとは限らない。いくつかの例では、参照サンプルは分数ピクセル位置において発生し得る。
【００８３】
動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット４４は、たとえば、ＰＵの動きベクトルによって識別される参照サンプルを取り出すことによって、現在のＣＵの予測ユニットについての予測値を計算し得る。
【００８４】
イントラ予測モジュール４６は、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、受信ブロックに対してイントラ予測を実行し得る。イントラ予測モジュール４６は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在のブロックの上、右上、左上、または左のブロックに対して受信ブロックを予測し得る。イントラ予測モジュール４６は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測モジュール４６は、符号化されているＣＵのサイズに基づいて、一定数の方向性（directional）予測モード、たとえば、３５個の方向性予測モードで構成され得る。
【００８５】
イントラ予測モジュール４６は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成し、その合成された値をＰＵ中の１つまたは複数のピクセル位置に適用するための機能を含み得る。ＰＵ中のすべてのピクセル位置の値が計算されると、イントラ予測モジュール４６は、ＰＵと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測モジュール４６は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測モジュール４６は、次いで、ＰＵを加算器５０に送り得る。
【００８６】
ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４またはイントラ予測モジュール４６によって計算された予測データを減算することによって残差ブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の２次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するＰＵ中のピクセルの数と同じである。残差ブロック中の値は、ＰＵ中のコロケートピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
【００８７】
変換モジュール５２は、残差ブロックから１つまたは複数の変換ユニット（ＴＵ）を形成し得る。変換モジュール５２は、複数の変換の中から変換を選択する。変換は、ブロックサイズ、コーディングモードなど、１つまたは複数のコーディング特性に基づいて選択され得る。変換モジュール５２は、次いで、選択された変換をＴＵに適用して、変換係数の２次元アレイを備えるビデオブロックを生成する。変換モジュール５２は、選択された変換パーティションを符号化ビデオビットストリーム中でシグナリングし得る。
【００８８】
変換モジュール５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、次いで、その変換係数を量子化し得る。エントロピー符号化ユニット５６が、次いで、走査モードに従って、行列中の量子化された変換係数の走査を実行し得る。本開示では、エントロピー符号化ユニット５６が走査を実行するものとして説明する。ただし、他の例では、量子化ユニット５４などの他の処理ユニットが走査を実行し得ることを理解されたい。
【００８９】
変換係数が１次元アレイに走査されると、エントロピー符号化ユニット５６は、ＣＡＶＬＣ、ＣＡＢＡＣ、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、または別のエントロピーコーディング方法などのエントロピーコーディングを係数に適用し得る。
【００９０】
ＣＡＶＬＣを実行するために、エントロピー符号化ユニット５６は、送信されるべきシンボルの可変長コードを選択し得る。ＶＬＣのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。
【００９１】
ＣＡＢＡＣを実行するために、エントロピー符号化ユニット５６は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接値が非０であるか否かに関係し得る。エントロピー符号化ユニット５６はまた、選択された変換を表す信号など、シンタックス要素をエントロピー符号化し得る。本開示の技法によれば、エントロピー符号化ユニット５６は、コンテキストモデル選択のために使用されるファクタの中でも、たとえば、イントラ予測モードのためのイントラ予測方向、シンタックス要素に対応する係数の走査位置、ブロックタイプ、および／または変換タイプに基づいて、これらのシンタックス要素を符号化するために使用されるコンテキストモデルを選択し得る。
【００９２】
エントロピー符号化ユニット５６によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ３０などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００９３】
場合によっては、エントロピー符号化ユニット５６またはビデオエンコーダ２０の別のユニットは、エントロピーコーディングに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット５６は、ＣＵおよびＰＵのコード化ブロックパターン（ＣＢＰ：coded block pattern）値を判断するように構成され得る。また、場合によっては、エントロピー符号化ユニット５６は、係数のランレングスコーディングを実行し得る。
【００９４】
逆量子化ユニット５８および逆変換モジュール６０は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームバッファ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、再構成されたビデオブロックを生成する。
【００９５】
ＡＬＦユニット４３は、次いで、上記で説明した技法による適応ループフィルタ処理を実行し得る。一例では、ＡＬＦユニット４３は、領域またはブロックベース分類技法を使用して再構成ブロックのクロマ成分のためのフィルタ係数を判断するように構成され得る。別の例では、クロマＡＬＦを適用するという決定は、ＣＵレベルにおいて行われ得、ルーマ成分にＡＬＦを適用するという決定とは無関係に行われ得る。ルーマ成分とクロマ成分の両方のために判断された実際のＡＬＦフィルタ情報は、符号化ビデオビットストリーム中でシグナリングされ得る。フィルタ情報は、実際のフィルタ係数、フィルタ係数を示すインデックス、ブロックまたは領域ベース分類、および／またはＣＵレベルオン／オフ決定フラグを含み得る。いくつかの例では、クロマＡＬＦフィルタ係数はルーマＡＬＦフィルタ係数から予測され得る。
【００９６】
フィルタ処理された再構成ビデオブロックは、次いで、参照フレームバッファ６４に記憶される。再構成ビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００９７】
図７は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図７の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測モジュール７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームバッファ８２と、ＡＬＦユニット７９と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図６参照）に関して説明した符号化パスとは概して逆の（reciprocal）復号パスを実行し得る。
【００９８】
エントロピー復号ユニット７０は、変換係数の１次元アレイを取り出すために、符号化ビットストリームに対してエントロピー復号プロセスを実行する。使用されるエントロピー復号プロセスは、ビデオエンコーダ２０によって使用されたエントロピーコーディング（たとえば、ＣＡＢＡＣ、ＣＡＶＬＣなど）に依存する。エンコーダによって使用されたエントロピーコーディングプロセスは、符号化ビットストリーム中でシグナリングされるか、または所定のプロセスであり得る。
【００９９】
いくつかの例では、エントロピー復号ユニット７０（または逆量子化ユニット７６）は、ビデオエンコーダ２０のエントロピー符号化ユニット５６（または量子化ユニット５４）によって使用された走査モードをミラーリングする走査を使用して受信値を走査し得る。係数の走査は逆量子化ユニット７６において実行され得るが、走査については、例示のために、エントロピー復号ユニット７０によって実行されるものとして説明する。さらに、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ３０のエントロピー復号ユニット７０、逆量子化ユニット７６、および他のユニットの構造および機能は互いに高度に統合され得る。
【０１００】
逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、ＨＥＶＣのために提案されたプロセスまたはＨ．２６４復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、ＣＵについてビデオエンコーダ２０によって計算される量子化パラメータＱＰの使用を含み得る。逆量子化ユニット７６は、係数が１次元アレイから２次元アレイに変換される前または変換された後に変換係数を逆量子化し得る。
【０１０１】
逆変換モジュール７８は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換モジュール７８は、ビデオエンコーダ２０からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの１つまたは複数のコーディング特性から変換を推論することによって、逆変換を判断し得る。いくつかの例では、逆変換モジュール７８は、現在のブロックを含むＬＣＵのための４分木のルートノードにおけるシグナリングされた変換に基づいて、現在のブロックに適用すべき変換を判断し得る。代替的に、変換は、ＬＣＵ４分木中のリーフノードＣＵのためのＴＵ４分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換モジュール７８は、逆変換モジュール７８が、復号されている現在のブロックの変換係数に２つ以上の逆変換を適用する、カスケード逆変換を適用し得る。
【０１０２】
イントラ予測モジュール７４は、シグナリングされたイントラ予測モードと、現在のフレームの前に復号されたブロックからのデータとに基づいて、現在のフレームの現在のブロックについての予測データを生成し得る。
【０１０３】
取り出された動き予測方向、参照フレームインデックス、および計算された現在の動きベクトルに基づいて、動き補償ユニットは現在の部分の動き補償ブロックを生成する。これらの動き補償ブロックは、本質的に、残差データを生成するために使用される予測ブロックを再現する。
【０１０４】
動き補償ユニット７２は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行し得る。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１０５】
さらに、動き補償ユニット７２およびイントラ予測モジュール７４は、ＨＥＶＣの例では、（たとえば、４分木によって与えられる）シンタックス情報の一部を使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されたＬＣＵのサイズを判断し得る。動き補償ユニット７２およびイントラ予測モジュール７４はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報を判断し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード（たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各インター符号化ＰＵについての１つまたは複数の参照フレーム（および／またはそれらの参照フレームの識別子を含んでいる参照リスト）と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。
【０１０６】
加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測モジュール７４によって生成される対応する予測ブロックと合成して、復号ブロックを形成する。ＡＬＦユニット７９は、次いで、上記で説明した技法による適応ループフィルタ処理を実行する。一例では、ＡＬＦユニット７９は、領域またはブロックベース分類技法を使用して再構成ブロックのクロマ成分のためのフィルタ係数を判断するように構成され得る。別の例では、クロマＡＬＦを適用するという決定は、ＣＵレベルにおいて行われ得、ルーマ成分にＡＬＦを適用するという決定とは無関係に行われ得る。ルーマ成分とクロマ成分の両方のために判断された実際のＡＬＦフィルタ情報は、符号化ビデオビットストリーム中で受信され得る。フィルタ情報は、実際のフィルタ係数、フィルタ係数を示すインデックス、ブロックまたは領域ベース分類、および／またはＣＵレベルオン／オフ決定フラグを含み得る。いくつかの例では、クロマＡＬＦフィルタ係数はルーマＡＬＦフィルタ係数から予測され得る。
【０１０７】
所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレームバッファ８２に記憶され、参照フレームバッファ８２は、その後の動き補償のための参照ブロックを与え、また、（図１のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号ビデオを生成する。
【０１０８】
図８は、本開示の技法による例示的なビデオ符号化方法を示すフローチャートである。図８に示す方法は、ＡＬＦユニット４３を含む、ビデオエンコーダ２０の１つまたは複数の機能ユニットによって実行され得る。ビデオエンコーダ２０は、符号化ビデオデータを作成するためにビデオデータを符号化し（８２０）、再構成ビデオデータを作成するために符号化ビデオデータを再構成する（８２２）ように構成され得る。再構成ビデオデータは、ピクセルの１つまたは複数のブロックを含み得る。
【０１０９】
本開示の技法によれば、１つの随意の例では、ビデオエンコーダ２０は、ピクセルのブロックに対してルーマ適応ループフィルタ処理を実行することを判断することと、ピクセルのブロックに対してクロマ適応ループフィルタ処理を実行することを判断することであって、クロマ適応ループフィルタ処理を実行することを判断することが、ルーマ適応ループフィルタ処理を実行することを判断することとは無関係に実行される、判断すること（８２４）とを行うように構成され得る。クロマ適応ループフィルタ処理を実行することを判断することは、クロマ成分のためのクロマＣＵレベルＡＬＦオン／オフフラグの値を判断することを含み得る。本開示の他の例では、ルーマおよびクロマ適応ループフィルタ処理は一緒に実行される。この場合、別個のクロマＣＵレベルＡＬＦオン／オフフラグが判断されシグナリングされる必要はないが、代わりに、クロマＡＬＦはルーマＣＵレベルＡＬＦオン／オフフラグを共有し得る。
【０１１０】
ビデオエンコーダ２０は、ピクセルのブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、ピクセルのブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することとを行うようにさらに構成され得、ルーマ適応ループフィルタ処理とクロマ適応ループフィルタ処理の両方のためのフィルタ係数がブロックベースモードまたは領域ベースモードから導出される（８２６）。ただ単一のＡＬＦを使用するのではなく、クロマ適応ループフィルタ処理が領域またはブロックベースモード分類に基づいて実行されることを可能にすることによって、クロマ成分のためのＡＬＦを実行する際により多くのフレキシビリティが達成される。クロマ成分のための領域またはブロックベース技法は、４：２：０クロマサブサンプリングフォーマットのみに限定されず、４：２：０、４：２：２または４：４：４フォーマットを含む任意のクロマフォーマットに適用され得る。
【０１１１】
ビデオエンコーダ２０は、たとえば、符号化ビデオビットストリーム中でシンタックス要素として、ルーマ適応フィルタ処理に関係するフィルタ情報およびクロマ適応ループフィルタ処理に関係するフィルタ情報のうちの１つまたは複数をシグナリングする（８２８）ようにさらに構成され得る。フィルタ情報は、ＣＵレベルオン／オフフラグ、フィルタ係数、および／またはブロックベース分類を含み得る。いくつかの例では、ルーマＡＬＦとクロマＡＬＦの両方のためのフィルタ情報が別個にシグナリングされる。他の例では、ルーマＡＬＦのフィルタ情報はクロマＡＬＦのために共有される。すなわち、ルーマＡＬＦ情報のみが判断されシグナリングされ、クロマＡＬＦはビデオエンコーダとビデオデコーダの両方で同じ情報を使用する。他の例では、クロマＡＬＦは、Ｃｒ成分ＡＬＦとＣｂ成分ＡＬＦの両方からなる。この例では、Ｃｒ成分またはＣｂ成分のうちの一方のフィルタ情報が他方の成分のＡＬＦと共有され得る。
【０１１２】
本開示の他の例では、クロマＡＬＦ係数の全体をシグナリングするのではなく、クロマＡＬＦのためのフィルタ係数はルーマＡＬＦから予測される。したがって、フィルタ情報をシグナリングすることは、ルーマＡＬＦ係数および、クロマ係数のための、ルーマＡＬＦ係数とクロマＡＬＦ係数との間の差分をシグナリングすることを含み得る。このようにして、クロマ係数の値は、所与のクロマ係数のための差分を対応するルーマ係数の値に加算することによって得られ得る。
【０１１３】
図９は、本開示の技法による例示的なビデオ復号方法を示すフローチャートである。図９に示す方法は、ＡＬＦユニット７９を含む、ビデオデコーダ３０の１つまたは複数の機能ユニットによって実行され得る。ビデオデコーダ３０は、ルーマＡＬＦに関係するフィルタ情報およびクロマＡＬＦに関係するフィルタ情報のうちの１つまたは複数を受信すること（９２０）と、符号化ビデオデータを受信すること（９２２）と、復号ビデオデータを作成するために、符号化ビデオデータを復号すること（９２４）とを行うように構成され得る。復号ビデオデータは、ピクセルの１つまたは複数のブロックを含み得る。
【０１１４】
受信フィルタ情報は、ＣＵレベルオン／オフフラグ、フィルタ係数、および／またはブロックベース分類を含み得る。いくつかの例では、ルーマＡＬＦとクロマＡＬＦの両方のためのフィルタ情報が別個に受信される。他の例では、ルーマＡＬＦのフィルタ情報はクロマＡＬＦのために共有される。すなわち、ルーマＡＬＦ情報のみが受信され、クロマＡＬＦはビデオデコーダにおいて同じ情報を使用する。他の例では、クロマＡＬＦは、Ｃｒ成分ＡＬＦとＣｂ成分ＡＬＦの両方からなる。この例では、Ｃｒ成分またはＣｂ成分のうちの一方のフィルタ情報が他方の成分のＡＬＦと共有され得る。
【０１１５】
本開示の他の例では、クロマＡＬＦ係数の全体を受信するのではなく、クロマＡＬＦのためのフィルタ係数はルーマＡＬＦから予測される。したがって、フィルタ情報を受信することは、ルーマＡＬＦ係数、およびルーマＡＬＦ係数とクロマＡＬＦ係数との間の差分を受信することを含み得る。受信した差分を受信ルーマＡＬＦ係数に加算することによって、クロマＡＬＦ係数は再構成され得る。
【０１１６】
本開示の技法によれば、１つの随意の例では、ビデオエンコーダ３０は、ピクセルのブロックに対してルーマ適応ループフィルタ処理を実行することを判断することと、ピクセルのブロックに対してクロマ適応ループフィルタ処理を実行するかどうかを判断することであって、クロマ適応ループフィルタ処理を実行することを判断することが、ルーマ適応ループフィルタ処理を実行することを判断することとは無関係に実行される、判断すること（９２６）とを行うように構成され得る。クロマ適応ループフィルタ処理を実行することを判断することは、クロマ成分のための受信クロマＣＵレベルＡＬＦオン／オフフラグの値を判断することを含み得る。本開示の他の例では、ルーマおよびクロマ適応ループフィルタ処理は一緒に実行される。この場合、別個のクロマＣＵレベルＡＬＦオン／オフフラグは受信されないが、代わりに、クロマＡＬＦはクロマＡＬＦを実行すべきか否かの判断を行うために受信ルーマＣＵレベルＡＬＦオン／オフフラグを共有し得る。
【０１１７】
ビデオデコーダ３０は、ピクセルのブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、ピクセルのブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することとを行うようにさらに構成され得、ルーマ適応ループフィルタ処理とクロマ適応ループフィルタ処理の両方のためのフィルタ係数がブロックベースモードまたは領域ベースモードから導出される（９２８）。ただ単一のＡＬＦを使用するのではなく、クロマ適応ループフィルタ処理が領域またはブロックベースモード分類に基づいて実行されることを可能にすることによって、クロマ成分のためのＡＬＦを実行する際により多くのフレキシビリティが達成される。クロマ成分のための領域またはブロックベース技法は、４：２：０クロマサブサンプリングフォーマットのみに限定されず、４：２：０、４：２：２または４：４：４フォーマットを含む任意のクロマフォーマットに適用され得る。クロマＡＬＦのために使用される、実際のフィルタ係数、あるいは領域またはブロックベース分類は、符号化ビデオビットストリーム中の受信フィルタ情報の一部として示され得る。
【０１１８】
１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、データ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１１９】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１２０】
命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１２１】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１２２】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］ビデオコーディングプロセスにおける適応ループフィルタ処理の方法であって、
ピクセルのブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、
ピクセルの前記ブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することと、
ブロックベース分類モードおよび領域ベース分類モードのうちの１つに基づいて、前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理の両方のためのフィルタ係数を導出することと
を備える、方法。
［２］ピクセルの前記ブロックの前記ルーマ成分および前記クロマ成分が、４：２：０、４：２：２または４：４：４フォーマットである、［１］に記載の方法。
［３］ピクセルの前記ブロックに対してルーマ適応ループフィルタ処理を実行すべきかどうかを判断することと、
ピクセルの前記ブロックに対してクロマ適応ループフィルタ処理を実行すべきかどうかを判断することであって、クロマ適応ループフィルタ処理を実行すべきかどうかを判断することが、ルーマ適応ループフィルタ処理を実行すべきかどうかを判断することとは無関係に実行される、判断することと
をさらに含む、［１］に記載の方法。
［４］クロマ適応ループフィルタ処理を実行することを判断することが、ＣＵレベルＡＬＦオン／オフフラグの値を判断することを含む、［３］に記載の方法。
［５］クロマ適応ループフィルタ処理のためにルーマ適応ループフィルタ処理のフィルタ情報を共有すること
をさらに備える、［１］に記載の方法。
［６］前記フィルタ情報が、ＣＵレベルオン／オフフラグ、フィルタ係数、および／またはブロックベース分類を含む、［５］に記載の方法。
［７］ルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマ適応ループフィルタ処理のための前記フィルタ係数を予測すること
をさらに備える、［１］に記載の方法。
［８］クロマ適応ループフィルタ処理のための前記フィルタ係数を予測することが、差分を作成するためにルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマフィルタ係数を減算することを含む、［７］に記載の方法。
［９］クロマ適応ループフィルタ処理を実行することが、ピクセルの前記ブロックのＣｒクロマ成分のためのＣｒクロマ適応ループフィルタ処理を実行することと、ピクセルの前記ブロックのためのＣｂクロマ成分のためのＣｂクロマ適応ループフィルタ処理を実行することとを含む、［１］に記載の方法。
［１０］Ｃｂクロマ適応ループフィルタ処理のためにＣｒクロマ適応ループフィルタ処理のフィルタ情報を共有すること
をさらに備える、［９］に記載の方法。
［１１］前記フィルタ情報が、ＣＵレベルオン／オフマップ、フィルタ係数、および／またはブロックベース分類を含む、［１０］に記載の方法。
［１２］前記ＣＵレベルオン／オフマップがＣＵレベルオン／オフフラグの値を含み、１の値をもつＣＵレベルオン／オフフラグは、ＡＬＦがピクセルの前記ブロックのために実行されることを示し、値０をもつＣＵレベルオン／オフフラグは、ＡＬＦがピクセルの前記ブロックのために実行されないことを示す、［１１］に記載の方法。
［１３］Ｃｒクロマ適応ループフィルタ処理のための前記フィルタ係数からＣｂクロマ適応ループフィルタ処理のための前記フィルタ係数を予測すること
をさらに備える、［９］に記載の方法。
［１４］前記ビデオコーディングプロセスがビデオ符号化プロセスであり、前記方法が、
符号化ビデオデータを作成するためにビデオデータを符号化することと、
再構成ビデオデータを作成するために前記符号化ビデオデータを再構成することであって、ピクセルの前記ブロックが再構成ビデオデータである、再構成することと、
前記ルーマ適応フィルタ処理に関係するフィルタ情報および前記クロマ適応ループフィルタ処理に関係するフィルタ情報のうちの１つまたは複数をシグナリングすることと
をさらに備える、［１］に記載の方法。
［１５］前記ビデオコーディングプロセスがビデオ復号プロセスであり、前記方法が、
前記ルーマ適応フィルタ処理に関係するフィルタ情報および前記クロマ適応ループフィルタ処理に関係するフィルタ情報のうちの１つまたは複数を受信することと、
符号化ビデオデータを受信することと、
復号ビデオデータを作成するために前記符号化ビデオデータを復号することであって、ピクセルの前記ブロックが復号ビデオデータである、復号することと
をさらに備える、［１］に記載の方法。
［１６］ビデオコーディングプロセスにおいて適応ループフィルタ処理を実行するように構成された装置であって、
ピクセルのブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、
ピクセルの前記ブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することと、
ブロックベース分類モードおよび領域ベース分類モードのうちの１つに基づいて、前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理の両方のためのフィルタ係数を導出することと
を行うように構成されたビデオコーダ
を備える、装置。
［１７］ピクセルの前記ブロックの前記ルーマ成分および前記クロマ成分が、４：２：０、４：２：２または４：４：４フォーマットである、［１６］に記載の装置。
［１８］前記ビデオコーダが、
ピクセルの前記ブロックに対してルーマ適応ループフィルタ処理を実行すべきかどうかを判断することと、
ピクセルの前記ブロックに対してクロマ適応ループフィルタ処理を実行すべきかどうかを判断することであって、クロマ適応ループフィルタ処理を実行すべきかどうかを判断することが、ルーマ適応ループフィルタ処理を実行すべきかどうかを判断することとは無関係に実行される、判断することと
を行うようにさらに構成された、［１６］に記載の装置。
［１９］前記ビデオコーダが、ＣＵレベルＡＬＦオン／オフフラグの値を判断するようにさらに構成された、［１８］に記載の装置。
［２０］前記ビデオコーダが、
クロマ適応ループフィルタ処理のためにルーマ適応ループフィルタ処理のフィルタ情報を共有すること
を行うようにさらに構成された、［１６］に記載の装置。
［２１］前記フィルタ情報が、ＣＵレベルオン／オフフラグ、フィルタ係数、および／またはブロックベース分類を含む、［２０］に記載の装置。
［２２］前記ビデオコーダが、
ルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマ適応ループフィルタ処理のための前記フィルタ係数を予測すること
を行うようにさらに構成された、［１６］に記載の装置。
［２３］前記ビデオコーダが、
差分を作成するためにルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマフィルタ係数を減算すること
を行うようにさらに構成された、［２２］に記載の装置。
［２４］前記ビデオコーダが、ピクセルの前記ブロックのＣｒクロマ成分のためのＣｒクロマ適応ループフィルタ処理を実行することと、ピクセルの前記ブロックのためのＣｂクロマ成分のためのＣｂクロマ適応ループフィルタ処理を実行することとを行うようにさらに構成された、［１６］に記載の装置。
［２５］前記ビデオコーダが、
Ｃｂクロマ適応ループフィルタ処理のためにＣｒクロマ適応ループフィルタ処理のフィルタ情報を共有すること
を行うようにさらに構成された、［２４］に記載の装置。
［２６］前記フィルタ情報が、ＣＵレベルオン／オフマップ、フィルタ係数、および／またはブロックベース分類を含む、［２５］に記載の装置。
［２７］前記ＣＵレベルオン／オフマップがＣＵレベルオン／オフフラグの値を含み、１の値をもつＣＵレベルオン／オフフラグは、ＡＬＦがピクセルの前記ブロックのために実行されることを示し、値０をもつＣＵレベルオン／オフフラグは、ＡＬＦがピクセルの前記ブロックのために実行されないことを示す、［２６］に記載の装置。
［２８］前記ビデオコーダが、
Ｃｒクロマ適応ループフィルタ処理のための前記フィルタ係数からＣｂクロマ適応ループフィルタ処理のための前記フィルタ係数を予測すること
を行うようにさらに構成された、［２４］に記載の装置。
［２９］前記ビデオコーダがビデオエンコーダであり、前記ビデオエンコーダが、
符号化ビデオデータを作成するためにビデオデータを符号化することと、
再構成ビデオデータを作成するために前記符号化ビデオデータを再構成することであって、ピクセルの前記ブロックが再構成ビデオデータである、再構成することと、
前記ルーマ適応フィルタ処理に関係するフィルタ情報および前記クロマ適応ループフィルタ処理に関係するフィルタ情報のうちの１つまたは複数をシグナリングすることと
を行うようにさらに構成された、［１６］に記載の装置。
［３０］前記ビデオコーダがビデオデコーダであり、前記ビデオデコーダが、
前記ルーマ適応フィルタ処理に関係するフィルタ情報および前記クロマ適応ループフィルタ処理に関係するフィルタ情報のうちの１つまたは複数を受信することと、
符号化ビデオデータを受信することと、
復号ビデオデータを作成するために前記符号化ビデオデータを復号することであって、ピクセルの前記ブロックが復号ビデオデータである、復号することと
を行うようにさらに構成された、［１６］に記載の装置。
［３１］ビデオコーディングプロセスにおいて適応ループフィルタ処理を実行するように構成された装置であって、
ピクセルのブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行するための手段と、
ピクセルの前記ブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行するための手段と、
ブロックベース分類モードおよび領域ベース分類モードのうちの１つに基づいて、前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理の両方のためのフィルタ係数を導出するための手段と
を備える、装置。
［３２］ピクセルの前記ブロックの前記ルーマ成分および前記クロマ成分が、４：２：０、４：２：２または４：４：４フォーマットである、［３１］に記載の装置。
［３３］ピクセルの前記ブロックに対してルーマ適応ループフィルタ処理を実行すべきかどうかを判断するための手段と、
ピクセルの前記ブロックに対してクロマ適応ループフィルタ処理を実行すべきかどうかを判断するための手段であって、クロマ適応ループフィルタ処理を実行すべきかどうかを判断することが、ルーマ適応ループフィルタ処理を実行すべきかどうかを判断することとは無関係に実行される、判断するための手段と
をさらに含む、［３１］に記載の装置。
［３４］クロマ適応ループフィルタ処理を実行することを判断するための前記手段が、ＣＵレベルＡＬＦオン／オフフラグの値を判断するための手段を含む、［３３］に記載の装置。
［３５］クロマ適応ループフィルタ処理のためにルーマ適応ループフィルタ処理のフィルタ情報を共有するための手段
をさらに備える、［３１］に記載の装置。
［３６］前記フィルタ情報が、ＣＵレベルオン／オフフラグ、フィルタ係数、および／またはブロックベース分類を含む、［３５］に記載の装置。
［３７］ルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマ適応ループフィルタ処理のための前記フィルタ係数を予測するための手段
をさらに備える、［３１］に記載の装置。
［３８］クロマ適応ループフィルタ処理のための前記フィルタ係数を予測するための前記手段が、差分を作成するためにルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマフィルタ係数を減算するための手段を含む、［３７］に記載の装置。
［３９］命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、実行されたとき、ビデオコーディングプロセスにおいて適応ループフィルタ処理を実行するように構成されたデバイスの１つまたは複数のプロセッサに、
ピクセルのブロックのルーマ成分のためのルーマ適応ループフィルタ処理を実行することと、
ピクセルの前記ブロックのクロマ成分のためのクロマ適応ループフィルタ処理を実行することと、
ブロックベース分類モードおよび領域ベース分類モードのうちの１つに基づいて、前記ルーマ適応ループフィルタ処理と前記クロマ適応ループフィルタ処理の両方のためのフィルタ係数を導出することと
を行わせる、コンピュータ可読記憶媒体。
［４０］ピクセルの前記ブロックの前記ルーマ成分および前記クロマ成分が、４：２：０、４：２：２または４：４：４フォーマットである、［３９］に記載のコンピュータ可読記憶媒体。
［４１］前記命令がさらに、前記１つまたは複数のプロセッサに、
ピクセルの前記ブロックに対してルーマ適応ループフィルタ処理を実行すべきかどうかを判断することと、
ピクセルの前記ブロックに対してクロマ適応ループフィルタ処理を実行すべきかどうかを判断することであって、クロマ適応ループフィルタ処理を実行すべきかどうかを判断することが、ルーマ適応ループフィルタ処理を実行すべきかどうかを判断することとは無関係に実行される、判断することと
を行わせる、［３９］に記載のコンピュータ可読記憶媒体。
［４２］クロマ適応ループフィルタ処理を実行することを判断することが、ＣＵレベルＡＬＦオン／オフフラグの値を判断することを含む、［４１］に記載のコンピュータ可読記憶媒体。
［４３］前記命令がさらに、前記１つまたは複数のプロセッサに、
クロマ適応ループフィルタ処理のためにルーマ適応ループフィルタ処理のフィルタ情報を共有すること
を行わせる、［３９］に記載のコンピュータ可読記憶媒体。
［４４］前記フィルタ情報が、ＣＵレベルオン／オフフラグ、フィルタ係数、および／またはブロックベース分類を含む、［４３］に記載のコンピュータ可読記憶媒体。
［４５］前記命令がさらに、前記１つまたは複数のプロセッサに、
ルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマ適応ループフィルタ処理のための前記フィルタ係数を予測すること
を行わせる、［３９］に記載のコンピュータ可読記憶媒体。
［４６］クロマ適応ループフィルタ処理のための前記フィルタ係数を予測することが、差分を作成するためにルーマ適応ループフィルタ処理のための前記フィルタ係数からクロマフィルタ係数を減算することを含む、［４５］に記載のコンピュータ可読記憶媒体。
【図１】
0005922245.tif 000005
【図２】
0005922245.tif 000006
【図３】
0005922245.tif 000007
【図４】
0005922245.tif 000008
【図５】
0005922245.tif 000009
【図６】
0005922245.tif 000010
【図７】
0005922245.tif 000011
【図８】
0005922245.tif 000012
【図９】
0005922245.tif 000013