(57)【要約】      （修正有）【課題】動きベクトルの符号化効率を著しく低下させない動きベクトル予測方法を提供する。【解決手段】動きベクトル予測方法において、３つ以上の候補動きベクトルの少なくとも１つ以上の候補動きベクトルを符号化対象ブロックの周辺予測ブロックの大きさに応じて決定し、前記３つ以上の候補動きベクトルを用いて予測動きベクトルを導出する。これにより、動きベクトルの符号化効率は著しく低下しない。予測動きベクトルはメディアンフィルタを用いて導出してもよい。【選択図】図４
2011091696.tif 000002
【特許請求の範囲】
【請求項１】
３つ以上の候補動きベクトルの少なくとも１つ以上の候補動きベクトルを符号化対象ブロックの周辺予測ブロックの大きさに応じて決定し、前記３つ以上の候補動きベクトルを用いて予測動きベクトルを導出する動きベクトル予測方法。
【請求項２】
前記予測動きベクトルをメディアンフィルタを用いて導出する請求項１に記載の動きベクトル予測方法。
【請求項３】
前記候補動きベクトルに、前記候補動きベクトルが属する予測ブロックと前記符号化対象ブロックとの距離に応じた重み付けを施す請求項１または２に記載の動きベクトル予測方法。
【請求項４】
前記符号化対象ブロックの大きさと前記周辺予測ブロックの大きさとによって、前記候補動きベクトルの数を可変とする請求項１から３のいずれかに記載の動きベクトル予測方法。
【請求項５】
符号化対象ブロックの大きさと２つ以上の候補動きベクトルが属する予測ブロックの大きさとによって、予測動きベクトルを決定する動きベクトル予測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き補償予測を用いた画像処理方法において動きベクトルを差分符号化する際の動きベクトル予測方法に関する。
【背景技術】
【０００２】
動画像圧縮符号化方法としてＭＰＥＧが知られている。ＭＰＥＧでは画像間の相関性を利用する動き補償予測を用いて圧縮効率を上げている。ＭＰＥＧでは画像は水平１６画素×垂直１６画素からなるマクロブロックと呼ばれるブロックに分割され、マクロブロック単位で動き補償予測が行われる。動き補償予測では予測されるブロック毎に動きベクトルが検出される。
【０００３】
ＭＰＥＧではある符号化対象ブロックの動きベクトルを符号化する場合、最初に周辺ブロックから予測動きベクトルを導出する。そして、符号化対象ブロックの動きベクトルと予測動きベクトルから差分動きベクトルを算出し、差分動きベクトルをエントロピー符号化する。周辺ブロックから予測動きベクトルを導出するのは、動きベクトルが周辺ブロックと相関性を持つと考えられるためである。差分動きベクトルの絶対値が小さいほど動きベクトルの圧縮効率は高くなる。
【０００４】
予測動きベクトルの算出方法について説明する。ＭＰＥＧやＭＰＥＧ−２では図２０に示すように、符号化対象ブロックＸの左側ブロックＡの動きベクトルＭＶＡが予測動きベクトルｐｍｖとして用いられる（下記の式（１）参照）。
【０００５】
【数１】
2011091696.tif 000003
【０００６】
次に、ワンセグ放送やブルーレイディスクで利用されているＭＰＥＧ−４ＡＶＣの予測動きベクトルの算出方法について説明する。ＭＰＥＧ−４ＡＶＣでは動き補償予測を行う予測ブロックサイズは多数定義されている。すなわち、水平１６画素×垂直１６画素のブロックに加え、水平１６画素×垂直８画素、水平８画素×垂直１６画素、水平８画素×垂直８画素、水平８画素×垂直４画素、水平４画素×垂直８画素、水平４画素×垂直４画素の予測ブロックが定義されている。
【０００７】
このように、ＭＰＥＧ−４ＡＶＣでは小さなブロックを利用することにより動き補償予測の効率を向上させている。ところが、動き補償予測ブロックサイズが小さくなると動きベクトルの数が増加するため、動きベクトルの圧縮効率の向上が課題となる。そこで、ＭＰＥＧ−４ＡＶＣでは予測動きベクトルの精度向上のため、水平方向の相関性に加えて垂直方向の相関性も考慮している。
【０００８】
ＭＰＥＧ−４ＡＶＣの予測ベクトルの算出方法に利用される周辺ブロックを図２１に示す。周辺ブロックとして、基本的にはブロックＡ、ブロックＢ、ブロックＣが利用される。ブロックＣが無効である場合、ブロックＤが用いられる。
【０００９】
次に、ＭＰＥＧ−４ＡＶＣの予測動きベクトルの算出方法を図２２及び、図２３のフローチャートを用いて説明する。
【００１０】
ブロックＡは符号化対象ブロックＸの左上の画素ｘが水平方向に−１画素だけ移動した位置の画素ａが含まれるブロックとなる。ブロックＡの動きベクトルをＭＶＡとする（ステップＳ１０００）。
【００１１】
ブロックＢは符号化対象ブロックＸの左上の画素ｘが垂直方向に−１画素だけ移動した位置の画素ｂが含まれるブロックとなる。ブロックＢの動きベクトルをＭＶＢとする（ステップＳ１１００）。
【００１２】
ブロックＣが有効である場合、ブロックＣは符号化対象ブロックＸの左上の画素ｘが垂直方向に−１画素だけ移動し、水平方向にブロックＸの水平方向の大きさ（長さ）だけ移動した位置の画素ｃが含まれるブロックとなる。ブロックＣの動きベクトルをＭＶＣとする（ステップＳ１２００）。
【００１３】
ブロックＣが無効である場合、ブロックＤは符号化対象ブロックＸの左上の画素ｘが垂直方向に−１画素だけ移動し、水平方向に−１画素だけ移動した位置の画素ｄが含まれるブロックとなる。ブロックＤの動きベクトルをＭＶＤとする（ステップＳ１３００）。ＭＶＤをＭＶＣに置き換える（ステップＳ１４００）。
【００１４】
上述したようにして決まった動きベクトルＭＶＡ、ＭＶＢ、及びＭＶＣの成分毎にメディアンフィルタを適用して下記の式（２）に示すように予測動きベクトルｐｍｖを求める（ステップＳ１５００）。ｐｍｖ（ｘ）はｐｍｖの水平方向成分であり、ｐｍｖ（ｙ）はｐｍｖの垂直方向成分である。
【００１５】
【数２】
2011091696.tif 000004
【００１６】
なお、特許文献１及び２に符号化対象ブロックの周辺ブロック用いて予測動きベクトルを算出する方法が開示されている。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００７−３３６６０３号公報
【特許文献２】特開２００４−７２７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
以下、ＭＰＥＧ−４ＡＶＣのように予測ブロックサイズが可変であって、周辺の複数の動きベクトルにメディアンフィルタを作用させて予測動きベクトルを導出する動きベクトル予測方法についての課題を図２４を用いて説明する。
【００１９】
符号化対象のブロックＸは水平８画素×垂直８画素のブロックサイズであるとし、動きベクトルＭＶＸを持つ。周辺ブロックＡ、Ｂ、Ｃはそれぞれ動きベクトルＭＶＡ、ＭＶＢ、ＭＶＣを持つ。ここで、周辺ブロックＢ、Ｃが水平１６画素×垂直１６画素の予測ブロックＵに含まれる場合、ブロックＢとブロックＣの動きベクトルはブロックＵの動きベクトルＭＶＵと同じになる。そのため、メディアンフィルタの結果、符号化対象のブロックＸの予測動きベクトルは必然的にブロックＵの動きベクトルと同一となる。
【００２０】
ＭＶＡ（ｘ，ｙ）＝（３，３）、ＭＶＵ（ｘ，ｙ）＝（１２８，１２８）であるとき、式（２）から予測動きベクトルは下記の式（３）のように導出される。
【００２１】
【数３】
2011091696.tif 000005
【００２２】
したがって、符号化対象ブロックＸの動きベクトルＭＶＸ（ｘ，ｙ）＝（４，４）に対する差分動きベクトルｄｍｖは下記の式（４）のようになる。
【００２３】
【数４】
2011091696.tif 000006
【００２４】
この結果、差分動きベクトルｄｍｖは元の動きベクトルＭＶＸよりも遥かに大きくなって、動きベクトルの圧縮効率が著しく低下する。
【００２５】
このように、予測ブロックサイズが可変であって３つ以上の周辺ブロックからの候補動きベクトルにメディアンフィルタを用いて予測動きベクトルを導出する動きベクトル予測方法を用いる場合、候補動きベクトルの過半数が同じ予測ブロックに属し、その予測ブロックの動きベクトルが符号化対象の動きベクトルと相関性が低いとき、動きベクトルの符号化効率が著しく低下してしまう課題がある。
【００２６】
この課題は、従来の動きベクトル予測方法では、予測動きベクトルを符号化対象の予測ブロックサイズに応じて決定しており、周辺の予測ブロックサイズを考慮していないために発生する。
【００２７】
本発明は、動きベクトルの符号化効率を著しく低下させない動きベクトル予測方法を提供することを目的とする。
【課題を解決するための手段】
【００２８】
上記課題を解決し上記目的を達成するために、本発明の動きベクトル予測方法は、３つ以上の候補動きベクトルの少なくとも１つ以上の候補動きベクトルを符号化対象ブロックの周辺予測ブロックの大きさに応じて決定し、前記３つ以上の候補動きベクトルを用いて予測動きベクトルを導出する。前記予測動きベクトルをメディアンフィルタを用いて導出してもよい。前記候補動きベクトルに、前記候補動きベクトルが属する予測ブロックと前記符号化対象ブロックとの距離に応じた重み付けを施してもよい。前記符号化対象ブロックの大きさと前記周辺予測ブロックの大きさとによって、前記候補動きベクトルの数を可変としてもよい。
【００２９】
また、本発明の動きベクトル予測方法は、符号化対象ブロックの大きさと２つ以上の候補動きベクトルが属する予測ブロックの大きさとによって、予測動きベクトルを決定する。
【発明の効果】
【００３０】
本発明は、動きベクトルの符号化効率を著しく低下させない動きベクトル予測方法を提供することができる。
【００３１】
本発明の動きベクトル予測方法を用いれば、複数の候補動きベクトルが必ず異なる予測ブロックの動きベクトルになるようにすることで、特定の予測ブロックの動きベクトルが必ず選択されることを回避し、メディアンフィルタが適切に作用するようにすることができる。また、符号化対象ブロックと周辺予測ブロックとの距離に基づいて周辺予測ブロックの候補動きベクトルを重み付けすることで、候補動きベクトルの精度を向上させることができる。
【図面の簡単な説明】
【００３２】
【図１】本実施の形態の動画像符号化装置の構成図である。
【図２】ピクチャとマクロブロックの関係を説明するための図である。
【図３】マクロブロック内のブロックの組み合わせの例を説明するための図である。
【図４】本実施の形態の予測動きベクトル算出に利用するブロックを説明するための図である。
【図５】本実施の形態の周辺ブロックの決定を説明するための図である。
【図６】本実施の形態の予測動きベクトル算出を示すフローチャートである。
【図７】本実施の形態の動きベクトルの重み付け関数を示す第１の図である。
【図８】本実施の形態の動きベクトルの重み付け関数を示す第２の図である。
【図９】本実施の形態の動きベクトルの重み付け関数を示す第３の図である。
【図１０】本実施の形態の周辺ブロックを説明するための図である。
【図１１】変形例１の予測動きベクトル算出に利用するブロックを説明するための図である。
【図１２】変形例１の周辺ブロックの決定を説明するための図である。
【図１３】変形例１の予測動きベクトル算出を示すフローチャートである。
【図１４】変形例２の予測動きベクトル算出に利用するブロックを説明するための図である。
【図１５】変形例２の周辺ブロックの決定を説明するための図である。
【図１６】変形例２の予測動きベクトル算出を示すフローチャートである。
【図１７】変形例３の予測動きベクトル算出を説明するための図である。
【図１８】変形例３の予測動きベクトル算出を示すフローチャートである。
【図１９】本実施の形態の動画像復号装置の構成図である。
【図２０】ＭＰＥＧ−１／２で予測動きベクトル算出に利用するブロックを説明するための図である。
【図２１】ＭＰＥＧ−４ＡＶＣで予測動きベクトル算出に利用するブロックを説明する図ための図である。
【図２２】ＭＰＥＧ−４ＡＶＣで周辺ブロックの決定を説明するための図である。
【図２３】ＭＰＥＧ−４ＡＶＣで予測動きベクトル算出を示すフローチャートである。
【図２４】ＭＰＥＧ−４ＡＶＣでの予測動きベクトル算出における課題を説明するための図である。
【発明を実施するための形態】
【００３３】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００３４】
（動画像符号化装置）
本実施の形態の動きベクトル予測方法を図１を用いて説明する。図１は本実施の形態の動きベクトル予測方法を実行する動画像符号化装置の構成図である。本実施の形態の動画像符号化装置は、図１に示すように、減算部１００、予測誤差符号部１１０、符号列生成部１２０、予測誤差復号部１３０、加算部１４０、動き補償予測決定部１５０、動き検出部１６０、フレームメモリ１７０、動きベクトル符号部１８０、動きベクトル記憶部１９０、動き補償形状符号部２００、及び、動き補償形状記憶部２１０を有する。
【００３５】
入力画像１０は減算部１００及び動き検出部１６０に供給される。
【００３６】
＜符号化単位＞
本実施の形態の符号化は、１６画素×１６画素のマクロブロック（ＭＢ）を単位として行なわれる。そのため、入力画像は、図２に示すように、複数のマクロブロックに分割される。図２は９６画素×６４画素の画像を水平方向に６つ、垂直方向に４つのマクロブロックに分割した例を示している。
【００３７】
マクロブロックは１６画素×１６画素、１６画素×８画素、８画素×１６画素、８画素×８画素、８画素×４画素、４画素×８画素、４画素×４画素のブロックの組み合わせで動き補償予測される。ブロックの組み合わせの例を図３に示す。図３（ａ）は１６画素×１６画素のブロック１個を有するマクロブロックを示している。図３（ｂ）は４画素×４画素のブロック１６個を有するマクロブロックを示している。図３（ｃ）は１６画素×８画素のブロック１個と、８画素×８画素のブロック１個と、８画素×４画素のブロック１個と、４画素×４画素のブロック２個とを有するマクロブロックを示している。
【００３８】
本実施の形態ではマクロブロックの大きさを１６画素×１６画素とするが、マクロブロックの大きさは、８画素×８画素、３２画素×３２画素、６４画素×６４画素、３２画素×１６画素、６４画素×３２画素などであっても構わない。また、本実施の形態では各ブロックには１つの動きベクトルが割り当てられるとするが、ＭＰＥＧでよく用いられる両方向予測で利用する場合には各ブロックに２つの動きベクトルが割り当てられる。
【００３９】
＜動き検出部１６０＞
動き検出部１６０は、入力画像１０とフレームメモリ１７０より供給される参照画像を用いて、１６画素×１６画素、１６画素×８画素、８画素×１６画素、８画素×８画素、８画素×４画素、４画素×８画素、４画素×４画素の全てのブロックに関する動きベクトルを求める。動き検出部１６０は全てのブロックに関する動きベクトルを動き補償予測決定部１５０に供給する。
【００４０】
＜動き補償予測決定部１５０＞
動き補償予測決定部１５０は、フレームメモリ１７０より供給される参照画像と動き検出部１６０より供給される全てのブロックに関する動きベクトルを用いて予測画像を生成し、入力画像と絶対誤差差分和（ＳＡＤ）が最も小さくなるブロックの組み合わせを選択する。動き補償予測決定部１５０は選択したブロックの組み合わせから生成された予測画像を減算部１００及び加算部１４０に供給する。また、動き補償予測決定部１５０は選択したブロックの組み合わせを動き補償形状記憶部２１０に送り、選択したブロックの組み合わせに関係する動きベクトルを動きベクトル記憶部１９０に送る。
【００４１】
＜減算部１００＞
減算部１００は入力画像１０と動き補償予測決定部１５０から供給される予測画像の予測誤差を求め、予測誤差符号部１１０に供給する。
【００４２】
＜予測誤差符号部１１０＞
予測誤差符号部１１０は減算部１００から供給される予測誤差を直交変換や量子化などの処理を行って予測誤差符号データに変換し、符号列生成部１２０及び予測誤差復号部１３０に供給する。
【００４３】
＜予測誤差復号部１３０＞
予測誤差復号部１３０は予測誤差符号部１１０から供給される予測誤差符号データを逆量子化や逆直交変換などの処理を行って予測誤差に変換し、予測誤差を加算部１４０に供給する。
【００４４】
＜加算部１４０＞
加算部１４０は予測誤差復号部１３０から供給される予測誤差と動き補償予測決定部１５０から供給される予測画像から復号画像を求め、フレームメモリ１７０に供給する。
【００４５】
＜フレームメモリ１７０＞
フレームメモリ１７０は加算部１４０から供給される復号画像を保持し、動き補償予測決定部１５０及び動き検出部１６０に供給する。
【００４６】
＜動きベクトル記憶部１９０＞
動きベクトル記憶部１９０は動き補償予測決定部１５０から供給される動きベクトルを記憶し、その動きベクトルを動きベクトル符号部１８０に供給する。なお、動きベクトル記憶部１９０は入力画像の全てのマクロブロックに関する動きベクトルを記憶しており、現在符号化しているマクロブロックの周辺マクロブロックの動きベクトルを動きベクトル符号部１８０に供給する。
【００４７】
また、本実施の形態では動きベクトル記憶部１９０は入力画像の全てのマクロブロックに関する動きベクトルを記憶するとしたが、動きベクトル記憶部１９０の目的は現在符号化しているマクロブロックの周辺ブロックの動きベクトルを動きベクトル符号部１８０に供給することであり、それを実現することができれば入力画像の全てのマクロブロックに関する動きベクトルを記憶する必要はない。
【００４８】
＜動き補償形状記憶部２１０＞
動き補償形状記憶部２１０は動き補償予測決定部１５０から供給されるブロックの組み合わせを記憶し、そのブロックの組み合わせを動き補償形状符号部２００に供給する。なお、動き補償形状記憶部２１０は入力画像の全てのマクロブロックに関するブロックの組み合わせを記憶しており、現在符号化しているマクロブロックの周辺マクロブロックのブロックの組み合わせを動きベクトル符号部１８０に供給する。
【００４９】
また、本実施の形態では動き補償形状記憶部２１０は入力画像の全てのマクロブロックに関するブロックの組み合わせを記憶するとしたが、動き補償形状記憶部２１０の目的は現在符号化しているマクロブロックの周辺のブロックの組み合わせを動きベクトル符号部１８０に供給することであり、それを実現することができれば入力画像の全てのマクロブロックに関するブロックの組み合わせを記憶する必要はない。
【００５０】
＜動きベクトル符号部１８０＞
動きベクトル符号部１８０は動きベクトル記憶部１９０から供給される現在符号化しているマクロブロックの動きベクトル、周辺マクロブロックの動きベクトルと動き補償形状記憶部２１０から供給される現在符号化しているマクロブロックのブロックの組み合わせ、周辺マクロブロックのブロックの組み合わせを用いて予測動きベクトルを求め、現在符号化しているマクロブロックの動きベクトルと予測動きベクトルから差分ベクトルを求めて差分ベクトル符号データに変換し、符号列生成部１２０に供給する。
【００５１】
＜動き補償形状符号部２００＞
動き補償形状符号部２００は動き補償形状記憶部２１０から供給されるブロックの組み合わせをマクロブロックタイプとして符号化し、符号列生成部１２０に供給する。
【００５２】
＜符号列生成部１２０＞
符号列生成部１２０は予測誤差符号部１１０から供給される予測誤差符号データ、動きベクトル符号部１８０から供給される差分ベクトル符号データ、動き補償形状記憶部２１０から供給されるマクロブロックタイプをその他の制御情報などと共に出力符号列に変換して出力する。
【００５３】
以下、本実施の形態における動きベクトル予測方法について図４、図５、及び図６を用いて説明する。
【００５４】
本実施の形態における動きベクトル予測方法で利用する周辺ブロックの様子を図４に示す。図４はブロックＡの形状の違いによる周辺ブロックの様子の違いを示している。本実施の形態ではＭＰＥＧ−４ＡＶＣと同様にブロックＤを定義する。ただし、ブロックＤは常に利用する必要はなく、ブロックＣが無効である場合にはＭＶＣを固定ベクトル、例えば（０，０）としてもよい。
【００５５】
次に、本実施の形態における予測動きベクトルの算出方法を図５及び、図６のフローチャートを用いて説明する。
【００５６】
ブロックＡは、符号化対象ブロックＸの左上の画素ｘが水平方向に−１画素だけ移動した位置の画素ａが含まれるブロックとなる。ブロックＡの動きベクトルをＭＶＡ’とする（ステップＳ１００）。
【００５７】
ブロックＢは、符号化対象ブロックＸの左上の画素ｘが垂直方向に−１画素だけ移動した位置の画素ｂが含まれるブロックとなる。ブロックＢの動きベクトルをＭＶＢ’とする（ステップＳ１１０）。
【００５８】
ブロックＣは、ブロックＢの右下の画素ｂｒが水平方向に＋１画素だけ移動した位置の画素ｃが含まれるブロックとなる（ステップＳ１２０）。
【００５９】
ブロックＣが有効であるかどうかを判定する（ステップＳ１３０）。
【００６０】
ブロックＣが有効である場合、ブロックＣの動きベクトルをＭＶＣ’’とする（ステップＳ１４０）。また、ブロックＣの画素ｃとブロックＸの右上の画素ｘｒとの距離ｄｘｃをｄｘとする（ステップＳ１５０）。
【００６１】
続いてブロックＣが無効である場合について説明する。
【００６２】
画素ｘの垂直座標ｘ（ｙ）がブロックＡの右上の画素ａｒの垂直座標ａｒ（ｙ）と等しいかどうかを判断する（ステップＳ１６０）。
【００６３】
画素ｘの垂直座標ｘ（ｙ）がブロックＡの右上の画素ａｒの垂直座標ａｒ（ｙ）と等しい場合、つまりブロックＡの上端がブロックＸの上端と等しい場合（図５（ａ））、ブロックＤはブロックＢの左下の画素ｂｌが水平方向に−１画素だけ移動した位置の画素ｄが含まれるブロックとなる。ブロックＤの動きベクトルをＭＶＤとする（ステップＳ１７０）。
【００６４】
一方、画素ｘの垂直座標ｘ（ｙ）がブロックＡの右上の画素ａｒの垂直座標ａｒ（ｙ）よりも大きい場合（図５（ｂ））、ブロックＤはブロックＢの画素ｂが水平方向に−（ブロックＡの水平方向の大きさ（長さ））だけ移動した位置の画素ｄが含まれるブロックとなる。ブロックＤの動きベクトルをＭＶＤとする（ステップＳ１８０）。
【００６５】
ＭＶＤをＭＶＣ’’に置き換える（ステップＳ１９０）。また、ブロックＤの画素ｄとブロックＸの左上の画素ｘとの距離ｄｘｄをｄｘとする（ステップＳ２００）。
【００６６】
続いてＭＶＣの距離補正について説明する。
【００６７】
下記の式（５）にしたがってＭＶＣ’’の水平垂直成分に距離補正を加えてＭＶＣ’を求める（ステップＳ２１０）。
【００６８】
【数５】
2011091696.tif 000007
【００６９】
本実施の形態では、動きベクトルの重み付け関数ｗ１は図７に示す関数である。図７に示す関数は重み付け値が距離ｄｘに応じて変化し、マクロブロックの水平方向の大きさ（長さ）である１６画素までは線形に重み付ける。重み付け関数ｗ１は、ブロックＣまたはブロックＤの距離がブロックＸから大きくなれば相関性が低くなると考えて、ブロックＸからのブロックＣまたはブロックＤの距離に応じて動きベクトルＭＶＣ’’を重み付けするように定義されている。このような性質を持つ関数であれば図７に示す関数でなくてもよい。
【００７０】
重み付けは、図８に示すように、距離ｄｘに応じてブロックＢとブロックＣを単純に切り替えてもよい。また、水平成分のみまたは垂直成分のみに距離補正を加えることも可能である。なお、重み付け関数ｗ１は符号化してビットストリーム中に含めておき、復号の際に解読して利用することも可能である。
【００７１】
次に、下記の式（６）にしたがってＭＶＡ’、ＭＶＢ’、ＭＶＣ’にサイズ補正を加えてＭＶＡ、ＭＶＢ、ＭＶＣを求める（ステップＳ２２０）。
【００７２】
【数６】
2011091696.tif 000008
【００７３】
本実施の形態では、動きベクトルの重み付け関数ｗ２を図９に示すように定義する。重み付け関数ｗ２は、周辺のブロックサイズがブロックＸと近いほど動きの相関性も高くなることを考慮して、ブロックＸと周辺のブロックサイズに応じて周辺の動きベクトルを重み付ける。このような性質を持つ関数であれば図９に示す関数でなくてもよい。
【００７４】
なお、重み付け関数のｗ２は符号化してビットストリーム中に含めておき、復号の際に解読して利用することも可能である。
【００７５】
最後に、動きベクトルＭＶＡ、ＭＶＢ、及びＭＶＣの成分毎にメディアンフィルタを適用して下記の式（７）のように予測動きベクトルｐｍｖを求める（ステップＳ２３０）。ｐｍｖ（ｘ）はｐｍｖの水平方向成分であり、ｐｍｖ（ｙ）はｐｍｖの垂直方向成分である。
【００７６】
【数７】
2011091696.tif 000009
【００７７】
予測動きベクトルｐｍｖは下記の式（８）のように導出される。
【００７８】
【数８】
2011091696.tif 000010
【００７９】
そして、符号化対象ブロックＸの動きベクトルＭＶＸ（ｘ，ｙ）＝（４，４）に対する差分動きベクトルｄｍｖは下記の式（９）のようになる。
【００８０】
【数９】
2011091696.tif 000011
【００８１】
上述したように、本実施の形態における動きベクトル予測方法によれば符号化対象ブロックよりも大きな予測ブロックサイズを持つ周辺ブロックが存在する場合でも好適な予測動きベクトルを求めることができる。
【００８２】
なお、本実施の形態では予測動きベクトルの算出に用いる周辺ブロックの数を３としたが、図１０のように周辺ブロックを４つ、５つやそれ以上にすることもできる。周辺ブロックの数が偶数である場合、メディアンフィルタは、中央値の２つの平均値をｐｍｖとして出力してもよい。
【００８３】
以下では、上述した実施の形態の形態を実施例１と記載する。
【００８４】
（変形例１）
動きベクトル予測方法の変形例１について図１１、図１２、及び図１３を用いて説明する。
【００８５】
変形例１は、図４、図５及び図６に示す実施例１とは、図１１に示すように、ブロックＤの位置だけが異なる。以下では、ブロックＤの位置の決定方法について図１２、及び図１３のフローチャートを用いて説明する。
【００８６】
画素ｘの垂直座標ｘ（ｙ）がブロックＡの右上の画素ａｒの垂直座標ａｒ（ｙ）と等しいかどうかを判断する（ステップＳ１６０）。
【００８７】
画素ｘの垂直座標ｘ（ｙ）がブロックＡの右上の画素ａｒの垂直座標ａｒ（ｙ）と等しい場合、つまりブロックＡの上端がブロックＸの上端と等しい場合（図１１（ａ）、図１２（ａ））、ブロックＤはブロックＢの左下の画素ｂｌが水平方向に−１画素だけ移動した位置のた画素ｄが含まれるブロックとなる。ブロックＤの動きベクトルをＭＶＤとする（ステップＳ１７０）。
【００８８】
一方、画素ｘの垂直座標ｘ（ｙ）がブロックＡの右上の画素ａｒの垂直座標ａｒ（ｙ）よりも大きい場合（図１１（ｂ）図１２（ｂ））、ブロックＤはブロックＡの画素ａｒが垂直方向に−１画素だけ移動した位置の画素ｄが含まれるブロックとなる。ブロックＤの動きベクトルをＭＶＤとする（ステップＳ１８１）。
【００８９】
変形例１の動きベクトル予測方法によれば符号化対象ブロックよりも大きな予測ブロックサイズを持つ周辺ブロックが存在する場合でも好適な予測動きベクトルを求めることができる。
【００９０】
（変形例２）
変形例２の動きベクトル予測方法について図１４、図１５、及び図１６を用いて説明する。
【００９１】
変形例２では図１４に示すように符号化対象ブロックよりも周辺の予測ブロックの大きさが小さい。変形例２では周辺ブロックＡ及びＢが符号化対象ブロックＸよりも小さい場合について説明する。
【００９２】
変形例２は、実施例１とＭＶＡ’及びＭＶＢ’の算出方法だけが異なり、ＭＶＡ’及びＭＶＡ’の算出に複数の予測ブロックを用いるのが特徴である。ＭＶＡ’及びＭＶＢ’の算出方法について図１４、図１５、及び図１６のフローチャートを用いて説明する。
【００９３】
ブロックＡ１は符号化対象ブロックＸの左上の画素ｘが水平方向に−１画素だけ移動した位置の画素ａが含まれるブロックとなる。ブロックＡ１の動きベクトルをＭＶＡ１とする（ステップＳ１０１〜ステップ１０３の１巡目）。
【００９４】
ブロックＡ１の右下の画素ａ１ｂの垂直成分ａ１ｂ（ｙ）が符号化対象ブロックＸの左下の画素ｘｂの垂直成分ｘｂ（ｙ）よりも小さいため（ステップＳ１０４の１巡目）、ブロックＡ２は画素ａ１ｂが垂直方向に＋１画素だけ移動した位置の画素ａ２が含まれるブロックとなる。ブロックＡ２の動きベクトルをＭＶＡ２とする（ステップＳ１０１〜ステップ１０３の２巡目）。
【００９５】
ブロックＡ２の右下の画素ａ２ｂの垂直成分ａ２ｂ（ｙ）が符号化対象ブロックＸの左下の画素ｘｂの垂直成分ｘｂ（ｙ）よりも小さいため（ステップＳ１０４の２巡目）、ブロックＡ３は画素ａ２ｂが垂直方向に＋１だけ画素だけ移動した位置の画素ａ３が含まれるブロックとなる。ブロックＡ３の動きベクトルをＭＶＡ３とする（ステップＳ１０１〜ステップ１０３の３巡目）。
【００９６】
ブロックＡ３の右下の画素ａ３ｂの垂直成分ａ３ｂ（ｙ）が符号化対象ブロックＸの左下の画素ｘｂの垂直成分ｘｂ（ｙ）と等しいため（ステップＳ１０４の３巡目）、次にＭＶＡ’を下記の式（１０）により算出する（ステップＳ１０５）。
【００９７】
【数１０】
2011091696.tif 000012
【００９８】
ブロックＢ１は符号化対象ブロックＸの左上の画素ｘが垂直方向に−１画素だけ移動した位置の画素ｂが含まれるブロックとなる。ブロックＢの動きベクトルをＭＶＢ’とする（ステップＳ１１１〜ステップ１１３の１巡目）。
【００９９】
ブロックＢ１の左下の画素ｂ１ｒの水平成分ｂ１ｒ（ｘ）が符号化対象ブロックＸの左上の画素ｘｒの垂直成分ｘｒ（ｘ）よりも小さいため（ステップＳ１１４の１巡目）、ブロックＢ２は画素ｂ１ｒが水平方向に＋１画素だけ移動した位置の画素ｂ２が含まれるブロックとなる。ブロックＢ２の動きベクトルをＭＶＢ２とする（ステップＳ１１１〜ステップ１１３の２巡目）。
【０１００】
ブロックＢ２の左下の画素ｂ２ｒの水平成分ｂ２ｒ（ｘ）が符号化対象ブロックＸの左上の画素ｘｒの垂直成分ｘｒ（ｘ）よりも小さいため（ステップＳ１１４の２巡目）、ブロックＢ３は画素ｂ２ｒが水平方向に＋１画素だけ移動した位置の画素ｂ３が含まれるブロックとなる。ブロックＢ３の動きベクトルをＭＶＢ３とする（ステップＳ１１１〜ステップ１１３の３巡目）。
【０１０１】
ブロックＢ３の左下の画素ｂ３ｒの水平成分ｂ３ｒ（ｘ）が符号化対象ブロックＸの左上の画素ｘｒの垂直成分ｘｒ（ｘ）よりも小さいため（ステップＳ１１４の３巡目）、ブロックＢ４は画素ｂ３ｒが水平方向に＋１画素だけ移動した位置の画素ｂ４が含まれるブロックとなる。ブロックＢ４の動きベクトルをＭＶＢ４とする（ステップＳ１１１〜ステップ１１３の４巡目）。
【０１０２】
ブロックＢ４の右下の画素ｂ４ｒの水平成分ｂ４ｒ（ｙ）が符号化対象ブロックＸの左下の画素ｘｒの垂直成分ｘｒ（ｘ）と等しいため（ステップＳ１１４の４巡目）、次にＭＶＢ’を下記の式（１１）により算出する（ステップＳ１１５）。
【０１０３】
【数１１】
2011091696.tif 000013
【０１０４】
変形例２の動きベクトル予測方法によれば符号化対象ブロックよりも小さな予測ブロックサイズを持つ周辺ブロックが多数存在する場合、周辺ブロックの動きベクトルをより多く利用することで、好適な予測動きベクトルを求めることができる。
【０１０５】
なお、変形例２ではＭＶＡ’やＭＶＢ’の算出に平均値を用いたが、メディアンフィルタなどを用いてもよい。
【０１０６】
（変形例３）
変形例３による動きベクトル予測方法について図１７、及び図１８を用いて説明する。
【０１０７】
実施例１とは予測動きベクトルの決定方法が異なる。
【０１０８】
図１７において、ブロックＸの水平方向の大きさをＷｉｄｔｈ（Ｘ）、垂直方向の大きさをＨｅｉｇｈｔ（Ｘ）、ブロックＡの垂直方向の大きさをＨｅｉｇｈｔ（Ａ）、ブロックＢの水平方向の大きさをＷｉｄｔｈ（Ｂ）とする。このときの予測動きベクトルの決定方法について図１８を用いて説明する。
【０１０９】
Ｗｉｄｔｈ（Ｂ）がＷｉｄｔｈ（Ｘ）の２倍以上で、Ｈｅｉｇｈｔ（Ａ）がＨｅｉｇｈｔ（Ｘ）の２倍よりも小さい場合、ＭＶＡを予測動きベクトルとする（ステップＳ２２１）。Ｈｅｉｇｈｔ（Ａ）がＨｅｉｇｈｔ（Ｘ）の２倍以上で、Ｗｉｄｔｈ（Ｂ）がＷｉｄｔｈ（Ｘ）の２倍より小さい場合、ＭＶＢを予測動きベクトルとする（ステップＳ２２２）。いずれでもない場合、実施例１と同じ方法で予測動きベクトルを決定する。なお、図１７のブロックＡ、ブロックＢと同様に、ブロックＣの水平方向の大きさＷｉｄｔｈ（Ｃ）を比較対照に加えることも可能である。また、上記のいずれの場合でもない場合には、従来のＭＰＥＧ−４ＡＶＣによる予測動きベクトルを用いることも可能である。
【０１１０】
変形例３の動きベクトル予測方法によれば符号化対象ブロックよりも大きな予測ブロックサイズを持つ周辺ブロックが存在する場合でも好適な予測動きベクトルを求めることができる。
【０１１１】
なお、変形例３ではブロックの大きさの比較の基準を２倍としたが、基準は２倍に限定するものではなく、３倍や４倍などでもよい。
【０１１２】
（動画像復号装置）
本実施の形態の動画像復号装置を図１９を用いて説明する。図１９は本実施の形態の動画像復号装置の構成図である。本実施の形態の動画像復号装置は、図１９に示すように、符号列解析部５００、予測誤差復号部５１０、加算部５２０、動き補償予測部５３０、フレームメモリ５４０、動きベクトル復号部５５０、動きベクトル記憶部５６０、動き補償形状復号部５７０、及び、動き補償形状記憶部５８０を有する。
【０１１３】
入力符号列５０は符号列解析部５００に供給される。
【０１１４】
＜符号化単位＞
本実施の形態の復号化は１６画素×１６画素のマクロブロックを単位として行なわれる。
【０１１５】
＜符号列解析部５００＞
符号列解析部５００は入力符号列５０から予測誤差符号データ、差分ベクトル符号データ、及びマクロブロックタイプを取り出し、それぞれを予測誤差復号部５１０、動きベクトル記憶部５６０、及び動き補償形状復号部５７０に供給する。
【０１１６】
＜予測誤差復号部５１０＞
予測誤差復号部５１０は符号列解析部５００から供給される予測誤差符号データを逆量子化や逆直交変換などの処理を行って予測誤差に変換し、予測誤差を加算部５２０に供給する。
【０１１７】
＜動き補償形状復号部５７０＞
動き補償形状復号部５７０は符号列解析部５００から供給されるマクロブロックタイプをブロックの組み合わせに変換し、動き補償形状記憶部５８０及び動き補償予測部５３０に供給する。
【０１１８】
＜動き補償形状記憶部５８０＞
動き補償形状記憶部５８０は動き補償形状復号部５７０から供給されるブロックの組み合わせを記憶し、そのブロックの組み合わせを動きベクトル復号部５５０に供給する。なお、動き補償形状記憶部５８０は復号画像の全てのマクロブロックに関するブロックの組み合わせを記憶しており、現在復号しているマクロブロックの周辺マクロブロックのブロックの組み合わせを動きベクトル復号部５５０に供給する。
【０１１９】
＜動きベクトル復号部５５０＞
動きベクトル復号部５５０は符号列解析部５００から供給される差分ベクトル符号データを差分ベクトルに変換する。動きベクトル復号部５５０は動きベクトル記憶部５６０から供給される周辺マクロブロックの動きベクトル、動き補償形状記憶部５８０から供給される現在符号化しているマクロブロックのブロックの組み合わせ、周辺マクロブロックのブロックの組み合わせを用いて予測動きベクトルを求め、差分ベクトルと予測ベクトルから動きベクトルを求め、動き補償予測部５３０及び動きベクトル記憶部５６０に供給する。
【０１２０】
＜動きベクトル記憶部５６０＞
動きベクトル記憶部５６０は動きベクトル復号部５５０から供給される動きベクトルを記憶する。なお、動きベクトル記憶部５６０は入力画像の全てのマクロブロックに関する動きベクトルを記憶しており、現在符号化しているマクロブロックの周辺マクロブロックの動きベクトルを動きベクトル復号部５５０に供給する。
【０１２１】
＜動き補償予測部５３０＞
動き補償予測部５３０はフレームメモリ５４０から供給される参照画像、動き補償形状復号部５７０から供給されるブロックの組み合わせ、及び動きベクトル復号部５５０より供給される動きベクトルを用いて予測画像を生成し、加算部５２０に供給する。
【０１２２】
＜加算部５２０＞
加算部５２０は予測誤差復号部５１０から供給される予測誤差と動き補償予測部５３０から供給される予測画像から復号画像を求め、フレームメモリ５４０に供給すると共に、画像出力６０として出力する。
【０１２３】
＜フレームメモリ５４０＞
フレームメモリ５４０は加算部５２０から供給される復号画像を保持し、動き補償予測部５３０に供給する。
【０１２４】
動きベクトル予測方法は実施例１と同じである。
【符号の説明】
【０１２５】
１０  入力画像、  ２０  出力符号列、  １００  減算部、  １１０  予測誤差符号部、  １２０  符号列生成部、  １３０  予測誤差復号部、  １４０  加算部、  １５０  動き補償予測決定部、  １６０  動き検出部、  １７０  フレームメモリ、  １８０  動きベクトル符号部、  １９０  動きベクトル記憶部、  ２００  動き補償形状符号部、  ２１０  動き補償形状記憶部、  ５０  入力符号列、  ６０  画像出力、  ５００  符号列解析部、  ５１０  予測誤差復号部、  ５２０  加算部、  ５３０  動き補償予測部、  ５４０  フレームメモリ、  ５５０  動きベクトル復号部、  ５６０  動きベクトル記憶部、  ５７０  動き補償形状復号部、  ５８０  動き補償形状記憶部。
【図１】
2011091696.tif 000014
【図２】
2011091696.tif 000015
【図３】
2011091696.tif 000016
【図６】
2011091696.tif 000017
【図７】
2011091696.tif 000018
【図８】
2011091696.tif 000019
【図９】
2011091696.tif 000020
【図１３】
2011091696.tif 000021
【図１６】
2011091696.tif 000022
【図１８】
2011091696.tif 000023
【図１９】
2011091696.tif 000024
【図２３】
2011091696.tif 000025
【図４】
2011091696.tif 000026
【図５】
2011091696.tif 000027
【図１０】
2011091696.tif 000028
【図１１】
2011091696.tif 000029
【図１２】
2011091696.tif 000030
【図１４】
2011091696.tif 000031
【図１５】
2011091696.tif 000032
【図１７】
2011091696.tif 000033
【図２０】
2011091696.tif 000034
【図２１】
2011091696.tif 000035
【図２２】
2011091696.tif 000036
【図２４】
2011091696.tif 000037