説明

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

【課題】動き補償予測を使用する際の符号化効率を向上させる。
【解決手段】候補リスト生成部は符号化対象ブロックに空間的又は時間的に隣接する複数の参照ブロック候補を登録した候補リストを生成する。予測モード判定部109は符号化対象ブロックの予測信号を参照画像内で探索することにより検出された第1動きベクトルを使用して生成する第1予測モードと、候補リストから選択された参照ブロックの動き情報を使用して生成する第2予測モードを選択可能である。動き情報符号化部110は第1予測モードにおいて、候補リストから選択された参照ブロックの動き情報に含まれる第2動きベクトルと第1動きベクトルとの差分ベクトル、及び第1動きベクトルの参照画像を特定するための情報を符号化し、第2予測モードにおいて、候補リストから選択された参照ブロックの動き情報を特定するための情報を符号化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動き補償予測を用いた動画像符号化技術に関し、特に動き補償予測に利用する画像符号化装置、画像符号化方法及び画像符号化プログラムに関する。
【背景技術】
【0002】
MPEG−4 AVC/H.264(以後、AVC)等に代表される動画像符号化では、時間方向の相関を利用した情報圧縮として、符号化対象となる画像信号である符号化対象ピクチャに対して、既に符号化され復号された局部復号信号を参照ピクチャとして用い、所定の符号化処理単位で、対象ピクチャと参照ピクチャとの間での動き量(以後、動きベクトル)を検出し、予測信号を生成する動き補償予測が用いられる。
【0003】
AVCでは、動き補償予測において1つの参照ピクチャから1本の動きベクトルを利用して単一方向に予測信号を生成する片方向予測と、2つの参照ピクチャから2本の動きベクトルを利用して双方向に予測信号を生成する双方向予測が用いられる。これらを所定の符号化処理単位となる16×16画素の2次元ブロック内で処理対象となっているブロック(以後、予測対象ブロック)の大きさを可変にする手法や、複数の参照ピクチャの中から予測に用いる参照ピクチャを選択する手法に適用することで、予測信号の情報量を削減している。符号化側では、予測モード情報や参照画像を指定する情報を選択して伝送し、復号側では、伝送された予測モード情報や参照画像を指定する情報に従って動き補償予測処理が施される。
【0004】
動きベクトルについては、処理対象ブロックに隣接する符号化済みのブロックの動きベクトルを予測動きベクトル(以降、予測ベクトル)とし、処理対象ブロックの動きベクトルと予測ベクトルとの差分を求め、差分ベクトルを符号化ベクトルとして伝送することで圧縮効率を向上させている。
【0005】
更に、AVCにおいては、予測対象ブロックと同一位置にある参照ピクチャのブロックの符号化に用いられた動きベクトルを利用して、符号化ベクトルを伝送することなく動き補償予測を実現するダイレクト動き補償予測が知られている。
【0006】
また、他の符号化ベクトルを伝送しない手法として、処理対象ブロックに隣接するブロックの動き情報を利用して、動き補償予測を実現する動き補償予測が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平10−276439号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述したダイレクト動き補償予測は、予測対象ブロックと同一位置にある参照ピクチャのブロックにおける時間方向の動きの連続性に着目し、上述した符号化ベクトルを伝送しない動き補償予測は、予測対象ブロックと予測対象ブロックに隣接する符号化済ブロックにおける空間方向の動きの連続性に着目することで、他のブロックの動き情報をそのまま利用する。これにより、差分ベクトルを符号化ベクトルとして符号化せずに符号化効率を向上させている。
【0009】
しかしながら、動きの連続性が十分保たれていない場合や、他ブロックの動き情報における動きベクトルが正確な動きを示していない場合などに、他のブロックの動き情報をそのまま利用する方式を用いた際には、ずれの生じた動き情報を用いた予測画像が生成される。その場合、精度良い動き補償予測画像を生成できず、符号化効率が向上しないという難しい面がある。
【0010】
また、差分動きベクトルを符号化せずに動き補償を行わない場合には、差分動きベクトルを符号化する従来の動き補償予測が用いられるが、従来の動き補償予測を行う際には、予測モード情報や参照画像の指定情報、更に指定された参照画像に対して用いられる動きベクトルを予測ベクトルとの差分ベクトルとして、それぞれ符号化する必要がある。この場合、動き補償予測手法を指定する符号量が増大し、十分に符号化効率が向上しないという難しい面がある。
【0011】
本発明はこうした状況に鑑みてなされたものであり、その目的は、動き補償予測を使用する際の符号化効率を向上させる技術を提供することにある。
【課題を解決するための手段】
【0012】
上記課題を解決するために、本発明のある態様の画像符号化装置は、動画像の各ピクチャを分割したブロック単位で動きベクトルを検出して符号化する画像符号化装置であって、符号化対象ブロックに空間的又は時間的に隣接する複数の参照ブロック候補を登録した候補リストを生成する候補リスト生成部(1200)と、前記符号化対象ブロックの予測信号を参照画像内で探索することにより検出された第1動きベクトルを使用して生成する第1予測モードと、前記符号化対象ブロックの予測信号を前記候補リストから選択された参照ブロックの動き情報を使用して生成する第2予測モードを選択可能な予測モード判定部(109)と、前記予測モード判定部(109)から供給される予測信号と、前記符号化対象ブロックの画像信号との差分である予測誤差信号を符号化する予測誤差信号符号化部(103)と、前記予測モード判定部(109)から供給される動き情報を符号化する動き情報符号化部(110)と、前記予測誤差信号符号化部(103)から供給される符号化データと、前記動き情報符号化部(110)から供給される符号化データとを多重化する多重化部(112)と、を備える。前記動き情報符号化部(110)は、前記第1予測モードにおいて、前記候補リストから選択された参照ブロックの動き情報に含まれる第2動きベクトルと前記第1動きベクトルとの差分ベクトル、及び前記第1動きベクトルの参照画像を特定するための情報を符号化し、前記第2予測モードにおいて、前記候補リストから選択された参照ブロックの動き情報を特定するための情報を符号化する。
【0013】
前記動き情報符号化部(110)は、前記第1予測モードにおいて、前記第2動きベクトルを特定するための情報として、前記候補リストから当該第2動きベクトルを含む動き情報を特定するための情報を符号化してもよい。
【0014】
前記第2予測モードには、前記符号化対象ブロックの予測信号を前記候補リストから選択された参照ブロックの動き情報をそのまま使用して生成する予測モードと、前記符号化対象ブロックの予測信号を前記候補リストから選択された参照ブロックの動き情報に含まれる第2動きベクトルを前記第1動きベクトルを用いて修正して使用する予測モードがあり、前記予測モード判定部(109)は、それら二つの予測モードの少なくとも一方を選択可能であってもよい。
【0015】
前記予測モード判定部(109)は、参照ブロック候補の動き情報から特定される、空間隣接か時間隣接かの違い、予測方向、第2動きベクトルのスケーリングの有無、及び前記符号化対象ブロックとの時間距離の少なくとも一つを参照して、前記差分ベクトルの対象となる参照画像を選択してもよい。
【0016】
前記予測モード判定部(109)は、参照ブロック候補の動き情報から取得される予測方向が片方向の場合、その片方向の第2動きベクトルを用いて他方の第2動きベクトルを生成し、双方向の動きベクトルを生成してもよい。
【0017】
本発明の別の態様は、画像符号化方法である。この方法は、動画像の各ピクチャを分割したブロック単位で動きベクトルを検出して符号化する画像符号化方法であって、符号化対象ブロックに空間的又は時間的に隣接する複数の参照ブロック候補を登録した候補リストを生成するステップと、前記符号化対象ブロックの予測信号を参照画像内で探索することにより検出された第1動きベクトルを使用して生成する第1予測モードと、前記符号化対象ブロックの予測信号を前記候補リストから選択された参照ブロックの動き情報を使用して生成する第2予測モードを選択するステップと、選択された予測モードで生成された予測信号と、前記符号化対象ブロックの画像信号との差分である予測誤差信号を符号化するステップと、選択された予測モードで使用される動き情報を符号化するステップと、前記予測誤差信号の符号化データと、前記動き情報の符号化データとを多重化するステップと、を備える。前記動き情報を符号化するステップは、前記第1予測モードにおいて、前記候補リストから選択された参照ブロックの動き情報に含まれる第2動きベクトルと前記第1動きベクトルとの差分ベクトル、及び前記第1動きベクトルの参照画像を特定するための情報を符号化し、前記第2予測モードにおいて、前記候補リストから選択された参照ブロックの動き情報を特定するための情報を符号化する。
【0018】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0019】
本発明によれば、動き補償予測を使用する際の符号化効率を向上させることができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施の形態1に係る動画像符号化装置の構成を示す図である。
【図2】符号化対象画像の一例を示す図である。
【図3】予測ブロックサイズの詳細な定義を示す図である。
【図4】図4(a)〜(d)は、動き補償予測の予測方向について説明するための図である。
【図5】本発明の実施の形態1に係る動画像符号化装置における符号化処理の動作の流れ示すフローチャートである。
【図6】本発明の実施の形態1に係る動画像復号装置の構成を示す図である。
【図7】本発明の実施の形態1に係る動画像復号装置における復号処理の動作の流れを示すフローチャートである。
【図8】図8(a)、(b)は、本発明の実施の形態1における動き補償予測において使用される動き情報を符号化するための3つの予測モードを説明するための図である。
【図9】動き補償予測および動き補償予測を実施しない画面内予測における、動き補償の予測方向と、参照画像を定義する情報、及び符号化する動きベクトル数の関連に関して説明するための図である。
【図10】実施の形態1の動画像符号化装置におけるモード判定部の詳細な構成を示す図である。
【図11】結合動き情報算出部の構成を示す図である。
【図12】結合動き修正動き補償予測生成部の構成を示す図である。
【図13】図10の予測モード判定部を介して動作する、図5のステップS502である動き補償予測モード/予測信号生成の動作について説明するためのフローチャートである。
【図14】図13のステップS1400における結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。
【図15】空間結合動き情報候補リスト生成に用いる空間候補ブロック群を示す図である。
【図16】空間結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。
【図17】時間結合動き情報候補リスト生成に用いる時間候補ブロック群を示す図である。
【図18】時間結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。
【図19】時間結合動き情報に対する基準動きベクトル値ColMvに対する、L0予測、L1予測に対して登録する動きベクトル値mvL0t、mvL1tの算出手法を説明するための図である。
【図20】図18のステップS1401における結合予測モード評価値生成の詳細動作を説明するためのフローチャートである。
【図21】実施の形態1に係る、結合動き情報候補数が5の場合のTruncated Unary符号列を示す図である。
【図22】図13のステップS1402における結合動き修正予測モード評価値生成の詳細動作を説明するためのフローチャートである。
【図23】図23(a)〜(c)は、結合動き修正予測モードにおける結合動き情報に対するスケーリング処理の概念を示す図である。
【図24】各結合動き情報に対して存在するスケーリングされて生成した動きベクトル数を示す図である。
【図25】図25(a)〜(c)は、実施の形態1における差分動きベクトル伝送参照画像確定アルゴリズムを示す概念図である。
【図26】図22のステップS2203の詳細動作を説明するためのフローチャートである。
【図27】図26のステップS2601の詳細動作を説明するためのフローチャートである。
【図28】図27のステップS2702の詳細動作を説明するためのフローチャートである。
【図29】図13のステップS1403の詳細動作を説明するためのフローチャートである。
【図30】図29のステップS2904の詳細動作を説明するためのフローチャートである。
【図31】図13のステップS1404の詳細動作を説明するためのフローチャートである。
【図32】図5のステップS504の詳細動作を説明するためのフローチャートである。
【図33】実施の形態1における動き予測フラグの一例を示す図である。
【図34】図32のフローチャートで示した、動き情報符号化データ生成処理によって生成される符号化ストリームのシンタックスの一例を示す図である。
【図35】図6に示した実施の形態1の動画像復号装置における動き情報復号部の詳細な構成を示す図である。
【図36】図7のステップS701の詳細動作を説明するためのフローチャートである。
【図37】図36のステップS3802の詳細動作を説明するためのフローチャートである。
【図38】図36のステップS3807の詳細動作を説明するためのフローチャートである。
【図39】図36のステップS3811の詳細動作を説明するためのフローチャートである。
【図40】図36のステップS3810の詳細動作を説明するためのフローチャートである。
【図41】実施の形態2に係る、結合動き情報候補数が、結合予測モードで5、結合動き修正予測モードで4、動き検出予測モードで3の場合のTruncated Unary符号列を示す図である。
【図42】実施の形態2に係る、情報符号化データ生成処理によって生成される符号化ストリームのシンタックスの一例を示す図である。
【図43】実施の形態3に係る、結合動き情報候補数が、結合動き修正予測モードで5、結合予測モードが4、動き検出予測モードが3の場合のTruncated Unary符号列を示す図である。
【発明を実施するための形態】
【0021】
以下、図面とともに本発明の実施の形態に係る動画像符号化装置、動画像符号化方法、動画像符号化プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラムの好適な実施の形態について詳細に説明する。なお、図面の説明には同一要素には同一符号を付与して重複する説明を省略する。
【0022】
(実施の形態1)
[動画像符号化装置全体構成]
図1は、本発明の実施の形態1に係る動画像符号化装置の構成を示す図である。以下、各部の動作について説明する。実施の形態1に係る動画像符号化装置は、入力端子100、減算部101、直交変換・量子化部102、予測誤差符号化部103、逆量子化・逆変換部104、加算部105、復号画像メモリ106、動きベクトル検出部107、動き補償予測部108、予測モード判定部109、動き情報符号化部110、動き情報メモリ111、多重化部112、及び出力端子113を備える。
【0023】
入力端子100より入力される画像信号から符号化処理対象の予測ブロックの画像信号が、予測ブロックの位置情報と予測ブロックサイズに基づいて切り出され、予測ブロックの画像信号は、減算部101、動きベクトル検出部107及び予測モード判定部109に供給される。
【0024】
図2は、符号化対象画像の一例を示す図である。実施の形態1に係る予測ブロックサイズに関しては、図2に示すように符号化対象画像が64×64画素の符号化ブロック(CU)単位で符号化処理され、予測ブロックは符号化ブロックが更に分割された単位で構成される。最大予測ブロックサイズは符号化ブロックと同じ64×64画素で、最小予測ブロックサイズは4×4画素である。符号化ブロックの予測ブロックへの分割構成は、非分割(2N×2N)、水平・垂直への分割(N×N)、水平方向のみへの分割(2N×N)、垂直方向のみへの分割(N×2N)が可能である。水平・垂直への分割の場合のみ、更に分割された予測ブロックを符号化ブロックとして階層的に予測ブロックに分割でき、その階層をCU分割数で表現する。
【0025】
図3は、予測ブロックサイズの詳細な定義を示す図である。CU分割数が0であって最大の予測ブロックサイズである64画素×64画素から、CU分割数が3であって最小の予測ブロックサイズである4画素×4画素までの13の予測ブロックサイズが存在することになる。
【0026】
本発明の実施の形態1に係る予測ブロックの分割構成に関して、この組み合わせに限定されない。また、動画像符号化装置における予測ブロックサイズの選択は、符号化ブロック単位で符号化効率のより良い構造を適応的に選択することが可能であるが、実施の形態1は予測ブロック単位での画面間予測及び画面間動き情報の符号化に注目したものであるため、最適な予測ブロックサイズの選択に関する構成要素及び説明を省略する。以降の動画像符号化装置の動作に関しては、選択した予測ブロックサイズ単位で施される動作を説明する。
【0027】
図1に戻り、減算部101は、入力端子100より供給される画像信号と予測モード判定部109より供給される予測信号を減算して予測誤差信号を算出し、予測誤差信号を直交変換・量子化部102に供給する。
【0028】
直交変換・量子化部102は、減算部101より供給される予測誤差信号に直交変換及び量子化を施し、量子化された予測誤差信号を予測誤差符号化部103及び逆量子化・逆変換部104に供給する。
【0029】
予測誤差符号化部103は、直交変換・量子化部102より供給される量子化された予測誤差信号をエントロピー符号化して、予測誤差信号に対する符号列を生成して、多重化部112に供給する。
【0030】
逆量子化・逆変換部104は、直交変換・量子化部102より供給される量子化された予測誤差信号に対して、逆量子化や逆直交変換などの処理を行い、復号予測誤差信号を生成し加算部105に供給する。
【0031】
加算部105は、逆量子化・逆変換部104より供給される復号予測誤差信号と、予測モード判定部109より供給される予測信号を加算して、復号画像信号を生成し、復号画像信号を復号画像メモリ106に供給する。
【0032】
復号画像メモリ106は、加算部105より供給される復号画像信号を格納する。また、画像全体の復号が完了した復号画像については参照画像として1以上の所定画像数記憶し、参照画像信号を動きベクトル検出部107と動き補償予測部108に供給する。
【0033】
動きベクトル検出部107は、入力端子100より供給される予測ブロックの画像信号と、復号画像メモリ106に記憶された参照画像信号の入力を受けて、各参照画像に対する動きベクトルを検出し、動きベクトル値を予測モード判定部109に供給する。
【0034】
一般的な動きベクトルの検出方法は、画像信号と同一位置より所定の移動量だけ移動させた参照画像に相当する画像信号について誤差評価値を算出し、誤差評価値が最小となる移動量を動きベクトルとする。誤差評価値としては、画素毎の差分絶対値の総和SAD(Sum of Absolute Difference)や、画素毎の二乗誤差値の総和SSE(Sum of Square Error)等を利用する。さらに、動きベクトルの符号化に関わる符号量も誤差評価値に含めることも可能である。
【0035】
動き補償予測部108は、予測モード判定部109より指定される参照画像指定情報と、動きベクトル値に従って、復号画像メモリ106内の参照画像指定情報で示される参照画像を、動きベクトル値だけ予測ブロックの画像信号と同一位置より移動させた位置の画像信号を取得して予測信号を生成する。
【0036】
予測モード判定部109より指定される予測モードが片方向予測の場合には、1つの参照画像から取得した予測信号を動き補償予測信号とし、予測モードが双方向予測の場合には、2つの参照画像から取得した予測信号を重みづけ平均したものを動き補償予測信号とし、動き補償予測信号を予測モード判定部109に供給する。ここでは双方向予測の重みづけ平均の比率を1:1とする。
【0037】
図4(a)〜(d)は、動き補償予測の予測方向について説明するための図である。単一の参照画像からの予測を行う処理を片方向予測と定義し、片方向の場合はL0方向またはL1方向という2つの参照画像管理リストに登録された参照画像のいずれか一方を利用する。
【0038】
図4(a)は片方向であってL0方向の参照画像(RefL0Pic)が符号化対象画像(CurPic)より前の時刻にある場合を示している。図4(b)は片方向であってL0方向の参照画像が符号化対象画像より後の時刻にある場合を示している。同様に、図4(a)および図4(b)のL0方向の参照画像をL1方向の参照画像(RefL1Pic)に置き換えて片方向予測を行うこともできる。
【0039】
2つの参照画像からの予測を行う処理を双方向予測と定義し、双方向の場合はL0方向とL1方向の双方を利用してBI方向と表現する。図4(c)は双方向であってL0方向の参照画像が符号化対象画像より前の時刻にあって、L1方向の参照画像が符号化対象画像より後の時刻にある場合を示している。図4(d)は双方向であってL0方向の参照画像とL1方向の参照画像が符号化対象画像より前の時刻にある場合を示している。このように、L0/L1の予測方向と時間の関係は、L0が過去方向、L1が未来方向とは限定されずに用いることが可能である。
【0040】
実施の形態1では、参照画像及び符号化対象画像の時刻を示す情報としてPOC(Picture Order Count)を用いる。POCはAVCで定義された画像の表示順序を示すカウンタである。画像の表示順序が1増加するとPOCも1増加する。したがって、画像間のPOC差から画像間の時間差(距離)を取得できる。
【0041】
図1に戻り、予測モード判定部109は、動きベクトル検出部107より入力される各参照画像に対して検出された動きベクトル値と、動き情報メモリ111に格納された動き情報(予測方向、動きベクトル値、及び参照画像指定情報)をもとに、実施の形態1において定義した動き補償予測モードのそれぞれに対して用いられる、参照画像指定情報と動きベクトル値を動き補償予測部108に設定する。設定した値によって、動き補償予測部108から供給される動き補償予測信号と、入力端子100より供給される予測ブロックの画像信号を用いて、最適な動き補償予測モードを決定する。
【0042】
予測モード判定部109は、決定した予測モード、及び予測モードに応じた予測方向、動きベクトル、及び参照画像指定情報を特定する情報を、動き情報符号化部110に供給し、決定した予測モード及びその予測モードに対する、予測方向、動きベクトル値、及び参照画像指定情報を動き情報メモリ111に供給すると共に、減算部101及び加算部105に決定した予測モードに対応する予測信号を供給する。
【0043】
動画像符号化装置において、基準とする参照画像を符号化するために同一画面内の符号化済画像を用いて予測を行う画面内予測が行われるが、実施の形態1は画面間予測に注目したものであるため、画面内予測に関連する構成要素は省略する。予測モード判定部109の詳細な構成については後述する。
【0044】
動き情報符号化部110は、予測モード判定部109より供給される予測モード、及び予測モードに応じた予測方向、動きベクトル、及び参照画像指定情報を特定する情報を所定のシンタックス構造に従って符号化することで、動き情報の符号列を生成し、多重化部112に供給する。動き情報符号化部110の詳細な構成については後述する。
【0045】
動き情報メモリ111は、予測モード判定部109より供給される動き情報(予測方向、動きベクトル、及び参照画像インデックス)を、最小予測ブロックサイズ単位を基準として所定画像分記憶する。処理対象の予測ブロックの隣接ブロックの動き情報を空間候補ブロック群とし、処理対象の予測ブロックと同一位置にあるColPic上のブロックとその周辺ブロックの動き情報を時間候補ブロック群とする。
【0046】
ColPicとは、処理対象の予測ブロックとは別の復号済みの画像であって、復号画像メモリ106に参照画像として記憶されている。実施の形態1では、ColPicは直前に復号した参照画像とする。なお、実施の形態1では、ColPicは直前に復号した参照画像としたが、表示順で直前の参照画像や表示順で直後の参照画像でもよく、符号化ストリーム中に、ColPicに用いる参照画像を直接指定することも可能である。
【0047】
動き情報メモリ111は、空間候補ブロック群と時間候補ブロック群の動き情報を、候補ブロック群の動き情報として予測モード判定部109に供給する。多重化部112は、予測誤差符号化部103から供給される予測誤差の符号化列と、動き情報符号化部110から供給される動き情報の符号化列を多重化することで符号化ビットストリームを生成し、出力端子113経由で、記録媒体・伝送路等に当該符号化ビットストリームを出力する。
【0048】
図1に示した動画像符号化装置の構成は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置等のハードウェアによっても実現可能である。
【0049】
図5は、本発明の実施の形態1に係る動画像符号化装置における符号化処理の動作の流れ示すフローチャートである。予測ブロック単位毎に、入力端子100より処理対象の予測ブロック画像を取得する(S500)。動きベクトル検出部107は、処理対象の予測ブロック画像と復号画像メモリ106に格納された複数の参照画像より、参照画像毎の動きベクトル値を算出する(S501)。
【0050】
続いて、予測モード判定部109は、動きベクトル検出部107より供給される動きベクトルと、動き情報メモリ111に格納された動き情報を用いて、実施の形態1において定義した動き補償予測モードのそれぞれに対する予測信号を、動き補償予測部108を用いて取得し、最適な予測モードを選択し、予測信号を生成する(S502)。ステップS502の処理の詳細については後述する。
【0051】
続いて、減算部101は、処理対象の予測ブロック画像と予測モード判定部109より供給された予測信号との差分を予測誤差信号として算出する(S503)。動き情報符号化部110は、予測モード判定部109より供給される予測モード、及び予測モードに応じた予測方向、動きベクトル、及び参照画像指定情報を特定する情報を所定のシンタックス構造に従って符号化し、動き情報の符号化データを生成する(S504)。ステップS504の処理の詳細については後述する。
【0052】
続いて、予測誤差符号化部103は、直交変換・量子化部102で生成された量子化された予測誤差信号をエントロピー符号化して、予測誤差の符号化データを生成する(S505)。多重化部112は、動き情報符号化部110から供給される動き情報の符号化データと、予測誤差符号化部103から供給される予測誤差の符号化データを多重化し、符号化ビットストリームを生成する(S506)。
【0053】
加算部105は、逆量子化・逆変換部104より供給される復号予測誤差信号と、予測モード判定部109より供給される予測信号を加算して、復号画像信号を生成する(S507)。加算部105によって、生成された復号画像信号が復号画像メモリ106に供給、格納され、以降に符号化する符号化画像の動き補償予測処理に用いられる(S508)。動き情報メモリ111は、動きベクトル検出部107より供給される動き情報(予測方向、動きベクトル、及び参照画像指定情報)を最小の予測ブロックサイズ単位で格納する(S509)。
【0054】
[動画像復号装置全体構成]
図6は、本発明の実施の形態1に係る動画像復号装置の構成を示す図である。以下、各部の動作について説明する。実施の形態1に係る動画像復号装置は、入力端子600、多重分離部601、予測差分情報復号部602、逆量子化・逆変換部603、加算部604、復号画像メモリ605、動き情報復号部606、動き情報メモリ607、動き補償予測部608、及び出力端子609を備える。
【0055】
入力端子600より符号化ビットストリームが多重分離部601に供給される。多重分離部601は、供給された符号化ビットストリームの符号列を予測誤差情報の符号化列と、予測モード、並びに予測モードに応じた予測方向、動きベクトル、及び参照画像指定情報を特定する情報で構成される動き情報の符号化列に分離する。当該予測誤差情報の符号化列を予測差分情報復号部602に供給し、当該動き情報の符号化列を動き情報復号部606に供給する。
【0056】
予測差分情報復号部602は、多重分離部601より供給された予測誤差情報の符号化列を復号し、量子化された予測誤差信号を生成する。予測差分情報復号部602は、生成した量子化された予測誤差信号を逆量子化・逆変換部603に供給する。
【0057】
逆量子化・逆変換部603は、予測差分情報復号部602より供給される量子化された予測誤差信号を逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、復号予測誤差信号を加算部604に供給する。
【0058】
加算部604は、逆量子化・逆変換部603より供給される復号予測誤差信号と、動き補償予測部608より供給される予測信号を加算して復号画像信号を生成し、復号画像信号を復号画像メモリ605に供給する。
【0059】
復号画像メモリ605は、図1の動画像符号化装置における復号画像メモリ106と同じ機能を有し、加算部604から供給された復号画像信号を格納し、参照画像信号を動き補償予測部608に供給する。また、復号画像メモリ605は、格納された復号画像信号を再生時刻に合わせて、画像の表示順序に従い出力端子609に供給する。
【0060】
動き情報復号部606は、多重分離部601より供給される動き情報の符号化列より、予測モード、並びに予測モードに応じた予測方向、動きベクトル、及び参照画像指定情報を特定する情報を動き情報として復号する。復号した動き情報と、動き情報メモリ607より供給される候補ブロック群の動き情報より、動き補償予測に用いる予測方向、動きベクトル及び参照画像指定情報を再生し、動き補償予測部608に供給する。また、動き情報復号部606は再生した動き情報を、動き情報メモリ607に供給する。動き情報復号部606の詳細な構成については後述する。
【0061】
動き情報メモリ607は、図1の動画像符号化装置における動き情報メモリ111と同じ機能を持ち、動き情報復号部606より供給される再生した動き情報を最小予測ブロックサイズ単位を基準として所定画像分記憶する。また、動き情報メモリ607は、空間候補ブロック群と時間候補ブロック群の動き情報を、候補ブロック群の動き情報として動き情報復号部606に供給する。
【0062】
動き補償予測部608は、図1の動画像符号化装置における動き補償予測部108と同じ機能を持ち、動き情報復号部606より供給される動き情報に基づいて、復号画像メモリ605内の参照画像指定情報が示す参照画像を、動きベクトル値だけ予測ブロックの画像信号と同一位置より移動させた位置の画像信号を取得して予測信号を生成する。動き補償予測の予測方向が双方向であれば、各予測方向の予測信号を平均したものを予測信号として生成し、予測信号を加算部604に供給する。
【0063】
出力端子609は、復号画像メモリ605より供給された復号画像信号を、ディスプレイなどの表示媒体に出力することで、復号画像信号が再生される。
【0064】
図6に示した動画像復号装置の構成も、図1に示した動画像符号化装置の構成と同様に、CPU、フレームメモリ、ハードディスクなどを備える情報処理装置等のハードウェアによっても実現可能である。
【0065】
図7は、本発明の実施の形態1に係る動画像復号装置における復号処理の動作の流れを示すフローチャートである。多重分離部601は、入力端子600より供給された符号化ビットストリームを予測誤差情報の符号化列と、動き情報の符号化列に分離する(S700)。分離された動き情報の符号化列は動き情報復号部606に供給され、動き情報メモリ607より供給される候補ブロック群の動き情報を用いて、復号対象ブロックの動き情報を復号する(S701)。
【0066】
分離された予測誤差情報の符号化列は、予測差分情報復号部602に供給され、量子化された予測誤差信号として復号され、逆量子化・逆変換部603で逆量子化や逆直交変換などの処理を施されることで、復号予測誤差信号が生成される(S702)。ステップS702の処理の詳細については後述する。
【0067】
動き情報復号部606より、復号対象ブロックの動き情報が動き補償予測部608に供給され、動き補償予測部608は動き情報にしたがって動き補償予測を行い予測信号を算出する(S703)。加算部604は、逆量子化・逆変換部603から供給された復号予測誤差信号と、動き補償予測部608から供給された予測信号とを加算し、復号画像信号を生成する(S704)。
【0068】
加算部604より供給された復号画像信号は、復号画像メモリ605に格納される(S705)と共に、動き情報復号部606より供給された復号対象ブロックの動き情報が動き情報メモリ607に格納される(S706)。これで、予測ブロック単位の復号処理が終了する。
【0069】
[実施の形態1の詳細機能説明]
本発明の実施の形態1に係る動画像符号化装置の予測モード判定部109及び動き情報符号化部110の動作、図5のフローチャートにおけるステップS502及びステップS504の処理、並びに本発明の実施の形態1に係る動画像復号装置における動き情報復号部606の動作、図7のフローチャートにおけるステップS702の処理の詳細動作を、以下説明する。
【0070】
[実施の形態1における動き補償予測モードの定義]
図8(a)、(b)は、本発明の実施の形態1における動き補償予測において使用される動き情報を符号化するための3つの予測モードを説明するための図である。第一の予測モードは、予測対象ブロックと当該予測対象ブロックに隣接する符号化済ブロックにおける時間方向や空間方向の動きの連続性を用いて、当該予測対象ブロックは自身の動き情報を直接符号化せずに、空間及び時間的に隣接するブロックの動き情報を符号化に使用する手法であり、結合予測モード(マージモード)と呼ぶ。
【0071】
結合予測モードの場合には、複数の隣接ブロック候補より選択的に結合する動き情報が定義でき、動き情報は使用する隣接ブロックを指定する情報(インデックス)を符号化することで、指定情報をもとに取得した動き情報をそのまま動き補償予測に用いる。更に、結合予測モードにおいては、予測差分情報を符号化伝送せずに、結合予測モードで予測された予測信号を復号ピクチャとするSkipモードを定義し、結合した動き情報のみの少ない情報で復号画像が再生できる構成を有する。Skipモードにおいて伝送する動き情報は、結合予測モードと同様に隣接ブロックを定義する指定情報となる。
【0072】
第二の予測モードは、動き情報の構成要素を個別にすべて符号化し、予測ブロックに対して予測誤差の少ない動き情報を伝送する手法であり、動き検出予測モードと呼ぶ。動き検出予測モードは、従来の動き補償予測の動き情報の符号化と同様に、参照画像を特定するための情報(参照画像インデックス)と、動きベクトルを特定するための情報が別々に符号化される。
【0073】
動き検出予測モードには、片方向予測と双方向予測のどちらを使用するか予測モードで指示し、片方向予測の場合には1つの参照画像に対する参照画像を特定する情報と、動きベクトルの予測ベクトルとの差分ベクトルを符号化する。双方向予測の場合には2つの参照画像に対する参照画像を特定する情報と、動きベクトルがそれぞれ個別に符号化される。動きベクトルに対する予測ベクトルは、AVCと同様に隣接ブロックの動き情報から生成されるが、結合予測モードと同様に、複数の隣接ブロック候補より予測ベクトルに用いる動きベクトルを選択できる。動き検出予測モードにおいては、予測ベクトルに使用する隣接ブロックを指定する情報(インデックス)は、結合予測モードにおける動き情報と同一の候補より指定する。動きベクトルは予測ベクトルに使用する隣接ブロックを指定する情報(インデックス)と差分ベクトルの2つを符号化することで伝送される。
【0074】
第三の予測モードは、隣接ブロックの動き情報に対して、動きベクトル値を修正するための差分ベクトル値を追加で符号化することで、隣接ブロックから生成される動き情報に対して一部の動きベクトルに対する修正を行い、動き情報として符号化する手法であり、結合動き修正予測モード(マージMVDモード)と呼ぶ。結合動き修正予測モードにおいて伝送する動き情報は、結合予測モードと同様に、隣接ブロックを指定する情報に加えて、修正する動きベクトルに対する差分ベクトル値となる。結合動き修正予測モードにおいても、隣接ブロックを指定する情報を、結合予測モードにおける動き情報と同一の候補より指定する。実施の形態1における、結合動き修正予測モードでは、差分ベクトル値は常に1つ伝送され、動き補償予測の予測方向は双方向予測となる。
【0075】
この結合動き修正予測モードを有する構成が、結合動き修正予測モードを有さない従来の構成に対して符号化効率を向上させる要因となる。つまり、結合動き修正予測モードでは、結合予測モードにおいて符号化する情報に対して、動きベクトルを修正するための差分ベクトルを符号化して追加する。これにより、動きの連続性が十分保たれていない場合や、他ブロックの動き情報における動きベクトルが正確な動きを示していない場合などに、隣接ブロックから生成される動き情報に対して、動きベクトルのみを修正することで、予測残差が少ない動き補償予測信号を生成する動き情報を、少ない情報で表現することができる。また、隣接ブロックを指定する情報に関する3つの予測モードにおいて、共通の隣接ブロック候補より、使用する動き情報の候補を設定し、各モードが共通の候補をもとに最適な候補を選択する構成をとることにより、複数の隣接ブロック候補リスト生成処理を有する必要がなく、処理負荷の少ない形で有効な動き補償予測信号を生成することができる。
【0076】
図9は、動き補償予測および動き補償予測を実施しない画面内予測における、動き補償の予測方向と、参照画像を定義する情報、及び符号化する動きベクトル数の関連に関して説明するための図である。
【0077】
動き検出予測モードの内、予測方向が片方向である片方向予測モード(UniPred)の場合は、符号化する動き情報として1つの符号化ベクトル(差分ベクトル)、1つの参照画像インデックス、1つの予測ベクトルインデックスが伝送される。
【0078】
同様に予測方向が双方向である双方向予測モード(BiPred)の場合は、符号化する動き情報として2つの符号化ベクトル(差分ベクトル)、2つの参照画像インデックス、1つの結合動き情報インデックスが伝送される。
【0079】
結合予測モード(Merge)の場合には、1つの結合動き情報インデックスのみが符号化する動き情報として伝送され、動き情報に基づいて片方向もしくは双方向の動き補償予測が施される。
【0080】
結合動き修正予測モード(MergeMvd)の場合には、1つの結合動き情報インデックスと1つの符号化ベクトル(差分ベクトル)が符号化する動き情報として伝送され、動き情報と動きベクトルの修正情報(差分ベクトル)に従って、双方向の動き補償予測が施される。
【0081】
動き補償予測を実施しない予測符号化モードであるイントラモード(Intra)においては、動き情報は符号化されない。
【0082】
隣接する動き情報との時間的・空間的な相関性が非常に高い場合には、結合予測モードが有効な動き補償予測モードとして選択される。相関性が低い場合もしくは一部の動き情報のみが有効に予測ブロックの動き情報として利用できる場合には、動き検出予測モードが有効な動き補償予測モードとして選択される。相関性が高いが動きに微小なずれを生じている場合や、隣接するブロックの動き情報が正確な動きを示していない場合、また大部分の動き情報が有効であるが一部の動き情報のみ相関性が十分でない場合などに、結合動き修正予測モードが有効な動き補償予測モードとして選択される。このように、結合予測モード、動き検出予測モードに加えて、結合動き修正予測モードを具備することで、さまざまな動き情報相関性の状況に応じて、符号化効率の高い動き補償予測を選択できる。
【0083】
[実施の形態1における動画像符号化装置における予測モード判定部の詳細動作説明]
図10は、実施の形態1の動画像符号化装置における予測モード判定部109の詳細な構成を示す図である。予測モード判定部109は、最適な動き補償予測モードを決定する機能を有する。
【0084】
予測モード判定部109は、片方向動き補償予測生成部1000、双方向動き補償予測生成部1001、予測誤差算出部1002、予測ベクトル算出部1003、差分ベクトル算出部1004、動き情報符号量算出部1005、予測モード評価部1006、結合動き情報算出部1007、結合動き補償予測生成部1008、及び結合動き修正動き補償予測生成部1009を含む。
【0085】
図1における予測モード判定部109に対して、動きベクトル検出部107より入力された動きベクトル値が、片方向動き補償予測生成部1000、双方向動き補償予測生成部1001、及び結合動き修正動き補償予測生成部1009に供給され、動き情報メモリ111より入力された動き情報が、結合動き情報算出部1007に供給される。
【0086】
また、動き補償予測部108に対して、片方向動き補償予測生成部1000、双方向動き補償予測生成部1001、結合動き補償予測生成部1008、及び結合動き修正動き補償予測生成部1009から、動き補償予測に用いる参照画像指定情報と動きベクトルが出力される。また、動き補償予測部108より、生成された動き補償予測画像が予測誤差算出部1002に供給される。予測誤差算出部1002には更に、入力端子100より符号化対象となる予測ブロックの画像信号が供給される。
【0087】
また、予測モード評価部1006から、動き情報符号化部110に対して符号化する動き情報と確定した予測モード情報を供給し、動き情報メモリ111に動き情報を供給し、動き補償予測信号を減算部101及び加算部105に供給する。
【0088】
片方向動き補償予測生成部1000は、片方向予測に使用可能な各参照画像に対して算出された動きベクトル値を受信し、参照画像指定情報を予測ベクトル算出部1003に供給し、参照画像指定情報と動きベクトルを動き補償予測部108に出力する。
【0089】
双方向動き補償予測生成部1001も同様に、双方向予測に使用可能な各参照画像に対して算出された動きベクトル値を受信し、それぞれの参照画像に対する参照画像指定情報を予測ベクトル算出部1003に供給し、それぞれの参照画像に対する参照画像指定情報と動きベクトルを動き補償予測部108に出力する。
【0090】
予測誤差算出部1002は、入力された動き補償予測画像と処理対象の予測ブロック画像より、予測誤差評価値を算出する。誤差評価値を算出するための演算としては、動きベクトル検出における誤差評価値と同様に、画素毎の差分絶対値の総和SADや、画素毎の二乗誤差値の総和SSE等を使用できる。更に、予測残差の符号化を行う際に施される、直交変換・量子化を行うことによって復号画像に生じる歪成分の量を加味することで、より正確な誤差評価値が算出可能である。この場合には、予測誤差算出部1002内に、図1における減算部101、直交変換・量子化部102、逆量子化・逆変換部104、加算部105の機能を有することで実現できる。予測誤差算出部1002は、各予測モードにおいて算出された予測誤差評価値と、動き補償予測信号を予測モード評価部1006に供給する。
【0091】
予測ベクトル算出部1003は、片方向動き補償予測生成部1000及び双方向動き補償予測生成部1001より参照画像指定情報を供給され、結合動き情報算出部1007から供給される結合動き情報候補リストより、登録された結合動き情報候補のそれぞれに対して、動き情報より指定された参照画像に対する動きベクトル値を特定する。そして、複数の予測ベクトルを結合動き情報候補リストと共に生成し、差分ベクトル算出部1004に、参照画像指定情報と共に供給する。予測ベクトル算出部1003の詳細動作に関しては、後述する。
【0092】
差分ベクトル算出部1004は、予測ベクトル算出部1003より供給された、予測ベクトル候補のそれぞれに対して、片方向動き補償予測生成部1000及び双方向動き補償予測生成部1001から供給される動きベクトル値との差分を計算し、差分ベクトル値を算出する。算出された差分ベクトル値と予測ベクトル候補に対する指定情報である予測ベクトルインデックスを符号化した際の符号量が最も少ない情報量で表現出来る、予測ベクトルインデックスと差分ベクトルの組合せが特定される。最も少ない情報量で表現出来る、予測ベクトルインデックスと差分ベクトル値を参照画像指定情報と共に、動き情報符号量算出部1005に供給する。
【0093】
動き情報符号量算出部1005は、差分ベクトル算出部1004より供給される、片方向予測モード及び双方向予測モードの差分ベクトル値、参照画像指定情報、予測ベクトルインデックス、予測モードより、各予測モードにおける動き情報に要する符号量を算出する。また、動き情報符号量算出部1005は、結合動き補償予測生成部1008より、結合予測モードにおいて伝送する必要がある、結合動き情報インデックスと予測モードを示すための情報を受け取り、結合予測モードにおける動き情報に要する符号量を算出する。
【0094】
同様に、動き情報符号量算出部1005は、結合動き修正動き補償予測生成部1009より、結合動き修正予測モードにおいて伝送する必要がある、結合動き情報インデックスと差分ベクトル値と予測モードを示すための情報を受け取り、結合動き修正予測モードにおける動き情報に要する符号量を算出する。動き情報符号量算出部1005は、各予測モードにおいて算出された動き情報及び動き情報に要する符号量を予測モード評価部1006に供給する。
【0095】
予測モード評価部1006は、予測誤差算出部1002より供給された各予測モードの予測誤差評価値と、動き情報符号量算出部1005から供給された各予測モードの動き情報符号量を用いて、各予測モードの総合動き補償予測誤差評価値を算出し、最も少ない評価値である予測モードを選択し、選択した予測モードと選択した予測モードに対する動き情報を、動き情報符号化部110及び動き情報メモリ111に出力する。また、予測モード評価部1006は同様に、予測誤差算出部1002より供給された動き補償予測信号に対して、選択した予測モードにおける予測信号を選択して減算部101及び加算部105に出力する。
【0096】
結合動き情報算出部1007は、動き情報メモリ111より供給される隣接ブロックの動き情報における候補ブロック群を用いて、片方向であるか双方向であるかを示す予測方向、参照画像指定情報、動きベクトル値で構成される動き情報として、複数の動き情報を結合動き情報候補リストと共に生成し、結合動き補償予測生成部1008及び結合動き修正動き補償予測生成部1009に供給する。
【0097】
図11は、結合動き情報算出部1007の構成を示す図である。結合動き情報算出部1007は、結合動き情報候補リスト生成部1200及び結合動き情報候補リスト削除部1201を含む。結合動き情報算出部1007は、候補ブロック群より所定の順番で動き情報の候補を作成し、その中から、動き情報の各要素(予測方向、参照画像指定情報、及び動きベクトル値)が全て同一の値を示している候補を削除することで、有効な動き情報のみを結合動き情報候補として登録する。結合動き情報算出部1007の詳細動作に関しては、後述する。
【0098】
図10に戻り、結合動き補償予測生成部1008は、結合動き情報算出部1007より供給された結合動き情報候補リストより、登録された結合動き情報候補のそれぞれに対して、動き情報より、予測方向に応じて1つの参照画像(片方向)もしくは2つの参照画像(双方向)の参照画像指定情報と動きベクトル値を動き補償予測部108に指定して、動き補償予測画像を生成すると共に、それぞれの結合動き情報インデックスを動き情報符号量算出部1005に供給する。結合動き補償予測生成部1008の詳細動作に関しては、後述する。
【0099】
図10の構成では、それぞれの結合動き情報インデックスにおける予測モード評価は、予測モード評価部1006で施されるが、予測誤差評価値及び動き情報符号量を予測誤差算出部1002及び動き情報符号量算出部1005より受け取り、結合動き補償予測生成部1008内で、最適な結合動き補償予測の結合動きインデックスを確定させた後に、他の予測モードを含めた最適予測モードの評価を行う構成を取ることも可能である。
【0100】
結合動き修正動き補償予測生成部1009は、結合動き情報算出部1007より供給された結合動き情報候補リスト、登録された結合動き情報候補に対して、双方向の動き情報を算出する。そして、その中で動きベクトル値を修正する参照画像を特定し、特定した参照画像の参照画像指定情報に対して、動きベクトル検出部107で検出された動きベクトル値を入力し、差分ベクトル値を計算する。そして、双方向の参照画像指定情報と修正した動きベクトル値を含む、動き補償予測に用いる動きベクトル値を動き補償予測部108に指定して、動き補償予測画像を生成すると共に、それぞれに結合動き情報インデックスと伝送する差分ベクトル値を動き情報符号量算出部1005に供給する。
【0101】
図12は、結合動き修正動き補償予測生成部1009の構成を示す図である。結合動き修正動き補償予測生成部1009は、基準参照画像・動き修正参照画像選択部1300、動き修正参照画像動きベクトル取得部1301、結合動き情報修正動き補償予測生成部1302、及び差分ベクトル算出部1303を含む。
【0102】
基準参照画像・動き修正参照画像選択部1300は登録された結合動き情報候補に対して、双方向の動き情報を算出して動きベクトル値を修正する参照画像を特定する機能を有する。動き修正参照画像動きベクトル取得部1301は特定した参照画像の参照画像指定情報に対する動きベクトル値を入力する機能を有する。結合動き情報修正動き補償予測生成部1302は動き補償予測に用いる動きベクトル値と参照画像指定情報を動き補償予測部108に出力する機能をする。差分ベクトル算出部1303は基準参照画像・動き修正参照画像選択部1300で算出された動き情報の動きベクトル値と、動きベクトル検出部107から入力された動きベクトル値の差分ベクトル値を算出する機能を有する。結合動き修正動き補償予測生成部1009の詳細動作は後述する。
【0103】
図13は、図10の予測モード判定部109を介して動作する、図5のステップS502である動き補償予測モード/予測信号生成の動作について説明するためのフローチャートである。最初に、結合動き情報候補リスト生成を行い(S1400)、結合予測モード評価値を生成する(S1401)。
【0104】
続いて、ステップS1400で生成された結合動き情報候補リストを用いて、結合動き修正予測モード評価値を生成し(S1402)、片方向予測モード評価値を生成し(S1403)、双方向予測モード評価値を生成し(S1404)、生成した評価値を比較することで最適な予測モードを選択する(S1405)。ただし、ステップS1401、ステップS1402、ステップS1403、及びステップS1404の評価値生成の順序はこの順序に限らない。
【0105】
選択された予測モードに従い予測信号を出力し(S1406)、選択された予測モードに従い動き情報を出力する(S1407)ことで、予測ブロック単位の動き補償予測モード/予測信号生成処理が終了する。ステップS1400、ステップS1401、ステップS1402、ステップS1403、及びステップS1404の詳細動作に関しては後述する。
【0106】
図14は、図13のステップS1400における結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。この動作は、図10の結合動き情報算出部1007における構成の詳細動作を示している。図11の結合動き情報候補リスト生成部1200は、動き情報メモリ111より供給される空間候補ブロック群から領域外である候補ブロックやイントラモードである候補ブロックを除いた候補ブロック群から、空間結合動き情報候補リストを生成する(S1500)。空間結合動き情報候補リスト生成の詳細な動作は後述する。
【0107】
結合動き情報候補リスト生成部1200は、続いて動き情報メモリ111より供給される時間候補ブロック群から領域外である候補ブロックやイントラモードである候補ブロックを除いた候補ブロック群から、時間結合動き情報候補リストを生成する(S1501)。時間結合動き情報候補リスト生成の詳細な動作は後述する。
【0108】
続いて、結合動き情報候補リスト削除部1201において、生成された空間結合動き情報候補リストと時間結合動き情報候補リストを統合した結合動き情報候補リストより、重複している動き情報を持つ結合動き情報候補が複数存在する場合には1つの結合動き情報候補を残して削除して動き情報候補リストを更新する(S1502)。
【0109】
最後に、上記処理において隣接ブロックに有効な動き情報が存在せず、結合動き情報候補が存在しない場合(S1503:YES)、固定の動き情報を結合動き情報候補リストに追加して(S1504)、処理を終了する。実施の形態1における固定の動き情報としては、予測方向が双方向で、参照画像指定情報(インデックス)が0、2つの動きベクトル値が共に(0,0)の値を設定する。実施の形態1における固定の動き情報としては、上記設定には限定されず、暗黙的に指定できる手法で設定されることにより、動画像復号装置においても同じ動き情報が再現できる。なお、上記処理において隣接ブロックに有効な動き情報が存在し、結合動き情報候補が存在する場合(S1503:NO)、ステップS1504をスキップして、処理を終了する。
【0110】
動き情報メモリ111より、結合動き情報算出部1007に供給される動き情報の候補ブロック群には、空間候補ブロック群と時間候補ブロック群が含まれる。まず、空間結合動き情報候補リスト生成について説明する。
【0111】
図15は、空間結合動き情報候補リスト生成に用いる空間候補ブロック群を示す図である。空間候補ブロック群は、符号化対象画像の予測対象ブロックに隣接している同一画像のブロックを示す。ブロック群は、その管理が最小予測ブロックサイズ単位で行われ、図15に示すようなA1〜A4、B1〜B4、C、D、Eの位置のブロックが隣接するブロック群となる。候補ブロックの位置は、最小予測ブロックサイズの単位で管理されるが、隣接ブロックの予測ブロックサイズが最小予測ブロックサイズよりも大きな場合には、予測ブロックサイズ内の全ての候補ブロックに同一の動き情報が格納される。実施の形態1においては、これら隣接するブロック群の内、空間候補ブロック群をブロックA1、ブロックB1、ブロックC、ブロックDの4ブロックとする。
【0112】
図16は、空間結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。空間候補ブロック群に含まれる4つの候補ブロックであるブロックA1、ブロックB1、ブロックC、ブロックDについて以下の処理を繰り返し行う(S1700からS1703)。
【0113】
最初に候補ブロックの有効性を検査する(S1701)。候補ブロックが領域外でなくイントラモードでない場合(S1701:YES)、候補ブロックは有効となる。候補ブロックが有効であれば、候補ブロックの動き情報を空間結合動き情報候補リストに追加する(S1702)。
【0114】
ここでは、空間結合動き情報候補リストには4以下の候補ブロックの動き情報が含まれるとしたが、空間候補ブロック群は、処理対象の予測ブロックに隣接する少なくとも1以上の処理済みのブロックであり、候補ブロックの有効性によって空間結合動き情報候補リストの数が変動すればよく、これに限定されない。なお、候補ブロックが領域外またはイントラモードの場合(S1701:NO)、ステップS1702をスキップし、次の候補ブロックの有効/無効判定が行われる。
【0115】
続いて、時間結合動き情報候補リスト生成について説明する。図17は、時間結合動き情報候補リスト生成に用いる時間候補ブロック群を示す図である。時間候補ブロック群は、予測対象ブロックとは別の復号済みの画像ColPicにおける予測対象ブロックと同位置及びその周辺にあるブロックを示す。図17におけるA1〜A4、B1〜B4、C、D、E、F1〜F4、G1〜G4、H、I1〜I16の位置のブロックが、時間的に隣接するブロック群となる。実施の形態1においては、これら時間的に隣接するブロック群の内、時間候補ブロック群をブロックHとブロックI6の2ブロックとする。
【0116】
図18は、時間結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。時間候補ブロック群に含まれる2つの候補ブロックであるブロックHとブロックI6について(ステップS1900、ステップS1905)、候補ブロックの有効性を検査する(S1901)。候補ブロックが有効である場合(S1901:YES)、ステップS1902〜ステップS1904の処理が行われ、生成された動き情報が時間結合動き情報候補リストに登録され、処理が終了する。候補ブロックが画面領域外の位置を示す場合や、候補ブロックがイントラ予測ブロックである場合(S1901:NO)、候補ブロックが有効でなく、次の候補ブロックの有効/無効判定が行われる。
【0117】
候補ブロックが有効である場合(S1901:YES)、候補ブロックの動き情報をもとに結合動き情報候補に登録する参照画像選択候補を確定する(S1902)。実施の形態1ではL0方向の参照画像を、L0方向の参照画像のうち処理対象画像に最も近い距離にある参照画像とし、L1方向の参照画像を、L1方向の参照画像のうち処理対象画像に最も近い距離にある参照画像とする。
【0118】
ここでの参照画像選択候補の確定手法は、L0方向の参照画像とL1方向の参照画像が決定できればよく、これに限定されない。符号化処理と復号処理で同一の手法で参照画像を確定することで、符号化時に意図した参照画像を確定できる。他の確定手法としては、例えばL0方向の参照画像及びL1方向の参照画像の参照画像インデックスが0である参照画像を選択する手法や、空間隣接ブロックが使用しているL0参照画像及びL1参照画像で、最も多く使用されている参照画像を予測対象ブロックにおける参照画像として選択する手法や、符号化ストリーム中で各方向の参照画像を指定する手法を用いることが可能である。
【0119】
次に、候補ブロックの動き情報をもとに結合動き情報候補に登録する動きベクトル値を確定する(S1903)。実施の形態1における、時間結合動き情報は、候補ブロックの動き情報で有効な予測方向である動きベクトル値をもとに、双方向の動き情報を算出する。候補ブロックの予測方向がL0予測もしくはL1予測の片方向の場合には、予測に用いられている方向(L0方向或いはL1方向)の動き情報を選択し、その参照画像指定情報と動きベクトル値を双方向動き情報生成の基準値とする。
【0120】
候補ブロックの予測方向が双方向である場合には、L0予測或いはL1予測のどちらか一方の動き情報を基準値として選択する。基準値の選択方法は、例えばColPicと同じ予測方向に存在する動き情報を選択する、候補ブロックのL0予測、L1予測のそれぞれの参照画像でColPicとの画像間距離が近い方を選択する、或いは候補ブロックのL0予測、L1予測のそれぞれの動きベクトルが符号化処理対象画像と交差する方を選択する等が挙げられる。
【0121】
双方向動き情報生成の基準とする動きベクトル値が確定したら、結合動き情報候補に登録する動きベクトル値を算出する。
【0122】
図19は、時間結合動き情報に対する基準動きベクトル値ColMvに対する、L0予測、L1予測に対して登録する動きベクトル値mvL0t、mvL1tの算出手法を説明するための図である。基準動きベクトル値ColMvに対するColPicと候補ブロックの基準とする動きベクトルの対象となる参照画像との画像間距離をColDistとする。L0予測、L1予測の各参照画像と処理対象画像との画像間距離をCurrL0Dist、CuurL1Distとする。ColMvを、ColDistとCurrL0Dist、CurrL1Distの距離比率でスケーリングした動きベクトルを、それぞれに登録する動きベクトルとする。具体的には、登録する動きベクトル値mvL0t、mvL1tは、下記式1、2で算出される。
mvL0t=mvCol×CurrL0Dist/ColDist ・・・(式1)
mvL1t=mvCol×CurrL1Dist/ColDist ・・・(式2)
となる。
【0123】
図18に戻り、このようにして生成された、双方向の参照画像選択情報(インデックス)と、動きベクトル値を結合動き情報候補に追加し(S1904)、時間結合動き情報候補リスト作成処理が終了する。
【0124】
図20は、図18のステップS1401における結合予測モード評価値生成の詳細動作を説明するためのフローチャートである。この動作は、図10の結合動き補償予測生成部1008を用いた構成の詳細動作を示している。
【0125】
最初に予測誤差評価値を最大値に設定し、予測誤差が最小となる結合動き情報インデックスを初期化(例えば、−1などのリスト外の値)する(S2100)。結合動き情報候補リスト生成処理により、生成された結合動き情報候補リストの数をnum_of_indexとすると、i=0からnum_of_index−1までの結合動き情報候補について以下の処理を繰り返し行う(S2101からS2109)。
【0126】
先ず、結合動き情報候補リストよりインデックスiに格納された動き情報を取得する(S2102)。続いて動き情報符号量を算出する(S2103)。結合予測モードにおいては、結合動き情報インデックスのみが符号化されるので、結合動き情報インデックスのみが動き情報符号量となる。結合動き情報インデックスの符号列としては、実施の形態1では、Truncated Unary符号列を用いる。
【0127】
図21は、結合動き情報候補数が5の場合のTruncated Unary符号列を示す図である。Truncated Unary符号列を用いて結合動き情報インデックスの値を符号化する場合には、結合動き情報候補数が少ないほど、結合動き情報インデックスに割り当てられる符号ビットが小さくなる。例えば、結合動き情報インデックスが1である場合、結合動き情報候補数が2個であれば‘1’の1ビットで表現されるが、結合動き情報候補数が3個であれば‘10’の2ビットで表現される。なお、ここでは上記のように結合動き情報インデックスの符号化にTruncated Unary符号列を利用しているが、他の符号列生成手法を用いることも可能であり、これに限定されない。
【0128】
図20に戻り、動き情報の予測方向が片方向である場合(S2104:YES)、1つの参照画像に対する参照画像指定情報と動きベクトルを、図1における動き補償予測部108に設定して、片方向動き補償予測ブロックを生成する(S2105)。動き情報が片方向でない場合(S2104:NO)、2つの参照画像に対する参照画像指定情報と動きベクトルを動き補償予測部108に設定して、双方向動き補償予測ブロックを生成する(S2106)。
【0129】
続いて、動き補償予測ブロックと予測対象ブロックの予測誤差と動き情報符号量より、予測誤差評価値を算出し(S2107)、予測誤差評価値が最小値である場合には評価値を更新すると共に、予測誤差最小インデックスを更新する(S2108)。
【0130】
全ての結合動き情報候補についての予測誤差評価値が比較された結果、選択された予測誤差最小インデックスを、結合予測モードで用いる結合動き情報インデックスとして、予測誤差最小値、動き補償予測ブロックと共に出力し(S2110)、結合予測モード評価値生成処理を終了する。
【0131】
図22は、図13のステップS1402における結合動き修正予測モード評価値生成の詳細動作を説明するためのフローチャートである。この動作は、図10の結合動き修正動き補償予測生成部1009を用いた構成の詳細動作を示している。
【0132】
最初に予測誤差評価値を最大値に設定し、予測誤差が最小となる結合動き情報インックスを初期化(例えば、−1などのリスト外の値)する(S2200)。結合動き情報候補リスト生成処理により、生成された結合動き情報候補リストの数をnum_of_indexとすると、i=0からnum_of_index−1までの結合動き情報候補について以下の処理を繰り返し行う(S2201からS2210)。
【0133】
先ず、結合動き情報候補リストよりインデックスiに格納された動き情報を取得する(S2202)。続いて、取得した動き情報より双方向予測の動きベクトル値と参照画像指定情報、及び差分ベクトルを伝送する参照画像となる動き修正参照画像を確定する(S2203)。ステップS2203の詳細動作に関しては、後述する。
【0134】
次に、ステップS2203により確定された動き補正参照画像に対して、図1の動きベクトル検出部107より動き補正参照画像に対する検出した動きベクトル値を入力する(S2204)。入力された動きベクトル値を動き補償予測に用いるため、結合動き情報候補より算出された動き情報における、動き補正参照画像の動きベクトル値との差分ベクトルが生成される(S2205)。
【0135】
続いて、動き情報符号量を算出する(S2206)。結合動き修正予測モードにおいては、結合動き情報インデックスと差分ベクトル値が符号化されることで、必要な動き情報が伝送される。そのため、結合動き情報インデックスの符号量と差分ベクトル値の符号量が加算され、結合動き修正予測モードにおける動き情報符号量となる。
【0136】
結合修正動き予測モードの場合に、結合動き情報より生成された双方向予測の動きベクトルと参照画像選択情報に対して、動き修正参照画像に対する修正した動きベクトルのみを入れ替えた動き情報を、図1における動き補償予測部108に設定して、双方向動き補償予測ブロックを生成する(S2207)。
【0137】
動き補償予測ブロックと予測対象ブロックの予測誤差と動き情報符号量より、予測誤差評価値を算出し(S2208)、予測誤差評価値が最小値である場合には評価値を更新すると共に、予測誤差最小インデックスを更新する(S2209)。
【0138】
全ての結合動き情報候補についての予測誤差評価値が比較された結果、選択された予測誤差最小インデックスを、結合予測モードで用いる結合動き情報インデックスとして、予測誤差最小値、動き補償予測ブロックと共に出力し(S2211)、結合動き修正予測モード評価値生成処理を終了する。
【0139】
次に、ステップS2203の詳細動作を説明する前に、結合動き修正予測モードにおける結合動き情報に対するスケーリング処理の説明を行う。図23(a)〜(c)は、結合動き修正予測モードにおける結合動き情報に対するスケーリング処理の概念を示す図である。結合動き情報としては、図23(a)に示す空間隣接ブロックから算出された予測方向が双方向である空間BiPredと、図23(b)に示す空間隣接ブロックから算出された予測方向が片方向である空間UniPredと、図23(c)に示す時間連接ブロックから算出された時間BiPredが存在する。
【0140】
実施の形態1における、結合動き情報に対するスケーリング処理は、双方向の動き情報が取得できる空間BiPred及び時間BiPredにおいては、結合動き情報算出時に施された動きベクトルをそのまま用い、時間UniPredに関しては、片方向で定義されている動きベクトル値を、符号化対象画像とL0画像、L1画像との距離比率でスケーリングすることで、使用されていなかった方向の動き情報を生成する。
【0141】
図24は、各結合動き情報に対して存在するスケーリングされて生成した動きベクトル数を示す図である。空間UniPredが上記スケーリング処理における1個、空間BiPredは結合動き情報算出時にスケーリング処理が施されていないため0個、時間BiPredは結合動き情報算出時の2つの動きベクトル値の算出時にスケーリング処理が施されているため2個となる。
【0142】
上記スケーリング処理が施された動きベクトル値は、隣接ブロックで使用された動きベクトル値をそのまま動きベクトル値として採用した結合動き情報と比較すると、スケーリングによる演算誤差の影響や、動き量の時間変化が一定でない場合の影響があり、その動き情報の精度にずれが生じている可能性が高い。また、隣接ブロックに使用された動きベクトル値は、符号化対象から時間的に離れた参照画像になるほど画面の変化が大きくなるため、その値の精度が低下する。
【0143】
実施の形態1においては、これらの結合動き情報に登録された動きベクトルの算出時の特性を利用して、差分ベクトルを送って動きベクトルを修正する必要のある動きベクトルを、付加情報を伝送することなく特定し、差分ベクトルのみを追加で符号化する。これにより、動き補償予測の予測精度が高い動き情報を、少ない動き情報の伝送で実現することができる。
【0144】
実施の形態1においては、スケーリングされて算出された動きベクトル値を持つ参照画像を優先的に、差分ベクトルを伝送する動き修正参照画像に設定する。2つの動きベクトルが共にスケーリングされている場合や、共にスケーリングされていない場合には、予測対象画像からの時間的距離が離れた参照画像を、差分ベクトルを伝送する動き修正参照画像に設定する。
【0145】
図25(a)〜(c)は、実施の形態1における差分動きベクトル伝送参照画像確定アルゴリズムを示す概念図である。図25(a)に示す空間BiPredでは、スケーリングされた動きベクトルが0個のため、時間的距離の遠い参照画像の動きベクトルに差分ベクトルを追加する。図25(b)に示す空間UniPredでは、スケーリングされた動きベクトルが1個のため、スケーリングされた動きベクトルに差分ベクトルを追加する。図25(c)に示す時間BiPredでは、スケーリングされた動きベクトルが2個のため、時間的距離の遠い参照画像の動きベクトルに差分ベクトルを追加する。
【0146】
図26は、図22のステップS2203の詳細動作を説明するためのフローチャートである。図22のステップS2203では、上記差分ベクトルを伝送する参照画像の確定処理が行われる。
【0147】
最初に、取得した結合動き情報の予測方向が片方向である場合には(S2600:YES)、空間UniPredで導出された結合動き情報であり、双方向の動き補償予測を行うための第2参照画像と第2参照画像の動きベクトル値を確定する処理を行う(S2601)。ステップS2601の詳細動作に関しては、後述する。
【0148】
続いて、双方向の参照画像の動きベクトル値のうちスケーリングされた動きベクトルが片方向の1つの動きベクトルのみである場合(S2602:YES)、スケーリングされた動きベクトル値を持つ参照画像を動き修正参照画像に設定する(S2603)。
【0149】
スケーリングされた動きベクトルが片方向の1つの動きベクトルでない場合(S2602:NO)、符号化対象画像、L0参照画像、L1参照画像の時間情報を示すPOC値を取得し、それぞれPOCcur、POC_L0、POC_L1に設定する(S2604)。
【0150】
符号化対象画像と2つの参照画像の間での時間的距離を下記式3で比較する。
abs(POCcur−POC_L0)>abs(POCcur−POC_L1)
・・・(式3)
【0151】
上記式3を満たす場合(S2605:YES)、L0参照画像が遠い参照画像と判断し、L0参照画像を動き修正参照画像に設定する(S2606)。上記式3を満たさない場合(S2605:NO)、L1参照画像を動き修正参照画像に設定する(S2607)。以上で、双方向の動きベクトル値と差分ベクトルを伝送する参照画像を確定する処理が終了する。
【0152】
図27は、図26のステップS2601の詳細動作を説明するためのフローチャートである。最初に、結合動き情報に格納されている動き情報がL0予測であった場合(S2700:YES)、第2参照画像としてL1予測の参照画像インデックスを確定する(S2701)。L0予測でない場合(S2700:NO)、第2参照画像としてL0予測の参照画像インデックスを確定する(S2702)。ステップS2702における参照画像インデックスの確定処理に関しては、後述する。
【0153】
続いて、符号化対象画像、結合動き情報に格納されている参照画像、第2参照画像のPOC値を取得し、POCcur、POC_Lx、POC_Lyに設定する(S2703)。上記POC値を用いて、結合動き情報に格納されている動きベクトル値を2つの参照画像と符号化対象画像との距離比率でスケーリングする(S2704)。
【0154】
結合動き情報に格納されている動き情報がL0予測であった場合(S2705:YES)、スケーリングして生成された動きベクトル値をL1予測の参照画像に対する基準動きベクトル値として設定する(S2706)。L0予測でない場合(S2705:NO)、スケーリングして生成された動きベクトル値をL0予測の参照画像に対する基準動きベクトル値として設定し(S2707)、処理を終了する。
【0155】
図28は、図27のステップS2702の詳細動作を説明するためのフローチャートである。図27のステップS2702では、参照画像インデックスを確定する処理が行われる。
【0156】
最初に、結合動き情報に格納されている参照画像を基準参照画像として取得するとともに、第2参照画像を設定する予測方向における参照画像リストを第2参照画像候補リストとして取得する(S2800)。
【0157】
次に、符号化対象画像を挟んで基準参照画像と反対方向の時間位置に存在する参照画像が第2参照画像候補リスト内に存在するかを調べる(S2801)。存在する場合(S2801:YES)、その中で最も符号化対象画像に近い時間位置に存在する参照画像を第2参照画像に対する参照画像インデックスとして確定する(S2802)。存在しない場合(S2801:NO)、符号化対象に最も近い時間位置に存在する参照画像を第2参照画像候補と設定し(S2803)、基準参照画像と第2参照画像候補が同一画像であるかを調べる(S2804)。
【0158】
基準参照画像と第2参照画像候補が同一画像でない場合(S2804:NO)、第2参照画像候補を第2参照画像に対する参照画像インデックスとして確定する(S2805)。基準参照画像と第2参照画像候補が同一画像である場合(S2804:YES)、他の参照画像が第2参照画像候補リストに存在するかを調べる(S2806)。存在する場合(S2806:YES)、時間位置で次に符号化対象画像に近い参照画像を取得し、第2参照画像に対する参照画像インデックスとして確定する(S2807)。他の参照画像が存在しない場合(S2806:NO)、ステップS2805に進み、第2参照画像候補を第2参照画像に対する参照画像インデックスとして確定する。以上で全ての場合における第2参照画像に対する参照画像インデックスが確定し、処理を終了する。
【0159】
実施の形態1における第2参照画像の確定アルゴリズムは、動き補償予測処理が双方向予測において符号化対象画像を挟んで反対方向に存在する参照画像で構成される補間型(内挿型)の双方向予測の方が、符号化対象画像を挟まずに同一方向に存在する参照画像で構成する補間(外挿型)の双方向予測よりも、動きや物体の時間変化の影響を平均化できるために予測精度が良い点、符号化対象画像から近い参照画像の方が動きや物体の時間変化の影響が少なく動き補償予測の精度が良い点、同じ参照画像を重ね合わせて生成する予測画像よりも、2つの異なる参照画像より生成される双方向予測画像の方が動きを正しく捉えた場合の予測画像の予測精度が高い点の3つの知見に基づく確定アルゴリズムである。この手法により、双方向予測に適した参照画像を第2参照画像として設定できる利点がある。
【0160】
しかしながら、上述した参照画像インデックスの確定処理に関しては、第2参照画像の参照画像インデックスが確定できればよく、異なる確定アルゴリズムを用いることも可能である。符号化処理と復号処理で同一の手法で参照画像を確定することで、符号化時に意図した参照画像を確定できる。他の確定方法として、他ブロックの動き情報における動きベクトルが正確な動きを示していない場合に、同じ参照画像を重ね合わせて生成する予測画像を用いることで、参照画像に微小な変化を加えた動き補償予測信号を新たな候補として加えることが出来る効果を重視して、図28のフローチャートにおける、基準参照画像と第2参照画像候補が同一画像であるかを調べる処理であるステップS2804を無くして、同一画像であっても第2参照画像候補として確定する方法を用いることができる。
【0161】
更に他の確定方法として、第2参照画像として確定する予測方向の参照画像の中で、単純に符号化対象画像に最も近い距離にある参照画像を選択する方法や、常に参照画像インデックスが0で示される参照画像を取得する方法や、空間隣接ブロックが使用しているL0参照画像及びL1参照画像で、最も多く使用されている参照画像を予測対象ブロックにおける参照画像として選択する方法などの、時間BiPredにおける参照画像確定処理に用いた確定手段を用いることも可能である。また、図28に示したアルゴリズムを用いて、時間BiPredにおける参照画像確定処理に応用することも可能である。
【0162】
図29は、図13のステップS1403の詳細動作を説明するためのフローチャートである。図13のステップS1403では、片方向予測モード評価値生成処理が行われる。
【0163】
最初に、片方向予測に対する参照画像指定情報(インデックス)と動きベクトル値を取得する(S2900)。続いて、最小動き情報符号量を最大値に設定し、動き情報符号量が最小となる結合動き情報インデックスを初期化(例えば、−1などのリスト外の値)する(S2901)。結合動き情報候補リスト生成処理により、生成された結合動き情報候補リストの数をnum_of_indexとすると、i=0からnum_of_index−1までの結合動き情報候補について以下の処理を繰り返し行う(S2902からS2908)。
【0164】
先ず、結合動き情報算出部1007より入力された結合動き情報候補リストより、インデックスiに格納された動き情報を取得する(S2903)。続いて、取得した動き情報より参照画像指定情報で指定される参照画像に対する候補インデックスiの予測ベクトル値を生成する(S2904)。ステップS2904の詳細動作に関しては、後述する。
【0165】
続いて、生成された予測ベクトル値と動きベクトル値との水平・垂直成分の差分値を算出し、差分ベクトルを生成する(S2905)。
【0166】
続いて、動き情報符号量を算出する(S2906)。片方向予測モードの場合に、符号化する動き情報としては、1つの参照画像に対する、参照画像指定情報、差分ベクトル値、及び結合動き情報インデックスの3要素となり、各々符号化された符号量の総量が動き情報符号量として算出される。動き情報符号量が、最小動き情報符号量よりも小さい場合には、最小動き情報符号量を更新すると共に、動き情報符号量最小インデックスを更新する(S2907)。すべての候補インデックスに対する動き情報符号量の算出を行うことで(S2908)、最小動き情報符号量と動き情報符号量最小インデックスが算出される。
【0167】
続いて、1つの参照画像に対する参照画像指定情報と動きベクトルを図1における動き補償予測部108に設定して、片方向動き補償予測ブロックを生成する(S2909)。さらに、動き補償予測ブロックと予測対象ブロックの予測誤差と、算出された最小動き情報符号量より、予測誤差評価値を算出し(S2910)、予測誤差評価値、並びに1つの参照画像に対する動き情報である、参照画像指定情報、差分ベクトル値、及び算出された動き情報符号量最小インデックスである結合動き情報インデックスを動き補償予測ブロックと共に出力し(S2911)、片方向予測モード評価値生成処理を終了する。
【0168】
図30は、図29のステップS2904の詳細動作を説明するためのフローチャートである。図29のステップS2904では、結合動き情報候補インデックスより取得した動き情報をもとに、参照画像指定情報で指定される参照画像に対する予測ベクトル生成が行われる。
【0169】
最初に、予測ベクトルの対象となる予測方向がL0予測であるかL1予測であるかを取得する(S3000)。ここでは、伝送する動きベクトルの対象となっている予測方向として、L0予測であるかL1予測であるかが設定される。続いて、対象となる予測方向に対応する動き情報が、指定された結合動き情報候補インデックスiにおける動き情報として格納されているか否かを判断する(S3001)。格納された動き情報の予測方向が双方向予測の場合には、常に対象となる予測方向に対応する動き情報が格納されていると判断される(S3001:YES)。格納された動き情報の予測方向が片方向予測の場合には、片方向予測で設定されている予測方向が、予測ベクトルの対象となる予測方向と一致する場合には対象となる予測方向に対応する動き情報が格納されていると判断される(S3001:YES)。一致しない場合には対象となる予測方向に対応する動き情報が格納されていないと判断される(S3001:NO)。
【0170】
対象となる予測方向に対応する動き情報が格納されていると判断される場合には(S3001:YES)、指定された結合動き情報候補インデックスiにおける対象となる予測方向の動き情報として、参照画像指定情報と動きベクトル値を取得する(S3002)。対象となる予測方向に対応する動き情報が格納されていないと判断される場合には(S3001:NO)、指定された結合動き情報候補インデックスiにおける対象となる予測方向と異なる方向の動き情報として、参照画像指定情報と動きベクトル値を取得する(S3003)。
【0171】
ステップS3002の処理を行った後、取得した動き情報の参照画像指定情報と、伝送する動きベクトルの対象となっている参照画像を示す参照画像指定情報とが同一であるか否かを判断する(S3004)。同一の場合には(ステップS3004:YES)、取得した動き情報の動きベクトル値を予測ベクトル値に設定し(S3005)、処理を終了する。
【0172】
一方、ステップS3003の処理を行った後、もしくはステップS3004において同一でない場合には(ステップS3004:NO)、予測ベクトル値として指定された結合動き情報候補インデックスiに格納された動き情報の動きベクトル値を、スケーリングして算出する処理を行う。最初に、符号化対象画像、結合動き情報に格納されている参照画像、予測ベクトルの対象となる参照画像のPOC値を取得し、POCcur、POC_Lx、POC_Lyに設定する(S3006)。上記POC値を用いて、結合動き情報に格納されている動きベクトル値を2つの参照画像と符号化対象画像との距離比率でスケーリングする(S3007)。スケーリングの処理としては、図27のステップS2704と同様の処理が施される。
【0173】
最後に、スケーリングした動きベクトル値を、予測ベクトル値に設定し(S3008)処理を終了する。図30に示す処理を行うことにより、指定された結合動き情報候補インデックスiに格納された動き情報の動きベクトル値を、予測ベクトルの対象としている参照画像に対する動き量に換算して、予測ベクトル値として設定することができる。
【0174】
図31は、図13のステップS1404の詳細動作を説明するためのフローチャートである。図13のステップS1404では、双方向予測モード評価値生成処理が行われる。
【0175】
最初に、L0予測に対する参照画像指定情報(インデックス)と動きベクトル値を取得する(S3300)。続いて、最小動き情報符号量を最大値に設定し、動き情報符号量が最小となる結合動き情報インデックスを初期化(例えば、−1などのリスト外の値)する(S3301)。結合動き情報候補リスト生成処理により、生成された結合動き情報候補リストの数をnum_of_indexとすると、i=0からnum_of_index−1までの結合動き情報候補について以下の処理を繰り返し行う(S3302からS3310)。
【0176】
先ず、結合動き情報算出部1007より入力された結合動き情報候補リストより、インデックスiに格納された動き情報を取得する(S3303)。続いて、取得した動き情報より参照画像指定情報で指定されるL0参照画像に対する候補インデックスiの予測ベクトル値を生成する(S3304)。ステップS3304の動作に関しては、図30に示したステップS2904と同じ動作が行われる。
【0177】
続いて、生成された予測ベクトル値と動きベクトル値との水平・垂直成分の差分値を算出し、L0予測に対する差分ベクトルを生成する(S3305)。
【0178】
続いて、取得した動き情報より参照画像指定情報で指定されるL1参照画像に対する候補インデックスiの予測ベクトル値を生成する(S3306)。ステップS3306の動作に関しても、図30に示したステップS2904と同じ動作が行われる。生成された予測ベクトル値と動きベクトル値との水平・垂直成分の差分値を算出し、L1予測に対する差分ベクトルを生成する(S3307)。
【0179】
続いて、動き情報符号量を算出する(S3308)。双方向予測モードの場合には、符号化する動き情報としては、L0とL1の2つの参照画像に対する、参照画像指定情報、差分ベクトル値と、1つの結合動き情報インデックスの計5要素となり、各々符号化された符号量の総量が動き情報符号量として算出される。そのため、結合予測モードや結合動き修正予測モードと比較して、符号化される動き情報の符号量は大きくなるが、すべての参照画像を予測対象画像として指定出来、すべての動きベクトルを指定可能であるため、より予測残差の少ない動き補償予測ブロックを生成することができる。動き情報符号量が、最小動き情報符号量よりも小さい場合には、最小動き情報符号量を更新すると共に、動き情報符号量最小インデックスを更新する(S3309)。すべての候補インデックスに対する動き情報符号量の算出を行うことで(S3310)、最小動き情報符号量と動き情報符号量最小インデックスが算出される。
【0180】
続いて、2つの参照画像に対する参照画像指定情報と動きベクトルを図1における動き補償予測部108に設定して、双方向動き補償予測ブロックを生成する(S3311)。さらに、動き補償予測ブロックと予測対象ブロックの予測誤差と、算出された最小動き情報符号量より、予測誤差評価値を算出し(S3312)、予測誤差評価値、並びにL0、L1の2つの参照画像に対する動き情報である、2つの参照画像指定情報、2つの差分ベクトル値、及び算出された動き情報量最小インデックスである、1つの結合動き情報インデックスを動き補償予測ブロックと共に出力し(S3313)、双方向予測モード評価値生成処理を終了する。
【0181】
以上の処理が、実施の形態1における動画像符号化装置における予測モード判定部109の詳細動作となる。
【0182】
[実施の形態1における動画像符号化装置における動き情報符号化部の詳細動作説明]
図32は、図5のステップS504の詳細動作を説明するためのフローチャートである。図5のステップS504の処理は、実施の形態1の動画像符号化装置の動き情報符号化部110における、各動き補償予測モードに対する動き情報を符号化する処理を示す。
【0183】
動き情報符号化部110には、予測モード判定部109において決定された動き補償予測モードにおける、予測モードを示す情報と、各予測モードの動き情報を表現するために必要な情報が供給され、動き情報符号化部110は動き情報符号化データ生成処理を開始する。
【0184】
最初に、予測モードが結合予測モードである場合(S3400:YES)、ステップS3401に進み、対象となる予測ブロックで予測誤差信号を符号化しない(Skipモード)状態である場合(S3401:YES)、Skipフラグを符号化し(S3402)、そうでない場合(S3401:NO)、マージフラグを1として符号化する(S3403)。
【0185】
Skipフラグ或いはマージフラグを符号化した後、結合動き情報候補リストが1より大きい場合(S3404:YES)、結合動き情報インデックスを符号化し(S3405)、処理を終了する。結合動き情報候補リストが1の場合(S3404:NO)、結合動き情報が特定できるため、結合動き情報インデックスは伝送されない。
【0186】
次に、予測モードが結合予測モードでない場合(S3400:NO)、マージフラグを0として符号化する(S3406)。続いて、予測モードが結合動き修正予測モードである場合(S3407:YES)、結合動き修正予測モードの動き情報伝送が行われる。結合動き修正予測モードを特定するためのマージMvdフラグを1で符号化する(S3408)。次に、結合動き情報候補リストが1より大きい場合(S3409:YES)、結合動き情報インデックスを符号化する(S3410)。結合動き情報候補リストが1の場合(S3409:NO)、結合動き情報インデックスは伝送されない。最後に、結合動き修正予測モードで特定された動き修正参照画像の動きベクトル値に対して、結合動き情報の動き修正参照画像の修正前動きベクトルとの差分ベクトル値を符号化し(S3409)、処理を終了する。
【0187】
一方、予測モードが結合動き修正予測モードでない場合(S3407:NO)、最初に結合動き修正予測モードでないことを示すためにマージMvdフラグを0で符号化する(S3412)。続いて、動き予測フラグを符号化する(S3413)。動き予測フラグは、予測方向が片方向予測であるか双方向予測であるかを指示する情報として符号化される。
【0188】
図33は、実施の形態1における動き予測フラグの一例を示す図である。動き予測フラグ(inter_pred_flag)として、片方向を示す値(Pred_LC)が0、双方向を示す値(Pred_BI)が1で符号化される。
【0189】
図32に戻り、結合動き情報候補リストが1より大きい場合(S3414:YES)、片方向予測もしくは双方向予測に用いられる結合動き情報インデックスを符号化する(S3415)。結合動き情報候補リストが1の場合(S3414:NO)、結合動き情報インデックスは伝送されない。
【0190】
次に、動き予測フラグで示された予測方向が片方向予測である場合(S3416:YES)、片方向予測モードの動き情報伝送が行われる。最初に、参照画像指定情報(インデックス)を符号化し(S3417)、続いて、差分ベクトルを符号化し(S3418)、処理を終了する。
【0191】
一方、動き予測フラグで示された予測方向が片方向予測でない場合(S3416:NO)、予測モードは双方向予測モードとなり、双方向予測モードの動き情報伝送が行われる。最初に、L0予測の動き情報であるL0参照画像指定情報を符号化し(S3419)、L0差分ベクトル値を符号化する(S3420)。
【0192】
続いて、L1予測の動き情報であるL1参照画像指定情報を符号化し(S3421)、L1差分ベクトル値を符号化する(S3422)。以上の処理により、動き情報符号化データの生成が終了する。
【0193】
図34は、図32のフローチャートで示した、動き情報符号化データ生成処理によって生成される符号化ストリームのシンタックスの一例を示す。図34の符号化シンタックスにおいては、Skipフラグの伝送は予測ブロック単位での動き情報の符号化より上の階層での符号化ブロック単位で選択される。従って、上位の符号化ブロックの単位で、図32の予測誤差信号を符号化しない(Skipモード)状態であるか否かの判定(S3401)が行われる。
【0194】
[実施の形態1における動画像復号装置における動き情報復号部の詳細動作説明]
図35は、図6に示した実施の形態1の動画像復号装置における動き情報復号部606の詳細な構成を示す図である。動き情報復号部606は、動き情報ビットストリーム復号部3700、予測ベクトル算出部3701、ベクトル加算部3702、片方向動き補償予測復号部3703、双方向動き補償予測復号部3704、結合動き情報算出部3705、結合動き補償予測復号部3706、及び結合動き修正動き補償予測復号部3707を含む。
【0195】
図6における動き情報復号部606に対して、多重分離部601より入力された動き情報ビットストリームが、動き情報ビットストリーム復号部3700に供給され、動き情報メモリ607より入力された動き情報が、予測ベクトル算出部3701、及び結合動き情報算出部3705に供給される。
【0196】
また、動き補償予測部608に対して、片方向動き補償予測復号部3703、双方向動き補償予測復号部3704、結合動き補償予測復号部3706、及び結合動き修正動き補償予測復号部3707から、動き補償予測に用いる参照画像指定情報と動きベクトルが出力され、予測方向を示す情報を含めた復号された動き情報が、動き情報メモリ607に格納される。
【0197】
動き情報ビットストリーム復号部3700は、多重分離部601より入力された動き情報ビットストリームを符号化シンタックスに従って復号していくことで、伝送された予測モードと、予測モードに応じた動き情報を生成する。生成した動き情報の中で、結合動き情報インデックスは、予測モードに応じて結合動き補償予測復号部3706、もしくは結合動き修正動き補償予測復号部3707に供給され、参照画像指定情報が予測ベクトル算出部3701に供給され、予測ベクトルインデックスがベクトル加算部3702に供給され、差分ベクトル値が予測モードに応じてベクトル加算部3702、もしくは結合動き修正動き補償予測復号部3707に供給される。
【0198】
予測ベクトル算出部3701は、動き情報ビットストリーム復号部3700より供給された参照画像指定情報と、結合動き情報算出部3705より供給された、結合動き情報候補リストとリスト内の構成要素である結合動き情報候補の参照画像指定情報と動きベクトル値から、動き補償予測の対象となる参照画像に対する結合動き情報候補リストに対する予測ベクトルを生成し、参照画像指定情報と共にベクトル加算部3702に供給する。予測ベクトル算出部3701の動作に関しては、図10の動画像符号化装置における予測ベクトル算出部1003と同一の動作が行われ、符号化時の予測ベクトルと同一の予測ベクトルが生成される。
【0199】
ベクトル加算部3702は、予測ベクトル算出部3701より供給された結合動き情報候補リストに対する予測ベクトル及び参照画像指定情報と、動き情報ビットストリーム復号部3700から供給された結合動き情報インデックス及び差分ベクトルより、結合動き情報インデックスで示された位置に登録された予測ベクトル値と差分ベクトル値を加算することで、動き補償予測対象となる参照画像に対しての動きベクトル値が再生される。再生された動きベクトル値は、参照画像指定情報と共に、予測モードに応じて片方向動き補償予測復号部3703、もしくは双方向動き補償予測復号部3704に供給される。
【0200】
片方向動き補償予測復号部3703は、ベクトル加算部3702より1つの参照画像に対する、再生された動きベクトル値と参照画像指定情報が供給され、動きベクトル値と参照画像指定情報を動き補償予測部608に設定することで、動き補償予測信号を生成する。
【0201】
双方向動き補償予測復号部3704は、ベクトル加算部3702より双方向の2つの参照画像に対する、再生された動きベクトル値と参照画像指定情報が供給され、動きベクトル値と参照画像指定情報を動き補償予測部608に設定することで、動き補償予測信号を生成する。
【0202】
結合動き情報算出部3705は、動き情報メモリ607から供給される隣接ブロックの動き情報より、結合動き情報候補リストを生成し、結合動き情報候補リストとリスト内の構成要素である結合動き情報候補の参照画像指定情報と動きベクトル値を、予測モードに応じて予測ベクトル算出部3701、結合動き補償予測復号部3706、もしくは結合動き修正動き補償予測復号部3707に供給する。
【0203】
結合動き情報算出部3705の動作に関しては、図10の動画像符号化装置における結合動き情報算出部1007と同一の動作が行われ、符号化時の結合動き情報候補リストと同一の候補リストが生成される。
【0204】
結合動き補償予測復号部3706は、結合動き情報算出部3705より供給される結合動き情報候補リストとリスト内の構成要素である結合動き情報候補の参照画像指定情報と動きベクトル値と、動き情報ビットストリーム復号部3700より供給される結合動き情報インデックスより、結合動き情報インデックスで示された結合動き情報候補リストにおける参照画像指定情報と動きベクトル値を再生し、動き補償予測部608に設定することで、動き補償予測信号を生成する。
【0205】
結合動き修正動き補償予測復号部3707は、結合動き情報算出部3705より供給される結合動き情報候補リストとリスト内の構成要素である結合動き情報候補の参照画像指定情報と動きベクトル値と、動き情報ビットストリーム復号部3700より供給される結合動き情報インデックスより、結合動き修正予測モードに対する動き情報を算出し、動き修正参照画像を確定する。そして、動き修正参照画像の動きベクトル値に対して差分ベクトル値を加算することで、双方向予測の参照画像指定情報と動きベクトル値を再生し、動き補償予測部608に設定することで、動き補償予測信号を生成する。
【0206】
図36は、図7のステップS701の詳細動作を説明するためのフローチャートである。動き情報ビットストリーム復号部3700、予測ベクトル算出部3701、結合動き情報算出部3705、及び結合動き修正動き補償予測復号部3707により、図7のステップS701における動き情報復号処理が行われる。
【0207】
動き情報復号処理は、図34のシンタックス構造で符号化された符号化ビットストリームより動き情報を復号する処理である。最初に符号化ブロックの所定単位でSkipフラグを復号する(S3800)。以降は予測ブロック単位の処理となる。SkipフラグがSkipモードを示している場合(S3801:YES)、結合予測動き情報復号を行う(S3802)。ステップS3802の詳細処理については、後述する。
【0208】
Skipモードでない場合(S3801:NO)、マージフラグを復号する(S3803)。マージフラグが1を示している場合(S3804:YES)、ステップS3802の結合予測動き情報復号に進む。
【0209】
マージフラグが1でない場合(S3804:NO)、マージMvdフラグを復号する(S3805)。マージMvdフラグが1でない場合(S3806:NO)、動き予測フラグを復号する(S3807)。動き予測フラグが片方向予測モードである場合(S3808:YES)、即ち図33におけるinter_pred_flagがPred_LCを示す場合、片方向予測動き情報復号を行う(S3809)。ステップS3809の詳細動作については、後述する。
【0210】
動き予測フラグが片方向予測モードを示していない場合(S3808:NO)、双方向予測動き情報復号が行われる(S3810)。また、マージMvdフラグが1である場合(S3806:YES)には、結合動き修正予測動き情報復号が行われる(S3811)。ステップS3810、及びステップS3811の詳細動作については、後述する。
【0211】
図37は、図36のステップS3802の詳細動作を説明するためのフローチャートである。図36のステップS3802では、結合予測動き情報復号処理が行われる。
【0212】
最初に予測モードに結合予測モードを設定し(S3900)、結合動き情報候補リストを生成する(S3901)。ステップS3901の処理は、図13のフローチャート内の、動画像符号化装置における結合動き情報候補リスト生成であるステップS1401と同一の処理である。
【0213】
結合動き情報候補リストが1よりも大きい場合(S3902:YES)、即ち複数の結合動き情報候補がある場合には、結合動き情報インデックスを復号し(S3903)、結合動き情報候補リストが1つの場合(S3902:NO)、結合動き情報インデックスに0を設定する(S3904)。
【0214】
続いて、結合動き情報候補リストより、結合動き情報インデックスで示す位置に格納されている動き情報を取得する(S3905)。取得する動き情報としては、片方向/双方向を示す予測方向、参照画像指定情報、動きベクトル値となる。生成された動き情報は、結合予測モードの動き情報として格納され(S3906)、結合動き補償予測復号部3706に供給される。
【0215】
図38は、図36のステップS3807の詳細動作を説明するためのフローチャートである。図36のステップS3807では、片方向予測動き情報復号処理が行われる。
【0216】
最初に、結合動き情報候補リストを生成する(S4000)。ステップS4000の処理は、図13のフローチャート内の、動画像符号化装置における結合動き情報候補リスト生成であるステップS1401と同一の処理である。結合動き情報候補リストが1よりも大きい場合(S4001:YES)、即ち複数の結合動き情報候補がある場合には、結合動き情報インデックスを復号し(S4002)、結合動き情報候補リストが1つの場合(S4001:NO)、結合動き情報インデックスに0を設定する(S4003)。
【0217】
続いて、結合動き情報リストより復号した結合動き情報インデックスに格納された動き情報を取得する(S4004)。次に、参照画像指定情報を復号し(S4005)、差分ベクトル値を復号する(S4006)。次に、復号した結合動き情報インデックスに対する予測ベクトル値を生成する(S4007)。ステップS4007の動作に関しては、動画像符号化装置における図29のステップS2904と同一の動作が行われる。
【0218】
続いて、復号した差分ベクトル値と生成された予測ベクトル値を加算することで動きベクトルを再生する(S4008)。生成された動き情報として、1つの参照画像に対する参照画像指定情報と動きベクトル値が、片方向予測モードの動き情報として格納され(S40089)、片方向動き補償予測復号部3703に供給される。
【0219】
図39は、図36のステップS3811の詳細動作を説明するためのフローチャートである。図36のステップS3811では、双方向予測動き情報復号処理が行われる。
【0220】
最初に、結合動き情報候補リストを生成する(S4100)。ステップS4100の処理は、図13のフローチャート内の、動画像符号化装置における結合動き情報候補リスト生成であるステップS1401と同一の処理である。結合動き情報候補リストが1よりも大きい場合(S4101:YES)、即ち複数の結合動き情報候補がある場合には、結合動き情報インデックスを復号し(S4102)、結合動き情報候補リストが1つの場合(S4101:NO)、結合動き情報インデックスに0を設定する(S4103)。
【0221】
続いて、結合動き情報リストより復号した結合動き情報インデックスに格納された動き情報を取得する(S4104)。次に、L0予測の参照画像指定情報を復号し(S4105)、差分ベクトル値を復号する(S4106)。次に、復号した結合動き情報インデックスに対するL0予測の予測ベクトル値を生成し(S4107)、復号した差分ベクトル値と生成されたL0予測の予測ベクトル値を加算することでL0予測に対する動きベクトルを再生する(S4108)。ステップS4107の動作に関しては、動画像符号化装置における図31のステップS3304と同一の動作が行われる。
【0222】
続いて、同様の動き情報復号処理がL1予測の参照画像に対して行われる。L1予測の参照画像指定情報を復号し(S4109)、差分ベクトル値を復号し(S4110)、復号した結合動き情報インデックスに対するL1予測の予測ベクトル値を生成し(S4111)、復号した差分ベクトル値と生成されたL1予測の予測ベクトル値を加算することでL1予測に対する動きベクトルを再生する(S4112)。ステップS4111の動作に関しては、動画像符号化装置における図31のステップS3306と同一の動作が行われる。
【0223】
生成された動き情報として、2つの参照画像に対する参照画像指定情報と動きベクトル値が、双方向予測モードの動き情報として格納され(S4113)、双方向動き補償予測復号部3704に供給される。
【0224】
図40は、図36のステップS3810の詳細動作を説明するためのフローチャートである。図36のステップS3810では、結合動き修正予測動き情報復号処理が行われる。
【0225】
最初に予測モードに結合動き修正予測モードを設定し(S4200)、結合動き情報候補リストを生成する(S4201)。ステップS4201では、動画像符号化装置における図13のフローチャートのステップS1401と同一の処理が行われる。
【0226】
結合動き情報候補リストが1よりも大きい場合(S4202:YES)、即ち複数の結合動き情報候補がある場合には、結合動き情報インデックスを復号し(S4203)、結合動き情報候補リストが1つの場合(S4202:NO)、結合動き情報インデックスに0を設定する(S4204)。
【0227】
続いて、結合動き情報候補リストより、結合動き情報インデックスで示す位置に格納されている動き情報を取得する(S4205)。取得する動き情報としては、片方向/双方向を示す予測方向、参照画像指定情報、動きベクトル値となる。
【0228】
次に、取得された結合動き情報インデックスと動き情報をもとに、結合動き修正動き補償予測復号部3707において、双方向動きベクトル値と差分ベクトルを伝送する参照画像確定処理を行う(S4206)。ステップS4206では、動画像符号化装置における図22のフローチャートのステップS2203と同一の処理が行われる。更に詳細な処理内容に関しては、図26、図27、図28に示されるフローチャートの処理が施され、動画像符号化装置と同じ双方向動きベクトル値と差分ベクトルを伝送する参照画像の確定が行われる。
【0229】
次に、確定した差分ベクトルを伝送する参照画像である動き修正参照画像に対して、動き情報として格納された修正前の動きベクトル値に対する、差分ベクトルを復号し(S4207)、修正前の動きベクトル値に差分ベクトルを加算することで、動き修正参照画像の動きベクトル値を算出する(S4208)。
【0230】
結合動き情報インデックスで示す位置に格納されている動き情報に対して、予測方向は双方向に設定されると共に、動き情報が片方向予測であった場合の第2参照画像を指定する参照画像指定情報と動き修正参照画像における更新された動きベクトル値が、動き情報として格納され(S4209)、結合動き修正動き補償予測復号部3707より、図6における動き補償予測部608及び動き情報メモリ607に出力される。
【0231】
実施の形態1における、動画像符号化装置及び動画像復号装置においては、従来の動画像符号化手法であるAVCにおける動き補償予測に対して、より多くの隣接ブロックの動き情報を選択候補として用いることで、周囲の動き情報をより有効に利用できる候補として登録し、周囲の動き情報に対して動きベクトル値の修正情報を差分ベクトルとして符号化する構成を取る新規の予測モードである結合動き修正予測モードを用いた。これにより、動き情報の相関性が高いが動きの連続性が十分保たれていない場合や、他ブロックの動き情報における動きベクトルが予測残差を符号化した際の歪などの要因で正確な動きに対してずれを生じている場合などに、隣接ブロックから生成される動き情報に対して、少ない情報で適切な動きベクトルの修正が出来、少ない付加情報で予測残差が少ない動き補償予測信号を生成する、符号化装置及び復号装置を実現できる。
【0232】
また、実施の形態1における、動画像符号化装置及び動画像復号装置においては、動きベクトルを修正する参照画像の設定を、周囲の動き情報に格納された予測モードや周囲の動き情報から結合する動き情報を取得する際の取得方法を基準に、結合する動き情報における動きベクトルの信頼度を評価し、修正する必要のある参照画像を特定する。これにより、符号化時に伝送する指定情報を追加せずに、適切な動きベクトルの修正を可能とする効果を有する。
【0233】
また、実施の形態1における、動画像符号化装置及び動画像復号装置においては、結合予測モードと共用して結合動き修正予測モードの基準参照画像及び基準動きベクトルが決定・算出される。更に、動き検出予測モードにおいても、結合予測モード及び結合動き修正予測モードと、予測ベクトルに使用する隣接ブロックを指定する情報(インデックス)を共用することにより、結合動き情報候補リストの生成処理を同一処理で構成可能となり、処理負荷を削減しつつ付加情報を少なく符号化できる結合動き修正予測モード及び、動き検出予測モードを具備することができる。動き情報に関する付加符号量を段階的に増加させた、結合予測モード、結合動き修正予測モードと、動き修正予測モードの3つの予測モードを具備することによって、付加符号量と予測誤差符号量のバランスが最適な予測モードを選択することが可能であり、符号化効率を向上させることができる。
【0234】
また、実施の形態1における、動画像符号化装置及び動画像復号装置においては、少ない負荷と符号量で双方向予測を行う結合動き修正予測モードを増やすことができ、以降に符号化・復号するブロックで参照する隣接ブロックの動き情報を増やすことができるため、符号化効率を向上させることができる。
【0235】
実施の形態1における、動画像符号化装置及び動画像復号装置においては、動き補償予測モードとして、動き検出モード、結合予測モード、結合動き修正予測モードの3つの予測モードを全て備えている構成となっている。この点、3つの予測モードを全て備えていない場合においても、共通の動きベクトルや参照画像指定情報及び予測方向を含めた動き情報を格納した隣接ブロックのリストをもとに、動き検出モードの予測ベクトルを生成する処理を具備した構成において、1つの隣接ブロックを指定する情報(インデックス)で双方向予測の場合に2つの動きベクトルに対する予測ベクトルを算出でき、少ないインデックス伝送で有効な予測ベクトルを生成できる効果がある。
【0236】
また、実施の形態1の構成において、動き検出モードと結合予測モードのみ、もしくは動き検出モードと結合動き修正予測モードのみが備わっている構成においても、3つの予測モードを全て備えている構成の場合と同様に、結合動き情報候補リストの生成処理を同一処理で構成可能であり、処理負荷を削減しつつ付加情報を少なく符号化することができる効果を有する。
【0237】
更に、実施の形態1の構成において、動き検出モードと結合予測モードのみで予測モードが構成される場合においては、動画像符号化装置における図10の結合動き修正動き補償予測生成部1009と、図13のフローチャートにおけるステップS1402が不要となり、動画像復号装置における図35の結合動き修正動き補償予測復号部3707と、図36のフローチャートにおけるステップS3811が不要となり、更に処理負荷を削減することが可能である。
【0238】
(実施の形態2)
次に、本発明の実施の形態2についての説明を行う。実施の形態2においては、実施の形態1に対して、結合予測モード、結合動き修正予測モード、動き検出モードの各モードにおいて、同一の結合動き情報候補リストをもとにしたうえで、動き情報を生成するための隣接ブロックを指定する情報(インデックス)の最大数を異なる値に指定する構成をとる。
【0239】
実施の形態1における、結合動き情報候補リストとして生成される動き情報のインデックスをnum_of_indexとする場合に、実施の形態2においては、結合動き修正予測モード及び動き検出モードにおける結合動き情報のインデックスの最大数を特定値で制限する。ここでは、結合動き修正予測モードのインデックスの最大値をmax_index_of_mergemvd、動き検出モードのインデックスの最大値をmax_index_of_mergemvpとする。これらの値は、暗黙で固定値に特定されて符号化装置、復号装置のそれぞれに適用されることも可能であるが、シーケンスや画像単位などの所定単位で、上記値を特定するための情報が伝送され、符号化装置と復号装置で同一の特定値を設定することも可能である。
【0240】
実施の形態2においては、実施の形態1と同一の構成及び同一の処理を有するが、符号化装置における、図22の結合動き修正予測モード評価値生成フローチャートのステップS2201、図29の片方向予測評価値生成フローチャートのステップS2902、及び図31の双方向予測評価値生成フローチャートのステップS3302における、インデックスiのループ処理が異なる。具体的には、S2201におけるループ回数がnum_of_indexから、min(num_of_index,max_index_of_mergemvd)に、S2901及びS3302におけるループ回数がnum_of_indexから、min(num_of_index,max_index_of_mergemvp)に代わる処理となる。
【0241】
実施の形態2における動画像符号化装置においては、結合動き修正予測モード及び動き検出モードの評価値を生成し、最適な結合動き情報インデックスを特定するための評価値算出処理のループ回数を削減することが可能となり、符号化処理を簡略化することが可能となる。
【0242】
また、実施の形態2においては、実施の形態1に対して、動画像符号化装置及び動画像復号装置における、結合動き情報のインデックスの符号化データが異なる。図41に一例として、結合動き情報候補数が、結合予測モードで5、結合動き修正予測モードで4、動き検出予測モードで3の場合におけるインデックスの符号化に用いる、Truncated Unary符号列を示す。
【0243】
結合動き修正予測モードにおいては、結合動き情報に対して動きベクトルを修正するための差分ベクトルを伝送可能なため、動き情報の精度が十分でない場合にも差分ベクトルにより、正確な動きベクトル値を表現可能である。従って、結合動き修正予測モードは動き情報をそのまま用いる結合予測モードに対して、少ない結合動き情報の候補からの選択においても、良好な動き補償予測ブロックの生成が可能である。更に、図41に示すようにTruncated Unary符号列でインデックスを符号化する構成においては、結合動き情報の候補を制限することにより、結合動き修正予測モードで使用するインデックスの最大値に対する符号ビット数を結合予測モードより1ビット少なくすることが可能であり、インデックスに要する符号量も削減することが出来る。
【0244】
同様に、動き検出予測モードにおいても、結合動き情報に対して参照画像を選択する参照画像指定情報と動きベクトルを修正するための差分ベクトルを伝送可能なため、動き情報の精度が十分でない場合や、より精度の良い予測が可能な参照画像が存在する場合に、差分ベクトルと参照画像指定情報により、少ない結合動き情報の候補からの選択においても、精度の良い動き補償予測ブロックの生成を可能とする。動き検出予測モードにおいても、図41に示す構成で、動き検出予測モードで使用するインデックスの最大値に対する符号ビット数を結合予測モードより1ビット少なく出来、インデックスに要する符号量を削減できる。
【0245】
図42に、実施の形態2における動き情報符号化データ生成処理によって生成される符号化ストリームのシンタックスの一例を示す。図32に示した実施の形態1における符号化ストリームのシンタックスに対して、インデックスが伝送及び受信される条件が変わると共に、最大候補数に依存して符号化列が変化するため、インデックス情報としては異なる値として符号化・復号される構成となる。
【0246】
(実施の形態3)
次に、本発明の実施の形態3についての説明を行う。実施の形態3においては、実施の形態2と同様、結合予測モード、結合動き修正予測モード、動き検出モードの各モードにおいて、同一の結合動き情報候補リストをもとにしたうえで、結合動き情報候補数の最大数を異なる値に指定すると共に、候補内のインデックス順を変える構成をとる。
【0247】
実施の形態3においては、結合動き情報候補リストとして生成される動き情報のインデックスをnum_of_indexとする場合に、結合予測モード及び動き検出モードにおける結合動き情報のインデックスの最大数を特定値で制限する。ここでは、結合予測モードのインデックスの最大値をmax_index_of_merge、動き検出モードのインデックスの最大値をmax_index_of_mergemvpとする。
【0248】
実施の形態3においては、実施の形態2と同様の構造と処理をとるが、結合動き修正予測モードの候補インデックスがiである場合に、結合予測モードのインデックスi_mergeを下記式4で算出する。
i_merge=min(num_of_index,max_index_of_merge)−i−1 ・・・(式4)
【0249】
また、同様に、結合予測モードの候補インデックスがiである場合に、動き検出モードのインデックスi_mergemvpを下記式5で算出する。
i_mergemvp=min(num_of_index,max_index_of_mergemvp)−i−1 ・・・(式5)
【0250】
図43に一例として、結合動き情報候補数が、結合動き修正予測モードで5、結合予測モードが4、動き検出予測モードが3の場合におけるインデックスの符号化に用いる、Truncated Unary符号列を示す。
【0251】
上記インデックスの変換が行われることにより、結合予測モード、結合動き修正予測モード、動き検出モードの各モードにおいて、同一の結合動き情報候補リストをもとにしたうえで、各予測モードにおいて適用可能な結合動き情報の候補の優先順を変えることが可能である。結合動き情報候補のそれぞれに対して、3つの予測モードで異なるインデックスの重みをつけることで、結合動き情報候補の動き情報に対して少ない補正で品質の良い動き補償予測が可能な場合に、少ない動き情報伝送を可能とする予測モードを3つの予測モードから適切に選択することが出来、符号化効率を高めることができる。
【0252】
また、結合動き情報の動き情報をそのまま用いる結合予測モードと、動き情報を修正することを可能とする結合動き修正予測モードや動き検出予測モードとで、小さなインデックスで少しの差分ベクトルを伝送する状態で複数の同程度の少ない符号量で、同等の動き情報の伝送が行われる情報の偏りを防ぎ、複数の結合動き情報候補を有効な動き情報として用いることが可能となる。
【0253】
実施の形態3における、各予測モードにおける結合動き情報候補数の設定と、インデックス順の変換処理に関しては、説明した構成だけでなく、様々な組み合わせで実現することが可能であり、各予測モードの特性や発生頻度に応じた形で決めることが可能である。
【0254】
以上述べた実施の形態において、双方向予測が利用可能なピクチャ(Bピクチャ)を前提に説明したが、双方向予測を有さないピクチャ(Pピクチャ)においても、本発明を適用することは可能である。つまり、本発明をPピクチャに適用すると、結合動き修正予測モードでは、常に片方向予測で動き補償を行うことになり、結合予測モードで指定される参照画像と同一の参照画像に対して差分ベクトルを加算し、動きベクトルを修正する処理を行う。
【0255】
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
【0256】
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
【0257】
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
【0258】
また、以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(Read Only Memory)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
【0259】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0260】
100 入力端子、 101 減算部、 102 直交変換・量子化部、 103 予測誤差符号化部、 104 逆量子化・逆変換部、 105 加算部、 106 復号画像メモリ、 107 動きベクトル検出部、 108 動き補償予測部、 109 予測モード判定部、 110 動き情報符号化部、 111 動き情報メモリ、 112 多重化部、 113 出力端子、 600 入力端子、 601 多重分離部、 602 予測差分情報復号部、 603 逆量子化・逆変換部、 604 加算部、 605 復号画像メモリ、 606 動き情報復号部、 607 動き情報メモリ、 608 動き補償予測部、 609 出力端子、 1000 片方向動き補償予測生成部、 1001 双方向動き補償予測生成部、 1002 予測誤差算出部、 1003 予測ベクトル算出部、 1004 差分ベクトル算出部、 1005 動き情報符号量算出部、 1006 予測モード評価部、 1007 結合動き情報算出部、 1008 結合動き補償予測生成部、 1009 結合動き修正動き補償予測生成部、 1200 結合動き情報候補リスト生成部、 1201 結合動き情報候補リスト削除部、 1300 基準参照画像・動き修正参照画像選択部、 1301 動き修正参照画像動きベクトル取得部、 1302 結合動き情報修正動き補償予測生成部、 1303 差分ベクトル算出部、 3700 動き情報ビットストリーム復号部、 3701 予測ベクトル算出部、 3702 ベクトル加算部、 3703 片方向動き補償予測復号部、 3704 双方向動き補償予測復号部、 3705 結合動き情報算出部、 3706 結合動き補償予測復号部、 3707 結合動き修正動き補償予測復号部。

