(57)【特許請求の範囲】
【請求項１】
符号化対象ブロックを所定の仮境界で複数の仮領域に分割する仮領域分割部と、
前記符号化対象ブロックに隣接する符号化済みブロックと接している部分が最も少ない第１の仮領域の動きベクトルを、画像間の動き推定により検出する第１の動きベクトル検出部と、
前記第１の仮領域以外の仮領域のそれぞれに対して、前記符号化対象ブロックに隣接する符号化済みブロックの動き情報を用いて動きベクトルを検出する第２の動きベクトル検出部と、
各仮領域の動きベクトルを用いて、参照画像から前記符号化対象ブロックに対応した複数の予測ブロックを生成し、複数の予測ブロックのアクティビティに基づいて本境界を決定し、前記各予測ブロックを前記本境界で分割して得た領域を前記各予測ブロック間で結合させることにより、合成予測ブロックを生成する動き補償部と、
前記合成予測ブロックを前記符号化対象ブロックより減算した予測差分ブロックと、第１の仮領域の動きベクトルとを符号化する符号化部とを備えることを特徴とする動画像符号化装置。
【請求項２】
前記第２の動きベクトル検出部は、前記仮領域分割部によって分割される前記符号化対象ブロックの分割方向に応じて、前記符号化対象ブロックに隣接する符号化済みブロックの中からブロックを選択し、選択されたブロックの動き情報を用いて動きベクトルを検出する請求項１に記載の動画像符号化装置。
【請求項３】
前記第２の動きベクトル検出部は、前記符号化対象ブロックに隣接する符号化済みブロックの動きベクトルから中間値ベクトルを生成し、前記符号化対象ブロックに隣接する符号化済みブロックの中から当該中間値ベクトルに最も近い動きベクトルを持つブロックを選択し、選択されたブロックの動き情報を用いて動きベクトルを検出する請求項１に記載の動画像符号化装置。
【請求項４】
前記予測ブロックのアクティビティは、前記予測ブロックが分割される本境界を介して隣接するそれぞれの画素の画素値を評価した境界アクティビティであることを特徴とする請求項１から３のいずれかに記載の動画像符号化装置。
【請求項５】
符号化対象ブロックを所定の仮境界で複数の仮領域に分割するステップと、
前記符号化対象ブロックに隣接する符号化済みブロックと接している部分が最も少ない第１の仮領域の動きベクトルを、画像間の動き推定により検出するステップと、
前記第１の仮領域以外の仮領域のそれぞれに対して、前記符号化対象ブロックに隣接する符号化済みブロックの動き情報を用いて動きベクトルを検出するステップと、
各仮領域の動きベクトルを用いて、参照画像から前記符号化対象ブロックに対応した複数の予測ブロックを生成し、複数の予測ブロックのアクティビティに基づいて本境界を決定し、前記各予測ブロックを前記本境界で分割して得た領域を前記各予測ブロック間で結合させることにより、合成予測ブロックを生成するステップと、
前記合成予測ブロックを前記符号化対象ブロックより減算した予測差分ブロックと、第１の仮領域の動きベクトルとを符号化するステップとを備えることを特徴とする動画像符号化方法。
【請求項６】
符号化対象ブロックを所定の仮境界で複数の仮領域に分割する機能と、
前記符号化対象ブロックに隣接する符号化済みブロックと接している部分が最も少ない第１の仮領域の動きベクトルを、画像間の動き推定により検出する機能と、
前記第１の仮領域以外の仮領域のそれぞれに対して、前記符号化対象ブロックに隣接する符号化済みブロックの動き情報を用いて動きベクトルを検出する機能と、
各仮領域の動きベクトルを用いて、参照画像から前記符号化対象ブロックに対応した複数の予測ブロックを生成し、複数の予測ブロックのアクティビティに基づいて本境界を決定し、前記各予測ブロックを前記本境界で分割して得た領域を前記各予測ブロック間で結合させることにより、合成予測ブロックを生成する機能と、
前記合成予測ブロックを前記符号化対象ブロックより減算した予測差分ブロックと、第１の仮領域の動きベクトルとを符号化する機能とをコンピュータに実現させることを特徴とする動画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化技術に関し、特に動き補償予測を利用した動画像の符号化技術に関する。
【背景技術】
【０００２】
ＭＰＥＧ（Moving Picture Experts Group）に代表される動画像の圧縮符号化では、画面間の相関を利用して符号量を圧縮する動き補償予測が多く用いられる。ＭＰＥＧ等で用いられる動き補償予測では、所定サイズのブロック毎に、既に復号済の参照画像から、符号化対象画像と参照画像の相対位置関係を示す動きベクトルを用いて予測画像を生成する。その後、符号化側では、符号化対象原画像と動き補償予測により生成された予測画像との差分である予測誤差を算出し、予測誤差のみを復号側に伝送する。これにより、動き補償予測を用いない場合と比較して伝送する符号量を大幅に削減できる。
【０００３】
一般に、符号化・復号処理はマクロブロック（所定ブロックサイズの画素群、例えば１６×１６）単位で行われる。動き補償予測もマクロブロック単位で行われることが多いが、この場合、マクロブロックよりも小さな物体等の動きを捉えることが難しく、結果として符号化効率が低下する。そこで、動き補償予測をさらに効率良く機能させる方法として、マルチブロックパターン動き補償予測が用いられる。
【０００４】
マルチブロックパターン動き補償予測では、マクロブロック内をさらにサブブロックに分割し、サブブロック毎に異なる動きベクトルを用いて動き補償予測を行うことが可能である。使用する動き補償予測ブロックの分割パターンは、符号化側と復号側の同一規則として予め定義しておく。符号化側では定義されたブロックパターンの中から動き補償予測のブロックパターンを選択し、ブロックパターンの選択情報を復号側に伝送する。復号側では、受信したブロックパターンの選択情報に基づき動き補償予測を行う。マルチブロックパターン動き補償予測では、符号化側で動き補償予測に最適なブロックパターンを選択すると、動き補償予測後の予測誤差が減少し、符号化効率が向上する。
【０００５】
具体的なブロックパターンの例として、ＩＳＯ／ＩＥＣとＩＴＵ−Ｔの合同ビデオチーム（ＪＶＴ）が国際標準化したＭＰＥＧ−４  ＡＶＣ(Advanced Video Coding)では、マクロブロック（１６×１６ブロック）内をさらに１６×８／８×１６／８×８／８×４／４×８／４×４のブロックパターンに分割して動き補償予測を行うことが可能である。符号化側では、ブロックパターンを選択し、ブロックパターンの選択情報をビットストリーム内に符号化する。復号側では、ビットストリーム内に符号化されているブロックパターンに応じてマクロブロックを領域分割し、分割された領域毎に動き補償予測を行う。
【０００６】
更に、特許文献１や特許文献２には、さまざまな動き補償予測形状パターンを定義し、より柔軟な形状で動き補償予測を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４０２５５７０号公報
【特許文献２】再公表特許第ＷＯ２００３−０２６３１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１や特許文献２に開示された方法では、定義する動き補償予測形状パターンを増やした場合、形状パターン数が増加するにつれ、伝送する形状パターンの選択情報に費やす符号量が多くなってしまう。つまり、形状パターンが増加したことによる予測誤差の減少と、形状パターン選択に関する符号量増加はトレードオフ関係にあるため、単に形状パターン数を増やすだけでは全体的な符号化効率を向上させることは難しい。
【０００９】
このように従来の動画像符号化／復号では、予め定義した形状パターンの動き補償予測しか行えないため、最適な形状で動き補償予測を行うことができず、符号化効率を向上させることができない。また、定義する動き補償予測形状パターンを増やした場合、動き補償予測形状パターンの選択に関する付加情報の符号量が増加するため、全体的な符号化効率が向上するとは限らない。
【００１０】
本発明はこうした状況に鑑みてなされたものであり、その目的は、動き補償予測のブロックパターンに関する付加情報の符号量を増加させることなく、さまざまなブロックパターンでの動き補償予測を可能にすることで、予測誤差を減少させて符号化効率を向上させる技術を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明のある態様の動画像符号化装置は、符号化対象ブロックを所定の仮境界で複数の仮領域に分割する仮領域分割部（１０１）と、前記符号化対象ブロックに隣接する符号化済みブロックと接している部分が最も少ない第１の仮領域の動きベクトルを、画像間の動き推定により検出する第１の動きベクトル検出部（１０２）と、前記第１の仮領域以外の仮領域のそれぞれに対して、前記符号化対象ブロックに隣接する符号化済みブロックの動き情報を用いて動きベクトルを検出する第２の動きベクトル検出部（１１０）と、各仮領域の動きベクトルを用いて、参照画像から前記符号化対象ブロックに対応した複数の予測ブロックを生成し、複数の予測ブロックのアクティビティに基づいて本境界を決定し、前記各予測ブロックを前記本境界で分割して得た領域を前記各予測ブロック間で結合させることにより、合成予測ブロックを生成する動き補償部（１０３）と、前記合成予測ブロックを前記符号化対象ブロックより減算した予測差分ブロックと、第１の仮領域の動きベクトルとを符号化する符号化部（１０５）とを備える。
【００１２】
本発明の別の態様は、動画像符号化方法である。この方法は、符号化対象ブロックを所定の仮境界で複数の仮領域に分割するステップと、前記符号化対象ブロックに隣接する符号化済みブロックと接している部分が最も少ない第１の仮領域の動きベクトルを、画像間の動き推定により検出するステップと、前記第１の仮領域以外の仮領域のそれぞれに対して、前記符号化対象ブロックに隣接する符号化済みブロックの動き情報を用いて動きベクトルを検出するステップと、各仮領域の動きベクトルを用いて、参照画像から前記符号化対象ブロックに対応した複数の予測ブロックを生成し、複数の予測ブロックのアクティビティに基づいて本境界を決定し、前記各予測ブロックを前記本境界で分割して得た領域を前記各予測ブロック間で結合させることにより、合成予測ブロックを生成するステップと、前記合成予測ブロックを前記符号化対象ブロックより減算した予測差分ブロックと、第１の仮領域の動きベクトルとを符号化するステップとを備える。
【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によれば、動き補償予測のブロックパターンに関する付加情報の符号量を増加させることなく、さまざまなブロックパターンでの動き補償予測を可能にすることで、予測誤差を減少させて符号化効率を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１の動画像符号化装置の構成を示すブロック図である。
【図２】実施の形態１の動画像復号装置の構成を示すブロック図である。
【図３】マクロブロックを水平方向に２分割するパターンを説明する図である。
【図４】マクロブロックを垂直方向に２分割するパターンを説明する図である。
【図５】マクロブロックの仮領域毎に検出される動きベクトルを示す図である。
【図６】符号化対象ブロックの仮領域の分割方向と、第２動きベクトル検出部１１０が行う動き検出に用いられる隣接ブロックの関係を説明する図である。
【図７】従来のＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４におけるマクロブロック単位の動き検出の方法を説明する図である。
【図８】本実施の形態の第２動きベクトル検出部１１０による動き検出の方法を説明する図である。
【図９】マクロブロックを分割する方向にもとづいて、動きベクトルを参照する周囲マクロブロックを選択する方法を説明する図である。
【図１０】動きベクトルを参照する周囲マクロブロックを選択する別の方法を説明する図である。
【図１１】仮領域毎に検出された動きベクトルから生成される動き補償予測画像を示す図である。
【図１２】各仮領域の動きベクトルから生成される動き補償予測画像を合成して得られる合成動き補償予測画像を示す図である。
【図１３】各仮領域の動きベクトルから生成される動き補償予測画像を合成して合成動き補償予測画像を生成する方法を説明する図である。
【図１４】動き検出の３つのモードと、各モードで算出された動きベクトルの中から最適値を求める処理を示すフローチャートである。
【図１５】図１の本領域分割・動き補償部による本境界の決定手順を説明するフローチャートである。
【図１６】動き補償予測画像についての本境界決定に関するアクティビティを説明する図である。
【図１７】実施の形態２の動画像符号化装置の第２動きベクトル検出部１１０による第２動きベクトルの検出方法を説明する図である。
【図１８】実施の形態１〜２の動画像符号化装置により符号化される動画像のビットストリームの第一のシンタックスパターンを示す図である。
【図１９】マクロブロック単位で動き補償予測の形状を復号側で自動的に決定するかどうかを示す第２フラグを伝送する第二のシンタックスパターンを示す。
【図２０】スライスレベルで動き補償予測の形状を復号側で自動的に決定するアルゴリズムを切り替える第三のシンタックスパターンを示す図である。
【図２１】マクロブロック単位で領域分割の有無と方向を復号側で自動的に決定するかどうかを示す第４フラグを伝送する第四のシンタックスパターンを示す図である。
【図２２】図２１の第４フラグの値の意味の一例を示したテーブルである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について図面を参照して説明する。
【００１７】
（実施の形態１）
図１は、実施の形態１の動画像符号化装置の構成を示すブロック図である。実施の形態１の動画像符号化装置は、仮領域分割部１０１、第１動きベクトル検出部１０２、本領域分割・動き補償部１０３、直交変換・量子化部１０４、可変長符号化部１０５、逆量子化・逆直交変換部１０６、メモリ１０７、減算部１０８、加算部１０９、および第２動きベクトル検出部１１０を備える。
【００１８】
仮領域分割部１０１は、例えば１６×１６マクロブロックなどの符号化対象となっている画素群について、任意の境界で領域を分割する。この領域分割は動きベクトル検出のための符号化側の独自手法であり、どのような境界で領域分割しても構わないが、動き補償予測の効率が向上する境界で領域分割するのが望ましい。ここでは、最も単純な仮領域分割として、水平方向又は垂直方向にのみマクロブロックを２分割する場合を例として挙げて説明する。
【００１９】
図３（ａ）〜（ｃ）は、マクロブロックを水平方向に２分割するパターンを説明する図である。図３（ａ）は、上から４画素目の水平境界でマクロブロックを１６×４の上側領域と１６×１２の下側領域に２分割したパターンであり、図３（ｂ）は、上から８画素目の水平境界でマクロブロックを１６×８の上側領域と１６×８の下側領域に２分割したパターンであり、図３（ｃ）は、上から１２画素目の水平境界でマクロブロックを１６×１２の上側領域と１６×４の下側領域に２分割したパターンである。
【００２０】
図４（ａ）〜（ｃ）は、マクロブロックを垂直方向に２分割するパターンを説明する図である。図４（ａ）は、左から４画素目の垂直境界でマクロブロックを４×１６の左側領域と１２×１６の右側領域に２分割したパターンであり、図４（ｂ）は、左から８画素目の垂直境界でマクロブロックを８×１６の左側領域と８×１６の右側領域に２分割したパターンであり、図４（ｃ）は、左から１２画素目の垂直境界でマクロブロックを１２×１６の左側領域と４×１６の右側領域に２分割したパターンである。
【００２１】
仮領域分割部１０１により決められるマクロブロックの境界を「仮境界」（provisional boundary）と呼び、仮境界により分割されたマクロブロック内の各領域を「仮領域」（provisional region）と呼ぶ。
【００２２】
ここでは、水平方向または垂直方向に２分割するパターンを３つ示したが、水平境界または垂直境界の候補位置を増やして４以上の分割パターンを設けてもよい。また、斜め方向の境界で分割したり、折れ曲がった境界で分割してもよい。
【００２３】
仮領域分割部１０１は、符号化対象となる原画像信号について、各水平境界に関する水平アクティビティ、または各垂直境界に関する垂直アクティビティを計算する。後述のように、折れ曲がった境界でマクロブロックを分割した場合は、折れ曲がった境界に沿ってアクティビティを計算する。
【００２４】
画像信号のアクティビティとは、画素に対して何らかの演算を施した値のことである。マクロブロックを領域分割する境界に関するアクティビティとして、たとえば、境界をまたぐ２画素間の絶対差分和（ＳＡＤ）を用いることができる。例えば、マクロブロック内のX座標をｉ、Y座標をｊとして、点（ｉ，ｊ）における画素値をＡｉ，ｊとすると、上からｊ画素目の水平境界ｊの水平アクティビティは以下のように定義される。
水平アクティビティ＝Σｉ＝０１５｜Ａｉ，ｊ−Ａｉ，ｊー１｜
ここで、Σｉ＝０１５は、添え字ｉを０から１５まで動かした場合の総和である。
【００２５】
ただし、アクティビティは絶対差分和（ＳＡＤ）でなくてもよい。以下に示すような絶対二乗和（ＳＳＤ）であってもよい。
水平アクティビティ＝Σｉ＝０１５（Ａｉ，ｊ−Ａｉ，ｊー１）２
【００２６】
同様に、マクロブロックの左からｉ画素目の垂直境界ｉの垂直アクティビティは以下のように定義される。
垂直アクティビティ＝Σｊ＝０１５｜Ａｉ，ｊ−Ａｉー１，ｊ｜
【００２７】
アクティビティは物体のエッジなどで大きい値になる。仮領域分割部１０１は、アクティビティ値が最も大きい境界でマクロブロックの領域を仮分割する。
【００２８】
仮領域分割部１０１により分割された各仮領域について動きベクトルを検出する。仮領域の動きベクトルの検出は、第１動きベクトル検出部１０２または第２動きベクトル検出部１１０によって行われる。
【００２９】
図５は、マクロブロックの仮領域毎に検出される動きベクトルを示す図である。仮領域分割部１０１が、マクロブロックを図３（ａ）のように上から４画素目の水平境界で仮分割した場合を例に取ると、図５に示すように、１６×４の上側領域と１６×１２の下側領域のそれぞれについて動きベクトルを検出する。
【００３０】
図６（ａ）、（ｂ）は、符号化対象ブロックの仮領域の分割方向と、第２動きベクトル検出部１１０が行う動き検出に用いられる隣接ブロックの関係を説明する図である。図６（ａ）、（ｂ）はそれぞれ、水平方向、垂直方向に分割された符号化対象のマクロブロックとその周囲に隣接する３つの符号化済みのマクロブロックＭＢＡ、ＭＢＢ、ＭＢＣを示す。
【００３１】
図６（ａ）に示すように符号化対象のマクロブロックが水平方向に分割される場合、水平境界より上側の仮領域は、２つの周囲マクロブロックＭＢＡ、ＭＢＢに隣接するが、水平境界より下側の仮領域は、１つの周囲マクロブロックＭＢＡにしか隣接しない。図６（ｂ）に示すように符号化対象のマクロブロックが垂直方向に分割される場合、垂直境界より左側の仮領域は、２つの周囲マクロブロックＭＢＡ、ＭＢＢに隣接するが、垂直境界より右側の仮領域は、１つの周囲マクロブロックＭＢＢにしか隣接しない。
【００３２】
符号化対象ブロックの分割された仮領域のうち、符号化済みの周囲マクロブロックに隣接している部分が最も少ない仮領域（「第１仮領域」と呼ぶ）については第１動きベクトル検出部１０２が従来の動き検出を行い、それ以外の仮領域（２分割の場合は、「第２仮領域」と呼ぶ）については第２動きベクトル検出部１１０が周囲マクロブロックの動き情報を利用して動きベクトルを検出する。
【００３３】
図６（ａ）の水平分割の場合であれば、上側の仮領域、図６（ｂ）の垂直分割の場合であれば、左側の仮領域については、第２動きベクトル検出部１１０が周囲マクロブロックの動き情報から動きベクトルを求める。もう一方の仮領域、すなわち、図６（ａ）の水平分割の場合であれば、下側の仮領域、図６（ｂ）の垂直分割の場合であれば、右側の仮領域については、第１動きベクトル検出部１０２が通常の方法で動きベクトルを検出する。
【００３４】
第１動きベクトル検出部１０２は、ブロックマッチング法を用いて動きベクトルを検出する。動きベクトル検出のアルゴリズムは指定した探索領域内の候補ベクトルをすべて評価するフルサーチの他、さまざまな動き特性から探索する候補ベクトルを絞り込んで探索する高速サーチなどいろいろな方法が存在する。仮領域分割部１０１で分割したブロック毎に動きベクトルを検出することができるものであれば、どのような動きベクトル検出アルゴリズムを用いることも可能である。
【００３５】
第２動きベクトル検出部１１０の動作をより詳しく説明する。第２動きベクトル検出部１１０は、符号化済みの周囲マクロブロックの動き情報を利用することで第２動きベクトルを検出する。第２動きベクトル検出部１１０の動作を説明する前に、図７（ａ）〜（ｃ）を参照して、従来のマクロブロック単位の動き検出の方法を説明し、その後、図８（ａ）、（ｂ）を参照して、本実施の形態の第２動きベクトル検出部１１０の動作を説明する。
【００３６】
図７（ａ）〜（ｃ）は、従来のＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４におけるマクロブロック単位の動き検出の方法を説明する図である。
【００３７】
図７（ｂ）は符号化対象ピクチャであり、符号化対象となる１６×１６画素で構成されるマクロブロックを太い点線で示し、符号化対象ブロックの周囲にある４つの符号化済みブロックを細い点線で示す。図７（ｂ）に示すピクチャは時刻ｔ１において表示されるものであり、時刻ｔ１よりも表示時刻が前である時刻ｔ０（＜ｔ１）におけるピクチャを図７（ａ）または図７（ｃ）に示す。これら２つのピクチャは、図７（ｂ）の符号化対象ピクチャの動き予測の参照先ピクチャとして使用される。図７（ａ）〜（ｃ）に示すように、時刻ｔ０から時刻ｔ１にかけて、ピクチャ内の点描の円は、左から右に平行移動し、背景の縞模様は下から上に移動している。
【００３８】
図７（ａ）は、１６×１６画素のマクロブロックで動き検出を行った場合を示す。図７（ｂ）に示す符号化対象ブロック内で点描の円の占める割合が大きいため、図７（ａ）の太い点線枠で示される符号化対象ブロックから太い実線枠で示される位置への移動を示す白抜き矢印が動きベクトルとして検出される。この動きベクトルを用いて動き補償を行うと、図７（ａ）において斜線で示す部分が画像間の予測誤差となる。
【００３９】
図７（ｃ）は、マクロブロック内を１６×８画素の領域に分割し、それぞれについて動き検出を行った場合の一例である。下側の領域は点描の円の占める割合が大きいため、図７（ａ）の場合と同様の動き検出が行われ、左向きの白抜き矢印が動きベクトルとして検出される。一方、上側の領域は縞模様の背景の動きを捉えることになり、符号化対象ブロックの真上の位置への移動を示す上向きの白抜き矢印が動きベクトルとして検出される。これら二つの動きベクトルを用いて動き補償を行うと、図７（ｃ）において斜線で示す部分が画像間の予測誤差となる。
【００４０】
従来のＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４で規定されるマクロブロックのタイプに応じて動き検出を行うと、１６×１６画素単位の場合では予測誤差の発生箇所が多くなるため、符号化効率が低下する。一方、１６×８画素に上下に分割した場合は、予測画素の発生箇所が１６×１６画素単位に比べて少なく、符号化効率が向上するが、上下の領域毎に動きベクトル等の動き情報を符号化して伝送する必要がある。
【００４１】
本実施の形態では、このように符号化対象のマクロブロック内を分割する場合は、分割領域の動きは、分割の境界よりも上側または左側に隣接する符号化済みの周囲マクロブロックの動きに類似すると仮定して、周囲マクロブロックの動き情報を参照する。
【００４２】
図８（ａ）、（ｂ）は、本実施の形態の第２動きベクトル検出部１１０による動き検出の方法を説明する図である。
【００４３】
図８（ｂ）は時刻ｔ１の符号化対象ピクチャであり、符号化対象となる１６×１６画素で構成されるマクロブロックを太い点線で示し、符号化対象ブロックの周囲にある４つの符号化済みブロックを細い点線で示す。図８（ａ）は時刻ｔ０におけるピクチャであり、図８（ｂ）の符号化対象ピクチャの動き予測の参照先ピクチャとして使用される。図７（ａ）および図７（ｂ）で示したのと同様に、時刻ｔ０から時刻ｔ１にかけて、ピクチャ内の点描の円は、左から右に平行移動し、背景の縞模様は下から上に移動している。
【００４４】
図８（ａ）は、符号化対象ブロック内を領域分割し、分割された各領域の動き検出を行う様子を示す。符号化対象となるマクロブロックが水平に分割される場合、水平分割の境界の上側にある領域は境界の下側にある領域よりも、符号化対象ブロックの上または左に隣接している符号化済みのマクロブロックと同じ動きを示すことが多い。そのため、上側領域が真上の周囲マクロブロックの動きと同じになると仮定し、図８（ａ）で黒塗り矢印で示される真上のマクロブロックの動きベクトルを使用して動き補償を行う。この動きベクトルは周囲マクロブロックにより得られるものであり、符号化・伝送を行う必要がないから、符号量を抑制することができる。
【００４５】
第２動きベクトル検出部１１０は、このように符号化対象のマクロブロックに隣接する符号化済みの周囲マクロブロックの動き情報を利用して、符号化対象のマクロブロックの分割領域の動きベクトルを求める。隣接する周囲マクロブロックのいずれの動きベクトルを利用するかは、符号化対象のマクロブロックの分割する方向にもとづいて決定する。
【００４６】
図９（ａ）、（ｂ）は、マクロブロックを分割する方向にもとづいて、動きベクトルを参照する周囲マクロブロックを選択する方法を説明する図である。
【００４７】
図９（ａ）に示すように、符号化対象のマクロブロックが水平方向に分割され、上側領域について第２動きベクトル検出部１１０が第２動きベクトルＭＶ２を求め、下側領域について第１動きベクトル検出部１０２が第１動きベクトルＭＶ１を求める。このとき、上側領域は真上に隣接するマクロブロックＭＢＢと類似する動きを示すことが推測されるので、第２動きベクトル検出部１１０は、動き情報として真上のマクロブロックＭＢＢの動きベクトルを参照する。
【００４８】
符号化済みのマクロブロックの各種情報は、メモリ１０７に蓄積されており、第２動きベクトル検出部１１０は、符号化対象のマクロブロックの位置に対応するアドレスに基づいて、メモリ１０７から参照すべき周囲マクロブロックＭＢＢの情報を読み出すことができる。第２動きベクトル検出部１１０は、読み出された周囲マクロブロックＭＢＢの動きベクトルＭＶＢを符号化対象のマクロブロックの上側領域に対する第２動きベクトルＭＶ２とする。
【００４９】
ここで、周囲マクロブロックＭＢＢのマクロブロックタイプが画面内符号化（イントラ）タイプである場合には動きベクトルが存在しないため、参照する周囲マクロブロックとして左側のマクロブロックＭＢＡまたは右斜め上のマクロブロックＭＢＣを代わりに用いて、マクロブロックＭＢＡ、ＭＢＣの動きベクトルを符号化対象のマクロブロックの上側領域に対する第２動きベクトルＭＶ２としてもよい。
【００５０】
図９（ｂ）に示すように、符号化対象のマクロブロックが垂直方向に分割され、左側領域について第２動きベクトル検出部１１０が動きベクトルを求める場合、左側領域は左に隣接するマクロブロックＭＢＡと類似する動きを示すことが推測されるので、第２動きベクトル検出部１１０は、動き情報として左のマクロブロックＭＢＡの動きベクトルをメモリ１０７から読み出して参照する。第２動きベクトル検出部１１０は、読み出された周囲マクロブロックＭＢＡの動きベクトルＭＶＡを符号化対象のマクロブロックの左側領域に対する第２動きベクトルＭＶ２とする。
【００５１】
図１０は、動きベクトルを参照する周囲マクロブロックを選択する別の方法を説明する図である。図９（ａ）では、符号化対象のマクロブロックの上側領域に隣接する部分が多い真上のマクロブロックＭＢＢを選択して、そのマクロブロックＭＢＢの動きベクトルＭＶＢを当該上側領域に対する第２動きベクトルＭＶ２とした。図１０では、符号化済みの周囲マクロブロックの選択範囲を広げ、隣接する４つの周囲マクロブロックＭＢＡ、ＭＢＢ、ＭＢＣ、ＭＢＤの動きベクトルＭＶＡ、ＭＶＢ、ＭＶＣ、ＭＶＤを当該上側領域に対する第２動きベクトルＭＶ２の候補とする。第２動きベクトル検出部１１０は、これらの４つの動きベクトルの中のいずれか一つを当該上側領域に対する第２動きベクトルＭＶ２とする。
【００５２】
図１に戻り、本領域分割・動き補償部１０３は、第１動きベクトル検出部１０２および第２動きベクトル検出部１１０で検出された各仮領域の動きベクトルを用いて、メモリ１０７に蓄積されている参照画像から動き補償予測を行う。本領域分割・動き補償部１０３は、後述の手順で、各仮領域の動きベクトルから生成される複数の動き補償予測画像を合成して合成動き補償予測画像を生成する。
【００５３】
図１１（ａ）、（ｂ）は、仮領域毎に検出された動きベクトルから生成される動き補償予測画像を示す。図１２（ａ）〜（ｃ）は、各仮領域の動きベクトルから生成される動き補償予測画像を合成して得られる合成動き補償予測画像を示す。
【００５４】
仮領域分割部１０１が、マクロブロックを図３（ａ）に示すように上から４画素目の水平境界で仮分割した場合を例に説明する。動きベクトル検出部１０２は、図５に示すように、１６×４の上側領域と１６×１２の下側領域のそれぞれについて動きベクトルを検出した結果、符号化対象マクロブロックには２つの動きベクトル（第１、第２動きベクトル）が存在する。本領域分割・動き補償部１０３は、図１１（ａ）、（ｂ）に示すように、動きベクトル検出部１０２により検出された動きベクトル毎に、参照画像を用いて、仮に当該マクロブロックの大きさ（ここでは１６×１６）で動き補償予測した場合の画像を生成する。図１１（ａ）は、１６×４の上側領域の第１動きベクトルを用いて生成された第１動き補償予測画像であり、図１１（ｂ）は、１６×１２の下側領域の第２動きベクトルを用いて生成された第２動き補償予測画像である。
【００５５】
本領域分割・動き補償部１０３は、図１１（ａ）、（ｂ）に示す第１、第２動き補償予測画像を、図１２に示す（ａ）〜（ｃ）のいずれかのパターンに合成して合成動き補償予測画像を生成する。第１、第２動き補償予測画像は符号化対象マクロブロックと同一の大きさであり、合成動き補償予測画像を生成するために、ある境界で分割される。本領域分割・動き補償部１０３により決められるマクロブロックの境界を「本境界」（actual boundary）と呼び、本境界により分割されたマクロブロックの領域を「本領域」（actual region）と呼び、仮領域分割部１０１により決められる「仮境界」、「仮領域」と区別する。
【００５６】
図１２（ａ）〜（ｃ）は、本領域分割・動き補償部１０３が決定する本境界の候補を示したものである。図１２（ａ）は上から４画素目の水平境界を本境界とし、図１２（ｂ）は上から８画素目の水平境界を本境界とし、図１２（ｃ）は上から１２画素目の水平境界を本境界として、それぞれ、本境界より上側の本領域は第１動き補償予測画像の対応する領域、本境界より下側の本領域は第２動き補償予測画像の対応する領域で表したものである。
【００５７】
本領域分割・動き補償部１０３は、エッジ強度などを表す評価値にもとづいて、本境界を決定し、決定された本境界で第１、第２動き補償予測画像を分割して合成する。
【００５８】
図１３（ａ）〜（ｃ）は、各仮領域の動きベクトルから生成される動き補償予測画像を合成して合成動き補償予測画像を生成する方法を説明する図である。本領域分割・動き補償部１０３は、本境界決定後、図１３（ａ）の第１動きベクトルに対応する第１動き補償予測画像と図１３（ｂ）の第２動きベクトルに対応する第２動き補償予測画像を用いて、本境界より上の領域を第１動き補償予測画像として動き補償予測し、本境界より下の領域を第２動き補償予測画像として動き補償予測する。この例では、本境界より上の１６×４の領域には、第１動き補償予測画像の対応する領域が複製され、本境界より下の１６×１２の領域には、第２動き補償予測画像の対応する領域が複製される。
【００５９】
ここまでは２分割の例として水平方向の領域分割について説明をしたが、マクロブロック内部では必ずしも水平方向にのみ領域分割が存在するとは限らず、垂直方向に対する領域分割も考えられる。また、従来の１６×１６画素単位で予測を行う場合と同様にマクロブロック１６×１６画素内で領域分割が存在しない場合も考えられる。そのため、仮領域分割部１０１、第１動きベクトル検出部１０２、第２動きベクトル検出部１１０、および本領域分割・動き補償部１０３は、水平方向の領域分割だけでなく、垂直方向の領域分割、領域分割無しのそれぞれについて動き検出を行い、その中から最適な動きベクトルと領域分割の境界を判定する必要がある。
【００６０】
図１４は、動き検出の３つのモードと、各モードで算出された動きベクトルの中から最適値を求める処理を示すフローチャートである。水平方向への領域分割、垂直方向への領域分割および領域分割無しの各分割モードにおいて動きベクトルを検出し、各分割モードで算出された動きベクトルの中から最適値を判定する。
【００６１】
太い実線で示すように、ステップＳ２０１とＳ２０２の処理は仮領域分割部１０１が行い、ステップＳ２０３ａと２０３ｃの処理は第１動きベクトル検出部１０２が行い、ステップＳ２０３ｂの処理は第２動きベクトル検出部１１０が行い、ステップＳ２０４〜Ｓ２０９の処理は本領域分割・動き補償部１０３が行う。
【００６２】
水平分割モードにおいて、仮領域分割部１０１は、水平分割の仮領域検出を行う（Ｓ２０１）。第１動きベクトル検出部１０２は、分割された仮領域の内、符号化対象のマクロブロックに隣接する符号化済みの周囲マクロブロックと隣接している辺が最も少ない第１仮領域に対して、第１動きベクトルを検出する（Ｓ２０３ａ）。第２動きベクトル検出部１１０は、第２仮領域に対して、周囲マクロブロックの動き情報を用いて第２動きベクトルを検出する（Ｓ２０３ｂ）。具体的には、水平分割の場合、真上の周囲マクロブロックの動きベクトルを第２仮領域の第２動きベクトルとする。
【００６３】
同様に、垂直分割モードにおいて、仮領域分割部１０１は、垂直分割の仮領域検出を行う（Ｓ２０２）。第１動きベクトル検出部１０２は、分割された仮領域の内、符号化対象のマクロブロックに隣接する符号化済みの周囲マクロブロックと隣接している辺が最も少ない第１仮領域に対して、第１動きベクトルを検出する（Ｓ２０３ａ）。第２動きベクトル検出部１１０は、第２仮領域に対して、周囲マクロブロックの動き情報を用いて第２動きベクトルを検出する（Ｓ２０３ｂ）。具体的には、垂直分割の場合、左の周囲マクロブロックの動きベクトルを第２仮領域の第２動きベクトルとする。
【００６４】
分割無しの場合、マクロブロック内に分割境界が存在しないので、従来の１６×１６画素で動き検出を実施する。この処理は、水平または垂直方向の分割位置が０画素目である場合と等価であることから、第１動きベクトル検出部１０２が第１動きベクトルを検出する（Ｓ２０３ｃ）。この場合、第２動きベクトルを持つ領域は存在しないので、第２動きベクトルは検出されない。
【００６５】
本領域分割・動き補償部１０３は、各分割モードで検出された各仮領域の第１動きベクトルおよび第２動きベクトルを用いて、メモリ１０７に蓄積されている参照画像から動き補償予測を行う。
【００６６】
水平分割モードの場合、本領域分割・動き補償部１０３は、本領域分割・動き補償部１０３は水平分割の本境界検出を行い（Ｓ２０４）、水平方向の本境界において、第１動きベクトルによる第１動き補償予測画像と、第２動きベクトルによる第２動き補償予測画像とを合成して合成動き補償予測画像を生成する（Ｓ２０６）。実施の形態１では分割方向に基づいて第２動きベクトルを決定しているので、水平分割モードの場合、第２動き補償予測画像は水平分割で得られた第２動きベクトルを用いて生成される。一方、第１動き補償予測画像は各分割モードで検出された第１動きベクトルを用いて生成されるため、３つの分割モードに対応して３種類の第１動き補償予測画像が生成される。したがって、水平分割モードの場合、３種類の第１動き補償予測画像のそれぞれに第２動き補償予測画像を合成した３種類の合成動き補償予測画像が生成される。
【００６７】
垂直分割モードの場合、本領域分割・動き補償部１０３は、本領域分割・動き補償部１０３は垂直分割の本境界検出を行い（Ｓ２０５）、垂直方向の本境界において、第１動きベクトルによる第１動き補償予測画像と、第２動きベクトルによる第２動き補償予測画像とを合成して合成動き補償予測画像を生成する（Ｓ２０７）。水平分割モードの場合と同様、垂直分割で得られた第２動きベクトルを用いて第２動き補償予測画像が生成され、各分割モードで検出された第１動きベクトルを用いて３種類の第１動き補償予測画像が生成され、３種類の第１動き補償予測画像のそれぞれに第２動き補償予測画像を合成した３種類の合成動き補償予測画像が生成される。
【００６８】
分割無しモードの場合、本領域分割・動き補償部１０３は、各分割モードの第１動きベクトルのみによる３種類の動き補償予測画像が生成する（Ｓ２０８）。
【００６９】
水平分割モード、垂直分割モード、分割無しモードの各モードで３種類ずつ合成動き補償予測画像が生成されるため、合計９種類の合成動き補償予測画像が生成されることになる。
【００７０】
こうして生成された合成動き補償予測画像に対して、本領域分割・動き補償部１０３は、後述するエッジ強度などを表す評価値に基づいて、領域分割の有無、領域分割が存在するならその方向（水平または垂直方向）および領域分割位置を示す本境界を決定する（Ｓ２０９）。本領域分割・動き補償部１０３は、決定された本境界において、選択された第１および第２動きベクトルから第１および第２動き補償予測画像を生成し、それらを合成して最終的な合成動き補償予測画像を生成する。本領域分割・動き補償部１０３により決定された第２動きベクトル等の動き情報は、次のマクロブロックの符号化処理で利用するためにメモリ１０７に蓄積される。
【００７１】
ここでは、本境界候補を図１２（ａ）〜（ｃ）の３通りとする場合を説明したが、本境界の候補をさらに増やしてもよい。ただし、後述するように、直交変換・量子化部１０４の直交変換サイズとの関係を十分に考慮しておく必要がある。
【００７２】
図１に戻り、減算部１０８は、符号化対象原画像と本領域分割・動き補償部１０３で算出した動き補償予測画像との差分により、予測残差成分を算出し、直交変換・量子化部１０４に与える。直交変換・量子化部１０４は、予測残差成分の直交変換・量子化を行う。
【００７３】
ここで、直交変換・量子化部１０４は、動き補償予測のサイズに対応した直交変換サイズを使用して直交変換を行う。つまり、動き補償予測のサイズとして１６×４／１６×８／１６×１２（垂直方向に４の倍数）が許容されている場合、少なくとも１６×４又は８×４又は４×４（垂直方向に４の倍数）の直交変換サイズを使用できるようにする。他の例として、動き補償予測のサイズとして１６×２／１６×４／１６×６／１６×８／１６×１０／１６×１２（垂直方向に２の倍数）が許容されている場合、少なくとも１６×２又は８×２又は４×２（垂直方向に２の倍数）の直交変換サイズを使用できるようにする。これにより、動き補償予測の予測誤差を直交変換する際に、直交変換する予測誤差集合の中に動き補償予測の境界が含まれることがなくなる。これにより、動き補償予測の境界をまたいだ画素を予測誤差として一緒に直交変換することによる直交変換効率の低下を防止することができ、符号化効率を一層向上させる効果を奏する。
【００７４】
可変長符号化部１０５は、直交変換・量子化部１０４で直交変換・量子化された予測残差成分を可変長符号化するとともに、本領域分割・動き補償部１０３で選択された第１動きベクトルを可変長符号化する。第２動きベクトル検出部１１０で検出された第２動きベクトルは、隣接する符号化済みマクロブロックを参照して算出されたものなので、復号側で同様の処理を施すことが可能である。したがって、第２動きベクトルは符号化する必要はない。
【００７５】
逆量子化・逆直交変換部１０６は、直交変換・量子化部１０４によって直交変換・量子化された予測残差成分に対して、逆直交変換及び逆量子化を行う。直交変換・量子化部１０４と同様に、動き補償予測のサイズに対応したサイズで逆直交変換できるようにしておく。
【００７６】
加算部１０９は、逆量子化・逆直交変換部１０６により復号された予測残差成分と、本領域分割・動き補償部１０３により算出された動き補償予測画像とを加算することで参照画像を生成し、メモリ１０７に格納する。
【００７７】
図２は、実施の形態１の動画像復号装置の構成を示すブロック図である。実施の形態１の動画像復号装置は、可変長復号部２０１、本領域分割・動き補償部２０３、逆量子化・逆直交変換部２０６、加算部２０９、メモリ２０７、および動きベクトル検出部２１０を備える。
【００７８】
可変長復号部２０１は、直交変換・量子化されている予測残差成分信号及び動きベクトルを可変長復号する。図１の動画像符号化装置により符号化されたビットストリームでは、マクロブロックに対して１つの動きベクトルが符号化されており、後述する動きベクトル検出部２１０により検出される動きベクトル（「第２動きベクトル」）との混同を避ける為、ここでは符号化ストリームから復号される動きベクトルを「第１動きベクトル」と呼ぶことにする。
【００７９】
本領域分割・動き補償部２０３は、図１の動画像符号化装置の本領域分割・動き補償部１０３と同一の機能を持ち、可変長復号部２０１で復号された第１動きベクトルと動きベクトル検出部２１０により検出された第２動きベクトルとを用いてメモリ２０７に蓄積されている参照画像から動き補償予測を行う。本領域分割・動き補償部２０３は、図１の動画像符号化装置の本領域分割・動き補償部１０３と同様の手順で、各分割領域の動きベクトルから生成される複数の動き補償予測画像を合成して合成動き補償予測画像を生成する。
【００８０】
逆量子化・逆直交変換部２０６は、図１の動画像符号化装置の逆量子化・逆直交変換部１０６と同一の機能を持ち、可変長復号部２０１で復号された予測残差成分に対して逆直交変換及び逆量子化を行う。
【００８１】
加算部２０９は、逆量子化・逆直交変換部２０６により復号された予測残差成分と、本領域分割・動き補償部２０３により算出された動き補償予測画像とを加算することにより、画像信号を復号する。メモリ２０７は、図１の動画像符号化装置のメモリ１０７と同一であり、復号された参照画像および復号済みの動きベクトル等の各種情報を蓄積する。
【００８２】
動きベクトル検出部２１０は、図１の動画像符号化装置の第２動きベクトル検出部１１０と同一の機能を持ち、メモリ２０７に蓄積された復号対象のマクロブロックに隣接するマクロブロックの動き情報を利用して第２動きベクトルを検出する。
【００８３】
以上の構成による動画像符号化装置及び動画像復号装置で共通する動作、特に、本領域分割・動き補償部１０３及び本領域分割・動き補償部２０３の動作を説明する。
【００８４】
動画像符号化装置の本領域分割・動き補償部１０３と動画像復号装置の本領域分割・動き補償部２０３の基本的な動作は同じであるが、符号化装置では最適な本分割領域を検出するための候補となる各分割モードの第１動きベクトルがあり、復号装置では第１動きベクトルがビットストリームから復号されたものしかない点が異なる。そのため、符号化側の本領域分割・動き補償部１０３では、復号側の本領域分割・動き補償部２０３に対して、各分割モードで得られた第１動きベクトルを指定する処理部、その第１動きベクトルを用いて生成された動き補償予測画像から得られる評価値と以前に処理した評価値最小の分割モードの第１動きベクトルやその他の情報を記録しておく記憶部、以上の処理を分割モード毎に実施するためのループ処理部を備える点が異なる。
【００８５】
また、動画像復号装置では、図１４のステップＳ２０１とＳ２０２の処理を行う仮領域分割部１０１がないため、動画像復号装置の動きベクトル検出部２１０は、本領域分割・動き補償部２０３において求めようとする境界候補の方向を決定し、その方向に応じて復号対象ブロックに隣接する復号済みブロックの中からブロックを選択し、選択されたブロックの動き情報を用いて動きベクトルを検出すると共に、決定した境界候補の方向に関する情報を本領域分割・動き補償部２０３に供給し、本領域分割・動き補償部２０３が最終的に最適な境界の方向と位置を決定することになる。
【００８６】
以下では、本領域分割・動き補償部１０３及び本領域分割・動き補償部２０３との共通部分となる本領域の決定手順について説明する。
【００８７】
図１５は、本領域分割・動き補償部１０３による本領域の決定手順を説明するフローチャートである。
【００８８】
まず、仮領域分割部１０１により分割されたＮ個（Ｎ≧２）の仮領域毎に動きベクトルを検出する。ここではＮ＝２とする。第１動きベクトル検出部１０２で検出した第１動きベクトルを用いて、マクロブロックと同一の大きさで動き補償予測し、第１動き補償予測画像を生成する（Ｓ０１）。第２動きベクトル検出部１１０で検出した第２動きベクトルを用いて、マクロブロックと同一の大きさで動き補償予測し、第２動き補償予測画像を生成する（Ｓ０２）。
【００８９】
次に、本境界の候補すなわちマクロブロック内を分割する位置の候補を設定する。水平方向の分割の場合、マクロブロックの左隅の画素から下に０〜１５番目の画素、垂直方向の分割の場合、左隅の画素から右に０〜１５番目の画素を、分割位置の候補として設定する。
【００９０】
水平または垂直方向の領域分割により境界判定した結果、本境界が隣接する周囲マクロブロックとの境界と一致する場合は分割無しと判定されるが、この場合の分割位置は０番目の画素に相当する。分割位置が０番目の画素の場合は、隣接する周囲マクロブロックとの境界判定を行うため、以下のアクティビティ算出のステップ（Ｓ００４〜Ｓ００７）において、境界を跨ぐ画素間の差分を算出する際、隣接する周囲マクロブロックの画素値を取得する処理が必要となる。
【００９１】
設定された本境界の各候補について、図１６（ａ）〜（ｄ）に示す第１〜第４アクティビティを算出する（Ｓ０３〜Ｓ０６）。ただし、ステップＳ０３〜Ｓ０６は順不同で行うことが可能である。また、ステップＳ０３〜Ｓ０６のすべてを行わずに、境界評価に使用したいアクティビティだけを算出することももちろん可能である。
【００９２】
まず、図１６（ａ）のように、第１動き補償予測画像について、本境界候補に関する境界アクティビティ（第１アクティビティ）を算出する（Ｓ０３）。ここで、アクティビティには本境界候補をまたぐ２画素間の絶対差分和（ＳＡＤ）を用いる。第１アクティビティは物体のエッジなどで値が大きくなるため、値が大きいほど該当境界で領域を分割した方が動き補償予測の予測効率が向上する。同様に、図１６（ｂ）のように、第２動き補償予測画像について、本境界候補に関する境界アクティビティ（第２アクティビティ）を算出する（Ｓ０４）。第２アクティビティは第１アクティビティと同様に、値が大きいほど該当境界で領域を分割した方が動き補償予測の予測効率が向上する。
【００９３】
続いて、図１６（ｃ）のように、マクロブロック内の本境界候補より上の領域を第１動き補償予測画像として動き補償予測し、本境界候補より下の領域を第２動き補償予測画像として合成した合成動き補償予測画像について、本境界候補に関する境界アクティビティ（第３アクティビティ）を算出する（Ｓ０５）。第３アクティビティは本境界候補をまたぐ２画素間の絶対差分和であるから、本境界候補の上下に位置する第１動き補償予測画像の画素と第２動き補償予測画像の画素の値の絶対差分の和になる。したがって、第３アクティビティは値が小さいほど、合成動き補償予測画像の境界が滑らかになり、予測誤差信号に高周波成分が発生しにくいため、動き補償予測の予測効率が向上する。
【００９４】
最後に、図１６（ｄ）のように、第１動き補償予測画像と第２動き補償予測画像の差分画像について、本境界候補に関する境界アクティビティ（第４アクティビティ）を算出する（Ｓ０６）。第４アクティビティは、物体の境界などで値が大きくなるため、値が大きいほど該当境界で領域を分割した方が動き補償予測の予測効率が向上する。
【００９５】
境界評価に使用するアクティビティをすべて算出した後に、予め定義した評価値を用いて本境界候補を評価する（Ｓ０７）。例えば、評価値は以下のように定義する。
評価値＝−Ａ＊ＡＣＴ１−Ｂ＊ＡＣＴ２＋Ｃ＊ＡＣＴ３−Ｄ＊ＡＣＴ４
ここで、ＡＣＴ１は第１アクティビティ値を表し、ＡＣＴ２は第２アクティビティ値を表し、ＡＣＴ３は第３アクティビティ値を表し、ＡＣＴ４は第４アクティビティ値を表す。また、Ａ，Ｂ，Ｃ，Ｄはそれぞれ０以上の定数である。
【００９６】
上記評価値をすべての本境界候補について算出し、最小値を持つ本境界候補を最終的な本境界に決定する（Ｓ０８）。
【００９７】
ここで、本境界と仮境界は同一になることが望ましいが、決定された本境界は必ずしも仮境界とは同一にならない。動きベクトル検出用の仮境界は、符号化側で最適な動きベクトルを求めるための境界であり、符号化側のみ利用可能な符号化対象原画像も使用して算出することができる。一方、本境界は符号化側・復号側共に一意的に算出可能でなければならず、算出した（復号側では伝送されてきた）動きベクトルと、その動き補償予測画像（すなわち予測残差成分が加算される前の画像）で判断している。そのため、本境界と仮境界は同一でなくても符号化側と復号側のミスマッチなどは発生しない。
【００９８】
（実施の形態２）
実施の形態２の動画像符号化装置は、図１に示される実施の形態１の動画像符号化装置と同一の構成であるが、第２動きベクトル検出部１１０における第２動きベクトルの検出方法が異なる。
【００９９】
図１７（ａ）、（ｂ）は、実施の形態２の動画像符号化装置の第２動きベクトル検出部１１０による第２動きベクトルの検出方法を説明する図である。
【０１００】
図１７（ａ）で示すように、符号化対象のマクロブロックに隣接する周囲マクロブロックとして、左隣のマクロブロックＭＢＡ、真上のマクロブロックＭＢＢ、および右斜め上のマクロブロックＭＢＣの３個があり、それぞれの動きベクトルをＭＶＡ、ＭＶＢおよびＭＶＣとする。
【０１０１】
符号化対象のマクロブロックの動きベクトルを符号化する際、これらの３個の周囲マクロブロックＭＢＡ、ＭＢＢおよびＭＢＣの動きベクトルＭＶＡ、ＭＶＢおよびＭＶＣから中間値ベクトルＰＭＶを決定し、符号化対象のマクロブロックの動きベクトルからＰＭＶを減算した差分値を算出する。
【０１０２】
図１７（ｂ）は、３個の周囲マクロブロックの動きベクトルＭＶＡ、ＭＶＢおよびＭＶＣから中間値ベクトルＰＭＶを求める方法を説明する図である。各周囲マクロブロックの動きベクトルのｘ成分およびｙ成分を以下のように表す。
ＭＶＡ＝（ＭＶＡｘ，ＭＶＡｙ）
ＭＶＢ＝（ＭＶＢｘ，ＭＶＢｙ）
ＭＶＣ＝（ＭＶＣｘ，ＭＶＣｙ）
【０１０３】
３個の動きベクトルのＸ成分およびＹ成分のそれぞれの中間値をとることによって、図１７（ｂ）に示す事例の場合、３個の周囲マクロブロックの中間値ベクトルＰＭＶは次のように表される。
ＰＭＶ＝ｍｅｄ（ＭＶＡ，ＭＶＢ，ＭＶＣ）＝（ＭＶＡｘ，ＭＶＢｙ）
ここで、関数ｍｅｄ（）は、括弧内の動きベクトルから中間値を算出する関数である。
【０１０４】
判定された中間値ベクトルＰＭＶは、符号化対象のマクロブロックの動きベクトルを符号化する際に中間値ベクトルＰＭＶとの差分を取って符号化効率を上げるにために使用される値であり、動き検出を行うための参照先のピクチャ番号を持たない。そのため、中間値ベクトルＰＭＶは、通常の動きベクトルのように動き補償予測により予測画像を生成するために用いることはできない。
【０１０５】
そこで、実施の形態２では、３個の周囲のマクロブロックの内、中間値ベクトルＰＭＶに最も近い動きベクトルを持つマクロブロックを判定し、そのマクロブロックを参照先のピクチャとする。判定のために、次式のように、中間値ベクトルＰＭＶと３個の周囲マクロブロックの動きベクトルの絶対差分和（ＳＡＤ）を求める。
ＳＡＤｉ＝｜ＭＶｉｘ−ＰＭＶｘ｜＋｜ＭＶｉｙ−ＰＭＶｙ｜
ここで、添え字ｉは周囲マクロブロックＭＢＡ、ＭＢＢ、ＭＢＣの識別子Ａ、Ｂ、Ｃのいずれかであり、ＰＭＶｘおよびＰＭＶｙは中間値ベクトルＰＭＶのｘ成分およびｙ成分を表す。
【０１０６】
上式により絶対差分和ＳＡＤｉが最小となる周囲マクロブロックの動きベクトルを選択する。例えば、図１７（ｂ）に示す事例であれば、中間値ベクトルＰＭＶとの絶対差分和ＳＡＤｉが最小となるのは、マクロブロックＭＢＢの動きベクトルＭＢＶであり、第２動きベクトル検出部１１０は、この動きベクトルＭＢＶを符号化対象のマクロブロックの上側領域に対する第２動きベクトルとして検出する。
【０１０７】
ここでは、判定のための評価値として、中間値ベクトルＰＭＶと周囲マクロブロックの動きベクトルの絶対差分和（ＳＡＤ）を用いたが、中間値ベクトルＰＭＶと周囲マクロブロックの動きベクトルの絶対自乗和（ＳＳＤ）を用いてもよく、中間値ベクトルＰＭＶと周囲マクロブロックの動きベクトルの類似度を測る尺度であれば、特に限定されない。
【０１０８】
次に、実施の形態１および２の動画像符号化装置により符号化される動画像のビットストリームのシンタックスについて説明する。
【０１０９】
図１８は、ＭＰＥＧ−４  ＡＶＣのシンタックスをベースとした第一のシンタックスパターンを示す。図１８（ａ）のように、まず、スライス単位で予測画像の特徴量を用いて動き補償予測の形状を復号側で自動的に決定するかどうかを示す第１フラグ（use_auto_mc_size）を伝送する。第１フラグuse_auto_mc_sizeがＯＦＦの場合は、従来通り図１８（ｂ）に示すマクロブロックタイプmb_typeに基づきマクロブロックを固定的に分割して動き補償予測を行う。第１フラグuse_auto_mc_sizeがＯＮの場合、予測画像の特徴量を用いて動き補償予測の形状を復号側で自動的に決定して動き補償予測を行う。マクロブロック単位では、ＭＰＥＧ−４  ＡＶＣと同様に、mb_typeを伝送して動き補償予測の形状を判断する。
【０１１０】
図１９は、スライスレベルだけでなく、マクロブロック単位でも動き補償予測の形状を復号側で自動的に決定するかどうかを示す第２フラグ（auto_mc_size_enable）を伝送する第二のシンタックスパターンを示す。第２フラグauto_mc_size_enableがＯＦＦの場合、スライスレベルで第１フラグuse_auto_mc_sizeがＯＦＦになった場合と同様に、従来通りマクロブロックタイプmb_typeに基づきマクロブロックを固定的に分割して動き補償予測を行う。第２フラグauto_mc_size_enableがＯＮの場合、予測画像の特徴量を用いて動き補償予測の形状を復号側で自動的に決定して動き補償予測を行う。第二のシンタックスを用いると、マクロブロックの本境界を自動的に決定してしまうことで予測効率が低下するのを防ぐことができる。
【０１１１】
図２０は、スライスレベルで動き補償予測の形状を復号側で自動的に決定するアルゴリズムを切り替える第三のシンタックスパターンを示す。スライス単位で第１フラグuse_auto_mc_sizeがＯＮの場合、動き補償予測の形状を復号側で自動的に決定するアルゴリズムタイプを示す第３フラグauto_mc_algorithmを伝送する。例えば、第３フラグauto_mc_algorithm＝０の場合、第１〜第４アクティビティＡＣＴ１〜ＡＣＴ４のすべてを用いた評価値に基づき動き補償予測の形状を決定する。アルゴリズムタイプauto_mc_algorithm＝１の場合、第４アクティビティＡＣＴ４を除いた第１〜第３アクティビティＡＣＴ１〜ＡＣＴ３だけを用いて評価値に基づき動き補償予測の形状を決定する等である。このように、第３フラグauto_mc_algorithmの値に使用するアクティビティの種類を対応づけることで、動き補償予測の形状を決定するアルゴリズムを切り替えることができる。第三のシンタックスを用いると、符号化側で最適なアルゴリズムタイプを判断して復号側で領域の自動分割を行わせることが可能になるため、符号化効率が更に向上する。
【０１１２】
図２１は、マクロブロック単位で領域分割の有無と方向を復号側で自動的に決定するかどうかを示す第４フラグboundary_direc_modeを伝送する第四のシンタックスパターンを示す。第４フラグboundary_direc_modeのシンタックスとして、２通りの手法があり、第１の手法は第４フラグboundary_direc_modeの符号量を固定とし、第４フラグboundary_direc_modeの値に対して領域分割の有無や方向を予め設定してテーブル化しておく場合であり、第２の手法は復号側において復号対象のマクロブロックに隣接する復号済みの周囲マクロブロックの状態に応じて第４フラグboundary_direc_modeの意味付けや符号量を変えて符号化することである。
【０１１３】
第１の手法では、領域分割の有無を表す第１のビットと分割方向を表す第２のビットの計２ビットの組み合わせで第４フラグboundary_direc_modeを表す。図２２は、第４フラグboundary_direc_modeの値の意味の一例を示したテーブルである。第４フラグboundary_direc_modeの値を１０進数で表し、括弧内は２進数で表している。第４フラグboundary_direc_modeの２ビット信号のうち上位ビットが領域分割の有無を表す第１のビット、下位ビットが分割方向を表す第２のビットとして構成される。
【０１１４】
第４フラグboundary_direc_modeが「０」の場合、スライスレベルで第１フラグuse_auto_mc_sizeがＯＦＦになった場合と同様であり、領域分割せず動き補償予測を行う。第２フラグauto_mc_size_enableがＯＮの場合、第４フラグboundary_direc_modeの値に応じて、水平または垂直方向の領域分割に限定し、動き補償予測を行い、予測画像の特徴量を用いて動き補償予測の形状を復号側で自動的に決定する。
【０１１５】
第２の手法では、復号対象のマクロブロックに隣接する復号済みの周囲マクロブロックが持つ復号情報に応じて、第４フラグboundary_direc_modeの意味付けを変える。ここでは、実施の形態１において動きベクトルの参照先として判定した周囲マクロブロックの状態を一例として説明する。復号対象のマクロブロックに隣接する真上のマクロブロックと左隣のマクロブロックの状態に応じて第４フラグboundary_direc_modeの取り得る符号長と符号の意味を変える。真上のマクロブロックと左隣のマクロブロックが共に有効、すなわち動き情報を備えている場合、領域分割としては分割無し、水平方向分割、垂直方向分割の３つの可能性が考えられ、これら３つの状態をそれぞれ２ビットで表現する。例えば、分割無しは「０」、水平方向分割は「１」、垂直方向分割は「２」として表される。
【０１１６】
真上のマクロブロック或いは左隣のマクロブロックのどちらか一方が有効、すなわち動き情報を備えている場合、参照先として有効なマクロブロックを把握することができ、分割方向は一意に決定され、領域分割としては分割無し或いは分割有りの２つの状態に限定される。この場合、２つの状態を１ビットで表現され、例えば、分割無しを「０」、分割有りを「１」として表す。
【０１１７】
真上のマクロブロックと左隣のマクロブロックが共に無効、例えば共にマクロブロックのタイプが画面内符号化モード（イントラモード）であり、動き情報が存在しないから場合、領域分割処理を実施しないことが一意に決定される。この場合、第４フラグboundary_direc_modeは伝送しないこととなり、スライスレベルで第１フラグuse_auto_mc_sizeがＯＦＦになった場合と同様であり、領域分割せず動き補償予測を行う。
【０１１８】
第四のシンタックスを用いると、本境界の決定を復号側で自動決定する処理の効率を向上させる共に、復号側で本境界を誤って判定することを防止することができる。
【０１１９】
以上述べたように、本発明の実施の形態によれば、符号化対象のマクロブロックに対して領域分割を行い、符号化済みの周囲のマクロブロックの動き情報を利用して動き補償予測をすることで、動き情報の伝送に必要な符号量を抑えるとともに、分割された各領域において適切な動き補償が行われ、予測誤差を削減することができ、符号化効率及び画質の向上が実現される。
【０１２０】
実施の形態では、ＭＰＥＧのＰピクチャ等で用いられる片方向予測について説明してきたが、Ｂピクチャ等で用いられる双方向予測（通常は前方向予測と後方向予測）に対しても本発明は適用可能である。
【０１２１】
また、実施の形態では、符号化装置の第２動きベクトル検出部１１０および復号装置の動きベクトル検出部２１０において、符号化対象のマクロブロックが参照する周囲マクロブロックを同一ピクチャ内で隣接するマクロブロックから選択したが、時間的に近いピクチャから選択してもよい。例えば、符号化対象のマクロブロックと同位置にある時間的に近いピクチャのマクロブロックの動き情報を用いて、第２動きベクトルを検出する等の方法が考えられる。
【０１２２】
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ＲＯＭ（リード・オンリ・メモリ）やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
【０１２３】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１２４】
１０１  仮領域分割部、  １０２  第１動きベクトル検出部、  １０３  本領域分割・動き補償部、  １０４  直交変換・量子化部、  １０５  可変長符号化部、  １０６  逆量子化・逆直交変換部、  １０７  メモリ、  １０８  減算部、  １０９  加算部、  １１０  第２動きベクトル検出部、  ２０１  可変長復号部、  ２０３  本領域分割・動き補償部、  ２０６  逆量子化・逆直交変換部、  ２０７  メモリ、  ２０９  加算部、  ２１０  動きベクトル検出部。
【図１】
0005206772.tif 000002
【図２】
0005206772.tif 000003
【図５】
0005206772.tif 000004
【図６】
0005206772.tif 000005
【図９】
0005206772.tif 000006
【図１０】
0005206772.tif 000007
【図１１】
0005206772.tif 000008
【図１２】
0005206772.tif 000009
【図１３】
0005206772.tif 000010
【図１４】
0005206772.tif 000011
【図１５】
0005206772.tif 000012
【図１６】
0005206772.tif 000013
【図１７】
0005206772.tif 000014
【図１８】
0005206772.tif 000015
【図２２】
0005206772.tif 000016
【図３】
0005206772.tif 000017
【図４】
0005206772.tif 000018
【図７】
0005206772.tif 000019
【図８】
0005206772.tif 000020
【図１９】
0005206772.tif 000021
【図２０】
0005206772.tif 000022
【図２１】
0005206772.tif 000023