(57)【要約】      （修正有）【課題】現在のビデオフレーム、少なくとも１つの前のビデオフレーム、および送信された１セットの動作ベクトルを用いたビデオフレーム補間のための方法を提供する。【解決手段】第１のセットの動作ベクトルは、送信された１セットの動作ベクトルの関数として生成される。複数個のオーバーラップしないブロックを持つ中間のビデオフレームが識別される。オーバーラップしないブロックはそれぞれ、第１のセットの動作ベクトルから選択された少なくとも１つの動作ベクトルが割り当てられ、割り当てられた１セットの動作ベクトルが生成される。その後、第２のセットの動作ベクトルが、割り当てられた１セットの動作ベクトルの関数として作成される。ビデオフレームが、第２のセットの動作ベクトルを使用して生成される。【選択図】図６
2011061811.tif 000002
【特許請求の範囲】
【請求項１】
現在のビデオフレーム、少なくとも１つの前のビデオフレーム、および送信された１セットの動作ベクトルを使用するビデオフレーム補間方法を実施するように構成された少なくとも１つのプロセッサであって、前記方法は、
前記送信された１セットの動作ベクトルの関数として、第１のセットの動作ベクトルを生成することと、
複数のオーバーラップしないブロックを持つ中間ビデオフレームを識別することと、
オーバーラップしないブロックにそれぞれ、前記第１のセットの動作ベクトルから選択された少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成することと、
第２のセットの動作ベクトルを、前記割り当てられた１セットの動作ベクトルの関数として生成することと、
前記第２のセットの動作ベクトルを用いてビデオフレームを生成することと
を含む少なくとも１つのプロセッサ。
【請求項２】
前記送信された１セットの動作ベクトルの関数として、前記第１のセットの動作ベクトルを生成することは、
前記送信された１セットの動作ベクトルを、第１の部分の動作ベクトルと、第２の部分の動作ベクトルとに分割することと、
前記第１の部分の動作ベクトルを、前記第２の部分のベクトルの関数として修正することと
を含む請求項１に記載の少なくとも１つのプロセッサ。
【請求項３】
オーバーラップしないブロックにそれぞれ、少なくとも１つの動作ベクトルを割り当てることは、
シード動作ベクトルを決定することと、
前記シード動作ベクトルに基づいて、動作ベクトル探索を実行することと
を含む請求項１に記載の少なくとも１つのプロセッサ。
【請求項４】
前記シード動作ベクトルを決定することは、前記オーバーラップしないブロックの中心を通る動作ベクトルを決めることを含む請求項３に記載の少なくとも１つのプロセッサ。
【請求項５】
前記シード動作ベクトルに基づいて、前記動作ベクトル探索を実行することは、双方向動作ベクトル探索を実行することを含む請求項３に記載の少なくとも１つのプロセッサ。
【請求項６】
前記双方向動作ベクトル探索を実行することは、
少なくとも１つの前のビデオフレームにおいて前のビデオフレーム探索ブロックを構築することと、
第１の探索範囲を、前記現在のビデオフレームの一部に割り当てることと、
第１の予め定めた基準に基づいて、前記第１の探索範囲において、前記前のビデオフレーム探索ブロックに対する第１のマッチングブロックの探索を実行することと
を含む請求項５に記載の少なくとも１つのプロセッサ。
【請求項７】
前記双方向動作ベクトル探索を実行することは、
前記現在のビデオフレームにおいて現在のビデオフレーム探索ブロックを構築することと、
第２の探索範囲を、前記少なくとも１つの前のビデオフレームの一部に割り当てることと、
第２の予め定めた基準に基づいて、前記第２の探索範囲において、前記現在のビデオフレーム探索ブロックに対する第２のマッチングブロックの探索を実行することと
を含む請求項６に記載の少なくとも１つのプロセッサ。
【請求項８】
前記双方向動作ベクトル探索を実行することは、前記第１のマッチングブロックに基づいて第１の動作ベクトルを決定することを含む請求項６に記載の少なくとも１つのプロセッサ。
【請求項９】
前記第１の予め定めた基準は、歪み指標に基づく請求項６に記載の少なくとも１つのプロセッサ。
【請求項１０】
前記第１の予め定めた基準は、前記歪み指標を最小化することに基づく請求項９に記載の少なくとも１つのプロセッサ。
【請求項１１】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの絶対差の合計に基づく請求項９に記載の少なくとも１つのプロセッサ。
【請求項１２】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの二乗差の合計に基づく請求項９に記載の少なくとも１つのプロセッサ。
【請求項１３】
前記歪み指標は、人間の視覚体系ベースの指標に基づく請求項９に記載の少なくとも１つのプロセッサ。
【請求項１４】
前記歪み指標は、統計に基づく請求項９に記載の少なくとも１つのプロセッサ。
【請求項１５】
前記送信された１セットの動作ベクトルは、複数の現在のフレーム動作ベクトルと、複数の前のフレーム動作ベクトルとを含む請求項１に記載の少なくとも１つのプロセッサ。
【請求項１６】
現在のビデオフレーム、少なくとも１つの前のビデオフレーム、および送信された１セットの動作ベクトルを使用するビデオフレーム補間方法であって、
前記送信された１セットの動作ベクトルの関数として、第１のセットの動作ベクトルを生成することと、 
複数のオーバーラップしないブロックを持つ中間ビデオフレームを識別することと、
オーバーラップしないブロックにそれぞれ、前記第１のセットの動作ベクトルから選択された少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成することと、 
第２のセットの動作ベクトルを、前記割り当てられた１セットの動作ベクトルの関数として生成することと、
前記第２のセットの動作ベクトルを用いてビデオフレームを生成することと
を含む方法。
【請求項１７】
前記送信された１セットの動作ベクトルの関数として、前記第１のセットの動作ベクトルを生成することは、 
前記送信された１セットの動作ベクトルを、第１の部分の動作ベクトルと、第２の部分の動作ベクトルとに分割することと、
前記第１の部分の動作ベクトルを、前記第２の部分のベクトルの関数として修正することと
を含む請求項１６に記載のビデオフレーム補間方法。
【請求項１８】
オーバーラップしないブロックのそれぞれに、少なくとも１つの動作ベクトルを割り当てることは、
シード動作ベクトルを決定することと、 
前記シード動作ベクトルに基づいて、動作ベクトル探索を実行することと
を含む請求項１６に記載のビデオフレーム補間方法。
【請求項１９】
前記シード動作ベクトルを決定することは、前記オーバーラップしないブロックの中心を通る動作ベクトルを決めることを含む請求項１８に記載のビデオフレーム補間方法。
【請求項２０】
前記シード動作ベクトルに基づいて、前記動作ベクトル探索を実行することは、双方向動作ベクトル探索を実行することを含む請求項１８に記載のビデオフレーム補間方法。
【請求項２１】
前記双方向動作ベクトル探索を実行することは、
前記少なくとも１つの前のビデオフレームにおいて前のビデオフレーム探索ブロックを構築することと、
第１の探索範囲を、前記現在のビデオフレームの一部に割り当てることと、
第１の予め定めた基準に基づいて、前記第１の探索範囲において、前記前のビデオフレーム探索ブロックに対する第１のマッチングブロックの探索を実行することと
を含む請求項２０に記載のビデオフレーム補間方法。
【請求項２２】
前記双方向動作ベクトル探索を実行することは、
前記現在のビデオフレームにおいて現在のビデオフレーム探索ブロックを構築することと、
第２の探索範囲を、前記少なくとも１つの前のビデオフレームの一部に割り当てることと、
第２の予め定めた基準に基づいて、前記第２の探索範囲において、前記現在のビデオフレーム探索ブロックに対する第２のマッチングブロックの探索を実行することと
を含む請求項２１に記載のビデオフレーム補間方法。
【請求項２３】
前記双方向動作ベクトル探索を実行することは、前記第１のマッチングブロックに基づいて第１の動作ベクトルを決定することを含む請求項２１に記載のビデオフレーム補間方法。
【請求項２４】
前記第１の予め定めた基準は、歪み指標に基づく請求項２１に記載のビデオフレーム補間方法。
【請求項２５】
前記第１の予め定めた基準は、前記歪み指標を最小化することに基づく請求項２４に記載のビデオフレーム補間方法。
【請求項２６】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの絶対差の合計に基づく請求項２４に記載のビデオフレーム補間方法。
【請求項２７】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの二乗差の合計に基づく請求項２４に記載のビデオフレーム補間方法。
【請求項２８】
前記歪み指標は、人間の視覚体系ベースの指標に基づく請求項２４に記載のビデオフレーム補間方法。
【請求項２９】
前記歪み指標は、統計に基づく請求項２４に記載のビデオフレーム補間方法。
【請求項３０】
前記送信された１セットの動作ベクトルは、複数の現在のフレーム動作ベクトルと、複数の前のフレーム動作ベクトルとを含む請求項１６に記載のビデオフレーム補間方法。
【請求項３１】
プロセッサによって実行された場合、現在のビデオフレーム、少なくとも１つの前のビデオフレーム、および送信された１セットの動作ベクトルを使用するビデオフレーム補間方法を前記プロセッサに実施させる格納済命令を有するコンピュータ読取可能媒体であって、前記方法は、
前記送信された１セットの動作ベクトルの関数として、第１のセットの動作ベクトルを生成することと、
複数のオーバーラップしないブロックを持つ中間ビデオフレームを識別することと、
オーバーラップしないブロックにそれぞれ、前記第１のセットの動作ベクトルから選択された少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成することと、
第２のセットの動作ベクトルを、前記割り当てられた１セットの動作ベクトルの関数として生成することと、
前記第２のセットの動作ベクトルを用いてビデオフレームを生成することと
を含むコンピュータ読取可能媒体。
【請求項３２】
前記送信された１セットの動作ベクトルの関数として、前記第１のセットの動作ベクトルを生成することは、
前記送信された１セットの動作ベクトルを、第１の部分の動作ベクトルと、第２の部分の動作ベクトルとに分割することと、 
前記第１の部分の動作ベクトルを、前記第２の部分のベクトルの関数として修正することと
を含む請求項３１に記載のコンピュータ読取可能媒体。
【請求項３３】
オーバーラップしないブロックにそれぞれ、少なくとも１つの動作ベクトルを割り当てることは、
シード動作ベクトルを決定することと、
前記シード動作ベクトルに基づいて、動作ベクトル探索を実行することと
を含む請求項３１に記載のコンピュータ読取可能媒体。
【請求項３４】
前記シード動作ベクトルを決定することは、前記オーバーラップしないブロックの中心を通る動作ベクトルを決めることを含む請求項３３に記載のコンピュータ読取可能媒体。
【請求項３５】
前記シード動作ベクトルに基づいて、前記動作ベクトル探索を実行することは、双方向動作ベクトル探索を実行することを含む請求項３３に記載のコンピュータ読取可能媒体。
【請求項３６】
前記双方向動作ベクトル探索を実行することは、
前記少なくとも１つの前のビデオフレームにおいて前のビデオフレーム探索ブロックを構築することと、
第１の探索範囲を、前記現在のビデオフレームの一部に割り当てることと、
第１の予め定めた基準に基づいて、前記第１の探索範囲において、前記前のビデオフレーム探索ブロックに対する第１のマッチングブロックの探索を実行することと
を含む請求項３５に記載のコンピュータ読取可能媒体。
【請求項３７】
前記双方向動作ベクトル探索を実行することは、
前記現在のビデオフレームにおいて現在のビデオフレーム探索ブロックを構築することと、
第２の探索範囲を、前記少なくとも１つの前のビデオフレームの一部に割り当てることと、
第２の予め定めた基準に基づいて、前記第２の探索範囲において、前記現在のビデオフレーム探索ブロックに対する第２のマッチングブロックの探索を実行することと
を含む請求項３６に記載のコンピュータ読取可能媒体。
【請求項３８】
前記双方向動作ベクトル探索を実行することは、 前記第１のマッチングブロックに基づいて第１の動作ベクトルを決定することを含む請求項３６に記載のコンピュータ読取可能媒体。
【請求項３９】
前記第１の予め定めた基準は、歪み指標に基づく請求項３６に記載のコンピュータ読取可能媒体。
【請求項４０】
前記第１の予め定めた基準は、前記歪み指標を最小化することに基づく請求項３９に記載のコンピュータ読取可能媒体。
【請求項４１】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの絶対差の合計に基づく請求項３９に記載のコンピュータ読取可能媒体。
【請求項４２】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの二乗差の合計に基づく請求項３９に記載のコンピュータ読取可能媒体。
【請求項４３】
前記歪み指標は、人間の視覚体系ベースの指標に基づく請求項３９に記載のコンピュータ読取可能媒体。
【請求項４４】
前記歪み指標は、統計に基づく請求項３９に記載のコンピュータ読取可能媒体。
【請求項４５】
前記送信された１セットの動作ベクトルは、複数の現在のフレーム動作ベクトルと、複数の前のフレーム動作ベクトルとを含む請求項３１に記載のコンピュータ読取可能媒体。
【請求項４６】
現在のビデオフレーム、少なくとも１つの前のビデオフレーム、および送信された１セットの動作ベクトルを使用するビデオフレーム補間のための装置であって、
前記送信された１セットの動作ベクトルの関数として、第１のセットの動作ベクトルを生成する手段と、
複数のオーバーラップしないブロックを持つ中間ビデオフレームを識別する手段と、
オーバーラップしないブロックにそれぞれ、前記第１のセットの動作ベクトルから選択された少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成する手段と、
第２のセットの動作ベクトルを、前記割り当てられた１セットの動作ベクトルの関数として生成する手段と、
前記第２のセットの動作ベクトルを用いてビデオフレームを生成する手段と
を備えた装置。
【請求項４７】
前記送信された１セットの動作ベクトルの関数として、前記第１のセットの動作ベクトルを生成する手段は、
前記送信された１セットの動作ベクトルを、第１の部分の動作ベクトルと、第２の部分の動作ベクトルとに分割する手段と、
前記第１の部分の動作ベクトルを、前記第２の部分のベクトルの関数として修正する手段と
を備えた請求項４６に記載のビデオフレーム補間のための装置。
【請求項４８】
オーバーラップしないブロックにそれぞれに、少なくとも１つの動作ベクトルを割り当てる手段は、
シード動作ベクトルを決定する手段と、
前記シード動作ベクトルに基づいて、動作ベクトル探索を実行する手段と
を備えた請求項４６に記載のビデオフレーム補間のための装置。
【請求項４９】
前記シード動作ベクトルを決定する手段は、前記オーバーラップしないブロックの中心を通る動作ベクトルを決める手段を備えた請求項４８に記載のビデオフレーム補間のための装置。
【請求項５０】
前記シード動作ベクトルに基づいて、前記動作ベクトル探索を実行する手段は、双方向動作ベクトル探索を実行する手段を備えた請求項４８に記載のビデオフレーム補間のための装置。
【請求項５１】
前記双方向動作ベクトル探索を実行する手段は、
前記少なくとも１つの前のビデオフレームにおいて前のビデオフレーム探索ブロックを構築する手段と、
第１の探索範囲を、前記現在のビデオフレームの一部に割り当てる手段と、
第１の予め定めた基準に基づいて、前記第１の探索範囲において、前記前のビデオフレーム探索ブロックに対する第１のマッチングブロックの探索を実行する手段と
を備えた請求項５０に記載のビデオフレーム補間のための装置。
【請求項５２】
前記双方向動作ベクトル探索を実行する手段は、
前記現在のビデオフレームにおいて現在のビデオフレーム探索ブロックを構築する手段と、
第２の探索範囲を、前記少なくとも１つの前のビデオフレームの一部に割り当てる手段と、
第２の予め定めた基準に基づいて、前記第２の探索範囲において、前記現在のビデオフレーム探索ブロックに対する第２のマッチングブロックの探索を実行する手段と
を備えた請求項５１に記載のビデオフレーム補間のための装置。
【請求項５３】
前記双方向動作ベクトル探索を実行する手段は、 前記第１のマッチングブロックに基づいて第１の動作ベクトルを決定する手段を備えた請求項５１に記載のビデオフレーム補間のための装置。
【請求項５４】
前記第１の予め定めた基準は、歪み指標に基づく請求項５１に記載のビデオフレーム補間のための装置。
【請求項５５】
前記第１の予め定めた基準は、前記歪み指標を最小化することに基づく請求項５４に記載のビデオフレーム補間のための装置。
【請求項５６】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの絶対差の合計に基づく請求項５４に記載のビデオフレーム補間のための装置。
【請求項５７】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの二乗差の合計に基づく請求項５４に記載のビデオフレーム補間のための装置。
【請求項５８】
前記歪み指標は、人間の視覚体系ベースの指標に基づく請求項５４に記載のビデオフレーム補間のための装置。
【請求項５９】
前記歪み指標は、統計に基づく請求項５４に記載のビデオフレーム補間のための装置。
【請求項６０】
前記送信された１セットの動作ベクトルは、複数の現在のフレーム動作ベクトルと、複数の前のフレーム動作ベクトルとを含む請求項４６に記載のビデオフレーム補間のための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、一般に、ビデオ圧縮に関し、特に、ブロックベースの低ビットレートビデオのためのフレームレートアップコンバージョン用の方法及び装置に関する。
【背景技術】
【０００２】
低ビットレートビデオ圧縮は、制限された帯域幅リソース、および利用可能帯域幅の変動により、例えば無線ビデオストリーミングおよびビデオ電話通信のような多くのマルチメディアアプリケーションにおいて非常に重要である。低ビットレートにおける帯域幅適応ビデオ符号化は、一時的な分解能を低減することにより達成される。言い換えれば、３０フレーム／秒（ｆｐｓ）のビットストリームを圧縮して送信する代わりに、この一時的な分解能は、半分の１５ｆｐｓにされ、送信ビットレートが低減される。しかしながら、一時的に分解能を低減した結果、復号されたビデオの視覚品質を著しく低下させるモーションジャーキー（jerkiness）のような一時的な領域副作用（artifact）が生じる。
【０００３】
受信機側で十分なフレームレートを表示するために、スキップされたフレームを再生成し、一時的な副作用を低減するフレームレートアップコンバージョン（ＦＲＵＣ）と呼ばれる復元メカニズムが必要とされる。
【０００４】
多くのＦＲＵＣアルゴリズムが提案されている。それは２つのカテゴリーに分類することができる。第１のカテゴリーは、対象の動作を考慮せずに、受信されたビデオフレームのコンビネーションを使用することにより、失われたフレームを補間する。フレーム反復およびフレーム平均化方法が、この部類に入る。これら方法の欠点は、動きがある場合における動作対象のぼけ、「ゴースト」イメージ、及びモーションジャーキーの発生を含む。第１のカテゴリーと比較して、第２のカテゴリーはより高度であり、送信された動作情報を利用する。これは、動作補償（フレーム）補間（ＭＣＩ：motion compensated interpolation）と呼ばれている。
【０００５】
従来技術の図１に例示されるように、ＭＣＩでは、失われたフレーム１０８が、再構築された現在のフレーム１０２、格納されている前のフレーム１０４、および送信された１セットの動作ベクトル１０６に基づいて補間される。再構築された現在のフレーム１０２は、格納されている前のフレーム１０４における対応するブロックを示し、送信された１セットの動作ベクトル１０６に関連付けられているオーバーラップしない１セットのブロック１５０，１５２，１５４，１５６からなる。補間されるフレーム１０８は、現在のフレームと、前のフレームとの対応するピクセルの線形結合か、例えばメジアン演算のような非線形演算かのいずれかで構築される。
【０００６】
ブロックベースのＭＣＩは、補間されるフレーム内に、オーバーラップした（複数の動作軌道が通過する）領域と、ホール（動作軌道が通過しない）領域とをもたらす。図３に示すように、補間されるフレーム３０２は、オーバーラップ領域３０６とホール領域３０４とを含んでいる。これら２つのタイプの望まれない領域が生成される主な理由は次の通りである。
【０００７】
１．動作対象が、厳密な並進運動モデルの下にない。
【０００８】
２．ＭＣＩで使用され、送信される動作ベクトルは、エンコーダ側で利用されるブロックベースの高速動作探索アルゴリズムによって、真の動作軌道を示さないかもしれない。
【０００９】
３．現在のフレーム及び前のフレームにおけるカバーされた背景及びカバーされていない背景。
【００１０】
オーバーラップ領域及びホール領域の補間は、従来のブロックベースの動作補償アプローチにおける主な技術的チャレンジである。これらオーバーラップ領域及びホール領域を埋めるために、中間ぼかし（Median blurring）及び空間補間技術が提案された。しかしながら、これらの方法の欠点は、ぼかし及びブロッキングによる副作用の発生に加え、補間演算の複雑さが増加することである。
【発明の概要】
【００１１】
本特許出願は、本願の譲受人に譲渡され、ここに参照によって明確に組み込まれている２００４年５月４日に出願され、"METHOD AND APPARATUS FOR MOTION COMPENSATED FRAME RATE UP CONVERSION FOR BLOCK-BASED LOW BIT-RATE VIDEO APPLICATION"と題された仮出願番号６０／５６８，３２８、及び２００５年３月２２日に出願され、"METHOD AND APPARATUS FOR MOTION COMPENSATED FRAME RATE UP CONVERSION FOR BLOCK-BASED LOW BIT-RATE VIDEO"と題された仮出願番号６０／６６４，６７９の優先権を主張する。
【００１２】
本実施例は、現在のビデオフレーム、少なくとも１つの前のビデオフレーム、および送信された１セットの動作ベクトルを使用して、補間されるビデオフレームを生成する方法及び装置を提供する。
【００１３】
１つの実施例では、この方法は、送信された１セットの動作ベクトルを平滑化することと、補間されるビデオフレーム内においてオーバーラップしないブロックのそれぞれの中心点について動作ベクトルを決めることと、現在のビデオフレームおよび前のビデオフレーム内における各ブロックについて中心点を決めることと、出力される１セットの動作ベクトルを生成することと、出力される１セットの動作ベクトルを平滑化することと、出力される１セットの動作ベクトルを用いて、補間されるビデオフレームを生成することとの各ステップを含む。
【００１４】
別の実施例では、本装置は、プロセッサによって実行されると、このプロセッサに対して、補間されるビデオフレームを生成する方法を実行させる命令を格納しているコンピュータ読取可能媒体を含んでいる。この方法は、送信された１セットの動作ベクトルを平滑化することと、補間されるビデオフレーム内におけるオーバーラップしないブロックのそれぞれの中心点について動作ベクトルを決めることと、現在のビデオフレームおよび前のビデオフレーム内におけるブロックのそれぞれについて中心点を決めることと、出力される１セットの動作ベクトルを生成することと、出力される１セットの動作ベクトルを平滑化することと、出力される１セットの動作ベクトルを用いて、補間されるビデオフレームを生成することとの各ステップを含む。
【００１５】
また別の実施例では、本装置は、複数のビデオフレームを含む到来ビットストリームを受信するビデオフレームプロセッサを含んでいる。このビデオフレームプロセッサは、少なくとも１つの前のフレームと、現在のフレームとを格納するフレームバッファと、前のフレームに関連付けられている少なくとも１セットの動作ベクトルと、現在のフレームのために送信された複数の動作ベクトルとを格納する動作ベクトルバッファと、動作ベクトルバッファおよびフレームバッファに結合され、送信された複数の動作ベクトルを受信し、出力される第１の複数の動作ベクトルを生成する第１の動作ベクトルプロセッサと、第１の動作ベクトルプロセッサに結合された動作予測モジュールと、モード決定モジュールと、フレームレートアップコンバータとを含んでいる。
【００１６】
その他の目的、特徴、および長所は、以下に示す詳細記述から、当該技術分野における熟練者に明らかになるであろう。しかしながら、この詳細記述及び具体例は、典型的な実施例を示す一方、例示のためであって、限定のためではないことが理解されるべきである。以下に示す記載の範囲内の多くの変更および変形が、本発明の精神から逸脱することなくなされ、本記載は、そのような全ての変形を含むと理解されるべきである。
【図面の簡単な説明】
【００１７】
【図１】図１は、動作補償フレーム補間処理を利用する補間フレームの構築を示す図である。
【図２】図２は、ビデオフレーム内のピクセルに割り当てられた様々なクラスを示す図である。
【図３】図３は、補間されるフレームにおけるオーバーラップ領域およびホール領域を示す図である。
【図４】図４は、ＦＲＵＣシステムのブロック図である。
【図５】図５は、ＦＲＵＣシステムにおける動作ベクトルプロセッサのブロック図である。
【図６】図６は、図４のＦＲＵＣシステムによって実行されるシード（seeded）双方向動作探索を示す図である。
【図７】図７は、ＦＲＵＣシステムの動作の流れ図である。
【発明を実施するための形態】
【００１８】
本発明は、添付図面の参照により、より容易に理解されうる。
【００１９】
同一符番は、幾つかの図面にわたって同一の部分を示している。
【００２０】
本発明の実施例は、復号器に動作予測を用いることにより、補間されるフレーム内に、オーバーラップ領域及びホール領域が生成されることを回避する方法を提供する。１つの実施例では、補間されるフレームを、オーバーラップしないブロックへ分割し、オーバーラップしないブロックのそれぞれに、動作ベクトルのペアを割り当てることによって、補間されるフレームにおける望まれないオーバーラップ領域及びホール領域の存在が縮小されうる。これらの動作ベクトルは、復号器内の動作予測モジュールを用いることにより予測される。
【００２１】
既に述べたように、動作補償フレーム補間アルゴリズムの性能は、エンコーダから送信される動作ベクトルの精度に大いに依存する。送信された動作ベクトルは、次の理由により、関連する動作対象の真の動作軌道を示さないかもしれない。
【００２２】
１．ブロックベースの動作予測アルゴリズムの全てにおいて、並進のみの厳密形状動作モデルを使用すると仮定することは、自然に動いている物体を表すのに十分ではない。
【００２３】
２．動作予測は、計算上非常に労力のかかる処理である。ほとんどのビデオエンコーダは、結果として得られる動作ベクトルの精度を犠牲にして、動作予測速度を改善するために、高速動作予測アルゴリズムを使用している。
【００２４】
３．現在のフレーム又は前のフレームに、カバーされた領域又はカバーされない領域が存在する場合、動作予測は、信頼性の低いベクトル（すなわち、ブロックの動作を正確に記述しない動作ベクトル）が得られる結果となる。
【００２５】
４．多くの動作予測技術は、歪み尺度として、絶対差の合計値（ＳＡＤ：sum of absolute differences values）／二乗差の合計値（ＳＳＤ：sum of squared differences values）を用いるピクセルマッチング処理を実行する。しかしながら、ＳＡＤ／ＳＳＤは統計的指標であり、人間の視覚感覚において歪みを表わさないかもしれない。従って、そのような動作予測は、真の動作方向を表わさないかもしれない。
【００２６】
５．多くの動作予測アルゴリズムは、レート最小化の観点から最適化されており、視覚品質の観点から最適化されていない。
【００２７】
補間されるフレームにおける誤差は、動作ベクトル誤差分散に直接関連するので、ブロックベースのＭＣＩは、圧縮後の動作ベクトルの不確定さの問題の解決を試みる。動作ベクトル平滑化技術の適用によって、アウトライアー（outlier）な動作ベクトルによって引き起こされる、補間されるフレーム内のブロッキング副作用は減るであろう。１つの実施例では、ここに記述されたシステムは更に、ピクセルレベルの代わりに、動作ベクトルレベル上でメジアン演算を実行することにより、ぼかしを低減する。
【００２８】
図４は、到来するビットストリーム４０２を受信し、バイナリ復号器４０６を使用して（１）格納されている動作ベクトルバッファ４１６内に配置された１セットの動作ベクトル４０８と、（２）残り（residue）とを得るＦＲＵＣシステム４００のブロック図である。残り４１０は、逆量子化／逆変換モジュール４１２によって演算される。その結果は、格納されている前のフレームバッファ４１８に格納されている前のフレームと結合され、現在のフレームが生成される。この現在のフレームは、現在のフレームバッファ４２０内に格納される。格納されている動作ベクトルバッファ４１６、格納されているフレームバッファ４１８、および現在のフレームバッファ４２０を含む、ＦＲＵＣアーキテクチャ４００のサブ部分４５０は、１つの実施例の実現に関連する具体的な機能モジュールを含んでいる。具体的には、サブ部分４５０は、動作ベクトルプロセッサ４２２、シード双方向動作予測モジュール４２４、第２の動作ベクトルプロセッサ４２６、モード決定モジュール４２８、フレームレートアップコンバータ（ＦＲＵＣ）モジュール４３０、および後処理ユニット４３２を含んでいる。サブ部分４５０のモジュールの動作を、図５〜図７の記載を参照して以下に述べる。
【００２９】
図７は、１つの実施例に従ったＦＲＵＣアーキテクチャ４００の動作のフロー図である。ステップ７０２で始まり、動作ベクトルプロセッサ４２２が、格納されている動作ベクトルバッファ４１６に格納されている現在のフレーム及び前のフレームから送信される動作ベクトルの動作ベクトル平滑化処理を行なう。動作ベクトルプロセッサ４２２が詳述された図５に示すように、動作ベクトルプロセッサ４２２は、入力として、格納されている動作ベクトルバッファ４１６から、動作ベクトルを受け取る。１つの実施例では、この入力される動作ベクトルは、復号された現在のフレームの動作ベクトルである。別の実施例では、この入力される動作ベクトルは、現在のフレーム、および復号された前の任意のフレームの両方からの動作ベクトルを含んでいる。これは、動作予測に対してより現実的でより柔軟なモデルを提供する。この平滑化処理は、後で詳しく説明するように、送信された１セットの動作ベクトルにおけるアウトライアーな動作ベクトルを規格化することを含んでいる。１つの実施例では、後で詳しく説明するように、第１のセットの動作ベクトルが、送信された１セットの動作ベクトルの関数に基づいて生成される、ここでは、送信された１セットの動作ベクトルがまず２つの部分へ分割される。そして、この動作ベクトルの第１の部分は、例えばメジアン演算に基づいて、動作ベクトルの第２の部分に基づいて修正される。
【００３０】
現在のフレームと前のフレームとの動作ベクトルの大きさの差が比較され、動作加速度が導出されるので、現在のフレームの動作ベクトルと、前のフレームの動作ベクトルとを組み合わせることによって、不変の動作モデルを、動作加速度を含むように拡張することができる。より柔軟な動作モデルは、補間されるフレームについてより正確な動作軌道を与える。前のフレームの動作ベクトルが逆にされた場合（外挿された動作ベクトルとも称される）、この逆にされた動作ベクトルは、前のフレームから現在のフレームを指し、逆方向の動作ベクトルとして使用されうる。１つの実施例では、この動作が一定の場合、逆方向の動作ベクトル、および正方向の動作ベクトル（現在のフレームの動作ベクトル）は、互いに一列に並び、反対方向を指している。正方向の動作ベクトルと逆方向の動作ベクトルとが一列に並ばない場合、この相違は、動作加速度によって引き起こされると仮定されよう。動作ベクトル平滑化処理が完了した後、処理はステップ７０４に続く。
【００３１】
動作ベクトルプロセッサ４２２は、動作ベクトルスケーリングモジュール５０２を含む。動作ベクトルスケーリングモジュール５０２は、現在のフレームと前のフレームとの間として補間されるフレームの距離に基づいて、入力された動作ベクトルのスケーリングを実行し、計算された動作加速度を考慮する。さらに、動作ベクトルプロセッサ４２２は、可変ブロックサイズ動作ベクトルをサポートするビデオコーデックのためにマージ関数を提供する。そのような１つの規格は、１６×１６，１６×８，８×１６，８×８，８×４，４×８，および４×４シェープの動作ベクトルをサポートする国際電気通信連合、電気通信標準化部門（ＩＴＵ−Ｔ：International Telecommunications Union, Telecommunications Standardization Sector）によって発行されているＨ．２６４規格である。このマージ関数は、幾つかの小さなブロックサイズの動作ベクトルを、より大きなブロックサイズの動作ベクトルへマージする。このマージ関数によって得られる好適なサイズのシェープは、コンテンツに依存するが、１つの実施例では、このマージ関数に、８×８のブロックサイズが使用される。１つの実施例では、マージ関数は、平均関数として実施される。線形動作（等速）モデルの場合、スケールされた動作ベクトルの大きさは、現在のフレームに対する補間されるフレームと、前のフレームに対する現在のフレームとの間の距離比に関して、現在の動作ベクトルの大きさに比例している。一方、その方向は、現在のフレームの動作ベクトルの方向と同じである。非線形動作（動作加速度）モデルの場合、スケールされた動作ベクトルの大きさ及び方向は、現在のフレームと前のフレームとの間の補間されるフレームの距離と、計算された動作加速度との両方に依存する。別の実施例では、マージ関数が、メジアン関数として実施される。また別の実施例では、マージ関数が、重み付けられた合計関数として実施される。また、別の実施例では、異なる関数が組み合わされてマージ関数を実現する。本発明の実施例はまた、エンコーダが、復号器内のＦＲＵＣモジュールを支援するために追加情報を送るように構成されたエンコーダ支援ＦＲＵＣ（ＥＡ−ＦＲＵＣ）技術に適用可能であることが注目されるべきである。例えば、エンコーダは、ＦＲＵＣ動作に関して「困難」であるマクロブロックのためのＦＲＵＣ命令、残り係数（coefficient residues）、又は動作ベクトルを送ることができる。
【００３２】
動作ベクトルラベリングモジュール５０４は、動作ベクトルスケーリングモジュール５０２からのスケールされた入力動作ベクトルを処理して、このスケールされた入力動作ベクトルを分類する。１つの実施例では、この分類は、動作ベクトルプロセッサ４２２への他の入力から得られたデータである復号されたフレームデータからの補足情報５２２に基づく。限定される訳ではないが、補足情報５２２によって提供される分類情報は、ピクセル分類、興味領域、テクスチャ情報の変動、輝度背景値の変動等を含む。動作ベクトル分類に使用されることに加えて、この情報は、適応性のある平滑化アルゴリズムのためのガイダンスを提供しうる。
【００３３】
１つの実施例では、動作ベクトルの大きさおよび方向によって、入力動作ベクトルは、特定の動作ベクトルクラスでラベルされる。例えば、動作ベクトルが、予め定められたしきい値に対して小さな動作ベクトルであり、この動作ベクトルが、北を指している場合、この動作ベクトルは、小さな北のクラスとしてラベルされる。１つの実施例では、このクラスは、大、中、小といった大きさに関するのみならず、北、南、西、東（あるいはこれらの組み合わせ）といった方向を含んでいる。他の実施例では、その他の適切なクラスが使用されてもよい。
【００３４】
コンテンツ適応動作ベクトル分類モジュール５０６は、動作ベクトルラベリングモジュール５０４からのラベル情報と、復号されたデータからのコンテンツ情報とに基づいて、動作ベクトルが、アウトライアーベクトルであるかを判定する。１つの実施例では、現在の動作ベクトルの大きさおよび方向は、現在のベクトルを囲む他の動作ベクトルの大きさおよび方向と比較される。例えば、近隣の動作ベクトルが、大きな動作ベクトル（大きな大きさ）としてラベルされ、北を指している一方、現在の動作ベクトルが、小さな動作ベクトル（小さな大きさ）としてラベルされ、南を指している場合、現在の動作ベクトルは、アウトライアー動作ベクトルとして印付けられる。別の実施例では、現在の動作ベクトルが指しているピクセルのクラスタイプが分析される。図２は、移動オブジェクト（ＭＯ）２０８、カバーされていない背景（ＵＢ）２０４、カバーされた背景（ＣＢ）２１０、静止背景（ＳＢ）２０２、及びＭＣＩのためのエッジ２０６の各クラスを含む異なるピクセルクラスの例示を与えている。ここで、矢印２１２のセットは、３つの例示されたフレームＦ（ｔ−１），Ｆ（ｔ），及びＦ（ｔ＋１）におけるピクセルの動作軌道を示す。具体的には、ＭＣＩの文脈では、ビデオフレーム内部のピクセルはそれぞれ、上記リストされた５つのクラスのうちの１つに分類することができる。このクラスタイプ情報を使用して、現在の動作ベクトルが、現在のフレームの動作オブジェクトから、前の参照フレーム内の静止背景へと向けられている場合、現在の動作ベクトルは、アウトライアーとして印付けられる。
【００３５】
復号されたデータからのコンテンツ情報と、処理された入力動作ベクトルのラベリングとは、コンテンツ適応平滑化フィルタ５０８内の適応ウィンドウサイズ選択アルゴリズムに必要とされる入力を提供する。前の処理からのアウトライアー動作ベクトルの除去と、ローパスフィルタ全体の動作とは、選択された処理ウィンドウに基づいて行なわれる。１つの実施例では、図５のコンテンツ適応平滑化フィルタ５０８内で実施される平滑法は、メジアン演算である。他の実施例では、このメジアン演算は、中間（平均）又はガウシアンタイプフィルタに置き換えることができる。更に、他のタイプの規格化／線形／非線形フィルタが使用されてもよい。
【００３６】
更に以下に述べられるように、出力される動作ベクトルは、シード双方向動作予測処理における動作ベクトルの中心を予測するために使用される。このステップの重要な点は、補間されるフレームを、オーバーラップしないブロックへ分割することである。既に述べたように、次のステップは、前のフレーム及び現在のフレームにおける対応する中心ピクセルと、それらをつなげており、補間されるフレームの各ブロックの中心点が通る動作軌道とを決定する。補間されるブロックのものと同じサイズのブロックが、前のフレーム及び現在のフレーム内で見い出されるピクセルの中心の周りに構築される。１つの実施例では、この構築されたブロックは、オーバーラップするかもしれない。別の実施例では、この構築されたブロックは、オーバーラップしないかもしれない。更に別の実施例では、この構築されたブロックは、オーバーラップするかもしれないし、オーバーラップしないかもしれない。
【００３７】
再び図７に示すように、ステップ７０４では、補間されるフレームにおけるオーバーラップしないブロックの各々について、シード双方向動作予測モジュール４２４によって、中心ピクセルの動作ベクトルが決定される。この中心ピクセルの動作ベクトルは、図６のシード動作ベクトル６２０によって示される。そして、処理は、ステップ７０６に続く。
【００３８】
ステップ７０６では、双方向動作予測モジュール４２４が、前のフレーム及び現在のフレームのブロックの中心点を決定する。前のフレーム及び現在のフレームの各ブロックは、補間されるフレームにおけるオーバーラップしないブロックに相当する。補間されるブロックの中心点は、シード動作ベクトル６２０上にある。
【００３９】
ステップ７０８では、双方向動作探索が行われ、シード動作ベクトル６２０を中心とする正方向動作ベクトル及び逆方向動作ベクトルが発見される。この探索処理を図６を参照して説明する。図６には、現在のフレーム６０２、前のフレーム６０４、および補間されるフレーム６０８が示されている。１つの実施例では、探索エンジン６１８，６１６が、現在のフレーム及び前のフレームそれぞれにおいて、構築された各ブロック６１４，６１２の周りに適応して割り当てられる。そして、構築された各ブロックを中心とする現在のフレームおよび前のフレームの間で、双方向動作推定が実行される。現在のフレームから前のフレームまでの結果として得られる動作ベクトルは、正方向動作ベクトルと呼ばれる。この動作ベクトルは、現在のフレーム及び前のフレームからの補間されるフレームの距離と、予測された動作加速度モデルとに基づいてスケールされる。このスケールされ、補間されるブロックに割り当てられた動作ベクトルは、正方向動作ベクトルとしてラベルされる。同様に、逆方向動作ベクトルも、前のフレームから現在のフレームへ示される補間されるブロックに割り当てられる。図６に示すように、正方向動作ベクトルは、正方向動作ベクトル６２２によって示され、逆方向動作ベクトルは、逆方向動作ベクトル６２４として示される。したがって、正方向動作ベクトル６２２は、ある歪み指標を最小化することに関連して、探索領域６１６内にブロック６１４を対応させることによって得られる。１つの実施例では、最小化される歪み指標は、絶対値の合計（ＳＡＤ：sum of absolute value）かもしれない。別の実施例では、最小化される歪み指標は、二乗差の合計値（ＳＳＤ：sum of squared differences value）である。他の実施例では、統計及び人間の視覚体系（ＨＶＳ：human visual systems）ベースの指標のようなその他の歪み指標が使用される。同様に、探索領域６１８内にブロック６１２をマッチングさせることにより逆方向動作ベクトル６２４が得られる。１つの実施例では、この動作は、復号器における複雑さを低減し、必要な計算リソースを減らすために、補間されるフレーム中の「ホール」領域に限定されうる。
【００４０】
ステップ７１０では、第２の動作ベクトルプロセッサ４２６によって、ステップ７０８から生成され出力された動作ベクトルについて第２の動作ベクトル平滑化処理が行われる。１つの実施例では、２つの個別の動作ベクトルプロセッサが使用される。なぜなら、これらによって実行される入力（動作ベクトル場）及び機能は異なるからである。例えば、第２の動作ベクトルプロセッサ４２６が、これらの機能を実行しない間、動作ベクトルプロセッサ４２２は、上述したような動作ベクトルスケーリング及びマージ機能を実行する。１つの実施例では、第２の動作ベクトルプロセッサ４２６は、入力された全ての動作ベクトルについて３×３メジアンフィルタリングを行なう。ここでは、現在のブロックの近隣にある８つのブロックの動作ベクトルが、メジアン演算によって、現在のブロックの動作ベクトルと結合される。別の実施例では、動作ベクトルプロセッサ４２２が、動作ベクトルプロセッサ４２６によって提供される機能を実行することができるので、第２の動作ベクトル処理ステップを提供するために、同じハードウェアが使用されうる。第２の動作ベクトル平滑化処理が行なわれた後、処理はステップ７１２に続く。
【００４１】
動作ベクトル処理の第２段階は、例えば正方向動作ベクトル６２２及び逆方向動作ベクトル６２４のように、双方向動作予測モジュール４２４から得られる補間されるフレームの正方向動作ベクトル及び逆方向動作ベクトルの両方に適用される。平滑化された動作ベクトルは、動作補償補間ステップで使用される。歪み基準に基づいて、以下に示すように、補間されるブロックについてモードを決定することができる。双方向補償のために、適応フィルタを構築することができる。１つの実施例では、最も簡単なフィルタは、両線形フィルタである。他の実施例では、別のフィルタが使用されてもよい。
【００４２】
ステップ７１２では、モード決定モジュール４２８が、次のステップの特定のブロックのためにどの動作ベクトルが使用されるべきかを決定する。１つの実施例では、正方向動作ベクトルのみが使用される。別の実施例では、逆方向動作ベクトルのみが使用される。また別の実施例では、正方向動作ベクトルと逆方向動作ベクトルとが使用される。一般に、モード決定モジュール４２８は、以下に示す個々の規則、又はそれらの組み合わせに基づいて、どの動作ベクトルが使用されるのかを決定する。
【００４３】
１）各動作ベクトルに関連した歪み指標。例えば、各動作ベクトルがＳＡＤ値を持つ動作推定では、前述の歪み指標としてＳＡＤ値が使用されうる。この歪み指標を用いて、簡単な比較がなされ、どの動作ベクトルが使用されるのかが決定される。１つの実施例では、最小の歪み指標を持つ動作ベクトルが選択されるであろう。
【００４４】
２）コンテンツ分類情報。特に、１つの動作ベクトルの開始点及び終了点が、異なるコンテンツに属する場合には、この動作ベクトルは信頼できず、最終的なＦＲＵＣ補間処理のために用いられないであろう。
【００４５】
３）２つの（正方向及び逆方向）動作ベクトルが一列になること。これら２つの動作ベクトルが一列にならない場合は、両動作ベクトル補間を選択しないが、代わりに、より小さな歪み指標を持つ動作ベクトルを用いる。
【００４６】
ステップ７１４では、動作補償された補間（フレームレートアップコンバージョン）が、フレームレートアップコンバータユニット４３０によって行なわれる。１つの実施例では、この補間は、現在のフレームと前のフレームとの間に新しいフレームを生成する。別の実施例では、この補間は、Ｎ＞２ベースの場合、ＦＲＵＣで行われる。ここで、ＦＲＵＣユニット４３０は、コンテキスト／コンテンツ及び／又は一時的冗長性に従い、２より多いフレームの間で補間されるであろう。一般に、例えば、動作フィールドが規則的であり、ほぼ一定の形状を維持するような近隣フレームの間で、一時的冗長性が高い場合、より多くのフレームがスキップされ、補間されるＮ＞２個のフレームが、適切な知覚品質を保つことができる。通常、小さな動作（コンテキスト）、あるいは静止背景が支配的なシーケンス（例えばトークショークリップ）は、Ｎ＞２  ＦＲＵＣに対する良好な候補である。Ｎ＞２  ＦＲＵＣでは、Ｎ値は、エンコーダ側で適応して決定されるコンテンツでありうる。
【００４７】
ステップ７１６では、後処理ユニット４３２が、ステップ７１４からの補間されるフレームについて後処理動作を実行し、あらゆるブロッキング副作用を低減する。ＦＲＵＣアルゴリズムの最終段階は、ブロックベースの動作補償に関連付けられた潜在的なブロッキング副作用を削除するための、補間フレームの後処理である。１つの実施例では、オーバーラップしたブロック動作補償（ＯＢＭＣ：overlapped block motion compensation）が用いられる。別の実施例では、この目的のために、デブロッキングフィルタリングが使用される。補間されるフレームの生成は、このステップで完了する。
【００４８】
現在、アプリケーションは、一般に、ある形式又は別の形式のコンテンツの利用可能性、あるいはネットワーク又はオペレータ要求、あるいは複数のビデオ符号化技術（標準ベース及び独自仕様）の共存によって、複数のコーデックに対するサポートを必要とする。特に、ハンドヘルドなビデオ電話通信、ビデオカメラ、およびカムコーダーアプリケーションのような二方式通信及び双方向ビデオ通信の到来は、マルチメディアプロセッサ上へのビデオエンコーダおよびデコーダの両方の実装のニーズを生み出した。
【００４９】
ハードウェア技術の進歩により、ビデオ受信デバイスは、計算機能が強化されている。ハイエンドデバイスの中には、デコーダの内部に、動作予測ハードウェアモジュールを持っているものもある。これらの状況の下では、ＦＲＵＣ処理に動作予測を含むことによって、デコーダハードウェアリソースを最適利用し、補間されるフレームの視覚的品質を改良するだろう。
【００５０】
様々な実施例で記載したＦＲＵＣ処理の可能なアプリケーションは以下を含む。
【００５１】
１．低ビットレートアプリケーション用の受信機デバイスについて、一時的に分解能を増加させることにより、視覚体験を改良すること。
【００５２】
２．同じビデオ符号化規格の異なるレベル、又は異なる規格間のビデオフォーマットトランスコーディング。
【００５３】
ここで開示された実施例に関連して記述された方法やアルゴリズムのステップは、ハードウェアや、プロセッサによって実行されるソフトウェアモジュールや、これらの組み合わせによって直接的に具現化される。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、あるいは当該技術分野で知られているその他の型式の記憶媒体に収納されうる。好適な記憶媒体は、プロセッサがそこから情報を読み取り、またそこに情報を書き込むことができるようにプロセッサに結合される。または、記憶媒体はプロセッサに統合されうる。このプロセッサと記憶媒体は、ＡＳＩＣ内に存在することができる。ＡＳＩＣは、ユーザ端末内に存在することもできる。あるいはこのプロセッサと記憶媒体は、ユーザ端末内のディスクリート部品として存在しうる。
【００５４】
ここで説明した方法は、当該技術分野における通常の熟練者のうちの何れかによって知られた様々な通信ハードウェア、プロセッサ、及びシステム上で実施されうることが注目されるべきである。例えば、ここで説明したように、クライアントが動作するための一般的な要件は、クライアントが、コンテンツを表示するためのディスプレイと、クライアントの動作を制御するためのプロセッサと、クライアントの動作に関連するプログラム及びデータを格納するためのメモリとを持つことである。１つの実施例では、クライアントは携帯電話である。別の実施例では、クライアントは、通信機能を有するハンドヘルドコンピュータである。更に別の実施例では、クライアントは、通信機能を有するパーソナルコンピュータである。更に、ここで説明したような様々な実施例を実現するために、例えばＧＰＳ受信機のようなハードウェアが必要に応じてクライアント内に組み込まれうる。ここで開示された実施例に関連して記述された様々の説明的論理回路、論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、アプリケーションに固有の集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいはその他のプログラマブル論理デバイス、ディスクリートゲートあるいはトランジスタロジック、ディスクリートハードウェア部品、又は上述された機能を実現するために設計された上記何れかの組み合わせを用いて実現又は実行されうる。汎用プロセッサとしてマイクロプロセッサを用いることが可能であるが、代わりに、従来技術によるプロセッサ、コントローラ、マイクロコントローラ、あるいは状態機器を用いることも可能である。
【００５５】
プロセッサは、たとえばＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアに接続された１つ以上のマイクロプロセッサ、またはこのような任意の構成である計算デバイスの組み合わせとして実現することも可能である。
【００５６】
ここで開示された実施例に関連して記述された様々の説明的論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、アプリケーションに固有の集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいはその他のプログラマブル論理デバイス、 ディスクリートゲートあるいはトランジスタロジック、 ディスクリートハードウェア部品、 又は上述された機能を実現するために設計された上記何れかの組み合わせを 用いて実現又は実行されうる。汎用プロセッサとしてマイクロプロセッサを用いることが可能であるが、代わりに、従来技術によるプロセッサ、コントローラ、マイクロコントローラ、あるいは状態機器を用いることも可能である。
【００５７】
プロセッサは、たとえばＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアに接続された１つ以上のマイクロプロセッサ、またはこのような任意の構成である計算デバイスの組み合わせとして実現することも可能である。
【００５８】
ここで説明した実施例は、典型的な実施例である。当該技術分野における熟練者は、ここで開示した発明的概念から逸脱することなく、上述した実施例の、及び上述した実施例から発する多くを活用することができる。これらの実施例への様々な変形例もまた、当該技術分野における熟練者に対しては明らかであって、ここで定義された一般的な原理は、本発明の主旨または範囲を逸脱せずに、例えばインスタントメッセージングサービスや任意の一般的な無線データ通信アプリケーションにおける他の実施例にも適用されうる。このように、本発明の範囲は、ここで示された実施例に制限されるものではなく、ここで記載された原理と新規の特徴に一致した最も広い範囲に相当するものを意図している。用語「典型的」は、ここでは、「例、インスタンス、あるいは実例となる」ことを意味するために限定的に用いられる。ここで「典型的」と記載されたあらゆる実施例は、他の実施例よりも好適であるとか、有利であるとか必ずしも解釈される必要はない。
【図１】
2011061811.tif 000003
【図２】
2011061811.tif 000004
【図３】
2011061811.tif 000005
【図４】
2011061811.tif 000006
【図５】
2011061811.tif 000007
【図６】
2011061811.tif 000008
【図７】
2011061811.tif 000009
【手続補正書】
【提出日】平成22年11月5日(2010.11.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
現在のビデオフレーム、少なくとも１つの前のビデオフレーム、および送信された１セットの動作ベクトルを使用するビデオフレーム補間方法を実施するように構成された少なくとも１つのプロセッサであって、前記方法は、
前記送信された１セットの動作ベクトルの関数として、第１のセットの動作ベクトルを生成することと、
複数のオーバーラップしないブロックを持つ中間ビデオフレームを識別することと、
オーバーラップしないブロックにそれぞれ、前記第１のセットの動作ベクトルから選択された少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成することと、
第２のセットの動作ベクトルを、前記割り当てられた１セットの動作ベクトルの関数として生成することと、
前記第２のセットの動作ベクトルを用いてビデオフレームを生成することと
を含み、
前記少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成することは、
シード動作ベクトルを決定することと、
前記シード動作ベクトルに基づいて、動作ベクトル探索を実行することと
を含む少なくとも１つのプロセッサ。
【請求項２】
前記送信された１セットの動作ベクトルの関数として、前記第１のセットの動作ベクトルを生成することは、
前記送信された１セットの動作ベクトルを、第１の部分の動作ベクトルと、第２の部分の動作ベクトルとに分割することと、
前記第１の部分の動作ベクトルを、前記第２の部分のベクトルの関数として修正することと
を含む請求項１に記載の少なくとも１つのプロセッサ。
【請求項３】
前記シード動作ベクトルを決定することは、前記オーバーラップしないブロックの中心を通る動作ベクトルを決めることを含む請求項１に記載の少なくとも１つのプロセッサ。
【請求項４】
前記シード動作ベクトルに基づいて、前記動作ベクトル探索を実行することは、双方向動作ベクトル探索を実行することを含む請求項１に記載の少なくとも１つのプロセッサ。
【請求項５】
前記双方向動作ベクトル探索を実行することは、
少なくとも１つの前のビデオフレームにおいて前のビデオフレーム探索ブロックを構築することと、
第１の探索範囲を、前記現在のビデオフレームの一部に割り当てることと、
第１の予め定めた基準に基づいて、前記第１の探索範囲において、前記前のビデオフレーム探索ブロックに対する第１のマッチングブロックの探索を実行することと
を含む請求項４に記載の少なくとも１つのプロセッサ。
【請求項６】
前記双方向動作ベクトル探索を実行することは、
前記現在のビデオフレームにおいて現在のビデオフレーム探索ブロックを構築することと、
第２の探索範囲を、前記少なくとも１つの前のビデオフレームの一部に割り当てることと、
第２の予め定めた基準に基づいて、前記第２の探索範囲において、前記現在のビデオフレーム探索ブロックに対する第２のマッチングブロックの探索を実行することと
を含む請求項５に記載の少なくとも１つのプロセッサ。
【請求項７】
前記双方向動作ベクトル探索を実行することは、前記第１のマッチングブロックに基づいて第１の動作ベクトルを決定することを含む請求項５に記載の少なくとも１つのプロセッサ。
【請求項８】
前記第１の予め定めた基準は、歪み指標に基づく請求項５に記載の少なくとも１つのプロセッサ。
【請求項９】
前記第１の予め定めた基準は、前記歪み指標を最小化することに基づく請求項８に記載の少なくとも１つのプロセッサ。
【請求項１０】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの絶対差の合計に基づく請求項８に記載の少なくとも１つのプロセッサ。
【請求項１１】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの二乗差の合計に基づく請求項８に記載の少なくとも１つのプロセッサ。
【請求項１２】
前記歪み指標は、人間の視覚体系ベースの指標に基づく請求項８に記載の少なくとも１つのプロセッサ。
【請求項１３】
前記歪み指標は、統計に基づく請求項８に記載の少なくとも１つのプロセッサ。
【請求項１４】
前記送信された１セットの動作ベクトルは、複数の現在のフレーム動作ベクトルと、複数の前のフレーム動作ベクトルとを含む請求項１に記載の少なくとも１つのプロセッサ。
【請求項１５】
現在のビデオフレーム、少なくとも１つの前のビデオフレーム、および送信された１セットの動作ベクトルを使用するビデオフレーム補間方法であって、
前記送信された１セットの動作ベクトルの関数として、第１のセットの動作ベクトルを生成することと、 
複数のオーバーラップしないブロックを持つ中間ビデオフレームを識別することと、
オーバーラップしないブロックにそれぞれ、前記第１のセットの動作ベクトルから選択された少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成することと、 
第２のセットの動作ベクトルを、前記割り当てられた１セットの動作ベクトルの関数として生成することと、
前記第２のセットの動作ベクトルを用いてビデオフレームを生成することと
を含み、
前記少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成することは、
シード動作ベクトルを決定することと、 
前記シード動作ベクトルに基づいて、動作ベクトル探索を実行することと
を含む方法。
【請求項１６】
前記送信された１セットの動作ベクトルの関数として、前記第１のセットの動作ベクトルを生成することは、 
前記送信された１セットの動作ベクトルを、第１の部分の動作ベクトルと、第２の部分の動作ベクトルとに分割することと、
前記第１の部分の動作ベクトルを、前記第２の部分のベクトルの関数として修正することと
を含む請求項１５に記載のビデオフレーム補間方法。
【請求項１７】
前記シード動作ベクトルを決定することは、前記オーバーラップしないブロックの中心を通る動作ベクトルを決めることを含む請求項１５に記載のビデオフレーム補間方法。
【請求項１８】
前記シード動作ベクトルに基づいて、前記動作ベクトル探索を実行することは、双方向動作ベクトル探索を実行することを含む請求項１５に記載のビデオフレーム補間方法。
【請求項１９】
前記双方向動作ベクトル探索を実行することは、
前記少なくとも１つの前のビデオフレームにおいて前のビデオフレーム探索ブロックを構築することと、
第１の探索範囲を、前記現在のビデオフレームの一部に割り当てることと、
第１の予め定めた基準に基づいて、前記第１の探索範囲において、前記前のビデオフレーム探索ブロックに対する第１のマッチングブロックの探索を実行することと
を含む請求項１８に記載のビデオフレーム補間方法。
【請求項２０】
前記双方向動作ベクトル探索を実行することは、
前記現在のビデオフレームにおいて現在のビデオフレーム探索ブロックを構築することと、
第２の探索範囲を、前記少なくとも１つの前のビデオフレームの一部に割り当てることと、
第２の予め定めた基準に基づいて、前記第２の探索範囲において、前記現在のビデオフレーム探索ブロックに対する第２のマッチングブロックの探索を実行することと
を含む請求項１９に記載のビデオフレーム補間方法。
【請求項２１】
前記双方向動作ベクトル探索を実行することは、前記第１のマッチングブロックに基づいて第１の動作ベクトルを決定することを含む請求項１９に記載のビデオフレーム補間方法。
【請求項２２】
前記第１の予め定めた基準は、歪み指標に基づく請求項１９に記載のビデオフレーム補間方法。
【請求項２３】
前記第１の予め定めた基準は、前記歪み指標を最小化することに基づく請求項２２に記載のビデオフレーム補間方法。
【請求項２４】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの絶対差の合計に基づく請求項２２に記載のビデオフレーム補間方法。
【請求項２５】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの二乗差の合計に基づく請求項２２に記載のビデオフレーム補間方法。
【請求項２６】
前記歪み指標は、人間の視覚体系ベースの指標に基づく請求項２２に記載のビデオフレーム補間方法。
【請求項２７】
前記歪み指標は、統計に基づく請求項２２に記載のビデオフレーム補間方法。
【請求項２８】
前記送信された１セットの動作ベクトルは、複数の現在のフレーム動作ベクトルと、複数の前のフレーム動作ベクトルとを含む請求項１５に記載のビデオフレーム補間方法。
【請求項２９】
プロセッサによって実行された場合、現在のビデオフレーム、少なくとも１つの前のビデオフレーム、および送信された１セットの動作ベクトルを使用するビデオフレーム補間方法を前記プロセッサに実施させる格納済命令を有するコンピュータ読取可能媒体であって、前記方法は、
前記送信された１セットの動作ベクトルの関数として、第１のセットの動作ベクトルを生成することと、
複数のオーバーラップしないブロックを持つ中間ビデオフレームを識別することと、
オーバーラップしないブロックにそれぞれ、前記第１のセットの動作ベクトルから選択された少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成することと、
第２のセットの動作ベクトルを、前記割り当てられた１セットの動作ベクトルの関数として生成することと、
前記第２のセットの動作ベクトルを用いてビデオフレームを生成することと
を含み、
前記少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成することは、
シード動作ベクトルを決定することと、
前記シード動作ベクトルに基づいて、動作ベクトル探索を実行することと
を含むコンピュータ読取可能媒体。
【請求項３０】
前記送信された１セットの動作ベクトルの関数として、前記第１のセットの動作ベクトルを生成することは、
前記送信された１セットの動作ベクトルを、第１の部分の動作ベクトルと、第２の部分の動作ベクトルとに分割することと、 
前記第１の部分の動作ベクトルを、前記第２の部分のベクトルの関数として修正することと
を含む請求項２９に記載のコンピュータ読取可能媒体。
【請求項３１】
前記シード動作ベクトルを決定することは、前記オーバーラップしないブロックの中心を通る動作ベクトルを決めることを含む請求項２９に記載のコンピュータ読取可能媒体。
【請求項３２】
前記シード動作ベクトルに基づいて、前記動作ベクトル探索を実行することは、双方向動作ベクトル探索を実行することを含む請求項２９に記載のコンピュータ読取可能媒体。
【請求項３３】
前記双方向動作ベクトル探索を実行することは、
前記少なくとも１つの前のビデオフレームにおいて前のビデオフレーム探索ブロックを構築することと、
第１の探索範囲を、前記現在のビデオフレームの一部に割り当てることと、
第１の予め定めた基準に基づいて、前記第１の探索範囲において、前記前のビデオフレーム探索ブロックに対する第１のマッチングブロックの探索を実行することと
を含む請求項３２に記載のコンピュータ読取可能媒体。
【請求項３４】
前記双方向動作ベクトル探索を実行することは、
前記現在のビデオフレームにおいて現在のビデオフレーム探索ブロックを構築することと、
第２の探索範囲を、前記少なくとも１つの前のビデオフレームの一部に割り当てることと、
第２の予め定めた基準に基づいて、前記第２の探索範囲において、前記現在のビデオフレーム探索ブロックに対する第２のマッチングブロックの探索を実行することと
を含む請求項３３に記載のコンピュータ読取可能媒体。
【請求項３５】
前記双方向動作ベクトル探索を実行することは、 前記第１のマッチングブロックに基づいて第１の動作ベクトルを決定することを含む請求項３３に記載のコンピュータ読取可能媒体。
【請求項３６】
前記第１の予め定めた基準は、歪み指標に基づく請求項３３に記載のコンピュータ読取可能媒体。
【請求項３７】
前記第１の予め定めた基準は、前記歪み指標を最小化することに基づく請求項３６に記載のコンピュータ読取可能媒体。
【請求項３８】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの絶対差の合計に基づく請求項３６に記載のコンピュータ読取可能媒体。
【請求項３９】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの二乗差の合計に基づく請求項３６に記載のコンピュータ読取可能媒体。
【請求項４０】
前記歪み指標は、人間の視覚体系ベースの指標に基づく請求項３６に記載のコンピュータ読取可能媒体。
【請求項４１】
前記歪み指標は、統計に基づく請求項３６に記載のコンピュータ読取可能媒体。
【請求項４２】
前記送信された１セットの動作ベクトルは、複数の現在のフレーム動作ベクトルと、複数の前のフレーム動作ベクトルとを含む請求項２９に記載のコンピュータ読取可能媒体。
【請求項４３】
現在のビデオフレーム、少なくとも１つの前のビデオフレーム、および送信された１セットの動作ベクトルを使用するビデオフレーム補間のための装置であって、
前記送信された１セットの動作ベクトルの関数として、第１のセットの動作ベクトルを生成する手段と、
複数のオーバーラップしないブロックを持つ中間ビデオフレームを識別する手段と、
オーバーラップしないブロックにそれぞれ、前記第１のセットの動作ベクトルから選択された少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成する手段と、
第２のセットの動作ベクトルを、前記割り当てられた１セットの動作ベクトルの関数として生成する手段と、
前記第２のセットの動作ベクトルを用いてビデオフレームを生成する手段と
を備え、
前記少なくとも１つの動作ベクトルを割り当て、前記割り当てられた１セットの動作ベクトルを生成する手段は、
シード動作ベクトルを決定する手段と、
前記シード動作ベクトルに基づいて、動作ベクトル探索を実行する手段と
を備えた装置。
【請求項４４】
前記送信された１セットの動作ベクトルの関数として、前記第１のセットの動作ベクトルを生成する手段は、
前記送信された１セットの動作ベクトルを、第１の部分の動作ベクトルと、第２の部分の動作ベクトルとに分割する手段と、
前記第１の部分の動作ベクトルを、前記第２の部分のベクトルの関数として修正する手段と
を備えた請求項４３に記載のビデオフレーム補間のための装置。
【請求項４５】
前記シード動作ベクトルを決定する手段は、前記オーバーラップしないブロックの中心を通る動作ベクトルを決める手段を備えた請求項４３に記載のビデオフレーム補間のための装置。
【請求項４６】
前記シード動作ベクトルに基づいて、前記動作ベクトル探索を実行する手段は、双方向動作ベクトル探索を実行する手段を備えた請求項４３に記載のビデオフレーム補間のための装置。
【請求項４７】
前記双方向動作ベクトル探索を実行する手段は、
前記少なくとも１つの前のビデオフレームにおいて前のビデオフレーム探索ブロックを構築する手段と、
第１の探索範囲を、前記現在のビデオフレームの一部に割り当てる手段と、
第１の予め定めた基準に基づいて、前記第１の探索範囲において、前記前のビデオフレーム探索ブロックに対する第１のマッチングブロックの探索を実行する手段と
を備えた請求項４６に記載のビデオフレーム補間のための装置。
【請求項４８】
前記双方向動作ベクトル探索を実行する手段は、
前記現在のビデオフレームにおいて現在のビデオフレーム探索ブロックを構築する手段と、
第２の探索範囲を、前記少なくとも１つの前のビデオフレームの一部に割り当てる手段と、
第２の予め定めた基準に基づいて、前記第２の探索範囲において、前記現在のビデオフレーム探索ブロックに対する第２のマッチングブロックの探索を実行する手段と
を備えた請求項４７に記載のビデオフレーム補間のための装置。
【請求項４９】
前記双方向動作ベクトル探索を実行する手段は、 前記第１のマッチングブロックに基づいて第１の動作ベクトルを決定する手段を備えた請求項４７に記載のビデオフレーム補間のための装置。
【請求項５０】
前記第１の予め定めた基準は、歪み指標に基づく請求項４７に記載のビデオフレーム補間のための装置。
【請求項５１】
前記第１の予め定めた基準は、前記歪み指標を最小化することに基づく請求項５０に記載のビデオフレーム補間のための装置。
【請求項５２】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの絶対差の合計に基づく請求項５０に記載のビデオフレーム補間のための装置。
【請求項５３】
前記歪み指標は、前記第１のマッチングブロックと前記前のビデオフレーム探索ブロックとの二乗差の合計に基づく請求項５０に記載のビデオフレーム補間のための装置。
【請求項５４】
前記歪み指標は、人間の視覚体系ベースの指標に基づく請求項５０に記載のビデオフレーム補間のための装置。
【請求項５５】
前記歪み指標は、統計に基づく請求項５０に記載のビデオフレーム補間のための装置。
【請求項５６】
前記送信された１セットの動作ベクトルは、複数の現在のフレーム動作ベクトルと、複数の前のフレーム動作ベクトルとを含む請求項４３に記載のビデオフレーム補間のための装置。
【外国語明細書】
2011061811000001.pdf