JPWO2020076526A5 - - Google Patents
Download PDFInfo
- Publication number
- JPWO2020076526A5 JPWO2020076526A5 JP2021519155A JP2021519155A JPWO2020076526A5 JP WO2020076526 A5 JPWO2020076526 A5 JP WO2020076526A5 JP 2021519155 A JP2021519155 A JP 2021519155A JP 2021519155 A JP2021519155 A JP 2021519155A JP WO2020076526 A5 JPWO2020076526 A5 JP WO2020076526A5
- Authority
- JP
- Japan
- Prior art keywords
- pixel data
- frame
- motion vectors
- array
- gpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000013598 vector Substances 0.000 claims description 169
- 238000000034 method Methods 0.000 claims description 45
- 238000009877 rendering Methods 0.000 claims description 41
Description
本主題は構造的特徴に特有の言語で説明されているが、添付の特許請求の範囲に定義された主題は、必ずしも説明された特定の特徴に限定されるものではないことを理解されたい。むしろ、特定の特徴は、特許請求の範囲を実装する例解的な形態として開示される。
以下に、本出願の当初の特許請求の範囲に記載された発明を付記する。
[1]
方法であって、
ヘッドマウントディスプレイ(HMD)のグラフィックスプロセッシングユニット(GPU)への入力として、
アプリケーションから受信した第1のフレームに関連付けられた第1のピクセルデータと、
前記アプリケーションから受信した第2のフレームに関連付けられた第2のピクセルデータと、を提供することであって、
前記第2のフレームが、最後にレンダリングされたフレームであり、前記第1のフレームが、前記第2のフレームの前にレンダリングされたものであることと、
前記GPUから、前記第1のピクセルデータと前記第2のピクセルデータとの間の比較に少なくとも部分的に基づいて、前記GPUのビデオ符号化器によって生成された動きベクトルの配列を受信することと、
前記第2のピクセルデータに少なくとも部分的に基づいて、再投影フレームの第3のピクセルデータを生成することと、
前記再投影フレームのレンダリングメッシュを生成することであって、前記レンダリングメッシュが、前記動きベクトルの配列の解像度と一致する解像度で複数の頂点を有するテッセレーションされたメッシュを含むことと、
前記動きベクトルの配列の中の非ゼロ動きベクトルに少なくとも部分的に基づいて、前記非ゼロ動きベクトルの方向の前記複数の頂点のうちの頂点を、移動された頂点として前記レンダリングメッシュ内の異なる位置に移動することと、
前記レンダリングメッシュの前記移動された頂点にしたがって前記第3のピクセルデータを変更して、前記再投影フレームの変更された第3のピクセルデータを取得することと、
前記変更された第3ピクセルデータに少なくとも部分的に基づいて、前記HMDのディスプレイパネルに前記再投影フレームをレンダリングすることと、を備える、方法。
[2]
前記第2のピクセルデータがフレームバッファに出力される前に、前記第1のピクセルデータが前記フレームバッファに出力され、前記第1のフレームを前記第2のフレームの前にレンダリングさせ、前記変更された第3のピクセルデータが前記フレームバッファに出力される前に、前記第2のピクセルデータが前記フレームバッファに出力され、前記第2のフレームを前記再投影フレームの前にレンダリングさせる、[1]に記載の方法。
[3]
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、それぞれが前記ディスプレイパネルの1つ以上の端部にあるピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの一部および前記第2のピクセルデータの一部を提供することを備える、[1]に記載の方法。
[4]
前記第1のピクセルデータの一部および前記第2のピクセルデータの一部が、それぞれ、前記ディスプレイパネルの周辺にレンダリングされたパネルマスクに対応するデータを表し、前記方法が、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定することと、
前記第1のピクセルデータを変更して、前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得することであって、前記変更された第1のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記第2のピクセルデータを変更して、前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得することであって、前記変更された第2のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記変更された第1のピクセルデータの一部を前記変更された第2のピクセルデータの一部と組み合わせて、前記パネルマスクに対応する共通のピクセル値を有するピクセルのサブセットを判定することと、を備え、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、それぞれが前記ピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの特定の部分および第2のピクセルデータの特定の部分を提供することを備える、[1]に記載の方法。
[5]
方法であって、
グラフィックスプロセッシングユニット(GPU)への入力として、
アプリケーションから受信した第1のフレームであって、過去にレンダリングされた前記第1のフレームに関連付けられた第1のピクセルデータと、
前記アプリケーションから受信した第2のフレームであって、前記第1のフレームの後に過去にレンダリングされた前記第2のフレームに関連付けられた第2のピクセルデータと、を提供することと、
前記GPUから、前記第1のピクセルデータおよび前記第2のピクセルデータに少なくとも部分的に基づいて前記GPUのビデオ符号化器によって生成された動きベクトルの配列を受信することと、
前記第2のピクセルデータに少なくとも部分的に基づいて、再投影フレームの第3のピクセルデータを生成することと、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更して、前記再投影フレームの変更された第3のピクセルデータを取得することと、
前記変更された第3のピクセルデータに少なくとも部分的に基づいて、ディスプレイ上に前記再投影フレームをレンダリングすることと、を備える、方法。
[6]
前記第2のピクセルデータがフレームバッファに出力される前に、前記第1のピクセルデータが前記フレームバッファに出力され、前記第1のフレームを前記第2のフレームの前にレンダリングさせ、前記変更された第3のピクセルデータが前記フレームバッファに出力される前に、前記第2のピクセルデータが前記フレームバッファに出力され、前記第2のフレームを前記再投影フレームの前にレンダリングさせる、[5]に記載の方法。
[7]
さらに、
前記再投影フレームのレンダリングメッシュを生成することであって、前記レンダリングメッシュが、複数の頂点を有するテッセレーションされたメッシュを含むことと、
前記動きベクトルの配列の中の非ゼロの動きベクトルに少なくとも部分的に基づいて、前記複数の頂点のうちの頂点を、移動された頂点として前記レンダリングメッシュ内の異なる位置に移動することであって、前記頂点が、(i)前記非ゼロの動きベクトルの方向に、および(ii)非ゼロの動きベクトルの大きさに対応する量だけ移動されることと、を備え、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記レンダリングメッシュの前記移動された頂点にしたがって前記第3のピクセルデータのピクセル値を移動して、前記再投影フレームの前記変更された第3のピクセルデータを取得することを備える、[5]に記載の方法。
[8]
前記ディスプレイがヘッドマウントディスプレイ(HMD)であり、前記方法が、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定することと、
前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得するために前記第1のピクセルデータ、または
前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得するために前記第2のピクセルデータ、のうちの少なくとも1つを変更することと、を備え、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、前記変更された第1のピクセルデータまたは前記変更された第2のピクセルデータのうちの少なくとも1つを提供することを備える、[5]に記載の方法。
[9]
前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記GPUへの前記入力として、それぞれが前記ディスプレイの1つ以上の端部にあるピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの一部および前記第2のピクセルデータの一部を提供することを備える、[5]に記載の方法。
[10]
前記ディスプレイがヘッドマウントディスプレイ(HMD)であり、前記第1のピクセルデータの一部および前記第2のピクセルデータの一部が、それぞれ、前記HMDのディスプレイパネルの周辺にレンダリングされたパネルマスクに対応するデータを表し、前記方法が、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定することと、
前記第1のピクセルデータを変更して、前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得することであって、前記変更された第1のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記第2のピクセルデータを変更して、前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得することであって、前記変更された第2のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記変更された第1のピクセルデータの一部を前記変更された第2のピクセルデータの一部と組み合わせて、前記パネルマスクに対応する共通のピクセル値を有するピクセルのサブセットを判定することと、を備え、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、それぞれが前記ピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの特定の部分および第2のピクセルデータの特定の部分を提供することを備える、[5]に記載の方法。
[11]
さらに、
前記動きベクトルの配列の大きさを閾値の大きさと比較することと、
前記動きベクトルの配列の動きベクトルのサブセットが前記閾値の大きさよりも大きい大きさを有することを判定することと、
前記動きベクトルのサブセットの大きさを減らして、動きベクトルの変更された配列を取得することと、を備え、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの変更された配列に基づいて前記第3のピクセルデータを変更することを備える、[5]に記載の方法。
[12]
前記第1のフレームおよび前記第2のフレームが、一連のフレームにおいて連続してレンダリングされた、[5]に記載の方法。
[13]
前記第1のピクセルデータが、第1の彩度データを含み、前記第2のピクセルデータが、第2の彩度データを含み、前記動きベクトルの配列が、前記第1の彩度データおよび前記第2の彩度データに少なくとも部分的に基づいて前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第1の配列であり、前記方法が、さらに、
前記GPUへの第2の入力として、
前記第1のフレームに関連付けられた第1の輝度データと、
前記第2のフレームに関連付けられた第2の輝度データと、を提供することと、
前記GPUから、前記第1の輝度データおよび前記第2の輝度データに少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第2の配列を受信することと、
前記動きベクトルの第1の配列および前記動きベクトルの第2の配列の分析に基づいて、前記動きベクトルの第1の配列または前記動きベクトルの第2の配列の1つを動きベクトルの選択された配列として選択することと、を備え、
前記第3のピクセルデータを変更するために使用される前記動きベクトルの配列が、前記動きベクトルの選択された配列を含む、[5]に記載の方法。
[14]
前記動きベクトルの配列が動きベクトルの第1の配列であり、前記方法が、さらに、
第1の回転量だけ前記第1のフレームを回転させて第1の回転フレームを取得することと、
第2の回転量だけ前記第2のフレームを回転させて第2の回転フレームを取得することと、
前記GPUへの第2の入力として、
前記第1の回転フレームに関連付けられた第3のピクセルデータと、
前記第2の回転フレームに関連付けられた第4のピクセルデータと、を提供することと、
前記GPUから、前記第3のピクセルデータおよび前記第4のピクセルデータに少なくとも部分的に基づいて、動きベクトルの第2の配列を受信することと、
前記動きベクトルの第1の配列および前記動きベクトルの第2の配列における動きベクトルの方向または大きさの少なくとも1つの差異を判定することと、
前記差異に少なくとも部分的に基づいて動きベクトルの最終配列を生成することと、を備え、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの最終配列に少なくとも部分的に基づいている、[5]に記載の方法。
[15]
前記動きベクトルの配列が、第1の解像度での動きベクトルの第1の配列であり、前記方法が、さらに、
前記動きベクトルの第1の配列に少なくとも部分的に基づいて、前記ディスプレイにまたがる画像領域の第1の部分における動きの欠如を検出することと、
前記動きベクトルの第1の配列に少なくとも部分的に基づいて、前記画像領域の第2の部分におけるオブジェクトの動きを検出することと、
前記GPUへの追加入力として、
前記画像領域の前記第1の部分に対応する前記第1のピクセルデータの第1の部分と、
前記画像領域の前記第1の部分に対応する前記第2のピクセルデータの第1の部分と、
前記画像領域の前記第2の部分に対応する前記第1のピクセルデータの第2の部分と、
前記画像領域の前記第2の部分に対応する前記第2のピクセルデータの第2の部分と、を提供することと、
前記GPUから、前記第1のピクセルデータの前記第1の部分および前記第2のピクセルデータの前記第1の部分に少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第2の配列を受信することであって、前記動きベクトルの第2の配列が、前記第1の解像度よりも高い解像度である第2の解像度で生成されることと、
前記GPUから、前記第1のピクセルデータの前記第2の部分および前記第2のピクセルデータの前記第2の部分に少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第3の配列を受信することであって、前記動きベクトルの第3の配列が、前記第2の解像度よりも低い解像度である第3の解像度で生成されることと、を備え、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの第2の配列および前記動きベクトルの第3の配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することを備える、[5]に記載の方法。
[16]
前記第3のピクセルデータを変更することが、さらに、深度バッファを利用して、前記変更された第3のピクセルデータのフレームバッファのピクセル値の最終セットを判定することを備える、[5]に記載の方法。
[17]
さらに、
前記動きベクトルの配列にオーバーレイされた減衰テクスチャを生成することと、
前記減衰テクスチャを使用して前記動きベクトルの配列の1つ以上の動きベクトルの大きさを減少させて、動きベクトルの変更された配列を取得することと、を備え、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの変更された配列に基づいて前記第3のピクセルデータを変更することを備える、[5]に記載の方法。
[18]
システムであって、
ディスプレイと、
グラフィックスプロセッシングユニット(GPU)と、
ロジックであって、
前記GPUへの入力として、
アプリケーションから受信した第1のフレームに関連付けられた第1のピクセルデータであって、前記第1のフレームが、以前にレンダリングされている、第1のピクセルデータと、
前記アプリケーションから受信した第2のフレームに関連付けられた第2のピクセルデータであって、前記第2のフレームが、前記第1のフレームの後に以前にレンダリングされている、第2のピクセルデータと、を提供し、
前記GPUから、前記第1のピクセルデータおよび前記第2のピクセルデータに少なくとも部分的に基づいて前記GPUのビデオ符号化器によって生成された動きベクトルの配列を受信し、
前記第2のピクセルデータに少なくとも部分的に基づいて、再投影フレームの第3のピクセルデータを生成し、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更して、前記再投影フレームの変更された第3のピクセルデータを取得し、
前記変更された第3のピクセルデータに少なくとも部分的に基づいて、前記ディスプレイ上に前記再投影フレームをレンダリングする、ように構成されたロジックと、を備える、システム。
[19]
前記ロジックが、さらに、
前記第2のピクセルデータがフレームバッファに出力される前に、前記第1のピクセルデータを前記フレームバッファに出力し、前記第1のフレームを前記第2のフレームの前にレンダリングさせ、
前記変更された第3のピクセルデータが前記フレームバッファに出力される前に、前記第2のピクセルデータを前記フレームバッファに出力し、前記第2のフレームを前記再投影フレームの前にレンダリングさせる、ように構成されている、[18]に記載のシステム。
[20]
前記ロジックが、さらに、
前記再投影フレームのレンダリングメッシュであって、複数の頂点を有するテッセレーションされたメッシュを含む前記レンダリングメッシュを生成し、
前記動きベクトルの配列の中の非ゼロの動きベクトルに少なくとも部分的に基づいて、前記複数の頂点のうちの頂点を、移動された頂点として前記レンダリングメッシュ内の異なる位置に移動し、前記頂点が、(i)前記非ゼロの動きベクトルの方向に、および(ii)前記非ゼロの動きベクトルの大きさに対応する量だけ移動される、ように構成されており、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記レンダリングメッシュの前記移動された頂点にしたがって前記第3のピクセルデータのピクセル値を移動して、前記再投影フレームの前記変更された第3のピクセルデータを取得することを備える、[18]に記載のシステム。
[21]
前記ディスプレイがヘッドマウントディスプレイ(HMD)であり、前記ロジックが、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定し、
前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得するために前記第1のピクセルデータ、または
前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得するために前記第2のピクセルデータ、のうちの少なくとも1つを変更するように構成されており、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、前記変更された第1のピクセルデータまたは前記変更された第2のピクセルデータのうちの少なくとも1つを提供することを備える、[18]に記載のシステム。
[22]
前記ロジックが、さらに、
前記第1のピクセルデータと前記第2のピクセルデータとの間の色ピクセル値を比較して、前記動きベクトルの配列内の個々の動きベクトルに対応する個々の色差値を判定し、
閾値色差よりも小さい色差値に関連付けられている動きベクトルのサブセットを判定し、
前記動きベクトルのサブセットの大きさをゼロに減らして、動きベクトルの変更された配列を取得する、ように構成されており、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの変更された配列に基づいて前記第3のピクセルデータを変更することを備える、[18]に記載のシステム。
[23]
前記第1のピクセルデータが、第1の彩度データを含み、前記第2のピクセルデータが、第2の彩度データを含み、前記動きベクトルの配列が、前記第1の彩度データおよび前記第2の彩度データに少なくとも部分的に基づいて前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第1の配列であり、前記ロジックが、さらに、
前記GPUへの第2の入力として、
前記第1のフレームに関連付けられた第1の輝度データと、
前記第2のフレームに関連付けられた第2の輝度データと、を提供し、
前記GPUから、前記第1の輝度データおよび前記第2の輝度データに少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第2の配列を受信し、
前記動きベクトルの第1の配列および前記動きベクトルの第2の配列の分析に基づいて、前記動きベクトルの第1の配列または前記動きベクトルの第2の配列の1つを動きベクトルの選択された配列として選択するように構成されており、
前記第3のピクセルデータを変更するために使用される前記動きベクトルの配列が、前記動きベクトルの選択された配列を含む、[18]に記載のシステム。
[24]
前記ロジックが、さらに、
動きベクトルの変更された配列を取得するために前記動きベクトルの配列に対するスカラー中央値フィルタ、または
前記動きベクトルの変更された配列を取得するために前記動きベクトルの配列に対する平均最大ぼかしフィルタ、のうちの少なくとも1つを適用するように構成されており、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの変更された配列に基づいて前記第3のピクセルデータを変更することを備える、[18]に記載のシステム。
以下に、本出願の当初の特許請求の範囲に記載された発明を付記する。
[1]
方法であって、
ヘッドマウントディスプレイ(HMD)のグラフィックスプロセッシングユニット(GPU)への入力として、
アプリケーションから受信した第1のフレームに関連付けられた第1のピクセルデータと、
前記アプリケーションから受信した第2のフレームに関連付けられた第2のピクセルデータと、を提供することであって、
前記第2のフレームが、最後にレンダリングされたフレームであり、前記第1のフレームが、前記第2のフレームの前にレンダリングされたものであることと、
前記GPUから、前記第1のピクセルデータと前記第2のピクセルデータとの間の比較に少なくとも部分的に基づいて、前記GPUのビデオ符号化器によって生成された動きベクトルの配列を受信することと、
前記第2のピクセルデータに少なくとも部分的に基づいて、再投影フレームの第3のピクセルデータを生成することと、
前記再投影フレームのレンダリングメッシュを生成することであって、前記レンダリングメッシュが、前記動きベクトルの配列の解像度と一致する解像度で複数の頂点を有するテッセレーションされたメッシュを含むことと、
前記動きベクトルの配列の中の非ゼロ動きベクトルに少なくとも部分的に基づいて、前記非ゼロ動きベクトルの方向の前記複数の頂点のうちの頂点を、移動された頂点として前記レンダリングメッシュ内の異なる位置に移動することと、
前記レンダリングメッシュの前記移動された頂点にしたがって前記第3のピクセルデータを変更して、前記再投影フレームの変更された第3のピクセルデータを取得することと、
前記変更された第3ピクセルデータに少なくとも部分的に基づいて、前記HMDのディスプレイパネルに前記再投影フレームをレンダリングすることと、を備える、方法。
[2]
前記第2のピクセルデータがフレームバッファに出力される前に、前記第1のピクセルデータが前記フレームバッファに出力され、前記第1のフレームを前記第2のフレームの前にレンダリングさせ、前記変更された第3のピクセルデータが前記フレームバッファに出力される前に、前記第2のピクセルデータが前記フレームバッファに出力され、前記第2のフレームを前記再投影フレームの前にレンダリングさせる、[1]に記載の方法。
[3]
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、それぞれが前記ディスプレイパネルの1つ以上の端部にあるピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの一部および前記第2のピクセルデータの一部を提供することを備える、[1]に記載の方法。
[4]
前記第1のピクセルデータの一部および前記第2のピクセルデータの一部が、それぞれ、前記ディスプレイパネルの周辺にレンダリングされたパネルマスクに対応するデータを表し、前記方法が、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定することと、
前記第1のピクセルデータを変更して、前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得することであって、前記変更された第1のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記第2のピクセルデータを変更して、前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得することであって、前記変更された第2のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記変更された第1のピクセルデータの一部を前記変更された第2のピクセルデータの一部と組み合わせて、前記パネルマスクに対応する共通のピクセル値を有するピクセルのサブセットを判定することと、を備え、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、それぞれが前記ピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの特定の部分および第2のピクセルデータの特定の部分を提供することを備える、[1]に記載の方法。
[5]
方法であって、
グラフィックスプロセッシングユニット(GPU)への入力として、
アプリケーションから受信した第1のフレームであって、過去にレンダリングされた前記第1のフレームに関連付けられた第1のピクセルデータと、
前記アプリケーションから受信した第2のフレームであって、前記第1のフレームの後に過去にレンダリングされた前記第2のフレームに関連付けられた第2のピクセルデータと、を提供することと、
前記GPUから、前記第1のピクセルデータおよび前記第2のピクセルデータに少なくとも部分的に基づいて前記GPUのビデオ符号化器によって生成された動きベクトルの配列を受信することと、
前記第2のピクセルデータに少なくとも部分的に基づいて、再投影フレームの第3のピクセルデータを生成することと、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更して、前記再投影フレームの変更された第3のピクセルデータを取得することと、
前記変更された第3のピクセルデータに少なくとも部分的に基づいて、ディスプレイ上に前記再投影フレームをレンダリングすることと、を備える、方法。
[6]
前記第2のピクセルデータがフレームバッファに出力される前に、前記第1のピクセルデータが前記フレームバッファに出力され、前記第1のフレームを前記第2のフレームの前にレンダリングさせ、前記変更された第3のピクセルデータが前記フレームバッファに出力される前に、前記第2のピクセルデータが前記フレームバッファに出力され、前記第2のフレームを前記再投影フレームの前にレンダリングさせる、[5]に記載の方法。
[7]
さらに、
前記再投影フレームのレンダリングメッシュを生成することであって、前記レンダリングメッシュが、複数の頂点を有するテッセレーションされたメッシュを含むことと、
前記動きベクトルの配列の中の非ゼロの動きベクトルに少なくとも部分的に基づいて、前記複数の頂点のうちの頂点を、移動された頂点として前記レンダリングメッシュ内の異なる位置に移動することであって、前記頂点が、(i)前記非ゼロの動きベクトルの方向に、および(ii)非ゼロの動きベクトルの大きさに対応する量だけ移動されることと、を備え、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記レンダリングメッシュの前記移動された頂点にしたがって前記第3のピクセルデータのピクセル値を移動して、前記再投影フレームの前記変更された第3のピクセルデータを取得することを備える、[5]に記載の方法。
[8]
前記ディスプレイがヘッドマウントディスプレイ(HMD)であり、前記方法が、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定することと、
前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得するために前記第1のピクセルデータ、または
前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得するために前記第2のピクセルデータ、のうちの少なくとも1つを変更することと、を備え、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、前記変更された第1のピクセルデータまたは前記変更された第2のピクセルデータのうちの少なくとも1つを提供することを備える、[5]に記載の方法。
[9]
前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記GPUへの前記入力として、それぞれが前記ディスプレイの1つ以上の端部にあるピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの一部および前記第2のピクセルデータの一部を提供することを備える、[5]に記載の方法。
[10]
前記ディスプレイがヘッドマウントディスプレイ(HMD)であり、前記第1のピクセルデータの一部および前記第2のピクセルデータの一部が、それぞれ、前記HMDのディスプレイパネルの周辺にレンダリングされたパネルマスクに対応するデータを表し、前記方法が、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定することと、
前記第1のピクセルデータを変更して、前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得することであって、前記変更された第1のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記第2のピクセルデータを変更して、前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得することであって、前記変更された第2のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記変更された第1のピクセルデータの一部を前記変更された第2のピクセルデータの一部と組み合わせて、前記パネルマスクに対応する共通のピクセル値を有するピクセルのサブセットを判定することと、を備え、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、それぞれが前記ピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの特定の部分および第2のピクセルデータの特定の部分を提供することを備える、[5]に記載の方法。
[11]
さらに、
前記動きベクトルの配列の大きさを閾値の大きさと比較することと、
前記動きベクトルの配列の動きベクトルのサブセットが前記閾値の大きさよりも大きい大きさを有することを判定することと、
前記動きベクトルのサブセットの大きさを減らして、動きベクトルの変更された配列を取得することと、を備え、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの変更された配列に基づいて前記第3のピクセルデータを変更することを備える、[5]に記載の方法。
[12]
前記第1のフレームおよび前記第2のフレームが、一連のフレームにおいて連続してレンダリングされた、[5]に記載の方法。
[13]
前記第1のピクセルデータが、第1の彩度データを含み、前記第2のピクセルデータが、第2の彩度データを含み、前記動きベクトルの配列が、前記第1の彩度データおよび前記第2の彩度データに少なくとも部分的に基づいて前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第1の配列であり、前記方法が、さらに、
前記GPUへの第2の入力として、
前記第1のフレームに関連付けられた第1の輝度データと、
前記第2のフレームに関連付けられた第2の輝度データと、を提供することと、
前記GPUから、前記第1の輝度データおよび前記第2の輝度データに少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第2の配列を受信することと、
前記動きベクトルの第1の配列および前記動きベクトルの第2の配列の分析に基づいて、前記動きベクトルの第1の配列または前記動きベクトルの第2の配列の1つを動きベクトルの選択された配列として選択することと、を備え、
前記第3のピクセルデータを変更するために使用される前記動きベクトルの配列が、前記動きベクトルの選択された配列を含む、[5]に記載の方法。
[14]
前記動きベクトルの配列が動きベクトルの第1の配列であり、前記方法が、さらに、
第1の回転量だけ前記第1のフレームを回転させて第1の回転フレームを取得することと、
第2の回転量だけ前記第2のフレームを回転させて第2の回転フレームを取得することと、
前記GPUへの第2の入力として、
前記第1の回転フレームに関連付けられた第3のピクセルデータと、
前記第2の回転フレームに関連付けられた第4のピクセルデータと、を提供することと、
前記GPUから、前記第3のピクセルデータおよび前記第4のピクセルデータに少なくとも部分的に基づいて、動きベクトルの第2の配列を受信することと、
前記動きベクトルの第1の配列および前記動きベクトルの第2の配列における動きベクトルの方向または大きさの少なくとも1つの差異を判定することと、
前記差異に少なくとも部分的に基づいて動きベクトルの最終配列を生成することと、を備え、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの最終配列に少なくとも部分的に基づいている、[5]に記載の方法。
[15]
前記動きベクトルの配列が、第1の解像度での動きベクトルの第1の配列であり、前記方法が、さらに、
前記動きベクトルの第1の配列に少なくとも部分的に基づいて、前記ディスプレイにまたがる画像領域の第1の部分における動きの欠如を検出することと、
前記動きベクトルの第1の配列に少なくとも部分的に基づいて、前記画像領域の第2の部分におけるオブジェクトの動きを検出することと、
前記GPUへの追加入力として、
前記画像領域の前記第1の部分に対応する前記第1のピクセルデータの第1の部分と、
前記画像領域の前記第1の部分に対応する前記第2のピクセルデータの第1の部分と、
前記画像領域の前記第2の部分に対応する前記第1のピクセルデータの第2の部分と、
前記画像領域の前記第2の部分に対応する前記第2のピクセルデータの第2の部分と、を提供することと、
前記GPUから、前記第1のピクセルデータの前記第1の部分および前記第2のピクセルデータの前記第1の部分に少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第2の配列を受信することであって、前記動きベクトルの第2の配列が、前記第1の解像度よりも高い解像度である第2の解像度で生成されることと、
前記GPUから、前記第1のピクセルデータの前記第2の部分および前記第2のピクセルデータの前記第2の部分に少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第3の配列を受信することであって、前記動きベクトルの第3の配列が、前記第2の解像度よりも低い解像度である第3の解像度で生成されることと、を備え、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの第2の配列および前記動きベクトルの第3の配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することを備える、[5]に記載の方法。
[16]
前記第3のピクセルデータを変更することが、さらに、深度バッファを利用して、前記変更された第3のピクセルデータのフレームバッファのピクセル値の最終セットを判定することを備える、[5]に記載の方法。
[17]
さらに、
前記動きベクトルの配列にオーバーレイされた減衰テクスチャを生成することと、
前記減衰テクスチャを使用して前記動きベクトルの配列の1つ以上の動きベクトルの大きさを減少させて、動きベクトルの変更された配列を取得することと、を備え、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの変更された配列に基づいて前記第3のピクセルデータを変更することを備える、[5]に記載の方法。
[18]
システムであって、
ディスプレイと、
グラフィックスプロセッシングユニット(GPU)と、
ロジックであって、
前記GPUへの入力として、
アプリケーションから受信した第1のフレームに関連付けられた第1のピクセルデータであって、前記第1のフレームが、以前にレンダリングされている、第1のピクセルデータと、
前記アプリケーションから受信した第2のフレームに関連付けられた第2のピクセルデータであって、前記第2のフレームが、前記第1のフレームの後に以前にレンダリングされている、第2のピクセルデータと、を提供し、
前記GPUから、前記第1のピクセルデータおよび前記第2のピクセルデータに少なくとも部分的に基づいて前記GPUのビデオ符号化器によって生成された動きベクトルの配列を受信し、
前記第2のピクセルデータに少なくとも部分的に基づいて、再投影フレームの第3のピクセルデータを生成し、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更して、前記再投影フレームの変更された第3のピクセルデータを取得し、
前記変更された第3のピクセルデータに少なくとも部分的に基づいて、前記ディスプレイ上に前記再投影フレームをレンダリングする、ように構成されたロジックと、を備える、システム。
[19]
前記ロジックが、さらに、
前記第2のピクセルデータがフレームバッファに出力される前に、前記第1のピクセルデータを前記フレームバッファに出力し、前記第1のフレームを前記第2のフレームの前にレンダリングさせ、
前記変更された第3のピクセルデータが前記フレームバッファに出力される前に、前記第2のピクセルデータを前記フレームバッファに出力し、前記第2のフレームを前記再投影フレームの前にレンダリングさせる、ように構成されている、[18]に記載のシステム。
[20]
前記ロジックが、さらに、
前記再投影フレームのレンダリングメッシュであって、複数の頂点を有するテッセレーションされたメッシュを含む前記レンダリングメッシュを生成し、
前記動きベクトルの配列の中の非ゼロの動きベクトルに少なくとも部分的に基づいて、前記複数の頂点のうちの頂点を、移動された頂点として前記レンダリングメッシュ内の異なる位置に移動し、前記頂点が、(i)前記非ゼロの動きベクトルの方向に、および(ii)前記非ゼロの動きベクトルの大きさに対応する量だけ移動される、ように構成されており、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記レンダリングメッシュの前記移動された頂点にしたがって前記第3のピクセルデータのピクセル値を移動して、前記再投影フレームの前記変更された第3のピクセルデータを取得することを備える、[18]に記載のシステム。
[21]
前記ディスプレイがヘッドマウントディスプレイ(HMD)であり、前記ロジックが、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定し、
前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得するために前記第1のピクセルデータ、または
前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得するために前記第2のピクセルデータ、のうちの少なくとも1つを変更するように構成されており、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、前記変更された第1のピクセルデータまたは前記変更された第2のピクセルデータのうちの少なくとも1つを提供することを備える、[18]に記載のシステム。
[22]
前記ロジックが、さらに、
前記第1のピクセルデータと前記第2のピクセルデータとの間の色ピクセル値を比較して、前記動きベクトルの配列内の個々の動きベクトルに対応する個々の色差値を判定し、
閾値色差よりも小さい色差値に関連付けられている動きベクトルのサブセットを判定し、
前記動きベクトルのサブセットの大きさをゼロに減らして、動きベクトルの変更された配列を取得する、ように構成されており、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの変更された配列に基づいて前記第3のピクセルデータを変更することを備える、[18]に記載のシステム。
[23]
前記第1のピクセルデータが、第1の彩度データを含み、前記第2のピクセルデータが、第2の彩度データを含み、前記動きベクトルの配列が、前記第1の彩度データおよび前記第2の彩度データに少なくとも部分的に基づいて前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第1の配列であり、前記ロジックが、さらに、
前記GPUへの第2の入力として、
前記第1のフレームに関連付けられた第1の輝度データと、
前記第2のフレームに関連付けられた第2の輝度データと、を提供し、
前記GPUから、前記第1の輝度データおよび前記第2の輝度データに少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第2の配列を受信し、
前記動きベクトルの第1の配列および前記動きベクトルの第2の配列の分析に基づいて、前記動きベクトルの第1の配列または前記動きベクトルの第2の配列の1つを動きベクトルの選択された配列として選択するように構成されており、
前記第3のピクセルデータを変更するために使用される前記動きベクトルの配列が、前記動きベクトルの選択された配列を含む、[18]に記載のシステム。
[24]
前記ロジックが、さらに、
動きベクトルの変更された配列を取得するために前記動きベクトルの配列に対するスカラー中央値フィルタ、または
前記動きベクトルの変更された配列を取得するために前記動きベクトルの配列に対する平均最大ぼかしフィルタ、のうちの少なくとも1つを適用するように構成されており、
前記動きベクトルの配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記動きベクトルの変更された配列に基づいて前記第3のピクセルデータを変更することを備える、[18]に記載のシステム。
Claims (24)
- 方法であって、
ヘッドマウントディスプレイ(HMD)のグラフィックスプロセッシングユニット(GPU)への入力として、
アプリケーションから受信した第1のフレームに関連付けられた第1のピクセルデータと、
前記アプリケーションから受信した第2のフレームに関連付けられた第2のピクセルデータと、を提供することであって、
前記第2のフレームが、最後にレンダリングされたフレームであり、前記第1のフレームが、前記第2のフレームの前にレンダリングされたものであることと、
前記GPUから、前記第1のピクセルデータと前記第2のピクセルデータとの間の比較に少なくとも部分的に基づいて、前記GPUのビデオ符号化器によって生成された動きベクトルの配列を受信することと、
前記第2のピクセルデータに少なくとも部分的に基づいて、再投影フレームの第3のピクセルデータを生成することと、
前記再投影フレームのレンダリングメッシュを生成することであって、前記レンダリングメッシュが、前記動きベクトルの配列の解像度と一致する解像度で複数の頂点を有するテッセレーションされたメッシュを含むことと、
前記動きベクトルの配列の中の非ゼロ動きベクトルに少なくとも部分的に基づいて、前記非ゼロ動きベクトルの方向の前記複数の頂点のうちの頂点を、移動された頂点として前記レンダリングメッシュ内の異なる位置に移動することと、
前記レンダリングメッシュの前記移動された頂点にしたがって前記第3のピクセルデータを変更して、前記再投影フレームの変更された第3のピクセルデータを取得することと、
前記変更された第3ピクセルデータに少なくとも部分的に基づいて、前記HMDのディスプレイパネルに前記再投影フレームをレンダリングすることと、を備える、方法。 - 前記第2のピクセルデータがフレームバッファに出力される前に、前記第1のピクセルデータが前記フレームバッファに出力され、前記第1のフレームを前記第2のフレームの前にレンダリングさせ、前記変更された第3のピクセルデータが前記フレームバッファに出力される前に、前記第2のピクセルデータが前記フレームバッファに出力され、前記第2のフレームを前記再投影フレームの前にレンダリングさせる、請求項1に記載の方法。
- 前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、それぞれが前記ディスプレイパネルの1つ以上の端部にあるピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの一部および前記第2のピクセルデータの一部を提供することを備える、請求項1に記載の方法。
- 前記第1のピクセルデータの一部および前記第2のピクセルデータの一部が、それぞれ、前記ディスプレイパネルの周辺にレンダリングされたパネルマスクに対応するデータを表し、前記方法が、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定することと、
前記第1のピクセルデータを変更して、前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得することであって、前記変更された第1のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記第2のピクセルデータを変更して、前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得することであって、前記変更された第2のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記変更された第1のピクセルデータの一部を前記変更された第2のピクセルデータの一部と組み合わせて、前記パネルマスクに対応する共通のピクセル値を有するピクセルのサブセットを判定することと、を備え、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、それぞれが前記ピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの特定の部分および第2のピクセルデータの特定の部分を提供することを備える、請求項1に記載の方法。 - 方法であって、
グラフィックスプロセッシングユニット(GPU)への入力として、
アプリケーションから受信した第1のフレームであって、過去にレンダリングされた前記第1のフレームに関連付けられた第1のピクセルデータと、
前記アプリケーションから受信した第2のフレームであって、前記第1のフレームの後に過去にレンダリングされた前記第2のフレームに関連付けられた第2のピクセルデータと、を提供することと、
前記GPUから、前記第1のピクセルデータおよび前記第2のピクセルデータに少なくとも部分的に基づいて前記GPUのビデオ符号化器によって生成された動きベクトルの配列を受信することと、
前記動きベクトルの配列にオーバーレイされた減衰テクスチャを生成することと、
前記減衰テクスチャを使用して前記動きベクトルの配列の1つ以上の動きベクトルの大きさを減少させて、動きベクトルの変更された配列を取得することと、
前記第2のピクセルデータに少なくとも部分的に基づいて、再投影フレームの第3のピクセルデータを生成することと、
前記動きベクトルの変更された配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更して、前記再投影フレームの変更された第3のピクセルデータを取得することと、
前記変更された第3のピクセルデータに少なくとも部分的に基づいて、ディスプレイ上に前記再投影フレームをレンダリングすることと、を備える、方法。 - 前記第2のピクセルデータがフレームバッファに出力される前に、前記第1のピクセルデータが前記フレームバッファに出力され、前記第1のフレームを前記第2のフレームの前にレンダリングさせ、前記変更された第3のピクセルデータが前記フレームバッファに出力される前に、前記第2のピクセルデータが前記フレームバッファに出力され、前記第2のフレームを前記再投影フレームの前にレンダリングさせる、請求項5に記載の方法。
- さらに、
前記再投影フレームのレンダリングメッシュを生成することであって、前記レンダリングメッシュが、複数の頂点を有するテッセレーションされたメッシュを含むことと、
前記動きベクトルの変更された配列の中の非ゼロの動きベクトルに少なくとも部分的に基づいて、前記複数の頂点のうちの頂点を、移動された頂点として前記レンダリングメッシュ内の異なる位置に移動することと、を備え、
前記動きベクトルの変更された配列に少なくとも部分的に基づいて前記第3のピクセルデータを変更することが、前記レンダリングメッシュの前記移動された頂点にしたがって前記第3のピクセルデータのピクセル値を移動して、前記再投影フレームの前記変更された第3のピクセルデータを取得することを備える、請求項5に記載の方法。 - 前記ディスプレイがヘッドマウントディスプレイ(HMD)であり、前記方法が、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定することと、
前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得するために前記第1のピクセルデータ、または
前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得するために前記第2のピクセルデータ、のうちの少なくとも1つを変更することと、を備え、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、前記変更された第1のピクセルデータまたは前記変更された第2のピクセルデータのうちの少なくとも1つを提供することを備える、請求項5に記載の方法。 - 前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記GPUへの前記入力として、それぞれが前記ディスプレイの1つ以上の端部にあるピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの一部および前記第2のピクセルデータの一部を提供することを備える、請求項5に記載の方法。
- 前記ディスプレイがヘッドマウントディスプレイ(HMD)であり、前記第1のピクセルデータの一部および前記第2のピクセルデータの一部が、それぞれ、前記HMDのディスプレイパネルの周辺にレンダリングされたパネルマスクに対応するデータを表し、前記方法が、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定することと、
前記第1のピクセルデータを変更して、前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得することであって、前記変更された第1のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記第2のピクセルデータを変更して、前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得することであって、前記変更された第2のピクセルデータの一部が、前記パネルマスクに対応するデータを表すことと、
前記変更された第1のピクセルデータの一部を前記変更された第2のピクセルデータの一部と組み合わせて、前記パネルマスクに対応する共通のピクセル値を有するピクセルのサブセットを判定することと、を備え、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、それぞれが前記ピクセルのサブセット以外のピクセルに対応する前記第1のピクセルデータの特定の部分および第2のピクセルデータの特定の部分を提供することを備える、請求項5に記載の方法。 - さらに、
前記動きベクトルの配列の大きさを閾値の大きさと比較することと、
前記動きベクトルの配列の動きベクトルのサブセットが前記閾値の大きさよりも大きい大きさを有することを判定することと、
前記動きベクトルのサブセットの大きさを減らして、前記動きベクトルの変更された配列を取得することと、を備える、請求項5に記載の方法。 - 前記第1のフレームおよび前記第2のフレームが、一連のフレームにおいて連続してレンダリングされた、請求項5に記載の方法。
- 前記第1のピクセルデータが、第1の彩度データを含み、前記第2のピクセルデータが、第2の彩度データを含み、前記動きベクトルの配列が、前記第1の彩度データおよび前記第2の彩度データに少なくとも部分的に基づいて前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第1の配列であり、前記方法が、さらに、
前記GPUへの第2の入力として、
前記第1のフレームに関連付けられた第1の輝度データと、
前記第2のフレームに関連付けられた第2の輝度データと、を提供することと、
前記GPUから、前記第1の輝度データおよび前記第2の輝度データに少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第2の配列を受信することと、
前記動きベクトルの第1の配列および前記動きベクトルの第2の配列の分析に基づいて、前記動きベクトルの第1の配列または前記動きベクトルの第2の配列の1つを動きベクトルの選択された配列として選択することと、を備え、
前記第3のピクセルデータを変更するために使用される前記動きベクトルの変更された配列が、前記動きベクトルの選択された配列に基づいている、請求項5に記載の方法。 - 前記動きベクトルの配列が動きベクトルの第1の配列であり、前記方法が、さらに、
第1の回転量だけ前記第1のフレームを回転させて第1の回転フレームを取得することと、
第2の回転量だけ前記第2のフレームを回転させて第2の回転フレームを取得することと、
前記GPUへの第2の入力として、
前記第1の回転フレームに関連付けられた第3のピクセルデータと、
前記第2の回転フレームに関連付けられた第4のピクセルデータと、を提供することと、
前記GPUから、前記第3のピクセルデータおよび前記第4のピクセルデータに少なくとも部分的に基づいて、動きベクトルの第2の配列を受信することと、
前記動きベクトルの第1の配列および前記動きベクトルの第2の配列における動きベクトルの方向または大きさの少なくとも1つの差異を判定することと、
前記差異に少なくとも部分的に基づいて動きベクトルの最終配列を生成することと、を備え、
前記第3のピクセルデータを変更するために使用される前記動きベクトルの変更された配列が、前記動きベクトルの最終配列に基づいている、請求項5に記載の方法。 - 前記動きベクトルの配列が、第1の解像度での動きベクトルの第1の配列であり、前記方法が、さらに、
前記動きベクトルの第1の配列に少なくとも部分的に基づいて、前記ディスプレイにまたがる画像領域の第1の部分における動きの欠如を検出することと、
前記動きベクトルの第1の配列に少なくとも部分的に基づいて、前記画像領域の第2の部分におけるオブジェクトの動きを検出することと、
前記GPUへの追加入力として、
前記画像領域の前記第1の部分に対応する前記第1のピクセルデータの第1の部分と、
前記画像領域の前記第1の部分に対応する前記第2のピクセルデータの第1の部分と、
前記画像領域の前記第2の部分に対応する前記第1のピクセルデータの第2の部分と、
前記画像領域の前記第2の部分に対応する前記第2のピクセルデータの第2の部分と、を提供することと、
前記GPUから、前記第1のピクセルデータの前記第1の部分および前記第2のピクセルデータの前記第1の部分に少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第2の配列を受信することであって、前記動きベクトルの第2の配列が、前記第1の解像度よりも高い解像度である第2の解像度で生成されることと、
前記GPUから、前記第1のピクセルデータの前記第2の部分および前記第2のピクセルデータの前記第2の部分に少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第3の配列を受信することであって、前記動きベクトルの第3の配列が、前記第2の解像度よりも低い解像度である第3の解像度で生成されることと、を備え、
前記第3のピクセルデータを変更するために使用される前記動きベクトルの変更された配列が、前記動きベクトルの第2の配列および前記動きベクトルの第3の配列に基づいて前記第3のピクセルデータを変更することを備える、請求項5に記載の方法。 - 前記第3のピクセルデータを変更することが、さらに、深度バッファを利用して、前記変更された第3のピクセルデータのフレームバッファのピクセル値の最終セットを判定することを備える、請求項5に記載の方法。
- システムであって、
ディスプレイと、
グラフィックスプロセッシングユニット(GPU)と、
ロジックであって、
前記GPUへの入力として、
アプリケーションから受信した第1のフレームに関連付けられた第1のピクセルデータであって、前記第1のフレームが、以前にレンダリングされている、第1のピクセルデータと、
前記アプリケーションから受信した第2のフレームに関連付けられた第2のピクセルデータであって、前記第2のフレームが、前記第1のフレームの後に以前にレンダリングされている、第2のピクセルデータと、を提供し、
前記GPUから、前記第1のピクセルデータおよび前記第2のピクセルデータに少なくとも部分的に基づいて前記GPUのビデオ符号化器によって生成された動きベクトルの配列を受信し、
前記第2のピクセルデータに少なくとも部分的に基づいて、再投影フレームの第3のピクセルデータを生成し、
前記再投影フレームのレンダリングメッシュを生成し、
前記動きベクトルの配列のうちの非ゼロの動きベクトルに少なくとも部分的に基づいて、移動した頂点として、前記レンダリングメッシュのうちの異なる位置に前記レンダリングメッシュの頂点を移動し、
前記レンダリングメッシュの前記移動した頂点に少なくとも部分的に基づいて前記第3のピクセルデータを変更して、前記再投影フレームの変更された第3のピクセルデータを取得し、
前記変更された第3のピクセルデータに少なくとも部分的に基づいて、前記ディスプレイ上に前記再投影フレームをレンダリングする、ように構成されたロジックと、を備える、システム。 - 前記ロジックが、さらに、
前記第2のピクセルデータがフレームバッファに出力される前に、前記第1のピクセルデータを前記フレームバッファに出力し、前記第1のフレームを前記第2のフレームの前にレンダリングさせ、
前記変更された第3のピクセルデータが前記フレームバッファに出力される前に、前記第2のピクセルデータを前記フレームバッファに出力し、前記第2のフレームを前記再投影フレームの前にレンダリングさせる、ように構成されている、請求項17に記載のシステム。 - 前記レンダリングメッシュは、前記頂点を含む複数の頂点を有するテッセレーションされたメッシュと、
(i)前記非ゼロの動きベクトルの方向に、および(ii)前記非ゼロの動きベクトルの大きさに対応する量だけ移動される、前記頂点と、
前記レンダリングメッシュの前記移動された頂点にしたがって前記第3のピクセルデータのピクセル値を移動して、前記再投影フレームの前記変更された第3のピクセルデータを取得することを備える、前記レンダリングメッシュの前記移動された頂点に少なくとも部分的に基づいて前記第3のピクセルデータを変更することと、を含む、請求項17に記載のシステム。 - 前記ディスプレイがヘッドマウントディスプレイ(HMD)であり、前記ロジックが、さらに、
前記HMDの頭部追跡モジュールによって提供される回転データに基づいて、前記HMDが前記第1のフレームのレンダリングと前記第2のフレームのレンダリングとの間で第1の向きから第2の向きに回転したことを判定し、
前記第1のフレーム内のシーンを前記HMDの前記第2の向きに位置合わせする変更された第1のピクセルデータを取得するために前記第1のピクセルデータ、または
前記第2のフレーム内のシーンを前記HMDの前記第1の向きに位置合わせする変更された第2のピクセルデータを取得するために前記第2のピクセルデータ、のうちの少なくとも1つを変更するように構成されており、
前記HMDの前記GPUへの前記入力として、前記第1のピクセルデータおよび前記第2のピクセルデータを提供することが、前記HMDの前記GPUへの前記入力として、前記変更された第1のピクセルデータまたは前記変更された第2のピクセルデータのうちの少なくとも1つを提供することを備える、請求項17に記載のシステム。 - 前記ロジックが、さらに、
前記第1のピクセルデータと前記第2のピクセルデータとの間の色ピクセル値を比較して、前記動きベクトルの配列内の個々の動きベクトルに対応する個々の色差値を判定し、
閾値色差よりも小さい色差値に関連付けられている動きベクトルのサブセットを判定し、
前記動きベクトルのサブセットの大きさをゼロに減らして、動きベクトルの変更された配列を取得する、ように構成されており、
前記非ゼロの動きベクトルの配列に少なくとも部分的に基づいて前記レンダリングメッシュの前記頂点を移動することが、前記動きベクトルの変更された配列のうちの非ゼロの動きベクトルに基づいて前記第3のピクセルデータを変更することを備える、請求項17に記載のシステム。 - 前記第1のピクセルデータが、第1の彩度データを含み、前記第2のピクセルデータが、第2の彩度データを含み、前記動きベクトルの配列が、前記第1の彩度データおよび前記第2の彩度データに少なくとも部分的に基づいて前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第1の配列であり、前記ロジックが、さらに、
前記GPUへの第2の入力として、
前記第1のフレームに関連付けられた第1の輝度データと、
前記第2のフレームに関連付けられた第2の輝度データと、を提供し、
前記GPUから、前記第1の輝度データおよび前記第2の輝度データに少なくとも部分的に基づいて、前記GPUの前記ビデオ符号化器によって生成された動きベクトルの第2の配列を受信し、
前記動きベクトルの第1の配列および前記動きベクトルの第2の配列の分析に基づいて、前記動きベクトルの第1の配列または前記動きベクトルの第2の配列の1つを動きベクトルの選択された配列として選択するように構成されており、
前記レンダリングメッシュの前記頂点を移動するために使用される前記非ゼロの動きベクトルの配列が、非ゼロの動きベクトルのうちの前記動きベクトルの選択された配列を含む、請求項17に記載のシステム。 - 前記ロジックが、さらに、
動きベクトルの変更された配列を取得するために前記動きベクトルの配列に対するスカラー中央値フィルタ、または
前記動きベクトルの変更された配列を取得するために前記動きベクトルの配列に対する平均最大ぼかしフィルタ、のうちの少なくとも1つを適用するように構成されており、
前記非ゼロの動きベクトルに少なくとも部分的に基づいて前記レンダリングメッシュの前記頂点を移動することが、前記動きベクトルの変更された配列のうちの非ゼロの動きベクトルに基づいて前記第3のピクセルデータを変更することを備える、請求項17に記載のシステム。 - 前記第1のピクセルデータと前記第2のピクセルデータとの間の色ピクセル値を比較して、前記動きベクトルの配列内の個々の動きベクトルに対応する個々の色差値を決定することと、
閾値色差未満の色差値に関連付けられた動きベクトルのサブセットを決定し、
前記動きベクトルのサブセットの大きさをゼロまで減少させて、前記動きベクトルの変更された配列を取得することと、をさらに含む、請求項5に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/155,686 US10733783B2 (en) | 2018-10-09 | 2018-10-09 | Motion smoothing for re-projected frames |
US16/155,686 | 2018-10-09 | ||
PCT/US2019/053528 WO2020076526A1 (en) | 2018-10-09 | 2019-09-27 | Motion smoothing for re-projected frames |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2022504475A JP2022504475A (ja) | 2022-01-13 |
JPWO2020076526A5 true JPWO2020076526A5 (ja) | 2022-10-03 |
JP7395577B2 JP7395577B2 (ja) | 2023-12-11 |
Family
ID=70052297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021519155A Active JP7395577B2 (ja) | 2018-10-09 | 2019-09-27 | 再投影フレームのモーションスムージング |
Country Status (6)
Country | Link |
---|---|
US (1) | US10733783B2 (ja) |
EP (1) | EP3857885A4 (ja) |
JP (1) | JP7395577B2 (ja) |
KR (1) | KR102641272B1 (ja) |
CN (1) | CN113170136B (ja) |
WO (1) | WO2020076526A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10962780B2 (en) * | 2015-10-26 | 2021-03-30 | Microsoft Technology Licensing, Llc | Remote rendering for virtual images |
US10152822B2 (en) * | 2017-04-01 | 2018-12-11 | Intel Corporation | Motion biased foveated renderer |
US10319064B2 (en) | 2017-04-10 | 2019-06-11 | Intel Corporation | Graphics anti-aliasing resolve with stencil mask |
CN115842907A (zh) * | 2018-03-27 | 2023-03-24 | 京东方科技集团股份有限公司 | 渲染方法、计算机产品及显示装置 |
US10861215B2 (en) * | 2018-04-30 | 2020-12-08 | Qualcomm Incorporated | Asynchronous time and space warp with determination of region of interest |
US10520739B1 (en) * | 2018-07-11 | 2019-12-31 | Valve Corporation | Dynamic panel masking |
US11381825B2 (en) * | 2018-11-27 | 2022-07-05 | Advanced Micro Devices, Inc. | Variable rate rendering based on motion estimation |
US11287947B2 (en) | 2019-05-15 | 2022-03-29 | Microsoft Technology Licensing, Llc | Contextual input in a three-dimensional environment |
US11164395B2 (en) | 2019-05-15 | 2021-11-02 | Microsoft Technology Licensing, Llc | Structure switching in a three-dimensional environment |
US11039061B2 (en) | 2019-05-15 | 2021-06-15 | Microsoft Technology Licensing, Llc | Content assistance in a three-dimensional environment |
US11030822B2 (en) * | 2019-05-15 | 2021-06-08 | Microsoft Technology Licensing, Llc | Content indicators in a 3D environment authoring application |
US11948242B2 (en) | 2019-08-02 | 2024-04-02 | Fmr Llc | Intelligent smoothing of 3D alternative reality applications for secondary 2D viewing |
US11138804B2 (en) | 2019-08-02 | 2021-10-05 | Fmr Llc | Intelligent smoothing of 3D alternative reality applications for secondary 2D viewing |
US20210192681A1 (en) * | 2019-12-18 | 2021-06-24 | Ati Technologies Ulc | Frame reprojection for virtual reality and augmented reality |
US11363247B2 (en) | 2020-02-14 | 2022-06-14 | Valve Corporation | Motion smoothing in a distributed system |
US20220345678A1 (en) * | 2021-04-21 | 2022-10-27 | Microsoft Technology Licensing, Llc | Distributed Virtual Reality |
US11587208B2 (en) * | 2021-05-26 | 2023-02-21 | Qualcomm Incorporated | High quality UI elements with frame extrapolation |
US20230088882A1 (en) * | 2021-09-22 | 2023-03-23 | Samsung Electronics Co., Ltd. | Judder detection for dynamic frame rate conversion |
EP4224289A1 (en) * | 2022-02-08 | 2023-08-09 | Nokia Technologies Oy | Mediated reality |
CN118057460A (zh) * | 2022-11-21 | 2024-05-21 | 荣耀终端有限公司 | 图像处理方法及装置 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6466185B2 (en) | 1998-04-20 | 2002-10-15 | Alan Sullivan | Multi-planar volumetric display system and method of operation using psychological vision cues |
JP4408779B2 (ja) * | 2004-09-15 | 2010-02-03 | キヤノン株式会社 | 画像処理装置 |
US7404645B2 (en) | 2005-06-20 | 2008-07-29 | Digital Display Innovations, Llc | Image and light source modulation for a digital display system |
JP2010526455A (ja) | 2007-01-23 | 2010-07-29 | ユークリッド・ディスカバリーズ・エルエルシー | 画像データを処理するコンピュータ方法および装置 |
JP2008252591A (ja) * | 2007-03-30 | 2008-10-16 | Toshiba Corp | 補間フレーム生成装置、補間フレーム生成方法及び放送受信装置 |
US8208551B2 (en) * | 2007-10-31 | 2012-06-26 | Broadcom Corporation | Method and system for hierarchically layered adaptive median motion vector smoothing |
US20120021828A1 (en) | 2010-02-24 | 2012-01-26 | Valve Corporation | Graphical user interface for modification of animation data using preset animation samples |
JP5677002B2 (ja) | 2010-09-28 | 2015-02-25 | キヤノン株式会社 | 映像制御装置、及び映像制御方法 |
US8624891B2 (en) | 2011-01-17 | 2014-01-07 | Disney Enterprises, Inc. | Iterative reprojection of images |
US9641853B2 (en) * | 2013-04-15 | 2017-05-02 | Futurewei Technologies, Inc. | Method and apparatus of depth prediction mode selection |
US9277129B2 (en) | 2013-06-07 | 2016-03-01 | Apple Inc. | Robust image feature based video stabilization and smoothing |
WO2015081888A1 (en) * | 2013-12-06 | 2015-06-11 | Mediatek Inc. | Method and apparatus for motion boundary processing |
US9824498B2 (en) * | 2014-12-30 | 2017-11-21 | Sony Interactive Entertainment Inc. | Scanning display system in head-mounted display for virtual reality |
US10856001B2 (en) | 2015-02-24 | 2020-12-01 | Lg Electronics Inc. | Polygon unit-based image processing method, and device for same |
US10037620B2 (en) * | 2015-05-29 | 2018-07-31 | Nvidia Corporation | Piecewise linear irregular rasterization |
GB2539042B (en) * | 2015-06-05 | 2019-08-21 | Imagination Tech Ltd | Tessellation method using displacement factors |
WO2017031268A1 (en) * | 2015-08-19 | 2017-02-23 | Valve Corporation | Systems and methods for detection and/or correction of pixel luminosity and/or chrominance response variation in displays |
US10026212B2 (en) * | 2015-11-20 | 2018-07-17 | Google Llc | Electronic display stabilization using pixel velocities |
US9978180B2 (en) | 2016-01-25 | 2018-05-22 | Microsoft Technology Licensing, Llc | Frame projection for augmented reality environments |
US10129523B2 (en) * | 2016-06-22 | 2018-11-13 | Microsoft Technology Licensing, Llc | Depth-aware reprojection |
US10297086B2 (en) * | 2016-07-04 | 2019-05-21 | Liquid Cinema Inc. | System and method for processing digital video |
US20190045213A1 (en) * | 2017-08-03 | 2019-02-07 | Intel Corporation | Reference frame reprojection for improved video coding |
US10861215B2 (en) * | 2018-04-30 | 2020-12-08 | Qualcomm Incorporated | Asynchronous time and space warp with determination of region of interest |
-
2018
- 2018-10-09 US US16/155,686 patent/US10733783B2/en active Active
-
2019
- 2019-09-27 WO PCT/US2019/053528 patent/WO2020076526A1/en unknown
- 2019-09-27 CN CN201980067305.5A patent/CN113170136B/zh active Active
- 2019-09-27 EP EP19871387.7A patent/EP3857885A4/en active Pending
- 2019-09-27 JP JP2021519155A patent/JP7395577B2/ja active Active
- 2019-09-27 KR KR1020217012646A patent/KR102641272B1/ko active IP Right Grant
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPWO2020076526A5 (ja) | ||
US11270492B2 (en) | Graphics processing systems | |
US11222466B1 (en) | Three-dimensional geometry-based models for changing facial identities in video frames and images | |
JP6639877B2 (ja) | 映像処理装置及び方法 | |
US6226015B1 (en) | Method of automatically producing sketches and cartoon images from movies | |
WO2004114223A8 (en) | A method for tracking depths in a scanline based raster image processor | |
US7876378B1 (en) | Method and apparatus for filtering video data using a programmable graphics processor | |
WO2019135979A1 (en) | Fusing, texturing, and rendering views of dynamic three-dimensional models | |
US10121221B2 (en) | Method and apparatus to accelerate rendering of graphics images | |
CN107203965B (zh) | 一种基于多通道图像融合的全景图像拼接方法 | |
WO2021135320A1 (zh) | 一种视频的生成方法、装置及计算机系统 | |
CN111161392B (zh) | 一种视频的生成方法、装置及计算机系统 | |
US20230052483A1 (en) | Super resolution using convolutional neural network | |
KR20230007358A (ko) | 증강 현실을 위한 멀티레이어 재투영 기법들 | |
US12020442B2 (en) | Graphics processing systems | |
TW202224402A (zh) | 幀處理設備、方法及幀處理器 | |
TW202141418A (zh) | 處理拆分渲染中的遮蔽之方法及裝置 | |
JP2014153893A (ja) | 描画処理装置および描画処理方法 | |
WO2020012139A3 (fr) | Procede de visualisation d'elements graphiques issus d'un flux video composite encode | |
US11995749B2 (en) | Rig-space neural rendering of digital assets | |
JP4008333B2 (ja) | 複数台のプロジェクタによるマルチ映像投影方法、同方法を使用するためのプロジェクタ装置、プログラム及び記録媒体 | |
JP3052839B2 (ja) | 画像処理装置及びその処理方法 | |
McGuire | Efficient, high-quality bayer demosaic filtering on gpus | |
RU2792721C2 (ru) | Способ асинхронной репроекции изображения 3d-сцены | |
US11288859B2 (en) | Real-time feature preserving rendering of visual effects on an image of a face |