(57)【要約】  開示されるコンピュータ実装方法は、（１）進展する３Ｄシーンと進展する３Ｄシーン中の要素とを描く第１の２Ｄフレームを受信することと、（２）進展する３Ｄシーンと要素とを描く第２の２Ｄフレームを受信することと、（３）第１の２Ｄフレームおよび第２の２Ｄフレームから２Ｄ動きベクトルを導出することであって、２Ｄ動きベクトルが、各々、第１の２Ｄフレーム中の要素の座標から第２の２Ｄフレーム中の要素の座標への推定されたオフセットを含む、２Ｄ動きベクトルを導出することと、（４）進展する３Ｄシーンについての深度情報を受信することと、（５）２Ｄ動きベクトルおよび深度情報を使用して、合成２Ｄフレームを外挿することと、（６）ユーザに合成２Ｄフレームを表示することとを含み得る。様々な他の方法、システム、およびコンピュータ可読媒体も開示される。【選択図】図１
2021533646.tif 000002
【特許請求の範囲】
【請求項１】
進展する３次元シーンを描く第１の２次元フレームを受信することであって、前記第１の２次元フレームが、前記進展する３次元シーン中の複数の要素を描く、第１の２次元フレームを受信することと、
前記進展する３次元シーンを描く第２の２次元フレームを受信することであって、前記第２の２次元フレームが、前記複数の要素を描く、第２の２次元フレームを受信することと、
前記第１の２次元フレームおよび前記第２の２次元フレームから複数の２次元動きベクトルを導出することであって、前記複数の２次元動きベクトルの各々が、前記第１の２次元フレーム中の要素の座標から前記第２の２次元フレーム中の前記要素の座標への推定されたオフセットを含む、複数の２次元動きベクトルを導出することと、
前記進展する３次元シーンについての深度情報を受信することと、
前記複数の２次元動きベクトルおよび前記深度情報を使用して、合成２次元フレームを外挿することと
ユーザに前記合成２次元フレームを表示することと
を含む、コンピュータ実装方法。
【請求項２】
前記第１の２次元フレームおよび前記第２の２次元フレームが、所望のフレームレートの１／２において、前記進展する３次元シーンから連続的にレンダリングされ、
前記第１の２次元フレームおよび前記第２の２次元フレームが、前記所望のフレームレートの１／２において前記ユーザに連続的に表示され、
前記合成２次元フレームを表示することが、前記所望のフレームレートにおいて前記合成２次元フレームを表示することを含む、
請求項１に記載のコンピュータ実装方法。
【請求項３】
前記第１の２次元フレーム、前記第２の２次元フレーム、および第３の２次元フレームが、前記進展する３次元シーンから連続的にレンダリングされ、
前記第１の２次元フレームおよび前記第２の２次元フレームが、所望のフレームレートにおいて前記ユーザに連続的に表示され、
前記合成２次元フレームを表示することは、
前記第３の２次元フレームが前記所望のフレームレートにおいて前記ユーザに表示されるように適時にレンダリングすることができなかったと決定することと、
前記所望のフレームレートにおいて、前記第３の２次元フレームの代わりに前記合成２次元フレームを表示することと
を含む、
請求項１に記載のコンピュータ実装方法。
【請求項４】
前記複数の２次元動きベクトルおよび前記深度情報を使用して、前記合成２次元フレームを外挿することが、前記複数の２次元動きベクトルに重み付きフィルタを適用することによって、前記複数の２次元動きベクトルからノイズを除去することを含み、
前記深度情報が、前記重み付きフィルタの重みを導出するために使用される、
請求項１に記載のコンピュータ実装方法。
【請求項５】
前記重み付きフィルタが中心重み付きメジアンフィルタである、請求項４に記載のコンピュータ実装方法。
【請求項６】
前記複数の２次元動きベクトルおよび前記深度情報を使用して、前記合成２次元フレームを外挿することが、
前記深度情報を使用して、前記複数の２次元動きベクトルを複数の３次元動きベクトルにコンバートすることと、
前記複数の３次元動きベクトルを使用して、前記合成２次元フレームを外挿することと
を含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記第１の２次元フレームおよび前記第２の２次元フレームから前記複数の２次元動きベクトルを導出することが、
ハードウェア動き推定器への入力として、前記第１の２次元フレームおよび前記第２の２次元フレームを送信することと、
前記ハードウェア動き推定器からの出力として、前記複数の２次元動きベクトルを受信することと
を含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記第１の２次元フレームおよび前記第２の２次元フレームが、仮想現実アプリケーションまたは拡張現実アプリケーションから受信される、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記複数の２次元動きベクトルおよび前記深度情報を使用して、前記合成２次元フレームを外挿することが、前記複数の２次元動きベクトルおよび前記深度情報に少なくとも部分的に基づいて、前記第２の２次元フレームをワーピングすることによって、前記第２の２次元フレームから前記合成２次元フレームを導出することを含む、請求項１に記載のコンピュータ実装方法。
【請求項１０】
物理世界における前記ユーザの並進動きを追跡することと、
前記複数の２次元動きベクトルを導出する前に、前記ユーザの並進動きを考慮するために、前記深度情報を使用して、前記第２の２次元フレームのピクセル要素を再投影することと
をさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項１１】
メモリに記憶されたフレーム受信モジュールであって、
進展する３次元シーンを描く第１の２次元フレームであって、前記進展する３次元シーン中の複数の要素を描く、第１の２次元フレームと、
前記進展する３次元シーンを描く第２の２次元フレームであって、前記複数の要素を描く、第２の２次元フレームと
を受信する、フレーム受信モジュールと、
前記第１の２次元フレームおよび前記第２の２次元フレームから複数の２次元動きベクトルを導出する、メモリに記憶された導出モジュールであって、前記複数の２次元動きベクトルの各々が、前記第１の２次元フレーム中の要素の座標から前記第２の２次元フレーム中の前記要素の座標への推定されたオフセットを含む、導出モジュールと、
前記進展する３次元シーンについての深度情報を受信する、メモリに記憶された深度情報受信モジュールと、
前記複数の２次元動きベクトルおよび前記深度情報を使用して、合成２次元フレームを外挿する、メモリに記憶された外挿モジュールと、
ユーザに前記合成２次元フレームを表示する、メモリに記憶された表示モジュールと、
前記フレーム受信モジュール、前記導出モジュール、前記深度情報受信モジュール、前記外挿モジュール、および前記表示モジュールを実行する、少なくとも１つのプロセッサと
を備える、システム。
【請求項１２】
前記第１の２次元フレームおよび前記第２の２次元フレームが、所望のフレームレートの１／２において、前記進展する３次元シーンから連続的にレンダリングされ、
前記第１の２次元フレームおよび前記第２の２次元フレームが、前記所望のフレームレートの１／２において前記ユーザに連続的に表示され、
前記表示モジュールが、前記所望のフレームレートにおいて前記合成２次元フレームを表示する、
請求項１１に記載のシステム。
【請求項１３】
前記第１の２次元フレーム、前記第２の２次元フレーム、および第３の２次元フレームが、前記進展する３次元シーンから連続的にレンダリングされ、
前記表示モジュールが、所望のフレームレートにおいて前記ユーザに前記第１の２次元フレームおよび前記第２の２次元フレームをさらに連続的に表示し、
前記表示モジュールは、
前記第３の２次元フレームが前記所望のフレームレートにおいて前記ユーザに表示されるように適時にレンダリングすることができなかったと決定することと、
前記所望のフレームレートにおいて、前記第３の２次元フレームの代わりに前記合成２次元フレームを表示することと
を行うことによって、前記合成２次元フレームを表示する、
請求項１１に記載のシステム。
【請求項１４】
前記外挿モジュールが、前記複数の２次元動きベクトルに重み付きフィルタを適用することによって、前記複数の２次元動きベクトルからノイズを除去することによって、前記複数の２次元動きベクトルおよび前記深度情報を使用して、前記合成２次元フレームを外挿し、
前記深度情報が、前記重み付きフィルタの重みを導出するために使用される、
請求項１１に記載のシステム。
【請求項１５】
前記重み付きフィルタが中心重み付きメジアンフィルタである、請求項１４に記載のシステム。
【請求項１６】
前記外挿モジュールが、
前記深度情報を使用して、前記複数の２次元動きベクトルを複数の３次元動きベクトルにコンバートすることと、
前記複数の３次元動きベクトルを使用して、前記合成２次元フレームを外挿することと
を行うことによって、前記複数の２次元動きベクトルおよび前記深度情報を使用して、前記合成２次元フレームを外挿する、請求項１１に記載のシステム。
【請求項１７】
前記導出モジュールが、
ハードウェア動き推定器への入力として、前記第１の２次元フレームおよび前記第２の２次元フレームを送信することと、
前記ハードウェア動き推定器からの出力として、前記複数の２次元動きベクトルを受信することと
を行うことによって、前記第１の２次元フレームおよび前記第２の２次元フレームから前記複数の２次元動きベクトルを導出する、請求項１１に記載のシステム。
【請求項１８】
前記フレーム受信モジュールが、仮想現実アプリケーションまたは拡張現実アプリケーションから、前記第１の２次元フレームおよび前記第２の２次元フレームを受信する、請求項１１に記載のシステム。
【請求項１９】
前記外挿モジュールが、前記複数の２次元動きベクトルおよび前記深度情報に少なくとも部分的に基づいて、前記第２の２次元フレームをワーピングすることによって、前記複数の２次元動きベクトルおよび前記深度情報を使用して、前記第２の２次元フレームから前記合成２次元フレームを外挿する、請求項１１に記載のシステム。
【請求項２０】
コンピュータ可読命令を備える、コンピュータ可読媒体であって、前記コンピュータ可読命令が、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されたとき、前記コンピューティングデバイスに、
進展する３次元シーンを描く第１の２次元フレームを受信することであって、前記第１の２次元フレームが、前記進展する３次元シーン中の複数の要素を描く、第１の２次元フレームを受信することと、
前記進展する３次元シーンを描く第２の２次元フレームを受信することであって、前記第２の２次元フレームが、前記複数の要素を描く、第２の２次元フレームを受信することと、
前記第１の２次元フレームおよび前記第２の２次元フレームから複数の２次元動きベクトルを導出することであって、前記複数の２次元動きベクトルの各々が、前記第１の２次元フレーム中の要素の座標から前記第２の２次元フレーム中の前記要素の座標への推定されたオフセットを含む、複数の２次元動きベクトルを導出することと、
前記進展する３次元シーンについての深度情報を受信することと、
前記複数の２次元動きベクトルおよび前記深度情報を使用して、合成２次元フレームを外挿することと、
ユーザに前記合成２次元フレームを表示することと
を行わせる、コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
仮想現実（ＶＲ）および拡張現実（ＡＲ）ヘッドセットは、ますます多くのアクティビティにおいて使用するために人気が増している。そのようなヘッドセットは、ユーザの視界に視覚情報を組み込んで、ユーザの周囲を強化するか、またはユーザが没入型３次元（３Ｄ）仮想環境に入ることを可能にし得る。ＶＲおよびＡＲヘッドセットは、しばしば、ゲーミングおよび他のエンターテインメント目的のために利用されるが、ＶＲおよびＡＲヘッドセットは、通常、レクリエーション以外の目的のためにも採用され、たとえば、政府は軍事トレーニングシミュレーションのためにＶＲおよびＡＲヘッドセットを使用し得、医師は手術を行うためにＶＲおよびＡＲヘッドセットを使用し得、技術者は、視覚化補助としてＶＲおよびＡＲヘッドセットを使用し得る。ＶＲおよびＡＲシステムも、様々な情況において個人間の対人的な対話を容易にすることにおけるそれらの効用について、ますます認識されている。
【０００２】
説得力のある、実物そっくりのＶＲまたはＡＲ環境を、臨場感を作り出すのに十分に速いレートにおいてレンダリングすることは、ハードウェアリソースに対して過酷であることがある。一般に、ＶＲおよびＡＲハードウェアは、コンパクトで電力効率が良い必要があるが、同時に極めて能力がある必要がある。ＶＲまたはＡＲアプリケーションでは、フレーム（または静止画像）が、概して、ユーザの移動に従って生成され、遅いフレームレートが、スタッターまたはフリッカーとして気づかれることがある。その結果、多くのＶＲまたはＡＲアプリケーションは、スタッターフリー（ｓｔｕｔｔｅｒ−ｆｒｅｅ）およびフリッカーフリー（ｆｌｉｃｋｅｒ−ｆｒｅｅ）のビジュアルを作り出すために、理想的には（たとえば、９０フレーム毎秒よりも大きい）高いフレームレートにおいて閲覧される。この理由で、ＶＲおよびＡＲアプリケーションは、しばしば、ＶＲまたはＡＲアプリケーションを理想的に閲覧するために提案され得る推奨ハードウェア仕様のセットを伴う。残念ながら、これらの推奨ハードウェア仕様を満たし、高いフレームレートが可能である現在のＶＲおよびＡＲシステムは、多くの人々および／または団体にとってアクセス可能でないか、または多くの人々および／または団体に対して手ごろでないことがある。本開示は、したがって、理想的には高いフレームレートにおいて閲覧されるＶＲまたはＡＲアプリケーションがより低いフレームレートにおいて閲覧されることを可能にする、システムおよび方法の必要を識別し、その必要に対処し、これは、ユーザが、より手ごろな最小仕様ハードウェアおよびシステム上でこれらのアプリケーションを閲覧することを可能にし得る。
【発明の概要】
【０００３】
以下でより詳細に説明されるように、本開示は、深度情報を使用して２次元（２Ｄ）画像を外挿するためのシステムおよび方法について説明する。一例では、深度情報を使用して、２Ｄ画像を外挿するためのコンピュータ実装方法は、（１）進展する３Ｄシーンと進展する３Ｄシーン中の要素とを描く第１の２Ｄフレームを受信することと、（２）進展する３Ｄシーンと要素とを描く第２の２Ｄフレームを受信することと、（３）第１の２Ｄフレームおよび第２の２Ｄフレームから２Ｄ動きベクトルを導出することであって、２Ｄ動きベクトルが、各々、第１の２Ｄフレーム中の要素の座標から第２の２Ｄフレーム中の要素の座標への推定されたオフセットを含む、２Ｄ動きベクトルを導出することと、（４）進展する３Ｄシーンについての深度情報を受信することと、（５）２Ｄ動きベクトルおよび深度情報を使用して、合成２Ｄフレームを外挿することと、（６）ユーザに合成２Ｄフレームを表示することとを含み得る。
【０００４】
いくつかの例では、第１の２Ｄフレームおよび第２の２Ｄフレームは、所望のフレームレートの１／２において、進展する３Ｄシーンから連続的にレンダリングされ得、第１の２Ｄフレームおよび第２の２Ｄフレームは、所望のフレームレートの１／２においてユーザに連続的に表示され得、合成２Ｄフレームを表示するステップは、所望のフレームレートにおいて合成２Ｄフレームを表示することを含み得る。他の例では、第１の２Ｄフレーム、第２の２Ｄフレーム、および第３の２Ｄフレームが、進展する３Ｄシーンから連続的にレンダリングされ得、第１の２Ｄフレームおよび第２の２Ｄフレームは、所望のフレームレートにおいてユーザに連続的に表示され得、合成２Ｄフレームを表示するステップは、（１）第３の２Ｄフレームが所望のフレームレートにおいてユーザに表示されるように適時にレンダリングすることができなかったと決定することと、（２）所望のフレームレートにおいて、第３の２Ｄフレームの代わりに合成２Ｄフレームを表示することとを含み得る。
【０００５】
いくつかの例では、２Ｄ動きベクトルおよび深度情報を使用して、合成２Ｄフレームを外挿するステップは、２Ｄ動きベクトルに重み付きフィルタ（ｗｅｉｇｈｔｅｄ  ｆｉｌｔｅｒ）を適用することによって、２Ｄ動きベクトルからノイズを除去することを含み得、深度情報は、重み付きフィルタの重みを導出するために使用され得る。少なくとも１つの例では、重み付きフィルタは、中心重み付き（ｃｅｎｔｅｒ−ｗｅｉｇｈｔｅｄ）メジアンフィルタであり得る。いくつかの例では、２Ｄ動きベクトルおよび深度情報を使用して、合成２Ｄフレームを外挿するステップは、（１）深度情報を使用して、２Ｄ動きベクトルを３Ｄ動きベクトルにコンバートすることと、（２）３Ｄ動きベクトルを使用して、合成２Ｄフレームを外挿することと含み得る。
【０００６】
いくつかの例では、第１の２Ｄフレームおよび第２の２Ｄフレームから２Ｄ動きベクトルを導出するステップは、（１）ハードウェア動き推定器への入力として、第１の２Ｄフレームおよび第２の２Ｄフレームを送信することと、（２）ハードウェア動き推定器からの出力として、２Ｄ動きベクトルを受信することとを含み得る。いくつかの例では、第１の２Ｄフレームおよび第２の２Ｄフレームは、ＶＲアプリケーションまたはＡＲアプリケーションから受信され得る。いくつかの例では、２Ｄ動きベクトルおよび深度情報を使用して、合成２Ｄフレームを外挿するステップは、２Ｄ動きベクトルおよび深度情報に少なくとも部分的に基づいて、第２の２Ｄフレームをワーピングすることによって、第２の２Ｄフレームから合成２Ｄフレームを導出することを含み得る。いくつかの例では、本コンピュータ実装方法は、物理世界におけるユーザの並進動き（ｔｒａｎｓｌａｔｉｏｎａｌ  ｍｏｔｉｏｎ）を追跡することと、複数の２次元動きベクトルを導出する前に、ユーザの並進動きを考慮するために、深度情報を使用して、第２の２次元フレームのピクセル要素を再投影することとをさらに含み得る。
【０００７】
さらに、深度情報を使用して、２Ｄ画像を外挿するための対応するシステムは、（１）（ａ）進展する３Ｄシーンを描く第１の２Ｄフレームと、（ｂ）進展する３Ｄシーンを描く第２の２Ｄフレームとを受信するフレーム受信モジュールと、（２）第１の２Ｄフレームおよび第２の２Ｄフレームから２Ｄ動きベクトルを導出する導出モジュールであって、２Ｄ動きベクトルが、各々、第１の２Ｄフレーム中の要素の座標から第２の２Ｄフレーム中の要素の座標への推定されたオフセットを含む、導出モジュールと、（３）進展する３Ｄシーンについての深度情報を受信する深度情報受信モジュールと、（４）２Ｄ動きベクトルおよび深度情報を使用して、合成２Ｄフレームを外挿する外挿モジュールと、（５）ユーザに合成２Ｄフレームを表示する表示モジュールとを含む、メモリに記憶されたいくつかのモジュールを含み得る。本システムは、フレーム受信モジュール、導出モジュール、深度情報受信モジュール、外挿モジュール、および表示モジュールを実行する、少なくとも１つのプロセッサをさらに含み得る。
【０００８】
いくつかの例では、第１の２Ｄフレームおよび第２の２Ｄフレームは、所望のフレームレートの１／２において、進展する３Ｄシーンから連続的にレンダリングされ得、第１の２Ｄフレームおよび第２の２Ｄフレームは、所望のフレームレートの１／２においてユーザに連続的に表示され得、表示モジュールは、所望のフレームレートにおいて合成２Ｄフレームを表示し得る。他の例では、第１の２Ｄフレーム、第２の２Ｄフレーム、および第３の２Ｄフレームが、進展する３Ｄシーンから連続的にレンダリングされ得、表示モジュールは、所望のフレームレートにおいてユーザに第１の２Ｄフレームおよび第２の２Ｄフレームを連続的に表示し得、表示モジュールは、（１）第３の２Ｄフレームが所望のフレームレートにおいてユーザに表示されるように適時にレンダリングすることができなかったと決定することと、（２）所望のフレームレートにおいて、第３の２Ｄフレームの代わりに合成２Ｄフレームを表示することとを行うことによって、合成２Ｄフレームを表示し得る。
【０００９】
いくつかの例では、外挿モジュールは、２Ｄ動きベクトルに重み付きフィルタを適用することによって、２Ｄ動きベクトルからノイズを除去することによって、２Ｄ動きベクトルおよび深度情報を使用して、合成２Ｄフレームを外挿し得、深度情報は、重み付きフィルタの重みを導出するために使用され得る。少なくとも１つの例では、重み付きフィルタは、中心重み付きメジアンフィルタであり得る。いくつかの例では、外挿モジュールは、（１）深度情報を使用して、２Ｄ動きベクトルを３Ｄ動きベクトルにコンバートすることと、（２）３Ｄ動きベクトルを使用して合成２Ｄフレームを外挿することとを行うことによって、２Ｄ動きベクトルおよび深度情報を使用して、合成２Ｄフレームを外挿し得る。
【００１０】
いくつかの例では、導出モジュールは、（１）ハードウェア動き推定器への入力として、第１の２Ｄフレームおよび第２の２Ｄフレームを送信することと、（２）ハードウェア動き推定器からの出力として、２Ｄ動きベクトルを受信することとを行うことによって、第１の２Ｄフレームおよび第２の２Ｄフレームから２Ｄ動きベクトルを導出し得る。いくつかの例では、フレーム受信モジュールは、ＶＲアプリケーションまたはＡＲアプリケーションから、第１の２Ｄフレームおよび第２の２Ｄフレームを受信し得る。いくつかの例では、外挿モジュールは、２Ｄ動きベクトルおよび深度情報に少なくとも部分的に基づいて、第２の２Ｄフレームをワーピングすることによって、２Ｄ動きベクトルおよび深度情報を使用して、第２の２Ｄフレームから合成２Ｄフレームを外挿し得る。
【００１１】
いくつかの例では、上記で説明された方法は、コンピュータ可読媒体上にコンピュータ可読命令として符号化され得る。
たとえば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されたとき、コンピューティングデバイスに、（１）進展する３Ｄシーンと進展する３Ｄシーン中の要素とを描く第１の２Ｄフレームを受信することと、（２）進展する３Ｄシーンと要素とを描く第２の２Ｄフレームを受信することと、（３）第１の２Ｄフレームおよび第２の２Ｄフレームから２Ｄ動きベクトルを導出することであって、２Ｄ動きベクトルが、各々、第１の２Ｄフレーム中の要素の座標から第２の２Ｄフレーム中の要素の座標への推定されたオフセットを含む、２Ｄ動きベクトルを導出することと、（４）進展する３Ｄシーンについての深度情報を受信することと、（５）２Ｄ動きベクトルおよび深度情報を使用して、合成２Ｄフレームを外挿することと、（６）ユーザに合成２Ｄフレームを表示することとを行わせ得る１つまたは複数のコンピュータ実行可能命令を含み得る。いくつかの例では、第１の２Ｄフレームおよび第２の２Ｄフレームは、所望のフレームレートの１／２において、進展する３Ｄシーンから連続的にレンダリングされ得、第１の２Ｄフレームおよび第２の２Ｄフレームは、所望のフレームレートの１／２においてユーザに連続的に表示され得、コンピュータ実行可能命令は、コンピューティングデバイスに、所望のフレームレートにおいて合成２Ｄフレームを表示することをさらに行わせ得る。
【００１２】
上述の実施形態のいずれかからの特徴は、本明細書で説明される一般的な原理に従って、互いに組み合わせて使用され得る。これらおよび他の実施形態、特徴、および利点は、添付の図面および特許請求の範囲とともに以下の発明を実施するための形態を読むと、より十分に理解されよう。
【００１３】
添付の図面は、いくつかの例示的な実施形態を示し、本明細書の一部である。以下の説明とともに、これらの図面は、本開示の様々な原理を論証および説明する。
【図面の簡単な説明】
【００１４】
【図１】いくつかの実施形態による、例示的なディスプレイシステムのブロック図である。
【図２】いくつかの実施形態による、例示的な３Ｄシーンのトップダウン図である。
【図３】いくつかの実施形態による、図２に示されている例示的な３Ｄシーンの正面図である。
【図４】いくつかの実施形態による、図２に示されている例示的な３Ｄシーンの別のトップダウン図である。
【図５】いくつかの実施形態による、図２に示されている例示的な３Ｄシーンの別の正面図である。
【図６】いくつかの実施形態による、例示的なフレームレートを示すタイミング図である。
【図７】いくつかの実施形態による、例示的なフレームレートを示すタイミング図である。
【図８】いくつかの実施形態による、図２および図３に示されている例示的な３Ｄシーンを描く例示的な２Ｄフレームのブロック図である。
【図９】いくつかの実施形態による、図４および図５に示されている例示的な３Ｄシーンを描く例示的な２Ｄフレームのブロック図である。
【図１０】いくつかの実施形態による、例示的な深度情報のブロック図である。
【図１１】深度情報を使用して、２Ｄフレームを外挿するための例示的な方法の流れ図である。
【図１２】いくつかの実施形態による、例示的な２Ｄ動きベクトルのブロック図である。
【図１３】いくつかの実施形態による、深度情報を使用して、レンダリングされた２Ｄフレームを位置的に再投影するための例示的なデータフローの流れ図である。
【図１４】いくつかの実施形態による、例示的な３Ｄ動きベクトルのブロック図である。
【図１５】いくつかの実施形態による、例示的な２Ｄ合成フレームのブロック図である。
【発明を実施するための形態】
【００１５】
図面全体にわたって、同一の参照符号および説明は、同様であるが必ずしも同一でない要素を指示する。本明細書で説明される例示的な実施形態は、様々な変更および代替形態が可能であるが、特定の実施形態が、図面において例として示されており、本明細書で詳細に説明される。しかしながら、本明細書で説明される例示的な実施形態は、開示される特定の形態に限定されるものではない。むしろ、本開示は、添付の特許請求の範囲内に入るすべての変更形態、均等物、および代替形態を包含する。
【００１６】
本開示は、一般に、深度情報を使用して、レンダリングされた２Ｄフレームのシーケンスから合成２Ｄフレームを外挿するフレームレート平滑化技法を対象とする。以下でより詳細に説明されるように、本開示の実施形態は、進展する３Ｄシーンからの深度情報と、３Ｄシーンからレンダリングされた２Ｄフレームからの動きの推定値とを使用して、補足的合成２Ｄフレームを外挿し得る。いくつかの例では、本明細書で説明されるシステムおよび方法は、ＶＲまたはＡＲアプリケーションがディスプレイの所望のフレームレートまたは最適フレームレートよりも低いフレームレートにおいて３Ｄシーンをレンダリングするときはいつでも、これらの補足的合成２Ｄフレームを表示し得、これは、ＶＲまたはＡＲエクスペリエンスが、滑らかで、ユーザにとって楽しめるもののままであることを確実にし得る。追加または代替として、本明細書で説明されるシステムおよび方法は、ディスプレイの所望のフレームレートまたは最適フレームレートにおいて２Ｄフレームをレンダリングすることができないハードウェア上で稼働しているＶＲまたはＡＲアプリケーションについて補足的合成２Ｄフレームを表示し得、これは、楽しめるＶＲまたはＡＲエクスペリエンスを以前はもたらすことができなかったより低い性能のハードウェア上のＶＲまたはＡＲエクスペリエンスを改善し得る。少なくとも１つの例では、ＶＲまたはＡＲアプリケーションによってレンダリングされたあらゆる２Ｄフレームについて合成２Ｄフレームを表示することによって、本明細書で説明されるシステムおよび方法は、ＶＲまたはＡＲアプリケーションがディスプレイの所望のフレームレートまたは最適フレームレートの１／２において２Ｄフレームをレンダリングすることを可能にし得、これは、３Ｄシーンから２Ｄフレームを作り出すために必要とされる中央処理ユニット（ＣＰＵ）および／またはグラフィカル処理ユニット（ＧＰＵ）の時間を１／２にし得る。
【００１７】
以下は、図１を参照しながら、深度情報を使用して２Ｄフレームを外挿するための例示的なシステムの詳細な説明を提供する。図２〜図５に関して、例示的な進展する３Ｄシーンの詳細な説明が提供される。図６および図７は、２Ｄフレームを表示するための例示的なフレームレートの詳細な説明を提供する。さらに、図８〜図１０および図１２〜図１５に関して、例示的な２Ｄフレーム、深度情報、および動きベクトルの詳細な説明が提供される。また、図１１に関して、深度情報を使用して、２Ｄフレームを外挿するための方法の詳細な説明が提供される。
【００１８】
図１は、進展する３Ｄシーンを描く２Ｄフレームのシーケンスをユーザに表示するための例示的なシステム１００のブロック図である。この図において示されているように、システム１００は、進展する３Ｄシーン１０４を管理するアプリケーション１０２を含み得る。いくつかの例では、アプリケーション１０２は、ヘッドマウントディスプレイシステムを介してユーザによって閲覧される進展する対話型３Ｄ環境を管理する、ＶＲアプリケーションまたはＡＲアプリケーションを表し得る。いくつかの例では、アプリケーション１０２は、３Ｄシーン１０４を管理またはレンダリングするために、ＣＰＵおよび／またはＧＰＵを使用し得る。ディスプレイ１０８は、液晶ディスプレイ（ＬＣＤ）スクリーン、有機発光ダイオード（ＯＬＥＤ）スクリーン（たとえば、アクティブマトリックスＯＬＥＤスクリーン）、プラズマスクリーン、および／または任意の他の好適なディスプレイスクリーンなど、任意の好適なディスプレイスクリーンまたはディスプレイスクリーンの組合せを表し得る。いくつかの例では（たとえば、ヘッドマウントディスプレイシステムに組み込まれるとき）、ディスプレイ１０８は、ユーザの左眼に見える左側と、ユーザの右眼に見える右側とを含み得る。いくつかの例では、ディスプレイ１０８の左側および右側は、３Ｄシーン１０４の左眼ビューおよび右眼ビューを単一の３Ｄ画像として描く、別個の画像の立体写真（ｓｔｅｒｅｏｓｃｏｐｉｃ  ｐａｉｒ）を表示するために使用され得る。
【００１９】
いくつかの実施形態では、「３次元シーン」という用語は、計算を実施すること、および／または２Ｄ画像をレンダリングすることを行うために使用され得る、幾何学的データの任意の３Ｄ表現またはモデルを指し得る。いくつかの例では、「３次元シーン」という用語は、ＶＲまたはＡＲ対話型環境の３Ｄ表現またはモデルを指し得る。いくつかの例では、３次元シーンは、３Ｄ空間内に位置し得る３Ｄ物体または要素を含み得る。３Ｄシーンは、３Ｄシーン中の３Ｄ物体または要素が、互いに対して、および／あるいはユーザまたはカメラ視野に対して移動するように、時間とともに進展し得る。
【００２０】
図２〜図５は、例示的な３Ｄシーン１０４を示す。これらの図において示されているように、３Ｄシーン１０４は、前景物体２０２と、中景物体２０４と、背景物体２０６とを含み得る。この例では、前景物体２０２は、視野２０８に対して右から左に（すなわち、負のＸ方向に）移動していることがあり、中景物体２０４は、視野２０８に対して左から右に（すなわち、正のＸ方向に）移動していることがあり、背景物体２０６は、視野２０８に対して静止していることがある。図２および図３は、それぞれ、視野２０８から、前景物体２０２と中景物体２０４とが、背景物体２０６に重なるが、互いに重ならないときの、第１の時間における３Ｄシーン１０４のトップダウン図および正面図を示す。図４および図５は、それぞれ、視野２０８から、前景物体２０２および中景物体２０４が背景物体２０６に重なり、前景物体２０２が中景物体２０４に重なるときの、後続の時間における３Ｄシーン１０４のトップダウン図および正面図を示す。
【００２１】
図１に戻ると、アプリケーション１０２は、ディスプレイ１０８を介したユーザへの表示のために、３Ｄシーン１０４を２Ｄフレーム１０６（１）〜（Ｎ）のシーケンスにレンダリングし得る。アプリケーション１０２がＶＲまたはＡＲアプリケーションである例では、アプリケーション１０２は、３Ｄシーン１０４を２回、すなわち、左眼視野で１回および右眼視野で１回、レンダリングする必要があり得る。そのような例では、２Ｄフレーム１０６（１）〜（Ｎ）は、左眼視野または右眼視野のいずれかについてレンダリングされた２Ｄフレームを表し得る。
【００２２】
いくつかの例では、アプリケーション１０２は、所望のフレームレート未満（たとえば、ディスプレイ１０８の最適フレームレート未満、あるいはＶＲまたはＡＲ環境を閲覧するための最適フレームレート未満）において、３Ｄシーン１０４を２Ｄフレームに連続的にレンダリングし得る。いくつかの状況では、アプリケーション１０２は、適切なハードウェアリソースの欠如のために、所望のフレームレートまたは最適フレームレートにおいて、３Ｄシーン１０４を２Ｄフレーム１０６（１）〜（Ｎ）に連続的にレンダリングすることができないことがある。これらの状況では、以下で説明されるように、本明細書で説明されるシステムは、所望のフレームレートまたは最適フレームレートにおいてディスプレイ１０８を介して２Ｄフレーム（すなわち、レンダリングされた２Ｄフレームおよび合成２Ｄフレーム）を表示するために、２Ｄフレーム１０６（１）〜（Ｎ）を合成２Ｄフレーム１２２（１）〜（Ｎ）で補足し得る。
【００２３】
図６は、アプリケーション１０２が３Ｄシーン１０４から２Ｄフレーム１０６（１）〜（Ｎ）をレンダリングし得る、例示的なフレームレート（すなわち、４５フレーム毎秒）を示す、例示的なタイミング図６００を示す。この例では、ディスプレイ１０８は、９０フレーム毎秒（すなわち、１１ミリ秒（ｍｓ）ごとに１回）において２Ｄフレームを表示することが可能であり得るが、ディスプレイ１０８は、４５フレーム毎秒（すなわち、２Ｄフレーム１０６（１）〜（Ｎ）がアプリケーション１０２によってレンダリングされるレート）において２Ｄフレーム１０６（１）〜（Ｎ）を表示することが可能であるにすぎないことがある。この例に示されているように、ディスプレイ１０８は、２Ｄフレーム１０６（１）〜（Ｎ）と合成２Ｄフレーム１２２（１）〜（Ｎ）とが一緒に９０フレーム毎秒において表示されるように、２Ｄフレーム１０６（１）〜（Ｎ）の合間に合成２Ｄフレーム１２２（１）〜（Ｎ）を表示し得る。
【００２４】
いくつかの例では、アプリケーション１０２は、所望のフレームレートまたは最適フレームレートにおいて、３Ｄシーン１０４を２Ｄフレーム１０６（１）〜（Ｎ）に連続的にレンダリングすることを試み得る。いくつかの例では、アプリケーション１０２は、一般に、所望のフレームレートまたは最適フレームレートにおいて、３Ｄシーン１０４を２Ｄフレーム１０６（１）〜（Ｎ）にレンダリングし得るが、所望のフレームレートまたは最適フレームレートについていくにはあまりに遅く２Ｄフレーム１０６（１）〜（Ｎ）のうちのいくつかを周期的にレンダリングし得る。これらの例では、本明細書で説明されるシステムは、アプリケーション１０２がレンダリングすることが可能である２Ｄフレームを、合成フレーム１２２（１）〜（Ｎ）で補足し得る。
【００２５】
図７は、アプリケーション１０２が３Ｄシーン１０４から２Ｄフレーム１０６（１）〜（Ｎ）をレンダリングすることを試み得る、例示的なフレームレート（すなわち、９０フレーム毎秒）を示す、例示的なタイミング図７００を示す。この例では、ディスプレイ１０８は、９０フレーム毎秒において２Ｄフレームを表示することが可能であり得る。図７に示されているように、アプリケーション１０２は、９０フレーム毎秒において表示されるのに十分に迅速に２Ｄフレーム１０６（３）をレンダリングすることができないことがある。しかしながら、この例において示されているように、ディスプレイ１０８は、２Ｄフレーム１０６と合成２Ｄフレーム１２２とが一緒に９０フレーム毎秒において表示され得るように、２Ｄフレーム１０６（２）と１０６（４）との合間に合成２Ｄフレーム１２２（１）および１２２（２）を表示し得る。
【００２６】
図８および図９は、３Ｄシーン１０４からレンダリングされた例示的な２Ｄフレームを示す。いくつかの例では、アプリケーション１０２は、視野２０８から、図２および図３に示されている３Ｄシーン１０４を、図８に示されている２Ｄフレーム１０６（１）にレンダリングし得る。この例では、２Ｄフレーム１０６（１）は、ピクセル要素（たとえば、ピクセル、ブロック、またはマクロブロック）の列８００と、ピクセル要素の行８０２とを含み得る。図８に見られるように、２Ｄフレーム１０６（１）は、前景物体２０２と中景物体２０４とが、背景物体２０６に重なるが、互いに重ならないことを描く。後で、アプリケーション１０２は、視野２０８から、図４および図５に示されている３Ｄシーン１０４を、図９に示されている２Ｄフレーム１０６（２）にレンダリングし得る。この例では、２Ｄフレーム１０６（２）は、ピクセル要素の列９００と、ピクセル要素の行９０２とを含み得る。図９に見られるように、２Ｄフレーム１０６（２）は、前景物体２０２および中景物体２０４が背景物体２０６に重なり、前景物体２０２が中景物体２０４に重なることを描く。
【００２７】
３Ｄシーン１０４から２Ｄフレームをレンダリングすることに加えて、アプリケーション１０２はまた、３Ｄシーン１０４からレンダリングされた各２Ｄフレームについての深度情報を生成するように構成され得る。たとえば、アプリケーション１０２は、それぞれ、２Ｄフレーム１０６（１）〜（Ｎ）に対応する深度情報１１０（１）〜（Ｎ）を生成し得る。いくつかの実施形態では、「深度情報」という用語は、３Ｄシーン中の要素を描く２Ｄフレーム中のピクセル要素にマッピングされる３Ｄシーン中の要素の深度の任意の測定値を指し得る。深度情報は、任意の好適なフォーマットを使用して表され得る。いくつかの例では、深度情報は、好適な線形フォーマットまたは好適な非線形フォーマットを使用して表され得る。図１０は、３Ｄシーン１０４から導出された例示的な深度情報を示す。この例では、深度情報１１０（１）は、２Ｄフレーム１０６（１）に対応し得る。示されているように、深度情報１１０（１）は、各々が列８００のうちの１つに対応する要素の列１０００と、各々が行８０２のうちの１つに対応する要素の行１００２とを含み得る。この例では、要素１００４および１００８は、背景物体２０６の深度測定値を表し得、要素１００６は、中景物体２０４の深度測定値を表し得、要素１０１０は、前景物体２０２の深度測定値を表し得る。図１０中に含まれている深度測定値は、主に説明の目的のためのものであり、網羅的であること、または示されている正確な形態に限定されることは意図されない。
【００２８】
図１に示されているように、例示的なシステム１００は、ディスプレイ１０８を介して２Ｄフレームを表示するための１つまたは複数のモジュールを含み得る。以下でより詳細に説明されるように、システム１００は、（１）３Ｄシーン１０４を描く２Ｄフレーム１０６（１）〜（Ｎ）を受信するフレーム受信モジュール１１２と、（２）２Ｄフレーム１０６（１）〜（Ｎ）から２Ｄ動きベクトル１１６（１）〜（Ｎ）を導出する導出モジュール１１４と、（３）進展する３Ｄシーン１０４についての深度情報１１０（１）〜（Ｎ）を受信する深度情報受信モジュール１１８と、（４）２Ｄフレーム１０６（１）〜（Ｎ）、２Ｄ動きベクトル１１６（１）〜（Ｎ）、および深度情報１１０（１）〜（Ｎ）を使用して、合成２Ｄフレーム１２２（１）〜（Ｎ）を外挿する外挿モジュール１２０と、（５）ディスプレイ１０８を介してユーザに２Ｄフレーム１０６（１）〜（Ｎ）および／または合成２Ｄフレーム１２２（１）〜（Ｎ）を表示する表示モジュール１２４とを含み得る。別個の要素として示されているが、図１に描かれているモジュールのうちの１つまたは複数は、単一のモジュールまたはアプリケーションの部分を表し得る。
【００２９】
図１１は、深度情報を使用して、２Ｄ画像を外挿するための例示的なコンピュータ実装方法１１００の流れ図である。図１１に示されているステップは、図１に示されているシステムを含む、任意の好適なコンピュータ実行可能コードおよび／またはコンピューティングシステムによって実施され得る。一例では、図１に示されているステップの各々は、その構造が複数のサブステップを含み、および／または複数のサブステップによって表される、アルゴリズムを表し得、その例は以下でより詳細に提供される。
【００３０】
図１１に示されているように、ステップ１１０２において、本明細書で説明されるシステムのうちの１つまたは複数は、進展する３Ｄシーンを描く２Ｄフレームを受信し得る。たとえば、フレーム受信モジュール１１２は、アプリケーション１０２から、３Ｄシーン１０４を描く２Ｄフレーム１０６（１）〜（Ｎ）を受信し得る。概して、本明細書で説明されるシステムは、ディスプレイの所望のフレームレートまたは最適フレームレートにおいてあるいはディスプレイの所望のフレームレートまたは最適フレームレートを下回って、アプリケーション１０２から、３Ｄシーン１０４を描く２Ｄフレーム１０６（１）〜（Ｎ）を受信し得る。
【００３１】
ステップ１１０４において、本明細書で説明されるシステムのうちの１つまたは複数は、２Ｄフレームから２Ｄ動きベクトルを導出し得る。たとえば、導出モジュール１１４は、連続する２Ｄフレーム１０６（１）〜（Ｎ）から２Ｄ動きベクトル１１６（１）〜（Ｎ）を導出し得る。いくつかの実施形態では、「２次元動きベクトル」という用語は、動きシーケンス中の２つの連続２Ｄフレームの要素間の動きの任意の推定値を指し得る。いくつかの例では、「２次元動きベクトル」という用語は、２つのフレームのピクセルまたはマクロブロック間の動きのピクセルレベルまたはマクロブロックレベルの推定値を指し得る。いくつかの実施形態では、「２次元動きベクトル」という用語は、動きシーケンス中の２つの連続フレーム中で見つけられた物体または特徴間の動きの物体レベルまたは特徴レベルの推定値を指し得る。
【００３２】
図１２は、図８および図９に示されている２Ｄフレーム１０６（１）および１０６（２）から導出された例示的な２Ｄ動きベクトル１１６（１）を示す。２Ｄフレーム１０６（１）および２Ｄフレーム１０６（２）に描かれているように、前景物体２０２は右から左に移動しており、中景物体２０４は左から右に移動して示されており、背景物体２０６は静止して示されている。２Ｄ動きベクトル１１６（１）は、２Ｄフレーム１０６（１）および１０６（２）の各ピクセル要素についての動き推定値または測定値を含み得る。図１２に示されているように、２Ｄ動きベクトル１１６（１）は、各々が列８００または列９００のうちの１つに対応する要素の列１２００と、各々が行８０２または行９０２のうちの１つに対応する要素の行１２０２とを含み得る。この例では、要素１２０４および１２０８の各々は、背景物体２０６についての推定された動きベクトルを含んでいることがあり、要素１２０６の各々は、中景物体２０４の推定された動きベクトルを含んでいることがあり、要素１２１０の各々は、前景物体２０２の推定された動きベクトルを含んでいることがある。図１２中に含まれている動き推定は、主に説明の目的のためのものであり、網羅的であること、または示されている正確な形態に限定されることは意図されない。
【００３３】
本明細書で説明されるシステムは、様々なやり方で２Ｄフレームから２Ｄ動きベクトルを導出し得る。一例では、導出モジュール１１４は、２Ｄフレームから２Ｄ動きベクトルを導出するために、ハードウェア動き推定器（たとえば、２つのフレーム間の動きを推定することが可能なＧＰＵ）を使用し得る。たとえば、導出モジュール１１４は、ハードウェア動き推定器１２６に２Ｄフレーム１０６（１）〜（Ｎ）の連続するペアを受け渡し得、２Ｄフレーム１０６（１）〜（Ｎ）の連続するペア間の動きの推定値を含んでいる２Ｄ動きベクトル１１６（１）〜（Ｎ）のうちの対応する１つを受信し得る。概して、本明細書で説明されるシステムは、２Ｄフレームを表示しながら、２Ｄフレームから動きベクトルを非同期的に導出し得る。
【００３４】
いくつかの状況では、進展する３Ｄシーンからレンダリングされた連続する２Ｄフレーム間で発生する動きのうちの一部（たとえば、視差動き）が、物理世界におけるユーザの並進動きによって引き起こされ得る。一般に、ユーザが物理世界において並進的に移動するとき、ユーザの視点を表すカメラの位置は、ユーザの並進移動を反映するために３Ｄシーンに対して更新され得る。したがって、３Ｄシーン中の物体は、わずかに異なる視点からのカメラによってレンダリングされ得、これは、物体が３Ｄシーンに対して移動していなかった場合でも、連続する２Ｄフレーム中の物体の位置が異なることを生じ得る。いくつかの例では、連続する２Ｄフレームから導出された２Ｄ動きベクトルは、ユーザの並進動きによって全体的にまたは部分的に引き起こされた動きの推定値をキャプチャするかまたは表し得る。これらの例では、ユーザの並進動きは、（以下で説明されるように）これらの２Ｄ動きベクトルと、連続する２Ｄフレームのうちの１つまたは複数とが、合成２Ｄフレームを外挿するために使用されるとき、考慮され得る。
【００３５】
いくつかの例では、本明細書で説明されるシステムは、物理世界におけるユーザの並進動きを正確に測定するために、様々なハードウェアセンサー（たとえば、固定室内センサーおよび／または身体装着型（ｂｏｄｙ−ａｔｔａｃｈｅｄ）センサー）を使用し得る。推定された２Ｄ動きベクトルは、２Ｄフレームを外挿するときにユーザの並進動きの影響を考慮するために使用され得るが、ユーザの並進動きのセンサー測定値に基づいて２Ｄフレームを外挿することが、この動きを考慮することのより正確なやり方であり得る。したがって、本明細書で説明されるシステムは、ユーザの並進動きを考慮するために、レンダリングされた２Ｄフレームのピクセル要素を位置的に再投影する（たとえば、位置的にワーピングする）ためにこの動きのセンサーの測定値を使用し、その後、位置的に再投影された２Ｄフレームを使用して、他の動きを考慮する２Ｄ動きベクトルを導出し得る。いくつかの例では、ユーザの並進動きを考慮するために２Ｄフレームのピクセル要素を位置的に再投影することによって、本明細書で説明されるシステムは、２Ｄフレームからユーザの並進動きの動き影響を効果的にフィルタ除去し得る。
【００３６】
一例では、本明細書で説明されるシステムは、最初に深度情報を使用して２Ｄフレームのピクセル要素を３Ｄ空間に位置的に投影する（たとえば、２Ｄフレームのピクセル要素をスクリーン空間からカメラ空間またはワールド空間に投影する）ことによって、ユーザの並進動きを考慮するために２Ｄフレームのピクセル要素を再投影し得る。いくつかの例では、本明細書で説明されるシステムは、２Ｄフレームのピクセル要素を３Ｄ空間に位置的に投影するために、逆投影行列（ｐｒｏｊｅｃｔｉｏｎ  ｍａｔｒｉｘ）または高さマップを使用し得る。次に、本明細書で説明されるシステムは、（たとえば、ユーザの並進動きを反映するようにカメラ空間において３Ｄ投影の点を移動することによって）ユーザの並進動きを考慮するために３Ｄ投影を調整し得る。最後に、本明細書で説明されるシステムは、調整された３Ｄ投影を（たとえば、投影行列を使用して）２Ｄフレームに再投影し得る。
【００３７】
図１３は、動きセンサー１３０４によって追跡されたユーザの物理世界の並進動き１３０２に基づいて、深度情報１１０（１）を使用して、レンダリングされた２Ｄフレーム１０６（１）を位置的に再投影するための例示的なデータフロー１３００を示す。この例では、本明細書で説明されるシステムは、レンダリングされた２Ｄフレーム１０６（１）のピクセル要素を３Ｄ投影１３０８としてカメラ空間に位置的に投影するために、逆投影行列１３０６および深度情報１１０（１）を使用し得る。本明細書で説明されるシステムは、次いで、（たとえば、動き１３０２を反映するようにカメラ空間において３Ｄ投影１３０８の点を変換することによって）動き１３０２を考慮するために３Ｄ投影１３０８を調整し得る。いくつかの例では、３Ｄ投影１３０８の調整は、新しい深度情報１３１０を生じ得る。最後に、本明細書で説明されるシステムは、３Ｄ投影１３０８を２Ｄフレーム１３１４に再投影するために、投影行列１３１２を使用し得る。いくつかの例では、本明細書で説明されるシステムおよび方法は、レンダリングされた２Ｄフレーム１０６（１）の代わりに２Ｄフレーム１３１４を使用し得、および／または深度情報１１０（１）の代わりに深度情報１３１０を使用し得る。
【００３８】
ステップ１１０６において、本明細書で説明されるシステムのうちの１つまたは複数は、進展する３Ｄシーンについての深度情報を受信し得る。たとえば、深度情報受信モジュール１１８は、アプリケーション１０２から３Ｄシーン１０４についての深度情報１１０（１）〜（Ｎ）を受信し得る。
【００３９】
ステップ１１０８において、本明細書で説明されるシステムのうちの１つまたは複数は、２Ｄ動きベクトルおよび深度情報を使用して、合成２Ｄフレームを外挿し得る。たとえば、外挿モジュール１２０は、２Ｄ動きベクトル１１６（１）〜（Ｎ）および深度情報１１０（１）〜（Ｎ）を使用して、合成フレーム１２２（１）〜（Ｎ）を外挿し得る。概して、本明細書で説明されるシステムは、レンダリングされた２Ｄフレームを受信および表示しながら、合成２Ｄフレームを非同期的に外挿し得る。
【００４０】
本明細書で説明されるシステムは、２Ｄ動きベクトルおよび深度情報を使用して、様々なやり方で合成２Ｄフレームを外挿し得る。概して、外挿モジュール１２０は、レンダリングされた２Ｄフレームのピクセル要素を、それらの関連付けられた動きベクトルに従ってワーピングする（たとえば、ゆがめる、変換する、または再マッピングする）ことによって、２Ｄまたは３Ｄ動きベクトルを使用して、レンダリングされた２Ｄフレームから合成２Ｄフレームを外挿し得る。前の時間において３Ｄシーンからレンダリングされた２Ｄフレームのピクセル要素に関連付けられた動きベクトルは、後続の時間においてそのピクセル要素がどこにあると予想されるかを予測し得るので、本明細書で説明されるシステムは、２Ｄフレームのピクセル要素に関連付けられた動きベクトルを使用して、後続の時間においてそのピクセル要素がどこにあると予想されるかを予測し、それに応じて２Ｄフレームのそのピクセル要素を再マッピングして、新しい合成２Ｄフレームを外挿し得る。
【００４１】
一例として、図９、図１２、および図１５を使用すると、外挿モジュール１２０は、図９中の２Ｄフレーム１０６（２）のピクセル要素を、それらの関連付けられた動きベクトルに従ってワーピングすることによって、図９中の２Ｄフレーム１０６（２）から図１５中の合成２Ｄフレーム１２２（１）を外挿し得る。図１５に示されているように、合成２Ｄフレーム１２２（１）は、各々が列９００のうちの１つに対応するピクセル要素の列１５００と、各々が行９０２のうちの１つに対応するピクセル要素の行１５０２とを含み得る。この例では、動きベクトル１２０４および１２０８は、背景物体２０６に対応する２Ｄフレーム１０６（２）中のピクセル要素が、静止したままであるべきであり、ワーピングまたは再マッピングされるべきでないことを指示し得、動きベクトル１２０６は、中景物体２０４に対応する２Ｄフレーム１０６（２）中のピクセル要素が、右にワーピングまたは再マッピングされるべきであることを指示し得、動きベクトル１２１０は、前景物体２０２に対応する２Ｄフレーム１０６（２）中のピクセル要素が、左にワーピングまたは再マッピングされるべきであることを指示し得る。
【００４２】
一例では、推定された２Ｄ動きベクトルは、不要なノイズを含んでいることがあり、外挿モジュール１２０は、２Ｄフレームをワーピングするために２Ｄ動きベクトルを使用することより前に、推定された２Ｄ動きベクトルからノイズを除去するために、ノイズ低減フィルタ１２１（たとえば、メジアンフィルタまたは中心重み付きメジアンフィルタ）を使用し得る。いくつかの例では、本明細書で説明されるシステムは、要素のフィルタ処理された値が、同じまたは同様の深度にある近隣要素によってより多く影響を受け、同じまたは同様の深度にない近隣要素によってあまり影響を受けないように、フィルタ重みを導出するために、深度情報を使用し得る。同じ深度にある動きベクトルは、同じ３Ｄ物体に関連付けられる可能性があり、同じ深度にない動きベクトルは、同じ３Ｄ物体に関連付けられる可能性が低いので、ノイズ低減フィルタを重み付けするために深度情報を使用することは、フィルタ処理された動きベクトルの精度を改善し得る。
【００４３】
いくつかの例では、本明細書で説明されるシステムは、深度情報を使用して、２Ｄ動きベクトルを３Ｄ動きベクトルにコンバートし、次いで、３Ｄ動きベクトルを使用して、合成２Ｄフレームを外挿し得る。いくつかの例では、本明細書で説明されるシステムは、深度コンポーネントを決定するために２Ｄ動きベクトルが導出された２つの２Ｄフレームに関連付けられた深度情報を、動き推定と比較し得る。これらの深度コンポーネントは、合成２Ｄフレームを外挿するために使用され得る３Ｄ動きベクトルを生成するために、２Ｄ動きベクトルと組み合わせられ得る。図１４は、深度情報１１０（１）および１１０（２）と、２Ｄ動きベクトル１１６（１）とから導出された、例示的な３Ｄ動きベクトル１１７（１）を示す。３Ｄ動きベクトル１１７（１）は、２Ｄフレーム１０６（１）および１０６（２）の各ピクセル要素についての動き推定値または測定値を含み得る。図１４に示されているように、３Ｄ動きベクトル１１７（１）は、各々が列８００または列９００のうちの１つに対応する要素の列１４００と、各々が行８０２または行９０２のうちの１つに対応する要素の行１４０２とを含み得る。この例では、要素１４０４および１４０８の各々は、背景物体２０６についての推定された３Ｄ動きベクトルを含んでいることがあり、要素１４０６の各々は、中景物体２０４の推定された３Ｄ動きベクトルを含んでいることがあり、要素１４１０の各々は、前景物体２０２の推定された３Ｄ動きベクトルを含んでいることがある。図１４中に含まれている動き推定は、主に説明の目的のためのものであり、網羅的であること、または示されている正確な形態に限定されることは意図されない。
【００４４】
いくつかの例では、本明細書で説明されるシステムは、（たとえば、上記で説明された方法を使用して）（１）３Ｄ動きベクトルを２Ｄ動きベクトルに投影することと、（２）投影された２Ｄ動きベクトルを使用して、合成２Ｄフレームを外挿することとを行うことによって、３Ｄ動きベクトルを使用して、合成２Ｄフレームを外挿し得る。３Ｄ動きベクトルを２Ｄ動きベクトルに投影する前に、本明細書で説明されるシステムは、３Ｄ動きベクトルに対して１つまたは複数の動作を実施し得る。たとえば、３Ｄ動きベクトルを２Ｄ動きベクトルに投影する前に、本明細書で説明されるシステムは、（たとえば、複数の３Ｄ動きベクトルに、好適な重み付きフィルタを適用することによって）３Ｄ動きベクトルからノイズを除去し得る。
【００４５】
図１１に示されているように、ステップ１１１０において、本明細書で説明されるシステムのうちの１つまたは複数は、ユーザに合成２Ｄフレームを表示し得る。たとえば、表示モジュール１２４は、ディスプレイ１０８を介してユーザに合成フレーム１２２（１）〜（Ｎ）の一部または全部を表示し得る。
【００４６】
本明細書で説明されるシステムは、様々なやり方でステップ１１１０を実施し得る。いくつかの例では、本明細書で説明されるシステムおよび方法は、アプリケーションがディスプレイの所望のフレームレートまたは最適フレームレートよりも低いフレームレートにおいて３Ｄシーンをレンダリングするときはいつでも、合成２Ｄフレームを表示し得る。たとえば、図６に示されているように、アプリケーション１０２は、４５フレーム毎秒において２Ｄフレーム１０６（１）〜（Ｎ）をレンダリングし得、ディスプレイ１０８は、２Ｄフレーム１０６（１）〜（Ｎ）と合成２Ｄフレーム１２２（１）〜（Ｎ）とが一緒に９０フレーム毎秒において表示されるように、２Ｄフレーム１０６（１）〜（Ｎ）の合間に合成２Ｄフレーム１２２（１）〜（Ｎ）を表示し得る。別の例では、図７に示されているように、アプリケーション１０２は、９０フレーム毎秒において表示されるのに十分に迅速に２Ｄフレーム１０６（３）をレンダリングすることができないことがある。しかしながら、この例において示されているように、ディスプレイ１０８は、２Ｄフレーム１０６と合成２Ｄフレーム１２２とが一緒に９０フレーム毎秒において表示され得るように、２Ｄフレーム１０６（２）と１０６（４）との合間に合成２Ｄフレーム１２２（１）および１２２（２）を表示し得る。いくつかの例では、アプリケーションが所望のフレームレートまたは最適フレームレートにおいてフレームをサブミットすることができないとき、本明細書で説明されるシステムは、アプリケーションに、そのレンダリングフレームレートを（たとえば、所望のフレームレートまたは最適フレームレートの１／２に）低減するように命令するか、またはそのように低減させ得、外挿された合成２Ｄフレームを使用して中間フレームを提供し得る。
【００４７】
上記で説明されたように、本開示の実施形態は、進展する３Ｄシーンからの深度情報と、３Ｄシーンからレンダリングされた２Ｄフレームからの動きの推定値とを使用して、補足的合成２Ｄフレームを外挿し得る。いくつかの例では、本明細書で説明されるシステムおよび方法は、ＶＲまたはＡＲアプリケーションがディスプレイの所望のフレームレートまたは最適フレームレートよりも低いフレームレートにおいて３Ｄシーンをレンダリングするときはいつでも、これらの補足的合成２Ｄフレームを表示し得、これは、ＶＲまたはＡＲエクスペリエンスが、滑らかで、ユーザにとって楽しめるもののままであることを確実にし得る。追加または代替として、本明細書で説明されるシステムおよび方法は、ディスプレイの所望のフレームレートまたは最適フレームレートにおいて２Ｄフレームをレンダリングすることができないハードウェア上で稼働しているＶＲまたはＡＲアプリケーションについて補足的合成２Ｄフレームを表示し得、これは、楽しめるＶＲまたはＡＲエクスペリエンスを以前はもたらすことができなかったより低い性能のハードウェア上のＶＲまたはＡＲエクスペリエンスを改善し得る。少なくとも１つの例では、ＶＲまたはＡＲアプリケーションによってレンダリングされたあらゆる２Ｄフレームについて合成２Ｄフレームを表示することによって、本明細書で説明されるシステムおよび方法は、ＶＲまたはＡＲアプリケーションがディスプレイの所望のフレームレートまたは最適フレームレートの１／２において２Ｄフレームをレンダリングすることを可能にし得、これは、３Ｄシーンから同じ数の２Ｄフレームを作り出すために必要とされる中央処理ユニット（ＣＰＵ）および／またはグラフィカル処理ユニット（ＧＰＵ）の時間を１／２にし得る。
【００４８】
いくつかの例では、本明細書で説明されるシステムおよび方法は、後続の２Ｄフレームを予測するために、アニメーション、カメラ並進、頭部並進などについて、２つの前の２Ｄフレームを検査し得る。本明細書で説明されるシステムおよび方法は、アニメーション、カメラ並進、頭部並進などを２Ｄ動きベクトルとして表し得、その２Ｄ動きベクトルは、いくつかの状況ではノイズが多いことがある。外挿された２Ｄフレームを生成するために２Ｄ動きベクトルを使用することより前に、本明細書で説明されるシステムおよび方法は、２Ｄ動きベクトルに、その重みが深度情報から導出される重み付きフィルタを適用し得、これは、２Ｄ動きベクトルにおいて見つけられるノイズを低減し、したがって、２Ｄ動きベクトルから生成される外挿された２Ｄフレームの品質を改善し得る。いくつかの例では、本システムおよび本方法は、２Ｄ動きベクトルを３Ｄ動きベクトルに変換するために深度情報を使用し得、その３Ｄ動きベクトルは、外挿された２Ｄフレームを生成するために、２Ｄ動きベクトルの代わりに使用され得る。
【００４９】
上記で詳述されたように、本明細書で説明されるおよび／または示されるコンピューティングデバイスおよびシステムは、本明細書で説明されるモジュール内に含まれているものなど、コンピュータ可読命令を実行することが可能な任意のタイプまたは形態のコンピューティングデバイスまたはシステムを広く表す。それらの最も基本的な構成では、これらの（１つまたは複数の）コンピューティングデバイスは、各々、少なくとも１つのメモリデバイスと少なくとも１つの物理プロセッサとを含み得る。
【００５０】
いくつかの例では、「メモリデバイス」という用語は、概して、データおよび／またはコンピュータ可読命令を記憶することが可能な任意のタイプまたは形態の揮発性または不揮発性記憶デバイスまたは媒体を指す。一例では、メモリデバイスは、本明細書で説明されるモジュールのうちの１つまたは複数を記憶、ロード、および／または維持し得る。メモリデバイスの例は、限定はしないが、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、光ディスクドライブ、キャッシュ、それらのうちの１つまたは複数の変形または組合せ、あるいは任意の他の好適な記憶メモリを含む。
【００５１】
いくつかの例では、「物理プロセッサ」という用語は、概して、コンピュータ可読命令を解釈および／または実行することが可能な任意のタイプまたは形態のハードウェア実装処理ユニットを指す。一例では、物理プロセッサは、上記で説明されたメモリデバイスに記憶された１つまたは複数のモジュールにアクセスし、および／またはそれらのモジュールを変更し得る。物理プロセッサの例は、限定はしないが、マイクロプロセッサ、マイクロコントローラ、中央処理ユニット（ＣＰＵ）、ソフトコアプロセッサを実装するフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、それらのうちの１つまたは複数の部分、それらのうちの１つまたは複数の変形または組合せ、あるいは任意の他の好適な物理プロセッサを含む。
【００５２】
別個の要素として示されているが、本明細書で説明されるおよび／または示されるモジュールは、単一のモジュールまたはアプリケーションの部分を表し得る。さらに、いくつかの実施形態では、これらのモジュールのうちの１つまたは複数は、コンピューティングデバイスによって実行されたとき、コンピューティングデバイスに１つまたは複数のタスクを実施させ得る、１つまたは複数のソフトウェアアプリケーションまたはプログラムを表し得る。たとえば、本明細書で説明されるおよび／または示されるモジュールのうちの１つまたは複数は、本明細書で説明されるおよび／または示されるコンピューティングデバイスまたはシステムのうちの１つまたは複数に記憶され、それらの上で稼働するように構成された、モジュールを表し得る。これらのモジュールのうちの１つまたは複数は、１つまたは複数のタスクを実施するように構成された１つまたは複数の専用コンピュータの全部または部分をも表し得る。
【００５３】
さらに、本明細書で説明されるモジュールのうちの１つまたは複数は、データ、物理デバイス、および／または物理デバイスの表現を、ある形態から別の形態に変換し得る。たとえば、本明細書で具陳されるモジュールのうちの１つまたは複数は、進展する３Ｄシーンからレンダリングされた２つの２Ｄフレームと、３Ｄシーンについての深度情報とを受信し、２つの２Ｄフレームを２Ｄ動きベクトルに変換し、２Ｄフレームと２Ｄ動きベクトルと３Ｄシーンについての深度情報とから合成２Ｄフレームを外挿するシステムに変換の結果を出力し、２Ｄフレームと２Ｄ動きベクトルと３Ｄシーンについての深度情報とから合成２Ｄフレームを外挿するために変換の結果を使用し、ユーザに合成２Ｄフレームを表示し得る。追加または代替として、本明細書で具陳されるモジュールのうちの１つまたは複数は、コンピューティングデバイス上で実行すること、コンピューティングデバイス上にデータを記憶すること、および／または、場合によっては、コンピューティングデバイスと対話することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、および／または物理的コンピューティングデバイスの任意の他の部分を、ある形態から別の形態に変換し得る。
【００５４】
いくつかの実施形態では、「コンピュータ可読媒体」という用語は、概して、コンピュータ可読命令を記憶または搬送することが可能な任意の形態のデバイス、キャリア、または媒体を指す。コンピュータ可読媒体の例は、限定はしないが、搬送波などの伝送型媒体、ならびに、磁気記憶媒体（たとえば、ハードディスクドライブ、テープドライブ、およびフロッピーディスク）、光記憶媒体（たとえば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、およびＢＬＵ−ＲＡＹディスク）、電子記憶媒体（たとえば、ソリッドステートドライブおよびフラッシュメディア）、および他の配信システムなど、非一時的型媒体を含む。
【００５５】
本開示の実施形態は、人工現実システムを含むか、または人工現実システムに関連して実装され得る。人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実（ＶＲ）、拡張現実（ＡＲ）、複合現実（ＭＲ）、ハイブリッド現実、あるいはそれらの何らかの組合せおよび／または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされた（たとえば、現実世界の）コンテンツと組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る（観察者に３次元効果をもたらすステレオビデオなど）。加えて、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作り出すために使用される、および／または人工現実において別様に使用される（たとえば、人工現実におけるアクティビティを実施する）アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せにも関連付けられ得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ（ＨＭＤ）、独立型ＨＭＤ、モバイルデバイスまたはコンピューティングシステム、あるいは、１人または複数の観察者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
【００５６】
本明細書で説明されるおよび／または示されるステップのプロセスパラメータおよびシーケンスは、単に例として与えられ、必要に応じて変えられ得る。たとえば、本明細書で示されるおよび／または説明されるステップは、特定の順序で示されるかまたは説明され得るが、これらのステップは、必ずしも、示されるまたは説明される順序で実施される必要はない。本明細書で説明されるおよび／または示される様々な例示的な方法はまた、本明細書で説明されるまたは示されるステップのうちの１つまたは複数を省略するか、あるいは開示されるものに加えて追加のステップを含み得る。
【００５７】
先行する説明は、他の当業者が本明細書で開示される例示的な実施形態の様々な態様を最も良く利用することを可能にするために提供された。この例示的な説明は、網羅的であること、または開示される正確な形態に限定されることは意図されない。多くの変更および変形が、本開示の趣旨および範囲から逸脱することなく可能である。本明細書で開示される実施形態は、あらゆる点で、限定的ではなく例示的であると見なされるべきである。本開示の範囲を決定する際に、添付の特許請求の範囲およびそれらの均等物の参照が行われるべきである。
【００５８】
別段に記載されていない限り、本明細書および特許請求の範囲において使用される「に接続された（ｃｏｎｎｅｃｔｅｄ  ｔｏ）」および「に結合された（ｃｏｕｐｌｅｄ  ｔｏ）」という用語（およびそれらの派生語）は、直接的接続と間接的接続（すなわち、他の要素または構成要素を介したもの）の両方を許容するものとして解釈されるべきである。さらに、本明細書および特許請求の範囲において使用される「ａ」または「ａｎ」という用語は、「のうちの少なくとも１つ」を意味するものとして解釈されるべきである。最後に、使いやすさのために、本明細書および特許請求の範囲において使用される「含む（ｉｎｃｌｕｄｉｎｇ）」および「有する（ｈａｖｉｎｇ）」という用語（およびそれらの派生語）は、「備える、含む（ｃｏｍｐｒｉｓｉｎｇ）」という単語と交換可能であり、その単語と同じ意味を有する。
【図１】
2021533646.tif 000003
【図２】
2021533646.tif 000004
【図３】
2021533646.tif 000005
【図４】
2021533646.tif 000006
【図５】
2021533646.tif 000007
【図６】
2021533646.tif 000008
【図７】
2021533646.tif 000009
【図８】
2021533646.tif 000010
【図９】
2021533646.tif 000011
【図１０】
2021533646.tif 000012
【図１１】
2021533646.tif 000013
【図１２】
2021533646.tif 000014
【図１３】
2021533646.tif 000015
【図１４】
2021533646.tif 000016
【図１５】
2021533646.tif 000017
【国際調査報告】
2021533646.tif 000018
2021533646.tif 000019