(57)【特許請求の範囲】
【請求項１】
多視点動画像の符号化データを復号する動画像復号装置の動画像復号方法であって、
復号対象ブロックが時間ダイレクトモードで符号化されている場合、前記復号対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するかを判定し、
前記同位置ブロックが前記視差ベクトルを有する場合、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記復号対象ブロックの動きベクトルを算出し、
算出された動きベクトルを用いて前記復号対象ブロックを復号する動画像復号方法。
【請求項２】
前記動きベクトルを算出する場合、
前記視差ベクトルが参照する他視点のブロックが複数のブロックの領域を含むとき、前記複数のブロックが有する動きベクトルに基づく所定の動きベクトルを用いる請求項１記載の動画像復号方法。
【請求項３】
前記所定の動きベクトルは、
前記他視点のブロックの中心位置を含むブロックの動きベクトルである請求項２記載の動画像復号方法。
【請求項４】
前記所定の動きベクトルは、
前記複数のブロックの各動きベクトルに対し、前記他視点のブロックに含まれる前記複数のブロックの領域の大きさに応じて加重平均した動きベクトルである請求項２記載の動画像復号方法。
【請求項５】
前記複数のブロックの各ブロックを符号化するときに用いた量子化スケール、差分係数の大きさ及び個数を含む統計情報を取得し、
前記所定の動きベクトルは、
前記複数のブロックの各動きベクトルに対し、前記各ブロックの統計情報を用いて判定した各ブロックの信頼度に応じて加重平均した動きベクトルである請求項２記載の動画像復号方法。
【請求項６】
前記動きベクトルを算出する場合、
前記視差ベクトルが参照する他視点のブロックに動きベクトルがない場合、前記他視点のブロックを参照する動きベクトルを用いる請求項１記載の動画像復号方法。
【請求項７】
前記動きベクトルを算出する場合、
前記視差ベクトルが参照する他視点のブロックに動きベクトルが複数ある場合、前方向の動きベクトルを優先して用いる請求項１記載の動画像復号方法。
【請求項８】
多視点動画像の符号化を行う動画像符号化装置の動画像符号化方法であって、
符号化対象ブロックを時間ダイレクトモードで符号化する場合、前記符号化対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するとき、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記符号化対象ブロックの動きベクトルを算出し、
算出された動きベクトルを用いて前記符号化対象ブロックを符号化する動画像符号化方法。
【請求項９】
多視点動画像の符号化データを復号する動画像復号装置であって、
復号対象ブロックが時間ダイレクトモードで符号化されている場合、前記復号対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するかを判定する判定部と、
前記同位置ブロックが前記視差ベクトルを有する場合、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記復号対象ブロックの動きベクトルを算出する算出部と、
算出された動きベクトルを用いて前記復号対象ブロックを復号する復号部と、
を備える動画像復号装置。
【請求項１０】
多視点動画像の符号化データを復号する動画像復号プログラムであって、
復号対象ブロックが時間ダイレクトモードで符号化されている場合、前記復号対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するかを判定し、
前記同位置ブロックが前記視差ベクトルを有する場合、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記復号対象ブロックの動きベクトルを算出し、
算出された動きベクトルを用いて前記復号対象ブロックを復号する、
処理をコンピュータに実行させるための動画像復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多視点の動画像を扱う動画像復号方法、動画像符号化方法、動画像復号装置、及び動画像復号プログラムに関する。
【背景技術】
【０００２】
符号化方式H.264及びそれ以降の次世代符号化方式においては、双方向ピクチャにおける予測モードとして、５つのモードがある。これらのモードは、フレーム内符号化（Intra）、前方向予測符号化（Forward Prediction）、後方向予測符号化（Backward Prediction）、双方向予測符号化（Bi-directive Prediction）、ダイレクトモード（DirectMode）である。
【０００３】
このダイレクトモードは、動画像の一連性に着目し、時間的・空間的に隣接したMB（マクロブロック）の動きベクトルから現MBの動きベクトルを決定する符号化モードである。ダイレクトモードは、動きの時空間相関性を高めると共に、動きベクトルに関する情報を伝送しなくてすむという観点で、符号化効率の改善に貢献している。
【０００４】
一方、H.264の符号化において双方向予測は、List0方向とList1方向の予測から実現される。通常List0は、前方向、List1は、後方向だが、前方向、後方向でなくList0、List1と呼ぶのは、前／後の双方向予測以外に、前／前や後／後の双方向予測が可能だからである。
【０００５】
また、各参照方向は複数参照も可能なためにピクチャ単位にRef_idxという参照インデックスの番号が付けられる。ダイレクトモードは、基準ベクトルと呼ばれるList1（通常未来）方向の最小のRef_idxを持つ参照ピクチャの同位置MBが指す動きベクトルを基準として、２本の動きベクトルを求める。この２本の動きベクトルは、基本的に前後の動きベクトルである。
【０００６】
なお、以下では、基準となる動きベクトルを基準ベクトル、求められた動きベクトルをダイレクトベクトルと呼ぶことにする。
【０００７】
また、ダイレクトモードには、時間ダイレクトモードと空間ダイレクトモードの２つのモードが存在する。
【０００８】
図１は、時間ダイレクトモードを説明するための図である。図１に示す例では、符号化対象のピクチャをCurrPic（Current Picture）と呼び、このCurrPicは、双方向予測を行うBピクチャであるとする。また、既に符号化済みのピクチャであり、CurrPicのList1方向のRef_idex=0のピクチャをcolPic（co-located Pciture）と呼ぶ。
【０００９】
colPicの中で、符号化対象のMBと同位置にあるMBを符号化する際に用いた動きベクトルをmvCol（基準ベクトル）と呼ぶ。このmvColが参照するピクチャをrefPicColと呼ぶ。colPicとrefPicColの時間的距離をtd、currPicとrefPicColの時間的距離をtbと呼ぶ。
【００１０】
ここで、CurrPicから、refPicCol、ColPicへの動きベクトルを、mvColの時間配分でスケーリングし、求めた時間ダイレクトベクトルmvL0,mvL1をそのブロックの予測ベクトルとして用いる。時間配分は、POC（Picture Order Count：Pictureの表示順序）の差で計算される。
【００１１】
時間ダイレクトベクトルは、以下の式により算出される。
mvL0＝（（tb／td）×Vx，（tb／td）×Vy）：mvColのtb／td倍
mvL1＝mvL0−mvCol：mvL0とmvColとの差分
ここで、mvCol＝（Vx，Vy）とする。
【００１２】
この時間ダイレクトモードの動きベクトルの予測効率を上げるため、時間ダイレクトモードの動きベクトルを一直線上にする技術がある。
【００１３】
なお、一般にダイレクトモードに用いる動きベクトルの持ち方は、SPS(Sequence_parameter_set)のdirect_8x8_inference_flagの値によって決定される。例えば、direct_8x8_inference_flag = 1の場合は、8x8単位でダイレクトモードに使用する動きベクトルを持ち、direct_8x8_inference_flag = 0の場合は、4x4単位でダイレクトモードに使用する動きベクトルを持つ。
【００１４】
図２は、空間ダイレクトモードを説明するための図である。空間ダイレクトモードは、時間ダイレクトモードと同じくmvColを用いるのであるが、図２に示すように、そのmvColは静動判定のみに用いられる。空間ダイレクトモードでは、静止と判定された場合は０ベクトルとし、動きがあると判定された場合は、符号化対象ピクチャ内（空間内）の周辺ブロックの動きベクトルから予測ベクトルを生成する。
【００１５】
図２に示す例では、動きありと判定されると、符号化対象のMBの周辺MB（上、左上、左）の動きベクトルの中間値を空間ダイレクトベクトルとする。例えば、空間ダイレクトベクトルは、fmvUとbmvURとする。参照ピクチャは、周辺MBの最小値とする。
【００１６】
近年、多視点動画像符号化（MVC：Multi-view Video Coding）として、多視点対応の符号化がH.264の拡張として規格化された。ステレオ立体視対応符号化は、MVCの２眼の場合となる。一般に２眼の左視点画像をBase-View、右視点画像を非Base-viewと呼ぶ。Base-Viewはinter予測が自分自身の視点に閉じた画像である。MVCでは、従来の（同一視点内）時間方向の予測符号化に加え、別視点間予測であるinter-view予測というものが追加された。inter-view予測は、同一時刻（(POC)の視点間予測を行うものである。
【００１７】
MVCの技術において、視差ベクトルを予測する際、所定の個数の予め符号化されたマクロブロックに対する視差ベクトルを予測し、予測された視差ベクトルを利用して視差ベクトルを計算する技術がある。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００５−１１０２８９号公報
【特許文献２】特表２００９−５０９４５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
多視点動画像符号化において、ダイレクトモードを考えると、時間ダイレクトモードでは、mvColがinter-view予測である場合は、POCの差が0となる為に、スケーリングによって時間ダイレクトベクトルを求めることができない。実際にH.264規格書(T-REC-H.264-200903-I!!PDF-E.pdf)のH.7.4.3にも示されているように、colPic内にinter-view予測を指すブロックが存在する場合には、ダイレクトモードは空間ダイレクトモード固定でなければならない。これは、inter-view予測を用いる場合は、時間方向の概念が意味をなさないからと言われている。
【００２０】
しかしながら、ダイレクトモードについて、単純に周辺ブロックの動きベクトルを使用する空間ダイレクトモードより、前後のピクチャを含めて動きベクトルの時間方向の連続性を保つ事を考慮している時間ダイレクトモードは効果が大きい。よって、符号化対象ブロックがinter-view予測である場合、時間ダイレクトモードが使用できず、符号化効率が良くないという問題点があった。
【００２１】
そこで、開示の技術は、上記課題に鑑みてなされたものであり、多視点動画像符号化／復号処理において、inter-view予測で時間ダイレクトモードを使用し、符号化効率を上げることを目的とする。
【課題を解決するための手段】
【００２２】
開示の一態様における動画像復号方法は、多視点動画像の符号化データを復号する動画像復号装置の動画像復号方法であって、復号対象ブロックが時間ダイレクトモードで符号化されている場合、前記復号対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するかを判定し、前記同位置ブロックが前記視差ベクトルを有する場合、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記復号対象ブロックの動きベクトルを算出し、算出された動きベクトルを用いて前記復号対象ブロックを復号する。
【００２３】
また、他の態様における動画像符号化方法は、多視点動画像の符号化を行う動画像符号化装置の動画像符号化方法であって、符号化対象ブロックを時間ダイレクトモードで符号化する場合、前記符号化対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するとき、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記符号化対象ブロックの動きベクトルを算出し、算出された動きベクトルを用いて前記符号化対象ブロックを符号化する。
【発明の効果】
【００２４】
開示の技術によれば、多視点動画像符号化／復号処理において、inter-view予測で時間ダイレクトモードを使用し、符号化効率を上げることができる。
【図面の簡単な説明】
【００２５】
【図１】時間ダイレクトモードを説明するための図。
【図２】空間ダイレクトモードを説明するための図。
【図３】実施例１における動画像符号化装置の構成の一例を示すブロック図。
【図４】inter-view予測の基準ベクトル（その１）を説明するための図。
【図５】動画像の一例を示す図。
【図６】図５に示す画像の概要をモノクロ（２値化）で表現した図。
【図７】inter-view予測の基準ベクトル（その２）を説明するための図。
【図８】inter-view予測の基準ベクトル（その３）を説明するための図。
【図９】実施例１における符号化処理の一例を示すフローチャート。
【図１０】実施例２における動画像符号化装置の構成の一例を示すブロック図。
【図１１】iMBの中心位置を含むブロックを示す図。
【図１２】サブブロックがある場合の一例を示す図。
【図１３】refPicCol内の参照サブブロックの一例を示す図。
【図１４】実施例２における基準ベクトルの算出処理の一例を示すフローチャート。
【図１５】iMBと重なるサブブロックの面積を計算する処理の一例を示すフローチャート。
【図１６】実施例３における動画像復号装置の構成の一例を示すブロック図。
【図１７】実施例３における復号処理の一例を示すフローチャート。
【図１８】Slice Headerの例を示す図。
【図１９】画像処理装置の構成の一例を示す図
【発明を実施するための形態】
【００２６】
以下、添付図面を参照しながら実施例について詳細に説明する。
【００２７】
［実施例１］
＜構成＞
図３は、実施例１における動画像符号化装置１００の構成の一例を示すブロック図である。図３に示す動画像符号化装置１００は、Base-Viewの動画像を符号化するため、予測誤差生成部１０１、直交変換・量子化部１０２、可変長符号化部１０３、逆直交変換・逆量子化部１０４、復号画像生成部１０５、フレームメモリ１０６を備える。また、動画像符号化装置１００は、動き補償部１０７、動きベクトル検出部１０８、基準ベクトル読出し部１０９、ダイレクトベクトル計算部１１０、モード判定部１１１、動きベクトルメモリ１１２を備える。
【００２８】
また、動画像符号化装置１００は、非Base-Viewの動画像を符号化するため、予測誤差生成部１５１、直交変換・量子化部１５２、可変長符号化部１５３、逆直交変換・逆量子化部１５４、復号画像生成部１５５、フレームメモリ１５６を備える。また、動画像符号化装置１００は、動き補償部１５７、動きベクトル検出部１５８、基準ベクトル判定部１５９、基準ベクトル変更部１６０、ダイレクトベクトル計算部１６１、モード判定部１６２、動きベクトルメモリ１６３を備える。各部についての概略を以下に説明する。
【００２９】
（Base-View）
まず、Base-View側の動画像を符号化する処理について説明する。予測誤差生成部１０１は、入力された動画像データの符号化対象画像が１６×１６ピクセル（画素）のブロック（MB）に分割されたマクロブロックデータ（以降、MBデータともいう）を取得する。予測誤差生成部１０１は、そのMBデータと、動き補償部１０７から出力される予測画像のMBデータとにより、予測誤差データを生成する。予測誤差生成部１０１は、生成された予測誤差データを直交変換・量子化部１０２に出力する。
【００３０】
直交変換・量子化部１０２は、入力された予測誤差データを８×８単位や４×４単位で直交変換処理する。直交変換処理は、DCT（Discrete Cosine Transform）変換やアダマール（Hadamard）変換などがある。直交変換・量子化部１０２は、直交変換処理によって水平及び垂直方向の周波数成分に分離されたデータを取得する。
【００３１】
これは、画像の空間相関性により、周波数成分に変換する事により低周波成分にデータが集まり情報量圧縮を行う事が可能となるからである。
【００３２】
直交変換・量子化部１０２は、直交変換されたデータを量子化することによって、データの符号量を低減し、この量子化された値を可変長符号化部１０３及び逆直交変換・逆量子化部１０４に出力する。
【００３３】
可変長符号化部１０３は、直交変換・量子化部１０２から出力されたデータを可変長符号化して出力する。可変長符号化とは、シンボルの出現頻度に応じて可変長の符号を割り当てる方式をいう。
【００３４】
可変長符号化部１０３は、例えば、基本的には出現頻度の高い係数の組合せにはより短い符号を、出現頻度の低い係数組合せにはより長い符号を割当てる。これにより、全体的に符号長を短くしようとする。H.264では、CAVLC（Context-Adaptive Variable Length Coding）やCABAC（Context-Adaptive Binary Arithmetic Coding）と呼ばれる方式の可変長符号を選択することができる。
【００３５】
逆直交変換・逆量子化部１０４は、直交変換・量子化部１０２から出力されたデータを逆量子化してから逆直交変換する。逆直交変換・逆量子化部１０４は、逆直交変換を行って、周波数成分から画素成分へ変換し、変換後のデータを復号画像生成部１０５に出力する。この逆直交変換・逆量子化部１０４によって復号化処理が行われることにより、符号化前の予測誤差信号と同程度の信号が得られる。
【００３６】
復号画像生成部１０５は、動き補償部１０７で動き補償された画像のMBデータと、逆直交変換・逆量子化部１０４により復号処理された予測誤差データとを加算する。これにより、復号化側と同等の処理画像を符号化側でも生成することができる。
【００３７】
符号化側で生成された画像を局所復号画像と呼び、符号化側に復号化側と同一の処理画像を生成することにより、次ピクチャ以降の差分符号化を行うことが可能となる。復号画像生成部１０５は、加算して生成した局所復号画像のMBデータを、フレームメモリ１０６に出力する。なお、局所復号画像のMBデータに対し、デブロックフィルタをかけてもよい。局所復号画像は、参照画像となりうる。
【００３８】
フレームメモリ１０６は、入力したMBデータを新たな参照画像のデータとして記憶する。参照画像は、動き補償部１０７、動きベクトル検出部１０８及び動きベクトル検出部１５８により読み出される。
【００３９】
動き補償部１０７は、フレームメモリ１０６から取得した参照画像のデータを動きベクトルメモリ１１２から提供される動きベクトルで動き補償する。これにより、動き補償された参照画像としてのMBデータが生成される。
【００４０】
動きベクトル検出部１０８は、符号化対象ピクチャにおけるMBデータと、フレームメモリ１０６から取得する符号化済みの参照画像のMBデータとを用いて動き探索を行い、適切な動きベクトルを求める。
【００４１】
動きベクトルとは、ブロック単位で参照画像から符号化対象画像に最も類似している位置を探索するブロックマッチング技術を用いて求められるブロック単位の空間的なずれを示す値である。
【００４２】
動き探索は、例えば、画素の差分絶対値和の大きさのみでなく、動きベクトルの評価値も付加することが一般的である。動きベクトルの符号化は、成分そのものでなく周辺MBの動きベクトルとの差分ベクトルを符号化する。よって、動きベクトル検出部１０８は、差分ベクトルを求め、その成分の大きさにより、動きベクトル符号長相当の評価値を出力する。
【００４３】
動き探索の評価値をcost、差分絶対値をSAD_cost(Sum Absolute Difference)、動きベクトルの符号量相当の評価値をMV_cost(Motion Vector)とすると、動きベクトル検出部１０８は、次の式により、costを最小とする動きベクトルの位置を検出する。
cost = SAD_cost + MV_cost
動きベクトル検出部１０８は、検出した動きベクトルをモード判定部１１１に出力する。
【００４４】
基準ベクトル読出し部１０９は、符号化対象のMBが双方向予測である場合、colPicの同位置ブロックの動きベクトル（基準ベクトル）を動きベクトルメモリ１１２から読み出す。基準ベクトル読出し部１０９は、読み出した基準ベクトルをダイレクトベクトル計算部１１０に出力する。
【００４５】
ダイレクトベクトル計算部１１０は、取得した基準ベクトルを時間配分でスケーリングし、符号化対象のMBの動きベクトル（ダイレクトベクトル）を算出する（図１参照）。ダイレクトベクトル計算部１１０は、算出したダイレクトベクトルをモード判定部１１１に出力する。
【００４６】
モード判定部１１１は、前述した５つの符号化（予測）モードのうち、符号化コストが最も低い符号化モードを選択する。モード判定部１１１は、例えば、ダイレクトベクトルを用いた動き予測を行う場合と、通常の動きベクトルの予測を行う場合（前方向、後方向、双方向、イントラ）とで、最適な予測モードを選択する。
【００４７】
具体的には、モード判定部１１１は、予測モード毎に以下のような評価値を計算する。
cost_direct = SAD(*org, *ref);
cost_forward = SAD(*org, *ref) + MV_COST(*mv, *prevmv);
cost_backward = SAD(*org, *ref) + MV_COST(*mv, *prevmv);
cost_bidirection = SAD(*org, *ref) + MV_COST(*mv, *prevmv);
cost_intra = ACT(*org);
【００４８】
ここで、モード判定部１１１は、SAD（）について、MB内の画素差分絶対値和を求め、この場合、原画MB（*org）と参照画MB（*ref）の１６×１６画素の差分絶対値和を次の式により求める。
SAD() = Σ|*org − *ref|
【００４９】
H.264符号化などでは、MBは、１MB内に複数のサブブロックに分割することが可能である。そこで、MBが、例えば８×８のサブブロックの４つに分かれている場合は、８×８＝６４画素の差分絶対値和の４つの集まりが、SAD評価値となる。なお、サブブロックには、１６×１６、８×８の他にも、８×１６、１６×８、４×８、８×４、４×４と様々な大きさが存在可能である。
【００５０】
IntraMBの場合は、差分画像でなく原画像そのものを符号化するので、アクティビティという別の評価値を用いる。Intra符号化の場合は、原画MBそのものを直交変換する。よって、ACT（）は、MBの各画素のMB平均値(=AveMB)からの隔たり等により次の式により求められる。
ACT() = Σ|*org − AveMB|
【００５１】
MV_COSTは、動きベクトルの符号量に比例した評価値である。動きベクトル（*mv）は、成分そのものではなくて、周辺MBに基づく予測ベクトル（*prevmv）との差分ベクトルを符号化するので、その絶対値の大きさにより評価値が決定される。
【００５２】
重み定数λが使用され、MV_COSTの全体cost評価値に対する影響度を変更することも一般的に行われている。
MV_COST = λ* (Table[*mv-*prevmv])
ここで、Table[]は、ベクトル差分の大きさを符号量相当に変換するテーブルである。
【００５３】
なお、実際に重み付けを行う方法は、様々な方法がある。例えば、以下に２つの例を挙げる。
cost_direct += W (W:重み定数)
上記式により、固定値を付加して評価値を大きくしてもよい。
cost_direct *= α (α:重み係数)
上記式により、評価値を定数倍してもよい。
【００５４】
モード判定部１１１は、例えば、次の式により最小の評価costを求め、その最小の評価costに対応するMB_Typeを、符号化に使用するMB_Typeと決定する。
min_cost = min(cost_direct, cost_forward, cost_backward, cost_bidirection, cost_intra);
【００５５】
ダイレクトモードは、MV_COSTが存在しない分、予測が当たっていてSAD評価値が全てのモードで等しく、かつ低い場合などに選択されやすくなる。モード判定部１１１は、選択した符号化モードで用いた動きベクトルを動きベクトルメモリ１１２に記憶し、選択した符号化モードを動き補償部１０７に通知する。
【００５６】
動きベクトルメモリ１１２は、符号化に用いられた動きベクトルを記憶する。動きベクトルメモリ１１２で記憶する動きベクトルは、動き補償部１０７により読み出されたり、基準ベクトル変更部１６０により読み出されたりする。これにより、Base-View側の動画像は、所定の符号化方式で独立して符号化される。
【００５７】
（非Base-View）
次に、非Base-View側の動画像を符号化する場合について説明する。予測誤差生成部１５１は、Base-View側と同様にして、符号化対象のMBデータと、動き補償部１０７から出力される予測画像のMBデータとにより、予測誤差データを生成する。予測誤差生成部１５１は、生成された予測誤差データを直交変換・量子化部１５２に出力する。
【００５８】
直交変換・量子化部１５２は、入力された予測誤差データを直交変換処理する。直交変換・量子化部１５２は、直交変換処理によって水平及び垂直方向の周波数成分に分離されたデータを取得する。
【００５９】
直交変換・量子化部１５２は、直交変換されたデータを量子化することによって、データの符号量を低減し、この量子化されたデータを可変長符号化部１５３及び逆直交変換・逆量子化部１５４に出力する。
【００６０】
可変長符号化部１５３は、直交変換・量子化部１５２から出力されたデータを可変長符号化して出力する。可変長符号化とは、シンボルの出現頻度に応じて可変長の符号を割り当てる方式をいう。
【００６１】
逆直交変換・逆量子化部１５４は、直交変換・量子化部１５２から出力されたデータを逆量子化してから逆直交変換する。逆直交変換・逆量子化部１５４は、逆直交変換したデータを復号画像生成部１５５に出力する。この逆直交変換・逆量子化部１５４によって復号化処理が行われることにより、符号化前の予測誤差信号と同程度の信号が得られる。
【００６２】
復号画像生成部１５５は、動き補償部１５７で動き補償された画像のMBデータと、逆直交変換・逆量子化部１５４により復号処理された予測誤差データとを加算する。復号画像生成部１５５は、加算して生成した復号画像のMBデータを、フレームメモリ１５６に出力する。なお、復号画像のMBデータに対し、デブロックフィルタをかけてもよい。
【００６３】
フレームメモリ１５６は、入力したMBデータを新たな参照画像のデータとして記憶し、動き補償部１５７及び動きベクトル検出部１５８に出力する。
【００６４】
動き補償部１５７は、フレームメモリ１５６から取得した参照画像のデータを動きベクトルメモリ１６３から提供される動きベクトルで動き補償する。これにより、動き補償された参照画像としてのMBデータが生成される。
【００６５】
動きベクトル検出部１５８は、符号化対象ピクチャにおけるMBデータと、フレームメモリ１５６から取得する符号化済みの参照画像のMBデータを用いて、動きベクトルを求める。
【００６６】
なお、動きベクトル検出部１５８は、他視点の参照画像を用いることができるときは、フレームメモリ１０６から取得した参照画像のブロックに対し、ブロックマッチングを行う。
【００６７】
動きベクトル検出部１５８は、同視点の参照画像及び／他視点の参照画像に対して検出した動きベクトルをモード判定部１６２に出力する。
【００６８】
基準ベクトル判定部１５９は、符号化対象のMBが双方向予測である場合、colPicの同位置ブロックの動きベクトル（基準ベクトル）を動きベクトルメモリ１６３から読み出す。このとき、基準ベクトル判定部１５９は、同位置ブロックが他視点のピクチャのブロックを参照する（指し示す）視差ベクトルを有するか否かを判定する。視差ベクトルは、他視点のブロックを参照するベクトルである。
【００６９】
基準ベクトル判定部１５９は、同位置ブロックが同視点のブロックを参照する動きベクトルを有する場合、同位置ブロックの動きベクトルをモード判定部１６２に出力する。一方、基準ベクトル判定部１５９は、同位置ブロックが他視点のブロックを参照する視差ベクトルを有する場合、その他視点のブロックを示す情報を基準ベクトル変更部１６０に出力する。
【００７０】
基準ベクトル変更部１６０は、基準ベクトル判定部１５９から取得した他視点のブロックに対し、この他視点のブロックが有する動きベクトルを動きベクトルメモリ１１２から取得する。基準ベクトル変更部１６０は、取得した動きベクトルを、時間ダイレクトモードの基準ベクトルとし、ダイレクトベクトル計算部１６１に出力する。基準ベクトルの変更の仕方は後述する。
【００７１】
ダイレクトベクトル計算部１６１は、取得した基準ベクトルを時間配分でスケーリングし、符号化対象のMBの動きベクトル（ダイレクトベクトル）を算出する（図１参照）。ダイレクトベクトル計算部１６１は、算出したダイレクトベクトルをモード判定部１６２に出力する。
【００７２】
モード判定部１６２は、前述した５つの符号化モードのうち、符号化コストが最も低い符号化モードを選択する。モード判定部１６２は、選択した符号化モードで用いた動きベクトルを動きベクトルメモリ１６３に記憶し、選択した符号化モードを動き補償部１５７に通知する。
【００７３】
動きベクトルメモリ１６３は、符号化に用いられた動きベクトルを記憶する。動きベクトルメモリ１６３で記憶する動きベクトルは、動き補償部１５７などにより読み出される。これにより、非Base-View側の動画像が符号化される際、inter-view予測であっても、時間ダイレクトモードを適用することが可能にある。
【００７４】
＜inter-view予測の基準ベクトル＞
次に、inter-view予測の基準ベクトルについて説明する。本実施例では、非Base-Viewの符号化を行う際に、図４に示すように、基準となるベクトルが、inter-view予測の視差ベクトルであっても、時間ダイレクトモードを適切に選択可能にする。
【００７５】
（視差ベクトルの参照先がPピクチャの場合）
図４は、inter-view予測の基準ベクトル（その１）を説明するための図である。視差（視点）間の情報を用いる非Base-View入力側の符号化についてのみ、inter-view予測が用いられる。よって、ダイレクトベクトルの基準ベクトルの変更については、非Base-View入力側のみを考慮すればよい。
【００７６】
基準ベクトル判定部１５９は、図４に示すcolPic（P5'）の同位置ブロックのベクトルが、視差ベクトルであるかを判定する。同位置ブロックのベクトルがinter-view予測の視差ベクトル（iMV）であった場合（１）、基準ベクトル変更部１６０は、そのinter-view予測のiMVが参照するブロックiMBが持つ同一視点（Base-View側）内の時間方向の動きベクトルbasemvColを求める（２）。
【００７７】
基準ベクトル変更部１６０は、求めた動きベクトルbasemvColを符号化対象のMBの時間ダイレクトモードの基準ベクトルmvColとする（３）。
【００７８】
ダイレクトベクトル計算部１６１は、基準ベクトルmvColに対しスケーリングを行うことで、ダイレクトベクトルmvL0、mvL1を算出する（４）。これにより、立体動画像の非Base-View画像においても、適切なダイレクトベクトルmvL0、mvL1を計算することが可能となり、効率の良いダイレクトモードを実現することが可能となる。
【００７９】
図５は、動画像の一例を示す図である。図５に示す多視点の動画像は、左右２眼のカメラで、画面左から右へ横切る車を撮影した動画像である。図５の左側の画像がBase-Viewの画像とし、右側の画像が非Base-Viewの画像とする。図５に示す画像の時間軸は、図５の上から下に時間が進むようになっている。
【００８０】
図５に示す楕円で囲んだ画像が同一時間の画像である。画像の中央手前の車の右前タイヤが、ブロックの代表例であるとする。図５では、分かりやすくするため、右前タイヤを含むブロックがcolPicの同位置ブロックとして説明する。非Base-ViewのB3'が符号化対象ピクチャとする。非Base-ViewのP5'（colPic）の同位置ブロックｂ１１を示すため、実線で同位置の位置を示している。
【００８１】
基準ベクトル判定部１５９は、P5'（colPic）の視点間の視差ベクトルmv11を求め、Base-View(P5)内の視点間の視差ベクトルmv11だけずれたブロックｂ１２を、基準ベクトル変更部１６０に通知する。
【００８２】
基準ベクトル変更部１６０は、ブロックｂ１２が有する同一視点内のI2−P5間の動きベクトルmv12を取得する。よって、非Base-Viewの所定のブロックがinter-view予測で、そのブロックに時間方向の動きベクトルが存在しない場合でも、視点間の視差ベクトルの参照先のBase-Viewブロックが有する時間方向の動きベクトルを求めることできる。
【００８３】
基準ベクトル変更部１６０は、求めたベクトルmv12を非Base-Viewのブロックｂ１１の時間方向の動きベクトルmv13とみなすことで、時間方向の動きベクトルmv13（＝時間ダイレクトモードの基準ベクトル）を生成することができる。基準ベクトル変更部１６０は、Base-Viewの画像側のbasemvColを非Base-Viewの画像側のmvColとみなす。
【００８４】
ダイレクトベクトル計算部１６１は、基準ベクトルmvColを取得すると、公知の技術を用いて基準ベクトルmvColをスケーリングすることで、ダイレクトベクトルを求めることができる。
【００８５】
図６は、図５に示す画像の概要をモノクロ（２値化）で表現した図である。図６に示す（１）〜（４）は、図４に示す（１）〜（４）に対応するものである。図６に示す例では、車のタイヤを丸で表現している。
【００８６】
図６に示すように、まず、同位置ブロックの視差ベクトルが求められ（１）、視差ベクトルが参照するBase-Viewのブロックの動きベクトルが求められる（２）。次に、この動きベクトルが基準ベクトルとされ（３）、基準ベクトルがスケーリングされてダイレクトベクトルが求められる（４）。
【００８７】
（視差ベクトルの参照先がBピクチャの場合）
図７は、inter-view予測の基準ベクトル（その２）を説明するための図である。図７は、colPic（rB5'）の参照先ピクチャがBピクチャの場合を示す。図７は、B0,rB1,B2,I3,B4,rB5,B6,P7,...という参照Bピクチャを持つピクチャ構造となっている。rB1,rB5が参照Bピクチャであり、参照Bピクチャは、他のピクチャの参照ピクチャになり得る。
【００８８】
図７に示す例では、各Viewの符号化処理順は、I3,rB1,B0,B2,P7,rB5,B4,B6,...の順になる。図７に示す（１）〜（４）は、図４に示す（１）〜（４）と同様、ダイレクトベクトルの算出手順を示す。
【００８９】
基準ベクトル判定部１５９は、図７に示すcolPic（rB5'）の同位置ブロックのベクトルが、視差ベクトルであるかを判定する。同位置ブロックのベクトルが、inter-view予測の視差ベクトル（iMV）であった場合（１）、基準ベクトル変更部１６０は、そのinter-view予測のiMVが参照するブロックiMBが持つ同一視点（Base-View側）内の時間方向の動きベクトルbasemvColを求める（２）。
【００９０】
例えば、iMBが参照Bピクチャの場合、動きベクトルが２つある。このとき、基準ベクトル変更部１６０は、iMBの持つ動きベクトルが前方向予測や両方向予測の動きベクトルである場合、前方向の動きベクトルを優先的にbasemvColとする。これにより、前方向の動きベクトルをbasemvColとした場合、iMBがPピクチャの場合と同様の処理を行うことができる。
【００９１】
基準ベクトル変更部１６０は、iMBが後方向予測の動きベクトルしか持たない場合、図７に示す処理を行う。図７に示すように、基準ベクトル変更部１６０は、後方向予測の動きベクトルをbasemvColとする（２）。
【００９２】
基準ベクトル変更部１６０は、求めた動きベクトルbasemvColを符号化対象のMBの時間ダイレクトモードの基準ベクトルmvColとする（３）。
【００９３】
ダイレクトベクトル計算部１６１は、基準ベクトルmvColに対しスケーリングを行うことで、ダイレクトベクトルmvL0、mvL1を算出する（４）。
【００９４】
例えば、図７に示すように、後方向の動きベクトルを基準ベクトルとする場合、時間ダイレクトの考え方で、colPic（rB5'）とrefPicCol（P7'）の時間的距離をtd、currPic（rB5'）とrefPicCol（P7'）の時間的距離をtbとする。図７に示すように、ダイレクトベクトル計算部１６１は、時間ダイレクトベクトルmvL0,mvL1を以下の式により求める。
mvL0＝tb／td×mvCol
mvL1＝mvL0−mvCol
【００９５】
これにより、同位置ブロックのベクトルが参照する他視点のブロックが双方向予測であっても、適切なダイレクトベクトルmvL0、mvL1を計算することが可能となり、効率の良いダイレクトモードを実現することが可能となる。
【００９６】
（視差ベクトルの参照先がIピクチャの場合）
図８は、inter-view予測の基準ベクトル（その３）を説明するための図である。図８は、colPic（P5'）の参照先ピクチャがIピクチャの場合を示す。iMVが参照するiMBが決定した時に、iMBを含むピクチャがIピクチャであれば、iMVは動きベクトルを持たないので、既に（符号化／復号化の）処理済であるピクチャの動きベクトルから、basemvColを求める。
【００９７】
図８に示す例では、各Viewの符号化処理順は、P2,B0,B1,I5,B3,B4,...の順になる。図８に示す（１）〜（４）は、図４に示す（１）〜（４）と同様、ダイレクトベクトルの算出手順を示す。
【００９８】
基準ベクトル判定部１５９は、図８に示すcolPic（P5'）の同位置ブロックのベクトルが、視差ベクトルであるかを判定する。同位置ブロックのベクトルが、inter-view予測の視差ベクトル（iMV）であった場合（１）、基準ベクトル変更部１６０は、そのinter-view予測のiMVが参照するブロックiMBが動きベクトルを有するかを判定する。
【００９９】
基準ベクトル変更部１６０は、iMBがイントラ予測で動きベクトルを持たない場合、iMBを参照するブロックを、符号化済みピクチャから探す。図８に示すように、iMBを参照する動きベクトルをbmvとし、このbmvを有するブロックが他の動きベクトルを有する場合、この他の動きベクトルをfmvとする。
【０１００】
このとき、基準ベクトル変更部１６０は、動きベクトルbasemvColを次の式により求める（２）。
basemvCol＝fmv−bmv
また、iMBを参照する動きベクトルbmvを有するブロックが、他の動きベクトルを有さない場合、基準ベクトル変更部１６０は、時間比率でbasemvColを以下の式により求める（２）。
basemvCol＝−td／（td−tb）×bmv
【０１０１】
図８は、B４の動きベクトルを用いてbasemvColを求める例を示す。符号化対象ピクチャ(currPic)がB4'である場合には、B4のピクチャは（符号化／復号化の）処理済である。B4のピクチャが処理済でないと、そのピクチャで視点間参照を行う事はできないので、B4の動きベクトルは、計算済である。
【０１０２】
動きベクトルが計算済であるとすると、計算済の動きベクトルを１ピクチャ分動きベクトルメモリ１１２に蓄え記憶しておく。基準ベクトル変更部１６０は、記憶された動きベクトルの中から、iMBを参照先とする動きベクトルを求める。
【０１０３】
この動きベクトルが存在する場合に、基準ベクトル変更部１６０は、
・片方向(後方向)予測よりも両方向 (前方向、後方向) 予測の動きベクトルを優先度高く選択する、また、前方向予測の動きベクトルを優先度高く選択する、
・iMBと重なる面積の大きい動きベクトルを優先度高く選択する
などを行い。基準ベクトル変更部１６０は、求めた動きベクトルが両方向予測でfmv,bmvである場合や、後方向予測でbmvである場合でも、前述した式により求めることができる。
【０１０４】
基準ベクトル変更部１６０は、求めた動きベクトルbasemvColを符号化対象のMBの時間ダイレクトモードの基準ベクトルmvColとする（３）。
【０１０５】
ダイレクトベクトル計算部１６１は、基準ベクトルmvColに対しスケーリングを行うことで、ダイレクトベクトルmvL0、mvL1を算出する（４）。
【０１０６】
図８では、基準ベクトル変更部１６０が、B4の動きベクトルを用いる例を示したが、これは過去に処理済のピクチャであるB3の動きベクトルを用いてもよい。もし、iMBを参照先とする動きベクトルが存在しない場合には、基準ベクトル変更部１６０は、時間ダイレクトベクトルの計算を行わない。
【０１０７】
時間ダイレクトベクトルの計算を行わない場合、basemvColを0ベクトルとして、時間ダイレクトモードの計算を行う方法や、そのブロックだけ空間ダイレクトモードの計算に切り替えるなど、バリエーションはいくつか考えられる。
【０１０８】
以上をまとめると、実施例１では、動画像符号化装置１００は、以下の構成、機能を持つ。
・mvColの初期値は、従来同様colPicの現MBと同位置ブロックの持つベクトルとする。
・mvColがinter-view予測を示す場合は、時間差が０であるので時間配分のスケーリング処理ができない。しかし、inter-view予測の参照先のピクチャが、Base-Viewであれば、そのBase-Viewのピクチャは、同一視点内の時間方向の参照を行っているという点に着目する。
・inter-view予測の視差ベクトルをiMV、iMVの参照先のBase-Viewピクチャ内のブロックをiMBとする。iMBの位置は、後述する実施例２に示すように、符号化単位のブロック境界からずれる場合がほとんどであるが、一意に求めることができる。
・iMBをmvColの動きベクトルを求めるための候補ブロック位置とし、iMBを参照元としてBase-View内で時間方向の参照を行う動きベクトルを求める。iMBと重なる部分があるブロックのMV情報を用い、求めた動きベクトルを basemvColとする。
・basemvColを基準ベクトルmvColに変更する。
・求めた基準ベクトルmvColに対して、時間ダイレクトベクトルを計算する。
【０１０９】
＜動作＞
次に、実施例１における動画像符号化装置１００の動作について説明する。図９は、実施例１における符号化処理の一例を示すフローチャートである。図９に示す処理は、多視点動画像の符号化処理であり、非base-view側の双方向の符号化処理を示す。
【０１１０】
ステップＳ１０１で、基準ベクトル判定部１５９は、符号化対象ブロックの同位置ブロックが有するベクトルが視差ベクトルであるか（視点間参照を行っているか）を判定する。視点間の参照であれば（ステップＳ１０１−Ｙｅｓ）ステップＳ１０２に進み、同視点の参照であれば（ステップＳ１０１−Ｎｏ）ステップＳ１０４に進む。
【０１１１】
ステップＳ１０２で、基準ベクトル変更部１６０は、同位置ブロックが有する視差ベクトルが指し示すブロックのbasemvColを取得する。
【０１１２】
ステップＳ１０３で、ダイレクトベクトル計算部１６１は、基準ベクトルを用いて時間差でスケーリングを行い、ダイレクトベクトルmvL0、mvL1を算出する。
【０１１３】
ステップＳ１０４で、モード判定部１６２は、ダイレクトモードを含む複数の符号化モードの中で、符号化コストが最小となる符号化モードを選択する。
【０１１４】
ステップＳ１０５で、予測誤差生成部１５１、直行変換・量子化部１５２、可変長符号化部１５３は、選択された符号化モードによって符号化対象ブロックの符号化を行う。
【０１１５】
これにより、１MB分の符号化処理が終了する。時間ダイレクトモード以外の符号化処理は従来の符号化処理と同様である。
【０１１６】
以上、実施例１によれば、多視点動画像符号化処理において、inter-view予測で時間ダイレクトモードを使用し、符号化効率を上げることができる。
【０１１７】
［実施例２］
次に、実施例２における動画像符号化装置２００について説明する。実施例２では、同位置ブロックの視差ベクトルが参照するブロックiMBが、Base-Viewの符号化単位のブロック境界からずれる場合でも、基準ベクトルを求めることができる。
【０１１８】
＜構成＞
図１０は、実施例２における動画像符号化装置２００の構成の一例を示すブロック図である。図１０に示す構成で、図３に示す構成と同様のものは同じ符号を付し、その説明を省略する。
【０１１９】
統計情報取得部２０１は、Base-View符号化の統計情報を取得する。統計情報は、例えば、符号化ブロックを量子化した際のqＰ値（量子化スケール値）、差分有効係数の個数を含む。
【０１２０】
統計情報取得部２０１は、多視点の動画像の符号化として、非Base-View動画像を符号化処理する際には、同一時刻のBase-View動画像の符号化処理は完了済であるので、Base-View動画像の符号化統計情報を取得することができる。
【０１２１】
基準ベクトル変更部２０２は、視差ベクトルが参照するブロックiMBと重なる複数のブロックの動きベクトルに基づき、基準ベクトルを算出する。基準ベクトル変更部２０２は、必要に応じて、統計情報取得部２０１からiMBと重なるブロックの符号化時の統計情報を取得する。この場合の基準ベクトルの算出方法は複数あるので、以下に順に説明する。
【０１２２】
（基準ベクトルの算出方法１）
基準ベクトル変更部２０２は、iMBと重なる複数のブロックがある場合、各ブロックのうち、代表となる動きベクトルを選択し、基準ベクトルとする。基準ベクトル変更部２０２は、例えば、iMBの中心位置を含むブロック（重なる面積が一番大きいブロック）の動きベクトルを基準ベクトルとする。
【０１２３】
図１１は、iMBの中心位置を含むブロックを示す図である。図１１に示す例では、ブロックiMBは４つのブロックの領域にまたがる。
【０１２４】
ここで、非Base-Viewの同位置ブロック（MB又はサブブロック）の持つ視差ベクトル（iMV＝（x, y））の参照先は、Base-Viewピクチャ内のブロックiMBｂ２１とする。参照先ピクチャのMB（又はサブブロック）サイズはN×Mとする。
【０１２５】
このとき、視差ベクトル分だけ移動したブロックｂ２１は、領域ｂ２２〜２５の４つの領域にまたがる。それぞれの領域の面積（num_xi：横の長さ、num_yi：縦の長さ）は、
領域ｂ２５(num_x, num_y)
領域ｂ２４(N−num_x, num_y)
領域ｂ２３(num_x, M−num_y)
領域ｂ２２(N−num_x, M−num_y)
となる。
【０１２６】
基準ベクトル変更部２０２は、各領域の面積を求め、各面積の大小比較を行うことで、一番面積が大きい領域を含むブロックの動きベクトルを基準ベクトルとする。図１１に示す場合は、領域ｂ２５を含むブロックｂ２０の動きベクトルが基準ベクトルとなる。
【０１２７】
また、基準ベクトル変更部２０２は、ブロックiMBの中心位置ｃ１１を含むブロックｂ２０の動きベクトルを基準ベクトルとしてもよい。この場合、iMB（又はサブブロック）の中心位置ｃ１１（a,b）から、iMV＝（x,y）だけずれた（a+x, b+y）の位置を含むBase-View内のブロックｂ２０が一意に求まる。よって、基準ベクトル変更部２０２は、そのブロックｂ２０を符号化する際に用いた動きベクトルを基準ベクトルbasemvColとすればよい。
【０１２８】
（基準ベクトルの算出方法２）
基準ベクトル変更部２０２は、iMBと重なる複数のブロック（又はサブブロック）がある場合、重なる面積の大きさで各ブロックの動きベクトルを加重平均し、この加重平均された動きベクトルを基準ベクトルとする。以下では、面積を画素数に対応させて考える。
【０１２９】
図１２は、サブブロックがある場合の一例を示す図である。図１２に示す例では、同位置MB（又はサブブロック）の視差ベクトルをiMV[i] (=(x[i],y[i]))とする。また、同位置MBの左上画素のピクチャ内位置を（MBx, MBy）、同位置MB内の各サブブロックの中心画素に対するMBの左上画素からの位置のずれを（blk_x[i], blk_y[i]）とする。
【０１３０】
また、各サブブロックの水平・垂直サイズを（2×blk_size_x[i], 2×blk_size_y[i]）とする。よって、各サブブロックの大きさは、
左上を(MBx + blk_x[i] + x[i] ‐ blk_size_x[i], MBy + blk_y[i] + y[i] ‐ blk_size_y[i])、
右下を(MBx + blk_x[i] + x[i] + blk_size_x[i]-1, MBy + blk_y[i] + y[i] + blk_size_y[i]-1)
とする長方形となる。
【０１３１】
基準ベクトル変更部２０２は、この長方形ブロックに関して、refPicCol内のどのサブブロックの領域を何画素分含むかを計算する。refPicCol内のサブブロックは、上記の式と同様に記載すると、
左上を(MBx + blk_x[j] ‐ blk_size_x[j], MBy + blk_y[i] ‐ blk_size_y[j])、
右下を(MBx + blk_x[j] + blk_size_x[j]-1, MBy + blk_y[j] + blk_size_y[j]-1)
(0≦j＜MAX_MV_NUM_REFCOL: MAX_MV_NUM_REFCOLはrefPicCol内のcolMBの参照先MBのMBの分割数)とする。
【０１３２】
これは、動きベクトルを取り除いた形で表せるので、基準ベクトル変更部２０２は、サブブロックの大小関係を基に、サブブロックをrefPicCol内のサブブロック相当で分割して行く。
【０１３３】
図１３は、refPicCol内の参照サブブロックの一例を示す図である。図１３に示す例では、簡単の為に、colPicが参照するrefPicCol内の参照サブブロックを（LUx1, LUy1）−（RLx1, RLy1）、refPicCol内のサブブロックを（LUx2, LUy2）−（RLx2, RLy2）とする。
【０１３４】
refPicCol内の参照サブブロックは、以下の通りである。
（LUx1, LUy1）＝（MBx＋blk_x[j]−blk_size_x[j], MBy＋blk_y[i]−blk_size_y[j]）
（RLx1, RLy1）＝（MBx＋blk_x[j]＋blk_size_x[j]-1, MBy＋blk_y[j]＋blk_size_y[j]-1）
【０１３５】
refPicCol内のサブブロックは、以下の通りである。
（LUx2, LUy2）＝（MBx＋blk_x[k]−blk_size_x[k], MBy＋blk_y[k]−blk_size_y[k]）
（RLx2, RLy2）＝（MBx＋blk_x[k]＋blk_size_x[k]-1, MBy＋blk_y[k]＋blk_size_y[k]-1）
【０１３６】
説明を簡単にするため、水平成分、垂直成分を分けて説明した。説明した内容は、ブロックｂ３１の左上端、右下端の水平成分の２点と、ブロックｂ３２の左上端、右下端の水平成分の２点の計４点の位置関係によって、重なる水平画素の数（num_x）が求められる。
【０１３７】
水平成分を垂直成分に変更すると、重なる垂直画素の数（num_y）が求められる。ブロック（参照ブロック）ｂ３１が、符号化のブロックとずれると、複数のブロックと重なりを持つので、基準ベクトル変更部２０２は、数回、重なり判定を行う事になる。
【０１３８】
基準ベクトル変更部２０２は、以下の式で、refPicColのサブブロック毎に含まれる参照サブブロックの画素数（面積に相当）を求める。
水平成分の画素数
if (RLx2 < LUx1 || LUx2 > RLx1) {
num_x = 0;
} else if (LUx2 < LUx1) {
if (RLx2 < RLx1) {
num_x = RLx2 - LUx1;
} else {
num_x = RLx1 - LUx1;
}
} else {
if (RLx2 < RLx1) {
num_x = RLx2 ‐ Lux2;
} else {
num_x = RLx1 ‐ Lux2;
}
}
【０１３９】
垂直方向の画素数
if (RLy2 < LUy1 || LUy2 > RLy1) {
num_y = 0;
} else if (LUy2 < LUy1) {
if (RLy2 < RLy1) {
num_y = RLy2 - LUy1;
} else {
num_y = RLy1 - LUy1;
}
} else {
if (RLy2 < RLy1) {
num_y = RLy2 ‐ LUy2;
} else {
num_y = RLy1 ‐ LUy2;
}
}
【０１４０】
基準ベクトル変更部２０２は、求めたnum_xとnum_yを乗算すると、refPicCol内のサブブロック内に含まれる参照サブブロックの画素数となる。
【０１４１】
参照サブブロックのサイズの最大値はMBサイズであり、参照サブブロックの左上画素位置は、refPicCol内のいずれかのMBに含まれる。そのMBをMBluとすると、前述した計算は、最大でもMBluとMBluの右隣MB、MBluの下MB、MBluの下右MBの４MBで行えばよい。
【０１４２】
基準ベクトル変更部２０２は、動きベクトルの重み付き平均として、basemvColを以下の式により算出する。
【０１４３】
【数１】
0005747559.tif 000002
【０１４４】
これにより、基準ベクトル変更部２０２は、重なる領域の画素数に比例した加重平均のbasemvColを求めることができる。
【０１４５】
また、基準ベクトル変更部２０２は、重なる領域の画素数に重み係数Kを乗算して評価値を求め、評価値に応じてbasemvColを算出してもよい。このときの算出方法を以下に示す。
【０１４６】
【数２】
0005747559.tif 000003
K：重み係数
Costxyi：評価値
【０１４７】
これにより、基準ベクトル変更部２０２は、評価値に応じた各ブロックの平均ベクトルを求め、この平均ベクトルを基準ベクトルbasemvColとすることができる。
【０１４８】
（基準ベクトルの算出方法３）
基準ベクトル変更部２０２は、視差ベクトルiMBと重なる複数のブロック（又はサブブロック）がある場合、重なる面積の大きさや符号化時の統計情報で各ブロックの信頼度を算出し、この信頼度で加重平均された動きベクトルを基準ベクトルとする。
【０１４９】
基準ベクトル変更部２０２は、iMBと重なる複数のブロック（例えば図１１に示すブロックｂ２２〜２５）の符号化時の統計情報を、統計情報取得部２０１から取得する。統計情報は、例えば、qＰ値（量子化スケール値）、差分有効係数の個数である。
【０１５０】
基準ベクトル変更部２０２は、iMBと重なるブロックの面積の大きさ、各ブロックのqP値（量子化スケール値）、及び差分有効係数の個数により信頼度を算出する。基準ベクトル変更部２０２は、この信頼度に基づき各ブロックの動きベクトルの重みづけを行う。
【０１５１】
例えば、符号化に用いた差分有効係数の個数や成分の絶対値が小さければ、そのブロックの予測はより適切に当たっていると判断できる。また、差分有効係数が同程度であれば、使用したqP値が小さい方がより差分は小さく、予測が当たっていると判断できる。
【０１５２】
この考えに基づき、信頼度は、例えば、以下の式により算出される。
【０１５３】
【数３】
0005747559.tif 000004
Confixyi：信頼度
qPi：qP値
numCoefi：差分有効係数の数
α（０≦α≦１）：画素数に対する重み係数
β（０≦β≦１）：qＰ値に対する重み係数
γ（０≦γ≦１）：有効係数の数に対する重み係数
各重み係数は、例えば、α＝０．３、β＝０．７、γ＝０．２とするが、この値は、実験などにより適切な値が設定されればよい。
【０１５４】
基準ベクトル変更部２０２は、信頼度に応じて各ブロックの平均ベクトルを求め、この平均ベクトルを基準ベクトルbasemvColとする。基準ベクトルは、例えば以下の式により求められる。
【０１５５】
【数４】
0005747559.tif 000005
【０１５６】
これにより、基準ベクトル変更部２０２は、各ブロックの信頼度に応じて各ブロックの平均ベクトルを求め、この平均ベクトルを基準ベクトルbasemvColとすることができる。
【０１５７】
基準ベクトル変更部２０２は、前述した複数の基準ベクトルの算出方法のうち、いずれかの算出方法を予め設定しておけばよい。
【０１５８】
＜動作＞
次に、実施例２における動画像符号化装置２００の動作について説明する。図１４は、実施例２における基準ベクトルの算出処理の一例を示すフローチャートである。
【０１５９】
図１４に示すステップＳ２０１で、基準ベクトル変更部２０２は、mvCol_[n]が視点間の参照を行っているか（視差ベクトルを有するか）を判定する。視点間の参照であれば（ステップＳ２０１−Ｙｅｓ）ステップＳ２０３に進み、同視点の参照であれば（ステップＳ２０１−Ｎｏ）ステップＳ２０２に進む。
【０１６０】
ステップＳ２０２で、基準ベクトル変更部２０２は、読み出されたmvCol_[n]を基準ベクトルとして使用する。このとき、基準ベクトル判定部１５９は、動きベクトルメモリ１６３から読み出したmvColを全て基準ベクトル変更部２０２に出力するようにしておけばよい。
【０１６１】
ステップＳ２０３で、基準ベクトル変更部２０２は、mvColが視点間予測で参照する参照先領域iMBと、参照先ピクチャの符号化ブロックの重なりを算出する。
【０１６２】
ステップＳ２０４で、基準ベクトル変更部２０３は、代表ベクトルを選択する設定がなされているかを判定する。代表ベクトルを選択する設定であれば（ステップＳ２０４−Ｙｅｓ）ステップＳ２０５に進み、代表ベクトルを選択しない設定であれば（ステップＳ２０４−Ｎｏ）ステップＳ２０６に進む。
【０１６３】
ステップＳ２０５で、基準ベクトル変更部２０２は、iMBの中心座標を含むサブブロックの動きベクトルを基準ベクトルとする。
【０１６４】
ステップＳ２０６で、基準ベクトル変更部２０２は、iMBと重なるサブブロックの符号化時の統計情報を、統計情報取得部２０１から取得する。
【０１６５】
ステップＳ２０７で、基準ベクトル変更部２０２は、iMBと重なるサブブロックの動きベクトルを、サブブロックの面積、又はサブブロックの面積及び符号化時の統計情報に基づく信頼度に応じて加重平均し、この平均動きベクトルを基準ベクトルとする。
【０１６６】
ステップＳ２０８で、基準ベクトル変更部２０２は、同位置ブロックのサブブロック数分処理したかを判定する。サブブロック数分処理していれば（ステップＳ２０８−Ｙｅｓ）この算出処理を終了し、サブブロック数分処理していなければ（ステップＳ２０８−Ｎｏ）ステップＳ２０１に戻る。
【０１６７】
これにより、基準ベクトル変更部２０２は、視差間参照を行う場合でも、時間ダイレクトモードを使用することができ、適切な基準ベクトルを用いることができる。
【０１６８】
図１５は、iMBと重なるサブブロックの面積を計算する処理の一例を示すフローチャートである。図１５に示すステップＳ３０１で、基準ベクトル変更部２０２は、colPicの同位置MBに対し、サブブロックの位置を決定する。
【０１６９】
ステップＳ３０２で、基準ベクトル変更部２０２は、サブブロックを視差ベクトル分移動させ、そのブロックの左上画素からrefPicCol内のMBの位置を決定する。refPicColは、視差ベクトルが参照するBase-Viewの参照先ピクチャである。
【０１７０】
ステップＳ３０３で、基準ベクトル変更部２０２は、refPicCol内のMBのサブブロック単位毎に面積（num_x×num_y）を計算する。
【０１７１】
ステップＳ３０４で、基準ベクトル変更部２０２は、refPicCol内のMBのMB分割数に達したかを判定する。MB分割数に達していれば（ステップＳ３０４−Ｙｅｓ）ステップＳ３０６に進み、MB分割数に達していなければ（ステップＳ３０４−Ｎｏ）ステップＳ３０５に進む。
【０１７２】
ステップＳ３０５で、基準ベクトル変更部２０２は、refPicColのサブブロックの位置を変更する。ステップＳ３０５の処理後、ステップＳ３０３に戻る。
【０１７３】
ステップＳ３０６で、基準ベクトル変更部２０２は、refPicCol内のMB位置変更数に達したかを判定する。MB位置変更数に達していれば（ステップＳ３０６−Ｙｅｓ）ステップＳ３０８に進み、MB位置変更数に達していなければ（ステップＳ３０６−Ｎｏ）ステップＳ３０７に進む。MB位置変更数は、例えば３（右、下、右下）である。
【０１７４】
ステップＳ３０７で、基準ベクトル変更部２０２は、refPicCol内のMBの位置を変更する。例えば、右、下、右下の順に位置を変更する。ステップＳ３０７の処理後、ステップＳ３０３に戻る。
【０１７５】
ステップＳ３０８で、基準ベクトル変更部２０２は、colPicの同位置MBの分割数に達したかを判定する。同位置MBの分割数に達していれば（ステップＳ３０８−Ｙｅｓ）この面積算出処理を終了し、分割数に達していなければ（ステップＳ３０８−Ｎｏ）ステップＳ３０１に戻る。同位置MBの分割数は、例えば、同位置MBのサブブロック数である。
【０１７６】
以上、実施例２によれば、同位置ブロックの視差ベクトルが参照するブロックiMBが、Base-Viewの符号化単位のブロック境界からずれる場合でも、適切な基準ベクトルを求めることができる。
【０１７７】
なお、実施例１、２において、基準ベクトルが画面外をさす場合もあり得る。MPEG-4以降の画像符号化では、画面外参照も可能であるので、求めた動きベクトルが画面外参照を指す場合は、符号化方式に従って計算を行う。
【０１７８】
例えば、画面の上側及び／又は下側を超える場合には同一水平位置の画面の最上画素及び／又は最下画素を繰り返した画素を用いる。また、左側及び／又は右側を超える場合には同一垂直位置の、最左画素及び／又は最右画素を繰り返した画素を用いる。
【０１７９】
画面の水平も垂直も画面参照外の場合、つまり画面の左上側、左下側、右上側、右下側を超えた場合には、画面の最左上側、最左下側、最右上側、最右下側の画素を繰り返した画素を用いる。この様にして作成したブロックを用いて動きベクトル演算、画像符号化演算を行う。
【０１８０】
［実施例３］
次に、実施例３における動画像復号装置３００について説明する。実施例３では、実施例１又は２における動画像符号化装置により符号化されたビットストリームに対して復号処理を行う。
【０１８１】
＜構成＞
図１６は、実施例３における動画像復号装置３００の構成の一例を示すブロック図である。図１６に示す動画像復号装置３００は、Base-Viewのビットストリーム（入力０）を復号するため、可変長復号部３０１、逆直交変換・逆量子化部３０２、予測モード判定部３０３、基準ダイレクト読出し部３０４、ダイレクトベクトル計算部３０５を備える。また、動画像復号装置３００は、動きベクトル読込み部３０６、イントラ予測部３０７、動きベクトルメモリ３０８、動き補償部３０９、復号画像生成部３１０、フレームメモリ３１１を備える。
【０１８２】
また、動画像復号装置３００は、非Base-Viewの符号化されたビットストリーム（入力１）を復号するため、可変長復号部３５１、逆直交変換・逆量子化部３５２、予測モード判定部３５３、基準ダイレクト判定部３５４、基準ダイレクト変更部３５５を備える。また、動画像復号装置３００は、ダイレクトベクトル計算部３５６、動きベクトル読込み部３５７、イントラ予測部３５８、動きベクトルメモリ３５９、動き補償部３６０、復号画像生成部３６１、フレームメモリ３６２を備える。復号処理は、基本的には符号化処理の逆の処理を行えばよい。
【０１８３】
（Base-View）
可変長復号部３０１は、Base-View側のビットストリームが入力されると、動画像符号化装置の可変長符号化に対応する可変長復号を行う。可変長復号部３０１により復号された予測誤差信号などは逆直行変換・逆量子化部３０２に出力される。復号されるデータは、SPS(シーケンスヘッダ)やPPS(ピクチャヘッダ)等の各種ヘッダー情報と、ピクチャ内のMB毎の、予測モードや動きベクトル、差分係数情報のデータ等である。
【０１８４】
逆直交変換・逆量子化部３０２は、可変長復号部３０１からの出力信号に対して逆量子化処理を行う。逆直交変換・逆量子化部３０２は、逆量子化された出力信号に対して逆直交変換処理を行い、残差信号を生成する。残差信号は復号画像生成部３１０に出力される。
【０１８５】
予測モード判定部３０３は、MB毎に、フレーム内符号化、前方向予測符号化、後方向予測符号化、双方向予測符号化、ダイレクトモードの何れの予測モードが使われているかを読込み判定する。実際には、ブロック分割サイズ等も、この予測モードの中に含まれている。
【０１８６】
MBの予測モードが決まると、予測モードに応じた復号処理が行われる。フレーム内符号化の場合は、イントラ予測部３０７は、イントラ予測のモードを読込み、イントラ予測を行う。
【０１８７】
前方向、後方向、双方向のフレーム間予測の場合、動きベクトル読込み部３０６は、動きベクトル情報を復号されたビットストリームから読み込む。
【０１８８】
ダイレクトモードの場合、基準ベクトル読出し部３０４は、復号済のcolPicの復号処理で蓄積された動きベクトルメモリ３０８の中から、動きベクトルmvColを読み出す。
【０１８９】
ダイレクトベクトル計算部３０５は、mvColに対してスケーリングを行ってダイレクトベクトルを計算する。
【０１９０】
動き補償部３０９は、ダイレクトベクトル計算部３０５により計算されたダイレクトベクトル、又は動きベクトル読込み部３０６により読み込まれた動きベクトルと、フレームメモリ３１１から取得した参照画像に基づいて動き補償を行う。
【０１９１】
復号画像生成部３１０は、イントラ予測部３０７又は動き補償部３０９から出力される予測画像と、逆直交変換・逆量子化部３０２から出力される残差信号とを加算し、復号画像を生成する。生成された復号画像は表示部に表示されたり、フレームメモリ３１１に出力されたりする。
【０１９２】
統計情報取得部３１２は、復号されたビットストリームからMB毎にqP値や差分有効係数の個数などの符号化時の統計情報を取得する。なお、統計情報が必要なのは、実施例２の基準ベクトルの算出方法３の場合のみである。
【０１９３】
（非Base-View）
可変長復号部３５１は、Base-View側のビットストリームが入力されると、動画像符号化装置の可変長符号化に対応する可変長復号を行う。可変長復号部３５１により復号された予測誤差信号などは逆直行変換・逆量子化部３５２に出力される。
【０１９４】
逆直交変換・逆量子化部３５２は、可変長復号部３５１からの出力信号に対して逆量子化処理を行う。逆直交変換・逆量子化部３５２は、逆量子化された出力信号に対して逆直交変換処理を行い、残差信号を生成する。残差信号は復号画像生成部３６１に出力される。
【０１９５】
予測モード判定部３５３は、MB毎に、フレーム内符号化、前方向予測符号化、後方向予測符号化、双方向予測符号化、ダイレクトモードの何れの予測モードが使われているかを読込む。実際には、ブロック分割サイズ等も、この予測モードの中に含まれている。
【０１９６】
MBの予測モードが決まると、予測モードに応じた復号処理が行われる。フレーム内符号化の場合は、イントラ予測部３５８は、イントラ予測のモードを読込み、イントラ予測を行う。
【０１９７】
前方向、後方向、双方向のフレーム間予測の場合、動きベクトル読込み部３５７は、動きベクトル情報を復号されたビットストリームから読み込む。
【０１９８】
ダイレクトモードの場合、基準ベクトル判定部３５４は、復号済のcolPicの復号処理で蓄積された動きベクトルメモリ３０８の中から、動きベクトルmvColを読み出す。このとき、基準ベクトル判定部３５４は、動きベクトルmvColが視点間参照であるか（視差ベクトルであるか）を判定する。これは、参照先のピクチャインデックスにより判断できる。参照先のピクチャインデックスが他視点のピクチャを示す場合は、視点間参照となる。
【０１９９】
基準ベクトル判定部３５４は、視点間参照の場合に動きベクトルと参照先ピクチャを基準ベクトル変更部３５５に出力し、同視点参照の場合は動きベクトルを基準ベクトル変更部３５５に出力する。
【０２００】
基準ベクトル変更部３５５は、符号化装置で処理した内容と同じ処理を行う。例えば、基準ベクトル変更部３５５は、iMBと重なるブロックの動きベクトルを基準ベクトルとする。また、基準ベクトル変更部３５５は、iMBと重なるブロックが複数ある場合は、iMBの中心位置を含むブロックの動きベクトルを取得したり、各ブロックの面積で動きベクトルを重み付けたりする。これにより、求められた動きベクトルが基準ベクトルとなる。
【０２０１】
基準ベクトル変更部３５５は、符号時に、統計情報を用いて基準ベクトルを算出している場合は、統計情報取得部３１２から統計情報を取得し、統計情報に基づいて基準ベクトルを算出する。
【０２０２】
ダイレクトベクトル計算部３５６は、mvColに対してスケーリングを行ってダイレクトベクトルを計算する。
【０２０３】
動き補償部３６０は、ダイレクトベクトル計算部３５６により計算されたダイレクトベクトル、又は動きベクトル読込み部３５７により読み込まれた動きベクトルと、フレームメモリ３６２から取得した参照画像に基づいて動き補償を行う。
【０２０４】
復号画像生成部３６１は、イントラ予測部３５８又は動き補償部３６０から出力される予測画像と、逆直交変換・逆量子化部３５２から出力される残差信号とを加算し、復号画像を生成する。生成された復号画像は表示部に表示されたり、フレームメモリ３６２に出力されたりする。
【０２０５】
これにより、各実施例の動画像符号化装置と同様の基準ベクトル変更処理を行うことで、符号化で生成されたビットストリームを復号することが可能となる。
【０２０６】
＜動作＞
次に、実施例３における動画像復号装置３００の動作について説明する。図１７は、実施例３における復号処理の一例を示すフローチャートである。図１７に示す処理は、復号対象のブロックが、ダイレクトモードで符号化されていたときの復号処理の例を示す。
【０２０７】
図１７に示すステップＳ４０１で、基準ベクトル判定部３５４は、復号対象ブロックに対する時間ダイレクトモードの基準となるピクチャ（colPic）の同位置ブロックが有するベクトルが視差ベクトルであるか（視点間参照を行っているか）を判定する。視点間の参照であれば（ステップＳ４０１−Ｙｅｓ）ステップＳ４０２に進み、同視点の参照であれば（ステップＳ４０１−Ｎｏ）ステップＳ４０３に進む。
【０２０８】
ステップＳ４０２で、基準ベクトル変更部３５５は、同位置ブロックが有する視差ベクトルの参照先のブロックの動きベクトルに基づいてbasemvColを算出する。この算出方法は、符号化時の基準ベクトルの算出方法と同じである。
【０２０９】
ステップＳ４０３で、基準ベクトル変更部３５５は、同位置ブロックのmvColをbasemvColとする。
【０２１０】
ステップＳ４０４で、ダイレクトベクトル計算部３５６は、基準ベクトルを用いて時間差でスケーリングを行い、ダイレクトベクトルmvL0、mvL1を算出する。
【０２１１】
ステップＳ４０５で、動き補償部３６０、復号画像生成部３６１などは、復号対象MBの復号処理を行う。
【０２１２】
これにより、１MB分の復号処理が終了する。時間ダイレクトモード以外の復号処理は従来の復号処理と同様である。
【０２１３】
以上、実施例３によれば、inter-view予測で時間ダイレクトモードが用いられたとしても、動画像符号化装置と同様の基準ベクトル変更処理を行うことで、実施例１や２の動画像符号化装置で生成されたビットストリームを復号することが可能となる。
【０２１４】
＜シンタックス＞
現在、H.264の多視点動画像符号化としては、「colPic内にinter-view予測を指すブロックが存在する場合には、ダイレクトモードは空間ダイレクトモード固定でなければならない。」と規定されている。つまり、この場合、時間ダイレクトモードの定義がなされていない。
【０２１５】
本実施例では、inter-view予測の場合に他視点(Base-View)の動きベクトルから計算により時間ダイレクトモードの基準ベクトルを求め、時間ダイレクトベクトルの計算を行う。よって、本実施例のシンタックスは、従来のものと同様のものを使用可能である。
【０２１６】
時間ダイレクトモードか否かは、Slice Headerに存在する、「direct_spatial_mv_pred_flag」によって決定される。図１８は、Slice Headerの例を示す図である。図１８に示す「direct_spatial_mv_pred_flag」が0なら時間ダイレクトモード、「direct_spatial_mv_pred_flag」が1なら空間ダイレクトモードを示す。
【０２１７】
計算により算出されるダイレクトモードの動きベクトル、mvCol,basemvCol,mvL0,mvL1などは、符号化シンタックス上には含まれない。よって、符号化シンタックスは、従来と変わらずに本実施例を適用することができる。
【０２１８】
［実施例４］
図１９は、画像処理装置４００の構成の一例を示す図である。画像処理装置４００は、実施例で説明した動画像符号化装置、又は動画像復号装置の一例である。図１９に示すように、画像処理装置４００は、制御部４０１、主記憶部４０２、補助記憶部４０３、ドライブ装置４０４、ネットワークＩ／Ｆ部４０６、入力部４０７、表示部４０８を含む。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【０２１９】
制御部４０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵである。また、制御部４０１は、主記憶部４０２や補助記憶部４０３に記憶されたプログラムを実行する演算装置であり、入力部４０７や記憶装置からデータを受け取り、演算、加工した上で、表示部４０８や記憶装置などに出力する。
【０２２０】
主記憶部４０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部４０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【０２２１】
補助記憶部４０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【０２２２】
ドライブ装置４０４は、記録媒体４０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【０２２３】
また、記録媒体４０５に、所定のプログラムを格納し、この記録媒体４０５に格納されたプログラムはドライブ装置４０４を介して画像処理装置４００にインストールされる。インストールされた所定のプログラムは、画像処理装置４００により実行可能となる。
【０２２４】
ネットワークＩ／Ｆ部４０６は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介して接続された通信機能を有する周辺機器と画像処理装置４００とのインターフェースである。
【０２２５】
入力部４０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部４０８の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部４０７は、ユーザが制御部４０１に操作指示を与えたり、データを入力したりするためのユーザインターフェースである。
【０２２６】
表示部４０８は、ＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display）等により構成され、制御部４０１から入力される表示データに応じた表示が行われる。
【０２２７】
このように、前述した実施例で説明した動画像符号化処理又は動画像復号処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、前述した画像符号化処理又は画像復号処理を実現することができる。
【０２２８】
また、このプログラムを記録媒体４０５に記録し、このプログラムが記録された記録媒体４０５をコンピュータや携帯端末に読み取らせて、前述した画像符号化処理又は画像復号処理を実現させることも可能である。なお、記録媒体４０５は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。また、前述した各実施例で説明した画像符号化処理又は画像復号処理は、１つ又は複数の集積回路に実装してもよい。
【０２２９】
実施例では、２視点の立体映像であるステレオ立体視対応の符号化方法／復号方法に関して説明してきたが、３視点以上の多眼映像の場合であっても、基本的に考え方は同じである。よって、視点間参照を行うピクチャにおいて、視点間参照予測を行う場合でも、そのブロックの時間ダイレクトモードの基準ベクトルをその参照先のピクチャ内の動きベクトルから生成する。これにより、inter-view予測の場合でも時間ダイレクトモードを用いることができる。視点間参照先のブロックが、更に視点間参照を行っていた場合も同様の考えで時間ダイレクトモードの基準ベクトルを生成することができる。
【０２３０】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記変形例以外にも種々の変形及び変更が可能である。
【０２３１】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
多視点動画像の符号化データを復号する動画像復号方法であって、
復号対象ブロックが時間ダイレクトモードで符号化されている場合、前記復号対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するかを判定し、
前記同位置ブロックが前記視差ベクトルを有する場合、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記復号対象ブロックの動きベクトルを算出し、
算出された動きベクトルを用いて前記復号対象ブロックを復号する動画像復号方法。
（付記２）
前記動きベクトルを算出する場合、
前記視差ベクトルが参照する他視点のブロックが複数のブロックの領域を含むとき、前記複数のブロックが有する動きベクトルに基づく所定の動きベクトルを用いる付記１記載の動画像復号方法。
（付記３）
前記所定の動きベクトルは、
前記他視点のブロックの中心位置を含むブロックの動きベクトルである付記２記載の動画像復号方法。
（付記４）
前記所定の動きベクトルは、
前記複数のブロックの各動きベクトルに対し、前記他視点のブロックに含まれる前記複数のブロックの領域の大きさに応じて加重平均した動きベクトルである付記２記載の動画像復号方法。
（付記５）
前記複数のブロックの各ブロックを符号化するときに用いた量子化スケール、差分係数の大きさ及び個数を含む統計情報を取得し、
前記所定の動きベクトルは、
前記複数のブロックの各動きベクトルに対し、前記各ブロックの統計情報を用いて判定した各ブロックの信頼度に応じて加重平均した動きベクトルである付記２記載の動画像復号方法。
（付記６）
前記動きベクトルを算出する場合、
前記視差ベクトルが参照する他視点のブロックに動きベクトルがない場合、前記他視点のブロックを参照する動きベクトルを用いる付記１記載の動画像復号方法。
（付記７）
前記動きベクトルを算出する場合、
前記視差ベクトルが参照する他視点のブロックに動きベクトルが複数ある場合、前方向の動きベクトルを優先して用いる付記１記載の動画像復号方法。
（付記８）
多視点動画像の符号化を行う動画像符号化方法であって、
符号化対象ブロックを時間ダイレクトモードで符号化する場合、前記符号化対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するとき、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記符号化対象ブロックの動きベクトルを算出し、
算出された動きベクトルを用いて前記符号化対象ブロックを符号化する動画像符号化方法。
（付記９）
多視点動画像の符号化データを復号する動画像復号装置であって、
復号対象ブロックが時間ダイレクトモードで符号化されている場合、前記復号対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するかを判定する判定部と、
前記同位置ブロックが前記視差ベクトルを有する場合、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記復号対象ブロックの動きベクトルを算出する算出部と、
算出された動きベクトルを用いて前記復号対象ブロックを復号する復号部と、
を備える動画像復号装置。
（付記１０）
多視点動画像の符号化データを復号する動画像復号プログラムであって、
復号対象ブロックが時間ダイレクトモードで符号化されている場合、前記復号対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するかを判定し、
前記同位置ブロックが前記視差ベクトルを有する場合、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記復号対象ブロックの動きベクトルを算出し、
算出された動きベクトルを用いて前記復号対象ブロックを復号する、
処理をコンピュータに実行させるための動画像復号プログラム。
（付記１１）
多視点動画像の符号化を行う動画像符号化プログラムであって、
符号化対象ブロックを時間ダイレクトモードで符号化する場合、前記符号化対象ブロックに対する時間ダイレクトモードの基準となるピクチャの同位置ブロックが他視点のブロックを参照する視差ベクトルを有するとき、前記視差ベクトルが参照する他視点のブロックが有する動きベクトルを用いて、前記符号化対象ブロックの動きベクトルを算出し、
算出された動きベクトルを用いて前記符号化対象ブロックを符号化する、
処理をコンピュータに実行させるための動画像符号化プログラム。
【符号の説明】
【０２３２】
１０９  基準ダイレクト読出し部
１１０、１６１  ダイレクトベクトル計算部
１１１、１６２  モード判定部
１１２、１６３  動きベクトルメモリ
１５９  基準ベクトル判定部
１６０、２０２  基準ベクトル変更部
２０１  統計情報取得部
３０３、３５３  予測モード判定部
３０４  基準ベクトル読出し部
３０５、３５６  ダイレクトベクトル計算部
３０８、３５９  動きベクトルメモリ
３５４  基準ベクトル判定部
３５５  基準ベクトル変更部
【図１】
0005747559.tif 000006
【図２】
0005747559.tif 000007
【図３】
0005747559.tif 000008
【図４】
0005747559.tif 000009
【図５】
0005747559.tif 000010
【図６】
0005747559.tif 000011
【図７】
0005747559.tif 000012
【図８】
0005747559.tif 000013
【図９】
0005747559.tif 000014
【図１０】
0005747559.tif 000015
【図１１】
0005747559.tif 000016
【図１２】
0005747559.tif 000017
【図１３】
0005747559.tif 000018
【図１４】
0005747559.tif 000019
【図１５】
0005747559.tif 000020
【図１６】
0005747559.tif 000021
【図１７】
0005747559.tif 000022
【図１８】
0005747559.tif 000023
【図１９】
0005747559.tif 000024