(57)【要約】      （修正有）【課題】計算の複雑さとデコード遅延とを低減するビデオデータ処理方法及びシステムを提供する。【解決手段】ビデオデータの第１のフレーム（基準フレーム）内のマクロブロックに関連付けられた動きベクトル、及びビデオデータの第２のフレーム（現在フレーム）内のマクロブロックに関連付けられた動きベクトルから、候補動きベクトルのセットが選択される。このセットの統計的尺度が決定される。この統計的尺度は、第２のフレーム内の興味のあるマクロブロックの動きベクトルを定義する。【選択図】図５
2011254508.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することと
を備える方法。
【請求項２】
前記決定することは、前記セットの中央値を決定することを備え、
前記興味のあるマクロブロックの前記動きベクトルは前記中央値である請求項１に記載の方法。
【請求項３】
前記決定することは、前記セットの平均を決定することを備え、
前記興味のあるマクロブロックの前記動きベクトルは前記平均である請求項１に記載の方法。
【請求項４】
前記セットは、
前記複数の第２の動きベクトルと、
前記複数の第１のマクロブロックのうち選択されたマクロブロックの動きベクトルとを備え、
前記第１のフレーム内の位置に、第１のマクロブロックに対する第１の動きベクトルが存在し、かつ、前記第２のフレーム内の前記位置に、第２のマクロブロックに対する第２の動きベクトルが存在するのであれば、前記第２の動きベクトルが、前記セット内に含まれ、前記第１の動きベクトルが、前記セット内に含まれない請求項１に記載の方法。
【請求項５】
前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定することを更に備える請求項１に記載の方法。
【請求項６】
前記判定することは、
前記第１のフレームに関連する動きベクトルのための第１の値の範囲を決定することと、
前記第２のフレームに関連する動きベクトルのための第２の値の範囲を決定することと、
前記第１の値の範囲と、前記第２の値の範囲とを比較することとを備え、
前記第１の範囲と前記第２の範囲とが、指定した量までオーバラップしているのであれば、前記複数の第１の動きベクトルからの動きベクトルは、前記セットに含まれる資格を有している請求項５に記載の方法。
【請求項７】
前記判定することは、
動きベクトルのペアの大きさを比較し、前記ペアのおのおのにおける動きベクトルが互いに類似しているかを判定することであって、前記動きベクトルの各ペアは、前記第１のフレーム内の位置における、第１のマクロブロックに関連する第１の動きベクトルと、前記第２のフレーム内の前記位置における、第２のマクロブロックに関連する第２の動きベクトルとを備え、もしもルールを満足するのであれば、これら動きベクトルは類似していることと、
類似する前記第１のフレームと第２のフレームにおける動きベクトルのペアの数をカウントすることとを備え、
前記複数の第１の動きベクトルからの動きベクトルは、前記数がしきい値を超えた場合に、前記セットに含まれる資格を有している請求項５に記載の方法。
【請求項８】
前記セットは、前記興味のあるマクロブロックと同じ位置に存在する前記第１のフレーム内のマクロブロックと、動き境界の同じ側に存在する前記複数の第１のマクロブロックのマクロブロックに関連する動きベクトルを備える請求項５に記載の方法。
【請求項９】
前記セットは、前記複数の第１の動きベクトルからの動きベクトルを備え、これら動きベクトルは、前記興味のあるマクロブロックと同じ位置に存在する前記複数の第１のマクロブロック内のマクロブロックの動きベクトルと類似しており、これら動きベクトルは、ルールを満足するのであれば類似している請求項５に記載の方法。
【請求項１０】
前記第２のフレーム内の第２のマクロブロックと同じ位置における、前記第１のフレーム内の第１のマクロブロックに含まれる対象物に関連する動きベクトルは、前記第２のフレームにおいて、前記対象物が、指定した量まで前記第２のマクロブロックとオーバラップしているのであれば、前記セットに含まれる請求項１に記載の方法。
【請求項１１】
前記第１のフレームは、表示順において、前記第２のフレームよりも先である請求項１に記載の方法。
【請求項１２】
デコードデバイスに対してビデオデータ処理方法を実行させる、組み込まれたコンピュータ読取可能なプログラムコードを有するコンピュータ使用可能媒体であって、前記方法は、
ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することと
を備えるコンピュータ使用可能媒体。
【請求項１３】
前記セットは、
前記複数の第２の動きベクトルと、
前記複数の第１のマクロブロックのうち選択されたマクロブロックの動きベクトルとを備え、
前記第１のフレーム内の位置に、第１のマクロブロックに対する第１の動きベクトルが存在し、かつ、前記第２のフレーム内の前記位置に、第２のマクロブロックに対する第２の動きベクトルが存在するのであれば、前記第２の動きベクトルが、前記セット内に含まれ、前記第１の動きベクトルが、前記セット内に含まれない請求項１２に記載のコンピュータ使用可能媒体。
【請求項１４】
組み込まれた前記コンピュータ読取可能プログラムコードは、前記デコードデバイスに対して、前記ビデオデータ処理方法を実行させ、前記方法は更に、
前記第１のフレームに関連する動きベクトルのための第１の値の範囲を決定することと、
前記第２のフレームに関連する動きベクトルのための第２の値の範囲を決定することと、
前記第１の値の範囲と、前記第２の値の範囲とを比較することとを備え、
前記第１の範囲と前記第２の範囲とが、指定した量までオーバラップしているのであれば、前記複数の第１の動きベクトルからの動きベクトルは、前記セットに含まれる資格を有している請求項１２に記載のコンピュータ使用可能媒体。
【請求項１５】
組み込まれた前記コンピュータ読取可能プログラムコードは、前記デコードデバイスに対して、前記ビデオデータ処理方法を実行させ、前記方法は更に、
動きベクトルのペアの大きさを比較し、前記ペアのおのおのにおける動きベクトルが互いに類似しているかを判定することであって、前記動きベクトルの各ペアは、前記第１のフレーム内の位置における、第１のマクロブロックに関連する第１の動きベクトルと、前記第２のフレーム内の前記位置における、第２のマクロブロックに関連する第２の動きベクトルとを備え、これら動きベクトルは、もしもルールを満足するのであれば類似していることと、
類似する前記第１のフレームと第２のフレームにおける動きベクトルのペアの数をカウントすることとを備え、
前記複数の第１の動きベクトルからの動きベクトルは、前記数がしきい値を超えた場合に、前記セットに含まれる資格を有している請求項１２に記載のコンピュータ使用可能媒体。
【請求項１６】
前記セットは、前記興味のあるマクロブロックと同じ位置に存在する前記第１のフレーム内のマクロブロックと、動き境界の同じ側に存在する前記複数の第１のマクロブロックのマクロブロックに関連する動きベクトルを備える請求項１２に記載のコンピュータ使用可能媒体。
【請求項１７】
前記第２のフレーム内の第２のマクロブロックと同じ位置における、前記第１のフレーム内の第１のマクロブロックに含まれる対象物に関連する動きベクトルは、前記第２のフレームにおいて、前記対象物が、指定した量まで前記第２のマクロブロックとオーバラップしているのであれば、前記セットに含まれる請求項１２に記載のコンピュータ使用可能媒体。
【請求項１８】
前記第１のフレームは、表示順において、前記第２のフレームよりも先である請求項１２に記載のコンピュータ使用可能媒体。
【請求項１９】
ビデオデータを処理するシステムであって、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択する手段と、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定する手段と、
前記興味のあるマクロブロックに前記動きベクトルを適用することと
を備えるシステム。
【請求項２０】
前記セットは、
前記複数の第２の動きベクトルと、
前記複数の第１のマクロブロックのうち選択されたマクロブロックの動きベクトルとを備え、
前記第１のフレーム内の位置に、第１のマクロブロックに対する第１の動きベクトルが存在し、かつ、前記第２のフレーム内の前記位置に、第２のマクロブロックに対する第２の動きベクトルが存在するのであれば、前記第２の動きベクトルが、前記セット内に含まれ、前記第１の動きベクトルが、前記セット内に含まれない請求項１９に記載のシステム。
【請求項２１】
前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定する手段を更に備える請求項１９に記載のシステム。
【請求項２２】
前記判定する手段は、
前記第１のフレームに関連する動きベクトルのための第１の値の範囲を決定する手段と、
前記第２のフレームに関連する動きベクトルのための第２の値の範囲を決定する手段と、
前記第１の値の範囲と、前記第２の値の範囲とを比較する手段とを備え、
前記第１の範囲と前記第２の範囲とが、指定した量までオーバラップしているのであれば、前記複数の第１の動きベクトルからの動きベクトルは、前記セットに含まれる資格を有している請求項２１に記載のシステム。
【請求項２３】
前記判定する手段は、
動きベクトルのペアの大きさを比較し、前記ペアのおのおのにおける動きベクトルが互いに類似しているかを判定する手段であって、前記動きベクトルの各ペアが、前記第１のフレーム内の位置における、第１のマクロブロックに関連する第１の動きベクトルと、前記第２のフレーム内の前記位置における、第２のマクロブロックに関連する第２の動きベクトルとを備え、これら動きベクトルは、もしもルールを満足するのであれば類似している手段と、
類似する前記第１のフレームと第２のフレームにおける動きベクトルのペアの数をカウントする手段とを備え、
前記複数の第１の動きベクトルからの動きベクトルは、前記数がしきい値を超えた場合に、前記セットに含まれる資格を有している請求項２１に記載のシステム。
【請求項２４】
前記セットは、前記興味のあるマクロブロックと同じ位置に存在する前記第１のフレーム内のマクロブロックと、動き境界の同じ側に存在する前記複数の第１のマクロブロックのマクロブロックに関連する動きベクトルを備える請求項２１に記載のシステム。
【請求項２５】
前記セットは、前記複数の第１の動きベクトルからの動きベクトルを備え、これら動きベクトルは、前記興味のあるマクロブロックと同じ位置に存在する前記複数の第１のマクロブロック内のマクロブロックの動きベクトルと類似しており、これら動きベクトルは、ルールを満足するのであれば類似している請求項２１に記載のシステム。
【請求項２６】
前記第２のフレーム内の第２のマクロブロックと同じ位置における、前記第１のフレーム内の第１のマクロブロックに含まれる対象物に関連する動きベクトルは、前記第２のフレームにおいて、前記対象物が、指定した量まで前記第２のマクロブロックとオーバラップしているのであれば、前記セットに含まれる請求項１９に記載のシステム。
【請求項２７】
前記第１のフレームは、表示順において、前記第２のフレームよりも先である請求項１９に記載のシステム。
【請求項２８】
マイクロプロセッサと、
前記マイクロプロセッサに接続されたメモリユニットとを備え、前記メモリユニットは、前記マイクロプロセッサによって実行された場合、ビデオデータを処理する方法を実行する命令を含み、前記方法は、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することと
を備えるデバイス。
【請求項２９】
前記セットは、
前記複数の第２の動きベクトルと、
前記複数の第１のマクロブロックのうち選択されたマクロブロックの動きベクトルとを備え、
前記第１のフレーム内の位置に、第１のマクロブロックに対する第１の動きベクトルが存在し、かつ、前記第２のフレーム内の前記位置に、第２のマクロブロックに対する第２の動きベクトルが存在するのであれば、前記第２の動きベクトルが、前記セット内に含まれ、前記第１の動きベクトルが、前記セット内に含まれない請求項２８に記載のデバイス。
【請求項３０】
前記方法は更に、
前記第１のフレームに関連する動きベクトルのための第１の値の範囲を決定することと、
前記第２のフレームに関連する動きベクトルのための第２の値の範囲を決定することと、
前記第１の値の範囲と、前記第２の値の範囲とを比較することとを備え、
前記第１の範囲と前記第２の範囲とが、指定した量までオーバラップしているのであれば、前記複数の第１の動きベクトルからの動きベクトルは、前記セットに含まれる資格を有している請求項２８に記載のデバイス。
【請求項３１】
前記方法は更に、
動きベクトルのペアの大きさを比較し、前記ペアのおのおのにおける動きベクトルが互いに類似しているかを判定することであって、前記動きベクトルの各ペアは、前記第１のフレーム内の位置における、第１のマクロブロックに関連する第１の動きベクトルと、前記第２のフレーム内の前記位置における、第２のマクロブロックに関連する第２の動きベクトルとを備え、これら動きベクトルは、もしもルールを満足するのであれば類似していることと、
類似する前記第１のフレームと第２のフレームにおける動きベクトルのペアの数をカウントすることとを備え、
前記複数の第１の動きベクトルからの動きベクトルは、前記数がしきい値を超えた場合に、前記セットに含まれる資格を有している請求項２８に記載のデバイス。
【請求項３２】
前記セットは、前記興味のあるマクロブロックと同じ位置に存在する前記第１のフレーム内のマクロブロックと、動き境界の同じ側に存在する前記複数の第１のマクロブロックのマクロブロックに関連する動きベクトルを備える請求項２８に記載のデバイス。
【請求項３３】
前記セットは、前記複数の第１の動きベクトルからの動きベクトルを備え、これら動きベクトルは、前記興味のあるマクロブロックと同じ位置に存在する前記複数の第１のマクロブロック内のマクロブロックの動きベクトルと類似しており、これら動きベクトルは、ルールを満足するのであれば類似している請求項２８に記載のデバイス。
【請求項３４】
前記第２のフレーム内の第２のマクロブロックと同じ位置における、前記第１のフレーム内の第１のマクロブロックに含まれる対象物に関連する動きベクトルは、前記第２のフレームにおいて、前記対象物が、指定した量まで前記第２のマクロブロックとオーバラップしているのであれば、前記セットに含まれる請求項２８に記載のデバイス。
【請求項３５】
前記第１のフレームは、表示順において、前記第２のフレームよりも先である請求項２８に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、マルチメディアデータの処理に関し、特に、ビデオデータの復号（解凍）に関する。
【背景技術】
【０００２】
メディアシステムは、有線及び／又は無線チャネルによって、ビデオデータのようなメディアデータを送信する。そのようなチャネルによって送信されるデータは、喪失又は破壊されうる。あるいは、経路に沿った遅延を経験し、恐らくは、目的地に遅れて到着する。遅れたデータ、又は喪失したデータは、限定される訳ではないが、例えばＭＰＥＧ（Moving Pictures Experts Group）エンコードのような技術を使って予測的にエンコード（圧縮）されるビデオデータの場合には特に問題となる。予測的エンコードは、エンコードされるデータに、依存性をもたらす。よって、幾つかのデータのデコードは、他のデータのデコードに依存する。予測的エンコードは一般に、圧縮量を改善する一方、もしも他のデータのデコードが依存するデータが喪失されたり、あるいは遅れて到着した場合には、誤り伝搬をもたらす結果となりうる。遅れたデータ又は喪失したあらゆるデータは、再構築（デコード又は解凍）されたビデオデータの品質に影響を与えうる。しかしながら、この影響は、喪失したデータ又は遅れたデータが、動き補償予測のために使用される基準フレームの一部である場合、悪化する。なぜなら、基準フレームに依存する誤りが、他のフレームに伝搬するからである。
【０００３】
例えば、ビデオデータの連続したフレーム内の異なる位置に現れる動作対象物を考慮されたい。この対象物は、予測的エンコード技術を使用して、第１のフレーム内のデータによって表される。しかしながら、第２のフレーム内では、第１のフレームから第２のフレームへどのように動作したかを表す動きベクトルを用いて表される。したがって、第２のフレームでは、動きベクトル用のデータのみが送信される必要がある。これは、この対象物を表すデータが再送信される必要がないので、圧縮量を改善する。しかしながら、この動きベクトルが受信されないと、第２のフレームがビデオイメージに再構築される場合、この対象物は適切に再現されず、再構築されたビデオの品質が低下する。この対象物が現れる次のフレームは、第２のフレーム内における対象物の適切な配置に依存するので、次のフレームもまた影響を受ける。
【０００４】
再構築されたビデオの品質に関する欠落（例えば、損失、喪失、遅延、又は不適切な受信）データのインパクトを緩和するために、ビデオデコーダは、受信データに対して誤り復元（例えば、誤りキャンセル）処理を適用することができる。動きベクトルが復元（例えば、推定）されるのであれば、再構築されたビデオの品質が著しく改善されることを示す研究がある。時間的な誤りキャンセルは、現在のフレーム及び／又は前のフレームから適切に受信された情報を用いて、現在のフレームにおける損失された又は不適切に受信された動きベクトルを推定することによって、再構築されたビデオの品質を改善する。言い換えれば、時間的な誤りキャンセルの目的は、空間的のみならず時間的な結びつき（associates）を用いて、動きベクトルを推定することである。
【０００５】
従来の時間的誤りキャンセル技術は、ピクセルドメインに基づく。フレーム内の領域（例えば、興味のあるマクロブロック）に関連する動きベクトルを損失したフレーム（現在のフレーム）を考慮されたい。現在のフレームにおいて、興味のあるマクロブロックを取り囲むマクロブロックに関連する動きベクトルと、基準フレームにおいて、同じ位置に存在するマクロブロックを取り囲むマクロブロックに関連する動きベクトルとを選択することによって、動きベクトルのセットが生成される（同じ位置に存在するマクロブロックは、興味のあるマクロブロックが現在のフレーム内に存在するように、基準フレーム内の同じ位置に存在するマクロブロックである）。ピクセルドメインアプローチを用いて、セット内の動きベクトルの各々について、歪みの尺度が計算される。歪みを評価するために、再構築されたフレームバッファから、ピクセル値が得られる。動き選択技術では、欠落した動きベクトルの代わりに、歪み尺度を最小化する動きベクトルが選択される。動き探索技術では、歪み尺度を最小化する動きベクトルの探索が、例えば３×３ウィンドウからなるマクロブロック内で実行される。
【０００６】
ピクセルドメイン誤りキャンセルは、計算が複雑で、かつ時間がかかるので、問題がある。各々の潜在的な動きベクトルのための歪みを評価することは、多大な計算を必要とするので、計算リソースを消費し、もってデコード処理における遅延をもたらす。ピクセルドメイン誤りキャンセルは、デコーダがフレームのデコードを完了した後に実行されるのであれば最も効率的である。従って、ピクセルドメインにおいて、誤りキャンセルによってもたらされる遅延は、１フレーム持続時間と等価かもしれない。更に、再構築されたフレームバッファにアクセスして、歪み評価のためのピクセル値を検索することは、時間がかかり、遅延を増す。
【０００７】
従って、計算の複雑さと、デコード遅延とを低減することができる方法及び／又はシステムが望ましいだろう。
【発明の概要】
【０００８】
ビデオデータを処理する方法及びシステムが記述される。１つの実施形態では、ビデオデータの第１のフレーム内のマクロブロックに関連付けられた動きベクトル、及びビデオデータの第２のフレーム内のマクロブロックに関連付けられた動きベクトルから、候補動きベクトルのセットが選択される。１つの実施形態では、第１のフレームは、表示順において、第２のフレームに先行する。このセットの統計的尺度が決定される。例えば、候補動きベクトルの平均又は中央値が決定される。この統計的尺度は、第２のフレームにおける興味のあるマクロブロックのための動きベクトルを定義する。
【０００９】
候補動きベクトルを選択するために様々な方法を使用することができる。候補動きベクトルの選択と、代替動きベクトルの決定とは、ピクセルドメインではなく、動きベクトルドメインで実行される。従って、計算上の複雑さ及びレイテンシが低減される。更なる利点として、ハードウェア変更が必要とされない。
【図面の簡単な説明】
【００１０】
【図１】図１は、ビデオデータをデコードするシステムの１つの例のブロック図である。
【図２】図２は、マクロブロックとして体系化されたイメージデータの２つのフレームの例を示す。
【図３】図３は、１つのフレームから次のフレームへの対象物の動きを示す２つのイメージフレームの例を示す。
【図４】図４は、データエンコード処理からデータデコード処理へのデータの流れを示すデータフロー図を示す。
【図５】図５は、動きベクトルドメインベースの時間誤りキャンセル方法のフローチャートである。
【図６】図６は、図５の方法に従った情報のフローを示す。
【図７】図７は、動きベクトルドメインベースの時間誤りキャンセル処理に使用される候補動きベクトルを選択する方法のフローチャートである。
【図８】図８は、図７の方法に従った情報のフローを示す。
【図９】図９は、フレーム対フレーム動き変化を検出し、動きベクトルドメインベースの時間誤りキャンセル処理で使用される候補動きベクトルを選択するために使用される方法のフローチャートである。
【図１０】図１０は、フレーム対フレーム動き変化を検出し、動きベクトルドメインベースの時間誤りキャンセル処理で使用される候補動きベクトルを選択するために使用される別の方法のフローチャートである。
【図１１】図１１は、フレーム内の動き境界を位置決めし、動きベクトルドメインベースの時間誤りキャンセル処理で使用される候補動きベクトルを選択するために使用される方法のフローチャートである。
【図１２】図１２は、図１１の方法に従った情報のフローを示す。
【図１３】図１３は、動きベクトルドメインベースの時間誤りキャンセル処理で使用される候補動きベクトルを選択するために動き対象物の軌跡を用いる方法のフローチャートである。
【図１４】図１４は、図１３の方法を示す。
【発明を実施するための最良の形態】
【００１１】
次の詳細説明では、本明細書で提示される概念の完全な理解を与えるために、多くの具体的な詳細が述べられる。しかしながら、本発明の実施形態は、これら具体的な詳細がなくても、あるいはその等価物を用いても実現されうることが当業者によって理解されるであろう。他の例では、周知の方法、手順、及びコンポーネントは、これら実施形態の局面を不必要に不明瞭にしないために、詳細には記述されない。
【００１２】
以下の詳細記述の幾つかの部分は、コンピュータメモリ内で実行されるデータビットに関する動きの手順、ステップ、論理ブロック、処理、及び他の記号表示で表される。これら記述及び表示は、当業者の成果の本質を、他の当業者に最も効率的に伝達するために、データ処理技術における当業者によって使用される手段である。この手順、コンピュータ実行ステップ、論理ブロック、処理等は、本明細書に記載され、一般に、所望の結果をもたらす首尾一貫したシーケンスのステップ又は命令であると考えられる。これらステップは、物理量の物理的操作を必要とする。必ずしも必要という訳ではないが、通常、これらの量は、コンピュータシステム又は類似の電子計算デバイスにおいて格納、転送、結合、比較、あるいは操作されることが可能な電気信号又は磁気信号の形態をとる。それは主に、ビット、値、要素、シンボル、キャラクタ、用語、番号等のような信号を参照するために、共通して利用されるという理由で、便利であることが明らかになった。
【００１３】
しかしながら、これら用語及び類似の用語の全てが、適切な物理量に関連付けられるべきであり、単にこれらの量に適用された便利なラベルであることを心に留めておくべきである。特に述べない限り次の議論から明らかなように、本実施形態の全体にわたって、例えば「選択する」、「判定する」、「比較する」、「カウントする」、あるいは「決定する」等のような用語を用いた議論は、コンピュータシステム又は類似の電子計算デバイスの動作及び処理を称し、コンピュータシステムのレジスタ及びメモリ内の物理（電子的な）量として表されるデータを操作し、コンピュータシステムメモリ又はレジスタ又は他の情報記憶装置、送信又は表示デバイス内の物理量と同様に表される他のデータに変換することが認識される。
【００１４】
１つの実施形態では、コンピュータ読取可能プログラムコードが組み込まれたコンピュータ使用媒体が実現される。コンピュータシステムは一般に、情報及び命令を処理するプロセッサと、情報及び命令を格納するランダムアクセス（揮発性）メモリ（ＲＡＭ）と、不変の情報及び命令を格納する読取専用（不揮発性）メモリ（ＲＯＭ）と、例えば磁気ディスク又は光ディスク及びディスクドライブのように、情報及び命令を格納するデータ記憶デバイスと、ディスプレイデバイス（例えば、モニタ）のように、コンピュータユーザへ情報を表示するオプションのユーザ出力デバイスと、英数字キー及びファンクションキー（例えば、キーボード）を含み、情報及びコマンド選択をプロセッサに伝達するオプションのユーザ入力デバイスと、カーソル制御デバイス（例えば、マウス）のように、ユーザ入力情報及びコマンド選択をプロセッサに伝達するオプションのユーザ入力デバイスとを含みうる。このコンピュータシステムは更に、有線通信インタフェース又は無線通信インタフェースの何れか一方を用いて、コンピュータシステムとネットワークとの間の物理通信リンクを提供する入力／出力デバイスをも含む。
【００１５】
図１は、実施形態が実現されうるシステム１０の一例のブロック図である。このシステム１０は、実施形態のある機能を実現するための実行プラットフォームのコンポーネントを示す。図１に示すように、システム１０は、ホストインタフェース１１を介してデジタル信号プロセッサ（ＤＳＰ）１５に接続されたマイクロプロセッサ１２（例えば、ＡＲＭ（Advanced Reduced Instruction Set Computer Machine）プロセッサ）を含む。ホストインタフェース１１は、マイクロプロセッサ１２とＤＳＰ１５との間を通過するデータ及びコマンドを、それぞれのフォーマットに変換する。この実施形態では、マイクロプロセッサ１２とＤＳＰ１５との両方が、メモリコントローラ１６を介してメモリ１７に接続される。このシステム１０の実施形態では、メモリ１７は、共有メモリであり、これによってメモリ１７は、マイクロプロセッサ１２とＤＳＰ１５との両方のための命令及びデータを格納する。共有メモリ１７へのアクセスは、メモリコントローラ１６を介する。共有メモリ１６は更に、ピクセルデータを格納するためのビデオフレームバッファを備える。これは、接続されたディスプレイ１８を駆動する。
【００１６】
上述したように、実施形態のある処理及びステップは、コンピュータシステム（例えば、システム１０）のコンピュータ読取可能メモリ（例えば、メモリ１７）内に存在する一連の命令（例えば、ソフトウェアプログラム又はプログラム）として、少なくとも１つの実施形態で実現され、システム１０のマイクロプロセッサ１２及びＤＳＰ１５によって実行される。実行されると、これら命令は、システム１０に対して、後述する実施形態の機能を実施させる。別の実施形態では、本発明のある処理又はステップが、ハードウェアで実現される。
【００１７】
本明細書で提供される記述及び例は、ビデオベースのデータ（メディアデータ又はマルチメディアデータ又はコンテンツとも称される）に関して議論されるが、本発明は、それに限定されない。例えば、実施形態はまた、イメージベースのデータ、ウェブページベースのデータ、グラフィックベースのデータ等、及びこれらの組み合わせでも使用可能である。
【００１８】
本発明の実施形態は、例えばＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４のようなＭＰＥＧ（Moving Pictures Experts Group）圧縮（エンコード）スキーム、及びＨ．２６１、Ｈ．２６３、Ｈ．２６４のような国際電気通信連合（ＩＴＵ）とともに使用可能であるが、本発明は、それに限定されない。一般に、実施形態は、本質的に、圧縮量（圧縮比）を増加させるために動きベクトルを用いるエンコードスキームである、時間冗長又は動き補償を利用するエンコードスキームとともに利用可能である。
【００１９】
図２は、イメージデータ又はビデオデータの２つのフレーム２１，２２の例を示す。図２の例では、表示順で、フレーム２１（本明細書では、第１のフレーム又は基準フレームとも称する）が、フレーム２２（本明細書では、第２のフレーム又は現在のフレームとも称する）に先行する。フレーム２１，２２の各々は、マクロブロック２３によって例示されているように、複数のマクロブロックとして体系化される。１つの実施形態では、マクロブロックは、１６ピクセル×１６ピクセルの次元を持っている。しかしながら、本発明はそれに限定されず、マクロブロックは、１６×１６ピクセル以外の次元を持つことができる。図２は、ある数のマクロブロックを示すが、本発明は、それに限定されない。
【００２０】
図２の例では、動きベクトルは、各マクロブロックに関連付けられる。動きベクトルは、その長さ（大きさ）を記述するディメンションと、その方向（角度）を記述するディメンションとを持っている。動きベクトルは、０の大きさを持ちうる。例示目的のために、デコーダにおいて適切に受信された動きベクトルは、マクロブロック内において矢印（例えば、矢印２４）として表わされる。関連する動きベクトルが適切に受信されないマクロブロック（例えば、マクロブロック２５）は、図２において影表示される。また、フレーム２２は、興味のあるマクロブロック２８を示す。これは、「Ｘ」によって示され、ここは、動きベクトルが適切に受信されていない。もしも動きベクトルを表すデータが遅れたり、破壊されたり、失われた場合には、動きベクトルは適切に受信されない。
【００２１】
図２に示すように、幾つかのマクロブロックの動きベクトル（すなわち、１又は複数の連続したマクロブロックからなるマクロブロックのスライス）が適切に受信されない例がある。見て分かるように、実施形態によれば、動きベクトルは、動きベクトルが適切に受信されていないスライス内の各マクロブロックについて推定することができる。しかしながら、一般に動きベクトルは、推定することが望まれるあらゆるマクロブロックについて推定される。
【００２２】
１つの実施形態では、現在のフレーム２２内のマクロブロック２８の動きベクトルを推定するために、基準フレーム２１内のマクロブロック２９が特定される。興味のあるマクロブロック２８がフレーム２２内に存在するのと同じように、マクロブロック２９が、フレーム２１内の同じ位置に存在する。従って、マクロブロック２８及びマクロブロック２９は、同じ位置にあると言われている。更に、現在のフレーム２２内の、マクロブロック２８に隣接する第１の複数のマクロブロック（ウィンドウ２６）が特定され、基準フレーム２１内の、マクロブロック２９に隣接する第２の複数のマクロブロック（ウィンドウ２７）が特定される。１つの実施形態では、ウィンドウ２６がフレーム２２内に存在するのと同じように、ウィンドウ２７が、フレーム２１内の同じ位置に存在する。従って、ウィンドウ２６とウィンドウ２７もまた同じ位置に存在すると言われる。一般に、同じ位置に存在する（"co-located"）という用語は、１つのフレームにおける領域（例えば、マクロブロック、又はマクロブロックのウィンドウ）と、別のフレームにおける対応する領域とを示すために使用される。これら領域は、それぞれのフレーム内における同じ位置に存在する。同じ位置に存在するマクロブロック１０８とマクロブロック１０９とのペアもまた示される。すなわち、マクロブロック１０８は、ウィンドウ２７内のある位置に存在するが、これは、ウィンドウ２６内のマクロブロック１０９の位置と同じである。
【００２３】
一般に、実施形態によれば、現在のフレーム２２において、興味のあるマクロブロックに隣接するマクロブロックに関連付けられた適切に受信された動きベクトルを考慮することによって、かつ、基準フレーム２１において、興味のあるマクロブロックと同じ位置に存在するマクロブロックに隣接するマクロブロックに関連付けられた適切に受信された動きベクトルを考慮することによって、フレーム２２内の興味のある任意のマクロブロックのための動きベクトルを推定することが可能である。
【００２４】
１つの実施形態では、ウィンドウ２６内のマクロブロックのアレイは、興味のあるマクロブロック２８を囲む。１つのそのような実施形態では、ウィンドウ２６及びウィンドウ２７はそれぞれ、３×３のマクロブロックのアレイを含む。正方形ではないウィンドウを含む異なる次元のウィンドウを選択することが可能である。更に、特に興味のあるマクロブロックが、フレームの端にある場合には、ウィンドウは必ずしも、興味のあるマクロブロックを囲む必要は無い。
【００２５】
図３は、１つの実施形態に従った２つの連続したイメージフレーム（第１のフレーム３２及び第２のフレーム３４）を例示する。図３の例では、表示順に、第２のフレーム３４は、第１のフレーム３２に続く。ＭＰＥＧ圧縮スキームでは、第１のフレーム３２は、例えばＩ−フレーム又はＰ−フレームに相当し、第２のフレーム３４は、例えばＰフレームに相当する。一般に、第１のフレーム３２と第２のフレーム３４とは、「相互エンコードされる」（例えば、相互エンコードされるフレームは、他のフレームに依存してエンコードされる）。
【００２６】
図３の例では、対象物３３が、第１のフレーム３２内のある位置に存在し、同じ対象物３３が、第２のフレーム３４内の異なる位置に存在する。ＭＰＥＧ圧縮スキームは、フレーム間の相違をエンコードすることにより機能する。動きベクトル３５は、フレーム３２とフレーム３４との間のイメージの変化を伝達する最も単純な方法として使用される。すなわち、対象物３３が移動したというだけの理由で、対象物３３のイメージを再度送る必要はない。同様にして、動きベクトルは、フレーム内のマクロブロック（例えば、図２のマクロブロック２３）に関連付けられる。
【００２７】
図４は、１つの実施形態に従って、エンコーダからデコーダへのデータの流れを示すデータフロー図４０である。エンコーダ内では、エンコード処理４２が、例えばＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ．２６１、Ｈ．２６３、又はＨ．２６４のようなエンコードスキームを用いて、データ４１を圧縮（エンコード）する。この圧縮されたデータ４３は、エンコーダから、有線チャネル又は無線チャネルであるチャネル４４を経由してデコーダ（例えば、図１のシステム１０）へ送られる。受信されたデータ４５は、適切に受信されたデータと、破壊されたデータとの両方を含みうる。更に、幾つかのデータが送信中に失われるかもしれないし、あるいはデコーダに遅く到着するかもしれない。デコード処理４６は、この受信データ４５を解凍（再構築）し、再構築データ４７を生成する。
【００２８】
図５は、動きベクトルドメインベースの時間誤りキャンセル方法の１つの実施形態のフローチャート５０である。図５のフローチャート５０には（図７，９，１０，１１，１３にそれぞれ示すフローチャート７０，９０，１００，１１０，１３０と同様に、）具体的なステップが示されているが、そのようなステップは典型例である。すなわち、他の様々なステップや、フローチャート５０，７０，９０，１００，１１０，１３０で引用されたステップの変形を実行することによって実現されうる。フローチャート５０，７０，９０，１００，１１０，１３０のステップは、ここに示すものとは異なる順に実行されるかもしれず、また、フローチャート５０，７０，９０，１００，１１０，１３０のステップは、必ずしも、例示したシーケンスで実行される必要はないことが認識される。
【００２９】
図５は、図６をも参照して記述される。図６は、基準フレーム６１から選択された３×３のマクロブロックからなるウィンドウ６３と、現在のフレーム６２から選択された３×３のマクロブロックからなるウィンドウ６４とを示す。基準フレーム６１及び現在のフレーム６２はそれぞれ、ウィンドウ６３及びウィンドウ６４に含まれるマクロブロックに加え、更なるマクロブロックを含んでいることが理解される。
【００３０】
ウィンドウ６３及びウィンドウ６４は、同じ位置に存在する。本実施形態では、興味のあるマクロブロック（ＭＢ）６８、すなわち、動きベクトルが推定されるマクロブロックは、ウィンドウ６４の中心に位置する。しかしながら、上述したように、中心に位置する必要はない。
【００３１】
ウィンドウ６３，６４は、３×３以外のウィンドウでもありうることが理解される。例えば、５×５のウィンドウが使用されてもよい。更に、興味のあるマクロブロックが、現在のフレーム６２の一端に沿って存在する場合、正方形ではないウィンドウ（例えば３×２又は２×３のウィンドウ）が使用されうる。
【００３２】
１つの実施形態では、基準フレーム６１は、表示順で、現在のフレーム６２に先行する。別の実施形態では、基準フレーム６１は、表示順で、現在のフレーム６２の後に来るかもしれない。すなわち、基準フレーム６１は「将来のフレーム」かもしれない。また別の実施形態では、本明細書に記載の誤りキャンセル方法のために、現在のフレーム６２に先行するフレームと、現在のフレーム６２の後に来る将来のフレームとの両方が考慮されうる。
【００３３】
将来のフレームを使用することは、デコード処理へ遅延をもたらすかもしれない。しかしながら、遅延が容認されるアプリケーションでは、将来のフレームからの動きベクトルが、誤りキャンセルのために使用されてもよい。また、現在のフレーム６２が、フレームシーケンス（例えば、Ｉ−フレーム）における第１のフレームである例において、将来のフレームからの動きベクトルが使用されても良い。
【００３４】
概要すると、フローチャート５０の方法における目的の１つは、フレーム６１，６２のマクロブロックに関連付けられた適切に受信された動きベクトルから、候補動きベクトルのセット６５を賢明に選択することである。１つの実施形態では、候補動きベクトルのセット６５が一旦特定されると、ベクトルメジアンフィルタ（ＶＭＦ）６６が、セット６５内のベクトルに適用される。ＶＭＦ６６の出力は、興味のあるマクロブロック６８に対する推定された動きベクトル（ＭＶ）６７である。
【００３５】
１つの実施形態では、図５のブロック５１では、ウィンドウ６３及びウィンドウ６４が特定される。ウィンドウ６３内のマクロブロックに関連した正確に受信された動きベクトルと、ウィンドウ６４内のマクロブロックに関連した正確に受信された動きベクトルとがアクセスされる。
【００３６】
ブロック５２では、１つの実施形態として、基準フレーム６１内の動きベクトルが、候補動きベクトルのセット６５内に含まれる資格を有しているか否かが判定される。この判定を行うために使用される方法の実施形態が、図７，８，９，１０と共に記述される。
【００３７】
図５のブロック５３では、１つの実施形態として、候補動きベクトルのセット６５に、基準フレーム内の動きベクトルを含むことができるのであれば、ウィンドウ６３及びウィンドウ６４からの動きベクトルが賢明に選択され、セット６５に含められる。ウィンドウ６３，６４から動きベクトルを選択するために使用される方法の実施形態が、図１１，１２，１３，１４と共に記述される。
【００３８】
図５のブロック５４では、１つの実施形態として、基準フレーム内の動きベクトルが、候補動きベクトルのセット６５に含められる資格を有していないのであれば、ウィンドウ６４からの動きベクトルのみが選択され、セット６５に含められる。ウィンドウ６４が、適切に受信された動きベクトルを含まない例がありうることに留意されたい。図７及び図８の方法は、それらの例に対処するために使用することができる。
【００３９】
図５のブロック５５では、１つの実施形態として、候補動きベクトルのセット６５の統計的尺度が決定される。この統計的尺度は、興味のあるマクロブロック６８に対する動きベクトル６７を定義する。そして、この動きベクトル６７は、興味のあるマクロブロック６８に適用することができる。
【００４０】
１つの実施形態では、この統計的尺度は、候補動きベクトルのセット６５の中央値である。そのような１つの実施形態では、セット６５の中央値は（具体的に、中央値ベクトル）は、以下のようにして決定される。
【００４１】
Ｎ個のｍ次元ベクトル
【数１】
2011254508.tif 000003
【００４２】
のアレイ、ただしｉ＝１，２，・・・Ｎであり、
【数２】
2011254508.tif 000004
【００４３】
である場合、中央値ベクトル
【数３】
2011254508.tif 000005
【００４４】
は、以下の制約を満足するベクトルである。
【数４】
2011254508.tif 000006
【００４５】
ここで、ｐは、ベクトル間のｐ−ノルム数的指標を表す。簡略のために、１つの実施形態では、ｐ＝１が使用される。２次元ベクトル
【数５】
2011254508.tif 000007
【００４６】
の場合、
【数６】
2011254508.tif 000008
【００４７】
と
【数７】
2011254508.tif 000009
【００４８】
との間の１−ノルム距離は
【数８】
2011254508.tif 000010
【００４９】
である。
【００５０】
従って、１つの実施形態では、興味のあるマクロブロック６８について推定された動きベクトル６７は、候補動きベクトルのセット６５の中央値である。候補動きベクトルのセット６５の中央値以外の統計的尺度も決定され、推定された動きベクトル６７のために使用することができる。例えば、セット６５の平均が決定され、使用することができる。
【００５１】
一般に、候補動きベクトルのセット６５が特定される。そして、このセット６５は、興味のあるマクロブロック６８に対する推定された動きベクトル６７を決定するために同様に取り扱われる。この推定された動きベクトル６７は、セット６５内の動きベクトルのうちの１つかもしれない。あるいは、セット６５が取り扱われることによって決定される動きベクトルかもしれない。
【００５２】
重要なことに、推定された動きベクトル６７は、動きベクトルドメイン内で決定され、ピクセルドメイン内では決定されない。具体的には、ピクセル値は、誤りキャンセルに使用されず、候補動きベクトルの各々に関連付けられた歪み値は、誤りキャンセルのために計算されない。従って、計算上の複雑さ、及び関連するデコード遅延が低減される。また、ピクセル値を検索するためにフレームバッファにアクセスする必要はないので、更なるデコード遅延の源をなくすことができる。更に、候補動きベクトルのセット６５に含められる動きベクトルを賢明に選択することによって、ピクセルベースの誤りキャンセル技術に関連するピーク信号対雑音比（ＰＳＮＲ）と同等であるか、さもなければそれより良好なピーク信号対雑音比（ＰＳＮＲ）を得ることができる。
【００５３】
図７は、動きベクトルドメインベースの時間誤りキャンセル処理で使用される候補動きベクトルの選択方法の１つの実施形態のフローチャート７０である。フローチャート７０は、図５のブロック５２，５３，５４を実現する方法の１つの実施形態について記述する。図７は、更に図８を参照して記述される。
【００５４】
１つの実施形態では、図７のブロック７１では、（基準フレーム８１内の）ウィンドウ８３、及び（現在のフレーム８２内の）ウィンドウ８４が特定される。基準フレーム８１及び現在のフレーム８２はそれぞれ、ウィンドウ８３及びウィンドウ８４に含まれるマクロブロックの他のマクロブロックを含んでいることが理解される。
【００５５】
次に、ウィンドウ８３内のマクロブロックに関連付けられた適切に受信された動きベクトルと、ウィンドウ８４内のマクロブロックに関連付けられた適切に受信された動きベクトルとがアクセスされる。ウィンドウ８３内の適切に受信された動きベクトルは、文字Ａを用いて識別される。一方、ウィンドウ８４内の適切に受信された動きベクトルは、文字Ｂを用いて識別される。
【００５６】
ブロック７２では、ウィンドウ８３とウィンドウ８４との同じ位置に存在するマクロブロックの各ペアについて、ウィンドウ８４内のマクロブロックについて、適切に受信された動きベクトルが存在するか否かが判定される。
【００５７】
ブロック７３では、ウィンドウ８４内のマクロブロックについて、適切に受信された動きベクトルが存在するのであれば、その動きベクトルが、候補動きベクトルのセット８５に含められ、ウィンドウ８３内の同じ位置に存在するマクロブロックの動きベクトルは、セット８５内に含められない。例えば、（基準フレーム８１内のウィンドウ８３内の）マクロブロック８７について、適切に受信された動きベクトルが存在し、（現在のフレーム８２内のウィンドウ８４内の）マクロブロック８９について、適切に受信された動きベクトルが存在する。１つの実施形態によれば、マクロブロック８９（現在のフレーム８２）に関連付けられた動きベクトルがセット８５に含められ、マクロブロック８７（基準フレーム８１）に関連付けられた動きベクトルがセット８５に含められない。
【００５８】
ブロック７４では、ウィンドウ８４内のマクロブロックについて、適切に受信された動きベクトルが存在しないのであれば、ウィンドウ８３内の同じ位置に存在するマクロブロックの動きベクトルが、候補動きベクトルのセット８５に含められる。例えば、興味のあるマクロブロック８８について適切に受信された動きベクトルが存在しないのであれば、（基準フレーム８１内の）同じ位置に存在するマクロブロック８６に関連付けられた動きベクトルがセット８５に含められる。
【００５９】
上述したように、（図５及び図６の議論を参照して）候補動きベクトルのセット８５の統計的尺度が決定される。
【００６０】
幾つかの実例では、１つのフレームから次のフレームへの動きは連続的ではないかもしれない。例えば、基準フレームは１つの動きのタイプを含む一方、現在のフレーム内の動きは、方向を変えたか、あるいは停止したかもしれない。更に、基準フレーム内の対象物は、興味のあるマクロブロックの隣接外に移動し、候補動きベクトルのセット内にその対象物の動きベクトルを含めることは適切ではないかもしれない。
【００６１】
図９は、フレーム対フレームの動き変化を検出する方法の１つの実施形態のフローチャート９０である。図１０は、フレーム対フレームの動き変化を検出する方法の別の実施形態のフローチャート１００である。フローチャート９０，１００の方法の何れか一方又は両方は、前のパラグラフで述べた点に対処するために、基準フレームからの動きベクトルが、候補動きベクトルのセット内に含まれるべきか否かを判定するために使用することができる。
【００６２】
先ず図９に示すように、フローチャート９０は、図５のブロック５２を実現するための方法の１つの実施形態を示す。ブロック９１では、基準フレームに関連した動きベクトルの第１の値の範囲が決定される。ブロック９２では、現在のフレームに関連した動きベクトルの第２の値の範囲が決定される。ブロック９３では、第１の値の範囲及び第２の値の範囲が比較され、この比較結果に従って、基準フレームに関連した動きベクトルが、候補動きベクトルのセットに含められる。
【００６３】
また、図９は、図２に関して記載される。ブロック９１では、１つの実施形態において、基準フレーム２１に関連する適切に受信された動きベクトルのために動きベクトル統計量が計算される。
【００６４】
ブロック９２では、１つの実施形態において、現在のフレーム２２に関連する適切に受信された動きベクトルのために動きベクトル統計量が計算される。
【００６５】
１つの実施形態では、基準フレーム２１及び現在のフレーム２２に関連する全ての動きベクトルが、動きベクトル統計量の計算に含まれる。別の実施形態では、全ての動きベクトルの代わりに、動きベクトルのサブセットのみが使用される。後者の実施形態では、例えば、サブセットは、両方のフレームが適切に受信される動きベクトルのためのマクロブロックに関連する動きベクトルのみを含む。すなわち、例えば、現在のフレーム２２内の同じ位置に存在するマクロブロックの動きベクトルが、適切に受信されるのであれば、基準フレーム２１内のマクロブロックの動きベクトルは、第１のサブセット内にのみ含まれる。同様に、基準フレーム２１内の同じ位置に存在するマクロブロックの動きベクトルもまた適切に受信されるのであれば、現在のフレーム２２内のマクロブロックの動きベクトルのみが第２のサブセットに含まれる。
【００６６】
１つの実施形態では、各フレームについて、計算された統計量は、動きベクトルディメンション（大きさ／長さ及び方向／角度）の平均及び標準偏差を含む。動きベクトル統計量の計算に含まれる動きベクトル
【数９】
2011254508.tif 000011
【００６７】
のインデクスのセットをｌとし、Ｍを、セットｌのサイズとする。すると、大きさ（ｍａｇ）と角度（ａｎｇ）の平均及び標準偏差（ｓｔｄ）は、基準フレーム２１と現在のフレーム２２とについて以下の通りとなる。
【数１０】
2011254508.tif 000012
【数１１】
2011254508.tif 000013
【数１２】
2011254508.tif 000014
【数１３】
2011254508.tif 000015
【００６８】
サブスクリプト「ｆｒｍ」は、現在のフレーム又は基準フレームの何れか一方を称する。平均と標準偏差とが一旦計算されると、範囲  
（ｍｅａｎｍａｇ＿ｆｒｍ−ｓｔｄｍａｇ＿ｆｒｍ，ｍｅａｎｍａｇ＿ｆｒｍ＋ｓｔｄｍａｇ＿ｆｒｍ）、及び  
（ｍｅａｎａｎｇ＿ｆｒｍ―ｓｔｄａｎｇ＿ｆｒｍ，ｍｅａｎａｎｇ＿ｆｒｍ＋ｓｔｄａｎｇ＿ｆｒｍ）が現在のフレームと基準フレームとの各々について形成される。
【００６９】
ブロック９３では、１つの実施形態において、基準フレーム２１の動きベクトル大きさの範囲と、現在のフレーム２２の動きベクトル大きさの範囲とが比較され、基準フレーム２１の動きベクトル角度の範囲と、現在のフレーム２２の動きベクトル角度の範囲ともまた比較される。１つの実施形態では、基準フレーム２１の動きベクトル大きさの範囲が、現在のフレーム２２の動きベクトル大きさの範囲とオーバラップし、かつ基準フレーム２１の動きベクトル角度の範囲が、現在のフレーム２２の動きベクトル角度の範囲とオーバラップするのであれば、基準フレーム２１及び現在のフレーム２２は、類似の動きを持つものと判断される。従って、基準フレーム２１からの動きベクトルは、候補動きベクトルのセット（例えば、図６のセット６５）に含まれる資格を有している。
【００７０】
図１０に示すように、フローチャート１００は、図５のブロック５２を実現する方法の別の実施形態を示す。ブロック１０１では、ペアのおのおのにおける動きベクトルが、互いに類似しているかを判定するために、動きベクトルのペアの大きさが比較される。動きベクトルのペアの各々は、基準フレーム内の位置において第１のマクロブロックに関連付けられた第１の動きベクトルと、現在のフレーム内のその位置において第２のマクロブロックに関連付けられた第２の動きベクトルとを含む。
【００７１】
ブロック１０２では、基準フレーム及び現在のフレームにおける動きベクトルのペアのうち、類似したものの数がカウントされる。ブロック１０３では、この数がしきい値を超えるのであれば、基準フレームからの動きベクトルは、候補動きベクトルのセットに含まれる資格を有している。
【００７２】
図１０はまた、図２を参照して説明される。ブロック１０１では、１つの実施形態では、同じ位置に存在するマクロブロックの各ペアの大きさが比較される。図２のマクロブロック１０８，１０９は、同じ位置に存在するマクロブロックのペアの一例である。
【００７３】
１つの実施形態では、この比較を容易にするために、基準フレーム２１内で受信された各動きベクトルと、現在のフレーム２２内で受信された各動きベクトルとに、大きさラベルと方向ラベルとが与えられる。１つのそのような実施形態では、大きさラベルは、その相対的な大きさに基づいて、０又は１かの何れかの値を持つ。例えば、２ピクセル以下の大きさを持つ動きベクトルは、大きさラベル０が割り当てられ、２ピクセルを超える大きさを持つ動きベクトルは、大きさラベル１が割り当てられる。１つの実施形態では、方向ラベルは、０、１、２、あるいは３の値を持つ。例えば、フレーム内の垂直線に対し、−４５°以上であるが、４５°未満の角度を持つ動きベクトルは、方向ラベル０が割り当てられ、４５°以上であるが、１３５°未満の角度を持つ動きベクトルは、方向ラベル１が割り当てられる等である。動きベクトルの大きさ及び方向に対するラベリングの他のスキームを使用することも可能である。
【００７４】
１つの実施形態では、同じ位置に存在するマクロブロックの各ペアについて、ペア内の２つの動きベクトルの大きさラベルが比較され、ペア内の２つの動きベクトルの方向ラベルが比較される。１つの実施形態では、ペア内の２つの動きベクトルについて、大きさラベルが同じで、方向ラベルが反対ではない場合、動きベクトルのそのペアは、類似であると定義される。この実施形態では、類似と考えられるペア内の２つの動きベクトルについて、方向ラベルは必ずしも順番が同じになる必要はないことに留意されたい。例えば、上述したスキームを使用して、方向ラベル０は、方向ラベル０，１，又は３と類似していると考えられるが、方向ラベル２に対しては、反対であると考えられる。類似の動きベクトルを構成するものを定義する他のルールを使用することもできる。
【００７５】
図１０のブロック１０２では、１つの実施形態において、類似の動きベクトルを含むともに、同じ位置に存在するマクロブロックのペアの数がカウントされる。言い換えれば、類似の動きベクトルのペアの数がカウントされる。
【００７６】
ブロック１０３では、１つの実施形態において、ブロック１０２でなされたカウントが、しきい値を超えると、基準フレーム２１からの動きベクトルは、候補動きベクトルのセット（例えば、図６のセット６５）に含まれる資格を有している。１つの実施形態では、このしきい値は、２つのフレーム２１，２２のうちの何れかにおけるマクロブロックの数の１／２に等しい。
【００７７】
興味のあるマクロブロックに隣接して、動き境界が存在しうる。動き境界の１つの側における対象物は、動き境界の他の側における対象物とは異なって動く。図１１は、動き境界を見つける方法の１つの実施形態のフローチャート１１０である。このフローチャート１１０は、図５のブロック５３を実行する方法の１つの実施形態を説明する。１つの実施形態では、ブロック５３（従ってフローチャート１１０の方法）は、図５のブロック５２の結果に依存して実施されることを留意されたい。
【００７８】
図１１のブロック１１１では、基準フレーム内で動き境界が特定される。ブロック１１２では、候補動きベクトルのセットは、現在のフレーム内の興味のあるマクロブロックと同じ位置に存在する基準フレーム内のマクロブロックと、動き境界の同じ側に存在する基準フレーム内のマクロブロックに関連する動きベクトルのみを含む。
【００７９】
図１１は、更に図１２を参照して記述される。図１２は、基準フレーム１２１内のウィンドウ１２５と、現在のフレーム１２２内のウィンドウ１２６とを示す。基準フレーム１２１及び現在のフレーム１２２はそれぞれ、ウィンドウ１２５及びウィンドウ１２６に含まれるマクロブロックの他にもマクロブロックを含むことが理解される。
【００８０】
１つの実施形態では、ブロック１１１において、動き境界１２９が、基準フレーム１２１内で特定される。１つの実施形態では、この動き境界１２９は、以下に示す方法で特定される。基準フレーム１２１内のウィンドウ内のマクロブロックに関連した動きベクトルの各々に、大きさラベルと方向ラベルとが割り当てられる。上述した説明は、図１０とともに、動きベクトルをラベル付けするための１つの方法を記述する。
【００８１】
現在のフレーム１２２内の興味のあるマクロブロック１２３と同じ位置にある基準フレーム１２１内のマクロブロック１２４に関連した動きベクトルは、クラス０として分類される。すなわち、マクロブロック１２４は、興味のあるマクロブロック１２３と同じ位置に存在するので、マクロブロック１２４に関連する動きベクトルは、特定のクラス（例えば、クラス０）からなる第１のメンバとして特定される。
【００８２】
ウィンドウ１２５に関連した他の動きベクトルの大きさラベルがそれぞれ、マクロブロック１２４に関連した動きベクトルの大きさラベルと比較され、ウィンドウ１２５内の他の動きベクトルの方向ラベルがそれぞれ、マクロブロック１２４に関連した動きベクトルの方向ラベルと比較される。
【００８３】
１つの実施形態では、動きベクトルの大きさラベルが、マクロブロック１２４に関連した動きベクトルのそれと同じであり、その動きベクトルの角度ラベルが、マクロブロック１２４に関連した動きベクトルの反対ではない場合、その動きベクトルは、マクロブロック１２４に関連した動きベクトルに類似していると定義され、その動きベクトルもまたクラス０として分類される。上述したように、説明した処理は、ローカル動きクラスマップ１２７を生成するために、ウィンドウ１２５に関連する各動きベクトルについて繰り返される。
【００８４】
１つの実施形態では、ブロック１１２において、マクロブロック１２４に関連する動きベクトルと同じクラスにあるウィンドウ１２５に関連する動きベクトルのみが、候補動きベクトルのセット１２６に含まれる。言い換えれば、本実施形態では、動き境界１２９においてマクロブロック１２４（興味のあるマクロブロック１２３と同じ位置に存在するマクロブロック）と同じ側にある基準フレーム１２１内のウィンドウ１２５内の動きベクトルのみが、候補動きベクトルのセット１２８に含まれる。すなわち、図１２に示す例では、クラス０として分類された動きベクトルのみが、セット１２８に含まれる。上述したように、候補動きベクトルのセット１２８の統計的尺度が（図５及び図６の議論を参照して）決定される。
【００８５】
現在のフレーム１２２のウィンドウ１２６に関連する適切に受信された動きベクトルは、興味のあるマクロブロック１２３と、動き境界の同じ側にあるマクロブロックに関連しているのであれば、セット１２８に含まれることに留意されたい。例えば、マップ１２７が決定された後、クラス０として分類されたウィンドウ１２７内のマクロブロックと同じ位置に存在するウィンドウ１２６内のマクロブロックもまた、クラス０として分類され、ウィンドウ１２６内のマクロブロックに関連する動きベクトルが、セット１２８に含まれうる。
【００８６】
図１３は、候補動きベクトルを選択するために、移動中の対象物の軌跡を用いる方法の１つの実施形態のフローチャート１３０である。フローチャート１３０は、図５のブロック５３を実現する方法の１つの実施形態を記載する。
【００８７】
図１３のブロック１３１では、基準フレーム内の第１のマクロブロック内の対象物が特定される。ブロック１３２では、この対象物が、現在のフレーム内の同じ位置に存在する第２のマクロブロックと十分にオーバラップする（すなわち、第１のマクロブロックと第２のマクロブロックとが、それぞれのフレーム内において同じ位置に存在する）のであれば、この対象物に関連する動きベクトルが、候補動きベクトルのセットに含まれる。
【００８８】
図１３は、更に図１４が参照されて記載される。図１４は、基準フレーム１４１のウィンドウ１４７と、現在のフレーム１４２のウィンドウ１４８とを示す。マクロブロック１４３は、マクロブロック１４６と同じ位置に存在する。基準フレーム１４１及び現在のフレーム１４２は、ウィンドウ１４７及びウィンドウ１４８にそれぞれ含まれるマクロブロックの他にマクロブロックを含んでいることが理解される。
【００８９】
ブロック１３１では、１つの実施形態において、基準フレーム内であって、マクロブロック１４６と同じ位置に存在するマクロブロック１４３に関連付けられた対象物１４３が特定される。現在のフレーム１４２では、対象物１４４は、異なる位置に移動しており、現在は、マクロブロック１４５に関連付けられている。
【００９０】
ブロック１３２では、１つの実施形態において、対象物１４４を含むマクロブロック１４５が、十分な量までマクロブロック１４６とオーバラップするかが判定される。もしも十分な量オーバラップするのであれば、対象物１４４に関連する動きベクトルは、候補動きベクトルのセット（例えば、図６のセット６５）に含まれうる。そうでない場合は、対象物１４４に関連する動きベクトルは、セット内に含まれない。
【００９１】
図１３及び図１４と共に記載された方法は、ウィンドウ１４７及びウィンドウ１４８内のマクロブロックの何れかにも同様に適用されうることに留意されたい。すなわち、ウィンドウ１４７及びウィンドウ１４８の中心マクロブロックについて記載されたが、本発明はそれに限定されない。
【００９２】
１つの実施形態では、２５パーセント以上のオーバラップが十分であると考えられる。マクロブロック１４５がその量までマクロブロック１４６とオーバラップするかを判定するために様々な技術を使用することができる。１つの実施形態では、マクロブロック１４５とマクロブロック１４６はそれぞれ、現在のフレーム１４２内におけるそれぞれの位置を定義する２次元座標のセットに関連付けられる。この座標を使用すると、例えば、マクロブロック１４５とマクロブロック１４６とのうちの１つのコーナを、オーバラップ量が２５％を超えているかを判定するために、他のマクロブロックの側面の中点と比較することが可能である。２５％以外のしきい値を使用することも可能である。
【００９３】
図９乃至１４の実施形態は、これら実施形態のある局面をより明確に記述するために別々に記載されたが、これら実施形態は、異なる局面と組み合わせて実現されうることが理解される。１つの実施形態では、図９及び図１０とともに記載された方法のうちの１つが、図１１乃至１４とともに記載された方法のうちの１つと組み合わされる。
【００９４】
要約すると、本発明に従った実施形態は、ピクセルドメイン内のピクセル値ではなく、動きベクトルドメイン内の動きベクトルを用いた時間誤りキャンセル方法及びシステムを提供する。従って、誤りキャンセルに関し、歪み評価をなくすことができるので、計算上の複雑さが低減され、計算ステップ数が、８５％まで低減されうる。デコード遅延は、１フレームから、マクロブロック１スライスに低減される。すなわち、欠落した動きベクトルを推定するのに隣接する動きベクトルを使用するために、マクロブロックの僅か１スライス（例えば、１行）のみの処理で遅延されうる。誤りキャンセルに関し、ピクセル値を検索するためのメモリアクセスを無くすことができるので、メモリアクセス時間、及び関連するデコード遅延が低減される。また、本明細書に記載の実施形態は、ピクセルベースの誤りキャンセル技術に関連するＰＳＮＲと同等であるか、さもなければそれより良好なＰＳＮＲを生成する。更に、実施形態は、ハードウェア変更を加える必要なしに実施することができる。
【００９５】
本明細書に記載の概念は、誤りキャンセル以外の用途にも使用することができる。例えば、実施形態は、エンコーダにおける動き推定に使用することができる。例えば、従来の階層的動き推定では、最も低い空間分解能で見つかった動きベクトルが、より高い分解能の動きベクトルの初期推定として使用される。代わりに、上述したようにして選択された動きベクトルは、エンコーダにおける動き予測を促進するための初期推定値として使用することができる。
【００９６】
本発明の実施形態が以上の通り記述された。本発明は、様々な異なる実施形態によって記述されている一方、本発明は、そのような実施形態によって限定されるのではなく、特許請求の範囲に従って解釈されるべきであると認識されるべきである。
【図１】
2011254508.tif 000016
【図２】
2011254508.tif 000017
【図３】
2011254508.tif 000018
【図４】
2011254508.tif 000019
【図５】
2011254508.tif 000020
【図６】
2011254508.tif 000021
【図７】
2011254508.tif 000022
【図８】
2011254508.tif 000023
【図９】
2011254508.tif 000024
【図１０】
2011254508.tif 000025
【図１１】
2011254508.tif 000026
【図１２】
2011254508.tif 000027
【図１３】
2011254508.tif 000028
【図１４】
2011254508.tif 000029
【手続補正書】
【提出日】平成23年8月16日(2011.8.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサを用いてビデオデータを処理する方法であって、
前記プロセッサが、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することと、
前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定することとを備え、
前記判定することは、
前記プロセッサが、
動きベクトルのペアの大きさを比較し、前記ペアのおのおのにおける動きベクトルが互いに類似しているかを判定することであって、前記動きベクトルの各ペアは、前記第１のフレーム内の位置における、第１のマクロブロックに関連する第１の動きベクトルと、前記第２のフレーム内の前記位置における、第２のマクロブロックに関連する第２の動きベクトルとを備え、もしもルールを満足するのであれば、これら動きベクトルは類似していることと、
類似する前記第１のフレームと第２のフレームにおける動きベクトルのペアの数をカウントすることとを備え、
前記複数の第１の動きベクトルからの動きベクトルは、前記数がしきい値を超えた場合に、前記セットに含まれる資格を有している方法。
【請求項２】
プロセッサを用いてビデオデータを処理する方法であって、
前記プロセッサが、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することと、
前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定することとを備え、
前記第２のフレーム内の第２のマクロブロックと同じ位置における、前記第１のフレーム内の第１のマクロブロックに含まれる対象物に関連する動きベクトルは、前記第２のフレームにおいて、前記対象物が、指定した量まで前記第２のマクロブロックとオーバラップしているのであれば、前記セットに含まれる方法。
【請求項３】
前記プロセッサは、前記統計的尺度を決定する場合、前記セットの中央値を決定し、
前記興味のあるマクロブロックの前記動きベクトルは前記中央値である請求項１乃至２のうち何れか１項に記載の方法。
【請求項４】
前記プロセッサが、前記統計的尺度を決定する場合、前記セットの平均を決定し、
前記興味のあるマクロブロックの前記動きベクトルは前記平均である請求項１乃至３のうち何れか１項に記載の方法。
【請求項５】
プロセッサを用いてビデオデータを処理する方法であって、
前記プロセッサが、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することとを備え、
前記セットは、
前記複数の第２の動きベクトルと、
前記複数の第１のマクロブロックのうち選択されたマクロブロックの動きベクトルとを備え、
前記第１のフレーム内の位置に、第１のマクロブロックに対する第１の動きベクトルが存在し、かつ、前記第２のフレーム内の前記位置に、第２のマクロブロックに対する第２の動きベクトルが存在するのであれば、前記第２の動きベクトルが、前記セット内に含まれ、前記第１の動きベクトルが、前記セット内に含まれない方法。
【請求項６】
プロセッサを用いてビデオデータを処理する方法であって、
前記プロセッサが、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することと、
前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定することとを備え、
前記セットは、前記興味のあるマクロブロックと同じ位置に存在する前記第１のフレーム内のマクロブロックと、動き境界の同じ側に存在する前記複数の第１のマクロブロックのマクロブロックに関連する動きベクトルを備える方法。
【請求項７】
プロセッサを用いてビデオデータを処理する方法であって、
前記プロセッサが、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することと、
前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定することとを備え、
前記セットは、前記複数の第１の動きベクトルからの動きベクトルを備え、これら動きベクトルは、前記興味のあるマクロブロックと同じ位置に存在する前記複数の第１のマクロブロック内のマクロブロックの動きベクトルと類似しており、これら動きベクトルは、ルールを満足するのであれば類似している方法。
【請求項８】
前記第１のフレームは、表示順において、前記第２のフレームよりも先である請求項１乃至７のうち何れか１項に記載の方法。
【請求項９】
コンピュータに対してビデオデータ処理方法を実行させるためのコンピュータ読取可能なプログラムコードを組み込んだコンピュータ読取可能記録媒体であって、
前記プログラムコードは、
前記コンピュータに対して、ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択させるためのコードと、
前記コンピュータに対して、前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定させるためのコードと、
前記コンピュータに対して、前記興味のあるマクロブロックに前記動きベクトルを適用させるためのコードと、
前記コンピュータに対して、前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定させるためのコードとを備え、
前記判定させるためのコードはさらに、
前記コンピュータに対して、動きベクトルのペアの大きさを比較させ、前記ペアのおのおのにおける動きベクトルが互いに類似しているかを判定させるためのコードと、
前記コンピュータに対して、類似する前記第１のフレームと第２のフレームにおける動きベクトルのペアの数をカウントさせるためのコードとを備え、
前記動きベクトルの各ペアは、前記第１のフレーム内の位置における、第１のマクロブロックに関連する第１の動きベクトルと、前記第２のフレーム内の前記位置における、第２のマクロブロックに関連する第２の動きベクトルとを備え、これら動きベクトルは、もしもルールを満足するのであれば類似しており、
前記複数の第１の動きベクトルからの動きベクトルは、前記数がしきい値を超えた場合に、前記セットに含まれる資格を有しているコンピュータ読取可能記録媒体。
【請求項１０】
コンピュータに対してビデオデータ処理方法を実行させるためのコンピュータ読取可能なプログラムコードを組み込んだコンピュータ読取可能記録媒体であって、
前記プログラムコードは、
前記コンピュータに対して、ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択させるためのコードと、
前記コンピュータに対して、前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定させるためのコードと、
前記コンピュータに対して、前記興味のあるマクロブロックに前記動きベクトルを適用させるためのコードと、
前記コンピュータに対して、前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定させるためのコードとを備え、
前記第２のフレーム内の第２のマクロブロックと同じ位置における、前記第１のフレーム内の第１のマクロブロックに含まれる対象物に関連する動きベクトルは、前記第２のフレームにおいて、前記対象物が、指定した量まで前記第２のマクロブロックとオーバラップしているのであれば、前記セットに含まれるコンピュータ読取可能記録媒体。
【請求項１１】
コンピュータに対してビデオデータ処理方法を実行させるためのコンピュータ読取可能なプログラムコードを組み込んだコンピュータ読取可能記録媒体であって、
前記プログラムコードは、
前記コンピュータに対して、ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択させるためのコードと、
前記コンピュータに対して、前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定させるためのコードと、
前記コンピュータに対して、前記興味のあるマクロブロックに前記動きベクトルを適用させるためのコードとを備え、
前記セットは、
前記複数の第２の動きベクトルと、
前記複数の第１のマクロブロックのうち選択されたマクロブロックの動きベクトルとを備え、
前記第１のフレーム内の位置に、第１のマクロブロックに対する第１の動きベクトルが存在し、かつ、前記第２のフレーム内の前記位置に、第２のマクロブロックに対する第２の動きベクトルが存在するのであれば、前記第２の動きベクトルが、前記セット内に含まれ、前記第１の動きベクトルが、前記セット内に含まれないコンピュータ読取可能記録媒体。
【請求項１２】
コンピュータに対してビデオデータ処理方法を実行させるためのコンピュータ読取可能なプログラムコードを組み込んだコンピュータ読取可能記録媒体であって、
前記プログラムコードは、
前記コンピュータに対して、ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択させるためのコードと、
前記コンピュータに対して、前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定させるためのコードと、
前記コンピュータに対して、前記興味のあるマクロブロックに前記動きベクトルを適用させるためのコードとを備え、
前記セットは、前記興味のあるマクロブロックと同じ位置に存在する前記第１のフレーム内のマクロブロックと、動き境界の同じ側に存在する前記複数の第１のマクロブロックのマクロブロックに関連する動きベクトルを備えるコンピュータ読取可能記録媒体。
【請求項１３】
前記第１のフレームは、表示順において、前記第２のフレームよりも先である請求項９乃至１２のうちの何れか１項に記載のコンピュータ読取可能記録媒体。
【請求項１４】
ビデオデータを処理するシステムであって、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択する手段と、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定する手段と、
前記興味のあるマクロブロックに前記動きベクトルを適用する手段と、
前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定する手段とを備え、
前記判定する手段は、
動きベクトルのペアの大きさを比較し、前記ペアのおのおのにおける動きベクトルが互いに類似しているかを判定する手段であって、前記動きベクトルの各ペアが、前記第１のフレーム内の位置における、第１のマクロブロックに関連する第１の動きベクトルと、前記第２のフレーム内の前記位置における、第２のマクロブロックに関連する第２の動きベクトルとを備え、これら動きベクトルは、もしもルールを満足するのであれば類似している手段と、
類似する前記第１のフレームと第２のフレームにおける動きベクトルのペアの数をカウントする手段とを備え、
前記複数の第１の動きベクトルからの動きベクトルは、前記数がしきい値を超えた場合に、前記セットに含まれる資格を有しているシステム。
【請求項１５】
ビデオデータを処理するシステムであって、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択する手段と、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定する手段と、
前記興味のあるマクロブロックに前記動きベクトルを適用する手段と、
前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定する手段とを備え、
前記第２のフレーム内の第２のマクロブロックと同じ位置における、前記第１のフレーム内の第１のマクロブロックに含まれる対象物に関連する動きベクトルは、前記第２のフレームにおいて、前記対象物が、指定した量まで前記第２のマクロブロックとオーバラップしているのであれば、前記セットに含まれるシステム。
【請求項１６】
ビデオデータを処理するシステムであって、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択する手段と、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定する手段と、
前記興味のあるマクロブロックに前記動きベクトルを適用する手段とを備え、
前記セットは、
前記複数の第２の動きベクトルと、
前記複数の第１のマクロブロックのうち選択されたマクロブロックの動きベクトルとを備え、
前記第１のフレーム内の位置に、第１のマクロブロックに対する第１の動きベクトルが存在し、かつ、前記第２のフレーム内の前記位置に、第２のマクロブロックに対する第２の動きベクトルが存在するのであれば、前記第２の動きベクトルが、前記セット内に含まれ、前記第１の動きベクトルが、前記セット内に含まれないシステム。
【請求項１７】
ビデオデータを処理するシステムであって、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択する手段と、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定する手段と、
前記興味のあるマクロブロックに前記動きベクトルを適用する手段と、
前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定する手段とを備え、
前記セットは、前記興味のあるマクロブロックと同じ位置に存在する前記第１のフレーム内のマクロブロックと、動き境界の同じ側に存在する前記複数の第１のマクロブロックのマクロブロックに関連する動きベクトルを備えるシステム。
【請求項１８】
ビデオデータを処理するシステムであって、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択する手段と、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定する手段と、
前記興味のあるマクロブロックに前記動きベクトルを適用する手段と、
前記複数の第１の動きベクトルからの動きベクトルが、前記セットに含まれる資格を有しているかを判定する手段とを備え、
前記セットは、前記複数の第１の動きベクトルからの動きベクトルを備え、これら動きベクトルは、前記興味のあるマクロブロックと同じ位置に存在する前記複数の第１のマクロブロック内のマクロブロックの動きベクトルと類似しており、これら動きベクトルは、ルールを満足するのであれば類似しているシステム。
【請求項１９】
前記第１のフレームは、表示順において、前記第２のフレームよりも先である請求項１４乃至１８のうちの何れか１項に記載のシステム。
【請求項２０】
マイクロプロセッサと、
前記マイクロプロセッサに接続されたメモリユニットとを備え、前記メモリユニットは、前記マイクロプロセッサによって実行された場合、ビデオデータを処理する方法を実行する命令を含み、
前記方法は、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することと、
動きベクトルのペアの大きさを比較し、前記ペアのおのおのにおける動きベクトルが互いに類似しているかを判定することであって、前記動きベクトルの各ペアは、前記第１のフレーム内の位置における、第１のマクロブロックに関連する第１の動きベクトルと、前記第２のフレーム内の前記位置における、第２のマクロブロックに関連する第２の動きベクトルとを備え、これら動きベクトルは、もしもルールを満足するのであれば類似していることと、
類似する前記第１のフレームと第２のフレームにおける動きベクトルのペアの数をカウントすることとを備え、
前記複数の第１の動きベクトルからの動きベクトルは、前記数がしきい値を超えた場合に、前記セットに含まれる資格を有しているデバイス。
【請求項２１】
マイクロプロセッサと、
前記マイクロプロセッサに接続されたメモリユニットとを備え、前記メモリユニットは、前記マイクロプロセッサによって実行された場合、ビデオデータを処理する方法を実行する命令を含み、
前記方法は、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することとを備え、
前記第２のフレーム内の第２のマクロブロックと同じ位置における、前記第１のフレーム内の第１のマクロブロックに含まれる対象物に関連する動きベクトルは、前記第２のフレームにおいて、前記対象物が、指定した量まで前記第２のマクロブロックとオーバラップしているのであれば、前記セットに含まれるデバイス。
【請求項２２】
マイクロプロセッサと、
前記マイクロプロセッサに接続されたメモリユニットとを備え、前記メモリユニットは、前記マイクロプロセッサによって実行された場合、ビデオデータを処理する方法を実行する命令を含み、
前記方法は、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することとを備え、
前記セットは、
前記複数の第２の動きベクトルと、
前記複数の第１のマクロブロックのうち選択されたマクロブロックの動きベクトルとを備え、
前記第１のフレーム内の位置に、第１のマクロブロックに対する第１の動きベクトルが存在し、かつ、前記第２のフレーム内の前記位置に、第２のマクロブロックに対する第２の動きベクトルが存在するのであれば、前記第２の動きベクトルが、前記セット内に含まれ、前記第１の動きベクトルが、前記セット内に含まれないデバイス。
【請求項２３】
マイクロプロセッサと、
前記マイクロプロセッサに接続されたメモリユニットとを備え、前記メモリユニットは、前記マイクロプロセッサによって実行された場合、ビデオデータを処理する方法を実行する命令を含み、
前記方法は、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することとを備え、
前記セットは、前記興味のあるマクロブロックと同じ位置に存在する前記第１のフレーム内のマクロブロックと、動き境界の同じ側に存在する前記複数の第１のマクロブロックのマクロブロックに関連する動きベクトルを備えるデバイス。
【請求項２４】
マイクロプロセッサと、
前記マイクロプロセッサに接続されたメモリユニットとを備え、前記メモリユニットは、前記マイクロプロセッサによって実行された場合、ビデオデータを処理する方法を実行する命令を含み、
前記方法は、
前記ビデオデータの第１のフレーム内の複数の第１のマクロブロックに関連した複数の第１の動きベクトルから、及び、前記ビデオデータの第２のフレーム内の複数の第２のマクロブロックに関連した複数の第２の動きベクトルから、動きベクトルのセットを選択することと、
前記複数の第２のマクロブロック内の興味のあるマクロブロックの動きベクトルを定義する統計的尺度を、前記動きベクトルのセットについて決定することと、
前記興味のあるマクロブロックに前記動きベクトルを適用することとを備え、
前記セットは、前記複数の第１の動きベクトルからの動きベクトルを備え、これら動きベクトルは、前記興味のあるマクロブロックと同じ位置に存在する前記複数の第１のマクロブロック内のマクロブロックの動きベクトルと類似しており、これら動きベクトルは、ルールを満足するのであれば類似しているデバイス。
【請求項２５】
前記第１のフレームは、表示順において、前記第２のフレームよりも先である請求項２０乃至２４のうちの何れか１項に記載のデバイス。
【外国語明細書】
2011254508000001.pdf