以下、図面とともに本発明の実施の形態に係る動画像符号化装置、動画像符号化方法、動画像符号化プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラムの好適な実施の形態について詳細に説明する。なお、図面の説明には同一要素には同一符号を付与して重複する説明を省略する。
(実施の形態1)
[動画像符号化装置全体構成]
図1は、本発明の実施の形態1に係る動画像符号化装置の構成を示す図である。以下、各部の動作について説明する。実施の形態1に係る動画像符号化装置は、入力端子100、減算部101、直交変換・量子化部102、予測誤差符号化部103、逆量子化・逆変換部104、加算部105、復号画像メモリ106、動きベクトル検出部107、動き補償予測部108、予測モード判定部109、動き情報符号化部110、動き情報メモリ111、多重化部112、及び出力端子113を備える。
入力端子100より入力される画像信号から符号化処理対象の予測ブロックの画像信号が、予測ブロックの位置情報と予測ブロックサイズに基づいて切り出され、予測ブロックの画像信号は、減算部101、動きベクトル検出部107及び予測モード判定部109に供給される。
図2は、符号化対象画像の一例を示す図である。実施の形態1に係る予測ブロックサイズに関しては、図2に示すように符号化対象画像が64×64画素の符号化ブロック(CU)単位で符号化処理され、予測ブロックは符号化ブロックが更に分割された単位で構成される。最大予測ブロックサイズは符号化ブロックと同じ64×64画素で、最小予測ブロックサイズは4×4画素である。符号化ブロックの予測ブロックへの分割構成は、非分割(2N×2N)、水平・垂直への分割(N×N)、水平方向のみへの分割(2N×N)、垂直方向のみへの分割(N×2N)が可能である。水平・垂直への分割の場合のみ、更に分割された予測ブロックを符号化ブロックとして階層的に予測ブロックに分割でき、その階層をCU分割数で表現する。
図3は、予測ブロックサイズの詳細な定義を示す図である。CU分割数が0であって最大の予測ブロックサイズである64画素×64画素から、CU分割数が3であって最小の予測ブロックサイズである4画素×4画素までの13の予測ブロックサイズが存在することになる。
本発明の実施の形態1に係る予測ブロックの分割構成に関して、この組み合わせに限定されない。また、動画像符号化装置における予測ブロックサイズの選択は、符号化ブロック単位で符号化効率のより良い構造を適応的に選択することが可能であるが、実施の形態1は予測ブロック単位での画面間予測及び画面間動き情報の符号化に注目したものであるため、最適な予測ブロックサイズの選択に関する構成要素及び説明を省略する。以降の動画像符号化装置の動作に関しては、選択した予測ブロックサイズ単位で施される動作を説明する。
図1に戻り、減算部101は、入力端子100より供給される画像信号と予測モード判定部109より供給される予測信号を減算して予測誤差信号を算出し、予測誤差信号を直交変換・量子化部102に供給する。
直交変換・量子化部102は、減算部101より供給される予測誤差信号に直交変換及び量子化を施し、量子化された予測誤差信号を予測誤差符号化部103及び逆量子化・逆変換部104に供給する。
予測誤差符号化部103は、直交変換・量子化部102より供給される量子化された予測誤差信号をエントロピー符号化して、予測誤差信号に対する符号列を生成して、多重化部112に供給する。
逆量子化・逆変換部104は、直交変換・量子化部102より供給される量子化された予測誤差信号に対して、逆量子化や逆直交変換などの処理を行い、復号予測誤差信号を生成し加算部105に供給する。
加算部105は、逆量子化・逆変換部104より供給される復号予測誤差信号と、予測モード判定部109より供給される予測信号を加算して、復号画像信号を生成し、復号画像信号を復号画像メモリ116に供給する。
復号画像メモリ106は、加算部105より供給される復号画像信号を格納する。また、画像全体の復号が完了した復号画像については参照画像として1以上の所定画像数記憶し、参照画像信号を動きベクトル検出部107と動き補償予測部108に供給する。
動きベクトル検出部107は、入力端子100より供給される予測ブロックの画像信号と、復号画像メモリ106に記憶された参照画像信号の入力を受けて、各参照画像に対する動きベクトルを検出し、動きベクトル値を予測モード判定部109に供給する。
一般的な動きベクトルの検出方法は、画像信号と同一位置より所定の移動量だけ移動させた参照画像に相当する画像信号について誤差評価値を算出し、誤差評価値が最小となる移動量を動きベクトルとする。誤差評価値としては、画素毎の差分絶対値の総和SAD(Sum of Absolute Difference)や、画素毎の二乗誤差値の総和SSE(Sum of Square Error)等を利用する。さらに、動きベクトルの符号化に関わる符号量も誤差評価値に含めることも可能である。
動き補償予測部108は、予測モード判定部109より指定される参照画像指定情報と、動きベクトル値に従って、復号画像メモリ106内の参照画像指定情報で示される参照画像を、動きベクトル値だけ予測ブロックの画像信号と同一位置より移動させた位置の画像信号を取得して予測信号を生成する。
予測モード判定部109より指定される予測モードが片方向予測の場合には、1つの参照画像から取得した予測信号を動き補償予測信号とし、予測モードが双方向予測の場合には、2つの参照画像から取得した予測信号を重みづけ平均したものを動き補償予測信号とし、動き補償予測信号を予測モード判定部109に供給する。ここでは双方向予測の重みづけ平均の比率を1:1とする。
図4(a)〜(d)は、動き補償予測の予測方向について説明するための図である。単一の参照画像からの予測を行う処理を片方向予測と定義し、片方向の場合はL0方向またはL1方向という2つの参照画像管理リストに登録された参照画像のいずれか一方を利用する。
図4(a)は片方向であってL0方向の参照画像(RefL0Pic)が符号化対象画像(CurPic)より前の時刻にある場合を示している。図4(b)は片方向であってL0方向の参照画像が符号化対象画像より後の時刻にある場合を示している。同様に、図4(a)および図4(b)のL0方向の参照画像をL1方向の参照画像(RefL1Pic)に置き換えて片方向予測を行うこともできる。
2つの参照画像からの予測を行う処理を双方向予測と定義し、双方向の場合はL0方向とL1方向の双方を利用してBI方向と表現する。図4(c)は双方向であってL0方向の参照画像が符号化対象画像より前の時刻にあって、L1方向の参照画像が符号化対象画像より後の時刻にある場合を示している。図4(d)は双方向であってL0方向の参照画像とL1方向の参照画像が符号化対象画像より前の時刻にある場合を示している。このように、L0/L1の予測方向と時間の関係は、L0が過去方向、L1が未来方向とは限定されずに用いることが可能である。
実施の形態1では、参照画像及び符号化対象画像の時刻を示す情報としてPOC(Picture Order Count)を用いる。POCはAVCで定義された画像の表示順序を示すカウンタである。画像の表示順序が1増加するとPOCも1増加する。したがって、画像間のPOC差から画像間の時間差(距離)を取得できる。
図1に戻り、予測モード判定部109は、動きベクトル検出部107より入力される各参照画像に対して検出された動きベクトル値と、動き情報メモリ111に格納された動き情報(予測方向、動きベクトル値、及び参照画像指定情報)をもとに、実施の形態1において定義した動き補償予測モードのそれぞれに対して用いられる、参照画像指定情報と動きベクトル値を動き補償予測部108に設定する。設定した値によって、動き補償予測部108から供給される動き補償予測信号と、入力端子100より供給される予測ブロックの画像信号を用いて、最適な動き補償予測モードを決定する。
予測モード判定部109は、決定した予測モード、及び予測モードに応じた予測方向、動きベクトル、及び参照画像指定情報を特定する情報を、動き情報符号化部110に供給し、決定した予測モード及びその予測モードに対する、予測方向、動きベクトル値、及び参照画像指定情報を動き情報メモリ111に供給すると共に、減算部101及び加算部105に決定した予測モードに対応する予測信号を供給する。
動画像符号化装置において、基準とする参照画像を符号化するために同一画面内の符号化済画像を用いて予測を行う画面内予測が行われるが、実施の形態1は画面間予測に注目したものであるため、画面内予測に関連する構成要素は省略する。予測モード判定部109の詳細な構成については後述する。
動き情報符号化部110は、予測モード判定部109より供給される予測モード、及び予測モードに応じた予測方向、動きベクトル、及び参照画像指定情報を特定する情報を所定のシンタックス構造に従って符号化することで、動き情報の符号列を生成し、多重化部112に供給する。動き情報符号化部110の詳細な構成については後述する。
動き情報メモリ111は、予測モード判定部109より供給される動き情報(予測方向、動きベクトル、及び参照画像インデックス)を、最小予測ブロックサイズ単位を基準として所定画像分記憶する。処理対象の予測ブロックの隣接ブロックの動き情報を空間候補ブロック群とし、処理対象の予測ブロックと同一位置にあるColPic上のブロックとその周辺ブロックの動き情報を時間候補ブロック群とする。
ColPicとは、処理対象の予測ブロックとは別の復号済みの画像であって、復号画像メモリ106に参照画像として記憶されている。実施の形態1では、ColPicは直前に復号した参照画像とする。なお、実施の形態1では、ColPicは直前に復号した参照画像としたが、表示順で直前の参照画像や表示順で直後の参照画像でもよく、符号化ストリーム中に、ColPicに用いる参照画像を直接指定することも可能である。
動き情報メモリ111は、空間候補ブロック群と時間候補ブロック群の動き情報を、候補ブロック群の動き情報として予測モード判定部109に供給する。多重化部112は、予測誤差符号化部103から供給される予測誤差の符号化列と、動き情報符号化部110から供給される動き情報の符号化列を多重化することで符号化ビットストリームを生成し、出力端子113経由で、記録媒体・伝送路等に当該符号化ビットストリームを出力する。
図1に示した動画像符号化装置の構成は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置等のハードウェアによっても実現可能である。
図5は、本発明の実施の形態1に係る動画像符号化装置における符号化処理の動作の流れ示すフローチャートである。予測ブロック単位毎に、入力端子100より処理対象の予測ブロック画像を取得する(S500)。動きベクトル検出部107は、処理対象の予測ブロック画像と復号画像メモリ106に格納された複数の参照画像より、参照画像毎の動きベクトル値を算出する(S501)。
続いて、予測モード判定部109は、動きベクトル検出部107より供給される動きベクトルと、動き情報メモリ111に格納された動き情報を用いて、実施の形態1において定義した動き補償予測モードのそれぞれに対する予測信号を、動き補償予測部108を用いて取得し、最適な予測モードを選択し、予測信号を生成する(S502)。ステップS502の処理の詳細については後述する。
続いて、減算部101は、処理対象の予測ブロック画像と予測モード判定部109より供給された予測信号との差分を予測誤差信号として算出する(S503)。動き情報符号化部110は、予測モード判定部109より供給される予測モード、及び予測モードに応じた予測方向、動きベクトル、及び参照画像指定情報を特定する情報を所定のシンタックス構造に従って符号化し、動き情報の符号化データを生成する(S504)。ステップS504の処理の詳細については後述する。
続いて、予測誤差符号化部103は、直交変換・量子化部102で生成された量子化された予測誤差信号をエントロピー符号化して、予測誤差の符号化データを生成する(S505)。多重化部112は、動き情報符号化部110から供給される動き情報の符号化データと、予測誤差符号化部103から供給される予測誤差の符号化データを多重化し、符号化ビットストリームを生成する(S506)。
加算部105は、逆量子化・逆変換部104より供給される復号予測誤差信号と、予測モード判定部109より供給される予測信号を加算して、復号画像信号を生成する(S507)。加算部105によって、生成された復号画像信号が復号画像メモリ106に供給、格納され、以降に符号化する符号化画像の動き補償予測処理に用いられる(S508)。動き情報メモリ111は、動きベクトル検出部107より供給される動き情報(予測方向、動きベクトル、及び参照画像指定情報)を最小の予測ブロックサイズ単位で格納する(S509)。
[動画像復号装置全体構成]
図6は、本発明の実施の形態1に係る動画像復号装置の構成を示す図である。以下、各部の動作について説明する。実施の形態1に係る動画像復号装置は、入力端子600、多重分離部601、予測差分情報復号部602、逆量子化・逆変換部603、加算部604、復号画像メモリ605、動き情報復号部606、動き情報メモリ607、動き補償予測部608、及び出力端子609を備える。
入力端子600より符号化ビットストリームが多重分離部601に供給される。多重分離部601は、供給された符号化ビットストリームの符号列を予測誤差情報の符号化列と、予測モード、並びに予測モードに応じた予測方向、動きベクトル、及び参照画像指定情報を特定する情報で構成される動き情報の符号化列に分離する。当該予測誤差情報の符号化列を予測差分情報復号部602に供給し、当該動き情報の符号化列を動き情報復号部606に供給する。
予測差分情報復号部602は、多重分離部601より供給された予測誤差情報の符号化列を復号し、量子化された予測誤差信号を生成する。予測差分情報復号部602は、生成した量子化された予測誤差信号を逆量子化・逆変換部603に供給する。
逆量子化・逆変換部603は、予測差分情報復号部602より供給される量子化された予測誤差信号を逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、復号予測誤差信号を加算部604に供給する。
加算部604は、逆量子化・逆変換部603より供給される復号予測誤差信号と、動き補償予測部608より供給される予測信号を加算して復号画像信号を生成し、復号画像信号を復号画像メモリ605に供給する。
復号画像メモリ605は、図1の動画像符号化装置における復号画像メモリ106と同じ機能を有し、加算部604から供給された復号画像信号を格納し、参照画像信号を動き補償予測部608に供給する。また、復号画像メモリ605は、格納された復号画像信号を再生時刻に合わせて、画像の表示順序に従い出力端子609に供給する。
動き情報復号部606は、多重分離部601より供給される動き情報の符号化列より、予測モード、並びに予測モードに応じた予測方向、動きベクトル、及び参照画像指定情報を特定する情報を動き情報として復号する。復号した動き情報と、動き情報メモリ607より供給される候補ブロック群の動き情報より、動き補償予測に用いる予測方向、動きベクトル及び参照画像指定情報を再生し、動き補償予測部608に供給する。また、動き情報復号部606は再生した動き情報を、動き情報メモリ607に供給する。動き情報復号部606の詳細な構成については後述する。
動き情報メモリ607は、図1の動画像符号化装置における動き情報メモリ111と同じ機能を持ち、動き情報復号部606より供給される再生した動き情報を最小予測ブロックサイズ単位を基準として所定画像分記憶する。また、動き情報メモリ607は、空間候補ブロック群と時間候補ブロック群の動き情報を、候補ブロック群の動き情報として動き情報復号部606に供給する。
動き補償予測部608は、図1の動画像符号化装置における動き補償予測部108と同じ機能を持ち、動き情報復号部606より供給される動き情報に基づいて、復号画像メモリ605内の参照画像指定情報が示す参照画像を、動きベクトル値だけ予測ブロックの画像信号と同一位置より移動させた位置の画像信号を取得して予測信号を生成する。動き補償予測の予測方向が双方向であれば、各予測方向の予測信号を平均したものを予測信号として生成し、予測信号を加算部604に供給する。
出力端子609は、復号画像メモリ605より供給された復号画像信号を、ディスプレイなどの表示媒体に出力することで、復号画像信号が再生される。
図6に示した動画像復号装置の構成も、図1に示した動画像符号化装置の構成と同様に、CPU、フレームメモリ、ハードディスクなどを備える情報処理装置等のハードウェアによっても実現可能である。
図7は、本発明の実施の形態1に係る動画像復号装置における復号処理の動作の流れを示すフローチャートである。多重分離部601は、入力端子600より供給された符号化ビットストリームを予測誤差情報の符号化列と、動き情報の符号化列に分離する(S700)。分離された動き情報の符号化列は動き情報復号部606に供給され、動き情報メモリ607より供給される候補ブロック群の動き情報を用いて、復号対象ブロックの動き情報を復号する(S701)。
分離された予測誤差情報の符号化列は、予測差分情報復号部602に供給され、量子化された予測誤差信号として復号され、逆量子化・逆変換部603で逆量子化や逆直交変換などの処理を施されることで、復号予測誤差信号が生成される(S702)。ステップS702の処理の詳細については後述する。
動き情報復号部606より、復号対象ブロックの動き情報が動き補償予測部608に供給され、動き補償予測部608は動き情報にしたがって動き補償予測を行い予測信号を算出する(S703)。加算部604は、逆量子化・逆変換部603から供給された復号予測誤差信号と、動き補償予測部608から供給された予測信号とを加算し、復号画像信号を生成する(S704)。
加算部604より供給された復号画像信号は、復号画像メモリ605に格納される(S705)と共に、動き情報復号部606より供給された復号対象ブロックの動き情報が動き情報メモリ607に格納される(S706)。これで、予測ブロック単位の復号処理が終了する。
[実施の形態1の詳細機能説明]
本発明の実施の形態1に係る動画像符号化装置の予測モード判定部109及び動き情報符号化部110の動作、図5のフローチャートにおけるステップS502及びステップS504の処理、並びに本発明の実施の形態1に係る動画像復号装置における動き情報復号部606の動作、図7のフローチャートにおけるステップS702の処理の詳細動作を、以下説明する。
[実施の形態1における動き補償予測モードの定義]
図8(a)、(b)は、本発明の実施の形態1における動き補償予測において使用される動き情報を符号化するための3つの予測モードを説明するための図である。第一の予測モードは、予測対象ブロックと当該予測対象ブロックに隣接する符号化済ブロックにおける時間方向や空間方向の動きの連続性を用いて、当該予測対象ブロックは自身の動き情報を直接符号化せずに、空間及び時間的に隣接するブロックの動き情報を符号化に使用する手法であり、結合予測モード(マージモード)と呼ぶ。
結合予測モードの場合には、複数の隣接ブロック候補より選択的に結合する動き情報が定義でき、動き情報は使用する隣接ブロックを指定する情報(インデックス)を符号化することで、指定情報をもとに取得した動き情報をそのまま動き補償予測に用いる。更に、結合予測モードにおいては、予測差分情報を符号化伝送せずに、結合予測モードで予測された予測信号を復号ピクチャとするSkipモードを定義し、結合した動き情報のみの少ない情報で復号画像が再生できる構成を有する。Skipモードにおいて伝送する動き情報は、結合予測モードと同様に隣接ブロックを定義する指定情報となる。
第二の予測モードは、動き情報の構成要素を個別にすべて符号化し、予測ブロックに対して予測誤差の少ない動き情報を伝送する手法であり、動き検出予測モードと呼ぶ。動き検出予測モードは、従来の動き補償予測の動き情報の符号化と同様に、参照画像を特定するための情報(参照画像インデックス)と、動きベクトルを特定するための情報が別々に符号化される。
動き検出予測モードには、片方向予測と双方向予測のどちらを使用するか予測モードで指示し、片方向予測の場合には1つの参照画像に対する参照画像を特定する情報と、動きベクトルの予測ベクトルとの差分ベクトルを符号化する。双方向予測の場合には2つの参照画像に対する参照画像を特定する情報と、動きベクトルがそれぞれ個別に符号化される。動きベクトルに対する予測ベクトルは、AVCと同様に隣接ブロックの動き情報から生成されるが、結合予測モードと同様に、複数の隣接ブロック候補より予測ベクトルに用いる動きベクトルを選択でき、動きベクトルは予測ベクトルに使用する隣接ブロックを指定する情報(インデックス)と差分ベクトルの2つを符号化することで伝送される。
第三の予測モードは、隣接ブロックの動き情報に対して、動きベクトル値を修正するための差分ベクトル値を追加で符号化することで、隣接ブロックから生成される動き情報に対して一部の動きベクトルに対する修正を行い、動き情報として符号化する手法であり、結合動き修正予測モード(マージMVDモード)と呼ぶ。結合動き修正予測モードにおいて伝送する動き情報は、結合予測モードと同様に、隣接ブロックを指定する情報に加えて、修正する動きベクトルに対する差分ベクトル値となる。実施の形態1における、結合動き修正予測モードでは、差分ベクトル値は常に1つ伝送され、動き補償予測の予測方向は双方向予測となる。
この結合動き修正予測モードを有する構成が、結合動き修正予測モードを有さない従来の構成に対して符号化効率を向上させる要因となる。つまり、結合動き修正予測モードでは、結合予測モードにおいて符号化する情報に対して、動きベクトルを修正するための差分ベクトルを符号化して追加する。これにより、動きの連続性が十分保たれていない場合や、他ブロックの動き情報における動きベクトルが正確な動きを示していない場合などに、隣接ブロックから生成される動き情報に対して、動きベクトルのみを修正することで、予測残差が少ない動き補償予測信号を生成する動き情報を、少ない情報で表現することができる。
図9は、動き補償予測および動き補償予測を実施しない画面内予測における、動き補償の予測方向と、参照画像を定義する情報、及び符号化する動きベクトル数の関連に関して説明するための図である。
動き検出予測モードの内、予測方向が片方向である片方向予測モード(UniPred)の場合は、符号化する動き情報として1つの符号化ベクトル、1つの参照画像インデックス、1つの予測ベクトルインデックスが伝送される。
同様に予測方向が双方向である双方向予測モード(BiPred)の場合は、符号化する動き情報として2つの符号化ベクトル、2つの参照画像インデックス、2つの予測ベクトルインデックスが伝送される。
結合予測モード(Merge)の場合には、1つの結合動き情報インデックスのみが符号化する動き情報として伝送され、動き情報に基づいて片方向もしくは双方向の動き補償予測が施される。
結合動き修正予測モード(MergeMvd)の場合には、1つの結合動き情報インデックスと1つの符号化ベクトルが符号化する動き情報として伝送され、動き情報と動きベクトルの修正情報に従って、双方向の動き補償予測が施される。
動き補償予測を実施しない予測符号化モードであるイントラモード(Intra)においては、動き情報は符号化されない。
隣接する動き情報との時間的・空間的な相関性が非常に高い場合には、結合予測モードが有効な動き補償予測モードとして選択される。相関性が低い場合もしくは一部の動き情報のみが有効に予測ブロックの動き情報として利用できる場合には、動き検出予測モードが有効な動き補償予測モードとして選択される。相関性が高いが動きに微小なずれを生じている場合や、隣接するブロックの動き情報が正確な動きを示していない場合、また大部分の動き情報が有効であるが一部の動き情報のみ相関性が十分でない場合などに、結合動き修正予測モードが有効な動き補償予測モードとして選択される。このように、状況に応じて、符号化効率の高い動き補償予測を選択できる。
[実施の形態1における動画像符号化装置における予測モード判定部の詳細動作説明]
図10は、実施の形態1の動画像符号化装置における予測モード判定部109の詳細な構成を示す図である。予測モード判定部109は、最適な動き補償予測モードを決定する機能を有する。
予測モード判定部109は、片方向動き補償予測生成部1000、双方向動き補償予測生成部1001、予測誤差算出部1002、予測ベクトル算出部1003、差分ベクトル算出部1004、動き情報符号量算出部1005、予測モード評価部1006、結合動き情報算出部1007、結合動き補償予測生成部1008、及び結合動き修正動き補償予測生成部1009を含む。
図1における予測モード判定部109に対して、動きベクトル検出部107より入力された動きベクトル値が、片方向動き補償予測生成部1000、双方向動き補償予測生成部1001、及び結合動き修正動き補償予測生成部1009に供給され、動き情報メモリ111より入力された動き情報が、予測ベクトル算出部1003、及び結合動き情報算出部1007に供給される。
また、動き補償予測部108に対して、片方向動き補償予測生成部1000、双方向動き補償予測生成部1001、結合動き補償予測生成部1008、及び結合動き修正動き補償予測生成部1009から、動き補償予測に用いる参照画像指定情報と動きベクトルが出力される。また、動き補償予測部108より、生成された動き補償予測画像が予測誤差算出部1002に供給される。予測誤差算出部1002には更に、入力端子100より符号化対象となる予測ブロックの画像信号が供給される。
また、予測モード評価部1006から、動き情報符号化部110に対して符号化する動き情報と確定した予測モード情報を供給し、動き情報メモリ111に動き情報を供給し、動き補償予測信号を減算部101及び加算部105に供給する。
片方向動き補償予測生成部1000は、片方向予測に使用可能な各参照画像に対して算出された動きベクトル値を受信し、参照画像指定情報を予測ベクトル算出部1003に供給し、参照画像指定情報と動きベクトルを動き補償予測部108に出力する。
双方向動き補償予測生成部1001も同様に、双方向予測に使用可能な各参照画像に対して算出された動きベクトル値を受信し、それぞれの参照画像に対する参照画像指定情報を予測ベクトル算出部1003に供給し、それぞれの参照画像に対する参照画像指定情報と動きベクトルを動き補償予測部108に出力する。
予測誤差算出部1002は、入力された動き補償予測画像と処理対象の予測ブロック画像より、予測誤差評価値を算出する。誤差評価値を算出するための演算としては、動きベクトル検出における誤差評価値と同様に、画素毎の差分絶対値の総和SADや、画素毎の二乗誤差値の総和SSE等を使用できる。更に、予測残差の符号化を行う際に施される、直交変換・量子化を行うことによって復号画像に生じる歪成分の量を加味することで、より正確な誤差評価値が算出可能である。この場合には、予測誤差算出部1002内に、図1における減算部101、直交変換・量子化部102、逆量子化・逆変換部104、加算部105の機能を有することで実現できる。予測誤差算出部1002は、各予測モードにおいて算出された予測誤差評価値と、動き補償予測信号を予測モード評価部1006に供給する。
予測ベクトル算出部1003は、片方向動き補償予測生成部1000及び双方向動き補償予測生成部1001より参照画像指定情報を供給され、動き情報メモリ111から供給される隣接ブロックの動き情報における候補ブロック群より、指定された参照画像に対する動きベクトル値を特定する。そして、複数の予測ベクトルを予測ベクトル候補リストと共に生成し、差分ベクトル算出部1004に、参照画像指定情報と共に供給する。
図11は、予測ベクトル算出部1003の構成を示す図である。予測ベクトル算出部1003は、予測ベクトル候補リスト生成部1100及び予測ベクトル候補リスト削除部1101を含み、候補ブロック群より所定の順番で予測ベクトルの候補を作成し、その中から同一の動きベクトル値を示す候補を削除することで、有効な予測ベクトルのみを予測ベクトル候補として登録する。予測ベクトル算出部1003の詳細動作に関しては、後述する。
図10に戻り、差分ベクトル算出部1004は、予測ベクトル算出部1003より供給された、予測ベクトル候補のそれぞれに対して、片方向動き補償予測生成部1000及び双方向動き補償予測生成部1001から供給される動きベクトル値との差分を計算し、差分ベクトル値を算出する。算出された差分ベクトル値と予測ベクトル候補に対する指定情報である予測ベクトルインデックスを符号化した際の符号量が最も少ない情報量で、動きベクトル値を表現出来る差分ベクトルとなる。従って、最も少ない情報量である予測ベクトルに対する予測ベクトルインデックスと差分ベクトル値を参照画像指定情報と共に、動き情報符号量算出部1005に供給する。
動き情報符号量算出部1005は、差分ベクトル算出部1004より供給される、片方向予測モード及び双方向予測モードの差分ベクトル値、参照画像指定情報、予測ベクトルインデックス、予測モードより、各予測モードにおける動き情報に要する符号量を算出する。また、動き情報符号量算出部1005は、結合動き補償予測生成部1008より、結合予測モードにおいて伝送する必要がある、結合動き情報インデックスと予測モードを示すための情報を受け取り、結合予測モードにおける動き情報に要する符号量を算出する。
同様に、動き情報符号量算出部1005は、結合動き修正動き補償予測生成部1009より、結合動き修正予測モードにおいて伝送する必要がある、結合動き情報インデックスと差分ベクトル値と予測モードを示すための情報を受け取り、結合動き修正予測モードにおける動き情報に要する符号量を算出する。動き情報符号量算出部1005は、各予測モードにおいて算出された動き情報及び動き情報に要する符号量を予測モード評価部1006に供給する。
予測モード評価部1006は、予測誤差算出部1002より供給された各予測モードの予測誤差評価値と、動き情報符号量算出部1005から供給された各予測モードの動き情報符号量を用いて、各予測モードの総合動き補償予測誤差評価値を算出し、最も少ない評価値である予測モードを選択し、選択した予測モードと選択した予測モードに対する動き情報を、動き情報符号化部110及び動き情報メモリ111に出力する。また、予測モード評価部1006は同様に、予測誤差算出部1002より供給された動き補償予測信号に対して、選択した予測モードにおける予測信号を選択して減算部101及び加算部105に出力する。
結合動き情報算出部1007は、動き情報メモリ111より供給される隣接ブロックの動き情報における候補ブロック群を用いて、片方向であるか双方向であるかを示す予測方向、参照画像指定情報、動きベクトル値で構成される動き情報として、複数の動き情報を結合動き情報候補リストと共に生成し、結合動き補償予測生成部1008及び結合動き修正動き補償予測生成部1009に供給する。
図12は、結合動き情報算出部1007の構成を示す図である。結合動き情報算出部1007は、結合動き情報候補リスト生成部1200及び結合動き情報候補リスト削除部1201を含む。結合動き情報算出部1007は、候補ブロック群より所定の順番で動き情報の候補を作成し、その中から、動き情報の各要素(予測方向、参照画像指定情報、及び動きベクトル値)が全て同一の値を示している候補を削除することで、有効な動き情報のみを結合動き情報候補として登録する。結合動き情報算出部1007の詳細動作に関しては、後述する。
図10に戻り、結合動き補償予測生成部1008は、結合動き情報算出部1007より供給された結合動き情報候補リストより、登録された結合動き情報候補のそれぞれに対して、動き情報より、予測方向に応じて1つの参照画像(片方向)もしくは2つの参照画像(双方向)の参照画像指定情報と動きベクトル値を動き補償予測部108に指定して、動き補償予測画像を生成すると共に、それぞれの結合動き情報インデックスを動き情報符号量算出部1005に供給する。結合動き補償予測生成部1008の詳細動作に関しては、後述する。
図10の構成では、それぞれの結合動き情報インデックスにおける予測モード評価は、予測モード評価部1006で施されるが、予測誤差評価値及び動き情報符号量を予測誤差算出部1002及び動き情報符号量算出部1005より受け取り、結合動き補償予測生成部1008内で、最適な結合動き補償予測の結合動きインデックスを確定させた後に、他の予測モードを含めた最適予測モードの評価を行う構成を取ることも可能である。
結合動き修正動き補償予測生成部1009は、結合動き情報算出部1007より供給された結合動き情報候補リスト、登録された結合動き情報候補に対して、双方向の動き情報を算出する。そして、その中で動きベクトル値を修正する参照画像を特定し、特定した参照画像の参照画像指定情報に対して、動きベクトル検出部107で検出された動きベクトル値を入力し、差分ベクトル値を計算する。そして、双方向の参照画像指定情報と修正した動きベクトル値を含む、動き補償予測に用いる動きベクトル値を動き補償予測部108に指定して、動き補償予測画像を生成すると共に、それぞれに結合動き情報インデックスと伝送する差分ベクトル値を動き情報符号量算出部1005に供給する。
図13は、結合動き修正動き補償予測生成部1009の構成を示す図である。結合動き修正動き補償予測生成部1009は、基準参照画像・動き修正参照画像選択部1300、動き修正参照画像動きベクトル取得部1301、結合動き情報修正動き補償予測生成部1302、及び差分ベクトル算出部1303を含む。
基準参照画像・動き修正参照画像選択部1300は登録された結合動き情報候補に対して、双方向の動き情報を算出して動きベクトル値を修正する参照画像を特定する機能を有する。動き修正参照画像動きベクトル取得部1301は特定した参照画像の参照画像指定情報に対する動きベクトル値を入力する機能を有する。結合動き情報修正動き補償予測生成部1302は動き補償予測に用いる動きベクトル値と参照画像指定情報を動き補償予測部108に出力する機能をする。差分ベクトル算出部1303は基準参照画像・動き修正参照画像選択部1300で算出された動き情報の動きベクトル値と、動きベクトル検出部107から入力された動きベクトル値の差分ベクトル値を算出する機能を有する。結合動き修正動き補償予測生成部1009の詳細動作は後述する。
図14は、図10の予測モード判定部109を介して動作する、図5のステップS502である動き補償予測モード/予測信号生成の動作について説明するためのフローチャートである。最初に、結合動き情報候補リスト生成を行い(S1400)、結合予測モード評価値を生成する(S1401)。
続いて、ステップS1400で生成された結合動き情報候補リストを用いて、結合動き修正予測モード評価値を生成し(S1402)、片方向予測モード評価値を生成し(S1403)、双方向予測モード評価値を生成し(S1404)、生成した評価値を比較することで最適な予測モードを選択する(S1405)。ただし、ステップS1401、ステップS1402、ステップS1403、及びステップS1404の評価値生成の順序はこの順序に限らない。
選択された予測モードに従い予測信号を出力し(S1406)、選択された予測モードに従い動き情報を出力する(S1407)ことで、予測ブロック単位の動き補償予測モード/予測信号生成処理が終了する。ステップS1400、ステップS1401、ステップS1402、ステップS1404、及びステップS1404の詳細動作に関しては後述する。
図15は、図14のステップS1400における結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。この動作は、図10の結合動き情報算出部1007における構成の詳細動作を示している。図12の結合動き情報候補リスト生成部1200は、動き情報メモリ111より供給される空間候補ブロック群から領域外である候補ブロックやイントラモードである候補ブロックを除いた候補ブロック群から、空間結合動き情報候補リストを生成する(S1500)。空間結合動き情報候補リスト生成の詳細な動作は後述する。
結合動き情報候補リスト生成部1200は、続いて動き情報メモリ111より供給される時間候補ブロック群から領域外である候補ブロックやイントラモードである候補ブロックを除いた候補ブロック群から、時間結合動き情報候補リストを生成する(S1501)。時間結合動き情報候補リスト生成の詳細な動作は後述する。
続いて、結合動き情報候補リスト削除部1201において、生成された空間結合動き情報候補リストと時間結合動き情報候補リストを統合した結合動き情報候補リストより、重複している動き情報を持つ結合動き情報候補が複数存在する場合には1つの結合動き情報候補を残して削除して動き情報候補リストを更新する(S1502)。
最後に、上記処理において隣接ブロックに有効な動き情報が存在せず、結合動き情報候補が存在しない場合(S1503:YES)、固定の動き情報を結合動き情報候補リストに追加して(S1504)、処理を終了する。実施の形態1における固定の動き情報としては、予測方向が双方向で、参照画像指定情報(インデックス)が0、2つの動きベクトル値が共に(0,0)の値を設定する。実施の形態1における固定の動き情報としては、上記設定には限定されず、暗黙的に指定できる手法で設定されることにより、動画像復号装置においても同じ動き情報が再現できる。なお、上記処理において隣接ブロックに有効な動き情報が存在し、結合動き情報候補が存在する場合(S1503:NO)、ステップS1504をスキップして、処理を終了する。
動き情報メモリ111より、結合動き情報算出部1007に供給される動き情報の候補ブロック群には、空間候補ブロック群と時間候補ブロック群が含まれる。まず、空間結合動き情報候補リスト生成について説明する。
図16は、空間結合動き情報候補リスト生成に用いる空間候補ブロック群を示す図である。空間候補ブロック群は、符号化対象画像の予測対象ブロックに隣接している同一画像のブロックを示す。ブロック群は、その管理が最小予測ブロックサイズ単位で行われ、図16に示すようなA1〜A4、B1〜B4、C、D、Eの位置のブロックが隣接するブロック群となる。候補ブロックの位置は、最小予測ブロックサイズの単位で管理されるが、隣接ブロックの予測ブロックサイズが最小予測ブロックサイズよりも大きな場合には、予測ブロックサイズ内の全ての候補ブロックに同一の動き情報が格納される。実施の形態1においては、これら隣接するブロック群の内、空間候補ブロック群をブロックA1、ブロックB1、ブロックC、ブロックDの4ブロックとする。
図17は、空間結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。空間候補ブロック群に含まれる4つの候補ブロックであるブロックA1、ブロックB1、ブロックC、ブロックDについて以下の処理を繰り返し行う(S1700からS1703)。
最初に候補ブロックの有効性を検査する(S1701)。候補ブロックが領域外でなくイントラモードでない場合(S1701:YES)、候補ブロックは有効となる。候補ブロックが有効であれば、候補ブロックの動き情報を空間結合動き情報候補リストに追加する(S1702)。
ここでは、空間結合動き情報候補リストには4以下の候補ブロックの動き情報が含まれるとしたが、空間候補ブロック群は、処理対象の予測ブロックに隣接する少なくとも1以上の処理済みのブロックであり、候補ブロックの有効性によって空間結合動き情報候補リストの数が変動すればよく、これに限定されない。なお、候補ブロックが領域外またはイントラモードの場合(S1701:NO)、ステップS1702をスキップし、次の候補ブロックの有効/無効判定が行われる。
続いて、時間結合動き情報候補リスト生成について説明する。図18は、時間結合動き情報候補リスト生成に用いる時間候補ブロック群を示す図である。時間候補ブロック群は、予測対象ブロックとは別の復号済みの画像ColPicにおける予測対象ブロックと同位置及びその周辺にあるブロックを示す。図18におけるA1〜A4、B1〜B4、C、D、E、F1〜F4、G1〜G4、H、I1〜I16の位置のブロックが、時間的に隣接するブロック群となる。実施の形態1においては、これら時間的に隣接するブロック群の内、時間候補ブロック群をブロックHとブロックI6の2ブロックとする。
図19は、時間結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。時間候補ブロック群に含まれる2つの候補ブロックであるブロックHとブロックI6について(ステップ1900、ステップS1905)、候補ブロックの有効性を検査する(S1901)。候補ブロックが有効である場合(S1901:YES)、ステップS1902〜ステップS1904の処理が行われ、生成された動き情報が時間結合動き情報候補リストに登録され、処理が終了する。候補ブロックが画面領域外の位置を示す場合や、候補ブロックがイントラ予測ブロックである場合(S1901:NO)、候補ブロックが有効でなく、次の候補ブロックの有効/無効判定が行われる。
候補ブロックが有効である場合(S1901:YES)、候補ブロックの動き情報をもとに結合動き情報候補に登録する参照画像選択候補を確定する(S1902)。実施の形態1ではL0方向の参照画像を、L0方向の参照画像のうち処理対象画像に最も近い距離にある参照画像とし、L1方向の参照画像を、L1方向の参照画像のうち処理対象画像に最も近い距離にある参照画像とする。
ここでの参照画像選択候補の確定手法は、L0方向の参照画像とL1方向の参照画像が決定できればよく、これに限定されない。符号化処理と復号処理で同一の手法で参照画像を確定することで、符号化時に意図した参照画像を確定できる。他の確定手法としては、例えばL0方向の参照画像及びL1方向の参照画像の参照画像インデックスが0である参照画像を選択する手法や、空間隣接ブロックが使用しているL0参照画像及びL1参照画像で、最も多く使用されている参照画像を予測対象ブロックにおける参照画像として選択する手法や、符号化ストリーム中で各方向の参照画像を指定する手法を用いることが可能である。
次に、候補ブロックの動き情報をもとに結合動き情報候補に登録する動きベクトル値を確定する(S1903)。実施の形態1における、時間結合動き情報は、候補ブロックの動き情報で有効な予測方向である動きベクトル値をもとに、双方向の動き情報を算出する。候補ブロックの予測方向がL0予測もしくはL1予測の片方向の場合には、予測に用いられている方向(L0方向或いはL1方向)の動き情報を選択し、その参照画像指定情報と動きベクトル値を双方向動き情報生成の基準値とする。
候補ブロックの予測方向が双方向である場合には、L0予測或いはL1予測のどちらか一方の動き情報を基準値として選択する。基準値の選択方法は、例えばColPicと同じ予測方向に存在する動き情報を選択する、候補ブロックのL0予測、L1予測のそれぞれの参照画像でColPicとの画像間距離が近い方を選択する、或いは候補ブロックのL0予測、L1予測のそれぞれの動きベクトルが符号化処理対象画像と交差する方を選択する等が挙げられる。
双方向動き情報生成の基準とする動きベクトル値が確定したら、結合動き情報候補に登録する動きベクトル値を算出する。
図20は、時間結合動き情報に対する基準動きベクトル値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)
となる。
図19に戻り、このようにして生成された、双方向の参照画像選択情報(インデックス)と、動きベクトル値を結合動き情報候補に追加し(S1904)、時間結合動き情報候補リスト作成処理が終了する。
図21は、図19のステップS1401における結合予測モード評価値生成の詳細動作を説明するためのフローチャートである。この動作は、図10の結合動き補償予測生成部1008を用いた構成の詳細動作を示している。
最初に予測誤差評価値を最大値に設定し、予測誤差が最小となる結合動き情報インデックスを初期化(例えば、−1などのリスト外の値)する(S2100)。結合動き情報候補リスト生成処理により、生成された結合動き情報候補リストの数をnum_of_indexとすると、i=0からnum_of_index−1までの結合動き情報候補について以下の処理を繰り返し行う(S2101からS2109)。
先ず、結合動き情報候補リストよりインデックスiに格納された動き情報を取得する(S2102)。続いて動き情報符号量を算出する(S2103)。結合予測モードにおいては、結合動き情報インデックスのみが符号化されるので、結合動き情報インデックスのみが動き情報符号量となる。結合動き情報インデックスの符号列としては、実施の形態1では、Truncated Unary符号列を用いる。
続いて、動き情報の予測方向が片方向である場合(S2104:YES)、1つの参照画像に対する参照画像指定情報と動きベクトルを、図1における動き補償予測部108に設定して、片方向動き補償予測ブロックを生成する(S2105)。動き情報が片方向でない場合(S2104:NO)、2つの参照画像に対する参照画像指定情報と動きベクトルを動き補償予測部108に設定して、双方向動き補償予測ブロックを生成する(S2106)。
続いて、動き補償予測ブロックと予測対象ブロックの予測誤差と動き情報符号量より、予測誤差評価値を算出し(S2107)、予測誤差評価値が最小値である場合には評価値を更新すると共に、予測誤差最小インデックスを更新する(S2108)。
全ての結合動き情報候補についての予測誤差評価値が比較された結果、選択された予測誤差最小インデックスを、結合予測モードで用いる結合動き情報インデックスとして、予測誤差最小値、動き補償予測ブロックと共に出力し(S2110)、結合予測モード評価値生成処理を終了する。
図22は、図14のステップS1402における結合動き修正予測モード評価値生成の詳細動作を説明するためのフローチャートである。この動作は、図10の結合動き修正動き補償予測生成部1009を用いた構成の詳細動作を示している。
最初に予測誤差評価値を最大値に設定し、予測誤差が最小となる結合動き情報インックスを初期化(例えば、−1などのリスト外の値)する(S2200)。結合動き情報候補リスト生成処理により、生成された結合動き情報候補リストの数をnum_of_indexとすると、i=0からnum_of_index−1までの結合動き情報候補について以下の処理を繰り返し行う(S2201からS2210)。
先ず、結合動き情報候補リストよりインデックスiに格納された動き情報を取得する(S2202)。続いて、取得した動き情報より双方向予測の動きベクトル値と参照画像指定情報、及び差分ベクトルを伝送する参照画像となる動き修正参照画像を確定する(S2203)。ステップS2203の詳細動作に関しては、後述する。
次に、ステップS2203により確定された動き補正参照画像に対して、図1の動きベクトル検出部107より動き補正参照画像に対する検出した動きベクトル値を入力する(S2204)。入力された動きベクトル値を動き補償予測に用いるため、結合動き情報候補より算出された動き情報における、動き補正参照画像の動きベクトル値との差分ベクトルが生成される(S2205)。
続いて、動き情報符号量を算出する(S2206)。結合動き修正予測モードにおいては、結合動き情報インデックスと差分ベクトル値が符号化されることで、必要な動き情報が伝送される。そのため、結合動き情報インデックスの符号量と差分ベクトル値の符号量が加算され、結合動き修正予測モードにおける動き情報符号量となる。
結合修正動き予測モードの場合に、結合動き情報より生成された双方向予測の動きベクトルと参照画像選択情報に対して、動き修正参照画像に対する修正した動きベクトルのみを入れ替えた動き情報を、図1における動き補償予測部108に設定して、双方向動き補償予測ブロックを生成する(S2207)。
動き補償予測ブロックと予測対象ブロックの予測誤差と動き情報符号量より、予測誤差評価値を算出し(S2208)、予測誤差評価値が最小値である場合には評価値を更新すると共に、予測誤差最小インデックスを更新する(S2209)。
全ての結合動き情報候補についての予測誤差評価値が比較された結果、選択された予測誤差最小インデックスを、結合予測モードで用いる結合動き情報インデックスとして、予測誤差最小値、動き補償予測ブロックと共に出力し(S2211)、結合動き修正予測モード評価値生成処理を終了する。
次に、ステップS2203の詳細動作を説明する前に、結合動き修正予測モードにおける結合動き情報に対するスケーリング処理の説明を行う。図23(a)〜(c)は、結合動き修正予測モードにおける結合動き情報に対するスケーリング処理の概念を示す図である。結合動き情報としては、図23(a)に示す空間隣接ブロックから算出された予測方向が双方向である空間BiPredと、図23(b)に示す空間隣接ブロックから算出された予測方向が片方向である空間UniPredと、図23(c)に示す時間連接ブロックから算出された時間BiPredが存在する。
実施の形態1における、結合動き情報に対するスケーリング処理は、双方向の動き情報が取得できる空間BiPred及び時間BiPredにおいては、結合動き情報算出時に施された動きベクトルをそのまま用い、時間UniPredに関しては、片方向で定義されている動きベクトル値を、符号化対象画像とL0画像、L1画像との距離比率でスケーリングすることで、使用されていなかった方向の動き情報を生成する。
図24は、各結合動き情報に対して存在するスケーリングされて生成した動きベクトル数を示す図である。空間UniPredが上記スケーリング処理における1個、空間BiPredは結合動き情報算出時にスケーリング処理が施されていないため0個、時間BiPredは結合動き情報算出時の2つの動きベクトル値の算出時にスケーリング処理が施されているため2個となる。
上記スケーリング処理が施された動きベクトル値は、隣接ブロックで使用された動きベクトル値をそのまま動きベクトル値として採用した結合動き情報と比較すると、スケーリングによる演算誤差の影響や、動き量の時間変化が一定でない場合の影響があり、その動き情報の精度にずれが生じている可能性が高い。また、隣接ブロックに使用された動きベクトル値は、符号化対象から時間的に離れた参照画像になるほど画面の変化が大きくなるため、その値の精度が低下する。
実施の形態1においては、これらの結合動き情報に登録された動きベクトルの算出時の特性を利用して、差分ベクトルを送って動きベクトルを修正する必要のある動きベクトルを、付加情報を伝送することなく特定し、差分ベクトルのみを追加で符号化する。これにより、動き補償予測の予測精度が高い動き情報を、少ない動き情報の伝送で実現することができる。
実施の形態1においては、スケーリングされて算出された動きベクトル値を持つ参照画像を優先的に、差分ベクトルを伝送する動き修正参照画像に設定する。2つの動きベクトルが共にスケーリングされている場合や、共にスケーリングされていない場合には、予測対象画像からの時間的距離が離れた参照画像を、差分ベクトルを伝送する動き修正参照画像に設定する。
図25(a)〜(c)は、実施の形態1における差分動きベクトル伝送参照画像確定アルゴリズムを示す概念図である。図25(a)に示す空間BiPredでは、スケーリングされた動きベクトルが0個のため、時間的距離の遠い参照画像の動きベクトルに差分ベクトルを追加する。図25(b)に示す空間UniPredでは、スケーリングされた動きベクトルが1個のため、スケーリングされた動きベクトルに差分ベクトルを追加する。図25(c)に示す時間BiPredでは、スケーリングされた動きベクトルが2個のため、時間的距離の遠い参照画像の動きベクトルに差分ベクトルを追加する。
図26は、図22のステップS2203の詳細動作を説明するためのフローチャートである。図22のステップS2203では、上記差分ベクトルを伝送する参照画像の確定処理が行われる。
最初に、取得した結合動き情報の予測方向が片方向である場合には(S2600:YES)、空間UniPredで導出された結合動き情報であり、双方向の動き補償予測を行うための第2参照画像と第2参照画像の動きベクトル値を確定する処理を行う(S2601)。ステップS2601の詳細動作に関しては、後述する。
続いて、双方向の参照画像の動きベクトル値のうちスケーリングされた動きベクトルが片方向の1つの動きベクトルのみである場合(S2602:YES)、スケーリングされた動きベクトル値を持つ参照画像を動き修正参照画像に設定する(S2603)。
スケーリングされた動きベクトルが片方向の1つの動きベクトルでない場合(S2602:NO)、符号化対象画像、L0参照画像、L1参照画像の時間情報を示すPOC値を取得し、それぞれPOCcur、POC_L0、POC_L1に設定する(S2604)。
符号化対象画像と2つの参照画像の間での時間的距離を下記式3で比較する。
abs(POCcur−POC_L0)>abs(POCcur−POC_L1)
・・・(式3)
上記式3を満たす場合(S2605:YES)、L0参照画像が遠い参照画像と判断し、L0参照画像を動き修正参照画像に設定する(S2606)。上記式3を満たさない場合(S2605:NO)、L1参照画像を動き修正参照画像に設定する(S2607)。以上で、双方向の動きベクトル値と差分ベクトルを伝送する参照画像を確定する処理が終了する。
図27は、図26のステップS2601の詳細動作を説明するためのフローチャートである。最初に、結合動き情報に格納されている動き情報がL0予測であった場合(S2700:YES)、第2参照画像としてL1予測の参照画像インデックスを確定する(S2701)。L0予測でない場合(S2700:NO)、第2参照画像としてL0予測の参照画像インデックスを確定する(S2702)。ステップS2702における参照画像インデックスの確定処理に関しては、後述する。
続いて、符号化対象画像、結合動き情報に格納されている参照画像、第2参照画像のPOC値を取得し、POCcur、POC_Lx、POC_Lyに設定する(S2703)。上記POC値を用いて、結合動き情報に格納されている動きベクトル値を2つの参照画像と符号化対象画像との距離比率でスケーリングする(S2704)。
結合動き情報に格納されている動き情報がL0予測であった場合(S2705:YES)、スケーリングして生成された動きベクトル値をL1予測の参照画像に対する基準動きベクトル値として設定する(S2706)。L0予測でない場合(S2705:NO)、スケーリングして生成された動きベクトル値をL0予測の参照画像に対する基準動きベクトル値として設定し(S2707)、処理を終了する。
図28は、図27のステップS2702の詳細動作を説明するためのフローチャートである。図27のステップS2702では、参照画像インデックスを確定する処理が行われる。
最初に、結合動き情報に格納されている参照画像を基準参照画像として取得するとともに、第2参照画像を設定する予測方向における参照画像リストを第2参照画像候補リストとして取得する(S2800)。
次に、符号化対象画像を挟んで基準参照画像と反対方向の時間位置に存在する参照画像が第2参照画像候補リスト内に存在するかを調べる(S2801)。存在する場合(S2801:YES)、その中で最も符号化対象画像に近い時間位置に存在する参照画像を第2参照画像に対する参照画像インデックスとして確定する(S2802)。存在しない場合(S2801:NO)、符号化対象に最も近い時間位置に存在する参照画像を第2参照画像候補と設定し(S2803)、基準参照画像と第2参照画像候補が同一画像であるかを調べる(S2804)。
基準参照画像と第2参照画像候補が同一画像でない場合(S2804:NO)、第2参照画像候補を第2参照画像に対する参照画像インデックスとして確定する(S2805)。基準参照画像と第2参照画像候補が同一画像である場合(S2804:YES)、他の参照画像が第2参照画像候補リストに存在するかを調べる(S2806)。存在する場合(S2806:YES)、時間位置で次に符号化対象画像に近い参照画像を取得し、第2参照画像に対する参照画像インデックスとして確定する(S2807)。他の参照画像が存在しない場合(S2806:NO)、ステップS2805に進み、第2参照画像候補を第2参照画像に対する参照画像インデックスとして確定する。以上で全ての場合における第2参照画像に対する参照画像インデックスが確定し、処理を終了する。
実施の形態1における第2参照画像の確定アルゴリズムは、動き補償予測処理が双方向予測において符号化対象画像を挟んで反対方向に存在する参照画像で構成される補間型(内挿型)の双方向予測の方が、符号化対象画像を挟まずに同一方向に存在する参照画像で構成する補間(外挿型)の双方向予測よりも、動きや物体の時間変化の影響を平均化できるために予測精度が良い点、符号化対象画像から近い参照画像の方が動きや物体の時間変化の影響が少なく動き補償予測の精度が良い点、同じ参照画像を重ね合わせて生成する予測画像よりも、2つの異なる参照画像より生成される双方向予測画像の方が動きを正しく捉えた場合の予測画像の予測精度が高い点の3つの知見に基づく確定アルゴリズムである。この手法により、双方向予測に適した参照画像を第2参照画像として設定できる利点がある。
しかしながら、上述した参照画像インデックスの確定処理に関しては、第2参照画像の参照画像インデックスが確定できればよく、異なる確定アルゴリズムを用いることも可能である。符号化処理と復号処理で同一の手法で参照画像を確定することで、符号化時に意図した参照画像を確定できる。他の確定方法として、他ブロックの動き情報における動きベクトルが正確な動きを示していない場合に、同じ参照画像を重ね合わせて生成する予測画像を用いることで、参照画像に微小な変化を加えた動き補償予測信号を新たな候補として加えることが出来る効果を重視して、図28のフローチャートにおける、基準参照画像と第2参照画像候補が同一画像であるかを調べる処理であるステップS2804を無くして、同一画像であっても第2参照画像候補として確定する方法を用いることができる。
更に他の確定方法として、第2参照画像として確定する予測方向の参照画像の中で、単純に符号化対象画像に最も近い距離にある参照画像を選択する方法や、常に参照画像インデックスが0で示される参照画像を取得する方法や、空間隣接ブロックが使用しているL0参照画像及びL1参照画像で、最も多く使用されている参照画像を予測対象ブロックにおける参照画像として選択する方法などの、時間BiPredにおける参照画像確定処理に用いた確定手段を用いることも可能である。また、図28に示したアルゴリズムを用いて、時間BiPredにおける参照画像確定処理に応用することも可能である。
図29は、図14のステップS1403の詳細動作を説明するためのフローチャートである。図14のステップS1403では、片方向予測モード評価値生成処理が行われる。
最初に、片方向予測に対する参照画像指定情報(インデックス)と動きベクトル値を取得する(S2900)。続いて、予測ベクトル候補リストを生成し(S2901)、予測ベクトルの中から最適予測ベクトルを選択し、差分ベクトルを生成する(S2902)。最適予測ベクトルの選択手法は、予測ベクトルと伝送する動きベクトルの差分ベクトルを実際に符号化する際の符号量が最も少ないものを選択することが望ましいが、単純に差分ベクトルの水平・垂直成分の絶対値の総和が小さいものを選択するなどの手法で、簡易的に算出してもよい。ステップS2901の詳細動作については、後述する。
続いて、動き情報符号量を算出する(S2903)。片方向予測モードの場合に、符号化する動き情報としては、1つの参照画像に対する、参照画像指定情報、差分ベクトル値、及び予測ベクトルインデックスの3要素となり、各々符号化された符号量の総量が動き情報符号量として算出される。実施の形態1における予測ベクトルインデックスの符号列生成手法としては、結合動き情報インデックスの符号列と同様にTruncated Unary符号列を用いるものとする。
続いて、1つの参照画像に対する参照画像指定情報と動きベクトルを図1における動き補償予測部108に設定して、片方向動き補償予測ブロックを生成する(S2904)。さらに、動き補償予測ブロックと予測対象ブロックの予測誤差と動き情報符号量より、予測誤差評価値を算出し(S2905)、予測誤差評価値と、1つの参照画像に対する動き情報である、参照画像指定情報と差分ベクトル値と予測ベクトルインデックスを動き補償予測ブロックと共に出力し(S2906)、片方向予測モード評価値生成処理を終了する。
図30は、図29のステップS2901の詳細動作を説明するためのフローチャートである。図29のステップS2901では、予測ベクトル候補リスト生成が行われる。この動作は、図10の予測ベクトル算出部1003における構成の詳細動作を示している。
図11の予測ベクトル候補リスト生成部1100は、動き情報メモリ111より供給される空間候補ブロック群から領域外である候補ブロックや、イントラモードである候補ブロックを除いた候補ブロック群から空間動き情報利用予測ベクトル候補リストを生成する(S3000)。空間動き情報利用予測ベクトル候補リスト生成の詳細な動作は後述する。
予測ベクトル候補リスト生成部1100は、続いて動き情報メモリ111より供給される時間候補ブロック群から領域外である候補ブロックやイントラモードである候補ブロックを除いた候補ブロック群から時間動き情報利用予測ベクトル候補リストを生成する(S3001)。時間動き情報利用予測ベクトル候補リスト生成の詳細な動作は後述する。
続いて、予測ベクトル候補リスト削除部1101は、生成された空間動き情報利用予測ベクトル候補リストと時間動き情報利用予測ベクトル候補リストを統合した予測ベクトル候補リストより、重複している動きベクトルを持つ予測ベクトル候補が複数存在する場合には1つの予測ベクトル候補を残して削除して予測ベクトル候補リストを更新する(S3002)。
最後に、上記処理において隣接ブロックに有効な動き情報が存在せず、予測ベクトル候補が存在しない場合(S3003:YES)、固定ベクトル値(0,0)を予測ベクトル候補リストに追加して(S3004)、処理を終了する。
図31は、空間動き情報利用予測ベクトル候補リスト生成の詳細動作を説明するためのフローチャートである。動き情報メモリ111より、予測ベクトル算出部1003に供給される動き情報の候補ブロック群には、空間候補ブロック群と時間候補ブロック群が含まれる。空間候補ブロック群と時間候補ブロック群の概念は、図16や図18に示した、結合動き情報に対する動き情報の候補ブロックと同様である。
実施の形態1においては、空間候補ブロック群としては図16におけるブロックA1、ブロックB1、ブロックC、ブロックDの4ブロックとする。実施の形態1において、候補ブロックの数や位置に関しては限定されず、また結合動き情報において用いる候補ブロックの数や位置と、予測ベクトルにおいて用いる候補ブロックの数や位置は、一致しても一致しなくてもかまわない。
最初に、空間候補ブロック群に含まれる4つの候補ブロックであるブロックA1、ブロックB1、ブロックC、ブロックDについて以下の処理を繰り返し行う(S3100からS3103)。
最初に候補ブロックにおいて指定した参照画像における動きベクトル値の有効性を検査する(S3101)。候補ブロックが領域外でなくイントラモードでない場合だけでなく、片方向予測で指定した参照画像が使用されない場合や、参照インデックスが異なる場合に、動きベクトル値は無効となる。ただし、実施の形態1においては、片方向予測で指定した参照画像が使用されない場合や、参照インデックスが異なる場合に、他の参照画像の動きベクトル値をスケーリングして動きベクトルを求めるなどの追加の処理を行い、有効な動きベクトルとして扱うことも可能であり、上記動きベクトル値の有効/無効判断手法は、実施の形態1の手法に限定されない。
続いて、動きベクトル値が有効であれば(S3101:YES)、候補ブロックの動きベクトル値を予測ベクトル候補リストに追加する(S3102)。動きベクトル値が無効であれば(S3101:NO)、ステップS3102をスキップし、次の候補ブロックの動きベクトル値の有効/無効判断を行う。
図32は、時間動き情報利用予測ベクトル候補リスト生成の詳細動作を説明するためのフローチャートである。実施の形態1においては、図18における時間的に隣接するブロック群の内、時間候補ブロック群をブロックHとブロックI6の2ブロックとする。時間動き情報利用予測ベクトル候補リスト生成においても、候補ブロックの数や位置に関しては限定されず、また結合動き情報において用いる候補ブロックの数や位置と別に設定することが可能である。
時間候補ブロック群に含まれる2つの候補ブロックであるブロックHとブロックI6について(ステップ3200、ステップS3204)、候補ブロックの有効性を検査する(S3201)。候補ブロックが有効である場合(S3201:YES)、ステップS3202〜ステップS3203の処理が行われ、生成された動きベクトル値が予測ベクトル候補リストに登録され、処理が終了する。候補ブロックが画面領域外の位置を示す場合や、候補ブロックがイントラ予測ブロックである場合には、候補ブロックが有効でなく(S3201:NO)、次の候補ブロックの有効/無効判定が行われる。
候補ブロックが有効である場合(S3201:YES)、候補ブロックの動き情報をもとに予測ベクトル候補に登録する動きベクトル値を確定する(S3202)。確定した動きベクトル値を予測ベクトル候補リストに追加して(S3203)、時間動き情報利用予測ベクトル候補リスト生成が終了する。
図33は、図14のステップS1404の詳細動作を説明するためのフローチャートである。図14のステップS1404では、双方向予測モード評価値生成処理が行われる。
最初に、L0予測に対する参照画像指定情報(インデックス)と動きベクトル値を取得する(S3300)。続いて、L0予測ベクトル候補リストを生成し(S3301)、予測ベクトルの中からL0予測における最適予測ベクトルを選択し、差分ベクトルを生成する(S3302)。これらの処理は、図29のフローチャート内の片方向予測モード評価値生成処理における、ステップ2900〜ステップS2902までの処理と同じ処理である。
続いて、L1予測に対する参照画像指定情報(インデックス)と動きベクトル値を取得する(S3303)。続いて、L1予測ベクトル候補リストを生成し(S3304)、予測ベクトルの中からL1予測における最適予測ベクトルを選択し、差分ベクトルを生成する(S3305)。これらの処理も同様に、図29のフローチャート内の片方向予測モード評価値生成処理における、ステップ2900〜ステップS2902までの処理と同じ処理である。
続いて、動き情報符号量を算出する(S3306)。双方向予測モードの場合には、符号化する動き情報としては、L0とL1の2つの参照画像に対する、参照画像指定情報、差分ベクトル値、及び予測ベクトルインデックスの計6要素となり、各々符号化された符号量の総量が動き情報符号量として算出される。そのため、結合予測モードや結合動き修正予測モードと比較して、符号化される動き情報の符号量は大きくなる。
続いて、2つの参照画像に対する参照画像指定情報と動きベクトルを図1における動き補償予測部108に設定して、双方向動き補償予測ブロックを生成する(S3307)。さらに、動き補償予測ブロックと予測対象ブロックの予測誤差と動き情報符号量より、予測誤差評価値を算出し(S3308)、予測誤差評価値と、L0、L1の2つの参照画像に対する動き情報である、2つの参照画像指定情報と2つの差分ベクトル値と2つの予測ベクトルインデックスを動き補償予測ブロックと共に出力し(S3309)、双方向予測モード評価値生成処理を終了する。
以上の処理が、実施の形態1における動画像符号化装置における予測モード判定部109の詳細動作となる。
[実施の形態1における動画像符号化装置における動き情報符号化部の詳細動作説明]
図34は、図5のステップS504の詳細動作を説明するためのフローチャートである。図5のステップS504の処理は、実施の形態1の動画像符号化装置の動き情報符号化部110における、各動き補償予測モードに対する動き情報を符号化する処理を示す。
動き情報符号化部110には、予測モード判定部109において決定された動き補償予測モードにおける、予測モードを示す情報と、各予測モードの動き情報を表現するために必要な情報が供給され、動き情報符号化部110は動き情報符号化データ生成処理を開始する。
最初に、予測モードが結合予測モードである場合(S3400:YES)、ステップS3401に進み、対象となる予測ブロックで予測誤差信号を符号化しない(Skipモード)状態である場合(S3401:YES)、Skipフラグを符号化し(S3402)、そうでない場合(S3401:NO)、マージフラグを1として符号化する(S3403)。
Skipフラグ或いはマージフラグを符号化した後、結合動き情報候補リストが1より大きい場合(S3404:YES)、結合動き情報インデックスを符号化し(S3405)、処理を終了する。結合動き情報候補リストが1の場合(S3404:NO)、結合動き情報が特定できるため、結合動き情報インデックスは伝送されない。
次に、予測モードが結合予測モードでない場合(S3400:NO)、マージフラグを0として符号化し(S3406)、動き予測フラグを符号化する(S3407)。動き予測フラグは、予測方向が片方向予測であるか双方向予測であるかを指示する情報として符号化される。
図35は、実施の形態1における動き予測フラグの一例を示す図である。動き予測フラグ(inter_pred_flag)として、片方向を示す値(Pred_LC)が0、双方向を示す値(Pred_BI)が1で符号化される。結合動き修正予測モードに関しては、動き補償予測の構造は双方向予測となり、Pred_BIとして動き予測フラグが送られる。
続いて、動き予測フラグで示された予測方向が片方向予測である場合(S3408:YES)、片方向予測モードの動き情報伝送が行われる。最初に、参照画像指定情報(インデックス)を符号化し(S3409)、続いて、差分ベクトルを符号化する(S3410)。予測ベクトル候補リストが1より大きい場合(S3411:YES)、予測ベクトルインデックスを符号化し(S3412)、処理を終了する。予測ベクトル候補リストが1の場合(S3411:NO)、予測ベクトルが特定できるため、インデックスは伝送されない。
一方、動き予測フラグで示された予測方向が片方向予測でない場合(S3408:NO)において、予測モードが結合動き修正予測モードである場合(S3413:YES)、結合動き修正予測モードの動き情報伝送が行われる。
最初に、結合動き修正予測モードを特定するためのマージMvdフラグを1で符号化する(S3414)。続いて、結合動き情報候補リストが1より大きい場合(S3415:YES)、結合動き情報インデックスを符号化する(S3416)。結合動き情報候補リストが1の場合(S3415:NO)、結合動き情報インデックスは伝送されない。最後に、結合動き修正予測モードで特定された動き修正参照画像の動きベクトル値に対して、結合動き情報の動き修正参照画像の修正前動きベクトルとの差分ベクトル値を符号化し(S3417)、処理を終了する。
予測モードが結合動き修正予測モードでない場合(S3413:NO)、予測モードは双方向予測モードとなり、双方向予測モードの動き情報伝送が行われる。最初に、結合動き修正予測モードでないことを示すためにマージMvdフラグを0で符号化する(S3418)。続いて、L0予測の動き情報であるL0参照画像指定情報を符号化し(S3419)、L0差分ベクトル値を符号化する(S3420)。L0予測の予測ベクトル候補リストが1より大きい場合(S3421:YES)、L0予測ベクトルインデックスを符号化する(S3422)。L0予測の予測ベクトル候補リストが1の場合(S3421:NO)、L0予測ベクトルインデックスは伝送されない。
続いて、L1予測の動き情報であるL1参照画像指定情報を符号化し(S3423)、L1差分ベクトル値を符号化する(S3424)。L1予測の予測ベクトル候補リストが1より大きい場合(S3425:YES)、L1予測ベクトルインデックスを符号化する(S3426)。L1予測の予測ベクトル候補リストが1の場合(S3425:NO)、L1予測ベクトルインデックスは伝送されない。以上の処理により、動き情報符号化データの生成が終了する。
図36は、図34のフローチャートで示した、動き情報符号化データ生成処理によって生成される符号化ストリームのシンタックスの一例を示す。図36の符号化シンタックスにおいては、Skipフラグの伝送は予測ブロック単位での動き情報の符号化より上の階層での符号化ブロック単位で選択される。従って、上位の符号化ブロックの単位で、図34の予測誤差信号を符号化しない(Skipモード)状態であるか否かの判定(S3401)が行われる。
[実施の形態1における動画像復号装置における動き情報復号部の詳細動作説明]
図37は、図6に示した実施の形態1の動画像復号装置における動き情報復号部606の詳細な構成を示す図である。動き情報復号部606は、動き情報ビットストリーム復号部3700、予測ベクトル算出部3701、ベクトル加算部3702、片方向動き補償予測復号部3703、双方向動き補償予測復号部3704、結合動き情報算出部3705、結合動き補償予測復号部3706、及び結合動き修正動き補償予測復号部3707を含む。
図6における動き情報復号部606に対して、多重分離部601より入力された動き情報ビットストリームが、動き情報ビットストリーム復号部3700に供給され、動き情報メモリ607より入力された動き情報が、予測ベクトル算出部3701、及び結合動き情報算出部3705に供給される。
また、動き補償予測部608に対して、片方向動き補償予測復号部3703、双方向動き補償予測復号部3704、結合動き補償予測復号部3706、及び結合動き修正動き補償予測復号部3707から、動き補償予測に用いる参照画像指定情報と動きベクトルが出力され、予測方向を示す情報を含めた復号された動き情報が、動き情報メモリ607に格納される。
動き情報ビットストリーム復号部3700は、多重分離部601より入力された動き情報ビットストリームを符号化シンタックスに従って復号していくことで、伝送された予測モードと、予測モードに応じた動き情報を生成する。生成した動き情報の中で、結合動き情報インデックスは、予測モードに応じて結合動き補償予測復号部3706、もしくは結合動き修正動き補償予測復号部3707に供給され、参照画像指定情報が予測ベクトル算出部3701に供給され、予測ベクトルインデックスがベクトル加算部3702に供給され、差分ベクトル値が予測モードに応じてベクトル加算部3702、もしくは結合動き修正動き補償予測復号部3707に供給される。
予測ベクトル算出部3701は、動き情報メモリ607より供給された隣接ブロックの動き情報と、動き情報ビットストリーム復号部3700より供給された参照画像指定情報から、動き補償予測の対象となる参照画像に対する予測ベクトル候補リストを生成し、参照画像指定情報と共にベクトル加算部3702に供給する。予測ベクトル算出部3701の動作に関しては、図10の動画像符号化装置における予測ベクトル算出部1003と同一の動作が行われ、符号化時の予測ベクトル候補リストと同一の候補リストが生成される。
ベクトル加算部3702は、予測ベクトル算出部3701より供給された予測ベクトル候補リスト及び参照画像指定情報と、動き情報ビットストリーム復号部3700から供給された予測ベクトルインデックス及び差分ベクトルより、予測ベクトルインデックスで示された位置に登録された予測ベクトル値と差分ベクトル値を加算することで、動き補償予測対象となる参照画像に対しての動きベクトル値が再生される。再生された動きベクトル値は、参照画像指定情報と共に、予測モードに応じて片方向動き補償予測復号部3703、もしくは双方向動き補償予測復号部3704に供給される。
片方向動き補償予測復号部3703は、ベクトル加算部3702より1つの参照画像に対する、再生された動きベクトル値と参照画像指定情報が供給され、動きベクトル値と参照画像指定情報を動き補償予測部608に設定することで、動き補償予測信号を生成する。
双方向動き補償予測復号部3704は、ベクトル加算部3702より双方向の2つの参照画像に対する、再生された動きベクトル値と参照画像指定情報が供給され、動きベクトル値と参照画像指定情報を動き補償予測部608に設定することで、動き補償予測信号を生成する。
結合動き情報算出部3705は、動き情報メモリ607から供給される隣接ブロックの動き情報より、結合動き情報候補リストを生成し、結合動き情報候補リストとリスト内の構成要素である結合動き情報候補の参照画像指定情報と動きベクトル値を、予測モードに応じて結合動き補償予測復号部3706、もしくは結合動き修正動き補償予測復号部3707に供給する。
結合動き情報算出部3705の動作に関しては、図10の動画像符号化装置における結合動き情報算出部1007と同一の動作が行われ、符号化時の結合動き情報候補リストと同一の候補リストが生成される。
結合動き補償予測復号部3706は、結合動き情報算出部3705より供給される結合動き情報候補リストとリスト内の構成要素である結合動き情報候補の参照画像指定情報と動きベクトル値と、動き情報ビットストリーム復号部3700より供給される結合動き情報インデックスより、結合動き情報インデックスで示された結合動き情報候補リストにおける参照画像指定情報と動きベクトル値を再生し、動き補償予測部608に設定することで、動き補償予測信号を生成する。
結合動き修正動き補償予測復号部3707は、結合動き情報算出部3705より供給される結合動き情報候補リストとリスト内の構成要素である結合動き情報候補の参照画像指定情報と動きベクトル値と、動き情報ビットストリーム復号部3700より供給される結合動き情報インデックスより、結合動き修正予測モードに対する動き情報を算出し、動き修正参照画像を確定する。そして、動き修正参照画像の動きベクトル値に対して差分ベクトル値を加算することで、双方向予測の参照画像指定情報と動きベクトル値を再生し、動き補償予測部608に設定することで、動き補償予測信号を生成する。
図38は、図7のステップS701の詳細動作を説明するためのフローチャートである。動き情報ビットストリーム復号部3700、予測ベクトル算出部3701、結合動き情報算出部3705、及び結合動き修正動き補償予測復号部3707により、図7のステップS701における動き情報復号処理が行われる。
動き情報復号処理は、図36のシンタックス構造で符号化された符号化ビットストリームより動き情報を復号する処理である。最初に符号化ブロックの所定単位でSkipフラグを復号する(S3800)。以降は予測ブロック単位の処理となる。SkipフラグがSkipモードを示している場合(S3801:YES)、結合予測動き情報復号を行う(S3802)。ステップS3802の詳細処理については、後述する。
Skipモードでない場合(S3801:NO)、マージフラグを復号する(S3803)。マージフラグが1を示している場合(S3804:YES)、ステップS3802の結合予測動き情報復号に進む。
マージフラグが1でない場合(S3804:NO)、動き予測フラグを復号する(S3805)。動き予測フラグが片方向予測モードである場合(S3806:YES)、即ち図35におけるinter_pred_flagがPred_LCを示す場合、片方向予測動き情報復号を行う(S3807)。ステップS3807の詳細動作については、後述する。
動き予測フラグが片方向予測モードを示していない場合(S3806:NO)、マージMvdフラグを復号する(S3808)。マージMvdフラグが1である場合(S3809:YES)、結合動き修正予測動き情報復号が行われ(S3810)、マージMvdフラグが1でない場合(S3809:NO)、双方向予測動き情報復号が行われる(S3811)。ステップS3810、及びステップS3811の詳細動作については、後述する。
図39は、図38のステップS3802の詳細動作を説明するためのフローチャートである。図38のステップS3802では、結合予測動き情報復号処理が行われる。
最初に予測モードに結合予測モードを設定し(S3900)、結合動き情報候補リストを生成する(S3901)。ステップS3901の処理は、図14のフローチャート内の、動画像符号化装置における結合動き情報候補リスト生成であるステップS1401と同一の処理である。
結合動き情報候補リストが1よりも大きい場合(S3902:YES)、即ち複数の結合動き情報候補がある場合には、結合動き情報インデックスを復号し(S3903)、結合動き情報候補リストが1つの場合(S3902:NO)、結合動き情報インデックスに0を設定する(S3904)。
続いて、結合動き情報候補リストより、結合動き情報インデックスで示す位置に格納されている動き情報を取得する(S3905)。取得する動き情報としては、片方向/双方向を示す予測方向、参照画像指定情報、動きベクトル値となる。生成された動き情報は、結合予測モードの動き情報として格納され(S3906)、結合動き補償予測復号部3706に供給される。
図40は、図38のステップS3807の詳細動作を説明するためのフローチャートである。図38のステップS3807では、片方向予測動き情報復号処理が行われる。
最初に参照画像指定情報を復号し(S4000)、差分ベクトル値を復号する(S4001)。次に、予測ベクトル候補リストを生成し(S4002)、予測ベクトル候補リストが1より大きい場合(S4003:YES)、予測ベクトルインデックスを復号し(S4004)、予測ベクトル候補リストが1の場合(S4003:NO)、予測ベクトルインデックスに0を設定する(S4005)。
ここで、ステップS4002では、動画像符号化装置における図29のフローチャートのステップS2901と同様の処理が行われる。次に、予測ベクトル候補リストより、予測ベクトルインデックスで示す位置に格納されている動きベクトル値を取得する(S40006)。復号した差分ベクトル値と動きベクトル値を加算することで動きベクトルを再生する(S4007)。生成された動き情報として、1つの参照画像に対する参照画像指定情報と動きベクトル値が、片方向予測モードの動き情報として格納され(S4008)、片方向動き補償予測復号部3703に供給される。
図41は、図38のステップS3811の詳細動作を説明するためのフローチャートである。図38のステップS3811では、双方向予測動き情報復号処理が行われる。
最初にL0予測の参照画像指定情報を復号し(S4100)、差分ベクトル値を復号する(S4101)。次に、L0予測の予測ベクトル候補リストを生成し(S4102)、予測ベクトル候補リストが1より大きい場合(S4103:YES)、L0予測の予測ベクトルインデックスを復号する(S4104)。予測ベクトル候補リストが1の場合(S4103:NO)、L0予測の予測ベクトルインデックスに0を設定する(S4105)。ステップS4102では、動画像符号化装置における図33のフローチャートのステップS3301と同様の処理が行われる。
次に、予測ベクトル候補リストより、L0予測の予測ベクトルインデックスで示す位置に格納されている動きベクトル値を取得する(S4106)。復号した差分ベクトル値と動きベクトル値を加算することで動きベクトルを再生する(S4107)。
続いて、同様の動き情報復号処理がL1予測の参照画像に対して行われる。L1予測の参照画像指定情報を復号し(S4108)、差分ベクトル値を復号し(S4109)。L1予測の予測ベクトル候補リストを生成し(S4110)、予測ベクトル候補リストが1より大きい場合(S4111:YES)、L1予測の予測ベクトルインデックスを復号する(S4112)。予測ベクトル候補リストが1の場合(S4111:NO)、L1予測の予測ベクトルインデックスに0を設定する(S4113)。ステップS4113では、動画像符号化装置における図33のフローチャートのステップS3304と同様の処理が行われる。
次に、予測ベクトル候補リストより、L1予測の予測ベクトルインデックスで示す位置に格納されている動きベクトル値を取得する(S4114)。復号した差分ベクトル値と動きベクトル値を加算することで動きベクトルを再生する(S4115)。生成された動き情報として、2つの参照画像に対する参照画像指定情報と動きベクトル値が、双方向予測モードの動き情報として格納され(S4116)、双方向動き補償予測復号部3704に供給される。
図42は、図38のステップS3810の詳細動作を説明するためのフローチャートである。図38のステップS3810では、結合動き修正予測動き情報復号処理が行われる。
最初に予測モードに結合動き修正予測モードを設定し(S4200)、結合動き情報候補リストを生成する(S4201)。ステップS4201では、動画像符号化装置における図14のフローチャートのステップS1401と同一の処理が行われる。
結合動き情報候補リストが1よりも大きい場合(S4202:YES)、即ち複数の結合動き情報候補がある場合には、結合動き情報インデックスを復号し(S4203)、結合動き情報候補リストが1つの場合(S4202:NO)、結合動き情報インデックスに0を設定する(S4204)。
続いて、結合動き情報候補リストより、結合動き情報インデックスで示す位置に格納されている動き情報を取得する(S4205)。取得する動き情報としては、片方向/双方向を示す予測方向、参照画像指定情報、動きベクトル値となる。
次に、取得された結合動き情報インデックスと動き情報をもとに、結合動き修正動き補償予測復号部3707において、双方向動きベクトル値と差分ベクトルを伝送する参照画像確定処理を行う(S4206)。ステップS4206では、動画像符号化装置における図22のフローチャートのステップS2203と同一の処理が行われる。更に詳細な処理内容に関しては、図26、図27、図28に示されるフローチャートの処理が施され、動画像符号化装置と同じ双方向動きベクトル値と差分ベクトルを伝送する参照画像の確定が行われる。
次に、確定した差分ベクトルを伝送する参照画像である動き修正参照画像に対して、動き情報として格納された修正前の動きベクトル値に対する、差分ベクトルを復号し(S4207)、修正前の動きベクトル値に差分ベクトルを加算することで、動き修正参照画像の動きベクトル値を算出する(S4208)。
結合動き情報インデックスで示す位置に格納されている動き情報に対して、予測方向は双方向に設定されると共に、動き情報が片方向予測であった場合の第2参照画像を指定する参照画像指定情報と動き修正参照画像における更新された動きベクトル値が、動き情報として格納され(S4209)、結合動き修正動き補償予測復号部3707より、図6における動き補償予測部608及び動き情報メモリ607に出力される。
実施の形態1における、動画像符号化装置及び動画像復号装置においては、従来の動画像符号化手法であるAVCにおける動き補償予測に対して、より多くの隣接ブロックの動き情報を選択候補として用いることで、周囲の動き情報をより有効に利用できる候補として登録し、周囲の動き情報に対して動きベクトル値の修正情報を差分ベクトルとして符号化する構成を取る新規の予測モードである結合動き修正予測モードを用いた。これにより、動き情報の相関性が高いが動きの連続性が十分保たれていない場合や、他ブロックの動き情報における動きベクトルが予測残差を符号化した際の歪などの要因で正確な動きに対してずれを生じている場合などに、隣接ブロックから生成される動き情報に対して、少ない情報で適切な動きベクトルの修正が出来、少ない付加情報で予測残差が少ない動き補償予測信号を生成する、符号化装置及び復号装置を実現できる。
また、実施の形態1における、動画像符号化装置及び動画像復号装置においては、動きベクトルを修正する参照画像の設定を、周囲の動き情報に格納された予測モードや周囲の動き情報から結合する動き情報を取得する際の取得方法を基準に、結合する動き情報における動きベクトルの信頼度を評価し、修正する必要のある参照画像を特定する。これにより、符号化時に伝送する指定情報を追加せずに、適切な動きベクトルの修正を可能とする効果を有する。
また、実施の形態1における、動画像符号化装置及び動画像復号装置においては、結合予測モードと共用して結合動き修正予測モードの基準参照画像及び基準動きベクトルが決定・算出される。これにより、結合動き修正予測モード用の新たな処理を最小限に抑制しつつ、付加情報を少なく符号化できる結合動き修正予測モードを具備することができる。
また、実施の形態1における、動画像符号化装置及び動画像復号装置においては、少ない負荷と符号量で双方向予測を行う結合動き修正予測モードを増やすことができ、以降に符号化・復号するブロックで参照する隣接ブロックの動き情報を増やすことができるため、符号化効率を向上させることができる。
(実施の形態2)
次に、本発明の実施の形態2についての説明を行う。実施の形態2は、実施の形態1に対して、結合動き修正予測モードを符号化する際の符号化処理が異なる。図43は、実施の形態2における動き予測モードの構成を示す図である。実施の形態1における、予測方向が片方向予測であるか双方向予測であるかを指示する情報として符号化される動き予測フラグ(inter_pred_flag)を、実施の形態2においては、図43に示すように、動き予測モード(inter_pred_mode)として、結合動き修正予測モードを示す値(Pred_MergeMvd)が0、片方向を示す値(Pred_LC)が1、双方向を示す値(Pred_BI)が2で符号化を行う。このため、実施の形態1におけるマージMvdフラグを伝送する必要は無くなり、3つの予測モードを識別する2つのフラグが1つのモード情報に統合される。
実施の形態2のシンタックスを使用すると、予測モードの発生頻度に偏りの大きい場合に、算術符号化などの発生頻度に応じた情報量で符号化できるエントロピー符号化を用いることで、予測モードに対する符号量を削減することが可能となる。
図44は、実施の形態2における、動き情報符号化データ生成処理によって生成される符号化ストリームのシンタックスを示す図である。実施の形態2における、動画像符号化装置及び動画像復号装置は、図34で示された動き情報符号化データ生成処理のフローチャート、及び図38で示された動き情報復号処理のフローチャートに記載された処理の一部のみが、実施の形態1における、動画像符号化装置及び動画像復号装置と異なる動作を行う。
図45は、実施の形態2の動画像符号化装置における動き情報符号化データ生成処理を説明するためのフローチャートである。以下、図34のフローチャートに示す動作と異なる部分のみを説明する。
図45のフローチャートにおいては、図34で示されたフローチャートにおける動き予測フラグの符号化処理であるステップS3407と、マージMvdフラグの符号化処理であるステップS3414及びステップS3418の処理が無くなり、動き予測モードの符号化処理であるステップS4500が新たに加わる処理構成を取る。
予測モードが結合予測モードでない場合(S3400:NO)、マージフラグを0で符号化し(S3401)、動き予測モードを符号化し(S4500)、片方向予測モードであるか否か判断する(S3408)。
また、予測モードが結合動き修正予測モードである場合(S3413:YES)、マージMvdモードを符号化する処理(S3414)を介さず、統合動き情報候補リストの大きさを判定する処理(S3415)に直接繋がると共に、予測モードが結合動き修正予測モードでない場合(S3413:NO)にも、マージMvdモードを符号化する処理(S3414)を介さず、L0参照画像指定情報の符号化処理(S3420)に直接繋がる処理構成となる。
図46は、実施の形態2の動画像復号装置における動き情報復号処理を説明するためのフローチャートである。以下、図38のフローチャートに示す動作と異なる部分のみを説明する。
図46のフローチャートにおいては、図38で示されたフローチャートにおける動き予測フラグの復号処理であるステップS3805と、マージMvdフラグの復号処理であるステップS3808、及びマージMvdフラグが1であるか否かを判断する処理であるステップS3809の処理が無くなり、動き予測モードの復号処理であるステップS4600と、動き予測モードが結合動き修正予測モードであるか否かを判定する処理であるステップS4601が新たに加わる処理構成を取る。
マージフラグが1でない場合(S3804:NO)、動き予測モードを復号し(S4600)、片方向予測モードであるか否か判断する(S3806)。また、片方向予測モードでない場合(S3806:NO)、動き予測モードが結合動き修正予測モードであるか否かを判定し(S4601)、結合動き修正予測モードである場合(S4601:YES)、結合動き修正予測動き情報復号処理を行い(S3810)、結合動き修正予測モードでない場合(S4601:NO)、双方向予測動き情報復号処理を行う(S3811)。
(実施の形態3)
次に、本発明の実施の形態3についての説明を行う。実施の形態3においては、実施の形態1に対して、結合動き修正動き補償予測モードで動き情報を符号化する際に適した動きベクトル値を、動き修正を行う参照画像と基準となる動きベクトル値が確定した後に、その周囲の動きに対して動きベクトルを検出することで、より予測効率の高い動き補償予測を実現出来る。
実施の形態3における、動画像符号化装置及び動画像復号装置と、実施の形態1における、動画像符号化装置及び動画像復号装置とを比較すると、動画像復号装置は同じであり、動画像符号化装置の構成の一部が異なる。具体的には、実施の形態1の動画像符号化装置に対して、図10の結合動き修正動き補償予測生成部1009における詳細構成である図13のブロック構成、及びその具体的処理を説明するフローチャートである図22に示された結合動き修正予測モード評価値生成処理が、異なる構成を取る。
図47は、実施の形態3における、図10の結合動き修正動き補償予測生成部1009における詳細構成を示す図である。結合動き修正動き補償予測生成部1009は、基準参照画像・動き修正参照画像選択部1300、動き修正参照画像動きベクトル検出部4700、結合動き情報修正動き補償予測生成部1302、及び差分ベクトル算出部1303を含む。
基準参照画像・動き修正参照画像選択部1300、結合動き情報修正動き補償予測生成部1302、及び差分ベクトル算出部1303に関しては、図13に示した実施の形態1と同じ動作が行われ、図13における動き修正参照画像動きベクトル取得部1301の機能が、動き修正参照画像動きベクトル検出部4700の機能に置き換わった構成を取る。
動き修正参照画像動きベクトル検出部4700には、入力端子100より符号化対象ブロックの画像信号と、復号画像メモリ106に記憶された参照画像信号が入力され、動き修正参照画像動きベクトル検出部4700は、基準参照画像・動き修正参照画像選択部1300より供給される、基準参照画像指定情報/基準参照画像動きベクトル値、及び動き修正参照画像指定情報/動き修正参照画像予測ベクトル値を用いて、動き修正参照画像に対する動きベクトルを検出する。
実施の形態3においては、上記機能を有するため、図1の予測モード判定部109に復号画像メモリ106からの入力が加わると共に、図10の結合動き修正動き補償予測生成部1009に、入力画像信号と復号画像メモリ106からの入力が加わる。
動き修正参照画像に対する動きベクトルの検出においては、2つの参照画像の内、基準参照画像に対しては確定した動きベクトル値で画像信号と同一位置より動きベクトル値だけ移動させた参照画像に相当する画像信号を取得する。動き修正参照画像に対しては動き情報として設定された動き修正参照画像予測ベクトル値を中心とした所定範囲の動きに対して、画像信号と同一位置より動き量だけ移動させた参照画像に相当する画像信号を取得し、2つの画像信号の加算平均を取った画像信号(双方向予測に相当する画像信号となる)を生成する。そして、符号化対象となる予測ブロック画像との誤差評価値を算出し、誤差評価値が最小となる動き修正参照画像の動き量を動き修正参照画像動きベクトルとする。
動き修正参照画像の動きベクトルの探索範囲がそのまま、伝送される差分ベクトルの値の範囲となるため、結合動き修正予測モードにおいて符号化に適した動きベクトルとしては、少ない探索範囲で良い。例えば水平・垂直に±2画素程度の範囲で探索を行うことで、結合動き修正予測モードに有効な動きベクトルを検出可能である。差分ベクトルの符号量に関しても換算し、誤差評価値に加えることにより、より精度の良い動きベクトル検出が可能である。
動き修正参照画像動きベクトル検出部4700により生成された、動き修正参照画像に対する動きベクトル値は、結合動き情報修正動き補償予測生成部1302及び差分ベクトル算出部1303に供給される。
図48は、実施の形態3における結合動き修正予測モード評価値生成処理を説明するためのフローチャートである。図48のフローチャートは、実施の形態1における結合動き修正予測モード評価値生成処理のフローチャートである図22に対して、動き修正参照画像の動きベクトル値を取得する処理であるステップS2204が無くなり、代わりに動き修正参照画像の結合動きベクトル値を基準に動きベクトルを補正する処理であるステップS4800が加わる構成を取る。
ステップS4800では、動き修正参照画像の結合動きベクトル値を基準に動きベクトルを探索し、検出された修正参照画像動きベクトル値を補正された動きベクトルとして格納する処理となる。
実施の形態3においては、結合動き修正予測モードの特性に合わせて、差分ベクトルを生成する基準となる動き情報から生成された動き修正参照画像の動きベクトル値を中心とした微小範囲において、2つの参照画像を用いた予測誤差の判定を行い、動き補償予測に用いる動きベクトル値を確定する。これにより、結合動き修正予測モードにおける最適な動き補償予測信号を予測モードの候補として用いることが出来、符号化効率を向上させることができる。
実施の形態3において、動きベクトルを探索する処理であるステップS4800における、別の方法として、ステップS4800の前に、実施の形態1における図1の動きベクトル検出部107より動き補正参照画像に対する検出した動きベクトル値を入力する処理であるステップS2204を行い、ステップS4800の代わりに、入力した動きベクトル値を基準に動きベクトルを探索する方法を用いることも可能である。
上述した別の方法は、隣接ブロックの動き情報と大きく異なる、動き修正参照画像の補正される動きベクトルを検出することが可能であり、その場合には、結合動き修正予測モードが双方向予測モードに対して、双方向の参照画像指定情報及び予測ベクトル候補のインデックスを伝送しないことで、少ない動き情報で符号化できる効果を発揮できる。
上述した別の方法は、ステップS4800の動き修正参照画像の結合動きベクトル値を基準に動きベクトルを探索する方法と併用して、結果として検出される動きベクトル値の予測誤差が少ない動きベクトル値を用いることも可能であり、隣接ブロックの動き情報と微妙に異なる動きと大きく異なる動きの両方に対して、動き修正参照画像の補正される動きベクトルとして適切な動きベクトル値を検出することが可能となる。
(実施の形態4)
次に、本発明の実施の形態4についての説明を行う。実施の形態4においては、実施の形態1に対して、動き修正参照画像判定のアルゴリズムが異なる。実施の形態4においては、動き修正参照画像を判定する基準が符号化対象画像と参照画像の時間的距離を基準とする手法をとる。
図49(a)〜(c)は、実施の形態4における距離優先アルゴリズムを示す概念図である。図49(a)〜(c)に示すように、結合動き情報が空間BiPredである場合、空間UniPredである場合、時間BiPredである場合のすべてにおいて、導出されたL0参照画像、L1参照画像の内で、符号化対象画像に時間的に遠い参照画像を、動きベクトルの信頼度が低いと判定し、差分ベクトルを伝送する修正動き参照画像に設定する。
動きの連続性が高い動画像シーケンスの場合には、符号化対象画像により近い参照画像からの動きベクトルの信頼度が高くなるため、遠い参照画像に対して動きベクトル値を補正することで、より適した動き補償予測信号が生成できる。
実施の形態4においては、実施の形態1における、動画像符号化装置及び動画像復号装置のそれぞれに適用される、図26に示した双方向動きベクトル値、差分ベクトルを伝送する参照画像確定処理のフローチャートが異なる処理になる。
図50は、実施の形態4における、双方向動きベクトル値、差分ベクトルを伝送する参照画像確定処理を説明するためのフローチャートである。図50のフローチャートは、実施の形態1における図26のフローチャートに対して、スケーリングされた動きベクトルが片方向(1つ)であるか否かの判定処理であるステップS2602と、片方向であった場合(S2602:YES)における、スケーリングされた動きベクトルを持つ参照画像を修正参照画像に設定する処理であるステップS2603が無くなった処理構成となる。
(実施の形態5)
次に、本発明の実施の形態5についての説明を行う。実施の形態5においては、実施の形態1に対して、結合動き修正動き補償予測モードで動き修正を行う参照画像をスケーリングを用いて生成された動きベクトルに対して全て設定し、2つのスケーリング動きベクトルを有する場合には、2つの差分ベクトルを符号化する構成を取る。
実施の形態5においては、スケーリング処理で生成された際の動きベクトルの精度が直接空間隣接ブロックの動き情報を適用した場合の動きベクトルよりも低いという判断基準で、スケーリング処理で生成された動きベクトルを持つ参照画像の全てに差分ベクトルを伝送する。
図51(a)〜(c)は、実施の形態5における、結合動き情報が空間BiPredである場合、空間UniPredである場合、時間BiPredである場合における、差分ベクトルを伝送する参照画像を特定する処理構成の概念図を示す。実施の形態5においては、実施の形態1と同様に、図24に示されるように結合動き情報の種類に応じて、スケーリングされた動きベクトルが動き情報として生成される。
図51(a)に示すように結合動き情報が空間BiPredである場合には、スケーリングベクトル数が0であるため、実施の形態1と同様に、差分ベクトルを伝送する参照画像は符号化画像からの時間距離の長い参照画像を選択する。
図51(b)に示すように結合動き情報が空間UniPredである場合には、スケーリングベクトル数が1であるため、実施の形態1と同様に、スケーリングされた動きベクトルを持つ1つの参照画像が、差分ベクトルを伝送する参照画像として指定される。
図51(c)に示すように結合動き情報が時間BiPredである場合には、スケーリングベクトル数が2であるため、実施の形態1と異なり、スケーリングされた動きベクトルを持つ2つの参照画像が、差分ベクトルを伝送する参照画像として指定される。
図52は、実施の形態5における、各予測モードにおける伝送する動き情報の関係を示す図である。実施の形態5においては、結合動き修正予測モードの場合にて、空間UniPred及び空間BiPredの場合には、1つの結合動き情報インデックスと1つの差分ベクトルを伝送することで、動き情報を符号化する。時間BiPredの場合には、1つの結合動き情報インデックスと2つの差分ベクトルを伝送することで、動き情報を符号化する。
実施の形態5における動画像符号化装置及び動画像復号装置は、実施の形態1における動画像符号化装置及び動画像復号装置と比較し、図26に示した双方向動きベクトル値、差分ベクトルを伝送する参照画像確定処理のフローチャート、図34に示した動画像符号化装置による動き情報符号化データ生成処理のフローチャート、及び図42に示した動画像復号装置による結合動き修正予測動き情報復号処理のフローチャートの処理が一部異なる。
図53は、実施の形態5における双方向動きベクトル値、差分ベクトルを伝送する参照画像確定処理を説明するためのフローチャートである。双方向動きベクトル値、差分ベクトルを伝送する参照画像確定処理は、実施の形態1における図26のフローチャートに対して、スケーリングされた動きベクトル数が1であるか否かの判断処理であるステップS2602を無くし、スケーリングされた動きベクトル数を管理するパラメータであるScaled_Merge_ref_numを新たに設けて条件判断を行う。
双方向の参照画像の動きベクトル値のうちスケーリングされた動きベクトルの数をScaled_Merge_ref_numに設定する処理を行う(S5300)。Scaled_Merge_ref_numが1の場合(S5301:YES)、スケーリングされた動きベクトルを持つ参照画像を動き修正参照画像に設定する(S2603)。Scaled_Merge_ref_numが2の場合(S5302:YES)、両方の参照画像を動き修正参照画像に設定する(S5303)。Scaled_Merge_ref_numが0の場合(S5302:NO)、実施の形態1と同様に距離に応じた参照画像を設定するためのステップS2604に進む。
図54は、実施の形態5における、符号化シンタックスの一例を示す図である。動き修正予測動き情報復号処理において生成するScaled_Merge_ref_numをもとに、差分ベクトルを2つ(水平・垂直で計4要素)伝送するか、1つ(計2要素)伝送するかが切り替わる構成になっている。
図55は、実施の形態5の動画像符号化装置における動き情報符号化データ生成処理を説明するためのフローチャートである。動き情報符号化データ生成処理は、実施の形態1における図34のフローチャートに対して、結合動き情報候補リストが1より大きい場合(S3415:YES)、結合動き補償インデックスを符号化する処理(S3416)を行う。
Scaled_Merge_ref_numが2である場合(S5500:YES)、L0差分ベクトル値を符号化し(S5501)、更にL1差分ベクトル値を符号化する(S5502)処理が新たに加わる処理構成となる。
図56は、実施の形態5の動画像復号装置における結合動き修正予測動き情報復号処理を説明するためのフローチャートである。結合動き修正予測動き情報復号処理は、実施の形態1における図42のフローチャートに対して、図53で示した双方向動きベクトル値、差分ベクトルを伝送する参照画像確定処理(S4206)の後に、Scaled_Merge_ref_numが2である場合(S5600:YES)、L0差分ベクトル値を復号し(S5601)、L0参照画像の動き情報より算出された動きベクトル値に加算することでL0参照画像の動きベクトル値を算出する(S5602)。更にL1差分ベクトル値を復号し(S5603)、L1参照画像の動き情報より算出された動きベクトル値に加算することでL1参照画像の動きベクトル値を算出する(S5604)処理が、新たに加わる処理構成となる。
また、実施の形態5における別の構成として、常に2つの参照画像に対して差分ベクトルを伝送する構成を取ることも可能である。図57(a)、(b)は、実施の形態5における常に2つの参照画像を送る構成における空間BiPred及び空間UniPredの差分ベクトルの状態の概念図を示す。図57(a)は空間BiPredにおいて2本の差分ベクトルを伝送する例を示し、図57(b)は空間UniPredにおいて2本の差分ベクトルを伝送する例を示す。
図58は、常に2つの参照画像に対して差分ベクトルを伝送する構成を取る場合に採用可能な符号化シンタックスの一例を示す図である。結合動き修正予測モードであるmerge_mvd_flagが1の場合には、常に2つの差分ベクトル(計4要素)が符号化される。
(実施の形態6)
次に、本発明の実施の形態6についての説明を行う。実施の形態6においては、実施の形態1に対して、結合予測モードに用いる結合動き情報候補リストと、結合動き修正予測モードに用いる結合動き情報候補リストを異なるアルゴリズムで生成する構成を取る。
実施の形態1では、結合動き修正予測モードにおいて、差分ベクトル値が(0、0)である場合であって、空間BiPRed及び時間BiPredの場合に、結合予測モードと同じ動き補償予測画像が生成される。実施の形態6においては、重複する動き情報を結合動き情報候補リストの生成時に切り分け、もしくは異なる位置の隣接ブロックからの動き情報適用を行うことで、結合予測モードと結合動き修正予測モードの、同一動き情報伝送機能の重複を抑制し尚且つより多くの動き情報を選択可能にする利点を有する。
実施の形態6における動画像符号化装置及び動画像復号装置と、実施の形態1おける動画像符号化装置及び動画像復号装置との構成の違いは、図10に示した動画像符号化装置における予測モード判定部109の構成、及び図37に示した動画像復号装置における動き情報復号部606の構成となる。
図59は、実施の形態6の動画像符号化装置における予測モード判定部109の構成を示す図である。図59の構成において、実施の形態1において結合動き修正動き補償予測生成部1009に入力されていた結合動き情報算出部1007からのデータの流れが削除され、結合動き修正動き情報算出部5900が追加される。
結合動き修正動き情報算出部5900は、図1の動き情報メモリ111より供給される隣接ブロックの動き情報における候補ブロック群を用いて、片方向であるか双方向であるかを示す予測方向、参照画像指定情報、動きベクトル値で構成される動き情報として、複数の動き情報を結合動き修正動き情報候補リストと共に生成し、結合動き修正動き補償予測生成部1009に供給する。
結合動き修正動き情報算出部5900は、結合動き情報算出部1007とは異なる動き情報の候補を取得することで、異なる動き情報と動き情報の候補リストを生成することが可能である。一例としては、図16に示される空間方向予測ブロックや、図18に示される時間方向予測ブロックからの取得候補数を変化させる方法、異なる位置であるブロックEや、ブロックB4、ブロックA4などを空間候補ブロック群の候補に加える方法、空間方向の候補ブロックと時間方向の候補ブロックのリストへの追加順を変化させる方法、ある特定の動き情報に制限してリストへの追加を行う方法などが挙げられる。
図60は、実施の構成6の動画像復号装置における動き情報復号部606の構成を示す図である。図60の構成において、実施の形態1において結合動き修正動き補償予測復号部3707に入力されていた結合動き情報算出部3705からのデータの流れが削除され、結合動き修正動き情報算出部6000が追加される。
結合動き修正動き情報算出部6000では、図59における動画像符号化装置の結合動き修正動き情報算出部5900と同じ処理が行われ、結合動き修正動き情報算出部6000は、図6の動き情報メモリ607より供給される隣接ブロックの動き情報における候補ブロック群を用いて、片方向であるか双方向であるかを示す予測方向、参照画像指定情報、動きベクトル値で構成される動き情報として、複数の動き情報を結合動き修正動き情報候補リストと共に生成し、結合動き修正動き補償予測復号部3707に供給する。
図61は、実施の形態6における符号化シンタックスの一例を示す図である。結合予測モードにおけるインデックス情報であるmerge_idxと異なる情報として、結合動き修正予測モードにおけるインデックス情報であるmerge_mvd_idxが取得・管理される構造を取る。
実施の形態6の他の構成として、結合予測モードにおけるSkipモードと非Skipモードにおける、適用可能な動き情報の候補を異なるものとする構成も考えられる。図62は、実施の形態6における各予測モードで適用する結合情報を異なるものとする一例を示す図である。図62に示すように、Skipモードにおいては空間BiPredの候補動き情報のみが適用され、非Skipモードの結合予測モード(Merge)においては、空間UniPred及び空間BiPredの候補動き情報が適用され、結合動き修正予測モード(MergeMvd)では、空間UniPred及び時間BiPredの候補動き情報が適用される。
Skipモードと非Skipモードで適用可能な動き情報の候補を変える場合、図61のSkipモードである場合の候補インデックスは結合予測モードと異なるため、merge_idxはskip_idxに置き換えられる。
結合動き修正予測モードにおいては、より差分ベクトル伝送による効果が高いスケーリングされた動き情報が生成される時間BiPredや、新しい動き情報をスケーリングで生成する空間UniPredを有効にし、結合予測モードにおいては、動きの連続性が高い動き情報が生成されやすい空間UniPredと空間BiPredを有効にし、Skipモードにおいては、動きの連続性が高い場合により品質の良い予測画像が生成できる空間BiPredのみを有効にすることで、結合予測モードと結合動き修正予測モードの機能の重複を抑制し、候補数に依存するインデックス情報量を削減しつつ、有効な動き補償予測信号を生成できる構成を取ることが出来る。
(実施の形態7)
次に、本発明の実施の形態7についての説明を行う。実施の形態7においては、実施の形態1に対して、結合動き修正予測モードにおいて伝送する1つの差分ベクトル値を2つの参照画像に作用する構成を取る。
図63(a)、(b)は、実施の形態7における差分ベクトルの2つの参照画像に対する作用を示す概念図である。図63(a)、(b)に示すように、1つの差分ベクトルが伝送され、差分ベクトル値を双方向予測の両方の参照画像に対して補正ベクトル値として作用させる。
実施の形態1においては、差分ベクトル値は、動き修正参照画像として選択された1つの参照画像に対して、結合動き情報より生成された動きベクトル値と動き補償予測に用いた動きベクトル値の差分を示していた。実施の形態1における差分ベクトルは、結合動き情報における動きベクトルの一部にずれがあるが、正しい(結合動き情報による動きをそのまま反映させることが可能な)動きベクトルも存在し、その動きベクトルを信頼した状態における補正情報である。
実施の形態7における差分ベクトルは、動き情報の時間相関(時間的連続性)が高く保たれている状態における、結合動き情報全体に対する補正情報となり、特に結合動き情報が時間BiPredの場合などの時間相関をもとに生成された動き情報の補正において、少ない情報で有効な補正情報が伝送され、符号化効率を向上できる。
実施の形態7における差分ベクトルの作用は、差分ベクトルを送る基準参照画像においては、実施の形態1における差分ベクトルと同様に、結合動き情報より生成された動きベクトル値と動き補償予測に用いた動きベクトル値の差分を示す。差分ベクトルを送る基準参照画像でない、双方向予測の他方の参照画像においては、その作用に2つの手法を用いることが可能である。
1つは、図63(a)に示すように、差分ベクトルをスケーリングした値が、他方の参照画像における結合動き情報より生成された動きベクトル値と動き補償予測に用いた動きベクトル値の差分を示す(ミラータイプ)手法である。もう1つは、図63(b)に示すように、スケーリングを行わずに、基準参照画像と同様に差分ベクトル値が他方の参照画像における結合動き情報より生成された動きベクトル値と動き補償予測に用いた動きベクトル値の差分を示す(平行移動タイプ)手法である。
以降の実施の形態7の説明においては、ミラータイプの差分ベクトルの作用手法を用いるが、ミラータイプと平行移動タイプの手法を、動画像の特性や符号化時の予測構造などにより適応的に切り替えることも可能である。
実施の形態7における動画像符号化装置と、実施の構成1における動画像符号化装置との構成の違いは、図10の結合動き修正動き補償予測生成部1009における詳細構成である図13のブロック構成、及びその具体的処理を説明するフローチャートである図22に示された結合動き修正予測モード評価値生成処理である。実施の形態7における動画像復号装置と、実施の構成1における動画像復号装置との構成の違いは、図42に示した結合動き修正予測動き情報復号処理の処理フローチャートである。
実施の形態7における図13のブロック構成は、実施の形態3における図10の結合動き修正動き補償予測生成部1009における詳細構成である図47と同じ構成を取る。図64は、実施の形態7における、2つの参照画像の結合動きベクトル値を基準とした動きベクトル探索手法の一例を示す図である。
動き修正参照画像動きベクトル検出部4700が差分ベクトルの候補としての検出範囲に対して、動き修正参照画像に対してはそのまま差分ベクトルとして、基準参照画像に対してはスケーリングされた差分ベクトルとして結合動き情報より生成された各々の参照画像に対する動きベクトル値に対して作用させて取得した画像信号を、加算平均することで生成し、符号化対象となる予測ブロック画像との誤差評価値を算出し、誤差評価値が最小となる動き修正参照画像の動き量を動き修正参照画像動きベクトルとする。
実施の形態7における説明では、他の実施の形態との処理の共通性を取るために、動き修正参照画像の差分ベクトル値を、伝送する差分ベクトル値に設定しているが、基準参照画像の差分ベクトル値を、伝送する差分ベクトル値に設定する手法をとることも可能であり、これに限定されない。つまり、実施の形態7のミラータイプの差分ベクトルを伝送する構成では、どちらの参照画像を基準に差分動きベクトルを伝送しても良いため、通常は、差分ベクトルの符号量を小さくするため、符号化対象画像から距離の近い方の参照画像を動き修正参照画像に設定し、動き修正参照画像に対する差分動きベクトルを伝送する。他方(符号化対象画像から距離の遠い又は同一)の参照画像では、伝送する差分動きベクトルに対して倍率の絶対値が1以上のスケーリング処理を行い、伝送した差分動きベクトルと同じかそれ以上の大きさのスケーリング差分動きベクトルを得る。
図65は、実施の形態7における結合動き修正予測モード評価値生成処理を説明するためのフローチャートである。実施の形態1における結合動き修正予測モード評価値生成処理のフローチャートである図22に対して、動き修正参照画像の動きベクトル値を取得する処理であるステップS2204が無くなり、代わりに2つの参照画像の結合動きベクトル値を基準に動きベクトルを補正する処理であるステップS6500が加わる。
ステップS6500では、基準参照画像と動き修正参照画像のそれぞれの結合動きベクトル値を基準に、動き修正参照画像の補正動き量に対してスケーリングされた動き量が基準参照画像の補正動き量になるようにして、動きベクトルを探索し、それぞれの参照画像に補正動き量を加算した動きベクトル値を格納する処理となる。
図66は、実施の形態7における結合動き修正予測動き情報復号処理を説明するためのフローチャートである。実施の形態1における結合動き修正予測動き情報復号処理のフローチャートである図42に対して、動き修正参照画像の動きベクトル値を算出する処理であるステップS4208が無くなり、代わりに動き修正参照画像及び他方の参照画像(基準参照画像)の動きベクトル値を算出する処理であるステップS6600が加わる。
動きベクトル値の算出は、復号した差分ベクトル値を動き修正参照画像に対する動き情報より生成された動きベクトル値に加算し、差分ベクトル値をスケーリングした値を基準参照画像に対する動きベクトル値に加算することで、2つの参照画像の動きベクトル値を算出する。
図67は、実施の形態7における差分ベクトルの作用を両方の参照画像に適用する別構成を示す概念図である。差分ベクトルをその対象となる参照画像の結合動き情報の動きベクトルに加算して復号した動きベクトル値をスケーリングすることにより、他方の参照画像の動きベクトル値を生成する手法も考えられ、ミラータイプにおける動き補償予測信号とほぼ同等の予測信号が生成できる。
この手法は、結合動き情報が時間BiPredの場合に、結合動き情報候補生成処理と結合動き修正予測動き情報復号処理を統合して行うことで実現出来る。この手法では、結合動き情報の動きベクトルに差分動きベクトルを加算した後にスケーリング処理が1回のみ行われるため、スケーリングの演算精度に起因する劣化が発生しにくく、より精度の良い動き補償予測信号を生成できる。
また、実施の形態7と他の実施の形態を結合動き情報の特性によって切り替える構成を取ることも拡張構成として可能であり、時間BiPredなどの実施の形態7の有効性が高い条件において採用し、他の条件では実施の形態1を施すことで、更に効率のよい動き情報の伝送が可能となる。例えば、実施の形態7の有効性が高い条件とは、符号化対象画像と基準参照画像との距離が、符号化対象画像と動き修正参照画像の距離と同一の場合である。この場合、伝送する差分ベクトルをスケーリングせずに(スケーリング倍率の絶対値が1)他方の参照画像に対する差分ベクトルを算出できるため、スケーリングの演算精度に起因する劣化が発生しない。
(実施の形態8)
次に、本発明の実施の形態8についての説明を行う。実施の形態8においては、実施の形態1に対して、結合予測モードと結合動き修正予測モードを統合し、結合予測モードを符号化するシンタックス構造上で結合動き修正予測モードにおける差分ベクトル値の伝送を行う構成を取る。
実施の形態1における結合動き修正予測モードにおいて、差分ベクトル値が(0、0)である場合で且つ、空間BiPRed及び時間BiPredの場合に、結合予測モードと同一の動き補償予測画像が生成される冗長性(機能の重複)を、結合予測モードと結合動き修正予測モードを統合して、結合動き情報を用いる場合に後述するSkipモード以外では常に差分ベクトル値が伝送される形で削減し、尚且つ動き補償予測モードとその符号化シンタックスを軽量化できる利点を有する。
図68は、実施の形態8における動き補償予測モードの定義を示す図である。動き補償予測モードは、動き検出予測モードと結合動き修正予測モード(マージMVDモード)の2つのモードで構成され、動き検出予測モードとして片方向予測と双方向予測の2つの予測方法が定義される。
実施の形態1において、予測差分情報を符号化伝送しない結合予測モードとして定義されていたSkipモードは、実施の形態8においては、予測差分情報と差分ベクトル情報を符号化伝送しない結合動き修正予測モードとして定義し、Skipモードにおいては、実施の形態1と同様に結合動き情報インデックスのみを伝送する。
実施の形態8における動画像符号化装置と、実施の構成1における動画像符号化装置との構成の違いは、図10に示される予測モード判定部109の構成と、図14で示される動き補償予測モード/予測信号生成の処理、及び図34で示される動き情報符号化データ生成処理である。また、実施の形態8における動画像復号装置と、実施の構成1における動画像復号装置との構成の違いは、図37に示される動き情報復号部606の構成と、図38で示される動き情報復号処理、及び図42で示される結合動き修正予測動き情報復号処理のフローチャートである。
図69は、実施の形態8の動画像符号化装置における予測モード判定部109の構成を示す図である。実施の形態8における予測モード判定部109の構成は、図10で示された実施の形態1における構成から、結合動き補償予測生成部1008とその動作が無くなった構成を取る。
図70は、実施の形態8の動画像符号化装置における動き補償予測モード/予測信号生成処理を説明するためのフローチャートである。実施の形態8における動き補償予測モード/予測信号生成処理は、図14のフローチャートで示される実施の形態1における処理から、結合予測モード評価値生成処理であるステップS1401が無くなった構成を取る。
図71は、実施の形態8の動画像符号化装置における動き情報符号化データ生成処理を説明するためのフローチャートである。実施の形態8における動き情報符号化データ生成処理は、図34のフローチャートに示される実施の形態1における処理から、ステップS3400、ステップS3401、ステップS3413、ステップS3414及びステップS3418の処理が無くなり、代わりに予測モードが結合動き修正予測モードであるか否かの判断であるステップS7100と、予測誤差信号を符号化せず、且つ差分ベクトルが0であるか否かの判断であるステップS7101が加わる構成を取る。
最初に、予測モードが結合動き修正予測モードである場合(S7100:YES)、予測誤差信号を符号化せず、且つ差分ベクトルが0である場合(S7101:YES)、ステップS3402、ステップS3404、及びステップS3405で構成されるSkip条件の動き情報符号化処理が行われる。予測誤差信号を符号化するか、差分ベクトルが0である場合(S7101:NO)、マージフラグを1として符号化し(S3403)、結合動き修正予測モードの動き情報符号化処理であるステップS3415、ステップS3416、及びステップS3417の処理が行われる。ここで、実施の形態8のマージフラグは、結合動き修正予測モードであるかどうかに使用され、実施の形態1のように、結合予測モードであるかどうかを表していないことに注意する。
予測モードが結合動き修正予測モードでない場合(S7100:NO)、マージフラグを0として符号化し(S3406)、動き予測フラグを符号化する(S3407)。片方向予測モードである場合(S3408:YES)、片方向予測モードの動き情報符号化処理であるステップS3409、ステップS3410、ステップS3411、及びステップS3412が行われ、片方向予測モードでない場合(S3408:NO)、ステップS3419からステップS3426までの双方向予測モードの動き情報符号化処理が行われる。
図72は、実施の形態8における動き情報に関する符号化シンタックスの一例を示す図である。図72に示す例では、merge_flagで結合動き修正予測モードが指定され、Skipモードでない結合動き修正予測の場合には、差分ベクトルが伝送される構造になる。
図73は、実施の形態8の動画像復号装置における動き情報復号部606の構成を示す図である。実施の形態8における動き情報復号部606の構成は、図37で示された実施の形態1における構成から、結合動き補償予測復号部3706とその動作が無くなった構成を取る。
図74は、実施の形態8の動画像復号装置における動き情報復号処理を説明するためのフローチャートである。実施の形態8における動き情報復号処理は、図38で示された実施の形態1における処理から、結合予測動き情報復号処理であるステップS3802と、マージMvdフラグの復号処理であるステップS3808と、マージMvdフラグが1であるか否かの判断であるステップS3809が無くなり、実施の形態1においては、マージMvdフラグが1の場合に処理が施されていた結合動き修正予測動き情報復号処理であるステップS3810が、Skipモードである場合(S3801:YES)及びマージフラグが1である場合(S3804:YES)に処理を行う構成を取る。
図75は、図74のステップS3810の詳細動作を説明するためのフローチャートである。図74のステップS3810では、結合動き修正予測動き情報復号処理が行われる。
実施の形態8の動画像復号装置における結合動き修正予測動き情報復号処理は、図42で示された実施の形態1における結合予測動き情報復号処理に対して、双方向動きベクトル値、差分ベクトルを伝送する参照画像確定処理であるステップS4205の後に、Skipモードであるか否かの判断処理であるステップS7500と、差分ベクトル値を0にセットする処理であるステップS7501が挿入される構成を取る。
Skipモードである場合(S7500:YES)、差分ベクトルは伝送されず動きベクトル補正を行わないので、差分ベクトル値として0をセットして(S7501)、差分ベクトルの復号処理であるステップS4207を行わずに、動き修正参照画像の動きベクトル値の算出処理であるステップS4208に進む。
図76(a)〜(c)は、実施の形態8における別構成の結合動き修正予測モードの差分ベクトル伝送手法を示す概念図である。実施の形態8における第2の処理構造として、結合動き情報が空間UniPredで生成される場合に、実施の形態1における結合予測モードでそのまま片方向予測として動き情報を用いる条件が失われることを回避し、図76(b)に示すように空間UniPredの場合には片方向予測のままで差分ベクトルを伝送し、動きベクトルを補正する手法をとることも可能である。実施の形態1における結合予測モードの利点を活かしつつ、結合動き修正予測モードの利点を取り入れた動き補償予測構造を取ることが可能である。この場合の空間UniPredでは、基準参照画像を設定せず、片方向予測で指定される参照画像を動き修正参照画像に指定する。
実施の形態8における第3の処理構造として、結合動き情報が空間UniPredで生成される場合に、図28に示した第2参照画像インデックス確定処理において、最初に基準参照画像と同じ参照画像が第2参照画像候補リスト内に存在する場合に、基準参照画像と同じ参照画像に対する参照画像インデックスを第2参照画像インデックスに確定して、双方向予測の動き情報を算出する手法をとることも可能である。
第2参照画像として基準参照画像と同一参照画像が設定された場合に、差分ベクトル値が(0,0)の場合には、結合予測モードにおける空間UniPred動き情報を用いた場合と同じ動き補償予測信号を生成出来るため、第2の処理構造と同様に実施の形態1における結合予測モードでそのまま片方向予測として動き情報を用いる条件が失われることを回避できる。
第2参照画像として基準参照画像と同一参照画像が設定された場合に、差分ベクトル値として(0,0)以外が伝送される場合には、同一参照画像の微小に異なる動きで表現される動き補償予測信号を平均化することで、参照画像に微小な変化を加えた動き補償予測信号を新たな候補として加えることが出来、符号化効率を向上させることが可能である。
これら実施の形態8の各構成は、それぞれの構成を組み合わせた構成で適用することも可能である。例えば第3の処理構造を基本とする場合に、第2参照画像として基準参照画像と同じ参照画像が設定出来ない場合(基準参照画像と同じ参照画像が第2参照画像候補リスト内に存在しない場合)に、他の参照画像を第2参照画像として選択して双方向予測の動き情報を生成する処理構成が適用できる。
また、第3の処理構造を基本とする場合に、第2参照画像として基準参照画像と同じ参照画像が設定出来ない場合に、第2の処理構造に示したように片方向予測として動き情報を生成し、片方向予測の参照画像の動きベクトルに対する差分ベクトルを符号化する処理構成も適用可能である。この場合には第2の処理構造と同様に、結合予測モードと同じ動き補償予測信号を生成する全ての条件を結合動き修正予測モードとして符号化出来るという効果が加わる。
これらの処理構造は、符号化の予測構造や画像シーケンスの特性に応じて、所定単位で切り替えることも可能であり、符号化処理を行う画像の特性に適した動き情報を用いた動き補償処理が実現できる。
(実施の形態9)
次に、本発明の実施の形態9についての説明を行う。実施の形態9においては、実施の形態1に対して、結合予測モードにおいて表現可能な、結合動き修正予測モードで差分ベクトルが(0,0)の場合に、復号される動きベクトル値に差分動きベクトルが(0,0)以外の場合と別の定義を行う事で、符号化する動き情報の冗長性を削減しつつ新たな動き情報の候補を伝送可能にする構成を取る。
実施の形態9においては、復号時に結合動き修正予測モードにおいて差分ベクトル値が0である場合に、動きベクトル値として固定値である(0,0)ベクトルを復号する構成を取る。尚、復号する動きベクトル値自体は、暗黙で復号できる値であれば良く、(0,0)でない固定値を設定したり、結合動き情報として算出される動きベクトル値に対して、所定の値を加算したり(ある程度の差分ベクトル符号量を有する値)、上記条件用の動きベクトル値を隣接ブロックの別の動き情報を用いて取得する構成も、実施の形態9における効果を実現する構成とすることが可能である。
実施の形態9における動画像符号化装置と実施の形態1の動画像符号化装置との構成の違いは、図22に示される結合動き修正予測モード評価値生成処理である。また、実施の形態9の動画像復号装置と実施の形態1の動画像復号装置との構成の違いは、図42で示される結合動き修正予測動き情報復号処理である。
図77は、実施の形態9の動画像符号化装置における結合動き修正予測モード評価値生成処理を説明するためのフローチャートである。実施の形態9における結合動き修正予測モード評価値生成処理は、図22で示された実施の形態1における処理に対して、動き修正参照画像の動きベクトルを取得する処理であるステップS2204の後に、動き修正参照画像の動きベクトルが(0,0)であるか否かの判定処理であるステップS7700と、差分ベクトルに(0,0)を設定する処理であるステップS7701と、動き修正参照画像の動きベクトルを固定値に置き換える処理であるステップS7702が加わり、差分ベクトル値生成処理であるステップS2205の後に、差分ベクトルが(0,0)であるか否かの判定処理であるステップS7703が加わる構成を取る。
図1の動きベクトル検出部107より取得した動き修正画像に対する動きベクトル値が(0,0)となる場合(S7700:YES)、実施の形態9における結合動き修正予測モードにおいては、差分ベクトルを(0,0)に設定することで少ない符号量で動き情報が符号化できるため、差分ベクトル値を(0,0)に設定し(S7701)、結合動き情報より設定された動き修正画像に対する動きベクトル値に固定値である(0,0)を設定して(S7702)、以降の双方向動き補償予測信号生成処理を行う。
また、動き修正画像に対する動きベクトル値と、結合動き情報より設定された動き修正画像に対する動きベクトル値が同一である場合には、差分ベクトル値が(0,0)となるため、差分ベクトル値が(0,0)の場合(S7703:YES)、結合動き情報より設定された動き修正画像に対する動きベクトル値に固定値である(0,0)を設定して(S7702)、以降の双方向動き補償予測信号生成処理を行い、予測誤差値を評価することで、(0,0)ベクトルを用いた動き補償予測を選択候補としてモード判定を行うことが可能となる。
実施の形態9において、実施の形態3の動画像符号化装置のように、結合動き修正予測モード評価値生成の中で、動きベクトルの探索を可能とする構成を取る場合には、結合動き修正予測モード評価値生成処理を行うことが可能である。図78は、実施の形態9における別構成の結合動き修正予測モード評価値生成処理を説明するためのフローチャートである。図22で示された実施の形態1における処理に対して、動き修正参照画像の動きベクトルを取得する処理であるステップS2204が無くなり、代わりに動き修正参照画像の結合動きベクトル値を基準に差分ベクトル(0,0)の場合を除いて動きベクトルを検出する処理であるステップS7800、動き修正参照画像の動きベクトル値を固定値(0,0)にした際の予測誤差を算出するステップS7801、補正した動きベクトル値により予測誤差と動きベクトル値を固定値(0,0)での予測誤差を比較する処理であるステップS7802、及び動き修正参照画像の結合動きベクトル値を固定値に置き換え、差分ベクトルを(0,0)に設定する処理であるステップS7803が加わる構成を取る。
ステップS7800では、結合動き情報から算出した修正参照画像の動きベクトル値をそのまま利用する条件を排除しているため、動きベクトルの補正が0になる差分ベクトル(0,0)での動きベクトル探索を行わないことで、動きベクトル値の候補に登録されないようにする。
その後で、動き修正参照画像の動きベクトル値を固定値に指定した状態の予測誤差評価値を算出し(S7801)、ステップS7800で検出された動きベクトル値を用いた場合に予測誤差評価値と比較して、固定値における予測誤差が少ない場合(S7802:YES)、動き修正参照画像の結合動きベクトル値を固定値に置き換えて、差分ベクトル値を0に設定して(S7803)、動き情報符号量算出処理であるステップS2206に進む。
上記処理を行うことで、実施の形態9で結合動き修正予測モードが取りうる動き情報の中で最良の動き補償予測を可能とする動き情報を生成でき、符号化効率を向上できる。
図79は、実施の形態9の動画像復号装置における結合動き修正予測動き情報復号処理を説明するためのフローチャートである。実施の形態9における結合動き修正予測動き情報復号処理は、図42で示された実施の形態1における処理に対して、差分ベクトル値を復号する処理であるステップS4207の後に、差分ベクトル値が(0,0)であるか否かを判定する処理であるステップS7900と、動き修正参照画像の動きベクトル値を固定値に置き換える処理であるステップ7901が加わる構成を取る。
実施の形態9における動画像復号装置においては、上述したように差分ベクトルが0の場合(S7900:YES)、復号される動きベクトル値を固定値(0,0)に設定するために動き修正参照画像の動きベクトル値を固定値(0,0)に置き換える(S7901)。ステップS7901の後で、動き修正参照画像の動きベクトル値を算出する(S4208)ことで、固定値(0,0)に差分ベクトル(0,0)が加算された復号値として、固定値が動き修正参照画像の動きベクトル値として算出される。
実施の形態9において、結合動き修正予測モードの全ての結合動き情報候補に対して、差分ベクトル値が(0,0)の場合の固定値置換え処理を行っているが、空間UniPredの場合には、結合予測モードにおける動き情報と結合動き修正予測モードにおける動き情報は異なる。つまり、空間UniPredの場合には、結合予測モードにおける動き情報と結合動き修正予測モードに間に機能の重複が存在しないため、差分ベクトル(0,0)の条件で動きベクトルを固定値に置き換える必要はなく、結合動き情報の種類に応じて、置換え処理を行うか否かを切り替える手法を用いる事が可能であり、より適した動き情報の表現を可能とする。
以上述べた実施の形態において、双方向予測が利用可能なピクチャ(Bピクチャ)を前提に説明したが、適応双方向予測を有さないピクチャ(Pピクチャ)においても、本発明の実施の形態を適用することは可能である。つまり、本発明の実施の形態をPピクチャに適用すると、結合動き修正予測モードでは、常に片方向予測で動き補償を行うことになり、結合予測モードで指定される参照画像と同一の参照画像に対して差分ベクトルを加算し、動きベクトルを修正する処理を行う。
これにより、動き検出予測モードを選択する場合と比較して、結合予測モードと同一の予測動きベクトルを利用すること、及び、動き検出予測モードで必要となる参照画像指定情報が不要となる。そのため、結合動き修正予測モードが統合予測モードと動き検出予測モードの間の性質を持つ予測モードとなり、隣接する動き情報との時間的・空間的な相関性が高いが動きに微小なずれを生じている場合や、隣接するブロックの動き情報が正確な動きを示していない場合などに、符号化効率を向上させることができる。
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
また、以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(Read Only Memory)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施の形態1の図21のフローチャートの説明では、結合動き情報インデックスの符号列としては、Truncated Unary符号列を用いる例を説明した。ここで、Truncated Unary符号列の具体例を挙げる。
図80は、結合動き情報候補数が5の場合のTruncated Unary符号列を示す図である。Truncated Unary符号列を用いて結合動き情報インデックスの値を符号化する場合には、結合動き情報候補数が少ないほど、結合動き情報インデックスに割り当てられる符号ビットが小さくなる。例えば、結合動き情報インデックスが1である場合、結合動き情報候補数が2個であれば‘1’の1ビットで表現されるが、結合動き情報候補数が3個であれば‘10’の2ビットで表現される。なお、ここでは上記のように結合動き情報インデックスの符号化にTruncated Unary符号列を利用しているが、他の符号列生成手法を用いることも可能であり、これに限定されない。