(57)【特許請求の範囲】
【請求項１】
動画像を符号化する画像符号化装置であって、
対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を複数の予測モードごとに算出し、各予測モードにおいては、前記対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して前記予測信号を算出するための幾何学変換動き補償予測部と、
対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測部による複数の予測モードのいずれかを選択するための予測方法決定部と、
前記予測方法決定部により選択された予測モードで算出された予測信号と、前記対象ブロックの画像信号との差分を算出し、予測誤差信号を生成するための予測誤差信号生成部と、
前記予測方法決定部により選択された予測モードで算出された代表画素の動きベクトルの予測動きベクトルを、前記対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと前記選択された予測モードで算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成するための差分ベクトル生成部と、
前記予測方法決定部により選択された予測モードを特定するための予測方法情報、前記差分ベクトル生成部により生成された差分動きベクトル、および前記予測誤差信号生成部により生成された予測誤差信号を符号化するための符号化部と、を備え、
前記対象ブロックは四角形の領域であり、
前記幾何学変換動き補償予測部は、
前記対象ブロックの４つの頂点のうち、左上、右上、左下および右下の代表画素の差分動きベクトルを生成する第１モードと、
前記対象ブロックの４つの頂点のうち、左上、右上および左下の代表画素の差分動きベクトルを生成し、右下の代表画素の差分動きベクトルを生成しない第２モードと、
前記対象ブロックの４つの頂点のうち、左上および左下の代表画素の差分動きベクトルを生成し、右上および右下の代表画素の差分動きベクトルを生成しない第３モードと、
前記対象ブロックの４つの頂点のうち、左上および右上の代表画素の差分動きベクトルを生成し、左下および右下の代表画素の差分動きベクトルを生成しない第４モードと、
前記対象ブロックの４つの頂点のうち、左上および右下の代表画素の差分動きベクトルを生成し、右上および左下の代表画素の差分動きベクトルを生成しない第５モードと、
前記対象ブロックの４つの頂点のうち、右上および左下の代表画素の差分動きベクトルを生成し、左上および右下の代表画素の差分動きベクトルを生成しない第６モードと、
前記対象ブロックの４つの頂点のうち、左上の代表画素の差分動きベクトルを生成し、右上、左下および右下の代表画素の差分動きベクトルを生成しない第７モードと、
前記対象ブロックの４つの頂点のうち、右上の代表画素の差分動きベクトルを生成し、左上、左下および右下の代表画素の差分動きベクトルを生成しない第８モードと、
前記対象ブロックの４つの頂点のうち、左下の代表画素の差分動きベクトルを生成し、左上、右上および右下の代表画素の差分動きベクトルを生成しない第９モードと、
前記対象ブロックの４つの頂点のうち、右下の代表画素の差分動きベクトルを生成し、左上、右上および左下の代表画素の差分動きベクトルを生成しない第１０モードと、
前記対象ブロックの４つの頂点のうち、左上、右上、左下および右下の代表画素の差分動きベクトルを生成しない第１１モードのうち、少なくとも２つの予測モードを備え、その少なくとも１つの予測モードには、前記第５モード、前記第６モード、前記第７モード、前記第８モード、前記第９モード、前記第１０モードおよび前記第１１モードの少なくとも１つが含まれる、
ことを特徴とする画像符号化装置。
【請求項２】
前記差分ベクトル生成部は、前記第１モード、第２モード、第４モード、第６モードまたは第８モードでは、四角形の前記対象ブロックにおける右上の頂点に相当する代表画素の予測動きベクトルを、上隣のブロックの右下の頂点に相当する代表画素の動きベクトルまたは上隣のブロックの動きベクトルの値と、前記対象ブロックの左上の頂点に相当する代表画素の動きベクトルの値とを適応的に選択し、その選択された動きベクトルの値をもとに算出し、その算出された予測動きベクトルと前記差分動きベクトルとを加算して前記対象ブロックにおける右上の頂点に相当する代表画素の動きベクトルを算出し、
前記第３モード、第５モード、第７モード、第９モード、第１０モードまたは第１１モードでは、四角形の前記対象ブロックにおける右上の頂点に相当する代表画素の予測動きベクトルを、前記上隣のブロックの右下の頂点に相当する代表画素の動きベクトルまたは前記上隣のブロックの動きベクトルの値と、前記対象ブロックの左上の頂点に相当する代表画素の動きベクトルの値とを適応的に選択し、その選択された動きベクトルの値を前記対象ブロックにおける右上の頂点に相当する代表画素の動きベクトルとする、
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記差分ベクトル生成部は、前記第１モード、第２モード、第３モード、第６モードまたは第９モードでは、四角形の前記対象ブロックにおける左下の頂点に相当する代表画素の予測動きベクトルを、左隣のブロックの右下の頂点に相当する代表画素の動きベクトルまたは左隣のブロックの動きベクトルの値と、前記対象ブロックの左上の頂点に相当する代表画素の動きベクトルの値とを適応的に選択し、その選択された動きベクトルの値をもとに算出し、その算出された予測動きベクトルと前記差分動きベクトルとを加算して前記対象ブロックにおける左下の頂点に相当する代表画素の動きベクトルを算出し、
前記第４モード、第５モード、第７モード、第８モード、第１０モードまたは第１１モードでは、四角形の前記対象ブロックにおける左下の頂点に相当する代表画素の予測動きベクトルを、前記左隣のブロックの右下の頂点に相当する代表画素の動きベクトルまたは前記左隣のブロックの動きベクトルの値と、前記対象ブロックの左上の頂点に相当する代表画素の動きベクトルの値とを適応的に選択し、その選択された動きベクトルの値を前記対象ブロックにおける左下の頂点に相当する代表画素の動きベクトルとする、
ことを特徴とする請求項１または２に記載の画像符号化装置。
【請求項４】
対象画像内の対象ブロックと、その対象ブロックと平行移動した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を生成するための平行移動動き補償予測部をさらに備え、
前記予測方法決定部は、対象画像内の対象ブロックごとに、前記平行移動動き補償予測部による予測方法と、前記幾何学変換動き補償予測部による予測方法とのいずれを採用するか決定すると共に、採用した予測方法における予測モードを選択し、
前記差分ベクトル生成部は、前記対象ブロックの動きベクトルの予測動きベクトルを、前記予測モード、および前記対象ブロックに隣接する隣接ブロックの動き補償予測方法に応じて、当該隣接ブロック、あるいは当該隣接ブロックに含まれる画素の動きベクトルから生成すると共に、前記予測方法決定部により前記平行移動動き補償予測部による予測方法が採用された場合には、前記予測方法決定部により選択された予測モードで算出された前記対象ブロックの動きベクトルと、前記対象ブロックの動きベクトルの予測動きベクトルとの差分を算出して差分動きベクトルを生成する、
ことを特徴とする請求項１から３のいずれかに記載の画像符号化装置。
【請求項５】
動画像を符号化する画像符号化方法であって、
対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を複数の予測モードごとに算出し、各予測モードにおいては、前記対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して前記予測信号を算出するための幾何学変換動き補償予測ステップと、
対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測ステップによる複数の予測モードのいずれかを選択するための予測方法決定ステップと、
前記予測方法決定ステップにより選択された予測モードで算出された予測信号と、前記対象ブロックの画像信号との差分を算出し、予測誤差信号を生成するための予測誤差信号生成ステップと、
前記予測方法決定ステップにより選択された予測モードで算出された代表画素の動きベクトルの予測動きベクトルを、前記対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと前記選択された予測モードで算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成するための差分ベクトル生成ステップと、
前記予測方法決定ステップにより選択された予測モードを特定するための予測方法情報、前記差分ベクトル生成ステップにより生成された差分動きベクトル、および前記予測誤差信号生成ステップにより生成された予測誤差信号を符号化するための符号化ステップと、を備え、
前記対象ブロックは四角形の領域であり、
前記幾何学変換動き補償予測ステップは、
前記対象ブロックの４つの頂点のうち、左上、右上、左下および右下の代表画素の差分動きベクトルを生成する第１モードと、
前記対象ブロックの４つの頂点のうち、左上、右上および左下の代表画素の差分動きベクトルを生成し、右下の代表画素の差分動きベクトルを生成しない第２モードと、
前記対象ブロックの４つの頂点のうち、左上および左下の代表画素の差分動きベクトルを生成し、右上および右下の代表画素の差分動きベクトルを生成しない第３モードと、
前記対象ブロックの４つの頂点のうち、左上および右上の代表画素の差分動きベクトルを生成し、左下および右下の代表画素の差分動きベクトルを生成しない第４モードと、
前記対象ブロックの４つの頂点のうち、左上および右下の代表画素の差分動きベクトルを生成し、右上および左下の代表画素の差分動きベクトルを生成しない第５モードと、
前記対象ブロックの４つの頂点のうち、右上および左下の代表画素の差分動きベクトルを生成し、左上および右下の代表画素の差分動きベクトルを生成しない第６モードと、
前記対象ブロックの４つの頂点のうち、左上の代表画素の差分動きベクトルを生成し、右上、左下および右下の代表画素の差分動きベクトルを生成しない第７モードと、
前記対象ブロックの４つの頂点のうち、右上の代表画素の差分動きベクトルを生成し、左上、左下および右下の代表画素の差分動きベクトルを生成しない第８モードと、
前記対象ブロックの４つの頂点のうち、左下の代表画素の差分動きベクトルを生成し、左上、右上および右下の代表画素の差分動きベクトルを生成しない第９モードと、
前記対象ブロックの４つの頂点のうち、右下の代表画素の差分動きベクトルを生成し、左上、右上および左下の代表画素の差分動きベクトルを生成しない第１０モードと、
前記対象ブロックの４つの頂点のうち、左上、右上、左下および右下の代表画素の差分動きベクトルを生成しない第１１モードのうち、少なくとも２つの予測モードを備え、その少なくとも１つの予測モードには、前記第５モード、前記第６モード、前記第７モード、前記第８モード、前記第９モード、前記第１０モードおよび前記第１１モードの少なくとも１つが含まれる、
ことを特徴とする画像符号化方法。
【請求項６】
動画像を符号化する画像符号化プログラムであって、
対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を複数の予測モードごとに算出し、各予測モードにおいては、前記対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して前記予測信号を算出するための幾何学変換動き補償予測処理と、
対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測処理による複数の予測モードのいずれかを選択するための予測方法決定処理と、
前記予測方法決定処理により選択された予測モードで算出された予測信号と、前記対象ブロックの画像信号との差分を算出し、予測誤差信号を生成するための予測誤差信号生成処理と、
前記予測方法決定処理により選択された予測モードで算出された代表画素の動きベクトルの予測動きベクトルを、前記対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと前記選択された予測モードで算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成するための差分ベクトル生成処理と、
前記予測方法決定処理により選択された予測モードを特定するための予測方法情報、前記差分ベクトル生成処理により生成された差分動きベクトル、および前記予測誤差信号生成処理により生成された予測誤差信号を符号化するための符号化処理と、をコンピュータに実行させ、
前記対象ブロックは四角形の領域であり、
前記幾何学変換動き補償予測処理は、
前記対象ブロックの４つの頂点のうち、左上、右上、左下および右下の代表画素の差分動きベクトルを生成する第１モードと、
前記対象ブロックの４つの頂点のうち、左上、右上および左下の代表画素の差分動きベクトルを生成し、右下の代表画素の差分動きベクトルを生成しない第２モードと、
前記対象ブロックの４つの頂点のうち、左上および左下の代表画素の差分動きベクトルを生成し、右上および右下の代表画素の差分動きベクトルを生成しない第３モードと、
前記対象ブロックの４つの頂点のうち、左上および右上の代表画素の差分動きベクトルを生成し、左下および右下の代表画素の差分動きベクトルを生成しない第４モードと、
前記対象ブロックの４つの頂点のうち、左上および右下の代表画素の差分動きベクトルを生成し、右上および左下の代表画素の差分動きベクトルを生成しない第５モードと、
前記対象ブロックの４つの頂点のうち、右上および左下の代表画素の差分動きベクトルを生成し、左上および右下の代表画素の差分動きベクトルを生成しない第６モードと、
前記対象ブロックの４つの頂点のうち、左上の代表画素の差分動きベクトルを生成し、右上、左下および右下の代表画素の差分動きベクトルを生成しない第７モードと、
前記対象ブロックの４つの頂点のうち、右上の代表画素の差分動きベクトルを生成し、左上、左下および右下の代表画素の差分動きベクトルを生成しない第８モードと、
前記対象ブロックの４つの頂点のうち、左下の代表画素の差分動きベクトルを生成し、左上、右上および右下の代表画素の差分動きベクトルを生成しない第９モードと、
前記対象ブロックの４つの頂点のうち、右下の代表画素の差分動きベクトルを生成し、左上、右上および左下の代表画素の差分動きベクトルを生成しない第１０モードと、
前記対象ブロックの４つの頂点のうち、左上、右上、左下および右下の代表画素の差分動きベクトルを生成しない第１１モードのうち、少なくとも２つの予測モードを備え、その少なくとも１つの予測モードには、前記第５モード、前記第６モード、前記第７モード、前記第８モード、前記第９モード、前記第１０モードおよび前記第１１モードの少なくとも１つが含まれる、
ことを特徴とする画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き補償予測を用いて画像を符号化する画像符号化装置、画像符号化方法および画像符号化プログラムに関する。
【背景技術】
【０００２】
動画像の圧縮符号化方式の代表的なものとして、ＭＰＥＧシリーズの規格がある。ＭＰＥＧシリーズの規格では、フレームを複数のブロックに分割し、他のフレームからの動きを予測する動き補償が用いられている。ＭＰＥＧ−４やＡＶＣ／Ｈ．２６４では、複数の動き補償ブロックサイズの中から、最適なものを切り替えて用いる仕組みが導入されている。
【０００３】
ブロック単位の動き補償予測では、対象ブロックと参照ブロックとの間の平行移動を補償する方式が一般的である。これに加えて、ブロックの変形（たとえば、拡大、縮小、回転）を補償する方式も検討されている。たとえば、特許文献１では、フレーム間の予測を用いた画像符号化方式として、平行移動によって予測画像を求めるモードと幾何学変換によって予測画像を求めるモードをブロックごとに適応的に切り替えて、予測効率の向上を図っている。この方式では、平行移動の動きベクトルと、格子点の動きベクトル（すなわち、幾何学変換で用いる動きベクトル）を符号化するとしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−６５６８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このような状況下、本発明者は、幾何学変換による動き補償予測を使用する画像符号化方式にて、動きベクトル情報を圧縮することにより、さらに全体の符号量を圧縮する手法を見出した。
【０００６】
本発明はこうした状況に鑑みなされたものであり、その目的は、幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させる技術を提供することにある。
【課題を解決するための手段】
【００１２】
本発明のある態様は、画像符号化装置である。この装置は、動画像を符号化する画像符号化装置であって、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を複数の予測モードごとに算出し、各予測モードにおいては、対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して予測信号を算出するための幾何学変換動き補償予測部と、対象画像内の対象ブロックごとに、幾何学変換動き補償予測部による複数の予測モードのいずれかを選択するための予測方法決定部と、予測方法決定部により選択された予測モードで算出された予測信号と、対象ブロックの画像信号との差分を算出し、予測誤差信号を生成するための予測誤差信号生成部と、予測方法決定部により選択された予測モードで算出された代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと選択された予測モードで算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成するための差分ベクトル生成部と、予測方法決定部により選択された予測モードを特定するための予測方法情報、差分ベクトル生成部により生成された差分動きベクトル、および予測誤差信号生成部により生成された予測誤差信号を符号化するための符号化部と、を備える。対象ブロックは四角形の領域であり、幾何学変換動き補償予測部は、対象ブロックの４つの頂点のうち、左上、右上、左下および右下の代表画素の差分動きベクトルを生成する第１モードと、対象ブロックの４つの頂点のうち、左上、右上および左下の代表画素の差分動きベクトルを生成し、右下の代表画素の差分動きベクトルを生成しない第２モードと、対象ブロックの４つの頂点のうち、左上および左下の代表画素の差分動きベクトルを生成し、右上および右下の代表画素の差分動きベクトルを生成しない第３モードと、対象ブロックの４つの頂点のうち、左上および右上の代表画素の差分動きベクトルを生成し、左下および右下の代表画素の差分動きベクトルを生成しない第４モードと、対象ブロックの４つの頂点のうち、左上および右下の代表画素の差分動きベクトルを生成し、右上および左下の代表画素の差分動きベクトルを生成しない第５モードと、対象ブロックの４つの頂点のうち、右上および左下の代表画素の差分動きベクトルを生成し、左上および右下の代表画素の差分動きベクトルを生成しない第６モードと、対象ブロックの４つの頂点のうち、左上の代表画素の差分動きベクトルを生成し、右上、左下および右下の代表画素の差分動きベクトルを生成しない第７モードと、対象ブロックの４つの頂点のうち、右上の代表画素の差分動きベクトルを生成し、左上、左下および右下の代表画素の差分動きベクトルを生成しない第８モードと、対象ブロックの４つの頂点のうち、左下の代表画素の差分動きベクトルを生成し、左上、右上および右下の代表画素の差分動きベクトルを生成しない第９モードと、対象ブロックの４つの頂点のうち、右下の代表画素の差分動きベクトルを生成し、左上、右上および左下の代表画素の差分動きベクトルを生成しない第１０モードと、対象ブロックの４つの頂点のうち、左上、右上、左下および右下の代表画素の差分動きベクトルを生成しない第１１モードのうち、少なくとも２つの予測モードを備え、その少なくとも１つの予測モードには、第５モード、第６モード、第７モード、第８モード、第９モード、第１０モードおよび第１１モードの少なくとも１つが含まれる。
【００１３】
差分ベクトル生成部は、第１モード、第２モード、第４モード、第６モードまたは第８モードでは、四角形の対象ブロックにおける右上の頂点に相当する代表画素の予測動きベクトルを、上隣のブロックの右下の頂点に相当する代表画素の動きベクトルまたは上隣のブロックの動きベクトルの値と、対象ブロックの左上の頂点に相当する代表画素の動きベクトルの値とを適応的に選択し、その選択された動きベクトルの値をもとに算出し、その算出された予測動きベクトルと差分動きベクトルとを加算して対象ブロックにおける右上の頂点に相当する代表画素の動きベクトルを算出し、第３モード、第５モード、第７モード、第９モード、第１０モードまたは第１１モードでは、四角形の対象ブロックにおける右上の頂点に相当する代表画素の予測動きベクトルを、上隣のブロックの右下の頂点に相当する代表画素の動きベクトルまたは上隣のブロックの動きベクトルの値と、対象ブロックの左上の頂点に相当する代表画素の動きベクトルの値とを適応的に選択し、その選択された動きベクトルの値を対象ブロックにおける右上の頂点に相当する代表画素の動きベクトルとしてもよい。
【００１４】
差分ベクトル生成部は、第１モード、第２モード、第３モード、第６モードまたは第９モードでは、四角形の対象ブロックにおける左下の頂点に相当する代表画素の予測動きベクトルを、左隣のブロックの右下の頂点に相当する代表画素の動きベクトルまたは左隣のブロックの動きベクトルの値と、対象ブロックの左上の頂点に相当する代表画素の動きベクトルの値とを適応的に選択し、その選択された動きベクトルの値をもとに算出し、その算出された予測動きベクトルと差分動きベクトルとを加算して対象ブロックにおける左下の頂点に相当する代表画素の動きベクトルを算出し、第４モード、第５モード、第７モード、第８モード、第１０モードまたは第１１モードでは、四角形の対象ブロックにおける左下の頂点に相当する代表画素の予測動きベクトルを、左隣のブロックの右下の頂点に相当する代表画素の動きベクトルまたは左隣のブロックの動きベクトルの値と、対象ブロックの左上の頂点に相当する代表画素の動きベクトルの値とを適応的に選択し、その選択された動きベクトルの値を対象ブロックにおける左下の頂点に相当する代表画素の動きベクトルとしてもよい。
【００１５】
対象画像内の対象ブロックと、その対象ブロックと平行移動した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を生成するための平行移動動き補償予測部をさらに備えてもよい。予測方法決定部は、対象画像内の対象ブロックごとに、平行移動動き補償予測部による予測方法と、幾何学変換動き補償予測部による予測方法とのいずれを採用するか決定すると共に、採用した予測方法における予測モードを選択し、差分ベクトル生成部は、対象ブロックの動きベクトルの予測動きベクトルを、予測モード、および対象ブロックに隣接する隣接ブロックの動き補償予測方法に応じて、当該隣接ブロック、あるいは当該隣接ブロックに含まれる画素の動きベクトルから生成すると共に、予測方法決定部により平行移動動き補償予測部による予測方法が採用された場合には、予測方法決定部により選択された予測モードで算出された対象ブロックの動きベクトルと、対象ブロックの動きベクトルの予測動きベクトルとの差分を算出して差分動きベクトルを生成してもよい。
【００１７】
本発明のさらに別の態様もまた、画像符号化方法である。この方法は、動画像を符号化する画像符号化方法であって、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を複数の予測モードごとに算出し、各予測モードにおいては、対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して予測信号を算出するための幾何学変換動き補償予測ステップと、対象画像内の対象ブロックごとに、幾何学変換動き補償予測ステップによる複数の予測モードのいずれかを選択するための予測方法決定ステップと、予測方法決定ステップにより選択された予測モードで算出された予測信号と、対象ブロックの画像信号との差分を算出し、予測誤差信号を生成するための予測誤差信号生成ステップと、予測方法決定ステップにより選択された予測モードで算出された代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと選択された予測モードで算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成するための差分ベクトル生成ステップと、予測方法決定ステップにより選択された予測モードを特定するための予測方法情報、差分ベクトル生成ステップにより生成された差分動きベクトル、および予測誤差信号生成ステップにより生成された予測誤差信号を符号化するための符号化ステップと、を備える。対象ブロックは四角形の領域であり、幾何学変換動き補償予測ステップは、対象ブロックの４つの頂点のうち、左上、右上、左下および右下の代表画素の差分動きベクトルを生成する第１モードと、対象ブロックの４つの頂点のうち、左上、右上および左下の代表画素の差分動きベクトルを生成し、右下の代表画素の差分動きベクトルを生成しない第２モードと、対象ブロックの４つの頂点のうち、左上および左下の代表画素の差分動きベクトルを生成し、右上および右下の代表画素の差分動きベクトルを生成しない第３モードと、対象ブロックの４つの頂点のうち、左上および右上の代表画素の差分動きベクトルを生成し、左下および右下の代表画素の差分動きベクトルを生成しない第４モードと、対象ブロックの４つの頂点のうち、左上および右下の代表画素の差分動きベクトルを生成し、右上および左下の代表画素の差分動きベクトルを生成しない第５モードと、対象ブロックの４つの頂点のうち、右上および左下の代表画素の差分動きベクトルを生成し、左上および右下の代表画素の差分動きベクトルを生成しない第６モードと、対象ブロックの４つの頂点のうち、左上の代表画素の差分動きベクトルを生成し、右上、左下および右下の代表画素の差分動きベクトルを生成しない第７モードと、対象ブロックの４つの頂点のうち、右上の代表画素の差分動きベクトルを生成し、左上、左下および右下の代表画素の差分動きベクトルを生成しない第８モードと、対象ブロックの４つの頂点のうち、左下の代表画素の差分動きベクトルを生成し、左上、右上および右下の代表画素の差分動きベクトルを生成しない第９モードと、対象ブロックの４つの頂点のうち、右下の代表画素の差分動きベクトルを生成し、左上、右上および左下の代表画素の差分動きベクトルを生成しない第１０モードと、対象ブロックの４つの頂点のうち、左上、右上、左下および右下の代表画素の差分動きベクトルを生成しない第１１モードのうち、少なくとも２つの予測モードを備え、その少なくとも１つの予測モードには、第５モード、第６モード、第７モード、第８モード、第９モード、第１０モードおよび第１１モードの少なくとも１つが含まれる。
【００１８】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１９】
幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態１に係る画像符号化装置の構成を示すブロック図である。
【図２】図２（ａ）〜（ｈ）は、マクロブロック・パーティションおよびサブマクロブロック・パーティションを説明するための図である。
【図３】対象ブロックの４つの頂点に対応する代表画素を説明するための図である。
【図４】図４（ａ）〜（ｋ）は、幾何学変換動き補償予測の１１モードを説明するための図である。
【図５】本発明の実施の形態１に係る幾何学変換動き補償予測部の構成を示すブロック図である。
【図６】シンタックス構造の一例を示す図である。
【図７】図７（ａ）〜（ｄ）は、符号化対象ブロックおよび隣接ブロック共に平行移動による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法を説明するための図である。
【図８】動きベクトル値のスケーリング処理の一例を説明するための図である。
【図９】本発明の実施の形態１に係る幾何学変換動きベクトル検出部の構成を示すブロック図である。
【図１０】図１０（ａ）〜（ｈ）は、平行移動動き補償予測部により生成された平行移動の動きベクトルを補正して幾何学変換の代表画素の動きベクトルを検出する方法の具体例を示す図である。
【図１１】本発明の実施の形態１に係る画像符号化装置における、マクロブロックの符号化処理手順を示すフローチャートである。
【図１２】図１１のフローチャートのステップＳ１０２の平行移動動き補償処理の手順を示すフローチャートである。
【図１３】図１１のフローチャートのステップＳ１０３の幾何学変換動き補償処理の手順を示すフローチャートである。
【図１４】平行移動の動きベクトルを検出する手順を示すフローチャートである。
【図１５】幾何学変換の動きベクトルを検出する手順を示すフローチャートである。
【図１６】図１５のフローチャートのステップＳ１３６の幾何学変換動き補償処理の手順を示すフローチャートである。
【図１７】本発明の実施の形態２に係る画像復号装置の構成を示すブロック図である。
【図１８】本発明の実施の形態２に係る画像復号装置における、マクロブロックの復号処理手順を示すフローチャートである。
【図１９】図１８のフローチャートのＳ２０３において、対象ブロックの第１代表画素ａの動きベクトルの値に応じて、第２代表画素ｂの予測ベクトルの算出方法を切り替える処理が発生する場合の手順を示すフローチャートである。
【図２０】図１８のフローチャートのＳ２０３において、対象ブロックの第１代表画素ａの動きベクトルの値に応じて、第３代表画素ｃの予測ベクトルの算出方法を切り替える処理が発生する場合の手順を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、図面と共に本発明の実施の形態を説明する。以下の実施の形態では、ＡＶＣ／Ｈ．２６４符号化方式をベースとして符号化／復号する例を説明する。
【００２２】
図１は、本発明の実施の形態１に係る画像符号化装置１００の構成を示すブロック図である。画像符号化装置１００は、画像バッファ１０１、平行移動動き補償予測部１０２、幾何学変換動き補償予測部１０３、予測方法決定部１０４、予測誤差信号生成部１０５、予測誤差信号符号化部１０６、第１符号化ビット列生成部１０７、第２符号化ビット列生成部１０８、第３符号化ビット列生成部１０９、予測誤差信号復号部１１０、復号画像信号生成部１１１、復号画像バッファ１１２および出力スイッチ１１３を含む。
【００２３】
これらの構成は、ハードウェア的には、任意のプロセッサ、メモリ、その他のＬＳＩで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２４】
画像バッファ１０１は、撮影／表示時間順に供給された符号化対象の画像信号を一時格納する。画像バッファ１０１は、格納された符号化対象の画像信号を、所定の画素ブロック単位（ここでは、マクロブロック単位）で、平行移動動き補償予測部１０２、幾何学変換動き補償予測部１０３および予測誤差信号生成部１０５に並列に供給する。その際、撮影／表示時間順に供給された画像は、符号化順序に並び替えられて画像バッファ１０１から出力される。
【００２５】
ＭＰＥＧシリーズでは、マクロブロックとは１６×１６画素の輝度信号と、それに対応する２つの色差信号のブロックを指す。色差フォーマットのＹＵＶが４：２：０の場合、色差信号は８×８画素のサイズである。
【００２６】
本実施の形態では、参照画像を用いずに画面内で符号化するイントラ符号化方式、参照画像を用いた平行移動による動き補償予測方式、および参照画像を用いた幾何学変換による動き補償予測方式を用いる。ここで、参照画像は局部復号された復号画像である。なお、本実施の形態ではイントラ符号化方式には注目しないため、図１ではその構成を省略して描いている。これらの符号化方式のモードは、マクロブロック単位で単独あるいは組み合わせて適応的に切り替えられる。なお、すべてのマクロブロックを、参照画像を用いた幾何学変換による動き補償予測方式を用いて符号化する方式も可能である。
【００２７】
平行移動動き補償予測部１０２は、画像バッファ１０１から供給される符号化対象のマクロブロック信号と、復号画像バッファ１１２から供給される参照画像信号との間で、平行移動による動き補償予測を行う。平行移動動き補償予測部１０２は、それぞれのモードによる対象画像内の対象ブロックと、その対象ブロックと平行移動した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を生成し、予測方法決定部１０４に供給する。本実施の形態では、平行移動動き補償予測部１０２は、ＡＶＣ／Ｈ.２６４方式などに規定されている既存の動き補償予測と同様の、平行移動による動き補償予測を行う。
【００２８】
動き補償予測は、後述する復号画像バッファ１１２から供給される表示順序で前方または後方の復号画像を参照画像とする。平行移動動き補償予測部１０２は、参照画像内の所定の検出範囲内で、画像バッファ１０１から供給されるマクロブロック信号と、復号画像バッファ１１２から供給される参照画像信号との間でブロックマッチングを行う。平行移動動き補償予測部１０２は、ブロックマッチングにより、当該マクロブロック信号と最も誤差が小さい、参照画像信号内の参照ブロック信号を特定し、当該マクロブロック信号と当該参照ブロック信号との間の動きベクトルを検出する。
【００２９】
このブロックマッチングを、規定された複数のモードで行う。複数のモードはそれぞれ、参照インデックス、動き補償ブロックのサイズ、Ｌ０／Ｌ１予測などが異なる。参照インデックスとは参照ピクチャを示すインデックスである。なお、Ｌ０／Ｌ１予測はＢスライスでのみ選択可能である。ブロックサイズの具体例は後述する。
【００３０】
また、動き補償予測を行う際、１画素未満の画素精度で動き補償することができる。たとえば、ＡＶＣ／Ｈ.２６４方式などでは、輝度信号は１画素の１／４の精度まで、色差信号は１画素の１／８の精度までの動き補償を行うことができる。１画素未満の画素精度で動き補償する場合、１画素未満の画素精度の信号を参照画像内の周囲の整数画素の信号から補間により生成する。
【００３１】
平行移動動き補償予測部１０２は、それぞれのモードにて動き補償予測を行い、それぞれのモードにおける予測信号（より具体的には、動き補償予測ブロック信号）および動きベクトルを、予測方法決定部１０４に供給する。
【００３２】
つぎに、ＡＶＣ／Ｈ．２６４方式における動き補償ブロックサイズについて説明する。図２（ａ）〜（ｈ）は、マクロブロック・パーティションおよびサブマクロブロック・パーティションを説明するための図である。ここでは説明を簡略化するため、輝度信号の画素ブロックのみ描いている。ＭＰＥＧシリーズでは、マクロブロックは正方形領域で規定される。一般的にＡＶＣ／Ｈ．２６４方式を含むＭＰＥＧシリーズでは、１６×１６画素（水平１６画素、垂直１６画素）で規定されるブロックをマクロブロックという。さらに、ＡＶＣ／Ｈ．２６４方式では、８×８画素で規定されるブロックをサブマクロブロックという。マクロブロック・パーティションとは、マクロブロックを動き補償予測のために、さらに分割したそれぞれの小ブロックをいう。サブマクロブロック・パーティションとは、サブマクロブロックを動き補償予測のために、さらに分割したそれぞれの小ブロックをいう。
【００３３】
図２（ａ）は、マクロブロックが１６×１６画素の輝度信号とそれに対応する２つの色差信号から構成される１つのマクロブロック・パーティションで構成されていることを示す図である。ここでは、この構成を１６×１６モードのマクロブロック・タイプと呼ぶ。
【００３４】
図２（ｂ）は、マクロブロックが１６×８画素（水平１６画素、垂直８画素）の輝度信号とそれに対応する２つの色差信号から構成される２つのマクロブロック・パーティションで構成されていることを示す図である。この２つのマクロブロック・パーティションは縦に並べられている。ここでは、この構成を１６×８モードのマクロブロック・タイプと呼ぶ。
【００３５】
図２（ｃ）は、マクロブロックが８×１６画素（水平８画素、垂直１６画素）の輝度信号とそれに対応する２つの色差信号から構成される２つのマクロブロック・パーティションで構成されていることを示す図である。この２つのマクロブロック・パーティションは横に並べられている。ここでは、この構成を８×１６モードのマクロブロック・タイプと呼ぶ。
【００３６】
図２（ｄ）は、マクロブロックが８×８画素の輝度信号とそれに対応する２つの色差信号から構成される４つのマクロブロック・パーティションで構成されていることを示す図である。この４つのマクロブロック・パーティションは縦横２つずつ並べられている。この構成を８×８モードのマクロブロック・タイプと呼ぶ。
【００３７】
図２（ｅ）は、サブマクロブロックが８×８画素の輝度信号とそれに対応する２つの色差信号から構成される１つのサブマクロブロック・パーティションで構成されていることを示す図である。ここでは、この構成を８×８モードのサブマクロブロック・タイプと呼ぶ。
【００３８】
図２（ｆ）は、サブマクロブロックが８×４画素（水平８画素、垂直４画素）の輝度信号とそれに対応する２つの色差信号から構成される２つのサブマクロブロック・パーティションで構成されていることを示す図である。この２つのサブマクロブロック・パーティションは縦に並べられている。この構成を８×４モードのサブマクロブロック・タイプと呼ぶ。
【００３９】
図２（ｇ）は、サブマクロブロックが４×８画素（水平４画素、垂直８画素）の輝度信号とそれに対応する２つの色差信号から構成される２つのマクロブロック・パーティションで構成されていることを示す図である。この２つのマクロブロック・パーティションは横に並べられている。ここでは、この構成を４×８モードのサブマクロブロック・タイプと呼ぶ。
【００４０】
図２（ｈ）は、サブマクロブロックが４×４画素の輝度信号とそれに対応する２つの色差信号から構成される４つのサブマクロブロック・パーティションで構成されていることを示す図である。この４つのサブマクロブロック・パーティションは縦横２つずつ並べられている。ここでは、この構成を４×４モードのサブマクロブロック・タイプと呼ぶ。
【００４１】
ＡＶＣ／Ｈ．２６４符号化方式では、以上の動き補償ブロックサイズの中から、最適なものを切り替えて用いる仕組みが取り入れられている。まず、マクロブロック単位の動き補償ブロックサイズとして、１６×１６、１６×８、８×１６および８×８モードのマクロブロック・タイプの中からいずれかが選択される。８×８モードのマクロブロック・タイプが選択された場合、サブマクロブロック単位の動き補償ブロックサイズとして、８×８、８×４、４×８、４×４モードのサブマクロブロック・タイプの中からいずれかが選択される。
【００４２】
輝度信号は、選択されたサイズの画素数で動き補償される。色差信号は、色差フォーマットが４：２：０の場合、水平、垂直ともにその半分の画素数で動き補償される。このように、動き補償ブロックサイズの情報は、マクロブロック・タイプおよびサブマクロブロック・タイプと呼ばれるシンタックス要素で符号化される。シンタックスとは符号化ビット列の表現規則であり、シンタックス要素とは、シンタックスで伝送することが規定されている情報である。
【００４３】
１６×１６、１６×８、８×１６および８×８モードのいずれのマクロブロック・タイプでも、マクロブロック・パーティションごとに１つの動きベクトルが検出される。すなわち、１６×１６モードのマクロブロック・タイプでは１つの動きベクトルが、１６×８および８×１６モードのマクロブロック・タイプでは２つの動きベクトルが、および８×８モードのマクロブロック・タイプでは４つの動きベクトルが、それぞれ検出される。
【００４４】
各マクロブロック・パーティションの輝度信号および色差信号の各画素は、そのマクロブロック・パーティションの１つの動きベクトルに応じて、動き補償される。すなわち、当該各画素は、同じ動きベクトルを用いて動き補償される。
【００４５】
図１に戻り、幾何学変換動き補償予測部１０３は、画像バッファ１０１から供給される符号化対象のマクロブロック信号と、復号画像バッファ１１２から供給される参照画像信号との間で、平行移動に加えて、拡大・縮小／回転などを含む変形を伴う幾何学変換による動き補償予測を行う。幾何学変換動き補償予測部１０３は、それぞれのモードによる対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を生成し、予測方法決定部１０４に供給する。より具体的には、幾何学変換動き補償予測部１０３は、対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素を代表画素として選定し、それら代表画素の動きベクトルを算出する。ここで、当該対象ブロックは四角形（たとえば、正方形、長方形）の領域であるため、その領域の頂点は４つである。したがって、４つの代表画素が存在する。そして、幾何学変換動き補償予測部１０３は、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出する。それらの画素毎の動きベクトルに応じて、画素毎に予測信号を生成する。
【００４６】
図３は、対象ブロックの４つの頂点に対応する代表画素を説明するための図である。ここで、対象ブロックの左上の頂点または頂点近傍を頂点ａ、右上の頂点または頂点近傍を頂点ｂ、左下の頂点または頂点近傍を頂点ｃおよび右下の頂点または頂点近傍を頂点ｄとする。また、ブロックの幅（水平方向の画素数）Ｗ、ブロックの高さ（垂直方向の画素数）Ｈの値は共に１６とする。図３に示す例では、左上の頂点ａに位置する画素ａ、ならびに右上、左下および右下の頂点近傍にそれぞれ位置する画素ｂ、ｃ、ｄをそれぞれ代表画素ａ、ｂ、ｃ、ｄに設定している。図３では、代表画素を黒丸、非代表画素を白丸で表し、代表画素を対象ブロック（図３では、１６×１６画素のマクロブロック）の頂点に存在する画素ａ（０，０）、画素ｂ（Ｗ，０）、画素ｃ（０，Ｈ）および画素ｄ（Ｗ，Ｈ）に設定している。以下、本明細書では各画素の座標を（ｉ，ｊ）で表し、水平方向の座標を１画素単位でｉで表し、垂直方向の座標を１画素単位でｊで表す。また、対象ブロックの左上の画素の座標を原点（０，０）とする。なお、図３に示す例では、左上の第１代表画素ａは対象ブロックに含まれるが、右上の第２代表画素ｂ、左下の第３代表画素ｃおよび右下の第４代表画素ｄは対象ブロック内に含まれない。
【００４７】
幾何学変換動き補償予測部１０３は、対象ブロックの４つの代表画素の差分ベクトルを符号化・復号するＤＭＶ４モードと、対象ブロックの３つの代表画素の差分ベクトルを符号化・復号するＤＭＶ３モードと、対象ブロックの縦方向における２つの代表画素の差分ベクトルを符号化・復号するＤＭＶ２Ｖモードと、対象ブロックの横方向における２つの代表画素の差分ベクトルを符号化・復号するＤＭＶ２Ｈモードと、対象ブロックの対角方向における２つの代表画素の差分ベクトルを符号化・復号するＤＭＶ２ＡモードおよびＤＭＶ２Ｂモードと、対象ブロックの左上の代表画素の差分ベクトルだけを符号化・復号するＤＭＶ１Ａモードと、対象ブロックの右上の代表画素の差分ベクトルだけを符号化・復号するＤＭＶ１Ｂモードと、対象ブロックの左下の代表画素の差分ベクトルだけを符号化・復号するＤＭＶ１Ｃモードと、対象ブロックの右下の代表画素の差分ベクトルだけを符号化・復号するＤＭＶ１Ｄモードと、対象ブロックの代表画素の差分ベクトルを符号化・復号しないＤＭＶ０モードと、を実行することができる。
【００４８】
なお、幾何学変換動き補償予測部１０３は、必ずしも全てのモードを実行する必要はなく、処理能力や各モードの発生頻度に応じて、１つのモードを固定的に使用してもよい。また、１つのモードのみを備える設計であってもよい。また、１１モードのうち、少なくとも２つのモードを実行してもよい。その少なくとも２つのモードには、ＤＭＶ２Ａモード、ＤＭＶ２Ｂモード、ＤＭＶ１Ａモード、ＤＭＶ１Ｂモード、ＤＭＶ１Ｃモード、ＤＭＶ１ＤモードおよびＤＭＶ０モードの少なくとも２つのモードが含まれていてもよい。また、幾何学変換動き補償予測部１０３が備えるモード数と実行するモード数は異なっていてもよい。たとえば、少なくとも２つのモードを備え、そのうちの少なくとも２つのモードを実行してもよい。これらの場合、演算量やモードを識別する情報の符号量を低減することができる。
【００４９】
本実施の形態の説明においては、上記対象ブロックを１６×１６画素のマクロブロックとして説明するが、当該対象ブロックのサイズは１６×１６画素に限定されるものではなく、８×８画素のサブマクロブロックであってもよいし、３２×３２画素、４８×４８画素、６４×６４画素、１２８×１２８画素等のブロックであってもよい。また、本実施の形態の説明においては、上記対象ブロックが正方形のマクロブロックとして説明するが、当該対象ブロックの形状は正方形に限定されるものではなく、１６×８画素、８×１６画素のマクロブロック・パーティション、８×４画素、４×８画素のサブマクロブロック・パーティション、３２×１６画素、１６×３２画素等のブロックであってもよい。
【００５０】
図４（ａ）〜（ｋ）は、幾何学変換動き補償予測の１１モードを説明するための図である。黒丸および白丸は代表点を示す。図４（ａ）〜（ｋ）では代表点と代表画素が一致する例を描いている。黒丸で描かれた代表点は差分ベクトルを符号化・復号し、この代表点の動きベクトルは予測ベクトルと差分ベクトルの和であることを示す。白丸で描かれた代表点は差分ベクトルを符号化・復号せず、予測ベクトルをそのまま動きベクトルとする。
【００５１】
図４（ａ）に示すＤＭＶ４モードは代表画素ａ、ｂ、ｃ、ｄの差分ベクトルを符号化するモードである（特許請求の範囲の第１モードに対応）。図４（ｂ）に示すＤＭＶ３モードは代表画素ｄの差分ベクトルを符号化せず、代表画素ａ、ｂ、ｃの差分ベクトルを符号化するモードである（特許請求の範囲の第２モードに対応）。図４（ｃ）に示すＤＭＶ２Ｖモードは代表画素ｂ、ｄの差分ベクトルを符号化せず、代表画素ａ、ｃの差分ベクトルを符号化するモードである（特許請求の範囲の第３モードに対応）。代表画素ａと代表画素ｂの動きベクトルの値が等しく、代表画素ｃと代表画素ｄの動きベクトルの値も等しい。図４（ｄ）に示すＤＭＶ２Ｈモードは代表画素ｃ、ｄの差分ベクトルを符号化せず、代表画素ａ、ｂの差分ベクトルを符号化するモードである（特許請求の範囲の第４モードに対応）。代表画素ａと代表画素ｃの動きベクトルの値が等しく、代表画素ｂと代表画素ｄの動きベクトルの値も等しい。
【００５２】
図４（ｅ）に示すＤＭＶ２Ａモードは代表画素ｂ、ｃの差分ベクトルを符号化せず、代表画素ａ、ｄの差分ベクトルを符号化するモードである（特許請求の範囲の第５モードに対応）。代表画素ａと代表画素ｄの動きベクトルの各成分ごとの平均値を代表画素ｂ、ｃの動きベクトルの値とする。図４（ｆ）に示すＤＭＶ２Ｂモードは代表画素ａ、ｄの差分ベクトルを符号化せず、代表画素ｂ、ｃの差分ベクトルを符号化するモードである（特許請求の範囲の第６モードに対応）。代表画素ｂと代表画素ｃの動きベクトルの各成分ごとの平均値を代表画素ａ、ｄの動きベクトルの値とする。
【００５３】
図４（ｇ）に示すＤＭＶ１Ａモードは代表画素ｂ、ｃ、ｄの差分ベクトルを符号化せず、代表画素ａの差分ベクトルを符号化するモードである（特許請求の範囲の第７モードに対応）。図４（ｈ）に示すＤＭＶ１Ｂモードは代表画素ａ、ｃ、ｄの差分ベクトルを符号化せず、代表画素ｂの差分ベクトルを符号化するモードである（特許請求の範囲の第８モードに対応）。図４（ｉ）に示すＤＭＶ１Ｃモードは代表画素ａ、ｂ、ｄの差分ベクトルを符号化せず、代表画素ｃの差分ベクトルを符号化するモードである（特許請求の範囲の第９モードに対応）。図４（ｊ）に示すＤＭＶ１Ｄモードは代表画素ａ、ｂ、ｃの差分ベクトルを符号化せず、代表画素ｄの差分ベクトルを符号化するモードである（特許請求の範囲の第１０モードに対応）。図４（ｋ）に示すＤＭＶ０モードは代表画素ａ、ｂ、ｃ、ｄの差分ベクトルを符号化しないモードである（特許請求の範囲の第１１モードに対応）。
【００５４】
下記表１は上記各モードについてまとめたものである。
【表１】
0005716437.tif 000002
【００５５】
上記表１において、「ＤＭＶ符号化」とは差分ベクトルを符号化することを表す。この場合、動きベクトルＭＶは予測ベクトルＰＭＶと差分ベクトルＤＭＶの和で定義される。「ＰＭＶ」とは差分ベクトルＤＭＶを符号化せず、予測ベクトルＰＭＶをそのまま動きベクトルＭＶとすることを表す。近隣ブロックの動きベクトルＭＶまたは対象ブロックの別の動きベクトルＭＶから算出した動きベクトルＭＶを予測ベクトルＰＭＶとする。その他（「ＤＭＶ符号化」、「ＰＭＶ」以外）については差分ベクトルＤＭＶを符号化せず、表１の式に応じて他の頂点の動きベクトルＭＶから算出する。動きベクトルを符号化する際、４本の差分ベクトルをすべて符号化すると動きベクトルの符号量が大きくなる。したがって、４本の動きベクトルをすべて符号化する必要がないと判断できる場合、符号化する差分ベクトルの本数を減らす。すなわち、ＤＭＶ４モード以外のモードを採用する。
【００５６】
ここで、動きベクトルの符号化においては、周囲ブロックまたは対象ブロックからの予測を行うことにより予測ベクトルを取得し、動きベクトルと予測ベクトルとの差分である差分ベクトルを符号化することによって符号量を削減する。動きベクトルを符号化・復号するということは具体的には差分ベクトルを符号化・復号するということであり、動きベクトルＭＶは予測ベクトルＰＭＶと差分ベクトルＤＭＶを各成分ごとに加算したものとなる。動きベクトルを符号化・復号しないということは具体的には差分ベクトルを符号化・復号せず、周囲のブロックまたは対象ブロックから算出した予測ベクトルをそのまま動きベクトルとして用いるということである。
【００５７】
図１に戻り、予測方法決定部１０４は、幾何学変換動き補償予測部１０３による予測方法として、上述したＤＭＶ４モード、ＤＭＶ３モード、ＤＭＶ２Ｖモード、ＤＭＶ２Ｈモード、ＤＭＶ２Ａモード、ＤＭＶ２Ｂモード、ＤＭＶ１Ａモード、ＤＭＶ１Ｂモード、ＤＭＶ１Ｃモード、ＤＭＶ１ＤモードおよびＤＭＶ０モードのいずれかを採用することができる。予測方法決定部１０４の詳細な処理については後述する。
【００５８】
以下、幾何学変換動き補償予測部１０３について、より具体的に説明する。図５は、本発明の実施の形態１に係る幾何学変換動き補償予測部１０３の構成を示すブロック図である。幾何学変換動き補償予測部１０３は、幾何学変換動きベクトル検出部１２１、第１の非代表点動きベクトル算出部１２２および第１の予測部１２３を含む。
【００５９】
本実施の形態に係る幾何学変換による動き補償予測では、マクロブロック、マクロブロック・パーティション、サブマクロブロックの輝度信号、色差信号の各画素をそれぞれ同じ動きベクトルで動き補償するのではなく、画素ごとに異なる動きベクトルを作成して動き補償を行う。幾何学変換動きベクトル検出部１２１は、各マクロブロックの頂点、頂点近傍の画素またはその頂点近傍に位置する補間画素を代表画素に選定し、その動きベクトルを求める。
【００６０】
幾何学変換動きベクトル検出部１２１は、上記図４（ａ）〜（ｋ）に示した幾何学変換動き補償予測のそれぞれのモードについて、代表画素の動きベクトルを検出、または算出する。幾何学変換動きベクトル検出部１２１での代表画素の動きベクトルの検出処理は、具体的には、それぞれのモードにおける差分ベクトルを符号化・復号する代表点の動きベクトルを検出し、差分ベクトルを符号化・復号する代表点の動きベクトルの値は、予測ベクトルを算出して、その予測ベクトルをそのまま動きベクトルとする。たとえば、第１代表画素ａ、第２代表画素ｂ、第３代表画素ｃおよび第４代表画素ｄの４つの代表画素の差分ベクトルを符号化・復号するＤＭＶ４モードの場合、当該４つの代表画素のそれぞれの動きベクトルを検出する。また、第１代表画素ａ、第２代表画素ｂおよび第３代表画素ｃの３つの代表画素の差分ベクトルを符号化・復号するＤＭＶ３モードの場合、当該３つの代表画素のそれぞれの動きベクトルを検出し、第４代表画素ｄの動きベクトルは予測ベクトルを算出して、その予測ベクトルを動きベクトルとする。ここで、予測ベクトルの算出方法について、上記図３に示した対象ブロックの４つの頂点に対応する代表画素の場合を例に説明する。
【００６１】
３つの頂点ａ、ｂ、ｃに対応する３つの代表画素ａ、ｂ、ｃの動きベクトルを符号化・復号するＤＭＶ３モードでは、これら画素ａ、画素ｂおよび画素ｃの動きベクトルが割り当てられ、これら３点の動きベクトルから、頂点ｄに対応する代表画素ｄの予測ベクトルを算出し、算出された予測ベクトルを代表画素ｄの動きベクトルとする。画素ａの動きベクトルＶａ（＝Ｖ（０，０））と、画素ｂの動きベクトルＶｂ（＝Ｖ（Ｗ，０））と、画素ｃの動きベクトルＶｃ＝（Ｖ（０，Ｈ））と、画素ｄの動きベクトルＶｄ＝（Ｖ（Ｗ，Ｈ））との関係から、頂点ｄに対応する代表画素ｄの動きベクトルＶｄを、下記式（１）により算出する。
Ｖｄ＝Ｖｃ＋（Ｖｂ−Ｖａ）  ・・・式（１）
あるいは、下記式（２）により算出する。
Ｖｄ＝Ｖｂ＋（Ｖｃ−Ｖａ）  ・・・式（２）
【００６２】
また、第１代表画素ａおよび第３代表画素ｃの縦方向の２つの代表画素の差分ベクトルを符号化・復号するＤＭＶ２Ｖモードの場合、当該２つの代表画素のそれぞれの動きベクトルを検出し、第２代表画素ｂおよび第４代表画素ｄの動きベクトルは予測ベクトルを算出して動きベクトルとする。ここで、第１代表画素ａの動きベクトルを第２代表画素ｂの予測ベクトルとして動きベクトルとし（Ｖｂ＝Ｖａ）、第３代表画素ｃの動きベクトルを第４代表画素ｄの予測ベクトル、すなわち動きベクトルとする（Ｖｄ＝Ｖｃ）。
【００６３】
また、第１代表画素ａおよび第２代表画素ｂの横方向の２つの代表画素の差分ベクトルを符号化・復号するＤＭＶ２Ｈモードの場合、当該２つの代表画素のそれぞれの動きベクトルを検出し、第３代表画素ｃおよび第４代表画素ｄの動きベクトルは予測ベクトルを算出して動きベクトルとする。ここで、第１代表画素ａの動きベクトルを第３代表画素ｃの予測ベクトルとして動きベクトルとし（Ｖｃ＝Ｖａ）、第２代表画素ｂの動きベクトルを第４代表画素ｄの予測ベクトル、すなわち動きベクトルとする（Ｖｄ＝Ｖｂ）。
【００６４】
また、第１代表画素ａおよび第４代表画素ｄの斜め方向の２つの代表画素の差分ベクトルを符号化・復号するＤＭＶ２Ａモードの場合、当該２つの代表画素のそれぞれの動きベクトルを検出し、第２代表画素ｂおよび第３代表画素ｃの動きベクトルは予測ベクトルを算出して動きベクトルとする。ここで、第１代表画素ａの動きベクトルと第４代表画素ｄの動きベクトルの成分ごとの平均値を第２代表画素ｂおよび第３代表画素ｃの予測ベクトル、すなわち動きベクトルとする。
Ｖｂ＝Ｖｃ＝（Ｖａ＋Ｖｄ）／２  ・・・式（３）
【００６５】
また、第２代表画素ｂおよび第３代表画素ｃの斜め方向の２つの代表画素の差分ベクトルを符号化・復号するＤＭＶ２Ｂモードの場合、当該２つの代表画素のそれぞれの動きベクトルを検出し、第１代表画素ａおよび第４代表画素ｄの動きベクトルは予測ベクトルを算出して動きベクトルとする。ここで、第２代表画素ｂの動きベクトルと第３代表画素ｃの動きベクトルの成分ごとの平均値を第１代表画素ａおよび第４代表画素ｄの差分ベクトル、すなわち動きベクトルとする。
Ｖａ＝Ｖｄ＝（Ｖｂ＋Ｖｃ）／２  ・・・式（４）
【００６６】
また、第１代表画素ａの差分ベクトルだけを符号化・復号するＤＭＶ１Ａモードの場合、当該代表画素の動きベクトルを検出し、第２代表画素ｂ、第３代表画素ｃおよび第４代表画素ｄの動きベクトルの動きベクトルは予測ベクトルを算出して動きベクトルとする。また、第２代表画素ｂの差分ベクトルだけを符号化・復号するＤＭＶ１Ｂモードの場合、当該代表画素の動きベクトルを検出し、第１代表画素ａ、第３代表画素ｃおよび第４代表画素ｄの動きベクトルの動きベクトルは予測ベクトルを算出して動きベクトルとする。また、第３代表画素ｃの差分ベクトルだけを符号化・復号するＤＭＶ１Ｃモードの場合、当該代表画素の動きベクトルを検出し、第１代表画素ａ、第２代表画素ｂおよび第４代表画素ｄの動きベクトルの動きベクトルは予測ベクトルを算出して動きベクトルとする。また、第４代表画素ｄの差分ベクトルだけを符号化・復号するＤＭＶ１Ｄモードの場合、当該代表画素の動きベクトルを検出し、第１代表画素ａ、第２代表画素ｂおよび第３代表画素ｃの動きベクトルの動きベクトルは予測ベクトルを算出して動きベクトルとする。なお、どの代表画素の差分ベクトルも符号化・復号しないＤＭＶ０モードの場合、すべての代表画素の動きベクトルは予測ベクトルを算出して動きベクトルとする。なお、これらの予測ベクトルの算出方法については後述する。
【００６７】
幾何学変換動きベクトル検出部１２１は、各マクロブロックの代表画素の動きベクトルとして、オプティカルフロー法等により画素単位で算出した動きベクトルを用いてもよいし、画像のエッジやコーナー等の信頼性の高いと判断される特徴点の動きベクトルを内挿／外挿演算により補正した動きベクトルを用いてもよい。また、平行移動動き補償予測部１０２により生成された、マクロブロックやマクロブロック・パーティションの動きベクトルを補正して用いてもよい。なお、マクロブロックやマクロブロック・パーティションの動きベクトルを補正して用いる場合、その動きベクトルの値を当該代表画素にあてはめて、その動きベクトルの値を増加方向および減少方向に調整しながら検証することにより、動きベクトルの値を補正する。
【００６８】
つぎに、第１の非代表点動きベクトル算出部１２２は、幾何学変換動きベクトル検出部１２１から供給される代表画素の動きベクトルからマクロブロック内の全画素の動きベクトルを、線形補間等の補間を用いることにより算出する。
【００６９】
以下、第１の非代表点動きベクトル算出部１２２による、幾何学変換動き補償予測における代表画素以外の各画素の動きベクトルの算出方法について具体例を挙げながら説明する。
【００７０】
幾何学変換動きベクトル検出部１２１で検出あるいは算出し、供給される４つの代表画素ａ、ｂ、ｃ、ｄの４つの動きベクトルＶａ、Ｖｂ、Ｖｃ、Ｖｄからそれ以外の画素Ｐ（ｉ，ｊ）の動きベクトルＶ（ｉ，ｊ）を線形補間により生成する。ブロックのブロックの幅（水平方向の画素数）をＷ、ブロックの高さ（垂直方向の画素数）をＨとしたとき（上記図３の例ではＷ＝Ｈ＝１６）、代表画素ａ、ｂ、ｃ、ｄ以外の画素Ｐ（ｉ，ｊ）の動きベクトルＶ（ｉ，ｊ）を下記式（５）により算出する。
Ｖ（ｉ，ｊ）＝｛（Ｗ−ｉ）（Ｈ−ｊ）Ｖａ＋ｉ（Ｈ−ｊ）Ｖｂ＋（Ｗ−ｉ）ｊ・Ｖｃ＋ｉ・ｊ・Ｖｄ｝／（Ｗ・Ｈ）  ・・・式（５）
【００７１】
以上、水平方向および垂直方向の双方に一度に（すなわち、２次元で）補間する方法について説明したが、水平方向の２つの代表画素の動きベクトルから、これら２点を結ぶ直線上の画素の動きベクトルを補間することにより非代表画素の動きベクトルを算出し、その他の画素の動きベクトルを、すでに算出された各画素の動きベクトルを用いて、さらに垂直方向に補間することにより算出してもよい。
【００７２】
この場合の算出方法について説明する。画素ａと画素ｂを通るライン上の各画素Ｐ（ｉ，０）の動きベクトルＶ（ｉ，０）は、下記式（６）により算出される。
Ｖ（ｉ，０）＝Ｖａ＋（Ｖｂ−Ｖａ）＊（ｉ−０）／Ｗ  ・・・式（６）
【００７３】
同様に、画素ｃと画素ｄを通るライン上の各画素Ｐ（ｉ，Ｈ）の動きベクトルＶ（ｉ，Ｈ）は、下記式（７）により算出される。
Ｖ（ｉ，Ｈ）＝Ｖｃ＋（Ｖｄ−Ｖｃ）＊（ｉ−０）／Ｗ  ・・・式（７）
【００７４】
さらに、残りの画素Ｐ（ｉ，ｊ）の動きベクトルＶ（ｉ，ｊ）は、下記式（８）により算出される。
Ｖ（ｉ，ｊ）＝Ｖ（ｉ，０）＋｛Ｖ（ｉ，Ｈ）−Ｖ（ｉ，０）｝＊（ｊ−０）／Ｈ  ・・・式（８）
【００７５】
第１の予測部１２３は、算出された画素ごとの動きベクトルを用いて、画素ごとに動き補償予測を行う。以上の説明では、マクロブロックに含まれる各画素の動きベクトルを算出する例を説明したが、サブマクロブロックに含まれる各画素の動きベクトルも同様に算出することができる。
【００７６】
この画素単位の動きベクトルの算出処理および各画素の動き補償処理を、規定された複数のモードで行う。複数のモードはそれぞれ、参照インデックス、動き補償ブロックのサイズ、Ｌ０／Ｌ１予測などが異なる。なお、Ｌ０／Ｌ１予測はＢスライスでのみ選択可能である。
【００７７】
第１の予測部１２３は、それぞれのモードにて動き補償予測を行い、それぞれのモードにおける予測モード情報、動きベクトル、および予測信号（より具体的には、動き補償予測ブロック信号）を予測方法決定部１０４に供給する。
【００７８】
第１の予測部１２３は、第１の非代表点動きベクトル算出部１２２で算出された各画素の動きベクトルに応じて各画素を動き補償予測する。より具体的には、各画素の動きベクトルが指し示す参照画像の画素から補間信号を生成することにより動き補償予測する。なお、各画素の動きベクトルの精度、演算過程で必要となる数値のまるめ方などは、どの復号装置で復号しても同じ値になるように規定する必要がある。また、動きベクトルにより指定される予測画素の座標が小数点以下で表される場合、動き補償の際に周囲の画素から当該画素を補間する。その補間方法には４〜６タップのフィルタリングや線形補間などを用いることができる。
【００７９】
ＤＭＶ４モードでは、４つの動きベクトルで拡大・縮小、回転、平行移動など、ＤＭＶ４モード以外のモードでは表現できない複雑な変形を表すことができる。ＤＭＶ３モードでは、３つの動きベクトルでアフィン変換による変形を表すことができる。変形の表現力はＤＭＶ４モードに比べて限定されるが、符号化すべき動きベクトル（より具体的には、差分ベクトル）の数を減らすことができる。
【００８０】
ＤＭＶ２Ｖモードでは、２つの動きベクトルで平行移動に加えて垂直方向に異なる変形を表すことができる。変形の表現力はＤＭＶ４モードおよびＤＭＶ３モードに比べて限定されるが、符号化すべき動きベクトルの数を減らすことができる。ＤＭＶ２Ｈモードでは、２つの動きベクトルで平行移動に加えて水平方向に異なる変形を表すことができる。変形の表現力はＤＭＶ４モードおよびＤＭＶ３モードに比べて限定されるが、符号化すべき動きベクトルの数を減らすことができる。ＤＭＶ２Ａモードや、ＤＭＶ２Ｂモードでは、２つの動きベクトルで平行移動に加えて斜め方向に異なる変形を表すことができる。変形の表現力はＤＭＶ４モードおよびＤＭＶ３モードに比べて限定されるが、符号化すべき動きベクトルの数を減らすことができる。ＤＭＶ１Ａモード、ＤＭＶ１Ｂモード、ＤＭＶ１Ｃモード、ＤＭＶ１ＤモードおよびＤＭＶ０モードでは近隣のブロックから類推した変形にフィットしたとき、符号化すべき動きベクトルの数を大きく減らすことができる。
【００８１】
図１に戻り、予測方法決定部１０４は、対象画像内の対象ブロックごとに、平行移動動き補償予測部１０２による予測方法と、幾何学変換動き補償予測部１０３による予測方法とのいずれを採用するか決定する。より具体的には、いずれの予測方法の、いずれのモードを採用するかを決定する。以下、モードの選択を含めて予測方法の選択という。
【００８２】
すなわち、予測方法決定部１０４は、平行移動による動き補償予測または幾何学変換による動き補償予測のどちらを、どの参照画像を用いて、どの画素ブロック単位で符号化するかを選択することにより、予測方法を決定する。幾何学変換による動き補償予測を選択する場合、ＤＭＶ４モード、ＤＭＶ３モード、ＤＭＶ２Ｖモード、ＤＭＶ２Ｈモード、ＤＭＶ２Ａモード、ＤＭＶ２Ｂモード、ＤＭＶ１Ａモード、ＤＭＶ１Ｂモード、ＤＭＶ１Ｃモード、ＤＭＶ１ＤモードおよびＤＭＶ０モードのいずれかを選択する。その際、それらの項目の、どの組み合わせが、最も効率的な符号化を実現できる予測方法であるかを判定することにより、予測方法を決定する。予測方法を決定する基準として、たとえば、符号量と歪の関係を考慮したレート歪理論を用いることができる。より具体的には、マクロブロックの符号量（すなわち、予測方法情報、動きベクトルおよび予測信号の合計符号量）を算出するとともに、符号化対象画像と復号画像の差から歪量を算出し、当該符号量および当該歪量を入力変数とするレート歪関数を最小化する予測方法を選択する。
【００８３】
予測方法決定部１０４は、採用した予測方法情報を第１符号化ビット列生成部１０７および差分ベクトル算出部１１４に、採用した予測方法に応じた動きベクトルを差分ベクトル算出部１１４に供給する。それとともに、予測方法決定部１０４は、採用した予測方法により生成された予測信号を予測誤差信号生成部１０５に供給する。
【００８４】
第１符号化ビット列生成部１０７は、予測方法決定部１０４から供給される予測方法情報を、算術符号化などのエントロピー符号化により符号化し、符号化ビット列を生成する。予測方法情報に含めるべき、予測ブロックサイズ、Ｌ０／Ｌ１予測の区別などは組み合わせてマクロブロック・タイプとして符号化する。また、予測方法情報に含めるべき、平行移動による動き補償予測と幾何学変換による動き補償予測のいずれを用いるか、幾何学変換の場合、ＤＭＶ４モード、ＤＭＶ３モード、ＤＭＶ２Ｖモード、ＤＭＶ２Ｈモード、ＤＭＶ２Ａモード、ＤＭＶ２Ｂモード、ＤＭＶ１Ａモード、ＤＭＶ１Ｂモード、ＤＭＶ１Ｃモード、ＤＭＶ１ＤモードおよびＤＭＶ０モードのいずれを用いるかを識別するための情報に関しては、以下の記述方法を用いることができる。たとえば、シンタックス要素を別途に用意して記述してもよいし、他のマクロブロック・タイプとして符号化する情報と組み合わせることで、マクロブロック・タイプを拡張して記述してもよい。
【００８５】
たとえば、幾何学変換による動き補償予測を行うか否かを切り替えるブロック単位毎に、“geom_type”というシンタックス要素を用意する。“geom_type”の値が“０”を平行移動による動き補償予測、“geom_type”の値が“１”を幾何学変換による動き補償予測のＤＭＶ０モード、“geom_type”の値が“２”を幾何学変換による動き補償予測のＤＭＶ１Ａモード、“geom_type”の値が“３”を幾何学変換による動き補償予測のＤＭＶ１Ｂモード、“geom_type”の値が“４”を幾何学変換による動き補償予測のＤＭＶ１Ｃモード、“geom_type”の値が“５”を幾何学変換による動き補償予測のＤＭＶ１Ｄモード、“geom_type”の値が“６”を幾何学変換による動き補償予測のＤＭＶ２Ｖモード、“geom_type”の値が“７”を幾何学変換による動き補償予測のＤＭＶ２Ｈモード、“geom_type”の値が“８”を幾何学変換による動き補償予測のＤＭＶ２Ａモード、“geom_type”の値が“９”を幾何学変換による動き補償予測のＤＭＶ２Ｂモード、“geom_type”の値が“１０”を幾何学変換による動き補償予測のＤＭＶ３モード、および“geom_type”の値が“１１”を幾何学変換による動き補償予測のＤＭＶ４モードを表すものとして符号化する。
【００８６】
図６は、シンタックス構造の一例を示す図である。なお、図６では“geom_type”をマクロブロックごとに１つ用意し、Ｌ０予測、Ｌ１予測共に共通のモードで動き補償予測を行う例を示しているが、Ｌ０、Ｌ１双方から予測するモードの場合、２つ用意することにより、Ｌ０予測、Ｌ１予測それぞれ別の動き補償予測を行うこともできる。
【００８７】
対象ブロックの動きベクトルを符号化する際、すでに符号化または復号済みの周囲の隣接ブロックまたはその隣接ブロックの画素の動きベクトルとの相関を利用して、当該隣接ブロックまたは当該隣接ブロックの画素の動きベクトルから動きベクトルを予測することにより予測ベクトルを算出することができる。そして、この予測ベクトルと、対象ブロックまたは対象画素の動きベクトルとの差分である差分ベクトルを算出することにより、対象ブロックまたは対象画素の動きベクトルの符号量を削減することができる。ここで、幾何学変換による動き補償予測が採用された対象ブロックでは、その代表画素の動きベクトルが符号化の対象となる。
【００８８】
図１に戻り、差分ベクトル算出部１１４は、予測方法決定部１０４から供給される予測方法情報に応じて、対象ブロックの他の代表画素、すでに符号化されている周囲の隣接ブロックまたはその隣接ブロックの画素の動きベクトルから、対象ブロックまたは対象画素の動きベクトルを予測することにより予測ベクトルを算出する。なお、予測ベクトルを平行移動動き補償予測部１０２、幾何学変換動き補償予測部１０３、予測方法決定部１０４で算出した場合、これらの値を差分ベクトル算出部１１４で用いてもよい。そして、差分ベクトル算出部１１４は、その予測ベクトルと、予測方法決定部１０４から供給される動きベクトルとの差分を算出して差分ベクトルを生成し、第２符号化ビット列生成部１０８に供給する。
【００８９】
ＤＭＶ４モードでは、差分ベクトル算出部１１４は、４つの頂点ａ、ｂ、ｃ、ｄに対応する４つの代表画素ａ、ｂ、ｃ、ｄの動きベクトルを符号化・復号するために、それぞれの予測ベクトルおよび差分ベクトルを算出する。ＤＭＶ３モードでは、３つの頂点ａ、ｂ、ｃに対応する３つの代表画素ａ、ｂ、ｃの動きベクトルを符号化・復号するために、それぞれの予測ベクトルおよび差分ベクトルを算出する。ＤＭＶ２Ｖモードでは、２つの頂点ａ、ｃに対応する２つの代表画素ａ、ｃの動きベクトルを符号化・復号するために、それぞれ予測ベクトルおよび差分ベクトルを算出する。ＤＭＶ２Ｈモードでは、２つの頂点ａ、ｂに対応する２つの代表画素ａ、ｂの動きベクトルを符号化・復号するために、それぞれの予測ベクトルおよび差分ベクトルを算出する。ＤＭＶ２Ａモードでは、２つの頂点ａ、ｄに対応する２つの代表画素ａ、ｄの動きベクトルを符号化・復号するために、それぞれ予測ベクトルおよび差分ベクトルを算出する。ＤＭＶ２Ｂモードでは、２つの頂点ｂ、ｃに対応する２つの代表画素ｂ、ｃの動きベクトルを符号化・復号するために、それぞれ予測ベクトルおよび差分ベクトルを算出する。
【００９０】
ＤＭＶ１Ａモードでは、頂点ａに対応する代表画素ａの動きベクトルを符号化・復号するために、代表画素ａの予測ベクトルおよび差分ベクトルだけを算出する。ＤＭＶ１Ｂモードでは、頂点ｂに対応する代表画素ｂの動きベクトルを符号化・復号するために、代表画素ｂの予測ベクトルおよび差分ベクトルだけを算出する。ＤＭＶ１Ｃモードでは、頂点ｃに対応する代表画素ｃの動きベクトルを符号化・復号するために、代表画素ｃの予測ベクトルおよび差分ベクトルだけを算出する。ＤＭＶ１Ｄモードでは、頂点ｄに対応する代表画素ｄの動きベクトルを符号化・復号するために、代表画素ｄの予測ベクトルおよび差分ベクトルだけを算出する。ＤＭＶ０モードでは、どの動きベクトルも符号化・復号しないのため、差分ベクトルを算出しない。
【００９１】
なお、差分ベクトル算出部１１４は、予測方法決定部１０４から供給される対象ブロックの予測方法情報および動きベクトルを保持し、後続する対象ブロックの予測ベクトルの算出に利用する。
【００９２】
図７（ａ）〜（ｄ）は、符号化対象ブロックおよび隣接ブロック共に平行移動による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法を説明するための図である。図７（ａ）は、パーティションが設定されていないマクロブロック間において、動きベクトルを予測する例を示す。図７（ｂ）は、パーティションが設定されているマクロブロック間において、動きベクトルを予測する例を示す。図７（ｃ）は、８×１６画素のマクロブロックにおいて、動きベクトルを予測する例を示す。図７（ｄ）は、１６×８画素のマクロブロックにおいて、動きベクトルを予測する例を示す。以下、図７（ａ）〜（ｄ）を参照して、動きベクトルの予測方法について説明する。この動きベクトルの予測方法は、周囲の隣接ブロックの動きベクトルの中央値を用いて、対象ブロックの動きベクトルを予測する。
【００９３】
図７（ａ）〜（ｄ）にて、グレーで塗られているブロックの動きベクトルが符号化対象である。図７（ａ）にて、対象ブロックの動きベクトルを、その対象ブロックの左隣のブロックＡ、上隣のブロックＢおよび右斜上隣のブロックＣの３つの動きベクトルを候補として用いることにより予測する。より具体的には、それら３つの動きベクトルから水平成分および垂直成分それぞれについて中央値をとって予測ベクトルとする。
【００９４】
なお、Ｂピクチャにおいては、Ｌ０予測のための動きベクトルとＬ１予測のための動きベクトルをそれぞれ別々に扱う。その対象ブロックの左隣のブロックＡ、上隣のブロックＢおよび右斜上隣のブロックＣの３つのＬ０予測のための動きベクトルを用いて予測することにより、対象ブロックのＬ０予測のための予測ベクトルを算出する。同様に、その対象ブロックの左隣のブロックＡ、上隣のブロックＢおよび右斜上隣のブロックＣの３つのＬ１予測のための動きベクトルを用いて予測することにより、対象ブロックのＬ１予測のための予測ベクトルを算出する。ここで、上隣のブロックＢおよび右斜上隣のブロックＣが共に利用できず、ブロックＡだけが利用できる場合、ブロックＡの動きベクトルを予測ベクトルとして採用する。また、左隣のブロックＡ、上隣のブロックＢおよび右斜上隣のブロックＣの参照インデックスのうち、１つだけが符号化対象ブロックの参照インデックスと値が等しい（すなわち、参照ピクチャが等しい）場合、そのブロックの動きベクトルを予測に用いる。
【００９５】
図７（ｂ）に示すように、隣接するマクロブロックにパーティションが設定されている場合、マクロブロックの小ブロックごとに動きベクトルが異なる。その場合、対象ブロックの左隣のブロックでは、対象ブロックと接している小ブロックのうち、最も上の小ブロックＡの動きベクトルを候補として採用する。上隣のブロックでは、対象ブロックと接している小ブロックのうち、最も左のブロックＢを候補として採用する。右斜上隣のブロックでは、最も左下の小ブロックＣを候補として採用する。この規則に従って、以下、図７（ａ）と同様に、予測ベクトルを算出する。
【００９６】
図７（ｃ）に示すように、符号化するブロックが８×１６の場合、３つのブロックの動きベクトルの中央値ではなく、左のブロックは左隣のブロックＡ、右のブロックは右斜上隣のブロックＣの動きベクトルを予測ベクトルとして採用する。また、図７（ｄ）に示すように、符号化するブロックが１６×８の場合も、３つのブロックの動きベクトルの中央値ではなく、上のブロックは上隣のブロックＢ、下のブロックは左隣のブロックＡの動きベクトルを予測ベクトルとして採用する。
【００９７】
なお、図７（ａ）〜（ｄ）に示す動きベクトルの予測方法は一例であり、それに限られるものではない。符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、隣接ブロックの位置および数が異なっていてもよい。また、隣接ブロックの複数の動きベクトルの中央値ではなく、平均値を用いてもよい。規定の条件や優先順位を設けて、単独の隣接ブロックの動きベクトルをそのまま用いてもよい。また、隣接ブロックは対象ブロックと必ずしも接していなくてもよい。また、図７（ａ）〜（ｄ）ではマクロブロック単位の動きベクトルを予測する例を説明したが、サブマクロブロック単位の動きベクトルを予測する場合も、同様に処理することができる。
【００９８】
つぎに、符号化対象ブロックで平行移動による動き補償予測が選択され、隣接ブロックで幾何学変換による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。隣接ブロックが幾何学変換による動き補償予測の場合、対象ブロックの左隣のブロックでは、対象ブロックと接している小ブロックのうち、最も上の小ブロックの右上の第２代表画素ｂの動きベクトルを、予測ベクトルを算出する際の候補として採用する。上隣のブロックでは、対象ブロックと接している小ブロックのうち、最も左のブロックの左下の第３代表画素ｃの動きベクトルを、予測ベクトルを算出する際の候補として採用する。右斜上隣のブロックでは、最も左下の小ブロックの左下の第３代表画素ｃの動きベクトルを、予測ベクトルを算出する際の候補として採用する。この規則に従って、以下、上述した図７（ａ）と同様に、予測ベクトルを算出する。
【００９９】
なお、この動きベクトルの予測方法は一例であり、それに限られるものではない。符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、対象ブロックの左隣のブロックの４つの代表画素の平均値を対象ブロックの左隣の動きベクトルの候補としてもよい。また、対象ブロックの上隣のブロックの４つの代表画素の平均値を対象ブロックの上隣の動きベクトルの候補としてもよい。また、対象ブロックの右上隣のブロックの４つの代表画素の平均値を対象ブロックの右上隣の動きベクトルの候補としてもよい。さらに、隣接ブロックや隣接ブロックの画素の位置および数が異なっていてもよい。また、隣接ブロックの画素の複数の動きベクトルの中央値ではなく、平均値を用いてもよい。単独の隣接ブロックの画素の動きベクトルをそのまま用いてもよい。また、隣接ブロックまたは隣接ブロックの画素は対象ブロックと必ずしも接していなくてもよい。また、ここではマクロブロック単位の動きベクトルを予測する例を説明したが、サブマクロブロック単位の動きベクトルを予測する場合も、同様に処理することができる。
【０１００】
つぎに、符号化対象ブロックおよび隣接ブロック共に幾何学変換による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。この場合においても同様に、隣接ブロックの動きベクトルから予測ベクトルを算出する。ただし、前述のＤＭＶ２Ｖモードの第２代表画素ｂおよび第４代表画素ｄの差分ベクトル、ＤＭＶ２Ｈモードの第３代表画素ｃおよび第４代表画素ｄの差分ベクトル、ＤＭＶ２Ａモードの第２代表画素ｂおよび第３代表画素ｃの差分ベクトル、ＤＭＶ２Ｂモードの第１代表画素ａおよび第４代表画素ｄの差分ベクトルに関しては、前述した方法により対象ブロックの動きベクトルの値から算出する。
【０１０１】
これらのモードを除く符号化対象ブロックの第１代表画素ａ、第２代表画素ｂおよび第３代表画素ｃの予測ベクトルは、隣接ブロックの代表画素の動きベクトルから予測する。符号化対象ブロックの第１代表画素ａの予測ベクトルは、左隣のブロックＡの第２代表画素ｂの動きベクトル、上隣のブロックＢの第３代表画素ｃの動きベクトルおよび左斜上隣のブロックＤの第４代表画素ｄの動きベクトルを予測ベクトルの候補として参照して算出する。予測ベクトルの算出の際には、あらかじめ規則を設定して、その規則に応じて選択する。例えば、左隣のブロックＡの第２代表画素ｂの動きベクトル、上隣のブロックＢの第３代表画素ｃの動きベクトル、左斜上隣のブロックＤの第４代表画素ｄの動きベクトルの順に優先順位を設定し、参照画像が同じ動きベクトルを予測ベクトルとして選択する。参照画像が同じ動きベクトルが複数ある場合は優先順位が先の動きベクトルを予測ベクトルとして選択する。参照画像が同じ動きベクトルが存在しない場合は、後述のスケーリングを行う。
【０１０２】
符号化対象ブロックの第２代表画素ｂの予測ベクトルは、上隣のブロックＢの第４代表画素ｄの動きベクトル、右斜上隣のブロックＣの第３代表画素ｃの動きベクトル、当該対象ブロックの第１代表画素ａの動きベクトルを予測ベクトルの候補として参照して算出する。この場合も予測ベクトルの算出の際には、あらかじめ規則を設定して、その規則に応じて選択する。例えば、上隣のブロックＢの第４代表画素ｄの動きベクトル、右斜上隣のブロックＣの第３代表画素ｃの動きベクトル、当該対象ブロックの第１代表画素ａの動きベクトルの動きベクトルの順に優先順位を設定し、参照画像が同じ動きベクトルを予測ベクトルとして選択する。参照画像が同じ動きベクトルが複数ある場合は優先順位が先の動きベクトルを予測ベクトルとして選択する。
【０１０３】
符号化対象ブロックの第３代表画素ｃの予測ベクトルは、左隣のブロックＡの第４代表画素ｄの動きベクトル、当該対象ブロックの第１代表画素ａの動きベクトルを予測ベクトルの候補として参照して算出する。この場合も予測ベクトルの算出の際には、あらかじめ規則を設定して、その規則に応じて選択する。例えば、上隣のブロックＢの第４代表画素ｄの動きベクトル、右斜上隣のブロックＣの第３代表画素ｃの動きベクトル、当該対象ブロックの第１代表画素ａの動きベクトルの順に優先順位を設定し、参照画像が同じ動きベクトルを予測ベクトルとして選択する。参照画像が同じ動きベクトルが複数ある場合は優先順位が先の動きベクトルを予測ベクトルとして選択する。なお、シンタックスに複数の候補から予測ベクトルとして採用する動きベクトルを特定するためのフラグを用意してもよい。この場合、差分ベクトルを符号化する代表点に関しては差分ベクトルの符号量が最も小さくなる候補を選択し、差分ベクトルを符号化しない代表点に関しては最も良好な幾何学変換動き補償画像を得られる候補を選択して、第１符号化ビット列生成部１０７で代表点ごとに選択した候補を特定するフラグを符号化する。
【０１０４】
つぎに、符号化対象ブロックで幾何学変換による動き補償予測が選択され、隣接ブロックで平行移動による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。隣接ブロックが平行移動による動き補償予測の場合、隣接ブロックの動きベクトルが当該隣接ブロック内のすべての画素で共通である。そこで、隣接ブロックの動きベクトルを、その隣接ブロックの代表画素の動きベクトルとし、符号化対象ブロックおよび隣接ブロック共に幾何学変換による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法と同様の方法で算出する。
【０１０５】
なお、幾何学変換による動き補償予測が選択された場合の動きベクトルの予測方法は一例であり、それに限られるものではない。符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、隣接ブロックの代表画素の位置および数が異なっていてもよい。また、隣接ブロックの代表画素の複数の動きベクトルの中央値ではなく、平均値を用いてもよい。単独の隣接ブロックの代表画素の動きベクトルをそのまま用いてもよい。
【０１０６】
また、前述したＤＭＶ２Ｖモード、ＤＭＶ２Ｈモード、ＤＭＶ２Ａモード、ＤＭＶ２Ｂモードを除く第４代表画素ｄの予測ベクトルＰＶｄは、第１代表画素ａ、第２代表画素ｂおよび第３代表画素ｃのそれぞれの動きベクトルＶａ、Ｖｂ、Ｖｃから下記式（９）により算出する。
ＰＶｄ＝Ｖｃ＋（Ｖｂ−Ｖａ）  ・・・式（９）
あるいは、下記式（１０）により算出する。
ＰＶｄ＝Ｖｂ＋（Ｖｃ−Ｖａ）  ・・・式（１０）
【０１０７】
この第４代表画素ｄの予測ベクトルの算出式である上記式（９）および上記式（１０）は、ＤＭＶ３モードで算出する第４代表画素ｄの算出式である上記式（１）および上記式（２）とそれぞれ同じ式である。ＤＭＶ２Ｖモード、ＤＭＶ２ＨモードおよびＤＭＶ３モードでは表現できない変形を表すことができるが、ＤＭＶ３モードで表現できるアフィン変換に近い変換であることが多い。上記式（９）および上記式（１０）で算出できる予測ベクトルは、ＤＭＶ４モードで符号化・復号する第４代表画素ｄの動きベクトルと強い相関があるという考えに基づいている。
【０１０８】
なお、符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、第４代表画素ｄに関しては、第１代表画素ａ、第２代表画素ｂおよび第３代表画素ｃの動きベクトルの中央値を予測ベクトルとして用いることもできる。あるいは、中央値の代わりに、平均値を用いてもよいし、単独の任意の画素の動きベクトルをそのまま用いてもよい。または、式（９）で算出される予測ベクトル、第１代表画素ａの動きベクトル、第２代表画素ｂの動きベクトル、第３代表画素ｃの動きベクトル、第１代表画素ａ、第２代表画素ｂおよび第３代表画素ｃの動きベクトルの中央値、第１代表画素ａ、第２代表画素ｂおよび第３代表画素ｃの動きベクトルの平均値を予測ベクトルの候補とし、少なくとも２つを適応的に切り替えてもよい。この場合、シンタックスに複数の候補から予測ベクトルとして採用する動きベクトルを特定するためのフラグを用意し、第１符号化ビット列生成部１０７でこのフラグを符号化する。
【０１０９】
また、ＤＭＶ２Ａモードでは、当該対象ブロックの第１代表画素ａの動きベクトルＶａを第４代表画素ｄの予測ベクトルＰＶｄとする。ＤＭＶ２Ａモードでは、第２代表画素ｂおよび第３代表画素ｃの動きベクトルＶｂ、Ｖｃを算出する際に、第４代表画素ｄの動きベクトルＶｄを利用するので、第４代表画素ｄの予測ベクトルＰＶｄを算出する際に、第２代表画素ｂおよび第３代表画素ｃの動きベクトルＶｂ、Ｖｃを利用することができないからである。
【０１１０】
また、上記において説明した動きベクトルの予測方法において、隣接ブロックや隣接ブロックの画素の動きベクトルをそのまま候補とするのではなく、スケーリングした動きベクトル値Ｖａｂｃｄ’を予測ベクトルの算出に用いてもよい。スケーリングした動きベクトル値Ｖａｂｃｄ’は、符号化対象画像と符号化対象ブロックの動きベクトルが指し示す参照画像との間の距離（時間）Ｔ１と、符号化対象画像と隣接ブロックまたは隣接画素の動きベクトルＶａｂｃｄが指し示す参照画像との距離（時間）Ｔ２との違いに応じてスケーリングした動きベクトル値である。スケーリングした動きベクトル値Ｖａｂｃｄ’は下記式（１１）により算出される。
Ｖａｂｃｄ’＝Ｖａｂｃｄ＊（Ｔ１／Ｔ２）  ・・・式（１１）
【０１１１】
符号化対象ブロックの動き補償予測で参照する参照画像と、隣接ブロックの動き補償予測で参照する参照画像が異なる場合、互いの動きベクトルの大きさに差が生じるため、そのミスマッチを解消するために動きベクトルをスケーリングする。たとえば、物体が変形せず、等速運動をしていれば、動きベクトルの大きさはフレーム間隔が長くなるほど大きくなる。そこで、符号化対象画像−参照画像間のフレーム間隔Ｔ１、Ｔ２の比率に応じて隣接ブロック（隣接画素）の動きベクトルＶａｂｃｄをスケーリングしてＶａｂｃｄ’を算出する。
【０１１２】
図８は、動きベクトル値のスケーリング処理の一例を説明するための図である。図８では、符号化対象画像の符号化対象ブロックの参照画像が画像Ｒｅｆ２であり、隣接ブロック（隣接画素）の動き補償予測の参照画像が画像Ｒｅｆ３である例を示している。図８ではＴ１：Ｔ２＝２：３であるため、画像Ｒｅｆ３を参照している隣接ブロック（隣接画素）の動きベクトルを２／３にスケーリングする。これにより、隣接ブロック（隣接画素）が画像Ｒｅｆ２を参照して動き補償予測をした場合の動きベクトル値に近くなり、結果的に画像Ｒｅｆ２を参照する符号化対象ブロックの動きベクトル値に近くなる。図８の例では、隣接ブロックの動き補償予測の際の参加画像が画像Ｒｅｆ３でその動きベクトルの値が（２４，−９）の場合、それを２／３にスケーリングした（１６，６）を、符号化対象ブロックが参照する画像Ｒｅｆ２の動きベクトル値とするとよい。
【０１１３】
なお、符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、対象ブロックの第２代表画素ｂの予測ベクトルを算出する際に、第１代表画素ａの動きベクトルを対象ブロックの第２代表画素ｂの予測ベクトルとしてもよい。また、上隣のブロックＢの第４代表画素ｄの動きベクトルを対象ブロックの第２代表画素ｂの予測ベクトルとするか、第１代表画素ａの動きベクトルを対象ブロックの第２代表画素ｂの予測ベクトルとするかを適応的に切り替えてもよい。
【０１１４】
対象ブロックの第１代表画素ａの差分ベクトルを符号化するモードにおいては、対象ブロックと上隣のブロックＢの幅が同じ場合、対象ブロックの第１代表画素ａの動きベクトルの値に応じて切り替えることもできる。対象ブロックの第１代表画素ａの動きベクトルの値が、参照画像との間の距離の違いを補正するためにスケーリングされた上隣のブロックＢの第４代表画素ｄの動きベクトルの値と同じか両者の値が所定の第１設定値（極めて小さな値に設定される）未満の場合、上隣のブロックＢの第４代表画素ｄのスケーリングされた動きベクトルを予測ベクトルとして採用し、両者の値が当該第１設定値以上離れている場合、対象ブロックの第１代表画素ａの動きベクトルを予測ベクトルとして採用する。対象ブロックの第１代表画素ａの動きベクトルの値が、上隣のブロックＢの第４代表画素ｄのスケーリングされた動きベクトルの値と同じか非常に近い場合、第２代表画素ｂの差分ベクトルを符号化・復号するモードでは、対象ブロックの第２代表画素ｂの動きベクトルの値が、スケーリングされた上隣のブロックＢの第４代表画素ｄの動きベクトルの値と同じか非常に近い値になる確率が高く、差分ベクトルの符号量を削減できる。第２代表画素ｂの差分ベクトルを符号化・復号しないモードでは、対象ブロックの第１代表画素ａの動きベクトルよりもスケーリングされた上隣のブロックＢの第４代表画素ｄの動きベクトルの値にしたほうが良好な幾何学変換動き補償画像を得られる確率が高いためである。
【０１１５】
一方、対象ブロックの第１代表画素ａの動きベクトルの値が、スケーリングされた上隣のブロックＢの第４代表画素ｄの動きベクトルの値と比較的離れている場合、第２代表画素ｂの差分ベクトルを符号化・復号するモードでは、対象ブロックの第２代表画素ｂの動きベクトルの値が、スケーリングされた上隣のブロックＢの第４代表画素ｄの動きベクトルの値と比較的離れる確率が高く、この場合、スケーリングされた上隣のブロックＢの第４代表画素ｄの動きベクトルからではなく、対象ブロックの第１代表画素ａの動きベクトルの値を予測ベクトルとしたほうが差分ベクトルの符号量を削減できる可能性が高い。第２代表画素ｂの差分ベクトルを符号化・復号しないモードでは、スケーリングされた上隣のブロックＢの第４代表画素ｄの動きベクトルよりも対象ブロックの第１代表画素ａの動きベクトルの値を予測ベクトルとしたほうが良好な幾何学変換動き補償画像を得られる確率が高い。なお、上記第１設定値は、設計者による実験やシミュレーションにもとづき決定される。
【０１１６】
また、対象ブロックの第３代表画素ｃの予測ベクトルを算出する際に、第１代表画素ａの動きベクトルを対象ブロックの第３代表画素ｃの予測ベクトルとしてもよい。また、前述のように左隣のブロックＡの第４代表画素ｄの動きベクトルを対象ブロックの第３代表画素ｃの予測ベクトルとするか、対象ブロックの第１代表画素ａの動きベクトルを対象ブロックの第３代表画素ｃの予測ベクトルとするかを適応的に切り替える際には、
【０１１７】
対象ブロックの第１代表画素ａの差分ベクトルを符号化するモードにおいては、対象ブロックと左隣のブロックＡの高さが同じ場合、対象ブロックの第１代表画素ａの動きベクトルの値に応じて切り替えることもできる。対象ブロックの第１代表画素ａの動きベクトルの値が、参照画像との間の距離の違いを補正するためにスケーリングされた左隣のブロックＡの第４代表画素ｄの動きベクトルの値と同じか両者の値が所定の第２設定値（極めて小さな値に設定される）未満の場合、スケーリングされた左隣のブロックＡの第４代表画素ｄの動きベクトルを予測ベクトルとして採用し、両者の値が当該第２設定値以上離れている場合、対象ブロックの第１代表画素ａの動きベクトルを予測ベクトルとして採用する。対象ブロックの第１代表画素ａの動きベクトルの値が、スケーリングされた左隣のブロックＡの第４代表画素ｄの動きベクトルの値と同じか非常に近い場合、第３代表画素ｃの差分ベクトルを符号化・復号するモードでは、対象ブロックの第３代表画素ｃの動きベクトルの値が、スケーリングされた左隣のブロックＡの第４代表画素ｄの動きベクトルの値と同じか非常に近い値になる確率が高く、差分ベクトルの符号量を削減できる。第３代表画素ｃの差分ベクトルを符号化・復号しないモードでは、対象ブロックの第１代表画素ａの動きベクトルよりもスケーリングされた左隣のブロックＡの第４代表画素ｄの動きベクトルの値にしたほうが良好な幾何学変換動き補償画像を得られる確率が高いためである。
【０１１８】
一方、対象ブロックの第１代表画素ａの動きベクトルの値が、スケーリングされた左隣のブロックＡの第４代表画素ｄの動きベクトルの値と比較的離れている場合、第３代表画素ｃの差分ベクトルを符号化・復号するモードでは、対象ブロックの第３代表画素ｃの動きベクトルの値が、スケーリングされた左隣のブロックＡの第４代表画素ｄの動きベクトルの値と比較的離れる確率が高く、この場合、スケーリングされた左隣のブロックＡの第４代表画素ｄの動きベクトルからではなく、対象ブロックの第１代表画素ａの動きベクトルの値を予測ベクトルとしたほうが差分ベクトルの符号量を削減できる可能性が高い。第３代表画素ｃの差分ベクトルを符号化・復号しないモードでは、スケーリングされた左隣のブロックＡの第４代表画素ｄの動きベクトルよりも対象ブロックの第１代表画素ａの動きベクトルの値を予測ベクトルとしたほうが良好な幾何学変換動き補償画像を得られる確率が高い。
【０１１９】
以上、隣接ブロックが幾何学変換による動き補償予測が選択された場合について説明したが、隣接ブロックが平行移動による動き補償予測が選択された場合、隣接ブロックの代表画素の動きベクトルの代わりに、隣接ブロックの動きベクトルを予測ベクトルとしたり、評価に用いたりする。具体的には、対象ブロックの第１代表画素ａの動きベクトルと比較する上隣のブロックＢの第４代表画素ｄの動きベクトルの代わりに、上隣のブロックＢの動きベクトルを用い、左隣のブロックＡの第４代表画素ｄの動きベクトルの代わりに、左隣のブロックＡの動きベクトルを用いる。また、対象ブロックの第２代表画素ｂの予測ベクトルまたは動きベクトルを算出する際に参照する上隣のブロックＢの第４代表画素ｄの動きベクトルの代わりに、上隣のブロックＢの動きベクトルを用いる。また、対象ブロックの第３代表画素ｃの予測ベクトルまたは動きベクトルを算出する際に参照する左隣のブロックＡの第４代表画素ｄの動きベクトルの代わりに、左隣のブロックＡの動きベクトルを用いる。
【０１２０】
以上、幾何学変換による動き補償予測の予測ベクトルについて説明したが、ＤＭＶ２Ｖの第２代表画素ｂと第４代表画素ｄ、ＤＭＶ２Ｈの第３代表画素ｃと第４代表画素ｄ、ＤＭＶ２Ａの第２代表画素ｂと第３代表画素ｃ、およびＤＭＶ２Ｂの第１代表画素ａと第４代表画素ｄを除き、ＤＭＶ４モードと共通の算出方法で行う。なお、復号側と共通のルールを規定する限りにおいては、ＤＭＶ２Ｖの第２代表画素ｂと第４代表画素ｄ、ＤＭＶ２Ｈの第３代表画素ｃと第４代表画素ｄ、ＤＭＶ２Ａの第２代表画素ｂと第３代表画素ｃ、およびＤＭＶ２Ｂの第１代表画素ａと第４代表画素ｄにおいても、ＤＭＶ４モードと共通の算出方法で行うことが可能である。
【０１２１】
図１に戻り、第２符号化ビット列生成部１０８は、差分ベクトル算出部１１４から供給される差分ベクトルを算術符号化などのエントロピー符号化により符号化し、符号化ビット列を生成する。
【０１２２】
なお、幾何学変換による動き補償予測では、予測モードに応じて、０〜４本の差分ベクトルを符号化する。ＤＭＶ４モードでは、４つの頂点ａ、ｂ、ｃ、ｄに対応する４つの代表画素ａ、ｂ、ｃ、ｄのそれぞれの差分ベクトルを符号化する。ＤＭＶ３モードでは、３つの頂点ａ、ｂ、ｃに対応する３つの代表画素ａ、ｂ、ｃのそれぞれの差分ベクトルを符号化する。ＤＭＶ２Ｖモードでは、２つの頂点ａ、ｃに対応する代表画素ａ、ｃのそれぞれの差分ベクトルを符号化する。ＤＭＶ２Ｈモードでは、２つの頂点ａ、ｂに対応する代表画素ａ、ｂのそれぞれの差分ベクトルを符号化する。ＤＭＶ２Ａモードでは、２つの頂点ａ、ｄに対応する代表画素ａ、ｄのそれぞれの差分ベクトルを符号化する。ＤＭＶ２Ｂモードでは、２つの頂点ｂ、ｃに対応する代表画素ｂ、ｃのそれぞれの差分ベクトルを符号化する。ＤＭＶ１Ａモードでは、頂点ａに対応する代表画素ａの差分ベクトルだけを符号化する。ＤＭＶ１Ｂモードでは、頂点ｂに対応する代表画素ｂの差分ベクトルだけを符号化する。ＤＭＶ１Ｃモードでは、頂点ｃに対応する代表画素ｃの差分ベクトルだけを符号化する。ＤＭＶ１Ｄモードでは、頂点ｄに対応する代表画素ｄの差分ベクトルだけを符号化する。ＤＭＶ０モードでは、どの代表画素の差分ベクトルも符号化しない。
【０１２３】
予測誤差信号生成部１０５は、予測方法決定部１０４により採用された予測方法で生成された予測信号と、対象ブロックの画像信号との差分を算出し、予測誤差信号を生成する。より具体的には、予測誤差信号生成部１０５は、画像バッファ１０１から供給される符号化対象の画像信号から、予測方法決定部１０４から供給される予測信号を減算することにより、予測誤差信号を生成し、予測誤差信号符号化部１０６に供給する。
【０１２４】
予測誤差信号符号化部１０６は、予測誤差信号生成部１０５から供給される予測誤差信号に対して、直交変換、量子化などの圧縮符号化処理を行い、符号化された予測誤差信号を生成し、第３符号化ビット列生成部１０９および予測誤差信号復号部１１０に供給する。
【０１２５】
第３符号化ビット列生成部１０９は、予測誤差信号符号化部１０６から供給される符号化された予測誤差信号を、算術符号化などのエントロピー符号化を用いて順次符号化し、符号化ビット列を生成する。
【０１２６】
第１符号化ビット列生成部１０７、第２符号化ビット列生成部１０８および第３符号化ビット列生成部１０９により生成された符号化ビット列は、予測方法情報、動きベクトル、予測誤差信号以外の情報が符号化されたその他の符号化ビット列とともに、出力スイッチ１１３を介して多重化され、符号化ストリームが生成される。
【０１２７】
予測誤差信号復号部１１０は、予測誤差信号符号化部１０６により符号化された予測誤差信号に対して、逆量子化、逆直交変換などの伸張復号処理を行い、当該予測誤差信号を復号する。予測誤差信号復号部１１０は、復号した予測誤差信号を復号画像信号生成部１１１に供給する。復号画像信号生成部１１１は、予測誤差信号符号化部１０６から供給される予測誤差信号と、予測方法決定部１０４から供給される予測信号を重畳して、復号画像信号を生成する。復号画像信号生成部１１１は、その復号画像信号をブロック単位で復号画像バッファ１１２に順次格納する。この復号画像バッファ１１２に格納される復号画像は、必要に応じて、符号化順序で後続する画像を動き補償予測する際の参照画像として利用される。
【０１２８】
以下、上記図５に示した幾何学変換動きベクトル検出部１２１の検出方法の一例として、平行移動動き補償予測部１０２により生成されたマクロブロックやマクロブロック・パーティションの動きベクトルなどの平行移動の動きベクトルを補正して、幾何学変換の代表画素の動きベクトルを検出する方法について説明する。図９は、本発明の実施の形態１に係る幾何学変換動きベクトル検出部１２１の構成を示すブロック図である。幾何学変換動きベクトル検出部１２１は、代表点動きベクトル設定部１３１、第２の非代表点動きベクトル算出部１３２、第２の予測部１３３、ブロックマッチング部１３４および評価部１３５を含む。
【０１２９】
マクロブロックの平行移動の動きベクトルを補正して幾何学変換の代表画素の動きベクトルとして用いる場合、幾何学変換動きベクトル検出部１２１は、平行移動動き補償予測部１０２により生成されたマクロブロックの動きベクトルの値を各代表画素の動きベクトルの初期値に設定する。そして、それらの代表画素の動きベクトルの値を増加方向および減少方向に変更させて、上述した幾何学変換動き補償予測と同様の処理により参照画像を変形させながら動き補償してブロックマッチングを行う。これにより、幾何学変換の代表画素の動きベクトルを算出する。
【０１３０】
図１０（ａ）〜（ｈ）は、平行移動動き補償予測部１０２により生成された平行移動の動きベクトルを補正して幾何学変換の代表画素の動きベクトルを検出する方法の具体例を示す図である。まず、ＤＭＶ４モードの場合について考える。代表点動きベクトル設定部１３１は、代表点ｂ、ｃ、ｄの動きベクトルを固定して、所定の動きベクトル検出範囲内で代表点ａの動きベクトルを水平・垂直方向に変更する。当該動きベクトル検出範囲は、たとえば、代表点ａを中心とする７×７画素の正方形領域であってもよい。第２の非代表点動きベクトル算出部１３２は、代表点ａの動きベクトルが変更される度に、第１の非代表点動きベクトル算出部１２２と同様の方法により、代表点以外の各画素の動きベクトルを算出する。第２の予測部１３３は、第１の予測部１２３と同様の方法により、各画素の動きベクトルに応じて参照画像の画素を補間することにより、参照画像を変形しながら予測する。ブロックマッチング部１３４は、符号化画像信号（より具体的には、対象ブロック信号）と予測信号との間でブロックマッチングを行い、差分絶対値和、差分二乗和などのマッチング評価値を算出する。評価部１３５は、今回算出されたマッチング評価値と、代表点ａの動きベクトルの候補のマッチング評価値（それまで算出されたマッチング評価値の最小値）とを比較し、マッチング評価値が小さいほうの動きベクトルを新しい代表点ａの候補とする。この一連の処理を繰り返し、代表点ａの動きベクトルの候補を算出する（図１０（ａ）参照）。
【０１３１】
代表点動きベクトル設定部１３１は、代表点ａの動きベクトルを更新し、つぎに代表点ａ、ｃ、ｄの動きベクトルを固定して、所定の動きベクトル検出範囲内で代表点ｂの動きベクトルを変更する。第２の非代表点動きベクトル算出部１３２は、代表点ｂの動きベクトルが変更される度に、代表点以外の各画素の動きベクトルを算出する。第２の予測部１３３は、各画素の動きベクトルに応じて参照画像を変形しながら予測する。ブロックマッチング部１３４は、符号化画像信号と予測信号との間でブロックマッチングを行う（図１０（ｂ）参照）。代表点ｃ、ｄについても、同様の手法により代表点ｃ、ｄの動きベクトルを検出する（図１０（ｃ）、（ｄ）参照）。さらに、必要に応じて再度、同様の手法により代表点ａ、ｂ、ｃ、ｄの動きベクトルを検出する（図１０（ｅ）〜（ｈ）参照）。代表点ａ、ｂ、ｃ、ｄの動きベクトルの検出を１サイクルとして、そのサイクルを所定の回数実行したら検出処理を終了する。図１０（ａ）〜（ｈ）では２サイクル実行する。または、代表点ａ、ｂ、ｃ、ｄの動きベクトルのそれぞれが収束（すなわち、動きベクトルが変更されない状態）したら検出処理を終了する。
【０１３２】
上述した例では、動きベクトル検出の初期値として、マクロブロックの動きベクトルを用いたが、マクロブロック・パーティションや、サブマクロブロックの動きベクトルを用いてもよい。また、新たに算出した動きベクトルを用いてもよい。また、マクロブロック・パーティションの平行移動の動きベクトルを補正して幾何学変換の代表画素の動きベクトルを検出する場合、マクロブロック・パーティションの動きベクトルの値をそれぞれ対応する代表画素の動きベクトルの初期値とし、上述した方法で、代表画素ａ、ｂ、ｃ、ｄの動きベクトルの値を算出する。
【０１３３】
つぎに、ＤＭＶ４モード以外のモードについて考える。ＤＭＶ４モード以外のモードでは、差分ベクトルを符号化・復号する代表画素の動きベクトルを検出する際に、差分ベクトルを符号化・復号しない代表画素の動きベクトルを各予測モードの予測ベクトル算出規則に応じて算出することで、差分ベクトルを符号化・復号する代表画素の動きベクトルに連動して動かしていく。
【０１３４】
ＤＭＶ３モードは差分ベクトルを符号化・復号する代表画素ａ、ｂ、ｃの動きベクトルを順次変更していくが、その際、代表画素ｄの動きベクトルも上記式（１）または上記式（２）に従って算出しながら変更する。たとえば、代表画素ａの動きベクトルを動かしながら検出しているときには、代表画素ｂ、ｃの動きベクトルは固定するが、差分ベクトルを符号化・復号しない代表画素ｄの動きベクトルは上記式（１）または上記（２）に従って算出されるため、代表画素ａの動きベクトルに応じて随時変更する。
【０１３５】
ＤＭＶ２Ｖモードは差分ベクトルを符号化・復号する代表画素ａ、ｃの動きベクトルを順次変更していくが、代表画素ａの動きベクトルを動かしながら検出しているときには、代表画素ｃ、ｄの動きベクトルは固定するが、差分ベクトルを符号化・復号しない代表画素ｂの動きベクトルは代表画素ａの動きベクトルと同じ値に随時変更する。代表画素ｃの動きベクトルを動かしながら検出しているときには、代表画素ａ、ｂの動きベクトルは固定するが、差分ベクトルを符号化・復号しない代表画素ｄの動きベクトルは代表画素ｂの動きベクトルと同じ値に随時変更する。
【０１３６】
ＤＭＶ２Ｈモードは差分ベクトルを符号化・復号する代表画素ａ、ｂの動きベクトルを順次変更していくが、代表画素ａの動きベクトルを動かしながら検出しているときには、代表画素ｂ、ｄの動きベクトルは固定するが、差分ベクトルを符号化・復号しない代表画素ｃの動きベクトルは代表画素ａの動きベクトルと同じ値に随時変更する。代表画素ｃの動きベクトルを動かしながら検出しているときには、代表画素ａ、ｂの動きベクトルは固定するが、差分ベクトルを符号化・復号しない代表画素ｄの動きベクトルは代表画素ｂの動きベクトルと同じ値に随時変更する。
【０１３７】
ＤＭＶ２Ａモード、ＤＭＶ２Ｂモード、ＤＭＶ１Ａモード、ＤＭＶ１Ｂモード、ＤＭＶ１ＣモードおよびＤＭＶ１Ｄモードについても、上述した原理またはその延長線上の原理にしたがい、代表画素の動きベクトルを検出することができる。なお、それらの検出方法は、当業者であれば、上述した説明から容易に理解できるため、その詳細な説明を省略する。動きベクトルを符号化しないＤＭＶ０モードでは、周辺ブロックまたは対象ブロックから予測した予測ベクトルを動きベクトルとして用いる。
【０１３８】
以上により、周囲のブロックの復号された動きベクトルから予測ベクトルを算出することができる。なお、周辺のブロックの動きベクトルが存在しない場合は候補に入れない。また、周辺のブロックが平行移動動き補償モードである場合、周辺のブロックの代表画素ａでは当該ブロックの動きベクトルの値を、その代表画素ａの動きベクトルの値とする。また、当該周辺のブロックの代表画素ｂでは左隣のブロックの動きベクトルの値を、その代表画素ｂの動きベクトルの値とする。また、当該周辺のブロックの代表画素ｃでは上隣のブロックの動きベクトルの値を、その代表画素ｂの動きベクトルの値とする。また、当該周辺のブロックの代表画素ｄでは左斜上隣のブロックの動きベクトルの値を、その代表画素ｂの動きベクトルの値とする。
【０１３９】
図１１は、本発明の実施の形態１に係る画像符号化装置１００における、マクロブロックの符号化処理手順を示すフローチャートである。まず、平行移動動き補償予測部１０２および幾何学変換動き補償予測部１０３は、画像バッファ１０１から符号化対象のマクロブロック信号を取り出す（Ｓ１０１）。
【０１４０】
平行移動動き補償予測部１０２は、画像バッファ１０１から供給される符号化対象のマクロブロック信号と、復号画像バッファ１１２から供給される参照画像信号との間で、平行移動による動き補償予測を行う（Ｓ１０２）。この平行移動による動き補償予測をモードごとに行う。幾何学変換動き補償予測部１０３は、画像バッファ１０１から供給される符号化対象のマクロブロック信号と、復号画像バッファ１１２から供給される参照画像信号との間で、幾何学変換による動き補償予測を行う（Ｓ１０３）。この幾何学変換による動き補償予測をモードごとに行う。
【０１４１】
予測方法決定部１０４は、平行移動による動き補償予測方法と、幾何学変換による動き補償予測とのいずれを採用するか決定する（Ｓ１０４）。その際、どのモードを採用するかも決定する。
【０１４２】
第１符号化ビット列生成部１０７は、予測方法決定部１０４から供給される予測方法情報を符号化し、符号化ビット列を生成する（Ｓ１０５）。差分ベクトル算出部１１４は、対象ブロックの代表画素、周辺ブロックまたは周辺画素からの予測ベクトルを算出し（Ｓ１０６）、当該予測ベクトルと予測方法決定部１０４から供給される動きベクトルとの差分ベクトルを算出する（Ｓ１０７）。
【０１４３】
第２符号化ビット列生成部１０８は、差分ベクトル算出部１１４から供給される差分ベクトルを符号化し、符号化ビット列を生成する（Ｓ１０８）。予測誤差信号生成部１０５は、画像バッファ１０１から供給される対象画像信号から、予測方法決定部１０４から供給される予測信号を減算し、予測誤差信号を生成する（Ｓ１０９）。予測誤差信号符号化部１０６は、当該予測誤差信号を符号化する（Ｓ１１０）。第３符号化ビット列生成部１０９は、予測誤差信号符号化部１０６により符号化された予測誤差信号を、算術符号化などを用いてエントロピー符号化し、符号化ビット列を生成する（Ｓ１１１）。
【０１４４】
予測誤差信号復号部１１０は、予測誤差信号符号化部１０６により符号化された予測誤差信号を復号する（Ｓ１１２）。復号画像信号生成部１１１は、予測誤差信号復号部１１０により復号された予測誤差信号と、予測方法決定部１０４から供給される予測信号とを重畳して、復号画像信号を生成する（Ｓ１１３）。復号画像信号生成部１１１は、生成した復号画像信号を復号画像バッファ１１２に蓄積する（Ｓ１１４）。
【０１４５】
図１２は、図１１のフローチャートのステップＳ１０２の平行移動動き補償処理の手順を示すフローチャートである。平行移動動き補償予測部１０２は、以下に示すステップＳ１０２２およびステップＳ１０２３の処理を、平行移動動き補償のすべての候補対象（モード、参照画像など）が終了するまで繰り返し実行する（Ｓ１０２１、Ｓ１０２４）。平行移動動き補償予測部１０２は、平行移動の動きベクトルを検出し（Ｓ１０２２）、検出された動きベクトルに応じて、対象ブロックの平行移動による動き補償を行う（Ｓ１０２３）。
【０１４６】
図１３は、図１１のフローチャートのステップＳ１０３の幾何学変換動き補償処理の手順を示すフローチャートである。幾何学変換動き補償予測部１０３は、以下に示すステップＳ１０３２およびステップＳ１０３３の処理を、幾何学変換動き補償のすべての候補対象（モード、参照画像など）が終了するまで繰り返し実行する（Ｓ１０３１、Ｓ１０３４）。幾何学変換動き補償予測部１０３は、幾何学変換の動きベクトルを検出し（Ｓ１０３２）、検出された動きベクトルに応じて、対象ブロックの幾何学変換による動き補償を行う（Ｓ１０３３）。
【０１４７】
図１４は、平行移動の動きベクトルを検出する手順を示すフローチャートである。平行移動動き補償予測部１０２は、以下に示すステップＳ１２２およびステップＳ１２７の処理を、所定の検出範囲内における全探索が終了するまで繰り返し実行する（Ｓ１２１、Ｓ１２８）。平行移動動き補償予測部１０２は、仮の動きベクトルの値を発生させ（Ｓ１２２）、発生させた仮の動きベクトルの値に応じて、平行移動による動き補償を行う（Ｓ１２３）。この仮の動きベクトルの値は、上記検出範囲内を全探索するために順次、更新される。
【０１４８】
平行移動動き補償予測部１０２は、その動き補償後の対象ブロックと参照ブロックとの間でブロックマッチングを行い、その評価値を算出する（Ｓ１２４）。現在算出した評価値と、これまで算出された最小の評価値とを比較し（Ｓ１２５）、前者が後者以上の場合（Ｓ１２５のＮ）、以下に示すステップＳ１２６およびステップＳ１２７をスキップする。前者が後者未満の場合（Ｓ１２５のＹ）、現在の仮の動きベクトルを現時点での候補とし（Ｓ１２６）、現在の評価値を上記最小の評価値とする（Ｓ１２７）。
【０１４９】
図１５は、幾何学変換の動きベクトルを検出する手順を示すフローチャートである。図１５に示すフローチャートは、１〜４本の差分ベクトルを符号化する幾何学変換モードにおいて動きベクトルを検出する手順を示すフローチャートである。
【０１５０】
幾何学変換動き補償予測部１０３は、平行移動動き補償予測部１０２により生成された、対象ブロックの平行移動の動きベクトルを取得し（Ｓ１３１）、各代表点の動きベクトルの初期値に設定する（Ｓ１３２）。以下に示すステップＳ１３４からステップＳ１４１のまでの処理を所定の回数繰り返す（Ｓ１３３、Ｓ１４２）。さらに、以下に示すステップＳ１３５からステップＳ１４０までの処理を所定の検出範囲内における全探索が終了するまで繰り返し実行する（Ｓ１３４、Ｓ１４１）。
【０１５１】
幾何学変換動き補償予測部１０３は、差分ベクトルを符号化する代表点のうち１点ずつ仮の動きベクトルの値を移動させる（Ｓ１３５）。なお、必要に応じて、差分ベクトルを符号化しない代表点の動きベクトルも連動させて移動させる。各モードの所定の規則に従い、差分ベクトルを符号化しない代表点の予測ベクトルを算出し、仮の動きベクトルとする。それらの仮の動きベクトルの値に応じて、対象ブロックの幾何学変換による動き補償を行う（Ｓ１３６）。幾何学変換動き補償予測部１０３は、その動き補償後の対象ブロックと参照ブロックとの間でブロックマッチングを行い、その評価値を算出する（Ｓ１３７）。現在算出した評価値と、これまで算出された最小の評価値とを比較し（Ｓ１３８）、前者が後者以上の場合（Ｓ１３８のＮ）、以下に示すステップＳ１３９およびステップＳ１４０をスキップする。前者が後者未満の場合（Ｓ１３８のＹ）、現在の仮の動きベクトルを現時点での候補とし（Ｓ１３９）、現在の評価値を上記最小の評価値とする（Ｓ１４０）。
【０１５２】
図１６は、図１５のフローチャートのステップＳ１３６の幾何学変換動き補償処理の手順を示すフローチャートである。代表点動きベクトル設定部１３１は、対象ブロックの各代表点の動きベクトルを設定する（Ｓ１３６１）。第２の非代表点動きベクトル算出部１３２は、当該対象ブロックの各画素の動きベクトルを算出する（Ｓ１３６２）。第２の予測部１３３は、各画素毎の動きベクトルに応じた補間信号を取得する（Ｓ１３６３）。
【０１５３】
以上説明したように実施の形態１によれば、幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させることができる。すなわち、幾何学変換による動き補償予測を使用する動きベクトルを予測符号化することにより、符号量を削減することができる。また、平行移動による動き補償予測と幾何学変換による動き補償予測とを併用すれば、符号量の圧縮効率をさらに向上させることができる。その際、平行移動による動き補償予測に係る動きベクトルと、幾何学変換による動き補償予測に係る動きベクトルの符号化方法を共通化することにより、これら２つの予測方法が混在しても、既存の動きベクトルの予測符号化方法をそのまま転用することができる。
【０１５４】
また、幾何学変換による動き補償予測方法が採用されたブロックでも、平行移動による動き補償予測と同様に、対象ブロックの代表画素、周囲のブロックまたは周囲の画素の動きベクトルから予測ベクトルを予測し、差分ベクトルを算出することができる。これにより、平行移動による動き補償予測と幾何学変換による動き補償予測を併用しても、動きベクトルの符号量の増大を抑制することができる。ＤＭＶ４モードにおいては、第１代表画素ａ、第２代表画素ｂおよび第３代表画素ｃの動きベクトルから上記式（９）または上記式（１０）により、第４代表画素ｄの予測ベクトルを算出することにより、差分ベクトルの値を小さくし、動きベクトルの符号量の増大を抑制することができる。また、ＤＭＶ３モードにおいては、第１代表画素ａ、第２代表画素ｂおよび第３代表画素ｃの動きベクトルから上記式（１）または上記式（２）により、第４代表画素ｄの動きベクトルを算出することにより、動きベクトルの符号量の増大を抑制することができる。
【０１５５】
図１７は、本発明の実施の形態２に係る画像復号装置２００の構成を示すブロック図である。当該画像復号装置２００は、実施の形態１に係る画像符号化装置１００により生成された符号化ストリームを復号する。当該符号化ストリームにおいて、上述したように、平行移動による動き補償予測と幾何学変換による動き補償予測が併用されている場合もあるし、幾何学変換による動き補償予測が単独で使用されている場合もある（イントラ符号化については考慮せず）。
【０１５６】
画像復号装置２００は、入力スイッチ２０９、第１符号化ビット列復号部２０１、第２符号化ビット列復号部２０２、第３符号化ビット列復号部２０３、動きベクトル算出部２１５、平行移動動き補償予測部２０４、幾何学変換動き補償予測部２０５、予測誤差信号復号部２０６、復号画像信号生成部２０７、復号画像バッファ２０８、切替制御部２１４、第１予測部スイッチ２１０、第２予測部スイッチ２１１、第３予測部スイッチ２１２および第４予測部スイッチ２１３を備える。
【０１５７】
これらの構成は、ハードウェア的には、任意のプロセッサ、メモリ、その他のＬＳＩで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【０１５８】
第１符号化ビット列復号部２０１、第２符号化ビット列復号部２０２、第３符号化ビット列復号部２０３は、符号化ストリームに含まれる、予測方法情報、差分ベクトルおよび予測誤差信号を復号する。上述したように、符号化ストリームには差分ベクトルが符号化されている。差分ベクトルは、対象ブロックの動きベクトルと、対象ブロックの代表画素、隣接ブロックまたは隣接画素の動きベクトルから予測された予測ベクトルとの差分である。動きベクトル算出部２１５は、符号化側と全く同一のルールにより、対象ブロックの代表画素、隣接ブロックまたは隣接画素の動きベクトルから予測ベクトルを算出し、当該予測ベクトルに、復号された差分ベクトルを加算することにより、予測符号化された対象ブロックまたはその代表画素の動きベクトルを復号する。
【０１５９】
平行移動動き補償予測部２０４は、対象画像内の対象ブロックと、その対象ブロックと平行移動した関係にある参照画像内の参照ブロックとの間の動きベクトル、および参照ブロックの画像信号から予測信号を生成する。幾何学変換動き補償予測部２０５は、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の動きベクトル、および参照ブロックの画像信号から予測信号を生成する。
【０１６０】
上述したように、対象ブロックの頂点が代表画素に選定されており、上記符号化ストリームには、それぞれの代表画素の動きベクトルが含まれる。幾何学変換動き補償予測部２０５は、対象ブロックの複数の代表画素以外の画素の動きベクトルを、それら複数の代表画素の動きベクトルを用いた補間により算出する。たとえば、代表画素以外の画素の動きベクトルを、上記式（５）〜（８）に示した演算式により算出する。
【０１６１】
切替制御部２１４は、第１符号化ビット列復号部２０１により復号された予測方法情報に応じて、対象画像内の対象ブロックごとに、平行移動動き補償予測部２０４による予測方法と、幾何学変換動き補償予測部２０５による予測方法とのいずれを用いるか指定する。
【０１６２】
以下、より具体的に説明する。第１符号化ビット列復号部２０１、第２符号化ビット列復号部２０２、および第３符号化ビット列復号部２０３には、実施の形態１に係る画像符号化装置１００により生成された符号化ストリームに含まれる符号化ビット列が、入力スイッチ２０９を介して選択的に入力される。
【０１６３】
第１符号化ビット列復号部２０１は、入力スイッチ２０９を介して供給される符号化ビット列を、算術復号化などのエントロピー復号化により復号し、予測方法情報を取得する。上述したように、この予測方法情報には平行移動動き補償および幾何学変換動き補償のどちらで符号化されているかを示す情報が含まれているとともに、平行移動動き補償の場合、１６×１６、１６×８、８×１６および８×８モードのいずれを用いるかという情報が含まれている。幾何学変換動き補償で符号化されている場合、ＤＭＶ４モード、ＤＭＶ３モード、ＤＭＶ２Ｖモード、ＤＭＶ２Ｈモード、ＤＭＶ２Ａモード、ＤＭＶ２Ｂモード、ＤＭＶ１Ａモード、ＤＭＶ１Ｂモード、ＤＭＶ１Ｃモード、ＤＭＶ１ＤモードおよびＤＭＶ０モードのどのモードで符号化されているかの情報も含まれる。
【０１６４】
第２符号化ビット列復号部２０２は、入力スイッチ２０９を介して供給される符号化ビット列を、算術復号化などのエントロピー復号化により復号し、差分ベクトルを取得する。前述の通り、差分ベクトルは、対象ブロックの代表画素、隣接ブロックまたは隣接画素の動きベクトルから算出される予測ベクトルと復号対象ブロックの動きベクトルとの差分である。なお、平行移動による動き補償予測で用いる動きベクトルと、幾何学変換による動き補償予測で用いる動きベクトルとが混在されて符号化されている場合、符号化側と同様に復号側でも混在された差分ベクトルから予測方法情報に応じて動きベクトルを復号する。
【０１６５】
第１符号化ビット列復号部２０１により復号された予測方法情報により、復号対象ブロックがイントラ符号化、平行移動による動き補償予測および幾何学変換による動き補償予測のどの手法を、どの参照画像を用いて、どのようなブロック単位で選択、組み合わせられているかが分かる。
【０１６６】
切替制御部２１４は、第１符号化ビット列復号部２０１から供給される予測方法情報に応じて、第１予測部スイッチ２１０、第２予測部スイッチ２１１、第３予測部スイッチ２１２および第４予測部スイッチ２１３を切り替える。対象ブロックの予測方法として、平行移動による動き補償予測方法が選択されている場合、平行移動動き補償予測部２０４の経路が選択されるよう切り替え、幾何学変換による動き補償予測方法が選択されている場合、幾何学変換動き補償予測部２０５の経路が選択されるよう切り替える。
【０１６７】
動きベクトル算出部２１５は、第１符号化ビット列復号部２０１から供給される予測方法情報に応じて、すでに符号化・復号されている対象ブロックの他の代表画素、隣接ブロックまたは隣接画素の動きベクトルから対象ブロックの動きベクトルを予測することにより予測ベクトルを算出する。そして、当該予測ベクトルに、第２符号化ビット列復号部２０２から供給される差分ベクトルを加算することにより動きベクトルを算出する。動きベクトル算出部２１５は、当該動きベクトルを第２予測部スイッチ２１１を介して、平行移動動き補償予測部２０４または幾何学変換動き補償予測部２０５に供給する。動きベクトル算出部２１５での予測ベクトルの算出は、画像符号化装置１００の差分ベクトル算出部１１４での予測ベクトルの算出と同一の方法で行う。平行移動動き補償予測の場合、対象ブロックの動きベクトルが取得でき、幾何学変換動き補償の場合、対象ブロックの代表画素の動きベクトルが算出される。
【０１６８】
平行移動動き補償予測部２０４は、復号画像バッファ２０８から第４予測部スイッチ２１３を介して供給される参照画像とすべき復号画像、および第２符号化ビット列復号部２０２から第２予測部スイッチ２１１を介して供給される復号された動きベクトルを用いて、平行移動による動き補償予測を行う。
【０１６９】
幾何学変換動き補償予測部２０５は、復号画像バッファ２０８から第４予測部スイッチ２１３を介して供給される参照画像とすべき復号画像、および動きベクトル算出部２１５から第２予測部スイッチ２１１を介して供給される、復号された複数の代表画素の動きベクトルを用いて全画素の動きベクトルを補間により算出する。その際、上記式（１）〜（１１）を参照して説明した、画像符号化装置１００の幾何学変換動き補償予測部１０３と同一の処理方法を用いることができる。幾何学変換動き補償予測部２０５は、それら画素ごとの動きベクトルに応じて画素ごとに動き補償を行うことにより、幾何学変換による動き補償予測を行う。
【０１７０】
第３符号化ビット列復号部２０３は、入力スイッチ２０９を介して供給される符号化ビット列を順次復号し、符号化された予測誤差信号を取得する。予測誤差信号復号部２０６は、第３符号化ビット列復号部２０３から供給された符号化された予測誤差信号に対して、逆量子化、逆直交変換などの伸張復号処理を行い、復号された予測誤差信号を取得する。
【０１７１】
復号画像信号生成部２０７は、予測信号、および予測誤差信号から画像信号を生成する。より具体的には、復号画像信号生成部２０７は、切替制御部２１４により指定された予測方法に応じて、平行移動動き補償予測部２０４または幾何学変換動き補償予測部２０５から第３予測部スイッチ２１２を介して供給される予測信号に、予測誤差信号復号部２０６から供給される予測誤差信号を重畳して、復号画像信号を生成する。復号画像信号生成部２０７は、その復号画像信号をブロック単位で、復号画像バッファ２０８に順次格納する。
【０１７２】
図１８は、本発明の実施の形態２に係る画像復号装置２００における、マクロブロックの復号処理手順を示すフローチャートである。第１符号化ビット列復号部２０１は、入力スイッチ２０９を介して供給される符号化ビット列を復号して、予測方法情報、予測ベクトルの算出方法を示す情報などを取得する（Ｓ２０１）。なお、第１代表画素ａの予測ベクトルの算出方法、第２代表画素ｂの予測ベクトルの算出方法、第３代表画素ｃの予測ベクトルの算出方法、第４代表画素ｄの予測ベクトルの算出方法をフラグにより切り替える場合、この第１符号化ビット列復号部２０１で復号する。
【０１７３】
第２符号化ビット列復号部２０２は、入力スイッチ２０９を介して供給される符号化ビット列を復号して、差分ベクトルを取得する（Ｓ２０２）。なお、予測方法情報が幾何学変換による動き補償予測を示す場合、その予測方法情報に応じて０〜４本の差分ベクトルを復号する。ＤＭＶ４モードでは、４つの頂点ａ、ｂ、ｃ、ｄに対応する４つの代表画素ａ、ｂ、ｃ、ｄのそれぞれの差分ベクトルを復号する。ＤＭＶ３モードでは、３つの頂点ａ、ｂ、ｃに対応する３つの代表画素ａ、ｂ、ｃのそれぞれの差分ベクトルを復号する。ＤＭＶ２Ｖモードでは、２つの頂点ａ、ｃに対応する代表画素ａ、ｃのそれぞれの差分ベクトルを復号する。ＤＭＶ２Ｈモードでは、２つの頂点ａ、ｂに対応する代表画素ａ、ｂのそれぞれの差分ベクトルを復号する。ＤＭＶ２Ａモードでは、２つの頂点ａ、ｄに対応する代表画素ａ、ｄのそれぞれの差分ベクトルを復号する。ＤＭＶ２Ｂモードでは、２つの頂点ｂ、ｃに対応する代表画素ｂ、ｃのそれぞれの差分ベクトルを復号する。ＤＭＶ１Ａモードでは、頂点ａに対応する代表画素ａの差分ベクトルだけを復号する。ＤＭＶ１Ｂモードでは、頂点ｂに対応する代表画素ｂの差分ベクトルだけを復号する。ＤＭＶ１Ｃモードでは、頂点ｃに対応する代表画素ｃの差分ベクトルだけを復号する。ＤＭＶ１Ｄモードでは、頂点ｄに対応する代表画素ｄの差分ベクトルだけを符号化する。ＤＭＶ０モードでは、どの代表画素の差分ベクトルも復号しない。
【０１７４】
動きベクトル算出部２１５は、対象ブロックの代表画素、周辺ブロックまたは周辺画素の動きベクトルから予測ベクトルを算出する（Ｓ２０３）。画像符号化装置１００の差分ベクトル算出部１１４での予測ベクトルの算出と同一の方法で行う。さらに、動きベクトル算出部２１５は、第１符号化ビット列復号部２０１から供給される予測方法情報に応じて、その予測ベクトルに第２符号化ビット列復号部２０２から供給される差分ベクトルを加算して、対象ブロックまたは対象画素の動きベクトルを算出する（Ｓ２０４）。ただし、第２符号化ビット列復号部２０２で差分ベクトルが復号されなかった代表点については、予測ベクトルを動きベクトルとする。
【０１７５】
切替制御部２１４は、復号された予測方法情報に応じて、対象ブロックの動き補償予測方法を特定する（Ｓ２０５）。その予測方法が、平行移動による動き補償予測方法の場合（Ｓ２０５の平行）、平行移動動き補償予測部２０４は、復号画像バッファ２０８から供給される参照画像信号とすべき復号画像信号を、第２符号化ビット列復号部２０２から供給される動きベクトルを用いて、平行移動による動き補償をし、予測信号を生成する（Ｓ２０６）。
【０１７６】
切替制御部２１４により特定された予測方法が、幾何学変換による動き補償予測方法の場合（Ｓ２０５の幾何）、幾何学変換動き補償予測部２０５は、復号画像バッファ２０８から供給される参照画像信号とすべき復号画像信号を、第２符号化ビット列復号部２０２から供給される動きベクトルを用いて、幾何学変換による動き補償をし、予測信号を生成する（Ｓ２０７）。
【０１７７】
第３符号化ビット列復号部２０３は、入力スイッチ２０９を介して供給される符号化ビット列を復号して、符号化された予測誤差信号を取得する（Ｓ２０８）。復号画像信号生成部２０７は、取得された予測誤差信号を復号する（Ｓ２０９）。復号画像信号生成部２０７は、予測誤差信号復号部２０６により復号された予測誤差信号と、平行移動動き補償予測部２０４または幾何学変換動き補償予測部２０５により生成された予測信号とを重畳して、復号画像信号を生成する（Ｓ２１０）。復号画像信号生成部２０７は、生成した復号画像信号を、復号画像バッファ２０８に蓄積する（Ｓ２１１）。この復号画像バッファ２０８に蓄積された復号画像信号は、平行移動動き補償予測部２０４および幾何学変換動き補償予測部２０５における参照画像信号として利用される。
【０１７８】
図１９は、図１８のフローチャートのＳ２０３において、対象ブロックの第１代表画素ａの動きベクトルの値に応じて、第２代表画素ｂの予測ベクトルの算出方法を切り替える処理が発生する場合の手順を示すフローチャートである。動きベクトル算出部２１５は、対象ブロックの第１代表画素ａの動きベクトルと、上隣のブロックの第４代表画素ｄの動きベクトルまたは上隣のブロックＢの動きベクトルとを比較する（Ｓ２０３１）、その差が上記第１設定値以下の場合（Ｓ２０３２のＹ）、上隣のブロックＢの第４代表画素ｄの動きベクトルまたは上隣のブロックＢの動きベクトルを、対象ブロックの第２代表画素ｂの予測ベクトルとして採用する（Ｓ２０３３）。上記第１設定値より大きい場合（Ｓ２０３２のＮ）、対象ブロックの第１代表画素ａの動きベクトルを、対象ブロックの第２代表画素ｂの予測ベクトルとして採用する（Ｓ２０３４）。
【０１７９】
図２０は、図１８のフローチャートのＳ２０３において、対象ブロックの第１代表画素ａの動きベクトルの値に応じて、第３代表画素ｃの予測ベクトルの算出方法を切り替える処理が発生する場合の手順を示すフローチャートである。動きベクトル算出部２１５は、対象ブロックの第１代表画素ａの動きベクトルと、左隣のブロックＡの代表画素ｄの動きベクトルまたは上隣のブロックの動きベクトルとを比較する（Ｓ２０３５）。その差が上記第２設定値以下の場合（Ｓ２０３６のＹ）、左隣のブロックＡの第４代表画素ｄの動きベクトルまたは上隣のブロックの動きベクトルを、対象ブロックの第３代表画素ｃの予測ベクトルとして採用する（Ｓ２０３７）。上記第２設定値より大きい場合（Ｓ２０３６のＮ）、対象ブロックの第１代表画素ａの動きベクトルを、対象ブロックの第３代表画素ｃの予測ベクトルとして採用する（Ｓ２０３８）。
【０１８０】
なお、第２代表画素ｂの予測ベクトルの算出方法や第３代表画素ｃの予測ベクトルの算出方法をフラグにより切り替える場合、第１符号化ビット列復号部２０１で復号したフラグに応じて切り替える。
【０１８１】
以上説明したように実施の形態２によれば、実施の形態１に係る画像符号化装置１００により生成された符号化ストリームを、効率的に復号することができる。これにより、上述した実施の形態１に係る画像符号化装置１００により実現される効果を、復号側からサポートし、その効果を担保することができる。すなわち、幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させる効果を、復号側からサポートし、その効果を担保することができる。また、平行移動による動き補償予測と幾何学変換による動き補償予測を併用する画像符号化方式においても、符号量の圧縮効率を向上させる効果を、復号側からサポートし、その効果を担保することができる。また、既存の画像復号装置との調和性および互換性が高く、導入コストを抑制することができる。
【０１８２】
上述した実施の形態では、対象ブロックの形状が正方形である例を説明した。この点、対象ブロックの形状は、三角形、平行四辺形、台形など、他の形状でもよい。この場合、上記代表画素は、当該形状の頂点または頂点近傍に設定されることが好ましい。
【符号の説明】
【０１８３】
１００  画像符号化装置、  １０１  画像バッファ、  １０２  平行移動動き補償予測部、  １０３  幾何学変換動き補償予測部、  １０４  予測方法決定部、  １０５  予測誤差信号生成部、  １０６  予測誤差信号符号化部、  １０７  第１符号化ビット列生成部、  １０８  第２符号化ビット列生成部、  １０９  第３符号化ビット列生成部、  １１０  予測誤差信号復号部、  １１１  復号画像信号生成部、  １１２  復号画像バッファ、  １１３  出力スイッチ、  １２１  幾何学変換動きベクトル検出部、  １２２  第１の非代表点動きベクトル算出部、  １２３  第１の予測部、  １３１  代表点動きベクトル設定部、  １３２  第２の非代表点動きベクトル算出部、  １３３  第２の予測部、  １３４  ブロックマッチング部、  １３５  評価部、  １５０  符号化部、  ２００  画像復号装置、  ２０１  第１符号化ビット列復号部、  ２０２  第２符号化ビット列復号部、  ２０３  第３符号化ビット列復号部、  ２０４  平行移動動き補償予測部、  ２０５  幾何学変換動き補償予測部、  ２０６  予測誤差信号復号部、  ２０７  復号画像信号生成部、  ２０８  復号画像バッファ、  ２０９  入力スイッチ、  ２１０  第１予測部スイッチ、  ２１１  第２予測部スイッチ、  ２１２  第３予測部スイッチ、  ２１３  第４予測部スイッチ、  ２１４  切替制御部、  ２１５  動きベクトル算出部。
【図１】
0005716437.tif 000003
【図２】
0005716437.tif 000004
【図３】
0005716437.tif 000005
【図４】
0005716437.tif 000006
【図５】
0005716437.tif 000007
【図６】
0005716437.tif 000008
【図７】
0005716437.tif 000009
【図８】
0005716437.tif 000010
【図９】
0005716437.tif 000011
【図１０】
0005716437.tif 000012
【図１１】
0005716437.tif 000013
【図１２】
0005716437.tif 000014
【図１３】
0005716437.tif 000015
【図１４】
0005716437.tif 000016
【図１５】
0005716437.tif 000017
【図１６】
0005716437.tif 000018
【図１７】
0005716437.tif 000019
【図１８】
0005716437.tif 000020
【図１９】
0005716437.tif 000021
【図２０】
0005716437.tif 000022