(57)【要約】ビデオサーバ（１３０，３０５，４０５，５０５，６０５）は、第１フレーム（２００）を含むフレームのストリーム（３１５，３３５，４１５）内のシーン（１１０）を表す第１フレームの部分についての補間パラメータ（２４０〜２４４）を表すメタデータ（５３０，５３５）を生成する。補間パラメータを用いて、フレームのストリーム内で第１フレームの後であって第２フレームの前のシーンを表す少なくとも１つの補間フレーム（２０５）を生成する。ビデオサーバは、メタデータをストリームに組み込み、多重化されたメタデータを含むストリームを送信する。ビデオクライアント（１３５，３１０，４１０，５１０，６１０）は、メタデータを含むフレームのストリームを表す第１フレームを受信する。ビデオクライアントは、第１フレーム及びメタデータに基づいて、フレームのストリーム内で第１フレームの後であって第２フレームの前のシーンを表す１つ以上の補間フレーム（２０５）を生成する。ビデオクライアントは、第１フレームと、１つ以上の補間フレームと、第２フレームと、を表示する。【選択図】図１
2019537913.tif 000002
【特許請求の範囲】
【請求項１】
ビデオサーバ（１３０，３０５，４０５，５０５，６０５）において、第１フレーム（２００）を含むフレームのストリーム（３１５，３３５，４１５）内のシーン（１１０）を表す前記第１フレームの部分の補間パラメータ（２４０〜２４４）を表すメタデータ（５２５，５３０）を生成することであって、前記補間パラメータは、前記フレームのストリーム内で前記第１フレームの後であって第２フレームの前のシーンを表す少なくとも１つの補間フレーム（２０５）を生成するために使用される、ことと、
前記ビデオサーバにおいて、前記メタデータを前記ストリームに組み込むことと、
前記メタデータを含む前記ストリームを前記メタデータから送信することと、を含む、
方法。
【請求項２】
前記メタデータを生成することは、前記第１フレームの部分に関連する動きベクトル（２４０〜２４４）と、前記動きベクトルの信頼度尺度を表すメタデータと、を生成することを含む、
請求項１の方法。
【請求項３】
前記メタデータを生成することは、前記第１フレームの隣接する部分についての隣接する補間パラメータと統計的に異なる前記第１フレームの部分についての外れ値補間パラメータを識別することと、前記隣接する動きベクトルに基づいて、前記外れ値補間パラメータが補間のために無視されることを示すメタデータ、又は、前記外れ値補間パラメータを修正するメタデータを生成することと、を含む、
請求項１の方法。
【請求項４】
オクルージョン検出を実行して、前記第１フレームの遮られた部分についての補間パラメータを識別することをさらに含む、
請求項１の方法。
【請求項５】
オクルージョン検出を実行することは、前記ビデオサーバにおいてオクルージョン検出を実行することを含み、前記メタデータを生成することは、前記第１フレームの遮られた部分についての前記補間パラメータが補間のために無視されることを示すメタデータを生成することを含む、
請求項４の方法。
【請求項６】
ビデオクライアント（１３５，３１０，４１０，５１０，６１０）において、第１フレーム（２００）の部分についての補間パラメータ（２４０〜２４４）を表すメタデータ（５２５，５３０）を含むフレームのストリーム（３１５，３３５，４１５）内のシーン（１１０）を表す前記第１フレームを受信することと、
前記ビデオクライアントにおいて、前記第１フレーム及び前記メタデータに基づいて、前記フレームのストリーム内の前記第１フレームの後であって第２フレームの前のシーンを表す少なくとも１つの補間フレーム（２０５）を生成することと、
前記ビデオクライアントにおいて、前記第１フレームと、前記少なくとも１つの補間フレームと、前記第２フレームと、を表示することと、を含む、
方法。
【請求項７】
前記補間パラメータを表す前記メタデータを受信することは、フレームの部分に関連する動きベクトル（２４０〜２４４）と、前記動きベクトルの信頼度尺度を表すメタデータと、を受信することを含む、
請求項６の方法。
【請求項８】
前記メタデータを受信することは、フレームの隣接する部分についての隣接する補間パラメータと統計的に異なる前記フレームの部分についての外れ値補間パラメータを識別するメタデータを受信することを含み、前記少なくとも１つの補間フレームを生成することは、前記少なくとも１つの補間フレームを生成する場合に、前記外れ値補間パラメータを無視することを含む、
請求項６の方法。
【請求項９】
前記ビデオクライアントにおいて、オクルージョン検出を実行して、前記フレームの遮られた部分についての補間パラメータを識別することと、
前記少なくとも１つの補間フレームを生成する場合に、前記フレームの遮られた部分についての前記補間パラメータを無視することと、をさらに含む、
請求項６の方法。
【請求項１０】
前記メタデータを受信することは、前記フレームの遮られた部分についての補間パラメータを示すメタデータを受信することを含み、前記少なくとも１つの補間フレームを生成することは、前記少なくとも１つの補間フレームを生成する場合に、前記フレームの遮られた部分についての前記補間パラメータを無視することを含む、
請求項６の方法。
【請求項１１】
第１フレーム（２００）を含むフレームのストリーム（３１５，３３５，４１５）内のシーン（１１０）を表す前記第１フレームの部分についての補間パラメータ（２４０〜２４４）を表すメタデータ（５２５，５３０）を生成するプロセッサ（６２５）であって、前記補間パラメータは、前記フレームのストリーム内で前記第１フレームの後であって第２フレームの前のシーンを表す少なくとも１つの補間フレーム（２０５）を生成するために使用され、前記プロセッサは、前記メタデータを前記ストリームに組み込むように構成されている、プロセッサと、
多重化されたメタデータを含む前記ストリームを送信するためのネットワークインタフェース（６１５）と、を備える、
ビデオサーバ（１３０，３０５，４０５，５０５，６０５）。
【請求項１２】
前記プロセッサは、前記第１フレームの部分に関連する動きベクトル（２４０〜２４４）と、前記動きベクトルの信頼度尺度を表すメタデータと、を生成するように構成されている、
請求項１１のビデオサーバ。
【請求項１３】
前記プロセッサは、前記第１フレームの隣接する部分についての隣接する補間パラメータと統計的に異なる前記第１フレームの部分についての外れ値補間パラメータを識別するように構成されている、
請求項１１のビデオサーバ。
【請求項１４】
前記プロセッサは、前記隣接する動きベクトルに基づいて、前記外れ値補間パラメータが補間のために無視されることを示すメタデータ、又は、前記外れ値補間パラメータを修正するメタデータを生成するように構成されている、
請求項１３のビデオサーバ。
【請求項１５】
前記プロセッサは、オクルージョン検出を実行して、前記第１フレームの遮られた部分についての補間パラメータを識別し、前記第１フレームの遮られた部分についての前記補間パラメータが補間のために無視されることを示すメタデータを生成するように構成されている、
請求項１１のビデオサーバ。
【請求項１６】
第１フレーム（２００）の部分についての補間パラメータ（２４０〜２４２）を表すメタデータ（５３０，５３５）を含むフレームのストリーム（３１５，３３５，４１５）内のシーン（１１０）を表す前記第１フレームを受信するネットワークインタフェース（６３５）と、
前記第１フレーム及び前記メタデータに基づいて、前記フレームのストリーム内で前記第１フレームの後であって第２フレームの前のシーンを表す少なくとも１つの補間フレーム（２０５）を生成するプロセッサ（６４５）と、
前記第１フレームと、前記少なくとも１つの補間フレームと、前記第２フレームと、を表示するスクリーン（１４５，６４０）と、を備える、
ビデオクライアント（１３５，３１０，４１０，５１０，６１０）。
【請求項１７】
前記ネットワークインタフェースは、前記フレームの部分に関連する動きベクトル（２４０〜２４４）と、前記動きベクトルの信頼度尺度を表すメタデータと、を受信するように構成されている、
請求項１６のビデオクライアント。
【請求項１８】
前記ネットワークインタフェースは、前記フレームの隣接する部分についての隣接する補間パラメータと統計的に異なる前記フレームの部分についての外れ値補間パラメータを識別するメタデータを受信するように構成されており、前記プロセッサは、前記少なくとも１つの補間フレームを生成する場合に、前記外れ値補間パラメータを無視するように構成されている、
請求項１６のビデオクライアント。
【請求項１９】
前記プロセッサは、オクルージョン検出を実行して、前記フレームの遮られた部分についての補間パラメータを識別し、前記少なくとも１つの補間フレームを生成する場合に、前記フレームの遮られた部分についての前記補間パラメータを無視するように構成されている、
請求項１６のビデオクライアント。
【請求項２０】
前記ネットワークインタフェースは、前記フレームの遮られた部分についての補間パラメータを示すメタデータを受信するように構成されており、前記プロセッサは、前記少なくとも１つの補間フレームを生成する場合に、前記フレームの遮られた部分についての前記補間パラメータを無視するように構成されている、
請求項１６のビデオクライアント。
【発明の詳細な説明】
【背景技術】
【０００１】
フレームレートは、フレーム（画像やフィールドと呼ばれることも多い）がカメラによってキャプチャされ、又は、フレームが例えば映写機、テレビ、デジタルディスプレイ等のデバイスによって表示される速度（レート）を示す。例えば、従来のムービーカメラは、２４フレーム／秒（ＦＰＳ）のレートでフレームをキャプチャし、従来の映写機は、同じ２４ＦＰＳのレートでフレームを投影する。いくつかのデジタルイメージングデバイスは、３０ＦＰＳ、４８ＦＰＳ、６０ＦＰＳ及びより高いＦＰＳ等の高いフレームレートでフレームをキャプチャすることができる。高精細テレビ（ＨＤＴＶ）等のデジタルディスプレイでは、６０ＦＰＳ以上等の高いフレームレートでフレームを表示することが可能である。画像キャプチャデバイスのフレームレートがディスプレイデバイスのフレームレートと異なることが多いので、ディスプレイデバイスは、キャプチャされたフレームのフレームレートをディスプレイデバイスのフレームレートに合わせるように変更するために、フレームレート変換を使用する。例えば、２４ＦＰＳのレートでキャプチャされたフレームは、５つのディスプレイフレームに対応する期間において２つのキャプチャフレームを表示することによって、６０ＦＰＳで表示することができる。これは、２つの連続したキャプチャフレームＡ及びＢがそれぞれ３回及び２回繰り返され、５つのディスプレイフレームのシーケンス：ＡＡＡＢＢを形成するので、３:２変換と呼ばれる。キャプチャフレームを繰り返すことによってフレームレートアップ変換を実行することは、比較的単純であるという利点を有するが、ジャダー（judder）及びブラー（blur）等の望ましくない視覚効果をもたらすことが知られている。
【０００２】
添付の図面を参照することによって、本開示をより良く理解することができ、その多数の機能及び利点が当業者に明らかとなるであろう。異なる図面における同じ符号の使用は、類似又は同じアイテムを示す。
【図面の簡単な説明】
【０００３】
【図１】いくつかの実施形態による、ビデオ取得及びディスプレイシステムを示す図である。
【図２】いくつかの実施形態による、ビデオフレームと、動きベクトルに基づいて生成された補間フレームと、を示す図である。
【図３】いくつかの実施形態による、ビデオサーバ及びビデオクライアントを含むビデオ処理システムの第１例を示すブロック図である。
【図４】いくつかの実施形態による、ビデオサーバ及びビデオクライアントを含むビデオ処理システムの第２例を示すブロック図である。
【図５】いくつかの実施形態による、ビデオフレーム、メタデータ及び補間フレームを示すビデオ処理システムのブロック図である。
【図６】いくつかの実施形態による、ビデオフレームからメタデータを生成するビデオサーバと、メタデータ及びビデオフレームに基づいて補間フレームを生成するビデオクライアントと、を含むビデオ処理システムのブロック図である。
【図７】いくつかの実施形態による、画像内のオブジェクトに関連する動きベクトルを決定するために検索可能な画像を表示するスクリーンを含む図である。
【発明を実施するための形態】
【０００４】
例えば６０ＦＰＳ等の高フレームレートをサポートするビデオディスプレイデバイスは、受信したフレームの部分の動きベクトルに基づいて、受信したフレーム間を補間することによって、ビデオサーバから受信した低フレームレートストリームに対してビデオレートアップ変換を実行する。動きベクトルを判別するために、２４ＦＰＳのフレームレートでキャプチャされたフレームは、１つ以上の画素を含む部分に細分される。第１フレーム内の各部分は、第１フレーム内の部分の位置から動きベクトル候補によって示される距離だけオフセットされた、後続（第２）フレーム内の対応する部分と比較される。第１フレームの部分の起こり得る動きを表す動きベクトル候補のセットに対して、同様の比較が実行される。第１フレーム内の部分と第２フレーム内のオフセット部分との間で最も良く一致する動きベクトルが、第１フレーム内の部分の動きを表す動きベクトルとして選択される。次に、第１フレームの全ての部分について動きベクトル計算が繰り返され、第１フレームの動きベクトルフィールドが決定される。ビデオディスプレイデバイスは、動きベクトルフィールドを使用して推定フレームを生成し、従来のフレームレート変換に使用される繰り返しフレームを置き換える。例えば、２４ＦＰＳから６０ＦＰＳへのフレームレートアップ変換は、ＡＡ′Ａ″ＢＢ′として表すことができ、Ａ′は、フレームＡからの補間によって生成された第１推定フレームであり、Ａ″は、フレームＡからの補間によって生成された第２推定フレームであり、Ｂ′は、フレームＢからの補間によって生成された推定フレームである。しかしながら、ビデオフレームレートアップ変換は、計算負荷が高く、これは、ビデオディスプレイデバイスによる電力使用量を著しく増大させ、動きベクトルフィールドのブルートフォース計算を実行するのに十分な計算能力を有するビデオディスプレイデバイスに対するフレームレートアップ変換の利用可用性を制限する。
【０００５】
ビデオサーバにおいてストリーム内のフレームの動き推定を実行し、フレームを、フレームの動きベクトルフィールドを表すメタデータと共にビデオディスプレイデバイスに提供することによって、ビデオディスプレイデバイスによる電力消費を低減することができ、計算能力の低いビデオディスプレイデバイスがビデオフレームレートアップ変換の恩恵を受けることができる。いくつかの実施形態では、メタデータは、動きベクトルフィールド内の動きベクトルに対する信頼度測定値、又は、（０）動きベクトルに基づいて補間が実行されないこと、（１）補間が時間的に前方向にのみ実行されること、（２）補間が時間的に後方向にのみ実行されること、若しくは、（３）補間が時間的に双方向に実行されること、を示すフラグを含む。ビデオサーバは、ストリーム内のフレームを第１フレームレートで提供し、メタデータをストリームに多重化又は組み込む。ビデオサーバのいくつかの実施形態は、フレームに対してシーン変化検出を実行し、フレーム内でシーン変化が検出されたかどうかを示す追加メタデータを提供するように構成されている。動きベクトル処理を使用して、隣接する動きベクトルとは予想外に異なる異常値動きベクトル（例えば、これらは反対方向を向いているか、又は、隣接する動きベクトルの平均とはかなり異なる大きさを有する）を識別する。異常値動きベクトルは、隣接する動きベクトルの値に基づいて無視又は修正することができる。オクルージョンされた動きベクトルに基づいて、補間が実行されず、補間が時間的に前方向にのみ実行され、補間が時間的に後方向にのみ実行され、又は、補間が時間的に両方向に実行されるように、オクルージョンの影響を受けるフレームの部分の動きベクトルを識別するために、オクルージョン検出を使用することができる。いくつかの実施形態では、動きベクトル処理及びオクルージョン検出は、フレーム内の異常値動きベクトル又はオクルージョンされた動きベクトルを表すメタデータを生成し、メタデータをフレームと共に提供するビデオサーバによって実行される。ビデオディスプレイデバイスは、対応するメタデータと共にストリーム内のフレームを受信し、メタデータを使用して、当該メタデータに基づいてフレームから補間することによって推定フレームを生成する。推定フレームは、第１フレームレートから第２（高い）フレームレートへのストリーム内のフレームのフレームレートアップ変換のために使用される。
【０００６】
図１は、いくつかの実施形態による、ビデオ取得及びディスプレイシステム１００の図である。システム１００は、例えばビデオカメラ等のビデオ取得デバイス１０５を含む。ビデオ取得デバイス１０５は、スタンドアロンデバイスであってもよいし、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ及びスマートフォン等の別のコンピューティングデバイスに統合されてもよい。ビデオ取得デバイス１０５は、シーン１１０の画像シーケンスを取得する。図示した実施形態では、シーン１１０は、フィールド１１５と、人物１２０と、ボール１２５と、を含む。しかしながら、シーン１１０は、ビデオ取得デバイス１０５によってモニタすることができる任意のシーンであってもよい。ビデオ取得デバイス１０５によってキャプチャされた画像は、フレーム内の画素の値として表される。ビデオ取得デバイス１０５は、例えば２４フレーム／秒（ＦＰＳ）又は３０ＦＰＳ等のフレームレートでキャプチャされた画像に基づいて、フレームを生成する。
【０００７】
ビデオ取得デバイス１０５によって生成されたフレームは、ビデオサーバ１３０に提供され、ビデオサーバ１３０は、（少なくとも一時的に）フレームを記憶し、フレームを、例えば介在するネットワーク１４０を介して１つ以上のビデオクライアント１３５に提供するように構成されている。例えば、シーン１１０は、ユーザがビデオクライアント１３５のスクリーン１４５上で観戦しているサッカー又はフットボールの試合の一部を含む。この例では、ビデオサーバ１３０は、ビデオ取得デバイス１０５によって生成されたフレームのストリームを受信し、フレームのストリームを、ビデオ取得デバイス１０５のフレームレートでビデオクライアント１３５に送信する。本明細書で説明するように、ビデオ取得デバイス１０５のフレームレートは、ビデオクライアント１３５においてフレームのストリームによって表されるビデオを表示するために使用可能なフレームレートと必ずしも一致しない。例えば、ビデオ取得デバイス１０５は、２４ＦＰＳのフレームレートで画像を取得することができるが、ビデオクライアント１３５は、例えば３０ＦＰＳ、４８ＦＰＳ、６０ＦＰＳ及びこれら以上のＦＰＳ等のように、より高いフレームレートでフレームを表示することができる。
【０００８】
ビデオクライアント１３５は、ビデオフレームレートアップ変換を実行して、低いフレームレート（例えば２４ＦＰＳ等）で受信したフレームを高いフレームレート（例えば６０ＦＰＳ等）で表示可能な多数のフレームに変換することができる。ビデオクライアント１３５は、ビデオサーバ１３０から受信したフレームの間を補間することによって、追加のフレームを生成することができる。ビデオクライアント１３５は、例えば、受信フレームと参照フレームとのブロックベースの比較を用いて生成された受信フレームの一部の動きベクトル、受信フレームのオプティカルフロー分析、又は、受信フレームの一部の相関（例えば、自動相関、畳み込み、相互相関若しくは位相相関）等のように、受信フレームから導出された補間パラメータに基づいて補間を実行することができる。しかしながら、本明細書で説明するように、補間パラメータを生成することは計算負荷が高く、これは、ビデオクライアント１３５における電力消費を増大させ、ビデオレートアップ変換を実行可能なビデオクライアント１３５のタイプを制限する場合がある。
【０００９】
ビデオクライアント１３５の計算負荷を低減するために、ビデオサーバ１３０のいくつかの実施形態は、ビデオ取得デバイス１０５から受信したフレームを使用して補間パラメータを生成する。例えば、ビデオサーバ１３０は、ビデオ取得デバイス１０５によって使用されるフレームレート（例えば、２４ＦＰＳ）からビデオクライアント１３５でフレームを表示するのに使用されるフレームレート（例えば、６０ＦＰＳ）へのビデオレートアップ変換を実行するために使用され得る補間パラメータの１つ以上のセットを生成することができる。ビデオ取得デバイス１０５によって生成されたフレームのストリーム内の第１フレームの補間パラメータは、ビデオ取得デバイス１０５によって生成されたストリーム内の第１フレーム後であって第２フレーム前のシーン１１０を表す１つ以上の補間フレームを生成するために使用される。次に、ビデオサーバ１３０は、補間パラメータを表すメタデータを生成し、ビデオクライアント１３５に送信されるフレームのストリームに当該メタデータを多重化又は組み込む。よって、ビデオクライアント１３５は、補間パラメータを生成するという計算負荷の高いタスクを実行する必要がない。
【００１０】
ビデオクライアント１３５は、多重化されたメタデータを含むフレームのストリームをビデオサーバ１３０から受信する。例えば、ビデオクライアント１３５は、シーン１１０を表す第１フレームを、第１フレームの部分の補間パラメータを表す多重化されたメタデータを含むフレームのストリームにおいて受信することができる。次に、ビデオクライアント１３５は、フレームのストリーム内の第１フレーム後であって第２フレーム前の時間間隔でシーンを表す１つ以上の補間フレームを生成することができる。例えば、ビデオクライアント１３５は、第１フレームの一部（画素又は画素のグループ等）の動きベクトルを用いて第１フレームの画素の値を補間して、補間フレームの画素の推定値を生成することができる。補間フレームの数は、ビデオ取得デバイス１０５によって使用されるフレームレートと、ビデオクライアント１３５によって使用されるフレームレートと、の比率に基づいて決定される。例えば、ビデオクライアント１３５は、第１フレームに対して２つの補間フレームと、第２フレームに対して１つの補間フレームと、を繰り返し生成して、２４ＦＰＳから６０ＦＰＳへの３:２フレームレートアップ変換を実行することができる。次に、ビデオクライアント１３５は、第１フレーム、第１フレームから補間された２つのフレーム、第２フレーム、第２フレームから補間された１つのフレーム等を表示する。本明細書で説明するように、いくつかの実施形態では、信頼度尺度又はフラグに基づいて、補間が選択的に実行される。例えば、メタデータ内のフラグの値に基づいて、補間をバイパスすることができ、時間的に順方向に実行することができ、時間的に逆方向に実行することができ、時間的に双方向に実行することができる。
【００１１】
図２は、いくつかの実施形態による、ビデオフレーム２００と、動きベクトルに基づいて生成された補間フレーム２０５と、を示す図である。ビデオフレーム２００は、図１に示すビデオ取得デバイス１０５のいくつかの実施形態によって生成されたフレームを表す。補間フレーム２０５は、図１に示すビデオクライアント１３５のいくつかの実施形態によって生成された補間フレームを表す。
【００１２】
ビデオフレーム２００は、ビデオ取得デバイスによってモニタされているシーンを表す値を有する画素のアレイから構成されている。例えば、画素２１０，２１１，２１２（本明細書では、まとめて「画素２１０〜２１２」と呼ばれる）は、ビデオフレーム２００内の人物２１５の対応する部分を表す値を有する。別の例では、画素２２０，２２１は、ビデオフレーム２００内のボール２２５の対応する部分を表す値を有する。さらに別の例では、画素２３０は、ビデオフレーム２００内のフィールド２３５の対応する部分を表す値を有する。
【００１３】
画素は、対応する動きベクトルに関連付けられている。例えば、画素２１０〜２１２は、画素２１０〜２１２に対して推定された動きの振幅及び方向を示す、対応する動きベクトル２４０，２４１，２４２（本明細書では、まとめて「動きベクトル２４０〜２４２」と呼ばれる）を有する。別の例では、画素２２０，２２１は、画素２２０，２２１に対して推定された動きの振幅及び方向を示す、対応する動きベクトル２４３，２４４を有する。画素２３０は、フィールド２３５の静止部分を表す値を有するので、画素２３０に関連する動きベクトルが存在しない。代わりに、振幅が０で方向がない（又は、任意の方向を有する）動きベクトルを、画素２３０に関連付けることができる。本明細書で説明するように、動きベクトル２４０〜２４４（他の補間パラメータと同様）は、図１に示すビデオサーバ１３０等のビデオサーバによって、画素２１０〜２１２，２２０，２２１，２３０に対して決定される。図２には個々の画素２１０〜２１２，２２０，２２１，２３０が示されているが、いくつかの実施形態では、画素２１０〜２１２，２２０，２２１，２３０は、画素のブロック（例えば、１６×１６の画素のブロック等）を表す。ビデオサーバは、動きベクトル２４０〜２４４を表すメタデータ（又は、他の補間パラメータ）を、ビデオフレーム２００を表す情報と多重化し、多重化されたフレーム／メタデータストリームをビデオクライアント（図１に示すビデオクライアント１３５等）に送信する。
【００１４】
ビデオクライアントは、受信したフレームとメタデータとを用いて、例えば、受信したフレームとメタデータとに基づいて補間フレームを生成することによって、ビデオレートアップ変換を実行する。図示した実施形態では、動きベクトル２４０〜２４４に基づいて、ビデオフレーム２００内の画素の値を補間して補間フレーム２０５内の画素の値を生成することによって、補間フレーム２０５が生成される。例えば、画素２５０，２５１，２５２（本明細書では、まとめて「画素２５０〜２５２」と呼ばれる）の値は、動きベクトル２４０〜２４２を用いて画素２１０〜２１２の値を補間することによって生成される。別の例では、画素２５３，２５４の値は、動きベクトル２４３，２４４を用いて画素２２０，２２１の値を補間することによって生成される。画素２１０〜２１２，２２０，２２１と画素２５０〜２５４との間のオフセットは、動きベクトル２４０〜２４４の振幅及び方向と、ビデオフレーム２００と補間フレーム２０５との間の時間間隔と、によって決定される。画素２３０は、補間フレーム２０５内のビデオフレーム２００からの値を保持する。
【００１５】
図３は、いくつかの実施形態による、ビデオサーバ３０５及びビデオクライアント３１０を含むビデオ処理システム３００の第１例を示すブロック図である。図１に示すビデオ取得及びディスプレイシステム１００のいくつかの実施形態を実施するために、ビデオ処理システム３００が使用される。例えば、図１に示すビデオサーバ１３０のいくつかの実施形態を実施するためにビデオサーバ３０５が使用され、図１に示すビデオクライアント１３５のいくつかの実施形態を実施するためにビデオクライアント３１０が使用される。ビデオサーバ３０５は、例えば２４ＦＰＳ等の第１フレームレートでビデオ取得デバイス（図１に示すビデオ取得デバイス１０５等）によって提供されるフレームを含むストリーム３１５を受信する。
【００１６】
ビデオサーバ３０５は、受信したフレーム内の画素又は画素のグループの動きベクトルを推定するのに使用される動き推定モジュール３２０を含む。例えば、動き推定モジュール３２０は、カレントフレーム内の画素の値を、参照フレーム（例えば、ストリーム内で以前に受信したフレーム等）内の画素の値と比較することができる。比較は、カレントフレーム内の画素を、候補動きベクトルによって決定されたオフセットだけシフトし、オフセット画素の値を、参照フレーム内の画素の値と比較することによって実行される。しかしながら、本明細書で説明するように、比較を、相関分析、オプティカルフロー分析等に基づいて実行することもできる。次に、画素値の類似性の測定値が計算される。この処理を候補動きベクトルのセットに対して繰り返し、最高の類似性測定値を有する候補動きベクトルを、画素（又は、画素のグループ）の動きベクトルとして選択する。いくつかの実施形態では、動き推定モジュール３２０は、異なる候補動きベクトル間の類似性測定値の勾配を測定し、候補動きベクトル間の「距離コスト」として比較する。勾配及びコストは、画素又は画素のグループの動きベクトルとして１つの候補動きベクトルを選択するために、重み付けられ、組み合わされる。「距離コスト」は、Ｌ−１ノルム（例えば、候補動きベクトル間の距離のグリッド測定値に関するタクシーキャブ距離）、ピタゴラスの定理に従って候補動きベクトル間のユークリッド距離を判定するＬ−２ノルム、又は、異なる候補動きベクトル間の距離を特徴付ける他の測定値を使用して決定することができる。いくつかの実施形態では、一次動きベクトルに加えて、「次点」動きベクトルも選択することができる。
【００１７】
動き推定モジュール３２０のいくつかの実施形態は、選択された動きベクトル及び任意の「次点」動きベクトルに対する信頼度尺度を生成する。これらの信頼度尺度は、選択された動きベクトルが、対応する画素又は画素のグループ内で表される画像の部分の動きを正確に表す尤度を示す。例えば、ベクトルの信頼度尺度は、範０．．ｎ内の数で表すことができ、数値が小さいほど信頼度のレベルが低く、数値が大きいほど信頼度のレベルが高いことを示す。信頼度尺度を表す数は、浮動小数点数、３ビットの数、又は、他の表現とすることができる。
【００１８】
動き推定モジュール３２０は、ストリーム３１５のフレーム内の画素（又は、画素のグループ）の動きベクトルを表すメタデータを生成する。例えば、画素（又は、画素のグループ）毎の動きベクトルは、スクリーン平面内のＸ方向及びＹ方向の差分距離（ｄｘ、ｄｙ）として表すことができる。別の例では、画素（又は、画素のグループ）毎の動きベクトルは、動きベクトルの振幅を示す情報と、フレーム内の動きベクトルの方向を示す情報と、を表すことができる。動きベクトル毎のメタデータは、対応する画素（又は、画素のグループ）を識別する情報も含む。また、動き推定モジュール３２０のいくつかの実施形態は、メタデータ内の動きベクトル毎の信頼度尺度を含む。図３に示す動き推定モジュール３２０は、動きベクトルを計算するが、動き推定モジュール３２０のいくつかの実施形態は、オプティカルフロー結果、相関分析結果等の他の補間パラメータを生成する。したがって、動き推定モジュール３２０は、これらの他の補間パラメータを表すメタデータを生成することができる。
【００１９】
ビデオサーバ３０５のいくつかの実施形態は、シーン変化検出モジュール３２５を含む。シーン変化は、カレントフレームによって表されるシーンが、ストリーム３１５内の前のフレームによって表されるシーンと異なる場合に発生する。シーン変化検出モジュール３２５は、カレントフレーム内の画素の値を前のフレーム内の画素の値と比較することによって、シーン変化を検出することができる。例えば、カレントフレームと前のフレームとの間でシーン変化が発生する場合、カレントフレーム及び前のフレーム内の画素の一部又は全ての値が不連続に変化する。したがって、シーン変化検出モジュール３２５は、カレントフレーム及び前のフレームにおける画素値間の差の測定値を決定することができる。距離測定値が閾値よりも大きい場合、シーン変化検出モジュール３２５は、シーン変化を検出する。シーン変化検出モジュール３２５は、シーン変化がない場合には「０」の値が与えられ、シーン変化が検出された場合には「１」の値が与えられるビット等のように、シーン変化を示すメタデータを生成することができる。ストリーム３１５内のフレーム間で補間を試みるかどうかを決定するために、メタデータの値が使用される。
【００２０】
ストリーム３１５内のフレーム、動き推定モジュール３２０によって生成されたメタデータ、シーン変化検出モジュール３２５によって生成されたメタデータ、及び、ビデオサーバ３０５内の他のビデオ処理モジュールによって生成されたメタデータは、マルチプレクサ３３０に提供される。マルチプレクサ３３０は、メタデータをストリーム３１５に多重化するか組み込む。例えば、マルチプレクサ３３０は、各フレームに関連するメタデータによって分離されたストリーム３１５内のフレームを含む出力ストリーム３３５を生成することができる。出力ストリーム３３５は、ビデオクライアント３１０に送信される。いくつかの実施形態では、フレーム及びメタデータは、ビデオサーバ３０５に記憶される。次に、多重化された出力ストリーム３３５は、ビデオクライアント３１０からの要求に応じてビデオクライアント３１０に提供される。したがって、メタデータをリアルタイムで生成する必要がない。
【００２１】
ビデオクライアント３１０のいくつかの実施形態は、オクルージョン及び動きベクトル処理モジュール３４０を含む。オクルージョンは、シーン内の１つのオブジェクトが別のオブジェクトの前又は後ろを通過するときに発生する。例えば、ボールが木の後ろを移動すると、ボールの一部が木によって遮られる。カレントフレーム内で遮られている前のフレーム内のオブジェクトの部分の動きベクトルは、遮るオブジェクトの部分を表す画素の値（遮られているオブジェクトの部分に対応する値が割り当てられている）をもたらす場合があるので、補間に用いられるべきではない。例えば、フレーム内の動きベクトルに基づいて木の後ろを移動するボールを含むシーンを表すフレームを補間することは、補間フレーム内でボールの部分が木の前を移動するように見えることをもたらす場合がある。オクルージョン及び動きベクトル処理モジュール３４０は、シーンの部分におけるオクルージョンを検出し、対応するメタデータを生成することができる。オクルージョン及び動きベクトル処理モジュール３４０のいくつかの実施形態は、（例えば、前のフレームに対してカレントフレーム内の動きベクトルを決定することによって）時間的に前に決定された動きベクトルと、（例えば、カレントフレームに対して前のフレーム内の動きベクトルを決定することによって）時間的に後に決定された動きベクトルと、を比較することによって、オクルージョンを検出する。動きベクトルが一致する場合、オクルージョンの見込みは低い。しかしながら、オクルージョンが存在する場合、時間的に前の動きベクトル及び時間的に後の動きベクトルは異なるであろう。オクルージョン及び動きベクトル処理モジュール３４０は、画素（又は、画素のグループ）がオクルージョンを経験しているかどうかを示すメタデータを生成する。例えば、遮られた画素（又は、画素のグループ）の動きベクトルは、動きベクトルにおける低い信頼度を示すために、０又は他の低い値の信頼度尺度が与えられ得る。別の例では、遮られた画素（又は、画素のグループ）は、動きベクトルに関連するオクルージョンが存在しない場合には、「０」の値が与えられたビットに関連付けられ、動きベクトルに関するオクルージョンが検出された場合には、「１」の値が与えられたビットに関連付けられ得る。ストリーム３３５内のフレーム間の補間に動きベクトルを使用するかどうかを決定するために、メタデータの値が使用される。
【００２２】
また、エラー又はアーチファクトであり得る外れ値動きベクトルを検出するために、オクルージョン及び動きベクトル処理モジュール３４０を使用することができる。例えば、オクルージョン及び動きベクトル処理モジュール３４０は、第１画素の動きベクトルが１つ以上の隣接する画素の動きベクトルと統計的に異なると判別した場合、第１画素の動きベクトルを外れ値として識別する。統計的差異の例としては、隣接する動きベクトルの振幅の平均値から所定数の標準偏差以上離れた振幅と、隣接する動きベクトルの平均方向から所定数の標準偏差以上離れた方向等と、を有する動きベクトルが挙げられる。オクルージョン及び動きベクトル処理モジュール３４０のいくつかの実施形態は、例えば、外れ値動きベクトルの振幅又は方向を、隣接する動きベクトルの振幅又は方向の平均で置き換えることによって、隣接する動きベクトルの値に基づいて外れ値動きベクトルを修正する。また、例えば、外れ値を局所平均又は最も類似した隣接する動きベクトルで置き換える空間時間メリディアンフィルタ（spatial-temporal meridian filters）を使用して外れ値を除去するように、動きベクトルをフィルタリングすることができる。外れ値動きベクトル（又は、外れ値動きベクトルの置き換えられた値）に関連する信頼度尺度を、動きベクトルの精度に対する低い信頼度を示すように低い値に設定することができる。オクルージョン及び動きベクトル処理モジュール３４０は、外れ値動きベクトルに対する修正を示すことができ、又は、外れ値動きベクトルを補間に使用すべきかどうかを示すことができるメタデータ（例えば、信頼度尺度等）を生成することができる。
【００２３】
ビデオクライアント３１０の補間モジュール３４５は、ストリーム３１５のフレームと、ビデオサーバ３０５によって生成されたメタデータと、オクルージョン及び動きベクトル処理モジュール３４０によって生成されたメタデータと、を含む出力ストリーム３３５を受信する。本明細書で説明するように、補間モジュール３４５は、受信したビデオフレーム及びメタデータを用いて、１つ以上の補間フレームを生成する。次に、補間モジュール３４５は、ストリーム３１５内のフレームと、フレーム及びメタデータに基づいて生成された補間フレームと、を含む補間ビデオストリーム３５０を提供する。
【００２４】
図４は、いくつかの実施形態による、ビデオサーバ４０５及びビデオクライアント４１０を含むビデオ処理システム４００の第２例を示すブロック図である。ビデオ処理システム４００は、図１に示すビデオ取得及びディスプレイシステム１００のいくつかの実施形態を実施するために使用される。例えば、図１に示すビデオサーバ１３０のいくつかの実施形態を実施するためにビデオサーバ４０５が使用され、図１に示すビデオクライアント１３５のいくつかの実施形態を実施するためにビデオクライアント４１０が使用される。ビデオサーバ４０５は、例えば２４ＦＰＳ等の第１フレームレートで、ビデオ取得デバイス（図１に示すビデオ取得デバイス１０５等）によって提供されたフレームを含むストリーム４１５を受信する。
【００２５】
ビデオサーバ４０５は、動き推定モジュール４２０を含み、動き推定モジュール４２０は、動きベクトルを決定し、ストリーム４１５のフレーム内の画素（又は、画素のグループ）の動きベクトルを表すメタデータを生成する。また、ビデオサーバ４０５は、ストリーム４１５のフレーム内のシーン変化を検出し、シーン変化を示すためのメタデータを生成するシーン変化検出モジュール４２５を含む。動き推定モジュール４２０及びシーン変化検出モジュール４２５は、図３に示す動き推定モジュール３２０及びシーン変化検出モジュール３２５のいくつかの実施形態と同じように動作するように構成されている。
【００２６】
図４に示すビデオ処理システム４００の第２例は、ビデオサーバ４０５がオクルージョン及び動きベクトル処理モジュール４３０を実施するので、図３に示すビデオ処理システム３００の第１例と異なる。オクルージョン及び動きベクトル処理モジュール４３０の計算負荷の高い演算を適度に移動させることは、ビデオクライアント４１０の計算負荷を軽減する。オクルージョン及び動きベクトル処理モジュール４３０は、ストリーム４１５のフレーム内のオクルージョンを検出し、フレーム内の画素（又は、画素のグループ）がオクルージョンを経験しているかどうかを示すメタデータを生成するように構成されている。また、オクルージョン及び動きベクトル処理モジュール４３０は、ストリーム４１５のフレーム内の外れ値動きベクトルを検出するように構成されている。本明細書で説明するように、オクルージョン及び動きベクトル処理モジュール４３０のいくつかの実施形態は、外れ値動きベクトルの値を修正し、外れ値動きベクトルに対する修正を示すことができ、又は、外れ値動きベクトルを補間に使用すべきかどうかを示すことができるメタデータを生成する。
【００２７】
ストリーム４１５内のフレームと、動き推定モジュール４２０によって生成されたメタデータと、シーン変化検出モジュール４２５によって生成されたメタデータと、オクルージョン及び動きベクトル処理モジュール４３０によって生成されたメタデータと、ビデオサーバ４０５内の他のビデオ処理モジュールによって生成されたメタデータとは、マルチプレクサ４３５に提供される。マルチプレクサ４３５は、メタデータをストリーム４１５に多重化するか組み込む。例えば、マルチプレクサ４３５は、各フレームに関連するメタデータによって分離されたストリーム４１５内のフレームを含む出力ストリーム４４０を生成することができる。出力ストリーム４４０は、ビデオクライアント４１０に送信される。いくつかの実施形態では、フレーム及びメタデータは、ビデオサーバ４０５に記憶される。次に、多重化された出力ストリーム４４０は、ビデオクライアント４１０からの要求に応じてビデオクライアント４１０に提供される。したがって、メタデータをリアルタイムで生成する必要はない。
【００２８】
ビデオクライアント４１０内の補間モジュール４４５は、ストリーム４１５のフレームと、ビデオサーバ４０５によって生成されたメタデータと、を含む出力ストリーム４４０を受信する。本明細書で説明するように、補間モジュール４４５は、受信したビデオフレーム及びメタデータを用いて１つ以上の補間フレームを生成する。次いで、補間モジュール４４５は、ストリーム４１５内のフレームと、フレーム及びメタデータに基づいて生成された補間フレームと、を含む補間ビデオストリーム４５０を提供する。
【００２９】
図５は、いくつかの実施形態による、ビデオフレーム、メタデータ及び補間フレームを示すビデオ処理システム５００のブロック図である。ビデオ処理システム５００は、図１、図３及び図４に示すビデオサーバ１３０，３０５，４０５及びビデオクライアント１３５，３１０，４１０のいくつかの実施形態を使用して実施されるビデオサーバ５０５及びビデオクライアント５１０を含む。
【００３０】
ビデオサーバ５０５は、ビデオフレーム５１５，５２０を含むストリームを受信する（又は、生成する）。また、ビデオサーバ５０５は、対応するビデオフレーム５１５，５２０についてメタデータ５２５，５３０を生成する。メタデータは、動き推定モジュール、シーン変化検出モジュール、オクルージョン及び動きベクトル処理モジュール（ビデオサーバ５０５内に実装されている場合）、又は、ビデオサーバ５０５内に実装されている他のビデオ処理モジュールによって生成され得る。ビデオフレーム５１５，５２０及びメタデータ５２５，５３０は、マルチプレクサ５３５に提供され、マルチプレクサ５３５は、ビデオフレーム５１５，５２０及びメタデータ５２５，５３０を出力ストリーム５４０に多重化するか組み込む。
【００３１】
ビデオサーバ５０５のいくつかの実施形態は、ビデオフレーム５１５，５２０及びメタデータ５２５，５３０を圧縮して、出力ストリーム５４０を形成する。出力ストリーム５４０を形成するビットを圧縮することは、出力ストリーム５４０を送信するのに必要とされる帯域幅を僅かに増加させるに過ぎないことから、ビデオ品質を著しく改善することができる。例えば、Ｎｅｔｆｌｉｘ等のサービスは、約５メガビット／秒のレートでデータをストリーミングし、約５メガビット／秒の速度は、２４ＦＰＳのフレームレートを有する映画についての圧縮データのピクチャ当たり約２０８，０００ビットに対応する。圧縮データは、約２５００万ビットの非圧縮データを表す。メタデータは、動きベクトル情報及び信頼度尺度を含む１６ビット（例えば、水平方向の動きを表す６ビットと、垂直方向の動きを表す６ビットと、信頼度尺度を表す２ビットと、動きベクトルがオクルージョンに関連するかどうか、及び、動きベクトルを前方向、後方向又は双方向の補間に使用すべきかどうかを示す２ビットと、を含む）ベクトルとして表すことができる。本明細書で説明するように、１９２０×１０８０画素のスクリーン上に表示されるフレーム当たり８１００個のベクトルが存在し、これは、フレーム当たり８１００×１６＝１２９，６００ビットの非圧縮データをもたらす。メタデータの圧縮率は、画像内の動きの間の相関が一般的に大きいために、控えめに見積もっても１０：１である。よって、圧縮されたメタデータは、圧縮されたビデオフレームと比較して、帯域幅をあまり消費しない。したがって、帯域幅を節約することができ、例えば、６０Ｈｚのビデオを、伝送されなかったフレームを復元又は補間する方法を示すメタデータを含む３０Ｈｚのビデオとして伝送することによって、６０Ｈｚのビデオを伝送するのに必要な帯域幅をほぼ５０％低減することができる。
【００３２】
また、ビデオサーバ５０５のいくつかの実施形態は、フレームのダウンスケール又はサムネイルバージョンを出力ストリーム５４０に多重化することができる。これにより、ビデオサーバ５０５は、より高いフレームレートを有するストリーム内にあるいくつかのフレームをドロップし、より低いフレームレートで残りのフレームを送信することが可能になる。次に、ビデオサーバ５０５は、出力ストリーム５４０内の情報を、ドロップされたフレームのダウンスケール又はサムネイルバージョンで補足することができ、これにより、ビデオクライアント５１０が、ダウンスケール又はサムネイルバージョンを用いて、受信したフレームを用いてより高いフレームレートで表示するために、フレームを再構成又は補間することができる。また、オクルージョン領域の形状を識別し、又は、オクルージョン領域若しくは画像の不鮮明な領域内で補間を実行するために、ダウンスケール又はサムネイルバージョンを使用することができる。
【００３３】
ビデオクライアント５１０は、ビデオサーバ５０５から出力ストリーム５４０を受信する。本明細書で説明するように、ビデオクライアント５１０は、ビデオフレーム５１５，５２０及びメタデータ５２５，５３０を用いて補間フレーム５４５，５５０，５５５を生成する。例えば、ビデオフレーム５１５内の画素値を補間して補間フレーム５４５，５５０の画素値を生成するために、メタデータ５２５を使用する。別の例では、ビデオフレーム５２０内の画素値を補間して補間フレーム５５５の画素値を生成するために、メタデータ５３０を使用する。ビデオクライアント５１０は、ビデオフレーム５１５，５２０及び補間フレーム５４５，５５０，５５５を含むディスプレイストリーム５６０を生成する。ディスプレイストリーム５６０を用いて、ビデオクライアント５１０のスクリーン上にビデオを表示する。
【００３４】
図６は、いくつかの実施形態による、ビデオフレームからメタデータを生成するビデオサーバ６０５と、メタデータ及びビデオフレームに基づいて補間フレームを生成するビデオクライアント６１０と、を含むビデオ処理システム６００のブロック図である。図１及び図３〜５に示すビデオサーバ１３０，３０５，４０５，５０５及びビデオクライアント１３５，３１０，４１０，５１０のいくつかの実施形態を実施するために、ビデオサーバ６０５及びビデオクライアント６１０が使用される。
【００３５】
ビデオサーバ６０５は、信号を送受信するためのネットワークインタフェース６１５（例えば、ネットワークインタフェース）を含む。例えば、ネットワークインタフェース６１５は、ビデオ取得デバイス６２０によって生成されたストリーム内のフレームを表す信号を受信することができる。また、ネットワークインタフェース６１５は、本明細書で説明するように、ビデオフレーム及び関連するメタデータを表す信号を送信することができる。ネットワークインタフェース６１５は、（例えば、単一のＡＳＩＣ若しくはＦＰＧＡを用いた）単一の集積回路として、又は、ネットワークインタフェース６１５の機能を実施するための異なるモジュールを含むシステムオンチップ（ＳＯＣ）として実施することができる。また、ビデオサーバ６０５は、プロセッサ６２５と、メモリ６３０と、を含む。プロセッサ６２５を用いて、メモリ６３０に記憶された命令を実行し、実行された命令の結果（ビデオフレーム又は関連するメタデータを含むことができる）等の情報をメモリ６３０に記憶することができる。
【００３６】
ビデオクライアント６１０は、信号を送受信するためのネットワークインタフェース６３５を含む。例えば、ネットワークインタフェース６３５は、ビデオサーバ６０５によって生成されたビデオフレーム及びメタデータを表す信号を受信することができる。別の例では、ネットワークインタフェース６３５は、受信したメタデータに基づいて生成されたビデオフレーム及び補間フレームを、表示のためにスクリーン６４０に送信することができる。ネットワークインタフェース６３５は、（例えば、単一のＡＳＩＣ若しくはＦＰＧＡを用いた）単一の集積回路として、又は、ネットワークインタフェース６３５の機能を実施するための異なるモジュールを含むシステムオンチップ（ＳＯＣ）として実施することができる。また、ビデオクライアント６１０は、プロセッサ６４５と、メモリ６５０と、を含む。プロセッサ６４５を用いて、メモリ６５０に記憶された命令を実行し、実行された命令の結果等の情報をメモリ６５０に記憶することができる。例えば、プロセッサ６４５を用いて、ビデオサーバ６０５から受信したビデオフレーム及びメタデータに基づいて補間フレームを生成することができる。次に、補間フレームをネットワークインタフェース６３５に提供して、スクリーン６４０上に画像を生成する。
【００３７】
図７は、いくつかの実施形態による、画像内のオブジェクトに関連する動きベクトルを決定するために検索可能な画像を表示するスクリーン７００を含む図である。スクリーン７００は、１９２０×１０８０画素のアレイであるが、スクリーン７００の他の実施形態は、異なる数の行又は列に配置された異なる数の画素を含む。図示した実施形態では、カレントフレーム内で表示される画像は、スクリーン７００に実現されるアレイ内の画素の異なる値によって表される、人物７０５、ボール７１０及びフィールド７１５を含む。
【００３８】
画像内の動きを検出するために、カレントフレーム内の画像を表す画素の値のサブセットが、前のフレーム内の画像を表す画素の値の参照サブセットと比較される。例えば、スクリーン７００の画素は、例えばサーチウィンドウ７２０等の６４×６４のサーチウィンドウに分割され、次いで、サーチウィンドウ７２０内の１６×１６のサーチブロックは、参照ブロック（例えば、ボール７１０の前の位置を表す画素の値を含む１６×１６の参照ブロック７２５等）と比較される。したがって、サーチ処理は、サーチウィンドウ７２０内の候補動きベクトルを評価するために、参照ブロック７２５に対して異なるオフセットでのサーチブロックの６４×６４＝４０９６の別々の比較を必要とする。各々の比較の結果は、スコアＳで表すことができ、
【数１】
2019537913.tif 000003
であり、Ｃｉｊは、サーチウィンドウ７２０の比較ブロック内の位置ｉ、ｊにおける画素の値を表し、Ｒｉｊは、参照ブロック７２５内の位置ｉ、ｊにおける画素の値を表す。よって、この例では、各スコアは、２５６回の減算と、２５６回の絶対値演算と、を必要とする。
【００３９】
動きベクトルサーチの計算負荷は、サーチウィンドウ７２０等の候補領域毎にサーチを実行するために、処理コア当たり約３０の命令を必要とする単一命令多重データ（ＳＩＭＤ）グラフィックス処理ユニット（ＧＰＵ）を用いてスコアが決定されると想定することによって、推定することができる。したがって、スクリーン７００上の画素によって表される画像の１回の完全なサーチは、ＧＰＵ上で４０９６×３０＝１２２，８８０サイクルを必要とする。異なる参照ブロックの数は、スクリーン７００上の画素によって表される画像に対して１９２０／１６×１０８０／１６＝８１００の参照ブロックである。したがって、各画像をサーチするのに必要なサイクルの総数は、８１００×１２２，８８０≒１０９サイクルである。本明細書で説明するように、オクルージョン検出及び他の機能は、前方サーチ（例えば、前のフレームに対してカレントフレームを比較する）及び後方サーチ（例えば、カレントフレームに対して前のフレームを比較する）を実行することを必要とし、これは、画像当たりのサイクル数を２倍にする。典型的な入力フレームレートは２４ＦＰＳであり、これは、毎秒４８０億サイクルの総プロセッサ要件をもたらす。この処理能力は、全てのデバイスで利用できるわけではなく、利用できる場合には大量の電力を消費する。さらに、この推定値はより低い推定値であるが、これは、後処理（例えば、外れ値及びオクルージョン等を見つけて処理する等）のために追加の計算が典型的に必要とされるためである。さらにまた、異なるスケールで表された画像に対して追加の計算を実行することができる。
【００４０】
本明細書で説明するビデオ取得及びディスプレイシステムのいくつかの実施形態は、従来の実施よりも多くの利点を有する。例えば、ビデオサーバにおいて動き推定（及び、場合によっては他のビデオ処理）を実行し、ビデオフレームを、補間パラメータを表すメタデータと共にビデオクライアントに提供することは、ビデオフレームレートアップ変換をサポートするビデオクライアントに対する最小要件を減らすと共に、ビデオクライアントの電力消費を低減する。また、ビデオクライアントからビデオサーバへの動き推定（及び、場合によっては他のビデオ処理）のシフトは、ビデオサーバの計算リソースを使用してより洗練された動き推定を実行することによって、又は、より広範囲の可能な選択を調べ、何れの選択が最良のビデオ品質をもたらすか決定するためにより洗練された分析を使用することによって、アーチファクトの発生率及び重大度を低減すると共に、ビデオクライアントにおけるビデオ品質を向上させることができる。さらに、いくつかの実施形態では、動き推定（及び、場合によっては他のビデオ処理）は、ビデオサーバにおいてリアルタイムで実行される必要がない。例えば、ビデオストリームのメタデータは、ビデオストリームがビデオクライアントによって要求される前に生成され、要求に応じて提供され得る。
【００４１】
いくつかの実施形態では、図１〜図６を参照して上述したビデオ取得及びディスプレイシステム等の上述した装置及び技術は、１つ以上の集積回路（ＩＣ）デバイス（集積回路パッケージ又はマイクロチップとも呼ばれる）を備えるシステムで実施される。これらのＩＣデバイスの設計及び製造には、通常、電子設計自動化（ＥＤＡ）及びコンピュータ支援設計（ＣＡＤ）ソフトウェアツールが使用される。これらの設計ツールは、通常、１つ以上のソフトウェアプログラムとして表される。１つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計又は適合するための処理の少なくとも一部を実行するように１つ以上のＩＣデバイスの回路を表すコードで動作するようにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、コンピューティングシステムがアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ＩＣデバイスの設計又は製造の１つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されてもよいし、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体からアクセスされてもよい。
【００４２】
コンピュータ可読記憶媒体は、命令及び／又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の記憶媒体、又は、記憶媒体の組み合わせを含むことができる。かかる記憶媒体には、限定されないが、光媒体（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（登録商標）ディスク）、磁気媒体（例えば、フロッピー（登録商標）ディスク、磁気テープ、磁気ハードドライブ）、揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）、キャッシュ）、不揮発性メモリ（例えば、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ）、又は、微小電気機械システム（ＭＥＭＳ）ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステム（例えば、システムＲＡＭ又はＲＯＭ）に内蔵されてもよいし、コンピュータシステム（例えば、磁気ハードドライブ）に固定的に取り付けられてもよいし、コンピュータシステム（例えば、光学ディスク又はユニバーサルシリアルバス（ＵＳＢ）ベースのフラッシュメモリ）に着脱可能に取り付けられてもよいし、有線又は無線のネットワークを介してコンピュータシステム（例えば、ネットワークアクセス可能なストレージ（ＮＡＳ））に接続されてもよい。
【００４３】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行する処理システムの１つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の１つ以上のセットを含む。ソフトウェアは、１つ以上のプロセッサによって実行されると、上記の技術の１つ以上の態様を実行するように１つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）、又は、他の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、１つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【００４４】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、１つ以上のさらなるアクティビティが実行される場合があり、１つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【００４５】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【図１】
2019537913.tif 000004
【図２】
2019537913.tif 000005
【図３】
2019537913.tif 000006
【図４】
2019537913.tif 000007
【図５】
2019537913.tif 000008
【図６】
2019537913.tif 000009
【図７】
2019537913.tif 000010
【手続補正書】
【提出日】令和1年9月12日(2019.9.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオサーバ（１３０，３０５，４０５，５０５，６０５）において、第１フレーム（２００）を含むフレームのストリーム（３１５，３３５，４１５）内のシーン（１１０）を表す前記第１フレームの部分の補間パラメータ（２４０〜２４４）を表すメタデータ（５２５，５３０）を生成することであって、前記補間パラメータは、前記フレームのストリーム内で前記第１フレームの後であって第２フレームの前のシーンを表す少なくとも１つの補間フレーム（２０５）を生成するために使用される、ことと、
前記ビデオサーバにおいて、前記メタデータを前記ストリームに組み込むことと、
前記メタデータを含む前記ストリームを前記メタデータから送信することと、を含む、
方法。
【請求項２】
前記メタデータを生成することは、前記第１フレームの部分に関連する動きベクトル（２４０〜２４４）と、前記動きベクトルの信頼度尺度を表すメタデータと、を生成することを含む、
請求項１の方法。
【請求項３】
前記メタデータを生成することは、前記第１フレームの隣接する部分についての隣接する補間パラメータと統計的に異なる前記第１フレームの部分についての外れ値補間パラメータを識別することと、前記隣接する動きベクトルに基づいて、前記外れ値補間パラメータが補間のために無視されることを示すメタデータ、又は、前記外れ値補間パラメータを修正するメタデータを生成することと、を含む、
請求項１の方法。
【請求項４】
オクルージョン検出を実行して、前記第１フレームの遮られた部分についての補間パラメータを識別することをさらに含む、
請求項１の方法。
【請求項５】
オクルージョン検出を実行することは、前記ビデオサーバにおいてオクルージョン検出を実行することを含み、前記メタデータを生成することは、前記第１フレームの遮られた部分についての前記補間パラメータが補間のために無視されることを示すメタデータを生成することを含む、
請求項４の方法。
【請求項６】
第１フレーム（２００）を含むフレームのストリーム（３１５，３３５，４１５）内のシーン（１１０）を表す前記第１フレームの部分についての補間パラメータ（２４０〜２４４）を表すメタデータ（５２５，５３０）を生成するプロセッサ（６２５）であって、前記補間パラメータは、前記フレームのストリーム内で前記第１フレームの後であって第２フレームの前のシーンを表す少なくとも１つの補間フレーム（２０５）を生成するために使用され、前記プロセッサは、前記メタデータを前記ストリームに組み込むように構成されている、プロセッサと、
多重化されたメタデータを含む前記ストリームを送信するためのネットワークインタフェース（６１５）と、を備える、
ビデオサーバ（１３０，３０５，４０５，５０５，６０５）。
【請求項７】
前記プロセッサは、前記第１フレームの部分に関連する動きベクトル（２４０〜２４４）と、前記動きベクトルの信頼度尺度を表すメタデータと、を生成するように構成されている、
請求項６のビデオサーバ。
【請求項８】
前記プロセッサは、前記第１フレームの隣接する部分についての隣接する補間パラメータと統計的に異なる前記第１フレームの部分についての外れ値補間パラメータを識別するように構成されている、
請求項６のビデオサーバ。
【請求項９】
前記プロセッサは、前記隣接する動きベクトルに基づいて、前記外れ値補間パラメータが補間のために無視されることを示すメタデータ、又は、前記外れ値補間パラメータを修正するメタデータを生成するように構成されている、
請求項８のビデオサーバ。
【請求項１０】
前記プロセッサは、オクルージョン検出を実行して、前記第１フレームの遮られた部分についての補間パラメータを識別し、前記第１フレームの遮られた部分についての前記補間パラメータが補間のために無視されることを示すメタデータを生成するように構成されている、
請求項６のビデオサーバ。
【請求項１１】
第１フレーム（２００）の部分についての補間パラメータ（２４０〜２４２）を表すメタデータ（５３０，５３５）を含むフレームのストリーム（３１５，３３５，４１５）内のシーン（１１０）を表す前記第１フレームを受信するネットワークインタフェース（６３５）と、
前記第１フレーム及び前記メタデータに基づいて、前記フレームのストリーム内で前記第１フレームの後であって第２フレームの前のシーンを表す少なくとも１つの補間フレーム（２０５）を生成するプロセッサ（６４５）と、
前記第１フレームと、前記少なくとも１つの補間フレームと、前記第２フレームと、を表示するスクリーン（１４５，６４０）と、を備える、
ビデオクライアント（１３５，３１０，４１０，５１０，６１０）。
【請求項１２】
前記ネットワークインタフェースは、前記フレームの部分に関連する動きベクトル（２４０〜２４４）と、前記動きベクトルの信頼度尺度を表すメタデータと、を受信するように構成されている、
請求項１１のビデオクライアント。
【請求項１３】
前記ネットワークインタフェースは、前記フレームの隣接する部分についての隣接する補間パラメータと統計的に異なる前記フレームの部分についての外れ値補間パラメータを識別するメタデータを受信するように構成されており、前記プロセッサは、前記少なくとも１つの補間フレームを生成する場合に、前記外れ値補間パラメータを無視するように構成されている、
請求項１１のビデオクライアント。
【請求項１４】
前記プロセッサは、オクルージョン検出を実行して、前記フレームの遮られた部分についての補間パラメータを識別し、前記少なくとも１つの補間フレームを生成する場合に、前記フレームの遮られた部分についての前記補間パラメータを無視するように構成されている、
請求項１１のビデオクライアント。
【請求項１５】
前記ネットワークインタフェースは、前記フレームの遮られた部分についての補間パラメータを示すメタデータを受信するように構成されており、前記プロセッサは、前記少なくとも１つの補間フレームを生成する場合に、前記フレームの遮られた部分についての前記補間パラメータを無視するように構成されている、
請求項１１のビデオクライアント。
【国際調査報告】
2019537913.tif 000011
2019537913.tif 000012
2019537913.tif 000013