(57)【要約】  本発明は、高周波成分が失われることを抑制し、画質の鮮明感を得ることができるようにする画像処理装置および方法、並びにプログラムに関する。セレクタ９５は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられ、Ａ１フィルタ係数メモリ９１に記憶されるフィルタ係数Ａ１、L0L1重み付き予測を使う場合の双予測モードに用いられ、Ａ２フィルタ係数メモリ９２に記憶されるフィルタ係数Ａ２、L0L1重み付き予測を使う場合のダイレクト・モードに用いられ、Ａ３フィルタ係数メモリ９３に記憶されるフィルタ係数Ａ３、並びに、L0L1重み付き予測を使う場合のスキップ・モードに用いられ、Ａ４フィルタ係数メモリ９４に記憶されるフィルタ係数Ａ４のうち、１つのフィルタ係数を選択し、固定補間フィルタに出力する。本発明は、例えば、H．264/AVC方式をベースに符号化する画像符号化装置に適用することができる。
2011078002.tif 000002
【特許請求の範囲】
【請求項１】
符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタと、
前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択するフィルタ係数選択手段と、
前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成する動き補償手段と
を備える画像処理装置。
【請求項２】
前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか否かに基づいて、前記補間フィルタのフィルタ係数を選択する
請求項１に記載の画像処理装置。
【請求項３】
前記フィルタ係数選択手段は、前記双予測モードであるか否かに基づいて、高周波成分の増幅の程度の異なる前記フィルタ係数を選択する
請求項２に記載の画像処理装置。
【請求項４】
前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか、ダイレクト・モードであるか、スキップ・モードであるかに基づいて、前記補間フィルタのフィルタ係数を選択する
請求項１に記載の画像処理装置。
【請求項５】
前記補間フィルタは、前記フィルタ係数選択手段により選択される前記フィルタ係数とオフセット値とを用いて、前記参照画像の画素を分数精度で補間する
請求項１に記載の画像処理装置。
【請求項６】
前記符号化された画像、前記動きベクトル、および符号化時に算出された前記フィルタ係数を復号する復号手段
をさらに備え、
前記フィルタ係数選択手段は、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記復号手段により復号された前記フィルタ係数を選択する
請求項１に記載の画像処理装置。
【請求項７】
前記フィルタ係数は、前記重み付け予測の使用時用の複数種類のフィルタ係数と、前記重み付け予測の未使用時用の複数種類のフィルタ係数とからなり、
前記フィルタ係数選択手段は、前記重み付け予測の使用または未使用と、前記フィルタ係数の種類を特定するための情報とに基づいて、前記復号手段により復号された前記フィルタ係数を選択する
請求項６に記載の画像処理装置。
【請求項８】
符号化対象の画像と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出する動き予測手段
をさらに備える
請求項１に記載の画像処理装置。
【請求項９】
前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか否かに基づいて、前記補間フィルタのフィルタ係数を選択する
請求項８に記載の画像処理装置。
【請求項１０】
前記符号化対象の画像、前記参照画像、および前記動き予測手段により検出された前記動きベクトルを用いて、前記補間フィルタのフィルタ係数を算出するフィルタ係数算出手段をさらに備え、
前記フィルタ係数選択手段は、異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記フィルタ係数算出手段により算出された前記フィルタ係数を選択する
請求項８に記載の画像処理装置。
【請求項１１】
前記フィルタ係数選択手段は、異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記フィルタ係数算出手段により算出された前記フィルタ係数を第１の選択候補とするとともに、所定のフィルタ係数を第２の選択候補とし、
前記動き予測手段は、前記符号化対象の画像と、前記第１の選択候補の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記第１の選択候補用の動きベクトルを検出するとともに、前記符号化対象の画像と、前記第２の選択候補の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記第２の選択候補用の動きベクトルを検出し、
前記動き補償手段は、前記第１の選択候補の前記補間フィルタにより補間された前記参照画像と、前記第１の選択候補用の動きベクトルを用いて、前記第１の選択候補用の予測画像を生成するとともに、前記第２の選択候補の前記補間フィルタにより補間された前記参照画像と、前記第２の選択候補用の動きベクトルを用いて、前記第２の選択候補用の予測画像を生成し、
前記フィルタ係数選択手段は、前記第１の選択候補用の予測画像と前記符号化対象の画像との差分と、前記第２の選択候補用の予測画像と前記符号化対象の画像との差分のうちの小さい方の差分に対応するフィルタ係数を選択する
請求項１０に記載の画像処理装置。
【請求項１２】
前記フィルタ係数は、前記重み付け予測の使用時用の複数種類のフィルタ係数と、前記重み付け予測の未使用時用の複数種類のフィルタ係数とからなり、
前記フィルタ係数選択手段は、前記重み付け予測の使用または未使用と、各種類のフィルタ係数に対応するコスト関数値とに基づいて、前記フィルタ係数を選択する
請求項８に記載の画像処理装置。
【請求項１３】
符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタを備える画像処理装置の画像処理方法において、
前記画像処理装置が、
前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択し、
選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成するステップ
を含む画像処理方法。
【請求項１４】
前記画像処理装置が、
符号化対象の画像と、選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出するステップ
をさらに含む
請求項１３に記載の画像処理方法。
【請求項１５】
符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタを備える画像処理装置のコンピュータを、
前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択するフィルタ係数選択手段と、
前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成する動き補償手段と
して、機能させるためのプログラム。
【請求項１６】
前記コンピュータを、
符号化対象の画像と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出する動き予測手段
として、さらに機能させるための請求項１５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置および方法に関し、特に、高周波成分が失われることを抑制し、画質の鮮明感を得ることができるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
画像情報を圧縮する標準規格として、H．264及びMPEG-4 Part10 （Advanced Video Coding、以下H．264/AVCと記す）がある。【０００３】
H.264/AVCにおいては、フレームまたはフィールド間の相関に注目したインター予測が行われる。そして、このインター予測で行われる動き補償処理では、既に保存されている参照可能な画像内の一部の領域を用いて、インター予測による予測画像（以下、インター予測画像という）が生成される。【０００４】
例えば、図１に示すように、既に保存されている参照可能な画像の５フレームが参照フレームとされた場合、インター予測するフレーム（原フレーム）のインター予測画像の一部は、５つのうちのいずれか１つの参照フレームの画像（以下、参照画像という）の一部を参照して構成される。なお、インター予測画像の一部となる参照画像の一部の位置は、参照フレームと原フレームの画像に基づいて検出された動きベクトルによって決定される。【０００５】
より詳細には、図２に示すように、参照フレーム内の顔１１が、原フレームにおいて右下方向に移動し、下部の約1/3が隠れた場合、右下方向の逆の左上方向を表す動きベクトルが検出される。そして、原フレーム内の隠れていない顔１１の一部１２は、その一部１２を動きベクトルが表す動きだけ移動させた位置の参照フレーム内の顔１１の一部１３を参照して構成される。【０００６】
また、H.264/AVCにおいては、動き補償処理において、動きベクトルの分解能を２分の１または４分の１といった分数精度に向上させることが考えられている。【０００７】
このような分数精度の動き補償処理においては、隣接する画素の間に、Sub pelと呼ばれる仮想的な分数位置の画素を設定し、そのSub pelを生成する処理（以下、インターポーレーションという）が追加して行われる。すなわち、分数精度の動き補償処理では、動きベクトルの最小分解能が分数位置の画素になるため、分数位置の画素を生成するためのインターポーレーションが行われる。【０００８】
図３は、インターポーレーションによって縦方向と横方向の画素数が４倍に増加された画像の各画素を示している。なお、図３において、白色の正方形は、整数位置の画素(Integer pel(Int. pel))を表し、斜線が付された正方形は、分数位置の画素(Sub pel)を表している。また、正方形内のアルファベットは、その正方形が表す画素の画素値を表している。【０００９】
インターポーレーションによって生成される分数位置の画素の画素値ｂ，ｈ，ｊ，ａ，ｄ，ｆ，ｒは、以下に示す式（１）で表される。【００１０】
b=(E-5F+20G+20H-5I+J)/32
h=(A-5C+20G+20M-5R+T)/32
j=(aa-5bb+20b+20s-5gg+hh)/32
a=(G+b)/2
d=(G+h)/2
f=(b+j)/2
r=(m+s)/2
・・・（１）【００１１】
なお、画素値aa，bb，s，gg，hhはbと同様に、cc，dd，m，ee，ffはhと同様に、cはaと同様に、f，n，qはdと同様に、e，p，gはrと同様に、それぞれ求めることができる。【００１２】
上述した式（１）は、H.264/AVCなどのインターポーレーションで採用される式であり、この式は規格の違いによって異なるが、式の目的は同一である。この式は、偶数のタップ数を有する有限インパルス応答（FIR（Finit-duration Impulse Response））フィルタで実現することができる。例えば、H.264/AVCにおいては、６タップの補間フィルタが用いられている。【００１３】
ところで、H.264/AVCにおいては、特に、Ｂピクチャの場合、図４に示されるように、双方向予測が使用できる。図４においては、表示順序でピクチャが示されており、符号化対象ピクチャの表示順序の前後に符号化済みの参照ピクチャが並んでいる。符号化対象ピクチャがＢピクチャの場合、例えば、符号化対象ピクチャの対象予測ブロックに示されるように、前後（双方向）の参照ピクチャの２つのブロックを参照し、前方向のL0予測の動きベクトルと、後方向のL1予測の動きベクトルを持つことができる。【００１４】
すなわち、L0は、主に対象予測ブロックよりも表示時刻が早いもので、L1は、主に対象予測ブロックよりも表示時刻が遅いものとなる。それらの区別された参照ピクチャを符号化モード別に使い分けることができる。符号化モードには、図５に示されるように、画面内符号化（イントラ予測）、L0予測、L1予測、双予測、ダイレクト・モードの５種類がある。【００１５】
図５は、符号化モードと参照ピクチャおよび動きベクトルの関係を示す図である。なお、図５において、参照ピクチャは、その符号化モードで参照ピクチャとして使うか使わないかを示し、動きベクトルは、その符号化モードが動きベクトル情報を持っているか持っていないかを示している。【００１６】
画面内符号化モードは、画面内（すなわち、イントラ）で予測するモードであり、L0参照ピクチャもL1参照ピクチャも使わず、L0予測の動きベクトルもL1予測の動きベクトル情報も持たない符号化モードである。L0予測モードは、L0参照ピクチャのみを使って予測を行い、L0予測の動きベクトル情報を持っている符号化モードである。L1予測モードでは、L1参照ピクチャのみを使って予測を行い、L1予測の動きベクトル情報を持っている符号化モードである。【００１７】
双予測モードでは、L0およびL1参照ピクチャを使って予測を行い、L0およびL1予測の動きベクトル情報を持っている符号化モードである。ダイレクト・モードでは、L0およびL1参照ピクチャを使って予測を行うが、動きベクトル情報は持っていない符号化モードである。すなわち、ダイレクト・モードは、動きベクトル情報を持っていないが、参照ピクチャにおける符号化済みブロックの動きベクトル情報から、現時の対象予測ブロックの動きベクトル情報を予測して使用する符号化モードである。なお、ダイレクト・モードにも、L0またはL1参照ピクチャのどちらか一方しか持たない場合もありうる。【００１８】
以上のように、双予測モードおよびダイレクト・モードにおいては、L0およびL1参照ピクチャを両方用いる場合がある。参照ピクチャが２枚の場合、次の式（２）に示される重み付き予測によって、双予測モードまたはダイレクト・モードの予測信号を得ることができる。【００１９】
ＹBi-Pred  ＝  Ｗ０Ｙ０＋Ｗ１Ｙ１＋Ｄ                ・・・（２）
ここで、ＹBi-Predは、双予測モードあるいはダイレクト・モードのオフセット付き重み補間信号であり、Ｗ０、Ｗ１は、それぞれL0、L1への重み係数であり、Ｙ０、Ｙ１は、L0、L1の動き補償予測信号である。このＷ０、Ｗ１、Ｄは、明示的にビットストリーム情報に含められたり、復号側で暗黙的に計算によって得られたりするものが用いられる。【００２０】
参照ピクチャの符号化劣化がL0およびL1の２枚の参照ピクチャで無相関ならば、この重み付き予測によって符号化劣化が抑制される。その結果、予測信号と入力信号との差分である残差信号が減り、残差信号のビット量が削減され、符号化効率が改善される。【００２１】
また、非特許文献１乃至３には、最近の研究報告として、アダプティブ・インターポーレーション・フィルタ（AIF）が挙げられている。このAIFを用いた動き補償処理では、インターポーレーションで用いられるタップ数が偶数のFIRフィルタのフィルタ係数を適応的に変えることで、エイリアシングの影響や符号化歪みを低減し、動き補償の誤差を小さくすることができる。【００２２】
AIFには、フィルタ構造の違いから、いくつかバリエーションがあるが、代表して、図６を参照して、非特許文献２に記載のSeparable adaptive interpolation filter(以下、Separable  AIFと称する)について説明する。なお、図６において、斜線が付された正方形は、整数位置の画素(Integer pel(Int. pel))を表し、白色の正方形は、分数位置の画素(Sub pel)を表している。また、正方形内のアルファベットは、その正方形が表す画素の画素値を表している。【００２３】
Separable  AIFにおいては、第１ステップとして、横方向に対する非整数位置の補間が行われ、第２ステップとして、縦方向に対する非整数方向の補間が行われる。なお、横と縦の処理順を逆にすることも可能である。【００２４】
まず、第１ステップである、分数位置の画素の画素値a，b，cは、整数位置の画素の画素値E，F，G，H，I，JからFIRフィルタにより次の式（３）で計算される。ここで、h[pos][n]は、フィルタ係数であり、posは、図３に示されたsub pelの位置を示し、nはフィルタ係数の番号を示す。このフィルタ係数は、ストリーム情報に含められて復号側で使用される。【００２５】
a = h[a][0] x E + h1[a][1] x F + h2[a][2] x G + h[a][3] 
x H + h[a][4] x I + h[a][5] x J
b = h[b][0] x E + h1[b][1] x F + h2[b][2] x G + h[b][3] 
x H + h[b][4] x I + h[b][5] x J
c = h[c][0] x E + h1[c][1] x F + h2[c][2] x G + h[c][3] 
x H + h[c][4] x I + h[c][5] x J
・・・（３）【００２６】
なお、画素値G1，G2，G3，G4，G5の行の分数位置の画素の画素値(a1,b1,c1,a2,b2,c2,a3,b3,c3,a4,b4,c4,a5,b5,c5)に対しても、画素値a，b，cと同様に求めることができる。【００２７】
次に、第２ステップである、画素値a,b,c以外の画素値d乃至oは、次の式（４）で計算される。【００２８】
d = h[d][0] x G1 + h[d][1] x G2 + h[d][2] x G + h[d][3] 
x G3 + h[d][4] * G4 + h[d][5] x G5
h = h[h][0] x G1 + h[h][1] x G2 + h[h][2] x G + h[h][3] 
x G3 + h[h][4] * G4 + h[h][5] x G5
l = h[l][0] x G1 + h[l][1] x G2 + h[l][2] x G + h[l][3] 
x G3 + h[l][4] * G4 + h[l][5] x G5
e = h[e][0] x a1 + h[e][1] x a2 + h[e][2] x a + h[e][3] 
x a3 + h[e][4] * a4 + h[e][5] x a5
i = h[i][0] x a1 + h[i][1] x a2 + h[i][2] x a + h[i][3] 
x a3 + h[i][4] * a4 + h[i][5] x a5
m = h[m][0] x a1 + h[m][1] x a2 + h[m][2] x a + h[m][3] 
x a3 + h[m][4] * a4 + h[m][5] x a5
f = h[f][0] x b1 + h[f][1] x b2 + h[f][2] x b + h[f][3] 
x b3 + h[f][4] * b4 + h[f][5] x b5
j = h[j][0] x b1 + h[j][1] x b2 + h[j][2] x b + h[j][3] 
x b3 + h[j][4] * b4 + h[j][5] x b5
n = h[n][0] x b1 + h[n][1] x b2 + h[n][2] x b + h[n][3] 
x b3 + h[n][4] * b4 + h[n][5] x b5
g = h[g][0] x c1 + h[g][1] x c2 + h[g][2] x c + h[g][3] 
x c3 + h[g][4] * c4 + h[g][5] x c5
k = h[k][0] x c1 + h[k][1] x c2 + h[k][2] x c + h[k][3] 
x c3 + h[k][4] * c4 + h[k][5] x c5
o = h[o][0] x c1 + h[o][1] x c2 + h[o][2] x c + h[o][3] 
x c3 + h[o][4] * c4 + h[o][5] x c5
・・・（４）
なお、上述した方法では、フィルタ係数がすべて独立しているが、非特許文献２では、次の式（５）が示されている。【００２９】
a = h[a][0] x E + h1[a][1] x F + h2[a][2] x G + h[a][3] 
x H + h[a][4] x I + h[a][5] x J
b = h[b][0] x E + h1[b][1] x F + h2[b][2] x G + h[b][2] 
x H + h[b][1] x I + h[b][0] x J
c = h[c][0] x E + h1[c][1] x F + h2[c][2] x G + h[c][3] 
x H + h[c][4] x I + h[c][5] x J
d = h[d][0] x G1 + h[d][1] x G2 + h[d][2] x G + h[d][3] 
x G3 + h[d][4] * G4 + h[d][5] x G5
h = h[h][0] x G1 + h[h][1] x G2 + h[h][2] x G + h[h][2] 
x G3 + h[h][1] * G4 + h[h][0] x G5
l = h[d][5] x G1 + h[d][4] x G2 + h[d][3] x G + h[d][2] 
x G3 + h[d][1] * G4 + h[d][0] x G5
e = h[e][0] x a1 + h[e][1] x a2 + h[e][2] x a + h[e][3] 
x a3 + h[e][4] * a4 + h[e][5] x a5
i = h[i][0] x a1 + h[i][1] x a2 + h[i][2] x a + h[i][2] 
x a3 + h[i][1] * a4 + h[i][0] x a5
m = h[e][5] x a1 + h[e][4] x a2 + h[e][3] x a + h[e][2] 
x a3 + h[e][1] * a4 + h[e][0] x a5
f = h[f][0] x b1 + h[f][1] x b2 + h[f][2] x b + h[f][3] 
x b3 + h[f][4] * b4 + h[f][5] x b5
j = h[j][0] x b1 + h[j][1] x b2 + h[j][2] x b + h[j][2] 
x b3 + h[j][1] * b4 + h[j][0] x b5
n = h[f][5] x b1 + h[f][4] x b2 + h[f][3] x b + h[f][2] 
x b3 + h[f][1] * b4 + h[f][0] x b5
g = h[g][0] x c1 + h[g][1] x c2 + h[g][2] x c + h[g][3] 
x c3 + h[g][4] * c4 + h[g][5] x c5
k = h[k][0] x c1 + h[k][1] x c2 + h[k][2] x c + h[k][2] 
x c3 + h[k][1] * c4 + h[k][0] x c5
o = h[g][5] x c1 + h[g][4] x c2 + h[g][3] x c + h[g][2] 
x c3 + h[g][1] * c4 + h[g][0] x c5
・・・（５）【００３０】
例えば、画素値bを算出するためのフィルタ係数の１つh[b][3]は、h[b][2]に置き換えられている。前者のように、完全にすべてのフィルタ係数が独立していた場合、フィルタ係数の数は合計で９０になるが、非特許文献２の方法では、フィルタ係数の数が５１に削減されることになる。【００３１】
上述したAIFは、補間フィルタの性能を改善するが、フィルタ係数をストリーム情報に含めるため、オーバーヘッドが存在し、場合よっては、符号化効率を劣化させてしまうことも起こる。そこで、非特許文献３では、フィルタ係数の対称性を使って削減し、オーバーヘッドを減らすようにしている。符号化側では、どのSub pelのフィルタ係数が他のSub pelと近いかを調べて、近いフィルタ係数は１つに集約する。どのように集約されたかを示す対称性の記述子をストリーム情報に含めて復号側に送る。復号側では、その対称性の記述子を受け取り、フィルタ係数がどのように集約されたかを知ることができる。【００３２】
ところで、H．264/AVC方式において、マクロブロックサイズは１６×１６画素である。しかしながら、マクロブロックサイズを１６×１６画素とするのは、次世代符号化方式の対象となるようなUHD(Ultra High Definition;4000×2000画素)といった大きな画枠に対しては最適ではない。【００３３】
そこで、非特許文献４などにおいては、マクロブロックサイズを、例えば、３２×３２画素といった大きさに拡張することも提案されている。【００３４】
なお、上述した従来の図は、適宜、本願発明の説明にも用いられる。
【先行技術文献】
【非特許文献】
【００３５】
【非特許文献１】Yuri Vatis, Joern Ostermann,”Prediction of P- and B-Frames Using a Two-dimensional Non-separable Adaptive Wiener Interpolation Filter for H.264/AVC”, ITU-T SG16 VCEG 30th Meeting, Hangzhou China, October 2006
【非特許文献２】Steffen Wittmann,Thomas Wedi,”Separable adaptive inerpolation filte”, ITU-T SG16COM16-C219-E,June 2007
【非特許文献３】Dmytro Rusanovskyy, et al., “Improvements on Enhanced Directional Adaptive Filtering (EDAIF-2)”, COM 16 - C 125 - E, January 2009
【非特許文献４】”Video Coding Using Extended Block Sizes”,VCEG-AD09,ITU-Telecommunications Standardization Sector STUDY GROUP Question 16 - Contribution 123, Jan 2009
【発明の概要】
【発明が解決しようとする課題】
【００３６】
上述したように、参照ピクチャを複数使った重み付き予測は、各参照ピクチャの符号化劣化を低減する効果が得られる一方で、高周波成分が失われてしまう恐れがある。【００３７】
この原因は、複数考えられるが、主な要因としては位置合わせのずれによるものと考えられる。すなわち、２枚の予測画像を重み付き予測によって重ね合わせる際、現時の対象予測ブロックの完全な位置合わせが困難なことから、特に画像の輪郭部分に位置ずれが起こる。これは、図７に示されるように、各参照ピクチャから得られる予測信号が、２枚の予測画像の輪郭部分で位置ずれが起こることに起因する。【００３８】
図７の例においては、横軸は、画像の位置を表し、縦軸は、その位置の輝度値を表している。菱形付き線は、入力信号であり、四角付き線は、L0参照ピクチャによる予測信号であり、三角付き線は、L1参照ピクチャによる予測信号であり、バツ付き線は、Ｗ０＝Ｗ１＝０．５としたときの重み付き予測信号である。【００３９】
図７の入力信号の変化に対して、L0およびL1の予測信号は左右にずれており、これらのL0およびL1の予測信号から重み付き予測は、その変化が入力信号に対して緩やかになっていることがわかる。【００４０】
双予測モードおよびダイレクト・モードにおける予測信号である重み付き予測信号が緩やかに変化するようになることは、輪郭部分でボケが生じる原因となり、符号化効率を悪化させ、画質の面でも悪い印象になる恐れがある。【００４１】
このような位置ずれは、双予測よりもダイレクト・モードで顕著になることが多い。双予測モードでは、動きベクトル情報を所持しているため、ダイレクト・モードと比して正確な位置合わせができる。しかしながら、ダイレクト・モードは符号化済みブロックから予測して得られた動きベクトル情報が用いられる。したがって、符号化済みブロックからの予測誤差が避けられないため、ダイレクト・モードの位置合わせに誤差が生じる。【００４２】
また、非特許文献１乃至３のAIF技術によれば、補間フィルタのフィルタ特性をスライス単位で変更でき、参照ピクチャの符号化劣化を低減できるようになる。即ち、AIFの有する空間的なLPF（Low Pass Filter）特性を用いて、参照ピクチャに含まれるノイズの高域成分を弱めることで、符号化劣化を低減することができる。しかしながら、このLPF特性により、画像の高周波成分も失う恐れがある。【００４３】
さらにこの事実は前述の重み付き予測における事実と合わさることで更に大きな影響を受ける恐れがある。すなわち、AIFによって補間信号の空間的な高周波成分が失われ、さらに重み付き予測によって時間的な高周波成分が失われることになる。AIF技術と、双予測モードあるいはダイレクト・モードの重み付き予測の組み合わせによって、不必要に高周波成分が失われることになり、符号化効率の改善が得られず、画質の鮮明感が失われる恐れがある。【００４４】
AIFの空間的なLPF特性を比較的弱い強度にすることにより、不必要に高周波成分が失われることを抑制することはできるが、重み付き予測が行われない場合、時間的な高周波成分が失われないので、参照ピクチャの符号化劣化が十分に低減されない恐れがある。即ち、重み付き予測が行われない場合に最適なAIFの空間的なLPF特性は、重み付き予測が行われる場合には過剰であり、画像の高周波成分を失う恐れがある。一方、重み付き予測が行われる場合に最適なAIFの空間的なLPF特性は、重み付き予測が行われない場合には過少であり、参照ピクチャの符号化劣化が十分に低減されない恐れがある。【００４５】
本発明は、このような状況に鑑みてなされたものであり、高周波成分が失われることを抑制し、画質の鮮明感を得ることができるものである。
【課題を解決するための手段】
【００４６】
本発明の一側面の画像処理装置は、符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタと、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択するフィルタ係数選択手段と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成する動き補償手段とを備える。【００４７】
前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか否かに基づいて、前記補間フィルタのフィルタ係数を選択することができる。【００４８】
前記フィルタ係数選択手段は、前記双予測モードであるか否かに基づいて、高周波成分の増幅の程度の異なる前記フィルタ係数を選択することができる。【００４９】
前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか、ダイレクト・モードであるか、スキップ・モードであるかに基づいて、前記補間フィルタのフィルタ係数を選択することができる。【００５０】
前記補間フィルタは、前記フィルタ係数選択手段により選択される前記フィルタ係数とオフセット値とを用いて、前記参照画像の画素を分数精度で補間することができる。【００５１】
前記符号化された画像、前記動きベクトル、および符号化時に算出された前記フィルタ係数を復号する復号手段をさらに備え、前記フィルタ係数選択手段は、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記復号手段により復号された前記フィルタ係数を選択することができる。【００５２】
前記フィルタ係数は、前記重み付け予測の使用時用の複数種類のフィルタ係数と、前記重み付け予測の未使用時用の複数種類のフィルタ係数とからなり、前記フィルタ係数選択手段は、前記重み付け予測の使用または未使用と、前記フィルタ係数の種類を特定するための情報とに基づいて、前記復号手段により復号された前記フィルタ係数を選択することができる。【００５３】
符号化対象の画像と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出する動き予測手段をさらに備えることができる。【００５４】
前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか否かに基づいて、前記補間フィルタのフィルタ係数を選択することができる。【００５５】
前記符号化対象の画像、前記参照画像、および前記動き予測手段により検出された前記動きベクトルを用いて、前記補間フィルタのフィルタ係数を算出するフィルタ係数算出手段をさらに備え、前記フィルタ係数選択手段は、異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記フィルタ係数算出手段により算出された前記フィルタ係数を選択することができる。【００５６】
前記フィルタ係数選択手段は、異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記フィルタ係数算出手段により算出された前記フィルタ係数を第１の選択候補とするとともに、所定のフィルタ係数を第２の選択候補とし、前記動き予測手段は、前記符号化対象の画像と、前記第１の選択候補の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記第１の選択候補用の動きベクトルを検出するとともに、前記符号化対象の画像と、前記第２の選択候補の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記第２の選択候補用の動きベクトルを検出し、前記動き補償手段は、前記第１の選択候補の前記補間フィルタにより補間された前記参照画像と、前記第１の選択候補用の動きベクトルを用いて、前記第１の選択候補用の予測画像を生成するとともに、前記第２の選択候補の前記補間フィルタにより補間された前記参照画像と、前記第２の選択候補用の動きベクトルを用いて、前記第２の選択候補用の予測画像を生成し、前記フィルタ係数選択手段は、前記第１の選択候補用の予測画像と前記符号化対象の画像との差分と、前記第２の選択候補用の予測画像と前記符号化対象の画像との差分のうちの小さい方の差分に対応するフィルタ係数を選択することができる。【００５７】
前記フィルタ係数は、前記重み付け予測の使用時用の複数種類のフィルタ係数と、前記重み付け予測の未使用時用の複数種類のフィルタ係数とからなり、前記フィルタ係数選択手段は、前記重み付け予測の使用または未使用と、各種類のフィルタ係数に対応するコスト関数値とに基づいて、前記フィルタ係数を選択することができる。【００５８】
本発明の一側面の画像処理方法は、符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタを備える画像処理装置の画像処理方法において、前記画像処理装置が、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択し、選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成するステップを含む。【００５９】
前記画像処理装置が、符号化対象の画像と、選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出するステップをさらに含むことができる。【００６０】
本発明の一側面のプログラムは、符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタを備える画像処理装置のコンピュータを、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択するフィルタ係数選択手段と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成する動き補償手段として、機能させる。【００６１】
前記コンピュータを、符号化対象の画像と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出する動き予測手段として、さらに機能させることができる。【００６２】
本発明の一側面においては、符号化された画像における異なる複数の参照画像による重み付け予測の使用または未使用に基づいて、前記符号化された画像に対応する前記参照画像の画素を分数精度で補間する補間フィルタのフィルタ係数が選択される。そして、選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、復号された前記動きベクトルを用いて、予測画像が生成される。【００６３】
なお、上述の画像処理装置のそれぞれは、独立した装置であっても良いし、１つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
【発明の効果】
【００６４】
本発明によれば、高周波成分が失われることを抑制し、画質の鮮明感を得ることができる。
【図面の簡単な説明】
【００６５】
【図１】従来のインター予測について説明する図である。
【図２】従来のインター予測について詳細に説明する図である。
【図３】インターポーレーションについて説明する図である。
【図４】双方向予測を説明する図である。
【図５】符号化モードと参照ピクチャおよび動きベクトルの関係を示す図である。
【図６】Separable  AIFを説明する図である。
【図７】入力信号と予測信号の誤差について説明する図である。
【図８】本発明を適用した画像符号化装置の第１実施の形態の構成を示すブロック図である。
【図９】動き予測・補償部の構成例を示すブロック図である。
【図１０】フィルタ係数の分類について説明する図である。
【図１１】パターンＡの場合のフィルタ係数記憶部の構成例を示すブロック図である。
【図１２】パターンＡの場合のフィルタ係数算出部の構成例を示すブロック図である。
【図１３】横方向についてフィルタ係数の算出を説明する図である。
【図１４】縦方向についてフィルタ係数の算出を説明する図である。
【図１５】図８の画像符号化装置の符号化処理を説明するフローチャートである。
【図１６】図１３のステップＳ２２の動き予測・補償処理を説明するフローチャートである。
【図１７】図１６のステップＳ５１のフィルタ係数選択処理を説明するフローチャートである。
【図１８】本発明を適用した画像復号装置の第１実施の形態の構成を示すブロック図である。
【図１９】図１８の動き補償部の構成例を示すブロック図である。
【図２０】パターンＡの場合の固定フィルタ係数記憶部の構成例を示すブロック図である。
【図２１】パターンＡの場合の可変フィルタ係数記憶部の構成例を示すブロック図である。
【図２２】図１８の画像復号装置の復号処理を説明するフローチャートである。
【図２３】図２２のステップＳ１３９の動き補償処理を説明するフローチャートである。
【図２４】図２３のステップＳ１５３の可変フィルタ係数置き換え処理を説明するフローチャートである。
【図２５】拡張されたブロックサイズの例を示す図である。
【図２６】コンピュータのハードウエアの構成例を示すブロック図である。
【図２７】本発明を適用したテレビジョン受像機の主な構成例を示すブロック図である。
【図２８】本発明を適用した携帯電話機の主な構成例を示すブロック図である。
【図２９】本発明を適用したハードディスクレコーダの主な構成例を示すブロック図である。
【図３０】本発明を適用したカメラの主な構成例を示すブロック図である。
【図３１】本発明を適用した画像符号化装置の第２実施の形態の構成を示すブロック図である。
【図３２】図３１の動き予測・補償部の構成例を示すブロック図である。
【図３３】パターンＡの場合のフィルタ係数選択部の構成例を示すブロック図である。
【図３４】Ａ１フィルタ係数メモリの記憶情報の例を示す図である。
【図３５】動き予測・補償処理を説明するフローチャートである。
【図３６】本発明を適用した画像復号装置の第２実施の形態の構成を示すブロック図である。
【図３７】図３６の動き補償部の構成例を示すブロック図である。
【図３８】パターンＡの場合のフィルタ係数セット記憶部の構成例を示すブロック図である。
【図３９】動き補償処理を説明するフローチャートである。
【図４０】フィルタ係数の他の分類について説明する図である。
【発明を実施するための形態】
【００６６】
以下、図を参照して本発明の実施の形態について説明する。
【００６７】
＜第１実施の形態＞
［画像符号化装置の構成例］
図８は、本発明を適用した画像処理装置としての画像符号化装置の第１実施の形態の構成を表している。
【００６８】
この画像符号化装置５１は、例えば、H．264及びMPEG-4 Part10（Advanced Video Coding）（以下H．264/AVCと記す）方式をベースに、入力された画像を圧縮符号化する。
【００６９】
図８の例において、画像符号化装置５１は、A/D変換部６１、画面並べ替えバッファ６２、演算部６３、直交変換部６４、量子化部６５、可逆符号化部６６、蓄積バッファ６７、逆量子化部６８、逆直交変換部６９、演算部７０、デブロックフィルタ７１、フレームメモリ７２、スイッチ７３、イントラ予測部７４、動き予測・補償部７５、予測画像選択部７６、およびレート制御部７７により構成されている。
【００７０】
A/D変換部６１は、入力された画像をA/D変換し、画面並べ替えバッファ６２に出力し、記憶させる。画面並べ替えバッファ６２は、記憶した表示の順番のフレームの画像を、Gop（Group of Picture）に応じて、符号化のためのフレームの順番に並べ替える。
【００７１】
演算部６３は、画面並べ替えバッファ６２から読み出された画像から、予測画像選択部７６により選択されたイントラ予測部７４からの予測画像または動き予測・補償部７５からの予測画像を減算し、その差分情報を直交変換部６４に出力する。直交変換部６４は、演算部６３からの差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を出力する。量子化部６５は直交変換部６４が出力する変換係数を量子化する。
【００７２】
量子化部６５の出力となる、量子化された変換係数は、可逆符号化部６６に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施され、圧縮される。
【００７３】
可逆符号化部６６は、イントラ予測を示す情報をイントラ予測部７４から取得し、インター予測モードを示す情報などを動き予測・補償部７５から取得する。なお、イントラ予測を示す情報およびインター予測を示す情報は、以下、それぞれ、イントラ予測モード情報およびインター予測モード情報とも称する。
【００７４】
可逆符号化部６６は、量子化された変換係数を符号化するとともに、イントラ予測を示す情報、インター予測モードを示す情報などを符号化し、圧縮画像におけるヘッダ情報の一部とする。可逆符号化部６６は、符号化したデータを蓄積バッファ６７に供給して蓄積させる。
【００７５】
例えば、可逆符号化部６６においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、H．264/AVC方式で定められているCAVLC（Context-Adaptive Variable Length Coding）などがあげられる。算術符号化としては、CABAC（Context-Adaptive Binary Arithmetic Coding）などがあげられる。
【００７６】
蓄積バッファ６７は、可逆符号化部６６から供給されたデータを、符号化された圧縮画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
【００７７】
また、量子化部６５より出力された、量子化された変換係数は、逆量子化部６８にも入力され、逆量子化された後、さらに逆直交変換部６９において逆直交変換される。逆直交変換された出力は演算部７０により予測画像選択部７６から供給される予測画像と加算されて、局部的に復号された画像となる。デブロックフィルタ７１は、復号された画像のブロック歪を除去した後、フレームメモリ７２に供給し、蓄積させる。フレームメモリ７２には、デブロックフィルタ７１によりデブロックフィルタ処理される前の画像も供給され、蓄積される。
【００７８】
スイッチ７３はフレームメモリ７２に蓄積された参照画像を動き予測・補償部７５またはイントラ予測部７４に出力する。
【００７９】
この画像符号化装置５１においては、例えば、画面並べ替えバッファ６２からのＩピクチャ、Ｂピクチャ、およびＰピクチャが、イントラ予測（イントラ処理とも称する）する画像として、イントラ予測部７４に供給される。また、画面並べ替えバッファ６２から読み出されたＢピクチャおよびＰピクチャが、インター予測（インター処理とも称する）する画像として、動き予測・補償部７５に供給される。
【００８０】
イントラ予測部７４は、画面並べ替えバッファ６２から読み出されたイントラ予測する画像とフレームメモリ７２から供給された参照画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。
【００８１】
その際、イントラ予測部７４は、候補となる全てのイントラ予測モードに対してコスト関数値を算出し、算出したコスト関数値が最小値を与えるイントラ予測モードを、最適イントラ予測モードとして選択する。
【００８２】
このコスト関数は、RD(Rate Distortion)コストともいい、例えば、H.264/AVC方式における参照ソフトウエアであるJM(Joint Model)で定められているような、High Complexity モードか、Low Complexity モードのいずれかの手法に基づいてその値が算出される。
【００８３】
具体的には、コスト関数値の算出手法としてHigh Complexity モードが採用される場合、候補となる全てのイントラ予測モードに対して、仮に符号化処理までが行われ、次の式（６）で表わされるコスト関数が各イントラ予測モードに対して算出される。
【００８４】
Cost(Mode)=D+λ・R                                    ・・・（６）
【００８５】
Dは、原画像と復号画像の差分（歪）、Rは、直交変換係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
【００８６】
一方、コスト関数値の算出手法としてLow Complexity モードが採用される場合、候補となる全てのイントラ予測モードに対して、イントラ予測画像の生成、および、イントラ予測モードを表す情報などのヘッダビットの算出が行われ、次の式（７）で表わされるコスト関数が各イントラ予測モードに対して算出される。
【００８７】
Cost(Mode)=D+QPtoQuant(QP)・Header_Bit                ・・・（７）
【００８８】
Dは、原画像と復号画像の差分（歪）、Header_Bitは、イントラ予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
【００８９】
Low Complexity モードにおいては、全てのイントラ予測モードに対して、イントラ予測画像を生成するだけでよく、符号化処理を行う必要がないため、演算量が少なくて済む。
【００９０】
イントラ予測部７４は、最適イントラ予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部７６に供給する。イントラ予測部７４は、予測画像選択部７６により最適イントラ予測モードで生成された予測画像が選択された場合、最適イントラ予測モードを示す情報を、可逆符号化部６６に供給する。可逆符号化部６６は、この情報を符号化し、圧縮画像におけるヘッダ情報の一部とする。
【００９１】
動き予測・補償部７５は、フィルタ係数が固定の補間フィルタを用いて、参照画像にフィルタ処理を行う。なお、フィルタ係数が固定とは、１つに固定する意味ではなく、AIF(Adaptive Interpolation Filter)における可変に対する固定であって、係数を入れ替えることは可能である。以下、固定の補間フィルタによるフィルタ処理を、固定フィルタ処理ともいう。
【００９２】
動き予測・補償部７５は、インター処理する画像と固定フィルタ処理後の参照画像に基づいて、候補となる全てのインター予測モードのブロックの動き予測を行い、各ブロックの動きベクトルを生成する。そして、動き予測・補償部７５は、固定フィルタ処理後の参照画像に対して補償処理を行い、予測画像を生成する。このとき、動き予測・補償部７５は、候補となる全てのインター予測モードに対して、処理対象のブロックのコスト関数値を求め、予測モードを決定し、決定した予測モードで、処理対象のスライスのコスト関数値を求める。
【００９３】
また、動き予測・補償部７５は、生成された動きベクトル、インター処理する画像、参照画像を用いて、スライスの種類に応じたタップ数の、係数の可変の補間フィルタ（AIF）のフィルタ係数を求める。そして、動き予測・補償部７５は、求めたフィルタ係数のフィルタを用いて、参照画像にフィルタ処理を行う。なお、以下、可変の補間フィルタによるフィルタ処理を、可変フィルタ処理ともいう。
【００９４】
ここで、動き予測・補償部７５においては、少なくとも、L0およびL1の参照画素を用いた重み付き予測（以下、L0L1重み付き予測と称する）に用いられる固定フィルタ用のフィルタ係数（以下、固定フィルタ係数と称する）と、それ以外の予測に用いられる固定フィルタ係数が記憶されている。また、可変の場合も同様に、動き予測・補償部７５においては、少なくとも、L0L1重み付き予測に用いられる可変フィルタ用のフィルタ係数（以下、可変フィルタ係数と称する）と、それ以外の予測に用いられる可変フィルタ係数が算出される。
【００９５】
例えば、L0L1重み付き予測に用いられるフィルタ係数は、そのフィルタ処理後の画像の高周波成分を増幅するようなフィルタ特性を有している。
【００９６】
そして、動き予測・補償部７５においては、L0L1重み付き予測が行われる場合には、L0およびL1の参照画素を用いた重み付き予測に用いられる固定フィルタ係数および可変フィルタ係数で予測が行われる。一方、L0L1重み付き予測以外の予測が行われる場合には、L0およびL1の参照画素を用いた重み付き予測以外の予測に用いられる固定フィルタ係数および可変フィルタ係数で予測が行われる。
【００９７】
動き予測・補償部７５は、再度、インター処理する画像と可変フィルタ処理後の参照画像に基づいて、候補となる全てのインター予測モードのブロックの動き予測を行い、各ブロックの動きベクトルを生成する。そして、動き予測・補償部７５は、可変フィルタ処理後の参照画像に対して補償処理を行い、予測画像を生成する。このとき、動き予測・補償部７５は、候補となる全てのインター予測モードに対して、処理対象のブロックのコスト関数値を求め、予測モードを決定し、決定した予測モードで、処理対象のスライスのコスト関数値を求める。
【００９８】
そして、動き予測・補償部７５は、固定フィルタ処理後のコスト関数値と、可変フィルタ処理後のコスト関数値を比較する。動き予測・補償部７５は、その値の小さい方を採用し、その予測画像とコスト関数値を予測画像選択部７６に出力するとともに、処理対象のスライスがAIFを使用するか否かを示すAIF使用フラグを設定する。このAIF使用フラグは、L0L1重み付き予測に用いられるフィルタ係数およびそれ以外の予測に用いられるフィルタ係数毎に設定される。
【００９９】
動き予測・補償部７５は、予測画像選択部７６により最適インター予測モードの対象ブロックの予測画像が選択された場合、最適インター予測モードを示す情報（インター予測モード情報）を可逆符号化部６６に出力する。
【０１００】
このとき、動きベクトル情報、参照フレーム情報、スライスの情報、およびAIF使用フラグ、並びに、AIF使用の場合には、フィルタ係数なども可逆符号化部６６に出力される。可逆符号化部６６は、動き予測・補償部７５からの情報をやはり可変長符号化、算術符号化といった可逆符号化処理し、圧縮画像のヘッダ部に挿入する。なお、スライスの情報、AIF使用フラグ、およびフィルタ係数は、スライスヘッダに挿入される。
【０１０１】
予測画像選択部７６は、イントラ予測部７４または動き予測・補償部７５より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードから、最適予測モードを決定する。そして、予測画像選択部７６は、決定された最適予測モードの予測画像を選択し、演算部６３，７０に供給する。このとき、予測画像選択部７６は、点線に示されるように、予測画像の選択情報を、イントラ予測部７４または動き予測・補償部７５に供給する。
【０１０２】
レート制御部７７は、蓄積バッファ６７に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部６５の量子化動作のレートを制御する。
【０１０３】
［動き予測・補償部の構成例］
図９は、動き予測・補償部７５の構成例を示すブロック図である。なお、図９においては、図８のスイッチ７３が省略されている。
【０１０４】
図９の例において、動き予測・補償部７５は、固定補間フィルタ８１、フィルタ係数記憶部８２、可変補間フィルタ８３、フィルタ係数算出部８４、動き予測部８５、動き補償部８６および制御部８７により構成されている。
【０１０５】
画面並べ替えバッファ６２からの入力画像（インター処理する画像）は、フィルタ係数算出部８４、および動き予測部８５に入力される。フレームメモリ７２からの参照画像は、固定補間フィルタ８１、可変補間フィルタ８３、およびフィルタ係数算出部８４に入力される。
【０１０６】
固定補間フィルタ８１は、フィルタ係数が固定（すなわち、AIFではない）の補間フィルタである。固定補間フィルタ８１は、フレームメモリ７２からの参照画像に対して、フィルタ係数記憶部８２からのフィルタ係数を用いて、フィルタ処理を施し、固定フィルタ処理後の参照画像を、動き予測部８５および動き補償部８６に出力する。
【０１０７】
フィルタ係数記憶部８２は、固定補間フィルタ８１で使用される、少なくとも、L0L1重み付き予測用およびそれ以外の予測用の固定フィルタ係数を記憶しており、それらのフィルタ係数を読み出して、制御部８７の制御のもと選択し、選択した固定フィルタ係数を、固定補間フィルタ８１に供給する。
【０１０８】
可変補間フィルタ８３は、フィルタ係数可変の補間フィルタ（すなわち、AIF）である。可変補間フィルタ８３は、フレームメモリ７２からの参照画像に対して、フィルタ係数算出部８４により算出された可変フィルタ係数を用いてフィルタ処理を施し、可変フィルタ処理後の参照画像を動き予測部８５および動き補償部８６に出力する。
【０１０９】
フィルタ係数算出部８４は、画面並べ替えバッファ６２からの入力画像、フレームメモリ７２からの参照画像、動き予測部８５からの１回目の動きベクトルを用いて、可変補間フィルタ８３のフィルタ処理後の参照画像を、入力画像に近づけるためのフィルタ係数を算出する。例えば、フィルタ係数算出部８４は、少なくとも、L0L1重み付き予測に用いられる可変フィルタ係数と、それ以外の予測に用いられる可変フィルタ係数を算出する。フィルタ係数算出部８４は、算出した可変フィルタ係数を、制御部８７の制御もと選択し、選択した可変フィルタ係数を可変補間フィルタ８３に供給する。
【０１１０】
また、フィルタ係数算出部８４は、制御部８７からの制御のもと、予測画像選択部７６においてインター予測画像が選択され、対象スライスで可変フィルタを使用する場合に、L0L1重み付き予測またはその他の予測に対応する可変フィルタ係数を、可逆符号化部６６に出力する。
【０１１１】
動き予測部８５は、画面並べ替えバッファ６２からの入力画像と、固定補間フィルタ８１からの固定フィルタ後の参照画像に基づいて、候補となる全てのインター予測モードの１回目の動きベクトルを生成し、生成した動きベクトルを、フィルタ係数算出部８４および動き補償部８６に出力する。また、動き予測部８５は、画面並べ替えバッファ６２からの入力画像と、可変補間フィルタ８３からの可変フィルタ後の参照画像に基づいて、候補となる全てのインター予測モードの２回目の動きベクトルを生成し、生成した動きベクトルを、動き補償部８６に出力する。
【０１１２】
動き補償部８６は、１回目の動きベクトルを用いて、固定補間フィルタ８１からの固定フィルタ後の参照画像に対し補償処理を施し、予測画像を生成する。そして、動き補償部８６は、ブロック毎にコスト関数値を算出することにより、最適インター予測モードを決定し、決定した最適インター予測モードで、対象スライスの１回目のコスト関数値を算出する。
【０１１３】
動き補償部８６は、次に、２回目の動きベクトルを用いて、可変補間フィルタ８３からの可変フィルタ後の参照画像に対し補償処理を施し、予測画像を生成する。そして、動き補償部８６は、ブロック毎にコスト関数値を算出することにより、最適インター予測モードを決定し、決定した最適インター予測モードで、対象スライスの２回目のコスト関数値を算出する。
【０１１４】
そして、動き補償部８６は、対象スライスについて、１回目のコスト関数値と２回目のコスト関数値を比較し、その値が小さい方のフィルタを使用することを決定する。すなわち、動き補償部８６は、１回目のコスト関数値の方が小さい場合、その対象スライスでは固定フィルタを使用するとし、固定フィルタ後の参照画像で生成された予測画像とコスト関数値を予測画像選択部７６に供給し、AIF使用フラグの値を０（未使用）に設定する。また、動き補償部８６は、２回目のコスト関数値の方が小さい場合、その対象スライスでは可変フィルタを使用するとし、可変フィルタ後の参照画像で生成された予測画像とコスト関数値を予測画像選択部７６に供給し、AIF使用フラグの値を１（使用）に設定する。
【０１１５】
なお、このAIF使用フラグは、L0L1重み付き予測に用いられるフィルタ係数およびそれ以外の予測に用いられるフィルタ係数毎に設定される。したがって、対象スライスで固定フィルタを使用する場合、それらに対応した両方のフラグの値が０に設定される。対象スライスで可変フィルタを使用する場合、両方のフィルタ係数が算出されていれば、両方のフラグの値が１に設定される。すなわち、算出されていない（すなわち、対応する予測モードが用いられていない）フィルタ係数に対応するフラグは、可変フィルタを使用する場合でも０に設定される。
【０１１６】
動き補償部８６は、予測画像選択部７６においてインター予測画像が選択された場合、制御部８７の制御のもと、最適インター予測モードの情報、スライスの種類が含まれるスライスの情報、AIF使用フラグ、動きベクトル、参照画像の情報などを、可逆符号化部６６に出力する。
【０１１７】
制御部８７は、予測の種類、すなわち、L0L1重み付き予測またはその他の予測であるかに応じて、フィルタ係数記憶部８２およびフィルタ係数算出部８４を制御する。すなわち、制御部８７は、L0L1重み付き予測の場合、L0L1重み付き予測に用いられるフィルタ係数をフィルタ係数記憶部８２に選択させ、L0L1重み付き予測に用いられるフィルタ係数をフィルタ係数算出部８４に選択させる。また、制御部８７は、その他の予測の場合（すなわち、L0L1重み付き予測を行わない予測）、その他の予測に用いられるフィルタ係数をフィルタ係数記憶部８２に選択させ、その他の予測に用いられるフィルタ係数をフィルタ係数算出部８４に選択させる。
【０１１８】
また、制御部８７は、予測画像選択部７６からのインター予測画像が選択されたという信号を受けると、動き補償部８６およびフィルタ係数算出部８４に、必要な情報を、可逆符号化部６６に出力させる制御も行う。
【０１１９】
[フィルタ係数の分類]
次に、図１０を参照して、フィルタ係数の分類方法について説明する。なお、図１０の例において、フィルタ[X][X]となっている部分の数字とアルファベットが異なれば、フィルタの特性が異なることを表している。
【０１２０】
動き予測・補償部７５においてフィルタ係数を分類する方法は、L0L1重み付き予測を使うか、使わないかに応じて、図１０に示されるパターンＡ乃至Ｃの３種類のパターンが存在する。なお、全ての予測モードのうち、双予測モード、ダイレクト・モード、およびスキップ・モードにおいて、L0L1重み付き予測が使われる可能性がある。
【０１２１】
パターンＡは、フィルタ係数を、フィルタ係数Ａ１乃至Ａ４の４つに分類する方法である。フィルタ係数Ａ１は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられる。フィルタ係数Ａ２は、L0L1重み付き予測を使う場合の双予測モードに用いられる。フィルタ係数Ａ３は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられる。フィルタ係数Ａ４は、L0L1重み付き予測を使う場合のスキップ・モードに用いられる。
【０１２２】
パターンＢは、フィルタ係数を、フィルタ係数Ｂ１乃至Ｂ３の３つに分類する方法である。フィルタ係数Ｂ１は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられる。フィルタ係数Ｂ２は、L0L1重み付き予測を使う場合の双予測モードに用いられる。フィルタ係数Ｂ３は、L0L1重み付き予測を使う場合の双予測モード以外のモード、すなわち、ダイレクト・モードまたはスキップ・モードに用いられる。
【０１２３】
パターンＣは、フィルタ係数を、フィルタ係数Ｃ１およびＣ２の２つに分類する方法である。フィルタ係数Ｃ１は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられる。フィルタ係数Ｃ２は、L0L1重み付き予測を使う場合の予測モード、すなわち、双予測モード、ダイレクト・モード、またはスキップ・モードに用いられる。
【０１２４】
参考までに、従来においては、L0L1重み付き予測を使うか、使わないかに応じて、フィルタ係数は分類されておらず、フィルタ係数Ｄ１の１種類で予測が行われていた。
【０１２５】
すなわち、パターンＣは、L0L1重み付き予測を使うか、使わないかに応じて、大まかに分類した例であり、パターンＢは、パターンＣをさらに、L0L1重み付き予測を使う場合において、双予測モードであるか否かに分類した例である。そして、パターンＡは、パターンＢをさらに、双予測モードでない場合において、ダイレクト・モードであるか、スキップ・モードであるかに分類した例である。
【０１２６】
パターンＣにおいては、フィルタ係数Ｃ１よりも重み付き予測を行う場合のフィルタ係数Ｃ２は、重み付き予測で失われる高周波成分を増幅するような特性を有するようになされる。これにより、重み付き予測で失われる高周波成分を補うことができる。
【０１２７】
パターンＢにおいては、重み付き予測を行う場合にさらに、フィルタ係数Ｂ２とフィルタ係数Ｂ３で異なる特性を有するようになされる。例えば、フィルタ係数Ｂ２とフィルタ係数Ｂ３のフィルタ特性の違いとしては、重み付き予測で失われる高周波成分の増幅の程度が異なっている。これにより、図７を参照して上述したように、双予測モードとダイレクト・モード（スキップ・モード）の位置ずれの程度が異なる場合に対応することができる。
【０１２８】
パターンＡにおいては、重み付き予測を行う場合にさらに、フィルタ係数Ａ２乃至Ａ４で異なる特性を有するようになされる。例えば、フィルタ係数Ａ２乃至Ａ４のフィルタ特性の違いとしては、重み付き予測で失われる高周波成分の増幅の程度がそれぞれ異なっている。これにより、双予測モード、ダイレクト・モード、およびスキップ・モードの位置ずれの程度が異なる場合に対応することができる。
【０１２９】
なお、以下においては、パターンＡ乃至パターンＣのうち、代表してパターンＡの場合について説明するが、パターンＢおよびパターンＣの場合もフィルタ係数の数が異なるだけであり、同様になされることが可能である。
【０１３０】
[フィルタ係数記憶部の構成例]
図１１は、パターンＡの場合のフィルタ係数記憶部の構成例を示すブロック図である。
【０１３１】
図１１の例において、フィルタ係数記憶部８２は、Ａ１フィルタ係数メモリ９１、Ａ２フィルタ係数メモリ９２、Ａ３フィルタ係数メモリ９３、Ａ４フィルタ係数メモリ９４、およびセレクタ９５により構成されている。
【０１３２】
Ａ１フィルタ係数メモリ９１は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数Ａ１を記憶しており、フィルタ係数Ａ１をセレクタ９５に出力する。Ａ２フィルタ係数メモリ９２は、L0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数Ａ２を記憶しており、フィルタ係数Ａ２をセレクタ９５に出力する。
【０１３３】
Ａ３フィルタ係数メモリ９３は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられるフィルタ係数Ａ３を記憶しており、フィルタ係数Ａ３をセレクタ９５に出力する。Ａ４フィルタ係数メモリ９４は、L0L1重み付き予測を使う場合のスキップ・モードに用いられるフィルタ係数Ａ４記憶しており、フィルタ係数Ａ４をセレクタ９５に出力する。
【０１３４】
セレクタ９５は、制御部８７の制御のもと、フィルタ係数Ａ１乃至Ａ４のうち、１つのフィルタ係数を選択し、固定補間フィルタ８１に出力する。
【０１３５】
[フィルタ係数算出部の構成例]
図１２は、パターンＡの場合のフィルタ係数算出部の構成例を示すブロック図である。
【０１３６】
図１２の例において、フィルタ係数算出部８４は、Ａ１フィルタ係数算出部１０１、Ａ２フィルタ係数算出部１０２、Ａ３フィルタ係数算出部１０３、Ａ４フィルタ係数記算出部１０４、およびセレクタ１０５により構成されている。
【０１３７】
Ａ１フィルタ係数算出部１０１は、画面並べ替えバッファ６２からの入力画像、フレームメモリ７２からの参照画像、動き予測部８５からの１回目の動きベクトルを用いて、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数Ａ１を算出し、セレクタ１０５に出力する。Ａ２フィルタ係数算出部１０２は、画面並べ替えバッファ６２からの入力画像、フレームメモリ７２からの参照画像、動き予測部８５からの１回目の動きベクトルを用いて、L0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数Ａ２を算出し、セレクタ１０５に出力する。
【０１３８】
Ａ３フィルタ係数算出部１０３は、画面並べ替えバッファ６２からの入力画像、フレームメモリ７２からの参照画像、動き予測部８５からの１回目の動きベクトルを用いて、L0L1重み付き予測を使う場合のダイレクト・モードに用いられるフィルタ係数Ａ３を算出し、セレクタ１０５に出力する。Ａ４フィルタ係数算出部１０４は、画面並べ替えバッファ６２からの入力画像、フレームメモリ７２からの参照画像、動き予測部８５からの１回目の動きベクトルを用いて、L0L1重み付き予測を使う場合のスキップ・モードに用いられるに用いられるフィルタ係数Ａ４を算出し、セレクタ１０５に出力する。
【０１３９】
セレクタ１０５は、制御部８７の制御のもと、フィルタ係数Ａ１乃至Ａ４のうち、１つのフィルタ係数を選択し、可変補間フィルタ８３に出力する。
【０１４０】
［フィルタ係数の算出方法］
次に、フィルタ係数の算出方法について説明する。なお、まず、Ａ１フィルタ係数算出部１０１によるL0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数Ａ１の算出方法について説明する。
【０１４１】
フィルタ係数の算出方法については、AIFの補間方法に種類があるため、若干の違いはあるが、最小二乗法を使うといった基本的な部分は同じである。可変補間フィルタ８３は、例えば、図６を参照して説明したSeparable adaptive interpolation filter(以下、Separable  AIFと称する)により補間処理を行うので、ここでは、代表として、Separable AIFにより、横の補間処理の後に、縦の補間を２段階で行う補間方法について説明する。
【０１４２】
図１３は、Separable AIFの横方向のフィルタを表している。図１３に示す横方向のフィルタにおいて、斜線が付された正方形は、整数位置の画素(Integer pel(Int. pel))を表し、白色の正方形は、分数位置の画素(Sub pel)を表している。また、正方形内のアルファベットは、その正方形が表す画素の画素値を表している。
【０１４３】
最初に、横方向の補間、すなわち、図１３の画素値a,b,cの分数位置の画素位置に対するフィルタ係数を求める。ここでは、６タップフィルタが使用されるので、分数位置の画素値a,b,cを算出するために、整数位置の画素値C1,C2,C3,C4,C5,C6が用いられ、フィルタ係数は、次の式（８）を最小化するようにして算出される。
【０１４４】
【数１】
2011078002.tif 000003
ここで、eは、予測誤差であり、spは分数位置の画素値a,b,cのいずれかであり、Sは、原信号であり、Pは、デコード済み参照画素値であり、x.yは、原信号の対象となるピクセル位置である。
【０１４５】
また、式（８）において、次の式（９）である。
【数２】
2011078002.tif 000004
MVｘおよびspは、１回目の動き予測で検出され、MVｘは、整数精度で横方向の動きベクトルであり、spは、分数位置の画素位置を表し、動きベクトルの分数部分に相当する。FilterOffsetは、フィルタのタップ数の半分から１を引いた数に相当し、ここでは、２＝６／２−１となる。hは、フィルタ係数であり、iは、0乃至5からなる。
【０１４６】
画素値a,b,cにおける最適なフィルタ係数は、eの２乗を最も小さくするhとして求めることができる。次の式（１０）に示されるように、予測誤差の２乗を、hで偏微分したものを0になるように、連立方程式が得られる。この連立方程式を解くことにより、分数位置の画素値(sp)がa,b,cのそれぞれに対して、iが0乃至5について独立したフィルタ係数を求めることができる。
【０１４７】
【数３】
2011078002.tif 000005
さらに詳しく述べると、１回目の動き探索によって各ブロックで動きベクトルは求まる。その動きベクトルで、分数位置が画素値aのブロックを入力データとして、式（１０）における次の式（１１）が決まり、画素値aの位置の補間のためのフィルタ係数ha,i,∀i∈{0,1,2,3,4,5}について解くことができる。というように、画素値a,b,cが求まる。
【０１４８】
【数４】
2011078002.tif 000006
【０１４９】
横方向のフィルタ係数が求まり、補間処理が行えるようになるので、画素値a,b,cに対して補間を行うと、図１４に示す縦方向のフィルタのようになる。図１４において、画素値a,b,cは、最適なフィルタ係数を用いて補間されており、同様に、画素値A3とA4の間, 画素値B3とB4の間, 画素値D3とD4の間, 画素値E3とE4の間, 画素値F3とF4の間も補間されている。
【０１５０】
すなわち、図１４に示すSeparable AIFの縦方向のフィルタにおいて、斜線が付された正方形は、整数位置の画素または横方向のフィルタで既に求められた分数位置の画素を表し、白色の正方形は、縦方向のフィルタで求めるべく、分数位置の画素を表している。また、正方形内のアルファベットは、その正方形が表す画素の画素値を表している。
【０１５１】
図１４に示す縦方向の場合も、横方向の場合と同様に、次の式（１２）の予測誤差を最小化するようにしてフィルタ係数が求まる。
【０１５２】
【数５】
2011078002.tif 000007
ここで、式（１３）は、符号化済み参照ピクセルまたは補間されたピクセルであり、式（１４）であり、式（１５）である。
【０１５３】
【数６】
2011078002.tif 000008
【数７】
2011078002.tif 000009
【数８】
2011078002.tif 000010
また、MVｙおよびspは、１回目の動き予測で検出され、MVｙは、整数精度での縦方向の動きベクトルであり、spは、分数位置の画素位置を表し、動きベクトルの分数部分に相当する。FilterOffsetは、フィルタのタップ数の半分から１を引いた数に相当し、ここでは、２＝６／２−１となる。hは、フィルタ係数であり、jは、0乃至5からなる。
【０１５４】
横方向の場合と同様に、式（１２）の予測誤差の２乗が最小になるようにフィルタ係数hが算出される。そのために、式（１６）に示すように、予測誤差の２乗をhで偏微分したものを0とおいて、連立方程式が得られる。各分数位置の画素、すなわち、画素値d,e,f,g,h,I,j,k,l,m,n,oについて、この連立方程式を解くことで、各分数位置の画素における縦の補間フィルタの最適なフィルタ係数を得ることができる。
【０１５５】
【数９】
2011078002.tif 000011
【０１５６】
次に、例えば、Ａ２フィルタ係数算出部１０２によるL0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数の算出方法について説明する。
【０１５７】
なお、従来は、重み付き予測が行われる予測モードであったとしても、L0参照ピクチャと源信号（入力画像）の間、あるいは、L1参照ピクチャと源信号の間に対して、上述したＡ１フィルタ係数算出部１０１による算出方法によってフィルタ係数は算出された。
【０１５８】
これに対して、例えば、L0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数の算出方法においては、上述した式（８）の予測誤差は、次の式（１７）に示す複数参照の予測誤差のように変化を受ける。
【０１５９】
【数１０】
2011078002.tif 000012
【０１６０】
ここで、式（１７）において、spL0は、１回目の動き探索によって得られたL0参照の動きベクトルの分数部分に相当する補間位置であり、spL1は、L1参照の動きベクトルの分数部分に相当する補間位置である。MVL0は、L0参照に対する整数精度の動きベクトルに相当し、MVL1は、L1参照に対する整数精度の動きベクトルに相当する。e2sp0,sp1はL1予測誤差である。
【０１６１】
また、次の式（１８）は、L0予測の補間処理後の参照ピクセルであり、次の式（１９）は、L1予測の補間処理後の参照ピクセルであり、次の式（２０）は、L0参照とL1参照のピクチャである。
【０１６２】
【数１１】
2011078002.tif 000013
【数１２】
2011078002.tif 000014
【数１３】
2011078002.tif 000015
【０１６３】
さらに、式（１７）において、hspL0,i,hspL1,iは、L0参照とL1参照のフィルタ係数であり、spL0,spL1はそれぞれa,b,またはcとなる。
【０１６４】
ここでは、説明を簡単にするため重み付き予測は、L0とL1で同じ重みとした。これをこれまでと同様に予測誤差e2sp0,sp1を最小にすることによって、最適なフィルタ係数hspL0,i,hspL1,iが算出される。このe2sp0,sp1をhで偏微分し、0と置くことで次の式（２１）に示す連立方程式が得られる。
【０１６５】
【数１４】
2011078002.tif 000016
ここで、xは参照方向のL0,L1の数字の部分である。この式（２１）の連立方程式を解くことで、spL0,spL1の組み合わせにおける最適なフィルタ係数hspL0,i,hspL1,iが得られる。
【０１６６】
以上の方法を実践すると、L0動きベクトルの分数位置の画素位置、およびL1動きベクトルの分数位置の画素位置の組み合わせ数に相当するフィルタ係数が得られる。しかしながら、全ての組み合わせを使用すると、a-a,a-b,a-c,…o-m,o-oという組み合わせのように、15×15=225通りとなる。
【０１６７】
このようにフィルタ係数の種類が多くなり過ぎるとストリーム情報に含めるオーバーヘッドが無視できなくなってしまう。そこで、以下にフィルタ係数の組み合わせを減らす方法について説明する。
【０１６８】
再び、予測誤差を、式（１７）から、次の式（２２）のように定義する。
【０１６９】
【数１５】
2011078002.tif 000017
ここで、e2sp0は、L0の動きベクトルの分数部分（分数位置の画素位置）がspL0であるときの予測誤差であり、hFIXspL1,iは、固定のフィルタ係数で代表的な補間フィルタで用いられるものが使われる。上述した式（１７）においては、予測誤差がspL0およびspL1の組み合わせによって与えられていたのに対し、式（２２）においては、spL0のみに予測誤差が与えられている。
【０１７０】
この式（２２）をこれまでと同様に予測誤差e2sp0,sp1を最小にすることによって、最適なフィルタ係数hspL0,i,hspL1,iが算出される。このe2sp0,sp1をhで偏微分し、0と置くことで次の式（２３）に示す連立方程式が得られる。
【数１６】
2011078002.tif 000018
【０１７１】
この式（２３）をhspL0,iについて解くことで、L0L1重み付き予測を考慮した分数位置の画素位置a,b,cのフィルタ係数が求まる。式（２３）は、L1参照ピクチャの補間フィルタが固定になっているため完全な最適化にはならないが、近似的に最適値が得られる。
【０１７２】
また、hspL0,iについてフィルタ係数が得られるが、この式（２３）でL1とL0とを置き換えてL0側を固定のフィルタ係数として計算することで同様にL1側のフィルタ係数も求まり、L0とL1の両方で計算することで、L0とL1で統合されたフィルタ係数が求まる。縦方向についても同様の計算を行うことで、a,b,c位置以外のフィルタ係数を得ることができる。
【０１７３】
これにより、フィルタ処理後の画像の高周波成分を増幅するようなフィルタ特性を有するL0L1重み付き予測に用いられるフィルタ係数が算出される。
【０１７４】
なお、双予測モード用のフィルタ係数の算出には、１回目の動き予測により双予測モードが決定されたブロックの画素が用いられる。これに対して、ダイレクト・モード用およびスキップ・モード用のフィルタ係数の算出は、それぞれ用いられる画素が、１回目の動き予測によりダイレクト・モードおよびスキップ・モードが決定されたブロックの画素が用いられる点が異なるだけであり、そのほかは、双予測モード用のフィルタ係数の算出と同様である。
【０１７５】
［画像符号化装置の符号化処理の説明］
次に、図１５のフローチャートを参照して、図８の画像符号化装置５１の符号化処理について説明する。
【０１７６】
ステップＳ１１において、A/D変換部６１は入力された画像をA/D変換する。ステップＳ１２において、画面並べ替えバッファ６２は、A/D変換部６１より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【０１７７】
ステップＳ１３において、演算部６３は、ステップＳ１２で並び替えられた画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部７５から、イントラ予測する場合はイントラ予測部７４から、それぞれ予測画像選択部７６を介して演算部６３に供給される。
【０１７８】
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
【０１７９】
ステップＳ１４において、直交変換部６４は演算部６３から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップＳ１５において、量子化部６５は変換係数を量子化する。この量子化に際しては、後述するステップＳ２６の処理で説明されるように、レートが制御される。
【０１８０】
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップＳ１６において、逆量子化部６８は量子化部６５により量子化された変換係数を量子化部６５の特性に対応する特性で逆量子化する。ステップＳ１７において、逆直交変換部６９は逆量子化部６８により逆量子化された変換係数を直交変換部６４の特性に対応する特性で逆直交変換する。
【０１８１】
ステップＳ１８において、演算部７０は、予測画像選択部７６を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像（演算部６３への入力に対応する画像）を生成する。ステップＳ１９においてデブロックフィルタ７１は、演算部７０より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップＳ２０においてフレームメモリ７２は、フィルタリングされた画像を記憶する。なお、フレームメモリ７２にはデブロックフィルタ７１によりフィルタ処理されていない画像も演算部７０から供給され、記憶される。
【０１８２】
ステップＳ２１において、イントラ予測部７４は、イントラ予測処理を行う。具体的には、イントラ予測部７４は、画面並べ替えバッファ６２から読み出されたイントラ予測する画像と、スイッチ７３を介してフレームメモリ７２から供給された画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、イントラ予測画像を生成する。
【０１８３】
イントラ予測部７４は、候補となる全てのイントラ予測モードに対してコスト関数値を算出する。イントラ予測部７４は、算出されたコスト関数値のうち、最小値を与えるイントラ予測モードを、最適イントラ予測モードとして決定する。そして、イントラ予測部７４は、最適イントラ予測モードで生成されたイントラ予測画像とそのコスト関数値を、予測画像選択部７６に供給する。
【０１８４】
ステップＳ２２において、動き予測・補償部７５は、動き予測・補償処理を行う。ステップＳ２２における動き予測・補償処理の詳細は、図１６を参照して後述される。
【０１８５】
この処理により、少なくとも、L0L1重み付き予測またはそれ以外の予測に応じたフィルタ係数の固定フィルタおよび可変フィルタが用いられてフィルタ処理が行われ、フィルタ処理された参照画像を用いてブロック毎に動きベクトルおよび予測モードが決定され、対象スライスのコスト関数値が算出される。そして、固定フィルタによる対象スライスのコスト関数値と可変フィルタによる対象スライスのコスト関数値が比較されて、比較結果によりAIF（可変フィルタ）を用いるか否かが決定される。そして、動き予測・補償部７５は、決定された方の予測画像とコスト関数値を、予測画像選択部７６に供給する。
【０１８６】
ステップＳ２３において、予測画像選択部７６は、イントラ予測部７４および動き予測・補償部７５より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部７６は、決定した最適予測モードの予測画像を選択し、演算部６３，７０に供給する。この予測画像が、上述したように、ステップＳ１３，Ｓ１８の演算に利用される。
【０１８７】
なお、この予測画像の選択情報は、イントラ予測部７４または動き予測・補償部７５に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部７４は、最適イントラ予測モードを示す情報（すなわち、イントラ予測モード情報）を、可逆符号化部６６に供給する。
【０１８８】
最適インター予測モードの予測画像が選択された場合、動き予測・補償部７５の動き補償部８６は、最適インター予測モードを示す情報、動きベクトル情報や参照フレーム情報、可逆符号化部６６に出力する。また、動き補償部８６は、スライス毎に、スライスの情報、AIF使用フラグ情報を可逆符号化部６６に出力する。
【０１８９】
なお、AIF使用フラグ情報は、用いられるフィルタ係数毎に設定される。したがって、パターンＡの場合、L0L1重み付き予測を使わない用のAIF使用フラグ（aif_other_flag）、双予測モード用のAIF使用フラグ（aif_bipred_flag）、ダイレクト・モード用のAIF使用フラグ（aif_direct_flag）、スキップ・モード用のAIF使用フラグ（aif_skip_flag）の値が設定される。
【０１９０】
ステップＳ２４において、可逆符号化部６６は量子化部６５より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、上述したステップＳ２３において可逆符号化部６６に入力された、イントラ予測部７４からのイントラ予測モード情報、または、動き予測・補償部７５からの最適インター予測モードや、上述した各情報なども符号化され、ヘッダ情報に付加される。
【０１９１】
例えば、インター予測モードを示す情報は、マクロブロック毎に符号化される。動きベクトル情報や参照フレーム情報は、対象となるブロック毎に符号化される。また、スライスの情報、AIF使用フラグ情報およびフィルタ係数は、スライス毎にスライスヘッダに挿入されて符号化される。
【０１９２】
ステップＳ２５において蓄積バッファ６７は差分画像を圧縮画像として蓄積する。蓄積バッファ６７に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
【０１９３】
ステップＳ２６においてレート制御部７７は、蓄積バッファ６７に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部６５の量子化動作のレートを制御する。
【０１９４】
［動き予測・補償処理の説明］
次に、図１６のフローチャートを参照して、図１５のステップＳ２２における動き予測・補償処理を説明する。
【０１９５】
画面並べ替えバッファ６２から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ７２から読み出され、スイッチ７３を介して固定補間フィルタ８１に供給される。さらに、この参照される画像は、可変補間フィルタ８３、フィルタ係数算出部８４にも入力される。
【０１９６】
ステップＳ５１において、フィルタ係数記憶部８２は、制御部８７の制御のもと、フィルタ係数選択処理を行う。このフィルタ係数選択処理は、図１７を参照して後述されるが、このステップＳ５１の処理により、予測モードに対応するフィルタ係数が固定補間フィルタ８１に供給される。
【０１９７】
すなわち、L0L1重み付き予測を使わない用のフィルタ係数Ａ１、双予測モード用のフィルタ係数Ａ２、ダイレクト・モード用のフィルタ係数Ａ３、スキップ・モード用のフィルタ係数Ａ４が、予測モードに応じて選択されて固定補間フィルタ８１に供給される。
【０１９８】
ステップＳ５２において、固定補間フィルタ８１は、フィルタ係数記憶部８２からのフィルタ係数を用いて、参照画像に、予測モードに対応する固定フィルタ処理を行う。すなわち、固定補間フィルタ８１は、フレームメモリ７２からの参照画像に対して、フィルタ処理を施し、固定フィルタ処理後の参照画像を、動き予測部８５および動き補償部８６に出力する。
【０１９９】
以上のステップＳ５１およびＳ５２の処理は、予測モード毎に行われる。
【０２００】
ステップＳ５３において、動き予測部８５および動き補償部８６は、１回目の動き予測を行い、フィルタ係数記憶部８２によりフィルタ処理された参照画像を用いて、動きベクトルおよび予測モードを決定する。
【０２０１】
すなわち、動き予測部８５は、画面並べ替えバッファ６２からの入力画像と、固定補間フィルタ８１からの固定フィルタ後の参照画像に基づいて、候補となる全てのインター予測モードの１回目の動きベクトルを生成し、生成した動きベクトルを動き補償部８６に出力する。なお、この１回目の動きベクトルは、フィルタ係数算出部８４にも出力され、後述するステップＳ５５の処理に用いられる。
【０２０２】
動き補償部８６は、１回目の動きベクトルを用いて、固定補間フィルタ８１からの固定フィルタ後の参照画像に対し補償処理を施し、予測画像を生成する。そして、動き補償部８６は、ブロック毎にコスト関数値を算出し、それらを比較することにより、最適インター予測モードを決定する。
【０２０３】
以上の処理がブロック毎に行われ、対象スライスにおける全てのブロックの処理が終了すると、ステップＳ５４において、動き補償部８６は、１回目の動きベクトルおよび最適インター予測モードで、対象スライスの１回目のコスト関数値を算出する。
【０２０４】
ステップＳ５５において、フィルタ係数算出部８４は、動き予測部８５からの１回目の動きベクトルを用いて、各フィルタ係数を算出する。
【０２０５】
すなわち、フィルタ係数算出部８４は、画面並べ替えバッファ６２からの入力画像、フレームメモリ７２からの参照画像、動き予測部８５からの１回目の動きベクトルを用いて、可変補間フィルタ８３のフィルタ処理後の参照画像を、入力画像に近づけるための、予測モードに応じたフィルタ係数を算出する。すなわち、L0L1重み付き予測を使わない用のフィルタ係数Ａ１、双予測モード用のフィルタ係数Ａ２、ダイレクト・モード用のフィルタ係数Ａ３、スキップ・モード用のフィルタ係数Ａ４が算出される。
【０２０６】
なお、算出されたフィルタ係数は、上述した図１３のステップＳ２３において、最適インター予測モードの予測画像が選択され、対象スライスで可変フィルタを使用する場合に、可逆符号化部６６に出力され、ステップＳ２４において、符号化される。
【０２０７】
ステップＳ５６において、フィルタ係数算出部８４は、制御部８７の制御のもと、フィルタ係数選択処理を行う。このフィルタ係数選択処理は、図１７を参照して後述されるステップＳ５１の処理と同様であるので、その詳細な説明を省略する。このステップＳ５６の処理により、予測モードに対応するフィルタ係数が可変補間フィルタ８３に供給される。
【０２０８】
すなわち、L0L1重み付き予測を使わない用のフィルタ係数Ａ１、双予測モード用のフィルタ係数Ａ２、ダイレクト・モード用のフィルタ係数Ａ３、スキップ・モード用のフィルタ係数Ａ４が、予測モードに応じて選択されて可変補間フィルタ８３に供給される。
【０２０９】
ステップＳ５７において、可変補間フィルタ８３は、フィルタ係数算出部８４からのフィルタ係数を用いて、参照画像に、可変フィルタ処理を行う。すなわち、可変補間フィルタ８３は、フレームメモリ７２からの参照画像に対して、フィルタ係数算出部８４により算出されたフィルタ係数を用いてフィルタ処理を施し、可変フィルタ処理後の参照画像を動き予測部８５および動き補償部８６に出力する。
【０２１０】
以上のステップＳ５６およびＳ５７の処理は、予測モード毎に行われる。
【０２１１】
ステップＳ５８において、動き予測部８５および動き補償部８６は、２回目の動き予測を行い、可変補間フィルタ８３によりフィルタ処理された参照画像を用いて、動きベクトルおよび予測モードを決定する。
【０２１２】
すなわち、動き予測部８５は、画面並べ替えバッファ６２からの入力画像と、可変補間フィルタ８３からの可変フィルタ後の参照画像に基づいて、候補となる全てのインター予測モードの２回目の動きベクトルを生成し、生成した動きベクトルを動き補償部８６に出力する。
【０２１３】
動き補償部８６は、２回目の動きベクトルを用いて、可変補間フィルタ８３からの可変フィルタ後の参照画像に対し補償処理を施し、予測画像を生成する。そして、動き補償部８６は、ブロック毎にコスト関数値を算出し、それらを比較することにより、最適インター予測モードを決定する。
【０２１４】
以上の処理がブロック毎に行われ、対象スライスにおける全てのブロックの処理が終了すると、ステップＳ５９において、動き補償部８６は、２回目の動きベクトルおよび最適インター予測モードで、対象スライスの２回目のコスト関数値を算出する。
【０２１５】
ステップＳ６０において、動き補償部８６は、対象スライスの１回目のコスト関数値と２回目のコスト関数値を比較し、対象スライスの１回目のコスト関数値が２回目のコスト関数値より小さいか否かを判定する。
【０２１６】
対象スライスの１回目のコスト関数値が２回目のコスト関数値より小さいと判定された場合、処理は、ステップＳ６１に進む。ステップＳ６１において、動き補償部８６は、その対象スライスでは固定フィルタを使用するとし、１回目の（固定フィルタ後の参照画像で生成された）予測画像とコスト関数値を予測画像選択部７６に供給し、対象スライスのAIF使用フラグの値を０に設定する。
【０２１７】
対象スライスの１回目のコスト関数値が２回目のコスト関数値より小さくないと判定された場合、処理は、ステップＳ６２に進む。ステップＳ６２において、動き補償部８６は、その対象スライスでは可変フィルタ(AIF)を使用するとし、２回目の（可変フィルタ後の参照画像で生成された）予測画像とコスト関数値を予測画像選択部７６に供給し、対象スライスのAIF使用フラグの値を１に設定する。
【０２１８】
設定された対象スライスのAIF使用フラグの情報は、上述した図１３のステップＳ２３において、最適インター予測モードの予測画像が選択された場合、制御部８７の制御のもと、スライスの情報とともに、可逆符号化部６６に出力され、ステップＳ２４において、スライスヘッダに挿入されて、符号化される。
【０２１９】
［フィルタ係数選択処理］
次に、図１７のフローチャートを参照して、図１６のステップＳ５１のフィルタ係数選択処理について説明する。
【０２２０】
Ａ１フィルタ係数メモリ９１乃至Ａ４フィルタ係数メモリ９４は、それぞれ、記憶しているフィルタ係数Ａ１乃至Ａ４を、セレクタ９５に出力する。
【０２２１】
制御部８７は、ステップＳ７１において、次に、動き予測処理する予測モードがL0L1重み付き予測を使用するか否かを判定する。ステップＳ７１において、L0L1重み付き予測を使用しないと判定された場合、処理は、ステップＳ７２に進む。ステップＳ７２において、セレクタ９５は、制御部８７の制御のもと、Ａ１フィルタ係数メモリ９１からのフィルタ係数Ａ１を選択し、それを、固定補間フィルタ８１に供給する。
【０２２２】
ステップＳ７１において、L0L1重み付き予測を使用すると判定された場合、処理は、ステップＳ７３に進む。制御部８７は、ステップＳ７３において、次に、動き予測処理する予測モードが双予測モードであるか否かを判定する。ステップＳ７３において、双予測モードであると判定された場合、処理は、ステップＳ７４に進む。ステップＳ７４において、セレクタ９５は、制御部８７の制御のもと、Ａ２フィルタ係数メモリ９２からのフィルタ係数Ａ２を選択し、それを、固定補間フィルタ８１に供給する。
【０２２３】
ステップＳ７３において、双予測モードではないと判定された場合、処理は、ステップＳ７５に進む。制御部８７は、ステップＳ７５において、次に、動き予測処理する予測モードがダイレクト・モードであるか否かを判定する。ステップＳ７５において、ダイレクト・モードであると判定された場合、処理は、ステップＳ７６に進む。ステップＳ７６において、セレクタ９５は、制御部８７の制御のもと、Ａ３フィルタ係数メモリ９３からのフィルタ係数Ａ３を選択し、それを、固定補間フィルタ８１に供給する。
【０２２４】
ステップＳ７３において、ダイレクト・モードではないと判定された場合、処理は、ステップＳ７７に進む。すなわち、この場合、スキップ・モードで判定されたので、ステップＳ７７において、セレクタ９５は、制御部８７の制御のもと、Ａ４フィルタ係数メモリ９４からのフィルタ係数Ａ４を選択し、それを、固定補間フィルタ８１に供給する。
【０２２５】
以上のように、画像符号化装置５１においては、少なくとも、L0L1重み付き予測に用いるか、用いないかによって、補間フィルタに用いられるフィルタ係数を選択するようにした。すなわち、L0L1重み付き予測に用いる場合、フィルタ処理後の画像の高周波成分を増幅するような特性を有するフィルタ係数が選択される。
【０２２６】
したがって、L0L1重み付き予測で失われる高周波成分が予め増幅されるので、重み付き予測後の高周波成分が失われることが抑制され、予測精度が改善される。
【０２２７】
これにより、復号側に送るストリーム情報に含む必要がある残差信号が削減されるので、ビット量が削減でき、符号化効率が改善される。また、残差信号が削減されると、その直交変換後の係数も小さくなり、量子化後には多くの係数が０になることが期待できる。
【０２２８】
H．264/AVCにおいては、連続した0の個数をストリーム情報に含める。通常、０以外の値を決められた符号で置き換えるよりも、０の個数で表現する方がはるかに少ない符号量になるため、本発明により多くの係数が０になることは、符号ビット量の削減につながる。
【０２２９】
また、高周波成分が失われることは、画質に対して鮮明感が損なわれることを意味する。普通、画質の印象として、高周波成分が失われているとぼけた感じを受けるため印象が悪くなる。これに対して、L0L1重み付き予測で失われる高周波成分を取り戻すことができるので、画質の鮮明感が得られる。
【０２３０】
さらに、重み付き予測を行う場合にさらに、双予測モード、ダイレクト・モード、およびスキップ・モードに応じて、フィルタ係数を選択するようにした。すなわち、各モードに応じた高周波成分の増幅の程度の特性があるフィルタ係数が選択される。これにより、図７を参照して上述したように、双予測モード、ダイレクト・モード、およびスキップ・モードの位置ずれの程度が異なる場合に対応することができる。
【０２３１】
符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。
【０２３２】
［画像復号装置の構成例］
図１８は、本発明を適用した画像処理装置としての画像復号装置の第１実施の形態の構成を表している。
【０２３３】
画像復号装置１５１は、蓄積バッファ１６１、可逆復号部１６２、逆量子化部１６３、逆直交変換部１６４、演算部１６５、デブロックフィルタ１６６、画面並べ替えバッファ１６７、D/A変換部１６８、フレームメモリ１６９、スイッチ１７０、イントラ予測部１７１、動き補償部１７２、およびスイッチ１７３により構成されている。
【０２３４】
蓄積バッファ１６１は伝送されてきた圧縮画像を蓄積する。可逆復号部１６２は、蓄積バッファ１６１より供給された、図８の可逆符号化部６６により符号化された情報を、可逆符号化部６６の符号化方式に対応する方式で復号する。逆量子化部１６３は可逆復号部１６２により復号された画像を、図８の量子化部６５の量子化方式に対応する方式で逆量子化する。逆直交変換部１６４は、図８の直交変換部６４の直交変換方式に対応する方式で逆量子化部１６３の出力を逆直交変換する。
【０２３５】
逆直交変換された出力は演算部１６５によりスイッチ１７３から供給される予測画像と加算されて復号される。デブロックフィルタ１６６は、復号された画像のブロック歪を除去した後、フレームメモリ１６９に供給し、蓄積させるとともに、画面並べ替えバッファ１６７に出力する。
【０２３６】
画面並べ替えバッファ１６７は、画像の並べ替えを行う。すなわち、図８の画面並べ替えバッファ６２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部１６８は、画面並べ替えバッファ１６７から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
【０２３７】
スイッチ１７０は、参照される画像をフレームメモリ１６９から読み出し、動き補償部１７２に出力するとともに、イントラ予測に用いられる画像をフレームメモリ１６９から読み出し、イントラ予測部１７１に供給する。
【０２３８】
イントラ予測部１７１には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が可逆復号部１６２から供給される。イントラ予測部１７１は、この情報に基づいて、予測画像を生成し、生成した予測画像を、スイッチ１７３に出力する。
【０２３９】
動き補償部１７２には、ヘッダ情報を復号して得られた情報のうち、インター予測モード情報、動きベクトル情報、参照フレーム情報、AIF使用フラグ情報、フィルタ係数などが可逆復号部１６２から供給される。インター予測モード情報は、マクロブロック毎に送信されてくる。動きベクトル情報や参照フレーム情報は、対象ブロック毎に送信されてくる。スライスの種類の情報が含まれるスライスの情報、AIF使用フラグ情報、およびフィルタ係数などは、対象スライス毎にスライスヘッダに挿入されて送信されてくる。
【０２４０】
動き補償部１７２は、可逆復号部１６２からのスライスヘッダのAIF使用フラグ情報に基づいて、対象スライスがAIFを使用する場合、スライスヘッダに含まれる可変フィルタ係数で、現在記憶している可変フィルタ係数の置き換えを行う。そして、動き補償部１７２は、可変の補間フィルタを用いて、フレームメモリ１６９からの参照画像に可変フィルタ処理を行う。動き補償部１７２は、可逆復号部１６２からの動きベクトルを用いて、可変フィルタ処理後の参照画像に補償処理を行い、対象ブロックの予測画像を生成する。生成された予測画像は、スイッチ１７３を介して、演算部１６５に出力される。
【０２４１】
動き補償部１７２は、対象ブロックが含まれる対象スライスがAIFを使用しない場合、係数が固定の補間フィルタを用いて、フレームメモリ１６９からの参照画像に固定フィルタ処理を行う。そして、動き補償部１７２は、可逆復号部１６２からの動きベクトルを用いて、固定フィルタ処理後の参照画像に補償処理を行い、対象ブロックの予測画像を生成する。生成された予測画像は、スイッチ１７３を介して、演算部１６５に出力される。
【０２４２】
ここで、動き補償部１７２においては、図８の動き予測・補償部７５と同様に、少なくとも、L0L1重み付き予測に用いられる固定フィルタ係数と、それ以外の予測に用いられる固定フィルタ係数が記憶されている。また、可変の場合も同様に、動き補償部１７２においては、少なくとも、L0L1重み付き予測に用いられる可変フィルタ用のフィルタ係数と、それ以外の予測に用いられる可変フィルタ係数が可逆復号部１６２から取得されて、記憶される。
【０２４３】
スイッチ１７３は、動き補償部１７２またはイントラ予測部１７１により生成された予測画像を選択し、演算部１６５に供給する。
【０２４４】
［動き補償部の構成例］
図１９は、動き補償部１７２の詳細な構成例を示すブロック図である。なお、図１９においては、図１８のスイッチ１７０が省略されている。
【０２４５】
図１９の例においては、動き補償部１７２は、固定補間フィルタ１８１、固定フィルタ係数記憶部１８２、可変補間フィルタ１８３、可変フィルタ係数記憶部１８４、動き補償処理部１８５、および制御部１８６により構成されている。
【０２４６】
可逆復号部１６２から、スライス毎に、スライスヘッダに含まれるスライスの種類を示すスライスの情報とAIF使用フラグ情報が制御部１８６に供給され、フィルタ係数が可変フィルタ係数記憶部１８４に供給される。また、可逆復号部１６２からのマクロブロック毎のインター予測モードを示す情報も、制御部１８６に供給され、ブロック毎の動きベクトルは動き補償処理部１８５に供給され、参照フレーム情報は、制御部１８６に供給される。
【０２４７】
フレームメモリ１６９からの参照画像は、制御部１８６の制御のもと、固定補間フィルタ１８１、および可変補間フィルタ１８３に入力される。
【０２４８】
固定補間フィルタ１８１は、フィルタ係数が固定（すなわち、AIFではない）の補間フィルタである。固定補間フィルタ１８１は、フレームメモリ１６９からの参照画像に対して、固定フィルタ係数記憶部１８２からの固定フィルタ係数を用いてフィルタ処理を施し、固定フィルタ処理後の参照画像を、動き補償処理部１８５に出力する。
【０２４９】
固定フィルタ係数記憶部１８２は、固定補間フィルタ１８１で使用される、少なくとも、L0L1重み付き予測用およびそれ以外の予測用の固定フィルタ係数を記憶しており、それらのフィルタ係数を読み出して、制御部１８６の制御のもと選択し、選択した固定フィルタ係数を、固定補間フィルタ１８１に供給する。
【０２５０】
可変補間フィルタ１８３は、フィルタ係数可変の補間フィルタ（すなわち、AIF）である。可変補間フィルタ１８３は、フレームメモリ１６９からの参照画像に対して、可変フィルタ係数記憶部１８４からの可変フィルタ係数を用いてフィルタ処理を施し、可変フィルタ処理後の参照画像を、動き補償処理部１８５に出力する。
【０２５１】
可変フィルタ係数記憶部１８４は、可変補間フィルタ１８３で使用される、少なくとも、L0L1重み付き予測用およびそれ以外の予測用の可変フィルタ係数を一時的に記憶し、スライス毎に、可逆復号部１６２から、対応する可変フィルタ係数が供給された場合、記憶されている係数と置き換える。可変フィルタ係数記憶部１８４は、一時的に記憶しているフィルタ係数を読み出して、制御部１８６の制御のもと選択し、選択した可変フィルタ係数を、可変補間フィルタ１８３に供給する。
【０２５２】
動き補償処理部１８５は、制御部１８６により制御された予測モードで、可逆復号部１６２からの動きベクトルを用いて、固定補間フィルタ１８１または可変補間フィルタ１８３からのフィルタ後の参照画像に補償処理を行い、対象ブロックの予測画像を生成し、生成した予測画像を、スイッチ１７３に出力する。
【０２５３】
制御部１８６は、スライス毎に、可逆復号部１６２からのスライスヘッダの情報に含まれるAIF使用フラグを取得し、取得したAIF使用フラグを参照し、AIFを用いるか否かに基づいて、固定補間フィルタ１８１、固定フィルタ係数記憶部１８２、可変補間フィルタ１８３、および可変フィルタ係数記憶部１８４を制御する。また、制御部１８６は、予測モード情報に応じて、L0L1重み付き予測用およびそれ以外の予測用のどちらのフィルタ係数を選択するかを、固定フィルタ係数記憶部１８２または可変フィルタ係数記憶部１８４に指示する。
【０２５４】
すなわち、処理対象のブロックが含まれるスライスがAIFを用いる場合、可変フィルタ係数記憶部１８４に、可逆復号部１６２からのフィルタ係数で、記憶されている可変フィルタ係数を置き換えさせ、予測モードに対応するL0L1重み付き予測用およびそれ以外の予測用の固定フィルタ係数を選択させ、可変補間フィルタ１８３にフィルタ処理を行わせる。
【０２５５】
一方、処理対象のブロックが含まれるスライスがAIFを用いない場合、固定フィルタ係数記憶部１８２に、予測モードに対応するL0L1重み付き予測用およびそれ以外の予測用の固定フィルタ係数を選択させ、固定補間フィルタ１８１にフィルタ処理を行わせる。
【０２５６】
また、制御部１８６は、動き補償処理部１８５に、予測モード情報に基づく予測モードの補償処理を行わせる。
【０２５７】
[固定フィルタ係数記憶部の構成例]
図２０は、パターンＡの場合の固定フィルタ係数記憶部の構成例を示すブロック図である。
【０２５８】
図２０の例において、固定フィルタ係数記憶部１８２は、Ａ１フィルタ係数メモリ１９１、Ａ２フィルタ係数メモリ１９２、Ａ３フィルタ係数メモリ１９３、Ａ４フィルタ係数メモリ１９４、およびセレクタ１９５により構成されている。
【０２５９】
Ａ１フィルタ係数メモリ９１は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられる固定フィルタ係数Ａ１を記憶しており、固定フィルタ係数Ａ１をセレクタ９５に出力する。Ａ２フィルタ係数メモリ９２は、L0L1重み付き予測を使う場合の双予測モードに用いられる固定フィルタ係数Ａ２を記憶しており、固定フィルタ係数Ａ２をセレクタ９５に出力する。
【０２６０】
Ａ３フィルタ係数メモリ９３は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられる固定フィルタ係数Ａ３を記憶しており、固定フィルタ係数Ａ３をセレクタ９５に出力する。Ａ４フィルタ係数メモリ９４は、L0L1重み付き予測を使う場合のスキップ・モードに用いられる固定フィルタ係数Ａ４を記憶しており、固定フィルタ係数Ａ４セレクタ９５に出力する。
【０２６１】
セレクタ１９５は、制御部１８６の制御のもと、固定フィルタ係数Ａ１乃至Ａ４のうち、１つのフィルタ係数を選択し、固定補間フィルタ１８１に出力する。
【０２６２】
[可変フィルタ係数記憶部の構成例]
図２１は、パターンＡの場合の可変フィルタ係数記憶部の構成例を示すブロック図である。
【０２６３】
図２１の例において、可変フィルタ係数記憶部１８４は、Ａ１フィルタ係数メモリ２０１、Ａ２フィルタ係数メモリ２０２、Ａ３フィルタ係数メモリ２０３、Ａ４フィルタ係数記メモリ２０４、およびセレクタ２０５により構成されている。
【０２６４】
Ａ１フィルタ係数メモリ２０１は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられる可変フィルタ係数Ａ１を記憶しており、制御部１８６の制御のもと、可逆復号部１６２から送られてくる可変フィルタ係数Ａ１で、記憶しているフィルタ係数を置き換える。そして、Ａ１フィルタ係数メモリ２０１は、置き換えた可変フィルタ係数Ａ１をセレクタ９５に出力する。
【０２６５】
Ａ２フィルタ係数メモリ９２は、L0L1重み付き予測を使う場合の双予測モードに用いられる可変フィルタ係数Ａ２を記憶しており、制御部１８６の制御のもと、可逆復号部１６２から送られてくる可変フィルタ係数Ａ２で、記憶しているフィルタ係数を置き換える。そして、Ａ２フィルタ係数メモリ９２は、置き換えた可変フィルタ係数Ａ２をセレクタ９５に出力する。
【０２６６】
Ａ３フィルタ係数メモリ９３は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられる可変フィルタ係数Ａ３を記憶しており、制御部１８６の制御のもと、可逆復号部１６２から送られてくる可変フィルタ係数Ａ３で、記憶しているフィルタ係数を置き換える。そして、Ａ３フィルタ係数メモリ９３は、置き換えた可変フィルタ係数Ａ３をセレクタ９５に出力する。
【０２６７】
Ａ４フィルタ係数メモリ９４は、L0L1重み付き予測を使う場合のスキップ・モードに用いられる可変フィルタ係数Ａ４を記憶しており、制御部１８６の制御のもと、可逆復号部１６２から送られてくる可変フィルタ係数Ａ３で、記憶しているフィルタ係数を置き換える。そして、Ａ４フィルタ係数メモリ９４は、置き換えた可変フィルタ係数Ａ４セレクタ９５に出力する。
【０２６８】
セレクタ２０５は、制御部８７の制御のもと、可変フィルタ係数Ａ１乃至Ａ４のうち、１つのフィルタ係数を選択し、可変補間フィルタ１８３に出力する。
【０２６９】
なお、各フィルタ係数メモリにおいて、置き換えられたフィルタ係数が有効な期間は、対象スライスのみであってもよいし、次に置きかえられるまでであってもよい。ただし、いずれにしてもIDR(instantaneous decoding refresh)ピクチャがあった場合には、初期値に置き換えられる。すなわち、リセットされる。
【０２７０】
ここで、IDRピクチャとは、H．264/AVC方式で定められており、画像シーケンスの先頭のピクチャを意味し、IDRピクチャから復号が開始できるようになっている。この仕組みによってランダムアクセスが可能となっている。
【０２７１】
［画像復号装置の復号処理の説明］
次に、図２２のフローチャートを参照して、画像復号装置１５１が実行する復号処理について説明する。
【０２７２】
ステップＳ１３１において、蓄積バッファ１６１は伝送されてきた画像を蓄積する。ステップＳ１３２において、可逆復号部１６２は、蓄積バッファ１６１から供給される圧縮画像を復号する。すなわち、図８の可逆符号化部６６により符号化されたＩピクチャ、Ｐピクチャ、並びにＢピクチャが復号される。
【０２７３】
このとき、ブロック毎に、動きベクトル情報、参照フレーム情報なども復号される。また、マクロブロック毎に、予測モード情報（イントラ予測モード、またはインター予測モードを示す情報）なども復号される。さらに、スライス毎に、スライスの種類の情報AIF使用フラグ情報やフィルタ係数などを含むスライスヘッダ情報も復号される。
【０２７４】
ステップＳ１３３において、逆量子化部１６３は可逆復号部１６２により復号された変換係数を、図８の量子化部６５の特性に対応する特性で逆量子化する。ステップＳ１３４において逆直交変換部１６４は逆量子化部１６３により逆量子化された変換係数を、図８の直交変換部６４の特性に対応する特性で逆直交変換する。これにより図８の直交変換部６４の入力（演算部６３の出力）に対応する差分情報が復号されたことになる。
【０２７５】
ステップＳ１３５において、演算部１６５は、後述するステップＳ１４１の処理で選択され、スイッチ１７３を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップＳ１３６においてデブロックフィルタ１６６は、演算部１６５より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップＳ１３７においてフレームメモリ１６９は、フィルタリングされた画像を記憶する。
【０２７６】
ステップＳ１３８において、可逆復号部１６２は、圧縮画像のヘッダ部の可逆復号結果に基づいて、圧縮画像がインター予測された画像であるかどうか、即ち、可逆復号結果に最適インター予測モードを表す情報が含まれているかどうかを判定する。
【０２７７】
ステップＳ１３８で圧縮画像がインター予測された画像であると判定された場合、可逆復号部１６２は、動きベクトル情報、参照フレーム情報、最適インター予測モードを表す情報、AIF使用フラグ情報、フィルタ係数などを動き補償部１７２に供給する。
【０２７８】
そして、ステップＳ１３９において、動き補償部１７２は、動き補償処理を行う。ステップＳ１３９における動き補償処理の詳細は、図２３を参照して後述される。
【０２７９】
この処理により、対象スライスがAIF使用の場合、可逆復号部１６２からのL0L1重み付き予測またはそれ以外の予測に応じた可変フィルタ係数で記憶済みのフィルタ係数が置き換えられる。そして、予測モードがL0L1重み付き予測を使用するか否かに応じた可変フィルタ係数が用いられて可変フィルタ処理が行われる。対象スライスがAIF未使用の場合、予測モードがL0L1重み付き予測を使用するか否かに応じた固定フィルタ係数が用いられて固定フィルタ処理が行われる。その後、フィルタ処理後の参照画像に、動きベクトルを用いて補償処理が行われ、これにより生成された予測画像がスイッチ１７３に出力される。
【０２８０】
一方、ステップＳ１３８で圧縮画像がインター予測された画像ではないと判定された場合、すなわち、可逆復号結果に最適イントラ予測モードを表す情報が含まれている場合、可逆復号部１６２は、最適イントラ予測モードを表す情報をイントラ予測部１７１に供給する。
【０２８１】
そして、ステップＳ１４０において、イントラ予測部１７１は、可逆復号部１６２からの情報が表す最適イントラ予測モードで、フレームメモリ１６９からの画像に対してイントラ予測処理を行い、イントラ予測画像を生成する。そして、イントラ予測部１７１は、イントラ予測画像をスイッチ１７３に出力する。
【０２８２】
ステップＳ１４１において、スイッチ１７３は予測画像を選択し、演算部１６５に出力する。すなわち、イントラ予測部１７１により生成された予測画像、または動き補償部１７２により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部１６５に出力され、上述したように、ステップＳ１３５において逆直交変換部１６４の出力と加算される。
【０２８３】
ステップＳ１４２において、画面並べ替えバッファ１６７は並べ替えを行う。すなわち画像符号化装置５１の画面並べ替えバッファ６２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０２８４】
ステップＳ１４３において、D/A変換部１６８は、画面並べ替えバッファ１６７からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０２８５】
［画像復号装置の動き補償処理の説明］
次に、図２３のフローチャートを参照して、図２２のステップＳ１３９の動き補償処理を説明する。
【０２８６】
制御部１８６は、ステップＳ１５１において、可逆復号部１６２からのスライスヘッダの情報に含まれるAIF使用フラグ情報を取得する。なお、AIF使用フラグ情報は、符号化側において、用いられるフィルタ係数毎に設定されて送信されてくる。したがって、パターンＡの場合、L0L1重み付き予測を使わない用のAIF使用フラグ（aif_other_flag）、双予測モード用のAIF使用フラグ（aif_bipred_flag）、ダイレクト・モード用のAIF使用フラグ（aif_direct_flag）、スキップ・モード用のAIF使用フラグ（aif_skip_flag）が取得される。
【０２８７】
制御部１８６は、ステップＳ１５２において、それらのAIF使用フラグに基づいて、対象スライスにおいてAIFを用いるか否かを判定する。例えば、上述した複数のAIF使用フラグの値が１つでも１であった場合、ステップＳ１５２において、AIFを用いると判定されて、処理は、ステップＳ１５３に進む。
【０２８８】
ステップＳ１５３において、可変フィルタ係数記憶部１８４は、制御部１８６の制御のもと、可変フィルタ係数置き換え処理を実行する。この可変フィルタ係数置き換え処理は、図２４を参照して後述するが、ステップＳ１５３の処理により、AIF使用フラグの値が１である、すなわち、そのスライスについて、符号化側で算出された可変フィルタ係数で、記憶されている係数が置き換えられる。なお、このとき、可変フィルタ係数記憶部１８４のＡ１フィルタ係数メモリ２０１乃至Ａ４フィルタ係数メモリ２０４は、記憶されているフィルタ係数を読み出し、読み出した各フィルタ係数をセレクタ２０５に供給する。
【０２８９】
一方、例えば、上述した複数のAIF使用フラグの値がすべて０であった場合、ステップＳ１５２において、AIFを用いないと判定されて、ステップＳ１５３はスキップされ、処理は、ステップＳ１５４に進む。なお、このとき、固定フィルタ係数記憶部１８２のＡ１フィルタ係数メモリ１９１乃至Ａ４フィルタ係数メモリ１９４は、記憶されているフィルタ係数を読み出し、読み出した各フィルタ係数をセレクタ１９５に供給する。
【０２９０】
ここで、説明の便宜上、次のステップＳ１５６、Ｓ１５８、Ｓ１６０乃至Ｓ１６２の処理は、上述したステップＳ１５２でAIFを用いると判定された場合には、可変フィルタ係数記憶部１８４および可変補間フィルタ１８３により行われ、上述したステップＳ１５２でAIFを用いないと判定された場合には、固定フィルタ係数記憶部１８２および固定補間フィルタ１８１により行われる処理である。以下、代表して、可変フィルタ係数記憶部１８４および可変補間フィルタ１８３の例を説明する。
【０２９１】
ステップＳ１５４において、制御部１８６は、可逆復号部１６２からのマクロブロック毎のインター予測モードの情報を取得する。
【０２９２】
ステップＳ１５５において、制御部１８６は、インター予測モードの情報に基づいて、L0L1重み付き予測を行っているか否かを判定する。ステップＳ１５５において、L0L1重み付き予測を行っていないと判定された場合、処理は、ステップＳ１５６に進み、セレクタ２０５は、制御部１８６の制御のもと、Ａ１フィルタ係数メモリ２０１からのフィルタ係数Ａ１を選択し、選択したフィルタ係数Ａ１を可変補間フィルタ１８３に供給する。
【０２９３】
ステップＳ１５５において、L0L1重み付き予測を行っていると判定された場合、処理は、ステップＳ１５７に進み、制御部１８６は、インター予測モードの情報に基づいて、双予測モードであるか否かを判定する。
【０２９４】
ステップＳ１５７において、双予測モードであると判定された場合、処理は、ステップＳ１５８に進み、セレクタ２０５は、制御部１８６の制御のもと、Ａ２フィルタ係数メモリ２０２からのフィルタ係数Ａ２を選択し、選択したフィルタ係数Ａ２を可変補間フィルタ１８３に供給する。
【０２９５】
ステップＳ１５７において、双予測モードではないと判定された場合、処理は、ステップＳ１５９に進み、制御部１８６は、インター予測モードの情報に基づいて、ダイレクト・モードであるか否かを判定する。
【０２９６】
ステップＳ１５９において、ダイレクト・モードであると判定された場合、処理は、ステップＳ１６０に進み、セレクタ２０５は、制御部１８６の制御のもと、Ａ３フィルタ係数メモリ２０３からのフィルタ係数Ａ３を選択し、選択したフィルタ係数Ａ３を可変補間フィルタ１８３に供給する。
【０２９７】
ステップＳ１５９において、ダイレクト・モードではないと判定された場合、すなわち、スキップ・モードである場合、処理は、ステップＳ１６１に進み、セレクタ２０５は、制御部１８６の制御のもと、Ａ４フィルタ係数メモリ２０４からのフィルタ係数Ａ４を選択し、選択したフィルタ係数Ａ４を可変補間フィルタ１８３に供給する。
【０２９８】
ステップＳ１６２において、可変補間フィルタ１８３は、フレームメモリ１６９からの参照画像に対して、可変フィルタ係数記憶部１８４からの可変フィルタ係数を用いてフィルタ処理を施し、可変フィルタ処理後の参照画像を、動き補償処理部１８５に出力する。
【０２９９】
ステップＳ１６３において、制御部１８６により制御された予測モードで、可逆復号部１６２からの動きベクトルを用いて、フィルタ後の参照画像に補償処理を行い、対象ブロックの予測画像を生成し、生成した予測画像を、スイッチ１７３に出力する。
【０３００】
［可変フィルタ係数置き換え処理の説明］
次に、図２４のフローチャートを参照して、図２３のステップＳ１５３の可変フィルタ係数置き換え処理について説明する。
【０３０１】
制御部１８６は、ステップＳ１７１において、L0L1重み付き予測を使わない用のAIF使用フラグ（aif_other_flag）の値が１であるか否かを判定する。ステップＳ１７１において、aif_other_flagの値が１であると判定された場合、処理は、ステップＳ１７２に進み、Ａ１フィルタ係数メモリ２０１は、制御部１８６の制御のもと、可逆復号部１６２からのスライスヘッダに含まれるフィルタ係数Ａ１で、記憶済みのフィルタ係数を置き換える。
【０３０２】
ステップＳ１７１において、aif_other_flagの値が１ではないと判定された場合、処理は、ステップＳ１７３に進み、制御部１８６は、双予測モード用のAIF使用フラグ（aif_bipred_flag）の値が１であるか否かを判定する。ステップＳ１７３において、aif_bipred_flagの値が１であると判定された場合、処理は、ステップＳ１７４に進み、Ａ２フィルタ係数メモリ２０２は、制御部１８６の制御のもと、可逆復号部１６２からのスライスヘッダに含まれるフィルタ係数Ａ２で、記憶済みのフィルタ係数を置き換える。
【０３０３】
ステップＳ１７３において、aif_bipred_flagの値が１ではないと判定された場合、処理は、ステップＳ１７５に進み、制御部１８６は、ダイレクト・モード用のAIF使用フラグ（aif_direct_flag）の値が１であるか否かを判定する。ステップＳ１７５において、aif_direct_flagの値が１であると判定された場合、処理は、ステップＳ１７６に進み、Ａ３フィルタ係数メモリ２０３は、制御部１８６の制御のもと、可逆復号部１６２からのスライスヘッダに含まれるフィルタ係数Ａ３で、記憶済みのフィルタ係数を置き換える。
【０３０４】
ステップＳ１７５において、aif_direct_flagの値が１ではないと判定された場合、処理は、ステップＳ１７７に進み、制御部１８６は、スキップ・モード用のAIF使用フラグ（aif_skip_flag）の値が１であるか否かを判定する。ステップＳ１７７において、aif_skip_flagの値が１であると判定された場合、処理は、ステップＳ１７８に進み、Ａ４フィルタ係数メモリ２０４は、制御部１８６の制御のもと、可逆復号部１６２からのスライスヘッダに含まれるフィルタ係数Ａ４で、記憶済みのフィルタ係数を置き換える。
【０３０５】
ステップＳ１７７において、aif_skip_flagの値が１ではないと判定された場合、処理は、図２３のステップＳ１５４に進む。すなわち、この場合、どのAIFも使用されないので、どのフィルタ係数も置き換えられることなく、処理は進む。
【０３０６】
以上のように、画像符号化装置５１および画像復号装置１５１においては、少なくとも、L0L1重み付き予測に用いるか、用いないかによって、補間フィルタに用いられるフィルタ係数を選択するようにした。すなわち、L0L1重み付き予測に用いる場合、フィルタ処理後の画像の高周波成分を増幅するような特性を有するフィルタ係数が選択される。
【０３０７】
したがって、L0L1重み付き予測で失われる高周波成分が予め増幅されるので、重み付き予測後の高周波成分が失われることが抑制され、予測精度が改善される。
【０３０８】
これにより、復号側に送るストリーム情報に含む必要がある残差信号が削減されるので、ビット量が削減でき、符号化効率が改善される。
【０３０９】
また、重み付き予測を行う場合にさらに、双予測モード、ダイレクト・モード、およびスキップ・モードに応じて、フィルタ係数を選択するようにした。すなわち、各モードに応じた高周波成分の増幅の程度の特性があるフィルタ係数が選択される。これにより、図７を参照して上述したように、双予測モード、ダイレクト・モード、およびスキップ・モードの位置ずれの程度が異なる場合に対応することができる。
【０３１０】
さらに、このフィルタ選択を、可変フィルタ(AIF)にも適用するようにしたので、AIFにおいても、画像の高周波成分の喪失を抑制することができ、画質の鮮明感を得ることができる。
【０３１１】
なお、上記説明においては、フィルタに６タップ数を用いる例を説明したが、フィルタのタップ数は限定されない。
【０３１２】
以上においては、Separable AIFの補間フィルタを例に説明してきたが、フィルタの構造は、Separable AIFに限らない。すなわち、フィルタの構造は異なっていても、本発明を適用することができる。
【０３１３】
［拡張マクロブロックサイズへの適用の説明］
図２５は、非特許文献４で提案されているブロックサイズの例を示す図である。非特許文献４では、マクロブロックサイズが３２×３２画素に拡張されている。
【０３１４】
図２５の上段には、左から、３２×３２画素、３２×１６画素、１６×３２画素、および１６×１６画素のブロック（パーティション）に分割された３２×３２画素で構成されるマクロブロックが順に示されている。図２５の中段には、左から、１６×１６画素、１６×８画素、８×１６画素、および８×８画素のブロックに分割された１６×１６画素で構成されるブロックが順に示されている。また、図２５の下段には、左から、８×８画素、８×４画素、４×８画素、および４×４画素のブロックに分割された８×８画素のブロックが順に示されている。
【０３１５】
すなわち、３２×３２画素のマクロブロックは、図２５の上段に示される３２×３２画素、３２×１６画素、１６×３２画素、および１６×１６画素のブロックでの処理が可能である。
【０３１６】
上段の右側に示される１６×１６画素のブロックは、H．264/AVC方式と同様に、中段に示される１６×１６画素、１６×８画素、８×１６画素、および８×８画素のブロックでの処理が可能である。
【０３１７】
中段の右側に示される８×８画素のブロックは、H．264/AVC方式と同様に、下段に示される８×８画素、８×４画素、４×８画素、および４×４画素のブロックでの処理が可能である。
【０３１８】
このような階層構造を採用することにより、非特許文献４の提案では、１６×１６画素のブロック以下に関しては、H．264/AVC方式と互換性を保ちながら、そのスーパーセットとして、より大きなブロックが定義されている。
【０３１９】
以上のように提案される拡張されたマクロブロックサイズにも本発明を適用することができる。
【０３２０】
また、以上においては、符号化方式としてH．264/AVC方式をベースに用いるようにしたが、本発明はこれに限らず、その他の動き予測・補償処理を行う符号化方式／復号方式を用いる画像符号化装置/画像復号装置に適用することもできる。
【０３２１】
なお、本発明は、例えば、MPEG、H．26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報（ビットストリーム）を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本発明は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本発明は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
【０３２２】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
【０３２３】
［パーソナルコンピュータの構成例］
図２６は、本発明の一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０３２４】
コンピュータにおいて、CPU(Central Processing Unit)２５１、ROM(Read Only Memory)２５２、RAM(Random Access Memory)２５３は、バス２５４により相互に接続されている。
【０３２５】
バス２５４には、さらに、入出力インタフェース２５５が接続されている。入出力インタフェース２５５には、入力部２５６、出力部２５７、記憶部２５８、通信部２５９、およびドライブ２６０が接続されている。
【０３２６】
入力部２５６は、キーボード、マウス、マイクロホンなどよりなる。出力部２５７は、ディスプレイ、スピーカなどよりなる。記憶部２５８は、ハードディスクや不揮発性のメモリなどよりなる。通信部２５９は、ネットワークインタフェースなどよりなる。ドライブ２６０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア２６１を駆動する。
【０３２７】
以上のように構成されるコンピュータでは、CPU２５１が、例えば、記憶部２５８に記憶されているプログラムを入出力インタフェース２５５及びバス２５４を介してRAM２５３にロードして実行することにより、上述した一連の処理が行われる。
【０３２８】
コンピュータ（CPU２５１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア２６１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
【０３２９】
コンピュータでは、プログラムは、リムーバブルメディア２６１をドライブ２６０に装着することにより、入出力インタフェース２５５を介して、記憶部２５８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部２５９で受信し、記憶部２５８にインストールすることができる。その他、プログラムは、ROM２５２や記憶部２５８に、あらかじめインストールしておくことができる。
【０３３０】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０３３１】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【０３３２】
例えば、上述した画像符号化装置５１や画像復号装置１５１は、任意の電子機器に適用することができる。以下にその例について説明する。
【０３３３】
［テレビジョン受像機の構成例］
図２７は、本発明を適用した画像復号装置を用いるテレビジョン受像機の主な構成例を示すブロック図である。
【０３３４】
図２７に示されるテレビジョン受像機３００は、地上波チューナ３１３、ビデオデコーダ３１５、映像信号処理回路３１８、グラフィック生成回路３１９、パネル駆動回路３２０、および表示パネル３２１を有する。
【０３３５】
地上波チューナ３１３は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ３１５に供給する。ビデオデコーダ３１５は、地上波チューナ３１３から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路３１８に供給する。
【０３３６】
映像信号処理回路３１８は、ビデオデコーダ３１５から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路３１９に供給する。
【０３３７】
グラフィック生成回路３１９は、表示パネル３２１に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路３２０に供給する。また、グラフィック生成回路３１９は、項目の選択などにユーザにより利用される画面を表示するための映像データ（グラフィック）を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路３２０に供給するといった処理も適宜行う。
【０３３８】
パネル駆動回路３２０は、グラフィック生成回路３１９から供給されたデータに基づいて表示パネル３２１を駆動し、番組の映像や上述した各種の画面を表示パネル３２１に表示させる。
【０３３９】
表示パネル３２１はLCD（Liquid Crystal Display）などよりなり、パネル駆動回路３２０による制御に従って番組の映像などを表示させる。
【０３４０】
また、テレビジョン受像機３００は、音声A/D（Analog/Digital)変換回路３１４、音声信号処理回路３２２、エコーキャンセル／音声合成回路３２３、音声増幅回路３２４、およびスピーカ３２５も有する。
【０３４１】
地上波チューナ３１３は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ３１３は、取得した音声信号を音声A/D変換回路３１４に供給する。
【０３４２】
音声A/D変換回路３１４は、地上波チューナ３１３から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路３２２に供給する。
【０３４３】
音声信号処理回路３２２は、音声A/D変換回路３１４から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル／音声合成回路３２３に供給する。
【０３４４】
エコーキャンセル／音声合成回路３２３は、音声信号処理回路３２２から供給された音声データを音声増幅回路３２４に供給する。
【０３４５】
音声増幅回路３２４は、エコーキャンセル／音声合成回路３２３から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ３２５から出力させる。
【０３４６】
さらに、テレビジョン受像機３００は、デジタルチューナ３１６およびMPEGデコーダ３１７も有する。
【０３４７】
デジタルチューナ３１６は、デジタル放送（地上デジタル放送、BS（Broadcasting Satellite）／CS（Communications Satellite）デジタル放送）の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS（Moving Picture Experts Group-Transport Stream）を取得し、それをMPEGデコーダ３１７に供給する。
【０３４８】
MPEGデコーダ３１７は、デジタルチューナ３１６から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象（視聴対象）になっている番組のデータを含むストリームを抽出する。MPEGデコーダ３１７は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路３２２に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路３１８に供給する。また、MPEGデコーダ３１７は、MPEG-TSから抽出したEPG（Electronic Program Guide)データを図示せぬ経路を介してCPU３３２に供給する。
【０３４９】
テレビジョン受像機３００は、このように映像パケットをデコードするMPEGデコーダ３１７として、上述した画像復号装置１５１を用いる。したがって、MPEGデコーダ３１７は、画像復号装置１５１の場合と同様に、重み付き予測後の高周波成分が失われることが抑制され、画質の鮮明感が得られる。
【０３５０】
MPEGデコーダ３１７から供給された映像データは、ビデオデコーダ３１５から供給された映像データの場合と同様に、映像信号処理回路３１８において所定の処理が施される。そして、所定の処理が施された映像データは、グラフィック生成回路３１９において、生成された映像データ等が適宜重畳され、パネル駆動回路３２０を介して表示パネル３２１に供給され、その画像が表示される。
【０３５１】
MPEGデコーダ３１７から供給された音声データは、音声A/D変換回路３１４から供給された音声データの場合と同様に、音声信号処理回路３２２において所定の処理が施される。そして、所定の処理が施された音声データは、エコーキャンセル／音声合成回路３２３を介して音声増幅回路３２４に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ３２５から出力される。
【０３５２】
また、テレビジョン受像機３００は、マイクロホン３２６、およびA/D変換回路３２７も有する。
【０３５３】
A/D変換回路３２７は、音声会話用のものとしてテレビジョン受像機３００に設けられるマイクロホン３２６により取り込まれたユーザの音声の信号を受信する。A/D変換回路３２７は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル／音声合成回路３２３に供給する。
【０３５４】
エコーキャンセル／音声合成回路３２３は、テレビジョン受像機３００のユーザ（ユーザＡ）の音声のデータがA/D変換回路３２７から供給されている場合、ユーザＡの音声データを対象としてエコーキャンセルを行う。そして、エコーキャンセル／音声合成回路３２３は、エコーキャンセルの後、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路３２４を介してスピーカ３２５より出力させる。
【０３５５】
さらに、テレビジョン受像機３００は、音声コーデック３２８、内部バス３２９、SDRAM（Synchronous Dynamic Random Access Memory)３３０、フラッシュメモリ３３１、CPU３３２、USB（Universal Serial Bus) I/F３３３、およびネットワークI/F３３４も有する。
【０３５６】
A/D変換回路３２７は、音声会話用のものとしてテレビジョン受像機３００に設けられるマイクロホン３２６により取り込まれたユーザの音声の信号を受信する。A/D変換回路３２７は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック３２８に供給する。
【０３５７】
音声コーデック３２８は、A/D変換回路３２７から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス３２９を介してネットワークI/F３３４に供給する。
【０３５８】
ネットワークI/F３３４は、ネットワーク端子３３５に装着されたケーブルを介してネットワークに接続される。ネットワークI/F３３４は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック３２８から供給された音声データを送信する。また、ネットワークI/F３３４は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子３３５を介して受信し、それを、内部バス３２９を介して音声コーデック３２８に供給する。
【０３５９】
音声コーデック３２８は、ネットワークI/F３３４から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル／音声合成回路３２３に供給する。
【０３６０】
エコーキャンセル／音声合成回路３２３は、音声コーデック３２８から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路３２４を介してスピーカ３２５より出力させる。
【０３６１】
SDRAM３３０は、CPU３３２が処理を行う上で必要な各種のデータを記憶する。
【０３６２】
フラッシュメモリ３３１は、CPU３３２により実行されるプログラムを記憶する。フラッシュメモリ３３１に記憶されているプログラムは、テレビジョン受像機３００の起動時などの所定のタイミングでCPU３３２により読み出される。フラッシュメモリ３３１には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
【０３６３】
例えば、フラッシュメモリ３３１には、CPU３３２の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ３３１は、例えばCPU３３２の制御により、そのMPEG-TSを、内部バス３２９を介してMPEGデコーダ３１７に供給する。
【０３６４】
MPEGデコーダ３１７は、デジタルチューナ３１６から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機３００は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ３１７を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
【０３６５】
また、テレビジョン受像機３００は、リモートコントローラ３５１から送信される赤外線信号を受光する受光部３３７も有する。
【０３６６】
受光部３３７は、リモートコントローラ３５１からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU３３２に出力する。
【０３６７】
CPU３３２は、フラッシュメモリ３３１に記憶されているプログラムを実行し、受光部３３７から供給される制御コードなどに応じてテレビジョン受像機３００の全体の動作を制御する。CPU３３２とテレビジョン受像機３００の各部は、図示せぬ経路を介して接続されている。
【０３６８】
USB I/F３３３は、USB端子３３６に装着されたUSBケーブルを介して接続される、テレビジョン受像機３００の外部の機器との間でデータの送受信を行う。ネットワークI/F３３４は、ネットワーク端子３３５に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
【０３６９】
テレビジョン受像機３００は、MPEGデコーダ３１７として画像復号装置１５１を用いることにより、符号化効率を向上するとともに、画質の鮮明感を得ることができる。その結果として、テレビジョン受像機３００は、アンテナを介して受信した放送波信号や、ネットワークを介して取得したコンテンツデータから、より高精細な復号画像を得て、表示することができる。
【０３７０】
［携帯電話機の構成例］
図２８は、本発明を適用した画像符号化装置および画像復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
【０３７１】
図２８に示される携帯電話機４００は、各部を統括的に制御するようになされた主制御部４５０、電源回路部４５１、操作入力制御部４５２、画像エンコーダ４５３、カメラI/F部４５４、LCD制御部４５５、画像デコーダ４５６、多重分離部４５７、記録再生部４６２、変復調回路部４５８、および音声コーデック４５９を有する。これらは、バス４６０を介して互いに接続されている。
【０３７２】
また、携帯電話機４００は、操作キー４１９、CCD（Charge Coupled Devices）カメラ４１６、液晶ディスプレイ４１８、記憶部４２３、送受信回路部４６３、アンテナ４１４、マイクロホン（マイク）４２１、およびスピーカ４１７を有する。
【０３７３】
電源回路部４５１は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機４００を動作可能な状態に起動する。
【０３７４】
携帯電話機４００は、CPU、ROMおよびRAM等でなる主制御部４５０の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
【０３７５】
例えば、音声通話モードにおいて、携帯電話機４００は、マイクロホン（マイク）４２１で集音した音声信号を、音声コーデック４５９によってデジタル音声データに変換し、これを変復調回路部４５８でスペクトラム拡散処理し、送受信回路部４６３でデジタルアナログ変換処理および周波数変換処理する。携帯電話機４００は、その変換処理により得られた送信用信号を、アンテナ４１４を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号（音声信号）は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
【０３７６】
また、例えば、音声通話モードにおいて、携帯電話機４００は、アンテナ４１４で受信した受信信号を送受信回路部４６３で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部４５８でスペクトラム逆拡散処理し、音声コーデック４５９によってアナログ音声信号に変換する。携帯電話機４００は、その変換して得られたアナログ音声信号をスピーカ４１７から出力する。
【０３７７】
更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機４００は、操作キー４１９の操作によって入力された電子メールのテキストデータを、操作入力制御部４５２において受け付ける。携帯電話機４００は、そのテキストデータを主制御部４５０において処理し、LCD制御部４５５を介して、画像として液晶ディスプレイ４１８に表示させる。
【０３７８】
また、携帯電話機４００は、主制御部４５０において、操作入力制御部４５２が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機４００は、その電子メールデータを、変復調回路部４５８でスペクトラム拡散処理し、送受信回路部４６３でデジタルアナログ変換処理および周波数変換処理する。携帯電話機４００は、その変換処理により得られた送信用信号を、アンテナ４１４を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号（電子メール）は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
【０３７９】
また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機４００は、基地局から送信された信号を、アンテナ４１４を介して送受信回路部４６３で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機４００は、その受信信号を変復調回路部４５８でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機４００は、復元された電子メールデータを、LCD制御部４５５を介して液晶ディスプレイ４１８に表示する。
【０３８０】
なお、携帯電話機４００は、受信した電子メールデータを、記録再生部４６２を介して、記憶部４２３に記録する（記憶させる）ことも可能である。
【０３８１】
この記憶部４２３は、書き換え可能な任意の記憶媒体である。記憶部４２３は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
【０３８２】
さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機４００は、撮像によりCCDカメラ４１６で画像データを生成する。CCDカメラ４１６は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。その画像データを、カメラI/F部４５４を介して、画像エンコーダ４５３で、例えばMPEG２やMPEG４等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換する。
【０３８３】
携帯電話機４００は、このような処理を行う画像エンコーダ４５３として、上述した画像符号化装置５１を用いる。したがって、画像エンコーダ４５３は、画像符号化装置５１の場合と同様に、フレームメモリの使用帯域を小さくするとともに、ストリーム情報に含めるフィルタ係数のオーバーヘッドを小さくすることができる。
【０３８４】
なお、携帯電話機４００は、このとき同時に、CCDカメラ４１６で撮像中にマイクロホン（マイク）４２１で集音した音声を、音声コーデック４５９においてアナログデジタル変換し、さらに符号化する。
【０３８５】
携帯電話機４００は、多重分離部４５７において、画像エンコーダ４５３から供給された符号化画像データと、音声コーデック４５９から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機４００は、その結果得られる多重化データを、変復調回路部４５８でスペクトラム拡散処理し、送受信回路部４６３でデジタルアナログ変換処理および周波数変換処理する。携帯電話機４００は、その変換処理により得られた送信用信号を、アンテナ４１４を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号（画像データ）は、ネットワーク等を介して、通信相手に供給される。
【０３８６】
なお、画像データを送信しない場合、携帯電話機４００は、CCDカメラ４１６で生成した画像データを、画像エンコーダ４５３を介さずに、LCD制御部４５５を介して液晶ディスプレイ４１８に表示させることもできる。
【０３８７】
また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機４００は、基地局から送信された信号を、アンテナ４１４を介して送受信回路部４６３で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機４００は、その受信信号を変復調回路部４５８でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機４００は、多重分離部４５７において、その多重化データを分離して、符号化画像データと音声データとに分ける。
【０３８８】
携帯電話機４００は、画像デコーダ４５６において、符号化画像データを、MPEG２やMPEG４等の所定の符号化方式に対応した復号方式でデコードすることにより、再生動画像データを生成し、これを、LCD制御部４５５を介して液晶ディスプレイ４１８に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ４１８に表示される。
【０３８９】
携帯電話機４００は、このような処理を行う画像デコーダ４５６として、上述した画像復号装置１５１を用いる。したがって、画像デコーダ４５６は、画像復号装置１５１の場合と同様に、フレームメモリの使用帯域を小さくするとともに、ストリーム情報に含めるフィルタ係数のオーバーヘッドを小さくすることができる。
【０３９０】
このとき、携帯電話機４００は、同時に、音声コーデック４５９において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ４１７より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
【０３９１】
なお、電子メールの場合と同様に、携帯電話機４００は、受信した簡易ホームページ等にリンクされたデータを、記録再生部４６２を介して、記憶部４２３に記録する（記憶させる）ことも可能である。
【０３９２】
また、携帯電話機４００は、主制御部４５０において、撮像されてCCDカメラ４１６で得られた２次元コードを解析し、２次元コードに記録された情報を取得することができる。
【０３９３】
さらに、携帯電話機４００は、赤外線通信部４８１で赤外線により外部の機器と通信することができる。
【０３９４】
携帯電話機４００は、画像エンコーダ４５３として画像符号化装置５１を用いることにより、重み付き予測後の高周波成分が失われることが抑制され、予測精度が改善される。結果として、携帯電話機４００は、符号化効率のよい符号化データ（画像データ）を、他の装置に提供することができる。
【０３９５】
また、携帯電話機４００は、画像デコーダ４５６として画像復号装置１５１を用いることにより、重み付き予測後の高周波成分が失われることが抑制され、画質の鮮明感が得られる。その結果として、携帯電話機４００は、例えば、簡易ホームページにリンクされた動画像ファイルから、より高精細な復号画像を得て、表示することができる。
【０３９６】
なお、以上において、携帯電話機４００が、CCDカメラ４１６を用いるように説明したが、このCCDカメラ４１６の代わりに、CMOS（Complementary Metal Oxide Semiconductor）を用いたイメージセンサ（CMOSイメージセンサ）を用いるようにしてもよい。この場合も、携帯電話機４００は、CCDカメラ４１６を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
【０３９７】
また、以上においては携帯電話機４００として説明したが、例えば、PDA（Personal Digital Assistants）、スマートフォン、UMPC（Ultra Mobile Personal Computer）、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機４００と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機４００の場合と同様に、画像符号化装置５１および画像復号装置１５１を適用することができる。
【０３９８】
［ハードディスクレコーダの構成例］
図２９は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
【０３９９】
図２９に示されるハードディスクレコーダ（HDDレコーダ）５００は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号（テレビジョン信号）に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
【０４００】
ハードディスクレコーダ５００は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ５００は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
【０４０１】
さらに、ハードディスクレコーダ５００は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ５６０に供給し、モニタ５６０の画面にその画像を表示させる。また、ハードディスクレコーダ５００は、モニタ５６０のスピーカよりその音声を出力させることができる。
【０４０２】
ハードディスクレコーダ５００は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ５６０に供給し、モニタ５６０の画面にその画像を表示させる。また、ハードディスクレコーダ５００は、モニタ５６０のスピーカよりその音声を出力させることもできる。
【０４０３】
もちろん、この他の動作も可能である。
【０４０４】
図２９に示されるように、ハードディスクレコーダ５００は、受信部５２１、復調部５２２、デマルチプレクサ５２３、オーディオデコーダ５２４、ビデオデコーダ５２５、およびレコーダ制御部５２６を有する。ハードディスクレコーダ５００は、さらに、EPGデータメモリ５２７、プログラムメモリ５２８、ワークメモリ５２９、ディスプレイコンバータ５３０、OSD（On Screen Display）制御部５３１、ディスプレイ制御部５３２、記録再生部５３３、D/Aコンバータ５３４、および通信部５３５を有する。
【０４０５】
また、ディスプレイコンバータ５３０は、ビデオエンコーダ５４１を有する。記録再生部５３３は、エンコーダ５５１およびデコーダ５５２を有する。
【０４０６】
受信部５２１は、リモートコントローラ（図示せず）からの赤外線信号を受信し、電気信号に変換してレコーダ制御部５２６に出力する。レコーダ制御部５２６は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ５２８に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部５２６は、このとき、ワークメモリ５２９を必要に応じて使用する。
【０４０７】
通信部５３５は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部５３５は、レコーダ制御部５２６により制御され、チューナ（図示せず）と通信し、主にチューナに対して選局制御信号を出力する。
【０４０８】
復調部５２２は、チューナより供給された信号を、復調し、デマルチプレクサ５２３に出力する。デマルチプレクサ５２３は、復調部５２２より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ５２４、ビデオデコーダ５２５、またはレコーダ制御部５２６に出力する。
【０４０９】
オーディオデコーダ５２４は、入力されたオーディオデータを、例えばMPEG方式でデコードし、記録再生部５３３に出力する。ビデオデコーダ５２５は、入力されたビデオデータを、例えばMPEG方式でデコードし、ディスプレイコンバータ５３０に出力する。レコーダ制御部５２６は、入力されたEPGデータをEPGデータメモリ５２７に供給し、記憶させる。
【０４１０】
ディスプレイコンバータ５３０は、ビデオデコーダ５２５またはレコーダ制御部５２６より供給されたビデオデータを、ビデオエンコーダ５４１により、例えばNTSC（National Television Standards Committee）方式のビデオデータにエンコードし、記録再生部５３３に出力する。また、ディスプレイコンバータ５３０は、ビデオデコーダ５２５またはレコーダ制御部５２６より供給されるビデオデータの画面のサイズを、モニタ５６０のサイズに対応するサイズに変換する。ディスプレイコンバータ５３０は、画面のサイズが変換されたビデオデータを、さらに、ビデオエンコーダ５４１によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部５３２に出力する。
【０４１１】
ディスプレイ制御部５３２は、レコーダ制御部５２６の制御のもと、OSD（On Screen Display）制御部５３１が出力したOSD信号を、ディスプレイコンバータ５３０より入力されたビデオ信号に重畳し、モニタ５６０のディスプレイに出力し、表示させる。
【０４１２】
モニタ５６０にはまた、オーディオデコーダ５２４が出力したオーディオデータが、D/Aコンバータ５３４によりアナログ信号に変換されて供給されている。モニタ５６０は、このオーディオ信号を内蔵するスピーカから出力する。
【０４１３】
記録再生部５３３は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
【０４１４】
記録再生部５３３は、例えば、オーディオデコーダ５２４より供給されるオーディオデータを、エンコーダ５５１によりMPEG方式でエンコードする。また、記録再生部５３３は、ディスプレイコンバータ５３０のビデオエンコーダ５４１より供給されるビデオデータを、エンコーダ５５１によりMPEG方式でエンコードする。記録再生部５３３は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部５３３は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
【０４１５】
記録再生部５３３は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部５３３は、デコーダ５５２によりオーディオデータおよびビデオデータをMPEG方式でデコードする。記録再生部５３３は、復号したオーディオデータをD/A変換し、モニタ５６０のスピーカに出力する。また、記録再生部５３３は、復号したビデオデータをD/A変換し、モニタ５６０のディスプレイに出力する。
【０４１６】
レコーダ制御部５２６は、受信部５２１を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ５２７から最新のEPGデータを読み出し、それをOSD制御部５３１に供給する。OSD制御部５３１は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部５３２に出力する。ディスプレイ制御部５３２は、OSD制御部５３１より入力されたビデオデータをモニタ５６０のディスプレイに出力し、表示させる。これにより、モニタ５６０のディスプレイには、EPG（電子番組ガイド）が表示される。
【０４１７】
また、ハードディスクレコーダ５００は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
【０４１８】
通信部５３５は、レコーダ制御部５２６に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部５２６に供給する。レコーダ制御部５２６は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部５３３に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部５２６および記録再生部５３３が、必要に応じて再エンコード等の処理を行うようにしてもよい。
【０４１９】
また、レコーダ制御部５２６は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ５３０に供給する。ディスプレイコンバータ５３０は、ビデオデコーダ５２５から供給されるビデオデータと同様に、レコーダ制御部５２６から供給されるビデオデータを処理し、ディスプレイ制御部５３２を介してモニタ５６０に供給し、その画像を表示させる。
【０４２０】
また、この画像表示に合わせて、レコーダ制御部５２６が、復号したオーディオデータを、D/Aコンバータ５３４を介してモニタ５６０に供給し、その音声をスピーカから出力させるようにしてもよい。
【０４２１】
さらに、レコーダ制御部５２６は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ５２７に供給する。
【０４２２】
以上のようなハードディスクレコーダ５００は、ビデオデコーダ５２５、デコーダ５５２、およびレコーダ制御部５２６に内蔵されるデコーダとして画像復号装置１５１を用いる。したがって、ビデオデコーダ５２５、デコーダ５５２、およびレコーダ制御部５２６に内蔵されるデコーダは、画像復号装置１５１の場合と同様に、重み付き予測後の高周波成分が失われることが抑制され、画質の鮮明感が得られる。
【０４２３】
したがって、ハードディスクレコーダ５００は、精度の高い予測画像を生成することができる。その結果として、ハードディスクレコーダ５００は、例えば、チューナを介して受信されたビデオデータの符号化データや、記録再生部５３３のハードディスクから読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、モニタ５６０に表示させることができる。
【０４２４】
また、ハードディスクレコーダ５００は、エンコーダ５５１として画像符号化装置５１を用いる。したがって、エンコーダ５５１は、画像符号化装置５１の場合と同様に、重み付き予測後の高周波成分が失われることが抑制され、予測精度が改善される。
【０４２５】
したがって、ハードディスクレコーダ５００は、例えば、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、ハードディスクレコーダ５００は、より高速に、ハードディスクの記憶領域をより効率よく使用することができる。
【０４２６】
なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ５００について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ５００の場合と同様に、画像符号化装置５１および画像復号装置１５１を適用することができる。
【０４２７】
［カメラの構成例］
図３０は、本発明を適用した画像復号装置および画像符号化装置を用いるカメラの主な構成例を示すブロック図である。
【０４２８】
図３０に示されるカメラ６００は、被写体を撮像し、被写体の画像をLCD６１６に表示させたり、それを画像データとして、記録メディア６３３に記録したりする。
【０４２９】
レンズブロック６１１は、光（すなわち、被写体の映像）を、CCD/CMOS６１２に入射させる。CCD/CMOS６１２は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部６１３に供給する。
【０４３０】
カメラ信号処理部６１３は、CCD/CMOS６１２から供給された電気信号を、Ｙ，Ｃｒ，Ｃｂの色差信号に変換し、画像信号処理部６１４に供給する。画像信号処理部６１４は、コントローラ６２１の制御の下、カメラ信号処理部６１３から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ６４１で例えばMPEG方式により符号化したりする。画像信号処理部６１４は、画像信号を符号化して生成した符号化データを、デコーダ６１５に供給する。さらに、画像信号処理部６１４は、オンスクリーンディスプレイ（OSD）６２０において生成された表示用データを取得し、それをデコーダ６１５に供給する。
【０４３１】
以上の処理において、カメラ信号処理部６１３は、バス６１７を介して接続されるDRAM（Dynamic Random Access Memory）６１８を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM６１８に保持させる。
【０４３２】
デコーダ６１５は、画像信号処理部６１４から供給された符号化データを復号し、得られた画像データ（復号画像データ）をLCD６１６に供給する。また、デコーダ６１５は、画像信号処理部６１４から供給された表示用データをLCD６１６に供給する。LCD６１６は、デコーダ６１５から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
【０４３３】
オンスクリーンディスプレイ６２０は、コントローラ６２１の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス６１７を介して画像信号処理部６１４に出力する。
【０４３４】
コントローラ６２１は、ユーザが操作部６２２を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス６１７を介して、画像信号処理部６１４、DRAM６１８、外部インタフェース６１９、オンスクリーンディスプレイ６２０、およびメディアドライブ６２３等を制御する。FLASH ROM６２４には、コントローラ６２１が各種処理を実行する上で必要なプログラムやデータ等が格納される。
【０４３５】
例えば、コントローラ６２１は、画像信号処理部６１４やデコーダ６１５に代わって、DRAM６１８に記憶されている画像データを符号化したり、DRAM６１８に記憶されている符号化データを復号したりすることができる。このとき、コントローラ６２１は、画像信号処理部６１４やデコーダ６１５の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部６１４やデコーダ６１５が対応していない方式により符号化・復号処理を行うようにしてもよい。
【０４３６】
また、例えば、操作部６２２から画像印刷の開始が指示された場合、コントローラ６２１は、DRAM６１８から画像データを読み出し、それを、バス６１７を介して外部インタフェース６１９に接続されるプリンタ６３４に供給して印刷させる。
【０４３７】
さらに、例えば、操作部６２２から画像記録が指示された場合、コントローラ６２１は、DRAM６１８から符号化データを読み出し、それを、バス６１７を介してメディアドライブ６２３に装着される記録メディア６３３に供給して記憶させる。
【０４３８】
記録メディア６３３は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア６３３は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
【０４３９】
また、メディアドライブ６２３と記録メディア６３３を一体化し、例えば、内蔵型ハードディスクドライブやSSD（Solid State Drive）等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
【０４４０】
外部インタフェース６１９は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ６３４と接続される。また、外部インタフェース６１９には、必要に応じてドライブ６３１が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア６３２が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM６２４にインストールされる。
【０４４１】
さらに、外部インタフェース６１９は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ６２１は、例えば、操作部６２２からの指示に従って、DRAM６１８から符号化データを読み出し、それを外部インタフェース６１９から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ６２１は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース６１９を介して取得し、それをDRAM６１８に保持させたり、画像信号処理部６１４に供給したりすることができる。
【０４４２】
以上のようなカメラ６００は、デコーダ６１５として画像復号装置１５１を用いる。したがって、デコーダ６１５は、画像復号装置１５１の場合と同様に、重み付き予測後の高周波成分が失われることが抑制され、画質の鮮明感が得られる。
【０４４３】
したがって、カメラ６００は、処理の高速化を実現するとともに、精度の高い予測画像を生成することができる。その結果として、カメラ６００は、例えば、CCD/CMOS６１２において生成された画像データや、DRAM６１８または記録メディア６３３から読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、LCD６１６に表示させることができる。
【０４４４】
また、カメラ６００は、エンコーダ６４１として画像符号化装置５１を用いる。したがって、エンコーダ６４１は、画像符号化装置５１の場合と同様に、重み付き予測後の高周波成分が失われることが抑制され、予測精度が改善される。
【０４４５】
したがって、カメラ６００は、例えば、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、カメラ６００は、より高速に、DRAM６１８や記録メディア６３３の記憶領域をより効率よく使用することができる。
【０４４６】
なお、コントローラ６２１が行う復号処理に画像復号装置１５１の復号方法を適用するようにしてもよい。同様に、コントローラ６２１が行う符号化処理に画像符号化装置５１の符号化方法を適用するようにしてもよい。
【０４４７】
また、カメラ６００が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
【０４４８】
もちろん、画像符号化装置５１および画像復号装置１５１は、上述した装置以外の装置やシステムにも適用可能である。
【０４４９】
＜第２実施の形態＞
［画像符号化装置の構成例］
図３１は、本発明を適用した画像処理装置としての画像符号化装置の第２実施の形態の構成を表している。
【０４５０】
図３１に示す構成のうち、図８の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【０４５１】
図３１の画像符号化装置７００の構成は、主に、動き予測・補償部７５の代わりに動き予測・補償部７０１が設けられている点が図８の構成と異なる。画像符号化装置７００は、SIFO（Single pass switched Interpolation Filter with Offset）を用いて参照画像に対するフィルタ処理を行う。
【０４５２】
なお、SIFOとは、固定の補間フィルタとAIFの中間的な補間フィルタである。具体的には、SIFOでは、スライスごとに、予め決められた複数の種類のフィルタ係数のセット（以下、フィルタ係数セットという）の中から、所望のフィルタ係数セットのフィルタ係数を設定するとともに、オフセットを設定することができる。SIFOの詳細については、例えば、VCEG（Visual Coding Expert Group）AI35、VCEG-AJ29等に記載されている。
【０４５３】
画像符号化装置７００において、動き予測・補償部７０１は、フレームメモリ７２からスイッチ７３を介して供給される参照画像と、画面並べ替えバッファ６２から供給されるインター処理する画像とに基づいて、候補となるインター予測モードごとに、各スライスの参照画像に対するフィルタ処理を行う際にSIFOに設定するオフセットを決定する。
【０４５４】
動き予測・補償部７０１は、候補となるインター予測モードごとに、対象スライスのオフセットと、そのインター予測モードに対応する候補となる全てのフィルタ係数セットの各sub pelのフィルタ係数の組み合わせそれぞれが設定されたSIFOを用いて、参照画像に対してフィルタ処理を行う。以下、全てのフィルタ係数セットの各sub pelのフィルタ係数の組み合わせを、全てのフィルタ係数セットの全組み合わせという。
【０４５５】
また、動き予測・補償部７０１は、インター処理する画像とフィルタ処理後の参照画像に基づいて、候補となる全てのインター予測モードの各ブロックの動き予測を行い、各ブロックの動きベクトルを生成する。動き予測・補償部７０１は、生成された動きベクトルに基づいて、フィルタ処理後の参照画像に対してブロックごとに補償処理を行い、予測画像を生成する。そして、動き予測・補償部７０１は、候補となる全てのインター予測モードに対応する候補となる全てのフィルタ係数セットの全組み合わせに対して、ブロックごとにコスト関数値を求める。
【０４５６】
さらに、動き予測・補償部７０１は、最適フィルタ処理後の参照画像に対応する候補となる全てのインター予測モードのコスト関数値に基づいて、ブロックごとに、最適インター予測モードを決定する。なお、最適フィルタ処理とは、対象フレームより１つ前のフレームの対象スライスと同一種類のスライスに対して決定されたフィルタ係数が設定されたSIFOによるフィルタ処理である。動き予測・補償部７０１は、最適インター予測モードの最適フィルタ処理後の参照画像に基づいて生成された予測画像と、その予測画像に対応するコスト関数値とを、予測画像選択部７６に供給する。
【０４５７】
また、動き予測・補償部７０１は、対象スライスの各ブロックの最適インター予測モードと、その最適インター予測モードに対応する全てのフィルタ係数セットの全組み合わせのコスト関数値とに基づいて、対象フレームの次のフレームの対象スライスと同一種類のスライスの最適フィルタ処理におけるフィルタ係数を決定する。
【０４５８】
動き予測・補償部７０１は、予測画像選択部７６により最適インター予測モードの予測画像が選択された場合、その最適インター予測モードを示すインター予測モード情報を可逆符号化部６６に出力する。
【０４５９】
このとき、動きベクトル情報、参照フレーム情報、スライスの情報、最適フィルタ処理におけるフィルタ係数の、フィルタ係数セットを特定するための番号であるセット番号、オフセットなども可逆符号化部６６に出力される。これにより、可逆符号化部６６において、動きベクトル情報、参照フレーム情報、スライスの情報、セット番号、オフセットなどが可逆符号化処理され、圧縮画像のヘッダ部に挿入される。なお、スライスの情報、セット番号、およびオフセットは、スライスヘッダに挿入される。
【０４６０】
［動き予測・補償部の構成例］
図３２は、動き予測・補償部７０１の構成例を示すブロック図である。なお、図３２においては、図３１のスイッチ７３が省略されている。
【０４６１】
図３２に示す構成のうち、図９の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【０４６２】
図３２の動き予測・補償部７０１の構成は、主に、固定補間フィルタ８１、フィルタ係数記憶部８２、可変補間フィルタ８３、フィルタ係数算出部８４、動き予測部８５、動き補償部８６、および制御部８７の代わりに、フィルタ係数選択部７２１、SIFO７２２、動き予測部７２３、動き補償部７２４、および制御部７２５が設けられている点が図９の構成と異なる。
【０４６３】
動き予測・補償部７０１のフィルタ係数選択部７２１には、画像並べ替えバッファ６２から供給される入力画像のうちのインター処理する画像が供給されるとともに、フレームメモリ７２からスイッチ７３を介して参照画像が供給される。フィルタ係数選択部７２１は、スライスごとに、候補となるインター予測モードごとのインター処理する画像と参照画像の輝度の平均値の差分を計算する。フィルタ係数選択部７２１は、その差分に基づいて、スライスごとに、候補となるインター予測モードごとのオフセットを決定し、SIFO７２２に供給する。また、フィルタ係数選択部７２１は、制御部７２５からの指示に応じて、オフセットを可逆符号化部６６に供給する。
【０４６４】
SIFO７２２は、フィルタ係数選択部７２１から供給されるオフセットとフィルタ係数とに基づいて、フレームメモリ７２からの参照画像に対してフィルタ処理を行う。
【０４６５】
具体的には、例えば、フィルタ処理後の分数位置の画素の画素値が図６に示したa乃至oである場合、まず、SIFO７２２は、分数位置の画素の画素値a，b，cを、参照画像内の整数位置の画素の画素値E，F，G，H，I，Jを用いて、次の式（２４）により求める。ここで、h[pos][n]は、フィルタ係数であり、posは、図６に示されたsub pelの位置を示し、nはフィルタ係数の番号を示す。また、offset[pos]は、posのsub pelのオフセットを示す。
【０４６６】
a = h[a][0] x E + h1[a][1] x F + h2[a][2] x G + h[a][3] x H 
+ h[a][4] x I + h[a][5] x J + offset[a]
b = h[b][0] x E + h1[b][1] x F + h2[b][2] x G + h[b][3] x H
+ h[b][4] x I + h[b][5] x J + offset[b]
c = h[c][0] x E + h1[c][1] x F + h2[c][2] x G + h[c][3] x H
+ h[c][4] x I + h[c][5] x J + offset[C]
・・・（２４）
【０４６７】
次に、SIFO７２２は、分数位置の画素の画素値d乃至oを、参照画像内の図６に示した整数位置の画素の画素値G1,G2,G,G3,G4,G5を用いて、次の式（２５）により求める。
【０４６８】
d = h[d][0] x G1 + h[d][1] x G2 + h[d][2] x G + h[d][3] x G3
+ h[d][4] * G4 + h[d][5] x G5+ offset[d]
h = h[h][0] x G1 + h[h][1] x G2 + h[h][2] x G + h[h][3] x G3
+ h[h][4] * G4 + h[h][5] x G5+ offset[h]
l = h[l][0] x G1 + h[l][1] x G2 + h[l][2] x G + h[l][3] x G3
+ h[l][4] * G4 + h[l][5] x G5+ offset[l]
e = h[e][0] x a1 + h[e][1] x a2 + h[e][2] x a + h[e][3] x a3
+ h[e][4] * a4 + h[e][5] x a5+ offset[e]
i = h[i][0] x a1 + h[i][1] x a2 + h[i][2] x a + h[i][3] x a3
+ h[i][4] * a4 + h[i][5] x a5+ offset[i]
m = h[m][0] x a1 + h[m][1] x a2 + h[m][2] x a + h[m][3] x a3
+ h[m][4] * a4 + h[m][5] x a5+ offset[m]
f = h[f][0] x b1 + h[f][1] x b2 + h[f][2] x b + h[f][3] x b3
+ h[f][4] * b4 + h[f][5] x b5+ offset[f]
j = h[j][0] x b1 + h[j][1] x b2 + h[j][2] x b + h[j][3] x b3
+ h[j][4] * b4 + h[j][5] x b5+ offset[j]
n = h[n][0] x b1 + h[n][1] x b2 + h[n][2] x b + h[n][3] x b3
+ h[n][4] * b4 + h[n][5] x b5+ offset[n]
g = h[g][0] x c1 + h[g][1] x c2 + h[g][2] x c + h[g][3] x c3
+ h[g][4] * c4 + h[g][5] x c5+ offset[g]
k = h[k][0] x c1 + h[k][1] x c2 + h[k][2] x c + h[k][3] x c3
+ h[k][4] * c4 + h[k][5] x c5+ offset[k]
o = h[o][0] x c1 + h[o][1] x c2 + h[o][2] x c + h[o][3] x c3
+ h[o][4] * c4 + h[o][5] x c5+ offset[o]
・・・（２５）
【０４６９】
なお、SIFO７２２は、画素値gに対しては、強い低域濾波器(LPF）として機能する。これにより、フィルタ処理後の参照画像のノイズを低減することができる。
【０４７０】
SIFO７２２における画素値ｇに対する強いLPFとしての機能は、L0L1重み付き予測を使う場合と、L0L1重み付き予測を使わない場合で異なるようにしてもよい。例えば、L0L1重み付き予測を使う場合、SIFO７２２は、画素値gに対して強いLPFとして機能しないようにし、L0L1重み付き予測を行わない場合、画素値gに対して強いLPFとして機能するようにする。これにより、時間的に強いLPFの特性が得られる、L0L1重み付き予測が使われる場合に、不用な空間的な強いLPFとしての機能を削除することができる。
【０４７１】
なお、L0L1重み付き予測を使う場合、SIFO７２２は、L0の参照画素またはL1の参照画素のいずれかの画素値gに対してだけ、強いLPFとして機能するようにしてもよい。また、SIFO７２２による画素値ｇに対する強いLPFとしての機能は、インター予測モードに応じて切り換えられるようにしてもよい。
【０４７２】
フィルタ係数選択部７２１は、ブロックごとのフィルタ処理後の参照画像を動き補償部７２４と動き予測部７２３に供給する。
【０４７３】
動き予測部７２３は、画面並べ替えバッファ６２からの入力画像のうちのインター処理する画像と、SIFO７２２からのフィルタ処理後の参照画像とに基づいて、候補となる全てのインター予測モードの動きベクトルをブロックごとに生成する。動き予測部７２３は、生成した動きベクトルを動き補償部７２４に出力する。
【０４７４】
動き補償部７２４は、動き予測部７２３から供給される動きベクトルを用いて、SIFO７２２から供給されるフィルタ処理後の参照画像に対してブロックごとに補償処理を施し、予測画像を生成する。そして、動き補償部７２４は、候補となる全てのインター予測モードに対応する全てのフィルタ係数セットの全組み合わせに対して、ブロックごとにコスト関数値を求める。
【０４７５】
また、動き補償部７２４は、最適フィルタ処理後の参照画像に対応する候補となる全てのインター予測モードのコスト関数値に基づいて、ブロックごとに、コスト関数値が最小となるインター予測モードを、最適インター予測モードに決定する。そして、動き補償部７２４は、最適インター予測モードの最適フィルタ処理後の参照画像に基づいて生成された予測画像と、その予測画像に対応するコスト関数値とを、予測画像選択部７６に供給する。また、動き補償部７２４は、対象スライスの各ブロックの最適インター予測モードに対応する全てのフィルタ係数セットの全組み合わせのコスト関数値を制御部７２５に供給する。
【０４７６】
動き補償部７２４は、予測画像選択部７６において最適インター予測モードの予測画像が選択された場合、制御部７２５の制御のもと、最適インター予測モードを示す予測モード情報、スライスの種類が含まれるスライスの情報、動きベクトル、参照画像の情報などを、可逆符号化部６６に出力する。
【０４７７】
制御部７２５は、予測モードを設定する。制御部７２５は、設定された予測モードの予測の種類、すなわち、L0L1重み付き予測またはその他の予測であるかに応じて、フィルタ係数選択部７２１を制御する。具体的には、制御部７２５は、L0L1重み付き予測の場合、L0L1重み付き予測に用いられるフィルタ係数セットのセット番号をフィルタ係数選択部７２１に供給し、そのフィルタ係数セットのフィルタ係数の出力を指示する。また、制御部７２５はその他の予測の場合（すなわち、L0L1重み付き予測を行わない予測）、その他の予測に用いられるフィルタ係数セットのセット番号をフィルタ係数選択部７２１に供給し、そのフィルタ係数セットのフィルタ係数の出力を指示する。
【０４７８】
また、制御部７２５は、動き補償部７２４から供給される対象スライスの各ブロックの最適インター予測モードに対応する全てのフィルタ係数セットの全組み合わせのコスト関数値に基づいて、インター予測モードごとに、最適フィルタ処理におけるフィルタ係数を決定する。具体的には、制御部７２５は、各予測モードを最適インター予測モードとするブロックのコスト関数値の対象スライス分の和が最小となる各sub pelのフィルタ係数の組み合わせを、各予測モードの最適フィルタ処理におけるフィルタ係数とする。
【０４７９】
さらに、制御部７２５は、予測画像選択部７６からのインター予測画像が選択されたという信号を受けると、動き補償部７２４およびフィルタ係数選択部７２１に、必要な情報を可逆符号化部６６に出力させる制御を行う。さらに、制御部７２５は、予測画像選択部７６からのインター予測画像が選択されたという信号に応じて、最適フィルタ処理におけるフィルタ係数のセット番号を可逆符号化部６６に供給する。
【０４８０】
［フィルタ係数選択部の構成例］
図３３は、パターンＡの場合のフィルタ係数選択部７２１の構成例を示すブロック図である。
【０４８１】
図３３に示すように、フィルタ係数選択部７２１は、オフセット決定部７４０、Ａ１フィルタ係数メモリ７４１、Ａ２フィルタ係数メモリ７４２、Ａ３フィルタ係数メモリ７４３、Ａ４フィルタ係数メモリ７４４、およびセレクタ７４５により構成される。
【０４８２】
フィルタ係数選択部７２１のオフセット決定部７４０は、スライスごとに、候補となるインター予測モードごとのインター処理する画像と参照画像の輝度の平均値の差分を計算する。オフセット決定部７４０は、その差分に基づいて、スライスごとに、候補となるインター予測モードごとのオフセットを決定し、SIFO７２２に供給する。また、オフセット決定部７４０は、制御部７２５からの指示に応じて、オフセットを可逆符号化部６６に供給する。
【０４８３】
Ａ１フィルタ係数メモリ７４１は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数Ａ１を、フィルタ係数セットとして複数種類記憶している。Ａ１フィルタ係数メモリ７４１は、制御部７２５からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数Ａ１をsub pelごとに選択する。Ａ１フィルタ係数メモリ７４１は、選択された全sub pelのフィルタ係数Ａ１をセレクタ７４５に出力する。
【０４８４】
Ａ２フィルタ係数メモリ７４２は、L0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数Ａ２を、フィルタ係数セットとして複数種類記憶している。Ａ２フィルタ係数メモリ７４２は、制御部７２５からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数Ａ２をsub pelごとに選択する。Ａ２フィルタ係数メモリ７４２は、選択された全sub pelのフィルタ係数Ａ２をセレクタ７４５に出力する。
【０４８５】
Ａ３フィルタ係数メモリ７４３は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられるフィルタ係数Ａ３を、フィルタ係数セットとして複数種類記憶している。Ａ３フィルタ係数メモリ７４３は、制御部７２５からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数Ａ３をsub pelごとに選択する。Ａ３フィルタ係数メモリ７４３は、選択された全sub pelのフィルタ係数Ａ３をセレクタ７４５に出力する。
【０４８６】
Ａ４フィルタ係数メモリ７４４は、L0L1重み付き予測を使う場合のスキップ・モードに用いられるフィルタ係数Ａ４を、フィルタ係数セットとして複数種類記憶している。Ａ４フィルタ係数メモリ７４４は、制御部７２５からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数Ａ４をsub pelごとに選択する。Ａ４フィルタ係数メモリ７４４は、選択された全sub pelのフィルタ係数Ａ４をセレクタ７４５に出力する。
【０４８７】
セレクタ７４５は、制御部７２５からの指示に応じて、フィルタ係数Ａ１乃至Ａ４のうち、１つのフィルタ係数を選択し、SIFO７２２に出力する。
【０４８８】
なお、以下では、Ａ１フィルタ係数メモリ７４１、Ａ２フィルタ係数メモリ７４２、Ａ３フィルタ係数メモリ７４３、およびＡ４フィルタ係数メモリ７４４を特に区別する必要がない場合、それらをまとめてフィルタ係数メモリという。
【０４８９】
［Ａ１フィルタ係数メモリの記憶情報の例］
図３４は、Ａ１フィルタ係数メモリ７４１の記憶情報の例を示す図である。
【０４９０】
図３４の例では、Ａ１フィルタ係数メモリ７４１に、４種類のフィルタ係数Ａ１がフィルタ係数セット７６１−１乃至７６１−４として記憶されている。
【０４９１】
なお、Ａ１フィルタ係数メモリ７４１に記憶されるフィルタ係数セットの数は、４つに限定されない。但し、フィルタ係数セットの数が多いと、スライスヘッダに挿入されるセット番号の情報量が増加するので、オーバーヘッドが増大する。一方、フィルタ係数セットの数が少ないと、最適なフィルタ係数を設定することができず、符号化効率が低下する恐れがある。従って、画像符号化装置７００および後述する画像復号装置からなるシステムのオーバーヘッドおよび符号化効率の許容範囲に応じて、フィルタ係数セットの数は決定される。
【０４９２】
また、図３４では、Ａ１フィルタ係数メモリ７４１の記憶情報について説明したが、Ａ２フィルタ係数メモリ７４２、Ａ３フィルタ係数メモリ７４３、およびＡ４フィルタ係数メモリ７４４についても、同様に、複数のフィルタ係数セットが記憶される。
【０４９３】
［画像符号化装置の処理の説明］
次に、図３１の画像符号化装置７００の処理について説明する。画像符号化装置７００の符号化処理は、図１５の符号化処理のステップＳ２２の動き予測・補償処理を除いて、図１５の符号化処理と同様である。従って、ここでは、画像符号化装置７００の動き予測・補償部７０１による動き予測・補償処理についてのみ説明する。
【０４９４】
図３５は、画像符号化装置７００の動き予測・補償部７０１による動き予測・補償処理を説明するフローチャートである。この動き予測・補償処理は、スライスごとに行われる。
【０４９５】
図３５のステップＳ２０１において、動き予測・補償部７０１の制御部７２５（図３２）は、現在のインター予測モードを、候補となるインター予測モードのうちのまだ設定されていない所定のインター予測モードに設定する。
【０４９６】
ステップＳ２０２において、フィルタ係数選択部７２１のオフセット決定部７４０（図３３）は、入力画像のうちのインター処理する画像の輝度の平均値と、現在のインター予測モードに対応する参照画像の輝度の平均値を計算する。
【０４９７】
ステップＳ２０３において、オフセット決定部７４０は、入力画像のうちのインター処理する画像と、現在のインター予測モードに対応する参照画像の輝度の平均値の差分を計算する。
【０４９８】
ステップＳ２０４において、オフセット決定部７４０は、ステップＳ２０３で算出された差分が所定の閾値（例えば、2）以下であるかどうかを判定する。ステップＳ２０４で差分が所定の閾値以下であると判定された場合、オフセット決定部７４０は、その差分を対象スライスのスライスごとのオフセットとして決定する。なお、スライスごとのオフセットとは、各スライスの全sub pelに対する共通のオフセットである。即ち、差分が所定の閾値以下である場合、１つのスライスに対して１つのオフセットがスライスごとのオフセットとして決定され、そのオフセットが全sub pelに対するオフセットとされる。そして、オフセット決定部７４０は、スライスごとのオフセットをSIFO７２２に供給し、処理をステップＳ２０７に進める。
【０４９９】
一方、ステップＳ２０４で差分が所定の閾値より大きいと判定された場合、オフセット決定部７４０は、その差分に基づくsub pelごとの値を、sub pelごとのオフセットとして決定する。
【０５００】
具体的には、例えば、差分が10である場合、a乃至oの計15個のsub pelに対して、hのオフセットが10となり、o,g,f,n,d,l,b,h,j,c,a,k,i,m,eの順にオフセットが10/15ずつ大きくなるように、オフセットが決定される。即ち、o,g,f,n,d,l,b,h,j,c,a,k,i,m,eのsub pelに対するオフセットは、それぞれ、80/15,90/15,100/15,110/15,120/15,130/15,140/15,10,160/15,170/15,180/15,190/15,200/15,210/15,220/15となる。オフセット決定部７４０は、決定されたオフセットをSIFO７２２に供給し、処理をステップＳ２０７に進める。
【０５０１】
ステップＳ２０７において、制御部７２５は、現在のインター予測モードに対応するフィルタ係数メモリに記憶されているフィルタ係数セットから、まだ選択されていない各sub pelのフィルタ係数の組み合わせを選択する。
【０５０２】
具体的には、制御部７２５は、まず、後述するステップＳ２０８で選択されるフィルタ係数に対応するフィルタ係数メモリを認識する。次に、制御部７２５は、そのフィルタ係数メモリ内のフィルタ係数セットの全てのセット番号を認識し、sub pelごとにセット番号を選択することにより、まだ選択されていない各sub pelのセット番号の組み合わせを決定する。
【０５０３】
例えば、制御部７２５は、Ａ１フィルタ係数メモリ７４１内のフィルタ係数セット７６１−１のセット番号を、それぞれ、a,b,c,d,e,f,g,h,i,j,k,l,m,n,oの計15個のsub pelのセット番号として決定する。また、制御部７２５は、Ａ１フィルタ係数メモリ７４１内のフィルタ係数セット７６１−１のセット番号を、それぞれ、a,b,c,d,e,f,g,h,i,j,k,l,m,nの計14個のsub pelのセット番号として決定し、フィルタ係数セット７６１−２のセット番号を、oのsub pelのセット番号として決定する。
【０５０４】
そして、制御部７２５は、そのセット番号の組み合わせを、ステップＳ２０８で選択されるフィルタ係数に対応するフィルタ係数メモリに指示する。これにより、フィルタ係数メモリは、制御部７２５から指示された各sub pelのセット番号の組み合わせに基づいて、そのセット番号のフィルタ係数セットから各sub pelのフィルタ係数を読み出し、セレクタ７４５に供給する。
【０５０５】
ステップＳ２０８において、フィルタ係数選択部７２１は、フィルタ係数選択処理を行う。このフィルタ係数選択処理は、図１７のフィルタ係数選択処理と同様であるので、説明は省略する。フィルタ係数選択処理により選択されたフィルタ係数Ａ１、フィルタ係数Ａ２、フィルタ係数Ａ３、またはフィルタ係数Ａ４は、SIFO７２に供給される。
【０５０６】
ステップＳ２０９において、SIFO７２２は、フィルタ係数選択部７２１から供給されるオフセットとフィルタ係数とに基づいて、フレームメモリ７２からの参照画像に対してフィルタ処理を行う。フィルタ係数選択部７２１は、フィルタ処理後の参照画像を動き補償部７２４と動き予測部７２３に供給する。
【０５０７】
ステップＳ２１０において、動き予測部７２３は、画面並べ替えバッファ６２からの入力画像のうちのインター処理する画像と、SIFO７２２からのフィルタ処理後の参照画像とを用いて、ブロックごとに動き予測を行い、動きベクトルを生成する。動き予測部７２３は、生成した動きベクトルを動き補償部７２４に出力する。
【０５０８】
ステップＳ２１１において、動き補償部７２４は、SIFO７２２から供給されるフィルタ処理後の参照画像と動き予測部７２３から供給される動きベクトルを用いて、ブロックごとに補償処理を施し、予測画像を生成する。そして、動き補償部７２４は、ブロックごとにコスト関数値を求める。
【０５０９】
ステップＳ２１２において、制御部７２５は、ステップＳ２０７の処理で、現在のインター予測モードに対応するフィルタ係数セット内の各sub pelのフィルタ係数の全ての組み合わせが選択されたかどうかを判定する。ステップＳ２１２でまだ全ての組み合わせが選択されていないと判定された場合、処理はステップＳ２０７に戻り、全ての組み合わせが選択されるまで、ステップＳ２０７乃至Ｓ２１２の処理が繰り返される。
【０５１０】
一方、ステップＳ２１２で全ての組み合わせが選択されたと判定された場合、ステップＳ２１３において、制御部７２５は、ステップＳ２０１の処理で、候補となる全てのインター予測モードが現在のインター予測モードとして設定されたかを判定する。
【０５１１】
ステップＳ２１３で、まだ候補となる全てのインター予測モードが現在のインター予測モードとして設定されていないと判定された場合、処理はステップＳ２０１に戻る。そして、候補となる全てのインター予測モードが現在のインター予測モードとして設定されるまで、ステップＳ２０１乃至Ｓ２１３の処理が繰り返される。
【０５１２】
一方、ステップＳ２１３で候補となる全てのインター予測モードが現在のインター予測モードとして設定されたと判定された場合、処理はステップＳ２１４に進む。ステップＳ２１４において、動き補償部７２４は、ステップＳ２１１で算出されたコスト関数値のうち、最適フィルタ処理後の参照画像に対応する候補となる全てのインター予測モードのコスト関数値に基づいて、ブロックごとに、コスト関数値が最小となるインター予測モードを、最適インター予測モードに決定する。
【０５１３】
なお、最初のフレームに対するステップＳ２１４の処理では、所定のフィルタ係数（例えば、セット番号が0番であるフィルタ係数セットとしてのフィルタ係数）を用いた処理が、最適フィルタ処理とされる。
【０５１４】
また、動き補償部７２４は、最適インター予測モードの最適フィルタ処理後の参照画像に基づいて生成された予測画像と、その予測画像に対応するコスト関数値とを、予測画像選択部７６に供給する。そして、予測画像選択部７６において最適インター予測モードの予測画像が選択された場合、最適インター予測モードを示す予測モード情報と、最適インター予測モードに対応する動きベクトルは、制御部７２５の制御のもと、可逆符号化部６６に出力される。さらに、動き補償部７２４は、各ブロックの最適インター予測モードに対応する全てのフィルタ係数セットの全組み合わせのコスト関数値を制御部７２５に供給する。
【０５１５】
ステップＳ２１５において、制御部７２５は、動き補償部７２４から供給される各ブロックの最適インター予測モードに対応する全てのフィルタ係数セットの全組み合わせのコスト関数値に基づいて、各インター予測モードを最適インター予測モードとするブロックの、フィルタ係数の組み合わせごとのコスト関数値の対象スライス分の和を求める。即ち、制御部７２５は、最適インター予測モードが所定のインター予測モードであるブロックについて、その最適インター予測モードに対応するフィルタ係数の組み合わせごとに、コスト関数値をスライス分加算することを、インター予測モードごとに行う。
【０５１６】
ステップＳ２１６において、制御部７２５は、ステップＳ２１５で求められた各インター予測モードのフィルタ係数の組み合わせごとのコスト関数値の和に基づいて、インター予測モードごとに、コスト関数値の和が最小となるフィルタ係数の組み合わせを、最適フィルタ処理におけるフィルタ係数とする。このフィルタ係数のsub pelごとのセット番号は、予測画像選択部７６からのインター予測画像が選択されたという信号に応じて、可逆符号化部６６に供給され、対象フレームの次のフレームの対象スライスと同一種類のスライスのスライスヘッダに挿入される。そして、動き予測・補償処理は、終了する。
【０５１７】
以上のように、画像符号化装置７００では、１種類の動き予測で、最適フィルタ処理におけるフィルタ係数およびオフセットを設定することができる。その結果、図８の画像符号化装置５１に比べて、フィルタ係数の算出コストを低減させることができる。
【０５１８】
また、画像符号化装置７００では、スライスヘッダに、フィルタ係数そのものではなく、フィルタ係数のsub pelごとのセット番号が含まれるので、図８の画像符号化装置５１に比べて、オーバーヘッドを低減させることができる。
【０５１９】
なお、第２実施の形態では、sub pelごとにフィルタ係数セットが選択されたが、全sub pelに対して共通の１つのフィルタ係数セットが選択されるようにしてもよい。この場合、画像符号化装置７００は、最適フィルタ処理におけるフィルタ係数を求めるために、フィルタ係数セット単位でコスト関数値を求めればよいため、オーバーヘッドを削減することができる。また、フィルタ係数セットを特定するための情報は、各インター予測モードに対して１つのセット番号となるため、その情報のビット量を削減することができる。
【０５２０】
また、sub pelごとのフィルタ係数セットの選択、および、全sub pelに対する共通の１つのフィルタ係数セットの選択の両方を選択的に行うことができるようにしてもよい。この場合、いずれの選択が行われたかを示すフラグがスライスヘッダに挿入される。このフラグは、例えば、sub pelごとのフィルタ係数セットの選択が行われた場合1となり、全sub pelに対する共通の１つのフィルタ係数セットの選択が行われた場合0となる。
【０５２１】
さらに、第２の実施の形態では、フィルタ係数Ａ１乃至フィルタ係数Ａ４のそれぞれに対して、フィルタ係数セットが設けられたが、フィルタ係数Ａ１乃至フィルタ係数Ａ４に共通のフィルタ係数セットが設けられるようにしてもよい。但し、フィルタ係数Ａ１乃至フィルタ係数Ａ４のそれぞれに対してフィルタ係数セットが設けられる場合、フィルタ係数Ａ１乃至フィルタ係数Ａ４のそれぞれに適するフィルタ係数セットのみを設けることができる。従って、フィルタ係数Ａ１乃至フィルタ係数Ａ４のそれぞれとして用意すべきフィルタ係数セットの数は、共通のフィルタ係数セットが設けられる場合に比べて少なくなり、スライスヘッダに挿入されるセット番号のビット量を削減することができる。
【０５２２】
[画像復号装置の構成例]
図３６は、本発明を適用した画像処理装置としての画像復号装置の第２実施の形態の構成を表している。
【０５２３】
図３６に示す構成のうち、図１８の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【０５２４】
図３６の画像復号装置８００の構成は、主に、動き補償部１７２の代わりに動き補償部８０１が設けられている点が図１８の構成と異なる。画像復号装置８００は、図３１の画像符号化装置７００により出力された圧縮画像を復号する。
【０５２５】
具体的には、画像復号装置８００の動き補償部８０１においては、少なくとも、L0L1重み付き予測に用いられるフィルタ係数と、それ以外の予測に用いられるフィルタ係数がフィルタ係数セットとして複数記憶されている。
【０５２６】
動き補償部８０１は、可逆復号部１６２からの最適インター予測モードに対応するフィルタ係数セットのうちの、可逆復号部１６２からのスライスヘッダに含まれるセット番号のフィルタ係数セットのフィルタ係数をsub pelごとに読み出す。動き補償部８０１は、読み出されたフィルタ係数と、スライスヘッダに含まれるオフセットとを用いて、SIFOにより、フレームメモリ１６９からの参照画像に対してフィルタ処理を行う。
【０５２７】
また、動き補償部８０１は、可逆復号部１６２からの動きベクトルを用いて、ブロックごとに、フィルタ処理後の参照画像に補償処理を行い、予測画像を生成する。生成された予測画像は、スイッチ１７３を介して、演算部１６５に出力される。
【０５２８】
［動き補償部の構成例］
図３７は、動き補償部８０１の詳細な構成例を示すブロック図である。なお、図３７においては、図３６のスイッチ１７０が省略されている。
【０５２９】
図３７に示す構成のうち、図１９の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【０５３０】
図３７の動き補償部８０１の構成は、主に、固定補間フィルタ１８１、固定フィルタ係数記憶部１８２、可変補間フィルタ１８３、可変フィルタ係数記憶部１８４、および制御部１８６の代わりに、フィルタ係数セット記憶部８１１、SIFO８１２、および制御部８１３が設けられている点が図１９の構成と異なる。
【０５３１】
動き補償部８０１のフィルタ係数セット記憶部８１１は、SIFO８１２で使用される、少なくとも、L0L1重み付き予測用およびそれ以外の予測用のフィルタ係数をフィルタ係数セットとして複数種類記憶する。フィルタ係数セット記憶部８１１は、制御部８１３の制御のもと、所定のフィルタ係数セット内のフィルタ係数をsub pelごとに読み出す。また、フィルタ係数セット記憶部８１１は、読み出されたL0L1重み付き予測用およびそれ以外の予測用のフィルタ係数のいずれかを、制御部８１３の制御のもと選択し、選択したフィルタ係数を、SIFO８１２に供給する。
【０５３２】
SIFO８１２は、フレームメモリ１６９からの参照画像に対して、可逆復号部１６２から供給されるオフセットと、フィルタ係数セット記憶部８１１から供給されるフィルタ係数を用いて、フィルタ処理を施す。SIFO８１２は、フィルタ処理後の参照画像を、動き補償処理部１８５に出力する。
【０５３３】
制御部８１３は、スライスごとに、可逆復号部１６２からのスライスヘッダの情報に含まれるセット番号を取得し、そのセット番号のフィルタ係数セットの読み出しをフィルタ係数セット記憶部８１１に指示する。また、制御部８１３は、可逆復号部１６２から供給される予測モード情報に応じて、L0L1重み付き予測用およびそれ以外の予測用のどちらのフィルタ係数を選択するかを、フィルタ係数セット記憶部８１１に指示する。また、制御部８１３は、動き補償処理部１８５に、予測モード情報に基づく最適インター予測モードの補償処理を行わせる。
【０５３４】
[フィルタ係数セット記憶部の構成例]
図３８は、パターンAの場合のフィルタ係数セット記憶部８１１の構成例を示すブロック図である。
【０５３５】
図３８に示すように、フィルタ係数セット記憶部８１１は、A1フィルタ係数メモリ８３１、A2フィルタ係数メモリ８３２、A3フィルタ係数メモリ８３３、およびA4フィルタ係数メモリ８３４、およびセレクタ８３５により構成される。
【０５３６】
Ａ１フィルタ係数メモリ８３１は、図３３のＡ１フィルタ係数メモリ７４１と同様に、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数Ａ１を、フィルタ係数セットとして複数種類記憶している。Ａ１フィルタ係数メモリ８３１は、制御部８１３からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数Ａ１をsub pelごとに選択する。Ａ１フィルタ係数メモリ８３１は、選択された全sub pelのフィルタ係数Ａ１をセレクタ８３５に出力する。
【０５３７】
Ａ２フィルタ係数メモリ８３２は、図３３のＡ２フィルタ係数メモリ７４２と同様に、L0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数Ａ２を、フィルタ係数セットとして複数種類記憶している。Ａ２フィルタ係数メモリ８３２は、制御部８１３からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数Ａ２をsub pelごとに選択する。Ａ２フィルタ係数メモリ８３２は、選択された全sub pelのフィルタ係数Ａ２をセレクタ８３５に出力する。
【０５３８】
Ａ３フィルタ係数メモリ８３３は、図３３のＡ３フィルタ係数メモリ７４３と同様に、L0L1重み付き予測を使う場合のダイレクト・モードに用いられるフィルタ係数Ａ３を、フィルタ係数セットとして複数種類記憶している。Ａ３フィルタ係数メモリ８３３は、制御部８１３からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数Ａ３をsub pelごとに選択する。Ａ３フィルタ係数メモリ８３３は、選択された全sub pelのフィルタ係数Ａ３をセレクタ８３５に出力する。
【０５３９】
Ａ４フィルタ係数メモリ８３４は、図３３のＡ４フィルタ係数メモリ７４４と同様に、L0L1重み付き予測を使う場合のスキップ・モードに用いられるフィルタ係数Ａ４を、フィルタ係数セットとして複数種類記憶している。Ａ４フィルタ係数メモリ８３４は、制御部８１３からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数Ａ４をsub pelごとに選択する。Ａ４フィルタ係数メモリ８３４は、選択された全sub pelのフィルタ係数Ａ４をセレクタ８３５に出力する。
【０５４０】
セレクタ８３５は、制御部８１３からの指示に応じて、フィルタ係数Ａ１乃至Ａ４のうち、１つのフィルタ係数を選択し、SIFO８１２に出力する。
【０５４１】
[画像復号装置の処理の説明]
次に、図３６の画像復号装置８００の処理について説明する。画像復号装置８００の復号処理は、図２２の復号処理のステップＳ１３９の動き補償処理を除いて、図２２の復号処理と同様である。従って、ここでは、画像復号装置８００の動き補償部８０１による動き補償処理についてのみ説明する。
【０５４２】
図３９は、画像復号装置８００の動き補償部８０１による動き補償処理を説明するフローチャートである。この動き補償部８０１は、スライスごとに行われる。
【０５４３】
ステップＳ３０１において、動き補償部８０１の制御部８１３（図３７）は、可逆復号部１６２からのスライスヘッダの情報に含まれるスライスごとの各sub pelのセット番号を取得するとともに、ブロックごとの予測モード情報を取得する。制御部８１３は、取得された各sub pelのセット番号を、フィルタ係数セット記憶部８１１に指示する。これにより、フィルタ係数セット記憶部８１１のＡ１フィルタ係数メモリ８３１、Ａ２フィルタ係数メモリ８３２、Ａ３フィルタ係数メモリ、およびＡ４フィルタ係数メモリは、それぞれ、制御部８１３により指示された各sub pelのセット番号のフィルタ係数セット内の、そのsub pelのフィルタ係数を読み出し、セレクタ８３５に供給する。
【０５４４】
ステップＳ３０２乃至Ｓ３０８の処理は、図２３のステップＳ１５５乃至Ｓ１６１の処理と同様であるので、説明は省略する。
【０５４５】
ステップＳ３０８の処理後、ステップＳ３０９において、SIFO８１２は、可逆復号部１６２から、スライスヘッダに含まれるスライスごとのオフセットを取得する。
【０５４６】
ステップＳ３１０において、SIFO８１２は、フレームメモリ１６９からの参照画像に対して、可逆復号部１６２から供給されるオフセットと、フィルタ係数セット記憶部８１１から供給されるフィルタ係数を用いて、フィルタ処理を行う。SIFO８１２は、フィルタ処理後の参照画像を、動き補償処理部１８５に出力する。
【０５４７】
ステップＳ３１１において、動き補償処理部１８５は、可逆復号部１６２からブロックごとの動きベクトルを取得する。
【０５４８】
ステップＳ３１２において、動き補償処理部１８５は、制御部８１３の制御のもと、ブロックごとに、最適インター予測モードで、可逆復号部１６２からの動きベクトルを用いて、フィルタ処理された参照画像に補償処理を行い、予測画像を生成する。動き補償部１８５は、生成した予測画像を、スイッチ１７３に出力する。そして、動き補償処理は終了する。
【０５４９】
＜フィルタ係数の他の分類＞
図４０は、フィルタ係数の他の分類方法について説明する図である。なお、図４０の例において、フィルタ[X][X]となっている部分の数字とアルファベットが異なれば、フィルタの特性が異なることを表している。
【０５５０】
図４０に示すフィルタ係数の分類方法は、図１０で示したフィルタ係数の分類方法に１つのパターンＥが追加されたものである。
【０５５１】
パターンＥは、フィルタ係数を、フィルタ係数Ｅ１乃至Ｅ５の５つに分類する方法である。具体的には、パターンＥでは、パターンＡと同様に、L0L1重み付き予測を使う場合においてインター予測モードごとに異なるフィルタ係数が用いられるだけでなく、L0L1重み付き予測を使わない場合において、対象スライスが、Ｂスライス以外であるか、Ｂスライスであるかによって、異なるフィルタ係数が用いられる。
【０５５２】
即ち、フィルタ係数Ｅ１は、L0L1重み付き予測を使わない場合の全てのインター予測モードのＢスライス以外のスライスに対して用いられる。フィルタ係数Ｅ２は、L0L1重み付き予測を使わない場合の全てのインター予測モードのＢスライスに対して用いられる。フィルタ係数Ｅ３は、L0L1重み付き予測を使う場合の双予測モードに用いられる。フィルタ係数Ｅ４は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられる。フィルタ係数Ｅ５は、L0L1重み付き予測を使う場合のスキップ・モードに用いられる。
【０５５３】
以下に、パターンＥによる効果について説明する。
【０５５４】
AVC規格において、BスライスではL０L１重み付き予測が使われる領域と使われない領域が混在するのが普通である。一方、PスライスではL1参照ができないため、L０L１重み付き予測が使用されることはない。
【０５５５】
即ち、Bスライスでは、L0およびL1の両方の参照画素が用いられる場合があるが、Pスライスでは、L0の参照画素のみが用いられる。また、BスライスでL0L1重み付き予測が用いられなかった場合、その領域では、特殊な動き、即ち、回転や拡大縮小を伴う動きが生じている可能性が高いと考えられる。そして、回転や拡大縮小などの動きは高周波数成分の動き補償では困難である。従って、Bスライスでは、L０L１重み付き予測が使われない場合、補間フィルタ(固定補間フィルタ８１、可変補間フィルタ８３、SIFO７２２)は、Pスライスに比べて強い強度のLPF特性を有する必要がある。
【０５５６】
そのため、固定補間フィルタ８１やSIFO７２２のフィルタ係数Ａ１乃至Ｃ１として、L０L１重み付き予測が使われない場合のBスライスに最適なフィルタ係数が用意されると、Pスライスでは、高域成分が過剰に抑圧される。このことは、特にPスライスだけで構成される符号化方式において、符号化効率や画質を悪化させる要因になる。
【０５５７】
これに対して、パターンＥでは、L０L１重み付き予測が使われない場合、Bスライス以外のスライスに対するフィルタ係数Ｅ１と、Bスライスに対するフィルタ係数Ｅ２が別々に用意される。従って、BスライスとBスライス以外のそれぞれに対して最適なフィルタ係数を用いることができる。その結果、適切に参照画像に含まれるノイズを除去するとともに、参照画像の高周波成分の損失を抑制することができる。
【０５５８】
なお、本発明は、上述した固定の補間フィルタ（FIF(Fixed Interpolation Filter)、AIF、SIFO以外のフィルタを用いた画像処理装置にも適用することができる。
【０５５９】
また、固定補間フィルタ８１と可変補間フィルタ８３において、オフセットが設定されるようにしてもよい。
【符号の説明】
【０５６０】
５１  画像符号化装置，  ６６  可逆符号化部，  ７５  動き予測・補償部，    ８１  固定補間フィルタ，  ８２  フィルタ係数記憶部，  ８３  可変補間フィルタ，  ８４  フィルタ係数算出部，  ８５  動き予測部，  ８６  動き補償部，  ８７  制御部，  ９１  Ａ１フィルタ係数メモリ，  ９２  Ａ２フィルタ係数メモリ，  ９３  Ａ３フィルタ係数メモリ，  ９４  Ａ４フィルタ係数メモリ，  ９５  セレクタ，  １０１  Ａ１フィルタ係数算出部，  １０２  Ａ２フィルタ係数算出部，  １０３  Ａ３フィルタ係数算出部，  １０４  Ａ４フィルタ係数算出部，  １０５  セレクタ，  １５１  画像復号装置，  １６２  可逆復号部，  １７２  動き補償部，  １８１  固定補間フィルタ，  １８２  固定フィルタ係数記憶部，  １８３  可変補間フィルタ，  １８４  可変フィルタ係数記憶部，  １８５  動き補償処理部，  １８６  制御部，１９１  Ａ１フィルタ係数メモリ，  １９２  Ａ２フィルタ係数メモリ，  １９３  Ａ３フィルタ係数メモリ，  １９４  Ａ４フィルタ係数メモリ，  １９５  セレクタ，  ２０１  Ａ１フィルタ係数メモリ，  ２０２  Ａ２フィルタ係数メモリ，  ２０３  Ａ３フィルタ係数メモリ，  ２０４  Ａ４フィルタ係数メモリ，  ２０５  セレクタ
【図１】
2011078002.tif 000019
【図２】
2011078002.tif 000020
【図３】
2011078002.tif 000021
【図４】
2011078002.tif 000022
【図５】
2011078002.tif 000023
【図６】
2011078002.tif 000024
【図７】
2011078002.tif 000025
【図８】
2011078002.tif 000026
【図９】
2011078002.tif 000027
【図１０】
2011078002.tif 000028
【図１１】
2011078002.tif 000029
【図１２】
2011078002.tif 000030
【図１３】
2011078002.tif 000031
【図１４】
2011078002.tif 000032
【図１５】
2011078002.tif 000033
【図１６】
2011078002.tif 000034
【図１７】
2011078002.tif 000035
【図１８】
2011078002.tif 000036
【図１９】
2011078002.tif 000037
【図２０】
2011078002.tif 000038
【図２１】
2011078002.tif 000039
【図２２】
2011078002.tif 000040
【図２３】
2011078002.tif 000041
【図２４】
2011078002.tif 000042
【図２５】
2011078002.tif 000043
【図２６】
2011078002.tif 000044
【図２７】
2011078002.tif 000045
【図２８】
2011078002.tif 000046
【図２９】
2011078002.tif 000047
【図３０】
2011078002.tif 000048
【図３１】
2011078002.tif 000049
【図３２】
2011078002.tif 000050
【図３３】
2011078002.tif 000051
【図３４】
2011078002.tif 000052
【図３５】
2011078002.tif 000053
【図３６】
2011078002.tif 000054
【図３７】
2011078002.tif 000055
【図３８】
2011078002.tif 000056
【図３９】
2011078002.tif 000057
【図４０】
2011078002.tif 000058
【国際調査報告】
2011078002.tif 000059
2011078002.tif 000060
2011078002.tif 000061
2011078002.tif 000062