以下、添付図面を参照しながら本実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
図1は、一実施形態に係る画像予測符号化装置100を示すブロック図である。この画像予測符号化装置100は、入力端子101、ブロック分割器(領域分割手段)102、予測信号生成器(予測信号生成手段)103、フレームメモリ(記録手段)104、減算器(残差信号生成手段)105、変換器106、量子化器107、逆量子化器108、逆変換器109、加算器110、符号化器(符号化手段)111、出力端子112、動き情報推定器(動き情報推定手段)113、予測情報用メモリ(予測情報保存手段)114、差分動き情報生成器(動き情報生成手段)115を備えている。なお、変換器106と量子化器107とは、量子化手段として機能する。また、逆量子化器108と逆変換器109とは、逆量子化手段として機能する。
入力端子101は、複数枚の画像からなる動画像の信号を入力する端子である。
ブロック分割器102は、入力端子101からラインL101を経由して入力された信号で表される、符号化処理の対象となる画像を複数の領域に分割する。本実施形態では、符号化対象の画像を16×16の画素からなるブロックに分割するが、それ以外の大きさ又は形状のブロックに分割してもよい。また、画面内にサイズの異なるブロックが混在してもよい。ブロック分割器102において分割されたブロックは、符号化順に対象ブロック(対象領域)として出力され、ラインL102aとラインL102bを経由して、それぞれ動き情報推定器113及び減算器105に出力される。
動き情報推定器113では、対象ブロック内の予測信号を生成するために必要な動き情報を検出する。対象ブロックの予測信号の生成方法(予測方法)については、背景技術で説明したような画面間予測や画面内予測(画面内予測については図示せず)が適用可能であるが、本実施形態では、対象ブロックの一部の部分領域(第1領域)を予測情報用メモリ114に保存されている隣接ブロックの動き情報を用いて予測し、残りの部分(第2領域)をブロックマッチング(図16参照)にて検出した動き情報を用いて予測する方法を考える。これらの予測方法をブロック単位で適応的に用いる場合は、選択情報を符号化器111にて符号化する。なお、動き情報には、動きベクトル、画面間予測モード(第1の参照画面リストを用いた片予測/第2の参照画面リストを用いた片予測/双予測)、参照画面番号(複数の参照画面の識別番号、片予測の場合は1つ、双予測の場合は2つ)が含まれる。
動き情報推定器113は、対象ブロックの第1領域情報、第1領域の動き情報及び第2領域の動き情報を生成する。これらの情報の生成手順については後述する。
動き情報推定器113にて生成された第1領域情報、第1領域の動き情報及び第2領域の動き情報は、ラインL113aを経由して予測信号生成器103に出力される。同時に、第1領域の動き情報と第2領域の動き情報とは、ラインL113c経由で予測情報用メモリ114に出力され、以降の予測のために保存される。さらに、第1領域情報と、周囲の隣接ブロックの動き情報から第1領域の予測信号生成に用いる動き情報を指示するための第1領域の動き選択情報(詳細は後述)とは、ラインL113bを経由して符号化器111に出力される。加えて、第1領域情報と第2領域の動き情報は、ラインL113dを経由して差分動き情報生成器115に出力される。
差分動き情報生成器115では、第2領域に隣接するブロックの動き情報を用いて第2領域の動き情報の符号化データ量を削減する。具体的には、差分動き情報生成器115は、動き情報推定器113からラインL113dを経由して入力される第1領域情報と第2領域の動き情報と、予測情報用メモリ114からラインL114bを経由して取得する隣接ブロックの動き情報とに基づいて、第2領域の動き情報に含まれる動きベクトルの各成分(水平成分、垂直成分)を、隣接ブロックの動き情報に含まれる動きベクトルから予測し、予測動きベクトルと第2領域の動きベクトルとの差分動きベクトルを求める。
そして、差分動き情報生成器115は、周囲の隣接ブロックの動き情報から第1領域の動きベクトルの予測に用いる動きベクトルを指示するための第2領域の予測動きベクトル選択情報(詳細は後述)と差分動きベクトルを含む第2領域の差分動き情報とをラインL115経由で符号化器111に出力する。第2領域の差分動き情報は、参照画面番号、画面間予測モード、第2領域の予測動きベクトル選択情報及び差分動きベクトルを含む。
予測信号生成器103では、ラインL113a経由で入力された対象ブロックの第1領域情報、第1領域の動き情報及び第2領域の動き情報に基づいて、ラインL104を経由してフレームメモリ104から既再生信号を取得し、対象ブロックの予測信号を生成する。予測信号生成器103にて生成された予測信号は、ラインL103経由で減算器105と加算器110に出力される。
減算器105は、ラインL102aを経由して入力されたブロック分割器102で分割して入力された対象ブロックの画素信号からラインL103を経由して入力される対象ブロックに対する予測信号を減算して、残差信号を生成する。減算器105は、減算して得た残差信号を、ラインL105を経由して変換器106に出力する。
変換器106は、入力された残差信号を離散コサイン変換する部分である。また、量子化器107は、変換器106により離散コサイン変換された変換係数をラインL106を経由して入力して量子化(量子化処理)する部分である。量子化器107は、量子化変換係数(量子化係数)をラインL107を経由して符号化器111に出力する。
符号化器111は、量子化器107からラインL107経由で入力された量子化変換係数、差分動き情報生成器115からラインL115を経由して入力された第1領域情報、第1領域の動き選択情報及び第2領域の差分動き情報(参照画面番号、画面間予測モード、第2領域の予測動きベクトル選択情報、差分動きベクトル)をエントロピー符号化する。符号化器111において符号化された符号化データは、ラインL111を経由して出力端子112に出力される。エントロピー符号化の方法は限定されないが、算術符号化や可変長符号化などが適用できる。なお、第1領域の動き選択情報と第2領域の予測動きベクトル選択情報については、選択の候補が1個の場合は符号化されない。
出力端子112は、符号化器111から出力された情報をまとめて外部に出力する。
逆量子化器108は、量子化された変換係数を逆量子化(逆量子化処理)してラインL108経由で逆変換器109に出力する。逆変換器109は、逆離散コサイン変換により残差信号を復元(生成)して加算器110にラインL109経由で出力する。加算器110は、復元された残差信号とラインL103経由で入力される予測信号とを加算し、対象ブロックの信号(復元画素信号)を再生し、再生された信号をフレームメモリ104に格納する。本実施形態では、変換器106と逆変換器109とを用いているが、これらの変換器に代わる他の変換処理を用いてもよい。また、変換器106及び逆変換器109は必須ではない。このように、後続の対象ブロックの予測信号生成に用いるため、符号化された対象ブロックの再生信号は、逆処理にて復元されフレームメモリ104に記憶される。
なお、差分動き情報生成器115は、符号化器111に含まれていてもよい。動き情報推定器113は、予測信号生成器103に含まれていてもよい。予測情報用メモリ114は、符号化器111又は動き情報推定器113に含まれていてもよい。
ここで、図2及び図3を用いて、第1領域情報の生成方法、第1領域及び第2領域の動き情報と予測信号の生成方法、第1領域の動き選択情報、及び、第2領域の予測動きベクトル選択情報について説明する。
最初に、第1領域の形状及び大きさの生成方法と第1領域の動き情報の生成方法とについて、図2を参照しながら説明する。
第1領域の形状としては、図2(a)〜(c)に示す領域400a、領域400b、領域400cが挙げられる。領域400aあるいは領域400bを第1領域とする場合には、領域のサイズ410a又は領域のサイズ410bを求める。領域サイズは任意でもよいが、対象ブロックの1/4,1/2,3/4のように選択肢を用意し、その中から選択してもよい。第1領域の領域形状と領域サイズを指示する情報をまとめて第1領域情報と呼ぶことにする。さらに対象ブロック全体を第2領域とする場合を第1領域形状の候補に含んでいてもよい。
次に、図2を用いて、第1領域の動き情報選択情報及び第1領域の予測信号生成方法について説明する。
第1領域が400aの場合には、隣接ブロック401a〜405aの動き情報をラインL114a経由で予測情報用メモリ114から取得し、その中から1つの動き情報を選択し、第1領域の予測信号生成に用いる。選択した動き情報を識別するための識別情報(例えば、401a〜405aに0〜4の識別番号を与える)を第1領域の動き選択情報と呼ぶ。同様に第1領域が400bの場合には、隣接ブロック401b〜405bの動き情報から1つの動き情報を選択し、第1領域の予測信号生成に用いる。第1領域が400cの場合には、隣接ブロック401c〜405cの動き情報から1つの動き情報を選択し、第1領域の予測信号生成に用いる。
一方、第2領域の動き情報はブロックマッチングにて求める。第1領域及び第2領域の動き情報は、ラインL102b経由で入力された対象ブロックの原信号と、ラインL104経由で取得される予測信号との差(絶対値誤差和や二乗誤差和)が小さくなるように求める。
次に、図3を用いて、第2領域の予測動きベクトル選択情報及び第2領域の予測動きベクトルの候補について説明する。
第2領域が図3(a)に示す領域500の場合には、隣接ブロック501a,503a及び505aの動きベクトルを予測動きベクトルの候補とする。各水平、垂直成分について、3つの動きベクトル成分値(動きベクトル成分の大きさ)の候補から第2領域の動きベクトル成分値との差が最小となる候補を選択する。選択した動きベクトル成分値を識別するための識別情報(例えば、ブロック501a,503a,505aに0〜2の識別番号を与える)を第2領域の予測動きベクトル選択情報と呼ぶ。
この際、他の隣接ブロックの動きベクトルや、複数の隣接ブロックの動きベクトルから生成される動きベクトルを予測動きベクトルの候補に加えてもよい。例えば、領域500と空間的に同一位置の符号化済み画面上のブロックの動きベクトルや、ブロック501a,503a,505aの動きベクトルの各成分の中間値から成る中間動きベクトルを予測動きベクトルの候補に加えてもよい。
しかしながら、隣接ブロック400aの動きベクトルは、予測動きベクトルの候補には含めない。隣接ブロック400aは、対象ブロックの第1領域の動きベクトルであり、第2領域の動きベクトルとは異なる。そのため、隣接ブロック400aの動きベクトルは、第2領域の動きベクトルとの差が大きい可能性が高い。そこで、予測動きベクトル選択情報の候補数を減らし、第2領域の予測動きベクトル選択情報の符号量を削減するため、隣接ブロック400aの動きベクトルは、第2領域の予測動きベクトルの候補には含めない。
ただし、全ての隣接ブロックの候補が動きベクトルを持たない場合には、図3(b)に示すように、第1領域400aの動きベクトルを予測動きベクトルとする。ここで、「動きベクトルを持たない場合」とは、隣接ブロックが画面内予測にて予測されている場合や、隣接ブロックが画面外の場合が含まれる。
図3(b)の別例としては、図3(c)に示すように、第2領域の隣接ブロックではないが、ブロック504c,505c,506cのような第1領域の隣接ブロックの動きベクトルを第2領域の予測動きベクトルの候補としてもよい。また、図3(b)及び(c)を組み合わせて予測動きベクトルの候補を選出してもよい。
なお、第2領域の動き情報に含まれる画面間予測が1つの動きベクトルを必要とすることを示す場合、すなわち片予測(第1の参照画面リストを用いた片予測又は第2の参照画面リストを用いた片予測)の場合には、第2領域の予測動きベクトル選択情報は、選択した水平及び垂直成分の動きベクトル成分値を複数の候補から識別するための2個の識別情報を含む。一方、第2領域の動き情報に含まれる画面間予測が2つの動きベクトルを必要とすることを示す場合、すなわち双予測の場合には、第2領域の予測動きベクトル選択情報は、2つの動きベクトルの水平、垂直成分の予測動きベクトル成分値を複数の候補から識別するための4個の識別情報を含む。
一方、第2領域が図3(d)に示す領域700の場合には、隣接ブロック702a,703a,705aの動きベクトルを予測動きベクトルの候補とする。各水平、垂直成分について、3つの動きベクトル成分値(動きベクトル成分の大きさ)の候補から第2領域の動きベクトル成分値との差が最小となる候補を選択する。選択した動きベクトル成分値を識別するための識別情報(例えば、ブロック702a,703a,705aに0〜2の識別番号を与える)を第2領域の予測動きベクトル選択情報と呼ぶ。
この際、他の隣接ブロックの動きベクトルや、複数の隣接ブロックの動きベクトルから生成される動きベクトルを予測動きベクトルの候補に加えてもよい。例えば、領域700と空間的に同一位置の符号化済み画面上のブロックの動きベクトルや、ブロック702a,703a,705aの動きベクトルの各成分の中間値から成る中間動きベクトルを予測動きベクトルの候補に加えてもよい。
しかしながら、隣接ブロック400bの動きベクトルは予測動きベクトルの候補には含めない。隣接ブロック400bは対象ブロックの第1領域の動きベクトルであり、第2領域の動きベクトルとは異なる。そのため、隣接ブロック400bの動きベクトルは、第2領域の動きベクトルとの差が大きい可能性が高い。そこで、予測動きベクトル選択情報の候補数を減らし、第2領域の予測動きベクトル選択情報の符号量を削減するため、隣接ブロック400bの動きベクトルは、第2領域の予測動きベクトルの候補には含めない。
ただし、全ての隣接ブロックの候補が動きベクトルを持たない場合には、図3(e)に示すように、第1領域400bの動きベクトルを予測動きベクトルとする。ここで、「動きベクトルを持たない場合」とは、隣接ブロックが画面内予測にて予測されている場合や、隣接ブロックが画面外の場合が含まれる。
図3(e)の別例としては、図3(f)に示すように、第2領域の隣接ブロックではないが、ブロック703c,705c,706cのような第1領域の隣接ブロックの動きベクトルを第2領域の予測動きベクトルの候補としてもよい。また、図3(e)及び(f)を組み合わせて予測動きベクトルの候補を選出してもよい。
なお、第2領域の動き情報に含まれる画面間予測が1つの動きベクトルを必要とすることを示す場合、すなわち片予測(第1の参照画面リストを用いた片予測又は第2の参照画面リストを用いた片予測)の場合には、第2領域の予測動きベクトル選択情報は、水平及び垂直成分の予測動きベクトル成分値を上記にて選出された複数の候補から識別するための2個の識別情報(第2領域の各成分の予測動きベクトル選択情報)を含む。一方、第2領域の動き情報に含まれる画面間予測が2つの動きベクトルを必要とすることを示す場合、すなわち双予測の場合には、第2領域の予測動きベクトル選択情報は、2つの動きベクトルの水平、垂直成分の予測動きベクトル成分値を上記にて選出された複数の候補から識別するための4個の識別情報(2つの動きベクトルにおける第2領域の各成分の予測動きベクトル選択情報)を含む。
図4は、本実施形態に係る画像予測符号化装置100における画像予測符号化方法の手順を示すフローチャートである。まず、ブロック分割器102にて入力画像を16×16の符号化ブロックに分割する(それ以外の大きさ又は形状のブロックに分割してもよい。また、画面内にサイズの異なるブロックが混在してもよい)。
次に、動き情報推定器113、予測情報用メモリ114及び差分動き情報生成器115は、対象ブロックの動き情報を生成する(ステップS100)。そして、予測信号生成器103は、第1領域情報と第1領域の動き情報及び第2領域の動き情報に基づいて対象ブロックの動き情報を生成する(ステップS101)。ステップS101における予測信号の生成方法(予測方法)には、背景技術で説明したような画面間予測や画面内予測が利用できるが、図4では、対象ブロックの一部の部分領域(第1領域)を予測情報用メモリ114に保存されている隣接ブロックの動き情報を用いて予測し、残りの部分(第2領域)をブロックマッチング(図16参照)にて検出した動き情報を用いて予測する方法について説明する。これらの予測方法をブロック単位で適応的に用いる場合には、後述するステップS103にて、選択情報を符号化する。なお、動き情報には、動きベクトル、画面間予測モード(第1の参照画面リストを用いた片予測/第2の参照画面リストを用いた片予測/双予測)、参照画面番号(複数の参照画面の識別番号、片予測の場合は1つ、双予測の場合は2つ)が含まれる。
対象ブロックの画素信号と予測信号との差分である残差信号は、変換器106及び量子化器107において、変換、量子化される。その処理により、量子化変換係数が生成される(ステップS102)。
そして、符号化器111にて、量子化変換係数と第1領域情報、第1領域の動き選択情報、第2領域の差分動き情報(参照画面番号、画面間予測モード、第2領域の予測動きベクトル選択情報、差分動きベクトル)がエントロピー符号化される(ステップS103)。符号化データは、出力端子112を介して出力される(ステップS104)。
後続の対象ブロックを予測符号化するため、これら処理の後に又はこれらの処理と並行して符号化された残差信号が逆量子化器108及び逆変換器109により復号される(ステップS105)。そして、加算器110にて、復号された残差信号と予測信号とが加算され、対象ブロックの信号が再生される。再生信号はフレームメモリ104に参照画面として記憶される(ステップS106)。そして、すべての対象ブロックの処理が完了していない場合には処理はステップS101に戻り、次の対象ブロックに対する処理が行われる。すべての対象ブロックの処理が完了している場合には、処理を終了する(ステップS107)。
図5は、図4における動き情報の生成手順(ステップS100)を示す詳細フローチャートである。動き情報推定器113は、対象ブロックの第1領域情報を生成すると共に、第1領域に隣接する複数のブロックの動き情報から第1領域の予測信号生成に用いる動き情報を選出し、第1領域の動き選択情報を生成する(ステップS111)。第1領域情報及び第1領域の動き情報は、予測情報用メモリ114に保存される。次に、動き情報推定器113は、ブロックマッチングにより第2領域の動き情報を生成する(ステップS112)。第2領域の動き情報は予測情報用メモリ114に保存される。
差分動き情報生成器115は、第2領域の水平成分の動きベクトル成分値(動きベクトル成分の大きさ)に対応する予測動きベクトル成分値を求めるため、図3で説明したように、複数の隣接ブロックの動きベクトルから予測動きベクトル成分値の候補を選出する(ステップS113)。次に、選出した予測動きベクトル成分値の候補から、第2領域の水平成分の動きベクトル成分値との差分値が最小となる1つの水平成分の動きベクトル成分値を選択する。選択した情報に基づいて、複数の予測動きベクトル成分値の候補から1つを指示するための識別情報にて構成される第2領域の予測動きベクトル選択情報を生成する(ステップS114)。そして、選択した水平方向の予測動きベクトル成分値と第2領域の水平成分の動きベクトル成分値との差分値を算出する(ステップS115)。同様に垂直成分について、ステップS113からステップS115を実施する。さらに、第2領域の動き情報が2つの動きベクトルを有する場合には、2本目の動きベクトルの水平成分及び垂直成分についてもステップS113からステップS115を実施する(ステップS117)。
差分動き情報生成器115は生成した第1領域情報、第1領域の動き選択情報、第2領域の差分動き情報(参照画面番号、画面間予測モード、第2領域の予測動きベクトル選択情報、差分動きベクトル)を符号化器111に出力する(ステップS116)。
図6に、ステップS113における予測動きベクトル成分値(水平成分、垂直成分)の候補選出手順を示す詳細フローチャートを示す。ここでは、例えば、図3(a)のブロック400a,501a,503a,505aあるいは、図3(d)のブロック400b,702a,703a,705aを隣接ブロックの候補とした場合、この4個の予測動きベクトル成分値の候補から、差分動き情報生成器115が、実際に選択可能な動きベクトル成分値を選出する。
まず、隣接ブロックの候補数N(図3(a)及び(d)の例では4)を設定すると共に、チェック済みの隣接ブロック数nと選択可能な動きベクトル成分値の数mを0に初期化する(ステップS151)。次に、n番目の隣接動きベクトルが対象ブロック内の第1領域(図3(a)ではブロック400a、図3(d)ではブロック400b)であるかを判定する(ステップS152)。Yesの場合にはステップS157に、noの場合はステップS153に進む。ステップS153では、n番目の隣接ブロックに属する動き情報と対象ブロック内の第1領域の動き情報を取得する。そして、それらが一致するかを判定する(ステップS154)。noの場合にはステップS157に、Yesの場合はステップS155に進む。ステップS155では、n番目の隣接ブロックの動きベクトルが予測動きベクトルの条件を満たすかを判定する。noの場合にはステップS157に、Yesの場合はステップS156に進む。予測動きベクトルの条件については、図10において後に説明する。ステップS156では、n番目の隣接ブロックに属する動きベクトル成分値を予測動きベクトル成分値の候補に追加し、「m」に「1」を加算する。続いて、ステップS157では、「n」に「1」を加算する。「n」の値が「N」より小さい場合には、次の隣接ブロックの動きベクトル成分値が予測動きベクトルの候補として選択可能であるかを判定するため、ステップS152に戻る(ステップS158)。
「n」の値が「N」より大きい場合には、「m」の値が「0」より大きいか否かを判定する(ステップS159)。Yesの場合には処理を終了し、noの場合には、予測動きベクトルの候補数が0個であるため、追加の処理を行う。まず、対象ブロック内の第1領域の動き情報を取得する(ステップS160)。次に、対象ブロック内の第1領域の動き情報が予測動き情報の条件を満たすかを判定する(ステップS161)。Yesの場合にはステップS162に進み、noの場合は処理を終了する。ステップS162では、対象ブロック内の第1領域の動きベクトル成分値を予測動きベクトル成分値の候補に追加し、「m」の値を「1」として、処理を終了する。なお、最終的に「m」が「0」の場合には予測動きベクトル成分値は「0」となる。
図7は、ステップS155とステップS162にて、隣接ブロックの動き情報が予測動き情報の条件を満たすかを判定するための処理フローを示している。ステップS171からステップS173にて、3つの条件がチェックされ、いずれかを満たす場合には、予測動き情報の条件を満たすものと判断される。ステップS171では、隣接ブロックが画面内に存在し、動きベクトルを有するブロックかであるかを判定する。ステップS172では隣接ブロックの動き情報に予測対象である動きベクトルと同じ参照画面リストを指し示す動きベクトルが含まれているかを判定する。例えば、隣接ブロックの画面間予測モードが第1の参照画面リストを用いた片予測で、予測対象の動きベクトルが第2の参照画面リストを用いた片予測の動きベクトルの場合には、予測動き情報の条件を満たさない(no)と判定する。隣接ブロックの画面間予測モードが双予測あるいは第2の参照画面リストを用いた片予測で、予測対象の動きベクトルが第2の参照画面リストを用いた片予測の動きベクトルの場合には、予測動き情報の条件を満たす(Yes)と判定する。
ステップS173では、ステップS172に条件を満たす隣接ブロックの動きベクトルが指示する参照画面番号が、予測対象である動きベクトルが指し示す参照画面番号と一致するかを判定する。一致しない場合は、予測動き情報の条件を満たさない(no)と判定する。
このように、第2領域の予測動きベクトルの候補から、第1領域の動きベクトルを除外することにより、予測動きベクトルの候補数が減り、第2領域の予測動きベクトル選択情報の符号量が抑制される。これにより、第2領域の動き情報の符号化効率が向上する。
また、第2領域の予測動きベクトルの候補数が0個の場合には、第1領域の動きベクトルを第2領域の予測動きベクトルとして使用する。第2領域の予測動きベクトルの候補数は1個であれば、識別情報の符号化は必要ないため、第2領域の予測動きベクトル選択情報の符号量は増加しない。一方、第2領域の予測動きベクトルの候補数が0個の場合には、第1領域の動きベクトル成分がそのまま符号化されるため(予測動きベクトル成分値が「0」となる)、第1領域と第2領域の動きベクトル成分値の差分の絶対値が、第2領域の動きベクトル成分値の絶対値より小さいとき、動きベクトル成分値の符号量は削減される。このとき、第2領域の動き情報の符号化効率は向上する。
次に、一実施形態に係る画像予測復号について説明する。図8は、一実施形態に係る画像予測復号装置を示すブロック図である。この画像予測復号装置200は、入力端子201、復号器(復号手段)202、逆量子化器203、逆変換器204、加算器205、出力端子206、動き情報復元器(動き情報復元手段)207、フレームメモリ104、予測信号生成器103、予測情報用メモリ114を備えている。逆量子化器108と逆変換器109は逆量子化手段として機能する。なお、逆量子化手段は、これらのもの以外を用いて行ってもよい。また、逆変換器204はなくてもよい。また、予測情報用メモリ114と動き情報復元器207は復号器202に含まれていてもよい。
入力端子201は、上述した画像予測符号化方法で圧縮符号化された圧縮データを入力する。この圧縮データには、複数に分割された復号対象のブロック(対象ブロック)について、誤差信号を変換量子化してエントロピー符号化した量子化変換係数と、ブロックの予測信号を生成するための動き情報を復元するための符号化データが含まれている。動き情報には、動きベクトル、画面間予測モード(第1の参照画面リストを用いた片予測/第2の参照画面リストを用いた片予測/双予測)、参照画面番号(複数の参照画面の識別番号、片予測の場合は1つ、双予測の場合は2つ)が含まれる。本実施形態では、復号対象の対象ブロックのサイズを16×16とするが、それ以外の大きさ又は形状のブロックに分割でもよい。また、画面内にサイズの異なるブロックが混在してもよい。
復号器202は、入力端子201に入力された圧縮データをラインL201を経由して入力し、この圧縮データを解析して、復号対象の対象ブロックに関する量子化変換係数の符号化データと動き情報の符号化データに分離すると共に、エントロピー復号し、復号データをラインL202a、ラインL202b経由で、それぞれ、逆量子化器203、動き情報復元器207に出力する。
動き情報復元器207は、入力された復号データに基づいて対象ブロックの動き情報を復元する。
対象ブロックの予測信号の生成方法(予測方法)については、背景技術で説明したような画面間予測や画面内予測(画面内予測については図示せず)が適用可能であるが、本実施形態では、対象ブロックの一部の部分領域(第1領域)を予測情報用メモリ114に保存されている隣接ブロックの動き情報を用いて予測し、残りの部分(第2領域)をブロックマッチング(図16参照)にて検出した動き情報を用いて予測する方法を考える。なお、これらの予測方法をブロック単位で適応的に用いる場合は、選択情報を復号器202にて復号し、その選択情報に基づいて、動き情報の復元処理を行う。
動き情報復元器207に入力された復号データには、第1領域情報、第1領域の動き選択情報と第2領域の差分動き情報(参照画面番号、画面間予測モード、第2領域の予測動きベクトル選択情報、差分動きベクトル)が含まれている。
第1領域情報には、第1領域の形状と大きさを示す情報が含まれている。第1領域の形状としては、図2の(a)〜(c)に示す領域400a、領域400b、領域400cが挙げられる。さらに第1領域の形状の候補に、対象ブロック全体を第2領域とする場合を含んでいてもよい。その中から1つを指示するための領域形状情報が第1領域情報に含まれる。領域400aあるいは領域400bを第1領域とする場合には、領域のサイズ410a又は410bも第1領域情報に含まれる。領域サイズとしては、任意の値が復号される場合と、対象ブロックの1/4,1/2,3/4のように選択肢から1つを指示するための情報が復号される場合がある。
第1領域が領域400aの場合には、第1領域の動き選択情報として、隣接ブロック401a〜405aの動き情報から1つを選択するための識別情報(例えば、ブロック401a〜405aに0〜4の識別番号を与えられている)が復号データに含まれている。同様に第1領域が領域400bの場合には、第1領域の動き選択情報として、隣接ブロック401b〜405bの動き情報から1つの動き情報を選択するための識別情報が復号データに含まれている。第1領域が400cの場合には、第1領域の動き選択情報として、隣接ブロック401c〜405cの動き情報から1つの動き情報を選択するための識別情報が復号データに含まれている。いずれも場合でも、復号された第1領域の動き選択情報に基づいて、ラインL114経由で予測情報用メモリ114から1つの隣接ブロックの動き情報を取得し、第1領域の動き情報とする。
なお、第1領域の動き情報の候補が1つの場合、例えば、1つ以外の候補の隣接ブロックが画面内予測で予測されている場合や画面外のブロックの場合には、第1領域の動き選択情報は復号側で一意に決定できるため、第1領域の動き選択情報は復号データに含まれなくてもよい。また、第1領域の動き情報の候補が0個の場合には、対象ブロック全体が第2領域となることが一意に決定できるため、第1領域情報が復号データに含まれていなくてもよい。
第2領域の動き情報の復号データである第2領域の差分動き情報には、上記で説明したように参照画面番号、画面間予測モード、第2領域の予測動きベクトル選択情報及び差分動きベクトルが含まれている。
動き情報復元器207では、第2領域の予測動きベクトル選択情報に基づいて、第2領域の予測動きベクトル値を水平及び垂直成分についてそれぞれ生成し、復号された差分動きベクトル値と加算することにより、第2領域の動きベクトルを復元する。動き情報復元器207は、第2領域の予測動きベクトル選択情報に基づいて、複数の予測動きベクトルの候補(詳細は後述)から第2領域の予測動きベクトルを得られる。
第2領域の予測動きベクトル選択情報について詳細に説明する。第2領域の動き情報に含まれる画面間予測が1つの動きベクトルを必要とすることを示す場合、すなわち片予測(第1の参照画面リストを用いた片予測又は第2の参照画面リストを用いた片予測)の場合には、第2領域の予測動きベクトル選択情報は、水平及び垂直成分の予測動きベクトル成分値を複数の候補から識別するための2個の識別情報(第2領域の水平、垂直成分の予測動きベクトル選択情報)を含む。一方、第2領域の動き情報に含まれる画面間予測が2つの動きベクトルを必要とすることを示す場合、すなわち双予測の場合には、第2領域の予測動きベクトル選択情報は、2つの動きベクトルの水平、垂直成分の予測動きベクトル成分値を複数の候補から識別するための4個の識別情報(2つの動きベクトルにおける第2領域の各成分の予測動きベクトル選択情報)を含む。
これらの識別情報に基づいて、第2領域の全ての動きベクトルを復元する。この処理により、第2領域の動き情報は復元される。
なお、予測動きベクトル成分値の候補が1個の場合には、予測動きベクトル成分値は一意に決定できるため、その動きベクトル成分値については、予測動きベクトル成分値を複数の候補から識別するため識別情報は復号データに含まれていなくてもよい。予測動きベクトル成分値の候補が0個の場合には、予測動きベクトル成分値は「0」となる。
動き情報復元器207は、復元した第1領域情報、第1領域の動き情報及び第2領域の動き情報をラインL207aとラインL207bを経由して、それぞれ、予測信号生成器103と予測情報用メモリ114に出力する。
予測情報用メモリ114は、入力された第1領域情報、第1領域の動き情報及び第2領域の動き情報を、以降の予測のために保存する。
予測信号生成器103では、ラインL207a経由で入力された第1領域情報、第1領域の動き情報及び第2領域の動き情報に基づいて、フレームメモリ104から既再生信号を取得し、対象ブロックの予測信号を生成する。生成された予測信号はラインL103経由で加算器205に出力される。
復号器202は、対象ブロックにおける残差信号の量子化変換係数の符号化データをエントロピー復号し、ラインL202経由で逆量子化器203に出力する。
逆量子化器203は、ラインL202経由で入力された復号データに含まれる量子化変換係数を逆量子化し、この量子化変換係数をラインL203を経由して逆変換器204に出力する。逆変換器204は、逆量子化したデータを逆離散コサイン変換し、対象ブロックの誤差信号を復元する。逆変換器204は、対象ブロックの誤差信号をラインL204を経由して加算器205に出力する。
加算器205は、予測信号生成器103で生成された予測信号をラインL103を経由して入力し、この予測信号を逆量子化器203及び逆変換器204により復元された残差信号に加算して、対象ブロックの再生画素信号をラインL205経由で出力端子206及びフレームメモリ104に出力する。出力端子206は、外部に(例えばディスプレイ)出力する。
フレームメモリ104は、次の復号処理のための参照用の再生画像として、加算器205から出力された再生画像を参照画面として記憶する。
ここで、図3を用いて、第2領域の予測動きベクトル選択情報と第2領域の予測動きベクトルの候補について説明する。
第2領域が図3(a)に示す領域500の場合には、隣接ブロック501a,503a及び505aの動きベクトルを予測動きベクトルの候補となる。符号化側で選択された動きベクトル成分値を識別するための識別情報(例えば、ブロック501a,503a,505aに0〜2の識別番号を与える)を第2領域の予測動きベクトル選択情報と呼ぶ。
この際、他の隣接ブロックの動きベクトルや、複数の隣接ブロックの動きベクトルから生成される動きベクトルが予測動きベクトルの候補に加えられていてもよい。例えば、領域500と空間的に同一位置の符号化済み画面上のブロックの動きベクトルや、ブロック501a,503a,505aの動きベクトルの各成分の中間値から成る中間動きベクトルを予測動きベクトルの候補に加えてもよい。
しかしながら、隣接ブロック400aの動きベクトルは予測動きベクトルの候補には含めない。隣接ブロック400aは対象ブロックの第1領域の動きベクトルであり、第2領域の動きベクトルとは異なる。そのため、隣接ブロック400aの動きベクトルは、第2領域の動きベクトルとの差が大きい可能性が高い。そこで、予測動きベクトル選択情報の候補数を減らし、第2領域の予測動きベクトル選択情報の符号量を削減するため、隣接ブロック400aの動きベクトルは、第2領域の予測動きベクトルの候補には含めない。
ただし、全ての隣接ブロックの候補が動きベクトルを持たない場合には、図3(b)に示すように、第1領域400aの動きベクトルを予測動きベクトルとする。ここで、「動きベクトルを持たない場合」とは、隣接ブロックが画面内予測にて予測されている場合や、隣接ブロックが画面外の場合が含まれる。
図3(b)の別例としては、図3(c)に示すように、第2領域の隣接ブロックではないが、ブロック504c,505c,506cのような第1領域の隣接ブロックの動きベクトルを第2領域の予測動きベクトルの候補としてもよい。また、図3(b)及び(c)を組み合わせて予測動きベクトルの候補を選出してもよい。
なお、第2領域の動き情報に含まれる画面間予測が1つの動きベクトルを必要とすることを示す場合、すなわち片予測(第1の参照画面リストを用いた片予測又は第2の参照画面リストを用いた片予測)の場合には、第2領域の予測動きベクトル選択情報は、選択した水平及び垂直成分の動きベクトル成分値を複数の候補から識別するための2個の識別情報を含んでいる。一方、第2領域の動き情報に含まれる画面間予測が2つの動きベクトルを必要とすることを示す場合、すなわち双予測の場合には、第2領域の予測動きベクトル選択情報は、2つの動きベクトルの水平、垂直成分の予測動きベクトル成分値を複数の候補から識別するための4個の識別情報を含んでいる。
一方、第2領域が図3(d)に示す領域700の場合には、隣接ブロック702a,703a及び705aの動きベクトルを予測動きベクトルの候補となる。符号化側で選択された動きベクトル成分値を識別するための識別情報(例えば、ブロック702a,703a,705aに0〜2の識別番号を与える)を第2領域の予測動きベクトル選択情報と呼ぶ。
この際、他の隣接ブロックの動きベクトルや、複数の隣接ブロックの動きベクトルから生成される動きベクトルが予測動きベクトルの候補に加えられていてもよい。例えば、領域700と空間的に同一位置の符号化済み画面上のブロックの動きベクトルや、ブロック702a,703a,705aの動きベクトルの各成分の中間値から成る中間動きベクトルを予測動きベクトルの候補に加えてもよい。
しかしながら、隣接ブロック400bの動きベクトルは予測動きベクトルの候補には含めない。隣接ブロック400bは対象ブロックの第1領域の動きベクトルであり、第2領域の動きベクトルとは異なる。そのため、隣接ブロック400bの動きベクトルは、第2領域の動きベクトルとの差が大きい可能性が高い。そこで、予測動きベクトル選択情報の候補数を減らし、第2領域の予測動きベクトル選択情報の符号量を削減するため、隣接ブロック400bの動きベクトルは、第2領域の予測動きベクトルの候補には含めない。
ただし、全ての隣接ブロックの候補が動きベクトルを持たない場合には、図3(e)に示すように、第1領域400bの動きベクトルを予測動きベクトルとする。ここで、「動きベクトルを持たない場合」とは、隣接ブロックが画面内予測にて予測されている場合や、隣接ブロックが画面外の場合が含まれる。
図3(e)の別例としては、図3(f)に示すように、第2領域の隣接ブロックではないが、ブロック703c,705c,706cのような第1領域の隣接ブロックの動きベクトルを第2領域の予測動きベクトルの候補としてもよい。また、図3(e)及び(f)を組み合わせて予測動きベクトルの候補を選出してもよい。
次に、図9を用いて、図6に示す画像予測復号装置200における画像予測復号方法を説明する。まず、入力端子201を介して、圧縮データが入力される(ステップS201)。この圧縮データには、複数に分割された復号対象のブロック(対象ブロック)について、誤差信号を変換量子化してエントロピー符号化した量子化変換係数と、ブロックの予測信号を生成するための動き情報を復元するための符号化データが含まれている。動き情報には、動きベクトル、画面間予測モード(第1の参照画面リストを用いた片予測/第2の参照画面リストを用いた片予測/双予測)、参照画面番号(複数の参照画面の識別番号、片予測の場合は1つ、双予測の場合は2つ)が含まれている。本実施形態では、復号対象の対象ブロックのサイズを16×16とするが、それ以外の大きさ又は形状のブロックに分割でもよい。また、画面内にサイズの異なるブロックが混在してもよい。
復号器202は、入力端子201に入力された圧縮データを解析して、復号対象の対象ブロックに関する量子化変換係数と動き情報の復号データをエントロピー復号する(ステップS202)。動き情報の復号データには、第1領域情報、第1領域の動き選択情報と第2領域の差分動き情報(参照画面番号、画面間予測モード、第2領域の予測動きベクトル選択情報、差分動きベクトル)が含まれている。
対象ブロックの予測信号の生成方法(予測方法)については、背景技術で説明したような画面間予測や画面内予測(画面内予測については図示せず)が適用可能であるが、本実施形態では、対象ブロックの一部の部分領域(第1領域)を予測情報用メモリ114に保存されている隣接ブロックの動き情報を用いて予測し、残りの部分(第2領域)をブロックマッチング(図16参照)にて検出した動き情報を用いて予測する方法を考える。なお、これらの予測方法をブロック単位で適応的に用いる場合は、選択情報を復号器202にて復号し、その選択情報に基づいて、動き情報の復元処理を行う。
その後、動き情報の復号データに基づいて、動き情報復元器207が第1領域情報、第1領域の動き情報及び第2領域の動き情報を復元する(ステップS203)。第2領域の動き情報を復元する際には、第1の動き情報が第2領域の動き情報と異なることを考慮して行う。なお、復元された第1領域情報、第1領域の動き情報及び第2領域の動き情報は、以降の予測処理のため予測情報用メモリ114に保存される。
復元した第1領域情報、第1領域の動き情報及び第2領域の動き情報に基づいて、予測信号生成器103が対象ブロックの予測信号を生成する(ステップS204)。
復号器202にて復号された量子化変換係数は、逆量子化器203において逆量子化され、逆変換器204において逆変換が行われ、再生残差信号が生成される(ステップS205)。そして、生成された予測信号と再生残差信号とが加算されることで再生信号が生成され、この再生信号が次の対象ブロックを再生するためにフレームメモリ104に格納される(ステップS206)。次の圧縮データがある場合には、S202〜S206のプロセスを繰り返し(ステップS207)、全データが最後まで処理される。
図10は、図9における動き情報の生成手順(ステップS203)を示す詳細フローチャートである。
まず、動き情報復元器207に、復号した第1領域情報、第1領域の動き選択情報、第2領域の差分動き情報が入力される(ステップS231)。
動き情報復元器207は、第1領域の動き選択情報に基づいて、第1領域の動き情報を復元する(ステップS232)。
次に、動き情報復元器207は、第2領域の水平成分の動きベクトル成分値(動きベクトル成分の大きさ)に対応する予測動きベクトル成分値を求めるため、図3で説明したように、複数の隣接ブロックの動きベクトルから予測動きベクトル成分値の候補を選出する(ステップS233)。
動き情報復元器207は、復元した第2領域の差分動き情報に含まれる第2領域の水平成分の予測動きベクトル選択情報に基づいて、選出した予測動きベクトル成分値の候補から第2領域の水平成分の予測動きベクトル成分値を選択する(ステップS234)。そして、復元した第2領域の差分動き情報に含まれる第2領域の水平成分の差分動きベクトル成分値と複数の候補から選択した予測動きベクトル成分値を加算して、第2領域の水平成分の動きベクトル成分値を復元する(ステップS235)。同様に垂直成分について、ステップS233からステップS235を実施する。さらに、第2領域の動き情報が2つの動きベクトルを有する場合には、2本目の動きベクトルの水平成分及び垂直成分についてもステップS233からステップS235を実施する(ステップS236)。この処理により、第2領域の動き情報が復元される。
図6に、ステップS233における予測動きベクトル成分値(水平成分、垂直成分)の候補選出手順を示す詳細フローチャートを示す。ここでは、例えば、図3(a)のブロック400a,501a,503a,505aあるいは、図3(d)のブロック400b,702a,703a,705aを隣接ブロックの候補とした場合、4個の予測動きベクトル成分値の候補から、差分動き情報生成器115が、実際に選択可能な動きベクトル成分値を選出する。
まず、隣接ブロックの候補数N(図3(a)及び(d)の例では4)を設定すると共に、チェック済みの隣接ブロック数nと選択可能な動きベクトル成分値の数mを0に初期化する(ステップS151)。次に、n番目の隣接動きベクトルが対象ブロック内の第1領域(図3(a)ではブロック400a、図3(d)ではブロック400b)であるかを判定する(ステップS152)。Yesの場合にはステップS157に、noの場合はステップS153に進む。ステップS153では、n番目の隣接ブロックに属する動き情報と対象ブロック内の第1領域の動き情報を取得する。そして、それらが一致するかを判定する(ステップS154)。noの場合にはステップS157に、Yesの場合はステップS155に進む。ステップS155では、n番目の隣接ブロックの動きベクトルが予測動きベクトルの条件を満たすかを判定する。noの場合にはステップS157に、Yesの場合はステップS156に進む。予測動きベクトルの条件については、図7において後に説明する。ステップS156では、n番目の隣接ブロックに属する動きベクトル成分値を予測動きベクトル成分値の候補に追加し、「m」に「1」を加算する。続いて、ステップS157では、「n」に「1」を加算する。「n」の値が「N」より小さい場合には、次の隣接ブロックの動きベクトル成分値が予測動きベクトルの候補として選択可能であるかを判定するため、ステップS152に戻る(ステップS158)。
「n」の値が「N」より大きい場合には、「m」の値が「0」より大きいか否かを判定する(ステップS159)。Yesの場合には処理を終了し、noの場合には、予測動きベクトルの候補数が0個であるため、追加の処理を行う。まず、対象ブロック内の第1領域の動き情報を取得する(ステップS160)。次に、対象ブロック内の第1領域の動き情報が予測動き情報の条件を満たすかを判定する(ステップS161)。Yesの場合にはステップS162に進み、noの場合は処理を終了する。なお、「m」の0個の場合には予測動きベクトル成分値は「0」となる。ステップS162では、対象ブロック内の第1領域の動きベクトル成分値を予測動きベクトル成分値の候補に追加し、「m」の値を「1」として、処理を終了する。
図7は、ステップS155とステップS161とにおいて、隣接ブロックの動き情報が予測動き情報の条件を満たすかを判定するための処理フローを示している。ステップS171からステップS173にて、3つの条件がチェックされ、いずれかを満たす場合には、予測動き情報の条件を満たすものと判断される。ステップS171では、隣接ブロックが画面内に存在し、動きベクトルを有するブロックかであるかを判定する。ステップS172では、隣接ブロックの動き情報に予測対象である動きベクトルと同じ参照画面リストを指し示す動きベクトルが含まれているかを判定する。例えば、隣接ブロックの画面間予測モードが第1の参照画面リストを用いた片予測で、予測対象の動きベクトルが第2の参照画面リストを用いた片予測の動きベクトルの場合には、予測動き情報の条件を満たさない(no)と判定する。隣接ブロックの画面間予測モードが双予測あるいは第2の参照画面リストを用いた片予測で、予測対象の動きベクトルが第2の参照画面リストを用いた片予測の動きベクトルの場合には、予測動き情報の条件を満たす(Yes)と判定する。ステップS173では、ステップS172に条件を満たす隣接ブロックの動きベクトルが指示する参照画面番号が、予測対象である動きベクトルが指し示す参照画面番号と一致するかを判定する。一致しない場合は、予測動き情報の条件を満たさない(no)と判定する。
本発明では、さらに下記の変形が可能である。
(第2領域の動き情報の候補)
上述の説明では、第2領域の予測動きベクトル成分値の候補を、水平、垂直成分に分けて選出していたが、水平及び垂直成分をまとめて、予測動きベクトルの候補を選出してもよい。この際にも、図3や図9で説明したように、第1領域の動きベクトルは、候補に含めない。但し、予測動きベクトルの候補が0個の場合には、第1領域の動きベクトルを第2領域の予測動きベクトルの候補としてもよいし、図3(c)や図3(f)のように第1領域に隣接するブロックの動きベクトルを予測動きベクトルの候補に加えてもよい。
また、第2領域の予測動きベクトルの候補は、必ずしも第2領域に隣接していなくてもよい。例えば、対象ブロック内の第2領域と空間的に同一位置(時間方向の隣接ブロック)の符号化済み画面、つまり参照画面上の領域に付随する動きベクトルを予測動きベクトルの候補に加えてもよい。この際、第2領域に付随する動き情報に含まる動きベクトルが指示する参照画面番号が、時間方向の隣接ブロックに付随する動き情報に含まる動きベクトルが指示する参照画面番号と異なる場合には、参照画面番号が同じになるように動きベクトルを時間方向にスケーリングしてよい。
さらに、サイズの異なる対象ブロックが画面内に含まれる場合には、第2領域の上端(図3のブロック501に相当)あるいは左端(図3のブロック702に相当)に複数のブロックが存在する場合がある。この場合、これらの複数のブロックを全ての予測動きベクトルの候補に加えてもよいし、複数から1つを選択してもよい。後者については、例えば、上端(左端)のブロックについて、図10の条件を満たす動きベクトルを左から右に(上から下に)向けて順番に探すような方法でもよい。
(第1領域の動き情報の候補)
第2領域の予測動きベクトルの候補は、必ずしも第2領域に隣接していなくてもよい。例えば、対象ブロック内の第2領域と空間的に同一位置(時間方向の隣接ブロック)の符号化済み画面、つまり参照画面上の領域に付随する動きベクトルを予測動きベクトルの候補に加えてもよい。
(第1領域の形状)
第1領域の形状は矩形でなくてもよい。例えば、対象ブロックを斜めに分割してもよいし、曲線で分割されていてもよい。
(動きベクトル予測)
上記では、対象ブロックを第1領域と第2領域に分け、第1領域を隣接ブロックの動き情報を用いて予測する方法について説明した。しかしながら、図3や図9にて説明する本発明における第2領域の予測動きベクトルの候補選出法は、第1領域をブロックマッチングにて生成した動き情報を用いて予測する方法でも有効である。対象ブロックを2つに分割して動き予測では、第1領域と第2領域の動きベクトルは異なる。そのため、第2領域の動きベクトルの予測に第1領域の動きベクトルを用いる効果は低いと考えられる。
(変換器、逆変換器)
残差信号の変換処理は、固定のブロックサイズで行ってもよいし、部分領域にあわせて対象領域を再分割して変換処理を行ってもよい。
(動き情報)
上述した説明では、動き情報は、動きベクトル、参照画面番号及び画面間予測モードにて構成されると説明してきたが、輝度補償などの信号変換処理を含む予測方法にも本発明の予測信号生成処理は適用可能である。この場合、輝度補償パラメータなどが予測情報に含まれる。このパラメータについても、動きベクトルと同様に、隣接ブロックのパラメータとの差分値が符号化される場合には、図3や図9で説明した候補選出法が適用できる。
(画面間予測モード)
2つの参照画面リストを用いず、前方向/後方向/双方向予測を用いてもよい。
(色信号)
上述した説明では、色フォーマットについては特に述べていないが、色信号あるいは色差信号についても、輝度信号と個別に予測信号の生成処理を行ってもよい。また、輝度信号の処理と連動して予測信号の生成処理を行ってもよい。
(ブロックノイズ除去処理)
上述した説明では述べていないが、再生画像に対してブロックノイズ除去処理を行う場合には、第1領域と第2領域の境界部分に対してノイズ除去処理を行うとよい。
本実施形態に係る画像予測符号化方法及び画像予測復号方法を、プログラムとして記録媒体に格納して提供することもできる。記録媒体としては、フロッピーディスク(登録商標)、CD−ROM、DVD、あるいはROM等の記録媒体、あるいは半導体メモリ等が例示される。
図11は、画像予測符号化方法を実行することができるプログラムのモジュールを示すブロック図である。画像予測符号化プログラムP100は、ブロック分割モジュール(領域分割モジュール)P101、予測信号生成モジュールP102、記憶モジュール(記録モジュール)P103、減算モジュール(残差信号生成モジュール)P104、変換モジュールP105、量子化モジュールP106、逆量子化モジュールP107、逆変換モジュールP108、加算モジュールP109、符号化モジュールP110、動き情報推定モジュールP111、予測情報記憶モジュール(予測情報保存モジュール)P112、及び差分動き情報生成モジュールP113を備えている。上記各モジュールがコンピュータで実行されることにより実現される機能は、上述した画像予測符号化装置100の機能と同じである。すなわち、ブロック分割モジュールP101、予測信号生成モジュールP102、記憶モジュールP103、減算モジュールP104、変換モジュールP105、量子化モジュールP106、逆量子化モジュールP107、逆変換モジュールP108、加算モジュールP109、符号化モジュールP110、動き情報推定モジュールP111、予測情報記憶モジュールP112、及び差分動き情報生成モジュールP113は、ブロック分割器102、予測信号生成器103、フレームメモリ104、減算器105、変換器106、量子化器107、逆量子化器108、逆変換器109、加算器110、符号化器111、動き情報推定器113、予測情報用メモリ114、差分動き情報生成器115とそれぞれ同様の機能をコンピュータに実行させる。
また、図12は、画像予測復号方法を実行することができるプログラムのモジュールを示すブロック図である。画像予測復号プログラムP200は、復号モジュールP201、動き情報復元モジュールP202、予測情報記憶モジュールP203、予測信号生成モジュールP204、記憶モジュールP205、逆量子化モジュールP206、逆変換モジュールP207及び加算モジュールP208を備えている。
上記各モジュールが実行されることにより実現される機能は、上述した画像予測復号装置200の各構成要素と同じである。すなわち、復号モジュールP201、動き情報復元モジュールP202、予測情報記憶モジュールP203、予測信号生成モジュールP204、記憶モジュールP205、逆量子化モジュールP206、逆変換モジュールP207、加算モジュールP208は、復号器202、動き情報復元器207、予測情報用メモリ114、予測信号生成器103、フレームメモリ104、逆量子化器203、逆変換器204、加算器205と、それぞれ同様の機能をコンピュータに実行させる。
このように構成された画像予測符号化プログラムP100又は画像予測復号プログラムP200は、記録媒体10に記憶され、後述するコンピュータで実行される。
図13は、記録媒体に記録されたプログラムを実行するためのコンピュータのハードウェア構成を示す図であり、図14は、記録媒体に記憶されたプログラムを実行するためのコンピュータを示す図である。なお、記録媒体に記憶されたプログラムを実行するものはコンピュータに限定されず、CPUを具備しソフトウエアによる処理や制御を行なうDVDプレーヤ、セットトップボックス、携帯電話などでもよい。
図14に示すように、コンピュータ30は、フロッピーディスクドライブ装置、CD−ROMドライブ装置、DVDドライブ装置等の読取装置12と、オペレーティングシステムを常駐させた作業用メモリ(RAM)14と、記録媒体10に記憶されたプログラムを記憶するメモリ16と、ディスプレイといった表示装置18と、入力装置であるマウス20及びキーボード22と、データ等の送受を行うための通信装置24と、プログラムの実行を制御するCPU26とを備えている。コンピュータ30は、記録媒体10が読取装置12に挿入されると、読取装置12から記録媒体10に格納された画像予測符号化・復号プログラムにアクセス可能になり、当該画像符号化又は復号プログラムによって、本実施形態に係る画像符号化装置又は画像復号装置として動作することが可能になる。
図13に示すように、画像予測符号化プログラム及び画像復号プログラムは、搬送波に重畳されたコンピュータデータ信号40としてネットワークを介して提供されるものであってもよい。この場合、コンピュータ30は、通信装置24によって受信した画像予測符号化プログラムもしくは画像復号プログラをメモリ16に格納し、当該画像予測符号化プログラムもしくは画像予測復号プログラムを実行することができる。
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明はさらに上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。