映像符号化/復号方法,映像符号化/復号装置およびそのプログラム
【課題】符号化効率の低下を抑えつつ,デノイズフィルタの演算量を削減する。
【解決手段】映像符号化/復号におけるループフィルタとして用いられるデノイズフィルタ処理部30において,乖離度検出部305は,復号画像を用いて,デノイズの対象画素と対象画素の周辺画素との乖離度を算出する。テンプレート形状設定部306は,乖離度が高い領域のテンプレート形状は担保し,乖離度が低い領域のテンプレート形状を小さく制限する。NLMフィルタ実行部302は,対象画素のテンプレートと探索領域内の各探索点のテンプレートとのテンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去するにあたって,テンプレートマッチングを,制限されたテンプレート形状のもとで行い,対象画素のノイズを除去する。
【解決手段】映像符号化/復号におけるループフィルタとして用いられるデノイズフィルタ処理部30において,乖離度検出部305は,復号画像を用いて,デノイズの対象画素と対象画素の周辺画素との乖離度を算出する。テンプレート形状設定部306は,乖離度が高い領域のテンプレート形状は担保し,乖離度が低い領域のテンプレート形状を小さく制限する。NLMフィルタ実行部302は,対象画素のテンプレートと探索領域内の各探索点のテンプレートとのテンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去するにあたって,テンプレートマッチングを,制限されたテンプレート形状のもとで行い,対象画素のノイズを除去する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,ブロックノイズなどを低減させるループフィルタを用いる映像符号化/復号の技術に関するものである。
【背景技術】
【0002】
本明細書において用いる各語句を,以下のように定義する。
【0003】
・「探索形状」:テンプレートマッチングの対象とする当該画素周辺の各探索点の集合体,また,その集合体が形作る形状。
【0004】
・「テンプレート形状」:テンプレートマッチングの際に当該画素と各探索点の類似度を計算する際に用いる画素群,また,その画素群が形作る形状。画素群は,当該画素周辺と各探索点周辺で同じ形状を用い,相対位置関係が同じ位置同士の画素値を比較する。
【0005】
画像処理分野において,画像撮影時のノイズや劣化画像の劣化を軽減する手法として,様々なデノイズフィルタが提案されている。中でも,Non−local means法によるデノイズフィルタ(非特許文献1参照)は,高いデノイズ効果を発揮することが知られている。Non−local means法によるデノイズフィルタを,以下,NLMフィルタという。
【0006】
図18は,NLMのフィルタの説明図である。図18において,正方形の1マスが探索点であり,これらの探索点の集合体が探索形状である。P0 はデノイズ対象画素,Ps は探索先における探索点の画素である。T0 およびTs はテンプレート形状であり,比較元のテンプレート形状T0 と探索先のテンプレート形状Ts の形状は同一である。
【0007】
NLMフィルタでは,比較元と探索先の各テンプレート形状T0 ,Ts 内の対応する各画素同士を比較して,テンプレート類似度を算出する。テンプレート類似度の計算には,一般的にSSD(Sum of Square Difference)やSAD(Sum of Absolute Difference)が用いられる。
【0008】
図19は,NLMフィルタ実行部の入出力を示す図である。NLMフィルタ実行部1000は,基本的には,デノイズ対象画像,探索形状,テンプレート形状,デノイズ係数の4つの情報を入力として,デノイズ後の結果画像を生成する。デノイズ係数は,ノイズが付与される前の原画像がある場合には,分散を代表値として与えるが,原画像がない場合には,ユーザが適当な値を設定する。
【0009】
NLMフィルタ実行部1000は,次のように各画素についてデノイズ後の画素値を算出する。以下では,テンプレート類似度の計算にSSDを用いた例を説明する。
(1)重み値合計の変数SWを0,画素値合計の変数SPを0に初期化する。
(2)探索形状内のすべての各探索点に対して,以下の処理を繰り返す。
(2−1)テンプレート類似度としてSSDを算出する。
(2−2)重み値W=exp(−SSD/デノイズ係数)
(2−3)重み値合計SW=重み値合計SW+重み値W
(2−4)画素値合計SP=画素値合計SP+重み値W×(探索点の画素値)
(3)探索形状内のすべての探索点について(2)の処理を終えたならば,デノイズ対象画素のデノイズ後の画素値を,次式により求める。
【0010】
(デノイズ後の画素値)=画素値合計SP/重み値合計SW
NLMフィルタ実行部1000は,入力されるデノイズ係数,探索形状,テンプレート形状として単一の値が与えられた場合には,デノイズ対象画像の全画素に対して,単一の値や形状でデノイズ処理を行い,画素ごとに対応付けられるデータ群が与えられた場合には,対応点ごとに値や形状を切り替えてデノイズ処理を行う。
【0011】
また,“MPEG”や“VCEG”にて現在国際標準化活動が行われている次世代映像符号化標準方式の“High Efficiency Video Coding”の雛形(Test Model)である“HM”には,符号化歪を除去するためにデブロッキングフィルタによるデノイズフィルタが搭載されている(非特許文献2参照)。
【先行技術文献】
【非特許文献】
【0012】
【非特許文献1】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.
【非特許文献2】Thomas Wiegand, Woo-Jin Han, Benjamin Bross, Jens-Rainer Ohm, Gary J. Sullivan, “WD1: Working Draft 1 of High-Efficiency Video Coding", ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 3rd Meeting: Guangzhou, CN, 7-15 October, 2010.
【発明の概要】
【発明が解決しようとする課題】
【0013】
前述のように次世代映像符号化標準方式の“High Efficiency Video Coding”の“HM”には,符号化歪を除去するためにデブロッキングフィルタによるデノイズフィルタが搭載されているが,上記NLMフィルタをHMに導入すれば,従来のデブロッキングフィルタよりも符号化効率を高めることができると考えられる。
【0014】
しかし,NLMフィルタは演算量が膨大であり,そのため,復号装置でNLMフィルタをすべての画素に対して計算すると,復号に要する計算時間が大きく増加してしまうおそれがある。
【0015】
前述したように,デノイズ対象画素一つ一つに対して,任意の探索形状内の探索点各点に対し,任意のテンプレート形状にてテンプレートマッチングを行い,テンプレート類似度の計算を行う。そのため,例えばテンプレート形状がN×Nブロック,探索形状がM×Mであると仮定すると,1画素のデノイズ計算を行うためにN2 ×M2 オーダーの演算量が必要になる。したがって,NLMフィルタを復号装置等で用いるためには,この演算量を削減する技術が必要とされる。
【0016】
本発明は,以上の課題の解決を図り,符号化効率の低下を抑えつつ,デノイズフィルタの演算量を削減する技術を提供することを目的とする。なお,ここで符号化効率としては,例えば画質と符号量から計算される国際的な評価手法の一つであるBD−rateを用いる。
【課題を解決するための手段】
【0017】
本発明は,上記課題を解決するため,復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと,復号画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い,テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去するループフィルタを用いる映像符号化または映像復号において,以下のフィルタ処理を実行することを特徴とする。
(1)復号画像を用いて,前記対象画素と対象画素の周辺画素との乖離度を算出する。
(2)前記乖離度を,前記テンプレート形状の制限に用いる指標とし,前記乖離度が高い領域のテンプレート形状は担保し,前記乖離度が低い領域のテンプレート形状を小さく制限する処理を実行する。
【0018】
また,さらに以下の(3)の処理を付け加えてもよい。
(3)処理(2)で制限したテンプレート形状において過剰に割り当てられていた領域を検出し,テンプレート形状の再設定によりテンプレート形状をさらに制限する。
【0019】
以上のように,上記処理(1),(2)により,従来は画面全体に対して固定値で一意に与えられていたテンプレート形状に対して,画素ごとにテンプレート形状を制限する処理を導入し,テンプレートマッチングにおける演算量を削減することができる。また,さらに処理(3)を実行すれば,演算量のさらなる削減が可能になる。
【0020】
これにより,映像符号化/復号における符号化効率の低下を抑えたループフィルタの演算量削減が可能となる。
【発明の効果】
【0021】
本発明によれば,映像符号化/復号におけるループフィルタ処理において,テンプレート形状を制限し,テンプレート内画素同士の比較計算を行う画素数を削減する処理を導入することにより,符号化効率の低下を抑えつつ,演算量を削減することができる。
【図面の簡単な説明】
【0022】
【図1】本発明を適用した映像符号化装置の構成例を示す図である。
【図2】映像符号化装置の処理フローチャートである。
【図3】映像符号化装置の処理フローチャートである。
【図4】本発明を適用した映像復号装置の構成例を示す図である。
【図5】映像復号装置の処理フローチャートである。
【図6】映像復号装置の処理フローチャートである。
【図7】デノイズフィルタ処理部の第1の構成例を示す図である。
【図8】デノイズフィルタ処理部の処理フローチャートである。
【図9】テンプレート形状設定部によるテンプレート形状の制限の例を説明する図である。
【図10】デノイズフィルタ処理部の第2の構成例を示す図である。
【図11】デノイズフィルタ処理部の処理フローチャートである。
【図12】乖離度検出方法の例を説明する図である。
【図13】乖離度のヒストグラムと閾値/領域設定の関係を示す図である。
【図14】積分比に応じたサンプリング数の設定の例を説明する図である。
【図15】エッジ方向検出方法の例を説明する図である。
【図16】テンプレート形状の再設定方法の例を説明する図である。
【図17】本発明をソフトウェアプログラムを用いて実施する場合のシステムの構成例を示す図である。
【図18】NLMのフィルタの説明図である。
【図19】NLMフィルタ実行部の入出力を示す図である。
【発明を実施するための形態】
【0023】
以下,図面を用いながら,本発明の実施の形態を説明する。最初に,本発明が適用される映像符号化装置および映像復号装置の例について説明する。なお,以下に示す映像符号化装置および映像復号装置は,本発明が適用される装置の一例であり,本発明は,必ずしもこれらの装置構成のものに限定されるわけではない。
【0024】
〔映像符号化装置への適用例〕
図1は,本発明を適用した映像符号化装置の構成例を示す図である。図1に示す映像符号化装置において,原画像記憶部101は,符号化対象となる入力シーケンスの全画像の記憶部であり,順次,各フレームの符号化対象画像を出力する。
【0025】
図1の映像符号化装置では,基準となる探索形状およびテンプレート形状の双方をデノイズフィルタ処理部113が固定値を持つ例を示している。また,デノイズ係数は原画像と比較して符号化効率が最適なデノイズ係数を決定し,ビットストリームにデノイズ係数オーバーヘッドとして符号化する例を示している。探索形状およびテンプレート形状のいずれか一方,または双方をユーザ設定などで外部から与える場合,復号装置に伝送する必要があるため,前記デノイズ係数と同様にオーバーヘッドとして符号化することで実現できるが,本符号化装置への適用例および復号装置への適用例では,これらの説明は省略する。
【0026】
ブロックサイズ決定部102は,所定のCodingUnitをどのブロックサイズに分割して符号化を実行するかを決定し,対象ブロックとブロックサイズを出力する。予測サイズ決定部103は,対象ブロックの画素値を予測するブロックの予測サイズを決定し,対象ブロックと予測サイズを出力する。予測手法決定部104は,対象ブロックの画素値予測を行う上で,画面内予測/フレーム間予測の各手法の中で最も符号化効率の高い手法を決定し,その手法を用いた際の予測ブロックと予測情報を出力する。予測サイズ決定部103にて出力された対象ブロックは,予測ブロックとの差分値が計算され差分ブロックとなる。
【0027】
変換サイズ決定部105は,差分ブロックを分割する変換サイズを決定し,分割した変換サイズごとの差分ブロックと変換サイズを出力する。離散コサイン変換部106では,差分ブロックに対して離散コサイン変換を適用し,DCT係数を出力する。量子化部107では,DCT係数に対して量子化を行い,量子化後DCT係数を出力する。
【0028】
逆量子化部108では,量子化後DCT係数に対して逆量子化を行い,DCT係数に戻す。逆離散コサイン変換部109では,DCT係数に対して逆離散コサイン変換を適用し,復号差分ブロックを出力する。復号差分ブロックは予測ブロックと加算合成され,部分復号画像となる。復号画像記憶部110は,部分復号画像を格納し,復号装置側でも参照可能な画像を格納しておく記憶部である。画面内予測部111は,復号画像記憶部110に格納されている部分復号画像を参照し,予測ブロックと予測情報とを出力する。
【0029】
デノイズ係数決定部112は,復号画像と原画像とを参照し,符号化効率が最適となるデノイズ係数を決定し,デノイズ係数を出力する。
【0030】
デノイズフィルタ処理部113は,復号画像を参照し,復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと,デノイズ対象画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い,テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去する画像処理方法を用いて,復号画像のノイズを除去するフィルタであり,このフィルタ処理により,符号化歪みを軽減したフィルタ後復号画像を生成する。特に,このデノイズフィルタ処理部113の部分が従来技術と異なる。詳しい実施例については後述する。
【0031】
ALF(Adaptive Loop Filter)処理部114では,フィルタ後復号画像に対して原画像に近づけるようにフィルタ処理を行い,ALF後復号画像とALF係数を出力する。フレームバッファ115は,ALF後復号画像を格納しておく記憶部である。フレーム間予測部116は,フレームバッファ115を参照し,予測ブロックと予測情報とを出力する。
【0032】
シーケンス情報符号化部117は,映像の縦横画素数など,入力シーケンス固有の情報を符号化の後,ビットストリーム記憶部125に対してシーケンス情報オーバーヘッドを出力する。ブロックサイズ符号化部118は,ブロックサイズ決定部102から予測サイズを受け取り,符号化の後,ブロックサイズオーバーヘッドを出力する。予測サイズ符号化部119は,予測サイズ決定部103から予測サイズを受け取り,符号化の後,予測サイズオーバーヘッドを出力する。予測情報符号化部120は,予測手法決定部104から予測情報を受け取り,符号化の後,予測情報オーバーヘッドを出力する。
【0033】
変換サイズ符号化部121は,変換サイズ決定部105から変換サイズを受け取り,符号化の後,変換サイズオーバーヘッドを出力する。量子化後DCT係数符号化部122は,量子化部107から量子化後DCT係数を受け取り,符号化の後,DCTオーバーヘッドを出力する。デノイズ係数符号化部123は,デノイズ係数決定部112で決定されたデノイズ係数を受け取り,符号化の後,デノイズ係数オーバーヘッドを出力する。ALF係数符号化部124は,ALF係数を受け取り,符号化の後,ALFオーバーヘッドを出力する。ビットストリーム記憶部125は,各オーバーヘッドを格納しておく記憶部であり,シーケンス全体の符号化が終了すると,符号化結果のビットストリームを出力する。
【0034】
符号化情報記憶部126は,復号装置側でも参照可能な符号化情報を格納しておく記憶部である。この符号化情報記憶部126が記憶する符号化情報は,デノイズフィルタ処理部113やその他の各部から参照され,使用される。
【0035】
〔映像符号化装置の処理フロー〕
図2および図3は,図1に示す映像符号化装置の処理フローチャートを示している。映像符号化装置は,以下の処理を行う。
・まず,ステップS101にて,入力シーケンスを原画像記憶部101に格納する。
・次に,ステップS102にて,シーケンス情報を符号化してビットストリーム記憶部125に格納する。
・次に,ステップS103にて,符号化対象の全フレームに対するステップS118までのループ処理を行う。
・次に,ステップS104にて,符号化対象画像の全CodingUnit(CU)に対するステップS114までのループ処理を行う。
・次に,ステップS105にて,ブロックサイズを決定し,符号化してビットストリーム記憶部125に格納する。
・次に,ステップS106にて,予測サイズを決定し,符号化してビットストリーム記憶部125に格納する。
・次に,ステップS107にて,画面内/フレーム間予測の各予測ブロックの中で,最も符号化効率が高い手法と対象ブロックの差分値を計算する。
・次に,ステップS108にて,予測情報をビットストリーム記憶部125に格納する。
・次に,ステップS109にて,変換サイズを決定し,符号化してビットストリーム記憶部125に格納する。
・次に,ステップS110にて,離散コサイン変換(DCT)を行う。
・次に,ステップS111にて,量子化を行い,量子化後DCT係数を符号化してビットストリーム記憶部125に格納する。
・次に,ステップS112にて,逆量子化と逆離散コサイン変換を行う。
・次に,ステップS113にて,ステップS107にて適用された予測ブロックと逆変換後の復号差分ブロックとを加算合成する。
・次に。ステップS114にて,復号画像記憶部110に加算合成した部分復号画像を格納する。
・符号化対象画像の全CUに対するループ処理が終了すると,ステップS115にて,復号画像と原画像を用いて符号化効率が最適になるデノイズ係数を算出する。
・次に,ステップS116にて,復号画像に対して,算出したデノイズ係数を用いて本手法を用いたデノイズフィルタの処理を実行し,デノイズ係数を符号化してビットストリーム記憶部125に格納する。
・次に,ステップS117にて,ALF(Adaptive Loop Filter)を実行し,ALF係数を符号化してビットストリーム記憶部125に格納する。
・次に,ステップS118にて,ALF後復号画像をフレームバッファ115に格納する。
・符号化対象の全フレームに対するループ処理が終了すると,ステップS119にて,ビットストリームを出力して処理を終了する。
【0036】
〔映像復号装置への適用例〕
図4は,本発明を適用した映像復号装置の構成例を示す図である。以下,図4に示す映像復号装置について説明する。ビットストリーム記憶部201は,入力ビットストリームの記憶部であり,必要に応じて各オーバーヘッド情報を出力する。シーケンス情報復号部202は,シーケンス情報オーバーヘッドを受け,映像の縦横画素数など,シーケンス固有の情報を復号する。
【0037】
ブロックサイズ復号部203は,ブロックサイズオーバーヘッドを受け,所定のCodingUnitがどのブロックサイズで分割して符号化されているのかを示す情報を復号する。予測サイズ復号部204は,予測サイズオーバーヘッドを受け,映像符号化装置で適用された予測サイズを出力する。
【0038】
予測情報復号部205は,予測情報オーバーヘッドを受け,予測情報を出力する。変換サイズ復号部206は,変換サイズオーバーヘッドを受け,映像符号化装置で適用された変換サイズを出力する。量子化後DCT係数復号部207は,変換サイズとDCTオーバーヘッドを受け,量子化後DCT係数を出力する。デノイズ係数復号部208は,デノイズ係数オーバーヘッドを受け,デノイズ係数を出力する。ALF係数復号部209は,ALFオーバーヘッドを受け,ALF係数を出力する。
【0039】
逆量子化部210は,量子化後DCT係数に対して逆量子化を行い,DCT係数に戻す。逆離散コサイン変換部211は,DCT係数に対して逆離散コサイン変換を適用して差分信号を出力する。予測ブロック生成部212は,予測情報と部分復号画像,参照フレームを受け,予測ブロックを生成する。部分復号画像生成部213は,予測画像と復号差分信号の加算合成を行い,部分復号画像を生成する。復号画像記憶部214は,部分復号画像を格納しておく記憶部である。
【0040】
デノイズフィルタ処理部215は,復号画像を参照し,復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと,デノイズ対象画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い,テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去する画像処理方法を用いて,復号画像のノイズを除去するフィルタであり,このフィルタ処理により,ブロック境界の歪みを軽減したフィルタ後復号画像を生成する。特に,このデノイズフィルタ処理部215の部分が従来技術と異なる。詳しい実施例については後述する。
【0041】
ALF処理部216では,ALF係数を受け取り,フィルタ後復号画像に対して原画像に近づけるようにフィルタ処理を行い,ALF後復号画像を出力する。なお,この画像が復号時における最終復号画像となる。フレームバッファ217は,ALF後復号画像を格納しておく記憶部である。符号化情報記憶部218は,符号化情報を格納しておく記憶部であり,この符号化情報記憶部218が記憶する符号化情報は,デノイズフィルタ処理部215やその他の各部から参照され,使用される。
【0042】
〔映像復号装置の処理フロー〕
図5および図6は,図4に示す映像復号装置の処理フローチャートを示している。映像復号装置は,以下の処理を行う。
・まず,ステップS201にて,入力ビットストリームをビットストリーム記憶部201に格納する。
・次に,ステップS202にて,シーケンス情報を復号する。
・次に,ステップS203にて,復号対象の全フレームに対するステップS214までのループ処理を行う。
・次に,ステップS204にて,復号対象画像の全CodingUnit(CU)に対するステップS211までのループ処理を行う。
・次に,ステップS205にて,ブロックサイズを復号する。
・次に,ステップS206にて,予測サイズを復号する。
・次に,ステップS207にて,予測情報を復号し,予測ブロックを生成する。
・次に,ステップS208にて,変換サイズを復号する。
・次に,ステップS209にて,量子化後DCT係数を復号する。
・次に,ステップS210にて,逆量子化と逆離散コサイン変換を行う。
・次に,ステップS211にて,ステップS207の予測ブロックとステップS210の結果を用いて復号ブロックを生成し,復号画像記憶部214に格納する。
・符号化対象画像の全CUに対するループ処理が終了すると,ステップS212にて,デノイズ係数を復号し,復号画像に対して,本手法を用いたデノイズフィルタの処理を実行する。
・次に,ステップS213にて,ALF係数を復号し,ALF処理を実行する。
・次に,ステップS214にて,ALF後復号画像をフレームバッファ217に格納する。
・符号化対象の全フレームに対するループ処理が終了すると,ステップS215にて,フレームバッファ217の各フレームをフレーム番号順に出力して出力シーケンスを生成し,処理を終了する。
【0043】
〔デノイズフィルタ処理部の例1〕
図7は,デノイズフィルタ処理部の第1の構成例を示す図である。図7に示すデノイズフィルタ処理部30は,前述したステップ図1に示す映像符号化装置におけるデノイズフィルタ処理部113として用いられるループフィルタである。また,前述した図4に示す映像復号装置におけるデノイズフィルタ処理部215としても用いられる。
【0044】
デノイズフィルタ処理部30は,デノイズ係数設定部301,NLMフィルタ実行部302,探索形状記憶部303,テンプレート形状記憶部304,乖離度検出部305,テンプレート形状設定部306を備える。
【0045】
デノイズ係数設定部301は,予め設定された基準となるデノイズ係数と符号化情報とを用いて,デノイズ対象画像の各画素位置に対応付けられるデノイズ係数を生成する。一般に中〜低レートでは,予測処理単位のPredictionUnitや変換処理単位のTransformUnitの各ユニット境界にてブロックノイズが目立ち始めるため,符号化情報を用いて,これら境界近傍の画素位置におけるデノイズ係数をブロック内部のデノイズ係数より高く設定する。
【0046】
探索形状記憶部303とテンプレート形状記憶部304は,それぞれの形状を固定値で記憶している記憶部であり,乖離度検出部305とテンプレート形状設定部306は,画素ごとにテンプレート形状を制限する処理を導入するために設けられている。従来のNLMフィルタでは,テンプレート形状については一般に画面全体に対して固定値で与えられていたのに対し,本実施形態では,NLMフィルタ実行部302によるNLMフィルタの前処理として,乖離度検出部305により,デノイズ対象画像である復号画像の各画素に対して周辺画素との乖離度を検出し,テンプレート形状設定部306により,乖離度検出部305が検出した乖離度を多段階に分類し,乖離度の強〜弱に応じて当該画素のテンプレート形状(大〜小)をそれぞれ設定する。
【0047】
NLMフィルタ実行部302は,デノイズ対象画像,デノイズ係数設定部301が設定した画素ごとのデノイズ係数,テンプレート形状設定部306が設定した画素ごとのテンプレート形状,および与えられた探索形状を入力し,デノイズ後の画像を出力する。NLMフィルタ実行部302が行う処理は,非特許文献1に示されている従来のNLMフィルタの処理と同様である。
【0048】
基準となるデノイズ係数,探索形状,テンプレート形状については,映像符号化装置または映像復号装置に対してユーザが設定した情報を入力してもよいし,予め固定値を記憶しておき,その値を用いてもよい。本実施形態は,デノイズ係数を入力とし,探索形状およびテンプレート形状は,予め各記憶部303,304にて固定値を記憶している例である。探索形状およびテンプレート形状を任意にユーザが設定する場合,映像符号化装置では,これらの情報をデノイズ係数と同様に符号化し,映像復号装置ではこれらの情報を復号することで実現する。
【0049】
図8は,図7に示すデノイズフィルタ処理部30の処理フローチャートである。まず,ステップS301では,デノイズフィルタ処理部30が,外部からの入力により,デノイズ係数,デノイズ対象画像,符号化情報を取得する。デノイズ対象画像については,復号画像記憶部110(符号化の場合)または復号画像記憶部214(復号の場合)から入力し,符号化情報は,符号化情報記憶部126(符号化の場合)または符号化情報記憶部218(復号の場合)から入力する。
【0050】
基準となるデノイズ係数,探索形状,テンプレート形状については,映像符号化装置または映像復号装置に対してユーザが設定した情報を入力してもよいし,予め固定値を記憶しておき,その値を用いてもよい。
【0051】
ステップS302では,デノイズ係数設定部301が,入力した基準となるデノイズ係数と符号化情報とから,デノイズ対象画像の各画素位置に対応付けられるデノイズ係数を設定する。
【0052】
次に,ステップS303では,乖離度検出部305が,デノイズ対象画像を入力とし,対象画素と周辺画素との乖離度を計算し,各画素に対応付けられた乖離度群を出力する。ステップS304では,テンプレート形状設定部306が,乖離度群と所定のテンプレート形状を用いて,各画素に対応付けられた制限されたテンプレート形状を設定し出力する。制限する際には,入力したテンプレート形状を最大形状として,乖離度が低いほどテンプレート形状が小さくなるように適用する。
【0053】
最後に,ステップS305では,NLMフィルタ実行部302が,設定された情報に応じてNLMフィルタを実行し,フィルタ後の結果画像を出力する。
【0054】
図9は,テンプレート形状設定部306によるテンプレート形状の制限の例を説明する図である。例えば,入力または設定されたテンプレート形状が,図9(A)に示すように,5×5のブロックであったとする。このテンプレート形状を,乖離度に応じて,例えば図9(B)に示すように制限する。テンプレート類似度としてSSDを用いる場合,元のテンプレート形状では,加算24回,減算25回,乗算25回の演算が必要であるのに対し,図9(B)に示すようにテンプレート形状を制限することにより,加算12回,減算13回,乗算13回の演算で済むようになり,演算量が約50%削減される。
【0055】
デノイズフィルタ処理部30による処理は,符号化によるノイズの除去が目的であり,一般の画像処理のように画面全体に一様にノイズがかかったノイズを除去するような想定は行わない。符号化によるノイズ(符号化歪み)は,大きく以下の種類に分類できる。
1.平滑化による模様の消失
2.DCTによるエッジ周辺のモスキートノイズ
3.PredictionUnitやTransformUnitの各Unit境界に生じるブロックノイズ
このうち,平滑化によって損失した模様の復元は非常に困難であるため,本実施形態では対象としない。このような画素値に変化のない平滑化した領域に対してNLMフィルタを適用すると,計算前後でほとんど画素信号は変化しないが,演算量は必要になる。本実施形態では,周辺画素との乖離度を計算することで,このように平滑化した領域にも割り当てられていた演算量を削減する。
【0056】
〔デノイズフィルタ処理部の例2〕
図10は,デノイズフィルタ処理部の第2の構成例を示す図である。図10に示すデノイズフィルタ処理部31は,前述した図1に示す映像符号化装置におけるデノイズフィルタ処理部113として用いられるループフィルタである。また,前述した図4に示す映像復号装置におけるデノイズフィルタ処理部215としても用いられる。
【0057】
デノイズフィルタ処理部31は,デノイズ係数設定部311,NLMフィルタ実行部312,探索形状記憶部313,テンプレート形状記憶部314,乖離度検出部315,テンプレート形状設定部316,エッジ方向検出部317,テンプレート形状再設定部318を備える。
【0058】
このデノイズフィルタ処理部31は,エッジ方向検出部317およびテンプレート形状再設定部318が備わっている点が前述した図7のデノイズフィルタ処理部30と異なる。他の部分は,デノイズフィルタ処理部30と同様の機能を持つ。
【0059】
エッジ方向検出部317は,デノイズ対象画像のエッジ方向を検出し,デノイズ対象画像における各画素に対応付けられたエッジ方向群を出力する。エッジ方向の例としては,方向ごとに番号付けされた番号群や角度群などが挙げられる。
【0060】
テンプレート形状再設定部318は,エッジ方向検出部317が検出したエッジ方向群,乖離度検出部315が検出した乖離度群,符号化情報を参照し,テンプレート形状設定部316にて過剰に割り当てられたテンプレート形状をさらに制限するための再設定を行う。具体的には,PredictionUnitやTransformUnitの各Unit境界に発生しやすいブロックノイズ周辺に過剰に割り当てられがちなテンプレート形状をさらに制限する。
【0061】
図11は,図10に示すデノイズフィルタ処理部31の処理フローチャートである。まず,ステップS311では,デノイズフィルタ処理部31が,外部からの入力により,デノイズ係数,デノイズ対象画像,符号化情報を取得する。
【0062】
ステップS312では,デノイズ係数設定部311が,入力した基準となるデノイズ係数と符号化情報とから,デノイズ対象画像の各画素位置に対応付けられるデノイズ係数を設定する。次に,ステップS313では,乖離度検出部315が,デノイズ対象画像を入力とし,対象画素と周辺画素との乖離度を計算し,各画素に対応付けられた乖離度群を出力する。ステップS314では,テンプレート形状設定部316が,乖離度群と所定のテンプレート形状を用いて,各画素に対応付けられた制限されたテンプレート形状を設定し出力する。制限する際には,入力したテンプレート形状を最大形状として,乖離度が低いほどテンプレート形状が小さくなるように適用する。以上のステップS311〜S313の処理は,図8で説明したデノイズフィルタ処理部30の処理と同様である。
【0063】
ステップS315では,エッジ方向検出部317が,デノイズ対象画像における各点のエッジ方向を検出し,エッジ方向群を出力する。ステップS316では,テンプレート形状再設定部318が,符号化情報と,エッジ方向検出部317が検出したエッジ方向群と,乖離度検出部315が検出した乖離度群とを用いて,テンプレート形状の再設定を行うことによりステップS314で設定したテンプレート形状の過剰割り当てを削減する。最後に,ステップS317では,NLMフィルタ実行部312が,設定された情報に応じてNLMフィルタを実行し,フィルタ後の結果画像を出力する。
【0064】
〔乖離度検出方法の例〕
乖離度検出部305,315における乖離度検出方法の一例を説明する。図12は,乖離度検出方法の例を説明する図である。図12(A)に示す画素zをデノイズの対象画素とし,その周辺画素に対してa〜xの番号を付与した場合について説明する。ここでは,当該画素zと周辺画素(a〜x)との差分絶対値に距離による減衰を考慮した係数を乗算した加重和を乖離度の指標(DiffIntensity )として用いる。すなわち,DiffIntensity は,次式により算出される。
【0065】
DiffIntensity =A(|h−z|+|l−z|+|m−z|+|q−z|)
+B(|g−z|+|i−z|+|p−z|+|r−z|)
+C(|c−z|+|k−z|+|n−z|+|v−z|)
+D(|b−z|+|d−z|+|f−z|+|j−z|+
|o−z|+|s−z|+|u−z|+|w−z|)
+E(|a−z|+|e−z|+|t−z|+|x−z|)
式中のA〜Eは,当該画素と周辺画素との距離に応じてあらかじめ定められた係数であり,任意に設定される。これらの係数A〜Eの設定には,例えば,距離に応じたガウス分布などを適用することができる。なお,A〜Eも全点を対象とする必要はなく,例えばDを0に設定すれば,フィルタ演算量を削減することができる。
【0066】
乖離度検出部305,315は,すべてのDiffIntensity の算出を終えたら,乖離度群を下位のテンプレート形状設定部306,316に出力する。
【0067】
他に,乖離度の算出に,ラプラシアンフィルタの絶対値やSSD(Sum of Square Difference),分散などの適用も考えられる。
【0068】
さらに演算量削減のため,復号画像に対して任意サイズのN×Nブロックそれぞれに対して数点のサンプリング点を計算対象として設定し,当該画素位置における乖離度の代表値として用いる手法も考えられる。
【0069】
図12(B)は,サンプリング数の間引きの例を示している。この例では,2×2ブロック分割にて,左上,右下の画素を計算対象としている。この例の乖離度を,DiffIntensity 2x2 と表すと,DiffIntensity 2x2 は,次式によって算出される。
【0070】
DiffIntensity 2x2 =(Aの画素位置におけるDiffIntensity
+Dの画素位置におけるDiffIntensity )/2
A〜Dの画素位置における乖離度の参照要求があった場合,上記DiffIntensity 2x2 を代表値として用いる。この例では,乖離度計算に要する演算量は約半分になる。
【0071】
〔テンプレート形状設定方法の例1〕
テンプレート形状設定部306,316におけるテンプレート形状設定方法の例の一つとして,乖離度検出部305,315が算出した乖離度群を用い,装置から与えられる基準となるテンプレート形状が3×3ブロックの全点を対象とする場合のテンプレート形状の削減の例を挙げる。
【0072】
図13は,乖離度のヒストグラムと閾値/領域設定の関係を示す図である。自然画像を対象とするとき,乖離度群のヒストグラムは値の低い側に偏り,乖離度が強くなるに従って出現頻度は低くなる。また,量子化パラメータの値が大きくなるに従ってヒストグラムは乖離度小の方に偏る特性を持つ。
【0073】
テンプレート形状設定部306,316は,入力した乖離度群のヒストグラムを作成し,ヒストグラムの面積比が均一になるように4分割して,それぞれの領域α〜δのテンプレート形状TmpShape を以下のように設定する。領域α,βの境界の値をThα,領域β,γの境界の値をThβ,領域γ,δの境界の値をThγとする。
(1)乖離度が閾値Thαより小さいの場合
TmpShape =None(要素数0)とする。
【0074】
TmpShape がNoneの場合,テンプレートマッチングは行わない。
(2)乖離度が閾値Thα以上でThβ未満の場合
TmpShape =Point(要素数1)とする。
【0075】
TmpShape がPointの場合,対象画素と探索点の画素についてのSSDだけを算出する。
(3)乖離度が閾値Thβ以上でThγ未満の場合
TmpShape =Cross(要素数5)とする。
【0076】
TmpShape がCrossの場合,対象画素に上下左右の4画素を加えた5画素のテンプレート形状でマッチングを行う。
(4)乖離度が閾値Thγ以上の場合
TmpShape =Block3x3 (要素数9)とする。
【0077】
TmpShape がBlock3x3 の場合,3×3ブロックのテンプレート形状の全点でマッチングを行う。
【0078】
本手法の導入により,全探索点に対して3×3ブロックのテンプレート形状の全点でマッチングを行う手法と比較してそれぞれ演算量は,以下のようになる。
【0079】
領域α:演算量 0
領域β:演算量 1/9
領域γ:演算量 5/9
領域δ:演算量 1
領域が画面全体の1/4ずつを占めるため,合計演算量は5/12となり,理論値では約1/2弱まで演算量を削減できることになる。
【0080】
このように,乖離度の大きさによってテンプレート形状を決めるのは,以下の理由による。乖離度は強いエッジ周辺で強い信号が現れやすく,続いて弱いエッジやDCTによるモスキートノイズ,撮像時のノイズなどが小〜中程度の信号として現れる。NLMフィルタは,エッジ周辺で特に効果を発揮する特性を持つため,乖離度が大きい領域(領域δ)に対して大型のテンプレート形状を割り当てることでデノイズ効果の悪化を抑制する。
【0081】
〔テンプレート形状設定方法の例2〕
テンプレート形状設定部306,316におけるテンプレート形状設定方法の他の例として,乖離度検出部305,315が算出した乖離度群を用い,装置から与えられる基準となるテンプレート形状がN×Nブロックの全点を対象とする場合のテンプレート形状の削減の例を挙げる。
【0082】
図14は,積分比に応じたサンプリング数の設定の例を説明する図である。テンプレート形状設定部306,316は,乖離度群のヒストグラムを作成し,ヒストグラム上のデノイズの対象画素の乖離度をThIntensity として乖離度の分布を表す関数f(DiffIntensity) の積分値の比率でテンプレート形状を設定する。
【0083】
すなわち,図14(A)に示すように,基準となるテンプレート形状がN×Nブロックとして与えられたとき,削減後のテンプレート形状の設定形状を円とし,その直径を次のように定める。
【0084】
設定形状(直径)
=N×[{f(DiffIntensity) の0からThIntensity までの積分値}
÷{f(DiffIntensity) の0から最大値Maxまでの積分値}]
これにより,乖離度が小さい場合には,小さなテンプレート形状,乖離度が大きい場合には,大きなテンプレート形状を用いて,効果的なテンプレートマッチングを行うことができる。
【0085】
〔エッジ方向検出方法の例1〕
エッジ方向検出部317におけるエッジ方向検出方法の例の一つとして,復号画像に対してソーベルフィルタを適用することによってエッジ方向を検出し,方向ごとに割り当てた番号を出力する例を挙げる。
【0086】
図15は,そのエッジ方向検出方法の例を説明する図である。周辺画素に対して,図15(A)に示すソーベルオペレータを適用し,検出したエッジ方向に応じて,図15(B)に示すように,番号VecIndex(0〜10)を割り当てる。このとき,閾値Thを1つ設定し,x軸,y軸それぞれの成分(dx,dy)の絶対値和が閾値Th以下であれば,該当画素には強いエッジが存在しないものとしてVecIndexに0番を割り当て,番号をエッジ方向群として出力する。
【0087】
図15(C)は,その番号を割り当てるアルゴリズムを示している。
・|dx|+|dy|<Thならば,VecIndex=0とする。
・上記に該当せず,dy=0ならば,VecIndex=6とする。
・上記に該当せず,dx/dy<−8.0であれば,VecIndex=6とする。
・上記に該当せず,dx/dy<−2.0であれば,VecIndex=7とする。
・上記に該当せず,dx/dy<−1.0であれば,VecIndex=8とする。
・上記に該当せず,dx/dy<−0.5であれば,VecIndex=9とする。
・上記に該当せず,dx/dy<−0.125であれば,VecIndex=10とする。
・上記に該当せず,dx/dy<0.125であれば,VecIndex=1とする。
・上記に該当せず,dx/dy<0.5であれば,VecIndex=2とする。
・上記に該当せず,dx/dy<1.0であれば,VecIndex=3とする。
・上記に該当せず,dx/dy<2.0であれば,VecIndex=4とする。
・上記に該当せず,dx/dy<8.0であれば,VecIndex=5とする。
・上記のどれにも該当しない場合,VecIndex=6とする。
【0088】
DCTによるモスキートノイズや撮像時のノイズの影響を軽減するため,また,演算量削減のため,入力とするデノイズ対象画像に対して等倍画像ではなく,縦横1/Nに縮小した画像に対するソーベルフィルタの適用も効果的である。
【0089】
1/Nに縮小した画像に対してソーベルフィルタを適用した場合,算出したソーベルフィルタの出力結果は,縮小時に使用した複数の画素群の代表値として扱う。
【0090】
〔エッジ方向検出方法の例2〕
エッジ方向検出部317におけるエッジ方向検出方法の他の例として,デノイズ対象画像に対してソーベルフィルタを適用することによってエッジ方向を検出し,ラジアン角(Radian)を出力する例を挙げる。周辺画素に対して,前述した図15(A)に示すソーベルオペレータを適用し,x軸,y軸のそれぞれの成分(dx,dy)からarctan(−π/2〜π/2)を用いてラジアン角を計算する。このとき,dx,dyの絶対値和が閾値Th以下であれば,arctan(−π/2〜π/2)の出力範囲以外の値(EXatan:例えば100など) を設定する。
【0091】
すなわち,ラジアン角(Radian)を次のように定める。
・|dx|+|dy|<Thの場合,Radian=EXatanとする。
・上記に該当せず,dy=0であれば,Radian=π/2とする。
・他の場合,Radian=arctan(dx/dy)とする。
【0092】
〔テンプレート形状再設定方法の例〕
テンプレート形状再設定部318におけるテンプレート形状再設定方法の例の一つとして,図9にて示したテンプレート形状設定部316が設定したテンプレート形状を,図12にて示した乖離度検出部315が出力した乖離度群,図15にて示したエッジ方向群および符号化情報を用いて再設定し,テンプレート形状の大きさをさらに削減する例を説明する。
【0093】
図16は,テンプレート形状の再設定方法を説明する図である。まず,符号化情報からDCTなどの変換処理の単位であるTransformUnitのUnitサイズを取得し,図16(A)に示すように,各Unit外縁の近傍N画素を設定対象の領域に設定する。それ以外の領域は,前述したテンプレート形状設定部316の設定結果をそのまま用いるものとする。
【0094】
図16(B)に示すように,エッジ方向群を用いた場合,顕著なブロックノイズのUnit外縁上下部分ではVecIndexは1に,Unit外縁左右部分ではVecIndexは6に偏るという傾向があり,この境界部分の乖離度は高い値が検出される。また,ブロックノイズが顕著に現れる高い量子化パラメータ域では,TransformUnit内部は比較的平坦な領域が現れやすいという傾向がある。
【0095】
つまり,量子化パラメータQPの高い中〜低レート域において,図16(A)における設定対象の領域で,図16(B)に示すような特徴を満たす場合,ブロックノイズが発生している可能性が高い。これらVecIndexが1もしくは6に偏るブロック境界の画素位置に対しては大型のテンプレート形状で計算しても,小型のテンプレート形状で計算しても,結果はほとんど変わらない。しかし,ブロック境界で顕著なエッジが検出された場合には,大型のテンプレート形状が設定されてしまうため,非効率である。そのため,テンプレート形状再設定部318により,テンプレート形状の見直しを行うことで非効率であるとういう問題の解決を図る。
【0096】
具体的な解決手法としては,例えば以下の手法が挙げられる。量子化パラメータQPに対する所定の閾値Th1QP,Th2QP(ただし,Th1QP<Th2QP)と,乖離度DiffIntensity に対する所定の閾値Th1Diff,Th2Diff(ただしTh1Diff<Th2Diff)とを用いて,画素位置ごとに以下のような設定を行う。このようにすれば,デノイズ効果の悪化を抑制しつつ演算量を削減することができる。ただし,Th1Diff,Th2Diffは,それぞれ量子化パラメータQPに応じて変動するものとする。
【0097】
下記の条件を満たす場合,後述する再設定分岐のアルゴリズムによって,テンプレート形状TmpShape を設定する。
[条件1]:Unit外縁上下部分の設定対象領域における画素位置で,対象画素位置のVecIndexが1(横方向のエッジ)もしくは0(平坦な領域),かつ,Unit内側方向に隣接するVecIndexが0(平坦な領域)の場合。
[条件2]:または,Unit外縁左右部分の設定対象領域における画素位置で,対象画素位置のVecIndexが6(縦方向のエッジ)もしくは0(平坦な領域),かつ,Unit内側方向に隣接するVecIndexが0(平坦な領域)の場合。
【0098】
「再設定分岐のアルゴリズム」の例
(1)量子化パラメータQP>閾値Th2QP,
かつ,テンプレート形状TmpShape がBlock3x3 またはCross,
かつ,乖離度DiffIntensity >閾値Th1Diffの場合,
TmpShape をPoint(要素数1)に再設定。
(2)上記以外で,量子化パラメータQP>閾値Th1QP,
かつ,テンプレート形状TmpShape がBlock3x3 ,
かつ,乖離度DiffIntensity >閾値Th2Diffの場合,
TmpShape をPoint(要素数1)に再設定。
(3)上記以外で,量子化パラメータQP>閾値Th1QP,
かつ,テンプレート形状TmpShape がBlock3x3 ,
かつ,乖離度DiffIntensity >閾値Th1Diffの場合,
TmpShape をCross(要素数5)に再設定。
(4)上記以外で,量子化パラメータQP>閾値Th1QP,
かつ,テンプレート形状TmpShape がCross,
かつ,乖離度DiffIntensity >Th1Diffの場合,
TmpShape をPoint(要素数1)に再設定。
(5)上記(1)〜(4)以外の場合,再設定しないで終了。
【0099】
図16(C)における四隅の領域E,F,G,Hは,ブロックノイズによって生成されるVecIndexに予測が立たないため,それぞれ以下の条件を満たす場合に,領域内すべての画素位置に対して,前述した(1)〜(5)の再設定分岐によるテンプレート形状の再設定を行う。
・領域E:直右に隣接する領域Aの画素群もしくは直下に隣接する領域Cの画素群に上記条件を満たす画素がある。
・領域F:直左に隣接する領域Aの画素群もしくは直下に隣接する領域Dの画素群に上記条件を満たす画素がある。
・領域G:直右に隣接する領域Bの画素群もしくは直上に隣接する領域Cの画素群に上記条件を満たす画素がある。
・領域H:直左に隣接する領域Bの画素群もしくは直上に隣接する領域Dの画素群に上記条件を満たす画素がある。
【0100】
本実施形態では,ブロック境界の画素群に対して演算量を削減する例を示したが,反対にブロック内部の画素群に対してはすべてTmpShape =Noneを設定し,ブロック境界のみにデノイズフィルタを適用することで,演算量を大きく削減するような実施も可能である。
【0101】
〔演算量削減効果〕
次世代映像符号化標準方式に従来のNLMフィルタ(Non−local means法によるデノイズフィルタ)を組み込んだ手法と比較して,本手法によるデノイズフィルタを適用した場合,標準的な映像の符号化時に,PSNRの悪化を抑えつつ上記フィルタに要する演算量を大幅に削減できることが確認できた。
【0102】
[ソフトウェアプログラムを用いた場合の構成例]
以上の画像処理,映像符号化,復号の処理は,コンピュータとソフトウェアプログラムとによっても実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
【0103】
図17は,本発明を,コンピュータとソフトウェアプログラムとを用いて実施する場合のシステムの構成例を示している。
【0104】
本システムは,プログラムを実行するCPU50と,CPU50がアクセスするプログラムやデータが格納されるRAM等のメモリ51と,符号化対象の映像信号,または復号画像の映像信号を記憶する映像信号記憶部52と,本発明の実施形態で説明した処理をCPU50に実行させるためのプログラムが格納されたプログラム記憶装置53と,符号化結果のビットストリームまたは復号対象のビットストリームを記憶する符号化ストリーム記憶部54とがバスで接続された構成になっている。
【0105】
プログラム記憶装置53は,本発明を用いて映像信号を符号化するための映像符号化プログラム531,本発明を用いて符号化ビットストリームを復号するための映像復号プログラム532のいずれかを格納している。これらのプログラムの双方を格納していてもよい。
【0106】
また,本システムが映像符号化装置として用いられる場合,映像符号化プログラム531がメモリ51にロードされ,CPU50は,メモリ51にロードされた映像符号化プログラム531の命令を逐次フェッチして実行し,映像信号記憶部52に格納されている映像信号を,本発明の実施形態で説明した手法により符号化して,符号化結果のビットストリームを符号化ストリーム記憶部54に格納する。または,ネットワークアダプタ等のインタフェースを介して,ビットストリームを外部装置に出力してもよい。
【0107】
また,本システムが映像復号装置として用いられる場合,映像復号プログラム532がメモリ51にロードされ,CPU50は,メモリ51にロードされた映像復号プログラム532の命令を逐次フェッチして実行し,符号化ストリーム記憶部54に格納されているビットストリームを,本発明の実施形態で説明した手法により復号して,復号結果の映像信号を映像信号記憶部52に格納する。または,外部の再生装置に復号結果の映像信号を出力する。
【符号の説明】
【0108】
30,31,113,215 デノイズフィルタ処理部
301,311 デノイズ係数設定部
302,312 NLMフィルタ実行部
305,315 乖離度検出部
306,316 テンプレート形状設定部
317 エッジ方向検出部
318 テンプレート形状再設定部
【技術分野】
【0001】
本発明は,ブロックノイズなどを低減させるループフィルタを用いる映像符号化/復号の技術に関するものである。
【背景技術】
【0002】
本明細書において用いる各語句を,以下のように定義する。
【0003】
・「探索形状」:テンプレートマッチングの対象とする当該画素周辺の各探索点の集合体,また,その集合体が形作る形状。
【0004】
・「テンプレート形状」:テンプレートマッチングの際に当該画素と各探索点の類似度を計算する際に用いる画素群,また,その画素群が形作る形状。画素群は,当該画素周辺と各探索点周辺で同じ形状を用い,相対位置関係が同じ位置同士の画素値を比較する。
【0005】
画像処理分野において,画像撮影時のノイズや劣化画像の劣化を軽減する手法として,様々なデノイズフィルタが提案されている。中でも,Non−local means法によるデノイズフィルタ(非特許文献1参照)は,高いデノイズ効果を発揮することが知られている。Non−local means法によるデノイズフィルタを,以下,NLMフィルタという。
【0006】
図18は,NLMのフィルタの説明図である。図18において,正方形の1マスが探索点であり,これらの探索点の集合体が探索形状である。P0 はデノイズ対象画素,Ps は探索先における探索点の画素である。T0 およびTs はテンプレート形状であり,比較元のテンプレート形状T0 と探索先のテンプレート形状Ts の形状は同一である。
【0007】
NLMフィルタでは,比較元と探索先の各テンプレート形状T0 ,Ts 内の対応する各画素同士を比較して,テンプレート類似度を算出する。テンプレート類似度の計算には,一般的にSSD(Sum of Square Difference)やSAD(Sum of Absolute Difference)が用いられる。
【0008】
図19は,NLMフィルタ実行部の入出力を示す図である。NLMフィルタ実行部1000は,基本的には,デノイズ対象画像,探索形状,テンプレート形状,デノイズ係数の4つの情報を入力として,デノイズ後の結果画像を生成する。デノイズ係数は,ノイズが付与される前の原画像がある場合には,分散を代表値として与えるが,原画像がない場合には,ユーザが適当な値を設定する。
【0009】
NLMフィルタ実行部1000は,次のように各画素についてデノイズ後の画素値を算出する。以下では,テンプレート類似度の計算にSSDを用いた例を説明する。
(1)重み値合計の変数SWを0,画素値合計の変数SPを0に初期化する。
(2)探索形状内のすべての各探索点に対して,以下の処理を繰り返す。
(2−1)テンプレート類似度としてSSDを算出する。
(2−2)重み値W=exp(−SSD/デノイズ係数)
(2−3)重み値合計SW=重み値合計SW+重み値W
(2−4)画素値合計SP=画素値合計SP+重み値W×(探索点の画素値)
(3)探索形状内のすべての探索点について(2)の処理を終えたならば,デノイズ対象画素のデノイズ後の画素値を,次式により求める。
【0010】
(デノイズ後の画素値)=画素値合計SP/重み値合計SW
NLMフィルタ実行部1000は,入力されるデノイズ係数,探索形状,テンプレート形状として単一の値が与えられた場合には,デノイズ対象画像の全画素に対して,単一の値や形状でデノイズ処理を行い,画素ごとに対応付けられるデータ群が与えられた場合には,対応点ごとに値や形状を切り替えてデノイズ処理を行う。
【0011】
また,“MPEG”や“VCEG”にて現在国際標準化活動が行われている次世代映像符号化標準方式の“High Efficiency Video Coding”の雛形(Test Model)である“HM”には,符号化歪を除去するためにデブロッキングフィルタによるデノイズフィルタが搭載されている(非特許文献2参照)。
【先行技術文献】
【非特許文献】
【0012】
【非特許文献1】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.
【非特許文献2】Thomas Wiegand, Woo-Jin Han, Benjamin Bross, Jens-Rainer Ohm, Gary J. Sullivan, “WD1: Working Draft 1 of High-Efficiency Video Coding", ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 3rd Meeting: Guangzhou, CN, 7-15 October, 2010.
【発明の概要】
【発明が解決しようとする課題】
【0013】
前述のように次世代映像符号化標準方式の“High Efficiency Video Coding”の“HM”には,符号化歪を除去するためにデブロッキングフィルタによるデノイズフィルタが搭載されているが,上記NLMフィルタをHMに導入すれば,従来のデブロッキングフィルタよりも符号化効率を高めることができると考えられる。
【0014】
しかし,NLMフィルタは演算量が膨大であり,そのため,復号装置でNLMフィルタをすべての画素に対して計算すると,復号に要する計算時間が大きく増加してしまうおそれがある。
【0015】
前述したように,デノイズ対象画素一つ一つに対して,任意の探索形状内の探索点各点に対し,任意のテンプレート形状にてテンプレートマッチングを行い,テンプレート類似度の計算を行う。そのため,例えばテンプレート形状がN×Nブロック,探索形状がM×Mであると仮定すると,1画素のデノイズ計算を行うためにN2 ×M2 オーダーの演算量が必要になる。したがって,NLMフィルタを復号装置等で用いるためには,この演算量を削減する技術が必要とされる。
【0016】
本発明は,以上の課題の解決を図り,符号化効率の低下を抑えつつ,デノイズフィルタの演算量を削減する技術を提供することを目的とする。なお,ここで符号化効率としては,例えば画質と符号量から計算される国際的な評価手法の一つであるBD−rateを用いる。
【課題を解決するための手段】
【0017】
本発明は,上記課題を解決するため,復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと,復号画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い,テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去するループフィルタを用いる映像符号化または映像復号において,以下のフィルタ処理を実行することを特徴とする。
(1)復号画像を用いて,前記対象画素と対象画素の周辺画素との乖離度を算出する。
(2)前記乖離度を,前記テンプレート形状の制限に用いる指標とし,前記乖離度が高い領域のテンプレート形状は担保し,前記乖離度が低い領域のテンプレート形状を小さく制限する処理を実行する。
【0018】
また,さらに以下の(3)の処理を付け加えてもよい。
(3)処理(2)で制限したテンプレート形状において過剰に割り当てられていた領域を検出し,テンプレート形状の再設定によりテンプレート形状をさらに制限する。
【0019】
以上のように,上記処理(1),(2)により,従来は画面全体に対して固定値で一意に与えられていたテンプレート形状に対して,画素ごとにテンプレート形状を制限する処理を導入し,テンプレートマッチングにおける演算量を削減することができる。また,さらに処理(3)を実行すれば,演算量のさらなる削減が可能になる。
【0020】
これにより,映像符号化/復号における符号化効率の低下を抑えたループフィルタの演算量削減が可能となる。
【発明の効果】
【0021】
本発明によれば,映像符号化/復号におけるループフィルタ処理において,テンプレート形状を制限し,テンプレート内画素同士の比較計算を行う画素数を削減する処理を導入することにより,符号化効率の低下を抑えつつ,演算量を削減することができる。
【図面の簡単な説明】
【0022】
【図1】本発明を適用した映像符号化装置の構成例を示す図である。
【図2】映像符号化装置の処理フローチャートである。
【図3】映像符号化装置の処理フローチャートである。
【図4】本発明を適用した映像復号装置の構成例を示す図である。
【図5】映像復号装置の処理フローチャートである。
【図6】映像復号装置の処理フローチャートである。
【図7】デノイズフィルタ処理部の第1の構成例を示す図である。
【図8】デノイズフィルタ処理部の処理フローチャートである。
【図9】テンプレート形状設定部によるテンプレート形状の制限の例を説明する図である。
【図10】デノイズフィルタ処理部の第2の構成例を示す図である。
【図11】デノイズフィルタ処理部の処理フローチャートである。
【図12】乖離度検出方法の例を説明する図である。
【図13】乖離度のヒストグラムと閾値/領域設定の関係を示す図である。
【図14】積分比に応じたサンプリング数の設定の例を説明する図である。
【図15】エッジ方向検出方法の例を説明する図である。
【図16】テンプレート形状の再設定方法の例を説明する図である。
【図17】本発明をソフトウェアプログラムを用いて実施する場合のシステムの構成例を示す図である。
【図18】NLMのフィルタの説明図である。
【図19】NLMフィルタ実行部の入出力を示す図である。
【発明を実施するための形態】
【0023】
以下,図面を用いながら,本発明の実施の形態を説明する。最初に,本発明が適用される映像符号化装置および映像復号装置の例について説明する。なお,以下に示す映像符号化装置および映像復号装置は,本発明が適用される装置の一例であり,本発明は,必ずしもこれらの装置構成のものに限定されるわけではない。
【0024】
〔映像符号化装置への適用例〕
図1は,本発明を適用した映像符号化装置の構成例を示す図である。図1に示す映像符号化装置において,原画像記憶部101は,符号化対象となる入力シーケンスの全画像の記憶部であり,順次,各フレームの符号化対象画像を出力する。
【0025】
図1の映像符号化装置では,基準となる探索形状およびテンプレート形状の双方をデノイズフィルタ処理部113が固定値を持つ例を示している。また,デノイズ係数は原画像と比較して符号化効率が最適なデノイズ係数を決定し,ビットストリームにデノイズ係数オーバーヘッドとして符号化する例を示している。探索形状およびテンプレート形状のいずれか一方,または双方をユーザ設定などで外部から与える場合,復号装置に伝送する必要があるため,前記デノイズ係数と同様にオーバーヘッドとして符号化することで実現できるが,本符号化装置への適用例および復号装置への適用例では,これらの説明は省略する。
【0026】
ブロックサイズ決定部102は,所定のCodingUnitをどのブロックサイズに分割して符号化を実行するかを決定し,対象ブロックとブロックサイズを出力する。予測サイズ決定部103は,対象ブロックの画素値を予測するブロックの予測サイズを決定し,対象ブロックと予測サイズを出力する。予測手法決定部104は,対象ブロックの画素値予測を行う上で,画面内予測/フレーム間予測の各手法の中で最も符号化効率の高い手法を決定し,その手法を用いた際の予測ブロックと予測情報を出力する。予測サイズ決定部103にて出力された対象ブロックは,予測ブロックとの差分値が計算され差分ブロックとなる。
【0027】
変換サイズ決定部105は,差分ブロックを分割する変換サイズを決定し,分割した変換サイズごとの差分ブロックと変換サイズを出力する。離散コサイン変換部106では,差分ブロックに対して離散コサイン変換を適用し,DCT係数を出力する。量子化部107では,DCT係数に対して量子化を行い,量子化後DCT係数を出力する。
【0028】
逆量子化部108では,量子化後DCT係数に対して逆量子化を行い,DCT係数に戻す。逆離散コサイン変換部109では,DCT係数に対して逆離散コサイン変換を適用し,復号差分ブロックを出力する。復号差分ブロックは予測ブロックと加算合成され,部分復号画像となる。復号画像記憶部110は,部分復号画像を格納し,復号装置側でも参照可能な画像を格納しておく記憶部である。画面内予測部111は,復号画像記憶部110に格納されている部分復号画像を参照し,予測ブロックと予測情報とを出力する。
【0029】
デノイズ係数決定部112は,復号画像と原画像とを参照し,符号化効率が最適となるデノイズ係数を決定し,デノイズ係数を出力する。
【0030】
デノイズフィルタ処理部113は,復号画像を参照し,復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと,デノイズ対象画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い,テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去する画像処理方法を用いて,復号画像のノイズを除去するフィルタであり,このフィルタ処理により,符号化歪みを軽減したフィルタ後復号画像を生成する。特に,このデノイズフィルタ処理部113の部分が従来技術と異なる。詳しい実施例については後述する。
【0031】
ALF(Adaptive Loop Filter)処理部114では,フィルタ後復号画像に対して原画像に近づけるようにフィルタ処理を行い,ALF後復号画像とALF係数を出力する。フレームバッファ115は,ALF後復号画像を格納しておく記憶部である。フレーム間予測部116は,フレームバッファ115を参照し,予測ブロックと予測情報とを出力する。
【0032】
シーケンス情報符号化部117は,映像の縦横画素数など,入力シーケンス固有の情報を符号化の後,ビットストリーム記憶部125に対してシーケンス情報オーバーヘッドを出力する。ブロックサイズ符号化部118は,ブロックサイズ決定部102から予測サイズを受け取り,符号化の後,ブロックサイズオーバーヘッドを出力する。予測サイズ符号化部119は,予測サイズ決定部103から予測サイズを受け取り,符号化の後,予測サイズオーバーヘッドを出力する。予測情報符号化部120は,予測手法決定部104から予測情報を受け取り,符号化の後,予測情報オーバーヘッドを出力する。
【0033】
変換サイズ符号化部121は,変換サイズ決定部105から変換サイズを受け取り,符号化の後,変換サイズオーバーヘッドを出力する。量子化後DCT係数符号化部122は,量子化部107から量子化後DCT係数を受け取り,符号化の後,DCTオーバーヘッドを出力する。デノイズ係数符号化部123は,デノイズ係数決定部112で決定されたデノイズ係数を受け取り,符号化の後,デノイズ係数オーバーヘッドを出力する。ALF係数符号化部124は,ALF係数を受け取り,符号化の後,ALFオーバーヘッドを出力する。ビットストリーム記憶部125は,各オーバーヘッドを格納しておく記憶部であり,シーケンス全体の符号化が終了すると,符号化結果のビットストリームを出力する。
【0034】
符号化情報記憶部126は,復号装置側でも参照可能な符号化情報を格納しておく記憶部である。この符号化情報記憶部126が記憶する符号化情報は,デノイズフィルタ処理部113やその他の各部から参照され,使用される。
【0035】
〔映像符号化装置の処理フロー〕
図2および図3は,図1に示す映像符号化装置の処理フローチャートを示している。映像符号化装置は,以下の処理を行う。
・まず,ステップS101にて,入力シーケンスを原画像記憶部101に格納する。
・次に,ステップS102にて,シーケンス情報を符号化してビットストリーム記憶部125に格納する。
・次に,ステップS103にて,符号化対象の全フレームに対するステップS118までのループ処理を行う。
・次に,ステップS104にて,符号化対象画像の全CodingUnit(CU)に対するステップS114までのループ処理を行う。
・次に,ステップS105にて,ブロックサイズを決定し,符号化してビットストリーム記憶部125に格納する。
・次に,ステップS106にて,予測サイズを決定し,符号化してビットストリーム記憶部125に格納する。
・次に,ステップS107にて,画面内/フレーム間予測の各予測ブロックの中で,最も符号化効率が高い手法と対象ブロックの差分値を計算する。
・次に,ステップS108にて,予測情報をビットストリーム記憶部125に格納する。
・次に,ステップS109にて,変換サイズを決定し,符号化してビットストリーム記憶部125に格納する。
・次に,ステップS110にて,離散コサイン変換(DCT)を行う。
・次に,ステップS111にて,量子化を行い,量子化後DCT係数を符号化してビットストリーム記憶部125に格納する。
・次に,ステップS112にて,逆量子化と逆離散コサイン変換を行う。
・次に,ステップS113にて,ステップS107にて適用された予測ブロックと逆変換後の復号差分ブロックとを加算合成する。
・次に。ステップS114にて,復号画像記憶部110に加算合成した部分復号画像を格納する。
・符号化対象画像の全CUに対するループ処理が終了すると,ステップS115にて,復号画像と原画像を用いて符号化効率が最適になるデノイズ係数を算出する。
・次に,ステップS116にて,復号画像に対して,算出したデノイズ係数を用いて本手法を用いたデノイズフィルタの処理を実行し,デノイズ係数を符号化してビットストリーム記憶部125に格納する。
・次に,ステップS117にて,ALF(Adaptive Loop Filter)を実行し,ALF係数を符号化してビットストリーム記憶部125に格納する。
・次に,ステップS118にて,ALF後復号画像をフレームバッファ115に格納する。
・符号化対象の全フレームに対するループ処理が終了すると,ステップS119にて,ビットストリームを出力して処理を終了する。
【0036】
〔映像復号装置への適用例〕
図4は,本発明を適用した映像復号装置の構成例を示す図である。以下,図4に示す映像復号装置について説明する。ビットストリーム記憶部201は,入力ビットストリームの記憶部であり,必要に応じて各オーバーヘッド情報を出力する。シーケンス情報復号部202は,シーケンス情報オーバーヘッドを受け,映像の縦横画素数など,シーケンス固有の情報を復号する。
【0037】
ブロックサイズ復号部203は,ブロックサイズオーバーヘッドを受け,所定のCodingUnitがどのブロックサイズで分割して符号化されているのかを示す情報を復号する。予測サイズ復号部204は,予測サイズオーバーヘッドを受け,映像符号化装置で適用された予測サイズを出力する。
【0038】
予測情報復号部205は,予測情報オーバーヘッドを受け,予測情報を出力する。変換サイズ復号部206は,変換サイズオーバーヘッドを受け,映像符号化装置で適用された変換サイズを出力する。量子化後DCT係数復号部207は,変換サイズとDCTオーバーヘッドを受け,量子化後DCT係数を出力する。デノイズ係数復号部208は,デノイズ係数オーバーヘッドを受け,デノイズ係数を出力する。ALF係数復号部209は,ALFオーバーヘッドを受け,ALF係数を出力する。
【0039】
逆量子化部210は,量子化後DCT係数に対して逆量子化を行い,DCT係数に戻す。逆離散コサイン変換部211は,DCT係数に対して逆離散コサイン変換を適用して差分信号を出力する。予測ブロック生成部212は,予測情報と部分復号画像,参照フレームを受け,予測ブロックを生成する。部分復号画像生成部213は,予測画像と復号差分信号の加算合成を行い,部分復号画像を生成する。復号画像記憶部214は,部分復号画像を格納しておく記憶部である。
【0040】
デノイズフィルタ処理部215は,復号画像を参照し,復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと,デノイズ対象画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い,テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去する画像処理方法を用いて,復号画像のノイズを除去するフィルタであり,このフィルタ処理により,ブロック境界の歪みを軽減したフィルタ後復号画像を生成する。特に,このデノイズフィルタ処理部215の部分が従来技術と異なる。詳しい実施例については後述する。
【0041】
ALF処理部216では,ALF係数を受け取り,フィルタ後復号画像に対して原画像に近づけるようにフィルタ処理を行い,ALF後復号画像を出力する。なお,この画像が復号時における最終復号画像となる。フレームバッファ217は,ALF後復号画像を格納しておく記憶部である。符号化情報記憶部218は,符号化情報を格納しておく記憶部であり,この符号化情報記憶部218が記憶する符号化情報は,デノイズフィルタ処理部215やその他の各部から参照され,使用される。
【0042】
〔映像復号装置の処理フロー〕
図5および図6は,図4に示す映像復号装置の処理フローチャートを示している。映像復号装置は,以下の処理を行う。
・まず,ステップS201にて,入力ビットストリームをビットストリーム記憶部201に格納する。
・次に,ステップS202にて,シーケンス情報を復号する。
・次に,ステップS203にて,復号対象の全フレームに対するステップS214までのループ処理を行う。
・次に,ステップS204にて,復号対象画像の全CodingUnit(CU)に対するステップS211までのループ処理を行う。
・次に,ステップS205にて,ブロックサイズを復号する。
・次に,ステップS206にて,予測サイズを復号する。
・次に,ステップS207にて,予測情報を復号し,予測ブロックを生成する。
・次に,ステップS208にて,変換サイズを復号する。
・次に,ステップS209にて,量子化後DCT係数を復号する。
・次に,ステップS210にて,逆量子化と逆離散コサイン変換を行う。
・次に,ステップS211にて,ステップS207の予測ブロックとステップS210の結果を用いて復号ブロックを生成し,復号画像記憶部214に格納する。
・符号化対象画像の全CUに対するループ処理が終了すると,ステップS212にて,デノイズ係数を復号し,復号画像に対して,本手法を用いたデノイズフィルタの処理を実行する。
・次に,ステップS213にて,ALF係数を復号し,ALF処理を実行する。
・次に,ステップS214にて,ALF後復号画像をフレームバッファ217に格納する。
・符号化対象の全フレームに対するループ処理が終了すると,ステップS215にて,フレームバッファ217の各フレームをフレーム番号順に出力して出力シーケンスを生成し,処理を終了する。
【0043】
〔デノイズフィルタ処理部の例1〕
図7は,デノイズフィルタ処理部の第1の構成例を示す図である。図7に示すデノイズフィルタ処理部30は,前述したステップ図1に示す映像符号化装置におけるデノイズフィルタ処理部113として用いられるループフィルタである。また,前述した図4に示す映像復号装置におけるデノイズフィルタ処理部215としても用いられる。
【0044】
デノイズフィルタ処理部30は,デノイズ係数設定部301,NLMフィルタ実行部302,探索形状記憶部303,テンプレート形状記憶部304,乖離度検出部305,テンプレート形状設定部306を備える。
【0045】
デノイズ係数設定部301は,予め設定された基準となるデノイズ係数と符号化情報とを用いて,デノイズ対象画像の各画素位置に対応付けられるデノイズ係数を生成する。一般に中〜低レートでは,予測処理単位のPredictionUnitや変換処理単位のTransformUnitの各ユニット境界にてブロックノイズが目立ち始めるため,符号化情報を用いて,これら境界近傍の画素位置におけるデノイズ係数をブロック内部のデノイズ係数より高く設定する。
【0046】
探索形状記憶部303とテンプレート形状記憶部304は,それぞれの形状を固定値で記憶している記憶部であり,乖離度検出部305とテンプレート形状設定部306は,画素ごとにテンプレート形状を制限する処理を導入するために設けられている。従来のNLMフィルタでは,テンプレート形状については一般に画面全体に対して固定値で与えられていたのに対し,本実施形態では,NLMフィルタ実行部302によるNLMフィルタの前処理として,乖離度検出部305により,デノイズ対象画像である復号画像の各画素に対して周辺画素との乖離度を検出し,テンプレート形状設定部306により,乖離度検出部305が検出した乖離度を多段階に分類し,乖離度の強〜弱に応じて当該画素のテンプレート形状(大〜小)をそれぞれ設定する。
【0047】
NLMフィルタ実行部302は,デノイズ対象画像,デノイズ係数設定部301が設定した画素ごとのデノイズ係数,テンプレート形状設定部306が設定した画素ごとのテンプレート形状,および与えられた探索形状を入力し,デノイズ後の画像を出力する。NLMフィルタ実行部302が行う処理は,非特許文献1に示されている従来のNLMフィルタの処理と同様である。
【0048】
基準となるデノイズ係数,探索形状,テンプレート形状については,映像符号化装置または映像復号装置に対してユーザが設定した情報を入力してもよいし,予め固定値を記憶しておき,その値を用いてもよい。本実施形態は,デノイズ係数を入力とし,探索形状およびテンプレート形状は,予め各記憶部303,304にて固定値を記憶している例である。探索形状およびテンプレート形状を任意にユーザが設定する場合,映像符号化装置では,これらの情報をデノイズ係数と同様に符号化し,映像復号装置ではこれらの情報を復号することで実現する。
【0049】
図8は,図7に示すデノイズフィルタ処理部30の処理フローチャートである。まず,ステップS301では,デノイズフィルタ処理部30が,外部からの入力により,デノイズ係数,デノイズ対象画像,符号化情報を取得する。デノイズ対象画像については,復号画像記憶部110(符号化の場合)または復号画像記憶部214(復号の場合)から入力し,符号化情報は,符号化情報記憶部126(符号化の場合)または符号化情報記憶部218(復号の場合)から入力する。
【0050】
基準となるデノイズ係数,探索形状,テンプレート形状については,映像符号化装置または映像復号装置に対してユーザが設定した情報を入力してもよいし,予め固定値を記憶しておき,その値を用いてもよい。
【0051】
ステップS302では,デノイズ係数設定部301が,入力した基準となるデノイズ係数と符号化情報とから,デノイズ対象画像の各画素位置に対応付けられるデノイズ係数を設定する。
【0052】
次に,ステップS303では,乖離度検出部305が,デノイズ対象画像を入力とし,対象画素と周辺画素との乖離度を計算し,各画素に対応付けられた乖離度群を出力する。ステップS304では,テンプレート形状設定部306が,乖離度群と所定のテンプレート形状を用いて,各画素に対応付けられた制限されたテンプレート形状を設定し出力する。制限する際には,入力したテンプレート形状を最大形状として,乖離度が低いほどテンプレート形状が小さくなるように適用する。
【0053】
最後に,ステップS305では,NLMフィルタ実行部302が,設定された情報に応じてNLMフィルタを実行し,フィルタ後の結果画像を出力する。
【0054】
図9は,テンプレート形状設定部306によるテンプレート形状の制限の例を説明する図である。例えば,入力または設定されたテンプレート形状が,図9(A)に示すように,5×5のブロックであったとする。このテンプレート形状を,乖離度に応じて,例えば図9(B)に示すように制限する。テンプレート類似度としてSSDを用いる場合,元のテンプレート形状では,加算24回,減算25回,乗算25回の演算が必要であるのに対し,図9(B)に示すようにテンプレート形状を制限することにより,加算12回,減算13回,乗算13回の演算で済むようになり,演算量が約50%削減される。
【0055】
デノイズフィルタ処理部30による処理は,符号化によるノイズの除去が目的であり,一般の画像処理のように画面全体に一様にノイズがかかったノイズを除去するような想定は行わない。符号化によるノイズ(符号化歪み)は,大きく以下の種類に分類できる。
1.平滑化による模様の消失
2.DCTによるエッジ周辺のモスキートノイズ
3.PredictionUnitやTransformUnitの各Unit境界に生じるブロックノイズ
このうち,平滑化によって損失した模様の復元は非常に困難であるため,本実施形態では対象としない。このような画素値に変化のない平滑化した領域に対してNLMフィルタを適用すると,計算前後でほとんど画素信号は変化しないが,演算量は必要になる。本実施形態では,周辺画素との乖離度を計算することで,このように平滑化した領域にも割り当てられていた演算量を削減する。
【0056】
〔デノイズフィルタ処理部の例2〕
図10は,デノイズフィルタ処理部の第2の構成例を示す図である。図10に示すデノイズフィルタ処理部31は,前述した図1に示す映像符号化装置におけるデノイズフィルタ処理部113として用いられるループフィルタである。また,前述した図4に示す映像復号装置におけるデノイズフィルタ処理部215としても用いられる。
【0057】
デノイズフィルタ処理部31は,デノイズ係数設定部311,NLMフィルタ実行部312,探索形状記憶部313,テンプレート形状記憶部314,乖離度検出部315,テンプレート形状設定部316,エッジ方向検出部317,テンプレート形状再設定部318を備える。
【0058】
このデノイズフィルタ処理部31は,エッジ方向検出部317およびテンプレート形状再設定部318が備わっている点が前述した図7のデノイズフィルタ処理部30と異なる。他の部分は,デノイズフィルタ処理部30と同様の機能を持つ。
【0059】
エッジ方向検出部317は,デノイズ対象画像のエッジ方向を検出し,デノイズ対象画像における各画素に対応付けられたエッジ方向群を出力する。エッジ方向の例としては,方向ごとに番号付けされた番号群や角度群などが挙げられる。
【0060】
テンプレート形状再設定部318は,エッジ方向検出部317が検出したエッジ方向群,乖離度検出部315が検出した乖離度群,符号化情報を参照し,テンプレート形状設定部316にて過剰に割り当てられたテンプレート形状をさらに制限するための再設定を行う。具体的には,PredictionUnitやTransformUnitの各Unit境界に発生しやすいブロックノイズ周辺に過剰に割り当てられがちなテンプレート形状をさらに制限する。
【0061】
図11は,図10に示すデノイズフィルタ処理部31の処理フローチャートである。まず,ステップS311では,デノイズフィルタ処理部31が,外部からの入力により,デノイズ係数,デノイズ対象画像,符号化情報を取得する。
【0062】
ステップS312では,デノイズ係数設定部311が,入力した基準となるデノイズ係数と符号化情報とから,デノイズ対象画像の各画素位置に対応付けられるデノイズ係数を設定する。次に,ステップS313では,乖離度検出部315が,デノイズ対象画像を入力とし,対象画素と周辺画素との乖離度を計算し,各画素に対応付けられた乖離度群を出力する。ステップS314では,テンプレート形状設定部316が,乖離度群と所定のテンプレート形状を用いて,各画素に対応付けられた制限されたテンプレート形状を設定し出力する。制限する際には,入力したテンプレート形状を最大形状として,乖離度が低いほどテンプレート形状が小さくなるように適用する。以上のステップS311〜S313の処理は,図8で説明したデノイズフィルタ処理部30の処理と同様である。
【0063】
ステップS315では,エッジ方向検出部317が,デノイズ対象画像における各点のエッジ方向を検出し,エッジ方向群を出力する。ステップS316では,テンプレート形状再設定部318が,符号化情報と,エッジ方向検出部317が検出したエッジ方向群と,乖離度検出部315が検出した乖離度群とを用いて,テンプレート形状の再設定を行うことによりステップS314で設定したテンプレート形状の過剰割り当てを削減する。最後に,ステップS317では,NLMフィルタ実行部312が,設定された情報に応じてNLMフィルタを実行し,フィルタ後の結果画像を出力する。
【0064】
〔乖離度検出方法の例〕
乖離度検出部305,315における乖離度検出方法の一例を説明する。図12は,乖離度検出方法の例を説明する図である。図12(A)に示す画素zをデノイズの対象画素とし,その周辺画素に対してa〜xの番号を付与した場合について説明する。ここでは,当該画素zと周辺画素(a〜x)との差分絶対値に距離による減衰を考慮した係数を乗算した加重和を乖離度の指標(DiffIntensity )として用いる。すなわち,DiffIntensity は,次式により算出される。
【0065】
DiffIntensity =A(|h−z|+|l−z|+|m−z|+|q−z|)
+B(|g−z|+|i−z|+|p−z|+|r−z|)
+C(|c−z|+|k−z|+|n−z|+|v−z|)
+D(|b−z|+|d−z|+|f−z|+|j−z|+
|o−z|+|s−z|+|u−z|+|w−z|)
+E(|a−z|+|e−z|+|t−z|+|x−z|)
式中のA〜Eは,当該画素と周辺画素との距離に応じてあらかじめ定められた係数であり,任意に設定される。これらの係数A〜Eの設定には,例えば,距離に応じたガウス分布などを適用することができる。なお,A〜Eも全点を対象とする必要はなく,例えばDを0に設定すれば,フィルタ演算量を削減することができる。
【0066】
乖離度検出部305,315は,すべてのDiffIntensity の算出を終えたら,乖離度群を下位のテンプレート形状設定部306,316に出力する。
【0067】
他に,乖離度の算出に,ラプラシアンフィルタの絶対値やSSD(Sum of Square Difference),分散などの適用も考えられる。
【0068】
さらに演算量削減のため,復号画像に対して任意サイズのN×Nブロックそれぞれに対して数点のサンプリング点を計算対象として設定し,当該画素位置における乖離度の代表値として用いる手法も考えられる。
【0069】
図12(B)は,サンプリング数の間引きの例を示している。この例では,2×2ブロック分割にて,左上,右下の画素を計算対象としている。この例の乖離度を,DiffIntensity 2x2 と表すと,DiffIntensity 2x2 は,次式によって算出される。
【0070】
DiffIntensity 2x2 =(Aの画素位置におけるDiffIntensity
+Dの画素位置におけるDiffIntensity )/2
A〜Dの画素位置における乖離度の参照要求があった場合,上記DiffIntensity 2x2 を代表値として用いる。この例では,乖離度計算に要する演算量は約半分になる。
【0071】
〔テンプレート形状設定方法の例1〕
テンプレート形状設定部306,316におけるテンプレート形状設定方法の例の一つとして,乖離度検出部305,315が算出した乖離度群を用い,装置から与えられる基準となるテンプレート形状が3×3ブロックの全点を対象とする場合のテンプレート形状の削減の例を挙げる。
【0072】
図13は,乖離度のヒストグラムと閾値/領域設定の関係を示す図である。自然画像を対象とするとき,乖離度群のヒストグラムは値の低い側に偏り,乖離度が強くなるに従って出現頻度は低くなる。また,量子化パラメータの値が大きくなるに従ってヒストグラムは乖離度小の方に偏る特性を持つ。
【0073】
テンプレート形状設定部306,316は,入力した乖離度群のヒストグラムを作成し,ヒストグラムの面積比が均一になるように4分割して,それぞれの領域α〜δのテンプレート形状TmpShape を以下のように設定する。領域α,βの境界の値をThα,領域β,γの境界の値をThβ,領域γ,δの境界の値をThγとする。
(1)乖離度が閾値Thαより小さいの場合
TmpShape =None(要素数0)とする。
【0074】
TmpShape がNoneの場合,テンプレートマッチングは行わない。
(2)乖離度が閾値Thα以上でThβ未満の場合
TmpShape =Point(要素数1)とする。
【0075】
TmpShape がPointの場合,対象画素と探索点の画素についてのSSDだけを算出する。
(3)乖離度が閾値Thβ以上でThγ未満の場合
TmpShape =Cross(要素数5)とする。
【0076】
TmpShape がCrossの場合,対象画素に上下左右の4画素を加えた5画素のテンプレート形状でマッチングを行う。
(4)乖離度が閾値Thγ以上の場合
TmpShape =Block3x3 (要素数9)とする。
【0077】
TmpShape がBlock3x3 の場合,3×3ブロックのテンプレート形状の全点でマッチングを行う。
【0078】
本手法の導入により,全探索点に対して3×3ブロックのテンプレート形状の全点でマッチングを行う手法と比較してそれぞれ演算量は,以下のようになる。
【0079】
領域α:演算量 0
領域β:演算量 1/9
領域γ:演算量 5/9
領域δ:演算量 1
領域が画面全体の1/4ずつを占めるため,合計演算量は5/12となり,理論値では約1/2弱まで演算量を削減できることになる。
【0080】
このように,乖離度の大きさによってテンプレート形状を決めるのは,以下の理由による。乖離度は強いエッジ周辺で強い信号が現れやすく,続いて弱いエッジやDCTによるモスキートノイズ,撮像時のノイズなどが小〜中程度の信号として現れる。NLMフィルタは,エッジ周辺で特に効果を発揮する特性を持つため,乖離度が大きい領域(領域δ)に対して大型のテンプレート形状を割り当てることでデノイズ効果の悪化を抑制する。
【0081】
〔テンプレート形状設定方法の例2〕
テンプレート形状設定部306,316におけるテンプレート形状設定方法の他の例として,乖離度検出部305,315が算出した乖離度群を用い,装置から与えられる基準となるテンプレート形状がN×Nブロックの全点を対象とする場合のテンプレート形状の削減の例を挙げる。
【0082】
図14は,積分比に応じたサンプリング数の設定の例を説明する図である。テンプレート形状設定部306,316は,乖離度群のヒストグラムを作成し,ヒストグラム上のデノイズの対象画素の乖離度をThIntensity として乖離度の分布を表す関数f(DiffIntensity) の積分値の比率でテンプレート形状を設定する。
【0083】
すなわち,図14(A)に示すように,基準となるテンプレート形状がN×Nブロックとして与えられたとき,削減後のテンプレート形状の設定形状を円とし,その直径を次のように定める。
【0084】
設定形状(直径)
=N×[{f(DiffIntensity) の0からThIntensity までの積分値}
÷{f(DiffIntensity) の0から最大値Maxまでの積分値}]
これにより,乖離度が小さい場合には,小さなテンプレート形状,乖離度が大きい場合には,大きなテンプレート形状を用いて,効果的なテンプレートマッチングを行うことができる。
【0085】
〔エッジ方向検出方法の例1〕
エッジ方向検出部317におけるエッジ方向検出方法の例の一つとして,復号画像に対してソーベルフィルタを適用することによってエッジ方向を検出し,方向ごとに割り当てた番号を出力する例を挙げる。
【0086】
図15は,そのエッジ方向検出方法の例を説明する図である。周辺画素に対して,図15(A)に示すソーベルオペレータを適用し,検出したエッジ方向に応じて,図15(B)に示すように,番号VecIndex(0〜10)を割り当てる。このとき,閾値Thを1つ設定し,x軸,y軸それぞれの成分(dx,dy)の絶対値和が閾値Th以下であれば,該当画素には強いエッジが存在しないものとしてVecIndexに0番を割り当て,番号をエッジ方向群として出力する。
【0087】
図15(C)は,その番号を割り当てるアルゴリズムを示している。
・|dx|+|dy|<Thならば,VecIndex=0とする。
・上記に該当せず,dy=0ならば,VecIndex=6とする。
・上記に該当せず,dx/dy<−8.0であれば,VecIndex=6とする。
・上記に該当せず,dx/dy<−2.0であれば,VecIndex=7とする。
・上記に該当せず,dx/dy<−1.0であれば,VecIndex=8とする。
・上記に該当せず,dx/dy<−0.5であれば,VecIndex=9とする。
・上記に該当せず,dx/dy<−0.125であれば,VecIndex=10とする。
・上記に該当せず,dx/dy<0.125であれば,VecIndex=1とする。
・上記に該当せず,dx/dy<0.5であれば,VecIndex=2とする。
・上記に該当せず,dx/dy<1.0であれば,VecIndex=3とする。
・上記に該当せず,dx/dy<2.0であれば,VecIndex=4とする。
・上記に該当せず,dx/dy<8.0であれば,VecIndex=5とする。
・上記のどれにも該当しない場合,VecIndex=6とする。
【0088】
DCTによるモスキートノイズや撮像時のノイズの影響を軽減するため,また,演算量削減のため,入力とするデノイズ対象画像に対して等倍画像ではなく,縦横1/Nに縮小した画像に対するソーベルフィルタの適用も効果的である。
【0089】
1/Nに縮小した画像に対してソーベルフィルタを適用した場合,算出したソーベルフィルタの出力結果は,縮小時に使用した複数の画素群の代表値として扱う。
【0090】
〔エッジ方向検出方法の例2〕
エッジ方向検出部317におけるエッジ方向検出方法の他の例として,デノイズ対象画像に対してソーベルフィルタを適用することによってエッジ方向を検出し,ラジアン角(Radian)を出力する例を挙げる。周辺画素に対して,前述した図15(A)に示すソーベルオペレータを適用し,x軸,y軸のそれぞれの成分(dx,dy)からarctan(−π/2〜π/2)を用いてラジアン角を計算する。このとき,dx,dyの絶対値和が閾値Th以下であれば,arctan(−π/2〜π/2)の出力範囲以外の値(EXatan:例えば100など) を設定する。
【0091】
すなわち,ラジアン角(Radian)を次のように定める。
・|dx|+|dy|<Thの場合,Radian=EXatanとする。
・上記に該当せず,dy=0であれば,Radian=π/2とする。
・他の場合,Radian=arctan(dx/dy)とする。
【0092】
〔テンプレート形状再設定方法の例〕
テンプレート形状再設定部318におけるテンプレート形状再設定方法の例の一つとして,図9にて示したテンプレート形状設定部316が設定したテンプレート形状を,図12にて示した乖離度検出部315が出力した乖離度群,図15にて示したエッジ方向群および符号化情報を用いて再設定し,テンプレート形状の大きさをさらに削減する例を説明する。
【0093】
図16は,テンプレート形状の再設定方法を説明する図である。まず,符号化情報からDCTなどの変換処理の単位であるTransformUnitのUnitサイズを取得し,図16(A)に示すように,各Unit外縁の近傍N画素を設定対象の領域に設定する。それ以外の領域は,前述したテンプレート形状設定部316の設定結果をそのまま用いるものとする。
【0094】
図16(B)に示すように,エッジ方向群を用いた場合,顕著なブロックノイズのUnit外縁上下部分ではVecIndexは1に,Unit外縁左右部分ではVecIndexは6に偏るという傾向があり,この境界部分の乖離度は高い値が検出される。また,ブロックノイズが顕著に現れる高い量子化パラメータ域では,TransformUnit内部は比較的平坦な領域が現れやすいという傾向がある。
【0095】
つまり,量子化パラメータQPの高い中〜低レート域において,図16(A)における設定対象の領域で,図16(B)に示すような特徴を満たす場合,ブロックノイズが発生している可能性が高い。これらVecIndexが1もしくは6に偏るブロック境界の画素位置に対しては大型のテンプレート形状で計算しても,小型のテンプレート形状で計算しても,結果はほとんど変わらない。しかし,ブロック境界で顕著なエッジが検出された場合には,大型のテンプレート形状が設定されてしまうため,非効率である。そのため,テンプレート形状再設定部318により,テンプレート形状の見直しを行うことで非効率であるとういう問題の解決を図る。
【0096】
具体的な解決手法としては,例えば以下の手法が挙げられる。量子化パラメータQPに対する所定の閾値Th1QP,Th2QP(ただし,Th1QP<Th2QP)と,乖離度DiffIntensity に対する所定の閾値Th1Diff,Th2Diff(ただしTh1Diff<Th2Diff)とを用いて,画素位置ごとに以下のような設定を行う。このようにすれば,デノイズ効果の悪化を抑制しつつ演算量を削減することができる。ただし,Th1Diff,Th2Diffは,それぞれ量子化パラメータQPに応じて変動するものとする。
【0097】
下記の条件を満たす場合,後述する再設定分岐のアルゴリズムによって,テンプレート形状TmpShape を設定する。
[条件1]:Unit外縁上下部分の設定対象領域における画素位置で,対象画素位置のVecIndexが1(横方向のエッジ)もしくは0(平坦な領域),かつ,Unit内側方向に隣接するVecIndexが0(平坦な領域)の場合。
[条件2]:または,Unit外縁左右部分の設定対象領域における画素位置で,対象画素位置のVecIndexが6(縦方向のエッジ)もしくは0(平坦な領域),かつ,Unit内側方向に隣接するVecIndexが0(平坦な領域)の場合。
【0098】
「再設定分岐のアルゴリズム」の例
(1)量子化パラメータQP>閾値Th2QP,
かつ,テンプレート形状TmpShape がBlock3x3 またはCross,
かつ,乖離度DiffIntensity >閾値Th1Diffの場合,
TmpShape をPoint(要素数1)に再設定。
(2)上記以外で,量子化パラメータQP>閾値Th1QP,
かつ,テンプレート形状TmpShape がBlock3x3 ,
かつ,乖離度DiffIntensity >閾値Th2Diffの場合,
TmpShape をPoint(要素数1)に再設定。
(3)上記以外で,量子化パラメータQP>閾値Th1QP,
かつ,テンプレート形状TmpShape がBlock3x3 ,
かつ,乖離度DiffIntensity >閾値Th1Diffの場合,
TmpShape をCross(要素数5)に再設定。
(4)上記以外で,量子化パラメータQP>閾値Th1QP,
かつ,テンプレート形状TmpShape がCross,
かつ,乖離度DiffIntensity >Th1Diffの場合,
TmpShape をPoint(要素数1)に再設定。
(5)上記(1)〜(4)以外の場合,再設定しないで終了。
【0099】
図16(C)における四隅の領域E,F,G,Hは,ブロックノイズによって生成されるVecIndexに予測が立たないため,それぞれ以下の条件を満たす場合に,領域内すべての画素位置に対して,前述した(1)〜(5)の再設定分岐によるテンプレート形状の再設定を行う。
・領域E:直右に隣接する領域Aの画素群もしくは直下に隣接する領域Cの画素群に上記条件を満たす画素がある。
・領域F:直左に隣接する領域Aの画素群もしくは直下に隣接する領域Dの画素群に上記条件を満たす画素がある。
・領域G:直右に隣接する領域Bの画素群もしくは直上に隣接する領域Cの画素群に上記条件を満たす画素がある。
・領域H:直左に隣接する領域Bの画素群もしくは直上に隣接する領域Dの画素群に上記条件を満たす画素がある。
【0100】
本実施形態では,ブロック境界の画素群に対して演算量を削減する例を示したが,反対にブロック内部の画素群に対してはすべてTmpShape =Noneを設定し,ブロック境界のみにデノイズフィルタを適用することで,演算量を大きく削減するような実施も可能である。
【0101】
〔演算量削減効果〕
次世代映像符号化標準方式に従来のNLMフィルタ(Non−local means法によるデノイズフィルタ)を組み込んだ手法と比較して,本手法によるデノイズフィルタを適用した場合,標準的な映像の符号化時に,PSNRの悪化を抑えつつ上記フィルタに要する演算量を大幅に削減できることが確認できた。
【0102】
[ソフトウェアプログラムを用いた場合の構成例]
以上の画像処理,映像符号化,復号の処理は,コンピュータとソフトウェアプログラムとによっても実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
【0103】
図17は,本発明を,コンピュータとソフトウェアプログラムとを用いて実施する場合のシステムの構成例を示している。
【0104】
本システムは,プログラムを実行するCPU50と,CPU50がアクセスするプログラムやデータが格納されるRAM等のメモリ51と,符号化対象の映像信号,または復号画像の映像信号を記憶する映像信号記憶部52と,本発明の実施形態で説明した処理をCPU50に実行させるためのプログラムが格納されたプログラム記憶装置53と,符号化結果のビットストリームまたは復号対象のビットストリームを記憶する符号化ストリーム記憶部54とがバスで接続された構成になっている。
【0105】
プログラム記憶装置53は,本発明を用いて映像信号を符号化するための映像符号化プログラム531,本発明を用いて符号化ビットストリームを復号するための映像復号プログラム532のいずれかを格納している。これらのプログラムの双方を格納していてもよい。
【0106】
また,本システムが映像符号化装置として用いられる場合,映像符号化プログラム531がメモリ51にロードされ,CPU50は,メモリ51にロードされた映像符号化プログラム531の命令を逐次フェッチして実行し,映像信号記憶部52に格納されている映像信号を,本発明の実施形態で説明した手法により符号化して,符号化結果のビットストリームを符号化ストリーム記憶部54に格納する。または,ネットワークアダプタ等のインタフェースを介して,ビットストリームを外部装置に出力してもよい。
【0107】
また,本システムが映像復号装置として用いられる場合,映像復号プログラム532がメモリ51にロードされ,CPU50は,メモリ51にロードされた映像復号プログラム532の命令を逐次フェッチして実行し,符号化ストリーム記憶部54に格納されているビットストリームを,本発明の実施形態で説明した手法により復号して,復号結果の映像信号を映像信号記憶部52に格納する。または,外部の再生装置に復号結果の映像信号を出力する。
【符号の説明】
【0108】
30,31,113,215 デノイズフィルタ処理部
301,311 デノイズ係数設定部
302,312 NLMフィルタ実行部
305,315 乖離度検出部
306,316 テンプレート形状設定部
317 エッジ方向検出部
318 テンプレート形状再設定部
【特許請求の範囲】
【請求項1】
ループフィルタを用いて映像を符号化または復号する映像符号化/復号方法であって,
前記ループフィルタは,復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと,前記復号画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い,テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去する画像処理方法を用いて,復号画像のノイズを除去するフィルタであり,
前記復号画像を用いて,前記対象画素と対象画素の周辺画素との乖離度を算出するステップと,
前記乖離度を,前記テンプレート形状の制限に用いる指標とし,前記乖離度が高い領域のテンプレート形状は担保し,前記乖離度が低い領域のテンプレート形状を小さく制限するステップとを実行する
ことを特徴とする映像符号化/復号方法。
【請求項2】
請求項1記載の映像符号化/復号方法において,
デノイズ対象の前記復号画像を用いてエッジ方向を算出するステップと,
制限された前記テンプレート形状のうち,符号化または復号対象ブロックの外縁にある1または複数画素のテンプレート形状を,前記算出されたエッジ方向と前記符号化または復号対象ブロックの量子化パラメータと前記乖離度とに基づいてさらに小さく制限するステップを実行する
ことを特徴とする映像符号化/復号方法。
【請求項3】
ループフィルタを用いて映像を符号化または復号する映像符号化/復号装置であって,
前記ループフィルタは,復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと,前記復号画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い,テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去する画像処理方法を用いて,復号画像のノイズを除去するフィルタであり,
前記復号画像を用いて,前記対象画素と対象画素の周辺画素との乖離度を算出する乖離度算出部と,
前記乖離度を,前記テンプレート形状の制限に用いる指標とし,前記乖離度が高い領域のテンプレート形状は担保し,前記乖離度が低い領域のテンプレート形状を小さく制限するテンプレート形状設定部とを備える
ことを特徴とする映像符号化/復号装置。
【請求項4】
請求項3記載の映像符号化/復号装置において,
デノイズ対象の前記復号画像を用いてエッジ方向を算出するエッジ方向検出部と,
制限された前記テンプレート形状のうち,符号化または復号対象ブロックの外縁にある1または複数画素のテンプレート形状を,前記算出されたエッジ方向と前記符号化または復号対象ブロックの量子化パラメータと前記乖離度とに基づいてさらに小さく制限するテンプレート形状再設定部とをさらに備える
ことを特徴とする映像符号化/復号装置。
【請求項5】
請求項1または請求項2の映像符号化/復号方法を,コンピュータに実行させるための映像符号化/復号プログラム。
【請求項1】
ループフィルタを用いて映像を符号化または復号する映像符号化/復号方法であって,
前記ループフィルタは,復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと,前記復号画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い,テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去する画像処理方法を用いて,復号画像のノイズを除去するフィルタであり,
前記復号画像を用いて,前記対象画素と対象画素の周辺画素との乖離度を算出するステップと,
前記乖離度を,前記テンプレート形状の制限に用いる指標とし,前記乖離度が高い領域のテンプレート形状は担保し,前記乖離度が低い領域のテンプレート形状を小さく制限するステップとを実行する
ことを特徴とする映像符号化/復号方法。
【請求項2】
請求項1記載の映像符号化/復号方法において,
デノイズ対象の前記復号画像を用いてエッジ方向を算出するステップと,
制限された前記テンプレート形状のうち,符号化または復号対象ブロックの外縁にある1または複数画素のテンプレート形状を,前記算出されたエッジ方向と前記符号化または復号対象ブロックの量子化パラメータと前記乖離度とに基づいてさらに小さく制限するステップを実行する
ことを特徴とする映像符号化/復号方法。
【請求項3】
ループフィルタを用いて映像を符号化または復号する映像符号化/復号装置であって,
前記ループフィルタは,復号画像におけるデノイズの対象画素に対する比較元となるテンプレートと,前記復号画像における探索形状内の探索先となる各探索点に対するテンプレートとのテンプレートマッチングを行い,テンプレート類似度に応じた重みと当該探索点における画素値の加重和によって対象画素のノイズを除去する画像処理方法を用いて,復号画像のノイズを除去するフィルタであり,
前記復号画像を用いて,前記対象画素と対象画素の周辺画素との乖離度を算出する乖離度算出部と,
前記乖離度を,前記テンプレート形状の制限に用いる指標とし,前記乖離度が高い領域のテンプレート形状は担保し,前記乖離度が低い領域のテンプレート形状を小さく制限するテンプレート形状設定部とを備える
ことを特徴とする映像符号化/復号装置。
【請求項4】
請求項3記載の映像符号化/復号装置において,
デノイズ対象の前記復号画像を用いてエッジ方向を算出するエッジ方向検出部と,
制限された前記テンプレート形状のうち,符号化または復号対象ブロックの外縁にある1または複数画素のテンプレート形状を,前記算出されたエッジ方向と前記符号化または復号対象ブロックの量子化パラメータと前記乖離度とに基づいてさらに小さく制限するテンプレート形状再設定部とをさらに備える
ことを特徴とする映像符号化/復号装置。
【請求項5】
請求項1または請求項2の映像符号化/復号方法を,コンピュータに実行させるための映像符号化/復号プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2012−191311(P2012−191311A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−51444(P2011−51444)
【出願日】平成23年3月9日(2011.3.9)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願日】平成23年3月9日(2011.3.9)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]