(57)【特許請求の範囲】
【請求項１】
ブロック毎に処理された画像のブロック境界に作用する境界フィルタと、上記境界フィルタの入力画像と上記境界フィルタの出力画像を入力として出力画像を生成する適応フィルタと、を備えており、
上記適応フィルタは、上記境界フィルタの入力画像に作用する第１の線形フィルタ部と、上記境界フィルタの出力画像に作用する第２の線形フィルタ部と、上記第１の線形フィルタ部の出力画像と上記第２の線形フィルタ部の出力画像とを合成する合成部と、を備えている、ことを特徴とするフィルタ装置。
【請求項２】
上記第１の線形フィルタ部におけるフィルタ演算と、上記境界フィルタにおけるフィルタ演算とを並列的に実行する、ことを特徴とする請求項１に記載のフィルタ装置。
【請求項３】
上記適応フィルタは、上記第２の線形フィルタ部の出力画像を出力する第１のモードと、上記第１の線形フィルタ部の出力画像と上記第２の線形フィルタ部の出力画像との合成画像を出力する第２のモードとのうち、外部から取得したモード指定情報により指定された方のモードで動作する、ことを特徴とする請求項１又は２に記載のフィルタ装置。
【請求項４】
上記第１の線形フィルタ部のタップ数と上記第２の線形フィルタ部のタップ数が１であることを特徴とする請求項１から３の何れか１項に記載のフィルタ装置。
【請求項５】
上記第１のモードにおいて、外部から取得したタップ数指定情報により指定された値に上記第２の線形フィルタ部のタップ数が設定され、上記第２のモードにおいて、上記タップ数指定情報により指定された値に上記第１の線形フィルタ部のタップ数が設定される、ことを特徴とする請求項３に記載のフィルタ装置。
【請求項６】
上記境界フィルタは、上記ブロック境界におけるブロックノイズを低減するためのデブロッキングフィルタである、ことを特徴とする請求項１〜５の何れか１項に記載のフィルタ装置。
【請求項７】
請求項１〜６の何れか１項に記載のフィルタ装置を備えた画像復号装置であって、上記フィルタ装置を復号画像に作用させることを特徴とする画像復号装置。
【請求項８】
請求項１〜６の何れか１項に記載のフィルタ装置を備えた画像符号化装置であって、上記フィルタ装置を局所復号画像に作用させることを特徴とする画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に作用するフィルタ装置に関する。また、そのようなフィルタ装置を備えた画像復号装置および画像符号化装置に関する。また、そのようなフィルタ装置に供給されるフィルタパラメータのデータ構造に関する。
【背景技術】
【０００２】
動画像符号化技術の分野では、一般に、画像データ（画像情報）を複数の予測ブロックに分割し、分割した予測ブロック単位で予測を行い、予測画像と入力画像の差分（残差）を直交変換し、得られた変換係数を量子化した上で、量子化された変換係数の可変長符号化により符号化する。差分（残差）の直交変換は、予測ブロックと同一の、あるいは、予測ブロックとは独立に定められた変換ブロック単位で行われる。このような符号化方法では、予測を行う単位もしくは直交変換を実行する単位である各ブロックの境界において大きな歪み（いわゆる、ブロックノイズ）が生じやすい。また、符号化ではブロックノイズ以外にも、ボケやモスキートノイズなどさまざまな符号化ノイズが発生する。【０００３】
これらの歪みを低減するために、予測の際に参照画像として利用される復号画像にフィルタ処理を行う技術が開示されている。【０００４】
非特許文献１には、符号化データ中に埋め込み可能な閾値に応じてブロックノイズ低減処理の強度を変更する技術が使用されている。【０００５】
非特許文献２には、フィルタ対象画素の周囲の画素（５×５、７×７、又は９×９画素）を参照して、それらに画素に対する重み係数を復号して、空間的なフィルタ処理を行うＡｄａｐｔｉｖｅＬｏｏｐＦｉｌｔｅｒ（ＡＬＦ）と呼ばれる技術が開示されている。このＡＬＦは、参照画像上のスライスごとに、フィルタが適用された後の参照画像と原画像との誤差が最小となる重み係数を定め、重み係数に基づいたフィルタ処理を施すものである。【０００６】
更に、非特許文献３には、予測残差、予測画像、及び、復号画像（予測残差と予測画像との和）に非線形デノイジングフィルタを施したものＡＬＦの入力画像とし、ＡＬＦの後段にデブロッキングフィルタを配置する構成が示されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】「Recommendation ITU-T H.264」,Telecommunication Standardization Sector of ITU,03/2009（２００９年３月公開）
【非特許文献２】VCEG-AI18,Telecommunication Standardization Sector,35th Meeting:Berlin,Germany,07/2008（２００８年７月公開）
【非特許文献３】「JCTVC-A114」,Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,1st Meeting:Dresden,DE,04/2010
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、非特許文献１のデブロッキングフィルタは、閾値を用いてブロックノイズ低減の強度（デブロッキング強度）を変更するが、最適な閾値を決定するには、試行錯誤的に様々な閾値を試す必要があり、容易には最適な閾値を決定できないという課題がある。【０００９】
非特許文献２のＡＬＦは、デブロッキングフィルタ処理後の復号画像に対して空間フィルタを作用させるが、デブロッキングフィルタ処理においてブロックノイズ低減効果が強すぎる場合や弱すぎる場合にその効果を調整することができない課題がある。特に、デブロッキングフィルタ処理が強すぎる場合には、デブロッキングフィルタ処理がボケを増大させることになるが、これをＡＬＦで十分に補正することは困難である。非特許文献３のＡＬＦは、デブロッキングフィルタ処理前の復号画像に対して作用する。したがって、デブロッキングフィルタのフィルタ強度を適応的に調整するという機能は全くない。【００１０】
また、非特許文献２〜３に記載された技術の共通の問題として、ＡＬＦを処理の重いデブロッキングフィルタにシリアルに結合する構成を採用しているため、全体のフィルタ演算に要する時間がＡＬＦにおけるフィルタ演算に要する演算時間とデブロッキングフィルタにおけるフィルタ演算に要する時間との和になり、全体のフィルタ演算に要する時間が長くなるという問題があった。【００１１】
本発明は上記の課題に鑑みてなされたものであり、その主たる目的は、ＡＬＦを用いて高い符号化効率を実現しつつ、並列化による高速化が可能なフィルタ装置を実現することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、上記境界フィルタの入力画像に作用する第１の線形フィルタ部と上記境界フィルタの出力画像に作用する第２の線形フィルタ部とを含む適応フィルタであって、上記第１の線形フィルタ部の出力画像と上記第２の線形フィルタ部の出力画像との和を出力する適応フィルタと、を備えている、ことを特徴とする。【００１３】
本発明に係るフィルタ装置が備える適応フィルタは、境界フィルタの入力画像に作用する第１の線形フィルタ部の出力画像と、境界フィルタの出力画像に作用する第２の線形フィルタ部の出力画像とを加算して出力する。したがって、符号化効率を低下させることなく、第２の線形フィルタ部のタップ数を減らしたり、あるいは、符号化効率を低下させることなく、第１の線形フィルタ部のタップ数を減らしたりすることができる。【００１４】
ここで、前者の効果、すなわち、符号化効率を低下させることなく、第２の線形フィルタ部のタップ数を減らし得ることは、符号化効率を低下させることなく、全体の演算時間を削減し得ることを意味する。すなわち、境界フィルタ、第１の線形フィルタ部、第２の線形フィルタ部におけるフィルタ演算に要する演算時間をＴ０、Ｔ１、Ｔ２とすると、第１の線形フィルタ部におけるフィルタ演算を境界フィルタにおけるフィルタ演算と並列的に実行可能な場合、全体のフィルタ演算に要する演算時間Ｔは、Ｔ＝Ｍａｘ（Ｔ０＋Ｔ２，Ｔ１）となる。したがって、第２の線形フィルタ部のタップ数を減らせば、第１の線形フィルタ部のタップ数を増やしたとしても、第１の線形フィルタ部におけるフィルタ演算に要する演算時間Ｔ１が、境界フィルタにおけるフィルタ演算に要する時間Ｔ０と第２のフィルタ部におけるフィルタ演算に要する時間Ｔ２との和Ｔ０＋Ｔ２を下回っている限り、第２の線形フィルタ部における演算時間Ｔ２を短縮し、もって、全体の演算時間Ｔを短縮することができる。【００１５】
なお、境界フィルタにおけるフィルタ演算は、線形フィルタにおけるフィルタ演算（積和演算）と比べて演算量が多い。境界フィルタが、デブロッキングフィルタである場合、特に、活性度やブロック境界強度などに基づいて自身のフィルタ強度を自律的に調整する機能を有するデブロッキングフィルタである場合には尚更である。このため、第１の線形フィルタ部のタップ数を増やしたとしても、第１の線形フィルタ部における演算時間Ｔ１が境界フィルタ部における演算時間Ｔ０を上回ることは稀である。すなわち、符号化効率を低下させることなく、全体の演算時間を削減し得るという効果は、第１の線形フィルタ部における演算時間Ｔ１が境界フィルタ部における演算時間Ｔ０を上回るという稀なケースを除き、一般的に成立する効果である。【００１６】
上記課題を解決するために、本発明のフィルタ装置は、ブロックに分割されて処理された画像をフィルタ入力画像としてフィルタ後画像を生成するフィルタ装置であって、前記フィルタ入力画像に対応する適応フィルタ情報を保存する適応フィルタ情報保存手段と、前記フィルタ入力画像から、フィルタ対象画素に隣接するブロックの境界付近の画素を用いて、フィルタ対象画素における画素値を生成するフィルタを作用させ、境界利用フィルタ画像（ＢＦ後画像）を生成する境界利用フィルタ手段（ＢＦ手段）と、前記フィルタ入力画像と前記ＢＦ後画像とから、前記適応フィルタ情報によって制御される適応フィルタ処理を行う適応フィルタ手段を備えることを特徴とする。【００１７】
上記ＢＦ手段では、ブロック境界もしくはブロック境界付近の画素を選択して適応フィルタ入力用の画像を生成する。明示的に境界及びその付近の画素を参照するＢＦ処理と適応フィルタを組み合わせることにより、シーケンスやフレームの特徴及び境界の特徴に応じたデブロック強度調整が可能になり、歪み訂正効果を増大する効果を奏する。上記のように構成されたフィルタ手段によれば、少ない符号量の適応フィルタ情報を用いて、シーケンスやフレームの特徴及び境界との位置関係に応じたデブロック強度調整が可能な効果を奏する。【００１８】
上記の課題を解決するために、本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第１の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第２の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第３の線形フィルタ部を含む適応フィルタであって、上記第１から第３の線形フィルタの出力画像を加算して出力する適応フィルタと、を備えており、上記第１から第３の線形フィルタ部の少なくとも何れかについて、タップ数が１に設定されている、ことを特徴としている。【００１９】
上記のように構成されたフィルタ装置によれば、上記第１から第３の線形フィルタ部の少なくとも何れかについて、タップ数が１に設定されているため、高い符号化効率を維持しつつ、処理量および処理時の少なくとも何れかを削減することができる。【００２０】
また、上記の課題を解決するために、本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第１の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第２の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第３の線形フィルタ部を含む適応フィルタであって、上記第１から第３の線形フィルタの出力画像を加算して出力する適応フィルタと、を備えており、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されている、ことを特徴としている。【００２１】
上記のように構成されたフィルタ装置によれば、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されているので、高い符号化効率を維持しつつ、処理量および処理時間の少なくとも何れかを削減することができる。【００２２】
なお、上記参照範囲の境界のうち処理順で下流側の境界とは、例えば、上記参照範囲が矩形状であり、上記処理がラスタスキャン順に行われるとした場合、当該参照範囲の境界のうち、右辺の境界および下辺の境界の少なくとも何れかの境界のことを指す。また、上記処理がラスタスキャン順の逆順に行われるとした場合、当該参照範囲の境界のうち、左辺の境界および上辺の境界の少なくとも何れかの境界のことを指す。【００２３】
また、上記ブロックとは、変換ブロック、予測ブロック、マクロブロック、コーディングユニット、最大コーディングユニットと呼ばれる単位のいずれであってもよい。【００２４】
また、上記フィルタ装置を備えた画像復号装置であって、上記フィルタ装置を、復号画像を生成するために用いられる各画像に作用させる画像復号装置、および、上記フィルタ装置を備えた画像符号化装置であって、上記フィルタ装置を、局所復号画像を生成するために用いられる各画像に作用させる画像符号化装置も本発明の範疇に含まれる。【００２５】
また、フィルタパラメータについての以下のデータ構造も本発明の範疇に含まれる。【００２６】
すなわち、境界フィルタと適応フィルタとを備えたフィルタ装置に供給されるフィルタパラメータのデータ構造において、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタのフィルタ係数と、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第１の線形フィルタ部のフィルタ係数と、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第２の線形フィルタ部のフィルタ係数と、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第３の線形フィルタ部のフィルタ係数と、を含んでいることを特徴とするフィルタパラメータのデータ構造も本発明の範疇に含まれる。
【発明の効果】
【００２７】
本発明に係るフィルタ装置は、以上のように、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、上記境界フィルタの入力画像に作用する第１の線形フィルタ部と上記境界フィルタの出力画像に作用する第２の線形フィルタ部とを含む適応フィルタであって、上記第１の線形フィルタ部の出力画像と上記第２の線形フィルタ部の出力画像との和を出力する適応フィルタと、を備えているので、適応フィルタを用いて高い符号化効率を実現しつつ、並列化による高速化が可能なフィルタ装置を実現することにある。【００２８】
また、本発明に係るフィルタ装置は、以上のように、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第１の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第２の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第３の線形フィルタ部を含む適応フィルタであって、上記第１から第３の線形フィルタの出力画像を加算して出力する適応フィルタと、を備えたフィルタ装置であって、上記第１から第３の線形フィルタ部の少なくとも何れかについて、タップ数が１に設定されているか、あるいは、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されている。したがって、高い符号化効率を維持しつつ、処理量および処理時の少なくとも何れかを削減することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の第１の実施形態に係る動画像復号装置１のブロック図である。
【図２】本発明の第１の実施形態に係る動画像符号化装置２のブロック図である。
【図３】本発明の第１の実施形態に係るループフィルタ部１２０のブロック図である。
【図４】本発明の第１の実施形態に係る第１のＢＦ部（ＢＦ部３０１）のブロック図である。
【図５】本発明の第１の実施形態に係る第２のＢＦ部（ＢＦ部３０１´）のブロック図である。
【図６】本発明の第１の実施形態において、境界を説明するための図である。
【図７】本発明の第１の実施形態に係る適応フィルタ部３０２を説明するための図である。
【図８】本発明の第１の実施形態に係るループフィルタ部１２０の並列処理を説明するための図である。
【図９】本発明の第１の実施形態に係るループフィルタ部１２０の参照範囲を説明するための図である。
【図１０】本発明の第１の実施形態におけるデータ転送を説明するための図である。
【図１１】本発明の第１の実施形態に係る動画像復号装置１および動画像符号化装置２が扱う符号化データの構造を示す図である。
【図１２】本発明の第１の実施形態における効果測定実験の結果を示す図である。
【図１３】本発明の第１の実施形態における重み係数の構成を示す図である。
【図１４】本発明の第１の実施形態に係る第３のＢＦ部（ＢＦ部３０１´ｂ）のブロック図である。
【図１５】本発明の第１の実施形態に係るＢＦ部３０１´ｂの参照画素の模式図である。
【図１６】本発明の第１の実施形態に係るループフィルタ部１２０´のブロック図である。
【図１７】従来のループフィルタのブロック図である。
【図１８】従来のループフィルタの参照範囲を説明するための図である。
【図１９】従来の動画像復号装置のデータ転送を説明するための図である。
【図２０】本発明の第１の実施形態にかかるループフィルタ部（１２０）のブロック図である。
【図２１】図２０に示すループフィルタ部の第１の変形例を示すブロック図である。（ａ）は、第１のモードにおける動作状態を示し、（ｂ）は、第２の動作モードにおける動作状態を示す。
【図２２】図２１に示すループフィルタ部に提供されるフィルタパラメータの構成例を示す図である。
【図２３】図２０に示すループフィルタの第２の変形例を示すブロック図である。（ａ）は、第１のモードにおける動作状態を示し、（ｂ）は、第２の動作モードにおける動作状態を示す。
【図２４】図２０に示すループフィルタの第３の変形例を示すブロック図である。
【図２５】本発明の第２の実施形態に係る動画像復号装置のブロック図である。
【図２６】本発明の第２の実施形態に係る適応フィルタ部のブロック図である。
【図２７】本発明の第２の実施形態に係る適応フィルタ部の参照範囲を例示する図である。
【図２８】本発明の第２の実施形態に係るフィルタパラメータの構成例を示す図である。
【図２９】本発明の第２の実施形態に係るフィルタパラメータの構成例を示す図である。
【図３０】本発明の第２の実施形態に係る動画像符号化装置のブロック図である。
【発明を実施するための形態】
【００３０】
以下、図面を参照して、本発明の各実施形態について説明する。
【００３１】
〔実施形態１〕
本発明の第１の実施形態に係る動画像復号装置１の説明に先立ち、本実施形態に係る動画像符号化装置２によって生成され、動画像復号装置１によって復号される符号化データの構成について、図１１を参照して説明する。
【００３２】
符号化データは、一連の画像データ（ピクチャ）から構成されている。図１１に示すように、一つのピクチャは複数のスライスから構成される。スライスは、適応フィルタ情報とＭＢデータから構成される。ＭＢデータは、復号画像を生成するための情報であり、ブロックタイプ、予測ブロックサイズ、予測パラメータ、変換ブロックサイズ、残差情報から構成される。
【００３３】
適応フィルタ情報は、復号画像を格納したフレームメモリにおいて、適応フィルタ処理を制御するために使用される情報であり、フィルタのオンオフを制御するオンオフ情報、ＢＦ前のタップ数を示すタップ数Ｍ、ＢＦ後のタップ数を示すタップ数Ｎ、ＢＦ前重み係数ａｋ（ｋ＝０〜（Ｍ×Ｍ＋１）／２−１）、ＢＦ後重み係数ｂｋ（ｋ＝０〜（Ｎ×Ｎ＋１）／２−１）、オフセットｏから構成される。例えば、Ｍ、Ｎは、１、３、５の何れかの値をとる。なお、タップ数Ｍ及びタップ数Ｎの一方もしくは両方は明示的に符号化することなく予め決められた固定値を用いても良い。例えば、Ｍであれば１、Ｎであれば５であっても良い。また、タップ数は１、３、５に限定されない。
【００３４】
なお、ＢＦ前重み係数ａｋ、ＢＦ後重み係数ｂｋ、およびオフセットｏは各々、予測符号化によって符号化されていても構わない。すなわち、重み係数及びオフセットを予測する重み係数予測部を備え、重み係数予測部が算出する予測値との差分値を復号し、差分値と予測値との和を重み係数及びオフセットとすることができる。ここで予測値は前フレームの値を用いる方法が適当である。また、適当な量子化がなされていても構わない。さらに非線形量子化された値として符号化されていても構わない。
【００３５】
なお、ここでは重み係数という言葉を用いているがフィルタ係数と呼んでも構わない。
【００３６】
（重み係数の構成）
図１３を参照して符号化データ中の重み係数の構成と、２次元フィルタとして用いられる場合の重み係数の対応位置を説明する。図１３（ａ）、（ｂ）、（ｃ）は、各々タップ数が１、３、５の場合の重み係数を示す。図の左側は符号化データ中の重み係数の構成であり、各々１、５、１３個の重み係数が一次元的に順序づけられて構成されている。
【００３７】
タップ数がＭである場合は、Ｍ×Ｍの２次元フィルタをかけることに相当する。この場合、参照する画素の数はＭ×Ｍであるが、対称性を利用することにより重み係数の個数は削減されており、必要な個数は（Ｍ×Ｍ＋１）／２となる。
【００３８】
図１３の右側は２次元フィルタとして用いられる場合の重み係数の対応位置を示すものである。２次元フィルタは、フィルタ対象画素およびその周囲に位置する画素値に対応する重み係数を乗算して得られる加重平均を算出するフィルタである。図１３においては、フィルタ対象画素からみて点対称に位置する画素に対して同じ重み係数が割り当てられている。このように対応関係を設定すると、同じＭ×Ｍタップのフィルタにおいても必要な重み係数の数を約半分に減らすことができるため、重み係数の符号量が減少し符号化効率が向上する。
【００３９】
（動画像復号装置１）
本発明を適用した動画像復号装置について、図１を参照しつつ以下に説明する。図１は、第１実施形態に係る動画像復号装置１の構成を示すブロック図である。
【００４０】
図１に示すように、動画像復号装置１は、予測部１１１と、可変長符号化復号部１１４と、逆量子化部１１５と、逆変換部１１６と、フレームメモリ１１７と、適応フィルタ情報保存部１１９と、ループフィルタ部１２０と、加算部１０９とから構成されている。動画像復号装置１の動作について以下に説明する。
【００４１】
動画像復号装置１に入力された符号化データは、まず、可変長符号化復号部１１４に入力される。可変長符号化復号部１１４は、符号化データの可変長復号により、フィルタ処理に用いる重み係数を含む適応フィルタ情報、予測方法および変換方法を示すＭＢパラメータ、変換・量子化された変換係数である残差情報を復号する。
【００４２】
逆量子化部１１５は、可変長符号化復号部１１４より入力された変換・量子化された残差信号を逆量子化する。逆変換部１１６は、逆量子化部１１５より入力された逆量子化された信号を逆変換し、残差画像を生成する。
【００４３】
予測部１１１は、可変長符号化復号部１１４より復号されたＭＢパラメータが入力され、当該ＭＢパラメータに従って、フレームメモリ１１７に格納された復号画像（復号済みの画像）を用いて、予測画像を生成する。ＭＢパラメータは、ブロックタイプと予測ブロックサイズ、変換ブロックサイズ、予測パラメータから構成される。ブロックタイプはイントラブロックかインターブロックかを示す。イントラブロックの場合には後述のループフィルタ処理前の復号画像（フレームメモリの画像）を参照して予測画像を生成し、インターブロックの場合にはループフィルタ処理後の復号画像を参照して予測画像を生成する。この実施形態では、予測ブロックサイズは予測のブロックサイズが１６×１６、８×８、４×４の何れであるかを示し、変換ブロックサイズは変換のブロックサイズが１６×１６、８×８、４×４の何れであるかを示す。予測パラメータはブロックタイプにより異なり、イントラブロックの場合には、ＤＣ予測を用いるか、方向予測を用いるかを示すイントラ予測モードである。インターブロックの場合には、動きベクトル、参照インデックスである。なお、参照インデックスは、フレームメモリに参照可能なフレームが複数存在する場合に、参照フレームを指定するための識別子である。なお、ブロックタイプ、予測ブロックサイズ、変換ブロックサイズ、予測パラメータなどはこの構成に限らない。
【００４４】
加算部１０９は、予測部１１１より入力された予測画像と、逆変換部１１６より入力された残差画像との加算により、復号画像を生成し、フレームメモリ１１７に格納する。
【００４５】
適応フィルタ情報保存部１１９は、可変長符号化復号部１１４で復号された適応フィルタ情報が入力され、保存される。ループフィルタ部１２０は、適応フィルタ情報保存部１１９に保存された適応フィルタ情報を読み出し、フレームメモリ１１７に格納された復号画像のフィルタ処理を行い、再度フレームメモリに１１７に書き出す。
【００４６】
（ループフィルタ部１２０）
図３は、ループフィルタ部１２０の内部構成を示す図である。ループフィルタ部１２０は、境界利用フィルタ部（ＢＦ部）３０１と、適応フィルタ部３０２から構成される。
【００４７】
ループフィルタ部１２０は、フレームメモリ１１７に格納された復号画像と、適応フィルタ情報保存部１１９に格納された適応フィルタ情報を用いて、符号化歪みを低減した画像を生成する手段である。
【００４８】
ＢＦ部３０１は、対象ブロックに隣接するブロックの境界付近の画素値を用いて、適応フィルタ部３０２で用いる画素値を生成するための手段である。
【００４９】
適応フィルタ部３０２は、適応フィルタ情報に含まれる重み係数を用いて加重平均によりフィルタ処理を行う手段である。
【００５０】
適応フィルタ部３０２の特徴は、２つの入力画像を備え、一方がＢＦ部３０１で処理された画像（ＢＦ後画像）であり、もう一方がＢＦ部３０１の処理前の画像（ＢＦ前画像）であることである。これはまた、内部にＢＦ部３０１と適応フィルタ部３０２を備え、ループフィルタ部１２０の入力と、ＢＦ部３０１の出力とを適応フィルタ部３０２の入力とするループフィルタ１２０の特徴と表現することもできる。なお、ループフィルタ部１２０、ＢＦ部３０１、及び適応フィルタ部３０２の処理単位は、フレームであってもブロックであっても画素であっても構わない。
【００５１】
図１７は、従来のループフィルタの構成を示す図である。図１７（ａ）に示すように、従来のループフィルタは、デブロッキングフィルタ処理後の画像を適応フィルタの入力とする場合（従来手法１）と、図１７（ｂ）に示すように、復号画像（デブロッキングフィルタ処理前の画像）を適応フィルタの入力とする場合（従来手法２）とがあったが、デブロッキングフィルタ処理前の画像とデブロッキングフィルタ処理後の画像との両方を適応フィルタの入力とする構成はなかった。
【００５２】
（ＢＦ部３０１）
ここで、ＢＦ部３０１について詳細に説明する。ＢＦ部３０１は、対象ブロックに隣接するブロックの境界付近の画素値を用いることを特徴とする。１つの方法は、ブロックノイズ低減を行うデブロッキングフィルタ処理を用いて生成する方法であり、図４で一例を説明する。別の方法は、フィルタ対象ブロックに隣接するブロックの境界付近の画素値を用いてフィルタ対象ブロックに対応する画像を生成する方法であり、図５、図１４を用いて説明する。
【００５３】
図６は、ブロックの境界部分における画素を模式的に示した図である。図６では、互いに隣接するブロックのうち、一方のブロックの画素を画素Ｐｉとし、もう一方のブロックの画素を画素Ｑｉとしている（ｉは０〜ｎまでの整数）。なお、画素Ｐｉおよび画素Ｑｉにおけるｉは、ブロック境界からの距離に相当する。
【００５４】
また、図６では、画素Ｐｉおよび画素Ｑｉに対応する画素値をそれぞれ画素値ｐｉおよび画素値ｑｉとして示しており、処理対象画素Ｐｋにおける処理前の画素値ｐｋに対応する処理後の画素値をｐｋ´として示している。ここで、ｋは０からブロックサイズ以下の値をとる整数である（ｋは０〜ｎ）。
【００５５】
すなわち、図６では、ブロック境界において隣接する２つのブロックのうち、一方のブロックの画素値を画素値ｐｋ（ｋは境界からの距離により定められる値）、他方のブロックの画素値を画素値ｑｋ（ｋは境界からの距離により定められる値）として表している。なお、図６では、境界が水平方向の境界であるのか、または垂直方向の境界であるのかについては区別していない。
【００５６】
図４は、第１の構成のＢＦ部（ＢＦ部３０１）の内部構成を示す図である。ＢＦ部３０１は、境界エッジ算出部４０１と、活性度算出部４０２と、ＢＦ画素生成部４０３とを備える。
【００５７】
境界エッジ算出部４０１は、下記の式（４−１）を用いて、境界のエッジ強度ｄを算出する。
【００５８】
ｄ＝ＡＢＳ（ｐ０−ｑ０）                …（４−１）
活性度算出部４０２は、下記の式（４−２）を用いて、活性度を表す値ａｐを算出する。活性度は境界およびフィルタ対象画素付近の凹凸の状態もしくは勾配の大きさを算出するものである。
【００５９】
ａｐ＝ＡＢＳ（ｐ２−ｐ０）              …（４−２）
ＢＦ画素生成部４０３は、算出された「ｄ」および「ａｐ」が、所定の閾値α、βに対して、ｄ＜α、かつ、ａｐ＜βである場合に以下のフィルタ処理を施す。
【００６０】
ｐ０´＝（ｐ２＋２×ｐ１＋２×ｐ０＋２×ｑ０＋ｑ１）／８
ｐ１´＝（ｐ２＋ｐ１＋ｐ０＋ｑ０）／４
ｐ２´＝（２×ｐ３＋３×ｐ２＋ｐ１＋ｐ０＋ｑ０）／８
そうではない場合には、以下のフィルタ処理を施す。
【００６１】
ｐ０´＝（２×ｐ１＋ｐ０＋ｑ０）／４
ＢＦ部３０１は、上記の処理を、予測ブロックの境界および変換ブロックの境界に実行する。より具体的にはまず予測ブロックと変換ブロックの垂直境界に処理を行い、続いて、予測ブロックと変換ブロックの水平境界に処理を行う。これによりＢＦ後画素値ｘｄを得る。
【００６２】
このように構成したＢＦ部３０１は、境界のエッジ強度または活性度が大きい場合に強いフィルタがかからないようにフィルタ強度を調整したブロックノイズ低減処理を行うことができる。
【００６３】
なお、ＢＦ部３０１は、さらに他の適応的なブロックノイズ低減処理を行っても構わない。例えば、イントラブロックかインターブロックかの違い、対象ブロックと隣接ブロックの動きベクトル長の違い、対象ブロックの残差情報がゼロであるか否かがある。
【００６４】
このようにＢＦ部３０１は、ブロックノイズを低減するデブロッキングフィルタ処理を行う。デブロッキングフィルタ処理は従来からある一般の処理を用いることが可能であり、例えばＤＣＴを用いる方法なども用いることができる。
【００６５】
なお、ＢＦ部３０１は、ブロック境界との位置関係に応じて処理を変更している。具体的には、境界からの距離が異なる画素Ｐ０、画素Ｐ１、画素Ｐ２は各々、異なる処理を行う。また、ＢＦ部３０１は、境界の状態（エッジ強度ｄ、活性度ａｐ）に応じて異なる処理を用いている。適応フィルタ部３０２の入力信号として、ブロック境界との位置関係に応じた処理および境界の状態に応じた処理を行うＢＦ部３０１を設けることによって、ブロック境界との位置関係及び境界との状態に適応した上で、シーケンスやフレームの特徴に適応したデブロッキング強度調整を行うこと制御が可能になり、適応フィルタ部３０２の効果を増大することができる。ブロック境界との位置関係及び境界の状態によって異なる適応フィルタ部３０２の重み係数を用いる場合に比べて、重み係数の符号量を低減することが可能であるため、少ない符号量でデブロック強度調整効果を得ることができる。
【００６６】
（ＢＦ部の第２の構成）
図５は、ＢＦ部の第２の構成（ＢＦ部３０１´）を示す図である。この例では、ＢＦ部３０１は、垂直境界値参照部５０１と、水平境界値参照部５０２と、対象画素参照部５０３と、ＢＦ重み算出部５０４と、加重平均部５０５とを備える。
【００６７】
図１５は、ＢＦ部３０１´の処理で参照する画素を説明する模式図である。図１５（ａ）においてＢは予測ブロック境界もしくは変換ブロック境界である。ＸＴはフィルタ対象画素、ＸＶは垂直ブロック境界画素、ＸＨは水平ブロック境界画素を示す。ＢＦ部３０１´は、ＸＴ、ＸＶ、ＸＨを用いて画像を生成する。
【００６８】
垂直境界値参照部５０１は、フィルタ対象画素が属するブロックとは異なるブロックの画素で、フィルタ対象画素に最も近い垂直境界の画素を参照する。すなわち、条件１：フィルタ対象画素とは異なるブロックの画素、条件２：フィルタ対象画素と同じＸ座標を持つ画素、条件３：予測ブロックの境界画素、または、変換ブロックの境界画素の３条件を満たす画素のうち、フィルタ対象画素に最も近い画素の画素値を参照する。但し、最も近い画素が複数存在する場合には所定の処理（例えば最もＸ座標とＹ座標が小さい画素）によって１つを選択する。この画素が垂直境界画素ＸＶであり、この画素値をｘｖとする。
【００６９】
水平境界値参照部５０２も、同様に、フィルタ対象画素が属するブロックとは異なるブロックの画素で、フィルタ対象画素に最も近い予測ブロックおよび変換ブロックの水平境界の画素を参照する。この画素が水平境界画素ＸＨであり、この画素値をｘｈとする。
【００７０】
対象画素参照部５０３は、フィルタ対象画素ＸＴの画素値を参照する。この画素値をｘｔとする。
【００７１】
ＢＦ重み算出部５０４は、加重平均部５０５で使用される重みを下記の手順で算出する。
【００７２】
まず、ＢＦ重み算出部５０４は、フィルタ対象画素と垂直境界画素との距離Ｄｖ、及び、フィルタ対象画素と水平境界画素との距離Ｄｈを算出する。次に対象ブロックの変換ブロックのサイズに応じて、以下の式によって、距離Ｄ（ＤｖもしくはＤｈ）から重みｐ（ｐｖもしくはｐｈ）を算出する。
【００７３】
変換ブロックが４×４の場合
ｐ＝ｔｏｔａｌ×４／８  Ｄ＝１（図６ではｐ０に相当）      …（５−１）
ｐ＝ｔｏｔａｌ×１／８  Ｄ＝２（図６ではｐ１に相当）
変換ブロックが８×８の場合
ｐ＝ｔｏｔａｌ×４／８  Ｄ＝１（図６ではｐ０に相当）
ｐ＝ｔｏｔａｌ×２／８  Ｄ＝２（図６ではｐ１に相当）
ｐ＝ｔｏｔａｌ×１／８  Ｄ＝３（図６ではｐ２に相当）
ｐ＝０                  Ｄ＝それ以外
変換ブロックが１６×１６の場合
ｐ＝ｔｏｔａｌ×４／８  Ｄ＝１（図６ではｐ０に相当）
ｐ＝ｔｏｔａｌ×３／８  Ｄ＝２（図６ではｐ１に相当）
ｐ＝ｔｏｔａｌ×２／８  Ｄ＝３（図６ではｐ２に相当）
ｐ＝ｔｏｔａｌ×１／８  Ｄ＝４（図６ではｐ３に相当）
ｐ＝０                  Ｄ＝それ以外
なお、垂直境界の場合にはＤをＤｖ、ｐをｐｖと読み替え、水平境界の場合にはＤをＤｈ、ｐをｐｈと読み替えて算出する。ｔｏｔａｌは値を整数化するために使用される値であり、２５６程度を用いると良い（以後も同様）。
【００７４】
この重み算出では、境界からの距離が大きくなるほど重みが小さくなるように調整している。
【００７５】
また重みｐｔは以下の式（５−２）で算出する。
【００７６】
ｐｔ＝（ｔｏｔａｌ―ｐｈ−ｐｖ）              …（５−２）
加重平均部５０５は、ＢＦ重み算出部５０４で算出された重みｐｔ、ｐｖ、ｐｈとフィルタ対象画素値ｘｔ、垂直境界画素値ｘｖ、水平境界画素値ｘｈの加重平均からＢＦ後画像の画素値ｘｄを算出する。算出は以下の式（５−３）で行われる。
【００７７】
ｘｄ＝｛ｐｔ×ｘｔ＋ｐｖ×ｘｖ＋ｐｈ×ｘｈ＋ｔｏｔａｌ２｝＞＞ｓｈｉｆｔ
…（５−３）
なお＞＞は右シフトを示す記号である。なお、ｔｏｔａｌは１＜＜ｓｈｉｆｔ、ｔｏｔａｌ２はｔｏｔａｌ／２とする。＜＜は左シフトを示す記号である。
【００７８】
なお、ｓｈｉｆｔは８程度で良い。この式は、整数演算処理で算出する場合である。なお、小数演算の場合には以下の式で行われる。なお小数演算の場合には、ＢＦ重み算出部５０４においてｔｏｔａｌ＝１を用いる。
【００７９】
ｘｄ＝ｐｔ×ｘｔ＋ｐｖ×ｘｖ＋ｐｈ×ｘｈ              …（５−４）
第２のＢＦ部３０１´は、上記の処理を、予測ブロックの境界および変換ブロックの境界に実行する。
【００８０】
また、式（５−１）以降の重み算出においてｔｏｔａｌの代わりにｔｏｔａｌ×４のような値を用いても良い。
【００８１】
ｐ＝ｔｏｔａｌ×４／８  Ｄ＝１（図６ではｐ０に相当）    …（５−５）
この場合、重みｐｔは式（５−２）ではなく以下の式（５−６）になる。
【００８２】
ｐｔ＝（ｔｏｔａｌ×４―ｐｈ−ｐｖ）              …（５−６）
このようにするとＢＦ後画素のダイナミックレンジは４倍になるが、その分精度の高いＢＦ後画像を適応フィルタ部３０２で用いることができる。適応フィルタ部３０２での重み係数は固定小数精度（小数精度をｔｏｔａｌでかけて整数化して実現）であり整数精度以上の精度を用いるため、高精度の参照画像の値を有効に利用できる。そのため、ＢＦ後画像のダイナミックレンジの拡大は、符号化歪み低減の精度を向上させる。
【００８３】
さらにまた、重みｐｔの算出では、式（５−２）ではなくｐｈ＋ｐｖ＋ｐｔ＝０を満たすような以下の式（５−７）を用いても良い。
【００８４】
ｐｔ＝―（ｐｈ＋ｐｖ）              …（５−７）
また、この場合、以下の式（５−８）によりＢＦ後の画素値を算出するとさらに適当である。
【００８５】
ｘｄ＝ｃｌｉｐ（−１２７、１２８、ｐｔ×ｘｔ＋ｐｖ×ｘｖ＋ｐｈ×ｘｈ）
…（５−８）
ここでｃｌｉｐ（ｘ、ｙ、ｚ）は、ｚをｘ以上、ｙ以下にクリップする演算を示す。
【００８６】
位置が近い画素値は互いに近い値をとる（ｘｖ≒ｘｈ≒ｘｔ）ことが多いが、ｐｈ＋ｐｖ＋ｐｔ＝０、つまり、画素にかかる重みの総和が０にした場合には、その加重平均の値は０に近くなる。この場合は、比ゆ的には画素値の補正量もしくは画素値の差分に対応し画素値のダイナミックレンジは小さくなる。
【００８７】
このようにすることで、ｔｏｔａｌの代わりにｔｏｔａｌ×４のように重みを大きくすることによりダイナミックレンジを拡大した場合においても、ＢＦ後画像のダイナミックレンジを抑えることが可能になり、少ないビット（ここでは８ビット、−１２８〜１２７）でＢＦ後画像を格納することができる。このようにするとＢＦ後画像を一時バッファに格納する場合において、必要となる一時バッファのメモリ量を低減させることができる。
【００８８】
（ＢＦ部の第３の構成）
図１４は、ＢＦ部の第３の構成（ＢＦ部３０１´ｂ）を示すブロック図である。この例では、ＢＦ部３０１´ｂは、第２の垂直境界値参照部５０１ｂと、第２の水平境界値参照部５０２ｂと、第２の対象画素参照部５０３ｂと、第２のＢＦ重み算出部５０４ｂ、第２の加重平均部５０５ｂを備える。
【００８９】
図１５（ｂ）は、ＢＦ部３０１´ｂの処理で参照する画素を説明する模式図である。図１５（ｂ）において、Ｂは予測ブロック境界もしくは変換ブロック境界である。ＸＴはフィルタ対象画素、ＸＶ１、ＸＶ２は垂直ブロック境界画素、ＸＨ１、ＸＨ２は水平ブロック境界画素を示す。ＢＦ部３０１´ｂは、対象画像自身ＸＴと、隣接するブロックの境界画素ＸＶ１、ＸＶ２、ＸＨ１、ＸＨ２を参照してＢＦ後画像を生成する。
【００９０】
第２の垂直境界値参照部５０１ｂは、フィルタ対象画素の左右に存在する垂直境界の画素を２つ参照する。この画素がＸＶ１、ＸＶ２であり、画素値をｘｖ１、ｘｖ２と呼ぶ。
【００９１】
第２の水平境界値参照部５０２ｂも同様にフィルタ対象画素の上下に存在する水平境界の画素を２つ参照する。この画素がＸＨ１、ＸＨ２であり、画素値をｘｈ１、ｘｈ２と呼ぶ。
【００９２】
第２の対象画素参照部５０３ｂは、フィルタ対象画素の画素値を参照する。この画素がＸＴであり、画素値をｘｔと呼ぶ。
【００９３】
第２のＢＦ重み算出部５０４ｂは、第２の加重平均部５０５ｂで使用される重みｐｔ、ｐｖ１、ｐｖ２、ｐｈ１、ｐｈ２を下記の手順で算出する。
【００９４】
まず、第２のＢＦ重み算出部５０４ｂは、フィルタ対象画素ＸＴと垂直境界画素ＸＴ１及びＸＴ２の距離Ｄｖ１、Ｄｖ２を算出し、さらにフィルタ対象画素ＸＴと水平境界画素ＸＶ１及びＸＶ２の距離Ｄｈ１、Ｄｈ２を算出する。次に対象ブロックの変換ブロックのサイズに応じて、以下の式によって、距離Ｄｖ１、Ｄｖ２、Ｄｈ１、Ｄｈ２から重みｐｖ１、ｐｖ２、ｐｈ１、ｐｈ２を算出する。
【００９５】
変換ブロックが４×４の場合
ｐ＝ｔｏｔａｌ×１／（Ｄ×２）                  …（５−９）
変換ブロックが８×８の場合
ｐ＝ｔｏｔａｌ×２／（（Ｄ＋１）×２）
変換ブロックが１６×１６の場合
ｐ＝ｔｏｔａｌ×４／（（Ｄ＋３）×２）
なお、垂直境界の場合にはＤをＤｖ１、Ｄｖ２、ｐをｐｖ１、ｐｖ２と読み替え、水平境界の場合にはＤをＤｈ１、Ｄｈ２、ｐをｐｈ１、ｐｈ２と読み替えて算出する。
【００９６】
この重み算出では、境界からの距離が大きくなるほど重みが小さくなるように調整している。
【００９７】
また重みｐｔは以下の式で算出する。
【００９８】
ｐｔ＝（ｔｏｔａｌ―ｐｈ１−ｐｖ１−ｐｈ２−ｐｖ２）
もしくは式（５−９）以後のｐｖ１、ｐｖ２、ｐｈ１、ｐｈ２の算出においてｔｏｔａｌの代わりにｔｏｔａｌ×４を用いた上で重みｐｔを以下の式で算出する。
【００９９】
ｐｔ＝（ｔｏｔａｌ×４―ｐｈ１−ｐｖ１−ｐｈ２−ｐｖ２）
これにより高い精度のＢＦ後画像が得られる。
【０１００】
もしくは重みｐｔは画素の重みの和が０となるように以下の式（５−１０）で算出することもＢＦ後画像ｘｄのダイナミック抑制に適当である。
【０１０１】
ｐｔ＝―（ｐｈ１＋ｐｖ１＋ｐｈ２＋ｐｖ２）            …（５−１０）
第２の加重平均部５０５ｂは、第２のＢＦ重み算出部５０４ｂで算出された重みｐｔ、ｐｖ１、ｐｖ２、ｐｈ１、ｐｈ２、とフィルタ対象画素値ｘｔ、垂直境界画素値ｘｖ１、ｘｖ２、水平境界画素値ｘｈ１、ｈｖ２の加重平均からＢＦ後画像の画素値ｘ´を算出する。算出は以下の式（５−１１）で行われる。
【０１０２】
ｘｄ＝｛ｐｔ×ｘｔ＋ｐｖ１×ｘｖ１＋ｐｖ２×ｘｖ２＋ｐｈ１×ｘｈ１＋ｐｈ２×ｘｈ２＋ｔｏｔａｌ２｝＞＞ｓｈｉｆｔ
…（５−１１）
また、さらに重みのダイナミックレンジを復号画像の値の範囲に抑えると良い。復号画像のビット深度が８である場合には、ダイナミックレンジは０から２５５であるから、以下の式によりｘｄの範囲を制限する。
【０１０３】
ｘｄ＝ｃｌｉｐ（０、２５５、ｘｄ）
また、重みｐｔの算出に式（５−１０）を用いる場合には、ＢＦ後画像ｘｄのダイナミックレンジを抑えることができるが、さらにＢＦ後画像ｘｄの格納用のメモリを削減するには以下のようにさらにクリップし確実に所定のビット幅で格納できることを確定させると良い。
【０１０４】
ｘｄ＝ｃｌｉｐ（−１２７、１２８、ｘｄ）
ＢＦ部は、上記処理に限定されず、対象ブロックに隣接するブロックの境界付近の画素値を用いて、適応フィルタ参照用の画素値を算出する処理であれば良い。
【０１０５】
例えば、ＢＦ部の処理として、デブロッキングフィルタ処理のダイナミックレンジを拡大しても良い。
【０１０６】
より具体的には図４で示されるＢＦ部３０１のＢＦ画素生成部４０３を以下のＢＦ画素生成部４０３´に置き替えても良い。ＢＦ画素生成部４０３´に入力された「ｄ」および「ａｐ」が、所定の閾値α、βに対して、ｄ＜α、かつ、ａｐ＜βである場合に以下のフィルタ処理を施す。
【０１０７】
ｐ０´＝（ｐ２＋２×ｐ１＋２×ｐ０＋２×ｑ０＋ｑ１）
ｐ１´＝（ｐ２＋ｐ１＋ｐ０＋ｑ０）×２
ｐ２´＝（２×ｐ３＋３×ｐ２＋ｐ１＋ｐ０＋ｑ０）×２
そうではない場合には、以下のフィルタを施す。
【０１０８】
ｐ０´＝（２×ｐ１＋ｐ０＋ｑ０）×２
なお、上記処理を行わない部分の画素値も８倍とする。
【０１０９】
このように画素値のダイナミックレンジを拡大する（４０３に比べ８倍に拡大）ことによって、フィルタ処理で発生する除算（／８）によりラウンド処理を削除し、デブロッキングフィルタ処理の精度を向上させることができる。最終的に、画素値のダイナミックレンジを元のレンジに戻す処理は、適応フィルタ部３０２で行われる。適応フィルタ部３０２での重み係数は固定小数精度であり整数精度以上の精度を用いるため、高精度の参照画像の値を有効に利用できる。そのため、ＢＦ後画像のダイナミックレンジの拡大は、符号化歪み低減の精度を向上させる。
【０１１０】
また、別のＢＦ部の処理として、デブロッキングフィルタ処理の出力と入力の差分、すなわち、ブロックノイズ低減処理における入力信号の補正量を、ＢＦ部としても良い。より具体的には、デブロッキングフィルタ処理の入力をＩＮ、出力をＢＦと表現した場合、以下の式で表現される値ΔＢＦを画素値とする画像を出力する処理をＢＦ部に用いても良い。
【０１１１】
ΔＢＦ＝ＢＦ−ＩＮ
より具体的には図４で示されるＢＦ部３０１のＢＦ画素生成部４０３を以下のＢＦ画素生成部４０３´´に置き替えても良い。ＢＦ画素生成部４０３´´に入力された「ｄ」および「ａｐ」が、所定の閾値α、βに対して、ｄ＜α、かつ、ａｐ＜βである場合に以下のフィルタ処理を施す。
【０１１２】
ｐ０´＝ｃｌｉｐ（―１２７、１２８、（ｐ２＋２×ｐ１＋２×ｐ０＋２×ｑ０＋ｑ１）―８×ｐ０）
ｐ１´＝ｃｌｉｐ（―１２７、１２８、（ｐ２＋ｐ１＋ｐ０＋ｑ０）×２―８×ｐ１）
ｐ２´＝ｃｌｉｐ（―１２７、１２８、（２×ｐ３＋３×ｐ２＋ｐ１＋ｐ０＋ｑ０）×２―８×ｐ２）
そうではない場合には、以下のフィルタを施す。
【０１１３】
ｐ０´＝ｃｌｉｐ（―１２７、１２８、（２×ｐ１＋ｐ０＋ｑ０）×２―８×ｐ０）
なお、上記処理を行わない部分の画素値は０とする。
【０１１４】
このようにデブロッキングフィルタ処理後の画像の代わりに、デブロッキングフィルタ処理における補正量からなる画像をＢＦ後画像に用いることによって、ダイナミックレンジを拡大した場合においても、ＢＦ後画像のダイナミックレンジを抑えることが可能になり、少ないビット（ここでは８ビット、−１２８〜１２７）でＢＦ後画像を格納することができる。このようにするとＢＦ後画像を一時バッファに格納する場合において、必要となる一時バッファのメモリ量を低減させることができる。
【０１１５】
また、デブロッキングフィルタ処理とは逆に、ブロックノイズを強調する処理を行う処理を用いても良い。例えば、以下の式で表現される値ΔＢＦを画素値とする画像を出力する処理をＢＦ部に用いても良い。ブロックノイズを強調する処理の逆演算がブロックノイズ低減になることから、適当なブロックノイズ強調フィルタであっても適応フィルタ部３０２の重みづけによりブロックノイズ低減効果及びデブロッキング強度調整効果を得ることができる。
【０１１６】
ΔＢＦ´＝（ＢＦ−ＩＮ）×２＋ＩＮ
なお、処理対象ブロックとは異なるブロック（隣接ブロック）の画素は、予測もしくは変換が異なることから、処理対象ブロックと異なる特性を有する。このような異なる特性の画素値を適応フィルタ部３０２の入力信号として用いると歪み低減の効果を増大させることができる。ＢＦ部３０１´及びＢＦ部３０１´ｂは、隣接ブロックの画素値を用いて、適応フィルタ対象画素の参照画素を生成するものであり、異なる特性の入力信号を準備することを意味する。
【０１１７】
さらに、ＢＦ部３０１´及びＢＦ部３０１´ｂは、ブロック境界との位置関係に応じて処理を変更している。適応フィルタ部３０２においては、位置関係に応じて異なる処理を行うためには位置毎に異なる重み係数の組が必要になり重み係数が増加する。適応フィルタ部３０２の入力信号として、ＢＦ部を設けることで、ブロック境界との位置関係に応じた処理をＢＦ部に任せることできるため、多くの重み係数を符号化することなく、境界との位置関係に応じた適応フィルタ部３０２を施すことが可能になる。
【０１１８】
また、ＢＦ部３０１´およびＢＦ部３０１´ｂを通じて、境界および境界付近の画素を参照する。一般に境界画素値に近づける処理はブロックノイズ低減になることから、この構成においてブロックノイズ低減効果を得ることができる（逆に境界画素値から遠ざけることによってブロックノイズ低減効果を弱めることもできる）。ＢＦ後画像は、適応フィルタ部３０２の入力に用いられることから、適応フィルタにおいてブロックノイズ低減の強度を調整することもできる（すなわちデブロック強度調整効果が得られる）。
【０１１９】
なお、ＢＦ部を備えない適応フィルタにおいても、フィルタ対象画素が境界付近にある場合などにおいて境界付近の画素を参照するが、参照のされ方は、フィルタ対象画素と境界の位置関係によって変化する。そのため、境界付近の画素の重みを変化させるには、境界との位置関係に応じて異なる重み係数を用いる必要があるが、重み係数の符号量が大きくなる。本特許ではＢＦ部を通じて境界との位置関係を考慮した重みで境界付近の画素を明示的に参照することによって、少ない符号量でデブロック強度調整効果を得ることができる。
【０１２０】
（適応フィルタ部３０２）
ここで、適応フィルタ部３０２について図７を用いて詳細に説明する。適応フィルタ部３０２は、適応重み付け部７０１と、ＢＦ後画素値適応重み付け部７０２と、シフト／除算部７０３とを備える。適応重み付け部７０１は、タップ数Ｍおよび重み係数ａｋ（ｋ＝０〜（Ｍ×Ｍ＋１）／２−１）と、フレームメモリ１１７から入力された復号画像とを用いてフィルタ処理を行う。ＢＦ後画素値適応重み付け部７０２は、タップ数Ｎおよび重み係数ｂｋ（ｋ＝０〜（Ｎ×Ｎ＋１）／２−１）と、ＢＦ部３０１から入力された復号画像を用いてフィルタ処理を行う。
【０１２１】
適応フィルタ部３０２は、全体として下記の式（７−１）で表現されるフィルタ処理を行う。
【０１２２】
ｘ´（ｘ、ｙ）＝（Σａ（ｉ、ｊ）×ｘ（ｘ＋ｉ、ｙ＋ｊ）＋Σｂ（ｉ、ｊ）×ｘｄ（ｘ＋ｉ、ｙ＋ｊ）＋ｏ＋ｔｏｔａｌ２）＞＞ｓｈｉｆｔ
…（７−１）
ここで、ｘ（ｘ、ｙ）はＢＦ前画素値、ｘｄ（ｘ、ｙ）はＢＦ後画素値、ｘ´（ｘ、ｙ）は適応フィルタ後画素値である。（ｘ、ｙ）はフィルタ対象画素のフレーム内での位置で、フレームの幅ｗ、フレームの高さをｈとすると、０＜＝ｘ＜＝ｗ−１、０＜＝ｙ＜＝ｈ−１をとる。また、（ｉ、ｊ）は、フィルタ対象画素の位置（ｘ、ｙ）からの相対位置を示す。ａ（ｉ、ｊ）、ｂ（ｉ、ｊ）は各々、相対位置（ｉ、ｊ）に対応するＢＦ前画素値にかかる重み係数、相対位置（ｉ、ｊ）に対応するＢＦ後画素値にかかる重み係数である。ｏはオフセット、ｓｈｉｆｔは除算を実行するためのシフト値である。また第１項のΣは、（ｉ、ｊ）のｉ、ｊについて各々−ＭからＭまでの和をとり、第２項のΣは、（ｉ、ｊ）のｉ、ｊについて各々−ＮからＮまでの和をとる演算を意味する。
【０１２３】
（重み係数のインデックス）
ここで、符号化データから復号され、適応フィルタ情報保存部１１９に保存された、１次元インデックスで表示された重み係数ａｋ（ｋ＝０〜（Ｍ×Ｍ＋１）／２−１）と、上記２次元インデックスで表示された重み係数ａ（ｉ、ｊ）の関係について説明する。まず２次元インデックス（ｉ、ｊ）より、次の式で得られるｋ０を計算し、さらにｋ０からｋを計算することで１次元インデックスｋを得る。
【０１２４】
ｋ０＝（ｉ＋ｏｆｓｔ）＋（ｊ＋ｏｆｓｔ）×Ｍ
ここでｏｆｓｔ＝Ｍ／２、ｉ＝―Ｍ／２〜Ｍ／２、ｊ＝−Ｍ／２〜Ｍ／２。
【０１２５】
ｋ＝ｋ０                        （ｋ０＜（Ｍ×Ｍ＋１）／２）
＝（Ｍ×Ｍ―１）―ｋ０        （それ以外）
以下、ａ（ｉ、ｊ）と表示される演算では、２次元インデックス（ｉ、ｊ）から１次元インデックスｋに変換された後の値ｋを用いて参照されるａｋを用いる。
【０１２６】
１次元の重み係数ｂｋ（ｋ＝０〜（Ｎ×Ｎ＋１）／２−１）と、上記２次元の重み係数ｂ（ｉ、ｊ）との関係も同様であり、次の式で得られるｋ０を計算し、さらにｋ０からｋを計算することで１次元インデックスｋを得る。
【０１２７】
ｋ０＝（ｉ＋ｏｆｓｔ）＋（ｊ＋ｏｆｓｔ）×Ｎ
ここでｏｆｓｔ＝Ｎ／２、ｉ＝―Ｎ／２〜Ｎ／２、ｊ＝−Ｎ／２〜Ｎ／２。
【０１２８】
ｋ＝ｋ０                        （ｋ０＜（Ｎ×Ｎ＋１）／２）
＝（Ｎ×Ｎ―１）―ｋ０        （それ以外）
以下、ｂ（ｉ、ｊ）と表示される演算では、２次元インデックス（ｉ、ｊ）から１次元インデックスｋに変換された後の値ｋを用いて参照されるｂｋを用いる。
【０１２９】
適応フィルタ部３０２は、適応重み付け部７０１、ＢＦ後画素値適応重み付け部７０２、シフト／除算部７０３を用いて先に説明した式（７−１）の処理を行う。
【０１３０】
適応重み付け部７０１は、式（７−１）の第１項、及び、オフセットの加算、すなわち、以下の式を実行する。
【０１３１】
Σａ（ｉ、ｊ）×ｘ（ｘ＋ｉ、ｙ＋ｊ）＋ｏ
ＢＦ後画素値適応重み付け部７０２は式（７−１）の第２項、すなわち、以下の演算を実行する。
【０１３２】
Σｂ（ｉ、ｊ）×ｘｄ（ｘ＋ｉ、ｙ＋ｊ）
シフト／除算部７０３はラウンド付きシフト演算による除算ｒｄｉｖ（ｘ）を実行する。ｒｄｉｖ（ｘ）は、すなわち入力信号をｘとすると、以下の関数で表現できる。
【０１３３】
ｒｄｉｖ（ｘ）＝（ｘ＋ｔｏｔａｌ２）＞＞ｓｈｉｆｔ
このような適応フィルタ処理によって、ＢＦ前画素値とＢＦ後画素値の両者の空間的な重み演算により効果的に歪みの低減を行うことができる。
【０１３４】
（Ｍ＝１の場合）
例えば、ＢＦ前画素値の適応フィルタのタップ数Ｍが１のときには、式（７−１）は以下の式（７−２）に簡略化されるが、空間フィルタによる歪み低減効果とデブロッキング強度調整効果を得ることができる。
【０１３５】
ｘ´（ｘ、ｙ）＝（ａ（０、０）×ｘ（ｘ、ｙ）＋Σｂ（ｉ、ｊ）×ｘｄ（ｘ＋ｉ、ｙ＋ｊ）＋ｏ＋ｔｏｔａｌ２）＞＞ｓｈｉｆｔ
…（７−２）
（Ｎ＝１の場合）
また、ＢＦ後画素値の適応フィルタのタップ数Ｎが１には、以下の式（７−３）に簡略化されるが、
ｘ´（ｘ、ｙ）＝（Σａ（ｉ、ｊ）×ｘ（ｘ＋ｉ、ｙ＋ｊ）＋ｂ（０、０）×ｘｄ（ｘ、ｙ）＋ｏ＋ｔｏｔａｌ２）＞＞ｓｈｉｆｔ
…（７―３）
空間フィルタによる歪み低減効果とデブロッキング強度調整効果を得ることができる。
【０１３６】
なお、このとき、ＢＦ後画素値適応重み付け部７０２の動作は、結局、以下の式（７―４）となる。
【０１３７】
ｂ×ｘｄ（ｘ、ｙ）
…（７―４）
式（７―４）は単なる乗算であるため、ＢＦ後画素値適応重み付け部７０２の演算量は小さい。
【０１３８】
また、ＢＦ後の画素の範囲を制限したこと（ここではＮ＝１に制限）は、ある画素のループフィルタ処理においてトータルで参照する復号画素の参照範囲を削減することができる（後述）。これによってフレームメモリとのデータ転送量を削減する効果を奏する（後述）。また、この構成では、ＢＦ前画素値にかかる演算が適応フィルタ処理の大部分に相当することになるため、後述する並列性が向上するという効果を奏する。
【０１３９】
なお、式（７−４）では、ＢＦ後画素値の重み付け演算が単純な乗算に簡略化されていることから、重み付けの手段より単純な乗算手段で処理することができる。
【０１４０】
図１６は、Ｎ＝１の場合のループフィルタ部１２０（ここではループフィルタ部１２０´と呼ぶ）の構成を示すブロック図である。図１６に示すように、ＢＦ後画素値適応重み付け部７０２の代わりに、１画素のＢＦ後画素に対する重み付けのみを行う乗算部７０２´を備える構成である。すなわち、１画素のループフィルタ処理（１画素の適応フィルタ処理）に対し、ＢＦ後画素としては１画素のみを参照する。乗算部７０２´を用いる場合にはタップ数Ｎの入力は不要であり、１つの重み係数ｂの入力のみとなる。この構成は特別な効果があるため、乗算部７０２´を備える適応フィルタ部３０２を適応フィルタ部３０２´と呼び、適応フィルタ部３０２´を備えるループフィルタをループフィルタ１２０´と呼ぶ。さらにループフィルタ１２０´を備える動画像復号装置１を動画像復号装置１´と呼ぶ。
【０１４１】
（Ｍ＝Ｎ＝１の場合）
Ｍ＝Ｎ＝１の場合には、さらに下記の式（７−５）に簡略化される。
【０１４２】
ｘ´（ｘ、ｙ）＝（ａ×ｘ（ｘ、ｙ）＋ｂ×ｘｄ（ｘ、ｙ）＋ｏ＋ｔｏｔａｌ２）＞＞ｓｈｉｆｔ
…（７―５）
この場合には、わずかに３つの重み係数ａ、ｂ、ｏによってデブロッキング強度調整効果を得ることができる。また、これらは閾値ではなく重み係数であるため、最小二乗法という演算量の少ない方法で最適な値を計算することができる。
【０１４３】
また、さらにａ＋ｂ＝１、ｏ＝０という制約を用いて、式（７−６）のように簡略化することも可能である。
【０１４４】
ｘ´（ｘ、ｙ）＝（ａ×ｘ（ｘ、ｙ）＋（ｔｏｔａｌ−ａ）×ｘｄ（ｘ、ｙ）＋ｔｏｔａｌ２）＞＞ｓｈｉｆｔ
…（７―６）
この場合には、１つの重み係数ａでデブロッキング強度調整効果が得られる。
【０１４５】
また、このように簡略化された構成でなくとも、シーケンスやピクチャ、スライスによって空間的な歪み低減効果が必要ない場合や演算量を特に削減したい場合に、Ｍ＝Ｎ＝１を用いることが適当な場合がある。なお、Ｍ＝０とする場合やＮ＝０とする場合にはさらに演算量を減らすことが可能であるので、Ｍ＝０の場合やＮ＝０の場合の処理も特に排除するものではない。この場合、対応する重み係数は入力されないが重み係数＝０として動作をすれば良い。適応重み付け部７０１はオフセット、ＢＦ後画素値適応重み付け部７０２は単にゼロを出力する処理になる。
【０１４６】
（デブロッキング強度調整効果）
まず、単純なＭ＝Ｎ＝１の場合を用いて説明する。式（７−５）は次のような変形が可能である。
【０１４７】
ｘ´＝ｃ１×ｘｄ―ｃ２×（ｘｄ―ｘ）        …（７―７）
ここでｃ１＝（ａ＋ｂ）＞＞ｓｈｉｆｔ、ｃ２＝ａ＞＞ｓｈｉｆｔである。また、オフセットｏ、及び、位置（ｘ、ｙ）は表記を省略してある。ここで（ａ＋ｂ）＞＞ｓｈｉｆｔはほぼ１をとることが実験的に得られているので、さらに、式（７−７）は式（７−８）に変形できる。
【０１４８】
ｘ´＝ｘｄ―ｃ２×（ｘｄ―ｘ）        …（７―８）
ｘｄ−ｘは、ＢＦ処理によるｘの補正量である。そのためこの係数にかかる項ｃ２＞０であるとは、補正を弱めることに相当し、ｃ２＜０であるとは、補正を強めることに相当する。このようにＢＦ前画素値にかかる重み係数とＢＦ後画素値にかかる重み係数の関係によってデブロッキング強度調整効果が得られる。
【０１４９】
なお、Ｍ＞１もしくはＮ＞１の場合は、Ｍ＝Ｎ＝１の場合よりさらに自由度を増した構成を備えることから、当然、Ｍ＝Ｎ＝１の構成で得られるデブロッキング強度調整効果を得ることが可能である。
【０１５０】
（効果測定実験）
図１２は、デブロッキング処理後の画素値に空間的な適応フィルタを施すループフィルタ（従来手法１、図１７（ａ））と、デブロッキング処理前の画素値に空間的な適応フィルタを施すループフィルタ（従来手法２、図１７（ｂ））と、Ｍ＝１、Ｎ＞１の場合のループフィルタ（提案手法１）と、Ｍ＞１、Ｎ＝１の場合のループフィルタ（提案手法２）とを各々、動画像復号装置１および動画像符号化装置２に実際に組み込んだ場合の符号化効率を調査したものである。なお、比較対象は適応フィルタを含まないループフィルタ（ＢＦ部のみを備えるループフィルタ）を用いた場合であり、符号化効率は、４点の量子化パラメータで符号化した場合の、ＳＮ比と符号量を測定し、ＳＮ比が一定になるという仮定をおいた場合に、どの程度の符号量削減が可能か（率）を評価したものである（ＢＤＲＡＴＥと呼ばれる）。符号量削減率が大きいほど符号化効率向上の効果が高いと言える。
【０１５１】
なお、ＢＤＲＡＴＥの算出方法の詳細は、下記文献に記載されている。
【０１５２】
G. Bjontegaard, “Calculation of average PSNR differences between RD-Curves,” ITU-T Q.6/SG16 Doc., VCEG-M33, Austin, Apr. 2001.
図１２をみて分かるように、提案手法１、２ともに、従来手法１、２を超える性能を示す。また、デブロッキング処理前の画素値に空間的な適応フィルタを施す場合（従来手法２、Ｍ＞１、Ｎ＝０の場合に相当）には、デブロッキング処理後の画素値に施す場合（従来手法１、Ｍ＝０、Ｎ＞１の場合に相当）よりも多くの場合、性能的に低下する。
【０１５３】
しかしながら、提案手法２（Ｍ＞１、Ｎ＝１）は、ＢＦ処理後の画素値の参照を１画素に制限し、空間的な適応フィルタはＢＦ処理前の画素値に対して施すにも関わらず、デブロッキング処理後の画素値に空間的な適応フィルタを施す従来手法１を超える性能を発揮する。このことは、適応フィルタにおいてＢＦ処理後の画素値の参照範囲を制限しても十分な効果が得られることを意味する。この構成の動画像復号装置１´は、符号化効率の向上以外に、復号画素の参照範囲の削減、フレームメモリとのデータ転送量削減、並列性の向上という効果を最大限に得ることができる。
【０１５４】
（並列処理の説明）
現在は、演算部を複数備えるＣＰＵおよび集積回路が一般的であるため、同時並行に処理できるかに関わる並列性が高いかどうかは重要なポイントである。
【０１５５】
図８は、ループフィルタ１２０における並列処理を説明する図である。図８では２つの演算部（演算部＃１と演算部＃２）を用いて並列にループフィルタ処理を行う動作を示している。図８に示す通り、演算部＃１においてＢＦ部におけるＢＦ後画像生成処理を行い、演算部＃２において適応フィルタ部３０２で行われるＢＦ前画像（ループフィルタ部１２０入力画像）に対する重み付けを行うことにより、並列でループフィルタ処理を行うことができる。また、演算部＃２では、それ以外のループフィルタの処理であるＢＦ後画像に対する重み付け処理およびシフト／除算処理を行っているが、これは演算部＃１で行っても構わない。図８では特に並列演算可能な部分を並列処理可能区間として示している。
【０１５６】
なお、重み付け処理の処理量はタップ数に依存するため、ＢＦ前重み付け処理のタップ数Ｍが、ＢＦ後重み付け処理のタップ数Ｎよりも十分大きい場合には、適応フィルタ処理の多くをＢＦ前重み付け処理が占めることになる。この場合、適応フィルタとＢＦ処理とを同時に実行できるのとほぼ同じだけの効果が得られる。この場合、大きな並列性の効果を得ることができる。
【０１５７】
（参照範囲の説明）
携帯機器などのＣＰＵ及びアクセラレータの処理では、大規模な外部メモリ（例えばＳＤＲＡＭ）にアクセスするためには時間がかかるため、一度、高速にアクセスできる内部メモリにデータを転送し、内部メモリ上で処理を行った上で、処理後のデータを外部メモリに転送する動作が一般的である。
【０１５８】
動画像復号や動画像符号化では、サイズの大きいフレームメモリは大規模な外部メモリに置かれる。内部メモリには大きなデータを置くことができないため、比較的１６×１６や３２×１６などの比較的小さいブロック単位で処理が行われる。すなわち、処理対象とするブロックに必要なデータを内部メモリに転送した上で処理を行い、処理後のブロックを外部メモリに転送する。この処理を繰り返すことで１フレーム分の処理が行われる。
【０１５９】
図９は本発明の実施形態のループフィルタ部１０２（内部のＢＦ部３０１及び適応フィルタ部３０２）で用いる復号画素の参照範囲を説明するための図である。ここではループフィルタの処理をブロック単位（図９ではフィルタ対象ブロック）に行う場合を例に説明する。また、予測ブロック境界もしくは変換ブロック境界で囲まれる領域を単位とする。本発明の実施形態では予測ブロック及び変換ブロックの最小サイズを４×４としているので、その倍数の１６×１６や３２×１６をフィルタ対象ブロックサイズとすることが適当である。
【０１６０】
図９において塗りつぶし領域がフィルタ対象ブロック、Ｂはフィルタ対象ブロックの境界を示す。
【０１６１】
図１８は従来のループフィルタで用いる復号画像の範囲を説明するための図である。図１８においても、Ｂはフィルタ対象ブロックの境界を示す。
【０１６２】
図９の点線で囲まれる領域は、フィルタ対象ブロックの境界ＢにＢＦ処理を施すのに必要な復号画像の範囲を示している。ここではＢＦ処理では、境界からＤ画素を必要とする場合の例を示している。
【０１６３】
図９の点線の周囲の太い実線で囲まれる領域は、フィルタ対象ブロックの境界ＢにＢＦ処理を施すのに必要な復号画像の範囲を示している。ＢＦ後画素値に対するタップ数がＮの場合には、適応フィルタのために、境界ＢのＮ２画素分のＢＦ後画素が必要となる。ここでＮ２＝（Ｎ＋１）／２である。さらに、ＢＦ処理によりＢＦ後画素を得るためにはさらにその範囲に加えＤ画素の復号画像が必要になるため、合計で境界ＢからＮ２＋Ｄ画素だけ離れた位置までの復号画像を必要とする。
【０１６４】
このようにＢＦ後画素に対して空間的な適応フィルタを用いる場合には、フィルタ対象ブロックのループフィルタ処理に必要な復号画像の範囲（参照範囲）は大きくなる。以下、より具体的に説明する。
【０１６５】
図１８は、図１７（ａ）で示される従来技術のループフィルタの例である。デブロッキングフィルタ部の処理には点線で示すようにＢの周囲にＤ画素が必要であり、適応フィルタ部３０２の処理には太い実線で示すようにＢの周囲にＮ２＋Ｄ画素が必要である。Ｎ２＋Ｄ＞Ｄであるので、ループフィルタの参照範囲はＢの周囲のＮ２＋Ｄ画素となる。
【０１６６】
図９（ａ）は、本発明のループフィルタ１２０の一般の場合である。ＢＦ部３０１の処理には点線で示すようにＢの周囲にＤ画素が必要になる。ＢＦ後画素のタップ数をＮ、ＢＦ前画素のタップ数をＭとすると、適応フィルタ部３０２の処理にはＢの周囲にＭＡＸ（Ｎ２＋Ｄ、Ｍ２）画素が必要になる。なお、ＭＡＸ（ａ、ｂ）はａとｂの最大値を算出する演算、Ｍ２＝（Ｍ＋１）／２である。図９（ａ）ではＮ２＋Ｄ＞Ｍ２の場合の図であり、太い実線で示すループフィルタの参照範囲はＢの周囲のＮ２＋Ｄ画素である。
【０１６７】
図９（ｂ）は、ＢＦ後画素のタップ数Ｎ＝１の場合である。この場合、ＢＦ部３０１の処理には点線で示すようにＢの周囲にＤ画素、適応フィルタ部３０２の処理にはＢの周囲にＭＡＸ（Ｄ、Ｍ２）の画素が必要になる。図９（ｂ）ではＭ２＞Ｄの場合の図であり、太い実線で示すループフィルタの参照範囲はＢの周囲のＭ２画素である。
【０１６８】
図１８で説明したデブロッキング処理後画像を用いて空間的な適応フィルタ処理を行う従来技術の場合、及び、図９（ａ）で説明したＢＦ後画像を用いて空間的な適応フィルタ処理（Ｎ＞１の適応フィルタ）を行う場合には、ＢＦ部３０１に必要な復号画像の領域と、適応フィルタ部３０２に必要な復号画像の領域は重なりが小さい。それに対して、図９（ｂ）で説明した、ＢＦ前画像を用いて空間的な適応フィルタ処理を行い、ＢＦ後画像を用いては空間的な適応フィルタ処理を行わない場合（Ｍ＞１、Ｎ＝１）には、ＢＦ部３０１に必要な復号画像の領域と、適応フィルタ部３０２に必要な復号画像の領域の重なりが大きい。
【０１６９】
ＢＦ部３０１と、適応フィルタ部３０２で、必要な復号画像の重なりが大きいことは、ＢＦ部３０１と適応フィルタ部３０２で同じ復号画像を用いることができる領域が大きいことを意味する。これはあるフィルタ対象ブロックで参照する画像の範囲を削減することができると同時に、以下に示すデータ転送上の効果を奏する。
【０１７０】
（データ転送の説明）
図１０は本発明の実施形態の動画像復号装置１のデータ転送を説明するための図である。特にＮ＝１を特化した乗算部７０２´を備える動画像復号装置１´のデータ転送を想定して説明する。図１９は従来技術の動画像復号値のデータ転送を説明するための図である。図１９（ａ）は、復号処理とデブロッキングフィルタ処理と適応フィルタ処理を独立した処理として別々の転送で行う場合を示したものである。この場合、処理の度に、外部メモリと内部メモリ間のデータ転送が必要になるため、全体としてデータ転送量が非常に大きい。それに対し、複数の処理を一度の転送で実施すれば、途中の処理で必要になる中間データ（一時データ）の外部メモリ転送および中間データの内部メモリ転送が不要となることから、データ転送量を削減できる。
【０１７１】
図１８を用いて説明したように、従来技術においては、デブロッキングフィルタ処理と適応フィルタ処理で必要となる画素の範囲の重なりが小さい。そのため、一度の転送で、デブロッキングフィルタ処理と適応フィルタ処理を実行する場合にも削減できるデータ量は小さい。よって、仮に一度の転送でデータ転送を実施しようとすれば、従来技術では図１９（ｂ）に示すように復号処理とデブロッキングフィルタ処理を一度の転送で実行することになる。
【０１７２】
図１０（ａ）は本発明の実施形態の動画像復号装置１´において、復号処理とデブロッキングフィルタ処理と適応フィルタ処理を別々に行う場合を示す。図９（ｂ）を用いて説明したように、本構成においては、デブロッキングフィルタ処理と適応フィルタ処理で必要となる画素の範囲の重なりが大きいため、データ削減の効果が大きく、図１０（ｂ）に示すようなデータ転送量の削減が可能である。なお従来技術の相当する図１９（ｂ）と本発明の図１０（ｂ）を比較すると同程度のデータ転送量の削減が実現できているようにも見えるが、実際には、本発明の図１０（ｂ）の方の削減量が大きい。従来技術の図１９（ｂ）の場合、復号処理とデブロッキングフィルタ処理を一度の転送で実行するが、デブロッキングフィルタ処理で必要なデータは、復号処理で必要なデータに加えて余分なデータが必要であるためそのデータ転送量の増加がある。これに対し、図１０（ｂ）では、デブロッキングフィルタ処理で参照されるデータは、適応フィルタ処理で参照されるデータに含まれるためデータ転送量の増加はない。
【０１７３】
また本発明の場合には、さらに図１０（ｃ）のように復号処理とデブロッキングフィルタ処理と適応フィルタ処理の３つを一度の転送で行うことも可能である。この場合、データ転送量を一層削減することができる。
【０１７４】
なお、データ転送量の削減を行うと、バス速度の低減などを通じて、消費電力の削減効果を得ることが可能である。また、処理のために必要なデータ待ちがある場合など、データ転送が演算処理のボトルネックになっている場合には、処理速度の向上にダイレクトに効いてくる。このような場合は、ＰＣなど高速なコンピュータの場合には多くはないが、バス速度が低い携帯端末などではデータ転送がボトルネックになることは少なくなく、データ転送量の削減は重要である。
【０１７５】
（動画像符号化装置）
つづいて、本発明を適用した画像符号化装置について、図を参照して説明する。
【０１７６】
図２は、動画像符号化装置２の構成を示すブロック図である。動画像符号化装置１と同様の部材に関しては、同一の符号を付し、その説明を省略する。
【０１７７】
図２に示すように、動画像符号化装置２は、予測部１１１と、変換部１１２と、量子化部１１３と、可変長符号化部１１４と、逆量子化部１１５と、逆変換部１１６と、フレームメモリ１１７と、適応フィルタ情報算出部１１８と、適応フィルタ情報保存部１１９と、ループフィルタ部１２０と、減算部１０７と、加算部１０９を備える。
【０１７８】
動画像符号化装置２は、フレームメモリ１１７に格納された局所復号画像の歪みを低減するループフィルタ部１２０を備え、ループフィルタ部１２０を制御するための適応フィルタ情報を格納する適応フィルタ情報保存部１１９を備える。以下、動画像符号化装置２の動作について説明する。
【０１７９】
動画像符号化装置２に画像が入力された画像はブロックに分解され、以下の処理がなされる。予測部１１１は、入力ブロックを近似する予測ブロックを生成する。減算部１０７は、入力ブロックと予測部１１１から出力される予測ブロックの差分値である差分値ブロックを計算する。
【０１８０】
変換部１１２は、減算部１０７から入力された差分値ブロックに対しＤＣＴ変換などにより変換係数を算出する。量子化部１１３は、量子化ステップにより定まるステップに従い、変換係数を量子化する。量子化された変換係数は、可変長符号化部１１４により符号化されて外部に出力される。
【０１８１】
逆量子化部１１５は、量子化された変換係数を逆量子化する。逆変換部１１６は、逆量子化された変換係数を逆変換し、残差ブロックを算出する。加算部１０９は、残差ブロックと予測ブロックとの和を計算し、入力ブロックを再生する。再生されたブロックは、フレームメモリ１１７に格納される。
【０１８２】
適応フィルタ情報算出部１１８は、適応フィルタ情報を算出する。算出された適応フィルタ情報は、適応フィルタ情報保存部１１９に格納され、次に可変長符号化部１１４に出力される。可変長符号化部１１４は、予測方法を示す情報と変換係数だけでなく、適応フィルタ情報の可変長符号化も行い出力する。
【０１８３】
算出された適応フィルタ情報は適応フィルタ情報保存部１１９に格納される。ループフィルタ部１２０は、適応フィルタ情報保存部１１９に保存された適応フィルタ情報を読み出し、その値に従って、フレームメモリ１１７に格納された局所復号画像にフィルタ処理を行う。フィルタ処理された画像はフレームメモリ１１７に再度格納される。
【０１８４】
適応フィルタ情報保存部１１９、ループフィルタ部１２０の動作は、動画像復号装置１と同一であるので、説明を省略する。
【０１８５】
（適応フィルタ情報算出部１１８の説明）
以下、適応フィルタ情報算出部１１８の動作を説明する。適応フィルタ情報算出部１１８は、入力画像ｘｏと復号画像ｘおよびＢＦ後の画素値ｘｄから、以下の式（８−１）を最小化する重み係数ａｆｋ（ｋ＝０〜（Ｍ×Ｍ＋１）／２−１）とｂｆｋ（ｋ＝０〜（Ｎ×Ｎ＋１）／２−１）、オフセットｏｆの推定値を最小２乗法により求める。ここでｆはｆｌｏａｔの略であり、最小２乗法では小数点数として重み係数を算出することを意味する。
【０１８６】
Σ｜ｘｏ（ｘ、ｙ）−（Σａｆ（ｉ、ｊ）×ｘ（ｘ＋ｉ、ｙ＋ｊ）＋Σｂｆ（ｉ、ｊ）×ｘｄ（ｘ＋ｉ、ｙ＋ｊ）＋ｏｆ）｜＾２
…（８−１）
ここで、＾２は二乗を示す。最初のΣは全ての（ｘ、ｙ）に対する和、第１項のΣは、（ｉ、ｊ）のｉ、ｊについて各々−ＭからＭまでの和、最後のΣは、（ｉ、ｊ）のｉ、ｊについて各々−ＮからＮまでの和をとる演算を意味する。
【０１８７】
なお、ａｋとａｆ（ｉ、ｊ）の関係、ｂｋとｂｆ（ｉ、ｊ）の関係は既に動画像復号装置１の説明で示したとおりである。
【０１８８】
最小２乗法の算出ではまず、式（８−１）を重み係数ａｆｋとｂｆｋ、オフセットｏｆをパラメータとする以下の式（８−２）に直す。
【０１８９】
Σ｜ｘｏ（ｘ、ｙ）−（Σｘ（ｘ＋ｉ、ｙ＋ｊ）×ａｆｋ＋Σｘｄ（ｘ＋ｉ、ｙ＋ｊ）×ｂｆｋ＋ｏｆ）｜＾２
…（８−２）
さらに、Σで示される和として、（ｉ、ｊ）に関する和から、ｋに関する和に置き替える。ここでｋから（ｉ、ｊ）への対応関係は２通りあるため、一方を（ｉ、ｊ）、もう一方を（ｉ´、ｊ´）と表現する。
【０１９０】
ｋから（ｉ、ｊ）、（ｉ´、ｊ´）への変換は以下の演算で行われる。まず、以下の式を用いてｋからｋ０とｋ０´を計算する。
【０１９１】
ｋ０  ＝ｋ
ｋ０´＝（Ｍ×Ｍ−１）―ｋ
次に、ｋ０とｋ０´から以下の式を用いてｉ、ｊを計算する。
【０１９２】
ｉ＝（ｋ０％Ｍ）−ｏｆｓｔ
ｊ＝（ｋ０／Ｍ）−ｏｆｓｔ
ｉ´＝（ｋ０´％Ｍ）−ｏｆｓｔ
ｊ´＝（ｋ０´／Ｍ）−ｏｆｓｔ
ここで％は剰余を計算する演算、／は除算を行い小数点以下を切り捨てて整数化する演算、ｏｆｓｔ＝Ｍ／２である。
【０１９３】
なお、ｘｄに関しては上の式でＭをＮに置き替えた演算で（ｉ、ｊ）、（ｉ´、ｊ´）を計算する。
【０１９４】
上記の置き替えにより、式（８−２）は式（８−３）として表現することができる。
【０１９５】
Σ｜ｘｏ（ｘ、ｙ）−（Σ｛ｘ（ｘ＋ｉ、ｙ＋ｊ）＋ｘ（ｘ＋ｉ´、ｙ＋ｊ´）｝×ａｆｋ＋Σ｛ｘｄ（ｘ＋ｉ、ｙ＋ｊ）＋ｘｄ（ｘ＋ｉ´、ｙ＋ｊ´）｝×ｂｆｋ＋ｏｆ）｜＾２      …（８−３）
ここで、最初のΣは全ての（ｘ、ｙ）に対する和、第１項のΣはｋについて０から（Ｍ×Ｍ＋１）／２−１までの和、最後のΣはｋについて０から（Ｎ×Ｎ＋１）／２−１までの和をとる演算を意味する。
【０１９６】
式（８−３）をパラメータａｆｋ、ｂｆｋ、ｏｆの式とみなして、各々のパラメータに対して偏微分を行い、これを０とする。これによって、正規方程式と呼ばれるパラメータの数（Ｍ×Ｍ＋１）／２＋（Ｎ×Ｎ＋１）／２＋１個の連立方程式が得られる。
【０１９７】
得られた方程式をガウスの消去法などによって解くとことにより、ａｆｋの最適推定値ａｆｅと、ｂｆｋの最適推定値ｂｆｅ、ｏｆの最適推定値ｏｆｅが得られる。
これらを重み係数の組を推定値ｚｆｅと呼ぶ。なお、ＢＦ後の画素値ｘｄは、ループフィルタ部１２０内のＢＦ部３０１を動作させて算出する。
【０１９８】
最小二乗法の演算は、事前にＢＦ前の画素値に対するタップ数ＭとＢＦ前の画素値に対するタップ数Ｎを特定の値に定めて行われる。但し、最適なＭとＮの組み合わせを予め定めることは困難であることから、次に示す擬似コードで表現する処理によって可能な全ての組み合わせのＭおよびＮに対して最小２乗法を行い、最適なＭとＮの組み合わせを選択することで、最適化を行う。
【０１９９】
ＳＭＩＮ＝０ｘ７ＦＦＦＦＦＦＦ（十分大きな値、ここでは３２ビット符号付き整数の最大値を設定）
ＬＯＯＰ（Ｍ＝１、３、５）｛
ＬＯＯＰ（Ｎ＝１、３、５）｛
最小二乗法により重み係数ｚｆｅを得る
ｚｆｅを式（８−３）に代入して得られる二乗誤差の大きさをＳとする
ＩＦ（Ｓ  ＜  ＳＭＩＮ）｛
重み係数ｚｆｅを最適な重み係数ｚｆｂｅｓｔとして保存
Ｓ＝ＳＭＩＮ
｝
｝
｝
ここで算出された最適な重み係数セットをｚｆｂｅｓｔ＝｛ａｆｂｅｓｔ、ｂｆｂｅｓｔ、ｏｂｂｅｓｔ｝とする。次の式で示される演算で整数化し、適応フィルタ情報保存部１１９に保存する。
【０２００】
ａｂｅｓｔ＝（ｉｎｔ）｛ａｆｂｅｓｔ×（１＜＜ｓｈｉｆｔ）｝
ｂｂｅｓｔ＝（ｉｎｔ）｛ｂｆｂｅｓｔ×（１＜＜ｓｈｉｆｔ）｝
ｏｂｅｓｔ＝（ｉｎｔ）｛ｏｆｂｅｓｔ×（１＜＜ｓｈｉｆｔ）｝
なお（ｉｎｔ）は整数化を示す。
【０２０１】
また、以上説明したそれぞれの実施形態において、動画像復号装置および動画像復号装置の各機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより動画像復号装置や動画像復号装置の制御を行っても良い。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【０２０２】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるものであっても良い。
【０２０３】
〔ループフィルタ部１２０の変形例〕
最後に、上述したループフィルタ部１２０の構成を整理したうえで、いくつかの変形例について説明する。
【０２０４】
（ループフィルタ部１２０の構成）
図２０は、図３に示すループフィルタ部１２０の構成を、図７に示す適応フィルタ部３０２の内部構成を含めて図示したブロック図である。図２０に示すように、ループフィルタ部１２０は、ＢＦ部３０１と適応フィルタ部３０２とを備えている。
【０２０５】
ループフィルタ部１２０は、ＢＦ部３０１と、適応フィルタ部３０２とにより構成される。ループフィルタ部１２０を動画像符号化装置２に内蔵する場合、ループフィルタ部１２０には、局所復号画像が入力され、ループフィルタ部１２０を動画像復号装置１に内蔵する場合、ループフィルタ部１２０には、復号画像が入力される。以下、局所復号画像と復号画像とを区別せずに「復号画像Ｘ」と記載する。
【０２０６】
復号画像Ｘは、直交変換（例えばＤＣＴ変換）／量子化／逆量子化／逆直交変換（例えば逆ＤＣＴ変換）を経て生成された画像である。したがって、復号画像Ｘには、直交変換の変換単位の境界において画素値（輝度または色差）が不連続に変化するブロックノイズが含まれ得る。また、符号化対象画像から予測画像を減算して得られる予測残差に対して、直交変換／量子化／逆量子化／逆直交変換を施す場合には、予測画像の生成単位（予測単位）の境界においてもブロックノイズが発生し得る。
【０２０７】
ＢＦ部３０１は、このようなブロックノイズを除去するためのフィルタであり、端的に言えば、ブロック境界（変換単位の境界または予測単位の境界）に選択的に作用する平滑化フィルタである。本明細書では、このようなフィルタを「境界フィルタ」あるいは「境界利用フィルタ」と呼ぶ。ＢＦ部３０１によるフィルタ演算は、if文における条件評価などの非線形演算を含むことに加え、フィルタ強度を適応的に調整するために演算量が多い。例えば、H２６４／ＡＶＣにおける復号処理では、処理時間の大半がデブロッキングフィルタによるフィルタ演算に費やされる場合もある。なお、ＢＦ部３０１の詳細については、すでに説明したとおりである。
【０２０８】
ループフィルタ部１２０は、このようなＢＦ部３０１に、適応フィルタ部３０２を組み合わせたものである。ループフィルタ部１２０が備える適応フィルタ部３０２は、図２１に示すように、適応重み付け部７０１（以下、「第１の線形フィルタ部７０１」と呼称）と、ＢＦ後画素適応重み付け部７０２（以下「第２の線形フィルタ部７０２」と呼称）と、加算部７０４とを備えている。図７に示したように、加算部７０４の後段にシフト／除算部７０３を設けてもよいが、シフト／除算部７０３の作用は本発明において本質的なものではないので、ここでは省略する。
【０２０９】
第１の線形フィルタ部７０１は、ＢＦ部３０１に入力される（デブロッキングフィルタ処理前の）復号画像Ｘに作用する線形フィルタである。すなわち、第１の線形フィルタ部７０１のタップ数をＭとすると、第１の線形フィルタ部７０１から出力される画素値Ｓ１（ｘ，ｙ）は、参照画素値群｛Ｘ1，Ｘ2，…，ＸＭ×Ｍ｝を用いて、Ｓ１（ｘ，ｙ）＝ａ1×Ｘ1＋ａ2×Ｘ2＋…＋ａＭ×Ｍ×ＸＭ×Ｍ＋ｏと表せる。ここで、ａ1，ａ2，…，ａＭ×Ｍは、動画像符号化装置２においてフィルタ係数設定単位（たとえばスライス）毎に適応的に設定されたフィルタ係数であり、ｏは、同様にして設定されたオフセット値（ＤＣ成分）である。第１の線形フィルタ部７０１のタップ数Ｍは、上述したように、１であってもよいが、以下では、２以上の自然数であると仮定する。つまり、第１の線形フィルタ部７０１は、空間フィルタであるものとする。
【０２１０】
出力画像Ｓ１の画素（ｘ，ｙ）における画素値Ｓ１（ｘ，ｙ）を得るために第１の線形フィルタ部７０１が参照する参照画素値群｛Ｘ1，Ｘ2，…，ＸＭ×Ｍ｝は、画素（ｘ，ｙ）を含む領域Ｕ（以下、「参照領域Ｕ」と呼ぶ）に属する各画素の画素値からなる集合であり、｛Ｘ（ｕ，ｖ）｜（ｕ，ｖ）∈Ｕ｝と表現することができる。ここで、Ｘ（ｕ，ｖ）は、デブロッキングフィルタ前の復号画像Ｘの画素（ｕ，ｖ）における画素値である。例えば、参照領域Ｕが画素（ｘ，ｙ）を中心とする正方形領域である場合、参照画素値群｛Ｘ1，Ｘ2，…，ＸＭ×Ｍ｝は、｛Ｘ（ｕ，ｖ）｜ｘ−（Ｍ−１）／２≦ｕ≦ｘ＋（Ｍ−１）／２，ｙ−（Ｍ−１）≦ｖ≦ｙ＋（Ｍ−１）｝と書ける。また、参照領域Ｕが画素（ｘ，ｙ）を左上隅の頂点とする正方形領域である場合、参照画素値群｛Ｘ1，Ｘ2，…，ＸＭ×Ｍ｝は、｛Ｘ（ｕ，ｖ）｜ｘ≦ｕ≦ｘ＋Ｍ−１，ｙ≦ｖ≦ｙ＋Ｍ−１｝と書ける。また、画素（ｘ，ｙ）からの市街地距離（マンハッタン距離）が予め定められた値以下となる画素（ｕ，ｖ）よりなる菱形領域を参照領域Ｕとしてもよい。ただし、参照領域Ｕは、画素（ｘ，ｙ）を含む領域であれば何でもよく、ここに例示したものに限らない。
【０２１１】
第２の線形フィルタ部７０２は、ＢＦ部３０１から出力される（デブロッキングフィルタ処理後の）復号画像Ｘｄに作用する線形フィルタである。すなわち、第２の線形フィルタ部７０２のタップ数をＮとすると、第２の線形フィルタ部７０２から出力される画素値Ｓ２（ｘ，ｙ）は、参照画素値群｛Ｘｄ1，Ｘｄ2，…，ＸｄN×N｝を用いて、Ｓ２（ｘ，ｙ）＝ｂ1×Ｘｄ1＋ｂ2×Ｘｄ2＋…＋ｂN×N×ＸｄN×Nと表せる。ここで、ｂ1，ｂ2，…，ｂＮ×Ｎは、上述したフィルタ係数ａ1，ａ2，…，ａＭ×Ｍ、および、オフセットｏと共に、動画像符号化装置２において適応的に定められたフィルタ係数である。第２の線形フィルタ部７０２のタップ数Nは、１以上の自然数である。すなわち、第２の線形フィルタ部７０２は、空間フィルタであることを要さない。
【０２１２】
出力画像Ｓ２の画素（ｘ，ｙ）における画素値Ｓ２（ｘ，ｙ）を得るために第２の線形フィルタ部７０２が参照する参照画素値群｛Ｘｄ1，Ｘｄ2，…，ＸｄN×N｝は、画素（ｘ，ｙ）を含む領域Ｖ（以下、「参照領域Ｖ」と呼ぶ）に属する画素の画素値からなる集合であり、｛Ｘｄ（ｕ，ｖ）｜（ｕ，ｖ）∈Ｖ｝と表現することができる。ここで、Ｘｄ（ｕ，ｖ）は、デブロッキングフィルタ後の復号画像Ｘｄの画素（ｕ，ｖ）における画素値である。例えば、参照領域Ｖが画素（ｘ，ｙ）を中心とする正方形領域である場合、参照画素値群｛Ｘｄ1，Ｘｄ2，…，ＸｄN×N｝は、｛Ｘｄ（ｕ，ｖ）｜ｘ−（Ｎ−１）≦ｕ≦ｘ＋（Ｎ−１），ｙ−（Ｎ−１）≦ｖ≦ｙ＋（Ｎ−１）｝と書ける。また、参照領域Ｖが画素（ｘ，ｙ）を左上隅の頂点とする正方形領域である場合、参照画素値群｛Ｘｄ1，Ｘｄ2，…，ＸｄN×N｝は、｛Ｘ（ｕ，ｖ）｜ｘ≦ｕ≦ｘ＋（Ｎ−１），ｙ≦ｖ≦ｙ＋（Ｎ−１）｝と書ける。また、画素（ｘ，ｙ）からの市街地距離（マンハッタン距離）が予め定められた閾値以下となる画素（ｕ，ｖ）よりなる菱形領域を参照領域Ｖとしてもよい。ただし、参照領域Ｖは、画素（ｘ，ｙ）を含む領域であれば何でもよく、ここに例示したものに限らない。
【０２１３】
加算部７０４は、第１の線形フィルタ部７０１の出力画像Ｓ１と第２の線形フィルタ部７０２の出力画像Ｓ２とを加算し、合成画像Ｓを得る。加算部７０４にて得られる合成画像Ｓの画素（ｘ，ｙ）における画素値Ｓ（ｘ，ｙ）は、第１の線形フィルタ部７０１の出力画像Ｓ１の画素（ｘ，ｙ）における画素値Ｓ１（ｘ，ｙ）と、第２の線形フィルタ部７０２の出力画像Ｓ２の画素（ｘ，ｙ）における画素値Ｓ２（ｘ，ｙ）との和Ｓ１（ｘ，ｙ）＋Ｓ２（ｘ，ｙ）になる。ループフィルタ部１２０は、加算部７０４にて得られた合成画像Ｓを外部に出力する。以下、合成画像Ｓを、出力画像Ｓとも呼称する。
【０２１４】
ループフィルタ部１２０の出力画像Ｓの画素（ｘ，ｙ）における画素値Ｓ（ｘ，ｙ）は、以下のように表すことができる。（ａ）式において、第１項のΣは、ｉ＝１，２，…，Ｍ×Ｍを渡る和であり、第２項のΣは、ｊ＝１，２，…，Ｎ×Ｎを渡る和である。なお、ここでは、第１の線形フィルタ部７０１によって（ａ）式におけるオフセットoを加算する構成を説明したが、第２の線形フィルタ部７０２によって（ａ）式におけるオフセットｏを加算する構成に置き換えてもよい。
【０２１５】
Ｓ（ｘ，ｙ）  ＝  Σａi×Ｘi  ＋  Σｂj×Ｘｄj  ＋  ｏ  …（ａ）
図２０に示すループフィルタ部１２０において特に注目すべき点は、適応フィルタ部３０２の一部（第２の線形フィルタ部７０２）を、ＢＦ部３０１の後段に配置し、ＢＦ部３０１から出力されるデブロッキングフィルタ処理後の復号画像Ｘｄに作用させると共に、適応フィルタ部３０２の一部（第１の線形フィルタ部７０１）を、ＢＦ部３０１と並列に配置し、ＢＦ部３０１に入力されるデブロッキングフィルタ処理前の復号画像Ｘに作用させている点である。このように、空間フィルタである第１の線形フィルタ部７０１をＢＦ部３０１と並列に配置することによって、符号化効率を低下させることなく、第２の線形フィルタ部７０２のタップ数Ｎを小さくすることが可能になる。実際、第２の線形フィルタ部７０２のタップ数Ｎを１にまで低下させても符号化効率の低下が生じないことは、図１２に示したとおりである。
【０２１６】
ここで、第２の線形フィルタ部７０２におけるフィルタ演算は、ＢＦ部３０１におけるフィルタ演算と並列化し得ないのに対し、第１の線形フィルタ部７０１におけるフィルタ演算は、ＢＦ部３０１によるフィルタ演算と並列化し得る点に留意されたい。すなわち、２以上の演算手段を備えた環境においては、仮に第１の線形フィルタ部７０１のタップ数Ｍが大きくなって演算量が増えたとしても、第２の線形フィルタ部７０２のタップ数Ｎが小さくなって演算量が減れば、全体の演算時間の短縮を図ることができる。すなわち、第２の線形フィルタ部７０２をＢＦ部３０１の後段に配置すると共に、第１の線形フィルタ部７０１をＢＦ部３０１と並列に配置することによって、ループフィルタ部１２０において、符号量削減率の低下を招来することなく、並列化による高速化を実現することができる。
【０２１７】
（変形例１）
次に、図２０に示すループフィルタ部１２０の第１の変形例について、図２１及び図２２を参照して説明する。
【０２１８】
本変形例に係るループフィルタ部１２０ａは、（１）第２の線形フィルタ部７０２の出力画像Ｓ２を出力画像Ｓとする第１のモード、及び、（２）第１の線形フィルタ部７０１の出力画像Ｓ１と第２の線形フィルタ部７０２の出力画像Ｓ２とを加算することにより得られた合成画像Ｓを出力画像Ｓとする第２のモードで動作可能なフィルタ装置である。
【０２１９】
ループフィルタ部１２０ａが何れのモードで動作するかは、動画像符号化装置２から提供されるフィルタパラメータに含まれるモード指定情報（以下「alf_parallel_mode」とも表記）により制御される。本変形例においては、alf_parallel_mode＝０の場合、ループフィルタ部１２０ａは第１のモードで動作し、alf_parallel_mode＝１の場合、ループフィルタ部１２０ａは第２のモードで動作する。
【０２２０】
図２１は、本変形例に係るループフィルタ部１２０ａの動作状態を示すブロック図である。図２１（ａ）は、第１のモードにおける動作状態を示し、図２１（ｂ）は、第２の動作モードにおける動作状態を示している。
【０２２１】
図２１（ａ）に示すように、第１のモードにおいては、第１の線形フィルタ部７０１が機能を停止し、第２の線形フィルタ部７０２の出力画像Ｓ２が出力画像Ｓとしてループフィルタ部１２０ａから出力される。つまり、出力画像Ｓの画素（ｘ，ｙ）における画素値Ｓ（ｘ，ｙ）は、（ｂ）式のように表すことができる。（ｂ）式において、Σは、ｊ＝１，２，…，Ｎ×Ｎを渡る和である。
【０２２２】
Ｓ（ｘ，ｙ）  ＝  Σｂj×Ｘｄj…（ｂ）
第１のモードにおいて、第２の線形フィルタ部７０２のタップ数Ｎは可変であり、動画像符号化装置２から提供されるフィルタパラメータに含まれるタップ数指定情報（以下「alf_length_luma_minus5_div2」とも表記）によって決定される。ここで、alf_length_luma_minus5_div2は、０以上３以下の自然数を表す２ビットのバイナリデータである。alf_length_luma_minus5_div2＝０（００），１（０１），２（１０），３（１１）のとき（括弧内は２進表記）、第２の線形フィルタ部７０２は、自身のタップ数Ｎを、それぞれ、Ｎ＝５，７，９，１１に設定する。
【０２２３】
図２１（ｂ）に示すように、第２のモードにおいては、第１の線形フィルタ部７０１の出力画像Ｓ１と第２の線形フィルタ部７０２の出力画像Ｓ２とを加算することにより得られた合成画像Ｓが出力画像Ｓとしてループフィルタ部１２０ａから出力される。つまり、出力画像Ｓの画素（ｘ，ｙ）における画素値Ｓ（ｘ，ｙ）は、（ｃ）式のように表すことができる。（ｃ）式において、Σは、ｉ＝１，２，…，Ｍ×Ｍを渡る和である。
【０２２４】
Ｓ（ｘ，ｙ）  ＝  Σａi×Ｘi  ＋  ｂ×Ｘｄ（ｘ，ｙ）＋ｏ  …（ｃ）
第２のモードにおいて、第１の線形フィルタ部７０１のタップ数Ｍは可変であり、上述したタップ数指定情報によって決定される。alf_length_luma_minus5_div2＝０（００），１（０１），２（１０），３（１１）のとき（括弧内は２進表記）、第１の線形フィルタ部７０１は、自身のタップ数Ｍを、それぞれ、Ｍ＝５，７，９，１１に設定する。一方、第２の線形フィルタ部７０２のタップ数Ｎは、Ｎ＝１に固定されている。２以上の演算手段を備えている場合、ループフィルタ部１２０ａは、これら２つの演算手段を用いて、ＢＦ部３０１によるフィルタ演算と、第１の線形フィルタ部７０１によるフィルタ演算（積和演算）とを並列的に実行することができる。
【０２２５】
本変形例においては、第２の線形フィルタ部７０２のタップ数Ｎが１に設定されるため、第２のモードにおいて、第２の線形フィルタ部７０２におけるフィルタ演算が極めて軽い処理になる。したがって、第２のモードにおいて、ＢＦ部３０１によるフィルタ演算と、適応フィルタ部３０２によるフィルタ演算とを、略完全に並列化し得る。
【０２２６】
ループフィルタ部１２０ａにおける動作モードの切り替え、及び、タップ数の設定（第１のモードにおける第２の線形フィルタ部７０２のタップ数Ｎの設定、及び、第２の動作モードにおける第１の線形フィルタ部７０１のタップ数Ｍの設定）は、動画像符号化装置２から提供されるフィルタパラメータに基づいて行われる。
【０２２７】
図２２は、動画像符号化装置２から提供されるフィルタパラメータ（alf_param）の一構成例を示す図である。図２２に示すように、本構成例に係るフィルタパラメータは、スライス毎に動画像符号化装置２から提供されるフィルタパラメータであり、対象スライスに対する適応フィルタ部３０２の動作を規定する複数のシンタックス（adaptive_loop_filter_flag、alf_pred_coef_mode、alf_parallel_mode、alf_length_luma_minus5_div2、alf_coeff_luma[i]）を含んでいる。
【０２２８】
adaptive_loop_filter_flagは、対象スライスにおいて適応フィルタ１１を使用するか否かを指定する情報である。adaptive_loop_filter_flag＝０である場合、ループフィルタ部１２０ａは、デブロッキングフィルタ後の復号画像Ｘｄを出力画像Ｓとして出力する。
【０２２９】
alf_pred_coef_modeは、フィルタ係数を予測符号化するか否かを指定する情報である。alf_pred_coef_mode＝０は、フィルタ係数の予測符号化が行なわれていないことを示し、alf_pred_coef_mode＝１は、予測符号化が行なわれていることを示す。例えば、第１の線形フィルタ部７０１は、alf_pred_coef_mode＝０である場合、フィルタ係数ａiの値をalf_coeff_luma[i]に設定し、alf_pred_coef_mode＝１である場合、フィルタ係数ａiの値を前フレームにおける同フィルタ係数ａiの値とalf_coeff_luma[i]との和に設定する。
【０２３０】
alf_parallel_modeは、adaptive_loop_filter_flag＝１である場合に、ループフィルタ部１２０を第１のモードで動作させるか、第２のモードで動作させるかを指定する情報（モード指定情報）である。ＢＦ部３０１によるフィルタ演算と第１の線形フィルタ部７０１によるフィルタ演算とを並列的に実行するか否かを指定する情報であると言い換えることもできる。上述したとおり、alf_parallel_mode＝０の場合、ループフィルタ部１２０ａは第１のモードで動作し、alf_parallel_mode＝１の場合、ループフィルタ部１２０ａは第２のモードで動作する。
【０２３１】
alf_length_luma_minus5_div2は、上述したとおり、第１のモードにおいて第２の線形フィルタ部７０２のタップ数Ｎを指定し、第２の動作モードにおいて第１の線形フィルタ部７０１のタップ数Ｍを指定する情報（タップ数指定情報）である。上述したとおり、alf_length_luma_miｎus5_div2＝０，１，２，３のとき、それぞれ、Ｍ＝５，７，９，１１（第２のモード）、Ｎ＝５，７，９，１１（第１のモード）に設定される。このように、第１のモードにおける第２の線形フィルタ部７０２のタップ数Ｎと、第２の動作モードにおける第１の線形フィルタ部７０１のタップ数Ｍとを、１つのパラメータで指定する構成を採用しているのは、フィルタパラメータのデータサイズをできるだけ小さく抑えるためである。
【０２３２】
alf_coeff_luma[i]は、第１の線形フィルタ部７０１及び第２の線形フィルタ部７０２のフィルタ係数、並びに、オフセットｏを指定する情報である。例えば、第１のモードにおいて、Ｎ＝５である場合、第２の線形フィルタ部７０２の２５個の係数および１個のオフセットを指定する。ただし、第２の線形フィルタ部７０２が対称性を有する線形フィルタである場合（フィルタ係数をａijと行列表現したときにａij＝ａjiとなる場合）、第２の線形フィルタ部７０２に関して指定すべき係数の数は（Ｎ×Ｎ＋１）／２個＝１３個になる。また、例えば、第２のモードにおいて、Ｍ＝５である場合、第１の線形フィルタ部７０１の２５個の係数と、第２の線形フィルタ部７０２の１個の係数と、１個のオフセットｃとを指定する。ただし、第１の線形フィルタ部７０１が対称性を有する線形フィルタである場合、第１の線形フィルタ部７０１に関して指定すべき係数の数は（Ｍ×Ｍ＋１）／２個になる。
【０２３３】
なお、動画像復号装置１が色差信号に作用する適応フィルタを更に備えている備えている場合、フィルタパラメータに、色差信号に関するシンタックス（alf_chroma_idc、alf_length_chroma_miｎus5_div2、alf_coeff_chroma[i]）を含ませてもよい。ここで、alf_chroma_idcは、適応フィルタを色差信号に対して適用するか否かを示す情報であり、alf_length_chroma_minus5_divは、その適応フィルタのタップ数を示す情報であり、alf_coeff_chroma[i]は、その適応フィルタのフィルタ係数およびオフセットを示す情報である。
【０２３４】
（変形例２）
次に、図２０に示すループフィルタ部１２０の第２の変形例について、図２３を参照して説明する。
【０２３５】
本変形例に係るループフィルタ部１２０ｂは、（１）第２の線形フィルタ部７０２の設定可能なタップ数Ｎに上限値が定められていない第１のモードと、（２）第２の線形フィルタ部７０２の設定可能なタップ数Ｎに上限値Ｎmaxが定められている第２のモードとで動作可能なフィルタ装置である。第２のモードにおいては、第２の線形フィルタ部７０２のタップ数がＮmaxよりも大きな値に設定されない。つまり、第２のモードにおいては、第２の線形フィルタ部７０２において過度に負荷の高いフィルタ演算が実行されない。
【０２３６】
ループフィルタ部１２０ｂが何れのモードで動作するかは、動画像符号化装置２から提供されるフィルタパラメータに含まれるモード指定情報（本明細書においては、このモード指定情報を「alf_parallel_mode」と表記する）により制御される。本変形例においては、alf_parallel_mode＝０の場合、ループフィルタ部１２０ｂは第１のモードで動作し、alf_parallel_mode＝１の場合、ループフィルタ部１２０ｂは第２のモードで動作する。
【０２３７】
図２３は、本変形例に係るループフィルタ部１２０ｂの動作状態を示すブロック図である。図２３（ａ）は、第１のモードにおける動作状態を示し、図２３（ｂ）は、第２の動作モードにおける動作状態を示している。
【０２３８】
第１のモードにおいては、図２３（ａ）に示すように、第２の線形フィルタ部７０２のタップ数を指定するタップ数指定情報として、可変長のタップ数指定情報alf_length_luma_minus1_div2_2が動画像符号化装置２にから提供される。alf_parallel_mode＝０の場合、第２の線形フィルタ７０２は、可変長のタップ数指定情報alf_length_luma_minus1_div2_2から、自身のタップ数Ｎ＝alf_length_luma_minus1_div2_2×２＋１を復号する。第１のモードにおいては、第２の線形フィルタ部７０２のタップ数Ｎとして、任意の奇数が復号されえる。
【０２３９】
一方、第２のモードにおいては、図２３（ｂ）に示すように、第２の線形フィルタ部７０２のタップ数を指定するタップ数指定情報として、１ビットのタップ数指定情報alf_length_luma_minus1_div2_2が動画像符号化装置２にから提供される。alf_parallel_mode＝１の場合、第２の線形フィルタ７０２は、１ビットのタップ数指定情報alf_length_luma_minus1_div2_2から、自身のタップ数Ｎ＝alf_length_luma_minus1_div2_2×２＋１を復号する。第２のモードにおいては、第２のフィルタ部７０２のタップ数Ｎとして、１または３が復号され得る。この場合、設定可能なタップ数Nの上限値Ｎmaxは３である。
【０２４０】
第２の線形フィルタ部７０２のタップ数Ｎが上限値Ｎmax以下に設定されるため、第２のモードにおいては、第２の線形フィルタ部７０２におけるフィルタ演算が軽い処理になる。したがって、第２のモードにおいては、ＢＦ部３０１によるフィルタ演算と、適応フィルタ部３０２によるフィルタ演算とを、概ね並列化し得る。
【０２４１】
第１の線形フィルタ部７０１は、自身のタップ数Ｍを、フィルタパラメータに含まれるもう１つのタップ数指定情報alf_length_luma_minus1_div2_1から、自身のタップ数Ｍ＝alf_length_luma_minus1_div2_1×２＋１を復号する。すなわち、ループフィルタ部１２０ｂは、フィルタパラメータに含まれる２つのタップ数指定情報から、第１の線形フィルタ部７０１のタップ数Ｍと、第２の線形フィルタ部７０２のタップ数Ｎとをそれぞれ復号する。
【０２４２】
なお、本変形例においては、第２の線形フィルタ部７０２の設定可能なタップ数Ｎに上限値が定められていない動作モードを第１のモードとしたが、第２の線形フィルタ部７０２の設定可能なタップ数Ｎに上限値Ｎmax’が定められている動作モードを第１のモードとしてもよい。この場合、例えば、タップ数指定情報alf_length_luma_minus1_div2_2として、２ビットのタップ数指定情報を用いることができる。このような構成であっても、第１のモードにおける上限値Ｎmax’が第２のモードにおける上限値Ｎmaxよりも大きければ、本変形例と同様の効果を奏することは明らかであろう。
【０２４３】
なお、図２２に示したフィルタパラメータは、タップ数指定情報alf_length_luma_minus5_div2を、タップ数指定情報alf_length_luma_minus1_div2_1及びalf_length_luma_minus1_div2_2に置き換えることによって、本変形例に適合させることができる。
【０２４４】
（変形例３）
次に、図２０に示すループフィルタ部１２０の第３の変形例について、図２４を参照して説明する。
【０２４５】
本変形例に係るループフィルタ部１２０ｃは、第２の変形例に係るループフィルタ１２０ｂと同様、フィルタパラメータに含まれる２つのタップ数指定情報から、第１の線形フィルタ部７０１のタップ数Ｍと、第２の線形フィルタ部７０２のタップ数Ｎとをそれぞれ復号する。ただし、第２の変形例に係るループフィルタ１２０ｂのような動作モードの切り替えは行なわれない。
【０２４６】
より具体的には、第１の線形フィルタ部７０１が、２ビットのタップ数指定情報alf_length_luma_minus3_div2から、自身のタップ数Ｍ＝alf_length_luma_minus3_div2×２＋３を復号する。このため、第１の線形フィルタ部７０１のタップ数Ｍとしては、３、５、７、又は９の何れかが復号されえる。また、第２の線形フィルタ部７０２が、１ビットの第２のタップ数指定情報alf_length_luma_minus1_div2から、自身のタップ数Ｎ＝alf_length_luma_minus1_div2×２＋1を復号する。このため、第２の線形フィルタ部７０２のタップ数Ｎとしては、１又は３の何れかが復号され得る。すなわち、第２の変形例に係るループフィルタ１２０ｂと同様、設定可能なタップ数Nの上限値Ｎmaxは３になる。
【０２４７】
第２の線形フィルタ部７０２のタップ数Ｎが上限値Ｎmax以下に設定されるため、本変形例に係るループフィルタ部１２０ｃにおいても、第２の線形フィルタ部７０２におけるフィルタ演算が軽い処理になる。したがって、ＢＦ部３０１によるフィルタ演算と、適応フィルタ部３０２によるフィルタ演算とを、概ね並列化し得る。
【０２４８】
なお、図２２に示したフィルタパラメータは、（１）モード指定情報alf_parallel_modeを省略し、（２）タップ数指定情報alf_length_luma_minus5_div2を、タップ数指定情報alf_length_luma_minus3_div2及びalf_length_luma_minus1_div2に置き換えることによって、本変形例に適合させることができる。
【０２４９】
また、本変形例においては、第１の線形フィルタ部７０１のタップ数Ｍ、及び、第２の線形フィルタ部７０２のタップ数Ｎの両方が可変な場合に、これら２つのタップ数を２つのタップ数指定情報から決定する構成を採用したが、第１の線形フィルタ部７０１のタップ数Ｍ、及び、第２の線形フィルタ部７０２のタップ数Ｎの何れか一方のみ可変な場合に、可変な方のタップ数を１つのタップ数指定情報から決定する構成を採用してもよい。例えば、第２の線形フィルタ部７０２のタップ数Ｎが１に固定されており、第１の線形フィルタ部７０１のタップ数Ｍが可変な場合に、第１の線形フィルタ部７０１のタップ数Ｍをフィルタパラメータに含まれるタップ数指定情報に基づいて決定する構成などが考えられる。
【０２５０】
〔実施形態２〕
すでに述べたように、非特許文献３には、予測残差、予測画像、及び、復号画像（予測残差と予測画像との和）に非線形デノイジングフィルタを施したものＡＬＦの入力画像とし、ＡＬＦの後段にデブロッキングフィルタを配置する構成が示されている。
【０２５１】
しかしながら、非特許文献３に開示された構成、すなわち、ＡＬＦへ上記３つの入力画像を入力する構成をそのまま用いると処理量および処理時間が増大してしまうという問題がある。
【０２５２】
本実施形態では、高い符号化効率を維持しつつ、入力数が３である場合であっても、処理量および処理時間の少なくとも何れかを削減することのできるフィルタ装置について、図２５〜３０を参照しつつ説明する。
【０２５３】
図２５は、本実施形態に係る動画像復号装置３の構成を示すブロック図である。図２５に示すように、動画像復号装置３は、可変長符号化復号部１１４、逆量子化部１１５、逆変換部１１６、フレームメモリ１１７、予測部１１１、加算部１０９、および、ループフィルタ部１２０を備えている。動画像復号装置３は、符号化データを復号することによって動画像を生成する装置である。なお、可変長符号復号部１１４、予測部１１１、逆量子化部１１５、逆変換部１１６、加算部１０９、フレームメモリ１１７の構成は、動画像復号装置１と同じであるため、説明を省略し、以下ではループフィルタ部１２０について説明する。
【０２５４】
なお、本実施形態についての以下の説明においては、予測部１１１によって生成される予測画像を予測画像Ｐｒｅｄとも表記し、逆変換部１１６によって生成される残差画像を残差画像（予測残差）Ｄとも表記し、加算部１０９によって生成される復号画像を復号画像Ｐとも表記する。
【０２５５】
（ループフィルタ部１２０）
本実施形態におけるループフィルタ部１２０は、復号画像Ｐに対してノイズ除去処理を施し、ＢＦ後画像（以下、本実施形態において、ＢＦ後画像Ｐ＿ＮＲとも表記）を生成する。また、本実施形態におけるループフィルタ部１２０は、（１）ＢＦ後画像Ｐ＿ＮＲ、（２）予測部１１１から出力された予測画像ＰＲＥＤ、及び（３）逆変換部１１６から出力された予測残差Ｄの少なくとも何れかに対して適応フィルタ処理を施し、適応フィルタ済復号画像Ｐ＿ＡＬＦを生成する。
【０２５６】
以下では、本実施形態におけるループフィルタ部１２０の構成について図２５を参照してより具体的に説明する。図２５に示すように、ループフィルタ部１２０は、適応フィルタ用メモリ３６２、適応フィルタ部３６３、および、ＢＦ部３６４を備えている。ここでＢＦ部３６４は、図３を参照して説明したＢＦ部３０１と同じ構成であるため、説明を省略する。適応フィルタ用メモリ３６２は、適応フィルタ部３６３で用いる３種類の画像、予測画像ＰＲＥＤ、予測残差Ｄ、および、ＢＦ後画像Ｐ＿ＮＲを各々格納するメモリ領域を備えている。より具体的には、予測画像ＰＲＥＤを格納する予測画像用メモリ領域３６６、予測残差Ｄを格納する残差画像用メモリ領域３６７、およびＢＦ後画像Ｐ＿ＮＲを格納するＢＦ後画像用メモリ領域３６５を備えている。
【０２５７】
（適応フィルタ部３６３）
図２５に示すように、適応フィルタ部３６３は、予測画像ＰＲＥＤ、予測残差Ｄ、およびＢＦ後画像Ｐ＿ＮＲに対して、符号化データから復号した適応フィルタ情報に含まれるフィルタ係数およびオフセットを用いた適応フィルタ処理を施すことによって適応フィルタ済復号画像Ｐ＿ＡＬＦを生成し、生成した適応フィルタ済復号画像Ｐ＿ＡＬＦをフレームメモリ１１７に格納する。なお、適応フィルタ部３６３は、シーケンス、ピクチャ、および、スライスの何れかを処理単位として適応フィルタ処理を行うことができる。換言すれば、適応フィルタ部３６３は、シーケンス毎、ピクチャ毎、または、スライス毎に適応フィルタ処理の処理内容を変更することができる。以下では、一例として、適応フィルタ部３６３が、スライスを単位として適応フィルタ処理を行う場合を例にとり説明を行う。
【０２５８】
図２６は、適応フィルタ部３６３の構成を示すブロック図である。図２６に示すように、適応フィルタ部３６３は、予測画素値適応重み付け部７３１、残差画素値適応重み付け部７４１、ＢＦ後画素値適応重み付け部７０２、シフト／除算部７０３、および、加算部７０４を備えている。なお、以下では、予測画素値適応重み付け部７３１、残差画素値適応重み付け部７４１、および、ＢＦ後画素値適応重み付け部７０２を、ぞれぞれ、線形フィルタ（部）７３１、線形フィルタ（部）７４１、線形フィルタ（部）７０２と呼ぶこともある。
【０２５９】
（予測画素値適応重み付け部７３１）
予測画素値適応重み付け部７３１は、予測画像ＰＲＥＤの各画素値の、フィルタ係数ｃｉ（ｉ＝１〜Ｎｃ、Ｎｃはフィルタ係数ｃｉの総数）を用いた重み付け和（加重線形和）をとることによって、第１の出力画像＃７３１を生成する。ここで、フィルタ係数ｃｉは、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、予測画像ＰＲＥＤの画素値に乗ぜられるフィルタ係数を表しており、以下の説明では、各ｃｉを、c（ｕ、ｖ）とも表記する。
【０２６０】
具体的に、第１の出力画像＃７３１の画素値をＳ1（ｘ’、ｙ’）と表し、予測画像ＰＲＥＤの画素値をＳPred（ｘ、ｙ）と表すことにすると、予測画素値適応重み付け部７３１は、画素値Ｓ1（ｘ’、ｙ’）を以下の数式（９−１）によって算出する。
【０２６１】
【数１】
0005875979.tif 000002
【０２６２】
ここで、座標（ｘ、ｙ）は座標（ｘ’、ｙ’）と同一の座標としてもよいし、１対１の対応を有していれば、異なった座標としてもよい。c（ｕ、ｖ）は、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、予測画像ＰＲＥＤの画素値ＳPred（ｘ＋ｕ、ｙ＋ｖ）に乗ぜられるフィルタ係数を表している。
【０２６３】
また、フィルタ参照領域ＲPredは、フィルタ後の画素値を算出する対象となる画素（フィルタ対象画素）の位置に応じて、予測画像ＰＲＥＤ上に設定される。ここで、フィルタ参照領域ＲPredのサイズは、Ｎｐ×Ｎｐ’画素とし、Ｎｐ＝Ｎｐ’であっても、そうでなくてもよいものとする。
【０２６４】
このように、予測画素値適応重み付け部７３１は、予測画像ＰＲＥＤに作用するＮp×Ｎp’タップフィルタとして機能する。
【０２６５】
（残差画素値適応重み付け部７４１）
残差画素値適応重み付け部７４１は、予測残差Ｄの各画素値の、フィルタ係数ｄｉ（ｉ＝１〜Ｎｄ、Ｎｄはフィルタ係数ｄｉの総数）を用いた重み付け和（加重線形和）をとることによって、第２の出力画像＃７４１を生成する。ここで、フィルタ係数ｄｉは、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、予測残差Ｄの示す画像の画素値に乗ぜられるフィルタ係数を表しており、以下の説明では、各ｄｉを、ｄ（ｕ、ｖ）とも表記する。
【０２６６】
具体的に、第２の出力画像＃７４１の画素値をＳ2（ｘ’、ｙ’）と表し、予測残差Ｄの画素値をＳD（ｘ、ｙ）と表すことにすると、残差画素値適応重み付け部７４１は、画素値Ｓ2（ｘ’、ｙ’）を以下の数式（９−２）によって算出する。
【０２６７】
【数２】
0005875979.tif 000003
【０２６８】
ここで、座標（ｘ、ｙ）は座標（ｘ’、ｙ’）と同一の座標としてもよいし、１対１の対応を有していれば、異なった座標としてもよい。ｄ（ｕ、ｖ）は、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、予測残差Ｄの示す画像の画素値ＳD（ｘ＋ｕ、ｙ＋ｖ）に乗ぜられるフィルタ係数を表している。
【０２６９】
また、フィルタ参照領域ＲDは、フィルタ後の画素値を算出する対象となる画素（フィルタ対象画素）の位置に応じて、予測残差Ｄ上に設定される。ここで、フィルタ参照領域ＲDのサイズは、Ｎd×Ｎd’画素とし、Ｎｄ＝Ｎｄ’であっても、そうでなくてもよいものとする。
【０２７０】
このように、残差画素値適応重み付け部７４１は、予測残差Ｄに作用するＮd×Ｎd’タップフィルタとして機能する。
【０２７１】
（ＢＦ後画素値適応重み付け部７０２）
ＢＦ後画素値適応重み付け部７０２は、ＢＦ後画像Ｐ＿ＮＲの各画素値の、フィルタ係数ｂｉ（ｉ＝１〜Ｎｂ、Ｎｂはフィルタ係数ｂｉの総数）を用いた重み付け和（加重線形和）をとることによって、第３の出力画像＃７０２を生成する。ここで、フィルタ係数ｂｉは、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、ＢＦ後画像Ｐ＿ＮＲの画素値に乗ぜられるフィルタ係数を表しており、以下の説明では、各ｂｉを、ｂ（ｕ、ｖ）とも表記する。
【０２７２】
具体的に、第３の出力画像＃７０２の画素値をＳ3（ｘ’、ｙ’）と表し、ＢＦ後画像Ｐ＿ＮＲの画素値をＳPNR（ｘ、ｙ）と表すことにすると、ＢＦ後画素値適応重み付け部７０２は、画素値Ｓ3（ｘ’、ｙ’）を以下の数式（９−３）によって算出する。
【０２７３】
【数３】
0005875979.tif 000004
【０２７４】
ここで、座標（ｘ、ｙ）は座標（ｘ’、ｙ’）と同一の座標としてもよいし、１対１の対応を有していれば、異なった座標としてもよい。ｂ（ｕ、ｖ）は、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、ＢＦ後画像Ｐ＿ＮＲの画素値ＳPNR（ｘ＋ｕ、ｙ＋ｖ）に乗ぜられるフィルタ係数を表している。
【０２７５】
また、フィルタ参照領域ＲPNRは、フィルタ後の画素値を算出する対象となる画素（フィルタ対象画素）の位置に応じて、ＢＦ後画像Ｐ＿ＮＲ上に設定される。ここで、フィルタ参照領域ＲPNRのサイズは、Ｎ×Ｎ’画素とし、Ｎ＝Ｎ’であっても、そうでなくてもよいものとする。
【０２７６】
このように、ＢＦ後画素値適応重み付け部７０２は、ＢＦ後画像Ｐ＿ＮＲに作用するＮ×Ｎ’タップフィルタとして機能する。
【０２７７】
（加算部７０４）
加算部７０４は、第１の出力画像＃７３１、第２の出力画像＃７４１、および、第３の出力画像＃７０２の対応する各画素値と、オフセットｏとを加算することによって、出力画像＃７０４を生成する。具体的に、出力画像＃７０４の画素値をＳo（ｘ、ｙ）と表すことにすると、加算部７０４は、画素値Ｓo（ｘ、ｙ）を、以下の数式（９−４）によって算出する。
【０２７８】
【数４】
0005875979.tif 000005
【０２７９】
ここで、オフセットｏは、符号化データの適応フィルタ情報に含まれるオフセットを表している。
【０２８０】
（シフト／除算部７０３）
シフト／除算部７０３は、加算部７０４によって生成された出力画像＃７０４の各画素値に対して、ラウンド付きシフト演算による除算処理を行うことによって適応フィルタ済復号画像Ｐ＿ＡＬＦを生成する。シフト／除算部７０３による具体的な処理は、実施形態１と同様であるため、ここでは説明を省略する。
【０２８１】
以上のように、適応フィルタ部３６３においては、ＢＦ後画素値適応重み付け部７０２を、ＢＦ部３６４の後段に配置し、ＢＦ部３６４から出力されるＢＦ後画像Ｐ＿ＮＲに作用させると共に、予測画素値適応重み付け部７３１と残差画素値適応重み付け部７４１とを、ＢＦ部３６４と並列に配置し、ＢＦ部３６４に入力されるＢＦ前画像に作用させる。
【０２８２】
以下では、適応フィルタ部３６３のより具体的な構成例について説明する。
【０２８３】
（構成例１）
空間フィルタである予測画素値適応重み付け部７３１と残差画素値適応重み付け部７４１とをＢＦ部３６４に対して並列に配置することによって、符号化効率を低下させることなく、ＢＦ後画素値適応重み付け部７０２のタップ数Ｎ×Ｎ’を小さくすることが可能になる。
【０２８４】
また、ＢＦ後画素値適応重み付け部７０２のタップ数Ｎ×Ｎ’を小さくすれば、第１の出力画像＃７３１、第２の出力画像＃７４１、および、第３の出力画像＃７０２を並列処理によって生成する際の処理時間を短縮することができる。特に、ＢＦ後画素値適応重み付け部７０２のタップ数を１×１タップとすれば、当該並列処理の処理時間を最も短縮することができる。すなわち、並列性を最も向上させることができる。これは、ＢＦ後画素値適応重み付け部７０２において、ＢＦ後画像Ｐ＿ＮＲをフィルタ対象画素の１画素のみ参照し、当該画素と重み係数との積のみを算出する場合に対応する。なお、予測画像ＰＲＥＤに対するタップ数Ｎｃ×Ｎｃ’、残差画像Ｄに対するタップ数Ｎｄ×Ｎｄ’は０を含む何れの値でも構わない。
【０２８５】
以上のように、本構成例では、ＢＦ後画像Ｐ＿ＮＲについてのタップ数を制限することにより、並列性を向上させることができる。
（構成例２）
以下の構成は、残差画像Ｄのタップ数Ｎｄ×Ｎｄ’を制限することにより、処理量およびデータ転送量の削減効果を奏するものである。より具体的には、残差画像Ｄのタップ数Ｎｄ×Ｎｄ’を小さくすることによって、処理量およびデータ転送量の削減効果を奏するものである。本構成例では、残差画像Ｄのタップ数Ｎｄ×Ｎｄ’を１×１とする場合に最大の効果を奏する。残差画像Ｄは、復号された変換係数が逆量子化され逆変換された画像であるが、符号化装置において変換係数を生成する量子化過程においては、変換係数を削減するために四捨五入のラウンド処理ではなく、１／３未満を切り捨て１／３以上を切り上げる（もしくは１／６未満を切り捨て１／６以上を切り上げる）処理がなされることが多い。この場合、残差画像Ｄは本来の値よりも絶対値が小さい側にずれが生じている可能性が高く、フィルタ係数の積によって画素値を補正（大きく）することが適当と考えられる。このような効果は参照領域が小さい場合でも有効であるため、残差画像Ｄのタップ数を小さく（最大の効果を得るためには１に）制限することは適当である。なお、ここでは絶対値が小さい側にずれが生じると説明したが、逆量子化がこのずれを補償する処理（絶対値を大きくする処理）を含む場合には、ずれの方向が逆方向になることもある。また、量子化は周波数領域で行われるため画素領域での変化はこの限りではない。そのため、適応的な重み係数を用いる残差画像Ｄを含む適応フィルタで処理することが適当である。
【０２８６】
このように、本構成例では、符号化効率を低下させることなく、線形フィルタ部７０２のタップ数Ｎ×Ｎ’を削減するものであり、演算量およびデータ転送量が削減されるという効果を奏する。
（構成例２´）
残差画像Ｄのタップ数Ｎｄ×Ｎｄ’についての制限は、ＢＦ後画像Ｐ＿ＮＲについてのタップ数Ｎ×Ｎ’についての制限と併用することができる。この場合、両者の線形フィルタにおいて、空間的（平面的、２次元的）なフィルタの効果が得られにくくなる。例えば、残差画像Ｄについてのタップ数Ｎｄ×Ｎｄ’、および、ＢＦ後画像Ｐ＿ＮＲについてのタップ数Ｎ×Ｎ’を共に１×１に設定した場合、画像の２次元的な相関を利用することができない。このような場合、予測画像ＰＲＥＤのタップ数は１タップなどには制限せず、平面的なフィルタの効果を得ることが適当である。
【０２８７】
予測画像ＰＲＥＤは特にイントラ予測において、特定方向との相関（通常、左方向との相関、上方向との相関）が高い傾向にある。この傾向は、既に復号された画素を予測に用いるという制約から生じる。しかしながら一般の画像の相関は、エッジ方向に沿って存在するものであり、ある画素に対し点対称に相関を有する。このような相関を活かすためには、２次元フィルタを利用することが適当である。すなわち、参照できなかった方向（例えば、下、右）方向の画素を用いることにより、原画像に近づけることができる。そのため、予測画像ＰＲＥＤに２次元フィルタを用いることは適当である。演算量をより削減したい場合には、予測画像ＰＲＥＤのタップ数を制限すればよい。最大の効果は、予測画像ＰＲＥＤのタップ数を１とした場合に得られる。参照領域が１画素の場合にはフィルタ対象画素に対応する位置の画素を参照すればよい。
（構成例２´´）
なお、別の構成として、残差画像Ｄのタップ数Ｎｄ×Ｎｄ’についての制限と予測画像ＰＲＥＤのタップ数Ｎｃ×Ｎｃ’についての制限を併用することが適当である。最大の効果は、Ｎｄ＝Ｎｄ’＝Ｎｃ＝Ｎｃ’＝１とする場合である。ここでもフィルタ対象画素に対応する位置の画素を参照するものとする。
【０２８８】
この場合には、ＢＦ後画像Ｐ＿ＮＲについてのタップ数Ｎ×Ｎ’を１×１タップに制限せず、画像の２次元的な相関を利用することが適当である。この場合には、ＢＦ処理と同時に処理することのできない、線形フィルタ７０２による処理の処理量が大きなものとなる。このため、線形フィルタ７３１及び線形フィルタ７４１と線形フィルタ７０２とを並列処理できることの効果は小さいものとなる。しかし、本構成例では、以下に説明するように、データ転送量削減の効果が大きい。
【０２８９】
図１０のデータ転送を説明する図を参照して既に示したように、復号処理と、ＢＦ部、適応フィルタ部３６３の処理を同時に行うことができれば、その間に発生する中間データ（ここでは予測画像ＰＲＥＤ，予測残差Ｄ、ＢＦ後画像Ｐ＿ＮＲ）を外部メモリとの間で転送する必要がなくなる。もし図１０（ａ）の構成であれば、ループフィルタの処理単位、例えば、１スライス分の適応フィルタ部３６３の処理に必要とする画像（ここでは、ＢＦ後画像Ｐ＿ＮＲ、予測画像ＰＲＥＤ、予測残差Ｄ）を格納する適応フィルタ用メモリ３６２を必要とする。復号処理において、予測画像ＰＲＥＤを内部メモリで処理する場合には、これらを外部メモリに転送し保持することになる。また、適応フィルタ部３６３で処理する時点では逆に外部メモリから内部メモリへの転送が必要になる。
【０２９０】
予測部１１１、逆量子化部１１５、逆変換部１１６、および、加算部１０９の処理は、ブロック単位で行われるが、上述のように、予測画像ＰＲＥＤと予測残差Ｄとについてそれぞれ１画素のみを参照する場合には、この復号処理と同時に、線形フィルタ７３１と線形フィルタ７４１の処理を同時に行うことができる。具体的には、予測部１１１における予測画像ＰＲＥＤ生成の直後に同時に線形フィルタ７３１として予測画像ＰＲＥＤと重み係数ｃｉとの積を算出でき、また同様に、逆量子化部１１５および逆変換部１１６における予測残差Ｄの生成の直後に予測残差Ｄと重み係数ｄｉとの積を算出できる。
【０２９１】
なお、場合によっては、線形フィルタ７３１と線形フィルタ７４１の出力を外部メモリに転送する必要があるが、この場合にも、２つの出力の和を外部メモリに転送することにより、転送回数を２回から１回に減らすことができる。ループフィルタ（もしくは適応フィルタ）を構成する複数のフィルタ処理の出力の和を一度に外部メモリに転送することによって転送回数を減少させるという方法は、この構成によらず本発明の別の構成でも使用することができる。
【０２９２】
以上の構成では、予測画像ＰＲＥＤと予測残差Ｄとを外部メモリに転送することなく、内部メモリのまま、線形フィルタ７３１と線形フィルタ７４１で処理できるため、データ転送量の削減になる。さらに転送時間の削減が可能になるため、きわめて高速に処理できる。
（構成例３）
以上の説明では、適応フィルタ部３６３への入力信号のタップ数制限によって、並列性の向上、並びに、演算量および転送量の削減という効果を発揮するものであったが、以下に説明するように参照範囲を復号済みの画像に制限することによっても演算量と転送量の削減が可能である。
【０２９３】
図２７の（ａ）〜（ｆ）は、適応フィルタ部３６３の備える各線形フィルタ７３１、７４１、７０２がフィルタ対象画素の画素値を算出する際に参照する、各線形フィルタへの入力画像における参照範囲の例を示す。ここで、参照範囲とは、上述したフィルタ参照領域の少なくとも一部と重複する範囲のことであり、本構成例において、適応フィルタ部３６３の備える各線形フィルタは、フィルタ対象画素の位置に応じて設定される参照範囲に含まれる各入力画像の画素値を参照して、当該線形フィルタの出力を算出する。
【０２９４】
図２７の（ａ）〜（ｆ）において、グレーの矩形はフィルタ対象画素の位置を示す。また、実線の矩形は、適応フィルタ部３６３の備える各線形フィルタにおいて参照する画像の範囲（参照範囲）を示す。また、波線の矩形は、フィルタ対象画素が含まれるブロックを示す。フィルタ対象画素が含まれるブロックとは、変換ブロック、予測ブロック、マクロブロック、コーディングユニット、最大コーディングユニットと呼ばれる単位のいずれであってもよい。例えば、以下の説明で「右側のブロック」とは、ブロックがマクロブロックである場合には「右側のマクロブロック」を意味し、ブロックが最大コーディングユニットである場合には「右側の最大コーディングユニット」を意味する。
【０２９５】
図２７（ａ）は、特に制約がなく、参照範囲のタップ数をＮとするとＮ×Ｎの画像を参照する例を示している。すなわち、図２７（ａ）の例では、フィルタ参照領域に含まれる全ての画素を参照する。上記の「制約がなく」との表現はこのことを指す。図２７（ｂ）は、参照範囲を、（ａ）の場合よりも小さい範囲に制限する例を示している。もっとも小さく制限する場合、参照範囲は１×１画素になる。図２７（ｃ）はフィルタ対象画像の左側と上側の画像のみを参照する例を示している。図２７（ｄ）はフィルタ対象画像の上側の画像のみを参照する例を示している。図２７（ｅ）は、フィルタ対象画像の属するブロックおよびその左側と上側の画像のみを参照する例を示している。図２７（ｆ）は、フィルタ対象画像の属するブロックの下側の画素を参照しない例を示している。なお、ここでは、復号処理がブロック単位でラスタスキャン順に行われることを仮定して、左側、上側という表現を用いたが、より正確には、図２７（ｃ）は、復号済みの画像を参照することを示すものである。また、図２７（ｄ）は、復号済みの画像と、復号済みの画像の右側に位置する画像を参照する（未復号ブロックの画像を参照しない）ことを示す。図２７（ｅ）は、復号済みの画像と、フィルタ対象画素が存在するブロックの画像とを参照することを示す。最後に図２７（ｆ）は、復号済みの画像とフィルタ対象画素が存在するブロックの画像と、前記ブロックの右側に存在するブロック（例えば、前記ブロックの右辺に隣接するブロック）の画像を参照すること（フィルタ対象ブロックと同一ライン上のブロックを除く、未復号ブロックの画像を参照しない）を意味する。なお、同一ラインと表現したが、場合によっては同一ラインよりも上のラインのブロックを参照しても良い。例えば画像がマクロブロックで区切られている場合には同一マクロブロックライン、画像が最大コーディングユニットで区切られている場合には、同一最大コーディングユニットラインに含まれるブロックの画像については、未復号画像においても参照可能である。
【０２９６】
また、図２７の（ｃ）〜（ｆ）に示す参照範囲は、以下のように表現することもできる。図２７（ｃ）においては、参照範囲の下辺の一部および右辺の一部が、それぞれ、対象画素の下辺および右辺と重なるように設定されている。図２７（ｄ）においては、参照範囲の下辺の一部が、対象画素の下辺と重なるように設定されている。図２７（ｅ）においては、参照範囲が、対象画素を含む対象ブロック、および、該対象ブロックの周辺の復号済みブロックより構成されている。図２７（ｆ）においては、参照範囲が、対象画素を含む対象ブロック、該対象ブロックの周辺の復号済みブロック、および、該対象ブロックの直後に復号されるブロックより構成されている。
【０２９７】
なお、これらの参照範囲は、ＢＦ前画像、ＢＦ後画像、予測画像ＰＲＥＤ、残差画像Ｄのいずれについても適用することができる。言い換えると、線形フィルタ部７０１、７０２、７３１、７４１の少なくも何れかの入力信号として用いることができる。
【０２９８】
図２７（ｃ）に示した制約のようにフィルタ対象画素の左側と上側のみを参照する場合には、既に復号済みの画像であることから、参照範囲における参照画像が全て参照可能となるまで、対応する線形フィルタ部の処理を待つ必要がなくなる。例えばＢＦ前画像の参照画像が参照範囲に制限されていれば、線形フィルタ部７０１を、当該画素を復号する時点で処理を行うことができる。同様に、予測画像ＰＲＥＤであれば線形フィルタ部７３１、残差画像Ｄであれば７４１を、当該画素を復号する時点で処理を開始することができる。
【０２９９】
また、適応フィルタを構成する線形フィルタの入力が、図２７（ｄ）の制約のようにフィルタ対象画素の上側のみを参照する構成である場合には、１ブロックライン後に処理される可能性のある下側の画像の復号を待つ必要がない。ブロックを単位としてラスタスキャン順に復号処理を行う場合、フィルタ対象画素の下側に位置する画素の画素値が復号され参照されるまでに多くのブロックを処理する必要がある。したがって、下側のブロックの復号が完了するまで、当該フィルタ対象画素についての画素値算出処理を最も時間のかかるケースで、１ブロックラインの復号の間待機する必要が生じる。また、フィルタ対象画素の下側に位置する画素を参照する場合、内部メモリのサイズの問題から、入力信号を内部メモリに全て保存しておくことができず、一度外部メモリに転送する必要が生じる。それに比べて、フィルタ対象画素を含む対象ブロックの右側に位置する画素については、復号完了までの待機時間が短いので、必要な入力信号を全て内部メモリに保存することが可能である。そのため、下側の画素を参照しない制約をもつこの構成はデータ転送量の削減に大きな効果を有する。より具体的には、適応フィルタ部３６３の入力信号のＢＦ後画像Ｐ＿ＮＲ、予測画像ＰＲＥＤ、残差画像Ｄの一つもしくは複数がこれらの制約がある場合には、その信号を外部メモリへ転送することが不要になる。
【０３００】
また、図２７（ｅ）に示した制約ではフィルタ対象画素の属する対象ブロックの左側と上側の画像のみを参照する例を示している。適応フィルタを構成する線形フィルタへの入力が、このような画像のみを参照する場合には、１ブロック後に処理される可能性のある右側の画像の復号を待つ必要がない。つまり、その入力が属するブロックの復号が終了した時点において、線形フィルタの処理に必要となる全ての画像が得られているため、次のブロックの復号を待つ必要なくすぐに処理することができる。図２７（ｃ）の場合に比べると対象ブロックの復号終了までは待つ必要があり、その間の入力画像は内部に保持する必要がある。しかし、ブロックが、変換ブロック、予測ブロック、マクロブロック、コーディングユニット、最大コーディングユニットである場合には十分小さい単位であるため、内部メモリ上の問題は生じない。この構成はデータ転送量の削減に大きな効果を有する。すなわち、ＢＦ後画像Ｐ＿ＮＲ、予測画像ＰＲＥＤ、残差画像Ｄがこれら入力である場合には外部メモリに転送する必要がなくなる。
【０３０１】
また、図２７（ｆ）に示した制約ではフィルタ対象画素の属する対象ブロックの下側の画像を参照しない例を示している。適応フィルタを構成する線形フィルタの入力が、このような画像のみを参照する構成である場合には、１ブロックライン後に処理される可能性のある下側の画像の復号を待つ必要がない。つまり、その入力が属するブロックの復号が終了した時点では、対象ブロックの右側のブロックに属する画素を除いて、フィルタ対象画素の画素値を算出するために必要となる全ての画像が得られているため、下側のブロックの処理を待つことなくフィルタ処理を行うことができる。具体的には、復号処理が行われているブロックの左側のブロックについての線形フィルタ処理を行うことができる。この構成はデータ転送量の削減に大きな効果を有する。すなわち、ＢＦ後画像Ｐ＿ＮＲ、予測画像ＰＲＥＤ、残差画像Ｄがこれら入力である場合には外部メモリに転送する必要がなくなる。
【０３０２】
ところで、図２７（ｃ）、図２７（ｄ）においては、フィルタ対象画素の位置に応じて、参照範囲がユニークに定まる。それに対して、図２７（ｅ）や図２７（ｆ）の場合には、フィルタ対象画素が対象ブロックの右側境界および下側境界に近い場合には参照範囲が制限され、そうでない場合には、参照範囲が図２７（ａ）のように制限されない場合、すなわち、参照範囲がフィルタ参照領域と等しくなる場合もある。
【０３０３】
言い換えると、図２７（ｃ）、図２７（ｄ）では参照範囲がフィルタ対象画素とブロック境界の位置関係により変化しない。それに対して、図２７（ｅ）と図２７（ｆ）の場合には、フィルタ対象画素とブロック境界の位置関係によって参照範囲が変化する。具体的には、重み係数がフィルタ対象画像を９×９タップの矩形型領域とするフィルタ処理の場合、フィルタ対象画素から５画素離れた画素を用いる。逆に、例えば、図２７（ｅ）の制限の場合は、フィルタ対象画素と右もしくは下のブロック境界の間に５画素以上の画素のない場合には参照が制限されていることになる。
【０３０４】
各線形フィルタにおいて、フィルタ参照領域に属する各画素値とフィルタ係数との積和によってフィルタ対象画素の画素値が算出されるように規定されているものとすると、参照範囲を設定することにより、フィルタ参照領域において参照できない画素が生じる場合には、当該参照できない画素に代えて、代替画素の画素値を参照することが好ましい。この一つの方法は、従来のパディング方法を用いて参照可能な画素を延長することである。他の方法は、フィルタ対象画素に対して点対称に位置する画素を用いることである。例えば、下側にある画像の使用が制限される場合には、対称の位置にある上側にある画像を用いる。さらに別の方法は、フィルタ対象画素の位置にある画素を用いることである。
【０３０５】
以上に説明したように、参照範囲を復号済みの画像に制限することによっても演算量と転送量の削減が可能である。また、一部のフィルタ処理を先行して実行し、残る線形フィルタ処理を最後に実行する場合において、先行するフィルタ処理の出力を外部メモリに転送する必要が生じる場合があるが、この場合にも、先行する複数の線形フィルタ処理の和を一度に外部メモリに転送することによって転送回数を減少させることができる。
【０３０６】
図２８は、後述する動画像符号化装置４から提供される適応フィルタ情報に含まれるフィルタパラメータ（alf_param）の構成の一部を示す図である。図２８（ａ）は、alf_prallel_modeというモードを備える構成を示している。既に説明したようにalf_prallel_modeが１である場合には、ＢＦ後画像のタップ数を１に制限する。また図２８（ｂ）ではalf_reference_modeというモードを備える。alf_reference_modeが０である場合には図２７（ａ）のように参照範囲は制限されず、alf_reference_modeが１、２、３、４、５である場合には図２７（ｂ）、図２７（ｃ）、図２７（ｄ）、図２７（ｅ）、図２７（ｆ）のように参照範囲が制限される。このように、動画像符号化装置と動画像復号装置がともに同じ参照範囲をとる必要があるが、参照範囲はあらかじめ設定しておいても良いし、ここで説明したようにフィルタパラメータ（適応フィルタ情報）によって明示的に参照範囲の制限を変更する構成も好適である。
【０３０７】
図２９は、後述する動画像符号化装置４から提供される適応フィルタ情報に含まれるフィルタパラメータ（alf_param）の一構成例を示す図である。図２９に示すように、本構成例に係るフィルタパラメータは、スライス毎に動画像符号化装置４から提供されるフィルタパラメータであり、対象スライスに対する適応フィルタ部３６３の動作を規定する複数のシンタックス（adaptive_loop_filter_flag、alf_length_df_minus1_div2、alf_coeff_df[i]、alf_length_error_minus1_div2、alf_coeff_error[i]、alf_length_pred_minus1_div2、alf_coeff_pred[i]）の全てもしくは一部を含んでいる。
【０３０８】
adaptive_loop_filter_flagは、対象スライスにおいて適応フィルタ部３６３を使用するか否かを指定する情報である。
【０３０９】
alf_length_df_minus1_div2は、線形フィルタ部７０２のタップ数Ｎ×Ｎを指定する情報（タップ数指定情報）である。alf_length_df_miｎus1_div2＝０，１，２，３のとき、それぞれ、Ｎ＝１，３，５，９に設定される。
【０３１０】
alf_coeff_df[i]は、線形フィルタ部７０２のフィルタ係数ｂｉ、並びに、オフセットｏを指定する情報である。Ｎ＝５である場合、線形フィルタ部７０２の２５個の係数および１個のオフセットを指定する。ただし、線形フィルタ部７０２が対称性を有する線形フィルタである場合（フィルタ係数をａijと行列表現したときにａij＝ａjiとなる場合）、線形フィルタ部７０２に関して指定すべき係数の数は（Ｎ×Ｎ＋１）／２個＝１３個になる。
【０３１１】
同様にalf_length_pred_minus1_div2は線形フィルタ部７３１のタップ数を指定する情報であり、alf_coeff_pred[i]は、線形フィルタ部７３１のフィルタ係数ｃｉを指定する情報である。
【０３１２】
同様にalf_length_error_minus1_div2は線形フィルタ部７４１のタップ数を指定する情報であり、alf_coeff_error[i]は、線形フィルタ部７４１のフィルタ係数ｄｉを指定する情報である。
【０３１３】
図２９（ａ）は、ＢＦ後画像Ｐ＿ＮＲ、予測画像ＰＲＥＤ、予測残差Ｄのタップ数を自由に復号できる構成を示している。この構成の場合にも、復号したタップ数が１である、もしくは、タップ数が短い場合において、並列処理を行うことができ、また、図１０（ｃ）に示すようなデータ転送量を減らす動作を行うことができる。シンタックス上は自由にタップ数を選択することができるが、使用可能なセマンティクスを制限するプロファイル情報などによって、ＢＤ後画像Ｐ＿ＮＲ、予測画像ＰＲＥＤ、予測残差Ｄのタップ数を制限することも適当である。
【０３１４】
図２９（ｂ）は、ＢＦ後画像Ｐ＿ＮＲのタップ数を１に制限するシンタックスの構成である。この構成の場合にも、ＢＦ後画像Ｐ＿ＮＲのタップ数が１であることから、ＢＦ部３６４と、線形フィルタ７３１および線形フィルタ７４１とを並列に動作させることができる。また、図１８で説明したようなデータ転送量削減の効果を得ることができる。また、ＢＦ部３６４と、線形フィルタ部７３１および線形フィルタ部７４１との並列処理を好適に行うことができる。また、図１０（ｃ）に示すようなデータ転送量を減らす動作を行うことができる。
【０３１５】
図２９（ｃ）は、予測残差Ｄのタップ数を１に制限するシンタックスの構成である。この構成の場合には線形フィルタ７４１を復号と同時に処理することが可能である。この場合、予測残差Ｄを外部メモリに出力する必要がない。
【０３１６】
図２９（ｄ）は、ＢＦ後画像Ｐ＿ＮＲのタップ数と予測残差Ｄのタップ数とを１に制限するシンタックスの構成である。この構成の場合にはＢＦ部３６４と線形フィルタ７３１および線形フィルタ７４１とを並列に動作させることができる。また、線形フィルタ７４１を復号と同時に処理することが可能である。この場合、予測残差Ｄを外部メモリに出力する必要がない。
【０３１７】
（動画像符号化装置４）
本実施形態に係る動画像符号化装置４の構成について図３０を参照して説明する。動画像符号化装置４は、その一部に、Ｈ．２６４／ＭＰＥＧ−４．ＡＶＣ、及び、ＫＴＡソフトウェアに採用されている技術を含む復号装置である。
【０３１８】
図３０は、動画像符号化装置４の構成を示すブロック図である。図３０に示すように、動画像符号化装置４は、減算部１０７、加算部１０９、予測部１１１、変換部１１２、量子化部１１３、逆量子化部１１５、逆変換部１１６、フレームメモリ１１７、可変長符号化部１１４、適応フィルタ情報導出部３６８、および、ループフィルタ部１２０を備えている。減算部１０７、加算部１０９、予測部１１１、変換部１１２、量子化部１１３、逆量子化部１１５、逆変換部１１６、フレームメモリ１１７、および、可変長符号化部１１４については、動画像符号化装置２と同様であるため、説明を省略する。また、ループフィルタ部１２０の備える各部は、動画像復号装置３におけるループフィルタ部１２０の各部と同様であるため、その説明を省略する。ただし、ＢＦ後画像用メモリ領域３６５、予測画像用メモリ領域３６６、および、残差画像用メモリ領域３６７からそれぞれ読み出されるＢＦ後画像Ｐ＿ＮＲ、予測画像ＰＲＥＤ、および、予測残差Ｄは、適応フィルタ情報導出部３５８へ供給され、適応フィルタ部３６３へは、適応フィルタ情報導出部３６８によって生成された適応フィルタ情報が供給される。
【０３１９】
（適応フィルタ情報導出部３６８）
適応フィルタ情報導出部３６８は、動画像復号装置３の備えるループフィルタ部１２０、および、動画像符号化装置４の備えるループフィルタ部１２０によって参照される適応フィルタ情報を生成する。
【０３２０】
適応フィルタ情報導出部３６８は、
（１）ＢＦ部３６４および適応フィルタ部３６３のそれぞれのオンオフ、
（２）適応フィルタ部３６３に入力する画像の種類およびその組み合わせ（ＢＦ後画像Ｐ＿ＮＲ、予測残差Ｄ、および、予測画像Ｐｒｅｄのうち１つ若しくは複数の組み合わせ）、
（３）ＢＦ後画像Ｐ＿ＮＲに作用するフィルタのタップ数、
（４）ＢＦ後画像Ｐ＿ＮＲに作用するフィルタ係数
（５）予測残差Ｄの示す画像に作用するフィルタのタップ数、
（６）予測残差Ｄの示す画像に作用するフィルタ係数
（７）予測画像ＰＲＥＤに作用するフィルタのタップ数、
（８）予測画像ＰＲＥＤに作用するフィルタ係数
（９）オフセットｏ
を符号化効率が最適となるように決定する。
【０３２１】
適応フィルタ情報導出部３６８は、符号化対象画像（原画像）とフィルタ後の画像との二乗誤差が最小となるようにタップ数、フィルタ係数、および、オフセットを決定し、決定されたタップ数、フィルタ係数、および、オフセットを適応フィルタ情報に含める。このようにして生成された適応フィルタ情報は、適応フィルタ部３６３に供給されると共に、可変長符号化部１１４にも供給され、符号化データに符号化データに含められる。
【０３２２】
適応フィルタ情報導出部３６８は、ＢＦ後画像Ｐ＿ＮＲに作用するフィルタのフィルタ係数b（ｕ、ｖ）、予測残差Ｄに作用するフィルタのフィルタ係数ｄ（ｕ、ｖ）、予測画像ＰＲＥＤに作用するフィルタのフィルタ係数c（ｕ、ｖ）、および、オフセットｏを、フィルタ後の画像と符号化対象画像（原画像）との誤差が最小となるように決定する。例えば、以下の数式（１０）に示す二乗誤差Ｅが最小となるように、フィルタ係数b（ｕ、ｖ）、フィルタ係数ｄ（ｕ、ｖ）、フィルタ係数c（ｕ、ｖ）、および、オフセットｏを決定する。
【０３２３】
【数５】
0005875979.tif 000006
【０３２４】
ここで、ＳPNR（ｘ、ｙ）はＢＦ後画像Ｐ＿ＮＲの画素値を表しており、ＳD（ｘ、ｙ）は予測残差Ｄの画素値を表しており、ＳPred（ｘ、ｙ）は予測画像ＰＲＥＤの画素値を表しており、Ｓ0（ｘ、ｙ）は、符号化対象画像の画素値を表している。また、ＲPNR、ＲD、およびＲPredは、ＢＦ後画像Ｐ＿ＮＲ、予測残差Ｄ、予測画像ＰＲＥＤ上のフィルタ参照領域を表している。フィルタ参照領域ＲPNR、ＲD、および、ＲPredのサイズを規定するタップ数は、複数の候補（例えば、１タップ、３タップ、５タップ、７タップ、９タップ）の中から、符号化効率が最適となるものが選択される。
【０３２５】
なお、適応フィルタ情報導出部３６８による、フィルタ係数、および、オフセットのより具体的な算出処理は、既に説明した適応フィルタ情報算出部１１８による算出処理と同様であるため、ここでは説明を省略する。
【０３２６】
上記のように決定されたフィルタ係数b（ｕ、ｖ）は、シンタックスalf_coeff_df[i]として、適応フィルタ情報（より具体的には、適応フィルタ情報の一部であるフィルタパラメータ）に含められる。また、上記のように決定されたフィルタ参照領域ＲPNRのタップ数を指定するパラメータは、alf_length_df_minus1_div2として、フィルタパラメータ（適応フィルタ情報alf_param()）に含められる。
【０３２７】
また、上記のように決定されたフィルタ係数ｄ（ｕ、ｖ）は、シンタックスalf_coeff_error[i]として、フィルタパラメータ（適応フィルタ情報alf_param()）に含められる。また、上記のように決定されたフィルタ参照領域ＲDのタップ数を指定するパラメータは、alf_length_error_minus1_div2として、フィルタパラメータ（適応フィルタ情報alf_param()）に含められる。
【０３２８】
また、上記のように決定されたフィルタ係数c（ｕ、ｖ）は、シンタックスalf_coeff_pred[i]として、フィルタパラメータ（適応フィルタ情報alf_param()）に含められる。また、上記のように決定されたフィルタ参照領域ＲPredのタップ数を指定するパラメータは、alf_length_pred_minus1_div2として、フィルタパラメータ（適応フィルタ情報alf_param()）に含められる。
【０３２９】
また、上記のように決定されたオフセットｏは、シンタックスalf_coeff_df[i]の一成分としてフィルタパラメータ（適応フィルタ情報alf_param()）に含められる。
【０３３０】
また、適応フィルタ情報導出部３６８は、
（１０）ＢＦ後画像Ｐ＿ＮＲに作用するフィルタが参照する参照範囲
（１１）予測残差Ｄの示す画像に作用するフィルタが参照する参照範囲
（１２）予測画像ＰＲＥＤに作用するフィルタが参照する参照範囲
を決定し、決定された参照範囲を指定するalf_reference_modeを適応フィルタ情報に含める構成としてもよい。例えば、alf_reference_modeが０である場合には図２７（ａ）のように参照範囲は制限されず、alf_reference_modeが１、２、３、４、５である場合には図２７（ｂ）、図２７（ｃ）、図２７（ｄ）、図２７（ｅ）、図２７（ｆ）のように参照範囲が制限される。
【０３３１】
また、適応フィルタ情報導出部３６８は、ＢＦ後画像のタップ数を１に制限するか否かを決定し、その結果を示すalf_prallel_modeを適応フィルタ情報に含める構成としてもよい。既に説明したようにalf_prallel_modeが１である場合には、ＢＦ後画像のタップ数が１に制限される。
【０３３２】
以上のように、動画像符号化装置４の備える適応フィルタ１２０によるフィルタ処理に用いられるフィルタパラメータは、符号化効率が最適となるように設定されているため、動画像符号化装置４を用いて符号化効率の高い符号化データ＃３を生成することができる。
【０３３３】
なお、適応フィルタ部３６３に入力する画像の種類は、動画像符号化装置４が外部から取得する情報によって指定されるものであってもよい。この場合、適応フィルタ情報導出部３６８は、当該情報によって指定される画像に対して、最適なフィルタ係数およびオフセットを決定する構成とすればよい。
【０３３４】
また、以上説明したそれぞれの実施形態において、動画像復号装置および動画像復号装置の各機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより動画像復号装置や動画像復号装置の制御を行っても良い。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【０３３５】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるものであっても良い。
【０３３６】
〔本明細書に記載した発明（その１）〕
なお、本明細書には、少なくとも、以下の発明が記載されている。
【０３３７】
１．ブロックに分割されて処理された画像をフィルタ入力画像としてフィルタ後画像を生成するフィルタ装置であって、前記フィルタ入力画像に対応する適応フィルタ情報を保存する適応フィルタ情報保存手段と、前記フィルタ入力画像から、フィルタ対象画素に隣接するブロックの境界付近の画素を用いて、フィルタ対象画素における画素値を生成するフィルタを作用させ、境界利用フィルタ画像（ＢＦ後画像）を生成する境界利用フィルタ手段（ＢＦ手段）と、前記フィルタ入力画像と前記ＢＦ後画像とから、前記適応フィルタ情報によって制御される適応フィルタ処理を行う適応フィルタ手段を備えることを特徴とするフィルタ装置。
【０３３８】
上記ＢＦ手段では、ブロック境界もしくはブロック境界付近の画素を選択して適応フィルタ入力用の画像を生成する。明示的に境界及びその付近の画素を参照するＢＦ処理と適応フィルタを組み合わせることにより、シーケンスやフレームの特徴及び境界の特徴に応じたデブロック強度調整が可能になり、歪み訂正効果を増大する効果を奏する。
【０３３９】
上記のように構成されたフィルタ手段によれば、少ない符号量の適応フィルタ情報を用いて、シーケンスやフレームの特徴及び境界との位置関係に応じたデブロック強度調整が可能な効果を奏する。
【０３４０】
２．前記ＢＦ手段は、境界の状態に応じて前記フィルタ入力画像のブロックノイズを低減するデブロッキングフィルタ処理を行い前記ＢＦ後画像を生成するデブロッキングフィルタ手段であることを特徴とする１に記載のフィルタ装置。
【０３４１】
上記のように構成されたフィルタ手段によれば、少ない符号量の適応フィルタ情報を用いて、シーケンスやフレームの特徴及び境界の特徴に応じたデブロック強度調整が可能な効果を奏する。
【０３４２】
３．前記ＢＦ手段は、フィルタ対象画素の付近の活性度を産出する活性度算出手段と、あるブロックと該ブロックに隣接する隣接ブロックとの境界におけるエッジ強度を算出するエッジ強度算出手段と、算出された前記活性度と前記エッジ強度に応じて異なる強度のブロックノイズ低減処理を行うデブロッキングフィルタ手段であることを特徴とする２に記載のフィルタ装置。
【０３４３】
このようなブロック境界の状態に応じた適応的な処理と適応フィルタを組み合わせることにより、シーケンスやフレームの特徴及び境界のエッジ強度や活性度に応じたデブロック強度調整が可能になり、歪み訂正効果を増大する効果を奏する。
【０３４４】
４．前記適応フィルタ情報は重み係数であり、前記適応フィルタ手段は、前記ＢＦ後画像と前記フィルタ入力画像に前記適応フィルタ情報を用いて重み付けを行うことで適応フィルタ処理を行うことを特徴とする１．から３に記載のフィルタ装置。
【０３４５】
上記のように構成されたフィルタ手段によれば、重み係数を最小２乗法などを用いて容易に算出することができる。そのため、シーケンスやフレームの特徴に最適化されることによる大きな歪み低減を得ることができるという効果を奏する。
【０３４６】
５．前記適応フィルタ手段において、ＢＦ後画像との重み付けを行う手段が、１画素のＢＦ画像と１つの重み係数との積を計算する乗算手段であることを特徴とする１．から４に記載のフィルタ装置。
【０３４７】
上記のように構成されたフィルタ手段によれば、高い歪み低減効果を得るのと同時に以下の効果を得ることができる。フィルタ入力画像の一つの領域（フィルタ対象ブロック）を処理する場合において、必要となるフィルタ入力画像の範囲が、適応フィルタ処理に対して小さくなる。また、適応フィルタ処理において必要となるフィルタ入力画像の範囲とＢＦ処理で必要となる範囲の重なりが大きくなるため、一度の転送を用いて、フィルタ対象ブロックに対してＢＦ処理と適応フィルタ処理を適応することができる。ＢＦ処理と適応フィルタ処理とで別々にデータ転送を行う場合に比べて、データ転送量削減の効果を奏する。また、ＢＦ後画像に対する重み付け処理の演算量を削減することができるため、ＢＦ処理と並列で実行できない重み付け処理が減少し、ＢＦ処理とフィルタ入力画像に対する重み付け処理を並列に実行する場合の並列性が向上する効果を奏する。
【０３４８】
６．符号化された入力画像から画像を復号する画像復号装置であって、前記入力画像から適応フィルタ情報及び残差情報及び予測画像を復号する復号手段と、前記残差情報を逆量子化及び逆変換することにより得られる残差画像と、前記予測画像とから、画像データを生成する生成手段と、１．から５．の何れか１つに記載のフィルタ装置と、を備え、前記フィルタ制御情報を用いて前記画像データに前記フィルタ装置を作用させることを特徴とする画像復号装置。
【０３４９】
この構成を備える動画像復号装置は、画像データの符号化歪みを効果的に低減することができるため、復号する画像の画質が向上する。
【０３５０】
７．入力画像の符号化を行って符号化された画像を出力する画像符号化装置であって、前記符号化された画像から局所復号画像の画像データを生成する復号画像生成手段と、１．から５．の何れか１つに記載のフィルタ装置と、前記画像データと、該画像データに前記フィルタ装置が備えるデブロッキングフィルタ手段を作用させて得られるデブロッキングフィルタ後画像と、前記入力画像とから、前記フィルタ装置が備える適応フィルタ手段が制御に用いる適応フィルタ情報を算出する適応フィルタ情報算出手段と、を備え、前記フィルタ制御情報を用いて前記フレームメモリに格納された前記画像データに前記フィルタ装置を作用させることを特徴とする画像符号化装置。
【０３５１】
この構成を備える動画像符号化装置は、参照画像として用いられる局所復号画像の符号化歪みを効果的に低減することができるため、高い符号化効率で圧縮を行うことができる。
【０３５２】
８．前記フィルタ手段は、演算部＃１、演算部＃２を含む２つ以上の演算手段を備え、演算部＃１が前記ＢＦ部におけるＢＦ後画像生成処理を行い、演算部＃２が前記適応フィルタ手段で行われる前記フィルタ入力画像に対する重み付けを行うことにより、並列でフィルタ処理を行うことを特徴とする処理手順。
【０３５３】
この特徴を備えるフィルタ方法では、ＢＦおよび重み付けという２つの処理を並列で実行することが可能であるため、高速な処理を行うことができる。
【０３５４】
９．前記フィルタ手段で用いられるフィルタ制御情報であって、フィルタ手段に入力されるフィルタ入力画像を入力として、フィルタ対象画素に隣接するブロックの境界付近の画素を用いて生成されるＢＦ画素値にかかる重み係数もしくは重み係数の予測値と、フィルタ手段に入力されるフィルタ入力画像にかかる重み係数もしくは重み係数の予測値とを含むことを特徴とするフィルタデータ構造。
【０３５５】
この特徴を備えるフィルタデータ構造を用いることにより、ＢＦ後画像に対する重み係数と、フィルタ入力画像に対する重み係数として、その両者を同時に最適化した値を、伝送、保存することが可能になる。このためフィルタデータ構造を用いることにより、歪み低減効果の非常に高いフィルタ処理を実現することができる。
【０３５６】
〔上記発明の効果〕
適応フィルタの参照画素として、ＢＦ処理前の画素値とＢＦ処理後の画素値とを用いる適応フィルタによって、少ない処理量で算出可能で、かつ、少ない数の重み係数を用いてデブロッキング強度を調整することができる（デブロッキング強度調整効果）。
【０３５７】
また、空間フィルタを備える適応フィルタを用いる場合には、さらに、ブロックノイズ低減の強さを補正する重み係数と空間フィルタの重み係数が同時に最適化されているので、より大きな符号化ノイズ低減効果が得られる。
【０３５８】
また、このようなループフィルタを動画像復号装置および動画像符号化装置に備えることによって、動画像符号化における符号化効率が向上する。
【０３５９】
〔本明細書に記載した発明（その２）〕
また、本明細書には、少なくとも、以下の発明が記載されている。
【０３６０】
本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、上記境界フィルタの入力画像に作用する第１の線形フィルタ部と上記境界フィルタの出力画像に作用する第２の線形フィルタ部とを含む適応フィルタであって、上記第１の線形フィルタ部の出力画像と上記第２の線形フィルタ部の出力画像との和を出力する適応フィルタと、を備えている、ことを特徴とする。
【０３６１】
本発明に係るフィルタ装置が備える適応フィルタは、境界フィルタの入力画像に作用する第１の線形フィルタ部の出力画像と、境界フィルタの出力画像に作用する第２の線形フィルタ部の出力画像とを加算して出力する。したがって、符号化効率を低下させることなく、第２の線形フィルタ部のタップ数を減らしたり、あるいは、符号化効率を低下させることなく、第１の線形フィルタ部のタップ数を減らしたりすることができる。
【０３６２】
ここで、前者の効果、すなわち、符号化効率を低下させることなく、第２の線形フィルタ部のタップ数を減らし得ることは、符号化効率を低下させることなく、全体の演算時間を削減し得ることを意味する。すなわち、境界フィルタ、第１の線形フィルタ部、第２の線形フィルタ部におけるフィルタ演算に要する演算時間をＴ０、Ｔ１、Ｔ２とすると、第１の線形フィルタ部におけるフィルタ演算を境界フィルタにおけるフィルタ演算と並列的に実行可能な場合、全体のフィルタ演算に要する演算時間Ｔは、Ｔ＝Ｍａｘ（Ｔ０＋Ｔ２，Ｔ１）となる。したがって、第２の線形フィルタ部のタップ数を減らせば、第１の線形フィルタ部のタップ数を増やしたとしても、第１の線形フィルタ部におけるフィルタ演算に要する演算時間Ｔ１が、境界フィルタにおけるフィルタ演算に要する時間Ｔ０と第２のフィルタ部におけるフィルタ演算に要する時間Ｔ２との和Ｔ０＋Ｔ２を下回っている限り、第２の線形フィルタ部における演算時間Ｔ２を短縮し、もって、全体の演算時間Ｔを短縮することができる。
【０３６３】
なお、境界フィルタにおけるフィルタ演算は、線形フィルタにおけるフィルタ演算（積和演算）と比べて演算量が多い。境界フィルタが、デブロッキングフィルタである場合、特に、活性度やブロック境界強度などに基づいて自身のフィルタ強度を自律的に調整する機能を有するデブロッキングフィルタである場合には尚更である。このため、第１の線形フィルタ部のタップ数を増やしたとしても、第１の線形フィルタ部における演算時間Ｔ１が境界フィルタ部における演算時間Ｔ０を上回ることは稀である。すなわち、符号化効率を低下させることなく、全体の演算時間を削減し得るという効果は、第１の線形フィルタ部における演算時間Ｔ１が境界フィルタ部における演算時間Ｔ０を上回るという稀なケースを除き、一般的に成立する効果である。
【０３６４】
本発明のフィルタ装置においては、上記第２の線形フィルタ部のタップ数が１に設定されている、ことが好ましい。
【０３６５】
上記の構成によれば、境界フィルタの見かけ上のフィルタ強度を適応的に調整する機能を残しながら、境界フィルタにおけるフィルタ演算と適応フィルタとにおけるフィルタ演算とを並列化することによる演算時間の削減量を最大化することができる。
【０３６６】
本発明のフィルタ装置においては、上記第１の線形フィルタ部のタップ数が２以上に設定されている、ことが好ましい。
【０３６７】
上記の構成によれば、上記第２の線形フィルタ部が非空間的（タップ数が１）な場合であっても、上記第２の線形フィルタ部が空間的（タップ数が２以上）な場合と同様の符号化効率向上効果を得ることができる。
【０３６８】
本発明のフィルタ装置においては、上記第１の線形フィルタ部におけるフィルタ演算と、上記境界フィルタにおけるフィルタ演算とを並列的に実行する、ことが好ましい。
【０３６９】
上記の構成によれば、全体の演算時間が削減されたフィルタ装置が実現される。
【０３７０】
上記適応フィルタにおいて、上記適応フィルタは、上記第２の線形フィルタ部の出力画像を出力する第１のモードと、上記第１の線形フィルタ部の出力画像と上記第２の線形フィルタ部の出力画像との和を出力する第２のモードとのうち、外部から取得したモード指定情報により指定された方のモードで動作する、ことが好ましい。
【０３７１】
上記の構成によれば、並列化による演算時間を削減に適した第２のモードでフィルタ装置を動作させるか否かを外部から制御することができる。例えば、フィルタ装置を画像復号装置に内蔵した場合に、並列化による演算時間の削減に適した第２のモードで画像復号装置を動作させるか否かを画像符号化装置から制御することができる。
【０３７２】
本発明のフィルタ装置においては、上記第２のモードにおいて、上記第２の線形フィルタ部のタップ数が１に設定されている、ことが好ましい。
【０３７３】
上記の構成によれば、上記第２のモードにおいて、境界フィルタの見かけ上のフィルタ強度を適応的に調整する機能を残しながら、境界フィルタにおけるフィルタ演算と適応フィルタとにおけるフィルタ演算とを並列化することによる演算時間の削減量を最大化することができる。
【０３７４】
本発明のフィルタ装置においては、上記第１のモードにおいて、外部から取得したタップ数指定情報により指定された値に上記第２の線形フィルタ部のタップ数が設定され、上記第２のモードにおいて、上記タップ数指定情報により指定された値に上記第１の線形フィルタ部のタップ数が設定される、ことが好ましい。
【０３７５】
上記の構成によれば、単一のタップ数指定情報を用いて、第１のモードにおける第２の線形フィルタのタップ数と第２のモードにおける第１の線形フィルタのタップ数とを効率的に指定することができる。
【０３７６】
本発明のフィルタ装置において、上記適応フィルタは、上記第２の線形フィルタ部において設定可能なタップ数の上限値が定められていない第１のモードと、上記第２の線形フィルタ部において設定可能なタップ数の上限値が定められている第２のモードとのうち、外部から取得したモード指定情報により指定された方のモードで動作する、ことが好ましい。
【０３７７】
上記の構成によれば、並列化による演算時間の削減に適した第２のモードでフィルタ装置を動作させるか否かを外部から制御することができる。例えば、フィルタ装置を画像復号装置に内蔵した場合に、並列化による演算時間の削減に適した第２のモードで画像復号装置を動作させるか否かを画像符号化装置から制御することができる。
【０３７８】
本発明のフィルタ装置においては、上記第２の線形フィルタ部において設定可能なタップ数の上限値が定められている、ことが好ましい。
【０３７９】
上記の構成によれば、並列化による演算時間の削減に適した状態でフィルタ装置を動作させることができる。
【０３８０】
なお、上記のフィルタ装置を備えた画像復号装置、上記のフィルタ装置を備えた画像符号化装置、及び、上記のフィルタ装置に供給されるフィルタパラメータのデータ構造も本発明の範疇に含まれる。
【０３８１】
上記課題を解決するために、本発明のフィルタ装置は、ブロックに分割されて処理された画像をフィルタ入力画像としてフィルタ後画像を生成するフィルタ装置であって、前記フィルタ入力画像に対応する適応フィルタ情報を保存する適応フィルタ情報保存手段と、前記フィルタ入力画像から、フィルタ対象画素に隣接するブロックの境界付近の画素を用いて、フィルタ対象画素における画素値を生成するフィルタを作用させ、境界利用フィルタ画像（ＢＦ後画像）を生成する境界利用フィルタ手段（ＢＦ手段）と、前記フィルタ入力画像と前記ＢＦ後画像とから、前記適応フィルタ情報によって制御される適応フィルタ処理を行う適応フィルタ手段を備えることを特徴とする。
【０３８２】
上記ＢＦ手段では、ブロック境界もしくはブロック境界付近の画素を選択して適応フィルタ入力用の画像を生成する。明示的に境界及びその付近の画素を参照するＢＦ処理と適応フィルタを組み合わせることにより、シーケンスやフレームの特徴及び境界の特徴に応じたデブロック強度調整が可能になり、歪み訂正効果を増大する効果を奏する。上記のように構成されたフィルタ手段によれば、少ない符号量の適応フィルタ情報を用いて、シーケンスやフレームの特徴及び境界との位置関係に応じたデブロック強度調整が可能な効果を奏する。
【０３８３】
上記の課題を解決するために、本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第１の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第２の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第３の線形フィルタ部を含む適応フィルタであって、上記第１から第３の線形フィルタの出力画像を加算して出力する適応フィルタと、を備えており、上記第１から第３の線形フィルタ部の少なくとも何れかについて、タップ数が１に設定されている、ことを特徴としている。
【０３８４】
上記のように構成されたフィルタ装置によれば、上記第１から第３の線形フィルタ部の少なくとも何れかについて、タップ数が１に設定されているため、高い符号化効率を維持しつつ、処理量および処理時の少なくとも何れかを削減することができる。
【０３８５】
また、上記の課題を解決するために、本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第１の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第２の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第３の線形フィルタ部を含む適応フィルタであって、上記第１から第３の線形フィルタの出力画像を加算して出力する適応フィルタと、
を備えており、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されている、ことを特徴としている。
【０３８６】
上記のように構成されたフィルタ装置によれば、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されているので、高い符号化効率を維持しつつ、処理量および処理時間の少なくとも何れかを削減することができる。
【０３８７】
なお、上記参照範囲の境界のうち処理順で下流側の境界とは、例えば、上記参照範囲が矩形状であり、上記処理がラスタスキャン順に行われるとした場合、当該参照範囲の境界のうち、右辺の境界および下辺の境界の少なくとも何れかの境界のことを指す。また、上記処理がラスタスキャン順の逆順に行われるとした場合、当該参照範囲の境界のうち、左辺の境界および上辺の境界の少なくとも何れかの境界のことを指す。
【０３８８】
また、上記ブロックとは、変換ブロック、予測ブロック、マクロブロック、コーディングユニット、最大コーディングユニットと呼ばれる単位のいずれであってもよい。
【０３８９】
また、上記フィルタ装置においては、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲が、対象画素を含む対象ブロック、該対象ブロックの周辺の復号済みブロック、および、該対象ブロックの直後に復号されるブロックより構成されている、ことが好ましい。
【０３９０】
上記の構成によれば、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲が、対象画素を含む対象ブロック、該対象ブロックの周辺の復号済みブロック、および、該対象ブロックの直後に復号されるブロックより構成されているので、当該対象ブロックの直後に復号されるブロックに属する画素値の復号処理が終了した時点において、フィルタ処理を開始することができる。
【０３９１】
したがって、上記の構成によれば、処理時間を削減することができる。また、フィルタ処理に伴うデータ転送量が削減されることにより、処理量も削減される。
【０３９２】
また、上記フィルタ装置においては、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲が、対象画素を含む対象ブロック、および、該対象ブロックの周辺の復号済みブロックより構成されている、ことが好ましい。
【０３９３】
上記の構成によれば、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲が、対象画素を含む対象ブロック、および、該対象ブロックの周辺の復号済みブロックより構成されているため、上記対象ブロックの周辺のブロックに属する画素の画素値を参照するに際して、画素値の復号が完了するまで待機することなく、画素値の参照を行うことができる。
【０３９４】
したがって、上記の構成によれば、処理時間を削減することができる。また、フィルタ処理に伴うデータ転送量が削減されることにより、処理量も削減される。
【０３９５】
また、上記フィルタ装置においては、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲の下辺の一部が、対象画素の下辺と重複するように設定されている、ことが好ましい。
【０３９６】
上記の構成によれば、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲の下辺の一部が、対象画素の下辺と重複するように設定されているので、ラスタスキャン順に復号処理を行うとした場合に、対象画素の下側に位置する画素の画素値の復号処理を待つことなく、フィルタ処理を行うことができる。
【０３９７】
したがって、上記の構成によれば、処理時間を削減することができる。また、フィルタ処理に伴うデータ転送量が削減されることにより、処理量も削減される。
【０３９８】
また、上記フィルタ装置においては、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲の下辺の一部および右辺の一部が、それぞれ、対象画素の下辺および右辺と重複するように設定されている、ことが好ましい。
【０３９９】
上記の構成によれば、上記第１から第３の線形フィルタ部の少なくとも何れかについて、参照範囲の下辺の一部および右辺の一部が、それぞれ、対象画素の下辺および右辺と重複するように設定されているので、ラスタスキャン順に復号処理を行うとした場合に、対象画素の下側に位置する画素の画素値、および、対象画素の右側に位置する画素の画素値の復号処理を待つことなく、フィルタ処理を行うことができる。
【０４００】
したがって、上記の構成によれば、処理時間を削減することができる。また、フィルタ処理に伴うデータ転送量が削減されることにより、処理量も削減される。
【０４０１】
また、上記フィルタ装置においては、上記第１から第３の線形フィルタ部のいずれかにおけるフィルタ演算と、上記境界フィルタにおけるフィルタ演算とを並列的に実行する、ことが好ましい。
【０４０２】
上記の構成によれば、上記第１から第３の線形フィルタ部のいずれかにおけるフィルタ演算と、上記境界フィルタにおけるフィルタ演算とを並列的に実行することにより、処理時間をさらに削減することができる。
【０４０３】
また、上記フィルタ装置においては、上記適応フィルタは、上記第１から第３の線形フィルタ部の少なくとも何れかのタップ数を、外部から取得したタップ数指定情報によって指定される値に設定する、ことが好ましい。
【０４０４】
上記の構成によれば、上記第１から第３の線形フィルタ部の少なくとも何れかのタップ数を、外部から取得したタップ数指定情報によって効率的に指定することができる。
【０４０５】
また、上記フィルタ装置においては、上記適応フィルタは、上記第１から第３の線形フィルタ部の少なくとも何れかの参照範囲を、外部から取得したモード指定情報によって指定されるものに設定する、ことが好ましい。
【０４０６】
上記の構成によれば、上記第１から第３の線形フィルタ部の少なくとも何れかの参照範囲を、外部から取得したモード指定情報によって効率的に指定することができる。
【０４０７】
また、上記フィルタ装置においては、上記境界フィルタは、上記境界におけるブロックノイズを低減するためのデブロッキングフィルタである、ことが好ましい。
【０４０８】
上記の構成によれば、境界フィルタが、上記境界におけるブロックノイズを低減させることにより、予測精度および符号化効率が向上する。
【０４０９】
また、上記フィルタ装置を備えた画像復号装置であって、上記フィルタ装置を、復号画像を生成するために用いられる各画像に作用させる画像復号装置、および、上記フィルタ装置を備えた画像符号化装置であって、上記フィルタ装置を、局所復号画像を生成するために用いられる各画像に作用させる画像符号化装置も本発明の範疇に含まれる。
【０４１０】
また、フィルタパラメータについての以下のデータ構造も本発明の範疇に含まれる。
【０４１１】
すなわち、境界フィルタと適応フィルタとを備えたフィルタ装置に供給されるフィルタパラメータのデータ構造において、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタのフィルタ係数と、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第１の線形フィルタ部のフィルタ係数と、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第２の線形フィルタ部のフィルタ係数と、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第３の線形フィルタ部のフィルタ係数と、を含んでいることを特徴とするフィルタパラメータのデータ構造も本発明の範疇に含まれる。
【０４１２】
〔付記事項１〕
上記実施形態における、マクロブロックは、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣの後継規格として提案されているＨＥＶＣ（High Efficiency Video Coding）のＬＣＵ（最大コーディングユニット：Largest Coding Unit、コーディングツリー（Coding Tree）のrootと呼ばれることもある）に相当し、マクロブロックおよびブロックは、ＨＥＶＣのＣＵ（コーディングユニット：Coding Unit、コーディングツリーのleafと呼ばれることもある）、ＰＵ（Prediction Unit）、またはＴＵ（Transformation Unit）に相当するものである。また、ＬＣＵは、ツリーブロックと呼ばれることもある。
【０４１３】
〔付記事項２〕
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も特許請求の範囲に含まれる。
【産業上の利用可能性】
【０４１４】
本発明に係るフィルタ装置は、画像符号化装置および画像復号装置に好適に利用することができる。特に、動画像符号化装置および動画像復号装置に好適に利用することができる。特に、Ｈ２６４／ＡＶＣ、あるいは、その後継規格に従う動画像符号化装置および動画像復号装置に好適に利用することができる。
【符号の説明】
【０４１５】
１          動画像復号装置
１０７      減算部
１０９      加算部
１１１      予測部
１１２      変換部
１１３      量子化部
１１４      可変長符号化部
１１５      逆量子化部
１１６      逆変換部
１１７      フレームメモリ
１１８      適応フィルタ情報算出部
１１９      適応フィルタ情報保存部
１２０      ループフィルタ部
１２０´    ループフィルタ部
３０１      ＢＦ部
３０２      適応フィルタ部
３０２´    適応フィルタ部
３０１´    第２のＢＦ部
３０１´ｂ  第３のＢＦ部
４０１      境界エッジ算出部
４０２      活性度算出部
４０３      ＢＦ画素生成部
５０１      垂直境界値参照部
５０２      水平境界値参照部
５０３      対象画素参照部
５０４      ＢＦ重み算出部
５０５      加重平均部
５０１ｂ    第２の垂直境界値参照部
５０２ｂ    第２の水平境界値参照部
５０３ｂ    第２の対象画素参照部
５０４ｂ    第２のＢＦ重み算出部
５０５ｂ    第２の加重平均部
７０１      適応重み付け部
７０２      ＢＦ後画素値適応重み付け部
７０２´    乗算部
７０３      シフト／除算部
７０４      加算部
３          動画像復号装置（画像復号装置）
４          動画像符号化装置（画像符号化装置）
１０７      減算部
１０９      加算部
１１１      予測部
１１２      変換部
１１３      量子化部
１１４      可変長符号化復号部
１１５      逆量子化部
１１６      逆変換部
１１７      フレームメモリ
１２０      ループフィルタ部
３６２      適応フィルタ用メモリ
３６３      適応フィルタ部
３６４      ＢＦ部
３６８      適応フィルタ情報導出部
【図１】
0005875979.tif 000007
【図２】
0005875979.tif 000008
【図３】
0005875979.tif 000009
【図４】
0005875979.tif 000010
【図５】
0005875979.tif 000011
【図６】
0005875979.tif 000012
【図７】
0005875979.tif 000013
【図８】
0005875979.tif 000014
【図９】
0005875979.tif 000015
【図１０】
0005875979.tif 000016
【図１１】
0005875979.tif 000017
【図１２】
0005875979.tif 000018
【図１３】
0005875979.tif 000019
【図１４】
0005875979.tif 000020
【図１５】
0005875979.tif 000021
【図１６】
0005875979.tif 000022
【図１７】
0005875979.tif 000023
【図１８】
0005875979.tif 000024
【図１９】
0005875979.tif 000025
【図２０】
0005875979.tif 000026
【図２１】
0005875979.tif 000027
【図２２】
0005875979.tif 000028
【図２３】
0005875979.tif 000029
【図２４】
0005875979.tif 000030
【図２５】
0005875979.tif 000031
【図２６】
0005875979.tif 000032
【図２７】
0005875979.tif 000033
【図２８】
0005875979.tif 000034
【図２９】
0005875979.tif 000035
【図３０】
0005875979.tif 000036