以下、図面とともに本発明の実施の形態に係る動画像符号化装置、動画像符号化方法、動画像符号化プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラムの好適な実施の形態について詳細に説明する。なお、図面の説明には同一要素には同一符号を付与して重複する説明を省略する。
[動画像符号化装置全体構成]
図1は、本発明の実施の形態に係る動画像符号化装置の構成を示す図である。以下、各部の動作について説明する。実施の形態に係る動画像符号化装置は、入力端子100、減算部101、直交変換・量子化部102、予測誤差符号化部103、逆量子化・逆変換部104、加算部105、復号画像メモリ106、動きベクトル検出部107、動き補償予測部108、予測モード判定部109、動き情報符号化部110、動き情報メモリ111、多重化部112、及び出力端子113を備える。
入力端子100より入力される画像信号から符号化処理対象の予測ブロックの画像信号が、予測ブロックの位置情報と予測ブロックサイズに基づいて切り出され、予測ブロックの画像信号は、減算部101、動きベクトル検出部107及び予測モード判定部109に供給される。
図2は、符号化対象画像の一例を示す図である。実施の形態に係る予測ブロックサイズに関しては、図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に戻り、減算部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とする。
本実施の形態では、予測モード判定部109で指定される予測種別と異なる予測種別で動き補償予測を行う場合がある。つまり、動き補償予測部108内で、双予測制限情報に基づいて、予測種別を修正し、動き補償予測を行う。指定される予測種別と異なる予測種別での動き補償予測の詳細については後述する。
図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が未来方向とは限定されずに用いることが可能である。
双予測は2つの参照画像メモリへの画像情報アクセスが必要となるため、単予測と比較して2倍以上のメモリ帯域を必要とする場合がある。ハードウェアを構成する場合、動き補償予測の予測ブロックサイズが小さい場合の双予測がメモリ帯域のボトルネックとなり、本実施の形態ではメモリ帯域のボトルネックを抑制する。
図1に戻り、予測モード判定部109は、動きベクトル検出部107より入力される各参照画像に対して検出された動きベクトル値と、動き情報メモリ111に格納された動き情報(予測種別、動きベクトル値、及び参照画像指定情報)をもとに、実施の形態において定義した動き補償予測モードのそれぞれに対して用いられる、予測種別、参照画像指定情報と動きベクトル値及び双予測制限情報を動き補償予測部108に設定する。設定した値によって、動き補償予測部108から供給される動き補償予測信号と、入力端子100より供給される予測ブロックの画像信号を用いて、最適な動き補償予測モードを決定する。
予測モード判定部109は、決定した予測モード、及び予測モードに応じた予測種別、動きベクトル、及び参照画像指定情報を特定する情報を、動き情報符号化部110に供給し、決定した予測モード及びその予測モードに対する、予測種別、動きベクトル値、及び参照画像指定情報を動き情報メモリ111に供給すると共に、減算部101及び加算部105に決定した予測モードに対応する予測信号を供給する。
動画像符号化装置において、基準とする参照画像を符号化するために同一画面内の符号化済画像を用いて予測を行う画面内予測が行われるが、実施の形態は画面間予測に注目したものであるため、画面内予測に関連する構成要素は省略する。予測モード判定部109の詳細な構成については後述する。
動き情報符号化部110は、予測モード判定部109より供給される予測モード、及び予測モードに応じた予測種別、動きベクトル、及び参照画像指定情報を特定する情報を所定のシンタックス構造に従って符号化することで、動き情報の符号列を生成し、多重化部112に供給する。
動き情報メモリ111は、予測モード判定部109より供給される動き情報(予測種別、動きベクトル、及び参照画像インデックス)を、最小予測ブロックサイズ単位を基準として所定画像分記憶する。処理対象の予測ブロックの隣接ブロックの動き情報を空間候補ブロック群とし、処理対象の予測ブロックと同一位置にあるColPic上のブロックとその周辺ブロックの動き情報を時間候補ブロック群とする。
ColPicとは、処理対象の予測ブロックとは別の復号済みの画像であって、復号画像メモリ106に参照画像として記憶されている。実施の形態では、ColPicは直前に復号した参照画像とする。なお、実施の形態では、ColPicは直前に復号した参照画像としたが、表示順で直前の参照画像や表示順で直後の参照画像でもよく、符号化ストリーム中に、ColPicに用いる参照画像を直接指定することも可能である。
動き情報メモリ111は、空間候補ブロック群と時間候補ブロック群の動き情報を、候補ブロック群の動き情報として予測モード判定部109に供給する。多重化部112は、予測誤差符号化部103から供給される予測誤差の符号化列と、動き情報符号化部110から供給される動き情報の符号化列を多重化することで符号化ビットストリームを生成し、出力端子113経由で、記録媒体・伝送路等に当該符号化ビットストリームを出力する。
図1に示した動画像符号化装置の構成は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置等のハードウェアによっても実現可能である。
図5は、本発明の実施の形態に係る動画像符号化装置における符号化処理の動作の流れ示すフローチャートである。予測ブロック単位毎に、入力端子100より処理対象の予測ブロック画像を取得する(S500)。動きベクトル検出部107は、処理対象の予測ブロック画像と復号画像メモリ106に格納された複数の参照画像より、参照画像毎の動きベクトル値を算出する(S501)。
続いて、予測モード判定部109は、動きベクトル検出部107より供給される動きベクトルと、動き情報メモリ111に格納された動き情報を用いて、実施の形態において定義した動き補償予測モードのそれぞれに対する予測信号を、動き補償予測部108を用いて取得し、最適な予測モードを選択し、予測信号を生成する(S502)。ステップS502の処理の詳細については後述する。
続いて、減算部101は、処理対象の予測ブロック画像と予測モード判定部109より供給された予測信号との差分を予測誤差信号として算出する(S503)。動き情報符号化部110は、予測モード判定部109より供給される予測モード、及び予測モードに応じた予測種別、動きベクトル、及び参照画像指定情報を特定する情報を所定のシンタックス構造に従って符号化し、動き情報の符号化データを生成する(S504)。
続いて、予測誤差符号化部103は、直交変換・量子化部102で生成された量子化された予測誤差信号をエントロピー符号化して、予測誤差の符号化データを生成する(S505)。多重化部112は、動き情報符号化部110から供給される動き情報の符号化データと、予測誤差符号化部103から供給される予測誤差の符号化データを多重化し、符号化ビットストリームを生成する(S506)。
加算部105は、逆量子化・逆変換部104より供給される復号予測誤差信号と、予測モード判定部109より供給される予測信号を加算して、復号画像信号を生成する(S507)。加算部105によって、生成された復号画像信号が復号画像メモリ106に供給、格納され、以降に符号化する符号化画像の動き補償予測処理に用いられる(S508)。動き情報メモリ111は、動きベクトル検出部107より供給される動き情報(予測種別、動きベクトル、及び参照画像指定情報)を最小の予測ブロックサイズ単位で格納する(S509)。
[動画像復号装置全体構成]
図6は、本発明の実施の形態に係る動画像復号装置の構成を示す図である。以下、各部の動作について説明する。実施の形態に係る動画像復号装置は、入力端子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に供給する。ただし、双予測制限された予測ブロックについては、予測種別が双予測の場合であっても単予測として予測信号を生成する。
本実施の形態の符号化装置で説明したように、本実施の形態では、動き情報復号部606で指定される参照画像指定情報と異なる参照画像指定情報で動き補償予測を行う場合がある。つまり、動き補償予測部608内で、予測種別、双予測制限情報に基づいて、予測種別を修正し、動き補償予測を行う。指定される予測種別と異なる予測種別での動き補償予測の詳細については後述する。
出力端子609は、復号画像メモリ605より供給された復号画像信号を、ディスプレイなどの表示媒体に出力することで、復号画像信号が再生される。
図6に示した動画像復号装置の構成も、図1に示した動画像符号化装置の構成と同様に、CPU、フレームメモリ、ハードディスクなどを備える情報処理装置等のハードウェアによっても実現可能である。
図7は、本発明の実施の形態に係る動画像復号装置における復号処理の動作の流れを示すフローチャートである。多重分離部601は、入力端子600より供給された符号化ビットストリームを予測誤差情報の符号化列と、動き情報の符号化列に分離する(S700)。分離された動き情報の符号化列は動き情報復号部606に供給され、動き情報メモリ607より供給される候補ブロック群の動き情報を用いて、復号対象ブロックの動き情報を復号する(S701)。ステップS701の処理の詳細については後述する。
分離された予測誤差情報の符号化列は、予測差分情報復号部602に供給され、量子化された予測誤差信号として復号され、逆量子化・逆変換部603で逆量子化や逆直交変換などの処理を施されることで、復号予測誤差信号が生成される(S702)。
動き情報復号部606より、復号対象ブロックの動き情報が動き補償予測部608に供給され、動き補償予測部608は動き情報にしたがって動き補償予測を行い予測信号を算出する(S703)。加算部604は、逆量子化・逆変換部603から供給された復号予測誤差信号と、動き補償予測部608から供給された予測信号とを加算し、復号画像信号を生成する(S704)。
加算部604より供給された復号画像信号は、復号画像メモリ605に格納される(S705)と共に、動き情報復号部606より供給された復号対象ブロックの動き情報が動き情報メモリ607に格納される(S706)。これで、予測ブロック単位の復号処理が終了する。
[実施の形態の詳細機能説明]
本発明の実施の形態に係る動画像符号化装置の予測モード判定部109の動作、図5のフローチャートにおけるステップS502の処理、並びに本発明の実施の形態に係る動画像復号装置における動き情報復号部606の動作、図7のフローチャートにおけるステップS701の処理の詳細動作を、以下説明する。
[実施の形態における動き補償予測モードの定義]
図8(a)、(b)は、本発明の実施の形態における動き補償予測において使用される動き情報を符号化するための2つの予測モードを説明するための図である。第一の予測モードは、予測対象ブロックと当該予測対象ブロックに隣接する符号化済ブロックにおける時間方向や空間方向の動きの連続性を用いて、当該予測対象ブロックは自身の動き情報を直接符号化せずに、空間及び時間的に隣接するブロックの動き情報を符号化に使用する手法であり、結合予測モード(マージモード)と呼ぶ。
第一の予測モードは、予測対象ブロックと当該予測対象ブロックに隣接する符号化済ブロックにおける時間方向や空間方向の動きの連続性を用いて、当該予測対象ブロックは自身の動き情報を直接符号化せずに、空間及び時間的に隣接するブロックの動き情報を符号化に使用する手法であり、結合予測モード(マージモード)と呼ぶ。
ここで、空間的に隣接するブロックとは予測対象ブロックと同じ画像に属する符号化済みブロックの中で、予測対象ブロックに隣接するブロックを指す。ここで、時間的に隣接するブロックとは予測対象ブロックとは別の符号化済みの画像に属するブロックの中で、予測対象ブロックと同一空間位置及びその周辺にあるブロックを指す。
結合予測モードの場合には、複数の隣接ブロック候補より選択的に結合する動き情報が定義でき、動き情報は使用する隣接ブロックを指定する情報(インデックス)を符号化することで、指定情報をもとに取得した動き情報をそのまま動き補償予測に用いる。更に、結合予測モードにおいては、予測差分情報を符号化伝送せずに、結合予測モードで予測された予測信号を復号ピクチャとするSkipモードを定義し、結合した動き情報のみの少ない情報で復号画像が再生できる構成を有する。Skipモードにおいて伝送する動き情報は、結合予測モードと同様に隣接ブロックを定義する指定情報となる。
第二の予測モードは、動き情報の構成要素を個別にすべて符号化し、予測ブロックに対して予測誤差の少ない動き情報を伝送する手法であり、動き検出予測モードと呼ぶ。動き検出予測モードは、従来の動き補償予測の動き情報の符号化と同様に、双予測であるか単予測であるかを示す予測種別、参照画像を特定するための情報(参照画像インデックス)と、動きベクトルを特定するための情報が別々に符号化される。
動き検出予測モードには、単予測と双予測のどちらを使用するか予測モードで指示し、単予測単予測の場合には1つの参照画像に対する参照画像を特定する情報と、動きベクトルの予測ベクトルとの差分ベクトルを符号化する。双予測の場合には2つの参照画像に対する参照画像を特定する情報と、動きベクトルがそれぞれ個別に符号化される。動きベクトルに対する予測ベクトルは、AVCと同様に隣接ブロックの動き情報から生成されるが、結合予測モードと同様に、複数の隣接ブロック候補より予測ベクトルに用いる動きベクトルを選択でき、動きベクトルは予測ベクトルに使用する隣接ブロックを指定する情報(インデックス)と差分ベクトルの2つを符号化することで伝送される。
[実施の形態における動画像符号化装置における予測モード判定部の詳細動作説明]
図9は、実施の形態の動画像符号化装置における予測モード判定部109の詳細な構成を示す図である。予測モード判定部109は、最適な動き補償予測モードを決定する機能を有する。
予測モード判定部109は、動き補償予測生成部900、予測誤差算出部901、予測ベクトル算出部902、差分ベクトル算出部903、動き情報符号量算出部904、予測モード評価部905、結合動き情報算出部906、及び結合動き補償予測生成部907を含む。
図1における予測モード判定部109に対して、動きベクトル検出部107より入力された動きベクトル値が、動き補償予測生成部900に供給され、動き情報メモリ111より入力された動き情報が、予測ベクトル算出部902、及び結合動き情報算出部906に供給される。
また、動き補償予測部108に対して、動き補償予測生成部900、及び結合動き補償予測生成部907、から、動き補償予測に用いる予測種別と参照画像指定情報と動きベクトルが出力され、動き補償予測部108より、生成された動き補償予測画像が予測誤差算出部901に供給される。予測誤差算出部901には更に、入力端子100より符号化対象となる予測ブロックの画像信号が供給される。
また、予測モード評価部905から、動き情報符号化部110に対して符号化する動き情報と確定した予測モード情報を供給し、動き情報メモリ111に動き情報を供給し、動き補償予測信号を減算部101及び加算部105に供給する。
動き補償予測生成部900は、予測に使用可能な各参照画像に対して算出された動きベクトル値を受信し、双予測制限情報に従って動き補償予測を行い、参照画像指定情報を予測ベクトル算出部902に供給し、参照画像指定情報と動きベクトルを出力する。
予測誤差算出部901は、入力された動き補償予測画像と処理対象の予測ブロック画像より、予測誤差評価値を算出する。誤差評価値を算出するための演算としては、動きベクトル検出における誤差評価値と同様に、画素毎の差分絶対値の総和SADや、画素毎の二乗誤差値の総和SSE等を使用できる。更に、予測残差の符号化を行う際に施される、直交変換・量子化を行うことによって復号画像に生じる歪成分の量を加味することで、より正確な誤差評価値が算出可能である。この場合には、予測誤差算出部901内に、図1における減算部101、直交変換・量子化部102、逆量子化・逆変換部104、加算部105の機能を有することで実現できる。
予測誤差算出部901は、各予測モードにおいて算出された予測誤差評価値と、動き補償予測信号を予測モード評価部905に供給する。
予測ベクトル算出部902は、動き補償予測生成部900より参照画像指定情報を供給され、動き情報メモリ111から供給される隣接ブロックの動き情報における候補ブロック群より、指定された参照画像に対する動きベクトル値を入力し、複数の予測ベクトルを予測ベクトル候補リストと共に生成し、差分ベクトル算出部903に、参照画像指定情報と共に供給する。予測ベクトル算出部902は、予測ベクトルの候補を作成し、予測ベクトル候補として登録する。
差分ベクトル算出部903は、予測ベクトル算出部902より供給された、予測ベクトル候補のそれぞれに対して、動き補償予測生成部900から供給される動きベクトル値との差分を計算し、差分ベクトル値を算出する。算出された差分ベクトル値と予測ベクトル候補に対する指定情報である予測ベクトルインデックスを符号化した際、符号量が最も少ない。差分ベクトル算出部903は、最も少ない情報量である予測ベクトルに対する予測ベクトルインデックスと差分ベクトル値を参照画像指定情報と共に、動き情報符号量算出部904に供給する。
動き情報符号量算出部904は、差分ベクトル算出部903より供給される、差分ベクトル値、参照画像指定情報、予測ベクトルインデックス、および予測モードより、各予測モードにおける動き情報に要する符号量を算出する。また、動き情報符号量算出部904は、結合動き補償予測生成部907より、結合予測モードにおいて伝送する必要がある、結合動き情報インデックスと予測モードを示すための情報を受け取り、結合予測モードにおける動き情報に要する符号量を算出する。
動き情報符号量算出部904は、各予測モードにおいて算出された動き情報及び動き情報に要する符号量を予測モード評価部905に供給する。
予測モード評価部905は、予測誤差算出部901より供給された各予測モードの予測誤差評価値と、動き情報符号量算出部904から供給された各予測モードの動き情報符号量を用いて、各予測モードの総合動き補償予測誤差評価値を算出し、最も少ない評価値である予測モードを選択し、選択した予測モードと選択した予測モードに対する動き情報を、動き情報符号化部110、動き情報メモリ111に出力する。また、予測モード評価部905は同様に、予測誤差算出部901より供給された動き補償予測信号に対して、選択した予測モードにおける予測信号を選択して減算部101及び加算部105に出力する。
結合動き情報算出部906は、動き情報メモリ111より供給される隣接ブロックの動き情報における候補ブロック群を用いて、単予測であるか双予測であるかを示す予測種別、参照画像指定情報、動きベクトル値で構成される動き情報として、複数の動き情報を結合動き情報候補リストと共に生成し、結合動き補償予測生成部907に供給する。
図10は、結合動き情報算出部906の構成を示す図である。結合動き情報算出部906は、空間結合動き情報候補リスト生成部1000、結合動き情報候補リスト削除部1001、時間結合動き情報候補リスト生成部1002、第1結合動き情報候補リスト追加部1003および第2結合動き情報候補リスト追加部1004を含む。結合動き情報算出部906は、空間的に隣接する候補ブロック群より所定の順番で動き情報の候補を作成し、その中から、同一の動き情報を持つ候補を削除したのち、時間的に隣接する候補ブロック群より作成した動き情報の候補を追加することで、有効な動き情報のみを結合動き情報候補として登録する。この時間結合動き情報候補リスト生成部を結合動き情報候補リスト削除部より後段に配置した点が、本実施の形態の特徴的な構成であり、時間結合動き情報候補を同一の動き情報を削除する処理の対象からはずすことにより、符号化効率を落とすことなく演算量を削減することが可能である。結合動き情報算出部906の詳細動作に関しては、後述する。
図9に戻り、結合動き補償予測生成部907は、結合動き情報算出部906より供給された結合動き情報候補リストより、登録された結合動き情報候補のそれぞれに対して、動き情報より、予測種別に応じて1つの参照画像(単予測)もしくは2つの参照画像(双予測)の参照画像指定情報と動きベクトル値を動き補償予測部108に指定して、動き補償予測画像を生成すると共に、それぞれの結合動き情報インデックスを動き情報符号量算出部904に供給する。
本実施の形態では、結合動き情報算出部906から供給される参照画像指定情報と異なる参照画像指定情報で動き補償予測を行う場合がある。つまり、動き補償予測部108では、予測種別、参照画像指定情報、動きベクトル値、双予測制限情報に基づいて、予測種別を修正し、動き補償予測を行う。供給される予測種別と異なる予測種別で動き補償予測の詳細については後述する。
図9の構成では、それぞれの結合動き情報インデックスにおける予測モード評価は、予測モード評価部905で施されるが、予測誤差評価値及び動き情報符号量を予測誤差算出部901及び動き情報符号量算出部904より受け取り、結合動き補償予測生成部907内で、最適な結合動き補償予測の結合動きインデックスを確定させた後に、他の予測モードを含めた最適予測モードの評価を行う構成を取ることも可能である。
図11は、図5のステップS502の動き補償予測モード/予測信号生成処理の詳細動作を説明するためのフローチャートである。この動作は、図9の予測モード判定部109における詳細動作を示している。
最初に、結合動き情報候補リスト生成を行い(S1100)、結合予測モード評価値を生成する(S1101)。続いて、予測モード評価値を生成し(S1102)、生成した評価値を比較することで最適な予測モードを選択する(S1103)。ただし、ステップS1101及びS1102の評価値生成の順序はこれに限らない。
選択された予測モードに従い予測信号を出力し(S1104)、選択された予測モードに従い動き情報を出力する(S1105)ことで、予測ブロック単位の動き補償予測モード/予測信号生成処理が終了する。ステップS1100、S1101、及びS1102の詳細動作に関しては後述する。
図12は、図11のステップS1100の結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。この動作は、図9の結合動き情報算出部906における構成の詳細動作を示している。
図10の空間結合動き情報候補リスト生成部1000は、動き情報メモリ111より供給される空間候補ブロック群から領域外である候補ブロックや、イントラモードである候補ブロックを除いた候補ブロックから空間結合動き情報候補リストを生成する(S1200)。空間結合動き情報候補リスト生成の詳細な動作は後述する。
続いて、結合動き情報候補リスト削除部1001において、生成された空間結合動き情報候補リストより、同一の動き情報を持つ結合動き情報候補を削除して動き情報候補リストを更新する(S1201)。結合動き情報候補削除の詳細な動作は後述する。
時間結合動き情報候補リスト生成部1002は、続いて動き情報メモリ111より供給される時間候補ブロック群から領域外である候補ブロックや、イントラモードである候補ブロックを除いた候補ブロックから時間結合動き情報候補リストを生成し(S1202)、時間結合動き情報候補リストと結合して結合動き情報候補リストとする。時間結合動き情報候補リスト生成の詳細な動作は後述する。
次に、第1結合動き情報候補リスト追加部1003は、時間結合動き情報候補リスト生成部1002で生成された結合動き情報候補リストに登録された結合動き情報候補から0個から2個の第1結合動き情報候補を生成して結合動き情報候補リストに追加し(S1203)、当該結合動き情報候補リストを第2結合動き情報候補リスト追加部1004に供給する。第1結合動き情報候補リスト追加の詳細な動作は後述する。
次に、第2結合動き情報候補リスト追加部1004は、第1結合動き情報候補リスト追加部1003より供給される結合動き情報候補リストに依存しない0個から4個の第2結合動き情報候補を生成して第1結合動き情報候補リスト追加部1003より供給される結合動き情報候補リストに追加し(S1204)、処理を終了する。第2結合動き情報候補リスト追加の詳細な動作は後述する。
動き情報メモリ111より、結合動き情報算出部906に供給される動き情報の候補ブロック群には、空間候補ブロック群と時間候補ブロック群が含まれる。まず、空間結合動き情報候補リスト生成について説明する。
図13は、空間結合動き情報候補リスト生成に用いる空間候補ブロック群を示す図である。空間候補ブロック群は、符号化対象画像の予測対象ブロックに隣接している同一画像のブロックを示す。ブロック群は、その管理が最小予測ブロックサイズ単位で行われ、候補ブロックの位置は、最小予測ブロックサイズの単位で管理されるが、隣接ブロックの予測ブロックサイズが最小予測ブロックサイズよりも大きな場合には、予測ブロックサイズ内の全ての候補ブロックに同一の動き情報が格納される。実施の形態においては、隣接するブロック群の内、図13に示すようなブロックA0、ブロックA1、ブロックB0、ブロックB1、ブロックB2の5ブロックを空間候補ブロック群とする。
図14は、空間結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。空間候補ブロック群に含まれる5つの候補ブロックのうち、ブロックA0、ブロックA1、ブロックB0、ブロックB1、ブロックB2について、ブロックA1、ブロックB1、ブロックB0、ブロックA0の順序で以下の処理を繰り返し行う(S1400〜S1403)。
最初に候補ブロックの有効性を検査する(S1401)。候補ブロックが領域外でなくイントラモードでない場合、候補ブロックは有効となる。候補ブロックが有効であれば(S1401:YES)、候補ブロックの動き情報を空間結合動き情報候補リストに追加する(S1402)。
ステップS1400からS1403までの繰り返し処理に続いて、空間結合動き情報候補リストに追加された候補数が4未満だった場合(S1404:YES)、候補ブロックB2の有効性を検査する(S1405)。ブロックB2が領域外でなくイントラモードでない場合(S1405:YES)、ブロックB2の動き情報を空間結合動き情報候補リストに追加する(S1406)。
ここでは、空間結合動き情報候補リストには4以下の候補ブロックの動き情報が含まれるとしたが、空間候補ブロック群は、処理対象の予測ブロックに隣接する少なくとも1以上の処理済みのブロックであり、候補ブロックの有効性によって空間結合動き情報候補リストの数が変動すればよく、これに限定されない。
図15は、結合動き情報候補削除の詳細動作を説明するためのフローチャートである。空間結合動き情報候補リスト作成処理により、生成される結合動き情報候補の最大数をMaxSpatialCandとすると、i=MaxSpatialCand−1からi>0までの結合動き情報候補(候補(i))に対して以下の処理を繰り返し行う(S1500〜S1506)。
候補(i)が存在していれば(S1501のYES)、ii=i−1からii>=0までの結合動き情報候補(候補(ii))に対して以下の処理を繰り返し行い(S1502〜S1505)、候補(i)が存在しない場合(S1501のNO)はステップS1502からS1505までの候補(ii)についての繰り返し処理をスキップする。
まず、候補(i)の動き情報(動き情報(i))と候補(ii)の動き情報(動き情報(ii))が同一であるか検査し(S1503)、同じである場合(S1503のYES)、候補(i)を結合動き情報候補リストから削除し(S1504)、候補(ii)についての繰り返し処理を終了する。
動き情報(i)と動き情報(ii)が同一でない場合(S1503のNO)、iiから1を減算し、候補(ii)についての処理を繰り返す(S1502〜S1505)。
ステップS1500からS1505までの繰り返し処理に続いて、iから1を減算し、候補(i)についての処理を繰り返す(S1500〜S1506)。
図16に結合動き情報候補が4つの場合のリスト中の候補の比較関係を示す。すなわち時間結合動き情報候補を含まない4つの空間結合動き情報候補について総当たりで比較して同一性を判定し、重複する候補を削除する。
ここで、結合予測モードは時間方向や空間方向の動きの連続性を用いて、予測対象ブロックは自身の動き情報を直接符号化せずに、空間及び時間的に隣接するブロックの動き情報を符号化に使用する手法であるが、空間結合動き情報候補が空間方向の連続性を基づいているのに対し、時間結合動き情報候補は時間方向の連続性に基づいて後述する方法で生成されており、これらの性質は異なるものである。よって時間結合動き情報候補と空間結合動き情報候補に同一の動き情報が含まれることは稀であり、同一の動き情報を削除するための結合動き情報候補削除処理の対象から時間結合動き情報候補を除いても、最終的に得られる結合動き情報候補リストに同一の動き情報が含まれることは稀である。
また、後述するように時間結合動き情報候補ブロックは最小予測ブロックよりも大きなサイズである最小時間予測ブロック単位で管理されるため、時間的に隣接する予測ブロックの大きさが最小時間予測ブロックよりも小さな場合には、本来の位置とはずれた位置の動き情報が用いられることとなり、その結果、動き情報に誤差を含む場合が多い。そのため、空間結合動き情報候補の動き情報とは異なる動き情報となることが多く、同一の動き情報を削除するための結合動き情報候補削除処理の対象から除いても影響が少ない。
図17は、空間結合動き情報候補の最大数が4である場合の結合動き情報候補削除における候補の比較内容の一例である。図17(a)は空間結合動き情報候補のみを結合動き情報候補削除処理の対象とした場合の比較内容であり、図17(b)は空間結合動き情報候補と時間結合動き情報を処理の対象とした場合の比較内容である。空間結合動き情報候補のみを結合動き情報候補削除処理の対象とすることにより、動き情報を比較の回数が10回から6回に減少している。
このように、時間結合動き情報候補を結合動き情報候補削除処理の対象にしないことにより、同一の動き情報を適切に削除しながら、動き情報の比較の回数を10回から6回に削減することが可能である。
また、すべての空間予測候補の同一を比較せず、空間的な位置が近い候補間通しの比較のみ行うことで 結合動き情報候補削除処理の回数を削減することも可能である。具体的には、図13のB1位置から算出された結合動き情報はA1位置の結合動き情報と比較し、B0位置から算出された結合動き情報はB1位置の結合動き情報のみと比較し、A0位置から算出された結合動き情報はA1のみと比較し、B2位置から算出された結合動き情報はA1、B1のみと比較することで、動き情報の比較回数を最大5回に制限できる。
上記のように特定の空間予測候補のみ結合動き情報の同一比較を行う場合、空間結合動き情報候補リスト生成中に(S1200)、結合動き情報候補削減処理(S1201)を行った方が、同一結合動き情報が残存してしまうことによる符号化効率低下の影響が少ない。つまり、空間結合動き情報候補リスト生成時に結合動き情報の同一比較を行うことで、不要な結合動き情報を追加せずにすむため、図14のステップS1404の最大空間予測候補数を4つに制限する場合に、B2位置から算出される結合動き情報が追加できる可能性が高まるためである。
続いて、時間結合動き情報候補リスト生成について説明する。図18は、時間結合動き情報候補リスト生成に用いる時間方向周辺予測ブロックの定義を説明する図である。時間候補ブロック群は、予測対象ブロックが属する画像とは別の復号済みの画像ColPicに属するブロックの中で、予測対象ブロックと同位置及びその周辺にあるブロックを示す。ブロック群は、その管理が最小時間予測ブロックサイズ単位で行われ、候補ブロックの位置は、最小時間予測ブロックサイズの単位で管理される。本発明の実施の形態においては、最小時間予測ブロックサイズは最小予測ブロックサイズを垂直方向、水平方向にそれぞれ2倍した大きさとする。時間的に隣接するブロックの予測ブロックのサイズが最小時間予測ブロックサイズよりも大きな場合には、予測ブロックサイズ内のすべての候補ブロックに同一の動きの情報が格納される。一方、予測ブロックのサイズが最小時間予測ブロックサイズよりも小さな場合には、時間方向周辺予測ブロックの左上に位置する予測ブロックの動きの情報を時間方向周辺予測ブロックの情報とする。図18(b)に予測ブロックサイズが最小時間予測ブロックサイズより小さい場合の時間方向周辺予測ブロックの動き情報を示す。
図18(a)におけるA1〜A4、B1〜B4、C、D、E、F1〜F4、G1〜G4、H、I1〜I16の位置のブロックが、時間的に隣接するブロック群となる。実施の形態においては、これら時間的に隣接するブロック群の内、時間候補ブロック群をブロックHとブロックI6の2ブロックとする。
図19は、時間結合動き情報候補リスト生成の詳細動作を説明するためのフローチャートである。時間候補ブロック群に含まれる2つの候補ブロックであるブロックHとブロックI11について(S1800、S1805)、ブロックH、ブロックI11の順序で候補ブロックの有効性を検査する(S1801)。候補ブロックが有効である場合(S1801:YES)、ステップS1802〜ステップS1804の処理が行われ、生成された動き情報が時間結合動き情報候補リストに登録され、処理が終了する。候補ブロックが画面領域外の位置を示す場合や、候補ブロックがイントラ予測ブロックである場合(S1801:NO)、候補ブロックが有効でなく、次の候補ブロックの有効/無効判定が行われる。
候補ブロックが有効である場合(S1801:YES)、候補ブロックの動き情報をもとに結合動き情報候補に登録する参照画像選択候補を確定する(S1802)。実施の形態ではL0予測の参照画像を、L0予測の参照画像のうち処理対象画像に最も近い距離にある参照画像とし、L1予測の参照画像を、L1予測の参照画像のうち処理対象画像に最も近い距離にある参照画像とする。
ここでの参照画像選択候補の確定手法は、L0予測の参照画像とL1予測の参照画像が決定できればよく、これに限定されない。符号化処理と復号処理で同一の手法で参照画像を確定することで、符号化時に意図した参照画像を確定できる。他の確定手法としては、例えばL0予測の参照画像及びL1予測の参照画像の参照画像インデックスが0である参照画像を選択する手法や、空間隣接ブロックが使用しているL0参照画像及びL1参照画像を選択する手法や、符号化ストリーム中で各予測種別の参照画像を指定する手法を用いることが可能である。
次に、候補ブロックの動き情報をもとに結合動き情報候補に登録する動きベクトル値を確定する(S1803)。実施の形態における、時間結合動き情報は、候補ブロックの動き情報で有効な予測種別である動きベクトル値をもとに、双予測の動き情報を算出する。候補ブロックの予測種別がL0予測もしくはL1予測の単予測の場合には、予測に用いられている予測種別(L0予測或いはL1予測)の動き情報を選択し、その参照画像指定情報と動きベクトル値を双予測動き情報生成の基準値とする。
候補ブロックの予測種別が双予測である場合には、L0予測或いはL1予測のどちらか一方の動き情報を基準値として選択する。基準値の選択方法は、例えばColPicと同じ予測種別に存在する動き情報を選択する、候補ブロックのL0予測、L1予測のそれぞれの参照画像でColPicとの画像間距離が近い方を選択する、符号化側で選択してシンタックスで明示的に伝送する等が挙げられる。
双予測動き情報生成の基準とする動きベクトル値が確定したら、結合動き情報候補に登録する動きベクトル値を算出する。
図20は、時間結合動き情報に対する基準動きベクトル値ColMvに対する、L0予測、L1予測に対して登録する動きベクトル値mvL0t、mvL1tの算出手法を説明するための図である。
基準動きベクトル値ColMvに対するColPicと候補ブロックの基準とする動きベクトルの対象となる参照画像との画像間距離をColDistとする。L0予測、L1予測の各参照画像と処理対象画像との画像間距離をCurrL0Dist、CurrL1Distとする。ColMvを、ColDistとCurrL0Dist、CurrL1Distの距離比率でスケーリングした動きベクトルを、それぞれに登録する動きベクトルとする。具体的には、登録する動きベクトル値mvL0t、mvL1tは、下記式1、2で算出される。
mvL0t=mvCol×CurrL0Dist/ColDist・・・(式1)
mvL1t=mvCol×CurrL1Dist/ColDist・・・(式2)
となる。
図19に戻り、このようにして生成された、双予測の参照画像選択情報(インデックス)と、動きベクトル値を結合動き情報候補に追加し(S1804)、時間結合動き情報候補リスト作成処理が終了する。
続いて、第1結合動き情報候補リスト追加部1003の詳細な動作について説明する。図21は、第1結合動き情報候補リスト追加部1003の動作を説明するためのフローチャートである。最初に、時間結合動き情報候補リスト生成部1002より供給される結合動き情報候補リストに登録された結合動き情報候補の数(NumCandList)と結合動き情報候補最大数(MaxNumMergeCand)から、第1追加結合動き情報候補を生成する最大数であるMaxNumGenCandを式3より算出する(S2000)。
MaxNumGenCand=MaxNumMergeCand-NumCandList; (NumCandList>1)
MaxNumGenCand=0; (NumCandList<=1) (式3)
次に、MaxNumGenCandが0より大きいか検査する(S2001)。MaxNumGenCandが0より大きくなければ(S2001のNO)、処理を終了する。MaxNumGenCandが0より大きければ(S2001のYES)、以下の処理を行う。まず、組み合わせ検査回数であるloopTimesを決定する。loopTimesはNumCandList×NumCandListに設定する。ただし、loopTimesが8を超える場合にはloopTimesは8に制限する(S2002)。ここで、loopTimesは0から7までの整数となる。loopTimesだけ以下の処理を繰り返し行う(S2002からS2008)。
結合動き情報候補Mと結合動き情報候補Nの組み合わせを決定する(S2003)。ここで、組み合わせ検査回数と結合動き情報候補Mと結合動き情報候補Nの関係について説明する。
図22は組み合わせ検査回数と結合動き情報候補Mと結合動き情報候補Nの関係を説明するための図である。図22のようにMとNは異なる値であって、まずMを0に固定してNの値を1〜4(最大値はNumCandList)に変化させ、その後、Nの値を0に固定してMの値を1〜4(最大値はNumCandList)に変化させる。このような組み合わせ定義は、最も選択される確率の高い動き情報である結合動き情報候補リスト内で最初の動き情報を有効に活用しつつ、実際には組み合わせテーブルを持たずに計算で組み合わせパターンを算出できる効果がある。
結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効であるか検査する(S2004)。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効であれば(S2004のYES)、結合動き情報候補MのL0予測の動きベクトルと参照画像を結合動き情報候補NのL1予測の動きベクトルと参照画像と組み合わせて双結合動き情報候補を生成する(S2005)。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効でなければ(S2004のNO)、次の組み合わせを処理する。ここで、第1追加結合動き情報候補として、L0予測の動き情報とL1予測が同一である場合があり、動き補償を双予測で行ってもL0予測もしくはL1予測の単予測と同じ結果が得られるため、L0予測の動き情報とL1予測の動き情報が同一である追加結合動き情報候補生成は、動き補償予測の演算量を増加させる要因となる。そのため、通常は、L0予測の動き情報とL1予測の動き情報が同一であるかどうか比較し、同一でない場合にのみ、第1追加結合動き情報候補とする。しかし、本実施の形態では後述する動き補償予測部で一括して双予測を単予測に変換する処理を行うため、第1追加結合動き情報候補リスト追加部でのL0予測の動き情報とL1予測の動き情報の同一性判断が不要となり演算量が削減できる。ステップS2005に続いて、双結合動き情報候補を結合動き情報候補リストに追加する(S2006)。ステップS2006に続いて、生成した双結合動き情報の数がMaxNumGenCandであるか検査する(S2007)。生成された双結合動き情報の数がMaxNumGenCandであれば(S2007のYES)、処理を終了する。生成された双結合動き情報の数がMaxNumGenCandでなければ(S2007のNO)、次の組み合わせを処理する。
ここで、第1追加結合動き情報候補は、結合動き情報候補リストに登録された結合動き情報候補の動き情報と処理対象の動き情報候補の動きに微妙にずれがある場合に、結合動き情報候補リストに登録された結合動き情報候補の動き情報を修正して有効な結合動き情報候補を生成することで、符号化効率を高めることができる。
続いて、第2結合動き情報候補リスト追加部1004の詳細な動作について説明する。図23は、第2結合動き情報候補リスト追加部1004の動作を説明するためのフローチャートである。最初に、第1結合動き情報候補リスト追加部1003より供給される結合動き情報候補リストに登録された結合動き情報候補の数(NumCandList)と結合動き情報候補最大数(MaxNumMergeCand)から、第1追加結合動き情報候補を生成する最大数であるMaxNumGenCandを式4より算出する(S2200)。
MaxNumGenCand=MaxNumMergeCand-NumCandList; (式4)
次に、以下の処理をiについてMaxNumGenCand回繰り返し行う(S2201からS2205)。ここで、iは0からMaxNumGenCand−1の整数となる。L0予測の動きベクトルが(0,0)、参照インデックスがiであって、L1予測の動きベクトルが(0,0)、参照インデックスがiである予測種別が双予測である第2追加結合動き情報候補を生成する(S2202)。第2追加結合動き情報候補を結合動き情報候補リストに追加する(S2203)。次のiについて処理する(S2204)。
ここでは、第2追加結合動き情報候補を、L0予測の動きベクトルが(0,0)、参照インデックスがiであって、L1予測の動きベクトルが(0,0)、参照インデックスがiである予測種別が双予測である結合動き情報候補とした。これは、一般的な動画像において、L0予測の動きベクトルとL1予測の動きベクトルが(0,0)である結合動き情報候補の発生頻度が統計的に高いためである。結合動き情報候補リストに登録された結合動き情報候補の動き情報に依存せず、統計的に利用頻度が高い結合動き情報候補であれば、これに限定されない。例えば、L0予測やL1予測の動きベクトルはそれぞれ(0,0)以外のベクトル値でもよく、L0予測とL1予測の参照インデックスが異なるように設定してもよい。また、第2追加結合動き情報候補を符号化済みの画像や符号化済みの画像の一部の発生頻度の高い動き情報とし、符号化ストリームに符号化して伝送して設定することもできる。なお、ここではBピクチャ(Bスライス)について説明したが、Pピクチャ(Pスライス)の場合は、L0予測の動きベクトルが(0,0)で、予測種別がL0予測である第2追加結合動き情報候補を生成する。
ここで、第2追加結合動き情報候補として、L0予測の参照画像とL1予測の参照画像が同一である場合、第1追加結合動き情報候補リスト生成部と同様に、動き補償を双予測で行ってもL0予測もしくはL1予測の単予測と同じ結果が得られため、L0予測の参照画像とL1予測の参照画像が同一である追加結合動き情報候補生成は、動き補償予測の演算量を増加させる要因となる。しかし、本実施の形態では後述する動き補償予測部で一括して双予測を単予測に変換する処理を行うため、第2追加結合動き情報候補リスト追加部でのL0予測の動き情報とL1予測の動き情報の同一性判断を行う必要はなく演算量が削減できる。
ここで、第2追加結合動き情報候補として結合動き情報候補リストに登録された結合動き情報候補に依存しない結合動き情報候補を設定することで、結合動き情報候補リストに登録された結合動き情報候補が0個である場合に、結合予測モードを利用することを可能とし、符号化効率を向上させることができる。また、結合動き情報候補リストに登録された結合動き情報候補の動き情報と処理対象の動き情報候補の動きが異なる場合に、新たな結合動き情報候補を生成して選択肢の幅を広げることで、符号化効率を向上させることができる。
図24は、図11のステップS1101における結合予測モード評価値生成処理の詳細動作を説明するためのフローチャートである。この動作は、図9の結合動き補償予測生成部907を用いた構成の詳細動作を示している。
最初に予測誤差評価値を最大値に設定し、予測誤差が最小となる結合動き情報インデックスを初期化(例えば、−1などのリスト外の値)する(S2300)。結合動き情報候補リスト生成処理により、生成された結合動き情報候補リストの数をnum_of_indexとすると、i=0からnum_of_index−1までの結合動き情報候補について以下の処理を繰り返し行う(S2301からS2313)。
先ず、結合動き情報候補リストよりインデックスiに格納された動き情報を取得する(S2302)。続いて動き情報符号量を算出する(S2303)。結合予測モードにおいては、結合動き情報インデックスのみが符号化されるので、結合動き情報インデックスのみが動き情報符号量となる。
結合動き情報インデックスの符号列としては、実施の形態では、Truncated Unary符号列を用いる。図25は、結合動き情報候補数が5の場合のTruncated Unary符号列を示す図である。Truncated Unary符号列を用いて結合動き情報インデックスの値を符号化する場合には、結合動き情報インデックスが小さいほど、結合動き情報インデックスに割り当てられる符号ビットが小さくなる。例えば、結合動き情報候補数が5個である場合、結合動き情報インデックスが1であれば'10'の2ビットで表現されるが、結合動き情報インデックスが3であれば'1110'の4ビットで表現される。なお、ここでは上記のように結合動き情報インデックスの符号化にTruncated Unary符号列を利用しているが、他の符号列生成手法を用いることも可能であり、これに限定されない。
続いて、動き情報の予測種別が単予測である場合(S2304:YES)、動き補償予測部108は、1つの参照画像に対する参照画像指定情報と動きベクトルを用いて動き補償単予測ブロックを生成する(S2307)。
動き情報が単予測でない場合、つまり動き情報が双予測である場合(S2304:NO)、動き補償予測部108は、L0予測の動き情報とL1予測の動き情報(参照画像情報及び動きベクトル)が同一であるかどうか判定し、L0予測の動き情報とL1予測の動き情報が同一である場合(S2305:YES)、L0予測の動き情報のみを用いてL0単予測動き補償予測を行う(S2308)。ただし、双予測の動き情報は維持しL1予測の動き情報は変更しない。
L0予測の動き情報とL1予測の動き情報が同一でない場合(S2305:NO)、予測ブロックサイズが双予測制限サイズ以下であるかどうかを判定し、予測ブロックサイズが双予測制限ブロックサイズ以下である場合(S2306:YES)、L0予測の動き情報とL1予測の動き情報が同一である場合(S2305:YES)と同様に、L0予測の動き情報のみを用いてL0単予測動き補償予測を行う(S2308)。ただし、双予測の動き情報は維持しL1予測の動き情報は変更しない。双予測制限は双予測を単予測に制限することで動き補償予測のメモリ帯域を抑制することが目的であるため、双予測制限によって制限される予測リスト(L0/L1)は、L1単予測にしてももちろん良い。
ここで、双予測制限ブロックサイズは、8x8未満のブロックとする。ただし、この閾値は8x8に限らず最大予測ブロックサイズから最小予測ブロックサイズの間であれば他の値に双予測制限ブロックサイズを設定しても良いし、もちろん8x8ブロックを含む8x8以下のブロックに設定しても良い。符号化側から復号側にビットストリーム内にシンタックスで明示的に伝送しても良い。また、双予測制限に関するシンタックスの符号量を削減するために、所定のブロックサイズ(例えば8x8)で、双予測制限を行うかどうかのフラグとして符号化側から伝送して、復号側で所定のブロックサイズで双予測制限を行うかどうかを判断しても良い。
予測ブロックサイズが双予測制限ブロックサイズ以下でない場合(S2306:NO)、動き補償予測部108は2つの参照画像に対する参照画像指定情報と動きベクトルを用いて動き補償双予測ブロックを生成する(S2306)。
続いて、動き補償予測ブロックと予測対象ブロックの予測誤差と動き情報符号量より、予測誤差評価値を算出し(S2310)、予測誤差評価値が最小値である場合には評価値を更新すると共に、予測誤差最小インデックスを更新する(S2311)。
このように、結合動き予測候補生成中の各処理において、所定予測ブロックサイズ以下であるかの条件判断を追加するのではなく、動き情報決定後の動き補償予測時に一括して、所定予測ブロックサイズ以下の予測ブロックの予測種別が双予測の場合にL0方向の単予測として動き補償予測することで、最小限の条件分岐の追加で動き補償予測のメモリ帯域抑制が可能である。また、予測信号としては単予測と同一でありながら、動き情報は双予測となる結合動き情報候補を維持することができる。これにより、図33に示すように、所定予測ブロックサイズ以下の予測ブロックであっても、L0予測、L1予測ともに動き情報が保存されるため、以降に符号化・復号される予測ブロックの隣接参照動き情報として双予測の情報がそのまま利用でき、以降に符号化・復号される予測ブロックの動き予測処理の予測効率を向上させることができる。また、ピクチャの空間解像度を増やすスケーラブル符号化において、ベースレイヤーからエンハンスメントレイヤーを予測する際の動き情報としても双予測の動き情報を利用可能である。さらに、符号化・復号化の規格として双予測制限を規定した場合、規格で定められた復号化では動き補償予測時にはL0予測情報のみ用いるが、復号化規格の外で双予測の動き情報を用いて動き補償予測を行うことで画質を改善することができる。特に、復号した画像を参照画像とならない画像の復号化では、双予測制限された予測ブロックにおいて双予測を行った場合にも、以降の復号化されるピクチャの動き補償予測に影響を与えず正常に復号化可能であるためより有効である。
図24のフローチャートに戻り、全ての結合動き情報候補についての予測誤差評価値が比較された結果、選択された予測誤差最小インデックスを、結合予測モードで用いる結合動き情報インデックスとして、予測誤差最小値、動き補償予測ブロックと共に出力し(S2312)、結合予測モード評価値生成処理を終了する。
図26は、図11のステップS1102の予測モード評価値生成処理の詳細動作を説明するためのフローチャートである。
最初に、予測モードが単予測であるか否かを判別する(S2500)。ただし、双予測制限ブロックサイズ以下である場合は、暗示的にL0単予測であるため、単予測であるかどうかの判断(S2500)は不要である。
図32に予測ブロックの動き情報に関するシンタックスを示す。図32中のmerge_flagは結合予測モードであるかどうかを示し、merge_flag=0の場合が動き検出予測モードを示す。動き検出予測モードである場合で双予測を用いることが可能なBスライスの場合、予測種別が単予測であるか双予測であるかを示すフラグinter_pred_flagを伝送する。ここで、予測ブロックのサイズが双予測制限ブロックサイズ以下である場合にも双予測を禁止せずinter_pred_flagを伝送する。つまり、予測種別を双予測として動き情報を伝送した場合、L0及びL1の動き情報を伝送するが、動き補償予測はL0単予測で行う。これは、予測ブロックのサイズが双予測制限ブロックサイズ以下であるかどうかに応じてinter_pred_flagを伝送するかどうかを切り替えると、エントロピー符号化・復号化に条件分岐が必要になるため、処理が複雑になるのを防止するためである。また、図33に示すように、所定予測ブロックサイズ以下の予測ブロックであっても、L0予測、L1予測ともに動き情報が保存されるため、以降に符号化・復号される予測ブロックの隣接参照動き情報として双予測の情報がそのまま利用でき、以降に符号化・復号される予測ブロックの動き予測処理の予測効率を向上させることができる。また、ピクチャの空間解像度を増やすスケーラブル符号化において、ベースレイヤーからエンハンスメントレイヤーを予測する際の動き情報としても双予測の動き情報を利用可能である。さらに、符号化・復号化の規格として双予測制限を規定した場合、規格で定められた復号化では動き補償予測時にはL0予測情報のみ用いるが、復号化規格の外で双予測の動き情報を用いて動き補償予測を行うことで画質を改善することができる。特に、復号した画像を参照画像とならない画像の復号化では、双予測制限された予測ブロックにおいて双予測を行った場合にも、以降の復号化されるピクチャの動き補償予測に影響を与えず正常に復号化可能であるためより有効である。
単予測であれば、処理対象とする参照画像リスト(LX)を予測に用いている参照画像リストに設定する(S2501)。単予測でなければ、双予測であるから、この場合はLXをL0とする(S2502)。
図26のフローチャートに戻り、次に、LX予測に対する参照画像指定情報(インデックス)と動きベクトル値を取得する(S2503)。続いて、予測ベクトル候補リストを生成し(S2504)、予測ベクトルの中から最適予測ベクトルを選択し、差分ベクトルを生成する(S2505)。最適予測ベクトルの選択手法は、予測ベクトルと伝送する動きベクトルの差分ベクトルを実際に符号化する際の符号量が最も少ないものを選択することが望ましいが、単純に差分ベクトルの水平・垂直成分の絶対値の総和が小さいものを選択するなどの手法で、簡易的に算出してもよい。
続いて、再度予測モードが単予測である否かを判別し(S2506)、予測モードが単予測であればステップS2509に進む。単予測でない、すなわち、双予測であれば、処理対象の参照リストLXがL1か否かを判定する(S2507)。参照リストLXがL1であれば、ステップS2509に進み、L1でない、すなわち、L0であればLXをL1として(S2508)、ステップS2503からステップS2506までの処理と同じ処理が行われる。
続いて、動き情報符号量を算出する(S2509)。単予測モードの場合に、符号化する動き情報としては、予測種別、1つの参照画像に対する、参照画像指定情報、差分ベクトル値、及び予測ベクトルインデックスの4要素、双予測モードの場合には、予測種別、L0とL1の2つの参照画像に対する、参照画像指定情報、差分ベクトル値、及び予測ベクトルインデックスの計7要素となり、各々符号化された符号量の総量が動き情報符号量として算出される。本実施の形態における予測ベクトルインデックスの符号列生成手法としては、結合動き情報インデックスの符号列と同様にTruncated Unary符号列を用いるものとする。
続いて、図1における動き補償予測部108は、参照画像に対する参照画像指定情報と動きベクトルを用いて動き補償予測ブロックを生成する(S2510)。ここで、動き検出予測モードにおいても、結合予測モードに対する動作と同様に、所定のブロックサイズ以下の双予測制限される予測ブロックについては、動き情報の予測種別が双予測であっても、L0単予測として動き補償予測する。
さらに、動き補償予測ブロックと予測対象ブロックの予測誤差と動き情報符号量より、予測誤差評価値を算出し(S2511)、予測誤差評価値と、予測種別、参照画像に対する動き情報である、参照画像指定情報と差分ベクトル値と予測ベクトルインデックスを動き補償予測ブロックと共に出力し(S2512)、予測モード評価値生成処理を終了する。
以上の処理が、実施の形態における動画像符号化装置における予測モード判定部109の詳細動作となる。
[実施の形態における動画像復号装置における動き情報復号部の詳細動作説明]
図27は、図6に示した実施の形態の動画像復号装置における動き情報復号部606の詳細な構成を示す図である。動き情報復号部606は、動き情報ビットストリーム復号部2600、予測ベクトル算出部2601、ベクトル加算部2602、動き補償予測復号部2603、結合動き情報算出部2604、及び結合動き補償予測復号部2605を含む。
図6における動き情報復号部606に対して、多重分離部601より入力された動き情報ビットストリームが、動き情報ビットストリーム復号部2600に供給され、動き情報メモリ607より入力された動き情報が、予測ベクトル算出部2601、及び結合動き情報算出部2604に供給される。
また、動き補償予測部608に対して、動き補償予測復号部2603、及び結合動き補償予測復号部2605から、動き補償予測に用いる予測種別と参照画像指定情報と動きベクトルが出力され、復号された動き情報が、動き情報メモリ607に格納される。
動き情報ビットストリーム復号部2600は、多重分離部601より入力された動き情報ビットストリームを符号化シンタックスに従って復号していくことで、伝送された予測モードと、予測モードに応じた動き情報を生成する。生成した動き情報の中で、結合動き情報インデックスは、結合動き補償予測復号部2605に供給され、参照画像指定情報が予測ベクトル算出部2601に供給され、予測ベクトルインデックスがベクトル加算部2602に供給され、差分ベクトル値がベクトル加算部2602に供給される。
予測ベクトル算出部2601は、動き情報メモリ607より供給された隣接ブロックの動き情報と、動き情報ビットストリーム復号部2600より供給された参照画像指定情報から、動き補償予測の対象となる参照画像に対する予測ベクトル候補リストを生成し、参照画像指定情報と共にベクトル加算部2602に供給する。予測ベクトル算出部2601の動作に関しては、動画像符号化装置における図9の予測ベクトル算出部902と同一の動作が行われ、符号化時の予測ベクトル候補リストと同一の候補リストが生成される。
ベクトル加算部2602は、予測ベクトル算出部2601より供給された予測ベクトル候補リスト及び参照画像指定情報と、動き情報ビットストリーム復号部2600から供給された予測ベクトルインデックス及び差分ベクトルより、予測ベクトルインデックスで示された位置に登録された予測ベクトル値と差分ベクトル値を加算することで、動き補償予測対象となる参照画像に対しての動きベクトル値が再生される。再生された動きベクトル値は、参照画像指定情報及び予測種別と共に、動き補償予測復号部2603に供給される。
動き補償予測復号部2603は、ベクトル加算部2602より参照画像に対する、再生された動きベクトル値と参照画像指定情報及び予測種別が供給され、動きベクトル値と参照画像指定情報と予測種別を動き補償予測部608に設定することで、動き補償予測信号を生成する。
結合動き情報算出部2604は、動き情報メモリ607から供給される隣接ブロックの動き情報より、結合動き情報候補リストを生成し、結合動き情報候補リストとリスト内の構成要素である結合動き情報候補の予測種別と参照画像指定情報と動きベクトル値を、結合動き補償予測復号部2605に供給する。
結合動き情報算出部2604の動作に関しては、動画像符号化装置における図9の結合動き情報算出部906と同一の動作が行われ、符号化時の結合動き情報候補リストと同一の候補リストが生成される。
結合動き補償予測復号部2605は、結合動き情報算出部2604より供給される結合動き情報候補リストとリスト内の構成要素である結合動き情報候補の参照画像指定情報と動きベクトル値と、動き情報ビットストリーム復号部2600より供給される結合動き情報インデックスより、結合動き情報インデックスで示された結合動き情報候補リストにおける予測種別と参照画像指定情報と動きベクトル値を再生し、動き補償予測部608に設定することで、動き補償予測信号を生成する。
図28は、図7のステップS701の動き情報復号処理の詳細動作を説明するためのフローチャートである。動き情報ビットストリーム復号部2600と予測ベクトル算出部2601、及び結合動き情報算出部2604により、図7のステップS701の動き情報復号処理が行われる。
動き情報復号処理は、特定のシンタックス構造で符号化された符号化ビットストリームより動き情報を復号する処理である。最初に符号化ブロックの所定単位でSkipフラグを復号する(S2700)。以降は予測ブロック単位の処理となる。
SkipフラグがSkipモードを示している場合(S2701:YES)、結合予測動き情報復号を行う(S2702)。ステップS2702の詳細処理については、後述する。
Skipモードでない場合(S2701:NO)、マージフラグを復号する(S2703)。マージフラグが1を示している場合(S2704:YES)には、ステップS2702の結合予測動き情報復号に進む。
マージフラグが1でない場合(S2704:NO)、動き予測フラグを復号し(S2705)、予測動き情報復号を行う(S2706)。ステップS2706の詳細動作については、後述する。
図29は、図28のステップS2702の結合予測動き情報復号処理の詳細動作を説明するためのフローチャートである。
最初に予測モードに結合予測モードを設定し(S2800)、結合動き情報候補リストを生成する(S2801)。ステップS2801の処理は、動画像符号化装置における図11のステップS1100の結合動き情報候補リスト生成処理と同一の処理である。
つぎに、結合動き情報インデックスを復号し(S2802)、続いて、結合動き情報候補リストより、結合動き情報インデックスで示す位置に格納されている動き情報を取得する(S2803)。取得する動き情報としては、単予測/双予測を示す予測種別、参照画像指定情報、動きベクトル値となる。
生成された動き情報は、結合予測モードの動き情報として格納され(S2804)、結合動き補償予測復号部2606に供給される。
図30は、図28のステップS2706の予測動き情報復号処理の詳細動作を説明するためのフローチャートである。
最初に、予測種別が単予測であるか否かを判別する(S2900)。単予測であれば、処理対象とする参照画像リスト(LX)を予測に用いている参照画像リストに設定する(S2901)。単予測でなければ、双予測であるから、この場合はLXをL0とする(S2902)。
次に、参照画像指定情報を復号し(S2903)、差分ベクトル値を復号する(S2904)。次に、予測ベクトル候補リストを生成し(S2905)、予測ベクトル候補リストが1より大きな場合(S2906:YES)、予測ベクトルインデックスを復号し(S2907)、予測ベクトル候補リストが1の場合(S2906:NO)、予測ベクトルインデックスに0を設定する(S2908)。
ここで、ステップS2905では、動画像符号化装置における図26のフローチャートのステップS2504と同様の処理が行われる。
次に、予測ベクトル候補リストより、予測ベクトルインデックスで示す位置に格納されている動きベクトル値を取得する(S2909)。復号した差分ベクトル値と動きベクトル値を加算することで動きベクトルを再生する(S2910)。
続いて、再度予測種別が単予測である否かを判別し(S2911)、予測種別が単予測であればステップS2914に進む。単予測でない、すなわち、双予測であれば、処理対象の参照リストLXがL1か否かを判定する(S2912)。参照リストLXがL1であれば、ステップS2914に進み、L1でない、すなわち、L0であればLXをL1として(S2913)、ステップS2903からステップS2911までの処理と同じ処理が行われる。
続いて、生成された動き情報として、予測種別及び、単予測の場合には、1つの参照画像に対する参照画像指定情報と動きベクトル値が、双予測の場合には、2つの参照画像に対する参照画像指定情報と動きベクトル値が、動き情報として格納され(S2914)、動き補償予測復号部2603に供給される。
図31は、図6に示した実施の形態の動画像復号装置における動き補償予測部608の詳細動作を説明するフローチャートである。動き補償予測部608は図1の動画像符号化装置における動き補償予測部108と同じ機能を持ち、以下の動作を行う。
供給された動き情報の予測種別が単予測である場合(S3101:YES)、1つの参照画像に対する参照画像指定情報と動きベクトルを用いて動き補償単予測ブロックを生成する(S3104)。
供給された動き情報が単予測でない場合、つまり動き情報が双予測である場合(S3101:NO)、L0予測の動き情報とL1予測の動き情報(参照画像情報及び動きベクトル)が同一であるかどうか判定し、L0予測の動き情報とL1予測の動き情報が同一である場合(S3102:YES)、L0予測の動き情報のみを用いてL0単予測動き補償予測を行う(S3105)。ただし、双予測の動き情報は維持しL1予測の動き情報は変更しない。
供給されたL0予測の動き情報とL1予測の動き情報が同一でない場合(S3102:NO)、予測ブロックサイズが双予測制限サイズ以下であるかどうかを判定し、予測ブロックサイズが双予測制限ブロックサイズ以下である場合(S3103:YES)、L0予測の動き情報とL1予測の動き情報が同一である場合(3102:YES)と同様に、L0予測の動き情報のみを用いてL0単予測動き補償予測を行う(S3105)。ただし、双予測の動き情報は維持しL1予測の動き情報は変更しない。双予測制限は双予測を単予測に制限することで動き補償予測のメモリ帯域を抑制することが目的であるため、双予測制限によって制限される予測リスト(L0/L1)は、L1単予測にしてももちろん良い。
ここで、双予測制限ブロックサイズは、符号側での双予測制限と同様に8x8未満のブロックとする。ただし、この閾値は8x8に限らず最大予測ブロックサイズから最小予測ブロックサイズの間であれば他の値に設定しても良いし、もちろん8x8ブロックを含む8x8以下のブロックに設定しても良い。符号化側から伝送されるシンタックスに従って双予測制限ブロックサイズを設定しても良い。また、双予測制限に関するシンタックスの符号量を削減するために、所定のブロックサイズ(例えば8x8)で、双予測制限を行うかどうかのフラグとして符号化側から伝送して、復号側で所定のブロックサイズで双予測制限を行うかどうかを判断しても良い。
供給された予測ブロックサイズが双予測制限ブロックサイズ以下でない場合(S3103:NO)、2つの参照画像に対する参照画像指定情報と動きベクトルを用いて動き補償双予測ブロックを生成する(S3106)。
実施の形態における、動画像符号化装置及び動画像復号装置においては、動き補償予測のメモリ帯域を抑制するために、所定予測ブロックサイズ以下の予測ブロックの予測種別を制限する。具体的には、動き検出予測モードに対しては、所定予測ブロックサイズ以下においても、予測ブロックの予測種別を伝送することを許可し、結合予測モードに対しては、所定予測ブロックサイズ以下の予測ブロックの予測種別が双予測の場合であってもL0方向の単予測として動き補償予測する。つまり、動き情報決定の処理では双予測制限に関する条件分岐を行わない。動き検出予測モード及び結合動き予測候補生成中の各処理において、所定予測ブロックサイズ以下であるかの条件判断を追加するのではなく、動き情報決定後の動き補償予測時に一括して、所定予測ブロックサイズ以下の予測ブロックの予測種別が双予測の場合にL0方向の単予測として動き補償予測することで、最小限の条件分岐の追加で動き補償予測のメモリ帯域抑制が可能である。
また、予測信号としては単予測と同一でありながら、動き情報は双予測となる結合動き情報候補を維持することができる。これにより、図33に示すように、所定予測ブロックサイズ以下の予測ブロックであっても、L0予測、L1予測ともに動き情報が保存されるため、以降に符号化・復号される予測ブロックの隣接参照動き情報として双予測の情報がそのまま利用でき、以降に符号化・復号される予測ブロックの動き予測処理の予測効率を向上させることができる。
また、本実施の形態では動き補償予測時に、予測種別が双予測の場合に単予測に変更することで、動き補償予測のメモリ帯域を抑制する例を示したが、変更する動き情報は予測種別だけなく、参照画像指定情報や動きベクトル情報の変更にも適応可能である。
動き補償予測のメモリ帯域を抑制するために参照画像指定情報を変更する場合、所定のブロックサイズ以下の予測ブロックの参照画像を同一にするために、動き情報の示す参照画像指定情報が0以外であっても、参照画像指定情報を0に変更して動き補償予測を行う。所定のブロックサイズ以下の予測ブロックの参照画像指定情報をすべて0に指定することで、所定のブロックサイズ以下では、変更した参照画像間の距離に応じて動きベクトルをスケーリングして、動きベクトルの信頼性を向上させても良い。
動き補償予測のメモリ帯域を抑制するために動きベクトル情報を変更する場合、所定のブロックサイズ以下の予測ブロックの動きベクトル値を所定の範囲内に変更して動き補償予測を行う。つまり、動きベクトル値のクリッピング処理を行い、所定のブロックサイズ以下の予測ブロックで動きベクトルが大きな値を持ち、メモリ帯域が増大するのを抑制する。例えば動きベクトルが(345,272)である場合、(256,256)にクリッピングする。ただし、クリッピングする値は256に限らない。
また、符号化側でのみ動き情報選択時に所定のブロックサイズ以下の予測ブロックを双予測として選択することを禁止する場合と比較して、本実施の形態の動き補償予測時に双予測制限を行うことでビットストリームのエラー耐性を強化できる。つまり、動き補償予測時に所定のブロックサイズ以下の予測ブロックの双予測制限機能を持たない構成では、双予測制限に伴うビットストリームの制約が必要となるが、動き補償予測時に双予測を制限する場合、双予測制限に伴うビットストリームの制限が必要なくなり、規定外のビットストリームに対応する動作の対応を復号側で個別に行う必要がなくなる。特に、結合予測モードにおいては、結合予測モードの候補がそれぞれ双予測であるかどうかに応じて制限するべきシンタックス要素が適応的に変化するため、符号化側でのみ予測種別を単予測に制限する場合には、復号側でビットストリームのエラーを判断するのが複雑である。一方、本発明の結合予測モードにおいては、結合予測モード候補の予測種別が双予測化どうかに応じて値が制限されるかどうかが変化するSkipフラグ、マージフラグ、結合動き情報インデックスの各シンタックス要素のエラー判定を考慮する必要がなくなる。本実施の形態は、最も処理量の負荷が少なくエラー耐性が備わった双予測制限機能を持つ構成である。
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
また、以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(Read Only Memory)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
上記課題を解決するために、本発明のある態様の動画像復号装置は、動画像の各ピクチャを分割したブロック単位で動き補償予測を用いて符号化された符号列を復号する動画像復号装置であって、復号対象ブロックの動き情報を導出する動き情報導出部(606)と、前記復号対象ブロックが所定サイズ以下の場合は、その所定サイズ以下の復号対象ブロックについて、前記導出された動き情報を変更する動き情報変更部(608)と、前記復号対象ブロックが前記所定サイズよりも大きい場合は、前記導出された動き情報を用いて、前記復号対象ブロックが前記所定サイズ以下の場合は、前記変更された動き情報を用いて、動き補償予測により前記復号対象ブロックの予測信号を生成する予測信号生成部(608)とを備える。
本発明の別の態様もまた、動画像復号装置である。この装置は、動画像の各ピクチャを分割したブロック単位で動き補償予測を用いて符号化された符号列を復号する動画像復号装置であって、復号対象ブロックに空間的又は時間的に隣接するブロックの有する動き情報から導出した動き情報候補を登録した動き情報候補リストを生成する動き情報候補リスト生成部(2604)と、前記動き情報候補リストに登録された前記動き情報候補の中から選択されるべき所定の動き情報を示すインデックスを復号する動き情報復号部(606)と、前記復号されたインデックスに基づいて、前記動き情報候補リストから前記所定の動き情報を選択し、前記復号対象ブロックが所定サイズ以下の場合は、その所定サイズ以下の復号対象ブロックについて、前記選択された前記所定の動き情報を変更する動き情報変更部(608)と、前記復号対象ブロックが前記所定サイズよりも大きい場合は、前記選択された前記所定の動き情報を用いて、前記復号対象ブロックが前記所定サイズ以下の場合は、前記変更された前記所定の動き情報を用いて、動き補償予測により前記復号対象ブロックの予測信号を生成する予測信号生成部(608)とを備える。