(57)【特許請求の範囲】
【請求項１】
ループフィルタとして，テンプレートマッチングによりテンプレート類似度に応じた重みと探索点における画素値の加重和によって対象画素のノイズを除去するデノイズフィルタと，ブロック歪みを除去するデブロッキングフィルタとを，ブロックごとに適応選択して用いることにより，予測符号化された画像の復号画像に対するノイズを除去し，画像を符号化する画像符号化方法であって，
前記デノイズフィルタが適応選択されたブロックにおける該フィルタが適用される画素数を計測し，ブロックごとに順次計測された画素数の合計を算出するステップと，
前記画素数の合計と，所定のデノイズフィルタ許容合計画素数とを比較するステップと，
前記画素数の合計が，前記所定のデノイズフィルタ許容合計画素数を超えた場合に，そのブロック以降のブロックに対して，前記デノイズフィルタの適用を打ち切り，前記デブロッキングフィルタを適用するステップとを実行する
ことを特徴とする画像符号化方法。
【請求項２】
請求項１記載の画像符号化方法において，
前記ブロックごとに順次計測された画素数の合計を算出するステップでは，前記デノイズフィルタが適応選択されたブロックについて，前記デブロッキングフィルタを適用した場合との比較による相対的な符号化のコストが小さい順のブロックの順番で画素数の合計を算出する
ことを特徴とする画像符号化方法。
【請求項３】
ループフィルタとして，テンプレートマッチングによりテンプレート類似度に応じた重みと探索点における画素値の加重和によって対象画素のノイズを除去するデノイズフィルタと，ブロック歪みを除去するデブロッキングフィルタとを，ブロックごとに適応選択して用いることにより，予測符号化された画像の復号画像に対するノイズを除去し，画像を符号化する画像符号化方法であって，
前記デノイズフィルタが適応選択されたブロックの該フィルタが適用される各画素におけるテンプレートの構成画素数と探索形状内の探索点数とから演算量を計測し，ブロックごとに順次計測された演算量の合計を算出するステップと，
前記演算量の合計と，所定のデノイズフィルタ許容合計演算量とを比較するステップと，
前記演算量の合計が，前記所定のデノイズフィルタ許容合計演算量を超えた場合に，そのブロック以降のブロックに対して，前記デノイズフィルタの適用を打ち切り，前記デブロッキングフィルタを適用するステップとを実行する
ことを特徴とする画像符号化方法。
【請求項４】
請求項３記載の画像符号化方法において，
前記ブロックごとに順次計測された演算量の合計を算出するステップでは，前記デノイズフィルタが適応選択されたブロックについて，前記デブロッキングフィルタを適用した場合との比較による相対的な符号化のコストが小さい順のブロックの順番で演算量の合計を算出する
ことを特徴とする画像符号化方法。
【請求項５】
ループフィルタとして，テンプレートマッチングによりテンプレート類似度に応じた重みと探索点における画素値の加重和によって対象画素のノイズを除去するデノイズフィルタと，ブロック歪みを除去するデブロッキングフィルタとを，ブロックごとに適応選択して用いることにより，予測符号化された画像の復号画像に対するノイズを除去し，画像を符号化する画像符号化装置であって，
前記デノイズフィルタが適応選択されたブロックにおける該フィルタが適用される画素数を計測し，ブロックごとに順次計測された画素数の合計を算出する手段と，
前記画素数の合計と，所定のデノイズフィルタ許容合計画素数とを比較する手段と，
前記画素数の合計が，前記所定のデノイズフィルタ許容合計画素数を超えた場合に，そのブロック以降のブロックに対して，前記デノイズフィルタの適用を打ち切り，前記デブロッキングフィルタを適用する手段とを備える
ことを特徴とする画像符号化装置。
【請求項６】
ループフィルタとして，テンプレートマッチングによりテンプレート類似度に応じた重みと探索点における画素値の加重和によって対象画素のノイズを除去するデノイズフィルタと，ブロック歪みを除去するデブロッキングフィルタとを，ブロックごとに適応選択して用いることにより，予測符号化された画像の復号画像に対するノイズを除去し，画像を符号化する画像符号化装置であって，
前記デノイズフィルタが適応選択されたブロックの該フィルタが適用される各画素におけるテンプレートの構成画素数と探索形状内の探索点数とから演算量を計測し，ブロックごとに順次計測された演算量の合計を算出する手段と，
前記演算量の合計と，所定のデノイズフィルタ許容合計演算量とを比較する手段と，
前記演算量の合計が，前記所定のデノイズフィルタ許容合計演算量を超えた場合に，そのブロック以降のブロックに対して，前記デノイズフィルタの適用を打ち切り，前記デブロッキングフィルタを適用する手段とを備える
ことを特徴とする画像符号化装置。
【請求項７】
請求項１から請求項４までのいずれか１項に記載の画像符号化方法を，コンピュータに実行させるための画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，画像を符号化する際に画像撮影時のノイズや劣化画像の劣化を軽減する画像処理技術に関するものである。
【背景技術】
【０００２】
本明細書において用いる各語句を，以下のように定義する。
・「探索形状」：テンプレートマッチングの対象とする当該画素周辺の各探索点の集合体，また，その集合体が形作る形状。
・「テンプレート形状」：テンプレートマッチングの際に当該画素と各探索点の類似度を計算するときに用いる画素群，また，その画素群が形作る形状。画素群は，当該画素周辺と各探索点周辺で同じ形状を用い，相対位置関係が同じ位置同士の画素値を比較する。
【０００３】
画像処理分野において，画像撮影時のノイズや劣化画像の劣化を軽減する手法として，様々なデノイズフィルタが提案されている。中でも，Non-local means 法によるデノイズフィルタ（非特許文献１参照）は，高いデノイズ効果を発揮することが知られている。Non-local means 法によるデノイズフィルタを，以下，ＮＬＭフィルタという。
【０００４】
図１０は，ＮＬＭフィルタの説明図である。図１０において，正方形の１マスが探索点であり，これらの探索点の集合体が探索形状である。Ｐo はデノイズ対象画素，Ｐs は探索先における探索点の画素である。Ｔo およびＴs はテンプレート形状であり，比較元のテンプレート形状Ｔo と探索先のテンプレート形状Ｔs の形状は同一である。
【０００５】
ＮＬＭフィルタでは，比較元と探索先の各テンプレート形状Ｔo ，Ｔs 内の対応する各画素同士を比較して，テンプレート類似度を算出する。テンプレート類似度の計算には，一般的にＳＳＤ (Sum of Square Difference) やＳＡＤ (Sum of Absolute Difference) が用いられる。
【０００６】
ＮＬＭフィルタは，次のように各画素についてデノイズ後の画素値を算出する。以下では，テンプレート類似度の計算にＳＳＤを用いた例を説明する。
（１）重み値合計の変数ＳＷを０，画素値合計の変数ＳＰを０に初期化する。
（２）探索形状内のすべての各探索点に対して，以下の処理を繰り返す。
（２−１）テンプレート類似度としてＳＳＤを算出する。
（２−２）重み値Ｗ＝ｅｘｐ（−ＳＳＤ／デノイズ係数) 
（２−３）重み値合計ＳＷ＝重み値合計ＳＷ＋重み値Ｗ
（２−４）画素値合計ＳＰ＝画素値合計ＳＰ＋重み値Ｗ×（探索点の画素値）
（３）探索形状内のすべての探索点について（２）の処理を終えたならば，デノイズ対象画素のデノイズ後の画素値を，次式により求める。
【０００７】
（デノイズ後の画素値）= 画素値合計ＳＰ／重み値合計ＳＷ
また，“ＭＰＥＧ”や“ＶＣＥＧ”にて現在国際標準化活動が行われている次世代映像符号化標準方式の“High Efficiency Video Coding”の雛形（Test Model）である“ＨＭ”には，符号化歪を除去するためにデブロッキングフィルタによるデノイズフィルタが搭載されている（非特許文献２参照）。
【０００８】
このＨＭに対して，従来のデブロッキングフィルタよりも符号化効率を高めることを目的として，ＮＬＭフィルタを導入することが提案されている（非特許文献３参照）。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】A. Buades, B. Coll, and J. M. Morel, "A non-local algorithm for image denoising", Proc. IEEE Int. Conf. on Computer Vision and Pattern Recognition, vol. 2, pp. 60-65, June, 2005.
【非特許文献２】Thomas Wiegand, Woo-Jin Han, Benjamin Bross, Jens-Rainer Ohm, Gary J. Sullivan, "WD3: Working Draft 3 of High-Efficiency Video Coding", ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 5rd Meeting: Geneva, CH, 16-23 March, 2011.
【非特許文献３】Masaaki Matsumura, Yukihiro Bandoh, Seishi Takamura, Hirohisa Jozawa, "In-loop filter based on non-local means filter", ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 5th Meeting: Geneva, CH, 16-23 March, 2011.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述のように次世代映像符号化標準方式の“High Efficiency Video Coding”の“ＨＭ”には，符号化歪を除去するためにデブロッキングフィルタによるデノイズフィルタが搭載されているが，上記ＮＬＭフィルタをＨＭに導入すれば，従来のデブロッキングフィルタよりも符号化効率を高めることができる。
【００１１】
しかし，ＮＬＭフィルタは演算量が膨大であり，非特許文献３に記載のようにブロックごとにＮＬＭフィルタ適用の有無をＲＤ(Rate-Distortion) 最適化によって決定し，さらに例えば画素ごとにＮＬＭフィルタの演算負荷が異なる手法を用いると，符号化対象画像ごとにＮＬＭフィルタによる演算量が大きく変動し，復号装置の演算量見積りが困難になるという欠点が存在する。
【００１２】
すなわち，次のような課題が存在する。所定サイズのブロックごとにＮＬＭフィルタの有無をＲＤ最適化によって決定すると，特に画面内予測のみで構成されるIntra スライスは発生符号量の割には画像が歪みやすく，その歪みを除去するために画面全体におけるＮＬＭフィルタの選択比率は高くなる。実際にＲＤ最適化を行った場合，フレームによっては画面全体の９割以上がＮＬＭフィルタの適用対象となり，復号装置の計算複雑度がＮＬＭフィルタ導入前のものと比較して５〜６割増しになるものも確認されている。
【００１３】
一方，フレーム間予測が用いられるInter スライスは，前フレームでＮＬＭフィルタが適用された画像が参照可能であるため，当該フレームでＮＬＭフィルタを適用する必要がないブロックが多数発生し，Intra スライスと比較してＮＬＭフィルタの選択比率は低くなる。
【００１４】
このようにフレームごとに大きく演算量が変化してしまうと，復号装置における演算量の見積りが困難になるという問題が生じる。
【００１５】
例えば，デコーダの回路設計者がＦｕｌｌＨＤ解像度のリアルタイムデコーダを設計しようとした際，ＮＬＭフィルタによる演算量の見積もりができないため，最悪値である画面全体にＮＬＭフィルタが適用された場合でも確実にデコード可能なように設計しなければならない。このため，回路規模が大きくなったり，フレームによってデコード完了までの時間にばらつきが生じてしまうおそれがある。
【００１６】
本発明は，以上の課題の解決を図り，ＮＬＭフィルタによる演算量の変動を指定値以下に抑制することを目的とする。
【課題を解決するための手段】
【００１７】
本発明は，上記課題を解決するため，符号化装置にて閾値を設定し，ＮＬＭフィルタが適用される画素数もしくはＮＬＭフィルタの合計演算量の上限を制限することを特徴とする。なお，画素数における各演算量とは，探索形状を構成する画素数とテンプレート形状を構成する画素数を乗算した値を用いる。
【００１８】
（１）フィルタが適用される画素数の上限を制限する場合
ブロックごとにＮＬＭフィルタ適用の有無を参照してブロック内のＮＬＭフィルタ適用画素数をカウントし，所定の上限に達した時点で処理を終了し，以降のブロックや画素にはＮＬＭフィルタを適用しない。
【００１９】
例えば，次のようにしてフィルタが適用される画素数の上限を制限する。ＮＬＭフィルタの適用を許可する上限の画素数をＮ，合計適用画素数Ｍ（初期値＝０）を設定し，所定サイズのブロックごとにＮＬＭフィルタ適用の有無をＲＤ最適化にて選択する。このとき，ＲＤ最適化にてＮＬＭフィルタを適用することが選択されたブロックに限り，ブロック内部でＮＬＭフィルタが適用される画素数ＸをカウントしてＭに加算する。ここで，ＭがＮを超えたとき，以降のブロックについてはＮＬＭフィルタを適用しないものとする。
【００２０】
つまりＮＬＭフィルタの適用を許可する画素数の上限値を符号化装置に設定すると，最悪値でもその上限を超えることはないので，ＮＬＭフィルタによって増加する復号装置の最大演算量を見積もることができるようになる。ここで，画素数を計測する場合には，各画素のフィルタ演算量は同一もしくは最大演算量のものを用いることを想定している。
【００２１】
各ブロックにおいて，ＮＬＭフィルタを適用する画素はあらかじめ定めていてもよい。ＮＬＭフィルタは，例えばブロックの全画素に適用されることもあり，また，ブロックの境界に近い部分の画素にだけ適用されることもある。
【００２２】
（２）フィルタの合計演算量の上限を制限する場合
ブロックごとにＮＬＭフィルタ適用の有無を参照してブロック内のＮＬＭフィルタ適用画素数における各演算量をカウントし，所定の上限に達した時点で処理を終了し，以降のブロックや画素にはＮＬＭフィルタを適用しない。
【００２３】
例えば，次のようにしてフィルタの演算量の上限を制限する。ＮＬＭフィルタの上限演算量をＮ，合計演算量Ｍ（初期値＝０）を設定し，所定サイズのブロックごとにＮＬＭフィルタ適用の有無をＲＤ最適化にて選択する。このとき，ＲＤ最適化にてＮＬＭフィルタを適用することが選択されたブロックに限り，ブロック内部でＮＬＭフィルタが適用される各画素における演算量ＸをカウントしてＭに加算する。ここで，ＭがＮを超えたとき，以降のブロックについてはＮＬＭフィルタを適用しないものとする。
【００２４】
つまりＮＬＭフィルタの上限演算量を符号化装置に設定すると，最悪値でもその上限を超えることはないので，ＮＬＭフィルタによって増加する復号装置の最大演算量を見積もることができるようになる。
【００２５】
以上のように，上記処理（１）または（２）により，従来はＲＤ最適化によってブロックごとに最適化が行われていたため，符号化対象画像ごとにＮＬＭフィルタによる演算量が大きく変動していたものを，所定の演算量以下に抑制することができる。これにより，復号装置の最大演算量が見積もれるようになる。
【発明の効果】
【００２６】
本発明によれば，映像符号化におけるループフィルタ処理において，フィルタを適用する画素数もしくは合計演算量の上限を設定することにより，ＮＬＭフィルタによる演算量の変動を抑制し，最大演算量を指定値以下に抑制することができる。したがって，復号装置における設計の許容度が向上する。
【図面の簡単な説明】
【００２７】
【図１】本発明が適用される符号化装置の構成例を示す図である。
【図２】符号化装置の全体の処理フローチャートである。
【図３】符号化装置の全体の処理フローチャートである。
【図４】符号化装置におけるループフィルタＡ部の詳細な構成例を示す図である。
【図５】第１の例によるフィルタ適応選択部の構成例を示す図である。
【図６】第１の例によるループフィルタＡ部の処理フローチャートである。
【図７】第２の例によるフィルタ適応選択部の構成例を示す図である。
【図８】第２の例によるループフィルタＡ部の処理フローチャートである。
【図９】本発明をコンピュータとソフトウェアプログラムとを用いて実施する場合のシステムの構成例を示す図である。
【図１０】ＮＬＭフィルタの説明図である。
【発明を実施するための形態】
【００２８】
以下，図面を用いながら，本発明の実施の形態を説明する。
【００２９】
〔映像符号化装置の構成〕
図１は，本発明が適用される符号化装置の構成例を示す図である。本発明は，例えば図１に示すような映像符号化装置に適用されるが，これは一例であり，本発明は，必ずしも図１に示すような装置構成のものに限定されるわけではない。
【００３０】
図１に示す映像符号化装置において，原画像記憶部１０１は，符号化対象となる入力シーケンスの全画像の記憶部であり，順次，各フレームの符号化対象画像を出力する。
【００３１】
この例では，ループフィルタＡ部２００におけるＮＬＭフィルタを用いたデノイズフィルタ処理において，ノイズ除去の強度を表すデノイズ係数は原画像と比較して符号化効率が最適なデノイズ係数を決定し，デノイズ係数オーバーヘッドとして符号化してビットストリームに加えるものとする。ＮＬＭフィルタにおける探索形状およびテンプレート形状は固定としてもよく，また，そのいずれか一方または双方をユーザ設定などで外部から与えるようにしてもよい。いずれかの形状を外部から与えた場合，デノイズ係数と同様にオーバーヘッドとして符号化して復号装置に伝送する必要がある。
【００３２】
ブロックサイズ決定部１０２は，所定のＣｏｄｉｎｇＵｎｉｔをどのブロックサイズに分割して符号化を実行するかを決定し，対象ブロックとブロックサイズを出力する。予測サイズ決定部１０３は，対象ブロックの画素値を予測するブロックの予測サイズを決定し，対象ブロックと予測サイズを出力する。予測手法決定部１０４は，対象ブロックの画素値予測を行う上で，画面内予測／フレーム間予測の各手法の中で最も符号化効率の高い手法を決定し，その手法を用いた際の予測ブロックと予測情報を出力する。予測サイズ決定部１０３にて出力された対象ブロックは，予測ブロックとの差分値が計算され差分ブロックとなる。
【００３３】
変換サイズ決定部１０５は，差分ブロックを分割する変換サイズを決定し，分割した変換サイズごとの差分ブロックと変換サイズを出力する。離散コサイン変換部１０６では，差分ブロックに対して離散コサイン変換を適用し，ＤＣＴ係数を出力する。量子化部１０７では，ＤＣＴ係数に対して量子化を行い，量子化後ＤＣＴ係数を出力する。
【００３４】
逆量子化部１０８では，量子化後ＤＣＴ係数に対して逆量子化を行い，ＤＣＴ係数に戻す。逆離散コサイン変換部１０９では，ＤＣＴ係数に対して逆離散コサイン変換を適用し，復号差分ブロックを出力する。復号差分ブロックは予測ブロックと加算合成され，部分復号画像となる。復号画像記憶部１１０は，部分復号画像を格納し，復号装置側でも参照可能な画像を格納しておく記憶部である。画面内予測部１１１は，復号画像記憶部１１０に格納されている部分復号画像を参照し，予測ブロックと予測情報とを出力する。
【００３５】
ループフィルタＡ部２００は，復号画像と原画像とを参照し，ＮＬＭフィルタによるデノイズフィルタ処理と，例えば次世代映像符号化標準方式の“High Efficiency Video Coding”の雛形である“ＨＭ”等に搭載されているデブロッキングフィルタによるデブロッキングフィルタ処理とを，ブロックごとに符号化コストの比較によって切り替えて，符号化歪みを軽減したフィルタ後復号画像を生成する。また，前記切り替えのために必要な情報は，オーバーヘッドとして符号化するものとする。特に，このループフィルタＡ部２００の部分が従来技術と異なる。
【００３６】
ループフィルタＢ部１１４では，フィルタ後復号画像に対して原画像に近づけるようにＡＬＦ（Adaptive Loop Filter）と呼ばれるフィルタ処理を行い，ＡＬＦ後復号画像とＡＬＦ係数を出力する。フレームバッファ１１５は，ＡＬＦ後復号画像を格納しておく記憶部である。フレーム間予測部１１６は，フレームバッファ１１５を参照し，予測ブロックと予測情報とを出力する。
【００３７】
シーケンス情報符号化部１１７は，映像の縦横画素数など，入力シーケンス固有の情報を符号化の後，ビットストリーム記憶部１２５に対してシーケンス情報オーバーヘッドを出力する。ブロックサイズ符号化部１１８は，ブロックサイズ決定部１０２から予測サイズを受け取り，符号化の後，ブロックサイズオーバーヘッドを出力する。予測サイズ符号化部１１９は，予測サイズ決定部１０３から予測サイズを受け取り，符号化の後，予測サイズオーバーヘッドを出力する。予測情報符号化部１２０は，予測手法決定部１０４から予測情報を受け取り，符号化の後，予測情報オーバーヘッドを出力する。
【００３８】
変換サイズ符号化部１２１は，変換サイズ決定部１０５から変換サイズを受け取り，符号化の後，変換サイズオーバーヘッドを出力する。量子化後ＤＣＴ係数符号化部１２２は，量子化部１０７から量子化後ＤＣＴ係数を受け取り，符号化の後，ＤＣＴオーバーヘッドを出力する。ＡＬＦ係数符号化部１２４は，ＡＬＦ係数を受け取り，符号化の後，ＡＬＦオーバーヘッドを出力する。ビットストリーム記憶部１２５は，各オーバーヘッドを格納しておく記憶部であり，シーケンス全体の符号化が終了すると，符号化結果のビットストリームを出力する。
【００３９】
符号化情報記憶部１２６は，復号装置側でも参照可能な符号化情報を格納しておく記憶部である。この符号化情報記憶部１２６が記憶する符号化情報は，ループフィルタＡ部２００やその他の各部から参照され，使用される。
【００４０】
〔映像符号化装置の処理フロー〕
図２および図３は，図１に示す映像符号化装置の処理フローチャートを示している。映像符号化装置は，以下の処理を行う。
・まず，ステップＳ１０１にて，入力シーケンスを原画像記憶部１０１に格納する。
・次に，ステップＳ１０２にて，シーケンス情報を符号化してビットストリーム記憶部１２５に格納する。
・次に，ステップＳ１０３にて，符号化対象の全フレームに対するステップＳ１１７までのループ処理を行う。
・次に，ステップＳ１０４にて，符号化対象画像の全ＣｏｄｉｎｇＵｎｉｔ（ＣＵ）に対するステップＳ１１４までのループ処理を行う。
・次に，ステップＳ１０５にて，ブロックサイズを決定し，符号化してビットストリーム記憶部１２５に格納する。
・次に，ステップＳ１０６にて，予測サイズを決定し，符号化してビットストリーム記憶部１２５に格納する。
・次に，ステップＳ１０７にて，画面内／フレーム間予測の各予測ブロックの中で，最も符号化効率が高い手法と対象ブロックの差分値を計算する。
・次に，ステップＳ１０８にて，予測情報をビットストリーム記憶部１２５に格納する。
・次に，ステップＳ１０９にて，変換サイズを決定し，符号化してビットストリーム記憶部１２５に格納する。
・次に，ステップＳ１１０にて，離散コサイン変換（ＤＣＴ）を行う。
・次に，ステップＳ１１１にて，量子化を行い，量子化後ＤＣＴ係数を符号化してビットストリーム記憶部１２５に格納する。
・次に，ステップＳ１１２にて，逆量子化と逆離散コサイン変換を行う。
・次に，ステップＳ１１３にて，ステップＳ１０７にて適用された予測ブロックと逆変換後の復号差分ブロックとを加算合成する。
・次に，ステップＳ１１４にて，復号画像記憶部１１０に加算合成した部分復号画像を格納する。
・符号化対象画像の全ＣＵに対するループ処理が終了すると，ステップＳ１１５にて，ループフィルタＡ部２００が，復号画像に符号化歪みを軽減するためのフィルタ処理を施す。この処理の詳細については，図６，図８を用いて後述する。
・次に，ステップＳ１１６にて，ＡＬＦ（Adaptive Loop Filter）を実行し，ＡＬＦ係数を符号化してビットストリーム記憶部１２５に格納する。
・次に，ステップＳ１１７にて，ＡＬＦ後復号画像をフレームバッファ１１５に格納する。
・符号化対象の全フレームに対するループ処理が終了すると，ステップＳ１１８にて，ビットストリームを出力して処理を終了する。
【００４１】
〔ループフィルタＡ部の構成例〕
図４は，図１に示す符号化装置におけるループフィルタＡ部２００とそれに関連する部分の構成例を示している。図４において，原画像記憶部１０１，復号画像記憶部１１０，ビットストリーム記憶部１２５，符号化情報記憶部１２６は，図１に示すものと同じであり，他の部分がループフィルタＡ部２００の構成要素となっている。
【００４２】
原画像記憶部１０１は，図１で説明したように符号化対象となる入力シーケンスの全画像の記憶部であり，各フレームの符号化対象画像を保持している。復号画像記憶部１１０は，時空間予測と逆量子化，逆変換後に再構成される復号画像を格納している記憶部である。ビットストリーム記憶部１２５は，符号化結果のビットストリームが格納される記憶部である。符号化情報記憶部１２６は，復号装置側でも参照可能な符号化情報を格納しておく記憶部である。この符号化情報記憶部１２６が記憶する符号化情報は，各部から参照され使用される。
【００４３】
デノイズ係数決定部２０１は，復号画像と原画像とを参照し，符号化効率が最適となるデノイズ係数を決定し，デノイズ係数を出力する。デノイズフィルタ処理部２０２は，復号画像を参照し，復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと，デノイズ対象画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い，テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去する画像処理方法を用いて，復号画像のノイズを除去するフィルタであり，このフィルタ処理により，符号化歪みを軽減したフィルタ後復号画像を生成する。
【００４４】
デブロッキングフィルタ処理部２０３は，復号画像と符号化情報を参照し，ブロック境界を平滑化した画像を生成する。
【００４５】
フィルタ適応選択部２１０は，デノイズフィルタを適用した画像とデブロッキングフィルタを適用した画像について，所定サイズのブロックごとにＲＤコストを算出し，符号化効率の高い方を１ビットのフラグを用いて選択する選択部である。特に，このフィルタ適応選択部２１０が従来技術と異なる。詳しい実施例については図５，図７を用いて後述する。
【００４６】
デノイズ係数符号化部２０４は，デノイズ係数決定部２０１で決定されたデノイズ係数を受け取り，符号化の後，デノイズ係数オーバーヘッドを出力する。フィルタ情報符号化部２０５は，フィルタ適応選択部２１０から出力されるブロックごとのフィルタ適用判定ビット群を受け取り，フィルタ適用判定ビット群オーバーヘッドを出力する。これら各オーバーヘッドはビットストリーム記憶部１２５に格納される。
【００４７】
〔フィルタ適応選択部の第１の例〕
図５に，フィルタ適応選択部の第１の例を示す。第１の例は，デノイズフィルタが適用される画素数の上限を制限する場合の例である。
【００４８】
ここでは，フィルタ対象ブロックに対してテンプレートマッチングを用いたデノイズフィルタを適用するか，一般的な符号化装置でループフィルタとして用いられているデブロッキングフィルタを適用するかを，符号化のコストを比較して低コストのほうに決定するが，以下では，このコストとしてＳＳＤを用いる例を説明する。符号化のコストとしてＳＡＤを用いることもでき，また，さらに発生符号量を考慮したＲＤコストを用いることもできる。後述する第２の例も同様である。
【００４９】
ブロックＳＳＤ算出部２１１では，前述したデノイズフィルタ処理部２０２が出力した画像におけるブロックと原画像における同位置のブロックとのＳＳＤと，デブロッキングフィルタ処理部２０３が出力した画像におけるブロックと原画像における同位置のブロックとのＳＳＤを算出し，ブロックごとにＳＳＤが低い手法を選択し，どちらを選択したかを示すビットとＳＳＤとブロック番号とを含むリストを作成する。
【００５０】
ＳＳＤ差分順ソート部２１２では，まず，上記リストにて選択された手法のブロックにおける上記ＳＳＤと，デブロッキングフィルタ処理部２０３が出力した画像のブロックにおける上記ＳＳＤ間のＳＳＤ差分を求める。
【００５１】
このＳＳＤ差分は，ブロックＳＳＤ算出部２１１においてデブロッキングフィルタを適用したときのＳＳＤが選択されている場合には，０の値となり，デノイズフィルタを適用したときのＳＳＤが選択されている場合には，負の値となる。この負の値の絶対値が大きいほど，換言すればＳＳＤ差分が低いほど，デノイズフィルタを適用したときのノイズ削減効果が大きいことになる。
【００５２】
続いて，算出されたＳＳＤ差分について昇順にソートする。すなわち，ＳＳＤ差分が低い順になるように並び替える。なお，ＳＳＤ差分の絶対値についてソートしてもよく，この場合には降順にソートすることになるが，実質的な処理内容はまったく同様である。
【００５３】
ブロック選択部２１３では，ソート情報をＳＳＤ差分が低い順に参照し，デノイズフィルタ処理部２０２が出力した画像におけるブロックがＳＳＤ算出部２１１にて選択されていた場合には，フィルタが適用された画素数をカウントする。このとき，カウント結果の画素数が所定のデノイズフィルタ許容合計画素数を超えたかどうかを，ＳＳＤ差分が低い順のブロックごとに判定する。カウント結果の画素数がデノイズフィルタ許容合計画素数を超えたとき，当該ブロックおよび後続のブロックすべてのフィルタを，デノイズフィルタからデブロッキングフィルタに変更する。すなわち，デノイズフィルタ処理部２０２が出力した画像におけるブロックが，強制的にデブロッキングフィルタ処理部２０３が出力した画像におけるブロックに置き換わるように，ブロックごとの適用フィルタを明示するビット情報（フィルタ適用判定ビットという）を変更する。すべてのブロックにおけるフィルタ選択が終了すると，フィルタ適用判定ビット群を出力する。
【００５４】
フィルタ後画像生成部２１４では，ブロックごとの適用フィルタを明示するフィルタ適用判定ビットを参照してフィルタ後の画像を生成し，フィルタ後復号画像を出力する。
【００５５】
〔第１の例の処理フロー〕
図６は，第１の例によるループフィルタＡ部の処理フローチャートである。ループフィルタＡ部２００は，復号画像を参照してループフィルタＢ部１１４にフィルタ後復号画像を受け渡すまでに以下の手順に従った処理を実行する。
・まず，ステップＳ２０１にて，復号画像と原画像を用いて符号化効率が最適になるデノイズ係数を算出し，デノイズ係数を符号化してビットストリーム記憶部１２５に格納する。
・次に，ステップＳ２０２にて，ブロックごとのループ処理により，各ブロックについてステップＳ２０３〜Ｓ２０５の処理を行う。
・ステップＳ２０３では，復号画像に対して，ステップＳ２０１で算出したデノイズ係数を用いてデノイズフィルタの処理を実行し，コスト（ＳＳＤ）を算出する。
・ステップＳ２０４では，復号画像に対して，デブロッキングフィルタを適用し，コスト（ＳＳＤ）を算出する。
・次に，ステップＳ２０５にて，ステップＳ２０３で算出したコストとステップＳ２０４で算出したコストとを比較し，コストの低いフィルタを選択し，フィルタ適用判定ビットをコストの低いほうに設定する。
・ステップＳ２０６では，終了判定処理により，以上のステップＳ２０３〜Ｓ２０５の処理をブロックが終了するまで繰り返す。
・次に，ステップＳ２０７にて，ブロックごとにフィルタ適用判定ビットのリストに設定された手法におけるブロックのコストと，デブロッキングフィルタ後のブロックのコスト間の差分を計算し，コスト差分の昇順にソートする。
・次に，ステップＳ２０８にて，コストの低い順にフィルタ適用判定ビットを参照してデノイズフィルタ適用対象のブロックを選択し，デノイズフィルタが適用される画素数をカウントする。
・ステップＳ２０９では，カウント結果の画素数がデノイズフィルタ許容合計画素数を超えたかどうかを判定し，超えた場合にはステップＳ２１１へ，超えていない場合にはステップＳ２１０へ進む。
・ステップＳ２１０では，コスト順にソートした結果のすべてのブロックに対する処理が終了したかどうかを判定し，終了した場合にはステップＳ２１２へ進み，終了していない場合にはステップＳ２０８へ戻って，次にコストの低いブロックについて同様に処理を繰り返す。
・ステップＳ２１１では，デノイズフィルタ許容合計画素数を超えたブロックと，その後のブロックのフィルタ適用判定ビットを，すべてデブロッキングフィルタに書き換える。すなわち，それ以降のブロックについては，デノイズフィルタの適用を打ち切る。
・ステップＳ２１２では，フィルタ適用判定ビットに従って，デノイズフィルタまたはデブロッキングフィルタ適用後の画像を生成し，ループフィルタＢ部１１４に出力する。また，フィルタ適用判定ビット群を符号化し，ビットストリーム記憶部１２５に出力する。
【００５６】
〔フィルタ適応選択部の第２の例〕
図７に，フィルタ適応選択部の第２の例を示す。第２の例は，デノイズフィルタの合計演算量の上限を制限する場合の例である。
【００５７】
フィルタ適応選択部２１０′において，ブロックＳＳＤ算出部２２１，ＳＳＤ差分順ソート部２２２，フィルタ後画像生成部２２４が行う処理は，それぞれ図５で説明した第１の例におけるブロックＳＳＤ算出部２１１，ＳＳＤ差分順ソート部２１２，フィルタ後画像生成部２１４が行う処理とまったく同様である。
【００５８】
第２の例では，ブロック選択部２２３が，第１の例のブロック選択部２１３と異なるので，この部分だけ説明する。ブロック選択部２２３では，ＳＳＤ差分順ソート部２２２がソートしたソート情報をＳＳＤが低い順に参照し，デノイズフィルタ処理部２０２が出力した画像におけるブロックがブロックＳＳＤ算出部２２１にて選択されていた場合には，フィルタが適用された画素における演算量をカウントする。このとき，カウント結果の演算量が所定のデノイズフィルタ許容合計演算量を超えたかどうかを，ＳＳＤが低い順のブロックごとに判定する。カウント結果の演算量がデノイズフィルタ許容合計演算量を超えたとき，当該ブロックおよび後続のブロックすべてのフィルタを，デノイズフィルタからデブロッキングフィルタに変更する。すなわち，デノイズフィルタ処理部２０２が出力した画像におけるブロックが，強制的にデブロッキングフィルタ処理部２０３が出力した画像におけるブロックに置き換わるように，フィルタ適用判定ビットを変更する。すべてのブロックにおけるフィルタ選択が終了すると，ブロックごとの適用フィルタを明示するフィルタ適用判定ビットを出力する。
【００５９】
〔第２の例の処理フロー〕
図８は，第２の例によるループフィルタＡ部の処理フローチャートである。ループフィルタＡ部２００は，復号画像を参照してループフィルタＢ部１１４にフィルタ後復号画像を受け渡すまでに以下の手順を行う。
・ステップＳ３０１からステップＳ３０７までの処理は，図６で説明したステップＳ２０１からステップＳ２０７までの処理と同様である。
・ステップＳ３０８では，コストの低い順にフィルタ適用判定ビットを参照してデノイズフィルタ適用対象のブロックを選択し，デノイズフィルタが適用される画素に対する演算量をカウントする。
・ステップＳ３０９では，カウント結果の演算量がデノイズフィルタ許容合計演算量を超えたかどうかを判定し，超えた場合にはステップＳ３１１へ，超えていない場合にはステップＳ３１０へ進む。
・ステップＳ３１０以降の処理は，図６で説明したステップＳ２１０以降の処理と同様である。
【００６０】
以上の第１の例または第２の例のようにデノイズフィルタ許容合計画素数もしくはデノイズフィルタ許容合計演算量を設定することで，デノイズフィルタによって画質を大きく高められるブロックは担保しつつ，復号装置における演算量を見積もることが可能になる。
【００６１】
復号装置では，符号化装置が出力するビットストリーム中のフィルタ適用判定ビット群を復号し，これを参照することにより，ブロックごとにデノイズフィルタの有無を切り替えて処理すればよい。
【００６２】
［ソフトウェアプログラムを用いた場合の構成例］
以上の符号化の処理は，コンピュータとソフトウェアプログラムとによっても実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも，ネットワークを通して提供することも可能である。
【００６３】
図９は，本発明をコンピュータとソフトウェアプログラムとを用いて実施する場合のシステムの構成例を示している。
【００６４】
本システムは，プログラムを実行するＣＰＵ５０と，ＣＰＵ５０がアクセスするプログラムやデータが格納されるＲＡＭ等のメモリ５１と，符号化対象の映像信号を記憶する映像信号記憶部５２と，本発明の実施形態で説明した処理をＣＰＵ５０に実行させるためのプログラムが格納されたプログラム記憶装置５３と，符号化結果のビットストリームを記憶する符号化ストリーム記憶部５４とがバスで接続された構成になっている。
【００６５】
プログラム記憶装置５３は，本発明を用いて映像信号を符号化するための画像符号化プログラム５３１を格納している。本システムが映像信号記憶部５２に格納されている映像信号を符号化する際に，画像符号化プログラム５３１がメモリ５１にロードされ，ＣＰＵ５０は，メモリ５１にロードされた画像符号化プログラム５３１の命令を逐次フェッチして実行し，映像信号記憶部５２に格納されている映像信号を，本発明の実施形態で説明した手法により符号化して，符号化結果のビットストリームを符号化ストリーム記憶部５４に格納する。または，ネットワークアダプタ等のインタフェースを介して，ビットストリームを外部装置に出力してもよい。
【符号の説明】
【００６６】
１０１  原画像記憶部
１１０  復号画像記憶部
１２５  ビットストリーム記憶部
１２６  符号化情報記憶部
２０１  デノイズ係数決定部
２０２  デノイズフィルタ処理部
２０３  デブロッキングフィルタ処理部
２０４  デノイズ係数符号化部
２０５  フィルタ情報符号化部
２１０，２１０′  フィルタ適応選択部
２１１，２２１  ブロックＳＳＤ算出部
２１２，２２２  ＳＳＤ差分順ソート部
２１３，２２３  ブロック選択部
２１４，２２４  フィルタ後画像生成部
【図１】
0005653307.tif 000002
【図２】
0005653307.tif 000003
【図３】
0005653307.tif 000004
【図４】
0005653307.tif 000005
【図５】
0005653307.tif 000006
【図６】
0005653307.tif 000007
【図７】
0005653307.tif 000008
【図８】
0005653307.tif 000009
【図９】
0005653307.tif 000010
【図１０】
0005653307.tif 000011