[第1の実施形態]
以下、図面を参照して、本発明の第1の実施形態について説明する。図1は、本実施形態による画像伝送システム10の構成を示す概略ブロック図である。画像伝送システム10は、複数の視点画像を符号化して伝送し、伝送先において、これらを用いた画像の表示を行うシステムである。図1に示すように、画像伝送システム10は、画像符号化装置100、ネットワーク200、画像復号装置300、画像表示装置400を含んで構成される。本実施形態では、予測ベクトルを生成する際に、参照するDV−MCPブロックを制限することで、画像符号化装置100および画像復号装置300における予測パラメータを記憶するためのメモリ容量を抑えている。
画像符号化装置100は、複数の視点画像(テクスチャ画像ともいう)T各々を符号化し、視点画像T各々の符号化ストリームTeを生成する。なお、画像符号化装置100は、複数の視点画像Tのうち、少なくとも一つを基準視点画像(ベースビュー(Base view)ともいう)として符号化し、それら以外を非基準視点画像(ノンベースビュー(Non base view)ともいう)として符号化する。なお、基準視点画像とは、符号化の際に視差予測を用いることができない視点画像であり、非基準視点画像とは、符号化の際に視差予測を用いることができる視点画像のことである。視点画像は、特定の視点からの動画像であり、各時刻における画像であるピクチャから構成される。
ネットワーク200は、これらの符号化ストリームTeを、画像復号装置300に伝送する、IP(Internet Protocol)ネットワーク、ケーブルテレビ網などのネットワークである。なお、符号化ストリームTeは、本実施形態のようにネットワークにより伝送されてもよいが、地上デジタル放送、衛星放送などの放送波により伝送されてもよいし、DVD(Digital Versatile Disc)、ブルーレイ(Blu-ray(登録商標))などの記録媒体により伝送されてもよい。
画像復号装置300は、ネットワーク200が伝送した符号化ストリームTeを復号し、復号視点画像Tdを生成する。画像表示装置400は、画像復号装置300が生成した復号視点画像Tdを用いて、画像を生成する。画像表示装置400は、画像を表示するための液晶ディスプレイや、有機EL(electroluminescence)ディスプレイなどの表示デバイスを備える。なお、画像表示装置400が表示する画像は、2次元画像であってもよいし、立体画像であってもよい。
図2は、符号化ツリーブロックを説明する図である。図2に示すように、画像符号化装置100は、ピクチャpicを、64画素×64画素の符号化ツリーブロック(Coding Tree Block)CTB11、CTB12、・・・、CTBMNに分割して符号化する。また、画像復号装置300は、符号化ツリーブロック(Coding Tree Block)CTB11、CTB12、・・・、CTBMN各々を復号して、つなぎ合わせることで、ピクチャpicを得る。符号化処理する順と復号処理する順は、同一であり、図2の矢印arwに示すような、以下の順である。最初に処理するのは、ピクチャpicの左上端の符号化ツリーブロックCTB11である。次は、符号化ツリーブロックCTB11の右隣の符号化ツリーブロックCTB12である。続いて、右端の符号化ツリーブロックCTB1Nに到達するまで、順次、処理した符号化ツリーブロックの右隣の符号化ツリーブロックを処理する。
符号化ツリーブロックCTB11〜CTB1Nを処理したら、1段下の符号化ツリーブロックCTB21〜CTB2Nを、左端から順に処理する。同様に、符号化ツリーブロックCTB21〜CTB2Nを処理したら、1段下の符号化ツリーブロックCTB31〜CTB3Nを、左端から順に処理する。このように、ピクチャpicの最下段の符号化ツリーブロックCTBM1〜CTBMNを処理するまで、各段の符号化ツリーブロックを処理する。
図3は、符号化ツリーブロックの予測ユニットへの分割例を示す図である。画像符号化装置100は、各符号化ツリーブロックを、64画素×64画素、32画素×32画素、16画素×16画素、8画素×8画素のいずれかの大きさの符号化ユニット(Coding Unit)に分割する。さらに、各符号化ユニットを、予め決められた複数のパターンの中のいずれかを用いて、予測ユニットに分割する。
予測ユニットは、画像符号化装置100および画像復号装置300が予測画像を生成する単位である。したがって、予測ユニットは、画像符号化装置100および画像復号装置300が動きベクトルや視差ベクトル(変位ベクトル)を取得する単位でもある。図3に示す例では、符号化ツリーブロックCTB1は、予測ユニットPU1〜PU21に分割されている。予測ユニットの形状で、最も小さな横幅は、例えば、予測ユニットPU18、PU19などの4画素である。また、予測ユニットの形状で、最も小さな高さも、例えば、予測ユニットPU8、PU9、PU21などの4画素である。
図4は、画像復号装置300の構成を示す概略ブロック図である。図4に示すように、画像復号装置300は、エントロピー復号部301、逆量子化・逆DCT(Discrete Cosine Transform;離散コサイン変換)変換部302、加算部303、予測パラメータ復号部304、予測画像生成部305、参照画像メモリ306を含んで構成される。また、予測パラメータ復号部304は、インター予測パラメータ復号部341(予測ベクトル生成装置)、イントラ予測パラメータ復号部342を含んで構成される。予測画像生成部305は、インター予測画像生成部351、イントラ予測画像生成部352を含んで構成される。参照画像メモリ306は、画像メモリ361、予測パラメータメモリ362を含んで構成される。
エントロピー復号部301は、符号化ストリームTeをエントロピー復号する。エントロピー復号部301は、エントロピー復号により得られた量子化係数を、逆量子化・逆DCT変換部302に入力し、伝送予測パラメータtpを予測パラメータ復号部304に入力し、予測モードpredModeを予測画像生成部305に入力する。なお、伝送予測パラメータtpとは、符号化ストリームTeに含めて画像符号化装置100から画像復号装置300に伝送される予測パラメータである。予測パラメータとは、視点画像Tを分割した予測ユニットの予測画像を生成するためのパラメータである。また、予測モードpredModeは、伝送予測パラメータtpの一種であり、各予測ユニットの予測画像を生成するための予測モードを指定する情報である。本実施形態では、一例として、予測モードpredModeとして、インター予測と、イントラ予測とがある場合を説明するが、その他のモード、例えば、スキップモードを有していてもよい。
逆量子化・逆DCT変換部302は、量子化係数を逆量子化して、DCT係数を得る。逆量子化・逆DCT変換部302は、DCT係数を逆DCT変換して、差分画像を生成する。加算部303は、予測画像生成部305が生成した予測画像Pと、逆量子化・逆DCT変換部302が生成した差分画像とを加算して、復号視点画像Tdを生成する。加算部303は、生成した復号視点画像Tdの各ピクチャを参照ピクチャとして画像メモリ361に記憶させる。なお、ここで、予測画像Pと差分画像との加算とは、予測画像Pの各画素の画素値に対して、差分画像における同一の位置の画素の画素値を加算することである。
予測パラメータ復号部304は、伝送予測パラメータtpを用いて、各予測ユニットの予測画像Pを生成するための予測パラメータを生成する。予測パラメータ復号部304は、予測モードpredModeを参照して、各予測ユニットの予測モードを判定し、インター予測である予測ユニットについては、インター予測パラメータ復号部341で予測パラメータを導出し、イントラ予測である予測ユニットについては、イントラ予測パラメータ復号部342で予測パラメータを導出する。インター予測パラメータ復号部341は、導出した予測パラメータを、予測画像生成部305に入力するとともに、予測パラメータメモリ362に記憶させる。
予測パラメータ復号部304のインター予測パラメータ復号部341は、予測モードがインター予測の予測ユニットの予測パラメータである、参照リストインデックスrefidxLXと、ベクトルmvLXを導出する。インター予測パラメータ復号部341は、参照リストインデックスrefidxLXとベクトルmvLXを導出する際に、エントロピー復号部301から入力された伝送予測パラメータtpに加えて、予測パラメータメモリ362が記憶する既に復号済の予測パラメータを用いる。なお、ベクトルmvLXの生成方法の詳細については、後述する。
インター予測パラメータ復号部341は、予測モードがインター予測の予測ユニット各々について、導出した参照リストインデックスrefidxLXとベクトルmvLXとを予測画像生成部305に入力するとともに、予測パラメータメモリ362に記憶させる。
また、インター予測パラメータ復号部341は、予測ユニット毎に、該予測ユニットが変位動き補償ブロック(DV−MCPブロック)であるか否か示すDVMCPフラグdvMcpFlagを予測パラメータメモリ362に記憶させる。さらに、インター予測パラメータ復号部341は、予測ユニットがDV−MCPブロックであるときは、予測ベクトルの生成に用いた視差ベクトル(DVMCP視差ベクトル)dvMcpLXを、予測パラメータメモリ362に記憶させる。DVMCP視差ベクトルは、予測ユニットの予測パラメータ(予測に用いる動きベクトルおよび視差ベクトル)とは別に記憶するベクトルであることから、予備ベクトルとも呼ぶ。
ここで、参照リストインデックスrefidxLXとは、参照リストインデックスrefidxL0、refidxL1のいずれか一方もしくは双方を含むことを示す。また、DV−MCPブロックとは、当該予測ユニットと他の視点画像における予測ユニットとの変位を視差ベクトルとして導出し、導出した視差ベクトルを用いて、当該予測ユニットに対応する、他の視点画像における予測ユニットを取得し、該取得した予測ユニットの動きベクトルを、当該予測ユニットの予測ベクトルとする予測ユニットのことである。DV−MCPブロックでは、動きベクトルの導出に用いたDVMCP視差ベクトルdvMcpLX(X成分dvMcpDisparity_X、Y成分dvMcpDisparity_Y)を補助的な視差ベクトルとして得られる。なお、DVMCP視差ベクトルdvMcpLXのY成分を0固定とし、X成分のみを用いても構わない。
参照リストインデックスrefidxL0は、参照ピクチャリストL0の参照ピクチャを示すインデックスである。参照リストインデックスrefidxL1は、参照ピクチャリストL1の参照ピクチャを示すインデックスである。参照ピクチャリストは、復号対象ピクチャよりも前に復号されたピクチャのリストである。
ベクトルmvLXについても、同様に参照リストピクチャLXの参照ピクチャに対するベクトルであり、その他の符号についても「LX」を含む場合は、同様である。なお、ベクトルmvLXは、対象の予測ユニットの予測画像を動き予測により生成する場合は、動きベクトルであり、視差予測により生成する場合は、視差ベクトルである。
イントラ予測パラメータ復号部342は、エントロピー復号部301から入力された符号、例えば予測モードPredModeに基づいて、予測パラメータメモリ362に記憶された予測パラメータを参照してイントラ予測パラメータを導出する。イントラ予測パラメータとは、予測ユニットをピクチャ内で予測する処理で用いる予測パラメータ、例えば、イントラ予測モードIntraPredModeである。イントラ予測パラメータ復号部342は、復号したイントラ予測パラメータをイントラ予測画像生成部352に出力し、また予測パラメータメモリ362に記憶する。
予測画像生成部305は、各予測ユニットの予測画像Pを生成し、加算部303に入力する。予測画像生成部305は、予測モードpredModeを参照して、各予測ユニットの予測モードを判定し、インター予測である予測ユニットについては、インター予測画像生成部351で予測画像Pを生成し、イントラ予測である予測ユニットについては、イントラ予測画像生成部352で予測画像Pを生成する。
インター予測画像生成部351は、インター予測である予測ユニット各々について、画像メモリ361が記憶する参照ピクチャから対応するブロックを読み出し、予測画像Pとする。インター予測画像生成部351は、上述の対応するブロックを、インター予測パラメータ復号部341から入力された参照リストインデックスrefidxLXと、ベクトルmvLXとを参照して特定する。
イントラ予測画像生成部352は、イントラ予測である予測ユニット各々について、イントラ予測パラメータ復号部342から入力されたイントラ予測モードintraPredModeで指定されたイントラ予測を行い、予測画像Pを生成する。イントラ予測画像生成部352は、予測ユニットの予測画像Pを生成する際に、該予測ユニットに隣接する画素の画素値を、画像メモリ361から読み出し、該画素値を用いて予測画像Pを生成する。なお、イントラ予測画像生成部352による予測画像Pの生成には、公知のイントラ予測による予測画像の生成方法を用いることができる。
参照画像メモリ306の画像メモリ361は、加算部303が生成した復号視点画像Tdの各ピクチャを参照ピクチャとして記憶する。また、参照画像メモリ306の予測パラメータメモリ362は、予測パラメータ復号部304から入力された予測パラメータを記憶する。
図5は、インター予測パラメータ復号部341の構成を示す概略ブロック図である。インター予測パラメータ復号部341は、インター予測パラメータ抽出部343、マージ予測パラメータ導出部344、AMVP(Advanced Motion Vector Prediction)予測パラメータ導出部345、加算部346を含んで構成される。AMVP予測パラメータ導出部345は、ベクトル候補導出部347、予測ベクトル選択部348を含んで構成される。
インター予測パラメータ抽出部343は、エントロピー復号部301から入力された伝送予測パラメータtpを参照して、インター予測の予測ユニット各々について、予測パラメータの導出方法がマージ予測であるかAMVP予測であるかを判定する。インター予測パラメータ抽出部343は、マージ予測である予測ユニットについては、伝送予測パラメータtpから該予測ユニットに関するマージインデックスmerge_idxを抽出して、マージ予測パラメータ導出部344に入力する。また、インター予測パラメータ抽出部343は、AMVP予測である予測ユニットについては、伝送予測パラメータtpから、参照リストインデックスrefIdxLXと差分ベクトルmvdLXと、予測ベクトルインデックスmvp_LX_idxを復号する。インター予測パラメータ抽出部343は、参照リストインデックスrefIdxLXと予測ベクトルインデックスmvp_LX_idxとを、AMVP予測パラメータ導出部345に入力し、差分ベクトルmvdLXを、加算部346に入力する。
マージ予測パラメータ導出部344は、予測パラメータメモリ362を参照し、予測パラメータの導出方法がマージ予測である予測ユニット各々について、予め決められた規則に従い、複数の予測パラメータ候補を生成する。マージ予測パラメータ導出部344は、マージ予測である予測ユニット各々について、生成した複数の予測パラメータ候補のうち、マージインデックスmerge_idxが示す予測パラメータ候補を、ベクトルmvLX、参照リストインデックスrefIdxLXに設定する。マージ予測パラメータ導出部344は、予測パラメータ候補を生成する際に、予測パラメータメモリ362が記憶するベクトルmvLX、参照リストインデックスrefIdxLX、DVMCPフラグdvMcpFlag、DVMCP視差ベクトルdvMcpLXを参照する。
ただし、マージ予測パラメータ導出部344は、予測ユニットが符号化ツリーブロックの上端にあるときは、当該予測ユニットの予測パラメータ候補を生成する際に、当該符号化ツリーブロックより上側にあるDV−MCPブロックのDVMCP視差ベクトルdvMcpLXを参照しない。
また、マージ予測パラメータ導出部344は、当該予測ユニットがDV−MCPブロックであるときは、当該予測ユニットがDV−MCPブロックであることを示すDVMCPフラグdvMcpFlagを予測パラメータメモリ362に記憶させ、当該予測ユニットのベクトルmvLXを導出する際に用いたDVMCP視差ベクトルdvMcpLXを、予測パラメータメモリ362に記憶させる。
AMVP予測パラメータ導出部345のベクトル候補導出部347は、予測パラメータメモリ362を参照し、予測パラメータの導出方法がAMVP予測である予測ユニット各々について、予め決められた規則に従い、複数のベクトル候補を生成する。このとき、ベクトル候補導出部347は、インター予測パラメータ抽出部343から入力された参照リストインデックスrefIdxLXを用いて、予測パラメータの導出方法がAMVP予測である予測ユニットの各々について、動き予測により予測画像を生成する予測ユニットであるか、視差予測により予測画像を生成する予測ユニットであるかを判定する。
具体的には、参照リストインデックスrefIdxLXが、当該予測ユニットが属するピクチャと同じ時刻のピクチャを示しているときは、ベクトル候補導出部347は、該予測ユニットは視差予測により予測画像を生成する予測ユニットであると判定する。また、異なる時刻のピクチャを示しているときは、ベクトル候補導出部347は、該予測ユニットは動き予測により予測画像を生成する予測ユニットであると判定する。ベクトル候補導出部347がベクトル候補を生成する際に用いる規則は、該予測ユニットは動き予測により予測画像を生成する予測ユニットであると判定したときと、視差予測により予測画像を生成する予測ユニットであると判定したときとで変更される。
予測ベクトル選択部348は、予測パラメータの導出方法がAMVP予測である予測ユニット各々について、ベクトル候補導出部347が生成した複数のベクトル候補のうち、mvp_LX_idxが示すベクトル候補を、予測ベクトルmvpとする。加算部346は、予測ベクトル選択部348が生成した予測ベクトルmvpと、インター予測パラメータ抽出部343から入力された差分ベクトルmvdLXとを加算して、ベクトルmvLXを生成する。このベクトルmvLXは、インター予測パラメータ抽出部343が抽出した参照リストインデックスrefIdxLXとともに、インター予測画像生成部351と、予測パラメータメモリ362に入力される。
図6は、マージ予測パラメータ導出部344の構成を示す概略ブロック図である。マージ予測パラメータ導出部344は、マージ候補導出部371、マージ候補選択部372を含んで構成される。マージ候補導出部371は、マージ候補格納部373、マージ候補導出制御部374、拡張マージ候補導出部375、基本マージ候補導出部376を含んで構成される。拡張マージ候補導出部375は、インタービューマージ候補導出部381、視差ベクトル取得部382を含んで構成される。基本マージ候補導出部376は、空間マージ候補導出部383、時間マージ候補導出部384、結合マージ候補導出部385、ゼロマージ候補導出部386を含んで構成される。
視差ベクトル取得部382は、非基準視点画像を復号しているときは、処理対象の予測ユニットに対して隣接する予測ユニットを、予め決められた順番に探索して、視差ベクトルmvLXを有する予測ユニットあるいはDV−MCPブロックを検出する。本実施形態では、視差ベクトル取得部382は、この探索を行う際に、処理対象の予測ユニットが符号化ツリーブロックの上端にあるときは、該符号化ツリーブロックより上側にある予測ユニットについては、探索を行わない。
視差ベクトル取得部382は、探索した予測ユニットに、視差ベクトルmvLXを有する予測ユニットが存在するときは、最初に検出した予測ユニットの視差ベクトルmvLXと参照リストインデックスrefIdxLXを、予測パラメータメモリ362から読み出し、インタービューマージ候補導出部381に入力する。また、視差ベクトル取得部382は、探索した予測ユニットに、視差ベクトルmvLXを有する予測ユニットが存在しない場合には、さらに各予測ユニットのDVMCPフラグdvMcpFlagを参照し、DVMCP視差ベクトルdvMcpLXを有するDV−MCPブロックを探索する。DVMCPフラグdvMcpFlagが1、即ちDVMCP視差ベクトルdvMcpLXを有する予測ユニットが存在するときは、最初に検出した予測ユニットのDVMCP視差ベクトルdvMcpLXと、基準視点画像の当該予測ユニットが属するピクチャと同じ時刻のピクチャを示す参照リストインデックスrefIdxLXとを、インタービューマージ候補導出部381に入力する。この探索の結果、該当する予測ユニットが検出されなかったときは、視差ベクトル取得部382は、ゼロベクトルと基準視点画像の当該予測ユニットが属するピクチャと同じ時刻のピクチャを示す参照リストインデックスrefIdxLXをインタービューマージ候補導出部381に入力する。なお、基準視点画像を復号しているときは、視差ベクトル取得部382は、動作しない。
インタービューマージ候補導出部381は、視差ベクトル取得部382から入力された視差ベクトルmvLXと参照リストインデックスrefIdxLXを用いて、参照リストインデックスrefIdxLXが示すピクチャの中から、処理対象の予測ユニットに対応する対応予測ユニットを特定し、対応予測ユニットが動きベクトルmvLXを有していれば、該動きベクトルmvLXと、該動きベクトルmvLXの参照リストインデックスrefIdxLXとを拡張マージ候補として、マージ候補格納部373に格納する。なお、拡張マージ候補は、予測パラメータ候補の一種である。
また、インタービューマージ候補導出部381は、対応予測ユニットを特定するのに用いた視差ベクトルmvLXをDVMCP視差ベクトルdvMcpLXとし、拡張マージ候補と対応付けてマージ候補格納部373に格納する。
なお、インタービューマージ候補導出部381は、対応予測ユニットが動きベクトルmvLXを有していないときは、視差ベクトル取得部382から入力された視差ベクトルmvLXと、参照リストインデックスrefIdxLXとを拡張マージ候補として導出する。対応予測ユニットが動きベクトルmvLXを有していない例としては、対応予測ユニットが視差予測により予測画像を生成する予測ユニットである場合や、イントラ予測により予測画像を生成する予測ユニットである場合がある。また、インタービューマージ候補導出部381は、基準視点画像を復号しているときは、動作しない。
マージ候補導出制御部374は、基本マージ候補が5つ得られるように、空間マージ候補導出部383、時間マージ候補導出部384、結合マージ候補導出部385、ゼロマージ候補導出部386の動作を制御する。なお、基本マージ候補は、予測パラメータ候補の一種である。
空間マージ候補導出部383は、処理対象の予測ユニットに対して隣接する隣接予測ユニットを、予め決められた順番に探索して、視差ベクトルまたは動きベクトルを有する予測ユニットを、最大4個まで検出する。空間マージ候補導出部383は、検出した予測ユニットの視差ベクトルmvLXまたは動きベクトルmvLXと、参照リストインデックスrefIdxLXとを、基本マージ候補の一種である空間マージ候補として、マージ候補格納部373に格納する。
時間マージ候補導出部384は、参照リストインデックスrefIdxLXの値が「0」であるピクチャにおいて、処理対象の予測ユニットの右下端に隣接する予測ユニット、処理対象の予測ユニットの中心を含む予測ユニットの順番に探索して、視差ベクトルまたは動きベクトルを有する予測ユニットを、最大1個まで検出する。時間マージ候補導出部384は、検出した予測ユニットの視差ベクトルmvLXまたは動きベクトルmvLXと、参照リストインデックスrefIdxLXとを、基本マージ候補の一種である時間マージ候補として、マージ候補格納部373に格納する。
結合マージ候補導出部385は、空間マージ候補導出部383と時間マージ候補導出部384とがマージ候補格納部373に格納した基本マージ候補の数が5個に満たないときは、格納されている基本マージ候補を予め決められた方法で結合して、新たな基本マージ候補を生成し、マージ候補格納部373に格納する。
ゼロマージ候補導出部386は、空間マージ候補導出部383と時間マージ候補導出部384と結合マージ候補導出部385とがマージ候補格納部373に格納した基本マージ候補の数が5個に満たないときは、基本マージ候補が5個となるように、ゼロベクトルを基本マージ候補としてマージ候補格納部373に格納する。
マージ候補格納部373は、基本マージ候補導出部376が生成した基本マージ候補と、拡張マージ候補導出部375が生成した拡張マージ候補とを記憶する。
マージ候補選択部372は、マージ候補格納部373が記憶する基本マージ候補と拡張マージ候補との中から、インター予測パラメータ抽出部343から入力されたマージインデックスmerge_idxが指定するものを選択し、ベクトルmvLXと参照リストインデックスrefIdxLXとして、インター予測画像生成部351および予測パラメータメモリ362に入力する。
なお、マージ候補選択部372は、マージインデックスmerge_idxが拡張マージ候補を指定しているときは、これらに加えて、該拡張マージ候補に対応付けられているDVMCP視差ベクトルdvMcpLXを、予測パラメータメモリ362に記憶させ、当該予測ユニットがDV−MCPブロックであることを示すDVMCPフラグdvMcpFlagを予測パラメータメモリ362に記憶させる。なお、DVMCP視差ベクトルdvMcpLXのY成分を0固定とする場合には、X成分のみを予測パラメータメモリ362に記憶させればよい。
図7は、視差ベクトル取得部382および空間マージ候補導出部383が探索する隣接予測ユニットの位置を説明する図である。図7において、予測ユニットPU1は、処理対象の予測ユニットである。予測ユニットA0、A1、B0、B1、B2は、視差ベクトル取得部382および空間マージ候補導出部383が探索する隣接予測ユニットである。図7に示すように、隣接予測ユニットA0は、処理対象の予測ユニットPU1の左下に隣接する予測ユニットである。隣接予測ユニットA1は、処理対象の予測ユニットPU1の左に隣接する予測ユニットのうち、最も下に位置する予測ユニットである。
隣接予測ユニットB0は、処理対象の予測ユニットPU1の右上に隣接する予測ユニットである。隣接予測ユニットB1は、処理対象の予測ユニットPU1の上に隣接する予測ユニットのうち、最も右に位置する予測ユニットである。隣接予測ユニットB2は、処理対象の予測ユニットPU1の左上に隣接する予測ユニットである。本実施形態では、視差ベクトル取得部382および空間マージ候補導出部383が探索する順番は、隣接予測ユニットA1、B1、B0、A0、B2の順であるが、この他の順であってもよい。なお、処理対象の予測ユニットPU1が符号化ツリーブロックの上端にあるときは、隣接予測ユニットA0、A1、B0、B1、B2のうち、隣接予測ユニットB0、B1、B2が、該符号化ツリーブロックより上側にある予測ユニットである。
なお、処理対象の予測ユニットPU1の左上端の画素の座標を(xP,yP)とし、幅をnPbW、高さをnPbHとしたとき、隣接予測ユニットA0、A1、B0、B1、B2は、それぞれ下記の座標を含む予測ユニットである。
隣接予測ユニットA0:(xP−1,yP+nPbH)
隣接予測ユニットA1:(xP−1,yP+nPbH−1)
隣接予測ユニットB0:(xP+nPbW,yP−1)
隣接予測ユニットB1:(xP+nPbW−1,yP−1)
隣接予測ユニットB2:(xP−1,yP−1)
図8は、時間マージ候補導出部384が探索する予測ユニットを説明する図である。図8において、ピクチャpic1は、参照リストインデックスrefIdxLXの値が「0」であるピクチャである。ブロックPU1’は、ピクチャpic1における、処理対象の予測ユニットPU1と座標が同じ領域である。予測ユニットCenterは、ピクチャpic1における、予測ユニットPU1の中心座標を含む予測ユニットである。予測ユニットRBは、ブロックPU1’の右下端に隣接する予測ユニットである。なお、予測ユニットRBは、処理対象の予測ユニットPU1の左上端の画素の座標を(xP,yP)とし、幅をnPbW、高さをnPbHとしたとき、座標(xP+nPbW,yP+nPbH)を含む予測ユニットである。
図9、図10は、インタービューマージ候補導出部381の動作を説明する概念図である。図9において、ピクチャpic2は、処理対象のピクチャである。予測ユニットPU1は、処理対象の予測ユニットである。点Ctは、予測ユニットPU1の中心である。予測ユニットA0、A1、B0、B1、B2は、図7で示した隣接予測ユニットである。ベクトルDvは、隣接予測ユニットB0の視差ベクトルである。図10において、ピクチャpic3は、視差ベクトルDvが参照する参照ピクチャである。点Ct’は、点Ctと同じ座標の点である。予測ユニットPU2は、点Ctを起点としたときに、視差ベクトルDvが示す点を含む予測ユニットである。動きベクトルMvは、予測ユニットPU2の動きベクトルである。インタービューマージ候補導出部381は、視差ベクトル取得部382から図9に示す視差ベクトルDvを入力されると、予測ユニットPU2を対応予測ユニットとして特定し、動きベクトルMvを拡張マージ候補とする。
図11は、予測パラメータメモリ362の構成を示す概略ブロック図である。図11には、非基準視点画像のピクチャ用の予測パラメータメモリ362の構成である。予測パラメータメモリ362は、ライン記憶部391、カラム記憶部392、CTB記憶部393を含んで構成される。ライン記憶部391は、処理対象の符号化ツリーブロックの左上側に隣接する予測ユニットからピクチャの右端の予測ユニットまでの予測ユニット各々と、処理対象の符号化ツリーブロックの左下端から左に4画素離れた位置を含む予測ユニットからピクチャの左端の予測ユニットまでの予測ユニット各々との、ベクトルmvLXと参照リストインデックスrefIdxLXとを記憶する。なお、本実施形態では、ライン記憶部391は、後述するカラム記憶部392と重複する部分については、予測パラメータを記憶しない。
カラム記憶部392は、処理対象の符号化ツリーブロックの左側に隣接する予測ユニット各々のベクトルmvLXと、参照リストインデックスrefIdxLXと、DVMCPフラグdvMcpFlagと、DVMPC視差ベクトルdvMcpLXとを記憶する。
CTB記憶部393は、処理対象の符号化ツリーブロックに属する予測ユニット各々のベクトルmvLXと、参照リストインデックスrefIdxLXと、DVMCPフラグdvMcpFlagと、DVMPC視差ベクトルdvMcpLXとを記憶する。
図12は、ライン記憶部391、カラム記憶部392、CTB記憶部393が記憶する予測パラメータの範囲を説明する図である。図12において、ピクチャpic4は、処理対象のピクチャであり、符号化ツリーブロックCTB2は、処理対象の符号化ツリーブロックである。また、高さhは、予測ユニットの高さの最小値「4」であり、幅wは、予測ユニットの幅の最小値「4」である。
ライン記憶部391は、図12において右下がりの斜線でハッチングされた領域line1、line2の少なくとも一部を含む予測ユニットの予測パラメータを記憶する。ただし、図11でも説明したように、ライン記憶部391は、DVMCPフラグdvMcpFlag、DVMCP視差ベクトルを記憶しない。視差ベクトル取得部382が、処理対象の予測ユニットが符号化ツリーブロックの上端にあるときは、該符号化ツリーブロックより上側にある予測ユニットについては、探索を行わないため、これらの予測パラメータが不要だからである。
カラム記憶部392は、図12において右上がりの斜線でハッチングされた領域Col1の少なくとも一部を含む予測ユニットの予測パラメータを記憶する。また、CTB記憶部393は、図12において網掛けでハッチングされた領域CTBに含まれる予測ユニットの予測パラメータを記憶する。
図13は、マージ予測パラメータ導出部344の動作を説明するフローチャートである。マージ候補選択部372は、インター予測パラメータ抽出部343が抽出したマージインデックスmerge_idxを取得する(Sa1)。マージ候補導出制御部374は、復号の対象となっている視点画像が非基準視点画像か否かを判定する(Sa2)。非基準視点画像であるときは(Sa2−Yes)、マージ候補導出制御部374は、拡張マージ候補導出部375に拡張マージ候補の導出を指示する。拡張マージ候補導出部375は、該指示を受けると、拡張マージ候補を導出し、マージ候補格納部373に格納する(Sa3)。
ステップSa2にて非基準視点画像でないと判定したとき(Sa2−No)あるいはステップSa3の処理後に、マージ候補導出制御部374は、空間マージ候補導出部383に、空間マージ候補の導出を指示する。空間マージ候補導出部383は、該指示を受けると、空間マージ候補を導出し、マージ候補格納部373に格納する(Sa4)。次に、マージ候補導出制御部374は、時間マージ候補導出部384に、時間マージ候補の導出を指示する。時間マージ候補導出部384は、該指示を受けると、時間マージ候補を導出し、マージ候補格納部373に格納する(Sa5)。
次に、マージ候補導出制御部374は、マージ候補格納部373に格納された予測パラメータ候補(マージ候補)を参照し、格納されているもの同士で一致しているときは、一方を削除する(Sa6)。次に、マージ候補導出制御部374は、マージ候補格納部373に格納された予測パラメータ候補の数が予め決められた閾値未満か否かを判定する(Sa7)。閾値未満であるときは(Sa7−Yes)、マージ候補導出制御部374は、結合マージ候補導出部385に、結合マージ候補の導出を指示する。結合マージ候補導出部385は、該指示を受けると、結合マージ候補を導出し、マージ候補格納部373に格納する(Sa8)。
次に、マージ候補導出制御部374は、再度、マージ候補格納部373に格納された予測パラメータ候補の数が予め決められた閾値未満か否かを判定する(Sa9)。閾値未満であるときは(Sa9−Yes)、マージ候補導出制御部374は、ゼロマージ候補導出部386に、ゼロマージ候補の導出を指示する。ゼロマージ候補導出部386は、該指示を受けると、予測パラメータ候補の数が閾値と同じになるまで、ゼロマージ候補を導出し、マージ候補格納部373に格納する(Sa10)。
ステップSa7、Sa9にて予測パラメータ候補の数が予め決められた閾値未満でないと判定したとき(Sa7−No、Sa9−No)あるいはステップSa10の処理後に、マージ候補選択部372は、マージ候補格納部373に格納されている予測パラメータ候補の中から、ステップSa1にて取得したマージインデックスmerge_idxにより指定されている予測パラメータ候補を選択する(Sa11)。次に、マージ候補選択部372は、ステップSa11にて選択した予測パラメータ候補が拡張マージ候補であるか否かを判定する(Sa12)。拡張マージ候補であるときは(Sa12−Yes)、マージ候補選択部372は、DVMCPフラグdvMcpFlagを、当該予測ユニットがDV−MCPブロックであることを示す「1」に設定し(Sa13)、DVMCP視差ベクトルdvMcpLXに、視差ベクトル取得部382が取得した視差ベクトルを設定する(Sa14)。
ステップSa12にて、選択した予測パラメータ候補が拡張マージ候補でないと判定したとき(Sa12−No)あるいはステップSa14の処理後に、マージ候補選択部372は、ベクトルmvLX、参照リストインデックスrefIdxLXなどの予測パラメータを出力し(Sa15)、処理を終了する。
図14は、図13のステップSa3における処理を説明するフローチャートである。拡張マージ候補導出部375の視差ベクトル取得部382は、隣接予測ユニットを探索して、視差ベクトルを有するものを検出する。視差ベクトル取得部382は、検出した隣接予測ユニットの視差ベクトルを取得する(Sb1)。インタービューマージ候補導出部381は、視差ベクトル取得部382が視差ベクトルの取得に成功したか否かを判定する(Sb2)。成功しなかったときは(Sb2−No)、処理を終了する。
成功したときは(Sb2−Yes)、インタービューマージ候補導出部381は、取得した視差ベクトルを用いて、処理対象の予測ユニットの対応予測ユニットを特定する(Sb3)。インタービューマージ候補導出部381は、対応予測ユニットに動きベクトルが在るか否かを判定する(Sb4)。動きベクトルが在るときは(Sb4−Yes)、インタービューマージ候補導出部381は、該動きベクトルを拡張マージ候補として、マージ候補格納部373に格納し(Sb5)、処理を終了する。一方、ステップSb4にて、動きベクトルがないと判定したときは(Sb4−No)、インタービューマージ候補導出部381は、ステップSb1にて取得した視差ベクトルを拡張マージ候補として、マージ候補格納部373に格納し(Sb6)、処理を終了する。
図15は、図14のステップSb1における処理を説明するフローチャートである。視差ベクトル取得部382は、処理対象の予測ユニットの隣接予測ユニットA1、B1、B0、A0、B2の順に、各々について、ステップSc2からSc6の処理を行う(Sc1、Sc7)。ステップSc2では、視差ベクトル取得部382は、対象の隣接予測ユニットの予測パラメータを、予測パラメータメモリ362から取得する。次に、視差ベクトル取得部382は、対象の隣接予測ユニットに視差ベクトルが在るか否かを判定する(Sc3)。視差ベクトルが在るときは(Sc3−Yes)、ステップSc11に遷移し、視差ベクトル取得部382は、該視差ベクトルを、取得した視差ベクトルとして設定し(Sc11)、処理を終了する。
一方、ステップSc3にて、視差ベクトルが無いと判定したときは(Sc3−No)、視差ベクトル取得部382は、対象の隣接予測ユニットが、処理対象の予測ユニットが属する符号化ツリーブロックより上側であるか否かを判定する(Sc4)。すなわち、視差ベクトル取得部382は、処理対象の予測ユニットが符号化ツリーブロックに上端に位置し、かつ、対象の隣接予測ユニットが該符号化ツリーブロックより上側にある予測ユニットであるか否かを判定する。具体的には、ステップSc4では、隣接予測ユニットのY座標(yP−1)が、対象符号化ツリーブロック(高さは、1<<Log2CtbSizeY)の上端のY座標((yC>>Log2CtbSizeY)<<Log2CtbSizeY、yC:処理対象の符号化ユニットのY座標)よりも小さい場合、すなわち、yP−1<((yC>>Log2CtbSizeY)<<Log2CtbSizeY)の場合に、上側にあると判定する。なお、Log2CtbSizeYは、符号化ツリーブロックの高さCtbSizeY(本実施形態では64)の、2を底とした対数である。
ステップSc4にて、上側にあると判定したときは(Sc4−Yes)視差ベクトル取得部382は、ステップSc7に遷移して、次の隣接予測ユニットを対象に設定し、ステップSc2に戻る。また、ステップSc4にて、上側でないと判定したときは(Sc4−No)、視差ベクトル取得部382は、対象の隣接予測ユニットのDVMCPフラグが「1」であるか否かを判定する(Sc5)。DVMCPフラグが「1」であると判定したときは(Sc5−Yes)、視差ベクトル取得部382は、対象の隣接予測ユニットのDVMCP視差ベクトルをリストに格納し(Sc6)、ステップSc7に遷移して、次の隣接予測ユニットを対象に設定し、ステップSc2に戻る。また、DVMCPフラグが「1」でないと判定したときは(Sc5−No)、視差ベクトル取得部382は、ステップSc7に遷移して、次の隣接予測ユニットを対象に設定し、ステップSc2に戻る。
全ての隣接予測ユニットについて、ステップSc2からSc6の処理を行った後、視差ベクトル取得部382は、リストに、ステップSc6にて格納されたDVMCP視差ベクトルが在るか否かを判定する(Sc8)。在るときは(Sc8−Yes)、視差ベクトル取得部382は、リストに格納されているDVMCP視差ベクトルを、取得した視差ベクトルとして設定し(Sc10)、処理を終了する。また、ステップSc8にて、DVMCP視差ベクトルがないと判定したときは(Sc8−No)、視差ベクトル取得部382は、ゼロベクトルを、取得した視差ベクトルとして設定し(Sc9)、処理を終了する。
このように、本実施形態における視差ベクトル取得部382は、隣接予測ユニットが、処理対象の予測ユニットが属する符号化ツリーブロックより上側であるときは、DVMCP視差ベクトルを参照しないので、予測パラメータメモリ362のライン記憶部391は、DVMCPフラグdvMcpFlagと、DVMCP視差ベクトルdvMcpLXを記憶しなくてもよく、メモリ容量を抑えることができる。
図16は、画像符号化装置100の構成を示す概略ブロック図である。画像符号化装置100は、減算部101、DCT変換・量子化部102、エントロピー符号化部103、逆量子化・逆DCT変換部302、加算部104、予測画像生成部305、参照画像メモリ306、予測パラメータ決定部105、予測パラメータ符号化部106を含んで構成される。予測パラメータ符号化部106は、インター予測パラメータ符号化部161と、イントラ予測パラメータ符号化部162とを含んで構成される。逆量子化・逆DCT変換部302、予測画像生成部305および参照画像メモリ306は、図14における逆量子化・逆DCT変換部302、予測画像生成部305および参照画像メモリ306と同様であるので、説明を省略する。
減算部101は、視点画像Tの各ピクチャと、予測画像生成部305が生成した予測画像Pとの差を算出し、残差信号として、DCT変換・量子化部102に入力する。DCT変換・量子化部102は、残差信号をDCT変換して、DCT係数を算出する。DCT変換・量子化部102は、算出したDCT係数を量子化して、量子化係数を算出し、エントロピー符号化部103と逆量子化・逆DCT変換部302とに入力する。
エントロピー符号化部103は、DCT変換・量子化部102が算出した量子化係数や、予測パラメータ符号化部106が生成した伝送予測パラメータなどを、エントロピー符号化して符号化ストリームTeを生成する。エントロピー符号化部103は、エントロピー符号化した符号化ストリームTeの符号量(例えば、1ピクチャ当たりのバイト数)を算出し、予測パラメータ決定部105に入力する。加算部104は、逆量子化・DCT変換部302が生成した差分画像と、予測画像生成部305が生成した予測画像Pとを加算して、参照画像を生成し、参照画像メモリ306に記憶させる。
予測パラメータ決定部105は、伝送予測パラメータtpを決定し、予測パラメータ符号化部106、エントロピー符号化部103に入力する。予測パラメータ決定部105は、例えば、様々な伝送予測パラメータtpの値で試行し、エントロピー符号化部103が算出する符号化ストリームTeの符号量が最も小さくなる値を、伝送予測パラメータtpとする。
インター予測パラメータ符号化部161は、図4のインター予測パラメータ復号部341と同様の構成である。イントラ予測パラメータ符号化部162は、図4のイントラ予測パラメータ復号部342と同様の構成である。
このため、画像符号化装置100においても、隣接予測ユニットが、処理対象の予測ユニットが属する符号化ツリーブロックより上側であるときは、DVMCP視差ベクトルを参照しないので、予測パラメータメモリ362のライン記憶部391は、DVMCPフラグdvMcpFlagと、DVMCP視差ベクトルdvMcpLXを記憶しなくてもよく、メモリ容量を抑えることができる。
なお、本実施形態では、拡張マージ候補とする動きベクトルを取得するために、視差ベクトル取得部382が視差ベクトルを取得する際に、当該予測ユニットが符号化ツリーブロックの上端にあるときは、該符号化ツリーブロックより上側にある予測ユニットのDVMCP視差ベクトルなどを参照しないようにしたが、AMVP予測パラメータ導出部345およびマージ予測パラメータ導出部344が、予測ベクトルを生成する際に、当該予測ユニットが符号化ツリーブロックの上端にあるときは、同様に、該符号化ツリーブロックより上側にある予測ユニットのいずれかの予測パラメータを参照しないようにしてもよい。この場合、参照しないようにした予測パラメータを、ライン記憶部391が記憶しておく必要がなくなるため、メモリ容量を抑えることができる。
また、マージ予測パラメータ導出部344またはAMVP予測パラメータ導出部345が、予測ベクトルを生成する際に、当該予測ユニットが符号化ツリーブロックの左端にあるときに、該符号化ツリーブロックより左側にある予測ユニットのいずれかの予測パラメータを参照しないようにしてもよい。この場合、参照しないようにした予測パラメータを、カラム記憶部392が記憶しておく必要がなくなるため、メモリ容量を抑えることができる。
[第2の実施形態]
以下、図面を参照して、本発明の第2の実施形態について説明する。本実施形態による画像伝送システム10aは、図1の画像伝送システム10と同様の構成であるが、画像符号化装置100、画像復号装置300に変えて、画像符号化装置100a、画像復号装置300aを有している点のみが異なる。画像符号化装置100aおよび画像復号装置300aは、マージ予測パラメータ導出部344に変えて、マージ予測パラメータ導出部344aを有している点と、予測パラメータメモリ362に変えて予測パラメータメモリ362aを有している点とが異なる。
本実施形態におけるマージ予測パラメータ導出部344aでは、DVMCP視差ベクトルを取得するための探索の対象となる予測ユニットである隣接予測ユニットは、基本的にはマージ予測パラメータ導出部344と同じであるが、隣接予測ユニットが処理対象の符号化ツリーブロックの外側(ここでは上側もしくは左側)に位置する場合には異なっている。
すなわち、隣接予測ユニットが含むべき座標が、処理対象の符号化ツリーブロックの上側にある場合には、隣接予測ユニットが含むべき座標のX座標が基本、所定の分割単位であるM画素毎(MはM>4(予測ユニットの最小幅)を満たす定数)に1つとなるように隣接予測ユニットが含むべき座標を変換する。なお、変換後のX座標は、正確にM画素おき(0、M、M×2、M×3、・・・)としても良いし、変換後のX座標に所定のズレがあっても良い(例えば、0、M−1、M×2、M×3−1)。例えば、座標変換は、2を底としたMの対数をLM(=log2(M))とした場合、変換前のX座標の下位LMビットを無視するような、変換で行う。
また、隣接予測ユニットが、処理対象の符号化ツリーブロックの左側にある場合には、隣接予測ユニットが含むべき座標のY座標が所定の分割単位であるN画素毎(NはN>4(予測ユニットの最小高さ)を満たす定数)に1つとなるように、隣接予測ユニットが含むべき座標を変更する。座標変換は、上述のX座標の場合と同様であり、例えば、2を底としたNの対数をLN(=log2(N))とした場合、変換前のY座標の下位LNビットを無視するような、変換で行う。
探索予測ユニットが含むべき座標として参照される変換後の座標は、所定の分割単位毎に、1つの座標となる。このような、所定の分割単位毎に1つの座標が表す画素を画素nと呼ぶ。
第1の実施形態でも説明したように、処理対象の予測ユニットの左上端の画素の座標を(xP,yP)とし、幅をnPbW、高さをnPbHとしたとき、隣接予測ユニットA0、A1、B0、B1、B2は、それぞれ下記の座標を含む予測ユニットである。
A0:(xA0,yA0)=(xP−1,yP+nPbH)
A1:(xA1,yA1)=(xP−1,yP+nPbH−1)
B0:(xB0,yB0)=(xP+nPbW,yP−1)
B1:(xB1,yB1)=(xP+nPbW−1,yP−1)
B2:(xB2,yB2)=(xP−1,yP−1)
このとき、yA0’、yA1’、xB0’、xB1’、xB2’の各々を、以下の式で定義する。そして、隣接予測ユニットが対象符号化ツリーブロックの外側にある場合には以下のように変換した座標(xA0,yA0’)、(xA1,yA1’)、(xB0’,yB0)、(xB1’,yB1)、(xB2’,yB2)を含む予測ユニットを探索する予測ユニット(隣接予測ユニット)とする。これにより、隣接予測ユニットが画素nを含むか否かを判定することなく、探索する予測ユニットが画素nを含むようにすることができる。
具体的には、隣接予測ユニットA0、A1のX座標(xP−1)が、対象符号化ツリーブロック(幅は、1<<Log2CtbSizeX)の左端のX座標((xC>>Log2CtbSizeX)<<Log2CtbSizeX、xC:処理対象の符号化ユニットのX座標)よりも小さい場合、すなわち、xP−1<((xC>>Log2CtbSizeX)<<Log2CtbSizeX)の場合、隣接予測ユニットA0、A1は、対象符号化ツリーブロックの外側に位置するため、以下の式により座標変換を行う。
yA0’=((yA0>>LN)<<LN)+((yA0>>LN)&1)×(N−1)yA1’=((yA1>>LN)<<LN)+((yA1>>LN)&1)×(N−1)により、Y座標を変換する。なお、以下のように変換しても良い。
yA0’=(yA0&〜(N−1))yA1’=(yA1&〜(N−1))なお、>>は、右へのビットシフトを示し、<<は、左へのビットシフトを示し、&は、論理積、〜はビット否定を示す。また、Nは、所定の分割単位の高さであり、LNは、2を底としたNの対数である。
同様に、隣接予測ユニットB0、B1、B2のY座標(yP−1)が、対象符号化ツリーブロック(高さは、1<< Log2CtbSizeY)の上端のY座標よりも小さい場合、すなわち、yP−1<((yC>>Log2CtbSizeY)<<Log2CtbSizeY)の場合、隣接予測ユニットB0、B1、B2は、対象符号化ツリーブロックの外側に位置するため、以下の式により座標変換を行う。
xB0’=((xB0>>LM)<<LM)+((xB0>>LM)&1)×(M−1)xB1’=((xB1>>LM)<<LM)+((xB1>>LM)&1)×(M−1)xB2’=((xB2>>LM)<<LM)+((xB2>>LM)&1)×(M−1) なお、Mは、所定の分割単位の幅であり、LMは、2を底とした幅Mの対数である。上記は、座標を一度右にLMビットシフトすることにより、下位LMビットを用いないようにする座標変換である。M=8の場合には以下の式に相当し、下位3ビットが0〜7のときは下位3ビットを0、8〜15のときは15とする動作になる。
xB0’=((xB0>>3)<<3)+((xB0>>3)&1)×7
xB1’=((xB1>>3)<<3)+((xB1>>3)&1)×7
xB2’=((xB2>>3)<<3)+((xB2>>3)&1)×7
また、上位ビットのみを残すビット演算である、以下の式で変換しても良い。M=8の場合には、LM=3であり、下位3ビットを0とする演算となる。すなわち、下位LMビットを用いないようにする座標変換である。
xB0’=(xB0&〜(M−1)) xB1’=(xB1&〜(M−1)) xB2’=(xB2&〜(M−1))なお、ライン記憶部391aの容量のみを削減し、カラム記憶部392aの容量の削減を行わない場合には、処理対象の予測ユニットの上に隣接する隣接予測ユニット(ここではB0、B1、B2)の座標のみを変換しても良い。
図17は、マージ予測パラメータ導出部344aにおいて、DVMCP視差ベクトルを取得するための探索の対象となる予測ユニットを説明する図である。ここではM=8、N=8の場合で、右シフトによりX座標のLMビット、Y座標のLNビットを無視する場合の例を説明する。図17において、予測ユニットPU3は、処理対象の予測ユニットである。符号化ツリーブロックCTB3は、予測ユニットPU3が属する符号化ツリーブロックである。予測ユニットA0、B0は、隣接予測ユニットである。
図17では、隣接予測ユニットB0は、予測ユニットPU3が属する符号化ツリーブロックCTB3(処理対象の符号化ツリーブロック)の外側であり、その幅W0は、4画素である。このとき、隣接予測ユニットB0のX座標の下位3ビットが8であり、隣接予測ユニットB0が上述の画素nを含んでいない場合、ここでは、隣接予測ユニットB0ではなく、X座標の下位3ビットを8から15に変換して得られたその右隣の予測ユニットB0’が、DVMCP視差ベクトルを取得するための探索の対象となる。
同様に、隣接予測ユニットA0は、処理対象の符号化ツリーブロックCTB3の外側であり、その高さh0は、4画素である。このとき、隣接予測ユニットA0のY座標の下位3ビットが8であり、隣接予測ユニットA0は、画素nを含んでいない場合、隣接予測ユニットA0ではなく、ここでは、Y座標の下位3ビットを8から15に変換して得られたその下隣の予測ユニットA0’が、DVMCP視差ベクトルを取得するための探索の対象となる。
図18は、マージ予測パラメータ導出部344aの構成を示す概略ブロック図である。マージ予測パラメータ導出部344aは、図6のマージ予測パラメータ導出部344とは、視差ベクトル取得部382に変えて、視差ベクトル取得部382aを有している点のみが異なる。視差ベクトル取得部382aは、視差ベクトル取得部382と同様に、視差ベクトルの取得を行うが、DVMCP視差ベクトルを取得するための探索が、視差ベクトル取得部382と異なる。
視差ベクトル取得部382aは、DVMCP視差ベクトルを取得するための探索の際、隣接予測ユニットが処理対象の符号化ツリーブロックの外側にあり、領域nを含まないときは、該隣接予測ユニットの左右に隣接する予測ユニットまたは上下に隣接する予測ユニットであって、画素nを含む隣接予測ユニットを、該隣接予測ユニットに代えて探索の対象とする。
すなわち、視差ベクトル取得部382aは、隣接予測ユニットA0が処理対象の符号化ツリーブロックの外側にあるときは、隣接予測ユニットA0に代えて座標(xA0,yA0’)を含む予測ユニットを探索の対象とする。以下、隣接予測ユニットA1、B0、B1、B2についても同様である。
図19は、本実施形態における予測パラメータメモリ362aの構成を示す概略ブロック図である。図19に示すように、予測パラメータメモリ362aは、ライン記憶部391a、カラム記憶部392a、CTB記憶部393を含んで構成される。ライン記憶部391aは、ライン記憶部391と同様に、図12の領域line1、line2の少なくとも一部を含む予測ユニットのベクトルmvLXと参照リストインデックスrefIdxLXとを記憶する。
ライン記憶部391aは、さらに、図12の領域line1、line2の少なくとも一部を含む予測ユニットであり、かつ、領域nを含む予測ユニットのDVMCPフラグdvMcpFlag、DVMCP視差ベクトルdvMcpLXを記憶する。図12の領域line1、line2の少なくとも一部を含む予測ユニットであっても、領域nを含まない予測ユニットについては、視差ベクトル取得部382aによる探索対象となっていないため、記憶しておく必要がないためである。
カラム記憶部392aも同様に、図12の領域Col1の少なくとも一部を含む予測ユニットのベクトルmvLXと参照リストインデックスrefIdxLXとを記憶し、図12の領域Col1の少なくとも一部を含む予測ユニットであり、かつ、領域nを含む予測ユニットのDVMCPフラグdvMcpFlag、DVMCP視差ベクトルdvMcpLXを記憶する。図12の領域Col1の少なくとも一部を含む予測ユニットであっても、領域nを含まない予測ユニットについては、視差ベクトル取得部382aによる探索対象となっていないため、記憶しておく必要がないためである。
このように、本実施形態では、視差ベクトル取得部382が視差ベクトルを取得する際に、隣接予測ユニットが処理対象の符号化ツリーブロックの外側にあるときは、探索対象の予測ユニットが領域nを含むようにしたので、ライン記憶部391a、カラム記憶部392aは、8画素毎に一つのDVMCP視差ベクトルを記憶すればよくなり、ライン記憶部391a、カラム記憶部392aのメモリ容量を抑えることができる。
また、上述した各実施形態における画像符号化装置100、100a、画像復号装置300、300a各々の機能もしくは各々の一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各装置を実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、上述した各実施形態における画像符号化装置100、100a、画像復号装置300、300a各々の一部、または全部を典型的には集積回路であるLSIとして実現してもよい。画像符号化装置100、100a、画像復号装置300、300aの各機能ブロックは個別にチップ化してもよいし、一部、または全部を集積してチップ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いることも可能である。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。