JPWO2012128242A1 - 画像処理装置、画像処理方法、及び、プログラム - Google Patents

画像処理装置、画像処理方法、及び、プログラム Download PDF

Info

Publication number
JPWO2012128242A1
JPWO2012128242A1 JP2013505962A JP2013505962A JPWO2012128242A1 JP WO2012128242 A1 JPWO2012128242 A1 JP WO2012128242A1 JP 2013505962 A JP2013505962 A JP 2013505962A JP 2013505962 A JP2013505962 A JP 2013505962A JP WO2012128242 A1 JPWO2012128242 A1 JP WO2012128242A1
Authority
JP
Japan
Prior art keywords
prediction
unit
image
vector
occlusion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013505962A
Other languages
English (en)
Inventor
良知 高橋
良知 高橋
しのぶ 服部
しのぶ 服部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of JPWO2012128242A1 publication Critical patent/JPWO2012128242A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

本技術は、予測ベクトルとして、予測精度の良いベクトルを求めることができるようにする画像処理装置、画像処理方法、及び、プログラムに関する。予測ベクトル生成部では、色画像の画素ごとの視差に関するデプス情報を画素値として有するデプス画像の処理対象の対象ブロックの、その対象ブロックのピクチャと異なる他のピクチャに対するずれを表すずれベクトルの予測ベクトルが生成される。予測ベクトル生成部では、対象ブロックが、他のピクチャに対応点が存在しないオクルージョン部分を含むオクルージョンブロックであるかどうかによって、異なるベクトル予測方式で、予測ベクトルが生成される。本発明は、例えば、視差に関するデプス画像の符号化や復号において、予測画像を生成するのに用いられる視差ベクトルの予測ベクトルを生成する場合に適用できる。

Description

