(57)【要約】第１フレームのビデオデータに関係する第１組のモーションベクトルが決定される。第２フレームのビデオデータに関係する第２組のモーションベクトルも決定される。第２フレームのビデオデータに関係する画素の組のモーションベクトルが、第１組のモーションベクトル及び第２組のモーションベクトルに基づいて予測される。１つの実施例では、第１フレームのビデオデータは、第２フレームの前にコード化されるフレームの画素データである。第１のフレームは、第２フレームのビデオデータの前に表示されるフレームでもある。
2006517363.tif 000002
【特許請求の範囲】
【請求項１】
第１フレームのビデオデータに関係する第１組のモーションベクトルを決定するステップと、
第２フレームのビデオデータに関係する第２組のモーションベクトルを決定するステップと、
前記第１組のモーションベクトル及び前記第２組のモーションベクトルに基づいて、前記第２フレームのビデオデータの第１の画素の組のための第１のモーションベクトルを予測するステップとを備える方法。
【請求項２】
第２フレームのビデオデータの前に表示される画像を表す前記第１フレームのビデオデータを決定するステップを更に備える請求項１に記載の方法。
【請求項３】
前記第１組のモーションベクトルの決定ステップは、第２の画素の組のための第２のモーションベクトルを決定するステップを備え、
前記第２組のモーションベクトルの決定ステップは、第３の画素の組のための第３のモーションベクトルを決定するステップを備え、
前記予測ステップは、前記第２のモーションベクトル及び前記第３のモーションベクトルを使用して前記第１のモーションベクトルを予測するステップを備え、前記第３のモーションベクトルは、前記第２フレームにおける前記第１のモーションベクトルに直接隣接している請求項１に記載の方法。
【請求項４】
予測するステップは、第１のモーションベクトルを予測することを含み、前記第２のモーションベクトルは、前記第２フレーム内の第１の画素の組に直接隣接する第４の画素の組と同じ位置である請求項３に記載の方法。
【請求項５】
予測するステップは、第１のモーションベクトルを予測することを含み、前記第２のモーションベクトルは、前記第２フレーム内の第１の画素の組に直接隣接する第４の画素の組と同じ位置である請求項３に記載の方法。
【請求項６】
前記第１組のモーションベクトルの決定は、前記第１の画素の組に直接隣接する画素の組と同じ位置である前記第１組のモーションベクトルの各モーションベクトルを備える請求項１に記載の方法。
【請求項７】
前記第２組のモーションベクトルの決定は、前記第１の画素の組に直接隣接する画素の組に対応する前記第２組のモーションベクトルの各モーションベクトルを備える請求項６に記載の方法。
【請求項８】
前記第２組のモーションベクトルの決定は、前記第１の画素の組に直接隣接する画素の組に対応する前記第２組のモーションベクトルの各モーションベクトルを備える請求項１に記載の方法。
【請求項９】
前記第１組のモーションベクトルの決定は、前記第１の画素の組に直接隣接する画素の組と同じ位置の画素の組を特定することを備える請求項１に記載の方法。
【請求項１０】
前記第１組のモーションベクトルの決定は、前記第１の画素の組に直接隣接する画素の組と同じ位置の画素の組のモーションベクトルを特定することを備える請求項１に記載の方法。
【請求項１１】
前記第１のモーションベクトルの予測は、前記第１組のモーションベクトル及び前記第２組のモーションベクトルに基づいた前記第１モーションベクトルの平均値の決定を備える請求項１に記載の方法。
【請求項１２】
前記第１のモーションベクトルの予測は、前記平均値を決定した時に、前記第１組のモーションベクトルからモーションベクトルを除去することを備える請求項１１に記載の方法。
【請求項１３】
前記第１のモーションベクトルの予測は、前記第１組のモーションベクトル及び前記第２組のモーションベクトルに基づいた前記第１モーションベクトルの中間値の決定を備える請求項１に記載の方法。
【請求項１４】
前記第１のモーションベクトルの予測は、前記中間値を決定した時に、前記第１組のモーションベクトルからモーションベクトルを除去することを備える請求項１３に記載の方法。
【請求項１５】
画素の組は８×８の画素ブロックを表す請求項１に記載の方法。
【請求項１６】
画素の組は１６×１６の画素ブロックを表す請求項１に記載の方法。
【請求項１７】
ビデオデータ処理要素と、
前記ビデオデータ処理要素に組み合わされたメモリとを備え、
前記メモリは、第１フレームのビデオデータ及び第２フレームのビデオデータを記憶するビデオデータ記憶領域と、
第１フレームのビデオデータと関係する第１組のモーションベクトルの決定を容易にするプログラムインストラクションを記憶するプログラム記憶領域とを備え、
第２フレームのビデオデータに関係する第２組のモーションベクトルを決定し、
前記第１組のモーションベクトル及び前記第２組のモーションベクトルに基づいて前記第２フレームのビデオデータの第１の画素の組のための第１モーションベクトルを予測するシステム。
【請求項１８】
前記第１組のモーションベクトルの決定を容易にする前記プログラムインストラクションは、前記第１の組の画素に直接隣接する画素の組と同じ位置の前記第１の組の各モーションベクトルを決定することを備える請求項１７に記載の方法。
【請求項１９】
前記第２組のモーションベクトルの決定を容易にする前記プログラムインストラクションは、前記第１の組の画素に直接隣接するように位置する画素の組に対応する前記第２の組の各モーションベクトルを決定することを備える請求項１７に記載の方法。
【請求項２０】
第１の画素の組を有する、第１の時間に表示される第１フレームのビデオデータを受けるステップと、
第２の画素の組及び第３の画素の組を有する第２フレームのビデオデータを受けるステップであって、前記第２の画素の組及び第３の画素の組は水平、垂直又は斜め方向の１つにおいて互いに直接隣接し、前記第１の画素の組は前記第３の画素の組と同じ位置にあり、前記第２フレームのビデオデータは第２の時間に表示されるステップと、
前記第１組のモーションベクトルを決定するステップと、
前記第１組のモーションベクトルに基づいて、前記第２の画素の組のモーションベクトルを決定するステップとを備える方法。
【請求項２１】
前記第２フレームのビデオデータを受けるステップは、前記第１の時間の後である前記第２の時間を備える請求項２０に記載の方法。
【請求項２２】
前記第２の画素の組のモーションベクトルを決定するステップは、前記第３の画素の組のモーションベクトルが決定されていない時に、前記第１の画素の組のモーションベクトルに基づいて、前記第２の画素の組のモーションベクトルを決定することを備える請求項２１に記載の方法。
【請求項２３】
前記第２の画素の組のモーションベクトルを決定するステップは、
前記第３の画素の組のモーションベクトルが決定されていない時に、前記第１の画素の組のモーションベクトル、及び
前記第３の画素の組のモーションベクトルが決定されている時に、前記第３の画素の組のモーションベクトルの１つに基づいて前記第２の画素の組の前記モーションベクトルを決定することを備える請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概ねビデオデータ処理に関し、特にはモーションベクトルの予測方法に関する。
【背景技術】
【０００２】
ビデオデータの圧縮のためのアルゴリズムを採用しているデジタルビデオプロトコルは、広く知られており、広く使用されている。デジタルビデオデータを圧縮するのに使用されるプロトコルの例は、ＭＰＥＧ２及びＭＰＥＧ４プロトコルと呼ばれるモーション画像エキスパートグループ(Motion Picture Experts Group:MPEG)によって発表されているプロトコルのセットである。ここではＭＰＥＧプロトコルが参照される。圧縮の間又はコード化プロセスの間、これらのプロトコルは、前のフレームからの冗長な画像部分の利点をいかに捉えるかを規定する。この圧縮を実現するのに使用される１つの圧縮技術は、前に表示されるフレームにおいて類似の画像部分がどこに位置しているかを示すようにコード化されたフレーム部分のモーションベクトルを提供する。実質的に類似している前に表示される画像部分に対するモーションベクトルを提供することにより、２つの画像間の差異だけを記憶する必要があり、それにより送信又は記憶する必要のあるデータ量を非常に低減することになる。
【０００３】
コード化された画像部分を有する前のフレームにおける実質的に類似の画像部分を特定するプロセスは、計算が集中するプロセスである。従って、実質的に類似のフレームが位置する場所を評価する試みがなされている。この評価は、モーションベクトル予測と呼ばれる。モーションベクトル予測の公知の方法は、現在のフレームのあらかじめコード化された部分からのモーションベクトルを、コード化される現在の部分に対する予測されたモーションベクトルとして使用する。モーションベクトル予測を改善する技術は、次のコード化プロセス時間が低減できるので有用である。
【発明の開示】
【０００４】
本発明によれば、第１フレームのビデオデータに関係する第１組のモーションベクトルが決定される。第２フレームのビデオデータに関係する第２組のモーションベクトルも決定される。第２フレームのビデオデータに関係する画素の組のモーションベクトルが、第１組のモーションベクトル及び第２組のモーションベクトルに基づいて予測される。１つの実施例では、第１フレームのビデオデータは、第２フレームの前にコード化された画素データのフレームである。第１フレームは第２フレームのビデオデータの前に表示されるフレームでもある。
【発明を実施するための最良の形態】
【０００５】
図１は、説明を明確にするために、ここで使用される用語を特定するのに使用される。特に、図１は、２つのフレームデータ１０２及び１０３を示す。フレーム１０３は、用語Ｔ（０）により表される現在のビデオフレームとして特定される。同様の用語を使用して、フレーム１０２はインジケータＴ（−１）により表される前のビデオフレームとして特定される。コード化プロセスについては、フレーム１０２は前の時間期間の間にあらかじめコード化されていることが適当である。同様に、フレーム１０３のインジケータＴ（０）は、フレーム１０３が現在コード化されているフレームであることを示す。
【０００６】
フレーム１０３又は他のフレームのより詳細な図は、フレームマップ１００により表される。特にフレームマップ１００は、フレーム１００が００から９９までの番号が付された多重画素の組で作られていることを示す。ＭＰＥＧプロトコルによれば、００から９９の画素の組は、マクロブロックと称せられる。マクロブロック９６について特に示されているように、各マクロブロックは、４つのブロックデータで作られている。各ブロックデータは、画素列１０７により示されるように、８×８の画素列を備える。図示のために、ここではマクロブロックの用語は、コード化される特別の画素の組を示すのに使用される。しかし、マクロブロック以外の他の画素の組は、ここで説明するコード化プロセスで使用されてもよい。例えば、コード化プロセスはブロックごとに、またはいくつかの他の画素の組の大きさごとに行われる。更に、ここで一般に使用される用語はＭＰＥＧプロトコルの用語と整合しているが、ここで説明する方法及びシステムはモーションベクトルの使用を行う圧縮技術を使用する他のシステム及び方法にも等しく適用可能である。本発明の実施例は、図２から図５を参照してより理解されるであろう。
【０００７】
図２は、現在コード化されているフレーム２０２と、あらかじめコード化されたフレーム２０４の画素データを示す。コード化プロセスの間、フレーム２０２における各マクロブロックは、その画素を前のフレーム２０４の画素と相関させることにより圧縮される。フレーム２０２のマクロブロックが相関される前のフレーム２０４は基準フレームであることに注目する。言い換えれば、フレーム２０２のマクロブロックは、基準フレームの画素と相関され、基準フレームは現在のフレームの圧縮の間利用可能である。前のフレームは、典型的には現在のフレームの前にコード化され、従って、あらかじめコード化されたフレーム２０４のマクロブロックは、モーションベクトル情報を含むすでに圧縮されたデータを有する。
【０００８】
本発明の実施例によれば、フレーム２０２のマクロブロック４３が、現在コード化されている。マクロブロック４３に関係するインジケータ”Ｐ”は、モーションベクトルがマクロブロック４３のために予測されることを示している。００から４２までのマクロブロックを含む領域２０３は、現在のフレーム２０２のそれらのマクロブロックがすでにコード化されていることを示している。説明のために、現在のフレーム２０２内のあらかじめコード化された各マクロブロックはモーションベクトルを有すると仮定する。
【０００９】
本発明の実施例によれば、現在コード化されているマクロブロック４３は、隣接するマクロブロックからのモーションベクトルに基づいて予測されたモーションベクトルを受ける。隣接するマクロブロックは、マクロブロック４３が一員（メンバー）であるフレーム２０２内の隣接マクロブロックであるか、またはフレーム２０２のマクロブロック４３に直接隣接するマクロブロックに対応して配置される前のフレーム２０４におけるマクロブロックである。例えば、式２１０により示されるように、マクロブロック４３の予測モーションベクトルは、図２において”Ｘ”が印されたフレーム２０２のすべてのマクロブロック３２、３３、３４、及び４２のモーションベクトルの関数である。しかし、フレーム２０２における直接隣接する他のマクロブロックは何もコード化されておらず、従ってまだモーションベクトルを有さない。言い換えれば、フレーム２０２に関して、マクロブロックの位置４４、５２、５３及び５４はモーションベクトル予測に使用できるモーションベクトルを有さない。
【００１０】
すでにコード化されているフレーム２０２におけるそれらのマクロブロックだけからフレーム２０２のマクロブロック４３のモーションベクトルを予測する代わりに、本発明は前のフレーム２０４内の同じ位置のマクロブロックに関係するモーションベクトルを使用する。フレーム２０４における同じ位置のマクロブロックの配置には、”Ｘ”が印されている。例えば、フレーム２０４のマクロブロック４４のモーションベクトルは、フレーム２０４のマクロブロック４２−５４のモーションベクトルと一緒に使用される。この方法において、フレーム２０２のマクロブロック４３の予測されたモーションベクトルは、あらかじめ存在しているモーションベクトルのより大きな組に基づいている。他の実施例では、直接隣接しないマクロブロックの配置からのモーションベクトルも使用することができる。例えば、コード化されるマクロブロックの２つのマクロブロック内にあるマクロブロック配置からのモーションベクトルが使用できる。この実施例において、位置２１−２５、３１、３５及び４１でのフレーム２０２のモーションベクトルは予測プロセスに使用できる。同様に、位置４５、５１、５５及び６１−６５でのフレーム２０４のモーションベクトルは予測プロセスに使用できる。
【００１１】
図３は、本発明によるモーションベクトルの予測方法を、フロー図の形で示す。ステップ２０１では、第１フレームのビデオデ−タに関係する第１組のモーションベクトルが決定される。図２を参照すれば、１つの実施例では、第１組のモーションベクトルはフレーム２０２に関係し、マクロブロック３２、３３、３４及び４２からのモーションベクトルを含む。この実施例は、現在コード化されるマクロブロックに対して直接隣接する、すなわち直角又は斜めに隣接する各マクロブロックのモーションベクトルを含むということに注目する必要がある。他の実施例では、コード化されるマクロブロックに対して直角に直接隣接するマクロブロックのみ、又はコード化されるマクロブロックに対して斜めに直接隣接するマクロブロックのみが使用されてもよい。更に別の実施例では、コード化される２つのマクロブロック内のマクロブロックのみが使用される。
【００１２】
ステップ２０２では、第２フレームのビデオデ−タに関係する第２組のモーションベクトルが決定される。図２を再び参照すれば、第２組のモーションベクトルはフレーム２０４のマクロブロック４４、５２、５３及び５４４２からのモーションベクトルを含む。上記のように、第２組のモーションベクトルに含まれるマクロブロックは、コード化されるマクロブロックに直接隣接するフレーム２０２のマクロブロックと同じ位置のフレーム２０４内のマクロブロックのモーションベクトルを含む。図示の実施例は、コード化されるマクロブロックに直接隣接するマクロブロックと同じ位置のすべての隣接マクロブロックを含む。他の実施例では、直角に又は斜めのマクロブロックのみが考慮される。更に別の実施例では、コード化される２つのマクロブロック内のマクロブロックと同じ位置のマクロブロックのみが使用される。
【００１３】
ステップ２０３では、第１のモーションベクトルが第１及び第２の組のモーションベクトルに基づいて第１フレームのビデオデータのために予測される。例えば、図２を参照すると、フレーム２０２のマクロブロック４３のための予測されたモーションベクトルは、式２１０に基づいて予測される。一旦モーションベクトルの予測がなされると、それはコード化されるマクロブロックの実際のモーションベクトルとして使用されるか、又はそれはコード化されるマクロブロックに関係する最終モーションベクトルを決定する更なるコード化プロセスの出発点として使用されるのが適当である。
【００１４】
ステップ２０１及び２０２の第１及び第２の組のモーションベクトルを使用して予測モーションベクトルを導出するには多数の方法がある。１つの実施例は、第１及び第２の組におけるモーションベクトルの平均を決定する。第２の実施例は、第１及び第２の組のモーションベクトルに含まれるモーションベクトルの中央値（メディアン）を決定する。更に他の実施例は、特定のアルゴリズムを適用する前に、組内のモーションベクトルに異なる重み付けを行うことによりモーションベクトルを予測できる。更に、第１及び第２の組内のすべてのモーションベクトルが使用されるか、又は組内の一部のモーションベクトルだけが使用される。例えば、第１及び／又は第２の組のモーションベクトル内の１つ以上のモーションベクトルは他の大部分のモーションベクトルとある点（例えば、強度及び／又は方向）で異なることが決定されるか、又は標準偏差のようないくつかのほかの統計的なパラメータの範囲外にあり、その組内に含まれないように決定される。
【００１５】
これまでの議論では、コード化されるフレーム２０２及びあらかじめコード化されているフレーム２０４内の各マクロブロックは、モーションベクトルを有していると仮定していた。しかしながら、コード化されるマクロブロックがモーションベクトルを有していることはかならずしも必要ない。コード化されるマクロブロックに直接隣接したコード化マクロブロックがモーションベクトルを有さない時、いくつかの方法が使用できる。例えば、予測モーションベクトルを生成するのに使用されるモーションベクトルの組は、１つのモーションベクトルも有さない。他の実施例では、予測モーションベクトルの予測に使用されるモーションベクトルの組は、（０，０）のような所定値を有するモーションベクトルを含んでもよい。別の方法は、隣接するマクロブロックからの別のモーションベクトルを使用する。例えば、もしフレーム２０２のコード化されたマクロブロック３２がモーションベクトルを有さなければ、それに直接隣接するマクロブロックの１つのモーションベクトルを代わりに使用することもできる。更に他の実施例では、現在コード化されるフレーム内のコード化されたマクロブロックがそれに関係するモーションベクトルを有さない時、前にコード化されたフレーム内のそれと同じ位置のマクロブロックのモーションベクトルが使用できる。同様の方法で、現在のフレームのマクロブロックと同じ位置のマクロブロックがモーションベクトルを有さない時、モーションベクトルは、代わりに（０，０）のような所定の値を有するモーションベクトル、又は同じ位置のマクロブロックに直接隣接する隣接モーションベクトルにより演算された他のモーションベクトルで置き換えることができる。
【００１６】
図４は、本発明によるモーションベクトルの予測方法を、フロー図の形で示す。特に図４のフロー図は図３のステップ２０１及び２０２の第１及び第２の組のモーションベクトルの決定方法を示す。
【００１７】
ステップ２２１では、現在コード化されるフレームに関係するマクロブロックのような画素の組が特定される。次に、ステップ２２２では、その画素の組みがコード化される画素の組に直接隣接するかどうかの決定が行われる。他の実施例では、直接隣接するマクロブロックより離れたマクロブロックも、ステップ２２２で、含まれると特定される。しかし、図２の実施例を参照すると、フレーム２０３のマクロブロック４３に直接隣接するマクロブロックだけが、ステップ２２２からステップ２２３にフローが進むことになる。特に、もし画素の組が現在コード化される画素の組に直接隣接していなければ、それは第１又は第２の組のモーションベクトルの一部とはみなされず、フローはステップ２２６に進んで、その画素の組に対するフローは終了する。もし画素の組がコード化される画素の組に直接隣接していれば、フローはステップ２２３に進む。
【００１８】
ステップ２２３では、画素の組がコード化されるかどうかが決定される。もし画素の組が図２のフレーム２０３の画素の組み４４のようにコード化されなければ、フローはステップ２２７に進む。そうでなければ、コードされるので、フローはステップ２２４に進む。
【００１９】
ステップ２２４では、その画素の組にモーションベクトルが存在するかどうかが決定される。もしその画素の組にモーションベクトルが存在すれば、フローはステップ２２５に進み、そこでモーションベクトルは第２の組のモーションベクトルのための画素の組に含まれ、それは図３においては現在コード化されるフレームのモーションベクトルの組である。しかしながら、もしその画素の組にモーションベクトルが存在しなければ、フローはステップ２２４からステップ２２６に進み、モーションベクトルのいずれの組にもモーションベクトルは含まれない。他の実施例では、ステップ２２４からのフローは、ステップ２２７に進み、同じ位置の画素の組にモーションベクトルが含まれるか決定される。
【００２０】
ステップ２２７では、同じ位置の画素の組についてモーションベクトルが存在するかどうかが決定される。もし同じ位置の画素の組にモーションベクトルが存在すれば、それはステップ２２８においてあらかじめコード化されたフレームのモーションベクトルの組である第１の組のモーションベクトルとして含まれる。この方法で、第１及び第２の組のモーションベクトルのメンバーは、容易に決定できる。
【００２１】
図５は、本発明の実施例によるシステムを示す。特に、図５は、データプロセッサ３１０、及びメモリ３２０を有するシステム３００を示す。動作においては、データプロセッサ３１０は、メモリ３００にアクセスしてプログラムインストラクション３２２を実行し、ビデオデータ３２４に対して動作する。例えば、ビデオデータ３２４は、一般に図２におけるフレーム２０２及び２０４のビデオフレームデータを有する。同様に、ビデオプロセッサ３１０は、一般にインストラクションを実行するためのインストラクション実行ユニットを備える。更に、データプロセッサ３１０は、コプロセッサ３１２を含んでも良く、コプロセッサ３１２は、アクセラレータのような特定のハードウエア、及び／又はコード化プロセスを加速できるマイクロコードエンジンを有する。更に、図５の情報プロセッサ３００は、汎用コンピュータ、特定用途コンピュータの一部でも、又はより大きなシステムの一部として一体化されていてもよい。
【００２２】
これまでの実施例の詳細な説明では、付属の図面を参照したが、それは本発明の一部に過ぎず、本発明を実現した特別な実施例を説明するために示されたものである。これらの実施例は、当業者が本発明を実施するのに十分詳細に記載されており、本発明の精神の範囲を逸脱せずに他の実施例が利用でき、論理的、機械的及び電気的な変更が行えることが理解できるであろう。当業者が本発明を実行するのにかならずしも必要ない詳細を説明するのを避けるために、説明は当業者に知られている情報は割愛した。更に、当業者は、発明の示唆を実現する多くのほかの異なる実施例を容易に作ることができるであろう。従って、本発明はこれまで説明した特定の形式に限定することを意図したものではなく、逆に本発明の精神及び範囲内に当然含まれる変形例、変更、等価物をカバーすることを意図している。従って、これまでの詳細な説明は限定する意図でなされておらず、本発明の範囲は添付の請求範囲によってのみ規定される。
【図面の簡単な説明】
【００２３】
【図１】図１は、従来技術でのビデオデータの表現を示す。
【図２】図２は、本発明の実施例による予測されたモーションベクトルを決定するのに使用されるビデオデータの多重フレームを図で示す。
【図３】図３は、本発明の実施例の方法によるフローチャートを示す。
【図４】図４は、本発明の実施例の方法によるフローチャートを示す。
【図５】図５は、本発明のシステムをブロック図の形で示す。
【図１】
2006517363.tif 000003
【図２】
2006517363.tif 000004
【図３】
2006517363.tif 000005
【図４】
2006517363.tif 000006
【図５】
2006517363.tif 000007
【国際調査報告】
2006517363.tif 000008
2006517363.tif 000009