(57)【特許請求の範囲】
【請求項１】
ビデオデータを符号化するための方法であって、
ａ）サンプルピクセル値の第１のセットとサンプルピクセル値の第２のセットとに基づいて、第１の複数のピクセルラインのうちの１つのピクセルラインに関する第１の値を決定することと、ここにおいて、サンプル値の前記第１のセットは、前記ビデオデータの第１のブロックに含まれる前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに沿ったピクセルに対応し、サンプル値の前記第２のセットは、前記ビデオデータの第２のブロックに含まれる前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに沿ったピクセルに対応し、前記第１の複数のピクセルラインは、前記ビデオデータの前記第１のブロックの第１のエッジと直交し、前記第１のエッジは、前記ビデオデータの前記第１のブロックと前記ビデオデータの前記第２のブロックとの間の境界であり、
ｂ）前記第１の値が第１のしきい値、ｔｈｒｅｓｈｏｌｄ１、よりも大きく第２のしきい値、ｔｈｒｅｓｈｏｌｄ２、よりも小さいことを決定することに応答して、
ｃ）サンプル値の前記第１のセットのサンプル値とサンプル値の前記第２のセットのサンプル値との間の差分に基づいて、前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する第２の値を決定することと、
ｄ）前記ビデオデータの前記第１のブロックに含まれるサンプル値と、前記ビデオデータの第３のブロックに含まれるサンプル値とに基づいて、第２の複数のピクセルラインのうちの１つのピクセルラインに関する第２の値を決定することと、ここにおいて、前記第２の複数のピクセルラインは、前記ビデオデータの前記第１のブロックの第２のエッジと直交し、前記第２のエッジは、前記ビデオデータの前記第１のブロックと前記ビデオデータの前記第３のブロックとの間の境界であり、前記第１のエッジは、垂直エッジまたは水平エッジであり、前記第２のエッジは前記垂直エッジまたは前記水平エッジの異なるエッジである、
ｅ）前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値と、前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値とに基づいて平均値を決定することと、
ｆ）前記平均値に基づいて、前記第１のエッジまたは第２のエッジをデブロックすべきかどうかを決定するために１つまたは複数のデブロッキングパラメータオフセットを符号化すべきかどうかを決定することと、ここにおいて、前記オフセットは、第３のしきい値、ｔｈｒｅｓｈｏｌｄ３と、第４のしきい値、ｔｈｒｅｓｈｏｌｄ４と、前記決定された平均値とに基づいて決定される、を備える、方法。
【請求項２】
前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第１の値を決定することは、
前記第１のブロックに含まれる前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに沿った前記ピクセルに対応するサンプル値の前記第１のセットに基づいて第１の中間値を決定することと、
前記第２のブロックに含まれる前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに沿った前記ピクセルに対応するサンプル値の前記第２のセットに基づいて第２の中間値を決定することと、
前記第１の中間値と前記第２の中間値とに基づいて前記第１の値を決定することとを備える、請求項１に記載の方法。
【請求項３】
前記第１の中間値は、以下の式に従って決定され、
【数１】
0006345694.tif 000042
ここにおいて、ｄｐｉは前記第１の中間値であり、ｐ２ｉ、ｐ１ｉ、およびｐ０ｉはサンプル値の前記第１のセットに含まれるサンプル値であり、前記第２の中間値は、以下の式に従って概算的に決定され、
【数２】
0006345694.tif 000043
ここにおいて、ｄｑｉは前記第２の中間値であり、ｑ０ｉ、ｑ１ｉ、およびｑ２ｉはサンプル値の前記第２のセットに含まれるサンプル値であり、前記第１の値は、以下の式に従って概算的に決定され、
【数３】
0006345694.tif 000044
ここにおいて、ｄｉは前記第１の値である、請求項２に記載の方法。
【請求項４】
前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を決定することは、
前記第１の複数のピクセルラインの各ピクセルラインに関する第２の値を決定することと、
前記第１の複数のピクセルラインの各ピクセルラインに関する前記第２の値の合計を決定することとを備え、前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を決定することは、
前記第２の複数のピクセルラインの各ピクセルラインに関する第２の値を決定することと、
前記第２の複数のピクセルラインの各ピクセルラインに関する前記第２の値の合計を決定することとを備え、前記平均値を決定することは、
前記第１の複数のピクセルラインの各ピクセルラインに関する前記第２の値の前記合計と、前記第２の複数のピクセルラインの各ピクセルラインに関する前記第２の値の前記合計とに基づいて前記平均値を決定することとを備える、請求項１に記載の方法。
【請求項５】
第３のエッジは前記第１のブロックと第４のブロックとの間の境界であり、第４のエッジは前記第１のブロックと第５のブロックとの間の境界であり、前記第３のエッジは前記第１のエッジと平行であり、前記第４のエッジは前記第２のエッジと平行であり、前記方法は、
第３の複数のピクセルラインの各ピクセルラインに関する第２の値を決定することと、ここにおいて、前記第３の複数のピクセルラインは、前記第３のエッジと直交する、
前記第３の複数のピクセルラインの各ピクセルラインに関する前記第２の値の合計を決定することと、
第４の複数のピクセルラインの各ピクセルラインに関する第２の値を決定することと、ここにおいて、前記第４の複数のピクセルラインは、前記第４のエッジと直交する、
前記第４の複数のピクセルラインの各ピクセルラインに関する前記第２の値の合計を決定することとをさらに備え、前記平均値を決定することは、
前記第１の複数のピクセルラインの各ピクセルラインに関する前記第２の値の前記合計と、前記第２の複数のピクセルラインの各ピクセルラインに関する前記第２の値の前記合計と、前記第３の複数のピクセルラインの各ピクセルラインに関する前記第２の値の前記合計と、前記第４の複数のピクセルラインの各ピクセルラインに関する前記第２の値の前記合計とに基づいて、前記平均値を決定することを備える、請求項４に記載の方法。
【請求項６】
前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を決定することは、
前記第１のブロックに含まれるビデオデータの第１のサンプルと前記第２のブロックに含まれるビデオデータの第２のサンプルとに基づいて、前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を決定することを備え、
前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を決定することは、
前記第１のブロックに含まれるビデオデータの第３のサンプルと前記第３のブロックに含まれるビデオデータの第４のサンプルとに基づいて、前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を決定することを備える、請求項１に記載の方法。
【請求項７】
ビデオデータの前記第１のブロックはビデオデータのスライスに含まれ、前記方法は、
前記第１のエッジが水平エッジである場合、
前記スライスの水平エッジの数と前記スライスの幅とに基づいて、前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を調整することと、
前記スライスの垂直エッジの数量と前記スライスの高さとに基づいて、前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を調整することと、または、
前記第１のエッジが垂直エッジである場合、
前記スライスの垂直エッジの前記数と前記スライスの前記高さとに基づいて、前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を調整することと、
前記スライスの水平エッジの前記数と前記スライスの前記幅とに基づいて、前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を調整することとをさらに備え、
前記平均値を決定することは、
前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記調整された第２の値と、前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記調整された第２の値とに基づいて前記平均値を決定することを備える、請求項１に記載の方法。
【請求項８】
前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定すべきか否かを決定することは、
前記平均値がしきい値よりも大きい場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定することと、
前記平均値が前記しきい値よりも大きくない場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定しないこととを備える、請求項１に記載の方法。
【請求項９】
前記１つまたは複数のデブロッキングパラメータオフセットは、ｔｃオフセット値およびベータオフセット値を備え、ここにおいて、前記ｔｃオフセット値および前記ベータオフセット値は、以下の式に従って概算的に決定され、
【数４】
0006345694.tif 000045
【数５】
0006345694.tif 000046
ここにおいて、
ａｖｇは前記平均値であり、
ｔｈｒｅｓｈｏｌｄ３、ｔｈｒｅｓｈｏｌｄ４、ｔｈｒｅｓｈｏｌｄ５、およびｔｈｒｅｓｈｏｌｄ６はしきい値であり、
ｖａｌｕｅ２およびｖａｌｕｅ３はスケーリング値であり、
関数Ｃｌｉｐ３は、次のように定義される、
【数６】
0006345694.tif 000047
請求項１に記載の方法。
【請求項１０】
ビデオデータを符号化するためのデバイスであって、
サンプルピクセル値の第１のセットとサンプルピクセル値の第２のセットとに基づいて、第１の複数のピクセルラインのうちの１つのピクセルラインに関する第１の値を決定するための手段と、ここにおいて、サンプル値の前記第１のセットは、前記ビデオデータの第１のブロックに含まれる前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに沿ったピクセルに対応し、サンプル値の前記第２のセットは、前記ビデオデータの第２のブロックに含まれる前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに沿ったピクセルに対応し、前記第１の複数のピクセルラインは、前記ビデオデータの前記第１のブロックの第１のエッジと直交し、前記第１のエッジは、前記ビデオデータの前記第１のブロックと前記ビデオデータの前記第２のブロックとの間の境界であり、
前記第１の値が第１のしきい値よりも大きく第２のしきい値よりも小さいことを決定することに応答して、且つサンプル値の前記第１のセットのサンプル値とサンプル値の前記第２のセットのサンプル値との間の差分に基づいて、前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する第２の値を決定するための手段と、
前記値が前記少なくとも１つのしきい値を満足することを決定することに応答して、且つ前記ビデオデータの前記第１のブロックに含まれるサンプル値と、前記ビデオデータの第３のブロックに含まれるサンプル値とに基づいて、第２の複数のピクセルラインのうちの１つのピクセルラインに関する第２の値を決定するための手段と、ここにおいて、前記第２の複数のピクセルラインは、前記ビデオデータの前記第１のブロックの第２のエッジと直交し、前記第２のエッジは、前記ビデオデータの前記第１のブロックと前記ビデオデータの前記第３のブロックとの間の境界であり、前記第１のエッジは、垂直エッジまたは水平エッジであり、前記第２のエッジは前記垂直エッジまたは前記水平エッジの異なるエッジである、
前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値と、前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値とに基づいて平均値を決定するための手段と、
前記平均値に基づいて、前記第１のエッジまたは第２のエッジをデブロックすべきかどうかを決定するために１つまたは複数のデブロッキングパラメータオフセットを符号化すべきかどうか否かを決定するための手段と、ここにおいて、前記オフセットは、第３のしきい値と、第４のしきい値と、前記決定された平均値とに基づいて決定される、を備える、デバイス。
【請求項１１】
前記複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第１の値を決定するための前記手段は、
前記第１のブロックに含まれる前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに沿った前記ピクセルに対応するサンプル値の前記第１のセットに基づいて第１の中間値を決定するための手段と、
前記第２のブロックに含まれる前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに沿った前記ピクセルに対応するサンプル値の前記第２のセットに基づいて第２の中間値を決定するための手段と、
前記第１の中間値と前記第２の中間値とに基づいて前記第１の値を決定するための手段とを備える、請求項１０に記載のデバイス。
【請求項１２】
前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を決定するための前記手段は、
前記第１の複数のピクセルラインの各ピクセルラインに関する第２の値を決定するための手段と、
前記第１の複数のピクセルラインの各ピクセルラインに関する前記第２の値の合計を決定するための手段とを備え、前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を決定するための前記手段は、
前記第２の複数のピクセルラインの各ピクセルラインに関する第２の値を決定するための手段と、
前記第２の複数のピクセルラインの各ピクセルラインに関する前記第２の値の合計を決定するための手段とを備え、前記平均値を決定するための前記手段は、
前記第１の複数のピクセルラインの各ピクセルラインに関する前記第２の値の前記合計と、前記第２の複数のピクセルラインの各ピクセルラインに関する前記第２の値の前記合計とに基づいて前記平均値を決定するための手段を備える、請求項１０に記載のデバイス。
【請求項１３】
ビデオデータの前記第１のブロックはビデオデータのスライスに含まれ、前記デバイスは、
前記第１のエッジが水平エッジである場合、前記スライスの水平エッジの数と前記スライスの幅とに基づいて前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を調整するための手段と、
前記第１のエッジが水平エッジである場合、前記スライスの垂直エッジの数と前記スライスの高さとに基づいて前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を調整するための手段と、
前記第１のエッジが垂直エッジである場合、前記スライスの垂直エッジの前記数と前記スライスの前記高さとに基づいて前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を調整するための手段と、
前記第１のエッジが垂直エッジである場合、前記スライスの水平エッジの前記数と前記スライスの前記幅とに基づいて前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記第２の値を調整するための手段とをさらに備え、
前記平均値を決定するための前記手段は、
前記第１の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記調整された第２の値と、前記第２の複数のピクセルラインのうちの前記１つのピクセルラインに関する前記調整された第２の値とに基づいて、前記平均値を決定するための手段を備え、および/または前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定すべきか否かを決定するための前記手段は、
前記平均値がしきい値よりも大きい場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定するための手段と、
前記平均値が前記しきい値よりも大きくない場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定しないための手段とを備える、請求項１０に記載のデバイス。
【請求項１４】
実行されたとき、１つまたは複数のプロセッサに請求項１から９のうちのいずれか１つの方法を実行させる命令を記憶した非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本出願は、その内容全体が参照により本明細書に組み込まれる、２０１３年１月９日に出願された米国仮出願第６１／７５０，７３７号の利益を主張する。
【０００２】
[0002]  本開示は、ビデオコーディングに関し、より詳細には、ビデオデータをデブロックすること（deblocking）に関する。
【背景技術】
【０００３】
[0003]  デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]  ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（video slice）（すなわち、ビデオフレームまたはビデオフレームの一部）はビデオブロックに区分され得、これらのビデオブロックは、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることがある。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック内の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]  空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、予測ブロックがどのように作成されるかを定義するイントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初は２次元アレイで構成され、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]  概して、本開示は、ビデオデータのコーディングブロック、たとえば、変換ユニット（ＴＵ：transform unit）、コーディングユニット（ＣＵ：coding unit）、または予測ユニット（ＰＵ：prediction unit）をデブロッキング（deblocking）するための技法について説明する。ブロックベースのビデオコーディング技法は、個別にコーディングされたブロック間の境界（boundary）またはエッジ（edge）が知覚され得る、「ブロッキネス（blockiness）」アーティファクト（artifact）に時折つながることがある。
【０００７】
[0007]  概して、デブロッキングは、２つのステップ、すなわち、２つのブロック間の特定のエッジがデブロッキングされるべきかどうかを決定することと、次いで、エッジがデブロッキングされるべきという決定が行われるエッジをデブロッキングすることとを含む。１つまたは複数のパラメータは、デブロッキングの決定（たとえば、エッジをデブロッキングすべきかどうか）のために使用されるフィルタ処理強度および係数を決定するために使用され得る。
【０００８】
[0008]  本開示の技法は、そのようなエッジに適用されるデブロッキング関数を改善する（たとえば、エッジの出現を低減させる）ことができ、より詳細には、エッジをデブロッキングすべきかどうかと、エッジをどのようにデブロッキングすべきかとの決定を改善し得る。詳細には、本開示の技法によれば、ビデオエンコーダは、デブロッキングプロセスを制御するためにビデオデコーダにシグナリングされ得る、１つまたは複数のデブロッキングパラメータオフセット（deblocking parameter offset）を符号化すべきか否かを決定し得る。
【０００９】
[0009]  一例では、ビデオデータを符号化するための方法は、第１の複数のラインのうちの１つのラインに関する第１の値を決定することを含み、第１の複数のラインは、ビデオデータのブロックの第１のエッジと直交（perpendicular）する。この例では、本方法は、第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、第１の複数のラインのうちの１つのラインに関する第２の値を決定することと、第２の複数のラインのうちの１つのラインに関する第２の値を決定することとを含むこともでき、第２の複数のラインはビデオデータのブロックの第２のエッジと直交し、第１のエッジは垂直エッジまたは水平エッジであり、第２のエッジは垂直エッジまたは水平エッジの異なるエッジである。この例では、本方法は、第１の複数のラインのうちの１つのラインに関する第２の値と、第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定することと、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定することとを含むこともできる。
【００１０】
[0010]  別の例では、ビデオデータを符号化するためのデバイスは、ビデオエンコーダを含む。この例では、ビデオエンコーダは、第１の複数のラインのうちの１つのラインに関する第１の値を決定するように構成され得、第１の複数のラインは、ビデオデータのブロックの第１のエッジと直交する。この例では、ビデオエンコーダはまた、第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、第１の複数のラインのうちの１つのラインに関する第２の値を決定し、第２の複数のラインのうちの１つのラインに関する第２の値を決定するように構成され得、第２の複数のラインはビデオデータのブロックの第２のエッジと直交し、第１のエッジは垂直エッジまたは水平エッジであり、第２のエッジは垂直エッジまたは水平エッジの異なるエッジである。この例では、ビデオ符号器はまた、第１の複数のラインのうちの１つのラインに関する第２の値と、第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定し、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定するように構成され得る。
【００１１】
[0011]  別の例では、ビデオデータを符号化するためのデバイスは、第１の複数のラインのうちの１つのラインに関する第１の値を決定するための手段を含み、第１の複数のラインは、ビデオデータのブロックの第１のエッジと直交する。この例では、本デバイスは、第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、第１の複数のラインのうちの１つのラインに関する第２の値を決定するための手段と、値が少なくとも１つのしきい値を満足することを決定することに応答して、第２の複数のラインのうちの１つのラインに関する第２の値を決定するための手段とを含むこともでき、第２の複数のラインはビデオデータのブロックの第２のエッジと直交し、第１のエッジは垂直エッジまたは水平エッジであり、第２のエッジは垂直エッジまたは水平エッジの異なるエッジである。この例では、本デバイスは、第１の複数のラインのうちの１つのラインに関する第２の値と、第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定するための手段と、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定するための手段とを含むこともできる。
【００１２】
[0012]  別の例では、非一時的コンピュータ可読記憶媒体は、実行されるとき、１つまたは複数のプロセッサにビデオデータを符号化させる命令を含む。この例では、１つまたは複数のプロセッサにビデオデータを符号化させる命令は、１つまたは複数のプロセッサに、第１の複数のラインのうちの１つのラインに関する第１の値を決定させる命令を含み、第１の複数のラインは、ビデオデータのブロックの第１のエッジと直交する。この例では、１つまたは複数のプロセッサにビデオデータを符号化させる命令は、１つまたは複数のプロセッサに、第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、第１の複数のラインのうちの１つのラインに関する第２の値を決定させ、第２の複数のラインのうちの１つのラインに関する第２の値を決定させる命令を含むこともでき、第２の複数のラインはビデオデータのブロックの第２のエッジと直交し、第１のエッジは垂直エッジまたは水平エッジであり、第２のエッジは垂直エッジまたは水平エッジの異なるエッジである。この例では、１つまたは複数のプロセッサにビデオデータを符号化させる命令は、１つまたは複数のプロセッサに、第１の複数のラインのうちの１つのラインに関する第２の値と、第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定させ、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定させる命令を含むこともできる。
【００１３】
[0013]  本発明の１つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。本発明の他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１４】
【図１】[0014]  本開示で説明する技法による、デブロッキングフィルタパラメータ（deblocking filter parameter）をコーディングするかどうかを決定し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】[0015]  低減されたビットストリームオーバーヘッド（bitstream overhead）でデブロッキングフィルタパラメータを符号化するために本開示で説明する技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図３】[0016]  ビデオスライスに適用されるデブロッキングフィルタを定義するために使用されるデブロッキングフィルタパラメータを復号するために本開示で説明する技法を実装し得るビデオデコーダの一例を示すブロック図。
【図４】[0017]  本開示の１つまたは複数の技法による、デブロッキングフィルタパラメータを符号化するために使用され得る、ビデオデータのブロックの例を示すブロック図。
【図５】[0018]  本開示の一つの実例を与える例示的なビデオ符号化方法を示すフロー図。
【発明を実施するための形態】
【００１５】
[0019]  ビデオエンコーダおよびビデオデコーダなどのビデオ符号器は、概して、空間的予測（すなわち、イントラ予測（intra-prediction））または時間的予測（すなわち、インター予測（inter-prediction））のいずれかを使用してピクチャのシーケンスのうちの個々のピクチャをコーディングするように構成される。より詳細には、ビデオ符号器は、イントラ予測またはインター予測を使用してピクチャのブロックを予測し得る。ビデオ符号器は、ブロックに関する残差値（residual value）をコーディングすることができ、残差値は、予測されたブロックと、元の（すなわち、コーディングされていない）ブロックとの間のピクセルごとの差に対応する。ビデオ符号器は、残差ブロックの値をピクセル領域から周波数領域に変換するために残差ブロックを変換し得る。さらに、ビデオ符号器は、量子化パラメータ（ＱＰ：quantization parameter）によって示された特定の量子化程度を使用して、変換された残差ブロックの変換係数を量子化し得る。
【００１６】
[0020]  いくつかの場合には、ブロックベースのコーディングは、このように、ピクチャのブロック間のブロッキネスアーティファクトにつながる可能性がある。すなわち、フレームをブロックに分割し、ブロックをコーディングし、次いでブロックを復号した後に、ブロック間のエッジにおける知覚可能なアーティファクトが発生し得る。したがって、ビデオ符号器は、ブロッキネスアーティファクトを除去するために、様々なデブロッキングプロシージャを実行し得る。
【００１７】
[0021]  たとえば、ビデオエンコーダは、フレームのビデオデータを符号化し、その後、符号化されたビデオデータを復号し、次いで、参照ビデオデータとして使用するために復号されたビデオデータにデブロッキングフィルタを適用し得る。参照データは、たとえば、後でコーディングされるビデオデータのインター予測のために、ビデオエンコーダが使用し得る１つまたは複数のピクチャからのデータであり得る。ビデオエンコーダは、インター予測のために１つまたは複数のフレームを参照フレームストア内に記憶し得る。
【００１８】
[0022]  参照データとして使用するために、復号されたビデオデータを記憶する前に、ビデオエンコーダまたはビデオデコーダなどの、ビデオコーディングデバイスによって実行されるそのようなデブロッキングフィルタ処理は、概して「ループ内」フィルタ処理と呼ばれる。「ループ内」フィルタ処理では、ビデオエンコーダまたはデコーダは、ビデオループ内でデブロッキングを実行し得る。ビデオエンコーダは、未加工ビデオデータを受信することから始まり、ビデオデータを符号化し、符号化されたビデオデータを復号し、復号されたビデオデータをデブロッキングし、デブロッキングされたピクチャを参照ピクチャメモリに記憶し得る。
【００１９】
[0023]  ビデオデコーダは、受信されたビデオデータを復号し、次いで、エンコーダによって適用されたものと同じデブロッキングフィルタを、復号されたビデオデータに適用するように構成され得る。ビデオデコーダは、たとえばデコーダを含むデバイスのユーザにビデオデータを表示するために、また、復号されるべき続くビデオデータの参照ビデオとして使用するために、たとえば参照ピクチャメモリに記憶するために、復号されたビデオデータをデブロッキングし得る。エンコーダとデコーダの両方を同じデブロッキング技法を適用するように構成することによって、デブロッキングが、参照のためにデブロッキングされたビデオデータを使用して、その後コーディングされたビデオデータに誤差を導入しないように、エンコーダとデコーダとは同期され得る。
【００２０】
[0024]  概して、デブロッキングは、２つのステップ、すなわち、２つのブロック間の特定のエッジがデブロッキングされるべきかどうかを決定することと、次いで、エッジがデブロッキングされるべきという決定が行われるエッジをデブロッキングすることとを含む。デブロッキングプロセスは、本開示では、デブロッキング強度（deblocking strength）とも呼ばれる境界フィルタ処理強度（boundary filtering strength）値に影響を受ける。ベータ（β）およびｔｃ値は、たとえば、エッジをデブロッキングすべきかどうかなどの、デブロッキング決定に使用されるフィルタ処理強度および係数と、エッジをデブロッキングすることを決定した後の使用すべきフィルタのタイプ（たとえば、強いまたは弱い）と、弱いフィルタが選択される場合のフィルタの幅とを決定するために使用され得る。
【００２１】
[0025]  いくつかの例では、ビデオエンコーダは、１つまたは複数のデブロッキングパラメータオフセット値（すなわち、βに関するデブロッキングパラメータオフセット値およびｔｃに関するデブロッキングパラメータオフセット値オフセット値）をシグナリングすることによってビデオデコーダにデブロッキングパラメータ（すなわち、βおよびｔｃ）をシグナリングし得る。
【００２２】
[0026]  本開示の１つまたは複数の技法によれば、ビデオエンコーダは、１つまたは複数のデブロッキングパラメータオフセット値を符号化すべきか否かを決定し得る。いくつかの例では、ビデオエンコーダは、スライスレベルにおいて、ビデオデータのピクチャパラメータセット（ＰＰＳ：picture parameter set）レベルにおいて、その両方において、またはそのいずれでもないレベルにおいて、１つまたは複数のデブロッキングパラメータオフセット値を符号化すべきか否かを決定し得る。
【００２３】
[0027]  いくつかの例では、ビデオエンコーダは、各ピクチャまたはピクチャ領域において、大きいブロックアーティファクト（large block artifact）などのアーティファクトを分析し得るブロッキネスメトリック（blockiness metric）を適用することができ、ビデオデコーダにシグナリングされ得る適切なデブロッキングオフセットパラメータを決定し得る。たとえば、エンコーダのデブロッキングユニットは、１つまたは複数のブロッキネスメトリックを決定し、コーディングされたビットストリーム中でそのメトリック（たとえば、オフセットパラメータ）を符号化し得る。次いで、デコーダのデブロッキングユニットは、コーディングされたビットストリームを復号すると、同じメトリックを適用し得る。
【００２４】
[0028]  いくつかの例では、エンコーダは、ブロック格子の垂直エッジまたは水平エッジを分析し得る。いくつかの例では、エンコーダは、ピクチャ中のブロック（たとえば、３２×３２ブロック格子）の垂直エッジの１つまたは両方と、水平エッジの１つまたは両方とを分析し得る。本明細書では、いくつかの特定の例について説明されるが、概して、いかなるブロックサイズも分析され得る。いくつかの例では、最大変換サイズに対応するブロックサイズが分析され得る。
【００２５】
[0029]  いくつかの例では、エンコーダは、第１の複数のラインのうちの１つのラインに関する第１の値を決定し得る。第１の複数のラインのうちの１つのラインは、ブロックの第１のエッジと直交する可能性がある。たとえば、エンコーダは、下記の式（１）に従って第１の中間値ｄｐｉを決定し得る。いくつかの例では、第１の中間値は、ラインに対応するビデオデータのサンプル値の第１のセットに基づいて決定され得る。いくつかの例では、サンプル値の第１のセットは、そのブロックに含まれ得る。エンコーダは、下記の式（２）に従って第２の中間値ｄｑｉも決定し得る。いくつかの例では、第２の中間値は、ラインに対応するビデオデータのサンプル値の第２セットに基づいて決定され得る。いくつかの例では、サンプル値の第２のセットは、異なる隣接ブロックに含まれ得る。最後に、エンコーダは、下記の式（３）に従って第１の値ｄｉを決定し得る。
【数１】
0006345694.tif 000002
【数２】
0006345694.tif 000003
【数３】
0006345694.tif 000004
【００２６】
[0030]  次いで、エンコーダは、第１の値がしきい値を満足するかどうかを決定し得る。たとえば、エンコーダは、第１の値が第１のしきい値よりも大きく第２のしきい値よりも小さい場合、第１の値がしきい値を満足することを決定し得る。いくつかの例では、エンコーダは、第１の値が少なくとも１つのしきい値を満足することを決定することによって、ビデオ中で自然に発生するエッジの不要なデブロッキングを防止し得る。いくつかの例では、エンコーダは、第１の値がしきい値を満足するか否かを決定する前に第１の値をスケーリング（scaling）し得る。エンコーダは、下記の式（４）に従ってスケーリングおよび決定を実行し得る。
【数４】
0006345694.tif 000005
【００２７】
[0031]  第１の値がしきい値を満足しないとエンコーダが決定する場合、エンコーダは、第１のブロックのエッジと直交する別のラインに関する第１の値を決定し得る。いくつかの例では、他のラインは、第１の複数のラインに含まれ得、それは、他のラインが第１のブロックの第１のエッジと直交することを意味する。いくつかの例では、他のラインは第１のブロックの別のエッジと直交し得る。いくつかの例では、エンコーダは、第１のブロックの各エッジと直交する各ラインに関する第１の値を決定し、決定された各第１の値を１つまたは複数のしきい値と比較し得る。決定された第１の値のいずれも１つまたは複数のしきい値を満足しない場合、エンコーダは、１つまたは複数のデブロッキングパラメータオフセットを決定しないことを決定し得る。
【００２８】
[0032]  第１の値がしきい値を満足することをエンコーダが決定する場合、エンコーダは、複数のラインのうちの１つのラインに関する第２の値を決定し、第２の複数のラインのうちの１つのラインに関する第２の値を決定し得る。いくつかの例では、第２の複数のラインは、ブロック格子の第２のエッジと直交する可能性がある。いくつかの例では、第１のエッジは、垂直エッジまたは水平エッジであり得る。いくつかの例では、第２のエッジは、垂直エッジまたは水平エッジの異なるエッジであり得る。言い換えれば、第１のエッジが垂直エッジである場合、第２のエッジは水平エッジであり、その逆も同様である。いくつかの例では、第２のエッジは、第１のブロックと第３のブロックとの間の境界であり得る。いくつかの例では、エンコーダは、第１のブロックに含まれるビデオデータの第３のサンプルと第３のブロックに含まれるビデオデータの第４のサンプルとに基づいて、第２の複数のラインのうちの１つのラインに関する第２の値を決定し得る。いくつかの例では、エンコーダは、下記の式（５）に従って、第１の複数のラインのうちの１つのラインに関する第２の値を決定し得る。いくつかの例では、エンコーダは、下記の式（６）に従って、第２の複数のラインのうちの１つのラインに関する第２の値を決定し得る。
【数５】
0006345694.tif 000006
【数６】
0006345694.tif 000007
【００２９】
[0033]  式（５）では、ｐ０ｉは、第１の複数のラインのうちの１つのライン（すなわち、ｉ）に対応する第１のサンプルであり得、ｑ０ｉは、第１の複数のラインのうちの１つのラインに対応する第２のサンプルであり得る。式（６）では、ｐ０ｊは、第２の複数のラインのうちの１つのライン（すなわち、ｊ）に対応する第１のサンプルであり得、ｑ０ｊは、第２の複数のラインのうちの１つのラインに対応する第２のサンプルであり得る。
【００３０】
[0034]  いくつかの例では、エンコーダは、第３の複数のラインのうちの１つのラインに関する第２の値を決定し、第４の複数のラインのうちの１つのラインに関する第２の値を決定し得る。いくつかの例では、エンコーダは、第１の複数のラインおよび第２の複数のラインに関する第２の値を決定するのと同様の方法を使用して（すなわち、エッジの両側のブロックからのサンプルを使用することによって）、第３の複数のラインのうちの１つのラインと第４の複数のラインのうちの１つのラインとに関する第２の値を決定し得る。そのような例では、第３の複数のラインは、第１のブロックと第４のブロックとの間の境界であり得る第３のエッジと直交し得る。そのような例では、第４の複数のラインは、第１のブロックと第５のブロックとの間の境界であり得る第４のエッジと直交し得る。いくつかの例では、第３のエッジは、第１のエッジと平行であり得、第４のエッジは、第２のエッジと平行であり得る。言い換えれば、エンコーダは、第１のブロックの４つのすべてのエッジを分析し得る。
【００３１】
[0035]  いくつかの例では、エンコーダは、第１の複数のラインの各ラインに関する第２の値と、第２の複数のラインの各ラインに関する第２の値とを決定し得る。いくつかの例では、次いで、エンコーダは、第１の複数のラインの各ラインに関する第２の値の合計と、第２の複数のラインの各ラインに関する第２の値の合計とを決定し得る。たとえば、エンコーダは、式（７）による、第１の複数のラインの各ラインに関する第２の値の合計と、式（８）による、第２の複数のラインの各ラインに関する第２の値の合計とを決定し得る。
【数７】
0006345694.tif 000008
【数８】
0006345694.tif 000009
【００３２】
[0036]  式（７）では、ｎは、第１の複数のラインに含まれるラインの数に相当する可能性がある。式（８）では、ｎは、第２の複数のラインに含まれるラインの数に相当する可能性がある。
【００３３】
[0037]  いくつかの例では、エンコーダは、第３の複数のラインの各ラインに関する第２の値と、第４の複数のラインの各ラインに関する第２の値とを決定し得る。いくつかの例では、次いで、エンコーダは、第３の複数のラインの各ラインに関する第２の値の合計と、第４の複数のラインの各ラインに関する第２の値の合計とを決定し得る。
【００３４】
[0038]  次いで、エンコーダは、第１の複数のラインのうちの１つのラインに関する第２の値と、第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定し得る。たとえば、エンコーダは、平均値を決定するために、第２の複数のラインのうちの１つのラインに関する第２の値に、第１の複数のラインに関する第２の値を加算し、その合計を２で除算し得る。
【００３５】
[0039]  次いで、エンコーダは、決定された平均値に基づいて、１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定し得る。たとえば、エンコーダは、第１のブロックと第２のブロックとの間のエッジに最小のアーティファクトが存在することを決定し得る。
【００３６】
[0040]  エンコーダが１つまたは複数のデブロッキングパラメータオフセットを符号化することを決定する場合、エンコーダは、決定されたオフセットをデコーダにシグナリングし得る。いくつかの例では、オフセットは、ビデオデータの各スライス、ビデオデータの各ＰＰＳ、その両方、またはそのいずれでもないものに関してデコーダにシグナリングされ得る。コーディングされたビットストリームを受信すると、オフセットは、デコーダによって受信され適用され得る。
【００３７】
[0041]  図１は、本開示で説明する技法による、デブロッキングフィルタパラメータをコーディングし得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００３８】
[0042]  宛先デバイス１４は、リンク１６を介して復号されるべき符号化ビデオデータを受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、ソースデバイス１２が、符号化ビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００３９】
[0043]  別の例では、リンク１６は、ソースデバイス１２によって生成される符号化ビデオデータを記憶し得、宛先デバイス１４が必要に応じてディスクアクセスまたはカードアクセスを介してアクセスし得る記憶媒体に対応し得る。記憶媒体は、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々なローカルにアクセスされたデータ記憶媒体のいずれかを含み得る。さらなる一例では、リンク１６は、ファイルサーバ、あるいは、ソースデバイス１２によって生成された符号化されたビデオを保持し得、宛先デバイス１４が必要に応じてストリーミングまたはダウンロードを介してアクセスし得る別の中間ストレージデバイスに対応し得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００４０】
[0044]  本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００４１】
[0045]  図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。
【００４２】
[0046]  キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に直接送信され得る。符号化ビデオデータはまた、復号および／または再生のための宛先デバイス１４による後のアクセスのために記憶媒体またはファイルサーバ上に記憶され得る。
【００４３】
[0047]  宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介して符号化ビデオデータを受信する。リンク１６を介して通信されるか、またはデータ記憶媒体に与えられる符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０などのビデオデコーダが使用するための、ビデオエンコーダ２０によって生成される様々なシンタックス要素（syntax element）を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される符号化ビデオデータとともに含まれ得る。
【００４４】
[0048]  ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００４５】
[0049]  ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ  １０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００４６】
[0050]  図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４７】
[0051]  ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００４８】
[0052]  ビデオコーディング共同研究部会（ＪＣＴ−ＶＣ：Joint Collaborative Team on Video Coding）はＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００４９】
[0053]  概して、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプル（luma sample）とクロマサンプル（chroma sample）の両方を含む一連のツリーブロック（treeblock）または最大コーディングユニット（ＬＣＵ：largest coding unit）に分割され得ることを記載している。ツリーブロックは、Ｈ．２６４規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木（quadtree）に従ってコーディングユニット（ＣＵ: coding unit）に分割され得る。たとえば、４分木のルートノード（root node）としてのツリーブロックは、４つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノード（leaf node）としての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
【００５０】
[0054]  ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ：prediction unit）および変換ユニット（ＴＵ：transform unit）とを含む。ＣＵのサイズはコーディングノードのサイズに対応する。ＣＵのサイズは、８×８ピクセルから最大６４×６４以上のピクセルをもつツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連するシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。ＰＵは、形状が方形または非方形になるように区分され得る。ＣＵに関連するシンタックスデータは、たとえば、４分木に従って、ＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状が方形または非方形になるように区分され得る。
【００５１】
[0055]  概して、ＰＵは、予測プロセスに関係するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。ＰＵについての動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０またはリスト１）を記述し得る。
【００５２】
[0056]  概して、ＴＵは、変換プロセスと量子化プロセスとのために使用される。１つまたは複数のＰＵを有するＣＵはまた、１つまたは複数のＴＵを含み得る。予測の後に、ビデオエンコーダ２０は、ＰＵに対応する残差値を計算し得る。残差値は、エントロピーコーディングのためのシリアル化変換係数（serialized transform coefficient）を生成するために、ＴＵを使用して変換係数に変換され、量子化され、走査され得るピクセル差分値を備える。本開示では、一般に、ＣＵのコーディングノードを指すために「ビデオブロック（video block）」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノードならびにＰＵおよびＴＵを含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指す「ビデオブロック」という用語も使用し得る。
【００５３】
[0057]  ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ（ＧＯＰ：group of picture）は、概して、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
【００５４】
[0058]  一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００５５】
[0059]  本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、Ｎは、非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備え得、ただし、Ｍは必ずしもＮに等しいとは限らない。
【００５６】
[0060]  ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備え得、ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＴＵを変換して、ＣＵの変換係数を生成し得る。
【００５７】
[0061]  変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、概して、さらなる圧縮を提供する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度（bit depth）を低減し得る。
【００５８】
[0062]  いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。量子化変換係数を走査して１次元ベクトルを形成した後に、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率区間区分エントロピー符号（ＰＩＰＥ：probability interval partitioning entropy code）または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための、符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【００５９】
[0063]  ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非０であるか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００６０】
[0064]  宛先デバイス１４中のビデオデコーダ３０にビットストリーム中で符号化ビデオデータをシグナリングすることに加えて、ビデオエンコーダ２０はまた、符号化ビデオデータを復号し、後でコーディングされるブロックのためのイントラ予測またはインター予測プロセス中に参照データとして使用するためにビデオフレームまたはピクチャ内のブロックを再構成し得る。しかしながら、ビデオフレームまたはピクチャをブロック（たとえば、それらのＬＣＵおよびサブＣＵ）に分割し、ブロックを符号化し、次いでブロックを復号した後に、ブロック間のエッジに知覚可能なアーティファクトが発生し得る。これらの「ブロッキネス（blockiness）」アーティファクトを除去するために、ビデオエンコーダ２０は、参照ブロックとして記憶するより前に、復号されたビデオブロックにデブロッキングフィルタを適用し得る。同様に、ビデオデコーダ３０は、ソースデバイス１２のビデオエンコーダ２０からビットストリーム中で受信されたビデオデータを復号し、ビデオデータを表示するために、ならびに後で復号されるビデオデータについての参照データとしてビデオデータを使用するために、復号ビデオデータに同じまたは同様のデブロッキングフィルタを適用するように構成され得る。
【００６１】
[0065]  参照データとして使用するためのデータを記憶するより前に、ビデオエンコーダ２０またはビデオデコーダ３０などのビデオコーディングデバイスによって実行されるデブロッキングフィルタ処理は、フィルタ処理がコーディングループ内で実行されるので、一般に「ループ内（in-loop）」フィルタ処理と呼ばれる。ビデオエンコーダ２０とビデオデコーダ３０の両方を同じデブロッキング技法を適用するように構成することによって、ビデオコーディングデバイスは同期され得、それにより、デブロッキングが、参照データとしてデブロックされたビデオデータを使用する後でコーディングされるビデオデータに対して誤差をもたらさないようになる。デブロッキングフィルタ処理はまた、フィルタ処理されていないデータが予測のために使用され、予測のためには使用されない復号された出力にのみデブロッキングが適用されることを意味する「ループ後（post loop）」に実行され得る。
【００６２】
[0066]  ビデオエンコーダ２０およびビデオデコーダ３０は、概して、ＰＵエッジとＴＵエッジとを含む、ビデオブロックのエッジごとに、エッジをデブロックするためにデブロッキングフィルタを適用すべきかどうかを決定するように構成される。ビデオコーディングデバイスは、エッジ、たとえば、８つのピクセルのラインに対して直角なピクセルの１つまたは複数のラインの分析に基づいて、エッジをデブロックすべきかどうかを決定するように構成され得る。したがって、たとえば、垂直エッジでは、ビデオコーディングデバイスは、共通ラインに沿ってエッジの左側の４つのピクセルおよび右側の４つのピクセルを検査することによって、エッジをデブロックすべきかどうかを決定し得る。選択されるピクセルの数は、概して、デブロックするための最小ブロック、たとえば、８×８ピクセルに対応する。このようにして、分析のために使用されるピクセルのラインは、エッジのいずれかの側に、たとえば、エッジの左側または右側に、あるいはエッジの上または下にピクセルをもつ、ビデオブロックのＰＵエッジおよびＴＵエッジにわたって伸張する。エッジに対してデブロッキングを実行すべきかどうかの分析のために使用されるピクセルのラインは、サポートピクセルのセットまたは単に「サポート（support）」とも呼ばれる。
【００６３】
[0067]  ビデオコーディングデバイスは、特定のエッジのサポートに基づいてデブロッキング決定関数を実行するように構成され得る。概して、デブロッキング決定関数は、サポートピクセル内の高周波変化を検出するように構成される。一般に、高周波変化が検出されたとき、デブロッキング決定関数は、知覚可能なアーティファクトがエッジに存在し、デブロッキングが行われるべきであるという指示を与える。デブロッキング決定関数はまた、サポートに基づいてエッジに適用すべきデブロッキングフィルタのタイプおよび強度を決定するように構成され得る。デブロッキングフィルタのタイプおよび強度は、しきい値ｔcおよびβによって示され得る。
【００６４】
[0068]  本開示は、デブロッキングフィルタオフセットパラメータ（たとえば、ｔｃ＿ｏｆｆｓｅｔ  ａｎｄ  ｂｅｔａ＿ｏｆｆｓｅｔ）をシグナリングするための技法についても説明する。デブロッキングフィルタパラメータは、現在のスライスの復号されたビデオブロックからのブロッキネスアーティファクトを低減または除去するために使用されるデブロッキングフィルタを定義する。デブロッキングフィルタパラメータは、特定の大きいサイズのブロックに関してエンコーダによって生成されたシンタックス要素を含む。
【００６５】
[0069]  デブロッキングフィルタパラメータは、ピクチャレイヤパラメータセットおよびスライスヘッダ（slice header）のうちの１つまたは複数中にコーディングされ得る。ピクチャレイヤパラメータセットは、ピクチャパラメータセット（ＰＰＳ：picture parameter set）または適応パラメータセット（ＡＰＳ：adaptation parameter set）のうちのいずれかを備え得る。ＰＰＳは、ＰＰＳを参照するピクチャ間で変化する可能性が低いデータを含んでいるピクチャレイヤパラメータセットである。ＡＰＳは、ピクチャごとに変化する可能性があるピクチャ適応データとの使用が意図されたピクチャレイヤパラメータセットである。一例では、ＡＰＳは、デブロッキングフィルタと、適応ループフィルタ（ＡＬＦ：Adaptive Loop Filter）と、サンプル適応オフセット（ＳＡＯ：Sample Adaptive Offset）とについてのパラメータを含む。デブロッキングフィルタ、ＡＬＦ、またはＳＡＯパラメータが変化するときに不変のＰＰＳデータが繰り返される必要がないので、ＰＰＳの代わりにＡＰＳ中にこれらのパラメータを含めることは、ビデオシーケンスのための送信されるビット数を低減させ得る。図２および図３は、本明細書で説明する技法を実行するデブロッキングユニットであり得るデブロッキングフィルタを示す。たとえば、デコーダのデブロッキングユニットは、１つまたは複数のブロッキネスメトリックを決定し、コーディングされたビットストリーム中でそのメトリック（たとえば、オフセットパラメータ）を符号化し得る。次いで、デコーダのデブロッキングユニットは、コーディングされたビットストリームを復号すると、同じメトリックを適用し得る。ＡＬＦフィルタおよびＳＡＯフィルタは、簡単のために図２および図３には示されていないが、これらのタイプのフィルタも使用され得る。
【００６６】
[0070]  図２は、低減されたビットストリームオーバーヘッド（bitstream overhead）でデブロッキングフィルタパラメータを符号化するために本開示で説明する技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス（video slice）内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【００６７】
[0071]  図２の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測処理ユニット４６と、参照ピクチャメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換処理ユニット６０と、加算器６２とを含む。再構成されたビデオブロックからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ６３も含まれる。
【００６８】
[0072]  図２に示すように、ビデオエンコーダ２０は、符号化されるべきビデオスライス内の現在のビデオブロックを受信する。スライスは複数のビデオブロックに分割され得る。モード選択ユニット４０は、誤差結果に基づいて、現在のビデオブロックについて、コーディングモードのうちの１つ、すなわちイントラモードまたはインターモードを選択し得る。イントラモードまたはインターモードが選択された場合、モード選択ユニット４０は、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器５０に与え、参照ピクチャメモリ６４に記憶された参照ピクチャ内の参照ブロックとして使用するために符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器６２に与え得る。イントラ予測処理ユニット４６は、空間圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測コーディングを実行する。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測コーディングを実行する。
【００６９】
[0073]  インターコーディングの場合、動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをＰスライスまたはＢスライスに指定し得る。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。
【００７０】
[0074]  予測ブロックは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのＰＵにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を計算し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【００７１】
[0075]  動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００７２】
[0076]  動き補償ユニット４４によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。現在のビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ２０は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【００７３】
[0077]  動き補償ユニット４４が現在のビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ２０は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、変換処理ユニット５２に適用され得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット５２は、残差ビデオデータをピクセル領域からの周波数領域などの変換領域に変換し得る。
【００７４】
[0078]  変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【００７５】
[0079]  量子化の後、エントロピー符号化ユニット５６は量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、または別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後に、符号化ビットストリームは、ビデオデコーダ３０に送信されるか、あるいはビデオデコーダ３０が後で送信するかまたは取り出すためにアーカイブされ得る。エントロピー符号化ユニット５６はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【００７６】
[0080]  逆量子化ユニット５８および逆変換処理ユニット６０は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ６４に記憶するための参照ピクチャの参照ブロックを生成する。参照ブロックは、ブロッキネスアーティファクトを除去するためにデブロッキングフィルタ６３によってフィルタ処理される。参照ブロックは、次いで、参照ピクチャメモリ６４に記憶される。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット４２と動き補償ユニット４４とによって参照ブロックとして使用され得る。
【００７７】
[0081]  本開示の技法によれば、ビデオエンコーダ２０は、加算器６２の出力を選択的にフィルタ処理するデブロッキングフィルタ６３を含む。デブロッキングフィルタ６３は、加算器６２の出力、すなわち再構成ビデオブロックをデブロッキングするために本開示の技法のいずれかまたはすべてを実行する。デブロッキングフィルタ６３によってフィルタ処理された再構成ビデオブロックは、後にコーディングされるピクチャ中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００７８】
[0082]  特に、デブロッキングフィルタ６３は、逆量子化され逆変換された残差データに加算された、動き補償ユニット４４またはイントラ予測ユニット４６のいずれかから受信された予測データに対応する再構成されたビデオデータを加算器６２から受信する。このように、デブロッキングフィルタ６３は、ビデオデータの復号されたブロック、たとえば、ＬＣＵのＣＵ、スライスもしくはフレームのＬＣＵ、ＣＵのＰＵ、および／またはＣＵのＴＵを受信する。概して、デブロッキングフィルタ６３は、ビデオデータのブロックを選択的にフィルタ処理する。
【００７９】
[0083]  デブロッキングフィルタ６３は、概して、エッジをデブロッキングすべきかどうかを決定するために、２つのブロック間のエッジの近くの２つの隣接ブロック（たとえば、２つのＣＵ、ＰＵ、またはＴＵ）のピクセルを分析するように構成される。より詳細には、デブロッキングフィルタ６３は、値の高周波変化が検出されたとき、エッジの近くのピクセルの値を改変し得る。デブロッキングフィルタ６３はまた、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
【００８０】
[0084]  デブロッキングフィルタ６３は、サポートの既定の適応されたセットを含むか、またはオンザフライでサポートの適応されたセットを計算し得る。それにより、デブロッキングフィルタ６３は、近くのエッジ間のフィルタ処理結果依存性を回避するために、近くのエッジをデブロッキング決定またはデブロッキングフィルタ処理の計算中に含めることを回避し得る。デブロッキングフィルタ６３はまた、デブロッキングについて検討中のエッジのいずれかの側または両側の狭いブロックがエッジに対して直角であるとき、サポート適応をスキップし得る。少なくとも１つの狭い非正方形パーティションまたは変換が、デブロッキングされるべきエッジと平行であるとき、デブロッキングフィルタ６３は、近くのエッジのフィルタ処理間の相互依存性を回避するために、ならびに近くのエッジをデブロッキング決定およびフィルタ処理に含めることを回避するために、デブロッキング決定関数および／またはデブロッキングフィルタを適応させ得る。
【００８１】
[0085]  境界強度計算およびデブロッキング決定は、しきい値ｔｃおよびβに依存する。いくつかの例では、デブロッキングフィルタ６３のしきい値ｔｃおよびβは、それぞれ、中間値ｔｃ’およびβ’に基づいて決定され得る。デブロッキングフィルタ６３は、パラメータＱに基づいて中間値ｔｃ’およびβ’を決定し得る。いくつかの例では、Ｑは、各中間値に関して別々に決定され得る。たとえば、ｔｃ’を決定するために使用され得るパラメータＱの値は、下記の式（９）に従って決定され得る。別の例として、β’を決定するために使用され得るパラメータＱの値は、下記の式（１０）に従って決定され得る。
【数９】
0006345694.tif 000010
【数１０】
0006345694.tif 000011
【００８２】
[0086]  式（９）において、ＭＡＸ＿ＱＰは、量子化パラメータＱＰに関する最大許容値であり得、Ｂｓは、現在ビデオブロックに関する境界フィルタ処理強度であり得、ｓｌｉｃｅ＿ｔｃ＿ｏｆｆｓｅｔ＿ｄｉｖ２は、しきい値ｔｃに関するパラメータオフセットであり得る。いくつかの例では、ＭＡＸ＿ＱＰは、値５１を有し得る。式（１０）において、ＭＡＸ＿ＱＰは、量子化パラメータＱＰに関する最大許容値であり得、Ｂｓは、現在ビデオブロックに関する境界フィルタ処理強度であり得、ｓｌｉｃｅ＿ｂｅｔａ＿ｏｆｆｓｅｔ＿ｄｉｖ２は、しきい値βに関するパラメータオフセットであり得る。
【００８３】
[0087]  次いで、デブロッキングフィルタ６３は、決定されたＱ値に基づいて中間値ｔｃ’およびβ’を決定し得る。いくつかの例では、デブロッキングフィルタ６３は、下記の表１などの参照表の使用によって中間値ｔｃ’およびβ’を決定するために、決定されたＱ値を使用し得る。
【表１】
0006345694.tif 000012
【００８４】
[0088]  デブロッキングフィルタ６３は、それぞれのＱ値を使用して、しきい値ｔｃおよびβを決定し得る。いくつかの例では、デブロッキングフィルタ６３は、下記の式（１１）に従ってｔｃを決定し得る。いくつかの例では、デブロッキングフィルタ６３は、下記の式（１２）に従ってβを決定し得る。
【数１１】
0006345694.tif 000013
【数１２】
0006345694.tif 000014
【００８５】
[0089]  本開示は、ビデオデータの現在のスライスのためのデブロッキングフィルタ６３を定義するために使用されるデブロッキングフィルタパラメータを決定およびシグナリングするための技法について説明する。デブロッキングフィルタ６３は、デブロッキングフィルタパラメータを決定し、次いで、ビデオデコーダ３０が復号されたビデオブロックに同じまたは同様のデブロッキングフィルタを適用することができるようにデブロッキングフィルタパラメータをシグナリングする。デブロッキングフィルタパラメータは、デブロッキングフィルタ処理が使用可能であるか、または使用不可であるかを示すように定義されたシンタックス要素と、使用可能である場合は、しきい値ｔｃおよびβのデブロッキングフィルタパラメータオフセットとを含む。デブロッキングフィルタパラメータは、１つまたは複数のブロックサイズに関するデブロッキングを改善するためにエンコーダによって決定された他のパラメータをさらに含み得る。
【００８６】
[0090]  デブロッキングフィルタオフセットパラメータは、ビデオデコーダ３０にシグナリングするために、ピクチャレイヤパラメータセットおよびスライスヘッダのうちの１つまたは複数中にコーディングされ得る。ピクチャレイヤパラメータセットは、ピクチャパラメータセット（ＰＰＳ）または適応パラメータセット（ＡＰＳ）のうちのいずれかを備え得る。ＰＰＳは、ＰＰＳを参照するピクチャ間で変化する可能性が低いデータを含んでいるピクチャレイヤパラメータセットである。ＡＰＳは、ピクチャごとに変化する可能性があるピクチャ適応データとの使用が意図されたピクチャレイヤパラメータセットである。
【００８７】
[0091]  ビデオエンコーダ２０のエントロピー符号化ユニット５６は、デブロッキングフィルタパラメータがピクチャレイヤパラメータセットとピクチャレイヤパラメータセットを参照するピクチャのためのスライスヘッダとの両方の中に存在するかどうかを示すように定義された第１のシンタックス要素を符号化する。本発明で説明する技法によれば、デブロッキングフィルタパラメータオフセットが、ピクチャレイヤパラメータセットとスライスヘッダの両方の中に存在するとき、エントロピー符号化ユニット５６は、スライスヘッダ中の第２のシンタックス要素のみを符号化することによって、低減されたビットストリームオーバーヘッドで現在のビデオスライスについてのデブロッキングフィルタパラメータオフセットを符号化する。
【００８８】
[0092]  デブロッキングフィルタパラメータオフセットがピクチャレイヤパラメータセットとスライスヘッダの両方の中に存在するわけでないとき、エントロピー符号化ユニット５６は、現在のビデオスライスのためのデブロッキングフィルタ６３を定義するためにデブロッキングフィルタパラメータオフセットのどのセットが使用されるかを示すように定義されたスライスヘッダ中の第２のシンタックス要素をコーディングすることをなくしてもよい。デブロッキングフィルタパラメータオフセットがピクチャレイヤパラメータセットまたはスライスヘッダのうちの１つの中にしか存在しない場合、デブロッキングフィルタ６３は、ピクチャレイヤパラメータセットまたはスライスヘッダのいずれかの中に存在するデブロッキングフィルタパラメータオフセットのセットに基づいて現在のビデオスライスに対して定義される。したがって、ビデオデコーダ３０においてデブロッキングフィルタを定義するためにデブロッキングフィルタパラメータオフセットのどのセットを使用すべきかに関してピクチャレイヤパラメータセットとスライスヘッダとの間で決定を行う必要がないので、第２のシンタックス要素は、ビデオデコーダ３０にデブロッキングフィルタパラメータオフセットを示す必要がない。
【００８９】
[0093]  デブロッキングフィルタパラメータオフセットがピクチャレイヤパラメータセットとスライスヘッダの両方の中に存在するとき、エントロピー符号化ユニット５６は、ピクチャレイヤパラメータセット中に含まれるデブロッキングパラメータオフセットの第１のセットを使用すべきか、またはスライスヘッダ中に含まれるデブロッキングパラメータオフセットの第２のセットを使用すべきかを示すように定義されたスライスヘッダ中の第２のシンタックス要素を符号化する。この場合、デブロッキングフィルタ６３は、デブロッキングパラメータオフセットの第１のセットまたは第２のセットのうちの１つに基づいて現在のビデオスライスに対して定義される。したがって、第２のシンタックス要素は、ビデオデコーダ３０が、復号されたビデオブロックに同じまたは同様のデブロッキングフィルタを適用することができるように、ビデオエンコーダ２０中のデブロッキングフィルタ６３を定義するために使用されるデブロッキングフィルタパラメータオフセットを示す必要がある。
【００９０】
[0094]  場合によっては、エントロピー符号化ユニット５６はまた、デブロッキングフィルタ制御シンタックス要素がピクチャレイヤパラメータセットまたはスライスヘッダのいずれかの中に存在するかどうかを示すように定義された制御存在シンタックス要素を符号化し得る。制御存在シンタックス要素は、ピクチャレイヤパラメータセット中で、または上位レイヤパラメータセット、たとえば、シーケンスパラメータセット（ＳＰＳ）からシグナリングされ得る。デブロッキングフィルタ制御シンタックス要素は、上記で説明した第１および第２のシンタックス要素を備える。したがって、エントロピー符号化ユニット５６は、第１のシンタックス要素を符号化するより前に、制御存在シンタックス要素を符号化する。デブロッキングフィルタ制御シンタックス要素が存在しない場合、ビデオエンコーダ２０は、ビデオデコーダ３０に通知し、第１または第２のシンタックス要素を符号化しない。この場合、ビデオエンコーダ２０は、復号されたビデオブロックに適用されるデブロッキングフィルタ６３を定義するためにデフォルトのデブロッキングフィルタパラメータを使用し得る。
【００９１】
[0095]  他の場合には、エントロピー符号化ユニット５６は、第１のシンタックス要素を符号化するより前に、デブロッキングフィルタ６３がビデオシーケンスの１つまたは複数のピクチャのために使用可能であるかどうかを示すように定義されたデブロッキングフィルタ使用可能シンタックス要素を符号化し得る。デブロッキングフィルタ使用可能シンタックス要素は、上位レイヤパラメータセット、たとえば、シーケンスパラメータセット（ＳＰＳ）中でシグナリングされ得る。デブロッキングフィルタ６３がビデオシーケンスのために使用不能である場合、デブロッキングフィルタ６３は復号されたビデオブロックに適用されないので、ビデオエンコーダ２０は、ビデオデコーダ３０に通知し、第１または第２のシンタックス要素を符号化しない。この場合、ビデオエンコーダ２０はまた、制御存在シンタックス要素を符号化しない。
【００９２】
[0096]  一例では、第１のシンタックス要素は、所与のピクチャについてＰＰＳ中にコーディングされたオーバーライド使用可能フラグを備える。この場合、デブロッキングフィルタパラメータの第１のセットはＰＰＳ中にコーディングされ、オーバーライド使用可能フラグは、ＰＰＳからのパラメータをオーバーライドするために使用され得る所与のピクチャの１つまたは複数のスライスのためのスライスヘッダ中にデブロッキングフィルタパラメータの第２のセットが存在するかどうかを示す。さらに、第２のシンタックス要素は、スライスヘッダ中にコーディングされ得るオーバーライドフラグを備える。デブロッキングフィルタパラメータの第２のセットがスライスヘッダ中に存在することをＰＰＳ中のオーバーライド使用可能フラグが示すとき、エントロピー符号化ユニット５６は、ビデオデコーダ３０においてデブロッキングフィルタを定義するために、ＰＰＳ中のデブロッキングフィルタパラメータの第１のセットを使用すべきか、またはスライスヘッダ中に含まれるデブロッキングフィルタパラメータの第２のセットでデブロッキングフィルタパラメータの第１のセットをオーバーライドすべきかをビデオデコーダ３０に示すためにオーバーライドフラグを符号化する。そうでない場合、ＰＰＳ中のデブロッキングフィルタパラメータの第１のセットしか存在しないことをＰＰＳ中のオーバーライド使用可能フラグが示すとき、エントロピー符号化ユニット５６は、スライスヘッダ中のオーバーライドフラグの符号化をなくす。この例のための特定のシンタックス要素については、図３のビデオデコーダ３０に関して以下でより詳細に説明する。
【００９３】
[0097]  別の例では、第１のシンタックス要素は、所与のピクチャについてＳＰＳおよび／またはＡＰＳ中にコーディングされる継承使用可能フラグを備える。この場合、デブロッキングフィルタパラメータの第２のセットはスライスヘッダ中にコーディングされ、継承使用可能フラグは、スライスヘッダによって継承され得るデブロッキングフィルタパラメータの第１のセットがＡＰＳ中に存在するかどうかを示す。第２のシンタックス要素は、スライスヘッダ中にコーディングされ得る継承フラグを備える。デブロッキングフィルタパラメータの第１のセットがＡＰＳ中に存在することをＳＰＳおよび／またはＡＰＳ中の継承使用可能フラグが示すとき、エントロピー符号化ユニット５６は、ビデオデコーダ３０においてデブロッキングフィルタを定義するために、スライスヘッダ中のデブロッキングフィルタパラメータの第２のセットを使用すべきか、またはＡＰＳ中のデブロッキングフィルタパラメータの第１のセットを継承すべきかをビデオデコーダ３０に示すために継承フラグを符号化する。そうでない場合、スライスヘッダ中のデブロッキングフィルタパラメータの第２のセットしか存在しないことをＳＰＳおよび／またはＡＰＳ中の継承使用可能フラグが示すとき、エントロピー符号化ユニット５６は、スライスヘッダ中の継承フラグの符号化をなくす。この例のための特定のシンタックス要素については、図３のビデオデコーダ３０に関して以下でより詳細に説明する。
【００９４】
[0098]  本開示の１つまたは複数の技法によれば、デブロッキングフィルタ６３は、１つまたは複数のデブロッキングパラメータオフセット値を符号化すべきか否かを決定し得る。たとえば、ブロッキネスメトリックは、ビデオデータ中の大きいブロックアーティファクトを分析し得るエンコーダ２０に統合され得、ビデオデコーダにシグナリングされ得る適切なデブロッキングオフセットパラメータを決定し得る。たとえば、デブロッキングフィルタ６３は、１つまたは複数のブロッキネスメトリックを決定し、コーディングされたビットストリーム中でエントロピー符号化ユニット５６にメトリック（たとえば、オフセットパラメータ）を符号化させ得る。次いで、デコーダのデブロッキングユニットは、コーディングされたビットストリームを復号すると、同じメトリックを適用し得る。
【００９５】
[0099]  いくつかの例では、デブロッキングフィルタ６３は、ブロックの垂直エッジまたは水平エッジを分析し得る。いくつかの例では、デブロッキングフィルタ６３は、ピクチャ中のブロック（たとえば、３２×３２ブロック格子）の垂直エッジと水平エッジの両方を分析し得る。概して、デブロッキングフィルタ６３は、任意のサイズのブロックを分析し得る。いくつかの例では、デブロッキングフィルタ６３は、分析され得る最大変換サイズに対応するサイズを有するブロックを分析し得る。
【００９６】
[0100]  いくつかの例では、デブロッキングフィルタ６３は、第１の複数のラインのうちの１つのラインに関する第１の値を決定し得る。第１の複数のラインのうちの１つのラインは、ブロックの第１のエッジと直交する可能性がある。たとえば、デブロッキングフィルタ６３は、上記の式（１）に従って第１の中間値ｄｐｉを決定し得る。いくつかの例では、デブロッキングフィルタ６３は、ラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定し得る。いくつかの例では、サンプル値の第１のセットは、そのブロックに含まれ得る。デブロッキングフィルタ６３は、上記の式（２）に従って第２の中間値ｄｑｉも決定し得る。いくつかの例では、デブロッキングフィルタ６３は、ラインに対応するビデオデータのサンプル値の第２のセットに基づいて第２の中間値を決定し得る。いくつかの例では、サンプル値の第２のセットは、異なる隣接ブロックに含まれ得る。いくつかの例では、次いで、デブロッキングフィルタ６３は、上記の式（３）に従って第１の値ｄｉを決定し得る。
【００９７】
[0101]  次いで、デブロッキングフィルタ６３は、第１の値がしきい値を満足するかどうかを決定し得る。たとえば、デブロッキングフィルタ６３は、第１の値が第１のしきい値よりも大きく第２のしきい値よりも小さい場合、第１の値がしきい値を満足することを決定し得る。いくつかの例では、デブロッキングフィルタ６３は、第１の値がしきい値を満足するか否かを決定する前に第１の値をスケーリングし得る。いくつかの例では、デブロッキングフィルタ６３は、上記の式（４）に従ってスケーリングおよび決定を実行し得る。言い換えれば、式（１）〜式（４）によって定義された条件は、エッジと直交する各ラインｉにおいてチェックされ得る。
【００９８】
[0102]  第１の値がしきい値を満足することをデブロッキングフィルタ６３が決定する場合、デブロッキングフィルタ６３は、複数のラインのうちの１つのラインに関する第２の値を決定し、第２の複数のラインのうちの１つのラインに関する第２の値を決定し得る。いくつかの例では、デブロッキングフィルタ６３は、第１のブロックに含まれるビデオデータの第１のサンプルと第２のブロックに含まれるビデオデータの第２のサンプルとに基づいて、第１の複数のラインのうちの１つのラインに関する第２の値を決定し得る。たとえば、デブロッキングフィルタ６３は、上記の式（５）に従って、第１の複数のラインのうちの１つのラインに関する第２の値を決定し得る。いくつかの例では、第２の複数のラインは、ブロックの第２のエッジと直交する可能性がある。いくつかの例では、第１のエッジは、垂直エッジまたは水平エッジであり得る。いくつかの例では、第２のエッジは、垂直エッジまたは水平エッジの異なるエッジであり得る。言い換えれば、第１のエッジが垂直エッジである場合、第２のエッジは水平エッジであり、その逆も同様である。いくつかの例では、第２のエッジは、第１のブロックと第３のブロックとの間の境界であり得る。いくつかの例では、デブロッキングフィルタ６３は、第１のブロックに含まれるビデオデータの第３のサンプルと第３のブロックに含まれるビデオデータの第４のサンプルとに基づいて、第２の複数のラインのうちの１つのラインに関する第２の値を決定し得る。たとえば、デブロッキングフィルタ６３は、上記の式（６）に従って、第２の複数のラインのうちの１つのラインに関する第２の値を決定し得る。
【００９９】
[0103]  いくつかの例では、デブロッキングフィルタ６３は、第１の複数のラインの各ラインに関する第２の値と、第２の複数のラインの各ラインに関する第２の値とを決定し得る。いくつかの例では、次いで、デブロッキングフィルタ６３は、第１の複数のラインの各ラインに関する第２の値の合計と、第２の複数のラインの各ラインに関する第２の値の合計とを決定し得る。たとえば、デブロッキングフィルタ６３は、上記の式（７）による、第１の複数のラインの各ラインに関する第２の値の合計と、上記の式（８）による、第２の複数のラインの各ラインに関する第２の値の合計とを決定し得る。言い換えれば、デブロッキングフィルタ６３は、分析されている垂直／水平エッジ全体に関して、計算されたステップサイズを累積し得る。
【０１００】
[0104]  いくつかの例では、デブロッキングフィルタ６３は、第１の複数のラインのうちの１つのラインに関する第２の値、および／または第２の複数のラインのうちの１つのラインに関する第２の値を調整し得る。言い換えれば、デブロッキングフィルタ６３は、第２の値をスケーリングおよび／または正規化し得る。たとえば、第１のエッジが水平エッジである場合、デブロッキングフィルタ６３は、スライスの水平エッジの量とスライスの幅とに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整し、スライスの垂直エッジの量とスライスの高さとに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整し得る。別の例として、第１のエッジが垂直エッジである場合、デブロッキングフィルタ６３は、スライスの垂直エッジの量とスライスの高さとに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整し、スライスの水平エッジの量とスライスの幅とに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整し得る。いくつかの例では、デブロッキングフィルタ６３が第１の複数のラインの各ラインに関する第２の値の合計を決定する場合など、デブロッキングフィルタ６３は、第１の複数のラインの各ラインに関する第２の値の合計を調整し得る。いくつかの例では、デブロッキングフィルタ６３が第２の複数のラインの各ラインに関する第２の値の合計を決定する場合など、デブロッキングフィルタ６３は、第２の複数のラインの各ラインに関する第２の値の合計を調整し得る。いくつかの例では、水平エッジの量は、スライスの水平エッジに沿った水平エッジを有するブロックの数であり得る。いくつかの例では、垂直エッジの量は、スライスの垂直エッジに沿った垂直エッジを有するブロックの数であり得る。いくつかの例では、スライスの幅は、スライス中の水平ラインに沿ったピクセルの数に相当し得る。いくつかの例では、スライスの高さは、スライス中の垂直ラインに沿ったピクセルの数に相当し得る。いくつかの例では、デブロッキングフィルタ６３は、第２の値に倍率を乗算することによって第２の値を調整し得る。いくつかの例では、倍率は、２０４８であり得る。いくつかの例では、エッジの数および／または幅／高さ以外の因子が使用され得る。
【０１０１】
[0105]  次いで、デブロッキングフィルタ６３は、平均値を決定し得る。いくつかの例では、デブロッキングフィルタ６３は、第１の複数のラインに関する第２の値と、第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定し得る。たとえば、デブロッキングフィルタ６３は、平均値を決定するために、第２の複数のラインのうちの１つのラインに関する第２の値に、第１の複数のラインに関する第２の値を加算し、その合計を２で除算し得る。いくつかの例では、次いで、デブロッキングフィルタ６３は、調整された第２の値に基づいて平均値を決定し得る。いくつかの例では、デブロッキングフィルタ６３は、第１の複数のラインの各ラインに関する第２の値の合計と、第２の複数のラインの各ラインに関する第２の値の合計とに基づいて平均値を決定し得る。いくつかの例では、デブロッキングフィルタ６３は、第２の値の調整された合計に基づいて平均値を決定し得る。
【０１０２】
[0106]  次いで、デブロッキングフィルタ６３は、決定された平均値に基づいて、１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定し得る。一例として、デブロッキングフィルタ６３は、第１のブロックと第２のブロックとの間のエッジに最小のアーティファクトが存在する場合、１つまたは複数のデブロッキングパラメータオフセットを符号化しないことを決定し得る。いくつかの例では、デブロッキングフィルタ６３は、平均値がしきい値よりも大きい場合、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定し得る。いくつかの例では、デブロッキングフィルタ６３は、平均値がしきい値よりも大きくない場合、平均値に基づいては１つまたは複数のデブロッキングパラメータオフセットを決定しない可能性がある。
【０１０３】
[0107]  デブロッキングフィルタ６３が１つまたは複数のデブロッキングパラメータオフセットを符号化することを決定する場合、デブロッキングフィルタ６３は、１つまたは複数のデブロッキングパラメータオフセットを決定し得る。いくつかの例では、デブロッキングパラメータオフセットは、ｔｃオフセット値とベータオフセット値とを含み得る。いくつかの例では、デブロッキングフィルタ６３は、下記の式（１３）に従ってｔｃオフセット値を計算し得る。いくつかの例では、デブロッキングフィルタ６３は、下記の式（１４）に従ってベータオフセット値を計算し得る。
【数１３】
0006345694.tif 000015
【数１４】
0006345694.tif 000016
【０１０４】
[0108]  式（１３）において、ａｖｇはデブロッキングフィルタ６３によって決定された平均値であり得、ｔｈｒｅｓｈｏｌｄ３およびｔｈｒｅｓｈｏｌｄ４はしきい値であり得、ｖａｌｕｅ２はスケーリング率であり得る。いくつかの例では、ｔｈｒｅｓｈｏｌｄ３は、値２を有し得る。いくつかの例では、ｔｈｒｅｓｈｏｌｄ４は、値６を有し得る。いくつかの例では、ｔｈｒｅｓｈｏｌｄ５は、値２を有し得る。いくつかの例では、ｔｈｒｅｓｈｏｌｄ６は、値６を有し得る。式（１４）において、ａｖｇはデブロッキングフィルタ６３によって決定された平均値であり得、ｔｈｒｅｓｈｏｌｄ５およびｔｈｒｅｓｈｏｌｄ６はしきい値であり得、ｖａｌｕｅ３はスケーリング率であり得る。いくつかの例では、ａｖｇをｖａｌｕｅ２で除算することは、ａｖｇを９だけ右シフトする（すなわち、ａｖｇ≫９）ことに相当する可能性がある。いくつかの例では、ａｖｇをｖａｌｕｅ３で除算することは、ａｖｇを９だけ右シフトする（すなわち、ａｖｇ≫９）ことに相当する可能性がある。式（１３）および（１４）において、関数Ｃｌｉｐ３は、下記の式（１５）に従って定義され得る。
【数１５】
0006345694.tif 000017
【０１０５】
[0109]  いくつかの例では、エンコーダ２０は、決定されたオフセットをデコーダにシグナリングし得る。たとえば、エンコーダ２０は、エントロピー符号化ユニット５６を介して決定されたオフセットをデコーダにシグナリングし得る。いくつかの例では、エンコーダ２０は、ビデオデータの各スライスに関してオフセットをデコーダにシグナリングし得る。いくつかの例では、エンコーダ２０は、ビデオデータの各ＰＰＳに関してオフセットをデコーダにシグナリングし得る。コーディングされたビットストリームを受信すると、オフセットは、デコーダによって受信され適用され得る。
【０１０６】
[0110]  図３は、ビデオスライスに適用されるデブロッキングフィルタを定義するために使用されるデブロッキングフィルタパラメータを復号するために本開示で説明する技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測処理ユニット８１と、逆量子化ユニット８６と、逆変換処理ユニット８８と、加算器９０と、デブロッキングフィルタ９１と、参照ピクチャメモリ９２とを含む。予測処理ユニット８１は、動き補償ユニット８２と、イントラ予測処理ユニット８４とを含む。ビデオデコーダ３０は、いくつかの例では、図２のビデオエンコーダ２０に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【０１０７】
[0111]  復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビットストリーム中の表されたビデオブロックが圧縮されたビデオデータを含むとき、ビデオデコーダ３０のエントロピー復号ユニット８０はビットストリームをエントロピー復号して、量子化係数と、動きベクトルと、他のシンタックス要素とを生成する。エントロピー復号ユニット８０は、予測処理ユニット８１に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ３０は、シーケンスレベル、ピクチャレベル、スライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。場合によっては、エントロピー復号ユニット８０は、所与のビデオスライスおよび／または所与のＰＰＳのためのデブロッキングフィルタ９１を定義するために、デブロッキングフィルタパラメータオフセットを含むデブロッキングフィルタ制御シンタックス要素を復号する。
【０１０８】
[0112]  ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、予測処理ユニット８１のイントラ予測処理ユニット８４は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックについての予測データを生成し得る。ビデオフレームがインターコード化（すなわち、ＢまたはＰ）スライスとしてコーディングされるとき、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルおよび他のシンタックス要素に基づいて現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つの内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ９２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０およびリスト１を構成し得る。
【０１０９】
[0113]  動き補償ユニット８２は、動きベクトルと他のシンタックス要素とをパースすることによって現在のビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、ＢスライスまたはＰスライス）と、スライスの参照ピクチャリストのうちの１つまたは複数についての構成情報と、スライスの各インター符号化ビデオブロックについての動きベクトルと、スライスの各インターコード化ビデオブロックについてのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【０１１０】
[0114]  動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８２は、ビデオブロックの符号化中にビデオ符号器２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット８２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１１１】
[0115]  逆量子化ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックについてビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。逆変換ユニット８８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１１２】
[0116]  動き補償ユニット８２が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換処理ユニット８８からの残差ブロックを動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数の構成要素を表す。ブロッキネスアーティファクトを除去するために、加算器９０から受信したブロックをフィルタ処理するためにデブロッキングフィルタ９１が適用される。次いで、所与のピクチャ中の復号されたビデオブロックは、その後の動き補償に使用される参照ピクチャを記憶する参照ピクチャメモリ９２に記憶される。参照ピクチャメモリ９２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
【０１１３】
[0117]  ビデオデコーダ３０中のデブロッキングフィルタ９１は、境界強度計算およびデブロッキング決定からの結果に基づいて、復号されたビデオブロックのいくつかのＴＵおよびＰＵエッジをフィルタ処理する。境界強度計算およびデブロッキング決定は、シンタックス要素を使用してビデオエンコーダ２０からビデオデコーダ３０にシグナリングされ得るしきい値ｔｃおよびβに依存する。デブロッキングフィルタ９１は、ビデオブロックの所与のエッジにおいて知覚可能なブロッキネスアーティファクトを除去するために、エッジの近くのピクセルの値を改変し得る。デブロッキングフィルタ９１は、デブロッキングフィルタ６３に関して説明した技法のいずれかまたはすべてを実行するように構成され得るので、デブロッキングフィルタ９１は、図２のデブロッキングフィルタ６３と同様であり得る。エンコーダ側は、実際は、パラメータを決定し、パラメータを適用し得るが、デコーダ側は、エンコーダによって決定されたパラメータを受信し適用し得る。
【０１１４】
[0118]  本開示の技法によれば、ビデオデコーダ３０中のエントロピー復号ユニット８０は、ビデオエンコーダ２０から受信したビットストリーム中に含まれるデブロッキングフィルタ制御シンタックス要素を復号する。デブロッキングフィルタ制御シンタックス要素は、デブロッキングフィルタ処理が使用可能であるか、または使用不可であるかを示すデブロッキングフィルタパラメータと、使用可能である場合は、しきい値ｔｃおよびβのデブロッキングフィルタパラメータオフセットとを含む。ビデオエンコーダ３０は、ビットストリーム中に含まれるデブロッキングフィルタ制御シンタックス要素（たとえば、ｔｃ＿ｏｆｆｓｅｔ＿ｄｉｖ２およびｂｅｔａ＿ｏｆｆｓｅｔ＿ｄｉｖ２）からデブロッキングフィルタ９１のために使用されるべきデブロッキングフィルタパラメータを決定する。ビデオデコーダ３０は、次いで、ビットストリーム中のビデオブロックを復号するために、ビデオエンコーダ２０中のデブロッキングフィルタ６３と同じまたは同様に動作するためにデブロッキングフィルタパラメータに基づいてデブロッキングフィルタ９１を定義する。
【０１１５】
[0119]  本開示は、デブロッキングフィルタパラメータを選択されるシグナリングするための技法について説明する。デブロッキングフィルタパラメータは、ビデオデコーダ３０にシグナリングするために、ピクチャレイヤパラメータセットおよびスライスヘッダのうちの１つまたは複数中にコーディングされ得る。ピクチャレイヤパラメータセットは、ピクチャパラメータセット（ＰＰＳ）または適応パラメータセット（ＡＰＳ）のうちのいずれかを備え得る。ＰＰＳは、ＰＰＳを参照するピクチャ間で変化する可能性が低いデータを含んでいるピクチャレイヤパラメータセットである。ＡＰＳは、ピクチャごとに変化する可能性があるピクチャ適応データとの使用が意図されたピクチャレイヤパラメータセットである。
【０１１６】
[0120]  ビデオエンコーダ３０のエントロピー復号ユニット８０は、デブロッキングフィルタパラメータがピクチャレイヤパラメータセットとピクチャレイヤパラメータセットを参照するピクチャのためのスライスヘッダとの両方の中に存在するかどうかを示すように定義された第１のシンタックス要素を復号する。本発明で説明する技法によれば、デブロッキングフィルタパラメータが、ピクチャレイヤパラメータセットとスライスヘッダの両方の中に存在するとき、エントロピー復号ユニット８０は、スライスヘッダ中の第２のシンタックス要素のみを復号する。
【０１１７】
[0121]  デブロッキングフィルタパラメータがピクチャレイヤパラメータセットとスライスヘッダの両方の中に存在するわけでないとき、エントロピー復号ユニット８０は、現在のビデオスライスのためのデブロッキングフィルタ９１を定義するためにデブロッキングフィルタパラメータのどのセットを使用すべきかを示すように定義された第２のシンタックス要素が、復号されるべきスライスヘッダ中に存在しないと決定する。デブロッキングフィルタパラメータがピクチャレイヤパラメータセットまたはスライスヘッダのうちの１つの中にしか存在しない場合、デブロッキングフィルタ９１は、ピクチャレイヤパラメータセットまたはスライスヘッダのいずれかの中に存在するデブロッキングフィルタパラメータのセットに基づいて現在のビデオスライスに対して定義される。したがって、ビデオデコーダ３０は、ビデオデコーダ３０中のデブロッキングフィルタ９１を定義するためにデブロッキングフィルタパラメータのどのセットを使用すべきかを決定する必要はないので、第２のシンタックス要素は不要である。
【０１１８】
[0122]  デブロッキングフィルタパラメータがピクチャレイヤパラメータセットとスライスヘッダの両方の中に存在するとき、エントロピー復号ユニット８０は、ピクチャレイヤパラメータセット中に含まれるデブロッキングパラメータの第１のセットを使用すべきか、またはスライスヘッダ中に含まれるデブロッキングパラメータの第２のセットを使用すべきかを示すように定義されたスライスヘッダ中の第２のシンタックス要素を復号する。この場合、デブロッキングフィルタ９１は、デブロッキングパラメータの第１のセットまたは第２のセットのうちの１つに基づいて現在のビデオスライスに対して定義される。したがって、第２のシンタックス要素は、ビデオエンコーダ２０中のデブロッキングフィルタ６３と同じまたは同様であるデブロッキングフィルタ９１を定義するためにデブロッキングフィルタパラメータのどのセットを使用すべきかビデオデコーダ３０が知るために必要である。
【０１１９】
[0123]  場合によっては、エントロピー復号ユニット８０はまた、デブロッキングフィルタ制御シンタックス要素がピクチャレイヤパラメータセットまたはスライスヘッダのいずれかの中に存在するかどうかを示すように定義された制御存在シンタックス要素を復号し得る。制御存在シンタックス要素は、ピクチャレイヤパラメータセットから、または上位レイヤパラメータセット、たとえば、シーケンスパラメータセット（ＳＰＳ）から復号され得る。デブロッキングフィルタ制御シンタックス要素は、上記で説明した第１および第２のシンタックス要素を備える。したがって、エントロピー復号ユニット８０は、第１のシンタックス要素を復号するより前に、制御存在シンタックス要素を復号する。デブロッキングフィルタ制御シンタックス要素が存在しないことを制御存在シンタックス要素が示す場合、第１および第２のシンタックス要素が復号されるべきビットストリーム中に存在しないので、ビデオデコーダ３０は、それが第１または第２のシンタックス要素を復号する必要がないことを知る。この場合、ビデオデコーダ３０は、復号されたビデオブロックに適用されるデブロッキングフィルタ９１を定義するためにデフォルトのデブロッキングフィルタパラメータを使用し得る。
【０１２０】
[0124]  他の場合には、エントロピー復号ユニット８０は、第１のシンタックス要素を復号するより前に、デブロッキングフィルタ９１がビデオシーケンスの１つまたは複数のピクチャのために使用可能であるかどうかを示すように定義されたデブロッキングフィルタ使用可能シンタックス要素を復号し得る。デブロッキングフィルタ使用可能シンタックス要素は、上位レイヤパラメータセット、たとえば、シーケンスパラメータセット（ＳＰＳ）から復号され得る。デブロッキングフィルタ９１がビデオシーケンスのために使用不能である場合、デブロッキングフィルタ９１は復号されたビデオブロックに適用されないので、ビデオデコーダ３０は、それが第１または第２のシンタックス要素を復号する必要がないことを知る。この場合、ビデオデコーダ３０はまた、制御存在シンタックス要素を復号する必要がない。
【０１２１】
[0125]  一例では、第１のシンタックス要素は、所与のピクチャについてＰＰＳ中にコーディングされたオーバーライド使用可能フラグを備える。この場合、デブロッキングフィルタパラメータの第１のセットはＰＰＳ中にコーディングされ、オーバーライド使用可能フラグは、ＰＰＳからのパラメータをオーバーライドするために使用され得る所与のピクチャの１つまたは複数のスライスのためのスライスヘッダ中にデブロッキングフィルタパラメータの第２のセットが存在するかどうかを示す。さらに、第２のシンタックス要素は、スライスヘッダ中にコーディングされ得るオーバーライドフラグを備える。デブロッキングフィルタパラメータの第２のセットがスライスヘッダ中に存在することをＰＰＳ中のオーバーライド使用可能フラグが示すとき、エントロピー復号ユニット８０は、デブロッキングフィルタ９１を定義するために、ＰＰＳ中のデブロッキングフィルタパラメータの第１のセットを使用すべきか、またはスライスヘッダ中に含まれるデブロッキングフィルタパラメータの第２のセットでデブロッキングフィルタパラメータの第１のセットをオーバーライドすべきかを決定するためにオーバーライドフラグを復号する。そうでない場合、ＰＰＳ中のデブロッキングフィルタパラメータの第１のセットしか存在しないことをＰＰＳ中のオーバーライド使用可能フラグが示すとき、エントロピー復号ユニット８０は、復号されるべきスライスヘッダ中にオーバーライドフラグが存在しないと決定する。
【０１２２】
[0126]  これらのオフセットは、スライス当り１回、ピクチャ当り１回、または他の間隔でコーディングされたビットストリーム中でシグナリングされ得る。このシグナリングは、スライスヘッダもしくは他のタイプのパラメータセット、またはコーディングされたビットストリーム内のシグナリング機構において行われ得る。
【０１２３】
[0127]  図４は、本開示の１つまたは複数の技法に従って、エンコーダがデブロッキングフィルタパラメータを符号化し得る、例示的なビデオデータを示すブロック図である。図４に示すように、ビデオデータ９６は、ブロック９８などの複数のブロックを含み得る。いくつかの例では、ビデオデータ９６は、スライスに分割され得る。図４の例では、スライス境界１００は、ビデオデータ９６を第１のスライス１０２および第２のスライス１０４に分割する。
【０１２４】
[0128]  詳細な図１０６に示すように、ブロック９８Ａ、ブロック９８Ｂ、ブロック９８Ｃ、およびブロック９８Ｄ（集合的に「ブロック９８」）は各々、複数のピクセルを含み得る。いくつかの例では、各ピクセルは、１つまたは複数の座標によって識別され得る。たとえば、ブロック９８の各々の左上のピクセルは、座標（０，０）によって識別され得る。詳細には、ブロック９８Ａの左上のピクセルは、座標Ａ（０，０）によって識別され得る。各々が同じ形状（すなわち、正方形）であり同じ数のピクセル（すなわち、２５ピクセル）を含むように図４に示されているが、いくつかの例では、ブロック９８は、様々な形状であり、様々な数のピクセルを含む場合がある。
【０１２５】
[0129]  本開示の１つまたは複数の技法によれば、エンコーダは、ビデオデータのブロックの第１のエッジと直交し得る、第１の複数のラインのうちの１つのラインに関する第１の値を決定し得る。図４の例では、第１のブロックはブロック９８Ｄであり得、第１の複数のラインのうちの１つのラインは、ブロック９８Ｄおよびブロック９８Ｂの最左列を含むラインであり得、第１の複数のラインは、ブロック９８Ｄおよびブロック９８Ｂの列であり得る。言い換えれば、第１の複数のラインのうちの１つのラインは、ピクセルＢ（０，０）、Ｂ（０，１）、Ｂ（０，２）、Ｂ（０，３）、Ｂ（０，４）、Ａ（０，０）、Ａ（０，１）、Ａ（０，２）、Ａ（０，３）、およびＡ（０，４）を含み得る。
【０１２６】
[0130]  いくつかの例では、エンコーダは、複数のラインのうちの第１のラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定し、複数のラインのうちの第１のラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定することによって、第１の複数のラインのうちの１つのラインに関する第１の値を決定することができる。図４の例では、サンプル値の第１のセットは、Ｄ（０，２）、Ｄ（０，１）、およびＤ（０，０）を含むことができ、サンプル値の第２のセットは、Ｂ（０，４）、Ｂ（０，３）、およびＢ（０，２）を含み得る。いくつかの例では、エンコーダは、第１の中間値を決定するために、上記の式（１）を適用し得る。図４の例に式（１）を適用することは、下記の式（１６）をもたらし得る。いくつかの例では、エンコーダは、第２の中間値を決定するために、上記の式（２）を適用し得る。図４の例に式（２）を適用することは、下記の式（１７）をもたらし得る。いくつかの例では、エンコーダは、第１の複数のラインのうちの１つのライン（すなわち、ｉ）の第１の値を決定するために、上記の式（３）を適用し得る。図４の例に式（３）を適用することは、下記の式（１８）をもたらし得る。
【数１６】
0006345694.tif 000018
【数１７】
0006345694.tif 000019
【数１８】
0006345694.tif 000020
【０１２７】
[0131]  いくつかの例では、第１のセットまたは第２のセットのいずれかは、追加のサンプル値を含み得る。たとえば、第１のセットはＤ（０，４）をさらに含むことができ、第２のセットはＢ（０，０）をさらに含み得る。次いで、エンコーダは、決定された第１の値が１つまたは複数のしきい値を満足するかどうかを決定し得る。いくつかの例では、エンコーダは、第１の値が第１のしきい値よりも大きく第２のしきい値よりも小さい場合、第１の値が１つまたは複数のしきい値を満足することを決定し得る。いくつかの例では、エンコーダは、しきい値を満足することを決定する前に第１の値をスケーリングし得る。たとえば、エンコーダは、第１の値（すなわち、ｄｉ）が１つまたは複数の値を満足するか否かを決定するために、上記の式（４）を適用し得る。図４の例に式（４）を適用することは、下記の式（１９）をもたらし得る。
【数１９】
0006345694.tif 000021
【０１２８】
[0132]  いくつかの例では、ｔｈｒｅｓｈｏｌｄ１は、値２を有し得る。いくつかの例では、ｓｃａｌｉｎｇｖａｌｕｅは、値２を有し得る。いくつかの例では、ｔｈｒｅｓｈｏｌｄ２は、４で除算された、βなどのデブロッキングパラメータのうちの１つの値を有し得る。
【０１２９】
[0133]  第１の複数のラインのうちの１つのラインの第１の値が１つまたは複数のしきい値を満足する場合、エンコーダは、第１の複数のラインのうちの１つのラインに関する第２の値を決定し、第２の複数のラインのうちの１つのラインに関する第２の値を決定し得る。いくつかの例では、第２の複数のラインは、ブロック格子の第２のエッジと直交する可能性がある。いくつかの例では、第１のエッジは、垂直エッジまたは水平エッジであり得る。いくつかの例では、第２のエッジは、垂直エッジまたは水平エッジの異なるエッジであり得る。言い換えれば、第１のエッジが垂直エッジである場合、第２のエッジは水平エッジであり、その逆も同様である。
【０１３０】
[0134]  図４の例では、第１のブロックはブロック９８Ｄであり得、第２の複数のラインのうちの１つのラインは、ブロック９８Ｄおよびブロック９８Ｃの中央列を含むラインであり得、第２の複数のラインは、ブロック９８Ｄおよびブロック９８Ｃ列であり得る。言い換えれば、第２の複数のラインのうちの１つのラインは、ピクセルＣ（０，２）、Ｃ（１，２）、Ｃ（２，２）、Ｃ（３，２）、Ｃ（４，２）、Ａ（０，２）、Ａ（１，２）、Ａ（２，２）、Ａ（３，２）、およびＡ（４，２）を含み得る。
【０１３１】
[0135]  図４の例では、エンコーダは、式（５）および（６）ならびに／または式（７）および（８）に従って第１の複数のラインに関する第２の値を決定し得る。図４の例に式（５）を適用することは、下記の式（２０）をもたらし得る。図４の例に式（６）を適用することは、下記の式（２１）をもたらし得る。
【数２０】
0006345694.tif 000022
【数２１】
0006345694.tif 000023
【０１３２】
[0136]  図４の例に式（７）を適用することは、下記の式（２２）をもたらし得る。図４の例に式（８）を適用することは、下記の式（２３）をもたらし得る。
【数２２】
0006345694.tif 000024
【数２３】
0006345694.tif 000025
【０１３３】
[0137]  いくつかの例では、次いで、エンコーダは、第２の値を調整し得る。いくつかの例では、第１のエッジが水平エッジである場合、エンコーダは、スライスの水平エッジの量とスライスの幅とに基づいて第１の複数のラインのうちの１つのラインに関する第２の値（または、第１の複数のラインに関する第２の値の合計）を調整し得る。いくつかの例では、第１のエッジが垂直エッジである場合、エンコーダは、スライスの垂直エッジの量とスライスの高さとに基づいて第１の複数のラインのうちの１つのラインに関する第２の値（または、第１の複数のラインに関する第２の値の合計）を調整し得る。図４の例では、第１のエッジ（すなわち、ブロック９８Ｄとブロック９８Ｂとの間の境界）が水平エッジであるので、エンコーダは、スライスの水平エッジの量とスライスの幅とに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整し得る。図４に示すように、第２のスライス１０４は、１２個の水平エッジと６０個のピクセルの幅とを有し得る。いくつかの例では、第１のエッジが水平エッジである場合、エンコーダは、スライスの垂直エッジの量とスライスの高さとに基づいて第２の複数のラインのうちの１つのラインに関する第２の値（または、第２の複数のラインに関する第２の値の合計）を調整し得る。いくつかの例では、第１のエッジが垂直エッジである場合、エンコーダは、スライスの水平エッジの量とスライスの幅とに基づいて第２の複数のラインのうちの１つのラインに関する第２の値（または、第１の複数のラインに関する第２の値の合計）を調整し得る。図４の例では、第１のエッジ（すなわち、ブロック９８Ｄとブロック９８Ｂとの間の境界）が水平エッジであるので、エンコーダは、スライスの垂直エッジの量とスライスの高さとに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整し得る。図４に示すように、第２のスライス１０４は、５個の水平エッジと２５個のピクセルの幅とを有し得る。
【０１３４】
[0138]  次いで、エンコーダは、第１の複数のラインのうちの１つのラインに関する第２の値と、第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定し得る。たとえば、エンコーダは、平均値を決定するために、第２の複数のラインのうちの１つのラインに関する第２の値に、第１の複数のラインに関する第２の値を加算し、その合計を２で除算し得る。いくつかの例では、エンコーダは、平均値を決定するために、第２の複数のラインに関する第２の値の合計に、第１の複数のラインに関する第２の値の合計を加算し、その合計を２で除算し得る。
【０１３５】
[0139]  上記で説明したように、次いで、エンコーダは、決定された平均値に基づいて、１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定し得る。
【０１３６】
[0140]  図５は、本開示の一つの実例を与える例示的なビデオ符号化方法を示すフロー図である。例示のために、図５の技法については、図１および図２のエンコーダ２０のコンテキスト内で説明されるが、エンコーダ２０の構成とは異なる構成を有するエンコーダは、図５の技法を実行し得る。
【０１３７】
[0141]  本開示の１つまたは複数の技法によれば、エンコーダ２０は、第１の複数のラインのうちの１つのラインに関する第１の値を決定し得る、ここにおいて、第１の複数のラインはビデオデータのブロックの第１のエッジと直交する（５０２）。前記第１の複数のラインは。次いで、エンコーダ２０は、第１の値がしきい値を満足するか否かを決定し得る（５０４）。第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、エンコーダ２０は、第１の複数のラインのうちの１つのラインに関する第２の値を決定し得る（５０６）。また、第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、エンコーダ２０は、第２の複数のラインのうちの１つのラインに関する第２の値を決定し得る、ここにおいて、前記第２の複数のラインビデオデータのブロックの第２のエッジと直交する（５０８）。
【０１３８】
[0142]  次いで、エンコーダ２０は、第１の複数のラインのうちの１つのラインに関する第２の値と、第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定し得る（５１０）。次いで、エンコーダ２０は、平均値に基づいて、１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定し得る（５１２）。１つまたは複数のデブロッキングパラメータオフセットを符号化することを決定することに応答して、エンコーダ２０は、１つまたは複数のデブロッキングパラメータオフセットを符号化し得る（５１４）。
【０１３９】
[0143]  例１：  第１の複数のラインのうちの１つのラインに関する第１の値を決定することと、ここにおいて、第１の複数のラインはビデオデータのブロックの第１のエッジと直交する、第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、第１の複数のラインのうちの１つのラインに関する第２の値を決定することと、第２の複数のラインのうちの１つのラインに関する第２の値を決定することと、ここにおいて、第２の複数のラインはビデオデータのブロックの第２のエッジと直交し、第１のエッジは垂直エッジまたは水平エッジであり、第２のエッジは垂直エッジまたは水平エッジの異なるエッジである、第１の複数のラインのうちの１つのラインに関する第２の値と第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定することと、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定することとを備える、ビデオデータを符号化するための方法。
【０１４０】
[0144]  例２：  ブロックは第１のブロックであり、第１のエッジは第１のブロックと第２のブロックとの間の境界であり、第１の複数のラインのうちの１つのラインに関する第１の値を決定することは、第１の複数のラインのうちの１つのラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定することと、ここにおいて、サンプル値の第１のセットは第１のブロックに含まれる、第１の複数のラインのうちの１つのラインに対応するビデオデータのサンプル値の第２のセットに基づいて第２の中間値を決定することと、ここにおいて、サンプル値の第２のセットは第２のブロックに含まれる、第１の中間値と第２の中間値とに基づいて第１の値を決定することとを備える、例１の方法。
【０１４１】
[0145]  例３：  第１の中間値は、以下の式ｄｐｉ＝｜ｐ２ｉ−２ｐ１ｉ＋ｐ０ｉ｜に従って概算的に決定され、ここにおいて、ｄｐｉは第１の中間値であり、ｐ２ｉ、ｐ１ｉ、およびｐ０ｉはサンプル値の第１のセットに含まれるサンプル値であり、第２の中間値は、以下の式ｄｑｉ＝｜ｑ０ｉ−２ｑ１ｉ＋ｑ２ｉ｜に従って概算的に決定され、ここにおいて、ｄｑｉは第２の中間値であり、ｑ０ｉ、ｑ１ｉ、およびｑ２ｉはサンプル値の第２のセットに含まれるサンプル値であり、第１の値は、以下の式ｄｉ＝（ｄｐｉ＋ｄｑｉ）に従って概算的に決定され、ここにおいて、ｄｉは第１の値である、例１と２との任意の組合せの方法。
【０１４２】
[0146]  例４：  第１の値が少なくとも１つのしきい値を満足することを決定することは、第１の値が第１のしきい値よりも大きく第２のしきい値よりも小さいことを決定すること備える、例１〜３の任意の組合せの方法。
【０１４３】
[0147]  例５：  第１の複数のラインのうちの１つのラインに関する第２の値を決定することは、第１の複数のラインの各ラインに関する第２の値を決定することと、第１の複数のラインの各ラインに関する第２の値の合計を決定することとを備え、第２の複数のラインのうちの１つのラインに関する第２の値を決定することは、第２の複数のラインの各ラインに関する第２の値を決定することと、第２の複数のラインの各ラインに関する第２の値の合計を決定することとを備え、平均値を決定することは、第１の複数のラインの各ラインに関する第２の値の合計と第２の複数のラインの各ラインに関する第２の値の合計とに基づいて平均値を決定することを備える、例１〜４の任意の組合せの方法。
【０１４４】
[0148]  例６：  ブロックは第１のブロックであり、第１のエッジは第１のブロックと第２のブロックとの間の境界であり、第２のエッジは第１のブロックと第３のブロックとの間の境界であり、第３のエッジは第１のブロックと第４のブロックとの間の境界であり、第４のエッジは第１のブロックと第５のブロックとの間の境界であり、第３のエッジは第１のエッジと平行であり、第４のエッジは第２のエッジと平行であり、本方法は、第３の複数のラインの各ラインに関する第２の値を決定することと、ここにおいて、第３の複数のラインは第３のエッジと直交する、第３の複数のラインの各ラインに関する第２の値の合計を決定すること、第４の複数のラインの各ラインに関する第２の値を決定することと、ここにおいて、第４の複数のラインは第４のエッジと直交する、第４の複数のラインの各ラインに関する第２の値の合計を決定することとをさらに備え、平均値を決定することは、第１の複数のラインの各ラインに関する第２の値の合計と、第２の複数のラインの各ラインに関する第２の値の合計と、第３の複数のラインの各ラインに関する第２の値の合計と、第４の複数のラインの各ラインに関する第２の値の合計とに基づいて平均値を決定することを備える、例１〜５の任意の組合せの方法。
【０１４５】
[0149]  例７：  ブロックは第１のブロックであり、第１のエッジは第１のブロックと第２のブロックとの間の境界であり、第２のエッジは第１のブロックと第３のブロックとの間の境界であり、第１の複数のラインのうちの１つのラインに関する第２の値を決定することは、第１のブロックに含まれるビデオデータの第１のサンプルと第２のブロックに含まれるビデオデータの第２のサンプルとに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を決定することとを備え、第２の複数のラインのうちの１つのラインに関する第２の値を決定することは、第１のブロックに含まれるビデオデータの第３のサンプルと第３のブロックに含まれるビデオデータの第４のサンプルとに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を決定することを備える、例１〜６の任意の組合せの方法。
【０１４６】
[0150]  例８：  ビデオデータのブロックは、ビデオデータのスライスに含まれ、本方法は、第１のエッジが水平エッジである場合、スライスの水平エッジの量とスライスの幅とに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整すること、スライスの垂直エッジの量とスライスの高さとに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整すること、または、第１のエッジが垂直エッジである場合、スライスの垂直エッジの量とスライスの高さとに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整すること、スライスの水平エッジの量とスライスの幅とに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整することをさらに備え、平均値を決定することは、第１の複数のラインのうちの１つのラインに関する調整された第２の値と第２の複数のラインのうちの１つのラインに関する調整された第２の値とに基づいて平均値を決定することを備える、例１〜７の任意の組合せの方法。
【０１４７】
[0151]  例９：  平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定すべきか否かを決定することは、平均値がしきい値よりも大きい場合、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定することと、平均値がしきい値よりも大きくない場合、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定しないこととを備える、例１〜８の任意の組合せの方法。
【０１４８】
[0152]  例１０：  １つまたは複数のデブロッキングパラメータオフセットは、ｔｃオフセット値およびベータオフセット値を備え、ｔｃオフセット値およびベータオフセット値は以下の式、ｔｃオフセット＝２*Ｃｌｉｐ３（ｔｈｒｅｓｈｏｌｄ３，ｔｈｒｅｓｈｏｌｄ４，ａｖｇ／ｖａｌｕｅ２）およびベータオフセット＝２*Ｃｌｉｐ３（ｔｈｒｅｓｈｏｌｄ５，ｔｈｒｅｓｈｏｌｄ６，ａｖｇ／ｖａｌｕｅ３）に従って概算的に決定され、ここにおいて、ａｖｇは平均値であり、ｔｈｒｅｓｈｏｌｄ３、ｔｈｒｅｓｈｏｌｄ４、ｔｈｒｅｓｈｏｌｄ５、およびｔｈｒｅｓｈｏｌｄ６はしきい値であり、ｖａｌｕｅ２およびｖａｌｕｅ３はスケーリング値であり、関数Ｃｌｉｐ３は次のように定義される、例１〜９の任意の組合せの方法。
【数２４】
0006345694.tif 000026
【０１４９】
[0153]  例１１：  第１の複数のラインのうちの１つのラインに関する第１の値を決定し、ここにおいて、第１の複数のラインはビデオデータのブロックの第１のエッジと直交する、第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、第１の複数のラインのうちの１つのラインに関する第２の値を決定し、第２の複数のラインのうちの１つのラインに関する第２の値を決定し、ここにおいて、第２の複数のラインはビデオデータのブロックの第２のエッジと直交し、第１のエッジは垂直エッジまたは水平エッジであり、第２のエッジは垂直エッジまたは水平エッジの異なるエッジである、第１の複数のラインのうちの１つのラインに関する第２の値と第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定し、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定するように構成された１つまたは複数のプロセッサを備える、ビデオデータを符号化するためのデバイス。
【０１５０】
[0154]  例１２：  ブロックは第１のブロックであり、第１のエッジは第１のブロックと第２のブロックとの間の境界であり、１つまたは複数のプロセッサは、少なくとも、第１の複数のラインのうちの１つのラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定することと、ここにおいて、サンプル値の第１のセットは第１のブロックに含まれる、第１の複数のラインのうちの１つのラインに対応するビデオデータのサンプル値の第２のセットに基づいて第２の中間値を決定することと、ここにおいて、サンプル値の第２のセットは第２のブロックに含まれる、第１の中間値と第２の中間値とに基づいて第１の値を決定することとによって、複数のラインのうちの１つのラインに関する第１の値を決定するように構成される、例１１のデバイス。
【０１５１】
[0155]  例１３：  １つまたは複数のプロセッサは、以下の式ｄｐｉ＝｜ｐ２ｉ−２ｐ１ｉ＋ｐ０ｉ｜に従って第１の中間値を概算的に決定するように構成され、ここにおいて、ｄｐｉは第１の中間値であり、ｐ２ｉ、ｐ１ｉ、およびｐ０ｉはサンプル値の第１のセットに含まれるサンプル値であり、１つまたは複数のプロセッサは、以下の式ｄｑｉ＝｜ｑ０ｉ−２ｑ１ｉ＋ｑ２ｉ｜に従って第２の中間値を概算的に決定するように構成され、ここにおいて、ｄｑｉは第２の中間値であり、ｑ０ｉ、ｑ１ｉ、およびｑ２ｉはサンプル値の第２のセットに含まれるサンプル値であり、１つまたは複数のプロセッサは、以下の式ｄｉ＝（ｄｐｉ＋ｄｑｉ）に従って第１の値を概算的に決定するように構成され、ここにおいて、ｄｉは第１の値である、例１１と１２との任意の組合せのデバイス。
【０１５２】
[0156]  例１４：  １つまたは複数のプロセッサは、少なくとも、第１の値が第１のしきい値よりも大きく第２のしきい値よりも小さいことを決定することによって、第１の値が少なくとも１つのしきい値を満足することを決定するように構成される、例１１〜１３の任意の組合せのデバイス。
【０１５３】
[0157]  例１５：  １つまたは複数のプロセッサは、少なくとも、第１の複数のラインの各ラインに関する第２の値を決定することと、第１の複数のラインの各ラインに関する第２の値の合計を決定することとによって、第１の複数のラインのうちの１つのラインに関する第２の値を決定するように構成され、１つまたは複数のプロセッサは、少なくとも、第２の複数のラインの各ラインに関する第２の値を決定することと、第２の複数のラインの各ラインに関する第２の値の合計を決定することとによって、第２の複数のラインのうちの１つのラインに関する第２の値を決定するように構成され、１つまたは複数のプロセッサは、少なくとも、第１の複数のラインの各ラインに関する第２の値の合計と第２の複数のラインの各ラインに関する第２の値の合計とに基づいて平均値を決定することによって平均値を決定するように構成される、例１１〜１４の任意の組合せのデバイス。
【０１５４】
[0158]  例１６：  ブロックは第１のブロックであり、第１のエッジは第１のブロックと第２のブロックとの間の境界であり、第２のエッジは第１のブロックと第３のブロックとの間の境界であり、第３のエッジは第１のブロックと第４のブロックとの間の境界であり、第４のエッジは第１のブロックと第５のブロックとの間の境界であり、第３のエッジは第１のエッジと平行であり、第４のエッジは第２のエッジと平行であり、１つまたは複数のプロセッサは、第３の複数のラインの各ラインに関する第２の値を決定し、ここにおいて、第３の複数のラインは第３のエッジと直交する、第３の複数のラインの各ラインに関する第２の値の合計を決定し、第４の複数のラインの各ラインに関する第２の値を決定し、ここにおいて、第４の複数のラインは第４のエッジと直交する、第４の複数のラインの各ラインに関する第２の値の合計を決定するようにさらに構成され、平均値を決定することは、第１の複数のラインの各ラインに関する第２の値の合計と、第２の複数のラインの各ラインに関する第２の値の合計と、第３の複数のラインの各ラインに関する第２の値の合計と、第４の複数のラインの各ラインに関する第２の値の合計とに基づいて平均値を決定することを備える、例１１〜１５の任意の組合せのデバイス。
【０１５５】
[0159]  例１７：  ブロックは第１のブロックであり、第１のエッジは第１のブロックと第２のブロックとの間の境界であり、第２のエッジは第１のブロックと第３のブロックとの間の境界であり、１つまたは複数のプロセッサは、少なくとも、第１のブロックに含まれるビデオデータの第１のサンプルと第２のブロックに含まれるビデオデータの第２のサンプルとに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を決定することによって第１の複数のラインのうちの１つのラインに関する第２の値を決定するように構成され、１つまたは複数のプロセッサは、少なくとも、第１のブロックに含まれるビデオデータの第３のサンプルと第３のブロックに含まれるビデオデータの第４のサンプルとに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を決定することによって、第２の複数のラインのうちの１つのラインに関する第２の値を決定するように構成される、例１１〜１６の任意の組合せのデバイス。
【０１５６】
[0160]  例１８：  ビデオデータのブロックは、ビデオデータのスライスに含まれ、１つまたは複数のプロセッサは、第１のエッジが水平エッジである場合、スライスの水平エッジの量とスライスの幅とに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整し、スライスの垂直エッジの量とスライスの高さとに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整するか、または、第１のエッジが垂直エッジである場合、スライスの垂直エッジの量とスライスの高さとに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整し、スライスの水平エッジの量とスライスの幅とに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整するようにさらに構成され、１つまたは複数のプロセッサは、少なくとも、第１の複数のラインのうちの１つのラインに関する調整された第２の値と第２の複数のラインのうちの１つのラインに関する調整された第２の値とに基づいて平均値を決定することによって平均値を決定するように構成される、例１１〜１７の任意の組合せのデバイス。
【０１５７】
[0161]  例１９：  １つまたは複数のプロセッサは、少なくとも、平均値がしきい値よりも大きい場合、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定することと、平均値がしきい値よりも大きくない場合、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定しないこととによって、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定すべきか否かを決定するように構成される、例１１〜１８の任意の組合せのデバイス。
【０１５８】
[0162]  例２０：  １つまたは複数のデブロッキングパラメータオフセットは、ｔｃオフセット値およびベータオフセット値を備え、１つまたは複数のプロセッサは、以下の式、ｔｃオフセット＝２*Ｃｌｉｐ３（ｔｈｒｅｓｈｏｌｄ３，ｔｈｒｅｓｈｏｌｄ４，ａｖｇ／ｖａｌｕｅ２）およびベータオフセット＝２*Ｃｌｉｐ３（ｔｈｒｅｓｈｏｌｄ５，ｔｈｒｅｓｈｏｌｄ６，ａｖｇ／ｖａｌｕｅ３）に従ってｔｃオフセット値およびベータオフセット値を概算的に決定するようにさらに構成され、ここにおいて、ａｖｇは平均値であり、ｔｈｒｅｓｈｏｌｄ３、ｔｈｒｅｓｈｏｌｄ４、ｔｈｒｅｓｈｏｌｄ５、およびｔｈｒｅｓｈｏｌｄ６はしきい値であり、ｖａｌｕｅ２およびｖａｌｕｅ３はスケーリング値であり、関数Ｃｌｉｐ３は次のように定義される、例１１〜１９の任意の組合せのデバイス。
【数２５】
0006345694.tif 000027
【０１５９】
[0163]  例２１：  第１の複数のラインのうちの１つのラインに関する第１の値を決定するための手段と、ここにおいて、第１の複数のラインはビデオデータのブロックの第１のエッジと直交する、第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、第１の複数のラインのうちの１つのラインに関する第２の値を決定するための手段と、値が少なくとも１つのしきい値を満足することを決定することに応答して、第２の複数のラインのうちの１つのラインに関する第２の値を決定するための手段と、ここにおいて、第２の複数のラインはビデオデータのブロックの第２のエッジと直交し、第１のエッジは垂直エッジまたは水平エッジであり、第２のエッジは垂直エッジまたは水平エッジの異なるエッジである、第１の複数のラインのうちの１つのラインに関する第２の値と第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定するための手段と、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定するための手段とを備える、ビデオデータを符号化するためのデバイス。
【０１６０】
[0164]  例２２：  ブロックは第１のブロックであり、第１のエッジは第１のブロックと第２のブロックとの間の境界であり、複数のラインのうちの１つのラインに関する第１の値を決定するための手段は、第１の複数のラインのうちの１つのラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定するための手段と、ここにおいて、サンプル値の第１のセットは第１のブロックに含まれる、第１の複数のラインのうちの１つのラインに対応するビデオデータのサンプル値の第２のセットに基づいて第２の中間値を決定するための手段と、ここにおいて、サンプル値の第２のセットは第２のブロックに含まれる、第１の中間値と第２の中間値とに基づいて第１の値を決定するための手段とを備える、例２１のデバイス。
【０１６１】
[0165]  例２３：  第１の値が少なくとも１つのしきい値を満足することを決定するための手段は、第１の値が第１のしきい値よりも大きく第２のしきい値よりも小さいことを決定するための手段を備える、例２１と２２との任意の組合せのデバイス。
【０１６２】
[0166]  例２４：  第１の複数のラインのうちの１つのラインに関する第２の値を決定するための手段は、第１の複数のラインの各ラインに関する第２の値を決定するための手段と、第１の複数のラインの各ラインに関する第２の値の合計を決定するための手段とを備え、第２の複数のラインのうちの１つのラインに関する第２の値を決定するための手段は、第２の複数のラインの各ラインに関する第２の値を決定するための手段と、第２の複数のラインの各ラインに関する第２の値の合計を決定するための手段とを備え、平均値を決定するための手段は、第１の複数のラインの各ラインに関する第２の値の合計と第２の複数のラインの各ラインに関する第２の値の合計とに基づいて平均値を決定するための手段を備える、例２１〜２３の任意の組合せのデバイス。
【０１６３】
[0167]  例２５：  ビデオデータのブロックは、ビデオデータのスライスに含まれ、デバイスは、第１のエッジが水平エッジである場合、スライスの水平エッジの量とスライスの幅とに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整するための手段と、第１のエッジが水平エッジである場合、スライスの垂直エッジの量とスライスの高さとに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整するための手段と、第１のエッジが垂直エッジである場合、スライスの垂直エッジの量とスライスの高さとに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整するための手段と、第１のエッジが垂直エッジである場合、スライスの水平エッジの量とスライスの幅とに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整するための手段をさらに備え、平均値を決定するための手段は、第１の複数のラインのうちの１つのラインに関する調整された第２の値と第２の複数のラインのうちの１つのラインに関する調整された第２の値とに基づいて平均値を決定するための手段を備える、例２１〜２４の任意の組合せのデバイス。
【０１６４】
[0168]  例２６：  平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定すべきか否かを決定するための手段は、平均値がしきい値よりも大きい場合、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定するための手段と、平均値がしきい値よりも大きくない場合、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定しないための手段とを備える、例２１〜２５の任意の組合せのデバイス。
【０１６５】
[0169]  例２７：  １つまたは複数のデブロッキングパラメータオフセットは、ｔｃオフセット値およびベータオフセット値を備え、デバイスは、以下の式、ｔｃオフセット＝２*Ｃｌｉｐ３（ｔｈｒｅｓｈｏｌｄ３，ｔｈｒｅｓｈｏｌｄ４，ａｖｇ／ｖａｌｕｅ２）およびベータオフセット＝２*Ｃｌｉｐ３（ｔｈｒｅｓｈｏｌｄ５，ｔｈｒｅｓｈｏｌｄ６，ａｖｇ／ｖａｌｕｅ３）に従ってｔｃオフセット値およびベータオフセット値を概算的に決定するための手段をさらに備え、ここにおいて、ａｖｇは平均値であり、ｔｈｒｅｓｈｏｌｄ３、ｔｈｒｅｓｈｏｌｄ４、ｔｈｒｅｓｈｏｌｄ５、およびｔｈｒｅｓｈｏｌｄ６はしきい値であり、ｖａｌｕｅ２およびｖａｌｕｅ３はスケーリング値であり、関数Ｃｌｉｐ３は次のように定義される、例２１〜２６の任意の組合せのデバイス。
【数２６】
0006345694.tif 000028
【０１６６】
[0170]  例２８：  実行されるとき、１つまたは複数のプロセッサにビデオデータを符号化させる命令は、１つまたは複数のプロセッサに、第１の複数のラインのうちの１つのラインに関する第１の値を決定させ、ここにおいて、第１の複数のラインはビデオデータのブロックの第１のエッジと直交する、第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、第１の複数のラインのうちの１つのラインに関する第２の値を決定させ、第２の複数のラインのうちの１つのラインに関する第２の値を決定させ、ここにおいて、第２の複数のラインはビデオデータのブロックの第２のエッジと直交し、第１のエッジは垂直エッジまたは水平エッジであり、第２のエッジは垂直エッジまたは水平エッジの異なるエッジである、第１の複数のラインのうちの１つのラインに関する第２の値と第２の複数のラインのうちの１つのラインに関する第２の値とに基づいて平均値を決定させ、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定させる命令を備える、命令を記憶する非一時的コンピュータ可読記憶媒体。
【０１６７】
[0171]  例２９：  ブロックは第１のブロックであり、第１のエッジは第１のブロックと第２のブロックとの間の境界であり、１つまたは複数のプロセッサに複数のラインのうちの１つのラインに関する第１の値を決定させる命令は、１つまたは複数のプロセッサに、第１の複数のラインのうちの１つのラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定させ、ここにおいて、サンプル値の第１のセットは第１のブロックに含まれる、第１の複数のラインのうちの１つのラインに対応するビデオデータのサンプル値の第２のセットに基づいて第２の中間値を決定させ、ここにおいて、サンプル値の第２のセットは第２のブロックに含まれる、第１の中間値と第２の中間値とに基づいて第１の値を決定させる命令を備える、例２８の非一時的コンピュータ可読記憶媒体。
【０１６８】
[0172]  例３０：  １つまたは複数のプロセッサに、第１の値が少なくとも１つのしきい値を満足することを決定させる命令は、１つまたは複数のプロセッサに、第１の値が第１のしきい値よりも大きく第２のしきい値よりも小さいことを決定させる命令を備える、例２８と２９との任意の組合せの非一時的コンピュータ可読記憶媒体。
【０１６９】
[0173]  例３１：  １つまたは複数のプロセッサに第１の複数のラインのうちの１つのラインに関する第２の値を決定させる命令は、１つまたは複数のプロセッサに、第１の複数のラインの各ラインに関する第２の値を決定させ、第１の複数のラインの各ラインに関する第２の値の合計を決定させる命令を備え、１つまたは複数のプロセッサに第２の複数のラインのうちの１つのラインに関する第２の値を決定させる命令は、１つまたは複数のプロセッサに、第２の複数のラインの各ラインに関する第２の値を決定させ、第２の複数のラインの各ラインに関する第２の値の合計を決定させる命令を備え、１つまたは複数のプロセッサに平均値を決定させる命令は、第１の複数のラインの各ラインに関する第２の値の合計と第２の複数のラインの各ラインに関する第２の値の合計とに基づいて平均値を決定させる命令を備える、例２８〜３０の任意の組合せの非一時的コンピュータ可読記憶媒体。
【０１７０】
[0174]  例３２：  ビデオデータのブロックは、ビデオデータのスライスに含まれ、１つまたは複数のプロセッサに、第１のエッジが水平エッジである場合、スライスの水平エッジの量とスライスの幅とに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整させ、第１のエッジが水平エッジである場合、スライスの垂直エッジの量とスライスの高さとに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整させ、第１のエッジが垂直エッジである場合、スライスの垂直エッジの量とスライスの高さとに基づいて第１の複数のラインのうちの１つのラインに関する第２の値を調整させ、第１のエッジが垂直エッジである場合、スライスの水平エッジの量とスライスの幅とに基づいて第２の複数のラインのうちの１つのラインに関する第２の値を調整させる命令をさらに備え、１つまたは複数のプロセッサに平均値を決定させる命令は、１つまたは複数のプロセッサに、第１の複数のラインのうちの１つのラインに関する調整された第２の値と第２の複数のラインのうちの１つのラインに関する調整された第２の値とに基づいて平均値を決定させる命令を備える、例２８〜３１の任意の組合せの非一時的コンピュータ可読記憶媒体。
【０１７１】
[0175]  例３３：  １つまたは複数のプロセッサに、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定すべきか否かを決定させる命令は、１つまたは複数のプロセッサに、平均値がしきい値よりも大きい場合、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定させ、平均値がしきい値よりも大きくない場合、平均値に基づいて１つまたは複数のデブロッキングパラメータオフセットを決定させない命令を備える、例２８〜３２の任意の組合せの非一時的コンピュータ可読記憶媒体。
【０１７２】
[0176]  例３４：  １つまたは複数のデブロッキングパラメータオフセットは、ｔｃオフセット値およびベータオフセット値を備え、１つまたは複数のプロセッサに、以下の式、ｔｃオフセット＝２*Ｃｌｉｐ３（ｔｈｒｅｓｈｏｌｄ３，ｔｈｒｅｓｈｏｌｄ４，ａｖｇ／ｖａｌｕｅ２）およびベータオフセット＝２*Ｃｌｉｐ３（ｔｈｒｅｓｈｏｌｄ５，ｔｈｒｅｓｈｏｌｄ６，ａｖｇ／ｖａｌｕｅ３）に従ってｔｃオフセット値およびベータオフセット値を概算的に決定させる命令をさらに備え、ここにおいて、ａｖｇは平均値であり、ｔｈｒｅｓｈｏｌｄ３、ｔｈｒｅｓｈｏｌｄ４、ｔｈｒｅｓｈｏｌｄ５、およびｔｈｒｅｓｈｏｌｄ６はしきい値であり、ｖａｌｕｅ２およびｖａｌｕｅ３はスケーリング値であり、関数Ｃｌｉｐ３は次のように定義される、例２４〜３３の任意の組合せの非一時的コンピュータ可読記憶媒体。
【数２７】
0006345694.tif 000029
【０１７３】
[0177]  １つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１７４】
[0178]  限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１７５】
[0179]  命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１７６】
[0180]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１７７】
[0181]  様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを符号化するための方法であって、
第１の複数のラインのうちの１つのラインに関する第１の値を決定することと、ここにおいて、前記第１の複数のラインは、前記ビデオデータのブロックの第１のエッジと直交する、
前記第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、
前記第１の複数のラインのうちの前記１つのラインに関する第２の値を決定することと、
第２の複数のラインのうちの１つのラインに関する第２の値を決定することと、ここにおいて、前記第２の複数のラインはビデオデータの前記ブロックの第２のエッジと直交し、ここにおいて、前記第１のエッジは垂直エッジまたは水平エッジであり、ここにおいて、前記第２のエッジは前記垂直エッジまたは前記水平エッジの異なるエッジである、
前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値と、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値とに基づいて平均値を決定することと、
前記平均値に基づいて、１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定することと
を備える、方法。
［Ｃ２］
前記ブロックは第１のブロックであり、前記第１のエッジは前記第１のブロックと第２のブロックとの間の境界であり、前記第１の複数のラインのうちの前記１つのラインに関する前記第１の値を決定することは、
前記第１の複数のラインのうちの前記１つのラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定することと、ここにおいて、サンプル値の前記第１のセットは、前記第１のブロックに含まれる、
前記第１の複数のラインのうちの前記１つのラインに対応するビデオデータのサンプル値の第２のセットに基づいて第２の中間値を決定することと、ここにおいて、サンプル値の前記第２のセットは、前記第２のブロックに含まれる、
前記第１の中間値と前記第２の中間値とに基づいて前記第１の値を決定することとを備える、Ｃ１に記載の方法。
［Ｃ３］
前記第１の中間値は、以下の式に従って概算的に決定され、
【数２８】
0006345694.tif 000030
ここにおいて、ｄｐｉは前記第１の中間値であり、ここにおいて、ｐ２ｉ、ｐ１ｉ、およびｐ０ｉはサンプル値の前記第１のセットに含まれるサンプル値であり、前記第２の中間値は、以下の式に従って概算的に決定され、
【数２９】
0006345694.tif 000031
ここにおいて、ｄｑｉは前記第２の中間値であり、ここにおいて、ｑ０ｉ、ｑ１ｉ、およびｑ２ｉはサンプル値の前記第２のセットに含まれるサンプル値であり、前記第１の値は、以下の式に従って概算的に決定され、
【数３０】
0006345694.tif 000032
ここにおいて、ｄｉは前記第１の値である、Ｃ２に記載の方法。
［Ｃ４］
前記第１の値が少なくとも１つのしきい値を満足することを決定することは、
前記第１の値が第１のしきい値よりも大きく第２のしきい値よりも小さいことを決定することを備える、Ｃ１に記載の方法。
［Ｃ５］
前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を決定することは、
前記第１の複数のラインの各ラインに関する第２の値を決定することと、
前記第１の複数のラインの各ラインに関する前記第２の値の合計を決定することと
を備え、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を決定することは、
前記第２の複数のラインの各ラインに関する第２の値を決定することと、
前記第２の複数のラインの各ラインに関する前記第２の値の合計を決定することと
を備え、前記平均値を決定することは、
前記第１の複数のラインの各ラインに関する前記第２の値の前記合計と、前記第２の複数のラインの各ラインに関する前記第２の値の前記合計とに基づいて前記平均値を決定することとを備える、Ｃ１に記載の方法。
［Ｃ６］
前記ブロックは第１のブロックであり、前記第１のエッジは前記第１のブロックと第２のブロックとの間の境界であり、前記第２のエッジは前記第１のブロックと第３のブロックとの間の境界であり、第３のエッジは前記第１のブロックと第４のブロックとの間の境界であり、第４のエッジは前記第１のブロックと第５ブロックとの間の境界であり、前記第３のエッジは前記第１のエッジと平行であり、前記第４のエッジは前記第２のエッジと平行であり、前記方法は、
第３の複数のラインの各ラインに関する第２の値を決定することと、ここにおいて、前記第３の複数のラインは、前記第３のエッジと直交する、
前記第３の複数のラインの各ラインに関する前記第２の値の合計を決定することと、
第４の複数のラインの各ラインに関する第２の値を決定することと、ここにおいて、前記第４の複数のラインは、前記第４のエッジと直交する、
前記第４の複数のラインの各ラインに関する前記第２の値の合計を決定することと
をさらに備え、前記平均値を決定することは、
前記第１の複数のラインの各ラインに関する前記第２の値の前記合計と、前記第２の複数のラインの各ラインに関する前記第２の値の前記合計と、前記第３の複数のラインの各ラインに関する前記第２の値の前記合計と、前記第４の複数のラインの各ラインに関する前記第２の値の前記合計とに基づいて、前記平均値を決定することを備える、Ｃ５に記載の方法。
［Ｃ７］
前記ブロックは第１のブロックであり、前記第１のエッジは前記第１のブロックと第２のブロックとの間の境界であり、前記第２のエッジは前記第１のブロックと第３のブロックとの間の境界であり、前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を決定することは、
前記第１のブロックに含まれるビデオデータの第１のサンプルと前記第２のブロックに含まれるビデオデータの第２のサンプルとに基づいて、前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を決定することを備え、
前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を決定することは、
前記第１のブロックに含まれるビデオデータの第３のサンプルと前記第３のブロックに含まれるビデオデータの第４のサンプルとに基づいて、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を決定することを備える、Ｃ１に記載の方法。
［Ｃ８］
ビデオデータの前記ブロックはビデオデータのスライスに含まれ、前記方法は、
前記第１のエッジが水平エッジである場合、
前記スライスの水平エッジの量と前記スライスの幅とに基づいて、前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を調整することと、
前記スライスの垂直エッジの量と前記スライスの高さとに基づいて、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を調整することと、
前記第１のエッジが垂直エッジである場合、
前記スライスの垂直エッジの前記量と前記スライスの前記高さとに基づいて、前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を調整することと、
前記スライスの水平エッジの前記量と前記スライスの前記幅とに基づいて、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を調整することとをさらに備え、
ここにおいて、前記平均値を決定することは、
前記第１の複数のラインのうちの前記１つのラインに関する前記調整された第２の値と、前記第２の複数のラインのうちの前記１つのラインに関する前記調整された第２の値とに基づいて前記平均値を決定することを備える、Ｃ１に記載の方法。
［Ｃ９］
前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定すべきか否かを決定することは、
前記平均値がしきい値よりも大きい場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定することと、
前記平均値がしきい値よりも大きくない場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定しないことと
を備える、Ｃ１に記載の方法。
［Ｃ１０］
前記１つまたは複数のデブロッキングパラメータオフセットは、ｔｃオフセット値およびベータオフセット値を備え、ここにおいて、前記ｔｃオフセット値および前記ベータオフセット値は、以下の式に従って概算的に決定され、
【数３１】
0006345694.tif 000033
【数３２】
0006345694.tif 000034
ここにおいて、
ａｖｇは前記平均値であり、
ｔｈｒｅｓｈｏｌｄ３、ｔｈｒｅｓｈｏｌｄ４、ｔｈｒｅｓｈｏｌｄ５、およびｔｈｒｅｓｈｏｌｄ６はしきい値であり、
ｖａｌｕｅ２およびｖａｌｕｅ３はスケーリング値であり、
前記関数Ｃｌｉｐ３は、次のように定義される、
【数３３】
0006345694.tif 000035
Ｃ１に記載の方法。
［Ｃ１１］
１つまたは複数のプロセッサを備える、ビデオデータを符号化するためのデバイスであって、前記１つまたは複数のプロセッサは、
第１の複数のラインのうちの１つのラインに関する第１の値を決定する、ここにおいて、前記第１の複数のラインは、前記ビデオデータのブロックの第１のエッジと直交する、
前記第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、
前記第１の複数のラインのうちの前記１つのラインに関する第２の値を決定し、
第２の複数のラインのうちの１つのラインに関する第２の値を決定し、ここにおいて、前記第２の複数のラインはビデオデータの前記ブロックの第２のエッジと直交し、ここにおいて、前記第１のエッジは垂直エッジまたは水平エッジであり、ここにおいて、前記第２のエッジは前記垂直エッジまたは前記水平エッジの異なるエッジである、
前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値と、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値とに基づいて、平均値を決定する、および
前記平均値に基づいて、１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定するように構成される、デバイス。
［Ｃ１２］
前記ブロックは第１のブロックであり、前記第１のエッジは前記第１のブロックと第２のブロックとの間の境界であり、前記１つまたは複数のプロセッサは、少なくとも、
前記第１の複数のラインのうちの前記１つのラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定することと、ここにおいて、サンプル値の前記第１のセットは、前記第１のブロックに含まれる、
前記第１の複数のラインのうちの前記１つのラインに対応するビデオデータのサンプル値の第２のセットに基づいて第２の中間値を決定することと、ここにおいて、サンプル値の前記第２のセットは、前記第２のブロックに含まれる、
前記第１の中間値と前記第２の中間値とに基づいて前記第１の値を決定することとによって、前記複数のラインのうちの前記１つのラインに関する前記第１の値を決定するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１３］
前記１つまたは複数のプロセッサは、以下の式に従って前記第１の中間値を概算的に決定するように構成され、
【数３４】
0006345694.tif 000036
ここにおいて、ｄｐｉは前記第１の中間値であり、ここにおいて、ｐ２ｉ、ｐ１ｉ、およびｐ０ｉはサンプル値の前記第１のセットに含まれるサンプル値であり、前記１つまたは複数のプロセッサは、前記第２の中間値を以下の式に従って概算的に決定するように構成され、
【数３５】
0006345694.tif 000037
ここにおいて、ｄｑｉは前記第２の中間値であり、ここにおいて、ｑ０ｉ、ｑ１ｉ、およびｑ２ｉはサンプル値の前記第２のセットに含まれるサンプル値であり、前記１つまたは複数のプロセッサは、以下の式に従って前記第１の値を概算的に決定するように構成され、
【数３６】
0006345694.tif 000038
ここにおいて、ｄｉは前記第１の値である、Ｃ１２に記載のデバイス。
［Ｃ１４］
前記１つまたは複数のプロセッサは、少なくとも、
前記第１の値が第１のしきい値よりも大きく第２のしきい値よりも小さいことを決定することによって、前記第１の値が少なくとも１つのしきい値を満足することを決定するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１５］
前記１つまたは複数のプロセッサは、少なくとも、
前記第１の複数のラインの各ラインに関する第２の値を決定することと、
前記第１の複数のラインの各ラインに関する前記第２の値の合計を決定することと
によって前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を決定するように構成され、前記１つまたは複数のプロセッサは、少なくとも、
前記第２の複数のラインの各ラインに関する第２の値を決定することと、
前記第２の複数のラインの各ラインに関する前記第２の値の合計を決定することと
によって前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を決定するように構成され、前記１つまたは複数のプロセッサは、少なくとも、
前記第１の複数のラインの各ラインに関する前記第２の値の前記合計と、前記第２の複数のラインの各ラインに関する前記第２の値の前記合計とに基づいて、前記平均値を決定することによって、前記平均値を決定するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１６］
前記ブロックは第１のブロックであり、前記第１のエッジは前記第１のブロックと第２のブロックとの間の境界であり、前記第２のエッジは前記第１のブロックと第３のブロックとの間の境界であり、第３のエッジは前記第１のブロックと第４のブロックとの間の境界であり、第４のエッジは前記第１のブロックと第５のブロックとの間の境界であり、前記第３のエッジは前記第１のエッジと平行であり、前記第４のエッジは前記第２のエッジと平行であり、前記１つまたは複数のプロセッサは、
第３の複数のラインの各ラインに関する第２の値を決定し、ここにおいて、前記第３の複数のラインは、前記第３のエッジと直交する、
前記第３の複数のラインの各ラインに関する前記第２の値の合計を決定し、
第４の複数のラインの各ラインに関する第２の値を決定し、ここにおいて、前記第４の複数のラインは、前記第４のエッジと直交する、
前記第４の複数のラインの各ラインに関する前記第２の値の合計を決定するようにさらに構成され、前記平均値を決定することは、
前記第１の複数のラインの各ラインに関する前記第２の値の前記合計と、前記第２の複数のラインの各ラインに関する前記第２の値の前記合計と、前記第３の複数のラインの各ラインに関する前記第２の値の前記合計と、前記第４の複数のラインの各ラインに関する前記第２の値の前記合計とに基づいて、前記平均値を決定することを備える、Ｃ１５に記載のデバイス。
［Ｃ１７］
前記ブロックは第１のブロックであり、前記第１のエッジは前記第１のブロックと第２のブロックとの間の境界であり、前記第２のエッジは前記第１のブロックと第３のブロックとの間の境界であり、前記１つまたは複数のプロセッサは、少なくとも、
前記第１のブロックに含まれるビデオデータの第１のサンプルと前記第２のブロックに含まれるビデオデータの第２のサンプルとに基づいて、前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を決定することによって前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を決定するように構成され、
前記１つまたは複数のプロセッサは、少なくとも、
前記第１のブロックに含まれるビデオデータの第３のサンプルと前記第３のブロックに含まれるビデオデータの第４のサンプルとに基づいて、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を決定することによって、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を決定するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１８］
ビデオデータの前記ブロックはビデオデータのスライスに含まれ、前記１つまたは複数のプロセッサは、
前記第１のエッジが水平エッジである場合、
前記スライスの水平エッジの量と前記スライスの幅とに基づいて、前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を調整し、
前記スライスの垂直エッジの量と前記スライスの高さとに基づいて、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を調整し、
前記第１のエッジが垂直エッジである場合、
前記スライスの垂直エッジの前記量と前記スライスの前記高さとに基づいて、前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を調整し、
前記スライスの水平エッジの前記量と前記スライスの前記幅とに基づいて、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を調整するようにさらに構成され、
前記１つまたは複数のプロセッサは、少なくとも、
前記第１の複数のラインのうちの前記１つのラインに関する前記調整された第２の値と、前記第２の複数のラインのうちの前記１つのラインに関する前記調整された第２の値とに基づいて前記平均値を決定することによって、前記平均値を決定するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１９］
前記１つまたは複数のプロセッサは、少なくとも、
前記平均値がしきい値よりも大きい場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定することと、
前記平均値がしきい値よりも大きくない場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定しないことと
によって、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定すべきか否かを決定するように構成される、Ｃ１１に記載のデバイス。
［Ｃ２０］
前記１つまたは複数のデブロッキングパラメータオフセットは、ｔｃオフセット値およびベータオフセット値を備え、ここにおいて、前記１つまたは複数のプロセッサは、前記ｔｃオフセット値および前記ベータオフセット値を以下の式に従って概算的に決定するようにさらに構成され、
【数３７】
0006345694.tif 000039
【数３８】
0006345694.tif 000040
ここにおいて、
ａｖｇは前記平均値であり、
ｔｈｒｅｓｈｏｌｄ３、ｔｈｒｅｓｈｏｌｄ４、ｔｈｒｅｓｈｏｌｄ５、およびｔｈｒｅｓｈｏｌｄ６はしきい値であり、
ｖａｌｕｅ２およびｖａｌｕｅ３はスケーリング値であり、
前記関数Ｃｌｉｐ３は、次のように定義される、
【数３９】
0006345694.tif 000041
Ｃ１１に記載のデバイス。
［Ｃ２１］
ビデオデータを符号化するためのデバイスであって、
第１の複数のラインのうちの１つのラインに関する第１の値を決定するための手段と、ここにおいて、前記第１の複数のラインは、前記ビデオデータのブロックの第１のエッジと直交する、
前記第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、前記第１の複数のラインのうちの前記１つのラインに関する第２の値を決定するための手段と、
前記値が前記少なくとも１つのしきい値を満足することを決定することに応答して、第２の複数のラインのうちの１つのラインに関する第２の値を決定するための手段と、ここにおいて、前記第２の複数のラインはビデオデータの前記ブロックの第２のエッジと直交し、ここにおいて、前記第１のエッジは垂直エッジまたは水平エッジであり、ここにおいて、前記第２のエッジは前記垂直エッジまたは前記水平エッジの異なるエッジである、
前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値と、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値とに基づいて平均値を決定するための手段と、
前記平均値に基づいて、１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定するための手段と
を備える、デバイス。
［Ｃ２２］
前記ブロックは第１のブロックであり、前記第１のエッジは前記第１のブロックと第２のブロックとの間の境界であり、前記複数のラインのうちの前記１つのラインに関する前記第１の値を決定するための前記手段は、
前記第１の複数のラインのうちの前記１つのラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定するための手段と、ここにおいて、サンプル値の前記第１のセットは、前記第１のブロックに含まれる、
前記第１の複数のラインのうちの前記１つのラインに対応するビデオデータのサンプル値の第２のセットに基づいて第２の中間値を決定するための手段と、ここにおいて、サンプル値の前記第２のセットは、前記第２のブロックに含まれる、
前記第１の中間値と前記第２の中間値とに基づいて前記第１の値を決定するための手段とを備える、Ｃ２１に記載のデバイス。
［Ｃ２３］
前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を決定するための前記手段は、
前記第１の複数のラインの各ラインに関する第２の値を決定するための手段と、
前記第１の複数のラインの各ラインに関する前記第２の値の合計を決定するための手段と
を備え、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を決定するための前記手段は、
前記第２の複数のラインの各ラインに関する第２の値を決定するための手段と、
前記第２の複数のラインの各ラインに関する前記第２の値の合計を決定するための手段と
を備え、前記平均値を決定するための手段は、
前記第１の複数のラインの各ラインに関する前記第２の値の前記合計と、前記第２の複数のラインの各ラインに関する前記第２の値の前記合計とに基づいて前記平均値を決定するための手段を備える、Ｃ２１に記載のデバイス。
［Ｃ２４］
ビデオデータの前記ブロックはビデオデータのスライスに含まれ、前記デバイスは、
前記第１のエッジが水平エッジである場合、前記スライスの水平エッジの量と前記スライスの幅とに基づいて前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を調整するための手段と、
前記第１のエッジが水平エッジである場合、前記スライスの垂直エッジの量と前記スライスの高さとに基づいて前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を調整するための手段と、
前記第１のエッジが垂直エッジである場合、前記スライスの垂直エッジの前記量と前記スライスの前記高さとに基づいて前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を調整するための手段と、
前記第１のエッジが垂直エッジである場合、前記スライスの水平エッジの前記量と前記スライスの前記幅とに基づいて前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を調整するための手段とをさらに備え、
前記平均値を決定するための前記手段は、
前記第１の複数のラインのうちの前記１つのラインに関する前記調整された第２の値と、前記第２の複数のラインのうちの前記１つのラインに関する前記調整された第２の値とに基づいて、前記平均値を決定するための手段を備える、Ｃ２１に記載のデバイス。
［Ｃ２５］
前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定すべきか否かを決定するための前記手段は、
前記平均値がしきい値よりも大きい場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定するための手段と、
前記平均値がしきい値よりも大きくない場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定しないための手段と
を備える、Ｃ２１に記載のデバイス。
［Ｃ２６］
実行されたとき、１つまたは複数のプロセッサにビデオデータを符号化させる命令を記憶した非一時的コンピュータ可読記憶媒体であって、ここにおいて、前記１つまたは複数のプロセッサにビデオデータを符号化させる前記命令は、前記１つまたは複数のプロセッサに、
第１の複数のラインのうちの１つのラインに関する第１の値を決定させ、ここにおいて、前記第１の複数のラインは、前記ビデオデータのブロックの第１のエッジと直交する、
前記第１の値が少なくとも１つのしきい値を満足することを決定することに応答して、
前記第１の複数のラインのうちの前記１つのラインに関する第２の値を決定させ、
第２の複数のラインのうちの１つのラインに関する第２の値を決定させ、ここにおいて、前記第２の複数のラインはビデオデータの前記ブロックの第２のエッジと直交し、ここにおいて、前記第１のエッジは垂直エッジまたは水平エッジであり、ここにおいて、前記第２のエッジは前記垂直エッジまたは前記水平エッジの異なるエッジである、
前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値と、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値とに基づいて平均値を決定させ、
前記平均値に基づいて、１つまたは複数のデブロッキングパラメータオフセットを符号化すべきか否かを決定させる命令を備える、前記命令を記憶した非一時的コンピュータ可読記憶媒体。
［Ｃ２７］
前記ブロックは第１のブロックであり、前記第１のエッジは前記第１のブロックと第２のブロックとの間の境界であり、前記１つまたは複数のプロセッサに前記複数のラインのうちの前記１つのラインに関する前記第１の値を決定させる前記命令は、前記１つまたは複数のプロセッサに、
前記第１の複数のラインのうちの前記１つのラインに対応するビデオデータのサンプル値の第１のセットに基づいて第１の中間値を決定させ、ここにおいて、サンプル値の前記第１のセットは、前記第１のブロックに含まれる、
前記第１の複数のラインのうちの前記１つのラインに対応するビデオデータのサンプル値の第２のセットに基づいて第２の中間値を決定させ、ここにおいて、サンプル値の前記第２のセットは、前記第２のブロックに含まれる、
前記第１の中間値と前記第２の中間値とに基づいて前記第１の値を決定させる命令を備える、Ｃ２６に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２８］
前記１つまたは複数のプロセッサに、前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を決定させる前記命令は、前記１つまたは複数のプロセッサに、
前記第１の複数のラインの各ラインに関する第２の値を決定させ、
前記第１の複数のラインの各ラインに関する前記第２の値の合計を決定させる命令を備え、前記１つまたは複数のプロセッサに、前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を決定させる前記命令は、前記１つまたは複数のプロセッサに、
前記第２の複数のラインの各ラインに関する第２の値を決定させ、
前記第２の複数のラインの各ラインに関する前記第２の値の合計を決定させる命令を備え、前記１つまたは複数のプロセッサに、前記平均値を決定させる前記命令は、前記１つまたは複数のプロセッサに、
前記第１の複数のラインの各ラインに関する前記第２の値の前記合計と、前記第２の複数のラインの各ラインに関する前記第２の値の前記合計とに基づいて前記平均値を決定させる命令を備える、Ｃ２６に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２９］
ビデオデータの前記ブロックはビデオデータのスライスに含まれ、前記１つまたは複数のプロセッサに、
前記第１のエッジが水平エッジである場合、前記スライスの水平エッジの量と前記スライスの幅とに基づいて前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を調整させ、
前記第１のエッジが水平エッジである場合、前記スライスの垂直エッジの量と前記スライスの高さとに基づいて前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を調整させ、
前記第１のエッジが垂直エッジである場合、前記スライスの垂直エッジの量と前記スライスの高さとに基づいて前記第１の複数のラインのうちの前記１つのラインに関する前記第２の値を調整させ、
前記第１のエッジが垂直エッジである場合、前記スライスの水平エッジの量と前記スライスの幅とに基づいて前記第２の複数のラインのうちの前記１つのラインに関する前記第２の値を調整させる命令をさらに備え、
前記１つまたは複数のプロセッサに前記平均値を決定させる前記命令は、前記１つまたは複数のプロセッサに、
前記第１の複数のラインのうちの前記１つのラインに関する前記調整された第２の値と、前記第２の複数のラインのうちの前記１つのラインに関する前記調整された第２の値とに基づいて前記平均値を決定させる命令を備える、Ｃ２６に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３０］
前記１つまたは複数のプロセッサに、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定すべきか否かを決定させる前記命令は、前記１つまたは複数のプロセッサに、
前記平均値がしきい値よりも大きい場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定させ、
前記平均値がしきい値よりも大きくない場合、前記平均値に基づいて前記１つまたは複数のデブロッキングパラメータオフセットを決定させない命令を備える、Ｃ２６に記載の非一時的コンピュータ可読記憶媒体。
【図１】
0006345694.tif 000048
【図２】
0006345694.tif 000049
【図３】
0006345694.tif 000050
【図４】
0006345694.tif 000051
【図５】
0006345694.tif 000052