【文献】
Hideki Takehara et al.,Bi-derivative merge candidate,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-F372,pp.1-5
【文献】
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
【文献】
Chul Keun Kim et al.,Non-CE9: reordering of merge candidate,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-G396r2,pp.1-15
【文献】
Yunfei Zheng et al.,Non-CE13: Simplification and improvement of additional merge candidate,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-G683_2,pp.1-9
【文献】
Toshiyasu Sugio and Takahiro Nishi,On MVP candidate list for AMVP/Merge,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,9th Meeting: Geneva, CH,2012年 4月,JCTVC-I0134,pp.1-6
【文献】
Hiroya Nakamura et al.,Default value for skip/merge and AMVP,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,9th Meeting: Geneva, CH,2012年 4月,JCTVC-I0314_r2,pp.1-16
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
まず、本発明の実施の形態の前提となる技術を説明する。
【0016】
現在、MPEG(Moving Picture Experts Group)などの符号化方式に準拠した装置およびシステムが普及している。そのような符号化方式では、時間軸上に連続する複数の画像をデジタル信号の情報として取り扱う。その際、効率の高い情報の放送、伝送または蓄積などを目的とし、画像を複数のブロックに分割して時間方向の冗長性を利用した動き補償予測、および空間方向の冗長性を利用した離散コサイン変換などの直交変換を用いて圧縮符号化する。
【0017】
2003年に、国際標準化機構(ISO)と国際電気標準会議(IEC)のジョイント技術委員会(ISO/IEC)と、国際電気通信連合電気通信標準化部門(ITU−T)の共同作業によってAVCと呼ばれる符号化方式(ISO/IECでは14496−10、ITU−TではH.264の規格番号がつけられている)が国際標準として制定された。AVCでは、基本的に処理対象ブロックの複数の隣接ブロックの動きベクトルの中央値を予測ベクトルとする。予測ブロックサイズが正方形でない場合で処理対象ブロックの特定の隣接ブロックの参照インデックスと処理対象ブロックの参照インデックスが一致する場合には、その特定の隣接ブロックの動きベクトルを予測ベクトルとする。
【0018】
現在、国際標準化機構(ISO)と国際電気標準会議(IEC)のジョイント技術委員会(ISO/IEC)と、国際電気通信連合電気通信標準化部門(ITU−T)の共同作業によってHEVCと呼ばれる符号化方式の標準化が検討されている。
【0019】
HEVCの標準化では、処理対象のブロックの複数の隣接ブロックと復号済みの別の画像のブロックを候補ブロックとして、これら候補ブロック群で構成される候補ブロック群から1つの候補ブロックが選択されて、選択された候補ブロックの情報が符号化および復号されて、選択された候補ブロックの動き情報が処理対象のブロックの動き情報として利用されるマージモードが検討されている。
また、処理対象のブロックの複数の隣接ブロックと復号済みの別の画像のブロックを候補ブロックとして、これら候補ブロック群で構成される候補ブロック群から1つの候補ブロックが選択されて、選択された候補ブロックの情報が符号化および復号されて、選択された候補ブロックの動きベクトルが処理対象のブロックの予測ベクトルとして利用される予測ベクトルモードが検討されている。
【0020】
[実施の形態1]
(符号化ブロック)
本実施の形態では、入力された画像信号は最大符号化ブロック単位に分割され、分割された最大符号化ブロックをラスタースキャン順序で処理する。符号化ブロックは階層構造となっており、符号化効率などを考慮して順次4分割することでより小さい符号化ブロックにすることができる。なお、4分割された符号化ブロックはジグザグスキャン順で符号化される。これ以上小さくすることのできない符号化ブロックを最小符号化ブロックと呼ぶ。符号化ブロックは符号化の単位となり、最大符号化ブロックも分割回数が0である場合は符号化ブロックとなる。本実施の形態では、最大符号化ブロックを64画素×64画素、最小符号化ブロックを8画素×8画素とする。
【0021】
図1(a)、(b)は、符号化ブロックを説明するための図である。
図1(a)の例では、符号化ブロックが10個に分割されている。CU0、CU1およびCU9は32画素×32画素の符号化ブロック、CU2、CU3およびCU8は16画素×16画素の符号化ブロック、ならびにCU4、CU5、CU6およびCU7は8画素×8画素の符号化ブロックとなっている。
図1(b)の例では、符号化ブロックが1個に分割されている。
【0022】
(予測ブロック)
本実施の形態では、符号化ブロックはさらに予測ブロック(パーティションともいう)に分割される。符号化ブロックは予測ブロックサイズタイプ(分割タイプやパーティションタイプともいう)によって1以上の予測ブロックに分割される。
図2(a)〜(d)は、予測ブロックサイズタイプを説明するための図である。
図2(a)は符号化ブロックを分割しない2N×2N、
図2(b)は水平に2分割する2N×N、
図2(c)は垂直に2分割するN×2N、および
図2(d)は水平と垂直に4分割するN×Nを示す。2N×2Nは1個の予測ブロック0、2N×NとN×2Nは2個の予測ブロック0と予測ブロック1、N×Nは4個の予測ブロック0、予測ブロック1、予測ブロック2、予測ブロック3からなる。予測ブロック0、予測ブロック1、予測ブロック2、予測ブロック3の順に符号化される。
【0023】
図3は、符号化ブロックの分割回数と予測ブロックサイズタイプによる予測ブロックサイズを説明するための図である。本実施の形態における予測ブロックサイズは、CU分割回数が0であって予測ブロックサイズタイプが2N×2Nである64画素×64画素からCU分割回数が3であって予測ブロックサイズタイプN×Nである4画素×4画素までの13の予測ブロックサイズが存在することになる。例えば、符号化ブロックを非対称に水平や垂直に2分割することもできる。
【0024】
本実施の形態では、最大符号化ブロックを64画素×64画素、最小符号化ブロックを8画素×8画素とするが、この組み合わせに限定されない。また、予測ブロックの分割のパターンを
図2(a)〜(d)としたが、1以上に分割される組み合わせであればよくこれに限定されない。
【0025】
(ピクチャとスライス)
ピクチャとスライスはAVCなどで利用されている一般的な概念であるためここでは説明は省略する。また、Iピクチャ、Pピクチャ、Bピクチャ、Iスライス、Pスライス、Bスライスについても一般的な概念であるためここでは説明は省略する。以下、画像はピクチャといいかえてもよい。
【0026】
(予測符号化モード)
本実施の形態では、動き補償予測や符号化ベクトル数を予測ブロック毎に切り替えることが可能となっている。ここで、動き補償予測と符号化ベクトル数を関連付けた予測符号化モードの一例について
図4を用いて簡単に説明する。
図4は、予測符号化モードを説明するための図である。
【0027】
図4に示す予測符号化モードには、動き補償予測の予測方向が単予測(L0予測)であって符号化ベクトル数が1であるPredL0、動き補償予測の予測方向が単予測(L1予測)であって符号化ベクトル数が1であるPredL1、動き補償予測の予測方向が双予測(BI予測)であって符号化ベクトル数が2であるPredBI、および動き補償予測の予測方向が単予測(L0予測/L1予測)または双予測(BI予測)であって符号化ベクトル数が0であるマージモード(MERGE)がある。また、動き補償予測を実施しない予測符号化モードであるイントラモード(Intra)もある。ここで、PredL0、PredL1、およびPredBIが予測ベクトルモードとなる。
【0028】
マージモードでは予測方向がL0予測/L1予測/BI予測のいずれにもなるが、それは、マージモードの予測方向は候補ブロック群から選択された候補ブロックの予測方向をそのまま引き継ぐか、復号済みの情報から導出されるためである。また、マージモードでは符号化ベクトルが符号化されない。これは、マージモードの符号化ベクトルは候補ブロック群から選択された候補ブロックの動きベクトルをそのまま引き継ぐか、あらかじめ定められた規則によって導出されるためである。
【0029】
(参照インデックス)
本実施の形態では、動き補償予測の精度向上のために、動き補償予測において複数の参照画像の中から最適な参照画像を選択することを可能とする。そのため、動き補償予測で利用した参照画像を参照画像インデックスとして符号化ベクトルとともに符号化する。動き補償予測で利用される参照画像インデックスは0以上の数値となる。参照インデックスには、参照インデックスL0(L0予測の参照インデックスともいう)と参照インデックスL1(L1予測の参照インデックスともいう)がある。動き補償予測が単予測であれば、参照インデックスは参照インデックスL0または参照インデックスL1のいずれか1つ利用され、動き補償予測が双予測であれば、参照インデックスL0と参照インデックスL1の2つの参照インデックスが利用される(
図4)。参照インデックスの符号列としては後述するTruncated Unary符号列が用いられる。
【0030】
マージモードでは参照インデックスは符号化されない。これは、マージモードの参照インデックスは候補ブロック群から選択された候補ブロックの参照インデックスをそのまま引き継ぐか、あらかじめ定められた規則によって導出されるためである。
【0031】
(参照ピクチャリスト)
本実施の形態では、動き補償予測で利用できる1以上の参照画像を参照ピクチャリスト内に登録しておき、参照ピクチャリスト内に登録された参照画像を参照インデックスで示すことによって参照画像を確定させて動き補償予測で利用する。参照ピクチャリストには、参照ピクチャリストL0(L0予測の参照ピクチャリストともいう)と参照ピクチャリストL1(L1予測の参照ピクチャリストともいう)がある。動き補償予測が単予測の場合は、参照ピクチャリストL0の中の参照画像を用いたL0予測、または参照ピクチャリストL1の中の参照画像を用いたL1予測のいずれかを利用する。双予測の場合は参照ピクチャリストL0と参照ピクチャリストL1の2つを利用したBI予測を利用する。
なお、参照インデックスL0は参照ピクチャリストL0の参照画像を示し、参照インデックスL1は参照ピクチャリストL1の参照画像を示す。
【0032】
(マージインデックス)
本実施の形態では、マージモードの場合には、処理対象画像内の複数の隣接ブロックおよび符号化済みの別の画像内の処理対象の予測ブロックと同一位置にある同一位置予測ブロック内と同一位置予測ブロックの周辺にあるブロックを候補ブロック群として、候補ブロック群の中から最適な予測符号化モード、動きベクトル、及び参照インデックスを持つ候補ブロックを選択し、選択した候補ブロックを示すためのマージインデックスを符号化および復号する。マージモードのときのみマージインデックスが1つ利用される(
図4)。
ここでは、マージインデックスの最大個数(マージ候補最大数ともいう)はスライスヘッダで指定されるものとする。マージ候補最大数については後述する。なお、マージ候補最大数が5の場合のマージインデックスは0から4までの整数となる。
【0033】
以降、マージインデックスの対象となる候補ブロックの動き情報を結合動き情報候補と呼び、結合動き情報候補の集合体を結合動き情報候補リストと呼ぶ。以降、動き情報とは予測方向、動きベクトル、及び参照インデックスを含む。
【0034】
次に、マージインデックスと符号列の関係について説明する。
図5はマージ候補最大数が5である場合のマージインデックスと符号列の関係を説明するための図である。マージインデックスの符号列としてTruncated Unary符号列を用いる。マージインデックスが0の場合の符号列は'0'、マージインデックスが1の場合の符号列は'10'、マージインデックスが2の場合の符号列は'110'、マージインデックスが3の場合の符号列は'1110'、マージインデックスが4の場合の符号列は'1111'となり、マージインデックスが小さくなるほど符号列が短くなるように設定される。そのため、選択率の高い候補ブロックに小さいマージインデックスを割り当てることで、符号化効率を向上させることができる。
【0035】
マージ候補最大数が4である場合は、マージインデックスが0の場合の符号列は'0'、マージインデックスが1の場合の符号列は'10'、マージインデックスが2の場合の符号列は'110'、マージインデックスが3の場合の符号列は'111'となる。マージ候補最大数が3である場合は、マージインデックスが0の場合の符号列は'0'、マージインデックスが1の場合の符号列は'10'、マージインデックスが2の場合の符号列は'11'となる。マージ候補最大数が2である場合は、マージインデックスが0の場合の符号列は'0'、マージインデックスが1の場合の符号列は'1'となる。マージ候補最大数が1である場合は、マージインデックスが0は符号化ストリーム中には符号化されず、復号時にはマージインデックスは暗黙的に0として処理される。
【0036】
次に、結合動き情報候補リストとマージインデックスの関係について説明する。マージインデックス0は結合動き情報候補リスト内の最初(0番目)の結合動き情報候補を示す。以下、マージインデックスmは結合動き情報候補リスト内のm番目の結合動き情報候補を示す。ここで、mは0から(マージ候補最大数−1)の整数となる。
【0037】
(予測ベクトルインデックス)
本実施の形態では、予測ベクトルの精度を向上させるために、処理対象画像内の複数の隣接ブロックおよび符号化済みの別の画像の処理対象ブロックと同一位置にある同一位置予測ブロック内と同一位置予測ブロックの周辺にあるブロックを候補ブロック群として、候補ブロック群から予測ベクトルとして最適な動きベクトルを持つ候補ブロックを選択し、選択した候補ブロックを示すための予測ベクトルインデックスを符号化および復号する。動き補償予測が単予測であれば、予測ベクトルインデックスは1つ利用され、動き補償予測が双予測であれば、2つの予測ベクトルインデックスが利用される(
図4)。予測ベクトルインデックスの最大数(予測ベクトル候補最大数ともいう)は2であり、予測ベクトルインデックスは0または1の整数となる。ここでは、予測ベクトル候補最大数を2としたが、2以上であればよく、これに限定されない。
次に、予測ベクトルインデックスと符号列の関係について説明する。予測ベクトルインデックスの符号列としてTruncated Unary符号列を用いる。
予測ベクトルインデックスの符号列は予測ベクトルインデックスが0の場合の符号列は'0'、予測ベクトルインデックスが1の場合の符号列は'1'とする。
【0038】
以降、予測ベクトルインデックスの対象となる候補ブロックの動きベクトルを予測ベクトル候補と呼び、予測ベクトル候補の集合体を予測ベクトル候補リストと呼ぶ。予測ベクトルインデックス0は予測ベクトル候補リスト内の最初(0番目)の予測ベクトル候補を示す。以下、予測ベクトルインデックスmは予測ベクトル候補リスト内のm番目の予測ベクトル候補を示す。ここで、mは0から(予測ベクトル候補最大数−1)の整数となる。
【0039】
(POC)
本発明の実施の形態では、画像の時間情報(距離情報)としてPOC(Picture Order Count)を用いる。POCは画像の表示順序を示すカウンタであってAVCで定義されているものと同様であるとする。ここでは、画像の表示順序が1増加するとPOCも1増加するとする。したがって、画像間のPOC差から画像間の時間差(距離)を取得できる。
【0040】
(シンタックス)
本実施の形態による予測ブロックのシンタックスの一例について説明する。
図6は本実施の形態に係るシンタックスを説明する図である。
図6はPPS(Picture Parameter Set)、スライスヘッダ(Slice Header)、符号化木(Coding Tree)、符号化ブロック(Coding Unit)、及び予測ブロック(Prediction Unit)のシンタックス構成の一例を示す。
【0041】
PPSはピクチャの特性を決定するためのパラメータ群を定義するパラメータセットである。PPSには当該ピクチャで利用できるL0予測の参照インデックスの所定の最大値(num_ref_idx_l0_default_active_minus1)、L1予測の参照インデックスの所定の最大値(num_ref_idx_l1_default_active_minus1)、及び時間候補利用許可フラグ(enable_temporal_mvp_flag)が設置される。
【0042】
時間候補利用許可フラグは0または1の値を1ビットの符号であって、ColPic上の動きベクトルと参照インデックスの利用を制限するためのフラグである。時間候補利用許可フラグが1であれば、ColPic上の動きベクトルと参照インデックスが利用可能となり、時間候補利用許可フラグが0であれば、ColPic上の動きベクトルと参照インデックスは利用不可能となる。本実施の形態では、時間候補利用許可フラグは1として説明する。
【0043】
スライスヘッダはスライスの特性を決定するためのパラメータ群を定義したヘッダである。スライスヘッダにはPOCと当該スライスがPスライスまたはBスライスである場合に当該スライスで利用できる参照インデックスの最大値を変更するためのフラグ(num_ref_idx_active_override_flag)、L0予測の参照インデックスの最大値(num_ref_idx_l0_active_minus1)、及びL1予測の参照インデックスの最大値(num_ref_idx_l1_active_minus1)が設置される。
【0044】
参照インデックスの最大値を変更するためのフラグが1であれば、当該スライスで利用できるL0予測の参照インデックスの最大値(num_ref_idx_l0_active_minus1)がスライスヘッダに設置され、当該スライスがBスライスである場合には当該スライスで利用できるL1予測の参照インデックスの最大値(num_ref_idx_l1_active_minus1)がさらにスライスヘッダに設置され、利用される。
【0045】
参照インデックスの最大値を変更するためのフラグが0であれば、当該スライスで利用できるL0予測の参照インデックスの最大値としてPPSで設置されたL0予測の参照インデックスの所定の最大値が利用され、当該スライスで利用できるL1予測の参照インデックスの最大値としてPPSで設置されたL1予測の参照インデックスの所定の最大値が適用される。
【0046】
また、当該スライスがPスライスまたはBスライスである場合には、マージ候補最大数を決定するためのパラメータである5_minus_max_num_merge_candsが設置される。5_minus_max_num_merge_candsはマージ候補最大数を決定するためのパラメータであって、0から4までの整数となる。マージ候補最大数(MaxNumMergeCand)は5から5_minus_max_num_merge_candsを減算することで算出される。5_minus_max_num_merge_candsの符号列にはTruncated Unary符号列が用いられるとする。本実施の形態では、5_minus_max_num_merge_candsは0で、マージ候補最大数は5として説明する。
符号化木では符号化ブロックの分割情報が管理される。符号化木にはsplit_coding_unit_flagが設置され、split_coding_unit_flagが1であれば符号化木は4個の符号化木に分割される。split_coding_unit_flagが0であれば符号化木は符号化ブロックとなる。
【0047】
符号化ブロックには、スキップモードフラグ(skip_flag)、予測モード(pred_mode)と予測ブロックサイズタイプ(part_mode)が設置され、スキップモードフラグと予測ブロックサイズタイプに応じて1個または2個または4個の予測ブロックに分割される。
【0048】
予測モードはイントラ予測(画面内予測)を行う符号化ブロックであるかインター予測(動き補償予測)を行う符号化ブロックであるかを示す。スキップモードフラグが1である場合はスキップモードとなって、スキップモードは1個の予測ブロックを持つ。符号化ブロック(符号化木)の分割回数は符号化ブロック(符号化木)の深さともいう。
【0049】
予測ブロックには、マージフラグ(merge_flag)、マージインデックス(merge_idx)、インター予測タイプ(inter_pred_type)、L0予測の参照インデックス(ref_idx_l0)、L0予測の差分ベクトル(mvd_l0[0]、mvd_l0[1])、L0予測の予測ベクトルインデックス(mvp_idx_l0)、L1予測の参照インデックス(ref_idx_l1)、L1予測の差分ベクトル(mvd_l1[0]、mvd_l1[1])、及びL1予測の予測ベクトルインデックス(mvp_idx_l1)が設置されている。差分ベクトルの[0]は水平成分、[1]は垂直成分を示す。
【0050】
ここで、inter_pred_typeは動き補償予測の予測方向(インター予測タイプとも呼ぶ)を示し、Pred_L0(L0予測の単予測)、Pred_L1(L1予測の単予測)およびPred_BI(BI予測の双予測)の3種類がある。inter_pred_typeがPred_L0またはPred_BIの場合は、L0予測に関する情報が設置されて、inter_pred_typeがPred_L1またはPred_BIの場合は、L1予測に関する情報が設置される。Pスライスではinter_pred_typeは一意にPred_L0となるため、inter_pred_typeは省略される。
【0051】
また、スキップモードの場合、予測ブロックはインター予測を行う符号化ブロックであって、予測符号化モードとしてはマージモードとなる。そのため、スキップモードの場合はマージインデックスが設置される。
【0052】
なお、本実施の形態に係るシンタックスを
図6のように設定したが、符号化ブロックや予測ブロックが複数のブロックサイズを有し、参照画像を利用し、マージモードと予測ベクトルモードが利用できればよく、これに限定されない。
【0053】
以下、図面とともに本発明の好適な実施の形態に係る動画像符号化装置、動画像符号化方法および動画像符号化プログラム、ならびに動画像復号装置、動画像復号方法および動画像復号プログラムの詳細について説明する。なお、図面の説明において同一要素には同一符号を付与して重複する説明を省略する。
【0054】
(動画像符号化装置100の構成)
図7は、本実施の形態1に係る動画像符号化装置100の構成を示す。動画像符号化装置100は、動画像信号を、動き補償予測を実施する予測ブロック単位で符号化する装置である。スライスタイプの決定、スライスで利用できる参照インデックスの最大値、符号化ブロックの分割、スキップモードの決定、予測ブロックサイズタイプの決定、予測ブロックサイズと予測ブロックの符号化ブロック内の位置(予測ブロックの位置情報や予測ブロック番号ともいう)の決定、予測符号化モードがイントラであるかの決定は動画像符号化装置100の外部の符号化制御部112で決定されて動画像符号化装置100に供給される。参照ピクチャリストは動画像符号化装置100の外部の参照ピクチャリスト生成部113で生成されて動画像符号化装置100に供給される。実施の形態1では予測符号化モードがイントラでない場合について説明する。また、実施の形態1では特に断らない限り、双予測に対応したBピクチャ(Bスライス)について説明するが、双予測に対応しないPピクチャ(Pスライス)についてはL1予測を省略すればよい。
【0055】
動画像符号化装置100は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像符号化装置100は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。なお、スライスタイプ、参照ピクチャリスト、スライスで利用できる参照インデックスの最大値、処理対象の予測ブロックの位置情報、予測ブロックサイズおよび動き補償予測の予測方向に関しては動画像符号化装置100内で共有していることとし、図示しない。
【0056】
実施の形態1の動画像符号化装置100は、予測ブロック画像取得部101、減算部102、予測誤差符号化部103、符号列生成部104、予測誤差復号部105、動き補償部106、加算部107、動きベクトル検出部108、動き情報生成部109、フレームメモリ110、および動き情報メモリ111を含む。
【0057】
(動画像符号化装置100の機能と動作)
以下、各部の機能と動作について説明する。予測ブロック画像取得部101は、予測ブロックの位置情報と予測ブロックサイズに基づいて、端子10より供給される画像信号から処理対象の予測ブロックの画像信号を取得し、予測ブロックの画像信号を減算部102、動きベクトル検出部108および動き情報生成部109に供給する。
【0058】
動きベクトル検出部108は、予測ブロック画像取得部101より供給される画像信号および内部に記憶している複数の参照画像に相当する画像信号から、L0予測とL1予測それぞれの動きベクトルと参照画像を示す参照インデックスを検出する。当該L0予測とL1予測の動きベクトル、および当該L0予測とL1予測の参照インデックスを動き情報生成部109に供給する。ここでは、動きベクトル検出部108は参照画像として内部に記憶している複数の参照画像に相当する画像信号を利用するとしたが、フレームメモリ110に記憶されている参照画像を利用することもできる。
【0059】
一般的な動きベクトルの検出方法は、対象画像の画像信号と、同一位置より所定の移動量だけ移動させた参照画像の予測信号について誤差評価値を算出し、誤差評価値が最小となる移動量を動きベクトルとする。参照画像が複数ある場合には各参照画像について動きベクトルを検出し、誤差評価値が最小となる参照画像を選択する。誤差評価値としては、絶対差分和を示すSAD(Sum of Absolute Difference)や二乗誤差平均を示すMSE(Mean Square Error)などを利用することが可能である。また、動きベクトル符号量を誤差評価値に加算して評価することも可能である。
【0060】
動き情報生成部109は、動きベクトル検出部108より供給されるL0予測とL1予測の動きベクトルおよびL0予測とL1予測の参照インデックス、動き情報メモリ111より供給される候補ブロック群、参照インデックスで示されるフレームメモリ110内の参照画像、および予測ブロック画像取得部101より供給される画像信号から、予測符号化モードを決定する。
【0061】
決定された予測符号化モードに基づいて、マージフラグ、マージインデックス、動き補償予測の予測方向、L0予測とL1予測の参照インデックス、L0予測とL1予測の差分ベクトルおよびL0予測とL1予測の予測ベクトルインデックスを必要に応じて、符号列生成部104に供給する。動き補償予測の予測方向、L0予測とL1予測の参照インデックス、およびL0予測とL1予測の動きベクトルを動き補償部106および動き情報メモリ111に供給する。動き情報生成部109の詳細については後述する。
【0062】
動き補償部106は、動き情報生成部109より供給される動き補償予測の予測方向がLN予測であれば、動き情報生成部109より供給されるLN予測の参照インデックスで示されるフレームメモリ110内の参照画像を、動き情報生成部109より供給されるLN予測の動きベクトルに基づき動き補償してLN予測の予測信号を生成する。Nは0または1である。ここで、動き補償予測の予測方向が双予測であれば、L0予測とL1予測の予測信号の平均値が予測信号となる。なお、L0予測とL1予測の予測信号を重みづけしてもよい。動き補償部106は、当該予測信号を減算部102に供給する。
【0063】
減算部102は、予測ブロック画像取得部101より供給される画像信号と動き補償部106より供給される予測信号を減算して予測誤差信号を算出し、当該予測誤差信号を予測誤差符号化部103に供給する。
【0064】
予測誤差符号化部103は、減算部102より供給される予測誤差信号に対して、直交変換や量子化などの処理を行って予測誤差符号化データを生成し、当該予測誤差符号化データを符号列生成部104および予測誤差復号部105に供給する。
【0065】
符号列生成部104は、予測誤差符号化部103より供給される予測誤差符号化データ、ならびに動き情報生成部109より供給されるマージフラグ、マージインデックス、動き補償予測の予測方向(インター予測タイプ)、L0予測とL1予測の参照インデックス、L0予測とL1予測の差分ベクトルおよびL0予測とL1予測の予測ベクトルインデックスを
図6に示すシンタックスの順序に従ってエントロピー符号化して符号列を生成し、当該符号列を符号化ストリームとして端子11に供給する。エントロピー符号化は算術符号化やハフマン符号化などの可変長符号化を含む方法によって実施される。
【0066】
また、符号列生成部104は、動画像符号化装置100で利用された符号化ブロックの分割情報、予測ブロックサイズタイプ、予測ブロックの符号化ブロック内の位置、及び予測符号化モードを、符号化ストリームの特性を決定するためのパラメータ群を定義したSPS(Sequence Parameter Set)、ピクチャの特性を決定するためのパラメータ群を定義したPPS(Picture Parameter Set)、やスライスの特性を決定するためのパラメータ群を定義したスライスヘッダなどと共に符号化ストリーム中に多重化する。
【0067】
予測誤差復号部105は、予測誤差符号化部103より供給される予測誤差符号化データに対して、逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、当該予測誤差信号を加算部107に供給する。加算部107は、予測誤差復号部105より供給される予測誤差信号と、動き補償部106より供給される予測信号を加算して復号画像信号を生成し、当該復号画像信号をフレームメモリ110に供給する。
【0068】
フレームメモリ110は、加算部107より供給される復号画像信号を記憶する。また、画像全体の復号が完了した復号画像については参照画像として、当該参照画像のPOCと共に1以上の所定の画像数を記憶する。フレームメモリ110は、記憶した参照画像信号を動き補償部106および動き情報生成部109に供給する。参照画像を記憶する記憶領域はFIFO(First In First Out)方式で制御される。ここでは、参照画像のPOCをフレームメモリ110に記憶するとしたが、参照画像とPOCが一意に認識できればよく、これに限定されない。また、POCは動画像符号化装置100、符号化制御部112、及び参照ピクチャリスト生成部113で共有されているものとして図示しない。
【0069】
動き情報メモリ111は、動き情報生成部109より供給される動き情報を最小の予測ブロックサイズ単位で所定の画像数、記憶する。処理対象の予測ブロックの隣接ブロックの動き情報を空間候補ブロック群とする。
【0070】
また、動き情報メモリ111は、処理対象の予測ブロックと同一位置にあるColPic上の同一位置予測ブロック内とその周辺ブロックの動き情報を時間候補ブロック群とする。動き情報メモリ111は、空間候補ブロック群と時間候補ブロック群を候補ブロック群として動き情報生成部109に供給する。動き情報メモリ111は、フレームメモリ110と同期しており、FIFO(First In First Out)方式で制御される。
【0071】
ここで、ColPicとは、処理対象の予測ブロックのある画像とは別の復号済みの画像であって、フレームメモリ110に参照画像として記憶されている。実施の形態1では、ColPicは処理対象画像の直前に復号した参照画像とする。なお、実施の形態1では、ColPicは処理対象画像の直前に復号した参照画像としたが、復号済みの画像であればよく、例えば、表示順で直前の参照画像や表示順で直後の参照画像でもよく、L0予測またはL1予測の参照ピクチャリストの0番目の参照画像としてもよく、符号化ストリーム中で指定することも可能である。
【0072】
ここで、動き情報メモリ111における動き情報の管理方法について説明する。動き情報は最小の予測ブロック単位で各メモリエリアに記憶される。各メモリエリアには、少なくとも予測方向、L0予測の動きベクトル、L0予測の参照インデックス、L1予測の動きベクトル、およびL1予測の参照インデックスが記憶される。
【0073】
なお、予測符号化モードがイントラモードである場合、L0予測とL1予測の動きベクトルとして(0,0)が記憶され、L0予測とL予測の参照インデックスとして「−1」が記憶される。これ以降、動きベクトルの(H、V)は、Hが水平成分、Vが垂直成分を表すこととする。なお、参照インデックスの「−1」は動き補償予測を実施しないモードであることが判定できればどのような値でもよい。これ以降は特に断らない限り単にブロックと表現する場合には、最小の予測ブロック単位のことを示すこととする。また、領域外のブロックである場合もイントラモードと同様に、L0予測とL1予測の動きベクトルとして(0,0)が記憶され、L0予測とL1予測の参照インデックスとして「−1」が記憶される。LX方向(Xは0または1)が有効であるとはLX方向の参照インデックスが0以上であることで、LX方向が無効である(有効でない)とはLX方向の参照インデックスが「−1」であることである。
【0074】
(参照ピクチャリスト生成部113の動作)
続いて、参照ピクチャリスト生成部113の動作について説明する。参照ピクチャリスト生成部113は、符号化制御部112から供給されるスライスタイプに応じて、参照ピクチャリストを生成する。スライスタイプがPスライスまたはBスライスであれば参照ピクチャリストL0を生成し、スライスタイプがBスライスであれば参照ピクチャリストL1を生成する。
【0075】
図8は参照ピクチャリストL0の生成の動作を説明するフローチャートである。
図8を用いて参照ピクチャリストL0の生成の動作を説明する。最初に、処理対象ピクチャのPOCより小さいPOCを有する参照ピクチャをPOCの降順に参照ピクチャリストL0(RefPicListL0)の利用可能な参照ピクチャ数に達するまで並べる(S400)。次に、処理対象ピクチャのPOCより大きいPOCを有する参照ピクチャをPOCの昇順に参照ピクチャリストL0(RefPicListL0)の利用可能な参照ピクチャ数に達するまで並べる(S401)。ここで、参照ピクチャリストL0(RefPicListL0)の利用可能な参照ピクチャ数とは、L0予測の参照インデックスの最大値(num_ref_idx_l0_active_minus1)に1を加えた値である。
【0076】
図9は参照ピクチャリストL1の生成の動作を説明するフローチャートである。
図9を用いて参照ピクチャリストL1の生成の動作を説明する。最初に、処理対象ピクチャのPOCより大きいPOCを有する参照ピクチャをPOCの昇順に参照ピクチャリストL1(RefPicListL1)の利用可能な参照ピクチャ数に達するまで並べる(S410)。次に、処理対象ピクチャのPOCより小さいPOCを有する参照ピクチャをPOCの降順に参照ピクチャリストL1(RefPicListL1)の利用可能な参照ピクチャ数に達するまで並べる(S411)。ここで、参照ピクチャリストL1(RefPicListL1)の利用可能な参照ピクチャ数とは、L1予測の参照インデックスの最大値(num_ref_idx_l1_active_minus1)に1を加えた値である。
【0077】
以上のように、参照ピクチャリストL0には処理対象ピクチャよりも表示時間が前で処理対象ピクチャに近い参照ピクチャから並べられる。参照ピクチャリストL1には処理対象ピクチャよりも表示時間が後で処理対象ピクチャに近い参照ピクチャから並べられる。
【0078】
また、参照ピクチャリストL0(RefPicListL0)の利用可能な参照ピクチャの数が処理対象ピクチャよりも表示時間が前の参照ピクチャの数よりも多い場合には、参照ピクチャリストL0は参照ピクチャリストL1と同じ参照ピクチャを有し、参照ピクチャリストL1(RefPicListL1)の利用可能な参照ピクチャの数が処理対象ピクチャよりも表示時間が後の参照ピクチャの数よりも多い場合には、参照ピクチャリストL1は参照ピクチャリストL0と同じ参照ピクチャを有する。これによって、同一の参照ピクチャから双予測可能となる。
【0079】
(動き情報生成部109の構成)
続いて、動き情報生成部109の詳細な構成について説明する。
図10は、動き情報生成部109の構成を示す。動き情報生成部109は、予測ベクトルモード決定部120、マージモード決定部121および予測符号化モード決定部122を含む。端子12は動き情報メモリ111に、端子13は動きベクトル検出部108に、端子14はフレームメモリ110に、端子15は予測ブロック画像取得部101に、端子16は符号列生成部104に、端子50は動き補償部106に、および端子51は動き情報メモリ111にそれぞれ接続されている。
【0080】
(動き情報生成部109の機能と動作)
以下、各部の機能と動作について説明する。予測ベクトルモード決定部120は、端子12より供給される候補ブロック群、端子13より供給されるL0予測とL1予測の動きベクトルおよびL0予測とL1予測の参照インデックス、端子14より供給される参照インデックスで示される参照画像、および端子15より供給される画像信号から、インター予測タイプを決定し、インター予測タイプに従って、L0予測とL1予測の予測ベクトルインデックスを選択してL0予測とL1予測の差分ベクトルを算出するとともに、予測誤差を算出し、レート歪み評価値を算出する。そして、当該インター予測タイプに基づいた動き情報、差分ベクトル、予測ベクトルインデックス、およびレート歪み評価値を予測符号化モード決定部122に供給する。予測ベクトルモード決定部120の詳細については後述する。
【0081】
マージモード決定部121は、端子12より供給される候補ブロック群、端子14より供給される参照画像、および端子15より供給される画像信号から、結合動き情報候補リストを生成し、当該結合動き情報候補リストの中から1つの結合動き情報候補を選択してマージインデックスを決定し、レート歪み評価値を算出する。そして、当該結合動き情報候補の動き情報、当該マージインデックスおよび当該レート歪み評価値を予測符号化モード決定部122に供給する。マージモード決定部121の詳細については後述する。
【0082】
予測符号化モード決定部122は、予測ベクトルモード決定部120より供給されるレート歪み評価値と、マージモード決定部121より供給されるレート歪み評価値とを比較してマージフラグを決定する。
【0083】
予測ベクトルモードレート歪み評価値がマージモードレート歪み評価値未満の場合は、マージフラグを「0」に設定する。予測符号化モード決定部122は、当該マージフラグ、予測ベクトルモード決定部120より供給されるインター予測タイプ、参照インデックス、差分ベクトルと予測ベクトルインデックスを端子16に供給し、予測ベクトルモード決定部120より供給される動き情報を端子50および端子51に供給する。
【0084】
マージモードレート歪み評価値が予測ベクトルモードレート歪み評価値以下の場合は、マージフラグを「1」に設定する。予測符号化モード決定部122は、当該マージフラグおよびマージモード決定部121より供給されるマージインデックスを端子16に供給し、マージモード決定部121より供給される動き情報を端子50および端子51に供給する。なお、レート歪み評価値の具体的な算出方法は本発明の主眼ではないため詳細な説明は省略するが、予測誤差と符号量から符号量当たりの予測誤差量を算出し、レート歪み評価値が小さいほど符号化効率は高くなる特性を持つ評価値である。そのため、レート歪み評価値が小さい予測符号化モードを選択することで符号化効率を向上させることができる。
【0085】
(マージモード決定部121の構成)
続いて、マージモード決定部121の詳細な構成について説明する。
図11は、マージモード決定部121の構成を説明する図である。マージモード決定部121は、結合動き情報候補リスト生成部140および結合動き情報選択部141を含む。結合動き情報候補リスト生成部140は、実施の形態1に係る動画像符号化装置100により生成された符号列を復号する動画像復号装置200にも同様に設置されて、動画像符号化装置100と動画像復号装置200にて同一の結合動き情報リストが生成される。
【0086】
(マージモード決定部121の機能と動作)
以下、各部の機能と動作について説明する。
図12は、マージモード決定部121の動作を説明するフローチャートである。結合動き情報候補リスト生成部140は、端子12より供給される候補ブロック群からマージ候補最大数の結合動き情報候補を含む結合動き情報候補リストを生成し(S100)、当該結合動き情報候補リストを結合動き情報選択部141に供給する。結合動き情報候補リスト生成部140の詳細な構成については後述する。
【0087】
結合動き情報選択部141は、結合動き情報候補リスト生成部140より供給される結合動き情報候補リストの中から、最適な結合動き情報候補を選択し(S101)、選択された結合動き情報候補を示す情報であるマージインデックスを決定して(S102)、当該マージインデックスを端子17に供給する。
【0088】
ここで、最適な結合動き情報候補の選択方法について説明する。結合動き情報候補の予測方向、動きベクトルおよび参照インデックスに基づいて動き補償予測されて得られる端子14より供給される参照画像と、端子15より供給される画像信号とから予測誤差量が算出される。マージインデックスの符号量と、当該予測誤差量とからレート歪み評価値が算出されて、レート歪み評価値が最小となる結合動き情報候補が最適な結合動き情報候補として選択される。
【0089】
(結合動き情報候補リスト生成部140の構成)
続いて、結合動き情報候補リスト生成部140の詳細な構成について説明する。
図13は、結合動き情報候補リスト生成部140の構成を説明するための図である。端子19は結合動き情報選択部141に接続されている。結合動き情報候補リスト生成部140は、空間結合動き情報候補導出部160、時間結合動き情報候補導出部161、結合動き情報候補リスト構築部162、冗長結合動き情報候補削除部163、第1結合動き情報候補補充部164、および第2結合動き情報候補補充部165を含む。
【0090】
(結合動き情報候補リスト生成部140の機能と動作)
以下、各部の機能と動作について説明する。
図14は、結合動き情報候補リスト生成部140の動作を説明するためのフローチャートである。
【0091】
最初に、空間結合動き情報候補導出部160は、端子12より供給される空間候補ブロック群から0個から空間結合動き情報候補最大数の空間結合動き情報候補を導出し(S110)、当該空間結合動き情報候補を結合動き情報候補リスト構築部162に供給する。空間結合動き情報候補導出部160の詳細な動作については後述する。また、空間結合動き情報候補最大数についても後述する。
【0092】
次に、結合動き情報候補リスト生成部140は、時間候補利用許可フラグ(enable_temporal_mvp_flag)が1であるか検査する(S111)。
【0093】
時間候補利用許可フラグが1であれば(S111のY)、時間結合動き情報候補導出部161は、端子12より供給される時間候補ブロック群から0個から時間結合動き情報候補最大数の時間結合動き情報候補を導出し(S112)、当該時間結合動き情報候補を結合動き情報候補リスト構築部162に供給する。時間結合動き情報候補導出部161の詳細な動作については後述する。
【0094】
時間候補利用許可フラグが0であれば(S111のN)、ステップS112をスキップする。
【0095】
次に、結合動き情報候補リスト構築部162は0個から空間結合動き情報候補最大数の空間結合動き情報候補と0個から時間結合動き情報候補最大数の時間結合動き情報候補から結合動き情報候補リストを構築する(S113)。ここでは、結合動き情報候補リストには導出された順序で空間結合動き情報候補と時間結合動き情報候補が順次登録されるものとする。
【0096】
次に、冗長結合動き情報候補削除部163は、結合動き情報候補リスト構築部162より供給される結合動き情報候補リストに登録されている結合動き情報候補を検査し、同一の動き情報を有する結合動き情報候補が複数存在する場合には1つの結合動き情報候補を残してその他の結合動き情報候補を削除し(S114)、当該結合動き情報候補リストを第1結合動き情報候補補充部164に供給する。ここで、当該結合動き情報候補リストに登録されている結合動き情報候補は全てが異なる結合動き情報候補となる。
【0097】
ここでは、冗長結合動き情報候補削除部163は結合動き情報候補リストから同一の動き情報を有する結合動き情報候補を完全に削除するとしたが、第1補充結合動き情報候補や第2補充結合動き情報候補が追加され易くなればよく、これに限定されない。
【0098】
次に、第1結合動き情報候補補充部164は、冗長結合動き情報候補削除部163より供給される結合動き情報候補リストに登録された結合動き情報候補から0個から2個の第1補充結合動き情報候補を導出してマージ候補最大数を超えないように結合動き情報候補リストに追加し(S115)、当該結合動き情報候補リストを第2結合動き情報候補補充部165に供給する。なお、冗長結合動き情報候補削除部163より供給される結合動き情報候補リストに登録された結合動き情報候補の数がマージ候補最大数である場合は、冗長結合動き情報候補削除部163より供給される結合動き情報候補リストがそのまま第2結合動き情報候補補充部165に供給されることになる。第1結合動き情報候補補充部164の詳細な動作については後述する。
【0099】
次に、第2結合動き情報候補補充部165は、第1結合動き情報候補補充部164より供給される結合動き情報候補リストに登録された結合動き情報候補の数がマージ候補最大数を超えないように第2補充結合動き情報候補を導出して当該結合動き情報候補リストに追加し(S116)、当該結合動き情報候補リストを端子19に供給する。なお、第1結合動き情報候補補充部164より供給される結合動き情報候補リストに登録された結合動き情報候補の数がマージ候補最大数である場合は、第1結合動き情報候補補充部164より供給される結合動き情報候補リストを端子19に供給されることになる。第2結合動き情報候補補充部165の詳細な動作については後述する。
【0100】
以上のように、結合動き情報候補リスト生成部140は結合動き情報候補リストを生成する。
【0101】
(ブロック群について)
以降、予測ブロックの候補ブロック群について説明する。
図15は予測ブロックの空間候補ブロック群について説明する図である。
図15(a)は符号化ブロックの大きさが16画素×16画素で予測ブロックサイズタイプが2Nx2Nである場合の予測ブロックサイズの空間候補ブロック群を示す。
【0102】
空間候補ブロック群は、予測ブロックの左下の画素の左に位置するブロックA、予測ブロックの右上の画素の上に位置するブロックB、予測ブロックの右上の画素の右斜め上に位置するブロックC、予測ブロックの左下の画素の左斜め下に位置するブロックE、及び予測ブロックの左上の画素の左斜め上に位置するブロックDの5個とする。
【0103】
時間候補ブロック群は、ColPicの所定領域の代表ブロックであるブロックHとブロックIの2個とする。処理対象の予測ブロックの左上の画素の位置を(x,y)、処理対象の予測ブロックの幅と高さをそれぞれPUW、PUHとすると、((((x+PUW)>>4)<<4),(((y+PUH)>>4)<<4))となる画素の位置をブロックの左上の画素の位置として含むColPic上のブロックを時間候補ブロックHとする。ここで、>>は右方向のビットシフト、<<は左方向のビットシフトである。
【0104】
同様に、(x+(PUW>>1),y+(PUH>>1))となる画素の位置をブロックの左上の画素の位置として含むColPic上のブロックを時間候補ブロックIとする。
【0105】
なお、予測ブロックサイズタイプが2N×2Nではない符号化ブロックにおける予測ブロックに対しても予測ブロックサイズタイプが2N×2Nである符号化ブロックの予測ブロックと同じ位置関係を適用するものとする。
図15(b)は符号化ブロックの大きさが8画素×8画素で予測ブロックサイズタイプが2NxNである場合の空間候補ブロック群を示す。
【0106】
ここでは、ブロックAを予測ブロックの左下の画素の左に位置するブロックとしたが、予測ブロックの左辺に接していればよく、これに限定されない。また、ブロックBを予測ブロックの右上の画素の上に位置するブロックとしたが、予測ブロックの上辺に接していればよく、これに限定されない。また、時間候補ブロック群をブロックHとブロックIの2個としたが、同一位置予測ブロック内と同一位置予測ブロックの周辺にあるブロックであればよく、これに限定されない。
【0107】
(空間結合動き情報候補導出部160の詳細な動作)
続いて、空間結合動き情報候補導出部160の詳細な動作について説明する。
図16は、空間結合動き情報候補導出部160の動作を説明するためのフローチャートである。空間結合動き情報候補導出部160は、候補ブロック群の空間候補ブロック群に含まれる候補ブロックであるブロックA、ブロックB、ブロックC、ブロックE、ブロックDの順に以下の処理を繰り返し行う(S120からS124)。
【0108】
最初に、候補ブロックが有効であるか検査する(S121)。候補ブロックが有効であるとは、候補ブロックのL0予測とL1予測の参照インデックスの少なくとも一方が0以上であることである。候補ブロックが有効であれば(S121のY)、候補ブロックの動き情報を空間結合動き情報候補として導出する(S122)。候補ブロックが有効でなければ(S121のN)、次の候補ブロックを検査し(S124)、全ての候補ブロックの検査が終了すれば、処理を終了する。ステップS122に続いて、導出した空間結合動き情報候補の数が空間結合動き情報候補最大数であるか検査する(S123)。導出した空間結合動き情報候補の数が空間結合動き情報候補最大数でなければ(S123のN)、次の候補ブロックを検査する(S124)。導出した空間結合動き情報候補の数が空間結合動き情報候補最大数であれば(S123のY)、処理を終了する。ここで、空間結合動き情報候補最大数は4とする。
【0109】
(時間結合動き情報候補導出部161の詳細な動作)
続いて、時間結合動き情報候補導出部161の詳細な動作について説明する。
図17は、時間結合動き情報候補導出部161の動作を説明するためのフローチャートである。L0予測とL1予測の各予測方向LXについて以下の処理を繰り返し行う(S140からS147)。ここで、Xは0または1である。また、候補ブロック群の時間候補ブロック群に含まれる候補ブロックであるブロックH、ブロックIの順に以下の処理を繰り返し行う(S141からS146)。
【0110】
時間結合動き情報候補導出部161は、候補ブロックのLN予測が有効であるか検査する(S142)。ここで、Nは0または1である。ここでは、NはXと同じであるとする。候補ブロックのLN予測が有効であるとは、候補ブロックのLN予測の参照インデックスが0以上であることである。候補ブロックのLN予測が有効であれば(S142のY)、候補ブロックのLN予測の動きベクトルをLX予測の基準動きベクトルとする(S143)。候補ブロックのLN予測が有効でなければ(S142のN)、ステップS143からステップS145をスキップして次の候補ブロックを検査し(S146)、全ての候補ブロックの検査が終了すると、次の予測方向を処理する(S147)。
【0111】
ステップS143に続いて、時間結合動き情報候補のLX予測の参照画像を決定する(S144)。ここでは、時間結合動き情報候補のLX予測の参照画像は、LX予測の参照インデックス0の参照画像とする。次に、基準動きベクトルを処理対象画像と時間結合動き情報候補のLX予測の参照画像の距離に合うようにスケーリングして時間結合動き情報候補のLX予測の動きベクトルを算出し(S145)、次の予測方向を処理する(S147)。時間結合動き情報候補のLX予測の動きベクトルの具体的な算出式については後述する。
【0112】
L0予測とL1予測について処理が終了したステップS147に続いて、時間結合動き情報候補のL0予測とL1予測の少なくとも一方の予測が有効であるか検査する(S148)。時間結合動き情報候補のL0予測とL1予測の少なくとも一方の予測が有効であれば(S148のY)、時間結合動き情報候補のインター予測タイプを決定して時間結合動き情報候補を導出する(S149)。
【0113】
ここでは、インター予測タイプの決定は、L0予測だけが有効であれば、時間結合動き情報候補のインター予測タイプをPred_L0とし、L1予測だけが有効であれば、時間結合動き情報候補のインター予測タイプをPred_L1とし、L0予測とL1予測の両方が有効であれば、時間結合動き情報候補のインター予測タイプをPred_BIとする。
【0114】
続いて、時間結合動き情報候補のLX予測の動きベクトルの算出式について説明する。時間候補ブロックを有するColPicと時間候補ブロックがLX予測の動き補償予測で参照するピクチャであるColRefLXPicの画像間距離をtd、時間結合動き情報候補のLX予測の参照画像RefLXPicと処理対象画像CurPicの画像間距離をtb、LX予測の基準動きベクトルをmvLXとすると、時間結合動き情報候補のLX予測の動きベクトルmvLXColは式1より算出される。式1より時間結合動き情報候補のLX予測の動きベクトルの算出にはtbとtdを算出するための減算と、除算、及び乗算が必要となることがわかる。
mvLXCol = tb / td * mvLX; 式1
【0115】
浮動小数点演算の簡略化のために整数演算とする場合には例えば、式2から式4のように展開して利用してもよい。Abs(v)は値vの絶対値を算出する関数、Clip3(uv,lv,v)は値vを下限lvから上限uvまでに制限する関数、Sign(v)は値vが0以上であれば1を値vが0より小さい場合は−1を返す関数である。>>は右方向のビットシフトを、<<は左方向のビットシフトを表す。
tx = (16384+Abs(td/2) ) / td; 式2
DistScaleFactor = Clip3( -4096, 4095, ( tb * tx + 32 ) >> 6 ); 式3
mvLXCol = Sign( DistScaleFactor * mvLX ) * ( (Abs( DistScaleFactor * mvLX ) + 127 ) >> 8 ); 式4
【0116】
ここでは、時間結合動き情報候の最大数である時間結合動き情報候補最大数を1とした。そのため、
図17には空間結合動き情報候補導出部160の動作を説明するフローチャートである
図17で示したステップS123に相当する処理を省略したが、時間結合動き情報候補最大数が2以上である場合にはステップS149の後にステップS123に相当する処理を追加することもできる。
【0117】
ここでは、時間結合動き情報候補のインター予測タイプは変動するとしたが、例えば、XとNの依存関係をなくして各XについてNが0と1の順に検査するようにして常にPred_BIが生成されるようにしてもよい。
【0118】
(第1結合動き情報候補補充部164の詳細な動作)
続いて、第1結合動き情報候補補充部164の詳細な動作について説明する。
図18は、第1結合動き情報候補補充部164の動作を説明するためのフローチャートである。最初に、結合動き情報候補リストに登録された結合動き情報候補の数(NumCandList)とマージ候補最大数(MaxNumMergeCand)から、第1補充結合動き情報候補を導出する最大数であるMaxNumGenCandを式5より算出する(S170)。
MaxNumGenCand=MaxNumMergeCand-NumCandList; (NumCandList>1)
MaxNumGenCand=0; (NumCandList<=1) 式5
【0119】
次に、MaxNumGenCandが0より大きいか検査する(S171)。MaxNumGenCandが0より大きくなければ(S171のN)、処理を終了する。MaxNumGenCandが0より大きければ(S171のY)、以下の処理を行う。まず、組み合わせ検査回数であるloopTimesを決定する。loopTimesはNumCandList×NumCandListに設定する。ただし、loopTimesが8を超える場合にはloopTimesは8に制限する(S172)。ここで、loopTimesは0から7までの整数となる。loopTimesだけ以下の処理を繰り返し行う(S172からS180)。結合動き情報候補Mと結合動き情報候補Nの組み合わせを決定する(S173)。ここで、組み合わせ検査回数と結合動き情報候補Mと結合動き情報候補Nの関係について説明する。
図19は組み合わせ検査回数と結合動き情報候補Mと結合動き情報候補Nの関係を説明するための図である。
図19のようにMとNは異なる値であって、MとNの合計値が小さくなる順に設定される。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効であるか検査する(S174)。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効であれば(S174のY)、結合動き情報候補MのL0予測の参照画像と動きベクトルが結合動き情報候補NのL1予測の参照画像と動きベクトルと異なるか検査する(S175)。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効でなければ(S174のN)、次の組み合わせを処理する。結合動き情報候補MのL0予測の参照画像と結合動き情報候補NのL1予測の参照画像が異なれば(S175のY)、結合動き情報候補MのL0予測の動きベクトルと参照画像を結合動き情報候補NのL1予測の動きベクトルと参照画像と組み合わせてインター予測タイプがPred_BIである双結合動き情報候補を導出する(S176)。ここでは、第1補充結合動き情報候補として、ある結合動き情報候補のL0予測とそれとは異なる結合動き情報候補のL1予測の動き情報を組み合わせた双結合動き情報を導出する。結合動き情報候補MのL0予測の参照画像と結合動き情報候補NのL1予測の参照画像が同じであれば(S175のN)、次の組み合わせを処理する。ステップS176に続いて、双結合動き情報候補を結合動き情報候補リストに追加する(S178)。ステップS178に続いて、導出した双結合動き情報の数がMaxNumGenCandであるか検査する(S179)。導出された双結合動き情報の数がMaxNumGenCandであれば(S179のY)、処理を終了する。導出された双結合動き情報の数がMaxNumGenCandでなければ(S179のN)、次の組み合わせを処理する(S180)。全ての組み合わせの処理が終了すれば処理を終了する。
【0120】
ここでは、第1補充結合動き情報候補を、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルと参照画像を、別の結合動き情報候補のL1予測の動きベクトルと参照画像と組み合わせて、動き補償予測の方向が双方向である双結合動き情報候補としたが、これに限定されない。ここでは、NumCandListが1以下の場合は結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルと参照画像を、別の結合動き情報候補のL1予測の動きベクトルと参照画像と組み合わせることができないため、MaxNumGenCandを0とした。例えば、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルとL1予測の動きベクトルに+1などのオフセット値を加えた動き補償予測の方向が双方向である結合動き情報候補、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルまたはL1予測の動きベクトルに+1などのオフセット値を加えた双予測である結合動き情報候補としてもよい。
【0121】
ここで、第1補充結合動き情報候補は、結合動き情報候補リストに登録された結合動き情報候補の動き情報と処理対象の動き情報候補の動きに微妙にずれがある場合に、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルと参照画像を、別の結合動き情報候補のL1予測の動きベクトルと参照画像と組み合わせて、動き補償予測の方向が双方向である新たな結合動き情報候補を導出することで、符号化効率を高めることができる。
【0122】
(第2結合動き情報候補補充部165の詳細な動作)
続いて、第2結合動き情報候補補充部165の詳細な動作について説明する。
図20は、第2結合動き情報候補補充部165の動作を説明するためのフローチャートである。ここでは、参照ピクチャリストL0の利用可能な参照ピクチャ数が参照ピクチャリストL1の利用可能な参照ピクチャ数以上であるとして説明する。
【0123】
最初に、第1結合動き情報候補補充部164より供給される結合動き情報候補リストに登録された結合動き情報候補の数(NumCandList)、マージ候補最大数(MaxNumMergeCand)、及び参照ピクチャリストL0の利用可能な参照ピクチャ数(num_ref_idx_l0_active_minus1+1)から、第2補充結合動き情報候補を導出する最大数であるMaxNumGenCandを式6より算出する(S180)。ここで、Min(x,y)はxとyの最小値を返す関数である。
MaxNumGenCand=Min(MaxNumMergeCand-NumCandList, num_ref_idx_l0_active_minus1+1); 式6
【0124】
次に、以下の処理をiについてMaxNumGenCand回繰り返し行う(S181からS186)。ここで、iは0からMaxNumGenCand−1の整数となる。すなわち、第1結合動き情報候補補充部164より供給される結合動き情報候補リストに登録された結合動き情報候補の数(NumCandList)が、マージ候補最大数(MaxNumMergeCand)より少ない場合は、少なくとも1つの第2補充結合動き情報候補が導出されて、結合動き情報候補リストに追加されることになる。一方、NumCandListがMaxNumMergeCand以上であれば、第2補充結合動き情報候補は導出されず、結合動き情報候補リストに追加されない。このように、NumCandListがMaxNumMergeCand以上であれば、第2補充結合動き情報候補を結合動き情報候補リストに追加しないことで、MaxNumMergeCandより大きな結合動き情報候補リストのメモリは不要となる。
L0予測の動きベクトル(mvL0)が(0,0)、L0予測の参照インデックス(ref_idx_l0)がi、インター予測タイプ(predDir)がPred_L0である第2補充結合動き情報候補を導出する(S182)。
【0125】
次に、スライスタイプがBスライスであるか検査する(S183)。スライスタイプがBスライスであれば(S183のY)、L1予測の動きベクトル(mvL1)が(0,0)、L1予測の参照インデックス(ref_idx_l1)が0、インター予測タイプがPred_BIである第2補充結合動き情報候補を導出し(S184)、当該第2補充結合動き情報候補を結合動き情報候補リストに追加する(S185)。
【0126】
スライスタイプがBスライスでなければ(S183のN)、S182で導出した第2補充結合動き情報候補を結合動き情報候補リストに追加する(S185)。
【0127】
次に、次のiについて処理する(S186)。全てのiについて処理が終了すれば処理を終了する。
【0128】
ここでは、Pスライスの場合は、第2補充結合動き情報候補をL0予測の動きベクトルが(0,0)、参照インデックスがiであって、インター予測タイプがPred_L0である結合動き情報候補とし、Bスライスの場合は、第2補充結合動き情報候補をL0予測の動きベクトルが(0,0)、参照インデックスがi、L1予測の動きベクトルが(0,0)、参照インデックスが0であってインター予測タイプがPred_BIである結合動き情報候補とした。
【0129】
これは、一般的な画像の一部が静止しているような動画像において、動きベクトルが(0,0)が有効となること、また、動画像は時間方向に連続性があるため、処理対象画像に近い参照ピクチャほど処理対象画像との相関性が高くなるためである。
【0130】
以下、Bスライスの場合の第2補充結合動き情報候補について詳細に説明する。
【0131】
最初に、入力画像順と符号化順を並び替えない符号化と入力画像順と符号化順を並び替える符号化について説明する。
【0132】
図21は処理対象ピクチャと参照ピクチャの関係を説明する図である。
図21(a)は入力画像順と符号化順を並び替えない場合を、
図21(b)は入力画像順と符号化順を並び替える場合を示す。
図21(a)では、POCがn+4からn+7の画像は参照ピクチャ、POCがn+8の画像は処理対象ピクチャCurPicである。
図21(b)では、POCがn+2、n+4、n+6、n+8の画像は参照ピクチャ、POCがn+5の画像は処理対象ピクチャCurPicである。
【0133】
次に、入力画像順と符号化順を並び替えない符号化と入力画像順と符号化順を並び替える符号化における参照ピクチャリストについて説明する。参照ピクチャリストは参照ピクチャリスト生成部113により生成される。
【0134】
図22は参照ピクチャリストの一例を説明する図である。
図22は参照ピクチャリストL0の利用可能な参照ピクチャ数と参照ピクチャリストL1の利用可能な参照ピクチャ数が共に4である場合の例を示す。
図22(a)は入力画像順と符号化順を並び替えない場合の参照ピクチャリストの様子を示す。フレームメモリ110には少なくともPOCがn+4である参照ピクチャ、POCがn+5である参照ピクチャ、POCがn+6である参照ピクチャ、POCがn+8である参照ピクチャが記憶されているとする。
図22(b)は入力画像順と符号化順を並び替える場合の参照ピクチャリストの様子を示す。フレームメモリ110には少なくともPOCがn+2である参照ピクチャ、POCがn+4である参照ピクチャ、POCがn+6である参照ピクチャ、POCがn+8である参照ピクチャが記憶されているとする。入力画像順と符号化順を並び替えない場合は参照ピクチャリストL0と参照ピクチャリストL1は同一となるが、入力画像順と符号化順を並び替える場合は参照ピクチャリストL0と参照ピクチャリストL1は同一とならない。
【0135】
次に、入力画像順と符号化順を並び替えない符号化と入力画像順と符号化順を並び替える符号化における第2補充結合動き情報候補について説明する。
【0136】
図23は実施の形態1による第2補充結合動き情報候補の参照インデックスとPOCの関係の一例を説明する図である。
図23は参照ピクチャリストL0の利用可能な参照ピクチャ数と参照ピクチャリストL1の利用可能な参照ピクチャ数が共に4である場合の第2補充結合動き情報候補の例を示す。
図23(a)は入力画像順と符号化順を並び替えない場合の第2補充結合動き情報候補の参照インデックスを、
図23(b)は入力画像順と符号化順を並び替える場合の第2補充結合動き情報候補の参照インデックスを示す。
【0137】
図23(a)の場合について説明する。0番目(iが0)の第2補充結合動き情報候補のL0予測の参照インデックスは0であるため、POCがn+7である参照ピクチャをL0予測の動き補償予測に利用し、L1予測の参照インデックスは0であるため、POCがn+7である参照ピクチャをL1予測の動き補償予測に利用する。L0予測とL1予測の動きベクトルは(0,0)で同一、参照ピクチャも同一であるため、L0予測とL1予測の予測信号は同一となる。したがって、0番目の第2補充結合動き情報候補は、双予測の動き情報を有するが、POCがn+7の参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0138】
1番目の第2補充結合動き情報候補は、POCがn+6である参照ピクチャをL0予測の動き補償予測に利用し、POCがn+7である参照ピクチャをL1予測の動き補償予測に利用する。これは直近(1番目に近い)の参照ピクチャと2番目に近い参照ピクチャを利用した双予測の動き補償予測となる。
【0139】
同様に、2番目の第2補充結合動き情報候補は、直近の参照ピクチャと3番目に近い参照ピクチャを利用した双予測の動き補償予測となり、3番目の第2補充結合動き情報候補は、直近の参照ピクチャと4番目に近い参照ピクチャを利用した双予測の動き補償予測となる。
【0140】
図23(b)の場合について説明する。0番目(iが0)の第2補充結合動き情報候補のL0予測の参照インデックスは0であるため、POCがn+4である参照ピクチャをL0予測の動き補償予測に利用し、L1予測の参照インデックスは0であるため、POCがn+6である参照ピクチャをL1予測の動き補償予測に利用する。POCがn+4である参照ピクチャとPOCがn+6である参照ピクチャはそれぞれ処理対象ピクチャの表示順で直前と直後の参照ピクチャであるため、第2補充結合動き情報候補の中では相対的には最も選択率の高いと考えられる双予測の動き補償予測となる。
【0141】
1番目の第2補充結合動き情報候補は、POCがn+2である参照ピクチャをL0予測の動き補償予測に利用し、POCがn+6である参照ピクチャをL1予測の動き補償予測に利用する。これは処理対象ピクチャの表示順で2番目に前の参照ピクチャと表示順で直後の参照ピクチャを利用した双予測の動き補償予測となる。
【0142】
2番目の第2補充結合動き情報候補は、双予測の動き情報を有するが、POCがn+6である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0143】
3番目の第2補充結合動き情報候補は、POCがn+8である参照ピクチャをL0予測の動き補償予測に利用し、POCがn+6である参照ピクチャをL1予測の動き補償予測に利用する。これは処理対象ピクチャの表示順で2番目に後の参照ピクチャと表示順で直後の参照ピクチャを利用した双予測の動き補償予測となる。
【0144】
以上のように、Bスライスの第2補充結合動き情報候補のL0予測の動きベクトルを(0,0)、L0予測の参照インデックスを1つずつインクリメントしてL1予測の動きベクトルが(0,0)、L1予測の参照インデックスをL1予測の参照ピクチャリストの直近の参照ピクチャが登録されている0とすることで、全ての第2補充結合動き情報候補を直近の参照ピクチャを利用した双予測とすることができる。
【0145】
また、L1予測の参照ピクチャが存在しない場合は、第2補充結合動き情報候補をL0予測からの単予測とすることで、第2補充結合動き情報候補の選択が増え、動き情報予測処理の予測効率を向上させることができる。
【0146】
また、全ての第2補充結合動き情報候補が異なる予測信号となるため、マージモードの選択肢の幅を広げることで符号化効率を向上させることができる。
【0147】
また、参照ピクチャリストL1の利用可能な参照ピクチャ数に依存せず、参照ピクチャリストL0の利用可能な参照ピクチャ数と同数の第2補充結合動き情報候補を導出することができる。
【0148】
例えば、画像の一部が少なくとも静止してランダムノイズが混入しているような動画像において、直近の参照ピクチャとその他の参照ピクチャを利用した双予測の予測信号とすることで、直近の参照ピクチャだけを用いた単予測の予測信号よりもフィルタリング効果や量子化幅による各参照ピクチャの鮮鋭度によって精度の高い予測信号を得ることが可能となる場合がある。
【0149】
ここで、第2補充結合動き情報候補として結合動き情報候補リストに登録された結合動き情報候補に依存しない結合動き情報候補を設定することで、結合動き情報候補リストに登録された結合動き情報候補が0個である場合に、マージモードを利用することを可能とし、符号化効率を向上させることができる。また、結合動き情報候補リストに登録された結合動き情報候補の動き情報と処理対象の動き情報候補の動きが異なる場合に、新たな結合動き情報候補を導出して選択肢の幅を広げることで、符号化効率を向上させることができる。
【0150】
また、全ての第2補充結合動き情報候補を双予測とすることで、隣接ブロックにおける第1補充結合動き情報候補の導出される確率を上げて符号化効率を向上させることができる。以下、その効果について詳細に説明する。
【0151】
最初に、L0予測の単予測である第2補充結合動き情報候補を結合動き情報候補リストに追加された場合の問題について説明する。L0予測の単予測である第2補充結合動き情報候補と結合動き情報候補リストにある所定の結合動き情報候補とが組み合わされて第1補充結合動き情報候補が導出される場合、所定の結合動き情報候補がL0予測の単予測である場合には新たな第2補充結合動き情報候補は導出されない。また、所定の結合動き情報候補が双予測であった場合でも、所定の結合動き情報候補のL0予測と組み合わされるべきL1予測の動きベクトルと参照画像が第2補充結合動き情報候補にはないため、所定の結合動き情報候補のL0予測を利用した第1補充結合動き情報候補が導出されない。
【0152】
ここでは、全ての第2補充結合動き情報候補を双予測とすることで、結合動き情報候補リストにある所定の結合動き情報候補と組み合わせた場合に、より多くの第1補充結合動き情報候補の導出を可能とし、符号化効率を向上させることができる。
【0153】
ここでは、空間候補ブロック群を5個、時間候補ブロック群を2個、マージ候補最大数の上限を5とし、空間結合動き情報候補最大数を4、時間結合動き情報候補最大数を1としたが、これに限定されない。
【0154】
ここでは、L0予測とL1予測の動きベクトルを(0,0)としたが、結合動き情報候補リストに登録された結合動き情報候補の動き情報に依存せず、統計的に利用頻度が高い動きベクトルであれば、これに限定されない。例えば、第2補充結合動き情報候補の動きベクトルを符号化済みの画像や符号化済みの画像の一部の発生頻度の高い動きベクトルとし、符号化ストリームに符号化して伝送して設定することもできる。また、L1予測の参照インデックスを0としたが、直近の参照ピクチャが0以外にあれば、0以外の参照インデックスに固定してもよい。
【0155】
また、一般的には参照ピクチャリストL0の利用可能な参照ピクチャ数の方が参照ピクチャリストL1の利用可能な参照ピクチャ数以上となることが多いため、ここでは、第2補充結合動き情報候補を導出する最大数の算出に参照ピクチャリストL0の利用可能な参照ピクチャ数を用い、L0予測の参照インデックスを変動させてL1予測の参照インデックスを固定しているが、参照ピクチャリストL1の利用可能な参照ピクチャ数の方が参照ピクチャリストL0の利用可能な参照ピクチャ数よりも大きい場合には、第2補充結合動き情報候補を導出する最大数の算出に参照ピクチャリストL1の利用可能な参照ピクチャ数を用い、L1予測の参照インデックスを変動させてL0予測の参照インデックスを固定することもできる。
【0156】
(予測ベクトルモード決定部120の構成)
続いて、予測ベクトルモード決定部120の詳細な構成について説明する。
図24は、予測ベクトルモード決定部120の構成を示す図である。予測ベクトルモード決定部120は、予測ベクトル候補リスト生成部130および予測ベクトル決定部131を含む。端子17は予測符号化モード決定部122に接続されている。
【0157】
予測ベクトル候補リスト生成部130は、実施の形態1に係る動画像符号化装置100により生成された符号列を復号する動画像復号装置200内の動きベクトル再生部211の中にも同様に設置されて、動画像符号化装置100と動画像復号装置200にて同一の予測ベクトル候補リストが生成される。
【0158】
(予測ベクトルモード決定部120の動作)
以下、予測ベクトルモード決定部120の動作について説明する。
図25は、予測ベクトルモード決定部120の動作を示すフローチャートである。
【0159】
最初に、L0予測について以下の処理を行う。以下、Xは0とする。予測ベクトル候補リスト生成部130は、端子13より供給されるLX予測の参照インデックスを取得する。端子12より供給される候補ブロック群とLX予測の参照インデックスから予測ベクトル候補最大数の予測ベクトル候補を含むLX予測の予測ベクトル候補リストを生成する(S200)。予測ベクトル候補リスト生成部130は、当該LX予測の予測ベクトル候補リストを予測ベクトル決定部131に供給する。
【0160】
予測ベクトル決定部131は、予測ベクトル候補リスト生成部130より供給されるLX予測の予測ベクトル候補リストから1つの予測ベクトル候補をLX予測の予測ベクトルとして選択し(S201)、当該LX予測の予測ベクトルインデックスを決定する(S202)。
【0161】
予測ベクトル決定部131は、端子13より供給されるLX予測の動きベクトルからLX予測の予測ベクトルを減算してLX予測の差分ベクトルを算出し(S203)、当該LX予測の差分ベクトルと当該LX予測の予測ベクトルインデックスを出力する。
【0162】
予測ベクトル決定部131は、端子15より供給される画像信号と、端子14より供給される参照画像を端子13より供給されるLX予測の動きベクトルおよびLX予測の参照インデックスに基づいて動き補償予測したLX予測の予測信号とから予測誤差量を算出し、当該予測誤差量と、LX予測の差分ベクトル、LX予測の参照インデックス、およびLX予測の予測ベクトルインデックスの符号量とからPred_LXのレート歪評価値を算出する。
【0163】
次に、Xを1としてL1予測についてL0予測と同じ処理を行う。
【0164】
続いて、予測ベクトル決定部131は、端子15より供給される画像信号と、L0予測の予測信号およびL1予測の予測信号を平均したBI予測の予測信号とから予測誤差量を算出し、当該予測誤差量と、L0予測とL1予測の差分ベクトル、L0予測とL1予測の参照インデックス、およびL0予測とL1予測の予測ベクトルインデックスの符号量とからPred_BIのレート歪評価値を算出する。
【0165】
予測ベクトル決定部131は、Pred_L0のレート歪評価値、Pred_L1のレート歪評価値、およびPred_BIのレート歪評価値を比較して、最小のレート歪評価値である予測符号化モードを1つ選択する。そして、予測符号化モードに基づいた動き情報、差分ベクトル、予測ベクトルインデックス、およびレート歪み評価値を予測符号化モード決定部122に供給する。なお、予測符号化モードがPred_L0であれば、L1予測の動きベクトルは(0,0)、L1予測の参照インデックスは「−1」とし、予測符号化モードがPred_L1であれば、L0予測の動きベクトルは(0,0)、L0予測の参照インデックスは「−1」とする。
【0166】
(予測ベクトル候補リスト生成部130の構成)
続いて、予測ベクトル候補リスト生成部130の詳細な構成について説明する。
図26は、予測ベクトル候補リスト生成部130の構成を説明するための図である。端子18は予測ベクトル決定部131に接続されている。予測ベクトル候補リスト生成部130は、空間予測ベクトル候補導出部150、空間スケーリング予測ベクトル候補導出部151、時間予測ベクトル候補導出部152、予測ベクトルリスト構築部153、冗長予測ベクトル候補削除部154、及び予測ベクトル候補補充部155を含む。
【0167】
(予測ベクトル候補リスト生成部130の動作)
以下、各部の機能と動作について説明する。
図27は、予測ベクトル候補リスト生成部130の動作を説明するためのフローチャートである。
【0168】
予測ベクトル候補リスト生成部130は、端子12より供給される空間候補ブロック群に含まれる候補ブロックを第1グループであるブロックEとブロックA、第2グループであるブロックC、ブロックB、及びブロックDの2グループに分け、第1グループ、第2グループの順に以下の処理を繰り返す(S210からS212)。
【0169】
ここで、端子12より供給される候補ブロック群はマージモードの場合と同一の候補ブロック群とする。
【0170】
空間予測ベクトル候補導出部150は、第iグループ(iは1または2)の空間候補ブロック群と端子13より供給されるLX予測の参照インデックスからLX予測の空間予測ベクトル候補を0個または1個導出し(S211)、当該LX予測の空間予測ベクトル候補を予測ベクトルリスト構築部153に供給する。空間予測ベクトル候補導出部150の詳細な動作については後述する。また、空間予測ベクトル候補導出部150と空間スケーリング予測ベクトル候補導出部151の関係についても後述する。
【0171】
第1グループ、第2グループについて処理が終了すると、予測ベクトル候補リスト生成部130は、時間候補利用許可フラグ(enable_temporal_mvp_flag)が1であるか検査する(S213)。
【0172】
時間候補利用許可フラグが1であれば(S213のY)、時間予測ベクトル候補導出部152は、端子12より供給される時間候補ブロック群と端子13より供給されるLX予測の参照インデックスからLX予測の時間予測ベクトル候補を0個または1個導出し(S214)、当該LX予測の時間予測ベクトル候補を予測ベクトルリスト構築部153に供給する。時間予測ベクトル候補導出部152の詳細な動作については後述する。
【0173】
時間候補利用許可フラグが0であれば(S213のN)、S214をスキップする。
【0174】
次に、予測ベクトルリスト構築部153は0個から2個のLX予測の空間予測ベクトル候補と0個から1個のLX予測の時間予測ベクトル候補とからLX予測の予測ベクトル候補リストを構築し(S215)、当該LX予測の予測ベクトル候補リストを冗長予測ベクトル候補削除部154に供給する。ここで、LX予測の予測ベクトル候補リストには空間予測ベクトル候補、時間予測ベクトル候補の順に最大で3個まで登録される。
【0175】
次に、冗長予測ベクトル候補削除部154は、LX予測の予測ベクトル候補リストに登録されている予測ベクトル候補を検査し、同一のベクトルを有する予測ベクトル候補が複数存在する場合には1つの予測ベクトル候補を残してその他の予測ベクトル候補を削除する。次に、LX予測の予測ベクトル候補リストに登録されている予測ベクトル候補数が予測ベクトル候補最大数を超えている場合には、LX予測の予測ベクトル候補リストに登録されている予測ベクトル候補数が予測ベクトル候補最大数以下となるようにLX予測の予測ベクトル候補リストの後方の予測ベクトル候補を削除し(S216)、当該LX予測の予測ベクトル候補リストを予測ベクトル候補補充部155に供給する。したがって、冗長予測ベクトル候補削除部154より出力されるLX予測の予測ベクトル候補リストに登録されている予測ベクトル候補は全てが異なる予測ベクトル候補となる。また、LX予測の空間予測ベクトル候補が2個残った場合はLX予測の時間予測ベクトル候補は必然的に予測ベクトル候補リストに登録されないことになる。
【0176】
次に、予測ベクトル候補補充部155は、予測ベクトル補充候補を生成し、LX予測の予測ベクトル候補リストに登録された予測ベクトル候補数が予測ベクトル候補最大数になるように当該予測ベクトル補充候補をLX予測の予測ベクトル候補リストに追加し(S217)、端子18に供給する。
【0177】
ここでは、予測ベクトル補充候補は動きベクトル(0,0)とする。ここでは、予測ベクトル補充候補を動きベクトル(0,0)としたが、(1,1)などの所定値でもよく、符号化ストリーム中で伝送してもよく、空間予測ベクトル候補の水平成分や垂直成分を+1や−1などした動きベクトルでもよい。
【0178】
(空間予測ベクトル候補導出部150の詳細な動作)
引き続いて、空間予測ベクトル候補導出部150の詳細な動作について説明する。
図28は空間予測ベクトル候補導出部150の動作を説明するフローチャートである。LX予測の空間予測ベクトル候補の導出について説明する。
【0179】
第iグループ(iは1または2)の候補ブロックについて以下の処理を繰り返し行う(S220からS226)。第1グループはブロックE、ブロックAの順に、第2グループはブロックC、ブロックB、ブロックDの順に検査される。
【0180】
各候補ブロックについて、L0予測、L1予測の順に以下の処理を繰り返し行う(S221からS225)。以降、ここでのL0予測、L1予測をLN予測として説明する。
候補ブロックのLN予測は有効であるか検査する(S222)。候補ブロックのLN予測が有効であるとは候補ブロックのLN予測の参照インデックスが0以上であることである。
【0181】
候補ブロックのLN予測が有効であれば(S222のY)、候補ブロックのLN予測の参照インデックスが示す参照画像がLX予測の参照インデックスが示す参照画像と同一であるか検査する(S223)。
【0182】
参照画像が同一であれば(S223のY)、候補ブロックのLN予測の動きベクトルをLX予測の空間予測ベクトル候補とし(S224)、処理を終了する。
【0183】
候補ブロックのLN予測が有効でないか(S222のN)、参照画像が同一でなければ(S223のN)、LN予測がL0予測であればL1予測を検査し、LN予測がL1予測であれば次の候補ブロックを検査する(S225)。
【0184】
全ての候補ブロックの検査が終了すれば(S226)、時間候補利用許可フラグ(enable_temporal_mvp_flag)が0であるか検査する(227)。
【0185】
時間候補利用許可フラグが0であれば(S227のY)、空間スケーリング予測ベクトル候補導出部151は、LX予測の空間予測ベクトル候補を0個または1個導出し(S228)、処理を終了する。空間スケーリング予測ベクトル候補導出部151の詳細な動作については後述する。
【0186】
時間候補利用許可フラグが1であれば(S227のN)、S228をスキップして処理を終了する。
【0187】
以上のように、各グループから0個または1個の空間予測ベクトル候補が導出され、LX予測として0個から2個の空間予測ベクトル候補が導出される。
【0188】
(空間スケーリング予測ベクトル候補導出部151の詳細な動作)
引き続いて、空間スケーリング予測ベクトル候補導出部151の詳細な動作について説明する。
図29は空間スケーリング予測ベクトル候補導出部151の動作を説明するフローチャートである。LX予測の空間予測ベクトル候補の導出について説明する。
【0189】
第iグループ(iは1または2)の候補ブロックについて以下の処理を繰り返し行う(S230からS236)。第1グループはブロックE、ブロックAの順に、第2グループはブロックC、ブロックB、ブロックDの順に検査される。
【0190】
各候補ブロックについて、L0予測、L1予測の順に以下の処理を繰り返し行う(S231からS235)。以降、ここでのL0予測、L1予測をLN予測として説明する。
【0191】
次に、候補ブロックのLN予測は有効であるか検査する(S232)。候補ブロックのLN予測が有効であるとは候補ブロックのLN予測の参照インデックスが0以上であることである。
【0192】
候補ブロックのLN予測が有効であれば(S232のY)、候補ブロックのLN予測の参照インデックスが示す参照画像がLX予測の参照インデックスが示す参照画像と同一でないか検査する(S233)。
【0193】
参照画像が同一でなければ(S233のY)、候補ブロックのLN予測の動きベクトルをLX予測の基準ベクトルとして空間予測ベクトル候補を導出し(S234)、処理を終了する。空間スケーリング予測ベクトル候補導出部151の空間予測ベクトル候補の詳細な導出方法については後述する。
【0194】
候補ブロックのLN予測が有効でないか(S232のN)、参照画像が同一であれば(S233のN)、LN予測がL0予測であればL1予測を検査し、LN予測がL1予測であれば次の候補ブロックを検査する(S235)。
【0195】
全ての候補ブロックの検査が終了すれば(S236)、処理を終了する。
【0196】
続いて、空間スケーリング予測ベクトル候補導出部151の空間予測ベクトル候補の詳細な導出方法について説明する。LX予測の基準ベクトルが参照する参照画像NeiRefLXPicと処理対象画像CurPicの画像間距離をtd、LX予測の参照インデックスが示す参照画像RefLXPicと処理対象画像CurPicの画像間距離をtb、LX予測の基準動きベクトルをmvLXとして、空間予測ベクトル候補mvScLXは上述した式1または式2から式4により算出する。
【0197】
(時間予測ベクトル候補導出部152の詳細な動作)
引き続いて、時間予測ベクトル候補導出部152の詳細な動作について説明する。
図30は時間予測ベクトル候補導出部152の動作を説明するフローチャートである。LX予測の時間予測ベクトル候補の導出について説明する。
【0198】
時間候補ブロックについて以下の処理を繰り返し行う(S240からS243)。時間候補ブロックはブロックH、ブロックIの順に検査される。
【0199】
最初に、候補ブロックのLN予測は有効であるか検査する(S241)。ここでは、LN予測はLX予測と同一であるとするが、LN予測はLX予測と同一でなくともよい。候補ブロックのLN予測が有効であるとは候補ブロックのLN予測の参照インデックスが0以上であることである。
【0200】
候補ブロックのLN予測が有効であれば(S241のY)、候補ブロックのLN予測の動きベクトルをLX予測の基準ベクトルとして時間予測ベクトル候補を導出し(S242)、処理を終了する。時間予測ベクトル候補の詳細な導出方法については後述する。
【0201】
候補ブロックのLN予測が有効でなければ(S241のN)、次の候補ブロックを検査する(S243)。
【0202】
全ての候補ブロックの検査が終了すれば(S243)、処理を終了する。
【0203】
続いて、時間予測ベクトル候補の詳細な導出方法について説明する。時間候補ブロックのあるColPicと時間候補ブロックがLN予測の動き補償予測で参照するピクチャであるColRefLXPicの画像間距離をtd、LX予測の参照インデックスが示す参照画像RefLXPicと処理対象画像CurPicの画像間距離をtb、LX予測の基準動きベクトルをmvLXとして、時間予測ベクトル候補mvLXColは上述した式1または式2から式4により算出する。
【0204】
(動画像復号装置200の構成)
次に、実施の形態1の動画像復号装置を説明する。
図31は、実施の形態1に係る動画像復号装置200の構成を示す図である。動画像復号装置200は、動画像符号化装置100により符号化された符号列を復号して再生画像を生成する装置である。 スライスタイプの決定、スライスで利用できる参照インデックスの最大値、符号化ブロックの分割、スキップモードの決定、予測ブロックサイズタイプの決定、予測ブロックサイズと予測ブロックの符号化ブロック内の位置(予測ブロックの位置情報)の決定、予測符号化モードがイントラであるかの決定は動画像復号装置200の外部の復号制御部208で決定されて動画像復号装置200に供給される。参照ピクチャリストは動画像復号装置200の外部の参照ピクチャリスト生成部209で生成されて動画像復号装置200に供給される。実施の形態1では予測符号化モードがイントラでない場合について説明する。また、実施の形態1では特に断らない限り、双予測に対応したBピクチャ(Bスライス)について説明するが、双予測に対応しないPピクチャ(Pスライス)についてはL1予測を省略すればよい。
【0205】
動画像復号装置200は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像復号装置200は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。なお、スライスタイプ、参照ピクチャリスト、スライスで利用できる参照インデックスの最大値、復号対象の予測ブロックの位置情報、予測ブロックサイズに関しては動画像復号装置200内で共有していることとし、図示しない。
【0206】
実施の形態1の動画像復号装置200は、符号列解析部201、予測誤差復号部202、加算部203、動き情報再生部204、動き補償部205、フレームメモリ206および動き情報メモリ207を備える。
【0207】
(動画像復号装置200の動作)
以下、各部の機能と動作について説明する。符号列解析部201は、端子30より供給された符号列を解析して予測誤差符号化データ、マージフラグ、マージインデックス、動き補償予測の予測方向(インター予測タイプ)、参照インデックス、差分ベクトル、および予測ベクトルインデックスをシンタックスに従ってエントロピー復号する。エントロピー復号は算術符号化やハフマン符号化などの可変長符号化を含む方法によって実施される。そして、当該予測誤差符号化データを予測誤差復号部202に、当該マージフラグ、当該マージインデックス、当該インター予測タイプ、当該参照インデックス、当該差分ベクトル、および当該予測ベクトルインデックスを動き情報再生部204に供給する。
【0208】
また、符号列解析部201は、動画像復号装置200で利用される符号化ブロックの分割情報、予測ブロックサイズタイプ、予測ブロックの符号化ブロック内の位置、及び予測符号化モードを、符号化ストリームの特性を決定するためのパラメータ群を定義したSPS(Sequence Parameter Set)、ピクチャの特性を決定するためのパラメータ群を定義したPPS(Picture Parameter Set)、やスライスの特性を決定するためのパラメータ群を定義したスライスヘッダなどと共に符号化ストリームから復号する。
【0209】
動き情報再生部204は、符号列解析部201より供給されるマージフラグ、マージインデックス、インター予測タイプ、参照インデックス、差分ベクトル、および予測ベクトルインデックスと、動き情報メモリ207より供給される候補ブロック群から、動き情報を再生し、当該動き情報を動き補償部205および動き情報メモリ207に供給する。動き情報再生部204の詳細な構成については後述する。
【0210】
動き補償部205は、動き情報再生部204より供給される動き情報に基づいて、フレームメモリ206内の参照インデックスが示す参照画像を、動きベクトルに基づき動き補償して予測信号を生成する。予測方向が双予測であれば、L0予測とL1予測の予測信号を平均したものを予測信号として生成し、当該予測信号を加算部203に供給する。
【0211】
予測誤差復号部202は、符号列解析部201より供給される予測誤差符号化データに対して、逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、当該予測誤差信号を加算部203に供給する。
【0212】
加算部203は、予測誤差復号部202より供給される予測誤差信号と、動き補償部205より供給される予測信号とを加算して復号画像信号を生成し、当該復号画像信号をフレームメモリ206および端子31に供給する。
【0213】
フレームメモリ206および動き情報メモリ207は、動画像符号化装置100のフレームメモリ110および動き情報メモリ111と同一の機能を有する。フレームメモリ206は、加算部203より供給される復号画像信号を記憶する。動き情報メモリ207は、動き情報再生部204より供給される動き情報を最小の予測ブロックサイズ単位で記憶する。
参照ピクチャリスト生成部209は、復号制御部208から供給されるスライスタイプに応じて、参照ピクチャリストを生成する。スライスタイプがPスライスまたはBスライスであれば参照ピクチャリストL0を生成し、スライスタイプがBスライスであれば参照ピクチャリストL1を生成する。参照ピクチャリストL0と参照ピクチャリストL1の具体的な生成方法は動画像符号化装置100の参照ピクチャリスト生成部113と同一である。
【0214】
(動き情報再生部204の詳細な構成)
続いて、動き情報再生部204の詳細な構成について説明する。
図32は、動き情報再生部204の構成を示す。動き情報再生部204は、符号化モード判定部210、動きベクトル再生部211および結合動き情報再生部212を含む。端子32は符号列解析部201に、端子33は動き情報メモリ207に、端子34は動き補償部205に、端子36は動き情報メモリ207にそれぞれ接続されている。
【0215】
(動き情報再生部204の詳細な動作)
以下、各部の機能と動作について説明する。符号化モード判定部210は、符号列解析部201より供給されるマージフラグが「0」であるか「1」であるか判定する。マージフラグが「0」であれば、符号列解析部201より供給されるインター予測タイプ、参照インデックス、差分ベクトル、および予測ベクトルインデックスを動きベクトル再生部211に供給する。マージフラグが「1」であれば、符号列解析部201より供給されるマージインデックスを結合動き情報再生部212に供給する。また、スキップモードである場合も符号列解析部201より供給されるマージインデックスを結合動き情報再生部212に供給する。
【0216】
動きベクトル再生部211は、符号化モード判定部210より供給されるインター予測タイプ、参照インデックス、差分ベクトル、および予測ベクトルインデックスと、端子33より供給される候補ブロック群から、動きベクトルを再生して動き情報を生成し、端子34及び端子36に供給する。
【0217】
結合動き情報再生部212は、端子33より供給される候補ブロック群から結合動き情報候補リストを生成し、当該結合動き情報候補リストから符号化モード判定部210より供給されるマージインデックスによって示される結合動き情報候補の動き情報を選択して端子34及び端子36に供給する。
【0218】
(結合動き情報再生部212の詳細な構成)
続いて、結合動き情報再生部212の詳細な構成について説明する。
図33は、結合動き情報再生部212の構成を示す。結合動き情報再生部212は、結合動き情報候補リスト生成部230および結合動き情報選択部231を含む。端子35は符号化モード判定部210に接続されている。
【0219】
(結合動き情報再生部212の詳細な動作)
以下、各部の機能と動作について説明する。
図34は結合動き情報再生部212の動作を説明する図である。結合動き情報候補リスト生成部230は、端子33より供給される候補ブロック群から結合動き情報候補リストを生成し(S310)、当該結合動き情報候補リストを結合動き情報選択部231に供給する。
【0220】
結合動き情報選択部231は、端子35より供給されるマージインデックスを取得し(S311)、結合動き情報候補リスト生成部230より供給される結合動き情報候補リストの中から、マージインデックスで示される結合動き情報候補を選択して結合動き情報を決定し(S312)、当該結合動き情報の動き情報を端子34及び端子36に供給する。
【0221】
(動きベクトル再生部211の詳細な構成)
続いて、動きベクトル再生部211の詳細な構成について説明する。
図35は、動きベクトル再生部211の構成を説明する図である。動きベクトル再生部211は、予測ベクトル候補リスト生成部220、予測ベクトル選択部221および加算部222を含む。端子35は符号化モード判定部210に接続されている。
【0222】
(動きベクトル再生部211の詳細な動作)
以下、各部の機能と動作について説明する。
図36は動きベクトル再生部211の動作を説明する図である。動きベクトル再生部211は、端子35より供給されるインター予測タイプがL0予測であれば、L0予測について動きベクトルの算出を行い、インター予測タイプがL1予測であれば、L1予測について動きベクトルの算出を行い、インター予測タイプがBI予測であれば、L0予測とL1予測について動きベクトルの算出を行う。各LX予測の動きベクトルの算出は以下のように行われる。
【0223】
予測ベクトル候補リスト生成部220は、端子35より供給されるLX予測の参照インデックス及び端子33より供給される候補ブロック群からLX予測の予測ベクトル候補リストを生成し(S320)、当該LX予測の予測ベクトルリストを予測ベクトル選択部221に供給する。
【0224】
予測ベクトル選択部221は、端子35より供給されるLX予測の予測ベクトルインデックスを取得し(S321)、予測ベクトル候補リスト生成部220より供給されるLX予測の予測ベクトルリストからLX予測の予測ベクトルインデックスによって示される予測ベクトル候補を選択してLX予測の予測ベクトルとして決定し(S322)、当該LX予測の予測ベクトルと端子35より供給されるLX予測の差分ベクトルを加算してLX予測の動きベクトルを算出する(S323)。
【0225】
当該LX予測の動きベクトルとインター予測タイプとが組み合わされて動き情報が生成され、端子34及び端子36に供給される。
【0226】
以上のように、動画像復号装置200は、動画像符号化装置100により符号化された符号列を復号して再生画像を生成することができる。
【0227】
[実施の形態2]
以下、実施の形態2について説明する。実施の形態1とは第2結合動き情報候補補充部165の動作が異なる。以下、実施の形態1とは異なる点について説明する。
図37は実施の形態2の第2結合動き情報候補補充部165の動作を説明するフローチャートである。実施の形態1の第2結合動き情報候補補充部165とはステップS184の代わりにステップS187からステップS189が追加されていることが異なる。以下、ステップS187からステップS189について説明する。ここでは、参照ピクチャリストL0の利用可能な参照ピクチャ数が参照ピクチャリストL1の利用可能な参照ピクチャ数以上であるとして説明する。
【0228】
iがL1予測の参照インデックスの最大値(num_ref_idx_l1_active_minus1)以下であるか検査する(S187)。iがL1予測の参照インデックスの最大値(num_ref_idx_l1_active_minus1)以下であれば(S187のY)、L1予測の動きベクトル(mvL1)が(0,0)、L1予測の参照インデックス(ref_idx_l1)がi、インター予測タイプがPred_BIである第2補充結合動き情報候補を導出し(S188)、当該第2補充結合動き情報候補を結合動き情報候補リストに追加する(S185)。iがL1予測の参照インデックスの最大値(num_ref_idx_l1_active_minus1)以下でなければ(S187のN)、L1予測の動きベクトル(mvL1)が(0,0)、L1予測の参照インデックス(ref_idx_l1)が0、インター予測タイプがPred_BIである第2補充結合動き情報候補を導出し(S189)、当該第2補充結合動き情報候補を結合動き情報候補リストに追加する(S185)。
【0229】
図38は実施の形態2による第2補充結合動き情報候補の参照インデックスとPOCの関係の一例を説明する図である。
図38は参照ピクチャリストL0の利用可能な参照ピクチャ数が4で参照ピクチャリストL1の利用可能な参照ピクチャ数が2である場合の例を示す。
図38(a)は入力画像順と符号化順を並び替えない場合の第2補充結合動き情報候補の参照インデックスを、
図38(b)は入力画像順と符号化順を並び替える場合の第2補充結合動き情報候補の参照インデックスを示す。
【0230】
図38(a)について説明する。
0番目の第2補充結合動き情報候補のL0予測の参照インデックスとL1予測の参照インデックスは共に0となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+7である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+7である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0231】
1番目の第2補充結合動き情報候補のL0予測の参照インデックスとL1予測の参照インデックスは共に1となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+6である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+6である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0232】
2番目の第2補充結合動き情報候補は、L0予測の参照インデックスが2でL1予測の参照インデックスが0となって、L0予測の参照ピクチャはPOCがn+5である参照ピクチャとなり、L1予測の参照ピクチャはPOCがn+7である参照ピクチャとなる。
【0233】
3番目の第2補充結合動き情報候補は、L0予測の参照インデックスが3でL1予測の参照インデックスが0となって、L0予測の参照ピクチャはPOCがn+4である参照ピクチャとなり、L1予測の参照ピクチャはPOCがn+7である参照ピクチャとなる。
【0234】
以上のように、参照ピクチャリストL1の参照ピクチャが存在する場合は、i番目の第2補充結合動き情報候補を、L0予測の動きベクトルとL1予測の動きベクトルが(0,0)、L0予測の参照インデックスとL1予測の参照インデックスがi、インター予測タイプがPred_BIの動き情報として、参照ピクチャリストL1の参照ピクチャが存在しない場合は、i番目の第2補充結合動き情報候補を、L0予測の動きベクトルが(0,0)、L0予測参照インデックスがiでL1予測の参照インデックスが0、インター予測タイプがPred_BIの動き情報とすることで、参照ピクチャリストL1の利用可能な参照ピクチャ数と同数までの第2補充結合動き情報候補は動き情報としては双予測として導出し、予測信号としては単予測と同一となるようにすることで、一般的に処理対象ピクチャとの相関性の高くなる処理対象ピクチャに近い参照ピクチャだけを用いた動き補償予測を可能とし、参照ピクチャリストL1の利用可能な参照ピクチャ数より多くの第2補充結合動き情報候補を導出する場合には、直近の参照ピクチャを利用した双予測とすることができる。
【0235】
この場合、例えば、動画像の一部においてPOCがn+7である参照ピクチャには遮蔽物があるため処理対象ピクチャと同一の画像とはならないが、POCがn+6である参照ピクチャではその遮蔽物がないために処理対象ピクチャとPOCがn+6である参照ピクチャが同一となるような場合には、1番目の第2補充結合動き情報候補を利用することで、精度の高い予測信号を得ることが可能となる。
【0236】
続いて、
図38(b)について説明する。
0番目の第2補充結合動き情報候補のL0予測の参照インデックスとL1予測の参照インデックスは共に0となって、L0予測の参照ピクチャはPOCがn+4である参照ピクチャとなり、L1予測の参照ピクチャはPOCがn+6である参照ピクチャとなる。
【0237】
1番目の第2補充結合動き情報候補のL0予測の参照インデックスとL1予測の参照インデックスは共に1となって、L0予測の参照ピクチャはPOCがn+2である参照ピクチャとなり、L1予測の参照ピクチャはPOCがn+8である参照ピクチャとなる。
【0238】
2番目の第2補充結合動き情報候補のL0予測の参照インデックスは2、L1予測の参照インデックスは0となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+6である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+6である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0239】
3番目の第2補充結合動き情報候補のL0予測の参照インデックスは3、L1予測の参照インデックスは0となって、L0予測の参照ピクチャはPOCがn+8である参照ピクチャとなり、L1予測の参照ピクチャはPOCがn+6である参照ピクチャとなる。
【0240】
以上のように、i番目の第2補充結合動き情報候補を、L0予測の動きベクトルとL1予測の動きベクトルが(0,0)、L0予測の参照インデックスとL1予測の参照インデックスがi、インター予測タイプがPred_BIの動き情報とすることで、L0予測とL1予測のそれぞれの参照ピクチャを余すことなく第2補充結合動き情報候補の参照ピクチャに割り当てることができる。ここで、第2補充結合動き情報候補と結合動き情報候補リストにある所定の結合動き情報候補とが組み合わされて第1補充結合動き情報候補が導出される場合、所定の結合動き情報候補がL0予測の単予測である場合には新たな第2補充結合動き情報候補は導出されない。また、所定の結合動き情報候補が双予測であった場合でも、所定の結合動き情報候補のL0予測と組み合わされるべきL1予測の動きベクトルと参照画像が第2補充結合動き情報候補にはないため、所定の結合動き情報候補のL0予測を利用した第1補充結合動き情報候補が導出されない。
【0241】
ここでは、全ての第2補充結合動き情報候補を双予測とすることで、結合動き情報候補リストにある所定の結合動き情報候補と組み合わせた場合に、より多くの第1補充結合動き情報候補の導出を可能とし、符号化効率を向上させることができる。また、第2補充結合動き情報候補同士を組み合わせた場合でも第1補充結合動き情報候補の導出確率を向上させることができる。
【0242】
[実施の形態3]
以下、実施の形態3について説明する。実施の形態1とは第2結合動き情報候補補充部165の動作が異なる。以下、実施の形態1とは異なる点について説明する。
図39は実施の形態2の第2結合動き情報候補補充部165の動作を説明するフローチャートである。実施の形態1の第2結合動き情報候補補充部165とはステップS184の代わりにステップS190からステップS192が追加されていることが異なる。また、第2補充結合動き情報候補を導出する最大数であるMaxNumGenCandの算出式が異なる。以下、S190からステップS192について説明する。
【0243】
最初に、第2補充結合動き情報候補を導出する最大数であるMaxNumGenCandを式7より算出する(S180)。
MaxNumGenCand=Min(MaxNumMergeCand-NumCandList, Min(num_ref_idx_l0_active_minus1+1, num_ref_idx_l1_active_minus1+1)); 式7
【0244】
L1予測の参照ピクチャリストにL0予測の参照インデックスで示される参照ピクチャが存在するか検査する(S190)。
【0245】
L1予測の参照ピクチャリストにL0予測の参照インデックスで示される参照ピクチャが存在すれば、L1予測の動きベクトル(mvL1)が(0,0)、L1予測の参照インデックスがL0予測の参照インデックスで示される参照ピクチャと同一の参照ピクチャを示すL1予測の参照インデックス、インター予測タイプがPred_BIである第2補充結合動き情報候補を導出し(S191)、当該第2補充結合動き情報候補を結合動き情報候補リストに追加する(S185)。ここで、getRefIdxL1(ref_idx_l0)はL0予測の参照インデックスで示される参照ピクチャと同一の参照ピクチャを示すL1予測の参照インデックスを得る関数であるとする。
【0246】
L1予測の参照ピクチャリストにL0予測の参照インデックスで示される参照ピクチャが存在しなければ、L1予測の動きベクトル(mvL1)が(0,0)、L1予測の参照インデックスをi、インター予測タイプがPred_BIである第2補充結合動き情報候補を導出し(S192)、当該第2補充結合動き情報候補を結合動き情報候補リストに追加する(S185)。
【0247】
入力画像順と符号化順を並び替えない場合であって、L0予測の参照ピクチャリストとL1予測が同一であることが分かっている場合にはステップS190とステップS191を実施しないようにすることもできる。
【0248】
図40は実施の形態3による第2補充結合動き情報候補の参照インデックスとPOCの関係の一例を説明する図である。
図40は参照ピクチャリストL0の利用可能な参照ピクチャ数が4で参照ピクチャリストL1の利用可能な参照ピクチャ数が4である場合の例を示す。
図40(a)は入力画像順と符号化順を並び替えない場合の第2補充結合動き情報候補の参照インデックスを、
図40(b)は入力画像順と符号化順を並び替える場合の第2補充結合動き情報候補の参照インデックスを示す。
【0249】
図40(a)について説明する。
0番目の第2補充結合動き情報候補のL0予測の参照インデックスとL1予測の参照インデックスは共に0となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+7である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+7である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0250】
1番目の第2補充結合動き情報候補のL0予測の参照インデックスとL1予測の参照インデックスは共に1となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+6である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+6である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0251】
2番目の第2補充結合動き情報候補のL0予測の参照インデックスとL1予測の参照インデックスは共に2となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+5である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+5である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0252】
3番目の第2補充結合動き情報候補のL0予測の参照インデックスとL1予測の参照インデックスは共に3となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+4である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+4である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0253】
続いて、
図40(b)について説明する。
0番目の第2補充結合動き情報候補のL0予測の参照インデックスは0、L1予測の参照インデックスは2となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+4である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+4である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0254】
1番目の第2補充結合動き情報候補のL0予測の参照インデックスは1、L1予測の参照インデックスは3となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+2である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+2である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0255】
2番目の第2補充結合動き情報候補のL0予測の参照インデックスは2、L1予測の参照インデックスは0となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+6である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+6である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0256】
3番目の第2補充結合動き情報候補のL0予測の参照インデックスは3、L1予測の参照インデックスは1となって、L0予測の参照ピクチャとL1予測の参照ピクチャは共にPOCがn+8である参照ピクチャで同一となるため、双予測の動き情報を有しながらPOCがn+8である参照ピクチャを動きベクトル(0,0)で動き補償予測した単予測と同一の予測信号となる。
【0257】
以上のように、L1予測の参照ピクチャリストにL0予測の参照インデックスで示される参照ピクチャが存在する場合は、L1予測の参照インデックスをL0予測の参照インデックスで示される参照ピクチャと同一の参照ピクチャを示すL1予測の参照インデックスとすることで、予測信号としては単予測と同一でありながら、動き情報は双予測となるような第2補充結合動き情報候補を導出することができる。
【0258】
この場合、例えば、直近の参照ピクチャの処理対象ブロックと同一位置には遮蔽物があるため、直近の参照ピクチャの処理対象ブロックと同一位置の画像は処理対象ブロックの画像と同一とはならないが、ある程度時間の離れた参照ピクチャではその遮蔽物がなくなっているために処理対象ブロックと同一の画像となるような場合には、その遮蔽物がなくなっている参照ピクチャを参照する第2補充結合動き情報候補を利用することで、精度の高い予測信号を得ることが可能となる。より具体的には、
図40(a)において、POCがn+7である参照ピクチャでは遮蔽物があるため、POCがn+7である参照ピクチャの処理対象ブロックと同一位置の画像は処理対象ブロックの画像とは同一の画像とはならないが、POCがn+6である参照画像ではその遮蔽物がなくなっているため、POCがn+6である参照ピクチャの処理対象ブロックと同一位置の画像は処理対象ブロックの画像と同一の画像となるような場合、1番目の第2補充結合動き情報候補を選択することで、精度の高い予測信号を得ることが可能となる。
【0259】
また、例えば、処理対象ピクチャまでは静止して次のピクチャから動きがあるような動画像では、処理対象ピクチャよりも時間的に前の参照ピクチャを利用することで、精度の高い予測信号を得ることが可能となる。より具体的には、
図40(b)において、処理対象ピクチャまでは静止しているが、POCがn+6である参照ピクチャから動きがあるような動画像の場合、処理対象ピクチャよりも時間的に前のPOCがn+4である参照ピクチャを参照する0番目の第2補充結合動き情報候補を利用することで、精度の高い予測信号を得ることが可能となる。
【0260】
また、L0予測とL1予測のそれぞれの参照ピクチャを余すことなく第2補充結合動き情報候補の参照ピクチャに割り当てながら、全ての第2補充結合動き情報候補の予測信号を異なるものとすることができる。
【0261】
さらに、第1結合動き情報候補補充部164にステップS175が設置されているため、第1結合動き情報候補補充部164において第2補充結合動き情報候補と同一となる第1補充結合動き情報候補が追加されることはなく、結合動き情報候補リストに異なる動き情報を持つ結合動き情報候補が存在する確率を高めることで、符号化効率を向上させることができる。
【0262】
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
【0263】
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
【0264】
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
【0265】
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
【0266】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【解決手段】結合動き情報候補リスト構築部162は、空間結合動き情報候補と時間結合動き情報候補とを利用して結合動き情報候補のリストである結合動き情報候補リストを生成する。第2結合動き情報候補補充部165は、参照インデックスが利用可能な参照ピクチャを示す場合はその参照インデックスを、参照インデックスが利用可能な参照ピクチャを示さない場合は所定の参照インデックスを、予め設定された大きさと方向とを有する動きベクトルとともに含む、新たな結合動き情報候補を生成して結合動き情報候補リストに追加する。結合動き情報選択部231は、復号された特定インデックスに基づいて、新たな結合動き情報候補が追加された結合動き情報候補リストから1つの結合動き情報候補を選択し、復号対象の予測ブロックの動き情報として、選択した1つの結合動き情報候補を導出する。