以下、実施例により、本発明をさらに詳細に説明するが、本発明はこれらにより何ら限定されるものではない。
本実施形態に係る動画像符号化装置1の構成について、図1〜図2を参照して説明する。動画像符号化装置1は、その一部に、H.264/AVC規格、および、KTAソフトウェアに採用されている技術を用いている動画像符号化装置である。
図1は、動画像符号化装置1の構成を示すブロック図である。
図1に示すように、動画像符号化装置1は、変換・量子化部11、可変長符号化部12、逆量子化・逆変換部13、バッファメモリ14、イントラ予測画像生成部15、インター予測画像生成部16、予測方式制御部18、動きベクトル冗長性削減部19、加算器21、および、減算器22を備えている。
動画像符号化装置1には、隣接する複数の画素から構成されるブロック画像(以下「マクロブロック」と呼ぶ)に分割された入力画像#1が入力される。
動画像符号化装置1は、入力画像#1の符号化処理を行い、符号化データ#2を出力する。
変換・量子化部11は、マクロブロックに分割された入力画像#1と、後述する予測方式制御部18から出力される予測画像#18aとの差分画像#22を、DCT(Discrete Cosine Transform)変換により、周波数成分へ変換した後、当該周波数成分の量子化を行い、量子化予測残差データ#11を生成する。ここで、上記量子化とは、上記周波数成分を整数値に対応付ける演算のことである。また、上記DCT変換、および、量子化は、マクロブロックを分割したパーティション単位で行われる。以下では、処理の対象となるマクロブロックを「対象マクロブロック」と呼び、処理の対象となるパーティションを「対象パーティション」と呼ぶ。
逆量子化・逆変換部13は、量子化予測残差データ#11の復号を行い、予測残差#13を生成する。具体的には、逆量子化・逆変換部13は、量子化予測残差データ#11の逆量子化、すなわち、量子化予測残差データ#11を構成する整数値の周波数成分への対応付け、および、当該周波数成分の逆DCT変換、すなわち、当該周波数成分に基づいた対象マクロブロックの画素成分への逆変換を行い、予測残差#13を生成する。
加算器21は、予測残差#13と、予測画像#18aとを加算し、復号画像#21を生成する。生成された復号画像#21は、バッファメモリ14に供給される。
イントラ予測画像生成部15は、バッファメモリ14に格納された復号画像#21から局所復号画像#14a(対象マクロブロックと同じフレームの既復号領域)を抽出し、局所復号画像#14aに基づいてフレーム内予測を行い、イントラ予測画像#15を生成する。
インター予測画像生成部16は、入力画像#1上の対象パーティションに対し、既にフレーム全体が復号され、バッファメモリ14に格納された参照画像#14bを用いて、動きベクトル#17を算出し、割り付ける。算出された動きベクトル#17は、予測画像生成部16、動きベクトル冗長性削減部19に対して出力されると共に、バッファメモリ14に格納される。また、インター予測画像生成部16は、参照画像#14bに対し、パーティションごとに、動きベクトル#17に基づいた動き補償を行い、インター予測画像#16を生成する。また、インター予測画像生成部16は、フィルタリング処理に用いたフィルタ係数#101を、可変長符号化部12に対して出力する。インター予測画像生成部16の構成の詳細については、後で詳述するため、ここでは説明を省略する。
予測方式制御部18は、マクロブロック単位で、イントラ予測画像#15と、インター予測画像#16と、入力画像#1とを比較し、イントラ予測画像#15、または、インター予測画像#16のうち、何れか一方を選択し、予測画像#18aとして出力する。また、予測方式制御部18は、イントラ予測画像#15、または、インター予測画像#16のうち、何れを選択したのかを表す情報である予測モード#18bを出力する。予測画像#18aは減算器22に入力される。
予測モード#18bは、バッファメモリ14に格納されると共に、可変長符号化部12に入力される。
動きベクトル冗長性削減部19は、インター予測画像生成部16において上記対象パーティションに動きベクトル#17が割り付けられた後、他のパーティションに割り付けられ、バッファメモリ14に格納された動きベクトル群#14cに基づいて予測ベクトルを算出する。また、動きベクトル冗長性削減部19は、当該予測ベクトルと、動きベクトル#17との差分をとり、差分動きベクトル#19を生成する。生成された差分動きベクトル#19は、可変長符号化部12に出力される。
可変長符号化部12は、量子化予測残差データ#11、差分動きベクトル#19、予測モード#18b、および、フィルタ係数#101に対して可変長符号化を行い、符号化データ#2を生成する。
減算器22は、対象マクロブロックに対し、入力画像#1と、予測画像#18aとの差分をとり、差分画像#22を出力する。
(インター予測画像生成部16)
次に、インター予測画像生成部16の構成、および、動作について、図2〜図4を参照して説明する。
図2は、インター予測画像生成部16の構成を示すブロック図である。
図2に示すように、インター予測画像生成部16は、予測画像生成部16a、動きベクトル推定部17、適応フィルタ100を備えている。
図3は、インター予測画像生成部16における動作の流れを示すフローチャートである。
以下では、図3〜図4を参照しつつ、インター予測画像生成部16の各部の動作の例について説明する。
(動作例1)
(ステップ101)
バッファメモリ14に格納された参照画像#14bが、適応フィルタ100に入力される。また、後述するステップ102において、複数の参照ピクチャが用いられる場合には、参照画像#14bは、それら複数の参照ピクチャから構成されているものとする。
適応フィルタ100は、本ステップにおいては、参照画像#14bに対して、予め定められた規定のフィルタ係数(以下、標準フィルタ係数と呼ぶ)に基づいてフィルタリング処理を行い、第1の出力画像データ#100を出力する。
具体的には、適応フィルタ100は、第1の出力画像データ#100の座標(x’、y’)における画素値SO(x’、y’)を式(1)によって表される加重線形和によって算出する。なお、適応フィルタ100は、出力画像データの全体を一度に生成および出力する必要はなく、出力画像データの部分領域を、動きベクトル推定部や予測画像生成部からの要求に基づいて生成および出力するようにしてもよい。
ここで、SI(x、y)は、参照画像#14bの座標(x、y)における画素値を表しており、h(i、j)は、画素値SI(x+i、y+j)に乗ぜられるフィルタ係数を表している。また、Rは、上記加重線形和をとる画素の領域(以下、フィルタ領域と呼ぶ)を表している。より具体的には、Rは、上記加重線形和の対象となる相対座標のセットを表している。例えば、座標(x、y)における画素を中心とした3×3タップのフィルタリングを行う場合には、R={(−1、−1)、(−1、0)、(−1、1)、(0、−1)、(0、0)、(0、1)、(1、−1)、(1、0)、(1、1)}である。また、hoffsetは、画素値に加算するオフセット値を表している。
なお、フィルタ領域Rは、一般に、M×Nタップの矩形状の領域であってもよいし、ひし形、円形、又はその他任意の形状の領域であってもよい。
また、参照画像#14bは、整数座標の画素(以下、整数画素と呼ぶ)の画素値から構成されている画像データである。すなわち、式(1)において、x、および、yは、何れも整数値をとる。一方で、x’、および、y’は、整数でない値をとってもよい。すなわち、第1の出力画像データ#100は、整数画素の画素値、および、整数画素以下の画素精度の補間信号を含む画像データである。換言すれば、適応フィルタ100は、整数画素の画素値から、補間によって、整数画素以下の画素精度の補間信号を生成する画像フィルタである。
なお、適応フィルタ100は、フィルタ処理によって得ようとする画素の座標値によって、フィルタ係数およびオフセットを適宜切り替える。例えば、x’とy’それぞれが、整数画素、1/4画素、1/2画素、3/4画素の4種類のいずれかに相当する座標位置の値をとる場合に、x’およびy’の座標位置の種類の組合せに応じてフィルタ係数およびオフセットを切り替える。以下では、フィルタ係数h(i,j)、および、オフセットhoffsetは、x’およびy’の座標値の組合せに応じたフィルタ係数およびオフセットを包含するものとし、適宜選択して適用されるものとする。
また、本ステップにおいては、フィルタ係数h(i,j)、および、オフセットhoffsetは、予め定められた値をとる。
なお、上記標準フィルタ係数の具体的な値は、本発明を限定するものではないが、例えば、H.264/AVC規格における補間フィルタに用いられるフィルタ係数を用いればよい。
(ステップ102)
動きベクトル推定部17は、第1の出力画像データ#100と、入力画像#1とに基づいて、動き予測を行い、第1の動きベクトル#17’を生成する。なお、本ステップにおける動き予測においては、参照画像#14bに含まれる複数の参照ピクチャを用いてもよい。
(ステップ103)
予測画像生成部16aは、第1の出力画像データ#100に対して、第1の動きベクトル#17’に基づいた動き補償を行うことによって、第1の予測画像#16’を生成する。なお、ステップ102およびステップ103の処理は、予測方法の異なる予測モード毎に試行され、最適な予測モードが用いられるものとする。
(ステップ104)
適応フィルタ100は、第1の予測画像#16’を、スキップモードが適用されているマクロブロックから構成される第1の領域ER1と、スキップモードが適用されていないマクロブロックから構成される第2の領域ER2とに分割する。
図4は、第1の予測画像#16’における第1の領域ER1、および、第2の領域ER2の例を示す図である。
また、適応フィルタ100は、入力画像#1を、上記第1の領域ER1に対応する領域ER1’と、上記第2の領域ER2に対応する領域ER2’とに分割する。さらにこれらに対応し、参照画像#14bにおいて領域ER1’の予測のために参照される領域を領域ER~1’に設定し、参照画像#14bにおいて領域ER2’の予測のために参照される領域を領域ER~2’に設定する。なお、領域ER~1’および領域ER~2’は参照画像#14bを2分割するとは限らない。すなわち、領域ER~1’および領域ER~2’は、互いに重なる場合もある。
(ステップ105)
適応フィルタ100は、参照画像#14bにおける領域ER~1’に対して、フィルタ係数h1’(i,j)に基づいて、フィルタリングを行い、参照画像#14bにおける領域ER~2’に対して、フィルタ係数h2’(i,j)に基づいて、フィルタリングを行う。領域ER~1’と領域ER~2’は前述のように参照画像#14b上で重なる場合があるが、当該領域を参照している領域が領域ER1’であるか領域ER2’であるかにより、領域ER~1’として参照された領域であるか領域ER~2’として参照された領域であるかを判別することができる。
ここで、フィルタ係数h1’(i,j)は、第1の予測画像#16’における領域ER1と、それに対応する入力画像#1との誤差が最小となるように定められる。また、フィルタ係数h2’(i,j)は、第1の予測画像#16’における領域ER2と、それに対応する入力画像#1との誤差が最小となるように定められる。
なお、フィルタ係数h1’(i,j)およびフィルタ係数h2’(i,j)を、前述のように動きベクトルの整数未満の精度の位置に応じて変更できるようにするためには、各フィルタ係数の導出を、動きベクトル#17’の整数未満の画素精度の組合せ毎に行えばよい。
また、フィルタ係数hk’(i、j)(k=1,2)の具体的な決定には、統計的手法を用いることができる。
例えば、フィルタ係数hk’(i、j)(k=1,2)は、以下の式(2)によって与えられる二乗誤差Ekを最小とするように決定することができる。
ここで、S(x,y)は、入力画像#1の座標(x、y)における画素値を表しており、SI(x~+i、y~+j)は、第1の予測画像#16’の座標(x~+i、y~+j)における画素値を表している。また、x~、および、y~は、x~=x+f(mvx)−FOx、y~=y+f(mvy)−FOyによって定義されている。ここで、mvx、および、mvyは、それぞれ、第1の動きベクトル#17’のx成分、および、y成分である。また、f(mvx)は、mvxを、mvxを超えない最も大きな整数画素にマップするフロア関数である。f(mvy)についても同様である。また、FOx、および、FOyは、フィルタオフセットであり、それぞれ、FOx=(x方向のフィルタサイズ)/2−1、および、FOy=(y方向のフィルタサイズ)/2−1である、ここで、例えば、M×Nタップのフィルタリングに対しては、(x方向のフィルタサイズ)=M、(y方向のフィルタサイズ)=Nである。
また、式(2)における(x、y)についての和は、第1の予測画像#16’における領域ERk(kは1または2のうち何れか)に含まれる全ての画素についての和である。
適応フィルタ100は、以上のように、参照画像#14bに対し、領域ごとに最適化されたフィルタ係数に基づいたフィルタリング処理を施すことによって、第2の出力画像データ#100’を生成し、出力する。
なお、上記の説明では、二乗誤差Ekを最小にする場合を例に挙げたが、本発明はこれに限定されるものではない。例えば、上記二乗誤差Eにおける2乗演算を絶対値演算に置き換えることによって得られる絶対値誤差を最小にするようにフィルタ係数を決定してもよいし、これらの誤差に重みを加味してフィルタ係数を決定してもよい。
また、フィルタ係数hk’(i、j)(k=1,2)は、フィルタ係数#101として、可変長符号化部12に対して出力される。
なお、本ステップにおける適応フィルタ100の動作は、以下のように表現することもできる。
すなわち、適応フィルタ100は、第1の予測画像#16’と入力画像#1との予測誤差を、入力画像#1の領域であって、第1の予測画像#16’においてスキップモードが適用されているマクロブロックに対応する領域に対する予測誤差E1と、スキップモードが適用されていないマクロブロックに対応する領域に対する予測誤差E2とに分割し、それぞれの予測誤差を最小にするように、フィルタ係数hk’(i、j)(k=1,2)を決定する。
(ステップ106)
次に、動きベクトル推定部17は、第2の出力画像データ#100’と、入力画像#1とに基づいて、第2の動きベクトル#17を生成する。なお、本実施例においては、動きベクトル推定部17は、第2の動きベクトル#17として、既に求めた第1の動きベクトル#17’と同一の値を出力するものとする。そのようにすることにより、第2の動きベクトル#17を求める計算コストを減らすことができる。ただし、第2の動きベクトル#17と、第1の動きベクトル#17’との関係は、本発明を限定するものではない。
(ステップ107)
予測画像生成部16aは、第2の出力画像データ#100’に対して、第2の動きベクトル#17に基づいた動き補償を行うことによって、インター予測画像#16を生成し出力する。
以上が、インター予測画像生成部16における動作の流れである。
一般に、スキップモードが適用されているマクロブロックと、スキップモードが適用されていないマクロブロックとでは、最適なフィルタ係数が異なる。
上述のように、適応フィルタ100は、第1の予測画像#16’を、スキップモードが適用されているマクロブロックから構成される第1の領域ER1と、スキップモードが適用されていないマクロブロックから構成される第2の領域ER2とに分割し、領域ER1と領域ER2からそれぞれ参照される、参照画像#14bの領域ごとに上記統計的手法によって最適なフィルタ係数を求めることができる。
したがって、上記の構成によれば、第1の予測画像#16’が、スキップモードが適用されているパーティション、および、スキップモードが適用されていないパーティションを含む場合であっても、適切なフィルタリングを行うことができるので、適切な予測画像#16、および、適切な第2の動きベクトル#17を生成することができる。
なお、インター予測画像生成部16は、上記のステップ104から、ステップ107を複数回繰り返すような構成としてもよい。すなわち、ステップ107において生成されたインター予測画像#16を、スキップモードが適用されているか否かに応じて、2つの領域に分割し、それぞれの領域ごとに、上記統計的手法を用いてフィルタ係数を決定し、それらのフィルタ係数を用いて生成された出力画像データに基づいて更なる動き補償を行ってもよい。このように、領域の分割、および、動き補償、および、フィルタ係数算出を複数回繰り返すことによって、より適切な予測画像、および、動きベクトルを生成することができる(以下同様)。
また、フィルタ係数hk’(i、j)(k=1,2)に加えて、オフセットhoffsetも、上記領域ごとに最適化するような構成としてもよい(以下同様)。
なお、本実施例においては、領域の分割および動き補償を繰り返さず、マクロブロック毎の予測モードについて、第1の予測画像#16’とインター予測画像#16で同一となるようにするものとする。このようにすることで、計算コストを削減することができる。
以上のように、本実施形態に係る符号化装置(動画像符号化装置1)は、入力画像#1を符号化して再構成することによって得られる参照画像(参照画像#14b)に作用する第1のフィルタ(適応フィルタ100)と、上記第1のフィルタの出力画像を参照した動き補償を行うことによって第1の予測画像(第1の予測画像#16’)を生成する第1の予測手段(予測画像生成部16a)と、上記参照画像に作用する第2のフィルタと、上記第2のフィルタの出力画像を参照した動き補償を行うことによって第2の予測画像を生成する第2の予測手段(予測画像生成部16a)と、上記第1の予測画像(第1の予測画像#16’)と入力画像#1とを複数の領域に分割する分割手段(適応フィルタ100)と、上記入力画像#1と上記第1の予測画像(第1の予測画像#16’)との差を上記領域毎に最小化するよう、上記第2のフィルタのフィルタ係数を設定するフィルタ係数設定手段(適応フィルタ100)とを備え、上記入力画像と上記第2の予測画像(インター予測画像#16)との残差データを符号化する。
換言すれば、本実施形態に係る符号化装置(動画像符号化装置1)は、入力画像#1を符号化して再構成することによって得られる参照画像(参照画像#14b)に作用する第1のフィルタ(適応フィルタ100)と、上記第1のフィルタの出力画像を参照した動き補償を行うことによって第1の予測画像(第1の予測画像#16’)を生成する第1の予測手段(予測画像生成部16a)と、を備え、上記第1の予測手段(予測画像生成部16a)は、さらに、上記参照画像#14bに作用する第2のフィルタと、上記第2のフィルタの出力画像を参照した動き補償を行うことによって第2の予測画像(インター予測画像#16)を生成し、上記第1のフィルタ(適応フィルタ100)は、さらに、上記第1の予測画像(第1の予測画像#16’)と入力画像#1とを複数の領域に分割し、上記入力画像#1と上記第1の予測画像(第1の予測画像#16’)との差を上記領域毎に最小化するよう、上記第2のフィルタのフィルタ係数を設定する。
上記のように構成された本発明に係る符号化装置によれば、上記第1の予測画像と入力画像とを複数の領域に分割する分割手段と、上記入力画像と上記第1の予測画像との差を上記領域毎に最小化するよう、上記第2のフィルタのフィルタ係数を設定するフィルタ係数設定手段とを備えているため、上記第1の予測画像の生成に用いた参照画像の特性が一様でない場合であっても、上記複数の領域毎に上記第2のフィルタのフィルタ係数を適応的に設定することができる。
換言すれば、上記第1の予測画像の生成に用いた上記参照画像の特性が一様でない場合であっても、上記複数の領域毎に上記第2のフィルタのフィルタ係数を適応的に設定することによって、適切なフィルタリングを行うことができる。
また、上記ステップ104、および、ステップ105において、適応フィルタ100は、第1の予測画像#16’を、スキップモードが適用されているマクロブロックから構成される第1の領域ER1と、スキップモードが適用されていないマクロブロックから構成される第2の領域ER2とに分割し、それぞれに対応する入力画像#1の領域ER1’と領域ER2’に対して、上記統計的手法によって最適なフィルタ係数を求める構成としたが、本発明はこれに限定されるものではなく、様々な条件を用いることによって、第1の予測画像#16’を複数の領域に分割し、それぞれに対応する入力画像#1の領域に対して、上記統計的手法によって最適なフィルタ係数を求めることが可能である。
以下では、インター予測画像生成部16の他の動作例について、説明する。
(動作例2)
以下では、インター予測画像生成部16の第2の動作例について図5を参照して説明する。
本動作例においては、上記ステップ104、および、上記ステップ105は、それぞれ、以下に説明するステップ204、および、ステップ205に置き換わる。
(ステップ204)
適応フィルタ100は、第1の予測画像#16’を、参照画像インデクスref_idxが0であるパーティションから構成される領域ER21と、それ以外の領域ER22とに分割する。
また、適応フィルタ100は、入力画像#1において、上記領域ER21に対応する領域を領域ER21’に設定し、上記領域ER22に対応する領域を領域ER22’に設定する。さらにこれらに対応し、参照画像#14bにおいて領域ER21’の予測のために参照される領域を領域ER~21’に設定し、参照画像#14bにおいて領域ER22’の予測のために参照される領域を領域ER~22’に設定する。
(ステップ205)
適応フィルタ100は、参照画像#14bにおける領域ER~21’に対して、フィルタ係数h21’(i,j)に基づいてフィルタリングを行い、参照画像#14bにおける領域ER~22’に対して、フィルタ係数h22’(i,j)に基づいてフィルタリングを行う。
図5は、参照画像#14bにおける参照画像インデクスref_idxが0である参照ピクチャAにおける領域ER~21’に対して、フィルタ係数h21’を用いたフィルタ1を施し、参照画像#14bにおける参照画像インデクスref_idxが1である参照ピクチャBにおける領域ER~22’に対して、フィルタ係数h22’を用いたフィルタ2を施す場合を示す図である。
ここで、フィルタ係数h21’(i,j)は、第1の予測画像#16’における領域ER21と、それに対応する入力画像#1における領域ER21’との誤差が最小となるように定められる。また、フィルタ係数h22’(i,j)は、第1の予測画像#16’における領域ER22と、それに対応する入力画像#1における領域ER22’との誤差が最小となるように定められる。フィルタ係数hk’(i、j)(k=21,22)の具体的な決定には、上述した統計的手法を用いればよい。
適応フィルタ100は、以上のようなフィルタリングを行うことによって、第2の出力画像データ#100’を生成し、出力する。
一般に、参照画像インデクスref_idxが異なれば、参照される参照ピクチャも異なるため、異なった参照画像インデクスを有するパーティションに対しては、最適なフィルタ係数も異なる。
上記の構成によれば、適応フィルタ100は、参照画像インデクスref_idxが0であるパーティションから構成される領域ER21と、それ以外の領域ER22とにそれぞれ対応する入力画像#1における領域ER21’と領域ER22’とに対し、領域ごとに最適なフィルタ係数を決定することができる。したがって、上記の構成によれば、第1の予測画像#16’が、参照画像インデクスref_idxが0である領域と、参照画像インデクスref_idxが0でない領域とから構成される場合であっても、最適なフィルタ係数を求めることができる。また、そのような場合であっても、適切な予測画像#16を生成することができる。
なお、第1の予測画像#16’が、双方向予測によって生成されたパーティションを含む場合、すなわち、第1の予測画像#16’が、2枚の参照ピクチャが関連付けられているパーティションを含む場合には、例えば、以下の式(3)によって与えられる二乗誤差を最小とするように、フィルタ係数hk’(i、j)を求めればよい。
ここで、SI1(x~1+i、y~1+j)は、上記2枚の参照ピクチャのうち、一方の参照ピクチャを、それに対応する動きベクトルによって動き補償した画像データの、座標(x~1+i、y~1+j)における画素値を表しており、SI2(x~2+i、y~2+j)は、上記2枚の参照ピクチャのうち、他の一方の参照ピクチャを、それに対応する動きベクトルによって動き補償した画像データの、座標(x~2+i、y~2+j)における画素値を表している。ここで、x~1、および、y~1は、それぞれ、x~1=x+f(mvx1)−FOx、y~1=y+f(mvy1)−FOyによって定義されており、x~2=x+f(mvx2)−FOx、y~2=y+f(mvy2)−FOyによって定義されている。また、(mvx1、mvy1)は、上記一方の参照画像に関連付けられた動きベクトルの成分を表しており、(mvx2、mvy2)は、上記他の一方の参照画像に関連付けられた動きベクトルの成分を表している。
本例においては、式(3)に示すように、フィルタ係数の算出に際し、上記2枚の参照ピクチャのそれぞれを動き補償した2枚の画像を1/2の重みで寄与させている。
図6は、参照画像インデクスref_idxの最大値が1の場合であり、参照画像#14bのうち参照画像リストL0における参照画像インデクスref_idx=0によって指定される参照ピクチャであって、参照画像リストL1における参照画像インデクスref_idx=1によっても指定される参照ピクチャAと、参照画像リストL0における参照画像インデクスref_idx=1によって指定される参照ピクチャBと、参照画像リストL1における参照画像インデクスref_idx=0によって指定される参照ピクチャCとを、インター予測画像#16と共に示す図である。なお、参照画像リストとは、1枚または複数の参照画像の候補を示すリストである。同一リスト中に含まれる各画像には、識別のための番号(参照画像インデクス)が割り当てられる。
図6に示すように、適応フィルタ100は、インター予測画像#16上の領域ER21’’が参照する参照ピクチャA上の領域ER21’a、および、参照ピクチャC上の領域ER21’bに対して、フィルタ係数h21’を用いたフィルタ1を施し、インター予測画像#16上の領域ER22’’が参照する参照ピクチャA上の領域ER22’a、および、参照ピクチャB上の領域ER22’bに対して、フィルタ係数h22’を用いたフィルタ2を施す。
上記のような構成をとることによって、上記2枚の参照ピクチャのそれぞれを動き補償した2枚の画像の寄与を考慮しつつ、適切なフィルタ係数を算出することができる。
なお、上記の例では、上記2枚の参照ピクチャのそれぞれを動き補償した2枚の画像を1/2の重みで寄与させているが、本発明はこれに限定されるものではなく、上記2枚の参照ピクチャのうち一方の参照ピクチャをより大きな重みで寄与させるような構成としてもよい。また、重みは画像全体で一定である必要はなく、パーティション単位やマクロブロック単位などで変化させてもよい。
以上のように、適応フィルタ100は、双方向予測によって生成されたパーティションが参照する上記一方の参照ピクチャ、および、上記他の一方の参照ピクチャに対して、上記のように求められたフィルタ係数hk’(i、j)を用いてフィルタリングを行えばよい。
なお、本動作例においては、適応フィルタ100は、第1の予測画像#16’を、参照画像インデクスref_idxに応じて3つ以上の領域に分割するような構成としてもよいし、あるいは、第1の予測画像#16’を、前方向予測であるか、後方向予測であるかに応じて、2つの領域に分割するような構成としてもよい。さらに、前方向予測/後方向予測と参照画像インデクスを併用して複数の領域に分割するような構成とすることもできる。
(動作例3)
以下では、インター予測画像生成部16の第3の動作例について説明する。
本動作例においては、適応フィルタ100は、上述した動作例1に示した動作、および、動作例2に示した動作の双方を行い、より符号化効率の高いインター予測画像、および、フィルタ係数を出力する。
具体的には、本動作例においては、適応フィルタ100は、動作例1において説明したステップ101からステップ107までの動作を行うことによって、インター予測画像#16a(動作例1におけるインター予測画像#16に対応)を生成する。
また、適応フィルタ100は、動作例1のステップ104、および、ステップ105を動作例2において説明したステップ204、および、ステップ205に置き換えた動作を行うことによって、インター予測画像#16b(動作例2におけるインター予測画像#16に対応)を生成する。
また、適応フィルタ100は、インター予測画像#16a、および、インター予測画像#16bのうち、符号化効率の高い予測画像を選択し、出力する。また、適応フィルタ100は、選択された予測画像の生成に用いられた動きベクトル#17、および、フィルタ係数#101を出力する。
また、適応フィルタ100は、動作例1、および、動作例2のうち、何れの方法によって予測画像を生成したかを示すフラグ#102を出力することが好ましい。また、フラグ#102は、可変長符号化部12において符号化され、符号化データ#2の一部として、動画像復号装置に伝送されることが好ましい。
このような符号化データ#2を受けた動画像復号装置は、動作例1、および、動作例2のうち、適応フィルタ100によって選択された方法、および、フィルタ係数#101に基づいて、復号画像を生成することができる。
また、適応フィルタ100は、動作例1における領域ER1と領域ER2との面積差と、動作例2における領域ER21と領域ER22との面積差を比較し、より面積差の小さい領域を用いた動作例によって生成された予測画像、および、フィルタ係数を出力するような構成としてもよい。
また、適応フィルタ100は、動作例1における領域ER1と領域ER2との面積差と、動作例2における領域ER21と領域ER22との面積差を比較し、より面積差の小さい領域を用いた動作例によって生成された予測画像、および、フィルタ係数を出力するような構成としてもよい。あるいは、面積差ではなく、面積比を用いることもできる。その場合、面積比が1に近い領域を用いた動作例によって生成された予測画像、および、フィルタ係数を出力すると良い。
このような場合、動画像復号装置においても、上記面積差を比較することによって、予測画像が何れの動作例によって生成されたかを判別することができるので、適応フィルタ100は、何れの動作例を選択したかを示すフラグを出力しなくてもよい。しがたって、より少ない符号量の符号化データ#2によって、画像データを伝送できる。一方、適応フィルタ100が、何れの動作例を選択したかを示すフラグを出力すれば、動画像復号装置の処理量を低減することができる。
(動作例4)
以下では、インター予測画像生成部16の第4の動作例について説明する。
本動作例においては、動作例1におけるステップ104、および、ステップ105は、以下に説明するステップ404、および、ステップ405に置き換わる。
(ステップ404)
適応フィルタ100は、第1の予測画像#16’に含まれる各マクロブロックを、予め定められた判定基準によって、2組に分類する。ここで、予め定められた判定基準とは、判定のためのフラグ等を符号化データに追加することなく、本動作例に対応する動画像復号装置においても、本動作例の動画像符号化装置と同一の判定が可能な基準である。例えば、マクロブロック番号が予め定められた値以上か否かを基準として判定することができる。また、適応フィルタ100は、第1の予測画像#16’を、上記2組のうち一方の組に属するマクロブロックから構成される領域ER41と、もう一方の組に属するマクロブロックから構成される領域ER42とに分割する。
また、適応フィルタ100は、入力画像#1を、上記第1の領域ER41に対応する領域ER41’と、上記第2の領域ER42に対応する領域ER42’とに分割する。さらにこれらに対応し、参照画像#14bにおいて領域ER41’の予測のために参照される領域を領域ER~41’に設定し、参照画像#14bにおいて領域ER42’の予測のために参照される領域を領域ER~42’に設定する。
また、適応フィルタ100は、入力画像#1に含まれる領域が、上記領域ER41’、または、上記領域ER42’のうち、何れの領域に属しているかを示すフラグ#F1をメモリに格納する。あるいは、フラグ#F1をメモリに格納せず、参照される都度導出するようにしてもよい。
(ステップ405)
適応フィルタ100は、フラグ#F1を参照して、参照画像#14bにおける領域ER~41’に対して、フィルタ係数h41’(i,j)に基づいてフィルタリングを行い、参照画像#14bにおける領域ER~42’に対して、フィルタ係数h42’(i,j)に基づいてフィルタリングを行う。
ここで、フィルタ係数h41’(i,j)は、入力画像#1における領域ER41’と、第1の予測画像#16’における領域ER41との誤差が最小になるように定められる。また、フィルタ係数h42’(i,j)は、入力画像#1における領域ER42’と、第1の予測画像#16’における領域ER42との誤差が最小になるように定められる。フィルタ係数hk’(i、j)(k=41,42)の具体的な決定には、上述した統計的手法を用いればよい。
また、適応フィルタ100は、フラグ#F1を参照して、参照画像#14bにおける領域ER~41’、および、領域ER~42’に対して、それぞれフィルタ係数h41’(i,j)、および、フィルタ係数h42’(i,j)を用いたフィルタリングを行い、第2の出力画像データ#100’を生成し、出力する。
なお、本動作例の場合、符号化データ#2を復号する動画像復号装置は、上記予め定められた判定基準によって、復号画像を上記のように領域ER41’と、領域ER42’とに分割し、それぞれに対して、フィルタ係数h41’(i,j)、および、h42’(i,j)を用いたフィルタリングを行う構成とすればよい。
また、上記予め定められた判定基準は、本発明を限定するものではないが、例えば、適応フィルタ100は、各マクロブロックを、当該マクロブロックに隣接する複数のマクロブロックのうち、より多くのマクロブロックが属する組に分類するようにすればよい。
また、上記の説明では、マクロブロック毎に2組に分類する場合を例に挙げたが、本動作例はこれに限定されない。すなわち、マクロブロックよりも大きな単位で2組に分類するような構成としてもよいし、マクロブロックよりも小さな単位で2組に分類するような構成としてもよい。さらに、分類する組数も2組には限らず、3組以上として組数だけフィルタ係数を導出することもできる。
(動作例5)
以下では、インター予測画像生成部16の第5の動作例について説明する。
本動作例においては、動作例1におけるステップ104、および、ステップ105は、以下に説明するステップ504、および、ステップ505に置き換わる。
(ステップ504)
適応フィルタ100は、第1の予測画像#16’に含まれる各マクロブロックに対応する入力画像#1の領域における平均画素値が予め定められた閾値以上であるか否かに応じて、各マクロブロックを2組に分類する。また、適応フィルタ100は、第1の予測画像#16’を、上記2組のうち一方の組に属するマクロブロックから構成される領域ER51と、もう一方の組に属するマクロブロックから構成される領域ER52とに分割する。
また、適応フィルタ100は、入力画像#1を、上記第1の領域ER51に対応する領域ER51’と、上記第2の領域ER52に対応する領域ER52’とに分割する。さらにこれらに対応し、参照画像#14bにおいて領域ER51’の予測のために参照される領域を領域ER~51’に設定し、参照画像#14bにおいて領域ER52’の予測のために参照される領域を領域ER~52’に設定する。
また、適応フィルタ100は、入力画像#1に含まれる領域が、上記領域ER51’、または、上記領域ER52’のうち、何れの領域に属しているかを示すフラグ#F2をメモリに格納する。あるいは、フラグ#F2をメモリに格納せず、参照される都度導出するようにしてもよい。
当該フラグ#F2は、可変長符号化部12に送られ、符号化データ#2として符号化される。
(ステップ505)
適応フィルタ100は、参照画像#14bにおける領域ER~51’に対して、フィルタ係数h51’(i,j)に基づいてフィルタリングを行い、参照画像#14bにおける領域ER~52’に対して、フィルタ係数h52’(i,j)に基づいてフィルタリングを行う。
ここで、フィルタ係数h51’(i,j)は、第1の予測画像#16’における領域ER51と、それに対応する入力画像#1における領域ER51’との誤差が最小となるように定められる。また、フィルタ係数h52’(i,j)は、第1の予測画像#16’における領域ER52と、それに対応する入力画像#1における領域ER52’との誤差が最小となるように定められる。フィルタ係数hk’(i、j)(k=51,52)の具体的な決定には、上述した統計的手法を用いればよい。
適応フィルタ100は、フラグ#F2を参照して、参照画像#14bにおける領域ER~51’、および、領域ER~52’に対して、それぞれフィルタ係数h51’(i,j)、および、フィルタ係数h52’(i,j)を用いたフィルタリングを行い、第2の出力画像データ#100’を生成し、出力する。
一般に、最適なフィルタ係数は、当該フィルタ係数を用いたフィルタリングの対象となる領域における平均輝度に応じて変わる。したがって、平均輝度のより高い領域と、平均輝度のより低い領域とに対し、各々フィルタ係数を決定することによって、入力画像#1における各領域の輝度にばらつきがあるような場合であっても、適切なフィルタリングを行うことができる。
なお、本動作例の場合、符号化データ#2を復号する動画像復号装置は、符号化データ#2に含まれるフラグ#F2を参照して、復号画像を、領域ER51’と領域ER52’とに分割し、それぞれが参照する領域に対して、フィルタ係数h51’(i,j)、および、h52’(i,j)を用いたフィルタリングを行う構成とすればよい。
また、上記のステップ504は、以下に説明するステップ504’に置き換えてもよい。
(ステップ504’)
適応フィルタ100は、第1の予測画像#16’に含まれる処理対象マクロブロックの領域と、それに対応する入力画像#1における領域との誤差が、予め定められた閾値以上である場合には、当該処理対象マクロブロックを第1の組に分類し、そうでない場合には、当該処理対象マクロブロックを第2の組に分類する。
なお、上記誤差としては、具体的には、例えば、式(2)において、領域ERkを、処理対象マクロブロックに含まれる領域MBに置き換えたものを用いればよい。
また、適応フィルタ100は、第1の予測画像#16’を、上記第1の組に属するマクロブロックから構成される領域ER51と、上記第2の組に属するマクロブロックから構成される領域ER52とに分割する。
また、適応フィルタ100は、入力画像#1を、上記第1の領域ER51に対応する領域ER51’と、上記第2の領域ER52に対応する領域ER52’とに分割する。さらにこれらに対応し、参照画像#14bにおいて領域ER51’の予測のために参照される領域を領域ER~51’に設定し、参照画像#14bにおいて領域ER52’の予測のために参照される領域を領域ER~52’に設定する。
また、適応フィルタ100は、参照画像#14bに含まれる領域が、上記領域ER51’、または、上記領域ER52’のうち、何れの領域に属しているかを示すフラグ#F2をメモリに格納する。
当該フラグ#F2は、可変長符号化部12に送られ、符号化データ#2として符号化される。
一般に、最適なフィルタ係数は、予測画像(第1の予測画像#16’)と、入力画像(入力画像#1)との誤差(予測誤差)の大小に応じて変わる。
上記の構成によれば、入力画像#1における当該処理対象マクロブロックごとに、参照画像#14bにおける被参照領域との誤差が大きく異なるような場合であっても、適切なフィルタリングを行うことができる。
また、上記の説明では、マクロブロックごとに2組に分類する場合を例に挙げたが、本動作例はこれに限定されない。すなわち、マクロブロックよりも大きな単位で2組に分類するような構成としてもよいし、マクロブロックよりも小さな単位で2組に分類するような構成としてもよい。さらに、画素値の違いや誤差の大きさに応じて、3組以上に分類するような構成としてもよい。
(動作例6)
以下では、インター予測画像生成部16の第6の動作例について図7を参照して説明する。
本動作例においては、適応フィルタ100は、上述した動作例1〜5、および、後述する動作例において分割された第1の予測画像#16’の一方の領域の面積が、第1の予測画像#16’の面積に対して占める割合が、予め定められた割合以下である場合に、当該一方の領域から参照される参照画像#14bの領域に対して、上述した標準フィルタ係数を用いてフィルタリングを行い、他の一方の領域から参照される参照画像#14bの領域に対して、上述した統計的手法によって算出された最適なフィルタ係数を用いてフィルタリングを行う。
具体的には、例えば、動作例1において説明した第1の領域ER1の面積が第1の予測画像#16’の面積に対して占める割合が予め定められた割合以下である場合に、適応フィルタ100は、領域ER1’に対して標準フィルタ係数を用いたフィルタリングを行い、領域ER2’に対しては、フィルタ係数h2’(i,j)を用いてフィルタリングを行う。
ここで、フィルタ係数h2’(i,j)は、第1の予測画像#16’における領域ER2と、それに対応する入力画像#1との誤差が最小となるように定められる。フィルタ係数h2’(i、j)の具体的な決定には、統計的手法を用いることができる。
図7は、第1の予測画像#16’における第1の領域ER1、および第2の領域ER2の例を示す図である。
このように、本動作例においては、面積比が一定の割合以下の領域に対しては、フィルタ係数を統計的な手法によって決定する工程を行わず、標準フィルタ係数を用いてフィルタリングする。また、他の動作例2〜4に対しても同様である。
一般に、より小さい領域に対しては、上記統計的手法によるフィルタ係数の決定に用いられる予測残差のサンプル数が減少する。すなわち、式(2)において対応する領域ERkに含まれる画素の数は、より少なくなる。したがって、そのような小さい領域に対しては、上記統計的な手法を用いたとしても、予測画像の予測精度を向上することが難しい。また、予測精度の改善ができたとしても、小さい領域では予測精度の改善によって減少するよりも多くの符号量がフィルタ係数に必要となり、符号化効率が低減する可能性がある。また、上記統計的手法を用いることによる計算コストの増大もある。
上記の構成によれば、面積比が一定の割合以下の領域に対しては、標準フィルタ係数を用いたフィルタリングを行うことができるので、上記の符号化効率の低下や計算コストの増大の問題を回避することができる。
また、適応フィルタ100は、上述した工程において、標準フィルタ係数を用いた領域を示すフラグ#F3を出力し、可変長符号化部12において符号化データ#2の一部として符号化するような構成としてもよい。このような構成とすることによって、符号化データ#2を復号する動画像復号装置において、フラグ#F3を参照することによって、標準フィルタ係数を適用すべき領域と、適応フィルタ100において統計的手法によって決定されたフィルタ係数を適用すべき領域とを判別することができる。
また、動画像復号装置が備えるメモリに、上記予め定められた割合の値が記録されているような構成とすれば、当該動画像復号装置は、上記のフラグ#F3を参照することなく、標準フィルタを適用すべき領域と、適応フィルタ100において統計的手法によって決定されたフィルタ係数を適用すべき領域とを判別することができる。したがって、このような場合には、適応フィルタ100は、上記のフラグ#F3を出力しなくてもよい。
また、本動作例においては、分割された第1の予測画像#16’の一方の領域の面積が第1の予測画像#16’の面積に対して占める割合が、予め定められた割合以下である場合には、分割されない第1の予測画像#16’全体に対して、適応的にフィルタ係数を算出するような構成としてもよい。このような場合には、適応フィルタ100は、複数の適応的フィルタを用いないことを示すフラグを出力することが好ましい。
(動作例7)
以下では、インター予測画像生成部16の第7の動作例について図8〜図9を参照して説明する。
本動作例においては、上記ステップ104、および、上記ステップ105は、それぞれ、以下に説明するステップ704、および、ステップ705に置き換わる。また、本動作例においては、参照画像インデクスref_idxの値は0または1とする。
(ステップ704)
適応フィルタ100は、第1の予測画像#16’を、参照画像インデクスref_idxが0である参照ピクチャを参照するパーティションから構成される領域ER71と、参照画像インデクスref_idxが1である参照ピクチャを参照するパーティションから構成される領域ER72とに分割する。
また、適応フィルタ100は、入力画像#1を、上記第1の領域ER71に対応する領域ER71’と、上記第2の領域ER72に対応する領域ER72’とに分割する。さらにこれらに対応し、参照画像#14bにおける参照画像インデクスref_idxが0である参照ピクチャRP(ref_idx=0)において、上記領域ER71’の予測のために参照される領域を領域ER~71’に設定し、参照画像#14bにおける参照画像インデクスref_idxが1である参照ピクチャRP(ref_idx=1)において、上記領域ER72’の予測のために参照される領域を領域ER~72’に設定する。
(ステップ705)
適応フィルタ100は、第1の予測画像#16’に対する領域ER71の面積比、および、第1の予測画像#16’に対する領域ER72の面積比が、何れも、予め定められた割合以上である場合には、動作例2において説明した動作と同様の動作を行う。
適応フィルタ100は、第1の予測画像#16’に対する領域ER72の面積比が、予め定められた面積比未満である場合には、参照画像#14bにおける参照画像インデクスref_idxが0である参照ピクチャRPに対して、フィルタ係数h71’(i,j)を導出および設定する。
ここで、フィルタ係数h71’(i,j)は、第1の予測画像#16’における領域ER71と入力画像#1における領域ER71’との誤差が最小となるように定められる。フィルタ係数h71’(i、j)の具体的な決定には、上述した統計的手法を用いることができる。
また、適応フィルタ100は、第1の予測画像#16’に対する領域ER72の面積比が、予め定められた面積比未満である場合には、フィルタ係数h72’(i,j)を設定すると共に下記のステップ705.1の処理を行う。ここで、フィルタ係数h72’(i,j)は、フィルタ係数h71’(i,j)と異なるものであればよく、例えば、エッジ強調効果を有するフィルタが適用できる。
(ステップ705.1)
本ステップでは、適応フィルタ100は、上記フィルタ係数h71’(i,j)およびh72’(i,j)を用いて、当該対象フレームに対して第2の出力画像データ#100’を生成する。ただし、適応フィルタ100は、本ステップにおいては、参照画像インデクスref_idxの解釈を変更する。つまり、参照画像インデクスref_idxを0として参照画像#14bが参照された場合、参照画像#14bにおける参照ピクチャRP(ref_idx=0)を参照してフィルタ係数h71’(i,j)を用いたフィルタリングを行い、参照画像インデクスref_idxを1として参照画像#14bが参照された場合、通常とは異なり、参照画像#14bにおける参照ピクチャRP(ref_idx=0)を参照し、フィルタ係数h72’(i,j)’を用いたフィルタリングを行う。
通常のフローでは、インター予測画像生成部16は、参照画像#14bにおける複数の参照ピクチャのうちから、入力画像#1との誤差が最小となる参照ピクチャおよび動きベクトルを選択して予測画像を生成し、その際、適応フィルタ100は、参照ピクチャとして、参照画像インデクスref_idxで指定された通りの参照ピクチャを用いる。しかし本ステップでは、参照画像#14bにおける参照ピクチャとしては、指定された参照画像インデクスref_idxの値によらず、参照画像インデクスref_idxが0である参照ピクチャRP(ref_idx=0)のみを用い、2種類のフィルタのうち入力画像との誤差がより小さいフィルタおよび動きベクトルを、ref_idxを用いて選択して、第2の出力画像データ#100’を生成する。
換言すれば、適応フィルタ100は、予測画像の再生成時に、第1の予測画像#16’に対する領域ER72の面積比が、予め定められた面積比未満である場合には、参照画像インデクスref_idx=1によって、参照画像インデクスref_idx=0が指定する参照ピクチャと同じ参照ピクチャを参照し、当該参照ピクチャ上の領域ER722’に対して、例えば、エッジ強調効果を有するフィルタ係数を用いてフィルタリングを行う。
図8は、参照画像インデクスref_idxの最大値が1の場合に、参照画像#14bにおける参照画像インデクスref_idx=0によって指定される参照ピクチャAにおける領域ER712’に対して、フィルタ係数h71’を用いたフィルタ1を施し、参照画像インデクスref_idx=1によっても指定される参照ピクチャAにおける領域ER722’に対して、エッジ強調効果を有するフィルタ係数h72’を用いたフィルタ1’を施す場合を示す図である。
なお、上記エッジ強調効果を有するフィルタ係数としては、予め定められた係数を用いればよい。また、上記エッジ強調効果を有するフィルタ係数に代えて、標準フィルタ係数を用いてもよい。
適応フィルタ100は、以上のようなフィルタリングを行うことによって、第2の出力画像データ#100’を生成し、出力する。
このように、本動作例においては、参照画像インデクスref_idxは、適応的なフィルタリングを行うのか、または、エッジ強調効果を有するフィルタ係数を用いて非適応的なフィルタリングを行うのかを示す指標として機能していることになる。
また、本動作例においては、参照画像インデクスref_idx=1がほとんど用いられることがない場合に、参照画像インデクスref_idxを、非適応的なフィルタリングを行うことを示す指標として用いることができるので、追加のサイド情報によって符号量を増加させることなく、適応的フィルタリングと、非適応的フィルタリングとを切り替えることができる。
なお、本動作例のように、パラメータの解釈が途中で変更される場合は、変更前の解釈によるパラメータを用いて導出された第1の動きベクトル#17’および予測モードは、再度導出して予測画像を生成することが好ましい。
また、以上の説明では、インター予測画像#16が、単方向予測によって生成されるPスライスである場合、すなわち、インター予測画像#16の各パーティションが、1枚の参照ピクチャを参照することによって生成される場合を例に挙げたが、本発明はこれに限定されるものではない。
例えば、インター予測画像#16が、双方向予測によって生成されるBスライスである場合、なわち、インター予測画像#16の各パーティションが、2枚の参照ピクチャを参照することによって生成される場合であっても、同様に適用することができる。
このような場合、上記ステップ704および、上記ステップ705は、それぞれ、以下に説明するステップ704’、および、ステップ705’に置き換わる。
(ステップ704’)
適応フィルタ100は、第1の予測画像#16’を、参照画像リストL0における参照画像インデクスref_idxが0である参照ピクチャ、および、参照画像リストL1における参照画像インデクスref_idxが0である参照ピクチャを参照するパーティションから構成される領域ER81と、参照画像リストL0における参照画像インデクスref_idxが1である参照ピクチャ、および、参照画像リストL1における参照画像インデクスref_idxが1である参照ピクチャを参照するパーティションから構成される領域ER82と、に分割する。
また、適応フィルタ100は、入力画像#1を、上記第1の領域ER81に対応する領域ER81’と、上記第2の領域ER82に対応する領域ER82’とに分割する。さらにこれらに対応し、参照画像#14bにおいて参照画像リストL0における参照画像インデクスref_idxが0である参照ピクチャRP(L0、ref_idx=0)において、上記領域ER81’の予測のために参照される領域を領域ER~81’aに設定し、参照画像リストL1における参照画像インデクスref_idxが0である参照ピクチャRP(L1、ref_idx=0)において、上記領域ER81’の予測のために参照される領域を領域ER~81’bに設定する。
また、適応フィルタ100は、参照画像#14bにおいて参照画像リストL0における参照画像インデクスref_idxが1である参照ピクチャRP(L0、ref_idx=1)において、上記領域ER82’の予測のために参照される領域を領域ER~82’aに設定し、参照画像リストL1における参照画像インデクスref_idxが1である参照ピクチャRP(L1、ref_idx=1)において、上記領域ER82’の予測のために参照される領域を領域ER~82’bに設定する。
(ステップ705’)
適応フィルタ100は、第1の予測画像#16’に対する領域ER81の面積比、および、第1の予測画像#16’に対する領域ER82の面積比が、何れも、予め定められた面積比以上である場合には、動作例2において説明した動作と同様に、領域ER~81’a、および、領域ER~81’bに対して、フィルタ係数h81’(i,j)を用いて適応的なフィルタリングを行うと共に、領域ER~82’a、および、領域ER~82’bに対して、フィルタ係数h82’(i,j)を用いて適応的なフィルタリングを行う。フィルタ係数h81’(i,j)、および、フィルタ係数h82’(i,j)の決定には、上述した統計的手法を用いることができる。
一方で、適応フィルタ100は、第1の予測画像#16’に対する領域ER82の面積比が、予め定められた面積比未満である場合には、第1の予測画像#16’における領域ER81と入力画像#1における領域ER81’との誤差が最小となるようなフィルタ係数h81’’(i,j)を導出および設定する。また、h81’’(i,j)と異なる、例えばエッジ強調効果を有するフィルタh82’’(i,j)を設定する。また、適応フィルタ100は、第1の予測画像#16’に対する領域ER82の面積比が、予め定められた面積比未満である場合には、下記のステップ705’.1の処理を行う。
(ステップ705’.1)
本ステップでは、上記フィルタ係数h81’’(i,j)およびh82’’(i,j)を用いて、当該対象フレームに対して第2の出力画像データ#100’を生成する。ただし、適応フィルタ100は、本ステップにおいては、参照画像リストを問わず、参照画像インデクスref_idxを0として参照画像#14bが参照された場合、参照画像#14bにおける参照ピクチャRP(ref_idx=0)を参照してフィルタ係数h81’’(i,j)を用いたフィルタリングを行い、参照画像インデクスref_idxとして0でない値で参照画像#14bが参照された場合、通常とは異なり、参照画像#14bにおける参照ピクチャRP(ref_idx=0)を参照し、フィルタ係数h82’’(i,j)’を用いたフィルタリングを行う。
換言すれば、適応フィルタ100は、予測画像の再生成時に、第1の予測画像#16’に対する領域ER82の面積比が、予め定められた面積比未満である場合には、参照画像リストL0における参照画像インデクスref_idx=1によって、参照画像リストL0における参照画像インデクスref_idx=0が指定する参照ピクチャと同じ参照ピクチャを参照し、当該参照ピクチャ上の領域ER~822’aに対して、例えば、エッジ強調効果を有するフィルタ係数を用いてフィルタリングを行う。また、適応フィルタ100は、参照画像リストL1における参照画像インデクスref_idx=1によって、参照画像リストL1における参照画像インデクスref_idx=0が指定する参照ピクチャと同じ参照ピクチャを参照し、当該参照ピクチャ上の領域ER~822’bに対して、例えば、エッジ強調効果を有するフィルタ係数を用いてフィルタリングを行う。
図9は、参照画像#14bにおいて、参照画像リストL0および参照画像インデクスref_idx=0によって指定される参照ピクチャAにおける領域ER~812’a、および、参照画像リストL1および参照画像インデクスref_idx=0によって指定される参照ピクチャBにおける領域ER~812’bに対して、フィルタ係数h81’’を用いたフィルタ1を施し、参照画像リストL0および参照画像インデクスref_idx=1によっても指定される参照ピクチャAにおける領域ER~822’a、および、参照画像リストL1および参照画像インデクスref_idx=1によっても指定される参照ピクチャBにおける領域ER~822’bに対して、フィルタ係数h82’’を用いたフィルタ1’を施す場合を示す図である。
なお、上記エッジ強調効果を有するフィルタ係数としては、予め定められた係数を用いればよい。また、上記エッジ強調効果を有するフィルタ係数に代えて、ぼかし効果など他の効果を有するフィルタ係数や、あるいは標準フィルタ係数を用いてもよい。
適応フィルタ100は、以上のようなフィルタリングを行うことによって、第2の出力画像データ#100’を生成し、出力する。
このように、インター予測画像#16がBスライスの場合であっても、参照画像インデクスref_idxは、適応的なフィルタリングを行うのか、または、エッジ強調効果を有するフィルタ係数を用いて非適応的なフィルタリングを行うのかを示す指標として機能していることになる。
また、以上のように、インター予測画像#16がBスライスの場合であっても、参照画像インデクスref_idx=1がほとんど用いられない場合、非適応的なフィルタリングを行うことを示す指標として用いることができるので、追加のサイド情報によって符号量を増加させることなく、パーティション毎に適応的フィルタリングと、非適応的フィルタリングとを切り替えることができる。
なお、符号化データ#2には、参照画像インデクスref_idxとして格納される値が、本来の意味として参照画像の識別番号を表すのか、あるいはフィルタの選択に用いられることを表すのかを選択するフラグが含むことが好ましい。
(動作例8)
以下では、インター予測画像生成部16の第8の動作例について図10〜図11を参照して説明する。
本動作例においては、上記ステップ104、および、上記ステップ105は、それぞれ、以下に説明するステップ804、および、ステップ805に置き換わる。
(ステップ804)
適応フィルタ100は、第1の予測画像#16’を、参照画像リストL0における参照ピクチャを参照するパーティションから構成される領域ER91と、参照画像リストL1における参照ピクチャを参照するパーティションから構成される領域ER92と、に分割する。また、入力画像を、上記第1の領域ER91に対応する領域ER91’と、上記第2の領域ER92に対応する領域ER92’とに分割する。
また、適応フィルタ100は、参照画像#14bの参照画像リストL0における参照画像インデクスref_idxが0である参照ピクチャRP(L0、ref_idx=0)において、上記領域ER91’の予測のために参照される領域を領域ER~91’aに設定し、参照画像リストL0における参照画像インデクスref_idxが0でない参照ピクチャRP(L0、ref_idx=1)において、上記領域ER91’の予測のために参照される領域を領域ER~91’bに設定する。
また、適応フィルタ100は、参照画像#14bにおいて参照画像リストL1における参照画像インデクスref_idxが0である参照ピクチャRP(L1、ref_idx=0)において、上記領域ER92’の予測のために参照される領域を領域ER~92’aに設定し、参照画像リストL1における参照画像インデクスref_idxが1である参照ピクチャRP(L1、ref_idx=1)において、上記領域ER92’の予測のために参照される領域を領域ER~92’bに設定する。さらに、上記領域ER~91’aおよび領域ER~91’bを総称して領域ER~91’とし、上記領域ER~92’aおよび領域ER~92’bを総称して領域ER~92’とする。
(ステップ805)
適応フィルタ100は、第1の予測画像#16’に対する、領域ER~91’の寄与の重み、および、領域ER~92’の寄与の重みが何れも、予め定められた重み以上である場合には、領域ER91’a、および、領域ER91’bに対して、フィルタ係数h91’(i,j)を用いて適応的なフィルタリングを行うと共に、領域ER92’a、および、領域ER92’bに対して、フィルタ係数h92’(i,j)を用いて適応的なフィルタリングを行う。フィルタ係数h91’(i,j)、および、フィルタ係数h92’(i,j)の決定には、上述した統計的手法を用いることができる。
なお、上記寄与の重みとは、例えば、H.264/AVC規格における、Bピクチャ上の各領域を生成する際に参照する2枚の参照ピクチャの各々の、当該領域に対する輝度の重みと当該領域の面積の積の合計が、全体に占める割合に対応する。なお、寄与の重みの全体は画素数に等しい。また、ある領域が複数回参照される場合は、寄与の重みも複数回算入されるものとする。
図10は、ref_idxの最大値が1の場合に、参照画像#14bのうち参照画像リストL0における参照画像インデクスref_idx=0によって指定される参照ピクチャであって、参照画像リストL1における参照画像インデクスref_idx=1によっても指定される参照ピクチャAと、参照画像リストL0における参照画像インデクスref_idx=1によって指定される参照ピクチャBと、参照画像リストL1における参照画像インデクスref_idx=0によって指定される参照ピクチャCとを、インター予測画像#16と共に示す図である。
図10に示すように、適応フィルタ100は、参照ピクチャA上の領域ER~91’a、および、参照ピクチャB上の領域ER~91’bに対して、フィルタ係数h91’(i,j)を用いたフィルタ1を施し、参照ピクチャA上の領域ER~92’b、および、参照ピクチャC上の領域ER~92’aに対して、フィルタ係数h92’(i,j)を用いたフィルタ2を施す。
一方で、適応フィルタ100は、全体に対する領域ER~91’の寄与の重みが、予め定められた重みよりも小さい場合には、参照画像リストL0およびL1を指定する情報の解釈を変更し、下記のステップ805.1の処理によって予測画像を再度生成する。
(ステップ805.1)
以下では、全体に対する領域ER92’の寄与の重みが、予め定められた重みよりも小さい場合を例に挙げ、適応フィルタ100の動作について説明する。
全体に対する領域ER92’の寄与の重みが、予め定められた重みよりも小さい場合、参照画像リストL0およびL1を指定する情報の解釈が変更され、新たな解釈に基づいて、第2の出力画像データ#100’が生成される。
適応フィルタ以外の処理手順は通常と同じであるが、適応フィルタ100は、全体に対する領域ER92’の寄与の重みが、予め定められた重みよりも小さい場合、参照画像リストL0を指定して参照された参照ピクチャについては、通常通り参照画像リストL0から指定のref_idxの参照ピクチャを取得し、フィルタ係数h91’’(i,j)を用いて適応的なフィルタリングを行う。フィルタ係数h91’’(i,j)は第1の予測画像#16’における領域ER91と、入力画像における領域ER91’との誤差が最小となるようなフィルタである。
適応フィルタ100は、参照ピクチャの指定において、参照画像リストL1が指定された場合、参照画像リストL1に代えて参照画像リストL0を用い、フィルタ係数h91’’(i,j)とは異なるフィルタを適用する。例えば、エッジ強調効果を有するフィルタ係数を用いてフィルタリングを行う。また、当該エッジ強調効果を有するフィルタ係数としては、予め定められた係数を用いればよい。また、上記エッジ強調効果を有するフィルタ係数に代えて、ぼかし効果など他の効果を有するフィルタ係数や、あるいは標準フィルタ係数を用いてもよい。
換言すれば、適応フィルタ100は、第1の予測画像#16’に対する領域ER92’の重みが予め定められた重みより小さい場合には、予測画像の再生成時に、参照画像リスト番号L1、および、参照画像インデックスref_idx=n(n=0,1)によって、参照画像リスト番号L0、および、参照画像インデックスref_idx=nが指定する参照ピクチャと同じ参照ピクチャを参照し、当該参照ピクチャ上の被参照領域に対して、例えば、エッジ強調効果を有するフィルタ係数を用いてフィルタリングを行う。
図11は、参照画像#14bにおいて、参照画像リストL0および参照画像インデクスref_idx=0によって指定される参照ピクチャAにおける領域ER~912’a、および、参照画像リストL0および参照画像インデクスref_idx=1によって指定される参照ピクチャBにおける領域ER~922’bに対して、フィルタ係数h91’’を用いた適応的なフィルタ1を施し、参照画像リストL1および参照画像インデクスref_idx=0によっても指定される参照ピクチャAにおける領域ER~912’’b、および、参照画像リストL1および参照画像インデクスref_idx=1によっても指定される参照ピクチャBにおける領域ER~922’’aに対して、エッジ強調効果を有するフィルタ1’を施す場合を示す図である。
なお、上記エッジ強調効果を有するフィルタ係数としては、予め定められた係数を用いればよい。また、上記エッジ強調効果を有するフィルタ係数に代えて、標準フィルタ係数を用いてもよい。
適応フィルタ100は、以上のようなフィルタリングを行うことによって、第2の出力画像データ#100’を生成し、出力する。
このように、本動作例においては、参照画像リスト番号は、適応的なフィルタリングを行うのか、または、エッジ強調効果を有するフィルタ係数を用いて非適応的なフィルタリングを行うのかを示す指標として機能していることになる。
また、以上のように、参照画像リスト番号L1が用いられない場合に、非適応的なフィルタリングを行うことを示す指標として用いることができるので、追加のサイド情報によって符号量を増加させることなく、適応的フィルタリングと、非適応的フィルタリングとを切り替えることができる。
なお、本動作例のように、パラメータの解釈が途中で変更される場合は、変更前の解釈によるパラメータを用いて導出された第1の動きベクトル#17’および予測モードは、再度導出して予測画像を生成することが好ましい。
なお、上記の説明では、第1の予測画像#16’の全体に対する領域ER92’の寄与の重みが、予め定められた重みよりも小さい場合を例に挙げたが、第1の予測画像#16’の全体に対する領域ER91’の寄与の重みが予め定められた重みよりも小さい場合に対しても同様に適用することができる。
(動作例9)
以下では、インター予測画像生成部16の第9の動作例について説明する。
本動作例においては、上記ステップ104、および、上記ステップ105は、それぞれ、以下に説明するステップ904、および、ステップ905に置き換わる。
(ステップ904)
適応フィルタ100は、第1の予測画像#16’を、画像の上半分の領域ER101と、画像の下半分の領域ER102とに分割する。
また、適応フィルタ100は、入力画像#1を、上記第1の領域ER101に対応する領域ER101’と、上記第2の領域ER102に対応する領域ER102’とに分割する。さらにこれらに対応して、参照画像#14bにおいて領域ER101’の予測のために参照される領域を領域ER~101’に設定し、参照画像#14bにおいて領域ER102’の予測のために参照される領域を領域ER~102’に設定する。
(ステップ905)
適応フィルタ100は、参照画像#14bにおける領域ER~101’に対して、フィルタ係数h101’(i,j)に基づいて適応的フィルタリングを行い、参照画像#14bにおける領域ER~102’に対して、フィルタ係数h102’(i,j)に基づいて適応的フィルタリングを行う。
ここで、フィルタ係数h101’(i,j)は、第1の予測画像#16’における領域ER101と、それに対応する入力画像#1における領域ER101’との誤差が最小となるように定められる。また、フィルタ係数h102’(i,j)は、第1の予測画像#16’における領域ER102と、それに対応する入力画像#1における領域ER102’との誤差が最小となるように定められる。フィルタ係数hk’(i、j)(k=101,102)の具体的な決定には、上述した統計的手法を用いればよい。
適応フィルタ100は、以上のようなフィルタリングを行うことによって、第2の出力画像データ#100’を生成し、出力する。
インター予測画像生成部16が、上記のような動作をすることによって、画像の上半分から参照される参照画像の領域と、下半分から参照される参照画像の領域とに対して、各々独立に適応的なフィルタリングを行うことができる。
また、一方の領域に対しては、上記適応的なフィルタリングに代えて、予め定められたフィルタ係数によってフィルタリングを行うような構成としてもよい。
また、画像の中央部から参照される参照画像の領域に対してのみ適応的なフィルタリングを行い、それ以外の領域に対しては、予め定められたフィルタ係数によるフィルタリングを行うような構成としてもよい。
一般に、視聴者は、画面の中央部により注目し易いという傾向がある。上記の構成をとることによって、視聴者が注目し易い領域に対して、選択的に適応フィルタリングを行うことができるので、処理コストを抑えつつ、より効果的なフィルタリングを行うことができる。
(動作例10)
以下では、インター予測画像生成部16の第10の動作例について説明する。
本動作例においては、上記ステップ104、および、上記ステップ105は、それぞれ、以下に説明するステップ1004、および、ステップ1005に置き換わる。
(ステップ1004)
適応フィルタ100は、第1の予測画像#16’を、予め定められたサイズ以上のブロックから構成される領域ER111と、予め定められたサイズより小さいブロックから構成される領域ER112とに分割する。
ここで、上記ブロックとは、マクロブロックであってもよいし、マクロブロックよりも小さな単位の領域であってもよい。
また、適応フィルタ100は、入力画像#1を、上記第1の領域ER111に対応する領域ER111’と、上記第2の領域ER112に対応する領域ER112’とに分割する。さらにこれらに対応して、参照画像#14bにおいて領域ER111’の予測のために参照される領域を領域ER~111’に設定し、参照画像#14bにおいて領域ER112’の予測のために参照される領域を領域ER~112’に設定する。
(ステップ1005)
適応フィルタ100は、参照画像#14bにおける領域ER~111’に対して、フィルタ係数h111’(i,j)に基づいて適応的フィルタリングを行い、参照画像#14bにおける領域ER~112’に対して、フィルタ係数h112’(i,j)に基づいて適応的フィルタリングを行う。
ここで、フィルタ係数h111’(i,j)は、第1の予測画像#16’における領域ER111と、それに対応する入力画像#1における領域ER111’との誤差が最小となるように定められる。また、フィルタ係数h112’(i,j)は、第1の予測画像#16’における領域ER112と、それに対応する入力画像#1における領域ER112’との誤差が最小となるように定められる。フィルタ係数hk’(i、j)(k=111,112)の具体的な決定には、上述した統計的手法を用いればよい。
適応フィルタ100は、以上のようなフィルタリングを行うことによって、第2の出力画像データ#100’を生成し、出力する。
一般に、最適なフィルタ係数は、ブロックのサイズによって異なる。
インター予測画像生成部16が、上記のような動作をすることによって、上記予め定められたサイズ以上のブロックから構成される領域から参照される参照画像の領域と、上記予め定められたサイズより小さいブロックから構成される領域から参照される参照画像の領域とに対し、各々独立に適応的なフィルタリングを行うことができる。
また、第1の予測画像#16’を、パーティションのサイズに応じて、2つまたはそれ以上の領域に分割するような構成としてもよい。
また、上記予め定められたサイズ以上のブロック、または、予め定められたサイズ以上のパーティションから構成される領域から参照される参照画像の領域に対しては、予め定められたフィルタ係数によるフィルタリングを行うような構成としてもよい。
一般に、より大きなサイズのブロック、または、パーティションの画像は、より平坦であるという傾向がある。
上記の構成によれば、上記予め定められたサイズ以上のブロック(または、パーティション)から参照される参照画像の領域に対しては、固定的なフィルタリングを行いつつ、上記予め定められたサイズより小さいブロック(または、パーティション)から参照される参照画像の領域に対しては、適応的なフィルタリングを行うことができる。
したがって、上記の構成によれば、処理コストを抑えつつ、より効果的なフィルタリングを行うことができる。
(動作例11)
以下では、インター予測画像生成部16の第11の動作例について説明する。
本動作例においては、上記ステップ104、および、上記ステップ105は、それぞれ、以下に説明するステップ1104、および、ステップ1105に置き換わる。
(ステップ1104)
適応フィルタ100は、第1の予測画像#16’を、予め定められた値以上の大きさを有する動きベクトルが割り付けられたパーティションから構成される領域ER121と、そうでない動きベクトルが割り付けられたパーティションから構成される領域ER122とに分割する。
また、適応フィルタ100は、入力画像#1を、上記第1の領域ER121に対応する領域ER121’と、上記第2の領域ER122に対応する領域ER122’とに分割する。さらにこれらに対応して、参照画像#14bにおいて領域ER121’の予測のために参照される領域を領域ER~121’に設定し、参照画像#14bにおいて領域ER122’の予測のために参照される領域を領域ER~122’に設定する。
(ステップ1105)
適応フィルタ100は、参照画像#14bにおける領域ER121’に対して、フィルタ係数h121’(i,j)に基づいて適応的フィルタリングを行い、参照画像#14bにおける領域ER122’に対して、フィルタ係数h122’(i,j)に基づいて適応的フィルタリングを行う。
ここで、フィルタ係数h121’(i,j)は、第1の予測画像#16’における領域ER121と、それに対応する入力画像#1における領域ER121’との誤差が最小となるように定められる。また、フィルタ係数h122’(i,j)は、第1の予測画像#16’における領域ER122と、それに対応する入力画像#1における領域ER122’との誤差が最小となるように定められる。フィルタ係数hk’(i、j)(k=121,122)の具体的な決定には、上述した統計的手法を用いればよい。
適応フィルタ100は、以上のようなフィルタリングを行うことによって、第2の出力画像データ#100’を生成し、出力する。
一般に、最適なフィルタ係数は、パーティションに割り付けられた動きベクトルの大きさによって異なる。
インター予測画像生成部16が、上記のような動作をすることによって、上記予め定められた値以上の大きさを有する動きベクトルが割り付けられたパーティションから構成される領域から参照される参照画像の領域と、そうでない動きベクトルが割り付けられたパーティションから構成される領域から参照される参照画像の領域とに対し、各々独立に適応的なフィルタリングを行うことができる。
また、本動作例においては、上記予め定められた値以上の大きさを有する動きベクトルが割り付けられたパーティションから構成される領域から参照される参照画像の領域のみに対し、適応的なフィルタリングを行い、そうでない動きベクトルが割り付けられたパーティションから構成される領域から参照される参照画像の領域に対しては、予め定められたフィルタ係数を用いて固定的なフィルタリングを行うようにしてもよい。
一般に、大きさがより大きい動きベクトルが割り付けられたパーティションから参照される参照画像の領域に対しては、適応的なフィルタリングを行うことがより効果的である。
上記のような構成をとることにより、大きさが小さい動きベクトルが割り付けられたパーティションからなる領域から参照される参照画像の領域に対しては、固定的なフィルタリングを行いつつ、大きさが大きい動きベクトルが割り付けられたパーティションから構成される領域から参照される参照画像の領域に対しては、適応的なフィルタリングを行うことができるので、処理コストを抑えつつ、より効果的なフィルタリングを行うことができる。
また、本動作例においては、動きベクトルの水平方向の成分が、予め定められた値以上であるか否か、または、動きベクトルの垂直方向の成分が、予め定められた値以上であるか否か、に応じて、2つの領域に分割するような構成としてもよい。
このような構成とすることにより、動きベクトルの成分ごとの大きさに応じて、より適切なフィルタリングを行うことができる。
あるいは、動きベクトル向きに応じて2つの領域に分割するような構成とすることもできる。
(動作例12)
また、上記の動作例においては、当該マクロブロック、または、当該パーティションに関連付けられた情報(スキップモード、参照インデックスなど)に応じて、当該マクロブロック、または、当該パーティションが複数の領域のうち何れかに分類される場合について説明を行ったが、本発明はこれに限定されるものではない。
すなわち、上記の動作例は、当該マクロブロックの近傍のマクロブロック、または、当該パーティションの近傍のパーティションに関連付けられた情報に応じて、当該マクロブロック、または、当該パーティションが、複数の領域のうち、何れかの領域に分類されるような構成とすることもできる。
特に、適応フィルタ100は、当該マクロブロックの近傍(隣接も含む)のマクロブロックにおける変換係数の値に応じて、当該マクロブロックを複数の領域のうち、何れかに分類し、それぞれの領域に対応して適応的なフィルタリングを行うような構成としてもよい。
また、適応フィルタ100は、当該マクロブロックの近傍のマクロブロックにおける変換係数の値が予め定められた値よりも小さい場合に、当該マクロブロックから参照される参照画像の領域を、固定フィルタによってフィルタリングするような構成としてもよい。
一般に、変換係数の符号量が小さいマクロブロックは、マクロブロック内における画像の変化が小さいため、予測し易い領域である。したがって、そのようなマクロブロックの近傍のマクロブロックから参照される参照画像の領域に対しては、固定フィルタを用いつつ、変換係数の符号量が大きいマクロブロックの近傍のマクロブロックから参照される参照画像の領域に対しては、適応フィルタを用いることによって、処理コストを抑えつつ、より適切なフィルタリングを行うことができる。
また、適応フィルタ100は、当該マクロブロックの近傍のマクロブロックにおける画像の平坦度に応じて、当該マクロブロックを複数の領域のうち、何れかに分類するような構成としてもよい。
一般に、領域の平坦度に応じて、最適なフィルタ係数は異なる。
上記の構成をとることによって、平坦度に応じて分割された複数の領域の各々に対して、独立に適応的にフィルタ係数を求めることができるので、より効率的なフィルタリングを行うことができる。
また、適応フィルタ100は、当該マクロブロックの近傍のマクロブロックにおける画像の明度や色差に応じて、当該マクロブロックを複数の領域のうち、何れかに分類するような構成としてもよい。
一般に、領域の明度や色差に応じて、最適なフィルタ係数は異なる。
上記の構成をとることによって、明度や色差に応じて分割された複数の領域の各々に対して、独立に適応的にフィルタ係数を求めることができるので、より効率的なフィルタリングを行うことができる。
(動作例13)
また、適応フィルタ100は、第1の予測画像#16’が参照する参照画像の情報に応じて、第1の予測画像#16’を複数の領域に分割するような構成としてもよい。
例えば、適応フィルタ100は、第1の予測画像#16’が参照する参照画像がイントラピクチャ、すなわち、イントラ予測によって生成されたピクチャであるか否かに応じて、第1の予測画像#16’を2つの領域に分割するような構成としてもよい。
一般に、参照画像がイントラピクチャであるか否かによって予測方式が異なるため、最適なフィルタ係数は異なる。
上記のような構成をとることによって、参照画像がイントラピクチャである領域と、参照画像がイントラピクチャでない領域とに対して、それぞれ、独立に適応的なフィルタ係数を算出することができる。したがって、第1の予測画像#16’が、イントラピクチャを参照する領域と、イントラピクチャを参照しない領域とから構成される場合であっても、適切なフィルタリングを行うことができる。
また、適応フィルタ100は、第1の予測画像#16’が参照する参照ピクチャにおける量子化パラメータQPの値に応じて、第1の予測画像#16’を複数の領域に分割するような構成としてもよい。
例えば、適応フィルタ100は、第1の予測画像#16’の各マクロブロックが参照する参照ピクチャにおいて当該マクロブロックに対応する領域における量子化パラメータQPの平均値が、予め定められた閾値以上であるか否かに応じて、第1の予測画像#16’を2つの領域に分割するような構成としてもよい。
一般に、量子化パラメータQPの値によって参照画像の画質は変化し、したがって最適なフィルタ係数は異なる。
上記のような構成をとることによって、量子化パラメータQPの値に応じて、より適切なフィルタリングを行うことができる。
また、適応フィルタ100は、第1の予測画像#16’が参照する参照画像上の領域における画素値の平均が予め定められた閾値以上であるか否かに応じて、第1の予測画像#16’を2つの領域に分割するような構成としてもよい。
一般に、参照画像上の領域が平坦である場合と、平坦でない場合における最適なフィルタ係数は異なる。
上記のような構成をとることによって、参照画像上の領域が平坦である場合と、参照画像上の領域が平坦でない場合とに対して、独立に、適応的なフィルタ係数を決定することができる。
したがって、上記の構成をとることによって、第1の予測画像#16’が参照する参照画像が平坦な領域と平坦でない領域とを含む場合であっても、より適切なフィルタリングを行うことができる。
また、適応フィルタ100は、第1の予測画像#16’が参照する参照画像上の領域に含まれるマクロブロックの情報に応じて、第1の予測画像#16’を複数の領域に分割するような構成としてもよい。
上記の構成をとることによって、第1の予測画像#16’が参照する参照画像上の領域に含まれるマクロブロックの情報に応じて、より適切なフィルタリングを行うことができる。
(符号化データ#2の構成)
以下では、動画像符号化装置1を用いて生成した符号化データ#2の構成について、図14を参照して説明する。
図14は、動画像符号化装置1を用いて生成し、以下で説明する動画像復号装置2に参照される符号化データ#2のスライスごとのビットストリーム#BSを示す図である。図14に示すように、ビットストリーム#BSは、フィルタ係数情報FC、マクロブロック情報MB1〜MBNを含んでいる。
フィルタ係数情報FCは、適応フィルタ100によって生成されたフィルタ係数を含む情報である。
マクロブロック情報MB1〜MBNは、当該スライスに含まれるマクロブロックに関する情報であり、マクロブロックの予測モード#18b、ブロック分割情報などが含まれている。ここで、Nは、当該スライスに含まれるマクロブロックの数を表している。
以下では、上述した各動作例において、動画像符号化装置1が出力する符号化データ#2の構成について、より具体的に説明する。
(構成例1)
動作例1において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例1においては、動画像符号化装置1は、第1の予測画像#16’を、スキップモードが適用されているマクロブロックから構成される第1の領域ER1と、スキップモードが適用されていないマクロブロックから構成される第2の領域ER2とに分割し、領域ER1、および、領域ER2に対応して、それぞれ、フィルタ係数h1’(i,j)、および、フィルタ係数h2’(i,j)を適応的に算出する。
符号化データ#2におけるフィルタ係数情報FCには、このように算出されたフィルタ係数h1’(i,j)、および、フィルタ係数h2’(i,j)が含まれる。
また、符号化データ#2におけるマクロブロック情報MB1〜MBNには、各マクロブロックにスキップモードが適用されているか否かの情報が含まれる。
(構成例2)
動作例2において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例1においては、動画像符号化装置1は、第1の予測画像#16’を、参照画像インデクスref_idxが0であるパーティションから構成される領域ER21と、それ以外の領域ER22とに分割し、領域ER21、および、領域ER22に対応して、それぞれ、フィルタ係数h21’(i,j)、および、フィルタ係数h22’(i,j)を適応的に算出する。
符号化データ#2におけるフィルタ係数情報FCには、このように算出されたフィルタ係数h21’(i,j)、および、フィルタ係数h22’(i,j)が含まれる。
また、符号化データ#2には、各パーティションが参照する参照画像インデクスが含まれる。
(構成例3)
動作例3において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例3においては、適応フィルタ100は、動作例1において説明した動作によって、インター予測画像#16aを生成し、動作例2において説明した動作によって、インター予測画像#16bを生成する。また、適応フィルタ100は、インター予測画像#16a、および、インター予測画像#16bのうち、符号化効率の高い予測画像を選択し、出力する。
符号化データ#2におけるフィルタ係数情報FCには、適応フィルタ100によって、選択された予測画像を生成するために用いられたフィルタ係数が含まれる。
また、符号化データ#2は、動作例1、および、動作例2のうち、何れの方法によって予測画像が生成されたのかを示すフラグを含むことが好ましい。すなわち、符号化データ#2は、自身に含まれるフィルタ係数が、スキップモードを参照して算出されたフィルタ係数であるか、または、参照画像インデクスを参照して算出されたフィルタ係数であるかを示すフラグを含むことが好ましい。
なお、動作例3において説明したように、適応フィルタ100が、動作例1における領域ER1と領域ER2との面積差と、動作例2における領域ER21と領域ER22との面積差を参照して、インター予測画像#16a、または、インター予測画像#16bを選択するような場合には、符号化データ#2には、何れの方法によって予測画像を生成したかを示すフラグを含まない構成とすることも可能である。これは、符号化データ#2を復号する動画像復号装置において、上記面積差を算出することによって、フラグを参照することなく、動作例1、および、動作例2のうち、何れの方法によって予測画像が生成されたのかを識別することができるためである。
(構成例4)
動作例4において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例4においては、適応フィルタ100は、第1の予測画像#16’に含まれる各領域を、予め定められた判定基準によって、領域ER41と、領域ER42とに分割し、さらに、入力画像#1を領域ER41と領域ER42とに対応する、領域ER41’と領域ER42’とに分割し、領域ER41’、および、領域ER42’に対応して、それぞれ、フィルタ係数h41’(i,j)、および、フィルタ係数h42’(i,j)を適応的に算出する。
符号化データ#2におけるフィルタ係数情報FCには、このように算出されたフィルタ係数h41’(i,j)、および、フィルタ係数h42’(i,j)が含まれる。
また、符号化データ#2には、参照画像における各領域が、上記領域ER41’、または、上記領域ER42’の何れに対応する領域であるかを示すフラグが含まれる。
例えば、動作例4において、適応フィルタ100が、第1の予測画像#16’に含まれる各マクロブロックを、予め定められた判定基準によって、領域ER41と、領域ER42とに分割する場合には、符号化データ#2におけるマクロブロック情報MB1〜MBNには、各マクロブロックが、上記領域ER41’、および、上記領域ER42’の何れに属する領域であるかを示すフラグが含まれる。
また、上記予め定められた判定基準が複数存在するような場合には、符号化データ#2には、動画像符号化装置1が、第1の予測画像#16’に含まれる各領域を、何れの判定基準によって分割したかを示すフラグを含むことが好ましい。
(構成例5)
動作例5において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例5においては、例えば、適応フィルタ100は、第1の予測画像#16’に含まれる各マクロブロックに対応する入力画像#1の領域における平均画素値に応じて、第1の予測画像#16’を、領域ER51と、領域ER52とに分割し、さらに、入力画像#1を領域ER51と領域ER52とに対応する、領域ER51’と領域ER52’とに分割し、領域ER51’、および、領域ER52’に対応して、それぞれ、フィルタ係数h51’(i,j)、および、フィルタ係数h52’(i,j)を適応的に算出する。
符号化データ#2におけるフィルタ係数情報FCには、このように算出されたフィルタ係数h51’(i,j)、および、フィルタ係数h52’(i,j)が含まれる。
また、符号化データ#2におけるマクロブロック情報MB1〜MBNには、各マクロブロックが、上記領域の何れに属するマクロブロックであるかを示すフラグが含まれる。
また、適応フィルタ100が、予測誤差を参照して、第1の予測画像#16’を分割するような場合についても同様である。
(構成例6)
動作例6において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例6においては、適応フィルタ100は、上述した動作例1〜5において分割された第1の予測画像#16’の一方の領域の面積が、第1の予測画像#16’の面積に対して占める割合が、予め定められた割合以下である場合に、当該一方の領域から参照される参照画像#14bの領域に対して、上述した標準フィルタ係数を用いてフィルタリングを行い、他の一方の領域から参照される参照画像#14bの領域に対して、上述した統計的手法によって算出された適応的なフィルタ係数を用いてフィルタリングを行う。
符号化データ#2におけるフィルタ係数情報FCには、このように算出された適応的なフィルタ係数が含まれる。また、符号化データ#2は、標準フィルタ係数を用いた領域を示すフラグを含むことが好ましい。
また、適応フィルタ100が、分割された第1の予測画像#16’の一方の領域の面積の第1の予測画像#16’の面積に対して占める割合が、予め定められた割合以下である場合に、分割前の第1の予測画像#16’全体に対して、適応的にフィルタ係数を算出するような構成である場合には、符号化データ#2は、複数の適応的フィルタを用いないことを示すフラグを含むことが好ましい。
(構成例7)
動作例7において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例7においては、適応フィルタ100は、参照画像インデクスref_idxが0でない参照ピクチャを参照する領域の、第1の予測画像#16’に対する面積比が、予め定められた面積比未満である場合には、参照画像インデクスref_idxが0である参照ピクチャを参照する領域に対して、適応的なフィルタ係数を算出すると共に、参照画像インデクスref_idxが0でない参照ピクチャを参照する領域に対応する領域であって、参照画像インデクスref_idxが0でない参照ピクチャ上の領域に対して、例えば、エッジ強調効果を有するフィルタ係数を用いてフィルタリングを行う。また、当該エッジ強調効果を有するフィルタ係数は、予め定められたものを用いればよい。
符号化データ#2におけるフィルタ係数情報FCには、上記のように算出された適応的なフィルタ係数が含まれる。
また、符号化データ#2には、各領域が参照する参照ピクチャの参照画像インデクスが含まれる。
本構成例においては、参照画像インデクスref_idxは、適応的なフィルタリングを行うのか、または、エッジ強調効果を有するフィルタ係数を用いて非適応的なフィルタリングを行うのかを示す指標として機能する場合がある。
したがって、符号化データ#2には、参照画像インデクスref_idxとして格納される値が、本来の意味として参照画像の識別番号を表すのか、あるいはフィルタの選択に用いられることを表すのかを選択するフラグを含むことが好ましい。
(構成例8)
動作例8において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例8においては、適応フィルタ100は、第1の予測画像#16’の領域であって、参照画像リスト番号が1である参照画像を参照する領域において、当該参照画像リスト番号が1である参照画像の寄与の重みが、予め定められた重みよりも小さい場合には、参照画像リスト番号が0である参照画像を参照する領域に対して、適応的なフィルタ係数を算出すると共に、参照画像リスト番号が1である参照画像を参照する領域に対応する領域であって、参照画像リスト番号が0である参照画像上の領域に対して、例えば、エッジ強調効果を有するフィルタ係数を用いてフィルタリングを行う。また、当該エッジ強調効果を有するフィルタ係数は、予め定められたものを用いればよい。
符号化データ#2におけるフィルタ係数情報FCには、上記のように算出された適応的なフィルタ係数が含まれる。
また、符号化データ#2には、各領域が参照する参照画像の参照画像リスト番号が含まれる。
本構成例においては、参照画像リスト番号は、適応的なフィルタリングを行うのか、または、エッジ強調効果を有するフィルタ係数を用いて非適応的なフィルタリングを行うのかを示す指標として機能する場合がある。
したがって、符号化データ#2には、参照画像リスト番号として格納される値が、本来の意味として参照画像リストを区別する番号を表すのか、あるいはフィルタの選択に用いられることを表すのかを選択するフラグを含むことが好ましい。
(構成例9)
動作例9において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例9においては、適応フィルタ100は、入力画像#1を、画像の上半分の領域ER101’と、画像の下半分の領域ER102’とに分割し、領域ER101’から参照される参照画像#14bの領域、および、領域ER102’から参照される参照画像#14bの領域に対応して、それぞれ、フィルタ係数h101’(i,j)、および、フィルタ係数h102’(i,j)を適応的に算出する。
符号化データ#2におけるフィルタ係数情報FCには、上記のように算出されたフィルタ係数h101’(i,j)、および、フィルタ係数h102’(i,j)が含まれる。
また、適応フィルタ100が、画像の下半分の領域ER102’から参照される参照画像#14bの領域に対しては、上記適応的なフィルタリングに代えて、予め定められたフィルタ係数によってフィルタリングを行うような構成とする場合には、符号化データ#2におけるフィルタ係数情報FCには、フィルタ係数h101’(i,j)が含まれる。
(構成例10)
動作例10において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例10においては、適応フィルタ100は、第1の予測画像#16’を、予め定められたサイズ以上のブロックから構成される領域ER111と、予め定められたサイズより小さいブロックから構成される領域ER112とに分割し、さらに、入力画像#1を領域ER111と領域ER112とに対応する、領域ER111’と領域ER112’とに分割し、領域ER111’、および、領域ER112’に対応して、それぞれ、フィルタ係数h111’(i,j)、および、フィルタ係数h112’(i,j)を適応的に算出する。
符号化データ#2におけるフィルタ係数情報FCには、上記のように算出されたフィルタ係数h111’(i,j)、および、フィルタ係数h112’(i,j)が含まれる。
また、適応フィルタ100が、上記予め定められたサイズ以上のブロックから構成される領域ER111から参照される参照画像#14bの領域に対して、予め定められたフィルタ係数によるフィルタリングを行うような構成とする場合には、符号化データ#2におけるフィルタ係数情報FCには、フィルタ係数h112’(i,j)が含まれる。
(構成例11)
動作例11において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例11においては、適応フィルタ100は、第1の予測画像#16’を、予め定められた値以上の大きさを有する動きベクトルが割り付けられたパーティションから構成される領域ER121と、そうでない動きベクトルが割り付けられたパーティションから構成される領域ER122とに分割し、さらに、入力画像#1を領域ER121と領域ER122とに対応する、領域ER121’と領域ER122’とに分割し、領域ER121’、および、領域ER122’に対応して、それぞれ、フィルタ係数h121’(i,j)、および、フィルタ係数h122’(i,j)を適応的に算出する。
符号化データ#2におけるフィルタ係数情報FCには、上記のように算出されたフィルタ係数h121’(i,j)、および、フィルタ係数h122’(i,j)が含まれる。
また、本動作例においては、上記予め定められた値以上の大きさを有する動きベクトルが割り付けられたパーティションから構成される領域ER121から参照される参照画像#14bの領域のみに対し、適応的なフィルタリングを行い、そうでない動きベクトルが割り付けられたパーティションから構成される領域ER122から参照される参照画像#14bの領域に対しては、予め定められたフィルタ係数を用いて固定的なフィルタリングを行う構成とする場合には、符号化データ#2におけるフィルタ係数情報FCには、フィルタ係数h121’(i,j)が含まれる。
(構成例12)
動作例12において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例12においては、適応フィルタ100は、当該マクロブロックの近傍(隣接も含む)のマクロブロックにおける変換係数の値に応じて、当該マクロブロックを複数の領域のうち、何れかに分類し、それぞれの領域に対応してフィルタ係数を適応的に算出する。
符号化データ#2におけるフィルタ係数情報FCには、このように算出された適応的なフィルタ係数が含まれる。
また、上記複数の領域うち、何れかの領域に対して固定的なフィルタリングを行う場合であって、符号化データ#2を復号する動画像復号装置に、当該固定的なフィルタリングを行うためのフィルタ係数が格納されている場合には、符号化データ#2におけるフィルタ係数情報FCは、そのような固定的なフィルタリングを行うためのフィルタ係数を含まなくてもよい。ただし、この場合には、符号化データ#2は、固定的なフィルタリングを行った領域を示すフラグを含むことが好ましい。
動作例12において説明したその他の場合についても、ほぼ同様である。
(構成例13)
動作例13において動画像符号化装置1が出力する符号化データ#2の構成は以下の通りである。
すでに説明したように、動作例13においては、適応フィルタ100は、第1の予測画像#16’が参照する参照画像がイントラピクチャ、すなわち、イントラ予測によって生成されたピクチャであるか否かに応じて、第1の予測画像#16’を2つの領域に分割し、それぞれの領域に対応して、フィルタ係数を適応的に算出する。
符号化データ#2におけるフィルタ係数情報FCには、このように算出された適応的なフィルタ係数が含まれる。
また、適応フィルタ100が、量子化パラメータQPを参照して、第1の予測画像#16’を複数の領域に分割する場合についても、ほぼ同様である。
(動画像復号装置2)
以下では、本発明に係る動画像復号装置2について、図12〜図13を参照して説明する。
動画像復号装置2は、その一部に、H.264/AVC規格、および、KTAソフトウェアに採用されている技術を用いている動画像復号装置である。
図12は、動画像復号装置2の構成を示すブロック図である。
図12に示すように、動画像復号装置2は、可変長符号復号部23、動きベクトル復元部24、バッファメモリ25、インター予測画像生成部26、イントラ予測画像生成部27、予測方式決定部28、逆量子化・逆変換部29、および、加算器30を備えている。
動画像復号装置2は、符号化データ#2を受け、復号画像#3を出力する。
可変長符号復号部23は、符号化データ#2を可変長復号し、差分動きベクトル#23a、サイド情報#23b、量子化予測残差データ#23c、および、フィルタ係数情報#23dを出力する。ここで、フィルタ係数情報#23dは、上述したフィルタ係数#101に対応する情報が含まれている。
動きベクトル復元部24は、差分動きベクトル#23a、および、すでに復号され、バッファメモリ25に格納された動きベクトル#25aから対象パーティションの動きベクトル#24を復号する。
バッファメモリ25には、復号画像#3、動きベクトル#24、および、サイド情報#23bが格納される。
インター予測画像生成部26は、動きベクトル復元部24によって復号され、バッファメモリ25を経由した動きベクトル#24、および、バッファメモリ25に格納された参照画像#25dに基づいて、インター予測画像#26を生成する。なお、動きベクトル#25cは、動きベクトル#24と同一の動きベクトルを含む。また、インター予測画像生成部26には、サイド情報#23b、および、フィルタ係数情報#23dが入力される。
インター予測画像生成部26の構成については、後で詳述するため、ここでは説明を省略する。
イントラ予測画像生成部27は、バッファメモリ25に格納された、対象マクロブロックと同じ画像内の局所復号画像#25bから、イントラ予測画像#27を生成する。
予測方式決定部28は、サイド情報#23bに含まれる予測モード情報に基づいて、イントラ予測画像#27、または、インター予測画像#26のうち、何れか一方を選択し、予測画像#28として出力する。
逆量子化・逆変換部29は、量子化予測残差データ#23cに対し、逆量子化、および、逆DCT変換を行い、予測残差#29を出力する。
加算器30は、予測残差#29、および、予測画像#28を加算し、復号画像#3として出力する。また、出力された復号画像#3は、バッファメモリ#3に供給される。
(インター予測画像生成部26)
図13は、インター予測画像生成部26の構成を示すブロック図である。図13に示すように、インター予測画像生成部26は、予測画像生成部26a、および、適応フィルタ100’’を備えている。
適応フィルタ100’’は、バッファメモリ25に格納された参照画像#25dに対して、フィルタリングを施すことによって出力画像データ#100’’’を生成し、出力する。また、当該フィルタリングは、符号化データ#2から復号されたフィルタ係数情報#23dに基づいて行われる。
また、適応フィルタ100’’には、サイド情報#23bが入力される。ここで、サイド情報#23bは、対象ブロックが双方向予測されたブロックであるか、または、単方向予測されたブロックであるかの情報、対象マクロブロックにスキップモードが適用されているか否かの情報、対象マクロブロックがイントラ予測されたマクロブロックであるか、インター予測されたマクロブロックであるかの予測モード情報、対象ブロックに関連付けられた量子化パラメータQPを含むものとする。
予測画像生成部26aは、出力画像データ#100’’’に対し、動きベクトル#25cを用いた動き補償を行うことによって、インター予測画像#26を生成し出力する。
以下では、構成例1〜13において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作について、より具体的に説明する。
(復号動作例1)
構成例1において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
適応フィルタ100’’は、符号化データ#2におけるマクロブロック情報MB1〜MBNに含まれる情報であって、各マクロブロックにスキップモードが適用されているか否かの情報を参照し、スキップモードが適用されているマクロブロックに対しては、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h1’(i,j)を用いてフィルタリングを行い、スキップモードが適用されていないマクロブロックに対しては、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h2’(i,j)を用いてフィルタリングを行う。
(復号動作例2)
構成例2において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
適応フィルタ100’’は、符号化データ#2に含まれる情報であって、各パーティションが参照する参照画像インデクスref_idxについての情報を参照し、参照画像インデクスref_idxが0であるパーティションに対しては、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h21’(i,j)を用いてフィルタリングを行い、参照画像インデクスref_idxが0でないパーティションに対しては、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h22’(i,j)を用いてフィルタリングを行う。
(復号動作例3)
構成例3において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
まず、適応フィルタ100’’は、符号化データ#2に含まれるフラグを参照して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数が、スキップモードを参照して算出されたフィルタ係数であるか、または、参照画像インデクスref_idxを参照して算出されたフィルタ係数であるかを判別する。
符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数がスキップモードを参照して算出されたフィルタ係数である場合には、適応フィルタ100’’は、スキップモードが適用されているマクロブロックに対しては、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h1’(i,j)を用いてフィルタリングを行い、スキップモードが適用されていないマクロブロックに対しては、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h2’(i,j)を用いてフィルタリングを行う。
一方で、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数が参照画像インデクスref_idxを参照して算出されたフィルタ係数である場合には、参照画像インデクスref_idxが0であるパーティションに対しては、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h21’(i,j)を用いてフィルタリングを行い、参照画像インデクスref_idxが0でないパーティションに対しては、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h22’(i,j)を用いてフィルタリングを行う。
(復号動作例4)
構成例4において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
適応フィルタ100’’は、生成中のインター予測画像#26上の領域を、予め定められた判定基準によって、領域ER41’’に属するものと、領域ER42’’に属するものとに分類する。また、適応フィルタ100’’は、領域ER41’’の予測用に参照される参照画像#25dの領域を領域ER~41’’に設定し、領域ER42’’の予測用に参照される参照画像#25dの領域を領域ER~42’’に設定する。
また、適応フィルタ100’’は、領域ER~41’’、および、領域ER~42’’に対して、それぞれ、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h41’(i,j)、および、フィルタ係数h42’(i,j)を用いてフィルタリングを行う。ここで、領域ER~41’’、および、領域ER~41’’は、それぞれ、上記動作例4において説明した、領域ER~41’、および、領域ER~41’に対応している。
なお、予め定められた判定基準が複数存在するような場合には、適応フィルタ100’’は、当該予め定められた判定基準のうち、符号化データ#2に含まれるフラグによって指定される判定基準に基づいて、マクロブロックを分類し、分類されたそれぞれのマクロブロックが参照する領域に対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数を分類に応じて選択し、これを用いてフィルタリングを行う。
また、上記予め定められた判定基準は、動画像符号化装置における判定基準と同一であればよく、本発明を限定するものではないが、例えば、適応フィルタ100’’は、各マクロブロックを、当該マクロブロックに隣接する複数のマクロブロックのうち、より多くのマクロブロックが属する組に分類するようにすればよい。
(復号動作例5)
構成例5において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
適応フィルタ100’’は、符号化データ#2におけるマクロブロック情報MB1〜MBNに含まれるフラグを参照して、生成中のインター予測画像#26を、領域ER51’’と、領域ER52’’とに分割する。また、適応フィルタ100’’は、領域ER51’’の予測用に参照される参照画像#25dの領域を領域ER~51’’に設定し、領域ER52’’の予測用に参照される参照画像#25dの領域を領域ER~52’’に設定する。
また、適応フィルタ100’’は、領域ER~51’’、および、領域ER~52’’に対して、それぞれ、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h51’(i,j)、および、フィルタ係数h52’(i,j)を用いてフィルタリングを行う。ここで、領域ER~51’’および、領域ER~52’’は、それぞれ、上記動作例5において説明した領域ER~51’および、領域ER~52’に対応している。
なお、適応フィルタ100’’は、予測画像生成のために参照される参照画像#25dの各領域における平均画素値を用いた条件に応じて、生成中のインター予測画像#26を、領域ER51’’と、領域ER52’’とに分割し、それぞれの参照する領域ER~51’’、および、領域ER~52’’に対して、それぞれ、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h51’(i,j)、および、フィルタ係数h52’(i,j)を用いてフィルタリングを行うような構成としてもよい。この場合には、動画像符号化装置の側で同一の条件を用いれば、符号化データ#2に、各マクロブロックが何れの領域に属するかを示すフラグが含まれない場合であっても、各領域に対して、適切なフィルタリングを行うことができる。
(復号動作例6)
構成例6において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
まず、適応フィルタ100’’は、符号化データ#2に含まれるフラグを参照し、生成中のインター予測画像#26を、参照画像#25dにおいて標準フィルタが適用されるべき領域に対応する領域と、参照画像#25dにおいて符号化データ#2に含まれるフィルタ係数が適用されるべき領域に対応する領域とに分割する。
次に、適応フィルタ100’’は、標準フィルタが適用されるべき領域に対して、標準フィルタを用いてフィルタリングを行い、符号化データ#2に含まれるフィルタ係数が適用されるべき領域に対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数を用いてフィルタリングを行う。
また、動画像符号化装置1が、分割された第1の予測画像#16’の一方の領域の面積の第1の予測画像#16’の面積に対して占める割合が、予め定められた割合以下である場合に、分割前の第1の予測画像#16’全体に対して、適応的にフィルタ係数を算出するような構成である場合には、適応フィルタ100’’は、符号化データ#2に含まれるフラグであって、生成中のインター予測画像#26が参照する領域全体に対してフィルタを適用すべきか否かのフラグに応じて、参照される領域全体、または、参照される各領域に対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数を用いてフィルタリングを行う。
なお、適応フィルタ100’’は、生成中のインター予測画像#26上の複数の領域のうち当該生成中のインター予測画像#26に対する面積比が予め定められた面積比より大きい領域に対応する参照画像#25d上の領域に対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数を用いてフィルタリングを行い、生成中のインター予測画像#26上の複数の領域のうち当該生成中のインター予測画像#26に対する面積比が予め定められた面積比以下である領域に対応する参照画像#25d上の領域に対して、標準フィルタを用いてフィルタリングを行うような構成としてもよい。
このような構成をとることによって、適応フィルタ100’’は、符号化データ#2にフラグが含まれていない場合であっても、出力画像データ#100’’’を生成し、出力することができる。したがって、符号化データ#2の符号量を削減しつつ、効果的なフィルタリングを行うことができる。
(復号動作例7)
構成例7において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
本動作例においては、参照画像インデクスref_idxは、適応的なフィルタリングを行うのか、または、エッジ強調効果を有するフィルタ係数を用いて非適応的なフィルタリングを行うのかを示す指標として機能する場合がある。
まず、適応フィルタ100’’は、生成中のインター予測画像#26のうち、参照画像インデクスとして1を指定する領域の、生成中のインター予測画像#26全体に対する面積比が、予め定められた面積比未満であるか否かを判定する。
上記面積比が、上記予め定められた面積比以上である場合には、適応フィルタ100’’は、参照画像#25dのうち、参照画像インデクスが0である参照ピクチャ上の領域であって、インター予測画像#26が生成される際に参照される領域、および、参照画像インデクスが1である参照ピクチャ上の領域であって、インター予測画像#26が生成される際に参照される領域のそれぞれに対し、符号化データ#2におけるフィルタ係数情報FCに含まれる、それぞれの領域に対応したフィルタ係数を用いてフィルタリングを行う。
上記面積比が、上記予め定められた面積比未満である場合には、適応フィルタ100’’は、参照画像#25dのうち、参照画像インデクスが0である参照ピクチャ上の領域であって、インター予測画像#26が生成される際に参照される領域に対し、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数を用いてフィルタリングを行う。また、上記予め定められた面積比未満である場合には、適応フィルタ100’’は、参照画像インデクスとして1を指定して参照された領域に対しては、参照画像インデクスが1である参照ピクチャを用いず、参照画像インデクスが0である参照ピクチャ上の領域に対して、例えば、エッジ強調効果を有するフィルタ係数を用いてフィルタリングを行い、当該フィルタリングを行った領域を、インター予測画像#26が生成される際に参照されるべき領域として出力する。ここで、上記エッジ強調効果を有するフィルタ係数としては、予め定められたフィルタ係数を用いればよい。
なお、符号化データ#2が、参照画像インデクスref_idxとして格納された値が本来の意味を示すかどうかのフラグを含む場合には、当該フラグを参照すればよく、上記面積比に関する判定は不要となる。
(復号動作例8)
構成例8において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
本動作例においては、参照画像リスト番号は、適応的なフィルタリングを行うのか、または、エッジ強調効果を有するフィルタ係数を用いて非適応的なフィルタリングを行うのかを示す指標として機能する場合がある。
まず、適応フィルタ100’’は、生成中のインター予測画像#26のうち、当該参照画像リスト番号が1である参照ピクチャの寄与の重みが、予め定められた重みよりも小さいか否かを判定する。
上記重みが、上記予め定められた重み以上である場合には、適応フィルタ100’’は、参照画像リスト番号が0である参照ピクチャ上の領域であって、インター予測画像#26が生成される際に参照される領域、および、参照画像リスト番号が1である参照ピクチャ上の領域であって、インター予測画像#26が生成される際に参照される領域のそれぞれに対し、符号化データ#2におけるフィルタ係数情報FCに含まれる、それぞれの領域に対応したフィルタ係数を用いてフィルタリングを行う。
上記重みが、上記予め定められた重みより小さい場合には、適応フィルタ100’’は、参照画像#25dのうち、参照画像リスト番号が0である参照ピクチャ上の領域であって、インター予測画像#26が生成される際に参照される領域に対し、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数を用いてフィルタリングを行う。また、上記重みが、上記予め定められた重みより小さい場合には、適応フィルタ100’’は、参照画像リスト番号として1を指定して参照された領域に対しては、参照画像リスト番号が1である参照ピクチャを用いず、参照画像リスト番号が0である参照ピクチャ上の領域に対して、例えば、エッジ強調効果を有するフィルタ係数を用いてフィルタリングを行い、当該フィルタリングを行った領域を、インター予測画像#26が生成される際に参照されるべき領域として出力する。ここで、上記エッジ強調効果を有するフィルタ係数としては、予め定められたフィルタ係数を用いればよい。
なお、符号化データ#2が、参照画像リスト番号として格納された値が本来の意味を示すかどうかのフラグを含む場合には、当該フラグを参照すればよく、上記寄与の重みに関する判定は不要である。
(復号動作例9)
構成例9において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
適応フィルタ100’’は、生成中のインター予測画像#26を、画像の上半分の領域と、画像の下半分の領域とに分割し、画像の上半分の領域、および、画像の下半分の領域それぞれが参照する参照画像#25dの領域に対して、それぞれ、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h101’(i,j)、および、フィルタ係数h102’(i,j)を用いてフィルタリングを行う。
また、動画像符号化装置1における適応フィルタ100が、参照画像#14b上の領域であって、画像の下半分の領域から参照される参照画像#25dの領域に対して、上記適応的なフィルタリングに代えて、予め定められたフィルタ係数によってフィルタリングを行うような構成である場合には、適応フィルタ100’’は、画像の上半分の領域から参照される参照画像#25dの領域に対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h101’(i,j)を用いてフィルタリングを行い、画像の下半分の領域から参照される参照画像#25dの領域に対しては、予め定められたフィルタ係数によってフィルタリングを行う。
(復号動作例10)
構成例10において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
適応フィルタ100’’は、予め定められたサイズ以上のマクロブロックから参照される参照画像#25dの領域に対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h111’(i,j)を用いてフィルタリングを行い、予め定められたサイズより小さいマクロブロックに対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h112’(i,j)を用いてフィルタリングを行う。
また、動画像符号化装置1における適応フィルタ100が、上記予め定められたサイズ以上のマクロブロックから構成される領域から参照される参照画像#25dの領域に対して、予め定められたフィルタ係数によるフィルタリングを行うような構成である場合には、適応フィルタ100’’は、上記予め定められたサイズ以上のマクロブロックから参照される参照画像#25dの領域に対して、予め定められたフィルタ係数を用いてフィルタリングを行い、上記予め定められたサイズより小さいマクロブロックから参照される参照画像#25dの領域に対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h112’(i,j)を用いてフィルタリングを行う。
(復号動作例11)
構成例11において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
適応フィルタ100’’は、予め定められた値以上の大きさを有する動きベクトルが割り付けられたパーティションから参照される参照画像#25dの領域に対し、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h121’(i,j)を用いてフィルタリングを行い、予め定められた値より小さい大きさを有する動きベクトルが割り付けられたパーティションから参照される参照画像#25dの領域に対し、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h122’(i,j)を用いてフィルタリングを行う。
また、動画像符号化装置1における適応フィルタ100が、上記予め定められた値以上の大きさを有する動きベクトルが割り付けられたパーティションから構成される領域から参照される参照画像の領域のみに対し、適応的なフィルタリングを行い、そうでない動きベクトルが割り付けられたパーティションから構成される領域から参照される参照画像の領域に対しては、予め定められたフィルタ係数を用いて固定的なフィルタリングを行う構成である場合には、適応フィルタ100’’は、上記予め定められた値以上の大きさを有する動きベクトルが割り付けられたパーティションから構成される領域から参照される参照画像の領域に対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数h121’(i,j)を用いてフィルタリングを行い、予め定められた値より小さい大きさを有する動きベクトルが割り付けられたパーティションから参照される参照画像の領域に対し、固定的なフィルタ係数を用いたフィルタリングを行う。なお、上記固定的なフィルタ係数としては、予め定められたフィルタ係数を用いればよい。
(復号動作例12)
構成例12において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
適応フィルタ100’’は、各マクロブロックの近傍(隣接も含む)のマクロブロックにおける変換係数の値に応じて、各マクロブロックを複数の組に分類し、各マクロブロックの組から参照される参照画像#25dの領域に対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数を用いたフィルタリングを行う。
また、動画像符号化装置1が、参照画像#14b上の、上記複数の領域に対応する領域のうち、何れかの領域に対して固定的なフィルタリングを行う場合であって、動画像復号装置2に、当該固定的なフィルタリングを行うためのフィルタ係数が格納されている場合には、適応フィルタ100’’は、動画像符号化装置1によって固定的なフィルタリングが行われた領域に対応する領域に対して、固定的なフィルタリングを行い、その他の領域に対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数を用いたフィルタリングを行う。
動作例12において説明したその他の場合に対しても、ほぼ同様である。
(復号動作例13)
構成例12において説明した符号化データ#2を復号する場合の適応フィルタ100’’の動作は以下の通りである。
適応フィルタ100’’は、生成中のインター予測画像#26を、各パーティションから参照される領域が属する、参照画像#25dに含まれる参照ピクチャが、イントラピクチャであるか否かに応じて、2つに分割し、それぞれの領域が参照する参照ピクチャに対して、符号化データ#2におけるフィルタ係数情報FCに含まれるフィルタ係数を用いてフィルタリングを行う。
また、適応フィルタ100が、量子化パラメータQPを参照して、生成中のインター予測画像#26を複数の領域に分割する場合についても、ほぼ同様である。
(その他)
以上のように、本発明に係る符号化装置は、入力画像を符号化して再構成することによって得られる参照画像に作用する第1のフィルタと、上記第1のフィルタの出力画像を参照した動き補償を行うことによって第1の予測画像を生成する第1の予測手段と、上記参照画像に作用する第2のフィルタと、上記第2のフィルタの出力画像を参照した動き補償を行うことによって第2の予測画像を生成する第2の予測手段と、上記第1の予測画像と上記入力画像とを複数の領域に分割する分割手段と、上記入力画像と上記第1の予測画像との差を上記領域毎に最小化するよう、上記第2のフィルタのフィルタ係数を設定するフィルタ係数設定手段と、を備え、上記入力画像と上記第2の予測画像との残差データを符号化する、ことを特徴としている。
上記のように構成された本発明に係る符号化装置によれば、上記第1の予測画像と上記入力画像とを複数の領域に分割する分割手段と、上記入力画像と上記第1の予測画像との差を上記領域毎に最小化するよう、上記第2のフィルタのフィルタ係数を設定するフィルタ係数設定手段とを備えているため、上記第1の予測画像の特性が一様でない場合であっても、上記複数の領域毎に上記第2のフィルタのフィルタ係数を適応的に設定することができる。
換言すれば、上記第1の予測画像の参照元である上記参照画像(局所復号画像)の特性が一様でない場合であっても、上記複数の上記複数の領域毎に上記第2のフィルタのフィルタ係数を適応的に設定することによって、適切なフィルタリングを行うことができるという効果を奏する。
また、上記分割手段は、上記第1の予測画像を、スキップモードが適用されたマクロブロックから構成される領域と、スキップモードが適用されていないマクロブロックから構成される領域とに分割する、ことが好ましい。
一般に、スキップモードが適用されたマクロブロックと、スキップモードが適用されていないマクロブロックとでは、最適なフィルタ係数が異なる。
上記の構成によれば、上記第1の予測画像を、スキップモードが適用されたマクロブロックから構成される領域と、スキップモードが適用されていないマクロブロックから構成される領域とに分割し、上記入力画像と上記第1の予測画像との差を上記領域毎に最小化するよう、上記第2のフィルタのフィルタ係数を設定することができる。
したがって、上記第1の予測画像がスキップモードが適用されたマクロブロックと、スキップモードが適用されていないマクロブロックとを含む場合であっても、適切なフィルタリングを行うことができるという更なる効果を奏する。
また、上記分割手段は、上記第1の予測画像を、参照画像インデクスが0である画像を参照しているパーティションから構成される領域と、参照画像インデクスが0でない画像を参照しているパーティションから構成される領域とに分割する、ことが好ましい。
一般に、特に動画像として動きがある場合など、参照画像インデクスが異なる参照ピクチャを参照する領域に対しては、最適なフィルタ係数も異なる。
上記の構成によれば、上記第1の予測画像を、参照画像インデクスが0である画像を参照しているパーティションから構成される領域と、参照画像インデクスが0でない画像を参照しているパーティションから構成される領域とに分割し、上記入力画像と上記第1の予測画像との差を上記領域毎に最小化するよう、上記第2のフィルタのフィルタ係数を設定することができる。
したがって、上記第1の予測画像が参照画像インデクスが0である画像を参照しているパーティションと、参照画像インデクスが0でない画像を参照しているパーティションから構成される領域とを含む場合であっても、適切なフィルタリングを行うことができるという更なる効果を奏する。
また、上記分割手段は、第1の分割手段、および、第2の分割手段を含み、上記フィルタ係数設定手段は、第1のフィルタ係数設定手段、および、第2のフィルタ係数設定手段を含み、上記第1の分割手段は、上記第1の予測画像を、スキップモードが適用されたマクロブロックから構成される第1の領域と、スキップモードが適用されていないマクロブロックから構成される第2の領域とに分割し、上記第1のフィルタ係数設定手段は、上記第1の領域、および、上記第2の領域のそれぞれについて、上記第1の予測画像と上記入力画像との差を最小化するように第1の予備的フィルタ係数を決定し、上記第2の分割手段は、上記第1の予測画像を、参照画像インデクスが0である画像を参照しているパーティションから構成される第3の領域と、参照画像インデクスが0でない画像を参照しているパーティションから構成される第4の領域とに分割し、上記第2のフィルタ係数設定手段は、上記第3の領域、および、上記第4の領域のそれぞれについて、上記第1の予測画像と上記入力画像との差を最小化するように第2の予備的フィルタ係数を決定し、上記第1の予備的フィルタ係数、または、上記第2の予備的フィルタ係数のうち、符号化効率の良いフィルタ係数を上記第2のフィルタのフィルタ係数として設定する、ことが好ましい。
一般に、スキップモードが適用されたマクロブロックと、スキップモードが適用されていないマクロブロックとでは、最適なフィルタ係数が異なる。また、一般に、参照画像インデックスが異なる参照ピクチャを参照する領域に対しては、最適なフィルタ係数も異なる。
また、スキップモードが適用されているか否かを参照した適応的なフィルタリングと、参照画像インデクスを参照した適応的なフィルタリングとでは、符号化効率が異なる。
上記の構成によれば、スキップモードが適用された領域であるか否かに応じて適応的に設定された上記第1の予備的フィルタ係数、または、参照画像インデクスに応じて適応的に設定された上記第2の予備的フィルタ係数のうち、符号化効率の良いものを上記第2のフィルタのフィルタ係数として設定することができるので、符号化効率のより良いフィルタリングを行うことができるという更なる効果を奏する。
また、上記分割手段は、上記第1の予測画像上の各単位領域を、該マクロブロックに隣接する複数のマクロブロックのうち、より多くのマクロブロックが属する領域に割り当てることによって、上記第1の予測画像を複数の領域に分割する、ことが好ましい。
上記の構成によれば、上記第1の予測画像上の各単位領域を、該マクロブロックに隣接する複数のマクロブロックのうち、より多くのマクロブロックが属する領域に割り当てることによって、上記第1の予測画像を複数の領域に分割し、上記入力画像と上記第1の予測画像との差を上記領域毎に最小化するよう、上記第2のフィルタのフィルタ係数を設定することができる。
したがって、上記の構成によれば、より適切なフィルタリングを行うことができるという更なる効果を奏する。
また、上記分割手段は、上記第1の予測画像を、平均輝度が予め定められた輝度より大きいマクロブロックから構成される領域と、平均輝度が予め定められた輝度以下であるマクロブロックから構成される領域とに分割する、ことが好ましい。
一般に、輝度のより大きい領域と輝度のより小さい領域とでは、最適なフィルタ係数が異なる。
上記の構成によれば、上記第1の予測画像を、平均輝度が予め定められた輝度より大きいマクロブロックから構成される領域と、平均輝度が予め定められた輝度以下であるマクロブロックから構成される領域とに分割し、上記入力画像と上記第1の予測画像との差を上記領域毎に最小化するよう、上記第2のフィルタのフィルタ係数を設定することができる。
したがって、上記の構成によれば、上記第1の予測画像の輝度が一様でない場合であっても、適切なフィルタリングを行うことができるという更なる効果を奏する。
また、上記フィルタ係数設定手段は、上記複数の領域のうち、上記第1の予測画像に対する面積比が予め定められた面積比より大きい領域に対して、上記第1の予測画像と上記入力画像との差を最小化するように、上記第2のフィルタのフィルタ係数を設定し、上記複数の領域のうち、上記第1の予測画像に対する面積比が予め定められた面積以下である領域に対して、上記第2のフィルタのフィルタ係数として、予め定められたフィルタ係数を選択する、ことが好ましい。
一般に、より小さい領域に対しては、フィルタ係数の決定に用いられる予測残差(上記差)のサンプル数がより少なくなる。したがって、そのような小さい領域に対しては、上記予測画像の予測精度を向上することが難しい。また、予測精度の改善ができたとしても、適応的なフィルタリングを行うことによる計算コストの増大およびフィルタ係数が必要とする符号量の増大というデメリットが、符号化効率の向上というメリットを凌駕してしまう可能性がある。
上記の構成によれば、上記複数の領域のうち、上記第1の予測画像に対する面積比が予め定められた面積比より大きい領域に対して、上記第1の予測画像と上記入力画像との差を最小化するように、上記第2のフィルタのフィルタ係数を設定し、上記複数の領域のうち、上記第1の予測画像に対する面積比が予め定められた面積以下である領域に対して、上記第2のフィルタのフィルタ係数として、予め定められたフィルタ係数を選択することができるので、計算コストおよびフィルタ係数の符号量の増大という問題を招来することなく、適切なフィルタリングを行うことができるという更なる効果を奏する。
また、上記分割手段は、上記第1の予測画像を、参照画像インデクスが0である画像を参照しているパーティションから構成される第1の領域と、参照画像インデクスが0でない画像を参照しているパーティションから構成される第2の領域とに分割し、上記フィルタ係数設定手段は、上記第2の領域の上記第1の予測画像に対する面積比が予め定められた面積比未満である場合には、上記第1の領域について上記第1の予測画像と上記入力画像との差を最小化するように、上記第2のフィルタのフィルタ係数を設定し、上記第2の予測手段は、上記第2の領域の上記第1の予測画像に対する面積比が予め定められた面積比未満である場合には、上記第2の領域に対応する上記参照画像のうち参照インデクスが0である参照ピクチャに対して、予め定められたフィルタ係数を用いてフィルタリングを行う、ことが好ましい。
上記の構成によれば、参照画像インデクスが0でない画像を参照しているパーティションから構成される上記第2の領域の、上記第1の予測画像に対する面積比が予め定められた面積比未満である場合には、参照画像インデクスが0である画像を参照しているパーティションから構成される上記第1の領域に対してのみ、適応的なフィルタリングを行い、上記第2の領域の領域に対しては、予め定められたフィルタ係数を用いてフィルタリングを行うことができるので、計算コストおよびフィルタ係数の符号量を抑えつつ、適切なフィルタリングを行うことができるという更なる効果を奏する。
また、上記の構成によれば、参照画像インデクスref_idxは、適応的なフィルタリングを行うのか、または、エッジ強調効果を有するフィルタ係数を用いて非適応的なフィルタリングを行うのかを示す指標として機能する。
したがって、参照画像インデクスref_idx=1がほとんど用いられていなければ、非適応的なフィルタリングを行うことを示す指標として用いることにより、追加のサイド情報によって符号量を増加させることなく、適応的フィルタリングと、非適応的フィルタリングとを切り替えることができるという更なる効果を奏する。
また、本発明に係る他の符号化装置は、入力画像を符号化して再構成することによって得られる複数の参照画像に作用する第1のフィルタと、上記第1のフィルタの出力画像を参照した動き補償を行うことによって第1の予測画像を生成する第1の予測手段と、上記複数の参照画像に作用する第2のフィルタと、上記第2のフィルタの出力画像を参照した動き補償を行うことによって第2の予測画像を生成する第2の予測手段と、を備え、上記入力画像と上記第2の予測画像との残差データを符号化する符号化装置であって、上記第2のフィルタは、上記複数の参照画像のうち、第1の参照画像リストに属する参照画像の、上記第1の予測画像に対する寄与の重みが、予め定められた重み以上である場合には、当該第1の参照画像リストに属する参照画像に対して、上記入力画像と上記第1の予測画像との差を最小化するように設定されたフィルタ係数を用いてフィルタリングを行い、上記複数の参照画像のうち、第1の参照画像リストに属する参照画像の、上記第1の予測画像に対する寄与の重みが、予め定められた重みより小さい場合には、第1の参照画像リストとは異なる第2の参照画像リストに属する参照画像に対して、予め定められたフィルタ係数を用いてフィルタリングを行う、ことを特徴としている。
一般に、参照画像の、予測画像に対する寄与の重みが小さくなればなるほど、当該参照画像に対して適応的なフィルタリングを行うメリットも少なくなる。換言すれば、参照画像の、予測画像に対する寄与の重みが小さくなればなるほど、適応的なフィルタリングを行うことによる計算コストおよびフィルタ係数が必要とする符号量の増大というデメリットが、適応的なフィルタリングによる符号化効率の向上というメリットを凌駕してしまう可能性が高まる。
上記の構成によれば、上記第1の予測画像に対する寄与の重みが、予め定められた重み以上である参照画像に対してのみ、適応的なフィルタリングを行い、上記第1の予測画像に対する寄与の重みが、予め定められた重みより小さい参照画像に対しては、予め定められたフィルタ係数を用いてフィルタリングを行うことができるので、計算コストの増大というデメリットを招来することなく、適切なフィルタリングを行うことができるという効果を奏する。
また、上記の構成によれば、上記複数の参照画像のうち、第1の参照画像リストに属する参照画像の、上記第1の予測画像に対する寄与の重みが、予め定められた重みより小さい場合には、第2の参照画像リストに属する参照画像に対して、予め定められたフィルタ係数を用いてフィルタリングを行うことができる。したがって、参照リスト番号を、適応的に求められたフィルタ係数を用いるのか、非適応的なフィルタ係数を用いるのかを示すフラグとして機能させることができる。したがって、上記の構成によれば、追加のサイド情報によって符号量を増大させることなく、より適切なフィルタリングを行うことができるという効果を奏する。
また、本発明に係る復号装置は、原画像と予測画像との残差データを、フィルタ係数群と共に符号化することによって得られた符号化データを復号する復号装置において、上記残差データを復号することによって得られる予測残差に基づいて生成される参照画像に対してフィルタリングを行うことによってフィルタ済参照画像を生成するフィルタ手段であって、フィルタ係数が上記参照画像の単位領域毎に切り替え可能なフィルタ手段と、上記フィルタ済参照画像に対し、動き補償を行うことによって上記予測画像を生成する予測画像生成手段と、上記参照画像上の単位領域毎に、上記フィルタ係数群に含まれるフィルタ係数、または、予め定められたフィルタ係数のうち何れかを選択するフィルタ係数選択手段と、を備えていることを特徴としている。
上記のように構成された本発明に係る復号装置によれば、上記残差データを復号することによって得られる予測残差に基づいて生成される参照画像に対してフィルタリングを行うことによってフィルタ済参照画像を生成するフィルタ手段であって、フィルタ係数が上記参照画像の単位領域毎に切り替え可能なフィルタ手段と、上記フィルタ済参照画像に対し、動き補償を行うことによって上記予測画像を生成する予測画像生成手段と、上記参照画像上の単位領域毎に、上記フィルタ係数群に含まれるフィルタ係数、または、予め定められたフィルタ係数のうち何れかを選択するフィルタ係数選択手段とを備えているため、上記参照画像上の単位領域毎に、より適切なフィルタ係数を用いてフィルタリングを行うことができるという効果を奏する。
また、本発明に係る復号装置においては、上記フィルタ係数選択手段は、上記参照画像上の単位領域が、スキップモードが適用されたマクロブロックに属しているか否かに応じて、上記フィルタ係数群に含まれるフィルタ係数のうち何れかを選択する、ことが好ましい。
一般に、スキップモードが適用されたマクロブロックと、スキップモードが適用されていないマクロブロックとでは、最適なフィルタ係数が異なる。
上記の構成によれば、上記フィルタ係数選択手段は、上記参照画像上の単位領域が、スキップモードが適用されたマクロブロックに属しているか否かに応じて、上記フィルタ係数群に含まれるフィルタ係数のうち何れかを選択することができるので、上記参照画像がスキップモードが適用されたマクロブロックと、スキップモードが適用されていないマクロブロックとを含む場合であっても、適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る復号装置においては、上記フィルタ係数選択手段は、上記参照画像の参照画像インデクスが0であるか否かに応じて、上記フィルタ係数群に含まれるフィルタ係数のうち何れかを選択する、ことが好ましい。
一般に、参照画像インデックスが異なる参照ピクチャを参照する領域に対しては、最適なフィルタ係数も異なる。
上記の構成によれば、上記フィルタ係数選択手段は、上記参照画像の参照画像インデクスが0であるか否かに応じて、上記フィルタ係数群に含まれるフィルタ係数のうち何れかを選択することができるので、上記参照画像が参照画像インデクスが0である画像を参照しているパーティションと、参照画像インデクスが0でない画像を参照しているパーティションから構成される領域とを含む場合であっても、適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る復号装置においては、上記フィルタ係数選択手段は、生成中の上記予測画像を、予め定められた判定基準に応じて、複数の領域に分割し、当該複数の領域のそれぞれに対応する上記参照画像上の領域に対して、上記フィルタ係数群に含まれるフィルタ係数のうち何れかを選択する、ことが好ましい。
上記の構成によれば、上記フィルタ係数選択手段は、生成中の上記予測画像を、予め定められた判定基準に応じて、複数の領域に分割し、当該複数の領域のそれぞれに対応する上記参照画像上の領域に対して、上記フィルタ係数群に含まれるフィルタ係数のうち何れかを選択することができるので、より適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る復号装置においては、上記フィルタ係数選択手段は、生成中の上記予測画像上の複数の領域のうち当該生成中の予測画像に対する面積比が予め定められた面積比より大きい領域に対応する上記参照画像上の領域に対して、上記フィルタ係数群に含まれるフィルタ係数を選択し、生成中の上記予測画像上の複数の領域のうち当該生成中の予測画像に対する面積比が予め定められた面積比以下である領域に対応する上記参照画像上の領域に対して、上記予め定められたフィルタ係数を選択する、ことが好ましい。
一般に、より小さい領域に対しては、動画像符号化装置において、フィルタ係数の決定に用いられる予測残差(上記差)のサンプル数はより少なくなる。したがって、そのような小さい領域に対しては、予測画像の予測精度を向上することが難しい。また、予測精度の改善ができたとしても、適応的に求めたフィルタ係数を符号化することによる符号化量の増大というデメリットが、符号化効率の向上というメリットを凌駕してしまう可能性がある。
上記の構成によれば、上記フィルタ係数選択手段は、生成中の上記予測画像上の複数の領域のうち当該生成中の予測画像に対する面積比が予め定められた面積比より大きい領域に対応する上記参照画像上の領域に対して、上記フィルタ係数群に含まれるフィルタ係数を選択し、生成中の上記予測画像上の複数の領域のうち当該生成中の予測画像に対する面積比が予め定められた面積比以下である領域に対応する上記参照画像上の領域に対して、上記予め定められたフィルタ係数を選択することができるため、符号化量の増大という問題を招来することなく、適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る復号装置においては、上記参照画像のうち参照画像インデクスが0でない参照画像に対応する上記予測画像上の領域の、上記予測画像に対する面積比が、予め定められた面積比未満である場合には、上記フィルタ手段は、参照画像インデクスが0でない参照画像に対応する上記予測画像上の領域を、参照画像インデクスが0である参照画像上の当該領域に対して、上記予め定められたフィルタ係数を用いてフィルタリングを行うことによって生成する、ことが好ましい。
一般に、より小さい領域に対しては、動画像符号化装置において、フィルタ係数の決定に用いられる予測残差(上記差)のサンプル数はより少なくなる。したがって、そのような小さい領域に対しては、予測画像の予測精度を向上することが難しい。また、予測精度の改善ができたとしても、適応的に求めたフィルタ係数を符号化することによる符号化量の増大というデメリットが、符号化効率の向上というメリットを凌駕してしまう可能性がある。
上記の構成によれば、符号化量の増大という問題を招来することなく、適切なフィルタリングを行うことができるという更なる効果を奏する。
また、上記の構成によれば、0以外の参照画像インデクスref_idxを、適応的なフィルタリングを行うことを示すフラグとして機能させることができる。
したがって、0以外の参照画像インデクスref_idxを、非適応的なフィルタ係数によってフィルタリングを行うことを示す指標として用いることができるので、追加のサイド情報によって符号量を増加させることなく、適応的フィルタリングと、非適応的フィルタリングとを切り替えることができるという更なる効果を奏する。
また、本発明に係る復号装置においては、上記参照画像のうち参照画像リスト番号が0でない参照画像に対応する上記予測画像上の領域の、上記予測画像に対する寄与の重みが、予め定められた重みより小さい場合には、上記フィルタ手段は、参照画像リスト番号が0でない参照画像に対応する上記予測画像上の領域を、参照画像リスト番号が0である参照画像上の当該領域に対して、上記予め定められたフィルタ係数を用いてフィルタリングを行うことによって生成する、ことが好ましい。
一般に、参照画像の、予測画像に対する寄与の重みが小さくなればなるほど、適応的に求めたフィルタ係数を符号化することによる符号化量の増大というデメリットが、符号化効率の向上というメリットを凌駕してしまう可能性が高まる。
上記の構成によれば、上記フィルタ手段は、上記参照画像のうち、参照画像リスト番号が0でない参照画像の、上記予測画像に対する寄与の重みが、予め定められた重みより小さい場合には、予め定められたフィルタ係数を用いてフィルタリングを行うことができるので、符号化量の増大というデメリットを招来することなく、適切なフィルタリングを行うことができるという効果を奏する。
また、上記の構成によれば、参照画像リスト番号を、適応的に求められたフィルタ係数を用いるのか、非適応的なフィルタ係数を用いるのかを示すフラグとして機能させることができる。したがって、上記の構成によれば、追加のサイド情報によって符号量を増大させることなく、より適切なフィルタリングを行うことができるという効果を奏する。
また、本発明に係る復号装置においては、上記フィルタ係数選択手段に代えて、上記符号化データに含まれるフラグを参照して、上記フィルタ係数群に含まれるフィルタ係数のうち何れかのフィルタ係数、および、当該フィルタ係数を適用すべき参照画像上の領域を選択するフィルタ係数選択手段を備えている構成としてもよい。
上記の構成によれば、上記フラグを参照して、上記参照画像上の各領域に対して、上記フィルタ係数群に含まれるフィルタ係数のうち何れかのフィルタ係数を用いたフィルタリングを行うことができるので、領域ごとに適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る符号化データのデータ構造は、原画像と原画像から生成される予測画像との残差データをフィルタ係数群と共に符号化することによって得られた符号化データのデータ構造であって、上記フィルタ係数群は、当該符号化データを復号する復号装置において、上記残差データを復号することによって得られる予測残差に基づいて生成される参照画像上の単位領域毎に選択されるフィルタ係数を含んでいる、ことを特徴としている。
上記のように構成された符号化データのデータ構造によれば、当該符号化データを復号する復号装置において、上記残差データを復号することによって得られる予測残差に基づいて生成される参照画像上の単位領域毎に選択されるフィルタ係数を含んでいるため、復号装置において、参照画像上の単位領域毎により適切なフィルタリングを行うことができるという効果を奏する。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
発明の詳細な説明の項においてなされた具体的な実施態様または実施例は、あくまでも、本発明の技術内容を明らかにするものであって、そのような具体例にのみ限定して狭義に解釈されるべきものではなく、本発明の精神と次に記載する特許請求事項との範囲内で、いろいろと変更して実施することができるものである。