説明

画像符号化装置、画像符号化方法及び画像符号化プログラム

【課題】処理対象の予測ブロックの動きベクトルを効率よく再生する。
【解決手段】予測ベクトル候補リスト生成部130は、符号化対象ブロックの参照画像を特定する参照インデックス情報にもとづいて、符号化対象ブロックに隣接する符号化済みの複数の隣接ブロックの動きベクトルから予測ベクトル候補リストを生成する。予測ベクトル決定部131は、予測ベクトル候補リストから符号化対象ブロックの予測動きベクトルを選択する。符号列生成部104は、符号化対象ブロックの動きベクトルと選択された予測動きベクトルとの差分ベクトルを、予測ベクトル候補リストにおいて選択された予測動きベクトルを特定する予測ベクトルインデックス情報および参照インデックス情報とともに符号化対象ブロック毎に符号化して符号列を生成する。符号列生成部104は、予測ベクトルインデックス情報および参照インデックス情報を差分ベクトルよりも前に符号列に配置する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動き補償予測を用いた動画像符号化技術に関し、特に動き補償予測で利用する動き情報を符号化する画像符号化装置、画像符号化方法および画像符号化プログラムに関する。
【背景技術】
【0002】
一般的な動画像圧縮符号化では動き補償予測が利用される。動き補償予測は、対象画像を細かいブロックに分割し、復号済みの画像を参照画像として、動きベクトルで示される動き量に基づいて、対象画像の処理対象ブロックから参照画像の参照ブロックに移動した位置の信号を予測信号として生成する技術である。動き補償予測には1本の動きベクトルを利用して単予測に行うものと、2本の動きベクトルを利用して双予測に行うものがある。
【0003】
動きベクトルについては、処理対象ブロックに隣接する符号化済みのブロックの動きベクトルを予測動きベクトル(単に「予測ベクトル」ともいう)とし、処理対象ブロックの動きベクトルと予測ベクトルとの差分を求め、差分ベクトルを符号化ベクトルとして伝送することで圧縮効率を向上させている。
【0004】
MPEG−4AVC/H.264(以下、MPEG−4AVC)のような動画像圧縮符号化では、動き補償予測のブロックサイズを細かくして複数の復号済みの画像の中から参照画像を選択することを可能とすることで、動き補償予測の効率を向上させることができる。一方、動き補償予測のブロックサイズを細かくすることで符号化ベクトルの符号量が増加し、複数の復号済みの画像の中から参照画像を選択することで参照画像の情報の符号量が増加する。
【0005】
そのため、特許文献1に記載の技術は、処理対象ブロックの複数の隣接ブロックの動きベクトルと参照画像情報から予測ベクトルを算出することで予測ベクトルの精度を向上させ、符号化ベクトルの符号量の増加を抑制している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2011−147172号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
一般的な動画像圧縮符号化による復号装置において、双予測の動き補償予測を実施する場合には、予測ベクトル、差分ベクトルと参照画像情報がそれぞれ2つずつ必要となる。差分ベクトルと参照画像情報は符号化ストリームから取得され、予測ベクトルは処理対象ブロックの複数の隣接ブロックの動きベクトルと参照画像情報、符号化ストリームから取得した参照画像情報によって決定される。特許文献1には、差分ベクトルと参照画像情報を符号化ストリームに符号化する詳細については記載されていない。MPEG−4AVCの予測ブロックのシンタックスを図1に示す。MPEG−4AVCでは、予測ブロックはマクロブロック内に複数まとめられて符号化される。このとき、マクロブロックに属する参照画像情報と差分ベクトルはそれぞれがまとめられて符号化される。そのため、ある予測ブロックの参照画像情報と差分ベクトルが、他の予測ブロックの参照画像情報と差分ベクトルと入れ子の配置となっており、予測ブロック単位で処理を実施する場合に、動きベクトルを効率よく決定することができない問題点があった。
【0008】
本発明はこうした状況に鑑みてなされたものであり、その目的は、処理対象の予測ブロックの動きベクトルを効率よく再生することのできる動画像符号化技術を提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明のある態様の画像符号化装置は、動き補償予測を行う画像符号化装置であって、符号化対象ブロックの参照画像を特定する参照インデックス情報にもとづいて、符号化対象ブロックに隣接する符号化済みの複数の隣接ブロックの動きベクトルから予測動きベクトルの候補を含む予測ベクトル候補リストを生成する予測ベクトル候補リスト生成部(130)と、前記予測ベクトル候補リストから前記符号化対象ブロックの予測動きベクトルを選択する予測ベクトル決定部(131)と、前記符号化対象ブロックの動きベクトルと選択された前記予測動きベクトルとの差分ベクトルを、前記予測ベクトル候補リストにおいて選択された前記予測動きベクトルを特定する予測ベクトルインデックス情報および前記参照インデックス情報とともに前記符号化対象ブロック毎に符号化して符号列を生成する符号列生成部(104)とを備える。前記符号列生成部(104)は、前記予測ベクトルインデックス情報および前記参照インデックス情報を、前記差分ベクトルよりも前に前記符号列に配置する。
【0010】
本発明の別の態様は、画像符号化方法である。この方法は、動き補償予測を行う画像符号化方法であって、符号化対象ブロックの参照画像を特定する参照インデックス情報にもとづいて、符号化対象ブロックに隣接する符号化済みの複数の隣接ブロックの動きベクトルから予測動きベクトルの候補を含む予測ベクトル候補リストを生成する予測ベクトル候補リスト生成ステップと、前記予測ベクトル候補リストから前記符号化対象ブロックの予測動きベクトルを選択する予測ベクトル決定ステップと、前記符号化対象ブロックの動きベクトルと選択された前記予測動きベクトルとの差分ベクトルを、前記予測ベクトル候補リストにおいて選択された前記予測動きベクトルを特定する予測ベクトルインデックス情報および前記参照インデックス情報とともに前記符号化対象ブロック毎に符号化して符号列を生成する符号列生成ステップとを備える。前記符号列生成ステップは、前記予測ベクトルインデックス情報および前記参照インデックス情報を、前記差分ベクトルよりも前に前記符号列に配置する。
【0011】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0012】
本発明によれば、処理対象の予測ブロックの動きベクトルを効率よく再生することができる。
【図面の簡単な説明】
【0013】
【図1】MPEG−4AVC/H.264の予測ブロックのシンタックスを説明するための図である。
【図2】図2(a)、(b)は、符号化ブロックを説明するための図である。
【図3】図3(a)〜(d)は、予測ブロックを説明するための図である。
【図4】予測符号化モードを説明するための図である。
【図5】予測ブロックのシンタックスの一例を説明するための図である。
【図6】予測ブロックのシンタックスの別の一例を説明するための図である。
【図7】符号化ブロック(CU)と予測ブロック(PU)の関係を示すシンタックスの一例を説明する図である。
【図8】実施の形態1に係る動画像符号化装置の構成を示す図である。
【図9】動き情報生成部の構成を示す図である。
【図10】予測ベクトルモード決定部の構成を示す図である。
【図11】予測ベクトルモード決定部の動作を説明するためのフローチャートである。
【図12】処理対象の予測ブロックサイズが16画素×16画素である場合の処理対象の予測ブロックの隣接ブロックを示す図である。
【図13】処理対象の予測ブロックサイズが16画素×16画素である場合の処理対象の予測ブロックと同一位置にあるColPic上の予測ブロック内のブロックとその周辺ブロックを示す図である。
【図14】予測ベクトル候補リスト生成部の構成を説明するための図である。
【図15】空間予測ベクトル候補生成部の動作を説明するためのフローチャートである。
【図16】時間予測ベクトル候補生成部の動作を説明するためのフローチャートである。
【図17】時間予測ベクトル候補の算出手法を説明するための図である。
【図18】空間スケーリング予測ベクトル候補生成部の動作を説明するためのフローチャートである。
【図19】空間スケーリング予測ベクトル候補の算出手法を説明するための図である。
【図20】実施の形態1の動画像復号装置を示す図である。
【図21】動き情報再生部の構成を示す図である。
【図22】動きベクトル再生部の構成を示す図である。
【図23】インター予測タイプがPred_BIである場合の復号動作を説明するためのフローチャートである。
【図24】従来の予測ベクトルの決定処理における実施の形態1と従来のシンタックスに基づいた動きベクトルの生成タイミングを説明する図である。
【図25】実施の形態1の予測ベクトルの決定処理における実施の形態1と従来のシンタックスに基づいた動きベクトルの生成タイミングを説明する図である。
【発明を実施するための形態】
【0014】
まず、本発明の実施の形態の前提となる技術を説明する。
【0015】
現在、MPEG(Moving Picture Experts Group)などの符号化方式に準拠した装置およびシステムが普及している。そのような符号化方式では、時間軸上に連続する複数の画像をデジタル信号の情報として取り扱う。その際、効率の高い情報の放送、伝送または蓄積などを目的とし、画像を複数のブロックに分割して時間方向の冗長性を利用した動き補償予測、および空間方向の冗長性を利用した離散コサイン変換などの直交変換を用いて圧縮符号化する。
【0016】
2003年に、国際標準化機構(ISO)と国際電気標準会議(IEC)のジョイント技術委員会(ISO/IEC)と、国際電気通信連合電気通信標準化部門(ITU−T)の共同作業によってMPEG−4 AVC/H.264と呼ばれる符号化方式(ISO/IECでは14496−10、ITU−TではH.264の規格番号がつけられている。以下、これをMPEG−4AVCと呼ぶ)が国際標準として制定された。MPEG−4AVCでは、基本的に処理対象ブロックの複数の隣接ブロックの動きベクトルの中央値を予測ベクトルとする。予測ブロックサイズが正方形でない場合で処理対象ブロックの特定の隣接ブロックの参照インデックスと処理対象ブロックの参照インデックスが一致する場合には、その特定の隣接ブロックの動きベクトルを予測ベクトルとする。
【0017】
現在、国際標準化機構(ISO)と国際電気標準会議(IEC)のジョイント技術委員会(ISO/IEC)と、国際電気通信連合電気通信標準化部門(ITU−T)の共同作業によってHEVCと呼ばれる符号化方式の標準化が検討されている。
【0018】
HEVCの標準化では、複数の隣接ブロックと復号済みの別の画像のブロックを候補ブロック群として、これら候補ブロック群から予測ブロックとして最適な候補ブロックが選択されて、選択された候補ブロックの情報が符号化および復号される技術が検討されている。
【0019】
HEVCでは予測ベクトルモード(動き検出モードともいう)が検討されている。予測ベクトルモード時には、候補ブロック群から予測ベクトル候補リストが生成されて、その予測ベクトル候補リストの中から選択された予測ベクトルが予測ベクトルとなって、その予測ベクトルと処理対象ブロックの差分ベクトルとが加算されて、処理対象ブロックの動きベクトルが再生される。
【0020】
[実施の形態1]
(符号化ブロック)
本実施の形態では、入力された画像信号は最大符号化ブロック単位に分割され、分割された最大符号化ブロックをラスタースキャン順序で処理する。符号化ブロックは階層構造となっており、符号化効率などを考慮して順次均等に4分割することでより小さい符号化ブロックにすることができる。なお、4分割された符号化ブロックはジグザグスキャン順で符号化される。これ以上小さくすることのできない符号化ブロックを最小符号化ブロックと呼ぶ。符号化ブロックは符号化の単位となり、最大符号化ブロックも分割数が0である場合は符号化ブロックとなる。本実施の形態では、最大符号化ブロックを64画素×64画素、最小符号化ブロックを8画素×8画素とする。
【0021】
図2(a)、(b)は、符号化ブロックを説明するための図である。図2(a)の例では、符号化ブロックが10個に分割されている。CU0、CU1およびCU9は32画素×32画素の符号化ブロック、CU2、CU3およびCU8は16画素×16画素の符号化ブロック、ならびにCU4、CU5、CU6およびCU7は8画素×8画素の符号化ブロックとなっている。図2(b)の例では、符号化ブロックが1個に分割されている。
【0022】
(予測ブロック)
本実施の形態では、符号化ブロックはさらに予測ブロックに分割される。図3(a)〜(d)は、予測ブロックを説明するための図である。図3(a)は符号化ブロックを分割しない2N×2N、図3(b)は水平に分割する2N×N、図3(c)は垂直に分割するN×2N、および図3(d)は水平と垂直に分割するN×Nを示す。
本実施の形態では、最大符号化ブロックを64画素×64画素、最小符号化ブロックを8画素×8画素とするが、この組み合わせに限定されない。また、予測ブロックの分割のパターンを図3(a)〜(d)としたが、1以上に分割される組み合わせであればよくこれに限定されない。
【0023】
(予測符号化モード)
本実施の形態では、動き補償予測や符号化ベクトル数を予測ブロックのブロックサイズで切り替えることが可能となっている。ここで、動き補償予測と符号化ベクトル数を関連付けた予測符号化モードの一例について図4を用いて簡単に説明する。図4は、予測符号化モードを説明するための図である。
【0024】
図4に示す予測符号化モードには、動き補償予測の予測方向が単予測(L0予測)であって符号化ベクトル数が1であるPredL0、動き補償予測の予測方向が単予測(L1予測)であって符号化ベクトル数が1であるPredL1、動き補償予測の予測方向が双予測(BI予測)であって符号化ベクトル数が2であるPredBI、および動き補償予測の予測方向が単予測(L0予測/L1予測)または双予測(BI予測)であって符号化ベクトル数が0であるマージモード(MERGE)がある。また、動き補償予測を実施しない予測符号化モードであるイントラモード(Intra)もある。ここで、PredL0、PredL1、およびPredBIが予測ベクトルモードとなる。マージモードについては本発明の主眼ではないため、詳細には説明しない。
【0025】
(参照インデックス)
本実施の形態では、動き補償予測の精度向上のために、動き補償予測において複数の参照画像の中から最適な参照画像を選択することを可能とする。そのため、動き補償予測で利用した参照画像を参照画像インデックスとして符号化ベクトルとともに符号化する。動き補償予測で利用される参照画像インデックスは0以上の数値となる。動き補償予測が単予測であれば、参照インデックスは1つ利用され、動き補償予測が双予測であれば、2つの参照インデックスが利用される(図4)。
【0026】
(参照インデックスリスト)
本実施の形態では、動き補償予測で利用できる複数の参照画像を参照インデックスリスト内に登録しておき、参照インデックスリスト内に登録された参照画像を参照インデックスで示すことによって参照画像を確定させて動き補償予測で利用する。参照インデックスリストには、参照インデックスリストL0と参照インデックスリストL1がある。動き補償予測が単予測の場合は、参照インデックスリストL0の中の参照画像を用いたL0予測、または参照インデックスリストL1の中の参照画像を用いたL1予測のいずれかを利用する。双予測の場合は参照インデックスリストL0と参照インデックスリストL1の2つを利用したBI予測を利用する。各参照インデックスリストに登録できる参照画像の最大数は16とする。
【0027】
(予測ベクトルインデックス)
本実施の形態では、予測ベクトルの精度を向上させるために、複数の隣接ブロックおよび符号化済みの別の画像の処理対象ブロックと同一位置の周辺にあるブロックを候補ブロックとして、候補ブロックの動きベクトルの中から予測ベクトルとして最適な動きベクトルを持つ候補ブロックを選択し、選択した候補ブロックを示すための予測ベクトルインデックスを符号化および復号する。動き補償予測が単予測であれば、予測ベクトルインデックスは1つ利用され、動き補償予測が双予測であれば、2つの予測ベクトルインデックスが利用される(図4)。それぞれの予測ベクトルインデックスで選択できる候補ブロックの最大数(以降、予測ベクトル候補最大数とする)は2であり、予測ベクトルインデックスは0または1の整数となる。ここでは、予測ベクトル候補最大数を2としたが、2以上であればよく、これに限定されない。
【0028】
以降、予測ベクトルインデックスの対象となる候補ブロックの動きベクトルを予測ベクトル候補と呼び、予測ベクトル候補の集合体を予測ベクトル候補リストと呼ぶ。
【0029】
本実施の形態では、予測ベクトル候補最大数を2としたが、いずれかが2以上であればよく、この組み合わせに限定されない。
【0030】
(POC)
本実施の形態では、画像の時間情報(距離情報)としてPOC(Picture Order Count)を用いる。POCはMPEG−4AVCで定義された画像の表示順序を示すカウンタである。画像の表示順序が1増加するとPOCも1増加する。したがって、画像間のPOC差から画像間の時間差(距離)を取得できる。
【0031】
(シンタックス)
本実施の形態による予測ブロックのシンタックスの一例について図5を用いて説明する。予測ブロックがイントラであるかインターであるかは上位の符号化ブロックによって指定されており、図5は予測ブロックがインターの場合の予測ブロックのシンタックスを示す。予測ブロック(図5のPU)には、マージフラグ(merge_flag)、マージインデックス(merge_idx)、インター予測タイプ(inter_pred_type)、L0予測の参照インデックス(ref_idx_l0)、L0予測の予測ベクトルインデックス(mvp_idx_l0)、L0予測の差分ベクトル(mvd_l0[0]、mvd_l0[1])、L1予測の参照インデックス(ref_idx_l1)、L1予測の予測ベクトルインデックス(mvp_idx_l1)、およびL1予測の差分ベクトル(mvd_l1[0]、mvd_l1[1])が設置されている。差分ベクトルの[0]は水平成分、[1]は垂直成分を示す。
【0032】
ここで、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予測に関する情報が設置される。図5のnum_ref_idx_l0は参照インデックスリストL0に登録されている参照画像数を示し、num_ref_idx_l1は参照インデックスリストL1に登録されている参照画像数を示す。num_ref_idx_l0が1より大きい場合はref_idx_l0が設置され、num_ref_idx_l0が1以下であればref_idx_l0は設置されない。num_ref_idx_l1が1より大きい場合はref_idx_l1が設置され、num_ref_idx_l1が1以下であればref_idx_l1は設置されない。
【0033】
なお、本実施の形態による予測ブロックのシンタックスを図5のように設定したが、これに限定されない。例えば、図6でもよい。図5は参照インデックス、予測ベクトルインデックス、差分ベクトルの順でL0予測とL1予測に関するシンタックス要素を設置し、図6はL0予測とL1予測の順で参照インデックス、予測ベクトルインデックス、差分ベクトルに関するシンタックス要素を設置している。
【0034】
図7は、符号化ブロック(CU)と予測ブロック(PU)の関係を示すシンタックスの一例を説明する図である。図7のように、実施の形態1では、CUの中にPUが独立して複数存在する。従来のMPEG−4AVCのシンタックス(図1)では、マクロブロック内のPUは独立しておらず、各PUのシンタックス要素がそれぞれまとめられてマクロブロック内に設置されている。
【0035】
以下、図面とともに本発明の好適な実施の形態に係る動画像符号化装置、動画像符号化方法および動画像符号化プログラム、ならびに動画像復号装置、動画像復号方法および動画像復号プログラムの詳細について説明する。なお、図面の説明において同一要素には同一符号を付与して重複する説明を省略する。
【0036】
(動画像符号化装置100の構成)
図8は、本実施の形態1に係る動画像符号化装置100の構成を示す。動画像符号化装置100は、動画像信号を、動き補償予測を実施する予測ブロック単位で符号化する装置である。符号化ブロックの分割、予測ブロックサイズの決定、予測符号化モードがイントラであるかの決定は図示しない上位の符号化制御部で決定されているものとし、実施の形態1では予測符号化モードがイントラでない場合について説明する。また、実施の形態1では双予測に対応したBピクチャについて説明するが、双予測に対応しないPピクチャについてはL1予測を省略すればよい。
【0037】
動画像符号化装置100は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像符号化装置100は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。なお、処理対象の予測ブロックの位置情報、予測ブロックサイズおよび動き補償予測の予測方向に関しては動画像符号化装置100内で共有していることとし、図示しない。
【0038】
実施の形態1の動画像符号化装置100は、予測ブロック画像取得部101、減算部102、予測誤差符号化部103、符号列生成部104、予測誤差復号部105、動き補償部106、加算部107、動きベクトル検出部108、動き情報生成部109、フレームメモリ110、および動き情報メモリ111を含む。
【0039】
(動画像符号化装置100の動作)
以下、各部の機能と動作について説明する。予測ブロック画像取得部101は、予測ブロックの位置情報と予測ブロックサイズに基づいて、端子10より供給される画像信号から処理対象の予測ブロックの画像信号を取得し、予測ブロックの画像信号を減算部102、動きベクトル検出部108および動き情報生成部109に供給する。
【0040】
動きベクトル検出部108は、予測ブロック画像取得部101より供給される画像信号および内部に記憶している複数の参照画像に相当する画像信号から、L0予測とL1予測それぞれの動きベクトルと参照画像を示す参照インデックスを検出する。当該L0予測とL1予測の動きベクトル、および当該L0予測とL1予測の参照インデックスを動き情報生成部109に供給する。ここでは、L0予測とL1予測の参照画像の数をそれぞれ3とする。実施の形態1では、L0予測とL1予測の参照画像の数をそれぞれ3としたが、L0予測とL1予測の参照画像の数はそれぞれ1以上であればよく、これに限定されない。
【0041】
一般的な動きベクトルの検出方法は、対象画像の画像信号と、同一位置より所定の移動量だけ移動させた参照画像の予測信号について誤差評価値を算出し、誤差評価値が最小となる移動量を動きベクトルとする。参照画像が複数ある場合には各参照画像について動きベクトルを検出し、誤差評価値が最小となる参照画像を選択する。誤差評価値としては、絶対差分和を示すSAD(Sum of Absolute Difference)や二乗誤差平均を示すMSE(Mean Square Error)などを利用することが可能である。
【0042】
動き情報生成部109は、動きベクトル検出部108より供給されるL0予測とL1予測の動きベクトルおよびL0予測とL1予測の参照インデックス、動き情報メモリ111より供給される候補ブロック群、フレームメモリ110内の参照インデックスで示される参照画像、および予測ブロック画像取得部101より供給される画像信号から、予測符号化モードを決定する。
【0043】
決定された予測符号化モードに基づいて、マージフラグ、マージインデックス、動き補償予測の予測方向、L0予測とL1予測の参照インデックス、L0予測とL1予測の差分ベクトルおよびL0予測とL1予測の予測ベクトルインデックスを必要に応じて、符号列生成部104に供給する。動き補償予測の予測方向、L0予測とL1予測の参照インデックス、およびL0予測とL1予測の動きベクトルを動き補償部106および動き情報メモリ111に供給する。動き情報生成部109の詳細については後述する。
【0044】
動き補償部106は、動き情報生成部109より供給される動き補償予測の予測方向がLN予測であれば、動き情報生成部109より供給されるLN予測の参照インデックスで示されるフレームメモリ110内の参照画像を、動き情報生成部109より供給されるLN予測の動きベクトルに基づき動き補償してLN予測の予測信号を生成する。Nは0または1である。なお、動き補償予測の予測方向が双予測であれば、L0予測とL1予測の予測信号の平均値が予測信号となる。動き補償部106は、当該予測信号を減算部102に供給する。
【0045】
減算部102は、予測ブロック画像取得部101より供給される画像信号と動き補償部106より供給される予測信号を減算して予測誤差信号を算出し、当該予測誤差信号を予測誤差符号化部103に供給する。
【0046】
予測誤差符号化部103は、減算部102より供給される予測誤差信号に対して、量子化や直交変換などの処理を行って予測誤差符号化データを生成し、当該予測誤差符号化データを符号列生成部104および予測誤差復号部105に供給する。
【0047】
符号列生成部104は、予測誤差符号化部103より供給される予測誤差符号化データ、ならびに動き情報生成部109より供給されるマージフラグ、マージインデックス、動き補償予測の予測方向(インター予測タイプ)、L0予測とL1予測の参照インデックス、L0予測とL1予測の差分ベクトルおよびL0予測とL1予測の予測ベクトルインデックスをシンタックスの順序に従ってエントロピー符号化して符号列を生成し、当該符号列を端子11に供給する。エントロピー符号化は算術符号化やハフマン符号化などの可変長符号化を含む方法によって実施される。
【0048】
予測誤差復号部105は、予測誤差符号化部103より供給される予測誤差符号化データに対して、逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、当該予測誤差信号を加算部107に供給する。加算部107は、予測誤差復号部105より供給される予測誤差信号と、動き補償部106より供給される予測信号を加算して復号画像信号を生成し、当該復号画像信号をフレームメモリ110に供給する。
【0049】
フレームメモリ110は、加算部107より供給される復号画像信号を記憶する。また、画像全体の復号が完了した復号画像については参照画像として、1以上の所定の画像数を記憶する。フレームメモリ110は、記憶した参照画像信号を動き補償部106および動き情報生成部109に供給する。参照画像を記憶する記憶領域はFIFO(First In First Out)方式で制御される。
【0050】
動き情報メモリ111は、動き情報生成部109より供給される動き情報を最小の予測ブロックサイズ単位で所定の画像数、記憶する。処理対象の予測ブロックの隣接ブロックの動き情報を空間候補ブロック群とする。
【0051】
また、動き情報メモリ111は、処理対象の予測ブロックと同一位置にあるColPic上のブロックとその周辺ブロックの動き情報を時間候補ブロック群とする。動き情報メモリ111は、空間候補ブロック群と時間候補ブロック群を候補ブロック群として動き情報生成部109に供給する。動き情報メモリ111は、フレームメモリ110と同期しており、FIFO(First In First Out)方式で制御される。
【0052】
ここで、ColPicとは、処理対象の予測ブロックとは別の復号済みの画像であって、フレームメモリ110に参照画像として記憶されている画像を指す。実施の形態1では、ColPicは直前に復号した参照画像とする。なお、実施の形態1では、ColPicは直前に復号した参照画像としたが、符号化済みの画像であればよく、例えば、表示順で直前の参照画像や表示順で直後の参照画像でもよく、符号化ストリーム中で指定することも可能である。
【0053】
ここで、動き情報メモリ111における動き情報の管理方法について説明する。動き情報は最小の予測ブロック単位で各メモリエリアに記憶される。各メモリエリアには、予測方向、L0予測の動きベクトル、L0予測の参照インデックス、L1予測の動きベクトル、およびL1予測の参照インデックスが記憶される。
【0054】
なお、予測符号化モードがイントラモードである場合、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」であることである。
【0055】
(動き情報生成部109の構成)
続いて、動き情報生成部109の詳細な構成について説明する。図9は、動き情報生成部109の構成を示す。動き情報生成部109は、予測ベクトルモード決定部120、マージモード決定部121および予測符号化モード決定部122を含む。端子12は動き情報メモリ111に、端子13は動きベクトル検出部108に、端子14はフレームメモリ110に、端子15は予測ブロック画像取得部101に、端子16は符号列生成部104に、端子50は動き補償部106に、および端子51は動き情報メモリ111にそれぞれ接続されている。
【0056】
(動き情報生成部109の動作)
以下、各部の機能と動作について説明する。予測ベクトルモード決定部120は、端子12より供給される候補ブロック群、端子13より供給されるL0予測とL1予測の動きベクトルおよびL0予測とL1予測の参照インデックス、端子14より供給される参照インデックスで示される参照画像、および端子15より供給される画像信号から、各予測符号化モード(予測ベクトルモードPredL0、PredL1、およびPredBi)から1つの予測符号化モードを決定し、レート歪み評価値を算出する。そして、予測符号化モードに基づいた動き情報、差分ベクトル、予測ベクトルインデックス、およびレート歪み評価値を予測符号化モード決定部122に供給する。予測ベクトルモード決定部120の詳細については後述する。
【0057】
マージモード決定部121は、端子12より供給される候補ブロック群、端子14より供給される参照画像、および端子15より供給される画像信号から、結合動き情報候補リストを生成し、当該結合動き情報候補リストの中から1つの結合動き情報候補を選択してマージインデックスを決定し、レート歪み評価値を算出する。そして、当該結合動き情報候補の動き情報、当該マージインデックスおよび当該レート歪み評価値を予測符号化モード決定部122に供給する。
【0058】
予測符号化モード決定部122は、予測ベクトルモード決定部120より供給されるレート歪み評価値と、マージモード決定部121より供給されるレート歪み評価値とを比較してマージフラグを決定する。
【0059】
前者が後者未満の場合は、マージフラグを「0」に設定する。予測符号化モード決定部122は、当該マージフラグ、各予測符号化モードに基づく動き補償予測の予測方向、予測ベクトルモード決定部120より供給される参照インデックス、差分ベクトルと予測ベクトルインデックスを端子16に供給し、予測ベクトルモード決定部120より供給される動き情報を端子50および端子51に供給する。
【0060】
後者が前者以下の場合は、マージフラグを「1」に設定する。予測符号化モード決定部122は、当該マージフラグおよびマージモード決定部121より供給されるマージインデックスを端子16に供給し、マージモード決定部121より供給される動き情報を端子50および端子51に供給する。なお、レート歪み評価値の具体的な算出方法は本発明の主眼ではないため詳細は省略するが、レート歪み評価値が小さいほど符号化効率は高くなる特性を持つ評価値である。
【0061】
(予測ベクトルモード決定部120の構成)
続いて、予測ベクトルモード決定部120の詳細な構成について説明する。図10は、予測ベクトルモード決定部120の構成を示す。予測ベクトルモード決定部120は、予測ベクトル候補リスト生成部130および予測ベクトル決定部131を含む。端子17は予測符号化モード決定部122に接続されている。
【0062】
予測ベクトル候補リスト生成部130は、実施の形態1に係る動画像符号化装置100により生成された符号列を復号する動画像復号装置200にも同様に設置されて、動画像符号化装置100と動画像復号装置200にて矛盾のない予測ベクトル候補リストが生成される。
【0063】
(予測ベクトルモード決定部120の動作)
以下、各部の機能と動作について図11を用いて説明する。図11は、予測ベクトルモード決定部120の動作を説明するためのフローチャートである。
【0064】
最初に、L0予測について以下の処理を行う(S120からS126)。以下、Xは0となる。予測ベクトル候補リスト生成部130は、端子13より供給されるLX予測の参照インデックスを取得する(S121)。端子12より供給される候補ブロック群とLX予測の参照インデックスから予測ベクトル候補最大数の予測ベクトル候補を含むLX予測の予測ベクトル候補リストを生成する(S122)。予測ベクトル候補リスト生成部130は、当該LX予測の予測ベクトル候補リストを予測ベクトル決定部131に供給する。
【0065】
予測ベクトル決定部131は、予測ベクトル候補リスト生成部130より供給されるLX予測の予測ベクトル候補リストから1つの予測ベクトル候補をLX予測の予測ベクトルとして選択して、当該LX予測の予測ベクトルインデックスを決定する(S123)。
【0066】
予測ベクトル決定部131は、端子13より供給されるL0予測の動きベクトルからLX予測の予測ベクトルを減算してLX予測の差分ベクトルを算出し(S124)、当該LX予測の差分ベクトルと当該LX予測の予測ベクトルインデックスを出力する。
【0067】
予測ベクトル決定部131は、端子15より供給される画像信号と、端子14より供給される参照画像を端子13より供給されるLX予測の動きベクトルおよびLX予測の参照インデックスに基づいて動き補償予測したLX予測の予測信号とから予測誤差量を算出し、当該予測誤差量と、L0予測の差分ベクトル、LX予測の参照インデックス、およびLX予測の予測ベクトルインデックスの符号量とからPred_LXのレート歪評価値を算出する(S125)。
【0068】
次に、Xを1としてL1予測についてS120からS126の処理を行う。
【0069】
続いて、予測ベクトル決定部131は、端子15より供給される画像信号と、L0予測の予測信号およびL1予測の予測信号を平均したBI予測の予測信号とから予測誤差量を算出し、当該予測誤差量と、L0予測とL1予測の差分ベクトル、L0予測とL1予測の参照インデックス、およびL0予測とL1予測の予測ベクトルインデックスの符号量とからPred_BIのレート歪評価値を算出する(S127)。
【0070】
予測ベクトル決定部131は、Pred_L0のレート歪評価値、Pred_L1のレート歪評価値、およびPred_BIのレート歪評価値を比較して、最小のレート歪評価値である予測符号化モードを1つ選択する(S128)。そして、予測符号化モードに基づいた動き情報、差分ベクトル、予測ベクトルインデックス、およびレート歪み評価値を予測符号化モード決定部122に供給する。なお、予測符号化モードがPred_L0であれば、L1予測の動きベクトルは(0,0)、L1予測の参照インデックスは「−1」となり、予測符号化モードがPred_L1であれば、L0予測の動きベクトルは(0,0)、L0予測の参照インデックスは「−1」となる。
【0071】
(予測ベクトル候補リスト生成部130に供給される候補ブロック群)
ここで、予測ベクトル候補リスト生成部130に供給される候補ブロック群について図12と図13を用いて説明する。候補ブロック群には空間候補ブロック群と時間候補ブロック群が含まれる。
【0072】
図12は、処理対象の予測ブロックサイズが16画素×16画素である場合の処理対象の予測ブロックの隣接ブロックを示す。実施の形態1では、空間候補ブロック群として、図12に示すブロックA1、ブロックC、ブロックD、ブロックB1およびブロックEの5ブロックとする。ここでは、空間候補ブロック群をブロックA1、ブロックC、ブロックD、ブロックB1およびブロックEの5ブロックとしたが、空間候補ブロック群は、処理対象の予測ブロックに隣接する少なくとも1以上の処理済みのブロックであればよく、これらに限定されない。例えば、ブロックA1、ブロックA2、ブロックA3、ブロックA4、ブロックB1、ブロックB2、ブロックB3、ブロックB4、ブロックC、ブロックDおよびブロックEの全てを空間候補ブロックとしてもよい。
【0073】
次に、時間候補ブロック群について図13を用いて説明する。図13は、処理対象の予測ブロックサイズが16画素×16画素である場合の処理対象の予測ブロックと同一位置にあるColPic上の予測ブロック内のブロックとその周辺ブロックを示す。実施の形態1では、時間候補ブロック群として、図13に示すブロックHとブロックI6の2ブロックとする。
【0074】
ここでは、時間候補ブロック群をColPic上のブロックHとブロックI6の2ブロックとしたが、時間候補ブロック群は、処理対象の予測ブロックとは別の復号済みの画像上の少なくとも1以上のブロックであればよく、これらに限定されない。例えば、ColPic上のブロックI1からブロックI16、ブロックA1からブロックA4、ブロックB1からブロックB4、ブロックC、ブロックD、ブロックE、ブロックF1からブロックF4、ブロックG1からブロックG4およびブロックHの全てを時間候補ブロックとしてもよい。また、ブロックHのみとしてもよい。以降特に断らない限り、ブロックA4をブロックA、ブロックB4をブロックBと表記する。以降特に断らない限り、ブロックHとブロックI6のブロックを時間ブロックと表記する。
【0075】
(予測ベクトル候補リスト生成部130の構成)
続いて、予測ベクトル候補リスト生成部130の詳細な構成について説明する。図14は、予測ベクトル候補リスト生成部130の構成を説明するための図である。端子18は予測ベクトル決定部131に接続されている。予測ベクトル候補リスト生成部130は、空間予測ベクトル候補生成部150、時間予測ベクトル候補生成部151、空間スケーリング予測ベクトル候補生成部152、予測ベクトル候補補充部153、および予測ベクトル候補リスト確定部154を含む。
【0076】
(予測ベクトル候補リスト生成部130の動作)
以下、各部の機能と動作について説明する。空間予測ベクトル候補生成部150は、端子12より供給される候補ブロック群から各予測方向について空間予測ベクトル候補を0個から2個生成し、当該空間予測ベクトル候補を予測ベクトル候補リスト確定部154に供給する。空間予測ベクトル候補生成部150の詳細な動作については後述する。
【0077】
時間予測ベクトル候補生成部151は、端子12より供給される候補ブロック群から各予測方向について時間予測ベクトル候補を0個または1個生成し、当該時間予測ベクトル候補を予測ベクトル候補リスト確定部154に供給する。時間予測ベクトル候補生成部151の詳細な動作については後述する。
【0078】
空間スケーリング予測ベクトル候補生成部152は、端子12より供給される候補ブロック群から各予測方向について空間スケーリング予測ベクトル候補を0個または1個生成し、当該空間スケーリング予測ベクトル候補を予測ベクトル候補リスト確定部154に供給する。空間スケーリング予測ベクトル候補生成部152の詳細な動作については後述する。
【0079】
予測ベクトル候補リスト確定部154は、各予測方向について予測ベクトル候補最大数から空間予測ベクトル候補、時間予測ベクトル候補、および空間スケーリング予測ベクトル候補を合計した予測ベクトル候補数を減算して予測ベクトル補充候補数を算出し、当該予測ベクトル補充候補数を予測ベクトル候補補充部153に供給する。なお、算出された予測ベクトル補充候補数が0未満の場合には、予測ベクトル補充候補数は0とする。
【0080】
予測ベクトル候補補充部153は、予測ベクトル候補リスト確定部154より供給される予測ベクトル補充候補数だけ予測ベクトル補充候補を生成し、当該予測ベクトル補充候補を予測ベクトル候補リスト確定部154に供給する。予測ベクトル補充候補は動きベクトル(0,0)とする。ここでは、予測ベクトル補充候補を動きベクトル(0,0)としたが、空間予測ベクトル候補、時間予測ベクトル候補、空間スケーリング予測ベクトル候補と異なる動きベクトルであればよく、これに限定されない。例えば、空間予測ベクトル候補の水平成分や垂直成分を+1や−1などした動きベクトルでもよい。
【0081】
予測ベクトル候補リスト確定部154は、各予測方向について予測ベクトル候補リストの予測ベクトル候補数が予測ベクトル候補最大数に達するまで、空間予測ベクトル候補、時間予測ベクトル候補、空間スケーリング予測ベクトル候補、予測ベクトル補充候補を順次、予測ベクトル候補リストに追加して予測ベクトル候補リストを確定する。
【0082】
(空間予測ベクトル候補生成部150の詳細な動作)
引き続いて、空間予測ベクトル候補生成部150の詳細な動作について説明する。図15は、空間予測ベクトル候補生成部150の動作を説明するためのフローチャートである。以降、空間予測ベクトル候補を生成する対象の動き補償予測の予測方向をLXとして説明する(Xは0または1)。空間予測ベクトル候補生成部150は、端子12より供給される空間候補ブロック群に含まれる候補ブロックをブロックE、ブロックA1、ブロックC、ブロックB1、ブロックDの順に以下の処理を繰り返し行う(S150からS155)。
【0083】
候補ブロックのLX予測がスケーリング不要であるかどうか検査する(S151)。候補ブロックのLX予測がスケーリング不要であるとは、候補ブロックのLX予測の参照インデックスが0以上で、且つ候補ブロックのLX予測の参照インデックスが示す参照画像と端子13より供給されるLX予測の参照インデックスが示す参照画像が同一であることである。候補ブロックのLX予測がスケーリング不要であれば(S151のY)、候補ブロックのLX予測の動きベクトルが既に決定された空間予測ベクトル候補と同一でないことを検査する(S152)。候補ブロックのLX予測がスケーリング不要でなければ(S151のN)、ステップS152からステップS154をスキップして次の候補ブロックを検査する(S155)。候補ブロックのLX予測の動きベクトルが既に決定された空間予測ベクトル候補と同一でなければ(S152のY)、候補ブロックのLX予測の動きベクトルを空間予測ベクトル候補として決定する(S153)。候補ブロックのLX予測の動きベクトルが既に決定された空間予測ベクトル候補と同一であれば(S152のN)、ステップS153とステップS154をスキップして次の候補ブロックを検査する(S155)。ステップS153に続いて、空間予測ベクトル候補数が所定数であるか検査する(S154)。ここでは、所定数を2とする。実施の形態1では、所定数を予測ベクトル候補最大数と同じ2としたが、所定数は1以上で空間候補ブロック群に含まれる候補ブロック数以下であればよく、これに限定されない。また、L0予測とL1予測の所定数を異なる値に設定することもできる。決定された空間予測ベクトル候補数が所定数でなければ(S154のN)、次の候補ブロックを検査する(S155)。決定された空間予測ベクトル候補数が所定数であれば(S154のY)、処理を終了する。
【0084】
ここでは、LX予測の空間予測ベクトル候補の対象を候補ブロックのLX予測の動きベクトルとしたが、スケーリング不要であればよく、これに限定されない。例えば、候補ブロックのLY予測の動きベクトルをLX予測の空間予測ベクトル候補としてもよい。
【0085】
(時間予測ベクトル候補生成部151の詳細な動作)
引き続いて、時間予測ベクトル候補生成部151の詳細な動作について説明する。図16は、時間予測ベクトル候補生成部151の動作を説明するためのフローチャートである。以降、時間予測ベクトル候補を生成する対象の動き補償予測の予測方向をLXとして説明する(Xは0または1)。時間予測ベクトル候補生成部151は、端子12より供給される時間候補ブロック群に含まれる候補ブロックをブロックH、ブロックI6の順に以下の処理を繰り返し行う(S160からS166)。ここでは、処理の順序をブロックH、ブロックI6としたが、時間候補ブロック群に含まれる候補ブロックが1度処理されればよく、これに限定されない。
【0086】
候補ブロックが有効であるかどうか検査する(S161)。候補ブロックが有効であるとは候補ブロックのL0予測とL1予測の参照インデックスの少なくとも一方が0以上であることである。候補ブロックが有効であれば(S161のY)、基準動きベクトルを決定する(S162)。候補ブロックが有効でなければ(S161のN)、ステップS162からステップS165をスキップして次の候補ブロックを検査する(S166)。
【0087】
ここで、基準動きベクトルの決定について説明する。候補ブロックの動き補償予測の予測方向がL0予測もしくはL1予測の場合には、その動き補償予測の予測方向の動きベクトルを基準動きベクトルとして選択する。候補ブロックの動き補償予測の予測方向が双予測の場合には、L0予測或いはL1予測のいずれか一方の動きベクトルを基準動きベクトルとして選択する。
【0088】
ステップS162に続いて、LX予測の時間予測ベクトル候補を算出するための参照画像を示す参照インデックスを端子13より供給されるLX予測の参照インデックスに設定する(S163)。基準動きベクトルをスケーリングした動きベクトルを時間予測ベクトル候補として決定する(S164)。決定された時間予測ベクトル候補数が所定数であるか検査する(S165)。ここでは、所定数を1とする。実施の形態1では、所定数を1としたが、所定数は1以上で時間候補ブロック群に含まれる候補ブロック数以下であればよく、これに限定されない。また、L0予測とL1予測の所定数を異なる値に設定することもできる。決定された時間予測ベクトル候補数が所定数でなければ(S165のN)、次の候補ブロックを検査する(S166)。決定された空間予測ベクトル候補数が所定数であれば(S165のY)、処理を終了する。
【0089】
ここで、基準動きベクトルをスケーリングして時間予測ベクトル候補を算出する方法について説明する。図17は、時間予測ベクトル候補の算出手法を説明するための図である。ColPicと基準動きベクトルの参照画像ColRefPicとの画像間距離をColDistとし、L0予測の時間予測ベクトル候補を算出するための参照画像RefPicL0と処理対象画像CurPicとの画像間距離をCurL0Dist、およびL1予測の時間予測ベクトル候補を算出するための参照画像RefPicL1と処理対象画像CurPicとの画像間距離をCurL1Distとする。
【0090】
下記式1に従って、mvColをColDistとCurL0Dist、CurL1Distの距離比率でスケーリングした動きベクトルを時間予測ベクトル候補とする。mvL0tはL0予測の時間予測ベクトル候補、mvL1tはL1予測の時間予測ベクトル候補である。ここで、画像間距離の算出はPOCを用いて行われ、正負の符号を有する。なお、除算は四捨五入で行われる。
mvL0t=mvCol×CurL0Dist/ColDist
mvL1t=mvCol×CurL1Dist/ColDist ・・・(式1)
【0091】
なお、図17のColPic、ColRefPic、RefPicL0、およびRefPicL1の時間関係は一例であってこれ以外の時間関係であってもよい。
【0092】
(空間スケーリング予測ベクトル候補生成部152の詳細な動作)
引き続いて、空間スケーリング予測ベクトル候補生成部152の詳細な動作について説明する。図18は、空間スケーリング予測ベクトル候補生成部152の動作を説明するためのフローチャートである。以降、空間スケーリング予測ベクトル候補を生成する対象の動き補償予測の予測方向をLXとして説明する(Xは0または1)。空間スケーリング予測ベクトル候補生成部152は、端子12より供給される空間候補ブロック群に含まれる候補ブロックをブロックA1、ブロックB1、ブロックC、ブロックE、ブロックDの順に以下の処理を繰り返し行う(S170からS176)。ここでは、処理の順序をブロックA1、ブロックB1、ブロックC、ブロックE、ブロックDとしたが、空間予測ベクトル候補生成部150の処理の順序と異なっていればよく、これに限定されない。
【0093】
候補ブロックのLX予測がスケーリング必要であるかどうか検査する(S171)。候補ブロックのLX予測がスケーリング必要であるとは候補ブロックのLX予測の参照インデックスが0以上で、且つ候補ブロックのLX予測の参照インデックスが示す参照画像と端子13より供給されるLX予測の参照インデックスが示す参照画像が異なることである。候補ブロックのLX予測がスケーリング必要であれば(S171のY)、基準動きベクトルを決定する(S172)。基準動きベクトルは候補ブロックのLX予測の動きベクトルとする。候補ブロックがスケーリング必要でなければ(S171のN)、ステップS172からステップS175をスキップして次の候補ブロックを検査する(S176)。
【0094】
ステップS172に続いて、LX予測の空間スケーリング予測ベクトル候補を算出するための参照画像を示す参照インデックスを端子13より供給されるLX予測の参照インデックスに設定する(S173)。基準動きベクトルをスケーリングした動きベクトルを空間スケーリング予測ベクトル候補として決定する(S174)。決定された空間スケーリング予測ベクトル候補数が所定数であるか検査する(S175)。ここでは、所定数を1とする。実施の形態1では、所定数を1としたが、所定数は1以上で空間候補ブロック群に含まれる候補ブロック数以下であればよく、これに限定されない。また、L0予測とL1予測の所定数を異なる値に設定することもできる。決定された空間スケーリング予測ベクトル候補数が所定数でなければ(S175のN)、次の候補ブロックを検査する(S176)。決定された空間スケーリング予測ベクトル候補数が所定数であれば(S175のY)、処理を終了する。
【0095】
ここでは、LX予測の空間スケーリング予測ベクトル候補の対象を候補ブロックのLX予測の動きベクトルとしたが、基準動きベクトルを決定できればよく、これに限定されない。例えば、候補ブロックのLY予測の動きベクトルをLX予測の空間スケーリング予測ベクトル候補の対象としてもよい。
【0096】
ここで、基準動きベクトルをスケーリングして空間スケーリング予測ベクトル候補を算出する方法について説明する。図19は、空間スケーリング予測ベクトル候補の算出手法を説明するための図である。L0予測の基準動きベクトルmvL0bの参照画像RefPicL0bと処理対象画像CurPicとの画像間距離をcurL0bDist、L0予測の空間スケーリング予測ベクトル候補を算出するための参照画像RefPicL0sと処理対象画像CurPicとの画像間距離をCurL0sDistとし、L1予測の基準動きベクトルmvL1bの参照画像RefPicL1bと処理対象画像CurPicとの画像間距離をcurL1bDist、L1予測の空間スケーリング予測ベクトル候補を算出するための参照画像RefPicL1sと処理対象画像CurPicとの画像間距離をCurL1sDistとする。
【0097】
下記式2に従って、mvL0bをcurL0bDistとCurL0sDistとの距離比率でスケーリングした動きベクトルmvL0sを、L0予測の空間スケーリング予測ベクトル候補とし、mvL1bをcurL1bDistとCurL1sDistとの距離比率でスケーリングした動きベクトルmvL1sを、L1予測の空間スケーリング予測ベクトル候補とする。ここで、画像間距離の算出はPOCを用いて行われ、正負の符号を有する。なお、除算は四捨五入で行われる。
mvL0s=mvL0b×CurL0sDist/CurL0bDist
mvL1s=mvL1b×CurL1sDist/CurL1bDist ・・・(式2)
【0098】
なお、図19のCurPic、RefPicL0b、RefPicL0s、RefPicL1b、およびRefPicL1sの時間関係は一例であってこれ以外の時間関係であってもよい。
【0099】
(動画像復号装置200の構成)
次に、実施の形態1の動画像復号装置を説明する。図20は、実施の形態1の動画像復号装置200を示す。動画像復号装置200は、動画像符号化装置100により符号化された符号列を復号して再生画像を生成する装置である。
【0100】
動画像復号装置200は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像復号装置200は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。なお、復号対象の予測ブロックの位置情報、予測ブロックサイズに関しては動画像復号装置200内で共有していることとし、図示しない。
【0101】
実施の形態1の動画像復号装置200は、符号列解析部201、予測誤差復号部202、加算部203、動き情報再生部204、動き補償部205、フレームメモリ206および動き情報メモリ207を備える。
【0102】
(動画像復号装置200の動作)
以下、各部の機能と動作について説明する。符号列解析部201は、端子30より供給された符号列を解析して予測誤差符号化データ、マージフラグ、マージインデックス、動き補償予測の予測方向(インター予測タイプ)、参照インデックス、差分ベクトル、および予測ベクトルインデックスをシンタックスに従ってエントロピー復号する。エントロピー復号は算術符号化やハフマン符号化などの可変長符号化を含む方法によって実施される。そして、当該予測誤差符号化データを予測誤差復号部202に、当該マージフラグ、当該マージインデックス、当該動き補償予測の予測方向、当該参照インデックス、当該差分ベクトル、および当該予測ベクトルインデックスを動き情報再生部204に供給する。
【0103】
動き情報再生部204は、符号列解析部201より供給されるマージフラグ、マージインデックス、動き補償予測の予測方向、参照インデックス、差分ベクトル、および予測ベクトルインデックスと、動き情報メモリ207より供給される候補ブロック群から、動き情報を再生し、当該動き情報を動き補償部205および動き情報メモリ207に供給する。動き情報再生部204の詳細な構成については後述する。
【0104】
動き補償部205は、動き情報再生部204より供給される動き情報に基づいて、フレームメモリ206内の参照インデックスが示す参照画像を、動きベクトルに基づき動き補償して予測信号を生成する。予測方向が双予測であれば、L0予測とL1予測の予測信号を平均したものを予測信号として生成し、当該予測信号を加算部203に供給する。
【0105】
予測誤差復号部202は、符号列解析部201より供給される予測誤差符号化データに対して、逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、当該予測誤差信号を加算部203に供給する。
【0106】
加算部203は、予測誤差復号部202より供給される予測誤差信号と、動き補償部205より供給される予測信号とを加算して復号画像信号を生成し、当該復号画像信号をフレームメモリ206および端子31に供給する。
【0107】
フレームメモリ206および動き情報メモリ207は、動画像符号化装置100のフレームメモリ110および動き情報メモリ111と同一の機能を有する。フレームメモリ206は、加算部203より供給される復号画像信号を記憶する。動き情報メモリ207は、動き情報再生部204より供給される動き情報を最小の予測ブロックサイズ単位で記憶する。
【0108】
(動き情報再生部204の詳細な構成)
続いて、動き情報再生部204の詳細な構成について説明する。図21は、動き情報再生部204の構成を示す。動き情報再生部204は、符号化モード判定部210、動きベクトル再生部211および結合動き情報再生部212を含む。端子32は符号列解析部201に、端子33は動き情報メモリ207に、端子34は動き補償部205にそれぞれ接続されている。
【0109】
(動き情報再生部204の詳細な動作)
以下、各部の機能と動作について説明する。符号化モード判定部210は、符号列解析部201より供給されるマージフラグが「0」であれるか「1」であるか判定する。マージフラグが「0」であれば、符号列解析部201より供給される動き補償予測の予測方向、参照インデックス、差分ベクトル、および予測ベクトルインデックスを動きベクトル再生部211に供給する。マージフラグが「1」であれば、符号列解析部201より供給されるマージインデックスを結合動き情報再生部212に供給する。
【0110】
動きベクトル再生部211は、符号化モード判定部210より供給される動き補償予測の予測方向、参照インデックス、差分ベクトル、および予測ベクトルインデックスと、端子33より供給される候補ブロック群から、動き情報を再生して端子34に供給する。動きベクトル再生部211の詳細については後述する。
【0111】
結合動き情報再生部212は、符号化モード判定部210より供給されるマージインデックスと、端子33より供給される候補ブロック群から、動き情報を再生して端子34に供給する。
【0112】
(動きベクトル再生部211の詳細な構成)
続いて、動きベクトル再生部211の詳細な構成について説明する。図22は、動きベクトル再生部211の構成を示す。動きベクトル再生部211は、予測ベクトル候補リスト生成部220、予測ベクトル決定部221および加算部222を含む。端子35は符号化モード判定部210に接続されている。
【0113】
(動きベクトル再生部211の詳細な動作)
以下、各部の機能と動作について説明する。動きベクトル再生部211は、動き補償予測の予測方向がL0予測であれば、L0予測について以下の処理を行い、動き補償予測の予測方向がL1予測であれば、L1予測について以下の処理を行い、動き補償予測の予測方向がBI予測であれば、L0予測とL1予測について以下の処理を行う。
【0114】
予測ベクトル候補リスト生成部220は、動画像符号化装置100の予測ベクトル候補リスト生成部130と同一の機能を有し、動画像符号化装置100の予測ベクトル候補リスト生成部130と同一の動作によって予測ベクトル候補リストを生成し、当該予測ベクトル候補リストを予測ベクトル決定部221に供給する。
【0115】
予測ベクトル決定部221は、予測ベクトル候補リスト生成部220より供給される予測ベクトル候補リストの中から、端子35より供給される予測ベクトルインデックスで示される予測ベクトル候補を選択して予測ベクトルを決定し、当該予測ベクトルを加算部222に供給する。
【0116】
加算部222は、端子35より供給される差分ベクトルと、予測ベクトル決定部221より供給される予測ベクトルとを加算して動きベクトルを算出し、当該動きベクトルを端子34に供給する。
【0117】
(動き補償予測に関する動作)
以下、インター予測タイプがPred_BIである場合の復号動作の一例について説明する。図23はインター予測タイプがPred_BIである場合の復号動作について説明するための図である。
【0118】
符号列解析部201は、L0予測の参照画像数が1より大きければ、L0予測の参照インデックスを復号し、L0予測の参照画像数がより大きくなければ、L0予測の参照インデックスは暗示的に0とする(S200)。動きベクトル再生部211は、L0予測の予測ベクトル候補リストを生成する(S201)。符号列解析部201は、L1予測の参照画像数が1より大きければ、L1予測の参照インデックスを復号し、L1予測の参照画像数がより大きくなければ、L1予測の参照インデックスは暗示的に0とする(S202)。動きベクトル再生部211は、L1予測の予測ベクトル候補リストを生成する(S203)。符号列解析部201は、L0予測の予測ベクトルインデックスを復号する(S204)。動きベクトル再生部211は、L0予測の予測ベクトルインデックスに従って、L0予測の予測ベクトル候補リストからL0予測の予測ベクトルを選択する(S205)。符号列解析部201は、L1予測の予測ベクトルインデックスを復号する(S206)。動きベクトル再生部211は、L1予測の予測ベクトルインデックスに従って、L1予測の予測ベクトル候補リストからL1予測の予測ベクトルを選択する(S207)。符号列解析部201は、L0予測の差分ベクトルを復号する(S208)。動きベクトル再生部211は、L0予測の予測ベクトルとL0予測の差分ベクトルを加算してL0予測の動きベクトルを算出する(S209)。符号列解析部201は、L1予測の差分ベクトルを復号する(S210)。動きベクトル再生部211は、L1予測の予測ベクトルとL1予測の差分ベクトルを加算してL1予測の動きベクトルを算出する(S211)。動き補償部205は、L0予測の参照インデックスで示される参照画像とL0予測の動きベクトル、L1予測の参照インデックスで示される参照画像とL1予測の動きベクトルに従って、動き補償予測を行う(S212)。
【0119】
(効果の説明)
以下、MPEG−4AVCに代表される従来技術のような予測ベクトルの決定処理がシンタックスの復号に対して相対的に単純である場合の実施の形態1のシンタックスの適用例について説明する。図24は従来の予測ベクトルの決定処理における、実施の形態1と従来のシンタックスに基づいた動きベクトルの生成タイミングを説明する図である。ここでは、L0予測とL1予測の動きベクトルの生成を並列処理することを前提としており、予測ベクトルの算出や動きベクトルの算出に係る時間が各シンタックスの復号時間以下である例を示す。
【0120】
最初に、実施の形態1のシンタックスに基づいた動きベクトルの生成タイミングについて説明する。図24(A)は、符号ブロックに含まれる予測ブロックが2つである場合の実施の形態1のシンタックスに基づいた動きベクトルの生成タイミングを示す。Syntaxは実施の形態1の図5に基づいたシンタックスの順序であるが、予測ベクトルインデックスは省略している。以降、時系列に予測ベクトル、動きベクトルの決定タイミングについて説明する。
【0121】
予測ブロック0のL0予測の参照インデックスであるref_idx_l0{0}が復号されると、予測ブロック0のL0予測の予測ベクトルであるmvpL0{0}が決定される。予測ブロック0のL1予測の参照インデックスであるref_idx_l1{0}が復号されると、予測ブロック0のL1予測の予測ベクトルであるmvpL1{0}が決定される。予測ブロック0のL0予測の差分ベクトルであるmvd_l0[0]{0}とmvd_l0[1]{0}が復号されると、予測ブロック0のL0予測の動きベクトルであるmvL0{0}が決定される。予測ブロック0のL1予測の差分ベクトルであるmvd_l1[0]{0}とmvd_l1[1]{0}が復号されると、予測ブロック0のL1予測の動きベクトルであるmvL1{0}が決定される。
【0122】
予測ブロック1のL0予測の参照インデックスであるref_idx_l0{1}が復号されると、予測ブロック1のL0予測の予測ベクトルであるmvpL0{1}が決定される。予測ブロック1のL1予測の参照インデックスであるref_idx_l1{1}が復号されると、予測ブロック1のL1予測の予測ベクトルであるmvpL1{1}が決定される。予測ブロック1のL0予測の差分ベクトルであるmvd_l0[0]{1}とmvd_l0[1]{1}が復号されると、予測ブロック1のL0予測の動きベクトルであるmvL0{1}が決定される。予測ブロック1のL1予測の差分ベクトルであるmvd_l1[0]{1}とmvd_l1[1]{1}が復号されると、予測ブロック1のL1予測の動きベクトルであるmvL1{1}が決定される。
【0123】
次に、従来のシンタックスに基づいた動きベクトルの生成タイミングについて説明する。図24(B)は、符号ブロックに含まれる予測ブロックが2つである場合の従来のシンタックスに基づいた動きベクトルの生成タイミングを示す。Syntaxは実施の形態1の図1に基づいたシンタックスの順序である。以降、時系列に予測ベクトル、動きベクトルの決定タイミングについて説明する。
【0124】
予測ブロック0のL0予測の参照インデックスであるref_idx_l0{0}が復号されると、予測ブロック0のL0予測の予測ベクトルであるmvpL0{0}が決定される。予測ブロック0のL1予測の参照インデックスであるref_idx_l1{0}が復号されると、予測ブロック0のL1予測の予測ベクトルであるmvpL1{0}が決定される。予測ブロック0のL0予測の差分ベクトルであるmvd_l0[0]{0}とmvd_l0[1]{0}が復号されると、予測ブロック0のL0予測の動きベクトルであるmvL0{0}が決定される。mvL0{0}が決定されると、予測ブロック1のL0予測の参照インデックスであるref_idx_l0{1}は既に復号されているため、予測ブロック1のL0予測の予測ベクトルであるmvpL0{1}が決定される。
【0125】
ここで、予測ブロック1のL0予測の参照インデックスであるref_idx_l0{1}の復号直後に予測ブロック1のL0予測の予測ベクトルであるmvpL0{1}が決定できないのは、予測ブロック0が予測ブロック1の隣接ブロックとなるために、予測ブロック0の動きベクトルが決定されるまで予測ブロック1の予測ベクトル、つまりブロック0の動きベクトルを用いた他の隣接ブロックの動きベクトルとの中央値を算出できないためである。予測ブロック1のL0予測の差分ベクトルであるmvd_l0[0]{0}とmvd_l0[1]{0}が復号されると、予測ブロック1のL0予測の動きベクトルであるmvL0{1}が決定される。予測ブロック0のL1予測の差分ベクトルであるmvd_l1[0]{0}とmvd_l1[1]{0}が復号されると、予測ブロック0のL1予測の動きベクトルであるmvL1{0}が決定される。mvL1{0}が決定されると、予測ブロック1のL1予測の参照インデックスであるref_idx_l1{1}は既に復号されているため、予測ブロック1のL1予測の予測ベクトルであるmvpL1{1}が決定される。予測ブロック1のL1予測の差分ベクトルであるmvd_l1[0]{1}とmvd_l1[1]{1}が復号されると、予測ブロック1のL1予測の動きベクトルであるmvL1{1}が決定される。
【0126】
以上のように、実施の形態1のシンタックスでは、予測ブロック0と予測ブロック1のシンタックスを分離し、予測ブロック毎に参照インデックスと差分ベクトルをまとめることで、予測ブロック0の動きベクトルを算出する際に復号した予測ブロック1のシンタックスを記憶する必要や、予測ブロック1の動きベクトルを算出する際に再度予測ブロック1のシンタックスを復号する必要がない。
【0127】
引き続いて、実施の形態1のように予測ベクトルの決定処理がシンタックスの復号に対して相対的に複雑である場合の実施の形態1のシンタックスの適用例について説明する。図25は実施の形態1の予測ベクトルの決定処理における、実施の形態1と従来のシンタックスに基づいた動きベクトルの生成タイミングを説明する図である。ここでは、L0予測とL1予測の動きベクトルの生成を並列処理することを前提としており、予測ベクトルの算出や動きベクトルの算出に係る時間が各シンタックスの復号時間より大きい例を示す。
【0128】
最初に、実施の形態1の図5のシンタックスに基づいた動きベクトルの生成タイミングについて説明する。図25(A)は、実施の形態1の図5のシンタックスに基づいた動きベクトルの生成タイミングを示す。Syntaxは実施の形態1の図5に基づいたシンタックスの順序である。以降、時系列に予測ベクトル、動きベクトルの決定タイミングについて説明する。
【0129】
予測ブロック0のL0予測の参照インデックスであるref_idx_l0{0}が復号されると、予測ブロック0のL0予測の予測ベクトル候補リストであるmvpListL0{0}の生成が開始される。
【0130】
予測ブロック0のL1予測の参照インデックスであるref_idx_l1{0}が復号されると、予測ブロック0のL1予測の予測ベクトル候補リストであるmvpListL1{0}の生成が開始される。
【0131】
mvpListL0{0}の生成が完了すると、予測ブロック0のL0予測の予測ベクトルインデックスであるmvp_idx_l0{0}は既に復号されているため、mvpListL0{0}の中からmvp_idx_l0{0}によって予測ブロック0のL0予測の予測ベクトルであるmvpL0{0}が決定される。
【0132】
mvpListL1{0}の生成が完了すると、予測ブロック0のL1予測の予測ベクトルインデックスであるmvp_idx_l1{0}は既に復号されているため、mvpListL1{0}の中からmvp_idx_l1{0}によって予測ブロック0のL1予測の予測ベクトルであるmvpL1{0}が決定される。
【0133】
予測ブロック0のL0予測の差分ベクトルであるmvd_l0[0]{0}とmvd_l0[1]{0}が復号されると、予測ブロック0のL0予測の動きベクトルであるmvL0{0}が決定される。
【0134】
予測ブロック0のL1予測の差分ベクトルであるmvd_l1[0]{0}とmvd_l1[1]{0}が復号されると、予測ブロック0のL1予測の動きベクトルであるmvL1{0}が決定される。
【0135】
予測ブロック1のL0予測の参照インデックスであるref_idx_l0{1}が復号されると、予測ブロック1のL0予測の予測ベクトル候補リストであるmvpListL0{1}の生成が開始される。
【0136】
予測ブロック1のL1予測の参照インデックスであるref_idx_l1{1}が復号されると、予測ブロック1のL1予測の予測ベクトル候補リストであるmvpListL1{1}の生成が開始される。
【0137】
ref_idx_l0{1}の生成が完了すると、予測ブロック1のL0予測の予測ベクトルインデックスであるmvp_idx_l0{1}は既に復号されているため、mvpListL0{1}の中からmvp_idx_l0{1}によって予測ブロック1のL0予測の予測ベクトルであるmvpL0{1}が決定される。
【0138】
ref_idx_l1{1}の生成が完了すると、予測ブロック1のL1予測の予測ベクトルインデックスであるmvp_idx_l1{1}は既に復号されているため、mvpListL1{1}の中からmvp_idx_l1{1}によって予測ブロック1のL1予測の予測ベクトルであるmvpL1{1}が決定される。
【0139】
予測ブロック1のL0予測の差分ベクトルであるmvd_l0[0]{1}とmvd_l0[1]{1}が復号されると、予測ブロック1のL0予測の動きベクトルであるmvL0{1}が決定される。
【0140】
予測ブロック1のL1予測の差分ベクトルであるmvd_l1[0]{1}とmvd_l1[1]{1}が復号されると、予測ブロック1のL1予測の動きベクトルであるmvL1{1}が決定される。
【0141】
次に、実施の形態1の別の一例である図6のシンタックスに基づいた動きベクトルの生成タイミングについて説明する。図25(B)は、実施の形態1の別の一例である図6のシンタックスに基づいた動きベクトルの生成タイミングを示す。
【0142】
予測ブロック0のL0予測の参照インデックスであるref_idx_l0{0}が復号されると、予測ブロック0のL0予測の予測ベクトル候補リストであるmvpListL0{0}の生成が開始される。
【0143】
mvpListL0{0}の生成が完了すると、予測ブロック0のL0予測の予測ベクトルインデックスであるmvp_idx_l0{0}は既に復号されているため、mvpListL0{0}の中からmvp_idx_l0{0}によって予測ブロック0のL0予測の予測ベクトルであるmvpL0{0}が決定される。
【0144】
mvpL0{0}が決定されると、予測ブロック0のL0予測の差分ベクトルであるmvd_l0[0]{0}とmvd_l0[1]{0}は既に復号されているため、予測ブロック0のL0予測の動きベクトルであるmvL0{0}が決定される。
【0145】
予測ブロック0のL1予測の参照インデックスであるref_idx_l1{0}が復号されると、予測ブロック0のL1予測の予測ベクトル候補リストであるmvpListL1{0}の生成が開始される。
【0146】
mvpListL1{0}の生成が完了すると、予測ブロック0のL1予測の予測ベクトルインデックスであるmvp_idx_l1{0}は既に復号されているため、mvpListL1{0}の中からmvp_idx_l1{0}によって予測ブロック0のL1予測の予測ベクトルであるmvpL1{0}が決定される。
【0147】
mvpL1{0}が決定されると、予測ブロック0のL1予測の差分ベクトルであるmvd_l1[0]{0}とmvd_l1[1]{0}は既に復号されているため、予測ブロック0のL1予測の動きベクトルであるmvL1{0}が決定される。
【0148】
予測ブロック1のL0予測の参照インデックスであるref_idx_l0{1}が復号されると、予測ブロック1のL0予測の予測ベクトル候補リストであるmvpListL0{1}の生成が開始される。
【0149】
ref_idx_l0{1}の生成が完了すると、予測ブロック1のL0予測の予測ベクトルインデックスであるmvp_idx_l0{1}は既に復号されているため、mvpListL0{1}の中からmvp_idx_l0{1}によって予測ブロック1のL0予測の予測ベクトルであるmvpL0{1}が決定される。
【0150】
mvpL0{1}が決定されると、予測ブロック1のL0予測の差分ベクトルであるmvd_l0[0]{1}とmvd_l0[1]{1}は既に復号されているため、予測ブロック1のL0予測の動きベクトルであるmvL0{1}が決定される。
予測ブロック1のL1予測の参照インデックスであるref_idx_l1{1}が復号されると、予測ブロック1のL1予測の予測ベクトル候補リストであるmvpListL1{1}の生成が開始される。
【0151】
ref_idx_l1{1}の生成が完了すると、予測ブロック1のL1予測の予測ベクトルインデックスであるmvp_idx_l1{1}は既に復号されているため、mvpListL1{1}の中からmvp_idx_l1{1}によって予測ブロック1のL1予測の予測ベクトルであるmvpL1{1}が決定される。
【0152】
mvpL1{1}が決定されると、予測ブロック1のL1予測の差分ベクトルであるmvd_l1[0]{1}とmvd_l1[1]{1}は既に復号されているため、予測ブロック1のL1予測の動きベクトルであるmvL1{1}が決定される。
【0153】
次に、従来のシンタックスに基づいた動きベクトルの生成タイミングについて説明する。図25(C)は、符号ブロックに含まれる予測ブロックが2つである場合の従来のシンタックスに基づいた動きベクトルの生成タイミングを示す。この場合の基本的なSyntaxは実施の形態1の図1に基づいたシンタックスの順序であるが、参照インデックスと差分ベクトルの間に予測ベクトルインデックスを挿入して拡張している。
【0154】
予測ブロック0のL0予測の参照インデックスであるref_idx_l0{0}が復号されると、予測ブロック0のL0予測の予測ベクトル候補リストであるmvpListL0{0}の生成が開始される。
【0155】
予測ブロック0のL1予測の参照インデックスであるref_idx_l1{0}が復号されると、予測ブロック0のL1予測の予測ベクトル候補リストであるmvpListL1{0}の生成が開始される。
【0156】
予測ブロック0のL0予測の予測ベクトルインデックスであるmvp_idx_l0{0}が復号され、mvpListL0{0}の生成が完了すると、mvpListL0{0}の中からmvp_idx_l0{0}によって予測ブロック0のL0予測の予測ベクトルであるmvpL0{0}が決定される。
【0157】
予測ブロック0のL1予測の予測ベクトルインデックスであるmvp_idx_l1{0}が復号され、mvpListL0{0}の生成が完了すると、mvpListL1{0}の中からmvp_idx_l1{0}によって予測ブロック0のL1予測の予測ベクトルであるmvpL1{0}が決定される。
【0158】
予測ブロック0のL0予測の差分ベクトルであるmvd_l0[0]{0}とmvd_l0[1]{0}が復号されると、予測ブロック0のL0予測の動きベクトルであるmvL0{0}が決定される。
【0159】
mvL0{0}が決定されると、予測ブロック1のL0予測の参照インデックスであるref_idx_l0{1}は既に復号されているため、予測ブロック1のL0予測の予測ベクトル候補リストであるmvpListL0{1}の生成が開始される。
【0160】
mvpListL0{1}が生成されると、予測ブロック1のL0予測の予測ベクトルインデックスであるmvp_idx_l0{1}は既に復号されているため、予測ブロック1のL0予測の予測ベクトルであるmvpL0{1}が決定されて、予測ブロック1のL0予測の差分ベクトルであるmvd_l0[0]{1}とmvd_l0[1]{1}は既に復号されているため、予測ブロック1のL0予測の動きベクトルであるmvL0{1}が決定される。
【0161】
一方では、予測ブロック0のL1予測の差分ベクトルであるmvd_l1[0]{0}とmvd_l1[1]{0}が復号されると、予測ブロック0のL1予測の動きベクトルであるmvL1{0}が決定される。
【0162】
mvL1{0}が決定されると、予測ブロック1のL1予測の参照インデックスであるref_idx_l1{1}は既に復号されているため、予測ブロック1のL1予測の予測ベクトル候補リストであるmvpListL1{1}が生成される。
【0163】
mvpListL1{1}が生成されると、予測ブロック1のL1予測の予測ベクトルインデックスであるmvp_idx_l1{1}は既に復号されているため、予測ブロック1のL1予測の予測ベクトルであるmvpL1{1}が決定されて、予測ブロック1のL1予測の差分ベクトルであるmvd_l1[0]{1}とmvd_l1[1]{1}は既に復号されているため、予測ブロック1のL1予測の動きベクトルであるmvL1{1}が決定される。
【0164】
このように、従来のシンタックスに基づいた動きベクトルの生成タイミングでは、予測ブロック0と予測ブロック1のシンタックス要素が入れ子になっているため、予測ベクトル候補リストの生成がシンタックスの復号に比べて相対的に長い時間を要する場合に、mvL1{0}の決定タイミングが遅れ、mvL1{0}を利用して予測ベクトルを生成する予測ブロック1の動きベクトルであるmvL1{1}の決定タイミングが遅延する。
【0165】
実施の形態1の図5のシンタックスに基づいた動きベクトルの生成タイミングでは、従来のシンタックスに基づいた動きベクトルの生成タイミングと比べて、時間DeltaT1だけ遅延量を少なくできる。また、実施の形態1の別の一例である図6のシンタックスに基づいた動きベクトルの生成タイミングでは、従来のシンタックスに基づいた動きベクトルの生成タイミングと比べて、時間DeltaT2だけ遅延量を少なくできる。なお、DeltaT1とDeltaT2は図23における動き補償予測(S212)の開始タイミングに対する遅延時間となる。
【0166】
さらに、実施の形態1の図5のシンタックスに基づいた動きベクトルの生成タイミングでは、実施の形態1の別の一例である図6のシンタックスに基づいた動きベクトルの生成タイミングと比べて、時間DeltaT3だけ遅延量を少なくできる。
【0167】
以上のように、実施の形態1のシンタックスでは、予測ブロック毎に、L0予測の参照インデックスとL1予測の参照インデックス、L0予測の予測ベクトルインデックスとL1予測の予測ベクトルインデックス、L0予測の差分ベクトルとL1予測の差分ベクトルをまとめることで、動きベクトルの決定タイミングを早めて動き補償予測の開始時間の遅延を短縮することができる。
【0168】
以上のように、実施の形態1のシンタックスでは、予測ブロック毎に、予測ベクトルの生成に関係するL0予測の参照インデックスとL1予測の参照インデックスを、予測ベクトルの生成に関係しない予測ベクトルインデックスや差分ベクトルや他の予測ブロックのシンタックス要素よりも先に配置し、各予測ブロックの予測ベクトルの決定に関係するL0予測の予測ベクトルインデックスとL1予測の予測ベクトルインデックスを、予測ベクトルの決定に関係しない差分ベクトルや他の予測ブロックのシンタックス要素よりも先に配置することで、動きベクトルの決定タイミングを早めて動き補償予測の開始時間の遅延を最短にすることができる。
【0169】
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
【0170】
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
【0171】
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
【0172】
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
【0173】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0174】
100 動画像符号化装置、 101 予測ブロック画像取得部、 102 減算部、 103 予測誤差符号化部、 104 符号列生成部、 105 予測誤差復号部、 106 動き補償部、 107 加算部、 108 動きベクトル検出部、 109 動き情報生成部、 110 フレームメモリ、 111 動き情報メモリ、 120 予測ベクトルモード決定部、 121 マージモード決定部、 122 予測符号化モード決定部、 130 予測ベクトル候補リスト生成部、 131 予測ベクトル決定部、 150 空間予測ベクトル候補生成部、 151 時間予測ベクトル候補生成部、 152 空間スケーリング予測ベクトル候補生成部、 153 予測ベクトル候補補充部、 154 予測ベクトル候補リスト確定部、 200 動画像復号装置、 201 符号列解析部、 202 予測誤差復号部、 203 加算部、 204 動き情報再生部、 205 動き補償部、 206 フレームメモリ、 207 動き情報メモリ、 210 符号化モード判定部、 211 動きベクトル再生部、 212 結合動き情報再生部、 220 予測ベクトル候補リスト生成部、 221 予測ベクトル決定部、 222 加算部。

