【文献】
Minhua Zhou et al.,A study on HM3.0 parsing throughput issue,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,6th Meeting: Torino, IT,2011年 7月,JCTVC-F068,pp.1-17
【文献】
Jianle Chen and Tammy Lee,MVP index parsing with fixed number of candidates,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,6th Meeting: Torino, IT,2011年 7月,JCTVC-F402r1,pp.1-9
【文献】
Toshiyasu Sugio and Takahiro Nishi,Parsing Robustness for Merge/AMVP,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,6th Meeting: Torino, IT,2011年 7月,JCTVC-F470_r4,pp.1-33
【文献】
Hiroya Nakamura et al.,Non-CE13: The maximum number of merging candidates in P-slice,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,7th Meeting: Geneva, CH,2011年11月,JCTVC-G221,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
各ピクチャを分割したブロック単位でインター予測を用いて動画像を符号化する動画像符号化方法により符号化された符号化ビット列をパケット化して符号化データを得るパケット処理部と、
パケット化された前記符号化データを送信する送信部とを備え、
前記動画像符号化方法は、
符号化対象の予測ブロックに隣接する所定数のブロックから第1インター予測情報の候補を導出する第1インター予測情報導出ステップと、
前記符号化対象の予測ブロックと異なる符号化済みのピクチャにおける前記符号化対象の予測ブロックと同一位置あるいはその付近に存在するブロックから第2インター予測情報の候補を導出する第2インター予測情報導出ステップと、
前記第1インター予測情報の候補と前記第2インター予測情報の候補をインター予測情報候補リストに登録するインター予測情報候補リスト登録ステップと、
前記インター予測情報候補リストに登録されたインター予測情報の候補から1つのインター予測情報の候補を選択して、その選択したインター予測情報の候補により前記符号化対象の予測ブロックのインター予測を行う予測ステップと、
インター予測情報の候補の数およびインター予測情報の候補のインデックスを示す情報を符号化する符号化ステップとを有し、
前記符号化ステップは前記インター予測情報の候補の数に基づいて前記インター予測情報の候補のインデックスを符号化するとともに、
前記第1インター予測情報導出ステップは、前記第1インター予測情報の候補の数を前記所定数より小さい数に制限する
ことを特徴とする送信装置。
各ピクチャを分割したブロック単位でインター予測を用いて動画像を符号化する動画像符号化方法により符号化された符号化ビット列をパケット化して符号化データを得るパケット処理ステップと、
パケット化された前記符号化データを送信する送信ステップとを有し、
前記動画像符号化方法は、
符号化対象の予測ブロックに隣接する所定数のブロックから第1インター予測情報の候補を導出する第1インター予測情報導出ステップと、
前記符号化対象の予測ブロックと異なる符号化済みのピクチャにおける前記符号化対象の予測ブロックと同一位置あるいはその付近に存在するブロックから第2インター予測情報の候補を導出する第2インター予測情報導出ステップと、
前記第1インター予測情報の候補と前記第2インター予測情報の候補をインター予測情報候補リストに登録するインター予測情報候補リスト登録ステップと、
前記インター予測情報候補リストに登録されたインター予測情報の候補から1つのインター予測情報の候補を選択して、その選択したインター予測情報の候補により前記符号化対象の予測ブロックのインター予測を行う予測ステップと、
インター予測情報の候補の数およびインター予測情報の候補のインデックスを示す情報を符号化する符号化ステップとを有し、
前記符号化ステップは前記インター予測情報の候補の数に基づいて前記インター予測情報の候補のインデックスを符号化するとともに、
前記第1インター予測情報導出ステップは、前記第1インター予測情報の候補の数を前記所定数より小さい数に制限する
ことを特徴とする送信方法。
各ピクチャを分割したブロック単位でインター予測を用いて動画像を符号化する動画像符号化方法により符号化された符号化ビット列をパケット化して符号化データを得るパケット処理ステップと、
パケット化された前記符号化データを送信する送信ステップとをコンピュータに実行させ、
前記動画像符号化方法は、
符号化対象の予測ブロックに隣接する所定数のブロックから第1インター予測情報の候補を導出する第1インター予測情報導出ステップと、
前記符号化対象の予測ブロックと異なる符号化済みのピクチャにおける前記符号化対象の予測ブロックと同一位置あるいはその付近に存在するブロックから第2インター予測情報の候補を導出する第2インター予測情報導出ステップと、
前記第1インター予測情報の候補と前記第2インター予測情報の候補をインター予測情報候補リストに登録するインター予測情報候補リスト登録ステップと、
前記インター予測情報候補リストに登録されたインター予測情報の候補から1つのインター予測情報の候補を選択して、その選択したインター予測情報の候補により前記符号化対象の予測ブロックのインター予測を行う予測ステップと、
インター予測情報の候補の数およびインター予測情報の候補のインデックスを示す情報を符号化する符号化ステップとを備え、
前記符号化ステップは前記インター予測情報の候補の数に基づいて前記インター予測情報の候補のインデックスを符号化するとともに、
前記第1インター予測情報導出ステップは、前記第1インター予測情報の候補の数を前記所定数より小さい数に制限する
ことを特徴とする送信プログラム。
【発明を実施するための形態】
【0020】
本実施の形態では、動画像の符号化に関し、特にピクチャを任意のサイズ、形状の矩形ブロックに分割し、ピクチャ間でブロック単位に動き補償を行う動画像符号化における符号化効率を向上させる為に、符号化対象ブロックに隣接するブロックまたは符号化済みのピクチャのブロックの動きベクトルから複数の予測動きベクトルを導出し、符号化対象のブロックの動きベクトルと選択された予測動きベクトルとの差分ベクトルを算出して符号化することによって符号量を削減する。あるいは、符号化対象ブロックに隣接するブロックまたは符号化済みのピクチャのブロックの符号化情報を利用することにより、符号化対象ブロックの符号化情報を導出することによって符号量を削減する。また、動画像の復号の場合は、復号対象ブロックに隣接するブロックまたは復号済みのピクチャのブロックの動きベクトルから複数の予測動きベクトルを算出し、符号化ストリームから復号された差分ベクトルと選択された予測動きベクトルとから復号対象のブロックの動きベクトルを算出して復号する。あるいは、復号対象ブロックに隣接するブロックまたは復号済みのピクチャのブロックの符号化情報を利用することにより、復号対象ブロックの符号化情報を導出する。
【0021】
まず、本実施の形態において使用する技術、及び技術用語を定義する。
【0022】
(ツリーブロック、符号化ブロックについて)
実施の形態では、ピクチャを1つまたは複数分割したスライスが符号化の基本単位となっており、スライス毎にスライスの種類を示す情報であるスライスタイプが設定される。
図3に示されるように、スライス内を任意の同一サイズの正方の矩形の単位にて均等分割する。この単位をツリーブロックと定義し、スライス内での符号化または復号対象ブロック(符号化処理においては符号化対象ブロック、復号処理においては復号対象ブロックのことである。以下、断りのない限り、この意味で用いる。)を特定するためのアドレス管理の基本単位とする。モノクロを除きツリーブロックは1つの輝度信号と2つの色差信号で構成される。ツリーブロックのサイズはピクチャサイズやピクチャ内のテクスチャに応じて、2のべき乗のサイズで自由に設定することができる。ツリーブロックはピクチャ内のテクスチャに応じて、符号化処理を最適にすべく、必要に応じてツリーブロック内の輝度信号、及び色差信号を階層的に4分割(縦横に2分割ずつ)して、ブロックサイズの小さいブロックにすることができる。このブロックをそれぞれ符号化ブロックと定義し、符号化及び復号を行う際の処理の基本単位とする。モノクロを除き符号化ブロックも1つの輝度信号と2つの色差信号で構成される。符号化ブロックの最大サイズはツリーブロックのサイズと同一である。符号化ブロックの最小のサイズとなる符号化ブロックを最小符号化ブロックと呼び、2のべき乗のサイズで自由に設定することができる。
【0023】
図3においては、符号化ブロックAは、ツリーブロックを分割せず、1つの符号化ブロックとしたものである。符号化ブロックBは、ツリーブロックを4分割してできた符号化ブロックである。符号化ブロックCは、ツリーブロックを4分割してできたブロックをさらに4分割してできた符号化ブロックである。符号化ブロックDは、ツリーブロックを4分割してできたブロックをさらに階層的に2度4分割してできた符号化ブロックであり、最小サイズの符号化ブロックである。
【0024】
(予測モードについて)
符号化ブロック単位で、復号済みの周囲の画像信号から予測を行うイントラ予測(MODE_INTRA)、及び復号済みのピクチャの画像信号から予測を行うインター予測(MODE_INTER)を切り替える。このイントラ予測(MODE_INTRA)とインター予測(MODE_INTER)を識別するモードを予測モード(PredMode)と定義する。予測モード(PredMode)はイントラ予測(MODE_INTRA)、またはインター予測(MODE_INTER)を値として持ち、選択して符号化できる。
【0025】
(分割モード、予測ブロック、予測ユニットについて)
ピクチャ内をブロックに分割してイントラ予測(MODE_INTRA)及びインター予測(MODE_INTER)を行う場合、イントラ予測及びインター予測の方法を切り替える単位をより小さくするために、必要に応じて符号化ブロックを分割して予測を行う。この符号化ブロックの輝度信号と色差信号の分割方法を識別するモードを分割モード(PartMode)と定義する。さらに、この分割されたブロックを予測ブロックと定義する。
図4に示すように、符号化ブロックの輝度信号の分割方法に応じて4種類の分割モード(PartMode)を定義する。
符号化ブロックの輝度信号を分割せず1つの予測ブロックとみなしたもの(
図4(a))の分割モード(PartMode)を2N×2N分割(PART_2Nx2N)、符号化ブロックの輝度信号を水平方向に2分割し、2つの予測ブロックとしたもの(
図4(b))の分割モード(PartMode)を2N×N分割(PART_2NxN)、符号化ブロックの輝度信号を垂直方向に分割し、符号化ブロックを2つの予測ブロックとしたもの(
図4(c))の分割モード(PartMode)をN×2N分割(PART_Nx2N)、符号化ブロックの輝度信号を水平と垂直の均等分割により4つの予測ブロックとしたもの(
図4(d))の分割モード(PartMode)をN×N分割(PART_NxN)とそれぞれ定義する。なお、イントラ予測(MODE_INTRA)のN×N分割(PART_NxN)を除き、各分割モード(PartMode)毎に輝度信号の縦横の分割比率と同様に色差信号も分割する。
【0026】
符号化ブロック内部において、各予測ブロックを特定する為に、0から開始する番号を、符号化順序で、符号化ブロック内部に存在する予測ブロックに対して割り当てる。この番号を分割インデックスPartIdxと定義する。
図4の符号化ブロックの各予測ブロックの中に記述された数字は、その予測ブロックの分割インデックスPartIdxを表す。
図4(b)に示す2N×N分割(PART_2NxN)では上の予測ブロックの分割インデックスPartIdxを0とし、下の予測ブロックの分割インデックスPartIdxを1とする。
図4(c)に示すN×2N分割(PART_Nx2N)では左の予測ブロックの分割インデックスPartIdxを0とし、右の予測ブロックの分割インデックスPartIdxを1とする。
図4(d)に示すN×N分割(PART_NxN)では、左上の予測ブロックの分割インデックスPartIdxを0とし、右上の予測ブロックの分割インデックスPartIdxを1とし、左下の予測ブロックの分割インデックスPartIdxを2とし、右下の予測ブロックの分割インデックスPartIdxを3とする。
【0027】
予測モード(PredMode)がインター予測(MODE_INTER)では、最小の符号化ブロックである符号化ブロックD以外では、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)、2N×N分割(PART_2NxN)、及びN×2N分割(PART_Nx2N)を定義し、最小の符号化ブロックである符号化ブロックDのみ、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)、2N×N分割(PART_2NxN)、及びN×2N分割(PART_Nx2N)に加えてN×N分割(PART_NxN)を定義する。なお、最小の符号化ブロック以外にN×N分割(PART_NxN)を定義しない理由は最小の符号化ブロック以外では、符号化ブロックを4分割して小さな符号化ブロックを表現できるからである。
【0028】
(ツリーブロック、符号化ブロック、予測ブロック、変換ブロックの位置)
本実施の形態のツリーブロック、符号化ブロック、予測ブロック、変換ブロックを始めとする各ブロックの位置は、輝度信号の画面の一番左上の輝度信号の画素の位置を原点(0,0)とし、それぞれのブロックの領域に含まれる一番左上の輝度信号の画素の位置を(x,y)の二次元座標で表す。座標軸の向きは水平方向に右の方向、垂直方向に下の方向をそれぞれ正の向きとし、単位は輝度信号の1画素単位である。輝度信号と色差信号で画像サイズ(画素数)が同じである色差フォーマットが4:4:4の場合ではもちろんのこと、輝度信号と色差信号で画像サイズ(画素数)が異なる色差フォーマットが4:2:0、4:2:2の場合でも色差信号の各ブロックの位置をそのブロックの領域に含まれる輝度信号の画素の座標で表し、単位は輝度信号の1画素である。この様にすることで、色差信号の各ブロックの位置が特定できるのはもちろんのこと、座標の値を比較するだけで、輝度信号のブロックと色差信号のブロックの位置の関係も明確となる。
【0029】
(インター予測モード、参照リストについて)
本発明の実施の形態においては、復号済みのピクチャの画像信号から予測を行うインター予測では、複数の復号済みのピクチャを参照ピクチャとして用いることができる。複数の参照ピクチャから選択された参照ピクチャを特定するため、予測ブロック毎に参照インデックスを付ける。予測ブロック毎に任意の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ごとに処理が行われることを前提とする。
【0030】
(マージモード、マージ候補)
マージモードとは、符号化または復号対象の予測ブロックの予測モード、参照インデックス、動きベクトル等のインター予測情報を符号化または復号するのではなく、符号化または復号対象の予測ブロックと同一ピクチャ内でその符号化または復号対象の予測ブロックに隣接する予測ブロック、あるいは符号化または復号対象の予測ブロックと時間的に異なる符号化または復号済みのピクチャの符号化または復号対象の予測ブロックと同一位置あるいはその付近(近傍の位置)に存在する予測ブロックのインター予測情報から符号化または復号対象の予測ブロックのインター予測情報を導出することによりインター予測を行うモードである。符号化または復号対象の予測ブロックと同一ピクチャ内でその符号化または復号対象の予測ブロックに隣接する予測ブロック及びその予測ブロックのインター予測情報を空間マージ候補、符号化または復号対象の予測ブロックと時間的に異なる符号化または復号済みのピクチャの符号化または復号対象の予測ブロックと同一位置あるいはその付近(近傍の位置)に存在する予測ブロック及びその予測ブロックのインター予測情報から導出されるインター予測情報を時間マージ候補とする。それぞれのマージ候補はマージ候補リストに登録され、マージインデックスによりインター予測で用いるマージ候補を特定する。
【0031】
(隣接する予測ブロックについて)
図5、
図6、
図7及び
図8は符号化または復号対象の予測ブロックと同一ピクチャ内でその符号化または復号対象の予測ブロックに隣接する予測ブロックを説明する図である。
図9は符号化または復号対象の予測ブロックと時間的に異なる符号化または復号済みのピクチャにおいて、符号化または復号対象の予測ブロックと同一位置あるいはその付近に存在する既に符号化または復号済みの予測ブロックを説明する図である。
図5、
図6、
図7、
図8及び
図9を用いて符号化または復号対象の予測ブロックの空間方向に隣接する予測ブロック、及び異なる時間の同一位置の予測ブロックについて説明する。
【0032】
図5に示すように、符号化または復号対象の予測ブロックと同一ピクチャ内でその符号化または復号対象の予測ブロックの左側の辺に隣接する予測ブロックA、上側の辺に隣接する予測ブロックB、右上の頂点に隣接する予測ブロックC、左下の頂点に隣接する予測ブロックD、および左上の頂点に隣接する予測ブロックEを空間方向に隣接する予測ブロックと定義する。
【0033】
なお、
図6に示すように、符号化または復号対象の予測ブロックの左側の辺に隣接する予測ブロックのサイズが符号化または復号対象の予測ブロックより小さく、複数存在する場合には、本実施の形態においては左側の辺に隣接する予測ブロックの中で最も下の予測ブロックA10だけを左側の辺に隣接する予測ブロックAとする。
【0034】
同様に、符号化または復号対象の予測ブロックの上側の辺に隣接する予測ブロックのサイズが符号化または復号対象の予測ブロックより小さく、複数存在する場合には、本実施の形態においては左側の辺に隣接する予測ブロックの中で最も右の予測ブロックB10だけを上側の辺に隣接する予測ブロックBとする。
【0035】
なお、
図7に示すように、符号化または復号対象の予測ブロックの左側に隣接する予測ブロックFのサイズが符号化または復号対象の予測ブロックより大きい場合にも、前記条件に従い、左側に隣接する予測ブロックFがその符号化または復号対象の予測ブロックの左側の辺に隣接していれば予測ブロックAとし、符号化または復号対象の予測ブロックの左下の頂点に隣接していれば予測ブロックDとし、符号化または復号対象の予測ブロックの左上の頂点に隣接していれば予測ブロックEとする。
図7の例では、予測ブロックA、予測ブロックD及び予測ブロックEは同一の予測ブロックとなる。
【0036】
なお、
図8に示すように、符号化または復号対象の予測ブロックの上側に隣接する予測ブロックGのサイズが符号化または復号対象の予測ブロックより大きい場合にも、前記条件に従い、上側に隣接する予測ブロックGがその符号化または復号対象の予測ブロックの上側の辺に隣接していれば予測ブロックBとし、符号化または復号対象の予測ブロックの右上の頂点に隣接していれば予測ブロックCとし、符号化または復号対象の予測ブロックの左上の頂点に隣接していれば予測ブロックEとする。
図8の例では、予測ブロックB、予測ブロックC及び予測ブロックEは同一の予測ブロックとなる。
【0037】
図9に示すように、符号化または復号対象の予測ブロックと時間的に異なる符号化または復号済みのピクチャにおいて、符号化または復号対象の予測ブロックと同一位置あるいはその付近に存在する既に符号化または復号済みの予測ブロックT0およびT1を異なる時間の同一位置の予測ブロックと定義する。
【0038】
(POCについて)
POCは符号化されるピクチャに関連付けられる変数とし、ピクチャの出力順序で1ずつ増加する値が設定される。POCの値によって、同じピクチャであるかを判別したり、出力順序でのピクチャ間の前後関係を判別したり、ピクチャ間の距離を導出したりすることができる。例えば、2つのピクチャのPOCが同じ値を持つ場合、同一のピクチャであると判断できる。2つのピクチャのPOCが違う値を持つ場合、POCの値が小さいピクチャのほうが、先に出力されるピクチャであると判断でき、2つのピクチャのPOCの差が時間軸方向でのピクチャ間距離を示す。
【0039】
以下、図面と共に本発明の実施の形態を説明する。
図1は本発明の実施の形態に係る動画像符号化装置の構成を示すブロック図である。実施の形態の動画像符号化装置は、画像メモリ101、ヘッダ情報設定部117、動きベクトル検出部102、差分動きベクトル算出部103、インター予測情報導出部104、動き補償予測部105、イントラ予測部106、予測方法決定部107、残差信号生成部108、直交変換・量子化部109、第1符号化ビット列生成部118、第2符号化ビット列生成部110、第3符号化ビット列生成部111、多重化部112、逆量子化・逆直交変換部113、復号画像信号重畳部114、符号化情報格納メモリ115、および復号画像メモリ116を備える。
【0040】
ヘッダ情報設定部117は、シーケンス、ピクチャ、スライス単位の情報を設定する。設定されたシーケンス、ピクチャ、スライス単位の情報はインター予測情報導出部104、第1符号化ビット列生成部118に供給するとともに、図示していないがすべてのブロックに供給する。
【0041】
画像メモリ101は、撮影/表示時間順に供給された符号化対象のピクチャの画像信号を一時格納する。画像メモリ101は、格納された符号化対象のピクチャの画像信号を、所定の画素ブロック単位で、動きベクトル検出部102、予測方法決定部107、および残差信号生成部108に供給する。その際、撮影/表示時間順に格納されたピクチャの画像信号は、符号化順序に並べ替えられて、画素ブロック単位で、画像メモリ101から出力される。
【0042】
動きベクトル検出部102は、画像メモリ101から供給される画像信号と復号画像メモリ116から供給される参照ピクチャ間でブロックマッチング等により各予測ブロックサイズ、各予測モードのそれぞれの動きベクトルを各予測ブロック単位で検出し、検出された動きベクトルを動き補償予測部105、差分動きベクトル算出部103、および予測方法決定部107に供給する。
【0043】
差分動きベクトル算出部103は、符号化情報格納メモリ115に記憶されている既に符号化された画像信号の符号化情報を用いて、複数の予測動きベクトルの候補を算出して予測動きベクトルリストに登録し、予測動きベクトルリストに登録された複数の予測動きベクトルの候補の中から最適な予測動きベクトルを選択し、動きベクトル検出部102が検出した動きベクトルと予測動きベクトルから差分動きベクトルを算出し、算出された差分動きベクトルを予測方法決定部107に供給する。さらに、予測動きベクトルリストに登録された予測動きベクトルの候補から選択された予測動きベクトルを特定する予測動きベクトルインデックスを予測方法決定部107に供給する。
【0044】
インター予測情報導出部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の詳細な構成と動作は後述する。
【0045】
動き補償予測部105は、動きベクトル検出部102およびインター予測情報導出部104により検出された動きベクトルを用いて参照ピクチャからインター予測(動き補償予測)により予測画像信号を生成し、予測画像信号を予測方法決定部107に供給する。なお、L0予測、及びL1予測では、片方向の予測を行う。双予測(Pred_BI)の場合は、双方向の予測を行い、L0予測、L1予測のそれぞれのインター予測された信号に適応的に重み係数を掛け算し、オフセット値を加算して重畳し、最終的な予測画像信号を生成する。
【0046】
イントラ予測部106は、各イントラ予測モードについてイントラ予測を行う。復号画像メモリ116に格納されている復号済みの画像信号からイントラ予測により予測画像信号を生成し、複数のイントラ予測モードの中から適したイントラ予測モードを選択し、選択されたイントラ予測モード、及び選択されたイントラ予測モードに応じた予測画像信号を予測方法決定部107に供給する。
【0047】
予測方法決定部107は符号化情報及び残差信号の符号量、予測画像信号と画像信号との間の歪量等を評価することにより、複数の予測方法の中から、最適な符号化ブロック単位でインター予測(PRED_INTER)かイントラ予測(PRED_INTRA)かを判別する予測モードPredMode、分割モードPartModeを決定し、インター予測(PRED_INTER)では予測ブロック単位でマージモードか否かを決定し、マージモードの場合はマージインデックス、マージモードでない場合はインター予測モード、予測動きベクトルインデックス、L0、L1の参照インデックス、差分動きベクトル等を決定して、決定に応じた符号化情報を第2符号化ビット列生成部110に供給する。
【0048】
さらに、予測方法決定部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_INTER)の場合、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に供給する。
【0049】
残差信号生成部108は、符号化する画像信号と予測画像信号との減算を行うことにより残差信号を生成し、直交変換・量子化部109に供給する。
直交変換・量子化部109は、残差信号に対して量子化パラメータに応じて直交変換及び量子化を行い直交変換・量子化された残差信号を生成し、第3符号化ビット列生成部111と逆量子化・逆直交変換部113に供給する。さらに、直交変換・量子化部109は、量子化パラメータを符号化情報格納メモリ115に格納する。
【0050】
第1符号化ビット列生成部118は、ヘッダ情報設定部117で設定されたシーケンス、ピクチャ、スライス単位の情報を符号化する。第1の符号化ビット列を生成し、多重化部112に供給する。
【0051】
第2符号化ビット列生成部110は、符号化ブロック及び予測ブロック毎に予測方法決定部107によって決定された予測方法に応じた符号化情報を符号化する。具体的には、符号化ブロック毎の予測モードPredMode、分割モードPartMode、インター予測(PRED_INTER)の場合、マージモードかどうかを判別するフラグ、マージモードの場合はマージインデックス、マージモードでない場合はインター予測モード、予測動きベクトルインデックス、差分動きベクトルに関する情報等の符号化情報を後述する規定のシンタックス規則に従って符号化して第2の符号化ビット列を生成し、多重化部112に供給する。
【0052】
第3符号化ビット列生成部111は、直交変換及び量子化された残差信号を規定のシンタックス規則に従ってエントロピー符号化して第3の符号化ビット列を生成し、多重化部112に供給する。多重化部112で、第1の符号化ビット列、第2の符号化ビット列および第3の符号化ビット列を規定のシンタックス規則に従って多重化し、ビットストリームを出力する。
【0053】
逆量子化・逆直交変換部113は、直交変換・量子化部109から供給された直交変換・量子化された残差信号を逆量子化及び逆直交変換して残差信号を算出し、復号画像信号重畳部114に供給する。復号画像信号重畳部114は、予測方法決定部107による決定に応じた予測画像信号と逆量子化・逆直交変換部113で逆量子化及び逆直交変換された残差信号を重畳して復号画像を生成し、復号画像メモリ116に格納する。なお、復号画像に対して符号化によるブロック歪等の歪を減少させるフィルタリング処理を施して、復号画像メモリ116に格納されることもある。
【0054】
図2は
図1の動画像符号化装置に対応した本発明の実施の形態に係る動画像復号装置の構成を示すブロックである。実施の形態の動画像復号装置は、分離部201、第1符号化ビット列復号部212、第2符号化ビット列復号部202、第3符号化ビット列復号部203、動きベクトル算出部204、インター予測情報導出部205、動き補償予測部206、イントラ予測部207、逆量子化・逆直交変換部208、復号画像信号重畳部209、符号化情報格納メモリ210、および復号画像メモリ211を備える。
【0055】
図2の動画像復号装置の復号処理は、
図1の動画像符号化装置の内部に設けられている復号処理に対応するものであるから、
図2の動き補償予測部206、逆量子化・逆直交変換部208、復号画像信号重畳部209、符号化情報格納メモリ210、および復号画像メモリ211の各構成は、
図1の動画像符号化装置の動き補償予測部105、逆量子化・逆直交変換部113、復号画像信号重畳部114、符号化情報格納メモリ115、および復号画像メモリ116の各構成とそれぞれ対応する機能を有する。
【0056】
分離部201に供給されるビットストリームは規定のシンタックスの規則に従って分離し、分離された符号化ビット列が第1符号化ビット列復号部212、第2符号化ビット列復号部202、第3符号化ビット列復号部203に供給される。
【0057】
第1符号化ビット列復号部212は、供給された符号化ビット列を復号して、シーケンス、ピクチャ、スライス単位の情報を得る。得られたシーケンス、ピクチャ、スライス単位の情報は図示していないがすべてのブロックに供給する。
【0058】
第2符号化ビット列復号部202は、供給された符号化ビット列を復号して、符号化ブロック単位の情報、及び、予測ブロック単位の符号化情報を得る。具体的には、符号化ブロック単位でインター予測(PRED_INTER)かイントラ予測(PRED_INTRA)かを判別する予測モードPredMode、分割モードPartMode、インター予測(PRED_INTER)の場合、マージモードかどうかを判別するフラグ、マージモードの場合はマージインデックス、マージモードでない場合はインター予測モード、予測動きベクトルインデックス、差分動きベクトル等に関する符号化情報を後述する規定のシンタックス規則に従って復号し、符号化情報を動きベクトル算出部204、インター予測情報導出部205またはイントラ予測部207に供給する。
【0059】
第3符号化ビット列復号部203は、供給された符号化ビット列を復号して直交変換・量子化された残差信号を算出し、直交変換・量子化された残差信号を逆量子化・逆直交変換部208に供給する。
【0060】
動きベクトル算出部204は、復号対象の予測ブロックの予測モードPredModeがインター予測(PRED_INTER)でマージモードでない時に、符号化情報格納メモリ210に記憶されている既に復号された画像信号の符号化情報を用いて、複数の予測動きベクトルの候補を導出して後述する予測動きベクトルリストに登録し、予測動きベクトルリストに登録された複数の予測動きベクトルの候補の中から、第2符号化ビット列復号部202で復号され供給される予測動きベクトルインデックスに応じた予測動きベクトルを選択し、第2符号化ビット列復号部202で復号された差分ベクトルと選択された予測動きベクトルから動きベクトルを算出し、他の符号化情報とともに動き補償予測部206に供給するとともに、符号化情報格納メモリ210に格納する。ここで供給・格納する予測ブロックの符号化情報は、予測モード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_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である。
【0061】
インター予測情報導出部205は、復号対象の予測ブロックの予測モードPredModeがインター予測(PRED_INTER)でマージモードの時に、マージ候補を導出する。符号化情報格納メモリ115に記憶されている既に復号された予測ブロックの符号化情報を用いて、複数のマージの候補を導出して後述するマージ候補リストに登録し、マージ候補リストに登録された複数のマージ候補の中から第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の詳細な構成と動作は後述する。
【0062】
動き補償予測部206は、動きベクトル算出部204またはインター予測情報導出部205で算出されたインター予測情報を用いて復号画像メモリ211に格納されている参照ピクチャからインター予測(動き補償予測)により予測画像信号を生成し、予測画像信号を復号画像信号重畳部209に供給する。なお、双予測(Pred_BI)の場合は、L0予測、L1予測の2つの動き補償予測画像信号に適応的に重み係数を掛け算して重畳し、最終的な予測画像信号を生成する。
【0063】
イントラ予測部207は、復号対象の予測ブロックの予測モードPredModeがイントラ予測(PRED_INTRA)の時に、イントラ予測を行う。第1符号化ビット列復号部で復号された符号化情報にはイントラ予測モードが含まれており、イントラ予測モードに応じて、復号画像メモリ211に格納されている復号済みの画像信号からイントラ予測により予測画像信号を生成し、予測画像信号を復号画像信号重畳部209に供給する。L0予測、及びL1予測を利用するかどうかを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]を共に0に設定し、符号化情報格納メモリ210に格納する。ここで、xP、yPはピクチャ内での予測ブロックの左上の画素の位置を示すインデックスである。
【0064】
逆量子化・逆直交変換部208は、第2符号化ビット列復号部202で復号された直交変換・量子化された残差信号に対して逆直交変換及び逆量子化を行い、逆直交変換・逆量子化された残差信号を得る。
【0065】
復号画像信号重畳部209は、動き補償予測部206でインター予測された予測画像信号、またはイントラ予測部207でイントラ予測された予測画像信号と、逆量子化・逆直交変換部208により逆直交変換・逆量子化された残差信号とを重畳することにより、復号画像信号を復号し、復号画像メモリ211に格納する。復号画像メモリ211に格納する際には、復号画像に対して符号化によるブロック歪等を減少させるフィルタリング処理を施して、復号画像メモリ211に格納されることもある。
【0066】
次に、本実施の形態に係る動きベクトルの予測方法を備える動画像符号化装置により符号化され、復号装置により復号される動画像のビットストリームの符号化および復号の共通規則であるシンタックスについて説明する。
【0067】
図10は予測ブロック単位に記述されるシンタックス規則を示す。予測ブロックの予測モードPredModeの値がインター予測(MODE_INTER)の場合、マージモードかどうかを示すmerge_flag[x0][y0]が設置される。ここで、x0、y0は輝度信号のピクチャ内での予測ブロックの左上の画素の位置を示すインデックスであり、merge_flag[x0][y0]はピクチャ内の(x0, y0)に位置する予測ブロックのマージモードかどうかを示すフラグである。
【0068】
次に、merge_flag[x0][y0]が1の場合、マージモードであることを示し、参照するマージ候補のリストであるマージリストのインデックスのシンタックス要素merge_idx[x0][y0]が設置される。ここで、x0、y0はピクチャ内での予測ブロックの左上の画素の位置を示すインデックスであり、merge_idx[x0][y0]はピクチャ内の(x0, y0)に位置する予測ブロックのマージインデックスである。マージインデックスをエントロピー符号化または復号する場合、マージ候補数が小さい程、小さい符号量で符号化または復号することができ、少ない処理量で符号化または復号することができる。
図11はマージインデックスのシンタックス要素merge_idx[x0][y0]のエントロピー符号(コード)の一例である。マージ候補数が3の場合、マージインデックスの最大値をマージ候補数−1、すなわち2とすることで、マージインデックスが0, 1, 2となり、マージインデックスのシンタックス要素merge_idx[x0][y0]の符号はそれぞれ'0'、'10'、'11'となる。マージ候補数が4の場合、マージインデックスの最大値は最大マージ候補数−1、すなわち3とすることで、マージインデックスが0, 1, 2, 3となり、マージインデックスのシンタックス要素merge_idx[x0][y0]の符号はそれぞれ'0'、'10'、'110'、'111'となる。マージ候補数が5の場合、マージインデックスの最大値は最大マージ候補数−1、すなわち4とすることで、マージインデックスが0, 1, 2, 3, 4の時、マージインデックスのシンタックス要素merge_idx[x0][y0]の符号はそれぞれ'0'、'10'、'110'、'1110'、'1111'となる。例えば、マージインデックスが2の場合、マージ候補数が3では、'11'となり、マージ候補数が4および5では、'110'となる。すなわち、最大のマージ候補数を制限することができる場合、マージインデックスの最大値をマージ候補数−1に制限することで、短い符号長でマージインデックスを表現することができる。つまり、マージ候補数を制限する場合、マージインデックスの最大値を最大マージ候補数−1に制限する方がマージインデックスを小さい符号量で表現可能である。本実施例においては、
図11に示すようにマージ候補数に応じて、マージインデックスのそれぞれの値を示す符号を切り替えることで符号量を削減する。
【0069】
一方、merge_flag[x0][y0]が0の場合、マージモードでないことを示し、スライスタイプがBスライスの場合、インター予測モードを識別するシンタックス要素inter_pred_flag[x0][y0]が設置され、このシンタックス要素でL0予測(Pred_L0)、L1予測(Pred_L1)、双予測(Pred_BI)を識別する。L0、L1ごとに、参照ピクチャを特定するための参照インデックスのシンタックス要素ref_idx_l0[x0][y0]、ref_idx_l1[x0][y0]、動きベクトル検出にて求められた予測ブロックの動きベクトルと予測動きベクトルとの差分である差分動きベクトルのシンタックス要素mvd_l0[x0][y0][j]、mvd_l1[x0][y0][j]が設置される。ここで、x0、y0はピクチャ内での予測ブロックの左上の画素の位置を示すインデックスであり、ref_idx_l0[x0][y0]、mvd_l0[x0][y0][j]はそれぞれピクチャ内の(x0, y0)に位置する予測ブロックのL0の参照インデックス、及び差分動きベクトルであり、ref_idx_l1[x0][y0]、mvd_l1[x0][y0][j]はそれぞれピクチャ内の(x0, y0)に位置する予測ブロックのL1の参照インデックス、及び差分動きベクトルである。また、jは差分動きベクトルの成分を表し、jが0はx成分を、jが1はy成分を表す。次に、参照する予測動きベクトルの候補のリストである予測動きベクトルリストのインデックスのシンタックス要素mvp_idx_l0[x0][y0]、mvp_idx_l1[x0][y0]が設置される。ここで、x0、y0はピクチャ内での予測ブロックの左上の画素の位置を示すインデックスであり、mvp_idx_l0[x0][y0]、mvp_idx_l1[x0][y0]はピクチャ内の(x0, y0)に位置する予測ブロックのL0、L1の予測動きベクトルインデックスである。本発明の本実施の形態においてはこれらの候補数の値を2と設定する。
【0070】
実施の形態に係るインター予測情報導出方法は、
図1の動画像符号化装置のインター予測情報導出部104及び
図2の動画像復号装置のインター予測情報導出部205において実施される。
【0071】
実施の形態に係るインター予測情報導出方法は、符号化ブロックを構成する予測ブロック単位に、符号化及び復号の処理の何れでも実施される。予測ブロックの予測モードPredModeがインター予測(MODE_INTER)で、マージモードの場合に、符号化の場合、符号化済みの予測ブロックの予測モード、参照インデックス、動きベクトルを利用して符号化対象の予測ブロックの予測モード、参照インデックス、動きベクトルを導出する際、復号の場合、復号済みの予測ブロックの予測モード、参照インデックス、動きベクトルを利用して復号対象の予測ブロックの予測モード、参照インデックス、動きベクトルを導出する際に実施される。
【0072】
マージモードは
図5、
図6、
図7及び
図8を用いて説明した左に隣接する予測ブロックA、上に隣接する予測ブロックB、右上に隣接する予測ブロックC、左下に隣接する予測ブロックD、左上に隣接する予測ブロックEに加えて、
図9を用いて説明した異なる時間の同一位置あるいはその付近に存在する予測ブロックCol(T0、T1のいずれか)の予測ブロックを候補とする。動画像符号化装置のインター予測情報導出部104、及び動画像復号装置のインター予測情報導出部205はそれらの候補を符号化側と復号側で共通の規定の順序でマージ候補リストに登録し、動画像符号化装置のインター予測情報導出部104がマージ候補リストの要素を特定するマージインデックスを決定して第2符号化ビット列生成部110を経由して符号化し、動画像復号装置のインター予測情報導出部205は第2符号化ビット列復号部202で復号されたマージインデックスが供給されて、そのマージインデックスに応じた予測ブロックをマージ候補リストから選択し、その選択されたマージ候補の予測モード、参照インデックス、動きベクトル等のインター予測情報を用いて、動き補償予測を行う。
【0073】
スライス単位でマージ候補リストmergeCandListに登録される最終的なマージ候補数finalNumMergeCandを設定する。本実施の形態においては、スライスタイプがPスライスの場合、最終マージ候補数finalNumMergeCandを後者よりも小さい数に設定し、スライスタイプがBスライスの場合、最終マージ候補数finalNumMergeCandを前者よりも大きい数に設定する。スライスタイプがPスライスの場合は、最終マージ候補数finalNumMergeCandを3に設定し、スライスタイプがBスライスの場合は、最終マージ候補数finalNumMergeCandを5に設定する。
【0074】
実施の形態に係るインター予測情報導出方法を図面を用いて説明する。
図12は、
図1の動画像符号化装置のインター予測情報導出部104の詳細な構成を示す図である。また、
図13は、
図2の動画像復号装置のインター予測情報導出部205の詳細な構成を示す図である。
【0075】
図12及び
図13の太枠線で囲まれる部分はそれぞれ、インター予測情報導出部104及びインター予測情報導出部205を示している。
【0076】
更に、それらの内部の太点線で囲まれる部分は後述するインター予測情報導出方法の動作部を示しており、実施の形態の動画像符号化装置と対応する動画像復号装置にも同様に設置され、符号化と復号で矛盾しない同一の導出結果を得られるようにしている。
【0077】
インター予測情報導出部104は、空間マージ候補生成部130、時間マージ候補の参照インデックス導出部131、時間マージ候補生成部132、マージ候補登録部133、マージ候補同一判定部134、マージ候補数制限部135、マージ候補補充部136、および符号化情報選択部137を含む。
【0078】
インター予測情報導出部205は、空間マージ候補生成部230、時間マージ候補の参照インデックス導出部231、時間マージ候補生成部232、マージ候補登録部233、マージ候補同一判定部234、マージ候補数制限部235、マージ候補補充部236、および符号化情報選択部237を含む。
【0079】
図14は本発明の実施の形態による動画像符号化装置のインター予測情報導出部104及び動画像復号装置のインター予測情報導出部205とで共通する機能を有するマージ候補の導出処理及びマージ候補リストの構築処理の手順を説明するフローチャートである。
以下、諸過程を順を追って説明する。なお、以下の説明においては特に断りのない限りスライスタイプslice_typeがBスライスの場合について説明するが、Pスライスの場合にも適用できる。ただし、スライスタイプslice_typeがPスライスの場合、インター予測モードとしてL0予測(Pred_L0)だけがあり、L1予測(Pred_L1)、双予測(Pred_BI)がないので、L1に纏わる処理を省略することができる。
【0080】
動画像符号化装置のインター予測情報導出部104の空間マージ候補生成部130及び動画像復号装置のインター予測情報導出部205の空間マージ候補生成部230では、符号化または復号対象ブロックに隣接するそれぞれの予測ブロックA,B,C,D,Eからの空間マージ候補A,B,C,D,Eを導出する。ここで、A,B,C,D,EまたはColのいずれかを示すNを定義する。予測ブロックNのインター予測情報がマージ候補Nとして利用できるかどうかを示すフラグavailableFlagN、L0の参照インデックスrefIdxL0N及びL1の参照インデックスrefIdxL1N、L0予測が行われるかどうかを示すL0予測フラグpredFlagL0NおよびL1予測が行われるかどうかを示すL1予測フラグpredFlagL1N、L0の動きベクトルmvL0N、L1の動きベクトルmvL1Nを出力する(ステップS101)。
ステップS101の詳細な処理手順については
図15のフローチャートを用いて後ほど詳細に説明する。
【0081】
続いて、動画像符号化装置のインター予測情報導出部104の時間マージ候補の参照インデックス導出部131及び動画像復号装置のインター予測情報導出部205の時間マージ候補の参照インデックス導出部231では、符号化または復号対象ブロックに隣接する予測ブロックから時間マージ候補の参照インデックスを導出する(ステップS102)。スライスタイプslice_typeがPスライスで時間マージ候補のインター予測情報を用いてインター予測を行う場合は、L0予測(Pred_L0)を行うために、L0の参照インデックスだけを導出し、スライスタイプslice_typeがBスライスで時間マージ候補のインター予測情報を用いてインター予測を行う場合は、双予測(Pred_BI)を行うために、L0とL1のそれぞれの参照インデックスを導出する。ステップS102の詳細な処理手順については
図16のフローチャートを用いて後ほど詳細に説明する。
【0082】
続いて、動画像符号化装置のインター予測情報導出部104の時間マージ候補生成部132及び動画像復号装置のインター予測情報導出部205の時間マージ候補生成部232では、異なる時間のピクチャからの時間マージ候補を導出し、利用できるかどうかを示すフラグavailableFlagCol、L0予測が行われるかどうかを示すL0予測フラグpredFlagL0ColおよびL1予測が行われるかどうかを示すL1予測フラグpredFlagL1Col、及びL0の動きベクトルmvL0N、L1の動きベクトルmvL1Nを出力する(ステップS103)。ステップS103の詳細な処理手順については
図17のフローチャートを用いて後ほど詳細に説明する。
【0083】
続いて、動画像符号化装置のインター予測情報導出部104のマージ候補登録部133及び動画像復号装置のインター予測情報導出部205のマージ候補登録部233では、マージ候補リストmergeCandListを作成し、予測ベクトルの候補A,B,C,D,E,Colを追加する(ステップS104)。ステップS104の詳細な処理手順については
図24のフローチャートを用いて後ほど詳細に説明する。
【0084】
続いて、動画像符号化装置のインター予測情報導出部104のマージ候補同一判定部134及び動画像復号装置のインター予測情報導出部205のマージ候補同一判定部234では、マージ候補リストmergeCandList内で、マージ候補が同じ参照インデックスの動きベクトルが同じ値を持っている場合に、最も小さい順番のマージ候補を除いてそのマージ候補を取り除く(ステップS105)。
【0085】
続いて、動画像符号化装置のインター予測情報導出部104のマージ候補数制限部135及び動画像復号装置のインター予測情報導出部205のマージ候補数制限部235では、マージ候補リストmergeCandList内に登録されているマージ候補の数をカウントし、マージ候補リストmergeCandList内に登録されているマージ候補数numMergeCandが、最終マージ候補数finalNumMergeCandより大きい場合(ステップS106のYES)、マージ候補リストmergeCandList内のインデックスiが(finalNumMergeCand-1)よりも大きいすべてのマージ候補を削除することでマージ候補を最終マージ候補数finalNumMergeCandに制限し、マージ候補リストmergeCandList内に登録されているマージ候補数numMergeCandの値を最終マージ候補数finalNumMergeCandに更新する(ステップS107)。
【0086】
続いて、動画像符号化装置のインター予測情報導出部104のマージ候補補充部136及び動画像復号装置のインター予測情報導出部205のマージ候補補充部236では、マージ候補リストmergeCandList内に登録されているマージ候補数numMergeCandが、最終マージ候補数finalNumMergeCandより小さい場合(ステップS108のYES)、マージ候補リストmergeCandList内に登録されているマージ候補数numMergeCandが最終マージ候補数finalNumMergeCandを上限としてマージ候補を補充し、マージ候補リストmergeCandList内に登録されているマージ候補数numMergeCandの値を最終マージ候補数finalNumMergeCandに更新する(ステップS109)。最終マージ候補数finalNumMergeCandを上限として、Pスライスでは、異なる参照インデックスで動きベクトルが(0,0)(水平および垂直成分がともに0)で予測モードがL0予測(Pred_L0)のマージ候補を追加する。Bスライスでは、すでに登録されているマージ候補同士のL0予測とL1予測の組み合わせを変更した予測モードが双予測(Pred_BI)のマージ候補や、異なる参照インデックスで動きベクトルが(0,0)で予測モードが双予測(Pred_BI)のマージ候補を追加する。
【0087】
本実施の形態においては、スライス単位で最終マージ候補数finalNumMergeCandを固定した数に設定している。最終マージ候補数finalNumMergeCandを固定する理由は最終マージ候補数finalNumMergeCandがマージ候補リストの構築状態に応じて変動すると、エントロピー復号とマージ候補リストの構築に依存関係が生じ、復号側では予測ブロック毎にマージ候補リストを構築し最終マージ候補数finalNumMergeCandを導出してからでないと、マージインデックスをエントロピー復号することができず、マージインデックスの復号に遅延が生じるとともにエントロピー復号が複雑になるためである。さらに、エントロピー復号が異なる時間のピクチャの予測ブロックから導出されたマージ候補Colを含むマージ候補リストの構築状態に依存すると、別のピクチャの符号化ビット列の復号時にエラーが発生した際に現在のピクチャの符号化ビット列もそのエラーの影響を受けて正常な最終マージ候補数finalNumMergeCandを導出することができず正常にエントロピー復号を続けることができない問題がある。本実施の形態の様にスライス単位で最終マージ候補数finalNumMergeCandを固定した数に設定すると、予測ブロック単位での最終マージ候補数finalNumMergeCandの導出が不要となり、マージ候補リストの構築と独立して、マージインデックスをエントロピー復号することができるとともに、別のピクチャの符号化ビット列の復号時にエラーが発生してもその影響を受けずに現在のピクチャの符号化ビット列のエントロピー復号を続けることができる。
【0088】
次に、
図14のステップS101の処理手順である符号化または復号対象ブロックに隣接する予測ブロックNからのマージ候補Nの導出方法について詳細に説明する。
図15は
図14のステップS101の空間マージ候補導出処理手順を説明するフローチャートである。Nには隣接する予測ブロックの領域を表すA(左側)、B(上側)、C(右上)、D(左下)またはE(左上)が入る。なお、本実施の形態においては、空間マージ候補数の上限値maxNumSpatialMergeCandを4とし、隣接する5つの予測ブロックから最大4つの空間マージ候補を導出する。なお、スライス単位でマージ候補リストmergeCandListに登録される空間マージ候補数の上限値maxNumSpatialMergeCandを設定することもできる。空間マージ候補数の上限値maxNumSpatialMergeCandに大きな値を設定するとマージ候補の選択の幅が広がるため符号化効率が向上するが、マージ候補の同一判定の対象となるマージ候補数が増加するためマージ候補の同一判定の処理量が増大する。そこで、処理量を削減するために、スライス単位で空間マージ候補数の上限値maxNumSpatialMergeCandを設定し、空間マージ候補導出の処理量やマージ候補同一判定の処理量を制御してもよい。例えば、スライスタイプがPスライスの場合、本実施の形態では最終マージ候補数finalNumMergeCandを3としているので、4つの空間マージ候補を導出しても
図14のステップS107の処理で削除される可能性が高くなるため、空間マージ候補数の上限値maxNumSpatialMergeCandを3または2としても符号化効率の低下を小さく抑えて動画像符号化装置のインター予測情報導出部104のマージ候補同一判定部134及び動画像復号装置のインター予測情報導出部205のマージ候補同一判定部234でのマージ候補同一判定処理の処理量を削減することができる。
【0089】
図15で、変数NをAとして符号化または復号対象の予測ブロックの左側に隣接する予測ブロックAの符号化情報を調べてマージ候補Aを導出し、変数NをBとして上側に隣接する予測ブロックBの符号化情報を調べてマージ候補Bを導出し、変数NをCとして右上側に隣接する予測ブロックCの符号化情報を調べてマージ候補Cを導出し、変数NをDとして左下側に隣接する予測ブロックDの符号化情報を調べてマージ候補Dを導出し、変数NをEとして左上側に隣接する予測ブロックEの符号化情報を調べてマージ候補Eを導出する(ステップS1101〜ステップS1112)。
【0090】
まず、これまでに導出できた(availableFlagが1となった)空間マージ候補の合計が空間マージ候補数の上限値maxNumSpatialMergeCandの場合(ステップS1102のYES)、すなわち4つの空間マージ候補が導出された場合、マージ候補NのフラグavailableFlagNを0に設定し(ステップS1105)、マージ候補Nの動きベクトルmvL0N, mvL1Nの値を共に(0,0)に設定し(ステップS1106)、マージ候補NのフラグpredFlagL0N、predFlagL1Nの値を共に0に設定し(ステップS1107)、本空間マージ候補導出処理を終了する。
本実施の形態においては、隣接する予測ブロックから4つのマージ候補を導出するので、既に4つの空間マージ候補が導出された場合はそれ以上の空間マージ候補の導出処理を行う必要がない。
【0091】
一方、これまでに導出できた(availableFlagが1となった)空間マージ候補の合計が空間マージ候補数の上限値maxNumSpatialMergeCandでない場合(ステップS1102のNO)、符号化または復号対象の予測ブロックに隣接する予測ブロックNを特定し、それぞれの予測ブロックNが利用できる場合は符号化情報格納メモリ115または210から予測ブロックNの符号化情報を取得する(ステップS1103)。
【0092】
隣接する予測ブロックNが利用できないか、予測ブロックNの予測モードPredModeがイントラ予測(MODE_INTRA)である場合(ステップS1104のNO)、マージ候補NのフラグavailableFlagNの値を0に設定し(ステップS1105)、マージ候補Nの動きベクトルmvL0N, mvL1Nの値を共に(0,0)に設定し(ステップS1106)、マージ候補NのフラグpredFlagL0N、predFlagL1Nの値を共に0に設定する(ステップS1107)。
【0093】
一方、隣接する予測ブロックNが利用でき、予測ブロックNの予測モードPredModeがイントラ予測(MODE_INTRA)でない場合(ステップS1104のYES)、予測ブロックNのインター予測情報をマージ候補Nのインター予測情報とする。マージ候補NのフラグavailableFlagNの値を1に設定し(ステップS1108)、マージ候補Nの動きベクトルmvL0N, mvL1Nをそれぞれ予測ブロックNの動きベクトルmvL0N[xN][yN], mvL1N[xN][yN]と同じ値に設定し(ステップS1109)、マージ候補Nの参照インデックスrefIdxL0N, refIdxL1Nをそれぞれ予測ブロックNの参照インデックスrefIdxL0[xN][yN], refIdxL1[xN][yN]と同じ値に設定し(ステップS1110)、マージ候補NのフラグpredFlagL0N, predFlagL1Nをそれぞれ予測ブロックNのフラグpredFlagL0[xN][yN], predFlagL1[xN][yN]に設定する(ステップS1111)。ここで、xN、yNはピクチャ内での予測ブロックNの左上の画素の位置を示すインデックスである。
【0094】
以上のステップS1102〜ステップS1111の処理をN=A,B,C,D,Eについてそれぞれ繰り返す(ステップS1101〜ステップS1112)。
【0095】
次に、
図14のS102の時間マージ候補の参照インデックスを導出する方法について詳細に説明する。時間マージ候補のL0とL1のそれぞれの参照インデックスを導出する。
【0096】
本実施の形態においては、空間マージ候補の参照インデックス、即ち符号化または復号対象ブロックに隣接する予測ブロックで利用された参照インデックスを利用して時間マージ候補の参照インデックスを導出する。これは、時間マージ候補が選択される場合において、符号化または復号対象の予測ブロックの参照インデックスは空間マージ候補となる符号化または復号対象ブロックに隣接する予測ブロックの参照インデックスと高い相関を持つからである。特に、本実施の形態においては、符号化または復号対象の予測ブロックの左の辺に隣接する予測ブロックA、及び上の辺に隣接する予測ブロックBの参照インデックスだけを利用する。なぜなら、空間マージ候補でもある隣接する予測ブロックA,B,C,D,Eの中でも符号化または復号対象の予測ブロックの辺に接している予測ブロックA,Bは、符号化または復号対象の予測ブロックの頂点のみに接している予測ブロックC,D,Eよりも相関が高いからである。相対的に相関の低い予測ブロックC,D,Eを利用せずに、利用する予測ブロックを予測ブロックA,Bに限定することで、時間マージ候補の参照インデックスの導出による符号化効率の改善効果を得るとともに、時間マージ候補の参照インデックス導出処理に関する演算量及びメモリアクセス量を削減する。
【0097】
本実施の形態では、予測ブロックA、予測ブロックBが共にLX予測(L0またはL1で、時間マージ候補の参照インデックスの導出対象のリストをLXとし、LXを用いた予測をLX予測とする。以下、断りのない限り、この意味で用いる。)を行う場合は予測ブロックA、予測ブロックBのLXの参照インデックスの値の小さい方を時間マージ候補のLXの参照インデックスの値として採用する。ただし、予測ブロックA、予測ブロックBのいずれか一方しかLX予測を行わない場合はLX予測を行う方の予測ブロックのLXの参照インデックスの値を時間マージ候補のLXの参照インデックスの値として採用し、予測ブロックA、予測ブロックBが共にLX予測を行わない場合は時間マージ候補のLXの参照インデックスの値をデフォルト値の0とする。
【0098】
予測ブロックA、予測ブロックBが共にLX予測を行わない場合に時間マージ候補のLXの参照インデックスのデフォルト値を0とする理由は、インター予測において参照インデックスの値が0に対応する参照ピクチャが最も選択される確率が高いからである。ただし、これに限定されず、参照インデックスのデフォルト値を0以外の値(1、2など)としても良いし、シーケンス単位、ピクチャ単位、またはスライス単位で符号化ストリーム内に参照インデックスのデフォルト値を示すシンタックス要素を設置し伝送できるようにして、符号化側で選択できるようにしても良い。
【0099】
図16は本実施の形態の
図14のステップS102の時間マージ候補の参照インデックスの導出処理手順を説明するフローチャートである。まず、符号化情報格納メモリ115または210から左に隣接する予測ブロックAの符号化情報、及び予測ブロックBの符号化情報を取得する(ステップS2101、ステップS2102)。
続くステップS2104からステップS2110までの処理をL0,L1それぞれにおいて行う(ステップS2103〜S2111)。なお、時間マージ候補のL0の参照インデックスを導出する際にはLXはL0に設定され、L1の参照インデックスを導出する際にはLXはL1に設定される。ただし、スライスタイプslice_typeがPスライスの場合、インター予測モードとしてL0予測(Pred_L0)だけがあり、L1予測(Pred_L1)、双予測(Pred_BI)がないので、L1に纏わる処理を省略することができる。
【0100】
予測ブロックAのLX予測を行うかどうかを示すフラグpredFlagLX[xA][yA]と予測ブロックBのLX予測を行うかどうかを示すフラグpredFlagLX[xB][yB]が共に0でない場合(ステップS2104のYES)、時間マージ候補のLXの参照インデックスrefIdxLXColを予測ブロックAのLXの参照インデックスrefIdxLX[xA][yA]と予測ブロックBのLXの参照インデックスrefIdxLX[xB][yB]の値の小さい方と同じ値に設定する(ステップS2105)。ここで、xA、yAはピクチャ内での予測ブロックAの左上の画素の位置を示すインデックスである。ここで、xB、yBはピクチャ内での予測ブロックBの左上の画素の位置を示すインデックスである。
【0101】
なお、本実施の形態においては、予測ブロックN(N=A,B)において、予測ブロックNが符号化または復号対象のスライス外で利用できない場合や予測ブロックNが符号化または復号順序で符号化または復号対象の予測ブロックよりも後のために符号化または復号されておらず利用できない場合や予測ブロックNの予測モードPredModeがインター予測(MODE_INTER)の場合、L0予測を利用するかどうかを示すフラグpredFlagL0[xN][yN]、予測ブロックNのL1予測を利用するかどうかを示すフラグpredFlagL1[xN][yN]は共に0である。ここで、xN、yNはピクチャ内での予測ブロックNの左上の画素の位置を示すインデックスである。
予測ブロックNの予測モードPredModeがインター予測(MODE_INTER)で、インター予測モードがL0予測(Pred_L0)の場合、予測ブロックNのL0予測を利用するかどうかを示すフラグpredFlagL0[xN][yN]は1, L1予測を利用するかどうかを示すフラグpredFlagL1[xN][yN]は0である。予測ブロックNのインター予測モードがL1予測(Pred_L1)の場合、予測ブロックNのL0予測を利用するかどうかを示すフラグpredFlagL0[xN][yN]は0, L1予測を利用するかどうかを示すフラグpredFlagL1[xN][yN]は1である。予測ブロックNのインター予測モードが双予測(Pred_BI)の場合、予測ブロックNのL0予測を利用するかどうかを示すフラグpredFlagL0[xN][yN]、L1予測を利用するかどうかを示すフラグpredFlagL1[xN][yN]は共に1である。
【0102】
予測ブロックAのLX予測を行うかどうかを示すフラグpredFlagLX[xA][yA]が0でなく、予測ブロックBのLX予測を行うかどうかを示すフラグpredFlagLX[xB][yB]が0である場合(ステップS2104のNOで、ステップS2106のYES)、時間マージ候補のLXの参照インデックスrefIdxLXColを予測ブロックAのLXの参照インデックスrefIdxLX[xA][yA]と同じ値に設定する(ステップS2107)。ここで、xA、yAはピクチャ内での予測ブロックAの左上の画素の位置を示すインデックスであり、xB、yBはピクチャ内での予測ブロックBの左上の画素の位置を示すインデックスである。
【0103】
予測ブロックAのLX予測を行うかどうかを示すフラグpredFlagLX[xA][yA]が0であり、予測ブロックBのLX予測を行うかどうかを示すフラグpredFlagLX[xB][yB]が0でない場合(ステップS2104のNOで、ステップS2106のNOで、ステップS2108のYES)、時間マージ候補のLXの参照インデックスrefIdxLXColを予測ブロックBのLXの参照インデックスpredFlagLX[xB][yB]と同じ値に設定する(ステップS2109)。
【0104】
予測ブロックAのLX予測を行うかどうかを示すフラグpredFlagLX[xA][yA]と予測ブロックBのLX予測を行うかどうかを示すフラグpredFlagLX[xB][yB]が共に0である場合(ステップS2104のNOで、ステップS2106のNOで、ステップS2108のNO)、時間マージ候補のLXの参照インデックスrefIdxLXColをデフォルト値の0に設定する(ステップS2110)。
【0105】
L0,L1それぞれにおいて行うステップS2104からステップS2110までの処理を行い(ステップS2103〜S2111)、本参照インデックス導出処理を終了する。
【0106】
次に、
図14のS103の異なる時間のマージ候補の導出方法について詳細に説明する。
図17は
図14のステップS103の時間マージ候補導出処理手順を説明するフローチャートである。
【0107】
まず、
図26のビットストリームの符号化および復号の共通規則であるシンタックス規則の一例に示すように、スライス単位でスライスヘッダに記述されるスライスタイプslice_typeと時間方向の予測動きベクトルの候補、またはマージ候補を導出する際に用いる異なる時間のピクチャcolPicが処理対象の予測ブロックが含まれるピクチャのL0の参照リスト或いはL1の参照リストのどちらに登録されている参照ピクチャを使用するかを示すフラグcollocated_from_l0_flagにより、異なる時間のピクチャcolPicを導出する(ステップS3101)。
【0108】
図18は
図17のステップS3101の異なる時間のピクチャcolPicの導出処理手順を説明するフローチャートである。スライスタイプslice_typeがBスライスで、フラグcollocated_from_l0_flagが0の場合(ステップS3201のYES、ステップS3202のYES)、RefPicList1[0]、すなわち参照リストL1の参照インデックスが0のピクチャが異なる時間のピクチャcolPicとなる(ステップS3203)。そうでない場合、すなわちスライスタイプslice_typeがBスライスで前述のフラグcollocated_from_l0_flagが1の場合(ステップS3201のYES、ステップS3202のNO)、またはスライスタイプslice_typeがPスライスの場合(ステップS3201のNO、S3204のYES)、RefPicList0[0]、すなわち参照リストL0の参照インデックスが0のピクチャが異なる時間のピクチャcolPicとなる(ステップS3205)。
【0109】
次に、
図17のフローチャートに戻り、異なる時間の予測ブロックcolPUを導出し、符号化情報を取得する(ステップS3102)。
【0110】
図19は
図17のステップS3102の異なる時間のピクチャcolPicの予測ブロックcolPUの導出処理手順を説明するフローチャートである。
【0111】
まず、異なる時間のピクチャcolPic内で処理対象の予測ブロックと同一位置の右下(外側)に位置する予測ブロックを異なる時間の予測ブロックcolPUとする(ステップS3301)。この予測ブロックは
図9の予測ブロックT0に相当する。
【0112】
次に、異なる時間の予測ブロックcolPUの符号化情報を取得する(ステップS3302)。異なる時間の予測ブロックcolPUのPredModeが利用できないか、異なる時間の予測ブロックcolPUの予測モードPredModeがイントラ予測(MODE_INTRA)である場合(ステップS3303のYES、ステップS3304のYES)、異なる時間のピクチャcolPic内で処理対象の予測ブロックと同一位置の中央左上に位置する予測ブロックを異なる時間の予測ブロックcolPUとする(ステップS3305)。この予測ブロックは
図9の予測ブロックT1に相当する。
【0113】
次に、
図17のフローチャートに戻り、符号化または復号対象の予測ブロックと同位置の他ピクチャの予測ブロックから導出されるL0の予測動きベクトルmvL0Colと時間マージ候補Colが有効か否かを示すフラグavailableFlagL0Colを導出するとともに(ステップS3103)、L1の予測動きベクトルmvL1Colと時間マージ候補Colが有効か否かを示すフラグavailableFlagL1Colを導出する(ステップS3104)。さらに、フラグavailableFlagL0Col またはフラグavailableFlagL1Colが1の場合に、時間マージ候補Colが有効か否かを示すフラグavailableFlagColを1に設定する。
【0114】
図20は
図17のステップS3103、ステップS3104の時間マージ候補のインター予測情報の導出処理手順を説明するフローチャートである。L0またはL1で、時間マージ候補の導出対象のリストをLXとし、LXを用いた予測をLX予測とする。以下、断りのない限り、この意味で用いる。時間マージ候補のL0の導出処理であるステップS3103として呼び出される際には、LXがL0となり、時間マージ候補のL1の導出処理であるステップS3104として呼び出される際には、LXがL1となる。
【0115】
異なる時間の予測ブロックcolPUの予測モードPredModeがイントラ予測(MODE_INTRA)か、利用できない場合(ステップS3401のNO、ステップS3402のNO)、フラグavailableFlagLXColとフラグpredFlagLXColを共に0とし(ステップS3403)、動きベクトルmvLXColを(0,0)として(ステップS3404)、本時間マージ候補のインター予測情報の導出処理を終了する。
【0116】
予測ブロックcolPUが利用できて予測モードPredModeがイントラ予測(MODE_INTRA)でない場合(ステップS3401のYES、ステップS3402のYES)、以下の手順でmvColとrefIdxColとavailableFlagColを導出する。
【0117】
予測ブロックcolPUのL0予測が利用されているかどうかを示すフラグPredFlagL0[xPCol][yPCol]が0の場合(ステップS3405のYES)、予測ブロックcolPUの予測モードはPred_L1であるので、動きベクトルmvColが予測ブロックcolPUのL1の動きベクトルであるMvL1[xPCol][yPCol]と同じ値に設定され(ステップS3406)、参照インデックスrefIdxColがL1の参照インデックスRefIdxL1[xPCol][yPCol]と同じ値に設定され(ステップS3407)、リストListColがL1に設定される(ステップS3408)。ここで、xPCol、yPColは異なる時間のピクチャcolPic内での予測ブロックcolPUの左上の画素の位置を示すインデックスである。
【0118】
一方、予測ブロックcolPUのL0予測フラグPredFlagL0[xPCol][yPCol]が0でない場合(
図20のステップS3405のNO)、予測ブロックcolPUのL1予測フラグPredFlagL1[xPCol][yPCol]が0かどうかを判定する。予測ブロックcolPUのL1予測フラグPredFlagL1[xPCol][yPCol]が0の場合(ステップS3409のYES)、動きベクトルmvColが予測ブロックcolPUのL0の動きベクトルであるMvL0[xPCol][yPCol]と同じ値に設定され(ステップS3410)、参照インデックスrefIdxColがL0の参照インデックスRefIdxL0[xPCol][yPCol]と同じ値に設定され(ステップS3411)、リストListColがL0に設定される(ステップS3412)。
【0119】
予測ブロックcolPUのL0予測フラグPredFlagL0[xPCol][yPCol]と予測ブロックcolPUのL1予測フラグPredFlagL1[xPCol][yPCol]が共に0でない場合(ステップS3405のNO、ステップS3409のNO)、予測ブロックcolPUのインター予測モードは双予測(Pred_BI)であるので、L0、L1の2つの動きベクトルから、一方を選択する(ステップS3413)。
【0120】
図21は予測ブロックcolPUのインター予測モードが双予測(Pred_BI)のときの時間マージ候補のインター予測情報の導出処理手順を示すフローチャートである。
【0121】
まず、すべての参照リストに登録されているすべてのピクチャのPOCが現在の符号化または復号対象ピクチャのPOCより小さいかどうかを判定し(ステップS3501)、予測ブロックcolPUのすべての参照リストであるL0及びL1に登録されているすべてのピクチャのPOCが現在の符号化または復号対象ピクチャのPOCより小さい場合で(ステップS3501のYES)、LXがL0、即ち符号化または復号対象ピクチャのL0の動きベクトルの予測ベクトル候補を導出している場合(ステップS3502のYES)、予測ブロックcolPUのL0の方のインター予測情報を選択し、LXがL1、即ち符号化または復号対象ピクチャのL1の動きベクトルの予測ベクトル候補を導出している場合(ステップS3502のNO)、予測ブロックcolPUのL1の方のインター予測情報を選択する。一方、予測ブロックcolPUのすべての参照リストL0及びL1に登録されているピクチャのPOCの少なくとも1つが現在の符号化または復号対象ピクチャのPOCより大きい場合で(ステップS3501のNO)、フラグcollocated_from_l0_flagが0の場合(ステップS3503のYES)、予測ブロックcolPUのL0の方のインター予測情報を選択し、フラグcollocated_from_l0_flagが1の場合(ステップS3503のNO)、予測ブロックcolPUのL1の方のインター予測情報を選択する。
【0122】
予測ブロックcolPUのL0の方のインター予測情報を選択する場合(ステップのYES、ステップS3503のYES)、動きベクトルmvColがMvL0[xPCol][yPCol]と同じ値に設定され(ステップS3504)、参照インデックスrefIdxColがRefIdxL0[xPCol][yPCol]と同じ値に設定され(ステップS3505)、リストListColがL0に設定される(ステップS3506)。
【0123】
予測ブロックcolPUのL1の方のインター予測情報を選択する場合(ステップS2502のNO、ステップS3503のNO)、動きベクトルmvColがMvL1[xPCol][yPCol]と同じ値に設定され(ステップS3507)、参照インデックスrefIdxColがRefIdxL1[xPCol][yPCol]と同じ値に設定され(ステップS3508)、リストListColがL1に設定される(ステップS3509)。
【0124】
図20に戻り、予測ブロックcolPUからインター予測情報が取得できたらフラグavailableFlagLXColとフラグpredFlagLXColを共に1とする(ステップS3414)。
【0125】
続いて、動きベクトルmvColをスケーリングして時間マージ候補のLXの動きベクトルmvLXColとする(ステップS3415)。この動きベクトルのスケーリング演算処理手順を
図22及び
図23を用いて説明する。
【0126】
図22は
図20のステップS3415の動きベクトルのスケーリング演算処理手順を示すフローチャートである。
【0127】
異なる時間のピクチャcolPicのPOCから、予測ブロックcolPUのリストListColで参照する参照インデックスrefIdxColに対応する参照ピクチャのPOCを減算してピクチャ間距離tdを導出する(ステップS3601)。なお、異なる時間のピクチャcolPicよりも予測ブロックcolPUのリストListColで参照する参照ピクチャのPOCの方が表示順序で前の場合、ピクチャ間距離tdは正の値となり、異なる時間のピクチャcolPicよりも予測ブロックcolPUのリストListColで参照する参照ピクチャのPOCの方が表示順序で後の場合、ピクチャ間距離tdは負の値となる。
td=異なる時間のピクチャcolPicのPOC−予測ブロックcolPUのリストListColで参照する参照ピクチャのPOC
【0128】
現在の符号化または復号対象ピクチャのPOCから
図14のステップS102で導出された時間マージ候補のLXの参照インデックスに対応する参照ピクチャのPOCを減算してピクチャ間距離tbを導出する(ステップS3602)。なお、現在の符号化または復号対象ピクチャよりも現在の符号化または復号対象ピクチャのリストLXで参照する参照ピクチャの方が表示順序で前の場合、ピクチャ間距離tbは正の値となり、現在の符号化または復号対象ピクチャのリストLXで参照する参照ピクチャの方が表示順序で後の場合、ピクチャ間距離tbは負の値となる。
tb=現在の符号化または復号対象ピクチャのPOC−時間マージ候補のLXの参照インデックスに対応する参照ピクチャのPOC
【0129】
続いて、ピクチャ間距離tdとtbを比較し(ステップS3603)、ピクチャ間距離tdとtbが等しい場合(ステップS3603のYES)、時間マージ候補のLXの動きベクトルmvLXColを動きベクトルmvColと同じ値に設定して(ステップS3604)、本スケーリング演算処理を終了する。
mvLXCol=mvCol
【0130】
一方、ピクチャ間距離tdとtbが等しくない場合(ステップS3603のNO)、次式によりmvColにスケーリング係数tb/tdを乗じることでスケーリング演算処理を行い(ステップS3605)、スケーリングされた時間マージ候補のLXの動きベクトルmvLXColを得る。
mvLXCol=tb / td * mvCol
【0131】
また、ステップS3605のスケーリング演算を整数精度の演算で行う場合の例を
図23に示す。
図23のステップS3606〜ステップS3608の処理が、
図22のステップS3605の処理に相当する。
【0132】
まず、
図22のフローチャートと同様に、ピクチャ間距離tdとピクチャ間距離tbを導出する(ステップS3601、ステップS3602)。
【0133】
続いて、ピクチャ間距離tdとtbを比較し(ステップS3603)、ピクチャ間距離tdとtbが等しい場合(ステップS3603のYES)、
図22のフローチャートと同様に、時間マージ候補のLXの動きベクトルmvLXColを動きベクトルmvColと同じ値に設定して(ステップS3604)、本スケーリング演算処理を終了する。
mvLXCol=mvCol
【0134】
一方、ピクチャ間距離tdとtbが等しくない場合(ステップS3603のNO)、次式により変数txを導出する(ステップS3606)。
tx = ( 16384 + Abs( td / 2 ) ) / td
【0135】
続いて、次式によりスケーリング係数DistScaleFactorを導出する(ステップS3607)。
DistScaleFactor = ( tb * tx + 32 ) >> 6
【0136】
続いて、次式により、スケーリングされた時間マージ候補のLXの動きベクトルmvLXColを得る(ステップS3608)。
mvLXCol = ClipMv( Sign( DistScaleFactor * mvCol ) * ( (Abs( DistScaleFactor * mvCol ) + 127 ) >> 8 ) )
【0137】
次に、
図14のステップS104のマージ候補をマージ候補リストに登録する方法について詳細に説明する。
図24はマージ候補リストへのマージ候補の登録処理手順を示すフローチャートである。本方式では、優先順位をつけて、優先順位の高いものからマージ候補リストmergeCandListに予測動きベクトルの候補を登録することで、マージインデックスmerge_idx[x0][y0]の符号量を削減する。優先順位の高い要素をマージ候補リストの前方に配置することで、符号量を削減する。例えば、マージ候補リストmergeCandListの要素が5個の場合、マージ候補リストのインデックス0を「0」、インデックス1を「10」、インデックス2を「110」、インデックス3を「1110」、インデックス4を「11110」とすることで、インデックス0を表す符号量が1ビットとなり、インデックス0に発生頻度が高いと考えられる要素を登録することで、符号量を削減する。
【0138】
マージ候補リストmergeCandListはリスト構造を成し、マージ候補リスト内部の所在を示すマージインデックスと、インデックスに対応するマージ候補を要素として格納する記憶領域が設けられている。マージインデックスの数字は0から開始され、マージ候補リストmergeCandListの記憶領域に、マージ候補が格納される。以降の処理では、マージ候補リストmergeCandListに登録されたマージインデックスiのマージ候補となる予測ブロックは、mergeCandList[i]で表すこととし、マージ候補リストmergeCandListとは配列表記をすることで区別することとする。
【0139】
まず、availableFlagAが1の場合(ステップS4101のYES)、マージ候補リストmergeCandListの先頭にマージ候補Aを登録する(ステップS4102)。
続いて、availableFlagBが1の場合(ステップS4103のYES)、マージ候補リストmergeCandListの最後にマージ候補Bを登録する(ステップS4104)。
続いて、availableFlagCが1の場合(ステップS4105のYES)、マージ候補リストmergeCandListの最後にマージ候補Cを登録する(ステップS4106)。
続いて、availableFlagDが1の場合(ステップS4107のYES)、マージ候補リストmergeCandListの最後にマージ候補Dを登録する(ステップS4108)。
続いて、availableFlagEが1の場合(ステップS4109のYES)、マージ候補リストmergeCandListの最後にマージ候補Eを登録する(ステップS4110)。
続いて、availableFlagColが1の場合(ステップS4111のYES)、マージ候補リストmergeCandListの最後にマージ候補Colを登録する(ステップS4112)。
【0140】
なお、マージモードにおいて、左に隣接する予測ブロックA及び上に隣接する予測ブロックBは符号化または復号対象の予測ブロックと一体となる動きになることが多いので、予測ブロックA、Bのインター予測情報が取得できる場合には、マージ候補A、Bを他のマージ候補C,D,E,Colよりも優先的にマージ候補リストの前方に登録する。
【0141】
図12において、動画像符号化装置のインター予測情報導出部104の符号化情報選択部137では、マージ候補リストに登録されているマージ候補の中から、マージ候補を選択し、マージインデックスおよびマージインデックスに対応するマージ候補のインター予測情報を動き補償予測部105に供給する。
【0142】
マージ候補の選択においては、予測方法決定部107と同様の方法を用いることができる。それぞれのマージ候補ごとに符号化情報及び残差信号の符号量と予測画像信号と画像信号との間の符号化歪を導出し、最も少ない発生符号量と符号化歪となるマージ候補が決定される。それぞれのマージ候補毎にマージモードの符号化情報であるマージインデックスのシンタックス要素merge_idxのエントロピー符号化を行い、符号化情報の符号量を算出する。さらに、それぞれのマージ候補毎に動き補償予測部105と同様の方法で各マージ候補のインター予測情報に応じて動き補償した予測画像信号と、画像メモリ101から供給される符号化対象の画像信号との予測残差信号を符号化した予測残差信号の符号量を算出する。符号化情報、即ちマージインデックスの符号量と予測残差信号の符号量とが加算された総発生符号量を算出し評価値とする。
【0143】
また、こうした予測残差信号を符号化後に、歪量評価の為に復号し、符号化により生じる元の画像信号との誤差を表す比率として符号化歪が算出される。これら総発生符号量と符号化歪とをマージ候補毎に比較することで、少ない発生符号量と符号化歪となる符号化情報が決定される。決定された符号化情報に対応するマージインデックスが、予測ブロック単位の第2のシンタックスパターンで表されるフラグmerge_idxとして符号化される。
尚、ここで算出される発生符号量は、符号化過程をシミュレートしたものであることが望ましいが、簡便に近似したり、概算することも可能である。
【0144】
一方、
図13において、動画像符号化装置のインター予測情報導出部205の符号化情報選択部237では、マージ候補リストに登録されているマージ候補の中から、供給されたマージインデックスに対応するマージ候補を選択し、マージ候補のインター予測情報を動き補償予測部206に供給するとともに、符号化情報格納メモリ210に格納する。
【0145】
以上に述べた本実施の形態においては、スライス単位でマージ候補リストmergeCandListに登録される最終的なマージ候補数finalNumMergeCandを設定する。以下、本実施の形態をいくつかの実施例に分けて説明する。まず、本実施の形態の実施例1について説明する。本実施の形態の実施例1においては、スライスタイプ毎に符号化側と復号側で共通の最終マージ候補数finalNumMergeCandを規定する。MPEG−4 AVC/H.264等と同様に、本実施の形態に準拠する装置、ソフトウェアまたはビットストリームは、主に目的や用途別に定義された処理機能の集合を表すプロファイルと画像サイズやフレームレートにも関係する処理の負荷や使用メモリ量等の処理能力を表すレベルを定義することができ、プロファイルとレベルによって、装置やソフトウェアの性能、またはビットストリームをデコードするのに必要な性能を示す。プロファイルまたはレベルのいずれか一方、またはプロファイルとレベルの組み合わせに応じてスライスタイプ毎に最終マージ候補数finalNumMergeCandの値を規定してもよいし、プロファイルやレベルに係わらずスライスタイプ毎に最終マージ候補数finalNumMergeCandの値を規定してもよい。例えば、IスライスとPスライスのみを利用して符号化または復号するシンプルな機能で構成されるプロファイルにおいては、Pスライスの最終マージ候補数finalNumMergeCandを3に規定する。Iスライス、Pスライスに加えてBスライスも利用して符号化または復号する複雑で符号化効率のよい機能で構成されるプロファイルにおいては、Pスライス、及びBスライスの最終マージ候補数finalNumMergeCandを共に同数の5に規定してもよいが、Pスライスの最終マージ候補数finalNumMergeCandをBスライスの最終マージ候補数finalNumMergeCandよりも小さい数である3に規定することで、Pスライスのマージインデックスの符号量を小さく抑えるとともに、マージインデックスの符号化または復号に係わる処理量を削減することができる。
【0146】
スライスタイプがL0予測のみを利用できるPスライスの場合、L0予測、L1予測、双予測を利用できるBスライスに比べて、インター予測が選択されにくいのでマージ候補リストに登録されるマージ候補が得られにくく、またマージ候補同士のインター予測情報が同一になりやすいので、マージ候補リストに登録されるマージ候補数は小さくなりやすい。したがって、PスライスではBスライスよりも最終的なマージ候補数を小さく設定してもBスライスほど符号化効率が低下せず、マージインデックスの符号量を小さく抑えるとともに、マージインデックスの符号化または復号に係わる処理量を削減することができる。
符号化効率の高いBスライスではなく、Pスライスにより符号化または復号することの理由の一つとして、Pスライスの方が処理量が少ないことがあげられる。特に、IスライスとPスライスのみを利用して符号化または復号するシンプルな機能で構成されるプロファイルは、少ない処理量で符号化または復号するために設定されるので、Pスライスの最終マージ候補数finalNumMergeCandを小さい数に設定してマージインデックスの符号化または復号に係わる処理量を削減することの効果は大きい。
【0147】
図25は本実施の形態の実施例1の方法による符号化側および復号側で共通の最終マージ候補数finalNumMergeCandの設定処理手順を説明するフローチャートである。最終マージ候補数finalNumMergeCandは符号化装置ではヘッダ情報設定部117で設定され、復号装置では第1符号化ビット列復号部212で設定される。スライスタイプslice_typeがPスライスの場合(
図25のステップS201のYES)、最終マージ候補数finalNumMergeCandをPスライスの規定数(本実施の形態では3)に設定する(
図25のステップS203)。スライスタイプslice_typeがBスライスの場合(
図25のステップS201のNO、ステップS202のYES)、最終マージ候補数finalNumMergeCandをBスライスの規定数(本実施の形態では5)に設定する(
図25のステップS204)。スライスタイプslice_typeがIスライスの場合(
図25のステップS201のNO、ステップS202のNO)、最終マージ候補数finalNumMergeCandを0に設定する(
図25のステップS205)。
【0148】
なお、最終マージ候補数finalNumMergeCandと同様に、プロファイルまたはレベルのいずれか一方、またはプロファイルとレベルの組み合わせに応じてスライスタイプ毎に空間マージ候補数の上限値maxNumSpatialMergeCandの値を規定してもよいし、プロファイルやレベルに係わらずスライスタイプ毎に空間マージ候補数の上限値maxNumSpatialMergeCandの値を規定してもよい。符号化効率と処理量を考慮して、符号化効率を重視するケース(プロファイル、レベル、またはスライスタイプ)では空間マージ候補数の上限値maxNumSpatialMergeCandを大きな値に規定し、処理量を重視するケースでは空間マージ候補数の上限値maxNumSpatialMergeCandを小さな値に規定する。
【0149】
次に本実施の形態の実施例2について説明する。本実施の形態の実施例2では、
図26のビットストリームの符号化および復号の共通規則であるシンタックス規則の一例に示すように、スライス単位でスライスヘッダに最終的なマージ候補数finalNumMergeCandを示すシンタックス要素num_merge_candを設定する。ただし、スライスタイプ毎に最終マージ候補数の上限値を規定する。プロファイルとレベルの組み合わせに応じてスライスタイプ毎に最終マージ候補数の上限値を規定してもよいし、プロファイルやレベルに係わらずスライスタイプ毎に最終マージ候補数の上限値を規定してもよい。例えば、IスライスとPスライスのみを利用して符号化または復号するシンプルな機能で構成されるプロファイルにおいては、Pスライスの最終マージ候補数の上限値を3と規定する。Iスライス、Pスライスに加えてBスライスも利用して符号化または復号する複雑で符号化効率のよい機能で構成されるプロファイルにおいては、Pスライス、及びBスライスの最終マージ候補数の上限値を共に同数の5に規定してもよいし、Pスライスの最終マージ候補数の上限値をBスライスの最終マージ候補数の上限値よりも小さい数に規定することもできる。
【0150】
図27は本実施の形態の実施例2の方法による符号化側での最終マージ候補数finalNumMergeCandの設定処理手順を説明するフローチャートであり、
図28は本実施の形態の実施例2の方法による復号側での最終マージ候補数finalNumMergeCandの設定処理手順を説明するフローチャートである。最終マージ候補数finalNumMergeCandは符号化装置ではヘッダ情報設定部117で設定され、復号装置では第1符号化ビット列復号部212で設定される。符号化側ではスライスタイプslice_typeがPスライスの場合(
図27のステップS201のYES)、最終マージ候補数finalNumMergeCandを規定されたPスライスの上限値と同じ値または上限値を超えない値(本実施の形態では3)に設定する(
図27のステップS206)。スライスタイプslice_typeがBスライスの場合(
図27のステップS201のNO、ステップS202のYES)、最終マージ候補数finalNumMergeCandを規定されたBスライスの上限値と同じ値または上限値を超えない値(本実施の形態では5)に設定する(
図27のステップS207)。スライスタイプslice_typeがIスライスの場合(
図27のステップS201のNO、ステップS202のNO)、最終マージ候補数finalNumMergeCandを0に設定する(
図27のステップS205)。さらに、スライス単位で設定された最終マージ候補数finalNumMergeCandを示すシンタックス要素numMergeCandをエントロピー符号化する(
図27のステップS208)。復号側ではビットストリームを復号してシンタックス要素numMergeCandから最終マージ候補数finalNumMergeCandを導出する(
図28のS209)。
【0151】
なお、シンタックス要素max_num_spatial_merge_candの値に応じて最終マージ候補数finalNumMergeCandとともに空間マージ候補数の上限値maxNumSpatialMergeCandを規定することもできる。この場合、最終マージ候補数finalNumMergeCandと空間マージ候補数の上限値maxNumSpatialMergeCandは同じ値を規定してもよいし、別の値を規定してもよい。プロファイル、レベル、またはスライスタイプに応じて、符号化効率と処理量を考慮して、符号化効率を重視するケースでは空間マージ候補数の上限値maxNumSpatialMergeCandを大きな値に規定し、処理量を重視するケースでは空間マージ候補数の上限値maxNumSpatialMergeCandを小さな値に規定する。
【0152】
または、
図26に示すように、スライス単位でスライスヘッダに空間マージ候補数の上限値maxNumSpatialMergeCandを示すシンタックス要素max_num_spatial_merge_candを設定することもできる。符号化側でシンタックス要素max_num_spatial_merge_candを符号化し、復号側ではビットストリームを復号して得られたシンタックス要素max_num_spatial_merge_candの値に応じた空間マージ候補数の上限値maxNumSpatialMergeCandに基づいて復号処理を行う。この場合、符号化側で符号化側の処理能力の範囲内で空間マージ候補数の上限値maxNumSpatialMergeCandを設定することで、空間マージ候補導出の処理量やマージ候補同一判定の処理量を制御する事ができる。
【0153】
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
【0154】
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
【0155】
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
【0156】
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
【0157】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。