(57)【要約】  本開示は、デブロックフィルタ処理技法を説明する。ビデオコーダが、ピクセルから境界までの幾何学的距離と、少なくとも２つのピクセルのピクセル値間のピクセル値差分とに基づいて、ピクセルのピクセル値をデブロックフィルタ処理すべき量を決定し得る。ビデオコーダは、次いで、決定された量に基づいてピクセルをデブロックフィルタ処理し得る。【選択図】図７
2017513326.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、前記方法が、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することと
を備える、方法。
【請求項２】
前記第１のピクセルの前記幾何学的距離を決定することが、前記第１のピクセルと前記境界との間のピクセルの数に基づいて前記幾何学的距離を決定することを備える、請求項１に記載の方法。
【請求項３】
前記ピクセル値差分を決定することが、前記第２のピクセルの前記ピクセル値と前記第３のピクセルの前記ピクセル値との間の差分を決定することと、前記差分を２で除算することとを備える、請求項１に記載の方法。
【請求項４】
前記第２のピクセルが、前記境界に最も近い前記第１のブロックのピクセルを備え、前記第３のピクセルが、前記境界に最も近い前記第２のブロックのピクセルを備える、請求項１に記載の方法。
【請求項５】
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記第１のブロック中の前記第１のピクセルと前記境界までの距離が等距離である前記第２のブロック中のピクセルを備える、請求項１に記載の方法。
【請求項６】
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記境界に最も近い前記第２のブロック中のピクセルを備える、請求項１に記載の方法。
【請求項７】
前記第２のピクセルが前記第１のピクセルの第１の隣接ピクセルを備え、前記第３のピクセルが前記第１のピクセルの第２の隣接ピクセルを備える、請求項１に記載の方法。
【請求項８】
少なくとも前記ピクセル値差分のための重み付けを決定すること
をさらに備え、
ここにおいて、デブロックフィルタ処理すべき前記量を決定することが、前記幾何学的距離と、前記ピクセル値差分と、前記ピクセル値差分のための前記重み付けとに基づいて、デブロックフィルタ処理すべき前記量を決定することを備える、請求項１に記載の方法。
【請求項９】
デブロックフィルタ処理すべき前記量が、第１のしきい値よりも大きいかまたは第２のしきい値よりも小さいと決定することと、
デブロックフィルタ処理すべき前記量が、前記第１のしきい値よりも大きいかまたは前記第２のしきい値よりも小さいことに基づいて、デブロックフィルタ処理すべき調整された量を決定することと
をさらに備え、
ここにおいて、前記ピクセル値をデブロックフィルタ処理することが、デブロックフィルタ処理すべき前記調整された量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することを備える、請求項１に記載の方法。
【請求項１０】
デブロックフィルタ処理すべき前記量を決定することが、前記幾何学的距離と、前記ピクセル値差分と、デブロックフィルタ処理されるべきであるピクセルの数とに基づいて、デブロックフィルタ処理すべき前記量を決定することを備える、請求項１に記載の方法。
【請求項１１】
前記第１のブロックの一部分のための勾配値を決定すること
をさらに備え、ここにおいて、前記勾配値が、前記第１のブロックの前記一部分の平滑度を示し、
ここにおいて、デブロックフィルタ処理することは、前記勾配値がしきい値勾配値よりも小さいかまたはそれに等しいことに基づいて、前記ピクセル値をデブロックフィルタ処理することを備える、請求項１に記載の方法。
【請求項１２】
前記第１のブロックを生成するために使用される第１の変換ブロックの第１のブロックサイズと、前記第２のブロックを生成するために使用される第２の変換ブロックの第２のブロックサイズとを決定すること
をさらに備え、
ここにおいて、デブロックフィルタ処理することは、前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより大きいブロックサイズが最大許容変換ブロックサイズに等しいこと、または前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより小さいブロックサイズがしきい値ブロックサイズよりも大きいことに基づいて、前記ピクセル値をデブロックフィルタ処理することを備える、請求項１に記載の方法。
【請求項１３】
第３のブロック中のピクセルのピクセル値と前記デブロックフィルタ処理されたピクセル値との間の差分を決定することと、
前記第３のブロック中の前記ピクセルの前記ピクセル値と前記デブロックフィルタ処理されたピクセル値との間の前記差分を示す情報をシグナリングすることと、ここにおいて、前記シグナリングされた情報が、前記第３のブロックを復号するために使用される、
をさらに備える、請求項１に記載の方法。
【請求項１４】
第３のブロック中のピクセルのピクセル値と前記デブロックフィルタ処理されたピクセル値との間の差分を示す情報を受信することと、
前記受信された情報に基づいて前記第３のブロックをインター予測またはイントラ予測復号することと
をさらに備える、請求項１に記載の方法。
【請求項１５】
ビデオデータを処理するためのデバイスであって、前記デバイスは、
ピクセル値を記憶するビデオデータメモリと、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、ここにおいて、前記第２のブロックのピクセル値が前記ビデオデータメモリに記憶される、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することと
を行うように構成されたビデオコーダと
を備える、デバイス。
【請求項１６】
前記第１のピクセルの前記幾何学的距離を決定するために、前記ビデオコーダが、前記第１のピクセルと前記境界との間のピクセルの数に基づいて前記幾何学的距離を決定するように構成された、請求項１５に記載のデバイス。
【請求項１７】
前記ピクセル値差分を決定するために、前記ビデオコーダが、前記第２のピクセルの前記ピクセル値と前記第３のピクセルの前記ピクセル値との間の差分を決定することと、前記差分を２で除算することとを行うように構成された、請求項１５に記載のデバイス。
【請求項１８】
前記第２のピクセルが、前記境界に最も近い前記第１のブロックのピクセルを備え、前記第３のピクセルが、前記境界に最も近い前記第２のブロックのピクセルを備える、請求項１５に記載のデバイス。
【請求項１９】
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記第１のブロック中の前記第１のピクセルと前記境界までの距離が等距離である前記第２のブロック中のピクセルを備える、請求項１５に記載のデバイス。
【請求項２０】
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記境界に最も近い前記第２のブロック中のピクセルを備える、請求項１５に記載のデバイス。
【請求項２１】
前記第２のピクセルが前記第１のピクセルの第１の隣接ピクセルを備え、前記第３のピクセルが前記第１のピクセルの第２の隣接ピクセルを備える、請求項１５に記載のデバイス。
【請求項２２】
前記ビデオコーダが、
少なくとも前記ピクセル値差分のための重み付けを決定する
ように構成され、
ここにおいて、デブロックフィルタ処理すべき前記量を決定するために、前記ビデオコーダが、前記幾何学的距離と、前記ピクセル値差分と、前記ピクセル値差分のための前記重み付けとに基づいて、デブロックフィルタ処理すべき前記量を決定するように構成された、請求項１５に記載のデバイス。
【請求項２３】
前記ビデオコーダは、
デブロックフィルタ処理すべき前記量が、第１のしきい値よりも大きいかまたは第２のしきい値よりも小さいと決定することと、
デブロックフィルタ処理すべき前記量が、前記第１のしきい値よりも大きいかまたは前記第２のしきい値よりも小さいことに基づいて、デブロックフィルタ処理すべき調整された量を決定することと
を行うように構成され、
ここにおいて、前記ピクセル値をデブロックフィルタ処理するために、前記ビデオコーダが、デブロックフィルタ処理すべき前記調整された量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理するように構成された、請求項１５に記載のデバイス。
【請求項２４】
デブロックフィルタ処理すべき前記量を決定するために、前記ビデオコーダが、前記幾何学的距離と、前記ピクセル値差分と、デブロックフィルタ処理されるべきであるピクセルの数とに基づいて、デブロックフィルタ処理すべき前記量を決定するように構成された、請求項１５に記載のデバイス。
【請求項２５】
前記ビデオコーダが、
前記第１のブロックの一部分のための勾配値を決定する
ように構成され、ここにおいて、前記勾配値が、前記第１のブロックの前記一部分の平滑度を示し、
ここにおいて、デブロックフィルタ処理するために、前記ビデオコーダは、前記勾配値がしきい値勾配値よりも小さいかまたはそれに等しいことに基づいて、前記ピクセル値をデブロックフィルタ処理するように構成された、請求項１５に記載のデバイス。
【請求項２６】
前記ビデオコーダが、
前記第１のブロックを生成するために使用される第１の変換ブロックの第１のブロックサイズと、前記第２のブロックを生成するために使用される第２の変換ブロックの第２のブロックサイズとを決定する
ように構成され、
ここにおいて、デブロックフィルタ処理するために、前記ビデオコーダは、前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより大きいブロックサイズが最大許容変換ブロックサイズに等しいこと、または前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより小さいブロックサイズがしきい値ブロックサイズよりも大きいことに基づいて、前記ピクセル値をデブロックフィルタ処理するように構成された、請求項１５に記載のデバイス。
【請求項２７】
前記デバイスが、
マイクロプロセッサ、
集積回路（ＩＣ）、または
ワイヤレスハンドセットデバイス
のうちの１つを備える、請求項１５に記載のデバイス。
【請求項２８】
ビデオデータを処理するためのデバイスであって、前記デバイスが、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定するための手段と、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定するための手段と、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定するための手段と、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理するための手段と
を備える、デバイス。
【請求項２９】
実行されたとき、処理するためのデバイスの１つまたは複数のプロセッサに、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本出願は、２０１４年３月１４日に出願された米国仮出願第６１／９５３，５０３号の利益を主張するもので、その全内容が参照により本明細書に組み込まれる。
【０００２】
[0002]  本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]  デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）によって定義された規格、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実施する。
【０００４】
[0004]  ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を含む。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測、あるいは他の参照フレーム中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。
【０００５】
[0005]  インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初は２次元アレイに構成される量子化変換係数は、エントロピーコーディングのための変換係数の１次元ベクトルを生成するために、特定の順序で走査され得る。
【発明の概要】
【０００６】
[0006]  本開示は、ピクチャの再構成されたブロックをデブロックフィルタ処理するための例示的な技法について説明する。ビデオコーダ（例えば、ビデオエンコーダまたはビデオデコーダ）が、ブロックの境界までのピクセルの距離に基づいて、およびピクセルのピクセル値間のピクセル値差分に基づいて、ブロックのピクセルのピクセル値をデブロックフィルタ処理すべき量を決定する。いくつかの例では、ビデオコーダがまた、ピクセルのピクセル値をデブロックフィルタ処理すべき量を決定するためにデブロックフィルタ処理されるべきであるピクセルの数を利用し得る。
【０００７】
[0007]  一例において、本開示は、ビデオデータを処理する方法について説明し、本方法は、第１のブロックの第１のピクセルから第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、幾何学的距離とピクセル値差分とに基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、デブロックフィルタ処理すべき量に基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理することとを備える。
【０００８】
[0008]  一例において、本開示は、ビデオデータを処理するためのデバイスについて説明し、本デバイスは、ピクセル値を記憶するビデオデータメモリと、第１のブロックの第１のピクセルから第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、ここにおいて、第２のブロックのピクセル値がビデオデータメモリに記憶される、第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、幾何学的距離とピクセル値差分とに基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、デブロックフィルタ処理すべき量に基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理することとを行うように構成されたビデオコーダとを備える。
【０００９】
[0009]  一例において、本開示は、ビデオデータを処理するためのデバイスについて説明し、本デバイスは、第１のブロックの第１のピクセルから第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定するための手段と、第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定するための手段と、幾何学的距離とピクセル値差分とに基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定するための手段と、デブロックフィルタ処理すべき量に基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理するための手段とを備える。
【００１０】
[0010]  一例において、本開示は、実行されたとき、１つまたは複数のプロセッサに、第１のブロックの第１のピクセルから第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、幾何学的距離とピクセル値差分とに基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、デブロックフィルタ処理すべき量に基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理することとを行わせる命令を記憶したコンピュータ可読記憶媒体を説明する。
【００１１】
[0011]  １つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、説明および図面、並びに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】本開示で説明される技法を実施し得る例示的なビデオエンコーダを示すブロック図である。
【図３】本開示で説明される技法を実施し得る例示的なビデオデコーダを示すブロック図である。
【図４】ブロック境界にわたるピクセル位置に対するピクセル値の一例を示す概念図である。
【図５】本開示で説明される技法に従ってシグナリングされるデブロッキングフィルタパラメータに基づいて定義される例示的なデブロッキングフィルタの構成要素を示すブロック図である。
【図６】サブブロック間のビデオブロックのエッジの近くのピクセル位置を示す概念図である。
【図７】ビデオデータを処理する例示的な技法を示すフローチャートである。
【発明を実施するための形態】
【００１３】
[0019]  本開示は、ビデオコーディングおよび圧縮の分野に関する。一例として、本開示は、高効率ビデオコーディング（ＨＥＶＣ）規格およびそれの範囲拡張およびスクリーンコンテンツコーディング拡張に関する。但し、本技法は、ＨＥＶＣ規格またはそれの範囲拡張およびスクリーンコンテンツコーディング拡張に限定されると見なされるべきではない。説明しやすいように、本技法が、ＨＥＶＣ規格に関して説明されるが、本技法は、他のビデオコーディング規格に適用可能であり得、一般的にビデオコーディング技法に適用可能である。また、本開示で説明される技法は、将来開発される規格の一部になり得る。言い換えれば、本開示で説明される技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
【００１４】
[0020]  ビデオコーディングの一部として、ビデオエンコーダは、符号化ビデオブロックを再構成し、再構成されたビデオブロックが後続のブロックのインター予測またはイントラ予測のために使用され得るように、再構成されたビデオブロックをビデオエンコーダの復号ピクチャバッファ（ＤＰＢ：decoded picture buffer）に記憶する。ビデオデコーダは、符号化ビデオブロックのためのビデオデータを受信し、最終的な表示のためにビデオブロックを再構成する。
【００１５】
[0021]  場合によっては、ブロックの境界に沿ってブロッキングアーティファクトがあり得る。そのようなブロッキングアーティファクトは、再構成のために使用されるブロックのブロックサイズが比較的大きいとき、閲覧者にとって特に顕著であり得る。ブロッキングアーティファクトは、あるブロックから別のブロックへの遷移を閲覧者が知覚できないような、あるブロックから別のブロックへのブレンドされた遷移ではなく、ビデオコンテンツ中の別個のビデオブロックを閲覧者に知覚させる、ブロックの境界における中断を一般に指す。より一般的には、ブロッキングアーティファクトは、あるブロックから別のブロックへのビデオコンテンツ中の知覚できる中断を引き起こすブロックベースのビデオコーディングの結果であり得る。
【００１６】
[0022]  本開示で説明されるように、ブロッキングアーティファクトを平滑化するために、ビデオコーダ（例えば、ビデオエンコーダまたはビデオデコーダ）は、ブロック境界に近接した複数のピクセル（例えば、ブロックの境界から延びるＮ個のピクセル）上でデブロッキングフィルタを適用し得る。ブロッキングアーティファクトの平滑化は、ピクセル値間の急激な上昇ではなく、ブロックの一方の側からのピクセル値の変化がブロック境界にわたって平滑な遷移であるように、隣接ブロック間の境界の両側にあるピクセル間のピクセル値における急激な上昇を平均する。言い換えれば、ブロッキングアーティファクトを平滑化することにより、ピクセル値における平滑な遷移があるように、境界に近接したピクセル値が変化する量が低減する。
【００１７】
[0023]  本開示は、ブロックの境界までのピクセルの幾何学的距離と、ピクセル値の差分（すなわち、ピクセル値差分）とに基づいて、ブロック中のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することの例を説明している。ブロック中のピクセルのピクセル値は、ルーマブロック中のピクセルのルーマ値、またはクロマブロックのうちの１つ中のピクセルのクロマ値のうちの１つであり得る。いくつかの例では、ビデオコーダはまた、ピクセルのピクセル値をデブロックフィルタ処理すべき量を決定するためにデブロックフィルタ処理されるべきであるピクセルの数を利用し得る。
【００１８】
[0024]  場合によっては、比較的大きいブロックサイズ（例えば、一例として３２×３２）の場合、ブロック境界に沿ったブロッキングアーティファクトは著しいことがある。例えば、ビデオコーダは、ブロックをコーディングすることの一部として変換ユニットを決定する。変換ユニットのブロックサイズが比較的大きい場合、ブロッキングアーティファクトは著しいことがある。ブロッキングアーティファクトを平滑化するために、ＨＥＶＣビデオコーディング規格および他の提案における技法など、現在の技法が存在するが、そのような技法は、大きいブロックサイズの場合、ブロッキングアーティファクトを適切に平滑化しないか、またはブロッキングアーティファクトの十分な平滑化を達成するために計算および実施複雑さを大幅に増加させることがある。
【００１９】
[0025]  本開示で説明される技法は、幾何学的距離とピクセル値差分とに基づいてブロッキングアーティファクトを平滑化することによって、視覚的品質を改善し得る。例えば、本技法は、ピクセル距離に従ってフィルタ処理する前にピクセル値を維持し得、ここで、ピクセル距離は、幾何学的距離およびピクセル値差分の関数である。ビデオコーダはまた、処理および実施を可能にする、何らかの他の技法として、より少数のピクセルを使用してデブロックフィルタ処理を行うことが可能であり得る。
【００２０】
[0026]  図１は、本開示の例による技法を利用するように構成され得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されるように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。符号化ビデオデータはまた、記憶媒体３４またはファイルサーバ３６に記憶され得、必要に応じて宛先デバイス１４によってアクセスされ得る。記憶媒体またはファイルサーバに記憶されたとき、ビデオエンコーダ２０は、コード化ビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスク（ＣＤ）、Ｂｌｕ−ｒａｙ（登録商標）またはデジタルビデオディスク（ＤＶＤ）バーナーまたはスタンピングファシリティデバイス、あるいは他のデバイスなど、別のデバイスにコード化ビデオデータを与え得る。同様に、ネットワークインターフェース、ＣＤまたはＤＶＤリーダーなど、ビデオデコーダ３０とは別個のデバイスが、記憶媒体からコード化ビデオデータを取り出し得、取り出されたデータをビデオデコーダ３０に与えた。
【００２１】
[0027]  ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ワイヤレスハンドセットデバイスなどを含む、多種多様なデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。従って、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を通して宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。
【００２２】
[0028]  本開示の例による、技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００２３】
[0029]  いくつかの例において、本開示で説明される技法は、高効率ビデオコーディング（ＨＥＶＣ）規格に従うビデオコーディングにおいて特に有用であり得る。但し、本開示で説明される技法は、特定のビデオコーディング規格に限定されると見なされるべきではない。本開示で説明される技法は、非規格ベースのビデオコーディングにも適用可能であり得る。
【００２４】
[0030]  ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびそれのスケーラブルビデオコーディング（ＳＶＣ：Scalable Video Coding）拡張とマルチビュービデオコーディング（ＭＶＣ：Multiview Video Coding）拡張とを含む、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含む。ＭＶＣの最新のジョイントドラフトは、「Advanced video coding for generic audiovisual services」、ＩＴＵ−Ｔ勧告Ｈ．２６４、２０１０年３月に記載されている。
【００２５】
[0031]  さらに、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ：Motion Picture Experts Group）とのジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって開発された、新開発のビデオコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）がある。文書ＪＣＴＶＣ−Ｌ１００３ｖ３４、Ｂｒｏｓｓら、「High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaborative Team on Video Coding）、第１２回会議、ジュネーブ、スイス、２０１３年１月１４〜２３日に記載されている、「ＨＥＶＣワーキングドラフト１０」または「ＷＤ１０」と呼ばれるＨＥＶＣの最近のドラフトは、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１２＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｌ１００３−ｖ３４．ｚｉｐから入手可能である。
【００２６】
[0032]  ＨＥＶＣは、ＩＴＵ−Ｔ  ＷＰ３／１６とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）によって最近開発されたビデオコーディングのための国際規格である。ＨＥＶＣの範囲拡張は、ＹＣｂＣｒ４：２：２、ＹＣｂＣｒ４：４：４、およびＲＧＢなど、ＹＣｂＣｒ４：２：０以外の色空間のためにビデオコーディングを拡張することを含む。範囲拡張ドラフトは、Ｄ．Ｆｌｙｎｎ、Ｍ．Ｎａｃｃａｒｉ、Ｃ．Ｒｏｓｅｗａｒｎｅ、Ｊ．Ｓｏｌｅ、Ｇ．Ｓｕｌｌｉｖａｎ、およびＴ．Ｓｕｚｕｋｉ、「High Efficiency Video Coding (HEVC) Range Extensions text specification: Draft 3」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、文書ＪＣＴＶＣ−Ｐ１００５、２０１４年１月である。さらに、スクリーンコンテンツコーディングのためのコーディング性能を改善するために、新しい規格化アクティビティが行われた。新しい規格化のためのアクティビティは、Joint Call for Proposals for Coding of Screen Content、ＩＴＵ−Ｔ  Ｑ６／１６およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、文書ＭＰＥＧ２０１４／Ｎ１４１７５、２０１３年１月である。
【００２７】
[0033]  図１の例では、ソースデバイス１２が、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。ソースデバイス１２において、ビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得、これらは、例えば、スマートフォンまたはタブレットコンピュータ内に与えられ得る。但し、本開示で説明される技法は、一般にビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例、あるいは符号化ビデオデータがローカルディスクに記憶された適用例に適用され得る。
【００２８】
[0034]  キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、ワイヤードまたはワイヤレス通信プロトコルなどの通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器と、フィルタと、ワイヤレス通信の場合には１つまたは複数のアンテナとを含む、データを送信するために設計された回路を含み得る。
【００２９】
[0035]  ビデオエンコーダ２０によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体３４またはファイルサーバ３６に記憶され得る。記憶媒体３４は、Ｂｌｕ−ｒａｙディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。記憶媒体３４に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス１４によってアクセスされ得る。図１には示されていないが、いくつかの例では、記憶媒体３４および／またはファイルサーバ３６は送信機２４の出力を記憶し得る。
【００３０】
[0036]  また、記憶媒体３４およびファイルサーバ３６は、ビデオエンコーダ２０からビデオデータを受信するものとして示されているが、いくつかの例では、記憶媒体３４およびファイルサーバ３６が、ビデオエンコーダ２０ではなく、送信機２４または何らかの他のユニットからビデオデータを受信し得る。同様に、記憶媒体３４およびファイルサーバ３６は、ビデオデータをビデオデコーダ３０に出力するものとして示されているが、いくつかの例では、記憶媒体３４およびファイルサーバ３６が、ビデオデータを、ビデオデコーダ３０ではなく、受信機２６または何らかの他のユニットに出力し得る。これらの例では、ビデオデコーダ３０が、受信機２６または何らかの他のユニットからビデオデータを受信し得る。
【００３１】
[0037]  ファイルサーバ３６は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ローカルディスクドライブ、または、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な任意の他のタイプのデバイスを含む。ファイルサーバ３６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を通して宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデム、イーサネット（登録商標）、ＵＳＢなど）、またはその両方の組合せを含み得る。
【００３２】
[0038]  宛先デバイス１４は、図１の例で、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。宛先デバイス１４の受信機２６は通信チャネル１６を介して情報を受信し、モデム２８は、ビデオデコーダ３０のための復調されたビットストリームを生成するためにその情報を復調する。通信チャネル１６を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ３０が使用する、ビデオエンコーダ２０によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ（コーデック）の一部を形成し得る。
【００３３】
[0039]  ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４が、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４がディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３４】
[0040]  図１の例では、通信チャネル１６が、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、一般に、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００３５】
[0041]  ビデオエンコーダ２０およびビデオデコーダ３０は、ＨＥＶＣおよび／またはＨＥＶＣ規格の拡張など、ビデオ圧縮規格に従って動作し得る。ＨＥＶＣ範囲拡張は現在開発中である。さらに、ＨＥＶＣおよびそれの拡張の説明は、例示のために与えられたものであり、限定的と見なされるべきではない。一般に、ビデオエンコーダ２０およびビデオデコーダ３０はビデオコーディングに関し、より具体的には、より詳細に説明されるようなデブロックフィルタ処理に関する、本開示で説明される例示的な技法を行うように構成され得る。
【００３６】
[0042]  図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０がそれぞれ、オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットがマルチプレクサプロトコルに準拠し得る。例としては、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ：user datagram protocol）などの他のプロトコルがある。
【００３７】
[0043]  ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実施され得る。本技法が部分的にソフトウェアで実施されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を行うために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００３８】
[0044]  ビデオデコーダ３０を含むデバイスの例としては、ワイヤレス通信デバイス、集積回路（ＩＣ）、およびマイクロプロセッサがある。同様に、ビデオエンコーダ２０を含むデバイスの例としては、ワイヤレス通信デバイス、ＩＣ、およびマイクロプロセッサがある。
【００３９】
[0045]  いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０がそれぞれ、本開示で説明される技法を実施するように構成された１つまたは複数のプロセッサを含み得る。ビデオエンコーダ２０またはビデオデコーダ３０を含むデバイスはまた、ビデオエンコーダ２０およびビデオデコーダ３０が利用するビデオデータを記憶するメモリを含み得る。ビデオエンコーダ２０とビデオデコーダ３０とを含むデバイスがＩＣチップまたはマイクロプロセッサである例では、メモリが、ＩＣチップまたはマイクロプロセッサのローカルメモリであり得るか、あるいはＩＣチップまたはマイクロプロセッサを含む装置（例えば、スマートフォンまたはタブレットなどのワイヤレス通信デバイス）のシステムメモリ、あるいはローカルメモリとシステムメモリとの組合せであり得る。ビデオエンコーダ２０とビデオデコーダ３０とを含むデバイスがワイヤレス通信デバイス（または他のそのようなデバイス）である例では、メモリが、ビデオエンコーダ２０またはビデオデコーダ３０のローカルメモリ、ビデオエンコーダ２０またはビデオデコーダ３０を含むデバイスのシステムメモリ、あるいはローカルメモリとシステムメモリとの組合せであり得る。
【００４０】
[0046]  本開示に従って、ビデオエンコーダ２０は、デブロックフィルタ処理のための本開示の技法のいずれかまたは全てを実施し得る。同様に、ビデオデコーダ３０は、デブロックフィルタ処理のためのこれらの技法のいずれかまたは全てを実施し得る。本開示で説明されるビデオコーダは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指すことがある。例えば、ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、本開示で説明される例示的な技法を行い得るので、「ビデオコーダ」という用語は、一般的にビデオエンコーダまたはビデオデコーダを表すために使用される。特定の符号化技法が呼び出される本開示の部分では、ビデオコーダがビデオエンコーダ２０の一例を表し、特定の復号技法が呼び出される本開示の部分では、ビデオコーダがビデオデコーダ３０の一例を表す。また、「コーディングする」または「コーディング」という用語は、一般的に、それぞれ、符号化する／復号するまたは符号化／復号を指すために使用される。
【００４１】
[0047]  デジタルビデオデバイスは、デジタルビデオ情報をより効率的に符号化および復号するためのビデオ圧縮技法を実施する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（フレーム内）予測および／または時間的（フレーム間）予測技法を適用し得る。
【００４２】
[0048]  ＨＥＶＣ準拠ビデオ復号デバイスは、前の生成デバイス（例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣデバイス）に対していくつかの追加の能力をサポートする。例えば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＥＶＣは同数の３５個のイントラ予測符号化モードをサポートする。以下のセクションは、ＨＥＶＣのいくつかの態様をより詳細に論じることになる。
【００４３】
[0049]  ＨＥＶＣ規格に従うビデオコーディングの場合、ビデオフレームはコーディングユニットに区分され得る。コーディングユニット（ＣＵ：coding unit）は、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を一般に指す。ＣＵは、通常、Ｙとして示されるルミナンス成分と、ＵおよびＶとして示される２つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプルの数に関して、ＵおよびＶ成分のサイズは、Ｙ成分のサイズと同じであるかまたはそれとは異なり得る。
【００４４】
[0050]  ＣＵは、一般に方形であり、例えば、ＩＴＵ−Ｔ  Ｈ．２６４などの他のビデオコーディング規格の下でのいわゆるマクロブロックと同様であると見なされ得る。ＨＥＶＣ規格の現在提案されている態様のいくつかに従うコーディングが例示のために本出願において説明される。但し、本開示で説明される技法は、ＨＥＶＣの範囲拡張、Ｈ．２６４または他の規格に従って定義されるプロセスあるいはプロプライエタリビデオコーディングプロセスなど、他のビデオコーディングプロセスのために有用であり得る。
【００４５】
[0051]  ＨＥＶＣによれば、ＣＵは、１つまたは複数の予測ユニット（ＰＵ：prediction unit）および／または１つまたは複数の変換ユニット（ＴＵ：transform unit）を含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大ＣＵである最大コーディングユニット（ＬＣＵ：largest coding unit）を定義し得る。一般に、ＣＵは、ＣＵがサイズの差異を有しないことを除いて、Ｈ．２６４のマクロブロックと同様の目的を有する。従って、ＣＵはサブＣＵに分割され得る。一般に、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニットまたはＬＣＵのサブＣＵを指すことがある。ＬＣＵはサブＣＵに分割され得、各サブＣＵはさらにサブＣＵに分割され得る。ビットストリームのためのシンタックスデータは、ＣＵ深度と呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。本開示ではまた、ＣＵ、ＰＵ、またはＴＵのいずれかを指すために「ブロック」または「部分」という用語を使用する。一般に、「部分」は、ビデオフレームの任意のサブセットを指し得る。
【００４６】
[0052]  ＬＣＵは４分木データ構造に関連し得る。一般に、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのためのシンタックスデータを与え得る。例えば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのためのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的な分割が存在しなくても、リーフＣＵの４つのサブＣＵがリーフＣＵとも呼ばれる。例えば、１６×１６サイズのＣＵがさらに分割されない場合、その１６×１６ＣＵが決して分割されなくても、４つの８×８サブＣＵはリーフＣＵとも呼ばれる。
【００４７】
[0053]  リーフＣＵは１つまたは複数のＰＵを含み得る。一般に、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵのための参照サンプルを取り出すためのデータを含み得る。例えば、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照フレーム、および／または動きベクトルの参照リスト（例えば、リスト０もしくはリスト１）を記述し得る。（１つまたは複数の）ＰＵを定義するリーフＣＵのためのデータはまた、例えば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかに応じて異なり得る。イントラコーディングの場合、ＰＵは、以下で説明されるリーフ変換ユニットと同じように扱われ得る。
【００４８】
[0054]  ＨＥＶＣ規格は、ＣＵごとに異なり得る変換ユニット（ＴＵ）に従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。ＴＵは、一般に、ＰＵと同じサイズであるかまたはＰＵよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルが、「残差４分木」（ＲＱＴ：residual quad tree）と呼ばれる４分木構造を使用して、より小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵに関連するピクセル差分値は、変換係数を生成するために変換され得、その変換係数は量子化され得る。ＴＵは、ルーマ変換ブロックと２つのクロマ変換ブロックとを含む。従って、ＴＵに適用される、以下で説明される任意のコーディングプロセスは、実際には、ルーマおよびクロマの変換ブロックに適用され得る。
【００４９】
[0055]  一般に、ＰＵは、予測プロセスに関係するデータを指す。例えば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのためのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための動きベクトルを定義するデータを含み得る。
【００５０】
[0056]  一般に、ＴＵは、変換プロセスと量子化プロセスとのために使用される。１つまたは複数のＰＵを有する所与のＣＵは、１つまたは複数のＴＵをも含み得る。予測に続いて、ビデオエンコーダ２０は、ＰＵに従ってコーディングノードによって識別されたビデオブロックから残差値を計算し得る。コーディングノードは、次いで、元のビデオブロックではなく、残差値を参照するように更新される。残差値はピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのためのシリアル化変換係数（serialized transform coefficient）を生成するためにＴＵ中で指定された変換と他の変換情報とを使用して変換係数に変換され、量子化され、走査され得る。コーディングノードは、これらのシリアル化変換係数を参照するように、もう一度更新され得る。本開示は、一般に、ＣＵのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示は、コーディングノード並びにＰＵおよびＴＵを含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指すためにも「ビデオブロック」という用語を使用し得る。
【００５１】
[0057]  ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ（ＧＯＰ）は、一般に、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックはＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
【００５２】
[0058]  ブロック（例えば、ビデオデータの予測ユニット）をコーディングするために、ブロックの予測子が最初に導出される。予測ブロックとも呼ばれる予測子は、イントラ（Ｉ）予測（すなわち、空間的予測）またはインター（ＰまたはＢ）予測（すなわち時間的予測）のいずれかを通して導出され得る。従って、いくつかの予測ユニットは、同じフレーム（またはスライス）中の隣接参照ブロック中の参照サンプルに対する空間的予測を使用してイントラコーディング（Ｉ）され得、他の予測ユニットは、前にコーディングされた他のフレーム（またはスライス）中の参照サンプルのブロックに対して単方向にインターコーディング（Ｐ）されるかまたは双方向にインターコーディング（Ｂ）され得る。各場合において、参照サンプルは、コーディングされるべきブロックの予測ブロックを形成するために使用され得る。
【００５３】
[0059]  予測ブロックの識別時に、元のビデオデータブロック中のピクセルとそれの予測ブロック中のピクセルとの間の差分が決定される。この差分は予測残差データと呼ばれることがあり、コーディングされるべきブロック中のピクセル値と、コード化ブロックを表すように選択された予測ブロック中のピクセル値との間のピクセル差分を示す。より良好な圧縮を達成するために、予測残差データは、例えば、離散コサイン変換（ＤＣＴ）、整数変換、カルーネン−レーベ（Karhunen-Loeve）（Ｋ−Ｌ）変換、または変換係数を生成するための別の変換を使用して変換され得る。
【００５４】
[0060]  ＴＵなどの変換ブロック中の残差データは、空間的ピクセル領域に存在するピクセル差分値の２次元（２Ｄ）アレイで構成され得る。変換は、周波数領域などの変換領域において残差ピクセル値を変換係数の２次元アレイに変換する。
【００５５】
[0061]  さらなる圧縮のために、変換係数は、エントロピーコーディングに先立って量子化され得る。次いで、エントロピーコーダは、量子化変換係数に、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：Context Adaptive Variable Length Coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、確率間隔区分エントロピーコーディング（ＰＩＰＥ）などのエントロピーコーディングを適用する。いくつかの例では、ビデオエンコーダ２０が、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０が適応走査を行い得る。１次元ベクトルを形成するために量子化変換係数を走査した後に、ビデオエンコーダ２０は１次元ベクトルをエントロピー符号化し得る、ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用する、符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【００５６】
[0062]  算術コーディングは、シンボルを非整数長さコードワードにマッピングすることが可能であるので、高いコーディング効率を有する多くの圧縮アルゴリズムにおいて使用されるエントロピーコーディングの形態である。ＣＡＢＡＣコーディングは、ある情報に適用され、他の情報についてバイパスされ得る。
【００５７】
[0063]  ビデオデコーダ３０は、ブロックを復号するためにビデオエンコーダ２０のプロセスの逆を行う。例えば、ビデオデコーダ３０は、ビットストリームから受信された係数データからＴＵを決定し、ビットストリームからの動きベクトル情報またはイントラコーディングモード情報から予測子を識別する。ビデオデコーダ３０は、次いで、ブロックを生成するためにＴＵに予測子を加算する。
【００５８】
[0064]  上記で説明されたように、ビデオエンコーダ２０およびビデオデコーダ３０は、本開示で説明される例示的なデブロックフィルタ処理技法を実施するように構成され得る。例えば、ビデオコーダ（例えば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ブロック境界に沿ったブロッキングアーティファクトを除去するためにデブロックフィルタ処理を行い得る。ブロッキングアーティファクトは、閲覧者がビデオブロックの境界を見ることができるビデオコンテンツ欠陥を指す。デブロックフィルタ処理は、閲覧者がビデオブロックを知覚しない（すなわち、あるブロックから別のブロックへのビデオコンテンツの急激な変化がない）ように、境界に近接したピクセルのピクセル値を平滑化する。
【００５９】
[0065]  しかしながら、デブロックフィルタ処理は、同様にビデオコンテンツを過剰平滑化すべきではなく、従って、過剰平滑化は視覚的品質を劣化させる。さらに、場合によっては、ビデオコンテンツ自体が急激な変化を含み得、デブロックフィルタ処理は、そのような変化を過度に平滑化すべきではない。例えば、現実画像エッジ（例えば、例示的な例として、白いバックグラウンド上に黒い前景物体を用いて形成されたエッジ）では、デブロックフィルタ処理が、そのような現実画像エッジ上で平滑化すべきではない。
【００６０】
[0066]  現在、ＨＥＶＣ規格は、大きいブロックサイズ変換（例えば、比較的大きいＴＵサイズ）を使用し、それにより、ブロック境界に沿った著しいブロッキングアーティファクトが生じることがある。ＨＥＶＣは、強フィルタ処理方法を有する、ループ内デブロックフィルタ処理方式を含む。しかしながら、ブロックサイズが大きいとき、激しいブロッキングアーティファクトを処理するための非効率があることがわかっている。
【００６１】
[0067]  この問題を解決するために、ＨＥＶＣための多くの提案が行われた。Ｚ．Ｓｈｉ、Ｘ．Ｓｕｎ、およびＪ．Ｘｕ、「CE12, Subset 1: Report of deblocking for large size blocks」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、文書ＪＣＴＶＣ−Ｇ４０９、２０１１年１１月において、より大きい変換ブロックの境界を平滑化するために、より長いフィルタが提案された。Ｇ．Ｖａｎ  ｄｅｒ  Ａｕｗｅｒａ、Ｒ．Ｊｏｓｈｉ、およびＭ．Ｋａｒｃｚｅｗｉｃｚ、「Non-CE1: Deblocking of Large Block Artifacts」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、文書ＪＣＴＶＣ−Ｋ１３８、２０１２年１０月、Ｓ．Ｌｕ、Ｏ．Ｎａｋａｇａｍｉ、およびＴ．Ｓｕｚｕｋｉ、「CE1: On deblocking filter」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、文書ＪＣＴＶＣ−Ｋ１４９、２０１２年１０月、Ｓ．Ｌｕ、Ｏ．Ｎａｋａｇａｍｉ、およびＴ．Ｓｕｚｕｋｉ、「NonCE1: Simple improvement of Deblocking filter」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、文書ＪＣＴＶＣ−Ｋ１５０、２０１２年１０月、並びに、Ｄ．−Ｋ．ＫｗｏｎおよびＭ．Ｂｕｄａｇａｖｉ、「Non-CE1: Suppression of blocking artifacts at large TU boundaries」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、文書ＪＣＴＶＣ−Ｋ２６９、２０１２年１０月において、大きい変換ブロック（例えば、ＴＵ）サイズのために、デブロックフィルタ処理パラメータが調整されている。これらの技法は、より大きい変換ブロックの境界に沿ったブロッキングアーティファクトを減衰するのを助けることができた。しかしながら、ＨＥＶＣの変更は行われなかった。
【００６２】
[0068]  Ｇｏｏｇｌｅ  ＶＰ９、Ａ．ＧｒａｎｇｅおよびＨ．Ａｌｖｅｓｔｒａｎｄ、「A VP9 Bitstream Overview」、ネットワークワーキンググループ、ＩＥＴＦ、２０１３年２月において、ブロッキングアーティファクトを低減するために、長いフィルタが使用され、これは、「CE12, Subset 1: Report of deblocking for larger size blocks」と同様である。「CE12, Subset 1: Report of deblocking for larger size blocks」と「Non-CE1: Suppression of blocking artifacts at large TU boundaries」の両方は、大きい変換ブロックの境界に沿ったブロッキングアーティファクトを低減できる。しかしながら、これらの技法は、ブロック境界に沿った多くのピクセルにアクセスすることを必要とし、それにより、計算および実施複雑さが増加する。また、それらにおけるフィルタは、極めて強いローパスフィルタであり、それらは過剰平滑化を行い、視覚品質劣化をもたらすことがある。一方、「Non-CE1:Deblocking of Large Block Artifacts」、「CE1: On deblocking filter」、「NonCE1: Simple improvement of Deblocking filter」、および「Non-CE1: Suppression of blocking artifacts at large TU boundaries」において提案されるような、デブロックフィルタパラメータを変更することによる性能(performance)は、境界に沿って変更されるピクセルの数が十分でないので制限され得、場合によっては、これらの方法により、現実画像エッジの平滑化が生じることがあり、これは視覚的品質を劣化させる。
【００６３】
[0069]  本開示で説明される例示的な技法は、デブロックフィルタ処理のための上で説明された問題のうちの１つまたは複数を克服し得る。例えば、本開示は、ブロッキングアーティファクトを低減するための新しいフィルタ設計について説明している。本開示で説明される技法は、ピクセル距離（例えば、定義されたピクセル距離）に従ってフィルタ処理する前にピクセル値を維持することによって、視覚的品質を改善する。それはまた、処理および実施を可能にする、「CE12, Subset 1:Report of deblocking for large size blocks」および「Non-CE1:Suppression of blocking artifacts at large TU boundaries」に記載する技法など、上で説明された他の技法の全てではないにしても、少なくともいくつかと比較して、フィルタ処理のためにより少数のピクセルを必要とする。
【００６４】
[0070]  いくつかの例では、ビデオエンコーダ２０が、符号化されているブロックの再構成の一部としてデブロックフィルタ処理を行い得る。例えば、上で説明されたように、ビデオエンコーダ２０は、残差データを含むＴＵを決定する。ＴＵは、次いで、変換され、量子化される。さらに、ビデオエンコーダ２０は、ＴＵを再構成するために、ブロックを逆量子化し、逆変換する。ビデオエンコーダ２０は、再構成されたブロックを生成するために、再構成されたＴＵに予測子を加算する。本開示で説明される技法において、ビデオエンコーダ２０は、ブロックが、後続のブロックのインター予測またはイントラ予測符号化のために使用され得るように、ビデオエンコーダ２０が復号ピクチャバッファ（ＤＰＢ）に記憶する、フィルタ処理された再構成されたブロックを生成するために、本開示で説明される技法を利用して、再構成されたブロックをデブロックフィルタ処理し得る。
【００６５】
[0071]  ビデオデコーダ３０は、ブロックを生成することの一部としてデブロックフィルタ処理を行い得る。例えば、ビデオデコーダ３０は、ブロックの係数を受信し、ＴＵを再構成するためにブロックを逆量子化し、逆変換する。ビデオデコーダ３０は、再構成されたブロックを生成するために、再構成されたＴＵに予測子を加算する。ビデオデコーダ３０は、ブロックが、後続のブロックのインター予測またはイントラ予測復号のために、およびディスプレイのための復号されたビデオの出力のために使用され得るように、ビデオデコーダ３０がそれのＤＰＢに記憶する、フィルタ処理された再構成されたブロックを生成するために、本開示で説明される技法を利用して、再構成されたブロックをデブロックフィルタ処理し得る。
【００６６】
[0072]  本開示で説明される技法において、ビデオコーダ（例えば、ビデオエンコーダ２０またはビデオデコーダ３０）は、第１のブロックの第１のピクセルから第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定し得る。ビデオコーダは、第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定し得る。ビデオコーダは、幾何学的距離とピクセル値差分とに基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定し、デブロックフィルタ処理すべき量に基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理し得る。図４に示す例とともに、デブロックフィルタ処理技法の例が与えられる。
【００６７】
[0073]  図４は、ブロック境界にわたるピクセル位置に対するピクセル値の一例を示す概念図である。例えば、図４は、ブロック８４Ａとブロック８４Ｂとを示している。図４は、「｜」がブロック８４Ａとブロック８４Ｂとの間のブロック境界８６である一例を示している。ブロック境界８６は、２つの隣接ＴＵ間の境界であり得るが、いくつかの例で、２つの隣接ＰＵ間の境界であり得る。境界８６が２つのＴＵ間の境界である例では、ブロック８４Ａとブロック８４Ｂが両方ともＴＵであり得る。境界８６が２つのＰＵ間の境界である例では、ブロック８４Ａとブロック８４Ｂが両方ともＰＵであり得る。
【００６８】
[0074]  境界８６は、水平ブロック境界または垂直ブロック境界のいずれかであり得る。例として、境界８６は垂直ブロック境界として示されている。しかしながら、例示的な技法は、境界が水平である場合に等しく適用可能である。
【００６９】
[0075]  ブロック８４Ｂは、コーディング（例えば、符号化または復号）されている現在ブロックであり得、ブロック８４Ａは、前にコーディングされたブロックであり得る。例えば、ブロック８４ＡはビデオコーダのＤＰＢに記憶され得る。この例では、ブロック８４Ｂが、デブロックフィルタ処理の前の再構成されたブロック（例えば、再構成されたＴＵ＋予測子）であり得る。
【００７０】
[0076]  また、この例では、ブロック８４Ａの一部が、すでにデブロックフィルタ処理されていることがあるが、ブロック８４Ａの右端境界は、まだデブロックフィルタ処理されていないことがある（例えば、ピクセルｐ（０）〜ｐ（Ｎ−１））。例えば、ビデオコーダは、左側のブロック８４Ａに隣接するブロックの右端境界に近接したピクセルとともに、ブロック８４Ａの左端境界に近接したピクセルをデブロックフィルタ処理していることがある。ビデオコーダは、ブロック８４Ａとして得られたブロックをビデオコーダのＤＰＢに記憶し、次に、ブロック８４Ｂの左端境界に近接したピクセル（例えば、ピクセルｑ（０）〜ｑ（Ｎ−１））をデブロックブロックフィルタ処理するために、ブロック８４Ａを取り出していることがある。同様に、ビデオコーダがブロック８４Ｂの右側のブロックをコーディングしているとき、ビデオコーダは、ブロック８４Ｂの右端境界に近接したピクセルをデブロックフィルタ処理するであろう。ビデオコーダは、（例えば、境界が水平境界である場合）ブロック８４Ｂの上および下のブロックに基づいて、同様のデブロックフィルタ処理を行い得る。いくつかの例で、デブロッキングの一部として、ビデオコーダは、ブロック８４Ａのある部分がすでにデブロックフィルタ処理された場合、ブロック８４Ａのピクセルｐ（０）〜ｐ（Ｎ−１）をデブロックフィルタ処理し、ブロック８４Ｂが、符号化または復号されている現在ブロックである場合、ブロック８４Ｂのピクセルｑ（０）〜ｑ（Ｎ−１）をデブロックフィルタ処理し得る。
【００７１】
[0077]  図４では、ブロック８４Ａのピクセルが、それぞれ、ピクセル値ｐ（０）〜ｐ（Ｎ−１）をもつピクセル０〜Ｎ−１であり、ブロック８４Ｂのピクセルは、それぞれ、ピクセル値ｑ（０）〜ｑ（Ｎ−１）をもつピクセル０〜Ｎ−１である。ブロック中のピクセルのピクセル値は、ルーマブロック中のピクセルのルーマ値、またはクロマブロックのうちの１つ中のピクセルのクロマ値のうちの１つであり得る。例えば、ｐ（０）〜ｐ（Ｎ−１）は、ブロック８４Ａがルーマブロックである例で、ピクセルのルーマ値に対応するか、または、ブロック８４Ａがクロマブロックのうちの１つである例で、ピクセルのクロマ値のうちの１つに対応し得る。同様に、ｑ（０）〜ｑ（Ｎ−１）は、ブロック８４Ｂがルーマブロックである例で、ピクセルのルーマ値に対応するか、または、ブロック８４Ｂがクロマブロックのうちの１つである例で、ピクセルのクロマ値のうちの１つに対応し得る。
【００７２】
[0078]  ピクセル値ｐ（０）〜ｐ（Ｎ−１）をもつピクセルは同じ行中にあり得、ピクセル値ｑ（０）〜ｑ（Ｎ−１）をもつピクセルは、同じ行中にあり、ピクセル値ｐ（０）〜ｐ（Ｎ−１）をもつピクセルと同じ行中にあり得る。変数「Ｎ」は、デブロックフィルタ処理されるべきであるピクセルの数（すなわち、ブロック８４Ａ中のＮ−１個のピクセルおよびブロック８４Ｂ中のＮ−１個のピクセル）を示す。
【００７３】
[0079]  図４に示されるように、ピクセル値ｐ（０）〜ｐ（Ｎ−１）をもつピクセルは全て、境界８６に近接しており、境界８６から徐々に遠ざかる。例えば、ブロック８４Ａのピクセル値ｐ（０）をもつピクセルは境界８６に最も近く、ブロック８４Ａのピクセル値ｐ（１）をもつピクセルは次に最も近く、ブロック８４Ａのピクセル値ｐ（Ｎ−１）をもつピクセルは境界８６から最も離れている。同様に、ピクセル値ｑ（０）〜ｑ（Ｎ−１）をもつピクセルは全て、境界８６に近接しており、境界８６から徐々に遠ざかる。例えば、ブロック８４Ｂのピクセル値ｑ（０）をもつピクセルは境界８６に最も近く、ブロック８４Ｂのピクセル値ｑ（１）をもつピクセルは次に最も近く、ブロック８４Ｂのピクセル値ｑ（Ｎ−１）をもつピクセルは境界８６から最も離れている。また、ピクセル値ｐ（０）をもつピクセルとピクセル値ｑ（０）をもつピクセルとは境界８６までの距離が等距離であり得、ピクセル値ｐ（１）をもつピクセルとピクセル値ｑ（１）をもつピクセルとは境界８６までの距離が等距離であり得、以下同様である。
【００７４】
[0080]  より一般的には、境界８６へのピクセル値ｐ（ｉ）をもつピクセルの間の距離は、境界８６へのピクセル値ｑ（ｉ）をもつピクセルの間の距離に等しい。言い換えれば、ｐ（ｉ）およびｑ（ｉ）が、ブロック境界８６に対する各側において位置ｉにおけるピクセル値を示すとし、ここで、ｉは、境界８６から最も近いピクセルの場合に０であり、その位置が境界８６から遠ざかるにつれて増加する。
【００７５】
[0081]  図４に示されるように、それぞれ、ブロック８４Ａおよびブロック８４Ｂ中の最も近いピクセルのためのピクセル値である、ピクセル値ｐ（０）とピクセル値ｑ（０）との間の急激な変化がある。ピクセル値ｐ（０）とピクセル値ｑ（０）との間の急激な変化により、ブロック８４Ａとブロック８４Ｂとの間にブロックアーティファクトが生じ得る。そのようなブロックアーティファクトは、ビデオコンテンツの視覚的品質の低減を引き起こす。本開示で説明されるデブロックフィルタ処理技法は、視覚的品質を劣化させる過剰平滑化を行うことなく、計算効率のよい方式でそのようなブロックアーティファクトを低減し得る。
【００７６】
[0082]  一般に、ビデオコーダは、少なくとも２つのピクセル間のピクセル値差分と、幾何学的距離とに基づいて、ピクセルのピクセル値をデブロックフィルタ処理すべき量を決定する。本開示では、「ピクセル距離」という用語が、ピクセルのピクセル値をデブロックフィルタ処理すべき量として定義され、ピクセル値差分と幾何学的距離との関数である。
【００７７】
[0083]  例えば、ピクセル距離ｌ（例えば、デブロックフィルタ処理すべき量を決定するために使用される値）はｌ（ｉ）＝ｆ（ｎ（ｉ），ｄ（ｉ））として定義され、ここで、ｎは、変更される（例えば、デブロックフィルタ処理される）べきピクセルとブロック境界（例えば、境界８６）のロケーションとの間の幾何学的距離を示し、ｄは、ブロック境界８６に対するピクセル値間のピクセル値距離（例えば、差分）を示す。いくつかの例では、ｌ（ｉ）の値が、ピクセルのピクセル値をデブロックフィルタ処理すべき量に等しい。いくつかの例では、ｌ（ｉ）の値が、さらに、ピクセルのピクセル値をデブロックフィルタ処理すべき量を決定するために変更され得る。
【００７８】
[0084]  いくつかの例では、ビデオコーダが、ピクセルと境界８６との間のピクセルの数に基づいてピクセルの幾何学的距離を決定し得る。一例として、幾何学的距離ｎは、変更される（例えば、デブロックフィルタ処理される）べきピクセルとブロック境界８６との間のピクセルの数に従って設定され得る。例えば、ｎは、ｐ（０）およびｑ（０）の場合に０であり、ｎは、ｐ（１）およびｑ（１）の場合に１であり、以下同様である。これは、式ｎ（ｉ）＝ｉ、ｉ＝０．．．Ｎ−１を暗示し、ここで、ｉはピクセルインデックスである。
【００７９】
[0085]  上の例では、ｐ（０）とｑ（０）との間の距離が無視される（すなわち、０に設定される）。幾何学的距離ｎは、ｐ（０）とｑ（０）との間の距離を考慮して（すなわち、ピクセル値ｐ（０）をもつピクセルおよびピクセル値ｑ（０）をもつピクセルと境界８６とからの距離が０でない例では）設定され得る。例えば、ｎは、ｐ（０）およびｑ（０）の場合に０．５に設定される。次いで、ｎは、ｐ（１）およびｑ（１）の場合に１．５であり、ｐ（２）およびｑ（２）の場合に２．５であり、以下同様である。従って、この例でも、ピクセルの幾何学的距離は、ピクセルと境界８６との間のピクセルの数に基づき得る。これは、式ｎ（ｉ）＝（２×ｉ＋１）／２を暗示する。
【００８０】
[0086]  上記は、境界８６までのデブロックフィルタ処理されるべきであるピクセルの幾何学的距離を決定するための例示的な方式を説明している。境界８６までのピクセルの幾何学的距離を決定するための他の方式があり得る。例えば、境界８６から０単位または０．５単位離れているピクセル値ｐ（０）およびｑ（０）をもつピクセルが、例示のために与えられる。ピクセル値ｐ（０）およびｑ（０）をもつピクセルと境界８６との間の距離は０または０．５とは異なり得る。
【００８１】
[0087]  以下は、ピクセル値差分を決定するための例示的な方式を説明している。いくつかの例では、ピクセル値差分が、デブロックフィルタ処理されるべきピクセルと別のピクセルとの間のものであり得る。しかしながら、本技法は、そのように限定されない。いくつかの例では、ピクセル値差分が２つのピクセル間のものであり得、それらのいずれも、デブロックフィルタ処理されるべきピクセルではない。
【００８２】
[0088]  ビデオコーダは、ｑ（ｊ）−ｐ（ｉ）のように、一方を他方から減算することによって、２つのピクセル値ｐ（ｉ）とｑ（ｊ）との間のピクセル値差分を計算する。ピクセル値距離ｄは、ピクセルｐ（Ｎ−１）ｐ（Ｎ−２）．．．ｐ（１）ｐ（０）およびｑ（０）ｑ（１）．．．ｑ（Ｎ−２）ｑ（Ｎ−１）の全部または一部間のピクセル値差分を考慮することによって計算され得る。
【００８３】
[0089]  一例として、位置ｉにおけるｄ、すなわちｄ（ｉ）が、ｄ（ｉ）＝ｑ（０）−ｐ（０）、またはｄ（ｉ）＝（ｑ（０）−ｐ（０））／２として設定され得る。この場合、ｄ（ｉ）は、全てのピクセル位置に対して同じである。例えば、ビデオコーダは、境界８６に最も近いブロック８４Ａのピクセルのピクセル値（例えば、ｐ（０））と、境界８６に最も近いブロック８４Ｂのピクセルのピクセル値（例えば、ｑ（０））とに基づいて、ピクセル値差分を決定し得る。
【００８４】
[0090]  この例では、ビデオコーダがピクセル値差分を決定するが、ピクセル値差分は、デブロックフィルタ処理されるべきピクセルに基づかないことがある。例えば、ピクセル値ｐ（１）をもつピクセル（すなわち、境界８６に最も近いピクセルの後のピクセル）がデブロックフィルタ処理されるべきであると仮定する。この例では、ピクセル値ｐ（１）をもつピクセルのためのピクセル値差分が、ｑ（０）およびｐ（０）のピクセル値差分に基づく。この例では、ビデオコーダが、ピクセル値のいずれも、必ずしもフィルタ処理されているピクセルのためのものであるとは限らない、２つのピクセル間のピクセル値差分を決定し、ピクセル値をデブロックフィルタ処理すべき量を決定するために使用されるピクセル値差分を決定するために、その結果を２で除算する。
【００８５】
[0091]  また、この例では、ピクセル値差分について、ピクセルのうちの一方がブロック８４Ａからであり（ピクセル値ｐ（０）をもつピクセル）、他方のピクセルがブロック８４Ｂからである（ｑ（０）ピクセル値をもつピクセル）。その上、この例では、ビデオコーダが、ピクセル値差分を決定するためにフィルタ処理されるべきピクセルを使用しないことがあるが、ビデオコーダが、（例えば、上で説明されたｎ（ｉ）のための式のうちの１つを使用して）幾何学的距離を決定するためにフィルタ処理されるべきピクセルを使用し得る。
【００８６】
[0092]  別の例として、ｄは、ピクセルロケーションに従って変更され得る。例えば、ｄ（ｉ）は、ｄ（ｉ）＝ｑ（ｉ）−ｐ（ｉ）またはｄ（ｉ）＝（（ｑ（ｉ）−ｐ（ｉ））／２として位置ｉにおける各ピクセルについて設定され得る。例えば、ビデオコーダは、ブロック８４Ａ中のピクセルのピクセル値と、ブロック８４Ｂ中のピクセルのピクセル値とに基づいて、ピクセル値差分を決定し得、ここで、それぞれのブロック８４Ａおよび８４Ｂ中のピクセルは、境界８６に対して同じ距離である。言い換えれば、ブロック８４Ａ中のピクセル値ｐ（ｉ）をもつピクセルは、ブロック８４Ｂ中のピクセル値ｑ（ｉ）をもつピクセルと境界８６までの距離が等距離である。
【００８７】
[0093]  この例では、ビデオコーダがピクセル値差分を決定し、ピクセル値差分は、デブロックフィルタ処理されるべきピクセルに基づく。例えば、ピクセル値ｐ（１）をもつピクセル（すなわち、境界８６に最も近いピクセルの後のピクセル）がデブロックフィルタ処理されるべきであると仮定する。この例では、ピクセル値ｐ（１）をもつピクセルのためのピクセル値差分が、ｑ（１）およびｐ（１）のピクセル値差分に基づく。この例では、ビデオコーダが、ピクセル値のうちの一方が、フィルタ処理されているピクセルのためのものである、２つのピクセル間のピクセル値差分を決定し、ピクセル値をデブロックフィルタ処理すべき量を決定するために使用されるピクセル値差分を決定するために、その結果を２で除算する。
【００８８】
[0094]  上記のように、この例では、ピクセル値差分について、ピクセルのうちの一方がブロック８４Ａからであり（ピクセル値ｐ（ｉ）をもつピクセル）、他方のピクセルがブロック８４Ｂからである（ピクセル値ｑ（ｉ）をもつピクセル）が、ピクセル値差分を決定するために使用されるピクセルのうちの少なくとも１つは、デブロックフィルタ処理されるべきであるピクセルである（例えば、ピクセル値ｐ（ｉ）をもつピクセルおよびピクセル値ｑ（ｉ）をもつピクセルは、デブロックフィルタ処理されるべきである）。また、幾何学的距離は、境界８６までのフィルタ処理されるべきピクセルの距離に基づいて決定される。
【００８９】
[0095]  別の例では、ｄ（ｉ）が、ｄ（ｉ）＝ｑ（０）−ｐ（ｉ）、ｄ（ｉ）＝ｑ（ｉ）−ｐ（０）、（ｑ（０）−ｐ（ｉ））／２、またはｄ（ｉ）＝（ｑ（ｉ）−ｐ（０））／２として設定され得る。この例では、ビデオコーダが、フィルタ処理されるべきであるピクセルのピクセル値（例えば、ｐ（ｉ）またはｑ（ｉ））と、境界８６に最も近い他のブロック中のピクセルのピクセル値とに基づいて、ピクセル値差分を決定する。例えば、ブロック８４Ａ中のｉ番目のピクセルのためのピクセル値差分はｐ（ｉ）およびｑ（０）に基づき、ここで、ｑ（０）は、境界８６に最も近い、およびブロック８４Ｂ中にあるピクセルのためのピクセル値である。
【００９０】
[0096]  別の例として、位置ｉにおけるｄ、すなわちｄ（ｉ）は、ｄ＿ｐ（ｉ）＝ｐ（ｉ＋１）−ｐ（ｉ−１）、または（ｐ（ｉ＋１）−ｐ（ｉ−１））／２、およびｄ＿ｑ（ｉ）＝ｑ（ｉ＋１）−ｑ（ｉ−１）、または（ｑ（ｉ＋１）−ｑ（ｉ−１））／２として、隣接ピクセルを使用して計算され得る。この場合、それぞれ、ｐ（−１）はｑ（０）として設定され得、ｑ（−１）はｐ（０）として設定され得る。この例では、ビデオコーダが、デブロックフィルタ処理されるべきピクセルに隣接するピクセルのピクセル値に基づいて、ピクセル値差分を決定する。言い換えれば、ビデオコーダは、デブロックフィルタ処理されるべきピクセルの第１の隣接ピクセルと、デブロックフィルタ処理されるべきピクセルの第２の隣接ピクセルとに基づいて、ピクセル値差分を決定する。２つの隣接ピクセルは同じ行または列中にあり得る。ビデオコーダは、デブロックフィルタ処理されるべき実際のピクセルのピクセル値を使用しないことがあるが、デブロックフィルタ処理されるべき実際のピクセルのピクセル値を利用することが可能であり得る。
【００９１】
[0097]  また、隣接ピクセルは、境界８６の最も近くに配置されたピクセルを除いて、デブロックフィルタ処理されるべきピクセルと同じブロック中にあり得る。例えば、ピクセル値ｐ（０）をもつピクセルがデブロックフィルタ処理されるべきであると仮定する。ピクセル値ｐ（０）をもつピクセルに対する隣接ピクセルはｐ（１）およびｑ（０）である。ピクセル値ｐ（１）をもつピクセルは、ピクセル値ｐ（０）をもつピクセルと同じブロック（例えば、ブロック８４Ａ）中にあるが、ピクセル値ｑ（０）をもつピクセルは異なるブロック（例えば、ブロック８４Ｂ）中にある。
【００９２】
[0098]  いくつかの例で、ｄは、重み付き和としてピクセル値差分のうちの複数を組み合わせることによって計算され得る。例えば、ｄ（ｉ）＝Σjｗ（ｊ）×ｄ（ｊ）であり、ここで、Σjｗ（ｊ）＝１、ｊ＝０．．．Ｎ−１である。この例で、ピクセル値差分は、複数のピクセルのピクセル値のピクセル値差分の重み付けに基づく。いくつかの例で、ピクセル値差分は、ｑ（ｊ）−ｐ（ｊ）がｄ（ｊ）に等しい場合など、デブロックフィルタ処理されるべきピクセルの全てのためのピクセル値のピクセル値差分の重み付けに基づく。一般に、ｄ（ｊ）の式は、ｄ（ｉ）の上記の例示的な式のいずれかの式であり得る。
【００９３】
[0099]  この例で、ビデオコーダは、少なくともピクセル値差分のための重み付け（例えば、ｄ（ｊ）の少なくとも１つのインスタンスのための重み付け、ここで、ｄ（ｊ）の式は、ｄ（ｉ）のための上記の式のいずれかに等しい）を決定し得る。いくつかの例で、ビデオコーダは、ピクセル値差分の各々のための重み付け（例えば、ｄ（ｊ）のあらゆるインスタンスのための重み付け）を決定し得る。Σjｗ（ｊ）＝１、ｊ＝０．．．Ｎ−１の重み付け式は重み付け式の一例であり、ビデオコーダは、ピクセル値差分のための重み付け（すなわち、ｄ（ｊ））を決定するために他の技法を利用し得る。
【００９４】
[0100]  ピクセル値差分（例えば、ｄ（ｉ））と境界８６までのフィルタ処理されるべきピクセルの幾何学的距離（例えば、ｎ（ｉ））とを用いて、ビデオコーダは、ピクセルをデブロックフィルタ処理すべき量を決定し得る（すなわち、ピクセル距離は、ｄ（ｉ）とｎ（ｉ）とを組み合わせることによって形成され得る）。例えば、ｌ（ｉ）は、両方の項を乗算することによって計算され得る。ビデオコーダがデブロックフィルタ処理すべき量を決定し得る１つの例示的な方式は、ｌ（ｉ）＝ｄ（ｉ）×（Ｎ−ｎ（ｉ））／Ｎである。言い換えれば、ビデオコーダは、ピクセル値差分、境界からのピクセルの幾何学的距離、およびいくつかの例で、デブロックフィルタ処理されるべきピクセルの数（例えば、Ｎ）に基づいて、ピクセルのピクセル値をデブロックフィルタ処理すべき量を決定し得る。
【００９５】
[0101]  ビデオコーダは、以下の式、ｐ’（ｉ）＝ｇ１（ｌ，ｐ（ｉ））、およびｑ’（ｉ）＝ｇ２（ｌ，ｑ（ｉ））に基づいて、ピクセル値をフィルタ処理し得る（すなわち、その場合、各ピクセル値は変更される）。関数ｇ１およびｇ２の例として、ビデオコーダは、以下の式、ｐ’（ｉ）＝ｐ（ｉ）＋ｌ（ｉ）、およびｑ’（ｉ）＝ｑ（ｉ）−ｌ（ｉ）を行い得る。これらの式において、ｐ’（ｉ）は、ブロック８４Ａ中のｉ番目のピクセルのためのデブロックフィルタ処理されたピクセル値を表し、ｑ’（ｉ）は、ブロック８４Ｂ中のｉ番目のピクセルのためのデブロックフィルタ処理された値を表す。
【００９６】
[0102]  しかしながら、場合によっては、ｌ（ｉ）が正値である場合、ｐ’（ｉ）が最大許容ピクセル値よりも大きいか、またはｑ’（ｉ）が最小許容ピクセル値よりも小さいことが可能であり得る。ｌ（ｉ）が負値である場合、ｐ’（ｉ）が最小許容ピクセル値よりも小さく、ｑ’（ｉ）が最大許容ピクセル値よりも大きいことが可能であり得る。例えば、最小ピクセル値は０であり得、最大ピクセル値は２５５であり得る。
【００９７】
[0103]  いくつかの例では、デブロックフィルタ処理されたピクセルのピクセル値が最大許容ピクセル値よりも小さいかまたはそれに等しく、最小許容ピクセル値よりも大きいかまたはそれに等しいことを保証するために、ビデオコーダは、ｇ１およびｇ２関数の追加の例である、以下の式、ｐ’（ｉ）＝ｃｌｉｐ（Ｍｉｎ，Ｍａｘ，ｐ（ｉ）＋ｌ（ｉ））、およびｑ’（ｉ）＝ｃｌｉｐ（Ｍｉｎ，Ｍａｘ，ｑ（ｉ）−ｌ（ｉ））を行い得、ここで、ＭｉｎおよびＭａｘは、最小ピクセルサンプル値および最大ピクセルサンプル値を表す。このようにして、ｐ（ｉ）＋ｌ（ｉ）が最大値よりも大きいかまたは最小値よりも小さい場合、ビデオコーダは、デブロックフィルタ処理されたピクセルのピクセル値をクリッピングして、それぞれ、ＭａｘまたはＭｉｎにする。同様に、ｑ（ｉ）−ｌ（ｉ）が最大値よりも大きいかまたは最小値よりも小さい場合、ビデオコーダは、デブロックフィルタ処理されたピクセルのピクセル値をクリッピングして、それぞれ、ＭａｘまたはＭｉｎにする。
【００９８】
[0104]  さらに、いくつかの例では、ピクセルのピクセル値がデブロックフィルタ処理される量を制限することが可能であり得る。例えば、ＨＥＶＣにおけるデブロックフィルタ処理プロセスでは、変更可能なピクセル値（例えば、ピクセルのピクセル値がフィルタ処理される量）が制限され、制限を設定するためのしきい値がシグナリングされ得る。同様にして、ｌ（ｉ）は、しきい値を使用してクリッピングされ得る。例えば、ビデオエンコーダ２０は最大許容調整しきい値（すなわち、ｌ（ｉ）の絶対値が、最大許容調整しきい値よりも小さいかまたはそれに等しい）をシグナリングし得、ビデオデコーダ３０はそのようなしきい値を受信し得る。いくつかの例では、ＨＥＶＣデブロックフィルタのためのしきい値が、一定値を使用してそれをスケーリングすることによって使用され得るか、または、最大許容調整しきい値を決定するために、別個の値がビットストリーム中でシグナリングされ得る。ピクセル値が変更され（例えば、フィルタ処理され）得る量を制限することは、あらゆる例において必要であるとは限らないことを理解されたい。
【００９９】
[0105]  このようにして、ビデオコーダは、境界までのピクセルのピクセル距離（すなわち、ここで、ピクセル距離は、ピクセル値差分とブロックの境界までの幾何学的距離とに基づく）基づいて、ピクセルのピクセル値をデブロックフィルタ処理すべき量を決定し得る。例えば、ｌ（ｉ）は、境界までのピクセルの距離の関数である値である。いくつかの例では、ｌ（ｉ）がオフセット値と見なされ得る。いくつかの例では、ピクセルの数（ｎ）が少なくとも８に等しい。
【０１００】
[0106]  いくつかの例では、ｌ（ｉ）が、境界により近いピクセルの場合により大きく、境界からより遠いピクセルの場合により小さくなり得る。例えば、ｌ（ｉ）のための式の一例はｄ（ｉ）×（Ｎ−ｎ（ｉ））／Ｎである。ｎ（ｉ）の値は、境界８６からより遠く離れたピクセルの場合により大きく、境界８６により近いピクセルの場合により低くなり得る。従って、Ｎ−ｎ（ｉ）の値は、境界８６からより遠く離れたピクセルの場合により小さく、境界８６により近いピクセルの場合により大きい。従って、ｌ（ｉ）は、境界８６により近いピクセルの場合により大きく、境界８６からより遠く離れたピクセルの場合により小さい。
【０１０１】
[0107]  上記の説明は、ビデオコーダ（例えば、ビデオエンコーダ２０またはビデオデコーダ３０）が、長いフィルタ処理プロセスと呼ばれることもある、デブロックフィルタ処理を行う方式のための例を与えるものである。しかしながら、ビデオコーダは、全ての事例においてデブロックフィルタ処理を行うとは限らない。以下は、長いフィルタ処理プロセスが呼び出されるときの条件（例えば、ビデオコーダが、本開示で説明されるデブロックフィルタ処理技法を行うときの例）を説明している。
【０１０２】
[0108]  例えば、ビデオコーダは、シャープエッジまたはテクスチャをもつエリアがデブロッキングフィルタによって過剰平滑化されないように、平滑なエリアのみに長いフィルタを適用し得る。上で説明されたように、デブロッキングフィルタ処理技法によって行われる平滑化により、ピクセル値が境界の両側で変化する量が低減する。しかしながら、ビデオコンテンツは、ビデオコンテンツ中にエッジがあるようなものであり得る。これらのエッジを平滑化すること（例えば、過剰平滑化）は視覚的品質に悪影響を及ぼし得る。
【０１０３】
[0109]  例えば、ビデオブロック中で、２つの隣接ピクセル間のピクセル値の急激な変化があるときにエッジが発生し得（一例として、ブロック内の白い部分に隣接する黒い部分など、但し、エッジのそれほどひどくない例もある）、そのような部分を平滑化することが視覚的品質を劣化させ得る。この例では、デブロックフィルタ処理が、白い部分へのブロック部分遷移であった部分に適用された場合に、結果が、エッジにおいて灰色になること（例えば、過剰平滑化）であり、ビデオ品質の劣化を引き起こすことになる。従って、極端な自然エッジがある部分（例えば、ビデオコンテンツ自体がピクセル値の急激な変化を含む部分）においてデブロックフィルタ処理技法を適用せず、極端な自然エッジがない部分（例えば、ビデオコンテンツ自体でなく、ビデオコーディングの一部として追加されたブロッキングアーティファクトが除去されたような、比較的平滑であるビデオコンテンツ）においてデブロックフィルタ処理技法を適用することは有益であり得る。
【０１０４】
[0110]  いくつかの例では、ビデオコーダが、勾配によってローカルエリアの平滑度を決定し得る。勾配からの決定された平滑度の結果に基づいて、ビデオコーダはデブロッキングフィルタを行い得る。
【０１０５】
[0111]  例えば、Ｘ個のピクセルをもつデブロッキング境界では、長いフィルタが適用されるとき、境界の各側におけるＸ×Ｍ個のピクセルが処理されると仮定する。例えば、図４に示されるように、境界８６では、Ｘが境界８６に沿った垂直方向ピクセルの数を指し、Ｍがデブロックフィルタ処理されるべき水平方向ピクセルの数を指す。水平境界では、Ｘが水平境界に沿った水平方向ピクセルの数を指すことになり、Ｍがデブロックフィルタ処理されるべき垂直方向ピクセルの数を指す。勾配計算についての以下の説明では、変数「Ｍ」が上記の変数「Ｎ」と同じであると見なされ得、ここで、Ｎは、ブロック中のデブロックフィルタ処理されるべきであるピクセルの数を示した。
【０１０６】
[0112]  いくつかの例では、ビデオコーダが、長いフィルタを適用すべきか否かを決定するために、デブロッキング境界の各側（例えば、境界８６の各側）におけるＸ×Ｍ’（Ｍ’は、より大きいかまたはＭに等しい）ピクセルエリアの勾配を決定し得る。デブロッキング境界の両側の勾配がしきい値勾配値よりも小さいという決定に基づいて、ビデオコーダは長いフィルタ（すなわち、本開示で説明されるデブロックフィルタ処理技法の１つまたは複数の例）を適用し得る。場合によっては、ビデオコーダは長いフィルタを適用しないことがある。このようにして、長いフィルタ処理プロセス（例えば、本開示で説明されるデブロックフィルタ処理プロセス）は第１のタイプのフィルタ処理と見なされ得、上記の文書またはＨＥＶＣ規格に記載されている技法などの他のデブロックフィルタ処理技法のうちのいずれか１つは第２のタイプのフィルタ処理と見なされ得る。いくつかの例では、ビデオコーダが、隣接ピクセルに基づいて勾配を決定し、勾配をしきい値勾配値と比較し得る。これらの例では、ビデオコーダが、比較に基づいて、第１のタイプのフィルタ処理または第２のタイプのフィルタ処理を行い得る。
【０１０７】
[0113]  計算複雑さを低減するために、ビデオコーダは、Ｘ×Ｍ’個のピクセルの勾配を計算するために部分ピクセルのみを選択し得る。例えば、勾配は、２つの連続するピクセル間の差分に基づいて計算され得る。但し、ビデオコーダは、複数のピクセル（例えば、またはブロック中のそれらの全て）を使用して勾配を決定し得る。例えば、平面がモデル化され得、それの傾きが、ブロック中のピクセルを使用して推定され得る。
【０１０８】
[0114]  一例として、インターリーブされたピクセルは、以下のように勾配を計算するために使用され、すなわち、Ｐ（ｉ，ｊ）、ｉ＝０、１、２．．．Ｘ−１、ｊ＝０、１、２．．．Ｍ’−１が、１つのＸ×Ｍ’ブロック中のピクセルを示すとし、ブロックの勾配は、勾配Ｈ＝Σi,jａｂｓ（Ｐ（ｉ，ｊ）−Ｐ（ｉ，ｍｉｎ（Ｍ’−１，ｊ＋１）））、ｉ＝０．．．Ｘ−１、ｊ＝０．．．Ｍ’−１、勾配Ｖ＝Σi,jａｂｓ（Ｐ（ｉ，ｊ）−Ｐ（ｍｉｎ（ｉ＋１，Ｘ−１），ｊ）））、ｉ＝０．．．Ｘ−１、ｊ＝０．．．Ｍ’−１、および勾配＝勾配Ｈ＋勾配Ｖとして計算される。この例では、勾配がしきい値よりも小さいとビデオコーダが決定することに基づいて、ビデオコーダは、本開示で説明されるデブロックフィルタ処理技法を行い得る。また、勾配がしきい値よりも大きいとビデオコーダが決定することに基づいて、ビデオコーダは、ＨＥＶＣ規格における技法などのフィルタ処理技法を行い得る。
【０１０９】
[0115]  上記の例において、ビデオコーダは、水平勾配と垂直勾配の両方（例えば、水平勾配と垂直勾配の両方）が、水平または垂直デブロッキング境界のいずれかについて考慮に入れられることを利用した。いくつかの例では、ビデオコーダが、ある境界について、他の方向ではなく、ある方向の勾配を決定し、その勾配を考慮に入れ得る（例えば、水平境界がフィルタ処理されるとき、垂直勾配が使用され、垂直境界がフィルタ処理されるとき、水平勾配が使用される）。
【０１１０】
[0116]  勾配を計算するための計算の数を低減するために、ビデオコーダは、勾配を計算するためにＸ×Ｍ’エリアをサブサンプリングし得る。例えば、水平および垂直勾配は、勾配Ｈ＝Σi,jａｂｓ（Ｐ（ｉ，ｊ）−Ｐ（ｉ，ｍｉｎ（Ｍ’−１，ｊ＋１）））、（ｉ＝０、２、４．．．Ｘ−２、ｊ＝０、２、４．．．Ｍ’−２）および（ｉ＝１、３、５．．．Ｘ−１、ｊ＝１、３、５．．．Ｍ’−１）、並びに勾配Ｖ＝Σi,jａｂｓ（Ｐ（ｉ，ｊ）−Ｐ（ｍｉｎ（ｉ＋１，Ｘ−１），ｊ）））、（ｉ＝０、２、４．．．Ｎ−２、ｊ＝０、２、４．．．Ｍ’−２）および（ｉ＝１、３、５．．．Ｘ−１、ｊ＝１、３、５．．．Ｍ’−１）として計算され得る。
【０１１１】
[0117]  上記の例において、ビデオコーダは、フィルタ処理されるべきであるブロックのピクセルの全てを含むＸ×Ｍ’領域のための勾配値を決定する（すなわち、上記の例において、各Ｘ×Ｍ’領域のための１つの勾配値が計算されることに留意されたい）。いくつかの例では、各領域が区分され得、ビデオコーダが、各区分のフィルタ処理を制御するために、各領域における複数の勾配を決定（例えば、計算）し得る。一例として、区分はＸ×Ｍ’の領域中のラインであり得る。以下の例では、エリアが各ラインにセグメント化され、ここで、ビデオコーダは、境界が垂直である場合、勾配Ｈ（ｉ）＝Σjａｂｓ（Ｐ（ｉ，ｊ）−Ｐ（ｉ，ｍｉｎ（Ｍ’−１，ｊ＋１）））として、位置ｉにおける水平勾配を決定し、境界が水平である場合、勾配Ｖ（ｊ）＝Σiａｂｓ（Ｐ（ｉ，ｊ）−Ｐ（ｍｉｎ（ｉ＋１，Ｘ−１），ｊ）））として、位置ｊにおける垂直勾配を決定する。次いで、ビデオコーダは、勾配Ｈ（ｉ）によって垂直位置ｉにおけるピクセルのフィルタ処理を制御し得、水平位置ｊにおけるピクセルのフィルタ処理は勾配Ｖ（ｊ）によって制御され得る。
【０１１２】
[0118]  いくつかの例では、ビデオコーダが各ピクセル位置における勾配の使用によって各ピクセルのフィルタ処理を制御することも可能である。例えば、あるピクセル位置における勾配がしきい値よりも高いとビデオコーダが決定した場合、この位置は真の画像エッジと見なされ得、ビデオコーダはそのようなピクセルのフィルタ処理を回避する（または、少なくとも、本開示で説明される技法を使用してピクセルをフィルタ処理しない）であろう。
【０１１３】
[0119]  さらに、いくつかの例では、ビデオコーダが、１つまたは複数のピクセルをデブロックフィルタ処理すべきかどうかを決定するために、ブロック（例えば、Ｘ×Ｍ’）、セグメントまたはライン区分、あるいはピクセルにおける勾配決定を組み合わせ得る。言い換えれば、上記の例では、ブロックレベル、セグメントまたはラインレベル、およびピクセルレベル制御が、フィルタ処理の決定を行うために、互いに組み合わせられ得る。
【０１１４】
[0120]  いくつかの例では、ビデオコーダが、勾配を決定し、勾配をしきい値勾配と比較する。比較に基づいて、ビデオコーダは、本開示で説明される技法を使用してピクセルのピクセル値をデブロックフィルタ処理するか、他の技法を使用してピクセルのピクセル値をデブロックフィルタ処理するか、またはピクセル値をデブロックファイラーしない。例えば、勾配がしきい値勾配よりも小さい場合、ビデオコーダは、本開示で説明される技法を使用してピクセルのピクセル値をデブロックファイラーし得、他の場合、ビデオコーダは、他の技法を使用してデブロックファイラーするか、またはデブロックフィルタ処理しないことがある。
【０１１５】
[0121]  ビデオエンコーダ２０は、ＳＰＳ、ＰＰＳまたはスライスヘッダ中で勾配値のためのしきい値（例えば、しきい値勾配）をシグナリングし得、ビデオデコーダ３０は、ＳＰＳ、ＰＰＳ、またはスライスヘッダ中でしきい値勾配を受信し得る。いくつかの例で、しきい値は、イントラスライスと非イントラスライスとについて別個にシグナリングされ得る。シグナリングされたしきい値は、「CE12, Subset 1: Report of deblocking for large size blocks」においてなど、既存の方法において言及した差異を含む、他の平滑度メトリックのために適用され得る。いくつかの例で、しきい値は、シグナリングが回避され得るように、エンコーダ側（ビデオエンコーダ２０）とデコーダ側（ビデオデコーダ３０）とにおいて同じである一定値であり得る。
【０１１６】
[0122]  ビデオコーダは、各水平および垂直フィルタ処理方向について同じしきい値勾配値を適用し得るか、または各フィルタ処理方向について異なるしきい値が使用され得る。しきい値勾配値が方向ごとに異なる場合、各方向について、ビデオエンコーダ２０は、ビデオデコーダ３０が受信する別個の値をシグナリングし得る。別の例として、ビデオエンコーダ２０は、各方向について勾配しきい値を生成するために、ある値をシグナリングし、別様に値をスケーリングし得る。
【０１１７】
[0123]  いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０が、変換ブロックサイズ（例えば、ブロックの符号化または復号のために使用される変換ブロックのサイズ）、コーディングモード（例えば、イントラ予測またはインター予測コーディング）、動きベクトル、再構成されたピクセル値など、ビデオエンコーダ２０とビデオデコーダ３０の両方とともに利用可能な情報に応じて勾配しきい値を調整し得る。いくつかの例では、ビデオエンコーダ２０が、ビデオエンコーダ２０とビデオデコーダ３０の両方によって利用可能な情報によって選択され得る場合のセットについての異なるしきい値勾配値をシグナリングし得る。
【０１１８】
[0124]  上述のメトリックに基づいて、ビデオコーダはデブロックフィルタ処理を制御し得る。一例として、ビデオコーダは、勾配がしきい値勾配よりも大きいとき、デブロックフィルタ処理をオフにし得る。いくつかの例では、勾配値の範囲に応じて、異なる強度をもつフィルタ処理が適用され得る。例えば、ビデオコーダは、ｌ（ｉ）の値を調整する（例えば、決定された勾配によってｌ（ｉ）の値をスケーリングする）ために勾配を利用し得る。言い換えれば、大きい勾配をもつエリアのための小さいｌ（ｉ）の場合変更の量が低減されるように、勾配に従ってピクセル距離ｌ（ｉ）を減少させることが可能であるか、または、ビデオコーダは、勾配が十分に小さくないとき、より弱いフィルタ（例えば、ＨＥＶＣにおいて定義されているフィルタ）を適用し得る。
【０１１９】
[0125]  概ね、いくつかの例で、ビデオコーダは、ピクセル値がデブロックフィルタ処理されるべきである１つまたは複数のピクセルを含むブロックの一部分の勾配値を決定し得、ここで、勾配値は、ブロックの一部分の平滑度を示す（すなわち、ブロックの一部分中に画像エッジがあるかどうかを示す）。ブロックの一部分は、デブロックフィルタ処理されるべきであるブロックのピクセルの全てを含む領域（例えば、Ｘ×Ｍ’領域）であり得る。勾配値を決定する際に、ビデオコーダは、勾配値を決定するために領域中のピクセルのサブサンプルを利用し得る（すなわち、勾配値決定のために、必ずしも領域中のピクセルの全てを使用する必要があるとは限らない）。
【０１２０】
[0126]  ブロックの一部分は、デブロックフィルタ処理されるべきピクセルを含むブロックの１次元ラインであり得る。この例において、ビデオコーダは、ラインごとに勾配値（例えば、各ラインのための勾配値）を決定し得、勾配値決定のために、必ずしもライン中のピクセルの全てを使用する必要があるとは限らない。ブロックの一部分は、潜在的に、フィルタ処理されるべき各ピクセル（例えば、ピクセルごとの各ピクセルのための勾配値）であり得る。
【０１２１】
[0127]  ビデオコーダは、勾配値をしきい値勾配値と比較し、比較に基づいて、本開示で説明されるデブロックフィルタ処理技法を行い得る。例えば、勾配値がしきい値勾配値よりも小さい場合、ビデオコーダは、本開示で説明されるデブロックフィルタ処理技法を行い得、しきい値勾配値よりも大きい場合、ビデオコーダは、何らかの他のタイプのデブロックフィルタ処理を行い得るか、またはデブロックフィルタ処理を行わないことがある。
【０１２２】
[0128]  さらに、いくつかの例では、ビデオエンコーダ２０とビデオデコーダ３０の両方が、勾配値を決定する必要がないことがある。例えば、ビデオエンコーダ２０は、勾配値を決定し、本開示で説明されるデブロックフィルタ処理を行うべきかどうかを決定し得る。ビデオエンコーダ２０は、ブロックが、本開示で説明される技法を使用してデブロックフィルタ処理されるべきであるかどうかを示す、シンタックス要素（例えば、フラグ）をシグナリングし得る。そのような場合、ビデオデコーダ３０は、勾配値を決定する必要がないか、または、勾配値に基づいて、本開示で説明されるデブロックフィルタ処理を行うべきかどうかを決定する必要がないことがある。このようにして、ビデオデコーダ３０は、勾配値を決定する必要がないことがあり、これは、潜在的に、計算量的に複雑なプロセスであり得る。
【０１２３】
[0129]  しかしながら、帯域幅効率のために、いくつかの例では、ビデオデコーダ３０が、勾配値計算を行い、決定された勾配値に基づいて、本開示で説明されるデブロックフィルタ処理技法を行うべきかどうかを決定し得る。このようにして、ビデオデコーダ３０はそのような決定を行うことになるので、本開示で説明されるデブロックフィルタ処理技法を行うべきかどうかを示す追加のシンタックス要素は必要とされないであろう。
【０１２４】
[0130]  上記は、本開示で説明されるデブロックフィルタ処理技法を行うべきかどうかを決定するためにビデオコーダが利用し得る一例について説明している。但し、勾配値に基づいて、本開示で説明されるデブロックフィルタ処理を行うべきかどうかを決定することは一例である。以下は、既存のＨＥＶＣデブロッキングフィルタと組み合わせてフィルタがどのように適用されるか追加の例について説明している。
【０１２５】
[0131]  いくつかの例では、ビデオコーダが、以下で説明される例示的な条件のうちの１つまたは複数が満たされたとき、本開示で説明されるデブロックフィルタ処理技法を適用し得る。他の場合、他の提案（例えば、ＨＥＶＣ仕様）において定義されているデブロックフィルタ処理プロセスが適用され得る。
【０１２６】
[0132]  また、以下の例において、ビデオコーダはまた、本開示で説明されるデブロックフィルタ処理技法を行うべきかどうかを決定するために、以下の条件に加えて、勾配値決定を使用し得る。例えば、以下の条件のいずれも真でないが、ＴＵ境界の２つの８×８ブロックからの勾配があるしきい値よりも小さい場合でも、ビデオコーダは、本開示で説明されるデブロックフィルタ処理技法を行い得る。
【０１２７】
[0133]  いくつかの例では、ビデオコーダが、２つの隣接する（例えば、隣接）ＴＵに対するサイズを決定し得る。この場合も、ＴＵは、ビデオエンコーダ２０によって変換され、量子化され、ビデオデコーダ３０によって逆量子化され、逆変換されるブロックである。場合によっては、ブロックの変換および／または量子化がスキップされ得ることに留意されたい。ＴＵの場合、ルーマ成分のための変換ブロックと、第１のクロマ成分のための変換ブロックと、第２のクロマ成分のための変換ブロックとがある。本開示において、ＴＵのサイズは、ルーマ成分、またはクロマ成分のいずれかのための変換ブロックであり得る、変換ブロックのサイズを指す。例えば、ビデオコーダは、ルーマ成分と２つのクロマ成分とのブロックのためにデブロックフィルタ処理技法を行い得る。成分のうちの１つまたは複数について、ビデオコーダは、２つの隣接する変換ブロックのサイズを決定し得る。
【０１２８】
[0134]  ２つの隣接するＴＵ間のより大きい変換サイズ（例えば、成分のうちの１つの変換ブロック）が最大許容変換ブロックサイズ（例えば、ＭａｘＴｒａｆｏＳｉｚｅ）に等しいという決定に基づいて、ビデオコーダは、本開示で説明されるデブロックフィルタ処理技法を行い得る。いくつかの例では、最大許容変換ブロックサイズが３２×３２である。
【０１２９】
[0135]  いくつかの例では、ブロックのうちの１つが最大許容変換ブロックサイズに等しいことに加え、ビデオコーダは関係するＣＵがイントラコーディング（イントラ予測コーディング）されるかインターコーディング（インター予測コーディング）されるかを決定し得る。コーディングされるブロックであるＣＵ、ＴＵはブロックの一部分である。
【０１３０】
[0136]  関係するＣＵがイントラコーディングされるとビデオコーダが決定した場合、および隣接するＴＵのうちの１つは最大許容変換ブロックサイズである。ビデオコーダは、本開示で説明される技法を利用してピクセル値をデブロックフィルタ処理する。関係するＣＵがイントラコーディングされないが、ＣＵの区分サイズが２Ｎ×２Ｎであり、ＴＵのｃｂｆが１に等しい（すなわち、ＴＵの変換がスキップされる）とビデオコーダが決定した場合、ビデオコーダは、本開示で説明されるデブロックフィルタ処理技法を行い得る。
【０１３１】
[0137]  別の例では、上記の２つの条件の上に以下の条件のいずれかまたは両方が追加され得る。例えば、最大変換ユニットサイズ（ＭａｘＴｒａｆｏＳｉｚｅ）が１６×１６よりも大きいかまたはそれに等しい場合、ビデオコーダは、本開示で説明されるデブロックフィルタ処理技法を行うように構成され得る。
【０１３２】
[0138]  また、上記の条件のうちの１つは、隣接するＴＵのうちの１つのサイズが最大許容ＴＵサイズに等しいかどうかに基づいた。以下は、隣接するＴＵのうちのより小さいＴＵのサイズが特定のサイズよりも大きいかまたはそれに等しいかどうかに基づく条件の一例である。例えば、２つのＴＵ間のより小さい変換サイズが１６×１６よりも大きいかまたはそれに等しいとビデオコーダが決定した場合、ビデオコーダは、本開示で説明されるデブロックフィルタ処理技法を行い得る。例えば、関係するＣＵがイントラコーディングされ、２つのＴＵ間のより小さい変換サイズが１６×１６よりも大きいかまたはそれに等しい場合、ビデオコーダは、本開示で説明されるデブロックフィルタ処理技法を行い得る。別の例として、関係するＣＵがイントラコーディングされず、ＣＵの区分サイズが２Ｎ×２Ｎであり、２つのＴＵ間のより小さい変換サイズが１６×１６よりも大きいかまたはそれに等しい場合、ビデオコーダは、本開示で説明されるデブロックフィルタ処理技法を行い得る。
【０１３３】
[0139]  デブロックフィルタ処理技法が適用されるときの上記の例示的な条件は例示のために与えたものにすぎないことを理解されたい。本開示で説明されるデブロックフィルタ処理技法を行うべきかどうかを決定するためにビデオコーダが評価し得る他の条件があり得る。
【０１３４】
[0140]  図２は、本開示で説明される技法を使用し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０について、例示のためにＨＥＶＣコーディングのコンテキストにおいて説明されるが、デブロックフィルタ処理を利用する他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ２０は、ビデオフレーム内のＣＵのイントラコーディングおよびインターコーディングを行い得る。イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在フレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指すことがある。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指すことがある。
【０１３５】
[0141]  図２に示されるように、ビデオデータメモリ３９は、ビデオフレーム内で現在ビデオブロックを符号化するために使用されるビデオデータを受信する。ビデオデータメモリ３９は、（例えば、ビデオデータを記憶するように構成された）ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ３９に記憶されるビデオデータは、例えば、ビデオソース１８から取得され得る。（参照ピクチャバッファまたは参照フレームバッファとも呼ばれる）復号ピクチャバッファ（ＤＰＢ）６４は、（例えば、イントラ予測コーディングモードまたはインター予測コーディングモードとも呼ばれる、イントラコーディングモードまたはインターコーディングモードで）ビデオエンコーダ２０によってビデオデータを符号化する際に使用する参照ビデオデータを記憶するバッファの一例である。ビデオデータメモリ３９およびＤＰＢ６４は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ３９およびＤＰＢ６４は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ３９が、ビデオエンコーダ２０の他の構成要素とともにオンチップであるか、またはそのような構成要素に対してオフチップであり得る。
【０１３６】
[0142]  図２の例では、ビデオエンコーダ２０が、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測処理ユニット４６と、復号ピクチャバッファ（ＤＰＢ）６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。図２に示されている変換処理ユニット５２は、残差データのブロックに実際の変換または変換の組合せを適用するユニットであり、ＣＵの変換ユニット（ＴＵ）と呼ばれることもある変換係数のブロックと混同されるべきではない。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換処理ユニット６０と、加算器６２とを含む。
【０１３７】
[0143]  デブロッキングフィルタ６３は、再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をデブロックフィルタ処理し得る。いくつかの例では、デブロッキングフィルタ６３が、本開示で説明される例示的な技法を実施し、ビデオエンコーダ２０の他のユニットと組み合わせてそうするように構成され得る。例えば、デブロッキングフィルタ６３は、単独でまたはビデオエンコーダ２０の他のユニットと組み合わせて、第１のブロックの第１のピクセルから第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定し、第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定し、幾何学的距離とピクセル値差分とに基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定し、デブロックフィルタ処理すべき量に基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理し得る。
【０１３８】
[0144]  図２には示されていないが、ビデオエンコーダ２０は、サンプル適応オフセット（ＳＡＯ：sample adaptive offset）フィルタおよび／または適応ループフィルタ（ＡＬＦ：adaptive loop filter）を含み得る。ＳＡＯフィルタおよび／またはＡＬＦフィルタは、デブロッキングフィルタ６３の前に、またはデブロッキングフィルタ６３の後に配置され得る。デブロッキングフィルタ６３が隣接ブロック間のブロッキネスを低減するように構成された場合、ＳＡＯフィルタおよび／またはＡＬＦフィルタは、ビデオコンテンツが元のビデオコンテンツと同じであるように見えるように、またはビデオコーディング効率を増加させるために、他のタイプのフィルタ処理を行うように構成され得る。デブロッキングフィルタ６３は、再構成されたブロックが元のブロックにより似ているように、ピクセル値を変更するためにフィルタ処理を場合によっては適用するが、必ずしも適用するとは限らない。そうではなく、デブロッキングフィルタ６３はブロッキネスを除去する。また、ＳＡＯフィルタとＡＬＦフィルタとは、同じブロックのビデオデータのみに基づき得、ここで、デブロッキングフィルタ６３は、異なるブロックからのビデオデータを利用する。
【０１３９】
[0145]  符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、例えば、最大コーディングユニット（ＬＣＵ）に分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対して受信されたビデオブロックのインター予測コーディングを行う。イントラ予測処理ユニット４６は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して、受信されたビデオブロックのイントラ予測コーディングを行い得る。
【０１４０】
[0146]  モード選択ユニット４０は、例えば、各モードについての誤差（すなわち、ひずみ）結果に基づいて、コーディングモードのうちの１つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインター予測ブロック（例えば、ＰＵ）を、残差ブロックデータを生成するために加算器５０に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器６２に与える。加算器６２は、以下でより詳細に説明されるように、符号化ブロックを再構成するために、予測ブロックを、そのブロックについての、逆変換処理ユニット６０からの逆量子化され逆変換されたデータと合成し得る。いくつかのビデオフレームはＩフレームに指定され得、Ｉフレーム中の全てのブロックはイントラ予測モードで符号化される。場合によっては、例えば、動き推定ユニット４２によって行われた動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測処理ユニット４６は、ＰフレームまたはＢフレーム中のブロックのイントラ予測符号化を行い得る。
【０１４１】
[0147]  動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定（または動き探索）は、ビデオブロックのための動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。動き推定ユニット４２は、予測ユニットをＤＰＢ６４に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットのための動きベクトルを計算する。参照サンプルは、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of squared difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得、必ずしも、参照フレームまたはスライスのブロック（例えば、コーディングユニット）境界において発生するとは限らない。いくつかの例では、参照サンプルが分数ピクセル位置において発生し得る。
【０１４２】
[0148]  動き推定ユニット４２が参照ブロックの位置を特定し得る探索空間を拡大するために、動き推定ユニット４２は、参照ピクチャに対して補間フィルタ処理を行い得る。参照ピクチャ中に含まれるピクセルは、整数ピクセルと呼ばれ、整数ピクセル位置に配置される。補間フィルタ処理を行うことの一部として、動き推定ユニット４２は、整数ピクセル間のピクセル値を補間し（すなわち、新しいピクセルロケーションのための新しいピクセル値を計算し）得る。これらの補間ピクセルはサブピクセルまたは分数ピクセルと呼ばれる。参照ブロックを識別するために、動き推定ユニット４２は、望ましい参照ブロックの位置を特定するために、整数ピクセルと分数ピクセルの両方を探索し得る。
【０１４３】
[0149]  動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット４４は、例えば、ＰＵのための動きベクトルによって識別される参照サンプルを取り出すことによって、現在ＣＵの予測ユニットについての予測値を計算し得る。
【０１４４】
[0150]  イントラ予測処理ユニット４６は、動き推定ユニット４２と動き補償ユニット４４とによって行われるインター予測の代替として、受信ブロックをイントラ予測し得る。イントラ予測処理ユニット４６は、隣接する、前にコーディングされたブロック、例えば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在ブロックの上、右上、左上、または左のブロックに対して受信ブロックを予測し得る。イントラ予測処理ユニット４６は多種多様なイントラ予測モードで構成され得る。例えば、イントラ予測処理ユニット４６は、符号化されているＣＵのサイズに基づいて、一定数の方向性予測モード、例えば、３３個の方向性予測モードで構成され得る。
【０１４５】
[0151]  イントラ予測処理ユニット４６は、例えば、様々なイントラ予測モードのための誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成し、その合成された値をＰＵ中の１つまたは複数のピクセル位置に適用するための機能を含み得る。ＰＵ中の全てのピクセル位置のための値が計算されると、イントラ予測処理ユニット４６は、ＰＵと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードのための誤差値を計算し得る。イントラ予測処理ユニット４６は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測処理ユニット４６は、次いで、ＰＵを加算器５０に送り得る。
【０１４６】
[0152]  ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４またはイントラ予測処理ユニット４６によって計算された予測データを減算することによって残差ブロックを形成する。加算器５０は、この減算演算を行う１つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の２次元行列に対応し得、ここで、残差ブロック中の値の数は、残差ブロックに対応するＰＵ中のピクセルの数と同じである。残差ブロック中の値は、ＰＵ中のコロケートピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
【０１４７】
[0153]  変換処理ユニット５２は、残差ブロックから１つまたは複数のＴＵを形成し得る。変換処理ユニット５２は、複数の変換の中から変換を選択する。変換は、ブロックサイズ、コーディングモードなど、１つまたは複数のコーディング特性に基づいて選択され得る。変換処理ユニット５２は、次いで、選択された変換をＴＵに適用して、変換係数の２次元アレイを備えるビデオブロックを生成する。
【０１４８】
[0154]  変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、次いで、その変換係数を量子化し得る。エントロピー符号化ユニット５６は、次いで、走査モードに従って、行列中の量子化された変換係数の走査を行い得る。本開示は、エントロピー符号化ユニット５６が走査を行うものとして説明している。但し、他の例では、量子化ユニット５４などの他の処理ユニットが走査を行えることを理解されたい。
【０１４９】
[0155]  変換係数が１次元アレイに走査されると、エントロピー符号化ユニット５６は、ＣＡＢＡＣ、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ）、または別のエントロピーコーディング方法などのエントロピーコーディングを係数に適用し得る。エントロピー符号化ユニット５６は、変換係数をコーディングするように構成され得る。ＣＡＢＡＣを行うために、エントロピー符号化ユニット５６は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。エントロピー符号化ユニット５６によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ３０などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【０１５０】
[0156]  逆量子化ユニット５８および逆変換処理ユニット６０は、例えば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４は、残差ブロックをＤＰＢ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定において使用するサブ整数ピクセル値を計算するために、再構成された残差ブロックに１つまたは複数の補間フィルタを適用し得る。
【０１５１】
[0157]  加算器６２は、ＤＰＢ６４に記憶するための再構成されたビデオブロックを生成するために、再構成された残差ブロックを、動き補償ユニット４４によって（場合によっては補間フィルタ処理を用いて）位置を特定された動き補償予測ブロックに加算する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０１５２】
[0158]  このようにして、ビデオエンコーダ２０は、境界までのピクセルのピクセル距離に基づいて、ピクセルのピクセル値をデブロックフィルタ処理すべき量を決定し、決定された量に基づいてデブロックフィルタ処理するように構成された１つまたは複数のプロセッサを含むビデオエンコーダの一例であり得る。いくつかの例では、ビデオエンコーダ２０が、少なくとも８つのピクセルのピクセル値をデブロックフィルタ処理すべき量を決定し得る。ある例では、境界により近いピクセルのピクセル値が境界からより遠く離れているピクセルのピクセル値よりも多く変更されることをビデオエンコーダ２０が決定し得る。いくつかの例では、ビデオエンコーダ２０が、デブロックフィルタ処理すべき量を決定するために、境界までのピクセルのピクセル距離の関数であるオフセット値を決定し得る。
【０１５３】
[0159]  いくつかの例では、ビデオエンコーダ２０が、第１のタイプのフィルタ（例えば、本開示で説明される長いデブロックフィルタ処理）を行うかどうかを決定し得る。ビデオエンコーダ２０は、第１のタイプのフィルタ処理を行わないと決定した場合、（例えば、ベースＨＥＶＣ規格において定義されている）第２のタイプのデブロックフィルタ処理を行い得る。ある例では、ビデオエンコーダ２０が、隣接ブロックに基づいて勾配を決定し得、勾配をしきい値と比較し得る。そのような例では、ビデオエンコーダ２０が、比較に基づいて、本開示で説明されるデブロックフィルタ処理技法を行うか、あるいは、比較に基づいて、ＨＥＶＣ規格におけるものなどのデブロックフィルタ処理技法、または何らかの他のデブロックフィルタ処理技法を行い得る。
【０１５４】
[0160]  図３は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。ビデオデコーダ３０は、デブロックフィルタ処理のための方法を行うように構成されたデバイスの一例を表す。図３の例では、ビデオデータメモリ６９が符号化ビデオを受信する。ビデオデータメモリ６９は、ビデオデコーダ３０の構成要素によって復号されるべき、符号化ビデオビットストリームなどの（例えば、ビデオデータを記憶するように構成された）ビデオデータを記憶し得る。ビデオデータメモリ６９に記憶されたビデオデータは、カメラなどのローカルビデオソースから、ビデオデータのワイヤードまたはワイヤレスネットワーク通信を介して、あるいは物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ６９は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成し得る。
【０１５５】
[0161]  （例えば、イントラコーディングモードまたはインターコーディングモードで）ビデオデコーダ３０によってビデオデータを復号する際に使用する参照ビデオデータを記憶する復号ピクチャバッファ（ＤＰＢ）８２。ビデオデータメモリ６９およびＤＰＢ８２は、ＳＤＲＡＭを含むＤＲＡＭ、ＭＲＡＭ、ＲＲＡＭ、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ６９およびＤＰＢ８２は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ６９が、ビデオデコーダ３０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１５６】
[0162]  ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測処理ユニット７４と、逆量子化ユニット７６と、逆変換処理ユニット７８と、復号ピクチャバッファ（ＤＰＢ）８２と、加算器８０とを含む。図３のビデオデコーダ３０は、いくつかの例で、ビデオエンコーダ２０（図２参照）に関して説明された符号化パスとは一般に逆の復号パスを行い得る。
【０１５７】
[0163]  エントロピー復号ユニット７０は、変換係数の１次元アレイを取り出すために、符号化ビットストリームに対してエントロピー復号プロセスを行う。使用されるエントロピー復号プロセスは、ビデオエンコーダ２０によって使用されたエントロピーコーディング（例えば、ＣＡＢＡＣ）に依存する。エンコーダによって使用されたエントロピーコーディングプロセスは、符号化ビットストリーム中でシグナリングされるか、または所定のプロセスであり得る。エントロピー復号ユニット７０は、変換係数をコーディングするように構成され得る。
【０１５８】
[0164]  いくつかの例では、エントロピー復号ユニット７０（または逆量子化ユニット７６）が、ビデオエンコーダ２０のエントロピー符号化ユニット５６（または量子化ユニット５４）によって使用された走査モードをミラーリングする走査を使用して受信値を走査し得る。係数の走査は逆量子化ユニット７６において行われ得るが、走査は、例示のために、エントロピー復号ユニット７０によって行われるものとして説明される。さらに、例示のために別個の機能ユニットとして示されるが、ビデオデコーダ３０のエントロピー復号ユニット７０、逆量子化ユニット７６、および他のユニットの構造および機能は互いに高度に統合され得る。
【０１５９】
[0165]  逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、例えば、ＨＥＶＣのために提案されたプロセスまたはＨ．２６４復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ＣＵについてビデオエンコーダ２０によって計算される量子化パラメータＱＰの使用を含み得る。逆量子化ユニット７６は、係数が１次元アレイから２次元アレイに変換される前または変換された後に変換係数を逆量子化し得る。
【０１６０】
[0166]  逆変換処理ユニット７８は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換処理ユニット７８が、ビデオエンコーダ２０からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの１つまたは複数のコーディング特性から変換を推論することによって、逆変換を決定し得る。いくつかの例では、逆変換処理ユニット７８が、現在ブロックを含むＬＣＵのための４分木のルートノードにおけるシグナリングされた変換に基づいて、現在ブロックに適用すべき変換を決定し得る。代替的に、変換は、ＬＣＵ４分木中のリーフノードＣＵのためのＴＵ４分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換処理ユニット７８がカスケード逆変換を適用し得、ここで逆変換処理ユニット７８は、復号されている現在ブロックの変換係数に２つまたはそれ以上の逆変換を適用する。イントラ予測処理ユニット７４は、シグナリングされたイントラ予測モードと、現在フレームの、前に復号されたブロックからのデータとに基づいて、現在フレームの現在ブロックのための予測データを生成し得る。
【０１６１】
[0167]  動き補償ユニット７２は、符号化ビットストリームから、動きベクトルと、動き予測方向と、参照インデックスとを取り出し得る。参照予測方向は、インター予測モードが単方向である（例えば、Ｐフレーム）か、双方向である（Ｂフレーム）かを示す。参照インデックスは、候補動きベクトルがどの参照フレームに基づくかを示す。
【０１６２】
[0168]  取り出された動き予測方向と、参照フレームインデックスと、動きベクトルとに基づいて、動き補償ユニットは現在部分のための動き補償ブロックを生成する。これらの動き補償ブロックは、本質的に、残差データを生成するために使用される予測ブロックを再現する。
【０１６３】
[0169]  動き補償ユニット７２は、場合によっては、動き補償ユニット４４によって行われる同じ補間フィルタ処理に対して行うことによって、動き補償ブロックを生成し得る。サブピクセル精度をもつ動き推定のために使用されるべき補間フィルタのための識別子が、シンタックス要素中に含まれ得る。動き補償ユニット７２は、参照ブロックのサブ整数ピクセルのための補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。
【０１６４】
[0170]  さらに、動き補償ユニット７２およびイントラ予測処理ユニット７４は、ＨＥＶＣの例で、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されたＬＣＵのサイズを決定するために、（例えば、４分木によって与えられる）シンタックス情報の一部を使用し得る。動き補償ユニット７２およびイントラ予測処理ユニット７４はまた、符号化ビデオシーケンスのフレームの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報を決定するために、シンタックス情報を使用し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード（例えば、イントラ予測またはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各インター符号化ＰＵについての１つまたは複数の参照フレーム（および／またはそれらの参照フレームの識別子を含んでいる参照リスト）と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。
【０１６５】
[0171]  加算器８０は、復号されたブロックを形成するために、残差ブロックを、動き補償ユニット７２またはイントラ予測処理ユニット７４によって生成される対応する予測ブロックと合成する。ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためのデブロッキングフィルタ８１も適用され得る。デブロッキングフィルタ８１は、本開示で説明される例示的なデブロックフィルタ処理技法を実施するように構成され得る。例えば、デブロッキングフィルタ８１は、単独でまたは他の構成要素と組み合わせて、第１のブロックの第１のピクセルから第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定し、第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定し、幾何学的距離とピクセル値差分とに基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定し、デブロックフィルタ処理すべき量に基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理し得る。復号されたビデオブロックは、次いで、ＤＰＢ８２に記憶され、ＤＰＢ８２は、参照ブロックを後続の動き補償に与え、また、（図１のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号されたビデオを生成する。
【０１６６】
[0172]  図２と同様に、図３には示されていないが、ビデオデコーダ３０は、サンプル適応オフセット（ＳＡＯ）フィルタおよび／または適応ループフィルタ（ＡＬＦ）を含み得る。ＳＡＯフィルタおよび／またはＡＬＦフィルタは、デブロッキングフィルタ８１の前に、またはデブロッキングフィルタ８１の後に配置され得る。デブロッキングフィルタ８１が隣接ブロック間のブロッキネスを低減するように構成された場合、ＳＡＯフィルタおよび／またはＡＬＦフィルタは、ビデオコンテンツが元のビデオコンテンツと同じであるように見えるように、またはビデオコーディング効率を増加させるために、他のタイプのフィルタ処理を行うように構成され得る。デブロッキングフィルタ８１は、再構成されたブロックが元のブロックにより似ているように、ピクセル値を変更するためにフィルタ処理を場合によっては適用するが、必ずしも適用するとは限らない。そうではなく、デブロッキングフィルタ８１はブロッキネスを除去する。また、ＳＡＯフィルタとＡＬＦフィルタとは、同じブロックのビデオデータのみに基づき得、ここで、デブロッキングフィルタ８１は、異なるブロックからのビデオデータを利用する。
【０１６７】
[0173]  このようにして、ビデオデコーダ３０は、境界までのピクセルのピクセル距離に基づいて、ピクセルのピクセル値をデブロックフィルタ処理すべき量を決定し、決定された量に基づいてデブロックフィルタ処理するように構成された１つまたは複数のプロセッサを含む、ビデオデコーダの一例であり得る。いくつかの例では、ビデオデコーダ３０が、少なくとも８つのピクセルのピクセル値をデブロックフィルタ処理すべき量を決定し得る。ある例では、境界により近いピクセルのピクセル値が、境界からより遠く離れているピクセルのピクセル値よりも多く変更されることをビデオデコーダ３０が決定し得る。いくつかの例では、ビデオデコーダ３０が、デブロックフィルタ処理すべき量を決定するために、境界までのピクセルのピクセル距離の関数であるオフセット値を決定し得る。
【０１６８】
[0174]  いくつかの例では、ビデオデコーダ３０が、第１のタイプのフィルタ（例えば、本開示で説明される長いデブロックフィルタ処理）を行うかどうかを決定し得る。ビデオデコーダ３０は、第１のタイプのフィルタ処理を行わないと決定した場合、（例えば、ベースＨＥＶＣ規格において定義されている）第２のタイプのデブロックフィルタ処理を行い得る。ある例では、ビデオデコーダ３０が、隣接ブロックに基づいて勾配を決定し得、勾配をしきい値と比較し得る。そのような例では、ビデオデコーダ３０が、比較に基づいて、本開示で説明されるデブロックフィルタ処理技法を行うか、あるいは、比較に基づいて、ＨＥＶＣ規格におけるものなどのデブロックフィルタ処理技法、または何らかの他のデブロックフィルタ処理技法を行い得る。
【０１６９】
[0175]  図５は、本開示で説明される技法に基づいて定義される例示的なデブロッキングフィルタ１００の構成要素を示すブロック図である。一般に、図２からのデブロッキングフィルタ６３と図３からのデブロッキングフィルタ８１のいずれかまたは両方は、デブロッキングフィルタ１００の構成要素と実質的に同様の構成要素を含み得る。ビデオエンコーダ、ビデオデコーダ、ビデオエンコーダ／デコーダ（コーデック）など、他のビデオコーディングデバイスも、デブロッキングフィルタ１００と実質的に同様の構成要素を含み得る。デブロッキングフィルタ１００は、ハードウェア、ソフトウェア、またはファームウェア、あるいはそれらの任意の組合せで実施され得る。ソフトウェアまたはファームウェアで実施されるとき、（１つまたは複数のプロセッサまたは処理ユニット、およびソフトウェアまたはファームウェアのための命令を記憶するためのメモリなどの）対応するハードウェアも与えられ得る。
【０１７０】
[0176]  図５の例では、デブロッキングフィルタ１００が、デブロッキング決定ユニット１０４と、メモリに記憶されたサポート定義１０２と、デブロッキングフィルタ処理ユニット１０６と、メモリに記憶されたデブロッキングフィルタ定義１０８と、エッジ位置特定ユニット１０３と、エッジロケーションデータ構造１０５とを含む。デブロッキングフィルタ１００の構成要素のいずれかまたは全ては機能的に統合され得る。デブロッキングフィルタ１００の構成要素は、例示のために別々に示されているにすぎない。一般に、デブロッキングフィルタ１００は、例えば、ブロックについて予測データを残差データと組み合わせる加算構成要素から、復号されたブロック（または再構成されたブロック）のためのデータを受信する。データは、さらに、ブロックがどのように予測されたかについての指示を含み得る。以下で説明される例では、デブロッキングフィルタ１００が、ＬＣＵとＬＣＵのためのＣＵ４分木とに関連する復号されたビデオブロックを含むデータを受信するように構成され、ここで、ＣＵ４分木は、ＬＣＵがＣＵにどのように区分されるかを記述し、リーフノードＣＵのＰＵおよびＴＵのための予測モードを記述する。
【０１７１】
[0177]  デブロッキングフィルタ１００は、デブロッキングフィルタ１００のメモリ中に、または対応するビデオコーディングデバイスによって与えられる外部メモリ中にエッジロケーションデータ構造１０５を維持し得る。いくつかの例で、エッジ位置特定ユニット１０３は、ＬＣＵがＣＵにどのように区分されるかを示す、ＬＣＵに対応するＣＵ４分木を受信し得る。次いで、エッジ位置特定ユニット１０３は、デブロッキングのための候補であるＬＣＵ中のＣＵのＴＵおよびＰＵに関連する復号されたビデオブロック間のエッジ（例えば、境界）を決定するために、ＣＵ４分木を分析し得る。例えば、エッジ位置特定ユニット１０３は境界８６の位置を特定し得る。
【０１７２】
[0178]  エッジロケーションデータ構造１０５は、水平次元と、垂直次元と、水平エッジおよび垂直エッジを表す次元とを有するアレイを備え得る。一般に、ビデオブロック間のエッジ（例えば、境界）は、ＬＣＵの最小サイズＣＵ、またはＣＵのＴＵおよびＰＵに関連する２つのビデオブロック間に生じ得る。ＬＣＵがＮ×Ｎのサイズを有すると仮定し、ＬＣＵの最小サイズＣＵがサイズＭ×Ｍであると仮定すると、アレイは、［Ｎ／Ｍ]×［Ｎ／Ｍ］×２のサイズを備え得、ここで、「２」は、ＣＵ間のエッジの２つの可能な方向（水平および垂直）を表す。例えば、ＬＣＵが６４×６４ピクセルと８×８最小サイズＣＵとを有すると仮定すると、アレイは、［８］×［８］×［２］エントリを備え得る。
【０１７３】
[0179]  各エントリは、一般に、２つのビデオブロック間の可能なエッジに対応し得る。実際は、エッジロケーションデータ構造１０５のエントリの各々に対応するＬＣＵ内の位置の各々にエッジが存在しないことがある。従って、データ構造の値は偽に初期化され得る。一般に、エッジ位置特定ユニット１０３は、ＬＣＵのＣＵのＴＵおよびＰＵに関連する２つのビデオブロック間のエッジのロケーションを決定し、エッジロケーションデータ構造１０５中の対応する値を真に設定するために、ＣＵ４分木を分析し得る。
【０１７４】
[0180]  一般に、アレイのエントリは、対応するエッジがデブロッキングのための候補としてＬＣＵ中に存在するかどうかを記述し得る。すなわち、エッジ位置特定ユニット１０３が、ＬＣＵのＣＵのＴＵおよびＰＵに関連する２つの隣接ビデオブロック間のエッジが存在すると決定したとき、エッジ位置特定ユニット１０３は、エッジが存在することを示すためにエッジロケーションデータ構造１０５中の対応するエントリの値を（例えば、「真」の値に）設定し得る。
【０１７５】
[0181]  デブロッキング決定ユニット１０４は、一般に、２つの隣接ブロックについて、２つのブロック間のエッジがデブロックされるべきかどうかを決定する。デブロッキング決定ユニット１０４は、エッジロケーションデータ構造１０５を使用してエッジのロケーションを決定し得る。エッジロケーションデータ構造１０５の値がブール値を有するとき、デブロッキング決定ユニット１０４は、いくつかの例では、「真」の値がエッジの存在を示し、「偽」の値がエッジが存在しないことを示すと決定し得る。例えば、デブロッキング決定ユニット１０４は、勾配を決定し、本開示で説明される技法を利用してデブロックフィルタ処理すべきかどうかを決定し得る。別の例として、デブロッキング決定ユニット１０４は、変換サイズ、およびＣＵがイントラコーディングされるかまたはイントラコーディングされないかを決定し、本開示で説明される技法を利用してデブロックフィルタ処理すべきかどうかを決定するためにそのような情報を利用し得る。
【０１７６】
[0182]  一般に、デブロッキング決定ユニット１０４は、１つまたは複数のデブロッキング決定関数で構成される。関数は、ブロック間のエッジを横断するピクセルのラインに適用される複数の係数を含み得る。例えば、関数は、エッジに対して直角である８つのピクセルのラインに適用され得、ここで、ピクセルのうちの４つは、２つのブロックのうちの一方にあり、他の４つのピクセルは、２つのブロックのうちの他方にある。サポート定義１０２は関数のためのサポートを定義する。一般に、「サポート」は、関数が適用されるピクセルに対応する。サポートのセットの様々な例が、図６に関して以下でより詳細に説明される。
【０１７７】
[0183]  デブロッキング決定ユニット１０４は、サポート定義１０２によって定義されたサポートの１つまたは複数のセットに１つまたは複数のデブロッキング決定関数を適用し、ビデオデータの２つのブロック間の特定のエッジがデブロックされるべきかどうかを決定するように構成され得る。デブロッキング決定ユニット１０４から発生する破線は、フィルタ処理されることなしに出力されるブロックのためのデータを表す。２つのブロック間のエッジがフィルタ処理されるべきでないとデブロッキング決定ユニット１０４が決定した場合、デブロッキングフィルタ１００は、データを改変することなしに、ブロックのためのデータを出力し得る。すなわち、そのデータはデブロッキングフィルタ処理ユニット１０６をバイパスし得る。一方、エッジがデブロックされるべきであるとデブロッキング決定ユニット１０４が決定したとき、デブロッキング決定ユニット１０４は、エッジをデブロックするために、デブロッキングフィルタ処理ユニット１０６にエッジの近くのピクセルのための値をフィルタ処理させ得る。
【０１７８】
[0184]  デブロッキングフィルタ処理ユニット１０６は、デブロッキング決定ユニット１０４によって示されたデブロックされるべきエッジのために、デブロッキングフィルタパラメータ１０８からデブロッキングフィルタの定義を取り出す。一般に、エッジのフィルタ処理は、デブロックされるべき現在エッジの近傍からのピクセルの値を使用する。従って、デブロッキング決定関数とデブロッキングフィルタの両方は、エッジの両側に、あるサポート領域を有し得る。エッジ（例えば、境界）の近傍にあるピクセルにデブロッキングフィルタを適用することによって、デブロッキングフィルタ処理ユニット１０６は、エッジの近くの高周波遷移が減衰するように、ピクセルの値を平滑化し得る。このようにして、エッジ（例えば、境界）の近くのピクセルへのデブロッキングフィルタの適用は、エッジの近くのブロッキネスアーティファクトを低減し得る。
【０１７９】
[0185]  図６は、サブブロック１３０とサブブロック１３２との間のビデオブロックのエッジ（すなわち、境界）１３４の近くのピクセル位置を示す概念図である。一例として、境界１３４は、ＣＵにおいて定義されている２つのＴＵ間のＴＵエッジ、またはＣＵにおいて定義されている２つのＰＵ間のＰＵエッジなど、内部ＣＵエッジを備え得る。ピクセル位置の各々は、フォーマット［ｐ｜ｑ］ＩJを使用して指定され、ここで、ｐはサブブロック１３０に対応し、ｑはサブブロック１３２に対応し、Ｉはエッジ１３４からの距離に対応し、Ｊは、サブブロック１３０および１３２の上から下への行インジケータに対応する。いくつかの例では、デブロッキング決定関数およびデブロッキングフィルタのために使用されるサポートが、８つのピクセルのラインを有する。そのような例では、０≦Ｘ≦７である所与のラインＸのために、ピクセルｐ３X〜ｑ３Xの各々がサポートとして使用され得る
[0186]  図７は、ビデオデータを処理する例示的な技法を示すフローチャートである。例示のために、図７の例が、図６に関して詳細に説明される。例えば、例示のために、図７は、ピクセルｐ４3が、デブロックフィルタ処理されるべきであるピクセルであることに関して説明される。また、図７の例について、ビデオコーダが本技法を行うことに関して説明される。ビデオコーダは、一般的にビデオエンコーダ２０またはビデオデコーダ３０を表すために使用される。
【０１８０】
[0187]  ビデオコーダは、第１のブロックの第１のピクセルから第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定する（１４０）。例えば、ビデオコーダは、境界１３４までのブロック１３０のピクセルｐ４3の幾何学的距離を決定し得、ここで、境界１３４はブロック１３０とブロック１３２との間の境界である。一例として、ビデオコーダは、第１のピクセルと境界との間のピクセルの数に基づいて幾何学的距離を決定し得る。例えば、ピクセルｐ４3の幾何学的距離は、ｎ（ｉ）＝ｉである式に基づいて４であるか、またはｎ（ｉ）＝（２ｉ＋１）／２である式に基づいて９／２である。
【０１８１】
[0188]  ビデオコーダは、第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定する（１４２）。例えば、ビデオコーダは、第２のピクセルのピクセル値と第３のピクセルの第１のピクセル値との間の差分を決定し、差分の結果を２で除算し得る。
【０１８２】
[0189]  いくつかの例で、第２のピクセルは、境界に最も近い第１のブロックのピクセルであり（例えば、ブロック１３０のｐ０3は境界１３４に最も近い）、第３のピクセルは、境界に最も近い第２のブロックのピクセルである（例えば、ブロック１３２のｑ０3は境界１３４に最も近い）。いくつかの例で、第２のピクセルと第１のピクセルとは同じであり、第３のピクセルは、第１のブロック中の第１のピクセルと境界までの距離が等距離である、第２のブロック中のピクセルである（例えば、ｑ４3は、境界１３４までの距離が、ｐ４3の境界１３４までの距離と等距離である）。別の例として、第２のピクセルと第１のピクセルとは同じであり、第３のピクセルは、境界にクローゼットであるピクセルである（例えば、ｑ０3は境界１３４に最も近い）。いくつかの例で、第２のピクセルと第３のピクセルとは隣接ピクセルである（例えば、ｐ５3とｐ３3）。
【０１８３】
[0190]  ビデオコーダは、幾何学的距離とピクセル値差分とに基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定する（１４４）。ビデオコーダは、上で説明された例示的な技法のうちの１つまたは複数を使用してピクセル値差分を決定し、少なくともピクセル値差分のための重み付けを決定し得る。これらの例では、ビデオコーダが、幾何学的距離と、ピクセル値差分と、ピクセル値差分のための重み付けとに基づいて、デブロックフィルタ処理すべき量を決定し得る。いくつかの例では、ビデオコーダが、幾何学的距離と、ピクセル値差分と、デブロックフィルタ処理されるべきであるピクセルの数（ピクセルの数は、ビットストリーム中でシグナリングされるかまたはあらかじめ記憶され得る）とに基づいて、デブロックフィルタ処理すべき量を決定し得る。
【０１８４】
[0191]  ビデオコーダは、デブロックフィルタ処理すべき量に基づいて、第１のピクセルのピクセル値をデブロックフィルタ処理する（１４６）。場合によっては、ビデオコーダは、デブロックフィルタ処理すべき量が、第１のしきい値よりも大きいかまたは第２のしきい値よりも小さいと決定し、デブロックフィルタ処理すべき量が、第１のしきい値よりも大きいかまたは第２のしきい値よりも小さいことに基づいて、デブロックフィルタ処理すべき調整された量を決定し得る。ビデオコーダは、デブロックフィルタ処理すべき調整された量に基づいて、ピクセル値をデブロックフィルタ処理し得る。
【０１８５】
[0192]  さらに、いくつかの例では、ビデオコーダが、本開示で説明される技法を使用してデブロックフィルタ処理すべきかどうかを決定し得る。例えば、ビデオコーダは、第１のブロックの一部分のための勾配値を決定し得、ここで、勾配値は、第１のブロックの一部分の平滑度を示す。一部分の例としては、デブロックフィルタ処理されるべきであるピクセル以外の追加のピクセルを含むブロックの領域、ブロックのライン、さらにはブロックのピクセルがある。ビデオコーダは、勾配値がしきい値勾配値よりも小さいかまたはそれに等しいことに基づいて、ピクセル値をデブロックフィルタ処理し得る。
【０１８６】
[0193]  別の例として、ビデオコーダは、第１のブロックを生成するために使用される第１の変換ブロックの第１のブロックサイズと、第２のブロックを生成するために使用される第２の変換ブロックの第２のブロックサイズとを決定し得る。ビデオコーダは、第１のブロックサイズおよび第２のブロックサイズのうちのより大きいブロックサイズが最大許容変換ブロックサイズに等しいこと、または第１のブロックサイズおよび第２のブロックサイズのうちのより小さいブロックサイズがしきい値ブロックサイズよりも大きいことに基づいて、ピクセル値をデブロックフィルタ処理し得る。
【０１８７】
[0194]  いくつかの例では、ビデオコーダが、後続のブロック（例えば、第３のブロック）のインター予測またはイントラ予測の一部として、デブロックフィルタ処理されたピクセル値を利用し得る。ビデオコーダがビデオエンコーダ２０である例では、ビデオエンコーダ２０が、（例えば、第３のブロックをインター予測またはイントラ予測符号化することの一部として）第３のブロック中のピクセルのピクセル値とデブロックフィルタ処理されたピクセル値との間の差分を決定し得る。ビデオエンコーダ２０は、第３のブロック中のピクセルのピクセル値とデブロックフィルタ処理されたピクセル値との間の差分を示す情報をシグナリングし得、ここで、シグナリングされた情報は、第３のブロックを復号するために使用される。
【０１８８】
[0195]  ビデオコーダがビデオデコーダ３０である場合、ビデオデコーダ３０は、第３のブロック中のピクセルのピクセル値とデブロックフィルタ処理されたピクセル値との間の差分を示す情報を受信し得る。ビデオデコーダ３０は、受信された情報に基づいて第３のブロックをインター予測またはイントラ予測復号し得る。
【０１８９】
[0196]  １つまたは複数の例では、説明された機能が、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得るか、または、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実施のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１９０】
[0197]  限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ディスク（disk）は通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１９１】
[0198]  命令は、１つまたは複数のＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明された技法の実施に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能が、符号化および復号のために構成された専用のハードウェアモジュールおよび／またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実施され得る。
【０１９２】
[0199]  例によっては、本明細書で説明された方法のいずれかのいくつかの行為またはイベントが、異なるシーケンスで行われ得、追加、マージ、または完全に除外され得る（例えば、全ての説明された行為またはイベントが、本方法の実施のために必要であるとは限らない）ことを認識されたい。さらに、いくつかの実施形態では、行為またはイベントが、連続的にではなく、例えば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に行われ得る。
【０１９３】
[0200]  本明細書で開示する方法、システムおよび装置と関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムのステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、または両方の組合せとして実施され得ることを、当業者は認識されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上で概ねそれらの機能に関して説明された。そのような機能がハードウェアとして実施されるか、ソフトウェアとして実施されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに変わる方式で実施し得るが、そのような実施の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
【０１９４】
[0201]  さらに、本明細書で開示する例は、汎用プロセッサ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡまたは他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素などの電子デバイスまたは回路、あるいは本明細書で説明された機能を行うように設計されたそれらの任意の組合せを用いて実施または行われ得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、計算デバイスの組合せ、例えば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実施され得る。
【０１９５】
[0202]  本明細書で開示する実施形態に関して説明された方法またはアルゴリズムのステップは、直接ハードウェアで実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその２つの組合せで実施され得る。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている任意の他の形態の記憶媒体中に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はＡＳＩＣ中に存在し得る。ＡＳＩＣはユーザ端末中に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中に個別構成要素として存在し得る。
【０１９６】
[0203]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を行うように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【図１】
2017513326.tif 000003
【図２】
2017513326.tif 000004
【図３】
2017513326.tif 000005
【図４】
2017513326.tif 000006
【図５】
2017513326.tif 000007
【図６】
2017513326.tif 000008
【図７】
2017513326.tif 000009
【手続補正書】
【提出日】平成28年11月25日(2016.11.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、前記方法が、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、ここにおいて、前記幾何学的距離が前記第１のピクセルと前記境界との間のピクセルの数に基づく、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することと
を備える、方法。
【請求項２】
前記ピクセル値差分を決定することが、前記第２のピクセルの前記ピクセル値と前記第３のピクセルの前記ピクセル値との間の差分を決定することと、前記差分を２で除算することとを備える、請求項１に記載の方法。
【請求項３】
前記第２のピクセルが、前記境界に最も近い前記第１のブロックのピクセルを備え、前記第３のピクセルが、前記境界に最も近い前記第２のブロックのピクセルを備える、請求項１に記載の方法。
【請求項４】
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記第１のブロック中の前記第１のピクセルと前記境界までの距離が等距離である前記第２のブロック中のピクセルを備える、請求項１に記載の方法。
【請求項５】
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記境界に最も近い前記第２のブロック中のピクセルを備える、請求項１に記載の方法。
【請求項６】
前記第２のピクセルが前記第１のピクセルの第１の隣接ピクセルを備え、前記第３のピクセルが前記第１のピクセルの第２の隣接ピクセルを備える、請求項１に記載の方法。
【請求項７】
少なくとも前記ピクセル値差分のための重み付けを決定することをさらに備え、
ここにおいて、デブロックフィルタ処理すべき前記量を決定することが、前記幾何学的距離と、前記ピクセル値差分と、前記ピクセル値差分のための前記重み付けとに基づいて、デブロックフィルタ処理すべき前記量を決定することを備える、請求項１に記載の方法。
【請求項８】
デブロックフィルタ処理すべき前記量が、第１のしきい値よりも大きいかまたは第２のしきい値よりも小さいと決定することと、
デブロックフィルタ処理すべき前記量が、前記第１のしきい値よりも大きいかまたは前記第２のしきい値よりも小さいことに基づいて、デブロックフィルタ処理すべき調整された量を決定することと
をさらに備え、
ここにおいて、前記ピクセル値をデブロックフィルタ処理することが、デブロックフィルタ処理すべき前記調整された量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することを備える、請求項１に記載の方法。
【請求項９】
デブロックフィルタ処理すべき前記量を決定することが、前記幾何学的距離と、前記ピクセル値差分と、デブロックフィルタ処理されるべきであるピクセルの数とに基づいて、デブロックフィルタ処理すべき前記量を決定することを備える、請求項１に記載の方法。
【請求項１０】
前記第１のブロックの一部分のための勾配値を決定することをさらに備え、ここにおいて、前記勾配値が、前記第１のブロックの前記一部分の平滑度を示し、
ここにおいて、デブロックフィルタ処理することは、前記勾配値がしきい値勾配値よりも小さいかまたはそれに等しいことに基づいて、前記ピクセル値をデブロックフィルタ処理することを備える、請求項１に記載の方法。
【請求項１１】
前記第１のブロックを生成するために使用される第１の変換ブロックの第１のブロックサイズと、前記第２のブロックを生成するために使用される第２の変換ブロックの第２のブロックサイズとを決定することをさらに備え、
ここにおいて、デブロックフィルタ処理することは、前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより大きいブロックサイズが最大許容変換ブロックサイズに等しいこと、または前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより小さいブロックサイズがしきい値ブロックサイズよりも大きいことに基づいて、前記ピクセル値をデブロックフィルタ処理することを備える、請求項１に記載の方法。
【請求項１２】
第３のブロック中のピクセルのピクセル値と前記デブロックフィルタ処理されたピクセル値との間の差分を決定することと、
前記第３のブロック中の前記ピクセルの前記ピクセル値と前記デブロックフィルタ処理されたピクセル値との間の前記差分を示す情報をシグナリングすることと、ここにおいて、前記シグナリングされた情報が、前記第３のブロックを復号するために使用される、
をさらに備える、請求項１に記載の方法。
【請求項１３】
第３のブロック中のピクセルのピクセル値と前記デブロックフィルタ処理されたピクセル値との間の差分を示す情報を受信することと、
前記受信された情報に基づいて前記第３のブロックをインター予測またはイントラ予測復号することと
をさらに備える、請求項１に記載の方法。
【請求項１４】
ビデオデータを処理するためのデバイスであって、前記デバイスは、
ピクセル値を記憶するビデオデータメモリと、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、ここにおいて、前記第２のブロックのピクセル値が前記ビデオデータメモリに記憶され、前記幾何学的距離が前記第１のピクセルと前記境界との間のピクセルの数に基づく、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することと
を行うように構成されたビデオコーダと
を備える、デバイス。
【請求項１５】
前記ピクセル値差分を決定するために、前記ビデオコーダが、前記第２のピクセルの前記ピクセル値と前記第３のピクセルの前記ピクセル値との間の差分を決定することと、前記差分を２で除算することとを行うように構成された、請求項１４に記載のデバイス。
【請求項１６】
前記第２のピクセルが、前記境界に最も近い前記第１のブロックのピクセルを備え、前記第３のピクセルが、前記境界に最も近い前記第２のブロックのピクセルを備える、請求項１４に記載のデバイス。
【請求項１７】
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記第１のブロック中の前記第１のピクセルと前記境界までの距離が等距離である前記第２のブロック中のピクセルを備える、請求項１４に記載のデバイス。
【請求項１８】
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記境界に最も近い前記第２のブロック中のピクセルを備える、請求項１４に記載のデバイス。
【請求項１９】
前記第２のピクセルが前記第１のピクセルの第１の隣接ピクセルを備え、前記第３のピクセルが前記第１のピクセルの第２の隣接ピクセルを備える、請求項１４に記載のデバイス。
【請求項２０】
前記ビデオコーダが、
少なくとも前記ピクセル値差分のための重み付けを決定するように構成され、
ここにおいて、デブロックフィルタ処理すべき前記量を決定するために、前記ビデオコーダが、前記幾何学的距離と、前記ピクセル値差分と、前記ピクセル値差分のための前記重み付けとに基づいて、デブロックフィルタ処理すべき前記量を決定するように構成された、請求項１４に記載のデバイス。
【請求項２１】
前記ビデオコーダは、
デブロックフィルタ処理すべき前記量が、第１のしきい値よりも大きいかまたは第２のしきい値よりも小さいと決定することと、
デブロックフィルタ処理すべき前記量が、前記第１のしきい値よりも大きいかまたは前記第２のしきい値よりも小さいことに基づいて、デブロックフィルタ処理すべき調整された量を決定することと
を行うように構成され、
ここにおいて、前記ピクセル値をデブロックフィルタ処理するために、前記ビデオコーダが、デブロックフィルタ処理すべき前記調整された量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理するように構成された、請求項１４に記載のデバイス。
【請求項２２】
デブロックフィルタ処理すべき前記量を決定するために、前記ビデオコーダが、前記幾何学的距離と、前記ピクセル値差分と、デブロックフィルタ処理されるべきであるピクセルの数とに基づいて、デブロックフィルタ処理すべき前記量を決定するように構成された、請求項１４に記載のデバイス。
【請求項２３】
前記ビデオコーダが、
前記第１のブロックの一部分のための勾配値を決定するように構成され、ここにおいて、前記勾配値が、前記第１のブロックの前記一部分の平滑度を示し、
ここにおいて、デブロックフィルタ処理するために、前記ビデオコーダは、前記勾配値がしきい値勾配値よりも小さいかまたはそれに等しいことに基づいて、前記ピクセル値をデブロックフィルタ処理するように構成された、請求項１４に記載のデバイス。
【請求項２４】
前記ビデオコーダが、
前記第１のブロックを生成するために使用される第１の変換ブロックの第１のブロックサイズと、前記第２のブロックを生成するために使用される第２の変換ブロックの第２のブロックサイズとを決定するように構成され、
ここにおいて、デブロックフィルタ処理するために、前記ビデオコーダは、前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより大きいブロックサイズが最大許容変換ブロックサイズに等しいこと、または前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより小さいブロックサイズがしきい値ブロックサイズよりも大きいことに基づいて、前記ピクセル値をデブロックフィルタ処理するように構成された、請求項１４に記載のデバイス。
【請求項２５】
前記デバイスが、
マイクロプロセッサ、
集積回路（ＩＣ）、または
ワイヤレスハンドセットデバイス
のうちの１つを備える、請求項１４に記載のデバイス。
【請求項２６】
ビデオデータを処理するためのデバイスであって、前記デバイスが、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定するための手段と、ここにおいて、前記幾何学的距離が前記第１のピクセルと前記境界との間のピクセルの数に基づく、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定するための手段と、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定するための手段と、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理するための手段と
を備える、デバイス。
【請求項２７】
実行されたとき、処理するためのデバイスの１つまたは複数のプロセッサに、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、ここにおいて、前記幾何学的距離が前記第１のピクセルと前記境界との間のピクセルの数に基づく、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１９６
【補正方法】変更
【補正の内容】
【０１９６】
[0203]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を行うように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを処理する方法であって、前記方法が、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することと
を備える、方法。
［Ｃ２］
前記第１のピクセルの前記幾何学的距離を決定することが、前記第１のピクセルと前記境界との間のピクセルの数に基づいて前記幾何学的距離を決定することを備える、Ｃ１に記載の方法。
［Ｃ３］
前記ピクセル値差分を決定することが、前記第２のピクセルの前記ピクセル値と前記第３のピクセルの前記ピクセル値との間の差分を決定することと、前記差分を２で除算することとを備える、Ｃ１に記載の方法。
［Ｃ４］
前記第２のピクセルが、前記境界に最も近い前記第１のブロックのピクセルを備え、前記第３のピクセルが、前記境界に最も近い前記第２のブロックのピクセルを備える、Ｃ１に記載の方法。
［Ｃ５］
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記第１のブロック中の前記第１のピクセルと前記境界までの距離が等距離である前記第２のブロック中のピクセルを備える、Ｃ１に記載の方法。
［Ｃ６］
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記境界に最も近い前記第２のブロック中のピクセルを備える、Ｃ１に記載の方法。
［Ｃ７］
前記第２のピクセルが前記第１のピクセルの第１の隣接ピクセルを備え、前記第３のピクセルが前記第１のピクセルの第２の隣接ピクセルを備える、Ｃ１に記載の方法。
［Ｃ８］
少なくとも前記ピクセル値差分のための重み付けを決定することをさらに備え、
ここにおいて、デブロックフィルタ処理すべき前記量を決定することが、前記幾何学的距離と、前記ピクセル値差分と、前記ピクセル値差分のための前記重み付けとに基づいて、デブロックフィルタ処理すべき前記量を決定することを備える、Ｃ１に記載の方法。
［Ｃ９］
デブロックフィルタ処理すべき前記量が、第１のしきい値よりも大きいかまたは第２のしきい値よりも小さいと決定することと、
デブロックフィルタ処理すべき前記量が、前記第１のしきい値よりも大きいかまたは前記第２のしきい値よりも小さいことに基づいて、デブロックフィルタ処理すべき調整された量を決定することと
をさらに備え、
ここにおいて、前記ピクセル値をデブロックフィルタ処理することが、デブロックフィルタ処理すべき前記調整された量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することを備える、Ｃ１に記載の方法。
［Ｃ１０］
デブロックフィルタ処理すべき前記量を決定することが、前記幾何学的距離と、前記ピクセル値差分と、デブロックフィルタ処理されるべきであるピクセルの数とに基づいて、デブロックフィルタ処理すべき前記量を決定することを備える、Ｃ１に記載の方法。
［Ｃ１１］
前記第１のブロックの一部分のための勾配値を決定することをさらに備え、ここにおいて、前記勾配値が、前記第１のブロックの前記一部分の平滑度を示し、
ここにおいて、デブロックフィルタ処理することは、前記勾配値がしきい値勾配値よりも小さいかまたはそれに等しいことに基づいて、前記ピクセル値をデブロックフィルタ処理することを備える、Ｃ１に記載の方法。
［Ｃ１２］
前記第１のブロックを生成するために使用される第１の変換ブロックの第１のブロックサイズと、前記第２のブロックを生成するために使用される第２の変換ブロックの第２のブロックサイズとを決定することをさらに備え、
ここにおいて、デブロックフィルタ処理することは、前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより大きいブロックサイズが最大許容変換ブロックサイズに等しいこと、または前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより小さいブロックサイズがしきい値ブロックサイズよりも大きいことに基づいて、前記ピクセル値をデブロックフィルタ処理することを備える、Ｃ１に記載の方法。
［Ｃ１３］
第３のブロック中のピクセルのピクセル値と前記デブロックフィルタ処理されたピクセル値との間の差分を決定することと、
前記第３のブロック中の前記ピクセルの前記ピクセル値と前記デブロックフィルタ処理されたピクセル値との間の前記差分を示す情報をシグナリングすることと、ここにおいて、前記シグナリングされた情報が、前記第３のブロックを復号するために使用される、をさらに備える、Ｃ１に記載の方法。
［Ｃ１４］
第３のブロック中のピクセルのピクセル値と前記デブロックフィルタ処理されたピクセル値との間の差分を示す情報を受信することと、
前記受信された情報に基づいて前記第３のブロックをインター予測またはイントラ予測復号することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１５］
ビデオデータを処理するためのデバイスであって、前記デバイスは、
ピクセル値を記憶するビデオデータメモリと、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、ここにおいて、前記第２のブロックのピクセル値が前記ビデオデータメモリに記憶される、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することと
を行うように構成されたビデオコーダと
を備える、デバイス。
［Ｃ１６］
前記第１のピクセルの前記幾何学的距離を決定するために、前記ビデオコーダが、前記第１のピクセルと前記境界との間のピクセルの数に基づいて前記幾何学的距離を決定するように構成された、Ｃ１５に記載のデバイス。
［Ｃ１７］
前記ピクセル値差分を決定するために、前記ビデオコーダが、前記第２のピクセルの前記ピクセル値と前記第３のピクセルの前記ピクセル値との間の差分を決定することと、前記差分を２で除算することとを行うように構成された、Ｃ１５に記載のデバイス。
［Ｃ１８］
前記第２のピクセルが、前記境界に最も近い前記第１のブロックのピクセルを備え、前記第３のピクセルが、前記境界に最も近い前記第２のブロックのピクセルを備える、Ｃ１５に記載のデバイス。
［Ｃ１９］
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記第１のブロック中の前記第１のピクセルと前記境界までの距離が等距離である前記第２のブロック中のピクセルを備える、Ｃ１５に記載のデバイス。
［Ｃ２０］
前記第２のピクセルと前記第１のピクセルとが同じピクセルであり、前記第３のピクセルが、前記境界に最も近い前記第２のブロック中のピクセルを備える、Ｃ１５に記載のデバイス。
［Ｃ２１］
前記第２のピクセルが前記第１のピクセルの第１の隣接ピクセルを備え、前記第３のピクセルが前記第１のピクセルの第２の隣接ピクセルを備える、Ｃ１５に記載のデバイス。
［Ｃ２２］
前記ビデオコーダが、
少なくとも前記ピクセル値差分のための重み付けを決定するように構成され、
ここにおいて、デブロックフィルタ処理すべき前記量を決定するために、前記ビデオコーダが、前記幾何学的距離と、前記ピクセル値差分と、前記ピクセル値差分のための前記重み付けとに基づいて、デブロックフィルタ処理すべき前記量を決定するように構成された、Ｃ１５に記載のデバイス。
［Ｃ２３］
前記ビデオコーダは、
デブロックフィルタ処理すべき前記量が、第１のしきい値よりも大きいかまたは第２のしきい値よりも小さいと決定することと、
デブロックフィルタ処理すべき前記量が、前記第１のしきい値よりも大きいかまたは前記第２のしきい値よりも小さいことに基づいて、デブロックフィルタ処理すべき調整された量を決定することと
を行うように構成され、
ここにおいて、前記ピクセル値をデブロックフィルタ処理するために、前記ビデオコーダが、デブロックフィルタ処理すべき前記調整された量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理するように構成された、Ｃ１５に記載のデバイス。
［Ｃ２４］
デブロックフィルタ処理すべき前記量を決定するために、前記ビデオコーダが、前記幾何学的距離と、前記ピクセル値差分と、デブロックフィルタ処理されるべきであるピクセルの数とに基づいて、デブロックフィルタ処理すべき前記量を決定するように構成された、Ｃ１５に記載のデバイス。
［Ｃ２５］
前記ビデオコーダが、
前記第１のブロックの一部分のための勾配値を決定するように構成され、ここにおいて、前記勾配値が、前記第１のブロックの前記一部分の平滑度を示し、
ここにおいて、デブロックフィルタ処理するために、前記ビデオコーダは、前記勾配値がしきい値勾配値よりも小さいかまたはそれに等しいことに基づいて、前記ピクセル値をデブロックフィルタ処理するように構成された、Ｃ１５に記載のデバイス。
［Ｃ２６］
前記ビデオコーダが、
前記第１のブロックを生成するために使用される第１の変換ブロックの第１のブロックサイズと、前記第２のブロックを生成するために使用される第２の変換ブロックの第２のブロックサイズとを決定するように構成され、
ここにおいて、デブロックフィルタ処理するために、前記ビデオコーダは、前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより大きいブロックサイズが最大許容変換ブロックサイズに等しいこと、または前記第１のブロックサイズおよび前記第２のブロックサイズのうちのより小さいブロックサイズがしきい値ブロックサイズよりも大きいことに基づいて、前記ピクセル値をデブロックフィルタ処理するように構成された、Ｃ１５に記載のデバイス。
［Ｃ２７］
前記デバイスが、
マイクロプロセッサ、
集積回路（ＩＣ）、または
ワイヤレスハンドセットデバイスのうちの１つを備える、Ｃ１５に記載のデバイス。
［Ｃ２８］
ビデオデータを処理するためのデバイスであって、前記デバイスが、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定するための手段と、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定するための手段と、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定するための手段と、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理するための手段と
を備える、デバイス。
［Ｃ２９］
実行されたとき、処理するためのデバイスの１つまたは複数のプロセッサに、
第１のブロックの第１のピクセルから前記第１のブロックと第２のブロックとの間の境界までの幾何学的距離を決定することと、
第２のピクセルのピクセル値と第３のピクセルのピクセル値とに基づいてピクセル値差分を決定することと、
前記幾何学的距離と前記ピクセル値差分とに基づいて、前記第１のピクセルのピクセル値をデブロックフィルタ処理すべき量を決定することと、
デブロックフィルタ処理すべき前記量に基づいて、前記第１のピクセルの前記ピクセル値をデブロックフィルタ処理することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【国際調査報告】
2017513326.tif 000010
2017513326.tif 000011
2017513326.tif 000012