【特許請求の範囲】
【請求項1】
動画像の各ピクチャを分割したブロック単位で動きベクトルを検出して符号化する画像符号化装置であって、
符号化対象ブロックに空間的又は時間的に隣接する複数の参照ブロック候補を登録した候補リストを生成する候補リスト生成部と、
前記符号化対象ブロックの予測信号を参照画像内で探索することにより検出された第1動きベクトルを使用して生成する第1予測モードと、前記符号化対象ブロックの予測信号を前記候補リストから選択された参照ブロックの動き情報を使用して生成する第2予測モードを選択可能な予測モード判定部と、
前記予測モード判定部から供給される予測信号と、前記符号化対象ブロックの画像信号との差分である予測誤差信号を符号化する予測誤差信号符号化部と、
前記予測モード判定部から供給される動き情報を符号化する動き情報符号化部と、
前記予測誤差信号符号化部から供給される符号化データと、前記動き情報符号化部から供給される符号化データとを多重化する多重化部と、を備え、
前記動き情報符号化部は、前記第1予測モードにおいて、前記候補リストから選択された参照ブロックの動き情報に含まれる第2動きベクトルと前記第1動きベクトルとの差分ベクトル、及び前記第1動きベクトルの参照画像を特定するための情報を符号化し、前記第2予測モードにおいて、前記候補リストから選択された参照ブロックの動き情報を特定するための情報を符号化する、
ことを特徴とする画像符号化装置。
【請求項2】
前記動き情報符号化部は、前記第1予測モードにおいて、前記第2動きベクトルを特定するための情報として、前記候補リストから当該第2動きベクトルを含む動き情報を特定するための情報を符号化する、
ことを特徴とする請求項1に記載の画像符号化装置。
【請求項3】
前記第2予測モードには、前記符号化対象ブロックの予測信号を前記候補リストから選択された参照ブロックの動き情報をそのまま使用して生成する予測モードと、前記符号化対象ブロックの予測信号を前記候補リストから選択された参照ブロックの動き情報に含まれる第2動きベクトルを前記第1動きベクトルを用いて修正して使用する予測モードがあり、
前記予測モード判定部は、それら二つの予測モードの少なくとも一方を選択可能である、
ことを特徴とする請求項1または2に記載の画像符号化装置。
【請求項4】
動画像の各ピクチャを分割したブロック単位で動きベクトルを検出して符号化する画像符号化方法であって、
符号化対象ブロックに空間的又は時間的に隣接する複数の参照ブロック候補を登録した候補リストを生成するステップと、
前記符号化対象ブロックの予測信号を参照画像内で探索することにより検出された第1動きベクトルを使用して生成する第1予測モードと、前記符号化対象ブロックの予測信号を前記候補リストから選択された参照ブロックの動き情報を使用して生成する第2予測モードを選択するステップと、
選択された予測モードで生成された予測信号と、前記符号化対象ブロックの画像信号との差分である予測誤差信号を符号化するステップと、
選択された予測モードで使用される動き情報を符号化するステップと、
前記予測誤差信号の符号化データと、前記動き情報の符号化データとを多重化するステップと、を備え、
前記動き情報を符号化するステップは、前記第1予測モードにおいて、前記候補リストから選択された参照ブロックの動き情報に含まれる第2動きベクトルと前記第1動きベクトルとの差分ベクトル、及び前記第1動きベクトルの参照画像を特定するための情報を符号化し、前記第2予測モードにおいて、前記候補リストから選択された参照ブロックの動き情報を特定するための情報を符号化する、
ことを特徴とする画像符号化方法。
【請求項5】
動画像の各ピクチャを分割したブロック単位で動きベクトルを検出して符号化する画像符号化プログラムであって、
符号化対象ブロックに空間的又は時間的に隣接する複数の参照ブロック候補を登録した候補リストを生成する処理と、
前記符号化対象ブロックの予測信号を参照画像内で探索することにより検出された第1動きベクトルを使用して生成する第1予測モードと、前記符号化対象ブロックの予測信号を前記候補リストから選択された参照ブロックの動き情報を使用して生成する第2予測モードを選択する処理と、
選択された予測モードで生成された予測信号と、前記符号化対象ブロックの画像信号との差分である予測誤差信号を符号化する処理と、
選択された予測モードで使用される動き情報を符号化する処理と、
前記予測誤差信号の符号化データと、前記動き情報の符号化データとを多重化する処理と、をコンピュータに実行させ、
前記動き情報を符号化する処理は、前記第1予測モードにおいて、前記候補リストから選択された参照ブロックの動き情報に含まれる第2動きベクトルと前記第1動きベクトルとの差分ベクトル、及び前記第1動きベクトルの参照画像を特定するための情報を符号化し、前記第2予測モードにおいて、前記候補リストから選択された参照ブロックの動き情報を特定するための情報を符号化する、
ことを特徴とする画像符号化プログラム。

【図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

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate


【公開番号】特開2013−42241(P2013−42241A)
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願番号】特願2011−176319(P2011−176319)
【出願日】平成23年8月11日(2011.8.11)
【出願人】(308036402)株式会社JVCケンウッド (1,152)
【Fターム(参考)】