(57)【特許請求の範囲】
【請求項１】
所定の画素単位からなるマクロブロックに対し，当該マクロブロック内の動画の動きに対応する動きベクトルと，当該動きベクトルにより予測される予測画像データとの差分である予測誤差データとが与えられる符号化データから，前記動きベクトルに基づく予測画像データを生成し，前記予測誤差データを加算して画像データを再生する動画像データの復号化または符号化装置において，
前記マクロブロックに対応して当該マクロブロックの動きベクトルを格納する動きベクトルメモリと，
複数の動きベクトルを前記マクロブロックに割り当て且つブロックサイズの異なる複数種類の動き補償ブロックの当該ブロックサイズを示す補償ブロックタイプに依存することなく，当該マクロブロックの動きベクトルを最小動き補償ブロック単位で前記動きベクトルメモリに格納し，メディアン予測演算における候補ブロックの動きベクトルを現マクロブロックの動き補償ブロックタイプに応じたアドレスに基づいて前記動きベクトルメモリから読み出すメモリ制御部とを有する動画像データの符号化または復号化装置において，
前記メモリ制御部は，前記マクロブロックに最小動き補償ブロックよりも大きいブロックに動きベクトルが割り当てられている場合は，前記動きベクトルメモリの最小動き補償ブロックに対応する複数アドレスに当該動きベクトルを繰り返し格納することを特徴とする動画像データの符号化または復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，動きベクトルを利用する動画像データの符号化または復号化装置に関し，特に，動きベクトルを格納するメモリとそのメモリ制御部を改良して補正された予測用動きベクトルの生成を容易にした符号化または復号化装置に関する。
【背景技術】
【０００２】
動画像データの符号化及び復号化の方式として，ＭＰＥＧ２やＨ２６１などが普及している。この動画像データの符号化・復号化の方法によれば，フレームの画像データを１６×１６のマクロブロックＭＢ単位で処理するとともに，現フレームの画像データを符号化する場合，現フレームの画像データの移動方向を示す動きベクトルと，例えば以前のフレームの画像データとその動きベクトルとから生成した予測画像データと現フレームの画像データとの差分データ（予測誤差データ）とを符号化圧縮する。そして，復号化する時は，再生済みの画像データと現フレームの動きベクトルとから生成される予測画像データに差分データを加算して現フレームの画像データを再生する。再生された画像データはさらにその後のフレームの画像データの再生に利用される。このように，画像データそのものを符号化し圧縮するのではなく，動きベクトルと差分データのみを符号化圧縮することで，符号化データのデータ量を小さくすることができる。また，同じ位置の画像データの差分データを利用するよりも，動画像の動く方向を加味した位置の画像を参照画像データとすることで差分（予測誤差）を小さくすることができ，符号化率を高めることができる。
【０００３】
かかる動画像データの符号化と復号化については，例えば特許文献１，２に記載されている。
【０００４】
一方，動きベクトルに基づいて予測画像データを生成するにあたり，対象となる現マクロブロックの動きベクトルではなく，参照先マクロブロックの周囲のマクロブロック（候補マクロブロック）の動きベクトルを利用して，それら動きベクトルの中央値を補償された動きベクトルとして算出し，その補償動きベクトルにもとづいて予測画像データを生成することが提案されている。これは，メディアン予測演算と称され，参照先マクロブロックの周囲にある候補マクロブロックの動きベクトルの情報を加味することで，より高精度の動きベクトルを求めることができ，その補償動きベクトルを利用することで差分データ（予測誤差データ）をより小さくし，もって符号化率のより一層の向上を図っている。
【特許文献１】特開２０００−１０２０１６号公報
【特許文献２】特開２００４−４８５５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら，次世代の動画像符号化・復号化方式であるＭＰＥＧ４やＨ．２６３方式では，マクロブロックに２つの動きベクトルを持たせるようにし，動画ベクトルについてより激しいまたは細かい動きへの追従性を高めて，予測誤差を小さくしている。さらに，Ｈ．２６４方式では，マクロブロックに最大で１６の動きベクトルを持たせることができ，動きベクトルの持たせ方に応じて，この動き補償用のブロックタイプ（以下ＭＣブロックタイプと称する）は７種類になる。
【０００６】
上記のようにマクロブロックによって異なる動き補償用ブロックタイプ（ＭＣブロックタイプ）を有するため，メディアン予測演算時に候補となるブロックの動きベクトルのアドレス管理が複雑化し，処理効率が低下するという課題がある。
【０００７】
そこで，本発明の目的は，メディアン予測演算時の候補ブロックの動きベクトルへのアクセスを容易にして処理効率を高めた動画像データの符号化・復号化装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために，本発明の第１の側面によれば，所定の画素単位からなるマクロブロックに対し，当該マクロブロック内の動画の動きに対応する動きベクトルと，当該動きベクトルにより予測される予測画像データとの差分である予測誤差データとを有する符号化データから，前記動きベクトルに基づく予測画像データを生成し，前記予測誤差データを加算して画像データを再生する動画像データの復号化または符号化装置において，前記マクロブロックに対応して当該マクロブロックの動きベクトルを格納する動きベクトルメモリと，当該マクロブロックに割り当てられた動きベクトルの種類に対応する動き補償ブロックタイプに依存することなく，当該マクロブロックの動きベクトルを最小動き補償ブロック単位で前記動きベクトルメモリに格納し，メディアン予測演算における候補ブロックの動きベクトルを現マクロブロックの動き補償ブロックタイプに応じたアドレスに基づいて前記動きベクトルメモリから読み出すメモリ制御部とを有する。
【０００９】
上記の第１の側面において，好ましい態様では，前記動き補償ブロックタイプは，前記マクロブロックに対して単一の動きベクトルを有する第１のタイプと，前記マクロブロックを細分化した複数の動き補償ブロックに対応して複数の動きベクトルを有する第２のタイプとを少なくとも有し，前記最小動き補償ブロックは，前記第２のタイプでの最小に細分化されうるブロックである。
【００１０】
ここで候補ブロックとは，この現マクロブロックの動きベクトルに基づいて特定される参照先マクロブロックの周囲，例えば上，右上，左に位置するマクロブロックである。勧告されている符号化・復号化方式によれば，候補ブロックの動きベクトルを加味して予測用動きベクトルを求めることで，予測画像データとの差分である予測誤差を小さくすることができる。
【発明の効果】
【００１１】
本発明によれば，マクロブロックの動き補償ブロックタイプに依存することなく動きベクトルを最小動き補償ブロック単位で格納するので，メディアン予測演算時の候補ブロックの動きベクトルの読み出しを簡単化でき，処理効率を高めることができる。
【発明を実施するための最良の形態】
【００１２】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１３】
図１は，本実施の形態における動画像データの符号化回路と復号化回路の構成図である。図１（Ａ）の符号化回路において，動画像を構成するフレーム毎の画像データＩＭＧが供給され，符号化データＣＤが出力される。動きベクトル生成部２８は，供給された画像データＩＭＧについて１６ｘ１６画素からなるマクロブロック毎に動きベクトルＭＶを生成する。フレームメモリ２４には以前のフレームの画像データが格納されており，予測画像作成部２６が現フレームの動きベクトルＭＶと例えば前フレームの画像データとから予測画像データ２７を生成する。そして，減算器１０が画像データＩＭＧと予測画像データ２７の差分データを予測誤差データ１１として生成する。この予測誤差データ１１は，ＤＣＴ器１２が離散コサイン変換を行い，量子化器１４が量子化し，量子化されたデータが可変長符号化器１６で可変長符号化され，その符号化圧縮された符号化データＣＤが復号化回路に供給される。一方，量子化されたデータは，逆量子化器１８で逆量子化され，逆ＤＣＴ器２０で逆離散コサイン変換されて復号化され，この復号化された予測誤差データが加算器２２で予測画像データ２７に加算され，元の画像データがローカル復号画像データとしてフレームメモリ２４に格納される。
【００１４】
一方，図１（Ｂ）の符号化回路では，符号化データＣＤが可変長復号化器３０にて復号化される。復号化された予測誤差データ３１は逆量子化器３２と逆ＤＣＴ器３４でそれぞれ逆量子化及び逆離散コサイン変換される。また，復号化された動きベクトルＭＶは予測用動きベクトル生成器４２に供給される。予測用動きベクトル生成器４２は，例えば前フレームのマクロブロック毎または動き補償ブロック（ＭＣブロック）毎に動きベクトルを格納する動きベクトルメモリ４４から，動きベクトルＭＶに対応する参照先マクロブロックの周囲のブロックの動きベクトルＭＶ１，２，３を読み出し，予測用動きベクトルＰＭＶを求める。予測画像作成部３８は，この予測用動きベクトルＰＭＶと例えば前フレームの画像データとに基づき，予測画像データ３９を生成する。そして，加算器３６が復号化された予測誤差データ３５と予測画像データ３９とを加算して復号化された画像データＩＭＧを出力する。この復号化された画像データＩＭＧはフレームメモリ４０に格納され，次のフレームの画像の予測画像生成に利用される。
【００１５】
図２は，動きベクトルと予測画像及び予測誤差を説明する図である。図２（Ａ）に示されるように，時刻ａにおける画像がその後の時刻ｂにおいて右方向に移動する場合，その移動情報を動きベクトルｍｖとして時刻ｂのマクロブロックに割り当てる。動きベクトルｍｖは，時刻ａの画像のうち時刻ｂのマクロブロックの画像に最も近い画像の位置に対応して生成される。したがって，動きベクトルｍｖで再生される予測画像と時刻ｂでの画像との間には何らかの差分（予測誤差）が生じることになる。したがって，動画像符号化回路は，この動きベクトルと予測誤差データとを符号化する。
【００１６】
図２（Ｂ）に示されるように，復号化回路では，時刻ｂの画像５０を再生するためには，時刻ａでの画像において，画像５０に対応する位置５２から動きベクトルｍｖに応じた位置５４の画像を予測画像とし，その予測画像に予測誤差を加算して画像５０を再生する。
【００１７】
図３は，マクロブロックと動きベクトルの関係を示す図である。図３（Ａ）に示されるとおり，フレームの画像５６は１６×１６画素のマクロブロックＭＢに分割され，各マクロブロックＭＢに対して矢印で示す動きベクトル情報が与えられる。また，図３（Ｂ）に示されるとおり，マクロブロックＭＢに対して複数の動きベクトル情報が与えられる場合もある。このように，１つのマクロブロックＭＢを複数のブロックに分割しその分割したブロック毎に動きベクトル情報を与えることで，急激に変化する動画像に追従して符号化を行うことができる。図３（Ｂ）の例では，一部のマクロブロックＭＢは上下のブロックに分割されそれぞれのブロックに動きベクトルが与えられている。それ以外のマクロブロックＭＢには単一の動きベクトルが与えられる。
【００１８】
図４は，予測用動きベクトルを説明する図である。また，図５は，予測用動きベクトルを利用した復号化処理のフローチャート図である。両図を参照しながら，復号化処理について説明する。図４には，前フレームＦＭn-1と現フレームＦＭnが示されている。ここでは，簡単化のために予測画像データが前フレームの画像データから生成されることを前提にしている。
【００１９】
今，現フレームのマクロブロックＭＢの画像を再生するとすると，そのマクロブロックＭＢの動きベクトルＭＶに基づいて参照先マクロブロックの位置ＭＭＣを求め，当該位置ＭＭＣに対応する位置の前フレーム画像の参照マクロブロックＲＭＢを検出する（Ｓ１０）。そして，前フレームの参照マクロブロックＲＭＢの周囲にある上と右上と左の候補ブロックの動きベクトルＭＶ０，ＭＶ２，ＭＶ３を動きベクトルメモリから読み出す（Ｓ１２）。さらに，読み出した３つの動きベクトルＭＶ１，２，３の中央値を予測用動きベクトルＰＭＶとして求める（Ｓ１４）。そして，この予測用動きベクトルＰＭＶに基づく位置にある前フレームＦＭn-1のマクロブロックの画像データを予測画像データとし，それに差分データ（予測誤差データ）を加算して現フレームＦＭnのマクロブロックＭＢの画像データを再生する（Ｓ１６）。
【００２０】
図６は，動き補償ブロックタイプを説明する図である。図３（Ｂ）で説明したとおり，動画像の符号化・復号化方式には，１つのマクロブロックに複数の動きベクトルを与える場合がある。図６には，Ｈ．２６４方式で採用されている動き補償ブロックタイプ（ＭＣブロックタイプ）を示す。画像信号は１６ｘ１６画素のマクロブロック６０の単位で画像信号メモリ（フレームメモリ）に格納される。それに対して，各マクロブロックには動きベクトルＭＶが与えられるが，その動きベクトルＭＶは動き補償ブロックタイプ（ＭＣブロックタイプ）に応じて単一または複数割り当てられる。
【００２１】
図６に示すＭＣブロックタイプは，１６ｘ１６画素に１つの動きベクトルＭＶが割り当てられるＭＣブロックタイプ６１と，上下１６ｘ８画素ブロックにそれぞれ動きベクトルＭＶが割り当てられるＭＣブロックタイプ６２と，左右８ｘ１６画素ブロックにそれぞれ動きベクトルＭＶが割り当てられるＭＣブロックタイプ６３と，４つの８ｘ８画素ブロックにそれぞれ動きベクトルＭＶが割り当てられるＭＣブロックタイプ６４と，８つの８ｘ４画素ブロックにそれぞれ動きベクトルＭＶが割り当てられるＭＣブロックタイプ６５と，８つの４ｘ８画素ブロックにそれぞれ動きベクトルＭＶが割り当てられるＭＣブロックタイプ６６と，１６の４ｘ４画素ブロックにそれぞれ動きベクトルＭＶが割り当てられるＭＣブロックタイプ６７の７種類ある。ＭＣブロックタイプ６７は，最小動き補償ブロック（４ｘ４）毎に動きベクトルが割り当てられる。
【００２２】
そのため，動きベクトルメモリに格納される動きベクトルＭＶの情報は，各マクロブロックのＭＣブロックタイプに応じて異なる個数になる。これをメモリのアドレス空間で考えると，ＭＣブロックタイプに応じて各マクロブロックの動きベクトル情報の格納アドレス数が１，２，４，８，１６個と異なることを意味する。したがって，動きベクトルメモリから候補ブロックの動きベクトルを読み出す場合，ＭＣブロックタイプを考慮して対応するアドレスの動きベクトルを読み出す必要がある。
【００２３】
図７は，異なるＭＣブロックタイプ間の問題点を示す図である。この例では，現マクロブロック７０のＭＣブロックタイプが８×８のブロック毎に動きベクトルｍｖ０〜３を有するものであり，この現マクロブロック７０から読み出すべき候補マクロブロック７２が１６ｘ１６のブロックに一つの動きベクトルｍｖ０を有するものとする。この場合，現マクロブロック７０の動きベクトルメモリ７１には，ＭＣブロックタイプ情報に加えて４つの動きベクトルｍｖ０〜３が格納され，マクロブロック７２の動きベクトルメモリ７３には，ＭＣブロックタイプ情報に加えて１つの動きベクトルｍｖ０が格納される。
【００２４】
現マクロブロック７０の動きベクトルｍｖ０〜３の３つのブロックに対して読み出すべき候補マクロブロック７２の動きベクトルは全て同じ動きベクトル情報ｍｖ０になる。しかし，候補マクロブロック７２のＭＣブロックタイプが異なるタイプの場合は，読み出すべき候補マクロブロックの動きベクトルは異なってくる。つまり，互いのＭＣブロックタイプに応じて，どの動きベクトルを読み出すべきかをその都度演算により求める必要があり，煩雑な処理が要求される。
【００２５】
図８は，本実施の形態におけるメディアン予測での候補マクロブロックへの参照を示す図である。図７で説明したとおり，現マクロブロックのＭＣブロックタイプと候補マクロブロックのＭＣブロックタイプとの組合せにより，候補マクロブロックの参照すべき動きベクトルが異なることを説明する。図８中，ＭＢは現マクロブロック，ＭＢ１，２，３は，上，右上，左の候補マクロブロックである。
【００２６】
図８（ａ）〜（ｄ）は現マクロブロックＭＢが４つの８ｘ８ブロックに対応して動きベクトルが割り当てられるＭＣブロックタイプであり，それぞれ４つの８ｘ８ブロックに対応して参照すべき候補マクロブロックＭＢ１〜３のブロックが太枠で示されている。この場合，上の候補ブロックＭＢ１は１６ｘ１６ブロックのＭＣブロックタイプ，右上の候補ブロックＭＢ２は２個の８ｘ１６ブロックのＭＣブロックタイプ，左の候補ブロックＭＢ３は２個の１６ｘ８ブロックのＭＣブロックタイプである。
【００２７】
図８（ａ）では，太枠に示されるとおり，現マクロブロックＭＢのブロック３ｘ０に対して，マクロブロックＭＢ１では１つのブロックの動きベクトルが，ＭＢ２では左側の８ｘ１６ブロックの動きベクトルが，ＭＢ３では上側の１６ｘ８ブロックの動きベクトルがそれぞれ読み出される。同様に，図８（ｂ）では，現マクロブロックＭＢのブロック３ｘ１に対して，マクロブロックＭＢ１では１つのブロックの動きベクトルが，ＭＢ２では右側の８ｘ１６ブロックの動きベクトルが，ＭＢ３では上側の１６ｘ８ブロックの動きベクトルがそれぞれ読み出される。図８（ｃ）では，現マクロブロックＭＢのブロック３ｘ２に対して，マクロブロックＭＢ１では１つのブロックの動きベクトルが，ＭＢ２では左側の８ｘ１６ブロックの動きベクトルが，ＭＢ３では下側の１６ｘ８ブロックの動きベクトルがそれぞれ読み出される。そして，図８（ｄ）では，現マクロブロックＭＢのブロック３ｘ３に対して，マクロブロックＭＢ１では１つのブロックの動きベクトルが，ＭＢ２では右側の８ｘ１６ブロックの動きベクトルが，ＭＢ３では下側の１６ｘ８ブロックの動きベクトルがそれぞれ読み出される。
【００２８】
図８（ｅ）は，現マクロブロックＭＢが１６ｘ１６ブロックに対応して１つの動きベクトルが割り当てられるＭＣブロックタイプであり，候補ブロックＭＢ１は４つの８ｘ８ブロック，候補ブロックＭＢ２は上下１６ｘ８ブロックのＭＣブロックタイプであり，候補ブロックＭＢ３は左右８ｘ１６ブロックのＭＣブロックタイプである。この場合，現マクロブロックＭＢの１６ｘ１６ブロックに対して，マクロブロックＭＢ１では左下のブロック０ｘ２の動きベクトルが，ＭＢ２では下側のブロック１ｘ１の動きベクトルが，ＭＢ３では右側のブロック２ｘ１の動きベクトルがそれぞれ読み出される。
【００２９】
図８（ｆ）は，現マクロブロックＭＢが上下１６ｘ８ブロックに対応して２つの動きベクトルが割り当てられるＭＣブロックタイプであり，候補ブロックＭＢ１は４つの８ｘ８ブロック，候補ブロックＭＢ２は上下１６ｘ８ブロックのＭＣブロックタイプであり，候補ブロックＭＢ３は左右８ｘ１６ブロックのＭＣブロックタイプである。この場合，現マクロブロックＭＢの上側ブロック３ｘ０に対して，マクロブロックＭＢ１では左下のブロック０ｘ２の動きベクトルが，ＭＢ２では下側のブロック１ｘ１の動きベクトルが，ＭＢ３では右側のブロック２ｘ１の動きベクトルがそれぞれ読み出される。
【００３０】
以上の通り，現マクロブロックのＭＣブロックタイプと候補マクロブロックのＭＣブロックタイプとの組合せに依存して，読み出すべき動きベクトルの位置が異なっている。そして，読み出した動きベクトルの中央値が演算され，それが補償された動きベクトルとして予測画像データの生成に利用される。
【００３１】
図９は，動きベクトルメモリの構成例を示す図である。これにより読み出すべき動きベクトルの位置が異なることを示す。図９には，図８（ｂ）（ｃ）の例が示される。動きベクトルメモリ内には，上側の候補マクロブロックＭＢ１にはブロック０ｘ０の動きベクトルが，右上の候補マクロブロックＭＢ２にはブロック１ｘ０，１ｘ１の動きベクトルが，左の候補マクロブロックＭＢ３にはブロック２ｘ０，２ｘ１の動きベクトルが，そして現マクロブロックＭＢにはブロック３ｘ０〜３ｘ３の動きベクトルがそれぞれ格納されている。そして，図８（ｂ）のように現マクロブロックのブロック３ｘ１に対しては，実線で示される先のブロックの動きベクトルを読み出す必要があるのに対して，図８（ｃ）のように現マクロブロックのブロック３ｘ２に対しては，破線で示される先のブロックの動きベクトルを読み出す必要がある。このように両マクロブロックのＭＣブロックタイプに応じて，実線と破線で示したとおり読み出すべき動きベクトルの格納位置（メモリ内アドレス）が異なる。したがって，現マクロブロックと候補マクロブロックのＭＣブロックタイプ情報を基にして読み出すべき動きベクトルのアドレスを求める必要があり，処理工数の増大になる。
【００３２】
図１０は，本実施の形態における動きベクトルメモリへの動きベクトル書き込み方法を示す図である。本実施の形態では，ＭＣブロックタイプに依存することなく各マクロブロックに対して１６種類の動きベクトルを動きベクトルメモリに格納する。つまり，動きベクトルメモリに最小動き補償ブロック単位で動きベクトルを書き込む。
【００３３】
図１０（ａ）はＭＣブロックタイプが１６ｘ１６ブロックに１つの動きベクトルが与えられるタイプの場合であり，動きベクトルメモリには１６のブロック０〜１５に対応して同じ動きベクトルを重複して格納する。図１０（ｂ）はＭＣブロックタイプが上下２つの１６ｘ８ブロックにそれぞれ動きベクトルが与えられるタイプの場合であるが，動きベクトルメモリには１６のブロック０〜１５に対応して同じ２つの動きベクトルを重複して格納する。つまり，動きベクトルメモリにはブロック０〜７に対応して第１の動きベクトルを重複して格納し，ブロック８〜１５に対応して第２の動きベクトルを重複して格納する。
【００３４】
図１０（ｃ）はＭＣブロックタイプが４つの８ｘ８ブロックにそれぞれ動きベクトルが与えられるタイプの場合であるが，動きベクトルメモリには１６のブロック０〜１５に対応して４つの動きベクトルを重複して格納する。つまり，動きベクトルメモリにはブロック０，１，４，５に対応して第１の動きベクトルを重複して格納し，ブロック２，３，６，７に対応して第２の動きベクトルを重複して格納し，ブロック８，９，１２，１３に対応して第３の動きベクトルを重複して格納し，ブロック１０，１１，１４，１５に対応して第４の動きベクトルを重複して格納する。
【００３５】
さらに，図１０（ｄ）はＭＣブロックタイプが最小動き補償ブロックである１６個の４ｘ４ブロックにそれぞれ動きベクトルが与えられるタイプの場合であり，これら１６個の動きベクトルは動きベクトルメモリ内にその最小動き補償ブロック０〜１５に対応して格納される。
【００３６】
図１１は，本実施の形態における動きベクトルメモリへの動きベクトル書き込み方法を示す図である。図１１（ａ）（ｂ）（ｃ）は図１０（ａ）（ｂ）（ｃ）に対応する。図１１（ａ）に示すとおり，ＭＣブロックタイプが１６ｘ１６ブロックの場合，動きベクトルメモリにはそのアドレス０ｘ０〜０ｘＦ（１６進法）に１つの動きベクトルｍｖ０が重複して格納される。また，図１１（ｂ）に示すとおり，ＭＣブロックタイプが２つの１６ｘ８ブロックの場合，動きベクトルメモリにはアドレス０ｘ０〜０ｘ７に動きベクトルｍｖ０が，アドレス０ｘ８〜０ｘＦに動きベクトルｍｖ１がそれぞれ重複して格納される。そして，図１１（ｃ）に示すように，ＭＣブロックタイプが４つの８ｘ８ブロックの場合，動きベクトルメモリのアドレス０ｘ０〜０ｘ３に動きベクトルｍｖ０が，アドレス０ｘ４〜０ｘ７に動きベクトルｍｖ１が，アドレス０ｘ８〜０ｘＢに動きベクトルｍｖ２が，アドレス０ｘＣ〜０ｘＦに動きベクトルｍｖ３がそれぞれ重複して格納される。
【００３７】
以上のように，ＭＣブロックタイプにかかわらず，各マクロブロックに対して動きベクトルメモリの１６の格納アドレス領域に動きベクトルを格納する。このように最小動き補償ブロック単位で動きベクトルをメモリ内に格納することにより，候補マクロブロックの動きベクトルの読み出し動作では，現マクロブロックのＭＣブロックタイプのみに依存してどの動きベクトルを読み出せば良いか決定することができる。
【００３８】
図１２は，本実施の形態における動きベクトルメモリの読み出し方法を示す図である。図１２には，図８（ｂ）（ｃ）の場合の読み出し位置が実線と破線で示されている。本実施の形態によれば，各マクロブロックに対し動きベクトルメモリ内の１６のアドレスに動きベクトルが書き込まれる。図８に示すとおり，図８（ｂ）の場合は現マクロブロックＭＢのブロック３ｘ１に対応して読み出すべき動きベクトルのブロックは斜線矩形で示した通りであり，上ブロックＭＢ１ではアドレス０ｘＣ，右上ブロックＭＢ２ではアドレス１ｘＥ，左ブロックＭＢ３ではアドレス２ｘ４の動きベクトルが読み出される。また，図８（ｃ）の場合は，現マクロブロックＭＢのブロック３ｘ２に対応して，上ブロックＭＢ１ではアドレス０ｘＥ，右上ブロックＭＢ２ではアドレス１ｘＣ，左ブロックＭＢ３ではアドレス２ｘＢの動きベクトルが読み出される。図８（ａ）（ｄ）の場合も同様である。
【００３９】
また，図８（ｅ）（ｆ）のように現マクロブロックＭＢのＭＣブロックタイプが異なると，それに対応して読み出すべきアドレスも異なる。しかしながら，読み出し先のマクロブロックＭＢ１，２，３のＭＣブロックタイプに依存することなく，現マクロブロックのタイプにのみ依存して読み出しアドレスを確定することができる。各マクロブロックに対して１６のアドレス位置に動きベクトルが格納されているからである。
【００４０】
このように，本実施の形態では，メディアン予測工程での候補マクロブロック内の動きベクトルの読み出し動作において，現マクロブロックのＭＣブロックタイプが判明すればそれに基づいて読み出し先の候補マクロブロックのＭＣブロックタイプに依存することなく，動きベクトルメモリ内の読み出しアドレスを確定することができる。
【００４１】
なお，現マクロブロックのＭＣブロックタイプに対応して，各ブロックにおいて読み出すべき候補マクロブロック内のブロックの位置は，ＭＰＥＧ４やＨ．２６４などの勧告により指定されている。そこで，勧告により指定されているブロックの位置の例えば先頭アドレスの動きベクトルを読み出すことで，簡単に指定ブロックの動きベクトルを読み出すことができる。読み出し先のマクロブロックのＭＣブロックタイプに依存することなく，全て１６アドレス位置に動きベクトルが格納されるので，読み出しアドレスの特定は現マクロブロックのＭＣブロックタイプに応じて一義的であり，読み出しアドレスの生成に際して特別の演算処理は必要ない。
【００４２】
図１３は，本実施の形態におけるメモリ制御部の構成図である。このメモリ制御部４５は，動きベクトルメモリ４４（図１（Ｂ）参照）に対するメモリインターフェースであり，メモリ４４に格納すべき動きベクトルＭＶをメモリ内の所定のアドレスに書き込み制御し，メモリ４４から読み出すべき動きベクトルをメモリ内の対応アドレスから読み出し制御する。読み出されたデータＭＶ１，２，３は，予測用動きベクトル生成部４２に供給され，その中央値を求めるなどの演算処理により予測用動きベクトルＰＭＶが生成される。
【００４３】
メモリ制御部４５は，マクロブロックの格納すべき動きベクトルＭＶをメモリ４４に書き込むための回路４５１，４５２，４５３と，現マクロブロックに対して読み出すべき動きベクトルＭＶ１，２，３を読み出すための回路４５４，４５５を有する。
【００４４】
図１（Ｂ）に示したとおり，可変長復号化器３０で復号化された動きベクトルＭＶは，一旦動きベクトルメモリ４４に書き込まれる。その時，処理中のマクロブロックＭＢのアドレスが書き込みアドレス制御部４５１に与えられると，それが１６の書き込みアドレスＷＡｄｄを順次生成する。また，そのマクロブロックのＭＣブロックタイプがＭＶブロックタイプ識別部４５２に供給され，図６の例では７種類のタイプのいずれかであることが識別され，その識別結果に応じて，タイミング調整及びデータ拡張処理部４５３が，書き込みアドレスＷＡｄｄのタイミングに同期して格納動きベクトルＭＶを書き込みデータＷＤａｔａとして動きベクトルメモリ４４に供給する。
【００４５】
図１４は，本実施の形態におけるメモリ制御部の書き込み動作と読み出し動作のタイミングチャート図である。図１４（Ａ）（Ｂ）に書き込み動作が示される。まず，処理中のマクロブロックＭＢのＭＣブロックタイプが１６ｘ１６の場合は，動きベクトルは１個しかない。そこで，書き込みアドレス制御部４５１が１６個のアドレスをメモリ４４に供給するタイミングに同期して，タイミング調整及びデータ拡張処理部４５３が１つの動きベクトルを書き込みデータＷｄａｔａとしてメモリ４４に与える。それにより，メモリ４４の１６のアドレスには１つの動きベクトル（１６ｘ１６（０））が書き込まれる。その結果，図１１（ａ）のようになる。
【００４６】
次に，図１１（ｃ）の場合で説明すると，書き込みアドレス制御部４５１が１６個のアドレスをメモリ４４に供給するタイミングに同期して，タイミング調整及びデータ拡張処理部４５３が４種類の動きベクトル（８ｘ８（０）〜（３））を書き込みデータＷｄａｔａとしてメモリ４４に与える。図１４中，データラッチ選択信号は，タイミング調整及びデータ拡張処理部４５３内の制御信号であり，ＭＣブロックタイプ（４ｘ４）に応答して，タイミング調整及びデータ拡張処理部４５３は，データラッチ選択信号０〜３に応じて格納動きベクトルＭＶを対応する内部レジスタ（図示せず）にラッチし，ラッチされた動きベクトルを書き込みデータＷｄａｔａとしてメモリ４４に供給する。
【００４７】
さらに，ＭＣブロックタイプが４ｘ４の場合は，１６種類の格納動きベクトル４ｘ４（０）〜（１５）が，１６個の書き込みアドレスＷＡｄｄに対応してメモリ４４に書き込みデータＷＤａｔａとして与えられる。そして，内部のデータラッチ信号に応答して１６種類の動きベクトルが内蔵ラッチ回路にラッチされる。
【００４８】
次に読み出し動作について説明する。動きベクトルメモリの読み出し動作は，図１２で説明したとおりである。ＭＣブロックタイプ識別部４５５は，現マクロブロックのＭＣブロックタイプを供給されてそれを識別し，読み出しアドレス制御部４５４は，現マクロブロックに対応する参照マクロブロックのアドレスと識別されたＭＣブロックタイプに応じて，３つの読み出しアドレスを生成する。その読み出しアドレスに対応してメモリ４４から読み出された動きベクトルＭＶ１，２，３が，予測用動きベクトル生成部４２に出力される。
【００４９】
図１４（Ｃ）は，ＭＣブロックタイプが１６ｘ１６ブロックの場合（図８（ｅ）の例）と８ｘ８ブロックの場合（図８（ａ）〜（ｄ）の例）の読み出し動作を示す。１６ｘ１６ブロックの場合，現マクロブロックのＭＣブロックタイプに対応して，読み出すべき３つの動きベクトルのブロック位置が特定される。したがって，読み出しアドレス制御部４５４は，アドレスＡ１，Ａ２，Ａ３を読み出しアドレスＲＡｄｄとしてメモリ４４に供給し，それに対応して動きベクトルｍｖ１，２，３が読み出しデータＲＤａｔａとして出力される。予測用動きベクトル生成部４２は，それらから予測用動きベクトルＰＭＶを生成する。８ｘ８ブロックの場合も同様に，現マクロブロックのＭＣブロックタイプに対応して読み出すべき３つの動きベクトルのブロック位置が特定される。よって，読み出しアドレス制御部４５４は，アドレスＡ１１，Ａ１２，Ａ１３を生成し，それに対応して動きベクトルｍｖ１１，１２，１３が読み出され，予測用動きベクトルＰＭＶが生成される。
【００５０】
読み出しアドレス制御部４５４は，図１２に示したとおり，現マクロブロックのＭＣブロックタイプに応じてどのアドレスの動きベクトルを読み出すべきかを特定することができ，読み出す先のマクロブロックのＭＣブロックタイプに依存することなく，画一的に読み出しアドレスを生成することができる。
【００５１】
上記の実施の形態では，図１の復号化回路の動きベクトルメモリ４４に対するメモリ制御を対象にして説明した。しかしながら，図１の符号化回路においてもローカル復号画像データを生成する時の動きベクトル生成部２８における予測用動きベクトル生成工程においても適用することができる。
【００５２】
以上の実施の形態をまとめると，次の付記のとおりである。
【００５３】
（付記１）所定の画素単位からなるマクロブロックに対し，当該マクロブロック内の動画の動きに対応する動きベクトルと，当該動きベクトルにより予測される予測画像データとの差分である予測誤差データとが与えられる符号化データから，前記動きベクトルに基づく予測画像データを生成し，前記予測誤差データを加算して画像データを再生する動画像データの復号化または符号化装置において，
前記マクロブロックに対応して当該マクロブロックの動きベクトルを格納する動きベクトルメモリと，
当該マクロブロックに割り当てられた動きベクトルの種類を示す動き補償ブロックタイプに依存することなく，当該マクロブロックの動きベクトルを最小動き補償ブロック単位で前記動きベクトルメモリに格納し，メディアン予測演算における候補ブロックの動きベクトルを現マクロブロックの動き補償ブロックタイプに応じたアドレスに基づいて前記動きベクトルメモリから読み出すメモリ制御部とを有する動画像データの符号化または復号化装置。
【００５４】
（付記２）付記１において，
前記動き補償ブロックタイプは，前記マクロブロックに対して単一の動きベクトルを有する第１のタイプと，前記マクロブロックを細分化した複数の動き補償ブロックに対応して複数の動きベクトルを有する第２のタイプとを少なくとも有し，
前記最小動き補償ブロックは，前記第２のタイプでの最小に細分化されうるブロックであることを特徴とする動画像データの符号化または復号化装置。
【００５５】
（付記３）付記１において，
前記メモリ制御部は，前記マクロブロックに最小動き補償ブロックよりも大きいブロックに動きベクトルが割り当てられている場合は，前記動きベクトルメモリの最小動き補償ブロックに対応する複数アドレスに当該動きベクトルを繰り返し格納することを特徴とする動画像データの符号化または復号化装置。
【００５６】
（付記４）付記１において，
前記メモリ制御部は，前記候補ブロックの動きベクトルを前記動きベクトルメモリから読み出す時に，前記現マクロブロックの動き補償ブロックの位置に応じたアドレスに基づいて前記動きベクトルを読み出すことを特徴とする動画像データの符号化または復号化装置。
【００５７】
（付記５）付記１において，
さらに，前記読み出された複数の候補ブロックの動きベクトルから予測用動きベクトルを演算する予測用動きベクトル生成部を有することを特徴とする動画像データの符号化または復号化装置。
【図面の簡単な説明】
【００５８】
【図１】本実施の形態における動画像データの符号化回路と復号化回路の構成図である。
【図２】動きベクトルと予測画像及び予測誤差を説明する図である。
【図３】マクロブロックと動きベクトルの関係を示す図である。
【図４】予測用動きベクトルを説明する図である。
【図５】予測用動きベクトルを利用した復号化処理のフローチャート図である。
【図６】動き補償ブロックタイプを説明する図である。
【図７】異なるＭＣブロックタイプ間の問題点を示す図である。
【図８】本実施の形態におけるメディアン予測での候補マクロブロックへの参照を示す図である。
【図９】動きベクトルメモリの構成例を示す図である。
【図１０】本実施の形態における動きベクトルメモリへの動きベクトル書き込み方法を示す図である。
【図１１】本実施の形態における動きベクトルメモリへの動きベクトル書き込み方法を示す図である。
【図１２】本実施の形態における動きベクトルメモリの読み出し方法を示す図である。
【図１３】本実施の形態におけるメモリ制御部の構成図である。
【図１４】本実施の形態におけるメモリ制御部の書き込み動作と読み出し動作のタイミングチャート図である。
【符号の説明】
【００５９】
４２：予測用動きベクトル生成部
４４：動きベクトルメモリ            ４５：メモリ制御部
４５１：書き込みアドレス制御部      ４５４：読み出しアドレス制御部
ＭＶ：格納動きベクトル              ＭＶ１，２，３：読み出し動きベクトル
ＰＭＶ：予測用動きベクトル
【図１】
0004519723.tif 000002
【図２】
0004519723.tif 000003
【図３】
0004519723.tif 000004
【図４】
0004519723.tif 000005
【図５】
0004519723.tif 000006
【図６】
0004519723.tif 000007
【図７】
0004519723.tif 000008
【図８】
0004519723.tif 000009
【図９】
0004519723.tif 000010
【図１０】
0004519723.tif 000011
【図１１】
0004519723.tif 000012
【図１２】
0004519723.tif 000013
【図１３】
0004519723.tif 000014
【図１４】
0004519723.tif 000015