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