以下、本実施の形態について説明する。本実施の形態では、動画像の符号化に関し、画像を階層的に符号化するスケーラブル符号化を用いて、各階層のピクチャを任意のサイズ、形状の矩形ブロックに分割し、ピクチャ間でブロック単位にインター予測(動き補償予測)を行う動画像符号化における符号化効率を向上させる為に、符号化対象ブロックに近接するブロック、符号化済みのピクチャのブロック、または符号化済みの階層のピクチャのブロックの動きベクトルから複数の予測動きベクトルを導出し、符号化対象のブロックの動きベクトルと選択された予測動きベクトルとの差分ベクトルを導出して符号化することによって符号量を削減する。あるいは、符号化対象ブロックに近接するブロック、符号化済みのピクチャのブロック、または符号化済みの階層のピクチャのブロックの符号化情報を利用することにより、符号化対象ブロックの符号化情報を導出することによって符号量を削減する。また、動画像の復号の場合は、復号対象ブロックに近接するブロック、復号済みのピクチャのブロック、または復号済みの階層のピクチャのブロックの動きベクトルから複数の予測動きベクトルを導出し、符号化ストリームから復号された差分ベクトルと選択された予測動きベクトルとから復号対象のブロックの動きベクトルを導出して復号する。あるいは、復号対象ブロックに近接するブロック、復号済みのピクチャのブロック、または復号済みの階層のピクチャのブロックの符号化情報を利用することにより、復号対象ブロックの符号化情報を導出する。
本実施の形態において使用する技術、及び技術用語を定義する。
(階層について)
本実施の形態で符号化または復号対象となる階層画像について説明する。図5は本実施の形態で符号化または復号対象となる3階層の階層画像を説明する図である。階層画像M(2)は最も上位階層の画像であり、階層画像M(1)は階層画像M(2)より解像度の小さい下位階層の画像である。階層画像M(0)は階層画像M(1)よりさらに解像度の小さい最下位階層の画像である。本実施の形態においては、階層画像M(0)の符号化および復号を行う階層を階層0、階層画像M(1)の符号化および復号を行う階層を階層1、階層画像M(2)の符号化および復号を行う階層を階層2とする。また、最下位階層である階層0をベース階層、最下位階層以外の階層である階層1、階層2を拡張階層と定義し、階層1を第1の拡張階層、階層2を第2の拡張階層とする。なお、ピクチャ単位、あるいはスライス単位で、階層を特定するためのIDを割り当てることにより、各階層を特定することができる。
ピクチャP11、P12、P13、P14、P15はベース階層の階層画像M(0)を構成し、ピクチャP21、P22、P23、P24、P25は第1の拡張階層の階層画像M(1)を構成し、ピクチャP31、P32、P33、P34、P35は第2の拡張階層の階層画像M(2)を構成する。
最上位階層の階層画像M(2)のピクチャP31、P32、P33、P34、P35をスケーリングにより縮小したピクチャが階層画像M(1)のそれぞれピクチャP21、P22、P23、P24、P25であり、さらに縮小したピクチャが階層画像M(0)のそれぞれピクチャP11、P12、P13、P14、P15である。
(POCについて)
POCが符号化されるピクチャに関連付けられる変数とし、ピクチャの出力順序で1ずつ増加する値が設定される。POCの値によって、同じピクチャであるかを判別したり、出力順序でのピクチャ間の前後関係を判別したり、ピクチャ間の距離を導出したりすることができる。例えば、2つのピクチャのPOCが同じ値を持つ場合、同じ時間のピクチャであると判断できる。2つのピクチャのPOCが違う値を持つ場合、POCの値が小さいピクチャのほうが、先に出力されるピクチャであると判断でき、2つのピクチャのPOCの差が時間軸方向でのピクチャ間距離を示す。
本実施の形態における下位階層のピクチャと上位階層のピクチャの時間軸上の位置の関係について説明する。本実施の形態においては、同じ時間の画像は同じPOCの値を持つものとする。例えば、ベース階層の階層画像M(0)のピクチャP11、階層画像M(1)のピクチャP21、最上位階層の階層画像M(2)のピクチャP31は同じPOCの値である。同じく、ピクチャP12、P22、P32のPOCは同一の値であり、同じく、ピクチャP13、P23、P33のPOCは同一の値であり、同じく、ピクチャP14、P24、P34のPOCは同一の値であり、同じく、ピクチャP15、P25、P35のPOCは同一の値である。
次に、本実施の形態における参照構造について説明する。本実施の形態においては上位階層である拡張階層のピクチャを符号化または復号する際に、符号化または復号対象の拡張階層のピクチャと同じ階層で異なる時間のピクチャの復号画像信号や符号化情報に加えて、同じ値のPOCを持つ下位階層の同じ時間のピクチャの復号画像信号や符号化情報を利用して、符号化または復号を行う。拡張階層を符号化または復号する際に参照する下位階層を参照階層と定義する。図5では、階層画像M(1)のピクチャP23を符号化または復号する際には、異なる時間のピクチャP22およびP24の復号画像信号や符号化情報を参照するとともに、階層画像M(0)を参照階層とし、階層画像M(0)のピクチャP13の復号画像信号や符号化情報を利用する。なお、符号化または復号対象のピクチャを符号化または復号する際に、復号画像信号や符号化情報が参照されるピクチャを参照ピクチャとする。さらに、異なる時間の参照ピクチャをインター参照ピクチャとする。ピクチャP22およびP24はピクチャP23のインター参照ピクチャである。さらに、異なる階層の参照ピクチャを階層間参照ピクチャとする。ピクチャP13はピクチャP23の階層間参照ピクチャである。さらに、階層画像M(2)のピクチャP33を符号化または復号する際には、階層画像M(1)を参照階層とし、階層画像M(1)のピクチャP23の符号化情報を利用する。ただし、階層画像M(0)のピクチャP12が符号化されない場合や非参照ピクチャに設定された場合、階層画像M(1)のピクチャP22の符号化及び復号の際には、参照階層のピクチャP12の復号画像信号や符号化情報を参照せずに符号化及び復号を行う。
また、各階層のインター予測の時間方向の参照構造は下位階層の時間方向の参照構造を継承しているものとする。例えば、ベース階層の階層画像M(0)のP13のL0のインデックス0の参照ピクチャがP11、L1のインデックス0の参照ピクチャがP15である場合、拡張階層の階層画像M(1)のP23のL0のインデックス0の参照ピクチャがP21(P21は下位階層のP11のPOCと同じ値のPOCを持つ)、L1のインデックス0の参照ピクチャがP25(P25は下位階層のP15のPOCと同じ値のPOCを持つ)となり、拡張階層の階層画像M(2)のP33のL0のインデックス0の参照ピクチャがP31(P31は下位階層のP11、P21のPOCと同じ値のPOCを持つ)、L1のインデックス0の参照ピクチャがP35(P35は下位階層のP15、P25のPOCと同じ値のPOCを持つ)となる。ただし、本実施の形態においては、下位階層で符号化および復号されるフレームレートが小さい場合、例えば、ベース階層M(0)において、ピクチャP12の符号化および復号を行わない場合でも、その上位階層の階層画像M(1)のピクチャP22は符号化及び復号することがあり、P22のL0のインデックス0の参照ピクチャがP21、L1のインデックス0の参照ピクチャがP23となる。
次に、本実施の形態における下位階層のピクチャと上位階層のピクチャの空間軸上の位置の関係について図6を用いて説明する。図6において、参照階層となる下位階層のピクチャを符号化または復号対象の拡張階層となる上位階層と同じ解像度にリサンプリングしたピクチャがリサンプリングされた参照階層(下位階層)のピクチャである。符号化または復号対象の階層のピクチャの左上を原点としたときのリサンプリングされた参照階層(下位階層)のピクチャの左上のx座標がLeftOffsetであり、y座標がTopOffsetである。さらに、参照階層(下位階層)のピクチャの幅がRefWidthであり、高さがRefHeightである。さらに、スケーリングされた参照階層(下位階層)のピクチャの幅がScaledRefWidthであり、高さがScaledRefHeightである。なお、上位階層のピクチャと下位階層のピクチャが同一のサイズでもよい。
(ツリーブロック、符号化ブロックについて)
実施の形態では、ピクチャを1つまたは複数に分割したスライスが符号化の基本単位となっており、スライス毎にスライスの種類を示す情報であるスライスタイプが設定される。図7に示されるように、スライス内を任意の同一サイズの正方の矩形の単位にて均等分割する。この単位をツリーブロックと定義し、スライス内での符号化または復号対象ブロック(符号化処理においては符号化対象ブロック、復号処理においては復号対象ブロックのことである。以下、断りのない限り、この意味で用いる。)を特定するためのアドレス管理の基本単位とする。モノクロを除きツリーブロックは1つの輝度信号と2つの色差信号で構成される。ツリーブロックのサイズはピクチャサイズやピクチャ内のテクスチャに応じて、2のべき乗のサイズで自由に設定することができる。ツリーブロックはピクチャ内のテクスチャに応じて、符号化処理を最適にすべく、必要に応じてツリーブロック内の輝度信号、及び色差信号を階層的に4分割(縦横に2分割ずつ)して、ブロックサイズの小さいブロックにすることができる。このブロックをそれぞれ符号化ブロックと定義し、符号化及び復号を行う際の処理の基本単位とする。モノクロを除き符号化ブロックも1つの輝度信号と2つの色差信号で構成される。符号化ブロックの最大サイズはツリーブロックのサイズと同一である。符号化ブロックの最小のサイズとなる符号化ブロックを最小符号化ブロックと呼び、2のべき乗のサイズで自由に設定することができる。
図7においては、符号化ブロックAは、ツリーブロックを分割せず、1つの符号化ブロックとしたものである。符号化ブロックBは、ツリーブロックを4分割してできた符号化ブロックである。符号化ブロックCは、ツリーブロックを4分割してできたブロックをさらに4分割してできた符号化ブロックである。符号化ブロックDは、ツリーブロックを4分割してできたブロックをさらに階層的に2度4分割してできた符号化ブロックであり、最小サイズの符号化ブロックである。
(予測モードについて)
符号化ブロック単位で、符号化または復号対象ピクチャ内の復号済み(符号化処理においては符号化した信号を復号したピクチャ、予測ブロック、画像信号等に用い、復号処理においては復号したピクチャ、予測ブロック、画像信号等に用いる。以下、断りのない限り、この意味で用いる。)の周囲の画像信号から予測を行うイントラ予測(MODE_INTRA)、及び符号化または復号済みのピクチャの画像信号から予測を行うインター予測(MODE_INTER)を切り替える。このイントラ予測(MODE_INTRA)とインター予測(MODE_INTER)を識別するモードを予測モード(PredMode)と定義する。予測モード(PredMode)はイントラ予測(MODE_INTRA)、またはインター予測(MODE_INTER)を値として持ち、選択して符号化できる。
(分割モード、予測ブロック、予測ユニットについて)
ピクチャ内をブロックに分割してイントラ予測(MODE_INTRA)及びインター予測(MODE_INTER)を行う場合、イントラ予測及びインター予測の方法を切り替える単位をより小さくするために、必要に応じて符号化ブロックを分割して予測を行う。この符号化ブロックの輝度信号と色差信号の分割方法を識別するモードを分割モード(PartMode)と定義する。さらに、この分割されたブロックを予測ブロックと定義する。図8に示すように、符号化ブロックの輝度信号の分割方法に応じて8種類の分割モード(PartMode)を定義する。
図8(a)に示す符号化ブロックの輝度信号を分割せず1つの予測ブロックとみなした分割モード(PartMode)を2N×2N分割(PART_2Nx2N)と定義する。図8(b)、(c)、(d)に示す符号化ブロックの輝度信号を上下に並ぶ2つの予測ブロックに分割する分割モード(PartMode)をそれぞれ2N×N分割(PART_2NxN)、2N×nU分割(PART_2NxnU)、2N×nD分割(PART_2NxnD)と定義する。ただし、2N×N分割(PART_2NxN)は上下に1:1の比率で分割した分割モードであり、2N×nU分割(PART_2NxnU)は上下に1:3の比率で分割した分割モードであり、2N×nD分割(PART_2NxnD)は上下に3:1の比率で分割した分割モードである。図8(e)、(f)、(g)に示す符号化ブロックの輝度信号を左右に並ぶ2つの予測ブロックに分割する分割モード(PartMode)をそれぞれN×2N分割(PART_Nx2N)、nL×2N分割(PART_nLx2N)、nR×2N分割(PART_nRx2N)と定義する。ただし、N×2N分割(PART_Nx2N)は左右に1:1の比率で分割した分割モードであり、nL×2N分割(PART_nLx2N)は左右に1:3の比率で分割した分割モードであり、nR×2N分割(PART_nRx2N)は左右に3:1の比率で分割した分割モードである。図8(h)に示す符号化ブロックの輝度信号を上下左右に4分割して、4つの予測ブロックとした分割モード(PartMode)をN×N分割(PART_NxN)とそれぞれ定義する。
なお、各分割モード(PartMode)毎に輝度信号の縦横の分割比率と同様に色差信号も分割する。
符号化ブロック内部において、各予測ブロックを特定する為に、0から開始する番号を、符号化順序で、符号化ブロック内部に存在する予測ブロックに対して割り当てる。この番号を分割インデックスPartIdxと定義する。図8の符号化ブロックの各予測ブロックの中に記述された数字は、その予測ブロックの分割インデックスPartIdxを表す。図8(b)、(c)、(d)に示す2N×N分割(PART_2NxN)、2N×nU分割(PART_2NxnU)、2N×nD分割(PART_2NxnD)では上の予測ブロックの分割インデックスPartIdxの値を0とし、下の予測ブロックの分割インデックスPartIdxの値を1とする。図8(e)、(f)、(g)に示すN×2N分割(PART_Nx2N)、nL×2N分割(PART_nLx2N)、nR×2N分割(PART_nRx2N)では左の予測ブロックの分割インデックスPartIdxの値を0とし、右の予測ブロックの分割インデックスPartIdxの値を1とする。図8(h)に示すN×N分割(PART_NxN)では、左上の予測ブロックの分割インデックスPartIdxの値を0とし、右上の予測ブロックの分割インデックスPartIdxの値を1とし、左下の予測ブロックの分割インデックスPartIdxの値を2とし、右下の予測ブロックの分割インデックスPartIdxの値を3とする。
予測モード(PredMode)がインター予測(MODE_INTER)では、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)、2N×N分割(PART_2NxN)、2N×nU分割(PART_2NxnU)、2N×nD分割(PART_2NxnD)、N×2N分割(PART_Nx2N)、nL×2N分割(PART_nLx2N)、及びnR×2N分割(PART_nRx2N)を定義する。最小の符号化ブロックである符号化ブロックDのみ、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)、2N×N分割(PART_2NxN)、2N×nU分割(PART_2NxnU)、2N×nD分割(PART_2NxnD)、N×2N分割(PART_Nx2N)、nL×2N分割(PART_nLx2N)、及びnR×2N分割(PART_nRx2N)に加えてN×N分割(PART_NxN)を定義することもできるが、本実施の形態においては、分割モード(PartMode)がN×N分割(PART_NxN)を定義しないものとする。
予測モード(PredMode)がイントラ予測(MODE_INTRA)では、最小の符号化ブロックである符号化ブロックD以外では、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)だけを定義し、最小の符号化ブロックである符号化ブロックDのみ、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)に加えてN×N分割(PART_NxN)を定義する。なお、最小の符号化ブロック以外にN×N分割(PART_NxN)を定義しない理由は最小の符号化ブロック以外では、符号化ブロックを4分割して小さな符号化ブロックを表現できるからである。
(ツリーブロック、符号化ブロック、予測ブロック、変換ブロックの位置)
本実施の形態のツリーブロック、符号化ブロック、予測ブロック、変換ブロックを始めとする各ブロックの位置は、輝度信号の画面の一番左上の輝度信号の画素の位置を原点(0,0)とし、それぞれのブロックの領域に含まれる一番左上の輝度信号の画素の位置を(x,y)の二次元座標で表す。座標軸の向きは水平方向に右の方向、垂直方向に下の方向をそれぞれ正の向きとし、単位は輝度信号の1画素単位である。輝度信号と色差信号で画像サイズ(画素数)が同じである色差フォーマットが4:4:4の場合ではもちろんのこと、輝度信号と色差信号で画像サイズ(画素数)が異なる色差フォーマットが4:2:0、4:2:2の場合でも色差信号の各ブロックの位置をそのブロックの領域に含まれる輝度信号の画素の座標で表し、単位は輝度信号の1画素である。この様にすることで、色差信号の各ブロックの位置が特定できるのはもちろんのこと、座標の値を比較するだけで、輝度信号のブロックと色差信号のブロックの位置の関係も明確となる。
(インター予測モード、参照リストについて)
本発明の実施の形態においては、復号済みのピクチャの画像信号から予測を行うインター予測では、複数の復号済みのピクチャを参照ピクチャとして用いることができる。複数の参照ピクチャから選択された参照ピクチャを特定するため、予測ブロック毎に参照インデックスを付ける。Bスライスでは予測ブロック毎に任意の2枚の参照ピクチャを選択してインター予測を行うことができ、インター予測モードとしてL0予測(Pred_L0)、L1予測(Pred_L1)、双予測(Pred_BI)がある。参照ピクチャはリスト構造のL0(参照リスト0)とL1(参照リスト1)で管理され、L0またはL1の参照インデックスを指定することにより参照ピクチャを特定することができる。L0予測(Pred_L0)はL0で管理されている参照ピクチャを参照するインター予測であり、L1予測(Pred_L1)はL1で管理されている参照ピクチャを参照するインター予測であり、双予測(Pred_BI)はL0予測とL1予測が共に行われ、L0とL1のそれぞれで管理されている1つずつの参照ピクチャを参照するインター予測である。Pスライスのインター予測ではL0予測のみが使用でき、Bスライスのインター予測ではL0予測、L1予測、L0予測とL1予測を平均または重み付け加算する双予測(Pred_BI)が使用できる。以降の処理において出力に添え字LXが付いている定数、変数に関しては、L0、L1ごとに処理が行われることを前提とする。
(予測動きベクトル候補)
符号化または復号対象の予測ブロックの予測モード、参照インデックス、動きベクトル等のインター予測情報を符号化または復号する際に、符号化または復号対象の予測ブロックと同一ピクチャ内でその符号化または復号対象の予測ブロックに近接する予測ブロック、あるいは符号化または復号対象の予測ブロックと異なる時間または異なる階層の復号済みの参照ピクチャcolPic内の予測ブロックcolPbのインター予測情報から符号化または復号対象の予測ブロックの予測動きベクトルを導出し、その予測動きベクトルとの差分動きベクトルを符号化または復号することにより動きベクトルを符号化する際の符号量を削減する。符号化または復号対象の予測ブロックと同一ピクチャ内でその符号化または復号対象の予測ブロックに近接する予測ブロックのインター予測情報から導出した予測動きベクトルの候補を空間予測動きベクトル候補、符号化または復号対象の予測ブロックと異なる時間または異なる階層の復号済みの参照ピクチャcolPic内の予測ブロックcolPbのインター予測情報から導出される予測動きベクトルの候補を時間予測動きベクトル候補とする。それぞれの予測動きベクトル候補は予測動きベクトル候補リストに登録され、予測動きベクトルインデックスによりインター予測で用いる予測動きベクトル候補を特定する。
(マージモード、マージ候補)
マージモードとは、符号化または復号対象の予測ブロックの予測モード、参照インデックス、動きベクトル等のインター予測情報を符号化または復号するのではなく、符号化または復号対象の予測ブロックと同一ピクチャ内でその符号化または復号対象の予測ブロックに近接する予測ブロック、あるいは符号化または復号対象の予測ブロックと異なる時間または異なる階層の復号済みの参照ピクチャcolPic内の予測ブロックcolPbのインター予測情報から符号化または復号対象の予測ブロックのインター予測情報を導出することによりインター予測を行うモードである。符号化または復号対象の予測ブロックと同一ピクチャ内でその符号化または復号対象の予測ブロックに近接する予測ブロックのインター予測情報を空間マージ候補、符号化または復号対象の予測ブロックと異なる時間または異なる階層の復号済みの参照ピクチャcolPic内の予測ブロックcolPbのインター予測情報から導出されるインター予測情報を時間マージ候補とする。それぞれのマージ候補はマージ候補リストに登録され、マージインデックスによりインター予測で用いるマージ候補を特定する。
(インター予測情報を参照する予測ブロックについて)
マージ候補および予測動きベクトル候補を導出する際に参照する参照ブロックを説明する。図9、図10、図11及び図12は空間マージ候補、および空間予測動きベクトル候補の導出の際に参照する符号化または復号対象の予測ブロックと同一ピクチャ内でその符号化または復号対象の予測ブロックに近接する予測ブロックを説明する図である。図13は時間マージ候補および時間予測動きベクトル候補の導出の際に参照する符号化または復号対象の予測ブロックと異なる時間の復号済みのピクチャにおいて、符号化または復号対象の予測ブロックと同一位置あるいはその付近に存在する既に符号化または復号済みの予測ブロックを説明する図である。図14は時間マージ候補および時間予測動きベクトル候補の導出の際に参照する符号化または復号対象の予測ブロックと異なる階層の復号済みのピクチャにおいて、符号化または復号対象の予測ブロックと同一位置あるいはその付近に存在する既に符号化または復号済みの予測ブロックを説明する図である。図9、図10、図11、図12、図13及び図14を用いて符号化または復号対象の予測ブロックの空間方向に近接する予測ブロック、及び異なる時間または異なる階層のピクチャ内の予測ブロックについて説明する。
図9に示すように、符号化または復号対象の予測ブロックと同一ピクチャ内でその符号化または復号対象の予測ブロックの左側の辺に近接する予測ブロックA1、上側の辺に近接する予測ブロックB1、右上の頂点に近接する予測ブロックB0、左下の頂点に近接する予測ブロックA0、および左上の頂点に近接する予測ブロックB2を空間方向に近接する予測ブロックと定義する。また、符号化または復号対象の予測ブロックの左下の頂点に近接する予測ブロックA0、および符号化または復号対象の予測ブロックの左側の辺に近接する予測ブロックA1で構成される第1の予測ブロックグループを左側に近接する予測ブロックグループと定義する。符号化または復号対象の予測ブロックの右上の頂点に近接する予測ブロックB0、符号化または復号対象の予測ブロックの上側の辺に近接する予測ブロックB1、および符号化または復号対象の予測ブロックの左上の頂点に近接する予測ブロックB2で構成される第2の予測ブロックグループを上側に近接する予測ブロックグループと定義する。
なお、図10に示すように、符号化または復号対象の予測ブロックの左側の辺に近接する予測ブロックのサイズが符号化または復号対象の予測ブロックより小さく、複数存在する場合には、本実施の形態においては左側の辺に近接する予測ブロックの中で最も下の予測ブロックA10を左側の辺に近接する予測ブロックA1とする。
同様に、符号化または復号対象の予測ブロックの上側の辺に近接する予測ブロックのサイズが符号化または復号対象の予測ブロックより小さく、複数存在する場合には、本実施の形態においては上側の辺に近接する予測ブロックの中で最も右の予測ブロックB10を上側の辺に近接する予測ブロックB1とする。
なお、図11に示すように、符号化または復号対象の予測ブロックの左側に近接する予測ブロックAのサイズが符号化または復号対象の予測ブロックより大きい場合にも、前記条件に従い、左側に近接する予測ブロックAがその符号化または復号対象の予測ブロックの左側の辺に近接していれば予測ブロックA1とし、符号化または復号対象の予測ブロックの左下の頂点に近接していれば予測ブロックA0とし、符号化または復号対象の予測ブロックの左上の頂点に近接していれば予測ブロックB2とする。図11の例では、予測ブロックA0、予測ブロックA1及び予測ブロックB2は同一の予測ブロックとなる。
なお、図12に示すように、符号化または復号対象の予測ブロックの上側に近接する予測ブロックBのサイズが符号化または復号対象の予測ブロックより大きい場合にも、前記条件に従い、上側に近接する予測ブロックBがその符号化または復号対象の予測ブロックの上側の辺に近接していれば予測ブロックB1とし、符号化または復号対象の予測ブロックの右上の頂点に近接していれば予測ブロックB0とし、符号化または復号対象の予測ブロックの左上の頂点に近接していれば予測ブロックB2とする。図12の例では、予測ブロックB0、予測ブロックB1及び予測ブロックB2は同一の予測ブロックとなる。
図13に示すように、符号化または復号対象の予測ブロックと異なる時間の復号済みのピクチャであるインター参照ピクチャを参照ピクチャcolPicとし、参照ピクチャcolPicにおいて、符号化または復号対象の予測ブロックと同一位置あるいはその付近に存在する予測ブロックT0およびT1をインター参照ピクチャの予測ブロックと定義する。また、インター参照ピクチャの予測ブロックT0およびT1で構成される第3の予測ブロックグループをインター参照ピクチャの予測ブロックグループと定義する。
図14に示すように、符号化または復号対象の予測ブロックと異なる階層の復号済みのピクチャである階層間参照ピクチャを符号化または復号対象のピクチャのサイズに合わせてリサンプリングした階層間参照ピクチャを参照ピクチャcolPicとし、参照ピクチャcolPicにおいて、符号化または復号対象の予測ブロックと同一位置あるいはその付近に存在する予測ブロックT0およびT1を階層間参照ピクチャの同一位置の予測ブロックと定義する。また、階層間参照ピクチャの予測ブロックT0およびT1で構成される第4の予測ブロックグループを階層間参照ピクチャの予測ブロックグループと定義する。また、インター参照ピクチャの予測ブロックグループおよび階層間参照ピクチャの予測ブロックグループを共に参照ピクチャの予測ブロックグループと定義する。
図1は本発明の実施の形態に係る動画像符号化装置の構成を示すブロック図であり、図3は動画像符号化装置の階層画像符号化部を構成する階層画像符号化部の構成を示すブロック図である。動画像符号化装置は符号化制御部11、階層画像符号化部12、13、14、多重化部15を備えている。本実施の形態の動画像符号化装置は同じ構成の階層画像符号化部を階層分だけ積み重ねた構成をとっている。M(0)、M(1)、M(2)は本動画像符号化装置に供給されるそれぞれの階層画像であり、S(0)、S(1)、S(2)は符号化の結果得られる各階層の符号化ビット列である。本実施例では3階層で説明しているが、2階層、あるいは4階層以上の階層画像も符号化することができる。
図1に示す符号化制御部11は表示時間順に入力された各階層の階層画像M(0)、M(1)、M(2)を符号化する階層画像符号化部12、13、14を制御する。階層画像符号化部12は符号化制御部11により符号化タイミング等を制御されてベース階層の階層画像M(0)を符号化して得られるベース階層の符号化ビット列S(0)が多重化部15に供給される。さらに、階層画像符号化部12の符号化で得られる復号画像信号および符号化情報が必要に応じて階層画像符号化部13に供給される。
階層画像符号化部13は第1の拡張階層の階層画像M(1)を符号化して得られる第1の拡張階層の符号化ビット列S(1)が多重化部15に供給される。その際、階層画像符号化部12から供給される復号画像信号および符号化情報も用いて符号化する。さらに、階層画像符号化部13の符号化で得られる復号画像信号および符号化情報が必要に応じて階層画像符号化部14に供給される。同様に、階層画像符号化部14は第2の拡張階層の階層画像M(2)を符号化して得られる第2の拡張階層の符号化ビット列S(2)が多重化部15に供給される。その際、階層画像符号化部13から供給される復号画像信号および符号化情報も用いて符号化する。さらに、多重化部15は符号化された各階層の符号化ビット列S(0)、S(1)、S(2)を多重化し、出力する。
本実施の形態においては、上位の階層の階層画像を符号化または復号する際には、下位の階層を参照階層とし、参照階層の符号化情報や復号画像信号を参照して符号化または復号することにより、符号化効率を向上させる。符号化制御部11は、参照階層のピクチャを符号化した後に、同じPOCの値を持つ上位の階層のピクチャを符号化するように制御することで、上位の階層のピクチャの符号化の際に、参照階層の符号化情報や復号画像信号を利用できるように制御する。
本実施の形態においては、階層画像符号化部13が第1の拡張階層を符号化する際には、下位の階層であるベース階層を参照階層とし、参照階層であるベース階層の符号化情報や復号画像信号を参照して、符号化する。階層画像符号化部14が第2の拡張階層を符号化する際には、下位の階層である第1の拡張階層を参照階層とし、参照階層である第1の拡張階層の符号化情報や復号画像信号を参照して、符号化する。なお、第2の拡張階層を符号化する際には、下位の階層である第1の拡張階層の代わりに同じく下位の階層であるベース階層を参照階層とし、参照階層であるベース階層の符号化情報や復号画像信号を参照して、符号化することもできる。
図2は図1の階層画像符号化部に対応した本発明の実施の形態に係る階層画像復号部の構成を示すブロックである。階層画像復号部は復号制御部21、階層画像復号部22、23、24、分離部25を備えている。本実施の形態の動画像復号装置は同じ構成の階層画像復号部を階層分だけ積み重ねた構成をとっている。分離部25には動画像符号化装置で符号化された符号化ビット列が供給され、その符号化ビット列から各階層の符号化ビット列S'(0)、S'(1)、S'(2)に分離し、階層画像復号部22、23、24にそれぞれ供給する。M'(0)、M'(1)、M'(2)は復号の結果得られる各階層の階層画像である。本実施例では3階層で説明しているが、2階層、あるいは4階層以上の階層画像も復号することができる。
図2に示す復号制御部21は分離部から供給される情報に応じて、各階層の符号化ビット列S'(0)、S'(1)、S'(2)を復号する階層画像復号部22、23、24を制御する。階層画像復号部22はベース階層の符号化ビット列S'(0)を復号し、ベース階層の階層画像M'(0)を得て、出力する。同様に、階層画像復号部23は第1の拡張階層の符号化ビット列S'(1)を復号し、第1の拡張階層の階層画像M'(1)を得て、出力する。さらに、階層画像復号部24は第2の拡張階層の符号化ビット列S'(2)を復号し、第2の拡張階層の階層画像M'(2)を得て、出力する。
符号化側で説明したように、本実施の形態においては、上位の階層の階層画像を復号する際には、下位の階層を参照階層とし、参照階層の符号化情報や復号画像信号を参照して復号することにより、符号化効率を向上させる。復号制御部21は、参照階層のピクチャを復号した後に、同じPOCの値を持つ上位の階層のピクチャを復号するように制御することで、上位の階層のピクチャの復号の際に、参照階層の符号化情報や復号画像信号を利用できるように制御する。
本実施の形態においては、階層画像復号部23が第1の拡張階層を復号する際には、下位の階層であるベース階層を参照階層とし、参照階層であるベース階層の符号化情報や復号画像信号を参照して復号することにより、符号化効率を向上させる。階層画像復号部24が第2の拡張階層を復号する際には、下位の階層である第1の拡張階層を参照階層とし、参照階層である第1の拡張階層の符号化情報や復号画像信号を参照して、復号する。ただし、符号化側でベース階層の符号化情報や復号画像信号を参照して第2の拡張階層が符号化されている場合には、復号側でも参照階層であるベース階層の符号化情報や復号画像信号を参照して、第2の拡張階層を復号する。
本実施の形態の動画像符号化装置および動画像復号装置においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかをシーケンス単位で切り替える。
さらに、拡張階層においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とした場合には、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるか、またはシーケンス内ではどちらかに固定せずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかをシーケンス単位で切り替える。
さらに、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とした場合には、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかをピクチャまたはスライス単位で切り替える。
さらに、拡張階層においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とするとともに、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内でインター参照ピクチャまたは階層間参照ピクチャのどちらかにするかを固定しない場合には、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかをピクチャまたはスライス単位で切り替える。
図3は本実施の形態の図1の動画像符号化装置を構成する各階層の階層画像符号化部12、13、14の構成を示すブロック図である。各階層の階層画像符号化部12、13、14は共通の符号化方法で符号化することができる。ただし、ベース階層の階層画像符号化部12は他の階層の符号化情報を用いずに符号化するが、拡張階層の階層画像符号化部13、14は参照階層の符号化情報を用いて符号化する。実施の形態の動画像符号化装置の階層画像符号化部は、画像メモリ101、ヘッダ情報設定部117、動きベクトル検出部102、差分動きベクトル算出部103、インター予測情報導出部104、インター予測部105、イントラ予測部106、予測方法決定部107、残差信号生成部108、直交変換・量子化部109、第1符号化ビット列生成部118、第2符号化ビット列生成部110、第3符号化ビット列生成部111、多重化部112、逆量子化・逆直交変換部113、復号画像信号重畳部114、符号化情報格納メモリ115、復号画像メモリ116、画像信号リサンプリング部119、および符号化情報リサンプリング部120を備える。なお、符号化制御部11の制御は図3におけるすべてのブロック対して及ぶ。
ヘッダ情報設定部117は、シーケンス、ピクチャ、スライス単位の情報を設定する。設定されたシーケンス、ピクチャ、スライス単位の情報はインター予測情報導出部104、第1符号化ビット列生成部118に供給するとともに、図示していないがすべてのブロックに供給する。
後述するシーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグsps_temporal_mvp_enabled_flag、拡張階層で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるか、またはシーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかを示すフラグsps_alt_collocated_indication_flag、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flag、拡張階層の各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかを示すフラグslice_alt_collocated_indication_flagはヘッダ情報設定部117で設定され、インター予測情報導出部104、差分動きベクトル算出部103、第1符号化ビット列生成部118に供給される。シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグsps_temporal_mvp_enabled_flag、拡張階層で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるか、シーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかを示すフラグsps_alt_collocated_indication_flag、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flag、拡張階層の各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかを示すフラグslice_alt_collocated_indication_flagの設定処理手順は図15のフローチャートを用いて、後ほど詳細に説明する。なお、本実施の形態の説明においては、2つ以上の値をとるものをフラグとする。つまり、0および1の2つの値をとるものに限定されず、0、1および2等、3つ以上の値をとるものもフラグとする。また、当該フラグはパラメータや変数ととらえることもできる。
画像メモリ101は、撮影/表示時間順に供給された符号化対象のピクチャの画像信号を一時格納する。画像メモリ101は、格納された符号化対象のピクチャの画像信号を、所定の画素ブロック単位で、動きベクトル検出部102、予測方法決定部107、および残差信号生成部108に供給する。その際、撮影/表示時間順に格納されたピクチャの画像信号は、符号化順序に並べ替えられて、画素ブロック単位で、画像メモリ101から出力される。
動きベクトル検出部102は、画像メモリ101から供給される画像信号と復号画像メモリ116から供給される参照ピクチャ間でブロックマッチング等により各予測ブロックサイズ、各予測モード、各参照ピクチャ(参照インデックス)のそれぞれの動きベクトルを各予測ブロック単位で検出し、検出された動きベクトルを対応する予測ブロックサイズ、予測モード、参照インデックスの情報とともにインター予測情報として、インター予測部105、差分動きベクトル算出部103、および予測方法決定部107に供給する。
差分動きベクトル算出部103は、予測動きベクトル候補を導出して、差分動きベクトルを導出する。差分動きベクトルを導出する際は、符号化情報格納メモリ115に記憶されている既に符号化された符号化情報を用いる。これらの符号化情報を用いて、複数の予測動きベクトルの候補を導出して後述する予測動きベクトルリストに登録し、予測動きベクトルリストに登録された複数の予測動きベクトルの候補の中から最適な予測動きベクトルを選択し、動きベクトル検出部102が検出した動きベクトルと予測動きベクトルから差分動きベクトルを導出し、導出された差分動きベクトルを予測方法決定部107に供給する。さらに、予測動きベクトルリストに登録された予測動きベクトルの候補から選択された予測動きベクトルを特定する予測動きベクトルインデックスを予測方法決定部107に供給する。差分動きベクトル算出部103の詳細な構成と動作は後述する。
インター予測情報導出部104は、マージモードでのマージ候補を導出する。マージ候補を導出する際は、符号化情報格納メモリ115に記憶されている既に符号化された符号化情報を用いる。これらの符号化情報を用いて、複数のマージ候補を導出して後述するマージ候補リストに登録し、マージ候補リストに登録された複数のマージ候補の中から適したマージ候補を選択し、選択されたマージ候補の各予測ブロックのL0予測、およびL1予測を利用するかどうかを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]、参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]、動きベクトルmvL0[xP][yP], mvL1[xP][yP]等のインター予測情報をインター予測部105に供給するとともに、選択されたマージ候補を特定するマージインデックスを予測方法決定部107に供給する。ここで、xP、yPはピクチャ内での予測ブロックの左上の画素の位置を示すインデックスである。インター予測情報導出部104の詳細な構成と動作は後述する。
インター予測部105は、動きベクトル検出部102またはインター予測情報導出部104で導出されたインター予測情報を用いて復号画像メモリ116に格納されているインター参照ピクチャまたは階層間参照ピクチャからインター予測(動き補償予測)により予測画像信号を生成し、予測画像信号を予測方法決定部107に供給する。なお、L0予測、及びL1予測では、片方向の予測を行う。双予測(Pred_BI)の場合は、双方向の予測を行い、L0予測、L1予測のそれぞれのインター予測された信号に適応的に重み係数を掛け算し、オフセット値を加算して重畳し、最終的な予測画像信号を生成する。
イントラ予測部106は、各イントラ予測モードについてイントラ予測を行う。復号画像メモリ116に格納されている復号済みの画像信号からイントラ予測により予測画像信号を生成し、複数のイントラ予測モードの中から適したイントラ予測モードを選択し、選択されたイントラ予測モード、及び選択されたイントラ予測モードに応じた予測画像信号を予測方法決定部107に供給する。
予測方法決定部107はそれぞれの予測方法毎に符号化情報及び残差信号の符号量、予測画像信号と画像信号との間の歪量等を評価することにより、複数の予測方法の中から、最適な符号化ブロック単位でインター予測(PRED_INTER)かイントラ予測(PRED_INTRA)かを判別する予測モードPredMode、分割モードPartModeを決定し、インター予測(PRED_INTER)では予測ブロック単位でマージモードか否かを決定し、マージモードの場合はマージインデックス、マージモードでない場合はインター予測モード、予測動きベクトルインデックス、L0、L1の参照インデックス、差分動きベクトル等を決定して、決定に応じた符号化情報を第2符号化ビット列生成部110に供給する。
さらに、予測方法決定部107は、決定された予測方法を示す情報、及び決定された予測方法に応じた動きベクトル等を含むインター予測情報またはイントラ予測情報を符号化情報として符号化情報格納メモリ115に格納する。ここで格納する符号化情報は、各符号化ブロックの予測モードPredMode、分割モードPartMode、各予測ブロックのL0予測、及びL1予測を利用するかどうかを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]、L0、L1の参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]、L0、L1の動きベクトルmvL0[xP][yP], mvL1[xP][yP]等である。ここで、xP、yPはピクチャ内での予測ブロックの左上の画素の位置を示すインデックスである。なお、予測モードPredModeがイントラ予測(MODE_INTRA)の場合、L0予測を利用するかどうかを示すフラグpredFlagL0[xP][yP]、L1予測を利用するかどうかを示すフラグpredFlagL1[xP][yP]は共に0である。一方、予測モードPredModeがインター予測(MODE_INTER)で、インター予測モードがL0予測(Pred_L0)の場合、L0予測を利用するかどうかを示すフラグpredFlagL0[xP][yP]は1, L1予測を利用するかどうかを示すフラグpredFlagL1[xP][yP]は0である。インター予測モードがL1予測(Pred_L1)の場合、L0予測を利用するかどうかを示すフラグpredFlagL0[xP][yP]は0, L1予測を利用するかどうかを示すフラグpredFlagL1[xP][yP]は1である。インター予測モードが双予測(Pred_BI)の場合、L0予測を利用するかどうかを示すフラグpredFlagL0[xP][yP]、L1予測を利用するかどうかを示すフラグpredFlagL1[xP][yP]は共に1である。予測方法決定部107は、決定された予測モードに応じた予測画像信号を残差信号生成部108と復号画像信号重畳部114に供給する。
残差信号生成部108は、符号化する画像信号と予測画像信号との減算を行うことにより残差信号を生成し、直交変換・量子化部109に供給する。
直交変換・量子化部109は、残差信号に対して量子化パラメータに応じて直交変換及び量子化を行い直交変換・量子化された残差信号を生成し、第3符号化ビット列生成部111と逆量子化・逆直交変換部113に供給する。さらに、直交変換・量子化部109は、量子化パラメータを符号化情報格納メモリ115に格納する。
第1符号化ビット列生成部118は、ヘッダ情報設定部117で設定されたシーケンス、ピクチャ、スライス単位の情報を符号化して第1の符号化ビット列を生成し、多重化部112に供給する。後述するシーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグsps_temporal_mvp_enabled_flag、拡張階層で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるか、またはシーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかを示すフラグsps_alt_collocated_indication_flag、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flag、拡張階層の各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかを示すフラグslice_alt_collocated_indication_flagも第1符号化ビット列生成部118で符号化される。さらに、参照ピクチャcolPicを特定するためのスライス単位の情報である後述するインデックスcollocated_ref_layer_idx、フラグcollocated_from_l0_flag、インデックスcollocated_ref_idx等のスライス単位の情報も第1符号化ビット列生成部118で符号化される。各フラグsps_temporal_mvp_enabled_flag、sps_alt_collocated_indication_flag、slice_temporal_mvp_enabled_flag、slice_alt_collocated_indication_flagの符号化処理手順は図15のフローチャートを用いて後ほど詳細に説明する。
第2符号化ビット列生成部110は、符号化ブロック及び予測ブロック毎に予測方法決定部107によって決定された予測方法に応じた符号化情報を符号化する。具体的には、符号化ブロック毎のスキップモードかどうかを判別する情報、インター予測(PRED_INTER)かイントラ予測(PRED_INTRA)かを判別する予測モードPredMode、分割モードPartMode、イントラ予測(PRED_INTRA)の場合、イントラ予測モード、インター予測(PRED_INTER)の場合、マージモードかどうかを判別するフラグ、マージモードの場合は選択すべきマージ候補(インター予測情報の候補)を特定するマージインデックス、マージモードでない場合はインター予測モード、選択すべき予測動きベクトル候補を特定する予測動きベクトルインデックスまたはフラグ、差分動きベクトルに関する情報等の符号化情報を後述する規定のシンタックス規則に従って符号化して第2の符号化ビット列を生成し、多重化部112に供給する。なお、本実施の形態では、符号化ブロックがスキップモード(シンタックス要素skip_flag[x0][y0]が1)の場合、予測ブロックの予測モードPredModeの値はインター予測(MODE_INTER)で、マージモード(merge_flag[x0][y0]が1)で、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)とする。
第3符号化ビット列生成部111は、直交変換及び量子化された残差信号を規定のシンタックス規則に従ってエントロピー符号化して第3の符号化ビット列を生成し、多重化部112に供給する。多重化部112で、第1の符号化ビット列、第2の符号化ビット列および第3の符号化ビット列を規定のシンタックス規則に従って多重化し、ビットストリームを出力する。
逆量子化・逆直交変換部113は、直交変換・量子化部109から供給された直交変換・量子化された残差信号を逆量子化及び逆直交変換して残差信号を導出し、復号画像信号重畳部114に供給する。復号画像信号重畳部114は、予測方法決定部107による決定に応じた予測画像信号と逆量子化・逆直交変換部113で逆量子化及び逆直交変換された残差信号を重畳して復号画像を生成し、復号画像メモリ116に格納する。なお、復号画像に対して符号化によるブロック歪等の歪を減少させるフィルタリング処理を施して、復号画像メモリ116に格納されることもある。
なお、参照階層の階層画像符号化部の復号画像メモリ116に格納される復号画像信号は当該階層の符号化のインター予測の際にインター参照ピクチャとして用いられるのはもちろんのこと、上位の拡張階層の符号化のインター予測の際にも階層間参照ピクチャとして用いられる。そこで、復号画像は上位の拡張階層の階層画像符号化部に供給され、上位の拡張階層の階層画像符号化部の画像信号リサンプリング部119では供給された復号画像を上位の拡張階層のピクチャの解像度に合わせてリサンプリングして、上位の拡張階層の階層画像符号化部の復号画像メモリ116に格納する。
さらに、参照階層の階層画像符号化部の予測方法決定部107で決定し符号化情報格納メモリ115に格納されるL0予測、及びL1予測を利用するかどうかを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]、L0、L1の参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]、L0、L1の動きベクトルmvL0[xP][yP], mvL1[xP][yP]等の符号化情報は上位階層の符号化のインター予測の際にも用いられる。そこで、参照階層の符号化情報は上位の拡張階層の階層画像符号化部に供給され、上位の拡張階層の階層画像符号化部の符号化情報リサンプリング部120では符号化情報を上位階層のピクチャの解像度に応じたブロック単位にリサンプリングして、上位の拡張階層の階層画像符号化部の符号化情報格納メモリ115に格納する。なお、上位の拡張階層の階層画像符号化部の符号化情報リサンプリング部120では動きベクトルに対しては参照階層のピクチャと上位の拡張階層のピクチャの解像度の比率に応じたスケーリングを行い、スケーリングされた動きベクトルを拡張階層の階層画像符号化部の符号化情報格納メモリ115に格納する。ただし、拡張階層でフラグsps_alt_collocated_indication_flagが0に設定され、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内ですべてインター参照ピクチャにする際には、拡張階層の階層画像復号部の符号化情報格納メモリ115への階層間参照ピクチャの格納処理は不要となる。
図4は本実施の形態の図2の動画像復号装置を構成する各階層の階層画像復号部22、23、24の構成を示すブロック図である。図4は図3の実施の形態の動画像符号化装置の階層画像符号化部12、13、14に対応した本発明の実施の形態に係る動画像復号装置の階層画像復号部22、23、24の構成を示すブロックである。実施の形態の動画像復号装置の階層画像復号部22、23、24は、分離部201、第1符号化ビット列復号部212、第2符号化ビット列復号部202、第3符号化ビット列復号部203、動きベクトル算出部204、インター予測情報導出部205、インター予測部206、イントラ予測部207、逆量子化・逆直交変換部208、復号画像信号重畳部209、符号化情報格納メモリ210、復号画像メモリ211、画像信号リサンプリング部213、および符号化情報リサンプリング部214を備える。
図4の階層画像復号部の復号処理は、図3の階層画像符号化部の内部に設けられている復号処理に対応するものであるから、図4のインター予測部206、逆量子化・逆直交変換部208、復号画像信号重畳部209、符号化情報格納メモリ210、および復号画像メモリ211の各構成は、図3の階層画像符号化部のインター予測部105、逆量子化・逆直交変換部113、復号画像信号重畳部114、符号化情報格納メモリ115、および復号画像メモリ116の各構成とそれぞれ対応する機能を有する。
分離部201に供給されるビットストリームは規定のシンタックスの規則に従って分離し、分離された第1の符号化ビット列が第1符号化ビット列復号部212に供給され、第2の符号化ビット列が第2符号化ビット列復号部202に供給され、第3の符号化ビット列が第3符号化ビット列復号部203に供給される。
第1符号化ビット列復号部212は、供給された第1の符号化ビット列を復号して、シーケンス、ピクチャ、スライス単位の情報を得る。得られたシーケンス、ピクチャ、スライス単位の情報は図示していないがすべてのブロックに供給する。後述するシーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグsps_temporal_mvp_enabled_flag、拡張階層で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるか、またはシーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかを示すフラグsps_alt_collocated_indication_flag、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flag、拡張階層の各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかを示すフラグslice_alt_collocated_indication_flagも第1符号化ビット列復号部212で復号される。さらに、参照ピクチャcolPicを特定するためのスライス単位の情報である後述するインデックスcollocated_ref_layer_idx、フラグcollocated_from_l0_flag、インデックスcollocated_ref_idx等も第1符号化ビット列復号部212で復号される。各フラグsps_temporal_mvp_enabled_flag、sps_alt_collocated_indication_flag、slice_temporal_mvp_enabled_flag、slice_alt_collocated_indication_flagの復号処理手順は図16のフローチャートを用いて、後ほど詳細に説明する。
第2符号化ビット列復号部202は、供給された第2の符号化ビット列を復号して、符号化ブロック単位の情報、及び、予測ブロック単位の符号化情報を得る。具体的には、符号化ブロック単位でスキップモードかどうかを判別する情報、インター予測(PRED_INTER)かイントラ予測(PRED_INTRA)かを判別する予測モードPredMode、分割モードPartMode、インター予測(PRED_INTER)の場合、マージモードかどうかを判別するフラグ、マージモードの場合は選択すべきマージ候補(インター予測情報の候補)を特定するマージインデックス、マージモードでない場合はインター予測モード、選択すべき予測動きベクトル候補を特定する予測動きベクトルインデックスまたはフラグ、差分動きベクトル等に関する符号化情報を後述する規定のシンタックス規則に従って復号し、復号された符号化情報を符号化情報格納メモリ210に格納するとともに、動きベクトル算出部204、インター予測情報導出部205またはイントラ予測部207に供給する。なお、本実施の形態では、符号化ブロックがスキップモード(シンタックス要素skip_flag[x0][y0]が1)の場合、予測ブロックの予測モードPredModeの値はインター予測(MODE_INTER)で、マージモード(merge_flag[x0][y0]が1)で、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)にする。
第3符号化ビット列復号部203は、供給された第3の符号化ビット列を復号して直交変換・量子化された残差信号を導出し、直交変換・量子化された残差信号を逆量子化・逆直交変換部208に供給する。
動きベクトル算出部204は、復号対象の予測ブロックの予測モードPredModeがインター予測(PRED_INTER)でマージモードでない時に、予測動きベクトル候補を導出して、動きベクトルを導出する。予測動きベクトルを導出する際は、符号化情報格納メモリ210に記憶されている既に復号された符号化情報を用いる。これらの符号化情報を用いて、複数の予測動きベクトルの候補を導出して後述する予測動きベクトルリストに登録し、予測動きベクトルリストに登録された複数の予測動きベクトルの候補の中から、第2符号化ビット列復号部202で復号され供給される予測動きベクトルインデックスに応じた予測動きベクトルを選択し、第2符号化ビット列復号部202で復号された差分ベクトルと選択された予測動きベクトルから動きベクトルを導出し、他の符号化情報とともにインター予測部206に供給するとともに、符号化情報として符号化情報格納メモリ210に格納する。ここで供給・格納する予測ブロックのインター予測情報は、L0予測、及びL1予測を利用するかどうかを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]、L0、L1の参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]、L0、L1の動きベクトルmvL0[xP][yP], mvL1[xP][yP]等である。ここで、xP、yPはピクチャ内での予測ブロックの左上の画素の位置を示すインデックスである。予測モードPredModeがインター予測(MODE_INTER)で、インター予測モードがL0予測(Pred_L0)の場合、L0予測を利用するかどうかを示すフラグpredFlagL0は1, L1予測を利用するかどうかを示すフラグpredFlagL1は0である。インター予測モードがL1予測(Pred_L1)の場合、L0予測を利用するかどうかを示すフラグpredFlagL0は0, L1予測を利用するかどうかを示すフラグpredFlagL1は1である。インター予測モードが双予測(Pred_BI)の場合、L0予測を利用するかどうかを示すフラグpredFlagL0、L1予測を利用するかどうかを示すフラグpredFlagL1は共に1である。動きベクトル算出部204の詳細な構成と動作は後述する。
インター予測情報導出部205は、復号対象の予測ブロックの予測モードPredModeがインター予測(PRED_INTER)でマージモードの時に、マージ候補を導出する。符号化側のインター予測情報導出部104と同様に復号側でも、マージ候補を導出する際は、符号化情報格納メモリ210に記憶されている既に復号された符号化情報を用いる。これらの符号化情報を用いて、複数のマージの候補を導出して後述するマージ候補リストに登録し、マージ候補リストに登録された複数のマージ候補の中から第2符号化ビット列復号部202で復号され供給されるマージインデックスに対応したマージ候補を選択し、選択されたマージ候補のL0予測、及びL1予測を利用するかどうかを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]、L0、L1の参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]、L0、L1の動きベクトルmvL0[xP][yP], mvL1[xP][yP]等のインター予測情報をインター予測部206に供給するとともに、符号化情報として符号化情報格納メモリ210に格納する。ここで、xP、yPはピクチャ内での予測ブロックの左上の画素の位置を示すインデックスである。インター予測情報導出部205の詳細な構成と動作は後述する。
インター予測部206は、動きベクトル算出部204またはインター予測情報導出部205で導出されたインター予測情報を用いて復号画像メモリ211に格納されているインター参照ピクチャまたは階層間参照ピクチャからインター予測(動き補償予測)により予測画像信号を生成し、予測画像信号を復号画像信号重畳部209に供給する。なお、L0予測、及びL1予測では、片方向の予測を行う。双予測(Pred_BI)の場合は、L0予測、L1予測の2つの予測画像信号に必要に応じて適応的に重み係数を掛け算して重畳し、最終的な予測画像信号を生成する。
イントラ予測部207は、復号対象の予測ブロックの予測モードPredModeがイントラ予測(PRED_INTRA)の時に、イントラ予測を行う。第2符号化ビット列復号部202で復号された符号化情報にはイントラ予測モードが含まれており、イントラ予測モードに応じて、復号画像メモリ211に格納されている復号済みの画像信号からイントラ予測により予測画像信号を生成し、予測画像信号を復号画像信号重畳部209に供給する。L0予測、及びL1予測を利用するかどうかを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]を共に0に設定し、符号化情報格納メモリ210に格納する。本実施の形態においては、predFlagL0[xP][yP],とpredFlagL1[xP][yP]が共に0であれば、インター予測ではなくイントラ予測により符号化されていることを示す。さらに、L0、L1の参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]を共に-1に設定し、L0、L1の動きベクトルmvL0[xP][yP], mvL1[xP][yP]を共に(0, 0)に設定し、それぞれのイントラ予測情報およびインター予測情報を符号化情報として符号化情報格納メモリ210に格納する。ここで、xP、yPはピクチャ内での予測ブロックの左上の画素の位置を示すインデックスである。
逆量子化・逆直交変換部208は、第2符号化ビット列復号部202で復号された直交変換・量子化された残差信号に対して逆直交変換及び逆量子化を行い、逆直交変換・逆量子化された残差信号を得る。
復号画像信号重畳部209は、インター予測部206でインター予測された予測画像信号、またはイントラ予測部207でイントラ予測された予測画像信号と、逆量子化・逆直交変換部208により逆直交変換・逆量子化された残差信号とを重畳することにより、復号画像信号を復号し、復号画像メモリ211に格納する。復号画像メモリ211に格納する際には、復号画像に対して符号化によるブロック歪等を減少させるフィルタリング処理を施して、復号画像メモリ211に格納されることもある。復号画像メモリ211に格納された復号画像はPOCで指定された出力順序で出力される。
なお、参照階層の階層画像復号部の復号画像メモリ211に格納される復号画像信号は当該階層の復号のインター予測の際にインター参照ピクチャとして用いられるのはもちろんのこと、上位の拡張階層の復号のインター予測の際にも階層間参照ピクチャとして用いられる。そこで、復号画像は上位の拡張階層の階層画像復号部に供給され、上位の拡張階層の階層画像復号部の画像信号リサンプリング部213では供給された復号画像を上位の拡張階層のピクチャの解像度に合わせてリサンプリングして、上位の拡張階層の階層画像復号部の復号画像メモリ211に格納する。
さらに、参照階層の階層画像復号部の動きベクトル算出部204またはインター予測情報導出部205により符号化情報格納メモリ210に格納されるL0予測、及びL1予測を利用するかどうかを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]、L0、L1の参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]、L0、L1の動きベクトルmvL0[xP][yP], mvL1[xP][yP]等の符号化情報は上位階層の復号のインター予測の際にも用いられる。そこで参照階層の符号化情報は上位の拡張階層の階層画像復号部に供給され、上位の拡張階層の階層画像復号部の符号化情報リサンプリング部214では符号化情報を上位階層のピクチャの解像度に応じたブロック単位にリサンプリングして、上位の拡張階層の階層画像復号部の符号化情報格納メモリ210に格納する。なお、上位の拡張階層の階層画像復号部の符号化情報リサンプリング部214では動きベクトルに対しては参照階層のピクチャと上位の拡張階層のピクチャの解像度の比率に応じたスケーリングを行い、スケーリングされた動きベクトルを拡張階層の階層画像復号部の符号化情報格納メモリ210に格納する。ただし、拡張階層のフラグsps_alt_collocated_indication_flagが0に設定され、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内ですべてインター参照ピクチャにする際には、拡張階層の階層画像復号部の符号化情報格納メモリ210への階層間参照ピクチャの格納処理は不要となる。
(第1の実施の形態)
次に、第1の実施の形態に係る図3の動画像符号化装置の階層画像符号化部のヘッダ情報設定部117で設定されて、第1符号化ビット列生成部118で符号化され、図4の動画像復号装置の階層画像復号部の第1符号化ビット列復号部212で復号される各種フラグの符号化および復号方法について説明する。
第1の実施の形態の動画像符号化装置の階層画像符号化部、および動画像復号装置の階層画像復号部においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかをシーケンス単位で指定する。
さらに、拡張階層においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とした場合には、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるか、またはシーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかをシーケンス単位で指定する。
さらに、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とした場合には、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかをピクチャまたはスライス単位で指定する。
さらに、拡張階層においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とするとともに、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内でインター参照ピクチャまたは階層間参照ピクチャのどちらかにするかを固定しない場合には、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかをピクチャまたはスライス単位で指定する。
ここで、第1の実施の形態により動画像符号化装置の階層画像符号化部の第1符号化ビット列生成部118で符号化され、動画像復号装置の階層画像復号部の第1符号化ビット列復号部212で復号される各フラグのシンタックス構造の一例を図46、図47および図48に示す。図46は第1の実施の形態に係るシーケンス単位で符号化および復号されるシーケンス・パラメータ・セットのシンタックス構造を説明する図であり、図47は図46のシーケンス・パラメータ・セットに続いて第1の実施の形態に係るシーケンス単位で符号化および復号されるシーケンス・パラメータ・セット・エクステンションのシンタックス構造を説明する図である。シーケンス・パラメータ・セットおよびシーケンス・パラメータ・セット・エクステンションはシーケンス全体に係る情報を扱い、それぞれ階層の分だけ配置される。図48は第1の実施の形態に係るスライス単位で符号化および復号されるスライス・セグメント・ヘッダのシンタックス構造を説明する図である。スライス・セグメント・ヘッダはスライスに係る情報を扱い、スライス毎に配置される。
第1の実施の形態に係る動画像符号化装置の階層画像符号化部において、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグsps_temporal_mvp_enabled_flag、拡張階層で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるか、またはシーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかを示すフラグsps_alt_collocated_indication_flag、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flag、拡張階層の各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかを示すフラグslice_alt_collocated_indication_flagのそれぞれのフラグに値を設定し符号化する方法について図15のフローチャートを用いて説明する。これらのフラグは動画像符号化装置の階層画像符号化部のヘッダ情報設定部117で設定し、第1符号化ビット列生成部118に供給されて、第1符号化ビット列生成部118でシーケンス単位及びスライス単位のシンタックス要素として符号化される。
まず、ヘッダ情報設定部117はシーケンス単位のフラグの設定および符号化を行う(図15のS9401〜S9407)。ヘッダ情報設定部117は、フラグsps_temporal_mvp_enabled_flag、およびフラグsps_alt_collocated_indication_flagに値を設定する(図15のS9401)。具体的には、シーケンス内で時間マージ候補および時間予測動きベクトル候補をマージ候補および予測動きベクトル候補とすることを可能にする場合、フラグsps_temporal_mvp_enabled_flagを1に設定し、可能にしない場合、0に設定する。さらに、シーケンス内ですべてインター参照ピクチャを時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicとする場合、フラグsps_alt_collocated_indication_flagを0に設定し、シーケンス内ですべて階層間参照ピクチャを参照ピクチャcolPicとする場合、1に設定し、シーケンス内ではどちらかに固定せずにピクチャまたはスライス毎にインター参照ピクチャと階層間参照ピクチャのいずれかを参照ピクチャcolPicとする場合、2に設定する。
続いて、第1符号化ビット列生成部118は、シーケンス単位でフラグsps_temporal_mvp_enabled_flagをシンタックス要素として符号化する(図15のS9403)。続いて、拡張階層では、フラグsps_temporal_mvp_enabled_flagの値が1の場合(図15のS9404のYES)、シーケンス単位でフラグsps_alt_collocated_indication_flagをシンタックス要素として符号化する(図15のS9407)。
続いて、スライス単位のフラグの設定および符号化を行う(図15のS9408〜S9418)。ヘッダ情報設定部117は、フラグslice_temporal_mvp_enabled_flag、およびフラグslice_alt_collocated_indication_flagにそれぞれ値を設定する(図15のS9409)。具体的には、各ピクチャまたはスライス毎に各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補をマージ候補および予測動きベクトル候補とする場合、フラグslice_temporal_mvp_enabled_flagを1に設定し、候補としない場合、0に設定する。ピクチャ単位で切り替える際にはピクチャ内のすべてのスライスのフラグslice_temporal_mvp_enabled_flagを同じ値に設定する。さらに、各ピクチャまたはスライス毎に各ピクチャまたはスライス内でインター参照ピクチャを時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicとする場合、フラグslice_alt_collocated_indication_flagを0に設定し、階層間参照ピクチャを時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicとする場合、1に設定する。ピクチャ単位で切り替える際にはピクチャ内のすべてのスライスのフラグslice_alt_collocated_indication_flagを同じ値に設定する。なお、シーケンス単位のフラグsps_temporal_mvp_enabled_flagの値が0の場合、スライス単位のフラグslice_temporal_mvp_enabled_flagの値は0である。また、拡張階層において、シーケンス単位のフラグsps_alt_collocated_indication_flagの値が0の場合、スライス単位のフラグslice_alt_collocated_indication_flagの値も0であり、シーケンス単位のフラグsps_alt_collocated_indication_flagの値が1の場合、スライス単位のフラグslice_alt_collocated_indication_flagの値も1である。また、下位階層に階層間参照ピクチャが存在しない場合は、フラグslice_alt_collocated_indication_flagの値を0に設定する。例えば図5に示す、階層画像M(0)のピクチャP12が符号化されない場合、階層画像M(1)のピクチャP22の符号化及び復号の際には、参照階層のピクチャP12を参照せずに符号化及び復号を行うので、フラグslice_alt_collocated_indication_flagの値を0に設定する。
続いて、第1符号化ビット列生成部118は、フラグsps_temporal_mvp_enabled_flagの値が1の場合(図15のS9410のYES)、スライス単位でフラグslice_temporal_mvp_enabled_flagをシンタックス要素として符号化する(図15のS9411)。
続いて、第1符号化ビット列生成部118は、フラグslice_temporal_mvp_enabled_flagの値が1で、sps_alt_collocated_indication_flagの値が2の場合(図15のS9413のYES、S9414のYES)、スライス単位でフラグslice_alt_collocated_indication_flagをシンタックス要素として符号化する(図15のS9416)。一方、フラグslice_temporal_mvp_enabled_flagの値が1でない場合(値が0の場合)(図15のS9413のNO)、あるいは、フラグslice_temporal_mvp_enabled_flagの値が1で、sps_alt_collocated_indication_flagの値が2でない場合(値が0または1の場合)(図15のS9413のYES、S9414のNO)、ステップS9416のフラグslice_alt_collocated_indication_flagの符号化処理をスキップする。
以上、ステップS9409からS9416までの処理をスライス毎に繰り返す(図15のS9408〜S9418)。
なお、ベース階層の符号化においては、下位階層を参照することはないので、フラグsps_alt_collocated_indication_flag、およびslice_alt_collocated_indication_flagの値を常に0とする。その際、ステップS9404〜S9407、及びステップS9413〜S9416の符号化処理を省略することができる。
次に、第1の実施の形態に係る動画像復号装置の階層画像復号部において、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグsps_temporal_mvp_enabled_flag、拡張階層で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるか、またはシーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかを示すフラグsps_alt_collocated_indication_flag、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flag、拡張階層の各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかを示すフラグslice_alt_collocated_indication_flagのそれぞれのフラグの復号する方法について図16のフローチャートを用いて説明する。図16は図15の符号化処理手順で各フラグが符号化された符号化ビット列を復号する際の復号処理手順を示すフローチャートである。これらのフラグは動画像復号装置の階層画像復号部の第1符号化ビット列復号部212でシーケンス単位及びスライス単位のシンタックス要素として復号される。
まず、第1符号化ビット列復号部212は、シーケンス単位の情報の復号を行う(図16のS9503〜S9507)。第1符号化ビット列復号部212は、シーケンス単位で、フラグsps_temporal_mvp_enabled_flagをシンタックス要素として復号する(図16のS9503)。続いて、拡張階層では、フラグsps_temporal_mvp_enabled_flagの値が1の場合(図16のS9504のYES)、シーケンス単位で、フラグsps_alt_collocated_indication_flagをシンタックス要素として復号する(図16のS9507)。
続いて、第1符号化ビット列復号部212は、スライス単位の情報の復号を行う(図16のS9508〜S9518)。フラグsps_temporal_mvp_enabled_flagの値が1の場合(図16のS9510のYES)、スライス単位で、フラグslice_temporal_mvp_enabled_flagをシンタックス要素として復号する(図16のS9511)。なお、ピクチャ単位で切り替える際にはピクチャ内のすべてのスライスのフラグslice_temporal_mvp_enabled_flagは同じ値である。
一方、フラグsps_temporal_mvp_enabled_flagの値が1でない場合(値が0の場合)(図16のS9510のNO)、シーケンス内で、時間マージ候補および動きベクトル候補をマージ候補および予測動きベクトル候補とすることが可能でないので、スライス単位のフラグslice_temporal_mvp_enabled_flagを0にする(図16のS9512)。
続いて、拡張階層では、フラグslice_temporal_mvp_enabled_flag の値が1で、フラグsps_alt_collocated_indication_flagの値が2の場合(図16のS9513のYES、S9514のYES)、スライス単位で、フラグslice_alt_collocated_indication_flagをシンタックス要素として復号する(図16のS9516)。なお、ピクチャ単位で切り替える際にはピクチャ内のすべてのスライスのフラグslice_alt_collocated_indication_flagは同じ値である。一方、フラグslice_temporal_mvp_enabled_flagの値が1で、フラグsps_alt_collocated_indication_flagの値が2でない場合(値が0または1の場合)(図16のS9513のYES、S9514のNO)、シーケンス内で、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャか階層間参照ピクチャに固定されているので、フラグslice_alt_collocated_indication_flagをフラグsps_alt_collocated_indication_flagと同じ値に設定する(図16のS9517)。また、フラグsps_temporal_mvp_enabled_flagの値が1でない場合(値が0の場合)(図16のS9513のNO)、ステップS9514〜S9517の処理をスキップする。
以上、ステップS9510からS9517までの処理をスライス毎に繰り返す(図16のS9508〜S9518)。
なお、ベース階層の復号においては、下位階層を参照することはないので、ステップS9513〜S9517の処理を省略して、フラグsps_alt_collocated_indication_flag、およびslice_alt_collocated_indication_flagの値を常に0にする。
以上述べた第1の実施の形態の動画像符号化装置および動画像復号装置においては、シーケンス全体に係る情報が階層の分だけ配置されるシーケンス・パラメータ・セット・エクステンションにフラグsps_alt_collocated_indication_flagをそれぞれ配置した。シーケンス全体に係る情報がまとめて配置されるビデオ・パラメータ・セットまたはその後に続くビデオ・パラメータ・セット・エクステンションにフラグsps_alt_collocated_indication_flagに相当する情報持つフラグをそれぞれ階層の分だけまとめて配置してもよい。
次に、本実施の形態に係るインター予測情報導出方法について説明する。インター予測情報導出方法は、図3の動画像符号化装置の階層画像符号化部のインター予測情報導出部104及び図4の動画像復号装置の階層画像復号部のインター予測情報導出部205において実施される。
本実施の形態に係るインター予測情報導出方法を図面を用いて説明する。本実施の形態に係るインター予測情報導出方法は、符号化ブロックを構成する予測ブロック単位に、符号化及び復号の処理の何れでも実施される。予測ブロックの予測モードPredModeがインター予測(MODE_INTER)で、スキップモードを含むマージモードの場合に、符号化側では、符号化済みの予測ブロックの予測モード、参照インデックス、動きベクトルを利用して符号化対象の予測ブロックの予測モード、参照インデックス、動きベクトルを導出する際に実施され、復号側では、復号済みの予測ブロックの予測モード、参照インデックス、動きベクトルを利用して復号対象の予測ブロックの予測モード、参照インデックス、動きベクトルを導出する際に実施される。
マージモードは符号化側の動画像符号化装置の階層画像符号化部と復号側の動画像復号装置の階層画像復号部で共通の規定の方法により、マージ候補を導出し、マージ候補リストに登録する。図9、図10、図11及び図12を用いて説明した左に近接する予測ブロックA1、上に近接する予測ブロックB1、右上に近接する予測ブロックB0、左下に近接する予測ブロックA0、左上に近接する予測ブロックB2の5つの予測ブロックから空間のマージ候補を導出する。さらに、図13または図14を用いて説明した参照ピクチャcopPic内の同一位置あるいはその付近に存在する予測ブロックcolPb(T0、T1のいずれか)の予測ブロックから時間マージ候補を導出する。
動画像符号化装置の階層画像符号化部のインター予測情報導出部104はマージ候補リストの要素を特定するマージインデックスを決定して第2符号化ビット列生成部110を経由して符号化し、動画像復号装置の階層画像復号部のインター予測情報導出部205は第2符号化ビット列復号部202で復号されたマージインデックスが供給されて、そのマージインデックスに応じた予測ブロックをマージ候補リストから選択し、その選択されたマージ候補の予測モード、参照インデックス、動きベクトル等のインター予測情報を用いて、インター予測(動き補償予測)を行う。
本実施の形態に係るインター予測情報導出方法を図面を用いて説明する。図17は、本実施の形態に係る第1の実施例の図3の動画像符号化装置の階層画像符号化部のインター予測情報導出部104の詳細な構成を示す図である。また、図18は、本実施の形態に係る図4の動画像復号装置の階層画像復号部のインター予測情報導出部205の詳細な構成を示す図である。
図17及び図18の太枠線で囲まれる部分はそれぞれ、インター予測情報導出部104及びインター予測情報導出部205を示している。
更に、それらの内部の太点線で囲まれる部分はそれぞれのマージ候補を導出してマージ候補リストを構築する動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補リスト構築部130及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補リスト構築部230を示しており、本実施の形態の動画像符号化装置の階層画像符号化部と対応する動画像復号装置の階層画像復号部にも同様に設置され、符号化と復号で矛盾しない同一の導出結果を得られるようにしている。
図17の動画像符号化装置の階層画像符号化部のインター予測情報導出部104は、マージ候補生成部131、マージ候補登録部134、追加マージ候補生成部135およびインター予測情報選択部136を含む。
図18の動画像復号装置の階層画像復号部のインター予測情報導出部205は、マージ候補生成部231、マージ候補登録部234、追加マージ候補生成部235およびインター予測情報選択部236を含む。
図19は本実施の形態に係る動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補リスト構築部130及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補リスト構築部230とで共通する機能を有するマージ候補の導出処理及びマージ候補リストの構築処理の手順を説明するフローチャートである。
以下、諸過程を順を追って説明する。なお、以下の説明においては特に断りのない限り拡張階層のスライスタイプslice_typeがBスライスの場合について説明するが、Pスライスの場合にも適用できる。ただし、スライスタイプslice_typeがPスライスの場合、インター予測モードとしてL0予測(Pred_L0)だけがあり、L1予測(Pred_L1)、双予測(Pred_BI)がないので、L1に纏わる処理を省略することができる。
動画像符号化装置の階層画像符号化部のインター予測情報導出部104及び動画像復号装置の階層画像復号部のインター予測情報導出部205では、マージ候補リストmergeCandListを用意する。マージ候補リストmergeCandListはリスト構造を成し、マージ候補リスト内部の所在を示すマージインデックスと、インデックスに対応するマージ候補を要素として格納する記憶領域が設けられている。マージインデックスの数字は0から開始され、マージ候補リストmergeCandListの記憶領域に、マージ候補が格納される。以降の処理では、マージ候補リストmergeCandListに登録されたマージインデックスiのマージ候補となる予測ブロックは、mergeCandList[i]で表すこととし、マージ候補リストmergeCandListとは配列表記をすることで区別することとする。本実施の形態においては、マージ候補リストmergeCandListは少なくとも5個のマージ候補(インター予測情報)を登録することができるものとする。
また、予測ブロックA1、B1、B0、A0、B2のインター予測情報が空間マージ候補A1、B1、B0、A0、B2として利用できるかどうかを示すフラグavailableFlagA1、availableFlagB1、availableFlagB0、availableFlagA0、availableFlagB2、時間マージ候補が利用できるかどうかを示すフラグavailableFlagColは0に初期化される。
動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補生成部131及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補生成部231では、複数のマージ候補を導出する。導出されたマージ候補は、動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補登録部134及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補登録部234にそれぞれ供給される。
動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補生成部131及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補生成部231では、動画像符号化装置の階層画像符号化部の符号化情報格納メモリ115または動画像復号装置の階層画像復号部の符号化情報格納メモリ210に格納されている符号化情報から、符号化または復号対象ブロックに近接するそれぞれの予測ブロックA1,B1,B0,A0,B2からの空間マージ候補A1,B1,B0,A0,B2を導出する(図19のステップS101)。ここで、空間マージ候補A1,B1,B0,A0,B2または時間マージ候補Colのいずれかを示すNを定義する。予測ブロックNのインター予測情報が空間マージ候補Nとして利用できるかどうかを示すフラグavailableFlagN、空間マージ候補NのL0の参照インデックスrefIdxL0N及びL1の参照インデックスrefIdxL1N、L0予測が行われるかどうかを示すL0予測フラグpredFlagL0NおよびL1予測が行われるかどうかを示すL1予測フラグpredFlagL1N、L0の動きベクトルmvL0N、L1の動きベクトルmvL1Nを導出する。ただし、本実施の形態においては処理対象となる予測ブロックを含む符号化ブロックと同じ符号化ブロックに含まれる予測ブロックを参照せずに、マージ候補を導出するので、処理対象の予測ブロックを含む符号化ブロックと同じ符号化ブロックに含まれる空間マージ候補は導出しない。ステップS101の空間マージ候補導出処理の詳細な処理手順については図20のフローチャートを用いて後ほど詳細に説明する。導出されたそれぞれの空間マージ候補は動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補登録部134及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補登録部234にそれぞれ供給される。
続いて、本実施の形態の動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補生成部131及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補生成部231では、インター参照ピクチャまたは階層間参照ピクチャのインター予測情報を参照する時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを切り替える。各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補及び予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flagの値が1の場合、すなわち時間マージ候補を導出する場合(図19のステップS102のYES)、動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補生成部131及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補生成部231では、インター参照ピクチャまたは階層間参照ピクチャの符号化情報を用いて時間マージ候補を導出する(図19のステップS103)。時間マージ候補が利用できるかどうかを示すフラグavailableFlagCol、時間マージ候補のL0予測が行われるかどうかを示すL0予測フラグpredFlagL0ColおよびL1予測が行われるかどうかを示すL1予測フラグpredFlagL1Col、及びL0の動きベクトル mvL0Col、L1の動きベクトルmvL1Colを導出する。ステップS103の時間マージ候補導出処理の詳細な処理手順については図21のフローチャートを用いて後ほど詳細に説明する。導出された時間マージ候補は動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補登録部134及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補登録部234にそれぞれ供給される。一方、フラグslice_temporal_mvp_enabled_flagの値が1でない場合(値が0の場合)、すなわち時間マージ候補を導出しない場合(図19のステップS102のNO)、ステップS103の時間マージ候補導出処理をスキップしてステップS104に進む。この場合は、フラグavailableFlagColは0に設定される。
続いて、動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補登録部134及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補登録部234では、マージ候補リストmergeCandListを作成し、動画像符号化装置の階層画像符号化部のインター予測情報導出部104のマージ候補生成部131及び動画像復号装置の階層画像復号部のインター予測情報導出部205のマージ候補生成部231から供給される空間マージ候補A1,B1,B0,A0,B2、時間マージ候補Colをマージ候補リストmergeCandList内に登録し、マージ候補数numMergeCandにマージ候補リストmergeCandList内のマージ候補数を設定する(図19のステップS104)。ステップS104の詳細な処理手順については図28のフローチャートを用いて後ほど詳細に説明する。
続いて、動画像符号化装置の階層画像符号化部のインター予測情報導出部104の追加マージ候補生成部135及び動画像復号装置の階層画像復号部のインター予測情報導出部205の追加マージ候補生成部235では、マージ候補リストmergeCandList内に登録されているマージ候補数numMergeCandが、最大マージ候補数maxNumMergeCandより小さい場合、マージ候補リストmergeCandList内に登録されているマージ候補数numMergeCandが最大マージ候補数maxNumMergeCandを上限としてマージ候補リスト内のマージインデックスが0から(maxNumMergeCand-1)の値で指し示される範囲内で、無効なマージ候補がなくなるまで、追加マージ候補を導出して、マージ候補リストmergeCandListに登録する(図19のステップS108)。なお、最大マージ候補数maxNumMergeCandはスライス単位で符号化または復号されるシンタックス要素である。最大マージ候補数maxNumMergeCandを上限として、Pスライスでは、動きベクトルが(0,0)(水平および垂直成分がともに0)で、予測モードがL0予測(Pred_L0)のマージ候補を追加する。Bスライスでは、動きベクトルが(0,0)で、予測モードが双予測(Pred_BI)のマージ候補を追加する。ステップS108の詳細な処理手順については図29のフローチャートを用いて後ほど詳細に説明する。マージ候補リストmergeCandListは動画像符号化装置の階層画像符号化部のインター予測情報導出部104のインター予測情報選択部136及び動画像復号装置の階層画像復号部のインター予測情報導出部205のインター予測情報選択部236にそれぞれ供給される。
次に、図19のステップS101の処理手順である符号化または復号対象ブロックに近接する予測ブロックNからのマージ候補Nの導出方法について詳細に説明する。図20は図19のステップS101の空間マージ候補導出処理手順を説明するフローチャートである。Nには近接する予測ブロックの領域を表すA1(左側)、B1(上側)、B0(右上)、A0(左下)またはB2(左上)が入る。なお、本実施の形態においては、近接する5つの予測ブロックから最大4つの空間マージ候補を導出する。
図20で、変数NをAとして符号化または復号対象の予測ブロックの左側に近接する予測ブロックA1の符号化情報を調べてマージ候補A1を導出し、変数NをB1として上側に近接する予測ブロックB1の符号化情報を調べてマージ候補B1を導出し、変数NをB0として右上側に近接する予測ブロックB0の符号化情報を調べてマージ候補B0を導出し、変数NをA0として左下側に近接する予測ブロックA0の符号化情報を調べてマージ候補A0を導出し、変数NをB2として左上側に近接する予測ブロックB2の符号化情報を調べてマージ候補B2を導出する(図20のステップS1101〜ステップS1117)。
まず、変数NがB2で、フラグavailableFlagA0, availableFlagA1, availableFlagB0, availableFlagB1の値を加算して合計が4の場合(図20のステップS1102のYES)、すなわち4つの空間マージ候補が導出された場合、ステップS1109以降の処理を行う。
本実施の形態においては、近接する予測ブロックから最大で4つのマージ候補を導出するので、既に4つの空間マージ候補が導出された場合はそれ以上の空間マージ候補の導出処理を行う必要がない。
一方、変数NがB2でないか、フラグavailableFlagA0, availableFlagA1, availableFlagB0, availableFlagB1の値を加算して合計が4でない場合(図20のステップS1102のNO)、すなわち4つの空間マージ候補が導出されていない場合、ステップS1103以降の処理を行う。近接する予測ブロックNが導出対象の予測ブロックを含む符号化ブロックと同じ符号化ブロックに含まれる場合(図20のステップS1103のYES)、ステップS1109以降の処理を行う。近接する予測ブロックNが導出対象の予測ブロックを含む符号化ブロックと同じ符号化ブロックに含まれる場合(図20のステップS1103のYES)、近接する予測ブロックNを参照しないことで、予測ブロックのマージ候補導出及びマージ候補リストの構築処理の並列処理を可能とする。
具体的には、分割モード(PartMode)が2N×N分割(PART_2NxN)、2N×nU分割(PART_2NxnU)または2N×nD分割(PART_2NxnD)で、処理対象の予測ブロックのPartIdxが1で、近接する予測ブロックBの場合が、近接する予測ブロックNが導出対象の予測ブロックを含む符号化ブロックと同じ符号化ブロックに含まれる場合である。この場合、近接する予測ブロックB1はPartIdxが0の予測ブロックであるので、近接する予測ブロックB1を参照しないことで、予測ブロックのマージ候補導出及びマージ候補リストの構築処理の並列処理を可能とする。
さらに、分割モード(PartMode)がN×2N分割(PART_Nx2N)、nL×2N分割(PART_nLx2N)またはnR×2N分割(PART_nRx2N)で、処理対象の予測ブロックのPartIdxが1で、近接する予測ブロックA1の場合も、近接する予測ブロックNが導出対象の予測ブロックを含む符号化ブロックと同じ符号化ブロックに含まれる場合である。この場合も、近接する予測ブロックA1はPartIdxが0の予測ブロックであるので、近接する予測ブロックA1を参照しないことで、予測ブロックのマージ候補導出及びマージ候補リストの構築処理の並列処理を可能とする。
さらに、分割モード(PartMode)がN×N分割(PART_NxN)で、処理対象の予測ブロックのPartIdxが1、2または3の場合も、近接する予測ブロックNが導出対象の予測ブロックを含む符号化ブロックと同じ符号化ブロックに含まれることがある。
一方、近接する予測ブロックNが処理対象の予測ブロックを含む符号化ブロックと同じ符号化ブロックに含まれない場合(図20のステップS1103のNO)、符号化または復号対象の予測ブロックに近接する予測ブロックNを特定し、それぞれの予測ブロックNが利用できる場合は符号化情報格納メモリ115または210から予測ブロックNの符号化情報を取得する(図20のステップS1104)。
近接する予測ブロックNが利用できないか(図20のステップS1105のNO)、予測ブロックNの予測モードPredModeがイントラ予測(MODE_INTRA)である場合(図20のステップS1106のNO)、ステップS1109以降の処理を行う。ここで、近接する予測ブロックNが利用できない場合とは、具体的には近接する予測ブロックNが符号化または復号対象スライスの外に位置する場合や、まだ符号化または復号処理順序で後のため、符号化または復号処理が完了していない場合等が該当する。
続いて、マージ候補NのフラグpredFlagL0N, predFlagL1N、マージ候補Nの参照インデックスrefIdxL0N, refIdxL1N、マージ候補Nの動きベクトルmvL0N, mvL1Nをすでに導出された隣同士のマージ候補とそれぞれ比較する(図20のステップS1107)。マージ候補の値が同一の場合(図20のステップS1108のNO)、ステップS1109以降の処理を行う。
変数NがB2で、フラグavailableFlagA0, availableFlagA1, availableFlagB0, availableFlagB1の値を加算して合計が4となり4つの空間マージ候補が導出されたか、(図20のステップS1102のYES)、近接する予測ブロックNが導出対象の予測ブロックの符号化ブロックと同じ符号化ブロックに含まれるか(図20のステップS1103のYES)、近接する予測ブロックNが利用できないか(図20のステップS1105のNO)、予測ブロックNの予測モードPredModeがイントラ予測(MODE_INTRA)であるか(図20のステップS1106のNO)、すでに導出された隣同士のマージ候補と値が同一の場合(図20のステップS1108のNO)、マージ候補NのフラグavailableFlagNの値を0に設定し(図18のステップS1109)、マージ候補Nの動きベクトルmvL0N, mvL1Nの値を共に(0,0)に設定し(図20のステップS1110)、マージ候補Nの参照インデックスrefIdxL0N, refIdxL1Nをそれぞれ予測ブロックNの参照インデックスrefIdxL0[xN][yN], refIdxL1[xN][yN]と同じ値に設定し(図20のステップS1111)、マージ候補NのフラグpredFlagL0N、predFlagL1Nの値を共に0に設定し(図20のステップS1112)、ステップS1117に進む。
一方、変数NがB2で、フラグavailableFlagA0, availableFlagA1, availableFlagB0, availableFlagB1の値を加算して合計が4でなく4つの空間マージ候補が導出されておらず、(図20のステップS1102のYES)、近接する予測ブロックNが導出対象の予測ブロックの符号化ブロックと同じ符号化ブロック外で(図20のステップS1103のNO)、近接する予測ブロックNが利用でき(図20のステップS1105のYES)、予測ブロックNの予測モードPredModeがイントラ予測(MODE_INTRA)でなく(図20のステップS1106のYES)、すでに導出された隣同士のマージ候補と値が同一でない場合(図20のステップS1108のYES)、予測ブロックNのインター予測情報をマージ候補Nのインター予測情報とする。マージ候補NのフラグavailableFlagNの値を1に設定し(図20のステップS1113)、マージ候補Nの動きベクトルmvL0N, mvL1Nをそれぞれ予測ブロックNの動きベクトルmvL0N[xN][yN], mvL1N[xN][yN]と同じ値に設定し(図20のステップS1114)、マージ候補Nの参照インデックスrefIdxL0N, refIdxL1Nをそれぞれ予測ブロックNの参照インデックスrefIdxL0[xN][yN], refIdxL1[xN][yN]と同じ値に設定し(図20のステップS1115)、マージ候補NのフラグpredFlagL0N, predFlagL1Nをそれぞれ予測ブロックNのフラグpredFlagL0[xN][yN], predFlagL1[xN][yN]に設定する(図20のステップS1116)。ここで、xN、yNはピクチャ内での予測ブロックNの左上の画素の位置を示すインデックスである。
以上のステップS1102〜ステップS1116の処理をN=A1,B1,B0,A0,B2についてそれぞれ繰り返す(図20のステップS1101〜ステップS1117)。
次に、図19のステップS103のインター参照ピクチャ及び階層間参照ピクチャのインター予測情報を用いる時間マージ候補の導出方法について詳細に説明する。図21は図19のステップS103の時間マージ候補導出処理手順を説明するフローチャートである。
まず時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicを導出する(図21のS2101)。ステップS2101の詳細な処理手順については図22のフローチャートを用いて後ほど詳細に説明する。
続いて、時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ予測ブロックcolPbを導出し、符号化情報を取得する(図21のS2102)。ステップS2102の詳細な処理手順については図23のフローチャートを用いて後ほど詳細に説明する。
続いて、時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ予測ブロックcolPbから導出されるL0の予測動きベクトルmvL0Colと時間マージ候補Colが有効か否かを示すフラグavailableFlagL0Colを導出するとともに(図21のS2103)、L1の予測動きベクトルmvL1Colと時間マージ候補Colが有効か否かを示すフラグavailableFlagL1Colを導出する(図21のS2104)。ステップS2103、S2104の詳細な処理手順については図24のフローチャートを用いて後ほど詳細に説明する。さらに、フラグavailableFlagL0Col またはフラグavailableFlagL1Colが1の場合に、時間マージ候補Colが有効か否かを示すフラグavailableFlagColを1に設定し、そうでない場合に、availableFlagColを0に設定する(図21のS2105)。
次に、図21のステップS2101および後述する図40のステップS7101の時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicの導出処理手順について詳細に説明する。図22は図21のステップS2101および後述する図40のステップS7101の時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicの導出処理手順を説明するフローチャートである。本実施の形態の動画像符号化装置、動画像復号装置では、拡張階層では、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかのいずれかに切り替える。拡張階層の各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかを示すフラグslice_alt_collocated_indication_flagが1の場合(図22のS2201のYES)、階層間参照ピクチャが時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicとなる(図22のS2202)。具体的には有効なインター予測情報を持つ階層間参照ピクチャの階層IDを要素とする階層間参照リストActiveMotionPredRefLayerIdの中でスライス単位で符号化および復号されるインデックスcollocated_ref_layer_idxで指定される参照階層の参照ピクチャが時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicとなる。
一方、参照ピクチャcolPicがインター参照ピクチャか階層間参照ピクチャかを示すフラグslice_alt_collocated_indication_flagが1でない場合(0の場合)((図22のS2201のNO)、ステップS2203以降の処理に進み、インター参照ピクチャが時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicとなる。スライスタイプslice_typeがBスライスで、フラグcollocated_from_l0_flagの値が0の場合(図22のS2203のYES、S2204のYES)、L1の参照リストRefPicList1の中でスライス単位で符号化および復号されるインデックスcollocated_ref_idxで指定される参照ピクチャが参照ピクチャcolPicとなる(図22のS2205)。そうでない場合、すなわちスライスタイプslice_typeがBスライスで前述のフラグcollocated_from_l0_flagの値が1の場合(図22のS2203のYES、S2204のNO)、またはスライスタイプslice_typeがPスライスの場合(図22のS2203のNO、S2206のYES)、L0の参照リストRefPicList0の中でスライス単位で符号化および復号されるインデックスcollocated_ref_idxで指定される参照ピクチャが参照ピクチャcolPicとなる(図22のS2207)。
次に、図21のステップS2102および後述する図40のステップS7102の時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicの予測ブロックcolPbの導出処理手順について詳細に説明する。図23は図21のステップS2102および後述する図40のステップS7102の時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicの予測ブロックcolPbの導出処理手順を説明するフローチャートである。
まず、時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPic内で処理対象の予測ブロックと同一位置の右下(外側)に位置する予測ブロックを時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ予測ブロックcolPbとする(図23のS2301)。この予測ブロックは図13の予測ブロックT0に相当する。具体的には、処理対象の輝度信号の予測ブロックの左上の画素の位置を(xP, yP)とし、予測ブロックの幅をW, 高さをHとした際に、(xP+W, yP+H)で導出される位置を含む予測ブロックを予測ブロックcolPbとする。なお、インター予測情報が記憶される階層画像符号化部の符号化情報格納メモリ115および階層画像復号部の符号化情報格納メモリ210のメモリ量を削減するために、輝度の16×16画素ブロック単位で圧縮されたインター予測情報を参照すると規定する場合には、(((xP+W)>>4)<<4, ((yP+H)>>4)<<4)で導出される位置を含む予測ブロックを予測ブロックcolPbとする。
続いて、予測ブロックcolPbの符号化情報を取得する(図23のS2302)。予測ブロックcolPbのPredModeが利用できないか、予測ブロックcolPbの予測モードPredModeがイントラ予測(MODE_INTRA)である場合(図23のS2303のYES、S2304のYES)、参照ピクチャcolPic内で処理対象の予測ブロックと同一位置の中央に位置する予測ブロックを予測ブロックcolPbとする(図23のS2305)。この予測ブロックは図13の予測ブロックT1に相当する。中央に位置する予測ブロックが複数存在する場合があるので、具体的には、中央の右下に位置する予測ブロックとする。処理対象の輝度信号の予測ブロックの左上の画素の位置を(xP, yP)とし、予測ブロックの幅をW, 高さをHとした際に、(xP +(W>>1), yP +(H>>1))で導出される位置を含む予測ブロックを予測ブロックcolPbとする。なお、インター予測情報が記憶される階層画像符号化部の符号化情報格納メモリ115および階層画像復号部の符号化情報格納メモリ210のメモリ量を削減するために、輝度の16×16画素ブロック単位で圧縮されたインター予測情報を参照すると規定する場合には、(((xP+(W>>1))>>4)<<4, ((yP+(H>>1))>>4)<<4 )で導出される位置を含む予測ブロックを予測ブロックcolPbとする。
ここで、xPCol、yPColを参照ピクチャcolPic内での予測ブロックcolPbの左上の画素の位置を示すインデックスとする(図23のS2306)。
次に、図21のステップS2103、ステップS2104および後述する図40のステップS7103の時間マージ候補または時間予測動きベクトル候補のインター予測情報の導出処理手順について詳細に説明する。図24は図21のステップS2103、ステップS2104、図40のステップS7103の時間マージ候補または時間予測動きベクトル候補のインター予測情報の導出処理手順を説明するフローチャートである。L0またはL1で、時間マージ候補または時間予測動きベクトル候補の導出対象のリストをLXとし、LXを用いた予測をLX予測とする。以下、断りのない限り、この意味で用いる。時間マージ候補または時間予測動きベクトル候補のL0の導出処理であるステップS2103として呼び出される際には、LXがL0となり、時間マージ候補または時間予測動きベクトル候補のL1の導出処理であるステップS2104として呼び出される際には、LXがL1となる。
予測ブロックcolPbの予測モードPredModeがイントラ予測(MODE_INTRA)か、利用できない場合(ステップS2401のNO、ステップS2402のNO)、時間マージ候補または時間予測動きベクトル候補は存在しないものとする。フラグavailableFlagLXColとフラグpredFlagLXColを共に0とし(ステップS2403)、動きベクトルmvLXColを(0,0)として(ステップS2404)、本時間マージ候補または時間予測動きベクトル候補のインター予測情報の導出処理を終了する。
予測ブロックcolPbが利用できて予測モードPredModeがイントラ予測(MODE_INTRA)でない場合(ステップS2401のYES、ステップS2402のYES)、以下の手順でmvColとrefIdxColとavailableFlagColを導出する。
予測ブロックcolPbのL0予測が利用されているかどうかを示すフラグPredFlagL0[xPCol][yPCol]が0の場合(ステップS2405のYES)、予測ブロックcolPbの予測モードはPred_L1であるので、動きベクトルmvColが予測ブロックcolPbのL1の動きベクトルであるMvL1[xPCol][yPCol]と同じ値に設定され(ステップS2406)、参照インデックスrefIdxColがL1の参照インデックスRefIdxL1[xPCol][yPCol]と同じ値に設定され(ステップS2407)、リストListColがL1に設定される(ステップS2408)。
一方、予測ブロックcolPbのL0予測フラグPredFlagL0[xPCol][yPCol]が0でない場合(図24のステップS2405のNO)、予測ブロックcolPbのL1予測フラグPredFlagL1[xPCol][yPCol]が0かどうかを判定する。予測ブロックcolPbのL1予測フラグPredFlagL1[xPCol][yPCol]が0の場合(ステップS2409のYES)、動きベクトルmvColが予測ブロックcolPbのL0の動きベクトルであるMvL0[xPCol][yPCol]と同じ値に設定され(ステップS2410)、参照インデックスrefIdxColがL0の参照インデックスRefIdxL0[xPCol][yPCol]と同じ値に設定され(ステップS2411)、リストListColがL0に設定される(ステップS2412)。
予測ブロックcolPbのL0予測フラグPredFlagL0[xPCol][yPCol]と予測ブロックcolPbのL1予測フラグPredFlagL1[xPCol][yPCol]が共に0でない場合(ステップS2405のNO、ステップS2409のNO)、予測ブロックcolPbのインター予測モードは双予測(Pred_BI)であるので、L0、L1の2つの動きベクトルから、一方を選択する(ステップS2413)。
図25は予測ブロックcolPbのインター予測モードが双予測(Pred_BI)のときの時間マージ候補または時間予測動きベクトル候補のインター予測情報の導出処理手順を示すフローチャートである。
まず、すべての参照リストに登録されているすべてのピクチャのPOCが現在の符号化または復号対象ピクチャのPOCより小さいかどうかを判定し(ステップS2501)、予測ブロックcolPbのすべての参照リストであるL0及びL1に登録されているすべてのピクチャのPOCが現在の符号化または復号対象ピクチャのPOCより小さい場合で(ステップS2501のYES)、LXがL0、即ち符号化または復号対象ピクチャのL0の動きベクトルの予測動きベクトル候補を導出している場合(ステップS2502のYES)、予測ブロックcolPbのL0の方のインター予測情報を選択し、LXがL1、即ち符号化または復号対象ピクチャのL1の動きベクトルの予測動きベクトル候補を導出している場合(ステップS2502のNO)、予測ブロックcolPbのL1の方のインター予測情報を選択する。一方、予測ブロックcolPbのすべての参照リストL0及びL1に登録されているピクチャのPOCの少なくとも1つが現在の符号化または復号対象ピクチャのPOCより大きい場合で(ステップS2501のNO)、フラグcollocated_from_l0_flagの値が0の場合(ステップS2503のYES)、予測ブロックcolPbのL0の方のインター予測情報を選択し、フラグcollocated_from_l0_flagの値が1の場合(ステップS2503のNO)、予測ブロックcolPbのL1の方のインター予測情報を選択する。
予測ブロックcolPbのL0の方のインター予測情報を選択する場合(ステップのYES、ステップS2503のYES)、動きベクトルmvColがMvL0[xPCol][yPCol]と同じ値に設定され(ステップS2504)、参照インデックスrefIdxColがRefIdxL0[xPCol][yPCol]と同じ値に設定され(ステップS2505)、リストListColがL0に設定される(ステップS2506)。
予測ブロックcolPbのL1の方のインター予測情報を選択する場合(ステップS2502のNO、ステップS2503のNO)、動きベクトルmvColがMvL1[xPCol][yPCol]と同じ値に設定され(ステップS2507)、参照インデックスrefIdxColがRefIdxL1[xPCol][yPCol]と同じ値に設定され(ステップS2508)、リストListColがL1に設定される(ステップS2509)。
図24に戻り、予測ブロックcolPbからインター予測情報が取得できたらフラグavailableFlagLXColとフラグpredFlagLXColを共に1とする(ステップS2414)。
続いて、動きベクトルmvColをスケーリングして時間マージ候補または時間予測動きベクトル候補のLXの動きベクトルmvLXColとする(ステップS2415)。この動きベクトルのスケーリング演算処理手順を図26及び図27を用いて説明する。
図26は図24のステップS2415の動きベクトルのスケーリング演算処理手順を示すフローチャートである。
参照ピクチャcolPicのPOCから、予測ブロックcolPbのリストListColで参照する参照インデックスrefIdxColに対応する参照ピクチャのPOCを減算してピクチャ間距離tdを導出する(ステップS2601)。なお、参照ピクチャcolPicよりも予測ブロックcolPbのリストListColで参照する参照ピクチャのPOCの方が表示順序で前の場合、ピクチャ間距離tdは正の値となり、参照ピクチャcolPicよりも予測ブロックcolPbのリストListColで参照する参照ピクチャのPOCの方が表示順序で後の場合、ピクチャ間距離tdは負の値となる。
td=参照ピクチャcolPicのPOC−予測ブロックcolPbのリストListColで参照する参照ピクチャのPOC
現在の符号化または復号対象ピクチャのPOCから導出対象のLXの参照インデックスrefIdxLXに対応する参照ピクチャのPOCを減算してピクチャ間距離tbを導出する(ステップS2602)。ここで、導出対象のLXの参照インデックスrefIdxLXとは時間マージ候補導出処理の場合は0であり、予測動きベクトル候補導出処理においては、符号化または復号対象予測ブロックのLXの参照インデックスである。なお、現在の符号化または復号対象ピクチャよりも現在の符号化または復号対象ピクチャのリストLXで参照する参照ピクチャの方が表示順序で前の場合、ピクチャ間距離tbは正の値となり、現在の符号化または復号対象ピクチャのリストLXで参照する参照ピクチャの方が表示順序で後の場合、ピクチャ間距離tbは負の値となる。
tb=現在の符号化または復号対象ピクチャのPOC−導出対象のLXの参照インデックスに対応する参照ピクチャのPOC
続いて、ピクチャ間距離tdとtbを比較し(ステップS2603)、ピクチャ間距離tdとtbが等しい場合(ステップS2603のYES)、時間マージ候補または時間予測動きベクトル候補のLXの動きベクトルmvLXColを動きベクトルmvColと同じ値に設定して(ステップS2604)、本スケーリング演算処理を終了する。
mvLXCol=mvCol
一方、ピクチャ間距離tdとtbが等しくない場合(ステップS2603のNO)、次式によりmvColにスケール係数tb/tdを乗じることでスケーリング演算処理を行い(ステップS2605)、スケーリングされた時間マージ候補または時間予測動きベクトル候補のLXの動きベクトルmvLXColを得る。
mvLXCol=tb / td * mvCol
また、図26のステップS2605のスケーリング演算を整数精度の演算で行う場合の例を図27に示す。図27のステップS2606〜ステップS2608の処理が、図26のステップS2605の処理に対応する。
まず、図26のフローチャートと同様に、ピクチャ間距離tdとピクチャ間距離tbを導出する(ステップS2601、ステップS2602)。
続いて、ピクチャ間距離tdとtbを比較し(ステップS2603)、ピクチャ間距離tdとtbが等しい場合(ステップS2603のYES)、図26のフローチャートと同様に、時間マージ候補または時間予測動きベクトル候補のLXの動きベクトルmvLXColを動きベクトルmvColと同じ値に設定して(ステップS2604)、本スケーリング演算処理を終了する。
mvLXCol=mvCol
一方、ピクチャ間距離tdとtbが等しくない場合(ステップS2603のNO)、次式により変数txを導出する(ステップS2606)。
tx = ( 16384 + ( Abs( td ) >>1 ) ) / td
なお、Absは括弧内の引数の値の絶対値を表す。
続いて、次式によりスケール係数distScaleFactor を導出する(ステップS2607)。
distScaleFactor = Clip3( -4096, 4095, ( tb * tx + 32 ) >> 6 )
なお、Clip3は規定された第1の引数の最小値および第2の引数の最大値で第3の引数の値をクリッピングすることを表す。
続いて、次式により、スケーリングされた時間マージ候補または時間予測動きベクトル候補のLXの動きベクトルmvLXColを得る(ステップS2608)。
mvLXCol = Clip3( -32768, 32767, Sign2( distScaleFactor * mvCol ) *
( (Abs( distScaleFactor * mvCol ) + 127 ) >> 8 ) )
なお、Sign2は括弧内の引数の値が0以上のとき1となり、0未満のとき-1となることを表す。
次に、図21のフローチャートに戻り、availableFlagL0ColかavailableFlagL1Colのいずれか一方が1ならavailableFlagColを1に設定し、availableFlagL0ColとavailableFlagL1Colが共に0ならavailableFlagColを0に設定して(ステップS2105)、本時間マージ候補または時間予測動きベクトル候補導出処理を終了する。
次に、図19のステップS104のマージ候補をマージ候補リストに登録する方法について詳細に説明する。図28はマージ候補リストへのマージ候補の登録処理手順を示すフローチャートである。本方式では、発生頻度により優先順位をつけて、優先順位の高いものからマージ候補リストmergeCandListに、マージ候補を登録することで、マージインデックスmerge_idx[x0][y0]の符号量を削減する。優先順位の高い要素をマージ候補リストの前方に配置することで、符号量を削減する。例えば、マージ候補リストmergeCandListの要素が5個の場合、マージ候補リストのインデックス0を「0」、インデックス1を「10」、インデックス2を「110」、インデックス3を「1110」、インデックス4を「11110」とすることで、インデックス0を表す符号量が1ビットとなり、インデックス0に発生頻度が高いと考えられる要素を登録することで、符号量を削減する。具体的には、発生頻度が高いと考えられるマージ候補リストmergeCandListに空間マージ候補A1、B1、B0、A0、B2の順序で追加し、さらに、時間マージ候補Colを追加する。
マージ候補リストmergeCandListはリスト構造を成し、マージ候補リスト内部の所在を示すマージインデックスと、インデックスに対応するマージ候補を要素として格納する記憶領域が設けられている。マージインデックスの数字は0から開始され、マージ候補リストmergeCandListの記憶領域に、マージ候補が格納される。以降の処理では、マージ候補リストmergeCandListに登録されたマージインデックスiのマージ候補となる予測ブロックは、mergeCandList[i]で表すこととし、マージ候補リストmergeCandListとは配列表記をすることで区別することとする。
まず、availableFlagA1が1の場合(図28のS4103のYES)、マージ候補リストmergeCandListの先頭に空間マージ候補A1を登録する(図28のS4104)。
続いて、availableFlagB1が1の場合(図28のS4105のYES)、マージ候補リストmergeCandListの登録されたマージ候補の後に空間マージ候補B1を登録する(図28のS4106)。
続いて、availableFlagB0が1の場合(図28のS4107のYES)、マージ候補リストmergeCandListの直前に登録されたマージ候補の後に空間マージ候補B0を登録する(図28のS4108)。
続いて、availableFlagA0が1の場合(図28のS4109のYES)、マージ候補リストmergeCandListの直前に登録されたマージ候補の後に空間マージ候補A0を登録する(図28のS4110)。
続いて、availableFlagB2が1の場合(図28のS4111のYES)、マージ候補リストmergeCandListの直前に登録されたマージ候補の後に空間マージ候補B2を登録する(図28のS4112)。
続いて、時間マージ候補を導出する場合で、availableFlagColが1の場合(図28のS4115のYES)、マージ候補リストmergeCandListの最後に時間マージ候補Colを登録する(図28のS4116)。
また、左に近接する予測ブロックA1及び上に近接する予測ブロックB1は符号化または復号対象の予測ブロックと一体となる動きになることが多いので、インター予測情報選択部136により選択される頻度が高くなるので、マージ候補A1、B1を他の空間マージ候補や時間マージ候補よりも優先的にマージ候補リストの前方に登録する。
次に、図17の追加マージ候補生成部135および図18の追加マージ候補生成部235で実施される図19のステップS105の処理手順である追加マージ候補の導出方法について詳細に説明する。図29は図19のステップS105の追加マージ候補導出処理手順を説明するフローチャートである。
図17の追加マージ候補生成部135および図18の追加マージ候補生成部235で実施される追加マージ候補導出処理においては、マージ候補リスト内のマージインデックスが0から(maxNumMergeCand-1)の値で指し示される範囲内で、無効なマージ候補が無くなるまで、有効なマージ候補をマージ候補リストに登録するために、スライスタイプに応じたインター予測モードの動きベクトルの値が(0,0)の有効マージ候補を、マージ候補リストに登録する。(図29のステップS5101〜S5121)。
まず、スライスタイプがPスライスの場合(図29のステップS5101のYES)、参照インデックス数を示す変数numRefIdxをL0の参照インデックス数の値に設定する(図29のステップS5102)。一方、スライスタイプがPスライスでない場合(図29のステップS5101のNO)、すなわちスライスタイプがBスライスの場合、参照インデックス数を示す変数numRefIdxをL0の参照インデックス数とL1の参照インデックス数の小さい方の値に設定する(図29のステップS5103)。続いて参照インデックスiを0に設定する(図29のステップS5104)。
続いて、参照インデックスiを変更しながら、スライスタイプに応じた予測モードの動きベクトルの値が(0,0)の追加マージ候補を導出し、マージ候補リストに登録する。(図29のステップS5105〜S5121)。
マージ候補数numMergeCandが最大マージ候補数maxNumMergeCandより小さい場合(図29のステップS5106のYES)、ステップS5107に進み、マージ候補数numMergeCandが最大マージ候補数maxNumMergeCandより小さくない場合(図29のステップS5106のNO)、本追加マージ候補導出処理を終了する。
続いて、スライスタイプがPスライスの場合(図29のステップS5107のYES)、追加マージ候補の動きベクトルmvL0Zero、mvL1Zeroを(0,0)に設定する(図29のステップS5108)。続いて、参照インデックスiが変数numRefIdxより小さい場合(図29のステップS5109のYES)、追加マージ候補の参照インデックスrefIdxL0Zeroを参照インデックスiの値に設定し、refIdxL1Zeroを−1に設定する(図29のステップS5110)。参照インデックスiが変数numRefIdxより小さくない場合(図29のステップS5109のNO)、追加マージ候補の参照インデックスrefIdxL0Zeroを0に設定し、refIdxL1Zeroを−1にする(図29のステップS5111)。続いて、追加マージ候補のフラグpredFlagL0Zeroを1に設定し、predFlagL1Zeroを0に設定して(図29のステップS5112)、ステップS5118に進む。
一方、スライスタイプがPスライスでない場合(図29のステップS5107のNO)、すなわちスライスタイプがBスライスの場合、追加マージ候補の動きベクトルmvL0Zero、mvL1Zeroを(0,0)に設定する(図29のステップS5113)。続いて、参照インデックスiが変数numRefIdxより小さい場合(図29のステップS5114のYES)、追加マージ候補の参照インデックスrefIdxL0Zero、refIdxL1Zeroを参照インデックスiの値に設定する(図29のステップS5115)。参照インデックスiが変数numRefIdxより小さくない場合(図29のステップS5114のNO)、追加マージ候補の参照インデックスrefIdxL0Zero、refIdxL1Zeroを0に設定する(図29のステップS5116)。続いて、追加マージ候補のフラグpredFlagL0Zero、predFlagL1Zeroを1に設定して(図29のステップS5117)、ステップS5118に進む。
続いて、追加マージ候補をマージ候補リストmergeCandListのマージインデックスがnumMergeCandと同じ値で示される位置に登録し(図29のステップS5118)、マージ候補数numMergeCandに1を加算する(図29のステップS5119)。続いて、インデックスiに1を加算し(図29のステップS5120)、ステップS5121に進む。
以上のステップS5106〜ステップS5120の処理をそれぞれの参照インデックスi毎にそれぞれ繰り返す(図29のステップS5105〜ステップS5121)。
次に、階層画像符号化部のインター予測情報導出部104のインター予測情報選択部136について説明する。図17において、階層画像符号化部のインター予測情報導出部104のインター予測情報選択部136では、マージ候補リストに登録されているマージインデックスが0から(numMergeCand-1)の範囲内で指し示される有効なマージ候補の中から、マージ候補を選択し、選択されたマージ候補の各予測ブロックのL0予測、及びL1予測を利用するかどうかを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]、参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]、動きベクトルmvL0[xP][yP], mvL1[xP][yP]等のインター予測情報をインター予測部105に供給するとともに、選択されたマージ候補を特定するマージインデックスを予測方法決定部107に供給する。本実施例においては、マージ候補リスト内のマージインデックスが0から(maxNumMergeCand-1)の値で指し示される範囲内で、無効なマージ候補は存在せず、すべて有効なマージ候補である。
マージ候補の選択においては、予測方法決定部107と同様の方法を用いることができる。それぞれのマージ候補ごとに符号化情報及び残差信号の符号量と予測画像信号と画像信号との間の符号化歪を導出し、最も少ない発生符号量と符号化歪となるマージ候補が決定される。それぞれのマージ候補毎にマージモードの符号化情報であるマージインデックスのシンタックス要素merge_idxのエントロピー符号化を行い、符号化情報の符号量を導出する。さらに、それぞれのマージ候補毎にインター予測部105と同様の方法で各マージ候補のインター予測情報に応じてインター予測(動き補償予測)した予測画像信号と、画像メモリ101から供給される符号化対象の画像信号との予測残差信号を符号化した予測残差信号の符号量を導出する。符号化情報、即ちマージインデックスの符号量と予測残差信号の符号量とが加算された総発生符号量を導出し評価値とする。
また、こうした予測残差信号を符号化後に、歪量評価の為に復号し、符号化により生じる元の画像信号との誤差を表す比率として符号化歪が導出される。これら総発生符号量と符号化歪とをマージ候補毎に比較することで、少ない発生符号量と符号化歪となる符号化情報が決定される。決定された符号化情報に対応するマージインデックスが、予測ブロック単位の第2のシンタックスパターンで表されるフラグmerge_idxとして符号化される。尚、ここで導出される発生符号量は、符号化過程をシミュレートしたものであることが望ましいが、簡便に近似したり、概算することも可能である。
次に、階層画像復号部のインター予測情報導出部205のインター予測情報選択部236について説明する。図18において、階層画像復号部のインター予測情報導出部205のインター予測情報選択部236では、マージ候補リストmergeCandListに登録されているマージ候補の中から、第2符号化ビット列復号部202から供給されたマージインデックスmergeIdxに対応するマージ候補を選択し、選択されたマージ候補のL0予測、及びL1予測を利用するかどうかを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]、L0、L1の参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]、L0、L1の動きベクトルmvL0[xP][yP], mvL1[xP][yP]等のインター予測情報をインター予測部206に供給するとともに、符号化情報格納メモリ210に格納する。ただし、本実施例においては、マージ候補リスト内のマージインデックスが0から(maxNumMergeCand-1)の値で指し示される範囲内で、無効なマージ候補は存在せず、すべて有効なマージ候補である。
次に、本実施の形態に係る動きベクトルの予測方法について説明する。本実施の形態に係る動きベクトルの予測方法は、図1の動画像符号化装置の階層画像符号化部の差分動きベクトル算出部103及び図2の動画像復号装置の階層画像復号部の動きベクトル算出部204において実施される。
動きベクトルの予測方法は、符号化ブロックを構成する予測ブロック単位に、符号化及び復号の処理の何れでも実施される。予測ブロックの予測モードPredModeがインター予測(MODE_INTER)で、マージモードでない場合に、符号化側では、符号化対象の動きベクトルから符号化する差分動きベクトルを導出する時に用いる符号化済みの動きベクトルを利用して予測動きベクトルを導出する際に実施され、復号側では、復号対象の動きベクトルを導出する時に用いる復号済みの動きベクトルを利用して予測動きベクトルを導出する際に実施される。
動きベクトルの予測方法は、スライスタイプがPスライス(片方向予測スライス)或いはBスライス(両方向予測スライス)の場合で、更に、スライスの中の予測ブロックの予測モードがインター予測(MODE_INTER)で、マージモードでない差分動きベクトルを符号化または復号する予測ブロックに適用される。
動きベクトルの予測は符号化側の動画像符号化装置の階層画像符号化部と復号側の動画像復号装置の階層画像復号部で共通の規定の方法により、予測動きベクトル候補を導出し、予測動きベクトル候補リストに登録する。図9、図10、図11及び図12を用いて説明した左に近接する予測ブロックA1、左下に近接する予測ブロックA0から左側の予測ブロック候補を導出し、上に近接する予測ブロックB1、右上に近接する予測ブロックB0、左上に近接する予測ブロックB2から上側の予測ブロック候補を導出する。さらに、図13または図14を用いて説明した参照ピクチャcopPic内の同一位置あるいはその付近に存在する予測ブロックcolPb(T0、T1のいずれか)の予測ブロックから時間予測動きベクトル候補を導出する。
本実施の形態に係る動きベクトルの予測方法を図面を用いて説明する。図30は、図1の動画像符号化装置の階層画像符号化部の差分動きベクトル算出部103の詳細な構成を示す図である。また、図31は、本実施の形態に係る図2の動画像復号装置の階層画像復号部の動きベクトル算出部204の詳細な構成を示す図である。図30及び図31の太枠線で囲まれる部分はそれぞれ、差分動きベクトル算出部103及び動きベクトル算出部204を示している。
更に、それらの内部の太点線で囲まれる部分はそれぞれの動きベクトルの予測方法の動画像符号化装置の階層画像符号化部の差分動きベクトル算出部103の予測動きベクトル候補リスト構築部140及び動画像復号装置の階層画像復号部の動きベクトル算出部204の予測動きベクトル候補リスト構築部240を示しており、本実施の形態の動画像符号化装置と対応する動画像復号装置にも同様に設置され、符号化と復号で矛盾しない同一の導出結果を得られるようにしている。以下、この図を用いて、符号化における動きベクトルの予測方法を説明する。
動画像符号化装置の階層画像符号化部の差分動きベクトル算出部103は、予測動きベクトル候補生成部141、予測動きベクトル候補登録部142、予測動きベクトル冗長候補削除部143、予測動きベクトル候補数制限部144、予測動きベクトル候補符号量算出部145、予測動きベクトル選択部146、および動きベクトル減算部147を含む。
動画像復号装置の階層画像復号部の動きベクトル算出部204は、予測動きベクトル候補生成部241、予測動きベクトル候補登録部242、予測動きベクトル冗長候補削除部243、予測動きベクトル候補数制限部244、予測動きベクトル選択部245及び動きベクトル加算部246を含む。
この動画像符号化装置の階層画像符号化部の差分動きベクトル算出部103での差分動きベクトル導出処理は、符号化対象予測ブロックのインター予測方法で用いる動きベクトルの予測動きベクトルの候補、および差分動きベクトルをL0、L1毎にそれぞれ導出する。さらに、動画像復号装置の階層画像復号部の動きベクトル算出部204での動きベクトル導出処理も、復号対象予測ブロックのインター予測で用いる予測動きベクトルの候補、動きベクトルをL0,L1毎にそれぞれ導出する。
具体的には符号化または復号対象ブロックの予測モードPredModeがインター予測(MODE_INTER)で、符号化または復号対象ブロックのインター予測モードがL0予測(Pred_L0)の場合、L0予測が行われるので、L0の予測動きベクトル候補を導出して、L0の予測動きベクトルリストmvpListL0に登録する。符号化または復号対象ブロックのインター予測モード(Pred_L1)がL1予測の場合、L1予測が行われるので、L1の予測動きベクトル候補を導出して、L1の予測動きベクトルリストmvpListL1に登録する。符号化対象ブロックのインター予測モードが双予測(Pred_BI)の場合、L0予測とL1予測が共に行われるので、L0の予測動きベクトル候補を導出して、L0の予測動きベクトルリストmvpListL0に登録するとともに、L1の予測動きベクトル候補を導出して、L1の予測動きベクトルリストmvpListL1に登録する。符号化側では、導出した予測動きベクトルを用いて、差分動きベクトルを導出し、復号側では導出した予測動きベクトルを用いて、動きベクトルを導出する。
L0、L1それぞれについて、符号化側及び復号側では予測動きベクトル導出処理を行い、符号化側では差分動きベクトル導出処理、復号側では動きベクトル導出処理を行うが、L0、L1ともに共通の処理となる。したがって、以下の説明においてはL0、L1を共通のLXとして表す。L0の予測動きベクトル導出処理、差分動きベクトル導出処理、および動きベクトル導出処理ではLXがL0であり、L1の予測動きベクトル導出処理、差分動きベクトル導出処理及び動きベクトル導出処理ではLXがL1である。また、LXの予測動きベクトル導出処理、差分動きベクトル導出処理、または動きベクトル導出処理中に、LXではなく、もう一方のリストの情報を参照する場合、もう一方のリストをLYとして表す。つまり、L0の予測動きベクトル導出処理、差分動きベクトル導出処理、または動きベクトル導出処理中に、もう一方のリストの情報を参照する場合、もう一方のリストLYはL1であり、L1の予測動きベクトル導出処理、差分動きベクトル導出処理、または動きベクトル導出処理中に、もう一方のリストの情報を参照する場合、もう一方のリストLYはL0である。
動画像符号化装置の階層画像符号化部の差分動きベクトル算出部103、動画像復号装置の階層画像復号部の動きベクトル算出部204の処理手順について、それぞれ図32、図33のフローチャートを用いて説明する。図32は動画像符号化装置の階層画像符号化部による差分動きベクトル導出処理手順を示すフローチャートであり、図33は動画像復号装置の階層画像復号部による動きベクトル導出処理手順を示すフローチャートである。
図32を参照して符号化側の差分動きベクトル導出処理手順を説明する。符号化側では、差分動きベクトル算出部103で、符号化対象ブロックで選択されたインター予測で用いる動きベクトルの差分動きベクトルをL0、L1毎にそれぞれ導出する(図32のS301〜S306)。具体的には図3の動きベクトル検出部102から供給される予測ブロックサイズ、インター予測モード、参照インデックス毎に、符号化対象ブロックの予測モードPredModeがインター予測(MODE_INTER)で、インター予測モードがL0予測(Pred_L0)の場合、図3の動きベクトル検出部102から供給されるL0の参照インデックスに対応したL0予測動きベクトル候補で構成されるL0の予測動きベクトルリストmvpListL0を導出して、予測動きベクトルmvpL0を選択し、L0の動きベクトルmvL0の差分動きベクトルmvdL0を導出する。符号化対象ブロックのインター予測モードがL1予測(Pred_L1)の場合、図3の動きベクトル検出部102から供給されるL1の参照インデックスに対応したL1の予測動きベクトル候補で構成されるL1の予測動きベクトルリストmvpListL1を導出して、予測動きベクトルmvpL1を選択し、L1の動きベクトルmvL1の差分動きベクトルmvdL1を導出する。符号化対象ブロックのインター予測モードが双予測(Pred_BI)の場合、L0予測とL1予測が共に行われ、図3の動きベクトル検出部102から供給されるL0の参照インデックスに対応したL0予測動きベクトル候補で構成されるL0の予測動きベクトルリストmvpListL0を導出して、L0の予測動きベクトルmvpL0を選択し、L0の動きベクトルmvL0の差分動きベクトルmvdL0を導出するとともに、図3の動きベクトル検出部102から供給されるL1の参照インデックスに対応したL1の予測動きベクトル候補で構成されるL1の予測動きベクトルリストmvpListL1を導出して、L1の予測動きベクトルmvpL1を導出し、L1の動きベクトルmvL1の差分動きベクトルmvdL1をそれぞれ導出する。
LX(LXはL0またはL1)の差分動きベクトルmvdLXを導出する場合(図32のS302のYES)、LXの予測動きベクトルの候補を導出してLXの予測動きベクトルリストmvpListLXを構築する(図32のS303)。差分動きベクトル算出部103の中の予測動きベクトル候補生成部141で複数の予測動きベクトルの候補を導出し、予測動きベクトル候補登録部142で予測動きベクトルリストmvpListLXに導出した予測動きベクトルの候補を登録し、予測動きベクトル冗長候補削除部143で不要な予測動きベクトルの候補を削除し、予測動きベクトル候補数制限部144で予測動きベクトルリストmvpListLXに登録されているLXの予測動きベクトル候補数numMVPCandLXが設定され、予測動きベクトルリストmvpListLXに登録されているLXの予測動きベクトル候補数numMVPCandLXを規定された2に制限することにより、予測動きベクトルリストmvpListLXを構築する。構築されたLXの予測動きベクトルリストmvpListLXは予測動きベクトル候補符号量算出部145、及び予測動きベクトル選択部146に供給される。ステップS303の詳細な処理手順については図34のフローチャートを用いて後述する。
続いて、予測動きベクトル候補符号量算出部145、及び予測動きベクトル選択部146により、LXの予測動きベクトルリストmvpListLXからLXの予測動きベクトルmvpLXを選択する(図32のS304)。まず、予測動きベクトル候補符号量算出部145で、動きベクトル検出部102で導出されたLXの動きベクトルmvLXと、予測動きベクトルリストmvpListLXの中に格納された各予測動きベクトルの候補mvpListLX[i]との差分であるそれぞれの差分動きベクトルを導出し、それら差分動きベクトルを符号化したときの符号量を予測動きベクトルリストmvpListLXの要素ごとに導出し、予測動きベクトル選択部146で、予測動きベクトルリストmvpListLXに登録された各要素の中で、予測動きベクトルの候補毎の符号量が最小となる予測動きベクトルの候補mvpListLX[i]を予測動きベクトルmvpLXとして選択する。選択された予測動きベクトルmvpLXを動きベクトル減算部147に供給する。さらに、その選択された予測動きベクトルmvpLXに対応する予測動きベクトルリスト中のインデックスiをLXの予測動きベクトルインデックスmvpIdxLXとして出力する。
続いて、動きベクトル減算部147で、動きベクトル検出部102で導出されたLXの動きベクトルmvLXから予測動きベクトル選択部146で選択されたLXの予測動きベクトルmvpLXを減算することによりLXの差分動きベクトルmvdLXを導出し、出力する(図32のS305)。
mvdLX = mvLX - mvpLX
次に、図33を参照して復号側の動きベクトル導出処理手順を説明する。復号側では、動きベクトル算出部204で、インター予測で用いる動きベクトルをL0,L1毎にそれぞれ導出する(図33のS401〜S406)。具体的には、図4の第2符号化ビット列復号部202から供給される予測ブロックサイズのインター予測モードの参照インデックスに対応した予測動きベクトル候補を導出する。復号対象ブロックの予測モードPredModeがインター予測(MODE_INTER)で、復号対象ブロックのインター予測モードがL0予測(Pred_L0)の場合、図4の第2符号化ビット列復号部202から供給されるL0の参照インデックスに対応したL0の予測動きベクトル候補で構成されるL0の予測動きベクトルリストmvpListL0を導出して、予測動きベクトルmvpL0を選択し、L0の動きベクトルmvL0を導出する。復号対象ブロックのインター予測モードがL1予測(Pred_L1)の場合、図4の第2符号化ビット列復号部202から供給されるL1の参照インデックスに対応したL1の予測動きベクトル候補で構成されるL1の予測動きベクトルリストmvpListL1を導出して、予測動きベクトルmvpL1を選択し、L1の動きベクトルmvL1を導出する。
復号対象ブロックのインター予測モードが双予測(Pred_BI)の場合、L0予測とL1予測が共に行われ、図4の第2符号化ビット列復号部202から供給されるL0の参照インデックスに対応したL0予測動きベクトル候補で構成されるL0の予測動きベクトルリストmvpListL0を導出して、L0の予測動きベクトルmvpL0を選択し、L0の動きベクトルmvL0を導出するとともに、図4の第2符号化ビット列復号部202から供給されるL1の参照インデックスに対応したL1の予測動きベクトル候補で構成されるL1の予測動きベクトルリストmvpListL1を導出して、L1の予測動きベクトルmvpL1を導出し、L1の動きベクトルmvL1をそれぞれ導出する。
LX(LXはL0またはL1)の動きベクトルmvLXを導出する場合(図33のS402のYES)、LXの予測動きベクトルの候補を導出してLXの予測動きベクトルリストmvpListLXを構築する(図33のS403)。動きベクトル算出部204の中の予測動きベクトル候補生成部241で複数の予測動きベクトルの候補を導出し、予測動きベクトル候補登録部242で予測動きベクトルリストmvpListLXに導出した予測動きベクトルの候補を登録し、予測動きベクトル冗長候補削除部243で不要な予測動きベクトルの候補を削除し、予測動きベクトル候補数制限部244で予測動きベクトルリストmvpListLXに登録されているLXの予測動きベクトル候補数numMVPCandLXが設定され、予測動きベクトルリストmvpListLXに登録されているLXの予測動きベクトル候補数numMVPCandLXを規定された2に制限することにより、予測動きベクトルリストmvpListLXを構築する。構築されたLXの予測動きベクトルリストmvpListLXは予測動きベクトル選択部245に供給される。ステップS403の詳細な処理手順については図34のフローチャートを用いて後述する。
続いて、予測動きベクトル選択部245で予測動きベクトルリストmvpListLXから第2符号化ビット列復号部202にて復号されたLXの予測動きベクトルのインデックスmvpIdxLXに対応するLXの予測動きベクトルの候補mvpListLX[mvpIdxLX]を選択されたLX予測動きベクトルmvpLXとして取り出し、動きベクトル加算部246に供給する(図33のS404)。
続いて、動きベクトル加算部246で第2符号化ビット列復号部202にて復号されて供給されるLXの差分動きベクトルmvdLXとLXの予測動きベクトルmvpLXを加算することによりLXの動きベクトルmvLXを導出し、出力する(図33のS405)。
mvLX = mvpLX + mvdLX
次に、図32のステップS303、及び図33のステップS403で共通の予測動きベクトルの候補の導出及び予測動きベクトルリスト構築処理手順を図34のフローチャートを用いて詳細に説明する。
図34は動画像符号化装置の階層画像符号化部の差分動きベクトル算出部103の予測動きベクトル候補リスト構築部140及び動画像復号装置の階層画像復号部の動きベクトル算出部204の予測動きベクトル候補リスト構築部240とで共通する機能を有する予測動きベクトル候補生成部141及び241、予測動きベクトル候補登録部142及び242、ならびに予測動きベクトル冗長候補削除部143及び243、予測動きベクトル候補数制限部144及び244で実施される予測動きベクトル候補の導出処理及び予測動きベクトル候補リストの構築処理手順を表すフローチャートである。
予測動きベクトル候補生成部141及び241はL0、L1毎に、空間的な予測動きベクトルmvLXA及びmvLXB、時間的な予測動きベクトルmvLXColを導出する。この予測動きベクトル候補の導出に際しては、符号化情報格納メモリ115に格納されている符号化済みの予測ブロックの予測モード、参照リスト毎の参照インデックス、参照ピクチャのPOC、動きベクトル等の符号化情報を用いる。予測動きベクトル候補生成部141及び241は左側に近接する予測ブロックグループ(符号化対象の予測ブロックと同一ピクチャ内でその予測ブロックの左側に近接する予測ブロックグループ:図7のA0,A1)から1つの予測動きベクトルの候補を導出し、左側に近接する予測ブロックの予測動きベクトル候補が利用できるかどうかを示すフラグavailableFlagLXA、及び動きベクトルmvLXAを予測動きベクトル候補登録部142及び242に供給する(図34のS501)。なお、L0のときXは0、L1のときXは1とする(以下同様)。続いて、予測動きベクトル候補生成部141及び241は上側に近接する予測ブロックグループ(符号化対象の予測ブロックと同一ピクチャ内でその予測ブロックの上側に近接する予測ブロックグループ:図7のB0,B1,B2)から1つの予測動きベクトルの候補を導出し、上側に近接する予測ブロックの予測動きベクトル候補が利用できるかどうかを示すフラグavailableFlagLXB、及び動きベクトルmvLXBを予測動きベクトル候補登録部142及び242に供給する。(図34のS502)。図34のステップS501とS502の処理は参照する予測ブロックの位置と数が異なる点以外は共通であり、予測ブロックの予測動きベクトル候補が利用できるかどうかを示すフラグavailableFlagLXN、及び動きベクトルmvLXN、参照インデックスrefIdxN、ListN(NはAまたはB、以下同様)を導出する共通の導出処理手順を図35〜図39のフローチャートを用いて後ほど詳細に説明する。
続いて、本実施の形態の動画像符号化装置の階層画像符号化部の差分動きベクトル算出部103の予測動きベクトル候補生成部141及び動画像復号装置の階層画像復号部の動きベクトル算出部204の予測動きベクトル候補生成部241では、インター参照ピクチャまたは階層間参照ピクチャのインター予測情報を参照する時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを切り替える。各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flagの値が1の場合、すなわち時間予測動きベクトル候補を生成する場合(図34のS503のYES)、予測動きベクトル候補生成部141及び241はインター参照ピクチャの予測ブロックグループ(図13のT0,T1)または階層間参照ピクチャの予測ブロックグループ(図14のT0,T1)から1つの予測動きベクトルの候補を導出し、時間予測動きベクトル候補が利用できるかどうかを示すフラグavailableFlagLXCol、及び動きベクトルmvLXColを予測動きベクトル候補登録部142及び242に供給する。(図34のS504)。このステップS504の導出処理手順を図40のフローチャートを用いて後ほど詳細に説明する。一方、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flagの値が1でない場合(値が0の場合)、すなわち時間予測動きベクトル候補を生成しない場合(図34のS503のNO)、フラグavailableFlagLXColの値は0とする。
続いて、予測動きベクトル候補登録部142及び242は予測動きベクトルリストmvpListLXを作成し、供給されるLXのそれぞれの空間予測動きベクトルの候補mvLXA, mvLXB, 時間予測動きベクトルの候補mvLXColを予測動きベクトルリストmvpListLXに登録する(図34のS507)。このステップS507の登録処理手順を図41のフローチャートを用いて後ほど詳細に説明する。
続いて、予測動きベクトル冗長候補削除部143及び243は予測動きベクトルリストmvpListLX内で、複数の動きベクトルの候補が同じ値または近い値を持っている場合に、冗長な動きベクトルの候補と判断し、最も小さい順序、即ち最も小さいインデックスiの動きベクトルの候補を除いて冗長な動きベクトルの候補を取り除く(図34のS508)。このステップS508の削除処理手順を図42のフローチャートを用いて後ほど詳細に説明する。
続いて、予測動きベクトル候補数制限部144及び244は予測動きベクトルリストmvpListLX内に追加された要素の数をカウントし、LXの予測動きベクトル候補数numMVPCandLXをカウントされた要素数に設定し、予測動きベクトルリストmvpListLXに登録されているLXの予測動きベクトル候補数numMVPCandLXを規定された2に制限する(図34のS509)。このステップS509の制限処理手順を図43のフローチャートを用いて後ほど詳細に説明する。
次に、図34のステップS501、S502の左側または上側に近接する予測ブロックから予測動きベクトルの候補をそれぞれ導出する手順について詳細に説明する。
図7、図8、図9、図10示されるように、同一ピクチャ内の符号化ブロック内部をインター予測(動き補償予測)する為に定義される予測ブロック(図7、図8、図9、図10中の処理対象の予測ブロック)に近接する周囲の予測ブロックから予測動きベクトルの候補を導出する。
予測動きベクトルの候補は、処理対象の予測ブロックの左側に近接する予測ブロックAk(k=0,1)、すなわちA0、A1から構成される予測ブロックグループA、上に近接する予測ブロックBk(k=0,1,2)、すなわちB0、B1、B2から構成される予測ブロックグループBからそれぞれ予測動きベクトルの候補を選出する。
次に、図34のステップS501およびS502の処理手順である左側および上側に近接する予測ブロックグループNからの予測動きベクトルの候補の導出方法について説明する。図35は図34のステップS501およびS502の空間予測動きベクトル候補導出処理手順を示すフローチャートである。添え字Xには参照リストを表す0若しくは1、Nには近接する予測ブロックグループの領域を表すA(左側)またはB(上側)が入る。
左側の予測ブロックから予測動きベクトルの候補を導出するには(図34のS501)、図35でNがAとして符号化または復号対象の予測ブロックの左側に近接するA0、A1の予測ブロックから予測動きベクトルの候補を、上側の予測ブロックから予測動きベクトルの候補を導出するには(図34のS502)、図35でNがBとして上側に近接するB0、B1、B2予測ブロックから予測動きベクトルの候補を、それぞれ以下の手順で導出する。
まず、符号化または復号対象の予測ブロックに近接する予測ブロックを特定し、それぞれの予測ブロックNk(k=0,1,2、ただし2は上側の予測ブロックグループのみ)が利用できる場合は符号化情報格納メモリ115または符号化情報格納メモリ210に格納されている符号化情報を取得する。ここで取得する近接する予測ブロックNkの符号化情報は、予測モードPredMode、LXを利用するかどうかを示すフラグpredFlagLX [xNk][yNk]、LXの参照インデックスrefIdxLX [xNk][yNk]、LXの動きベクトルmvLX [xNk][yNk]である。符号化または復号対象の予測ブロックの左側に近接する予測ブロックグループ(N=A)の場合(図35のS6101のYES)、左下に近接する予測ブロックA0、左に近接する予測ブロックA1を特定して符号化情報を取得し(図35のS6102、S6103)、符号化または復号対象の予測ブロックの上側に近接する予測ブロックグループ(N=B)の場合(図35のS6101のNO)、右上に近接する予測ブロックB0、上に近接する予測ブロックB1、左上に近接する予測ブロックB2を特定して符号化情報を取得する(図35のS6104、S6105、S6106)。なお、近接する予測ブロックNkが符号化または復号対象予測ブロックを含むスライスの内側に位置する場合は利用でき、外側に位置する場合は利用できない。
次に、予測ブロックグループNから予測動きベクトルが選出されるか否かを示すフラグavailableFlagLXNを0、予測ブロックグループNを代表する動きベクトルmvLXNを(0,0)に設定する(図35のS6107)。
続いて、下記の条件判定1または条件判定2に合致する予測動きベクトル候補を導出する(図35のS6108)。
条件判定1:符号化または復号対象の予測ブロックの予測動きベクトル導出対象のLXの動きベクトルと同じ参照リストLXで、同じ参照インデックス、すなわち同じ参照ピクチャを用いた予測が近接する予測ブロックでも行われている。
条件判定2:符号化または復号対象の予測ブロックの予測動きベクトル導出対象のLXの動きベクトルとは反対の参照リストLY(Y=!X:現在導出対象としている動きベクトルの参照リストがL0のとき、反対の参照リストはL1、現在動きベクトルの導出対象としている参照リストがL1のとき、反対の参照リストはL0)であるが、同じ参照ピクチャを用いた予測が近接する予測ブロックで行われている。
予測ブロックグループN(NはAまたはB)の近接する予測ブロックN0、N1、N2(N2は上側に近接する予測ブロックグループBのみ)の中で、符号化または復号対象予測ブロックの予測動きベクトルの予測動きベクトル導出対象のLXの動きベクトルと同じ参照ピクチャの動きベクトルを持つ予測ブロックを探してその動きベクトルを予測動きベクトル候補とする。
図36は図35のステップS6108の空間予測動きベクトル候補導出処理手順を示すフローチャートである。近接する予測ブロックNk(k=0,1,2、ただし、2は上側に近接する予測ブロックグループのみ)に対して、kが0,1,2の順番にそれぞれ以下の処理を行う(図36のS6201〜S6207)。Nが左側に近接する予測ブロックグループを示すAの場合下から上にA0,A1の順序で、Nが上側に近接する予測ブロックグループを示すBの場合、右から左にB0,B1,B2の順序で、それぞれ以下の処理を行う。
近接する予測ブロックNkが利用でき、予測ブロックNkの予測モードPredModeがイントラ(MODE_INTRA)でない場合(図36のS6202のYES)、前述の条件判定1の条件判定を行う(図36のS6203)。近接する予測ブロックNkのLXを利用するかどうかを示すフラグpredFlagLX [xNk][yNk]が1、即ち近接する予測ブロックNkが導出対象と同じLXの動きベクトルを用いてインター予測されており、近接する予測ブロックNkのLXの参照インデックスrefIdxLX[xNk][yNk]と処理対象の予測ブロックのインデックスrefIdxLXが同じ、即ち近接する予測ブロックNkがLX予測で同じ参照ピクチャを用いてインター予測されている場合(図36のS6203のYES)、ステップS6204に進み、そうでない場合(図36のS6203のNO)、ステップS6205の条件判定を行う。
ステップS6203がYESの場合、フラグavailableFlagLXNが1に設定され、予測ブロックグループNの予測動きベクトルmvLXNが近接する予測ブロックNkのLXの動きベクトルmvLX[xNk][yNk]と同じ値に設定され、予測ブロックグループNの参照インデックスrefIdxNが近接する予測ブロックNkのLXの参照インデックスrefIdxLX[xNk][yNk]と同じ値に設定され、予測ブロックグループNの参照リストListNがLXに設定され(図36のS6204)、本予測動きベクトル候補導出処理を終了する。
一方、ステップS6203がNOの場合、前述の条件判定2の条件判定を行う(図36のS6205)。近接する予測ブロックNkのLYを利用するかどうかを示すフラグpredFlagLYが1、即ち近接する予測ブロックNkが導出対象と異なるLYの動きベクトルを用いてインター予測されており、近接する予測ブロックNkの現在対象としている参照リストLXと反対の参照リストLYの参照ピクチャのPOCと処理対象の予測ブロックのLXの参照ピクチャのPOCが同じ、即ち近接する予測ブロックNkがLY予測で同じ参照ピクチャを用いてインター予測されている場合(図36のS6205のYES)、ステップS6206に進み、フラグavailableFlagLXNが1に設定され、予測ブロックグループNの予測動きベクトルmvLXNが近接する予測ブロックNkのLYの動きベクトルmvLY[xNk][yNk]と同じ値に設定され、予測ブロックグループNの参照インデックスrefIdxNが近接する予測ブロックNkのLYの参照インデックスrefIdxLY[xNk][yNk]と同じ値に設定され、予測ブロックグループNの参照リストListNがLYに設定され(図36のS6206)、本予測動きベクトル候補導出処理を終了する。
これらの条件に合致しない場合、即ちステップS6203のNO,またはステップS6205のNOの場合、kを1増加し、次の近接する予測ブロックの処理(図36のS6201〜S6207)を行い、availableFlagLXNが1になるか、近接する予測ブロックA1またはB2の処理が終わるまで繰り返す。
続いて、図35のフローチャートに戻り、availableFlagLXNが0のとき(図35のS6109のYES)、即ちステップS6108で予測動きベクトルの候補が導出できなかった場合、下記の条件判定3または条件判定4に合致する予測動きベクトル候補を導出する(図35のS6110)。
条件判定3:符号化または復号対象の予測ブロックの予測動きベクトル導出対象のLXの動きベクトルと同じ参照リストLXで、異なる参照ピクチャを用いた予測が近接する予測ブロックで行われている。
条件判定4:符号化または復号対象の予測ブロックの予測動きベクトル導出対象のLXの動きベクトルとは異なる参照リストLYで、異なる参照ピクチャを用いた予測が近接する予測ブロックで行われている。
予測ブロックグループN(NはAまたはB)の近接する予測ブロックN0、N1、N2(N2は上側に近接する予測ブロックグループBのみ)の中で、符号化または復号対象予測ブロックの予測動きベクトルの予測動きベクトル導出対象のLXの動きベクトルと異なる参照ピクチャの動きベクトルを持つ予測ブロックを探してその動きベクトルを予測動きベクトル候補とする。
図37は図35ステップS6110の空間予測動きベクトル候補導出処理手順を示すフローチャートである。近接する予測ブロックNk(k=0,1,2、ただし、2は上側に近接する予測ブロックグループのみ)に対して、kが0,1,2の順番にそれぞれ以下の処理を行う(図37のS6301〜S6307)。NがAの場合下から上にA0,A1の順序で、NがBの場合、右から左にB0,B1,B2の順序で、それぞれ以下の処理を行う。
近接する予測ブロックNkが利用でき、予測ブロックNkの予測モードPredModeがイントラ(MODE_INTRA)でない場合(図37のS6302のYES)、前述の条件判定3の条件判定を行う(図37のS6303)。近接する予測ブロックNkのLXを利用するかどうかを示すフラグpredFlagLX [xNk][yNk]が1、即ち近接する予測ブロックNkが導出対象と同じLXの動きベクトルを用いてインター予測されている場合、ステップS6304に進み、そうでない場合(図37のS6303のNO)、ステップS6305の条件判定を行う。
ステップS6303がYESの場合、フラグavailableFlagLXNが1に設定され、予測ブロックグループNのmvLXNが近接する予測ブロックNkのLXの動きベクトルmvLX[xNk][yNk]と同じ値に設定され、予測ブロックグループNの参照インデックスrefIdxNが近接する予測ブロックNkのLXの参照インデックスrefIdxLX[xNk][yNk]と同じ値に設定され、予測ブロックグループNの参照リストListNがLXに設定され(図37のS6304)、ステップS6308に進む。
ステップS6303がNOの場合、前述の条件判定4の条件判定を行う(図37のS6305)。近接する予測ブロックNkのLYを利用するかどうかを示すフラグpredFlagLYが1、即ち近接する予測ブロックNkが導出対象と異なるLYの動きベクトルを用いてインター予測されている場合(図37のS6305のYES)、フラグavailableFlagLXNが1に設定され、予測ブロックグループNの予測動きベクトルmvLXNが近接する予測ブロックNkのLYの動きベクトルmvLY[xNk][yNk]と同じ値に設定され、予測ブロックグループNの予測動きベクトルmvLXNが近接する予測ブロックNkのLYの動きベクトルmvLY[xNk][yNk]と同じ値に設定され、予測ブロックグループNの参照インデックスrefIdxNが近接する予測ブロックNkのLYの参照インデックスrefIdxLY[xNk][yNk]と同じ値に設定され、予測ブロックグループNの参照リストListNがLYに設定され(図37のS6306)、ステップS6308に進む。
一方、これらの条件に合致しない場合(図37のS6303のNO,またはS6305のNOの場合)、kを1増加し、次の近接する予測ブロックの処理(図37のS6301〜S6307)を行い、availableFlagLXNが1になるか、近接する予測ブロックA1またはB2の処理が終わるまで繰り返し、ステップS6308に進む。
続いて、availableFlagLXNが1のとき(図37のS6308のYES)、mvLXNをスケーリングする(図37のS6309)。条件判定3または条件判定4の条件に合致した場合、該当する近接する予測ブロックの動きベクトルは異なる参照ピクチャに対応するものであるので、スケーリングして予測動きベクトルの候補とする。このステップS6309の空間予測動きベクトル候補のスケーリング演算処理手順を図38及び図39を用いて説明する。
図38は図37のステップS6309の動きベクトルのスケーリング演算処理手順を示すフローチャートである。
現在の符号化または復号対象ピクチャのPOCから、近接する予測ブロックのリストListNが参照する参照ピクチャのPOCを減算してピクチャ間距離tdを導出する(図37のS6401)。
なお、現在の符号化または復号対象ピクチャよりも近接する予測ブロックのリストListNで参照する参照ピクチャの方が表示順序で前の場合、ピクチャ間距離tdは正の値となり、現在の符号化または復号対象ピクチャよりも近接する予測ブロックの参照リストListNで参照する参照ピクチャの方が表示順序で後の場合、ピクチャ間距離tdは負の値となる。
td=現在の符号化または復号対象ピクチャのPOC−近接する予測ブロックの参照リストListNで参照する参照ピクチャのPOC
現在の符号化または復号対象ピクチャのPOCから導出対象のLXの参照インデックスrefIdxLXに対応する参照ピクチャのPOCを減算してピクチャ間距離tbを導出する(図37のS6402)。ここで、導出対象の参照インデックスrefIdxLXとは符号化または復号対象の予測ブロックのLXの参照インデックスである。なお、現在の符号化または復号対象ピクチャよりも現在の符号化または復号対象ピクチャの参照リストLXで参照する参照ピクチャの方が表示順序で前の場合、ピクチャ間距離tbは正の値となり、現在の符号化または復号対象ピクチャのリストLXで参照する参照ピクチャの方が表示順序で後の場合、ピクチャ間距離tbは負の値となる。
tb=現在の符号化または復号対象ピクチャのPOC−導出対象のLXの参照インデックスに対応する参照ピクチャのPOC
続いて、次式によりmvLXNにスケーリング係数tb/tdを乗じることでスケーリング演算処理を行い(図37のS6403)、スケーリングされた動きベクトルmvLXNを得る。
mvLXN=tb/td*mvLXN
また、ステップS6403の動きベクトルのスケーリング演算処理を整数精度の演算で行う場合の例を図39に示す。図39のステップS6404〜S6406の処理が、図38のステップS6403の処理に相当する。
まず、図38のフローチャートと同様に、ピクチャ間距離tdとピクチャ間距離tbを導出する(図37のS6401、S6402)。
続いて、次式により変数txを導出する(図37のS6404)。
tx = ( 16384 + ( Abs( td ) >> 1 ) ) / td
なお、Absは括弧内の引数の値の絶対値を表す。
続いて、次式によりスケーリング係数distScaleFactorを導出する(図37のS6405)。
distScaleFactor = Clip3( -4096, 4095, ( tb * tx + 32 ) >> 6 )
なお、Clip3は規定された第1の引数の最小値および第2の引数の最大値で第3の引数の値をクリッピングすることを表す。
続いて、次式により、スケーリングされた動きベクトルmvLXNを得る(図37のS6406)。
mvLXN =Clip3( -32768, 32767, Sign2( distScaleFactor * mvLXN ) *
( (Abs( distScaleFactor * mvLXN ) + 127 ) >> 8 ) )
なお、Sign2は括弧内の引数の値が0以上のとき1となり、0未満のとき-1となることを表す。
次に、図34のS504のインター参照ピクチャ及び階層間参照ピクチャの予測ブロックからの予測動きベクトルの候補の導出方法について詳細に説明する。図40は図34のステップS504の時間予測動きベクトル候補導出処理手順を説明するフローチャートである。
まず、時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicを導出する(図40のS7101)。インター参照ピクチャあるいは階層間参照ピクチャのいずれかが参照ピクチャcolPicとなる。ステップS7101の詳細な処理手順については図22のフローチャートを用いて説明した手順により行う。
続いて、時間マージ候補および時間予測動きベクトルの候補を導出する際に用いるインター予測情報を持つ予測ブロックcolPbを導出し、符号化情報を取得する(図40のS7102)。ステップS7102の詳細な処理手順については図23のフローチャートを用いて説明した手順により行う。
続いて、符号化または復号対象の予測ブロックと同位置の他ピクチャの予測ブロックから導出されるLXの予測動きベクトルmvLXColと予測ブロックグループColの参照リストLXの符号化情報が有効か否かを示すフラグavailableFlagLXColを導出する(図40のS7103)。ステップS7103の詳細な処理手順については図24のフローチャートを用いて説明した手順により行う。
次に、図34のステップS507の予測動きベクトルの候補を予測動きベクトルリストに追加する手順について詳細に説明する。
図34のステップS501、S502およびS504にて導出されたLXのそれぞれの予測動きベクトルの候補mvLXA, mvLXB, mvLXColをLXの予測動きベクトルリストmvpListLXに追加する(図34のS507)。本実施の形態では、優先順位をつけて、優先順位の高いものからLXの予測動きベクトルリストmvpListLXに予測動きベクトルの候補mvLXA, mvLXB, mvLXColの順序で登録することで、優先順位の高い要素を予測動きベクトルリストの前方に配置する。図34のステップS509で予測動きベクトルリストの中の要素数を制限する際に、予測動きベクトルリストの後方に配置された要素を予測動きベクトルリストから外すことで、優先順位の高い要素を残す。
予測動きベクトルリストmvpListLXはリスト構造を成し、予測動きベクトルリスト内部の所在を示すインデックスiで管理され、インデックスiに対応する予測動きベクトルの候補を要素として格納する記憶領域が設けられている。インデックスiの数字は0から開始され、予測動きベクトルリストmvpListLXの記憶領域に、予測動きベクトルの候補が格納される。以降の処理では、予測動きベクトルリストmvpListLXに登録されたインデックスiの要素である予測動きベクトルの候補は、mvpListLX[i]で表す。
次に、図34のステップS507のLXの予測動きベクトルリストmvpListLXへのLXの予測動きベクトルの候補mvLXA, mvLXB, mvLXColの登録処理方法について詳細に説明する。図41は図34のステップS507の予測動きベクトル候補登録処理手順を示すフローチャートである。
まず、予測動きベクトルリストmvpListLXのインデックスiを0に設定する(図41のS9101)。availableFlagLXAが1の場合(図41のS9102のYES)、予測動きベクトルリストmvpListLXのインデックスiに対応する位置にLXの予測動きベクトル候補mvLXAを登録し(図41のS9103)、インデックスiに1を加算することで更新する(図41のS9104)。
続いて、availableFlagLXBが1の場合(図41のS9105のYES)、予測動きベクトルリストmvpListLXmvpListLXのインデックスiに対応する位置にLXの予測動きベクトル候補mvLXBを登録し(図41のS9106)、インデックスiに1を加算することで更新する(図41のS9107)。
続いて、時間予測動きベクトル候補を導出する場合で、availableFlagLXColが1の場合(図41のS9108のYES)、予測動きベクトルリストmvpListLXのインデックスiに対応する位置にLXの予測動きベクトル候補mvLXColを登録し(図41のS9109)、インデックスiに1を加算することで更新して(図41のS9110)、予測動きベクトルリストへの登録処理を終了する。
次に、図34のステップS508の予測動きベクトルリスト中の冗長な予測動きベクトルの候補の削除方法について詳細に説明する。図42は図34のステップS508の予測動きベクトル冗長候補削除処理手順を示すフローチャートである。
予測動きベクトル冗長候補削除部143及び243は予測動きベクトルリストmvpListLXに登録されている予測動きベクトルの候補mvLXAとmvLXBを比較し、mvLXAとmvLXBが同一の場合に(図42のS9201のYES)、冗長な動きベクトルの候補mvLXBを取り除く(図42のS9202)。なお、冗長な動きベクトルの候補mvLXBを取り除いた場合、mvListLX[1]が空白となるので、予測動きベクトルの候補mvLXColがmvListLX[2]に格納されている場合には、mvLXColをmvListLX[1]に格納し直す。なお、本実施の形態においては、空間予測動きベクトルの候補mvLXAとmvLXBだけを比較し、階層間予測動きベクトル候補、時間予測動きベクトル候補の比較は行わない。これは、空間予測動きベクトル候補同士は互いに同じ値の動きベクトル持つ可能性が高いが、空間予測動きベクトル候補と階層間予測動きベクトル候補、時間予測動きベクトル候補は互いに同じ値の動きベクトルを持つ可能性が高くなく、比較処理量を減少させるために階層間予測動きベクトル候補、時間予測動きベクトル候補の比較処理を省略しても、符号化効率に与える影響は低いからである。
次に、図34のステップS509の予測動きベクトルリスト中の動きベクトルの候補数の制限方法について詳細に説明する。図43は図34のステップS509の予測動きベクトル候補数制限処理手順を説明するフローチャートである。
予測動きベクトル候補数制限部144及び予測動きベクトル候補数制限部244はLXの予測動きベクトルリストmvpListLXに登録されているLXの予測動きベクトル候補数numMVPCandLXを規定された2に制限する。
まず、LXの予測動きベクトルリストmvpListLXに登録されている要素数をカウントし、LXの予測動きベクトル候補数numMVPCandLXをカウントされた要素数に設定する(図43のS9301)。
続いて、LXの予測動きベクトル候補数numMVPCandLXが2よりも小さい場合(図43のS9302のYES)、LXの予測動きベクトルリストmvpListLXのインデックスiが numMVPCandLXに対応する位置に(0, 0)の値を持つ動きベクトルを登録し(図43のS9303)、numMVPCandLXに1を加算する(図43のS9304)。numMVPCandLXが2の場合(図43のS9305のYES)、本制限処理を終了し、numMVPCandLXが2になるまで(図43のS9305のNO)、ステップS9303とS9304の処理を繰り返す。すなわち、LXの予測動きベクトル候補数numMVPCandLXが2に達するまで、(0, 0)の値を持つMVを登録する。
このように重複して(0, 0)の値を持つMVを登録することにより、予測動きベクトルインデックスが0以上2未満の範囲内でどのような値をとっても予測動きベクトルを確定することができる。
一方、LXの予測動きベクトル候補数numMVPCandLXが2よりも小さくない場合(図43のS9302のNO)、LXの予測動きベクトルリストmvpListLXのインデックスiが1より大きいすべての予測動きベクトル候補を削除し(図43のS9306)、numMVPCandLXを2に設定して(図43のS9307)、本予測動きベクトル候補数制限処理を終了する。
本実施の形態においては、予測動きベクトル候補数を2に規定している。なぜなら、予測動きベクトルリストに登録される予測動きベクトルの候補数が予測動きベクトルリストの構築状態に応じて変動すると、復号側では予測動きベクトルリストを構築してからでないと、予測動きベクトルインデックスをエントロピー復号することができないからである。さらに、エントロピー復号がインター参照ピクチャまたは階層間参照ピクチャの予測ブロックから導出された予測動きベクトル候補mvLXColを含む予測動きベクトルリストの構築状態に依存すると、別のピクチャの符号化ビット列の復号時にエラーが発生した際に現在のピクチャの符号化ビット列もその影響を受けて正常にエントロピー復号を続けることができない問題がある。予測動きベクトル候補数を固定した数に規定すると、予測動きベクトルリストの構築と独立して、予測動きベクトルインデックスをエントロピー復号することができるとともに、別のピクチャの符号化ビット列の復号時にエラーが発生してもその影響を受けずに現在のピクチャの符号化ビット列のエントロピー復号を続けることができる。
以上述べた第1の実施の形態の動画像符号化装置の階層画像符号化部、および動画像復号装置の階層画像復号部においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかをフラグsps_temporal_mvp_enabled_flagによりシーケンス単位で指定し、符号化及び復号する。さらに、拡張階層においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とした場合には、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるか、またはシーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかをフラグsps_alt_collocated_indication_flagによりシーケンス単位で指定し、符号化及び復号する。さらに、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とした場合には、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかをフラグslice_temporal_mvp_enabled_flagによりピクチャまたはスライス単位で指定し、符号化及び復号する。さらに、拡張階層においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とするとともに、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内でインター参照ピクチャまたは階層間参照ピクチャのどちらかにするかを固定しない場合には、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかをフラグslice_alt_collocated_indication_flagによりピクチャまたはスライス単位で指定し、符号化及び復号する。
実施の形態の動画像復号装置においては、上位階層の階層画像復号部のスライス情報を復号した後に、下位階層の階層画像復号部の復号で得られるインター予測情報を上位階層の符号化情報リサンプリング部214によりリサンプリング処理して、上位の拡張階層の階層画像復号部の復号画像メモリ211に格納することもできる。その際には、slice_temporal_mvp_enabled_flag が1でslice_alt_collocated_indication_flagが1の場合にのみ、本インター予測情報のリサンプリング処理および格納処理を行うことで処理を削減することができる。また、遅延を少なくするために、上位階層の階層画像復号部のスライス情報の復号開始に先行して、下位階層の階層画像復号部の復号で得られるインター予測情報を随時上位階層の符号化情報リサンプリング部214によりリサンプリング処理して、上位の拡張階層の階層画像復号部の復号画像メモリ211に格納することもできる。その際、上位階層でシーケンスを通じて下位階層のインター予測情報が利用できず同じ階層の別のピクチャのインター予測情報が利用できる状況ではシーケンス単位で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャにする際に、フラグsps_alt_collocated_indication_flagをシーケンス単位で符号化および復号することで、下位階層の階層画像復号部の復号で得られるインター予測情報を随時上位階層の符号化情報リサンプリング部214によりリサンプリング処理して、上位の拡張階層の階層画像復号部の復号画像メモリ211に格納する必要が無いことが、上位階層のスライス情報であるスライス情報を復号する前に知ることができ、その状況においてリサンプリング処理、及び格納処理を省略することで、処理量を削減することができるとともに、メモリ量を削減することができる。
さらに、上位階層でシーケンスを通じて下位階層のインター予測情報が利用できる状況でシーケンス単位で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべて階層間参照ピクチャとする際に、フラグsps_alt_collocated_indication_flagをシーケンス単位で符号化および復号することで、上位階層の階層画像復号部の復号で得られるインター予測情報を当該階層のその先のピクチャの復号のために保持しておく必要が無いことが、当該階層のスライス情報であるスライス情報を復号する前に知ることができ、その状況において必要のないメモリを解放することで、メモリ量を削減することができる。
さらに、上位階層でピクチャまたはスライスによって下位階層のインター予測情報が利用できたりできなかったりする状況では、フラグslice_alt_collocated_indication_flagをスライス単位で符号化および復号することで、ピクチャまたはスライス単位で、階層間参照ピクチャとインター階層間参照ピクチャを切り替えることができ、符号化効率を向上させることができる。
(第2の実施の形態)
次に、第2の実施の形態に係る図3の動画像符号化装置の階層画像符号化部のヘッダ情報設定部117で設定されて、第1符号化ビット列生成部118で符号化され、図4の動画像復号装置の階層画像復号部の第1符号化ビット列復号部212で復号される各種フラグの符号化および復号方法について説明する。
第1の実施の形態に係る拡張階層においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とした場合には、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるか、またはシーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかをフラグsps_alt_collocated_indication_flagによりシーケンス単位で指定し、符号化および復号した。すなわち、第1の実施の形態に係る動画像符号化装置および動画像復号装置においては、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをインター参照ピクチャにするか階層間参照ピクチャにするかをシーケンス単位で切り替えるかピクチャまたはスライス単位で切り替えるかをフラグsps_alt_collocated_indication_flagにより示した。
第2の実施の形態に係る拡張階層においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とした場合には、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャまたは階層間参照ピクチャのどちらかに固定されるか、シーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかをフラグsps_alt_collocated_indication_fixed_flagにより符号化側でシーケンス単位で指定して符号化し、復号側で復号する。すなわち、第2の実施の形態に係る動画像符号化装置および動画像復号装置においては、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをインター参照ピクチャにするか階層間参照ピクチャにするかをシーケンス単位で切り替えるかピクチャまたはスライス単位で切り替えるかをフラグsps_alt_collocated_indication_fixed_flagにより示す。さらに、拡張階層においては、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能とするとともに、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内でインター参照ピクチャまたは階層間参照ピクチャのどちらかに固定される場合には、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャであるか、シーケンス内ですべて階層間参照ピクチャであるかをフラグsps_alt_collocated_indication_flagにより符号化側でシーケンス単位で指定して符号化し、復号側で復号する。
ここで、第2の実施の形態により動画像符号化装置の階層画像符号化部の第1符号化ビット列生成部118で符号化され、動画像復号装置の階層画像復号部の第1符号化ビット列復号部212で復号される各フラグのシンタックス構造の一例を図46、図49および図50に示す。図46は第1の実施の形態と同様に第2の実施の形態に係るシーケンス単位で階層毎に符号化および復号されるシーケンス・パラメータ・セットのシンタックス構造を説明する図であり、図49は図46のシーケンス・パラメータ・セットに続いて第2の実施の形態に係るシーケンス単位で符号化および復号されるシーケンス・パラメータ・セット・エクステンションのシンタックス構造を説明する図である。シーケンス・パラメータ・セットおよびシーケンス・パラメータ・セット・エクステンションはシーケンス全体に係る情報を扱い、それぞれ階層の分だけ配置される。図50は第2の実施の形態に係るスライス単位で符号化および復号されるスライス・セグメント・ヘッダのシンタックス構造を説明する図である。スライス・セグメント・ヘッダはスライスに係る情報を扱い、スライス毎に配置される。
第2の実施の形態に係る動画像符号化装置の階層画像符号化部において、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグsps_temporal_mvp_enabled_flag、拡張階層で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャまたは階層間参照ピクチャのどちらかに固定されるか、シーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかを示すフラグsps_alt_collocated_indication_fixed_flag、拡張階層で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内ですべてインター参照ピクチャにするか、シーケンス内ですべて階層間参照ピクチャとするかを示すフラグsps_alt_collocated_indication_flag、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flag、拡張階層の各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかを示すフラグslice_alt_collocated_indication_flagのそれぞれのフラグを設定し符号化する方法について図44のフローチャートを用いて説明する。これらのフラグは動画像符号化装置の階層画像符号化部のヘッダ情報設定部117で設定し、第1符号化ビット列生成部118に供給されて、第1符号化ビット列生成部118でシーケンス単位及びスライス単位のシンタックス要素として符号化される。
まず、ヘッダ情報設定部117はシーケンス単位のフラグの設定および符号化を行う(図44のS9402〜S9407)。ヘッダ情報設定部117は、フラグsps_temporal_mvp_enabled_flag、フラグsps_alt_collocated_indication_fixed_flag、およびフラグsps_alt_collocated_indication_flagに値を設定する(図44のS9402)。具体的には、シーケンス内で時間マージ候補および時間予測動きベクトル候補をマージ候補および予測動きベクトル候補とすることを可能にする場合、フラグsps_temporal_mvp_enabled_flagを1に設定し、可能にしない場合、0に設定する。さらに、拡張階層で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内ですべてインター参照ピクチャまたは階層間参照ピクチャのどちらかに固定する場合、フラグsps_alt_collocated_indication_fixed_flagを1に設定し、シーケンス内ではどちらかに固定せずにピクチャまたはスライス毎にインター参照ピクチャと階層間参照ピクチャのいずれかを参照ピクチャcolPicとする場合、フラグsps_alt_collocated_indication_fixed_flagを0に設定する。さらに、シーケンス内ですべてインター参照ピクチャを参照ピクチャcolPicとする場合、フラグsps_alt_collocated_indication_flagを0に設定し、シーケンス内ですべて階層間参照ピクチャを参照ピクチャcolPicとする場合、1に設定する。
続いて、第1符号化ビット列生成部118は、シーケンス単位でフラグsps_temporal_mvp_enabled_flagをシンタックス要素として符号化する(図44のS9403)。続いて、拡張階層では、フラグsps_temporal_mvp_enabled_flagの値が1の場合(図44のS9404のYES)、シーケンス単位でフラグsps_alt_collocated_indication_fixed_flagをシンタックス要素として符号化する(図44のS9405)。続いて、フラグsps_alt_collocated_indication_fixed_flagの値が1の場合(図44のS9406のYES)、シーケンス単位でフラグsps_alt_collocated_indication_flagをシンタックス要素として符号化し(図44のS9407)、フラグsps_alt_collocated_indication_fixed_flagの値が1でない場合(0の場合)(図44のS9406のNO)、ステップS9407の符号化処理をスキップして、ステップS9408に進む。一方、フラグsps_temporal_mvp_enabled_flagの値が1でない場合(0の場合)(図44のS9404のNO)、ステップS9405〜S9407の符号化処理をスキップして、ステップS9408に進む。
続いて、スライス単位のフラグの設定および符号化を行う(図44のS9408〜S9418)。ヘッダ情報設定部117は、フラグslice_temporal_mvp_enabled_flag、およびフラグslice_alt_collocated_indication_flagにそれぞれ値を設定する(図44のS9409)。具体的には、各ピクチャまたはスライス毎に各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補をマージ候補および予測動きベクトル候補とする場合、フラグslice_temporal_mvp_enabled_flagを1に設定し、候補としない場合、0に設定する。ピクチャ単位で切り替える際にはピクチャ内のすべてのスライスのフラグslice_temporal_mvp_enabled_flagを同じ値に設定する。さらに、各ピクチャまたはスライス毎に各ピクチャまたはスライス内でインター参照ピクチャを時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicとする場合、フラグslice_alt_collocated_indication_flagを0に設定し、階層間参照ピクチャを時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicとする場合、1に設定する。ピクチャ単位で切り替える際にはピクチャ内のすべてのスライスのフラグslice_alt_collocated_indication_flagを同じ値に設定する。なお、シーケンス単位のフラグsps_temporal_mvp_enabled_flagの値が0の場合、スライス単位のフラグslice_temporal_mvp_enabled_flagの値は0である。また、拡張階層において、シーケンス単位のフラグsps_alt_collocated_indication_flagの値が0の場合、スライス単位のフラグslice_alt_collocated_indication_flagの値も0であり、シーケンス単位のフラグsps_alt_collocated_indication_flagの値が1の場合、スライス単位のフラグslice_alt_collocated_indication_flagの値も1である。また、下位階層に階層間参照ピクチャが存在しない場合は、フラグslice_alt_collocated_indication_flagの値を0に設定する。例えば図5に示す、階層画像M(0)のピクチャP12が符号化されない場合、階層画像M(1)のピクチャP22の符号化及び復号の際には、参照階層のピクチャP12を参照せずに符号化及び復号を行うので、フラグslice_alt_collocated_indication_flagの値を0に設定する。
続いて、第1符号化ビット列生成部118は、フラグsps_temporal_mvp_enabled_flagの値が1の場合(図44のS9410のYES)、スライス単位でフラグslice_temporal_mvp_enabled_flagをシンタックス要素として符号化する(図44のS9411)。
続いて、第1符号化ビット列生成部118は、フラグslice_temporal_mvp_enabled_flagの値が1で、sps_alt_collocated_indication_fixed_flagの値が1でない場合(0の場合)(図44のS9413のYES、S9415のYES)、スライス単位でフラグslice_alt_collocated_indication_flagをシンタックス要素として符号化する(図44のS9416)。一方、フラグslice_temporal_mvp_enabled_flagの値が1でない場合(値が0の場合)(図44のS9413のNO)、あるいは、フラグslice_temporal_mvp_enabled_flagの値が1で、sps_alt_collocated_indication_fixed_flagの値が1の場合(図44のS9413のYES、S9415のNO)、ステップS9416のフラグslice_alt_collocated_indication_flagの符号化処理をスキップする。
以上、ステップS9409からS9416までの処理をスライス毎に繰り返す(図44のS9408〜S9418)。
なお、ベース階層の符号化においては、下位階層を参照することはないので、フラグsps_alt_collocated_indication_flag、およびslice_alt_collocated_indication_flagの値を常に0とする。その際、ステップS9404〜S9407、及びステップS9413〜S9416の符号化処理を省略することができる。
次に、第2の実施の形態に係る動画像復号装置の階層画像復号部において、シーケンス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグsps_temporal_mvp_enabled_flag、拡張階層で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがシーケンス内ですべてインター参照ピクチャまたは階層間参照ピクチャのどちらかに固定されるか、シーケンス内ではどちらかに固定されずにピクチャまたはスライス単位でインター参照ピクチャまたは階層間参照ピクチャのどちらにするかが示されるかを示すフラグsps_alt_collocated_indication_fixed_flag、時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicをシーケンス内ですべてインター参照ピクチャにするか、シーケンス内ですべて階層間参照ピクチャとするかを示すフラグsps_alt_collocated_indication_flag、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出してマージ候補および予測動きベクトル候補とすることが可能かどうかを示すフラグslice_temporal_mvp_enabled_flag、各ピクチャまたはスライス内で時間マージ候補および時間予測動きベクトル候補を導出する際に用いるインター予測情報を持つ参照ピクチャcolPicがインター参照ピクチャであるか、階層間参照ピクチャであるかを示すフラグslice_alt_collocated_indication_flagのそれぞれのフラグの復号する方法について図45のフローチャートを用いて説明する。図45は図44の符号化処理手順で各フラグが符号化された符号化ビット列を復号する際の復号処理手順を示すフローチャートである。これらのフラグは動画像復号装置の階層画像復号部の第1符号化ビット列復号部212でシーケンス単位及びスライス単位のシンタックス要素として復号される。
まず、第1符号化ビット列復号部212は、シーケンス単位の情報の復号を行う(図45のS9503〜S9507)。第1符号化ビット列復号部212は、シーケンス単位で、フラグsps_temporal_mvp_enabled_flagをシンタックス要素として復号する(図45のS9503)。続いて、拡張階層では、フラグsps_temporal_mvp_enabled_flagの値が1の場合(図45のS9504のYES)、シーケンス単位でフラグsps_alt_collocated_indication_fixed_flagをシンタックス要素として復号する(図45のS9505)。続いて、フラグsps_alt_collocated_indication_fixed_flagの値が1の場合(図45のS9506のYES)、シーケンス単位で、sps_alt_collocated_indication_flagをシンタックス要素として復号し(図45のS9507)、フラグsps_alt_collocated_indication_fixed_flagの値が1でない場合(0の場合)(図45のS9506のNO)、ステップS9507の符号化処理をスキップして、ステップS9508に進む。一方、フラグsps_temporal_mvp_enabled_flagの値が1でない場合(0の場合)(図45のS9504のNO)、ステップS9505〜S9507の符号化処理をスキップして、ステップS9508に進む。
続いて、第1符号化ビット列復号部212は、スライス単位の情報の復号を行う(図45のS9508〜S9518)。フラグsps_temporal_mvp_enabled_flagの値が1の場合(図45のS9510のYES)、スライス単位で、フラグslice_temporal_mvp_enabled_flagをシンタックス要素として復号する(図45のS9511)。なお、ピクチャ単位で切り替える際にはピクチャ内のすべてのスライスのフラグslice_temporal_mvp_enabled_flagは同じ値である。
一方、フラグsps_temporal_mvp_enabled_flagの値が1でない場合(値が0の場合)(図45のS9510のNO)、シーケンス内で、時間マージ候補および動きベクトル候補をマージ候補および予測動きベクトル候補とすることが可能でないので、スライス単位のフラグslice_temporal_mvp_enabled_flagにも0に設定する(図45のS9512)。
続いて、拡張階層では、フラグslice_temporal_mvp_enabled_flag の値が1で、フラグsps_alt_collocated_indication_fixed_flagの値が1でない場合(0の場合)(図45のS9513のYES、S9415のYES)、スライス単位で、フラグslice_alt_collocated_indication_flagをシンタックス要素として復号する(図45のS9516)。なお、ピクチャ単位で切り替える際にはピクチャ内のすべてのスライスのフラグslice_alt_collocated_indication_flagは同じ値である。一方、フラグsps_alt_collocated_indication_flagの値が1で、フラグsps_alt_collocated_indication_fixed_flagの値が1の場合(図45のS9513のYES、S9415のNO)、シーケンス内で、階層間マージ候補および動きベクトル候補をマージ候補及び予測動きベクトル候補とすることが可能でないので、フラグslice_alt_collocated_indication_flagにフラグsps_alt_collocated_indication_flagと同じ値に設定する(図45のS9517)。また、フラグsps_temporal_mvp_enabled_flagの値が1でない場合(値が0の場合)(図45のS9513のNO)、ステップS9514〜S9517の処理をスキップする。
以上、ステップS9510からS9517までの処理をスライス毎に繰り返す(図45のS9508〜S9518)。
なお、ベース階層の復号においては、下位階層を参照することはないので、ステップS9513〜S9517の処理を省略して、フラグsps_alt_collocated_indication_flag、およびslice_alt_collocated_indication_flagの値を常に0とする。
以上述べた第2の実施の形態の動画像符号化装置および動画像復号装置においては、シーケンス全体に係る情報が階層の分だけ配置されるシーケンス・パラメータ・セット・エクステンションにフラグsps_alt_collocated_indication_fixed_flagおよびフラグsps_alt_collocated_indication_flagをそれぞれ配置した。シーケンス全体に係る情報がまとめて配置されるビデオ・パラメータ・セットまたはその後に続くビデオ・パラメータ・セット・エクステンションにフラグsps_alt_collocated_indication_fixed_flagおよびフラグsps_alt_collocated_indication_flagに相当する情報持つフラグをそれぞれ階層の分だけまとめて配置してもよい。
第1の実施の形態及び第2の実施の形態においては、シーケンス単位で、シーケンス内で時間マージ候補または時間予測マージ候補をマージ候補または予測マージ候補とすることを可能にしない、シーケンス内で時間マージ候補または時間予測マージ候補をマージ候補または予測マージ候補とすることを可能としてシーケンス内ですべて階層間参照ピクチャを参照ピクチャcolPicとする、シーケンス内で時間マージ候補または時間予測マージ候補をマージ候補または予測マージ候補とすることを可能としてシーケンス内ですべてインター参照ピクチャを参照ピクチャcolPicとする、シーケンス内で時間マージ候補または時間予測マージ候補をマージ候補または予測マージ候補とすることを可能としてシーケンス内で固定せずにピクチャまたはスライス単位で参照ピクチャcolPicを階層間参照ピクチャにするかインター参照ピクチャにするかを切り替える、の4通りを選択可能とした。
第1の実施の形態及び第2の実施の形態以外の選択方法も考えられる。例えば、シーケンス内ですべて階層間参照ピクチャを参照ピクチャcolPicとするかどうかを示すフラグをシーケンス単位で用意して符号化または復号し、シーケンス内ですべて階層間参照ピクチャを参照ピクチャcolPicとしない場合に、シーケンス内ですべてインター参照ピクチャを参照ピクチャcolPicとするかどうかを示すフラグをシーケンス単位で用意して符号化または復号してもよい。あるいは、シーケンス内ですべてインター参照ピクチャを参照ピクチャcolPicとするかどうかを示すフラグをシーケンス単位で用意して符号化または復号し、シーケンス単位ですべてインター参照ピクチャを参照ピクチャcolPicとしない場合に、シーケンス内ですべて参照間参照ピクチャを参照ピクチャcolPicとするかどうかを示すフラグをシーケンス単位で用意して符号化または復号してもよい。
また、シーケンス内ですべて階層間参照ピクチャを参照ピクチャcolPicとするかどうかを示すフラグをシーケンス単位で用意して符号化または復号し、シーケンス単位ですべて階層間参照ピクチャを参照ピクチャcolPicとしない場合に、ピクチャまたはスライス単位で階層間参照ピクチャを参照ピクチャcolPicとするかインター参照ピクチャを参照ピクチャcolPicとするかを示すフラグを符号化または復号してもよい。
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
動画像送信装置は、動画像符号化装置が出力する符号化ビット列をバッファするメモリと、符号化ビット列をパケット化するパケット処理部と、パケット化された符号化ストリームをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化ストリームをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、パケット化された符号化ストリームをパケット処理して符号化ビット列を生成し、動画像復号装置に提供するパケット処理部とを含む。
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。例えば、本実施の形態の動画像符号化装置は同じ構成の階層画像符号化部を階層分だけ積み重ねた構成をとるものとして説明したが、この構成により階層ごとに並列に符号化処理を行ってもよいし、単独または階層数より少ない階層画像符号化部により下位階層のピクチャの符号化処理を行ってから上位階層のピクチャの符号化処理を行うことも可能である。同様に、動画像復号装置は同じ構成の階層画像復号部を階層分だけ積み重ねた構成をとるものとして説明したが、この構成により階層ごとに並列に復号処理を行ってもよいし、単独または階層数より少ない階層画像復号部により下位階層のピクチャの復号処理を行ってから上位階層のピクチャの復号処理を行うことも可能である。
また、動画像符号化装置の階層画像符号化部は同じ構成であるものとして説明したが、ベース階層の階層画像符号化部は下位階層の符号化情報を利用せずに符号化するので、下位階層の符号化情報を利用する階層間マージ候補導出処理、および階層間予測動きベクトル導出処理、及びそれに伴う切り替えや登録処理等を省略した構成とすることも可能である。同様に、動画像復号装置の階層画像復号部は同じ構成であるものとして説明したが、ベース階層の階層画像復号部は下位階層の符号化情報を利用せずに復号するので、下位階層の符号化情報を利用する階層間マージ候補導出処理、および階層間予測動きベクトル導出処理、及びそれに伴う切り替えや登録処理等を省略した構成とすることも可能である。