(57)【要約】【課題】ブロック歪みを効果的に除去して原映像に近く映像を復元する方法及び装置を提供すること。【解決手段】本発明によるｂＳ導出方法は、ブロック歪み除去フィルタを適用する単位ブロックであるブロック歪み除去フィルタ単位ブロックの境界を導出するステップと、ブロック歪み除去フィルタ単位ブロック内のｂＳ設定単位ブロック別にｂＳを設定するステップとを含み、ｂＳ設定ステップでは、ｂＳ設定単位ブロックの境界として、ブロック歪み除去フィルタ単位ブロックの境界に該当する対象境界に対してｂＳ値を設定することができる。【選択図】図９
2020174413.tif 000002
【特許請求の範囲】
【請求項１】
受信されたビットストリームから得られたピクチャ情報に基づいて復元されたピクチャを生成するステップと、
前記復元されたピクチャに、ブロック歪み除去フィルタ処理及びサンプル適応オフセット（ＳＡＯ）処理を適用するステップであって、前記ＳＡＯ処理は、前記ブロック歪み除去フィルタ処理を完了した後に適用されるステップと、を有し、
前記ブロック歪み除去フィルタ処理を適用することは、
前記復元されたピクチャ内でブロック歪み除去フィルタ処理が実行される単位ブロックであるブロック歪み除去フィルタ処理単位ブロックの対象境界を導出し、
前記復元されたピクチャ内の前記対象境界の境界強度（ｂＳ）を設定し、
前記ｂＳに基づいて前記対象境界にブロック歪み除去フィルタ処理を適用することを有し、
前記ｂＳは、０、１及び２を有する３つの値の一つに設定され、
前記対象境界に隣接する２つのブロックのうちの少なくとも１つがイントラ予測モードで符号化されている第１の場合は、前記ｂＳは２に設定され、
そうでない場合、前記２つのブロックのうちの少なくとも１つが０でない変換係数を含む第２の場合は、前記ｂＳは１に設定され、
そうでない場合、前記２つのブロックが異なる参照ピクチャ又は異なる動きベクトルを有する第３の場合は、前記ｂＳは１に設定され、
前記ブロック歪み除去フィルタ処理単位ブロックは、８×８ピクセルブロックであり、
前記ｂＳが設定される前記対象境界は、４ピクセルの長さを有し、
前記ブロック歪み除去フィルタ処理を適用することは、
前記設定されたｂＳ値が０より大きい場合、前記対象境界に隣接し特定のサンプル行又は列に位置する特定のサンプルに基づいて、前記ブロック歪み除去フィルタ処理を前記対象境界に適用しないか否かを決定し、
前記ブロック歪み除去フィルタ処理を前記対象境界に適用すると決定した場合、強フィルタ処理又は弱フィルタ処理を前記対象境界に適用することを有する、復号装置によるピクチャ復号方法。
【請求項２】
前記ｂＳ値が０より大きく、前記ブロック歪み除去フィルタ処理が実行される場合は、前記ブロック歪み除去フィルタ処理を適用することは、
前記強フィルタ処理及び前記弱フィルタ処理のいずれを適用するかを決定することをさらに有する、請求項１に記載のピクチャ復号方法。
【請求項３】
前記特定のサンプルは、前記対象境界を前記２つのブロックの間の境界として有する前記２つのブロックのサンプルである、請求項１に記載のピクチャ復号方法。
【請求項４】
前記ブロック歪み除去フィルタ処理単位ブロックの８ピクセルの長さの境界は、２つの４ピクセルの長さの対象境界と重複し、
前記２つの４ピクセルの長さの対象境界に関して、別個のｂＳが設定される、請求項１に記載のピクチャ復号方法。
【請求項５】
前記２つの４ピクセルの長さの対象境界に関するｂＳのうち大きい方のｂＳは、前記２つの４ピクセルの長さの対象境界に関する代表ｂＳとして決定され、
前記２つの４ピクセルの長さの対象境界のそれぞれにおける前記ブロック歪み除去フィルタ処理は、前記代表ｂＳに基づいて実行される、請求項４に記載のピクチャ復号方法。
【請求項６】
前記ブロック歪み除去フィルタ処理単位ブロックの左側境界における上側の４ピクセルの長さの境界に関するｂＳは、前記ブロック歪み除去フィルタ処理単位ブロックに関する代表ｂＳとして決定され、
前記ブロック歪み除去フィルタ処理単位ブロックにおけるすべての垂直対象境界は、前記代表ｂＳを共有する、請求項１に記載のピクチャ復号方法。
【請求項７】
ピクチャを復号するための復号装置であって、
受信されたビットストリームから得られたピクチャ情報に基づいて復元されたピクチャを生成するための復元ブロック生成部と、
前記復元されたピクチャに、ブロック歪み除去フィルタ処理及びサンプル適応オフセット（ＳＡＯ）処理を適用するフィルタ部であって、前記ＳＡＯ処理は、前記ブロック歪み除去フィルタ処理を完了した後に適用されるフィルタ部と、を有し、
前記ブロック歪み除去フィルタ処理のため、前記フィルタ部は、
前記復元されたピクチャ内でブロック歪み除去フィルタ処理が実行される単位ブロックであるブロック歪み除去フィルタ処理単位ブロックの対象境界を導出し、
前記復元されたピクチャ内の前記対象境界の境界強度（ｂＳ）を設定し、
前記ｂＳに基づいて前記対象境界にブロック歪み除去フィルタ処理を適用し、
前記ｂＳは、０、１及び２を有する３つの値の一つに設定され、
前記対象境界に隣接する２つのブロックのうちの少なくとも１つがイントラ予測モードで符号化されている第１の場合は、前記ｂＳは２に設定され、
そうでない場合、前記２つのブロックのうちの少なくとも１つが０でない変換係数を含む第２の場合は、前記ｂＳは１に設定され、
そうでない場合、前記２つのブロックが異なる参照ピクチャ又は異なる動きベクトルを有する第３の場合は、前記ｂＳは１に設定され、
前記ブロック歪み除去フィルタ処理単位ブロックは、８×８ピクセルブロックであり、
前記ｂＳが設定される前記対象境界は、４ピクセルの長さを有し、
前記ブロック歪み除去フィルタ処理のため、前記フィルタ部は、
前記設定されたｂＳ値が０より大きい場合、前記対象境界に隣接し特定のサンプル行又は列に位置する特定のサンプルに基づいて、前記ブロック歪み除去フィルタ処理を前記対象境界に適用しないか否かを決定し、
前記ブロック歪み除去フィルタ処理を前記対象境界に適用すると決定した場合、強フィルタ処理又は弱フィルタ処理を前記対象境界に適用する、復号装置。
【請求項８】
前記ｂＳ値が０より大きく、前記ブロック歪み除去フィルタ処理が実行される場合は、前記フィルタ部は、前記強フィルタ処理及び前記弱フィルタ処理のいずれを適用するかを決定する、請求項７に記載の復号装置。
【請求項９】
前記特定のサンプルは、前記対象境界を前記２つのブロックの間の境界として有する前記２つのブロックのサンプルである、請求項７に記載の復号装置。
【請求項１０】
前記ブロック歪み除去フィルタ処理単位ブロックの８ピクセルの長さの境界は、２つの４ピクセルの長さの対象境界と重複し、
前記２つの４ピクセルの長さの対象境界に関して、別個のｂＳが設定される、請求項７に記載の復号装置。
【請求項１１】
前記２つの４ピクセルの長さの対象境界に関するｂＳのうち大きい方のｂＳは、前記２つの４ピクセルの長さの対象境界に関する代表ｂＳとして決定され、
前記２つの４ピクセルの長さの対象境界のそれぞれにおける前記ブロック歪み除去フィルタ処理は、前記代表ｂＳに基づいて実行される、請求項１０に記載の復号装置。
【請求項１２】
前記ブロック歪み除去フィルタ処理単位ブロックの左側境界における上側の４ピクセルの長さの境界に関するｂＳは、前記ブロック歪み除去フィルタ処理単位ブロックに関する代表ｂＳとして決定され、
前記ブロック歪み除去フィルタ処理単位ブロックにおけるすべての垂直対象境界は、前記代表ｂＳを共有する、請求項７に記載の復号装置。
【請求項１３】
現在ピクチャに関する復元されたピクチャを生成するステップと、
前記復元されたピクチャに、ブロック歪み除去フィルタ処理及びサンプル適応オフセット（ＳＡＯ）処理を適用するステップであって、前記ＳＡＯ処理は、前記ブロック歪み除去フィルタ処理を完了した後に適用されるステップと、
前記現在ピクチャを復号するのに用いられるピクチャ情報を符号化し、前記符号化されたピクチャ情報を有するビットストリームを出力するステップと、を有し、
前記ブロック歪み除去フィルタ処理を適用することは、
前記復元されたピクチャ内でブロック歪み除去フィルタ処理が実行される単位ブロックであるブロック歪み除去フィルタ処理単位ブロックの対象境界を導出し、
前記復元されたピクチャ内の前記対象境界の境界強度（ｂＳ）を設定し、
前記ｂＳに基づいて前記対象境界にブロック歪み除去フィルタ処理を適用することを有し、
前記ｂＳは、０、１及び２を有する３つの値の一つに設定され、
前記対象境界に隣接する２つのブロックのうちの少なくとも１つがイントラ予測モードで符号化されている第１の場合は、前記ｂＳは２に設定され、
そうでない場合、前記２つのブロックのうちの少なくとも１つが０でない変換係数を含む第２の場合は、前記ｂＳは１に設定され、
そうでない場合、前記２つのブロックが異なる参照ピクチャ又は異なる動きベクトルを有する第３の場合は、前記ｂＳは１に設定され、
前記ブロック歪み除去フィルタ処理単位ブロックは、８×８ピクセルブロックであり、
前記ｂＳが設定される前記対象境界は、４ピクセルの長さを有し、
前記ブロック歪み除去フィルタ処理を適用することは、
前記設定されたｂＳ値が０より大きい場合、前記対象境界に隣接し特定のサンプル行又は列に位置する特定のサンプルに基づいて、前記ブロック歪み除去フィルタ処理を前記対象境界に適用しないか否かを決定し、
前記ブロック歪み除去フィルタ処理を前記対象境界に適用すると決定した場合、強フィルタ処理又は弱フィルタ処理を前記対象境界に適用することを有する、符号化装置によるピクチャ符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は映像情報圧縮技術に関し、より詳しくは、ループ内フィルタ（in-loop filter）としてブロック除去フィルタ（deblocking filter）を適用する方法に関する。
【背景技術】
【０００２】
最近、高解像度、高品質の映像に対する要求が多様な応用分野で増加している。しかしながら、映像が高解像度、かつ高品質になるほど、当該映像に関する情報量も共に増加する。
【０００３】
したがって、既存の有線・無線広帯域回線のような媒体を用いて映像情報を転送するか、又は既存の記憶媒体を用いて映像情報を記憶する場合には、情報の転送費用及び記憶費用が増加する。
【０００４】
高解像度、高品質映像の情報を効果的に転送又は記憶し、再生するために、高能率の映像圧縮技術を用いることができる。
【０００５】
映像圧縮の能率を高めるために、インタ予測及びイントラ予測を用いることができる。インタ予測（inter prediction）方法では、他のピクチャの情報を参照して現在ピクチャのピクセル値を予測し、イントラ予測（intra prediction）方法では、同一のピクチャ内でピクセル間の関係を用いてピクセル値を予測する。
【０００６】
予測された映像の処理単位、例えばブロックに対しては、映像を原映像と同一にするための多様な方法が適用できる。これを通じて復号装置は当該映像をより正確に（原映像とより一致するように）復号することができ、符号化装置は当該映像がより正確に復元できるように符号化することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、ブロック歪み除去フィルタを適用するに当たって、ブロック歪み（blocking artifact）を効果的に除去して原映像に近く映像を復元する方法及び装置を提供することをその目的とする。
【０００８】
本発明は、ブロック歪み除去フィルタを適用するに当たって、複雑度を低めて圧縮能率を高めることができる方法及び装置を提供することをその目的とする。
【０００９】
本発明は、ブロック歪み除去フィルタを適用するに当たって、境界強度（boundary Strength、ｂＳ）を決定する単位ブロックを効果的に設定して複雑度を減らすことができる方法及び装置を提供することをその目的とする。
【００１０】
本発明は、ブロック歪み除去フィルタを適用するに当たって、ｂＳ値を効果的に設定することによって、複雑度を減らすことができる方法及び装置を提供することをその目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施形態は、ｂＳ導出方法として、ブロック歪み除去フィルタを適用する単位ブロックであるブロック歪み除去フィルタ単位ブロックの境界を導出するステップと、ブロック歪み除去フィルタ単位ブロック内のｂＳ設定単位ブロック別にｂＳを設定するステップとを含み、ｂＳ設定ステップでは、ｂＳ設定単位ブロックの境界として、ブロック歪み除去フィルタ単位ブロックの境界に該当する対象境界に対してｂＳ値を設定することができる。
【００１２】
ｂＳ設定ステップでは、対象境界を境界にする二つのブロックのうちの少なくとも一つがイントラ符号化されているとき、対象境界のｂＳ値をｂＳ２に設定し、対象境界を境界にする二つのブロックのうちの少なくとも一つがイントラ符号化されていない場合であって、対象境界がブロック歪み除去フィルタの適用対象である場合には、対象境界のｂＳ値をｂＳ１に設定し、対象境界がブロック歪み除去フィルタの適用対象でない場合には、対象境界のｂＳ値をｂＳ０に設定することができ、ｂＳ０、ｂＳ１、及びｂＳ２は、ｂＳ０＜ｂＳ１＜ｂＳ２の関係を有することができる。
【００１３】
ｂＳがｂＳ１に設定される場合は、対象境界を境界にする二つのブロックのうちの少なくとも一つがイントラ符号化されていない場合であって、対象境界を境界にする二つのブロックのうちの少なくとも一つが０でない変換係数を含む場合と、対象境界を境界にする二つのブロックが別個の参照ピクチャ、又は別個の動きベクトルを有する場合とを含むことができる。
【００１４】
ブロック歪み除去フィルタ単位ブロックの境界を導出するステップ及びｂＳを設定するステップは、ブロック歪み除去フィルタ単位ブロックを含むピクチャ内の垂直エッジに対して適用された後、ブロック歪み除去フィルタ単位ブロックを含むピクチャ内の水平エッジに対して適用することもできる。
【００１５】
ブロック歪み除去フィルタ単位ブロックは、符号化ブロック、変換ブロック、予測ブロック、及び８×８ピクセルブロックのうちのいずれか一つであってよい。また、ｂＳ決定単位ブロックは４×４ピクセルブロックであってよい。
【００１６】
本発明の他の実施形態は、ブロック歪み除去フィルタ方法であって、対象境界に対してｂＳ設定単位ブロック別にｂＳを設定するステップと、対象境界に対してブロック歪み除去フィルタを適用単位ブロック別にブロック歪み除去フィルタを適用するステップとを含み、ｂＳを設定するステップでは、ｂＳ設定単位ブロックの境界として、ブロック歪み除去フィルタ単位ブロックの境界に該当する対象境界に対してｂＳ値を設定することができる。
【００１７】
ｂＳ設定ステップでは、対象境界を境界にする二つのブロックのうちの少なくとも一つがイントラ符号化されているとき、対象境界のｂＳ値をｂＳ２に設定し、対象境界を境界にする二つのブロックのうちの少なくとも一つがイントラ符号化されていない場合であって、対象境界がブロック歪み除去フィルタの適用対象である場合には、対象境界のｂＳ値をｂＳ１に設定し、対象境界がブロック歪み除去フィルタの適用対象でない場合には、対象境界のｂＳ値をｂＳ０に設定することができ、ｂＳ０、ｂＳ１、及びｂＳ２はｂＳ０＜ｂＳ１＜ｂＳ２の関係を有することができる。
【００１８】
ｂＳがｂＳ１に設定される場合は、対象境界を境界にする二つのブロックのうちの少なくとも一つがイントラ符号化されていない場合であって、対象境界を境界にする二つのブロックのうちの少なくとも一つが０でない変換係数を含む場合と、対象境界を境界にする二つのブロックが別個の参照ピクチャ又は別個の動きベクトルを有する場合とを含むことができる。
【００１９】
ｂＳを設定するステップ及びブロック歪み除去フィルタを適用するステップは、ブロック歪み除去フィルタ単位ブロックを含むピクチャ内の垂直エッジに対して適用した後、ブロック歪み除去フィルタ単位ブロックを含むピクチャ内の水平エッジに対して適用することもできる。
【００２０】
対象境界に対して設定されたｂＳ値がｂＳ０より大きく、ブロック歪み除去フィルタを適用する場合には、強フィルタ処理を適用するか、弱フィルタ処理を適用するかを決定することができる。
【００２１】
強フィルタ処理を適用するか、弱フィルタ処理を適用するかは、対象境界を境界にする二つのブロックのサンプルに基づいて決定することができ、対象境界が垂直エッジの場合には、対象境界を境界にするサンプル行のサンプルのうち、ブロック歪み除去フィルタの対象になるサンプルに基づいて、対象境界が水平エッジの場合には、対象境界を境界にするサンプル列のサンプルのうち、ブロック歪み除去フィルタの対象になるサンプルに基づいて、強フィルタ処理を適用するか、弱フィルタ処理を適用するかを決定することができる。
【００２２】
弱フィルタ処理を適用することに決定された場合には、ブロック歪み除去フィルタの対象になるサンプルのうち、所定のサンプルだけにフィルタ処理を適用することもできる。
【００２３】
ブロック歪み除去フィルタ単位ブロックは、符号化ブロック、変換ブロック、予測ブロック、及び８×８ピクセルブロックのうちのいずれか一つであってよい。また、ｂＳ決定単位ブロックは４×４ピクセルブロックであってよい。
【発明の効果】
【００２４】
本発明によれば、ブロック歪み除去フィルタを適用するに当たって、ブロック歪みを効果的に除去して原映像に近く映像を復元することができる。
【００２５】
本発明によれば、ブロック歪み除去フィルタを適用するに当たって、複雑度を低めて圧縮能率を高めることができる。
【００２６】
例えば、本発明によれば、ブロック歪み除去フィルタを適用するに当たって、ｂＳを決定する単位ブロックを効果的に設定して複雑度を減らすことができる。また、本発明によれば、ブロック歪み除去フィルタを適用するに当たって、ｂＳ値を効果的に設定することによって複雑度を減らすことができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態による符号化装置（映像符号化装置）を概略的に示すブロック図である。
【図２】本発明の一実施形態による映像復号装置を概略的に示すブロック図である。
【図３】本発明によるブロック除去フィルタを適用する方法を概略的に説明する順序図である。
【図４】本発明によるブロック歪み除去フィルタの実行方式を概略的に説明する図である。
【図５】ｂＳを求める方法の一例を概略的に説明する順序図である。
【図６】ｂＳ値を決定する方法の一例を概略的に説明する図である。
【図７】ｂＳ値を決定する方法の他の例を概略的に説明する図である。
【図８】ｂＳ値を決定する方法の他の例を概略的に説明する図である。
【図９】ブロック除去適用単位ブロックの境界とｂＳ決定単位ブロックの境界とが一致する場合にｂＳを決定する方法の例を概略的に示す図である。
【図１０】ブロック歪み除去フィルタを実行する単位ブロックにおいて代表ｂＳ値を決定する方法の他の例を概略的に説明する図である。
【図１１】ｂＳを決定する方法の他の例を概略的に説明する順序図である。
【図１２】ｂＳ値を３種類の値のうちのいずれか一つに決定する方法の例を概略的に説明する順序図である。
【図１３】ｂＳ値を３種類の値のうちのいずれか一つに決定する方法の例を概略的に説明する順序図である。
【図１４】ｂＳ値を３種類の値のうちのいずれか一つに決定する方法の例を概略的に説明する順序図である。
【図１５】ＯＭＢＣを適用する場合に適用されるｂＳ決定木の例であって、ｂＳを決定する方法を概略的に説明する順序図である。
【図１６】ＯＭＢＣを適用する場合に適用されるｂＳ決定木の例であって、ｂＳを決定する方法を概略的に説明する順序図である。
【図１７】ｂＳを決定してブロック歪み除去フィルタを適用する方法の例を概略的に説明する図である。
【図１８】ｂＳを決定してブロック歪み除去フィルタを適用する方法の例を概略的に説明する図である。
【図１９】代表ｂＳを決定する方法の一例を概略的に説明する順序図である。
【図２０】代表ｂＳを決定する方法の他の例を概略的に説明する順序図である。
【図２１】ｂＳ決定木を簡素化する方法を概略的に説明する順序図である。
【図２２】本発明による映像を符号化する方法を概略的に説明する順序図である。
【図２３】本発明による映像を復号する方法を概略的に説明する順序図である。
【図２４】本発明によるｂＳを導出する方法の一例を概略的に説明する順序図である。
【発明を実施するための形態】
【００２８】
本発明は多様な変更を加えることができ、多様な実施形態を有することができるところ、特定の実施形態を図面に例示し、詳細に説明するものである。しかしながら、これは本発明を特定の実施形態に対して限定しようとするものではない。本明細書で使用する用語は単に特定の実施形態を説明するために使われたものであって、本発明の技術的思想を限定しようとする意図として使われるものではない。単数の表現は、文脈上、明白に異なる場合を除き、複数の表現を含む。本明細書において、“含む”又は“有する”などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、又はこれらを組み合わせたものが存在することを指定しようとするものであり、一つ又はその以上の他の特徴又は数字、ステップ、動作、構成要素、部品、若しくはこれらを組み合わせたものの存在又は付加の可能性を予め排除しないことと理解されるべきである。
【００２９】
一方、本発明で説明される図面上の各構成は、映像符号化装置／復号装置で異なる特徴的な機能に関する説明の便宜のために独立的に図示されたものであって、各構成が互いに別個のハードウェア又は別個のソフトウェアで具現することを意味するものではない。例えば、各構成のうち、二つ以上の構成を合わせて一つの構成とすることもできるし、一つの構成を複数の構成に分けることもできる。各構成が統合及び／又は分離された実施形態も本発明の本質から外れない限り、本発明の権利範囲に含まれる。
【００３０】
以下、添付した図面を参照して、本発明の好ましい実施形態をより詳細に説明する。以下、図面上の同一の構成要素に対しては同一の参照符号を使用し、同一の構成要素に対して重複説明は省略する。
【００３１】
図１は、本発明の一実施形態に従う符号化装置（映像符号化装置）を概略的に示すブロック図である。図１を参照すると、符号化装置１００は、ピクチャ分割部１０５、予測部１１０、変換部１１５、量子化部１２０、再整列部１２５、エントロピ符号化部１３０、逆量子化部１３５、逆変換部１４０、フィルタ部１４５、及びメモリ１５０を備える。
【００３２】
ピクチャ分割部１０５は、入力されたピクチャを少なくとも一つの処理単位ブロックに分割することができる。この際、処理単位としてのブロックは、予測ユニット（以下、‘ＰＵ’という）、変換ユニット（以下、‘ＴＵ’という）、又は符号化ユニット（以下、‘ＣＵ’という）であってよい。
【００３３】
予測部１１０は、後述するように、インタ予測を実行するインタ予測部と、イントラ予測を実行するイントラ予測部とを含む。予測部１１０は、ピクチャ分割部１０５によって分割されたピクチャの処理単位に対して予測を実行して、予測ブロックを生成する。予測部１１０において、ピクチャの処理単位はＣＵ、ＴＵ、又はＰＵであってよい。また、予測部１１０は、当該処理単位に対して実施される予測がインタ予測かイントラ予測かを決定し、各予測方法の具体的な内容（例えば、予測モードなど）を定めることができる。この際、予測が実行される処理単位と、予測方法及び予測方法の具体的な内容が定まる処理単位とは異なることがある。例えば、予測の方法、予測モードなどはＰＵ単位で決定され、予測の実行はＴＵ単位で実行することもできる。
【００３４】
インタ予測を通じて、現在ピクチャの先行ピクチャ及び／又は後続ピクチャのうち、少なくとも一つのピクチャの情報に基づいて予測を実行して、予測ブロックを生成することができる。また、イントラ予測を通じて、現在ピクチャ内のピクセル情報に基づいて予測を実行して、予測ブロックを生成することができる。
【００３５】
インタ予測の方法として、スキップモード、マージ（merge）モード、動きベクトル予測（ＭＶＰ）モードなどを用いることができる。インタ予測では、ＰＵに対して参照ピクチャを選択し、ＰＵと同一のサイズの参照ブロックを選択することができる。参照ブロックは、整数ピクセル単位で選択できる。続いて、現在ＰＵとの残差（residual）信号が最小化され、動きベクトルサイズも最小になる予測ブロックが生成される。
【００３６】
予測ブロックは整数サンプル単位で生成することもでき、１／２ピクセル単位又は１／４ピクセル単位のように、整数以下のピクセル単位で生成することもできる。この際、動きベクトルもまた、整数ピクセル以下の単位で表現できる。例えば、輝度サンプルに対しては１／４ピクセル単位で、色差サンプルに対しては１／８ピクセル単位で表現できる。
【００３７】
インタ予測を通じて選択された参照ピクチャのインデクス、動きベクトル（例えば、動きベクトル予測子）、残差信号などの情報は、エントロピ符号化されて復号装置に伝達される。スキップモードが適用される場合には、予測ブロックを復元ブロックにすることができるため、残差を生成、変換、量子化、転送しないことがある。
【００３８】
イントラ予測を実行する場合には、ＰＵ単位で予測モードが定まり、ＰＵ単位で予測を実行できる。また、ＰＵ単位で予測モードが定まり、ＴＵ単位でイントラ予測を実行することもできる。
【００３９】
イントラ予測において、予測モードは、３３個の方向性予測モードと、少なくとも二つの非方向性モードとを有することができる。非向性性モードは、ＤＣ予測モード及び平面モード（Planar mode）を含むことができる。
【００４０】
イントラ予測では、参照サンプルにフィルタを適用した後、予測ブロックを生成することができる。この際、参照サンプルにフィルタを適用するか否かは、現在ブロックのイントラ予測モード及び／又はサイズによって決定できる。
【００４１】
ＰＵは多様なサイズ／形態のブロックであって、例えばインタ予測の場合、ＰＵは２Ｎ×２Ｎブロック、２Ｎ×Ｎブロック、Ｎ×２Ｎブロック、又はＮ×Ｎブロック（Ｎは、整数）などであってよい。イントラ予測の場合、ＰＵは２Ｎ×２Ｎブロック、又はＮ×Ｎブロック（Ｎは、整数）などであってよい。この際、Ｎ×ＮブロックサイズのＰＵは特定の場合だけに適用するように設定することができる。例えば、最小サイズＣＵに対してだけＮ×ＮブロックサイズのＰＵを用いるように定めるか、又はイントラ予測に対してだけ用いるように定めることもできる。また、上述したサイズのＰＵの他に、Ｎ×ｍＮブロック、ｍＮ×Ｎブロック、２Ｎ×ｍＮブロック、又はｍＮ×２Ｎブロック（ｍ＜１）などのＰＵを更に定義して使用することもできる。
【００４２】
生成された予測ブロックと原映像ブロックとの間の残差値（残差ブロック又は残差信号）は変換部１１５に入力される。また、予測のために使用した予測モード情報、動きベクトル情報などは、残差値と共にエントロピ符号化部１３０で符号化されて、復号装置に伝達される。
【００４３】
変換部１１５は、変換単位で残差ブロックに対する変換を実行し、変換係数を生成する。変換部１１５での変換単位はＴＵであってもよく、四分木（quad tree）構造を有することができる。この際、変換単位のサイズは所定の最大及び最小サイズの範囲内で定めることができる。変換部１１５は、残差ブロックを離散コサイン変換（ＤＣＴ）及び／又は離散サイン変換（ＤＳＴ）を用いて変換することができる。
【００４４】
量子化部１２０は、変換部１１５で変換された残差値を量子化して量子化係数を生成することができる。量子化部１２０で算出された値は、逆量子化部１３５及び再整列部１２５に提供される。
【００４５】
再整列部１２５は、量子化部１２０から提供された量子化係数を再整列する。量子化係数を再整列することによって、エントロピ符号化部１３０での符号化能率を高めることができる。再整列部１２５は、係数走査（Coefficient Scanning）方法を通じて２次元ブロック形態の量子化係数を１次元のベクトル形態に再整列することができる。再整列部１２５では、量子化部から転送された係数の確率的な統計に基づいて係数走査の順序を変更することによって、エントロピ符号化部１３０でのエントロピ符号化能率を高めることもできる。
【００４６】
エントロピ符号化部１３０は、再整列部１２５によって再整列された量子化係数に対するエントロピ符号化を実行することができる。エントロピ符号化には、例えば、指数ゴロム（Exponential Golomb）、コンテキスト適応可変長符号化（ＣＡＶＬＣ）、コンテキストキスト適応２値算術符号化（ＣＡＢＡＣ）などの符号化方法を使用することができる。エントロピ符号化部１３０は、再整列部１２５及び予測部１１０から伝達を受けたＣＵの量子化係数情報及びブロックタイプ情報、予測モード情報、分割単位情報、ＰＵ情報及び転送単位情報、動きベクトル情報、参照ピクチャ情報、ブロックの補間情報、フィルタ処理情報など、多様な情報を符号化することができる。
【００４７】
また、エントロピ符号化部１３０は、必要な場合、転送するパラメータセット又は構文（シンタックス）に一定の変更を加えることもできる。
【００４８】
逆量子化部１３５は量子化部１２０で量子化された値を逆量子化し、逆変換部１４０は逆量子化部１３５で逆量子化された値を逆変換する。逆量子化部１３５及び逆変換部１４０で生成された残差値と、予測部１１０で予測された予測ブロックとを合わせて復元ブロック（Reconstructed Block）を生成できる。
【００４９】
図１では、加算器を通じて、残差ブロックと予測ブロックとを合わせて復元ブロックを生成することを説明している。この際、加算器を、復元ブロックを生成する別途のユニット（復元ブロック生成部）と見ることもできる。
【００５０】
フィルタ部１４５は、ブロック除去フィルタ、適応ループフィルタ（ＡＬＦ）、サンプル適応オフセット（ＳＡＯ）を復元されたピクチャに適用することができる。
【００５１】
ブロック除去フィルタは、復元されたピクチャにおけるブロック間の境界に生じた歪みを除去することができる。ＡＬＦは、ブロック除去フィルタによってブロックがフィルタ処理された後、復元された映像と元の映像とを比較した値に基づいてフィルタ処理を実行することができる。ＡＬＦは、高能率を適用する場合だけに実行することもできる。ＳＡＯは、ブロック除去フィルタが適用された残差ブロックと原映像とのオフセット差をピクセル単位で復元し、バンドオフセット（Band Offset）、エッジオフセット（Edge Offset）などの形態で適用される。
【００５２】
一方、インタ予測に使われる復元ブロックに対してフィルタ部１４５はフィルタ処理を適用しないこともある。
【００５３】
メモリ１５０は、フィルタ部１４５を通じて算出された復元ブロック又はピクチャを記憶することができる。メモリ１５０に記憶された復元ブロック又はピクチャは、インタ予測を実行する予測部１１０に提供できる。
【００５４】
図２は、本発明の一実施形態に従う映像復号装置を概略的に示すブロック図である。図２を参照すると、映像復号装置２００は、エントロピ復号部２１０、再整列部２１５、逆量子化部２２０、逆変換部２２５、予測部２３０、フィルタ部２３５、及びメモリ２４０を含むことができる。
【００５５】
映像符号化装置に映像ビットストリームが入力された場合、入力されたビットストリームは、映像符号化装置において映像情報が処理される手続に従って復号できる。
【００５６】
例えば、映像符号化装置でエントロピ符号化を実行するために、ＣＡＶＬＣなどの可変長符号化（以下、‘ＶＬＣ’という）が使われた場合、エントロピ復号部２１０も符号化装置で使用したＶＬＣテーブルと同一のＶＬＣテーブルで具現して、エントロピ復号を実行することができる。また、映像符号化装置でエントロピ符号化を実行するために、ＣＡＢＡＣを用いた場合、エントロピ復号部２１０はこれに対応してＣＡＢＡＣを用いたエントロピ復号を実行することができる。
【００５７】
エントロピ復号部２１０で復号された情報のうち、予測ブロックを生成するための情報は予測部２３０に提供され、エントロピ復号部２１０でエントロピ復号が実行された残差値は再整列部２１５に入力される。
【００５８】
再整列部２１５は、エントロピ復号部２１０でエントロピ復号されたビットストリームを映像符号化装置で再整列した方法に基づいて再整列することができる。再整列部２１５は、１次元ベクトル形態に表現された係数をまた２次元のブロック形態の係数に復元して再整列することができる。再整列部２１５は、符号化装置で実行された係数走査に関連した情報の提供を受けて、符号化装置で実行された走査順序に基づいて逆に走査する方法によって再整列を実行することができる。
【００５９】
逆量子化部２２０は、符号化装置で提供された量子化パラメータと、再整列されたブロックの係数値に基づいて逆量子化を実行することができる。
【００６０】
逆変換部２２５は、映像符号化装置で実行された量子化結果に対して、符号化装置の変換部が実行したＤＣＴ及びＤＳＴに対し、逆ＤＣＴ及び／又は逆ＤＳＴを実行することができる。逆変換は、符号化装置で決定された転送単位又は映像の分割単位に基づいて実行できる。符号化装置の変換部において、ＤＣＴ及び／又はＤＳＴは、予測方法、現在ブロックのサイズ、及び予測方向など、複数の情報によって選択的に実行することができ、復号装置の逆変換部２２５は符号化装置の変換部で実行された変換情報に基づいて逆変換を実行することができる。
【００６１】
予測部２３０は、エントロピ復号部２１０で提供された予測ブロック生成関連情報と、メモリ２４０で提供された以前に復号されたブロック及び／又はピクチャ情報とに基づいて予測ブロックを生成することができる。
【００６２】
現在ＰＵに対する予測モードがイントラ予測（intra prediction）モードの場合、現在ピクチャ内のピクセル情報に基づいて予測ブロックを生成するイントラ予測を実行することができる。
【００６３】
現在ＰＵに対する予測モードがインタ予測（inter prediction）モードの場合、現在ピクチャの先行ピクチャ又は後続ピクチャのうち、少なくとも一つのピクチャに含まれた情報に基づいて現在ＰＵに対するインタ予測を実行することができる。この際、映像符号化装置で提供された現在ＰＵのインタ予測に必要な動き情報、例えば動きベクトル、参照ピクチャインデクスなどに関する情報は、符号化装置から受信したスキップフラグ、マージフラグなどから導出できる。
【００６４】
復元ブロックは、予測部２３０で生成された予測ブロックと、逆変換部２２５で提供された残差ブロックとを用いて生成できる。図２では、加算器で予測ブロックと残差ブロックとを合わせて復元ブロックを生成することを説明している。この際、加算器は、復元ブロックを生成する別途のユニット（復元ブロック生成部）と見ることができる。
【００６５】
スキップモードが適用される場合には残差が転送されず、予測ブロックを復元ブロックにすることができる。
【００６６】
復元されたブロック及び／又はピクチャは、フィルタ部２３５に提供できる。フィルタ部２３５は、復元されたブロック及び／又はピクチャにブロック歪み除去フィルタ、ＳＡＯ及び／又はＡＬＦなどを適用することができる。
【００６７】
メモリ２４０は、復元されたピクチャ又はブロックを記憶して参照ピクチャ又は参照ブロックに使用できるようにすることができ、また復元されたピクチャを出力部に提供することができる。
【００６８】
一方、上述したように、符号化装置及び復号装置のフィルタ部は、ループ内フィルタとしてブロック除去フィルタ、ＡＬＦ又はＳＡＯを適用することができる。
【００６９】
ブロック除去フィルタは、ブロック単位の予測、変換、量子化に従うブロック間の歪み（artifacts）を除去する。ブロック除去フィルタは、予測ユニットのエッジ又は変換ユニットのエッジに適用され、ブロック除去フィルタを適用するための所定の最低ブロックサイズを設定することができる。
【００７０】
ブロック除去フィルタを適用するために、まず水平又は垂直フィルタ境界のブロック境界強度（Boundary Strength；以下、ｂＳという）を決定する。ｂＳに基づいてフィルタ処理を実行するか否かをブロック単位で決定する。フィルタ処理を実行することに決定したとき、どんなフィルタを適用するかを定める。適用するフィルタは、弱フィルタ（weak filter）及び強フィルタ（strong filter）のうちから選択できる。フィルタ処理部は、選択されたフィルタを当該ブロックの境界に適用する。
【００７１】
ＡＬＦは、後述するＳＡＯを実行した後に適用することもできる。ＡＬＦは、ウィナーフィルタ（Wiener filter）を用いて符号化誤差を補償するものであって、ＳＡＯとは異なり、スライス内にグローバルに適用される。ＡＬＦは、高能率（ＨＥ）の場合だけに適用されるようにすることもできる。
【００７２】
ＳＡＯは、ブロック歪み除去フィルタを実行した映像に対して、ピクセル単位で原映像映像とのオフセット差を復元する手続である。ＳＡＯを通じて符号化誤差を補償することができ、符号化誤差は量子化などに起因したものであってよい。ＳＡＯにはバンドオフセット（band offset）と、エッジオフセット（edge offset）との二つのタイプがある。
【００７３】
上述したように、映像復元をブロック単位（例えば、ＣＵ、ＰＵ、ＴＵなど）で実行する場合には、復元されたブロック間の境界でブロック歪みが発生することがある。ブロック歪みを防止するために、ブロック除去フィルタを適用できるが、ブロック除去フィルタは同一の映像又はピクチャ内でもブロック歪みが生じやすい位置と、ブロック歪みが生じ難い位置とを区分して適用できる。例えば、ブロック歪みが生じやすい位置と、ブロック歪みが生じ難い位置とで、異なる方式によってブロック除去フィルタを適用することができる。
【００７４】
このため、ブロック間の境界がブロック除去フィルタを適用する境界に該当するか、隣り合うブロックがイントラ符号化が適用されたブロックであるかなどを考慮してブロック間の境界に対するｂＳを決定し、決定されたｂＳに基づいてブロック歪み除去フィルタを適用することができる。
【００７５】
一方、ＣＵがＩ＿ＰＣＭ  ＣＵの場合、すなわち、イントラ予測が適用されるパルス符号化変調（ＰＣＭ）ＣＵの場合には、ブロック歪み除去フィルタを適用しない。Ｉ＿ＰＣＭモードは、量子化及び変換過程を経ないため、原映像データと同一の値が復元される。
【００７６】
したがって、最高の画質（原映像画質）を復元するために、Ｉ＿ＰＣＭモードのＣＵ（Ｉ＿ＰＣＭ  ＣＵ）に対してはループ内フィルタを適用しない。例えば、ブロック歪み除去フィルタプロセスにおいて、Ｉ＿ＰＣＭ  ＣＵに対する量子化パラメータ（ｑＰ）を０（zero）に設定して、Ｉ＿ＰＣＭ  ＣＵにブロック除去フィルタが適用されないようにすることができる。
【００７７】
図３は、本発明によるブロック除去フィルタを適用する方法を概略的に説明する順序図である。図３で説明するブロック歪み除去フィルタは、符号化装置及び復号装置において実行できる。例えば、図１及び図２のフィルタ処理部は、図３で説明するブロック歪み除去フィルタを実行することができる。
【００７８】
ブロック歪み除去フィルタは、現在ピクチャ内のブロック間の垂直エッジに先に適用された後、現在ピクチャ内のブロック間の水平エッジに適用される。垂直エッジに適用されたブロック歪み除去フィルタによって修正されたサンプルを有する現在ピクチャ内の水平エッジにブロック歪み除去フィルタが適用される。
【００７９】
したがって、図３で説明するブロック歪み除去フィルタの手続は、現在ピクチャ内の垂直エッジに適用された後、現在ピクチャ内の水平エッジに適用できる。
【００８０】
ブロック間のエッジに対して図３を参照すると、ブロック歪み除去フィルタを適用するためにブロック境界が導出される（Ｓ３１０）。
【００８１】
フィルタ部は、現在符号化ブロック又は現在最大符号化ユニット（Largest Coding Unit、ＬＣＵ）（以下、説明の便宜のために本明細書で符号化ブロックとはＬＣＵを含む）のサイズを設定し、現在符号化ブロックの境界が現在ピクチャの境界でないか、現在符号化ブロックの境界がタイルの境界としてブロック除去フィルタが適用される境界であるか、現在符号化ブロックの境界がスライスの境界としてブロック除去フィルタが適用される境界であるか、を判断することができる。
【００８２】
例えば、垂直エッジにブロック除去フィルタを適用する場合、現在符号化ブロックの左側境界が現在ピクチャの左側境界であるとき、ブロック歪み除去フィルタの対象から現在符号化ブロックの左側境界を除外することができる。現在符号化ブロックの左側境界が現在タイルの左側境界であり、現在タイルのエッジにフィルタを適用しないように決定した場合、又は現在符号化ブロックの左側境界が現在スライスの左側境界であり、現在スライスのエッジにフィルタを適用しないように決定した場合は、ブロック歪み除去フィルタの対象から現在符号化ブロックの左側境界を除外することができる。したがって、垂直エッジに対するブロック歪み除去フィルタにおいて、上記の場合でないとき、現在符号化ブロックの左側境界にブロック歪み除去フィルタを適用することができる。
【００８３】
また、水平エッジにブロック除去フィルタを適用する場合、現在符号化ブロックの上側境界が現在ピクチャの上側境界であるとき、ブロック歪み除去フィルタの対象から現在符号化ブロックの上側境界を除外することができる。現在符号化ブロックの上側境界が現在タイルの上側境界であり、現在タイルのエッジにフィルタを適用しないように決定した場合、又は現在符号化ブロックの上側境界が現在スライスの上側境界であり、現在スライスのエッジにフィルタを適用しないように決定した場合には、ブロック歪み除去フィルタの対象から現在符号化ブロックの上側境界を除外することができる。水平エッジに対するブロック歪み除去フィルタにおいて、上記の場合でないときは、現在符号化ブロックの上側境界にブロック歪み除去フィルタを適用することができる。
【００８４】
本明細書において、境界にフィルタ処理を適用することは、境界の両側に位置する所定のサンプルに対してフィルタ処理を実行することを意味する。
【００８５】
フィルタ部は、ピクチャ内の垂直エッジに対するブロック歪み除去フィルタを適用する場合は、変換ブロック及び予測ブロックの垂直エッジに対してブロック境界を導出することができ、ピクチャ内の水平エッジに対するブロック歪み除去フィルタを適用する場合は、変換ブロック及び予測ブロックの水平エッジに対してブロック境界を導出することができる。
【００８６】
変換ブロックのエッジが符号化ブロックのエッジであるときは、当該エッジに対してブロック歪み除去フィルタを適用するか否かに従って変換ブロックの境界を導出することもできる。変換ブロックが分割される場合には、分割される各ブロックに対して境界を導出することができる。
【００８７】
フィルタ部は、予測ブロックのパーティションごとに境界を導出することができる。例えば、予測ブロックのパーティションが２Ｎ×Ｎピクセルブロック、Ｎ×Ｎピクセルブロック、２Ｎ×ｎＵピクセルブロック、２Ｎ×ｎＤピクセルブロック（Ｎ、Ｕ、Ｄはピクセル数に対応する整数であり、ｎは符号化ブロック内の予測ブロックの個数に対応する整数）の場合、パーティションごとにエッジを導出することができる。
【００８８】
次に、ブロック除去フィルタを適用するブロック境界に対するｂＳが導出される（Ｓ３２０）。ｂＳは、現在符号化ブロック内のエッジ別に決定される。ピクチャ内の垂直エッジに対してブロック歪み除去フィルタが適用される場合は、垂直エッジ別にｂＳが導出され、ピクチャ内の水平エッジに対してブロック歪み除去フィルタが適用される場合は、水平エッジ別にｂＳが導出できる。
【００８９】
ｂＳの導出は、所定の単位別に実行できる。例えば、ｂＳは変換ブロックのエッジごとに導出することもできるし、予測ブロックのエッジごとに導出することもできる。また、ｂＳは所定サイズのブロック単位、例えば８×８ピクセルブロック又は４×４ピクセルブロック単位で導出することもできる。
【００９０】
さらに、ｂＳは現在符号化ブロック内の変換ブロック、予測ブロック、そして予め設定された所定サイズのブロックのうち、特定条件を満たすブロックのエッジに対して導出することもできる。たとえ、変換ブロック（例えば、ＴＵ）と予測ブロック（例えば、ＰＵ）のうちの小さいブロックと、予め定まったサイズのブロック（例えば、８×８ピクセルブロック）とのうち、より大きいブロックに対してｂＳが導出することもできる。
【００９１】
言い換えると、ｂＳは、ブロック除去を適用するブロックの境界においてｂＳ決定の単位となるブロックのサイズに対応するピクセル単位（例えば、ｂＳ決定の単位がＬ×Ｌピクセルブロック（Ｌは、整数）であるとき、Ｌピクセル単位）で決定できる。ｂＳの具体的な値を導出することに関しては後述する。
【００９２】
次に、ｂＳに従ってブロック境界にフィルタ処理が実行される（Ｓ３３０）。
【００９３】
例えば、輝度（luma）サンプルの場合、対象エッジに対するｂＳが所定の基準ｂＳ、例えばｂＳth1以下であるとき、当該エッジに対してはブロック歪み除去フィルタを適用しないようにすることができる。色差（chroma）サンプルの場合にも対象エッジに対するｂＳが所定の基準ｂＳ、例えばｂＳth2以下の場合には当該エッジにブロック歪み除去フィルタを適用しないようにすることができる。基準ｂＳのｂＳth1とｂＳth2とは同一に設定することもできるし、相異なるように設定することもできる。
【００９４】
ブロック歪み除去フィルタを効率的に適用するために追加的なしきい値（説明の便宜のためにＴｈ１という）を設定することもできる。例えば、基準ｂＳ値を０に設定した場合、対象エッジに対するｂＳ値が０より大きいときは、Ｔｈ１を用いてブロックレベルでのブロック歪み除去フィルタに対するオン／オフの可否を決定することができる。例えば、対象エッジから導出した値がＴｈ１より大きいときは、ブロック除去フィルタを対象エッジに適用することもできる。
【００９５】
ブロック歪み除去フィルタがピクチャ内の垂直エッジに適用される場合を先に説明すると、Ｔｈ１との比較のために対象垂直エッジから導出される値として、特定サンプル行（row）において当該垂直エッジを境界にする二つブロック内のフィルタ処理対象サンプル間の差が考えられる。例えば、ｋ番目のサンプル行（ｋは、整数）のサンプルに対し、垂直エッジの左側ブロックで垂直エッジに隣接するフィルタ処理対象サンプル間の差の和ＤＬk（例えば、垂直エッジから３個のサンプルがフィルタ処理の対象とするとき、垂直エッジから最初のサンプルと垂直エッジから２番目のサンプルとの差と、垂直エッジから３番目のサンプルと垂直エッジから２番目のサンプルとの差の和）を算出し、垂直エッジの右側ブロック（現在ブロック）で垂直エッジに隣接するフィルタ処理対象サンプル間の差の和ＤＲk（例えば、垂直エッジから３個のサンプルがフィルタ処理の対象とするとき、垂直エッジから最初のサンプルと垂直エッジから２番目のサンプルとの差と、垂直エッジから３番目のサンプルと垂直エッジから２番目のサンプルとの差の和）を導出することができる。ＤＬkとＤＲkとの和ＤkをＴｈ１と比較して、ＤkがＴｈ１より小さい場合、当該垂直エッジにブロック歪み除去フィルタを適用するようにすることができる。ＤkがＴｈ１より小さいとき、量子化パラメータに基づいて、垂直境界がブロック歪み除去フィルタを適用することが効果的ではない境界（例えば、原ピクチャ内の画像の実際の境界など）とみなして、ブロック除去フィルタを適用することによって原ピクチャによって近いピクチャが復元されると判断することができる。
【００９６】
この際、垂直エッジを境界にする二つのブロック内で上述したように一つのサンプル行に対してだけ隣り合うフィルタ処理対象サンプル間の差の和を考慮せず、複数のサンプル行に対して隣り合うフィルタ処理対象サンプル間の差の和を考慮することもできる。例えば、垂直エッジを境界にする二つのブロックでｋ番目のサンプル行に対するフィルタ処理対象サンプル間の差の和Ｄkと、ｋ＋ｊ番目の行（ｊは、整数）に対するフィルタ処理対象サンプル間の差の和Ｄk+jを合わせたＤ（＝Ｄk+Ｄk+j）がしきい値Ｔｈ１より小さい場合、当該垂直エッジに対するブロック除去フィルタを適用することに決定することもできる。
【００９７】
二つのサンプル行の間の差ｊを３に設定した場合を例として説明すると、２番目のサンプル行及び５番目のサンプル行に対し、Ｄ（＝Ｄ2＋Ｄ5）がＴｈ１より小さい場合、ブロック除去フィルタを当該垂直エッジに適用するようにすることができる。２サンプル行の間の差ｊを３に設定し、０番目のサンプル行及び３番目のサンプル行に対してサンプル間の差の和Ｄ（＝Ｄ0＋Ｄ3）をＴｈ１と比較してＤがＴｈ１より小さい場合、ブロック除去フィルタを当該垂直エッジに適用するようにすることもできる。
【００９８】
この際、各ブロック及びサンプル行に応じた特性を効果的に反映するために、サンプル行ごと、かつブロックごとに求めたフィルタ処理対象サンプル間の差の和に対する絶対値を合わせたＤ値を導出することもできる。この場合、垂直エッジを境界に左側ブロック（Ｌ）及び右側ブロック（Ｒ）のｋ番目のサンプル行及びｋ＋ｊ番目のサンプル行を考慮するＤ値は次の＜式１＞のように導出できる。
【００９９】
＜式１＞
Ｄ＝abs（ＤＬk）＋abs（ＤＬk+j）＋abs（ＤＲk）＋abs（ＤＲk+j）
【０１００】
上述したように、ＤＬKは左側ブロックのｋ番目のサンプル行で垂直エッジに隣接したフィルタ処理対象サンプル間の差の和である。ブロック歪み除去フィルタを適用する場合、垂直エッジに隣接した３個のサンプルを対象にするときは、ＤＬKは、垂直エッジ左側ブロックのｋ番目のサンプル行で垂直エッジから最初のサンプルと垂直エッジから２番目のサンプルとの差と、垂直エッジから３番目のサンプルと垂直エッジから２番目のサンプルとの差の和によって導出できる。ＤＲKは、右側ブロックのｋ番目のサンプル行で垂直エッジに隣接したフィルタ処理対象サンプル間の差の和である。例えば、ブロック歪み除去フィルタを適用する場合、垂直エッジに隣接した３個のサンプルを対象にするときは、ＤＲKは、垂直エッジ右側ブロックのｋ番目のサンプル行で垂直エッジから最初のサンプルと垂直エッジから２番目のサンプルとの差と、垂直エッジから３番目のサンプルと垂直エッジから２番目のサンプルとの差の和によって導出できる。
【０１０１】
複数のサンプル行を考慮して上述したように、隣接するフィルタ処理対象サンプル間の差値の和を合わせる場合にも、各サンプル行に対する隣接するフィルタ処理対象サンプル間の差の和を考慮することによって、より効果的にブロック歪み除去フィルタを適用することができる。例えば、＜式１＞を参照すると、ｋサンプル行だけを考慮してＤkを＜式２＞のように定義することができる。
【０１０２】
＜式２＞
Ｄk＝abs（ＤＬk）＋abs（ＤＲk）
【０１０３】
例えば、当該垂直エッジに対し、上記の例のとおり、ｋ番目のサンプル行及びｋ＋３番目のサンプル行を考慮する場合、ＤがＴｈ１より小さく、ｋ番目のサンプル行に対するＤk及びｋ＋３番目のサンプル行に対するＤk+3が各々Ｔｈ１の半分（Ｔｈ１／２）より小さいときは、当該垂直エッジに強フィルタ処理を適用するようにすることができる。これと異なり、ＤがＴｈ１より小さいが、ＤkがＴｈ１／２より小さくないか、又はＤk+3がＴｈ１／２より小さくない場合には、当該垂直エッジに弱フィルタ処理を適用するようにすることもできる。
【０１０４】
弱フィルタ処理を適用する場合には、フィルタ処理対象サンプルのうち、特定サンプルに対してだけフィルタ処理を適用することができ、この場合にフィルタ係数を強フィルタ処理の場合と異なるように適用することもできる。例えば、フィルタ処理対象サンプルが垂直エッジの左右に位置する６個のサンプル（エッジの左側３個サンプル、エッジの右側３個サンプル）である場合を考えれば、強フィルタ処理がフィルタ処理対象サンプルにすべて適用される一方、弱フィルタ処理は対象エッジの左側に位置する二つのサンプルと、対象エッジの右側に位置する二つのサンプルとに適用できる。この際、強フィルタ処理のフィルタ係数と弱フィルタ処理のフィルタ係数とが異なることがある。
【０１０５】
ブロック歪み除去フィルタがピクチャ内の水平エッジに適用される場合にも、Ｔｈ１との比較のために対象水平エッジから導出される値として、特定サンプル列（column）で当該水平エッジを境界にする二つのブロック内のフィルタ処理対象サンプル間の差を考慮することができる。垂直エッジの例で説明したように、ｋ番目のサンプル列（ｋは、整数）のサンプルに対し、水平エッジの上側ブロックで水平エッジに隣接するフィルタ処理対象サンプル間の差の和ＤＴk（たとえ、ブロック除去フィルタが適用されるとき、水平エッジから３個のサンプルがフィルタ処理の対象とするとき、水平エッジから最初のサンプルと水平エッジから２番目のサンプルとの差と、水平エッジから３番目のサンプルと水平エッジから２番目のサンプルとの差の和）を算出し、水平エッジの下側ブロック（現在ブロック）で水平エッジに隣接するフィルタ処理対象サンプル間の差の和ＤＢk（たとえ、ブロック除去フィルタが適用される場合、水平エッジから３個のサンプルがフィルタ処理の対象とするときは、サンプルが水平エッジから最初のサンプルと水平エッジから２番目のサンプルとの差と、水平エッジから３番目のサンプルと水平エッジから２番目のサンプルとの差の和）を導出することができる。ＤＴkとＤＢkとの和ＤkをＴｈ１と比較して、ＤkがＴｈ１より小さいときは、当該水平エッジにブロック歪み除去フィルタを適用するようにすることができる。
【０１０６】
この際、水平エッジを境界にする二つのブロック内で複数のサンプル列に対して隣り合うフィルタ処理対象サンプル間の差の和を考慮することもできる。例えば、水平エッジを境界にする二つのブロックでｋ番目のサンプル列に対するフィルタ処理対象サンプル間の差の和Ｄkと、ｋ＋ｊ番目の列（ｊは、整数）に対するフィルタ処理対象サンプル間の差の和Ｄk+jとを合せたＤ（＝Ｄk＋Ｄk+j）がしきい値Ｔｈ１より小さい場合、当該水平エッジに対するブロック除去フィルタを適用することに決定することもできる。
【０１０７】
二つのサンプル列間の差ｊを３に設定した場合を例として説明すると、２番目のサンプル列及び５番目のサンプル列に対し、Ｄ（＝Ｄ2＋Ｄ5）がＴｈ１より小さい場合、ブロック除去フィルタを当該垂直エッジに適用するようにすることができる。二つのサンプル列間の差ｊを３に設定し、０番目のサンプル列及び３番目のサンプル列に対してサンプル間の差の和Ｄ（＝Ｄ0＋Ｄ3）をＴｈ１と比較して、ＤがＴｈ１より小さい場合、ブロック除去フィルタを当該水平エッジに適用するようにすることもできる。
【０１０８】
垂直エッジに対して考慮するサンプル行と、水平エッジに対して考慮するサンプル列とは、対応するサンプル行及びサンプル列であってよい。例えば、垂直エッジに対して０番目のサンプル行及び３番目のサンプル行を対象にしたとき、水平エッジに対しては０番目のサンプル列及び３番目のサンプル列を対象にすることができる。
【０１０９】
垂直エッジの場合と同様に、各ブロック及びサンプル列に応じた特性を効果的に反映するために、サンプル列ごと、かつブロックごとに求めたフィルタ処理対象サンプル間の差の和に各々絶対値を取ることもできる。この場合、水平エッジを境界に上側ブロック（Ｔ）及び下側ブロック（Ｂ）のｋ番目のサンプル列及びｋ＋ｊ番目のサンプル列を考慮するＤ値は次の＜式３＞のように導出できる。
【０１１０】
＜式３＞
Ｄ＝abs（ＤＴk）＋abs（ＤＴk+j）＋abs（ＤＢk）＋abs（ＤＢk+j）
【０１１１】
上述したように、ＤＴKは上側ブロックのｋ番目のサンプル列で水平エッジに隣接したフィルタ処理対象サンプル間の差の和である。ブロック歪み除去フィルタを適用する場合、水平エッジに隣接した３つのサンプルを対象にするとき、ＤＴKは、水平エッジ上側ブロックのｋ番目のサンプル列で水平エッジから最初のサンプルと水平エッジから２番目のサンプルとの差と、水平エッジから３番目のサンプルと水平エッジから２番目のサンプルとの差の和によって導出できる。ＤＢKは、下側ブロックのｋ番目のサンプル列で水平エッジに隣接したフィルタ処理対象サンプル間の差の和である。例えば、ブロック歪み除去フィルタを適用する場合、水平エッジに隣接した３つのサンプルを対象にするとき、ＤＢKは、水平エッジ下側ブロックのｋ番目のサンプル列で水平エッジから最初のサンプルと水平エッジから２番目のサンプルとの差と、水平エッジから３番目のサンプルと水平エッジから２番目のサンプルとの差の和によって導出できる。
【０１１２】
垂直エッジの例で説明したように、サンプル列ごとに、互いに隣接するフィルタ処理対象サンプル間の差の和を考慮することによって、より効果的にブロック歪み除去フィルタを適用することができる。例えば、＜式３＞を参照すると、ｋサンプル列だけを考慮してＤkを＜式４＞のように定義することができる。
【０１１３】
＜式４＞
Ｄk＝abs（ＤＴk）＋abs（ＤＢk）
【０１１４】
例えば、当該水平エッジに対し、上記の例のとおり、ｋ番目のサンプル列及びｋ＋３番目のサンプル列を考慮する場合、ＤがＴｈ１より小さく、ｋ番目のサンプル列に対するＤkとｋ＋３番目のサンプル列に対するＤk+3が各々Ｔｈ１の１／４より小さい場合であって、他のブロック除去パラメータに関する所定の関係を満たすときは、当該水平エッジに強フィルタ処理を適用するようにすることができる。これと異なり、ＤがＴｈ１より小さいが、ＤkがＴｈ１／４より小さくないか、又はＤk+3がＴｈ１／４より小さくない場合であって、所定の条件を満たすときは、当該水平エッジに弱フィルタ処理を適用するようにすることもできる。
【０１１５】
弱フィルタ処理を適用する場合には、フィルタ処理対象サンプルうち、特定サンプルに対してだけフィルタ処理を適用することができ、この場合、強フィルタとは異なるフィルタ係数を適用することもできる。例えば、フィルタ処理対象サンプルが水平エッジの上下に位置する６個のサンプル（エッジの上側３個サンプル、エッジの下側３個サンプル）である場合を考えれば、強フィルタ処理がフィルタ処理対象サンプルにすべて適用される一方、弱フィルタ処理は対象エッジの上側に位置する二つのサンプルと対象エッジの下側に位置する二つのサンプルとに適用できる。この際、強フィルタ処理と弱フィルタ処理とではフィルタ係数が相異することがある。
【０１１６】
強フィルタ処理及び弱フィルタ処理は、垂直エッジ及び水平エッジに同一の方法（例えば、同一のフィルタ係数又はオフセットなど）を適用することもできる。
【０１１７】
フィルタ部は、上述したように、ブロック除去フィルタを適用するか否か、強フィルタ及び弱フィルタのうち、どちらのフィルタを適用するか、どのサンプルに弱フィルタを適用するかを決定するとき、予め定まった方法（例えば、フィルタ係数又はオフセットなど）に従ってブロック除去フィルタを適用することができる。前述したように、ピクチャ内の垂直エッジに対してブロック歪み除去フィルタを適用した後、ピクチャ内の水平エッジに対してブロック歪み除去フィルタを適用することができる。
【０１１８】
図３では、ブロック境界の導出（Ｓ３１０）、ｂＳの導出（Ｓ３２０）、フィルタ処理適用（Ｓ３３０）のような大きなステップでブロック歪み除去フィルタを適用する方法を説明したが、ｂＳの決定からフィルタ処理を適用する過程に対して、上述した内容はより詳細なステップに区分することもできる。
【０１１９】
例えば、ピクチャ内の垂直エッジに対する水平ブロック歪み除去フィルタに対し、次のステップを実行してもよい。（１）符号化ブロック（ＬＣＵであってよい）内の垂直エッジに対し、ｂＳを決定する。ｂＳ決定対象エッジは、ＴＵとＰＵのうちの小さいブロックに対するエッジ、予め定まった単位ブロック（例えば、８×８ピクセルブロック）のエッジ、又はＴＵとＰＵのうちの小さい単位ブロックと予め定まった単位ブロックのうちの大きいブロックのエッジであってよい。（２）ｂＳが０より大きいエッジに対し、ブロックレベルでブロック歪み除去フィルタのオン／オフ決定する。このために、上述したように、境界（エッジ）の両側のブロックのうち、所定サンプル行（例えば、２番目及び５番目のサンプル行）を用いることができる。（３）フィルタ処理をオンにする領域に対してフィルタ処理を適用するか、弱フィルタ処理を適用するかを決定する。（４）弱フィルタ処理を適用する場合、追加的なフィルタ処理オン／オフ決定する。追加的なフィルタ処理オン／オフは、前述したように、特定サンプル別のフィルタ処理オン／オフ決定を含む。（５）現在ピクチャ内の次の符号化ブロック（ＬＣＵを含み）に移動して、ステップを反復−ピクチャ内のすべての垂直エッジに対するブロック歪み除去フィルタ処理を実行する。
【０１２０】
ピクチャ内の水平エッジに対する垂直ブロック歪み除去フィルタに対しては、次のステップを実行してもよい。（１）符号化ブロック（ＬＣＵであってよい）内の水平エッジに対し、ｂＳを決定する。ｂＳ決定対象エッジは、ＴＵとＰＵのうちの小さいブロックに対するエッジ、予め定まった単位ブロック（例えば、８×８ピクセルブロック）のエッジ、ＴＵとＰＵのうちの小さい単位ブロックと予め定まった単位ブロックのうちの大きいブロックのエッジであってよい。（２）ｂＳが０より大きいエッジに対して、ブロックレベルでブロック歪み除去フィルタのオン／オフを決定する。このために、上述したように、境界（エッジ）の両側のブロックのうち、所定サンプル列（例えば、２番目及び５番目のサンプル列）を用いることができる。（３）フィルタ処理をオンにする領域に対して強フィルタ処理を適用するか、弱フィルタ処理を適用するかを決定する。（４）弱フィルタ処理を適用する場合、追加的なフィルタ処理オン／オフ決定する。追加的なフィルタ処理オン／オフは、前述したように、特定サンプル別のフィルタ処理オン／オフ決定を含む。（５）現在ピクチャ内の次の符号化ブロック（ＬＣＵを含み）に移動して、ステップを反復する。ピクチャ内のすべての水平エッジに対するブロック歪み除去フィルタ処理を実行する。
【０１２１】
図４は、本発明に従うブロック歪み除去フィルタの実行方式を概略的に説明する図である。図４を参照すると、符号化ブロック（例えば、ＬＣＵ）単位で当該符号化ブロック内のエッジに対してブロック歪み除去フィルタが実行される（４０１）。前述したように、現在ピクチャ全体に対して垂直エッジに対するブロック歪み除去フィルタ（水平フィルタ処理）を実行した後、現在ピクチャ全体に対して水平エッジに対するブロック歪み除去フィルタ（垂直フィルタ処理）を実行する。
【０１２２】
図５は、ｂＳを求める方法の一例を概略的に説明する順序図である。
【０１２３】
説明の便宜のために、本明細書ではブロック歪み除去フィルタプロセスにおいて、現在ブロックをＱブロックで表し、現在ブロックに隣り合うブロックとして現在ブロックより先に符号化／復号したブロックをブロックＰで表す。例えば、垂直エッジに対するブロック歪み除去フィルタを実行する場合には、垂直エッジを境界に左側ブロックをブロックＰとし、右側ブロックをブロックＱとする。また、水平エッジに対するブロック歪み除去フィルタを実行する場合には、水平エッジを境界に上側ブロックをブロックＰとし、下側ブロックをブロックＱとする。
【０１２４】
また、ブロックＰに属するサンプルをｐで表し、ブロックＱに属するサンプルをｑで表す。例えば、ブロックＰに属し、特定サンプル行又は特定サンプル列でブロックＰとブロックＱとの間の境界（エッジ）からｉ番目のサンプルをｐiとすることができる（ｉ＝０，１，２，．．．）。同様に、ブロックＱに属し、特定サンプル行又は特定サンプル列でブロックＰとブロックＱとの間の境界（エッジ）からｉ番目のサンプルをｑiとすることができる（ｉ＝０，１，２，．．．）。
【０１２５】
図５を参照すると、ｂＳを決定するために、まず、ブロックＰ及び／又はブロックＱがイントラ符号化されているか否かを判断する（Ｓ５１０）。
【０１２６】
ブロックＰ及び／又はブロックＱがイントラ符号化されている場合には、ブロックＰとブロックＱとの間の境界がＣＵ境界であるか否かを判断する（Ｓ５２０）。この際、ＣＵ境界はＬＣＵの境界であってよい。
【０１２７】
ステップＳ５２０において、ブロックＰとブロックＱとの間の境界がＣＵの境界の場合には、ブロックＰとブロックＱとの間の境界に対するｂＳの値を４と決定する（Ｓ５３０）。
【０１２８】
ステップＳ５２０において、ブロックＰとブロックＱとの間の境界がＣＵの境界でない場合には、ブロックＰとブロックＱとの間の境界に対するｂＳの値を３に決定する（Ｓ５４０）。
【０１２９】
ブロックＰ及び／又はブロックＱがイントラ符号化されていないときは、ブロックＰ及び／又はブロックＱが０でない係数（変換係数）を含むか否かを判断する（Ｓ５５０）。この際、フィルタ部は０でない変換係数の存否を、逆量子化の前の変換係数を基準に判断することができる。また、フィルタ部は０でない変換係数の存否を、逆量子化の後の変換係数を基準に判断することもできる。
【０１３０】
ステップＳ５５０において、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含む場合には、ブロックＰとブロックＱとの間の境界に対するｂＳを２と決定する（Ｓ５６０）。
【０１３１】
ステップＳ５５０において、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含まないときは、ブロックＰとブロックＱとが相異する参照ピクチャ又は相異する動きベクトルを有するか否かを判断する（Ｓ５７０）。
【０１３２】
ステップＳ５７０において、ブロックＰとブロックＱとが別個の参照ピクチャ、又は相異する動きベクトルを有する場合には、ブロックＰとブロックＱとの間の境界に対するｂＳを１に決定する（Ｓ５８０）。
【０１３３】
その他の場合、すなわちブロック歪み除去フィルタを適用しない場合に該当するときは、ブロックＰとブロックＱとの間の境界に対するｂＳを０に設定する（Ｓ５９０）。図５では、ｂＳを適用しない場合の一例として、上述した条件にすべて当該しない場合を説明の便宜のために例として説明している。
【０１３４】
一方、ｂＳ値に従ってブロック歪み除去フィルタに必要な変数の値を設定することもできる。
【０１３５】
例えば、図５に図示されたtc offsetのような変数の場合を例として挙げることができる。tcoffsetは、映像特性に最適化されたｔc値を決定するためにユーザによって設定される値である。ｔcは、量子化程度応じたブロック歪みを定量化してブロック歪み除去フィルタと関連したパラメータを決定することに用いられるしきい値の一つである。
【０１３６】
図５では、ｂＳ値が０、１、又は２の場合にはtcoffsetを０に設定し、ｂＳ値が３又は４の場合にはtcoffsetを２に設定する一例を簡単に示している。
【０１３７】
一方、効果的にブロック歪み除去フィルタを適用するために、先の図３及び図５で説明したｂＳを決定するブロック単位及び決定方法を修正して適用することもできる。
【０１３８】
ｂＳは、実際にブロック歪み除去フィルタを実行するブロック単位と等しいか、小さい単位で決定できる。
【０１３９】
例えば、輝度サンプルに対して実際のブロック歪み除去フィルタを８×８ピクセル単位で実行する場合、ｂＳは４×４ピクセル単位に決定できる。このように、ブロック歪み除去フィルタを実行する単位ブロックのサイズがｂＳを決定する単位ブロックのサイズより大きい場合には、ｂＳを決定する単位ブロックの境界（エッジ）のうち、ブロック歪み除去フィルタを実行する単位ブロックの境界（エッジ）に該当する境界だけでｂＳを決定するようにすることができる。言い換えると、Ｌ×Ｌ（Ｌは、整数）ピクセルブロック別にｂＳを決定する場合、ブロック歪み除去フィルタを実行する単位ブロックの境界でＬピクセル単位でｂＳが決定される。
【０１４０】
具体的には、ｂＳを決定するブロック単位は４×４ピクセルブロックであり、実際のブロック歪み除去フィルタは８×８ピクセルブロック単位で実行する場合を例として説明すると、ｂＳはブロック歪み除去フィルタが実行される８×８ピクセルブロックの境界で４ピクセル単位で決定される。したがって、ブロック歪み除去フィルタの単位である８×８ピクセルブロックの内部の４×４ピクセルブロックエッジに対しては、ｂＳを決定する必要がない。
【０１４１】
図６は、ｂＳ値を決定する方法の一例を概略的に説明する図である。図６では、ブロック歪み除去フィルタの単位ブロック６００が８×８ピクセルブロックであり、ｂＳ決定の単位ブロックが４×４ピクセルブロックである場合を例として説明する。
【０１４２】
図６を参照すると、ブロック歪み除去フィルタの単位ブロック６００の中にはｂＳの決定の単位ブロックになる４×４ピクセルブロックの境界（エッジ）であり、かつブロック歪み除去フィルタの単位ブロック６００の境界になる垂直エッジ及び水平エッジが存在する。
【０１４３】
垂直エッジの場合を例として説明すると、ブロック歪み除去フィルタの単位ブロック６００には、ｂＳ決定の対象になる二つの垂直エッジ６１０、６２０が存在する。図６の例では、最初の垂直エッジ６１０のｂＳと２番目垂直エッジ６２０のｂＳとを比較して、より大きいｂＳをブロック歪み除去フィルタの単位ブロック６００の垂直エッジに対する代表ｂＳに決定する。
【０１４４】
例えば、最初の垂直エッジ６１０のｂＳが１であり、２番目垂直エッジ６２０のｂＳが２である場合には、２番目垂直エッジ６２０のｂＳ値である２をブロック歪み除去フィルタの単位ブロック６００の左側境界になる垂直エッジに対する代表ｂＳ値に決定してもよい。
【０１４５】
図６では、説明の便宜のために、垂直エッジに対する場合を例として説明したが、水平エッジの場合にも同一の方法を適用することができる。
【０１４６】
図６の例において、二つのｂＳの値が同一の場合には、二つのｂＳ値のうち、いずれか一つを代表ｂＳ値に使用できることは勿論である。
【０１４７】
図６のように、ブロック歪み除去フィルタを適用する単位ブロックの内部に位置する境界に対してはｂＳを導出しない方法、すなわちブロック歪み除去フィルタを適用する単位ブロックの境界（エッジ）であり、かつｂＳを決定する単位ブロックの境界である場合に対してだけｂＳを導出する方法の他の例を具体的に説明する。
【０１４８】
図７及び図８は、ｂＳ値を決定する方法の他の例を概略的に説明する図である。図７及び図８の例では、ｂＳ値を２ステップの過程を経て割り当てる方法を例として説明する。具体的には、図７及び図８の例では、４×４ピクセルブロックがｂＳ決定の単位であり、８×８ピクセルブロックがブロック歪み除去フィルタ処理単位である場合、４×４ピクセル単位でｂＳを決定した後に、８×８ピクセルブロック単位でｂＳを再割当する方法を説明する。
【０１４９】
図７は、ｂＳ決定単位ごとにｂＳを設定する方法の一例を概略的に説明する図である。図７を参照すると、１６×１６ピクセルブロック（例えば、ＣＵ）にｂＳ決定単位になる４×４ピクセルブロック（例えば、ＴＵ）が図示したように存在する。各４×４ピクセルブロックの境界ごとにｂＳ値が決定できる。
【０１５０】
４×４ピクセルブロックごとにｂＳを決定するようにする具体的なプロセスの一例（ステップ１）は、以下のとおりである。
【０１５１】
＜４×４ピクセルブロック単位でｂＳを設定する方法−ステップ１＞
【０１５２】
現在ブロック、例えばＣＵ内の左上側にある輝度サンプルの位置を、現在ピクチャの左上側の輝度サンプルを基準に（ｘＣ、ｙＣ）と特定する。現在ブロックであるＣＵのサイズを特定する変数をlog2CUSizeとし、ｂＳが決定される垂直エッジと水平エッジは２次元アレイhorEdgeFlags及びverEdgeFlagsによって指示されるとする。この際、２次元アレイのサイズはｎＳ×ｎＳであり、ｎＳ＝1＜＜log2CUSizeである。
【０１５３】
（ｘＥk、ｙＥj）がエッジ周辺サンプル（エッジサンプル）位置の集合を特定するとする。ｋ＝０,…,ｎＥ−１であり、ｊ＝０,…,ｎＥ−１であり、ｎＥは（（１＜＜log2CUSize）＞＞２）に設定され、ｘＥ0＝０、ｙＥ0＝０、ｘＥk+1＝ｘＥk＋４、ｙＥj+1＝ｙＥj＋４の関係を有する。
【０１５４】
この場合、水平エッジ及び垂直エッジに対してブロック歪み除去フィルタが適用されるサンプルがエッジサンプル位置の集合を特定する（ｘＥk、ｙＥj）に基づいて決定できる。例えば、水平エッジに対し、（１）水平エッジであることを指示する情報が当該エッジにブロック歪み除去フィルタが適用すること（ｂＳが決定すること）を指示するとき（例えば、horEdgeFlags［ｘＥk］［ｙＥj］＝１）、（２）ｐ0を予測を経て復元されたピクチャの（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj−１）に設定し、ｑ0を予測を経て復元されたピクチャの（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）に設定することができ、（３）この際、ブロック歪み除去フィルタの方向は垂直方向となる。
【０１５５】
垂直エッジに対しては、（１）垂直エッジであることを指示する情報が当該エッジにブロック歪み除去フィルタが適用すること（ｂＳが決定すること）を指示するとき（例えば、verEdgeFlags［ｘＥk］［ｙＥj］＝１）、（２）ｐ0を予測を経て復元されたピクチャの（ｘＣ＋ｘＥk−１、ｙＣ＋ｙＥj）に設定し、ｑ0を予測を経て復元されたピクチャの（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）に設定することができ、（３）この際、ブロック歪み除去フィルタの方向は水平方向となる。
【０１５６】
上述した方法（ステップ１）によれば、現在ＣＵ（現在ブロック）内にｂＳ決定単位である４×４ピクセルブロックが何個であるか（現在ＣＵの横及び縦が４ピクセルの何倍数であるか）を計数（（１＜＜log2CUSize）＞＞２）してｎＥ値に割り当てる。したがって、ステップ１では現在ブロックに対して４ピクセル単位でＥｎ個のｂＳが横及び縦に設定可能である。ｂＳが４ピクセル単位で決定されるように（ｘＥｋ、ｙＥｊ）を４ピクセル単位で増加させる（ｘＥk+1＝ｘＥk＋４、ｙＥj+1＝ｙＥj＋４）、すなわち現在ブロック（現在ＣＵ）内で４×４ピクセルブロック単位でｂＳを決定するプロセスを実行できるようにインデクスを増加させる。
【０１５７】
上述した方法（ステップ１）に続いて、ｂＳ決定単位ごとに設定されたｂＳ値をブロック除去フィルタ処理単位ごとに再割当することができる（ステップ２）。
【０１５８】
図８は、ブロック除去フィルタ処理単位ごとにｂＳを再割当する方法の一例を概略的に説明する図である。図８を参照すると、８×８のブロック除去適用単位ブロックごとにｂＳ値が設定できる。
【０１５９】
図８で説明するステップ２では、ステップ１で決定された４×４ピクセルブロック単位のｂＳを比較して、隣接した２エッジに対するｂＳのうち、ある一つの値を８×８のブロック除去フィルタ処理単位に対する代表ｂＳに用いる。
【０１６０】
例えば、図８で現在ＣＵ８００の中のブロック除去フィルタ処理単位ブロック８１０の左側垂直エッジに対し、上側エッジのｂＳであるｂＳv1と下側エッジのｂＳであるｂＳv2とを比較して、より大きい値をブロック８１０の左側垂直エッジに対するｂＳ値（ｂＳv）に用いることができる。また、現在ＣＵ８００内のブロック除去フィルタ処理単位ブロック８２０の上側水平エッジに対し、左側エッジのｂＳであるｂＳh1と右側エッジのｂＳであるｂＳh2とを比較して、より大きい値をブロック８２０の上側水平エッジに対するｂＳ値（ｂＳh）に用いることができる。この際、ステップ１で決定されたｂＳのうち、ブロック除去フィルタを適用する単位ブロックである８×８ピクセルブロック内に位置するエッジに対するｂＳ値は割り当てられない。
【０１６１】
８×８ピクセルブロックごとにｂＳを再割当してブロック歪み除去フィルタを実行するようにする具体的なプロセスの一例（ステップ２）は以下のとおりである。
【０１６２】
＜８×８ピクセルブロック単位でｂＳが割り当ててブロック歪み除去フィルタを実行する方法−ステップ２＞
【０１６３】
現在ブロック、例えばＣＵ内の左上側にある輝度サンプルの位置を現在ピクチャの左上側輝度サンプルを基準に、（ｘＣ、ｙＣ）と特定する。現在ブロックであるＣＵのサイズを特定する変数をlog2CUSizeとし、配列（array）ｂＳは、境界フィルタ処理強度（boundary filtering strength）を特定する。
【０１６４】
現在ブロック、例えば現在ＣＵの輝度エッジに対するブロック歪み除去フィルタは、次のようなステップで実行できる。
【０１６５】
（１）変数ｎＤを１＜＜（log2CUSize−３）に設定する。
【０１６６】
（２）サイズ（２）×（ｎＤ）×（ｎＤ）の３次元配列dEdgeのすべての要素を０に初期化する。
【０１６７】
（３）サイズ（２）×（ｎＤ）×（1＜＜log2CUSize）の３次元配列dSampleのすべての要素を０に初期化する。
【０１６８】
（４）サイズ（２）×（ｎＤ）×（ｎＤ）の３次元配列bStrengthのすべての要素を０に初期化する。
【０１６９】
（５）×Ｄk値をｘＣ＋（ｋ＜＜３）に設定する。この際、ｋの値は０,…,ｎＤ−１である。各ｘＤk値に対し、ｙＤmをｙＣ＋（ｍ＜＜３）に設定し、以下の手続を実行する。この際、ｍの値は０,…,ｎＤ−１である。
【０１７０】
（５−１）垂直エッジに対する境界フィルタ処理強度ｂＳＶｅｒを次のとおり導出する。ｂＳＶｅｒ＝Ｍａｘ（ｂＳ［０］［ｘＤk］［ｙＤm＋ｉ］）。この際、ｉは０，…，７である。ｂＳ［０］［ｘＤk］［ｙＤm＋ｉ］は垂直エッジに対する境界フィルタ処理強度であって、（ｘＤk、ｙＤm＋ｉ）を基準に定義されるｂＳ値を意味する。
【０１７１】
（５−２）bStrength［０］［ｋ］［ｍ］の値をｂＳＶｅｒ値に設定する。
【０１７２】
（５−３）現在ＣＵの輝度サンプル位置（ｘＣ、ｙＣ）、現在ブロックの輝度サンプル位置（ｘＤｋ、ｙＤｍ）、ブロック除去フィルタが適用される垂直エッジであることを指示する情報、境界フィルタ処理強度ｂＳＶｅｒに基づいて輝度ブロックエッジに対する決定過程を実行して、決定に関する情報として強フィルタ処理を適用するか、弱フィルタ処理を適用するかを指示するdEdge［０］［ｋ］［ｍ］及びサイズ８×８の配列ｄＳを決定する。
【０１７３】
（５−４）dEdge値を決定するためのdSample［０］［ｋ］［（ｍ＜＜３）＋ｉ］をｄＳ［ｉ］に設定する。この際、ｉは０，…，７である。
【０１７４】
（５−５）水平エッジに対する境界フィルタ処理強度ｂＳＨｏｒを次のとおり導出する。ｂＳＨｏｒ＝Ｍａｘ（ｂＳ［１］［ｘＤk＋ｉ］［ｙＤm］）。この際、iは０，…，７である。ｂＳ［０］［ｘＤk＋ｉ］［ｙＤm］は水平エッジに対する境界フィルタ処理強度であって、（ｘＤk＋ｉ、ｙＤm）を基準に定義されるｂＳ値を意味する。
【０１７５】
（５−６）bStrength［１］［ｋ］［ｍ］の値をｂＳＶｅｒ値に設定する。
【０１７６】
（５−７）現在ＣＵの輝度サンプル位置（ｘＣ、ｙＣ）、現在ブロックの輝度サンプル位置（ｘＤｋ、ｙＤｍ）、ブロック除去フィルタが適用される垂直エッジであることを指示する情報、境界フィルタ処理強度ｂＳＨｏｒに基づいて輝度ブロックエッジに対する決定過程を実行して、決定に関する情報として強フィルタ処理を適用するか、弱フィルタ処理を適用するかを指示するdEdge［１］［ｋ］［ｍ］及びサイズ８×８の配列ｄＳを決定する。
【０１７７】
（５−８）dEdge値を決定するためのdSample［１］［ｍ］［（ｋ＜＜３）+ｉ］をｄＳ［ｉ］に設定する。この際、iは０,…,７である。
【０１７８】
（６）ブロック歪み除去フィルタを適用することに決定されたエッジに対し、ｂＳ値、dEdge値、そしてdSample値などに基づいてブロック歪み除去フィルタを実行する。
【０１７９】
ステップ２の方法を説明すると、現在ブロック内にあるブロック歪み除去フィルタ処理単位ブロックの個数を表すｎＤを導出するとき、log2CUSize−３を使用している。すなわち、８×８ピクセルブロック単位で、８×８ピクセルブロックの個数だけ現在ブロック（現在ＣＵ）に対してブロック除去フィルタが垂直エッジ及び水平エッジに適用できる。
【０１８０】
次に、垂直エッジに対するｂＳ値及び水平エッジに対するｂＳ値を８個のピクセル別に対比して、最も大きいｂＳ値に設定する。例えば、垂直エッジに対するｂＳであるｂＳＶｅｒは、Ｍａｘ（ｂＳ［０］［ｘＤk］［ｙＤm＋ｉ］）に設定され、水平エッジに対するｂＳであるｂＳＨｏｒはＭａｘ（ｂＳ［１］［ｘＤk＋ｉ］［ｙＤm］）に設定され、この際、ｉは０,…,７となる。ｉ値を０から７まで変更し、８個のピクセルを基準とするｂＳ値を比較して、最も大きいｂＳを現在ブロック除去フィルタ適用ブロックに対するｂＳに設定することができる。例えば、垂直エッジに沿って８個のピクセルを基準とする各ｂＳを比較して、最も大きいｂＳを現在ブロック歪み除去フィルタ適用ブロックの垂直エッジに対するｂＳに設定し、水平エッジに沿って８個のピクセルを基準とする各ｂＳを比較して、最も大きいｂＳを現在ブロック歪み除去フィルタ適用ブロックの水平エッジに対するｂＳに設定することができる。
【０１８１】
したがって、ステップ１ではすべての４×４ピクセルブロック（ｂＳ決定単位ブロック）の境界ごとにｂＳを決定するが、ステップ２で、８×８ピクセルブロック（ブロック歪み除去フィルタ処理単位ブロック）の境界で垂直エッジに対するｂＳであるｂＳＶｅｒと水平エッジに対するｂＳであるｂＳＨｏｒを設定するため、８×８ピクセルブロックの境界で決定されたｂＳを用いる。
【０１８２】
図７及び図８のステップ１では、４ピクセル単位で処理することを明確に説明するために、（（１＜＜log2CUSize）＞＞２）、ｘＥk+1＝ｘＥk＋４、ｙＥj+1＝ｙＥj＋４などの関係式を用いたが、本発明はこの式に限定されない。例えば、所定のｂＳ決定単位（上記の例では４×４ピクセルブロック）でｂＳが決定できる場合は、これを表す他の関係を適用してもｂＳ決定単位ごとにｂＳを設定することができる。
【０１８３】
また、図７及び図８のステップ２では、８ピクセル単位で処理することを明確に説明するために、log2CUSize−３などの式を用いたが、本発明はこの式に限定されない。例えば、所定のブロック歪み除去フィルタ処理単位（上記の例では８×８ピクセルブロック）でブロック歪み除去フィルタが適用され、これによってｂＳを割り当てることができる場合には、これを表す他の式を適用してもブロック歪み除去フィルタ処理単位ごとにｂＳを再割当することができる。
【０１８４】
図７及び図８の例では、輝度サンプルとして現在ブロックがＣＵの場合を例として説明しているが、本発明はこれに限定されず、色差サンプルの場合又は現在ブロックがＣＵの以外の処理単位（例えば、ＰＵ又はＴＵ）の場合にも適用できる。また、ここではｂＳ決定単位が４×４ピクセルブロックであり、ブロック歪み除去フィルタ処理単位が８×８ピクセルブロックでない場合にも同一に適用できる。
【０１８５】
一方、図７及び図８の例において、ステップ１ではすべての４×４ピクセルブロックの境界ごとにｂＳ値を決定／割り当てるが、ステップ２において、８×８ピクセルブロックの境界でｂＳＶｅｒとｂＳＨｏｒを求める。したがって、図７及び図８の例において、８×８ピクセルブロックの内部のエッジに対してｂＳを決定することは不要な過程となる。
【０１８６】
したがって、ブロック歪み除去フィルタプロセスの複雑度を減少させるために、ブロック歪み除去フィルタ処理単位ブロックの境界であり、かつｂＳ決定単位ブロックの境界の場合だけにｂＳを導出する方法が考えられる。例えば、ブロック歪み除去フィルタ処理単位ブロックごとにｂＳ決定単位でｂＳを決定する方法（ｂＳ導出方法１）と、ｂＳ決定単位ごとにｂＳを決定し、かつｂＳ決定単位の境界がブロック歪み除去フィルタ処理単位ブロックの境界にある条件を付加する方法（ｂＳ導出方法２）が考えられる。
【０１８７】
まず、ブロック歪み除去フィルタ処理単位ブロックごとにｂＳ決定単位でｂＳを決定する方法の一例は、次のとおりである。
【０１８８】
＜ｂＳ導出方法１＞
【０１８９】
現在ブロック、例えばＣＵ内の左上側にある輝度サンプルの位置を現在ピクチャの左上側輝度サンプルを基準に、（ｘＣ、ｙＣ）と特定する。現在ブロックであるＣＵのサイズを特定する変数をlog2CUSizeとし、ｂＳが決定される垂直エッジ及び水平エッジは２次元配列horEdgeFlags及びverEdgeFlagsによって指示されるとする。この際、２次元配列のサイズはｎＳ×ｎＳであり、ｎＳ＝1＜＜log2CUSizeである。
【０１９０】
（ｘＥk、ｙＥj）がエッジ周辺サンプル（エッジサンプル）位置の集合を特定するとする。ｋ＝０，…，ｎＥ−１であり、ｊ＝０，…，ｎＥ−１であり、ｎＥは（（１＜＜log2CUSize）＞＞３）に設定され、ｘＥ0＝０、ｙＥ0＝０、ｘＥk+1＝ｘＥk＋８、ｙＥj+1＝ｙＥj＋８の関係を有する。
【０１９１】
この場合、水平エッジ及び垂直エッジに対してブロック歪み除去フィルタが適用されるサンプルがエッジサンプル位置の集合を特定する（ｘＥk、ｙＥj）に基づいて決定できる。例えば、水平エッジに対し、（１）水平エッジであることを指示する情報が当該エッジにブロック歪み除去フィルタが適用すること（ｂＳが決定すること）を指示したとき（例えば、horEdgeFlags［ｘＥk］［ｙＥj］＝１）、（２）（ｘＥk+r、ｙＥj）に対して（ｒ＝０,１）、予測を経て復元されたピクチャの（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj−１）にｐ0を設定し、予測を経て復元されたピクチャの（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）にｑ0を設定することができ、（３）この際、ブロック歪み除去フィルタの方向は垂直方向となる。
【０１９２】
垂直エッジに対しては、（１）垂直エッジであることを指示する情報が当該エッジにブロック歪み除去フィルタが適用すること（ｂＳが決定すること）を指示したとき（例えば、verEdgeFlags［ｘＥk］［ｙＥj］＝１）、（２）（ｘＥk、ｙＥj+r）に対して（ｒ＝０,１）、予測を経て復元されたピクチャの（ｘＣ＋ｘＥk−１、ｙＣ＋ｙＥj）にｐ0を設定し、予測を経て復元されたピクチャの（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）にｑ0を設定することができ、（３）この際、ブロック歪み除去フィルタの方向は水平方向となる。
【０１９３】
フィルタ方向によって、ｂＳは（Ｅk、Ｅj）を基準に決定できる。例えば、ｂＳはｂＳ［filterDir］［Ｅk］［Ｅj］に決定できる。
【０１９４】
ｂＳ導出方法１を見ると、ブロック歪み除去フィルタ処理単位ブロックごとにｂＳを決定するエッジを設定する。したがって、ブロック除去適用単位ブロックの境界であり、かつｂＳ決定単位ブロックの境界であるエッジでｂＳが決定される。ｂＳ導出方法１では、ブロック歪み除去フィルタ処理単位が８×８ピクセルブロックであり、ｂＳが４ピクセル単位で決定される場合を例として説明しているため、８×８ピクセルブロックの境界でｂＳを決定するエッジを設定する。このために、ｎＥ＝（（１＜＜log2CUSize）＞＞３）とｘＥk+1＝ｘＥk＋８、ｙＥj+1＝ｙＥj＋８などの関係を適用する。また、水平エッジに対して（ｘＥk+r、ｙＥj）を基準にｂＳを設定し、ブロック歪み除去フィルタ適用サンプルを特定し、垂直エッジに対して（Ｅｋ、ｙＥj+r）を基準にｂＳを設定し、ブロック歪み除去フィルタ適用サンプルを特定し、かつｒ値を０と１に限定している。
【０１９５】
以後、ｂＳ決定を４×４ピクセル単位で実行すると、８×８ピクセルブロックの境界であり、かつ４×４ピクセルの境界であるエッジに対してｂＳが決定される。言い換えると、８×８ピクセルブロック（ブロック歪み除去フィルタ処理単位ブロック）の境界で、４ピクセル単位（ｂＳ決定単位）にｂＳが決定される。
【０１９６】
一方、ｂＳ決定単位ごとにｂＳを決定し、かつｂＳ決定単位がブロック歪み除去フィルタ処理単位ブロックの境界にある条件を付加する方法の一例は、次のとおりである。
【０１９７】
＜ｂＳ導出方法２＞
【０１９８】
現在ブロック、例えばＣＵ内の左上側にある輝度サンプルの位置を現在ピクチャの左上側輝度サンプルを基準に、（ｘＣ、ｙＣ）と特定する。現在ブロックであるＣＵのサイズを特定する変数をlog2CUSizeとし、ｂＳが決定される垂直エッジと水平エッジは２次元配列horEdgeFlagsとverEdgeFlagsによって指示されるとする。この際、２次元配列のサイズはｎＳ×ｎＳであり、ｎＳ＝1＜＜log2CUSizeである。
【０１９９】
（ｘＥk、ｙＥj）がエッジ周辺サンプル（エッジサンプル）位置の集合を特定するとする。ｋ＝０，…，ｎＥ−１であり、ｊ＝０，…，ｎＥ−１であり、ｎＥは（（１＜＜log2CUSize）＞＞２）に設定され、ｘＥ0＝０、ｙＥ0＝０、ｘＥk+1＝ｘＥk＋４、ｙＥj+1＝ｙＥj＋４の関係を有する。
【０２００】
この場合、水平エッジ及び垂直エッジに対してブロック歪み除去フィルタが適用されるサンプルがエッジサンプル位置の集合を特定する（ｘＥk、ｙＥj）に基づいて決定できる。例えば、水平エッジに対し、（１）水平エッジであることを指示する情報が当該エッジにブロック歪み除去フィルタが適用すること（ｂＳが決定すること）を指示（例えば、horEdgeFlags［ｘＥk］［ｙＥj］＝１）し、ｙＥj％２の値が０であるとき、（２）予測を経て復元されたピクチャの（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj−１）にｐ0を設定し、予測を経て復元されたピクチャの（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）にｑ0を設定することができ、（３）この際、ブロック歪み除去フィルタの方向は垂直方向となる。この際、ｙＥj％２はｙＥjを２で除した剰余を意味する。
【０２０１】
垂直エッジに対しては、（１）垂直エッジであることを指示する情報が当該エッジにブロック歪み除去フィルタが適用すること（ｂＳが決定すること）を指示（例えば、verEdgeFlags［ｘＥk］［ｙＥj］＝１）し、ｘＥk％２の値が０であるとき、（２）予測を経て復元されたピクチャの（ｘＣ＋ｘＥk−１、ｙＣ＋ｙＥj）にｐ0を設定し、予測を経て復元されたピクチャの（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）にｑ0を設定することができ、（３）この際、ブロック歪み除去フィルタの方向は水平方向となる。この際、ｘＥk％２はｘＥkを２で除した剰余を意味する。
【０２０２】
フィルタ方向によって、ｂＳは（Ｅk、Ｅj）を基準に決定できる。例えば、ｂＳはｂＳ［filterDir］［Ｅk］［Ｅj］に決定できる。
【０２０３】
方法１と同様に、方法２もブロック除去適用単位ブロック（８×８ピクセルブロック）の内部にあるエッジに対してはｂＳ決定を行わない。方法２では、４×４ピクセルブロック（ｂＳ決定単位ブロック）単位でｂＳを決定するプロセスを実行し、かつ４×４ブロックのインデクスが偶数の場合、すなわち４×４ブロックの境界が８×８ブロックの境界になる場合だけにｂＳを決定する。この際、各境界でのｂＳは図５の例で説明したｂＳ決定方法によって定めることもできるし、後述するように、より簡潔なｂＳ決定方法によって定めることもできる。
【０２０４】
図９は、ブロック除去適用単位ブロックの境界とｂＳ決定単位ブロックの境界とが一致する場合、ｂＳを決定する方法の例を概略的に示すものである。図９の例は、方法１及び方法２の適用結果を概略的に説明する。
【０２０５】
図９に示すように、現在ブロック（例えば、ＣＵ）に対して８×８ピクセルブロックであるブロック歪み除去フィルタ処理単位ブロック９１０を考慮すると、ブロック９１０の内部に位置するエッジではｂＳを決定しない。
【０２０６】
一方、ｂＳ決定手続をより単純化して複雑度を減らし、ブロック歪み除去フィルタの効果を高めるために、ブロック歪み除去フィルタの単位ブロックに対するエッジのうち、一つのエッジに対するｂＳだけを導出して、ブロック歪み除去フィルタの単位ブロックのエッジのうち、当該エッジに対する代表ｂＳとして適用する方法を考慮することもできる。
【０２０７】
図１０は、ブロック歪み除去フィルタを実行する単位ブロックで代表ｂＳ値を決定する方法の他の例を概略的に説明する図である。図１０においても、ブロック歪み除去フィルタの単位ブロック１０００が８×８ピクセルブロックであり、ｂＳ決定の単位ブロックが４×４ピクセルブロックである場合を例として説明する。
【０２０８】
図１０を参照すると、ブロック歪み除去フィルタの単位ブロック１０００内のｂＳ決定対象となる二つの垂直エッジ１０１０、１０２０のうち、０番目エッジ１０１０に対してだけｂＳを決定する。言い換えると、ブロック歪み除去フィルタの単位ブロックごとに０番目ｂＳ決定の単位ブロックの垂直エッジ及び水平エッジに対してだけｂＳを算出し、算出されたｂＳを当該ブロック歪み除去フィルタの単位ブロックに対する代表ｂＳに用いる。例えば、ブロック歪み除去フィルタの単位ブロックが８×８ピクセルブロックであり、ｂＳ決定の単位ブロックが４×４ピクセルブロックである場合、ブロック歪み除去フィルタの単位ブロック内には４個のｂＳ決定の単位ブロックが存在する。このうち、０番目ブロック（左上側ブロック）の垂直エッジ及び水平エッジに対してだけｂＳを決定してブロック歪み除去フィルタの単位ブロックに対する代表ｂＳに用いることができる。
【０２０９】
図１０の例のようにｂＳを決定すると、ｂＳを決定するプロセスを単純化して既存プロセスの１／４に該当するプロセスにｂＳを決定することができ、ｂＳを記憶するためのメモリも既存プロセスの１／４に縮小することができる。
【０２１０】
ｂＳを決定する位置（エッジ）は、上述したように、図６から図１０で説明した方法のうちのいずれか一つを使用して決定することができる。この際、ｂＳを設定する位置で具体的にｂＳを決定する方法は、図５で説明したとおりである。
【０２１１】
しかしながら、ｂＳを決定する方法も図５より簡単な方法を適用するようにすることもできる。例えば、図５の例のように、ｂＳ値を０から４まで区分して導出しても、ブロック歪み除去フィルタプロセスではｂＳの値を細分して利用しないことがある。例えば、ｂＳ＞０だけを判断したり、ｂＳ＞１だけを判断したり、ｂＳ＞２だけを判断したりすることができる。
【０２１２】
したがって、図５の例のようなｂＳ決定木をより単純化して、ブロック歪み除去フィルタを実行することもできる。
【０２１３】
図１１は、ｂＳを決定する方法の他の例を概略的に説明する順序図である。
【０２１４】
図１１を参照すると、まずブロックＰ及び／又はブロックＱがイントラ符号化されているか否かを判断する（Ｓ１１１０）。
【０２１５】
Ｐ及び／又はＱがイントラ符号化されているときは、ブロックＰとブロックＱとの間の境界に対するｂＳをｂＳ３に決定する（Ｓ１１２０）。
【０２１６】
Ｐ及び／又はＱがイントラ符号化されていないときは、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含むか否かを判断する（Ｓ１１３０）。この際、変換係数は、逆量子化が適用される前の変換係数、又は逆量子化が適用された変換係数であってよい。
【０２１７】
ステップＳ１１３０において、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含むときは、ＰとＱとの間の境界に対するｂＳ値をｂＳ２に決定する（Ｓ１１４０）。
【０２１８】
ステップＳ１１３０において、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含まないときは、ブロックＰとブロックＱとが別個の参照ピクチャを有するか、ブロックＰとブロックＱとが別個の動きベクトルを有するか否かを判断する（Ｓ１１５０）。
【０２１９】
ステップＳ１１５０において、ブロックＰとブロックＱとが別個の参照ピクチャを有するか、又はブロックＰとブロックＱとが別個の動きベクトルを有する場合には、ブロックＰとブロックＱとの間の境界に対するｂＳをｂＳ１に決定する（Ｓ１１６０）。
【０２２０】
その他の場合、すなわちブロック歪み除去フィルタを適用しない場合に該当するときは、ブロックＰとブロックＱとの間の境界に対するｂＳをｂＳ０に設定する（Ｓ１１７０）。
【０２２１】
ここでは、ステップＳ１１２０、Ｓ１１４０、Ｓ１１６０、Ｓ１１７０で決定されるｂＳ値を各々ｂＳ３、ｂＳ２、ｂＳ１、ｂＳ０として表したが、これは説明の便宜のためのものである。図１１の例において、ｂＳ値を４種類に区分して導出するものを勘案すると、ｂＳ０乃至ｂＳ３の値は図１１に示すように、ｂＳ０＝０、ｂＳ１＝１、ｂＳ２＝２、ｂＳ３＝３／４に設定できる。図１１の例では、ステップＳ１１２０でｂＳ３が３／４に決定することと説明しているが、これは図５の例においてｂＳ値が３及び４の場合が、図１１の例においてｂＳ３の単一値（例えば、３）に決定されることを理解しやすく表したものである。
【０２２２】
ｂＳ決定木を用いてブロック歪み除去フィルタに必要な変数の値を設定することもできる。図１１では、tcoffsetを最も大きいｂＳ値に対しては特定値（例えば、２）に設定し、その他のｂＳ値に対しては０に設定することを一例として簡単に示している。
【０２２３】
図１１の例に説明されたものより決定分岐（decision branch）を更に減らす方法も考慮することができる。この場合、ｂＳ値も図１１の例のように、４個（ｂＳ０、ｂＳ１、ｂＳ２、ｂＳ３）でなく、３個（ｂＳ０、ｂＳ１、ｂＳ２）から減らしてブロック歪み除去フィルタを用いることができる。
【０２２４】
この場合、ブロックＰ及び／又はブロックＱがイントラ符号化されている場合を最も大きいｂＳ値であるｂＳ２に決定し、その他のブロック歪み除去フィルタが適用できる場合に対するｂＳ値をｂＳ１に決定し、ブロック歪み除去フィルタが適用されない場合に対するｂＳ値をｂＳ０に決定することができる。３種類のｂＳ値のうち、いずれか一つの値によって導出することを考慮して、ｂＳ０、ｂＳ１、ｂＳ２の値を例えば、ｂＳ０＝０、ｂＳ１＝１、ｂＳ２＝２に設定することができる。
【０２２５】
図１２は、上述したように、ｂＳ値を３種類の値のうち、いずれか一つに決定する方法を概略的に説明する順序図である。
【０２２６】
図１２を参照すると、まずブロックＰ及び／又はブロックＱがイントラ符号化されているか否かを判断する（Ｓ１２１０）。
【０２２７】
ブロックＰ及び／又はブロックＱがイントラ符号化されている場合は、ブロックＰとブロックＱとの間の境界に対するｂＳをｂＳ２に決定する（Ｓ１２２０）。ｂＳ２は、図５の例でｂＳ値が３と４の場合（ｂＳ＝３／４）に対応する。３種類ｂＳ値のうち、最も大きい値がｂＳ２であるため、ｂＳ２の値を例えば２に設定することができる。
【０２２８】
ブロックＰ及び／又はブロックＱがイントラ符号化されていない場合は、ブロックＰとブロックＱとが０でない係数（変換係数）を含むか、ＰとＱとが相異する参照ピクチャを有するか、又はブロックＰとブロックＱとが相異する動きベクトルを有するか否かを判断する（Ｓ１２３０）。この際、変換係数は、逆量子化が適用される前の変換係数、又は逆量子化が適用された変換係数であってよい。
【０２２９】
ステップＳ１２３０において、ブロックＰとブロックＱとが０でない係数（変換係数）を含むか、ブロックＰとブロックＱとが相異する参照ピクチャを有するか、又はブロックＰとブロックＱとが相異する動きベクトルを有する場合には、ブロックＰとブロックＱとの間の境界に対するｂＳをｂＳ１に設定する（Ｓ１２４０）。ｂＳ１はブロックＰとブロックＱとがイントラ符号化されていない場合であって、ブロック除去フィルタを適用する場合に対するｂＳ値として、図５の例でｂＳ値が１と２の場合（ｂＳ＝１／２）に対応する。３種類のｂＳ値のうち、中間値がｂＳ１であるため、ｂＳ１の値を例えば１に設定することができる。
【０２３０】
その他の場合、すなわちブロック除去フィルタを適用しない場合に該当するとき、ｂＳをｂＳ０に設定する（Ｓ１２４０）。ｂＳ０はブロック除去フィルタを適用しない場合に対するｂＳ値であって、図５の例でｂＳ値が０の場合（ｂＳ＝０）に対応する。３種類のｂＳ値のうち、最も小さい値がｂＳ０であるため、ｂＳ０の値を例えば０に設定することができる。
【０２３１】
ｂＳ決定木を用いてブロック歪み除去フィルタに必要な変数の値を設定することもできる。図１２ではtcoffsetを最も大きいｂＳ値に対しては特定値（例えば、２）に設定し、その他のｂＳ値に対しては０に設定することを一例として簡単に示している。
【０２３２】
図１３は、ｂＳ値を３種類の値のうち、いずれか一つに決定する他の方法を概略的に説明する順序図である。図１２で説明したｂＳ決定方法（ｂＳ決定木）において、発明の理解のために、ｂＳの３値（ｂＳ１、ｂＳ２、ｂＳ３）を０、１、２に明確に設定した例を示すものである。
【０２３３】
図１３を参照すると、まずブロックＰ及び／又はブロックＱがイントラ符号化されているか否かを判断する（Ｓ１３１０）。
【０２３４】
ブロックＰ及び／又はブロックＱがイントラ符号化されている場合は、ブロックＰとブロックＱとの間の境界に対するｂＳの値を２に決定する（Ｓ１３２０）。ｂＳが２の場合は、図５の例でｂＳ値が３と４の場合（ｂＳ＝３／４）に対応する。
【０２３５】
ブロックＰ及び／又はブロックＱがイントラ符号化されていない場合は、ブロックＰとブロックＱとが０でない係数（変換係数）を含むか、ブロックＰとブロックＱとが相異する参照ピクチャを有するか、又はブロックＰとブロックＱとが相異する動きベクトルを有するか否かを判断する（Ｓ１３３０）。この際、変換係数は、逆量子化が適用される前の変換係数、又は逆量子化が適用された変換係数であってよい。
【０２３６】
ステップＳ１３３０において、ブロックＰとブロックＱとが０でない係数（変換係数）を含むか、ブロックＰとブロックＱとが相異する参照ピクチャを有するか、又はブロックＰとブロックＱとが相異する動きベクトルを有する場合には、ブロックＰとブロックＱとの間の境界に対するｂＳの値を１に設定する（Ｓ１３４０）。ｂＳが１の場合は、ブロックＰとブロックＱとがイントラ符号化されず、 ブロック除去フィルタを適用する場合に対するｂＳ値として、図５の例でｂＳ値が１と２の場合（ｂＳ＝１／２）に対応する。
【０２３７】
その他の場合、すなわちブロック除去フィルタを適用しない場合に該当するとき、ｂＳの値を０に設定する（Ｓ１３４０）。ｂＳの値が０の場合は、ブロック除去フィルタを適用しない場合に対するｂＳ値として、図５の例でｂＳ値が０の場合（ｂＳ＝０）に対応する。
【０２３８】
ｂＳ決定木を用いてブロック歪み除去フィルタに必要な変数の値を設定することもできる。図１３では、tcoffsetを最も大きいｂＳ値に対しては特定値（例えば、２）に設定し、その他のｂＳ値に対しては０に設定することを一例として簡単に示している。
【０２３９】
図１２及び図１３のように、ｂＳ値が３種類の値のうち、いずれか一つの値に設定されても、決定木の判断ステップを２ステップに限定する必要はない。より多い判断ステップを経たり、より小さい判断ステップを経たりしても、図５の決定方法で使用する５種類のｂＳ値をより減らして適用することができる。例えば、図１２及び図１３において、一つのステップで判断するブロックＰとブロックＱとが０でない係数（変換係数）を含むか、ＰとＱとが相異する参照ピクチャを有するか、又はブロックＰとブロックＱとが相異する動きベクトルを有するかに関する判断を分けて実行することもできる。
【０２４０】
図１４は、ｂＳ値を３種類の値のうち、いずれか一つに決定する更に他の方法を概略的に説明する順序図である。
【０２４１】
図１４を参照すると、まずブロックＰ及び／又はブロックＱがイントラ符号化されているか否かを判断する（Ｓ１４１０）。
【０２４２】
ブロックＰ及び／又はブロックＱがイントラ符号化されている場合は、ブロックＰとブロックＱとの間の境界に対するｂＳの値を２に決定する（Ｓ１４２０）。ｂＳが２の場合は、図５の例でｂＳ値が３と４の場合（ｂＳ＝３／４）に対応する。
【０２４３】
ブロックＰ及び／又はブロックＱがイントラ符号化されていない場合は、ブロックＰとブロックＱとが０でない係数（変換係数）を含むか否かを判断する（Ｓ１４３０）。この際、変換係数は、逆量子化が適用される前の変換係数、又は逆量子化が適用された変換係数であってよい。
【０２４４】
ブロックＰとブロックＱとが０でない係数（変換係数）を含む場合は、ブロックＰとブロックＱとの間の境界に対するｂＳの値を１に設定する（Ｓ１４４０）。この際、ｂＳ値が１の場合は、ブロックＰとブロックＱとがイントラ符号化されておらず、ブロック除去フィルタが適用されるｂＳ値であり、図５の例でｂＳが２の場合に対応する。
【０２４５】
ブロックＰとブロックＱとが０でない係数（変換係数）を含まない場合には、ブロックＰとブロックＱとが相異する参照ピクチャを有するか、又はブロックＰとブロックＱとが相異する動きベクトルを有するか否かを判断する（Ｓ１４５０）。
【０２４６】
ステップＳ１４５０において、ブロックＰとブロックＱとが相異する参照ピクチャを有するか、又はブロックＰとブロックＱとが相異する動きベクトルを有する場合には、ブロックＰとブロックＱとの間の境界に対するｂＳの値を１に設定する（Ｓ１４６０）。ｂＳ値が１の場合は、ブロックＰとブロックＱとがイントラ符号化されておらず、ブロック除去フィルタが適用されるｂＳ値であり、図５の例でｂＳ値が１の場合に対応する。
【０２４７】
その他の場合、すなわちブロック除去フィルタを適用しない場合に該当するとき、ｂＳの値を０に設定する（Ｓ１４７０）。ｂＳの値が０の場合は、ブロック除去フィルタを適用しない場合に対するｂＳ値として、図５の例でｂＳ値が０の場合（ｂＳ＝０）に対応する。
【０２４８】
ｂＳ決定木を用いてブロック歪み除去フィルタに必要な変数の値を設定することもできる。図１３では、tcoffsetを最も大きいｂＳ値に対しては特定値（例えば、２）に設定し、その他のｂＳ値に対しては０に設定することを一例として簡単に示している。
【０２４９】
以下、ｂＳの値を簡素化して３種類の値のうち、いずれか一つの値によって導出する場合、ｂＳ値を導出する方法を具体的に説明する。
【０２５０】
まず、発明の理解を助けるために、図５又は図１１のように、ｂＳの値を５個の値のうち、いずれか一つの値によって導出する場合の方法を先に説明する。
【０２５１】
＜ｂＳを５種類の値のうちのいずれか一つの値によって導出する方法＞
【０２５２】
まず、ｂＳが決定されるエッジを特定する。ｂＳを決定するエッジの特定は、図６から図１０を参照して説明した方法のうち、いずれか一つを用いて実行できる。
【０２５３】
図６から図１０を参照して説明したように、ｂＳが決定されるエッジの特定によってｂＳを決定する基準位置（ｘＥk、ｙＥj）及びｂＳを決定するエッジの左右のサンプルであるｐ0及びｑ0、ブロック歪み除去フィルタの方向などが導出される。ｐ0及びｑ0は上述したように（ｘＥk、ｙＥj）に基づいて決定される。
【０２５４】
導出されたブロック歪み除去フィルタ方向によって、境界フィルタ処理強度を表す変数ｂＳ［filterDir］［ｘＥk］［ｙＥj］が決定される。例えば、filterDirの値が１であるとき、垂直方向のフィルタ処理を指示し、したがって、水平エッジに対するｂＳが導出される。filterDirの値が０であるとき、水平方向のフィルタ処理を指示し、したがって、垂直エッジに対するｂＳが導出される。ｘＥk及びｙＥjはｂＳを決定するエッジを特定する。例えば、ｂＳを決定するエッジは、水平エッジの場合（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj−１）に設定されるｐ0と、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）に設定されるｑ0との間の境界に特定することができ、垂直エッジの場合、（ｘＣ＋ｘＥk−１、ｙＣ＋ｙＥj）に設定されるｐ0と、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）に設定されるｑ0との間の境界に特定できる。
【０２５５】
ｂＳ［filterDir］［ｘＥk］［ｙＥj］の値は、次のとおり導出できる。
【０２５６】
（１）ｂＳ決定対象であるブロックエッジがＣＵエッジであり、サンプルｐ0又はｑ0がイントラ予測モードで符号化されたＣＵに属するとき、ｂＳ、すなわちｂＳ［filterDir］［ｘＥk］［ｙＥj］値は４に設定される。
【０２５７】
（２）サンプルｐ0又はｑ0がイントラ予測モードで符号化されたＣＵに属するが、ｂＳ決定対象であるブロックエッジがＣＵエッジでないときは、ｂＳ［filterDir］［ｘＥk］［ｙＥj］値は３に設定される。
【０２５８】
（３）ｂＳ決定対象であるブロックエッジがＴＵエッジであり、サンプルｐ0又はｑ0が０でない変換係数レベル（level）を含むＴＵに属するとき、ｂＳ［filterDir］［ｘＥk］［ｙＥj］値は２に設定される。
【０２５９】
（４）その他、ブロック歪み除去フィルタが適用される場合のｂＳ［filterDir］［ｘＥk］［ｙＥj］値は１に設定される。例えば、図５、図１１、図１２、図１３、及び図１４の例では、説明の便宜のために、サンプルｐ0又はｑ0がイントラ予測が適用されたブロックに属する場合でなく、かつブロック除去フィルタが適用される場合として、ブロックＰ及び／又はブロックＱが０でない変換係数を含む場合と、ブロックＰとブロックＱとが相異する動きベクトルを有するか、又は相異する参照ピクチャを有する場合を例として挙げたが、 その他にも多様な場合に０でないｂＳが設定できる。例えば、（ｉ）ブロックＰとブロックＱとが互いに異なる個数の動きベクトルを有する場合、（ii）ブロックＰに使われた動きベクトルと、ブロックＱに使われた動きベクトルとの垂直成分の間の絶対値の差又は水平成分の間の絶対値の差が１／４ピクセル単位で４以上の差がある場合にもｂＳ［filterDir］［ｘＥk］［ｙＥj］値を１に設定することができる。
【０２６０】
（５）（１）から（４）でない場合、すなわちブロック歪み除去フィルタを適用しない場合には、ｂＳ［filterDir］［ｘＥk］［ｙＥj］値を０に設定する。
【０２６１】
一方、ｂＳ値を５種類の値のうち、いずれか一つの値によって導出する方法の場合とは異なり、図１２から図１４のように、ｂＳ値を３種類の値のうち、いずれか一つの 値によって導出して、より低い複雑度で簡単にｂＳを導出することもできる。
【０２６２】
次に、ｂＳ値を３種類の値のうち、いずれか一つの値によって導出する方法の一例を説明する。
【０２６３】
＜ｂＳを３種類の値のうち、いずれか一つの値によって導出する方法１＞
【０２６４】
ｂＳが決定されるエッジを特定する。ｂＳを決定するエッジの特定は、図６から図１０を参照して説明した方法のうち、いずれか一つを用いて実行できる。
【０２６５】
ｂＳが決定されるエッジの特定によってｂＳを決定する基準位置（ｘＥk、ｙＥj）及びｂＳを決定するエッジの左右のサンプルであるｐ0及びｑ0、ブロック歪み除去フィルタの方向などが導出される。
【０２６６】
導出されたブロック歪み除去フィルタ方向によって境界フィルタ処理強度を表す変数ｂＳ［filterDir］［ｘＥk］［ｙＥj］が決定される。例えば、filterDirの値が１であるとき、垂直方向のフィルタ処理を指示し、したがって、水平エッジに対するｂＳが導出される。filterDirの値が０であるとき、水平方向のフィルタ処理を指示し、したがって、垂直エッジに対するｂＳが導出される。ｘＥk及びｙＥjはｂＳを決定するエッジを特定する。例えば、ｂＳを決定するエッジは、水平エッジの場合、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj−１）に設定されるｐ0と、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）に設定されるｑ0との間の境界に特定することができ、垂直エッジの場合、（ｘＣ＋ｘＥk−１、ｙＣ＋ｙＥj）に設定されるｐ0と、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）に設定されるｑ0との間の境界に特定できる。
【０２６７】
ｂＳ［filterDir］［ｘＥk］［ｙＥj］の値は、次のとおり導出できる。
【０２６８】
（１）サンプルｐ0又はｑ0がイントラ予測モードで符号化されたＣＵに属するとき、ｂＳ、すなわちｂＳ［filterDir］［ｘＥk］［ｙＥj］値は２に設定される。
【０２６９】
（２）ｂＳ決定対象であるブロックエッジがＴＵエッジであり、サンプルｐ0又はｑ0が０でない変換係数レベル（level）を含むＴＵに属するとき、ｂＳ［filterDir］［ｘＥk］［ｙＥj］値は１に設定される。
【０２７０】
（３）その他、ブロック歪み除去フィルタが適用される場合のｂＳ［filterDir］［ｘＥk］［ｙＥj］値は１に設定される。例えば、先のｂＳ決定木構造に関する図面と関連して例として説明した（ｉ）ｐ0を含むＰＵ又はｑ0を含むＰＵが相異する参照ピクチャを有するか、又は相異する個数の動きベクトルを有する場合、（ii）ｐ0を含むＰＵに使われた動きベクトルと、ｑ0を含むＰＵに使われた動きベクトルとの垂直成分の間の絶対値の差又は水平成分の間の絶対値の差が１／４ピクセル単位で４以上の差がある場合、（iii）二つの動きベクトルがｐ0を含むＰＵで使われ、二つの動きベクトルがｑ0を含むＰＵで使われるとき、同一の参照ピクチャに対応する少なくとも一つの動きベクトル対に対し、動きベクトルの垂直成分の間の絶対値の差又は水平成分の間の絶対値の差が１／４ピクセル単位で４以上の差がある場合などに、ｂＳ［filterDir］［ｘＥk］［ｙＥj］値を１に設定することができる。
【０２７１】
（４）（１）から（３）でない場合、すなわちブロック歪み除去フィルタを適用しない場合には、ｂＳ［filterDir］［ｘＥk］［ｙＥj］値を０に設定する。
【０２７２】
一方、上述したように、４ステップでｂＳを導出せず、同一のｂＳ値は同一のステップで導出されるようにすることができる。ｂＳ値を３種類のｂＳ値のうち、いずれか一つの値に導出する方法の他の例は、次のとおりである。
【０２７３】
＜ｂＳを３種類の値のうち、いずれか一つの値によって導出する方法２＞
【０２７４】
ｂＳが決定されるエッジを特定する。ｂＳを決定するエッジの特定は、図６から図１０を参照して説明した方法のうち、いずれか一つを用いて実行できる。
【０２７５】
ｂＳが決定されるエッジの特定によってｂＳを決定する基準位置（ｘＥk、ｙＥj）及びｂＳを決定するエッジの左右のサンプルであるｐ0及びｑ0、ブロック歪み除去フィルタの方向などが導出される。
【０２７６】
導出されたブロック歪み除去フィルタ方向によって、境界フィルタ処理強度を表す変数ｂＳ［filterDir］［ｘＥk］［ｙＥj］が決定される。例えば、filterDirの値が１であるとき、垂直方向のフィルタ処理を指示し、したがって、水平エッジに対するｂＳが導出される。filterDirの値が０であるとき、水平方向のフィルタ処理を指示し、したがって、垂直エッジに対するｂＳが導出される。ｘＥk及びｙＥjはｂＳを決定するエッジを特定する。例えば、ｂＳを決定するエッジは、水平エッジの場合、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj−１）に設定されるｐ0と、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）に設定されるｑ0との間の境界に特定することができ、垂直エッジの場合、（ｘＣ＋ｘＥk−１、ｙＣ＋ｙＥj）に設定されるｐ0と、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）に設定されるｑ0との間の境界に特定できる。
【０２７７】
ｂＳ［filterDir］［ｘＥk］［ｙＥj］の値は、次のとおり導出できる。
【０２７８】
（１）サンプルｐ0又はｑ0がイントラ予測モードで符号化されたＣＵに属するとき、ｂＳ、すなわちｂＳ［filterDir］［ｘＥk］［ｙＥj］値は２に設定される。
【０２７９】
（２）その他、ブロック歪み除去フィルタが適用される場合のｂＳ［filterDir］［ｘＥk］［ｙＥj］値は１に設定される。例えば、ｂＳ決定対象であるブロックエッジがＴＵエッジであり、かつ（ｉ）サンプルｐ0又はｑ0が０でない変換係数レベル（level）を含むＴＵに属する場合、（ii）ｐ0を含むＰＵ及びｑ0を含むＰＵが相異する参照ピクチャを有するか、又は相異する個数の動きベクトルを有する場合、（iii）ｐ0を含むＰＵに使われた動きベクトルと、ｑ0を含むＰＵに使われた動きベクトルとの垂直成分の間の絶対値の差、又は水平成分の間の絶対値の差が１／４ピクセル単位で４以上の差がある場合、（iv）二つの動きベクトルがｐ0を含むＰＵで使われ、二つの動きベクトルがｑ0を含むＰＵで使われるとき、同一の参照ピクチャに対応する少なくとも一つの動きベクトル対に対し、動きベクトルの垂直成分の間の絶対値の差、又は水平成分の間の絶対値の差が１／４ピクセル単位で４以上の差がある場合などにｂＳ［filterDir］［ｘＥk］［ｙＥj］値を１に設定することができる。
【０２８０】
（３）（１）及び（２）でない場合、すなわちブロック歪み除去フィルタを適用しない場合には、ｂＳ［filterDir］［ｘＥk］［ｙＥj］値を０に設定する。
【０２８１】
一方、ｂＳ値が１によって導出される場合をｂＳ決定対象であるブロックエッジがＴＵのエッジである場合に限定しないこともある。ｂＳ値を３種類の値のうち、いずれか一つの値によって導出する方法の更に他の例は、次のとおりである。
【０２８２】
＜ｂＳを３種類の値のうち、いずれか一つの値によって導出する方法３＞
【０２８３】
ｂＳが決定されるエッジを特定する。ｂＳを決定するエッジの特定は、図６から図１０を参照して説明した方法のうち、いずれか一つを用いて実行できる。
【０２８４】
ｂＳが決定されるエッジの特定によってｂＳを決定する基準位置（ｘＥk、ｙＥj）及びｂＳを決定するエッジの左右のサンプルであるｐ0及びｑ0、ブロック歪み除去フィルタの方向などが導出される。
【０２８５】
導出されたブロック歪み除去フィルタ方向によって、境界フィルタ処理強度を表す変数ｂＳ［filterDir］［ｘＥk］［ｙＥj］が決定される。例えば、filterDirの値が１であるとき、垂直方向のフィルタ処理を指示し、したがって、水平エッジに対するｂＳが導出される。filterDirの値が０であるとき、水平方向のフィルタ処理を指示し、したがって、垂直エッジに対するｂＳが導出される。ｘＥkとｙＥjはｂＳを決定するエッジを特定する。例えば、ｂＳを決定するエッジは、水平エッジの場合、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj−１）に設定されるｐ0と、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）に設定されるｑ0との間の境界に特定することができ、垂直エッジの場合、（ｘＣ＋ｘＥk−１、ｙＣ＋ｙＥj）に設定されるｐ0と、（ｘＣ＋ｘＥk、ｙＣ＋ｙＥj）に設定されるｑ0との間の境界に特定できる。
【０２８６】
ｂＳ［filterDir］［ｘＥk］［ｙＥj］の値は、次のとおり導出できる。
【０２８７】
（１）サンプルｐ0又はｑ0がイントラ予測モードで符号化されたＣＵに属するとき、ｂＳ、すなわちｂＳ［filterDir］［ｘＥk］［ｙＥj］値は２に設定される。
【０２８８】
（２）その他、ブロック歪み除去フィルタが適用される場合のｂＳ［filterDir］［ｘＥk］［ｙＥj］値は１に設定される。例えば、（ｉ）ｂＳ決定対象であるブロックエッジがＴＵエッジであり、かつサンプルｐ0又はｑ0が０でない変換係数レベル（level）を含むＴＵに属する場合、（ii）ｐ0を含むＰＵ又はｑ0を含むＰＵが相異する参照ピクチャを有するか、相異する個数の動きベクトルを有する場合、（iii）ｐ0を含むＰＵに使われた動きベクトルとｑ0を含むＰＵに使われた動きベクトルの垂直成分の間の絶対値の差、又は水平成分の間の絶対値の差が１／４ピクセル単位で４以上の差がある場合、（iv）二つの動きベクトルがｐ0を含むＰＵで使われ、二つの動きベクトルがｑ0を含むＰＵで使われるとき、同一の参照ピクチャに対応する少なくとも一つの動きベクトル対に対し、動きベクトルの垂直成分の間の絶対値の差、又は水平成分の間の絶対値の差が１／４ピクセル単位で４以上の差がある場合などに、ｂＳ［filterDir］［ｘＥk］［ｙＥj］値を１に設定することができる。
【０２８９】
（３）（１）及び（２）でない場合、すなわちブロック歪み除去フィルタを適用しない場合には、ｂＳ［filterDir］［ｘＥk］［ｙＥj］値を０に設定する。
【０２９０】
ｂＳを３種類の値のうち、いずれか一つの値によって導出する方法でｐ0を含むＰＵとｑ0を含むＰＵとで参照ピクチャが相異するということは、どんな参照ピクチャリストを使用するか、参照ピクチャリストの参照ピクチャインデクスが同一であるかにかかわらず、どんなピクチャが参照されたかによって決定される。
【０２９１】
一方、今までは輝度サンプルについて説明したが、上述したように、導出したｂＳを色差サンプルにも適用することができる。
【０２９２】
説明したように、ｂＳ値の個数を減らして複雑度を低めて、簡単にｂＳを導出する場合には、色差成分に対するブロック歪み除去フィルタ方法も修正適用する必要がある。
【０２９３】
ｂＳを５種類の値のうち、いずれか一つの値によって導出し、これを用いて色差成分（色差サンプル）に対するブロック歪み除去フィルタを適用する方法の一例は、次のとおりである。
【０２９４】
＜色差サンプルにブロック歪み除去フィルタを適用する方法１＞
【０２９５】
変数ｔcを特定する。変数ｔcは量子化程度に従うブロック歪みを定量化する値であって、tcoffsetに基づいて導出されるか、又は他のブロック除去パラメータに基づいて所定のテーブル上でマップされるように設定できる。
【０２９６】
例えば、後述する＜表１＞のように、量子化パラメータＱ、ブロック歪み除去フィルタを適用するかを決定する基準値としてのβなどによってｔcが決定できる。
【０２９７】
色差サンプルのエッジに対し、＜ｂＳを５種類の値のうち、いずれか一つの値によって導出する方法＞で説明したように、ｂＳを０から４までの値によって導出したとき、ｔc値を次のとおり特定できる。（１）ｂＳ値が２より大きいとき、概略（round）値を考慮したブロックＰ及びブロックＱに対する量子化パラメータの平均値をｑＰLとするとき、ｔcは量子化パラメータＱ＝Ｃｌｉｐ（０、５５、ｑＰL）に対応する値に決定される。（２）ｂＳ値が２以下であるとき、ｔcは量子化パラメータＱ＝ｑＰLに対応する値に決定される。
【０２９８】
＜表１＞は、Ｑ、β、ｔc間の対応関係の一例を表すものである。
【表１】
2020174413.tif 000003
【０２９９】
この際、ｔc＝ｔc´*（1＜＜（BitDepthY-8））、β＝β´*（1＜＜（BitDepthY-8））の関係であってよい。
【０３００】
色差サンプルに対するブロック歪み除去フィルタが＜表１＞の値に基づいて特定されたパラメータを用いて実行できる。
【０３０１】
まず、垂直エッジに対し、各色差サンプル位置（ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ）を基準に、次のようにブロック歪み除去フィルタを実行する。この際、ｋ＝０，．．．，３である。
【０３０２】
（１）垂直エッジを境界にするブロックＰとブロックＱにおいて、ブロックＰの色差サンプルｐi及びブロックＱの色差サンプルｑi（ｉ＝０,１）はｑi＝ｓ’［ｘＣ＋ｘＢ＋ｉ、ｙＣ＋ｙＢ＋ｋ］、ｐｉ＝ｓ’［ｘＣ＋ｘＢ−ｉ−１、ｙＣ＋ｙＢ＋ｋ］によって導出される。
【０３０３】
（２）ｂＳが２より大きいとき、（ｉ）色差サンプル値ｐi及びｑi（ｉ＝０,１）に対してフィルタ処理手続が実行される。（ii）フィルタ処理されたサンプル値ｐ0’及びｑ0’がサンプル配列内で対応するサンプル位置を次のとおり置き換える。ｓ’［ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ］＝ｑ0’、ｓ’［ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ］＝ｐ0’
【０３０４】
水平エッジに対し、次のように色差成分のブロック歪み除去フィルタを実行する。この際、ｋ＝０，．．．，３である。
【０３０５】
（１）ブロックＰの色差サンプルｐi及びブロックＱの色差サンプルｑi（ｉ＝０,１）はｑi＝ｓ’［ｘＣ＋ｘＢ＋ｉ、ｙＣ＋ｙＢ＋ｋ］、ｐi＝ｓ’［ｘＣ＋ｘＢ−ｉ−１、ｙＣ＋ｙＢ＋ｋ］によって導出される。
【０３０６】
（２）ｂＳが２より大きいとき、（ｉ）色差サンプルｐi及びｑi（ｉ＝０,１）に対してフィルタ処理手続が実行される。（ii）フィルタ処理されたサンプルｐ0’とｑ0’がサンプル配列内で対応するサンプルを次のとおり置き換える。ｓ’［ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ］＝ｑ0’、ｓ’［ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ］＝ｐ0’
【０３０７】
水平エッジに対しては、次のようにブロック歪み除去フィルタを実行する。
【０３０８】
（１）水平エッジを境界にするブロックＰ及びブロックＱにおいて、ブロックＰの色差サンプルｐi及びブロックＱの色差サンプルｑi（ｉ＝０,１）は、ｑi＝ｓ’［ｘＣ＋ｘＢ＋ｋ、ｙＣ＋ｙＢ＋ｉ］、ｐi＝ｓ’［ｘＣ＋ｘＢ＋ｋ、ｙＣ＋ｙＢ−ｉ−１］によって導出される。この際、ｋは０，．．．，３の値を有することができる。
【０３０９】
（２）ｂＳが２より大きいとき、（ｉ）各色差サンプルｐi及びｑi（ｉ＝０,１）に対してブロック歪み除去フィルタを適用する。（ii）フィルタ処理されたサンプルｐ0’及びｑ0’がサンプル配列内で対応するサンプルを次のとおり置き換える。ｓ’［ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ］＝ｑ0’、ｓ’［ｘＣ＋ｘＢ−１、ｙＣ＋ｙＢ＋ｋ］＝ｐ0’
【０３１０】
上述したフィルタ処理過程において、ｂＳの値が２より大きいとき、フィルタ処理されるサンプルは、次の＜式５＞のように導出される。
【０３１１】
＜式５＞
Δ = Clip3(-tC, tC, ( ( ( ( q0 - p0 ) ＜＜ 2 ) + p1 - q1 + 4 ) ＞＞ 3 ) )
p0’ = Clip1C( p0 + Δ )
q0’ = Clip1C( q0 - Δ )
【０３１２】
一方、ｂＳ値の個数を減らして複雑度を低めて、簡単に導出したｂＳを適用する場合には、色差サンプルに対するブロック歪み除去フィルタ方法を次のように適用することができる。
【０３１３】
＜色差サンプルにブロック歪み除去フィルタを適用する方法２＞
【０３１４】
変数ｔcを特定する。変数ｔcは量子化程度に従うブロック歪みを定量化する値であって、tcoffsetに基づいて導出されるか、又は他のブロック除去パラメータに基づいて所定のテーブル上でマップされるように設定できる。
【０３１５】
例えば、後述する＜表２＞のように、量子化パラメータＱ、ブロック歪み除去フィルタを適用するか否かを決定する基準値としてのβなどによってｔcが決定できる。
【０３１６】
色差サンプルのエッジに対し、＜ｂＳを３種類の値のうち、いずれか一つの値によって導出する方法＞で説明したように、ｂＳを０から２までの値によって導出したとき、ｔc値を次のとおり特定できる。（１）ｂＳ値が２より大きいとき、概略値を考慮したブロックＰ及びブロックＱに対する量子化パラメータの平均値をｑＰLとするとき、ｔcは量子化パラメータＱ＝Ｃｌｉｐ（０,５５、ｑＰL）に対応する値に決定される。（２）ｂＳ値が２以下であるとき、ｔcは量子化パラメータＱ＝ｑＰLに対応する値に決定される。
【０３１７】
＜表２＞は、Ｑ、β、ｔc間の対応関係の一例を示すものである。
【表２】
2020174413.tif 000004
【０３１８】
この際、ｔc＝ｔc´*（1＜＜（BitDepthY-8））、β＝β´*（1＜＜（BitDepthY-8））の関係にある。
【０３１９】
色差サンプルに対するブロック歪み除去フィルタも＜表２＞の値に基づいて特定されたパラメータを用いて実行できる。
【０３２０】
まず、垂直エッジに対し、各色差サンプル位置（ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ）を基準に次のようにブロック歪み除去フィルタを実行する。この際、ｋ＝０，．．．，３である。
【０３２１】
（１）垂直エッジを境界にするブロックＰ及びブロックＱにおいて、ブロックＰの色差サンプルｐi及びブロックＱの色差サンプルｑi（ｉ＝０,１）はｑi＝ｓ’［ｘＣ＋ｘＢ＋ｉ、ｙＣ＋ｙＢ＋ｋ］、ｐi＝ｓ’［ｘＣ＋ｘＢ−ｉ−１、ｙＣ＋ｙＢ＋ｋ］によって導出される。
【０３２２】
（２）ｂＳが１より大きいとき、（ｉ）色差サンプル値ｐi及びｑi（ｉ＝０,１）に対してフィルタ処理手続が実行される。（ii）フィルタ処理されたサンプル値ｐ0’及びｑ0’がサンプル配列内で対応するサンプル位置を次のとおり置き換える。ｓ’［ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ］＝ｑ0’、ｓ’［ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ］＝ｐ0’
【０３２３】
水平エッジに対し、次のように色差成分のブロック歪み除去フィルタを実行する。この際、ｋ＝０，．．．，３である。
【０３２４】
（１）ブロックＰの色差サンプルｐi及びブロックＱの色差サンプルｑi（ｉ＝０,１）はｑi＝ｓ’［ｘＣ＋ｘＢ＋ｉ、ｙＣ＋ｙＢ＋ｋ］、ｐi＝ｓ’［ｘＣ＋ｘＢ−ｉ−１、ｙＣ＋ｙＢ＋ｋ］によって導出される。
【０３２５】
（２）ｂＳが１より大きいとき、（ｉ）色差サンプルｐi及びｑi（ｉ＝０,１）に対してフィルタ処理手続が実行される。（ii）フィルタ処理されたサンプルｐ0’及びｑ0’がサンプル配列内で対応するサンプルを次のとおり置き換える。ｓ’［ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ］＝ｑ0’、ｓ’［ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ］＝ｐ0’
【０３２６】
水平エッジに対しては、次のようにブロック歪み除去フィルタを実行する。
【０３２７】
（１）水平エッジを境界にするブロックＰ及びブロックＱにおいて、ブロックＰの色差サンプルｐi及びブロックＱの色差サンプルｑi（ｉ＝０,１）はｑi＝ｓ’［ｘＣ＋ｘＢ＋ｋ、ｙＣ＋ｙＢ＋ｉ］、ｐi＝ｓ’［ｘＣ＋ｘＢ＋ｋ、ｙＣ＋ｙＢ−ｉ−１］によって導出される。この際、ｋは０，．．．，３の値を有することができる。
【０３２８】
（２）ｂＳが１より大きいとき、（ｉ）各色差サンプルｐi及びｑi（ｉ＝０,１）に対してブロック歪み除去フィルタを適用する。（ii）フィルタ処理されたサンプルｐ0’及びｑ0’がサンプル配列内で対応するサンプルを次のとおり置き換える。ｓ’［ｘＣ＋ｘＢ、ｙＣ＋ｙＢ＋ｋ］＝ｑ0’、ｓ’［ｘＣ＋ｘＢ−１、ｙＣ＋ｙＢ＋ｋ］＝ｐ0’
【０３２９】
上述したフィルタ処理過程において、ｂＳの値が１より大きいとき、フィルタ処理されるサンプルは、次の＜式６＞のように導出される。
【０３３０】
＜式６＞
Δ = Clip3(-tC, tC, ( ( ( ( q0 - p0 ) ＜＜ 2 ) + p1 - q1 + 4 ) ＞＞ 3 ) )
p0’ = Clip1C( p0 + Δ )
q0’ = Clip1C( q0 - Δ )
【０３３１】
一方、ブロック境界でブロック歪みを誘発する主原因のうちの一つは、ブロックベースの動き補償である。これを克服するために重複ブロック動き保証（Overlapped Block Motion Compensation、ＯＢＭＣ）が使用できる。
【０３３２】
ＯＢＭＣを使用する場合には、上述したｂＳ決定過程もＯＢＭＣに合うように修正する必要がある。例えば、ブロック間の動き情報が異なるとき、ブロック歪みが甚だしいことがあるため、ｂＳの値０及び１を決定する基準のうちの一つは動き情報の類似性ということができる。しかしながら、ＯＢＭＣ技術を使用すると、動き補償を実行する領域の境界でブロック歪みが減る。結果的に、不要なブロック歪み除去フィルタを減らすことができるが、これを反映してｂＳ決定プロセス（ｂＳ決定木）を修正する必要がある。
【０３３３】
図１５は、ＯＭＢＣを適用する場合に適用されるｂＳ決定木の一例であって、ｂＳを決定する方法を概略的に説明する順序図である。
【０３３４】
図１５を参照すると、まずブロックＰ及び／又はブロックＱがイントラ符号化されているか否かを判断する（Ｓ１５００）。
【０３３５】
ブロックＰ及び／又はブロックＱがイントラ符号化されている場合には、ブロックＱの境界、すなわちブロックＰとブロックＱとの境界が符号化ブロックの境界であるか否かを判断する（Ｓ１５１０）。この際、符号化ブロックということはＣＵ及びＬＣＵを含む。
【０３３６】
ステップＳ１５１０において、ブロックＰとブロックＱとの境界が符号化ブロックの境界の場合には、ブロックＰとブロックＱとの間の境界に対するｂＳの値をｂＳ４（例えば、ｂＳ４＝４）に決定する（Ｓ１５２０）。
【０３３７】
ステップＳ１５２０において、ブロックＰとブロックＱとの境界が符号化ブロックの境界でない場合には、ブロックＰとブロックＱとの間の境界に対するｂＳの値をｂＳ３（例えば、ｂＳ３＝３）に決定する（Ｓ１５３０）。
【０３３８】
ステップＳ１５００において、ブロックＰ及びブロックＱがイントラ符号化されていない場合には、ブロックＰとブロックＱとが単一符号化ブロック（例えば、ＣＵ）内の矩形又は非対称パーティション（Ｐartition）内にあるか否かを判断する（Ｓ１５４０）。
【０３３９】
ステップＳ１５４０において、ブロックＰとブロックＱとが単一符号化ブロック（例えば、ＣＵ）内の矩形又は非対称パーティション内にない場合には、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含むか否かを判断する（Ｓ１５５０）。この際、変換係数は、逆量子化が適用される前の変換係数、又は逆量子化が適用された後の変換係数であってよい。
【０３４０】
ステップＳ１５５０において、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含む場合には、ブロックＰとブロックＱとの間の境界に対するｂＳをｂＳ２（例えば、ｂＳ２＝２）に決定する（Ｓ１５６０）。
【０３４１】
ステップＳ１５５０において、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含まないときは、ブロックＰとブロックＱとが相異する参照ピクチャ又は動きベクトルを有するか否かを判断する（Ｓ１５７０）。
【０３４２】
ステップＳ１５７０において、ブロックＰとブロックＱとが相異する参照ピクチャ又は動きベクトルを有する場合には、ブロックＰとブロックＱとの間の境界に対するｂＳをｂＳ１（例えば、ｂＳ１＝１）に決定する（Ｓ１５８０）。
【０３４３】
その他の場合、すなわちブロック除去フィルタを適用しない場合に該当するとき、ｂＳをｂＳ０（例えば、ｂＳ０＝０）に設定する（Ｓ１５９０）。ｂＳをｂＳ０に設定する場合は、ステップＳ１５４０でブロックＰとブロックＱとが単一符号化ブロック（例えば、ＣＵ）内の矩形又は非対称パーティション内にない場合、又はステップＳ１５７０でブロックＰとブロックＱとが相異する参照ピクチャ又は動きベクトルを有しない場合を含む。
【０３４４】
図１５の例でも、先のｂＳ決定に関する例と同様に、ｂＳ４＞ｂＳ３＞ｂＳ２＞ｂＳ１＞ｂＳ０の関係を維持する。したがって、ｂＳ０〜ｂＳ４の値を上記の例及び図示したように、ｂＳ４＝４、ｂＳ３＝３、ｂＳ２＝２、ｂＳ１＝１、ｂＳ０＝０に設定することができる。
【０３４５】
また、先の例と同様に、ｂＳ決定木を用いてブロック歪み除去フィルタに必要な変数の値を設定することもできる。図１５では、最も大きい２ｂＳ値に対してはtcoffsetを特定値（例えば、２）に設定し、その他のｂＳ値に対してはtcoffsetを０に設定する一例を簡単に示している。
【０３４６】
図１５の例では、ブロックＰとブロックＱとが同一の符号化ブロック（例えば、ＣＵ）内にあり、かつ矩形パーティション（例えば、予測ブロック、ＰＵなど）内にあるか、又は非対称パーティション（例えば、予測ブロック、ＰＵなど）内にあるとき、ブロックＰとブロックＱとの間の境界に対するｂＳの値を０に決定することができる。
【０３４７】
これとは異なり、ブロックＰとブロックＱとが同一の符号化ブロック（例えば、ＣＵ）内にあり、かつ矩形パーティション（例えば、予測ブロック、ＰＵなど）内にあるか、非対称パーティション（例えば、予測ブロック、ＰＵなど）内にある場合、ブロックＰの動き情報とブロックＱの動き情報との差が大きいとき、ブロックＰとブロックＱとの間の境界に対するｂＳ値を１に決定し、ブロックＰの動き情報とブロックＱの動き情報との差が小さいとき、ブロックＰとブロックＱとの間の境界に対するｂＳを０に決定することもできる。
【０３４８】
図１６は、ＯＭＢＣを適用する場合に適用されるｂＳ決定木の他の例であって、ｂＳを決定する方法を概略的に説明する順序図である。
【０３４９】
図１６を参照すると、まずＰ及び／又はＱがイントラ符号化されているか否かを判断する（Ｓ１６００）。
【０３５０】
ブロックＰ及び／又はブロックＱがイントラ符号化されている場合には、ブロックＱの境界、すなわちブロックＰとブロックＱとの境界が符号化ブロックの境界であるか否かを判断する（Ｓ１６１０）。この際、符号化ブロックとはＣＵ及びＬＣＵを含む。
【０３５１】
ステップＳ１６１０において、ブロックＰとブロックＱとの境界が符号化ブロックの境界である場合には、ブロックＰとブロックＱとの間の境界に対するｂＳの値をｂＳ４（例えば、ｂＳ４＝４）に決定する（Ｓ１６２０）。
【０３５２】
ステップＳ１６２０において、ブロックＰとブロックＱとの境界が符号化ブロックの境界でない場合には、ブロックＰとブロックＱとの間の境界に対するｂＳの値をｂＳ３（例えば、ｂＳ３＝３）に決定する（Ｓ１６３０）。
【０３５３】
ステップＳ１６００において、ブロックＰ及びブロックＱがイントラ符号化されていない場合には、ブロックＰとブロックＱとが単一符号化ブロック（例えば、ＣＵ）内の矩形又は非対称パーティション（Ｐartition）内にあるか否かを判断する（Ｓ１６４０）。
【０３５４】
ステップＳ１６４０において、ブロックＰとブロックＱとが単一符号化ブロック（例えば、ＣＵ）内の矩形又は非対称パーティション内にないとき、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含むか否かを判断する（Ｓ１６５０）。この際、変換係数は、逆量子化が適用される前の変換係数、又は逆量子化が適用された後の変換係数であってよい。
【０３５５】
ステップＳ１６５０において、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含む場合には、ブロックＰとブロックＱとの間の境界に対するｂＳをｂＳ２（例えば、ｂＳ２＝２）に決定する（Ｓ１６６０）。
【０３５６】
ステップＳ１６４０において、ブロックＰとブロックＱとが単一符号化ブロック（例えば、ＣＵ）内の矩形又は非対称パーティション内にある場合、又はステップＳ１６５０において、ブロックＰ及び／又はブロックＱが係数（０でない変換係数）を含まない場合は、ブロックＰとブロックＱとが相異する参照ピクチャ又は動きベクトルを有するか否かを判断する（Ｓ１６７０）。
【０３５７】
ステップＳ１６７０において、ブロックＰとブロックＱとが相異する参照ピクチャ又は動きベクトルを有する場合には、ブロックＰとブロックＱとの間の境界に対するｂＳをｂＳ１（例えば、ｂＳ１＝１）に決定する（Ｓ１６８０）。
【０３５８】
その他の場合、すなわちブロック除去フィルタを適用しない場合に該当するとき、ｂＳをｂＳ０（例えば、ｂＳ０＝０）に設定する（Ｓ１６９０）。
【０３５９】
図１６の例でも、先のｂＳ決定に関する例と同様に、ｂＳ４＞ｂＳ３＞ｂＳ２＞ｂＳ１＞ｂＳ０の関係を維持する。したがって、ｂＳ０〜ｂＳ４の値の例及び図示したように、ｂＳ４＝４、ｂＳ３＝３、ｂＳ２＝２、ｂＳ１＝１、ｂＳ０＝０に設定することができる。
【０３６０】
上述したように、図１６の例ではブロックＰとブロックＱとが同一の符号化ブロック（例えば、ＣＵ）内にあり、かつ矩形パーティション（例えば、予測ブロック、ＰＵなど）内にあるか、又は非対称パーティション（例えば、予測ブロック、ＰＵなど）内にあるとき、ブロックＰとブロックＱとの間の境界に対するｂＳ値をｂＳ１（例えば、ｂＳ＝１）に決定することができる。
【０３６１】
また、先の例と同様に、ｂＳ決定木を用いてブロック歪み除去フィルタに必要な変数の値を設定することもできる。図１６では、最も大きい２ｂＳ値に対してはtcoffsetを特定値（例えば、２）に設定し、その他のｂＳ値に対してはtcoffsetを０に設定する一例を簡単に示している。
【０３６２】
一方、ブロックＰ及び／又はブロックＱがイントラ符号化されている場合、ｂＳの値を区分する必要がないこともある。例えば、図５、図１５、又は図１６の例のように、Ｉスライス（イントラ符号化されたスライス）で対象境界が符号化ブロック（例えば、ＣＵ）の境界であるかを判断して、符号化ブロックの境界であるとき、ｂＳを４に決定し、その他の境界である場合は、ｂＳを３に決定するとき、すべてのＩスライスに対して結局ｂＳの値は３又は４に帰結される。
【０３６３】
これと関連して、図１２から図１４のように、ｂＳ決定木を修正して複雑度を低める方法が適用されるとき、結局ｂＳの値は０より大きいか、又は１や２より大きいかを考慮して、単純に適用される可能性もある。したがって、ｂＳの値が３か４かを区別する必要がないこともある。
【０３６４】
図１７は、ｂＳを決定してブロック歪み除去フィルタを適用する方法の一例を概略的に説明する図である。
【０３６５】
図１７を参照すると、ブロック歪み除去フィルタを適用するためにｂＳを決定し（Ｓ１７１０）、決定されたｂＳによってブロック基盤のフィルタ処理オン／オフを決定し（Ｓ１７２０）、所定のｂＳに対して強フィルタを適用するか、弱フィルタを適用するかを決定して（Ｓ１７３０）、フィルタ処理を実行する（Ｓ１７４０）。
【０３６６】
図１７の例において、ブロック除去フィルタを適用する方法は、先の図３に基づいて説明した方法と同一又は類似することを確認することができる。
【０３６７】
この際、ｂＳ決定ステップ（Ｓ１７１０）では、図５、図１５、又は図１６のように、ブロックＰ及び／又はブロックＱがイントラ符号化されている場合、対象境界が符号化ブロックの境界であるかを区分してｂＳ値を決定することもできる。
【０３６８】
図１８は、ｂＳを決定してブロック歪み除去フィルタを適用する方法の他の例を概略的に説明する図である。図１８では図１７とは異なり、ブロックＰ及び／又はブロックＱがイントラ符号化されている場合（Ｉスライスの場合）に、ｂＳを追加的に区分して決定しない。
【０３６９】
図１８を参照すると、ブロック歪み除去フィルタを適用するためにブロックＰ及び／又はブロックＱがイントラ符号化されているか（Ｉスライスであるか）を判断する（Ｓ１８１０）。
【０３７０】
ブロックＰ及び／又はブロックＱがイントラ符号化されていない場合は、図１７の例のように、ｂＳを決定する一般的なステップを実行する（Ｓ１８２０）。
【０３７１】
ブロックＰ及び／又はブロックＱがイントラ符号化されている場合（Ｉスライスの場合）は、図１７の例とは異なり、ｂＳを一つの値（例えば、４）に決定する（Ｓ１８３０）。
【０３７２】
次に、決定されたｂＳによってブロック基盤のフィルタ処理オン／オフを決定し（Ｓ１８４０）、所定のｂＳに対して強フィルタを適用するか、弱フィルタを適用するかを決定して（Ｓ１４５０）、フィルタ処理を実行する（Ｓ１８６０）。
【０３７３】
図１８の例の以外に、先に説明したブロック歪み除去フィルタの方法を修正して適用するもう一つの方法として、図６の例で説明した代表ｂＳを用いる方法を修正してブロック歪み除去フィルタを実行することを考慮することができる。
【０３７４】
図６の例では、８×８ピクセルブロック単位でブロック歪み除去フィルタを実行する場合、４×４ピクセル単位で決定される二つのｂＳのうち、大きい値を有するｂＳを代表ｂＳに用いる方法を説明した。
【０３７５】
図１９は、代表ｂＳを決定する方法の一例を概略的に説明する順序図である。
【０３７６】
図１９を参照すると、代表ｂＳを選定するために、ブロック歪み除去フィルタの単位ブロックでｂＳ１とｂＳ２とのサイズを比較する（Ｓ１９１０）。
【０３７７】
ステップＳ１９１０において、ｂＳ１がｂＳ２より大きいとき、代表ｂＳをｂＳ１に決定する（Ｓ１９２０）。反対に、ステップＳ１９１０でｂＳ２がｂＳ１より大きいとき、代表ｂＳをｂＳ２に決定する（Ｓ１９３０）。
【０３７８】
ｂＳ１及びｂＳ２は、ブロック歪み除去フィルタの単位ブロックで二つの垂直エッジに対するｂＳ、又は２水平エッジに対するｂＳであってよい。図１５の方法は、垂直エッジに対するブロック歪み除去フィルタ過程で実行されて垂直エッジに対する代表ｂＳを決定することに用いられた後に、水平エッジに対するブロック歪み除去フィルタ過程で実行されて水平エッジに対する代表ｂＳを決定することに利用できる。
【０３７９】
フィルタ処理部は、決定された代表ｂＳを用いてブロック歪み除去フィルタを実行することができる。
【０３８０】
図１９の例は、図６の例のように、大きい値を有するｂＳを代表ｂＳに用いる方法を説明している。これと異なり、過度なブロック歪み除去フィルタを減らし、フィルタ処理の演算量を減少させるために、代表ｂＳを決定する方法を異にすることもできる。
【０３８１】
図２０は、代表ｂＳを決定する方法の他の例を概略的に説明する順序図である。
【０３８２】
図２０を参照すると、代表ｂＳを選定するために、ブロック歪み除去フィルタの単位ブロックでｂＳ１とｂＳ２とのサイズを比較する（Ｓ２０１０）。
【０３８３】
ステップＳ２０１０において、ｂＳ１がｂＳ２より小さいとき、代表ｂＳをｂＳ１に決定する（Ｓ２０２０）。反対に、ステップＳ２０１０でｂＳ２がｂＳ１より小さいとき、代表ｂＳをｂＳ２に決定する（Ｓ２０３０）。
【０３８４】
ｂＳ１及びｂＳ２は、ブロック歪み除去フィルタの単位ブロックで二つの垂直エッジに対するｂＳ、又は二つの水平エッジに対するｂＳであってよい。図２０の方法も垂直エッジに対するブロック歪み除去フィルタ過程で実行されて垂直エッジに対する代表ｂＳを決定することに利用された後に、水平エッジに対するブロック歪み除去フィルタ過程で実行されて水平エッジに対する代表ｂＳを決定することに利用できる。
【０３８５】
決定された代表ｂＳを用いてフィルタ処理部はブロック歪み除去フィルタを実行することができる。
【０３８６】
一方、図１７及び図１８で説明したように、ｂＳ値を５種類の値のうち、いずれか一つの値によって導出して適用しても、実際にブロック歪み除去フィルタを実行する場合には、ｂＳ値が０より大きいか、ｂＳ値が２より大きいかだけを判断できる。したがって、３種類の区別されるｂＳ値だけあるとき、ピクセル又はブロックの特性によってブロック歪み除去フィルタを効果的に実行することができる。
【０３８７】
図２１は、ｂＳ決定木（ｂＳ決定方法）を簡素化する他の方法を概略的に説明する順序図である。
【０３８８】
図２１を参照すると、まずＰ及び／又はＱがイントラ符号化されているか否かを判断する（Ｓ２１１０）。
【０３８９】
ブロックＰ及び／又はブロックＱがイントラ符号化されている場合には、ブロックＰとブロックＱとの間の境界に対するｂＳの値を２に決定する（Ｓ２１２０）。
【０３９０】
ブロックＰ及び／又はブロックＱがイントラ符号化されていない場合は、ブロックＰとブロックＱとが０でない係数（変換係数）を含むか、ブロックＰとブロックＱとが相異する参照ピクチャを有するか、又はブロックＰとブロックＱとが相異する動きベクトルを有するか否かを判断する（Ｓ２１３０）。
【０３９１】
ステップＳ２１３０において、ブロックＰとブロックＱとが０でない係数（変換係数）を含むか、ＰとＱとが相異する参照ピクチャを有するか、又はブロックＰとブロックＱとが相異する動きベクトルを有する場合には、ブロックＰとブロックＱとの間の境界に対するｂＳの値を１に設定する（Ｓ２１４０）。
【０３９２】
その他の場合、すなわちブロック除去フィルタを適用しない場合に該当するとき、ｂＳの値を０に設定する（Ｓ２１４０）。
【０３９３】
言い換えると、ブロック歪み除去フィルタを適用しない場合であるｂＳ値が０の場合は、ＰとＱとがすべてインタ予測モードで符号化され、動き情報が類似な場合である。この際、動き情報が類似するということは、参照ピクチャが同一であり、動きベクトルの各成分間の差が４より小さい場合（例えば、動きベクトルのｘ成分の間の差が４より小さく、ｙ成分の間の差も４より小さい場合）である。
【０３９４】
この際、ブロックＰとブロックＱとに対する符号化ブロックフラグ（Coded Block Flag、ｃｂｆ）が０でない場合、すなわちブロックＰとブロックＱとに０でない変換係数が存在する場合にも、ブロックＰとブロックＱとがインタ予測モードに予測され、動き情報が類似すると、ｂＳ値を０に決定することができる。その他の場合、すなわち動き情報が類似しないか、又はブロックＰ及び／又はブロックＱがイントラ予測モードで符号化されている場合などにおいて、ｂＳは１又は２に決定できる。
【０３９５】
しかしながら、ブロックＰとブロックＱとに０でない変換係数が存在するとき（ｃｂｆの値が０でないとき）、ブロックＰとブロックＱとの動き情報が類似してｂＳが０に決定されてもブロック歪み除去フィルタの適用が必要であってよい。０でない変換係数が存在する場合に動き情報が類似してブロック歪み除去フィルタの適用が排除されると、ユーザの主観的な損失及びデータの客観的な損失が発生することがあるためである。
【０３９６】
したがって、次のようにｂＳの値が０になる場合を厳格に判断することもできる。
【０３９７】
例えば、上述したように、図２１ではエッジを介した二つのブロックＰ及びＱの参照ピクチャが同一であり、ブロックＰとブロックＱとの動きベクトル成分の間の差が４より小さい場合を動き情報が類似な場合と判断した。したがって、ブロックＰの動きベクトルＭＶPとブロックＱの動きベクトルＭＶQに対し、一つの成分の間の差が４以上になってもｂＳは０でなくなる。すなわち、ＭＶPのｘ成分ＭＶp0とＭＶQのｘ成分ＭＶQ0との間の差が４以上、又はＭＶPのｙ成分ＭＶP1とＭＶQのｙ成分ＭＶQ1との間の差が４以上であるとき、ｂＳは０でない値、例えば１に設定される。
【０３９８】
したがって、動きベクトルの成分の間の差を４より小さいか、又は４と等しいか４より大きいかによって判断せず、任意のしきい値を設定した後、動きベクトルの成分の間の差をしきい値と比較するようにすることもできる。例えば、ＭＶPのｘ成分ＭＶp0とＭＶQのｘ成分ＭＶQ0との間の差がしきい値Ｔｈ0以上、又はＭＶPのｙ成分ＭＶP1とＭＶQのｙ成分ＭＶQ1との間の差がしきい値Ｔｈ1以上であるとき、ｂＳを１（ブロックＰ及び／又はブロックＱがイントラ予測モードで符号化されている場合は２）に設定することができる。この際、Ｔｈ0とＴｈ1は同一でありえる。例えば、しきい値が小さいとき、ｂＳの値が０になる場合が減るため、しきい値Ｔｈ0／Ｔｈ1を４より小さい値（２又は３）に設定されて、ｂＳの値が０になる場合を減らすことができる。
【０３９９】
＜式７＞は、上記の方法によって、ｂＳ値を０にするか、１にするかを決定する方法の一例を表すものである。
【０４００】
＜式７＞
(1) pcMVP0 -=  pcMVQ0;   pcMVP0 -=  pcMVQ0;
(2) uiBs = (pcMVP0.getAbsHor() ＞= th) | (pcMVP0.getAbsVer() ＞= th) |
(pcMVP1.getAbsHor() ＞= th) | (pcMVP1.getAbsVer() ＞= th);
【０４０１】
＜式３＞において、（１）はブロックＰの動きベクトルとブロックＱの動きベクトルに対してｘ成分の間の差とｙ成分の間の差を求めるものであり、（２）は各成分の差がしきい値より大きいか否かを判断するものである。
【０４０２】
一方、ブロック歪み除去フィルタの複雑度を低めるために、tc_offsetを除去することもできる。
【０４０３】
先の色差成分に対するブロック歪み除去フィルタ方法で説明したように、概略値を考慮したブロックＰ及びブロックＱに対する量子化パラメータの平均値をｑＰLとするとき、（１）ｂＳ値が所定の値（例えば、２又は１）より大きいとき、ｔcは量子化パラメータＱ＝Ｃｌｉｐ（０,５５、ｑＰL）に対応する値に決定される。（２）ｂＳ値が所定の値（例えば、２又は１）以下であるとき、ｔcは量子化パラメータＱ＝ｑＰLに対応する値に決定できる。
【０４０４】
この際、量子化パラメータＱ値とｔcとの間の対応関係は、表を通じて特定できる。
【０４０５】
＜表３＞は、ブロック除去パラメータ（Ｑ、ｔc、β）の間の対応関係の一例を表すものである。
【表３】
2020174413.tif 000005
【０４０６】
＜表３＞では、説明の便宜のために、β及びｔcで表したが、本発明はこれに限定されない。例えば、＜表３＞は＜表１＞及び＜表２＞のように、β’及びｔc’で表すこともでき、この場合、ｔc及びβはｔc＝ｔc´*（1＜＜（BitDepthY-8））、β＝β´*（1＜＜（BitDepthY-8））を用いてｔc’及びβ’から導出できる。
【０４０７】
上述したように、ｔc及びβは強フィルタ処理を適用するかを決定する基準であってよい。例えば、エッジから最も近いＰの３個のサンプルを順にｐ0、Ｐ1、Ｐ2とし、エッジから最も近いＱの３個のサンプルを順にｑ0、ｑ1、ｑ2としたとき、（１）ａｂｓ（ｐ2−２ｐ1＋ｐ0）＋ａｂｓ（ｑ2−２ｑ1＋ｑ0）＝ｄＰｑとすると、ｄＰｑが（β＞＞２）より小さいか否かを判断することができる。（２）ｐ0、ｐ1、ｐ2及びｑ0、ｑ1、ｑ2以外のサンプル、例えばｐ3及びｑ3を更に考慮してａｂｓ（ｐ3−ｐ0）＋ａｂｓ（ｑ0−ｑ3）が（β＞＞３）より小さいか否かを判断することができる。（３）また、境界の左右の二つのサンプルｐ0及びｑ0に対し、ａｂｓ（ｐ0−ｑ0）が（５*ｔc＋１）＞＞１より小さいか否かを判断することができる。上述したように、ブロック内で複数の列又は行を取って判断を実行することができる。例えば、垂直エッジに対しては複数の行を選択して各々の行に対して（１）から（３）を判断することができ、水平エッジに対しては複数の列を選択して各々の列に対して（１）から（３）を判断することができる。
【０４０８】
垂直エッジの場合、複数の行に対し、（１）から（３）の結果がすべて基準より小さいと判断されるとき、当該エッジに強フィルタ処理を適用するようにすることができる。水平エッジの場合、複数の列に対し、（１）から（３）の結果がすべて基準より小さいと判断されるとき、当該エッジに強フィルタ処理を適用するようにすることができる。
【０４０９】
ブロックＰに対する輝度サンプルの量子化パラメータＱＰPと、ブロックＱに対する輝度サンプルの量子化パラメータＱＰQとを用いて量子化パラメータに関する変数ｑＰLをｑＰL＝（（ＱＰQ＋ＱＰP＋１）＞＞１）として定義することができる。
【０４１０】
ｂＳを５個の値のうち、いずれか一つの値によって導出するとき、ｂＳが２より大きいとき、量子化パラメータＱ＝Ｃｌｉｐ３（０、５５、ｑＰL＋２）に設定することができ、量子化パラメータＱとβ値に対応するｔc値とを＜表３＞から取得することができる。この際、ｂＳが２より小さいか等しいとき、Ｑ＝ｑＰLに設定し、量子化パラメータＱとβ値に対応するｔc値とを＜表３＞から取得することができる。
【０４１１】
一方、ｂＳを３個の値のうち、いずれか一つの値によって導出する場合（例えば、図１２から図１４の例）には、量子化Ｑ値をｂＳ値にかかわらず、一つの値に決定した後、決定された量子化パラメータＱ値とβ値に対応するｔc値を＜表３＞から取得することができる。例えば、ｂＳ値を３個の値（０,１,２）のうち、いずれか一つの値によって導出する場合には、量子化パラメータＱ＝Ｃｌｉｐ３（０、５５、ｑＰL＋２*ｂＳ−２）に決定し、決定された量子化パラメータＱ値とβ値に対応するｔc値を＜表３＞から取得することができる。
【０４１２】
一方、量子化パラメータＱ値を決定するとき、ｂＳ値、ブロックＰ及びブロックＱの量子化パラメータ並びにｂＳ値の他にtc_offsetの値を考慮して、より正確なｔc値を取得することもできる。例えば、デコーダはスライスヘッダから転送されるtc_offset情報を反映して量子化パラメータＱ値を決定することができる。
【０４１３】
スライスヘッダから転送されるtc_offset情報は、スライスごとに最適化されたブロック除去フィルタを適用するために転送される値であって、エッジに隣接したｑサンプルを含むスライスに対するtc_offset情報として、slice_tc_offset_div2と表すことができる。slice_tc_offset_div2は、ｔcに対するデフォルトブロック除去パラメータオフセットの値を特定する。
【０４１４】
この場合、量子化パラメータＱ＝Ｃｌｉｐ３（０,５５、ｑＰL＋２*ｂＳ−２＋slice_tc_offset_div2＜＜１）に設定され、変数ｔcは設定された量子化パラメータＱ値及びβ値に基づいて決定できる。例えば、ｔcは量子化パラメータＱ及びβ値に基づいて、＜表３＞のように量子化パラメータＱ、β、ｔcの間の関係を規定するテーブルを用いて決定できる。
【０４１５】
したがって、スライスヘッダから転送されるtc_offset情報（slice_tc_offset_div2）に基づいてＱ値を上述したように決定し、やはり符号化装置から転送されたβ値及びＱ値に基づいてｔc値を決定することができる。ｔc値は、上述したように、量子化程度に従うブロック歪みを定量化する値であって、ブロック歪み除去フィルタを適用する場合にフィルタ処理されたピクセル値の範囲（クリップ範囲）を決定する基準として使われることもあり、又は強フィルタ処理を適用するか弱フィルタ処理を適用するかを決定する基準として使われることもある。
【０４１６】
図２２は、本発明に従って映像を符号化する方法を概略的に説明する順序図である。
【０４１７】
図２２を参照すると、符号化装置は入力された映像を分割し、現在ブロックに対する予測を実行する（Ｓ２２１０）。現在ブロックに対する予測は符号化装置の予測部で実行することができる。予測部は、現在ブロックに対してイントラ予測を実行することもでき、インタ予測を実行することもできる。イントラ予測を実行するか、インタ予測を実行するかはレート歪み最適化（Rate Distortion Optimization、ＲＤＯ）などを考慮して決定できる。
【０４１８】
スキップモードが適用されないときは、予測部は予測信号を生成し、原映像信号と予測信号との差である残差信号を生成することができる。
【０４１９】
符号化装置は、残差信号を変換及び量子化することができる（Ｓ２２２０）。残差信号の変換は変換部で実行することができ、変換された信号（例えば、変換係数）の量子化は量子化部で実行できる。
【０４２０】
変換及び量子化された信号は、エントロピ符号化過程を経て転送できる。
【０４２１】
符号化装置は、変換及び量子化された信号を逆量子化及び逆変換して現在ブロックを復元する（Ｓ２２３０）。逆量子化及び逆変換された信号は残差信号と加算されて原映像信号に復元される。
【０４２２】
符号化装置は、復元された信号にブロック歪み除去フィルタを適用することができる（Ｓ２２４０）。復元された信号はブロック歪み除去フィルタによって原映像に一層近い信号に復元できる。ブロック歪み除去フィルタは、フィルタ部で実行することができ、フィルタ部はブロック歪み除去フィルタを適用した後、ＳＡＯを適用することもできる。
【０４２３】
ブロック歪み除去フィルタの具体的な方法は、図面と共に前述したとおりである。
【０４２４】
ブロック歪み除去フィルタが適用された信号は、復号ピクチャバッファ（ＤＰＢ）のようなメモリに記憶され、他のブロック又は他のピクチャの予測に参照できる。
【０４２５】
ここでは、予測によって残差信号を生成し転送することを説明したが、スキップモードが適用される場合には残差信号を生成／転送しない。
【０４２６】
図２３は、本発明に従って映像を復号する方法を概略的に説明する順序図である。
【０４２７】
図２３を参照すると、復号装置は受信したビットストリームをエントロピ復号し、現在ブロックに対する予測を実行する（Ｓ２３１０）。現在ブロックに対する予測は、復号装置内の予測部で実行することができる。予測部は、符号化装置から通知された情報に基づいて現在ブロックに対するインタ予測を実行したり、イントラ予測を実行したりすることができる。予測部は、予測によって現在ブロックに対する予測信号（予測ブロック）を生成する。
【０４２８】
復号装置は、現在ブロックに対する予測に基づいて現在ブロックを復元する（Ｓ２３２０）。復号装置は、符号化装置から受信したビットストリームから逆量子化／逆変換を通じて残差信号（残差ブロック）を生成し、予測信号（予測ブロック）と残差信号（予測ブロック）とを加えて復元信号（復元ブロック）を生成することができる。スキップモードが適用された場合には、残差信号が転送されず、予測信号を復元信号にすることができる。
【０４２９】
復号装置は、復元信号（復元ブロック）にブロック歪み除去フィルタを適用する（Ｓ２３３０）。ブロック歪み除去フィルタは、復号装置内のフィルタ部で実行できる。フィルタ部は、復元ブロックにブロック歪み除去フィルタを適用して復元ブロックを原映像ブロックに一層近く修正する。
【０４３０】
ブロック歪み除去フィルタの具体的な内容は、先の図面と共に詳細に説明したとおりである。
【０４３１】
フィルタ部は、ブロック歪み除去フィルタを適用した後、符号化装置から受信した情報に基づいて復元ブロックにＳＡＯを適用することもできる。
【０４３２】
フィルタ部を経て復元された信号は、ＤＰＢのようなメモリに記憶されて他のブロック又は他のピクチャの予測に参照することができ、復元映像として出力することもできる。
【０４３３】
図２２及び図２３では、発明の理解を助けるために、本発明に従うブロック歪み除去フィルタが符号化／復号過程で適用することを概略的に説明するためのものであり、先の図面と共に詳細に説明した符号化／復号過程のプロセスが共に適用できることに留意する。
【０４３４】
図２４は、本発明に従ってｂＳを導出する方法の一例を概略的に説明する順序図である。
【０４３５】
図２４を参照すると、ｂＳを決定するための境界が導出される（Ｓ２４１０）。ｂＳを決定するための境界は、ブロック歪み除去フィルタを適用する単位ブロックの境界であってよい。又は、ｂＳを決定するための境界はｂＳを決定する単位ブロックの境界であってよい。又は、ｂＳを決定するための境界はブロック歪み除去フィルタを適用する単位ブロックの境界であり、かつｂＳを決定する単位ブロックの境界であってよい。
【０４３６】
ｂＳを決定するための境界が導出されるとき、ｂＳ設定単位別にｂＳを設定する（Ｓ２４２０）。ｂＳを決定するための境界がブロック歪み除去フィルタを適用する単位ブロックの境界の場合、ｂＳを決定するための境界であり、かつｂＳ決定単位ブロックの境界に該当するエッジごとにｂＳが設定できる。ｂＳを決定するための境界がｂＳを決定する単位ブロックの境界の場合、ｂＳを決定する境界であり、かつブロック歪み除去フィルタを適用する単位ブロックの境界に該当するエッジに対してｂＳが設定できる。ｂＳを決定するための境界がブロック歪み除去フィルタを適用する単位ブロックの境界であり、かつｂＳを決定する単位ブロックの境界の場合、ｂＳを決定する境界に対してｂＳが設定できる。
【０４３７】
ｂＳを設定する方法は、上述したように、５種類のｂＳ値のうち、いずれか一つの値に当該境界に対するｂＳを導出することもでき、３種類のｂＳ値のうち、いずれか一つの値に当該境界に対するｂＳを導出することもできる。その他、複雑度を低めてｂＳを導出する方法が適用できる。ｂＳを導出／決定する具体的な方法は、上述したとおりである。
【０４３８】
図２４では、説明の便宜のために、ｂＳ決定単位ブロックの境界であり、かつブロック歪み除去フィルタ処理単位ブロックの境界であるエッジに対してｂＳを決定することを説明したが、本発明はこれに限定されず、前述した代表値を決定する方法などを用いてｂＳを決定することもできる。
【０４３９】
上述した例示的なシステムにおいて、方法は一連のステップ又はブロックであって、順序度に基づいて説明されているが、本発明はステップの順序に限定されるものではなく、あるステップは上述したものと異なるステップと異なる順序で、又は同時に発生することができる。また、上述した実施形態は多様な態様の例示を含む。したがって、本発明は以下の特許請求範囲内に属するすべての他の取替、修正、及び変更を含むことができる。
【０４４０】
今まで、本発明に関する説明において、一構成要素が他構成要素に“連結されて”いるとか、“接続されて”いると言及された時には、上記の一構成要素が他構成要素に直接的に連結されているとか、又は接続されていることもできるが、二つの構成要素の間に他の構成要素が存在することもできると理解されるべきである。一方、一構成要素が他構成要素に“直接連結されて”いるとか、“直接接続されて”いると言及された時には、二つの構成要素の間に他の構成要素が存在しないことと理解されるべきである。
【図１】
2020174413.tif 000006
【図２】
2020174413.tif 000007
【図３】
2020174413.tif 000008
【図４】
2020174413.tif 000009
【図５】
2020174413.tif 000010
【図６】
2020174413.tif 000011
【図７】
2020174413.tif 000012
【図８】
2020174413.tif 000013
【図９】
2020174413.tif 000014
【図１０】
2020174413.tif 000015
【図１１】
2020174413.tif 000016
【図１２】
2020174413.tif 000017
【図１３】
2020174413.tif 000018
【図１４】
2020174413.tif 000019
【図１５】
2020174413.tif 000020
【図１６】
2020174413.tif 000021
【図１７】
2020174413.tif 000022
【図１８】
2020174413.tif 000023
【図１９】
2020174413.tif 000024
【図２０】
2020174413.tif 000025
【図２１】
2020174413.tif 000026
【図２２】
2020174413.tif 000027
【図２３】
2020174413.tif 000028
【図２４】
2020174413.tif 000029
【手続補正書】
【提出日】令和2年7月30日(2020.7.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
復号装置によって行われるブロック歪み除去フィルタ処理方法であって、
ビットストリームから得られた情報に基づいて復元されたピクチャを導出するステップと、
ブロック歪み除去フィルタ処理を適用する単位ブロックであるブロック歪み除去フィルタ処理単位ブロックの境界を導出するステップと、
ブロック歪み除去フィルタ処理単位境界における予め定められた長さの対象境界に関する境界強度（ｂＳ）を設定するステップと、
前記ｂＳ値に基づいて前記ブロック歪み除去フィルタ処理単位境界に前記ブロック歪み除去フィルタ処理を適用するステップと、を有し、
前記ｂＳは、０、１及び２のうちの一つの値に設定され、
前記ブロック歪み除去フィルタ処理を適用するステップは、
前記設定されたｂＳ値が０より大きい場合、前記対象境界の特定の行又は特定の列上に位置する特定のサンプルに基づいて、前記ブロック歪み除去フィルタ処理を前記対象境界に適用しないか否かを決定するステップと、
前記ブロック歪み除去フィルタ処理を前記対象境界に適用するという決定に基づいて、強フィルタ処理又は弱フィルタ処理を適用するステップと、を有し、
前記ブロック歪み除去フィルタ処理単位ブロックは、変換ブロック又は予測ブロックを有し、
前記ブロック歪み除去フィルタ処理単位ブロックのサイズは、８×８ピクセルサイズであり、
前記ｂＳが設定される前記対象境界の長さは、４ピクセルの長さである、ブロック歪み除去フィルタ処理方法。
【請求項２】
前記ｂＳ値が０より大きく、前記ブロック歪み除去フィルタ処理が実行される場合、前記ブロック歪み除去フィルタ処理を適用するステップは、
前記強フィルタ処理及び前記弱フィルタ処理のいずれを適用するかを決定するステップをさらに有する、請求項１に記載の方法。
【請求項３】
前記特定のサンプルは、前記対象境界を２つのブロックの間の境界として有する前記２つのブロックのサンプルである、請求項１に記載の方法。
【請求項４】
前記ブロック歪み除去フィルタ処理単位ブロックの８ピクセルの長さの境界は、２つの４ピクセルの長さの対象境界と重複し、
前記２つの４ピクセルの長さの対象境界に関して、別個のｂＳが設定される、請求項１に記載の方法。
【請求項５】
符号化装置によって行われるブロック歪み除去フィルタ処理方法であって、
復元されたピクチャを導出するステップと、
ブロック歪み除去フィルタ処理を適用する単位ブロックであるブロック歪み除去フィルタ処理単位ブロックの境界を導出するステップと、
ブロック歪み除去フィルタ処理単位境界における予め定められた長さの対象境界に関する境界強度（ｂＳ）を設定するステップと、
前記ｂＳ値に基づいて前記ブロック歪み除去フィルタ処理単位境界に前記ブロック歪み除去フィルタ処理を適用するステップと、を有し、
前記ｂＳは、０、１及び２のうちの一つの値に設定され、
前記ブロック歪み除去フィルタ処理を適用するステップは、
前記設定されたｂＳ値が０より大きい場合、前記対象境界の特定の行又は特定の列上に位置する特定のサンプルに基づいて、前記ブロック歪み除去フィルタ処理を前記対象境界に適用しないか否かを決定するステップと、
前記ブロック歪み除去フィルタ処理を前記対象境界に適用するという決定に基づいて、強フィルタ処理又は弱フィルタ処理を適用するステップと、を有し、
前記ブロック歪み除去フィルタ処理単位ブロックは、変換ブロック又は予測ブロックを有し、
前記ブロック歪み除去フィルタ処理単位ブロックのサイズは、８×８ピクセルサイズであり、
前記ｂＳが設定される前記対象境界の長さは、４ピクセルの長さである、ブロック歪み除去フィルタ処理方法。
【請求項６】
前記ｂＳ値が０より大きく、前記ブロック歪み除去フィルタ処理が実行される場合、前記ブロック歪み除去フィルタ処理を適用するステップは、
前記強フィルタ処理及び前記弱フィルタ処理のいずれを適用するかを決定するステップをさらに有する、請求項５に記載の方法。
【請求項７】
前記特定のサンプルは、前記対象境界を２つのブロックの間の境界として有する前記２つのブロックのサンプルである、請求項５に記載の方法。
【請求項８】
前記ブロック歪み除去フィルタ処理単位ブロックの８ピクセルの長さの境界は、２つの４ピクセルの長さの対象境界と重複し、
前記２つの４ピクセルの長さの対象境界に関して、別個のｂＳが設定される、請求項５に記載の方法。