(57)【要約】【課題】  Ｂピクチャの直接モード動きベクトルの計算方法を提供する。【解決手段】  Ｂピクチャとその第１参照ピクチャとの時間的距離と、第１参照ピクチャと第２参照ピクチャとの時間的距離と、所定の定整数Ｎを用いて第１値を計算し、動きベクトルＭＶの第１成分ＭＶｘと、第１値と、Ｎを用いて第２値を計算し、ＭＶの第２成分ＭＶｙと、第１値と、Ｎを用いて第３値を計算し、第２値と、差分動きベクトルＭＶＤの第１成分と、変数δ１ｘとの和より第１参照ピクチャに対する動きベクトルＭＶＦの第１成分ＭＶＦｘを求め、第３値と、ＭＶＤの第２成分と、変数δ１ｙとの和よりＭＶＦの第２成分ＭＶＦｙを求め、ＭＶＦｘと変数δ２ｘとの和からＭＶｘを差し引いた値より第２参照ピクチャに対する動きベクトルＭＶＢの第１成分ＭＶＢｘを求め、ＭＶＦｙと変数δ２ｙとの和からＭＶｙを差し引いた値よりＭＶＢの第２成分ＭＶＢｙを求める方法を提供する。【選択図】図５
2007028393.tif 000002
【特許請求の範囲】
【請求項１】
双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法であって、
前記双方向予測符号化ピクチャと前記双方向予測符号化ピクチャの第１参照ピクチャとの間の時間的距離であるＴＲＢと、前記第１参照ピクチャと前記双方向予測符号化ピクチャの第２参照ピクチャとの間の時間的距離であるＴＲＤと、所定の定整数Ｎを用いて第１値Ｓを計算するステップ（イ）、
動きベクトルＭＶの第１方向成分ＭＶｘと、前記第１値Ｓと、前記Ｎを用いて第２値Ｔｘを計算するステップ（ロ）、
前記動きベクトルＭＶの前記第１方向と直交する第２方向成分ＭＶｙと、前記第１値Ｓと、前記Ｎを用いて第３値Ｔｙを計算するステップ（ハ）、
前記第２値Ｔｘと、差分動きベクトルＭＶＤの前記第１方向の成分ＭＶＤｘと、１または０に定められたδ１ｘと、の和を求め、前記第１参照ピクチャに対する動きベクトルＭＶＦの前記第１方向成分ＭＶＦｘとするステップ（ニ）、
前記第３値Ｔｙと、差分動きベクトルＭＶＤの前記第２方向の成分ＭＶＤｙと、１または０に定められたδ１ｙと、の和を求め、前記第１参照ピクチャに対する動きベクトルＭＶＦの前記第２方向成分ＭＶＦｙとするステップ（ホ）、
前記ＭＶＦｘと、−１、０、および、＋１のいずれかに定められたδ２ｘとの和から、前記ＭＶｘを差し引いた値を求め、前記第２参照ピクチャに対する動きベクトルＭＶＢの前記第１方向の成分ＭＶＢｘとするステップ（ヘ）、
前記ＭＶＦｙと、−１、０、および、＋１のいずれかに定められたδ２ｙとの和から、前記ＭＶｙを差し引いた値を求め、前記ベクトルＭＶＢの前記第２方向の成分ＭＶＢｙとするステップ（ト）、を有することを特徴とする双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法。
【請求項２】
前記第１参照ピクチャは、リスト０参照ピクチャであり、
前記第２参照ピクチャは、リスト１参照ピクチャである、ことを特徴とする請求項１に記載の双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法。
【請求項３】
前記双方向予測符号化ピクチャは、ＭＰＥＧ−４ビデオオブジェクトに含まれる、ことを特徴とする請求項１に記載の双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法。
【請求項４】
前記ステップ（イ）において、前記第１値Ｓは、
Ｓ＝（ＴＲＢ＜＜Ｎ）／ＴＲＤ、により求められ、
ここで、演算α＜＜βは、αを左にβビット、２値的にシフトする演算を意味し、演算子「／」は、整数除算を意味し、整定数Ｎは１２である、ことを特徴とする請求項１に記載の双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法。
【請求項５】
前記ステップ（ロ）およびステップ（ハ）において、前記第２値Ｔｘおよび第３値Ｔｙは、それぞれ、
Ｔｘ＝（Ｓ×ＭＶｘ）＞＞Ｎ、および、
Ｔｙ＝（Ｓ×ＭＶｙ）＞＞Ｎ、より求められ、
ここで、演算α＞＞βは、αを右にβビット、２値的にシフトする演算を意味する、ことを特徴とする請求項４に記載の双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法。
【請求項６】
前記ステップ（ニ）およびステップ（ホ）において、前記ＭＶＦｘおよびＭＶＦｙは、それぞれ、
ＭＶＦｘ＝Ｔｘ＋δ１ｘ＋ＭＶＤｘ、および、
ＭＶＦｙ＝Ｔｙ＋δ１ｙ＋ＭＶＤｙ、より求められ、
ここで、前記δ１ｘ、および、前記δ１ｙは、
【数１】
2007028393.tif 000026
より定まる、ことを特徴とする請求項５に記載の双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法。
【請求項７】
前記ステップ（ヘ）およびステップ（ト）において、前記ＭＶＢｘおよびＭＶＦｙは、それぞれ、
前記ＭＶＤｘがゼロのとき、
ＭＶＢｘ＝Ｔｘ＋δ１ｘ＋δ２ｘ−ＭＶｘであり、
前記ＭＶＤｘがゼロでないとき、
ＭＶＢｘ＝ＭＶＦｘ−ＭＶｘ、であり、
前記ＭＶＤｙがゼロのとき、
ＭＶＢｙ＝Ｔｙ＋δ１ｙ＋δ２ｙ−ＭＶｙであり、
前記ＭＶＤｙがゼロでないとき、
ＭＶＢｙ＝ＭＶＦｙ−ＭＶｙ、であり、
ここで、前記δ２ｘおよびδ２ｙは、
【数２】
2007028393.tif 000027
より定まる、ことを特徴とする請求項６に記載の双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法。
【請求項８】
前記ステップ（イ）において、前記第１値Ｓは、プロセッサにより実行可能な関数プログラムＢｉｎ＿Ｄｉｖ（ＴＲＢ＜＜Ｎ，ＴＲＤ）を実行することにより取得され、
前記関数プログラムＢｉｎ＿Ｄｉｖ（ｘ，ｙ）は、
第１Ｑ値を０とし、第２Ｑ値を１を左方向にＮビットシフトして求めるステップαと、
第１Ｑ値と第２Ｑ値の和を右方向に１ビットシフトした値を第３Ｑ値とするステップβと、
第３Ｑ値と前記ｙ値との積であるＡ値と前記ｘ値との大小関係を比較するステップγと、を有し、
前記ステップγにおいて、前記ｘ値と前記Ａ値とが等しい場合、
前記第３Ｑ値を返して終了し、
前記ｘ値が前記Ａ値より大きい場合、
前記第１Ｑ値を、前記第３Ｑ値に１を足した値としてステップβおよびステップγを実行し、
前記ｘ値が前記Ａ値より小さい場合、
前記第２Ｑ値を、前記第３Ｑ値から１を引いた値としてステップβおよびステップγを実行する、ことを特徴とする請求項１に記載の双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、直接モード動きベクトル(direct mode motion vectors)の計算方法に関する。より詳細には、ＭＰＥＧ−４ビデオオブジェクト内の双方向予測符号化画像（ＢピクチャまたはＢ−ＶＯＰ(Video Object Plane)）内の直接モードブロック(direct mode blocks)の動きベクトルを計算する方法に関する。
【背景技術】
【０００２】
ＭＰＥＧファイルの再生において、動画の動きに不連続性が現われないようにするには、１秒以内に３０を超える画像を再現しなければならない。時間的に連続する２つの画像は一般に、重複する（類似した）部分を多く有する。そのため、ＭＰＥＧでは、画像を圧縮するために、３つの異なる画像圧縮技術、つまり、Ｉピクチャ（イントラ符号化ピクチャ(intra-code pictures)）、Ｂピクチャ（双方向予測（双予測）符号化ピクチャ(bi-directionally predictive(bi-predictive)-coded pictures)）、およびＰピクチャ（予測符号化ピクチャ(predictive-coded pictures)）を利用する。Ｉピクチャは、完全な画像を記憶しており、他のピクチャとの関係を考慮する必要はない。Ｐピクチャは、先行するＩピクチャまたはＰピクチャを参照ピクチャとして使用することができ、先行するＩピクチャまたはＰピクチャの部分と異なる部分のみを記憶する。Ｂピクチャは、先行するＩピクチャまたはＰピクチャを参照することができ、さらに、後続のＩピクチャまたはＰピクチャも参照することができ、参照ピクチャの部分と異なる部分を記憶する。ＭＰＥＧにおいては、時間的に連続する画像は、図１に示すような配置で圧縮される。ＭＰＥＧにおいては、一般に、実際に再生されるピクチャの順序と、復号される順番とは同一ではない。
【０００３】
Ｈ．２６４、すなわちＭＰＥＧ−４仕様のパート１０などの、新世代の画像圧縮技術では、Ｂピクチャは５つの予測モードを有し、それらは、リスト０モード(list 0 mode)、リスト１モード(list 1 mode)、双予測モード(bi-predictive mode)、直接モード(direct mode)、およびイントラモード(intra mode)を含む。
【０００４】
直接モードでは、動きベクトルは、空間的手法および時間的手法の１つを用いることで求めることができる。
【０００５】
前者の手法（空間的手法）を用いれば、Ｂピクチャ内の符号化されたブロックに隣接するブロックからリスト０参照ピクチャ(list reference picture)およびリスト１参照ピクチャ(list 1 reference picture)のインデックス(indexes)と動きベクトルを取得することができる。
【０００６】
後者の手法を用いれば、図２Ａおよび図２Ｂに示すように、リスト１参照ピクチャ内のコロケーテッド・ブロック(collocated block)のリスト０動きベクトル(list 0 motion vector)をスケーリングすることにより、Ｂピクチャのリスト０動きベクトルＭＶＦおよびリスト１動きベクトルＭＶＢを取得することができる。ここで、リスト１参照ピクチャ(list 1 reference picture)は、リスト１の予測インデックス(list 1 predictive index)が０であるピクチャである。それに対し、リスト０参照ピクチャは、図２Ａおよび図２Ｂに示すように、リスト１参照ピクチャ内のコロケーテッド・ブロックの動きベクトルＭＶの指し示すピクチャである。ここで、「コロケーテッド・ブロック」とは、現在復号しようとしているＢピクチャのブロックと同じ画面内位置にある未来の参照ピクチャのブロックである。
【０００７】
Ｂピクチャのブロックの復号化のためのＭＰＥＧ−４仕様（ＩＳＯ／ＩＥＣ１４４９６−２）では、Ｂピクチャ内の直接モードブロックの動きベクトルを計算するために、以下の式が使用される。
【数３】
2007028393.tif 000003
（式１）
ここで、すべての変数は整数であり、「／」は、ゼロに向かった丸めを伴う除算を表す。
【０００８】
図２Ａおよび図２Ｂはそれぞれ、ベクトルＭＶＤがゼロ・ベクトルの場合、ＭＶＤがゼロ・ベクトルでない場合における、ベクトルＭＶ、ＭＶＦ、ＭＶＢおよびＭＶＤ、ならびに、時間に関するスカラー量ＴＲＢおよびＴＲＤの関係を示す図である。
【０００９】
図２Ａおよび図２Ｂを参照すれば、ベクトルＭＶは、リスト１参照ピクチャにおいて、Ｂピクチャの現在のブロックと同じ位置にあるブロック（コロケーテッド・ブロック）とリスト０参照ピクチャ内のブロックとの間に形成される動きベクトルを表し、ここで、ＭＶ＝（ＭＶｘ，ＭＶｙ）であって、ＭＶｘおよびＭＶｙはそれぞれ、動きベクトルＭＶの水平方向（ｘ座標方向）および垂直方向（ｙ座標方向）の成分を表す。
【００１０】
ＴＲＢは、リスト０参照ピクチャとＢピクチャとの間の時間的距離（テンポラル・ディスタンス(temporal distance)）を表す。
【００１１】
ＴＲＤは、リスト０参照ピクチャとリスト１参照ピクチャとの間の時間的距離（テンポラル・ディスタンス）を表す。
【００１２】
ベクトルＭＶＤは、差分動きベクトルである。差分動きベクトルは、現在のブロックと、ベクトルＭＶＦ（＝（ＭＶＦｘ，ＭＶＦｙ））の指すブロックと、ベクトルＭＶＢ（＝（ＭＶＢｘ，ＭＶＢｙ））の指すブロックとの差違が可能な限り少なくなるように選択されるベクトルである（図２Ｂ参照。）。ＭＶＤ＝（ＭＶＤｘ，ＭＶＤｙ）であり、ＭＶＤｘおよびＭＶＤｙは、それぞれ、差分動きベクトルの水平方向（ｘ座標方向）および垂直方向（ｙ座標方向）の成分を表す。
【００１３】
しかし、上記の４つの式（式１）はすべて除算演算を使用する。そして、マイクロプロセッサにとって、整数除算演算はかなりの時間を要する演算である。そのため、マイクロプロセッサが（式１）に含まれる除算演算を実行するために、従来から利用されている関数Ｂｉｎ＿Ｄｉｖ（後述）を使用するならば、図３に示すように、直接モードにおける動きベクトルのセット（すなわち、ＭＶＦｘ、ＭＶＦｙ、ＭＶＢｘ、ＭＶＢｙ）を計算するために必要な平均演算総数は３３２になる。このことは、画像復号化の時間効率に影響を及ぼす可能性がある。
【００１４】
このように、Ｂピクチャを含むＭＰＥＧ圧縮符号の復号化においては、時間のかかる整数除算を各ブロックに対し実行する必要がある。リアルタイム復号化にかかる要求を満足するには、高い計算能力を有するマイクロプロセッサまたはハードウェア除算器が必要となる。しかし、ハードウェア除算器は回路的にかさばり、大きな電力を消費し、また、高価である。
【００１５】
そこで、特許文献１（「 Direct mode motion vector calculation method for B picture 」）は、上記の計算プロセスを簡素化できる、直接モード動きベクトルの計算方法を開示する。その計算式は、次のとおりである。
【数４】
2007028393.tif 000004
（式２）
【００１６】
これらの計算式（式２）では、整数除算は、一連の乗算、加算、減算、および比較演算に置き換えられる。現在のマイクロプロセッサにとって、これらの演算は、整数除算に比較して実行が容易であり、かつ効率的に実行可能である。
【特許文献１】米国特許出願公開第２００４／００６６８４８号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上述の計算法（式２）により、マイクロプロセッサの演算効率は向上され得る。しかし、その計算の精度は十分とは言い難い。具体的には、上述の計算法を実際にＭＰＥＧ−４に適用すると、演算プロセス中に切り捨て誤差(truncation error)の問題が発生し精度が低下する。図４に、上述の手法を用いた場合の計算結果と、真値との表を示す。生じる切り捨て誤差の結果、生成される直接モード動きベクトルＭＶＦｘおよびＭＶＢｘならびに、ＭＶＦｙおよびＭＶＢｙは、正しい値と異なる場合があり、結果として画像復号化プロセスにおいて不正確な動き補償が行われることがあり、画像品質が低下する。
【００１８】
本発明の第１の目的は、計算精度に影響を及ぼさず、計算量を大幅に減らし、プロセッサに対する演算の困難さも軽減することができる、双方向予測符号化ピクチャのための直接モード動きベクトルの計算方法を提供することである。
【００１９】
さらに、本発明の第２の目的は、計算精度に影響を及ぼさず、計算量を大幅に減らし、プロセッサに対する演算の困難さも軽減することができる、ＭＰＥＧ−４ビデオオブジェクトのための双方向予測符号化ピクチャの復号化方法を提供することである。
【課題を解決するための手段】
【００２０】
本発明は、その一態様においては、双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法であって、双方向予測符号化ピクチャと双方向予測符号化ピクチャの第１参照ピクチャとの間の時間的距離であるＴＲＢと、第１参照ピクチャと双方向予測符号化ピクチャの第２参照ピクチャとの間の時間的距離であるＴＲＤと、所定の定整数Ｎを用いて第１値Ｓを計算するステップ（イ）、動きベクトルＭＶの第１方向成分ＭＶｘと、第１値Ｓと、Ｎを用いて第２値Ｔｘを計算するステップ（ロ）、動きベクトルＭＶの第１方向と直交する第２方向成分ＭＶｙと、第１値Ｓと、Ｎを用いて第３値Ｔｙを計算するステップ（ハ）、第２値Ｔｘと、差分動きベクトルＭＶＤの第１方向の成分ＭＶＤｘと、１または０に定められたδ１ｘと、の和を求め、第１参照ピクチャに対する動きベクトルＭＶＦの第１方向成分ＭＶＦｘとするステップ（ニ）、第３値Ｔｙと、差分動きベクトルＭＶＤの第２方向の成分ＭＶＤｙと、１または０に定められたδ１ｙと、の和を求め、第１参照ピクチャに対する動きベクトルＭＶＦの第２方向成分ＭＶＦｙとするステップ（ホ）、ＭＶＦｘと、−１、０、および、＋１のいずれかに定められたδ２ｘとの和から、ＭＶｘを差し引いた値を求め、第２参照ピクチャに対する動きベクトルＭＶＢの第１方向の成分ＭＶＢｘとするステップ（ヘ）、ＭＶＦｙと、−１、０、および、＋１のいずれかに定められたδ２ｙとの和から、ＭＶｙを差し引いた値を求め、ベクトルＭＶＢの第２方向の成分ＭＶＢｙとするステップ（ト）を有する双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法である。
【００２１】
本発明の一態様においては、第１参照ピクチャは、リスト０参照ピクチャであり、第２参照ピクチャは、リスト１参照ピクチャであることが好ましい。
【００２２】
本発明の一態様においては、双方向予測符号化ピクチャは、ＭＰＥＧ−４ビデオオブジェクトに含まれることが好ましい。
【００２３】
本発明の一態様においては、ステップ（イ）において、第１値Ｓは、Ｓ＝（ＴＲＢ＜＜Ｎ）／ＴＲＤ、により求められることが好ましい。ここで、演算α＜＜βは、αを左にβビット、２値的にシフトする演算を意味し、演算子「／」は、整数除算を意味し、整定数Ｎは１２である。
【００２４】
本発明の一態様においては、ステップ（ロ）およびステップ（ハ）において、第２値Ｔｘおよび第３値Ｔｙは、それぞれ、Ｔｘ＝（Ｓ×ＭＶｘ）＞＞Ｎ、および、Ｔｙ＝（Ｓ×ＭＶｙ）＞＞Ｎ、より求められることが好ましい。ここで、演算α＞＞βは、αを右にβビット、２値的にシフトする演算を意味する。
【００２５】
本発明の一態様においては、ステップ（ニ）およびステップ（ホ）において、ＭＶＦｘおよびＭＶＦｙは、それぞれ、ＭＶＦｘ＝Ｔｘ＋δ１ｘ＋ＭＶＤｘ、および、ＭＶＦｙ＝Ｔｙ＋δ１ｙ＋ＭＶＤｙ、より求められ、ここで、δ１ｘ、および、δ１ｙは、
【数５】
2007028393.tif 000005
より定まることが好ましい。
【００２６】
本発明の一態様においては、ステップ（ヘ）およびステップ（ト）において、ＭＶＢｘおよびＭＶＦｙは、それぞれ、ＭＶＤｘがゼロのとき、ＭＶＢｘ＝Ｔｘ＋δ１ｘ＋δ２ｘ−ＭＶｘであり、ＭＶＤｘがゼロでないとき、ＭＶＢｘ＝ＭＶＦｘ−ＭＶｘ、であり、ＭＶＤｙがゼロのとき、ＭＶＢｙ＝Ｔｙ＋δ１ｙ＋δ２ｙ−ＭＶｙであり、ＭＶＤｙがゼロでないとき、ＭＶＢｙ＝ＭＶＦｙ−ＭＶｙ、であり、ここで、δ２ｘおよびδ２ｙは、
【数６】
2007028393.tif 000006
より定まることが好ましい。
【００２７】
本発明の一態様においては、ステップ（イ）において、第１値Ｓは、プロセッサにより実行可能な関数プログラムＢｉｎ＿Ｄｉｖ（ＴＲＢ＜＜Ｎ，ＴＲＤ）を実行することにより取得され、関数プログラムＢｉｎ＿Ｄｉｖ（ｘ，ｙ）は、第１Ｑ値を０とし、第２Ｑ値を１を左方向にＮビットシフトして求めるステップαと、第１Ｑ値と第２Ｑ値の和を右方向に１ビットシフトした値を第３Ｑ値とするステップβと、第３Ｑ値とｙ値との積であるＡ値とｘ値との大小関係を比較するステップγと、を有し、ステップγにおいて、ｘ値とＡ値とが等しい場合、第３Ｑ値を返して終了し、ｘ値がＡ値より大きい場合、第１Ｑ値を、第３Ｑ値に１を足した値としてステップβおよびステップγを実行し、ｘ値がＡ値より小さい場合、第２Ｑ値を、第３Ｑ値から１を引いた値としてステップβおよびステップγを実行することが好ましい。
【発明の効果】
【００２８】
本発明は、ＭＰＥＧ−４仕様による直接モードブロックの動きベクトルを計算するための式と等価であり、かつ、ＭＰＥＧ−４仕様よりも演算がはるかに単純で、演算量もはるかに少ない計算からなる動きベクトル算出法を提供する。本発明にかかる直接モードブロックの動きベクトル計算方法は、演算量および演算の複雑性を大幅に低減することができ、なおかつ、演算の精度を劣化させない方法である。本方法により、マイクロプロセッサの動作効率を大幅に向上可能である。
【００２９】
本発明の上記およびその他の特徴および利点は、以下に示す本発明の好適な実施形態の詳細な説明および添付の図面の参照により明らかとなる。
【発明を実施するための最良の形態】
【００３０】
図５は、本発明の実施形態によるＭＰＥＧ−４復号器のブロック図である。復号処理においては先ず、ビットストリームが可変長復号部１１に入力され、符号化データが復元される。復元された符号化データには、マクロブロック単位で、イントラ（Intra）またはインタ(Inter)のいずれかの符号化モードに関する情報が含まれる。
【００３１】
マクロブロックの符号化モードがイントラを示していれば、テクスチャ復号部１９において復号され、そのまま復号画像として出力される。他方、マクロブロックの符号化モードがインタを示していれば、動き補償部１３において動き補償ベクトルに基づいて予測画像が生成され、生成された予測画像は、復号加算部１５において、テクスチャ復号部１９の出力と加算され、復号画像が出力される。
【００３２】
図６は、本発明の実施形態によるＭＰＥＧ−４復号器におけるＭＰＥＧ−４ビデオオブジェクトの復号にかかる処理のフローチャートである。ここで、ＭＰＥＧ−４ビデオオブジェクトは、複数のイントラ符号化ピクチャ（Ｉピクチャ）、双方向予測符号化ピクチャ（Ｂピクチャ）、および予測符号化ピクチャ（Ｐピクチャ）を含む。
【００３３】
以下、本発明にかかる処理を利用したＢピクチャの復号処理について説明する。ステップＳ４１において、図示しないマイクロプロセッサが、Ｂピクチャのヘッダを復号化する。復号化されたヘッダには、Ｂピクチャの、第１の参照ピクチャであるリスト１参照ピクチャおよび第２の参照ピクチャであるリスト０参照ピクチャに関する情報、リスト１参照ピクチャに含まれるブロックとリスト０参照ピクチャに含まれるブロックとを対応付ける動きベクトルＭＶに関する情報、ならびに、リスト１参照ピクチャに含まれる各ブロックとリスト０参照ピクチャに含まれ動きベクトルにより対応付けされたブロックと、その近傍に位置しリスト１参照ピクチャのブロックに最も類似するリスト０参照ピクチャの隣接ブロックとの間の差分動きベクトルＭＶＤに関する情報等が含まれる。ベクトルＭＶおよびＭＶＤは、直交する２軸に関する成分で表すことができる。本実施形態においては、ベクトルＭＶおよびＭＶＤは、第１方向である水平方向成分（ｘ成分）と第２方向である垂直方向成分（ｙ成分）とを含む。つまり、ベクトルＭＶ＝（ＭＶｘ，ＭＶｙ）、ベクトルＭＶＤ＝（ＭＶＤｘ，ＭＶＤｙ）である。
【００３４】
次に、ステップＳ４２が実行される。図２Ａおよび図２Ｂを例に取ると、現在のＢピクチャに対する、時間的なリスト０参照ピクチャおよびリスト１参照ピクチャの配置位置に対応した、リスト０参照ピクチャとＢピクチャとの間の時間的距離ＴＲＢすなわち第１時間、およびリスト０参照ピクチャとリスト１参照ピクチャとの間の時間的距離ＴＲＤすなわち第２時間が取得され、第１値であるＳ値を、次式より求める。
【数７】
2007028393.tif 000007
（式３）
ここで、演算子「＜＜」は、上式を例にとれば、ＴＲＢを左にＮビット、２値的にシフトする演算を意味する。Ｎは、ＭＰＥＧ−４の仕様に従ってＮ＝１２が選択される。また、演算子「／」は、整数除算であって、その計算結果の絶対値は、実数除算の商の絶対値を超えない最大の整数値であり、その符号は、実数除算の商の符号と一致する。最右辺のＢｉｎ＿Ｄｉｖ（ｘ，ｙ）については後述する。
【００３５】
続いて、図示しないマイクロプロセッサは、現在のＢピクチャ内のすべてのブロックを、１つずつ、左から右へ、および上から下へ復号化する。そして、各ブロックに対してステップＳ４３を実行する。このステップＳ４３においては、各ブロックが、直接モードブロックであるか否かを判定する。ブロックが直接モードブロックである場合は、ステップＳ４４が実行される。それ以外の場合は、ブロックのモードに適した別の方法を使用して復号化を実行する（ステップＳ４８）。直接モードではないモードのブロックの処理は、本発明と直接的には関連しないため、説明を省略する。
【００３６】
本発明にかかる本実施形態の主要な特徴は、直接モードブロックの第１動きベクトルであるリスト０動きベクトルＭＶＦ＝（ＭＶＦｘ，ＭＶＦｙ）、および、直接モードブロックの第２動きベクトルであるリスト１動きベクトルＭＶＢ＝（ＭＶＢｘ，ＭＶＢｙ）の取得にかかる処理（主にステップＳ４４）に含まれる。この処理法は、次式のように示される。
【数８】
2007028393.tif 000008
（式４）
ここで、
２＾Ｎ＜｜ＭＶｘ｜であり、上述のようにＮは、ＭＰＥＧ−４の仕様に従ってＮ＝１２が選択される。第２値であるＴｘ＝（Ｓ×ＭＶｘ）＞＞Ｎは、（Ｓ×ＭＶｘ）の値を右にＮ（＝１２）ビット、２値的にシフトする演算より求められる。第３値であるＴｙも同様に求められる。リスト１動きベクトルのｘ方向成分ＭＶＢｘの算出は、差分動きベクトルのｘ方向成分ＭＶＤｘの値によって場合分けされる。
ＭＶＤｘ＝０の場合、
ＭＶＢｘ＝Ｔｘ＋δ１ｘ＋δ２ｘ−ＭＶｘ＝ＭＶＦｘ＋δ２ｘ−ＭＶｘであり、
それ以外（ＭＶＤｘ≠０）の場合、
ＭＶＢｘ＝ＭＶＦｘ−ＭＶｘである。
同様に、リスト１動きベクトルのｙ方向成分ＭＶＢｙの算出も、差分動きベクトルのｙ方向成分ＭＶＤｙの値によって場合分けされる。
ＭＶＤｙ＝０の場合、
ＭＶＢｙ＝Ｔｙ＋δ１ｙ＋δ２ｙ−ＭＶｙ＝ＭＶＦｙ＋δ２ｙ−ＭＶｙであり、
それ以外（ＭＶＤｙ≠０）の場合、
ＭＶＢｙ＝ＭＶＦｙ−ＭＶｙである。
なお、ＭＶＤｘ≠０の場合は、下に定めるδ２ｘの値の算出法を用いず一律にδ２ｘ＝０とすることで、ＭＶＤｘ＝０の場合に含めることもできる。同様、ＭＶＤｙ≠０の場合は、下に定めるδ２ｙの値の算出法を用いず一律にδ２ｙ＝０とすることで、ＭＶＤｙ＝０の場合に含めることもできる。
【００３７】
ここで、上式に現われるδ１ｘ、δ１ｙ、δ２ｘ、δ２ｙは、
【数９】
2007028393.tif 000009
（式５）
であるとする。δ１ｘは、ＭＶｘの符号（ゼロの場合は正に含まれる。）と、ＤｘおよびＴＲＤの値に従属して、その値が１または０に定まる。同様に、δ１ｙは、ＭＶｙの符号（ゼロの場合は正に含まれる。）と、ＤｘおよびＴＲＤの値に従属して、その値が１または０に定まる。δ２ｘは、値δ１ｘと値ＴＲＤの積と、値Ｄｘとの大小関係より、その値が−１、０、または、＋１に定まる。同様に、δ２ｙは、値δ１ｙと値ＴＲＤの積と、値Ｄｙとの大小関係より、その値が−１、０、または、＋１に定まる。値Ｄｘは、値ＭＶｘと値ＴＲＢと値Ｔｘと値ＴＲＤから定まる値であり、値Ｄｙは、値ＭＶｙと値ＴＲＢと値Ｔｙと値ＴＲＤから定まる値である。
【００３８】
ステップＳ４４において、ブロックの直接モード動きベクトルＭＶＦｘ、ＭＶＦｙ、ＭＶＢｘ、およびＭＶＢｙを取得した後、ステップＳ４５が実行され、動きベクトルＭＶＦｘ、ＭＶＦｙ、ＭＶＢｘ、およびＭＶＢｙに基づいてブロックが復号化される。
【００３９】
次に、ステップＳ４６が実行され、復号化されるべきブロックがさらに存在するか否かが判定される。存在している場合（ＹＥＳの場合）は、同じＢピクチャ内のすべてのブロックが復号化されてしまうまで、ステップＳ４３〜Ｓ４５が繰り返される。その後、ステップＳ４７が実行され、復号化されるべきＢピクチャがさらに存在するかどうかが判定される。存在する場合、すべてのＢピクチャが復号化されてしまうまで、ステップＳ４１〜Ｓ４６が繰り返される。
【００４０】
［探索アルゴリズムＢｉｎ＿Ｄｉｖ（ｘ，ｙ）］
なお、本発明にかかる方法では、値Ｓを計算するため、上述のように、探索アルゴリズムＢｉｎ＿Ｄｉｖ（ｘ，ｙ）を使用することができる。Ｂｉｎ＿Ｄｉｖ（ｘ，ｙ）を擬似コード表現で以下に示す。
Bin _ Div(x,y)
{
Qmin = 0
Qmax = 1<<N
do
Q = (Qmin + Qmax) >> 1
A = Q * y
if (x = A) return Q
if (x > A) Qmin = Q + 1
if (x < A) Qmax = Q - 1
while (Qmin ≦ Qmax)
return Q
}
【００４１】
このアルゴリズムＢｉｎ＿Ｄｉｖ（ｘ，ｙ）は、従来、知られたアルゴリズムである。第１Ｑ値であるＱｍｉｎと第２Ｑ値であるＱｍａｘで定められる範囲における中央の値Ｑすなわち第３Ｑ値を求め（Q = (Qmin + Qmax) >> 1）、値Ｑと値ｙの積Ａ（A = Q * y）と、値ｘとを比較する。Ｑの方が大きい場合、新たなＱｍａｘをＱ−１とし、再度比較を行う。Ｑの方が小さい場合、新たなＱｍｉｎをＱ＋１とし、再度比較を行う。この処理を、値ｘと積Ａとが等しくなるか、または、条件をみたす間（while (Qmin ≦ Qmax)）実行する。
【００４２】
［ＭＰＥＧ−４の仕様と、本発明にかかる動きベクトル算出方法との等価性の証明］
これより、本実施形態でのＭＶＦｘ（、ＭＶＦｙ、ＭＶＢｘ、および、ＭＶＢｙ）を求める式が、ＭＰＥＧ−４仕様に従ってＭＶＦｘ（、ＭＶＦｙ、ＭＶＢｘ、および、ＭＶＢｙ）を求める式と等価であること、そして、本実施形態でのＭＶＦｘを得るための式による計算では、切り捨て誤差が発生しないことを証明する。ＭＶＦｙを得るための式は、ＭＶＦｘを得るための式と同等であるため、その証明は省略する。証明に先立ち、先ず、２つの定理、および、それらの証明を示す。
【００４３】
定理１
「整数ａ、ｂ、ｃ、およびＫについて、
０＜ｂ＜ｃ、０≦｜ａ｜＜Ｋ、ａｂ／ｃ＝(((Ｋｂ／ｃ)・ａ)////Ｋ)＋δとすれば、
（ａ≧０かつＤ≧ｃ）または（ａ＜０かつＤ＞０）の場合はδ＝１、
それ以外の場合はδ＝０である。
ここで、Ｄ＝ａｂ−ｃ・(((Ｋｂ／ｃ)・ａ)////Ｋ)であり、演算子「／／／／」は、商よりも大きくない最大の整数を求める演算を表す。」
【００４４】
定理１の証明：
最初に、δは１または０でなければならないことを証明する。
演算
【数１０】
2007028393.tif 000010
と
演算
【数１１】
2007028393.tif 000011
とは異なるとする。前者は丸めなしの除算である。それに対し、後者は、整数除算であり、後者の結果と前者の商は同符号、かつ、後者の演算結果の絶対値は、前者の商の絶対値を超えないうちで最大の絶対値を有する整数であるとする。
【００４５】
したがって、
【数１２】
2007028393.tif 000012
である。ここで、ｘ／ｙは整数であり、ｒは、０≦｜ｒ｜＜｜ｙ｜である。
整数ｕ、ｒ、（０≦｜ｒ｜＜ｃ）を用い、
【数１３】
2007028393.tif 000013
とすると、
【数１４】
2007028393.tif 000014
である。
整数ｍ、ｑ、（０≦ｑ＜ｃ）を用い、
【数１５】
2007028393.tif 000015
とすると、
【数１６】
2007028393.tif 000016
である。
ここで、
【数１７】
2007028393.tif 000017
とすれば、
０≦｜ｒ｜＜ｃ、０≦ｑ＜ｃ、および０≦｜ａ｜＜Ｋであるから、
【数１８】
2007028393.tif 000018
である。
【００４６】
ゆえに、
【数１９】
2007028393.tif 000019
である。したがって、δの値は、０または１であることが証明された。
【００４７】
次に、定理１を証明する。
ｙ＝（（Ｋｂ／ｃ）・ａ）／／／／Ｋとすると、
ａ≧０の場合、
δ＝１とすれば、
ａｂ／ｃ＝ｙ＋１
⇔ａｂ＝ｃ（ｙ＋１）＋ｓ、（０≦ｓ＜ｃ）
⇔ａｂ−ｃｙ＝Ｄ＝ｃ＋ｓ≧ｃであり、
δ＝０とすれば、
ａｂ／ｃ＝ｙ
⇔ａｂ＝ｃｙ＋ｔ、（０≦ｔ＜ｃ）
⇔ａｂ−ｃｙ＝Ｄ＝ｔ＜ｃである。
ａ＜０の場合は、
δ＝１とすれば、
ａｂ／ｃ＝ｙ＋１
⇔ａｂ＝ｃ（ｙ＋１）＋ｗ、（−ｃ＜ｗ≦０）
⇔ａｂ−ｃｙ＝Ｄ＝ｃ＋ｗ＞０であり、
δ＝０とすれば、
ａｂ／ｃ＝ｙ
⇔ａｂ＝ｃｙ＋ｖ、（−ｃ＜ｖ≦０）
⇔ａｂ−ｃｙ＝Ｄ＝ｖ≦０である。
以上により、定理１が証明された。
【００４８】
さらに、定理１を本実施形態に適用するために、Ｋ＝２＾Ｎとすると、整数Ｍについて、ＭＫ＝Ｍ＜＜Ｎ、Ｍ／／／／Ｋ＝Ｍ＞＞Ｎと表現される。よって、本発明にかかるＭＶＦｘ、および、ＭＶＦｙを求める式は、ＭＰＥＧ−４仕様（ＩＳＯ／ＩＥＣ１４４９６−２）に記載の式と等価である。
【００４９】
定理２
「整数ａ、ｂ、ｃについて、
０＜ｂ＜ｃ、ａ（ｂ−ｃ）／ｃ＝ａｂ／ｃ−ａ＋εとすれば、
Ｅ＞０の場合は、ε＝１、
Ｅ＝０の場合は、ε＝０、
Ｅ＜０の場合は、ε＝−１である。
ここで、Ｅ＝ａｂ−ｃ（ａｂ／ｃ）である。」
【００５０】
定理２の証明：
ａ≧０の場合、ｕ、ｒを整数とし、０≦ｒ＜ｃとすると、
【数２０】
2007028393.tif 000020
であり、また、
【数２１】
2007028393.tif 000021
である。よって、
【数２２】
2007028393.tif 000022
である。
ｒ＝０ならば、
ａ（ｂ−ｃ）／ｃ＝ｕ−ａ、
ｒ＞０ならば、
ａ（ｂ−ｃ）／ｃ＝ｕ−ａ＋１である。
また、ｕ−ａ≦０（∵ｕ＝ａｂ／ｃ、０＜ｂ＜ｃ）かつｒ＝ａｂ−ｃｕ＝ａｂ−ｃ（ａｂ／ｃ）なので、
ａ＜０の場合、ｖ、ｑを整数とし、−ｃ＜ｑ≦０とすれば、
【数２３】
2007028393.tif 000023
であり、また、
【数２４】
2007028393.tif 000024
である。よって、
【数２５】
2007028393.tif 000025
である。
ｑ＝０ならば、
ａ（ｂ−ｃ）／ｃ＝ｖ−ａ、
ｑ＜０ならば、
ａ（ｂ−ｃ）／ｃ＝ｖ−ａ−１である。
ここで、ｖ−ａ≧０（∵ｖ＝ａｂ／ｃ、０＜ｂ＜ｃ）かつｑ＝ａｂ−ｃｖ＝ａｂ−ｃ（ａｂ／ｃ）である。
以上により、定理２が証明された。よって、本発明にかかるＭＶＢｘ、および、ＭＶＢｙを求める式は、ＭＰＥＧ−４仕様（ＩＳＯ／ＩＥＣ１４４９６−２）に記載の式と等価である。
【００５１】
したがって、本実施形態における処理法は、ＭＰＥＧ−４仕様に記載の式と等価であり、ＭＰＥＧ−４仕様に記載の処理式の代替として使用できる。また、代用可能であるのみならず、従来の計算式による複雑な計算を単純化可能である。図７は、ブロックの直接モード動きベクトルを計算するために本実施形態で使用される演算について種類別に平均演算回数を示す。ここで、ｐ（ｘ）＝ｘ÷（Ｂピクチャ内のブロックの総数）とする。例えば、３２０×２４０のピクチャでは、２０×１５個の１６×１６ブロックが存在する。故に、ｐ（ｘ）＝（ｘ÷（２０×１５））≒０．００３ｘである。したがって、既存の式と比較して、本実施形態においては演算回数を３３２から３０＋ｐ（７８）＝３０．２６に減らすことができるため、演算回数は、約９０％減少する。
【００５２】
本実施形態を用いた本発明の説明は実際、図２に示すような、特定のタイプのリスト０参照ピクチャおよびリスト１参照ピクチャについての、Ｂピクチャ直接モードブロックの動きベクトルの算定に照準が合わせられているが、特許文献１の図６（Ｂ）および図６（Ｃ）に示されている、異なるタイプのリスト０参照ピクチャおよびリスト１参照ピクチャの、Ｂピクチャの直接モード動きベクトルの計算に使用することも可能である。これら両者の違いは、単に、ＴＲＤ、ＴＲＢ、ＭＶ、およびＭＶＤの値が異なる点に過ぎない。さらに、本実施形態は、フレームモードのピクチャの復号化に照準が合わせられている。すなわち、リスト０参照ピクチャ、リスト１参照ピクチャ、およびＢピクチャは、すべてフレームモードであるとして説明している。しかし、特許文献１の図７〜図１３に示されているような、別のフィールドモード、すなわち、リスト０参照ピクチャ、リスト１参照ピクチャ、およびＢピクチャは、すべてフィールドモードであっても、または、さまざまなモード、すなわち、リスト０参照ピクチャ、リスト１参照ピクチャ、およびＢピクチャはそれぞれ、フレームモードまたはフィールドモード、であってもよい。これらのピクチャについても、本実施形態の計算方法を適用し、Ｂピクチャの直接モード動きベクトルを算出することは何ら問題ない。
【００５３】
本発明は、本実施形態におけるステップＳ４４において、ＭＰＥＧ−４仕様による直接モードのブロックの動きベクトルを計算するための式と等価であり、かつ演算がより単純な計算ステップを有する動きベクトル算出法を提供する。演算ステップ数および演算の複雑性を大幅に低減することができ、かつ、演算結果の精度に影響を与えない。本方法により、マイクロプロセッサの動作効率を大幅に向上することができる。
【００５４】
本発明は、最も実用的で好ましいと考えられる実施形態に関連して説明したが、本発明は、開示された実施形態に限定されるものではなく、最も広い解釈の本質と範囲に含まれるさまざまな構成を包含することを意図している。したがって、そのような全ての変形例および均等な構成を含むものと理解すべきである。
【産業上の利用可能性】
【００５５】
本発明にかかる双方向予測符号化ピクチャの直接モード動きベクトルの計算方法は、ＭＰＥＧ−４仕様による直接モードブロックの動きベクトルを計算するための式と、等価であり、かつ、ＭＰＥＧ−４仕様よりも演算がより単純で、演算量もより少ない計算工程からなる動きベクトル算出法を含み、ＭＰＥＧ等で用いられる双方向予測符号化画像の直接モードのブロックの動きベクトルの算出等に有用である。
【図面の簡単な説明】
【００５６】
【図１】ＭＰＥＧ−４ビデオオブジェクト内のピクチャの符号化および配置を示す概略図である。
【図２Ａ】ＭＶＤがゼロ・ベクトルである場合における、Ｂピクチャおよびその参照ピクチャ、ならびに、ベクトルおよび時間的距離の概略図である。
【図２Ｂ】ＭＶＤがゼロ・ベクトルでない場合における、Ｂピクチャおよびその参照ピクチャ、ならびに、ベクトルおよび時間的距離の概略図である。
【図３】ＭＰＥＧ−４仕様の中で提供される直接モードブロック計算式内の演算子と、その平均演算回数のデータとを示す図表である。
【図４】特許文献１内で開示された直接モードのブロックに対する計算式を使用して得られた計算結果、および、真の値を示す比較表である。
【図５】本発明の実施形態によるＭＰＥＧ−４復号器のブロック図である。
【図６】本発明にかかる好ましい実施形態による、ＭＰＥＧ−４ビデオオブジェクトの双方向予測符号化ピクチャの復号化方法のフローチャートの部分であり、双方向予測符号化ピクチャ内の直接モードブロックの動きベクトルの計算方法、および、復号化プロセスにかかる部分のフローチャートである。
【図７】本実施形態による計算に含まれる演算と、それらの演算回数とを示す表である。
【符号の説明】
【００５７】
１１  ・・・  可変長復号部
１３  ・・・  動き補償部
１５  ・・・  復号加算部
１７  ・・・  フレームメモリ
１９  ・・・  テクスチャ復号部
【図１】
2007028393.tif 000028
【図２Ａ】
2007028393.tif 000029
【図２Ｂ】
2007028393.tif 000030
【図３】
2007028393.tif 000031
【図４】
2007028393.tif 000032
【図５】
2007028393.tif 000033
【図６】
2007028393.tif 000034
【図７】
2007028393.tif 000035