(57)【要約】第１の参照フレームおよび第２の参照フレームを用いて内挿されるべきビデオフレームのための複数の動きベクトルを処理するための方法であって、各参照フレームがコンテンツマップを有しており、その方法が、解釈されるべきビデオフレームを複数の領域に分割することと、第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて１つの領域を通過する動きベクトルの数を決定することと、その１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てる１つの動きベクトルを発生することとを含む方法。また、本方法を実行するための装置も説明される。【選択図】      図４
2008507920.tif 000002
【特許請求の範囲】
【請求項１】
第１の参照フレームおよび第２の参照フレームを用いて内挿されるべきビデオフレームのための複数の動きベクトルを処理するための方法であって、各参照フレームがコンテンツマップを有しており、
解釈されるべきビデオフレームを複数の領域に分割することと、
第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて複数の領域の１つの領域を通過する動きベクトルの数を決定することと、
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための１つの動きベクトルを発生することとを含む方法。
【請求項２】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の非オーバラップ領域に分割することを含む請求項１に記載の方法。
【請求項３】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数のオーバラップ領域に分割することを含む請求項１に記載の方法。
【請求項４】
１つの領域を通過する動きベクトルの数に基づいて１つの領域への動きベクトルを発生することが、１つの領域を通過する動きベクトルの数の１つを選択することを含む請求項１に記載の方法。
【請求項５】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の固定サイズの領域に分割することを含む請求項１に記載の方法。
【請求項６】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の異なるサイズの領域に分割することを含む請求項１に記載の方法。
【請求項７】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の画素に分割することを含む請求項１に記載の方法。
【請求項８】
第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて複数の領域の１つの領域を通過する動きベクトルの数を決定することが、
１つの領域を通過する各動きベクトルに対して、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスを決定することと、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスを比較することと、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスが異なる場合には、動きベクトルを１つの領域を通過する動きベクトルの数内と見なすことから除外することとを含む請求項１に記載の方法。
【請求項９】
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための動きベクトルを発生することが、１つの領域を通過する動きベクトルの数が０の場合、（ｉ）ゼロ動きベクトル、（ｉｉ）任意の利用可能な隣接動きベクトルの平均および（ｉｉｉ）任意の利用可能な隣接動きベクトルのメジアンから成るグループから選択された動きベクトルで１つの領域を割り当てることを含む請求項１に記載の方法。
【請求項１０】
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための動きベクトルを発生することが、１つの領域を通過する動きベクトルの数が１より大きい場合、（ｉ）中央画素の動きベクトル、（ｉｉ）最もカバーされた領域の動きベクトル、（ｉｉｉ）加重した動きベクトル、および（ｉｖ）メジアン動きベクトルから成るグループから選択された動きベクトルで１つの領域を割り当てることを含む請求項１に記載の方法。
【請求項１１】
コンテンツマップが複数のコンテンツクラスを含む請求項１に記載の方法。
【請求項１２】
複数のコンテンツクラスが、背景コンテンツクラスを含む請求項１１に記載の方法。
【請求項１３】
背景コンテンツクラスが、出現対象クラス、消失対象クラスおよび静的背景クラスを含む請求項１２に記載の方法。
【請求項１４】
複数のコンテンツクラスが、動対象クラスを含む請求項１１に記載の方法。
【請求項１５】
複数のコンテンツクラスが、輪郭コンテンツクラスを含む請求項１１に記載の方法。
【請求項１６】
第１の参照フレームおよび第２の参照フレームを用いて、内挿されるべきビデオフレームのための複数の動きベクトルを処理するための方法を、計算機に実行させるために格納された命令を有する計算機読み出し可能媒体であって、各参照フレームがコンテンツマップを有しており、その方法が、
解釈されるべきビデオフレームを複数の領域に分割することと、
第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて複数の領域の１つの領域を通過する動きベクトルの数を決定することと、
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための１つの動きベクトルを発生することとを含む、計算機読み出し可能媒体。
【請求項１７】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の非オーバラップ領域に分割することを含む請求項１６に記載の計算機読み出し可能媒体。
【請求項１８】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数のオーバラップ領域に分割することを含む請求項１６に記載の計算機読み出し可能媒体。
【請求項１９】
１つの領域を通過する動きベクトルの数に基づいて１つの領域への動きベクトルを発生することが、１つの領域を通過する動きベクトルの数の１つを選択することを含む請求項１６に記載の計算機読み出し可能媒体。
【請求項２０】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の固定サイズの領域に分割することを含む請求項１６に記載の計算機読み出し可能媒体。
【請求項２１】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の異なるサイズの領域に分割することを含む請求項１６記載の計算機読み出し可能媒体。
【請求項２２】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の画素に分割することを含む請求項１６に記載の計算機読み出し可能媒体。
【請求項２３】
第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて複数の領域の１つの領域を通過する動きベクトルの数を決定することが、
１つの領域を通過する各動きベクトルに対して、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスを決定することと、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスを比較することと、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスが異なる場合には前記動きベクトルを１つの領域を通過する動きベクトルの数内と見なすことから除外することとを含む、請求項１６に記載の計算機読み出し可能媒体。
【請求項２４】
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための動きベクトルを発生することが、１つの領域を通過する動きベクトルの数が０の場合、（ｉ）ゼロ動きベクトル、（ｉｉ）任意の利用可能な隣接動きベクトルの平均および（ｉｉｉ）任意の利用可能な隣接動きベクトルのメジアンから成るグループから選択された動きベクトルで１つの領域を割り当てることを含む請求項１６に記載の計算機読み出し可能媒体。
【請求項２５】
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための動きベクトルを発生することが、１つの領域を通過する動きベクトルの数が１より大きい場合、（ｉ）中央画素の動きベクトル、（ｉｉ）最もカバーされた領域の動きベクトル、（ｉｉｉ）加重した動きベクトル、および（ｉｖ）メジアン動きベクトルから成るグループから選択された動きベクトルで１つの領域を割り当てることを含む請求項１６に記載の計算機読み出し可能媒体。
【請求項２６】
コンテンツマップが複数のコンテンツクラスを含む請求項１６に記載の計算機読み出し可能媒体。
【請求項２７】
複数のコンテンツクラスが、背景コンテンツクラスを含む請求項２６に記載の計算機読み出し可能媒体。
【請求項２８】
背景コンテンツクラスが、出現対象クラス、消失対象クラスおよび静的背景クラスを含む請求項２７に記載の計算機読み出し可能媒体。
【請求項２９】
複数のコンテンツクラスが、動対象クラスを含む請求項２６に記載の計算機読み出し可能媒体。
【請求項３０】
複数のコンテンツクラスが、輪郭コンテンツクラスを含む請求項２６に記載の計算機読み出し可能媒体。
【請求項３１】
第１の参照フレームおよび第２の参照フレームを用いて内挿されるべきビデオフレームのための複数の動きベクトルを処理するための装置であって、各参照フレームがコンテンツマップを有しており、
解釈されるべきビデオフレームを複数の領域に分割するための手段と、
第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて複数の領域の１つの領域を通過する動きベクトルの数を決定するための手段と、
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための１つの動きベクトルを発生するための手段とを含む装置。
【請求項３２】
解釈されるべきビデオフレームを複数の領域に分割するための手段が、解釈されるべきビデオフレームを複数の非オーバラップ領域に分割するための手段を含む請求項３１に記載の装置。
【請求項３３】
解釈されるべきビデオフレームを複数の領域に分割するための手段が、解釈されるべきビデオフレームを複数のオーバラップ領域に分割するための手段を含む請求項３１に記載の装置。
【請求項３４】
１つの領域を通過する動きベクトルの数に基づいて１つの領域への動きベクトルを発生するための手段が、１つの領域を通過する動きベクトルの数の１つを選択するための手段を含む請求項３１に記載の装置。
【請求項３５】
解釈されるべきビデオフレームを複数の領域に分割するための手段が、解釈されるべきビデオフレームを複数の固定サイズの領域に分割するための手段を含む請求項３１に記載の装置。
【請求項３６】
解釈されるべきビデオフレームを複数の領域に分割するための手段が、解釈されるべきビデオフレームを複数の異なるサイズの領域に分割するための手段を含む請求項３１に記載の装置。
【請求項３７】
解釈されるべきビデオフレームを複数の領域に分割するための手段が、解釈されるべきビデオフレームを複数の画素に分割するための手段を含む請求項３１に記載の装置。
【請求項３８】
第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて複数の領域の１つの領域を通過する動きベクトルの数を決定するための手段が、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスを決定するための手段と、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスを比較するための手段と、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスが異なる場合には、前記動きベクトルを１つの領域を通過する動きベクトルの数内と見なすことから除外するための手段とを含む請求項３１に記載の装置。
【請求項３９】
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための動きベクトルを発生するための手段が、１つの領域を通過する動きベクトルの数が０の場合、（ｉ）ゼロ動きベクトル、（ｉｉ）任意の利用可能な隣接動きベクトルの平均および（ｉｉｉ）任意の利用可能な隣接動きベクトルのメジアンから成るグループから選択された動きベクトルで１つの領域を割り当てるための手段を含む請求項３１に記載の装置。
【請求項４０】
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための動きベクトルを発生するための手段が、１つの領域を通過する動きベクトルの数が１より大きい場合、（ｉ）中央画素の動きベクトル、（ｉｉ）最もカバーされた領域の動きベクトル、（ｉｉｉ）加重した動きベクトル、および（ｉｖ）メジアン動きベクトルから成るグループから選択された動きベクトルで１つの領域を割り当てるための手段を含む請求項３１に記載の装置。
【請求項４１】
コンテンツマップが複数のコンテンツクラスを含む請求項３１に記載の装置。
【請求項４２】
複数のコンテンツクラスが、背景コンテンツクラスを含む請求項４１に記載の装置。
【請求項４３】
背景コンテンツクラスが、出現対象クラス、消失対象クラスおよび静的背景クラスを含む請求項４２に記載の装置。
【請求項４４】
複数のコンテンツクラスが、動対象クラスを含む請求項４１に記載の装置。
【請求項４５】
複数のコンテンツクラスが、輪郭コンテンツクラスを含む請求項４１に記載の装置。
【請求項４６】
第１の参照フレームおよび第２の参照フレームを用いて内挿されるべきビデオフレームのための複数の動きベクトルを処理するための方法を実施するように構成された少なくとも１つのプロセッサであって、各参照フレームがコンテンツマップを有しており、
解釈されるべきビデオフレームを複数の領域に分割することと、
第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて複数の領域の１つの領域を通過する動きベクトルの数を決定することと、
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための１つの動きベクトルを発生することとを含む少なくとも１つのプロセッサ。
【請求項４７】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の非オーバラップ領域に分割することを含む請求項４６に記載の少なくとも１つのプロセッサ。
【請求項４８】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数のオーバラップ領域に分割することを含む請求項４６に記載の少なくとも１つのプロセッサ。
【請求項４９】
１つの領域を通過する動きベクトルの数に基づいて１つの領域への動きベクトルを発生することが、１つの領域を通過する動きベクトルの数の１つを選択することを含む請求項４６に記載の少なくとも１つのプロセッサ。
【請求項５０】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の固定サイズの領域に分割することを含む請求項４６に記載の少なくとも１つのプロセッサ。
【請求項５１】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の異なるサイズの領域に分割することを含む請求項４６に記載の少なくとも１つのプロセッサ。
【請求項５２】
解釈されるべきビデオフレームを複数の領域に分割することが、解釈されるべきビデオフレームを複数の画素に分割することを含む請求項４６に記載の少なくとも１つのプロセッサ。
【請求項５３】
第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて複数の領域の１つの領域を通過する動きベクトルの数を決定することが、
１つの領域を通過する各動きベクトルに対して、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスを決定することと、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスを比較することと、
動きベクトル始点コンテンツクラスおよび動きベクトル終点コンテンツクラスが異なる場合には、前記動きベクトルを１つの領域を通過する動きベクトルの数内と見なすことから除外することとを含む請求項４６に記載の少なくとも１つのプロセッサ。
【請求項５４】
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための動きベクトルを発生することが、１つの領域を通過する動きベクトルの数が０の場合、（ｉ）ゼロ動きベクトル、（ｉｉ）任意の利用可能な隣接動きベクトルの平均および（ｉｉｉ）任意の利用可能な隣接動きベクトルのメジアンから成るグループから選択された動きベクトルで１つの領域を割り当てることを含む請求項４６に記載の少なくとも１つのプロセッサ。
【請求項５５】
１つの領域を通過する動きベクトルの数に基づいて１つの領域へ割り当てるための動きベクトルを発生することが、１つの領域を通過する動きベクトルの数が１より大きい場合、（ｉ）中央画素の動きベクトル、（ｉｉ）最もカバーされた領域の動きベクトル、（ｉｉｉ）加重した動きベクトル、および（ｉｖ）メジアン動きベクトルから成るグループから選択された動きベクトルで１つの領域を割り当てることを含む請求項４６に記載の少なくとも１つのプロセッサ。
【請求項５６】
コンテンツマップが複数のコンテンツクラスを含む請求項４６に記載の少なくとも１つのプロセッサ。
【請求項５７】
複数のコンテンツクラスが、背景コンテンツクラスを含む請求項５６に記載の少なくとも１つのプロセッサ。
【請求項５８】
背景コンテンツクラスが、出現対象クラス、消失対象クラスおよび静的背景クラスを含む請求項５７に記載の少なくとも１つのプロセッサ。
【請求項５９】
複数のコンテンツクラスが、動対象クラスを含む請求項５６に記載の少なくとも１つのプロセッサ。
【請求項６０】
複数のコンテンツクラスが、輪郭コンテンツクラスを含む請求項５６に記載の少なくとも１つのプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
米国特許法１１９条の下での優先権主張
本特許出願は仮出願番号60/590,110の優先権を主張する。これはこの文書の譲渡人に譲渡され、これによって、ここに参照として明白に組み込まれている。
【０００２】
同時係属中の特許出願への参照
本特許出願は以下の同時係属中の米国特許出願に関連する。
【０００３】
これと共に同時に出願された米国出願番号11/122,678 “Method and Apparatus for Motion Compensated Frame Rate Up Conversion for Block-Based Low Bit-Rate Video”（「ブロックベースの低ビットレートビデオのための動き補償フレームレートアップコンバージョンのための方法および装置」）。これはこの文書の譲渡人に譲渡され、これによって、ここに参照として明白に組み込まれている。
【０００４】
発明の分野
ここに説明される実施例は一般にはビデオ画像処理に関する。より詳細には動きベクトル割当のための方法および装置に関する。
【背景技術】
【０００５】
低ビットレートビデオ圧縮は、無線ビデオストリーミングおよびテレビ電話のような多くのマルチメディア用途において、限られた帯域幅資源および利用可能な帯域幅の変動性のため、非常に重要である。低ビットレートでの帯域幅適応ビデオ符号化は、時間的分解能を低減させることによって達成することができる。言い換えれば、毎秒３０フレーム（ｆｐｓ）のビットストリームを圧縮し送信する代わりに、時間的分解能を１５ｆｐｓと半分にして伝送ビットレートを減少することができる。帯域幅を減少するための１つの典型的な方法は、たとえばフレームの一部または全部を除去するような、符号化した信号から冗長な情報を抽出し除去することによる。しかし、時間的分解能の減少の結果、復号されたビデオの視覚品質を著しく低下させる動きジャーキーのような時間領域のアーチファクトが生ずる。
【０００６】
受信機側においてフルフレームレートを表示するために、フレームレートアップコンバージョン（ＦＲＵＣ）と呼ばれる回復メカニズムが、飛ばしたフレームを再生成し、時間的アーチファクトを減少させるために必要である。一般に、ＦＲＵＣは、再構成されたビデオの知覚フレームレートを増加するための、ビデオ復号器におけるビデオ内挿処理である。多くのＦＲＵＣアルゴリズムが提案されており、２つの一般的な種類に分類することができる。第１の種類は、対象の動きを考慮せずに受信ビデオフレームの組合せを用いて欠けているフレームを内挿する。フレーム反復およびフレーム平均法がこの分類に入る。これらの方法の欠点には、動きが含まれる場合、動いている対象の動きジャーキー、「ゴースト」画像、ブレの生成がある。第２の種類は、第１の種類と比較するとより進歩しており、動き補償（フレーム）内挿（ＭＣＩ）と呼ばれる処理において、符号器から送信される動き情報を利用する。
【０００７】
通常の動き補償予測符号化において、各ビデオフレームは最初に正方形ブロックの画素（ピクセル）、例えば８画素×８画素のブロックに分割される。各ブロックは順次、符号化され、形成された符号化系列は通信チャネル上で復号器へ送信される。符号化処理の間、ブロックの画素が先行フレームの同じ場所のブロックに比較して顕著に変化したか否かの決定がなされる。否の場合、現在のブロック用の画素を得るには先行フレームからのブロック画素を単に繰り返すだけで良いという意味の指示を復号器へ送る。先行フレームから画素が変化している場合、ブロック内で起きている動きの最良推定を決定する試みをする。これは、しばしば現在のブロックの画素を先行フレーム内の対応するブロックのそれぞれ異なる少しシフトした画素と連続的に比較するブロック整合動き推定法によってなされる。最良の整合を与えるシフトは、フレーム間のブロックの画像における変位の「最良推定」であると見なされ、「動きベクトル」と呼ばれるこのシフトの大きさと方向が選択され、復号器へ送られる。また、一度最良整合が検出されると、現在のブロックの画素は先行フレームから「最良」シフトしたブロックの画素と比較され、顕著な差があるかどうかを調べる。顕著な差がない場合、動きベクトルを送る代わりに、先行フレームからシフトしたブロックの画素を、現在のシフトしたブロックに対する画素用に繰り返すように復号器に対して指示が送られる。そのようなブロックは、動き補償に成功していると言われている。しかし、２ブロック間に、顕著な差がある場合、その差は符号化され復号器に送られ、その結果現在のブロックの画素はより正確に回復されるかもしれない。
【０００８】
原画像により正確に似せるために、繰返されるフレームの品質を改良するためのいくつかの提案がされてきた。このように、従来の動き補償予測符号化において、上述のように先行フレームからの画素を単純に繰り返す代わりに、ＭＣＩにおいては動きベクトルを用いて表示前に適切な量だけブロックを横方向に変位させる。言い換えれば、この方法は、復号器が利用可能な直前のおよび続く画素ブロックの平均を取ることにより欠けている画素ブロックを生成する。しかし、実験結果によれば、連続したブロックの画像が平行運動を表していない場合、再生画像はフレームの繰り返しによる場合より悪い。この劣化は、平行移動の仮定に従わない比較的小数の画素によって引き起こされることが判っているが、これらの画素を間違った位置に置くと、大きな目に見えるアーチファクトが生成される。
【０００９】
図１の従来技術の中で例示するように、ＭＣＩにおいて、欠けたフレーム１０８は、再構成された現在のフレーム１０２、格納された先行フレーム１０４、および一組の送信された動きベクトル１０６に基づいて内挿される。再構成された現在のフレーム１０２は一組のオーバラップしていないブロック１５０、１５２、１５４、並びに１５６、および格納された先行フレーム１０４内の対応するブロックを指す一組の送信された動きベクトル１０６と共に構成される。内挿されたフレーム１０８は現在および先行フレーム内の対応する画素の線形結合またはメジアン操作のような非線形操作のいずれかで構成される。
【００１０】
ＭＣＩはより進歩したものであるが、ブロックベースのＭＣＩはオーバラップ領域および空き領域を発生させる。オーバラップ領域はこれを通る複数の動き軌跡を有する領域であり、空き領域はこれを通る動き軌跡のない領域であって、両者共内挿フレーム内にあり、望ましくないものである。図２に示すように、内挿されたフレーム２０２はオーバラップ領域２０６および空き領域２０４を含む。これらの２つのタイプの望ましくない領域が発生する主な理由は以下の通りである。
【００１１】
１．動いている対象は厳密な平行動きモデルの下にない。
【００１２】
２．ＭＣＩで用いられる送信された動きベクトルは、符号器側が利用するブロックベースの高速動き検索アルゴリズムが原因で真の動き軌跡を指さないかもしれない。
【００１３】
３．現在のフレームおよび先行レーム内の隠れた背景および隠れていない背景。
【００１４】
オーバラップ領域と空き領域の内挿は通常のブロックベースの動き補償方法における主要な技術的課題である。オーバラップおよび空き領域を埋めるためにメジアンぼかしおよび空き間内挿法が提案されている。しかし、これらの方法の欠点は、ぼけ並びにブロックアーチファクトの発生、および内挿操作の複雑さの増加である。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
適切な動きベクトル割当は、動き補償ＦＲＵＣにおける内挿フレームに必要であるため、動き補償ＦＲＵＣにとって重要である。さらに、動きベクトル割当に基づく適切な動き補償が必要などのような応用においても、適切な動きベクトル割当は有用である。従って、上述した問題を克服する要求がある。
【課題を解決するための手段】
【００１６】
ここに説明する実施例は、空きおよびオーバラップ領域を有する内挿されるべきフレームに対する動きベクトル割当処理を提供する。
【００１７】
一実施例において、第１の参照フレームおよび第２の参照フレームを用いて内挿されるべきビデオフレームのための複数の動きベクトルを処理するための方法であって、各参照フレームがコンテンツマップを有している方法が説明される。その方法は、解釈されるべきビデオフレームを複数の領域に分割することと、第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて１つの領域を通過する動きベクトルの数を決定することと、１つの領域を通過する動きベクトルの数に基づいて１つの領域へ１つの動きベクトルを割り当てることとを含む。
【００１８】
他の実施例において、内挿されるべきビデオフレームのために、第１の参照フレームおよび第２の参照フレームを用いて複数の動きベクトルを処理するための方法を計算機に実行させるための格納された命令を有する計算機読み出し可能媒体であって、各参照フレームがコンテンツマップを有している計算機読み出し可能媒体が開示される。その方法は、解釈されるべきビデオフレームを複数の領域に分割することと、第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて１つの領域を通過する動きベクトルの数を決定することと、１つの領域を通過する動きベクトルの数に基づいて１つの領域へ１つの動きベクトルを割り当てることとを含む。
【００１９】
さらに他の実施例において、第１の参照フレームおよび第２の参照フレームを用いて内挿されるべきビデオフレームのための複数の動きベクトルを処理するための装置であって、各参照フレームがコンテンツマップを有している装置が開示される。その装置は、解釈されるべきビデオフレームを複数の領域に分割するための手段と、第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて１つの領域を通過する動きベクトルの数を決定するための手段と、１つの領域を通過する動きベクトルの数に基づいて１つの領域へ１つの動きベクトルを割り当てるための手段とを含む。
【００２０】
さらに他の実施例において、第１の参照フレームおよび第２の参照フレームを用いて内挿されるべきビデオフレームのための複数の動きベクトルを処理するため方法を実施するように構成された少なくとも１つのプロセッサであって、各参照フレームがコンテンツマップを有しているプロセッサが開示される。その方法は、解釈されるべきビデオフレームを複数の領域に分割することと、第１の参照フレームおよび第２の参照フレームのコンテンツマップに基づいて１つの領域を通過する動きベクトルの数を決定することと、１つの領域を通過する動きベクトルの数に基づいて１つの領域へ１つの動きベクトルを割り当てることとを含む。
【００２１】
他の目的、特徴、および利点は以下の詳細な説明から当業者に明らかになるだろう。しかし、詳細な説明および特定の例は、代表的実施例を示しているが、制限ではなく例示で与えられていることが理解されるだろう。以下の説明の範囲内で多くの変更と修正が、その精神から逸脱することなく、なされるかもしれない。また、その説明はすべてのそのような変形を含むと理解されるべきである。
【発明を実施するための最良の形態】
【００２２】
ここに説明される実施例は添付図面を参照することにより、より容易に理解されるかもしれない。
【００２３】
いくつかの図面を通じて同じ番号は同じ部品を参照する。
【００２４】
ここに説明する実施例は、動きベクトル割当において可変ブロックサイズベース、ブロックベース、および画素ベースの変形をサポートする動きベクトル割当方法および装置を提供する。ここに説明した動きベクトル割当の方法および装置は、例えばフレームレートアップコンバージョン（ＦＲＵＣ）処理のような処理において、より高品質の「Ｆフレーム」とも呼ばれる内挿フレームの生成を支援する。復号されたビデオデータに含まれる補助情報は動きベクトル割当処理への入力として利用される。補助情報は、例えば各フレームを構成する「コンテンツマップ」と呼ばれるグラフィック要素の形式の記述を含むかもしれない。また同様に「複雑さマップ」、「活動度マップ」とそれぞれ呼ばれる要素の複雑さおよび動きの記述を含むかもしれない。ここに説明される動きベクトル割当は、内挿フレームの生成中に遭遇する、内挿フレームでは不要なオーバラップおよび空き領域のような問題について検討する。        
図３に内挿されるべきフレームとも呼ばれるＦ-フレームのための動きベクトル割当を実行できるシステム３００を示す。ＦＲＵＣシステム３００は入力ビットストリーム３０２を受信し、以下を抽出するためにビットストリームにバイナリ復号器モジュール３０６を用いる：（１）格納された動きベクトルバッファ３１６内に置かれる１組の動きベクトル３０８、および（２）残差３１０。残差３１０は逆量子化／逆変換モジュール３１２に入力される。その結果は格納された先行フレームバッファ３１８内の格納された先行フレームと結合され現在のフレームを生成する。現在のフレームは現在フレームバッファ３２０内に格納される。格納された動きベクトルバッファ３１６、格納されたフレームバッファ３１８、および現在のフレームバッファ３２０を含むＦＲＵＣシステム３００の下位部分３５０は、ここに説明されるように、代表的一実施例に従って動きベクトル割当を実行するための特定の機能モジュールを含む。詳細には、下位部分３５０は動きベクトルプロセッサ３２２、シードされた双方向動き推定モジュール３２４、第２の動きベクトルプロセッサ３２６、モード決定モジュール３２８、フレームレートアップコンバータ（ＦＲＵＣ）モジュール３３０、および後処理ユニット３３２を含む。ＦＲＵＣシステム３００の動作は図の説明と関連して以下にさらに説明される。さらに、ここに説明されるシステムと共に用いられるかもしれない１つの代表的動きベクトル外挿およびコンテンツ分類システムは、同時係属中の出願番号＿＿＿＿の“Method and Apparatus for Frame Rate Up Conversion”（フレームレートアップコンバージョンのための方法および装置）［Fang Shi, Viji Raveendran. June 15, 2004］に記述されている。さらに、ここで説明されるシステムと共に用いられるかもしれない１つの代表的動きベクトル平滑化処理は、同時係属中の出願番号＿＿＿＿の “Method and Apparatus for Motion Vector Processing”（動きベクトル処理のための方法および装置）［Fang Shi, Viji Raveendran］に記述されている。同時係属中の出願番号＿＿＿＿の“Method and Apparatus
for Motion Compensated Frame Rate Up Conversion”（動き補償されたフレームレートアップコンバージョンのための方法および装置）[040432]は、ここでは詳細には説明しないＦＲＵＣシステム３００の他の構成要素の代表的実施例を提供する。
【００２５】
一実施例における図３に示す機能モジュールは、１つ以上のソフトウェアアルゴリズムを用いて実施されるかもしれない特定モジュールに対応することに注意すべきである。アルゴリズムの動作は、通常の当業者がハードウェアおよびソフトウェアによる方法の組合せを用いてそれらを実施することができるように十分な詳細さを持って高いレベルで説明される。例えば、ここに説明される部品は汎用プロセッサで実行されるソフトウェアとして、特定用途向ＩＣ（ＡＳＩＣ）の「結線された」回路として、またはそれらの任意の組み合わせで実施されるかもしれない。ここに説明されたモジュールの実施のために種々の他の方法が採られるかもしれず、またそれらは画像およびビデオ処理の広い分野で仕事をする通常の当業者の分野の範囲内にあるはずであることに注意すべきである。
【００２６】
さらに、ここに説明された発明概念は、国際電気通信連合電気通信標準化部門（ＩＴＵ−Ｔ）により公表されたＨ．２６ｘ規格、または国際標準化機構／国際電気標準会議合同専門委員会１（ＩＳＯ／ＩＥＣ  ＪＴＣ１）の作業班である動画像専門家グループにより公表されたＭＰＥＧｘ規格に準拠する復号器／符号器において用いられるかもしれない。ＩＴＵ−Ｔビデオ符号化規格は勧告と呼ばれ、それらはＨ．２６ｘ（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、およびＨ．２６４）で示される。ＩＳＯ／ＩＥＣ規格はＭＰＥＧ−ｘ（例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、およびＭＰＥＧ−４）で示される。例えば、複数参照フレームおよび可変ブロックサイズはＨ．２６４規格に要求される特徴である。他の実施例において、ここに説明される発明概念が用いられる復号器／符号器システムは専用的であるかもしれない。
【００２７】
一実施例において、ＦＲＵＣシステム３００は異なる複雑さの要求に基づいて構成されるかもしれない。例えば、複雑さの高い構成は複数の参照フレーム、可変ブロックサイズ、動き加速モデルによる先行参照フレーム動きベクトル外挿、および動き推定支援による二重動きフィールド平滑化を含むかもしれない。対照的に、複雑さの低い構成は単一の参照フレーム、固定ブロックサイズ、および動きフィールド平滑化による動き補償内挿を含むだけかもしれない。
【００２８】
システム３００は、処理に用いられるビデオフレームに関する情報を格納し抽出するために用いられるデータサブシステム４００内の複数のデータ蓄積ユニットから入力を受信する。図４に示すように、これらの蓄積ユニットは、複数先行フレームのコンテンツマップ蓄積ユニット(MULTIPLE F_PREV CONTENT MAP)４０２、複数先行フレームの外挿動きフィールド蓄積ユニット (EXTRAPOLATED MULTIPLE F_PREV MOTION FIELDS) ４０４，単一先行フレームのコンテンツマップ蓄積ユニット(F_PREV CONTENT MAP) および単一先行フレームの外挿動きフィールド蓄積ユニット(EXTRAPOLATED F_PREV MOTION FIELD) ４０８を含む。複数参照フレームモード制御器モジュール４１４は、システム３００が複数参照フレームを利用するモードで動作するかどうかに従って、適切な蓄積ユニットを次段の入力に接続する。具体的には、システム３００が複数の先行参照フレームを利用する場合には、入力は複数先行フレームのコンテンツマップ蓄積ユニット４０２および複数先行フレームの外挿動きフィールド蓄積ユニット４０４から取られる。単一の先行参照フレームの動作に対しては、入力は単一先行フレームのコンテンツマップ蓄積ユニット４０６および単一先行フレームの外挿動きフィールド蓄積ユニット４０８から取られる。
【００２９】
図はコンテンツマップおよび動きフィールドを蓄積するための２つの異なるセットの蓄積ユニットの使用を示しているが、他の構成が可能であることに注意すべきである。２つのセットとは、１つは複数参照フレームが用いられる場合のため（すなわち、複数先行フレームのコンテンツマップ蓄積ユニット４０２および複数先行フレームの外挿動きフィールド蓄積ユニット４０４）、もう一方のセットは単一参照フレームが用いられる場合のため（すなわち単一先行フレームのコンテンツマップ蓄積ユニット４０６および単一先行フレームの外挿動きフィールド蓄積ユニット４０８）である。例えば、２つの異なるコンテンツマップ蓄積ユニットの機能は結合されるかもしれない。その結果、１つの蓄積ユニットが、複数フレームに対する複数のコンテンツマップまたは単一フレームに対する単一コンテンツマップを蓄積するために用いられるかもしれない。さらに、蓄積ユニットは、現在のフレームに対するデータも同様に蓄積するかもしれない。
【００３０】
複数参照フレームモード制御器モジュール４１４および現在のフレーム動きフィールド蓄積ユニット(F_CURR MOTION FIELD)４１０、並びに現在のフレームコンテンツマップ蓄積ユニット(F_CURR CONTENT MAP)４１２の出力は、動きベクトル外挿ユニット４１６に供給される。動きベクトル外挿ユニット４１６は、ここに説明されるように、システム３００内の動きベクトル処理のために用いられる補足的情報および動きベクトルを抽出する。このように、システム３００で利用される入力動きベクトルは、現在のフレームから生ずるかもしれないし、現在のフレームおよび１つ以上先行して復号されたフレーム双方から生ずるかもしれない。さらに、システム３００への他の入力は、注目領域、テクスチャ情報の変動、および背景輝度を非限定的に含むかもしれない復号されたフレームデータからの副次情報である。この情報は、以下でさらに検討されるように、動きベクトル分類および適応平滑化アルゴリズムのための指標を提供するかもしれない。
【００３１】
図５に代表的な動きベクトル割当処理５００の概要を示す。この処理はステップ５０２で、Ｆフレームを内挿するために用いられる参照フレームに対するコンテンツマップおよび動きベクトルを得ることから始まる。上記処理がクライアントの復号器で実行される一実施例においては、コンテンツマップおよび動きベクトルは上述したように予めサーバから送信されている。他の実施例において、コンテンツマップまたは動きベクトルはクライアントで生成されるかもしれない。
【００３２】
ステップ５０４において、Ｆフレーム（すなわち、内挿されるべきフレーム）内の各ブロック、「Ｆフレームブロック」、「Ｆフレームマクロブロック」、または「Ｆ＿ＭＢ」と呼ばれる、は空き領域またはオーバラップ領域のいずれかとして分類される。ここでさらに説明されるように、Ｆフレーム内の各ブロックがオーバラップ領域または空き領域を含んでいるかを判定するために、Ｆフレームは最初に一連の非オーバラップブロックに分割される。次に、Ｆフレームを間に挟む参照フレーム上に始点および終点を持つ動きベクトルがＦフレーム内の非オーバラップブロックを通過するかどうかが判定される。前に検討したように、オーバラップされた領域はそこを通過する複数の動き軌跡（すなわち複数の動きベクトル）を有する領域である。一方、空き領域はそこを通過する動き軌跡を持たない（すなわち動きベクトルのない）領域である。したがって、Ｆフレーム内のあるブロックがそれを通過する複数の動きベクトルを有している場合、それは、オーバラップ領域を含むとして分類され、ここでは「オーバラップ領域ブロック」または「オーバラップ領域」と呼ばれるだろう。さらに、特定のブロックを通過する複数の動きベクトルは、そのブロックをオーバラップ領域ブロックとする原因となるものであり、そのブロックに対する「オーバラップ動きベクトル群」と呼ばれるだろう。このオーバラップ動きベクトル群は、後にさらに説明されるように、ある動きベクトルがオーバラップ動きベクトル群から除外されるかもしれない修正に従うだろう。また、修正された動きベクトル群はここでは「処理後のオーバラップ動きベクトル群」と呼ばれる。他の実施例において、オーバラップ動きベクトル群はある基準に合致する動きベクトルだけを含み、従って処理後のオーバラップ動きベクトル群と等しくなるだろう。１つのブロックがそれを通過する動きベクトルを持たない場合、それは空き領域として分類され、ここでは「空き領域ブロック」または「空き領域」を呼ばれるだろう。一実施例において、それを通過する単一の動きベクトルを有するブロックは、空き領域がないとして分類されるだろう。他の実施例において、これらのタイプのブロックはオーバラップ領域として分類されるだろう。ブロックが一旦分類されると、処理は動き割当処理に続く。これはブロックがどう分類されるかに従う。
【００３３】
ステップ５０６において、ブロックが空き領域として分類されるかが判定される。空き領域であれば、次に、動作はステップ５１４へ続く。そこでは、空き領域に対する動きベクトル割当処理が実行される。別の場合は、動作はステップ５０８へ続く。そこでは、ただ１つの動きベクトルがＦフレーム内のブロックを通過するかが判定される。通過する場合、動作はステップ５１２へ続く。そこでは、標準の動き補償処理が単一動きベクトルに基づいて発生する。ブロックがオーバラップ領域として分類されている場合、次に動作はステップ５１０へ続く。そこでは、動きベクトル割当処理がオーバラップ領域に対して実行される。
【００３４】
図６に代表的動きベクトル割当処理を例示する。ここでは図５を参照して説明される一般的動きベクトル割当処理が、オーバラップ領域および空き領域に対する動きベクトル割当を実行するためのＦＲＵＣシステム３００の動作に適用される。システムはステップ６０２において、先ずＦフレーム、この場合解釈されるべきフレーム、を非オーバラップマクロブロック（ＭＢ）に分割し、空き領域およびオーバラップ領域の分類をこれらのブロックに割り当てることから始まる。固定ブロックサイズシステムにおいては、フレームは１つの固定サイズのブロックに分割されなければならない。ここに説明するように、マクロブロック（ＭＢ）は１６×ｌ６サイズのブロックを指す。しかし、ここでの説明は他のサイズのブロックに適用されるかもしれない。さらに、可変ブロックサイズをサポートするシステムにおいて、フレームは異なるサイズおよび形状を有する複数のブロックに分割されるかもしれない。可変ブロックサイズをサポートするビデオコーデックについて、システム３００はこれらのブロックに関連している動きベクトルに対する動きベクトル割当を実行することができる。上述したような規格の１つは、Ｈ．２６４規格であり、それは１６×１６、１６×８、８×１６、８×８、８×４、４×８、および４×４のブロックサイズをサポートする。
【００３５】
Ｆフレームが分割されると、ブロックは上で検討したような方法で空き領域またはオーバラップ領域として分類される。そこでは１つのオーバラップ領域ブロックに属するすべての動きベクトルは、それぞれの群にまとめられる。動作はブロック６０４に続く。そこではＦＲＵＣシステム３００は参照フレームに対するコンテンツマップが存在するかが判定される。
【００３６】
フレーム内のコンテンツがここで説明するように動きベクトル割当処理の一部として分類されることは重要である。受信したビデオストリームメタデータ（すなわち、送信された動きベクトル）および復号されたデータ（すなわち、再構成されたフレームピクセル値）に基づいて、フレーム内のコンテンツは以下のクラスタイプに分類することができる。
【００３７】
１．  静的背景（ＳＢ）；
２．  動対象（ＭＯ）；
３．  出現対象（ＡＯ）；
４．  消失対象（ＤＯ）；
５．  輪郭（ＥＤＧＥ）。
【００３８】
したがって、現在の動きベクトルが指向しているフレームの領域、すなわちマクロブロックまたはブロック、のクラスタイプは解析され、内挿されるべきフレームの処理に影響を与えるだろう。コンテンツ分類にＥＤＧＥクラスを導入することは、コンテンツ分類の付加的クラスを加え、ここに説明するように改良したＦＲＵＣ処理を提供する。
【００３９】
図７に、ＭＣＩのための動対象（ＭＯ）７０８、出現対象（ＡＯ）７０４、消失対象（ＤＯ）７１０、静的背景（ＳＢ）７０２およびＥＤＧＥ７０６のクラスを含む異なるクラスの画素または領域を例示する。ここで一組の矢印７１２は図示した三個のフレーム、フレーム（ｔ−１）、フレーム（ｔ）（Ｆフレーム）、およびフレーム（ｔ＋１）内の画素の移動軌跡を表す。詳細には、ＭＣＩの場面において、各ビデオフレーム内部の各画素または領域を上にリストした５つのクラスの１つに分類することができる。関連する動きベクトルは、以下でさらに説明されるように、クラスタイプ情報の変化（もしあれば）の比較に基づいて特定の方法で処理されるかもしれない。さらに、上述した５つのコンテンツ分類はＳＢ、ＡＯおよびＤＯクラス間の差が小さい場合、以下の３つのより緩やかなクラスにまとめることができる。
【００４０】
１．  ＳＢ７０２、ＡＯ７０４、ＤＯ７１０；
２．  ＭＯ７０８；
３．  ＥＤＧＥ７０６。
【００４１】
一実施例において、ＤＯ７１０、ＳＢ７０２、ＡＯ７０４、およびＭＯ７０８コンテンツの分類を実行するために、異なる計算の複雑さに基づく２つの異なる方法が用いられる。例えば、複雑さの低い方法において、コンテンツを分類するために以下の式が用いられるかもしれない。
【００４２】
Qc=abs(Fc［yn]［xn]-Fｐ［yn]［xn])；
Qp=abs(Fp［yn]［xn]-Fpp［yn]［xn])；
Qc=(Qc>しきい値)；
Qp=(Qp>しきい値)；
ここで、
ynおよびxnは画素のyおよびx座標位置、
Fcは現在のフレームのピクセル値、
Fpは先行フレームのピクセル値、
Fppは前の前のフレームのピクセル値、
Qcは現在および先行フレームの同じ位置の画素 ([yn][xn]にある)の絶対ピクセル値差、
Qpは先行および前の前のフレームの同じ位置の画素 ([yn][xn]にある)の絶対ピクセル値差である；
また、
if (Qc && Qp) then 動対象に分類、
else if (!Qc && !Qp) then 静止背景に分類、
else if (Qc && !Qp) then 消失対象に分類、
else if (!Qc && Qp) then 出現対象に分類。
【００４３】
例えば、複雑さの高い方法において、分類は、区分化された対象の動きを追跡することによって実行されるコンテンツ分類と共に、対象の区分化および形態素操作に基づく。従って、
１．  動きフィールド上の対象の区分化を実行する、
２．  区分化された対象の動きを追跡（例えば、形態素操作による）する、
３．  対象をそれぞれＳＢ、ＡＯ、ＤＯ、およびＭＯとして印をつける。
【００４４】
参照フレームに対してコンテンツマップが存在すると判定された後、ステップ６０６において、ＦＲＵＣシステムは、Ｆフレーム内のオーバラップ領域マクロブロックに関して、次の動きベクトルをオーバラップ動きベクトルの群から除外するだろう。そのベクトルとは、異なるコンテンツクラスから始まるかまたは終了するオーバラップ領域ブロックに属する動きベクトルである。詳細には、各マクロブロックは、上述したようにＭＯ、ＳＢ、ＡＯ、ＤＯ、およびＥＤＧＥクラスの１つに（または、ＳＢ、ＡＯおよびＤＯクラス間の差が小さい時は３つのクラスに）分類される参照フレーム内の各マクロブロックのコンテンツタイプを決定するために、各参照フレームのコンテンツマップを用いる。これにより、オーバラップ動きベクトル群内（すなわち、予めオーバラップ領域ブロックを通過するすべての動きベクトルとして定義されている）の任意の動きベクトルが異なるコンテンツクラスを有するマクロブロックで始まりおよび終わるかを判定できる。例えば、ＭＯマクロブロックとして分類されたフレーム（Ｔ＋１）内のマクロブロックに接している始点を有するが、ＳＢマクロブロックとして分類されたフレーム（Ｔ−１）内のマクロブロックに接している終点を有する動きベクトルがそのような動きベクトルだろう。一実施例において、動きベクトルの始点と終点が異なるコンテンツクラスに属する場合、その動きベクトルはオーバラップ動きベクトル群から除去される。前に定義したように、除去されていない動きベクトルは処理済動きベクトル群である。
【００４５】
異なるクラスに分類されるマクロブロックに関連する始点および終点を有する動きベクトルがオーバラップ動きベクトル群から除外され、処理済動きベクトル群が生成されると、動作は判定ブロック６０８へ続く。そこでは動きベクトルが割り当てられるマクロブロックがオーバラップ領域マクロブロックであるかが判定される。
【００４６】
オーバラップＭＢに対する動きベクトル割当
ステップ６０８において、各マクロブロックに対する処理済オーバラップ動きベクトル群が１より大きいオーバラップ動きベクトルを含むかどうかが判定される。含む場合、次に、一実施例において、動作はステップ６１６へ続く。そこでは、中央画素を通過する動きベクトルがマクロブロックへの動きベクトルの割当に用いられる。他の実施例において、ステップ６１８に表されるように、割当は最もカバーされた領域の決定に基づく。さらに他の実施例において、ステップ６２０に表されるように、オーバラップ領域マクロブロック内のカバレッジに基づいて生成される重み付けされた動きベクトルが割り当てられる。また、さらに他の実施例において、ステップ６２２に表されるように、メジアンベクトルが割り当てられる。これらの各実施例は以下に説明される。
【００４７】
中央画素のＭＶに基づくＭＶの割当
一実施例において、動きベクトル割当はマクロブロックの中央画素を通過する動きベクトルを決定することに基づいている。以下のステップを含む系列：
１．現在のフレーム内の現在のＭＢ（x/block_size, y/block_size）で始まる、ここで、(x,y)は現在のマクロブロックの中央画素位置、
２．MB(x,y)の現在の動きベクトル(dx,dy)を計算する、
３．動きベクトルを比例的に縮尺する。Ｆフレームが正確に現在のフレームと先行フレームの間である１：２ＦＲＵＣの場合、縮尺は(dx/2,dy/2)である、
４．Ｆフレーム内のＭＢ、MB_f((x+dx/2)/block_size, (y+dy/2)/block_size)は、MV(dx/2, dy/2)を割り当てられるだろう、
５．Ｆ−フレーム内の同じＭＢに割り当てられた１つ以上のＭＶがある場合、平均化またはメジアン操作は、最終的なシードＭＶを得るために実行されるだろう。
【００４８】
領域の大部分をカバーするＭＢに基づくＭＶの割当
他の実施例では、動きベクトル割当は動きベクトルをＦフレームのマクロブロックの大部分の領域をカバーする関連するマクロブロックと共に決定することに基づく。ステップは以下の通りである：
１．  現在のフレーム内の現在のMB(x/block_size, y/block_size)、ここで、(x、y)が中央画素位置である、
２．  ＭＢ(x,y)の現在のMV(dx, dy)、
３．  MVを比例的に縮尺する。１：２ＦＲＵＣの場合、縮尺は(dx/2, dy/2)である、
４．  MV(dx, dy)はＦ−フレームを通過し、Ｆ−フレーム内の交差位置は(x+dx/2, y+dy/2)である、
５．  Ｆ-フレーム内に(x+dx/2, y+dy/2)の周囲に集まるＭＢと重なる最大４個の領域を作る、
ａ．  F_MB_1 (x1, y1)、ここでx1= ((int)(x+dx/2)/block_size)*block_size + block_size/2、y1 = ((int)(y+dy/2)/block_size)*block_size+block_size/2；
ｂ．  F_MB_2 (x2, y2)、ここで、x2 = x1+block_size、y2= y1；
ｃ．  F_MB_3 (x3, y3)、ここで、x3 = x1+block_size、y3 = y1+block_size；
ｄ．  F_MB_4 (x4, y4)、ここで、x4 = x1、y4 = y1+block_size；
６．  ＭＢでカバーされる４個のF_MB内に(x+dx/2, y+dy/2)の周囲に集まり、MV(dx/2, dy/2)で計算されたすべての領域に関連する最大４個の領域を作る、  
ａ．  Area_MB_1 = (block_size-(x+dx/2-x1))*(block_size-(y+dy/2-y1))；
ｂ．  Area_MB_2 = (block_size-(x+dx/2-x2))*(block_size-(y+dy/2-y2))；
ｃ．  Area_MB_3 = (block_size-(x+dx/2-x3))*(block_size-(y+dy/2-y3))；
ｄ．  Area_MB_4 = (block_size-(x+dx/2-x4))*(block_size-(y+dy/2-y4))；
７．  Ｆ−フレーム内の各F_MBについて、最大領域を与えるＭＶを選択する。
【００４９】
加重平均ＭＶ割当
またさらに他の実施例において、動きベクトル割当はマクロブロックをカバーする複数マクロブロックの加重平均に基づく。ステップは以下の通りである：
１．  現在のフレームの現在のMB(x/block_size, y/block_size)。ここで(x,y)は中央画素位置である、
２．  MB(x,y)の現在のMV(dx,dy)、
３．  MVを比例的に縮尺する。１：２ＦＲＵＣの場合、縮尺は(dx/2, dy/2)である、
４．  MV(dx, dy)はＦ−フレームを通過し、Ｆ−フレーム内の交差位置は(x+dx/2, y+dy/2)である、
５．  Ｆ-フレーム内に(x+dx/2, y+dy/2)の周囲に集まるＭＢと重なる最大４個の領域を作る、
a.  F_MB_1(x1, y1); x1=((int)(x+dx/2)/block_size)*block_size + block_size/2;  y1 = ((int)(y+dy/2)/block_size)*block_size+block_size/2;
ｂ．  F_MB_2 (x2, y2); x2 = x1+block_size、y2 = y1;
ｃ．  F_MB_3 (x3, y3); x3 = x1+block_size、y3 = y1+block_size;
ｄ．  F_MB_4 (x4, y4); x4 = x1、y4 = y1+block_size;
６．  ＭＢでカバーされる４個のF_MB内に(x+dx/2,y+dy/2)の周囲に集まり、MV(dx/2,dy/2)で計算されたすべての領域に関連する最大４個の領域を作る、
ａ．  Area_MB_1 = (block_size-(x+dx/2-x1))*(block_size-(y+dy/2-y1));
ｂ．  Area_MB_2 = (block_size-(x+dx/2-x2))*(block_size-(y+dy/2-y2));
ｃ．  Area_MB_3 = (block_size-(x+dx/2-x3))*(block_size-(y+dy/2-y3));
ｄ．  Area_MB_4 = (block_size-(x+dx/2-x4))*(block_size-(y+dy/2-y4));
７．  Ｎ個のＭＶがF_MBを通過する場合、加重MVをF_MBに割り当てる、
MV = w_1 *MV1+ w_2*MV_2+....+w_N*MV_N
ここで、w_iは重み係数である:
w_i = area_i/block_size/block_size。
【００５０】
予めステップ６０８でＦフレームマクロブロックがオーバラップした動きベクトルを有しないと判定されたステップ６２８において、システムはＦフレームマクロブロックがそれを通過する単一の動きベクトルを有しているか（すなわち、ただ１つの動きベクトルが処理済動きベクトル群内にあるかどうか）を判定する。有している場合、動作はステップ６３０へ続く。そこでは標準の動きベクトル割当が実行される。そうでなければ、Ｆフレームマクロブロックはそこを通過するいかなる動きベクトルも有しないと判定され、ステップ６２２へ続く。そこでは一実施例においてゼロ値の動きベクトルがＦフレームマクロブロックに割り当てられる。他の実施例において、ステップ６２４に表されるように、Ｆフレームマクロブロックはそのマクロブロックに隣接する利用可能な動きベクトルの平均である動きベクトルが割り当てられる。さらに他の実施例において、ステップ６２６に表されるように、Ｆフレームマクロブロックはそのマクロブロックに隣接する利用可能な動きベクトルのメジアンである動きベクトルが割り当てられる。
【００５１】
図６において動きベクトル割当処理はＦフレームマクロブロックがオーバラップした領域のマクロブロックであるかどうかを検査することに始まるが、その処理はＦフレームマクロブロックが空き領域マクロブロックである場合またはＦフレームマクロブロックを通過するただ１つの動きベクトルがある場合に等しく適用すると理解されるべきであり、またそのような処理フローへの変更は、実施する通常の当業者の能力の十分範囲内にあることに注意すべきである。
【００５２】
図８にＦＲＵＣシステム３００に対するブロックベースではなく画素ベースの動きベクトル割当処理を示す。ここでは図６のステップ６０４と同様にステップ８０６においてコンテンツマップが参照フレームに対して存在するかどうかが判定される。存在する場合、図６のステップ６０６と同様に、異なるコンテンツクラスで始まりかつ終わるいかなる隣接動きベクトルもステップ８０８で除外される。次に、動作はステップ８１６に続く。そこでは、画素がオーバラップしているかが判定される。オーバラップしている場合、次に、動作はステップ８１８へ続く。そこでは、異なるコンテンツクラスの終点に基づいて除去されていないオーバラップ動きベクトルのメジアンに基づいて、メジアン動きベクトルがその画素に割り当てられる。他の実施例において、ステップ８２０に表されるように、異なるコンテンツクラスの終点に基づいて除去されていないオーバラップ動きベクトルの平均に基づいて、平均動きベクトルがその画素に割り当てられる。
【００５３】
Ｆフレームの画素がオーバラップ領域にない場合、ステップ８２８において、単一動きベクトルがその画素を通過するかが判定される。通過する場合、動作はステップ８３０へ続く。そこではその画素はそれを通過する動きベクトルを割り当てられる。そうでなければ、画素は空き領域であると判定され、動作はステップ８２２へ続く。そこではメジアン動きベクトルが隣接動きベクトルのメジアンに基づいて画素に割り当てられる。他の実施例において、ステップ８２０に表されるように、平均動きベクトルは隣接動きベクトルの平均に基づいて、画素に割り当てられる。メジアンおよび平均動きベクトル割当に用いられるかもしれない隣接動きベクトルは、異なる始点および終点コンテンツクラスに基づく除去によって決まるかもしれないことに注意すべきである。
【００５４】
図９に、無線システムにおけるアクセス端末９０２ｘおよびアクセスポイント９０４ｘのブロック図を示す。ここで検討される「アクセス端末」は、音声および／またはデータの接続性をユーザに提供するデバイスを指す。アクセス端末はラップトップコンピュータまたはデスクトップコンピュータのような計算用デバイスに接続されるかもしれないし、または、携帯情報端末のような自蔵デバイスであるかもしれない。アクセス端末は加入者ユニット、移動局、移動体、遠隔局、遠隔端末、ユーザ端末、ユーザエージェント、またはユーザ機器を指すこともできる。アクセス端末は、加入者局、無線デバイス、携帯電話、ＰＣＳ電話、コードレス電話、セッション開始プロトコル（ＳＩＰ）電話、無線ローカルループ（ＷＬＬ）局、携帯情報端末（ＰＤＡ）、無線接続能力を有するハンドヘルドデバイス、または無線モデムに接続された他の処理デバイスであるかもしれない。ここで検討される「アクセスポイント」は、１つ以上のセクタを通して無線経由インタフェースでアクセス端末と通信するアクセス網におけるデバイスを指す。アクセスポイントは、受信した無線インタフェースフレームをＩＰパケットに変換することによって、アクセス端末とＩＰ網を含むかもしれない残りのアクセス網の間のルータとして動作する。また、アクセスポイントは無線インタフェースに対する属性管理を調整する。
【００５５】
逆方向リンクに関して、アクセス端末９０２ｘにおいて、送信（ＴＸ）データプロセッサ９１４はデータバッファ９１２からトラヒックデータを受信し、各データパケットを、選択した符号化および変調方式に基づいて処理（例えば符号化、インタリーブ、およびシンボルマップ）し、データシンボルを出力する。データシンボルはデータの変調シンボルであり、パイロットシンボルはパイロット（先験的に知られている）用の変調シンボルである。変調器９１６は、逆方向リンク用のデータシンボル、パイロットシンボル、および場合により信号を受信し、変調および／またはシステムで特定される他の処理を実行（例えばＯＦＤＭ）し、また出力チップのストリームを出力する。送信機ユニット（ＴＭＴＲ）９１８は、出力チップストリームを処理（例えば、アナログへ変換、フィルタリング、増幅、および周波数アップコンバージョン）し、アンテナ９２０から送信される変調信号を発生する。
【００５６】
アクセスポイント９０４ｘにおいて、アクセスの端末の９０２ｘおよびアクセスポイント９０４ｘと交信中の他の端末によって送信された変調信号がアンテナ９５２によって受信される。受信機ユニット（ＲＣＶＲ）９５４はアンテナ９５２からの受信信号を処理（例えば、調整およびディジタル化）し、受信サンプルを出力する。復調器（Ｄｅｍｏｄ）９５６は処理する受信サンプルを処理（例えば復調および検出）し、検出データシンボルを出力する。これは、端末からアクセスポイント９０４ｘへ送信されたデータシンボルの雑音を含む推定値である。受信（ＲＸ）データプロセッサ９５８は、各端末に対して検出するデータシンボルを処理（例えばシンボル逆写像、デインターリーブおよび復号）し、その端末に対する復号データを出力する。
【００５７】
順方向リンクに関して、アクセスポイント９０４ｘにおいて、トラヒックデータはデータシンボルを発生させるためのＴＸデータ処理装置９６０によって処理される。変調器９６２は、順方向リンクのためのデータシンボル、パイロットシンボル、および信号を受信し、変調および／または、他の適切な処理を実行（例えば、ＯＦＤＭ）し、出力チップストリームを出力する。これは、さらに送信機ユニット９６４により調整され、アンテナ９５２から送信される。順方向リンクの信号は、アクセスポイント９０４ｘへ逆方向リンクで送信するすべての端末に対する制御器９７０で生成される電力制御命令を含むかもしれない。アクセス端末９０２ｘにおいて、アクセスポイント９０４ｘによって送信された変調信号はアンテナ９２０で受信され、受信機ユニット９２２で調整およびディジタル化され、検出データシンボルを得るために復調器９２４で処理される。ＲＸデータプロセッサ９２６は、検出したデータシンボルを処理し、端末に対する復号データおよび順方向リンクの信号を出力する。制御器９３０は、電力制御命令を受信し、データ送信およびアクセスポイント９０４ｘへの逆方向リンクでの送信電力を制御する。制御器９３０および９７０は、アクセス端末９０２ｘおよびアクセスポイント９０４ｘの動作をそれぞれ指示する。記憶ユニット９３２および９７２は、それぞれ制御器９３０および９７０によって用いられるプログラムコードおよびデータを格納する。
【００５８】
開示された実施例は以下の技術のいずれか１つまたは組み合わせに適用されるかもしれない。符号分割多元接続（ＣＤＭＡ）システム、マルチキャリアＣＤＭＡ（ＭＣ−ＣＤＭＡ）、広帯域ＣＤＭＡ（Ｗ−ＣＤＭＡ）、高速ダウンリンクパケット接続（ＨＳＤＰＡ）、時分割多元接続（ＴＤＭＡ）システム、周波数分割多元接続（ＦＤＭＡ）システム、および直交周波数分割多元接続（ＯＦＤＭＡ）システム。
【００５９】
ここに開示された実施例に関連して説明した方法またはアルゴリズムのステップは直接ハードウェア、プロセッサで実行されるソフトウェアモジュール、またはその２つの組み合わせで具体化されるかもしれない。ソフトウェアモジュールはＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、可搬型ディスク、ＣＤ−ＲＯＭ、または当業者に周知の任意の他の形式の記憶媒体にあるかもしれない。代表的な記憶媒体は、プロセッサが記憶媒体から情報を読み出し、情報を書き込むことができるように、プロセッサに接続される。代替手段において、記憶媒体はプロセッサの構成要素であるかもしれない。プロセッサおよび記憶媒体はＡＳＩＣにあるかもしれない。ＡＳＩＣはユーザ端末にあるかもしれない。代替手段において、プロセッサおよび記憶媒体はユーザ端末内の個別部品にあるかもしれない。
【００６０】
ここに説明された方法が種々の通信ハードウェア、プロセッサ、および通常の当業者に周知のシステム上で実施されるかもしれないことに注意するべきである。例えば、クライアントがここに説明されるように動作するための一般的要求事項は、クライアントがコンテンツ並びに情報を表示するための表示器、クライアントの動作を制御するためのプロセッサ、およびクライアントの動作に関連するデータ並びにプログラムを格納するためのメモリを有することである。一実施例において、クライアントは携帯電話である。他の実施例において、クライアントは、通信能力を持つハンドヘルドコンピュータである。さらに他の実施例において、クライアントは、通信能力を持つパーソナルコンピュータである。さらに、ＧＰＳ受信機のようなハードウェアが、ここに説明した種々の実施例を実施するためにクライアント内に必要に応じて組み込まれるかもしれない。
【００６１】
ここに開示された実施例に関して説明された例示的論理、論理ブロック、モジュール、および回路は、汎用プロセッサ、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向ＩＣ（ＡＳＩＣ）、プログラマブルゲートアレイ（ＦＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは他のプログラム可能論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア部品、またはここに説明した機能を実行するように設計されたそれらの任意の組み合わせで実施または実行されるかもしれない。汎用プロセッサは、マイクロプロセッサであるかもしれないが、代替的には、プロセッサは、通常のメインプロセッサ、制御器、マイクロ制御器または状態機械であるかもしれない。プロセッサはた、計算デバイスの組合せ、例えばＤＳＰとマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアと連係した１つ以上のマイクロプロセッサ、または他のそのような構成として実施されるかもしれない。
【００６２】
上で説明した実施例は代表的な実施例である。当業者は、ここに開示された発明概念から逸脱することなく上述した実施例を多く利用し、発展させるかもしれない。これらの実施例への種々の変更は当業者に容易に明らかになるだろう。また、ここに定義した一般的原理はここに述べた新しい態様の精神または範囲から逸脱することなく他の実施例、例えばインスタントメッセージデバイスまたは任意の一般的無線データ通信応用、に適用されるかもしれない。したがって、本実施例の新しい態様の範囲は、ここに示した実施例に制限することを意図しておらず、ここに開示した原理および新規な機能に矛盾しない最も広い範囲と一致するということである。「代表的」という言葉は、ここでは「例、実例、または例証として役立つこと」を意味するために専ら用いられる。ここで「代表的」と説明されたいかなる実施例も、必ずしも他の実施例より好ましいまたは有利であると解釈されるべきではない。従って、実施例の新しい態様の範囲は以下の請求項の範囲によってのみ定義されるということである。
【図面の簡単な説明】
【００６３】
【図１】動き補償内挿（ＭＣＩ）を用いて内挿されたフレームの構成を示す図。
【図２】ＭＣＩの間に補間されたフレーム内で遭遇するかもしれないオーバラップおよび空き領域を示す図。
【図３】動きベクトル割当を実行するためのＦＲＵＣシステムについてのブロックダイアグラム。
【図４】動きベクトルシステムの動きベクトル抽出サブシステムのブロックダイアグラム。
【図５】オーバラップおよび空きブロック領域に対する動き補償ベクトル割当のための方法の概観を示すフローチャート。
【図６】オーバラップおよび空きブロック領域に対する動き補償ベクトル割当のためのＦＲＵＣシステムの動作を示すフローチャート。
【図７】ビデオフレームの中のグラフィック要素に割り当てられた種々のコンテンツクラスを示す図。
【図８】オーバラップおよび空き画素領域に対する動き補償ベクトル割当のためのＦＲＵＣシステムの動作を示すフローチャート。
【図９】無線システムのアクセス端末およびアクセスポイントのブロックダイアグラム。
【図１】
2008507920.tif 000003
【図２】
2008507920.tif 000004
【図３】
2008507920.tif 000005
【図４】
2008507920.tif 000006
【図５】
2008507920.tif 000007
【図６】
2008507920.tif 000008
【図７】
2008507920.tif 000009
【図８】
2008507920.tif 000010
【図９】
2008507920.tif 000011
【国際調査報告】
2008507920.tif 000012
2008507920.tif 000013