[本明細書におけるデプス画像(視差情報画像)の説明]
図44は、視差と奥行きについて説明する図である。
図44に示すように、被写体Mのカラー画像が、位置C1に配置されたカメラc1と位置C2に配置されたカメラc2により撮影される場合、被写体Mの、カメラc1(カメラc2)からの奥行方向の距離である奥行きZは、以下の式(a)で定義される。
なお、Lは、位置C1と位置C2の水平方向の距離(以下、カメラ間距離という)である。また、dは、カメラc1で撮影されたカラー画像上の被写体Mの位置の、カラー画像の中心からの水平方向の距離u1から、カメラc2で撮影されたカラー画像上の被写体Mの位置の、カラー画像の中心からの水平方向の距離u2を減算した値、即ち視差である。さらに、fは、カメラc1の焦点距離であり、式(a)では、カメラc1とカメラc2の焦点距離は同一であるものとしている。
式(a)に示すように、視差dと奥行きZは、一意に変換可能である。従って、本明細書では、カメラc1とカメラc2により撮影された2視点のカラー画像の視差dを表す画像と奥行きZを表す画像とを総称して、デプス画像(視差情報画像)とする。
なお、デプス画像(視差情報画像)は、視差dまたは奥行きZを表す画像であればよく、デプス画像(視差情報画像)の画素値としては、視差dまたは奥行きZそのものではなく、視差dを正規化した値、奥行きZの逆数1/Zを正規化した値等を採用することができる。
視差dを8bit(0〜255)で正規化した値Iは、以下の式(b)により求めることができる。なお、視差dの正規化ビット数は8bitに限定されず、10bit,12bitなど他のビット数にすることも可能である。
なお、式(b)において、Dmaxは、視差dの最大値であり、Dminは、視差dの最小値である。最大値Dmaxと最小値Dminは、1画面単位で設定されてもよいし、複数画面単位で設定されてもよい。
また、奥行きZの逆数1/Zを8bit(0〜255)で正規化した値yは、以下の式(c)により求めることができる。なお、奥行きZの逆数1/Zの正規化ビット数は8bitに限定されず、10bit,12bitなど他のビット数にすることも可能である。
なお、式(c)において、Zfarは、奥行きZの最大値であり、Znearは、奥行きZの最小値である。最大値Zfarと最小値Znearは、1画面単位で設定されてもよいし、複数画面単位で設定されてもよい。
このように、本明細書では、視差dと奥行きZとは一意に変換可能であることを考慮して、視差dを正規化した値Iを画素値とする画像と、奥行きZの逆数1/Zを正規化した値yを画素値とする画像とを総称して、デプス画像(視差情報画像)とする。ここでは、デプス画像(視差情報画像)のカラーフォーマットは、YUV420又はYUV400であるものとするが、他のカラーフォーマットにすることも可能である。
なお、デプス画像(視差情報画像)の画素値としてではなく、値I又は値yの情報自体に着目する場合には、値I又は値yを、デプス情報(視差情報)とする。更に、値I又は値yをマッピングしたものをデプスマップとする。
以下、図面を参照して、本技術の一実施の形態について説明するが、その前に、前段階の準備として、複数の視点の色画像、及び、視差情報画像(デプス画像)を対象とした符号化、及び、復号において、視差ベクトルの予測ベクトルを求める方法の一例であるSAD最小予測方式(SAD最小予測器)について説明する。
[SAD最小予測方式]
図1は、非特許文献1において、視差ベクトルの予測ベクトルを求める方法として提案されているSAD最小予測方式を説明する図である。
いま、複数の視点の画像として、2つの視点の色画像である視点#1の色画像C#1、及び、視点#1と異なる視点#2の色画像C#2、並びに、2つの視点の視差情報画像である視点#1の視差情報画像D#1、及び、視点#2の視差情報画像D#2があるとする。
なお、視差情報画像D#i(ここでは、i=1,2)は、色画像C#iの画素ごとの視差に関する視差情報(デプス情報)を、画素値として有する画像である。
また、ここでは、視点#1の色画像C#1、及び、視点#2の色画像C#2のうちの、視点#1の色画像C#1(のピクチャ)を参照ピクチャとして、視点#2の色画像C#2の予測画像を生成する視差予測において用いられる視差ベクトルの予測ベクトルを求めることとする。
いま、視点#2の色画像C#2の、先頭からt番目(時刻t)のピクチャである第tピクチャのあるブロック(マクロブロック)CXが、符号化(又は復号)対象の対象ブロックであるとする。
ここで、色画像C#2の対象ブロックを有するピクチャ、つまり、符号化対象のピクチャを、対象ピクチャともいう。
MVC方式では、色画像C#2の対象ブロックCXの(視差ベクトルの)予測ベクトルが、その対象ブロックCXの周辺のブロック(以下、周辺色ブロックともいう)のうちの、(ラスタスキャン順で)既に符号化(復号)済みのブロックの視差ベクトルから求められる。
すなわち、MVC方式では、対象ブロックCXの左に隣接する周辺色ブロックCA、上に隣接する周辺色ブロックCB、及び、右斜め上に隣接する周辺色ブロックCCそれぞれの視差ベクトルのメディアン(中央値)を、対象ブロックCXの予測ベクトルとして求めるベクトル予測方式(以下、メディアン予測方式、又は、メディアン予測器ともいう)によって、予測ベクトルが求められる。
なお、メディアン予測方式において、対象ブロックCXの予測ベクトルとしてのメディアンの算出は、x成分とy成分とのそれぞれについて、独立に行われる。
いま、図1に示すように、色画像C#2に、背景と、その背景の手前側に存在するオブジェクトとしての矩形の前景とが写っており、対象ブロックCXが、前景の境界部分のブロックであるとする。
すなわち、例えば、対象ブロックCXが、矩形の前景の左上のブロックの右隣のブロックであるとする。
この場合、対象ブロックCXの左に隣接する周辺色ブロックCAは、矩形の前景の左上のブロックとなる。また、対象ブロックCXの上に隣接する周辺色ブロックCB、及び、右斜め上に隣接する周辺色ブロックCCは、背景のブロックとなる。
色画像C#2において、前景と背景とでは、視差が比較的大きく異なるため、前景のブロックである対象ブロックCXと、背景のブロックである周辺色ブロックCB及びCCそれぞれとでは、視差ベクトルが大きく異なる。
また、前景のブロックである対象ブロックCXと周辺色ブロックCAとでは、視差ベクトルがほぼ同様のベクトルとなる。
したがって、この場合、前景のブロックである対象ブロックCXの予測ベクトルとしては、例えば、前景のブロックである周辺色ブロックCAを採用することで、精度の良い予測ベクトルを求めることができる。
しかしながら、メディアン予測方式(メディアン予測器)では、周辺色ブロックCA,CB、及び、CCそれぞれの視差ベクトルのメディアンが、対象ブロックCXの予測ベクトルとして求められるため、周辺色ブロックCAないしCCの中で、数が多い背景のブロックである周辺色ブロックCB及びCCの視差ベクトルが、前景のブロックである対象ブロックCXの予測ベクトルとして採用される。
この場合、対象ブロックCXの予測ベクトルの予測精度は、悪くなる。
そこで、SAD最小予測方式(SAD最小予測器)では、視差情報画像D#2の、対象ブロックCXと同一位置のブロックである同一位置ブロックDXと、その同一位置ブロックDXの周辺のブロック(以下、周辺視差ブロックともいう)のうちの、左、上、及び右斜め上に隣接するブロックDA,DB、及び、DCそれぞれとのSAD(Sum of Absolute Differences)が求められる。
そして、SAD最小予測方式では、視差情報画像D#2の周辺視差ブロック(周辺デプスブロック)DA,DB、及び、DCのうちの、同一位置ブロックDXとのSADが最小の周辺視差ブロック(以下、SAD最小視差ブロックともいう)が検出され、色画像C#2の周辺色ブロックCAないしCCのうちの、SAD最小視差ブロックと同一位置の周辺色ブロックの視差ベクトルが、対象ブロックCXの予測ベクトルとして採用される。
視差情報画像D#2において、同一位置ブロックDXと周辺視差ブロックとのSADは、同一位置ブロックDXと周辺視差ブロックとが、例えば、同一のオブジェクトのブロックである場合等の、視差がない(少ない)被写体のブロックである場合に、小さくなる。
図1の視差情報画像D#2については、同一位置ブロックDX、及び、周辺視差ブロックDAは、前景のブロックであり、周辺視差ブロックDB、及び、DCは、背景のブロックである。したがって、周辺視差ブロックDAないしDCの中では、同一位置ブロックDXと同様の前景のブロックである周辺視差ブロックDAが、同一位置ブロックDXとのSADが最小のSAD最小視差ブロックとなる。
その結果、SAD最小予測方式では、色画像C#2の周辺色ブロックCAないしCCのうちの、SAD最小視差ブロックDAと同一位置の周辺色ブロックDAの視差ベクトルが、対象ブロックCXの予測ベクトルとして採用され、精度の良い予測ベクトルを求めることができる。
以上のように、SAD最小予測方式では、視差情報画像D#2を用い、色画像C#2の周辺色ブロックCAないしCCの中で、対象ブロックCXと同一のオブジェクトが写っている周辺色ブロックCAが検出(判定)され、その周辺色ブロックCAの視差ベクトルが、対象ブロックCXの予測ベクトルに採用される。
しかしながら、SAD最小予測方式は、メディアン予測方式と同様の予測精度(性能)となることがあり、また、メディアン予測方式よりも、予測精度が悪くなることがある。
図2は、SAD最小予測方式(SAD最小予測器)が、メディアン予測方式と同様の予測精度となる場合と、メディアン予測方式(メディアン予測器)よりも、予測精度が悪くなる場合とを説明する図である。
すなわち、図2のAは、SAD最小予測方式が、メディアン予測方式と同様の予測精度となる場合を説明する図である。
図2のAでは、図1と同様に、色画像C#2に、背景と、その背景の手前側に存在するオブジェクトとしての矩形の前景とが写っている。
そして、図2のAでは、対象ブロックCXが、矩形の前景の左上のブロックになっている。
このため、対象ブロックCXの左に隣接する周辺色ブロックCA、上に隣接する周辺色ブロックCB、及び、右斜め上に隣接する周辺色ブロックCCは、いずれも、背景のブロックになっている。
以上のように、対象ブロックCXが、前景のブロックであり、周辺色ブロックCAないしCCが、背景のブロックになっている場合には、対象ブロックCXの視差ベクトルは、周辺色ブロックCAないしCCのうちのいずれの視差ベクトルとも大きく異なる(相関が低い)。
したがって、周辺色ブロックCAないしCCの視差ベクトルのメディアンを、対象ブロックCXの予測ベクトルとして求めるメディアン予測方式であっても、視差情報画像D#2のSAD最小視差ブロックと同一位置の周辺色ブロックの視差ベクトルを、対象ブロックCXの予測ベクトルとして求めるSAD最小予測方式であっても、予測ベクトルの予測精度は悪くなる。
図2のBは、SAD最小予測方式が、メディアン予測方式よりも、予測精度が悪くなる場合を説明する図である。
図2のBでは、図1と同様に、色画像C#2に、背景と、その背景の手前側に存在するオブジェクトとしての矩形の前景とが写っている。
さらに、図2のBでは、図1と同様に、対象ブロックCXが、矩形の前景の左上のブロックの右隣のブロックになっている。
したがって、対象ブロックCXの左に隣接する周辺色ブロックCAは、矩形の前景の左上のブロックになっており、対象ブロックCXの上に隣接する周辺色ブロックCB、及び、右斜め上に隣接する周辺色ブロックCCは、背景のブロックになっている。
以上のように、対象ブロックCX、及び、周辺色ブロックCAが、前景のブロックであり、周辺色ブロックCB及びCCが、背景のブロックである場合、図1で説明したように、視差情報画像D#2の周辺視差ブロックDAないしDCのうちの、周辺視差ブロックDAが、SAD最小視差ブロックとなり、SAD最小予測方式によれば、SAD最小視差ブロックDAと同一位置の周辺色ブロックCAの視差ベクトルが、対象ブロックCXの予測ベクトルとして採用される。
しかしながら、図2のBに示したように、対象ブロックCXの左に隣接する周辺色ブロックCAが、矩形の前景の左上のブロック(前景の境界に接するブロック、又は、境界を含むブロック)である場合には、オクルージョンの影響で、いずれも前景のブロックである対象ブロックCX、及び、周辺色ブロックCAそれぞれの予測ベクトルが、大きく異なるベクトル(相関のない(低い)ベクトル)になることがある。
すなわち、色画像C#2のブロック(マクロブロック)については、その色画像C#2の視点#2とは異なる、例えば、視点#1の色画像C#1(のピクチャ)を参照ピクチャとして、ME(Motion Estimation)(動き検出)が行われることによって、参照ピクチャである色画像C#1(のピクチャ)において、例えば、色画像C#2のブロックとのSADを最小にする領域としてのブロック(以下、対応ブロックともいう)との位置のずれを表すベクトルであるずれベクトルが、視差ベクトルとして検出される。
したがって、色画像C#2のブロックに写っている部分(テクスチャ)の全体が、色画像C#1にも写っていれば、色画像C#1に写っている、色画像C#2のブロックに写っている部分と同様の部分を対応ブロックとして、その対応ブロックとの位置のずれを表すずれベクトルが、視差ベクトルとして検出される。
しかしながら、特に、前景の境界部分では、視差の影響により、オクルージョン、すなわち、視点#2の色画像#2には写っているが、視点#1の色画像#1には写っていない部分(や、色画像#1には写っているが、色画像#2には写っていない部分)が生じる。
したがって、例えば、色画像C#2のブロックに写っている(前景の)部分の一部が、色画像C#1に写っていない場合があり、この場合、色画像C#2のブロックに写っている部分とは異なる部分が写っている色画像C#1のブロックが、対応ブロックとなり、視差と大きく異なるベクトルが、視差ベクトルとして検出されることがある。
図2のBでは、前景の境界にある周辺色ブロックCAについて、オクルージョンの影響により、前景の視差とは大きく異なる視差ベクトルが検出されている。
上述したように、SAD最小予測方式によれば、周辺色ブロックCAの視差ベクトルが、対象ブロックCXの予測ベクトルとして採用されるが、周辺色ブロックCAの視差ベクトルが、オクルージョンの影響により、前景の視差とは大きく異なる場合には、メディアン予測方式で求められる予測ベクトルの方が、予測精度が良いことがある。
なお、図2で説明したことは、対象ブロックCXが、前景の左上の境界部分のブロックである場合の他、例えば、前景の右上の境界部分のブロックである場合等にも生じうる。
そこで、本技術では、予測ベクトルを生成するベクトル予測方式として、視差情報画像から、対象ブロックの予測ベクトルを生成する視差情報利用予測方式を採用する。
視差情報利用予測方式(デプス情報利用予測方式)によれば、視差情報画像(デプス画像)から、対象ブロックの予測ベクトルを生成するので、平均的に、予測精度が良い予測ベクトルを求めることができる。
したがって、予測ベクトルの生成にあたっては、視差情報利用予測方式のみを採用することができる。
但し、以下では、視差情報利用予測方式に加えて、例えば、MVC方式(のメディアン予測方式)等の他のベクトル予測方式も採用し、視差情報利用予測方式を含む複数のベクトル予測方式を、適応的に切り替える方法、すなわち、視差情報利用予測方式、及び、他のベクトル予測方式のそれぞれで生成される予測ベクトルの中から、予測精度が高いと推定される予測ベクトルを、対象ブロックの処理に用いる予測ベクトルとして採用する方法について説明する。
[本技術の概要]
図3は、本技術の概要を説明する図である。
図3では、図2のAと同様に、色画像C#2に、背景と、その背景の手前側に存在するオブジェクトとしての矩形の前景とが写っており、色画像C#2の対象ブロックCXが、矩形の前景の左上のブロックになっている。
このため、対象ブロックCXの左に隣接する周辺色ブロックCA、上に隣接する周辺色ブロックCB、及び、右斜め上に隣接する周辺色ブロックCCは、いずれも、背景のブロックになっている。
以上のように、対象ブロックCXが、前景のブロックであり、周辺色ブロックCAないしCCが、背景のブロックになっている場合には、図2のAで説明したように、メディアン予測方式(メディアン予測器)であっても、SAD最小予測方式(SAD最小予測器)であっても、予測ベクトルの予測精度は悪くなることがある。
そこで、本技術では、視差情報画像D#2の、対象ブロックと同一位置のブロックである同一位置ブロックDXと、その同一位置ブロックDXの周辺のブロックのうちの、左、上、及び、右斜め上に隣接する周辺視差ブロックDA,DB、及び、DCそれぞれとの差に相当するSADが求められる。
そして、本技術では、視差情報画像D#2の周辺視差ブロックDAないしDCそれぞれと同一位置ブロックDXとのSADに基づいて、視差情報利用予測方式(視差情報利用予測器)で生成される予測ベクトルと、他のベクトル予測方式としての、例えば、メディアン予測方式(メディアン予測器)で生成される予測ベクトルとのうちの、予測精度が高いと推定される予測ベクトルが、対象ブロックCXの処理に用いる予測ベクトルとして生成される。
すなわち、本技術では、視差情報画像D#2の周辺視差ブロックDAないしDCの3個の周辺視差ブロックの中で、同一位置ブロックDXとのSADが所定の閾値以上である(又は、所定の閾値より大きい)周辺視差ブロックの数が判定される。
ここで、周辺視差ブロックと同一位置ブロックDXとのSADによれば、その周辺視差ブロックと同一位置の色画像C#2の周辺色ブロックと、対象ブロックCX(同一位置ブロックDXと同一位置の色画像C#2のブロック)とに、同一のオブジェクトが写っているかどうかを判定(推定)することができる。
すなわち、周辺視差ブロックの中で、同一位置ブロックDXとのSADが所定の閾値以上である周辺視差ブロックと同一位置の色画像C#2の周辺色ブロックには、対象ブロックCXとは異なるオブジェクトが写っていると推定される。
本技術では、同一位置ブロックDXとのSADが所定の閾値以上である周辺視差ブロックの数が、例えば、半分以上の2個以上でない場合には、メディアン予測方式で生成される予測ベクトルの予測精度に問題がないと推定し、メディアン予測方式で、対象ブロックCXの予測ベクトルが生成される。
一方、同一位置ブロックDXとのSADが所定の閾値以上である周辺視差ブロックの数が、半分以上の2個以上である場合には、視差情報利用予測方式で生成される予測ベクトルの方が、メディアン予測方式で生成される予測ベクトルよりも、予測精度が高いと推定し、視差情報利用予測方式で、対象ブロックCXの予測ベクトルが生成される。
ここで、視差情報利用予測方式では、視差情報画像D#2から、色画像C#2の対象ブロックの予測ベクトルが生成される。
すなわち、視差情報利用予測方式では、視差情報画像D#2の、対象ブロックと同一位置のブロック(同一位置ブロック)DXの画素値である視差情報を用いて、所定の演算を行うことにより、予測ベクトルが生成される。
[本技術を適用した多視点画像エンコーダの一実施の形態]
図4は、本技術を適用した多視点画像エンコーダの一実施の形態の構成例を示すブロック図である。
図4の多視点画像エンコーダは、例えば、MVC方式を利用して、複数の視点の画像を符号化するエンコーダであり、以下では、MVC方式と同様の処理については、適宜、説明を省略する。
なお、多視点画像エンコーダは、MVC方式を利用するエンコーダに限定されるものではない。
また、以下では、複数の視点の画像として、2つのビューの色画像である視点#1の色画像C#1、及び、視点#2の色画像C#2、並びに、その2つのビューの視差情報画像である視点#1の視差情報画像D#1、及び、視点#2の視差情報画像D#2を採用することとする。
さらに、例えば、視点#1の色画像C#1、及び、視差情報画像D#1を、ベースビューの画像とし、残りの視点#2の色画像C#2、及び、視差情報画像D#2を、ディペンデントビューの画像として扱うこととする。
なお、複数の視点の画像としては、3つ以上の視点の色画像、及び、視差情報画像を採用することができ、その3つ以上の視点の色画像、及び、視差情報画像のうちの、任意の1つの視点の色画像、及び、視差情報画像を、ベースビューの画像とし、残りの視点の色画像、及び、視差情報画像を、ディペンデントビューの画像として扱うことができる。
図4において、多視点画像エンコーダは、エンコーダ11,12,21,22,DPB31、及び、多重化部32を有する。
エンコーダ11には、視点#1の色画像C#1と、視差関連情報(デプス関連情報)とが供給される。
ここで、視差関連情報(デプス関連情報)は、視差情報(デプス情報)のメタデータであり、その詳細については、後述する。
エンコーダ11は、視点#1の色画像C#1を、必要に応じて、視差関連情報を用いて符号化し、その結果得られる視点#1の色画像C#1の符号化データを、多重化部32に供給する。
エンコーダ12には、視点#2の色画像C#2と、視差関連情報とが供給される。
エンコーダ12は、視点#2の色画像C#2を、必要に応じて、視差関連情報を用いて符号化し、その結果得られる視点#2の色画像C#2の符号化データを、多重化部32に供給する。
エンコーダ21には、視点#1の視差情報画像D#1と、視差関連情報とが供給される。
エンコーダ21は、視点#1の視差情報画像D#1を、必要に応じて、視差関連情報を用いて符号化し、その結果得られる視点#1の視差情報画像D#1の符号化データを、多重化部32に供給する。
エンコーダ22には、視点#2の視差情報画像D#2と、視差関連情報とが供給される。
エンコーダ22は、視点#2の視差情報画像D#2を、必要に応じて、視差関連情報を用いて符号化し、その結果得られる視点#2の視差情報画像D#2の符号化データを、多重化部32に供給する。
DPB31は、エンコーダ11,12,21、及び、22それぞれで、符号化対象の画像を符号化し、ローカルデコードすることにより得られるローカルデコード後の画像(デコード画像)を、予測画像の生成時に参照する参照ピクチャ(の候補)として一時記憶する。
すなわち、エンコーダ11,12,21、及び、22は、符号化対象の画像を予測符号化する。そのため、エンコーダ11,12,21、及び、22は、予測符号化に用いる予測画像を生成するのに、符号化対象の画像を符号化した後、ローカルデコードを行って、デコード画像を得る。
DPB31は、エンコーダ11,12,21、及び、22それぞれで得られるデコード画像を一時記憶する、いわば共用のバッファであり、エンコーダ11,12,21、及び、22それぞれは、DPB31に記憶されたデコード画像から、符号化対象の画像を符号化するのに参照する参照ピクチャを選択する。そして、エンコーダ11,12,21、及び、22それぞれは、参照ピクチャを用いて、予測画像を生成し、その予測画像を用いて、画像の符号化(予測符号化)を行う。
DPB31は、エンコーダ11,12,21、及び、22で共用されるので、エンコーダ11,12,21、及び、22それぞれは、自身で得られたデコード画像の他、他のエンコーダで得られたデコード画像をも参照することができる。
多重化部32は、エンコーダ11,12,21、及び、22のそれぞれからの符号化データを多重化し、その結果得られる多重化データを出力する。
多重化部32が出力する多重化データは、図示せぬ記録媒体に記録され、又は、図示せぬ伝送媒体を介して伝送される。
[多視点画像生成装置]
図5は、図4の多視点画像エンコーダにおいて符号化の対象となる複数の視点の画像を生成する多視点画像生成装置の構成例を示すブロック図である。
多視点画像生成装置では、複数の視点としての、例えば、2つの視点の画像を撮影するために、2つのカメラ41及び42が、異なる視点の色画像を撮影することができる位置に設置されている。
ここで、本実施の形態では、説明を簡単にするために、カメラ41及び42は、ある水平面上の一直線上の異なる位置に、その直線に垂直な方向に光軸を向けて配置されていることとする。
カメラ41は、そのカメラ41が配置されている位置で、被写体を撮影し、動画像である色画像C#1を出力する。
さらに、カメラ41は、他の任意の1つのカメラであるカメラ42の位置を、基準の視点として、色画像C#1の各画素について、基準の視点に対する視差を表す視差ベクトルd1を出力する。
カメラ42は、そのカメラ42が配置されている位置で、被写体を撮影し、動画像である色画像C#2を出力する。
さらに、カメラ42は、他の任意の1つのカメラであるカメラ41の位置を、基準の視点として、色画像C#2の各画素について、基準の視点に対する視差を表す視差ベクトルd2を出力する。
ここで、色画像の横(水平)方向を、x軸とし、縦(垂直)方向を、y軸とする2次元平面を、色画像平面ということとすると、カメラ41及び42は、色画像平面に直交する平面(水平面)上の一直線上に配置されている。したがって、視差ベクトルd1及びd2は、y成分が0で、x成分が、カメラ41及び42の水平方向の位置関係等に対応する値のベクトルとなる。
なお、カメラ41及び42が出力する視差ベクトル(視差)d1及びd2を、色画像C#1及びC#2を用いたMEによって求められる視差を表す視差ベクトルと区別するために、以下、撮影視差ベクトルd1及びd2ともいう。
カメラ41が出力する色画像C#1、及び、撮影視差ベクトルd1、並びに、カメラ42が出力する色画像C#2、及び、撮影視差ベクトルd2は、多視点画像情報生成部43に供給される。
多視点画像情報生成部43は、カメラ41及び42からの色画像C#1を、そのまま出力する。
また、多視点画像情報生成部43は、カメラ41からの撮影視差ベクトルd1から、色画像#1の画素ごとの視差に関する視差情報を求め、その視差情報を、画素値として有する視差情報画像D#1を生成して出力する。
さらに、多視点画像情報生成部43は、カメラ42からの撮影視差ベクトルd2から、色画像#2の画素ごとの視差に関する視差情報を求め、その視差情報を、画素値として有する視差情報画像D#2を生成して出力する。
上述したように、視差情報(デプス情報)としては、例えば、撮影視差ベクトルに対応する値である視差値(値I)や、被写体までの距離(奥行き)を表す奥行きZの正規化後の値yがある。
いま、視差情報画像の画素値が、例えば、8ビットで表される0ないし255の整数値をとることとする。さらに、撮影視差ベクトル(のx成分)をdで表すとともに、(例えば、ピクチャや、1つのコンテンツとしての動画像等で)撮影視差ベクトル(のx成分)の最大値と最小値を、それぞれ、dmaxとdminと表すこととする。
この場合、視差値ν(値I)は、上述したように、例えば、撮影視差ベクトル(のx成分)dと、その最大値dmax(Dmax)及び最小値dmin(Dmin)を用いて、例えば、式(1)に従って求められる。
ν=255×(d-dmin)/(dmax-dmin)
・・・(1)
なお、式(1)の視差値νは、式(2)に従って、撮影視差ベクトル(のx成分)dに変換することができる。
d=ν×(dmax-dmin)/255+dmin
・・・(2)
また、奥行きZは、カメラ41及び42が配置されている直線上から、被写体までの距離を表す。
カメラ41については(カメラ42についても同様)、カメラ41と一直線上に配置されているカメラ42との距離(基準の視点との距離)である基線長をLと、カメラ41の焦点距離をfと、それぞれ表すこととすると、奥行きZは、撮影視差ベクトル(のx成分)d(d1)を用い、式(3)に従って求めることができる。
Z=(L/d)×f
・・・(3)
視差情報である視差値νと奥行きZとは、式(1)ないし式(3)に従って相互に変換することができるので、等価な情報である。
ここで、以下では、画素値として視差値νを有する視差情報画像(デプス画像)を、視差画像ともいい、画素値として、奥行きZの正規化後の値yを有する画像を、奥行き画像ともいう。
なお、以下では、視差情報画像として、視差画像、及び、奥行き画像のうちの、例えば、視差画像を用いることとするが、視差情報画像としては、奥行き画像を用いることも可能である。
多視点画像情報生成部43は、以上の色画像#1及び#2、並びに、視差画像D#1及び#2の他に、視差関連情報を出力する。
すなわち、多視点画像情報生成部43には、外部から、カメラ41と42との距離(カメラ41及び42それぞれと、基準の視点との距離)である基線長L、及び、焦点距離fが供給される。
多視点画像情報生成部43は、カメラ41からの撮影視差ベクトルd1、及び、カメラ41からの撮影視差ベクトルd2のそれぞれについて、撮影視差ベクトル(のx成分)dの最大値dmax及び最小値dminを検出する。
そして、多視点画像情報生成部43は、撮影視差ベクトルdの最大値dmax及び最小値dmin、並びに、基線長L、及び、焦点距離fを、視差関連情報として出力する。
多視点画像情報生成部43が出力する色画像C#1及びC#2、視差画像D#1及びD#2、並びに、視差関連情報は、図4の多視点画像エンコーダに供給される。
なお、ここでは、説明を簡単にするため、カメラ41及び42を、色画像平面に直交する同一の平面上の一直線上に配置し、撮影視差ベクトルd(d1及びd2)が、y成分が0のベクトルであることとしたが、カメラ41及び42それぞれは、色画像平面に直交する異なる平面上に配置することができる。この場合、撮影視差ベクトルdは、x成分及びy成分とも、0以外の値になりうるベクトルとなる。
[MVC方式の概要]
図6は、MVC方式の予測符号化において、予測画像を生成するときに参照するピクチャを説明する図である。
いま、ベースビューの画像である視点#1の画像のピクチャを、(表示)時刻順に、p11,p12,p13,・・・と表すとともに、ディペンデントビューの画像である視点#2の画像のピクチャを、時刻順に、p21,p22,p23,・・・と表すこととする。
ベースビューのピクチャである、例えば、ピクチャp12は、そのベースビューのピクチャである、例えば、ピクチャp11やp13を、必要に応じて参照して、予測符号化される。
すなわち、ベースビューのピクチャp12については、そのベースビューの他の時刻のピクチャであるピクチャp11やp13のみを参照し、予測(予測画像の生成)を行うことができる。
また、ディペンデントビューのピクチャである、例えば、ピクチャp22は、そのディペンデントビューのピクチャである、例えば、ピクチャp21やp23、さらには、他のビューであるベースビューのピクチャp12を、必要に応じて参照して、予測符号化される。
すなわち、ディペンデントビューのピクチャp22は、そのディペンデントビューの他の時刻のピクチャであるピクチャp21やp23の他、他のビューのピクチャであるベースビューのピクチャp12を参照し、予測を行うことができる。
ここで、符号化対象のピクチャと同一のビューの(他の時刻の)ピクチャを参照して行われる予測を、時間予測ともいい、符号化対象のピクチャと異なるビューのピクチャを参照して行われる予測を、視差予測ともいう。
以上のように、MVC方式では、ベースビューのピクチャについては、時間予測のみを行うことができ、ディペンデントビューのピクチャについては、時間予測と視差予測を行うことができる。
なお、MVC方式において、視差予測において参照する、符号化対象のピクチャと異なるビューのピクチャは、符号化対象のピクチャと同一の時刻のピクチャでなければならない。
図4の多視点画像エンコーダを構成するエンコーダ11,12,21、及び、22は、原則として、MVC方式に従って、予測(予測画像の生成)を行う。
図7は、MVC方式でのピクチャの符号化(及び復号)順を説明する図である。
図6と同様に、ベースビューの画像である視点#1の画像のピクチャを、(表示)時刻順に、p11,p12,p13,・・・と表すとともに、ディペンデントビューの画像である視点#2の画像のピクチャを、時刻順に、p21,p22,p23,・・・と表すこととする。
いま、説明を簡単にするために、各ビューのピクチャが、時刻順に符号化されることとすると、まず、ベースビューの最初の時刻t=1のピクチャp11が符号化され、その後、ディペンデントビューの、同一時刻t=1のピクチャp21が符号化される。
ディペンデントビューの、同一時刻t=1のピクチャ(すべて)の符号化が終了すると、ベースビューの次の時刻t=2のピクチャp12が符号化され、その後、ディペンデントビューの、同一時刻t=2のピクチャp22が符号化される。
以下、同様の順番で、ベースビューのピクチャ、及び、ディペンデントビューのピクチャは、符号化されていく。
図4の多視点画像エンコーダを構成するエンコーダ11,12,21、及び、22では、MVC方式に従った順番で、ピクチャが符号化される。
[エンコーダ11の構成例]
図8は、図4のエンコーダ11の構成例を示すブロック図である。
なお、図4のエンコーダ21及び22も、エンコーダ11と同様に構成され、例えば、MVC方式に従って、画像の符号化を行う。
図8において、エンコーダ11は、A/D(Analog/Digital)変換部111、画面並び替えバッファ112、演算部113、直交変換部114、量子化部115、可変長符号化部116、蓄積バッファ117、逆量子化部118、逆直交変換部119、演算部120、デブロッキングフィルタ121、画面内予測部122、インター予測部123、及び、予測画像選択部124を有する。
A/D変換部111には、符号化対象の画像(動画像)であるビュー#1の色画像C#1のピクチャが、表示順に、順次、供給される。
A/D変換部111は、そこに供給されるピクチャが、アナログ信号である場合には、そのアナログ信号をA/D変換し、画面並び替えバッファ112に供給する。
画面並び替えバッファ112は、A/D変換部111からのピクチャを一時記憶し、あらかじめ決められたGOP(Group of Pictures)の構造に応じて、ピクチャを読み出すことで、ピクチャの並びを、表示順から、符号化順(復号順)に並び替える並び替えを行う。
画面並び替えバッファ112から読み出されたピクチャは、演算部113、画面内予測部122、及び、インター予測部123に供給される。
演算部113には、画面並び替えバッファ112から、ピクチャが供給される他、予測画像選択部124から、画面内予測部122、又は、インター予測部123で生成された予測画像が供給される。
演算部113は、画面並び替えバッファ112から読み出されたピクチャを、符号化対象の対象ピクチャとし、さらに、対象ピクチャを構成するマクロブロックを、順次、符号化対象の対象ブロックとする。
そして、演算部113は、対象ブロックの画素値から、予測画像選択部124から供給される予測画像の画素値を減算した減算値を、必要に応じて演算し、直交変換部114に供給する。
直交変換部114は、演算部113からの対象ブロック(の画素値、又は、予測画像が減算された残差)に対して、離散コサイン変換や、カルーネン・レーベ変換等の直交変換を施し、その結果得られる変換係数を、量子化部115に供給する。
量子化部115は、直交変換部114から供給される変換係数を量子化し、その結果得られる量子化値を、可変長符号化部116に供給する。
可変長符号化部116は、量子化部115からの量子化値に対して、可変長符号化(例えば、CAVLC(Context-Adaptive Variable Length Coding)等)や、算術符号化(例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)等)等の可逆符号化を施し、その結果得られる符号化データを、蓄積バッファ117に供給する。
なお、可変長符号化部116には、量子化部115から量子化値が供給される他、画面内予測部122やインター予測部123から、符号化データのヘッダに含めるヘッダ情報が供給される。
可変長符号化部116は、画面内予測部122やインター予測部123からの、ヘッダ情報を符号化し、符号化データのヘッダに含める。
蓄積バッファ117は、可変長符号化部116からの符号化データを一時記憶し、所定のデータレートで出力する。
蓄積バッファ117から出力された符号化データは、多重化部32(図4)に供給される。
量子化部115で得られた量子化値は、可変長符号化部116に供給される他、逆量子化部118にも供給され、逆量子化部118、逆直交変換部119、及び、演算部120において、ローカルデコードが行われる。
すなわち、逆量子化部118は、量子化部115からの量子化値を、変換係数に逆量子化し、逆直交変換部119に供給する。
逆直交変換部119は、逆量子化部118からの変換係数を逆直交変換し、演算部120に供給する。
演算部120は、逆直交変換部119から供給されるデータに対して、必要に応じて、予測画像選択部124から供給される予測画像の画素値を加算することで、対象ブロックを復号(ローカルデコード)したデコード画像を得て、デブロッキングフィルタ121に供給する。
デブロッキングフィルタ121は、演算部120からのデコード画像をフィルタリングすることにより、デコード画像に生じたブロック歪を除去(低減)し、DPB31(図4)に供給する。
ここで、DPB31は、デブロッキングフィルタ121からのデコード画像、すなわち、エンコーダ11において符号化されてローカルデコードされた色画像C#1のピクチャを、時間的に後に行われる予測符号化(演算部113で予測画像の減算が行われる符号化)に用いる予測画像を生成するときに参照する参照ピクチャ(の候補)として記憶する。
図4で説明したように、DPB31は、エンコーダ11,12,21、及び、22で共用されるので、エンコーダ11において符号化されてローカルデコードされた色画像C#1のピクチャの他、エンコーダ12において符号化されてローカルデコードされた色画像C#2のピクチャ、エンコーダ21において符号化されてローカルデコードされた視差画像D#1のピクチャ、及び、エンコーダ22において符号化されてローカルデコードされた視差画像D#2のピクチャも記憶する。
なお、逆量子化部118、逆直交変換部119、及び、演算部120によるローカルデコードは、例えば、参照ピクチャとなることが可能な参照可能ピクチャであるIピクチャ、Pピクチャ、及び、Bsピクチャを対象として行われ、DPB31では、Iピクチャ、Pピクチャ、及び、Bsピクチャのデコード画像が記憶される。
画面内予測部122は、対象ピクチャが、イントラ予測(画面内予測)され得るIピクチャ、Pピクチャ、又は、Bピクチャ(Bsピクチャを含む)である場合に、DPB31から、対象ピクチャのうちの、既にローカルデコードされている部分(デコード画像)を読み出す。そして、画面内予測部122は、DPB31から読み出した、対象ピクチャのうちのデコード画像の一部を、画面並び替えバッファ112から供給される対象ピクチャの対象ブロックの予測画像とする。
さらに、画面内予測部122は、予測画像を用いて対象ブロックを符号化するのに要する符号化コスト、すなわち、対象ブロックの、予測画像に対する残差等を符号化するのに要する符号化コストを求め、予測画像とともに、予測画像選択部124に供給する。
インター予測部123は、対象ピクチャが、インター予測され得るPピクチャ、又は、Bピクチャ(Bsピクチャを含む)である場合に、DPB31から、対象ピクチャより前に符号化されてローカルデコードされた1以上のピクチャを、参照ピクチャとして読み出す。
また、インター予測部123は、画面並び替えバッファ112からの対象ピクチャの対象ブロックと、参照ピクチャとを用いたMEによって、対象ブロックと、参照ピクチャの、対象ブロックに対応する対応ブロック(例えば、対象ブロックとのSADを最小にするブロック)とのずれ(視差、動き)を表すずれベクトルを検出する。
ここで、参照ピクチャが、対象ピクチャと同一のビューのピクチャである場合、対象ブロックと参照ピクチャとを用いたMEによって検出されるずれベクトルは、対象ブロックと、参照ピクチャとの間の動き(時間的なずれ)を表す動きベクトルとなる。
また、参照ピクチャが、対象ピクチャと異なるビューのピクチャである場合、対象ブロックと参照ピクチャとを用いたMEによって検出されるずれベクトルは、対象ブロックと、参照ピクチャとの間の視差(空間的なずれ)を表す視差ベクトルとなる。
以上のように、MEによって求められる視差ベクトルを、図5で説明した撮影視差ベクトルと区別するために、計算視差ベクトルともいう。
本実施の形態では、説明を簡単にするため、撮影視差ベクトルは、y成分が0のベクトルであることとしたが、MEによって検出される計算視差ベクトルは、対象ブロックと、参照ピクチャの、対象ブロックとのSAD等を最小にするブロック(対応ブロック)とのずれ(位置関係)を表すので、y成分が0になるとは限らない。
インター予測部123は、対象ブロックのずれベクトルに従って、DPB31からの参照ピクチャのMC(Motion Compensation)であるずれ補償(動き分のずれを補償する動き補償、又は、視差分のずれを補償する視差補償)を行うことで、予測画像を生成する。
すなわち、インター予測部123は、参照ピクチャの、対象ブロックの位置から、その対象ブロックのずれベクトルに従って移動した(ずれた)位置のブロック(領域)である対応ブロックを、予測画像として取得する。
さらに、インター予測部123は、対象ブロックを予測画像を用いて符号化するのに要する符号化コストを、後述するマクロブロックタイプ等が異なるインター予測モードごとに求める。
そして、インター予測部123は、符号化コストが最小のインター予測モードを、最適なインター予測モードである最適インター予測モードとして、その最適インター予測モードで得られた予測画像と符号化コストとを、予測画像選択部124に供給する。
ここで、ずれベクトル(視差ベクトル、動きベクトル)に基づいて、予測画像を生成することを、ずれ予測(視差予測、動き予測)、又は、ずれ補償(視差補償、動き補償)ともいう。なお、ずれ予測には、必要に応じて、ずれベクトルの検出が含まれる。
予測画像選択部124は、画面内予測部122、及び、インター予測部123それぞれからの予測画像のうちの、符号化コストが小さい方を選択し、演算部113、及び、120に供給する。
なお、画面内予測部122は、イントラ予測に関する情報を、ヘッダ情報として、可変長符号化部116に供給し、インター予測部123は、インター予測に関する情報(ずれベクトルの情報や、参照ピクチャに割り当てられている参照インデクス等)を、ヘッダ情報として、可変長符号化部116に供給する。
可変長符号化部116は、画面内予測部122、及び、インター予測部123それぞれからのヘッダ情報のうちの、符号化コストが小さい予測画像が生成された方からのヘッダ情報を選択し、符号化データのヘッダに含める。
[マクロブロックタイプ]
図9は、MVC(AVC)方式のマクロブロックタイプを説明する図である。
MVC方式では、対象ブロックとなるマクロブロックは、横×縦が16×16画素のブロックであるが、ME(及び、予測画像の生成)は、マクロブロックをパーティションに分割して、パーティションごとに行うことができる。
すなわち、MVC方式では、マクロブロックを、16×16画素、16×8画素、8×16画素、又は8×8画素のうちのいずれかのパーティションに分割して、各パーティションごとに、MEを行って、すれベクトル(動きベクトル、又は、計算視差ベクトル)を検出することができる。
また、MVC方式では、8×8画素のパーティションは、さらに、8×8画素、8×4画素、4×8画素、又は4×4画素のうちのいずれかのサブパーティションに分割し、各サブパーティションごとに、MEを行って、すれベクトル(動きベクトル、又は、計算視差ベクトル)を検出することができる。
マクロブロックタイプは、マクロブロックを、どのようなパーティション(さらには、サブパーティション)に分割するかを表す。
インター予測部123(図8)のインター予測では、各マクロブロックタイプの符号化コストが、各インター予測モードの符号化コストとして算出され、符号化コストが最小のインター予測モード(マクロブロックタイプ)が、最適インター予測モードとして選択される。
[予測ベクトル(PMV(Predicted Motion Vector))]
図10は、MVC(AVC)方式の予測ベクトル(PMV)を説明する図である。
インター予測部123(図8)のインター予測では、MEによって、対象ブロックのずれベクトル(動きベクトル、又は、計算視差ベクトル)が検出され、そのずれベクトルを用いて、予測画像が生成される。
ずれベクトルは、復号側において、画像を復号するのに必要であるため、ずれベクトルの情報を符号化して、符号化データに含める必要があるが、ずれベクトルを、そのまま符号化すると、ずれベクトルの符号量が多くなって、符号化効率が劣化することがある。
すなわち、MVC方式では、図9に示したように、マクロブロックが、8×8画素のパーティションに分割され、さらに、その8×8画素のパーティションそれぞれが、4×4画素のサブパーティションに分割されることがある。この場合、1つのマクロブロックは、最終的には、4×4個のサブパーティションに分割されるため、1つのマクロブロックに対して、16(=4×4)個のずれベクトルが生じることがあり、ずれベクトルを、そのまま符号化すると、ずれベクトルの符号量が多くなって、符号化効率が劣化する。
そこで、MVC(AVC)方式では、ずれベクトルを予測するベクトル予測が行われ、そのベクトル予測によって得られる予測ベクトルに対する、ずれベクトルの残差(残差ベクトル)が符号化される。
例えば、符号化対象の対象ブロックXであるマクロブロックが、16×16画素のパーティションに分割される(対象ブロックXが、そのまま、パーティションとされる)場合、そのパーティションである対象ブロックXについては、メディアン予測方式で、予測ベクトルPMVXが生成される。
すなわち、16×16画素のパーティションについては、予測ベクトルPMVXが、対象ブロックXの左に隣接するマクロブロックAのずれベクトルmvA、上に隣接するマクロブロックBのずれベクトルmvB、及び、右斜め上に隣接するマクロブロックCのずれベクトルmvCから、式(4)に従って算出される。
PMVX=med(mvA,mvB,mvC)
・・・(4)
ここで、式(4)において、med()は、かっこ内の値のメディアン(中央値)を表す。
なお、対象ブロックXが、ピクチャの右端のマクロブロックである場合等、マクロブロックCのずれベクトルmvCが、利用可能でない(unavailableである)場合には、ずれベクトルmvCに代えて、対象ブロックXの左斜め上に隣接するマクロブロックのずれベクトルを用いて、予測ベクトルPMVXが算出される。
また、式(4)に従った予測ベクトルPMVXの算出は、x成分とy成分とのそれぞれについて、独立に行われる。
例えば、符号化対象の対象ブロックXであるマクロブロックが、8×8画素の4つのパーティションX1,X2,X3、及び、X4に分割される場合、例えば、右上のパーティションX2については、メディアン予測方式で、すなわち、パーティションX2の左に隣接するパーティションX1のずれベクトル、上に隣接するマクロブロックBのずれベクトル、及び、右斜め上に隣接するマクロブロックCのずれベクトルのメディアンが、予測ベクトルとして算出される。
その他のパーティションX1,X3、及び、X4については、MVC(AVC)方式に規定されているように、予測ベクトルが算出される。
例えば、符号化対象の対象ブロックXであるマクロブロックが、8×16画素の2つの左右のパーティションXL及びXRに分割される場合、左のパーティションXLについては、その左のパーティションXLの左に隣接するマクロブロックAのずれベクトルが、そのまま、予測ベクトルとされる。
また、右のパーティションXRについては、その右のパーティションXLの右上に隣接するマクロブロックCのずれベクトルが、そのまま、予測ベクトルとされる。
例えば、符号化対象の対象ブロックXであるマクロブロックが、16×8画素の2つの上下のパーティションXU及びXDに分割される場合、下のパーティションXDについては、その下のパーティションXDの左に隣接するマクロブロックAのずれベクトルが、そのまま、予測ベクトルとされる。
また、上のパーティションXUについては、その上のパーティションXUの上に隣接するマクロブロックBのずれベクトルが、そのまま、予測ベクトルとされる。
インター予測部123(図8)では、対象ブロックXのずれベクトルmvXと、その予測ベクトルPMVXとの差分である残差ベクトルmvX−PMVが、ヘッダ情報に含められる。
図11は、MVC(AVC)方式で生成される予測ベクトルと参照インデクスとの関係を説明する図である。
MVC方式で生成される予測ベクトルは、対象ブロックの周辺のマクロブロックの予測画像の生成に用いられる参照ピクチャに割り当てられている参照インデクス(以下、予測用の参照インデクスともいう)によって異なる。
ここで、MVC(AVC)方式の参照ピクチャ(となりうるピクチャ)と、参照インデクスについて説明する。
AVC方式では、予測画像を生成するときに、複数のピクチャを、参照ピクチャとすることができる。
そして、AVC方式のコーデックでは、参照ピクチャは、デコード(ローカルデコード)後に、DPBと呼ばれるバッファに記憶される。
DPBでは、短期間に参照されるピクチャは、短時間参照ピクチャ(used for short-term reference)として、長期間にわたって参照されるピクチャは、長時間参照ピクチャ(used for long-term reference)として、参照されないピクチャは、非参照ピクチャ(unused for reference)として、それぞれマーキングされる。
DPBを管理する管理方式としては、移動窓メモリ管理方式(Sliding window process)と、適応メモリ管理方式(Adaptive memory control process)との2種類がある。
移動窓メモリ管理方式では、DPBが、FIFO(First In First Out)方式で管理され、DPBに記憶されたピクチャは、frame_numの小さいピクチャから順に開放される(非参照ピクチャとなる)。
すなわち、移動窓メモリ管理方式では、I(Intra)ピクチャ、P(Predictive)ピクチャ、及び、参照可能なB(Bi-directional Predictive)ピクチャであるBsピクチャは、短時間参照ピクチャとして、DPBに記憶される。
そして、DPBが参照ピクチャ(となりうる参照ピクチャ)を記憶することができるだけの参照ピクチャが記憶された後は、DPBに記憶された短時間参照ピクチャの中で、最も早く(古い)短時間参照ピクチャが開放される。
なお、DPBに、長時間参照ピクチャが記憶されている場合、移動窓メモリ管理方式は、DPBに記憶されている長時間参照ピクチャには、影響しない。すなわち、移動窓メモリ管理方式において、参照ピクチャの中で、FIFO方式で管理されるのは、短時間参照ピクチャだけである。
適応メモリ管理方式では、MMCO(Memory management control operation)と呼ばれるコマンドを用いて、DPBに記憶されるピクチャが管理される。
MMCOコマンドによれば、DPBに記憶される参照ピクチャを対象として、短時間参照ピクチャを非参照ピクチャに設定することや、短時間参照ピクチャに対し、長時間参照ピクチャを管理するための参照インデクスであるlong-term frame indexを割り当てることで、短時間参照ピクチャを長時間参照ピクチャに設定すること、long-term frame indexの最大値を設定すること、すべての参照ピクチャを非参照ピクチャに設定すること等を行うことができる。
AVC方式では、DPBに記憶された参照ピクチャの動き補償(ずれ補償)を行うことで、予測画像を生成するインター予測が行われるが、Bピクチャ(Bsピクチャを含む)のインター予測には、最大で、2ピクチャの参照ピクチャを用いることができる。その2ピクチャの参照ピクチャを用いるインター予測は、それぞれ、L0(List 0)予測、及び、L1(List 1)予測と呼ばれる。
Bピクチャ(Bsピクチャを含む)については、インター予測として、L0予測、若しくは、L1予測、又は、L0予測とL1予測との両方が用いられる。Pピクチャについては、インター予測として、L0予測だけが用いられる。
インター予測において、予測画像の生成に参照する参照ピクチャは、参照リスト(Reference Picture List)により管理される。
参照リストでは、予測画像の生成に参照する参照ピクチャ(となりうる参照ピクチャ)を指定するためのインデクスである参照インデクス(Reference Index)が、DPBに記憶された参照ピクチャ(になりうるピクチャ)に割り当てられる。
対象ピクチャが、Pピクチャである場合、上述したように、Pピクチャについては、インター予測として、L0予測だけが用いられるので、参照インデクスの割り当ては、L0予測についてだけ行われる。
また、対象ピクチャが、Bピクチャ(Bsピクチャを含む)である場合、上述したように、Bピクチャについては、インター予測として、L0予測とL1予測との両方が用いられることがあるので、参照インデクスの割り当ては、L0予測とL1予測との両方について行われる。
ここで、L0予測についての参照インデクスを、L0インデクスともいい、L1予測についての参照インデクスを、L1インデクスともいう。
対象ピクチャが、Pピクチャである場合、AVC方式のデフォルト(既定値)では、DPBに記憶された参照ピクチャに対し、復号順が後の参照ピクチャほど、値が小さい参照インデクス(L0インデクス)が割り当てられる。
参照インデクスは、0以上の整数値であり、最小値は、0である。したがって、対象ピクチャが、Pピクチャである場合には、対象ピクチャの直前に復号された参照ピクチャに、L0インデクスとして、0が割り当てられる。
対象ピクチャが、Bピクチャ(Bsピクチャを含む)である場合、AVCのデフォルトでは、DPBに記憶された参照ピクチャに対し、POC(Picture Order Count)順、つまり、表示順に、参照インデクス(L0インデクス、及び、L1インデクス)が割り当てられる。
すなわち、L0予測については、表示順で、対象ピクチャの時間的に前の参照ピクチャに対し、対象ピクチャに近い参照ピクチャほど、値が小さいL0インデクスが割り当てられ、その後、表示順で、対象ピクチャの時間的に後の参照ピクチャに対し、対象ピクチャに近い参照ピクチャほど、値が小さいL0インデクスが割り当てられる。
また、L1予測については、表示順で、対象ピクチャの時間的に後の参照ピクチャに対し、対象ピクチャに近い参照ピクチャほど、値が小さいL1インデクスが割り当てられ、その後、表示順で、対象ピクチャの時間的に前の参照ピクチャに対し、対象ピクチャに近い参照ピクチャほど、値が小さいL1インデクスが割り当てられる。
なお、以上のAVC方式のデフォルトでの参照インデクス(L0インデクス、及び、L1インデクス)の割り当ては、短時間参照ピクチャを対象として行われる。長時間参照ピクチャへの参照インデクスの割り当ては、短時間参照ピクチャに、参照インデクスが割り当てられた後に行われる。
したがって、AVCのデフォルトでは、長時間参照ピクチャには、短時間参照ピクチャよりも大きい値の参照インデクスが割り当てられる。
AVC方式において、参照インデクスの割り当てとしては、以上のようなデフォルトの方法で割り当てを行う他、Reference Picture List Reorderingと呼ばれるコマンド(以下、RPLRコマンドともいう)を用いて、任意の割り当てを行うことができる。
なお、RPLRコマンドを用いて、参照インデクスの割り当てが行われた後、参照インデクスが割り当てられていない参照ピクチャがある場合には、その参照ピクチャには、参照インデクスが、デフォルトの方法で割り当てられる。
MVC(AVC)方式では、対象ブロックXのずれベクトルmvXの予測ベクトルPMVXは、図11に示すように、対象ブロックXの左に隣接するマクロブロックA、上に隣接するマクロブロックB、及び、右斜め上に隣接するマクロブロックCそれぞれの予測用の参照インデクス(マクロブロックA,B、及び、Cそれぞれの予測画像の生成に用いられた参照ピクチャに割り当てられている参照インデクス)によって異なる方法で求められる。
すなわち、いま、対象ブロックXの予測用の参照インデクスref_idxが、例えば、0であるとする。
図11のAに示すように、対象ブロックXに隣接する3つのマクロブロックAないしCの中に、予測用の参照インデクスref_idxが対象ブロックXと同一の0であるマクロブロックが、1つだけ存在する場合には、その1つのマクロブロック(予測用の参照インデクスref_idxが0のマクロブロック)のずれベクトルが、対象ブロックXのずれベクトルmvXの予測ベクトルPMVXとされる。
ここで、図11のAでは、対象ブロックXに隣接する3つのマクロブロックAないしCのうちの、マクロブロックBだけが、予測用の参照インデクスref_idxが0のマクロブロックになっており、そのため、マクロブロックAのずれベクトルmvBが、対象ブロックX(のずれベクトルmvX)の予測ベクトルPMVXとされる。
また、図11のBに示すように、対象ブロックXに隣接する3つのマクロブロックAないしCの中に、予測用の参照インデクスref_idxが対象ブロックXと同一の0であるマクロブロックが、2つ以上存在する場合には、その、予測用の参照インデクスref_idxが0の2つ以上のマクロブロックのずれベクトルのメディアンが、対象ブロックXの予測ベクトルPMVXとされる(メディアン予測方式で、予測ベクトルPMVXが求められる)。
ここで、図11のBでは、対象ブロックXに隣接する3つのマクロブロックAないしCのすべてが、予測用の参照インデクスref_idxが0のマクロブロックになっており、そのため、マクロブロックAのずれベクトルmvA、マクロブロックBのずれベクトルmvB、及び、マクロブロックCのずれベクトルmvCのメディアンmed(mvA,mvB,mvC)が、対象ブロックXの予測ベクトルPMVXとされる。
また、図11のCに示すように、対象ブロックXに隣接する3つのマクロブロックAないしCの中に、予測用の参照インデクスref_idxが対象ブロックXと同一の0であるマクロブロックが、1つも存在しない場合には、0ベクトルが、対象ブロックXの予測ベクトルPMVXとされる。
ここで、図11のCでは、対象ブロックXに隣接する3つのマクロブロックAないしCの中に、予測用の参照インデクスref_idxが0のマクロブロックは存在しないので、0ベクトルが、対象ブロックXの予測ベクトルPMVXとされる。
なお、MVC(AVC)方式では、対象ブロックXの予測用の参照インデクスref_idxが0である場合、対象ブロックXをスキップマクロブロック(スキップモード)として符号化することができる。
スキップマクロブロックについては、対象ブロックの残差も、残差ベクトルも符号化されない。そして、復号時には、予測ベクトルが、そのまま、スキップマクロブロックのずれベクトルに採用され、参照ピクチャの、スキップマクロブロックの位置からずれベクトル(予測ベクトル)だけずれた位置のブロック(対応ブロック)のコピーが、スキップマクロブロックの復号結果とされる。
対象ブロックをスキップマクロブロックとするか否かは、エンコーダの仕様によるが、例えば、符号化データの符号量や、対象ブロックの符号化コスト等に基づいて決定(判定)される。
[エンコーダ12の構成例]
図12は、図4のエンコーダ12の構成例を示すブロック図である。
エンコーダ12は、符号化対象の画像である視点(ビュー)#2の色画像C#2の符号化を、MVC方式を利用して行うが、そのときの予測ベクトルの生成(ベクトル予測)を、図3で説明したようにして行う。
図12において、エンコーダ12は、A/D変換部211、画面並び替えバッファ212、演算部213、直交変換部214、量子化部215、可変長符号化部216、蓄積バッファ217、逆量子化部218、逆直交変換部219、演算部220、デブロッキングフィルタ221、画面内予測部222、予測画像選択部224、MBインデクス計算部231、及び、視差予測部232を有する。
A/D変換部211ないし画面内予測部222、及び、予測画像選択部224は、図8のエンコーダ11のA/D変換部111ないし画面内予測部122、及び、予測画像選択部124と、それぞれ同様に構成されるので、その説明は、適宜省略する。
図12において、DPB31には、デブロッキングフィルタ221から、デコード画像、すなわち、エンコーダ12において符号化されてローカルデコードされた色画像(以下、デコード色画像ともいう)C#2のピクチャが供給され、参照ピクチャ(となりうるピクチャ)として記憶される。
また、DPB31には、図4や図8で説明したように、エンコーダ11において符号化されてローカルデコードされた色画像(デコード色画像)C#1のピクチャ、エンコーダ21において符号化されてローカルデコードされた視差画像(デコード視差画像)D#1、及び、エンコーダ22において符号化されてローカルデコードされた視差画像(デコード視差画像)D#2のピクチャも供給されて記憶される。
エンコーダ12では、デブロッキングフィルタ221からのデコード色画像C#2のピクチャの他、エンコーダ11で得られるデコード色画像C#1のピクチャ、及び、エンコーダ22で得られるデコード視差画像D#2が、符号化対象である色画像C#2の符号化に用いられる。このため、図12では、エンコーダ11で得られるデコード色画像C#1、及び、エンコーダ22で得られるデコード視差画像D#2が、DPB31に供給されることを示す矢印を、図示してある。
MBインデクス計算部231は、視差予測部232において予測画像を生成する色画像C#2の対象ブロック(の位置)を特定するための情報であるMBインデクスを求め(計算し)、視差予測部232に供給する。
視差予測部232には、視差関連情報(図4)としての、撮影視差ベクトルd(視点#2の撮影視差ベクトルd2)の最大値dmax及び最小値dmin、基線長L、焦点距離fが供給される。
視差予測部232は、視差関連情報、さらには、DPB31に記憶されたデコード視差画像D#2のピクチャ(対象ピクチャと同一時刻のピクチャ)を必要に応じて用い、DPB31に記憶された視点#1のデコード色画像D#1のピクチャを参照ピクチャとして、対象ブロックの視差予測(予測画像の生成)を行う。
すなわち、視差予測部232は、DPB31に記憶されたデコード色画像C#1のピクチャを参照ピクチャとして、MEを行うことにより、対象ブロックの計算視差ベクトルを求める。
さらに、視差予測部232は、対象ブロックの計算視差ベクトルに従って、DPB31に記憶されたデコード色画像C#1のピクチャを参照ピクチャとするMCを行うことにより、対象ブロックの予測画像を生成する。
また、視差予測部232は、各マクロブロックタイプについて、参照ピクチャから視差予測によって得られる予測画像を用いた対象ブロックの符号化(予測符号化)に要する符号化コストを算出する。
そして、視差予測部232は、符号化コストが最小のマクロブロックタイプを、最適インター予測モードとして選択し、その最適インター予測モードで生成された予測画像を、予測画像選択部224に供給する。
さらに、視差予測部232は、最適インター予測モード等の情報を、ヘッダ情報として、可変長符号化部216に出力する。
なお、上述したように、参照ピクチャには、参照インデクスが割り当てられており、視差予測部232において、最適インター予測モードで生成された予測画像を生成するときに参照された参照ピクチャに割り当てられた参照インデクスは、対象ブロックの予測用の参照インデクスに選択され、ヘッダ情報の1つとして、可変長符号化部216に出力される。
また、図12においては、説明を簡単にするために、エンコーダ12に、インター予測のうちの視差予測だけを行う視差予測部232を設けてあるが、エンコーダ12では、図8のエンコーダ11のインター予測部123と同様に、視差予測の他、時間予測も行うことができる。
エンコーダ12において、視差予測、及び、時間予測の両方を行う場合、視差予測で参照されうる参照ピクチャであるデコード色画像C#1のピクチャと、時間予測で参照されうる参照ピクチャであるデコード色画像C#2のピクチャ(対象ピクチャとは時刻が異なる他時刻ピクチャ)とに、参照インデクスが割り当てられる。
そして、エンコーダ12では、視差予測で生成される予測画像と、時間予測で生成される予測画像とのうちの、例えば、対象ブロックの符号化コストが小さい方の予測画像を生成するのに参照された参照ピクチャに割り当てられた参照インデクスが、対象ブロックの予測用の参照インデクスに選択され、ヘッダ情報の1つとされる。
図13は、図12の視差予測部232の構成例を示すブロック図である。
図13において、視差予測部232は、視差検出部241、視差補償部242、予測ベクトル生成部243、コスト関数算出部244、モード選択部245、並びに、符号化情報バッファ246を有する。
視差検出部241には、DPB31に記憶された参照ピクチャであるデコード色画像C#1のピクチャが供給されるとともに、画面並び替えバッファ212から、符号化対象の色画像C#2のピクチャ(対象ピクチャ)が供給される。
さらに、視差検出部241には、MBインデクス計算部231から、対象ブロックのMBインデクスが供給されるとともに、予測ベクトル生成部243から予測ベクトル情報が供給される。
視差検出部241は、MBインデクス計算部231からのMBインデクスに基づいて、画面並び替えバッファ212からの対象ピクチャにおける対象ブロックを認識する。
そして、視差検出部241は、MVC方式と同様に、対象ブロックと、参照ピクチャであるデコード色画像C#1のピクチャとを用いてMEを行うことにより、対象ブロックと、デコード色画像C#1のピクチャにおいて、例えば、対象ブロックとのSADを最小にする対応ブロックとのずれを表すずれベクトル、すなわち、対象ブロックの、視点#1に対する視差を表す計算視差ベクトルmvを、マクロブロックタイプごとに検出する。
なお、ここでは、説明を簡単にするため、デコード色画像C#1のピクチャにおいて、対象ブロックとのSADを最小にするブロックを、計算視差ベクトルmvを求めるのに用いる対応ブロックとしているが、視差検出部241では、その他、例えば、式COST=D+λRで表される、対象ブロックの符号化コストCOSTを最小にする対応ブロック(ひいては、計算視差ベクトルmv)を検出することができる。
ここで、式COST=D+λRにおいて、Dは、対象ブロックと、デコード色画像C#1のピクチャの、対象ブロックから計算視差ベクトルmvだけ移動した位置のブロックとのSADを表し、λは、Rに対する重みであり、対象ブロックの残差(対象ブロックと対応ブロックとの残差)の量子化ステップに応じて設定される。
また、式COST=D+λRにおいて、Rは、計算視差ベクトルmvの符号量に相当する値である。
なお、MVC方式では、計算視差ベクトルmvとその予測ベクトルとの残差ベクトルが符号化されるので、値Rとしては、残差ベクトルの符号量に相当する値を採用することができる。
値Rとして、残差ベクトルの符号量に相当する値を採用する場合、視差検出部241は、予測ベクトルを、予測ベクトル生成部243から供給される予測ベクトル情報から認識し、その予測ベクトルと、計算視差ベクトルmvとから、残差ベクトルを求める。
視差検出部241は、対象ブロックの計算視差ベクトルmvを検出すると、その計算視差ベクトルmvと、予測ベクトル生成部243から供給される予測ベクトル情報から得られる予測ベクトルとの差分である残差ベクトルを求め、視差補償部242に供給する。
視差補償部242には、視差検出部241から、計算視差ベクトルmvの残差ベクトルが供給される他、DPB31に記憶された参照ピクチャであるデコード色画像C#1のピクチャが供給される。
さらに、視差補償部242には、予測ベクトル生成部243から予測ベクトル情報が供給される。
視差補償部242は、視差検出部241からの残差ベクトルと、予測ベクトル生成部243からの予測ベクトル情報とから、対象ブロックの計算視差ベクトルmvを復元する。
さらに、視差補償部242は、DPB31からのデコード色画像C#1のピクチャを、参照ピクチャとして、その参照ピクチャのずれ補償(視差補償)を、対象ブロックの計算視差ベクトルmvを用いて、MVC方式と同様にして行うことで、対象ブロックの予測画像を、マクロブロックタイプごとに生成する。
すなわち、視差補償部242は、デコード色画像C#1のピクチャの、対象ブロックの位置から、計算視差ベクトルmvだけずれた位置のブロックである対応ブロックを、予測画像として取得する。
そして、視差補償部242は、予測画像を、視差検出部241からの残差ベクトル、及び、予測画像を生成するのに用いた参照ピクチャ(ここでは、デコード色画像C#1のピクチャ)に割り当てられている参照インデクスとともに、コスト関数算出部244に供給する。
予測ベクトル生成部243には、DPB31記憶されたデコード視差画像D#2のピクチャが供給されるとともに、MBインデクス計算部231からMBインデクスが供給される。
また、予測ベクトル生成部243には、撮影視差ベクトルd(視点#2の撮影視差ベクトルd2)の最大値dmax及び最小値dmin等の視差関連情報(図4)が供給される。
さらに、予測ベクトル生成部243には、符号化情報バッファ246から、既に符号化が行われた、色画像C#2の、対象ブロックの周辺の周辺色ブロック、すなわち、例えば、図3の周辺色ブロックCAないしCCの符号化情報が供給される。
ここで、周辺色ブロックの符号化情報には、その周辺色ブロックが、対象ブロックとして符号化されたときの、後述するモード関連情報、計算視差ベクトル、参照インデクス(予測用の参照インデクス)が含まれる。
予測ベクトル生成部243は、MBインデクス計算部231からのMBインデクスに基づいて、画面並び替えバッファ212からの対象ピクチャにおける対象ブロックを認識する。
さらに、予測ベクトル生成部243は、符号化情報バッファ246からの周辺色ブロックCAないしCCそれぞれの符号化情報に基づき、視差情報利用予測方式で生成される予測ベクトルと、MVC方式で生成される予測ベクトルとのうちの、予測精度が高いと推定される予測ベクトルを、対象ブロックの処理に用いる予測ベクトルとして生成する。
予測ベクトル生成部243は、各マクロブロックタイプ(図9)について、予測ベクトルを生成し、予測ベクトル情報として、視差検出部241、視差補償部242、及び、コスト関数算出部244に供給する。
ここで、予測ベクトル生成部243に供給される視差関連情報は、予測ベクトルを、視差情報利用予測方式で生成するときに用いられる。
すなわち、視差情報利用予測方式で、予測ベクトルを生成する場合、予測ベクトル生成部243は、DPB31からのデコード視差画像D#2のピクチャ(対象ピクチャと同一時刻のピクチャ)の、対象ブロックと同一位置のブロック(同一位置ブロック)の画素値である視差値νを、視差関連情報に含まれる撮影視差ベクトルd(d2)の最大値dmax及び最小値dminを用い、式(2)に従って、画素ごとの撮影視差ベクトルd(d2)に変換する。
ここで、視差情報画像として、視差画像ではなく、奥行き画像を用いる場合には、視差関連情報に含まれる基線長L、及び、焦点距離fを用い、式(3)に従って、奥行き画像の画素値である値yの正規化前の値である奥行きZが、撮影視差ベクトルdに変換される。
そして、予測ベクトル生成部243は、同一位置ブロックの各画素の撮影視差ベクトルd(d2)の、例えば、平均値(平均ベクトル)を求める演算を行い、その平均値を、視差情報利用予測方式の予測ベクトルとする。
コスト関数算出部244には、視差補償部242から、予測画像、残差ベクトル、及び、参照インデクスが供給されるとともに、予測ベクトル生成部243から、予測ベクトル情報が供給されるとともに、画面並び替え部バッファ212から、色画像C#2の対象ピクチャが供給される。
コスト関数算出部244は、マクロブロックタイプ(図9)ごとに、画面並び替えバッファ212からの対象ピクチャの対象ブロックの符号化に要する符号化コストを、符号化コストを算出する所定のコスト関数に従って求める。
すなわち、コスト関数算出部244は、視差補償部242からの残差ベクトル情報から認識される残差ベクトルの符号量に対応する値MVを求めるとともに、視差補償部242からの参照インデクス(予測用の参照インデクス)の符号量に対応する値INを求める。
さらに、コスト関数算出部244は、視差補償部242からの予測画像に対する、対象ブロックの残差に対応する値DであるSADを求める。
そして、コスト関数算出部244は、例えば、λ1及びλ2を重みとして、式COST=D+λ1×MV+λ2×INに従い、マクロブロックタイプごとの符号化コストCOSTを求める。
コスト関数算出部244は、マクロブロックタイプごとの符号化コスト(コスト関数値)を求めると、符号化コストを、参照インデクス、予測画像、及び、残差ベクトルとともに、モード選択部245に供給する。
モード選択部245は、コスト関数算出部244からのマクロブロックタイプごとの符号化コストの中から、最小値である最小コストを検出する。
さらに、モード選択部245は、最小コストが得られたマクロブロックタイプを、最適インター予測モードに選択する。
そして、モード選択部245は、最適インター予測モードを表すモード関連情報、最適インター予測モードの参照インデクス(予測用の参照インデクス)、及び、最適インター予測モードの残差ベクトル等を、ヘッダ情報として、可変長符号化部216に供給する。
さらに、モード選択部245は、最適インター予測モードの予測画像と符号化コスト(最小コスト)を、予測画像選択部224に供給する。
なお、モード選択部245は、最小コストが得られた参照インデクスが、値が0の参照インデクスである場合には、例えば、最小コスト等に基づいて、対象ブロックを、スキップマクロブロックとして符号化するかどうかの判定を行う。
モード選択部245において、対象ブロックを、スキップマクロブロックとして符号化すると判定された場合、最適インター予測モードは、対象ブロックを、スキップマクロブロックとして符号化するスキップモードとされる。
また、モード選択部245は、予測ベクトル生成部243からコスト関数算出部244に供給される予測ベクトル情報から、最適インター予測モードでの対象ブロックの符号化に用いられた予測ベクトルを認識し、その予測ベクトルと、最適インター予測モードの残差ベクトルとを加算することで、対象ブロックの計算視差ベクトルを復元する。
そして、モード選択部245は、対象ブロックの計算視差ベクトル、モード関連情報、及び、予測用の参照インデクスを、対象ブロックの符号化情報として、符号化情報バッファ246に供給する。
符号化情報バッファ246は、モード選択部246からの符号化情報を一時記憶する。
図14は、図12のエンコーダ12が行う、視点#2の色画像C#2を符号化する符号化処理を説明するフローチャートである。
ステップS11において、A/D変換部211は、そこに供給される視点#2の色画像C#2のピクチャのアナログ信号をA/D変換し、画面並び替えバッファ212に供給して、処理は、ステップS12に進む。
ステップS12では、画面並び替えバッファ212は、A/D変換部211からの色画像C#2のピクチャを一時記憶し、あらかじめ決められたGOPの構造に応じて、ピクチャを読み出すことで、ピクチャの並びを、表示順から、符号化順(復号順)に並び替える並び替えを行う。
画面並び替えバッファ212から読み出されたピクチャは、演算部213、画面内予測部222、及び、視差予測部232に供給され、処理は、ステップS12からステップS13に進む。
ステップS13では、演算部213は、画面並び替えバッファ212からの色画像C#2のピクチャを、符号化対象の対象ピクチャとし、さらに、対象ピクチャを構成するマクロブロックを、順次、符号化対象の対象ブロックとする。
そして、演算部213は、対象ブロックの画素値と、予測画像選択部224から供給される予測画像の画素値との差分(残差)を、必要に応じて演算し、直交変換部214に供給して、処理は、ステップS13からステップS14に進む。
ステップS14では、直交変換部214は、演算部213からの対象ブロックに対して直交変換を施し、その結果得られる変換係数を、量子化部215に供給して、処理は、ステップS15に進む。
ステップS15において、量子化部215は、直交変換部214から供給される変換係数を量子化し、その結果得られる量子化値を、逆量子化部218、及び、可変長符号化部216に供給して、処理は、ステップS16に進む。
ステップS16では、逆量子化部218は、量子化部215からの量子化値を、変換係数に逆量子化し、逆直交変換部219に供給して、処理は、ステップS17に進む。
ステップS17では、逆直交変換部219は、逆量子化部218からの変換係数を逆直交変換し、演算部220に供給して、処理は、ステップS18に進む。
ステップS18では、演算部220は、逆直交変換部219から供給されるデータに対して、必要に応じて、予測画像選択部224から供給される予測画像の画素値を加算することで、対象ブロックを復号(ローカルデコード)したデコード色画像C#2を求める。そして、演算部220は、対象ブロックをローカルデコードしたデコード色画像C#2を、デブロッキングフィルタ221に供給して、処理は、ステップS18からステップS19に進む。
ステップS19では、デブロッキングフィルタ221は、演算部220からのデコード色画像C#2をフィルタリングし、DPB31(図4)に供給して、処理は、ステップS20に進む。
ステップS20では、DPB31が、デブロッキングフィルタ221からのデコード色画像C#2を記憶し、処理は、ステップS21に進む。
ステップS21では、DPB31が、色画像D#1を符号化するエンコーダ11から、その色画像C#1を符号化して、ローカルデコードすることにより得られるデコード色画像C#1が供給されるのを待って、そのデコード色画像C#1を記憶し、処理は、ステップS22に進む。
ステップS22では、DPB31が、視差画像D#2を符号化するエンコーダ22から、その視差画像D#2を符号化して、ローカルデコードすることにより得られるデコード視差画像D#2が供給されるのを待って、そのデコード視差画像D#2を記憶し、処理は、ステップS23に進む。
ステップS23では、MBインデクス計算部231が、次に符号化の対象となるマクロブロックである次の対象ブロックのMBインデクスを求め、視差予測部232に供給して、処理は、ステップS24に進む。
ステップS24では、画面内予測部222は、次の対象ブロックについて、イントラ予測処理(画面内予測処理)を行う。
すなわち、画面内予測部222は、次の対象ブロックについて、DPB31に記憶されたデコード色画像C#2のピクチャから、予測画像(イントラ予測の予測画像)を生成するイントラ予測(画面内予測)を行う。
そして、画面内予測部222は、イントラ予測の予測画像を用いて、次の対象ブロックを符号化するのに要する符号化コストを求め、イントラ予測の予測画像とともに、予測画像選択部224に供給して、処理は、ステップS24からステップS25に進む。
ステップS25では、視差予測部232は、次の対象ブロックについて、デコード色画像C#1のピクチャを、参照ピクチャとして、視差予測処理を行う。
すなわち、視差予測部232は、次の対象ブロックについて、DPB31に記憶されたデコード色画像C#1のピクチャを用いて、視差予測を行うことにより、マクロブロックタイプ等が異なるインター予測モードごとに、予測画像や符号化コスト等を求める。
さらに、視差予測部232は、符号化コストが最小のインター予測モードを、最適インター予測モードとして、その最適インター予測モードの予測画像を、符号化コストとともに、予測画像選択部224に供給して、処理は、ステップS25からステップS26に進む。
ステップS26では、予測画像選択部224は、画面内予測部222からの予測画像(イントラ予測の予測画像)、及び、視差予測部232からの予測画像(インター予測の予測画像)のうちの、例えば、符号化コストが小さい方の予測画像を選択し、演算部213及び220に供給して、処理は、ステップS27に進む。
ここで、予測画像選択部224がステップS26で選択する予測画像が、次の対象ブロックの符号化で行われるステップS13やS18の処理で用いられる。
また、画面内予測部222は、ステップS24のイントラ予測処理において得られるイントラ予測に関する情報を、ヘッダ情報として、可変長符号化部216に供給し、視差予測部232は、ステップS25の視差予測処理で得られる視差予測(インター予測)に関する情報(最適インター予測モードを表すモード関連情報等)を、ヘッダ情報として、可変長符号化部216に供給する。
ステップS27では、可変長符号化部216は、量子化部215からの量子化値に対して、可変長符号化を施し、符号化データを得る。
さらに、可変長符号化部216は、画面内予測部222、及び、視差予測部232それぞれからのヘッダ情報のうちの、符号化コストが小さい予測画像が生成された方からのヘッダ情報を選択し、符号化データのヘッダに含める。
そして、可変長符号化部216は、符号化データを、蓄積バッファ217に供給して、処理は、ステップS27からステップS28に進む。
ここで、可変長符号化部216(図12)には、その他、視差関連情報(撮影視差ベクトルd(視点#2の撮影視差ベクトルd2)の最大値dmax及び最小値dmin等)も供給される。可変長符号化部216は、視差関連情報も、符号化データのヘッダ等に含める。
なお、視差関連情報は、可変長符号化部216において、符号化データのヘッダに含めるのではなく、例えば、多重化部4(図4)において多重化することができる。
ステップS28では、蓄積バッファ217は、可変長符号化部216からの符号化データを一時記憶し、所定のデータレートで出力する。
蓄積バッファ217から出力された符号化データは、多重化部32(図4)に供給される。
エンコーダ12では、以上のステップS11ないしS28の処理が、適宜繰り返し行われる。
図15は、図14のステップS25で、図13の視差予測部232が行う視差予測処理を説明するフローチャートである。
ステップS41において、視差予測部232は、MBインデクス計算部231から供給される(次の)対象ブロックのMBインデクスを取得し、視差検出部241、及び、予測ベクトル生成部243に供給して、処理は、ステップS42に進む。
ステップS42において、視差予測部232は、DPB31から、参照ピクチャであるデコード色画像C#1のピクチャを取得するとともに、デコード視差画像D#2を取得する。
そして、視差予測部232は、デコード色画像C#1のピクチャを、視差検出部241、及び、視差補償部242に供給するとともに、デコード視差画像D#2を、予測ベクトル生成部243に供給して、処理は、ステップS43に進む。
ステップS43では、予測ベクトル生成部243は、MBインデクス計算部231からのMBインデクスに基づいて、画面並び替えバッファ212から供給される対象ピクチャにおける(次の)対象ブロックを認識する。
さらに、予測ベクトル生成部243は、符号化情報バッファ246に記憶された符号化情報や、DPB31からのデコード視差画像D#2、その他、視差関連情報等を必要に応じて用いて、各マクロブロックタイプ(図9)について、(次の)対象ブロックの予測ベクトルを生成する予測ベクトル生成処理を行う。
そして、予測ベクトル生成部243は、予測ベクトル生成処理によって得られた対象ブロックの予測ベクトルを、予測ベクトル情報として、視差検出部241、視差補償部242、及び、コスト関数算出部244に供給し、処理は、ステップS43からステップS44に進む。
ステップS44では、視差検出部241は、MBインデクス計算部231からのMBインデクスに基づいて、画面並び替えバッファ212から供給される対象ピクチャにおける対象ブロックを認識する。
そして、視差検出部241は、(次の)対象ブロックについて、DPB31からのデコード色画像C#1のピクチャを参照ピクチャとして用いてMEを行うことにより、対象ブロックの、視点#1に対する視差を表す計算視差ベクトルmvを検出する。
さらに、視差検出部241は、対象ブロックの計算視差ベクトルmvと、予測ベクトル生成部243から供給される予測ベクトル情報から得られる予測ベクトルとの差分である残差ベクトルを求めて、視差補償部242に供給し、処理は、ステップS44からステップS45に進む。
ステップS45では、視差補償部242は、視差検出部241からの残差ベクトルと、予測ベクトル生成部243からの予測ベクトル情報とから、対象ブロックの計算視差ベクトルmvを復元する。
さらに、視差補償部242は、DPB31からのデコード色画像C#1のピクチャを、参照ピクチャとして、対象ブロックの計算視差ベクトルmvに従ってMCを行うことにより、(次の)対象ブロックの予測画像を生成する。
すなわち、視差補償部242は、デコード色画像C#1のピクチャの、対象ブロックの位置から、計算視差ベクトルmvだけずれた位置のブロックである対応ブロックを、予測画像として取得する。
そして、視差補償部242は、予測画像を、視差検出部241からの残差ベクトル、及び、予測画像を生成するのに用いた参照ピクチャ(ここでは、デコード色画像C#1のピクチャ)に割り当てられている参照インデクスとともに、コスト関数算出部244に供給して、処理は、ステップS45からステップS46に進む。
ステップS46では、コスト関数算出部244は、マクロブロックタイプ(図9)ごとに、画面並び替えバッファ212からの対象ピクチャの対象ブロックの符号化に要する符号化コストを、所定のコスト関数に従って求め、視差補償部242からの参照インデクス、予測画像、及び、残差ベクトルとともに、モード選択部245に供給して、処理は、ステップS47に進む。
ステップS47では、モード選択部245は、コスト関数算出部244からのマクロブロックタイプごとの符号化コストの中から、最小値である最小コストを検出する。
さらに、モード選択部245は、最小コストが得られたマクロブロックタイプを、最適インター予測モードに選択して、処理は、ステップS47からステップS48に進む。
ステップS48では、モード選択部245は、最適インター予測モードの予測画像と符号化コスト(最小コスト)を、予測画像選択部224に供給して、処理は、ステップS49に進む。
ステップS49では、モード選択部245は、最適インター予測モードを表すモード関連情報、最適インター予測モードの参照インデクス(予測用の参照インデクス)、及び、最適インター予測モードの残差ベクトルを、ヘッダ情報として、可変長符号化部216に供給する。
さらに、ステップS49では、モード選択部245は、予測ベクトル生成部243からコスト関数算出部244に供給される予測ベクトル情報から、最適インター予測モードでの対象ブロックの符号化に用いられた予測ベクトルを認識し、その予測ベクトルと、最適インター予測モードの残差ベクトルとを加算することで、対象ブロックの計算視差ベクトルを復元する。
そして、モード選択部245は、対象ブロックの計算視差ベクトル、モード関連情報、及び、予測用の参照インデクスを、対象ブロックの符号化情報として、符号化情報バッファ246に供給して記憶させ、処理はリターンする。
図16は、図15のステップS43で予測ベクトル生成部243(図13)が行う予測ベクトル生成処理を説明するフローチャートである。
ステップS51において、予測ベクトル生成部243は、符号化情報バッファ246から、既に符号化が行われた、色画像C#2の対象ブロックの周辺の周辺色ブロック、すなわち、例えば、図3の3個の周辺色ブロックCAないしCCの符号化情報を取得し、処理は、ステップS52に進む。
ステップS52では、予測ベクトル生成部243は、DPB31からのデコード視差画像D#2のピクチャ(対象ピクチャと同一時刻のピクチャ)から、対象ブロックと同一位置のブロック(同一位置ブロック)と、その同一位置ブロックの周辺の周辺視差ブロック(ステップS51で符号化情報が取得された周辺色ブロックと同一位置の周辺視差ブロック)、すなわち、例えば、図3の3個の周辺視差ブロックDAないしDCを取得し、処理は、ステップS53に進む。
以下、ステップS53ないしS56では、各マクロブロックタイプについて、対象ブロックの予測ベクトルを生成するベクトル予測処理が行われ、処理は、リターンする。
すなわち、ステップS53において、予測ベクトル生成部243は、対象ブロックを16×16画素のパーティションに分割するマクロブロックタイプ(16×16タイプ)について、ベクトル予測処理を行い、処理は、ステップS54に進む。
ステップS54では、予測ベクトル生成部243は、対象ブロックを16×8画素のパーティションに分割するマクロブロックタイプ(16×8タイプ)について、ベクトル予測処理を行い、処理は、ステップS55に進む。
ステップS55では、予測ベクトル生成部243は、対象ブロックを8×16画素のパーティションに分割するマクロブロックタイプ(8×16タイプ)について、ベクトル予測処理を行い、処理は、ステップS56に進む。
ステップS56では、予測ベクトル生成部243は、対象ブロックを8×8画素以下のパーティションに分割する各マクロブロックタイプ(8×8以下タイプ)について、ベクトル予測処理を行い、処理はリターンする。
図17は、図16のステップS53ないしS56で予測ベクトル生成部243(図13)が各マクロブロックタイプについて行うベクトル予測処理を説明する図である。
予測ベクトル生成部243は、ベクトル予測処理において、色画像C#2の、対象ブロックCXの周辺の周辺色ブロック(例えば、図3の3個の周辺色ブロックCAないしCC)の中の、予測画像を生成するのに参照する参照ピクチャを表す参照インデクスが、対象ブロックと一致する参照インデクス一致ブロックについて、(デコード)視差画像D#2の、参照インデクス一致ブロックと同一位置の周辺視差ブロック(例えば、図3の3個の周辺視差ブロックDAないしDC)と、同一位置ブロックDXとの差を求める。
さらに、予測ベクトル生成部243は、ベクトル予測処理において、参照インデクス一致ブロックと同一位置の周辺視差ブロックと、同一位置ブロックとの差に基づいて、視差情報利用予測方式の予測ベクトル、及び、MVC方式の予測ベクトルのうちの、予測精度が高いと推定される予測ベクトルを、対象ブロックCXの処理に用いる予測ベクトルとして生成する。
すなわち、例えば、16×16タイプについては、予測ベクトル生成部243は、色画像C#2の、例えば、MVC方式で予測ベクトルを生成するときに用いられる3個の周辺色ブロック、つまり、図10に示した、対象ブロックXの左に隣接する周辺色ブロックA、上に隣接する周辺色ブロックB、及び、右斜め上に隣接する周辺色ブロックCの符号化情報に基づいて、その周辺色ブロックAないしCの中の、予測用の参照インデクスが、対象ブロックXと一致する参照インデクス一致ブロックの数を求める。
ここで、16×16タイプについては、参照インデクス一致ブロックの数の範囲は、0ないし3個となる。
参照インデクス一致ブロックの数が0個である場合、予測ベクトル生成部243は、視差情報利用予測方式(視差情報利用予測器)で、対象ブロックの予測ベクトルを生成する。
ここで、MVC方式では、参照インデクス一致ブロックの数が0個である場合、図11で説明したように、0ベクトルが、対象ブロックの予測ベクトルとされる。
一方、視差情報利用予測方式によれば、図13で説明したように、デコード視差画像D#2のピクチャの、対象ブロックと同一位置のブロック(同一位置ブロック)の画素値である視差値νから求められる撮影視差ベクトルd(d2)の平均値が、対象ブロックの予測ベクトルとされる。
デコード視差画像D#2から求められる撮影視差ベクトルd(d2)は、色画像C#2の視差を表すベクトルであるから、そのような撮影視差ベクトルd(d2)から予測ベクトルを求めることにより、MVC方式で求められる0ベクトルの予測ベクトルよりも、予測精度が良い予測ベクトルが得られると推定される。
参照インデクス一致ブロックの数が1個以上である場合、予測ベクトル生成部243は、参照インデクス一致ブロックについて、その参照インデクス一致ブロックと同一位置の周辺視差ブロック(図3の周辺視差ブロックDAないしDC)と、同一位置ブロック(図3の同一位置ブロックDX)との差に対応する値としてのSAD(以下、視差SADともいう)を求める。
そして、予測ベクトル生成部243は、視差SADが所定の閾値を超える参照インデクス一致ブロックの数に基づいて、視差情報利用予測方式の予測ベクトル、及び、MVC方式の予測ベクトルのうちの、予測精度が高いと推定される予測ベクトルを、対象ブロックの予測ベクトルとして生成する。
すなわち、参照インデクス一致ブロックの数が1個であり、そのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が0個である場合、つまり、参照インデクス一致ブロックの数が1個だけであり、その参照インデクス一致ブロックの視差SADが所定の閾値以下である場合、予測ベクトル生成部243は、MVC方式で、対象ブロックの予測ベクトルを生成する。
ここで、MVC方式では、参照インデクス一致ブロックの数が1個である場合、図11で説明したように、その参照インデクス一致ブロックの計算視差ベクトルが、対象ブロックの予測ベクトルとされる。
参照インデクス一致ブロックの数が1個だけであり、その参照インデクス一致ブロックの視差SADが所定の閾値以下である場合、その1個の参照インデクス一致ブロックと、対象ブロックとには、同一の被写体が写っている(視差に大きな違いがない)(視差に相関がある)と推定される。
したがって、そのような参照インデクス一致ブロックの計算視差ベクトルを、対象ブロックの予測ベクトルとすることで、撮影視差ベクトルd(d2)から予測ベクトルを求める視差情報利用予測方式以上の予測精度の予測ベクトルが得られると推定される。
参照インデクス一致ブロックの数が1個であり、そのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が1個である場合、つまり、参照インデクス一致ブロックの数が1個だけであり、その参照インデクス一致ブロックの視差SADが所定の閾値を超える場合、予測ベクトル生成部243は、視差情報利用予測方式で、対象ブロックの予測ベクトルを生成する。
ここで、参照インデクス一致ブロックの視差SADが所定の閾値を超える場合、その参照インデクス一致ブロックと、対象ブロックとには、異なる被写体が写っている(視差に大きな違いがある)(視差に相関がない)と推定される。
したがって、そのような参照インデクス一致ブロックの計算視差ベクトルを、対象ブロックの予測ベクトルとするよりも、撮影視差ベクトルd(d2)から予測ベクトルを求める視差情報利用予測方式の方が、予測精度が良い予測ベクトルが得られると推定される。
参照インデクス一致ブロックの数が2個であり、そのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が0個である場合、つまり、参照インデクス一致ブロックの数が2個であり、その2個の参照インデクス一致ブロックの視差SADのいずれも所定の閾値以下である場合、予測ベクトル生成部243は、MVC方式で、対象ブロックの予測ベクトルを生成する。
ここで、MVC方式では、参照インデクス一致ブロックの数が2個(以上)である場合、図11で説明したように、その2個(以上)の参照インデクス一致ブロックの計算視差ベクトルを用いたメディアン予測方式(メディアン予測器)により、対象ブロックの予測ベクトルが求められる。
そして、周辺色ブロックAないしCのうちの、2個の周辺色ブロックが、参照インデクス一致ブロックであり、その2個の参照インデクス一致ブロックの視差SADのいずれも所定の閾値以下である場合、その2個の参照インデクス一致ブロックと、対象ブロックとには、同一の被写体が写っている(視差に大きな違いがない)と推定される。
したがって、視差SADが所定の閾値以下の2個の参照インデクス一致ブロックの計算視差ベクトルどうし、さらには、その参照インデクス一致ブロックの計算視差ベクトルと対象ブロックの計算視差ベクトルとは、似ている。
よって、視差SADが所定の閾値以下の2個の参照インデクス一致ブロックの計算視差ベクトルのうちのいずれかを、対象ブロックの予測ベクトルとすることにより、撮影視差ベクトルd(d2)から予測ベクトルを求める視差情報利用予測方式以上の予測精度の予測ベクトルが得られると推定される。
3個の周辺色ブロックAないしCの中に、視差SADが所定の閾値以下の2個の参照インデクス一致ブロックが含まれる場合には、メディアン予測方式によれば、その、視差SADが所定の閾値以下の2個の参照インデクス一致ブロックのうちのいずれかの計算視差ベクトルが、対象ブロックの予測ベクトルとされるので、予測精度の良い予測ベクトルを得ることができる。
参照インデクス一致ブロックの数が2個であり、そのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が1個である場合、つまり、参照インデクス一致ブロックの数が2個であり、その2個の参照インデクス一致ブロックのうちの1個の参照インデクス一致ブロックの視差SADが所定の閾値を超え、他の1個の参照インデクス一致ブロックの視差SADが所定の閾値以下である場合、予測ベクトル生成部243は、視差情報利用予測方式で、対象ブロックの予測ベクトルを生成する。
ここで、MVC方式では、上述したように、参照インデクス一致ブロックの数が2個以上である場合、その2個以上の参照インデクス一致ブロックの計算視差ベクトルを用いたメディアン予測方式(メディアン予測器)により、対象ブロックの予測ベクトルが求められる。
メディアン予測方式に用いられる周辺色ブロックAないしCのうちの、2個の周辺色ブロックが、参照インデクス一致ブロックであり、その2個の参照インデクス一致ブロックのうちの一方の参照インデクス一致ブロックの視差SADが所定の閾値を超え、他方の参照インデクス一致ブロックの視差SADが所定の閾値以下である場合、一方の参照インデクス一致ブロックと、他方の参照インデクス一致ブロックとには、異なる被写体が写っており(視差に大きな違いがある)と推定されるとともに、他方の参照インデクス一致ブロックと、対象ブロックとには、同一の被写体が写っている(視差に大きな違いがない)と推定される。
したがって、視差SADが所定の閾値を超える(一方の)参照インデクス一致ブロックの計算視差ベクトルと、視差SADが所定の閾値以下の(他方の)参照インデクス一致ブロックの計算視差ベクトルは、似ていない。
また、視差SADが所定の閾値以下の参照インデクス一致ブロックの計算視差ベクトルを、対象ブロックの予測ベクトルとすることにより、予測精度の予測ベクトルが得られると推定される。
しかしながら、2個の参照インデクス一致ブロックが、視差SADが所定の閾値を超える1個の参照インデクス一致ブロックと、視差SADが所定の閾値以下の1個の参照インデクス一致ブロックとである場合には、メディアン予測方式によれば、視差SADが所定の閾値以下の参照インデクス一致ブロックの計算視差ベクトルが、対象ブロックの予測ベクトルとされるとは限らない。
すなわち、メディアン予測方式によれば、視差SADが所定の閾値以下の参照インデクス一致ブロック以外の周辺色ブロックの計算視差ベクトルが、対象ブロックの予測ベクトルとされることがあり、その場合、予測精度が悪くなる。
そこで、参照インデクス一致ブロックの数が2個であり、そのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が1個である場合には、予測ベクトル生成部243は、予測精度が悪くなるMVC方式(メディアン予測方式)ではなく、視差情報利用予測方式で、対象ブロックの予測ベクトルを生成する。
参照インデクス一致ブロックの数が2個であり、そのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が2個である場合、予測ベクトル生成部243は、視差情報利用予測方式で、対象ブロックの予測ベクトルを生成する。
すなわち、参照インデクス一致ブロックの数が2個であり、その2個の参照インデクス一致ブロックのいずれの視差SADも所定の閾値を超える場合、上述の、参照インデクス一致ブロックの数が2個であり、その2個のうちの1個の参照インデクス一致ブロックの視差SADが所定の閾値を超える場合と同様に、メディアン予測方式の予測精度は悪くなるので、相対的に予測精度が良い視差情報利用予測方式で、対象ブロックの予測ベクトルが生成される。
参照インデクス一致ブロックの数が3個であり、そのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が0個である場合、上述の、参照インデクス一致ブロックの数が2個であり、その2個の参照インデクス一致ブロックのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が0個である場合と同様に、MVC方式(メディアン予測方式)によれば、撮影視差ベクトルd(d2)から予測ベクトルを求める視差情報利用予測方式以上の予測精度の予測ベクトルが得られると推定される。
このため、予測ベクトル生成部243は、MVC方式(メディアン予測方式)で、対象ブロックの予測ベクトルを生成する。
参照インデクス一致ブロックの数が3個であり、そのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が1個である場合、つまり、3個の参照インデクス一致ブロックのうちの1個の参照インデクス一致ブロックの視差SADが所定の閾値を超え、他の2個の参照インデクス一致ブロックの視差SADが所定の閾値以下である場合、予測ベクトル生成部243は、MVC方式で、対象ブロックの予測ベクトルを生成する。
ここで、MVC方式では、上述したように、参照インデクス一致ブロックの数が3個である場合、その3個の参照インデクス一致ブロックである3個の周辺色ブロックの計算視差ベクトルを用いたメディアン予測方式(メディアン予測器)により、対象ブロックの予測ベクトルが求められる。
メディアン予測方式に用いられる周辺色ブロックすべてが、参照インデクス一致ブロックであり、その3個の参照インデクス一致ブロックのうちの1個の参照インデクス一致ブロックの視差SADが所定の閾値を超え、他の2個の参照インデクス一致ブロックの視差SADが所定の閾値以下である場合、1個の参照インデクス一致ブロックと、他の2個の参照インデクス一致ブロックとには、異なる被写体が写っており(視差に大きな違いがある)と推定されるとともに、他の2個の参照インデクス一致ブロックと、対象ブロックとには、同一の被写体が写っている(視差に大きな違いがない)と推定される。
したがって、視差SADが所定の閾値以下の2個の参照インデクス一致ブロックの計算視差ベクトルどうしは、似ている。
そして、視差SADが所定の閾値以下の2個の参照インデクス一致ブロックの計算視差ベクトルのうちのいずれかを、対象ブロックの予測ベクトルとすることにより、撮影視差ベクトルd(d2)から予測ベクトルを求める視差情報利用予測方式以上の予測精度の予測ベクトルが得られると推定される。
3個の周辺色ブロックに、視差SADが所定の閾値以下の2個の参照インデクス一致ブロックが含まれる場合には、メディアン予測方式によれば、その、視差SADが所定の閾値以下の2個の参照インデクス一致ブロックのうちのいずれかの計算視差ベクトルが、対象ブロックの予測ベクトルとされるので、予測精度の良い予測ベクトルを得ることができる。
参照インデクス一致ブロックの数が3個であり、そのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が2個である場合、つまり、3個の参照インデクス一致ブロックのうちの2個の参照インデクス一致ブロックの視差SADが所定の閾値を超え、他の1個の参照インデクス一致ブロックの視差SADが所定の閾値以下である場合、予測ベクトル生成部243は、視差情報利用予測方式で、対象ブロックの予測ベクトルを生成する。
ここで、MVC方式では、上述したように、参照インデクス一致ブロックの数が3個である場合、その3個以上の参照インデクス一致ブロックである3個の周辺色ブロックの計算視差ベクトルを用いたメディアン予測方式(メディアン予測器)により、対象ブロックの予測ベクトルが求められる。
メディアン予測方式に用いられる周辺色ブロックすべてが、参照インデクス一致ブロックであり、その3個の参照インデクス一致ブロックのうちの2個の参照インデクス一致ブロックの視差SADが所定の閾値を超え、他の1個の参照インデクス一致ブロックの視差SADが所定の閾値以下である場合、2個の参照インデクス一致ブロックと、他の1個の参照インデクス一致ブロックとには、異なる被写体が写っており(視差に大きな違いがある)と推定されるとともに、他の1個の参照インデクス一致ブロックと、対象ブロックとには、同一の被写体が写っている(視差に大きな違いがない)と推定される。
したがって、視差SADが所定の閾値を超える2個の参照インデクス一致ブロックの計算視差ベクトルと、視差SADが所定の閾値以下の他の1個の参照インデクス一致ブロックの計算視差ベクトルは、似ていない。
また、視差SADが所定の閾値以下の(他の1個の)参照インデクス一致ブロックの計算視差ベクトルを、対象ブロックの予測ベクトルとすることにより、予測精度の予測ベクトルが得られると推定される。
しかしながら、3個の周辺色ブロックが、視差SADが所定の閾値を超える2個の参照インデクス一致ブロックと、視差SADが所定の閾値以下の1個の参照インデクス一致ブロックとである場合には、メディアン予測方式によれば、視差SADが所定の閾値以下の参照インデクス一致ブロックの計算視差ベクトルが、対象ブロックの予測ベクトルとされるとは限らない。
すなわち、メディアン予測方式によれば、視差SADが所定の閾値以下の参照インデクス一致ブロック以外の周辺色ブロックの計算視差ベクトルが、対象ブロックの予測ベクトルとされることがあり、その場合、予測精度が悪くなる。
そこで、参照インデクス一致ブロックの数が3個であり、そのうちの、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が2個である場合には、予測ベクトル生成部243は、予測精度が悪くなるMVC方式(メディアン予測方式)ではなく、視差情報利用予測方式で、対象ブロックの予測ベクトルを生成する。
参照インデクス一致ブロックの数が3個であり、その3個の参照インデクス一致ブロックのいずれの視差SADも所定の閾値を超える場合、上述の、参照インデクス一致ブロックの数が3個であり、その3個のうちの2個の参照インデクス一致ブロックの視差SADが所定の閾値を超える場合と同様に、メディアン予測方式の予測精度は悪くなるので、予測ベクトル生成部243では、相対的に予測精度が良い視差情報利用予測方式で、対象ブロックの予測ベクトルが生成される。
なお、予測ベクトル生成部243は、16×16タイプ以外のマクロブロックタイプについても、16×16×タイプの場合と同様に、ベクトル予測処理を行う。
但し、参照インデクス一致ブロックとしてカウントする対象は、例えば、MVC方式で予測ベクトルを生成するときに用いられる周辺色ブロックとなる。
すなわち、例えば、16×16タイプについては、MVC方式で予測ベクトルを生成するときに用いられる周辺色ブロックは、図10に示したように、対象ブロックXの左に隣接する周辺色ブロックA、上に隣接する周辺色ブロックB、及び、右斜め上に隣接する周辺色ブロックCの3つであるため、その3つの周辺色ブロックAないしCが、参照インデクス一致ブロックとしてカウントする対象となる。
また、例えば、8×16タイプや、16×8タイプについては、MVC方式で予測ベクトルを生成するときに用いられる周辺色ブロックが、対象ブロックXの左に隣接する周辺色ブロックAの1つだけや、上に隣接する周辺色ブロックBの1つだけ、右斜め上に隣接する周辺色ブロックCの1つだけであるため、その1つの周辺色ブロックが、参照インデクス一致ブロックとしてカウントする対象となる。
したがって、8×16タイプや、16×8タイプについては、参照インデクス一致ブロックの数の範囲は、0ないし1個となる。
図18は、図16のステップS53ないしS56で予測ベクトル生成部243(図13)が各マクロブロックタイプについて行うベクトル予測処理を説明するフローチャートである。
ステップS61において、予測ベクトル生成部243は、符号化情報に基づき、色画像C#2の、対象ブロックの周辺の周辺色ブロック(例えば、図3の3個の周辺色ブロックCAないしCC)の中の、予測画像を生成するのに参照する参照ピクチャを表す参照インデクスが、対象ブロックと一致する参照インデクス一致ブロックの数を判定する。
ステップS61において、参照インデクス一致ブロックの数が0個であると判定された場合、処理は、ステップS67に進み、予測ベクトル生成部243は、視差情報利用予測方式によって、デコード視差画像D#2から、対象ブロックの予測ベクトルを生成し、処理は、リターンする。
また、ステップS61において、参照インデクス一致ブロックの数が1個以上であると判定された場合、処理は、ステップS62に進み、予測ベクトル生成部243は、参照インデクス一致ブロックについて、その参照インデクス一致ブロックと同一位置の、デコード視差画像D#2の周辺視差ブロック(例えば、図3の周辺視差ブロックDAないしDC)と、同一位置ブロック(図3の同一位置ブロックDX)との差に対応する値としてのSADである視差SADを求め、処理は、ステップS63に進む。
ステップS63では、予測ベクトル生成部243は、参照インデクス一致ブロックの数が1個であり、かつ、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が、1個であるかどうかを判定する。
ステップS63において、参照インデクス一致ブロックの数が1個であり、かつ、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が、1個であると判定された場合、処理は、ステップS67に進み、予測ベクトル生成部243は、視差情報利用予測方式によって、デコード視差画像D#2から、対象ブロックの予測ベクトルを生成し、処理は、リターンする。
また、ステップS63において、参照インデクス一致ブロックの数が1個でないと判定されるか、又は、参照インデクス一致ブロックの数が1個であっても、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が、1個でないと判定された場合、処理は、ステップS64に進み、予測ベクトル生成部243は、参照インデクス一致ブロックの数が2個であり、かつ、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が、1個以上であるかどうかを判定する。
ステップS64において、参照インデクス一致ブロックの数が2個であり、かつ、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が、1個以上であると判定された場合、処理は、ステップS67に進み、予測ベクトル生成部243は、視差情報利用予測方式によって、デコード視差画像D#2から、対象ブロックの予測ベクトルを生成し、処理は、リターンする。
また、ステップS64において、参照インデクス一致ブロックの数が2個でないと判定されるか、又は、参照インデクス一致ブロックの数が2個であっても、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が、1個以上でないと判定された場合、処理は、ステップS65に進み、予測ベクトル生成部243は、参照インデクス一致ブロックの数が3個であり、かつ、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が、2個以上であるかどうかを判定する。
ステップS65において、参照インデクス一致ブロックの数が3個であり、かつ、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が、2個以上であると判定された場合、処理は、ステップS67に進み、予測ベクトル生成部243は、視差情報利用予測方式によって、デコード視差画像D#2から、対象ブロックの予測ベクトルを生成し、処理は、リターンする。
また、ステップS65において、参照インデクス一致ブロックの数が3個でないと判定されるか、又は、参照インデクス一致ブロックの数が3個であっても、視差SADが所定の閾値を超える参照インデクス一致ブロックの数が、2個以上でないと判定された場合、処理は、ステップS66に進み、予測ベクトル生成部243は、MVC方式によって、対象ブロックの予測ベクトルを生成し、処理は、リターンする。
以上のように、ベクトル予測処理において、参照インデクス一致ブロックと同一位置の周辺視差ブロックと、同一位置ブロックとの差に対応する視差SADに基づいて、視差情報利用予測方式の予測ベクトル、及び、MVC方式の予測ベクトルのうちの、予測精度が高いと推定される予測ベクトルを、対象ブロックの処理に用いる予測ベクトルとして生成することにより、予測精度の良い予測ベクトルを得ることができる。
[本技術を適用した多視点画像デコーダの一実施の形態]
図19は、本技術を適用した多視点画像デコーダの一実施の形態の構成例を示すブロック図である。
図19の多視点画像デコーダは、例えば、MVC方式を利用して、複数の視点の画像を符号化したデータを復号するデコーダであり、以下では、MVC方式と同様の処理については、適宜、説明を省略する。
なお、多視点画像デコーダは、MVC方式を利用するデコーダに限定されるものではない。
図19の多視点画像デコーダでは、図4の多視点画像エンコーダが出力する多重化データが、2つの視点#1及び#2の色画像である視点#1の色画像C#1、及び、視点#2の色画像C#2、並びに、その2つの視点#1及び#2の視差情報画像である視点#1の視差画像D#1、及び、視点#2の視差画像D#2に復号される。
図19において、多視点画像デコーダは、分離部301、デコーダ311,312,321,322、及び、DPB331を有する。
図4の多視点画像エンコーダが出力する多重化データは、図示せぬ記録媒体や伝送媒体を介して、分離部301に供給される。
分離部301は、そこに供給される多重化データから、色画像C#1の符号化データ、色画像C#2の符号化データ、視差画像D#1の符号化データ、及び、視差画像D#2の符号化データを分離する。
そして、分離部301は、色画像C#1の符号化データをデコーダ311に、色画像C#2の符号化データをデコーダ312に、視差画像D#1の符号化データをデコーダ321に、視差画像D#2の符号化データをデコーダ322に、それぞれ供給する。
デコーダ311は、分離部301からの色画像C#1の符号化データを復号し、その結果得られる色画像C#1を出力する。
デコーダ312は、分離部301からの色画像C#2の符号化データを復号し、その結果得られる色画像C#2を出力する。
デコーダ321は、分離部301からの視差画像D#1の符号化データを復号し、その結果得られる視差画像D#1を出力する。
デコーダ322は、分離部301からの視差画像D#2の符号化データを復号し、その結果得られる視差画像D#2を出力する。
DPB331は、デコーダ311,312,321、及び、322それぞれで、復号対象の画像を復号することにより得られる復号後の画像(デコード画像)を、予測画像の生成時に参照する参照ピクチャ(の候補)として一時記憶する。
すなわち、デコーダ311,312,321、及び、322は、それぞれ、図4のエンコーダ11,12,21、及び、22で予測符号化された画像を復号する。
予測符号化された画像を復号するには、その予測符号化で用いられた予測画像が必要であるため、デコーダ311,312,321、及び、322は、予測符号化で用いられた予測画像を生成するために、復号対象の画像を復号した後、予測画像の生成に用いる、復号後の画像を、DPB331に一時記憶させる。
DPB331は、デコーダ311,312,321、及び、322それぞれで得られる復号後の画像(デコード画像)を一時記憶する共用のバッファであり、デコーダ311,312,321、及び、322それぞれは、DPB331に記憶されたデコード画像から、復号対象の画像を復号するのに参照する参照ピクチャを選択し、その参照ピクチャを用いて、予測画像を生成する。
DPB331は、デコーダ311,312,321、及び、322で共用されるので、デコーダ311,312,321、及び、322それぞれは、自身で得られたデコード画像の他、他のデコーダで得られたデコード画像をも参照することができる。
[デコーダ311の構成例]
図20は、図19のデコーダ311の構成例を示すブロック図である。
なお、図19のデコーダ321及び322も、デコーダ311と同様に構成され、例えば、MVC方式に従って、画像の符号化を行う。
図20において、デコーダ311は、蓄積バッファ341、可変長復号部342、逆量子化部343、逆直交変換部344、演算部345、デブロッキングフィルタ346、画面並び替えバッファ347、D/A変換部348、画面内予測部349、インター予測部350、及び、予測画像選択部351を有する。
蓄積バッファ341には、分離部301(図19)から、色画像C#1の符号化データが供給される。
蓄積バッファ341は、そこに供給される符号化データを一時記憶し、可変長復号部342に供給する。
可変長復号部342は、蓄積バッファ341からの符号化データを可変長復号することにより、量子化値やヘッダ情報を復元する。そして、可変長復号部342は、量子化値を、逆量子化部343に供給し、ヘッダ情報を、画面内予測部349、及び、インター予測部350に供給する。
逆量子化部343は、可変長復号部342からの量子化値を、変換係数に逆量子化し、逆直交変換部344に供給する。
逆直交変換部344は、逆量子化部343からの変換係数を逆直交変換し、マクロブロック単位で、演算部345に供給する。
演算部345は、逆直交変換部344から供給されるマクロブロックを復号対象の対象ブロックとして、その対象ブロックに対して、必要に応じて、予測画像選択部351から供給される予測画像を加算することで、デコード画像を求め、デブロッキングフィルタ346に供給する。
デブロッキングフィルタ346は、演算部345からのデコード画像に対して、例えば、図8のデブロッキングフィルタ121と同様のフィルタリングを行い、そのフィルタリング後のデコード画像を、画面並び替えバッファ347に供給する。
画面並び替えバッファ347は、デブロッキングフィルタ346からのデコード画像のピクチャを一時記憶して読み出すことで、ピクチャの並びを、元の並び(表示順)に並び替え、D/A(Digital/Analog)変換部348に供給する。
D/A変換部348は、画面並び替えバッファ347からのピクチャをアナログ信号で出力する必要がある場合に、そのピクチャをD/A変換して出力する。
また、デブロッキングフィルタ346は、フィルタリング後のデコード画像のうちの、参照可能ピクチャであるIピクチャ、Pピクチャ、及び、Bsピクチャのデコード画像を、DPB331に供給する。
ここで、DPB331は、デブロッキングフィルタ346からのデコード画像のピクチャ、すなわち、色画像C#1のピクチャを、時間的に後に行われる復号に用いる予測画像を生成するときに参照する参照ピクチャとして記憶する。
図19で説明したように、DPB331は、デコーダ311,312,321、及び、322で共用されるので、デコーダ311において復号された色画像C#1のピクチャの他、デコーダ312において復号された色画像C#2のピクチャ、デコーダ321において復号された視差画像D#1のピクチャ、及び、デコーダ322において復号された視差画像D#2のピクチャも記憶する。
画面内予測部349は、可変長復号部342からのヘッダ情報に基づき、対象ブロックが、イントラ予測(画面内予測)で生成された予測画像を用いて符号化されているかどうかを認識する。
対象ブロックが、イントラ予測で生成された予測画像を用いて符号化されている場合、画面内予測部349は、図8の画面内予測部122と同様に、DPB331から、対象ブロックを含むピクチャ(対象ピクチャ)のうちの、既に復号されている部分(デコード画像)を読み出す。そして、画面内予測部349は、DPB331から読み出した、対象ピクチャのうちのデコード画像の一部を、対象ブロックの予測画像として、予測画像選択部351に供給する。
インター予測部350は、可変長復号部342からのヘッダ情報に基づき、対象ブロックが、インター予測で生成された予測画像を用いて符号化されているかどうかを認識する。
対象ブロックが、インター予測で生成された予測画像を用いて符号化されている場合、インター予測部350は、可変長復号部342からのヘッダ情報に基づき、予測用の参照インデクス、すなわち、対象ブロックの予測画像の生成に用いられた参照ピクチャに割り当てられている参照インデクスを認識する。
そして、インター予測部350は、DPB331に記憶されている参照ピクチャから、予測用の参照インデクスが割り当てられている参照ピクチャを読み出す。
さらに、インター予測部350は、可変長復号部342からのヘッダ情報に基づき、対象ブロックの予測画像の生成に用いられたずれベクトル(視差ベクトル、動きベクトル)を認識し、図8のインター予測部123と同様に、そのずれベクトルに従って、参照ピクチャのずれ補償(動き分のずれを補償する動き補償、又は、視差分のずれを補償する視差補償)を行うことで、予測画像を生成する。
すなわち、インター予測部350は、参照ピクチャの、対象ブロックの位置から、その対象ブロックのずれベクトルに従って移動した(ずれた)位置のブロック(対応ブロック)を、予測画像として取得する。
そして、インター予測部350は、予測画像を、予測画像選択部351に供給する。
予測画像選択部351は、画面内予測部349から予測画像が供給される場合には、その予測画像を、インター予測部350から予測画像が供給される場合には、その予測画像を、それぞれ選択し、演算部345に供給する。
[デコーダ322の構成例]
図21は、図19のデコーダ312の構成例を示すブロック図である。
デコーダ312は、復号対象である視点#2の色画像C#2の符号化データの復号を、MVC方式を利用して、すなわち、図12のエンコーダ12で行われるローカルデコードと同様にして行う。
図21において、デコーダ312は、蓄積バッファ441、可変長復号部442、逆量子化部443、逆直交変換部444、演算部445、デブロッキングフィルタ446、画面並び替えバッファ447、D/A変換部448、画面内予測部449、予測画像選択部451、MBインデクス計算部461、及び、視差予測部462を有する。
蓄積バッファ441ないし画面内予測部449、及び、予測画像選択部451は、図20の蓄積バッファ341ないし画面内予測部349、及び、予測画像選択部351と、それぞれ同様に構成されるので、その説明は、適宜省略する。
図21において、DPB331には、デブロッキングフィルタ446から、デコード画像、すなわち、デコーダ312において復号された色画像であるデコード色画像C#2のピクチャが供給され、参照ピクチャとして記憶される。
また、DPB331には、図19や図20で説明したように、デコーダ311において復号された色画像(デコード色画像)C#1のピクチャ、デコーダ321において復号された視差画像(デコード視差画像)D#1のピクチャ、及び、デコーダ322において復号された視差画像(デコード視差画像)D#2のピクチャも供給されて記憶される。
但し、デコーダ312では、デブロッキングフィルタ446からのデコード色画像C#2のピクチャの他、デコーダ311で得られるデコード色画像C#1、及び、デコーダ322で得られるデコード視差画像D#2が、復号対象である色画像C#2の復号に用いられるので、図21では、デコーダ311で得られるデコード色画像C#1、及び、デコーダ322で得られるデコード視差画像D#2が、DPB331に供給されることを示す矢印を、図示してある。
MBインデクス計算部461は、図12のMBインデクス計算部231と同様に、対象ブロックのMBインデクスを求め、視差予測部462に供給する。
視差予測部462は、可変長復号部442からのヘッダ情報に基づき、対象ブロックが、視差予測(インター予測)で生成された予測画像を用いて符号化されているかどうかを認識する。
対象ブロックが、視差予測で生成された予測画像を用いて符号化されている場合、視差予測部462は、可変長復号部442からのヘッダ情報に基づき、予測用の参照インデクス、すなわち、対象ブロックの予測画像の生成に用いられた参照ピクチャに割り当てられている参照インデクスを認識(取得)する。
そして、視差予測部462は、DPB331に記憶されているデコード色画像C#1のピクチャのうちの、予測用の参照インデクスが割り当てられているピクチャを、参照ピクチャとして選択する。
さらに、視差予測部462は、可変長復号部442からのヘッダ情報に基づき、候補ブロックの予測画像の生成に用いられた計算視差ベクトルを復元し、図12の視差予測部232と同様に、その計算視差ベクトルに従って、視差予測を行うことで、予測画像を生成する。
すなわち、視差予測部462は、参照ピクチャの、対象ブロックの位置から、その対象ブロックの計算視差ベクトルに従って移動した(ずれた)位置のブロック(対応ブロック)を、予測画像として取得する。
そして、視差予測部462は、予測画像を、予測画像選択部451に供給する。
なお、図21においては、説明を簡単にするため、図12のエンコーダ12の場合と同様に、デコーダ322に、インター予測のうちの視差予測だけを行う視差予測部462を設けてあるが、図12のエンコーダ12が、視差予測の他、時間予測も行う場合には、デコーダ322でも、エンコーダ12で行われるのと同様にして、視差予測、及び、時間予測(による予測画像の生成)が行われる。
図22は、図21の視差予測部462の構成例を示すブロック図である。
図22において、視差予測部462は、予測ベクトル生成部471、及び、視差補償部472を有する。
予測ベクトル生成部471には、DPB331記憶されたデコード視差画像D#2のピクチャが供給されるとともに、MBインデクス計算部461からMBインデクスが供給される。
また、予測ベクトル生成部471には、可変長復号部442からのヘッダ情報に含まれる撮影視差ベクトルd(視点#2の撮影視差ベクトルd2)の最大値dmax及び最小値dmin等の視差関連情報(図4)が供給される。
さらに、予測ベクトル生成部471には、可変長復号部442からのヘッダ情報に含まれる、既に復号が行われた、色画像C#2のブロックのうちの、対象ブロックの、例えば、左、上、右斜め上にそれぞれ隣接する周辺色ブロック、すなわち、例えば、図3の周辺色ブロックCAないしCCの符号化情報、及び、対象ブロックの符号化情報が供給される。
ここで、可変長復号部442からのヘッダ情報に含まれる周辺色ブロックの符号化情報には、その周辺色ブロックのモード関連情報(マクロブロックタイプ)、及び、参照インデクス(予測用の参照インデクス)が含まれ、可変長復号部442からのヘッダ情報に含まれる対象ブロックの符号化情報には、その対象ブロックのモード関連情報(マクロブロックタイプ)、残差ベクトル、及び、参照インデクス(予測用の参照インデクス)が含まれる。
また、予測ベクトル生成部471には、視差補償部472から、既に復号が行われた周辺色ブロックの計算視差ベクトルが供給される。
予測ベクトル生成部471は、MBインデクス計算部461からのMBインデクスに基づいて、対象ピクチャにおける対象ブロックを認識する。
さらに、予測ベクトル生成部471は、DPB331記憶されたデコード視差画像D#2のピクチャ、視差関連情報、符号化情報、及び、視差補償部472からの周辺色ブロックの計算視差ベクトル等を必要に応じて用い、図13の予測ベクトル生成部243と同様に、対象ブロックの予測ベクトルを生成し、視差補償部472に供給する。
すなわち、予測ベクトル生成部471は、対象ブロックの符号化情報に基づき、対象ブロックのマクロブロックモードを認識し、そのマクロブロックモードについて、視差情報利用予測方式で生成される予測ベクトルと、MVC方式で生成される予測ベクトルとのうちの、予測精度が高いと推定される予測ベクトルを、対象ブロックの予測ベクトルとして生成する。
ここで、予測ベクトル生成部471に供給される視差関連情報は、図13の予測ベクトル生成部243の場合と同様に、予測ベクトルを、視差情報利用予測方式で生成するときに用いられる。
視差補償部472には、予測ベクトル生成部471から対象ブロックの予測ベクトルが供給される他、可変長復号部442からのヘッダ情報に含まれる、対象ブロックのモード関連情報、残差ベクトル、及び、予測用の参照インデクスが供給される。
さらに、視差補償部472には、DPB331に記憶された参照ピクチャであるデコード色画像C#1のピクチャが供給される。
視差補償部472は、可変長復号部442からの残差ベクトルと、予測ベクトル生成部471からの予測ベクトルとを加算することで、対象ブロックの計算視差ベクトルmvを復元する。
さらに、視差補償部472は、DPB331に記憶されたデコード色画像C#1のピクチャのうちの、可変長復号部442からの予測用の参照インデクスが割り当てられているピクチャを、参照ピクチャとして、その参照ピクチャのずれ補償(視差補償)を、対象ブロックの計算視差ベクトルmvを用いて、MVC方式と同様にして行うことで、可変長復号部442からのモード関連情報が表すマクロブロックタイプについて、対象ブロックの予測画像を生成する。
すなわち、視差補償部472は、デコード色画像C#1のピクチャの、対象ブロックの位置から、計算視差ベクトルmvだけずれた位置のブロックである対応ブロックを、予測画像として取得する。
そして、視差補償部472は、予測画像を、予測画像選択部451に供給する。
図23は、図21のデコーダ322が行う、視点#2の色画像C#2の符号化データを復号する復号処理を説明するフローチャートである。
ステップS111において、蓄積バッファ441は、そこに供給される視点#2の色画像C#2の符号化データを記憶し、処理は、ステップS112に進む。
ステップS112では、可変長復号部442は、蓄積バッファ441に記憶された符号化データを読み出して可変長復号することにより、量子化値やヘッダ情報を復元する。そして、可変長復号部442は、量子化値を、逆量子化部443に供給し、ヘッダ情報を、画面内予測部449、及び、視差予測部450に供給して、処理は、ステップS113に進む。
ステップS113では、逆量子化部443は、可変長復号部442からの量子化値を、変換係数に逆量子化し、逆直交変換部444に供給して、処理は、ステップS114に進む。
ステップS114では、逆直交変換部444は、逆量子化部443からの変換係数を逆直交変換し、マクロブロック単位で、演算部445に供給して、処理は、ステップS115に進む。
ステップS115では、演算部445は、逆直交変換部444からのマクロブロックを復号対象の対象ブロック(残差画像)として、その対象ブロックに対して、必要に応じて、予測画像選択部451から供給される予測画像を加算することで、デコード画像を求める。そして、演算部445は、デコード画像を、デブロッキングフィルタ446に供給し、処理は、ステップS115からステップS116に進む。
ステップS116では、デブロッキングフィルタ446は、演算部445からのデコード画像に対して、フィルタリングを行い、そのフィルタリング後のデコード画像(デコード色画像C#2)を、DPB331、及び、画面並び替えバッファ447に供給して、処理は、ステップS117に進む。
ステップS117では、DPB331が、デブロッキングフィルタ446からのデコード色画像C#2を記憶し、処理は、ステップS118に進む。
ステップS118では、DPB331が、色画像C#1を復号するデコーダ311から、デコード色画像C#1が供給されるのを待って、そのデコード色画像C#1を記憶し、処理は、ステップS119に進む。
ステップS119では、DPB331が、視差画像D#2を復号するデコーダ322から、デコード視差画像D#2が供給されるのを待って、そのデコード視差画像D#2を記憶し、処理は、ステップS120に進む。
ステップS120では、画面内予測部449、及び、視差予測部462が、可変長復号部442から供給されるヘッダ情報に基づき、次の対象ブロック(次に復号対象となるマクロブロック)が、イントラ予測(画面内予測)、及び、視差予測(インター予測)のうちのいずれの予測方式で生成された予測画像を用いて符号化されているかを認識する。
そして、次の対象ブロックが、画面内予測で生成された予測画像を用いて符号化されている場合には、画面内予測部449が、イントラ予測処理(画面内予測処理)を行う。
すなわち、画面内予測部449は、次の対象ブロックについて、DPB331に記憶されたデコード色画像C#2のピクチャから、予測画像(イントラ予測の予測画像)を生成するイントラ予測(画面内予測)を行い、その予測画像を、予測画像選択部451に供給して、処理は、ステップS120からステップS121に進む。
また、次の対象ブロックが、視差予測(インター予測)で生成された予測画像を用いて符号化されている場合には、視差予測部462が、視差予測処理(インター予測処理)を行う。
すなわち、視差予測部462は、次の対象ブロックについて、DPB331に記憶されたデコード色画像C#1のピクチャのうちの、可変長復号部442からのヘッダ情報に含まれる、次の対象ブロックの予測用の参照インデクスが割り当てられているピクチャを参照ピクチャに選択する。
さらに、視差予測部462は、可変長復号部442からのヘッダ情報に含まれるモード関連情報等を用いて、視差予測(視差補償)を行うことにより、予測画像を生成し、その予測画像を、予測画像選択部451に供給して、処理は、ステップS120からステップS121に進む。
ステップS121では、予測画像選択部451は、画面内予測部449、及び、視差予測部462のうちの、予測画像が供給される方からの、その予測画像を選択し、演算部445に供給して、処理は、ステップS122に進む。
ここで、予測画像選択部451がステップS121で選択する予測画像が、次の対象ブロックの復号で行われるステップS115の処理で用いられる。
ステップS122では、画面並び替えバッファ447が、デブロッキングフィルタ446からのデコード視差画像D#2のピクチャを一時記憶して読み出すことで、ピクチャの並びを、元の並びに並び替え、D/A変換部448に供給して、処理は、ステップS123に進む。
ステップS123では、D/A変換部348は、画面並び替えバッファ447からのピクチャをアナログ信号で出力する必要がある場合に、そのピクチャをD/A変換して出力する。
デコーダ312では、以上のステップS111ないしS123の処理が、適宜繰り返し行われる。
図24は、図23のステップS120で、図22の視差予測部462が行う視差予測処理を説明するフローチャートである。
ステップS131において、視差予測部462は、MBインデクス計算部461から、(次の)対象ブロックのMBインデクスを取得し、予測ベクトル生成部471に供給する。
さらに、視差予測部462は、可変長復号部442からのヘッダ情報に含まれる撮影視差ベクトルd(視点#2の撮影視差ベクトルd2)の最大値dmax及び最小値dmin等の視差関連情報(図4)を取得し、予測ベクトル生成部471に供給する。
また、視差予測部462は、可変長復号部442からのヘッダ情報に含まれる(次の)対象ブロックの符号化情報(モード関連情報、残差ベクトル、及び、予測用の参照インデクス)を取得し、予測ベクトル生成部471、及び、視差補償部472に供給して、処理は、ステップS131からステップS132に進む。
ステップS132において、視差予測部462は、DPB331から、デコード視差画像D#2のピクチャ(対象ピクチャと同一時刻のピクチャ)を取得し、予測ベクトル生成部471に供給して、処理は、ステップS133に進む。
ステップS133では、予測ベクトル生成部471は、MBインデクス計算部461からのMBインデクスに基づいて、対象ピクチャにおける(次の)対象ブロックを認識し、その対象ブロックの予測ベクトルを生成する予測ベクトル生成処理を行う。
そして、予測ベクトル生成部471は、予測ベクトル生成処理によって得られた対象ブロックの予測ベクトルを、視差補償部472に供給し、処理は、ステップS133からステップS134に進む。
ステップS134では、視差補償部472は、可変長復号部442からのヘッダ情報に含まれる対象ブロックの残差ベクトルと、予測ベクトル生成部471からの予測ベクトルとを加算することにより、対象ブロックの計算視差ベクトルmvを復元し、処理は、ステップS135に進む。
なお、視差補償部472では、対象ブロックの計算視差ベクトルmvが、予測ベクトル生成部471に供給される。予測ベクトル生成部471では、視差補償部472から供給されるの計算視差ベクトルmvを、後に対象ブロックとなるブロックの周辺色ブロックの計算視差ベクトルとして用いて、上述のステップS133の予測ベクトル生成処理が行われる。
ステップS135では、視差補償部472は、DPB331から、対象ブロックの予測用インデクスが割り当てられているデコード色画像C#1のピクチャを、参照ピクチャとして取得して、処理は、ステップS136に進む。
ステップS136では、視差補償部472は、DPB331からの参照ピクチャであるデコード色画像C#1のピクチャについて、対象ブロックの計算視差ベクトルmvに従ってMCを行うことにより、対象ブロックの予測画像を生成して、処理は、ステップS137に進む。
すなわち、視差補償部472は、デコード色画像C#1のピクチャの、対象ブロックの位置から、計算視差ベクトルmvだけずれた位置のブロックである対応ブロックを、予測画像として取得する。
ステップS137では、視差補償部472は、予測画像を、予測画像選択部451に供給して、処理はリターンする。
図25は、図24のステップS133で予測ベクトル生成部471(図22)が行う予測ベクトル生成処理を説明するフローチャートである。
ステップS141において、予測ベクトル生成部471は、可変長復号部442からのヘッダ情報から、既に符号化が行われた、色画像C#2の周辺色ブロック(例えば、図3の3個の周辺色ブロックCAないしCC)の符号化情報を取得し、処理は、ステップS142に進む。
ステップS142では、予測ベクトル生成部471は、DPB331からのデコード視差画像D#2のピクチャ(対象ピクチャと同一時刻のピクチャ)から、対象ブロックと同一位置のブロック(同一位置ブロック)と、その同一位置ブロックの周辺の周辺視差ブロック(ステップS141で符号化情報を取得した周辺色ブロックと同一位置の、デコード視差画像D#2のピクチャのブロック)(例えば、図3の3個の周辺視差ブロックDAないしDC)を取得し、処理は、ステップS143に進む。
ステップS143では、予測ベクトル生成部471は、ステップS141及びS142で取得した情報等を必要に応じて用いて、対象ブロックの符号化情報に含まれるモード関連情報が表す最適インター予測モードとしてのマクロブロックモードについて、図17及び図18で説明したのと同様のベクトル予測処理を行うことで、そのマクロブロックモードについての対象ブロックの予測ベクトルを生成する。
そして、予測ベクトル生成部471は、対象ブロックの予測ベクトルを、視差補償部472に供給して、処理はリターンする。
なお、以上においては、視差情報利用予測方式の他のベクトル予測方式として、MVC方式(メディアン予測方式)を採用したが、視差情報利用予測方式の他のベクトル予測方式としては、その他、例えば、図1及び図2で説明したSAD最小予測方式等を採用することができる。
[符号化コストに基づいて、予測精度を推定する方法]
図26は、符号化コストに基づいて、視差情報利用予測方式、及び、MVC方式(メディアン予測方式)の予測精度を推定する方法を説明する図である。
ここで、図3では、視差(情報)画像D#2の周辺視差ブロックDAないしDCそれぞれと同一位置ブロックDXとのSAD(視差SAD)に基づいて、視差情報利用予測方式、及び、メディアン予測方式(MVC方式)の予測精度を推定し、視差情報利用予測方式、及び、メディアン予測方式のうちの、予測精度が良いと推定されるベクトル予測方式で、予測ベクトルを生成したが、視差情報利用予測方式、及び、メディアン予測方式の予測精度は、その他、対象ブロックの符号化コストに基づいて推定することができる。
図26では、図2のA及び図3と同様に、色画像C#2に、背景と、その背景の手前側に存在するオブジェクトとしての矩形の前景とが写っており、色画像C#2の対象ブロックCXが、矩形の前景の左上のブロックになっている。
このため、対象ブロックCXの左に隣接する周辺色ブロックCA、上に隣接する周辺色ブロックCB、及び、右斜め上に隣接する周辺色ブロックCCは、いずれも、背景のブロックになっている。
以上のように、対象ブロックCXが、前景のブロックであり、周辺色ブロックCAないしCCが、背景のブロックになっている場合には、図2のAで説明したように、メディアン予測方式(メディアン予測器)であっても、SAD最小予測方式(SAD最小予測器)であっても、予測ベクトルの予測精度は悪くなることがある。
そこで、本技術では、視差情報利用予測方式(視差情報利用予測器)の予測ベクトルPMVDを用いて、対象ブロックを符号化したときの符号化コストCOSTDと、メディアン予測方式(メディアン予測器)の予測ベクトルPMVCを用いて、対象ブロックを符号化したときの符号化コストCOSTCとが算出される。
そして、符号化コストCOSTD及びCOSTCに基づき、視差情報利用予測方式の予測ベクトルPMVD、及び、メディアン予測方式の予測ベクトルPMVCのうちの、符号化コストが小さい方の予測ベクトルが、対象ブロックの予測ベクトルに選択される。
なお、以上のように、符号化コストCOSTD及びCOSTCに基づき、対象ブロックの予測ベクトルを選択する場合には、デコーダ側では、符号化コストCOSTD及びCOSTCを算出することが困難であるため、本技術では、視差情報利用予測方式の予測ベクトルPMVD、及び、メディアン予測方式の予測ベクトルPMVCのうちの符号化コストが小さい方(対象ブロックの予測ベクトルに選択された方)を表すフラグである予測器フラグを、デコーダ側に送信する。
そして、デコーダ側では、予測器フラグに基づいて、視差情報利用予測方式の予測ベクトルPMVD、及び、メディアン予測方式の予測ベクトルPMVCのうちの一方が、対象ブロックの予測ベクトルとして生成される。
図27は、符号化コストに基づいて、予測精度を推定する場合の、図12の視差予測部232の構成例を示すブロック図である。
図27において、視差予測部232は、視差検出部541、視差補償部542、予測ベクトル生成部543、コスト関数算出部544、モード選択部545、並びに、符号化情報バッファ546を有する。
視差検出部541には、DPB31に記憶された参照ピクチャであるデコード色画像C#1のピクチャが供給されるとともに、画面並び替えバッファ212から、符号化対象の色画像C#2のピクチャ(対象ピクチャ)が供給される。
さらに、視差検出部541には、MBインデクス計算部231から、対象ブロックのMBインデクスが供給されるとともに、予測ベクトル生成部543から予測ベクトル情報が供給される。
視差検出部541は、MBインデクス計算部231からのMBインデクスに基づいて、画面並び替えバッファ212からの対象ピクチャにおける対象ブロックを認識する。
そして、視差検出部541は、MVC方式と同様に、対象ブロックと、参照ピクチャであるデコード色画像C#1のピクチャとを用いてMEを行うことにより、対象ブロックと、デコード色画像C#1のピクチャにおいて、対象ブロックとのSADを最小にする対応ブロックとのずれを表すずれベクトル、すなわち、対象ブロックの、視点#1に対する視差を表す計算視差ベクトルmvを、マクロブロックタイプごとに検出する。
さらに、視差検出部541は、予測ベクトル生成部543からの予測ベクトル情報から、視差情報利用予測方式の予測ベクトルPMVDと、MVC方式(メディアン予測方式)の予測ベクトルPMVCとを認識し、その予測ベクトルPMVD及びPMVCそれぞれについて、符号化コストを算出する。
すなわち、予測ベクトル生成部543から視差検出部541に供給される予測ベクトル情報には、視差情報利用予測方式の予測ベクトルPMVD、及び、その予測ベクトルPMVDを表す予測器フラグ(例えば、1ビットのフラグ)と、MVC方式の予測ベクトルPMVC、及び、その予測ベクトルPMVCを表す予測器フラグとが含まれている。
視差検出部541は、視差情報利用予測方式の予測ベクトルPMVDを用いて、対象ブロックを符号化したときの符号化コスト(予測ベクトルPMVDについての符号化コスト)COSTDと、MVC方式の予測ベクトルPMVCを用いて、対象ブロックを符号化したときの符号化コスト(予測ベクトルPMVCについての符号化コスト)COSTCとを、例えば、式COST=D+λRに従って算出する。
ここで、式COST=D+λRにおいて、Dは、対象ブロックと、デコード色画像C#1のピクチャの、対象ブロックから計算視差ベクトルmvだけ移動した位置のブロック(対応ブロック)とのSADを表し、λは、Rに対する重みであり、対象ブロックの残差の量子化ステップに応じて設定される。
また、式COST=D+λRにおいて、Rは、計算視差ベクトルmvと予測ベクトルとの差である残差ベクトルの符号量に相当する値である。MVC方式では、残差ベクトルの大きさが大であるほど、符号量は大になる。
視差検出部541は、予測ベクトルPMVDについての符号化コストCOSTDと、予測ベクトルPMVCについての符号化コストCOSTCとを求めると、その符号化コストCOSTD及びCOSTCのうちの小さい方のコストが得られる予測ベクトル(以下、最小コスト予測ベクトルともいう)を、予測ベクトル生成部543から供給される予測ベクトル情報に含まれる視差情報利用予測方式の予測ベクトルPMVD、及び、MVC方式の予測ベクトルPMVCの中から選択し、対象ブロックの予測ベクトルとする。
すなわち、視差検出部541は、視差情報利用予測方式の予測ベクトルPMVD、及び、MVC方式の予測ベクトルPMVCのうちの、符号化コストが小さい方(最小)の予測ベクトルの予測精度が高いと推定し、その符号化コストが小さい予測ベクトルを、対象ブロックの予測ベクトルに選択する。
そして、視差検出部541は、対象ブロックの計算視差ベクトルmvと、最小コスト予測ベクトルとの差分である残差ベクトルを求め、その最小コスト予測ベクトルを表す予測器フラグとともに、視差補償部542に供給する。
視差補償部542には、視差検出部541から、計算視差ベクトルmvの残差ベクトル、及び、予測器フラグが供給される他、DPB31に記憶された参照ピクチャであるデコード色画像C#1のピクチャが供給される。
さらに、視差補償部542には、予測ベクトル生成部543から予測ベクトル情報が供給される。
視差補償部542は、視差検出部541からの予測器フラグに基づき、予測ベクトル生成部543からの予測ベクトル情報に含まれる視差情報利用予測方式の予測ベクトルPMVD、及び、MVC方式の予測ベクトルPMVCの中から、対象ブロックの予測ベクトルとしての最小コスト予測ベクトルを選択する。
さらに、視差補償部542は、視差検出部541からの残差ベクトルと、対象ブロックの予測ベクトル(最小コスト予測ベクトル)とを加算することで、対象ブロックの計算視差ベクトルmvを復元する。
そして、視差補償部542は、DPB31からのデコード色画像C#1のピクチャを、参照ピクチャとして、その参照ピクチャのずれ補償(視差補償)を、対象ブロックの計算視差ベクトルmvを用いて、MVC方式と同様にして行うことで、対象ブロックの予測画像を、マクロブロックタイプごとに生成する。
そして、視差補償部542は、予測画像を、視差検出部541からの残差ベクトル、予測画像を生成するのに用いた参照ピクチャ(ここでは、デコード色画像C#1のピクチャ)に割り当てられている参照インデクス、及び、視差検出部541からの予測器フラグ(最小コスト予測ベクトルを表す予測器フラグ)とともに、コスト関数算出部544に供給する。
予測ベクトル生成部543には、DPB31記憶されたデコード視差画像D#2のピクチャが供給されるとともに、MBインデクス計算部231からMBインデクスが供給される。
また、予測ベクトル生成部543には、撮影視差ベクトルd(視点#2の撮影視差ベクトルd2)の最大値dmax及び最小値dmin等の視差関連情報(図4)が供給される。
さらに、予測ベクトル生成部543には、符号化情報バッファ546から、既に符号化が行われた、色画像C#2の対象ブロックの周辺の周辺色ブロック、すなわち、例えば、図26(図3)の周辺色ブロックCAないしCCの符号化情報が供給される。
ここで、周辺色ブロックの符号化情報には、図13の場合と同様に、その周辺色ブロックが、対象ブロックとして符号化されたときのモード関連情報、計算視差ベクトル、参照インデクス(予測用の参照インデクス)が含まれる。
予測ベクトル生成部543は、MBインデクス計算部231からのMBインデクスに基づいて、画面並び替えバッファ212からの対象ピクチャにおける対象ブロックを認識する。
さらに、予測ベクトル生成部543は、視差関連情報や、デコード視差画像D#2のピクチャ等を用い、図13の予測ベクトル生成部243と同様にして、各マクロブロックタイプ(図9)について、視差情報利用予測方式で、予測ベクトルPMVDを生成するとともに、その視差情報利用予測方式の予測ベクトルPMVCを表す予測器フラグを生成する。
また、予測ベクトル生成部543は、符号化情報バッファ546からの符号化情報のうちの、対象ブロックの周辺の周辺色ブロックCAないしCCの符号化情報等を用い、図13の予測ベクトル生成部243と同様にして、各マクロブロックタイプ(図9)について、MVC方式で、予測ベクトルPMVCを生成するとともに、そのMVC方式の予測ベクトルPMVCを表す予測器フラグを生成する。
そして、予測ベクトル生成部543は、各マクロブロックタイプ(図9)についての、視差情報利用予測方式の予測ベクトルPMVD、及び、その予測ベクトルPMVDを表す予測器フラグと、MVC方式の予測ベクトルPMVC、及び、その予測ベクトルPMVCを表す予測器フラグとを、予測ベクトル情報として、視差検出部541、及び、視差補償部542に供給する。
コスト関数算出部544には、視差補償部542から、予測画像、残差ベクトル、参照インデクス、及び、予測器フラグが供給される他、画面並び替え部バッファ212から、色画像C#2の対象ピクチャが供給される。
コスト関数算出部544は、図13のコスト関数算出部244と同様に、マクロブロックタイプ(図9)ごとに、画面並び替えバッファ212からの対象ピクチャの対象ブロックの符号化に要する符号化コストを、所定のコスト関数に従って求める。
コスト関数算出部544は、マクロブロックタイプごとの符号化コスト(コスト関数値)を求めると、符号化コストを、参照インデクス、予測画像、残差ベクトル、及び、予測器フラグとともに、モード選択部545に供給する。
モード選択部545は、コスト関数算出部544からのマクロブロックタイプごとの符号化コストの中から、最小値である最小コストを検出する。
さらに、モード選択部545は、最小コストが得られたマクロブロックタイプを、最適インター予測モードに選択する。
そして、モード選択部545は、最適インター予測モードを表すモード関連情報、最適インター予測モードの参照インデクス(予測用の参照インデクス)、及び、最適インター予測モードの残差ベクトル、及び、最適インター予測モードの予測器フラグ等を、ヘッダ情報として、可変長符号化部216に供給する。
さらに、モード選択部545は、最適インター予測モードの予測画像と符号化コスト(最小コスト)を、予測画像選択部224に供給する。
なお、モード選択部545では、その他、図13のモード選択部245と同様に、対象ブロックを、スキップマクロブロックとして符号化するかどうかの判定も行われる。
また、モード選択部545は、視差検出部541から、最適インター予測モードでの対象ブロックの符号化に用いられた対象ブロックの計算視差ベクトルを取得する。
そして、モード選択部545は、対象ブロックの計算視差ベクトル、モード関連情報、及び、予測用の参照インデクスを、対象ブロックの符号化情報として、符号化情報バッファ546に供給する。
符号化情報バッファ546は、モード選択部546からの符号化情報を一時記憶する。
図28は、図14のステップS25で、図27の視差予測部232が行う視差予測処理を説明するフローチャートである。
ステップS241において、視差予測部232は、MBインデクス計算部231から、(次の)対象ブロックのMBインデクスを取得し、視差検出部541、及び、予測ベクトル生成部543に供給して、処理は、ステップS242に進む。
ステップS242において、視差予測部232は、DPB31から、参照ピクチャであるデコード色画像C#1のピクチャを取得するとともに、デコード視差画像D#2を取得する。
そして、視差予測部232は、デコード色画像C#1のピクチャを、視差検出部541、及び、視差補償部542に供給するとともに、デコード視差画像D#2を、予測ベクトル生成部543に供給して、処理は、ステップS243に進む。
ステップS243では、予測ベクトル生成部543は、MBインデクス計算部231からのMBインデクスに基づいて、画面並び替えバッファ212から供給される対象ピクチャにおける(次の)対象ブロックを認識する。
さらに、予測ベクトル生成部543は、符号化情報バッファ546に記憶された符号化情報や、DPB31に記憶されたデコード視差画像D#2、その他、視差関連情報等を必要に応じて用いて、各マクロブロックタイプ(図9)について、(次の)対象ブロックの予測ベクトルを生成する予測ベクトル生成処理を行う。
ここで、予測ベクトル生成部543では、予測ベクトル生成処理において、例えば、視差情報利用予測方式の予測ベクトルPMVD、及び、その予測ベクトルPMVDを表す予測器フラグと、MVC方式の予測ベクトルPMVC、及び、その予測ベクトルPMVCを表す予測器フラグが生成される。
予測ベクトル生成部543は、予測ベクトル生成処理によって得られた視差情報利用予測方式の予測ベクトルPMVD、及び、その予測ベクトルPMVDを表す予測器フラグと、MVC方式の予測ベクトルPMVC、及び、その予測ベクトルPMVCを表す予測器フラグを、予測ベクトル情報として、視差検出部541、及び、視差補償部542に供給し、処理は、ステップS243からステップS244に進む。
ステップS244では、視差検出部541は、MBインデクス計算部231からのMBインデクスに基づいて、画面並び替えバッファ212から供給される対象ピクチャにおける対象ブロックを認識する。
そして、視差検出部541は、(次の)対象ブロックについて、計算視差ベクトルmvを検出するとともに、その対象ブロックの符号化に用いる予測ベクトルを選択する(計算)視差ベクトル検出処理を行う。
すなわち、視差ベクトル検出処理では、視差検出部541は、MVC方式と同様に、(次の)対象ブロックについて、DPB31からのデコード色画像C#1のピクチャを参照ピクチャとして用いてMEを行うことにより、対象ブロックの、視点#1に対する視差を表す計算視差ベクトルmvを検出する。
さらに、視差検出部541は、予測ベクトル生成部543からの予測ベクトル情報に含まれる視差情報利用予測方式の予測ベクトルPMVDを用いて、対象ブロックを符号化したときの符号化コスト(予測ベクトルPMVDについての符号化コスト)COSTDを算出する。
また、視差検出部541は、予測ベクトル生成部543からの予測ベクトル情報に含まれるMVC方式の予測ベクトルPMVCを用いて、対象ブロックを符号化したときの符号化コスト(予測ベクトルPMVCについての符号化コスト)COSTCを算出する。
そして、視差検出部541は、予測ベクトルPMVD及びPMVCの中で、符号化コストCOSTD及びCOSTCのうちの小さい方の符号化コストが得られる予測ベクトル(最小コスト予測ベクトル)を、対象ブロックの予測ベクトルに選択する。
さらに、視差検出部541は、対象ブロックの計算視差ベクトルmvと、最小コスト予測ベクトルである予測ベクトルとの差分である残差ベクトルを求め、その予測ベクトル(最小コスト予測ベクトル)を表す予測器フラグとともに、視差補償部542に供給して、処理は、ステップS244からステップS245に進む。
ステップS245では、視差補償部542は、視差検出部541からの残差ベクトル、及び、予測器フラグと、予測ベクトル生成部543からの予測ベクトル情報とから、対象ブロックの計算視差ベクトルmvを復元する。
さらに、視差補償部542は、DPB31からのデコード色画像C#1のピクチャを、参照ピクチャとして、対象ブロックの計算視差ベクトルmvに従ってMCを行うことにより、(次の)対象ブロックの予測画像を生成する。
すなわち、視差補償部542は、デコード色画像C#1のピクチャの、対象ブロックの位置から、計算視差ベクトルmvだけずれた位置のブロックである対応ブロックを、予測画像として取得する。
そして、視差補償部542は、予測画像を、視差検出部541からの残差ベクトル、及び、予測器フラグ、並びに、予測画像を生成するのに用いた参照ピクチャ(ここでは、デコード色画像C#1のピクチャ)に割り当てられている参照インデクスとともに、コスト関数算出部544に供給して、処理は、ステップS245からステップS246に進む。
ステップS246では、コスト関数算出部544は、マクロブロックタイプ(図9)ごとに、画面並び替えバッファ212からの対象ピクチャの対象ブロックの符号化に要する符号化コストを、所定のコスト関数に従って求め、視差補償部542からの参照インデクス、予測器フラグ、予測画像、及び、残差ベクトルとともに、モード選択部545に供給して、処理は、ステップS247に進む。
ステップS247では、モード選択部545は、コスト関数算出部544からのマクロブロックタイプごとの符号化コストの中から、最小値である最小コストを検出する。
さらに、モード選択部545は、最小コストが得られたマクロブロックタイプを、最適インター予測モードに選択して、処理は、ステップS247からステップS248に進む。
ステップS248では、モード選択部545は、最適インター予測モードの予測画像と符号化コスト(最小コスト)を、予測画像選択部224に供給して、処理は、ステップS249に進む。
ステップS249では、モード選択部545は、最適インター予測モードを表すモード関連情報、最適インター予測モードの参照インデクス(予測用の参照インデクス)、最適インター予測モードの残差ベクトル、及び、最適インター予測モードの予測器フラグを、ヘッダ情報として、可変長符号化部216に供給する。
さらに、ステップS249では、モード選択部545は、視差検出部541から、最適インター予測モードでの対象ブロックの符号化に用いられた対象ブロックの計算視差ベクトルを取得する。
そして、モード選択部545は、対象ブロックの計算視差ベクトル、モード関連情報、及び、予測用の参照インデクスを、対象ブロックの符号化情報として、符号化情報バッファ546に供給して記憶させ、処理はリターンする。
図29は、図28のステップS243で図27の予測ベクトル生成部543が行う予測ベクトル生成処理を説明するフローチャートである。
ステップS251において、予測ベクトル生成部543は、符号化情報バッファ546から、既に符号化が行われた、色画像C#2の対象ブロックの周辺色ブロック(例えば、図26(図3)の3個の周辺色ブロックCAないしCC)の符号化情報を取得し、処理は、ステップS252に進む。
ステップS252では、予測ベクトル生成部543は、DPB31からのデコード視差画像D#2のピクチャ(対象ピクチャと同一時刻のピクチャ)から、対象ブロックと同一位置のブロック(同一位置ブロック)を取得し、処理は、ステップS253に進む。
以下、ステップS253ないしS256では、各マクロブロックタイプについて、ステップS251で取得した符号化情報、及び、ステップS252で取得した同一位置ブロックを必要に応じて用いて、視差情報利用予測方式の予測ベクトルPMVD、及び、その予測ベクトルPMVDを表す予測器フラグと、MVC方式の予測ベクトルPMVC、及び、その予測ベクトルPMVCを表す予測器フラグとを生成するベクトル予測処理が行われ、処理は、リターンする。
すなわち、ステップS253において、予測ベクトル生成部543は、16×16タイプについて、ベクトル予測処理を行い、処理は、ステップS254に進む。
ステップS254では、予測ベクトル生成部543は、16×8タイプについて、ベクトル予測処理を行い、処理は、ステップS255に進む。
ステップS255では、予測ベクトル生成部543は、8×16タイプについて、ベクトル予測処理を行い、処理は、ステップS256に進む。
ステップS256では、予測ベクトル生成部543は、8×8以下タイプについて、ベクトル予測処理を行い、処理はリターンする。
図30は、図29のステップS253ないしS256で図27の予測ベクトル生成部543が各マクロブロックタイプについて行うベクトル予測処理を説明するフローチャートである。
ステップS261において、予測ベクトル生成部543は、周辺色ブロックの符号化情報に基づき、図11で説明したようにして、MVC方式の予測ベクトルPMVCを求めるとともに、その予測ベクトルPMVCを表す予測器フラグを生成し、処理は、ステップS262に進む。
ステップS262では、予測ベクトル生成部543は、同一位置ブロック、すなわち、デコード視差画像D#2の、対象ブロックと同一位置のブロックから、視差情報利用予測方式の予測ベクトルPMVDを求めるとともに、その予測ベクトルPMVDを表す予測器フラグを生成し、処理はリターンする。
図31は、図28のS244において図27の視差検出部541が行う視差ベクトル検出処理を説明するフローチャートである。
ステップS271において、視差検出部541は、対象ブロックについて、DPB31からのデコード色画像C#1のピクチャを参照ピクチャとして用いてMEを行うことにより、対象ブロックの計算視差ベクトルmvを検出し、処理は、ステップS272に進む。
ステップS272では、視差検出部541は、予測ベクトル生成部543からの予測ベクトル情報に含まれるMVC方式の予測ベクトルPMVCを用いて、対象ブロックを符号化したときの符号化コスト(予測ベクトルPMVCについての符号化コスト)COSTCを算出し、処理は、ステップS273に進む。
ステップS273では、視差検出部541は、予測ベクトル生成部543からの予測ベクトル情報に含まれる視差情報利用予測方式(視差情報利用予測器)の予測ベクトルPMVDを用いて、対象ブロックを符号化したときの符号化コスト(予測ベクトルPMVDについての符号化コスト)COSTDを算出し、処理は、ステップS274に進む。
ステップS274では、視差検出部541は、符号化コストCOSTCと、符号化コストCOSTDとの大小関係を判定する。
ステップS274において、符号化コストCOSTCが、符号化コストCOSTDより大きいと判定された場合、処理は、ステップS275に進み、視差検出部541は、視差情報利用予測方式の予測ベクトルPMVDを、対象ブロックの予測ベクトルとしての最小コスト予測ベクトルに選択し、対象ブロックの予測ベクトルが、視差情報利用予測方式の予測ベクトルPMVDであることを表す値「視差画像モード」を、予測器フラグに設定して、処理はリターンする。
また、ステップS274において、符号化コストCOSTCが、符号化コストCOSTDより大きくないと判定された場合、処理は、ステップS276に進み、視差検出部541は、MVC方式の予測ベクトルPMVCを、対象ブロックの予測ベクトルとしての最小コスト予測ベクトルに選択し、対象ブロックの予測ベクトルが、MVC方式の予測ベクトルPMVCであることを表す値「MVCモード」を、予測器フラグに設定して、処理はリターンする。
以上のように、図27の視差予測部232において、視差情報利用予測方式の予測ベクトルPMVDと、他のベクトル予測方式としてのMVC方式の予測ベクトルPMVCとを生成し、予測ベクトルPMVDとを用いた場合と、予測ベクトルPMVCとを用いた場合とのそれぞれについて、対象ブロックの符号化に要する符号化コストCOSTD及びCOSTCを算出し、符号化コストCOSTD及びCOSTCに基づいて、予測ベクトルPMVD及びPMVDのうちの、符号化コストが小さい方が、予測精度が高いと推定される予測ベクトルであるとして、対象ブロックの処理に用いる予測ベクトルに選択することにより、残差ベクトルの符号量が少なくなる、予測精度の良い予測ベクトルを得ることができる。
また、残差ベクトルの符号量が少なくなることにより、対象ブロックの残差に、符号量を割り当てることができ、その結果、色画像C#2の復号画像の画質を向上させることができる。
なお、図27の視差予測部232では、予測ベクトルPMVD及びPMVDのうちの、対象ブロックの予測ベクトルに選択された方を表す予測器フラグが生成され、符号化データのヘッダ情報に含められるので、デコーダ側では、その予測器フラグに基づいて、対象ブロックの予測ベクトルを、容易に求めることができる。
ここで、予測器フラグは、符号化データのヘッダ情報に含める他、符号化データとは、別に提供(送信)することが可能である。
図32は、図12の視差予測部232が図27に示したように構成される場合の、図21の視差予測部462の構成例を示すブロック図である。
なお、図中、図22の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は適宜省略する。
図32において、視差予測部462は、視差補償部472を有する点で、図22の場合と共通する。
但し、図32において、視差予測部462は、予測ベクトル生成部471に代えて、予測ベクトル生成部671を有する点で、図22の場合と相違する。
予測ベクトル生成部671には、DPB331記憶されたデコード視差画像D#2のピクチャが供給されるとともに、MBインデクス計算部461からMBインデクスが供給される。
また、予測ベクトル生成部671には、可変長復号部442からのヘッダ情報に含まれる撮影視差ベクトルd(視点#2の撮影視差ベクトルd2)の最大値dmax及び最小値dmin等の視差関連情報(図4)が供給される。
さらに、予測ベクトル生成部671には、可変長復号部442からのヘッダ情報に含まれる、既に復号が行われた、色画像C#2の対象ブロックの周辺の周辺色ブロック(例えば、図26(図3)の周辺色ブロックCAないしCC)の符号化情報、及び、対象ブロックの符号化情報が供給される。
ここで、可変長復号部442からのヘッダ情報に含まれる周辺色ブロックの符号化情報には、その周辺色ブロックのモード関連情報(マクロブロックタイプ)、及び、参照インデクス(予測用の参照インデクス)が含まれ、可変長復号部442からのヘッダ情報に含まれる対象ブロックの符号化情報には、その対象ブロックのモード関連情報(マクロブロックタイプ)、残差ベクトル、及び、参照インデクス(予測用の参照インデクス)が含まれる。
また、予測ベクトル生成部671には、可変長復号部442からのヘッダ情報に含まれる対象ブロックの予測器フラグが供給される。
さらに、予測ベクトル生成部671には、視差補償部472から、既に復号が行われた周辺色ブロックの計算視差ベクトルが供給される。
予測ベクトル生成部671は、MBインデクス計算部461からのMBインデクスに基づいて、対象ピクチャにおける対象ブロックを認識する。
さらに、予測ベクトル生成部671は、可変長復号部442からのヘッダ情報に含まれる予測器フラグ、視差関連情報、及び、符号化情報、DPB331記憶されたデコード視差画像D#2のピクチャ、及び、視差補償部472からの周辺色ブロックの計算視差ベクトルを必要に応じて用い、図27の予測ベクトル生成部543と同様に、視差情報利用予測方式の予測ベクトルPMVD、又は、MVC方式の予測ベクトルPMVCを生成し、対象ブロックの予測ベクトルとして、視差補償部472に供給する。
すなわち、予測ベクトル生成部671は、予測器フラグに基づいて、対象ブロックの予測ベクトルを生成するベクトル予測方式を認識する。
さらに、予測ベクトル生成部671は、対象ブロックの符号化情報に基づき、対象ブロックのマクロブロックモードを認識し、そのマクロブロックモードについて、視差情報利用予測方式、及び、MVC方式のうちの、予測器フラグに基づいて認識した方のベクトル予測方式で、対象ブロックの予測ベクトルを生成する。
図33は、図23のステップS120で、図32の視差予測部462が行う視差予測処理を説明するフローチャートである。
ステップS331において、視差予測部462は、MBインデクス計算部461から、(次の)対象ブロックのMBインデクスを取得し、予測ベクトル生成部671に供給する。
さらに、視差予測部462は、可変長復号部442からのヘッダ情報に含まれる撮影視差ベクトルd(視点#2の撮影視差ベクトルd2)の最大値dmax及び最小値dmin等の視差関連情報(図4)を取得し、予測ベクトル生成部671に供給する。
また、視差予測部462は、可変長復号部442からのヘッダ情報に含まれる(次の)対象ブロックの符号化情報(モード関連情報、残差ベクトル、及び、予測用の参照インデクス)、及び、予測器フラグを取得し、予測ベクトル生成部671、及び、視差補償部472に供給して、処理は、ステップS331からステップS332に進む。
ステップS332において、視差予測部462は、DPB331から、デコード視差画像D#2のピクチャ(対象ピクチャと同一時刻のピクチャ)を取得し、予測ベクトル生成部671に供給して、処理は、ステップS333に進む。
ステップS333では、予測ベクトル生成部671は、MBインデクス計算部461からのMBインデクスに基づいて、対象ピクチャにおける(次の)対象ブロックを認識する。さらに、予測ベクトル生成部671は、予測器フラグに基づき、ステップS331及びS332で供給される情報を必要に応じて用いて、視差情報利用予測方式、又は、MVC方式で、対象ブロックの予測ベクトルを生成する予測ベクトル生成処理を行う。
そして、予測ベクトル生成部671は、予測ベクトル生成処理によって得られた対象ブロックの予測ベクトルを、視差補償部472に供給し、処理は、ステップS333からステップS334に進む。
以下、ステップS334ないしS337では、図24のステップS134ないしS137とそれぞれ同様の処理が行われる。
図34は、図33のステップS333で図32の予測ベクトル生成部671が行う予測ベクトル生成処理を説明するフローチャートである。
ステップS341において、予測ベクトル生成部671は、予測器フラグが、値「視差画像モード」及び「MVCモード」のうちのいずれに設定されているかを判定する。
ステップS341において、予測器フラグが、値「視差画像モード」に設定されていると判定された場合、処理は、ステップS342に進み、予測ベクトル生成部671は、デコード視差画像D#2から、視差情報利用予測方式(視差情報利用予測器)の予測ベクトルPMVDを、対象ブロックの予測ベクトルとして生成し、処理はリターンする。
また、ステップS341において、予測器フラグが、値「MVCモード」に設定されていると判定された場合、処理は、ステップS343に進み、予測ベクトル生成部671は、対象ブロックの符号化情報、並びに、周辺色ブロックの符号化情報及び計算視差ベクトルを必要に応じて用いて、図10で説明したようにして、MVC方式の予測ベクトルPMVCを、対象ブロックの予測ベクトルとして生成し、処理はリターンする。
以上のように、図32の予測ベクトル生成部671では、予測器フラグによって、対象ブロックの予測ベクトルが、視差情報利用予測方式の予測ベクトルPMVDであるか、又は、MVC方式の予測ベクトルPMVCであるかを認識することができるので、図22の予測ベクトル生成部471に比較して、処理の負荷が軽減される。
なお、以上においては、エンコーダ12において、視差情報利用予測方式の予測ベクトルと、MVC方式の予測ベクトルとのうちの、符号化コストが小さい方の予測ベクトルである最小コスト予測ベクトルを、対象ブロックの予測ベクトルに選択し、その最小コスト予測ベクトルを表す予測器フラグを、デコーダ312に送信することとしたが、その他、エンコーダ12では、例えば、視差情報利用予測方式の予測ベクトル、及び、その他の1以上のベクトルの中で、符号化コストが最小のベクトルを、対象ブロックの予測ベクトルに選択することができる。
すなわち、エンコーダ12では、例えば、視差情報利用予測方式の予測ベクトル、周辺色ブロックCA,CB、及び、CC(図3)(図26)の計算視差ベクトルの4個のベクトルの中で、符号化コストが最小のベクトルを、対象ブロックの予測ベクトルに選択することができる。
この場合、予測器フラグは、対象ブロックの予測ベクトルが、視差情報利用予測方式の予測ベクトル、周辺色ブロックCA,CB、及び、CCの計算視差ベクトルの4個のベクトルのうちのいずれであるかを表すフラグとなる。
図35ないし図37は、ヘッダ情報に含められる予測器フラグの例を示す図である。
図27で説明したように、モード選択部545において、予想器フラグは、ヘッダ情報に含められて、可変長符号化部216に供給される。
可変長符号化部216では、ヘッダ情報が、符号化データのヘッダに含められる。
図35ないし図37は、符号化データがMVC(AVC)方式の符号化データである場合に、そのヘッダに含められる予測器フラグを示している。
ここで、予測器フラグは、マクロブロックを最小単位として設定することができる。
また、予測器フラグは、対象ブロックを8×8画素のパーティション以上のサイズに分割するマクロブロックタイプ(以下、8×8以上タイプともいう)、すなわち、対象ブロックを8×8画素のパーティションに分割するマクロブロックタイプ(8×8タイプ)や、対象ブロックを16×8画素のパーティションに分割するマクロブロックタイプ(16×8タイプ)、対象ブロックを8×16画素のパーティションに分割するマクロブロックタイプ(8×16タイプ)のパーティションを最小単位として設定することができる。
さらに、予測器フラグは、対象ブロックを8×8画素のパーティションより小さいサイズのパーティション、すなわち、8×4画素、4×8画素、又は4×4画素のサブパーティションに分割するマクロブロックタイプ(以下、8×8未満タイプともいう)のパーティション(サブパーティション)を最小単位として設定することができる。
図35は、マクロブロックを最小単位として設定される予測器フラグを示す図である。
すなわち、図35は、MVC方式のmb_pred(mb_type)のシンタクスを示している。
予測器フラグを、マクロブロックを最小単位として設定する場合、予測器フラグは、mb_pred(mb_type)に含められる。
図35において、mv_pred_mode_l0及びmv_pred_mode_l1が、予測器フラグを示している。
また、図35において、mv_pred_mode_l0は、L0予測が行われる場合に使用される予測器フラグであり、mv_pred_mode_l1は、L1予測が行われる場合に使用される予測器フラグである。
図36は、8×8以上タイプのパーティションを最小単位として設定される予測器フラグを示す図である。
すなわち、図36は、MVC方式のmb_pred(mb_type)の一部のシンタクスを示している。
予測器フラグを、8×8以上タイプのパーティションを最小単位として設定する場合、予測器フラグは、mb_pred(mb_type)に含められる。
図36において、mv_pred_mode_l0[mbPartIdx]及びmv_pred_mode_l1[mbPartIdx]が、予測器フラグを示している。
また、図36において、mv_pred_mode_l0[mbPartIdx]は、L0予測が行われる場合に使用される予測器フラグであり、mv_pred_mode_l1[mbPartIdx]は、L1予測が行われる場合に使用される予測器フラグである。
なお、予測器フラグmv_pred_mode_l0[mbPartIdx]及びmv_pred_mode_l1[mbPartIdx]の引数mbPartIdxは、8×8以上タイプの各パーティションを区別するためのインデクスである。
図37は、8×8未満タイプのパーティションを最小単位として設定される予測器フラグを示す図である。
すなわち、図37は、MVC方式のsub_mb_pred(mb_type)の一部のシンタクスを示している。
予測器フラグを、8×8未満タイプのパーティションを最小単位として設定する場合、予測器フラグは、mb_pred(mb_type)、及び、sub_mb_pred(mb_type)に含められる。
なお、予測器フラグを、8×8未満タイプのパーティションを最小単位として設定する場合に、mb_pred(mb_type)に含められる、予測器フラグは、図36に示した通りであり、図37は、sub_mb_pred(mb_type)に含められる予測器フラグを示している。
図37において、mv_pred_mode_l0[mbPartIdx][subMbPartIdx]及びmv_pred_mode_l1[mbPartIdx][subMbPartIdx]が、予測器フラグを示している。
また、図37において、mv_pred_mode_l0[mbPartIdx][subMbPartIdx]は、L0予測が行われる場合に使用される予測器フラグであり、mv_pred_mode_l1[mbPartIdx][subMbPartIdx]は、L1予測が行われる場合に使用される予測器フラグである。
なお、予測器フラグmv_pred_mode_l0[mbPartIdx][subMbPartIdx]及びmv_pred_mode_l1[mbPartIdx][subMbPartIdx]の引数subMbPartIdxは、8×8未満タイプの各パーティションを区別するためのインデクスである。
ここで、予測器フラグを、マクロブロックを最小単位として設定する場合には、符号化データのヘッダのデータ量(オーバーヘッドのデータ量)の増加を最小限に抑えることができる。
一方、予測器フラグを、8×8未満タイプのパーティション(サブパーティション)を最小単位として設定する場合には、小さいサイズのパーティションごとに、予測ベクトルを制御することができるので、予測精度を向上させることができる。
また、予測器フラグを、8×8以上タイプのパーティションを最小単位として設定する場合には、符号化データのヘッダのデータ量の増加を抑えつつ、マクロブロックを最小単位とする場合と、8×8未満タイプのパーティションを最小単位とする場合との中間の予測精度を実現することができる。
[視差ベクトルのばらつき具合に基づいて、予測精度を推定する方法]
図38は、視差ベクトルのばらつき具合に基づいて、視差情報利用予測方式、及び、MVC方式(メディアン予測方式)の予測精度を推定する方法を説明する図である。
ここで、図3では、視差(情報)画像D#2の周辺視差ブロックDAないしDCそれぞれと同一位置ブロックDXとの視差SADに基づいて、視差情報利用予測方式、及び、メディアン予測方式(MVC方式)の予測精度を推定し、視差情報利用予測方式、及び、メディアン予測方式のうちの、予測精度が良いと推定されるベクトル予測方式で、予測ベクトルを生成したが、視差情報利用予測方式、及び、メディアン予測方式の予測精度は、その他、対象ブロックの周辺の周辺色ブロックの計算視差ベクトルのばらつき具合に基づいて推定することができる。
図38では、図2のA及び図3と同様に、色画像C#2に、背景と、その背景の手前側に存在するオブジェクトとしての矩形の前景とが写っており、色画像C#2の対象ブロックCXが、矩形の前景の左上のブロックになっている。
このため、対象ブロックCXの左に隣接する周辺色ブロックCA、上に隣接する周辺色ブロックCB、及び、右斜め上に隣接する周辺色ブロックCCは、いずれも、背景のブロックになっている。
以上のように、対象ブロックCXが、前景のブロックであり、周辺色ブロックCAないしCCが、背景のブロックになっている場合には、図2のAで説明したように、メディアン予測方式(メディアン予測器)であっても、SAD最小予測方式(SAD最小予測器)であっても、予測ベクトルの予測精度は悪くなることがある。
そこで、本技術では、対象ブロックの周辺の、既に符号化(復号)された周辺色ブロックCAないしCCそれぞれの計算視差ベクトルのばらつき具合としての、例えば、分散(や標準偏差等)が求められる。
そして、本技術では、周辺色ブロックCAないしCCそれぞれの計算視差ベクトルのばらつき具合としての分散に基づいて、視差情報利用予測方式(視差情報利用予測器)で生成される予測ベクトルと、他のベクトル予測方式としての、例えば、メディアン予測方式(メディアン予測器)で生成される予測ベクトルとのうちの、予測精度が高いと推定される予測ベクトルが、対象ブロックCXの処理に用いる予測ベクトルとして生成される。
すなわち、本技術では、周辺色ブロックCAないしCCそれぞれの計算視差ベクトルのばらつき具合としての分散(以下、周辺ベクトル分散ともいう)が求められ、その分散が所定の閾値以上であるかどうかが判定される。
そして、周辺ベクトル分散が、所定の閾値以上でない場合、すなわち、周辺色ブロックCAないしCCそれぞれの計算視差ベクトルに、それほど違いがない場合には、メディアン予測方式で生成される予測ベクトルの予測精度に問題がないと推定し、メディアン予測方式(MVC方式)で、対象ブロックCXの予測ベクトルが生成される。
一方、周辺ベクトル分散が、所定の閾値以上である場合、すなわち、周辺色ブロックCAないしCCそれぞれの計算視差ベクトルのばらつき具合が、大きい場合には、視差情報利用予測方式で生成される予測ベクトルの方が、メディアン予測方式で生成される予測ベクトルよりも、予測精度が高いと推定し、視差情報利用予測方式で、対象ブロックCXの予測ベクトルが生成される。
図39は、符号化コストに基づいて、予測精度を推定する場合の、図12の視差予測部232の構成例を示すブロック図である。
なお、図中、図13の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図39において、視差予測部232は、視差検出部241、視差補償部242、コスト関数算出部244、モード選択部245、及び、符号化情報バッファ246を有する点で、図13の場合と共通する。
但し、図39では、視差予測部232は、予測ベクトル生成部243に代えて、予測ベクトル生成部743を有する点で、図13の場合と異なる。
予測ベクトル生成部743には、DPB31記憶されたデコード視差画像D#2のピクチャが供給されるとともに、MBインデクス計算部231からMBインデクスが供給される。
また、予測ベクトル生成部743には、撮影視差ベクトルd(視点#2の撮影視差ベクトルd2)の最大値dmax及び最小値dmin等の視差関連情報(図4)が供給される。
さらに、予測ベクトル生成部743には、符号化情報バッファ246から、既に符号化が行われた、色画像C#2の対象ブロックの周辺の周辺色ブロック(例えば、図38の周辺色ブロックCAないしCC)の符号化情報が供給される。
ここで、周辺色ブロックの符号化情報には、図13で説明したように、その周辺色ブロックが、対象ブロックとして符号化されたときのモード関連情報、計算視差ベクトル、参照インデクス(予測用の参照インデクス)が含まれる。
予測ベクトル生成部743は、MBインデクス計算部231からのMBインデクスに基づいて、画面並び替えバッファ212からの対象ピクチャにおける対象ブロックを認識する。
さらに、予測ベクトル生成部743は、符号化情報バッファ246からの符号化情報のうちの、対象ブロックの周辺の周辺色ブロック(例えば、図38の周辺色ブロックCAないしCC)それぞれの符号化情報等に基づき、視差情報利用予測方式で生成される予測ベクトルと、MVC方式で生成される予測ベクトルとのうちの、予測精度が高いと推定される予測ベクトルを、対象ブロックの処理に用いる予測ベクトルとして生成する。
予測ベクトル生成部743は、各マクロブロックタイプ(図9)について、予測ベクトルを生成し、予測ベクトル情報として、視差検出部241、視差補償部242、及び、コスト関数算出部244に供給する。
図40は、図15のステップS43で図39の予測ベクトル生成部743が行う予測ベクトル生成処理を説明するフローチャートである。
ステップS451において、予測ベクトル生成部743は、符号化情報バッファ246から、既に符号化が行われた、色画像C#2の対象ブロックの周辺の周辺色ブロック、すなわち、例えば、図38(図3)の3個の周辺色ブロックCAないしCCの符号化情報を取得し、処理は、ステップS452に進む。
ステップS452では、予測ベクトル生成部743は、DPB31からのデコード視差画像D#2のピクチャ(対象ピクチャと同一時刻のピクチャ)から、対象ブロックと同一位置のブロック(同一位置ブロック)を取得し、処理は、ステップS453に進む。
以下、ステップS453ないしS456では、各マクロブロックタイプについて、ステップS451及びS452で取得した情報を必要に応じて用いて、対象ブロックの予測ベクトルを生成するベクトル予測処理が行われ、処理は、リターンする。
すなわち、ステップS453において、予測ベクトル生成部743は、6×16タイプについて、ベクトル予測処理を行い、処理は、ステップS454に進む。
ステップS454では、予測ベクトル生成部743は、16×8タイプについて、ベクトル予測処理を行い、処理は、ステップS455に進む。
ステップS455では、予測ベクトル生成部743は、8×16タイプについて、ベクトル予測処理を行い、処理は、ステップS456に進む。
ステップS456では、予測ベクトル生成部743は、8×8以下タイプについて、ベクトル予測処理を行い、処理はリターンする。
図41は、図40のステップS453ないしS456で図39の予測ベクトル生成部743(図39)が各マクロブロックタイプについて行うベクトル予測処理を説明するフローチャートである。
ステップS461において、予測ベクトル生成部743は、符号化情報に基づき、色画像C#2の、対象ブロックの周辺の周辺色ブロック(例えば、図38の3個の周辺色ブロックCAないしCC)の中の、参照インデクスが、対象ブロックと一致する参照インデクス一致ブロックの数を判定する。
ステップS461において、参照インデクス一致ブロックの数が0個であると判定された場合、処理は、ステップS464に進み、予測ベクトル生成部743は、図13の予測ベクトル生成部243と同様に、視差情報利用予測方式によって、デコード視差画像D#2から、対象ブロックの予測ベクトルを生成し、処理は、リターンする。
また、ステップS461において、参照インデクス一致ブロックの数が1個であると判定された場合、処理は、ステップS465に進み、予測ベクトル生成部743は、MVC方式によって、対象ブロックの予測ベクトルを生成し、処理は、リターンする。
一方、ステップS461において、参照インデクス一致ブロックの数が2個以上(ここでは、2個又は3個)であると判定された場合、処理は、ステップS462に進み、予測ベクトル生成部743は、対象ブロックの周辺の周辺色ブロック(例えば、図38の3個の周辺色ブロックCAないしCC)のうちの、2個以上の参照インデクス一致ブロックそれぞれの計算視差ベクトルのばらつき具合としての分散である周辺ベクトル分散を求め、処理は、ステップS463に進む。
ステップS463では、予測ベクトル生成部743は、周辺ベクトル分散が、所定の閾値以上であるかどうかを判定する。
ステップS463において、周辺ベクトル分散が、所定の閾値以上であると判定された場合、対象ブロックと周辺色ブロックとの間で、視差の相関がなく、MVC方式の予測ベクトルの予測精度が悪いと推定されるので、処理は、ステップS464に進み、予測ベクトル生成部743は、視差情報利用予測方式によって、デコード視差画像D#2から、対象ブロックの予測ベクトルを生成し、処理は、リターンする。
また、ステップS463において、周辺ベクトル分散が、所定の閾値以上でないと判定された場合、MVC方式の予測ベクトルの予測精度が良いと推定されるので、処理は、ステップS465に進み、予測ベクトル生成部743は、MVC方式によって、対象ブロックの予測ベクトルを生成し、処理は、リターンする。
図42は、図12の視差予測部232が図39に示したように構成される場合の、図21の視差予測部462の構成例を示すブロック図である。
なお、図中、図22の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は適宜省略する。
図42において、視差予測部462は、視差補償部472を有する点で、図22の場合と共通する。
但し、図42において、視差予測部462は、予測ベクトル生成部471に代えて、予測ベクトル生成部871を有する点で、図22の場合と相違する。
予測ベクトル生成部871には、DPB331記憶されたデコード視差画像D#2のピクチャが供給されるとともに、MBインデクス計算部461からMBインデクスが供給される。
また、予測ベクトル生成部871には、可変長復号部442からのヘッダ情報に含まれる撮影視差ベクトルd(視点#2の撮影視差ベクトルd2)の最大値dmax及び最小値dmin等の視差関連情報(図4)が供給される。
さらに、予測ベクトル生成部871には、可変長復号部442からのヘッダ情報に含まれる、既に復号が行われた、色画像C#2の象ブロックの周辺の周辺色ブロック(例えば、図38の周辺色ブロックCAないしCC)の符号化情報、及び、対象ブロックの符号化情報が供給される。
ここで、図22の場合と同様に、可変長復号部442からのヘッダ情報に含まれる周辺色ブロックの符号化情報には、その周辺色ブロックのモード関連情報(マクロブロックタイプ)、及び、参照インデクス(予測用の参照インデクス)が含まれ、可変長復号部442からのヘッダ情報に含まれる対象ブロックの符号化情報には、その対象ブロックのモード関連情報(マクロブロックタイプ)、残差ベクトル、及び、参照インデクス(予測用の参照インデクス)が含まれる。
また、予測ベクトル生成部871には、視差補償部472から、既に復号が行われた周辺色ブロックの計算視差ベクトルが供給される。
予測ベクトル生成部871は、MBインデクス計算部461からのMBインデクスに基づいて、対象ピクチャにおける対象ブロックを認識する。
さらに、予測ベクトル生成部871は、DPB331記憶されたデコード視差画像D#2のピクチャ、視差関連情報、符号化情報、及び、視差補償部472からの周辺色ブロックの計算視差ベクトルを必要に応じて用い、図39の予測ベクトル生成部743と同様に、対象ブロックの予測ベクトルを生成し、視差補償部472に供給する。
すなわち、予測ベクトル生成部871は、対象ブロックの符号化情報に基づき、対象ブロックのマクロブロックモードを認識し、そのマクロブロックモードについて、視差情報利用予測方式で生成される予測ベクトルと、MVC方式で生成される予測ベクトルとのうちの、予測精度が高いと推定される予測ベクトルを、対象ブロックの予測ベクトルとして生成する。
図43は、図24のステップS133で図42の予測ベクトル生成部871が行う予測ベクトル生成処理を説明するフローチャートである。
ステップS541において、予測ベクトル生成部871は、可変長復号部442からのヘッダ情報から、既に符号化が行われた、色画像C#2の周辺色ブロック(例えば、図38の3個の周辺色ブロックCAないしCC)の符号化情報を取得し、処理は、ステップS542に進む。
ステップS542では、予測ベクトル生成部871は、DPB331からのデコード視差画像D#2のピクチャ(対象ピクチャと同一時刻のピクチャ)から、対象ブロックと同一位置のブロック(同一位置ブロック)を取得し、処理は、ステップS543に進む。
ステップS543では、予測ベクトル生成部871は、ステップS541及びS542で取得した情報等を必要に応じて用いて、対象ブロックの符号化情報に含まれるモード関連情報が表す最適インター予測モードとしてのマクロブロックモードについて、図41で説明したのと同様のベクトル予測処理を行うことで、そのマクロブロックモードについての対象ブロックの予測ベクトルを生成する。
そして、予測ベクトル生成部871は、対象ブロックの予測ベクトルを、視差補償部472に供給して、処理はリターンする。
以上のように、色画像C#2の、対象ブロックの周辺の周辺色ブロックの計算視差ベクトルのばらつき具合としての周辺ベクトル分散に基づいて、視差情報利用予測方式の予測ベクトル、及び、MVC方式の予測ベクトルのうちの、予測精度が高いと推定される予測ベクトルを、対象ブロックの処理に用いる予測ベクトルとして生成する場合には、周辺ベクトル分散の方が、視差SADよりも少ない演算量で求めることができるので、図3で説明した視差SADに基づく場合よりも容易に、予測精度の良い予測ベクトルを得ることができる。
なお、以上においては、視差情報利用予測方式の他のベクトル予測方式として、MVC方式(メディアン予測方式)を採用したが、視差情報利用予測方式の他のベクトル予測方式としては、その他、例えば、図1及び図2で説明したSAD最小予測方式を採用することができる。
[本技術を適用したコンピュータの説明]
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図45は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク805やROM803に予め記録しておくことができる。
あるいはまた、プログラムは、リムーバブル記録媒体811に格納(記録)しておくことができる。このようなリムーバブル記録媒体811は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体811としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
なお、プログラムは、上述したようなリムーバブル記録媒体811からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク805にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
コンピュータは、CPU(Central Processing Unit)802を内蔵しており、CPU802には、バス801を介して、入出力インタフェース810が接続されている。
CPU802は、入出力インタフェース810を介して、ユーザによって、入力部807が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)803に格納されているプログラムを実行する。あるいは、CPU802は、ハードディスク805に格納されたプログラムを、RAM(Random Access Memory)804にロードして実行する。
これにより、CPU802は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU802は、その処理結果を、必要に応じて、例えば、入出力インタフェース810を介して、出力部806から出力、あるいは、通信部808から送信、さらには、ハードディスク805に記録等させる。
なお、入力部807は、キーボードや、マウス、マイク等で構成される。また、出力部806は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
すなわち、本技術は、MVCを利用した符号化、及び、復号に限定されるものではない。すなわち、本技術は、予測ベクトルを用いて、複数の視点の画像の符号化、及び、復号を行う場合に適用することができる。
[テレビジョン装置の構成例]
図46は、本技術を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース部909を有している。さらに、テレビジョン装置900は、制御部910、ユーザインタフェース部911等を有している。
チューナ902は、アンテナ901で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られた符号化ビットストリームをデマルチプレクサ903に出力する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ904に出力する。また、デマルチプレクサ903は、EPG(Electronic Program Guide)等のデータのパケットを制御部910に供給する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
デコーダ904は、パケットの復号化処理を行い、復号処理化によって生成された映像データを映像信号処理部905、音声データを音声信号処理部907に出力する。
映像信号処理部905は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部905は、表示部906に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部905は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部905は、このようにして生成した映像データに基づいて駆動信号を生成して表示部906を駆動する。
表示部906は、映像信号処理部905からの駆動信号に基づき表示デバイス(例えば液晶表示素子等)を駆動して、番組の映像などを表示させる。
音声信号処理部907は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのD/A変換処理や増幅処理を行いスピーカ908に供給することで音声出力を行う。
外部インタフェース部909は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
制御部910にはユーザインタフェース部911が接続されている。ユーザインタフェース部911は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部910に供給する。
制御部910は、CPU(Central Processing Unit)やメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ、EPGデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置900の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、テレビジョン装置900がユーザ操作に応じた動作となるように各部を制御する。
なお、テレビジョン装置900では、チューナ902、デマルチプレクサ903、映像信号処理部905、音声信号処理部907、外部インタフェース部909等と制御部910を接続するためバス912が設けられている。
このように構成されたテレビジョン装置では、デコーダ904に本願の画像処理装置(画像処理方法)の機能が設けられる。このため、視差ベクトルの予測ベクトルとして、予測精度の良いベクトルを求めることができる。
[携帯電話機の構成例]
図47は、本技術を適用した携帯電話機の概略構成を例示している。携帯電話機920は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931を有している。これらは、バス933を介して互いに接続されている。
また、通信部922にはアンテナ921が接続されており、音声コーデック923には、スピーカ924とマイクロホン925が接続されている。さらに制御部931には、操作部932が接続されている。
携帯電話機920は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
音声通話モードにおいて、マイクロホン925で生成された音声信号は、音声コーデック923で音声データへの変換やデータ圧縮が行われて通信部922に供給される。通信部922は、音声データの変調処理や周波数変換処理等を行い、送信信号を生成する。また、通信部922は、送信信号をアンテナ921に供給して図示しない基地局へ送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック923に供給する。音声コーデック923は、音声データのデータ伸張やアナログ音声信号への変換を行いスピーカ924に出力する。
また、データ通信モードにおいて、メール送信を行う場合、制御部931は、操作部932の操作によって入力された文字データを受け付けて、入力された文字を表示部930に表示する。また、制御部931は、操作部932におけるユーザ指示等に基づいてメールデータを生成して通信部922に供給する。通信部922は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部930に供給して、メール内容の表示を行う。
なお、携帯電話機920は、受信したメールデータを、記録再生部929で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、RAMや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアである。
データ通信モードにおいて画像データを送信する場合、カメラ部926で生成された画像データを、画像処理部927に供給する。画像処理部927は、画像データの符号化処理を行い、符号化データを生成する。
多重分離部928は、画像処理部927で生成された符号化データと、音声コーデック923から供給された音声データを所定の方式で多重化して通信部922に供給する。通信部922は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部928に供給する。多重分離部928は、多重化データの分離を行い、符号化データを画像処理部927、音声データを音声コーデック923に供給する。画像処理部927は、符号化データの復号化処理を行い、画像データを生成する。この画像データを表示部930に供給して、受信した画像の表示を行う。音声コーデック923は、音声データをアナログ音声信号に変換してスピーカ924に供給して、受信した音声を出力する。
このように構成された携帯電話装置では、画像処理部927に本願の画像処理装置(画像処理方法)の機能が設けられる。このため、視差ベクトルの予測ベクトルとして、予測精度の良いベクトルを求めることができる。
[記録再生装置の構成例]
図48は、本技術を適用した記録再生装置の概略構成を例示している。記録再生装置940は、例えば受信した放送番組のオーディオデータとビデオデータを、記録媒体に記録して、その記録されたデータをユーザの指示に応じたタイミングでユーザに提供する。また、記録再生装置940は、例えば他の装置からオーディオデータやビデオデータを取得し、それらを記録媒体に記録させることもできる。さらに、記録再生装置940は、記録媒体に記録されているオーディオデータやビデオデータを復号して出力することで、モニタ装置等において画像表示や音声出力を行うことができるようにする。
記録再生装置940は、チューナ941、外部インタフェース部942、エンコーダ943、HDD(Hard Disk Drive)部944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)部948、制御部949、ユーザインタフェース部950を有している。
チューナ941は、図示しないアンテナで受信された放送信号から所望のチャンネルを選局する。チューナ941は、所望のチャンネルの受信信号を復調して得られた符号化ビットストリームをセレクタ946に出力する。
外部インタフェース部942は、IEEE1394インタフェース、ネットワークインタフェース部、USBインタフェース、フラッシュメモリインタフェース等の少なくともいずれかで構成されている。外部インタフェース部942は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
エンコーダ943は、外部インタフェース部942から供給された映像データや音声データが符号化されていないとき所定の方式で符号化を行い、符号化ビットストリームをセレクタ946に出力する。
HDD部944は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
ディスクドライブ945は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばDVDディスク(DVD−Video、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等)やBlu−rayディスク等である。
セレクタ946は、映像や音声の記録時には、チューナ941またはエンコーダ943からのいずれかの符号化ビットストリームを選択して、HDD部944やディスクドライブ945のいずれかに供給する。また、セレクタ946は、映像や音声の再生時に、HDD部944またはディスクドライブ945から出力された符号化ビットストリームをデコーダ947に供給する。
デコーダ947は、符号化ビットストリームの復号化処理を行う。デコーダ947は、復号処理化を行うことにより生成された映像データをOSD部948に供給する。また、デコーダ947は、復号処理化を行うことにより生成された音声データを出力する。
OSD部948は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ947から出力された映像データに重畳して出力する。
制御部949には、ユーザインタフェース部950が接続されている。ユーザインタフェース部950は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部949に供給する。
制御部949は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置940の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、記録再生装置940がユーザ操作に応じた動作となるように各部を制御する。
このように構成された記録再生装置では、デコーダ947に本願の画像処理装置(画像処理方法)の機能が設けられる。このため、視差ベクトルの予測ベクトルとして、予測精度の良いベクトルを求めることができる。
[撮像装置の構成例]
図49は、本技術を適用した撮像装置の概略構成を例示している。撮像装置960は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、カメラ信号処理部963、画像データ処理部964、表示部965、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970を有している。また、制御部970には、ユーザインタフェース部971が接続されている。さらに、画像データ処理部964や外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970等は、バス972を介して接続されている。
光学ブロック961は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCDまたはCMOSイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部963に供給する。
カメラ信号処理部963は、撮像部962から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部963は、カメラ信号処理後の画像データを画像データ処理部964に供給する。
画像データ処理部964は、カメラ信号処理部963から供給された画像データの符号化処理を行う。画像データ処理部964は、符号化処理を行うことにより生成された符号化データを外部インタフェース部966やメディアドライブ968に供給する。また、画像データ処理部964は、外部インタフェース部966やメディアドライブ968から供給された符号化データの復号化処理を行う。画像データ処理部964は、復号化処理を行うことにより生成された画像データを表示部965に供給する。また、画像データ処理部964は、カメラ信号処理部963から供給された画像データを表示部965に供給する処理や、OSD部969から取得した表示用データを、画像データに重畳させて表示部965に供給する。
OSD部969は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部964に出力する。
外部インタフェース部966は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部966には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部966は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部970は、例えば、ユーザインタフェース部971からの指示にしたがって、メモリ部967から符号化データを読み出し、それを外部インタフェース部966から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部970は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース部966を介して取得し、それを画像データ処理部964に供給したりすることができる。
メディアドライブ968で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であってもよい。
また、メディアドライブ968と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
制御部970は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ等を記憶する。メモリに記憶されているプログラムは、撮像装置960の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、撮像装置960がユーザ操作に応じた動作となるように各部を制御する。
このように構成された撮像装置では、画像データ処理部964に本願の画像処理装置(画像処理方法)の機能が設けられる。このため、視差ベクトルの予測ベクトルとして、予測精度の良いベクトルを求めることができる。