(57)【要約】【課題】符号量及び処理量の増大を抑制しつつ適切なフィルタ処理を行う。【解決手段】適応フィルタ１５０は、フィルタ形状を復号するフィルタ形状復号部１５１１、部分領域の各々を、グループである特性値分類領域に分類する領域構造復号部１５１２、特性値算出方法のタイプを復号する領域適応モード復号部１５１３、特性値分類領域に割り当てられるフィルタ係数群を復号するフィルタ係数復号部１５１４、フィルタ係数格納部１５１５、入力画像を構成する各単位領域を部分領域に分類する領域インデックス算出部１５２２、特性値分類領域に復号されたフィルタ係数群を割り付けるフィルタ係数割り付け部１５２３、各単位領域における出力画像の各画素値を、該単位領域に対して割り付けられたフィルタ係数群を用いてフィルタ処理を行うフィルタ部１５２４を備えている。【選択図】図２３
2014197722.tif 000002
【特許請求の範囲】
【請求項１】
複数の単位領域から構成される入力画像に作用し、各単位領域における出力画像の各画素値を、フィルタ形状により定まる参照画素と、該単位領域について割り付けられたフィルタ係数を用いて算出することによりフィルタ処理を行うフィルタ手段と、
上記単位領域の属性から、１つ以上の特性値算出方法で得られる特性値を用いて部分領域に分類する領域インデックス算出手段を備える画像フィルタ装置であって、
フィルタ形状に基づいて特性値算出方法を選択する手段、もしくは、特性値算出方法に基づいてフィルタ形状を選択する手段を備えることによって、
特定の特性値算出方法を用いる場合には、該特性値算出方法に対応する形状のフィルタ形状を用いてフィルタ処理を行うことを特徴とする画像フィルタ装置。
【請求項２】
上記フィルタ手段が用いるフィルタ形状は１つ以上の方向性を有し、上記領域インデックス算出方法は少なくとも１つの方向性を有する特性値算出方法を備え、所定の方向性を有する特性値算出方法を用いる場合には、該方向性に対応する方向性を有するフィルタ形状を用いてフィルタ処理を行うことを特徴とする請求項１に記載の画像フィルタ装置。
【請求項３】
フィルタ形状と領域インデックス算出方法の方向性は、斜め方向または水平垂直方向であり、斜め方向の領域インデックス算出方法を用いる場合には、斜め方向のフィルタ形状を適用し、水平垂直方向の領域インデックス算出方法を用いる場合には、水平垂直方向のフィルタ形状を適用することを特徴とする請求項２に記載の画像フィルタ装置。
【請求項４】
フィルタ形状を復号するフィルタ形状復号手段と、
領域適応モードを復号する領域適応モード復号手段と、
上記フィルタ形状復号手段が復号したフィルタ形状と、上記領域適応モードが復号した領域適応モードを用いて、領域インデックス算出方法を選択する特徴量モード算出手段をさらに備える請求項１から３の何れか１項に記載の画像フィルタ装置。
【請求項５】
上記復号した領域適応モードが、上記単位領域の画素から算出するモードである場合において、復号したフィルタ形状の方向性に応じて、該方向性に対応する方向性を有する領域インデックス算出方法を用いることを特徴とする請求項４に記載の画像フィルタ装置。
【請求項６】
復号したフィルタ形状が斜め形状である場合には、斜め方向に対応する領域インデックス算出方法を用い、復号したフィルタ形状が水平垂直形状である場合には、水平垂直方向に対応する領域インデックス算出方法を用いることを特徴とする請求項５に記載の画像フィルタ装置。
【請求項７】
複数の単位領域から構成される入力画像に作用し、各単位領域における出力画像の各画素値を、フィルタ形状により定まる参照画素と、該単位領域について割り付けられたフィルタ係数を用いて算出することによりフィルタ処理を行うフィルタ手段と、
各単位領域を分類するための領域インデックスを、該単位領域の属性から算出される多次元の特性値から算出する領域インデックス算出手段と、
各領域インデックスと各フィルタインデックスとの対応関係を表すフィルタインデックステーブルを復号する領域構造復号手段と、
処理対象の単位領域である対象単位領域の領域インデックスと前記フィルタインデックステーブルとから該対象単位領域についてのフィルタインデックスを求めると共に、該対象単位領域に対して、該フィルタインデックスにより指定されるフィルタ係数を割り付けるフィルタ係数割り付け手段と
フィルタインデックス単位で、フィルタ形状を復号するフィルタ形状復号手段を備え、
該フィルタ手段は、復号されたフィルタ形状を用いてフィルタ処理を行うことを特徴とする画像フィルタ装置。
【請求項８】
各フィルタインデックスに対応するフィルタ係数群の各フィルタ係数を、符号化データを復号することにより得られたフィルタ係数残差に予測値を加算することによって復元するフィルタ係数復号手段を備え、
同じフィルタ形状を有する既に復号されたフィルタ係数群のフィルタ係数を予測値として用いることを特徴とする請求項７に記載の画像フィルタ装置。
【請求項９】
領域適応モードを復号する領域適応モード復号手段を備え、領域適応モードに対応した、フィルタ係数を用いることを特徴とする請求項１に記載の画像フィルタ装置。
【請求項１０】
領域適応モードは、少なくとも斜め方向もしくは水平垂直方向の領域インデックス算出方法に対応し、領域適応モードが斜め方向の領域インデックス算出方法を対応する場合には、斜め方向のフィルタ形状を適用し、水平垂直方向の領域インデックス算出方法に対応する場合には、水平垂直方向のフィルタ形状を適用することを特徴とする請求項９に記載の画像フィルタ装置。
【請求項１１】
領域適応モードは、少なくとも、領域の座標を用いて領域分類を行うモード（ＲＡモード）と、領域の画素を用いて領域分類を行うモード（ＢＡモード）を備え、
該領域適応モードが領域の座標を用いるモードにおいては、フィルタインデックス単位で、フィルタ形状を復号し、該領域適応モードが領域の画素を用いるモードにおいては、フィルタインデックスのグループ単位で、フィルタ形状を復号することを特徴とする画像フィルタ装置。
【請求項１２】
符号化データを復号し、フィルタ後の復号画像を生成する復号装置であって、
請求項１から１１の何れか１項に記載の画像フィルタ装置と、
各単位領域における予測画像を、上記画像フィルタ装置が生成した出力画像を参照して生成する予測画像生成手段と、を備え、
上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と、上記符号化データから復号された残差画像とを加算することによって得られた復号画像を入力画像とし、出力画像として上記フィルタ後の復号画像を生成するものである、
ことを特徴とする復号装置。
【請求項１３】
符号化対象画像と予測画像との残差画像を符号化することによって符号化データを生成する符号化装置であって、
請求項１から１１の何れか１項に記載の画像フィルタ装置と、
各単位領域における上記予測画像を、上記画像フィルタ装置が生成した出力画像を参照して生成する予測画像生成手段と、
を備え、
上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と上記残差画像とを加算することによって得られる復号画像を入力画像とし、出力画像を生成するものである、
ことを特徴とする符号化装置。
【請求項１４】
複数の単位領域から構成される入力画像に作用し、各単位領域における出力画像の各画素値を、フィルタ形状により定まる参照画素と、該単位領域について割り付けられたフィルタ係数を用いて算出することによりフィルタ処理を行うフィルタ手段と、
各単位領域を分類するための分類パラメータ（領域インデックス）を、該単位領域の属性から算出される多次元の特性値から算出する領域分類手段（領域インデックス算出手段）を備え、
上記フィルタ手段は、２つ以上のフィルタ形状から１つのフィルタ形状を用いてフィルタ処理を行うフィルタ手段であり、上記領域インデックス算出手段は、２つ以上の領域インデックス算出方法を備え、
特定の領域インデックス算出方法を用いる場合には、該領域インデックス方法に対応する特定のフィルタ形状を用いてフィルタ処理を行うことを特徴とする画像フィルタ装置
によって参照される符号化データのデータ構造であって、
上記フィルタ形状と、
上記フィルタ係数と
を含んでいることを特徴とする符号化データのデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像のフィルタリングを行う画像フィルタ装置に関する。また、そのような画像フィルタを備えている符号化装置、および、復号装置に関する。また、そのような復号装置によって復号される符号化データのデータ構造に関する。
【背景技術】
【０００２】
動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置（符号化装置）、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置（復号装置）が用いられている。具体的な動画像符号化方式としては、例えば、Ｈ．２６４／ＭＰＥＧ−４．ＡＶＣに採用されている方式、ＶＣＥＧ（Video Coding Expert Group）における共同開発用コーデックで
あるＫＴＡソフトウェアに採用されている方式、その後継コーデックであるＴＭｕＣ（Test Model under Consideration）ソフトウェアに採用されている方式、及び、ＨＭ（HEVC  TestModel）ソフトウェアに採用されている方式などが挙げられる。
【０００３】
このような符号化方式において、動画像を構成する画像（ピクチャ）は、画像を分割することにより得られるスライス、スライスを分割することにより得られる最大符号化単位（LCU:Largest Coding Unit、ツリーブロックとも呼ばれる）、最大符号化単位を分割す
ることにより得られる符号化単位（CU:Coding Unit、符号化ノードとも呼ばれる）、及び、符号化単位を分割することより得られるブロックおよびパーティションからなる階層構造により管理され、多くの場合、ブロックを最小単位として符号化される。
【０００４】
また、このような符号化方式においては、通常、入力画像を符号化／復号化することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像と入力画像との差分データが符号化される。また、予測画像の生成方法としては、画面間予測（インター予測）、および、画面内予測（イントラ予測）と呼ばれる方法が知られている。
【０００５】
イントラ予測においては、同一フレーム内の局所復号画像に基づいて、当該フレームにおける予測画像が順次生成される。具体的には、イントラ予測においては、通常、予測単位（例えば、ブロック）毎に、予め定められた予測方向（予測モード）群に含まれる予測方向から何れかの予測方向が選択されると共に、局所復号画像における参照画素の画素値を、選択された予測方向に外挿することによって、予測対象領域上の予測画素値が生成される。また、インター予測においては、フレーム全体が復号された参照フレーム（復号画像）内の参照画像に対し、動きベクトルを用いた動き補償を適用することによって、予測対象フレーム内の予測画像が予測単位（例えば、ブロック）毎に生成される。
【０００６】
非特許文献１には、２つの異なるフィルタ形状を切り替える技術が開示されている。さらに、非特許文献１では、非特許文献２で用いられている領域分類手法が用いられている。具体的には、水平方向及び垂直方向の座標に応じて、復号画像を複数の領域に分割し、領域毎に設定されたフィルタ係数を用いる手法が開示されＲＡモードと呼ばれる。また、同文献には、領域および領域周辺の画素から算出される活性度及び方向性に応じて、復号画像を複数の領域に分割し、領域毎に設定されたフィルタ係数を用いる方法が開示されＢＡモードと呼ばれる。同文献では、ＲＡモードとＢＡモードを符号化データ中のフラグ（特徴量モード）により切り替える方法が開示されている。
【０００７】
このような適応フィルタを備えた符号化装置および復号装置は、復号画像に対して当該適応フィルタによりフィルタ処理を施して得られるフィルタ済みの復号画像を参照して予測画像を生成することにより、予測精度の向上および符号化効率の向上を図ることができる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】「JCTVC-F303」,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 6th Meeting: Torino, Italy,13-22, July, 2011
【非特許文献２】「JCTVC-E603」,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 5th Meeting: Geneva, CH, 16-23, March, 2011
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、非特許文献１に開示された方法では、領域に応じて適したフィルタ形状が異なるにも関わらず、十分に活かされていないという課題があった。すなわち、非特許文献２に開示されている特徴量モードおよび領域のマージにより設定される領域分類とフィルタ形状は独立に設定されるものであり、領域分類とフィルタ形状の関係が活かされていない。
【００１０】
本発明は、上記の問題に鑑みてなされたものであり、符号量及び処理量の増大を抑えつつ、特徴量によって分類される領域に適したフィルタ形状を用いることにより、符号化効率を向上させることのできる適応フィルタを実現することにある。
【課題を解決するための手段】
【００１１】
上記の問題を解決するために、本発明に係る画像フィルタ装置は、複数の単位領域から構成される入力画像に作用し、各単位領域における出力画像の各画素値を、フィルタ形状により定まる参照画素と、該単位領域について割り付けられたフィルタ係数を用いて算出することによりフィルタ処理を行うフィルタ手段と、上記単位領域の属性から、１つ以上の特性値算出方法で得られる特性値を用いて部分領域に分類する領域インデックス算出手段を備える画像フィルタ装置であって、フィルタ形状に基づいて特性値算出方法を選択する手段、もしくは、特性値算出方法に基づいてフィルタ形状を選択する手段を備えることによって、特定の特性値算出方法を用いる場合には、該特性値算出方法に対応する形状のフィルタ形状を用いてフィルタ処理を行うことを特徴とする。
【００１２】
上記のように構成された本発明に係る画像フィルタ装置によれば、特性値算出方法に対応したフィルタ形状を用いることができる。特性値算出方法に応じて、領域分類が変化し、各領域に適したフィルタ形状が変化する。よって、特性値算出方法に適したフィルタ形状を用いることにより、高い効果の適応フィルタを適用することができる。
【００１３】
上記フィルタ手段が用いるフィルタ形状は１つ以上の方向性を有し、上記領域インデックス算出方法は少なくとも１つの方向性を有する特性値算出方法を備え、所定の方向性を有する特性値算出方法を用いる場合には、該方向性に対応する方向性を有するフィルタ形状を用いてフィルタ処理を行うことを特徴とする。
【００１４】
フィルタ形状と領域インデックス算出方法の方向性は、斜め方向または水平垂直方向であり、斜め方向の領域インデックス算出方法を用いる場合には、斜め方向のフィルタ形状を適用し、水平垂直方向の領域インデックス算出方法を用いる場合には、水平垂直方向のフィルタ形状を適用することを特徴とする。
【００１５】
フィルタ形状を復号するフィルタ形状復号手段と、
領域適応モードを復号する領域適応モード復号手段と、
上記フィルタ形状復号手段が復号したフィルタ形状と、上記領域適応モードが復号した領域適応モードを用いて、領域インデックス算出方法を選択する特徴量モード算出手段をさらに備えることを特徴とする。
【００１６】
上記復号した領域適応モードが、上記単位領域の画素から算出するモードである場合において、復号したフィルタ形状の方向性に応じて、該方向性に対応する方向性を有する領域インデックス算出方法を用いることを特徴とする。
【００１７】
復号したフィルタ形状が斜め形状である場合には、斜め方向に対応する特性値算出方法を用い、復号したフィルタ形状が水平垂直形状である場合には、水平垂直方向に対応する特性値算出方法を用いることを特徴とする。
【００１８】
複数の単位領域から構成される入力画像に作用し、各単位領域における出力画像の各画素値を、フィルタ形状により定まる参照画素と、該単位領域について割り付けられたフィルタ係数を用いて算出することによりフィルタ処理を行うフィルタ手段と、
各単位領域を分類するための領域インデックスを、該単位領域の属性から算出される多次元の特性値から算出する領域インデックス算出手段と、
各領域インデックスと各フィルタインデックスとの対応関係を表すフィルタインデックステーブルを復号する領域構造復号手段と、
処理対象の単位領域である対象単位領域の領域インデックスと前記フィルタインデックステーブルとから該対象単位領域についてのフィルタインデックスを求めると共に、該対象単位領域に対して、該フィルタインデックスにより指定されるフィルタ係数を割り付けるフィルタ係数割り付け手段と
フィルタインデックス単位で、フィルタ形状を復号するフィルタ形状復号手段を備え、
該フィルタ手段は、復号されたフィルタ形状を用いてフィルタ処理を行うことを特徴とする。
【００１９】
以上の構成によって、各部分領域に適用されるフィルタ係数群に応じてフィルタ形状を変更することができる。領域の特性として、主要なエッジ（特定方向への強いエッジもしくは特定方向への多くのエッジ）が存在する場合には、特に適応フィルタの効果が大きい。領域の特性として斜めエッジである場合には、斜め形状のフィルタ形状が有効であり、領域の特性として水平エッジ及び垂直エッジである場合には、水平垂直形状のフィルタ形状が有効である、というように、画像の特性に応じて適したフィルタ形状が異なる。そのため、領域毎に適したフィルタ形状を用いることができるため、高い効果の適応フィルタを適用することができる。
【００２０】
各フィルタインデックスに対応するフィルタ係数群の各フィルタ係数を、符号化データを復号することにより得られたフィルタ係数残差に予測値を加算することによって復元するフィルタ係数復号手段を備え、
同じフィルタ形状を有する既に復号されたフィルタ係数群のフィルタ係数を予測値として用いることを特徴とする。
【００２１】
領域適応モードを復号する領域適応モード復号手段を備え、領域適応モードに対応した、フィルタ係数を用いることを特徴とする。
【００２２】
領域適応モードは、少なくとも斜め方向もしくは水平垂直方向の特性値算出方法に対応し、領域適応モードが斜め方向の特性値算出方法を対応する場合には、斜め方向のフィルタ形状を適用し、水平垂直方向の特性値算出方法に対応する場合には、水平垂直方向のフィルタ形状を適用することを特徴とする。
【００２３】
領域適応モードは、少なくとも、領域の座標を用いて領域分類を行うモード（ＲＡモード）と、領域の画素を用いて領域分類を行うモード（ＢＡモード）を備え、
該領域適応モードが領域の座標を用いるモードにおいては、フィルタインデックス単位で、フィルタ形状を復号し、該領域適応モードが領域の画素を用いるモードにおいては、フィルタインデックスのグループ単位で、フィルタ形状を復号することを特徴とする。
【００２４】
符号化データを復号し、フィルタ後の復号画像を生成する復号装置であって、
請求項１から１１の何れか１項に記載の画像フィルタ装置と、
各単位領域における予測画像を、上記画像フィルタ装置が生成した出力画像を参照して生成する予測画像生成手段と、を備え、
上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と、上記符号化データから復号された残差画像とを加算することによって得られた復号画像を入力画像とし、出力画像として上記フィルタ後の復号画像を生成するものである、
ことを特徴とする。
【００２５】
符号化対象画像と予測画像との残差画像を符号化することによって符号化データを生成する符号化装置であって、
請求項１から１１の何れか１項に記載の画像フィルタ装置と、
各単位領域における上記予測画像を、上記画像フィルタ装置が生成した出力画像を参照して生成する予測画像生成手段と、
を備え、
上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と上記残差画像とを加算することによって得られる復号画像を入力画像とし、出力画像を生成するものである、
ことを特徴とする。
【００２６】
複数の単位領域から構成される入力画像に作用し、各単位領域における出力画像の各画素値を、フィルタ形状により定まる参照画素と、該単位領域について割り付けられたフィルタ係数を用いて算出することによりフィルタ処理を行うフィルタ手段と、
各単位領域を分類するための分類パラメータ（領域インデックス）を、該単位領域の属性から算出される多次元の特性値から算出する領域分類手段（領域インデックス算出手段）を備え、
上記フィルタ手段は、２つ以上のフィルタ形状から１つのフィルタ形状を用いてフィルタ処理を行うフィルタ手段であり、上記領域インデックス算出手段は、２つ以上の特性値算出方法を備え、
特定の特性値算出方法を用いる場合には、該領域インデックス方法に対応する特定のフィルタ形状を用いてフィルタ処理を行うことを特徴とする画像フィルタ装置
によって参照される符号化データのデータ構造であって、
上記フィルタ形状と、
上記フィルタ係数と
を含んでいることを特徴とする。
【発明の効果】
【００２７】
以上のように、本発明に係る画像フィルタ装置は、複数の単位領域から構成される入力画像に作用し、各単位領域における出力画像の各画素値を、フィルタ形状により定まる参照画素と、該単位領域について割り付けられたフィルタ係数を用いて算出することによりフィルタ処理を行うフィルタ手段と、各単位領域を分類するための分類パラメータ（領域インデックス）を、該単位領域の属性から算出される多次元の特性値から算出する領域分類手段（領域インデックス算出手段）を備え、上記フィルタ手段は、２つ以上のフィルタ形状から１つのフィルタ形状を用いてフィルタ処理を行うフィルタ手段であり、上記領域インデックス算出手段は、２つ以上の特性値算出方法を備え、特定の特性値算出方法を用いる場合には、該領域インデックス方法に対応する特定のフィルタ形状を用いてフィルタ処理を行う。
【００２８】
上記のように構成された本発明に係る画像フィルタ装置によれば、特性値算出方法に対応したフィルタ形状を用いることができる。特性値算出方法に応じて、領域分類が変化し、各領域に適したフィルタ形状が変化する。よって、特性値算出方法に適したフィルタ形状を用いることにより、高い効果の適応フィルタを適用することができる。そのため、符号化効率が向上する。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態に係る動画像復号装置の構成を示すブロック図である。
【図２】第１の実施形態に係る符号化データの構成を説明するための図であって、（ａ）は、ピクチャＰＩＣＴを規定するピクチャレイヤを示しており、（ｂ）は、スライスＳを規定するスライスレイヤを示しており、（ｃ）は、ツリーブロック（Tree block）ＴＢＬＫを規定するツリーブロックレイヤを示しており、（ｄ）は、ツリーブロックＴＢＬＫに含まれる符号化単位（Coding Unit；ＣＵ）を規定するＣＵレイヤを示している。
【図３】本発明の実施形態に係る動画像符号化装置の構成を示すブロック図である。
【図４】第１の実施形態に係るフィルタ形状とＢＡ計算モードの関係を示す図である。
【図５】第１の実施形態に係るフィルタ形状とＢＡ計算モードの関係を示す図である。
【図６】本実施形態の領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeの組み合わせを示す図である。
【図７】第２の実施形態に係るフィルタ係数群とフィルタ形状の関係を示す図である。
【図８】第２の実施形態に係るフィルタ係数予測方法を示す図である。
【図１０】第３の実施形態に係る領域適応モードとフィルタ形状の関係を示す図である。
【図９】第３の実施形態に係る領域適応モードとフィルタ形状の関係の別の例を示す図である。
【図１１】フィルタ係数復号部１７７１の構成を示すブロック図である。
【図１２】第４の実施形態に係る特性領域別フィルタ形状の関係を示す図である。
【図１３】本発明の実施形態のフィルタ形状を示す図である。
【図１４】本発明の実施形態のフィルタ形状の組み合わせを示す図である。
【図１５】第１及び第３の実施形態に係る領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeと、特徴量モードalf_feature_modeの関係を示す図である。
【図１６】第２の実施形態に係る領域適応モードalf_region_adaptation_flagと、特徴量モードalf_feature_modeの関係を示す図である。
【図１７】本実施形態の実施形態に係る領域インデックス算出部の構成を示すブロック図である。
【図１８】第１の実施形態に係るフィルタパラメータＦＰ＃１に含まれる各シンタックスを示す図である。
【図１９】第２の実施形態に係るフィルタパラメータＦＰ＃３に含まれる各シンタックスを示す図である。
【図２０】第３の実施形態に係るフィルタパラメータＦＰ＃５に含まれる各シンタックスを示す図である。
【図２１】第３の実施形態の変形例に係るフィルタパラメータＦＰ＃７に含まれる各シンタックスを示す図である。
【図２２】領域構造を示すシンタックスalf_filter_patternを説明する図である。
【図２３】第１の実施形態に係る動画像復号装置の備える適応フィルタの構成を示すブロック図である。
【図２４】第１の実施形態に係る動画像符号化装置の備える適応フィルタの構成を示すブロック図である。
【図２５】第２の実施形態に係る動画像復号装置の備える適応フィルタの構成を示すブロック図である。
【図２６】第２の実施形態に係る動画像符号化装置の備える適応フィルタの構成を示すブロック図である。
【図２７】第３の実施形態に係る動画像復号装置の備える適応フィルタの構成を示すブロック図である。
【図２８】第３の実施形態に係る動画像符号化装置の備える適応フィルタの構成を示すブロック図である。
【図２９】第３の実施形態の変形例に係る動画像復号装置の備える適応フィルタの構成を示すブロック図である。
【図３０】第３の実施形態の変形例に係る動画像符号化装置の備える適応フィルタの構成を示すブロック図である。
【図３１】本発明の実施形態に係る特性値算出方法を説明する図である。
【図３２】本発明の第１の実施形態に係る領域適応モードとフィルタ形状の関係を示す図である。
【発明を実施するための形態】
【００３０】
〔実施形態１〕
以下では、本発明の第１の実施形態について、特に図１〜図６、図１８、図２２、図２３、図２４を参照して説明する。
【００３１】
本実施形態に係る適応フィルタは、フィルタ前画像（例えば、後述するデブロック済復号画像Ｐ＿ＤＢ）を構成する各単位領域について、互いに導出方法の異なる２つの特性値を導出し、導出された２つの特性値に応じて、各単位領域を１または複数のグループの何れかに分類する。また、本実施形態に係る適応フィルタは、単位領域毎に定められたフィルタ係数を用いて、フィルタ前画像に対して単位領域毎に作用する。
【００３２】
ここで単位領域とは、後述するＤＣＴ変換（より一般には周波数変換）の単位であるブロックであってもよいし、後述する予測画像を生成する単位であるパーティションであってもよいし、ブロックまたはパーティションの何れでもなく、本実施形態に係る適応フィルタによってサイズおよび位置が設定された領域であってもよい。また、単位領域は、１画素から構成されるものであってもよい。
【００３３】
また、各グループは、２つの特性値によって張られる２次元領域上に設定される各部分領域と１対１の対応を有する。したがって、上記２次元領域をどのように各部分領域へ分割するのかを指定することにより、１または複数のグループをどのように設定するかが定まることになる。また、導出された２つの特性値のうち、一方の特性値を第１の特性値Ｘと呼び、もう一方の特性値を第２の特性値Ｙと呼ぶ。なお、以下の説明において、上記２つの特性値によって張られる２次元領域を特性値領域とも呼称し、特性値領域上に設定される各部分領域を特性値部分領域とも呼称する。
【００３４】
第１の特性値Ｘおよび第２の特性値Ｙとして、例えば以下のような組み合わせが可能である。本実施形態においては第１の特性値Ｘが画像の活性度である場合を取り扱うが、これらの組み合わせは本願に係る発明を限定するものではなく、他の特性値および組み合わせに対しても、本実施形態を容易に適用することができる。
【００３５】
・第１の特性値Ｘ：画像の活性度、第２の特性値Ｙ：画像の方向性
・第１の特性値Ｘ：画像の活性度、第２の特性値Ｙ：平均画素値
・第１の特性値Ｘ：画像の活性度、第２の特性値Ｙ：単位領域の座標
・第１の特性値Ｘ：単位領域の座標、第２の特性値Ｙ：画像の活性度
・第１の特性値Ｘ：スライス番号、第２の特性値Ｙ：画像の活性度
・第１の特性値Ｘ：平均画素値、第２の特性値Ｙ：画像の活性度
・第１の特性値Ｘ：単位領域のｙ座標、第２の特性値Ｙ：単位領域のｘ座標
・第１の特性値Ｘ：単位領域のｘ座標、第２の特性値Ｙ：単位領域のｙ座標
なお、適応フィルタによる、フィルタ済みの画像と符号化対象画像との誤差を減らす効果（ノイズ低減の効果）の観点からは、活性度を優先する。すなわち、第１の特性値Ｘとして画像の活性度を用いることが適当である。一方、複雑性の観点からは、特性値の算出が容易な特性値を優先することも考えられる。具体的には、単位領域の座標や、スライス番号、平均画素値などを第１の特性値として用いることも可能である。この場合、低複雑性が要求されるようなアプリケーションの場合において、第１の分割のみで分割を終了させるような適用方法が可能であり、小さな複雑性で領域別フィルタの効果を得ることができる。
【００３６】
ここで、画像の活性度に代えて、画素値の分散を用いてもよい。また、各単位領域について導出される各特性値は、導出方法如何によって、単位領域のサイズに依存する場合がある。このような場合には、各特性値として、単位領域のサイズへの依存性を取り除くことによって得られる正規化された特性値を用いることができる。
【００３７】
（符号化データ＃１）
本実施形態に係る動画像符号化装置２及び動画像復号装置１の詳細な説明に先立って、動画像符号化装置２によって生成され、動画像復号装置１によって復号される符号化データ＃１のデータ構造について説明を行う。
【００３８】
図２は、符号化データ＃１のデータ構造を示す図である。符号化データ＃１は、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。
【００３９】
符号化データ＃１におけるピクチャレイヤ以下の階層の構造を図２に示す。図２の（ａ）〜（ｄ）は、それぞれ、ピクチャＰＩＣＴを規定するピクチャレイヤ、スライスＳを規定するスライスレイヤ、ツリーブロック（Tree block）ＴＢＬＫを規定するツリーブロックレイヤ、ツリーブロックＴＢＬＫに含まれる符号化単位（Coding Unit；ＣＵ）を規定するＣＵレイヤを示す図である。
【００４０】
（ピクチャレイヤ）
ピクチャレイヤでは、処理対象のピクチャＰＩＣＴ（以下、対象ピクチャとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。ピクチャＰＩＣＴは、図２の（ａ）に示すように、ピクチャヘッダＰＨ、及び、スライスＳ1〜ＳNSを含んでいる（ＮＳはピクチャＰＩＣＴに含まれるスライスの総数）。
【００４１】
なお、以下、スライスＳ1〜ＳNSのそれぞれを区別する必要が無い場合、符号の添え字
を省略して記述することがある。また、以下に説明する符号化データ＃１に含まれるデータであって、添え字を付している他のデータについても同様である。
【００４２】
ピクチャヘッダＰＨには、対象ピクチャの復号方法を決定するために動画像復号装置１が参照する符号化パラメータ群が含まれている。例えば、動画像符号化装置２が符号化の際に用いた可変長符号化のモードを示す符号化モード情報（entropy_coding_mode_flag）は、ピクチャヘッダＰＨに含まれる符号化パラメータの一例である。
【００４３】
entropy_coding_mode_flagが０の場合、当該ピクチャＰＩＣＴは、ＣＡＶＬＣ（Context-based Adaptive Variable Length Coding）によって符号化されている。また、entropy_coding_mode_flagが１である場合、当該ピクチャＰＩＣＴは、ＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）によって符号化されている。
【００４４】
なお、ピクチャヘッダＰＨは、ピクチャー・パラメーター・セット（ＰＰＳ：Picture Parameter Set）とも称される。
【００４５】
（スライスレイヤ）
スライスレイヤでは、処理対象のスライスＳ（対象スライスとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。スライスＳは、図２の（ｂ）に示すように、スライスヘッダＳＨ、及び、ツリーブロックＴＢＬＫ1〜ＴＢＬＫNC（ＮＣはスライスＳに含まれるツリーブロックの総数）のシーケンスを含んでいる。
【００４６】
スライスヘッダＳＨには、対象スライスの復号方法を決定するために動画像復号装置１が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報（slice_type）は、スライスヘッダＳＨに含まれる符号化パラメータの一例である。
【００４７】
スライスタイプ指定情報により指定可能なスライスタイプとしては、（１）符号化の際にイントラ予測のみを用いるＩスライス、（２）符号化の際に単方向予測、又は、イントラ予測を用いるＰスライス、（３）符号化の際に単方向予測、双方向予測、又は、イントラ予測を用いるＢスライスなどが挙げられる。
【００４８】
また、スライスヘッダＳＨには、動画像復号装置１の備える適応フィルタによって参照されるフィルタパラメータＦＰが含まれている。フィルタパラメータＦＰの詳細については後述する。
【００４９】
（ツリーブロックレイヤ）
ツリーブロックレイヤでは、処理対象のツリーブロックＴＢＬＫ（以下、対象ツリーブロックとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。なお、ツリーブロックのことを最大符号化単位（LCU:Largest Cording Unit）と呼ぶこともある。
【００５０】
ツリーブロックＴＢＬＫは、ツリーブロックヘッダＴＢＬＫＨと、符号化単位情報ＣＵ１〜ＣＵＮＬ（ＮＬはツリーブロックＴＢＬＫに含まれる符号化単位情報の総数）とを含む。ここで、まず、ツリーブロックＴＢＬＫと、符号化単位情報ＣＵとの関係について説明すると次のとおりである。
【００５１】
ツリーブロックＴＢＬＫは、イントラ予測またはインター予測、および、変換の各処理ためのブロックサイズを特定するためのパーティションに分割される。
【００５２】
ツリーブロックＴＢＬＫの上記パーティションは、再帰的な４分木分割により分割されている。この再帰的な４分木分割により得られる木構造のことを以下、符号化ツリー（coding tree）と称する。
【００５３】
以下、符号化ツリーの末端のノードであるリーフ（leaf）に対応するパーティションを、符号化ノード（coding node）として参照する。また、符号化ノードは、符号化処理の
基本的な単位となるため、以下、符号化ノードのことを、符号化単位（ＣＵ）とも称する。
【００５４】
つまり、符号化単位情報（以下、ＣＵ情報と称する）ＣＵ１〜ＣＵＮＬは、ツリーブロックＴＢＬＫを再帰的に４分木分割して得られる各符号化ノード（符号化単位）に対応する情報である。
【００５５】
また、符号化ツリーのルート（root）は、ツリーブロックＴＢＬＫに対応付けられる。換言すれば、ツリーブロックＴＢＬＫは、複数の符号化ノードを再帰的に含む４分木分割の木構造の最上位ノードに対応付けられる。
【００５６】
なお、各符号化ノードのサイズは、当該符号化ノードが直接に属する符号化ノード（すなわち、当該符号化ノードの１階層上位のノードのパーティション）のサイズの縦横とも半分である。
【００５７】
また、各符号化ノードのとり得るサイズは、符号化データ＃１のシーケンスパラメータセットＳＰＳに含まれる、符号化ノードのサイズ指定情報および最大階層深度（maximum hierarchical depth）に依存する。例えば、ツリーブロックＴＢＬＫのサイズが６４×６４画素であって、最大階層深度が３である場合には、当該ツリーブロックＴＢＬＫ以下の階層における符号化ノードは、３種類のサイズ、すなわち、６４×６４画素、３２×３２画素、および１６×１６画素の何れかをとり得る。
【００５８】
（ツリーブロックヘッダ）
ツリーブロックヘッダＴＢＬＫＨには、対象ツリーブロックの復号方法を決定するために動画像復号装置１が参照する符号化パラメータが含まれる。具体的には、図２の（ｃ）に示すように、対象ツリーブロックの各ＣＵへの分割パターンを指定するツリーブロック分割情報ＳＰ＿ＴＢＬＫ、および、量子化ステップの大きさを指定する量子化パラメータ差分Δｑｐ（qp_delta）が含まれる。
【００５９】
ツリーブロック分割情報ＳＰ＿ＴＢＬＫは、ツリーブロックを分割するための符号化ツリーを表す情報であり、具体的には、対象ツリーブロックに含まれる各ＣＵの形状、サイズ、および、対象ツリーブロック内での位置を指定する情報である。
【００６０】
なお、ツリーブロック分割情報ＳＰ＿ＴＢＬＫは、ＣＵの形状やサイズを明示的に含んでいなくてもよい。例えばツリーブロック分割情報ＳＰ＿ＴＢＬＫは、対象ツリーブロック全体またはツリーブロックの部分領域を四分割するか否かを示すフラグ(split_coding_unit_flag)の集合であってもよい。その場合、ツリーブロックの形状やサイズを併用することで各ＣＵの形状やサイズを特定できる。
【００６１】
また、量子化パラメータ差分Δｑｐは、対象ツリーブロックにおける量子化パラメータｑｐと、当該対象ツリーブロックの直前に符号化されたツリーブロックにおける量子化パラメータｑｐ’との差分ｑｐ−ｑｐ’である。
【００６２】
（ＣＵレイヤ）
ＣＵレイヤでは、処理対象のＣＵ（以下、対象ＣＵとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。
【００６３】
ここで、ＣＵ情報ＣＵに含まれるデータの具体的な内容の説明をする前に、ＣＵに含まれるデータの木構造について説明する。符号化ノードは、予測ツリー（prediction tree
；ＰＴ）および変換ツリー（transform tree；ＴＴ）のルートのノードとなる。予測ツリーおよび変換ツリーについて説明すると次のとおりである。
【００６４】
予測ツリーにおいては、符号化ノードが１または複数の予測ブロックに分割され、各予測ブロックの位置とサイズとが規定される。別の表現でいえば、予測ブロックは、符号化ノードを構成する１または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた１または複数の予測ブロックを含む。
【００６５】
予測処理は、この予測ブロックごとに行われる。以下、予測の単位である予測ブロックのことを、予測単位（prediction unit；ＰＵ）とも称する。
【００６６】
予測ツリーにおける分割の種類は、大まかにいえば、イントラ予測の場合と、インター予測の場合との２つがある。
【００６７】
イントラ予測の場合、分割方法は、２Ｎ×２Ｎ（符号化ノードと同一サイズ）と、Ｎ×Ｎとがある。
【００６８】
また、インター予測の場合、分割方法は、２Ｎ×２Ｎ（符号化ノードと同一サイズ）、２Ｎ×Ｎ、Ｎ×２Ｎ、および、Ｎ×Ｎなどがある。
【００６９】
また、変換ツリーにおいては、符号化ノードが１または複数の変換ブロックに分割され、各変換ブロックの位置とサイズとが規定される。別の表現でいえば、変換ブロックは、符号化ノードを構成する１または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた１または複数の変換ブロックを含む。
【００７０】
変換ツリーにおける分割には、符号化ノードと同一のサイズの領域を変換ブロックとして割り付けるものと、上述したツリーブロックの分割と同様、再帰的な４分木分割によるものがある。
【００７１】
変換処理は、この変換ブロックごとに行われる。以下、変換の単位である変換ブロックのことを、変換単位（transform unit；ＴＵ）とも称する。
【００７２】
（ＣＵ情報のデータ構造）
続いて、図２の（ｄ）を参照しながらＣＵ情報ＣＵに含まれるデータの具体的な内容について説明する。図２の（ｄ）に示すように、ＣＵ情報ＣＵは、具体的には、スキップフラグＳＫＩＰ、ＰＴ情報ＰＴＩ、および、ＴＴ情報ＴＴＩを含む。
【００７３】
スキップフラグＳＫＩＰは、対象のＰＵについて、スキップモードが適用されているか否かを示すフラグであり、スキップフラグＳＫＩＰの値が１の場合、すなわち、対象ＣＵにスキップモードが適用されている場合、そのＣＵ情報ＣＵにおけるＰＴ情報ＰＴＩ、および、ＴＴ情報ＴＴＩは省略される。なお、スキップフラグＳＫＩＰは、Ｉスライスでは省略される。
【００７４】
ＰＴ情報ＰＴＩは、ＣＵに含まれるＰＴに関する情報である。言い換えれば、ＰＴ情報ＰＴＩは、ＰＴに含まれる１または複数のＰＵそれぞれに関する情報の集合であり、動画像復号装置１により予測画像を生成する際に参照される。ＰＴ情報ＰＴＩは、図２の（ｄ）に示すように、予測タイプ情報ＰＴｙｐｅ、および、予測情報ＰＩｎｆｏを含んでいる。
【００７５】
予測タイプ情報ＰＴｙｐｅは、対象ＰＵについての予測画像生成方法として、イントラ予測を用いるのか、または、インター予測を用いるのかを指定する情報である。
【００７６】
予測情報ＰＩｎｆｏは、予測タイプ情報ＰＴｙｐｅが何れの予測方法を指定するのかに応じて、イントラ予測情報、または、インター予測情報より構成される。以下では、イントラ予測が適用されるＰＵをイントラＰＵとも呼称し、インター予測が適用されるＰＵをインターＰＵとも呼称する。
【００７７】
また、予測情報ＰＩｎｆｏは、対象ＰＵの形状、サイズ、および、位置を指定する情報が含まれる。上述のとおり予測画像の生成は、ＰＵを単位として行われる。予測情報ＰＩｎｆｏの詳細については後述する。
【００７８】
ＴＴ情報ＴＴＩは、ＣＵに含まれるＴＴに関する情報である。言い換えれば、ＴＴ情報ＴＴＩは、ＴＴに含まれる１または複数のＴＵそれぞれに関する情報の集合であり、動画像復号装置１により残差データを復号する際に参照される。なお、以下、ＴＵのことをブロックと称することもある。
【００７９】
ＴＴ情報ＴＴＩは、図２の（ｄ）に示すように、対象ＣＵの各変換ブロックへの分割パターンを指定するＴＴ分割情報ＳＰ＿ＴＴ、および、量子化予測残差ＱＤ1〜ＱＤNT（ＮＴは、対象ＣＵに含まれるブロックの総数）を含んでいる。
【００８０】
ＴＴ分割情報ＳＰ＿ＴＴは、具体的には、対象ＣＵに含まれる各ＴＵの形状、サイズ、および、対象ＣＵ内での位置を決定するための情報である。例えば、ＴＴ分割情報ＳＰ＿ＴＴは、対象となるノードの分割を行うのか否かを示す情報（split_transform_unit_flag）と、その分割の深度を示す情報（trafoDepth）とから実現することができる。
【００８１】
また、例えば、ＣＵのサイズが、６４×６４の場合、分割により得られる各ＴＵは、３２×３２画素から２×２画素までのサイズをとり得る。
【００８２】
各量子化予測残差ＱＤは、動画像符号化装置２が以下の処理１〜３を、処理対象のブロックである対象ブロックに施すことによって生成した符号化データである。
【００８３】
処理１：符号化対象画像から予測画像を減算した予測残差をＤＣＴ変換（Discrete Cosine Transform）する；
処理２：処理１にて得られた変換係数を量子化する；
処理３：処理２にて量子化された変換係数を可変長符号化する；
なお、上述した量子化パラメータｑｐは、動画像符号化装置２が変換係数を量子化する際に用いた量子化ステップＱＰの大きさを表す（ＱＰ＝２qp/6）。
【００８４】
（予測情報ＰＩｎｆｏ）
上述のとおり、予測情報ＰＩｎｆｏには、インター予測情報およびイントラ予測情報の２種類がある。
【００８５】
インター予測情報には、動画像復号装置１が、インター予測によってインター予測画像を生成する際に参照される符号化パラメータが含まれる。より具体的には、インター予測情報には、対象ＣＵの各インターＰＵへの分割パターンを指定するインターＰＵ分割情報、および、各インターＰＵについてのインター予測パラメータが含まれる。
【００８６】
インター予測パラメータには、参照画像インデックスと、推定動きベクトルインデックスと、動きベクトル残差とが含まれる。
【００８７】
一方、イントラ予測情報には、動画像復号装置１が、イントラ予測によってイントラ予測画像を生成する際に参照される符号化パラメータが含まれる。より具体的には、イントラ予測情報には、対象ＣＵの各イントラＰＵへの分割パターンを指定するイントラＰＵ分割情報、および、各イントラＰＵについてのイントラ予測パラメータが含まれる。イントラ予測パラメータは、各イントラＰＵについてのイントラ予測方法（予測モード）を指定するためのパラメータである。
【００８８】
（動画像復号装置１）
以下では、本実施形態に係る動画像復号装置１について特に図１〜図６、図２３、図３１、図３２を参照して説明する。動画像復号装置１は、その一部に、Ｈ．２６４／ＭＰＥＧ−４．ＡＶＣに採用されている方式、ＶＣＥＧ（Video Coding Expert Group）における共同開発用コーデックで
あるＫＴＡソフトウェアに採用されている方式、その後継コーデックであるＴＭｕＣ（Test Model under Consideration）ソフトウェアに採用されている方式、及び、ＨＭ（HEVCTestModel）ソフトウェアに採用されている技術を含んでいる。
【００８９】
図１は、動画像復号装置１の構成を示すブロック図である。図１に示すように、動画像復号装置１は、可変長符号復号部１３、動きベクトル復元部１４、バッファメモリ１５、インター予測画像生成部１６、イントラ予測画像生成部１７、予測方式決定部１８、逆量子化・逆変換部１９、加算器２０、デブロッキングフィルタ４１、および、適応フィルタ１５０を備えている。動画像復号装置１は、符号化データ＃１を復号することによって動画像＃２を生成するための装置である。
【００９０】
可変長符号復号部１３は、各パーティションに関する予測パラメータＰＰを、符号化データ＃１から復号する。すなわち、インター予測パーティションに関しては、参照画像インデックスＲＩ、推定動きベクトルインデックスＰＭＶＩ、及び、動きベクトル残差ＭＶＤを符号化データ＃１から復号し、これらを動きベクトル復元部１４に供給する。一方、イントラ予測パーティションに関しては、（１）パーティションのサイズを指定するサイズ指定情報、および、（２）予測インデックスを指定する予測インデックス指定情報を符号化データ＃１から復号し、これをイントラ予測画像生成部１７に供給する。また、可変長符号復号部１３は、ＣＵ情報を符号化データから復号し、これを予測方式決定部１８に供給する（図示省略）。更に、可変長符号復号部１３は、各ブロックに関する量子化予測残差ＱＤ、及び、そのブロックを含むツリーブロックに関する量子化パラメータ差分Δｑｐを符号化データ＃１から復号し、これらを逆量子化・逆変換部１９に供給する。また、可変長符号復号部１３は、符号化データ＃１からフィルタオンオフ情報、フィルタセット番号、および、フィルタ係数群を復号し、それらを適応フィルタ５０に供給する。
【００９１】
動きベクトル復元部１４は、各インター予測パーティションに関する動きベクトルｍｖを、そのパーティションに関する動きベクトル残差ＭＶＤと、他のパーティションに関する復元済みの動きベクトルｍｖ’とから復元する。具体的には、（１）推定動きベクトルインデックスＰＭＶＩにより指定される推定方法に従って、復元済みの動きベクトルｍｖ’から推定動きベクトルｐｍｖを導出し、（２）導出した推定動きベクトルｐｍｖと動きベクトル残差ＭＶＤとを加算することによって動きベクトルｍｖを得る。なお、他のパーティションに関する復元済みの動きベクトルｍｖ’は、バッファメモリ１５から読み出すことができる。動きベクトル復元部１４は、復元した動きベクトルｍｖを、対応する参照画像インデックスＲＩと共に、インター予測画像生成部１７に供給する。なお、双方向予測（重み付き予測）を行うインター予測パーティションについては、復元した２つの動きベクトルｍｖ１及びｍｖ２を、対応する参照画像インデックスＲＩ１及びＲＩ２と共に、インター予測画像生成部１７に供給する。
【００９２】
インター予測画像生成部１６は、各インター予測パーティションに関する動き補償画像ｍｃを生成する。具体的には、動きベクトル復元部１４から供給された動きベクトルｍｖを用いて、同じく動きベクトル復元部１４から供給された参照画像インデックスＲＩによって指定されるフィルタ済復号画像Ｐ＿ＦＬ’から動き補償画像ｍｃを生成する。ここで、フィルタ済復号画像Ｐ＿ＦＬ’は、既に復号が完了した復号済みの復号画像に対して、デブロッキングフィルタ４１によるデブロック処理、および、適応フィルタ５０による適応的フィルタ処理を施すことによって得られる画像であり、インター予測画像生成部１６は、フィルタ済復号画像Ｐ＿ＦＬ’を構成する各画素の画素値をバッファメモリ１５から読み出すことができる。インター予測画像生成部１６によって生成された動き補償画像ｍｃは、インター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒとして予測方式決定部１８に供給される。なお、双方向予測（重み付き予測）を行うインター予測パーティションについては、（１）動きベクトルｍｖ１を用いて、参照画像インデックスＲＩ１によって指定されたフィルタ済復号画像Ｐ＿ＦＬ１’から動き補償画像ｍｃ１を生成し、（２）動きベクトルｍｖ２を用いて、参照画像インデックスＲＩ２によって指定されたフィルタ済復号画像Ｐ＿ＦＬ２’とから動き補償画像ｍｃ２を生成し、（３）動き補償画像ｍｃ１と動き補償画像ｍｃ２との加重平均にオフセット値を加えることによってインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを生成する。
【００９３】
イントラ予測画像生成部１７は、各イントラ予測パーティションに関する予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。具体的には、まず、符号化データ＃１から復号された予測モードを参照し、該予測モードを対象パーティションに対して、例えば、ラスタスキャン順に割り付ける。続いて、当該予測モードの示す予測方法に従って、復号画像Ｐから予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。イントラ予測画像生成部１７によって生成されたイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａは、予測方式決定部１８に供給される。
【００９４】
また、イントラ予測画像生成部１７は、対象パーティションのサイズ、および、対象パーティションに割り付けられた予測モードを示す情報であるイントラ符号化モード情報ＩＥＭを適応フィルタ５０に供給する。なお、イントラ予測画像生成部１７によるイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａの具体的な生成処理については、後述するためここでは説明を省略する。
【００９５】
予測方式決定部１８は、ＣＵ情報に基づいて、各パーティションがインター予測を行うべきインター予測パーティションであるのか、イントラ予測を行うべきイントラ予測パーティションであるのかを決定する。そして、前者の場合には、インター予測画像生成部１６にて生成されたインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを予測画像Ｐｒｅｄとして加算器２０に供給し、後者の場合には、イントラ予測画像生成部１７にて生成されたイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを予測画像Ｐｒｅｄとして加算器２０に供給する。
【００９６】
逆量子化・逆変換部１９は、（１）量子化予測残差ＱＤを逆量子化し、（２）逆量子化によって得られたＤＣＴ係数を逆ＤＣＴ（Discrete Cosine Transform）変換し、（３）
逆ＤＣＴ変換によって得られた予測残差Ｄを加算器２０に供給する。なお、量子化予測残差ＱＤを逆量子化する際に、逆量子化・逆変換部１９は、可変長符号復号部１３から供給された量子化パラメータ差分Δｑｐから量子化ステップＱＰを導出する。量子化パラメータｑｐは、直前に逆量子化／逆ＤＣＴ変換したツリーブロックに関する量子化パラメータｑｐ’に量子化パラメータ差分Δｑｐを加算することによって導出でき、量子化ステップＱＰは、量子化ステップｑｐからＱＰ＝２ｐｑ／６によって導出できる。また、逆量子化・逆変換部１９による予測残差Ｄの生成は、ブロック（変換単位）を単位として行われる。
【００９７】
加算器２０は、予測方式決定部１８から供給された予測画像Ｐｒｅｄと、逆量子化・逆変換部１９から供給された予測残差Ｄとを加算することによって復号画像Ｐを生成する。
【００９８】
デブロッキングフィルタ４１は、復号画像Ｐにおけるブロック境界、またはＣＵ境界を介して互いに隣接する画素の画素値の差が予め定められた閾値よりも小さい場合に、復号画像Ｐにおける当該ブロック境界、または当該ＣＵ境界に対してデブロッキング処理を施すことによって、当該ブロック境界、または当該ＣＵ境界付近の画像の平滑化を行う。デブロッキングフィルタ４１によりデブロッキング処理が施された画像は、デブロック済復号画像Ｐ＿ＤＢとして、適応フィルタ５０に出力される。
【００９９】
適応フィルタ５０は、デブロッキングフィルタ４１から供給されるデブロック済復号画像Ｐ＿ＤＢに対して、符号化データ＃１から復号されたフィルタパラメータＦＰを用いたフィルタ処理を施すことによって、フィルタ済復号画像Ｐ＿ＦＬを生成する。適応フィルタ５０によりフィルタ処理が施された画像は、フィルタ済復号画像Ｐ＿ＦＬとして外部に出力されると共に、可変長符号復号部１３によって符号化データから復号されたＰＯＣ指定情報と関連付けてバッファメモリ１５に格納される。適応フィルタ５０の具体的な構成については、後述するため、ここでは説明を省略する。
【０１００】
（適応フィルタ１５０）
適応フィルタ１５０は、シンタックスadaptive_loop_filter_flagが１である場合に、デブロック済復号画像Ｐ＿ＤＢに対して適応的フィルタ処理を施すことによってフィルタ済復号画像Ｐ＿ＦＬを生成する。
【０１０１】
適応フィルタ１５０は、対象単位領域におけるデブロック済復号画像Ｐ＿ＤＢの特性値に応じて、該対象単位領域を、上述した各特性値部分領域の何れかと関連付け、該単位領域が関連付けられた特性値部分領域について復号されたフィルタ係数を用いて、該単位領域に対するフィルタ処理を施す。
【０１０２】
本実施形態に係る適応フィルタは、フィルタ前画像（例えば、デブロック済復号画像Ｐ＿ＤＢ）を構成する各単位領域について、互いに導出方法の異なる複数の特性値を導出し、導出された複数の特性値に応じて、各単位領域を１または複数のグループの何れかに分類する。また、本実施形態に係る適応フィルタは、単位領域毎に定められたフィルタ係数を用いて、フィルタ前画像に対して単位領域毎に作用する。
【０１０３】
ここで単位領域とは、後述するＤＣＴ変換（より一般には周波数変換）の単位であるブロックであってもよいし、後述する予測画像を生成する単位であるパーティションであってもよいし、ブロックまたはパーティションの何れでもなく、本実施形態に係る適応フィルタによってサイズおよび位置が設定された領域であってもよい。また、単位領域は、１画素から構成されるものであってもよい。本実施形態では４×４のブロックを単位領域として説明する。
【０１０４】
各グループは、複数の特性値によって張られる多次元領域上に設定される各部分領域と１対１の対応を有する。したがって、上記多次元領域をどのように各部分領域へ分割するのかを指定することにより、１または複数のグループをどのように設定するかが定まることになる。また、導出された複数の特性値は各々、第１の特性値Ｘ、第２の特性値Ｙ、第３の特性値Ｚと呼ぶ。上記複数の特性値によって張られる多次元領域を特性値領域とも呼称し、特性値領域上に設定される各部分領域を特性値部分領域とも呼称する。
【０１０５】
各部分領域を指定するインデックスとして１次元のインデックスを用いる。各特性値部分領域を指定するインデックスを、領域インデックスridxと呼ぶ。各単位領域は、領域インデックスridxを割り付けることでグループ化（分類）が行われる。すなわち、同じ値の領域インデックスridxが割り当てられる単位領域は同じ特性の領域であるとしてグループ化される。グループ化された部分領域は、特性値分類領域、もしくは、分類領域と呼ぶ。ある領域インデックスridxの特性値分類領域を、単に領域インデックスridxの領域と呼ぶ。
【０１０６】
本実施形態においては、第１の特性値Ｘ、第２の特性値Ｙ、第３の特性値Ｚとして、例えば以下のような値が使用可能である。
【０１０７】
画像の方向性、画像の活性度、画像の特定方向活性度、予測モード、予測モード及び画像の方向性、平均画素値、単位領域の座標、スライス番号。
【０１０８】
領域インデックスの算出に用いる特性値および特性値の組について、その算出方法を、特性値算出方法と呼ぶ。本実施形態では、領域インデックス算出において、複数の特性値（特性値算出方法）を用いることが可能である。本実施形態では、特性値算出方法は領域インデックス算出方法に対応するため、後述する特性値モードalf_filter_modeを用いて一意に示すことが可能である。また、特性値算出方法は、特徴量モードのタイプである領域適応モードと、あるタイプ内に属する１つの特徴量モードを指定するフラグ（例えば後述のＢＡ計算モード）を用いて示すこともできる。また、特性値算出方法は、例えば以下の例のように特性値の組によって表現することもできる。
｛単位領域のＸ座標、単位領域のＹ座標｝（後述のＲＡモードに対応）
｛単位領域の第１の活性度、単位領域の第２の活性度｝（後述のＢＡモードに対応）
｛単位領域の水平方向活性度、単位領域の垂直方向活性度｝（後述のＢＡ１モードに対応）
｛単位領域の斜め４５度方向活性度、単位領域の斜め１３５度方向活性度｝（後述のＢＡ２モードに対応）
【０１０９】
なお、活性度の算出には、絶対値差分和を用いても良いし、ラプラシアンや分散を用いても良い。また、活性度を含む特性値の算出には、画素の間引きを用いても良い。単位領域の特性値の算出には、単位領域外の画素値を用いても良い。但し、特性値の参照画像の一部がスライス外に位置する場合には、スライス内の画素値のみを用いて特性値を算出可能なように、スライス内の画素値を用いてスライス外の画素値を導出し特性値を算出すると良い。
【０１１０】
また、各単位領域について導出される各特性値は、導出方法如何によって、単位領域のサイズに依存する場合がある。このような場合には、各特性値として、単位領域のサイズへの依存性を取り除くことによって得られる正規化された特性値を用いることができる。
【０１１１】
＜フィルタパラメータＦＰ＃１＞
本実施形態に係るフィルタパラメータＦＰ＃１の構成を詳述する。図１８は、本実施形態に係るフィルタパラメータＦＰのシンタックステーブルの一例である。図１８に示すように、フィルタパラメータＦＰ＃１には、adaptive_loop_filter_flag、alf_region_adaptation_flag、alf_filter_mode、alf_num_filters_minus1、alf_region_idx[]、alf_pred_method、alf_min_kstart_minus1、alf_golomb_index_bit[i]、alf_coeff_luma[i][j]が含まれている。
【０１１２】
adaptive_loop_filter_flagは、後述する適応フィルタ１５０による適応的フィルタ処理のオンオフを指定するフラグであり、adaptive_loop_filter_flagが０の場合、適応的フィルタ処理がオフに指定され、adaptive_loop_filter_flagが１の場合、適応的フィルタ処理がオンに指定される。
【０１１３】
alf_num_filters_minus1は本実施形態に係る適応フィルタで用いるフィルタ数AlfNumFiltersを示すシンタックスであり、AlfNumFilters = alf_num_filters_minus1 + 1により求めることができる。領域適応モードalf_region_adaptation_flagは、単位領域の属性からその領域を分類する場合における分類方法を切り替える特徴量モード（領域分類方法）alf_feature_modeのタイプを示すシンタックスであり、０か１の値をとる。alf_filter_modeは、フィルタ形状を示すシンタックスである。alf_region_idx[i] （１≦ｉ＜AlfNumRegions）は、各部分領域に対するフィルタインデックスを指定するシンタックスである。
【０１１４】
領域適応モードalf_region_adaptation_flag=0、1は各々、特徴量モードのタイプであるＲＡモード、ＢＡモードに対応する。なお。ＲＡモードは、特性値算出方法が座標を用いる、すなわち、対象単位領域の画像（フレーム）内座標を用いる場合の分割であり、この分割を座標空間分割と呼ぶ。ＢＡモードは、特性値算出モードが画素値を用いる、すなわち、対象単位領域における画素値もしくは符号化パラメータを用いる場合の分割であり、座標空間分割に対して特徴空間分割と呼ぶ。なお、領域適応モードalf_region_adaptation_flagとして、特性値算出方法の違いによりさらに細かく区分した値を用いても良い。例えば、ＲＡモードの一つとしてＲＡ１モード、ＲＡ２モードや、ＢＡモードの一つとしてＢＡ１モード、ＢＡ２モードを領域適応モードとして用いることができる。すなわち、領域適応モードは、特徴量モードをグループ化したタイプでも良いし、特徴量モードをそのまま用いても良い。
【０１１５】
また、図２２に示すように１次元のシンタックスalf_filter_pattern[ｉ] （１≦ｉ＜AlfNumRegions）を用いて領域構造を符号化しても構わない。図２２に示す通り、部分領域は所定の順序（ラスタスキャン順）でインデックスが付される。１次元シンタックスalf_filter_patternでは、隣り合うインデックスが付された部分領域同士のみがマージ可能である。すなわち、所定の順序に沿って隣り合うサブ領域同士のみがマージ可能である。alf_filter_pattern[ｉ]は、ｉ―１の部分領域と、ｉの部分領域がマージされる場合には０、マージされない場合には１で符号化される。図２２の例では、領域インデックスが｛０、１｝、｛２、３、４｝、｛５、６、７｝、｛８、９｝、｛１０、１１、１２｝、｛１３、１４｝の組によってグループ化される例であるが、この場合、０、１、０、０、１、０、０、１、０、１、０、０、１、０のalf_filter_pattern[]が符号化される。
【０１１６】
（適応フィルタ１５０）
図２３は、適応フィルタ１５０のブロック図である。適応フィルタ１５０は、適応フィルタ情報復号部１５１、適応フィルタ１５２を備えている。適応フィルタ情報復号部１５１は、フィルタ形状復号部１５１１、領域構造復号部１５１２、領域適応モード復号部１５１３、フィルタ係数復号部１５１４、フィルタ係数格納部１５１５を備えており、適応フィルタ部１５２は、領域インデックス算出部１５２２、フィルタ係数割り付け部１５２３、フィルタ部１５２４を備えている。ｘｘ
【０１１７】
フィルタ形状復号部１５１１は、フィルタパラメータＦＰ＃１に含まれるシンタックスalf_filter_modeを復号する。図７は、フィルタ係数群とフィルタ形状の関係を示す図である。図７（ａ）に示すように、第１の実施形態では、フィルタインデックスｉ＝０からｉ＝AlfNumFilters-1までのフィルタインデックスで示される各フィルタ係数群（特性値分類領域）に対して１つのフィルタ形状alf_filter_modeが復号されることが示されている。ここでは、図に示す通り、フィルタ係数群のフィルタ形状として星もしくはクロスが復号される。
【０１１８】
領域構造復号部１５１２は、概略的に言えば、図１８に示すフィルタパラメータＦＰ＃１に含まれるシンタックスalf_region_idx[i]から領域構造を復号する。また、alf_filter_pattern[]から領域構造を復号しても構わない。
【０１１９】
領域適応モード復号部１５１３は、シンタックスalf_region_adaptation_flagを復号する。復号されたシンタックスalf_region_adaptation_flagは、領域インデックス算出部１５２２に供給される。
【０１２０】
フィルタ係数復号部１５１４は、シンタックスalf_coeff_luma[i][k]よりフィルタ係数群AlfRegionFilterCoeff[i][k] （０≦ｉ＜AlfNumFilters、０≦ｋ＜Ｎtotal：Ｎtotalは、１つのフィルタ係数群に含まれるフィルタ係数の数）を復号する。フィルタ係数群AlfRegionFilterCoeff[i][k]の総数は、AlfNumFiltersである。
【０１２１】
また、フィルタ係数復号部１５１４は、フィルタ処理に用いられるフィルタ係数群AlfRegionFilterCoeffを、以下の式を用いて算出する。
【０１２２】
AlfRegionFilterCoeff[i][k] = AlfRegionFilterCoeff[i-1][k] + alf_coeff_luma[i][k] (i=0以外の場合)
AlfRegionFilterCoeff[i][k] = alf_coeff_luma[i][k] (i=0の場合)
なお、kは、０〜フィルタ係数の数−１までの値であり、AlfRegionFilterCoeff[i][k]は
、各フィルタ係数毎に（すなわち、ｋの各値について）上記式により算出される。
【０１２３】
フィルタ係数格納部１５１５には、フィルタ係数復号部１５１４によって復号されたフィルタ係数群RegionFilterLuma[i][k]が格納される。ここで、ｉは、フィルタ係数群を参照するためのインデックスであり、以下フィルタインデックスfidxとも呼ぶ。フィルタ係数群の数はAlfNumFiltersであるから、フィルタインデックスは０からAlfNumFilters−１までの値で指定される。なお、本実施形態では、フィルタ処理で用いられるフィルタ係数群として、符号化データ＃１から復号されるフィルタ係数群を用いるが、復号装置に予め備わっているフィルタ係数群を参照可能なフィルタ係数として用いても良い。また、処理対象のピクチャおよびスライスに対応するヘッダ及びピクチャパラメータセットだけではなく、それ以前の特定のピクチャやスライスで符号化されるフィルタ係数群を参照しても良い。また、フィルタ係数格納部１５１５には、フィルタ係数復号部１５１４から供給されるフィルタ形状alf_filter_modeが格納される。
【０１２４】
（領域構造復号部１５１２）
領域構造復号部１５１２は、フィルタパラメータＦＰ＃１から領域構造シンタックスを復号し、領域インデックスでグループ化される部分領域（特性値分類領域）の各々に対して、フィルタ係数群を参照するためのフィルタインデックスを割り当てる。具体的には、部分領域を指定する各領域インデックスridx（０≦ridx＜AlfNumRegions）に対して、１つのフィルタインデックスfidxを割り当てる。
【０１２５】
領域構造復号部１５１２は、フィルタ数AlfNumFiltersを復号し、フィルタ係数復号部１５１４に出力する。
【０１２６】
領域構造復号部１５１２は、各領域インデックスridxに対するフィルタインデックスfidxを復号し、領域インデックスridxとフィルタインデックスfidxの関係を示すフィルタインデックステーブルFilterIdxTbl[ridx]（０≦ridx＜AlfNumRegions）を導出する。導出されたフィルタインデックステーブルFilterIdxTbl[]はフィルタ係数割り付け部１５２３に出力する。フィルタインデックステーブルFilterIdxTbl[]は、領域インデックスがridxの場合のフィルタインデックスfidxを下記の式により定めるテーブルである。
【０１２７】
fidx = FilterIdxTbl[ridx]
例えば、フィルタインデックステーブルが下記のFilterIdxTblAの場合には、領域イン
デックスridx=0に割り当てられるフィルタインデックスfidxは、FilterIdxTbl[ridx]＝FilterIdxTblA[0]=0になる。
【０１２８】
FilterIdxTblA[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
また、FilterIdxTblAでは、各部分領域に対して異なるフィルタインデックスが割り当
てられる。すなわち、全ての各部分領域はマージされず異なる値が割り当てられる。この時、フィルタインデックスの総数AlfNumFiltersは16である。
【０１２９】
領域インデックスridx＝0のフィルタインデックスは０であるので、領域インデックスridx＝０のフィルタインデックス復号を省略することができる。
【０１３０】
（適応フィルタ部１５２）
適応フィルタ部１５２は、デブロック済復号画像Ｐ＿ＤＢを構成する各単位領域に対して、適応的フィルタ処理を行うことによってフィルタ済復号画像Ｐ＿ＦＬを生成するための構成である。ここで、各単位領域のフィルタ処理に用いられるフィルタ係数は、フィルタパラメータＦＰ＃１から復号されたフィルタ係数RegionFilterLuma[i][j]から、該単位領域におけるデブロック済復号画像Ｐ＿ＤＢの特性値に応じて定まる領域インデックスに応じて選択される。また、生成されたフィルタ済復号画像Ｐ＿ＦＬは、バッファメモリ１５に格納される。
【０１３１】
なお、適応フィルタ部１５２に入力される画像は、デブロック済復号画像Ｐ＿ＤＢに限定されるものではなく、複数の入力画像を入力することもできる。例えば、適応フィルタ部１５２には、デブロック済復号画像Ｐ＿ＤＢに加えて、復号画像Ｐおよび予測残差Ｄの少なくとも何れかを入力する構成としてもよい。このような構成の場合、領域インデックス算出部１５２２は、デブロック済復号画像Ｐ＿ＤＢのみならず、復号画像Ｐおよび予測残差Ｄの少なくとも何れかについても各特性値を算出する構成とし、フィルタ部１５２４は、それぞれの入力画像に対して、適応的フィルタ処理を行い、フィルタ後の画像を加算した後に出力する構成としてもよい。このような場合、フィルタパラメータＦＰ＃１には、各入力画像に対するフィルタ係数であって、各特性値部分領域に対応するフィルタ係数を含めておく構成とすればよい。
【０１３２】
（領域インデックス算出部１５２２）
領域インデックス算出部１５２２は、単位領域の属性から、１つ以上の特性値算出方法で得られる特性値を用いて部分領域に分類する領域分類手段であり、具体的には、ある座標(x, y)で示される単位領域の領域インデックスridxを求める。なお、本実施形態では１次元の領域インデックスを用いる例を説明するが、特性値Ｘ、特性値Ｙを組とする値のようにベクトル量の領域インデックスを用いても良い。
【０１３３】
領域インデックスの算出方法である特徴量モードalf_feature_modeは、領域適応モードalf_region_adaptation_flagを基づいて設定される。実施形態１では、領域適応モードalf_region_adaptation_flag、フィルタ形状alf_filter_modeに応じて特徴量モードalf_feature_modeを算出する。
【０１３４】
図１７は、領域インデックス算出部１５２２の構成を示すブロック図である。領域インデックス算出部１５２２は、ＲＡモード領域インデックス算出部１５５０、ＢＡ１モード領域インデックス算出部１５６０、ＢＡ２モード領域インデックス算出部１５７０、領域インデックス選択部１５２５、特徴量モード算出部１５２６を備え、また、さらにＲＡ第１特性値算出部１５５１、ＲＡ第２特性値算出部１５５２、ＲＡ領域インデックス算出部１５５５、ＢＡ１第１特性値算出部１５６１、ＢＡ１第２特性値算出部１５６２、ＢＡ１領域インデックス算出部１５６５、ＢＡ２第１特性値算出部１５７１、ＢＡ２第２特性値算出部１５７２、ＢＡ２領域インデックス算出部１５７５、を備える。
【０１３５】
なお、図１７では、ＢＡ１モード領域インデックス算出部１５６０と、ＢＡ２モード領域インデックス算出部１５６１を別の手段として示しているが、後述するように、ＢＡ１モードとＢＡ２モードは、中間値の算出方向を除き、同じ構成の手段で算出可能であるので、共通の手段、ＢＡモード領域インデックス算出部を用い、ＢＡ１モードとＢＡ２モードを切り替えるＢＡモード計算モードalf_ba_comp_modeに応じて動作を変更しても構わない。
【０１３６】
領域インデックス算出部１５２２は、座標値（ｘＣ、ｙＣ）で指定される単位領域に対して、座標値、単位領域及びその周辺の画素値、単位領域及びその周辺の符号化パラメータから２つ以上の軸の特性値を算出して領域インデックスを算出する。
【０１３７】
特徴量モード算出部１５２６は、領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeに応じて、特徴量モードalf_feature_modeを算出する。本実施形態では、領域適応モードalf_region_adaptation_flagはＲＡモード、ＢＡモードのいずれかの値をとり、特徴量モードalf_feature_modeはＲＡモード、ＢＡ１モード、ＢＡ２モードのいずれかの値をとる。図１５は、実施形態１における領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeと、特徴量モードalf_feature_modeの関係を示す図である。領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeは、符号化モードのシンタックスとして符号化される値であり、特徴量モードalf_feature_modeは、復号したシンタックスから導出される値である。図に示すように、領域適応モードalf_region_adaptation_flagがＲＡモードである場合は、特徴量モードalf_feature_modeはＲＡモードを用い、領域適応モードalf_region_adaptation_flagがＢＡモードである場合には、フィルタ形状alf_filter_modeに応じて、特徴量モードalf_feature_modeを切り替える。なお、図中のalf_ba_comp_mode は、特徴空間分割（ＢＡモード）における特性値算出方法を識別するための値であり、ＢＡ計算モードと呼ぶ。斜め方向の方向性を有する特性値算出方法であるＢＡ２モードがalf_ba_comp_mode=0に対応し、水平垂直方向の方向性を有する特性値算出方法であるＢＡ１モードがalf_ba_comp_mode=1に対応する。
【０１３８】
図６は、本実施形態の領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeの組み合わせを示す図である。本実施形態では２つの領域適応モード（ＲＡモード、ＢＡモード）の各々に対して、フィルタ形状を選択する。フィルタ形状の選択肢は、２つのフィルタ形状（星、クロス）である。また、図に示すようにＢＡモードではフィルタ形状に合わせて、特徴量算出モードの選択が行われる。  
【０１３９】
領域インデックス選択部１５２５は、特徴量モードalf_feature_modeの値に応じて、領域インデックスの算出方法を切り替える。具体的には、特徴量モードがＲＡモード、ＢＡ１モード、ＢＡ２モードの何れであるかに応じて、ＲＡモード領域インデックス算出部１５５０、ＢＡ１モード領域インデックス算出部１５６０、ＢＡ２モード領域インデックス算出部１５７０から出力される領域インデックスをそれぞれ選択する。
【０１４０】
本実施形態では、領域インデックス選択部１５２５は、少なくとも１つの特性値算出方法を備え、特性値算出方法に基づいて単位領域の特性値を算出し、単位領域を分類する領域インデックスを算出する。
少なくとも１つの座標空間分割（ここではＲＡモード）と、少なくとも１つの特徴空間分割モードを備えれば、一方の特徴量による領域分類が適当ではない場合に、他方の領域分類で補うことができるため、符号化効率上適当である。また、さらに、互いに異なる複数の特徴空間分割モードを備えることも同様の理由で適当である。
【０１４１】
ＲＡモード領域インデックス算出部１５５０では、座標値（ｘＣ、ｙＣ）で指定される単位領域に対して、座標値を参照して領域インデックスを算出する。ＲＡ第１特性値算出部１５５１がX座標xCを量子化した値xIdxを出力し、ＲＡ第２特性値算出部１５５２がY座標yCを量子化した値yIdxを出力し、ＲＡ領域インデックス算出部１５５５においてxIdxとyIdxから領域インデックスridxを算出する。より具体的には、下記の式により、xIdx、yIdxを算出する。
offset = 1 << (Log2MaxCUSize - 1)
xInterval = ( ( ( PicWidthInSamplesL + offset ) >> Log2MaxCUSize ) + 1 ) >> 2
yInterval = ( ( ( PicHeightInSamplesL + offset ) >> Log2MaxCUSize ) + 1 ) >> 2
xIdx = Min( 3, Floor( ( xC + x ) / ( xInterval << Log2MaxCUSize ) ) )
yIdx = Min( 3, Floor( ( yC + y ) / ( yInterval << Log2MaxCUSize ) ) )
ここで、Log2MaxCUSizeは最大CUサイズ（ＬＣＵサイズ）の2を底とした対数である。offset、xInterval、yIntervalは中間値である。Floor(x)はx以下の最大の整数を求める関数である。
【０１４２】
続いて、２次元の特性値Ｘ（＝xIdx）と特性値Ｙ（＝yIdx）から領域インデックスridxが以下の式によって割り当てられる。一つの方法では、テーブルregionTabを用いて以下の式で算出する。
【０１４３】
regionTab[16] = { 0, 1, 4, 5, 15, 2, 3, 6, 14, 11, 10, 7, 13, 12, 9, 8 }
ridx = regionTab[ ( yIdx << 2 ) + xIdx ]
なお、yIdx << 2は、yIdx × wとも表現することができる。ここでwは特性値Ｘの値の範囲である。
【０１４４】
この場合は、各単位領域は、一筆書き（ヒルベルトスキャン）によってスキャンされるため、隣接領域とのマージを優先するようなエンコーダを用いる場合において、領域のフィルタインデックスが短い符号語で符号化されるため符号化効率が向上する。
【０１４５】
なお、特性値Ｘ、特性値Ｙから領域インデックスridxを算出する方法にはラスタスキャンを用いることも可能である。この場合、
ridx = ( yIdx × 2 ) + xIdx
とする。なお、ここでは、特性値Ｘの値域をwを4(=1<<2)としているが、この限りではない。
【０１４６】
ＢＡ１モード領域インデックス算出部１５６０では、座標値（ｘＣ、ｙＣ）で指定される単位領域に対して、単位領域もしくは単位領域周辺の画素値を参照して領域インデックスを算出する。ＢＡ１第１特性値算出部１５６１は単位ブロックの特性値Ｘとして活性度actを出力し、ＢＡ１第２特性値算出部１５６２は単位ブロックの特性値Ｙとして活性度directionを出力し、ＢＡ１領域インデックス算出部１５６５においてactとdirectionから領域インデックスridxを算出する。より具体的には、下記の手順により、actとdirectionを算出する。中間値として、各画素の水平活性度varTempHと垂直活性度varTempVを算出する。以下の式ではラプラシアンを用いているが、単なる差分でも構わない。
varTempH[ x ][ y ] = | ( s’[ xC+x, yC+y ] << 1 ) - s’[ xC+x-1, yC+y ] - s’[ xC+x+1, yC+y ] |
varTempV[ x ][ y ] = | ( s’[ xC+x, yC+y ] << 1 ) - s’[ xC+x, yC+y-1 ] - s’[ xC+x, yC+y+1 ] |
ここで、ｓ´は、適応フィルタの入力画素値、||は、絶対値を算出する関数である。
【０１４７】
続いて、以下の式によって、中間値varTemp1とvarTemp2を算出する。
varTemp1[ x ][ y ] = varTempH[ x ][ y ] + varTempV[ x ][ y ]
varTemp2[ x ][ y ] = ΣiΣj varTemp1[ x + i ][ y + j ]
但し、i, j = -1..1である。
【０１４８】
続いて、以下の式によって、単位ブロック内（もしくは単位ブロック周辺を含めて）で中間値を足し合わせることにより、単位ブロックの活性度を算出する。すなわち、活性度varTemp3、水平活性度varTempH1、水平活性度varTempV1を算出する。
varTemp3[ x ][ y ] = (ΣiΣj varTemp2[ (x << 2 ) + i ][ (y << 2) + j ]) >> 4 varTempH1[ x ][ y ] = ΣiΣj varTempH[ (x << 2 ) + i ][ (y << 2) + j ] varTempV1[ x
][ y ] = ΣiΣj varTempV[ (x << 2 ) + i ][ (y << 2) + j ]
但し、i, j = 0..3である。
【０１４９】
第２特性値directionは、以下のように、単位ブロックの水平活性度varTempH1と水平活性度varTempV1の大きさの比較から算出する。
varTempV1[ x >> 2 ][ y >> 2 ] > varTempH1[ x >> 2 ][ y >> 2 ] << 1の場合に、direction = 1
それ以外で、varTempH1[ x >> 2 ][ y >> 2 ] > varTempV1[ x >> 2 ][ y >> 2 ] << 1の場合に、direction = 2
それ以外の場合に、direction = 0。
但し、上記では、エッジがあると想定される部分領域（水平活性度と垂直活性度の差が大きい部分領域）にdirectionを1もしくは2として、エッジがないと想定される部分領域（差が大きくない場合）のdirectionを0としたが、この値の配置に限らない。エッジがないとされる部分領域のdirectionを1として、エッジがあると想定される部分領域のdirectionを0もしくは2としても良い。すなわち、特性値Ｙにdirectionが配置される場合、その大小順序は、水平エッジ、エッジ無し、垂直エッジ、もしくは、垂直エッジ、エッジ無し、水平エッジという順となると良い。一般に垂直エッジが存在すると想定される部分領域と、水平エッジが存在すると想定される部分領域は、互いに異なる特性であるため、異なるフィルタ係数群を用いてフィルタ処理を行うことが多い。特性値Ｘもしくは特性値Ｙが同一の値の既に処理済みの部分領域（隣接領域）から、フィルタインデックスを推定する場合には、特性値領域において隣接する部分領域の特性が類似するように、上記順序の方が好適である。なお、フィルタインデックスに限らず、隣接領域からフィルタ係数群を推定する場合にも、上記順序が好適である。
【０１５０】
第１特性値actは、以下のように、中間値varTemp3をビット深度に応じて正規化し０〜１５の値にクリップする。さらにクリップされた値をテーブルvarTabにより量子化することでactとする。
varTab[16] = { 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4 }
avgVar[x][y] = Clip3( 0, 15, (varTemp3[ x >> 2 ][ y >> 2 ] * 114 ) >> (3 + BitDepthY) )
act = Clip3( 0, 4, varTab[avgVar[x][y]])
なお、Clip3（x, y, z）は値zをx以上、y以下にクリップする関数であり、BitDepthYは、画素のビット深度を示す。
【０１５１】
テーブルvarTabは、小さい活性度の領域ほど細かく分類するように設定する。すなわち、小さい値に量子化される、量子化前活性度varTemp3の範囲の方が、大きな値に量子化される量子化前活性度varTemp3の範囲よりも狭くなるように設定する。一般に画像は、小さい活性度の領域に集中することが多いからである。小さい値に量子化される値の範囲の方が小さい、という上記制約は必ずしも全ての段階で成り立つ必要はなく、多くの場合に成り立てばよい。量子化後活性度から3つの値0, m, nを選び出した場合（但し0<m<n）、0の範囲＜mの範囲<nの範囲となるm, nの組が存在するという制約で良い。また、量子化化後活性度から4つの値、0, l, m, mを選び出した場合（但し0<l<m<n）、0の範囲＜＝ｌの範囲＜ｍの範囲＜＝ｎの範囲となるl, m, nの組が存在するという制約でも良い。
【０１５２】
ＢＡ１領域インデックス算出部１５６５は、以下の式により、
ridx = act + w * direction
を求める。但しここではw=5である。
【０１５３】
以上のＢＡ１モードでは、互いに直交する方向の活性度を用いて、２次元特性値を求めることにより、比較的少ない演算量で互いに直交する２つの方向のエッジを識別し、異なる領域として分類することができる。ここでは水平方向活性度と垂直方向活性度を用いることによって水平方向エッジと垂直方向エッジを識別することができる。２次元特性値を活性度と方向性という２軸にする場合に、活性度の算出に方向性の算出に用いる水平方向活性度と垂直方向活性度を使用することができるため、活性度の算出と方向性の算出に別の中間値を用いる場合に比べて演算量を削減することができる。また、方向性の算出は、水平方向活性度と垂直方向活性度の比較によって行うため比較的小さな演算量で実現可能である。
【０１５４】
ＢＡ２モード領域インデックス算出部１５７０では、座標値（ｘＣ、ｙＣ）で指定される単位領域に対して、座標値を参照して領域インデックスを算出する。ＢＡ２第１特性値算出部１５７１は単位ブロックの特性値Ｘとして活性度actを出力し、ＢＡ２第２特性値
算出部１５７２は単位ブロックの活性度directionを出力し、ＢＡ２フィルタインデック
ス算出部１５７５においてactとdirectionから領域インデックスridxを算出する。より具体的には、下記の流れにより、actとdirectionを算出する。まず、中間値として、各画素の第１の斜め活性度varTempDAと、第１の斜め活性度とは異なる方向の第２の斜め活性度varTempDBを算出する。以下の式ではラプラシアンを用いているが、単なる差分でも構わない。
varTempDA[ x ][ y ] = | ( s’[ xC+x, yC+y ] << 1 ) - s’[ xC+x-1, yC+y+1 ] - s’[ xC+x+1, yC+y-1 ] |
varTempDB[ x ][ y ] = | ( s’[ xC+x, yC+y ] << 1 ) - s’[ xC+x+1, yC+y-1 ] - s’[ xC+x-1, yC+y+1 ] |
ここで、ｓ´は、適応フィルタの入力画素値、||は、絶対値を算出する関数である。
【０１５５】
続いて、以下の式によって、中間値varTemp1とvarTemp2を算出する。
varTemp1[ x ][ y ] = varTempDA[ x ][ y ] + varTempDB[ x ][ y ]
varTemp2[ x ][ y ] = ΣiΣj varTemp1[ x + i ][ y + j ]
但し、i, j = -1..1である。
【０１５６】
続いて、以下の式によって、単位ブロック内（もしくは単位ブロック周辺を含めて）で中間値を足し合わせることにより、単位ブロックの活性度を算出する。すなわち、活性度varTemp3、水平活性度varTempDA1、水平活性度varTempDB1を算出する。
varTemp3[ x ][ y ] = (ΣiΣj varTemp2[ (x << 2 ) + i ][ (y << 2) + j ]) >> 4 varTempDA1[ x ][ y ] = ΣiΣj varTempDA[ (x << 2 ) + i ][ (y << 2) + j ] varTempDB1[ x ][ y ] = ΣiΣj varTempDB[ (x << 2 ) + i ][ (y << 2) + j ]
但し、i, j = 0..3である。
【０１５７】
第２特性値directionは、以下のように、単位ブロックの水平活性度varTempDA1と水平
活性度varTempDB1の大きさの比較から算出する。
varTempDA1[ x >> 2 ][ y >> 2 ] > varTempDB1[ x >> 2 ][ y >> 2 ] << 1の場合に、direction = 1
それ以外で、varTempDB1[ x >> 2 ][ y >> 2 ] > varTempDA1[ x >> 2 ][ y >> 2 ] << 1の場合に、direction = 2
それ以外の場合に、direction = 0。
【０１５８】
第１特性値actは、ＢＡ１モードと同様の方法により中間値varTemp3から算出される。
【０１５９】
ＢＡ２領域インデックス算出部１５７５も、ＢＡ１と同様actとdirectionからridxを求める。
【０１６０】
特徴空間分割における特性値Ｘと特性値Ｙから領域インデックスを算出する方法（領域インデックス算出方法）は、既に説明した方法の他、別の方法を用いることができる。図３１は、２つの特性値から領域インデックスを算出する方法を説明する図である。
図３１（ａ）は、第１の領域インデックス算出方法を説明する図である。ＢＡ１領域インデックス算出部１５６５及びＢＡ２領域インデックス算出部１５７５で既に説明したように、５段階の特性値Ｘと３段階の特性値Ｙをラスタスキャン順にスキャンすることによって、図中の０〜１５の順にスキャンする。
図３１（ｂ）は、第２の領域インデックス算出方法を説明する図である。第１の領域インデックス算出方法のようにラスタスキャン順の場合では、２次元座標上、右端（特性値Ｘが最大値）に到達すると、次には一つ下の左端（特性値Ｘが０）の部分領域をスキャンする。この場合、スキャン順において隣接する部分領域の間で、Ｘ軸方向の特性値Ｘの値の変化が大きい。図３１（ｂ）では、２次元座標上、端（特性値Ｘが最大値）に到達すると、次には一つ下の同じ端（特性値Ｘが０）の部分領域をスキャンする。より具体的には、
ridx = act + w * direction          （direction が偶数の場合）
ridx = -act - 1 + w * （direction＋１)    （directionが奇数の場合）
により計算できる
この算出方法は一筆書き（ヒルベルトスキャン）の算出方法と呼ぶ。
図３１（ｃ）は第３の領域インデックス算出方法を説明する図である。第３の領域インデックス算出方法では、特性値Ｘが小さい場合に、特性値Ｙを区別せずに割り当てる。活性度（領域の乱雑さ、エッジの強さ、勾配の大きさ）に対応する特性値Ｘが小さい場合には、方向性の重要性が比較的低いため、活性度が低い場合に細かく方向性を用いて部分空間を分割を行わない。より具体的には、所定の閾値ＴＨを用いて、以下の式で、計算できる。
ridx = act                         （act < THの場合）
ridx = act - TH + w *direction    （act >= THの場合）
図では、ＴＨ＝1、w=6の例である。また、活性度が小さい場合をより細かい分割をすることも可能である。
図３１（ｄ）は第４の領域インデックス算出方法を説明する図である。第４の領域インデックス算出方法では、特性値Ｘが小さい場合で、特性値Ｙが特定のグループに属する場合には、特性値Ｘの分類の粒度を下げる。特性値Ｘが小さい場合には、方向性有りと分類される場合（頻度）が比較的小さい。そのため方向性に対応する特性値Ｙが方向性ありを示す１もしくは２である場合には、特性値Ｘが小さい場合の頻度が小さいため、複数の特性値Ｘをまとめて１つの領域インデックスを割り当てる。逆にいえば、ある領域インデックスに割り当てられる特性値Ｘの範囲（閾値）を、特性値Ｙが方向性なしに対応する場合に比べて大きくする。より具体的には、まず、
また、tmpidx = act + w *directionで算出される中間インデックスで、所定のテーブルridxtbl[]を引くことによっても算出可能である。例えば
ridxtbl[] = {0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 15}
のテーブルにより次の式で算出可能である。
ridx = tbl[tmpidx]
このようにラスタスキャン順に割り当てら得るtmpidxのような中間インデックスを用いて、中間インデックスと領域インデックスの関係を示す所定のテーブルridxtbl[]を引いて、領域インデックスを算出する方法は、図３１（ａ）、図３１（ｂ）、図３１（ｃ）など他の領域インデックス算出方法でも適用可能である。
【０１６１】
以上のＢＡ２モードは、ＢＡ１モードと同様、互いに直交する方向の活性度を用いて、２次元特性値を求めることにより、比較的少ない演算量で互いに直交する２つの方向のエッジを識別し、異なる領域として分類することができる。ここでは２つの互いに直交する斜め方向活性度を用いることによって斜め４５度エッジとそれと直交する斜め１３５度方向エッジを識別することができる。なお上記角度は、水平方向を０度とした場合のエッジのなす角で説明している。
【０１６２】
ＢＡ１モードとＢＡ２モードは両者を備えることは互いに相補的な識別能力を有する２つの直交した特性値算出方法を用いるという点で適当である。
【０１６３】
（フィルタ係数割り付け部１５２３）
フィルタ係数割り付け部１５２３は、領域にフィルタ係数を割り当てる。まず、領域インデックス算出部１５２２で算出された領域インデックスridxと、領域構造復号部１５１２で復号されたフィルタインデックステーブルFilterIdxTbl[]から、フィルタインデックスfidxを、fix = FilterIdxTbl[ridx]により算出する。続いて、得られたフィルタインデックスfixに対応するフィルタ係数RegionFilterLuma[ridx]をフィルタ係数格納部１５１５から読み出し、フィルタ部１５２４に出力する。
【０１６４】
領域インデックス算出部１５２２とフィルタ係数割り付け部１５２３は全体として、各単位領域に対してフィルタ係数群の割り付けが行われる。すなわち、領域インデックス算出部１５２２において各単位領域に対して領域インデックスridxが算出され、フィルタ係数割り付け部１５２３において領域インデックスridxからフィルタ係数群の割り付けが行われる。
【０１６５】
なお、対象の部分領域がフィルタオフとなる場合には、フィルタ係数割り付け部１５２３は、その領域に対するフィルタ係数を割り付けず、フィルタ部１５２４に対してフィルタオフとする信号を出力する。例えば、適応的フィルタオフ復号部において、各領域に対するフィルタオフが指定されている場合や、ＣＵ単位などの単位領域毎にフィルタオフが指定されている場合がこれに該当する。
【０１６６】
（フィルタ形状）
図１３は本発明の実施形態で用いるフィルタ形状の例を示す図である。フィルタ形状は、後述の参照領域Ｒを定める。図１３（ａ）から（ｄ）のフィルタ形状は、斜め方向の参照画素を比較的多く備えるフィルタ形状（斜め方向形状）の例であり、順に、星、矩形、矩形´、矩形´´と呼ぶ。図１３（ｅ）から（ｈ）のフィルタ形状は、水平方向もしくは、垂直方向の参照画素を比較的多く備えるフィルタ形状（水平垂直方向形状）の例であり、順にクロス、クロス´、クロス´´、菱形と呼ぶ。対象画素の周辺画素を用いる空間フィルタは、対象画素と相関の高い画素（対象画素と画素値が近い画素）の重み付き平均によって、対象画素に生じたノイズを低減するものであり、相関の高い方向の画素をより多く用いる方が効果が大きくなる。斜めエッジを含む領域は、斜め方向の相関が高いことから、斜め方向の画素を多く備えるフィルタ形状が好適であり、水平エッジもしくは垂直エッジを含む領域は、水平エッジ、垂直エッジの相関が高いことから、水平、垂直方向の画素を多く備えるフィルタ形状が好適である。フィルタ形状の分類は、基本的には、特定方向に位置する参照画素の数の全体からの割合を用いて定められる。具体的には、各参照画素に対し、中心画素からみて、水平方向、垂直方向、斜め４５度方向、斜め１３５度方向のいずれの方向に最も近いかをカウントし、水平方向及び垂直方向のカウントが最も多い場合には、水平垂直形状、斜め方向のカウントが最も多い場合には、斜め形状に分類する。星については、斜め方向の参照画素と、水平垂直方向の画素の数が等しく、必ずしも斜め方向の参照画素を比較的多く備えるとは言えないが、図１４に示すとおり、フィルタ係数の組を考慮した場合に、星と組をなすクロスよりも相対的に斜め方向の参照画素が多いことから斜め形状に分類している。このように、フィルタ形状の分類は相対的なものであっても良い。
【０１６７】
図１４は本発明の実施形態で用いるフィルタ係数の組の例である。図（ａ）から（ｄ）に示すとおり、本発明の実施形態では、斜め方向形状と、水平垂直形状の組を用いる。例えば、星と、クロスの組を用いる。ここではフィルタ形状alf_feature_mode=0である方を斜め方向形状、フィルタ形状alf_filter_mode=1である方を水平垂直形状とする。
【０１６８】
さらに、フィルタ係数の組として２つより多いフィルタ係数の組を用いることも可能である。一つの例は、星、矩形、クロス、クロス´をフィルタ係数の組として用いる。この場合、相異なる方向性を有するフィルタ係数が含まれることが好ましい。例えば、斜め方向形状のフィルタ係数を１つ以上含み、水平垂直方向形状のフィルタ係数を１つ以上含む構成が良い。また、フィルタ形状の方向性は、斜め方向、水平垂直方向に限定されず、他の方向性を有しても良い。例えば、斜め方向を右上斜め方向と左上斜め方向で分離して、斜め４５度方向、斜め１３５度方向（水平方向を０度とする反時計回り）の方向性を有するフィルタ形状や、水平垂直方向を２つに分離して、水平方向、垂直方向の方向性を有するフィルタ形状を用いることができる。
【０１６９】
（フィルタ形状と特徴量モード）
特徴量モード算出部１５２６の算出で用いた、フィルタ形状alf_filter_modeに応じて、特徴量モードalf_feature_modeを切り替える方法について詳細を説明する。図４は、フィルタ形状と好適な特徴空間分割における特性値算出方法（ＢＡ計算モードalf_ba_comp_mode）の関係を示す図である。図に示すように、フィルタ形状が星および矩形など、斜め方向の参照画素を比較的多く備えるフィルタ形状においては、ＢＡ計算モードを斜め方向とすることを示す。また、フィルタ形状がクロスおよび菱形など、水平方向もしくは、垂直方向の参照画素を比較的多く備えるフィルタ形状においては、ＢＡ計算モードを水平垂直方向とすることを示す。
【０１７０】
ＢＡ計算モードが斜め方向であるとは、斜め方向のエッジや勾配の分解性能が高いＢＡモードを用いることに相当し、特徴量モードではＢＡ２モードが該当する。ＢＡ計算モードが水平垂直方向とは、水平方向及び垂直方向のエッジや勾配の分解性能が比較的高いＢＡモードを用いることに相当し、特徴量モードではＢＡ１モードが該当する。
なお、斜め４５度、斜め１３５度のフィルタ形状の場合には、斜め方向のＢＡ計算モードが好適であり、水平方向、垂直方向のフィルタ形状の場合には、水平垂直方向のＢＡ計算モードが好適である。
【０１７１】
図５は、本実施形態のフィルタ形状とＢＡ計算モードの組み合わせの例を示す図である。フィルタ形状モードalf_filter_modeが０の場合、フィルタ形状には斜め形状である星が用いられ、ＢＡ特性モードには斜め方向が用いられる。逆に、フィルタ形状モードalf_filter_modeが１の場合、フィルタ形状には斜め形状であるクロスが用いられ、ＢＡ特性モードには水平垂直方向が用いられる例を示している。既に説明したように、斜め方向に適したフィルタ形状である場合に、斜め方向に適した特性値算出方法を用い、水平垂直方向に適したフィルタ形状である場合に、水平垂直方向に適した特性値算出方法を用いることにより、画像のエッジ方向及び勾配方向に適した特性値部分領域に分類することが可能になり、高い適応フィルタの効果を得ることができる。さらに画像のエッジ方向及び勾配方向に適したフィルタ形状を用いることによりさらに高い適応フィルタの効果を得ることができる。
【０１７２】
（自由度の数）
図６を用いて既に説明したとおり、領域適応モードの組合せはＲＡモードとＢＡモードで２つ、フィルタ形状の組合せは２つであるため、領域適応モードとフィルタ形状で合わせて４つ（＝領域適応モード×フィルタ形状＝２×２）の自由度を有する。特徴空間分割を行う際に、フィルタ係数の方向性に関わらず、全ての方向性の特性値算出方法を用いることが可能な場合には、領域適応モードの組合せはＲＡモードとＢＡ１モード、ＢＡ２モードで３つ、フィルタ形状の組合せは２つとする場合であり、この場合、領域適応モードとフィルタ形状で合わせて６つの自由度を有する。符号化装置において多くの自由度が大きい場合には、適当な場合を選択するために多くの演算量を必要とするため、同じもしくは近い程度の効果が得られる場合には、自由度は小さい方が良い。本実施形態では、特徴空間分割に用いる特性値算出方法の方向性と、フィルタ形状の方向性を一致させることにより、複雑度の低減を実現できる。
【０１７３】
（別の構成）
図３２は、本実施形態の領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeの組み合わせの別の構成である。この例では、図６の構成と同じ動作をするが、フィルタ形状毎に領域適応モードalf_region_adaptation_flagに値を割り当てる。具体的には、領域適応モードはＲＡ１モード、ＲＡ２モード、ＢＡ１モード、ＢＡ２モードの値をとり、ＲＡ１モード、ＢＡ２モードでは斜め形状、ＲＡ２モード、ＢＡ１モードでは水平垂直形状を用いる。領域適応モードがＲＡ１モード、ＲＡ２モードの場合のどちらも特徴量モードとしてはＲＡモードを用いる。図３２（ａ）のＲＥＣＴ１のボックスで示すように、特性値算出方法の方向性とフィルタ形状の方向性は対応している。
【０１７４】
本実施形態では、フィルタ形状に合わせて、特徴空間分割の特性値算出方法（ＢＡ計算モード）を切り替える構成を説明したが、特徴空間分割の特性値算出方法に合わせて、フィルタ形状を算出する方法でも構わない。この場合、符号化データとしては、領域適応モードとＢＡ計算モードを含む構成を用いることも可能である。図３２（ｂ）は、領域適応モードがＢＡモードである場合にはさらにＢＡ計算モードを復号する例である。おのとき、ＢＡ計算モードが斜め方向である場合には、フィルタ形状として星や矩形などの斜め形状を用い、ＢＡ計算モードが水平垂直である場合には、フィルタ形状としてクロスや菱形などの水平垂直形状を用いる。図３２（ａ）のＲＥＣＴ１と、図３２（ａ）のＲＥＣＴ２のボックス内が実質的に同じ対応関係を有していうように、フィルタ形状を復号する構成であっても、特徴空間分割の特性値算出方法を復号する構成であっても構わない。この場合、データ構造は、ＦＰ＃５と同様にフィルタ構造alf_filter_modeを符号化しない、もしくは、ＦＰ＃７と同様に、特性値算出方法が座標空間分割に対応する領域適応モードがＲＡモードの場合では、フィルタ構造alf_filter_modeを符号化するが、特性値算出方法が特徴空間分割に対応するＢＡモードの場合ではalf_fitler_modeを符号化しない構成となる。また、特性値算出方法からフィルタ形状を算出する手段は、第３の実施形態および第３の実施形態の変形例で説明するように領域適応モード・ フィルタ形状復号部１９１３、領域適応モード・ フィルタ形状復号部２１１３となる。
【０１７５】
（フィルタ部１５２４）
フィルタ部１５２４は、対象単位領域に対して、フィルタ係数RegionFilterLuma[fidx] 及びフィルタ形状alf_filter_modeを用いたフィルタ処理を施すことによって、該対象単位領域におけるフィルタ済復号画像Ｐ＿ＦＬを生成する。生成されたフィルタ済復号画像Ｐ＿ＦＬは、バッファメモリ１５に格納される。
【０１７６】
より具体的には、フィルタ済復号画像Ｐ＿ＦＬ（「フィルタ後画像」とも呼称する）におけるフィルタ対象画素の画素値をＳF（ｘ’、ｙ’）と表し、デブロック済復号画像Ｐ
＿ＤＢ（「フィルタ前画像」とも呼称する）における画素値をＳ（ｘ、ｙ）と表すことにすると、フィルタ部１５２４は、画素値ＳF（ｘ’、ｙ’）を、数式（１）によって算出する。
【数１】
2014197722.tif 000003
【０１７７】
ここで、座標（ｘ、ｙ）は座標（ｘ’、ｙ’）と同一の座標としてもよいし、１対１の対応を有していれば、異なった座標としてもよい。また、a（ｕ、ｖ）は、フィルタ前画像の画素値Ｓ（ｘ＋ｕ、ｙ＋ｖ）に乗ぜられるフィルタ係数を表しており、フィルタ係数割り付け部１５２３から供給されたフィルタ係数RegionFilterLuma[fidx]の各成分に対応する。また、oは、フィルタ係数RegionFilterLuma[fidx]に含まれるオフセット成分を表している。
【０１７８】
また、数式（１）におけるＲは、フィルタ処理において参照される領域（「フィルタ参照領域Ｒ」とも呼称する）を表している。参照領域Ｒのフィルタ形状は、alf_filter_modeによって指定される。
【０１７９】
また、各フィルタ係数は、１８０度の回転対称性を有するように、フィルタ参照領域Ｒに含まれる各画素に対して割り付けられる構成とすることができる。すなわち、a（ｕ、
ｖ）＝a（−ｕ、−ｖ）を満たすように設定される構成とすることができる。このような
構成とすることによって、alf_coeff_luma[i][j]に含まれる各成分の数を削減することができる。
【０１８０】
なお、復号装置が、適応的フィルタオフ復号部を有する場合で、フィルタ係数の割り付けがない場合には、フィルタ処理は行わない。
【０１８１】
（動画像符号化装置２）
以下では、符号化対象画像を符号化することによって符号化データ＃１を生成する動画像符号化装置２について、図ｘｘを参照して説明する。動画像符号化装置２は、その一部に、Ｈ．２６４／ＭＰＥＧ−４．ＡＶＣに採用されている方式、ＶＣＥＧ（Video Coding Expert Group）における共同開発用コーデックであるＫＴＡソフトウェアに採用されている方式、その後継コーデックであるＴＭｕＣ（Test Model under Consideration）ソフトウェアに採用されている方式、及び、ＨＭ（HEVC TestModel）ソフトウェアに採用されている技術を含んでいる。
【０１８２】
図３は、本実施形態に係る動画像符号化装置２の構成を示すブロック図である。図３に示すように、動画像符号化装置２は、変換・量子化部２１、可変長符号符号化部２２、逆量子化・逆変換部２３、バッファメモリ２４、イントラ予測画像生成部２５、インター予測画像生成部２６、動きベクトル検出部２７、予測方式制御部２８、動きベクトル冗長性削除部２９、加算器３１、減算器３２、デブロッキングフィルタ３３、および、適応フィルタ１６０を備えている。動画像符号化装置２は、動画像＃１０（符号化対象画像）を符号化することによって、符号化データ＃１を生成する装置である。
【０１８３】
変換・量子化部２１は、（１）符号化対象画像から予測画像Ｐｒｅｄを減算した予測残差Ｄをブロック毎にＤＣＴ変換（Discrete Cosine Transform）し、（２）ＤＣＴ変換により得られたＤＣＴ係数を量子化し、（３）量子化により得られた量子化予測残差ＱＤを可変長符号符号化部２２及び逆量子化・逆変換部２３に供給する。なお、変換・量子化部２１は、（１）量子化の際に用いる量子化ステップＱＰを、ツリーブロック毎に選択し、（２）選択した量子化ステップＱＰの大きさを示す量子化パラメータ差分Δｑｐを可変長符号符号化部２２に供給し、（３）選択した量子化ステップＱＰを逆量子化・逆変換部２３に供給する。ここで、量子化パラメータ差分Δｑｐとは、ＤＣＴ変換／量子化するツリーブロックに関する量子化パラメータｑｐ（ＱＰ＝２ｐｑ／６）の値から、直前にＤＣＴ変換／量子化したツリーブロックに関する量子化パラメータｑｐ’の値を減算して得られる差分値のことを指す。
【０１８４】
可変長符号符号化部２２は、（１）変換・量子化部２１から供給された量子化予測残差ＱＤ並びにΔｑｐ、（２）後述する予測方式制御部２８から供給された量子化パラメータＰＰ、および、（３）後述する適応フィルタ１６０から供給されたフィルタセット番号、フィルタ係数群、領域指定情報、並びにオンオフ情報を可変長符号化することによって、符号化データ＃１を生成する。
【０１８５】
逆量子化・逆変換部２３は、（１）量子化予測残差ＱＤを逆量子化し、（２）逆量子化によって得られたＤＣＴ係数を逆ＤＣＴ（Discrete Cosine Transform）変換し、（３）逆ＤＣＴ変換によって得られた予測残差Ｄを加算器３１に供給する。量子化予測残差ＱＤを逆量子化する際には、変換・量子化部２１から供給された量子化ステップＱＰを利用する。なお、逆量子化・逆変換部２３から出力される予測残差Ｄは、変換・量子化部２１に入力される予測残差Ｄに量子化誤差が加わったものであるが、ここでは簡単のために共通の呼称を用いる。
【０１８６】
イントラ予測画像生成部２５は、各パーティションに関する予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。具体的には、（１）各パーティションついてイントラ予測に用いる予測モードを選択し、（２）選択した予測モードを用いて、復号画像Ｐから予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。イントラ予測画像生成部２５は、生成したイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを、予測方式制御部２８に供給する。
【０１８７】
また、イントラ予測画像生成部２５は、各パーティションについて選択された予測モードから、各パーティションのサイズとから各パーティションについての予測インデックスＰＩを特定し、当該予測インデックスＰＩを予測方式制御部２８に供給する。
【０１８８】
また、イントラ予測画像生成部２５は、対象パーティションのサイズ、および、対象パーティションに割り付けられた予測モードを示す情報であるイントラ符号化モード情報ＩＥＭを適応フィルタ１６０に供給する。
【０１８９】
動きベクトル検出部２７は、各パーティションに関する動きベクトルｍｖを検出する。具体的には、（１）参照画像として利用するフィルタ済復号画像Ｐ＿ＦＬ’を選択し、（２）選択したフィルタ済復号画像Ｐ＿ＦＬ’において対象パーティションを最良近似する領域を探索することによって、対象パーティションに関する動きベクトルｍｖを検出する。ここで、フィルタ済復号画像Ｐ＿ＦＬ’は、既に復号が完了した復号済みの復号画像に対して、デブロッキングフィルタ３３によるデブロック処理、および、適応フィルタ１６０による適応的フィルタ処理を施すことによって得られる画像であり、動きベクトル検出部２７は、フィルタ済復号画像Ｐ＿ＦＬ’を構成する各画素の画素値をバッファメモリ２４から読み出すことができる。動きベクトル検出部２７は、検出した動きベクトルｍｖを、参照画像として利用したフィルタ済復号画像Ｐ＿ＦＬ’を指定する参照画像インデックスＲＩと共に、インター予測画像生成部２６及び動きベクトル冗長性削除部２９に供給する。なお、双方向予測（重み付き予測）を行うパーティションについては、参照画像として２枚のフィルタ済復号画像Ｐ＿ＦＬ１’及びＰ＿ＦＬ２’を選択し、２枚のフィルタ済復号画像Ｐ＿ＦＬ１’及びＰ＿ＦＬ２’の各々に対応する動きベクトルｍｖ１及びｍｖ２、並びに、参照画像インデックスＲＩ１及びＲＩ２をインター予測画像生成部２６及び動きベクトル冗長性削除部２９に供給する。
【０１９０】
インター予測画像生成部２６は、各インター予測パーティションに関する動き補償画像ｍｃを生成する。具体的には、動きベクトル検出部２７から供給された動きベクトルｍｖを用いて、動きベクトル検出部２７から供給された参照画像インデックスＲＩによって指定されるフィルタ済復号画像Ｐ＿ＦＬ’から動き補償画像ｍｃを生成する。動きベクトル検出部２７と同様、インター予測画像生成部２６は、フィルタ済復号画像Ｐ＿ＦＬ’を構成する各画素の画素値をバッファメモリ２４から読み出すことができる。インター予測画像生成部２６は、生成した動き補償画像ｍｃ（インター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒ）を、動きベクトル検出部２７から供給された参照画像インデックスＲＩと共に、予測方式制御部２８に供給する。なお、双方向予測（重み付き予測）をパーティションについては、（１）動きベクトルｍｖ１を用いて、参照画像インデックスＲＩ１によって指定されたフィルタ済復号画像Ｐ＿ＦＬ１’から動き補償画像ｍｃ１を生成し、（２）動きベクトルｍｖ２を用いて、参照画像インデックスＲＩ２によって指定されたフィルタ済参照画像Ｐ＿ＦＬ２’から動き補償画像ｍｃ２を生成し、（３）動き補償画像ｍｃ１と動き補償画像ｍｃ２との加重平均にオフセット値を加えることによってインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを生成する。
【０１９１】
予測方式制御部２８は、イントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａ及びインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを符号化対象画像と比較し、イントラ予測を行うかインター予測を行うかを選択する。イントラ予測を選択した場合、予測方式制御部２８は、イントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを予測画像Ｐｒｅｄとして加算器３１及び減算器３２に供給すると共に、イントラ予測画像生成部２５から供給された予測インデックスＰＩを予測パラメータＰＰとして可変長符号符号化部２２に供給する。一方、インター予測を選択した場合、予測方式制御部２８は、インター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを予測画像Ｐｒｅｄとして加算器３１及び減算器３２に供給すると共に、インター予測画像生成部２６から供給された参照画像インデックスＲＩ、並びに、動きベクトル冗長性削除部２９（後述）から供給された推定動きベクトルインデックスＰＭＶＩ及び動きベクトル残差ＭＶＤを予測パラメータＰＰとして可変長符号符号化部に供給する。
【０１９２】
予測方式制御部２８にて選択された予測画像Ｐｒｅｄを、符号化対象画像から減算することによって、減算器３２にて予測残差Ｄが生成される。減算器３２にて生成された予測残差Ｄは、上述したとおり、変換・量子化部２１によってＤＣＴ変換／量子化される。一方、予測方式制御部２８にて選択された予測画像Ｐｒｅｄを、逆量子化・逆変換部２３にて生成された予測残差Ｄに加算することによって、加算器３１にて局所復号画像Ｐが生成される。加算器３１にて生成された局所復号画像Ｐは、デブロッキングフィルタ３３および適応フィルタ１６０を経由したのち、フィルタ済復号画像Ｐ＿ＦＬとしてバッファメモリ２４に格納され、インター予測における参照画像として利用される。
【０１９３】
なお、動きベクトル冗長性削除部２９は、動きベクトル検出部２７によって検出された動きベクトルｍｖにおける冗長性を削除する。具体的には、（１）動きベクトルｍｖの推定に用いる推定方法を選択し、（２）選択した推定方法に従って推定動きベクトルｐｍｖを導出し、（３）動きベクトルｍｖから推定動きベクトルｐｍｖを減算することにより動きベクトル残差ＭＶＤを生成する。動きベクトル冗長性削除部２９は、生成した動きベクトル残差ＭＶＤを、選択した推定方法を示す推定動きベクトルインデックスＰＭＶＩと共に、予測方式制御部２８に供給する。
【０１９４】
デブロッキングフィルタ３３は、復号画像Ｐにおけるブロック境界、またはＣＵ境界を介して互いに隣接する画素の画素値の差が予め定められた閾値よりも小さい場合に、復号画像Ｐにおける当該ブロック境界、または当該ＣＵ境界に対してデブロッキング処理を施すことによって、当該ブロック境界、または当該ＣＵ境界付近の画像の平滑化を行う。デブロッキングフィルタ３３によりデブロッキング処理が施された画像は、デブロック済復号画像Ｐ＿ＤＢとして、適応フィルタ１６０に出力される。
【０１９５】
適応フィルタ１６０は、デブロッキングフィルタ３３から供給されるデブロック済復号画像Ｐ＿ＤＢに対して、適応的なフィルタ処理を施すことによって、フィルタ済復号画像Ｐ＿ＦＬを生成する。適応フィルタ１６０によりフィルタ処理が施されたフィルタ済復号画像Ｐ＿ＦＬは、バッファメモリ２４に格納される。適応フィルタ１６０の具体的な構成については、後述するため、ここでは説明を省略する。
【０１９６】
（適応フィルタ１６０）
適応フィルタ１６０は、デブロック済復号画像Ｐ＿ＤＢに対して、適応的フィルタ処理を施すことによって、フィルタ済復号画像Ｐ＿ＦＬを生成する。生成されたフィルタ済復号画像Ｐ＿ＦＬは、バッファメモリ２４に格納される。また、適応フィルタ１６０は、フィルタ処理に用いた各種の適応フィルタ情報をフィルタパラメータＦＰ＃１として可変長符号符号化部２２に供給する。可変長符号符号化部２２は、フィルタパラメータＦＰ＃１を符号化データ＃１の一部として符号化する。
【０１９７】
図２４は、適応フィルタ１６０の構成を示すブロック図である。図２４に示すように、適応フィルタ１６０は、適応フィルタ情報設定部１６１、および、適応フィルタ部１６２を備えている。
【０１９８】
適応フィルタ情報設定部１６１は、図２４に示すように、フィルタ形状設定部１６１１、領域構造設定部１６１２、領域適応モード設定部１６１３、フィルタ係数残差生成部１６１４、フィルタ係数格納部１６１５、及び、フィルタパラメータ生成部１６１６を備えている。
【０１９９】
フィルタ形状設定部１６１１は、フィルタ係数のフィルタ形状を指定するためのシンタックスalf_filter_modeを設定する。設定されたシンタックスalf_filter_modeは、フィルタパラメータ生成部１６１６に供給される。
【０２００】
領域構造設定部１６１２は、フィルタインデックステーブルFilterIndexTblを設定する。設定されたシンタックスFilterIndexTblは、フィルタパラメータ生成部１６１６に供給される。
【０２０１】
領域適応モード設定部１６１３は、シンタックスalf_region_adaptation_flag を設定する。設定されたシンタックスalf_region_adaptation_flagは、適応フィルタ部１６２に供給され、さらにフィルタパラメータ生成部１６１６に供給される。
【０２０２】
なお、alf_filter_mode、FilterIndexTbl、及び、alf_region_adaptation_flag、は、符号化効率がより向上するように設定される。
【０２０３】
フィルタ係数残差生成部１６１４は、以下の式によってシンタックスalf_coeff_luma[i][k]を生成する。
【０２０４】
alf_coeff_luma[i][k] = AlfRegionFilterCoeff[i-1][k] - AlfRegionFilterCoeff[i][k] (i=0以外の場合)
alf_coeff_luma[0][k] = AlfRegionFilterCoeff[i][k] (i=0の場合)
生成されたフィルタ係数残差alf_coeff_luma[i][k]はフィルタパラメータ生成部１６１６に供給される。
【０２０５】
フィルタ係数格納部１６１５には、後述するフィルタ係数導出部１６２３から供給されるフィルタ係数群AlfRegionFilterCoeff[i][k]とフィルタ形状alf_filter_modeが格納される。
【０２０６】
フィルタパラメータ生成部１６１６は、シンタックスalf_filter_modeとalf_region_adaptation_flag、フィルタインデックスFilterIndexTbl[ridx]、および、alf_coeff_luma[i][k]からフィルタパラメータＦＰ＃１を生成する。ここで、フィルタインデックスFilterIndexTbl[ridx]の符号化においては、ridx＝１からAlfNumRegion-1までの各部分領域において、フィルタ係数群を示すフィルタインデックスを符号化することによって行われる。生成されたフィルタパラメータＦＰ＃１は、可変長符号符号化部２２に供給される。
【０２０７】
（適応フィルタ部１６２）
適応フィルタ部１６２は、適応フィルタ部１６２は、領域インデックス算出部１５２２、フィルタ係数導出部１６２３、及びフィルタ部１５２４を備えている。領域インデックス算出部１５２２を備えている。領域インデックス算出部１５２２、フィルタ部１５２４については、既に述べたため、ここでは説明を省略する。
【０２０８】
（フィルタ係数導出部１６２３）
フィルタ係数導出部１６２３は、対象特性値分類領域におけるフィルタ済復号画像Ｐ＿ＦＬと符号化対象画像との誤差がより小さくなるようなフィルタ係数RegionFilterLuma[i][j]を導出する。導出されたフィルタ係数RegionFilterLuma[i][j]は、フィルタ部１５２４に供給されると共に、フィルタ係数格納部１６１５に格納される。
【０２０９】
対象単位領域におけるデブロック済復号画像Ｐ＿ＤＢの画素値をＳ（ｘ、ｙ）と表し、対象単位領域における符号化対象画像の画素値をＳT（ｘ、ｙ）と表すことにすると、フ
ィルタ係数導出部１６２３は、例えば、以下の数式（１−５）によって与えられる二乗誤差Ｅを最小にするようなフィルタ係数ａ（ｕ、ｖ）およびオフセットｏを導出する。ここで、フィルタ係数ａ（ｕ、ｖ）およびオフセットｏは、RegionFilterLuma[i][j]の各成分である。
【０２１０】
以上の構成では、領域インデックス算出部において、単位領域の属性から算出される多次元の特性値から各単位領域を分類するための分類パラメータ（領域インデックス）を算出し、フィルタ部では、２つ以上のフィルタ形状から１つのフィルタ形状を用いてフィルタ処理を行う。領域インデックス算出方法として単位領域の画素値を用いて領域分類を行う特徴空間分割を備える場合においては、特徴空間分割に用いる特性算出方法の方向性と、適応フィルタ部において特性値分割領域に対して割り当てられ、フィルタ部におけるフィルタ処理に用いられる、フィルタ係数群のフィルタ形状の方向性とを対応させる。具体的には、
水平垂直方向の方向性を有する特性値算出方法（ＢＡ１モード）を用いる場合には、水平垂直形状のフィルタ形状（本実施形態ではクロス）を用い、斜め方向の方向性を有する特性値算出方法（ＢＡ２モード）を用いる場合には、斜め形状（本実施形態では星）フィルタ形状を用いるように、特徴空間分割に用いる特性算出方法の方向性とフィルタ係数群のフィルタ形状の方向性を一致させることによって、領域のエッジ方向や勾配方向などの方向性に適したフィルタ処理を行うことができる。
【０２１１】
なお、本実施形態ではクロスと星という２つの方向性を有するフィルタ形状を用いたが、クロスのみ、星のみなど１つ以上の方向性を有するフィルタ形状を備える場合でも良い。また、方向性を有する領域インデックス算出方法としてＢＡ１モードとＢＡ２モードという２つのモードを用いたが、ＢＡ１モードのみ、ＢＡ２モードのみなど１つのモードを用いる場合でも良い。この場合にも、所定の方向性を有する領域インデックス算出方法を用いる場合には、該方向性に対応する方向性を有するフィルタ形状を用いることが好適である。例えば、ＢＡ１モードには水平垂直方向、ＢＡ２モードには斜め方向を用いることが適当である。また、領域インデックス算出方法としては、ＢＡ１モードのみ、ＢＡ２モードのみ、ＲＡモードとＢＡ１モード、ＲＡモードとＢＡ２モードの何れを備える構成も可能である。
【０２１２】
以上の構成によって、領域インデックス算出方法に対応したフィルタ形状を用いることができる。領域インデックス算出方法に応じて、領域分類が変化し、各領域に適したフィルタ形状が変化するが、本実施形態に示すように領域インデックス算出方法に適したフィルタ形状を用いることにより、高い効果の適応フィルタを適用することができる。以上の構成では、特徴空間分割に用いる特性値算出方法の方向性と、フィルタ形状の方向性を一致させることにより、符号化装置の複雑度の低減する効果も有する。
【０２１３】
〔実施形態２〕
以下では、本発明の第１の実施形態について、特に図７〜図８、図１９、図２５、図２６を参照して説明する。なお、以下では、実施形態１において既に説明した部分については、同じ文言および同じ符号を用い、その説明を省略する。
【０２１４】
（符号化データ＃３）
本実施形態に係る動画像符号化装置４及び動画像復号装置３の詳細な説明に先立って、動画像符号化装置４によって生成され、動画像復号装置３によって復号される符号化データ＃３のデータ構造について説明を行う。
【０２１５】
符号化データ＃３のデータ構造は、実施形態１に係る符号化データ＃１のデータ構造と略同じであるが、フィルタパラメータＦＰの構成が異なる。
【０２１６】
＜フィルタパラメータＦＰ＃３＞
図１９は、本実施形態に係るフィルタパラメータＦＰのシンタックステーブルの一例である。図１９に示すように、フィルタパラメータＦＰ＃３には、adaptive_loop_filter_flag、alf_region_adaptation_flag、alf_filter_mode[]、alf_num_filters_minus1、alf_region_idx[]、alf_pred_method、alf_min_kstart_minus1、alf_golomb_index_bit[i]、alf_coeff_luma[i][j]が含まれている。実施形態１とは異なり、各フィルタ係数群に対するフィルタ形状モードalf_filter_mode[i]（０≦ｉ＜AlfNumFilters）を含む。
【０２１７】
adaptive_loop_filter_flagは、適応フィルタ１７０による適応的フィルタ処理のオンオフを指定するフラグであり。
【０２１８】
alf_num_filters_minus1は本実施形態に係る適応フィルタで用いるフィルタ数AlfNumFiltersを示すシンタックスであり、AlfNumFilters = alf_num_filters_minus1 + 1により求めることができる。alf_region_adaptation_flagは、領域適応モードを示すシンタックスである。本実施形態では、alf_region_adaptation_flag=0、1、2は各々、ＲＡモード、ＢＡ２モード、ＢＡ１モードに対応する。alf_filter_mode[i] （１≦ｉ＜AlfNumFilters）は、フィルタ形状を示すシンタックスである。alf_region_idx[i] （１≦ｉ＜AlfNumRegions）は、各部分領域に対するフィルタインデックスを指定するシンタックスである。
【０２１９】
（動画像復号装置３）
本実施形態に係る動画像復号装置３は、実施形態１に係る動画像復号装置１の備える適応フィルタ１５０に代えて、適応フィルタ１７０を備えている。本実施形態に係る動画像復号装置のその他の構成は、実施形態１に係る動画像復号装置１の構成と同様であるので、説明を省略する。
【０２２０】
（適応フィルタ１７０）
図２５は、適応フィルタ１７０のブロック図である。適応フィルタ１７０は、適応フィルタ情報復号部１７１、適応フィルタ１７２を備えている。適応フィルタ情報復号部１７１は、フィルタ形状復号部１７１１、領域構造復号部１７１２、領域適応モード復号部１７１３、フィルタ係数復号部１７１４、フィルタ係数格納部１７１５を備えており、適応フィルタ部１７２は、領域インデックス算出部１７２２、フィルタ係数割り付け部１７２３、フィルタ部１５２４を備えている。
【０２２１】
領域構造復号部１７１２は、フィルタ数AlfNumFiltersを復号し、フィルタ係数復号部１７１４及びフィルタ形状復号部１７１１に出力する。
【０２２２】
フィルタ形状復号部１７１１は、フィルタパラメータＦＰ＃３から、i=０からAlfNumFilters−１までのフィルタインデックスで示される各フィルタ係数群（特性値分類領域）に対応するフィルタ形状alf_filter_mode[i]を復号し、フィルタ係数復号部１７１４に出力する。フィルタ数AlfNumFiltersは、領域構造復号部１７１２から供給される。
図７は、フィルタ係数群とフィルタ形状の関係を示す図である。図７（ｂ）に示すように、フィルタインデックスiのフィルタ係数群（特性値分類領域）のフィルタ形状は、各々alf_filter_mode[i]で指定される。図では、i=0のフィルタ係数群のフィルタ形状は星であり、i=1のフィルタ係数群のフィルタ形状は、クロスである。
【０２２３】
領域構造復号部１５１２は、図１９に示すフィルタパラメータＦＰ＃３に含まれるシンタックスalf_region_idx[i]から領域構造を復号する。
【０２２４】
領域適応モード復号部１７１３は、シンタックスalf_region_adaptation_flagを復号する。復号されたシンタックスalf_region_adaptation_flagは、領域インデックス算出部１７２２に供給される。
【０２２５】
（フィルタ係数復号部１７１４）
フィルタ係数復号部１７１４は、シンタックスalf_coeff_luma[i][k]よりフィルタ係数群AlfRegionFilterCoeff[i][k] （０≦ｉ＜AlfNumFilters、０≦ｋ＜Ｎtotal：Ｎtotalは、１つのフィルタ係数群に含まれるフィルタ係数の数）を復号する。フィルタ係数群AlfRegionFilterCoeff[i][k]の総数は、AlfNumFiltersである。
また、フィルタ係数復号部１７１４は、フィルタ処理に用いられるフィルタ係数群AlfRegionFilterCoeffを、以下の式を用いて算出する。
【０２２６】
AlfRegionFilterCoeff[i][k] = AlfRegionFilterCoeff[pred_idx][k] + alf_coeff_luma[i][k] (i=0以外の場合)
AlfRegionFilterCoeff[i][k] = alf_coeff_luma[i][k] (i=0の場合)
なお、kは、０〜フィルタ係数の数−１までの値である。予測フィルタインデックスpred_idx（０≦pred_idx＜ｉ）は、フィルタ係数の予測に用いられる参照フィルタを指定するインデックスであり、既に復号したフィルタ係数群のフィルタインデックスが用いられる。AlfRegionFilterCoeff[i][k]は、各フィルタ係数毎に（すなわち、ｋの各値について）上記式により算出される。すなわち、各フィルタインデックスに対応するフィルタ係数群の各フィルタ係数は、符号化データを復号することにより得られたフィルタ係数残差（ここではalf_coeff_luma）に予測値を加算することによって復元される。予測フィルタインデックスpred_idxは、同じフィルタ形状を有する既に復号されたフィルタ係数群のフィルタ係数を予測値として用いることを特徴とする。よ
【０２２７】
図１２は、フィルタ係数復号部１７１４の構成を示すブロック図である。フィルタ係数復号部１７１４は、フィルタ係数復元部１７７１、フィルタ係数予測値算出部１７７２、フィルタ形状別フィルタインデックス格納部１７７３から構成される。各手段は、ｉ＝０からｉ＝AlfFilterNum−１のフィルタインデックスに対して順に動作する。
【０２２８】
フィルタ形状別フィルタインデックス格納部１７７３は、フィルタ形状毎の格納領域last_idx[]を備える。最初に（ｉ＝０の時点で）、格納領域last_idx[]の要素を全て-１に初期化する。続いて、ｉ＝１からAlfFilterNum−１までのフィルタインデックスに対し、フィルタインデックスｉのフィルタ係数AlfRegionFilterCoeff[i][k]を復号した時点で、最後のフィルタインデックス番号iを、以下の式によってフィルタ形状alf_filter_mode毎の格納領域last_idx[]に記録する。
【０２２９】
last_idx[alf_filter_idx[i]] = i
【０２３０】
フィルタ係数予測値算出部１７７２は、まず、復号対象となるフィルタ係数群のフィルタ形状がalf_filter_mode[ｉ]である場合には、alf_filter_mode[ｉ]のフィルタ形状を用いた最後のフィルタインデックス番号を、以下の式のようにフィルタ形状別フィルタインデックス格納部１７７３から読み出すことによって、予測インデックス番号pred_idxを算出する。
【０２３１】
pred_idx = last_idx[alf_filter_idx[i]]
次に、算出された予測フィルタインデックスが−１以外の場合、すなわち、既に復号された同じフィルタ形状のフィルタ係数群がある場合には、フィルタ係数格納部１７１５から、pred_idxで指定されるフィルタ係数を読み出し、以下の式に用に予測値predとする。
pred[k] = AlfRegionCoeff[pred_idx][k]
【０２３２】
算出された予測フィルタインデックスが−１の場合、すなわち、既に復号された同じフィルタ形状のフィルタ係数群がない場合には、予測値としては固定値、ここでは０を用いる。
pred[k] = 0
【０２３３】
フィルタ係数復元部１７７１は、算出された予測値predを用いて以下の式によってフィルタ係数を復元する。
AlfRegionFilterCoeff[i][k] = pred[k] + alf_coeff_luma[i][k]
ここでは、加算を用いているが、次のような差分値が予測値―符号化値の形式であるいには、次の式によってフィルタ係数を復元する。
AlfRegionFilterCoeff[i][k] = pred[k] - alf_coeff_luma[i][k]
【０２３４】
図８は、上記予測フィルタインデックス算出方法を説明する図である。この例では、フィルタインデックス０、４、５、８〜１２のフィルタ係数群は星のフィルタ形状を用い、それ以外、フィルタインデックス１〜３、６、７、１３〜１５のフィルタ係数群はクロスのフィルタ形状を用いる。フィルタ係数インデックス＝０、フィルタ係数インデックス＝１のフィルタ係数群には、既に復号された同じフィルタ形状のフィルタ係数群がないため、固定値（上記では０）を用いて予測を行う。フィルタ係数インデックス＝２の場合、同じクロスのフィルタ係数群がフィルタインデックス１で既に復号済みであるので、同じフィルタ形状のフィルタインデックス（１）を予測フィルタインデックスとして参照フィルタを参照し、フィルタ係数の予測を行う。フィルタ係数インデックス＝４の場合、同じ星のフィルタ係数群がフィルタインデックス０で既に復号済みであるので、同じフィルタ形状のフィルタインデックス（０）を予測フィルタインデックスとする。
【０２３５】
フィルタ係数格納部１７１５には、フィルタ係数復号部１７１４によって復号されたフィルタ係数群RegionFilterLuma[i][k]が格納される。また、フィルタ係数格納部１７１５には、フィルタ係数復号部１７１４から供給されるフィルタ形状alf_filter_mode[i]が格納される。ここでｉは、フィルタ係数群を参照するためのインデックスである。
【０２３６】
（領域インデックス算出部１７２２）
領域インデックス算出部１７２２は、ある座標(x, y)を有するフィルタ対象画素の領域インデックスridxを求める。領域インデックスの算出方法は、領域適応モードalf_region_adaptation_flagに応じて異なる。
【０２３７】
領域インデックス算出部１７２２の構成は、領域インデックス算出部１５２２とほぼ同様であるが、特徴量モード算出部１５２６の代わりに、図示しない特徴量モード算出部１７２６を備える点が異なる。
【０２３８】
特徴量モード算出部１７２６は、領域適応モードalf_region_adaptation_flagに応じて、特徴量モードalf_feature_modeを算出する。特徴量モードには、領域適応モードを割り当てる。すなわち、alf_feature_mode = alf_region_adaptation_flagにより、特徴量モードを算出する。図１６は、実施形態２における領域適応モードalf_region_adaptation_flagと特徴量モードalf_feature_modeの関係を示す図である。領域適応モードalf_region_adaptation_flagは、符号化モードのシンタックスとして符号化される値であり、フィルタ形状alf_filter_mode、特徴量モードalf_feature_modeは、復号したシンタックスから導出される値である。図１６（ａ）に示すように、領域適応モードalf_region_adaptation_flagがＲＡモード、ＢＡ１モード、ＢＡ２モードである場合に対し、特徴量モードalf_feature_modeに、ＲＡモード、ＢＡ１モード、ＢＡ２モードを割り当てる。なお、使用する領域適応モードがＲＡモードとＢＡ２モードだけの場合には、図１６（ｂ）に示すように割り当てる。すなわち、２つの領域適応モードで異なるフィルタ形状が用いられるように割り当てる。
【０２３９】
（フィルタ係数割り付け部１７２３）
フィルタ係数割り付け部１７２３は、領域にフィルタ係数を割り当てる。まず、領域インデックス算出部１７２２で算出された領域インデックスridxと、領域構造復号部１７１２で復号されたフィルタインデックステーブルFilterIdxTbl[]から、フィルタインデックスfidxを、fix = FilterIdxTbl[ridx]により算出する。続いて、得られたフィルタインデックスfixに対応するフィルタ係数RegionFilterLuma[fidx]とフィルタ形状alf_filter_mode[fidx]をフィルタ係数格納部１７１５から読み出し、フィルタ部１５２４に出力する。
【０２４０】
（動画像符号化装置４）
以下では、符号化対象画像を符号化することによって符号化データ＃３を生成する動画像符号化装置４について、図２６を参照して説明する。なお、以下では、既に説明した部分については、同じ文言および同じ符号を用い、その説明を省略する。
【０２４１】
本実施形態に係る動画像符号化装置４は、実施形態１に係る動画像符号化装置２の備える適応フィルタ１６０に代えて、適応フィルタ１８０を備えている。本実施形態に係る動画像符号化装置４のその他の構成は、実施形態１に係る動画像符号化装置２の構成と同様であるので、説明を省略する。
【０２４２】
（適応フィルタ１８０）
適応フィルタ１８０は、デブロック済復号画像Ｐ＿ＤＢに対して、適応的フィルタ処理を施すことによって、フィルタ済復号画像Ｐ＿ＦＬを生成する。生成されたフィルタ済復号画像Ｐ＿ＦＬは、バッファメモリ２４に格納される。また、適応フィルタ１８０は、フィルタ処理に用いた各種の適応フィルタ情報をフィルタパラメータＦＰ＃３として可変長符号符号化部２２に供給する。可変長符号符号化部２２は、フィルタパラメータＦＰ＃３を符号化データ＃３の一部として符号化する。
【０２４３】
図２６は、適応フィルタ１８０の構成を示すブロック図である。図２６に示すように、適応フィルタ１８０は、適応フィルタ情報設定部１８１、および、適応フィルタ部１８２を備えている。
【０２４４】
適応フィルタ情報設定部１８１は、フィルタ形状設定部１８１１、領域構造設定部１８１２、領域適応モード設定部１８１３、フィルタ係数残差生成部１８１４、フィルタ係数格納部１８１５、及び、フィルタパラメータ生成部１８１６を備えている。
【０２４５】
フィルタ形状設定部１８１１は、フィルタ係数のフィルタ形状を指定するためのシンタックスalf_filter_mode[i]を設定する。設定されたシンタックスalf_filter_modeは、フィルタパラメータ生成部１８１６に供給される。
【０２４６】
領域構造設定部１８１２は、フィルタインデックステーブルFilterIndexTblを設定する。設定されたシンタックスFilterIndexTblは、フィルタパラメータ生成部１８１６に供給される。
【０２４７】
領域適応モード設定部１８１３は、シンタックスalf_region_adaptation_flag を設定する。設定されたシンタックスalf_region_adaptation_flagは、適応フィルタ部１８２に供給され、さらにフィルタパラメータ生成部１８１６に供給される。
【０２４８】
なお、alf_filter_mode[i]、FilterIndexTbl、及び、alf_region_adaptation_flag、は、符号化効率がより向上するように設定される。
【０２４９】
（フィルタ係数残差生成部１８１４）
フィルタ係数残差生成部１８１４は、以下の式によってシンタックスalf_coeff_luma[i][k]を生成する。
【０２５０】
alf_coeff_luma[i][k] = AlfRegionFilterCoeff[i][k] - pred[k]
predは予測値である。予測値predの計算方法はフィルタ係数復号部１７１４と同じであるので説明を省略する。
また、差分値の算出方法としては、以下の式を用いても良い。
alf_coeff_luma[i][k] = pred[k]- AlfRegionFilterCoeff[i][k]
この場合には、フィルタ係数復号部１７１４におけるフィルタ係数の復元は、予測値との差分で算出される。
生成されたフィルタ係数残差alf_coeff_luma[i][k]はフィルタパラメータ生成部１８１６に供給される。
【０２５１】
フィルタ係数格納部１８１５には、後述するフィルタ係数導出部１８２３から供給されるフィルタ係数群AlfRegionFilterCoeff[i][k]とフィルタ形状alf_filter_mode[i]が格納される。
【０２５２】
フィルタパラメータ生成部１８１６は、シンタックスalf_filter_mode[i]とalf_region_adaptation_flag、フィルタインデックスFilterIndexTbl[ridx]、および、alf_coeff_luma[i][k]からフィルタパラメータＦＰ＃３を生成する。フィルタパラメータ生成部１８１６は、ｉ＝０からAlfNumFilters-1までのフィルタインデックスで示される各フィルタ係数群（特性値分類領域）に対するフィルタ形状alf_filter_mode[i]を符号化することによって行われる。生成されたフィルタパラメータＦＰ＃３は、可変長符号符号化部２２に供給される。
【０２５３】
一方で、適応フィルタ部１８２は、領域インデックス算出部１７２２、フィルタ係数導出部１８２３、及びフィルタ部１５２４を備えている。領域インデックス算出部１７２２、フィルタ部１５２４については、既に述べたため、ここでは説明を省略する。
【０２５４】
フィルタ係数導出部１８２３は、対象特性値分類領域におけるフィルタ済復号画像Ｐ＿ＦＬと符号化対象画像との誤差がより小さくなるようなフィルタ係数RegionFilterLuma[i][j]を導出する。導出されたフィルタ係数RegionFilterLuma[i][j]は、フィルタ部１５２４に供給されると共に、フィルタ係数格納部１８１５に格納される。
【０２５５】
フィルタ係数導出部１８２３によるフィルタ係数群RegionFilterLuma[i][k]の導出処理は、実施形態１におけるフィルタ係数導出部１６２３と同様であるので、ここでは説明を省略する。
【０２５６】
以上の構成によって、各部分領域に適用されるフィルタ係数群に応じてフィルタ形状を変更することができる。領域の特性として、主要なエッジ（特定方向への強いエッジもしくは特定方向への多くのエッジ）が存在する場合には、特に適応フィルタの効果が大きい。領域の特性として斜めエッジである場合には、斜め形状のフィルタ形状が有効であり、領域の特性として水平エッジ及び垂直エッジである場合には、水平垂直形状のフィルタ形状が有効である、というように、画像の特性に応じて適したフィルタ形状が異なる。そのため、領域毎に適したフィルタ形状を用いることができる本実施形態の構成では、高い効果の適応フィルタを適用することができる。
【０２５７】
〔実施形態３〕
以下では、本発明の第３の実施形態について、特に図９、図１０、図１６、図２０、図２７、図２８を参照して説明する。なお、以下では、実施形態１、実施形態２において既に説明した部分については、同じ文言および同じ符号を用い、その説明を省略する。第３の実施形態では、領域適応モードに応じてフィルタ形状を設定することが特徴である。
【０２５８】
（符号化データ＃５）
本実施形態に係る動画像符号化装置６及び動画像復号装置５の詳細な説明に先立って、動画像符号化装置６によって生成され、動画像復号装置５によって復号される符号化データ＃５のデータ構造について説明を行う。
【０２５９】
符号化データ＃５のデータ構造は、実施形態１に係る符号化データ＃１のデータ構造と略同じであるが、フィルタパラメータＦＰの構成が異なる。
【０２６０】
＜フィルタパラメータＦＰ＃５＞
図２０は、本実施形態に係るフィルタパラメータＦＰのシンタックステーブルの一例である。図に示すように、フィルタパラメータＦＰ＃５には、adaptive_loop_filter_flag、alf_region_adaptation_flag、alf_num_filters_minus1、alf_region_idx[]、alf_pred_method、alf_min_kstart_minus1、alf_golomb_index_bit[i]、alf_coeff_luma[i][j]が含まれている。実施形態１、２とは異なり、フィルタ形状モードalf_filter_modeを含まない。
【０２６１】
adaptive_loop_filter_flagは、適応フィルタ１９０による適応的フィルタ処理のオンオフを指定するフラグである。
【０２６２】
alf_num_filters_minus1は本実施形態に係る適応フィルタで用いるフィルタ数AlfNumFiltersを示すシンタックスであり、AlfNumFilters = alf_num_filters_minus1 + 1により求めることができる。alf_region_adaptation_flagは、領域適応モードを示すシンタックスである。本実施形態では、alf_region_adaptation_flag=0、1、２は各々、ＲＡモード、ＢＡ２モード、ＢＡ１モードに対応する。alf_region_idx[i] （１≦ｉ＜AlfNumRegions）は、各部分領域に対するフィルタインデックスを指定するシンタックスである。
【０２６３】
（動画像復号装置５）
本実施形態に係る動画像復号装置５は、実施形態１に係る動画像復号装置１の備える適応フィルタ１５０に代えて、適応フィルタ１９０を備えている。本実施形態に係る動画像復号装置のその他の構成は、実施形態１に係る動画像復号装置１の構成と同様であるので、説明を省略する。
【０２６４】
（適応フィルタ１９０）
図２７は、適応フィルタ１９０のブロック図である。適応フィルタ１９０は、適応フィルタ情報復号部１９１、適応フィルタ１９２を備えている。適応フィルタ情報復号部１９１は、領域構造復号部１５１２、領域適応モード・フィルタ形状復号部１９１３、フィルタ係数復号部１５１４、フィルタ係数格納部１５１５を備えており、適応フィルタ部１９２は、領域インデックス算出部１７２２、フィルタ係数割り付け部１５２３、フィルタ部１５２４を備えている。
【０２６５】
領域構造復号部１５１２、フィルタ係数復号部１５１４、フィルタ係数格納部１５１５フィルタ係数割り付け部１５２３、フィルタ部１５２４は既に述べたため、説明を省略する。
領域インデックス算出部１７２２は、図１６を用いて既に述べたように、領域適応モードalf_region_adaptation_flagに応じて、特徴量モードalf_feature_modeを算出する。  
【０２６６】
領域適応モード・フィルタ形状復号部１９１３は、特性値算出方法とフィルタ形状が対応するように、フィルタ形状を復号する手段であり、シンタックスalf_region_adaptation_flagを復号する。復号されたシンタックスalf_region_adaptation_flagは、領域インデックス算出部１５２２に供給される。領域適応モード・フィルタ形状復号部１９１３はまた、領域適応モードalf_region_adaptation_flagを用いて、次に説明するようにフィルタ形状を選択する。
【０２６７】
図９は、本実施形態の領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeの組み合わせを示す図である。本実施形態では、第１の実施形態と同様、領域適応モードalf_region_adaptation_flagが特徴空間分割の場合（ＢＡ２モード及びＢＡ１モード）では、フィルタ形状の方向性と、特性値算出方法の方向性が一致するように、フィルタ形状を選択する。ここでは、領域適応モードが斜め方向の場合には斜め形状、領域適応モードが水平垂直方向の場合には水平垂直形状を対応させる。具体的には、図９（ａ）、図９（ｂ）に示すように領域適応モードが斜め方向の特性値算出方法であるＢＡ２モードの場合には斜め形状のフィルタ形状である星、領域適応モードが水平垂直方向の特性値算出方法であるＢＡ１モードの場合には水平垂直形状のフィルタ形状であるクロスとなるように、フィルタ形状を割り当てる。ここでは、領域適応モードがＲＡモードの場合には、フィルタ形状には水平垂直形状のクロスを用いる。
【０２６８】
実施形態１では、領域インデックス算出部１５２２において、フィルタ形状から特性値算出方法を選択し、実施形態３では、適応モード・フィルタ形状復号部１９１３においてフィルタ形状から特性値算出方法を選択しているが、手段の構成および配置はこれに限らない。すなわち、実施形態１では、フィルタ形状から特性値算出方法を選択する手段（特徴量モード算出部１５２６）を、領域インデックス算出部１５２２の外部、例えば、フィルタ形状復号部１５１１や、領域適応モード復号部１５１３に配置しても良い。同様に、実施形態３においても、フィルタ形状から特性値算出方法を選択する手段を、適応モード・フィルタ形状復号部１９１３の外部、例えば、領域インデックス算出部１７２２に配置しても良い。  
【０２６９】
図１０は、本実施形態の領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeの組み合わせを示す別の例である。別の例では、領域適応モードとして１つの座標空間分割と１つの特徴空間分割を用いる。図１０（ａ）、図１０（ｂ）に示すように、領域適応モードが座標空間分割であるＲＡモードである場合には、水平垂直形状のフィルタ形状であるクロス、領域適応モードが特徴空間分割であるＢＡモードである場合には、斜め形状のフィルタ形状である星を用いる。この場合も、フィルタ形状の方向性と、特性値算出方法の方向性が一致すると好適である。この図では、領域適応モードが特徴空間分割であるである場合には、斜め方向の特性値算出方法であるＢＡ２モードを用いるので斜め形状のフィルタ形状である星を割り当てている。また、２つの領域適応モードを用いる場合には、各々の領域適応モードに対応するフィルタ形状は異なるものとすることが好適である。なお、図１０とは逆に、領域適応モードが座標空間分割であるＲＡモードである場合に斜め形状のフィルタ形状、領域適応モードが特徴空間分割であるＢＡモードである場合には、水平垂直形状のフィルタ形状を用いることも可能である。
【０２７０】
（動画像符号化装置６）
以下では、符号化対象画像を符号化することによって符号化データ＃５を生成する動画像符号化装置６について、図２８を参照して説明する。なお、以下では、既に説明した部分については、同じ文言および同じ符号を用い、その説明を省略する。
【０２７１】
本実施形態に係る動画像符号化装置６は、実施形態１に係る動画像符号化装置２の備える適応フィルタ１６０に代えて、適応フィルタ２００を備えている。本実施形態に係る動画像復号装置６のその他の構成は、実施形態１に係る動画像符号化装置２の構成と同様であるので、説明を省略する。
【０２７２】
適応フィルタ２００は、デブロック済復号画像Ｐ＿ＤＢに対して、適応的フィルタ処理を施すことによって、フィルタ済復号画像Ｐ＿ＦＬを生成する。生成されたフィルタ済復号画像Ｐ＿ＦＬは、バッファメモリ２４に格納される。また、適応フィルタ２００は、フィルタ処理に用いた各種の適応フィルタ情報をフィルタパラメータＦＰ＃５として可変長符号符号化部２２に供給する。可変長符号符号化部２２は、フィルタパラメータＦＰ＃５を符号化データ＃５の一部として符号化する。
【０２７３】
図２８は、適応フィルタ２００の構成を示すブロック図である。図２８に示すように、適応フィルタ２００は、適応フィルタ情報設定部２０１、および、適応フィルタ部２０２を備えている。
【０２７４】
適応フィルタ情報設定部２０１は、領域構造設定部１６１２、領域適応モード・フィルタ形状設定部２０１３、フィルタ係数残差生成部１６１４、フィルタ係数格納部１６１５、及び、フィルタパラメータ生成部２０１６を備えている。
【０２７５】
領域構造設定部１６１２は、フィルタインデックステーブルFilterIndexTblを設定し、フィルタパラメータ生成部２０１６に出力される。
【０２７６】
領域適応モード・フィルタ形状設定部２０１３は、シンタックスalf_region_adaptation_flag とフィルタ形状alf_filter_modeを設定する。設定されたシンタックスalf_region_adaptation_flagは、適応フィルタ部２０２２に供給され、alf_region_adaptation_flagとalf_filter_modeはフィルタパラメータ生成部２０１６に出力される。
【０２７７】
なお、FilterIndexTbl、及び、alf_region_adaptation_flag、は、符号化効率がより向上するように設定される。
【０２７８】
フィルタ係数残差生成部１６１４は、シンタックスalf_coeff_luma[i][k]を生成する。
生成されたフィルタ係数残差alf_coeff_luma[i][k]はフィルタパラメータ生成部２０１６に供給される。
【０２７９】
フィルタパラメータ生成部２０１６は、シンタックスalf_region_adaptation_flag、フィルタインデックスFilterIndexTbl[ridx]、および、alf_coeff_luma[i][k]からフィルタパラメータＦＰ＃５を生成する。
生成されたフィルタパラメータＦＰ＃５は、可変長符号符号化部２２に供給される。。
【０２８０】
以上の構成によって、領域適応モードに応じてフィルタ形状を変更することができる。領域適応モードで定まる特性値算出方法に基づいて適したフィルタ形状を選択し、選択したフィルタ形状のフィルタ係数群を、部分領域に割り当て、割り当てた部分領域において選択されたフィルタ形状のフィルタ係数群を用いてフィルタ処理をすることによって、すなわち、水平垂直方向の方向性を有する特性値算出方法（ＢＡ１モード）を用いる場合には、水平垂直形状のフィルタ形状（本実施形態ではクロス）を用い、斜め方向の方向性を有する特性値算出方法（ＢＡ２モード）を用いる場合には、斜め形状（本実施形態では星）フィルタ形状を用いるように、特徴空間分割に用いる特性算出方法の方向性とフィルタ係数群のフィルタ形状の方向性を一致させることによって、領域のエッジ方向や勾配方向などの方向性に適したフィルタ処理を行うことができる。
また、領域適応モード各々に対して異なるフィルタ形状を選択可能な場合に比べ簡単な処理で高い適応フィルタの効果を得ることができる。領域適応モード各々に対して異なるフィルタ形状を選択可能な場合には、領域適応モードが３種類、フィルタ形状が２種類である場合、組み合わせの自由度は３×２＝６種類となる。この、符号化装置では６種類のパラメータの各々に対して適応フィルタの効果を推定しフィルタ係数群を導出する必要が有り処理量が大きい。本実施形態のように領域適応モードに対して１種類のフィルタ形状に制限する場合には、３種類のパラメータとなるため、フィルタ係数群を導出する演算量を約半分に低減することができる。すなわち、本実施形態では、特徴空間分割に用いる特性値算出方法の方向性と、フィルタ形状の方向性を一致させることにより、複雑度の低減を実現できる。また、特性値算出方法が座標空間分割である場合に１つのフィルタ形状を割り当てることによって複雑度の低減を実現できる。
【０２８１】
＜実施形態３の変形例＞
以下では、実施形態３の変形例について、図１１、図２１、図２９、図３０を参照して説明する。なお、以下では、実施形態１〜実施形態３において既に説明した部分については、同じ文言および同じ符号を用い、その説明を省略する。第３の実施形態の変形例では、領域適応モードに応じてフィルタ形状を設定すると共に、領域特性モードに応じてフィルタ形状を割り当てる実施形態１の要素と、フィルタ係数群単位でフィルタ形状を復号する実施形態２の要素を取り入れている点が特徴である。
【０２８２】
（符号化データ＃７）
本実施形態に係る動画像符号化装置８及び動画像復号装置７の詳細な説明に先立って、動画像符号化装置８によって生成され、動画像復号装置７によって復号される符号化データ＃７のデータ構造について説明を行う。
【０２８３】
符号化データ＃７のデータ構造は、実施形態１に係る符号化データ＃１のデータ構造と略同じであるが、フィルタパラメータＦＰの構成が異なる。
【０２８４】
＜フィルタパラメータＦＰ＃７＞
図２１は、本実施形態に係るフィルタパラメータＦＰ＃７のシンタックステーブルの一例である。図に示すように、フィルタパラメータＦＰ＃７には、adaptive_loop_filter_flag、alf_region_adaptation_flag、alf_filter_mode[]、alf_num_filters_minus1、alf_region_idx[]、alf_pred_method、alf_min_kstart_minus1、alf_golomb_index_bit[i]、alf_coeff_luma[i][j]が含まれている。
【０２８５】
adaptive_loop_filter_flagは、適応フィルタ２１０による適応的フィルタ処理のオンオフを指定するフラグである。
【０２８６】
alf_num_filters_minus1は本実施形態に係る適応フィルタで用いるフィルタ数AlfNumFiltersを示すシンタックスであり、AlfNumFilters = alf_num_filters_minus1 + 1により求めることができる。alf_region_adaptation_flagは、領域適応モードを示すシンタックスである。本実施形態では、alf_region_adaptation_flag=0、1、2は各々、ＲＡモード、ＢＡ２モード、ＢＡ１モードに対応する。alf_region_idx[i] （１≦ｉ＜AlfNumRegions）は、各部分領域に対するフィルタインデックスを指定するシンタックスである。
【０２８７】
（動画像復号装置７）
本実施形態に係る動画像復号装置７は、実施形態１に係る動画像復号装置１の備える適応フィルタ１５０に代えて、適応フィルタ２１０を備えている。本実施形態に係る動画像復号装置のその他の構成は、実施形態１に係る動画像復号装置１の構成と同様であるので、説明を省略する。
【０２８８】
（適応フィルタ２１０）
図２９は、適応フィルタ２１０のブロック図である。適応フィルタ２１０は、適応フィルタ情報復号部２１１、適応フィルタ２１２を備えている。適応フィルタ情報復号部２１１は、領域構造復号部１７１２、領域適応モード・フィルタ形状復号部２１１３、フィルタ係数復号部１７１４、フィルタ係数格納部１７１５を備えており、適応フィルタ部２１２は、領域インデックス算出部１５２２、フィルタ係数割り付け部１７２３、フィルタ部１５２４を備えている。
【０２８９】
領域構造復号部１７１２、フィルタ係数復号部１７１４、フィルタ係数格納部１７１５、フィルタ係数割り付け部１７２３、フィルタ部１５２４は既に述べたため、説明を省略する。
【０２９０】
領域インデックス算出部１５２２は、図１５を用いて既に述べたように、領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeに応じて、特徴量モードalf_feature_modeを算出する。
【０２９１】
領域適応モード・フィルタ形状復号部２１１３は、シンタックスalf_region_adaptation_flagを復号する。復号されたシンタックスalf_region_adaptation_flagは、領域インデックス算出部１５２２に供給される。
図１１は、本実施形態の変形例の領域適応モードalf_region_adaptation_flagとフィルタ形状alf_filter_modeの組み合わせを示す図である。本変形例では３つの領域適応モード（ＲＡモード、ＢＡ１モード、ＢＡ２モード）を用い、領域適応モードに合わせてフィルタ形状の選択を行う。
領域適応モード・フィルタ形状復号部２１１３は、領域適応モードが座標空間分割であるＲＡモードである場合には、実施形態２と同様に、フィルタ係数群単位でフィルタ形状を復号する。逆に、領域適応モードが特徴空間分割であるＢＡ１モード及びＢＡ２モードである場合には、実施形態３と同様に、領域適応モードに応じてフィルタ形状を割り当てる。このとき、実施形態１と同様にフィルタ形状に合わせて、特徴量算出モードの選択が行われる。本実施形態では領域適応モードに応じて、フィルタ形状を割り当てる。
領域適応モード・フィルタ形状復号部２１１３で得られた領域適応モードalf_region_adaptation_flag、及び、フィルタ形状alf_filter_modeは、領域インデックス算出部１５２２に供給される。フィルタ形状alf_filter_modeは、さらに、フィルタ係数復号部１７１４に供給される。
【０２９２】
（動画像符号化装置８）
以下では、符号化対象画像を符号化することによって符号化データ＃７を生成する動画像符号化装置８について、図３０を参照して説明する。なお、以下では、既に説明した部分については、同じ文言および同じ符号を用い、その説明を省略する。
【０２９３】
本実施形態に係る動画像符号化装置８は、実施形態１に係る動画像符号化装置２の備える適応フィルタ１６０に代えて、適応フィルタ２２０を備えている。本実施形態に係る動画像符号化装置８のその他の構成は、実施形態１に係る動画像符号化装置２の構成と同様であるので、説明を省略する。
【０２９４】
適応フィルタ２２０は、デブロック済復号画像Ｐ＿ＤＢに対して、適応的フィルタ処理を施すことによって、フィルタ済復号画像Ｐ＿ＦＬを生成する。生成されたフィルタ済復号画像Ｐ＿ＦＬは、バッファメモリ２４に格納される。また、適応フィルタ２２０は、フィルタ処理に用いた各種の適応フィルタ情報をフィルタパラメータＦＰ＃７として可変長符号符号化部２２に供給する。可変長符号符号化部２２は、フィルタパラメータＦＰ＃７を符号化データ＃７の一部として符号化する。
【０２９５】
図３０は、適応フィルタ２２０の構成を示すブロック図である。図３０に示すように、適応フィルタ２２０は、適応フィルタ情報設定部２２１、および、適応フィルタ部２２２を備えている。
【０２９６】
適応フィルタ情報設定部２２１は、領域構造設定部１８１２、領域適応モード・フィルタ形状設定部２２１３、フィルタ係数残差生成部１８１４、フィルタ係数格納部１８１５、及び、フィルタパラメータ生成部２２１６を備えている。
【０２９７】
領域構造設定部１８１２は、フィルタインデックステーブルFilterIndexTblを設定し、フィルタパラメータ生成部２２１６に出力される。
【０２９８】
領域適応モード・フィルタ形状設定部２２１３は、シンタックスalf_region_adaptation_flag とフィルタ形状alf_filter_mode[i]を設定する。設定されたシンタックスalf_region_adaptation_flagとalf_filter_mode[i]は、適応フィルタ部２２２に供給され、さらにフィルタパラメータ生成部２２１６に出力される。
【０２９９】
なお、filter_mode[i]、FilterIndexTbl、及び、alf_region_adaptation_flag、は、符号化効率がより向上するように設定される。
【０３００】
フィルタ係数残差生成部１８１４は、シンタックスalf_coeff_luma[i][k]を生成する。
生成されたフィルタ係数残差alf_coeff_luma[i][k]はフィルタパラメータ生成部２２１６に供給される。
【０３０１】
フィルタパラメータ生成部２２１６は、シンタックスalf_region_adaptation_flag、フィルタインデックスFilterIndexTbl[ridx]、および、alf_coeff_luma[i][k]からフィルタパラメータＦＰ＃７を生成する。ここで、alf_region_adaptation_flagが座標空間分割であるＲＡモードの場合には、ｉ＝０からAlfNumFilters-1までのフィルタインデックスで示される各フィルタ係数群（特性値分類領域）に対するフィルタ形状alf_filter_mode[i]を符号化する。alf_region_adaptation_flagが特徴空間分割であるＢＡ１モード、ＢＡ２モードの場合にはalf_filter_modeの符号化は行わない。生成されたフィルタパラメータＦＰ＃７は、可変長符号符号化部２２に供給される。
【０３０２】
一方で、適応フィルタ部２２２は、領域インデックス算出部１５２２、フィルタ係数導出部１８２３、及びフィルタ部１５２４を備えている。フィルタ係数導出部１８２３、フィルタ部１５２４については、既に述べたため、ここでは説明を省略する。
領域インデックス算出部１５２２は、図１５を用いて既に述べたように、領域適応モードalf_region_adaptation_flag、フィルタ形状alf_filter_modeに応じて、特徴量モードalf_feature_modeを算出する。
【０３０３】
以上の構成によって、領域適応モードにより定まる特性値算出方法に応じてフィルタ形状を変更することができる。領域適応モード（特性値算出方法）が座標空間分割であるＲＡモードである場合には、部分領域単位でフィルタ形状を変更するため、領域の画面上の位置、座標に応じて異なる部分領域の特性に応じたフィルタ形状を用いることが可能であり、高い適応フィルタの効果を得ることができる。すなわち、特性値として方向性を有しない座標を用いる（座標空間分割）場合にも、領域の方向性などの特性にあわせたフィルタ処理を行うことができる。また、領域適応モードの特性値算出方法が特徴空間分割ＢＡモード（ＢＡ１モード及びＢＡ２モード）である場合には、部分領域の特性は、単位領域の画素値から対応する特性値算出方法（ＢＡ計算モード）に基づいて得られる特性値により算出され、その特性に適したフィルタ形状が存在する。そのため、特徴空間分割に用いる特性算出方法の方向性とフィルタ係数群のフィルタ形状の方向性を一致させることによって、領域のエッジ方向や勾配方向などの方向性に適したフィルタ処理を行うことができる。以上の構成では、特性値算出方法が座標空間分割であるか特徴空間分割であるかによらず高い効果の適応フィルタが適応可能である。なお、制約なく特性値算出方法とフィルタ形状を選択可能とする場合に比べると、特徴空間分割に用いる特性値算出方法の方向性と、フィルタ形状の方向性を一致させることにより、複雑度の低減を実現している。
【符号の説明】
【０３０４】
１、３、５、７                動画像復号装置（復号装置）
１６                          インター予測画像生成部（予測画像生成手段）
１７                          イントラ予測画像生成部（予測画像生成手段）
２、４、６、８                動画像符号化装置（符号化装置）
２５                          イントラ予測画像生成部（予測画像生成手段）
２６                          インター予測画像生成部（予測画像生成手段）
１５０、１６０                適応フィルタ（画像フィルタ装置）
１５１、１７１、１９１、２１１    適応フィルタ情報復号部
１５１１、１７１              フィルタ形状復号部
１５１２、１７１２            領域構造復号部（領域構造復号手段）
１５１３、１７１３            領域適応モード復号部（領域適応モード復号手段）
１９１３、２１１３            領域適応モード・フィルタ形状復号部
１５１４、１７１４            フィルタ係数復号部（領域分類手段）
１５１５、１７１５            フィルタ係数格納部
１５２、１７２、１９２、２１２                適応フィルタ部
１５２２、１７２２            領域インデックス算出部（領域インデックス算出手段）
１５２３、１７２３            フィルタ係数割り付け部（フィルタ係数割り付け手段）
１５２４                      フィルタ部（フィルタ手段）
１５２５                      領域インデックス選択部
１５２６、１７２６            特徴量モード算出部
１５５０                      ＲＡモード領域インデックス算出部
１５５１                      ＲＡ第１特性値算出部（特性値算出手段）
１５５２                      ＲＡ第２特性値算出部（特性値算出手段）
１５５３                      ＲＡ領域インデックス算出部１５６０                      ＢＡ１モード領域インデックス算出部
１５６１                      ＢＡ１第１特性値算出部（特性値算出手段）
１５６２                      ＢＡ１第２特性値算出部（特性値算出手段）
１５６３                      ＢＡ１領域インデックス算出部
１５７０                      ＢＡ２モード領域インデックス算出部
１５７１                      ＢＡ２第１特性値算出部（特性値算出手段）
１５７２                      ＢＡ２第２特性値算出部（特性値算出手段）
１５７３                      ＢＡ２領域インデックス算出部
１６１、１８１，２０１、２２１    適応フィルタ情報設定部
１６１１、１８１１            フィルタ形状設定部
１６１２、１８１２            領域構造設定部
１６１３、１８１３            領域適応モード設定部
２０１３、２２１３            領域適応モード・フィルタ形状設定部
１６１４、１８１４            フィルタ係数残差生成部
１６１５、１８１５            フィルタ係数格納部
１６１６、１８１６，２０１６、２２１６  フィルタパラメータ設定部
１６２、１８２、２０２、２２２                適応フィルタ部
１６２３、１８２３            フィルタ係数導出部
【図１】
2014197722.tif 000004
【図２】
2014197722.tif 000005
【図３】
2014197722.tif 000006
【図４】
2014197722.tif 000007
【図５】
2014197722.tif 000008
【図６】
2014197722.tif 000009
【図７】
2014197722.tif 000010
【図８】
2014197722.tif 000011
【図９】
2014197722.tif 000012
【図１０】
2014197722.tif 000013
【図１１】
2014197722.tif 000014
【図１２】
2014197722.tif 000015
【図１３】
2014197722.tif 000016
【図１４】
2014197722.tif 000017
【図１５】
2014197722.tif 000018
【図１６】
2014197722.tif 000019
【図１７】
2014197722.tif 000020
【図１８】
2014197722.tif 000021
【図１９】
2014197722.tif 000022
【図２０】
2014197722.tif 000023
【図２１】
2014197722.tif 000024
【図２２】
2014197722.tif 000025
【図２３】
2014197722.tif 000026
【図２４】
2014197722.tif 000027
【図２５】
2014197722.tif 000028
【図２６】
2014197722.tif 000029
【図２７】
2014197722.tif 000030
【図２８】
2014197722.tif 000031
【図２９】
2014197722.tif 000032
【図３０】
2014197722.tif 000033
【図３１】
2014197722.tif 000034
【図３２】
2014197722.tif 000035