(57)【要約】　　　（修正有）【課題】ブロックに含まれる動きベクトル数が複数種類用意されており、動きベクトルの符号化精度が１／８画素精度のように高い符号化方式が検討されている。しかし低レートの符号化では動きベクトルの符号量の関係から、ブロックに複数の動きが含まれる場合でも、少ない動きベクトル数で符号化する方法が選択される傾向がある。【解決手段】差分動きベクトルの符号化精度を付加情報なしでブロック毎に切り換える手段を提供する。具体的には、予測動きベクトルの精度と符号化モードに応じて、差分動きベクトルの符号化精度を切り換えるが、予測動きベクトルの精度が低い場合についてのみ差分動きベクトルの符号化精度を制限する手段を提供する。【効果】新たな付加情報を加えることなく、低レート符号化における動きベクトルの符号量が削減できる。また、高レート符号化の性能を落とさずに低レート符号化の性能が改善できる。【選択図】　図１
2004048522.tif 000002
【特許請求の範囲】
【請求項１】
画像を複数の符号化ブロックに分割し、該ブロックの動きベクトルを隣接位置の動きベクトルから予測し、前記ブロックの動きベクトルとその予測動きベクトルより算出される差分動きベクトルを符号化する手順を含む動画像符号化方法において、
前記差分動きベクトルの精度を複数用意し、ブロック内で符号化すべき動きベクトルの数が異なる複数種の小ブロック形状タイプを用意し、
前記各予測動きベクトルの精度に応じて前記差分動きベクトルの符号化精度を切り換えることを特徴とする符号化方法。
【請求項２】
画像を複数の符号化ブロックに分割し、該ブロックの動きベクトルを隣接位置の動きベクトルから予測し、前記ブロックの動きベクトルとその予測動きベクトルより算出される差分動きベクトルを符号化する手順を含む動画像符号化方法において、
前記差分動きベクトルの精度を複数用意し、ブロック内で符号化すべき動きベクトルの数が異なる複数種の小ブロック形状タイプを用意し、
前記符号化ブロックの小ブロック形状タイプと前記予測動きベクトルの精度に応じて前記差分動きベクトルの符号化精度を切り換えることを特徴とする符号化方法。
【請求項３】
画像を複数の符号化ブロックに分割し、該ブロックの動きベクトルを隣接位置の動きベクトルから予測し、前記ブロックの動きベクトルとその予測動きベクトルより算出される差分動きベクトルを符号化する手順を含む動画像符号化方法において、
前記差分動きベクトルの精度を複数用意し、ブロック内で符号化すべき動きベクトルの数が異なる複数種の小ブロック形状タイプを用意し、
前記符号化ブロックの小ブロック形状タイプと前記予測動きベクトルの精度とフレームタイプとに応じて前記差分動き動きベクトルの符号化精度を切り換えることを特徴とする符号化方法。
【請求項４】
請求項１乃至３の何れかに記載の動画像符号化方法において、
前記各予測動きベクトルの前記ブロックの水平方向の精度に応じて、前記差分動きベクトルの水平方向の符号化精度を切り換え、前記各予測動きベクトルの前記ブロックの垂直方向の精度に応じて、前記差分動きベクトルの垂直方向の符号化精度を切り換えることを特徴とする符号化方法。
【請求項５】
画像を複数の復号ブロックに分割し、該ブロックの動きベクトルを隣接位置の復号動きベクトルから予測し、前記ブロックの動きベクトルを復号し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手順を含む動画像復号化方法において、
前記差分動きベクトルの精度を複数用意し、ブロック内で復号すべき動きベクトル数が異なる複数種の小ブロック形状タイプを用意し、
前記予測動きベクトルの精度に応じて前記差分動き動きベクトルの復号化精度を切り換えることを特徴とする復号化方法。
【請求項６】
画像を複数の復号ブロックに分割し、該ブロックの動きベクトルを隣接位置の復号動きベクトルから予測し、前記ブロックの動きベクトルを復号し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手順を含む動画像復号化方法において、
前記差分動きベクトルの精度を複数用意し、ブロック内で復号すべき動きベクトル数が異なる複数種の小ブロック形状タイプを用意し、
前記小ブロック形状タイプと前記予測動きベクトルの精度とに応じて前記差分動き動きベクトルの復号化精度を切り換えることを特徴とする復号化方法。
【請求項７】
画像を複数の復号ブロックに分割し、該ブロックの動きベクトルを隣接位置の復号動きベクトルから予測し、前記ブロックの動きベクトルを復号し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手順を含む動画像復号化方法において、
前記差分動きベクトルの精度を複数用意し、ブロック内で復号すべき動きベクトル数が異なる複数種の小ブロック形状タイプを用意し、
前記小ブロック形状タイプと前記予測動きベクトルの精度とフレームタイプとに応じて前記差分動き動きベクトルの復号化精度を切り換えることを特徴とする復号化方法。
【請求項８】
請求項５乃至７の何れかに記載の動画像復号化方法において、
前記差分動きベクトルの前記ブロックの水平方向の精度に応じて、前記差分動
きベクトルの水平方向の符号化精度を切り換え、前記各予測動きベクトルの前記ブロックの垂直方向の精度に応じて、前記差分動きベクトルの垂直方向の符号化精度を切り換えることを特徴とする復号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、圧縮動画像データの符号化・復号化技術に属するものである。
【０００２】
【従来の技術】
ブロック単位で符号化・復号化処理を行う動画像の符号化・復号化方法において、数種類の動きベクトル精度を用意し、複数個束ねたブロック単位で動きベクトルの符号化精度を切り換える手段が、「特開平１１−４６３６４」に記載されている。
【０００３】
動画像符号化・復号化処理の概要について説明する。動画像の１フレームは、図３に示すように、１個の輝度信号（Ｙ信号：６１）と２個の色差信号（Ｃｒ信号：６２，　Ｃｂ信号：６３）にて構成されており、色差信号の画像サイズは縦横とも輝度信号の１／２となる。一般のビデオ規格では、動画像の各フレームを図３に示すような小ブロックに分割し、マクロブロックと呼ばれるブロック単位で再生処理を行う。図５にマクロブロックの構造を示す。マクロブロックは１６ｘ１６画素の１個のＹ信号ブロック３０と、それと空間的に一致する８ｘ８画素のＣｒ信号ブロック３１ならびにＣｂ信号ブロック３１にて構成されている。
ビデオの符号化は、上記に示したマクロブロック単位で処理される。符号化方法には、大きく分けて２種類あり、それぞれ、イントラ符号化（イントラモード）、予測符号化（インターモード）と呼ばれている。図１４にビデオの符号化装置の構成を示す。イントラ符号化は、符号化対象の入力マクロブロック画像に対して直接ＤＣＴを施し、各変換係数を量子化・符号化する空間方向のデータ圧縮方法である。入力マクロブロック画像２０１は、ＤＣＴ符号化ブロックに分割されＤＣＴ変換器２０３にてＤＣＴ係数に変換される。ＤＣＴ符号化ブロックサイズは従来の符号化方式では８×８画素が一般的であるが、最近では、ＭＰＥＧ−４　Ｐａｒｔ　１０　（Ａｄｖａｎｃｅｄ　Ｖｉｄｅｏ　Ｃｏｄｉｎｇ）などで４ｘ４画素サイズによるＤＣＴ変換も検討されているため、本明細書では、４×４ＤＣＴを例に説明する。図６に示すように、各マクロブロックは２４個の４ｘ４画素ブロックに分割され、ＤＣＴ変換器２０３にてそれぞれ１６個のＤＣＴ係数に変換される。各ＤＣＴ係数は、量子化器２０４にて量子化され、多重化器２０６にて符号化される。量子化されたＤＣＴ係数は、局部復号器２２０の逆量子化器２０７と逆ＤＣＴ器２０８にて、入力マクロブロックに復号され、フレームメモリ２０１に合成される。この局部復号器２２０は、復号側と同様の復号画像を作成する能力をもつ必要がある。フレームメモリに蓄積された画像は時間方向の予測に用いられる。このイントラ符号化は、前フレームに似通った部分がないマクロブロック（第１符号化フレームも含む）や、ＤＣＴに伴う蓄積演算誤差を解消したい部分等に配置される。なお、ここでは、ＤＣＴ器２０３への入力データを入力画像の分割マクロブロック画像としているが、入力マクロブロック画像に空間予測を施し、予測マクロブロック画像との誤差マクロブロックに対してＤＣＴ変換を施す方法も用いられる。
予測符号化のアルゴリズムは、ＭＣ−ＤＣＴ（動き補償−離散コサイン変換）と呼ばれている。１個のマクロブロック処理の符号化処理について、図１４にて説明する。まず、入力マクロブロック画像２０１とフレームメモリ２１０に蓄積されている符号化済みフレームの復号画像（参照フレーム）間の動き補償処理が、動き補償器２１１にて行われる。動き補償とは、参照フレームから対象マクロブロックの内容と似通った部分（一般的には、ブロック内の予測誤差信号の絶対値和あるいは２乗誤差和が小さい部分を選択する）を検索し、その動き量（動きベクトル）を符号化する時間方向の圧縮技術である。図４に動き補償の処理構造を示す。図４は、太枠で囲んだ現フレーム７１の輝度信号ブロック７２について、前フレーム７３（参照フレーム）上の予測ブロック７５と動きベクトル７６を示した図である。動きベクトル７６とは、現フレームの太枠ブロックに対して空間的に同位置に相当する前フレーム上のブロック７４（破線）から、前フレーム上の予測ブロック７５領域までの移動分を示している　（色差信号用の動きベクトル長は、輝度信号の半分とし、符号化はしない）。検出された動きベクトルは、ＭＶ予測器２１５から得られる予測動きベクトル（隣接ブロックの動きベクトルから予測）との間で差分処理された後、多重化器２０６にて符号化される。動き補償により前フレームから抜き出された予測マクロブロック画像２１３は、現フレームの入力マクロブロック画像２０１との間で差分器２０２にて差分処理され、差分マクロブロック画像が生成される。差分マクロブロック画像は、図６に示すように、２４個の４ｘ４画素ブロックに分割され、ＤＣＴ変換器２０３にてそれぞれ１６個のＤＣＴ係数に変換される。各ＤＣＴ係数は、量子化器２０４にて量子化され、多重化器２０６にて符号化される。インター符号化の場合も、量子化ＤＣＴ係数を局部復号器２２０の逆量子化器２０７と逆ＤＣＴ器２０８にて、差分マクロブロック画像に復号し、加算器２０９にて予測マクロブロック画像と加算した後、フレームメモリ２０１に合成する。なお、ここでは、１マクロブロックにて符号化する動きベクトルの数を１本としているが、マクロブロックを更に小ブロックに分割し、小ブロック毎に動きベクトルを算出し符号化する方法が一般的である。
予測符号化の動き補償方法としては、時間的に過去のフレームの情報を用いてＭＣを行う前方向予測符号化と、時間的に過去と未来のフレームの情報を用いてＭＣを行う双方向予測符号化に分けられる。上記に示した前方向予測符号化の動き補償では、前方予測のみを扱うが、双方向符号化の動き補償では、前方予測の他に、後方予測、双方向予測ならびに時間的に未来のフレームにおける動きベクトル情報を利用して双方向から予測を行う直接予測を扱う。
全てのマクロブロックに対してイントラ符号化を適用したフレームをＩ−ｐｉｃｔｕｒｅ、前方向予測符号化あるいはイントラ符号化にて構成されるフレームをＰ−ｐｉｃｔｕｒｅ、双方向符号化符号化あるいはイントラ符号化にて構成されるフレームをＢ−ｐｉｃｔｕｒｅと呼ぶ。Ｐ−ｐｉｃｔｕｒｅあるいはＢ−ｐｉｃｔｕｒｅでは、図１４のＩＮＴＲＡ／ＩＮＴＥＲ判定器２１４にて、各マクロブロックを予測符号化とイントラ符号化のいずれで行うかを判定し、判定結果２１８を多重化器２０６にて符号化する必要がある。
【０００４】
復号側での再生処理は符号化と逆の手順で行われる。図１５に復号装置の構成を示す。符号解読部５０１では、入力された符号化データを解析し、動きベクトル関連情報とマクロブロックタイプ情報をＭＶ予測器５０８に、量子化ＤＣＴ係数情報を逆量子化器５０２に振り分ける。マクロブロックタイプがイントラ符号化であった場合には、復号した量子化ＤＣＴ係数情報を、逆量子化器５０２と逆ＤＣＴ器５０３において、４×４画素ブロック毎に逆量子化・逆ＤＣＴ処理し、マクロブロック画像を再生する。マクロブロックの予測モードが予測符号化であった場合には、ＭＶ予測器５０８にて復号差分動きベクトルと予測動きベクトルから復号動きベクトルが算出され、動き補償器５０４に入力される。動き補償器５０４では、動き量に従って、前フレームの復号画像が蓄積されているフレームメモリ５０７から予測マクロブロック画像を抜き出す。次に、予測誤差信号に関する符号化データを、逆量子化器５０２と逆ＤＣＴ器５０３において、４×４画素ブロック毎に、逆量子化・逆ＤＣＴ処理し、差分マクロブロック画像を再生する。そして、予測マクロブロック画像と差分マクロブロック画像を加算器５０５にて加算処理し、マクロブロック画像を再生する。再生されたマクロブロック画像は、合成器５０６にて復号フレーム画像に合成される。また、復号フレーム画像は、次フレームの予測用にフレームメモリ５０７に蓄積される。
【０００５】
【発明が解決しようとする課題】
上述した符号化方式において、ブロックに含まれる動きベクトル数が複数種類用意されており、動きベクトルの符号化精度が１／８画素精度のように高い符号化方式が検討されている。しかしながら、低レートの符号化では動きベクトルの符号量の関係から、ブロックに複数の動きが含まれる場合でも、少ない動きベクトル数で符号化する方法が選択される傾向がありブロック毎に精度情報を送信する必要がある、ブロック毎に動きベクトル精度を異なるものとする方法の採用を妨げている。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、差分動きベクトルの符号化精度を付加情報なしでブロック毎に切り換える手段を提供する。具体的には、予測動きベクトルの精度と符号化モードに応じて、差分動きベクトルの符号化精度を切り換える方法を提供する。予測動きベクトルの精度が低い場合についてのみ差分動きベクトルの符号化精度を制限することにより、高レートの符号化性能を低減させることなく、低レートの符号化性能のみを改善する。
【０００７】
【発明の実施の形態】
予測動きベクトルの精度とブロックタイプに応じてマクロブロック毎に差分動きベクトルの精度を切り換える方法について順を追って説明する。
最初に、ブロックタイプについて説明する。本実施例では、図７に示す動き補償を行う際のマクロブロック分割タイプ（輝度成分）をブロックタイプとする。基本はタイプ５１〜タイプ５４の４種類である。タイプ５４は、４個の８×８ブロック５４−０〜５４−３それぞれについて、更にタイプ５４ａ，　５４ｂ，　５４ｃ，　５４ｄとイントラ符号化の５種類から選択する構造となっている。
次に、図８に、図７に示す分割タイプについて、予測動きベクトルの生成方法を示す。図７のモード１（５１）のブロック５１−０，　モード４（５４）の小ブロック５４ａ−０、５４ｂ−０、５４ｂ−１、５４ｃ−０、５４ｃ−１ならびに５４ｄ−０〜５４ｄ−３については、同じ予測方法を用いる。ここで、動きベクトルを符号化する対象の小ブロックを５０と仮定する。これらの小ブロックでは、動きベクトルの水平・垂直成分それぞれについて、隣接位置Ａ，　Ｂ，　Ｃに位置する３ブロックの動きベクトルを候補としてその中間値を計算し、中間値の動きベクトルを予測動きベクトルとする。但し、符号化順序やマクロブロック位置の関係で位置Ｃのブロックが符号化前の場合や画像の外に位置する場合が考えられる。この場合には、位置Ｃのかわりに位置Ｄに位置するブロックの動きベクトルを候補動きベクトルの１つとして用いる。なお、位置Ａ，　Ｂ，　Ｃ，　Ｄのブロックが動きベクトルを持たない場合には、その動きベクトルを‘０’ベクトルとして予測処理を行う。この際、３個の候補ブロックのうち２個が動きベクトルを持たない場合には、残りの１つの候補動きベクトルを予測動きベクトルとする。モード２（５２）の２個の小ブロック（５２−０，　５２−１）、モード３（５３）の２個の小ブロック（５３−０，　５３−１）については、図８に示す矢印の根元に位置するブロックの動きベクトルを予測値とする。なお、いずれのモードにおいても、色差成分用の動きベクトルは符号化せず、輝度成分の動きベクトルを２で割るなどして使用するのが一般的である。
次に、差分動きベクトルの符号化精度をマクロブロック毎に切り換えるための差分動きベクトルと動きベクトルの表現方法について説明する。ここでは、差分動きベクトルの精度の候補を、１／４画素精度、１／２画素精度、１画素精度の３種類と考える。ＭＶを１／４画素精度表現の動きベクトル成分を４倍した値、ＰＭＶを１／４画素精度表現の予測動きベクトル成分（図８にて算出）を４倍した値とすると、この表現にて、各精度候補に対するＭＶの値は以下のように制限される。
１画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも４の倍数となるＭＶ。
１／２画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも２の倍数となるＭＶ。
１／４画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも１の倍数となるＭＶ。
したがって、本方式の効果を符号化特性に反映されるためには動きベクトル推定において、予測誤差信号の絶対値和あるいは２乗誤差和に、動きベクトルの符号量の影響を加えた評価関数を用意する必要がある。この際、各小ブロックの最適評価値を（ＭＶ−ＰＭＶ）の各精度について算出おけば、マクロブロック内の全小ブロックの動きベクトル推定処理が終了した後、各精度について小ブロックの評価値の加算値を計算し、評価値の総和が小さい精度を差分動きベクトルの精度と決定することが可能となる。符号化する差分動きベクトルＭＶＤは以下の式にて算出される。
ＭＶＤ　＝　（ＭＶ　−　ＰＭＶ）＞＞ｍｖ＿ｓｈｉｆｔ、
式中のｍｖ＿ｓｈｉｆｔは、差分動きベクトルの精度を切り換えるためのパラメータであるである。復号化側では、ｍｖ＿ｓｈｉｆｔ値と復号ＭＶＤならびにＰＭＶから、以下の式にしたがって、各動きベクトル成分の復号ＭＶ値を再生する。
ＭＶ　＝　（ＭＶＤ＜＜ｍｖ＿ｓｈｉｆｔ）　＋　ＰＭＶ。
次に、差分動きベクトルの精度の候補が、１／８画素精度、１／４画素精度、１／２画素精度、１画素精度の４種類の場合を考える。ＭＶを１／８画素精度表現の動きベクトル成分を８倍した値、ＰＭＶを１／８画素精度表現の予測動きベクトル成分（図８にて算出）を８倍した値とすると、この表現にて、各精度候補に対するＭＶの値は以下のように制限される。
１画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも８の倍数となるＭＶ。
１／２画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも４の倍数となるＭＶ。
１／４画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも２の倍数となるＭＶ。
１／８画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも１の倍数となるＭＶ。
動き推定の方法については、１／４画素精度、１／２画素精度、１画素精度の３種類の場合と同じであるため、説明を省略する。差分動きベクトルＭＶＤは以下の式にて算出される。
ＭＶＤ　＝　（ＭＶ　−　ＰＭＶ）＞＞ｍｖ＿ｓｈｉｆｔ、
式中のｍｖ＿ｓｈｉｆｔは、差分動きベクトルの精度を切り換えるためのパラメータであるである。復号化側の処理も、差分動きベクトルの精度の候補が、１／４画素精度、１／２画素精度、１画素精度の３種類の場合と同じであり、ｍｖ＿ｓｈｉｆｔ値と復号ＭＶＤならびにＰＭＶから、以下の式にしたがって、各動きベクトル成分の復号ＭＶ値が再生される。
ＭＶ　＝　（ＭＶＤ＜＜ｍｖ＿ｓｈｉｆｔ）　＋　ＰＭＶ。
【０００８】
次に、差分動きベクトルの符号化精度の決定方法、すなわちパラメータｍｖ＿ｓｈｉｔの決定方法について説明する。図１は、図８に示した予測動きベクトルの精度と図７に示したマクロブロックの分割タイプに応じてｍｖ＿ｓｈｉｆｔ値を決める手順を示した図である。本処理は、符号化・復号側で実施されるが、さらに符号化側では、図４に示した動き探索時において、決定したｍｖ＿ｓｈｉｆｔ値に基づいて動きベクトルの探索精度を制限する。本実施例では、予測動きベクトルの精度が整数画素の場合にのみ、ｍｖ＿ｓｈｉｔ値の制御を実施する。最初に、予測動きベクトルの水平・垂直成分の精度をチェックし（１１０）、何れかの成分の精度が実数画素精度の場合には、ｍｖ＿ｓｈｉｆｔ値を０に設定する（１１１）。処理１１０にて、予測動きベクトルの精度が整数画素であった場合には、マクロブロックの分割タイプが１６ｘ１６（ｍｏｄｅ　１）であるか否かをチェックする（１２０）。処理１２０にてマクロブロックの分割タイプが１６ｘ１６（ｍｏｄｅ　１）と判定された場合には、差分動きベクトルの符号化精度を整数画素に制限する（１２１）。具体的には、ｍｖ＿ｓｈｉｆｔ値が０のときの動きベクトル最大精度をチェックし（１２２）、１／４画素精度の場合にはｍｖ＿ｓｈｉｆｔ値を２に設定し（１２３）、１／８画素精度の場にはｍｖ＿ｓｈｉｆｔ値を３に設定する（１２４）。処理１２０にてマクロブロックの分割タイプが１６ｘ１６（ｍｏｄｅ　１）でないと判定された場合には、マクロブロックの分割タイプが１６ｘ８（ｍｏｄｅ　２）または８ｘ１６（ｍｏｄｅ　３）　であるか否かをチェックする（１３０）。処理１３０にてマクロブロックの分割タイプが１６ｘ８（ｍｏｄｅ　２）または８ｘ１６（ｍｏｄｅ　３）と判定された場合には、差分動きベクトルの符号化精度を１／２画素に制限する（１３１）。具体的には、ｍｖ＿ｓｈｉｆｔ値が０のときの動きベクトル最大精度をチェックし（１２２）、１／４画素精度の場合にはｍｖ＿ｓｈｉｆｔ値を１に設定し（１３２）、１／８画素精度の場合にはｍｖ＿ｓｈｉｆｔ値を２に設定する（１３３）。処理１３０にてマクロブロックの分割タイプが１６ｘ８（ｍｏｄｅ　２）または８ｘ１６（ｍｏｄｅ　３）でないと判定された場合には、ｍｖ＿ｓｈｉｆｔ値を０に設定する（１１１）。なお、ここでは、水平・垂直成分のｍｖ＿ｓｈｉｆｔ値を同時に制御しているが、水平、垂直個別にｍｖ＿ｓｈｉｆｔ値を制御することも可能である。具体的には、図１では水平方向のベクトル成分と垂直方向のベクトル成分が共に処理１１０の条件を満たしている場合にのみ処理１２０を実施しているが、処理１１０にて予測動きベクトルの水平・垂直いずれかの成分が整数画素精度であるという条件を満たせば、処理１２０を実施する。但し、処理１１０にて予測ベクトルの精度が実数画素の成分に関しては、この処理１１０の時点でｍｖ＿ｓｈｉｆｔ値を０に決定し、予測ベクトルの精度が整数画素の成分についてにみ処理１２０以降の分岐処理を実施する。
【０００９】
図２は、図１にｍｖ＿ｓｈｉｆｔ値の制御条件に、フレームタイプを加えた例である。図２のｍｖ＿ｓｈｉｆｔ値制御方法では、処理１２０にてマクロブロックの分割タイプが１６ｘ１６（ｍｏｄｅ　１）であると判定された場合に、フレームタイプがＰ−ｐｉｃｔｕｒｅであるかＢ−ｐｉｃｔｕｒｅであるかをチェックする（１４０）。処理１４０にてフレームタイプがＰ−ｐｉｃｔｕｒｅと判定された場合には、差分動きベクトルの符号化精度を整数画素に制限し（１２１）、Ｂ−ｐｉｃｔｕｒｅと判定された場合には、差分動きベクトルの符号化精度を１／２画素に制限する（１３１）。
次に、図９、１０のマクロブロックタイプコード表と図１２、１３のデータシンタックスを用いて、マクロブロックデータの多重化方法を示す。符号化に使用する方法としては、１種類の可変長符号表のみを用いるＵｎｉｖｅｒｓａｌ　ＶＬＣ（ＵＶＬＣ）、固定長符号化と可変長符号化（各符号化要素に異なる符号表を用意）を組み合わせた符号化方法ならびに、算術符号化（Ｗｉｔｔｅｎ　ｅｔ　ａｌ．，　”Ａｒｉｔｈｍｅｔｉｃ　Ｃｏｄｉｎｇ　ｆｏｒ　Ｄａｔａ　Ｃｏｍｐｒｅｓｓｉｏｎ”，　Ｃｏｍｍ．　ｏｆ　ｔｈｅ　ＡＣＭ，　３０（６），　１９８７，　ｐｐ．５２０−５４１）などが考えられるが、本実施例では、ＵＶＬＣと算術符号化を例として説明する。図１１の表８１がＵＶＬＣの構成を示しており、Ｘｎの値は‘０’または‘１’となる。表８２に、実際の可変長符号表の例を示す。算術符号化の具体的な方法としては、各符号の意味を数ビットのバイナリーデータに置き換え、各ビットを各々の０と１の発生確率を示す生起確率モデルに応じて符号化する方法を考える。この方法は、ＣＡＢＡＣ（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ　Ａｄａｐｔｉｖｅ　Ｂｉｎａｒｙ　Ａｒｉｔｈｍｅｔｉｃ　Ｃｏｄｉｎｇ）と呼ばれている。
【００１０】
図１２がＰ−ｐｉｃｔｕｒｅのデータシンタックス、図１３がＢ−ｐｉｃｔｕｒｅデータシンタックスの一部（ＣＢＰ１５以降は図１２と同じであるため省略）を示している。まず、図１２から説明する。なお、Ｉ−ｐｉｃｔｕｒｅについては、本願の特徴に含まれないため説明を省略する。
【００１１】
ｐｉｃｔｕｒｅ　ｈｅａｄｅｒ　１０には画像サイズ、再生時刻など再生フレームの構造に関するデータが含まれる。ｐｉｃｔｕｒｅ　ｔｙｐｅ　１１は、フレームタイプ情報で、Ｉ−ｐｉｃｔｕｒｅ，　Ｐ−ｐｉｃｔｕｒｅ，　Ｂ−ｐｉｃｔｕｒｅの種別がここで符号化される。ＲＵＮ１９からＴｃｏｅｆｆ　ｃｈｒｏｍａ１７がマクロブロックデータにあたり、フレーム内のマクロブロック数だけ繰り返される。ＭＢ　ｔｙｐｅ１２では、表９１に示されるマクロブロックモードからマクロブロック毎に１つのモードが選択され、符号化される。但しＳＫＩＰモードについては、前フレームの復号画像から空間的に同一位置に相当するマクロブロック画像を切り出しコピーすることを意味する。このＳＫＩＰモードは隣接するマクロブロックで連続して発生する確率が高いため、ＵＶＬＣを用いた符号化方法では、ＭＢ　ｔｙｐｅ　１２では扱わず、連続するＳＫＩＰモードの数をＲＵＮ１９にてランレングス符号化（連続する０の数を符号化）する。１つ前のマクロブロックのタイプがＳＫＩＰモードでない場合には、連続するＳＫＩＰモードの数をゼロとしてＲＵＮを符号化する。なお、ＣＡＢＡＣを用いた符号化方法では、ＲＵＮ１９は使用せず、ＳＫＩＰもＭＢ　ｔｙｐｅ　１２にて扱う。表９１のｃｏｄｅ　ｎｕｍｂｅｒ　５，　６に示されているＩｎｔｒａＭ×ＮのＭ，　Ｎは空間予測を行う際の小ブロックサイズを示している。表９１のＭ×Ｎは動き補償を行う際の小ブロックサイズを示しており、それぞれ図７のモード１〜モード４に対応している。８×８（ｓｐｌｉｔ）では、図７のモード４に示される４個の８×８小ブロック５４−０〜５４−３について、５４ａ（８×８），　５４ｂ（８×４），　５４ｃ（４×８），　５４ｄ（４×４）とイントラ符号化の５種類の分割モードから、表９２を用いてそれぞれ１個のモードを選択する。このＭＢ　ｔｙｐｅ１２の符号化方法については、ＵＶＬＣを利用する場合には、表９１のｃｏｄｅ　ｎｕｍｂｅｒに対応するコードを表８２から選択して符号化する。ＣＡＢＡＣを利用する場合には、表９１のＢｉｎａｒｉｚａｔｉｏｎの欄に示されているビット列を各ビットの確率モデルを用いて算術符号化する。なお、ｃｏｄｅ　ｎｕｍｂｅｒ　４に示されるモードはＣＡＢＡＣの場合には使用しない。ＭＢ　ｔｙｐｅ１２にて８ｘ８（ｓｐｌｉｔ）、すなわちｃｏｄｅ　ｎｕｍｂｅｒ　３または４を選択したマクロブロックについては、８ｘ８　Ｐａｒｔｉｔｉｏｎ　１８が発生する。それ以外のマクロブロックモードでは、８ｘ８　Ｐａｒｔｉｔｉｏｎ　１８は発生しない。８ｘ８　Ｐａｒｔｉｔｉｏｎ　１８では、図７のモード４に属する４個の小ブロック５４−０〜５４−３について、それぞれ表９２に示される５個の分割モードから１つのモードが選択され、符号化される。ＵＶＬＣを利用する場合には、表９２のｃｏｄｅ　ｎｕｍｂｅｒに対応するコードを表８２から選択して符号化する。ＣＡＢＡＣを利用する場合には、表９２のＢｉｎａｒｉｚａｔｉｏｎの欄に示されているビット列と各ビットの確率モデルを用いて算術符号化する。Ｒｅｆｅｒｅｎｃｅ　ｆｒａｍｅ　１９は、動き補償処理に用いる参照フレームの種類を示す。ここでは、参照フレ��ムとして１フレーム前の復号画像から５フレーム前の復号画像までを選択の対象とし、それぞれ、ｃｏｄｅ　ｎｕｍｂｅｒ０〜４を割り当てる。このＲｅｆｅｒｅｎｃｅ　ｆｒａｍｅ　１９は、マクロブロック内の動きベクトルの符号化を伴う各小ブロックについて発生するが、ＳＫＩＰあるいはＩＮＴＲＡ　ＮｘＭが選択されたマクロブロックならびにＩｎｔｒａが選択された８ｘ８（ｓｐｌｉｔ）モード内の８ｘ８ブロックについては復号側で動き補償を行わないため省略される。ＵＶＬＣを利用する場合には、ｃｏｄｅ　ｎｕｍｂｅｒ０−４に対応するコードを表８２から選択して符号化する。また、ＭＢ　ｔｙｐｅ　１２にてｃｏｄｅ　ｎｕｍｂｅｒ　４のマクロブロックのいずれかが選択された場合には、８ｘ８（ｓｐｌｉｔ）モード内の８ｘ８ブロック内の全小ブロックについて自動的に１フレーム前の復号画像が参照フレームとして割り当てられることが約束されるため、Ｒｅｆｅｒｅｎｃｅ　ｆｒａｍｅ　１９は発生しない。ＣＡＢＡＣを利用する場合には、ｃｏｄｅ　ｎｕｍｂｅｒ０−４に対して、それぞれ１’，　０１’，　００１’，　０００１’，　００００１’のバイナリ−データを割り当て、ビット列と各ビットの確率モデルを用いて算術符号化する。ＭＶＤ１４は、ＭＢ　ｔｙｐｅ　１２と８ｘ８　Ｐａｒｔｉｔｉｏｎ　１８が動きベクトルを伴うマクロブロックであることを示す場合に発生する。したがって、ＭＢ　ｔｙｐｅ１２がＩｎｔｒａＭ×ＮあるいはＳＫＩＰの場合には、このデータは発生しない。ＭＢ　ｔｙｐｅ１２がＭ×Ｎの場合には、ＭＶＤ１４は、ＭＢ　ｔｙｐｅと８×８　Ｐａｒｔｉｔｉｏｎが示すベクトル数だけ繰り返し符号化される。例えば、１６×８の場合には、符号化すべき差分動きベクトル数が２個であり、各動きベクトルは水平、垂直の２成分から構成されるため、４個のＭＶＤが連続して符号化される。なお、ＭＶＤの値は、図１または図２の処理にて決められたｍｖ＿ｓｈｉｆｔ値に基づいて算出される。ＣＢＰ１５は、図６に示される２４個のＤＣＴブロックについて、‘０’以外の量子化ＤＣＴ係数（有意係数）が１６個係数に含まれているか否かを示す符号化データである。但し、２４個の各ＤＣＴブロックについてそれぞれ有意係数の有無情報を符号化すると付加情報が大きくなるため、ここでは、図６に示すように４個のＤＣＴブロックをまとめた８×８ブロック単位で有意係数の有無を符号化するものとする。Ｔｃｏｅｆｆ　ｌｕｍａ１６は、輝度ブロック４０における量子化ＤＣＴ係数の符号化データを示している。符号化は、４×４ブロック４０−０から４×４ブロック４０−１５まで、番号の小さい順にそれぞれ１６個の量子化係数が符号化される。但し、ＣＢＰにて有意係数が無いことが示されている８×８ブロックについては、符号化処理が省略される。Ｔｃｏｅｆｆ　ｃｈｒｏｍａ１７は、輝度ブロック４０における量子化ＤＣＴ係数の符号化データを示している。符号化は、４×４ブロック４１−０，　４１−２，　４１−３，　４１−４，　４２−０，　４２−１，　４２−３，　４２−４の順にそれぞれ１６個の量子化係数が符号化される。但し、ＣＢＰ１５にて有意係数が無いことが示されている信号成分については、符号化処理��省略される。これらの符号化データが図１４の多重化器２０６にて多重化され配信される。
復号側では、図１５の符号化解読器５０１にて、データシンタックスを解読し、復号処理する。ＵＶＬＣの場合は、符号化側と同じ符号化テーブルを使用することにより、元の符号が再現される。ＣＡＢＡＣの場合は、符号化側と同じ確率モデルを用い、同じ予測方法を用いることにより、元の符号が再現される。
【００１２】
次に、図１３について説明する。ＭＢ　ｔｙｐｅ２１では、表９３のマクロブロックモードからマクロブロック毎に１つのモードが選択され、符号化される。表９３のｃｏｄｅｎｕｍｂｅｒ　２３，　２４に示されているＩｎｔｒａＭ×ＮのＭ，　Ｎは空間予測を行う際の小ブロックサイズを示している。表９３のＭ×Ｎは動き補償を行う際の小ブロックサイズを示しており、それぞれ図７のモード１〜モード４に対応している。８×８（ｓｐｌｉｔ）は、図７のモード４に示される４個の小ブロック５４−０〜５４−３のそれぞれについて、５４ａ（８×８），　５４ｂ（８×４），　５４ｃ（４×８），　５４ｄ（４×４）、Ｄｉｒｅｃｔモード、イントラ符号化の６種類の分割モードから、表９４を用いて１個のモードを選択することを示している。表９３，　９４におけるＤｉｒｅｃｔは、直接予測を示している。表９３のＢｌｏｃｋ　１ならびにＢｌｏｃｋ　２は、図７のモード２またはモード３における２個の小ブロックを識別しており、各小ブロックの予測方向がＦｏｒｗａｒｄ　（前方予測）、Ｂａｃｋｗａｒｄ　（後方予測）、Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ　（双方向予測）のいずれであるかを示している。このＭＢ　ｔｙｐｅ２１は、ＵＶＬＣを利用する場合には、表９３のｃｏｄｅ　ｎｕｍｂｅｒに対応するコードを表８２から選択して符号化する。ＣＡＢＡＣを利用する場合には、表９３のＢｉｎａｒｉｚａｔｉｏｎの欄に示されているビット列と各ビットの確率モデルを用いて算術符号化する。ＭＢ　ｔｙｐｅ２１にて、８×８（ｓｐｌｉｔ）を選択したマクロブロックについては、８×８　Ｐａｒｔｉｔｉｏｎ　２６が発生する。それ以外のマクロブロックモードでは、８×８　Ｐａｒｔｉｔｉｏｎ　２６は発生しない。８ｘ８　Ｐａｒｔｉｔｉｏｎ　２６では、図７のモード４に属する４個の小ブロック５４−０〜５４−３について、それぞれ表９４に示される１４個の分割モードから１つのモードが選択され、符号化される。表９４のＰｒｅｄｉｃｔｉｏｎは、図７のモード４に属する各小ブロックの予測方向がＦｏｒｗａｒｄ　（前方予測）、Ｂａｃｋｗａｒｄ　（後方予測）、Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ　（双方向予測）のいずれであるかを示す。ＵＶＬＣを利用する場合には、表９４のｃｏｄｅ　ｎｕｍｂｅｒに対応するコードを表８２から選択して符号化する。ＣＡＢＡＣを利用する場合には、表９４のＢｉｎａｒｉｚａｔｉｏｎの欄に示されているビット列と各ビットの確率モデルを用いて算術符号化する。Ｒｅｆｅｒｅｎｃｅ　ｆｒａｍｅ　２７は、前方向の動き補償処理に用いる参照フレームの種類を示す。ここでは、参照フレームとして１フレーム前の復号画像から５フレーム前の復号画像までを選択の対象とし、それぞれ、ｃｏｄｅ　ｎｕｍｂｅｒを０〜４に割り当てる。この符号Ｒｅｆｅｒｅｎｃｅ　ｆｒａｍｅ　２７は、マクロブロック内の前方動きベクトルの符号化を伴う各小ブロック（前方予測あるいは双方向予測）について発生するが、ＤｉｒｅｃｔあるいはＩＮＴＲＡ　ＮｘＭが選択されたマクロブロックならびにＩｎｔｒａまたはＤｉｒｅｃｔが選択された８ｘ８（ｓｐｌｉｔ）モード内の８ｘ８ブロックについては省略される。また、動きベクトルを伴う小ブロ���クであっても、後方予測のみを伴う小ブロックでは、Ｒｅｆｅｒｅｎｃｅ　ｆｒａｍｅ　２７の符号化は省略される。Ｒｅｆｅｒｅｎｃｅ　ｆｒａｍｅ　２７の符号化方法については、図１２のＲｅｆｅｒｅｎｃｅ　ｆｒａｍｅ　１９の符号化方法と同じであるためここでは説明を省略する。ＭＶＤＦＷ２３は、ＭＢ　ｔｙｐｅ　２１と８ｘ８　Ｐａｒｔｉｔｉｏｎ　２２が示す前方予測（双方向予測も含む）に伴う動きベクトルを含むマクロブロックである場合に発生する。同様に、ＭＶＤＢＷ２５は、ＭＢ　ｔｙｐｅ　２１と８ｘ８　Ｐａｒｔｉｔｉｏｎ　２２が示す後方予測（双方向予測も含む）に伴う動きベクトルを含むマクロブロックである場合に発生する。したがって、ＭＢ　ｔｙｐｅ２１がＩｎｔｒａＭ×ＮあるいはＤｉｒｅｃｔの場合の場合には、このデータは発生しない。ＭＢ　ｔｙｐｅ２１がＭ×Ｎであり、前方予測（双方向予測も含む）に伴う動きベクトルが存在する場合には、ＭＶＤＦＷ２３は、ＭＢ　ｔｙｐｅと８×８　Ｐａｒｔｉｔｉｏｎが示す前方予測（双方向予測も含む）に伴うベクトル数（差分動きベクトル数×２、水平・垂直成分）だけ繰り返し符号化される。同様に、ＭＢ　ｔｙｐｅ２１がＭ×Ｎであり、後方予測（双方向予測も含む）に伴う動きベクトルが存在する場合には、ＭＶＤＢＷ２５は、ＭＢ　ｔｙｐｅと８×８　Ｐａｒｔｉｔｉｏｎが示す後方予測（双方向予測も含む）に伴うベクトル数（差分動きベクトル数×２、水平・垂直成分）だけ繰り返し符号化される。なお、ＭＶＤＦＷとＭＶＤＢＷの値は、図１または図２の処理にて決められたｍｖ＿ｓｈｉｆｔ値に基づいて算出される。ＣＢＰ以降のマクロブロックデータについては、図１２のＰ−ｐｉｃｔｕｒｅと同じ構造のため、説明を省略する。これらの符号化データが図１４の多重化器２０６にて多重化され配信される。復号側では、図１５の符号化解読器５０１にて、データシンタックスを解読し、復号処理する。ＵＶＬＣの場合は、符号化側と同じ符号化テーブルを使用することにより、元の符号が再現される。ＣＡＢＡＣの場合は、符号化側と同じ確率モデルを用い、同じ予測方法を用いることにより、元の符号が再現される。
【００１３】
最後に、これまで説明してきた動きベクトル符号化・復号化方法を実現するための符号化装置・復号化装置について触れておく。図１４に符号化装置のブロック図、図１５に復号化装置のブロック図を示す。各処理部の配置は、従来と同じであるが、幾つかの処理部の処理手順に上記で説明した処理を加える必要がある。符号化装置については、動き補償器２１１にＭＢ　ｔｙｐｅと予測ＭＶの値に応じてｍｖ＿ｓｈｉｆｔ値を設定する処理と、ｍｖ＿ｓｈｉｆｔ値に対応した動き検索制限処理と、ｍｖ＿ｓｈｉｆｔを伴うＭＶＤ，　ＭＶＤＦＷ，　ＭＶＤＢＥの算出処理を追加する必要がある。復号化装置については、ＭＶ予測器５０８に予測ＭＶの値に応じてｍｖ＿ｓｈｉｆｔ値を設定する処理と、ｍｖ＿ｓｈｉｆｔを伴うＭＶＤ，　ＭＶＤＦＷ，　ＭＶＤＢＥの再現処理を加える必要がある。
本実施例では、切り換えを実施する予測動きベクトルの精度を１画素に限定しているが、この精度に制限されない。例えば、予測動きベクトルの精度が１／４画素の時に、動きベクトルの精度を１／４画素とし、差分動きベクトルの精度を１／２画素に制限することも本発明に含まれる。
また、本実施例では、切り換えを実施するマクロブロック分割モードを１６ｘ１６，　１６ｘ８ならびに８ｘ１６に限定しているが、他のブロック分割モードで実施することも可能であり、本発明に含まれる。
【００１４】
【発明の効果】
本発明により、新たな付加情報を加えることなく、低レート符号化における動きベクトルの符号量が削減できる。また、差分動きベクトルの符号化精度の切り替えを実施する予測動きベクトルと予測モードを制限することにより、高レート符号化の性能を落とさずに低レート符号化の性能が改善できる。
【図面の簡単な説明】
【図１】本発明におけるｍｖ＿ｓｈｉｆｔ値の制御方法の例を示した図である。
【図２】本発明におけるｍｖ＿ｓｈｉｆｔ値の制御方法の別例を示した図である。
【図３】マクロフロック分割を説明する図である。
【図４】動き補償の原理を説明する図である。
【図５】マクロブロックに含まれる有意ＤＣＴ係数の有無を符号化する際に利用するブロック構成を示す図である。
【図６】ＤＣＴ処理ならびに符号化処理を行うブロック単位を示すマクロブロック構成を示す図である。
【図７】動き補償を行うブロック単位を示す輝度ブロックの構成を示す図である。
【図８】予測動きベクトルの生成手段を説明する図である。
【図９】Ｐ−ｐｉｃｔｕｒｅにおけるマクロブロックタイプの符号表と８×８ブロック分割タイプの符号表の例を示した図である。
【図１０】Ｂ−ｐｉｃｔｕｒｅにおけるマクロブロックタイプの符号表と８×８ブロック分割タイプの符号表の例を示した図である。
【図１１】ユニバーサル符号化表の構成例を示した図である。
【図１２】本発明における前方向予測フレームのデータシンタックスの例を示した図である。
【図１３】本発明における双方向予測フレームのデータシンタックスの例を示した図である。
【図１４】符号化処理のブロック図の例を示した図である。
【図１５】復号化処理のブロック図の例を示した図である。
【符号の説明】
１２、２１…マクロブロックタイプ情報、１８、２６…ブロック分割タイプ情報、１９、２７…参照フレーム情報、１４、２３、２５…差分動きベクトル情報、３０…Ｙ信号ブロック、３１…Ｃｒ信号ブロック、３２…Ｃｒ信号ブロック、４０…Ｙ信号ＤＣＴブロック、４１…Ｃｒ信号ＤＣＴブロック、４２…Ｃｂ信号ＤＣＴブロック、５１…１６×１６マクロブロックモード、５２…１６×８マクロブロックモード、５３…８×１６マクロブロックモード、５４…８×８マクロブロックモード、５４ａ…８×８ブロック、５４ｂ…８×４ブロック、５４ｃ…４×８ブロック、５４ｄ…４×４ブロック、８１、８２…ＵＶＬＣ符号表、９１、９３…マクロブロックモード符号表、９２、９４…８×８分割モード符号表、２０３…ＤＣＴ処理器、２０４…量子化器、２０６…多重化器、２０７、５０２…逆量子化器、２０８、５０３…逆ＤＣＴ器、２１０、５０７…フレームメモリ、２１１、５０４…動き補償器、２１５、５０８…動きベクトル予測器、５０１…符号解読器、５０６…合成器、１１０…予測動きベクトルの精度確認処理、１２０、１３０…マクロブロックモードの確認処理、１４０…フレームタイプ確認処理。
【図１】
2004048522.tif 000003
【図２】
2004048522.tif 000004
【図３】
2004048522.tif 000005
【図４】
2004048522.tif 000006
【図５】
2004048522.tif 000007
【図６】
2004048522.tif 000008
【図７】
2004048522.tif 000009
【図８】
2004048522.tif 000010
【図９】
2004048522.tif 000011
【図１０】
2004048522.tif 000012
【図１１】
2004048522.tif 000013
【図１２】
2004048522.tif 000014
【図１３】
2004048522.tif 000015
【図１４】
2004048522.tif 000016
【図１５】
2004048522.tif 000017