(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
ビットストリームを受信することと、
前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成することと、
前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、第１のビデオブロックを生成することと、
前記第１のビデオブロックと第２のビデオブロックとの間のエッジがコード化単位（ＣＵ）エッジであるかどうかを決定することなく、前記第１のビデオブロック又は前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定することに応答して、第１の境界強度値を前記エッジと関連付けることと、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック又は前記第２のビデオブロックが０ではない変換係数レベルを有する変換単位（ＴＵ）と関連付けられると決定することに応答して、第２の境界強度値を前記エッジと関連付けることと、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック及び前記第２のビデオブロックが０ではない変換係数レベルを有するＴＵと関連付けられない場合、前記第２の境界強度値又は第３の境界強度値のいずれかを前記エッジと関連付けることと、ここにおいて、前記第２の境界強度値は、
前記第１のビデオブロック及び前記第２のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと
のうちの１つ以上の追加の条件が満たされるとき、前記エッジと関連付けられる、
前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに１つ以上のデブロッキングフィルタを適用することと
を備える、方法。
【請求項２】
ビデオデータを符号化する方法であって、
第１のビデオブロックと第２のビデオブロックとの間のエッジがコード化単位（ＣＵ）エッジであるかどうかを決定することなく、前記第１のビデオブロック又は前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定することに応答して、第１の境界強度値を前記エッジと関連付けることと、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック又は前記第２のビデオブロックが０ではない変換係数レベルを有する変換単位（ＴＵ）と関連付けられると決定することに応答して、第２の境界強度値を前記エッジと関連付けることと、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック及び前記第２のビデオブロックが０ではない変換係数レベルを有するＴＵと関連付けられない場合、前記第２の境界強度値又は第３の境界強度値のいずれかを前記エッジと関連付けることと、ここにおいて、前記第２の境界強度値は、
前記第１のビデオブロック及び前記第２のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと
のうちの１つ以上の追加の条件が満たされるとき、前記エッジと関連付けられる、
前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに１つ以上のデブロッキングフィルタを適用することと、
前記エッジと関連付けられる前記サンプルに前記１つ以上のデブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成することと、
その値が前記予測されたビデオブロックに少なくとも一部基づく、１つ以上のシンタクス要素を含むビットストリームを出力することと
を備える、方法。
【請求項３】
前記第１の境界強度値が２に等しく、前記第２の境界強度値が１に等しく、前記第３の境界強度値が０に等しい、請求項１または２に記載の方法。
【請求項４】
前記１つ以上のデブロッキングフィルタを適用することが、
前記エッジが前記第１の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用することと、
前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用することと
を備える、請求項１または２に記載の方法。
【請求項５】
デブロッキング量子化パラメータ（ＱＰ）値に基づいて、かつ、前記第１の境界強度値又は前記第２の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第１の閾値と第２の閾値とを決定することと、
前記第１の閾値又は前記第２の閾値が０に等しいかどうかを決定することと、
前記第１の閾値又は前記第２の閾値のいずれかが０に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用しないこととを更に備え、
前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することが、前記エッジが前記第１の境界強度値又は第２の境界強度値と関連付けられる場合、かつ、前記第１の閾値も前記第２の閾値も０に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することを備える、請求項４に記載の方法。
【請求項６】
前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することが、
単一の乗算演算のみを使用してデルタ値を計算することと、
前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を決定することと
を備える、請求項４に記載の方法。
【請求項７】
前記エッジの高さ又は幅が８個のルーマサンプルであり、前記８個のルーマサンプルが第１のエッジセグメント及び第２のエッジセグメントに等しく分割され、第１から第７のラインを備え、
前記方法は、
前記エッジと交差するサンプルの第３のラインに基づいて、前記第１のエッジセグメントと関連付けられるルーマサンプルに第１のデブロッキングフィルタを適用するか第２のデブロッキングフィルタを適用するかどうかを決定することと、前記第１のデブロッキングフィルタは、前記エッジの両側にある最大で３つのルーマサンプルを修正し、前記第２のデブロッキングフィルタは、前記エッジの両側にある最大で２つのルーマサンプルを修正する、
前記エッジと交差するサンプルの第６のラインに基づいて、前記第２のエッジセグメントと関連付けられるルーマサンプルに第３のデブロッキングフィルタを適用するか第４のデブロッキングフィルタを適用するかどうかを決定することと、を更に備え、前記第３のデブロッキングフィルタは、前記エッジの両側にある最大で３つのルーマサンプルを修正し、前記第４のデブロッキングフィルタは、前記エッジの両側にある最大で２つのルーマサンプルを修正する、請求項４に記載の方法。
【請求項８】
前記エッジがクロマエッジであり、前記クロマエッジがイントラスライスと関連付けられるかどうかを決定することを更に備え、
前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することが、前記クロマエッジがＩスライスと関連付けられ、前記クロマエッジが前記第１の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することを備える、請求項４に記載の方法。
【請求項９】
Ｎ×Ｎのグリッドに従って、変換単位（ＴＵ）のエッジと予測単位（ＰＵ）のエッジとを識別することと、
クロマビデオブロックがＮ×Ｎのサンプルよりも大きいサイズを有するかどうかを決定することと
を更に備え、
クロマサンプルにデブロッキングフィルタを適用することが、
前記クロマビデオブロックがＮ×Ｎのサンプル以下のサイズを有する場合、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することと、
前記クロマビデオブロックがＮ×Ｎのサンプルよりも大きいサイズを有する場合、前記クロマビデオブロックの内部にある前記グリッドのエッジに対して、前記クロマサンプルに適用される前記デブロッキングフィルタを無効にすることと
を備える、請求項４に記載の方法。
【請求項１０】
ビデオデータを復号するための装置であって、
ビデオデータを記憶するように構成されたメモリと
ビットストリームを受信し、
前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成し、
前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、前記ビデオデータの第１のビデオブロックを生成し、
前記第１のビデオブロックと第２のビデオブロックとの間のエッジがコード化単位（ＣＵ）エッジであるかどうかを決定することなく、前記第１のビデオブロック又は前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定することに応答して、第１の境界強度値を前記エッジと関連付けることと、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック又は前記第２のビデオブロックが０ではない変換係数レベルを有する変換単位（ＴＵ）と関連付けられると決定することに応答して、第２の境界強度値を前記エッジと関連付け、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック及び前記第２のビデオブロックが０ではない変換係数レベルを有するＴＵと関連付けられない場合、前記第２の境界強度値又は第３の境界強度値のいずれかを前記エッジと関連付け、ここにおいて、前記第２の境界強度値は、
前記第１のビデオブロック及び前記第２のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと
のうちの１つ以上の追加の条件が満たされるとき、前記エッジと関連付けられる、
前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルにデブロッキングフィルタを適用する
ように構成される、１つ以上のプロセッサと、
を備える、装置。
【請求項１１】
ビデオデータを符号化するための装置であって、
符号化されたビデオデータを記憶するように構成されたメモリと、
第１のビデオブロックと第２のビデオブロックとの間のエッジがコード化単位（ＣＵ）エッジであるかどうかを決定することなく、前記第１のビデオブロック又は前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定することに応答して、第１の境界強度値を前記エッジと関連付け、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック又は前記第２のビデオブロックが０ではない変換係数レベルを有する変換単位（ＴＵ）と関連付けられると決定することに応答して、第２の境界強度値を前記エッジと関連付け、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック及び前記第２のビデオブロックが０ではない変換係数レベルを有するＴＵと関連付けられない場合、前記第２の境界強度値又は第３の境界強度値のいずれかを前記エッジと関連付けることと、ここにおいて、前記第２の境界強度値は、
前記第１のビデオブロック及び前記第２のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと
のうちの１つ以上の追加の条件が満たされるとき、前記エッジと関連付けられる、
前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに１つ以上のデブロッキングフィルタを適用し、
前記エッジと関連付けられる前記サンプルに前記１つ以上のデブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成し、
その値が前記予測されたビデオブロックに少なくとも一部基づく、１つ以上のシンタクス要素を含むビットストリームを出力する
ように構成される、１つ以上のプロセッサと、
を備える、装置。
【請求項１２】
前記第１の境界強度値が２に等しく、前記第２の境界強度値が１に等しく、前記第３の境界強度値が０に等しい、請求項１０または１１に記載の装置。
【請求項１３】
前記１つ以上のプロセッサが、
前記エッジが前記第１の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用し、
前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用する
ように構成される、請求項１０または１１に記載の装置。
【請求項１４】
前記１つ以上のプロセッサが更に、
デブロッキング量子化パラメータ（ＱＰ）値に基づいて、かつ、前記第１の境界強度値又は前記第２の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第１の閾値と第２の閾値とを決定し、
前記第１の閾値又は前記第２の閾値が０に等しいかどうかを決定し、
前記第１の閾値又は前記第２の閾値のいずれかが０に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用せず、
前記エッジが前記第１の境界強度値又は第２の境界強度値と関連付けられる場合、かつ、前記第１の閾値も前記第２の閾値も０に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するように構成される、請求項１３に記載の装置。
【請求項１５】
前記１つ以上のプロセッサが、
単一の乗算演算のみを使用してデルタ値を計算し、
前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を決定するように構成される、請求項１３に記載の装置。
【請求項１６】
前記エッジの高さ又は幅が８個のルーマサンプルであり、前記８個のルーマサンプルが第１のエッジセグメント及び第２のエッジセグメントに等しく分割され、第１から第７のラインを備え、
前記１つ以上のプロセッサが、
前記エッジと交差するサンプルの第３のラインに基づいて、前記第１のエッジセグメントと関連付けられるルーマサンプルに第１のデブロッキングフィルタを適用するかどうかを決定し、
前記エッジと交差するサンプルの第６のラインに基づいて、前記第２のエッジセグメントと関連付けられるルーマサンプルに前記第１のデブロッキングフィルタを適用するかどうかを決定し、
前記第１のエッジセグメントと関連付けられる前記ルーマサンプルに前記第１のデブロッキングフィルタを適用するかどうかの前記決定に基づいて、前記第１のエッジセグメントと関連付けられる前記ルーマサンプルに、前記第１のデブロッキングフィルタ又は第２のデブロッキングフィルタを適用し、前記第１のデブロッキングフィルタは、前記エッジの両側にある最大で３つのルーマサンプルを修正し、前記第２のデブロッキングフィルタは、前記エッジの両側にある最大で２つのルーマサンプルを修正する、
前記第２のエッジセグメントと関連付けられる前記ルーマサンプルに前記第１のデブロッキングフィルタを適用するかどうかの前記決定に基づいて、前記第２のエッジセグメントと関連付けられる前記ルーマサンプルに、前記第１のデブロッキングフィルタ又は前記第２のデブロッキングフィルタを適用するように構成される、請求項１３に記載の装置。
【請求項１７】
前記エッジがクロマエッジであり、前記１つ以上のプロセッサが、
前記クロマエッジがＩスライスと関連付けられるかどうかを決定し、
前記クロマエッジがＩスライスと関連付けられ、前記クロマエッジが前記第１の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するように構成される、請求項１３に記載の装置。
【請求項１８】
前記１つ以上のプロセッサが、
前記エッジが３２×３２の変換単位（ＴＵ）の外部エッジに対応するかどうかを決定し、
前記エッジが前記３２×３２のＴＵの外部エッジに対応し、前記エッジが前記第１の境界強度値と関連付けられる場合にのみ、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するように構成される、請求項１３に記載の装置。
【請求項１９】
ビデオデータを復号するための装置であって、
ビットストリームを受信するための手段と、
前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成するための手段と、
前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、第１のビデオブロックを生成するための手段と、
前記第１のビデオブロックと第２のビデオブロックとの間のエッジがコード化単位（ＣＵ）エッジであるかどうかを決定することなく、前記第１のビデオブロック又は前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定することに応答して、第１の境界強度値を前記エッジと関連付けるための手段と、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック又は前記第２のビデオブロックが０ではない変換係数レベルを有する変換単位（ＴＵ）と関連付けられると決定することに応答して、第２の境界強度値を前記エッジと関連付けるための手段と、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック及び前記第２のビデオブロックが０ではない変換係数レベルを有するＴＵと関連付けられない場合、前記第２の境界強度値又は第３の境界強度値のいずれかを前記エッジと関連付けるための手段と、ここにおいて、前記第２の境界強度値は、
前記第１のビデオブロック及び前記第２のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと
のうちの１つ以上の追加の条件が満たされるとき、前記エッジと関連付けられる、
前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに１つ以上のデブロッキングフィルタを適用するための手段とを備える、装置。
【請求項２０】
ビデオデータを符号化するための装置であって、
第１のビデオブロックと第２のビデオブロックとの間のエッジがコード化単位（ＣＵ）エッジであるかどうかを決定することなく、前記第１のビデオブロック又は前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定することに応答して、第１の境界強度値を前記エッジと関連付けるための手段と、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック又は前記第２のビデオブロックが０ではない変換係数レベルを有する変換単位（ＴＵ）と関連付けられると決定することに応答して、第２の境界強度値を前記エッジと関連付けるための手段と、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック及び前記第２のビデオブロックが０ではない変換係数レベルを有するＴＵと関連付けられない場合、前記第２の境界強度値又は第３の境界強度値のいずれかを前記エッジと関連付けることと、ここにおいて、前記第２の境界強度値は、
前記第１のビデオブロック及び前記第２のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと
のうちの１つ以上の追加の条件が満たされるとき、前記エッジと関連付けられる、
前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに１つ以上のデブロッキングフィルタを適用するための手段と、
前記エッジと関連付けられる前記サンプルに前記１つ以上のデブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成するための手段と、
その値が前記予測されたビデオブロックに少なくとも一部基づく、１つ以上のシンタクス要素を含むビットストリームを出力するための手段と
を備える、装置。
【請求項２１】
前記第１の境界強度値が２に等しく、前記第２の境界強度値が１に等しく、前記第３の境界強度値が０に等しい、請求項１９または２０に記載の装置。
【請求項２２】
前記１つ以上のデブロッキングフィルタを適用するための前記手段が、
前記エッジが前記第１の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用するための手段と、
前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用するための手段とを備える、請求項１９または２０に記載の装置。
【請求項２３】
ビデオコード化装置は、
デブロッキング量子化パラメータ（ＱＰ）値に基づいて、かつ、前記第１の境界強度値又は前記第２の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第１の閾値と第２の閾値とを決定するための手段と、
前記第１の閾値又は前記第２の閾値が０に等しいかどうかを決定するための手段と、
前記第１の閾値又は前記第２の閾値のいずれかが０に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用しないための手段とを更に備え、
前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための前記手段が、前記エッジが前記第１の境界強度値又は第２の境界強度値と関連付けられる場合、かつ、前記第１の閾値も前記第２の閾値も０に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための手段を備える、請求項２２に記載の装置。
【請求項２４】
前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための前記手段が、
単一の乗算演算のみを使用してデルタ値を計算するための手段と、
前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を決定するための手段とを備える、請求項２２に記載の装置。
【請求項２５】
前記エッジの高さ又は幅が８個のルーマサンプルであり、前記８個のルーマサンプルが第１のエッジセグメント及び第２のエッジセグメントに等しく分割され、第１から第７のラインを備え、
ビデオコード化装置は、
前記エッジと交差するサンプルの第３のラインに基づいて、前記第１のエッジセグメントと関連付けられるルーマサンプルに第１のデブロッキングフィルタを適用するか第２のデブロッキングフィルタを適用するかどうかを決定するための手段と、前記第１のデブロッキングフィルタは、前記エッジの両側にある最大で３つのルーマサンプルを修正し、前記第２のデブロッキングフィルタは、前記エッジの両側にある最大で２つのルーマサンプルを修正する
前記エッジと交差するサンプルの第６のラインに基づいて、前記第２のエッジセグメントと関連付けられるルーマサンプルに第３のデブロッキングフィルタを適用するか第４のデブロッキングフィルタを適用するかどうかを決定するための手段と、を更に備え、前記第３のデブロッキングフィルタは、前記エッジの両側にある最大で３つのルーマサンプルを修正し、前記第４のデブロッキングフィルタは、前記エッジの両側にある最大で２つのルーマサンプルを修正する、請求項２２に記載の装置。
【請求項２６】
前記エッジがクロマエッジであり、前記クロマエッジがイントラスライスと関連付けられるかどうかを決定するための手段を更に備え、
前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための前記手段が、前記クロマエッジがＩスライスと関連付けられ、前記クロマエッジが前記第１の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための手段を備える、請求項２２に記載の装置。
【請求項２７】
Ｎ×Ｎのグリッドの変換単位（ＴＵ）のエッジと予測単位（ＰＵ）のエッジとを識別するための手段と、ここにおいて、輝度ビデオブロックのサイズは、２Ｎ×２Ｎまたはそれより大きい、
クロマビデオブロックがＮサンプル×Ｎサンプルよりも大きいサイズを有するかどうかを決定するための手段と
を更に備え、
クロマサンプルにデブロッキングフィルタを適用するための前記手段が、
前記クロマビデオブロックがＮサンプル×Ｎサンプル以下のサイズを有する場合、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための手段と、
前記クロマビデオブロックがＮ×Ｎのサンプルよりも大きいサイズを有する場合、前記クロマビデオブロックの内部にある前記グリッドのエッジに対して、前記クロマサンプルに適用される前記デブロッキングフィルタを無効にするための手段と
を備える、請求項２２に記載の装置。
【請求項２８】
コンピュータ実行可能命令を記憶するコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令が、実行されると、１つ以上のプロセッサに、
第１のビデオブロックと第２のビデオブロックとの間のエッジがコード化単位（ＣＵ）エッジであるかどうかを決定することなく、前記第１のビデオブロック又は前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定することに応答して、第１の境界強度値を前記エッジと関連付けさせ、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック又は前記第２のビデオブロックが０ではない変換係数レベルを有する変換単位（ＴＵ）と関連付けられると決定することに応答して、第２の境界強度値を前記エッジと関連付けさせ、
前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記第１のビデオブロック及び前記第２のビデオブロックが０ではない変換係数レベルを有するＴＵと関連付けられない場合、前記第２の境界強度値又は第３の境界強度値のいずれかを前記エッジと関連付けさせ、ここにおいて、前記第２の境界強度値は、
前記第１のビデオブロック及び前記第２のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が１以上であることと、
前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられ、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が１以上であることと
のうちの１つ以上の追加の条件が満たされるとき、前記エッジと関連付けられる、
前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに１つ以上のデブロッキングフィルタを適用させる、コンピュータ可読記憶媒体。
【請求項２９】
前記装置は、
集積回路、
マイクロプロセッサ、または
ワイヤレスハンドセット
のうちの少なくとも１つを備える、請求項１０または１１に記載の装置。
【請求項３０】
前記第１のビデオブロックを含む復号されたビデオデータを表示するように構成された表示器を更に備える、請求項１０に記載の装置。
【請求項３１】
前記ビデオデータをキャプチャするように構成されたカメラを更に備える、請求項１１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１１年１０月２５日に出願された米国仮出願第６１／５５１，３２５号、２０１１年１１月２日に出願された米国仮出願第６１／５５４，８８７号、２０１１年１２月２２日に出願された米国仮出願第６１／５７９，４８８号、及び２０１２年１月２０日に出願された米国仮出願第６１／５８９，１４３号の利益を主張する。
【０００２】
本開示はビデオコード化に関し、より詳細には、復号されたビデオデータのフィルタリングに関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信、受信及び記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ  １０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、現在開発中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格、及びそのような規格の拡張に記載されているビデオ圧縮技法のような、ビデオ圧縮技法を実施する。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために、空間的（イントラピクチャ）予測及び／又は時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコード化の場合、ビデオスライスが、ツリーブロック、コード化単位（ＣＵ）及び／又はコード化ノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化された（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化された（Ｐ又はＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、又は他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【発明の概要】
【０００５】
一般に、本開示は、第１のビデオブロックと第２のビデオブロックとの間で発生するエッジにデブロッキングフィルタを適用するための技法について説明する。エッジにデブロッキングフィルタを適用することで、ブロックベースのコード化により引き起こされる視覚的なアーチファクトの出現を減らすことができる。本明細書で説明されるように、ビデオコーダは、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたコード化単位（ＣＵ）と関連付けられると決定したことに応答して、第１の境界強度値をエッジと関連付けることができ、このエッジは、第１のビデオブロックと第２のビデオブロックとの境界において発生する。第１のビデオブロックも第２のビデオブロックもイントラ予測されたＣＵと関連付けられない場合、ビデオコーダは、第２の又は第３の境界強度値をエッジと関連付けることができる。エッジが第１の境界強度値又は第２の境界強度値と関連付けられる場合、ビデオコーダは、エッジと関連付けられるサンプルに１つ又は複数のデブロッキングフィルタを適用することができる。第３の境界強度値は、デブロッキングフィルタがエッジと関連付けられるサンプルに対して無効にされることを示す。
【０００６】
本開示は、ビデオデータをコード化する方法について説明する。方法は、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたコード化単位（ＣＵ）と関連付けられると決定したことに応答して、第１の境界強度値をエッジと関連付けることを備え、このエッジは、第１のビデオブロックと第２のビデオブロックとの境界において発生する。方法はまた、第１のビデオブロック及び第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ又は複数の追加の条件が満たされると決定したことに応答して、第２の境界強度値をエッジと関連付けることを備える。加えて、方法は、第１のビデオブロック及び第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ又は複数の追加の条件が満たされないと決定したことに応答して、第３の境界強度値をエッジと関連付けることを備える。方法はまた、エッジが第１の境界強度値又は第２の境界強度値と関連付けられるが第３の境界強度値とは関連付けられない場合、エッジと関連付けられるサンプルに１つ又は複数のデブロッキングフィルタを適用することを備える。
【０００７】
加えて、本開示は、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたコード化単位（ＣＵ）と関連付けられると決定したことに応答して、第１の境界強度値をエッジと関連付けるように構成された、１つ又は複数のプロセッサを備えるビデオコード化装置について説明し、このエッジは、第１のビデオブロックと第２のビデオブロックとの境界において発生する。１つ又は複数のプロセッサは、第１のビデオブロック及び第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ又は複数の追加の条件が満たされると決定したことに応答して、第２の境界強度値をエッジと関連付けるように構成される。１つ又は複数のプロセッサは、第１のビデオブロック及び第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ又は複数の追加の条件が満たされないと決定したことに応答して、第３の境界強度値をエッジと関連付けるように構成される。加えて、１つ又は複数のプロセッサは、エッジが第１の境界強度値又は第２の境界強度値と関連付けられるが第３の境界強度値とは関連付けられない場合、エッジと関連付けられるサンプルにデブロッキングフィルタを適用するように構成される。
【０００８】
本開示はまた、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたコード化単位（ＣＵ）と関連付けられると決定したことに応答して、第１の境界強度値をエッジと関連付けるための手段を備える、ビデオコード化装置について説明し、このエッジは、第１のビデオブロックと第２のビデオブロックとの境界において発生する。ビデオコード化装置はまた、第１のビデオブロック及び第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ又は複数の追加の条件が満たされると決定したことに応答して、第２の境界強度値をエッジと関連付けるための手段を備える。加えて、ビデオコード化装置は、第１のビデオブロック及び第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ又は複数の追加の条件が満たされないと決定したことに応答して、第３の境界強度値をエッジと関連付けるための手段を備える。ビデオコード化装置はまた、エッジが第１の境界強度値又は第２の境界強度値と関連付けられるが第３の境界強度値とは関連付けられない場合、エッジと関連付けられるサンプルに１つ又は複数のデブロッキングフィルタを適用するための手段を備える。
【０００９】
本開示はまた、実行されると、１つ又は複数のプロセッサに、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたコード化単位（ＣＵ）と関連付けられると決定したことに応答して、第１の境界強度値をエッジと関連付けさせる、コンピュータ実行可能命令を記憶する１つ又は複数のコンピュータ可読記憶媒体を備える、コンピュータプログラム製品について説明する。このエッジは、第１のビデオブロックと第２のビデオブロックとの境界において発生する。命令はまた、１つ又は複数のプロセッサに、第１のビデオブロック及び第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ又は複数の追加の条件が満たされると決定したことに応答して、第２の境界強度値をエッジと関連付けさせる。命令はまた、１つ又は複数のプロセッサに、第１のビデオブロック及び第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ又は複数の追加の条件が満たされないと決定したことに応答して、第３の境界強度値をエッジと関連付けさせる。加えて、命令は、１つ又は複数のプロセッサに、エッジが第１の境界強度値又は第２の境界強度値と関連付けられるが第３の境界強度値とは関連付けられない場合、エッジと関連付けられるサンプルへと１つ又は複数のデブロッキングフィルタを適用させる。
【００１０】
１つ又は複数の例の詳細は、添付の図面及び以下の説明に記載されている。他の特徴、目的、及び利点は、その説明及び図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１１】
【図１】本開示の技法を利用し得る、例示的なビデオコード化システムを示すブロック図。
【図２】本開示の技法を実施し得る、例示的なビデオエンコーダを示すブロック図。
【図３】本開示の技法を実施し得る、例示的なビデオデコーダを示すブロック図。
【図４】コード化単位と関連付けられるブロック歪みを低減するための例示的なデブロッキング動作を示すフローチャート。
【図５】境界強度値を２つのビデオブロックの間のルーマエッジと関連付けるための例示的な動作を示すフローチャート。
【図６】境界強度値を２つのビデオブロックの間のクロマエッジと関連付けるための例示的な動作を示すフローチャート。
【図７】コード化単位のルーマエッジをデブロックするための例示的な動作を示すフローチャート。
【図８】個々のルーマエッジに対してビデオコーダによって実行される、例示的なデブロッキング動作を示すフローチャート。
【図９】第１のビデオブロック「Ａ」と第２のビデオブロック「Ｂ」との間の垂直エッジにおけるサンプルの例示的な命名を示す概念図。
【図１０】ルーマエッジのセグメントに強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定するための例示的な動作を示すフローチャート。
【図１１】コード化単位のクロマエッジをデブロックするための例示的な動作を示すフローチャート。
【図１２】個々のクロマエッジと関連付けられるＣｂサンプル又はＣｒサンプルに対してビデオコーダによって実行される、例示的なデブロッキング動作を示すフローチャート。
【図１３Ａ】例示的なサンプル値のグラフを示す概念図。
【図１３Ｂ】例示的なサンプル値のグラフを示す概念図。
【図１３Ｃ】例示的なサンプル値のグラフを示す概念図。
【図１３Ｄ】例示的なサンプル値のグラフを示す概念図。
【図１４Ａ】例示的なサンプル値のグラフを示す概念図。
【図１４Ｂ】例示的なサンプル値のグラフを示す概念図。
【図１４Ｃ】例示的なサンプル値のグラフを示す概念図。
【発明を実施するための形態】
【００１２】
添付の図面は、例を示す。添付の図面における、参照番号で指示される要素は、以下の説明における、同じ参照番号で指示される要素に対応する。本開示において、順序を示す言葉（例えば、「第１の」、「第２の」、「第３の」など）で始まる名称をもつ要素は、それらの要素が特定の順序を有することを必ずしも示唆しない。そうではなく、そのような順序を示す言葉は、同じ又は同様のタイプの異なる要素を指すために使用されるにすぎない。
【００１３】
エッジは、第１のビデオブロックと第２のビデオブロックとの境界において発生し得る。本開示では、サンプルの２次元（２Ｄ）ブロックを指すために「ビデオブロック」という用語が使用され得る。例えば、第１のビデオブロック及び第２のビデオブロックは、隣接するコード化単位（ＣＵ）、又はそのＣＵの変換単位（ＴＵ）若しくは予測単位（ＰＵ）と関連付けられる、復号されたビデオブロックであり得る。ビデオコーダは、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定したことに応答して、第１の境界強度値をエッジと関連付けることができる。第１のビデオブロックも第２のビデオブロックもイントラ予測されたＣＵと関連付けられない場合、ビデオコーダは、第２の又は第３の境界強度値をエッジと関連付けることができる。エッジが第１の境界強度値又は第２の境界強度値と関連付けられる場合、ビデオコーダは、エッジと関連付けられるサンプルに１つ又は複数のデブロッキングフィルタを適用することができる。エッジと関連付けられるサンプルは、エッジに対して垂直に延びるサンプルのラインの中のサンプルを含み得る。デブロッキングフィルタは、エッジと関連付けられるブロック歪み(blocking artifacts)の視認性を低下させることができる。ブロック歪みは、ビデオブロックにはもともと存在しなかった、輝度（ルーマ）及び／又は色度（クロマ）の鋭い非連続部分を含み得る。本明細書で使用される場合、「サンプル」という用語は、「画素」という用語と交換可能に使用され得る。
【００１４】
第１のビデオブロック又は第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定したことに応答してエッジを第１の境界強度値と関連付けることで、境界強度値をエッジと関連付ける処理を簡略化することができ、これにより、複雑さを低減し、ビデオコーダの性能を向上させることができる。対照的に、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定した後で、どの境界強度値をエッジと関連付けるかについての更なる決定をビデオコーダが行うとすると、ビデオコーダは、より複雑になり得るとともに、性能がより低くなり得る。
【００１５】
図１は、本開示の技法を利用することができる例示的なビデオコード化システム１０を示すブロック図である。本明細書で使用され説明される場合、「ビデオコーダ」は総称的に、ビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコード化」又は「コード化」という用語は総称的に、ビデオ符号化とビデオ復号とを指し得る。
【００１６】
図１に示されるように、ビデオコード化システム１０は、発信源機器１２と宛先機器１４とを含む。発信源機器１２は、符号化されたビデオデータを生成する。宛先機器１４は、発信源機器１２によって生成された、符号化されたビデオデータを復号することができる。発信源機器１２及び宛先機器１４は、デスクトップコンピュータ、ノートブック（例えば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォン、所謂「スマート」パッドなどの電話ハンドセット、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータ、モバイルコンピュータ機器などを含む、広範囲にわたる機器を備え得る。幾つかの例では、発信源機器１２及び宛先機器１４は、ワイヤレス通信のために装備され得る。
【００１７】
宛先機器１４は、チャネル１６を介して発信源機器１２から符号化されたビデオデータを受信することができる。チャネル１６は、発信源機器１２から宛先機器１４に符号化されたビデオデータを移動することが可能な、任意のタイプの媒体又は機器を備え得る。一例では、チャネル１６は、発信源機器１２が符号化されたビデオデータを宛先機器１４にリアルタイムで直接送信することを可能にする通信媒体を備え得る。この例では、発信源機器１２は、ワイヤレス通信プロトコルのような通信規格に従って、符号化されたビデオデータを変調することができ、変調されたビデオデータを宛先機器１４に送信することができる。通信媒体は、高周波（ＲＦ）スペクトル又は１つ又は複数の物理伝送線路のような、ワイヤレス通信媒体又は有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、発信源機器１２から宛先機器１４への通信を支援する、ルータ、スイッチ、基地局、又は他の機器を含み得る。
【００１８】
別の例では、チャネル１６は、発信源機器１２によって生成された符号化されたビデオデータを記憶する、記憶媒体に対応し得る。この例では、宛先機器１４は、ディスクアクセス又はカードアクセスを介して、記憶媒体にアクセスすることができる。記憶媒体は、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、又は符号化されたビデオデータを記憶するための他の適切なデジタル記憶媒体など、種々のローカルにアクセスされるデータ記憶媒体を含み得る。更なる例では、チャネル１６は、発信源機器１２によって生成された符号化されたビデオを記憶する、ファイルサーバ又は別の中間記憶機器を含み得る。この例では、宛先機器１４は、ストリーミング又はダウンロードを介して、ファイルサーバ又は他の中間記憶機器に記憶された、符号化されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶することと、符号化されたビデオデータを宛先機器１４に送信することとが可能な、あるタイプのサーバであり得る。例示的なファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶(network attached storage（ＮＡＳ）)機器、及びローカルディスクドライブを含む。宛先機器１４は、インターネット接続を含む任意の標準のデータ接続を通じて、符号化されたビデオデータにアクセスし得る。データ接続の例示的なタイプは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適切な、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）、有線接続（例えば、ＤＳＬ、ケーブルモデムなど）、又は両方の組合せを含み得る。ファイルサーバからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はその両方の組合せであり得る。
【００１９】
本開示の技法は、ワイヤレスの用途又は設定には限定されない。本技法は、無線を通じたテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の用途など、種々のマルチメディア用途のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、ビデオコード化システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び／又はビデオ電話などの用途をサポートするために、単方向又は双方向のビデオ送信をサポートするように構成され得る。
【００２０】
図１の例では、発信源機器１２は、ビデオ発信源１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）及び／又は送信機を含み得る。発信源機器１２において、ビデオ発信源１８は、撮像装置、例えばビデオカメラ、以前に撮影されたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、及び／又は、ビデオデータを生成するためのコンピュータグラフィックスシステムのような発信源、若しくはそのような発信源の組合せを含み得る。
【００２１】
ビデオエンコーダ２０は、撮影されたビデオデータ、以前に撮影されたビデオデータ、又はコンピュータにより生成されたビデオデータを符号化し得る。符号化されたビデオデータは、発信源機器１２の出力インターフェース２２を介して宛先機器１４に直接送信され得る。符号化されたビデオデータはまた、復号及び／又は再生のための宛先機器１４によるその後のアクセスのために、記憶媒体又はファイルサーバ上に記憶され得る。
【００２２】
図１の例において、宛先機器１４は、入力インターフェース２８と、ビデオデコーダ３０と、表示装置３２とを含む。幾つかの例では、入力インターフェース２８は、受信機及び／又はモデムを含み得る。宛先機器１４の入力インターフェース２８は、チャネル１６を通じて符号化されたビデオデータを受信する。符号化されたビデオデータは、ビデオデータを表すビデオエンコーダ２０によって生成される種々のシンタクス要素を含み得る。そのようなシンタクス要素は、通信媒体上で送信される、記憶媒体上に記憶される、又はファイルサーバ上に記憶される、符号化されたビデオデータとともに含まれ得る。
【００２３】
表示装置３２は、宛先機器１４と一体であってよく、又はその外部にあってよい。幾つかの例では、宛先機器１４は、一体型表示装置を含んでよく、また、外部表示装置とインターフェースするように構成され得る。他の例では、宛先機器１４は表示装置であり得る。一般に、表示装置３２は、復号されたビデオデータをユーザに表示する。表示装置３２は、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置など、種々の表示装置のいずれかを備え得る。
【００２４】
ビデオエンコーダ２０及びビデオデコーダ３０は、現在開発中の高効率ビデオコード化（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作することができ、ＨＥＶＣテストモデル（ＨＭ）に準拠することができる。或いは、ビデオエンコーダ２０及びビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、又はそのような規格の拡張版のような、他のプロプライエタリ規格又は業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコード化規格にも限定されない。ビデオ圧縮規格の他の例には、ＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３がある。
【００２５】
図１の例には示されていないが、ビデオエンコーダ２０及びビデオデコーダ３０は各々、オーディオエンコーダ及びオーディオデコーダと統合されてよく、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、幾つかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２６】
この場合も、図１は例にすぎず、本開示の技法は、符号化機器と復号機器との間のデータ通信を必ずしも含むとは限らないビデオコード化設定（例えば、ビデオ符号化又はビデオ復号）に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われ得る。符号化機器はデータを符号化してメモリに記憶することができ、及び／又は、復号機器はメモリからデータを取り出して復号することができる。多くの例では、符号化及び復号は、互いに通信しないが、メモリにデータを符号化し、及び／又はメモリからデータを取り出して復号するだけである機器によって実行される。
【００２７】
ビデオエンコーダ２０及びビデオデコーダ３０は各々、１つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ハードウェアのような、種々の好適な回路のいずれか、又はそれらの任意の組合せとして実施され得る。本技法が部分的にソフトウェアで実施されるとき、機器は、好適な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶することができ、１つ又は複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行することができる。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ又は複数のエンコーダ又はデコーダ中に含まれてよく、そのいずれも、それぞれの機器において複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００２８】
上で手短に述べられたように、ビデオエンコーダ２０は、ビデオデータを符号化する。ビデオデータは、１つ又は複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。幾つかの例では、ピクチャは、ビデオ「フレーム」と呼ばれ得る。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化された表現を形成する、ビットのシーケンスを含み得る。ビットストリームは、コード化されたピクチャと、関連するデータとを含み得る。コード化されたピクチャとは、ピクチャのコード化された表現である。
【００２９】
ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化動作を実行することができる。ビデオエンコーダ２０がピクチャに対して符号化動作を実行するとき、ビデオエンコーダ２０は、一連のコード化されたピクチャと、関連するデータとを生成することができる。関連するデータは、シーケンスパラメータセットと、ピクチャパラメータセットと、適応パラメータセットと、他のシンタクス構造とを含み得る。シーケンスパラメータセット（ＳＰＳ）は、ピクチャの０個以上のシーケンスに適用可能なパラメータを含み得る。ピクチャパラメータセット（ＰＰＳ）は、０個以上のピクチャに適用可能なパラメータを含み得る。適応パラメータセット（ＡＰＳ）は、０個以上のピクチャに適用可能なパラメータを含み得る。
【００３０】
コード化されたピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを等しいサイズのビデオブロックに区分することができる。ビデオブロックの各々は、ツリーブロックと関連付けられる。幾つかの例では、ツリーブロックは、最大コード化単位（ＬＣＵ）とも呼ばれ得る。ＨＥＶＣのツリーブロックは、Ｈ．２６４／ＡＶＣのような従来の規格のマクロブロックに広い意味で類似し得る。しかしながら、ツリーブロックは、特定のサイズに必ずしも限定されるものではなく、１つ又は複数のコード化単位（ＣＵ）を含み得る。ビデオエンコーダ２０は、４分木区分を使用して、ツリーブロックのビデオブロックを、ＣＵと関連付けられるビデオブロックへと区分することができるので、「ツリーブロック」という名前である。
【００３１】
幾つかの例では、ビデオエンコーダ２０は、ピクチャを複数のスライスに区分することができる。スライスの各々は、整数個のＣＵを含み得る。幾つかの例では、スライスは、整数個のツリーブロックを備える。他の例では、スライスの境界は、ツリーブロック内にあり得る。
【００３２】
ピクチャに対して符号化動作を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化動作を実行することができる。ビデオエンコーダ２０がスライスに対して符号化動作を実行すると、ビデオエンコーダ２０は、スライスと関連付けられた符号化されたデータを生成することができる。スライスと関連付けられた符号化されたデータは、「コード化されたスライス」と呼ばれ得る。
【００３３】
コード化されたスライスを生成するために、ビデオエンコーダ２０は、スライス中の各ツリーブロックに対して符号化動作を実行することができる。ビデオエンコーダ２０がツリーブロックに対して符号化動作を実行すると、ビデオエンコーダ２０は、コード化されたツリーブロックを生成することができる。コード化されたツリーブロックは、ツリーブロックの符号化されたバージョンを表すデータを備え得る。
【００３４】
コード化されたツリーブロックを生成するために、ビデオエンコーダ２０は、ツリーブロックのビデオブロック上で４分木区分を再帰的に実行して、ビデオブロックを徐々により小さいビデオブロックへと分けることができる。より小さいビデオブロックの各々は、異なるＣＵと関連付けられ得る。例えば、ビデオエンコーダ２０は、ツリーブロックのビデオブロックを４つの等しいサイズのサブブロックに区分し、サブブロックの１つ又は複数を、４つの等しいサイズのサブサブブロックに区分することができ、以下同様である。ビットストリーム中の１つ又は複数のシンタクス要素は、ビデオエンコーダ２０がツリーブロックのビデオブロックを区分できる最大の回数を示し得る。ＣＵのビデオブロックは、正方形の形状であり得る。ＣＵのビデオブロックのサイズ（即ち、ＣＵのサイズ）は、８×８の画素から、最大で６４×６４以上の画素を有するツリーブロックのビデオブロックのサイズ（即ち、ツリーブロックのサイズ）にまでわたり得る。
【００３５】
ビデオエンコーダ２０は、ツリーブロックの各々の区分されていないＣＵに対して符号化動作を実行することができる。区分されていないＣＵは、ビデオブロックが他のＣＵのためのビデオブロックへと区分されていない、ＣＵである。区分されていないＣＵに対して符号化動作を実行することの一部として、ビデオエンコーダ２０は、ＣＵのために１つ又は複数の予測単位（ＰＵ）を生成することができる。ＣＵのＰＵの各々は、ＣＵのビデオブロック内の異なるビデオブロックと関連付けられ得る。ビデオエンコーダ２０は、ＣＵの各ＰＵの、予測されたビデオブロックを生成することができる。ＰＵの予測されたビデオブロックは、サンプルのブロックであってよい。ビデオエンコーダ２０は、イントラ予測又はインター予測を使用して、ＰＵの予測されたビデオブロックを生成することができる。
【００３６】
ビデオエンコーダ２０がイントラ予測を使用してＰＵの予測されたビデオブロックを生成する場合、ビデオエンコーダ２０は、ＰＵと関連付けられるピクチャの復号されたサンプルに基づいて、ＰＵの予測されたビデオブロックを生成することができる。ビデオエンコーダ２０がインター予測を使用してＰＵの予測されたビデオブロックを生成する場合、ビデオエンコーダ２０は、ＰＵと関連付けられるピクチャ以外のピクチャの復号された値に基づいて、ＰＵの予測されたビデオブロックを生成することができる。ビデオエンコーダ２０がイントラ予測を使用してＣＵのＰＵの予測されたビデオブロックを生成する場合、ＣＵはイントラ予測されたＣＵである。
【００３７】
ビデオエンコーダ２０がインター予測を使用してＰＵの予測されたビデオブロックを生成する場合、ビデオエンコーダ２０は、ＰＵの動き情報を生成することができる。ＰＵの動き情報は、ＰＵのビデオブロックに対応する別のピクチャの部分を示し得る。言い換えれば、ＰＵの動き情報は、ＰＵの「参照サンプル」を示し得る。ビデオエンコーダ２０は、ＰＵの動き情報によって示される他のピクチャの部分に基づいて、ＰＵの予測されたビデオブロックを生成することができる。ビデオエンコーダ２０がインター予測を使用してＣＵのＰＵの予測されたビデオブロックを生成する場合、ＣＵはインター予測されたＣＵである。
【００３８】
ビデオエンコーダ２０がＣＵの１つ又は複数のＰＵの予測されたビデオブロックを生成した後、ビデオエンコーダ２０は、ＣＵのＰＵの予測されたビデオブロックに基づいて、ＣＵの残差データを生成することができる。ＣＵの残差データは、ＣＵのＰＵの予測されたビデオブロック中のサンプルと、ＣＵの元のビデオブロック中のサンプルとの差を示し得る。
【００３９】
更に、区分されていないＣＵに対して符号化動作を実行することの一部として、ビデオエンコーダ２０は、ＣＵの残差データに対して再帰的な４分木区分を実行して、ＣＵの残差データを、ＣＵの変換単位（ＴＵ）と関連付けられる残差データの１つ又は複数のブロック（即ち、残差ビデオブロック）へと区分することができる。ＣＵの各ＴＵは、異なる残差ビデオブロックと関連付けられ得る。ビデオコーダ２０は、ＣＵの各ＴＵに対して変換動作を実行することができる。
【００４０】
ビデオエンコーダ２０がＴＵに対して変換動作を実行すると、ビデオエンコーダ２０は、ＴＵと関連付けられる残差ビデオブロックに対して１つ又は複数の変換を適用して、ＴＵと関連付けられる１つ又は複数の変換係数ブロック（即ち、変換係数のブロック）を生成することができる。概念的には、変換係数ブロックは、変換係数の２次元（２Ｄ）行列(two-dimensional (2D) matrix)であってよい。
【００４１】
変換係数ブロックを生成した後、ビデオエンコーダ２０は、変換係数ブロックに対して量子化動作を実行することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、更なる圧縮を実現する処理を指す。量子化処理は、変換係数の一部又は全部と関連付けられるビット深度を低減することができる。例えば、量子化中にｎビットの変換係数がｍビットの変換係数に切り捨てられてよく、但し、ｎはｍよりも大きい。
【００４２】
ビデオエンコーダ２０は、各ＣＵを、量子化パラメータ（ＱＰ）値と関連付けることができる。ＣＵと関連付けられるＱＰ値は、ビデオエンコーダ２０が、ＣＵと関連付けられる変換係数ブロックをどのように量子化するかを、決定し得る。ビデオエンコーダ２０は、ＣＵと関連付けられるＱＰ値を調整することによって、ＣＵと関連付けられる変換係数ブロックに適用される量子化の程度を調整することができる。
【００４３】
ビデオエンコーダ２０が変換係数ブロックを量子化した後、ビデオエンコーダ２０は、量子化された変換係数をスキャンして、変換係数レベルの１次元ベクトルを生成することができる。ビデオエンコーダ２０は、１次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ２０はまた、ビデオデータと関連付けられる他のシンタクス要素もエントロピー符号化することができる。
【００４４】
ビデオエンコーダ２０によって生成されるビットストリームは、一連のネットワーク抽象化レイヤ（ＮＡＬ）単位を含み得る。ＮＡＬ単位の各々は、ＮＡＬ単位中のデータのタイプの指示と、データを含むバイトとを含むシンタクス構造であり得る。例えば、ＮＡＬ単位は、シーケンスパラメータセット、ピクチャパラメータセット、コード化されたスライス、補助強化情報（ＳＥＩ）、アクセス単位区切り文字、フィラーデータ、又は別のタイプのデータを表すデータを含み得る。ＮＡＬ単位中のデータは、エントロピー符号化された変換係数ブロック、動き情報などのような、エントロピー符号化されたシンタクス構造を含み得る。
【００４５】
ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されるビットストリームを受け取ることができる。ビットストリームは、ビデオエンコーダ２０によって符号化されるビデオデータのコード化された表現を含み得る。ビデオデコーダ３０がビットストリームを受け取ると、ビデオデコーダ３０は、ビットストリームに対して解析動作を実行することができる。ビデオデコーダ３０が解析動作を実行すると、ビデオデコーダ３０は、ビットストリームからシンタクス要素を抽出することができる。ビデオデコーダ３０は、ビットストリームから抽出されたシンタクス要素に基づいて、ビデオデータのピクチャを復元することができる。シンタクス要素に基づいてビデオデータを復元するための処理は、一般に、シンタクス要素を生成するためにビデオエンコーダ２０によって実行される処理の逆であり得る。
【００４６】
ビデオデコーダ３０がＣＵと関連付けられるシンタクス要素を抽出した後、ビデオデコーダ３０は、シンタクス要素に基づいて、ＣＵのＰＵの予測されたビデオブロックを生成することができる。加えて、ビデオデコーダ３０は、ＣＵのＴＵと関連付けられる変換係数ブロックを逆量子化することができる。ビデオデコーダ３０は、変換係数ブロックに対して逆変換を実行して、ＣＵのＴＵと関連付けられる残差ビデオブロックを復元することができる。予測されたビデオブロックを生成し、残差ビデオブロックを復元した後、ビデオデコーダ３０は、予測されたビデオブロック及び残差ビデオブロックに基づいて、ＣＵのビデオブロックを復元することができる。このようにして、ビデオデコーダ３０は、ビットストリーム中のシンタクス要素に基づいて、ＣＵのビデオブロックを決定することができる。
【００４７】
ＣＵのビデオブロックを復元した後、ビデオデコーダ３０は、デブロッキング動作を実行して、ＣＵと関連付けられるブロック歪みを低減することができる。このデブロッキング動作を実行するために、ビデオデコーダ３０は、ＣＵと関連付けられるＴＵエッジとＰＵエッジとを識別することができる。ＴＵエッジは、ＣＵのＴＵと関連付けられる残差ビデオブロックのセグメント又は一式のエッジに対応し得る。ＰＵエッジは、ＣＵのＰＵと関連付けられる予測されたビデオブロックのセグメント又は一式のエッジに対応し得る。ＣＵと関連付けられるブロック歪みは、ＣＵと関連付けられるＴＵエッジ及びＰＵエッジにおいて発生する傾向がある。
【００４８】
ＴＵエッジとＰＵエッジとを識別した後で、ビデオデコーダ３０は、境界強度値(boundary strength values)をＴＵエッジ及びＰＵエッジと関連付けることができる。以下で説明されるように、ビデオデコーダ３０は、ＴＵエッジ及びＰＵエッジと関連付けられる境界強度値を使用して、ＴＵエッジ及びＰＵエッジと関連付けられるサンプルにデブロッキングフィルタを適用するかどうかということと、どのように適用するかということとを決定することができる。
【００４９】
本開示の技法によれば、ビデオデコーダ３０は、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたＣＵと関連付けられると決定したことに応答して、第１の境界強度値をエッジと関連付けることができる。エッジは、第１のビデオブロックと第２のビデオブロックとの境界において発生する、ＴＵエッジ又はＰＵエッジであり得る。ビデオデコーダ３０は、第１のビデオブロック及び第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ又は複数の追加の条件が満たされると決定したことに応答して、第２の境界強度値をエッジと関連付けることができる。ビデオデコーダ３０は、第１のビデオブロック及び第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ又は複数の追加の条件が満たされないと決定したことに応答して、第３の境界強度値をエッジと関連付けることができる。ビデオデコーダ３０は、エッジが第１の境界強度値又は第２の境界強度値と関連付けられるが第３の境界強度値とは関連付けられない場合、エッジと関連付けられるサンプルに１つ又は複数のデブロッキングフィルタを適用することができる。
【００５０】
ビデオエンコーダ２０は、復号ピクチャバッファに復元されたビデオブロックを記憶する前に、同様のデブロッキング動作を実行して、ＣＵと関連付けられる復元されたビデオブロック中のブロック歪みを低減することができる。従って、「ビデオコーダ」（即ち、ビデオエンコーダ又はビデオデコーダ）は、上で説明されたデブロッキング動作を実行することができる。
【００５１】
図２は、本開示の技法を実施するように構成された例示的なビデオエンコーダ２０を示すブロック図である。図２は、説明を目的に与えられており、本開示において広く例示され説明される技法を限定するものと見なされるべきではない。説明のために、本開示は、ＨＥＶＣコード化の状況において、ビデオエンコーダ２０について説明する。しかしながら、本開示の技法は、他のコード化規格又は方法にも適用可能であり得る。
【００５２】
図２の例において、ビデオエンコーダ２０は、複数の機能コンポーネントを含む。ビデオエンコーダ２０の機能コンポーネントは、予測モジュール１００と、残差生成モジュール１０２と、変換モジュール１０４と、量子化モジュール１０６と、逆量子化モジュール１０８と、逆変換モジュール１１０と、復元モジュール１１２と、フィルタモジュール１１３と、復号ピクチャバッファ１１４と、エントロピー符号化モジュール１１６とを含む。予測モジュール１００は、動き推定モジュール１２２と、動き補償モジュール１２４と、イントラ予測モジュール１２６とを含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、又は異なる機能コンポーネントを含んでよい。更に、動き推定モジュール１２２と動き補償モジュール１２４は、高度に統合され得るが、図２の例では、説明のために別々に表されている。
【００５３】
ビデオエンコーダ２０は、ビデオデータを受信することができる。ビデオエンコーダ２０は、様々な発信源からビデオデータを受信することができる。例えば、ビデオエンコーダ２０は、ビデオ発信源１８（図１）又は別の発信源からビデオデータを受信することができる。ビデオデータは、一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ２０は、ピクチャの各々に対して符号化動作を実行することができる。ピクチャに対して符号化動作を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化動作を実行することができる。スライスに対する符号化動作を実行することの一部として、ビデオエンコーダ２０は、スライス中のツリーブロックに対して符号化動作を実行することができる。
【００５４】
ツリーブロックに対して符号化動作を実行することの一部として、予測モジュール１００は、ツリーブロックのビデオブロックに対して４分木区分を実行して、ビデオブロックを徐々により小さいビデオブロックへと分けることができる。より小さいビデオブロックの各々は、異なるＣＵと関連付けられ得る。例えば、予測モジュール１００は、ツリーブロックのビデオブロックを４つの等しいサイズのサブブロックに区分し、サブブロックの１つ又は複数を、４つの等しいサイズのサブサブブロックに区分することができ、以下同様である。
【００５５】
ＣＵと関連付けられるビデオブロックのサイズは、８×８サンプルから、最大で６４×６４サンプル以上のツリーブロックのサイズにまで、わたり得る。本開示では、「Ｎ×Ｎ（NxN）」及び「Ｎ×Ｎ（N by N）」は、垂直方向の寸法及び水平方向の寸法に関するビデオブロックのサンプルの寸法、例えば、１６×１６（16x16）サンプル又は１６×１６（16 by 16）サンプルを指すために交換可能に使用され得る。一般に、１６×１６のビデオブロックは、垂直方向に１６個のサンプルを有し（ｙ＝１６）、水平方向に１６個のサンプルを有する（ｘ＝１６）。同様に、Ｎ×Ｎのブロックは、一般に、垂直方向にＮ個のサンプルを有し、水平方向にＮ個のサンプルを有し、Ｎは非負整数値を表す。
【００５６】
更に、ツリーブロックに対して符号化動作を実行することの一部として、予測モジュール１００は、ツリーブロック用の階層的な４分木データ構造を生成することができる。例えば、ツリーブロックは、４分木データ構造のルートノードに対応し得る。予測モジュール１００が、ツリーブロックのビデオブロックを４つのサブブロックに区分する場合、ルートノードは、４分木データ構造中に４つの子ノードを有する。子ノードの各々は、サブブロックの１つと関連付けられるＣＵに対応する。予測モジュール１００が、サブブロックの１つを４つのサブサブブロックに区分する場合、サブブロックと関連付けられるＣＵに対応するノードは、サブサブブロックの１つと関連付けられるＣＵに各々が対応する、４つの子ノードを有し得る。
【００５７】
４分木データ構造の各ノードは、対応するツリーブロック又はＣＵのシンタクスデータ（例えば、シンタクス要素）を含み得る。例えば、４分木の中のノードは、そのノードに対応するＣＵのビデオブロックが４つのサブブロックに区分される（即ち、分割される）かどうかを示す分割フラグを含み得る。ＣＵのシンタクス要素は、再帰的に定義されてよく、ＣＵのビデオブロックがサブブロックに分割されるかどうかに依存してよい。ビデオブロックが区分されていないＣＵは、４分木データ構造におけるリーフノードに対応し得る。コード化されたツリーブロックは、対応するツリーブロック用の４分木データ構造に基づくデータを含み得る。
【００５８】
ビデオエンコーダ２０は、ツリーブロックの各々の区分されていないＣＵに対して符号化動作を実行することができる。ビデオエンコーダ２０が区分されていないＣＵに対して符号化動作を実行すると、ビデオエンコーダ２０は、区分されていないＣＵの符号化された表現を表すデータを生成する。
【００５９】
ＣＵに対して符号化動作を実行することの一部として、予測モジュール１００は、ＣＵの１つ又は複数のＰＵの中で、ＣＵのビデオブロックを区分することができる。ビデオエンコーダ２０及びビデオデコーダ３０は、様々なＰＵサイズをサポートすることができる。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０及びビデオデコーダ３０は、２Ｎ×２Ｎ又はＮ×ＮというＰＵサイズと、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、又は同様の対称的なＰＵサイズでのインター予測とをサポートすることができる。ビデオエンコーダ２０及びビデオデコーダ３０は、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２ＮというＰＵサイズに対する非対称区分もサポートすることができる。幾つかの例では、予測モジュール１００は、ＣＵのビデオブロックの辺に直角に接触しない境界に沿って、ＣＵのＰＵの間でＣＵのビデオブロックを区分するように、幾何学的な区分を実行することができる。
【００６０】
動き推定モジュール１２２及び動き補償モジュール１２４は、ＣＵの各ＰＵに対してインター予測を実行することができる。インター予測は、時間圧縮を実現し得る。ＰＵに対してインター予測を実行することによって、動き推定モジュール１２２及び動き補償モジュール１２４は、ＣＵと関連付けられるピクチャ以外の参照ピクチャの復号されたサンプルに基づいて、ＰＵの予測データを生成することができる。ＰＵの予測データは、予測されたビデオブロックと様々なシンタクス要素とを含み得る。
【００６１】
更に、動き推定モジュール１２２がＰＵに関して動き推定動作を実行するとき、動き推定モジュール１２２は、ＰＵの１つ又は複数の動きベクトルを生成することができる。例えば、スライスは、イントラスライス（即ち、Ｉスライス）、予測されたスライス（即ち、Ｐスライス）、又は双方向予測されたスライス（即ち、Ｂスライス）であり得る。動き推定モジュール１２２及び動き補償モジュール１２４は、ＰＵがＩスライス中にあるか、Ｐスライス中にあるか、Ｂスライス中にあるかに応じて、ＣＵのＰＵに対して様々な動作を実行することができる。Ｉスライス中では、全てのＰＵがイントラ予測される。従って、ＰＵがＩスライス中にある場合、動き推定モジュール１２２及び動き補償モジュール１２４は、ＰＵに対してインター予測を実行しない。
【００６２】
ＰＵがＰスライス中にある場合、ＰＵを含むピクチャは、「リスト０」と呼ばれる参照ピクチャのリストと関連付けられる。リスト０中の参照ピクチャの各々は、復号の順序での後続ピクチャのインター予測に使用され得るサンプルを含む。動き推定モジュール１２２が、Ｐスライス中のＰＵに関して動き推定動作を実行するとき、動き推定モジュール１２２は、ＰＵの参照サンプルについて、リスト０中の参照ピクチャを検索することができる。ＰＵの参照サンプルは、ＰＵのビデオブロック中のサンプルに最も密接に対応するサンプルのセット、例えば、サンプルのブロックであり得る。動き推定モジュール１２２は、種々の評価基準を使用して、参照ピクチャ中のサンプルのセットがどの程度密接にＰＵのビデオブロック中のサンプルに対応するかを決定することができる。例えば、動き推定モジュール１２２は、絶対値差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、又は他の差分による評価基準によって、参照ピクチャ中のサンプルのセットがどの程度密接に、ＰＵのビデオブロック中のサンプルに対応するかを、決定することができる。
【００６３】
Ｐスライス中のＰＵの参照サンプルを識別した後、動き推定モジュール１２２は、参照サンプルを含む、リスト０中の参照ピクチャを示す参照インデックスと、ＰＵと参照サンプルの間の空間変位を示す動きベクトルとを生成することができる。様々な例において、動き推定モジュール１２２は、動きベクトルを可変の精度で生成することができる。例えば、動き推定モジュール１２２は、１／４サンプル精度、１／８サンプル精度、又は他の分数のサンプル精度で、動きベクトルを生成することができる。分数のサンプル精度の場合、参照サンプル値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定モジュール１２２は、ＰＵの動き情報を、エントロピー符号化モジュール１１６及び動き補償モジュール１２４に出力することができる。ＰＵの動き情報は、参照インデックスとＰＵの動きベクトルとを含み得る。動き補償モジュール１２４は、ＰＵの動き情報を使用して、ＰＵの参照サンプルを識別し取り出すことができる。
【００６４】
ＰＵがＢスライス中にある場合、ＰＵを含むピクチャは、「リスト０」及び「リスト１」と呼ばれる参照ピクチャの２つのリストと関連付けられ得る。リスト０中の参照ピクチャの各々は、復号の順序での後続ピクチャのインター予測に使用され得るサンプルを含む。リスト１中の参照ピクチャは、復号の順序ではピクチャの前に現れるが、提示の順序ではピクチャの後に現れる。幾つかの例では、Ｂスライスを含むピクチャは、リスト０とリスト１の組合せである、リストの組合せと関連付けられ得る。
【００６５】
更に、ＰＵがＢスライス中にある場合、動き推定モジュール１２２は、ＰＵについての単方向予測又は双方向予測を実行することができる。動き推定モジュール１２２が、ＰＵについての単方向予測を実行するとき、動き推定モジュール１２２は、ＰＵの参照サンプルについて、リスト０又はリスト１の参照ピクチャを検索することができる。動き推定モジュール１２２は次いで、参照サンプルを含む、リスト０又はリスト１中の参照ピクチャを示す参照インデックスと、ＰＵと参照サンプルとの間の空間変位を示す動きベクトルとを生成することができる。動き推定モジュール１２２は、ＰＵの動き情報を示すシンタクス要素を、エントロピー符号化モジュール１１６及び動き補償モジュール１２４に出力することができる。ＰＵの動き情報は、参照インデックスと、予測方向インジケータと、ＰＵの動きベクトルとを含み得る。予測方向インジケータは、参照インデックスが、リスト０中の参照ピクチャを示すか、リスト１中の参照ピクチャを示すかを示し得る。動き補償モジュール１２４は、ＰＵの動き情報を使用して、ＰＵの参照サンプルを識別し取り出すことができる。
【００６６】
動き推定モジュール１２２が、ＰＵについての双方向予測を実行するとき、動き推定モジュール１２２は、ＰＵの参照サンプルについて、リスト０中の参照ピクチャを検索することができ、また、ＰＵの別の参照サンプルについて、リスト１中の参照ピクチャを検索することができる。動き推定モジュール１２２は次いで、参照サンプルを含む、リスト０及びリスト１中の参照ピクチャを示す参照インデックスと、参照サンプルとＰＵとの間の空間変位を示す動きベクトルとを生成することができる。動き推定モジュール１２２は、ＰＵの動き情報を示すシンタクス要素を、エントロピー符号化モジュール１１６及び動き補償モジュール１２４に出力することができる。ＰＵの動き情報は、参照インデックスとＰＵの動きベクトルとを含み得る。動き補償モジュール１２４は、動き情報を使用して、ＰＵの参照サンプルを識別し取り出すことができる。
【００６７】
幾つかの例では、動き推定モジュール１２２は、ＰＵの動き情報のフルセットをエントロピー符号化モジュール１１６に出力しない。そうではなく、動き推定モジュール１２２は、別のＰＵの動き情報を参照して、ＰＵの動き情報を信号伝達(signaling)し得る。例えば、動き推定モジュール１２２は、ＰＵの動き情報が、隣接するＰＵの動き情報と十分に類似していると決定することができる。この例では、動き推定モジュール１２２は、ＰＵと関連付けられるＣＵの４分木ノードにおいて、ＰＵが隣接するＰＵと同じ動き情報を有することを、ビデオデコーダ３０に対して示す値を示し得る。別の例では、動き推定モジュール１２２は、ＰＵと関連付けられるＣＵと関連付けられた４分木ノードにおいて、隣接するＰＵと動きベクトル差（ＭＶＤ）とを特定し得る。動きベクトル差は、ＰＵの動きベクトルと、示される隣接するＰＵの動きベクトルとの差を示す。ビデオデコーダ３０は、示される隣接するＰＵの動きベクトルと、動きベクトル差とを使用して、ＰＵの動きベクトルを予測することができる。第２のＰＵの動き情報を信号伝達するときに第１のＰＵの動き情報を参照することによって、ビデオエンコーダ２０は、より少数のビットを使用して、第２のＰＵの動き情報を信号伝達することが可能であり得る。
【００６８】
ＣＵに対して符号化動作を実行することの一部として、イントラ予測モジュール１２６は、ＣＵのＰＵに対してイントラ予測を実行することができる。イントラ予測は、空間圧縮を実現し得る。イントラ予測モジュール１２６がＰＵに対してイントラ予測を実行するとき、イントラ予測モジュール１２６は、同じピクチャ中の他のＰＵの復号されたサンプルに基づいて、ＰＵの予測データを生成することができる。ＰＵの予測データは、予測されたビデオブロックと様々なシンタクス要素とを含み得る。イントラ予測モジュール１２６は、Ｉスライス、Ｐスライス、及びＢスライスの中のＰＵに対して、イントラ予測を実行することができる。
【００６９】
ＰＵに対してイントラ予測を実行するために、イントラ予測モジュール１２６は、複数のイントラ予測モードを使用して、ＰＵの予測データの複数のセットを生成することができる。イントラ予測モジュール１２６が、イントラ予測モードを使用して、ＰＵの予測データのセットを生成するとき、イントラ予測モジュール１２６は、イントラ予測モードと関連付けられる方向及び／又は傾きに、隣接するＰＵのビデオブロックからＰＵのビデオブロックにわたって、サンプルを延ばすことができる。隣接するＰＵは、ＰＵ、ＣＵ及びツリーブロックに対して左から右、上から下の符号化順序を仮定すると、ＰＵの上、上と右、上と左、又は左にあり得る。イントラ予測モジュール１２６は、ＰＵのサイズに応じて、様々な数のイントラ予測モード、例えば、３３個の方向性イントラ予測モードを使用することができる。
【００７０】
予測モジュール１００は、ＰＵについての、動き補償モジュール１２４によって生成された予測データ、又はＰＵについての、イントラ予測モジュール１２６によって生成された予測データの中から、ＰＵの予測データを選択することができる。幾つかの例では、予測モジュール１００は、予測データのセットのレート／歪みの評価基準に基づいて、ＰＵの予測データを選択する。
【００７１】
予測モジュール１００が、イントラ予測モジュール１２６によって生成された予測データを選択する場合、予測モジュール１００は、ＰＵの予測データを生成するのに使用されたイントラ予測モード、即ち、選択されたイントラ予測モードを信号伝達することができる。予測モジュール１００は、選択されたイントラ予測モードを様々な方法で信号伝達することができる。例えば、選択されたイントラ予測モードは、隣接するＰＵのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接するＰＵのイントラ予測モードは、現在のＰＵに対して最もあり得るモードであり得る。従って、予測モジュール１００は、選択されたイントラ予測モードが隣接するＰＵのイントラ予測モードと同じであることを示すための、シンタクス要素を生成することができる。
【００７２】
予測モジュール１００がＣＵのＰＵの予測データを選択した後、残差生成モジュール１０２は、ＣＵのビデオブロックからＣＵのＰＵの予測されたビデオブロックを差し引くことによって、ＣＵの残差データを生成することができる。ＣＵの残差データは、ＣＵのビデオブロック中のサンプルの様々なサンプル成分に対応する、２Ｄ残差ビデオブロックを含み得る。例えば、残差データは、ＣＵのＰＵの予測されたビデオブロック中のサンプルの輝度成分と、ＣＵの元のビデオブロック中のサンプルの輝度成分との差に対応する、残差ビデオブロックを含み得る。加えて、ＣＵの残差データは、ＣＵのＰＵの予測されたビデオブロック中のサンプルのクロミナンス成分と、ＣＵの元のビデオブロック中のサンプルのクロミナンス成分との差に対応する、残差ビデオブロックを含み得る。
【００７３】
予測モジュール１００は、４分木区分を実行して、ＣＵの残差ビデオブロックをサブブロックへと区分することができる。各々の分割されていない残差ビデオブロックは、ＣＵの異なるＴＵと関連付けられ得る。ＣＵのＴＵと関連付けられる残差ビデオブロックのサイズ及び位置は、ＣＵのＰＵと関連付けられるビデオブロックのサイズ及び位置に基づいてよく、又は基づかなくてよい。「残差４分木」（ＲＱＴ）として知られる４分木構造は、残差ビデオブロックの各々と関連付けられるノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。
【００７４】
変換モジュール１０４は、ＴＵと関連付けられる残差ビデオブロックに１つ又は複数の変換を適用することによって、ＣＵの各ＴＵのための１つ又は複数の変換係数ブロックを生成することができる。変換係数ブロックの各々は、変換係数の２Ｄ行列であり得る。変換モジュール１０４は、ＴＵと関連付けられる残差ビデオブロックに様々な変換を適用することができる。例えば、変換モジュール１０４は、離散コサイン変換（ＤＣＴ）、方向変換、又は概念的に同様の変換を、ＴＵと関連付けられる残差ビデオブロックに適用することができる。
【００７５】
変換モジュール１０４が、ＴＵと関連付けられる変換係数ブロックを生成した後、量子化モジュール１０６は、変換係数ブロック中の変換係数を量子化することができる。量子化モジュール１０６は、ＣＵと関連付けられるＱＰ値に基づいて、ＣＵのＴＵと関連付けられる変換係数ブロックを量子化することができる。
【００７６】
ビデオエンコーダ２０は、様々な方法でＱＰ値をＣＵと関連付けることができる。例えば、ビデオエンコーダ２０は、ＣＵと関連付けられるツリーブロックに対して、レート歪み分析を実行することができる。レート歪み分析では、ビデオエンコーダ２０は、ツリーブロックに対して符号化動作を複数回実行することによって、ツリーブロックの複数のコード化された表現を生成することができる。ビデオエンコーダ２０がツリーブロックの異なる符号化された表現を生成するとき、ビデオエンコーダ２０は、異なるＱＰ値をＣＵと関連付けることができる。所与のＱＰ値が、ビットレート及び歪みの評価基準が最小であるツリーブロックのコード化された表現においてＣＵと関連付けられるとき、ビデオエンコーダ２０は、その所与のＱＰ値がＣＵと関連付けられることを信号伝達することができる。
【００７７】
逆量子化モジュール１０８及び逆変換モジュール１１０は、それぞれ、変換係数ブロックに逆量子化と逆変換とを適用して、変換係数ブロックから残差ビデオブロックを復元することができる。復元モジュール１１２は、復元された残差ビデオブロックを、予測モジュール１００によって生成される１つ又は複数の予測されたビデオブロックからの対応するサンプルに追加して、ＴＵと関連付けられる復元されたビデオブロックを生成することができる。このようにＣＵの各ＴＵのビデオブロックを復元することによって、ビデオエンコーダ２０は、ＣＵのビデオブロックを復元することができる。
【００７８】
復元モジュール１１２がＣＵのビデオブロックを復元した後、フィルタモジュール１１３は、デブロッキング動作を実行して、ＣＵと関連付けられるビデオブロックにおけるブロック歪みを低減することができる。フィルタモジュール１１３は、様々なデブロッキング動作を実行することができる。例えば、フィルタモジュール１１３は、図４に示される例示的なデブロッキング動作を実行することができる。他の例では、フィルタモジュール１１３は、図４に示される例示的なデブロッキング動作とは異なるデブロッキング動作を実行することができる。
【００７９】
１つ又は複数のデブロッキング動作を実行した後、フィルタモジュール１１３は、復号ピクチャバッファ１１４にＣＵの復元されたビデオブロックを記憶することができる。動き推定モジュール１２２及び動き補償モジュール１２４は、復元されたビデオブロックを含む参照ピクチャを使用して、後続ピクチャのＰＵに対してインター予測を実行することができる。加えて、イントラ予測モジュール１２６は、復号ピクチャバッファ１１４中の復元されたビデオブロックを使用して、ＣＵと同じピクチャの中の他のＰＵに対してイントラ予測を実行することができる。
【００８０】
このようにして、フィルタモジュール１１３が、エッジと関連付けられるサンプルにデブロッキングフィルタを適用した後、予測モジュール１００は、エッジと関連付けられるサンプルに少なくとも一部基づいて、予測されたビデオブロックを生成することができる。ビデオエンコーダ２０は、その値が予測されたビデオブロックに少なくとも一部基づく、１つ又は複数のシンタクス要素を含むビットストリームを出力することができる。
【００８１】
エントロピー符号化モジュール１１６は、ビデオエンコーダ２０の他の機能コンポーネントからデータを受信することができる。例えば、エントロピー符号化モジュール１１６は、量子化モジュール１０６から変換係数ブロックを受信することができ、予測モジュール１００からシンタクス要素を受信することができる。エントロピー符号化モジュール１１６がデータを受信するとき、エントロピー符号化モジュール１１６は、１つ又は複数のエントロピー符号化動作を実行して、エントロピー符号化されたデータを生成することができる。例えば、ビデオエンコーダ２０は、コンテキスト適応型可変長コード化（ＣＡＶＬＣ）動作、ＣＡＢＡＣ動作、変数−変数（Ｖ２Ｖ）レングスコード化動作、シンタクスベースのコンテキスト適応型２値算術コード化（ＳＢＡＣ）動作、Ｐｒｏｂａｂｉｌｉｔｙ  Ｉｎｔｅｒｖａｌ  Ｐａｒｔｉｔｉｏｎｉｎｇ  Ｅｎｔｒｏｐｙ（ＰＩＰＥ）コード化動作、又は別のタイプのエントロピー符号化動作をデータに対して実行することができる。エントロピー符号化モジュール１１６は、エントロピー符号化されたデータを含むビットストリームを出力することができる。
【００８２】
データに対してエントロピー符号化動作を実行することの一部として、エントロピー符号化モジュール１１６は、コンテキストモデルを選択することができる。エントロピー符号化モジュール１１６がＣＡＢＡＣ動作を実行している場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。ＣＡＢＡＣの文脈では、「ビン」という用語は、シンタクス要素の２値化されたバージョンのビットを指すために使用される。
【００８３】
エントロピー符号化モジュール１１６がＣＡＶＬＣ動作を実行している場合、コンテキストモデルは、対応するコードワードに係数をマッピングすることができる。ＣＡＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、比較的長いコードが劣勢シンボルに対応するように構築され得る。適切なコンテキストモデルの選択は、エントロピー符号化動作のコード化効率に影響を及ぼし得る。
【００８４】
図３は、本開示の技法を実施し得る、例示的なビデオデコーダ３０を示すブロック図である。図３は、説明を目的に与えられており、本開示において広く例示され説明される技法に対する限定ではない。説明のために、本開示は、ＨＥＶＣコード化の状況において、ビデオデコーダ３０について説明する。しかしながら、本開示の技法は、他のコード化規格又は方法にも適用可能であり得る。
【００８５】
図３の例において、ビデオデコーダ３０は、複数の機能コンポーネントを含む。ビデオデコーダ３０の機能コンポーネントは、エントロピー復号モジュール１５０と、予測モジュール１５２と、逆量子化モジュール１５４と、逆変換モジュール１５６と、復元モジュール１５８と、フィルタモジュール１５９と、復号ピクチャバッファ１６０とを含む。予測モジュール１５２は、動き補償モジュール１６２と、イントラ予測モジュール１６４とを含む。幾つかの例では、ビデオデコーダ３０は、図２のビデオエンコーダ２０に関して説明された符号化経路とは全般に逆の復号経路を実行し得る。他の例では、ビデオデコーダ３０は、より多数の、より少数の、又は異なる機能コンポーネントを含み得る。
【００８６】
ビデオデコーダ３０は、符号化されたビデオデータを備えるビットストリームを受信し得る。ビットストリームは、複数のシンタクス要素を含み得る。ビデオデコーダ３０がビットストリームを受信すると、エントロピー復号モジュール１５０は、ビットストリームに対して解析動作を実行することができる。ビットストリームに対して解析動作を実行した結果として、エントロピー復号モジュール１５０は、ビットストリームからシンタクス要素を抽出することができる。解析動作を実行することの一部として、エントロピー復号モジュール１５０は、ビットストリーム中のエントロピー符号化されたシンタクス要素を、エントロピー復号することができる。予測モジュール１５２、逆量子化モジュール１５４、逆変換モジュール１５６、復元モジュール１５８、及びフィルタモジュール１５９は、ビットストリームから抽出されたシンタクス要素に基づいて復号されたビデオデータを生成する、復元動作を実行することができる。
【００８７】
上で論じられたように、ビットストリームは、一連のＮＡＬ単位を備え得る。ビットストリームのＮＡＬ単位は、シーケンスパラメータセットＮＡＬ単位、ピクチャパラメータセットＮＡＬ単位、ＳＥＩ  ＮＡＬ単位などを含み得る。ビットストリームに対して解析動作を実行することの一部として、エントロピー復号モジュール１５０は、シーケンスパラメータセットＮＡＬ単位からのシーケンスパラメータセット、ピクチャパラメータセットＮＡＬ単位からのピクチャパラメータセット、ＳＥＩ  ＮＡＬ単位からのＳＥＩデータなどを抽出してエントロピー復号する、解析動作を実行することができる。
【００８８】
加えて、ビットストリームのＮＡＬ単位は、コード化されたスライスＮＡＬ単位を含み得る。ビットストリームに対して解析動作を実行することの一部として、エントロピー復号モジュール１５０は、コード化されたスライスＮＡＬ単位からコード化されたスライスを抽出してエントロピー復号する、解析動作を実行することができる。コード化されたスライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタクス要素を含み得る。スライスヘッダ中のシンタクス要素は、スライスを含むピクチャと関連付けられたピクチャパラメータセットを識別するシンタクス要素を含み得る。エントロピー復号モジュール１５０は、コード化されたスライスヘッダに対して、ＣＡＶＬＣ復号動作などのエントロピー復号動作を実行して、スライスヘッダを回復することができる。
【００８９】
コード化されたスライスＮＡＬ単位からスライスデータを抽出した後、エントロピー復号モジュール１５０は、スライスデータからコード化されたツリーブロックを抽出することができる。エントロピー復号モジュール１５０は次いで、コード化されたツリーブロックからコード化されたＣＵを抽出することができる。エントロピー復号モジュール１５０は、コード化されたＣＵからシンタクス要素を抽出する、解析動作を実行することができる。抽出されたシンタクス要素は、エントロピー符号化された変換係数ブロックを含み得る。エントロピー復号モジュール１５０は次いで、シンタクス要素に対してエントロピー復号動作を実行することができる。例えば、エントロピー復号モジュール１５０は、変換係数ブロックに対してＣＡＢＡＣ動作を実行することができる。
【００９０】
エントロピー復号モジュール１５０が区分されていないＣＵに対して解析動作を実行した後、ビデオデコーダ３０は、区分されていないＣＵに対して復元動作を実行することができる。区分されていないＣＵに対して復元動作を実行するために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して復元動作を実行することができる。ＣＵの各ＴＵに対して復元動作を実行することによって、ビデオデコーダ３０は、ＣＵと関連付けられる残差ビデオブロックを復元することができる。
【００９１】
ＴＵに対して復元動作を実行することの一部として、逆量子化モジュール１５４は、ＴＵと関連付けられた変換係数ブロックを逆量子化、即ち、量子化解除することができる。逆量子化モジュール１５４は、ＨＥＶＣのために提案される、又はＨ．２６４復号規格によって定義される逆量子化処理と同様の方式で、変換係数ブロックを逆量子化することができる。逆量子化モジュール１５４は、変換係数ブロックのＣＵのためにビデオエンコーダ２０によって計算される量子化パラメータＱＰを使用して、量子化の程度を決定し、同様に、逆量子化モジュール１５４が適用するべき逆量子化の程度を決定することができる。
【００９２】
逆量子化モジュール１５４が変換係数ブロックを逆量子化した後、逆変換モジュール１５６は、変換係数ブロックと関連付けられたＴＵの残差ビデオブロックを生成することができる。逆変換モジュール１５６は、ＴＵの残差ビデオブロックを生成するために、逆変換を変換係数ブロックに対して適用することができる。例えば、逆変換モジュール１５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向変換、又は別の逆変換を変換係数ブロックに適用することができる。
【００９３】
幾つかの例では、逆変換モジュール１５６は、ビデオエンコーダ２０からの信号伝達に基づいて、変換係数ブロックに適用するべき逆変換を決定することができる。そのような例では、逆変換モジュール１５６は、変換係数ブロックと関連付けられたツリーブロックの４分木のルートノードにおいて信号伝達された変換に基づいて、逆変換を決定することができる。他の例では、逆変換モジュール１５６は、ブロックサイズ、コード化モードなどのような、１つ又は複数のコード化特性から逆変換を推測することができる。幾つかの例では、逆変換モジュール１５６はカスケード逆変換を適用することができる。
【００９４】
インター予測を使用してＣＵのＰＵが符号化された場合、動き補償モジュール１６２は、動き補償を実行して、ＰＵの予測されるビデオブロックを生成することができる。動き補償モジュール１６２は、ＰＵの動き情報を使用して、ＰＵの参照サンプルを識別することができる。ＰＵの参照サンプルは、ＰＵとは時間的に異なるピクチャ中にあり得る。ＰＵの動き情報は、動きベクトルと、参照ピクチャインデックスと、予測方向とを含み得る。動き補償モジュール１６２は、ＰＵの参照サンプルを使用して、ＰＵの予測されたビデオブロックを生成することができる。幾つかの例では、動き補償モジュール１６２は、ＰＵに隣接するＰＵの動き情報に基づいて、ＰＵの動き情報を予測することができる。本開示では、ビデオエンコーダ２０がインター予測を使用してＰＵの予測されたビデオブロックを生成する場合、ＰＵはインター予測されたＰＵである。
【００９５】
幾つかの例では、動き補償モジュール１６２は、補間フィルタに基づく補間を実行することによって、ＰＵの予測されたビデオブロックを精緻化することができる。サブサンプル精度を有する動き補償に使用されるべき補間フィルタの識別子は、シンタクス要素中に含まれ得る。動き補償モジュール１６２は、ＰＵの予測されたビデオブロックの生成中にビデオエンコーダ２０によって使用されるのと同じ補間フィルタを使用して、参照ブロックのサブ整数サンプルに対する補間される値を算出することができる。動き補償モジュール１６２は、受信されたシンタクス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測されるビデオブロックを生成することができる。
【００９６】
イントラ予測を使用してＰＵが符号化される場合、イントラ予測モジュール１６４は、イントラ予測を実行して、ＰＵの予測されるビデオブロックを生成することができる。例えば、イントラ予測モジュール１６４は、ビットストリーム中のシンタクス要素に基づいて、ＰＵのイントラ予測モードを決定することができる。ビットストリームは、ＰＵのイントラ予測モードを予測するのにイントラ予測モジュール１６４が使用することができる、シンタクス要素を含み得る。
【００９７】
幾つかの例では、シンタクス要素は、イントラ予測モジュール１６４が別のＰＵのイントラ予測モードを使用して、現在のＰＵのイントラ予測モードを予測するべきであることを示し得る。例えば、現在のＰＵのイントラ予測モードが、隣接するＰＵのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接するＰＵのイントラ予測モードは、現在のＰＵに対して最もあり得るモードであり得る。従って、この例では、ビットストリームは、ＰＵのイントラ予測モードが、隣接するＰＵのイントラ予測モードと同じであることを示す、小さいシンタクス要素を含み得る。イントラ予測モジュール１６４は次いで、イントラ予測モードを使用して、空間的に隣接するＰＵのビデオブロックに基づいて、ＰＵの予測データ（例えば、予測されるサンプル）を生成することができる。
【００９８】
復元モジュール１５８は、適用可能なとき、ＣＵのＴＵと関連付けられる残差ビデオブロックとＣＵのＰＵの予測されるビデオブロックとを使用して、即ち、イントラ予測データ又はインター予測データのいずれかを使用して、ＣＵのビデオブロックを復元することができる。従って、ビデオデコーダ３０は、ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成することができ、予測されたビデオブロックと残差ビデオブロックとに基づいて、ビデオブロックを生成することができる。
【００９９】
復元モジュール１５８がＣＵのビデオブロックを復元した後、フィルタモジュール１５９は、デブロッキング動作を実行して、ＣＵと関連付けられるブロック歪みを低減することができる。フィルタモジュール１５９は、様々なデブロッキング動作を実行して、ＣＵと関連付けられるブロック歪みを低減することができる。例えば、フィルタモジュール１５９は、図４に示される例示的なデブロッキング動作を実行することができる。他の例では、フィルタモジュール１５９は、図４に示されるデブロッキング動作とは異なるデブロッキング動作を実行することができる。
【０１００】
復号ピクチャバッファ１６０は、ビデオデータのピクチャの復号されたサンプルを記憶することができる。従って、フィルタモジュール１５９がデブロッキング動作を実行してＣＵと関連付けられるブロック歪みを低減した後、ビデオデコーダ３０は、復号ピクチャバッファ１６０にＣＵのビデオブロックを記憶することができる。復号ピクチャバッファ１６０は、後続の動き補償、イントラ予測、及び図１の表示装置３２などの表示装置上での提示のために、参照ピクチャを与えることができる。例えば、ビデオデコーダ３０は、復号ピクチャバッファ１６０中のビデオブロックに基づいて、他のＣＵのＰＵに対して、イントラ予測動作又はインター予測動作を実行することができる。
【０１０１】
図４は、ＣＵと関連付けられるブロック歪みを低減するための例示的な動作２００を示すフローチャートである。ビデオエンコーダ２０又はビデオデコーダ３０のようなビデオコーダは、動作２００を実行することができる。他の例では、ビデオコーダは、ＣＵと関連付けられるブロック歪みを低減するために、動作２００以外の動作を使用することができる。例えば、他の例では、ビデオコーダは、ビデオコーダが動作２００よりも多数の、少数の、又は異なるステップを実行する、ブロック歪みを低減するための動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、動作２００のステップを実行することができる。
【０１０２】
ビデオコーダが動作２００を開始した後、ビデオコーダは、現在のＣＵと関連付けられるＴＵエッジを識別することができる（２０２）。現在のＣＵは、ビデオコーダが現在コード化している（即ち、符号化又は復号している）ＣＵである。説明を簡単にするために、本開示は、現在のＣＵと関連付けられるビデオブロックを、現在のＣＵビデオブロックと呼び得る。現在のＣＵビデオブロックと関連付けられるエッジは、現在のＣＵのＰＵ及びＴＵのエッジに対応し得る。更に、現在のＣＵビデオブロックと関連付けられるエッジは、ルーマエッジ及びクロマエッジであり得る。ルーマエッジは、ルーマサンプルのブロック間の境界におけるエッジであり得る。クロマエッジは、クロマサンプルのブロック間の境界におけるエッジであり得る。ビデオコーダは、現在のＣＵの残差４分木の中のデータに基づいて、ＴＵエッジを識別することができる。
【０１０３】
加えて、ビデオコーダは、現在のＣＵと関連付けられるＰＵエッジを識別することができる（２０４）。ビデオコーダは、様々な方法でＰＵエッジを識別することができる。例えば、ビデオコーダは、現在のＣＵのＰＵ区分モードと、現在のＣＵと関連付けられるフィルタ内部エッジフラグとに基づいて、ＰＵエッジを識別することができる。フィルタ内部エッジフラグは、デブロッキングが現在のＣＵの内部エッジに対して有効かどうかを示し得る。現在のＣＵの内部エッジは、現在のＣＵのビデオブロックと隣接するＣＵのビデオブロックとの境界において発生しないエッジである。
【０１０４】
現在のＣＵと関連付けられるＴＵエッジとＰＵエッジ（即ち、エッジ）を識別した後、ビデオコーダは、境界強度値をルーマエッジと関連付けることができる（２０６）。ビデオコーダは、様々な方法で、境界強度値をルーマエッジと関連付けることができる。例えば、ビデオコーダは、図５に示される例示的な動作を実行して、境界強度値をルーマエッジと関連付けることができる。他の例では、ビデオコーダは、図５の例とは異なる動作を実行して、境界強度値をルーマエッジと関連付けることができる。エッジを境界強度値と関連付けた後で、ビデオコーダは、ルーマエッジデブロッキング処理を実行することができる（２０８）。ルーマエッジデブロッキング処理は、輝度サンプルにおけるブロック歪みを低減することができる。ビデオコーダは、様々なルーマエッジデブロッキング処理を実行することができる。例えば、ビデオコーダは、図７に示される例示的なルーマエッジデブロッキング処理を実行することができる。他の例では、ビデオコーダは、図７に示される例示的なルーマエッジデブロッキング処理とは異なるルーマエッジデブロッキング処理を実行することができる。
【０１０５】
加えて、ビデオコーダは、境界強度値をクロマエッジと関連付けることができる（２１０）。ビデオコーダは、様々な方法で、境界強度値をクロマエッジと関連付けることができる。例えば、ビデオコーダは、図６に示される例示的な動作を実行して、境界強度値をクロマエッジと関連付けることができる。他の例では、ビデオコーダは、図６の例とは異なる動作を実行して、境界強度値をクロマエッジと関連付けることができる。
【０１０６】
ビデオコーダは次いで、クロマエッジデブロッキング処理を実行することができる（２１０）。クロマエッジデブロッキング処理は、クロミナンスサンプルにおけるブロック歪みを低減することができる。ビデオコーダは、様々なクロマエッジデブロッキング処理を実行することができる。例えば、ビデオコーダは、図１１に示される例示的なクロマエッジデブロッキング処理を実行することができる。他の例では、ビデオコーダは、図１１に示される例示的なクロマエッジデブロッキング処理とは異なるクロマエッジデブロッキング処理を実行することができる。
【０１０７】
図５は、境界強度値をルーマエッジと関連付けるための例示的な動作２５０を示すフローチャートである。ビデオエンコーダ２０又はビデオデコーダ３０のようなビデオコーダは、動作２５０を実行することができる。他の例では、ビデオコーダは、動作２５０以外の動作を使用して、境界強度値をルーマエッジと関連付けることができる。例えば、他の例では、ビデオコーダは、ビデオコーダが動作２５０よりも多数の、少数の、又は異なるステップを実行する、境界強度値をルーマエッジと関連付けるための動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、動作２５０のステップを実行することができる。
【０１０８】
ビデオコーダが動作２５０を開始した後、ビデオコーダは、ビデオブロック「ｐ」又はビデオブロック「ｑ」がイントラ予測されたＣＵと関連付けられるかどうかを決定することができる（２６０）。ルーマエッジは、ビデオブロック「ｐ」とビデオブロック「ｑ」との境界において発生し得る。
【０１０９】
ビデオブロック「ｑ」は、現在のＣＵビデオブロック内の４×４のビデオブロックであり得る。現在のＣＵビデオブロックは、ビデオコーダが現在コード化しているＣＵ（即ち、現在のＣＵ）と関連付けられるビデオブロックである。ビデオブロック「ｐ」は、隣接するビデオブロック内の４×４のビデオブロックであり得る。他の例では、ビデオブロック「ｑ」及び「ｐ」は、８×８のビデオブロックであり得る。隣接するビデオブロックは、現在のＣＵビデオブロック内、又は、以前にコード化されたＣＵと関連付けられるビデオブロック内にあり得る。
【０１１０】
ＣＵは、そのＣＵのＰＵの予測データがイントラ予測を使用して生成される場合、イントラ予測されたＣＵであり得る。ビデオブロック「ｑ」は、現在のＣＵビデオブロック（即ち、ビデオブロック「ｑ」を含むビデオブロック）がイントラ予測されたＣＵと関連付けられるとき、イントラ予測されたＣＵと関連付けられ得る。ビデオブロック「ｐ」は、ビデオブロック「ｐ」を含むビデオブロックがイントラ予測されたＣＵと関連付けられるとき、イントラ予測されたＣＵと関連付けられ得る。
【０１１１】
ビデオブロック「ｐ」又はビデオブロック「ｑ」がイントラ予測されたＣＵと関連付けられると決定したことに応答して（２６０の「はい」）、ビデオコーダは、第１の境界強度値をルーマエッジと関連付けることができる（２６２）。図５の例では、第１の境界強度値は２に等しい。２に等しい境界強度値は、デブロッキングフィルタが２に等しいオフセットを伴って有効であることを示し得る。
【０１１２】
従来のビデオコーダは、ビデオブロック「ｐ」又はビデオブロック「ｑ」がイントラ予測されたＣＵと関連付けられると決定したことに応答して、ルーマエッジがＣＵエッジかどうかを決定することができる。ＣＵエッジは、２つの異なるＣＵと関連付けられるビデオブロックの間の境界において発生するエッジであり得る。そのようなビデオコーダは、ルーマエッジがＣＵエッジであると決定したことに応答して、「４」という境界強度値をルーマエッジと関連付けることができ、ルーマエッジがＣＵエッジではないと決定したことに応答して、「３」という境界強度値をルーマエッジと関連付けることができる。
【０１１３】
本開示の技法によれば、ビデオコーダが動作２５０を実行するとき、ビデオコーダは、ルーマエッジがＣＵエッジであると決定することなく、第１の境界強度値をルーマエッジと関連付ける。ルーマエッジがＣＵエッジであるかどうかに関する追加の決定を行う代わりに、ビデオブロック「ｐ」又はビデオブロック「ｑ」がイントラ予測されたＣＵと関連付けられると決定したことに応答して第１の境界強度値をルーマエッジと関連付けることで、複雑さを低減し、ビデオコーダの性能を向上させることができる。
【０１１４】
一方で、ビデオブロック「ｐ」もビデオブロック「ｑ」もイントラ予測されたＣＵ中にないと決定したことに応答して（２６０の「いいえ」）、ビデオコーダは、ビデオブロック「ｐ」又はビデオブロック「ｑ」が、１つ又は複数の０ではない変換係数レベルと関連付けられるＴＵと関連付けられるかどうかを決定することができる（２６４）。ビデオブロック「ｐ」又はビデオブロック「ｑ」の中のサンプルの値が、ＴＵと関連付けられる残差ビデオブロックに基づく場合、ビデオブロック「ｐ」又はビデオブロック「ｑ」はＴＵと関連付けられ得る。
【０１１５】
ビデオブロック「ｐ」又はビデオブロック「ｑ」のいずれかが１つ又は複数の０ではない変換係数レベルと関連付けられるＴＵと関連付けられると決定したことに応答して（２６４の「はい」）、ビデオコーダは、第２の境界強度値（Ｂｓ）をルーマエッジと関連付けることができる（２６６）。図５の例では、第２の境界強度値は１に等しい。１に等しい境界強度値は、デブロッキングフィルタが０に等しいオフセットを伴って有効であることを示し得る。従来は、ビデオコーダは、ビデオブロック「ｐ」又はビデオブロック「ｑ」のいずれかが１つ又は複数の０ではない変換係数と関連付けられるＴＵと関連付けられると決定したことに応答して、２という境界強度値をルーマエッジと関連付け得る。
【０１１６】
それ以外の場合、この例では、ビデオブロック「ｐ」もビデオブロック「ｑ」も１つ又は複数の０ではない変換係数レベルと関連付けられるＴＵと関連付けられない場合（２６４の「いいえ」）、ビデオコーダは、ビデオブロック「ｐ」又はビデオブロック「ｑ」が異なる参照ピクチャ又は異なる数の動きベクトル（ＭＶ）を有するＰＵと関連付けられるかどうかを決定することができる（２６８）。ビデオブロック「ｐ」又はビデオブロック「ｑ」の中のサンプルの値が、ＰＵと関連付けられる予測されたビデオブロックに基づく場合、ビデオブロック「ｐ」又はビデオブロック「ｑ」はＰＵと関連付けられ得る。
【０１１７】
ビデオブロック「ｐ」又はビデオブロック「ｑ」が異なる参照ピクチャ又は異なる数の動きベクトルを有するＰＵと関連付けられると決定したことに応答して（２６８の「はい」）、ビデオコーダは、第２の境界強度値（例えば、１）をルーマエッジと関連付けることができる（２６６）。
【０１１８】
加えて、ビデオコーダは、ビデオブロック「ｐ」及びビデオブロック「ｑ」が１つの動きベクトルを有するＰＵと各々関連付けられるかどうかと、ビデオブロック「ｐ」と関連付けられるＰＵの動きベクトルの水平成分（ＭＶｐx）とビデオブロック「ｑ」と関連付けられるＰＵの動きベクトルの水平成分（ＭＶｑx）との差の絶対値が１以上であるかどうかとを、決定することができる（２７２）。ビデオブロック「ｐ」及びビデオブロック「ｑ」が１つの動きベクトルを有するＰＵと各々関連付けられ、ＭＶｑxとＭＶｐxとの差の絶対値が１以上であると決定したことに応答して（２７２の「はい」）、ビデオコーダは、第２の境界強度値（例えば、１）をルーマエッジと関連付けることができる（２６６）。
【０１１９】
加えて、ビデオコーダは、ビデオブロック「ｐ」及びビデオブロック「ｑ」が１つの動きベクトルを有するＰＵと各々関連付けられるかどうかと、ビデオブロック「ｐ」と関連付けられるＰＵの動きベクトルの垂直成分（ＭＶｐy）とビデオブロック「ｑ」と関連付けられるＰＵの動きベクトルの垂直成分（ＭＶｑy）との差の絶対値が１以上であるかどうかとを、決定することができる（２７４）。ビデオブロック「ｐ」及びビデオブロック「ｑ」が１つの動きベクトルを有するＰＵと各々関連付けられ、ＭＶｐyとＭＶｑyとの差の絶対値が１以上であると決定したことに応答して（２７４の「はい」）、ビデオコーダは、第２の境界強度値（例えば、１）をルーマエッジと関連付けることができる（２６６）。
【０１２０】
加えて、ビデオコーダは、ビデオブロック「ｑ」と関連付けられるＰＵとビデオブロック「ｐ」と関連付けられるＰＵの両方が２つの動きベクトルを有するかどうかと、動きベクトルの少なくとも１つのペアに対して、動きベクトルの水平成分（ＭＶｐx、ＭＶｑx）の差の絶対値が１以上かどうかとを、決定することができる（２７６）。ビデオブロック「ｑ」と関連付けられるＰＵとビデオブロック「ｐ」と関連付けられるＰＵの両方が２つの動きベクトルを有し、動きベクトルの少なくとも１つのペアに対して、ＭＶｐxとＭＶｑxとの差の絶対値が１以上であると決定したことに応答して（２７６の「はい」）、ビデオコーダは、第２の境界強度値（例えば、１）をルーマエッジと関連付けることができる（２６６）。
【０１２１】
加えて、ビデオコーダは、ビデオブロック「ｑ」と関連付けられるＰＵとビデオブロック「ｐ」と関連付けられるＰＵの両方が２つの動きベクトルを有するかどうかと、動きベクトルの少なくとも１つのペアに対して、動きベクトルの垂直成分（ＭＶｐy、ＭＶｑy）の差の絶対値が１以上かどうかとを、決定することができる（２７８）。ビデオブロック「ｑ」と関連付けられるＰＵとビデオブロック「ｑ」と関連付けられるＰＵの両方が２つの動きベクトルを有し、動きベクトルの少なくとも１つのペアに対して、動きベクトルの垂直成分（ＭＶｐy、ＭＶｑy）の差の絶対値が１以上であると決定したことに応答して（２７８の「はい」）、ビデオコーダは、第２の境界強度値（例えば、１）をルーマエッジと関連付けることができる（２６６）。
【０１２２】
それ以外の場合、即ちステップ２６８〜２７８の条件のいずれもが真であると評価されない場合、ビデオコーダは、ルーマエッジを第３の境界強度値と関連付けることができる（２８０）。図５の例では、第３の境界強度値は０に等しい。従って、図５の例では、ビデオコーダは、ビデオブロック「ｐ」及びビデオブロック「ｑ」がインター予測されるＣＵと関連付けられる場合にのみ、１又は０という境界強度値をルーマエッジと関連付けることができる。以下で説明されるように、ビデオコーダは、エッジと関連付けられる境界強度値が第３の境界強度値（例えば、０）である場合、デブロッキングフィルタをエッジに適用しない。
【０１２３】
ステップ２６８〜２７８は、ビデオブロック「ｑ」の中のサンプルとビデオブロック「ｐ」の中のサンプルとの差を求めるための、追加の確認であり得る。ステップ２６８〜２７８の確認が真であると評価される場合、ビデオブロック「ｑ」の中のサンプルとビデオブロック「ｐ」の中のサンプルは何らかの差を有し得る。それ以外の場合、ビデオブロック「ｑ」の中のサンプルとビデオブロック「ｐ」の中のサンプルは殆んど又は全く差を有さないことがあるので、エッジは、０という境界強度値と関連付けられてよく、エッジと関連付けられるサンプルにデブロッキングフィルタは適用されない。
【０１２４】
本開示は、ルーマエッジに関して実行されるものとして、図５の例について説明する。しかしながら、他の例では、動作２５０と同様の動作は、クロマエッジに関して実行され得る。
【０１２５】
図６は、境界強度値を２つのビデオブロックの間のクロマエッジと関連付けるための例示的な動作２８０を示すフローチャートである。ビデオエンコーダ２０又はビデオデコーダ３０のようなビデオコーダは、動作２８０を実行することができる。他の例では、ビデオコーダは、動作２８０以外の動作を使用して、境界強度値をクロマエッジと関連付けることができる。例えば、他の例では、ビデオコーダは、ビデオコーダが動作２８０よりも多数の、少数の、又は異なるステップを実行する、境界強度値をクロマエッジと関連付けるための動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、動作２８０のステップを実行することができる。
【０１２６】
ビデオコーダが動作２８０を開始した後、ビデオコーダは、現在のＣＵビデオブロックがＰスライス又はＢスライスの中にあるかどうかを決定することができる（２８２）。現在のＣＵビデオブロックは、ビデオコーダが現在コード化しているＣＵ（即ち、現在のＣＵ）と関連付けられるビデオブロックである。現在のＣＵビデオブロックがＰスライス又はＢスライスの中にあると決定したことに応答して（２８２の「はい」）、ビデオコーダは、第３の境界強度値（Ｂｓ）をエッジと関連付けることができる（２８４）。図６の例では、第３の境界強度値は０に等しい。０に等しい境界強度値は、デブロッキングフィルタがクロマエッジに適用されないことを示し得る。従って、ビデオコーダは、クロマエッジがＩスライス中にある場合にのみ、デブロッキングフィルタをクロマエッジに適用することができる。
【０１２７】
現在のＣＵビデオブロックがＰスライス又はＢスライスの中にない（即ち、現在のＣＵビデオブロックがＩスライスの中にある）と決定したことに応答して（２８２の「いいえ」）、ビデオコーダは、クロマエッジが４Ｎ×４ＮのＴＵの内部エッジに対応するかどうかを決定することができ、Ｎはエッジのルーマサンプルの長さである（２８６）。例えば、ビデオコーダは、エッジの長さが８サンプルである場合、クロマエッジが３２×３２のＴＵの内部エッジに対応するかどうかを決定することができる。ＴＵの外部エッジは、異なるＴＵと関連付けられるビデオブロックの境界に対応するエッジであり得る。ＴＵの内部エッジは、異なるＴＵと関連付けられるビデオブロックの境界に対応しないエッジであり得る。
【０１２８】
クロマエッジが４Ｎ×４ＮのＴＵの内部エッジに対応すると決定したことに応答して（２８６の「はい」）、ビデオコーダは、第３の境界強度値（Ｂｓ）をクロマエッジと関連付けることができる（２８４）。しかしながら、クロマエッジが４Ｎ×４ＮのＴＵの内部エッジに対応しないと決定したことに応答して（２８６の「いいえ」）、ビデオコーダは、第１の境界強度値をクロマエッジと関連付けることができる（２８８）。図６の例では、第１の境界強度値は２に等しい。
【０１２９】
図４のステップ２０２及び２０４において、ビデオコーダは、８×８のルーマサンプルグリッド上のエッジを試験して、エッジがＣＵのＰＵ又はＴＵのエッジに対応するかどうかを決定することができる。ビデオコーダは、残差ルーマサンプルのブロックの一番左上のルーマサンプルに対する座標に基づいて、エッジがＰＵエッジ又はＴＵエッジに対応するかどうかを示すデータをアレイに記憶することができる。各ＣＵは、残差ルーマサンプルのブロック及び残差クロマサンプルの２つのブロックと関連付けられ得る。ビデオコーダは、残差クロマサンプルのブロックの各々が残差ルーマサンプルのブロックの幅及び高さの半分の幅と高さとを有するように、残差クロマサンプルのブロックをサブサンプリング又はダウンサンプリングすることができる。例えば、ＣＵのＴＵは最初、残差ルーマサンプルの３２×３２のブロック及び残差クロマサンプルの２つの３２×３２のブロックと関連付けられ得る。この例では、ビデオコーダは、残差クロマサンプルのブロックを、残差クロマサンプルの１６×１６のブロックへとサブサンプリング又はダウンサンプリングすることができる。
【０１３０】
従って、残差クロマサンプルのサブサンプリングされたブロック又はダウンサンプリングされたブロックでは、以前は８サンプル離れていたＴＵの内部エッジが、今では４サンプル離れている。結果として、残差クロマサンプルのブロック中のエッジの座標は、サブサンプリング又はダウンサンプリングの前と同じではないことがある。従って、ビデオコーダは、エッジがＰＵ又はＴＵのエッジに対応するかどうかを決定するために、エッジの座標を変換する必要がある。このことは、デブロッキング処理の複雑さを大きくし得る。この複雑さを避けるために、ビデオコーダは、４Ｎ×４ＮのＴＵの内部エッジに対するＢｓ値を第３の境界強度値に設定することができる。従って、ビデオコーダは、デブロッキングフィルタを４Ｎ×４ＮのＴＵの内部エッジに適用しない。
【０１３１】
即ち、ビデオコーダは固定されたＮ×Ｎのデブロッキンググリッドに対するクロマデブロッキングを実行できるので、エッジ探索動作はクロマビデオブロックに対してもはや必要ではないことがあり、ルーマビデオブロックからクロマビデオブロックへのダウンサンプリングは通常、Ｎ×Ｎのサンプルよりも大きくないビデオブロックをもたらす。例えば、輝度ビデオブロックの最大のＴＵサイズは通常、ビデオコーダがＮ×Ｎのクロマビデオブロックへとダウンサンプリングできる、２Ｎ×２Ｎである。この場合、ビデオコーダは、固定されたＮ×Ｎのデブロッキンググリッドの全てのエッジがＴＵエッジでありデブロッキングされ得ると、決定することができる。ある例として、クロマデブロッキングは、固定された８×８のデブロッキンググリッドに対して実行され得る。輝度ビデオブロックの最大のＴＵサイズは通常１６×１６のサンプルなので、ダウンサンプリングされたクロミナンスビデオブロックは、８×８のサンプルのサイズを有してよく、これは、固定された８×８のデブロッキンググリッドと等価である。
【０１３２】
１つの例外は、輝度ビデオブロックのＴＵサイズが２Ｎ×２Ｎよりも大きい、例えば４Ｎ×４Ｎである場合に存在し得る。この場合、輝度ビデオブロックは、デブロッキングフィルタを適用すべき４つのＮ×Ｎのデブロッキンググリッドを含む２Ｎ×２Ｎのクロミナンスビデオブロックへとダウンサンプリングされる。例として、ルーマビデオブロックのＴＵサイズは３２×３２のサンプルであり得るので、ダウンサンプリングされたクロミナンスビデオブロックは１６×１６のサンプルというサイズを有し、これは、固定された８×８のデブロッキンググリッドのうちの４つを含む。デブロッキングフィルタは、２Ｎ×２Ｎのクロミナンスビデオブロックの内部にあるＮ×Ｎのデブロッキンググリッドのエッジのいずれに対しても実行されなくてよい。従って、この場合、ビデオコーダは、４Ｎ×４Ｎの輝度ビデオブロック（及び２Ｎ×２Ｎのクロミナンスビデオブロック）の内部エッジが処理されないこと、即ち、デブロッキングフィルタが内部エッジに対して０に等しいＢｓ値によって無効にされることを確実にするための、確認を実行することができる。
【０１３３】
本技法は、ビデオコーダが、Ｎ×Ｎのグリッドに従ってＴＵエッジとＰＵエッジとを識別することを可能にする。加えて、ビデオコーダは、クロマビデオブロックがＮ×Ｎのサンプルよりも大きいサイズを有するかどうかを決定することができる。ビデオコーダは、クロマビデオブロックがＮ×Ｎのサンプル以下のサイズを有する場合、エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用することができる。しかしながら、クロマビデオブロックがＮ×Ｎのサンプルよりも大きいサイズを有する場合、ビデオコーダは、クロマビデオブロックの内部にあるグリッドのエッジに対して、デブロッキングフィルタを無効にすることができる。
【０１３４】
幾つかの例では、ステップ２８６は、各エッジが８サンプルの幅又は高さである場合に適用可能である。そのような例では、エッジは、Ｎ×Ｎのサンプルグリッドを形成し得る。デブロッキングフィルタを４Ｎ×４ＮのＴＵの内部エッジのクロマサンプルに適用することは、デブロッキングフィルタの適用による複雑さと性能の低下とを正当化するほど、視覚上の品質を十分に向上させないことがある。従って、第３の境界強度値を、３２×３２のＴＵの外部エッジに対応しないクロマエッジと関連付けることによって、ビデオコーダは、エッジが３２×３２のＴＵの外部エッジに対応し、エッジが第１の境界強度値と関連付けられる場合にのみ、エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用することができる。このようにして、ビデオコーダは、有利なことに、クロマエッジに関するデブロッキング動作を更に実行することと関連付けられる複雑さと性能の低下とを避けることができる。
【０１３５】
図７は、ＣＵのルーマエッジをデブロックするための例示的な動作３００を示すフローチャートである。ビデオエンコーダ２０又はビデオデコーダ３０のようなビデオコーダは、ルーマエッジデブロッキング動作３００を実行することができる。他の例では、ビデオコーダは、ルーマエッジデブロッキング動作３００以外の動作を使用することができる。例えば、他の例では、ビデオコーダは、ビデオコーダがルーマエッジデブロッキング動作３００よりも多数の、少数の、又は異なるステップを実行する、ルーマエッジデブロッキング動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、ルーマエッジデブロッキング動作３００のステップを実行することができる。
【０１３６】
ビデオコーダがルーマエッジデブロッキング動作３００を開始した後、ビデオコーダは、ビデオコーダが現在のＣＵビデオブロックと関連付けられる最後の垂直ルーマエッジに対してデブロッキング動作を実行したかどうかを決定することができる（３０２）。現在のＣＵビデオブロックは、ビデオコーダが現在コード化しているＣＵ（即ち、現在のＣＵ）と関連付けられるビデオブロックであり得る。最後の垂直ルーマエッジは、現在のＣＵビデオブロックと関連付けられる垂直ルーマエッジが幾何学的な順序に従って左から右に並べられるときの、最終の垂直ルーマエッジであり得る。
【０１３７】
ビデオコーダが最後の垂直ルーマエッジに対してデブロッキング動作をまだ実行していないと決定したことに応答して（３０２の「いいえ」）、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる次の垂直ルーマエッジを選択することができる（３０４）。次の垂直ルーマエッジは、デブロッキング動作がまだ実行されていない現在のＣＵビデオブロックと関連付けられる、最初の垂直ルーマエッジであり得る。ビデオコーダは次いで、選択されたルーマ垂直エッジに対してデブロッキング動作を実行することができる（３０６）。選択された垂直ルーマエッジに対してデブロッキング動作を実行することによって、ビデオコーダは、選択された垂直ルーマエッジと関連付けられるブロック歪みを低減又は除去することができる。ビデオコーダは、選択された垂直ルーマエッジに対して様々なデブロッキング動作を実行することができる。例えば、ビデオコーダは、図８の例示的なデブロッキング動作を、選択された垂直ルーマエッジに対して実行することができる。他の例では、ビデオコーダは、図８のデブロッキング動作とは異なるデブロッキング動作を、選択された垂直ルーマエッジに対して実行することができる。
【０１３８】
選択された垂直ルーマエッジに対してデブロッキング動作を実行した後、ビデオコーダは、デブロッキング動作が現在のＣＵビデオブロックと関連付けられる最後の垂直ルーマエッジに適用されたかどうかを再び決定することができる（３０２）。適用されていない場合、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる別の垂直ルーマエッジに関して、ステップ３０４と３０６とを繰り返すことができる。このようにして、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる垂直ルーマエッジの各々に対して、デブロッキング動作を実行することができる。
【０１３９】
デブロッキング動作が現在のＣＵビデオブロックと関連付けられる最後の垂直ルーマエッジに対して実行されたと決定したことに応答して（３０２の「はい」）、ビデオコーダは、デブロッキング動作が現在のＣＵビデオブロックと関連付けられる最後の水平ルーマエッジに対して実行されたかどうかを決定することができる（３０８）。最後の水平ルーマエッジは、現在のＣＵビデオブロックと関連付けられる水平ルーマエッジが幾何学的な順序に従って上から下に並べられるときの、最後の水平ルーマエッジであり得る。
【０１４０】
ビデオコーダが最後の水平ルーマエッジに対してデブロッキング動作をまだ実行していないと決定したことに応答して（３０８の「いいえ」）、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる次の水平ルーマエッジを選択することができる（３１０）。次の水平ルーマエッジは、デブロッキング動作がまだ実行されていない現在のＣＵビデオブロックと関連付けられる、最初の水平ルーマエッジであり得る。ビデオコーダは次いで、選択された水平ルーマエッジに対してデブロッキング動作を実行することができる（３１２）。選択された水平ルーマエッジに対してデブロッキング動作を実行することによって、ビデオコーダは、選択された水平ルーマエッジと関連付けられるブロック歪みを低減又は除去することができる。ビデオコーダは、選択された水平ルーマエッジに対して様々なデブロッキング動作を実行することができる。例えば、ビデオコーダは、図８の例示的なデブロッキング動作を、選択された水平ルーマエッジに対して実行することができる。
【０１４１】
選択された水平ルーマエッジに対してデブロッキング動作を実行した後、ビデオコーダは、デブロッキング動作が現在のＣＵビデオブロックと関連付けられる最後の水平ルーマエッジに適用されたかどうかを再び決定することができる（３０８）。適用されていない場合、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる別の水平ルーマエッジに関して、ステップ３１０と３１２とを繰り返すことができる。しかしながら、ビデオコーダが現在のＣＵビデオブロックと関連付けられる最後の水平ルーマエッジに対してデブロッキング動作を実行したと決定したことに応答して（３０８の「はい」）、ビデオコーダは、ルーマエッジデブロッキング動作３００を終了することができる。このようにして、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる垂直ルーマエッジと水平ルーマエッジの各々に対して、デブロッキング動作を実行することができる。
【０１４２】
図８は、個々のルーマエッジに対してビデオコーダによって実行される、例示的なデブロッキング動作３５０を示すフローチャートである。幾つかの例では、ビデオエンコーダ２０又はビデオデコーダ３０のようなビデオコーダは、デブロッキング動作３５０を実行することができる。ビデオコーダは、ビデオコーダが現在コード化しているＣＵのビデオブロックと関連付けられるルーマエッジに関して、デブロッキング動作３５０を実行することができる。説明を簡単にするために、本開示は、ビデオコーダが現在コード化しているＣＵを、現在のＣＵと呼び得る。更に、本開示は、現在のＣＵと関連付けられるビデオブロックを、現在のＣＵビデオブロックと呼び得る。本開示は、ビデオコーダがデブロッキング動作３５０を実行しているエッジを、現在のエッジと呼び得る。
【０１４３】
ビデオコーダがデブロッキング動作３５０を開始した後、ビデオコーダは、現在のエッジと関連付けられる境界強度値が０よりも大きいかどうかを決定することができる（３５２）。言い換えれば、ビデオコーダは、現在のエッジと関連付けられる境界強度値が第１の境界強度値又は第２の境界強度値と等しいかどうかを決定することができる。
【０１４４】
現在のエッジと関連付けられる境界強度値が０よりも大きくないと決定したことに応答して（３５２の「いいえ」）、ビデオコーダは、現在のエッジに関してデブロッキング動作３５０を終了することができる。従って、ビデオコーダは、現在のエッジと関連付けられる境界強度値が０（即ち、第３の境界強度値）に等しい場合、デブロッキングフィルタを現在のエッジに適用しない。しかしながら、現在のエッジが第１の境界強度値（例えば、２）又は第２の境界強度値（例えば、１）と関連付けられる場合、ビデオコーダは、現在のエッジと関連付けられるルーマサンプルに１つ又は複数のデブロッキングフィルタを適用することができる。
【０１４５】
一方、現在のエッジと関連付けられる境界強度値が０よりも大きいと決定したことに応答して（３５２の「はい」）、ビデオコーダは、デブロッキングＱＰ値を求めることができる（３５４）。ビデオコーダは、様々な方法で、デブロッキングＱＰ値を求めることができる。例えば、現在のエッジが現在のＣＵビデオブロックと隣接するＣＵのビデオブロックとの境界において発生する場合、ビデオコーダは、現在のＣＵと関連付けられるルーマＱＰ値及び／又は隣接するＣＵと関連付けられるルーマＱＰ値に基づいて、デブロッキングＱＰ値を求めることができる。この例では、ビデオコーダは、次の式、即ちｑＰL＝（（ＱＰY＋ＱＰP＋１）＞＞１）に基づいてデブロッキングＱＰ値を求めることができる。ここで、ｑＰLはデブロッキングＱＰ値であり、ＱＰYは現在のＣＵと関連付けられるルーマＱＰ値であり、ＱＰPは隣接するＣＵと関連付けられるルーマＱＰ値であり、「＞＞」は右シフトの演算子である。
【０１４６】
デブロッキングＱＰ値を求めた後、ビデオコーダは、現在のエッジと関連付けられるデブロッキングＱＰ値と境界強度値とに基づいて、閾値ｔcに対するパラメータＱの値を特定することができる（３５６）。幾つかの例では、ビデオコーダは、次の擬似コードを使用して、ｔcに対するパラメータＱの値を特定することができる。
【数１】
0005932049.tif 000002
【０１４７】
上の擬似コードでは、「Ｂｓ」は現在のエッジと関連付けられる境界強度値を示し、「ＱＰ」はデブロッキングＱＰ値を示す。上の擬似コードでは、ｚ＜ｘの場合はＣｌｉｐ３（ｘ，ｙ，ｚ）＝ｘであり、ｚ＞ｙの場合はＣｌｉｐ３（ｘ，ｙ，ｚ）＝ｙであり、他の場合はＣｌｉｐ３（ｘ，ｙ，ｚ）＝ｚである。
【０１４８】
別の例では、ビデオコーダは、次の擬似コードを使用して、ｔcに対するパラメータＱの値を特定することができる。
【数２】
0005932049.tif 000003
【０１４９】
別の例では、ビデオコーダは、ｔcに対するパラメータＱの値をＱ＝Ｃｌｉｐ３（０，５５，ｑＰL＋２×（Ｂｓ−１）＋（ｔｃ＿ｏｆｆｓｅｔ＿ｄｉｖ２＜＜１））と特定することができ、ｑＰLはデブロッキングＱＰ値であり、Ｂｓは現在のエッジと関連付けられる境界強度値であり、「ｔｃ＿ｏｆｆｓｅｔ＿ｄｉｖ２」はｔcに対するデブロッキングパラメータオフセットである。
【０１５０】
加えて、ビデオコーダは、デブロッキングＱＰ値に基づいて、閾値βに対してパラメータＱの値を特定することができる（３５８）。幾つかの例では、ビデオコーダは、次の式を使用して、βに対するパラメータＱの値を特定することができる。
【数３】
0005932049.tif 000004
【０１５１】
上の擬似コードでは、「Ｂｓ」、「ＱＰ」、及び「Ｃｌｉｐ３」は、上の擬似コードの場合と同じ意味を有し得る。別の例では、ビデオコーダは、βに対するパラメータＱの値を、Ｑ＝Ｃｌｉｐ３（０，５１，ｑＰL＋（ｂｅｔａ＿ｏｆｆｓｅｔ＿ｄｉｖ２＜＜１））として特定することができ、ｑＰLはデブロッキングＱＰを示し、「ｂｅｔａ＿ｏｆｆｓｅｔ＿ｄｉｖ２」はβに対するデブロッキングパラメータオフセットである。
【０１５２】
ビデオコーダは次いで、ｔcに対して特定されたＱの値に基づいて、ｔcの値を求めることができる（３６０）。加えて、ビデオコーダは、βに対して特定されたＱの値に基づいて、βの値を求めることができる（３６２）。幾つかの例では、ビデオコーダは、ｔc及びβに対するＱの値を、１つ又は複数の参照テーブル中でｔc及びβの値を探索するためのインデックスとして使用することができる。例えば、ビデオコーダは、次の表を使用して、ｔc及びβの値を特定することができる。
【表１】
0005932049.tif 000005
【０１５３】
この参照テーブルにおいてｔc又はβの値を探索するためのインデックスとしてＱの値を使用するために、ビデオコーダは、参照テーブル中でＱの値を見つけて、次いで、Ｑの値を下回るｔc又はβに対して規定された値を特定することができる。
【０１５４】
ビデオコーダがｔc及びβの値を求めた後、ビデオコーダは、ｔc又はβが０に等しいかどうかを決定することができる（３６４）。ｔc又はβのいずれかが０に等しいと決定したことに応答して（３６４の「はい」）、ビデオコーダは、現在のエッジに関するデブロッキング動作３５０を終了することができる。以下で説明されるように、ｔｃ又はβが０に等しいときにデブロッキング動作３５０を終了することで、複雑さを低減し、ビデオコーダの性能を向上させることができる。
【０１５５】
このようにして、ビデオコーダは、デブロッキング量子化パラメータ値に基づいて、かつ、第１の境界強度値又は第２の境界強度値が現在のエッジと関連付けられるかどうかに基づいて、第１の閾値（即ち、ｔc）と第２の閾値（即ち、β）とを決定することができる。加えて、ビデオコーダは、第１の閾値又は第２の閾値が０に等しいかどうかを決定することができ、第１の閾値又は第２の閾値のいずれかが０に等しい場合、現在のエッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用しなくてよい。しかしながら、現在のエッジが第１の境界強度値又は第２の境界強度値と関連付けられる場合、かつ、第１の閾値も第２の閾値も０に等しくない場合、ビデオコーダは、現在のエッジと関連付けられるルーマサンプルに１つ又は複数のデブロッキングフィルタを適用することができる。
【０１５６】
ｔcもβも０に等しくないと決定したことに応答して（３６４の「いいえ」）、ビデオコーダは、現在のエッジと関連付けられるβとルーマサンプルとに基づいて、現在のエッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用するかどうかを決定することができる（３６６）。現在のエッジと関連付けられるβとルーマサンプルとに基づいて、現在のエッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用しないと決定したことに応答して（３６６の「いいえ」）、ビデオコーダは、現在のエッジに関するデブロッキング動作３５０を終了することができる。従って、ステップ３６６の決定は、デブロッキングフィルタに対する有効／無効の決定であり得る。
【０１５７】
ビデオコーダは、様々な方法でこの決定を行うことができる。例えば、ビデオコーダは、次のように値ｄを計算することができる。
【数４】
0005932049.tif 000006
【０１５８】
この例では、ビデオコーダは、値ｄがβよりも小さいと決定したことに応答して、デブロッキングフィルタを適用するという決定を行うことができる。この例では、ｄｐ０、ｄｐ３、ｄｑ０、及びｄｑ３は、サンプル活動の測定結果であり得る。
【０１５９】
上の式では、ｐ2,0、ｐ1,0、ｑ0,0などは、サンプルに対する命名である。命名は、文字x,yというフォーマットに従う。文字は、ビデオブロック「ｑ」又はビデオブロック「ｐ」を示す。下付き文字ｘは、現在のエッジの一番左上の端からのサンプル単位での水平方向の変位を示す。下付き文字ｙは、現在のエッジの一番左上の端からのサンプル単位での垂直方向の変位を示す。文字と単一の下付き文字のみとを使用してサンプルが示される場合、示されるサンプルの全てが単一のラインの中にあると推測され得る。図９は、第１のビデオブロック「Ａ」と第２のビデオブロック「Ｂ」との間の垂直エッジにおけるサンプルの例示的な命名を示す概念図である。本開示は、この命名フォーマットを他の式において使用することができる。
【０１６０】
別の例では、ビデオコーダは、次のように値ｄを計算することができる。
【数５】
0005932049.tif 000007
【０１６１】
この例では、ビデオコーダは、値ｄがβよりも小さいと決定したことに応答して、デブロッキングフィルタを適用するという決定を行うことができる。
【０１６２】
同様の例において、値ｄは、次の式を使用して計算されるブーリアン値であり得る。
【数６】
0005932049.tif 000008
【０１６３】
この例では、ビデオコーダは、値ｄが真であると決定したことに応答してデブロッキングフィルタを適用するという決定を行うことができ、値ｄが偽であると決定したことに応答してデブロッキングフィルタを適用しないという決定を行うことができる。従って、合計された活動の測定結果（例えば、｜ｐ2,2−２×ｐ1,2＋ｐ0,2｜、｜ｑ2,2−２×ｑ1,2＋ｑ0,2｜など）が閾値βよりも小さい場合、ビデオコーダは、デブロッキングフィルタを８サンプルのデブロッキングエッジ領域に適用することができる。このようにして、エッジにまたがる活動が多い場合、エッジにまたがる不連続部分は可視ではないことがあるので、デブロッキングフィルタは必要ではないことがある。しかしながら、エッジにまたがる活動が少ない場合、ビデオコーダは、デブロッキングフィルタを適用して、エッジのいずれかの側のビデオブロック間の不連続部分を平滑化することができる。
【０１６４】
デブロッキングフィルタを適用するという決定を行ったことに応答して（３６６の「はい」）、ビデオコーダは、強いフィルタ無効フラグが「真」に設定されるかどうかを決定することができる（３６８）。強いフィルタ無効フラグは、ビットストリーム中の様々なシンタクス構造内で信号伝達され得る。例えば、強いフィルタ無効フラグは、シーケンスパラメータセット、適応パラメータセット、ピクチャパラメータセット、又はスライスヘッダの中で、デブロッキングフィルタ制御パラメータの一部として示され得る。
【０１６５】
ビットストリーム中での強いフィルタ無効フラグの信号伝達は、幾つかの理由で有利であり得る。例えば、ビットストリーム中での強いフィルタ無効フラグの信号伝達は、ビデオ復号の複雑さを低減することができ、それは、デブロッキングフィルタの強／弱の決定が回避され得るとともに、弱いデブロッキングフィルタの複雑さが強いデブロッキングフィルタよりも低い可能性があるからである。
【０１６６】
強いフィルタ無効フラグが「真」に設定されないと決定したことに応答して（３６８の「いいえ」）、ビデオコーダは、現在のエッジと関連付けられるサンプルに強いデブロッキングフィルタを適用するかどうかを決定することができる（３７０）。言い換えれば、ビデオコーダは、デブロッキングフィルタの強／弱の判断を行うことができる。テクスチャ又は活動レベルが低く、階調変化がなだらかであり、エッジにまたがる不連続性が小さい場合、ビデオコーダは、強いフィルタを適用して、エッジと関連付けられるビデオブロック間の不連続性の更なる平滑化を実現するべきである。それ以外の場合、即ち、テクスチャ又は活動レベルが高く、階調変化が急激であり、エッジにまたがる不連続性が大きい場合、ビデオコーダは、弱いフィルタを適用して、エッジにおいてより小さな平滑化を実現するべきである。
【０１６７】
ビデオコーダは、様々な方法で、強いデブロッキングフィルタを適用するかどうかの決定を行うことができる。例えば、現在のエッジは、８サンプルの幅又は高さであり得る。この例では、８個のルーマサンプルが、第１のセグメント及び第２のセグメントへと等しく分割され得る。第１のセグメントは前の４つのサンプル（即ち、サンプル０…３）を含んでよく、第２のセグメントは後の４つのサンプル（即ち、サンプル４…７）を含んでよい。この例では、ビデオコーダは、第１のセグメントに対して強／弱の決定を行い、第２のセグメントに対して別の強／弱の決定を行うことができる。ビデオコーダは、ステップ３７２及び３７４において、強いデブロッキングフィルタ又は弱いデブロッキングフィルタを、第１のセグメント及び第２のセグメントと関連付けられるルーマサンプルへ別々に適用することができる。ビデオコーダは、図１０に示される例示的な動作を実行して、第１のセグメント又は第２のセグメントに、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定することができる。
【０１６８】
他の例では、現在のエッジのセグメントは、４サンプルの幅又は高さであり得る。そのような例では、ビデオコーダは、サンプルの第１のライン及び現在のエッジと交差するサンプルの第４のラインの中のサンプルの値に基づいて、現在のエッジのセグメントに対する強／弱の決定を行うことができる。サンプルのラインは、現在のエッジに垂直な（かつ従って、第１のビデオブロックと第２のビデオブロックとの境界に垂直な）一連の隣接するサンプルであり得る。例えば、現在のエッジが水平である場合、ラインは垂直である。同様に、現在のエッジが垂直である場合、ラインは水平である。
【０１６９】
更に他の例では、ビデオコーダは、現在のエッジと交差するサンプルの各ラインに対して、別個の強／弱の決定を行うことができる。そのような例では、ビデオコーダは、ステップ３７２及び３７４において、強いデブロッキングフィルタ又は弱いデブロッキングフィルタを、現在のエッジと交差するサンプルの各ラインの中のルーマサンプルに別々に適用することができる。
【０１７０】
強いデブロッキングフィルタを適用するという決定を行ったことに応答して（３７０の「はい」）、ビデオコーダは、現在のエッジと関連付けられるルーマサンプルに強いデブロッキングフィルタを適用することができる（３７２）。幾つかの例では、強いデブロッキングフィルタを適用することは、両方向にエッジから３サンプル離れたサンプルまで修正し得る。
【０１７１】
ビデオコーダは、様々な方法で、強いデブロッキングフィルタを適用することができる。例えば、ビデオコーダは、次の強いデブロッキングフィルタを、現在のルーマエッジと交差するルーマサンプルのラインに適用することができる。
【数７】
0005932049.tif 000009
【０１７２】
上のラインでは、「ｑ」は第１のビデオブロックを示すことができ、「ｐ」は第２の隣接するビデオブロックを示すことができる。ｐ0、ｐ1、ｐ2、ｐ3は、第１のビデオブロックと第２のビデオブロックとの境界からそれぞれ０サンプル、１サンプル、２サンプル、及び３サンプル離れた、第２のビデオブロックのサンプルの元の値を示す。ｐ0’、ｐ1’、及びｐ2’は、第１のビデオブロックと第２のビデオブロックとの境界からそれぞれ０サンプル、１サンプル、及び２サンプル離れた、第２のビデオブロックのサンプルの修正された値を示す。ｑ0、ｑ1、ｑ2、及びｑ3は、第１のビデオブロックと第２のビデオブロックとの境界からそれぞれ０サンプル、１サンプル、２サンプル、及び３サンプル離れた、第１のビデオブロックのサンプルの元の値を示す。ｑ0’、ｑ1’、及びｑ2’は、第１のビデオブロックと第２のビデオブロックとの境界からそれぞれ０サンプル、１サンプル、及び２サンプル離れた、第１のビデオブロックのサンプルの修正された値を示す。
【０１７３】
別の例では、ビデオコーダは、次の強いデブロッキングフィルタを、現在のエッジと交差するルーマサンプルのラインに適用することができる。
【数８】
0005932049.tif 000010
【０１７４】
この強いデブロッキングフィルタは、前の段落の強いデブロッキングフィルタに対して１つ又は複数の利点を有し得る。例えば、この強いデブロッキングフィルタは、前の段落の強いデブロッキングフィルタのデブロッキング強度を保つことができるが、ビデオコーダのラインメモリバッファの要件は、前の段落の強いデブロッキングフィルタにおいて必要とされる４つのラインではなく３つのラインであり得る。
【０１７５】
別の例では、ビデオコーダは、次の強いデブロッキングフィルタを、サンプルのラインの中のルーマ値に適用することができる。
【数９】
0005932049.tif 000011
【０１７６】
強いフィルタ無効フラグが「真」に設定されるという決定を行ったことに応答して（３６８の「はい」）、又は、弱いデブロッキングフィルタを選択されたセグメントに適用するという決定を行ったことに応答して（３７０の「いいえ」）、ビデオコーダは、現在のエッジと関連付けられるルーマサンプルに弱いデブロッキングフィルタを適用することができる（３７４）。従って、強いフィルタ無効フラグが「真」に設定される場合、ビデオコーダは、弱いデブロッキングフィルタのみを使用し、ビデオコーダは、強い／弱いデブロッキングフィルタを実行するかどうかの決定を実行しない。
【０１７７】
ビデオコーダは、様々な方法で、弱いデブロッキングフィルタを適用することができる。例えば、ビデオコーダは、次の弱いデブロッキングフィルタを、ルーマサンプルのラインに適用することができる。
【数１０】
0005932049.tif 000012
【０１７８】
上のラインでは、ｐ0、ｐ1、ｐ2、ｐ0’、ｐ1’、ｑ0、ｑ1、ｑ2、ｑ0’、ｑ1’、及び「Ｃｌｉｐ３」関数は、上で与えられたものと同じ意味を有し得る。この弱いデブロッキングフィルタは、図１３Ｂ及び図１４Ｂに関して以下でより詳しく説明される。
【０１７９】
別の例では、ビデオコーダは、次の弱いデブロッキングフィルタを、現在のルーマエッジと交差するルーマサンプルのラインに適用することができる。
【数１１】
0005932049.tif 000013
【０１８０】
上のラインでは、ｐ0、ｐ1、ｐ2、ｐ0’、ｐ1’、ｑ0、ｑ1、ｑ2、ｑ0’、ｑ1’、及び「Ｃｌｉｐ３」関数は、上で与えられたものと同じ意味を有し得る。この弱いデブロッキングフィルタは、図１４Ｃに関して以下でより詳しく説明される。
【０１８１】
別の例では、ビデオコーダは、次の弱いデブロッキングフィルタを、現在のエッジと交差するルーマサンプルのラインに適用することができる。
【数１２】
0005932049.tif 000014
【０１８２】
上のラインでは、ｐ0、ｐ1、ｐ2、ｐ0’、ｐ1’、ｑ0、ｑ1、ｑ2、ｑ0’、ｑ1’、及び「Ｃｌｉｐ３」関数は、上で与えられたものと同じ意味を有し得る。
【０１８３】
図１０は、ルーマエッジのセグメントに強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定するための例示的な動作３８０を示すフローチャートである。ビデオエンコーダ２０又はビデオデコーダ３０のようなビデオコーダは、動作３８０を実行することができる。他の例では、ビデオコーダは、動作３８０以外の動作を使用して、セグメントに強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定することができる。例えば、他の例では、ビデオコーダは、ビデオコーダが動作３８０よりも多数の、少数の、又は異なるステップを実行する、境界強度値を求めるための動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、動作３８０のステップを実行することができる。
【０１８４】
動作３８０を開始した後、ビデオコーダは、セグメント中のサンプルの第１のラインに対する強度インジケータｓｗ0を決定することができる（３８２）。加えて、ビデオコーダは、セグメント中のサンプルの第４のラインに対する強度インジケータｓｗ3を決定することができる（３８４）。幾つかの例では、ビデオコーダは、次の式を使用して、サンプルｉのラインに対する強度インジケータを決定することができる。
【数１３】
0005932049.tif 000015
【０１８５】
この例では、２（｜ｐ2,i−２・ｐ1,i＋ｐ0,i｜＋｜ｑ0,i−２・ｑ1,i＋ｑ2,i｜）＜（β／４）はテクスチャ／活動の決定であってよく、（｜ｐ2,i−ｐ0,i｜＋｜ｑ0,i−ｑ2,i｜）＜（β／８）は階調変化の決定であってよく、｜ｐ0,i−ｑ0,i｜＜（（５・ｔc＋１）／２）はエッジ不連続の確認であり得る。
【０１８６】
サンプルの第１のラインに対する強度インジケータとサンプルの第４のラインに対する強度インジケータとを決定した後、ビデオコーダは、サンプルの第１のラインに対する強度インジケータ（ｓｗ0）とサンプルの第４のラインに対する強度インジケータ（ｓｗ3）の両方が「真」に等しいかどうかを決定することができる（３８６）。サンプルの第１のラインに対する強度インジケータとサンプルの第４のラインに対する強度インジケータの両方が「真」に等しいと決定したことに応答して（３８６の「はい」）、ビデオコーダは、強いデブロッキングフィルタを現在のエッジのセグメントに適用するという決定を行うことができる（３８８）。それ以外の場合、サンプルの第１のラインに対する強度インジケータ又はサンプルの第４のラインに対する強度インジケータのいずれかが「偽」に等しいと決定したことに応答して（３８６の「いいえ」）、ビデオコーダは、弱いデブロッキングフィルタを現在のエッジのセグメントに適用するという決定を行うことができる（３９０）。
【０１８７】
ルーマエッジが複数の４サンプルのセグメントを有する例では、ビデオコーダは、セグメントの各々に対して動作３８０を実行することができる。例えば、ビデオコーダは、ルーマエッジの第２のセグメントに対して動作３８０を実行することができる。この例では、ビデオコーダは、上で説明されたようなサンプルの第１のライン及び第４のラインの代わりに、サンプルの第５のライン及び第８のラインに対して強度インジケータを決定し使用することができる。
【０１８８】
強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかの決定をこのように行うことによって、ビデオコーダは、エッジのいずれかの側の３つのサンプルを読み取ることができる。対照的に、ＨＥＶＣのＴｅｓｔ  Ｍｏｄｅｌ  ５（ＨＭ５）は、次の式を使用して、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかの決定を行うことができる。
【数１４】
0005932049.tif 000016
【０１８９】
この式の第２の行において、ビデオコーダは、エッジから４サンプル離れたサンプル（即ち、ｐ3,i、ｑ3,i）を使用する。その結果、ビデオコーダが動作３８０を実行するとき、ビデオコーダは、エッジのいずれかの側の３行又は３列のサンプルを、メモリバッファに記憶することができる。対照的に、ビデオコーダが、エッジのいずれかの側の４行以上又は４列以上のサンプルに基づいて、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかの決定を行うとすれば、ビデオコーダは、４行以上又は４列以上をメモリバッファに記憶する必要があり得る。従って、エッジのいずれかの側の３つのサンプルに基づいて強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかの決定を行うことによって、ビデオコーダは、強いデブロッキングフィルタに対するデブロッキング強度を保ちつつ、列メモリバッファの要件を下げることができる。
【０１９０】
別の例では、ビデオコーダは、上で与えられた式の代わりに、ステップ３８２及び３８４において次の式を使用することができる。
【数１５】
0005932049.tif 000017
【０１９１】
上の式では、ｄは、図８のステップ３６６に関して上で説明された方式で計算され得る。更に、上の式では、ｄ＜（β＞＞２）はテクスチャ／活動の決定であり得る。この例では、エッジは、８サンプルの幅又は高さであってよく、ビデオコーダは、第１のセグメント（即ち、ｉ＝０…３）に対する強／弱の決定と、第２のセグメント（即ち、ｉ＝４…７）に対する別個の強／弱の決定とを行うことができる。ビデオコーダは、強いデブロッキングフィルタ又は弱いデブロッキングフィルタを、第１のセグメント及び第２のセグメントへ別々に適用することができる。この例では、ビデオコーダは、上の式を使用してｓｗ2の値を求めることによって、第１のセグメントに対して強／弱の決定を行うことができる。ビデオコーダは、上の式を使用してｓｗ5の値を求めることによって、第２のセグメントに対して強／弱の決定を行うことができる。第１のセグメント及び第２のセグメントに対して強／弱の決定を行うことは、ルーマエッジと交差するサンプルの各ライン（即ち、ｉ＝０…７）に対して別々に強／弱の決定を行うことよりも複雑ではないことがある。例えば、この技法は、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するか判断するための計算の回数を、２４回の計算から６回の計算へと減らすことができる。
【０１９２】
従って、この例では、ビデオコーダは、エッジと交差するサンプルの第３のライン、ｉ＝２に基づいて、第１のエッジセグメントと関連付けられるルーマサンプルに第１の強いデブロッキングフィルタを適用するか第１の弱いデブロッキングフィルタを適用するかどうかを決定することができる。加えて、ビデオコーダは、エッジと交差するサンプルの第６のライン、ｉ＝５に基づいて、第２のエッジセグメントと関連付けられるルーマサンプルに第２の強いデブロッキングフィルタを適用するか第２の弱いデブロッキングフィルタを適用するかどうかを決定することができる。第１の強いデブロッキングフィルタ及び第２の強いデブロッキングフィルタは、同じでも、異なってもよい。同様に、第１の弱いデブロッキングフィルタ及び第２の弱いデブロッキングフィルタは、同じでも、異なってもよい。
【０１９３】
上で論じられたように、ビデオコーダは、図８のステップ３６４において、β及びｔcが０に等しいかどうかを決定することができる。βが０に等しくｔcが０に等しい場合、ビデオコーダは、弱いデブロッキングフィルタを適用するという決定を行う。例えば、上の式からの２（｜ｐ２i−２・ｐ１i＋ｐ０i｜＋｜ｑ０i−２・ｑ１i＋ｑ２i｜）＜（β／４）、（｜ｐ３i−ｐ０i｜＋｜ｑ０i−ｑ３i｜）＜（β／８）、及び｜ｐ０i−ｑ０i｜＜（（５・ｔc＋１）／２）は、β又はｔcが０に等しい場合、偽であると評価される。しかしながら、βが０よりも大きくｔcが０に等しい場合、ビデオコーダは、弱いデブロッキングフィルタの自然なエッジの条件が偽であると決定することができ、ビデオコーダは弱いデブロッキングフィルタを適用しない。例えば、弱いルーマフィルタは、ラインΔ＝Ｃｌｉｐ３（−ｔc，ｔc，Δ）を含み得る。ｔcが０に等しい場合、Δは０であると評価される。その結果、弱いルーマフィルタのラインｐ０’＝ｐ０＋Δ及びｑ０’＝ｑ０−Δは、ｐ０及びｑ０の値を変えない。同様に、弱いデブロッキングフィルタは、ｔcが０に等しいとき、ｐ１又はｑ１の値を変えない。その上、エッジがクロマエッジであり、ｔcが０に等しい場合、ビデオコーダはΔを０にとどめるので、ビデオコーダは、デブロッキングフィルタをエッジに適用する必要はない。このようにして、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかの決定を行う前にβ及びｔcが０に等しいかどうかを決定することによって、ビデオコーダが実行する計算の量が減らされ得る。対照的に、従来のビデオコーダは、β及びｔcが０に等しい場合であっても、デブロッキングフィルタに対する有効／無効の判断を確認し、エッジに対してデブロッキングフィルタの強／弱の決定を行う可能性がある。
【０１９４】
図１１は、ＣＵのクロマエッジをデブロックするための例示的な動作４００を示すフローチャートである。ビデオエンコーダ２０又はビデオデコーダ３０のようなビデオコーダは、クロマエッジデブロッキング動作４００を実行することができる。他の例では、ビデオコーダは、クロマエッジデブロッキング動作４００以外の動作を使用することができる。例えば、他の例では、ビデオコーダは、ビデオコーダがクロマエッジデブロッキング動作４００よりも多数の、少数の、又は異なるステップを実行する、クロマエッジデブロッキング動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、クロマエッジデブロッキング動作４００のステップを実行することができる。
【０１９５】
ビデオコーダがクロマエッジデブロッキング動作４００を開始した後、ビデオコーダは、ビデオコーダが現在のＣＵビデオブロックと関連付けられる最後の垂直クロマエッジをすでに選択しているどうかを決定することができる（４０２）。現在のＣＵビデオブロックは、ビデオコーダが現在コード化しているＣＵ（即ち、現在のＣＵ）と関連付けられるビデオブロックであり得る。最後の垂直クロマエッジは、現在のＣＵビデオブロックと関連付けられる垂直クロマエッジが幾何学的な順序に従って左から右に並べられるときの、最終の垂直クロマエッジであり得る。
【０１９６】
ビデオコーダが最後の垂直クロマエッジをまだ選択していないと決定したことに応答して（４０２の「いいえ」）、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる次の垂直クロマエッジを選択することができる（４０４）。次の垂直クロマエッジは、ビデオコーダがまだ選択していない現在のＣＵビデオブロックと関連付けられる、最初の垂直クロマエッジであり得る。
【０１９７】
ビデオコーダは次いで、選択された垂直クロマエッジと関連付けられるＣｂサンプルに対してデブロッキング動作を実行することができる（４０６）。加えて、ビデオコーダは、選択された垂直クロマエッジと関連付けられるＣｒサンプルに対してデブロッキング動作を実行することができる（４０８）。選択された垂直クロマエッジのＣｂサンプル及びＣｒサンプルに対してデブロッキング動作を実行することによって、ビデオコーダは、選択された垂直クロマエッジと関連付けられるブロック歪みを低減又は除去することができる。ビデオコーダは、選択された垂直クロマエッジと関連付けられるＣｂサンプル及びＣｒサンプルに対して、様々なデブロッキング動作を実行することができる。例えば、ビデオコーダは、図１２の例示的なデブロッキング動作を、選択された垂直クロマエッジのＣｂサンプル及びＣｒサンプルに対して実行することができる。他の例では、ビデオコーダは、図１２のデブロッキング動作とは異なるデブロッキング動作を、選択された垂直クロマエッジのＣｂサンプル及びＣｒサンプルに対して実行することができる。
【０１９８】
選択された垂直クロマエッジと関連付けられるＣｂサンプル及びＣｒサンプルに対してデブロッキング動作を実行した後、ビデオコーダは、デブロッキング動作が現在のＣＵビデオブロックと関連付けられる最後の垂直クロマエッジに適用されたかどうかを再び決定することができる（４０２）。適用されていない場合、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる別の垂直クロマエッジに関して、ステップ４０４〜４０８を繰り返すことができる。このようにして、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる垂直クロマエッジの各々と関連付けられるＣｂサンプル及びＣｒサンプルに対して、デブロッキング動作を実行することができる。
【０１９９】
デブロッキング動作が現在のＣＵビデオブロックと関連付けられる最後の垂直クロマエッジのＣｂサンプル及びＣｒサンプルに対して実行されていると決定したことに応答して（４０２の「はい」）、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる最後の水平クロマエッジがすでに選択されているかどうかを決定することができる（４１０）。最後の水平クロマエッジは、現在のＣＵビデオブロックと関連付けられる水平クロマエッジが幾何学的な順序に従って上から下に並べられるときの、最後の水平クロマエッジであり得る。
【０２００】
ビデオコーダが最後の水平クロマエッジに対してデブロッキング動作をまだ実行していないと決定したことに応答して（４１０の「いいえ」）、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる次の水平クロマエッジを選択することができる（４１２）。次の水平クロマエッジは、デブロッキング動作がまだ実行されていない現在のＣＵビデオブロックと関連付けられる、最初の水平クロマエッジであり得る。ビデオコーダは次いで、選択された水平クロマエッジと関連付けられるＣｂサンプルに対してデブロッキング動作を実行することができる（４１４）。加えて、ビデオコーダは、選択された水平クロマエッジと関連付けられるＣｒサンプルに対してデブロッキング動作を実行することができる（４１６）。選択された水平ルーマエッジと関連付けられるＣｂサンプル及びＣｒサンプルに対してデブロッキング動作を実行することによって、ビデオコーダは、選択された水平クロマエッジと関連付けられるブロック歪みを低減又は除去することができる。ビデオコーダは、選択された水平クロマエッジに対して様々なデブロッキング動作を実行することができる。例えば、ビデオコーダは、図１２の例示的なデブロッキング動作を、選択された水平クロマエッジに対して実行することができる。
【０２０１】
選択された水平クロマエッジと関連付けられるＣｂサンプル及びＣｒサンプルに対してデブロッキング動作を実行した後、ビデオコーダは、最後の水平クロマエッジがすでに選択されているかどうかを再び決定することができる（４１０）。選択されていない場合、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる別の水平クロマエッジに関して、ステップ４１２〜４１６を繰り返すことができる。しかしながら、ビデオコーダが現在のＣＵビデオブロックと関連付けられる最後の水平クロマエッジをすでに選択していると決定したことに応答して（４１０の「はい」）、ビデオコーダは、クロマエッジデブロッキング動作４００を終了することができる。このようにして、ビデオコーダは、現在のＣＵビデオブロックと関連付けられる垂直クロマエッジと水平クロマエッジの各々に対して、デブロッキング動作を実行することができる。
【０２０２】
図１２は、個々のクロマエッジと関連付けられるＣｂサンプル又はＣｒサンプルに対してビデオコーダによって実行される、例示的なデブロッキング動作４５０を示すフローチャートである。ビデオエンコーダ２０又はビデオデコーダ３０のようなビデオコーダは、デブロッキング動作４５０を実行することができる。他の例では、ビデオコーダは、デブロッキング動作４５０以外の動作を使用することができる。例えば、他の例では、ビデオコーダは、ビデオコーダがデブロッキング動作４５０よりも多数の、少数の、又は異なるステップを実行する、デブロッキング動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、デブロッキング動作４５０のステップを実行することができる。
【０２０３】
デブロッキング動作４５０を開始した後、ビデオコーダは、クロマエッジがＩスライスと関連付けられるかどうかを決定することができる（４５２）。クロマエッジは、クロマエッジがＩスライス中にあるＣＵと関連付けられる場合、Ｉスライスと関連付けられ得る。クロマエッジがＩスライスと関連付けられないと決定したことに応答して（４５２の「いいえ」）、ビデオコーダは、クロマエッジに関する動作４５０を終了することができる。
【０２０４】
幾つかの例では、ビデオコーダは、現在のＣＵと関連付けられるビデオブロックの各ルーマサンプルに対するエントリーを有するアレイに、境界強度値を記憶する。（垂直エッジに対する）一番上のルーマサンプル又は（水平エッジに対する）一番左のルーマサンプルと関連付けられるエントリーは、エッジと関連付けられる境界強度値を記憶することができる。ビデオコーダは、クロミナンスビデオブロックをダウンサンプリングすることができる。例えば、輝度ビデオブロックの最大のＴＵサイズは通常、ビデオコーダがＮ×Ｎのクロミナンスビデオブロックへとダウンサンプリングできる、２Ｎ×２Ｎである。ビデオコーダはＰスライス及びＢスライスの中のクロマ値をダウンサンプリングすることができるので、現在のＣＵと関連付けられるクロマサンプルの数は、ＣＵと関連付けられるルーマサンプルの数よりも少なくてよい。従って、クロマエッジと関連付けられる境界強度値を参照するために、ビデオコーダは、クロマエッジの一番上又は一番左のクロマサンプルに対応するルーマサンプルの配置を計算することが必要であり得る。ビデオコーダは次いで、対応するルーマサンプルの配置を使用して、クロマエッジと関連付けられる境界強度値を参照することができる。
【０２０５】
対応するルーマサンプルの配置を求めることは、ビデオコーダの複雑さを高め、ビデオコーダの性能を低下させ得る。しかしながら、ビデオコーダは、Ｉスライス中のクロマサンプルをダウンサンプリングしなくてよい。従って、クロマエッジがＩスライスと関連付けられる場合、ビデオコーダは、対応するルーマサンプルの配置を計算する必要はなくてよい。従って、クロマエッジがＩスライスと関連付けられるかどうか確認し、クロマエッジがＩスライスと関連付けられない場合にデブロッキング動作４５０を終了することによって、ビデオコーダは、クロマエッジがＩスライスと関連付けられないときに対応するルーマサンプルの配置を計算することによる複雑さと性能の低下とを避けることができる。
【０２０６】
クロマエッジがＩスライスと関連付けられると決定したことに応答して（４５２の「はい」）、ビデオコーダは、デブロッキングＱＰ値を求めることができる（４５６）。ビデオコーダは、図８に関して上で説明されたのと同様の方式で、デブロッキングＱＰ値を求めることができる。
【０２０７】
デブロッキングＱＰ値を求めた後、ビデオコーダは、クロマエッジと関連付けられるデブロッキングＱＰ値と境界強度値とに基づいて、閾値ｔcに対するＱの値を特定することができる（４５８）。ビデオコーダは次いで、ｔcに対するＱの値に基づいて、ｔcの値を求めることができる（４６０）。ビデオコーダは、図８に関して上で説明されたのと同様の方式で、ｔcに対するＱの値とｔcの値とを特定することができる。
【０２０８】
ｔcの値を求めた後、ビデオコーダは、ｔcが０に等しいかどうかを決定することができる（４６２）。ｔcが０に等しいと決定したことに応答して（４６２の「はい」）、ビデオコーダは、クロマエッジに関するデブロッキング動作４５０を終了することができる。それ以外の場合、ｔcが０に等しくないと決定したことに応答して（４６２の「いいえ」）、ビデオコーダは、クロマエッジと関連付けられるサンプルにデブロッキングフィルタを適用することができる（４６４）。ビデオコーダがクロマエッジと関連付けられるＣｂサンプルに関してデブロッキング動作４５０を実行している場合、ビデオコーダは、クロマエッジと関連付けられるＣｂサンプルにデブロッキングフィルタを適用することができる。ビデオコーダがクロマエッジと関連付けられるＣｒサンプルに関してデブロッキング動作４５０を実行している場合、ビデオコーダは、クロマエッジと関連付けられるＣｒサンプルにデブロッキングフィルタを適用することができる。デブロッキングフィルタを適用した後、ビデオコーダは、クロマエッジに関してデブロッキングフィルタ４５０を終了することができる。
【０２０９】
ビデオコーダは、様々な方法で、デブロッキングフィルタを適用することができる。例えば、ビデオコーダは、次のデブロッキングフィルタを、クロマサンプルに適用することができる。
【数１６】
0005932049.tif 000018
【０２１０】
上の「Ｃｌｉｐ１C」関数は、値をクロマサンプルのビット深度にとどめる。
【０２１１】
別の例では、ビデオコーダは、次のデブロッキングフィルタを、クロマエッジと関連付けられるクロマサンプルに適用することができる。
【数１７】
0005932049.tif 000019
【０２１２】
別の例では、ビデオコーダは、次のデブロッキングフィルタを、クロマエッジと関連付けられるクロマサンプルに適用することができる。
【数１８】
0005932049.tif 000020
【０２１３】
このデブロッキングフィルタは、前の段落のデブロッキングフィルタに対して１つ又は複数の利点を有し得る。例えば、前の段落の例示的なデブロッキングフィルタとは対照的に、このデブロッキングフィルタは線形の傾きをオーバーシュートしない。加えて、このデブロッキングフィルタの使用は、ルーマ及びデブロッキングフィルタに対するハードウェアの再使用を容易にし得る。クロマデブロッキングフィルタは、図１３Ｃ及び図１３Ｄに関してより詳しく説明される。
【０２１４】
図１３Ａ〜図１３Ｄは、例示的なサンプル値のグラフを示す概念図である。図１３Ａ〜図１３Ｄにおいて、実線の黒色の丸は、エッジ５００の両側にあるサンプルの元の値を表す。線形の傾き５０２は、弱いデブロッキングフィルタによって使用される、最初のサンプルから最後のサンプルまでの直線を示す。
【０２１５】
図１３Ｂにおいて、灰色の丸は、ビデオコーダが次の弱いデブロッキングフィルタをルーマサンプルに適用した後の、ルーマサンプルの値を表す。
【数１９】
0005932049.tif 000021
【０２１６】
図１３Ｂに示されるように、図１３Ｂの弱いデブロッキングフィルタは、線形の傾き５０２をオーバーシュートしないような方法で、ルーマサンプルを調整することができる。線形の傾きをオーバーシュートすることは、Δの値が大きすぎること、従って、画像品質に悪影響を及ぼす新たな視覚的アーチファクトが発生する可能性があることを意味し得る。
【０２１７】
図１３Ｃにおいて、灰色の丸は、ビデオコーダが弱いデブロッキングフィルタをクロマサンプルに適用した後の、サンプルの値を表す。
【数２０】
0005932049.tif 000022
【０２１８】
図１３Ｃに示されるように、図１３Ｃの弱いデブロッキングフィルタは、線形の傾き５０２をオーバーシュートするような方法で、クロマサンプルを調整することができる。
【０２１９】
図１３Ｄにおいて、灰色の丸は、ビデオコーダが異なる弱いデブロッキングフィルタをクロマサンプルに適用した後の、クロマサンプルの値を表す。
【数２１】
0005932049.tif 000023
【０２２０】
図１３Ｄの弱いデブロッキングフィルタは、線形の傾き５０２をオーバーシュートするような方法で、クロマサンプルを調整しない。
【０２２１】
図１４Ａ〜図１４Ｃは、例示的なサンプル値のグラフを示す概念図である。図１４Ａ〜図１４Ｃにおいて、実線の黒色の丸は、ルーマサンプルの元の値を表す。垂直のライン５５０は、隣接するビデオブロック間の境界において発生するエッジを示す。ライン５５０の異なる側にあるルーマサンプルの値に、段差又はエッジの不連続性が存在するので、エッジと関連付けられるブロック歪みが存在し得る。
【０２２２】
図１４Ａは、デブロッキングフィルタの適用の前の、サンプルの元の値を示す。細かい点線５５２は、最初のサンプルから最後のサンプルまでの線形の傾きを示す。ライン５５０の両側にあるサンプルの元の値は、滑らかかつ平らである。従って、強／弱の判断の第３の部分、即ちエッジの不連続性の確認により、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定することができる。
【０２２３】
図１４Ｂにおいて、灰色の丸は、ビデオコーダが従来の弱いデブロッキングフィルタを元のルーマサンプルに適用した後のサンプル値に対応する。弱いデブロッキングフィルタは、次のように表され得る。
【数２２】
0005932049.tif 000024
【０２２４】
図１４Ｂにおいて、弱いデブロッキングフィルタは、エッジの両側の平滑性により、エッジの両側にある２つのサンプルを修正する。
【０２２５】
更に、図１４Ｂにおいて、白色の丸は、ビデオコーダが従来の強いデブロッキングフィルタをルーマサンプルに適用した後のサンプル値を示す。強いデブロッキングフィルタは、次のように表され得る。
【数２３】
0005932049.tif 000025
【０２２６】
図１４Ｂに示されるように、強いデブロッキングフィルタを適用することは、エッジの両側にある最大で３つのルーマサンプルを修正することができる。同様に、弱いデブロッキングフィルタを適用することは、エッジの両側にある最大で２つのルーマサンプルを修正することができる。更に、図１４Ｂに示されるように、図１４Ｂの強いデブロッキングフィルタを適用することと図１４Ｂの弱いデブロッキングフィルタを適用することとの差は、比較的小さいことがある。これは、図１４Ｂの弱いデブロッキングフィルタが強すぎる可能性があることを意味し得る。
【０２２７】
図１４Ｃにおいて、ビデオコーダは、次の弱いデブロッキングフィルタをルーマサンプルに適用している。
【数２４】
0005932049.tif 000026
【０２２８】
図１４Ｃの弱いデブロッキングフィルタを適用することは、幾つかの理由で、図１４Ｂの弱いデブロッキングフィルタを適用することより有利であり得る。例えば、ビデオコーダがエッジに対して弱いデブロッキングフィルタを選択した場合、エッジの不連続性の確認（例えば、｜ｐ0,i−ｑ0,i｜＜（（５・ｔc＋１）／２））は偽である。従って、エッジの形状の一部を保つことが、弱いデブロッキングフィルタにとって適切であり得る。対照的に、図１４Ｂの弱いデブロッキングフィルタは、サンプルをほぼ直線へと平滑化し得る。
【０２２９】
別の例では、図１４Ｃの弱いデブロッキングフィルタでは、ビデオコーダは、単一の乗算演算のみを使用してΔを計算することができ、Δに基づいて、エッジと関連付けられるルーマサンプルの修正された値を求めることができる。ビデオコーダが単一の乗算演算のみを使用してΔを計算するので、図１４Ｃの弱いデブロッキングフィルタにおいてΔの値を計算することは、図１４Ｂの弱いデブロッキングフィルタにおいてΔの値を計算することよりも、ビデオコーダにとって計算的に複雑ではないことがある。値Δは、弱いデブロッキングフィルタの強度を示し得る。Δの値を求めることは、（デブロッキングフィルタを適用するかどうかを決定した後、かつ、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定した後の）第３のデブロッキングの判断であると考えられ得る。サンプル値の差分（例えば、ｑ０−ｐ０）は、ステップ状の不連続部分であり得る。
【０２３０】
幾つかの例では、ビデオコーダは、クロマサンプル、更にはルーマサンプルに対しても、図１４Ｃの弱いデブロッキングフィルタを使用することができる。その結果、修正されたクロマ値は、線形の傾きをオーバーシュートしない。加えて、ビデオコーダはルーマサンプル及びクロマサンプルに対して同一の弱いデブロッキングフィルタを使用し得るので、ビデオコーダは、同一のハードウェアを再使用して、ルーマサンプルとクロマサンプルの両方に弱いデブロッキングフィルタを適用することが可能であり得る。
【０２３１】
１つ又は複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。各機能は、ソフトウェアで実施される場合、１つ又は複数の命令又はコードとしてコンピュータ可読媒体上に記憶されてよく、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、データ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、全般に、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実施のための命令、コード及び／又はデータ構造を取り出すために、１つ又は複数のコンピュータあるいは１つ又は複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０２３２】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気ストレージ機器、フラッシュメモリ、あるいは、命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）及びブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０２３３】
命令は、１つ又は複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路又はディスクリート論理回路などの、１つ又は複数のプロセッサによって実行され得る。従って、本明細書で使用される「プロセッサ」という用語は、前述の構造、又は本明細書で説明される技法の実施に好適な任意の他の構造のいずれかを指す。更に、幾つかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内に与えられてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、１つ又は複数の回路又は論理要素中で十分に実施され得る。
【０２３４】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置において実施され得る。本開示では、開示される技法を実行するように構成された機器の機能的態様を強調するために、様々なコンポーネント、モジュール、又はユニットが説明されたが、それらのコンポーネント、モジュール、又はユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェア及び／又はファームウェアとともに、上で説明された１つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられてよく、又は相互動作するハードウェアユニットの集合によって与えられてよい。
【０２３５】
様々な例が説明された。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
［１］  ビデオデータをコード化する方法であって、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたコード化単位（ＣＵ）と関連付けられると決定することに応答して、第１の境界強度値をエッジと関連付けることと、前記エッジが、前記第１のビデオブロックと前記第２のビデオブロックとの境界において発生する、前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ以上の追加の条件が満たされると決定することに応答して、第２の境界強度値を前記エッジと関連付けることと、前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記１つ以上の追加の条件が満たされないと決定することに応答して、第３の境界強度値を前記エッジと関連付けることと、前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに１つ以上のデブロッキングフィルタを適用することとを備える、方法。
［２］  前記第１の境界強度値を前記エッジと関連付けることが、前記エッジがＣＵエッジかどうかを決定することなく前記第１の境界強度値を前記エッジと関連付けることを備える、［１］に記載の方法。
［３］  前記第１の境界強度値が２に等しく、前記第２の境界強度値が１に等しく、前記第３の境界強度値が０に等しい、［１］に記載の方法。
［４］  前記１つ以上のデブロッキングフィルタを適用することが、前記エッジが前記第１の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用することと、前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用することとを備える、［１］に記載の方法。
［５］  デブロッキング量子化パラメータ（ＱＰ）値に基づいて、かつ、前記第１の境界強度値又は前記第２の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第１の閾値と第２の閾値とを決定することと、前記第１の閾値又は前記第２の閾値が０に等しいかどうかを決定することと、前記第１の閾値又は前記第２の閾値のいずれかが０に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用しないこととを更に備え、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することが、前記エッジが前記第１の境界強度値又は第２の境界強度値と関連付けられる場合、かつ、前記第１の閾値も前記第２の閾値も０に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することを備える、［４］に記載の方法。
［６］  前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することが、単一の乗算演算のみを使用してデルタ値を計算することと、前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を求めることとを備える、［４］に記載の方法。
［７］  前記エッジの高さ又は幅が８個のルーマサンプルであり、前記８個のルーマサンプルが第１のエッジセグメント及び第２のエッジセグメントに等しく分割され、前記エッジと交差するサンプルの第３のラインに基づいて、前記第１のエッジセグメントと関連付けられるルーマサンプルに第１の強いデブロッキングフィルタを適用するか第１の弱いデブロッキングフィルタを適用するかどうかを決定することと、前記エッジと交差するサンプルの第６のラインに基づいて、前記第２のエッジセグメントと関連付けられるルーマサンプルに第２の強いデブロッキングフィルタを適用するか第２の弱いデブロッキングフィルタを適用するかどうかを決定することとを更に備える、［４］に記載の方法。
［８］  前記エッジがクロマエッジであり、前記クロマエッジがイントラスライスと関連付けられるかどうかを決定することを更に備え、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することが、前記クロマエッジがＩスライスと関連付けられ、前記クロマエッジが前記第１の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することを備える、［４］に記載の方法。
［９］  Ｎ×Ｎのグリッドに従って、変換単位（ＴＵ）のエッジと予測単位（ＰＵ）のエッジとを識別することと、クロマビデオブロックがＮ×Ｎのサンプルよりも大きいサイズを有するかどうかを決定することとを更に備え、クロマサンプルにデブロッキングフィルタを適用することが、前記クロマビデオブロックがＮ×Ｎのサンプル以下のサイズを有する場合、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することと、前記クロマビデオブロックがＮ×Ｎのサンプルよりも大きいサイズを有する場合、前記クロマビデオブロックの内部にある前記グリッドのエッジに対して、前記デブロッキングフィルタを無効にすることとを備える、［４］に記載の方法。
［１０］  前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられないと決定することに応答して、前記１つ以上の追加の条件が満たされるかどうかを決定することを更に備え、前記１つ以上の追加の条件が満たされるかどうかを決定することが、前記第１のビデオブロック又は前記第２のビデオブロックが１つ以上の０ではない変換係数レベルを有する変換単位（ＴＵ）と関連付けられると決定することと、前記第１のビデオブロック又は前記第２のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられると決定することと、前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が１以上であることとを決定することと、前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が１以上であることとを決定することと、前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が１以上であることとを決定することと、前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が１以上であることとを決定することとのうちの、１つ以上を備える、［１］に記載の方法。
［１１］  ビデオ復号の方法を備え、ビットストリームを受信することと、前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成することと、前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、前記第１のビデオブロックを生成することとを更に備える、［１］に記載の方法。
［１２］  ビデオ符号化の方法を備え、前記エッジと関連付けられる前記サンプルに前記デブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成することと、その値が前記予測されたビデオブロックに少なくとも一部基づく、１つ以上のシンタクス要素を含むビットストリームを出力することとを更に備える、［１］に記載の方法。
［１３］  １つ以上のプロセッサを備えるビデオコード化装置であって、前記１つ以上のプロセッサが、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたコード化単位（ＣＵ）と関連付けられると決定することに応答して、第１の境界強度値をエッジと関連付け、このとき前記エッジが、前記第１のビデオブロックと前記第２のビデオブロックとの境界において発生し、前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ以上の追加の条件が満たされると決定することに応答して、第２の境界強度値を前記エッジと関連付け、前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記１つ以上の追加の条件が満たされないと決定することに応答して、第３の境界強度値を前記エッジと関連付け、前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルにデブロッキングフィルタを適用するように構成される、ビデオコード化装置。
［１４］  前記第１の境界強度値を前記エッジと関連付けることが、前記エッジがＣＵエッジかどうかを決定することなく前記第１の境界強度値を前記エッジと関連付けることを備える、［１３］に記載のビデオコード化装置。
［１５］  前記第１の境界強度値が２に等しく、前記第２の境界強度値が１に等しく、前記第３の境界強度値が０に等しい、［１３］に記載のビデオコード化装置。
［１６］  前記１つ以上のプロセッサが、前記エッジが前記第１の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用し、前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用するように構成される、［１３］に記載のビデオコード化装置。
［１７］  前記１つ以上のプロセッサが更に、デブロッキング量子化パラメータ（ＱＰ）値に基づいて、かつ、前記第１の境界強度値又は前記第２の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第１の閾値と第２の閾値とを決定し、前記第１の閾値又は前記第２の閾値が０に等しいかどうかを決定し、前記第１の閾値又は前記第２の閾値のいずれかが０に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用せず、前記エッジが前記第１の境界強度値又は第２の境界強度値と関連付けられる場合、かつ、前記第１の閾値も前記第２の閾値も０に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するように構成される、［１６］に記載のビデオコード化装置。
［１８］  前記１つ以上のプロセッサが、単一の乗算演算のみを使用してデルタ値を計算し、前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を求めるように構成される、［１６］に記載のビデオコード化装置。
［１９］  前記エッジの高さ又は幅が８個のルーマサンプルであり、前記８個のルーマサンプルが第１のエッジセグメント及び第２のエッジセグメントに等しく分割され、前記１つ以上のプロセスが、前記エッジと交差するサンプルの第３のラインに基づいて、前記第１のエッジセグメントと関連付けられるルーマサンプルに強いデブロッキングフィルタを適用するかどうかを決定し、前記エッジと交差するサンプルの第６のラインに基づいて、前記第２のエッジセグメントと関連付けられるルーマサンプルに前記強いデブロッキングフィルタを適用するかどうかを決定し、前記第１のエッジセグメントと関連付けられる前記ルーマサンプルに前記強いデブロッキングフィルタを適用するかどうかの前記決定に基づいて、前記第１のエッジセグメントと関連付けられる前記ルーマサンプルに、前記強いデブロッキングフィルタ又は弱いデブロッキングフィルタを適用し、前記第２のエッジセグメントと関連付けられる前記ルーマサンプルに前記強いデブロッキングフィルタを適用するかどうかの前記決定に基づいて、前記第２のエッジセグメントと関連付けられる前記ルーマサンプルに、前記強いデブロッキングフィルタ又は前記弱いデブロッキングフィルタを適用するように構成される、［１６］に記載のビデオコード化装置。
［２０］  前記エッジがクロマエッジであり、前記１つ以上のプロセッサが、前記クロマエッジがＩスライスと関連付けられるかどうかを決定し、前記クロマエッジがＩスライスと関連付けられ、前記クロマエッジが前記第１の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するように構成される、［１６］に記載のビデオコード化装置。
［２１］  前記１つ以上のプロセッサが、前記エッジが３２×３２の変換単位（ＴＵ）の外部エッジに対応するかどうかを決定し、前記エッジが前記３２×３２のＴＵの外部エッジに対応し、前記エッジが前記第１の境界強度値と関連付けられる場合にのみ、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するように構成される、［１６］に記載のビデオコード化装置。
［２２］  前記１つ以上のプロセッサが、前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられないと決定することに応答して、前記１つ以上の追加の条件が満たされるかどうかを決定するように構成され、前記１つ以上の追加の条件が満たされるかどうかを決定するために、前記１つ以上のプロセッサが、前記第１のビデオブロック又は前記第２のビデオブロックが１つ以上の０ではない変換係数レベルを有する変換単位（ＴＵ）と関連付けられると決定することに応答して、前記１つ以上の追加の条件が満たされると決定し、前記第１のビデオブロック又は前記第２のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられると決定することに応答して、前記１つ以上の追加の条件が満たされると決定し、前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が１以上であることとを決定することに応答して、前記１つ以上の追加の条件が満たされると決定し、前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が１以上であることとを決定することに応答して、前記１つ以上の追加の条件が満たされると決定し、前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が１以上であることとを決定することに応答して、前記１つ以上の追加の条件が満たされると決定し、前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が１以上であることとを決定することに応答して、前記１つ以上の追加の条件が満たされると決定するように構成される、［１３］に記載のビデオコード化装置。
［２３］  前記１つ以上のプロセッサが、ビットストリームを受信し、前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成し、前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、前記第１のビデオブロックを生成するように構成される、［１３］に記載のビデオコード化装置。
［２４］  前記１つ以上のプロセッサが、前記エッジと関連付けられる前記サンプルに前記デブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成し、その値が前記予測されたビデオブロックに少なくとも一部に基づく、１つ以上のシンタクス要素を含むビットストリームを出力するように構成される、［１３］に記載のビデオコード化装置。
［２５］  第１のビデオブロック又は第２のビデオブロックがイントラ予測されたコード化単位（ＣＵ）と関連付けられると決定することに応答して、第１の境界強度値をエッジと関連付けるための手段であって、前記エッジが、前記第１のビデオブロックと前記第２のビデオブロックとの境界において発生する、手段と、前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ以上の追加の条件が満たされると決定することに応答して、第２の境界強度値を前記エッジと関連付けるための手段と、前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記１つ以上の追加の条件が満たされないと決定することに応答して、第３の境界強度値を前記エッジと関連付けるための手段と、前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに１つ以上のデブロッキングフィルタを適用するための手段とを備える、ビデオコード化装置。
［２６］  前記第１の境界強度値を前記エッジと関連付けることが、前記エッジがＣＵエッジかどうかを決定することなく前記第１の境界強度値を前記エッジと関連付けることを備える、［２５］に記載のビデオコード化装置。
［２７］  前記第１の境界強度値が２に等しく、前記第２の境界強度値が１に等しく、前記第３の境界強度値が０に等しい、［２５］に記載のビデオコード化装置。
［２８］  前記１つ以上のデブロッキングフィルタを適用するための前記手段が、前記エッジが前記第１の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用するための手段と、前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用するための手段とを備える、［２５］に記載のビデオコード化装置。
［２９］  デブロッキング量子化パラメータ（ＱＰ）値に基づいて、かつ、前記第１の境界強度値又は前記第２の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第１の閾値と第２の閾値とを決定するための手段と、前記第１の閾値又は前記第２の閾値が０に等しいかどうかを決定するための手段と、前記第１の閾値又は前記第２の閾値のいずれかが０に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用しないための手段とを更に備え、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための前記手段が、前記エッジが前記第１の境界強度値又は第２の境界強度値と関連付けられる場合、かつ、前記第１の閾値も前記第２の閾値も０に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための手段を備える、［２８］に記載のビデオコード化装置。
［３０］  前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための前記手段が、単一の乗算演算のみを使用してデルタ値を計算するための手段と、前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を求めるための手段とを備える、［２８］に記載のビデオコード化装置。
［３１］  前記エッジの高さ又は幅が８個のルーマサンプルであり、前記８個のルーマサンプルが第１のエッジセグメント及び第２のエッジセグメントに等しく分割され、前記エッジと交差するサンプルの第３のラインに基づいて、前記第１のエッジセグメントと関連付けられるルーマサンプルに第１の強いデブロッキングフィルタを適用するか第１の弱いデブロッキングフィルタを適用するかどうかを決定するための手段と、前記エッジと交差するサンプルの第６のラインに基づいて、前記第２のエッジセグメントと関連付けられるルーマサンプルに第２の強いデブロッキングフィルタを適用するか第２の弱いデブロッキングフィルタを適用するかどうかを決定するための手段とを更に備える、［２８］に記載のビデオコード化装置。
［３２］  前記エッジがクロマエッジであり、前記クロマエッジがイントラスライスと関連付けられるかどうかを決定するための手段を更に備え、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための前記手段が、前記クロマエッジがＩスライスと関連付けられ、前記クロマエッジが前記第１の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための手段を備える、［２８］に記載のビデオコード化装置。
［３３］  Ｎ×Ｎのグリッドに従って、変換単位（ＴＵ）のエッジと予測単位（ＰＵ）のエッジとを識別するための手段と、クロマビデオブロックがＮ×Ｎのサンプルよりも大きいサイズを有するかどうかを決定するための手段とを更に備え、クロマサンプルにデブロッキングフィルタを適用するための前記手段が、前記クロマビデオブロックがＮ×Ｎのサンプル以下のサイズを有する場合、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための手段と、前記クロマビデオブロックがＮ×Ｎのサンプルよりも大きいサイズを有する場合、前記クロマビデオブロックの内部にある前記グリッドのエッジに対して、前記デブロッキングフィルタを無効にするための手段とを備える、［２８］に記載のビデオコード化装置。
［３４］  前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられないと決定することに応答して、前記１つ以上の追加の条件が満たされるかどうかを決定するための手段を更に備え、前記１つ以上の追加の条件が満たされるかどうかを決定するための前記手段が、前記第１のビデオブロック又は前記第２のビデオブロックが１つ以上の０ではない変換係数レベルを有する変換単位（ＴＵ）と関連付けられると決定するための手段と、前記第１のビデオブロック又は前記第２のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられると決定するための手段と、前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が１以上であることとを決定するための手段と、前記第１のビデオブロック及び前記第２のビデオブロックが各々１つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が１以上であることとを決定するための手段と、前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が１以上であることとを決定するための手段と、前記第１のビデオブロック及び前記第２のビデオブロックが各々２つの動きベクトルと関連付けられることと、前記第１のビデオブロック及び前記第２のビデオブロックと関連付けられる前記動きベクトルの少なくとも１つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が１以上であることとを決定するための手段とのうちの１つ以上を備える、［２５］に記載のビデオコード化装置。
［３５］  ビデオ復号装置を備え、ビットストリームを受信するための手段と、前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成するための手段と、前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、前記第１のビデオブロックを生成するための手段とを更に備える、［２５］に記載のビデオコード化装置。
［３６］  ビデオ符号化装置を備え、前記エッジと関連付けられる前記サンプルに前記デブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成するための手段と、その値が前記予測されたビデオブロックに少なくとも一部基づく、１つ以上のシンタクス要素を含むビットストリームを出力するための手段とを更に備える、［２５］に記載のビデオコード化装置。
［３７］  コンピュータ実行可能命令を記憶する１つ以上のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であって、前記コンピュータ実行可能命令が、実行されると、１つ以上のプロセッサに、第１のビデオブロック又は第２のビデオブロックがイントラ予測されたコード化単位（ＣＵ）と関連付けられると決定することに応答して、第１の境界強度値をエッジと関連付けさせ、このとき前記エッジが、前記第１のビデオブロックと前記第２のビデオブロックとの境界において発生し、前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、１つ以上の追加の条件が満たされると決定することに応答して、第２の境界強度値を前記エッジと関連付けさせ、前記第１のビデオブロック及び前記第２のビデオブロックがイントラ予測されたＣＵと関連付けられず、前記１つ以上の追加の条件が満たされないと決定することに応答して、第３の境界強度値を前記エッジと関連付けさせ、前記エッジが前記第１の境界強度値又は前記第２の境界強度値と関連付けられるが前記第３の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルへと１つ以上のデブロッキングフィルタを適用させる、コンピュータプログラム製品。
［３８］  前記コンピュータ実行可能命令が、実行されると、前記エッジがＣＵエッジかどうかを決定することなく前記境界強度値を前記エッジと関連付けるように、前記１つ以上のプロセッサを構成する、［３７］に記載のコンピュータプログラム製品。
【図１】
0005932049.tif 000027
【図２】
0005932049.tif 000028
【図３】
0005932049.tif 000029
【図４】
0005932049.tif 000030
【図５】
0005932049.tif 000031
【図６】
0005932049.tif 000032
【図７】
0005932049.tif 000033
【図８】
0005932049.tif 000034
【図９】
0005932049.tif 000035
【図１０】
0005932049.tif 000036
【図１１】
0005932049.tif 000037
【図１２】
0005932049.tif 000038
【図１３Ａ】
0005932049.tif 000039
【図１３Ｂ】
0005932049.tif 000040
【図１３Ｃ】
0005932049.tif 000041
【図１３Ｄ】
0005932049.tif 000042
【図１４Ａ】
0005932049.tif 000043
【図１４Ｂ】
0005932049.tif 000044
【図１４Ｃ】
0005932049.tif 000045