(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
[実施の形態1]
以下、図面とともに本発明の好適な実施の形態に係る動画像符号化装置、動画像符号化方法および動画像符号化プログラム、ならびに動画像復号装置、動画像復号方法および動画像復号プログラムの詳細について説明する。なお、図面の説明において同一要素には同一符号を付与して重複する説明を省略する。
【0016】
(動画像符号化装置100の構成)
図1は、本実施の形態1に係る動画像符号化装置100の構成を説明する図である。実施の形態1の動画像符号化装置100は、LCTB画像データ取得部1000、LCTB符号列生成部1001、復号情報記憶部1002、及びストリーム多重部1003を含む。
【0017】
動画像符号化装置100は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像符号化装置100は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。
【0018】
動画像符号化装置100では、入力された画像信号を水平64画素×垂直64画素(以下、64×64と略す)の最大符号化ツリーブロック(LCTB)単位に分割し、分割したLCTBを左上から右下にラスタースキャン順序で符号化し、符号化ストリームを出力する。以下、動画像符号化装置の各部の機能と動作について説明する。
【0019】
(LCTB画像データ取得部1000)
LCTB画像データ取得部1000は、端子1より供給される画像信号から、LCTBの位置情報とLCTBの大きさに基づいて、処理対象のLCTBの画像信号を取得し、LCTBの画像信号をLCTB符号列生成部1001に供給する。
【0020】
(CTB)
ここで、CTBについて説明する。CTBは四分木構造であり、CTBは水平方向と垂直方向が均等に2分割されることで順次1/4の大きさのCTBとなる。最小のCTBの大きさを8×8とする。なお、4分割された4つのCTBはZスキャン順で処理される。最大のCTBである64×64の大きさのCTB(以降、64×64CTB)がLCTBである。
【0021】
(CU)
それ以上分割されないCTBの画像信号は符号化ブロック(CU)として、イントラ符号化またはインター符号化される。
【0022】
(CTBとCU)
図2(a)〜(b)はCUの分割例を説明するための図である。
図2(a)の例では、LCTBが10個のCUに分割されている。CU0、CU1およびCU9は分割回数が1の32×32の符号化ブロック、CU2、CU3およびCU8は分割回数が2の16×16の符号化ブロック、ならびにCU4、CU5、CU6およびCU7は分割回数が3の8×8の符号化ブロックである。
図2(b)の例では、LCTBは分割されず1個のCUで構成されている。
【0023】
本実施の形態では最大のCTBの大きさを64×64とし、最小のCTBの大きさを8×8としたが、これに限定されない。最大のCTBの大きさが最小のCTBの大きさ以上であればよい。
【0024】
(LCTB符号列生成部)
LCTB符号列生成部1001は、LCTB画像データ取得部1000より供給されるLCTBの画像信号を符号化して符号列を生成し、生成した符号列をストリーム多重部1003に供給する。また、局部復号に準じる動作を行い、動き情報と局部復号した再生画像とを復号情報記憶部1002に供給する。動き情報の詳細については後述する。
【0025】
LCTB符号列生成部1001の構成について説明する。
図3は、LCTB符号列生成部1001の構成を説明する図である。LCTB符号列生成部1001は、64×64CU評価部1100、32×32CU評価部1101、16×16CU評価部1102、8×8CU評価部1103、16×16CTBモード決定部1104、32×32CTBモード決定部1105、64×64CTBモード決定部1106、及びCTB符号化部1107を含む。端子3はLCTB画像データ取得部1000に、端子4は復号情報記憶部1002に、端子5は端子2に、端子6は復号情報記憶部1002に接続されている。
【0026】
LCTB符号列生成部1001の動作について説明する。
図4は、LCTB符号列生成部1001の動作を説明するためのフローチャートである。
【0027】
最初に、64×64CU評価部1100において64×64CUのCU評価値が算出される(ステップS1000)。
【0028】
次に、64×64CTBを分割して生成される4つの32×32CTBを32×32CUとした32×32CU[i1](i1=0,1,2,3)について以下の処理が繰り返し行われる(ステップS1001からステップS1101)。32×32CU評価部1101において32×32CU[i1]のCU評価値が算出される(ステップS1002)。
【0029】
次に、32×32CTB[i1]を分割して生成される4つの16×16CTBを16×16CUとした16×16CU[i1][i2](i2=0,1,2,3)について以下の処理が繰り返し行われる(ステップS1003からステップS1109)。16×16CU評価部1102において16×16CU[i1][i2]のCU評価値が算出される(ステップS1004)。
【0030】
次に、16×16CTB[i1][i2]を分割して生成される4つの8×8CTBを8×8CUとした8×8CU[i1][i2][i3](i3=0,1,2,3)について以下の処理が繰り返し行われる(ステップS1005からステップS1107)。8×8CU評価部1103において8×8CU[i1][i2][i3]のCU評価値が算出される(ステップS1006)。
【0031】
次に、4つの8×8CU[i1][i2][i3]の処理が終了すると(ステップS1007)、16×16CTBモード決定部1104において、16×16CTB[i1][i2](i2=0,1,2,3)が1つの16×16CU[i1][i2]として符号化されるか4つの8×8CU[i1][i2][i3]として符号化されるかが決定される(ステップS1008)。ここでは、16×16CU[i1][i2]のCU評価値であるV_16x16[i1][i2]と4つの8×8CU[i1][i2][i3](i3=0,1,2,3)のCU評価値の合計値であるV_8×8[i1][i2]とが比較されて、V_16x16[i1][i2]がV_8×8[i1][i2]以下であれば、16×16CTB[i1][i2]を16×16CU[i1][i2]として符号化されることが決定され、それ以外の場合は、16×16CTB[i1][i2]を4つの8×8CU[i1][i2][i3]として符号化されることが決定される。
【0032】
次に、4つの16×16CTB[i1][i2]の処理が終了すると(ステップS1009)、32×32CTBモード決定部1105において、32×32CTB[i1](i1=0,1,2,3)が1つの32×32CU[i1]として符号化されるか4つの16×16CTB[i1][i2]として符号化されるかが決定される(ステップS1010)。ここでは、32×32CU[i1]のCU評価値であるV_32x32[i1]と4つの16×16CTB[i1][i2](i2=0,1,2,3)のCTB評価値の合計値であるV_16×16[i1]とが比較されて、V_32x32[i1]がV_16×16[i1]以下であれば、32×32CTB[i1]は32×32CU[i1]として符号化されることが決定され、それ以外の場合は、32×32CTB[i1]は4つの16×16CTB[i1][i2]として符号化されることが決定される。
【0033】
次に、4つの32×32CTB[i1]の処理が終了すると(ステップS1011)、64×64CTBモード決定部1106において、64×64CTBが1つの64×64CUとして符号化されるか4つの32×32CTB[i1]として符号化されるかが決定される(ステップS1012)。ここでは、64×64CUのCU評価値であるV_64×64と4つの32×32CTB[i1](i1=0,1,2,3)のCTB評価値の合計値であるV_32×32とが比較されて、V_64×64がV_32×32以下であれば、64×64CTBは64×64CUとして符号化されることが決定され、それ以外の場合は、4つの32×32CTB[i1]として符号化されることが決定される。CTB評価値とCU評価値との違いは、CTB評価値はCTBが分割して生成された4つのCU評価値にCTBを分割するための符号量を評価値として加算している点である。
【0034】
以上のようにして決定されたCTB構造に基づいて、CTB符号化部1107にてCTB符号化が行われる(ステップS1013)。CTB符号化部1107では、各CTB評価部を経由してCU評価部より供給される各CUについての符号化モード、インターモード、イントラモードの情報に基づいて、各CUがイントラ符号化またはインター符号化される。イントラ符号化では、イントラ予測、直交変換、量子化、及びエントロピー符号化の処理がなされてシンタックスに従って符号列が生成される。インター符号化では、インター予測(動き補償予測)、直交変換、量子化、及びエントロピー符号化の処理がなされてシンタックスに従って符号列が生成される。ここで、本実施の形態における直交変換について説明する。AVCでは直交変換のブロックサイズとして4×4と8×8があった。本実施の形態における直交変換では、4×4と8×8に加え、16×16と32×32の直交変換のブロックサイズが利用可能とする。直交変換のブロックサイズはCU単位で指定される。なお、ブロックサイズ情報符号化部1110、符号化モード符号化部1111、インターモード符号化部1112とシンタックスについては後述する。
【0035】
64×64CU評価部1100、32×32CU評価部1101、16×16CU評価部1102、8×8CU評価部1103、16×16CTBモード決定部1104、32×32CTBモード決定部1105、及び64×64CTBモード決定部1106の詳細については後述する。
【0036】
(復号情報記憶部)
復号情報記憶部1002は、LCTB符号列生成部1001より供給される復号画像データと動き情報を予め定められた画像数記憶し、LCTB符号列生成部1001に供給する。予め定められた画像数はAVCと同様にDPB(Decoded Picture Buffer)として定義される画像数とする。
【0037】
(ストリーム多重部)
ストリーム多重部1003は、LCTB符号列生成部1001より供給される符号列をスライスの特性を決定するためのパラメータ群を定義したスライスヘッダ、ピクチャの特性を決定するためのパラメータ群を定義したPPS(Picture Parameter Set)、や符号化ストリームの特性を決定するためのパラメータ群を定義したSPS(Sequence Parameter Set)などと一緒に多重化して符号化ストリームを生成し、符号化ストリームを端子2に供給する。なお、最大のCTBの大きさや最小のCTBの大きさはSPSの中に符号化されるものとする。
【0038】
(CU評価部)
以下、64×64CU評価部1100、32×32CU評価部1101、16×16CU評価部1102、及び8×8CU評価部1103の詳細について説明する。これらは処理する画像サイズが異なるだけで基本的な構成は同一であるため、一括してCTB評価部として説明する。
【0039】
まず、CTB評価部の構成について説明する。
図5は、CTB評価部の構成を説明する図である。CTB評価部は、イントラモード決定部1200、インターモード決定部1201、評価インターモード設定部1202、及びイントラ・インターモード決定部1203を含む。端子7は64×64CU評価部1100、32×32CU評価部1101、16×16CU評価部1102、及び8×8CU評価部1103のそれぞれについて、64×64CTBモード決定部1106、32×32CTBモード決定部1105、及び16×16CTBモード決定部1104に接続されている。
【0040】
続いて、CTB評価部の動作と各部の機能について説明する。
【0041】
(評価インターモード設定部)
最初に、評価インターモード設定部1202は、所定の複数のインターモードの中から各CTBサイズ(CUサイズでも同じ)で利用可能とするインターモードの設定を行う(ステップS1200)。そして、設定した利用可能なインターモードをインターモード決定部1201に供給する。所定の複数のインターモードと各CUサイズで利用可能とするインターモードについては、後述する。
【0042】
(インターモード決定部)
次に、インターモード決定部1201は、端子3より供給されるLCTBの画像信号処理対象のCTBの画像信号を取得し(ステップS1201)、処理対象のCTBの画像信号を符号化する際に用いるインターモードを利用可能なインターモードの中から決定し(ステップS1202)、決定したインターモードについてレート歪み評価方法によりインターモード評価値を算出する(ステップS1203)。そして、決定したインターモードとインターモード評価値をイントラ・インターモード決定部1203に供給する。
【0043】
ここで、インターモード決定部1201は、利用可能なインターモードについて、それぞれレート歪み評価方法により評価値を算出し、最小の評価値を有するインターモードを1つ選択してインターモードを決定する。インターモード決定部1201の詳細については後述する。
【0044】
(レート歪み評価方法)
レート歪み評価方法について説明する。RDO(Rate Distortion Optimization)と呼ばれる符号化歪量と符号量の関係を用いて最適解として選択する。RDOでのモード評価に用いるコスト値を式1に示す。
cost = D + λ * R (式1)
【0045】
ここで、λはスライスタイプ等に依存して変化する定数である。最適な符号化ブロックはcostが最小の値となる符号化ブロックを選択する。ここで、式1中のDは原画像と復号画像のSSD(Sum of Squared Differences)を用いて評価し、式1中Rは係数及び動き情報を伝送するために必要な符号量である。ただし、Rは必ずしも実際のエントロピー符号化を行って符号量を測定しなくてもよく、簡易的な見積もり符号量を基に概算符号量を算出して用いても良い。また、Dも必ずしもSSDを測定しなくてもよく、SADなどを用いてもよい。
【0046】
(イントラモード決定部)
次に、イントラモード決定部1200は、端子3より供給されるLCTBの画像信号から処理対象のCTBの画像信号を取得し(ステップS1204)、処理対象のCTBの画像信号を符号化する際に用いるイントラモードを決定し(ステップS1205)、決定したイントラモードについてレート歪み評価方法によりイントラモード評価値を算出する(ステップS1206)。そして、決定したイントラモードとイントラモード評価値をイントラ・インターモード決定部1203に供給する。
【0047】
ここで、イントラモード決定部1200は、複数のイントラ予測モードとPCMモードについて、それぞれレート歪み評価方法により評価値を算出し、最小の評価値を有するイントラモードを1つ選択してイントラモードを決定する。
【0048】
ここで、イントラモードについて説明する。イントラモードには、AVCのように隣接画素を用いて予測画素を生成し、予測画素と画像信号との差分画素を算出し、差分画素を直交変換・量子化して符号化するイントラ予測技術を利用したイントラ予測モードと画像信号をそのまま符号化するPCMモードがある。なお、イントラ予測モードには隣接画素の利用方法によって複数のモードがあるが、ここでは詳細について説明は省略する。
【0049】
(イントラ・インターモード決定部)
最後に、イントラ・インターモード決定部1203は、インターモード決定部1201より供給されるインターモード評価値がイントラモード決定部1200より供給されるイントラモード評価値以下であるか検査し(ステップS1207)、インターモード評価値がイントラモード評価値以下であれば(ステップS1207のYES)、処理対象のCTBの画像信号を符号化する符号化モードをインターとし(ステップS1208)、インターモード評価値をCU評価値とする。それ以外であれば(ステップS1207のNO)、処理対象のCTBの画像信号を符号化する符号化モードをイントラとし(ステップS1209)、イントラモード評価値をCU評価値とする。そして、符号化モードとCU評価値を端子7に供給する。また、符号化モードがインターであれば、インターモードを端子7に供給し、符号化モードがイントラであれば、イントラモードを端子7に供給する。
【0050】
ここでは、評価値としてレート歪み評価方法により算出される評価値を用いたが、例えば、動きベクトル検出ではより簡単に画素毎の差分絶対値の総和SAD(Sum of Absolute Difference)や、画素毎の二乗誤差値の総和SSE(Sum of Square Error)とオフセットの加算値などを利用してもよい。
【0051】
(インターモード)
続いて、所定の複数のインターモードについて説明する。インターモードは、パーティションタイプとインター予測モードの組み合わせで定まる。
【0052】
(パーティションタイプ)
最初に、パーティションタイプについて説明する。
【0053】
本実施の形態では、CUはさらにパーティションに分割される。CUはパーティションタイプによって1つまたは2つの予測ブロックに分割される。
図6(a)〜(c)は、パーティションタイプを説明するための図である。
図6(a)はCUが1つのパーティションで構成される2N×2N、
図6(b)はCUを水平に2等分割する2N×N、
図6(c)は垂直に2等分割するN×2Nを示す。
図6(a)〜(c)の0と1の数値はパーティション番号を示し、パーティションはパーティション番号の順に処理される。
【0054】
(インター予測モード)
次に、インター予測モードについて説明する。インター予測モードにはマージモードと差分動きベクトルモードがある。マージモードと差分動きベクトルモードは、動き補償予測として、共に予測方向が単予測の動き補償予測と予測方向が双予測の動き補償予測が利用できる。また、AVCと同様に予測方向L0と予測方向L1の参照ピクチャリストを利用することで、複数の参照画像を利用するとする。予測方向L0の参照ピクチャリストを用いた予測方向が単予測の動き補償予測をL0予測(Pred_L0)、予測方向L1の参照ピクチャリストを用いた予測方向が単予測の動き補償予測をL1予測(Pred_L1)、予測方向L0の参照ピクチャリストと予測方向L1の参照ピクチャリストの両方を用いた予測方向が双予測の動き補償予測をBI予測(Pred_BI)とそれぞれ呼ぶ。動き補償予測の方向であるPred_L0、Pred_L1、Pred_BIをインター予測タイプとする。
【0055】
以上のようなパーティションタイプとインター予測モードの組み合わせによって、所定の複数のインターモードは定まり、インターモードは、2N×2Nマージモード、2N×Nマージモード、N×2Nマージモード、2N×2N差分動きベクトルモード、2N×N差分動きベクトルモード、及びN×2N差分動きベクトルモードとなる。
【0056】
(動き情報)
ここで、動き情報について説明する。動き情報は、動き補償予測で利用される情報であって、予測方向L0の参照ピクチャリストの中の予測方向L0の参照ピクチャを示す参照ピクチャインデックスL0、予測方向L1の参照ピクチャリストの中の予測方向L1の参照ピクチャを示す参照ピクチャインデックスL1、予測方向L0の動きベクトルmvL0、予測方向L1の動きベクトルmvL1を含む。mvL0とmvL1にはそれぞれ水平方向と垂直方向の動きベクトルが含まれる。なお、Pred_L0の場合、参照ピクチャインデックスL1には−1が、mvL1には動きベクトル(0,0)が設定され、Pred_L1の場合、参照ピクチャインデックスL0には−1が、mvL0には動きベクトル(0,0)が設定されるものとする。なお、処理対象のCUの符号化モードとしてイントラモードが選択された場合には、参照ピクチャインデックスL0と参照ピクチャインデックスL1にはそれぞれ−1が、mvL0とmvL1にはそれぞれ動きベクトル(0,0)が設定されるものとする。ここでは、有効ではない予測方向の参照ピクチャインデックスを−1としているが、有効ではないことがわかればこれに限定されない。
【0057】
(マージモードと差分動きベクトルモード)
次に、マージモードと差分動きベクトルモードについて説明する。マージモードは予め定められた方法で隣接する動き情報を用いて生成される動き情報候補から動き情報を選択して動き補償予測を行う。一方、差分動きベクトルモードは動き情報を新たに生成して動き補償予測を行う。そのため、一般的に、マージモードは、動き情報の伝送コストが小さく、隣接する領域と動きの相関が高い場合にはマージモードが有用となる。一方、隣接する領域と動きの相関が比較的高くない場合で動き情報の伝送コストを増やしても予測誤差を少なく伝送することのできる差分動きベクトルモードが有用となる。なお、動き情報の伝送コストを増やしても予測誤差を少なく伝送することのできない場合には符号化モードとしてイントラモードが有用となる。
【0058】
(隣接パーティション)
続いて、マージモードと差分動きベクトルモードで利用される隣接パーティションについて説明する。
図7は、隣接パーティションを説明するための図である。以下、
図7を用いて、隣接パーティションについて説明する。隣接パーティションは処理対象のパーティションに隣接する符号化または復号済みのパーティションであるA0、A1、B0、B1、B2、及び処理対象のパーティションの存在するピクチャとは異なるピクチャ上のパーティションで処理対象のパーティションの右下に位置するパーティションであるTとする。隣接パーティションはそれぞれ処理対象パーティションの左上画素a、右上画素b、左下画素c、右下画素dに対して定められる。A0は左下画素cの右下にある画素を含むパーティション、A1は左下画素cの右にある画素を含むパーティション、B0は右上画素bの右上にある画素を含むパーティション、B1は右上画素bの上にある画素を含むパーティション、B2は左上画素aの左上にある画素を含むパーティション、Tは右下画素dの右下にある画素を含むパーティションとなる。
【0059】
(マージ候補リストとマージインデックス)
マージモードでは、隣接パーティションであるA0、A1、B0、B1、B2、及びTの動き情報から5つの動き情報候補を含むマージ候補リストが生成される。なお、マージ候補リストの生成方法については、符号化と復号において同一処理がなされ、符号化と復号において同一のマージ候補リストが生成される。符号化では、マージ候補リストから1つの動き情報候補が選択され、選択された動き情報候補のマージ候補リスト内の位置を示すマージインデックスとして符号化され、復号では、マージインデックスに基づいてマージ候補リストから動き情報候補を選択することで、符号化と復号において同一の動き情報候補が選択される。ここでは、マージ候補リストに含まれる動き情報候補の数を5としたが、1以上であればよい。
【0060】
(予測動きベクトル候補リストと予測動きベクトルインデックス)
一方、差分動きベクトルモードでは、隣接パーティションであるA0、A1、B0、B1、B2、及びTの動き情報から予測方向L0の2つの予測動きベクトル候補を含む予測動きベクトル候補リストL0が生成される。Bスライスであれば、さらに、予測方向L1の2つの予測動きベクトル候補を含む予測動きベクトル候補リストL1が生成される。なお、予測動きベクトル候補リストの生成方法については、符号化と復号において同一処理がなされ、符号化と復号において同一の予測動きベクトル候補リストが生成される。符号化では、予測動きベクトル候補リストから1つの予測動きベクトル候補が選択され、選択された予測動きベクトル候補の予測動きベクトル候補リスト内の位置を示す予測動きベクトルインデックスとして符号化され、復号では、予測動きベクトルインデックスに基づいて予測動きベクトル候補リストから予測動きベクトル候補を選択することで、符号化と復号において同一の予測動きベクトル候補が選択される。ここでは、予測動きベクトル候補リストに含まれる予測動きベクトル候補の数を2としたが、1以上であればよい。なお、符号化では、動きベクトルから選択された予測動きベクトル候補が減算された差分動きベクトルが符号化され、復号では、選択された予測動きベクトル候補と差分動きベクトルを加算して動きベクトルが再生されるため、符号化と復号において同一の動きベクトルが得られる。
【0061】
(各CUサイズで利用可能とするインターモード)
続いて、各CUサイズで利用可能とするインターモードを説明する。
図9は、各CUサイズで利用可能とするインターモードを説明するための図である。以下、
図9を用いて、各CUサイズ(CU Size)で利用可能とするインターモード(Inter Mode)について説明する。
図9に示されるように、CUサイズが64×64であるCUでは、2N×2Nマージモード(MERGE MODE)のみを利用可能とする。CUサイズが32×32であるCUとCUサイズが16×16であるCUでは、2N×2Nマージモードと2N×N差分動きベクトルモード(MVD MODE)を利用可能とする。CUサイズが8×8であるCUでは、2N×2Nマージモード、2N×Nマージモード、N×2Nマージモード、2N×2N差分動きベクトルモード、2N×N差分動きベクトルモード、及びN×2N差分動きベクトルモードを利用可能とする。ここで、スキップモードについて説明する。スキップモードは2N×2Nマージモードの特殊ケースであって、最も効率良く動き情報を伝送できるモードである。ここでは、CUサイズが8×8であるCUでは、2N×2Nマージモード、2N×Nマージモード、N×2Nマージモード、2N×2N差分動きベクトルモード、2N×N差分動きベクトルモード、及びN×2N差分動きベクトルモードを利用可能としたが、2N×2Nマージモードに加えて、新たなパーティションタイプが追加されればよくこれに限定されない。例えば、2N×NマージモードとN×2Nマージモードが追加されてもよく、また、2N×Nマージモード、N×2N差分動きベクトルモードが追加されてもよい。
【0062】
(CUサイズ構成の効果)
以下、各CUサイズで利用可能とするインターモードを上記のように設定する効果を説明する。一般的な動画像において、大きなCUサイズのCUでインターモードが選択される場合には時空間的に隣接領域との動きの相関が高い。また、本実施の形態でのマージ候補リストには、後述する隣接パーティションより得られる動き情報候補の予測方向L0と予測方向L1の動き情報を組み合わせて生成される第1補充動き情報が追加されるため、多少の動きのずれはマージモードでも補正することができる。また、本実施の形態でのマージ候補リストには、後述する動きベクトルが(0,0)の第2補充動き情報が追加されるため、部分的な静止したような動きにもマージモードで対応できる。
【0063】
また、CUサイズが大きくなれば、動き情報の伝送コストよりも予測誤差の伝送コストの方が相対的に大きくなる。そのため、最大のCUサイズのCUを分割して2番目に大きなCUサイズのCUとした場合に生じるCUを分割するコストと動き情報のコストの増分は、他のCUサイズのCUを分割する場合の増分と比較して相対的に最も少ない。また、最大のCUサイズのCUで利用できる直交変換の最大のサイズと2番目に大きなCUサイズのCUで利用できる直交変換の最大のサイズは等しいため、最大のCUサイズのCUと2番目に大きなCUサイズのCUにおける直交変換の効率の差がない。
【0064】
また、差分動きベクトルモードでは、新たな動き情報を生成して動き補償予測を行うため、一般的には動き検出が行われる。ところが、動き検出処理は符号化処理の中において非常に処理量が多いことが知られている。一方、マージモードでは動き検出をする必要がないため、差分動きベクトルモードよりも処理量は相対的に非常に少なくて済む。
【0065】
以上のように、最大のCUサイズのCUでは、スキップモードを兼ね備える2N×2Nマージモードのみを評価することで、処理量を大きく抑制しながら符号化効率の低下を最小限に抑制することができる。
【0066】
また、最小のCUサイズの以外のCUの2N×NやN×2Nのパーティションタイプは、そのCUをCTBとして分割して得られる2つのCUの動き情報を同一にすることによって実現できる。
図10(a)〜(b)は2N×Nのパーティションタイプと同一の動き情報を持つCTBを説明する図である。CU−Aは、パーティションタイプが2N×Nであって、パーティションA(PA)とパーティションB(PB)で構成されている。CU−AをCTBとして分割したCTB−Bは、それぞれのパーティションが2N×2Nである4つのCU(CU−0、CU−1、CU−2、CU−3)で構成されている。この場合、CU−0の動き情報を差分動きベクトルモードまたはマージモードによってPAと同一とし、CU−2の動き情報を差分動きベクトルモードまたはマージモードによってPBと同一とし、CU−1をマージモードにしてCU−0の動き情報を利用し、CU−3をマージモードにしてCU−2の動き情報を利用することで、CU−AとCTB−Bの動き情報を同一とすることができる。そのため、動き情報を新規に指定できる差分動きベクトルモードと動き情報の伝送コストの低いマージモードが備わることで、CUをCTBとして分割して2N×NやN×2Nのパーティションタイプを実現するためのコスト(CTBを分割する伝送コストと2つのマージモードを伝送するコスト)を小さく抑制することができる。一方、最小のCUサイズの以外のCUの2N×NやN×2NのパーティションタイプとそのCUをCTBとして分割して得られる2つのCUの動き情報を同一にする評価の重複を削減することができる。
【0067】
また、パーティションタイプが2N×NやN×2Nであるパーティションのマージモードは無効な候補が多い。
図11(a)〜(b)はパーティションタイプが2N×NやN×2Nである場合の隣接パーティションを説明する図である。
図11(a)は2N×Nのパーティション1の隣接パーティションを示している。この場合、隣接パーティションB1はマージ候補リストの生成の際に無効化されている。また、隣接パーティションB0は符号化または復号済みでないため隣接パーティションとはならない。
図11(b)はN×2Nのパーティション1の隣接パーティションを示している。この場合、隣接パーティションA1はマージ候補リストの生成の際に無効化されている。また、隣接パーティションA0は符号化または復号済みでないため隣接パーティションとはならない。そのため、2N×NやN×2Nのパーティション1の隣接パーティションから得られる動き情報候補は最大でも3つとなり、2N×NやN×2Nのパーティション0や2N×2Nと比較して符号化効率が向上し難い。
【0068】
以上のように、最小のCUサイズの以外のCUで2N×NやN×2Nのパーティションタイプを利用しないことで、処理量を大きく抑制しながら符号化効率の低下を最小限に抑制することができる。
【0069】
また、最小のCUサイズのCUで2N×NやN×2Nのパーティションタイプを利用することで、細かい動きをするような動画像に対して符号化効率を向上させることができる。
【0070】
図9では、CUサイズが8×8であるCUを利用することを前提として説明したが、例えば、画像サイズが4K2K(3840×2160)や8K4K(7680×4320)などの大画面である場合には、ハイビジョン(1920×1080)などと比較して小さなCUサイズを利用することは、処理量と符号化効率のバランスがよくない。そのため、画像サイズに応じて各CUサイズで利用可能とするインターモードを切り替えてもよい。
図12は、各CUサイズで利用可能とするインターモードの別の例を説明するための図である。例えば、画像サイズがハイビジョン以下の場合は
図9を利用し、画像サイズがハイビジョンより大きい場合は
図12を利用することもできる。
【0071】
(インターモード決定部)
続いて、インターモード決定部1201の詳細について説明する。
図13は、インターモード決定部1201の構成を説明するための図である。以下、
図13を用いて、インターモード決定部1201の構成について説明する。インターモード決定部1201は、2N×2Nマージモード評価部1300、スキップモード評価部1301、2N×2N差分動きベクトルモード評価部1302、2N×Nマージモード評価部1303、2N×N差分動きベクトルモード評価部1304、N×2Nマージモード評価部1305、N×2N差分動きベクトルモード評価部1306、及びインターモード選択部1307を含む。端子8は評価インターモード設定部1202に接続されている。端子9はイントラ・インターモード決定部1203に接続されている。
【0072】
続いて、インターモード決定部1201の動作と各部の機能について説明する。
図14は、インターモード決定部1201の動作を説明するためのフローチャートである。
【0073】
最初に、2N×2Nマージモード評価部1300において2N×2Nマージモードが評価される(ステップS1300)。そして、2N×2Nマージモードの評価値とマージインデックスがインターモード選択部1307に供給される。また、マージインデックスがスキップモード評価部1301に供給される。
【0074】
次に、スキップモード評価部1301においてスキップモードの評価値が算出される(ステップS1301)。スキップモード評価部1301では、2N×2Nマージモードとして選択されたマージインデックスがスキップモードの条件を満たしているか検査される。スキップモードの条件は、符号化する直交変換係数が0であることである。スキップモードの条件を満たしていれば、スキップモードとしてレート歪み評価方法により評価値が算出され、キップモードの条件を満たしていなければ、スキップモードが選択されないように評価値は最大値に設定される。そして、スキップモードの評価値がインターモード選択部1307に供給される。
【0075】
次に、CUが最大のCUサイズであるか検査する(ステップS1302)。
【0076】
CUが最大のCUサイズであれば(ステップS1302のYES)、インターモード選択部1307においてインターモードが決定される(ステップS1309)。ここでは、2N×2Nマージモードの評価値とスキップモードの評価値の小さい方がインターモードとして選択される。
【0077】
CUが最大のCUサイズでなければ(ステップS1302のNO)、2N×2N差分動きベクトルモード評価部1302において2N×2N差分動きベクトルモードが評価される(ステップS1303)。そして、2N×2N差分動きベクトルモードの評価値と参照ピクチャインデックス、差分動きベクトル、予測動きベクトル候補インデックスがインターモード選択部1307に供給される。
【0078】
次に、CUが最小のCUサイズであるか検査する(ステップS1304)。CUが最小のCUサイズでなければ(ステップS1304のNO)、インターモード選択部1307においてインターモードが決定される(ステップS1309)。ここでは、スキップモード、2N×2Nマージモード、2N×2N差分動きベクトルモードのそれぞれの評価値を比較して、最小の比較値を有するものがインターモードとして選択される。
【0079】
CUが最小のCUサイズであれば(ステップS1304のYES)、2N×Nマージモード評価部1303において2N×Nマージモードが評価される(ステップS1305)。そして、2N×Nマージモードの評価値とマージインデックスがインターモード選択部1307に供給される。
【0080】
次に、2N×N差分動きベクトルモード評価部1304において2N×N差分動きベクトルモードが評価される(ステップS1306)。そして、2N×N差分動きベクトルモードの評価値と参照ピクチャインデックス、差分動きベクトル、予測動きベクトル候補インデックスがインターモード選択部1307に供給される。
【0081】
次に、N×2Nマージモード評価部1305においてN×2Nマージモードが評価される(ステップS1307)。そして、N×2Nマージモードの評価値とマージインデックスがインターモード選択部1307に供給される。
【0082】
次に、N×2N差分動きベクトルモード評価部1306においてN×2N差分動きベクトルモードが評価される(ステップS1307)。そして、N×2N差分動きベクトルモードの評価値と参照ピクチャインデックス、差分動きベクトル、予測動きベクトル候補インデックスがインターモード選択部1307に供給される。
【0083】
次に、インターモード選択部1307においてインターモードが決定される(ステップS1309)。ここでは、スキップモード、2N×2Nマージモード、2N×2N差分動きベクトルモード、2N×Nマージモード、2N×N差分動きベクトルモード、N×2Nマージモード、N×2N差分動きベクトルモードのそれぞれの評価値を比較して、最小の比較値を有するものがインターモードとして選択される。
【0084】
(マージモード評価部)
続いて、マージモード評価部の詳細について説明する。マージモード評価部は2N×2Nマージモード評価部1300、2N×Nマージモード評価部1303、及びN×2Nマージモード評価部1305についてパーティションタイプが異なること以外は共通である。
【0085】
図15はマージモード評価部を説明する図である。マージモード評価部は、マージ候補リスト生成部1400、マージ候補評価部1401、及びマージインデックス決定部1402で構成される。端子10はインターモード選択部1307に接続されている。
【0086】
続いて、マージモード評価部の動作と各部の機能について説明する。最初に、マージ候補リスト生成部1400は端子4より供給される隣接パーティションの動き情報からマージ候補リストを生成する。そして、マージ候補リストをマージ候補評価部1401に供給する。次に、マージ候補評価部1401はマージ候補リスト生成部1400より供給されるマージ候補リストに含まれる全ての動き情報候補の動き情報について、端子3より供給される画像信号からレート歪み評価方法により評価値を算出する。そして、マージ候補リストに含まれる全ての動き情報候補の評価値をマージインデックス決定部1402に供給する。マージインデックス決定部1402は、マージ候補評価部1401より供給される評価値から、最小の評価値を持つ動き情報をマージモードの動き情報として選択し、マージインデックスを決定する。そして、マージインデックスと評価値を端子10に供給する。
【0087】
(マージ候補リスト生成部)
続いて、マージ候補リスト生成部1400について説明する。
図16は、マージ候補リスト生成部1400の構成を説明するための図である。以下、
図16を用いて、マージ候補リスト生成部1400の構成について説明する。マージ候補リスト生成部1400は、空間マージ候補導出部1600、時間マージ候補導出部1601、マージリスト生成部1602、第1マージ候補追加部1603、及び第2マージ候補追加部1604を含む。端子11はマージ候補評価部1401に接続されている。
【0088】
以下、マージ候補リスト生成部1400の動作について説明する。まず、空間マージ候補導出部1600は、隣接パーティションA1、B1、B0、A1、B2の順に、隣接パーティションの動き情報が無効であるか検査される。ここで、無効であるとは、以下の条件のいずれかに該当することである。(1)隣接パーティションが画像領域外である。(2)イントラモードである。(3)パーティションタイプが2N×Nのパーティション1で隣接パーティションがB1である。(4)パーティションタイプがN×2Nのパーティション1で隣接パーティションがA1である。そして、最大で4つの無効でない隣接パーティションの動き情報を空間マージ候補とする。次に、時間マージ候補導出部1601は、隣接パーティションTの動き情報が有効であるか検査し、隣接パーティションTの動き情報が有効であれば、隣接パーティションTの動き情報を時間マージ候補とする。次に、マージリスト生成部1602は、空間マージ候補と時間マージ候補からマージ候補リストを生成する。次に、マージ候補リスト生成部1400は、マージ候補リスト内の動き情報候補の数が5であるか検査し、マージ候補リスト内の動き情報候補の数が5であれば、マージ候補リストの生成は終了する。マージ候補リスト内の動き情報候補の数が5でなければ、以降のマージ候補リストの生成が継続される。次に、第1マージ候補追加部1603は、Bスライスであって、マージ候補リスト内の動き情報候補の数が2つ以上あれば、マージ候補リスト内の第1の動き情報候補のPred_L0と第2の動き情報のPred_L1を組み合わせて、新たな双予測の第1補充動き情報を生成し、第1補充動き情報をマージ候補としてマージ候補リスト内に追加する。ここで、第1の動き情報候補と第2の動き情報候補はマージ候補リスト内の別の動き情報候補であれば、マージ候補リスト内の動き情報候補の数が5に達するまで第1補充動き情報を生成して追加する。次に、第2マージ候補追加部1604は、マージ候補リスト内の動き情報候補の数が5になるまで動きベクトルが(0,0)を持つ第2補充動き情報を生成し、第2補充動き情報をマージ候補としてマージ候補リストに追加する。
【0089】
ここで、マージ候補リストについて説明する。
図8はマージ候補リストの一例について説明する図である。
図8に示されるマージ候補リストでは、マージインデックス(Merge Index)の0と1の2つの動き情報(Motion Info)が隣接パーティションの動き情報である。マージインデックスの2と3の動き情報が第1補充動き情報である。マージインデックス2の第1補充動き情報はマージインデックス0の予測方向L0の動き情報とマージインデックス1の予測方向L1の動き情報が組み合わされて生成される。マージインデックス3の第1補充動き情報はマージインデックス1の予測方向L0の動き情報とマージインデックス0の予測方向L1の動き情報が組み合わされて生成される。マージインデックスの4の動き情報が、第2補充動き情報である。
【0090】
(差分動きベクトルモード評価部)
続いて、差分動きベクトルモード評価の詳細について説明する。差分動きベクトルモード評価は2N×2N差分動きベクトルモード評価部1302、2N×N差分動きベクトルモード評価部1304、N×2N差分動きベクトルモード評価部1306についてパーティションタイプが異なること以外は共通である。
【0091】
まず、Pred_L0について、動きベクトル検出が行われる。動きベクトル検出は、Pred_L0の参照ピクチャリストL0に含まれる参照ピクチャに対して、予測誤差と参照ピクチャインデックス、差分動きベクトル、予測動きベクトル候補インデックスの見積もり符号量から評価値が算出され、評価値が最小となる差分動きベクトルmvdL0、予測動きベクトル候補インデックスmvpL0、及び参照ピクチャインデックスrefIdxL0の組み合わせが決定される。ここでは、動きベクトル検出の評価値はマージモード評価部と同じレート歪み評価方法により算出する。ただし、最終的な評価値がマージモード評価部と同じであればよい。例えば、動きベクトル検出ではより簡単に画素毎の差分絶対値の総和SAD(Sum of Absolute Difference)や、画素毎の二乗誤差値の総和SSE(Sum of Square Error)等を利用して、決定した動きベクトルに対してレート歪み評価値を算出するなどでもよい。Pスライスの場合は、Pred_L0が2N×2N差分動きベクトルモードのインター予測モードとして選択される。なお、動きベクトルは予測動きベクトル候補インデックスで示される予測動きベクトル候補リスト中の予測動きベクトルと差分動きベクトルを加算することで得られる。
【0092】
Bスライスの場合には、Pred_L1についても、同様に差分動きベクトルmvpL1、予測動きベクトル候補インデックスmvpL1、及び参照ピクチャインデックスrefIdxL1の組み合わせが決定されて評価値が得られる。また、Pred_BIについて、mvL0、mvpL0、refIdxL0、mvL1、mvpL1、refIdxL1の組み合わせによって評価値が算出される。そして、Pred_L0、Pred_L1、またはPred_BIの中から最小の評価値となるインター予測モードが2N×2N差分動きベクトルモードとして選択される。
【0093】
(シンタックス)
続いて、本実施の形態で利用するシンタックスの一部について説明する。シンタックスは符号化及び復号において利用される。符号化ではシンタックスに従ってシンタックス要素を符号列に変換し、復号では、符号列をシンタックス要素に復号する。したがって、符号化と復号において共通規則を定めておくことで符号化の意図したシンタックス要素を復号において再現することができる。シンタックス要素の符号化及び復号はエントロピー符号化及びエントロピー復号によって行われ、算術符号化やハフマン符号化などの可変長符号化を含む方法によって実施される。
【0094】
図17(a)〜(b)と
図18は、シンタックスを説明するための図である。以下、
図17と
図18を用いて、シンタックスについて説明する。
図17(a)はCTBの構造を示す。CTBには、分割回数に応じて必要となる分割フラグであるsplit_flagが含まれ、split_flagが1であれば4つのCTBに分割され、split_flagが1でなければCUとなる。split_flagは0または1の符号列である。
【0095】
図17(b)はCUの構造を示す。CUには、skip_flag(スキップフラグ)を含まれる。skip_flagが1であれば、PUが1つ含まれ、スキップフラグが1でなければ、符号化モードであるpred_mode_flag、パーティションタイプであるpart_modeが含まれる。さらに、pred_mode_flagが1であれば、イントラモードに関する情報(mpm_idxなど)が含まれ、pred_mode_flagが1でなければ、パーティションタイプに応じた数のPUが含まれる。skip_flag、pred_mode_flagは0または1の符号列である。part_modeには、2N×2Nが0、2N×Nが1、N×2Nが2としてTruncated Unary符号列が割り当てられる。
【0096】
図18はPUの構造を示す。PUには、skip_flagが1であれば、merge_idxのみが含まれる。skip_flagが1でなければ、インター予測モードがマージモードであることを示すフラグであるmerge_flag(マージフラグ)が含まれる。merge_flagが1であれば、merge_idxが含まれる。merge_flagが1でなければ、インター予測タイプであるinter_pred_typeが含まれ、inter_pred_typeがPred_L1でなければ、さらに、参照ピクチャインデックスL0であるref_idx_l0、予測方向L0の差分動きベクトルであるmvd_l0(x,y)、予測方向L0の予測動きベクトルフラグであるmvp_l0_flagが含まれる。inter_pred_typeがPred_L0でなければ、さらに、参照ピクチャインデックスL1であるref_idx_l1、予測方向L1の差分動きベクトルであるmvd_l1(x,y)、予測方向L1の予測動きベクトルフラグであるmvp_l1_flagが含まれる。merge_flag、mvp_l0_flag、mvp_l1_flagは0または1の符号列である。merge_idx、ref_idx_l0、ref_idx_l1にはTruncated Unary符号列が割り当てられる。inter_pred_typeには、Pred_BIが0、Pred_L0が1、Pred_L1が2としてTruncated Unary符号列が割り当てられる。
【0097】
なお、マージモードに関係するシンタックスは、skip_flag、merge_flag、及びmerge_idxである。一方、差分動きベクトルモードに関係するシンタックスは、skip_flag、merge_flag、inter_pred_type、ref_idx_l0、mvd_l0(x,y)、mvp_l0_flag、ref_idx_l1、mvd_l1(x,y)、mvp_l1_flagである。
【0098】
(ブロックサイズ情報符号化部)
ブロックサイズ情報符号化部1110は、split_flag、パーティションタイプをシンタックスに従って符号化する。
【0099】
(符号化モード符号化部)
符号化モード符号化部1111は、pred_mode_flagをシンタックスに従って符号化する。
【0100】
(インターモード符号化部)
インターモード符号化部1112は、skip_flag、merge_flag、merge_idx、inter_pred_type、ref_idx_l0、mvd_l0(x,y)、mvp_l0_flag、ref_idx_l1、mvd_l1(x,y)、mvp_l1_flagをシンタックスに従って符号化する。
【0101】
(動画像復号装置200の構成)
次に、実施の形態1の動画像復号装置を説明する。
図19は、実施の形態1に係る動画像復号装置200の構成を示す図である。動画像復号装置200は、動画像符号化装置100により符号化された符号列を復号して再生画像を生成する装置である。
【0102】
動画像復号装置200は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像復号装置200は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。
【0103】
実施の形態1の動画像復号装置200は、符号列解析部201、予測誤差復号部202、加算部203、動き情報再生部204、動き補償部205、フレームメモリ206、動き情報メモリ207、及びイントラ予測部208を備える。
【0104】
(動画像復号装置200の動作)
以下、各部の機能と動作について説明する。符号列解析部201は、端子30より供給された符号列を解析して、分割フラグ、スキップフラグ、符号化モード、パーティションタイプ、イントラモードに関する情報、マージフラグ、マージインデックス、インター予測タイプ、参照ピクチャインデックス、差分動きベクトル、予測動きベクトルインデックス、及び予測誤差符号化データなどをシンタックスに従ってエントロピー復号する。そして、分割フラグとパーティションタイプによって処理対象のパーティションのサイズを得る。そして、予測誤差符号化データを予測誤差復号部202に、マージフラグ、マージインデックス、インター予測タイプ、参照ピクチャインデックス、差分動きベクトル、及び予測動きベクトルインデックスを動き情報再生部204に、イントラモードに関する情報をイントラ予測部208に供給する。符号列解析部201の詳細な構成については後述する。
【0105】
また、符号列解析部201は、SPS、PPS、やスライスヘッダに含まれるシンタックス要素を必要に応じて符号化ストリームから復号する。なお、最大のCTBの大きさや最小のCTBの大きさはSPSから復号される。
【0106】
動き情報再生部204は、符号列解析部201より供給されるマージフラグ、マージインデックス、インター予測タイプ、参照ピクチャインデックス、差分動きベクトル、及び予測動きベクトルインデックスと、動き情報メモリ207より供給される隣接パーティションの動き情報から、処理対象のパーティションの動き情報を再生し、動き情報を動き補償部205および動き情報メモリ207に供給する。動き情報再生部204の詳細な構成については後述する。
【0107】
動き補償部205は、動き情報再生部204より供給される動き情報に基づいて、フレームメモリ206内の参照ピクチャインデックスが示す参照画像を、動きベクトルに基づき動き補償して予測信号を生成する。インター予測タイプがPred_BIであれば、L0予測とL1予測の予測信号を平均したものを予測信号として生成する。そして、予測信号を加算部203に供給する。動きベクトルの導出については後述する。
【0108】
イントラ予測部208は、動き情報再生部204より供給されるイントラモードに関する情報に基づいて、予測信号を生成する。そして、予測信号を加算部203に供給する。
【0109】
予測誤差復号部202は、符号列解析部201より供給される予測誤差符号化データに対して、逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、予測誤差信号を加算部203に供給する。
【0110】
加算部203は、予測誤差復号部202より供給される予測誤差信号と、動き補償部205またはイントラ予測部208より供給される予測信号とを加算して復号画像信号を生成し、復号画像信号をフレームメモリ206および端子31に供給する。
【0111】
フレームメモリ206は、加算部203より供給される復号画像信号を記憶する。動き情報メモリ207は、動き情報再生部204より供給される動き情報を最小の予測ブロックサイズ単位で記憶する。
【0112】
(符号列解析部の詳細な構成)
符号列解析部201は、ブロックサイズ情報復号部2110、符号化モード復号部2111、及びインターモード復号部2112を含む。
【0113】
(ブロックサイズ情報復号部)
ブロックサイズ情報復号部2110は、split_flag、パーティションタイプをシンタックスに従って復号する。
【0114】
(符号化モード復号部)
符号化モード復号部2111は、pred_mode_flagをシンタックスに従って復号する。
【0115】
(インターモード復号部)
インターモード復号部2112は、skip_flag、merge_flag、merge_idx、inter_pred_type、ref_idx_l0、mvd_l0(x,y)、mvp_l0_flag、ref_idx_l1、mvd_l1(x,y)、mvp_l1_flagをシンタックスに従って復号する。
【0116】
(動き情報再生部204の詳細な構成)
続いて、動き情報再生部204の詳細な構成について説明する。
図20は、動き情報再生部204の構成を示す。動き情報再生部204は、インター予測モード判定部210、差分動きベクトルモード再生部211およびマージモード再生部212を含む。端子32は符号列解析部201に、端子33は動き情報メモリ207に、端子34は動き補償部205に、端子36は動き情報メモリ207にそれぞれ接続されている。
【0117】
(動き情報再生部204の詳細な動作)
以下、各部の機能と動作について説明する。インター予測モード判定部210は、符号列解析部201より供給されるマージフラグが「0」であるか「1」であるか判定する。マージフラグが「0」であれば、符号列解析部201より供給されるインター予測タイプ、参照ピクチャインデックス、差分動きベクトル、及び予測動きベクトルインデックスを差分動きベクトルモード再生部211に供給する。マージフラグが「1」であれば、符号列解析部201より供給されるマージインデックスをマージモード再生部212に供給する。
【0118】
差分動きベクトルモード再生部211は、インター予測モード判定部210より供給されるインター予測タイプ及び参照ピクチャインデックスと、端子33より供給される隣接パーティションの動き情報から、予測動きベクトル候補リストを生成し、予測動きベクトル候補リストからインター予測モード判定部210より供給される予測動きベクトルインデックスによって示される予測動きベクトルを選択して、予測動きベクトルとインター予測モード判定部210より供給される差分動きベクトルを加算して動きベクトルを再生して動き情報を生成し、端子34及び端子36に供給する。
【0119】
マージモード再生部212は、端子33より供給される隣接パーティションの動き情報からマージ候補リストを生成し、マージ候補リストからインター予測モード判定部210より供給されるマージインデックスによって示される動き情報を選択して端子34及び端子36に供給する。
【0120】
(マージモード再生部212の詳細な構成)
続いて、マージモード再生部212の詳細な構成について
図20を用いて説明する。マージモード再生部212は、マージ候補リスト生成部213及び動き情報選択部214を含む。端子35はインター予測モード判定部210に接続されている。
【0121】
以下、各部の機能と動作について説明する。マージ候補リスト生成部213は動画像符号化装置100のマージ候補リスト生成部1400と同一の機能を有し、マージ候補リスト生成部1400と同一の動作によってマージ候補リストを生成し、マージ候補リストを動き情報選択部214に供給する。
【0122】
動き情報選択部214は、マージ候補リスト生成部213より供給されるマージ候補リストの中から、端子35より供給されるマージインデックスで示される動き情報を選択し、動き情報を端子34及び端子36に供給する。
【0123】
以上のように、動画像復号装置200は、動画像符号化装置100により符号化された符号列を復号して再生画像を生成することができる。
【0124】
[実施の形態2]
以下、実施の形態2について説明する。実施の形態1とは各CUサイズで利用可能とするインターモードが異なる。以下、実施の形態2の各CUサイズで利用可能とするインターモードについて説明する。
図21は、実施の形態2の各CUサイズで利用可能とするインターモードを説明するための図である。以下、
図21を用いて、各CUサイズで利用可能とするインターモードについて説明する。実施の形態1とは、最大のCUサイズである64×64CUで、2N×2N差分動きベクトルモードを利用可能とする点が異なる。
【0125】
この場合、最大のCUサイズであるCUの2N×2N差分動きベクトルモード評価部は、最大のCUサイズでないCUの2N×2N差分動きベクトルモード評価部と比較して、処理量を大幅に削減したものとする。例えば、所定数の探索点のみを動き検出するようにする。より具体的には、予測動きベクトル候補リストに含まれる予測動きベクトルで示される点だけの予測誤差を算出し、その他の点については動きを探索しないようにする。以上のように、最大のCUサイズであるCUの2N×2N差分動きベクトルモード評価部を、最大のCUサイズでないCUの2N×2N差分動きベクトルモード評価部よりも簡易的な動き検出として、最大のCUサイズであるCUの2N×2N差分動きベクトルモードを利用可能とすることで、処理量を大きく抑制しながら符号化効率の低下を最小限に抑制することができる。
【0126】
[実施の形態3]
以下、実施の形態3について説明する。実施の形態1とは各CUサイズで利用可能とするインターモードが異なる。以下、実施の形態3の各CUサイズで利用可能とするインターモードについて説明する。
図22は、実施の形態3の各CUサイズで利用可能とするインターモードを説明するための図である。以下、
図22を用いて、各CUサイズで利用可能とするインターモードについて説明する。実施の形態1とは、最小のCUサイズである8×8CUで、2N×N差分動きベクトルモードとN×2N差分動きベクトルモードを利用不能とする点が異なる。また、
図22が適用されるスライスタイプが双予測の動き補償予測が行えないPスライスであるとする。なお、スライスタイプが双予測の動き補償予測が行えるBスライスであれば、
図9が適用される。
【0127】
ここで、Pred_BIの双予測の動き補償予測が行えるBピクチャ(Bスライス)については、パーティションタイプが2N×2Nである場合でも、疑似的に2つのパーティションに分割し、パーティション0はPred_L0を優先して、パーティション1はPred_L1を優先してそれぞれ動き情報を生成して評価値を合成することで、ある程度2N×NやN×2Nの効果を得ることができる。評価値の構成について説明する。
図26(a)〜(b)はパーティション0とパーティション1の評価値を合成について説明する図である。
図26(a)〜(b)は2N×Nの評価について説明する。
図26(a)のように、Pred_L0の評価を行う場合には、パーティションタイプが2N×2Nのパーティションを疑似的に2N×Nとして2つのパーティションaとパーティションbに分割し、
図26(b)のように、Pred_L1の評価を行う場合には、パーティションタイプが2N×2Nのパーティションを疑似的に2N×Nとして2つのパーティションcとパーティションdに分割し、式(1)のDを次式により算出する。
【0128】
D={k(a)×SSD(a)+k(b)×SSD(b)+k(c)×SSD(c)+k(d)×SSD(d)}/2; (式2)
【0129】
ここでは、k(a)>k(b)、k(c)<k(d)、k(a)+k(b)=1、k(c)+(kd)=1の関係が成立する。
【0130】
そのため、双予測の動き補償予測が行えないPスライスの場合には、最小のCUサイズのCUにおいても2N×NやN×2Nのパーティションタイプを利用し、Bスライスの場合には、最小のCUサイズのCUでも2N×NやN×2Nのパーティションタイプを利用しないようにする。
【0131】
ここでは、スライスタイプに応じて最小のCUサイズにおけるパーティションタイプの利用方法について説明したが、これに限定されない。双予測の動き補償予測が行うことのできるスライスタイプにおいて利用可能なパーティションタイプの数を、双予測の動き補償予測が行うことのできないスライスタイプにおいて利用可能なパーティションタイプの数よりも少なく設定することができればよい。
【0132】
以上のようにすることで、処理量を大きく抑制しながら符号化効率の低下を最小限に抑制することができる。また、PスライスとBスライスの処理負荷を平滑化することもでき、PスライスとBスライスの両方に対応した動画像符号化または動画像復号の規模を抑制することができる。
【0133】
[実施の形態4]
以下、実施の形態4について説明する。実施の形態3とは復号情報記憶部1002の動作が異なる。以下、実施の形態4の復号情報記憶部1002の実施の形態3とは異なる動作について説明する。また、
図22が適用されるスライスタイプは双予測の動き補償予測が行えないPスライスに限定されず、双予測の動き補償予測が行えるBスライスにも適用される。
【0134】
復号情報記憶部1002では、参照ピクチャとなる動き情報を記憶する際に、動き情報の記憶容量の削減のために、動き情報が最小のCUである8×8よりも大きな16×16のブロックサイズの代表値に置き換えられる。
図23(a)〜(b)は、動き情報が16×16のブロックサイズの代表値に置き換えられる様子を説明するための図である。
図23(a)〜(b)では、16×16CTBが8個のパーティションに分割されており、それぞれのパーティションが動きベクトルmv0から動きベクトルmv7を有する様子を示す。そして、それら8つの動きベクトルが1つの代表値であるMVに置き換えられる。ここでは、MVは16×16のブロックサイズの左上の動きベクトルであるmv0に置き換えられるとする。
【0135】
このような場合、16×16CTB内の8×8CUの隣接パーティションTの動き情報は、同一となる。そのため、8×8CUよりも大きなCUと比較して8×8CUは相対的に符号化効率が向上しない。
【0136】
以上のように、参照ピクチャとなる動き情報を記憶する際に、動き情報が最小のCUである8×8よりも大きな16×16のブロックサイズの代表値に置き換えられるような場合、最小のCUサイズのCUでも2N×NやN×2Nのパーティションタイプを利用しないようにすることで、処理量を大きく抑制しながら符号化効率の低下を最小限に抑制することができる。
【0137】
[実施の形態5]
以下、実施の形態5について説明する。実施の形態1とは各CUサイズで利用可能とするインターモードが異なる。以下、実施の形態5の各CUサイズで利用可能とするインターモードについて説明する。
図24(a)〜(d)は、実施の形態5の新たなパーティションタイプを説明する図である。
図24(a)から
図24(d)はそれぞれ垂直方向に1:3で分割されたパーティションタイプ、垂直方向に3:1で分割されたパーティションタイプ、水平方向に1:3で分割されたパーティションタイプ、水平方向に3:1で分割されたパーティションタイプであることを示す。
図25は、実施の形態5の各CUサイズで利用可能とするインターモードを説明するための図である。以下、
図25を用いて、各CUサイズで利用可能とするインターモードについて説明する。実施の形態1とは、最小のCUサイズでないCUにおいて、2N×nUマージモード、2N×nDマージモード、nL×2Nマージモード、nR×2Nマージモード、2N×nU差分動きベクトルモード、2N×nD差分動きベクトルモード、nL×2N差分動きベクトルモード、nR×2N差分動きベクトルモードを利用可能とする点が異なる。
【0138】
以上のように、最小のCUサイズ以外のCUでは、そのCUをCTBとして分割して得られる2つのCUの動き情報を同一にすることによって実現できる2N×NやN×2Nのパーティションタイプを利用せず、CUを2等分割ではない形状で分割するパーティションタイプを利用することで、所定のCUとそのCUがCTBとして分割されたCUの動き情報生成に要する重複処理を抑制し(
図10(a)〜(b)にて説明した内容)、符号化効率を向上させることができる。
【0139】
以上述べたように、実施の形態1〜5によれば、処理対象予測ブロックに隣接する処理済みのブロックが有する動きベクトルを処理対象予測ブロックの動きベクトルとして利用しながら、従来の差分動きベクトルを伝送する手法を組み合わせた場合において、処理量と符号化効率のバランス(トレードオフ)を効率良く実現することができる。
【0140】
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
【0141】
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
【0142】
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
【0143】
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
【0144】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。