(本発明の基礎となった知見)
既に標準化されている、H.264と呼ばれる動画像符号化方式では、情報量の圧縮のために、Iピクチャ、Pピクチャ、Bピクチャという3種類のピクチャタイプが用いられている。
Iピクチャは、インター予測符号化処理で符号化されない。すなわち、Iピクチャは、ピクチャ内予測(以降、「イントラ予測」と呼ぶ)符号化処理で符号化される。Pピクチャは、表示時間順で、符号化対象ピクチャの前方または後方にある既に符号化済みの1つのピクチャを参照してインター予測符号化される。Bピクチャは、表示時間順で、符号化対象ピクチャの前方または後方にある既に符号化済みの2つのピクチャを参照してインター予測符号化される。
インター予測符号化においては、参照ピクチャを特定するための参照ピクチャリストが生成される。参照ピクチャリストは、インター予測で参照する符号化済みの参照ピクチャに参照ピクチャインデックスを割り当てたリストである。例えば、Bピクチャでは、2つのピクチャを参照して符号化を行えるため、2つの参照ピクチャリスト(L0、L1)が生成される。
図1Aは、Bピクチャにおける参照ピクチャリストの一例を説明するための図である。図1Bは、双方向予測における予測方向0の参照ピクチャリスト0(L0)の一例を示す。ここでは、参照ピクチャリスト0において、参照ピクチャインデックス0の値0は、表示順2の参照ピクチャ0に割り当てられている。また、参照ピクチャインデックス0の値1は、表示順1の参照ピクチャ1に割り当てられている。また、参照ピクチャインデックス0の値2は、表示順0の参照ピクチャ2に割り当てられている。つまり、符号化対象ピクチャに対して表示順で時間的に近い参照ピクチャほど、小さい値を有する参照ピクチャインデックスが割り当てられている。
一方、図1Cは、双方向予測における予測方向1の参照ピクチャリスト1(L1)の一例を示す。ここでは、参照ピクチャリスト1において、参照ピクチャインデックス1の値0は、表示順1の参照ピクチャ1に割り当てられている。また、参照ピクチャインデックス1の値1は、表示順2の参照ピクチャ0に割り当てられている。また、参照ピクチャインデックス2の値2は、表示順0の参照ピクチャ2に割り当てられている。
このように、各参照ピクチャに対して、予測方向毎に異なる参照ピクチャインデックスの値を割り当てること(図1Aの参照ピクチャ0、1)、あるいは同じ参照ピクチャインデックスの値を割り当てることが可能である(図1Aの参照ピクチャ2)。
また、H.264と呼ばれる動画像符号化方式(非特許文献1)では、Bピクチャにおける各符号化対象ブロックのインター予測の符号化モードとして、動きベクトル検出モードが用いられる。動きベクトル検出モードでは、予測画像データおよび符号化対象ブロックの画像データの差分値と、予測画像データ生成に用いた動きベクトルとが符号化される。また、動きベクトル検出モードでは、予測方向として、双方向予測と片方向予測とを選択することができる。双方向予測では、符号化対象ピクチャの前方または後方にある既に符号化済みの2つのピクチャを参照して予測画像が生成される。片方向予測では、前方または後方にある既に符号化済みの1つのピクチャを参照して予測画像が生成される。
また、H.264と呼ばれる動画像符号化方式では、Bピクチャの符号化において、動きベクトルを導出する際に、時間予測動きベクトルモードと呼ばれる符号化モードを選択することができる。時間予測動きベクトルモードにおけるインター予測符号化方法を、図2を用いて説明する。
図2は、時間予測動きベクトルモードにおける動きベクトルを説明するための図である。具体的には、図2は、ピクチャB2のブロックaを時間予測動きベクトルモードで符号化する場合を示している。
ここでは、ピクチャB2の後方にある参照ピクチャであるピクチャP3内の、ブロックaと同じ位置にあるブロックb(以下、「co−locatedブロック」と呼ぶ)の符号化に用いられた動きベクトルvbが利用されている。動きベクトルvbは、ブロックbがピクチャP1を参照して符号化された際に用いられた動きベクトルである。
動きベクトルvbに平行な動きベクトルを用いて、前方向参照ピクチャであるピクチャP1と、後方参照ピクチャであるピクチャP3とから、ブロックaのための2つの参照ブロックが取得される。そして、取得された2つの参照ブロックに基づいて2方向予測を行うことにより、ブロックaが符号化される。すなわち、ブロックaを符号化する際に用いられる動きベクトルは、ピクチャP1に対しては動きベクトルva1であり、ピクチャP3に対しては動きベクトルva2である。
また、BピクチャあるいはPピクチャにおける各符号化対象ブロックの動きベクトルを符号化する方法として、予測動きベクトル指定モードが検討されている(非特許文献2)。予測動きベクトル指定モードでは、符号化対象ブロックの隣接ブロックを符号化する際に用いられた動きベクトルから予測動きベクトル候補を生成する。そして、予測動きベクトル候補の中から予測動きベクトルを選択して、符号化対象ブロックの動きベクトルの符号化が行われる。この際に、選択された予測動きベクトルのインデックス等がビットストリームに付加される。これによって、復号化時にも、符号化時に用いられた予測動きベクトルと同一の予測動きベクトルを選択できるようになる。具体例を、図3を参照して説明する。
図3は、予測動きベクトル指定モードにおいて用いられる隣接ブロックの動きベクトルの一例を示す図である。図3において、隣接ブロックAは、符号化対象ブロックの左隣接の符号化済みブロックである。隣接ブロックBは、符号化対象ブロックの上隣接の符号化済みブロックである。隣接ブロックCは、符号化対象ブロックの右上隣接の符号化済みブロックである。隣接ブロックDは、符号化対象ブロックの左下隣接の符号化済みブロックである。
また、図3において、符号化対象ブロックは、動き検出等の結果、予測方向0の参照ピクチャインデックスRefL0が示す参照ピクチャに対する動きベクトルとして、予測方向0の動きベクトルMvL0を持ち、予測方向1の参照ピクチャインデックスRefL1が示す参照ピクチャに対する動きベクトルとして、予測方向1の動きベクトルMvL1を持つ、双方向予測で符号化されたブロックである。ここで、MvL0とは、参照ピクチャリスト0(L0)により特定される参照ピクチャを参照する動きベクトルである。また、MvL1とは、参照ピクチャリスト1(L1)により特定される参照ピクチャを参照する動きベクトルである。
また、隣接ブロックAは、予測方向0の片方向予測で符号化されたブロックである。隣接ブロックAは、予測方向0の参照ピクチャインデックスRefL0_Aが示す参照ピクチャに対する動きベクトルとして、予測方向0の動きベクトルMvL0_Aを持つ。また、隣接ブロックBは、予測方向1の片方向予測で符号化されたブロックである。隣接ブロックBは、予測方向1の参照ピクチャインデックスRefL1_Bが示す参照ピクチャに対する動きベクトルとして、予測方向1の動きベクトルMvL1_Bを持つ。また、隣接ブロックCは、イントラ予測で符号化されたブロックである。また、隣接ブロックDは、予測方向0の片方向予測で符号化されたブロックである。隣接ブロックDは、予測方向0の参照ピクチャインデックスRefL0_Dが示す参照ピクチャに対する動きベクトルとして、予測方向0の動きベクトルMvL0_Dを持つ。
このような場合では、符号化対象ブロックの予測動きベクトルとして、例えば、隣接ブロックA、B、C、Dの動きベクトル、および、co−locatedブロックを用いて求めた時間予測動きベクトルモードによる動きベクトルから生成された予測動きベクトル候補の中から、符号化対象ブロックの動きベクトルを最も効率よく符号化できる予測動きベクトルが選択される。そして、選択された予測動きベクトルを表す予測動きベクトルインデックスがビットストリームに付加される。例えば、符号化対象ブロックの予測方向0の動きベクトルMvL0を符号化する際に、隣接ブロックAの予測方向0の動きベクトルMvL0_Aが、予測動きベクトルとして選択された場合、図4に示すように、隣接ブロックAから生成した予測動きベクトル候補が用いられたことを表す予測動きベクトルインデックスの値「0」のみがビットストリームに付随される。これにより、符号化対象ブロックの予測方向0の動きベクトルMvL0の情報量を削減できる。
ここで、図4は、予測方向0の予測動きベクトル候補リストの一例を示す図である。また、図4に示すように、予測動きベクトル指定モードでは、予測動きベクトルの生成が不可能である候補(以下、「予測不可能候補」と呼ぶ)、または他の予測動きベクトル候補と値が一致する候補(以下、「重複候補」と呼ぶ)が、予測動きベクトル候補から削除される。このように、予測動きベクトル候補数を削減することで、予測動きベクトルインデックスに割り当てる符号量が削減される。ここで、予測動きベクトルの生成が不可能であるということは、隣接ブロックが、(1)イントラ予測で符号化されたブロックであること、(2)符号化対象ブロックを含むスライスまたはピクチャ境界外のブロックであること、または、(3)まだ符号化されていないブロックであること等を表している。
図4の例では、隣接ブロックCがイントラ予測で符号化されている。そのため、予測動きベクトルインデックスの値が「3」の予測候補は、予測不可能候補であり、予測動きベクトル候補リストから削除される。また、隣接ブロックDから生成された予測方向0の予測動きベクトルは、隣接ブロックAから生成された予測方向0の予測動きベクトルと値が一致しているため、予測動きベクトルインデックスの値が「4」の予測候補は、予測動きベクトル候補リストから削除される。その結果、最終的に、予測方向0の予測動きベクトル候補数は3となり、予測方向0の予測動きベクトル候補リストのリストサイズは3に設定される。
また、図5は、予測方向1の予測動きベクトル候補リストの一例を示す図である。図5に示す例では、予測不可能候補および重複候補の削除によって、最終的に予測方向1の予測動きベクトル候補数2となり、予測方向1の予測動きベクトル候補リストのリストサイズは2に設定される。
予測動きベクトルインデックスは、予測動きベクトル候補リストサイズの大きさに応じて、図6に示すように、ビット列が割り当てられ、可変長符号化される。また、予測動きベクトル候補リストサイズが1の場合は、予測動きベクトルインデックスをビットストリームに付随させず、復号化側で値0と推定させる。このように、予測動きベクトル指定モードでは、予測動きベクトルインデックスに割り当てるビット列を、予測動きベクトル候補リストサイズの大きさによって変化させることにより、符号量を削減している。
図7は、予測動きベクトル指定モードを用いる場合の符号化処理の一例を示すフローチャートである。
ステップS1001では、隣接ブロックおよびco−locatedブロック(以下、「予測ブロック候補」と呼ぶ)から、予測方向Xの予測動きベクトル候補が算出される。ここで、Xは「0」または「1」の値をとり、それぞれ予測方向0または予測方向1を表す。予測方向Xの予測動きベクトル候補sMvLXは、予測ブロック候補の動きベクトルMvLX_Nと参照ピクチャインデックスRefLX_N、および、符号化対象ブロックの参照ピクチャインデックスRefLXを用いて、以下の式で算出される。
sMvLX=
MvLX_N×(POC(RefLX)−curPOC)/(POC(RefLX_N)−curPOC) …(式1)
ここで、POC(RefLX)は、参照ピクチャインデックスRefLXが示す参照ピクチャの表示順を、POC(RefLX_N)は、参照ピクチャインデックスRefLX_Nが示す参照ピクチャの表示順を、curPOCは、符号化対象ピクチャの表示順を示す。なお、予測ブロック候補が予測方向Xの動きベクトルMvLX_Nを持たない場合は、予測方向(1−X)の動きベクトルMvL(1−X)_Nと参照ピクチャインデックスRefL(1−X)_Nを用いて、式2により予測動きベクトルsMvLXを算出する。
sMvLX=
MvL(1-X)_N×(POC(RefLX)−curPOC)/(POC(RefL(1-X)_N)−curPOC) …(式2)
図8A、図8Bに式1、式2による予測動きベクトルの算出例を示す図である。なお、式1、式2に示すように、POC(RefLX)とPOC(RefLX_N)の値が同じ場合、つまり、同一のピクチャを参照する場合は、スケーリングを省略できる。
ステップS1002では、予測方向Xの予測動きベクトル候補から重複候補および予測不可能候補が削除される。ステップS1003では、削除処理後の予測動きベクトル候補数が、予測動きベクトル候補リストサイズに設定される。ステップS1004では、符号化対象ブロックの予測方向Xの動きベクトル符号化に用いる予測動きベクトルインデックスが決定される。ステップS1005において、決定された予測動きベクトルインデックスが、予測動きベクトル候補リストサイズによって決められたビット列を用いて可変長符号化される。
図9は、予測動きベクトル指定モードを用いて動画像を符号化する動画像符号化装置1000の構成の一例を示すブロック図である。
動画像符号化装置1000は、図9に示すように、減算部1001と、直交変換部1002と、量子化部1003と、逆量子化部1004と、逆直交変換部1005と、加算部1006、ブロックメモリ1007と、フレームメモリ1008と、イントラ予測部1009と、インター予測部1010と、インター予測制御部1011と、ピクチャタイプ決定部1012と、スイッチ1013と、予測動きベクトル候補算出部1014と、colPicメモリ1015と、可変長符号化部1016とを備える。
図9において、予測動きベクトル候補算出部1014は、予測動きベクトル候補を算出する。そして、予測動きベクトル候補算出部1014は、算出した予測動きベクトル候補数を可変長符号化部1016に送信する。可変長符号化部1016は、予測動きベクトル候補数を符号化パラメータである予測動きベクトル候補リストサイズに設定する。そして、可変長符号化部1016は、符号化に用いられた予測動きベクトルインデックスに、予測動きベクトル候補リストサイズに応じたビット列を割り当てて可変長符号化を行う。
図10は、予測動きベクトル指定モードを用いる場合の復号化処理の一例を示すフローチャートである。
ステップS2001では、隣接ブロックおよびco−locatedブロック(予測ブロック候補)から、予測方向Xの予測動きベクトル候補を算出する。ステップS2002では、予測動きベクトル候補から重複候補および予測不可能候補が削除される。ステップS2003では、削除処理後の予測動きベクトル候補数が、予測動きベクトル候補リストサイズに設定される。ステップS2004では、ビットストリームから、復号化対象ブロックの復号化に用いる予測動きベクトルインデックスが、予測動きベクトル候補リストサイズを用いて復号化される。ステップS2005において、復号化された予測動きベクトルインデックが示す予測動きベクトル候補に、差分動きベクトルが加算されて動きベクトルが算出され、算出された動きベクトルを用いて、予測画像が生成され、復号化処理が行われる。
図11は、予測動きベクトル指定モードを用いて符号化された動画像を復号化する動画像復号化装置の構成の一例を示すブロック図である。
動画像復号化装置2000は、図11に示すように、可変長復号化部2001と、逆量子化部2002と、逆直交変換部2003と、加算部2004と、ブロックメモリ2005と、フレームメモリ2006と、イントラ予測部2007と、インター予測部2008と、インター予測制御部2009と、スイッチ2010と、予測動きベクトル候補算出部2011と、colPicメモリ2012とを備える。
図11において、予測動きベクトル候補算出部2011は、予測動きベクトル候補を算出する。そして、予測動きベクトル候補算出部2011は、算出した予測動きベクトル候補数を可変長復号化部2001に送信する。可変長復号化部2001は、予測動きベクトル候補数を復号化パラメータである予測動きベクトル候補リストサイズに設定する。そして、可変長復号化部2001は、ビットストリームに含まれる予測動きベクトルインデックスを、予測動きベクトル候補リストサイズを用いて復号化する。
図12は、予測動きベクトルインデックスをビットストリームに付加する際のシンタックスを表す図である。図12において、inter_pred_flagは、インター予測の予測方向フラグを表す。mvp_idxは、予測動きベクトルインデックスを表す。NumMVPCandは、予測動きベクトル候補リストサイズを表す。このNumMVPCandは、予測動きベクトル候補から、予測不可能候補および重複候補を削除した後の予測動きベクトル候補数が設定されている。
以上のように、予測動きベクトル指定モードを用いて動画像が符号化または復号化される。
しかしながら、上記の予測動きベクトル指定モードでは、符号化対象ブロックの動きベクトルを符号化する際の予測動きベクトルの候補が、符号化対象ブロックの隣接ブロック等で用いられた動きベクトルから算出される。よって、例えば、隣接ブロックが動物体領域であり、符号化対象ブロックが静止領域であった場合、符号化対象ブロックの予測動きベクトル候補が動物体領域の影響を受ける。このため、比較的値の小さい符号化対象ブロックの動きベクトルを効率的に符号化するための予測動きベクトルが予測動きベクトル候補に存在せず、符号化効率が低下する場合がある。
そこで、本発明は、予測動きベクトル候補リストに、静止領域用の予測動きベクトルを追加することによって、符号化効率を向上することができる動画像符号化方法を提供することを目的とする。
そこで、本発明の一態様に係る動画像符号化方法は、符号化対象ブロックの動きベクトルを符号化する際に用いる予測動きベクトルを算出して、前記符号化対象ブロックを符号化することでビットストリームを生成する動画像符号化方法であって、符号化対象ブロックに空間的または時間的に隣接するブロックの符号化に用いられた動きベクトルに基づいて第1予測動きベクトル候補を導出する第1導出ステップと、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出する第2導出ステップと、前記第1予測動きベクトル候補および前記第2予測動きベクトル候補の中から前記符号化対象ブロックの前記動きベクトルの符号化に用いる前記予測動きベクトルを選択する選択ステップと、前記予測動きベクトルを特定するためのインデックスを前記ビットストリームに付加する符号化ステップとを含む。
これによれば、予め定められたベクトルを動きベクトルとして持つ予測動きベクトル候補を第2予測動きベクトル候補として導出することができる。したがって、例えば静止領域用の動きベクトルを持つ予測動きベクトル候補を第2予測動きベクトル候補として導出することができる。つまり、予め定められた動きを有する符号化対象ブロックを効率的に符号化することができ、符号化効率を向上させることが可能となる。
例えば、前記予め設定されたベクトルは、零ベクトルであってもよい。
これによれば、予め定められたベクトルが零ベクトルであるので、静止領域用の動きベクトルを持つ予測動きベクトル候補を導出することが可能となる。したがって、符号化対象ブロックが静止領域である場合に、符号化効率を向上させることが可能となる。
例えば、前記動画像符号化方法は、さらに、予測動きベクトル候補の最大数を決定する決定ステップと、導出された前記第1予測動きベクトル候補の数が前記最大数より小さいか否かを判定する判定ステップとを含み、前記第2導出ステップでは、前記第1予測動きベクトル候補の数が前記最大数より小さいと判定された場合に、前記第2予測動きベクトル候補を導出してもよい。
これによれば、第1予測動きベクトル候補が最大数より小さいと判定された場合に、第2予測動きベクトル候補を導出することができる。したがって、最大数を超えない範囲で予測動きベクトル候補の数を増加させることができ、符号化効率を向上させることが可能となる。
例えば、前記符号化ステップでは、決定された前記最大数を用いて前記インデックスを符号化し、符号化された前記インデックスを前記ビットストリームに付加してもよい。
これによれば、予測動きベクトル候補を特定するためのインデックスを、決定された最大数を用いて符号化することができる。つまり、実際に導出される予測動きベクトル候補の数に依存せずに、インデックスを符号化することができる。したがって、予測動きベクトル候補の導出に必要な情報(例えば、co−locatedブロック等の情報)がロスされた場合でも、復号化側ではインデックスを復号化することができ、エラー耐性を向上させることが可能となる。また、復号化側では、実際に導出される予測動きベクトル候補の数に依存せずにインデックスを復号化できる。つまり、復号化側では、予測動きベクトル候補の導出処理を待たずにインデックスの復号化処理を行うことができる。すなわち、予測動きベクトル候補の導出処理とインデックスの復号化処理とを並列に行うことが可能なビットストリームを生成することができる。
例えば、前記符号化ステップでは、さらに、決定された前記最大数を示す情報を前記ビットストリームに付加してもよい。
これによれば、決定された最大数を示す情報をビットストリームに付加することができる。したがって、適切な単位で最大数を切り替えることができ、符号化効率を向上させることが可能となる。
例えば、前記第1導出ステップでは、前記符号化対象ブロックに空間的に隣接するブロックのうち、イントラ予測で符号化されたブロック、前記符号化対象ブロックを含むスライスもしくはピクチャ境界外に位置するブロック、およびまだ符号化されていないブロックを除くブロックの符号化に用いられた動きベクトルを、前記第1予測動きベクトル候補として導出してもよい。
これによれば、予測動きベクトル候補を得るために適切なブロックから第1予測動きベクトル候補を導出することができる。
例えば、前記第1導出ステップでは、動きベクトルが既に導出された第1予測動きベクトル候補と重複しない予測動きベクトル候補を前記第1予測動きベクトル候補として導出してもよい。
これによれば、動きベクトルが、既に導出された第1予測動きベクトル候補と重複する予測動きベクトル候補を、第1予測動きベクトル候補から排除することができる。その結果、第2予測動きベクトル候補の数を増加させることができ、予測動きベクトル候補として選択可能な、動きベクトルの種類を増やすことができる。したがって、さらに符号化効率を向上させることが可能となる。
例えば、前記動画像符号化方法は、さらに、第1規格に準拠する第1符号化処理、または第2規格に準拠する第2符号化処理に、符号化処理を切り替える切り替えステップと、切り替えられた前記符号化処理が準拠する前記第1規格または前記第2規格を示す識別情報を前記ビットストリームに付加する付加ステップとを含み、前記符号化処理が前記第1符号化処理に切り替えられた場合に、前記第1符号化処理として、前記第1導出ステップと、前記第2導出ステップと、前記選択ステップと、前記符号化ステップとが行われてもよい。
これによれば、第1規格に準拠する第1符号化処理と第2規格に準拠する第2符号化処理とを切り替えることが可能となる。
また、本発明の一態様に係る動画像復号化方法は、ビットストリームに含まれる復号化対象ブロックの動きベクトルを復号化する際に用いる予測動きベクトルを算出して、前記復号化対象ブロックを復号化する動画像復号化方法であって、復号化対象ブロックに空間的または時間的に隣接するブロックの復号化に用いられた動きベクトルに基づいて第1予測動きベクトル候補を導出する第1導出ステップと、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出する第2導出ステップと、前記予測動きベクトル候補を特定するためのインデックスを前記ビットストリームから取得する取得ステップと、取得された前記インデックスに基づいて、前記第1予測動きベクトル候補および前記第2予測動きベクトル候補の中から、前記復号化対象ブロックを復号化する際に用いる予測動きベクトルを選択する選択ステップとを含む。
これによれば、予め定められたベクトルを動きベクトルとして持つ予測動きベクトル候補を第2予測動きベクトル候補として導出することができる。したがって、例えば静止領域用の動きベクトルなどを持つ予測動きベクトル候補を第2予測動きベクトル候補として導出することができる。つまり、予め定められた動きを有するブロックが効率的に符号化されたビットストリームを適切に復号することができ、符号化効率が向上されたビットストリームを適切に復号することが可能となる。
例えば、前記予め設定されたベクトルは、零ベクトルであってもよい。
これによれば、予め定められたベクトルが零ベクトルであるので、静止領域用の動きベクトルを持つ予測動きベクトル候補を導出することが可能となる。したがって、符号化効率が向上されたビットストリームを適切に復号することが可能となる。
例えば、前記動画像復号化方法は、さらに、予測動きベクトル候補の最大数を決定する決定ステップと、導出された前記第1予測動きベクトル候補の数が前記最大数より小さいか否かを判定する判定ステップとを含み、前記第2導出ステップでは、前記第1予測動きベクトル候補数が前記最大数より小さいと判定された場合に、前記第2予測動きベクトル候補を導出してもよい。
これによれば、第1予測動きベクトル候補の数が最大数より小さいと判定された場合に、第2予測動きベクトル候補を導出することができる。したがって、最大数を超えない範囲で予測動きベクトル候補の数を増加させることができ、符号化効率が向上されたビットストリームを適切に復号することが可能となる。
例えば、前記取得ステップでは、前記ビットストリームに付加された符号化された前記インデックスを、決定された前記最大数を用いて復号することにより、前記インデックスを取得してもよい。
これによれば、予測動きベクトル候補を特定するためのインデックスを、決定された最大数を用いて復号することができる。つまり、実際に導出される予測動きベクトル候補の数に依存せずに、インデックスを復号することができる。したがって、予測動きベクトル候補の導出に必要な情報(例えば、co−locatedブロック等の情報)がロスされた場合でも、インデックスを復号することができ、エラー耐性を向上させることが可能となる。さらに、予測動きベクトル候補の導出処理を待たずにインデックスの復号処理を行うことができ、予測動きベクトル候補の導出処理とインデックスの復号処理とを並列に行うことも可能となる。
例えば、前記決定ステップでは、前記ビットストリームに付加された最大数を示す情報に基づいて、前記最大数を決定してもよい。
これによれば、ビットストリームに付加された情報に基づいて最大数を決定することができる。したがって、適切な単位で最大数を切り替えて符号化された画像を復号することが可能となる。
例えば、前記第1導出ステップでは、前記復号化対象ブロックに空間的に隣接するブロックのうち、イントラ予測で復号されたブロック、前記復号化対象ブロックを含むスライスもしくはピクチャ境界外に位置するブロック、およびまだ復号化されていないブロックを除くブロックの復号化に用いられた動きベクトルを、前記第1予測動きベクトル候補として導出してもよい。
これによれば、予測動きベクトル候補を得るために適切なブロックから第1予測動きベクトル候補を導出することができる。
例えば、前記第1導出ステップでは、動きベクトルが既に導出された第1予測動きベクトル候補と重複しない予測動きベクトル候補を前記第1予測動きベクトル候補として導出してもよい。
これによれば、動きベクトルが、既に導出された第1予測動きベクトル候補と重複する予測動きベクトル候補を、第1予測動きベクトル候補から排除することができる。その結果、第2予測動きベクトル候補の数を増加させることができ、予測動きベクトル候補として選択可能な、予測方向、動きベクトルおよび参照ピクチャインデックスの組合せの種類を増やすことができる。したがって、さらに符号化効率が向上されたビットストリームを適切に復号することが可能となる。
例えば、前記動画像復号化方法は、さらに、前記ビットストリームに付加された第1規格または第2規格を示す識別情報に応じて、前記第1規格に準拠する第1復号処理、または前記第2規格に準拠する第2復号処理に、復号処理を切り替える切り替えステップを含み、前記復号処理が第1復号処理に切り替えられた場合に、前記第1復号処理として、前記第1導出ステップと、前記第2導出ステップと、前記取得ステップと、前記選択ステップとが行われてもよい。
これによれば、第1規格に準拠する第1復号処理と第2規格に準拠する第2復号処理とを切り替えることが可能となる。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、本発明の一態様に係る動画像符号化装置および動画像復号化装置について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
図13は、実施の形態1に係る動画像符号化装置100の構成を示すブロック図である。
動画像符号化装置100は、図13に示すように、減算部101、直交変換部102、量子化部103、逆量子化部104、逆直交変換部105、加算部106、ブロックメモリ107、フレームメモリ108、イントラ予測部109、インター予測部110、インター予測制御部111、ピクチャタイプ決定部112、スイッチ113、予測動きベクトル候補算出部114、colPicメモリ115、および可変長符号化部116を備えている。
減算部101は、ブロックごとに、入力画像列に含まれる入力画像データから予測画像データを減算することにより予測誤差データを生成する。直交変換部102は、生成された予測誤差データに対し、画像領域から周波数領域への変換を行う。量子化部103は、周波数領域に変換された予測誤差データに対し、量子化処理を行う。
逆量子化部104は、量子化部103によって量子化処理された予測誤差データに対し、逆量子化処理を行う。逆直交変換部105は、逆量子化処理された予測誤差データに対し、周波数領域から画像領域への変換を行う。
加算部106は、符号化対象ブロックごとに、予測画像データと、逆直交変換部105によって逆量子化処理された予測誤差データとを加算することにより、再構成画像データを生成する。ブロックメモリ107には、再構成画像データがブロック単位で保存される。フレームメモリ108には、再構成画像データがフレーム単位で保存される。
ピクチャタイプ決定部112は、Iピクチャ、Bピクチャ、およびPピクチャのいずれのピクチャタイプで入力画像データを符号化するかを決定する。そして、ピクチャタイプ決定部112は、ピクチャタイプ情報を生成する。イントラ予測部109は、ブロックメモリ107に保存されているブロック単位の再構成画像データを用いてイントラ予測を行うことにより、符号化対象ブロックのイントラ予測画像データを生成する。インター予測部110は、フレームメモリ108に保存されているフレーム単位の再構成画像データと、動き検出等により導出した動きベクトルとを用いてインター予測を行うことにより、符号化対象ブロックのインター予測画像データを生成する。
スイッチ113は、符号化対象ブロックがイントラ予測符号化される場合に、イントラ予測部109によって生成されたイントラ予測画像データを、符号化対象ブロックの予測画像データとして減算部101および加算部106に出力する。一方、スイッチ113は、符号化対象ブロックがインター予測符号化される場合に、インター予測部110によって生成されたインター予測画像データを、符号化対象ブロックの予測画像データとして減算部101および加算部106に出力する。
予測動きベクトル候補算出部114は、符号化対象ブロックの隣接ブロックの動きベクトル等、および、colPicメモリ115に格納されているco−locatedブロックの動きベクトル等のcolPic情報を用いて、予測動きベクトル指定モードの予測動きベクトル候補を導出する。そして、予測動きベクトル候補算出部114は、後述する方法で、予測動きベクトル候補数を算出する。また、予測動きベクトル候補算出部114は、導出した予測動きベクトル候補に対して、予測動きベクトルインデックスの値を割り当てる。そして、予測動きベクトル候補算出部114は、予測動きベクトル候補と、予測動きベクトルインデックスとを、インター予測制御部111に送る。また、予測動きベクトル候補算出部114は、算出した予測動きベクトル候補数を可変長符号化部116に送信する。
インター予測制御部111は、動き検出により導出された動きベクトルを用いて生成したインター予測画像を用いて、インター予測符号化を行うようインター予測部110を制御する。また、インター予測制御部111は、インター予測符号化に用いた動きベクトルの符号化に最適な予測動きベクトル候補を後述する方法で選択する。そして、インター予測制御部111は、選択した予測動きベクトル候補に対応する予測動きベクトルインデックスと、予測の誤差情報(差分動きベクトル)とを、可変長符号化部116に送る。さらに、インター予測制御部111は、符号化対象ブロックの動きベクトル等を含むcolPic情報をcolPicメモリ115に転送する。
可変長符号化部116は、量子化処理された予測誤差データ、予測方向フラグ、ピクチャタイプ情報、および差分動きベクトルに対し、可変長符号化処理を行うことで、ビットストリームを生成する。また、可変長符号化部116は、予測動きベクトル候補数を予測動きベクトル候補リストサイズに設定する。そして、可変長符号化部116は、動きベクトル符号化に用いた予測動きベクトルインデックスに、予測動きベクトル候補リストサイズに応じたビット列を割り当てて可変長符号化を行う。
図14は、実施の形態1に係る動画像符号化装置100の処理動作を示すフローチャートである。
ステップS101では、インター予測制御部111は、動き検出により、符号化対象ブロックの予測方向、参照ピクチャインデックスおよび、動きベクトルを決定する。ここで、動き検出では、例えば、符号化ピクチャ内の符号化対象ブロックと、参照ピクチャ内のブロックとの差分値を算出し、最も差分値の小さい参照ピクチャ内のブロックが参照ブロックとして決定される。そして、符号化対象ブロック位置と、参照ブロック位置とから、動きベクトルを求める方法などを用いて、動きベクトルが求められる。また、インター予測制御部111は、予測方向0と予測方向1との参照ピクチャに対し、それぞれ動き検出を行い、予測方向0、または、予測方向1、または、双方向予測を選択するかどうかを、例えば、R−D最適化モデルの以下の式等で算出する。
Cost=D+λ×R …(式3)
式3において、Dは符号化歪を表し、ある動きベクトルで生成した予測画像を用いて符号化対象ブロックを符号化および復号化して得られた画素値と、符号化対象ブロックの元の画素値との差分絶対値和などを用いる。また、Rは発生符号量を表し、予測画像生成に用いた動きベクトルを符号化することに必要な符号量などを用いる。また、λはラグランジュの未定乗数である。
ステップS102では、予測動きベクトル候補算出部114は、符号化対象ブロックの隣接ブロックおよびco−locatedブロックから予測動きベクトル候補を導出する。また、予測動きベクトル候補算出部114は、後述する方法で、予測動きベクトル候補リストサイズを算出する。
例えば、図3のような場合では、予測動きベクトル候補算出部114は、符号化対象ブロックの予測動きベクトル候補として、例えば、隣接ブロックA、B、C、およびDの持つ動きベクトルを選択する。さらに、予測動きベクトル候補算出部114は、co−locatedブロックの動きベクトルから時間予測モードによって算出した動きベクトル等を予測動きベクトル候補として算出する。
予測動きベクトル候補算出部114は、図15(a)および図16(a)のように予測方向0および予測方向1の予測動きベクトル候補に対して予測動きベクトルインデックスを割り当てる。そして、予測動きベクトル候補算出部114は、後述する方法で、予測不可能候補および重複候補の削除、およびzero候補を行うことにより、図15(b)および図16(b)のような予測動きベクトル候補リスト、および、予測動きベクトル候補リストサイズを算出する。
予測動きベクトルインデックスは、値が小さいほど短い符号が割り振られる。即ち、予測動きベクトルインデックスの値が小さい場合に予測動きベクトルインデックスに必要な情報量が少なくなる。一方、予測動きベクトルインデックスの値が大きくなると、予測動きベクトルインデックスに必要な情報量が大きくなる。従って、より精度が高い予測動きベクトルとなる可能性の高い予測動きベクトル候補に対して、値の小さい予測動きベクトルインデックスが割り当てられると、符号化効率が高くなる。
そこで、予測動きベクトル候補算出部114は、例えば、予測動きベクトルとして選ばれた回数を予測動きベクトル候補毎に計測し、その回数が多い予測動きベクトル候補に対し、値の小さい予測動きベクトルインデックスを割り当ててもよい。具体的には、隣接ブロックにおいて選択された予測動きベクトルを特定しておき、対象ブロックの符号化の際に、特定した予測動きベクトル候補に対する予測動きベクトルインデックスの値を小さくすることが考えられる。
なお、隣接ブロックが、動きベクトル等の情報を有しない場合(イントラ予測で符号化されたブロックである場合、ピクチャやスライスの境界外などに位置するブロックである場合、まだ符号化されていないブロックである場合など)には、予測動きベクトル候補として利用できない。
本実施の形態では、予測動きベクトル候補として利用できないことを予測不可能候補と呼ぶ。また、予測動きベクトル候補として利用できることを予測可能候補と呼ぶ。また、複数の予測動きベクトル候補において、他のいずれかの予測動きベクトルと値が一致している候補を重複候補と呼ぶ。
図3の場合では、隣接ブロックCは、イントラ予測で符号化されたブロックであるので、予測不可能候補とする。また、隣接ブロックDから生成される予測方向0の予測動きベクトルsMvL0_Dは、隣接ブロックAから生成される予測方向0の予測動きベクトルMvL0_Aと値が一致しており、重複候補とする。
ステップS103では、インター予測制御部111は、予測方向Xの動きベクトル符号化に用いる予測動きベクトルインデックスの値を、後述する方法で決定する。
ステップS104では、可変長符号化部116は、予測方向Xの動きベクトル符号化に用いる予測動きベクトル候補の予測動きベクトルインデックスに図6に示すような予測動きベクトル候補リストサイズに応じたビット列を割り当て、可変長符号化を行う。
本実施の形態では、図15(a)および図16(a)のように、隣接ブロックAに対応する予測動きベクトルインデックスの値として「0」が割り当てられる。また、隣接ブロックBに対応する予測動きベクトルインデックスの値として「1」が割り当てられる。また、co−locatedブロックに対応する予測動きベクトルインデックスの値として「2」が割り当てられる。また、隣接ブロックCに対応する予測動きベクトルインデックスの値として「3」が割り当てられる。また、隣接ブロックDに対応する予測動きベクトルインデックスの値として「4」が割り当てられる。
なお、必ずしも、予測動きベクトルインデックスの値の割り当て方は、この例に限らない。例えば、可変長符号化部116は、後述する方法を用いてzero候補が追加された場合などには、元々の予測動きベクトル候補には小さい値を割り当て、zero候補には大きい値を割り当ててもよい。つまり、可変長符号化部116は、元々の予測動きベクトル候補に優先して小さな値の予測動きベクトルブロックインデックスを割り当てても構わない。
また、必ずしも、予測動きベクトル候補は、隣接ブロックA、B、C、Dの位置に限定されない。例えば、左下隣接ブロックDの上に位置する隣接ブロック等が予測動きベクトル候補として用いられても構わない。また、必ずしもすべての隣接ブロックが予測動きベクトル候補として使用される必要はない。例えば、隣接ブロックA、Bのみが予測動きベクトル候補として用いられても良い。または、隣接ブロックDが予測不可能候補ならば、隣接ブロックAを用いるなど、隣接ブロックを順にスキャンするようにしても構わない。
また、本実施の形態では、図14のステップS104において、可変長符号化部116は、予測動きベクトルインデックスをビットストリームに付加したが、必ずしも予測動きベクトルインデックスをビットストリームに付加する必要はない。例えば、可変長符号化部116は、予測動きベクトル候補リストサイズが1の場合には、予測動きベクトルインデックスをビットストリームに付加しなくても構わない。これにより、予測動きベクトルインデックスの情報量を削減できる。
図17は、図14のステップS102の詳細な処理を示すフローチャートである。具体的には、図17は、予測動きベクトル候補、および、予測動きベクトル候補リストサイズを算出する方法を表す。以下、図17について説明する。
ステップS111では、予測動きベクトル候補算出部114は、予測ブロック候補[N]が予測可能候補であるかどうかを後述する方法で判定する。
ここで、Nは各予測ブロック候補を表すためのインデックス値である。本実施の形態では、Nは0から4までの値をとる。具体的には、予測ブロック候補[0]には、図3の隣接ブロックAが割り振られる。また、予測ブロック候補[1]には図3の隣接ブロックBが割り振られる。また、予測ブロック候補[2]にはco−locatedブロックが割り振られる。また、予測ブロック候補[3]には図3の隣接ブロックCが割り振られる。また、予測ブロック候補[4]には図3の隣接ブロックDが割り振られる。
ステップS112では、予測動きベクトル候補算出部114は、予測ブロック候補[N]から、予測方向Xの予測動きベクトル候補を、上記の式1、式2を用いて算出して、予測動きベクトル候補リストに追加する。
ステップS113では、予測動きベクトル候補算出部114は、図15および図16に示すように、予測動きベクトル候補リストから予測不可能候補および重複候補を探索し、削除する。
ステップS114では、予測動きベクトル候補算出部114は、後述する方法で、予測動きベクトル候補リストにzero候補を追加する。ここで、zero候補を追加する際には、予測動きベクトル候補算出部114は、元々ある予測動きベクトル候補に優先して小さい予測動きベクトルインデックスが割り当たるように、予測動きベクトルインデックスの値の再割り当てを行ってもよい。つまり、予測動きベクトル候補算出部114は、zero候補には値が大きい予測動きベクトルインデックスが割り当たるように、予測動きベクトルインデックスの値の再割り当てを行っても構わない。これにより予測動きベクトルインデックスの符号量を削減できる。
ステップS115では、予測動きベクトル候補算出部114は、ステップS114でzero候補が追加された後の予測動きベクトル候補数を予測動きベクトル候補リストサイズに設定する。図15および図16の例では、後述する方法により、予測方向0の予測動きベクトル候補数は「4」と算出され、予測方向0の予測動きベクトル候補リストサイズには「4」が設定される。また、予測方向1の予測動きベクトル候補数は「3」と算出され、予測方向1の予測動きベクトル候補リストサイズには「3」に設定される。
このように、予測動きベクトル候補数が最大予測動きベクトル候補数に達していない場合には、予測動きベクトル候補算出部114は、zero候補を追加することによって、符号化効率を向上できる。
図18は、図17のステップS111の詳細な処理を示すフローチャートである。具体的には、図18は、予測ブロック候補[N]が予測可能候補であるかどうかを判定する方法を表す。以下、図18について説明する。
ステップS121では、予測動きベクトル候補算出部114は、予測ブロック候補[N]が、(1)イントラ予測で符号化されたブロック、または、(2)符号化対象ブロックを含むスライスまたはピクチャ境界外に位置するブロック、または、(3)まだ符号化されていないブロックであるかどうかを判定する。
ここで、ステップS121の判定結果が真ならば(S121のYes)、ステップS122において、予測動きベクトル候補算出部114は、予測ブロック候補[N]を予測不可能候補に設定する。一方、ステップS121の判定結果が偽ならば(S121のNo)、ステップS123において、予測動きベクトル候補算出部114は、予測ブロック候補[N]を予測可能候補に設定する。
図19は、図17のステップS114の詳細な処理を示すフローチャートである。具体的には、図19は、zero候補を追加する方法を表す。以下、図19について説明する。
ステップS131では、予測動きベクトル候補算出部114は、予測動きベクトル候補数が最大予測動きベクトル候補数より小さいか否かを判定する。つまり、予測動きベクトル候補算出部114は、予測動きベクトル候補数が最大予測動きベクトル候補数に達していないかどうかを判定する。
ここで、ステップS131の判定結果が真ならば(S131のYes)、ステップS132において、予測動きベクトル候補算出部114は、値が「0」の動きベクトルを持つzero候補が重複候補でないかどうかを判定する。ここで、ステップS132が真ならば(S132のYes)、ステップS133において、予測動きベクトル候補算出部114は、zero候補に予測動きベクトルインデックスの値を割り当て、予測動きベクトル候補リストにzero候補を追加する。さらに、ステップS134において、予測動きベクトル候補算出部114は、予測動きベクトル候補数に1を加算する。
一方、ステップS131またはステップS132の判定結果が偽ならば(S131またはS132のNo)、zero候補追加処理を終了する。つまり、予測動きベクトル候補数が最大予測動きベクトル候補数に達している場合、または、zero候補が重複候補となる場合は、zero候補追加処理を終了する。
図20は、図14のステップS103の詳細な処理を示すフローチャートである。具体的には、図20は、予測動きベクトル候補の選択に関する処理を示す。以下、図20について説明する。
ステップS141では、インター予測制御部111は、初期化として、予測動きベクトル候補インデックスmvp_idxに0を設定し、最小差分動きベクトルに値の最大値を設定する。
ステップS142では、インター予測制御部111は、予測動きベクトル候補インデックスmvp_idxの値が予測動きベクトル候補数より小さいか否かを判定する。すなわち、インター予測制御部111は、すべての予測動きベクトル候補の差分動きベクトルを算出したかどうかを判定する。
ここで、まだ予測動きベクトル候補が残っていれば(S142のYes)、ステップS143において、インター予測制御部111は、動き検出で求められた動きベクトル(動き検出結果ベクトル)から予測動きベクトル候補を差し引くことによって、差分動きベクトルを算出する。
ステップS144では、インター予測制御部111は、ステップS143で求めた差分動きベクトルが最小差分動きベクトルより値が小さいかどうかを判定する。
ここで、ステップS144の判定結果が真であれば(S144のYes)、ステップS145において、インター予測制御部111は、最小差分動きベクトルおよび予測動きベクトルインデックスの値を更新する。一方、ステップS144の判定結果が偽ならば(S144のNo)、インター予測制御部111は、最小差分動きベクトルおよび予測動きベクトルインデックスの値を更新しない。
ステップS146では、インター予測制御部111は、予測動きベクトル候補インデックスを+1で更新し、ステップS142に戻って次の予測動きベクトル候補が存在するかどうかを判定する。
一方、ステップS2において、すべての予測動きベクトル候補に対し、差分動きベクトルを算出したと判定すれば(S142のNo)、ステップS147において、インター予測制御部111は、最終的に設定されている最小差分動きベクトルおよび予測動きベクトルインデックスを確定する。
このように、本実施の形態に係る動画像符号化装置100によれば、予測動きベクトル候補リストに、静止領域用の予測動きベクトルを追加することによって、符号化効率を向上することが可能になる。より具体的には、動画像符号化装置100は、予測動きベクトル候補数が、最大予測動きベクトル候補数に達していない場合には、値が「0」の動きベクトルを持つzero候補を予測動きベクトル候補として追加することによって、符号化効率を向上できる。
なお、本実施の形態では、動画像符号化装置100は、静止領域用の動きベクトルとして、値が「0」の動きベクトルを持つzero候補を予測動きベクトル候補に追加する例を示したが、必ずしもこれには限らない。
例えば、動画像符号化装置100は、ビデオ撮影時の微小なカメラぶれ等を考慮するために、動きベクトル(0、1)など、値が「0」の動きベクトル(0、0)よりもやや大きい、または、やや小さい値を予測動きベクトル候補に追加するようにしても構わない。
また、動画像符号化装置100は、例えば、シーケンス、ピクチャ、または、スライスのヘッダ等に、オフセットパラメータ(OffsetX、OffsetY)等を付加し、動きベクトル(OffsetX、OffsetY)を予測動きベクトル候補に追加するようにしても構わない。
また、動画像符号化装置100は、例えば、予測動きベクトル候補リストを作成する際に、図21(a)に示すように、予測動きベクトル候補リスト上のすべての予測動きベクトル候補の初期値として、値が「0」の動きベクトル(0、0)を設定しておいても構わない。この場合、動画像符号化装置100は、予測動きベクトル候補を算出して、予測動きベクトル候補リストに追加する際に、初期値である動きベクトル(0、0)が上書きすることになる。そして、動画像符号化装置100は、算出された予測動きベクトル候補を予測動きベクトル候補リストに追加する前に、予測動きベクトル候補が予測不可能候補または重複候補であるか否かの判定を行う。これにより、予測不可能候補または重複候補があった場合に、例えば図21(b)に示すように、予測動きベクトル候補リストに初期値である動きベクトル(0、0)が残る。このような方法によって、zero候補を予測動きベクトル候補として追加することも可能である。
また、本実施の形態では、符号化対象ブロックの隣接ブロックから予測動きベクトル候補を生成し、符号化対象ブロックの動きベクトルの符号化を行う予測動きベクトル指定モードを用いた例を示したが、必ずしもこれに限らない。例えば、ダイレクトモードまたはスキップモードを用いてもよい。ダイレクトモードまたはスキップマージモードでは、図15(b)および図16(b)のように作成した予測動きベクトル候補から予測動きベクトルを選択し、選択した予測動きベクトルを動きベクトルとして直接予測画像を生成することで、差分動きベクトルをビットストリームに付加しなくても構わない。
(実施の形態2)
本実施の形態は、上記実施の形態1に係る動画像符号化装置の変形例である。以下、実施の形態2に係る動画像符号化装置を具体的に説明する。
図22は、実施の形態2に係る動画像符号化装置200の構成を示すブロック図である。この動画像符号化装置200は、画像をブロック毎に符号化することでビットストリームを生成する。動画像符号化装置200は、予測動きベクトル候補導出部210と、予測制御部220と、符号化部230とを備える。
予測動きベクトル候補導出部210は、上記実施の形態1における予測動きベクトルブロック候補算出部114に対応する。予測動きベクトル候補導出部210は、予測動きベクトル候補を導出する。そして、予測動きベクトル候補導出部210は、例えば、導出された各予測動きベクトル候補に、当該予測動きベクトル候補を特定するためのインデックス(以下、「予測動きベクトルインデックス」と呼ぶ)を対応付けた予測動きベクトル候補リストを生成する。
予測動きベクトル候補とは、符号化対象ブロックの符号化に用いられる動きベクトルの候補である。
図22に示すように、予測動きベクトル候補導出部210は、第1導出部211と、第2導出部212とを備える。
第1導出部211は、符号化対象ブロックに空間的または時間的に隣接するブロックの符号化に用いられた動きベクトルに基づいて第1予測動きベクトル候補を導出する。そして、第1導出部211は、例えば、このように導出された第1予測動きベクトル候補を予測動きベクトルインデックスに対応付けて予測動きベクトル候補リストに登録する。
空間的に隣接するブロックとは、符号化対象ブロックを含むピクチャ内のブロックであって、符号化対象ブロックに隣接するブロックである。具体的には、空間的に隣接するブロックは、例えば、図3に示す隣接ブロックA〜Dである。
時間的に隣接するブロックとは、符号化対象ブロックを含むピクチャと異なるピクチャに含まれるブロックであって、符号化対象ブロックと対応するブロックである。具体的には、時間的に隣接するブロックは、例えば、co−locatedブロックである。
なお、時間的に隣接するブロックは、必ずしも符号化対象ブロックと同じ位置のブロック(co−locatedブロック)である必要はない。例えば、時間的に隣接するブロックは、co−locatedブロックに隣接するブロックであってもよい。
なお、第1導出部211は、例えば、符号化対象ブロックに空間的に隣接するブロックのうち予測不可能候補であるブロックを除くブロックの符号化に用いられた動きベクトルを、第1予測動きベクトル候補として導出してもよい。予測不可能候補であるブロックとは、イントラ予測で符号化されたブロック、符号化対象ブロックを含むスライスもしくはピクチャ境界外に位置するブロック、または、まだ符号化されていないブロックである。これにより、第1導出部211は、予測動きベクトル候補を得るために適切なブロックから第1予測動きベクトル候補を導出することができる。
第2導出部212は、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出する。あらかじめ設定されたベクトルは、例えば実施の形態1のように、零ベクトルであってもよい。これにより、第2導出部212は、静止領域用の動きベクトルを持つ予測動きベクトル候補を導出することが可能となる。したがって、動画像符号化装置200は、符号化対象ブロックが静止領域である場合に、符号化効率を向上させることが可能となる。なお、予め定められたベクトルは、必ずしも零ベクトルである必要はない。
さらに、第2導出部212は、例えば、このように導出された第2予測動きベクトル候補を予測動きベクトルインデックスに対応付けて予測動きベクトル候補リストに登録する。このとき、第2導出部212は、実施の形態1と同様に、第1予測動きベクトル候補に第2予測動きベクトル候補よりも小さい値の予測動きベクトルインデックスが割り当たるように、第2予測動きベクトル候補を予測動きベクトル候補リストに登録してもよい。これにより、動画像符号化装置200は、第2予測動きベクトル候補よりも第1予測動きベクトル候補が符号化に用いられる予測動きベクトル候補として選択される可能性が高い場合に、符号量を削減でき、符号化効率を向上させることができる。
予測制御部220は、導出された第1予測動きベクトル候補および第2予測動きベクトル候補の中から、符号化対象ブロックの符号化に用いられる予測動きベクトル候補を選択する。つまり、予測制御部220は、予測動きベクトル候補リストから、符号化対象ブロックの符号化に用いられる予測動きベクトル候補を選択する。
符号化部230は、選択された予測動きベクトル候補を特定するためのインデックス(予測動きベクトルインデックス)をビットストリームに付加する。例えば、符号化部230は、導出された第1予測動きベクトル候補の数と第2予測動きベクトル候補の数との和(予測動きベクトル候補数)を用いて予測動きベクトルインデックスを符号化し、符号化された予測動きベクトルインデックスをビットストリームに付加する。
次に、以上のように構成された動画像符号化装置200の各種動作について説明する。
図23は、実施の形態2に係る動画像符号化装置200の処理動作を示すフローチャートである。
まず、第1導出部211は、第1予測動きベクトル候補を導出する(S201)。続いて、第2導出部212は、第2予測動きベクトル候補を導出する(S202)。
そして、予測制御部220は、第1予測動きベクトル候補および第2予測動きベクトル候補の中から、符号化対象ブロックの符号化に用いられる予測動きベクトルを選択する(S203)。例えば、予測制御部220は、実施の形態1と同様に、予測動きベクトル候補リストから、差分動きベクトルが最小となる予測動きベクトルを選択する。
最後に、符号化部230は、選択された予測動きベクトル候補を特定するためのインデックスをビットストリームに付加する(S204)。
以上のように、本実施の形態に係る動画像符号化装置200によれば、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出することができる。したがって、動画像符号化装置200は、例えば静止領域用の動きベクトルなどを持つ第2予測動きベクトル候補を導出することができる。つまり、動画像符号化装置200は、予め定められた動きを有する符号化対象ブロックを効率的に符号化することができ、符号化効率を向上させることが可能となる。
なお、動画像符号化装置200は、上記実施の形態1と同様に、予測動きベクトル候補リストを作成する際に、予測動きベクトル候補リスト上のすべての予測動きベクトル候補の初期値として、第2予測動きベクトル候補を設定しておいても構わない。この場合、予測動きベクトル候補導出部210は、第2予測動きベクトル候補を第1予測動きベクトル候補より先に導出することになる。このような方法によって、第2予測動きベクトル候補を予測動きベクトル候補とすることも可能である。
(実施の形態3)
図24は、実施の形態3に係る動画像復号化装置300の構成を示すブロック図である。
動画像復号化装置300は、図24に示すように、可変長復号化部301、逆量子化部302、逆直交変換部303、加算部304、ブロックメモリ305、フレームメモリ306、イントラ予測部307、インター予測部308、インター予測制御部309、スイッチ310、予測動きベクトル候補算出部311、およびcolPicメモリ312を備えている。
可変長復号化部301は、入力されたビットストリームに対し、可変長復号化処理を行い、ピクチャタイプ情報、予測方向フラグ、量子化係数、および差分動きベクトルを生成する。また、可変長復号化部301は、予測動きベクトル候補算出部311から取得した予測動きベクトル候補数を用いて、予測動きベクトルインデックスの可変長復号化処理を行う。
逆量子化部302は、可変長復号化処理によって得られた量子化係数に対し、逆量子化処理を行う。逆直交変換部303は、逆量子化処理によって得られた直交変換係数を、周波数領域から画像領域への変換することにより、予測誤差データを生成する。ブロックメモリ305には、予測誤差データと、予測画像データとが加算されて生成された画像データが、ブロック単位で保存される。フレームメモリ306には、画像データが、フレーム単位で保存される。
イントラ予測部307は、ブロックメモリ305に保存されているブロック単位の画像データを用いてイントラ予測することにより、復号化対象ブロックの予測画像データを生成する。インター予測部308は、フレームメモリ306に保存されているフレーム単位の画像データを用いてインター予測することにより、復号化対象ブロックの予測画像データを生成する。
スイッチ310は、復号対象ブロックがイントラ予測復号される場合に、イントラ予測部307によって生成されたイントラ予測画像データを、復号対象ブロックの予測画像データとして加算部304に出力する。一方、スイッチ310は、復号対象ブロックがインター予測復号される場合に、インター予測部308によって生成されたインター予測画像データを、復号対象ブロックの予測画像データとして加算部304に出力する。
予測動きベクトル候補算出部311は、復号化対象ブロックの隣接ブロックの動きベクトル等、および、colPicメモリ312に格納されているco-locatedブロックの動きベクトル等のcolPic情報を用いて、予測動きベクトル指定モードの予測動きベクトル候補および予測動きベクトル候補数を後述する方法で導出する。また、予測動きベクトル候補算出部311は、導出した各予測動きベクトル候補に対し、予測動きベクトルインデックスの値を割り当てる。そして、予測動きベクトル候補算出部311は、予測動きベクトル候補および予測動きベクトルインデックスを、インター予測制御部309に送る。また、予測動きベクトル候補算出部311は、予測動きベクトル候補数を可変長復号化部301に送る。
インター予測制御部309は、予測動きベクトル候補から、復号された予測動きベクトルインデックスに基づいて、インター予測に用いる予測動きベクトルを選択する。そして、インター予測制御部309は、予測動きベクトルおよび差分動きベクトルから復号化対象ブロックの動きベクトルを算出する。そして、インター予測制御部309は、算出した動きベクトルを用いて、インター予測部308にインター予測画像を生成させる。また、インター予測制御部309は、復号化対象ブロックの動きベクトル等を含むcolPic情報をcolPicメモリ312に転送する。
最後に、加算部304は、予測画像データと予測誤差データとを加算することにより、復号画像データを生成する。
図25は、実施の形態2に係る動画像復号化装置の処理動作を示すフローチャートである。
ステップS301では、可変長復号部301は、予測方向フラグおよび参照ピクチャインデックスを復号する。そして、復号された予測方向フラグに応じて予測方向Xの値を決定され、以下のステップS302からステップS305の処理行われる。
ステップS302では、予測動きベクトル候補算出部311は、図14のステップS102と同様の方法で、復号化対象ブロックの隣接ブロックおよびco−locatedブロックから予測動きベクトル候補を導出する。また、予測動きベクトル候補算出部311は、zero候補を追加して、予測動きベクトル候補リストサイズを算出する。
ステップS303では、可変長復号部301は、算出された予測動きベクトル候補リストサイズを用いて、ビットストリーム中の予測動きベクトルインデックスを可変長復号化する。ステップS304では、インター予測制御部309は、復号された予測動きベクトルインデックスの示す予測動きベクトル候補に、復号された差分動きベクトルを加算し、動きベクトルを算出する。そして、インター予測制御部309は、算出した動きベクトルを用いて、インター予測部308にインター予測画像を生成させる。
なお、ステップS302で算出された予測動きベクトル候補リストサイズが「1」の場合は、予測動きベクトルインデックスは、復号されずに、0と推定されても構わない。
このように、本実施の形態に係る動画像復号化装置300によれば、予測動きベクトル候補リストに、静止領域用の予測動きベクトルを追加することによって、符号化効率を向上したビットストリームを適切に復号することが可能になる。より具体的には、動画像復号化装置300は、予測動きベクトル候補数が、最大予測動きベクトル候補数に達していない場合には、値が「0」の動きベクトルを持つzero候補を予測動きベクトル候補として追加することによって、符号化効率を向上したビットストリームを適切に復号することが可能になる。
なお、本実施の形態では、動画像復号化装置300は、予測動きベクトル候補数が予測可能候補数に達していない場合に、新たな予測動きベクトルを持つ新規候補を予測動きベクトル候補として追加しているが、これに限られるものではない。例えば、上記実施の形態1と同様に、動画像復号化装置300は、予測動きベクトル候補リストを作成する際に、図21(a)に示すように、予測動きベクトル候補リスト上のすべての予測動きベクトル候補の初期値として、値が「0」の動きベクトル(0、0)を設定しておいても構わない。
(実施の形態4)
本実施の形態は、上記実施の形態3に係る動画像復号化装置の変形例である。以下、実施の形態4に係る動画像復号化装置を具体的に説明する。
図26は、実施の形態4に係る動画像復号化装置400の構成を示すブロック図である。この動画像復号化装置400は、例えば、実施の形態2に係る動画像符号化装置200によって生成されたビットストリームに含まれる符号化画像をブロック毎に復号化する。
図26に示すように、動画像復号化装置400は、予測動きベクトル候補導出部410と、復号化部420と、予測制御部430とを備える。
予測動きベクトル候補導出部410は、上記実施の形態3における予測動きベクトルブロック候補算出部311に対応する。予測動きベクトル候補導出部410は、予測動きベクトル候補を導出する。そして、予測動きベクトル候補導出部410は、例えば、導出された各予測動きベクトル候補に、当該予測動きベクトル候補を特定するためのインデックス(予測動きベクトルインデックス)を対応付けた予測動きベクトル候補リストを生成する。
図26に示すように、予測動きベクトル候補導出部410は、第1導出部411と、第2導出部412とを備える。
第1導出部411は、第1導出部411は、実施の形態2の第1導出部211と同様に第1予測動きベクトル候補を導出する。具体的には、第1導出部411は、復号化対象ブロックに空間的または時間的に隣接するブロックの復号化に用いられた動きベクトルに基づいて第1予測動きベクトル候補を導出する。そして、第1導出部411は、例えば、このように導出された第1予測動きベクトル候補を予測動きベクトルインデックスに対応付けて予測動きベクトル候補リストに登録する。
第2導出部412は、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出する。具体的には、第2導出部412は、実施の形態2の第2導出部212と同様に第2予測動きベクトル候補を導出する。そして、第2導出部212は、例えば、このように導出された第2予測動きベクトル候補を予測動きベクトルインデックスに対応付けて予測動きベクトル候補リストに登録する。
あらかじめ設定されたベクトルは、例えば上記実施の形態1のように、零ベクトルであってもよい。これにより、第2導出部412は、静止領域用の動きベクトルを持つ予測動きベクトル候補を導出することが可能となる。したがって、動画像復号化装置400は、符号化効率が向上されたビットストリームを適切に復号化することが可能となる。
復号化部420は、ビットストリームから、予測動きベクトル候補を特定するためのインデックスを取得する。例えば、復号化部420は、導出された第1予測動きベクトル候補の数と第2予測動きベクトル候補の数との和(予測動きベクトル候補数)を用いて、ビットストリームに付加された符号化された予測動きベクトルインデックスを復号化することにより、予測動きベクトルインデックスを取得する。
予測制御部430は、取得されたインデックスに基づいて、第1予測動きベクトル候補および第2予測動きベクトル候補の中から、復号化対象ブロックの復号化に用いられる予測動きベクトルを選択する。つまり、予測制御部430は、予測動きベクトル候補リストから、復号化対象ブロックの復号化に用いられる予測動きベクトルを選択する。
次に、以上のように構成された動画像復号化装置400の各種動作について説明する。
図27は、実施の形態4に係る動画像復号化装置400の処理動作を示すフローチャートである。
まず、第1導出部411は、第1予測動きベクトル候補を導出する(S401)。続いて、第2導出部412は、第2予測動きベクトル候補を導出する(S402)。そして、復号化部420は、ビットストリームから予測動きベクトルインデックスを取得する(S403)。
最後に、予測制御部220は、取得されたインデックスに基づいて、第1予測動きベクトル候補および第2予測動きベクトル候補の中から、復号化対象ブロックの復号化に用いられる予測動きベクトルを選択する(S404)。
以上のように、本実施の形態に係る動画像復号化装置400によれば、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出することができる。したがって、動画像復号化装置400は、例えば静止領域用の動きベクトルなどを持つ第2予測動きベクトル候補を導出することができる。つまり、動画像復号化装置400は、予め定められた動きを有するブロックが効率的に符号化された画像を適切に復号化することができ、符号化効率が向上されたビットストリームを適切に復号化することが可能となる。
なお、動画像復号化装置400は、上記実施の形態2と同様に、予測動きベクトル候補リストを作成する際に、予測動きベクトル候補リスト上のすべての予測動きベクトル候補の初期値として、第2予測動きベクトル候補を設定しておいても構わない。この場合、予測動きベクトル候補導出部410は、第2予測動きベクトル候補を第1予測動きベクトル候補より先に導出することになる。このような方法によって、第2予測動きベクトル候補を予測動きベクトル候補とすることも可能である。
(実施の形態5)
本実施の形態では、実施の形態1とは別の予測動きベクトル候補リストサイズの導出方法について詳細に説明する。
上記の予測動きベクトル指定モードでは、予測動きベクトルインデックスを符号化または復号化する際に用いられる予測動きベクトル候補リストサイズに、予測動きベクトル候補数が設定される。この予測動きベクトル候補数は、co−locatedブロック等を含む参照ピクチャ情報を用いて予測不可能候補または重複候補を削除した後に得られる。そのため、動画像符号化装置と動画像復号化装置とで予測動きベクトル候補数に不一致が発生した場合等に、予測動きベクトルインデックスに割り当てるビット列に動画像符号化装置と動画像復号化装置とで不一致が生じる。その結果、動画像符号化装置は、ビットストリームを正しく復号化できなくなる場合がある。
例えば、伝送路等で発生したパケットロス等により、co−locatedブロックとして参照していた参照ピクチャの情報がロスされた場合、co−locatedブロックの動きベクトルまたは参照ピクチャインデックスが不明となる。そのため、co−locatedブロックから生成される予測動きベクトル候補の情報が不明となる。このような場合、復号化時に予測動きベクトル候補から予測不可能候補や重複候補を正しく削除することができなくなる。その結果、動画像符号化装置は、予測動きベクトル候補リストサイズを正しく求めることができず、予測動きベクトルインデックスを正常に復号化できなくなる。
これに対し、本実施の形態で説明する予測動きベクトル候補リストサイズの導出方法は、予測動きベクトルインデックスを符号化または復号化する際に用いる予測動きベクトル候補リストサイズを、co−locatedブロック等を含む参照ピクチャ情報に依存しない方法で算出する。これによって、動画像符号化装置は、ビットストリームのエラー耐性を向上することが可能である。
図28は、実施の形態3に係る動画像符号化装置500の構成を示すブロック図である。
動画像符号化装置500は、図28に示すように、減算部501、直交変換部502、量子化部503、逆量子化部504、逆直交変換部505、加算部506、ブロックメモリ507、フレームメモリ508、イントラ予測部509、インター予測部510、インター予測制御部511、ピクチャタイプ決定部512、スイッチ513、予測動きベクトル候補算出部514、colPicメモリ515、および可変長符号化部516を備えている。
減算部501は、ブロックごとに、入力画像列に含まれる入力画像データから予測画像データを減算することにより予測誤差データを生成する。直交変換部502は、生成された予測誤差データに対し、画像領域から周波数領域への変換を行う。量子化部503は、周波数領域に変換された予測誤差データに対し、量子化処理を行う。
逆量子化部504は、量子化部503によって量子化処理された予測誤差データに対し、逆量子化処理を行う。逆直交変換部505は、逆量子化処理された予測誤差データに対し、周波数領域から画像領域への変換を行う。
加算部506は、符号化対象ブロックごとに、予測画像データと、逆直交変換部505によって逆量子化処理された予測誤差データとを加算することにより、再構成画像データを生成する。ブロックメモリ507には、再構成画像データがブロック単位で保存される。フレームメモリ508には、再構成画像データがフレーム単位で保存される。
ピクチャタイプ決定部512は、Iピクチャ、Bピクチャ、およびPピクチャのいずれのピクチャタイプで入力画像データを符号化するかを決定する。そして、ピクチャタイプ決定部512は、ピクチャタイプ情報を生成する。イントラ予測部509は、ブロックメモリ507に保存されているブロック単位の再構成画像データを用いてイントラ予測を行うことにより、符号化対象ブロックのイントラ予測画像データを生成する。インター予測部510は、フレームメモリ508に保存されているフレーム単位の再構成画像データと、動き検出等により導出した動きベクトルとを用いてインター予測を行うことにより、符号化対象ブロックのインター予測画像データを生成する。
スイッチ513は、符号化対象ブロックがイントラ予測符号化される場合に、イントラ予測部509によって生成されたイントラ予測画像データを、符号化対象ブロックの予測画像データとして減算部501および加算部506に出力する。一方、スイッチ513は、符号化対象ブロックがインター予測符号化される場合に、インター予測部510によって生成されたインター予測画像データを、符号化対象ブロックの予測画像データとして減算部501および加算部506に出力する。
予測動きベクトル候補算出部514は、符号化対象ブロックの隣接ブロックの動きベクトル等、および、colPicメモリ515に格納されているco−locatedブロックの動きベクトル等のcolPic情報を用いて、予測動きベクトル指定モードの予測動きベクトル候補を導出する。そして、予測動きベクトル候補算出部514は、後述する方法で、予測可能候補数を算出する。また、予測動きベクトル候補算出部514は、導出した予測動きベクトル候補に対して、予測動きベクトルインデックスの値を割り当てる。そして、予測動きベクトル候補算出部514は、予測動きベクトル候補と、予測動きベクトルインデックスとを、インター予測制御部511に送る。また、予測動きベクトル候補算出部514は、算出した予測可能候補数を可変長符号化部516に送信する。
インター予測制御部511は、動き検出により導出された動きベクトルを用いて生成したインター予測画像を用いて、インター予測符号化を行うようインター予測部510を制御する。また、インター予測制御部511は、インター予測符号化に用いた動きベクトルの符号化に最適な予測動きベクトル候補を後述する方法で選択する。そして、インター予測制御部511は、選択した予測動きベクトル候補に対応する予測動きベクトルインデックスと、予測の誤差情報(差分動きベクトル)とを、可変長符号化部516に送る。さらに、インター予測制御部511は、符号化対象ブロックの動きベクトル等を含むcolPic情報をcolPicメモリ515に転送する。
可変長符号化部516は、量子化処理された予測誤差データ、予測方向フラグ、ピクチャタイプ情報、および差分動きベクトルに対し、可変長符号化処理を行うことで、ビットストリームを生成する。また、可変長符号化部516は、予測可能候補数を予測動きベクトル候補リストサイズに設定する。そして、可変長符号化部516は、動きベクトル符号化に用いた予測動きベクトルインデックスに、予測動きベクトル候補リストサイズに応じたビット列を割り当てて可変長符号化を行う。
図29は、実施の形態1に係る動画像符号化装置の処理動作を示すフローチャートである。
ステップS501では、インター予測制御部511は、動き検出により、符号化対象ブロックの予測方向、参照ピクチャインデックスおよび、動きベクトルを決定する。ここで、動き検出では、例えば、符号化ピクチャ内の符号化対象ブロックと、参照ピクチャ内のブロックとの差分値を算出し、最も差分値の小さい参照ピクチャ内のブロックが参照ブロックとして決定される。そして、符号化対象ブロック位置と、参照ブロック位置とから、動きベクトルを求める方法などを用いて、動きベクトルが求められる。また、インター予測制御部511は、予測方向0と予測方向1との参照ピクチャに対し、それぞれ動き検出を行い、予測方向0、または、予測方向1、または、双方向予測を選択するかどうかを、例えば、R−D最適化モデルの以下の式等で算出する。
Cost=D+λ×R …(式3)
式3において、Dは符号化歪を表し、ある動きベクトルで生成した予測画像を用いて符号化対象ブロックを符号化および復号化して得られた画素値と、符号化対象ブロックの元の画素値との差分絶対値和などを用いる。また、Rは発生符号量を表し、予測画像生成に用いた動きベクトルを符号化することに必要な符号量などを用いる。また、λはラグランジュの未定乗数である。
ステップS502では、予測動きベクトル候補算出部514は、符号化対象ブロックの隣接ブロックおよびco−locatedブロックから予測動きベクトル候補を導出する。また、予測動きベクトル候補算出部514は、後述する方法で、予測動きベクトル候補リストサイズを算出する。
例えば、図3のような場合では、予測動きベクトル候補算出部514は、符号化対象ブロックの予測動きベクトル候補として、例えば、隣接ブロックA、B、C、およびDの持つ動きベクトルを選択する。さらに、予測動きベクトル候補算出部514は、co−locatedブロックの動きベクトルから時間予測モードによって算出した動きベクトル等を予測動きベクトル候補として算出する。
予測動きベクトル候補算出部514は、図30(a)および図31(a)のように予測方向0および予測方向1の予測動きベクトル候補に対して予測動きベクトルインデックスを割り当てる。そして、予測動きベクトル候補算出部514は、後述する方法で、予測不可能候補および重複候補の削除、および新規候補追加を行うことにより、図30(b)および図31(b)のような予測動きベクトル候補リスト、および、予測動きベクトル候補リストサイズを算出する。
予測動きベクトルインデックスは、値が小さいほど短い符号が割り振られる。即ち、予測動きベクトルインデックスの値が小さい場合に予測動きベクトルインデックスに必要な情報量が少なくなる。一方、予測動きベクトルインデックスの値が大きくなると、予測動きベクトルインデックスに必要な情報量が大きくなる。従って、より精度が高い予測動きベクトルとなる可能性の高い予測動きベクトル候補に対して、値の小さい予測動きベクトルインデックスが割り当てられると、符号化効率が高くなる。
そこで、予測動きベクトル候補算出部514は、例えば、予測動きベクトルとして選ばれた回数を予測動きベクトル候補毎に計測し、その回数が多いブロックに対し、値の小さい予測動きベクトルインデックスを割り当ててもよい。具体的には、隣接ブロックにおいて選択された予測動きベクトルを特定しておき、対象ブロックの符号化の際に、特定した予測動きベクトル候補に対する予測動きベクトルインデックスの値を小さくすることが考えられる。
なお、予測動きベクトル候補が、動きベクトル等の情報を有しない場合(イントラ予測で符号化されたブロックである場合、ピクチャやスライスの境界外などに位置するブロックである場合、まだ符号化されていないブロックである場合など)には、符号化に利用できない。
本実施の形態では、予測動きベクトル候補として利用できないことを予測不可能候補と呼ぶ。また、予測動きベクトル候補として利用できることを予測可能候補と呼ぶ。また、複数の予測動きベクトル候補において、他のいずれかの予測動きベクトルと値が一致している候補を重複候補と呼ぶ。
図3の場合では、隣接ブロックCは、イントラ予測で符号化されたブロックであるので、予測不可能候補とする。また、隣接ブロックDから生成される予測方向0の予測動きベクトルsMvL0_Dは、隣接ブロックAから生成される予測方向0の予測動きベクトルMvL0_Aと値が一致しており、重複候補とする。
ステップS503では、インター予測制御部511は、予測方向Xの動きベクトル符号化に用いる予測動きベクトルインデックスの値を、後述する方法で決定する。
ステップS504では、可変長符号化部516は、予測方向Xの動きベクトル符号化に用いる予測動きベクトル候補の予測動きベクトルインデックスに図6に示すような予測動きベクトル候補リストサイズに応じたビット列を割り当て、可変長符号化を行う。
本実施の形態では、図30(a)および図31(a)のように、隣接ブロックAに対応する予測動きベクトルインデックスの値として「0」が割り当てられる。また、隣接ブロックBに対応する予測動きベクトルインデックスの値として「1」が割り当てられる。また、co−locatedブロックに対応する予測動きベクトルインデックスの値として「2」が割り当てられる。また、隣接ブロックCに対応する予測動きベクトルインデックスの値として「3」が割り当てられる。また、隣接ブロックDに対応する予測動きベクトルインデックスの値として「4」が割り当てられる。
なお、必ずしも、予測動きベクトルインデックスの値の割り当て方は、この例に限らない。例えば、可変長符号化部516は、実施の形態1に記載する方法、または、後述する方法を用いて新規候補が追加された場合などには、元々の予測動きベクトル候補には小さい値を割り当て、新規候補には大きい値を割り当ててもよい。つまり、可変長符号化部516は、元々の予測動きベクトル候補に優先して小さな値の予測動きベクトルブロックインデックスを割り当てても構わない。
また、必ずしも、予測動きベクトル候補は、隣接ブロックA、B、C、Dの位置に限定されない。例えば、左下隣接ブロックDの上に位置する隣接ブロック等が予測動きベクトル候補として用いられても構わない。また、必ずしもすべての隣接ブロックが予測動きベクトル候補として使用される必要はない。例えば、隣接ブロックA、Bのみが予測動きベクトル候補として用いられても良い。または、隣接ブロックDが予測不可能候補ならば、隣接ブロックAを用いるなど、隣接ブロックを順にスキャンするようにしても構わない。
また、本実施の形態では、図29のステップS504において、可変長符号化部516は、予測動きベクトルインデックスをビットストリームに付加したが、必ずしも予測動きベクトルインデックスをビットストリームに付加する必要はない。例えば、可変長符号化部516は、予測動きベクトル候補リストサイズが1の場合には、予測動きベクトルインデックスをビットストリームに付加しなくても構わない。これにより、予測動きベクトルインデックスの情報量を削減できる。
図32は、図29のステップS502の詳細な処理を示すフローチャートである。具体的には、図32は、予測動きベクトル候補、および、予測動きベクトル候補リストサイズを算出する方法を表す。以下、図32について説明する。
ステップS511では、予測動きベクトル候補算出部514は、予測ブロック候補[N]が予測可能候補であるかどうかを後述する方法で判定する。そして、予測動きベクトル候補算出部514は、判定結果に従って、予測可能候補数を更新する。
ここで、Nは各予測ブロック候補を表すためのインデックス値である。本実施の形態では、Nは0から4までの値をとる。具体的には、予測ブロック候補[0]には、図3の隣接ブロックAが割り振られる。また、予測ブロック候補[1]には図3の隣接ブロックBが割り振られる。また、予測ブロック候補[2]にはco−locatedブロックが割り振られる。また、予測ブロック候補[3]には図3の隣接ブロックCが割り振られる。また、予測ブロック候補[4]には図3の隣接ブロックDが割り振られる。
ステップS512では、予測動きベクトル候補算出部514は、予測ブロック候補[N]から、予測方向Xの予測動きベクトル候補を、上記の式1、式2を用いて算出して、予測動きベクトル候補リストに追加する。
ステップS513では、予測動きベクトル候補算出部514は、図30および図31に示すように、予測動きベクトル候補リストから予測不可能候補および重複候補を探索し、削除する。
ステップS514では、予測動きベクトル候補算出部514は、実施の形態1に記載する方法、または、後述する方法で、予測動きベクトル候補リストに新規候補を追加する。ここで、新規候補を追加する際には、予測動きベクトル候補算出部514は、元々ある予測動きベクトル候補に優先して小さい予測動きベクトルインデックスが割り当たるように、予測動きベクトルインデックスの値の再割当を行ってもよい。つまり、予測動きベクトル候補算出部514は、新規候補には値が大きい予測動きベクトルインデックスが割り当たるように、予測動きベクトルインデックスの値の再割り当てを行っても構わない。これにより予測動きベクトルインデックスの符号量を削減できる。
ステップS515では、予測動きベクトル候補算出部514は、ステップS511で算出された予測可能候補数を予測動きベクトル候補リストサイズに設定する。図30および図31の例では、後述する方法により、予測方向0の予測可能候補数は「4」と算出され、予測方向0の予測動きベクトル候補リストサイズには「4」が設定される。また、予測方向1の予測可能候補数は「4」と算出され、予測方向1の予測動きベクトル候補リストサイズには「4」に設定される。
なお、ステップS514における新規候補とは、実施の形態1に記載する方法で追加されるzero候補、または、後述する方法で、予測動きベクトル候補数が予測可能候補数に達していない場合に、予測動きベクトル候補に新たに追加される候補である。例えば、新規候補は、図3における左下隣接ブロックDの上に位置する隣接ブロックから生成される予測動きベクトルであってもよい。また、新規候補は、例えば、co−locatedブロックの隣接ブロックA、B、C、Dに対応するブロックから生成される予測動きベクトルであってもよい。また、新規候補は、例えば、参照ピクチャの画面全体または一定の領域の動きベクトルの統計等から算出した予測動きベクトルであってもよい。このように、予測動きベクトル候補数が予測可能候補数に達していない場合には、予測動きベクトル候補算出部514は、新たな予測動きベクトルを新規候補として追加することによって、符号化効率を向上できる。
図33は、図32のステップS511の詳細な処理を示すフローチャートである。具体的には、図33は、予測ブロック候補[N]が予測可能候補であるかどうかを判定し、予測可能候補数を更新する方法を表す。以下、図33について説明する。
ステップS521では、予測動きベクトル候補算出部514は、予測ブロック候補[N]が、(1)イントラ予測で符号化されたブロック、または、(2)符号化対象ブロックを含むスライスまたはピクチャ境界外に位置するブロック、または、(3)まだ符号化されていないブロックであるかどうかを判定する。
ここで、ステップS521の判定結果が真ならば(S521のYes)、ステップS522において、予測動きベクトル候補算出部514は、予測ブロック候補[N]を予測不可能候補に設定する。一方、ステップS521の判定結果が偽ならば(S521のNo)、ステップS523において、予測動きベクトル候補算出部514は、予測ブロック候補[N]を予測可能候補に設定する。
ステップS524では、予測動きベクトル候補算出部514は、予測ブロック候補[N]が予測可能候補、または、co−locatedブロック候補であるかどうかを判定する。ここで、ステップS524の判定結果が真ならば(S524のYes)、ステップS5において、予測動きベクトル候補算出部514は、予測可能候補数に1を加算して、予測動きベクトル候補数を更新する。一方、ステップS524の判定結果が偽ならば(S524のNo)、予測動きベクトル候補算出部514は、予測可能候補数を更新しない。
このように、予測ブロック候補がco−locatedブロックの場合は、予測動きベクトル候補算出部514は、co−locatedブロックが予測可能候補か予測不可能候補かどうかに関らず、予測可能候補数に1を加算する。これにより、パケットロス等でco−locatedブロックの情報がロスされた場合でも、動画像符号化装置と動画像復号化装置とで予測可能候補数に不一致が発生しない。
この予測可能候補数は、図32のステップS515において、予測動きベクトル候補リストサイズに設定される。さらに、図29のS504において、予測動きベクトル候補リストサイズは、予測動きベクトルインデックスの可変長符号化に用いられる。これによって、co−locatedブロック等を含む参照ピクチャ情報をロスした場合でも、動画像符号化装置500は、予測動きベクトルインデックスを正常に復号化できるビットストリームを生成することが可能になる。
図34は、図32のステップS514の詳細な処理を示すフローチャートである。具体的には、図34は、新規候補を追加する方法を表す。以下、図34について説明する。
ステップS531では、予測動きベクトル候補算出部514は、予測動きベクトル候補数が予測可能候補数より小さいか否かを判定する。つまり、予測動きベクトル候補算出部514は、予測動きベクトル候補数が予測可能候補数に達していないかどうかを判定する。
ここで、ステップS531の判定結果が真ならば(S531のYes)、ステップS532において、予測動きベクトル候補算出部514は、予測動きベクトル候補として予測動きベクトル候補リストに追加可能な新規候補が存在するかどうかを判定する。ここで、ステップS532の判定結果が真ならば(S532のYes)、ステップS533において、予測動きベクトル候補算出部514は、新規候補に予測動きベクトルインデックスの値を割り当て、予測動きベクトル候補リストに新規候補を追加する。さらに、ステップS534において、予測動きベクトル候補算出部514は、予測動きベクトル候補数に1を加算する。
一方、ステップS531またはステップS532の判定結果が偽ならば(S531またはS532のNo)、新規候補追加処理を終了する。つまり、予測動きベクトル候補数が予測可能候補数に達している場合、または、新規候補が存在しない場合は、新規候補追加処理を終了する。
図35は、図29のステップS503の詳細な処理を示すフローチャートである。具体的には、図35は、予測動きベクトル候補の選択に関する処理を示す。以下、図35について説明する。
ステップS541では、インター予測制御部511は、初期化として、予測動きベクトル候補インデックスmvp_idxに0を設定し、最小差分動きベクトルに値の最大値を設定する。
ステップS542では、インター予測制御部511は、予測動きベクトル候補インデックスmvp_idxの値が予測動きベクトル候補数より小さいか否かを判定する。すなわち、インター予測制御部511は、すべての予測動きベクトル候補の差分動きベクトルを算出したかどうかを判定する。
ここで、まだ予測動きベクトル候補が残っていれば(S542のYes)、ステップS543において、インター予測制御部511は、動き検出で求められた動きベクトル(動き検出結果ベクトル)から予測動きベクトル候補を差し引くことによって、差分動きベクトルを算出する。
ステップS544では、インター予測制御部511は、ステップS543で求めた差分動きベクトルが最小差分動きベクトルより値が小さいかどうかを判定する。
ここで、ステップS544の判定結果が真であれば(S544のYes)、ステップS545において、インター予測制御部511は、最小差分動きベクトルおよび予測動きベクトルインデックスの値を更新する。一方、ステップS544の判定結果が偽ならば(S544のNo)、インター予測制御部511は、最小差分動きベクトルおよび予測動きベクトルインデックスの値を更新しない。
ステップS546では、インター予測制御部511は、予測動きベクトル候補インデックスを+1で更新し、ステップS542に戻って次の予測動きベクトル候補が存在するかどうかを判定する。
一方、ステップS2において、すべての予測動きベクトル候補に対し、差分動きベクトルを算出したと判定すれば(S542のNo)、ステップS547において、インター予測制御部511は、最終的に設定されている最小差分動きベクトルおよび予測動きベクトルインデックスを確定する。
このように、本実施の形態に係る動画像符号化装置500によれば、予測動きベクトルインデックスを符号化または復号化する際に用いる予測動きベクトル候補リストサイズを、co−locatedブロック等を含む参照ピクチャ情報に依存しない方法で算出することができる。これによって、動画像符号化装置500は、エラー耐性を向上することが可能になる。
より具体的には、本実施の形態に係る動画像符号化装置500は、co−locatedブロックが予測可能候補かどうかに関らず、予測ブロック候補がco−locatedブロックであれば常に予測可能候補数に1を加算する。そして、動画像符号化装置500は、このようにして算出した予測可能候補数を用いて、予測動きベクトルインデックスに割り当てるビット列を決定する。これにより、動画像符号化装置500は、co−locatedブロックを含む参照ピクチャ情報をロスした場合でも、予測動きベクトルインデックスを正常に復号化できるビットストリームを生成することが可能になる。
また、本実施の形態に係る動画像符号化装置500は、予測動きベクトル候補数が、予測可能候補数に達していない場合には、新たな予測動きベクトルを持つ新規候補を予測動きベクトル候補として追加することによって、符号化効率を向上できる。
なお、本実施の形態では、動画像符号化装置500は、co−locatedブロックが予測可能候補かどうかに関らず、予測ブロック候補がco−locatedブロックであれば常に1を加算するようにして算出した予測可能候補数を用いて、予測動きベクトルインデックスに割り当てるビット列を決定したが、これに限られるものではない。例えば、動画像符号化装置500は、図33のステップS524において、co−locatedブロック以外の予測ブロック候補に対しても、必ず常に1を加算するようにして算出した予測可能候補数を用いて、予測動きベクトルインデックスに割り当てるビット列を決定してもよい。すなわち、動画像符号化装置500は、予測動きベクトル候補数の最大値Nに固定された予測動きベクトル候補リストサイズを用いて、予測動きベクトルインデックスにビット列を割り当てても構わない。つまり、全ての予測ブロック候補を予測可能候補とみなし、予測動きベクトル候補リストサイズを、予測動きベクトル候補数の最大値Nに固定して、予測動きベクトルインデックスを符号化しても構わない。
例えば、本実施の形態では、予測動きベクトル候補数の最大値Nは5であるため(隣接ブロックA、隣接ブロックB、co−locatedブロック、隣接ブロックC、隣接ブロックD)、動画像符号化装置500は、常に予測動きベクトル候補リストサイズに5を設定して、予測動きベクトルインデックスを符号化するようにしても構わない。また、例えば、予測動きベクトル候補数の最大値Nが4(隣接ブロックA、隣接ブロックB、隣接ブロックC、隣接ブロックD)の場合には、動画像符号化装置500は、常に予測動きベクトル候補リストサイズに4を設定して、予測動きベクトルインデックスを符号化しても構わない。
このように、動画像符号化装置500は、予測動きベクトル候補数の最大値に応じて、予測動きベクトル候補リストサイズを決定しても構わない。これにより、動画像復号化装置500の可変長復号化部516が、ビットストリーム中の予測動きベクトルインデックスを、隣接ブロックまたはco−locatedブロックの情報を参照せずに復号化することができるビットストリームを生成することが可能となり、可変長復号化部516の処理量を削減することができる。
また、本実施の形態では、符号化対象ブロックの隣接ブロックから予測動きベクトル候補を生成し、符号化対象ブロックの動きベクトルの符号化を行う予測動きベクトル指定モードを用いた例を示したが、必ずしもこれに限らない。例えば、ダイレクトモードまたはスキップモードを用いてもよい。ダイレクトモードまたはスキップマージモードでは、図30(b)および図31(b)のように作成した予測動きベクトル候補から予測動きベクトルを選択し、選択した予測動きベクトルを動きベクトルとして直接予測画像を生成することで、差分動きベクトルをビットストリームに付加しなくても構わない。
(実施の形態6)
本実施の形態は、上記実施の形態5に係る動画像符号化装置の変形例である。以下、実施の形態6に係る動画像符号化装置を具体的に説明する。
図36は、実施の形態6に係る動画像符号化装置600の構成を示すブロック図である。この動画像符号化装置600は、画像をブロック毎に符号化することでビットストリームを生成する。動画像符号化装置600は、予測動きベクトル候補導出部610と、予測制御部620と、符号化部630とを備える。
予測動きベクトル候補導出部610は、上記実施の形態5における予測動きベクトルブロック候補算出部514に対応する。予測動きベクトル候補導出部610は、予測動きベクトル候補を導出する。そして、予測動きベクトル候補導出部610は、例えば、導出された各予測動きベクトル候補に、当該予測動きベクトル候補を特定するためのインデックスを対応付けた予測動きベクトル候補リストを生成する。
図36に示すように、予測動きベクトル候補導出部610は、決定部611と、第1導出部612と、特定部613と、判定部614と、第2導出部615とを備える。
決定部611は、予測動きベクトル候補の最大数を決定する。つまり、決定部611は、予測ブロック候補数の最大値Nを決定する。
例えば、決定部611は、入力画像列(シーケンス、ピクチャ、スライス、またはブロックなど)の特徴に基づいて、予測動きベクトル候補の最大数を決定する。また例えば、決定部611は、予め定められた数を予測動きベクトル候補の最大数と決定してもよい。
第1導出部612は、符号化対象ブロックに空間的または時間的に隣接するブロックの符号化に用いられた動きベクトルに基づいて第1予測動きベクトル候補を導出する。ここで、第1導出部612は、第1予測動きベクトル候補の数が最大数を超えないように第1予測動きベクトル候補を導出する。そして、第1導出部612は、例えば、このように導出された第1予測動きベクトル候補を予測動きベクトルインデックスに対応付けて予測動きベクトル候補リストに登録する。
なお、第1導出部612は、例えば、符号化対象ブロックに空間的に隣接するブロックのうち予測不可能候補であるブロックを除くブロックの符号化に用いられた動きベクトルを、第1予測動きベクトル候補として導出してもよい。予測不可能候補であるブロックとは、イントラ予測で符号化されたブロック、符号化対象ブロックを含むスライスもしくはピクチャ境界外に位置するブロック、または、まだ符号化されていないブロックである。これにより、予測動きベクトル候補を得るために適切なブロックから第1予測動きベクトル候補を導出することができる。
特定部613は、複数の第1予測動きベクトル候補が導出された場合に、動きベクトルが他の第1予測動きベクトル候補と重複する第1予測動きベクトル候補(重複候補)を特定する。そして、特定部613は、特定された重複候補を予測動きベクトル候補リストから削除する。
判定部614は、第1予測動きベクトル候補の数が、決定された最大数より小さいか否かを判定する。ここでは、判定部614は、特定された重複する第1予測動きベクトル候補を除く第1予測動きベクトル候補の数が、決定された最大数より小さいか否かを判定する。
第2導出部615は、第1予測動きベクトル候補の数が、決定された最大数より小さいと判定された場合に、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出する。具体的には、第2導出部615は、第1予測動きベクトル候補の数と第2予測動きベクトル候補の数との和が最大数を超えないように第2予測動きベクトル候補を導出する。ここでは、第2導出部615は、重複候補を除く第1予測動きベクトル候補の数と第2予測動きベクトル候補の数との和が最大数を超えないように第2予測動きベクトル候補を導出する。
あらかじめ設定されたベクトルは、例えば上記実施の形態1と同様に、零ベクトルであってもよい。なお、あらかじめ設定されたベクトルは、必ずしも零ベクトルである必要はない。
そして、第2導出部615は、例えば、このように導出された第2予測動きベクトル候補を予測動きベクトルインデックスに対応付けて予測動きベクトル候補リストに登録する。このとき、第2導出部615は、第1予測動きベクトル候補に第2予測動きベクトル候補よりも小さい値の予測動きベクトルインデックスが割り当たるように、第2予測動きベクトル候補を予測動きベクトル候補リストに登録してもよい。これにより、動画像符号化装置600は、第2予測動きベクトル候補よりも第1予測動きベクトル候補が符号化に用いられる予測動きベクトル候補として選択される可能性が高い場合に、符号量を削減でき、符号化効率を向上させることができる。
なお、第2導出部615は、必ずしも、第1予測動きベクトル候補の数と第2予測動きベクトル候補の数との和が決定された最大数と一致するように、第2予測動きベクトル候補を導出する必要はない。第1予測動きベクトル候補の数と第2予測動きベクトル候補の数との和が決定された最大数より小さい場合には、例えば、予測動きベクトル候補が対応付けられていない予測動きベクトルインデックスの値が存在してもよい。
予測制御部620は、第1予測動きベクトル候補および第2予測動きベクトル候補の中から、符号化対象ブロックの符号化に用いられる予測動きベクトルを選択する。つまり、予測制御部620は、予測動きベクトル候補リストから、符号化対象ブロックの符号化に用いられる予測動きベクトルを選択する。
符号化部630は、選択された予測動きベクトル候補を特定するためのインデックス(予測動きベクトルインデックス)を、決定された最大数を用いて符号化する。具体的には、符号化部630は、図6に示すように、選択された予測動きベクトル候補のインデックス値に割り当てられたビット列を可変長符号化する。さらに、符号化部630は、符号化されたインデックスをビットストリームに付加する。
ここで、符号化部630は、さらに、決定部611によって決定された最大数を示す情報をビットストリームに付加してもよい。具体的には、符号化部630は、最大数を示す情報を、例えばスライスヘッダなどに書き込んでもよい。これにより、適切な単位で最大数を切り替えることができ、符号化効率を向上させることが可能となる。
なお、符号化部630は、必ずしも最大数を示す情報をビットストリームに付加する必要はない。例えば、最大数が規格により予め定められている場合、または、最大数が既定値と同じ場合などには、符号化部630は、最大数を示す情報をビットストリームに付加しなくてもよい。
次に、以上のように構成された動画像符号化装置600の各種動作について説明する。
図37は、実施の形態6に係る動画像符号化装置600の処理動作を示すフローチャートである。
まず、決定部611は、予測動きベクトル候補の最大数を決定する(S601)。第1導出部612は、第1予測動きベクトル候補を導出する(S602)。特定部613は、複数の第1予測動きベクトル候補が導出された場合に、動きベクトルが他の第1予測動きベクトル候補と重複する第1予測動きベクトル候補(重複候補)を特定する(S603)。
判定部614は、重複候補を除く第1予測動きベクトル候補の数が、決定された最大数より小さいか否かを判定する(S604)。ここで、重複候補を除く第1予測動きベクトル候補の数が、決定された最大数より小さいと判定された場合(S604のYes)、第2導出部615は、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出する(S605)。一方、重複候補を除く第1予測動きベクトル候補の数が、決定された最大数より小さいと判定されなかった場合(S604のNo)、第2導出部615は、第2予測動きベクトル候補を導出しない。これらのステップS604およびステップS605は、実施の形態5におけるステップS514に相当する。
予測制御部620は、第1予測動きベクトル候補および第2予測動きベクトル候補の中から、符号化対象ブロックの符号化に用いられる予測動きベクトルを選択する(S606)。例えば、予測制御部620は、実施の形態1と同様に、予測動きベクトル候補リストから、差分動きベクトルが最小となる予測動きベクトルを選択する。
符号化部630は、選択された予測動きベクトル候補を特定するためのインデックスを、決定された最大数を用いて符号化する(S607)。さらに、符号化部630は、符号化されたインデックスをビットストリームに付加する。
以上のように、本実施の形態に係る動画像符号化装置600によれば、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出することができる。したがって、動画像符号化装置600は、例えば静止領域用の動きベクトルなどを持つ予測動きベクトル候補を第2予測動きベクトル候補として導出することができる。つまり、動画像符号化装置600は、予め定められた動きを有する符号化対象ブロックを効率的に符号化することができ、符号化効率を向上させることが可能となる。
さらに、本実施の形態に係る動画像符号化装置600によれば、予測動きベクトル候補を特定するためのインデックスを、決定された最大数を用いて符号化することができる。つまり、実際に導出される予測動きベクトル候補の数に依存せずに、インデックスを符号化することができる。したがって、予測動きベクトル候補の導出に必要な情報(例えば、co−locatedブロック等の情報)がロスされた場合でも、復号化側ではインデックスを復号化することができ、エラー耐性を向上させることが可能となる。また、復号化側では、実際に導出される予測動きベクトル候補の数に依存せずにインデックスを復号化できる。つまり、復号化側では、予測動きベクトル候補の導出処理を待たずにインデックスの復号化処理を行うことができる。すなわち、予測動きベクトル候補の導出処理とインデックスの復号化処理とを並列に行うことが可能なビットストリームを生成することができる。
さらに、本実施の形態に係る動画像符号化装置600によれば、第1予測動きベクトル候補の数が最大数より小さいと判定された場合に、第2予測動きベクトル候補を導出することができる。したがって、最大数を超えない範囲で予測動きベクトル候補の数を増加させることができ、符号化効率を向上させることが可能となる。
また、本実施の形態に係る動画像符号化装置600によれば、重複する第1予測動きベクトル候補を除く第1予測動きベクトル候補の数に応じて第2予測動きベクトル候補を導出することができる。その結果、第2予測動きベクトル候補の数を増加させることができ、予測動きベクトル候補として選択可能な動きベクトルの種類を増やすことができる。したがって、さらに符号化効率を向上させることが可能となる。
なお、本実施の形態では、動画像符号化装置600は、特定部613を備えていたが、必ずしも特定部613を備える必要はない。つまり、図37に示すフローチャートに、必ずしもステップS603が含まれる必要はない。このような場合であっても、動画像符号化装置600は、予測動きベクトル候補を特定するためのインデックスを、決定された最大数を用いて符号化することができるので、エラー耐性を向上させることが可能となる。
また、本実施の形態では、図37に示すように、第1導出部612が第1予測動きベクトル候補を導出した後に、特定部613が重複候補を特定していたが、必ずしもこのように順に処理される必要はない。例えば、第1導出部612は、第1予測動きベクトル候補を導出する過程において、重複候補を特定し、特定された重複候補が第1予測動きベクトル候補に含まれないように、第1予測動きベクトル候補を導出してもよい。つまり、第1導出部612は、動きベクトルが既に導出された第1予測動きベクトル候補と重複しない予測動きベクトル候補を第1予測動きベクトル候補として導出してもよい。より具体的には、例えば、左隣接ブロックに基づく予測動きベクトル候補が第1予測動きベクトル候補として既に導出されている場合に、上隣接ブロックに基づく予測動きベクトル候補が左隣接ブロックに基づく予測動きベクトル候補と重複していなければ、第1導出部612は、上隣接ブロックに基づく予測動きベクトル候補を第1予測動きベクトル候補として導出してもよい。これにより、第1導出部612は、動きベクトルが既に導出された第1予測動きベクトル候補と重複する予測動きベクトル候補を、第1予測動きベクトル候補から排除することができる。その結果、動画像符号化装置600は、第2予測動きベクトル候補の数を増加させることができ、予測動きベクトル候補として選択可能な動きベクトルの種類を増やすことができる。したがって、さらに符号化効率を向上させることが可能となる。
(実施の形態7)
本実施の形態では、実施の形態2とは別の予測動きベクトル候補リストサイズの導出方法について詳細に説明する。
図38は、本実施の形態4に係る動画像復号化装置700の構成を示すブロック図である。
動画像復号化装置700は、図38に示すように、可変長復号化部701、逆量子化部702、逆直交変換部703、加算部704、ブロックメモリ705、フレームメモリ706、イントラ予測部707、インター予測部708、インター予測制御部709、スイッチ710、予測動きベクトル候補算出部711、およびcolPicメモリ712を備えている。
可変長復号化部701は、入力されたビットストリームに対し、可変長復号化処理を行い、ピクチャタイプ情報、予測方向フラグ、量子化係数、および差分動きベクトルを生成する。また、可変長復号化部701は、後述する予測可能候補数を用いて、予測動きベクトルインデックスの可変長復号化処理を行う。
逆量子化部702は、可変長復号化処理によって得られた量子化係数に対し、逆量子化処理を行う。逆直交変換部703は、逆量子化処理によって得られた直交変換係数を、周波数領域から画像領域への変換することにより、予測誤差データを生成する。ブロックメモリ705には、予測誤差データと、予測画像データとが加算されて生成された画像データが、ブロック単位で保存される。フレームメモリ706には、画像データが、フレーム単位で保存される。
イントラ予測部707は、ブロックメモリ705に保存されているブロック単位の画像データを用いてイントラ予測することにより、復号化対象ブロックの予測画像データを生成する。インター予測部708は、フレームメモリ706に保存されているフレーム単位の画像データを用いてインター予測することにより、復号化対象ブロックの予測画像データを生成する。
スイッチ710は、復号対象ブロックがイントラ予測復号される場合に、イントラ予測部707によって生成されたイントラ予測画像データを、復号対象ブロックの予測画像データとして加算部704に出力する。一方、スイッチ710は、復号対象ブロックがインター予測復号される場合に、インター予測部708によって生成されたインター予測画像データを、復号対象ブロックの予測画像データとして加算部704に出力する。
予測動きベクトル候補算出部711は、復号化対象ブロックの隣接ブロックの動きベクトル等、および、colPicメモリ712に格納されているco-locatedブロックの動きベクトル等のcolPic情報を用いて、予測動きベクトル指定モードの予測動きベクトル候補を後述する方法で導出する。また、予測動きベクトル候補算出部711は、導出した各予測動きベクトル候補に対し、予測動きベクトルインデックスの値を割り当てる。そして、予測動きベクトル候補算出部711は、予測動きベクトル候補と、予測動きベクトルインデックスとを、インター予測制御部709に送る。
インター予測制御部709は、予測動きベクトル候補から、復号された予測動きベクトルインデックスに基づいて、インター予測に用いる予測動きベクトルを選択する。そして、インター予測制御部709は、予測動きベクトルおよび差分動きベクトルから復号化対象ブロックの動きベクトルを算出する。そして、インター予測制御部709は、算出した動きベクトルを用いて、インター予測部708にインター予測画像を生成させる。また、インター予測制御部709は、復号化対象ブロックの動きベクトル等を含むcolPic情報をcolPicメモリ712に転送する。
最後に、加算部704は、予測画像データと予測誤差データとを加算することにより、復号画像データを生成する。
図39は、実施の形態2に係る動画像復号化装置の処理動作を示すフローチャートである。
ステップS701では、可変長復号部701は、予測方向フラグおよび参照ピクチャインデックスを復号する。そして、復号された予測方向フラグに応じて予測方向Xの値を決定され、以下のステップS702からステップS705の処理行われる。
ステップS702では、予測動きベクトル候補算出部711は、実施の形態1および実施の形態2に記載する方法、または、後述する方法で、予測可能候補数を算出する。そして、予測動きベクトル候補算出部711は、算出された予測可能候補数を予測動きベクトル候補リストサイズに設定する。
ステップS703では、可変長復号部701は、算出された予測動きベクトル候補リストサイズを用いて、ビットストリーム中の予測動きベクトルインデックスを可変長復号化する。ステップS704では、予測動きベクトル候補算出部711は、後述する方法で、復号化対象ブロックの隣接ブロックおよびco-locatedブロックから予測動きベクトル候補を生成する。ステップS705では、インター予測制御部709は、復号された予測動きベクトルインデックスの示す予測動きベクトル候補に、復号された差分動きベクトルを加算し、動きベクトルを算出する。そして、インター予測制御部709は、算出した動きベクトルを用いて、インター予測部708にインター予測画像を生成させる。
なお、ステップS702で算出された予測動きベクトル候補リストサイズが「1」の場合は、予測動きベクトルインデックスは、復号されずに、0と推定されても構わない。
図40は、図39のステップS702の詳細な処理を示すフローチャートである。具体的には、図40は、予測ブロック候補[N]が予測可能候補であるかどうかを判定し、予測可能候補数を算出する方法を表す。以下、図40について説明する。
ステップS711では、予測動きベクトル候補算出部711は、予測ブロック候補[N]が、(1)イントラ予測で復号化されたブロック、または、(2)復号化対象ブロックを含むスライスまたはピクチャ境界外に位置するブロック、または、(3)まだ復号化されていないブロックであるかどうかを判定する。
ここで、ステップS711の判定結果が真ならば(S711のYes)、ステップS712において、予測動きベクトル候補算出部711は、予測ブロック候補[N]を予測不可能候補に設定する。一方、ステップS711の判定結果が偽ならば(S711のNo)、ステップS713において、予測動きベクトル候補算出部711は、予測ブロック候補[N]を予測可能候補に設定する。
ステップS714では、予測動きベクトル候補算出部711は、予測ブロック候補[N]が予測可能候補、または、co−locatedブロック候補であるかどうかを判定する。ここで、ステップS714の判定結果が真ならば(S714のYes)、ステップS5において、予測動きベクトル候補算出部711は、予測可能候補数に1を加算して値を更新する。一方、ステップS714が偽ならば(S714のNo)、予測動きベクトル候補算出部711は、予測可能候補数を更新しない。
このように、予測ブロック候補がco−locatedブロックの場合は、予測動きベクトル候補算出部711は、co−locatedブロックが予測可能候補か予測不可能候補かどうかに関らず、予測可能候補数に1を加算する。これにより、パケットロス等でco−locatedブロックの情報がロスされた場合でも、動画像符号化装置と動画像復号化装置とで予測可能候補数に不一致が発生しない。
この予測可能候補数は、図39のステップS702において、予測動きベクトル候補リストサイズに設定される。さらに、図39のS703において、予測動きベクトル候補リストサイズは、予測動きベクトルインデックスの可変長復号化に用いられる。これによって、co−locatedブロック等を含む参照ピクチャ情報をロスした場合でも、動画像復号化装置700は、予測動きベクトルインデックスを正常に復号化することが可能になる。
図41は、図39のステップS704の詳細な処理を示すフローチャートである。具体的には、図41は、予測動きベクトル候補を算出する方法を表す。以下、図41について説明する。
ステップS721では、予測動きベクトル候補算出部711は、予測ブロック候補[N]から、予測方向Xの予測動きベクトル候補を、上記の式1、式2を用いて算出して、予測動きベクトル候補リストに追加する。
ステップS722では、予測動きベクトル候補算出部711は、図30および図31に示すように、予測動きベクトル候補リストから予測不可能候補および重複候補を探索し、削除する。
ステップS723では、予測動きベクトル候補算出部711は、図34と同様の方法で、予測動きベクトル候補リストに新規候補を追加する。
図42は、予測動きベクトルインデックスをビットストリームに付加する際のシンタックスの一例を表す図である。図42において、inter_pred_flagは予測方向フラグ、mvp_idxは予測動きベクトルインデックスを表す。NumMVPCandは予測動きベクトル候補リストサイズを表し、本実施の形態では図40の処理フローで算出された予測可能候補数が設定される。
このように、本実施の形態に係る動画像復号化装置700によれば、予測動きベクトルインデックスを符号化または復号化する際に用いる予測動きベクトル候補リストサイズを、co−locatedブロック等を含む参照ピクチャ情報に依存しない方法で算出することができる。これによって、動画像復号化装置700は、エラー耐性を向上したビットストリームを適切に復号することが可能になる。
より具体的には、本実施の形態に係る動画像復号化装置700は、co−locatedブロックが予測可能候補かどうかに関らず、予測ブロック候補がco−locatedブロックであれば常に予測可能候補数に1を加算する。そして、動画像復号化装置700は、このようにして算出した予測可能候補数を用いて、予測動きベクトルインデックスに割り当てるビット列を決定する。これにより、動画像復号化装置700は、co−locatedブロックを含む参照ピクチャ情報をロスした場合でも、予測動きベクトルインデックスを正常に復号化することが可能になる。
また、本実施の形態に係る動画像復号化装置700は、予測動きベクトル候補数が、予測可能候補数に達していない場合には、新たな予測動きベクトルを持つ新規候補を予測動きベクトル候補として追加することによって、符号化効率を向上したビットストリームを適切に復号することが可能になる。
なお、本実施の形態では、動画像復号化装置700は、co−locatedブロックが予測可能候補かどうかに関らず、予測ブロック候補がco−locatedブロックであれば常に1を加算するようにして算出した予測可能候補数を用いて、予測動きベクトルインデックスに割り当てるビット列を決定したが、これに限られるものではない。例えば、動画像復号化装置700は、図40のステップS714において、co−locatedブロック以外の予測ブロック候補に対しても、必ず常に1を加算するようにして算出した予測可能候補数を用いて、予測動きベクトルインデックスに割り当てるビット列を決定してもよい。すなわち、動画像復号化装置700は、予測動きベクトル候補数の最大値Nに固定された予測動きベクトル候補リストサイズを用いて、予測動きベクトルインデックスにビット列を割り当てても構わない。つまり、全ての予測ブロック候補を予測可能候補とみなし、予測動きベクトル候補リストサイズを、予測動きベクトル候補数の最大値Nに固定して、予測動きベクトルインデックスを復号化しても構わない。
例えば、本実施の形態では、予測動きベクトル候補数の最大値Nは5であるため(隣接ブロックA、隣接ブロックB、co−locatedブロック、隣接ブロックC、隣接ブロックD)、動画像復号化装置700は、常に予測動きベクトル候補リストサイズに5を設定して、予測動きベクトルインデックスを復号化するようにしても構わない。これにより、動画像復号化装置700の可変長復号化部701は、ビットストリーム中の予測動きベクトルインデックスを、隣接ブロックまたはco−locatedブロックの情報を参照せずに復号化することが可能になる。その結果、例えば、図40のステップS714、およびステップS715の処理などを省略することができ、可変長復号化部701の処理量を削減できる。
図43は、予測動きベクトル候補リストサイズを予測動きベクトル候補数の最大値に固定した場合のシンタックスの一例を示す図である。図43のように、予測動きベクトル候補リストサイズを予測動きベクトル候補数の最大値に固定する場合は、NumMVPCandをシンタックスから削除できる。
(実施の形態8)
本実施の形態は、上記実施の形態7に係る動画像復号化装置の変形例である。以下、本実施の形態8に係る動画像復号化装置を具体的に説明する。
図44は、実施の形態8に係る動画像復号化装置800の構成を示すブロック図である。この動画像復号化装置800は、ビットストリームに含まれる符号化画像をブロック毎に復号化する。具体的には、動画像復号化装置800は、例えば、実施の形態6に係る動画像符号化装置600によって生成されたビットストリームに含まれる符号化画像をブロック毎に復号化する。動画像復号化装置800は、予測動きベクトル候補導出部810と、復号化部820と、予測制御部830とを備える。
予測動きベクトル候補導出部810は、上記実施の形態7における予測動きベクトルブロック候補算出部711に対応する。予測動きベクトル候補導出部810は、予測動きベクトル候補を導出する。そして、予測動きベクトル候補導出部810は、例えば、導出された各予測動きベクトル候補に、当該予測動きベクトル候補を特定するためのインデックス(予測動きベクトルインデックス)を対応付けた予測動きベクトル候補リストを生成する。
図44に示すように、予測動きベクトル候補導出部810は、決定部811と、第1導出部812と、特定部813と、判定部814と、第2導出部815とを備える。
決定部811は、予測動きベクトル候補の最大数を決定する。つまり、決定部811は、予測ブロック候補数の最大値Nを決定する。
例えば、決定部811は、実施の形態6の決定部611と同様の方法で、予測動きベクトル候補の最大数を決定してもよい。また例えば、決定部811は、ビットストリームに付加された最大数を示す情報に基づいて最大数を決定してもよい。これにより、動画像復号化装置800は、適切な単位で最大数を切り替えて符号化された画像を復号化することが可能となる。
なお、ここでは、決定部811は、予測動きベクトル候補導出部810に備えられているが、復号化部820に備えられてもよい。
第1導出部812は、実施の形態6の第1導出部612と同様に、第1予測動きベクトル候補を導出する。具体的には、第1導出部812は、復号化対象ブロックに空間的または時間的に隣接するブロックの復号化に用いられた動きベクトルに基づいて第1予測動きベクトル候補を導出する。そして、第1導出部812は、例えば、このように導出された第1予測動きベクトル候補を予測動きベクトルインデックスに対応付けて予測動きベクトル候補リストに登録する。
なお、第1導出部812は、例えば、復号化対象ブロックに空間的に隣接するブロックのうち予測不可能候補であるブロックを除くブロックの復号化に用いられた動きベクトルを、第1予測動きベクトル候補として導出してもよい。これにより、予測動きベクトル候補を得るために適切なブロックから第1予測動きベクトル候補を導出することができる。
特定部813は、複数の第1予測動きベクトル候補が導出された場合に、動きベクトルが他の第1予測動きベクトル候補と重複する第1予測動きベクトル候補(重複候補)を特定する。そして、特定部813は、特定された重複候補を予測動きベクトル候補リストから削除する。
判定部814は、第1予測動きベクトル候補の数が、決定された最大数より小さいか否かを判定する。ここでは、判定部814は、特定された重複する第1予測動きベクトル候補を除く第1予測動きベクトル候補の数が、決定された最大数より小さいか否かを判定する。
第2導出部815は、第1予測動きベクトル候補の数が、決定された最大数より小さいと判定された場合に、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出する。具体的には、第2導出部815は、第1予測動きベクトル候補の数と第2予測動きベクトル候補の数との和が最大数を超えないように第2予測動きベクトル候補を導出する。ここでは、第2導出部815は、重複候補を除く第1予測動きベクトル候補の数と第2予測動きベクトル候補の数との和が最大数を超えないように第2予測動きベクトル候補を導出する。
あらかじめ設定されたベクトルは、例えば、上記実施の形態3と同様に、零ベクトルであってもよい。これにより、第2導出部815は、静止領域用の動きベクトルを持つ予測動きベクトル候補を導出することが可能となる。したがって、動画像復号化装置800は、符号化効率が向上されたビットストリームを適切に復号化することが可能となる。なお、あらかじめ設定されたベクトルは、必ずしも零ベクトルである必要はない。
そして、第2導出部815は、例えば、このように導出された第2予測動きベクトル候補を予測動きベクトルインデックスに対応付けて予測動きベクトル候補リストに登録する。このとき、第2導出部815は、第1予測動きベクトル候補に第2予測動きベクトル候補よりも小さい値の予測動きベクトルインデックスが割り当たるように、第2予測動きベクトル候補を予測動きベクトル候補リストに登録してもよい。これにより、動画像復号化装置800は、符号化効率が向上されたビットストリームを適切に復号化することができる。
なお、第2導出部815は、必ずしも、第1予測動きベクトル候補の数と第2予測動きベクトル候補の数との和が決定された最大数と一致するように、第2予測動きベクトル候補を導出する必要はない。第1予測動きベクトル候補の数と第2予測動きベクトル候補の数との和が決定された最大数より小さい場合には、例えば、予測動きベクトル候補が対応付けられていない予測動きベクトルインデックスの値が存在してもよい。
復号化部820は、ビットストリームに付加された符号化されたインデックスであって予測動きベクトル候補を特定するためのインデックスを、決定された最大数を用いて復号化する。
予測制御部830は、復号化されたインデックスに基づいて、第1予測動きベクトル候補および第2予測動きベクトル候補の中から、復号化対象ブロックの復号化に用いられる予測動きベクトルを選択する。つまり、予測制御部830は、予測動きベクトル候補リストから、復号化対象ブロックの復号化に用いられる予測動きベクトルを選択する。
次に、以上のように構成された動画像復号化装置800の各種動作について説明する。
図45は、実施の形態8に係る動画像復号化装置800の処理動作を示すフローチャートである。
まず、決定部811は、予測動きベクトル候補の最大数を決定する(S801)。第1導出部812は、第1予測動きベクトル候補を導出する(S802)。特定部813は、複数の第1予測動きベクトル候補が導出された場合に、動きベクトルが他の第1予測動きベクトル候補と重複する第1予測動きベクトル候補(重複候補)を特定する(S803)。
判定部814は、重複候補を除く第1予測動きベクトル候補の数が、決定された最大数より小さいか否かを判定する(S804)。ここで、重複候補を除く第1予測動きベクトル候補の数が、決定された最大数より小さいと判定された場合(S804のYes)、第2導出部815は、第2予測動きベクトル候補を導出する(S805)。一方、重複候補を除く第1予測動きベクトル候補の数が、決定された最大数より小さいと判定されなかった場合(S804のNo)、第2導出部815は、第2予測動きベクトル候補を導出しない。
復号化部820は、ビットストリームに付加された符号化されたインデックスであって予測動きベクトル候補を特定するためのインデックスを、決定された最大数を用いて復号化する(S806)。
予測制御部830は、復号化されたインデックスに基づいて、第1予測動きベクトル候補および第2予測動きベクトル候補の中から、復号化対象ブロックの復号化に用いられる予測動きベクトルを選択する(S807)。
なお、ここでは、インデックスの復号化処理(S806)は、予測動きベクトル候補が導出された後に行われていたが、必ずしもこのような順番で行われる必要はない。例えば、インデックスの復号化処理(S806)の後に、予測動きベクトル候補の導出処理(S802〜S805)が行われてもよい。また、インデックスの復号化処理(S806)と、予測動きベクトル候補の導出処理(S802〜S805)とは、並列に行われてもよい。これにより、復号化の処理速度を向上させることができる。
以上のように、本実施の形態に係る動画像復号化装置800によれば、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出することができる。したがって、動画像復号化装置800は、例えば静止領域用の動きベクトルなどを持つ予測動きベクトル候補を第2予測動きベクトル候補として導出することができる。つまり、動画像復号化装置800は、予め定められた動きを有するブロックが効率的に符号化されたビットストリームを適切に復号化することができ、符号化効率が向上されたビットストリームを適切に復号化することが可能となる。
さらに、本実施の形態に係る動画像復号化装置800によれば、予測動きベクトル候補を特定するためのインデックスを、決定された最大数を用いて復号化することができる。つまり、実際に導出される予測動きベクトル候補の数に依存せずに、インデックスを復号化することができる。したがって、予測動きベクトル候補の導出に必要な情報(例えば、co−locatedブロック等の情報)がロスされた場合でも、動画像復号化装置800は、インデックスを復号化することができ、エラー耐性を向上させることが可能となる。さらに、動画像復号化装置800は、予測動きベクトル候補の導出処理を待たずにインデックスの復号化処理を行うことができ、予測動きベクトル候補の導出処理とインデックスの復号化処理とを並列に行うことも可能となる。
さらに、本実施の形態に係る動画像復号化装置800によれば、第1予測動きベクトル候補の数が最大数より小さいと判定された場合に、第2予測動きベクトル候補を導出することができる。したがって、動画像復号化装置800は、最大数を超えない範囲で予測動きベクトル候補の数を増加させることができ、符号化効率が向上されたビットストリームを適切に復号化することが可能となる。
また、本実施の形態に係る動画像復号化装置800によれば、重複する第1予測動きベクトル候補を除く第1予測動きベクトル候補の数に応じて第2予測動きベクトル候補を導出することができる。その結果、動画像復号化装置800は、第2予測動きベクトル候補の数を増加させることができ、予測動きベクトル候補として選択可能な動きベクトルの種類を増やすことができる。したがって、動画像復号化装置800は、さらに符号化効率が向上されたビットストリームを適切に復号化することが可能となる。
なお、本実施の形態では、動画像復号化装置800は、特定部813を備えていたが、実施の形態6と同様に、必ずしも特定部813を備える必要はない。つまり、図45に示すフローチャートに、必ずしもステップS803が含まれる必要はない。このような場合であっても、動画像復号化装置800は、予測動きベクトル候補を特定するためのインデックスを、決定された最大数を用いて復号化することができるので、エラー耐性を向上させることが可能となる。
また、本実施の形態では、図45に示すように、第1導出部812が第1予測動きベクトル候補を導出した後に、特定部813が重複候補を特定していたが、必ずしもこのように順に処理される必要はない。例えば、第1導出部812は、動きベクトルが既に導出された第1予測動きベクトル候補と重複しない予測動きベクトル候補を第1予測動きベクトル候補として導出してもよい。これにより、第1導出部812は、動きベクトルが既に導出された第1予測動きベクトル候補と重複する予測動きベクトル候補を、第1予測動きベクトル候補から排除することができる。その結果、動画像復号化装置800は、第2予測動きベクトル候補の数を増加させることができ、予測動きベクトル候補として選択可能な動きベクトルの種類を増やすことができる。したがって、動画像復号化装置800は、さらに符号化効率が向上されたビットストリームを適切に復号化することが可能となる。
以上、本発明の1つまたは複数の態様に係る動画像符号化装置および動画像復号化装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の1つまたは複数の態様の範囲内に含まれてもよい。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の動画像符号化装置または動画像復号化装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、符号化対象ブロックの動きベクトルを符号化する際に用いる予測動きベクトルを算出して、前記符号化対象ブロックを符号化することでビットストリームを生成する動画像符号化方法であって、符号化対象ブロックに空間的または時間的に隣接するブロックの符号化に用いられた動きベクトルに基づいて第1予測動きベクトル候補を導出する第1導出ステップと、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出する第2導出ステップと、前記第1予測動きベクトル候補および前記第2予測動きベクトル候補の中から前記符号化対象ブロックの前記動きベクトルの符号化に用いる前記予測動きベクトルを選択する選択ステップと、前記予測動きベクトルを特定するためのインデックスを前記ビットストリームに付加する符号化ステップとを含む動画像符号化方法を実行させる。
あるいは、このプログラムは、コンピュータに、ビットストリームに含まれる復号化対象ブロックの動きベクトルを復号化する際に用いる予測動きベクトルを算出して、前記復号化対象ブロックを復号化する動画像復号化方法であって、復号化対象ブロックに空間的または時間的に隣接するブロックの復号化に用いられた動きベクトルに基づいて第1予測動きベクトル候補を導出する第1導出ステップと、あらかじめ設定されたベクトルを動きベクトルとして持つ第2予測動きベクトル候補を導出する第2導出ステップと、前記予測動きベクトル候補を特定するためのインデックスを前記ビットストリームから取得する取得ステップと、取得された前記インデックスに基づいて、前記第1予測動きベクトル候補および前記第2予測動きベクトル候補の中から、前記復号化対象ブロックを復号化する際に用いる予測動きベクトル選択する選択ステップとを含む動画像復号化方法を実行させる。
(実施の形態9)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図46は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図46のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband-Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本発明の一態様に係る画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図47に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図48は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本発明の一態様に係る画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得した多重化データを復号化し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した多重化データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号化し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号化方法を用いて復号化する。復号化した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から多重化データを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318、ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図49に示す。情報再生/記録部ex400は、以下に説明する要素ex401、ex402、ex403、ex404、ex405、ex406、ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図50に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図48に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図51Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図51Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本発明の一態様に係る画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本発明の一態様に係る画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態10)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図52は、多重化データの構成を示す図である。図52に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
図53は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図54は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図54における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図54の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図55は、多重化データに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、上記PESパケットは分割されTSペイロードに格納される。BD−ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、多重化データに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのデコーダのPIDフィルタへの転送開始時刻を示す。多重化データには図55下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、多重化データに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATは多重化データ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは0で登録される。PMTは、多重化データ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、また多重化データに関する各種ディスクリプタを持つ。ディスクリプタには多重化データのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図56はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図57に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図57に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図58に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図59に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態11)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図60に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態12)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図61は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図60のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図60の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態10で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態10で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図63のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図62は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態13)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図64Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明の一態様は、動き補償に特徴を有していることから、例えば、動き補償については専用の復号処理部ex901を用い、それ以外のエントロピー復号、デブロッキング・フィルタ、逆量子化のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図64Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。