本技術は、画像処理装置、画像処理方法、及び、プログラムに関し、例えば、ある視点の画像の、他の視点の画像に対する視差を表す視差ベクトル等の予測ベクトルとして、予測精度の良いベクトルを求めることができるようにする画像処理装置、画像処理方法、及び、プログラムに関する。
3D(Dimension)画像等の複数の視点の画像を符号化する符号化方式としては、例えば、AVC(Advanced Video Coding)(H.264/AVC)方式を拡張したMVC(Multiview Video Coding)方式等がある。
MVC方式では、符号化対象となる画像は、被写体からの光に対応する値を、画素値として有する色画像であり、複数の視点の色画像それぞれは、必要に応じて、その視点の色画像の他、他の視点の色画像をも参照して、符号化される。
すなわち、MVC方式では、複数の視点の色画像のうちの、1つの視点の色画像が、ベースビュー(Base View)の画像とされ、他の視点の色画像は、ディペンデントビュー(Dependent View)の画像とされる。
そして、ベースビューの色画像は、そのベースビューの画像のみを参照して符号化され、ディペンデントビューの色画像は、そのディペンデントビューの画像の他、他のビューの画像をも必要に応じて参照して符号化される。
すなわち、ディペンデントビューの色画像については、必要に応じて、他のビューの色画像を参照して予測画像を生成する視差予測が行われ、その予測画像を用いて符号化される。
ここで、ある視点#1を、ベースビューとするとともに、他の視点#2を、ディペンデントビューとする。
MVC方式において、視点#2の色画像について、視点#1の色画像を参照して視差予測が行われ、その視差予測により得られる予測画像を用いて符号化(予測符号化)が行われる場合、視点#2の色画像の符号化対象の、例えば、横×縦が16×16画素のマクロブロックである対象ブロックの、視点#1の色画像に対する視差を表す視差ベクトルが検出される。
さらに、MVC方式では、対象ブロックの視差ベクトルを予測した予測ベクトルが求められ、視差ベクトルと予測ベクトルとの差分である残差ベクトルが符号化される。
MVC方式において、残差ベクトルの符号量は、残差ベクトルが大であるほど多くなる傾向があるので、残差ベクトルの大きさが小さければ、つまり、予測ベクトルの予測精度が良ければ(予測ベクトルが視差ベクトルに似ているほど)、符号化効率を向上させることができる。
ところで、近年においては、複数の視点の画像として、各視点の色画像の他に、各視点の色画像の画素ごとの視差に関する視差情報を、画素値として有する視差情報画像を採用し、各視点の色画像と各視点の視差情報画像とを符号化する符号化方式として、例えば、MPEG3DV方式等の規格が策定されつつある。
MPEG3DV方式では、各視点の色画像と、各視点の視差情報画像とのそれぞれが、原則として、MVC方式と同様にして符号化される。
MVC方式では、色画像について、対象ブロックの周辺のブロックの視差ベクトルから、対象ブロックの(視差ベクトルの)予測ベクトルが求められるが、視差情報画像についても、同様に、視差ベクトルの予測ベクトルを求める方法が提案されている(例えば、非特許文献1を参照)。
"Draft Call for Proposals on 3D Video Coding Technology", INTERNATIONAL ORGANISATION FOR STANDARDISATION, ORGANISATION INTERNATIONALE DE NORMALISATION, ISO/IEC JTC1/SC29/WG11, CODING OF MOVING PICTURES AND AUDIO, ISO/IEC JTC1/SC29/WG11, MPEG2010/N11679, Guangzhou, China, October 2010
ところで、ディペンデントビューである視点#2の視差情報画像には、視差の影響により、ベースビューである視点#1の視差情報画像に対応点がない部分であるオクルージョン部分が存在することがある。
そして、オクルージョン部分については、MVC方式では、予測精度の悪い予測ベクトルが求められることがある。
本技術は、このような状況に鑑みてなされたものであり、予測ベクトルとして、予測精度の良いベクトルを求めることができるようにするものである。
本技術の一側面の画像処理装置、又は、プログラムは、色画像の画素ごとの視差に関するデプス情報を画素値として有するデプス画像の処理対象の対象ブロックの、前記対象ブロックのピクチャと異なる他のピクチャに対するずれを表すずれベクトルの予測ベクトルを、前記対象ブロックが、前記他のピクチャに対応点が存在しないオクルージョン部分を含むオクルージョンブロックであるかどうかによって、異なるベクトル予測方式で生成する予測ベクトル生成部を備える画像処理装置、又は、画像処理装置として、コンピュータを機能させるためのプログラムである。
本技術の一側面の画像処理方法は、色画像の画素ごとの視差に関するデプス情報を画素値として有するデプス画像の処理対象の対象ブロックの、前記対象ブロックのピクチャと異なる他のピクチャに対するずれを表すずれベクトルの予測ベクトルを、前記対象ブロックが、前記他のピクチャに対応点が存在しないオクルージョン部分を含むオクルージョンブロックであるかどうかによって、異なるベクトル予測方式で生成するステップを含む画像処理方法である。
本技術の一側面においては、色画像の画素ごとの視差に関するデプス情報を画素値として有するデプス画像の処理対象の対象ブロックの、前記対象ブロックのピクチャと異なる他のピクチャに対するずれを表すずれベクトルの予測ベクトルが、前記対象ブロックが、前記他のピクチャに対応点が存在しないオクルージョン部分を含むオクルージョンブロックであるかどうかによって、異なるベクトル予測方式で生成される。
なお、画像処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
また、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
本技術によれば、予測精度の良い予測ベクトルを求めることができる。
MVC方式で、視差情報画像の視差ベクトルの予測ベクトルを求める方法を説明する図である。 本技術の概要を説明する図である。 近接予測方式での、対象ブロックの予測ベクトルの生成方法を説明する図である。 近接予測方式での、対象ブロックの予測ベクトルの生成方法を説明する図である。 本技術を適用した多視点画像エンコーダの一実施の形態の構成例を示すブロック図である。 多視点画像エンコーダにおいて符号化の対象となる複数の視点の画像を生成する多視点画像生成装置の構成例を示すブロック図である。 MVC方式の予測符号化において、予測画像を生成するときに参照するピクチャを説明する図である。 MVC方式でのピクチャの符号化(及び復号)順を説明する図である。 エンコーダ11の構成例を示すブロック図である。 MVC(AVC)方式のマクロブロックタイプを説明する図である。 MVC(AVC)方式の予測ベクトルを説明する図である。 MVC(AVC)方式の予測ベクトルを説明する図である。 エンコーダ22の構成例を示すブロック図である。 視差予測部234の構成例を示すブロック図である。 視点#2の視差画像D#2を符号化する符号化処理を説明するフローチャートである。 オクルージョン検出処理を説明するフローチャートである。 オクルージョン検出処理を説明する図である。 視差予測処理を説明するフローチャートである。 予測ベクトル生成処理を説明するフローチャートである。 予測ベクトル生成処理を説明するフローチャートである。 本技術を適用した多視点画像デコーダの一実施の形態の構成例を示すブロック図である。 デコーダ311の構成例を示すブロック図である。 デコーダ322の構成例を示すブロック図である。 視差予測部464の構成例を示すブロック図である。 視点#2の視差画像D#2の符号化データを復号する復号処理を説明するフローチャートである。 視差予測処理を説明するフローチャートである。 エンコーダ22の他の構成例を示すブロック図である。 視差予測部534の構成例を示すブロック図である。 視差予測処理を説明するフローチャートである。 予測ベクトル生成処理を説明するフローチャートである。 予測ベクトル生成処理を説明するフローチャートである。 デコーダ322の他の構成例を示すブロック図である。 視差予測部664の構成例を示すブロック図である。 視点#2の視差画像D#2の符号化データを復号する復号処理を説明するフローチャートである。 視差予測処理を説明するフローチャートである。 予測ベクトル生成処理を説明するフローチャートである。 予測ベクトル生成処理を説明するフローチャートである。 ヘッダ情報に含められる予測器フラグの例を示す図である。 ヘッダ情報に含められる予測器フラグの例を示す図である。 ヘッダ情報に含められる予測器フラグの例を示す図である。 視差と奥行きについて説明する図である。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。 本技術を適用したテレビジョン装置の概略構成例を示す図である。 本技術を適用した携帯電話機の概略構成例を示す図である。 本技術を適用した記録再生装置の概略構成例を示す図である。 本技術を適用した撮像装置の概略構成例を示す図である。
[本明細書におけるデプス画像(視差情報画像)の説明]
図41は、視差と奥行きについて説明する図である。
図41に示すように、被写体Mのカラー画像が、位置C1に配置されたカメラc1と位置C2に配置されたカメラc2により撮影される場合、被写体Mの、カメラc1(カメラc2)からの奥行方向の距離である奥行きZは、以下の式(a)で定義される。
Figure 2012128242
・・・(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など他のビット数にすることも可能である。
Figure 2012128242
なお、式(b)において、Dmaxは、視差dの最大値であり、Dminは、視差dの最小値である。最大値Dmaxと最小値Dminは、1画面単位で設定されてもよいし、複数画面単位で設定されてもよい。
また、奥行きZの逆数1/Zを8bit(0〜255)で正規化した値yは、以下の式(c)により求めることができる。なお、奥行きZの逆数1/Zの正規化ビット数は8bitに限定されず、10bit,12bitなど他のビット数にすることも可能である。
Figure 2012128242
なお、式(c)において、Zfarは、奥行きZの最大値であり、Znearは、奥行きZの最小値である。最大値Zfarと最小値Znearは、1画面単位で設定されてもよいし、複数画面単位で設定されてもよい。
このように、本明細書では、視差dと奥行きZとは一意に変換可能であることを考慮して、視差dを正規化した値Iを画素値とする画像と、奥行きZの逆数1/Zを正規化した値yを画素値とする画像とを総称して、デプス画像(視差情報画像)とする。ここでは、デプス画像(視差情報画像)のカラーフォーマットは、YUV420又はYUV400であるものとするが、他のカラーフォーマットにすることも可能である。
なお、デプス画像(視差情報画像)の画素値としてではなく、値I又は値yの情報自体に着目する場合には、値I又は値yを、デプス情報(視差情報)とする。更に、値I又は値yをマッピングしたものをデプスマップ(視差マップ)とする。
以下、図面を参照して、本技術の一実施の形態について説明するが、その前に、前段階の準備として、複数の視点の色画像、及び、視差情報画像(デプス画像)を対象とした符号化、及び、復号において、視差情報画像について、視差ベクトルの予測ベクトルを、MVC方式で求める方法について説明する。
[MVC方式での予測ベクトルの生成]
図1は、MVC方式で、視差情報画像の視差ベクトルの予測ベクトルを求める方法を説明する図である。
なお、前述したように、MVC方式で、視差情報画像の視差ベクトルの予測ベクトルを求めることについては、非特許文献1に記載されている。
いま、複数の視点の画像として、2つの視点の色画像である視点#1の色画像C#1、及び、視点#1と異なる視点#2の色画像C#2、並びに、2つの視点の視差情報画像である視点#1の視差情報画像D#1、及び、視点#2の視差情報画像D#2があるとする。
なお、視差情報画像D#i(ここでは、i=1,2)は、色画像C#iの画素ごとの視差に関する視差情報(デプス情報)を、画素値として有する画像である。
また、ここでは、視点#1の視差情報画像D#1、及び、視点#2の視差情報画像D#2のうちの、視点#1の視差情報画像D#1(のピクチャ)を参照ピクチャとして、視点#2の視差情報画像D#2の予測画像を生成する視差予測において用いられる視差ベクトルの予測ベクトルを求めることとする。
いま、視点#2の視差情報画像D#2の、先頭からt番目(時刻t)のピクチャである第tピクチャのあるブロック(マクロブロック)Xが、符号化(又は復号)対象の対象ブロックであるとする。
ここで、視差情報画像D#2の対象ブロックを有するピクチャ、つまり、符号化対象のピクチャを、対象ピクチャともいう。
MVC方式では、視差情報画像D#2の対象ブロックXの(視差ベクトルの)予測ベクトルが、その対象ブロックXの周辺のブロック(以下、周辺ブロックともいう)のうちの、(ラスタスキャン順で)既に符号化(復号)済みのブロックの視差ベクトルから求められる。
すなわち、MVC方式では、図1に示すように、対象ブロックXの上に隣接する周辺ブロックA、左に隣接する周辺ブロックB、及び、右斜め上に隣接する周辺ブロックCそれぞれの視差ベクトルのメディアン(中央値)を、対象ブロックXの予測ベクトルとして求めるベクトル予測方式(以下、メディアン予測方式、又は、メディアン予測器ともいう)によって、予測ベクトルが求められる。
なお、メディアン予測方式において、対象ブロックXの予測ベクトルとしてのメディアンの算出は、x成分とy成分とのそれぞれについて、独立に行われる。
いま、図1に示すように、視差情報画像D#1及びD#2に、背景(の視差情報)と、その背景の手前側に存在するオブジェクトとしての矩形の前景(の視差情報)とが写っていることとする。
また、ここでは、説明を簡単にするため、色画像C#1及びC#2は、同一の水平面上に配置された2つのカメラによって、その2つのカメラの位置を結ぶ直線に直交する方向を撮影することによって得られた色画像であるとする。
さらに、視点#1の色画像C#1は、2つのカメラのうちの、被写体(撮影方向)に向かって、右側のカメラで撮影された色画像であり、視点#2の色画像C#2は、2つのカメラのうちの左側のカメラで撮影された色画像であるとする。
この場合、視点#2の視差情報画像D#2の、ほぼ中央に、前景が写っているとすると、視点#1の視差情報画像D#1では、前景は、図1に示すように、視差の影響で、中央より、やや左側に写る。
したがって、視点#1の視差情報画像D#1においては、視点#2の視差情報画像D#2の前景の左側に写っている背景の一部が、前景によって隠され、見えない状態になっている。
その結果、視点#2の視差情報画像D#2には、その視差情報画像D#2には写っている前景の左側に写っている背景の一部(図1において斜線を付してある部分)が、視点#1の視差情報画像D#1に対応点が存在しないオクルージョン部分となる。
ここで、視差情報画像D#2において、オクルージョン部分を含むブロック(マクロブロック)を、オクルージョンブロックともいい、オクルージョンブロック以外のブロックを、非オクルージョンブロックともいう。
上述のように、視点#1の色画像C#1が、2つのカメラのうちの右側のカメラで撮影された色画像であり、視点#2の色画像C#2が、2つのカメラのうちの左側のカメラで撮影された色画像である場合、すなわち、視点#1が右側に位置し、視点#2が左側に位置する場合、視点#2の視差情報画像D#2では、前景の左側の接する背景の部分が、オクルージョン部分となる。したがって、オクルージョン部分の左側は、背景になり、右側は、前景になる。
視差情報画像については、画素値が視差情報であるため、前景の画素値は、前景に奥行き方向の大きな凹凸がない限り、ほぼ同様の値となる。同様に、背景の画素値も、ほぼ同様の値となる。また、前景と背景とでは、一般に、奥行き方向の位置が比較的異なるため(前景が手前側に位置し、背景が奥側に位置するため)、画素値も、比較的異なる。
以上のように、視差情報画像については、前景の画素値は、ほぼ同様の値となり、背景の画素値も、ほぼ同様の値となる。
したがって、視差情報画像D#1(のピクチャ)を参照ピクチャとして用いて、視差情報画像D#2のブロックの、参照ピクチャである視差情報画像D#1に対するずれを表すずれベクトルとしての視差ベクトルを、ME(Motion Estimation)によって検出すると、ほとんどの場合、視差ベクトルは、図1に示すように、(ほぼ)0ベクトルになる。
しかしながら、視差情報画像D#2のオクルージョンブロックについては、参照ピクチャである視差画像情報D#1の、オクルージョンブロックと同一の位置に、そのオクルージョンブロックに写っている背景が写っていないため(前景が写っているため)、視差ベクトルは、0ベクトルにならない。
すなわち、視差情報画像D#2のオクルージョンブロックについては、図1に示すように、オクルージョンブロックから、視差画像情報D#1の、オクルージョン部分と同一位置のオクルージョン対応部分の左の外部側に写る背景を指すようなベクトルが、視差ベクトルとして検出される。
したがって、視差情報画像D#2のオクルージョンブロックが対象ブロックになっている場合には、図1に示すように、対象ブロックXの視差ベクトルは、上に隣接する周辺ブロックAの視差ベクトルと一致することはあるが、左に隣接する周辺ブロックBや、右斜め上に隣接する周辺ブロックCの視差ベクトルとは、大きく異なる(相関が小さくなる)。
上述したように、MVC方式では、対象ブロックの周辺の周辺ブロックの視差ベクトルのメディアンが、対象ブロック(の視差ベクトル)の予測ベクトルとして求められるため、オクルージョンブロックの左に隣接する周辺ブロックB、及び、右斜め上に隣接する周辺ブロックCの視差ベクトルが、オクルージョンブロックの視差ベクトルと大きく異なる場合には、オクルージョンブロックの視差ベクトルの予測ベクトルとして、その視差ベクトルとは大きく異なるベクトルが求められることになる。
オクルージョンブロックの視差ベクトルの予測ベクトルが、その視差ベクトルと大きく異なる場合、すなわち、予測ベクトルの予測精度が悪い場合、視差ベクトルと予測ベクトルとの差である残差ベクトルが大になるから、MVC方式では、残差ベクトルの符号量が多くなって、符号化効率が劣化することになる。
そこで、特に、オクルージョン部分については、予測精度が良い予測ベクトルを生成することができるように、MVC方式とは異なるベクトル予測方式を採用することが望ましい。
本技術では、オクルージョン部分(オクルージョンブロック)のベクトル予測方式として、第2の視点#2の視差情報画像D#2の対象ブロックから、第1の視点#1の視差情報画像D#1のピクチャの、オクルージョン部分と同一位置のオクルージョン対応部分の外部側に近接する近接部分へのベクトルを、対象ブロックの予測ベクトルとして生成する近接予測方式を採用する。
[本技術の概要]
図2は、本技術の概要を説明する図である。
図2では、図1と同様に、視点#1が右側に位置し、視点#2が左側に位置しており、視点#2の視差情報画像D#2において、前景の左側の接する背景の部分が、オクルージョン部分になっている。したがって、オクルージョン部分の左側は、背景であり、右側は、前景である。
本技術では、視点#2の視差情報画像D#2の処理対象の対象ブロックの視差ベクトルを、対象ピクチャと異なる他のピクチャである視点#1の視差情報画像D#1(のピクチャ)を参照ピクチャとして生成するときに、対象ブロック(の視差ベクトル)の予測ベクトルを、対象ブロックが、参照ピクチャとしての視点#1の視差情報画像D#1に対応点が存在しないオクルージョン部分を含むオクルージョンブロックであるかどうかによって、異なるベクトル予測方式で生成する。
そのため、本技術では、視点#2の視差情報画像D#2のオクルージョン部分が検出される。
オクルージョン部分の検出は、参照ピクチャである視点#1の視差情報画像D#1をワーピングすることにより得られる、その視差情報画像D#1を視点#2で得られる画像に変換したワープド視差情報画像D'#1を用いて行われる。
すなわち、視点#1の視差情報画像D#1のワーピングでは、例えば、視差情報画像D#1の各画素(値)が、各画素における視点#1と#2との間の視差に相当する分だけ移動されることで、ワープド視差情報画像(ワープドデプス画像)D'#1が生成される。
そのため、ワープド視差情報画像D'#1では、視差情報画像D#2には写っているが、視差情報画像D#1には写っていない部分は、図2に示すように、画素値がない、いわば穴あき状態となる。
したがって、ワープド視差情報画像D'#1の画素値がない部分(以下、画素値なし部分ともいう)を検出し、視差情報画像D#2の、画素値なし部分と同一位置の部分を検出することにより、オクルージョン部分を検出することができる。
本技術では、対象ブロックが、オクルージョン部分を含むオクルージョンブロックである場合、対象ブロックから、参照ピクチャである第1の視点#1の視差情報画像D#1の、オクルージョン部分と同一位置のオクルージョン対応部分の外部側の背景に近接する近接部分へのベクトルを、対象ブロックの予測ベクトルとして生成する近接予測方式で、対象ブロックの予測ベクトルを生成する。
そのため、本技術では、例えば、視差情報画像D#2の対象ピクチャにおいて処理対象となりうる各ブロックを、(視差がある)水平方向にスキャンすることにより、ブロックにおいて、オクルージョン部分が開始している開始画素Sと終了している終了画素Eとが検出される。
図2では、視差情報画像D#2の対象ピクチャにおいて、水平方向(左から右方向)(x方向)に並ぶ、ある3つのブロック(マクロブロック)B#1,B#2、及び、B#3が、オクルージョン部分を含むオクルージョンブロックになっている。
そして、そのブロックB#1ないしB#3それぞれについて、オクルージョン部分の開始画素Sと終了画素Eとが検出されている。
図2では、ブロックB#1のオクルージョン部分の開始画素S#1は、(ブロックの左から)8画素目になっており、終了画素E#1は、16画素目になっている。ブロックB#2については、開始画素S#2は、1画素目になっており、終了画素E#2は、16画素目になっている。ブロックB#3については、開始画素S#3は、1画素目になっており、終了画素E#3は、12画素目になっている。
近接予測方式では、オクルージョンブロックであるブロックB#i(ここでは、i=1,2,3)については、例えば、式(1)にしたがって、ブロックB#iの予測ベクトルPMV#i(のx成分)が求められる。
PMV#i=PMV#(i-1)−(E#i-S#i+1)
・・・(1)
ここで、式(1)によれば、対象ブロックB#iの左隣のオクルージョンブロックB#(i-1)の予測ベクトルPMV#(i-1)から、オクルージョンブロックの開始画素S#iから終了画素E#iまでの画素数E#i-S#i+1を減算することにより、対象ブロックB#iの予測ベクトルPMV#iが求められる。
なお、式(1)において、対象ブロックB#iの左隣のブロックB#(i-1)が、オクルージョンブロックでない場合、式(1)の計算に関する限り、そのブロックB#(i-1)の予測ベクトルPMV#(i-1)は、0ベクトルとされる。
また、ここでは、説明を簡単にするため、視点#1及び#2が同一平面上に存在することを前提としており、したがって、式(1)の予測ベクトルPMV#iのy成分は、0であり、式(1)は、予測ベクトルPMV#iのx成分を表している。
式(1)によれば、対象ブロックB#iから、視差情報画像D#1のオクルージョン対応部分の左の境界の外部側に接する近接部分である背景へのベクトルが、対象ブロックB#iの予測ベクトルPMV#iとして生成される。
図3は、近接予測方式での、対象ブロックの予測ベクトルの生成方法を説明する図である。
図3は、図2で説明したように、視点#1が右側に位置し、視点#2が左側に位置しており、視点#2の視差情報画像D#2において、前景の左側の接する背景の部分が、オクルージョン部分になっている場合、つまり、オクルージョン部分の左側が、背景であり、右側が、前景である場合の、近接予測方式での、オクルージョンブロックの予測ベクトルの生成方法を示している。
ここで、図3においては、視差情報画像D#2のオクルージョン部分を含む一部の領域R#2を拡大するとともに、視差情報画像D#1の、領域R#2と同一位置の領域R#1を拡大して示してある。
図3では、視差情報画像D#2の対象ピクチャにおいて、水平方向に並ぶ、ある3つのブロックB#1,B#2、及び、B#3が、オクルージョン部分を含むオクルージョンブロックになっており、ブロックB#iについての、開始画素及び終了画素が、それぞれ、S#i及びE#iで表されている。
視点#1が右側に位置し、視点#2が左側に位置しており、視点#2の視差情報画像D#2において、前景の左側の接する背景の部分が、オクルージョン部分になっている場合、図2で説明したように、近接予測方式では、式(1)に従って、オクルージョンブロックであるブロックB#iの予測ベクトルPMV#iが、符号化順(復号順)であるラスタスキャン順に求められる。
ここで、式(1)によれば、ブロックB#1の予測ベクトルPMV#1は、式PMV#1=−(E#1-S#1+1)で、ブロックB#2の予測ベクトルPMV#2は、式PMV#2=PMV#1−(E#2-S#2+1)で、ブロックB#3の予測ベクトルPMV#3は、式PMV#3=PMV#2−(E#3-S#3+1)で、それぞれ表される。
オクルージョンブロックであるブロックB#iの予測ベクトルPMV#iは、いずれも、対象ブロックB#iから、視差情報画像D#1のオクルージョン対応部分の左の境界の外部側に接する近接部分である背景、すなわち、視差情報画像D#1において、前景の左に接する背景の部分へのベクトルとなる。
図4は、近接予測方式での、対象ブロックの予測ベクトルの生成方法を説明する図である。
図4では、図2及び図3の場合とは、視点#1及び#2の位置が、左右逆になっている。
すなわち、図4は、視点#1が左側に位置し、視点#2が右側に位置しており、その結果、視点#2の視差情報画像D#2において、前景の右側の接する背景の部分が、オクルージョン部分になっている場合、つまり、オクルージョン部分の右側が、背景であり、左側が、前景である場合の、近接予測方式での、オクルージョンブロックの予測ベクトルの生成方法を示している。
ここで、図4では、図3の場合と同様に、視差情報画像D#2のオクルージョン部分を含む一部の領域R#2を拡大するとともに、視差情報画像D#1の、領域R#2と同一位置の領域R#1を拡大して示してある。
さらに、図4では、図3と同様に、視差情報画像D#2の対象ピクチャにおいて、水平方向に並ぶ、ある3つのブロックB#1,B#2、及び、B#3が、オクルージョン部分を含むオクルージョンブロックになっており、ブロックB#iについての、開始画素及び終了画素が、それぞれ、S#i及びE#iで表されている。
視点#1が左側に位置し、視点#2が右側に位置しており、視点#2の視差情報画像D#2において、前景の右側の接する背景の部分が、オクルージョン部分になっている場合、近接予測方式では、オクルージョンブロックであるブロックB#i(ここでは、i=1,2,3)の予測ベクトルPMV#iは、例えば、式(2)にしたがって求められる。
PMV#i=PMV#(i-1)−(E#(i-1)-S#(i-1)+1)
・・・(2)
ここで、式(2)によれば、対象ブロックB#iの左隣のオクルージョンブロックB#(i-1)の予測ベクトルPMV#(i-1)から、オクルージョンブロックの開始画素S#(i-1)から終了画素E#(i-1)までの画素数E#(i-1)-S#(i-1)+1を減算することにより、対象ブロックB#iの予測ベクトルPMV#iが求められる。
なお、式(2)において、対象ブロックB#iの左隣のブロックB#(i-1)が、オクルージョンブロックでない場合、式(2)の計算に関する限り、そのブロックB#(i-1)の予測ベクトルPMV#(i-1)は、対象ブロックを先頭にして水平方向に連続して並ぶオクルージョンブロックB#iの開始画素S#iから終了画素E#iまでの画素数の総和Σ(E#i-S#i+1)とされる。対象ブロックを先頭にして水平方向に連続して並ぶオクルージョンブロックB#iの数がN個であり、そのN個のオクルージョンブロックのうちの先頭からi番目のオクルージョンブロックB#iの開始画素及び終了画素が、それぞれ、S#i及びE#iで表される場合、総和Σ(E#i-S#i+1)のΣは、iを、1からNまでの整数値に変えてのサメーションを表す。
また、ここでは、説明を簡単にするため、視点#1及び#2が同一平面上に存在することを前提としており、したがって、式(2)の予測ベクトルPMV#iのy成分は、式(1)の場合と同様に、0であり、式(2)は、予測ベクトルPMV#iのx成分を表している。
式(2)によれば、対象ブロックB#iから、視差情報画像D#1のオクルージョン対応部分の右の境界の外部側に接する近接部分である背景へのベクトルが、対象ブロックB#iの予測ベクトルPMV#iとして生成される。
近接予測方式では、式(2)に従って、オクルージョンブロックであるブロックB#iの予測ベクトルPMV#iが、符号化順(復号順)であるラスタスキャン順に求められる。
ここで、式(2)によれば、ブロックB#1の予測ベクトルPMV#1は、式PMV#1=(E#1-S#1+1)+(E#2-S#2+1)+(E#3-S#3+1)で、ブロックB#2の予測ベクトルPMV#2は、式PMV#2=PMV#1−(E#1-S#1+1)で、ブロックB#3の予測ベクトルPMV#3は、式PMV#3=PMV#2−(E#2-S#2+1)で、それぞれ表される。
オクルージョンブロックであるブロックB#iの予測ベクトルPMV#iは、いずれも、対象ブロックB#iから、視差情報画像D#1のオクルージョン対応部分の右の境界の外部側に接する近接部分である背景、すなわち、視差情報画像D#1において、前景の右に接する背景の部分へのベクトルとなる。
図1で説明したように、視差情報画像D#2のオクルージョンブロックについては、オクルージョンブロックから、視差画像情報D#1の、オクルージョン部分と同一位置のオクルージョン対応部分の外部側に写る背景を指すようなベクトルが、視差ベクトルとして検出される。
一方、近接予測方式では、図2ないし図4で説明したように、対象ブロックB#iから、視差情報画像D#1のオクルージョン対応部分の境界の外部側に接する近接部分である背景へのベクトルが、対象ブロックB#iの予測ベクトルPMV#iとして生成される。
したがって、近接予測方式によれば、オクルージョンブロックの予測ベクトルとして、予測精度の良いベクトル、すなわち、視差ベクトルに似たベクトルを得ることができ、その結果、残差ベクトルが小になって、符号化効率を向上させることができる。
なお、近接予測方式では、視差情報画像D#2のオクルージョン部分の画素値(視差情報)が、参照ピクチャである視差情報画像D#1の、オクルージョン部分と同一位置のオクルージョン対応部分に接する背景の画素値(視差情報)と、ほぼ同様の値であることを前提として、予測精度の良い予測ベクトルが求められるが、視差情報画像については、この前提は、一般に成立することが多い。
[本技術を適用した多視点画像エンコーダの一実施の形態]
図5は、本技術を適用した多視点画像エンコーダの一実施の形態の構成例を示すブロック図である。
図5の多視点画像エンコーダは、例えば、MVC方式を利用して、複数の視点の画像を符号化するエンコーダであり、以下では、MVC方式と同様の処理については、適宜、説明を省略する。
なお、多視点画像エンコーダは、MVC方式を利用するエンコーダに限定されるものではない。
また、以下では、複数の視点の画像として、2つの視点#1及び#2の色画像である視点#1の色画像C#1、及び、視点#2の色画像C#2、並びに、その2つの視点#1及び#2の視差情報画像である視点#1の視差情報画像D#1、及び、視点#2の視差情報画像D#2を採用することとする。
さらに、例えば、視点#1の色画像C#1、及び、視差情報画像D#1を、ベースビューの画像とし、残りの視点#2の色画像C#2、及び、視差情報画像D#2を、ディペンデントビューの画像として扱うこととする。
なお、複数の視点の画像としては、3つ以上の視点の色画像、及び、視差情報画像を採用することができ、その3つ以上の視点の色画像、及び、視差情報画像のうちの、任意の1つの視点の色画像、及び、視差情報画像を、ベースビューの画像とし、残りの視点の色画像、及び、視差情報画像を、ディペンデントビューの画像として扱うことができる。
図5において、多視点画像エンコーダは、エンコーダ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が出力する多重化データは、図示せぬ記録媒体に記録され、又は、図示せぬ伝送媒体を介して伝送される。
[多視点画像生成装置]
図6は、図5の多視点画像エンコーダにおいて符号化の対象となる複数の視点の画像を生成する多視点画像生成装置の構成例を示すブロック図である。
多視点画像生成装置では、複数の視点としての、例えば、2つの視点の画像を撮影するために、2つのカメラ41及び42が、異なる視点の色画像を撮影することができる位置に設置されている。
ここで、本実施の形態では、説明を簡単にするために、カメラ41及び42は、ある水平面上の一直線上の異なる位置に、その直線に垂直な方向に光軸を向けて配置されていることとする。
また、図6では、カメラ41は、(被写体に向かって)(撮影方向に向かって)、カメラ42の右側に配置されており、したがって、カメラ42は、カメラ41の左側に配置されている。
カメラ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を、後述する、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(Dmax)とdmin(Dmin)と表すこととする。
この場合、上述したように、視差値ν(値I)は、例えば、撮影視差ベクトル(のx成分)(視差)dと、その最大値dmax(Dmax)及び最小値dmin(Dmin)を用いて、式(3)に従って求められる。
ν=255×(d-dmin)/(dmax-dmin)
・・・(3)
なお、式(3)の視差値νは、式(4)に従って、撮影視差ベクトル(のx成分)dに変換することができる。
d=ν×(dmax-dmin)/255+dmin
・・・(4)
また、奥行きZは、カメラ41及び42が配置されている直線上から、被写体までの距離を表す。
カメラ41については(カメラ42についても同様)、カメラ41と一直線上に配置されているカメラ42との距離(基準の視点との距離)である基線長をLと、カメラ41の焦点距離をfと、それぞれ表すこととすると、奥行きZは、撮影視差ベクトル(のx成分)d(d1)を用い、式(5)に従って求めることができる。
Z=(L/d)×f
・・・(5)
視差情報(デプス情報)である視差値ν(値I)と奥行きZとは、式(3)ないし式(5)を用いて相互に変換することができるので、等価な情報である。
ここで、以下では、画素値として視差値ν(値I)を有する視差情報画像(デプス画像)を、視差画像ともいい、画素値として、奥行き値(値y)を有する画像を、奥行き画像ともいう。
なお、以下では、視差情報画像(デプス画像)として、視差画像、及び、奥行き画像のうちの、例えば、視差画像を用いることとするが、視差情報画像(デプス画像)としては、奥行き画像を用いることも可能である。
多視点画像情報生成部43は、以上の色画像#1及び#2、並びに、視差画像D#1及び#2の他に、視差関連情報を出力する。
すなわち、多視点画像情報生成部43には、外部から、カメラ41と42との距離(カメラ41及び42それぞれと、基準の視点との距離)である基線長L、焦点距離f、及び、カメラ41及び42の位置関係を表す位置情報が供給される。
ここで、位置情報は、例えば、カメラ41及び42が、基準の視点となっているカメラ42及び41に対して、左側、又は、右側のいずれに位置しているのかを表す。図6では、位置情報は、カメラ41が、カメラ42の右側に位置していること(カメラ42が、カメラ41の左側に位置していること)を表す。この場合、位置情報によれば、視点#1が右側に位置し、視点#2が左側に位置していることを認識することができる。
多視点画像情報生成部43は、カメラ41からの撮影視差ベクトルd1、及び、カメラ41からの撮影視差ベクトルd2のそれぞれについて、撮影視差ベクトル(のx成分)dの最大値dmax及び最小値dminを検出する。
そして、多視点画像情報生成部43は、撮影視差ベクトルdの最大値dmax及び最小値dmin、基線長L、焦点距離f、並びに、位置情報を、視差関連情報として出力する。
多視点画像情報生成部43が出力する色画像C#1及びC#2、視差画像D#1及びD#2、並びに、視差関連情報は、図5の多視点画像エンコーダに供給される。
なお、ここでは、説明を簡単にするため、カメラ41及び42を、色画像平面に直交する同一の平面上の一直線上に配置し、撮影視差ベクトルd(d1及びd2)が、y成分が0のベクトルであることとしたが、カメラ41及び42それぞれは、色画像平面に直交する異なる平面上に配置することができる。この場合、撮影視差ベクトルdは、x成分及びy成分とも、0以外の値になりうるベクトルとなる。
[MVC方式の概要]
図7は、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方式において、視差予測において参照する、符号化対象のピクチャと異なるビューのピクチャは、符号化対象のピクチャと同一の時刻のピクチャでなければならない。
図5の多視点画像エンコーダを構成するエンコーダ11,12,21、及び、22は、MVC方式に従って、予測(予測画像の生成)を行う。
図8は、MVC方式でのピクチャの符号化(及び復号)順を説明する図である。
図7と同様に、ベースビューの画像である視点#1の画像のピクチャを、(表示)時刻順に、p11,p12,p13,・・・と表すとともに、ディペンデントビューの画像である視点#2の画像のピクチャを、時刻順に、p21,p22,p23,・・・と表すこととする。
いま、説明を簡単にするために、各ビューのピクチャが、時刻順に符号化されることとすると、まず、ベースビューの最初の時刻t=1のピクチャp11が符号化され、その後、ディペンデントビューの、同一時刻t=1のピクチャp21が符号化される。
ディペンデントビューの、同一時刻t=1のピクチャ(すべて)の符号化が終了すると、ベースビューの次の時刻t=2のピクチャp12が符号化され、その後、ディペンデントビューの、同一時刻t=2のピクチャp22が符号化される。
以下、同様の順番で、ベースビューのピクチャ、及び、ディペンデントビューのピクチャは、符号化されていく。
図5の多視点画像エンコーダを構成するエンコーダ11,12,21、及び、22では、MVC方式に従った順番で、ピクチャが符号化される。
[エンコーダ11の構成例]
図9は、図5のエンコーダ11の構成例を示すブロック図である。
なお、図5のエンコーダ12及び21も、エンコーダ11と同様に構成され、例えば、MVC方式に従って、画像の符号化を行う。
図9において、エンコーダ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(図5)に供給される。
量子化部115で得られた量子化値は、可変長符号化部116に供給される他、逆量子化部118にも供給され、逆量子化部118、逆直交変換部119、及び、演算部120において、ローカルデコードが行われる。
すなわち、逆量子化部118は、量子化部115からの量子化値を、変換係数に逆量子化し、逆直交変換部119に供給する。
逆直交変換部119は、逆量子化部118からの変換係数を逆直交変換し、演算部120に供給する。
演算部120は、逆直交変換部119から供給されるデータに対して、必要に応じて、予測画像選択部124から供給される予測画像の画素値を加算することで、対象ブロックを復号(ローカルデコード)したデコード画像を得て、デブロッキングフィルタ121に供給する。
デブロッキングフィルタ121は、演算部120からのデコード画像をフィルタリングすることにより、デコード画像に生じたブロック歪を除去(低減)し、DPB31(図5)に供給する。
ここで、DPB31は、デブロッキングフィルタ121からのデコード画像、すなわち、エンコーダ11において符号化されてローカルデコードされた色画像C#1のピクチャを、時間的に後に行われる予測符号化(演算部113で予測画像の減算が行われる符号化)に用いる予測画像を生成するときに参照する参照ピクチャ(の候補)として記憶する。
図5で説明したように、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(Sum of Absolute Differences)等を最小にするブロック)とのずれ(視差、動き)を表すずれベクトルを検出する。
ここで、参照ピクチャが、対象ピクチャと同一のビュー(視点)のピクチャである場合、対象ブロックと参照ピクチャとを用いたMEによって検出されるずれベクトルは、対象ブロックと、参照ピクチャとの間の動き(時間的なずれ)を表す動きベクトルとなる。
また、参照ピクチャが、対象ピクチャと異なるビューのピクチャである場合、対象ブロックと参照ピクチャとを用いたMEによって検出されるずれベクトルは、対象ブロックと、参照ピクチャとの間の視差(空間的なずれ)を表す視差ベクトルとなる。
以上のように、MEによって求められる視差ベクトルを、図6で説明した撮影視差ベクトルと区別するために、計算視差ベクトルともいう。
本実施の形態では、説明を簡単にするため、撮影視差ベクトルは、y成分が0のベクトルであることとしたが、MEによって検出される計算視差ベクトルは、対象ブロックと、参照ピクチャの、対象ブロックとのSAD等を最小にする領域としてのブロック(対応ブロック)とのずれ(位置関係)を表すので、y成分が0になるとは限らない。
インター予測部123は、対象ブロックのずれベクトルに従って、DPB31からの参照ピクチャのずれ補償(動き分のずれを補償する動き補償、又は、視差分のずれを補償する視差補償)を行うことで、予測画像を生成する。
すなわち、インター予測部123は、参照ピクチャの、対象ブロックの位置から、その対象ブロックのずれベクトルに従って移動した(ずれた)位置のブロック(領域)である対応ブロックを、予測画像として取得する。
さらに、インター予測部123は、対象ブロックを予測画像を用いて符号化するのに要する符号化コストを、予測画像の生成に用いる参照ピクチャや、後述するマクロブロックタイプ等が異なるインター予測モードごとに求める。
そして、インター予測部123は、符号化コストが最小のインター予測モードを、最適なインター予測モードである最適インター予測モードとして、その最適インター予測モードで得られた予測画像と符号化コストとを、予測画像選択部124に供給する。
予測画像選択部124は、画面内予測部122、及び、インター予測部123それぞれからの予測画像のうちの、符号化コストが小さい方を選択し、演算部113、及び、120に供給する。
ここで、画面内予測部122は、イントラ予測に関する情報を、ヘッダ情報として、可変長符号化部116に供給し、インター予測部123は、インター予測に関する情報(ずれベクトルの情報や、参照ピクチャに割り当てられている参照インデクス等)を、ヘッダ情報として、可変長符号化部116に供給する。
可変長符号化部116は、画面内予測部122、及び、インター予測部123それぞれからのヘッダ情報のうちの、符号化コストが小さい予測画像が生成された方からのヘッダ情報を選択し、符号化データのヘッダに含める。
[マクロブロックタイプ]
図10は、MVC(AVC)方式のマクロブロックタイプを説明する図である。
マクロブロックは、横×縦が16×16画素のブロックであるが、MVC方式では、ME(及び、予測画像の生成)は、マクロブロックをパーティションに分割して、パーティションごとに行うことができる。
すなわち、MVC方式では、マクロブロックを、16×16画素、16×8画素、8×16画素、又は8×8画素のうちのいずれかのパーティションに分割して、各パーティションごとに、MEを行って、すれベクトル(動きベクトル、又は、計算視差ベクトル)を検出することができる。
また、MVC方式では、8×8画素のパーティションは、さらに、8×8画素、8×4画素、4×8画素、又は4×4画素のうちのいずれかのサブパーティションに分割し、各サブパーティションごとに、MEを行って、すれベクトル(動きベクトル、又は、計算視差ベクトル)を検出することができる。
マクロブロックタイプは、マクロブロックを、どのようなパーティション(さらには、サブパーティション)に分割するかを表す。
インター予測部123(図9)のインター予測では、各マクロブロックタイプの符号化コストが、各インター予測モードの符号化コストとして算出され、符号化コストが最小のインター予測モード(マクロブロックタイプ)が、最適インター予測モードとして選択される。
[予測ベクトル(PMV(Predicted Motion Vector))]
図11は、MVC(AVC)方式の予測ベクトル(PMV)を説明する図である。
インター予測部123(図9)のインター予測では、MEによって、対象ブロックのずれベクトル(動きベクトル、又は、計算視差ベクトル)が検出され、そのずれベクトルを用いて、予測画像が生成される。
ずれベクトルは、デコーダ側において、画像を復号するのに必要であるため、ずれベクトルの情報を符号化して、符号化データに含める必要があるが、ずれベクトルを、そのまま符号化すると、ずれベクトルの符号量が多くなって、符号化効率が劣化することがある。
すなわち、MVC方式では、図10に示したように、マクロブロックが、8×8画素のパーティションに分割され、さらに、その8×8画素のパーティションそれぞれが、4×4画素のサブパーティションに分割されることがある。この場合、1つのマクロブロックは、最終的には、4×4個のサブパーティションに分割されるため、1つのマクロブロックに対して、16(=4×4)個のずれベクトルが生じることがあり、ずれベクトルを、そのまま符号化すると、ずれベクトルの符号量が多くなって、符号化効率が劣化する。
そこで、MVC(AVC)方式では、ずれベクトルを予測するベクトル予測が行われ、そのベクトル予測によって得られる予測ベクトルに対する、ずれベクトルの残差が符号化される。
すなわち、あるマクロブロックXが、符号化対象の対象ブロックであるとする。また、説明を簡単にするため、対象ブロックXは、16×16画素のパーティションに分割される(対象ブロックXが、そのまま、パーティションとされる)こととする。
対象ブロックXのずれベクトルmvXの予測ベクトルPMVXは、図11に示すように、対象ブロックXが符号化されるときに、(ラスタスキャン順で)既に符号化されているマクロブロックのうちの、対象ブロックXの上に隣接するマクロブロックAのずれベクトルmvA、左に隣接するマクロブロックBのずれベクトルmvB、及び、右斜め上に隣接するマクロブロックCのずれベクトルmvCを用い、式(6)に従って算出される。
PMVX=med(mvA,mvB,mvC)
・・・(6)
ここで、式(6)において、med()は、かっこ内の値のメディアン(中央値)を表す。
なお、対象ブロックXが、ピクチャの右端のマクロブロックである場合等、マクロブロックCのずれベクトルmvCが、利用可能でない(unavailableである)場合には、ずれベクトルmvCに代えて、対象ブロックXの左斜め上に隣接するマクロブロックDのずれベクトルmvDを用いて、予測ベクトルPMVXが算出される。
また、式(6)に従った予測ベクトルPMVXの算出は、x成分とy成分とのそれぞれについて、独立に行われる。
インター予測部123(図9)では、対象ブロックXのずれベクトルmvXと、その予測ベクトルPMVXとの差分mvX−PMVが、対象ブロックXのずれベクトルの情報として、ヘッダ情報に含められる。
図12は、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は、図12に示すように、対象ブロックXの上に隣接するマクロブロックA、左に隣接するマクロブロックB、及び、右斜め上に隣接するマクロブロックCそれぞれの予測用の参照インデクス(マクロブロックA,B、及び、Cそれぞれの予測画像の生成に用いられた参照ピクチャに割り当てられていた参照インデクス)によって異なる方法で求められる。
すなわち、いま、対象ブロックXの予測用の参照インデクスref_idxが、例えば、0であるとする。
すなわち、図12のAに示すように、対象ブロックXに隣接する3つのマクロブロックAないしCの中に、予測用の参照インデクスref_idxが対象ブロックXと同一の0のマクロブロックが、1つだけ存在する場合には、その1つのマクロブロック(予測用の参照インデクスref_idxが0のマクロブロック)のずれベクトルが、対象ブロックXのずれベクトルmvXの予測ベクトルPMVXとされる。
ここで、図12のAでは、対象ブロックXに隣接する3つのマクロブロックAないしCのうちの、マクロブロックAだけが、予測用の参照インデクスref_idxが0のマクロブロックになっており、そのため、マクロブロックAのずれベクトルmvAが、対象ブロックX(のずれベクトルmvX)の予測ベクトルPMVXとされる。
また、図12のBに示すように、対象ブロックXに隣接する3つのマクロブロックAないしCの中に、予測用の参照インデクスref_idxが対象ブロックXと同一の0のマクロブロックが、2つ以上存在する場合には、その、予測用の参照インデクスref_idxが0の2つ以上のマクロブロックのずれベクトルのメディアンが、対象ブロックXの予測ベクトルPMVXとされる。
ここで、図12のBでは、対象ブロックXに隣接する3つのマクロブロックAないしCのすべてが、予測用の参照インデクスref_idxが0のマクロブロックになっており、そのため、マクロブロックAのずれベクトルmvA、マクロブロックBのずれベクトルmvB、及び、マクロブロックCのずれベクトルmvCのメディアンmed(mvA,mvB,mvC)が、対象ブロックXの予測ベクトルPMVXとされる。
また、図12のCに示すように、対象ブロックXに隣接する3つのマクロブロックAないしCの中に、予測用の参照インデクスref_idxが対象ブロックXと同一の0のマクロブロックが、1つも存在しない場合には、0ベクトルが、対象ブロックXの予測ベクトルPMVXとされる。
ここで、図12のCでは、対象ブロックXに隣接する3つのマクロブロックAないしCの中に、予測用の参照インデクスref_idxが0のマクロブロックは存在しないので、0ベクトルが、対象ブロックXの予測ベクトルPMVXとされる。
なお、MVC方式では、値が0の参照インデクスrev_idxが割り当てられた参照ピクチャを用いて、対象ブロックの符号化を行う場合には、対象ブロックを、スキップマクロブロックとすることができる。
スキップマクロブロックについては、残差(対象ブロックと予測画像との残差)も、ずれベクトルの情報も符号化されない。そして、デコーダ側では、予測ベクトルが、そのまま、スキップマクロブロックのずれベクトルに採用され、参照ピクチャの、スキップマクロブロックの位置からずれベクトルだけずれた位置のブロック(対応ブロック)のコピーが、スキップマクロブロックの復号結果とされる。
対象ブロックをスキップマクロブロックとするか否かは、エンコーダの仕様によるが、例えば、符号化データの符号量や、対象ブロックの符号化コスト等に基づいて決定(判定)される。
[エンコーダ22の構成例]
図13は、図5のエンコーダ22の構成例を示すブロック図である。
エンコーダ22は、符号化対象の画像である視点#2の視差画像D#2の符号化を、MVC方式を利用して、すなわち、図3で説明したようにして行う。
図13において、エンコーダ22は、A/D変換部211、画面並び替えバッファ212、演算部213、直交変換部214、量子化部215、可変長符号化部216、蓄積バッファ217、逆量子化部218、逆直交変換部219、演算部220、デブロッキングフィルタ221、画面内予測部222、予測画像選択部224、ワーピング部231、ワープドピクチャバッファ232、オクルージョン検出部233、及び、視差予測部234を有する。
A/D変換部211ないし画面内予測部222、及び、予測画像選択部224は、図9のエンコーダ11のA/D変換部111ないし画面内予測部122、及び、予測画像選択部124と、それぞれ同様に構成されるので、その説明は、適宜省略する。
図13において、DPB31には、デブロッキングフィルタ221から、デコード画像、すなわち、エンコーダ22において符号化されてローカルデコードされた視差画像(以下、デコード視差画像ともいう)D#2のピクチャが供給され、参照ピクチャとして記憶される。
また、DPB31には、図5や図9で説明したように、エンコーダ11において符号化されてローカルデコードされた色画像C#1のピクチャ、エンコーダ12において符号化されてローカルデコードされた色画像C#2のピクチャ、及び、エンコーダ21において符号化されてローカルデコードされた視差画像(デコード視差画像)D#1のピクチャも供給されて記憶される。
エンコーダ22では、デブロッキングフィルタ221からのデコード視差画像D#2のピクチャの他、エンコーダ21で得られるデコード視差画像D#1が、符号化対象である視差画像D#2の符号化に用いられるので、図13では、エンコーダ21で得られるデコード視差画像D#1が、DPB31に供給されることを示す矢印を、図示してある。
ワーピング部231には、視差関連情報(図5)としての、撮影視差ベクトルd(視点#1の撮影視差ベクトルd1)の最大値dmax及び最小値dmin、基線長L、焦点距離f、及び、位置情報が供給される。
ワーピング部231は、DPB31に記憶された、デコード視差画像D#1及びD#2のピクチャのうちの、デコード視差画像D#1のピクチャ(対象ピクチャと同一時刻のピクチャ)を取得する(読み出す)。
そして、ワーピング部231は、視差関連情報を必要に応じて用いて、DPB31から取得したデコード視差画像D#1のピクチャをワーピングすることにより、そのデコード視差画像D#1のピクチャを視点#2で得られる画像(視差画像)に変換したワープド画像であるワープド視差画像D'#1のピクチャを生成する。
すなわち、ワーピング部231は、デコード視差画像D#1のピクチャの各画素の画素値である視差値νを、撮影視差ベクトルdの最大値dmax及び最小値dminを用い、式(4)に従って、画素ごとの撮影視差ベクトルd(d1)に変換する。
ここで、視差情報画像として、視差画像ではなく、奥行き画像を用いる場合には、基線長L、及び、焦点距離fを用い、式(5)に従って、奥行き画像の画素値である奥行き値の正規化前の奥行きZが、撮影視差ベクトルdに変換される。
ワーピング部231は、デコード視差画像D#1のピクチャの各画素を、その画素の撮影視差ベクトルdに従って移動するワーピングを行うことにより、ワープド視差画像D'#1のピクチャを生成する。
ワーピング部231は、デコード視差画像D#1のピクチャのワーピングによって、ワープド視差画像D'#1のピクチャを生成すると、そのワープド視差画像D'#1のピクチャを、ワープドピクチャバッファ232に供給する。
ここで、ワーピング部231に供給される視差関連情報は、可変長符号化部216にも供給され、必要に応じて、ヘッダ情報として、符号化データのヘッダに含められる。
なお、視差関連情報は、符号化データのヘッダに含めるのではなく、多重化部32(図5)において、符号化データとともに多重化することができる。
ワープドピクチャバッファ232は、ワーピング部231からのワープド視差画像D'#1のピクチャを、一時記憶する。
なお、本実施の形態では、DPB31とは別に、ワープド視差画像D'#1のピクチャを記憶するワープドピクチャバッファ232を設けてあるが、DPB31とワープドピクチャバッファ232とは、1つのバッファで兼用することが可能である。
オクルージョン検出部233は、図2で説明したように、ワープドピクチャバッファ232に記憶されたワープド視差画像D'#1のピクチャ(対象ピクチャと同一時刻のピクチャ)において、画素値がない部分(画素値なし部分)を検出する。
さらに、オクルージョン検出部233は、視差画像D#2の対象ピクチャの、画素値なし部分と同一位置の部分を、オクルージョン部分として検出する。
そして、オクルージョン検出部233は、図2で説明したように、視差画像D#2の対象ピクチャにおいて処理対象となりうる各ブロックについて、(視差がある)水平方向にスキャンすることにより、オクルージョン部分が開始している開始画素Sと終了している終了画素Eとを検出する。
オクルージョン検出部233は、対象ピクチャの各ブロックの開始画素S及び終了画素Eを検出すると、その開始画素S及び終了画素Eを、オクルージョン情報として、視差予測部234に供給する。
視差予測部234は、DPB31に記憶された視点#1のデコード視差画像D#1のピクチャを参照ピクチャとして、対象ブロックの視差予測(予測画像の生成)を行う。
すなわち、視差予測部234は、DPB31に記憶されたデコード視差画像D#1のピクチャを参照ピクチャとして、MEを行うことにより、対象ブロックの計算視差ベクトルを求める。
さらに、視差予測部234は、対象ブロックの計算視差ベクトルに従って、DPB31に記憶されたデコード視差画像D#1のピクチャを参照ピクチャとするMC(Motion Compensation)(動き補償)を行うことにより、対象ブロックの予測画像を生成する。
また、視差予測部234は、各マクロブロックタイプについて、参照ピクチャから視差予測によって得られる予測画像を用いた対象ブロックの符号化(予測符号化)に要する符号化コストを算出する。
そして、視差予測部234は、符号化コストが最小のマクロブロックタイプを、最適インター予測モードとして選択し、その最適インター予測モードで生成された予測画像を、予測画像選択部224に供給する。
さらに、視差予測部234は、最適インター予測モード等の情報を、ヘッダ情報として、可変長符号化部216に出力する。
なお、上述したように、参照ピクチャには、参照インデクスが割り当てられており、視差予測部234において、最適インター予測モードで生成された予測画像を生成するときに参照された参照ピクチャに割り当てられた参照インデクスは、対象ブロックの予測用の参照インデクスに選択され、ヘッダ情報の1つとして、可変長符号化部216に出力される。
さらに、視差予測部234では、オクルージョン検出部463からのオクルージョン情報を必要に応じて用いて、対象ブロックの(計算視差ベクトルの)予測ベクトルが求められる。そして、視差予測部234では、対象ブロックの計算視差ベクトルと予測ベクトルとの差である残差ベクトルが求められ、ヘッダ情報の1つとして、可変長符号化部216に出力される。
また、図13においては、説明を簡単にするために、エンコーダ22に、インター予測のうちの視差予測だけを行う視差予測部234を設けてあるが、エンコーダ22では、図9のエンコーダ11のインター予測部123と同様に、視差予測の他、時間予測も行うことができる。
エンコーダ22において、視差予測、及び、時間予測の両方を行う場合、視差予測で参照されうる参照ピクチャであるデコード視差画像D#1のピクチャと、時間予測で参照されうる参照ピクチャであるデコード視差画像D#2のピクチャ(対象ピクチャとは時刻が異なる他時刻ピクチャ)とに、参照インデクスが割り当てられる。
そして、エンコーダ22では、視差予測で生成される予測画像と、時間予測で生成される予測画像とのうちの、例えば、対象ブロックの符号化コストが小さい方の予測画像を生成するのに参照された参照ピクチャに割り当てられた参照インデクスが、対象ブロックの予測用の参照インデクスに選択され、ヘッダ情報の1つとされる。
図14は、図13の視差予測部234の構成例を示すブロック図である。
図14において、視差予測部234は、視差検出部241、視差補償部242、予測ベクトル生成部243、コスト関数算出部244、及び、モード選択部245を有する。
視差検出部241には、DPB31に記憶された参照ピクチャであるデコード視差画像D#1のピクチャが供給されるとともに、画面並び替えバッファ212から、符号化対象の視差画像D#2のピクチャ(対象ピクチャ)が供給される。
視差検出部241は、画面並び替えバッファ212からの対象ピクチャにおける対象ブロックについて、MVC方式と同様に、デコード視差画像D#1のピクチャを参照ピクチャとして用いたMEを行うことにより、対象ブロックと、デコード視差画像D#1のピクチャにおいて、例えば、対象ブロックとのSADを最小にする対応ブロックとのずれを表すずれベクトル、すなわち、対象ブロックの、視点#1に対する視差を表す計算視差ベクトルmvを、マクロブロックタイプごとに検出する。
なお、ここでは、説明を簡単にするため、デコード視差画像D#1のピクチャにおいて、対象ブロックとのSADを最小にするブロックを、計算視差ベクトルmvを求めるのに用いる対応ブロックとしているが、視差検出部241では、その他、例えば、式COST=D+λRで表される、対象ブロックの符号化コストCOSTを最小にする対応ブロック(ひいては、計算視差ベクトルmv)を検出することができる。
ここで、式COST=D+λRにおいて、Dは、対象ブロックと、デコード視差画像D#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に記憶された参照ピクチャであるデコード視差画像D#1のピクチャが供給される。
さらに、視差補償部242には、予測ベクトル生成部243から予測ベクトル情報が供給される。
視差補償部242は、視差検出部241からの残差ベクトルと、予測ベクトル生成部243からの予測ベクトル情報とから、対象ブロックの計算視差ベクトルmvを復元する。
さらに、視差補償部242は、DPB31からのデコード視差画像D#1のピクチャを、参照ピクチャとして、その参照ピクチャのずれ補償(視差補償)を、対象ブロックの計算視差ベクトルmvを用いて、MVC方式と同様にして行うことで、対象ブロックの予測画像を、マクロブロックタイプごとに生成する。
すなわち、視差補償部242は、デコード視差画像D#1のピクチャの、対象ブロックの位置から、計算視差ベクトルmvだけずれた位置のブロック(領域)である対応ブロックを、予測画像として取得する。
そして、視差補償部242は、予測画像を、視差検出部241からの残差ベクトル、及び、予測画像を生成するのに用いた参照ピクチャ(ここでは、デコード視差画像D#1のピクチャ)に割り当てられている参照インデクスとともに、コスト関数算出部244に供給する。
予測ベクトル生成部243には、オクルージョン検出部233から、オクルージョン情報としての開始画素S及び終了画素Eが供給される。
予測ベクトル生成部243は、オクルージョン検出部233からのオクルージョン情報を用いて、対象ブロックが、オクルージョンブロックであるかどうかを判定する。
そして、予測ベクトル生成部243は、対象ブロックが、オクルージョンブロックであるかどうかによって異なるベクトル予測方式で、対象ブロックの予測ベクトルを生成する。
すなわち、予測ベクトル生成部243は、対象ブロックが、オクルージョンブロックである場合、図2ないし図4で説明した近接予測方式で、対象ブロックの予測ベクトルを生成する。
また、予測ベクトル生成部243は、対象ブロックが、オクルージョンブロックでない場合(非オクルージョンブロックである場合)、図11及び図12で説明したMVC方式で、対象ブロックの予測ベクトルを生成する。
予測ベクトル生成部243は、各マクロブロックタイプ(図10)について、予測ベクトルを生成し、予測ベクトル情報として、視差検出部241、視差補償部242、及び、コスト関数算出部244に供給する。
コスト関数算出部244には、視差補償部242から、予測画像、残差ベクトル、及び、参照インデクスが供給されるとともに、予測ベクトル生成部243から、予測ベクトル情報が供給される他、画面並び替え部バッファ212から、視差画像D#2の対象ピクチャが供給される。
コスト関数算出部244は、マクロブロックタイプ(図10)ごとに、画面並び替えバッファ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において、対象ブロックを、スキップマクロブロックとして符号化すると判定された場合、最適インター予測モードは、対象ブロックを、スキップマクロブロックとして符号化するスキップモードとされる。
図15は、図13のエンコーダ22が行う、視点#2の視差画像D#2を符号化する符号化処理を説明するフローチャートである。
ステップS11において、A/D変換部211は、そこに供給される視点#2の視差画像D#2のピクチャのアナログ信号をA/D変換し、画面並び替えバッファ212に供給して、処理は、ステップS12に進む。
ステップS12では、画面並び替えバッファ212は、A/D変換部211からの視差画像D#2のピクチャを一時記憶し、あらかじめ決められたGOPの構造に応じて、ピクチャを読み出すことで、ピクチャの並びを、表示順から、符号化順(復号順)に並び替える並び替えを行う。
画面並び替えバッファ212から読み出されたピクチャは、演算部213、画面内予測部222、及び、視差予測部234に供給され、処理は、ステップS12からステップS13に進む。
ステップS13では、演算部213は、画面並び替えバッファ212からの視差画像D#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から供給される予測画像の画素値を加算することで、対象ブロックを復号(ローカルデコード)したデコード視差画像D#2を求める。そして、演算部220は、対象ブロックをローカルデコードしたデコード視差画像D#2を、デブロッキングフィルタ221に供給して、処理は、ステップS18からステップS19に進む。
ステップS19では、デブロッキングフィルタ221は、演算部220からのデコード視差画像D#2をフィルタリングし、DPB31(図5)に供給して、処理は、ステップS20に進む。
ステップS20では、DPB31が、視差画像D#1を符号化するエンコーダ21から、その視差画像D#1を符号化して、ローカルデコードすることにより得られるデコード視差画像D#1が供給されるのを待って、そのデコード視差画像D#1を記憶し、処理は、ステップS21に進む。
ステップS21では、DPB31が、デブロッキングフィルタ221からのデコード視差画像D#2を記憶し、処理は、ステップS22に進む。
ステップS22では、ワーピング部231が、DPB31に記憶されたデコード視差画像D#1のピクチャをワーピングすることにより、ワープド視差画像D'#1のピクチャを生成し、ワープドピクチャバッファ232に供給して、処理は、ステップS23に進む。
ステップS23では、ワープドピクチャバッファ232が、ワーピング部231からのワープド視差画像D'#1のピクチャを記憶し、処理は、ステップS24に進む。
ステップS24では、オクルージョン検出部233が、ワープドピクチャバッファ232に記憶されたワープド視差画像D'#1のピクチャを用いて、視差画像D#2の対象ピクチャのオクルージョン部分を検出するオクルージョン検出処理を行う。
そして、オクルージョン検出部233は、オクルージョン検出処理によって得られるオクルージョン情報を、視差予測部234に供給して、処理は、ステップS24からステップS25に進む。
ステップS25では、画面内予測部222は、次に符号化の対象となるマクロブロックである次の対象ブロックについて、イントラ予測処理(画面内予測処理)を行う。
すなわち、画面内予測部222は、次の対象ブロックについて、DPB31に記憶されたデコード視差画像D#2のピクチャから、予測画像(イントラ予測の予測画像)を生成するイントラ予測(画面内予測)を行う。
そして、画面内予測部222は、イントラ予測の予測画像を用いて、対象ブロックを符号化するのに要する符号化コストを求め、イントラ予測の予測画像とともに、予測画像選択部224に供給して、処理は、ステップS25からステップS26に進む。
ステップS26では、視差予測部234は、次の対象ブロックについて、DPB31に記憶されたデコード視差画像D#1のピクチャを参照ピクチャとして、視差予測処理を行う。
すなわち、視差予測部234は、次の対象ブロックについて、DPB31に記憶されたデコード視差画像D#1のピクチャを参照画像として、視差予測を行うことにより、マクロブロックタイプ等が異なるインター予測モードごとに、計算視差ベクトルや、予測ベクトル、予測画像、符号化コスト等を求める。
さらに、視差予測部234は、符号化コストが最小のインター予測モードを、最適インター予測モードとして、その最適インター予測モードの予測画像を、符号化コストとともに、予測画像選択部224に供給して、処理は、ステップS26からステップS27に進む。
ステップS27では、予測画像選択部224は、画面内予測部222からの予測画像(イントラ予測の予測画像)、及び、視差予測部234からの予測画像(インター予測の予測画像)のうちの、例えば、符号化コストが小さい方の予測画像を選択し、演算部213及び220に供給して、処理は、ステップS28に進む。
ここで、予測画像選択部224がステップS27で選択する予測画像が、次の対象ブロックの符号化で行われるステップS13やS18の処理で用いられる。
また、画面内予測部222は、ステップS25のイントラ予測処理において得られるイントラ予測に関する情報を、ヘッダ情報として、可変長符号化部216に供給し、視差予測部234は、ステップS26の視差予測処理で得られる視差予測(インター予測)に関する情報(最適インター予測モードを表すモード関連情報等)を、ヘッダ情報として、可変長符号化部216に供給する。
ステップS28では、可変長符号化部216は、量子化部215からの量子化値に対して、可変長符号化を施し、符号化データを得る。
さらに、可変長符号化部216は、画面内予測部222、及び、視差予測部234それぞれからのヘッダ情報のうちの、符号化コストが小さい予測画像が生成された方からのヘッダ情報を選択し、符号化データのヘッダに含める。
そして、可変長符号化部216は、符号化データを、蓄積バッファ217に供給して、処理は、ステップS28からステップS29に進む。
ステップS29では、蓄積バッファ217は、可変長符号化部216からの符号化データを一時記憶し、所定のデータレートで出力する。
蓄積バッファ217から出力された符号化データは、多重化部32(図5)に供給される。
エンコーダ22では、以上のステップS11ないしS29の処理が、適宜繰り返し行われる。
図16は、図15のステップS24で、図13のオクルージョン検出部233が行うオクルージョン検出処理を説明するフローチャートである。
ステップS31において、オクルージョン検出部233は、図2で説明したように、ワープドピクチャバッファ232に記憶されたワープド視差画像D'#1のピクチャにおいて、画素値がない部分(画素値なし部分)を検出する。
さらに、オクルージョン検出部233は、視差画像D#2の、画素値なし部分と同一位置の部分を、オクルージョン部分として検出し、処理は、ステップS31からステップS32に進む。
ステップS32では、オクルージョン検出部233は、視差画像D#2の対象ピクチャを、例えば、マクロブロックを構成する水平ラインごとにスキャンし、対象ピクチャにおいて、オクルージョン部分の(水平方向(x方向)の)開始位置及び終了位置であるオクルージョン開始位置SS及びオクルージョン終了位置EEを検出する。
すなわち、オクルージョン検出部233は、例えば、対象ピクチャの上から1番目の水平ラインを、x方向(左から右方向)にスキャンし、対象ピクチャの上から1段目のマクロブロックの系列(スライス)について、オクルージョン部分が開始する画素の位置を、オクルージョン開始位置SSとして検出するとともに、オクルージョン部分が終了する画素の位置を、オクルージョン終了位置EEとして検出する。
さらに、オクルージョン検出部233は、例えば、対象ピクチャの上から17(=16×(2−1)+1)番目の水平ラインを、x方向にスキャンし、対象ピクチャの上から2段目のマクロブロックの系列について、オクルージョン部分が開始する画素の位置を、オクルージョン開始位置SSとして検出するとともに、オクルージョン部分が終了する画素の位置を、オクルージョン終了位置EEとして検出する。
また、オクルージョン検出部233は、例えば、対象ピクチャの上から33(=16×(3−1)+1)番目の水平ラインを、x方向にスキャンし、対象ピクチャの上から3段目のマクロブロックの系列について、オクルージョン部分が開始する画素の位置を、オクルージョン開始位置SSとして検出するとともに、オクルージョン部分が終了する画素の位置を、オクルージョン終了位置EEとして検出する。
以下、同様に、オクルージョン検出部233は、例えば、対象ピクチャの上から16×(k−1)+1)番目の水平ラインを、x方向にスキャンし、対象ピクチャの上からk段目のマクロブロックの系列について、オクルージョン部分が開始する画素の位置を、オクルージョン開始位置SSとして検出するとともに、オクルージョン部分が終了する画素の位置を、オクルージョン終了位置EEとして検出する。
ここで、オクルージョン開始位置SS及びオクルージョン終了位置EEは、対象ピクチャの左(左端)からの画素数(左から、何番目の画素であるか)を表す。
以上のようにして、対象ピクチャの最下段のマクロブロックの系列についてまで、オクルージョン開始位置SS及びオクルージョン終了位置EEが検出されると、処理は、ステップS32からステップS33に進み、オクルージョン検出部233は、対象ピクチャから、例えば、符号化順で、まだ、注目ブロックに選択していないマクロブロックを、注目ブロックに選択し、処理は、ステップS34に進む。
ステップS34では、オクルージョン検出部233は、対象ピクチャにおいて、注目ブロックが存在する段数のマクロブロックの系列について検出されたオクルージョン開始位置SS及びオクルージョン終了位置EEに基づいて、注目ブロックが、オクルージョンブロックであるかどうかを認識し、処理は、ステップS35に進む。
ステップS35では、オクルージョン検出部233は、注目ブロックがオクルージョンブロックであるかどうかを判定する。
ステップS35において、注目ブロックがオクルージョンブロックであると判定された場合、処理は、ステップS36に進み、オクルージョン検出部233は、オクルージョンブロックである注目ブロックについて、図2ないし図4で説明したオクルージョン部分が開始している開始画素Sと終了している終了画素Eとを検出して記憶し、処理は、ステップS38に進む。
また、ステップS35において、注目ブロックがオクルージョンブロックでないと判定された場合、処理は、ステップS37に進み、オクルージョン検出部233は、非オクルージョンブロックである注目ブロックの開始画素S及び終了画素E(としての変数)に、オクルージョンブロックでない旨を表す値(例えば、オクルージョンブロックの開始画素S及び終了画素Eとして取り得ない0や-1等の値)をセットし、処理は、ステップS38に進む。
ステップS38では、オクルージョン検出部233は、対象ピクチャのすべてのマクロブロックを、注目ブロックとして、開始画素S及び終了画素Eを求めたかどうかを判定する。
ステップS38において、対象ピクチャのすべてのマクロブロックが、まだ、注目ブロックとされていないと判定された場合、処理は、ステップS33に戻り、対象ピクチャから、符号化順で、まだ、注目ブロックに選択していないマクロブロックが、注目ブロックに新たに選択され、以下、同様の処理が繰り返される。
また、ステップS38において、対象ピクチャのすべてのマクロブロックが、注目ブロックとされたと判定された場合、処理はリターンする。
なお、図16のオクルージョン検出処理は、対象ピクチャについて、1回だけ行えば良い。
また、図16では、オクルージョン検出処理を、マクロブロックを最小単位として行うことにより、マクロブロックごとに、そのマクロブロックにおいて、オクルージョン部分が開始している開始画素Sと終了している終了画素Eとを検出したが、オクルージョン検出処理は、その他、視差予測部234において、計算視差ベクトルを検出する単位(MEを行う単位)で行うことができる。
すなわち、オクルージョン検出処理は、図10で説明したパーティション(サブパーティション)単位で行うことができる。
この場合、オクルージョン検出処理を行う最小の単位は、4×4画素のパーティション(サブパーティション)となる。
図17は、オクルージョン検出部233(図13)が行うオクルージョン検出処理(図16)を説明する図である。
すなわち、図17のAは、オクルージョン検出部233が、図16のステップS34において、注目ブロックが存在する段数のマクロブロックの系列について検出されたオクルージョン開始位置SS及びオクルージョン終了位置EEに基づいて、注目ブロックが、オクルージョンブロックであるかどうかを認識する処理を説明する図である。
なお、図17では、図2と同様に、視点#1が右側に位置し、視点#2が左側に位置しており、視点#2の視差画像D#2において、前景の左側の接する背景の部分が、オクルージョン部分になっていることとする。したがって、オクルージョン部分の左側は、背景になっており、右側は、前景になっている。
また、図17では、マクロブロックの左端の画素の位置が、SBで表され、右端の画素の位置がEBで表されている。位置SB及びEBは、対象ピクチャの左(左端)からの画素数(左から、何番目の画素であるか)を表す。したがって、EB-SB+1は、マクロブロックのx方向の幅である16画素である。
図16で説明したように、オクルージョン開始位置SS及びオクルージョン終了位置EEは、対象ピクチャの左(左端)からの画素数(左から、何番目の画素であるか)を表す。
したがって、マクロブロックの左端の画素の位置SB、及び、右端の画素の位置EBが、式SB≦SS≦EB≦EE、式SS≦SB<EB≦EE、式SS≦SB≦EE≦EB、及び、式SB≦SS≦SE≦EBのうちのいずれかを満たす場合、そのマクロブロックには、オクルージョン部分が含まれる。
オクルージョン検出部233は、マクロブロックの左端の画素の位置SB、及び、右端の画素の位置EBが、式SB≦SS≦EB≦EE、式SS≦SB<EB≦EE、式SS≦SB≦EE≦EB、及び、式SB≦SS≦SE≦EBのうちのいずれかを満たす場合に、そのマクロブロックが、オクルージョンブロックであると認識する。
図17では、ブロック(マクロブロック)B#1,B#2、及び、B#3が、オクルージョンブロックであると認識されている。
図17のBは、オクルージョン検出部233は、図16のステップS36において、オクルージョンブロックであるマクロブロックについて、オクルージョン部分が開始している開始画素Sと終了している終了画素Eとを検出する処理を説明する図である。
ここで、オクルージョンブロックであるブロック(マクロブロック)B#iについて、オクルージョン部分が開始している開始画素S#iと終了している終了画素E#iとは、そのマクロブロックの左からの画素数(左から、何番目の画素であるか)を表す。
いま、図17のAに示すように、オクルージョンブロックであるブロックB#1,B#2、及び、B#3が、それぞれ、対象ブロックの左から2,3、及び、4番目のブロックであるとする。
さらに、図17のBに示すように、オクルージョン部分のオクルージョン開始位置SSが24画素目であり、オクルージョン終了位置EEが60画素目であるとする。
この場合、マクロブロックのx方向の画素数は16画素であるため、図17のBに示すように、ブロックB#1の開始画素S#1と終了画素E#1は、それぞれ、8画素目と16画素目になる。
また、ブロックB#2の開始画素S#2と終了画素E#2は、それぞれ、1画素目と16画素目になり、ブロックB#3の開始画素S#3と終了画素E#3は、それぞれ、1画素目と12画素目になる。
図18は、図15のステップS26で、図14の視差予測部234が行う視差予測処理を説明するフローチャートである。
ステップS41において、予測ベクトル生成部243は、オクルージョン検出部233から供給されるオクルージョン情報を必要に応じて用いて、各マクロブロックタイプ(図10)について、(次の)対象ブロックの予測ベクトルを生成する予測ベクトル生成処理を行う。
そして、予測ベクトル生成部243は、予測ベクトル生成処理によって得られた対象ブロックの予測ベクトルを、予測ベクトル情報として、視差検出部241、視差補償部242、及び、コスト関数算出部244に供給し、処理は、ステップS41からステップS42に進む。
ステップS42において、視差予測部234は、DPB31から、参照ピクチャであるデコード視差画像D#1のピクチャを取得し、視差検出部241、及び、視差補償部242に供給して、処理は、ステップS43に進む。
ステップS43では、視差検出部241は、画面並び替えバッファ212から供給される対象ピクチャにおける(次の)対象ブロックについて、DPB31からのデコード視差画像D#1のピクチャを参照ピクチャとして用いてMEを行うことにより、対象ブロックの、視点#1に対する視差を表す計算視差ベクトルmvを検出する。
さらに、視差検出部241は、対象ブロックの計算視差ベクトルmvと、予測ベクトル生成部243から供給される予測ベクトル情報から得られる予測ベクトルとの差分である残差ベクトルを求めて、視差補償部242に供給し、処理は、ステップS43からステップS43に進む。
ステップS43では、視差補償部242は、視差検出部241からの残差ベクトルと、予測ベクトル生成部243からの予測ベクトル情報とから、対象ブロックの計算視差ベクトルmvを復元する。
さらに、視差補償部242は、DPB31からのデコード視差画像D#1のピクチャを、参照ピクチャとして、対象ブロックの計算視差ベクトルmvに従ってMCを行うことにより、(次の)対象ブロックの予測画像を生成する。
すなわち、視差補償部242は、デコード視差画像D#1のピクチャの、対象ブロックの位置から、計算視差ベクトルmvだけずれた位置のブロックである対応ブロックを、予測画像として取得する。
そして、視差補償部242は、予測画像を、視差検出部241からの残差ベクトル、及び、予測画像を生成するのに用いた参照ピクチャ(ここでは、デコード視差画像D#1のピクチャ)に割り当てられている参照インデクスとともに、コスト関数算出部244に供給して、処理は、ステップS44からステップS45に進む。
ステップS45では、コスト関数算出部244は、マクロブロックタイプ(図10)ごとに、画面並び替えバッファ212からの対象ピクチャの対象ブロックの符号化に要する符号化コストを、所定のコスト関数に従って求め、視差補償部242からの参照インデクス、予測画像、及び、残差ベクトルとともに、モード選択部245に供給して、処理は、ステップS46に進む。
ステップS46では、モード選択部245は、コスト関数算出部244からのマクロブロックタイプごとの符号化コストの中から、最小値である最小コストを検出する。
さらに、モード選択部245は、最小コストが得られたマクロブロックタイプを、最適インター予測モードに選択して、処理は、ステップS46からステップS47に進む。
ステップS47では、モード選択部245は、最適インター予測モードの予測画像と符号化コスト(最小コスト)を、予測画像選択部224に供給して、処理は、ステップS48に進む。
ステップS48では、モード選択部245は、最適インター予測モードを表すモード関連情報、最適インター予測モードの参照インデクス(予測用の参照インデクス)、及び、最適インター予測モードの残差ベクトルを、ヘッダ情報として、可変長符号化部216に供給して、処理はリターンする。
図19は、図18のステップS41で予測ベクトル生成部243(図14)が行う予測ベクトル生成処理を説明するフローチャートである。
なお、図19は、図2及び図3で説明したように、視点#1が右側に位置し、視点#2が左側に位置しており、視点#2の視差画像D#2において、前景の左側の接する背景の部分が、オクルージョン部分になっている場合、つまり、オクルージョン部分の左側が、背景であり、右側が、前景である場合の、予測ベクトル生成処理を示している。
予測ベクトル生成部243において、エンコーダ22(図13)での符号化対象の視差画像D#2の視点#2が、参照ピクチャとなる視差画像D#1の視点#1の左側に位置するかどうかは、ワーピング部231に供給される位置情報から認識される。
予測ベクトル生成部243は、視点#2が、視点#1の左側に位置する場合に、図19のフローチャートに従った予測ベクトル生成処理を行う。
ステップS61において、予測ベクトル生成部243は、オクルージョン検出部233からオクルージョン情報としての、対象ピクチャの各ブロックの開始画素Sと終了画素Eを取得して、処理は、ステップS62に進む。
ステップS62では、予測ベクトル生成部243は、オクルージョン検出部233からのオクルージョン情報に基づいて、対象ブロックが、オクルージョンブロックであるかどうかを判定する。
ここで、オクルージョン検出部233では、図16で説明したように、非オクルージョンブロックの開始画素S及び終了画素E(としての変数)には、オクルージョンブロックでない旨を表す値(オクルージョンブロックの開始画素S及び終了画素Eとして取り得ない0や-1等の値)がセットされる。
したがって、予測ベクトル生成部243では、オクルージョン情報としての、対象ブロックの開始画素S及び終了画素Eに基づいて、対象ブロックが、オクルージョンブロックであるかどうかを判定することができる。
ステップS62において、対象ブロックが、オクルージョンブロックでないと判定された場合、すなわち、対象ブロックが、非オクルージョンブロックである場合、処理は、ステップS63に進み、予測ベクトル生成部243は、MVC方式で、対象ブロックの予測ベクトルPMVを生成して、処理はリターンする。
また、ステップS62において、対象ブロックが、オクルージョンブロックであると判定された場合、処理は、ステップS64に進み、以下、予測ベクトル生成部243では、オクルージョンブロックである対象ブロックの予測ベクトルPMVが、図2及び図3で説明した、近接予測方式で生成される。
すなわち、ステップS64では、予測ベクトル生成部243は、オクルージョン情報に基づき、オクルージョンブロックである対象ブロックの左隣のブロックが、非オクルージョンブロックであるかどうかを判定する。
ステップS64において、対象ブロックの左隣のブロックが、非オクルージョンブロックであると判定された場合、すなわち、対象ピクチャの、対象ブロックの段(スライス)を、x方向にスキャンしたときに、対象ブロックから、オクルージョン部分が開始している場合、処理は、ステップS65に進み、予測ベクトル生成部243は、オクルージョン情報としての対象ブロックの開始画素S及び終了画素Eを用い、式(1)と同様の式PMV=(-(E-S+1),0)に従って、対象ブロックの予測ベクトルPMVを求め(生成し)、処理はリターンする。
また、ステップS64において、対象ブロックの左隣のブロックが、非オクルージョンブロックでないと判定された場合、すなわち、対象ブロックの左隣のブロックが、オクルージョンブロックである場合、処理は、ステップS66に進み、予測ベクトル生成部243は、オクルージョン情報としての対象ブロックの開始画素S及び終了画素E、及び、対象ブロックの左隣のブロック(オクルージョンブロック)の、既に求められている予測ベクトルPMVL=(PMVLx,PMVLy)のx成分を用い、式(1)と同様の式PMV=(PMVLx-(E-S+1),0)に従って、対象ブロックの予測ベクトルPMVを求め、処理はリターンする。
なお、ステップS66では、式PMV=(PMVLx-(E-S+1),0)の他、例えば、式PMV=(PMVLx-(E-S+1),PMVLy)に従って、対象ブロックの予測ベクトルを求めることができる。
図20は、図18のステップS41で予測ベクトル生成部243(図14)が行う予測ベクトル生成処理を説明するフローチャートである。
なお、図20は、図4で説明したように、視点#1が左側に位置し、視点#2が右側に位置しており、視点#2の視差画像D#2において、前景の右側の接する背景の部分が、オクルージョン部分になっている場合、つまり、オクルージョン部分の右側が、背景であり、左側が、前景である場合の、予測ベクトル生成処理を示している。
予測ベクトル生成部243において、エンコーダ22(図13)での符号化対象の視差画像D#2の視点#2が、参照ピクチャとなる視差画像D#1の視点#1の右側に位置するかどうかは、ワーピング部231に供給される位置情報から認識される。
予測ベクトル生成部243は、視点#2が、視点#1の右側に位置する場合に、図20のフローチャートに従った予測ベクトル生成処理を行う。
ステップS71において、予測ベクトル生成部243は、オクルージョン検出部233からオクルージョン情報としての、対象ピクチャの各ブロックの開始画素Sと終了画素Eを取得して、処理は、ステップS72に進む。
ステップS72では、予測ベクトル生成部243は、オクルージョン検出部233からのオクルージョン情報に基づいて、対象ブロックが、オクルージョンブロックであるかどうかを判定する。
ステップS72において、対象ブロックが、オクルージョンブロックでないと判定された場合、すなわち、対象ブロックが、非オクルージョンブロックである場合、処理は、ステップS73に進み、予測ベクトル生成部243は、MVC方式で、対象ブロックの予測ベクトルPMVを生成して、処理はリターンする。
また、ステップS72において、対象ブロックが、オクルージョンブロックであると判定された場合、処理は、ステップS74に進み、以下、予測ベクトル生成部243では、オクルージョンブロックである対象ブロックの予測ベクトルPMVが、図4で説明した、近接予測方式で生成される。
すなわち、ステップS74では、予測ベクトル生成部243は、オクルージョンブロックである対象ブロックの左隣のブロックが、非オクルージョンブロックであるかどうかを判定する。
ステップS74において、対象ブロックの左隣のブロックが、非オクルージョンブロックであると判定された場合、すなわち、対象ピクチャの、対象ブロックの段(スライス)を、x方向にスキャンしたときに、対象ブロックから、オクルージョン部分が開始している場合、処理は、ステップS75に進み、予測ベクトル生成部243は、オクルージョン情報から、対象ブロックを先頭として、x方向に連続して並ぶオクルージョンブロックを認識し、処理は、ステップS76に進む。
ここで、対象ブロックを先頭として、x方向に連続して並ぶオクルージョンブロックの先頭からi番目のブロックを、B#iと表すこととする。また、対象ブロックを先頭として、x方向に連続して並ぶオクルージョンブロックの数がN個であるとする。
この場合、対象ブロックを先頭とする、x方向に連続して並ぶオクルージョンブロック先頭のブロック(対象ブロック)は、B#1で表され、最後のブロックは、B#Nで表される。
ステップS76では、予測ベクトル生成部243は、オクルージョン情報としての、対象ブロックを先頭とする、x方向に連続して並ぶオクルージョンブロックのすべてのブロックB#1ないしB#Nの開始画素S#1ないしS#N及び終了画素E#1ないしE#Nを用い、式(2)と同様の式PMV#1=(Σ(E#i-S#i+1),0)=((E#1-S#1+1)+(E#2-S#2+1)+・・・+(E#N-S#N+1),0)に従って、対象ブロックB#1の予測ベクトルPMV#1を求め、処理はリターンする。
また、ステップS74において、対象ブロックの左隣のブロックが、非オクルージョンブロックでないと判定された場合、すなわち、対象ブロックの左隣のブロックが、オクルージョンブロックである場合、処理は、ステップS76に進み、予測ベクトル生成部243は、オクルージョン情報としての対象ブロックB#iの左隣のブロックB#(i-1)の開始画素S#(i-1)及び終了画素E#(i-1)、及び、対象ブロックの左隣のブロック(オクルージョンブロック)の、既に求められている予測ベクトルPMV#(i-1)を用い、式(2)と同様の式PMV#i=PMV#(i-1)−((E#(i-1)-S#(i-1)+1),0)に従って、対象ブロックの予測ベクトルPMV#iを求め、処理はリターンする。
[本技術を適用した多視点画像デコーダの一実施の形態]
図21は、本技術を適用した多視点画像デコーダの一実施の形態の構成例を示すブロック図である。
図21の多視点画像デコーダは、例えば、MVC方式を利用して、複数の視点の画像を符号化したデータを復号するデコーダであり、以下では、MVC方式と同様の処理については、適宜、説明を省略する。
なお、多視点画像デコーダは、MVC方式を利用するデコーダに限定されるものではない。
図21の多視点画像デコーダでは、図5の多視点画像エンコーダが出力する多重化データが、2つの視点#1及び#2の色画像である視点#1の色画像C#1、及び、視点#2の色画像C#2、並びに、その2つの視点#1及び#2の視差画像である視点#1の視差画像D#1、及び、視点#2の視差画像D#2に復号される。
図21において、多視点画像デコーダは、分離部301、デコーダ311,312,321,322、及び、DPB331を有する。
図5の多視点画像エンコーダが出力する多重化データは、図示せぬ記録媒体や伝送媒体を介して、分離部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は、それぞれ、図5のエンコーダ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の構成例]
図22は、図21のデコーダ311の構成例を示すブロック図である。
なお、図21のデコーダ312及び321も、デコーダ311と同様に構成され、例えば、MVC方式に従って、画像の符号化を行う。
図22において、デコーダ311は、蓄積バッファ341、可変長復号部342、逆量子化部343、逆直交変換部344、演算部345、デブロッキングフィルタ346、画面並び替えバッファ347、D/A変換部348、画面内予測部349、インター予測部350、及び、予測画像選択部351を有する。
蓄積バッファ341には、分離部301(図21)から、色画像C#1の符号化データが供給される。
蓄積バッファ341は、そこに供給される符号化データを一時記憶し、可変長復号部342に供給する。
可変長復号部342は、蓄積バッファ341からの符号化データを可変長復号することにより、量子化値やヘッダ情報を復元する。そして、可変長復号部342は、量子化値を、逆量子化部343に供給し、ヘッダ情報を、画面内予測部349、及び、インター予測部350に供給する。
逆量子化部343は、可変長復号部342からの量子化値を、変換係数に逆量子化し、逆直交変換部344に供給する。
逆直交変換部344は、逆量子化部343からの変換係数を逆直交変換し、マクロブロック単位で、演算部345に供給する。
演算部345は、逆直交変換部344から供給されるマクロブロックを復号対象の対象ブロックとして、その対象ブロックに対して、必要に応じて、予測画像選択部351から供給される予測画像を加算することで、デコード画像を求め、デブロッキングフィルタ346に供給する。
デブロッキングフィルタ346は、演算部345からのデコード画像に対して、例えば、図9のデブロッキングフィルタ121と同様のフィルタリングを行い、そのフィルタリング後のデコード画像を、画面並び替えバッファ347に供給する。
画面並び替えバッファ347は、デブロッキングフィルタ346からのデコード画像のピクチャを一時記憶して読み出すことで、ピクチャの並びを、元の並び(表示順)に並び替え、D/A(Digital/Analog)変換部348に供給する。
D/A変換部348は、画面並び替えバッファ347からのピクチャをアナログ信号で出力する必要がある場合に、そのピクチャをD/A変換して出力する。
また、デブロッキングフィルタ346は、フィルタリング後のデコード画像のうちの、参照可能ピクチャであるIピクチャ、Pピクチャ、及び、Bsピクチャのデコード画像を、DPB331に供給する。
ここで、DPB331は、デブロッキングフィルタ346からのデコード画像のピクチャ、すなわち、色画像C#1のピクチャを、時間的に後に行われる復号に用いる予測画像を生成するときに参照する参照ピクチャ(の候補)として記憶する。
図21で説明したように、DPB331は、デコーダ311,312,321、及び、322で共用されるので、デコーダ311において復号された色画像C#1のピクチャの他、デコーダ312において復号された色画像C#2のピクチャ、デコーダ321において復号された視差画像D#1のピクチャ、及び、デコーダ322において復号された視差画像D#2のピクチャも記憶する。
画面内予測部349は、可変長復号部342からのヘッダ情報に基づき、対象ブロックが、イントラ予測(画面内予測)で生成された予測画像を用いて符号化されているかどうかを認識する。
対象ブロックが、イントラ予測で生成された予測画像を用いて符号化されている場合、画面内予測部349は、図9の画面内予測部122と同様に、DPB331から、対象ブロックを含むピクチャ(対象ピクチャ)のうちの、既に復号されている部分(デコード画像)を読み出す。そして、画面内予測部349は、DPB331から読み出した、対象ピクチャのうちのデコード画像の一部を、対象ブロックの予測画像として、予測画像選択部351に供給する。
インター予測部350は、可変長復号部342からのヘッダ情報に基づき、対象ブロックが、インター予測で生成された予測画像を用いて符号化されているかどうかを認識する。
対象ブロックが、インター予測で生成された予測画像を用いて符号化されている場合、インター予測部350は、可変長復号部342からのヘッダ情報に基づき、予測用の参照インデクス、すなわち、対象ブロックの予測画像の生成に用いられた参照ピクチャに割り当てられている参照インデクスを認識する。
そして、インター予測部350は、DPB331に記憶されている参照ピクチャから、予測用の参照インデクスが割り当てられている参照ピクチャを、参照ピクチャとして読み出す。
さらに、インター予測部350は、可変長復号部342からのヘッダ情報に基づき、対象ブロックの予測画像の生成に用いられたずれベクトル(視差ベクトル、動きベクトル)を認識し、図9のインター予測部123と同様に、そのずれベクトルに従って、参照ピクチャのずれ補償(動き分のずれを補償する動き補償、又は、視差分のずれを補償する視差補償)を行うことで、予測画像を生成する。
すなわち、インター予測部350は、参照ピクチャの、対象ブロックの位置から、その対象ブロックのずれベクトルに従って移動した(ずれた)位置のブロック(対応ブロック)を、予測画像として取得する。
そして、インター予測部350は、予測画像を、予測画像選択部351に供給する。
予測画像選択部351は、画面内予測部349から予測画像が供給される場合には、その予測画像を、インター予測部350から予測画像が供給される場合には、その予測画像を、それぞれ選択し、演算部345に供給する。
[デコーダ322の構成例]
図23は、図21のデコーダ322の構成例を示すブロック図である。
デコーダ322は、復号対象である視点#2の視差画像D#2の符号化データの復号を、MVC方式を利用して、すなわち、図13のエンコーダ22で行われるローカルデコードと同様にして行う。
図23において、デコーダ322は、蓄積バッファ441、可変長復号部442、逆量子化部443、逆直交変換部444、演算部445、デブロッキングフィルタ446、画面並び替えバッファ447、D/A変換部448、画面内予測部449、予測画像選択部451、ワーピング部461、ワープドピクチャバッファ462、オクルージョン検出部463、及び、視差予測部464を有する。
蓄積バッファ441ないし画面内予測部449、及び、予測画像選択部451は、図22の蓄積バッファ341ないし画面内予測部349、及び、予測画像選択部351と、それぞれ同様に構成されるので、その説明は、適宜省略する。
図23において、DPB331には、デブロッキングフィルタ446から、デコード画像、すなわち、デコーダ322において復号された視差画像であるデコード視差画像D#2のピクチャが供給され、参照ピクチャとなりうる参照ピクチャとして記憶される。
また、DPB331には、図21や図22で説明したように、デコーダ311において復号された色画像C#1のピクチャ、デコーダ312において復号された色画像C#2のピクチャ、及び、デコーダ321において復号された視差画像(デコード視差画像)D#1のピクチャも供給されて記憶される。
但し、デコーダ322では、デブロッキングフィルタ446からのデコード視差画像D#2のピクチャの他、デコーダ321で得られるデコード視差画像D#1が、復号対象である視差画像D#2の復号に用いられるので、図23では、デコーダ321で得られるデコード視差画像D#1が、DPB331に供給されることを示す矢印を、図示してある。
ワーピング部461には、可変長復号部442から、視差関連情報としての、撮影視差ベクトルd(視点#1の撮影視差ベクトルd1)の最大値dmax及び最小値dmin、基線長L、焦点距離f、並びに、位置情報が供給される。
ワーピング部461は、DPB331に記憶された、デコード視差画像D#1及びD#2のピクチャのうちの、デコード視差画像D#1のピクチャを取得する(読み出す)。
そして、ワーピング部461は、図13のワーピング部231と同様に、視差関連情報を必要に応じて用いて、DPB331から取得したデコード視差画像D#1のピクチャをワーピングすることにより、そのデコード視差画像D#1のピクチャを視点#2で得られる画像(視差画像)に変換したワープド画像であるワープド視差画像D'#1のピクチャを生成する。
ワーピング部461は、デコード視差画像D#1のピクチャのワーピングによって、ワープド視差画像D'#1のピクチャを生成すると、そのワープド視差画像D'#1のピクチャを、ワープドピクチャバッファ462に供給する。
ワープドピクチャバッファ462は、ワーピング部461からのワープド視差画像D'#1のピクチャを、一時記憶する。
なお、本実施の形態では、DPB331とは別に、ワープド視差画像D'#1のピクチャを記憶するワープドピクチャバッファ462を設けてあるが、DPB331とワープドピクチャバッファ462とは、1つのバッファで兼用することが可能である。
オクルージョン検出部463は、図13のオクルージョン検出部233と同様に、視差画像D#2のオクルージョン部分を検出し、そのオクルージョン部分のオクルージョン情報を、視差予測部464に供給する。
すなわち、オクルージョン検出部463は、図2で説明したように、ワープドピクチャバッファ462に記憶されたワープド視差画像D'#1のピクチャ(対象ピクチャと同一時刻のピクチャ)において、画素値がない部分(画素値なし部分)を検出する。
さらに、オクルージョン検出部463は、視差画像D#2の対象ピクチャの、画素値なし部分と同一位置の部分を、オクルージョン部分として検出する。
そして、オクルージョン検出部463は、視差画像D#2の対象ピクチャにおいて処理対象となりうる各ブロックについて、(視差がある)水平方向にスキャンすることにより、オクルージョン部分が開始している開始画素Sと終了している終了画素Eとを検出する。
オクルージョン検出部463は、対象ピクチャの各ブロックの開始画素S及び終了画素Eを検出すると、その開始画素S及び終了画素Eを、オクルージョン情報として、視差予測部464に供給する。
視差予測部464は、可変長復号部342からのヘッダ情報に基づき、対象ブロックが、視差予測(インター予測)で生成された予測画像を用いて符号化されているかどうかを認識する。
対象ブロックが、視差予測で生成された予測画像を用いて符号化されている場合、視差予測部464は、可変長復号部342からのヘッダ情報から、予測用の参照インデクス、すなわち、対象ブロックの予測画像の生成に用いられた参照ピクチャに割り当てられている参照インデクスを認識(取得)する。
そして、視差予測部464は、DPB331に記憶されている、対象ブロックの予測用の参照インデクスが割り当てられている参照ピクチャとしてのデコード視差画像D#1のピクチャを取得する。
また、視差予測部234は、図13の視差予測部234と同様に、オクルージョン検出部463からのオクルージョン情報を必要に応じて用いて、対象ブロックの(計算視差ベクトルの)予測ベクトルを求める。そして、視差予測部234では、その予測ベクトルと、可変長復号部342からのヘッダ情報に含まれる残差ベクトルとを加算することで、対象ブロックの予測画像の生成に用いられたずれベクトルとしての計算視差ベクトルを復元する。
さらに、視差予測部464は、対象ブロックの計算視差ベクトルに従い、図13の視差予測部234と同様に、その計算視差ベクトルに従って、視差予測を行うことで、予測画像を生成する。
すなわち、視差予測部464は、参照ピクチャであるデコード視差画像D#のピクチャの、対象ブロックの位置から、その対象ブロックの計算視差ベクトルに従って移動した(ずれた)位置のブロック(対応ブロック)を、予測画像として取得する。
そして、視差予測部464は、予測画像を、予測画像選択部451に供給する。
なお、図23においては、説明を簡単にするため、図13のエンコーダ22の場合と同様に、デコーダ322に、インター予測のうちの視差予測を行う視差予測部464を設けてあるが、図13のエンコーダ22が、視差予測の他、時間予測も行う場合には、デコーダ322でも、エンコーダ22で行われるのと同様にして、視差予測、及び、時間予測(による予測画像の生成)が行われる。
図24は、図23の視差予測部464の構成例を示すブロック図である。
図24において、視差予測部464は、予測ベクトル生成部471、及び、視差補償部472を有する。
予測ベクトル生成部471には、オクルージョン検出部463から、オクルージョン情報としての開始画素S及び終了画素Eが供給される。
予測ベクトル生成部471は、図14の予測ベクトル生成部243と同様に、オクルージョン検出部463からのオクルージョン情報を必要に応じて用い、対象ブロックが、オクルージョンブロックであるかどうかによって異なるベクトル予測方式で、対象ブロックの予測ベクトル(最適インター予測モードの予測ベクトル)を生成する。
すなわち、予測ベクトル生成部471は、対象ブロックが、オクルージョンブロックである場合には、近接予測方式で、予測ベクトルを生成し、対象ブロックが、オクルージョンブロックでない場合には、MVC方式で、予測ベクトルを生成する。
そして、予測ベクトル生成部471は、対象ブロックの予測ベクトルを、視差補償部472に供給する。
なお、予測ベクトル生成部471において、近接予測方式で、予測ベクトルを生成する場合には、図14の予測ベクトル生成部243の場合と同様に、デコーダ322での復号対象の視差画像D#2の視点#2が、参照ピクチャとなる視差画像D#1の視点#1の左側に位置するか、又は、右側に位置するかを認識する必要があるが、その認識は、可変長復号部442(図23)からワーピング部461に供給される位置情報を用いて行われる。
視差補償部472には、予測ベクトル生成部471から対象ブロックの予測ベクトルが供給される他、可変長復号部442からのヘッダ情報に含まれる、対象ブロックのモード関連情報、残差ベクトル、及び、予測用の参照インデクスが供給される。
さらに、視差補償部472には、DPB331に記憶された参照ピクチャであるデコード視差画像D#1のピクチャが供給される。
視差補償部472は、可変長復号部442からの残差ベクトルと、予測ベクトル生成部471からの予測ベクトルとを加算することで、対象ブロックの計算視差ベクトルmvを復元する。
さらに、視差補償部472は、DPB331に記憶されたデコード視差画像D#1のピクチャのうちの、可変長復号部442からの予測用の参照インデクスが割り当てられているピクチャを、参照ピクチャとして、その参照ピクチャのずれ補償(視差補償)を、対象ブロックの計算視差ベクトルmvを用いて、MVC方式と同様にして行うことで、可変長復号部442からのモード関連情報が表すマクロブロックタイプについて、対象ブロックの予測画像を生成する。
すなわち、視差補償部472は、デコード視差画像D#1のピクチャの、対象ブロックの位置から、計算視差ベクトルmvだけずれた位置のブロックである対応ブロックを、予測画像として取得する。
そして、視差補償部472は、予測画像を、予測画像選択部451に供給する。
図25は、図23のデコーダ322が行う、視点#2の視差画像D#2の符号化データを復号する復号処理を説明するフローチャートである。
ステップS111において、蓄積バッファ441は、そこに供給される視点#2の視差画像D#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からのデコード画像に対して、フィルタリングを行い、そのフィルタリング後のデコード画像(デコード視差画像D#2)を、DPB331、及び、画面並び替えバッファ447に供給して、処理は、ステップS117に進む。
ステップS117では、DPB331が、視差画像D#1を復号するデコーダ321から、デコード視差画像D#1が供給されるのを待って、そのデコード視差画像D#1を記憶し、処理は、ステップS118に進む。
ステップS118では、DPB331が、デブロッキングフィルタ446からのデコード視差画像D#2を記憶し、処理は、ステップS119に進む。
ステップS119では、ワーピング部461が、DPB331に記憶されたデコード視差画像D#1のピクチャをワーピングすることにより、ワープド視差画像D'#1のピクチャを生成し、ワープドピクチャバッファ462に供給して、処理は、ステップS120に進む。
ステップS120では、ワープドピクチャバッファ462が、ワーピング部461からのワープド視差画像D'#1のピクチャを記憶し、処理は、ステップS121に進む。
ステップS121では、オクルージョン検出部463が、ワープドピクチャバッファ462に記憶されたワープド視差画像D'#1のピクチャを用いて、視差画像D#2の対象ピクチャのオクルージョン部分を検出するオクルージョン検出処理を、図16の場合と同様にして行う。
そして、オクルージョン検出部233は、オクルージョン検出処理によって得られるオクルージョン情報を、視差予測部464に供給して、処理は、ステップS121からステップS122に進む。
ステップS122では、画面内予測部449、及び、視差予測部464が、可変長復号部442から供給されるヘッダ情報に基づき、次の対象ブロック(次に復号対象となるマクロブロック)が、イントラ予測(画面内予測)、及び、視差予測(インター予測)のうちのいずれの予測方式で生成された予測画像を用いて符号化されているかを認識する。
そして、次の対象ブロックが、画面内予測で生成された予測画像を用いて符号化されている場合には、画面内予測部449が、イントラ予測処理(画面内予測処理)を行う。
すなわち、画面内予測部449は、次の対象ブロックについて、DPB331に記憶されたデコード視差画像D#2のピクチャから、予測画像(イントラ予測の予測画像)を生成するイントラ予測(画面内予測)を行い、その予測画像を、予測画像選択部451に供給して、処理は、ステップS122からステップS123に進む。
また、次の対象ブロックが、視差予測(インター予測)で生成された予測画像を用いて符号化されている場合には、視差予測部464が、視差予測処理(インター予測処理)を行う。
すなわち、視差予測部464は、次の対象ブロックについて、DPB331に記憶されたデコード視差画像D#1のピクチャ、可変長復号部442からのヘッダ情報に含まれるモード関連情報、予測用の参照インデクス、及び、残差ベクトル、並びに、オクルージョン検出部463からのオクルージョン情報を必要に応じて用いて、視差予測(視差補償)を行うことにより、予測画像を生成する。
そして、視差予測部464は、予測画像を、予測画像選択部451に供給して、処理は、ステップS122からステップS123に進む。
ステップS123では、予測画像選択部451は、画面内予測部449、及び、視差予測部464のうちの、予測画像が供給される方からの、その予測画像を選択し、演算部445に供給して、処理は、ステップS124に進む。
ここで、予測画像選択部451がステップS123で選択する予測画像が、次の対象ブロックの復号で行われるステップS115の処理で用いられる。
ステップS124では、画面並び替えバッファ447が、デブロッキングフィルタ446からのデコード視差画像D#2のピクチャを一時記憶して読み出すことで、ピクチャの並びを、元の並びに並び替え、D/A変換部448に供給して、処理は、ステップS125に進む。
ステップS125では、D/A変換部348は、画面並び替えバッファ447からのピクチャをアナログ信号で出力する必要がある場合に、そのピクチャをD/A変換して出力する。
デコーダ322では、以上のステップS111ないしS125の処理が、適宜繰り返し行われる。
図26は、図25のステップS122で、図24の視差予測部464が行う視差予測処理を説明するフローチャートである。
ステップS131において、予測ベクトル生成部471は、オクルージョン検出部463から供給されるオクルージョン情報を必要に応じて用いて、(次の)対象ブロックの予測ベクトルを生成する予測ベクトル生成処理を、図19や図20で説明したようにして行う。
そして、予測ベクトル生成部471は、予測ベクトル生成処理によって得られた対象ブロックの予測ベクトルを、視差補償部472に供給し、処理は、ステップS131からステップS132に進む。
ステップS132では、視差予測部464は、可変長復号部442からのヘッダ情報に含まれる(次の)対象ブロックのモード関連情報、残差ベクトル、及び、予測用の参照インデクスを取得し、視差補償部472に供給して、処理は、ステップS132からステップS133に進む。
ステップS132において、視差補償部472は、DPB331から、予測用の参照インデクスが割り当てられているデコード視差画像D#1のピクチャ(対象ピクチャと同一時刻のピクチャ)を、参照ピクチャとして取得し、処理は、ステップS134に進む。
ステップS134では、視差補償部472は、可変長復号部442からのヘッダ情報に含まれる対象ブロックの残差ベクトルと、予測ベクトル生成部471からの予測ベクトルとを加算することにより、対象ブロックの計算視差ベクトルmvを復元し、処理は、ステップS135に進む。
ステップS135では、視差補償部472は、DPB331からの参照ピクチャであるデコード視差画像D#1のピクチャについて、対象ブロックの計算視差ベクトルmvに従ってMCを行うことにより、対象ブロックの予測画像を生成して、処理は、ステップS136に進む。
すなわち、視差補償部472は、デコード視差画像D#1のピクチャの、対象ブロックの位置から、計算視差ベクトルmvだけずれた位置のブロックである対応ブロックを、予測画像として取得する。
ステップS136では、視差補償部472は、予測画像を、予測画像選択部451に供給して、処理はリターンする。
[エンコーダ22の他の構成例]
図27は、図5のエンコーダ22の他の構成例を示すブロック図である。
なお、図中、図13の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図27のエンコーダ22は、A/D変換部211ないし画面内予測部222、予測画像選択部224、ワーピング部231、ワープドピクチャバッファ232、及び、オクルージョン検出部233を有する点で、図13の場合と共通する。
但し、図27のエンコーダ22は、視差予測部234に代えて、視差予測部534を有する点で、図13の場合と相違する。
図13の視差予測部234では、近接予測方式において、式(1)や式(2)で説明したように、対象ブロックB#iの左隣のオクルージョンブロックB#(i-1)の予測ベクトルPMV#(i-1)から、オクルージョンブロックの開始画素Sから終了画素Eまでの画素数E-S+1を減算することにより、対象ブロックB#iの予測ベクトルPMV#iとして、いわば、画素単位の精度のベクトルを求めたが、図27の視差予測部534では、近接予測方式において、対象ブロックB#iの左隣のオクルージョンブロックB#(i-1)の予測ベクトルPMV#(i-1)から、オクルージョンブロックのx方向の画素数(以下、オクルージョンブロックの幅ともいう)を減算することにより、対象ブロックB#iの予測ベクトルPMV#iとして、いわば、オクルージョンブロックの幅単位の精度のベクトルが求められる。
さらに、視差予測部534は、対象ブロックの予測ベクトルを生成するベクトル予測方式を表すフラグである予測器フラグを出力する。
したがって、視差予測部534で求められる予測ベクトルの予測精度は、視差予測部234(図13)で求められる予測ベクトルの予測精度より多少劣化するものの、デコーダ側では、予測器フラグを用いて、容易に(オクルージョン検出処理を行わずに)、予測ベクトルを生成することができる。
視差予測部534は、以上のように、近接予測方式の予測ベクトルとして、オクルージョンブロックの幅単位の精度のベクトルを生成すること、及び、予測ベクトルを生成するベクトル予測方式を表すフラグである予測器フラグを出力することを除き、図13の視差予測部234と同様の処理を行う。
図28は、図27の視差予測部534の構成例を示すブロック図である。
図28において、視差予測部534は、視差検出部541、視差補償部542、予測ベクトル生成部543、コスト関数算出部544、及び、モード選択部545を有する。
視差検出部541ないしモード選択部545のうちの、視差検出部541、視差補償部542、コスト関数算出部544、及び、モード選択部545は、予測器フラグを扱うことを除き、図14の視差検出部241、視差補償部242、コスト関数算出部244、及び、モード選択部245と、それぞれ同様の処理を行う。
予測ベクトル生成部543は、近接予測方式の予測ベクトルとして、オクルージョンブロックの幅単位の精度のベクトルを生成すること、及び、予測器フラグを扱うことを除き、図14の予測ベクトル生成部243と同様の処理を行う。
すなわち、視差検出部541には、DPB31に記憶された参照ピクチャであるデコード視差画像D#1のピクチャが供給されるとともに、画面並び替えバッファ212から、符号化対象の視差画像D#2のピクチャ(対象ピクチャ)が供給される。
視差検出部541は、画面並び替えバッファ212からの対象ピクチャにおける対象ブロックについて、MVC方式と同様に、デコード視差画像D#1のピクチャを参照ピクチャとして用いたMEを行うことにより、対象ブロックの計算視差ベクトルmvを、マクロブロックタイプごとに検出する。
さらに、視差検出部541は、対象ブロックの計算視差ベクトルmvと、予測ベクトル生成部543から供給される予測ベクトル情報から得られる予測ベクトルとの差分である残差ベクトルを求める。
ここで、予測ベクトル生成部543から視差検出部541に供給される予測ベクトル情報には、予測ベクトルと、その予測ベクトルのベクトル予測方式(ここでは、MVC方式、又は、近接予測方式)を表す予測器フラグとが含まれる。
視差検出部541は、残差ベクトルを、その残差ベクトルを求めるのに用いた予測ベクトルのベクトル予測方式を表す、予測ベクトル情報に含まれる予測器フラグとともに、視差補償部542に供給する。
視差補償部542には、視差検出部541から、計算視差ベクトルmvの残差ベクトル及び予測器フラグが供給される他、DPB31に記憶された参照ピクチャであるデコード視差画像D#1のピクチャが供給される。
さらに、視差補償部542には、予測ベクトル生成部543から予測ベクトル情報が供給される。
視差補償部542は、視差検出部541からの残差ベクトルと、予測ベクトル生成部543からの予測ベクトル情報とから、対象ブロックの計算視差ベクトルmvを復元する。
さらに、視差補償部542は、DPB31からのデコード視差画像D#1のピクチャを、参照ピクチャとして、その参照ピクチャのずれ補償(視差補償)を、対象ブロックの計算視差ベクトルmvを用いて、MVC方式と同様にして行うことで、対象ブロックの予測画像を、マクロブロックタイプごとに生成する。
そして、視差補償部542は、予測画像を、視差検出部541からの残差ベクトル、予測器フラグ、及び、予測画像を生成するのに用いた参照ピクチャ(ここでは、デコード視差画像D#1のピクチャ)に割り当てられている参照インデクスとともに、コスト関数算出部544に供給する。
予測ベクトル生成部543には、オクルージョン検出部233から、オクルージョン情報としての開始画素S及び終了画素Eが供給される。
予測ベクトル生成部543は、オクルージョン検出部233からのオクルージョン情報を用いて、対象ブロックが、オクルージョンブロックであるかどうかを判定する。
そして、予測ベクトル生成部543は、対象ブロックが、オクルージョンブロックである場合、図2ないし図4で説明した近接予測方式で、対象ブロックの予測ベクトルを生成する。
また、予測ベクトル生成部543は、対象ブロックが、オクルージョンブロックでない場合(非オクルージョンブロックである場合)、図11及び図12で説明したMVC方式で、対象ブロックの予測ベクトルを生成する。
なお、予測ベクトル生成部543は、近接予測方式の予測ベクトルを生成する場合には、オクルージョンブロックの幅単位の精度のベクトルを生成する。
予測ベクトル生成部543は、各マクロブロックタイプ(図10)について、予測ベクトルを生成し、その予測ベクトルのベクトル予測方式を表す予測器フラグとともに、予測ベクトル情報として、視差検出部541、視差補償部542、及び、コスト関数算出部544に供給する。
コスト関数算出部544には、視差補償部542から、予測画像、残差ベクトル、予測器フラグ、及び、参照インデクスが供給されるとともに、予測ベクトル生成部543から、予測ベクトル情報が供給される他、画面並び替え部バッファ212から、視差画像D#2の対象ピクチャが供給される。
コスト関数算出部544は、マクロブロックタイプ(図10)ごとに、画面並び替えバッファ212からの対象ピクチャの対象ブロックの符号化に要する符号化コストを、例えば、図14のコスト関数算出部244で用いられるのと同様のコスト関数に従って求める。
コスト関数算出部544は、マクロブロックタイプごとの符号化コスト(コスト関数値)を求めると、符号化コストを、参照インデクス、予測画像、残差ベクトル、及び、予測器フラグとともに、モード選択部545に供給する。
モード選択部545は、コスト関数算出部544からのマクロブロックタイプごとの符号化コストの中から、最小値である最小コストを検出する。
さらに、モード選択部545は、最小コストが得られたマクロブロックタイプを、最適インター予測モードに選択する。
そして、モード選択部545は、最適インター予測モードを表すモード関連情報、並びに、最適インター予測モードの参照インデクス(予測用の参照インデクス)、残差ベクトル、及び、予測器フラグ等を、ヘッダ情報として、可変長符号化部216に供給する。
さらに、モード選択部545は、最適インター予測モードの予測画像と符号化コスト(最小コスト)を、予測画像選択部224に供給する。
ここで、上述の場合には、予測器フラグは、可変長符号化部216において、符号化データのヘッダに含められることとなるが、予測器フラグは、符号化データのヘッダに含める他、符号化データとは、別に提供(送信)することが可能である。
図27のエンコーダ22では、図15で説明したのと同様の符号化処理が行われる。但し、図15のステップS26では、視差予測部534が、図13の視差予測部234に代わって、視差予測処理を行う。
図29は、図15のステップS26で、図28の視差予測部534が行う視差予測処理を説明するフローチャートである。
ステップS241において、予測ベクトル生成部543は、オクルージョン検出部233から供給されるオクルージョン情報を必要に応じて用いて、各マクロブロックタイプ(図10)について、(次の)対象ブロックの予測ベクトルを、MVC方式、又は、近接予測方式で生成する予測ベクトル生成処理を行う。
但し、予測ベクトル生成部543は、近接予測方式では、オクルージョンブロックの幅単位の精度の予測ベクトルを求める。
そして、予測ベクトル生成部543は、予測ベクトル生成処理によって得られた対象ブロックの予測ベクトルと、その予測ベクトルのベクトル予測方式を表す予測器フラグとを、予測ベクトル情報として、視差検出部541、視差補償部542、及び、コスト関数算出部544に供給し、処理は、ステップS241からステップS242に進む。
ステップS242において、視差予測部534は、DPB31から、参照ピクチャであるデコード視差画像D#1のピクチャを取得し、視差検出部541、及び、視差補償部542に供給して、処理は、ステップS243に進む。
ステップS243では、視差検出部541は、画面並び替えバッファ212から供給される対象ピクチャにおける(次の)対象ブロックについて、DPB31からのデコード視差画像D#1のピクチャを参照ピクチャとして用いてMEを行うことにより、対象ブロックの、視点#1に対する視差を表す計算視差ベクトルmvを検出する。
さらに、視差検出部541は、対象ブロックの計算視差ベクトルmvと、予測ベクトル生成部543から供給される予測ベクトル情報から得られる予測ベクトルとの差分である残差ベクトルを求め、その残差ベクトルを求めるのに用いた予測ベクトルの予測器フラグとともに、視差補償部542に供給し、処理は、ステップS243からステップS244に進む。
ステップS244では、視差補償部542は、視差検出部541からの残差ベクトルと、予測ベクトル生成部543からの予測ベクトル情報とから、対象ブロックの計算視差ベクトルmvを復元する。
さらに、視差補償部542は、DPB31からのデコード視差画像D#1のピクチャを、参照ピクチャとして、対象ブロックの計算視差ベクトルmvに従ってMCを行うことにより、(次の)対象ブロックの予測画像を生成する。
そして、視差補償部542は、予測画像を、視差検出部541からの残差ベクトル、及び、予測器フラグ、並びに、予測画像を生成するのに用いた参照ピクチャ(ここでは、デコード視差画像D#1のピクチャ)に割り当てられている参照インデクスとともに、コスト関数算出部544に供給して、処理は、ステップS244からステップS245に進む。
ステップS245では、コスト関数算出部544は、マクロブロックタイプ(図10)ごとに、画面並び替えバッファ212からの対象ピクチャの対象ブロックの符号化に要する符号化コストを、所定のコスト関数に従って求め、視差補償部542からの参照インデクス、予測画像、残差ベクトル、及び、予測器フラグとともに、モード選択部545に供給して、処理は、ステップS246に進む。
ステップS246では、モード選択部545は、コスト関数算出部544からのマクロブロックタイプごとの符号化コストの中から、最小値である最小コストを検出する。
さらに、モード選択部545は、最小コストが得られたマクロブロックタイプを、最適インター予測モードに選択して、処理は、ステップS246からステップS247に進む。
ステップS247では、モード選択部545は、最適インター予測モードの予測画像と符号化コスト(最小コスト)を、予測画像選択部224に供給して、処理は、ステップS248に進む。
ステップS248では、モード選択部545は、最適インター予測モードを表すモード関連情報、並びに、最適インター予測モードの参照インデクス(予測用の参照インデクス)、残差ベクトル、及び、予測器フラグを、ヘッダ情報として、可変長符号化部216に供給して、処理はリターンする。
図30は、図29のステップS241で予測ベクトル生成部543(図28)が行う予測ベクトル生成処理を説明するフローチャートである。
なお、図30は、図19の場合と同様に、視点#1が右側に位置し、視点#2が左側に位置しており、視点#2の視差画像D#2において、前景の左側の接する背景の部分が、オクルージョン部分になっている場合、つまり、オクルージョン部分の左側が、背景であり、右側が、前景である場合(図3)の、予測ベクトル生成処理を示している。
予測ベクトル生成部543において、エンコーダ22(図27)での符号化対象の視差画像D#2の視点#2が、参照ピクチャとなる視差画像D#1の視点#1の左側に位置するかどうかは、ワーピング部231(図27)に供給される位置情報から認識される。
予測ベクトル生成部543は、視点#2が、視点#1の左側に位置する場合に、図30のフローチャートに従った予測ベクトル生成処理を行う。
ステップS261において、予測ベクトル生成部543は、図19のステップS61と同様に、オクルージョン検出部233からオクルージョン情報としての、対象ピクチャの各ブロックの開始画素Sと終了画素Eを取得して、処理は、ステップS262に進む。
ステップS262では、予測ベクトル生成部543は、図19のステップS62と同様に、オクルージョン検出部233からのオクルージョン情報に基づいて、対象ブロックが、オクルージョンブロックであるかどうかを判定する。
ステップS262において、対象ブロックが、オクルージョンブロックでないと判定された場合、すなわち、対象ブロックが、非オクルージョンブロックである場合、処理は、ステップS263に進み、予測ベクトル生成部543は、MVC方式で、対象ブロックの予測ベクトルPMVを生成して、処理は、ステップS264に進む。
ステップS264では、予測ベクトル生成部543は、予測ベクトルPMVが、MVC方式の予測ベクトルであることを表す値「MVC方式」を、予測器フラグに設定し、処理はリターンする。
また、ステップS262において、対象ブロックが、オクルージョンブロックであると判定された場合、処理は、ステップS265に進み、以下、予測ベクトル生成部543では、オクルージョンブロックである対象ブロックの予測ベクトルPMVが、近接予測方式で生成される。
すなわち、ステップS265では、予測ベクトル生成部543は、オクルージョン情報に基づき、オクルージョンブロックである対象ブロックの左隣のブロック(符号化済みのブロック)が、非オクルージョンブロックであるかどうかを判定する。
ステップS265において、対象ブロックの左隣のブロックが、非オクルージョンブロックであると判定された場合、すなわち、対象ピクチャの、対象ブロックの段(スライス)を、x方向にスキャンしたときに、対象ブロックから、オクルージョン部分が開始している場合、処理は、ステップS266に進み、予測ベクトル生成部543は、オクルージョンブロックの幅(オクルージョンブロックのx方向の画素数)BK_SIZE_Xを用い、式PMV=(-BK_SIZE_X,0)に従って、対象ブロックの予測ベクトルPMVとしての、オクルージョンブロックの幅単位の精度の予測ベクトルを求め(生成し)、処理は、ステップS267に進む。
ここで、図19のステップS65では、対象ブロックの開始画素S及び終了画素Eを用い、式PMV=(-(E-S+1),0)に従って、画素単位の精度の予測ベクトルPMVが求められるが、ステップS266では、対象ブロックの開始画素S及び終了画素Eに代えて、オクルージョンブロックの幅BK_SIZE_Xを用いて、オクルージョンブロックの幅単位の精度の予測ベクトルPMVが求められる。
ステップS267では、予測ベクトル生成部543は、予測ベクトルPMVが、近接予測方式の予測ベクトルであることを表す値「近接予測方式」を、予測器フラグに設定し、処理はリターンする。
また、ステップS265において、対象ブロックの左隣のブロックが、非オクルージョンブロックでないと判定された場合、すなわち、対象ブロックの左隣のブロックが、オクルージョンブロックである場合、処理は、ステップS268に進み、予測ベクトル生成部543は、式(1)の対象ブロックの開始画素S及び終了画素Eに代えて、オクルージョンブロックの幅BK_SIZE_Xを用いるとともに、対象ブロックの左隣のブロック(オクルージョンブロック)の、既に求められている予測ベクトルPMVL=(PMVLx,PMVLy)のx成分を用い、式PMV=(PMVLx-BK_SIZE_X,0)に従って、対象ブロックの予測ベクトルPMVとしての、オクルージョンブロックの幅単位の精度の予測ベクトルを求め、処理は、ステップS267に進む。
ステップS267では、予測ベクトル生成部543は、上述したように、予測器フラグに、値「近接予測方式」を設定し、処理はリターンする。
なお、ステップS268では、式PMV=(PMVLx-BK_SIZE_X,0)の他、例えば、式PMV=(PMVLx-BK_SIZE_X,PMVLy)に従って、対象ブロックの予測ベクトルを求めることができる。
図31は、図29のステップS241で予測ベクトル生成部543(図28)が行う予測ベクトル生成処理を説明するフローチャートである。
なお、図31は、図20の場合と同様に、視点#1が左側に位置し、視点#2が右側に位置しており、視点#2の視差画像D#2において、前景の右側の接する背景の部分が、オクルージョン部分になっている場合、つまり、オクルージョン部分の右側が、背景であり、左側が、前景である場合(図4)の、予測ベクトル生成処理を示している。
予測ベクトル生成部543において、エンコーダ22(図27)での符号化対象の視差画像D#2の視点#2が、参照ピクチャとなる視差画像D#1の視点#1の右側に位置するかどうかは、ワーピング部231に供給される位置情報から認識される。
予測ベクトル生成部543は、視点#2が、視点#1の右側に位置する場合に、図31のフローチャートに従った予測ベクトル生成処理を行う。
ステップS271ないしステップS275において、予測ベクトル生成部543は、図30のステップS261ないしS265とそれぞれ同様の処理を行う。
そして、ステップS275において、対象ブロックの左隣のブロックが、非オクルージョンブロックであると判定された場合、すなわち、対象ピクチャの、対象ブロックの段(スライス)を、x方向にスキャンしたときに、対象ブロックから、オクルージョン部分が開始している場合、処理は、ステップS276に進み、予測ベクトル生成部543は、オクルージョン情報から、対象ブロックを先頭として、x方向に連続して並ぶオクルージョンブロックの数Nを認識(検出)し、処理は、ステップS277に進む。
ここで、対象ブロックを先頭として、x方向に連続して並ぶオクルージョンブロックの先頭からi番目のブロックを、B#iと表すこととすると、対象ブロックを先頭とする、x方向に連続して並ぶオクルージョンブロック先頭のブロック(対象ブロック)は、B#1で表され、最後のブロックは、B#Nで表される。
ステップS277では、予測ベクトル生成部543は、対象ブロックを先頭とする、x方向に連続して並ぶオクルージョンブロックであるN個のブロックB#1ないしB#Nそれぞれの幅BK_SIZE_Xの総和N×BK_SIZE_Xを用い、式PMV#1=(N×BK_SIZE_X,0)に従って、対象ブロックB#1の予測ベクトルPMV#1を求め、処理は、ステップS278に進む。
ここで、図20のステップS76では、オクルージョンブロックの開始画素S及び終了画素Eを用い、画素単位の精度の予測ベクトルPMV#1が求められるが、ステップS277では、開始画素S及び終了画素Eに代えて、オクルージョンブロックの幅BK_SIZE_Xを用いて、オクルージョンブロックの幅単位の精度の予測ベクトルPMV#1が求められる。
ステップS278では、予測ベクトル生成部543は、図30のステップS267と同様に、予測器フラグに、値「近接予測方式」を設定し、処理はリターンする。
また、ステップS275において、対象ブロックの左隣のブロックが、非オクルージョンブロックでないと判定された場合、すなわち、対象ブロックの左隣のブロックが、オクルージョンブロックである場合、処理は、ステップS279に進み、予測ベクトル生成部543は、式(2)の対象ブロックB#iの左隣のブロックB#(i-1)の開始画素S#(i-1)及び終了画素E#(i-1)に代えて、オクルージョンブロックの幅BK_SIZE_Xを用いるとともに、対象ブロックの左隣のブロック(オクルージョンブロック)の、既に求められている予測ベクトルPMV#(i-1)を用い、式PMV#i=PMV#(i-1)−(BK_SIZE_X,0)に従って、対象ブロックの予測ベクトルPMV#iとしての、オクルージョンブロックの幅単位の精度の予測ベクトルを求め、処理は、ステップS278に進む。
ステップS278では、上述したように、予測ベクトル生成部543は、予測器フラグに、値「近接予測方式」を設定し、処理はリターンする。
[デコーダ322の他の構成例]
図32は、図21のデコーダ322の他の構成例を示すブロック図である。
すなわち、図32は、エンコーダ22が図27に示したように構成される場合のデコーダ322の構成例を示している。
図32において、図23の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図32のデコーダ322は、蓄積バッファ441、可変長復号部442、逆量子化部443、逆直交変換部444、演算部445、デブロッキングフィルタ446、画面並び替えバッファ447、D/A変換部448、画面内予測部449、及び、予測画像選択部451を有する点で、図23の場合と共通する。
但し、図32のデコーダ322は、ワーピング部461、ワープドピクチャバッファ462、及び、オクルージョン検出部463が設けられておらず、視差予測部464に代えて、視差予測部664が設けられている点で、図23の場合と相違する。
図23の視差予測部464では、図13の視差予測部234と同様にして、MVC方式の予測ベクトル、又は、近接予測方式の予測ベクトルを求めるとともに、近接予測方式の予測ベクトルとして、画素単位の精度のベクトルを求めるが、図32の視差予測部664では、予測器フラグに基づいて、MVC方式の予測ベクトル、又は、近接予測方式の予測ベクトルが求められるとともに、近接予測方式の予測ベクトルとして、オクルージョンブロックの幅単位の精度のベクトルが求められる。
なお、視差予測部664は、その他については、図23の視差予測部464と同様の処理を行う。
図33は、図32の視差予測部664の構成例を示すブロック図である。
図33において、視差予測部664は、予測ベクトル生成部771、及び、視差補償部472を有する。
したがって、視差予測部664は、視差補償部472を有する点で、図24の視差予測部464と共通し、予測ベクトル生成部471に代えて、予測ベクトル生成部771が設けられている点で、図24の視差予測部464と異なる。
予測ベクトル生成部771には、可変長復号部442から、ヘッダ情報に含まれる予測器フラグが供給される。
予測ベクトル生成部771は、予測器フラグに基づいて、MVC方式、又は、近接予測方式で、予測ベクトルを生成し、視差補償部472に供給する。
なお、予測ベクトル生成部771において、近接予測方式で、予測ベクトルを生成する場合には、図28の予測ベクトル生成部543の場合と同様に、デコーダ322での復号対象の視差画像D#2の視点#2が、参照ピクチャとなる視差画像D#1の視点#1の左側に位置するか、又は、右側に位置するかを認識する必要がある。予測ベクトル生成部771において、復号対象の視差画像D#2の視点#2が、参照ピクチャとなる視差画像D#1の視点#1の左側に位置するか、又は、右側に位置するかは、可変長復号部442(図32)で得られるヘッダ情報に含まれる位置情報に基づいて認識される。
図34は、図32のデコーダ322が行う、視点#2の視差画像D#2の符号化データを復号する復号処理を説明するフローチャートである。
デコーダ322では、ステップS311ないしS318において、図25のステップS111ないしS118と、それぞれ同様の処理が行われる。
そして、デコーダ322では、図25のステップS119ないしS121の処理(に相当する処理)は行われず、ステップS319ないしS322において、図25のステップS122ないしS125と、それぞれ同様の処理が行われる。
但し、ステップS319において、視差予測処理(インター予測処理)は、視差予測部664(図33)が、視差予測部464(図24)に代わって行う。
図35は、図34のステップS319で、図33の視差予測部664が行う視差予測処理を説明するフローチャートである。
ステップS331において、視差予測部664は、可変長復号部442から、予測器フラグを取得し、予測ベクトル生成部771に供給して、処理は、ステップS332に進む。
ステップS332では、予測ベクトル生成部771は、予測器フラグに基づいて、MVC方式、又は、近接予測方式で、(次の)対象ブロックの予測ベクトルを生成する予測ベクトル生成処理を、図28の予測ベクトル生成部543と同様にして行う。
そして、予測ベクトル生成部771は、予測ベクトル生成処理によって得られた対象ブロックの予測ベクトルを、視差補償部472に供給し、処理は、ステップS332からステップS333に進む。
以下、ステップS333ないしS337では、図26のステップS132ないしS136と、それぞれ同様の処理が行われる。
図36、及び、図37は、図35のステップS332で予測ベクトル生成部771(図33)が行う予測ベクトル生成処理を説明するフローチャートである。
図36は、図19や図30の場合と同様に、視点#1が右側に位置し、視点#2が左側に位置しており、視点#2の視差画像D#2において、前景の左側の接する背景の部分が、オクルージョン部分になっている場合、つまり、オクルージョン部分の左側が、背景であり、右側が、前景である場合(図3)の、図35のステップS332の予測ベクトル生成処理を示している。
なお、予測ベクトル生成部771において、復号対象の視差画像D#2の視点#2が、参照ピクチャとなる視差画像D#1の視点#1の左側に位置するか、又は、右側に位置するかは、可変長復号部442(図32)で得られるヘッダ情報に含まれる位置情報に基づいて認識される。
ステップS411において、予測ベクトル生成部771は、対象ブロックの予測器フラグに、値「MVC方式」、及び、値「近接予測方式」のうちのいずれが設定されているかを判定する。
ステップS411において、対象ブロックの予測器フラグに、値「MVC方式」が設定されていると判定された場合、すなわち、対象ブロックが非オクルージョンブロックである場合、処理は、ステップS412に進み、予測ベクトル生成部771は、MVC方式で、対象ブロックの予測ベクトルPMVを生成し、処理はリターンする。
また、ステップS411において、対象ブロックの予測器フラグに、値「近接予測方式」が設定されていると判定された場合、すなわち、対象ブロックがオクルージョンブロックである場合、処理は、ステップS413に進み、予測ベクトル生成部771は、オクルージョンブロックである対象ブロックの左隣のブロック(復号済みのブロック)の予測器フラグに、値「MVC方式」、及び、値「近接予測方式」のうちのいずれが設定されているかを判定する。
ステップS413において、対象ブロックの左隣のブロックの予測器フラグに、値「MVC方式」が設定されていると判定された場合、すなわち、対象ブロックの左隣のブロックが、非オクルージョンブロックであり、したがって、対象ピクチャの、対象ブロックの段(スライス)を、x方向にスキャンしたときに、対象ブロックから、オクルージョン部分が開始している場合、処理は、ステップS414に進み、予測ベクトル生成部771は、図30のステップS266と同様に、オクルージョンブロックの幅(オクルージョンブロックのx方向の画素数)BK_SIZE_Xを用い、式PMV=(-BK_SIZE_X,0)に従って、対象ブロックの予測ベクトルPMVとしての、オクルージョンブロックの幅単位の精度の予測ベクトルを求め(生成し)、処理はリターンする。
また、ステップS413において、対象ブロックの左隣のブロックの予測器フラグに、値「近接予測方式」が設定されていると判定された場合、すなわち、対象ブロックの左隣のブロックが、オクルージョンブロックである場合、処理は、ステップS415に進み、予測ベクトル生成部771は、図30のステップS268と同様に、オクルージョンブロックの幅BK_SIZE_Xと、対象ブロックの左隣のブロック(オクルージョンブロック)の、既に求められている予測ベクトルPMVL=(PMVLx,PMVLy)のx成分を用い、式PMV=(PMVLx-BK_SIZE_X,0)に従って、対象ブロックの予測ベクトルPMVとしての、オクルージョンブロックの幅単位の精度の予測ベクトルを求め、処理はリターンする。
図37は、図20や図31の場合と同様に、視点#1が左側に位置し、視点#2が右側に位置しており、視点#2の視差画像D#2において、前景の右側の接する背景の部分が、オクルージョン部分になっている場合、つまり、オクルージョン部分の右側が、背景であり、左側が、前景である場合の、図35のステップS332の予測ベクトル生成処理を示している。
図37では、ステップS421ないしS423において、図36のステップS411ないしS413と、それぞれ同様の処理が行われる。
そして、ステップS423において、対象ブロックの左隣のブロックの予測器フラグに、値「MVC方式」が設定されていると判定された場合、すなわち、対象ブロックの左隣のブロックが、非オクルージョンブロックであり、したがって、対象ピクチャの、対象ブロックの段(スライス)を、x方向にスキャンしたときに、対象ブロックから、オクルージョン部分が開始している場合、処理は、ステップS424に進み、予測ベクトル生成部771は、ステップS424及びS425において、図31のステップS276及びS277と同様にして、近接予測方式の予測ベクトルを生成する。
すなわち、ステップS424において、予測ベクトル生成部771は、予測器フラグに基づいて、対象ブロックを先頭として、x方向に連続して並ぶオクルージョンブロック(予測器フラグに、値「近接予測方式」が設定されているブロック)の数Nを認識し、処理は、ステップS425に進む。
ここで、対象ブロックを先頭として、x方向に連続して並ぶオクルージョンブロックの先頭からi番目のブロックを、B#iと表すこととすると、対象ブロックを先頭とする、x方向に連続して並ぶオクルージョンブロック先頭のブロック(対象ブロック)は、B#1で表され、最後のブロックは、B#Nで表される。
ステップS425では、予測ベクトル生成部771は、対象ブロックを先頭とする、x方向に連続して並ぶオクルージョンブロックであるN個のブロックB#1ないしB#Nそれぞれの幅BK_SIZE_Xの総和N×BK_SIZE_Xを用い、式PMV#1=(N×BK_SIZE_X,0)に従って、対象ブロックB#1の予測ベクトルPMV#1としての、オクルージョンブロックの幅単位の精度の予測ベクトルを求め、処理はリターンする。
また、ステップS423において、対象ブロックの左隣のブロックの予測器フラグに、値「近接予測方式」が設定されていると判定された場合、すなわち、対象ブロックの左隣のブロックが、オクルージョンブロックである場合、処理は、ステップS426に進み、予測ベクトル生成部771は、オクルージョンブロックの幅BK_SIZE_Xと、対象ブロックの左隣のブロック(オクルージョンブロック)の、既に求められている予測ベクトルPMV#(i-1)を用い、式PMV#i=PMV#(i-1)−(BK_SIZE_X,0)に従って、対象ブロックの予測ベクトルPMV#iとしての、オクルージョンブロックの幅単位の精度の予測ベクトルを求め、処理はリターンする。
以上のように、図32のデコーダ322では、視差予測部664(図33)において、予測器フラグに基づいて、容易に(オクルージョン検出処理を行わずに)、予測精度の良い予測ベクトルを生成することができる。
なお、図32のデコーダ322では、図27のエンコーダ22と同様に、ワープド視差画像D'#1を生成し、そのワープド視差画像D'#1から、オクルージョン情報を求め、そのオクルージョン情報に基づき、図28の予測ベクトル生成部543と同様にして(予測器フラグを用いずに)、予測ベクトルを生成することが可能である。
図38ないし図40は、ヘッダ情報に含められる予測器フラグの例を示す図である。
図28で説明したように、モード選択部545において、予想器フラグは、ヘッダ情報に含められて、可変長符号化部216に供給される。
可変長符号化部216では、ヘッダ情報が、符号化データのヘッダに含められる。
図38ないし図40は、符号化データが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未満タイプ)のパーティション(サブパーティション)を最小単位として設定することができる。
図38は、マクロブロックを最小単位として設定される予測器フラグを示す図である。
すなわち、図38は、MVC方式のmb_pred(mb_type)のシンタクスを示している。
予測器フラグを、マクロブロックを最小単位として設定する場合、予測器フラグは、mb_pred(mb_type)に含められる。
図38において、mv_pred_mode_l0及びmv_pred_mode_l1が、予測器フラグを示している。
また、図38において、mv_pred_mode_l0は、L0予測が行われる場合に使用される予測器フラグであり、mv_pred_mode_l1は、L1予測が行われる場合に使用される予測器フラグである。
図39は、8×8以上タイプのパーティションを最小単位として設定される予測器フラグを示す図である。
すなわち、図39は、MVC方式のmb_pred(mb_type)の一部のシンタクスを示している。
予測器フラグを、8×8以上タイプのパーティションを最小単位として設定する場合、予測器フラグは、mb_pred(mb_type)に含められる。
図39において、mv_pred_mode_l0[mbPartIdx]及びmv_pred_mode_l1[mbPartIdx]が、予測器フラグを示している。
また、図39において、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以上タイプの各パーティションを区別するためのインデクスである。
図40は、8×8未満タイプのパーティションを最小単位として設定される予測器フラグを示す図である。
すなわち、図40は、MVC方式のsub_mb_pred(mb_type)の一部のシンタクスを示している。
予測器フラグを、8×8未満タイプのパーティションを最小単位として設定する場合、予測器フラグは、mb_pred(mb_type)、及び、sub_mb_pred(mb_type)に含められる。
なお、予測器フラグを、8×8未満タイプのパーティションを最小単位として設定する場合に、mb_pred(mb_type)に含められる、予測器フラグは、図39に示した通りであり、図40は、sub_mb_pred(mb_type)に含められる予測器フラグを示している。
図40において、mv_pred_mode_l0[mbPartIdx][subMbPartIdx]及びmv_pred_mode_l1[mbPartIdx][subMbPartIdx]が、予測器フラグを示している。
また、図40において、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未満タイプのパーティションを最小単位とする場合との中間の予測精度を実現することができる。
なお、以上においては、近接予測方式と異なるベクトル予測方式として、MVC方式(メディアン予測方式)を採用したが、近接予測方式と異なるベクトル予測方式としては、その他のベクトル予測方式を採用することができる。
また、本実施の形態では、本技術を、視差画像D#2の対象ピクチャと同一時刻の視差画像D#1のピクチャ(対象ピクチャと異なる他のピクチャ)に対する、視差画像D#2の対象ブロックのずれを表す計算視差ベクトルの予測ベクトルを求めるのに適用した場合について説明したが、本技術は、対象ピクチャと異なる時刻の視差画像D#2のピクチャ(対象ピクチャと異なる他のピクチャ)に対する、視差画像D#2の対象ブロックのずれを表す動きベクトルの予測ベクトルを求める場合にも、適用可能である。
すなわち、オクルージョン部分は、視差画像D#2の対象ピクチャと同一時刻の視差画像D#1のピクチャを参照ピクチャとして、視差画像D#2の対象ブロックの視差予測を行う場合(対象ピクチャと参照ピクチャとの間に視差がある場合)の他、視差画像D#2の対象ピクチャと異なる時刻の視差画像D#2のピクチャを参照ピクチャとして、視差画像D#2の対象ブロックの時間予測を行う場合(対象ピクチャと参照ピクチャとの間に動きがある場合)にも生じるので、本技術は、時間予測で検出される動きベクトルの予測ベクトルを求める場合にも適用することができる。
[本技術を適用したコンピュータの説明]
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図42は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク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のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
[テレビジョン装置の構成例]
図43は、本技術を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置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に本願の画像処理装置(画像処理方法)の機能が設けられる。このため、予測ベクトルとして、予測精度の良いベクトルを求めることができる。
[携帯電話機の構成例]
図44は、本技術を適用した携帯電話機の概略構成を例示している。携帯電話機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に本願の画像処理装置(画像処理方法)の機能が設けられる。このため、予測ベクトルとして、予測精度の良いベクトルを求めることができる。
[記録再生装置の構成例]
図45は、本技術を適用した記録再生装置の概略構成を例示している。記録再生装置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に本願の画像処理装置(画像処理方法)の機能が設けられる。このため、予測ベクトルとして、予測精度の良いベクトルを求めることができる。
[撮像装置の構成例]
図46は、本技術を適用した撮像装置の概略構成を例示している。撮像装置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に本願の画像処理装置(画像処理方法)の機能が設けられる。このため、予測ベクトルとして、予測精度の良いベクトルを求めることができる。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
すなわち、本技術は、MVCを利用した符号化、及び、復号に限定されるものではない。すなわち、本技術は、予測ベクトルを用いて、視差情報画像の符号化、及び、復号を行う場合に適用することができる。
11,12,21,22 エンコーダ, 31 DPB, 32 多重化部, 41,42 カメラ, 43 多視点画像情報生成部, 111 A/D変換部, 112 画面並び替えバッファ, 113 演算部, 114 直交変換部, 115 量子化部, 116 可変長符号化部, 117 蓄積バッファ, 118 逆量子化部, 119 逆直交変換部, 120 演算部, 121 デブロッキングフィルタ, 122 画面内予測部, 123 インター予測部, 124 予測画像選択部, 211 A/D変換部, 212 画面並び替えバッファ, 213 演算部, 214 直交変換部, 215 量子化部, 216 可変長符号化部, 217 蓄積バッファ, 218 逆量子化部, 219 逆直交変換部, 220 演算部, 221 デブロッキングフィルタ, 222 画面内予測部, 224 予測画像選択部, 231 ワーピング部, 232 ワープドピクチャバッファ, 233 オクルージョン検出部, 234 視差予測部, 241 視差検出部, 242 視差補償部, 243 予測ベクトル生成部, 244 コスト関数算出部, 245 モード選択部, 301 分離部, 311,312,321,322 デコーダ, 331 DPB, 341 蓄積バッファ, 342 可変長復号部, 343 逆量子化部, 344 逆直交変換部, 345 演算部, 346 デブロッキングフィルタ, 347 画面並び替え部, 348 D/A変換部, 349 画面内予測部, 350 インター予測部, 351 予測画像選択部, 441 蓄積バッファ, 442 可変長復号部, 443 逆量子化部, 444 逆直交変換部, 445 演算部, 446 デブロッキングフィルタ, 447 画面並び替え部, 448 D/A変換部, 449 画面内予測部, 451 予測画像選択部, 461 ワーピング部, 462 ワープドピクチャバッファ, 463 オクルージョン検出部, 464 視差予測部, 471 予測ベクトル生成部, 472 視差補償部, 534 視差予測部, 541 視差検出部, 542 視差補償部, 543 予測ベクトル生成部, 544 コスト関数算出部, 545 モード選択部, 664 視差予測部, 771 予測ベクトル生成部, 801 バス, 802 CPU, 803 ROM, 804 RAM, 805 ハードディスク, 806 出力部, 807 入力部, 808 通信部, 809 ドライブ, 810 入出力インタフェース, 811 リムーバブル記録媒体

Claims (12)

  1. 色画像の画素ごとの視差に関するデプス情報を画素値として有するデプス画像の処理対象の対象ブロックの、前記対象ブロックのピクチャと異なる他のピクチャに対するずれを表すずれベクトルの予測ベクトルを、前記対象ブロックが、前記他のピクチャに対応点が存在しないオクルージョン部分を含むオクルージョンブロックであるかどうかによって、異なるベクトル予測方式で生成する予測ベクトル生成部を備える
    画像処理装置。
  2. 前記予測ベクトル生成部は、第1の視点と異なる第2の視点の色画像の画素ごとの視差に関するデプス情報を画素値として有する第2の視点のデプス画像の前記対象ブロックの、前記第1の視点のデプス画像のピクチャに対するずれを表すずれベクトルである視差ベクトルの予測ベクトルを、前記対象ブロックが、前記第1の視点のデプス画像のピクチャに対応点が存在しないオクルージョン部分を含むオクルージョンブロックであるかどうかによって、異なるベクトル予測方式で生成する
    請求項1に記載の画像処理装置。
  3. 前記第1の視点のデプス画像のピクチャをワーピングすることにより、前記第1の視点のデプス画像のピクチャを前記第2の視点で得られる画像に変換したワープドデプス画像のピクチャを生成するワーピング部と、
    前記ワープドデプス画像のピクチャを用いて、前記対象ブロックのピクチャである対象ピクチャのオクルージョン部分を検出するオクルージョン検出部と
    をさらに備える請求項2に記載の画像処理装置。
  4. 前記予測ベクトル生成部は、前記対象ブロックが、前記オクルージョンブロックである場合、前記対象ブロックから、前記第1の視点のデプス画像のピクチャの、前記オクルージョン部分と同一位置のオクルージョン対応部分の外部側に近接する近接部分へのベクトルを、前記対象ブロックの予測ベクトルとして生成する近接予測方式で、前記対象ブロックの予測ベクトルを生成する
    請求項3に記載の画像処理装置。
  5. 前記オクルージョン検出部は、前記対象ピクチャにおいて前記処理対象となりうる各ブロックについて、水平方向にスキャンすることにより、オクルージョン部分が開始している開始画素と終了している終了画素とを検出し、
    前記予測ベクトル生成部は、前記近接予測方式において、前記対象ブロックの左隣のオクルージョンブロックの予測ベクトルから、前記オクルージョンブロックの前記開始画素から前記終了画素までの画素数を減算することにより求められる、前記対象ブロックから、前記オクルージョン対応部分の境界の外部側に接する前記近接部分へのベクトルを、前記対象ブロックの予測ベクトルとして生成する
    請求項4に記載の画像処理装置。
  6. 前記予測ベクトル生成部は、前記対象ブロックの左隣のオクルージョンブロックの予測ベクトルから、前記対象ブロックの前記開始画素から前記終了画素までの画素数を減算することにより求められる、前記対象ブロックから、前記オクルージョン対応部分の境界の外部側に接する前記近接部分へのベクトルを、前記対象ブロックの予測ベクトルとして生成する
    請求項5に記載の画像処理装置。
  7. 前記予測ベクトル生成部は、前記近接予測方式において、前記対象ブロックの左隣のオクルージョンブロックの予測ベクトルから、前記オクルージョンブロックの水平方向の画素数を減算することにより求められる、前記対象ブロックから、前記オクルージョン対応部分の外部側に近接する前記近接部分へのベクトルを、前記対象ブロックの予測ベクトルとして生成する
    請求項4に記載の画像処理装置。
  8. 前記予測ベクトル生成部は、前記対象ブロックの予測ベクトルのベクトル予測方式を表す予測器フラグを出力する
    請求項7に記載の画像処理装置。
  9. 前記予測ベクトル生成部は、前記対象ブロックの予測ベクトルのベクトル予測方式を表す予測器フラグを取得し、その予測器フラグが表すベクトル予測方式で、前記対象ブロックの予測ベクトルを生成する
    請求項4に記載の画像処理装置。
  10. 前記予測ベクトル生成部は、前記予測器フラグが、前記近接予測方式を表している場合、前記対象ブロックの左隣のオクルージョンブロックの予測ベクトルから、前記オクルージョンブロックの水平方向の画素数を減算することにより求められる、前記対象ブロックから、前記オクルージョン対応部分の外部側に近接する前記近接部分へのベクトルを、前記対象ブロックの予測ベクトルとして生成する
    請求項9に記載の画像処理装置。
  11. 色画像の画素ごとの視差に関するデプス情報を画素値として有するデプス画像の処理対象の対象ブロックの、前記対象ブロックのピクチャと異なる他のピクチャに対するずれを表すずれベクトルの予測ベクトルを、前記対象ブロックが、前記他のピクチャに対応点が存在しないオクルージョン部分を含むオクルージョンブロックであるかどうかによって、異なるベクトル予測方式で生成する
    ステップを含む画像処理方法。
  12. 色画像の画素ごとの視差に関するデプス情報を画素値として有するデプス画像の処理対象の対象ブロックの、前記対象ブロックのピクチャと異なる他のピクチャに対するずれを表すずれベクトルの予測ベクトルを、前記対象ブロックが、前記他のピクチャに対応点が存在しないオクルージョン部分を含むオクルージョンブロックであるかどうかによって、異なるベクトル予測方式で生成する予測ベクトル生成部
    として、コンピュータを機能させるためのプログラム。
JP2013505962A 2011-03-18 2012-03-19 画像処理装置、画像処理方法、及び、プログラム Pending JPWO2012128242A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011061794 2011-03-18
JP2011061794 2011-03-18
PCT/JP2012/056975 WO2012128242A1 (ja) 2011-03-18 2012-03-19 画像処理装置、画像処理方法、及び、プログラム

Publications (1)

Publication Number Publication Date
JPWO2012128242A1 true JPWO2012128242A1 (ja) 2014-07-24

Family

ID=46879389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013505962A Pending JPWO2012128242A1 (ja) 2011-03-18 2012-03-19 画像処理装置、画像処理方法、及び、プログラム

Country Status (4)

Country Link
US (1) US9445092B2 (ja)
JP (1) JPWO2012128242A1 (ja)
CN (1) CN103416064A (ja)
WO (1) WO2012128242A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3247116A1 (en) * 2012-07-27 2017-11-22 HFI Innovation Inc. Method of constrain disparity vector derivation in 3d video coding
JP2014075687A (ja) * 2012-10-04 2014-04-24 Seiko Epson Corp 画像データ圧縮装置、画像データ伸張装置、表示装置、画像処理システム、画像データ圧縮方法及び画像データ伸張方法
US9762927B2 (en) * 2013-09-26 2017-09-12 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
EP3061233B1 (en) 2013-10-25 2019-12-11 Microsoft Technology Licensing, LLC Representing blocks with hash values in video and image coding and decoding
EP3061253A1 (en) 2013-10-25 2016-08-31 Microsoft Technology Licensing, LLC Hash-based block matching in video and image coding
WO2015131325A1 (en) 2014-03-04 2015-09-11 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
US10368092B2 (en) * 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
CN105706450B (zh) 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
JP6365153B2 (ja) * 2014-09-10 2018-08-01 株式会社ソシオネクスト 画像符号化方法および画像符号化装置
KR102358276B1 (ko) 2014-09-30 2022-02-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 코딩을 위한 해시 기반 인코더 결정
JP2017069617A (ja) * 2015-09-28 2017-04-06 ルネサスエレクトロニクス株式会社 半導体装置および画像符号化方法
DE102017103588A1 (de) * 2016-02-24 2017-08-24 Jtekt Corporation Analysevorrichtung und analysesystem
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US10586308B2 (en) * 2017-05-09 2020-03-10 Adobe Inc. Digital media environment for removal of obstructions in a digital image scene
CN109005355B (zh) * 2018-09-28 2020-10-09 维沃移动通信有限公司 一种拍摄方法及移动终端
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4131933B2 (ja) 2003-01-22 2008-08-13 日本電信電話株式会社 画像データへの立体情報埋め込み方法、装置、プログラム、および記録媒体
JP2006513661A (ja) 2003-01-23 2006-04-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ バックグラウンド動きベクトル検出方法及び装置
US8823821B2 (en) * 2004-12-17 2014-09-02 Mitsubishi Electric Research Laboratories, Inc. Method and system for processing multiview videos for view synthesis using motion vector predictor list
US7596243B2 (en) * 2005-09-16 2009-09-29 Sony Corporation Extracting a moving object boundary
ZA200805337B (en) * 2006-01-09 2009-11-25 Thomson Licensing Method and apparatus for providing reduced resolution update mode for multiview video coding
CA2672924C (en) * 2006-12-28 2014-07-22 Nippon Telegraph And Telephone Corporation Video encoding method and decoding method, apparatuses therefor, programs therefor, and storage media which store the programs
JP5325638B2 (ja) * 2008-11-26 2013-10-23 日立コンシューマエレクトロニクス株式会社 画像復号化方法
JP2010157826A (ja) * 2008-12-26 2010-07-15 Victor Co Of Japan Ltd 画像復号装置、画像符復号方法およびそのプログラム
WO2010073513A1 (ja) * 2008-12-26 2010-07-01 日本ビクター株式会社 画像符号化装置、画像符号化方法およびそのプログラム、ならびに画像復号装置、画像復号方法およびそのプログラム
KR101628383B1 (ko) * 2010-02-26 2016-06-21 연세대학교 산학협력단 영상 처리 장치 및 방법
JP6061150B2 (ja) * 2011-03-18 2017-01-18 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
BR112014004062A2 (pt) * 2011-08-31 2017-03-07 Sony Corp dispositivos e métodos de codificação e decodificação
WO2013031575A1 (ja) * 2011-08-31 2013-03-07 ソニー株式会社 画像処理装置および画像処理方法
JP2013207755A (ja) * 2012-03-29 2013-10-07 Sony Corp 画像処理装置および方法

Also Published As

Publication number Publication date
US9445092B2 (en) 2016-09-13
US20140002603A1 (en) 2014-01-02
CN103416064A (zh) 2013-11-27
WO2012128242A1 (ja) 2012-09-27

Similar Documents

Publication Publication Date Title
WO2012128242A1 (ja) 画像処理装置、画像処理方法、及び、プログラム
JP6061150B2 (ja) 画像処理装置、画像処理方法、及び、プログラム
EP3047649B1 (en) Combined bi-predictive merging candidates for 3d video coding
EP3092805B1 (en) Block-based advanced residual prediction for 3d video coding
WO2012121052A1 (ja) 画像処理装置、画像処理方法、及び、プログラム
KR102187723B1 (ko) 3 차원(3d)비디오 코딩을 위한 진보된 병합 모드
EP3011746B1 (en) More accurate advanced residual prediction (arp) for texture coding
US9350972B2 (en) Encoding device and encoding method, and decoding device and decoding method
WO2012157443A1 (ja) 画像処理装置、及び、画像処理方法
WO2012147622A1 (ja) 画像処理装置、及び、画像処理方法
US9438926B2 (en) Constraints on neighboring block based disparity vector (NBDV) techniques for 3D video
KR20170071608A (ko) 화상 처리 장치 및 방법
US20130259131A1 (en) Image processing apparatus and method
WO2016104179A1 (ja) 画像処理装置および画像処理方法
WO2012128241A1 (ja) 画像処理装置、画像処理方法、及び、プログラム
KR20080007069A (ko) 비디오 신호 디코딩 방법 및 장치
WO2013157439A1 (ja) 復号装置および復号方法、並びに、符号化装置および符号化方法