【特許請求の範囲】
【請求項1】
動き補償予測を行う画像符号化装置であって、
符号化対象ブロックの参照画像を特定する参照インデックス情報にもとづいて、符号化対象ブロックに隣接する符号化済みの複数の隣接ブロックの動きベクトルから予測動きベクトルの候補を含む予測ベクトル候補リストを生成する予測ベクトル候補リスト生成部と、
前記予測ベクトル候補リストから前記符号化対象ブロックの予測動きベクトルを選択する予測ベクトル決定部と、
前記符号化対象ブロックの動きベクトルと選択された前記予測動きベクトルとの差分ベクトルを、前記予測ベクトル候補リストにおいて選択された前記予測動きベクトルを特定する予測ベクトルインデックス情報および前記参照インデックス情報とともに前記符号化対象ブロック毎に符号化して符号列を生成する符号列生成部とを備え、
前記符号列生成部は、前記予測ベクトルインデックス情報および前記参照インデックス情報を前記差分ベクトルよりも前に前記符号列に配置することを特徴とする画像符号化装置。
【請求項2】
前記符号列生成部は、前記参照インデックス情報、前記予測ベクトルインデックス情報、前記差分ベクトルの順に前記符号列に配置することを特徴とする請求項1に記載の画像符号化装置。
【請求項3】
動き補償予測を行う画像符号化方法であって、
符号化対象ブロックの参照画像を特定する参照インデックス情報にもとづいて、符号化対象ブロックに隣接する符号化済みの複数の隣接ブロックの動きベクトルから予測動きベクトルの候補を含む予測ベクトル候補リストを生成する予測ベクトル候補リスト生成ステップと、
前記予測ベクトル候補リストから前記符号化対象ブロックの予測動きベクトルを選択する予測ベクトル決定ステップと、
前記符号化対象ブロックの動きベクトルと選択された前記予測動きベクトルとの差分ベクトルを、前記予測ベクトル候補リストにおいて選択された前記予測動きベクトルを特定する予測ベクトルインデックス情報および前記参照インデックス情報とともに前記符号化対象ブロック毎に符号化して符号列を生成する符号列生成ステップとを備え、
前記符号列生成ステップは、前記予測ベクトルインデックス情報および前記参照インデックス情報を前記差分ベクトルよりも前に前記符号列に配置することを特徴とする画像符号化方法。
【請求項4】
動き補償予測を行う画像符号化プログラムであって、
符号化対象ブロックの参照画像を特定する参照インデックス情報にもとづいて、符号化対象ブロックに隣接する符号化済みの複数の隣接ブロックの動きベクトルから予測動きベクトルの候補を含む予測ベクトル候補リストを生成する予測ベクトル候補リスト生成ステップと、
前記予測ベクトル候補リストから前記符号化対象ブロックの予測動きベクトルを選択する予測ベクトル決定ステップと、
前記符号化対象ブロックの動きベクトルと選択された前記予測動きベクトルとの差分ベクトルを、前記予測ベクトル候補リストにおいて選択された前記予測動きベクトルを特定する予測ベクトルインデックス情報および前記参照インデックス情報とともに前記符号化対象ブロック毎に符号化して符号列を生成する符号列生成ステップとをコンピュータに実行させ、
前記符号列生成ステップは、前記予測ベクトルインデックス情報および前記参照インデックス情報を前記差分ベクトルよりも前に前記符号列に配置することを特徴とする画像符号化プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2013−77896(P2013−77896A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2011−215274(P2011−215274)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(308036402)株式会社JVCケンウッド (1,152)
【Fターム(参考)】