(57)【要約】【課題】画像をフィールドシーケンシャルカラーディスプレイに表示するための構成を改善すること。【解決手段】フィールドシーケンシャルカラーディスプレイを含んでいるデータ処理システムにおいて、予測された視野方位に基づいて変換されるフレームをフィールドシーケンシャルカラーディスプレイに表示するときに、ディスプレイに表示されるフレームの各カラーフィールドが、その特定のカラーフィールドに対して予測された視野方位(186)に基づいて、各カラーフィールドがフレームの他のカラーフィールドとは異なる視野方位の変換を受けるように、変換される(184)。その後、そのように変換されたカラーフィールドが、連続的にディスプレイに表示され、フレームを表示する。【選択図】図9
2020004413.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムを動作させる方法であって、前記データ処理システムが、
表示用のフレームを表示するよう機能するフィールドシーケンシャルカラーディスプレイと、
前記ディスプレイに表示するためのフレームを生成するよう機能する生成処理ユニットと、
前記生成処理ユニットによって生成されたフレームを、表示のために前記ディスプレイに提供するよう機能するディスプレイプロセッサと、
前記生成処理ユニットによって生成されたフレームを視野方位に基づいて変換し、前記ディスプレイに表示するために、視野方位によって変換されたフレームを提供するよう機能する変換エンジンと
を備えており、
前記方法が、
予測された視野方位に基づいて変換される、前記生成処理ユニットによって生成されたフレームを、前記フィールドシーケンシャルカラーディスプレイに表示するときに、
前記変換エンジンが、前記ディスプレイに表示される前記フレームの各カラーフィールドを、その特定のカラーフィールドに対して予測された視野方位に基づいて、各カラーフィールドが前記フレームの他のカラーフィールドとは異なる視野方位の変換を受けるように、変換するステップと、
そのように変換されたカラーフィールドを連続的に前記ディスプレイに表示して、前記フレームを表示するステップと
を含んでいる、方法。
【請求項２】
前記生成処理ユニットがグラフィックスプロセッシングユニットである、請求項1に記載の方法。
【請求項３】
カラーフィールドに対する前記予測された視野方位が、前記ディスプレイの検知された視野方位、および前記カラーフィールドが前記ディスプレイに表示される時間に基づく、請求項1または2に記載の方法。
【請求項４】
表示されるフレームごとに3つのみのカラーフィールドを表示するステップを含んでいる、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記変換エンジンが、前記ディスプレイプロセッサにおいて提供され、前記予測された視野方位に基づく変換が、前記ディスプレイに提供するために前記フレームを処理するときに前記ディスプレイプロセッサによって実行される前記処理の一部として実行される、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記変換エンジンが、前記ディスプレイに表示されるフレームの各カラーフィールドを、その特定のカラーフィールドに対して予測された視野方位と、色収差補正およびレンズ歪み補正のうちの1つまたは複数との両方に基づいて変換する、ステップを含んでいる、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記ディスプレイプロセッサが別々の各カラーフィールドにすでに分離されている前記フレームのデータを表示のために前記ディスプレイに提供するステップを含んでいる、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記生成処理ユニットが、前記ディスプレイプロセッサによって処理するための前記フレームを、別々のカラー平面の形態で提供するステップと、
前記ディスプレイプロセッサが、前記生成処理ユニットによって提供された各カラー平面を別々に処理し、前記別々のカラー平面を別々のカラー平面として、表示のために前記ディスプレイに提供するステップと
を含んでいる、請求項7に記載の方法。
【請求項９】
データ処理システムを動作させる方法であって、前記データ処理システムが、
表示用のフレームを表示するよう機能するフィールドシーケンシャルカラーディスプレイと、
前記ディスプレイに表示するためのフレームを生成するよう機能する生成処理ユニットと、
前記生成処理ユニットによって生成されたフレームを、表示のために前記ディスプレイに提供するよう機能するディスプレイプロセッサと
を備えており、
前記方法が、
前記生成処理ユニットによって生成されたフレームを、前記フィールドシーケンシャルカラーディスプレイに表示するときに、
前記生成処理ユニットが、前記ディスプレイプロセッサによって処理するための前記フレームを、別々のカラー平面の形態で提供するステップと、
前記ディスプレイプロセッサが、前記生成処理ユニットによって提供された各カラー平面を別々に処理し、前記別々のカラー平面を別々のカラー平面として、表示のために前記ディスプレイに提供するステップと、
前記ディスプレイが、前記フレームの前記別々のカラー平面を表示するステップと
を含んでいる、方法。
【請求項１０】
前記予測された視野方位に基づいて、表示されるフレームのカラー平面を変換するときに、前記変換エンジンが、
出力される前記出力変換フレーム内のデータ要素の位置に基づいて、前記出力変換フレーム内の前記データ要素の位置に対応する、前記カラー平面内の位置、および前記出力変換フレーム内の2つの他のデータ要素の位置に対応する、前記入力カラー平面内のさらに2つの位置を決定することと、
サンプリングされる前記カラー平面内の3つの出力位置を提供するために、前記3つの決定されたカラー平面の位置を、前記予測された視野方位に基づいて修正し、前記出力変換フレームの前記3つのデータ要素の位置に使用するデータを提供することと
を実行する、ステップを含んでいる、請求項7、8、または9に記載の方法。
【請求項１１】
表示用のフレームを表示するよう機能するフィールドシーケンシャルカラーディスプレイと、
前記ディスプレイに表示するためのフレームを生成するよう機能する生成処理ユニットと、
前記生成処理ユニットによって生成されたフレームを、表示のために前記ディスプレイに提供するよう機能するディスプレイプロセッサと、
前記生成処理ユニットによって生成されたフレームを視野方位に基づいて変換し、前記ディスプレイに表示するために、視野方位によって変換されたフレームを提供するよう機能する変換エンジンと
を備えているデータ処理システムであって、
前記変換エンジンが、
前記生成処理ユニットによって生成され、予測された視野方位に基づいて変換されて、前記フィールドシーケンシャルカラーディスプレイに表示されるフレームに関して、
前記ディスプレイに表示される前記フレームの各カラーフィールドを、その特定のカラーフィールドに対して予測された視野方位に基づいて、各カラーフィールドが前記フレームの他のカラーフィールドとは異なる視野方位の変換を受けるように、変換するように構成されており、
前記データ処理システムが、
そのように変換されたカラーフィールドを連続的に前記ディスプレイに表示して、前記フレームを表示するようにさらに構成されている、データ処理システム。
【請求項１２】
前記生成処理ユニットがグラフィックスプロセッシングユニットである、請求項11に記載のシステム。
【請求項１３】
カラーフィールドに対する前記予測された視野方位が、前記ディスプレイの検知された視野方位、および前記カラーフィールドが前記ディスプレイに表示される時間に基づく、請求項11または12に記載のシステム。
【請求項１４】
前記データ処理システムが、表示されるフレームごとに3つのみのカラーフィールドを表示するように構成されている、請求項11から13のいずれか一項に記載のシステム。
【請求項１５】
前記変換エンジンが、前記ディスプレイプロセッサにおいて提供され、前記予測された視野方位に基づく変換が、前記ディスプレイに提供するために前記フレームを処理するときに前記ディスプレイプロセッサによって実行される前記処理の一部として実行される、請求項11から14のいずれか一項に記載のシステム。
【請求項１６】
前記変換エンジンが、前記ディスプレイに表示されるフレームの各カラーフィールドを、その特定のカラーフィールドに対して予測された視野方位と、色収差補正およびレンズ歪み補正のうちの1つまたは複数との両方に基づいて変換するように構成されている、請求項11から15のいずれか一項に記載のシステム。
【請求項１７】
前記ディスプレイプロセッサが、別々の各カラー平面にすでに分離されているフレームの前記データを表示のために前記ディスプレイに提供するように構成されている、請求項11から16のいずれか一項に記載のシステム。
【請求項１８】
前記生成処理ユニットが、前記ディスプレイプロセッサによって処理するためのフレームを、別々のカラー平面の形態で提供するように構成されており、
前記ディスプレイプロセッサが、前記生成処理ユニットによって提供された各カラー平面を別々に処理し、前記別々のカラー平面を別々のカラー平面として、表示のために前記ディスプレイに提供するように構成されている、請求項17に記載のシステム。
【請求項１９】
表示用のフレームを表示するよう機能するフィールドシーケンシャルカラーディスプレイと、
前記ディスプレイに表示するためのフレームを生成するよう機能する生成処理ユニットと、
前記生成処理ユニットによって生成されたフレームを、表示のために前記ディスプレイに提供するよう機能するディスプレイプロセッサと
を備えているデータ処理システムであって、
前記生成処理ユニットが、前記フィールドシーケンシャルカラーディスプレイに表示されるフレームを生成するときに、前記ディスプレイプロセッサによって処理するための前記フレームを、別々のカラー平面の形態で提供するように構成されており、
前記ディスプレイプロセッサが、前記生成処理ユニットによって提供された各カラー平面を別々のカラー平面として処理し、前記別々のカラー平面を別々のカラー平面として、表示のために前記ディスプレイに提供するように構成されており、
前記ディスプレイが、前記ディスプレイプロセッサから受信された前記フレームの前記別々のカラー平面を表示するように構成されている、データ処理システム。
【請求項２０】
予測された視野方位に基づいて、表示されるフレームのカラー平面を変換するときに、前記変換エンジンが、
出力される前記出力変換フレーム内のデータ要素の位置に基づいて、前記出力変換フレーム内の前記データ要素の位置に対応する、前記カラー平面内の位置、および前記出力変換フレーム内の2つの他のデータ要素の位置に対応する、前記カラー平面内のさらに2つの位置を決定することと、
サンプリングされる前記入力カラー平面内の3つの出力位置を提供するために、前記3つの決定された入力カラー平面の位置を、予測された視野方位に基づいて修正し、前記出力変換フレームの前記3つのデータ要素の位置に使用するデータを提供することと
を実行するように構成されている、請求項17、18、または19に記載のシステム。
【請求項２１】
請求項11から20のいずれか一項に記載の前記データ処理システムを備えている、ヘッドマウントディスプレイデバイス。
【請求項２２】
前記プログラムがデータプロセッサ上で実行された場合に、請求項1から10のいずれか一項に記載の前記方法を実行するための、コンピュータソフトウェアコードを含んでいる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関連しており、特に、画像をディスプレイ上に表示するデータ処理システムの動作に関連している。
【背景技術】
【０００２】
図1は、中央処理装置(CPU: central processing unit)7を備えているホストプロセッサ、グラフィックスプロセッシングユニット(GPU: graphics processing unit)2、ビデオコーデック1、カメラ12、画像信号プロセッサ(ISP: image signal processor)13、ディスプレイプロセッサ5、およびメモリコントローラ8を備えている例示的なデータ処理システム14を示している。図1に示されているように、これらのユニットは、相互接続を介して通信し、オフチップメモリ3にアクセスできる。このシステムでは、GPU2、ビデオコーデック1、ISP13、および/またはCPU7が、表示されるフレーム(画像)を生成し、その後ディスプレイプロセッサ5が、それらのフレームを表示のためにディスプレイ4に提供する。ディスプレイ4は、システムの他の部分に対してローカルまたはリモートであってよく、ディスプレイプロセッサ5と有線接続または無線接続してよい。
【０００３】
このシステムの使用において、ホストプロセッサ(CPU)上で実行されるゲームなどのアプリケーションは、例えば、ディスプレイ4上でのフレームの表示を必要とする。これを実行するために、アプリケーション10は、適切なコマンドおよびデータを、CPU7上で実行されているグラフィックスプロセッシングユニット2用のドライバ11に送信する。次にドライバ11は、グラフィックスプロセッシングユニット2に表示用の適切なフレームを描画させ、それらのフレームを、例えばメインメモリ3内の適切なフレームバッファに格納させるために、適切なコマンドおよびデータを生成する。次にディスプレイプロセッサ5は、それらのフレームを表示用のバッファに読み取り、その後、このバッファからそれらのフレームが読み出されて、ディスプレイ4の表示パネルに表示される。
【０００４】
表示用のフレームは、必要に応じて、例えばキャッシュを介して、フレームを生成している処理ユニット(例えば、GPU2またはISP13)からディスプレイプロセッサに、追加または代替として、ストリーミングされてよい。
【０００５】
図1に示されているようなデータ処理システム14の使用例は、拡張現実(AR: augmented reality)および/または仮想現実(VR: virtual reality)ヘッドマウントディスプレイ(HMD: head-mounted display)システムを提供することである(その場合、ディスプレイ4は何らかの種類のヘッドマウントディスプレイになる)。
【０００６】
ヘッドマウントAR/VRディスプレイの動作では、拡張現実または仮想現実の表示を必要とする(例えばCPU7上で実行されている)ゲームなどのアプリケーションからの適切なコマンドおよびデータに応答して、各目に表示される適切な画像が、例えばグラフィックスプロセッシングユニット2によって描画される。GPU2は、例えば、ディスプレイのリフレッシュレート(毎秒30フレームなど)に一致するレートで表示されるように、画像を描画する。
【０００７】
そのような構成では、システムは、ユーザの頭部/凝視の動きを追跡するようにも動作する(頭部姿勢追跡と呼ばれる)。その後、この頭部方位(姿勢)データは、現在の頭部位置(視野方向)に対応する画像を実際にどのようにユーザに表示するべきかを決定するために使用され、それに応じて、ユーザの現在の視野方向に基づいて適切な画像を表示できるように、(例えば、頭部方位データに基づいてカメラ(視点)の方向を設定することによって)画像(フレーム)が描画される。
【０００８】
AR/VRシステムに表示されるフレームの描画の開始時に、頭部の方位(姿勢)を決定することは容易に可能であるが、描画プロセスにおけるレイテンシのため、フレームの描画の開始時の頭部の方位(姿勢)と、フレームが実際に表示される(スキャンされて表示パネルに出力される)ときとの間に、ユーザの頭部の方位(姿勢)が変化している場合がある。
【０００９】
これを考慮するために、表示されるフレームは、フレームの描画の開始時に検知された頭部方位データに基づいて描画されるが、その後、フレームが実際に表示される前に、フレームは、フレームがユーザに実際に表示されるときに期待される頭部の方位に基づいて、再投影される。期待される頭部の方位は、例えば、フレームが描画されるときと、フレームが実際に表示されるときとの間の、予測されたユーザの頭部の動きに基づいてよい。その後、フレームの再投影されたバージョンが表示される。これによって、ディスプレイ上に表示された画像を、ユーザの(予測された)現在の頭部の方位により厳密に一致させることができる。
【００１０】
この処理を実行するために、初期「アプリケーション」フレームがメモリ内の適切なバッファに描画されるが、その後、メモリ内の初期アプリケーションフレームを選択し、予測された頭部の方位(姿勢)情報を使用して、最初に描画されたフレームの「再投影された」バージョンを描画し、期待される頭部の方位を考慮してユーザに表示されるフレームを提供する、第2の描画プロセスが存在する。この描画プロセスは、通常、予測された頭部の方位(姿勢)に基づくフレーム上の変換の何らかの形態を含む。次に、実際に表示されることになる、そのように変換された(再投影された)描画済みのフレームが、メモリ内の追加の1つまたは複数のバッファに書き込まれてよく、その後、ディスプレイプロセッサによって表示するために、それらのバッファからフレームが読み出される。
【００１１】
予測された頭部の方位(姿勢)に基づく初期フレームの変換(再投影)が、例えばCPU7からの適切な制御下で、例えばグラフィックスプロセッシングユニット2および/またはディスプレイプロセッサ5(ディスプレイプロセッサが適切な変換機能を有している場合)によって、実行されてよい。したがって、この処理のために、グラフィックスプロセッシングユニット2は、アプリケーションによって要求され、指示された「アプリケーション」フレームを描画し、次にグラフィックスプロセッシングユニットまたはディスプレイプロセッサは、表示のためにディスプレイプロセッサ5によって処理するために、予測された頭部方位データに基づいて、例えば、それらの描画されたフレームを適切に再投影する。
【００１２】
LCos(Liquid Crystal on Silicon)ディスプレイなどの、いわゆる「フィールドシーケンシャル」カラーディスプレイを使用することは、ヘッドマウントディスプレイシステムの場合(特に、拡張現実(AR)ヘッドセットの場合)、ますます一般的になっている。これは、そのようなディスプレイが、物理的に非常に小さく、低電力かつ安価になることができ、個別に着色されたサブピクセル素子を含んでいるLCDおよびOLEDパネルタイプにおける「網戸」問題をなくすことができるためである。
【００１３】
フィールドシーケンシャルカラーディスプレイは、3つのカラーフィールドをすべて同時に表示する表示素子を含んでいるのではなく、異なるカラーフィールドが連続的な画像で表示されるディスプレイである。したがって、フィールドシーケンシャルディスプレイでは、連続的な単一のカラー画像を「完全な」カラー画像に融合させる人間の視覚システムを利用して、例えば、表示されるフレームの「赤色の画像」が最初に表示され、次にフレームの緑色の画像が表示され、その後、フレームの青色の画像が表示される。そのようなフィールドシーケンシャルディスプレイは、通常、安定した画像を構築するために、高いフレームレートおよび1フレームごとに表示される複数のカラーフィールドの組み合わせを必要とする。1フレーム当たりのカラーフィールドの最小セットは(RGBのように)3つであるが、1フレーム当たり4つのカラーフィールド(例えば、RGBG)および6つのカラーフィールド(RGBRGB)も使用され得る。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
フィールドシーケンシャルディスプレイに伴う1つの問題は、個々のカラーフィールドがユーザに見えるようになる、いわゆる「色割れ」である。これは、ARヘッドセットを使用する場合に特に問題になることがあり、その場合、ユーザは移動しながら半透明ディスプレイをのぞき込み、フィールドシーケンシャルディスプレイの出力と現実世界の混合を見る。1つのフレームでのユーザの頭部の動きは、事実上、カラーフィールドを目に見えるほど広げることがあり、それが、色割れの可能性を高める。
【００１５】
したがって、本出願人らは、画像をフィールドシーケンシャルカラーディスプレイに表示するために改善される構成の範囲が、特に、そのようなディスプレイをヘッドマウントディスプレイシステムおよび/または拡張現実アプリケーションに使用する場合に、存在していると考える。
【課題を解決するための手段】
【００１６】
本発明の第1の態様によれば、データ処理システムを動作させる方法が提供されており、このデータ処理システムが、
表示用のフレームを表示するよう機能するフィールドシーケンシャルカラーディスプレイと、
ディスプレイに表示するためのフレームを生成するよう機能する生成処理ユニットと、
生成処理ユニットによって生成されたフレームを、表示のためにディスプレイに提供するよう機能するディスプレイプロセッサと、
生成処理ユニットによって生成されたフレームを視野方位に基づいて変換し、ディスプレイに表示するために、視野方位によって変換されたフレームを提供するよう機能する変換エンジンとを備えており、
方法が、
予測された視野方位に基づいて変換される、生成処理ユニットによって生成されたフレームを、フィールドシーケンシャルカラーディスプレイに表示するときに、
変換エンジンが、ディスプレイに表示されるフレームの各カラーフィールドを、その特定のカラーフィールドに対して予測された視野方位に基づいて、各カラーフィールドがフレームの他のカラーフィールドとは異なる視野方位の変換を受けるように、変換するステップと、
そのように変換されたカラーフィールドを連続的にディスプレイに表示して、フレームを表示するステップとを含む。
【００１７】
本発明の第2の態様によれば、
表示用のフレームを表示するよう機能するフィールドシーケンシャルカラーディスプレイと、
ディスプレイに表示するためのフレームを生成するよう機能する生成処理ユニットと、
生成処理ユニットによって生成されたフレームを、表示のためにディスプレイに提供するよう機能するディスプレイプロセッサと、
生成処理ユニットによって生成されたフレームを視野方位に基づいて変換し、ディスプレイに表示するために、視野方位によって変換されたフレームを提供するよう機能する変換エンジンとを備えているデータ処理システムが提供されており、
変換エンジンが、
生成処理ユニットによって生成され、予測された視野方位に基づいて変換されて、フィールドシーケンシャルカラーディスプレイに表示されるフレームに関して、
ディスプレイに表示されるフレームの各カラーフィールドを、その特定のカラーフィールドに対して予測された視野方位に基づいて、各カラーフィールドがフレームの他のカラーフィールドとは異なる視野方位の変換を受けるように、変換するように構成されており、
データ処理システムが、
そのように変換されたカラーフィールドを連続的にディスプレイに表示して、フレームを表示するようにさらに構成されている。
【００１８】
本発明は、フィールドシーケンシャルカラーディスプレイ(すなわち、連続的な別々のカラーフィールドが表示されて、カラー画像全体を提供するディスプレイ)を使用して画像を表示するデータ処理システムに関連している。
【００１９】
本発明では、フィールドシーケンシャルカラーディスプレイに表示されるフレームが、視野方位データに基づいて変換される場合(例えば、拡張現実表示を提供する場合などが挙げられる)、例えば全体としてフレームに対して予測された視野方位に基づいて全体として表示されるように、フレームを単純に変換するのではなく、表示される各カラーフィールドが、その特定のカラーフィールドに対して予測された視野方位に基づいて、それ自身の個別の、視野方位に基づく変換を受ける。
【００２０】
その結果、この方法には、各カラーフィールドが連続的な表示で別々の(異なる)時間に表示されるということを考慮に入れる、視野方位に基づく変換の効果がある。言い換えると、各カラーフィールドを、そのカラーフィールドに対して予測された視野方位に基づいて個別に変換することによって、別々のカラーフィールドの表示の特定の時間が考慮される。
【００２１】
その結果、この方法は、特にユーザがフレームの表示中に移動しているヘッドマウントディスプレイの場合に、より正確で視覚的に受け入れることができる表示を提供できる。この方法は、フィールドシーケンシャルカラーディスプレイを例えばヘッドマウントディスプレイシステムに使用する場合に、色割れを減らすこと、および/または回避することに役立つことがある。
【００２２】
フィールドシーケンシャルカラーディスプレイは、Liquid Crystal on Siliconディスプレイなどの、任意の適切な望ましい形態のフィールドシーケンシャルカラーディスプレイ(すなわち、連続的な別々のカラーフィールドを連続的に(順番に)ディスプレイに表示することによって画像が表示されるディスプレイ)であってよい。
【００２３】
このディスプレイは、ディスプレイが備えることがあり、備えることが好ましい、表示パネル、表示パネルへの各カラーフィールドデータをスキャンするためのディスプレイドライバ回路、および表示パネルに表示されるデータを受信するためのディスプレイ受信器などの、任意の適切な望ましいコンポーネントおよび要素を備えることができる。ディスプレイドライバ回路は、適切な一連のカラーフィールドを表示のために表示パネルに提供して、表示対象の(各)フレームを表示するよう機能するべきである。このディスプレイは、例えば各カラーフィールドへの分離がディスプレイ自体によって実行されるフレームバッファなどの、適切なローカルの(チップ上の)フレームデータストレージを備えてもよい。
【００２４】
フィールドシーケンシャルカラーディスプレイに表示するためのフレームを生成する生成処理ユニットは、表示用のフレームを生成できるデータ処理システムの任意の処理ユニットを含むことができる。したがって、生成処理ユニットは、例えば、グラフィックプロセッサ(グラフィックスプロセッシングユニット(GPU))、ビデオプロセッサ、CPU、および/または画像信号プロセッサ(ISP)などを含んでよい。必要に応じて、ディスプレイに表示するためのフレームを生成するよう機能する、2つ以上の生成処理ユニットが存在してよい。好ましい実施形態では、生成処理ユニットは、グラフィックプロセッサである。
【００２５】
したがって、表示用のフレームは、好ましい実施形態では、データ処理システムのグラフィックスプロセッシングユニット(グラフィックプロセッサ)によって生成(描画)されるが、必要に応じて、代わりに、CPU、ビデオプロセッサ、またはISPなどの、データ処理システム全体の別の1つまたは複数のコンポーネントによって生成されるか、または提供されてもよい。
【００２６】
表示のために生成されるフレームは、表示することが望ましいことがある、任意の適切な望ましいフレームであることができる。好ましい実施形態では、フレームは、ゲームおよび好ましくは拡張現実アプリケーションまたは仮想現実アプリケーションなどの、アプリケーションの表示のために生成されるフレームである。
【００２７】
各フレームは、データ要素(サンプリング位置)(例えば、ピクセル)のアレイを含み、それらのデータ要素ごとに、適切なデータ(例えば、色値のセット)が格納される。
【００２８】
ディスプレイプロセッサは、データ処理システムの生成処理ユニットによって生成されたフレームを表示のためにディスプレイに提供するよう機能する、任意の適切な望ましいディスプレイプロセッサを含むことができる。したがって、ディスプレイプロセッサは、フレームのデータをメモリから読み取り、それらのフレームに対して適切な「表示処理」を実行し、その後、処理されたフレームを表示のためにディスプレイに提供するよう機能するべきである。好ましい実施形態では、ディスプレイプロセッサが、ディスプレイへの「直接」接続を介して、フレームを表示のためにディスプレイに提供する(すなわち、例えばメモリを介してフレームをディスプレイに転送するのではなく、フレーム(フレームのデータ)をディスプレイにストリーミングするよう機能する)。ディスプレイプロセッサは、ディスプレイへの有線接続または無線接続を有してよい。
【００２９】
ディスプレイプロセッサは、表示用のフレームに対して、表示用の出力フレームを提供するために複数の入力フレームを合成するなどの、他の処理動作(および、表示に適した形態でフレームを提供するために必要な動作)を実行するよう機能してもよい。
【００３０】
好ましい一実施形態では、生成処理ユニットによって生成されたフレームは、例えばメモリ内のフレームバッファに格納され、その後、ディスプレイプロセッサによって処理するため(および、その後、表示のためにディスプレイに提供するため)に、このフレームバッファから、それらのフレームがディスプレイプロセッサによって読み取られる。
【００３１】
フレームが(ディスプレイプロセッサによる処理の前に)格納されるメモリは、任意の適切なメモリを含んでよく、任意の適切な望ましい方法で構成されてよい。例えば、このメモリは、ディスプレイプロセッサと共にチップ上にあるメモリであってよく、または外部メモリであってもよい。一実施形態では、このメモリは、データ処理システム全体のメインメモリなどの、外部メモリ内にある。このメモリは、この目的のための専用メモリであってよく、または他のデータにも使用されるメモリの一部であってもよい。
【００３２】
別の実施形態では、フレームが(メモリ内の中間ストレージなしで)ディスプレイプロセッサにストリーミングされる。
【００３３】
変換エンジンは、任意の適切な望ましい方法で、予測された視野方位に基づいて、フレームのカラーフィールドを変換できる。好ましい実施形態では、カラーフィールドの予測された視野方位は、その視野方位から見られているかのように当該のカラーフィールドが表示されることになる望ましい視野方位(視野位置および/または視野方向)である(変換されるフレームが、その視野方位に対して表示されることになる)。
【００３４】
好ましい実施形態では、予測された視野方位は、ディスプレイの「現在」の視野方位を示す、受信された視野方位データに基づく。好ましい実施形態では、この現在の視野方位データは、例えば、好ましくは、ディスプレイが含まれているディスプレイヘッドセットの適切な頭部姿勢追跡センサから検知された、頭部姿勢追跡データを含む(フレームが、この頭部姿勢追跡データに対して表示されることになる)。
【００３５】
したがって、好ましい実施形態では、予測された視野方位に基づく変換は、例えば、好ましくは、ディスプレイが含まれているヘッドセットによって定期的に決定された、適切にサンプリングされた頭部姿勢追跡データに基づき、この頭部姿勢追跡データを使用する。
【００３６】
したがって、好ましい実施形態では、本発明は、視野方位データ(例えば、頭部姿勢データ)を定期的に(例えば、好ましくは、ディスプレイが含まれているヘッドマウントディスプレイの適切なセンサを用いて定期的に)サンプリングすることと、サンプリングされた視野方位データを定期的に提供し、フレームのカラーフィールドを変換して表示用のフレームの変換されたバージョンを提供するときに、提供された、サンプリングされた視野方位データを使用することとを含む(データ処理システムは、これらのことを実行するように適切に構成される)。
【００３７】
これに関連して、サンプリングされて使用される頭部姿勢追跡データは、任意の適切な望ましい頭部姿勢追跡データを含むことができる。好ましい実施形態では、頭部姿勢追跡データは、視野方向および/または視野位置(好ましくは、両方)を示すデータであり、頭部の回転および頭部の平行移動のうちの1つまたは複数、好ましくは、すべてを追跡するのが好ましい。
【００３８】
頭部姿勢追跡データは、望ましいように決定され得る。例えば、頭部姿勢追跡データは、データ処理システムのディスプレイ、追跡システム、またはカメラに関連付けられた慣性測定装置(IMU: inertial measurement unit)などの、適切なセンサによって生成され得る。一般に、検知される頭部姿勢データは、レイテンシの短い高精度の頭部姿勢(好ましくは、回転および位置)データのソースになるために、任意の時点で照会できる適切なシステムによって提供されることが可能であり、そのようなシステムによって提供されることが好ましい。頭部姿勢追跡システムは、望ましいように、回転のみ、または回転および位置、または回転および位置および速度などを追跡できる。
【００３９】
変換されるフレームのカラーフィールドが基づく、予測された視野方位は、予測された視野位置および/または予測された視野方向を含むことができる。好ましい実施形態では、予測された視野方位は、予測された視野位置および予測された視野方向の両方を含む。
【００４０】
好ましい実施形態では、サンプリングされた視野方位(例えば、頭部の位置および/または方向)が、フレームの各カラーフィールドが表示される時間に関する情報と一緒に使用され、フレームの各カラーフィールドが実際に表示されるときのユーザの各視野方位(および、例えば好ましくは、視野位置および/または視野方向)を予測し、その後、フレームの各カラーフィールドが、各予測された視野方位に基づいてそれぞれ変換される。
【００４１】
したがって、特に好ましい実施形態では、検知された視野方位(頭部姿勢)が使用され、検知された視野方位および各カラーフィールドが表示される時間に基づいて、カラーフィールド(平面)ごとに別々に未来の視野方位を予測する。この予測は、視野方位がサンプリングされたときから、カラーフィールドが表示されるときまでの、ユーザの凝視の起こり得る動き(例えば、回転および/または平行移動)の推定を使用することが好ましい。
【００４２】
好ましい実施形態では、この予測は、回転、平行移動、および推定された表示時間のうちの1つまたは複数(好ましくは、すべて)を使用して、当該のカラーフィールドの予測された視野方位を決定する。
【００４３】
したがって、特に好ましい実施形態では、フレームのカラーフィールドの予測された視野方位が、検知された、好ましくは現在の、視野方位(位置および/または方向)、およびその検知された視野方位から当該のカラーフィールドが表示される(推定された)時間までの、ユーザの起こり得る頭部の動き(例えば、好ましくは、回転および/または平行移動)の予測に基づいて決定され、当該のカラーフィールドが表示される時間に対して予測された視野方位を提供し、その後、変換エンジンが、予測された視野方位に基づいて当該のカラーフィールドを変換する。
【００４４】
それに応じて、検知された方位(頭部姿勢)と当該のカラーフィールドが表示される時間との間の予測された頭部の動きは、任意の方法で決定することができ、例えば、好ましくは、ある期間にわたってユーザの頭部の動き(例えば、好ましくは、回転および/または平行移動および/または速度)を追跡し、次にその追跡を使用してユーザの未来の頭部の動きを予測することによって、決定することができる。
【００４５】
当然、その他の構成も可能であろう。
【００４６】
検知された頭部姿勢データを使用する、予測された視野方位の実際の決定は、データ処理システムの任意の適切な望ましいコンポーネントまたは要素において実行され得る。したがって、予測された視野方位は、例えば、データ処理システムのCPUまたはその他のプロセッサなどの、適切なプロセッサにおいて生成されてよい。次に、決定された、予測された視野方位が、変換エンジンの適切な変換パラメータの決定に使用されるのが好ましく、その後、それらのパラメータが、変換エンジンに、例えばディスプレイプロセッサのドライバに、および/またはディスプレイプロセッサによって直接読み取り可能にするように、提供するために適切に使用可能にされるべきである。
【００４７】
したがって、好ましい実施形態では、データ処理システムが、検知された(現在の)視野方位(方向および/または位置)と、以前に推定された表示時間(変換されるフレームが生成された時間)と、(当該のカラーフィールドの)目標表示時間(すなわち、カラーフィールドが表示されるよう意図された時間)とのうちの1つまたは複数、好ましくは、すべてから、予測された視野方位(予測された視野方位パラメータ)を生成するよう機能する、予測視野方位生成エンジン(predicted view orientation generating engine)をさらに備える。
【００４８】
その場合、このエンジンは、必要な予測視野方位パラメータ(predicted view orientation parameters)を返すのが好ましく、変換エンジンは、予測された視野方位に基づいて当該のカラーフィールドを変換するために、それらの予測視野方位パラメータを必要とする。このエンジンは、例えば、システムのCPUまたはその他のプロセッサの一部である、システムのスタンドアロンプロセッサ(エンジン)である、および/またはディスプレイプロセッサに関連付けられている、などであり得る。
【００４９】
この予測は、(例えば、フレーム内の「最新の」追跡情報を利用することによって)好ましくはフレーム内を含む、任意の望ましい時点で、フレームに対して実行することができ、例えば、変換パラメータを提供することができる。この予測は、例えばデータ処理システムのCPU上に(例えば、フレームごとの補正のために)実装できるが、例えばサブフレームの補正が望ましい場合に、ディスプレイプロセッサにより近い予測視野方位決定エンジン(predicted view orientation determining engine)が存在してもよい。
【００５０】
特に好ましい実施形態では、生成処理ユニットが、現在検知された視野方位に基づいて表示用のフレームを生成するように構成され、その後、変換エンジンが、検知された視野方位に基づいて描画されるフレーム(のカラーフィールド)を、個別のカラーフィールドが表示される時間に基づいて、新しい予測された視野方位に変換する。
【００５１】
本発明では、変換エンジンが、フレームの各カラーフィールドを、その特定のカラーフィールドに対して予測された視野方位に基づいてディスプレイ上に表示されるように、変換する。
【００５２】
したがって、この変換は、カラーフィールドごとに別々に、例えば、好ましくは、そのカラーフィールドが表示される時間に基づいて、その特定のカラーフィールドの視野方位を予測する。したがって、例えば、各フレームが一連の3つ(RGB)のカラーフィールドとして表示される場合、変換エンジンは、好ましくは赤色のカラーフィールドが表示される時間に基づいて、赤色のカラーフィールドの視野方位を予測し、その予測された「赤色」の視野方位に基づいて赤色のカラーフィールドを変換するよう動作し、好ましくは緑色のカラーフィールドが表示される予測された時間に基づいて、緑色のカラーフィールドの異なる視野方位を予測し、その予測された「緑色」の視野方位に基づいて緑色のカラーフィールドを変換し、好ましくは青色のカラーフィールドが表示される予測された時間に基づいて、青色のカラーフィールドの異なる視野方位を予測し、その予測された「青色」の視野方位に基づいて青色のカラーフィールドを変換する(さらに、次のフレームに対して同様に動作する、などとなる)。
【００５３】
特に好ましい実施形態では、本発明のこの態様の方法における動作が、表示されるフレームごとに3つのフィールド(つまりRGB)(のみ)を表示する場合に使用される。
【００５４】
この動作は、必要に応じて、フレームごとにさらに多くのカラーフィールド(例えば、RGBGなどの、フレームごとに4つのカラーフィールド)を表示する場合にも使用され得る。その場合、好ましい構成では、RおよびBのカラーフィールドが、それらのフィールドが表示される予定の時間に関して予測された視野方位に基づいて変換されるのが好ましいが、重複するカラーフィールド(この場合は緑色)が、2つの「重複する」(この場合は緑色の)カラーフィールドの表示の平均時間に基づく予測された視野方位に基づいて変換されるのが好ましい。
【００５５】
フレームごとに6つのカラーフィールド(RGBRGB)の場合、やはり必要に応じて、カラーフィールドごとに、各平均表示時間を変換に使用することができる(ただしその場合、各カラーフィールドは、やはり、その特定のカラーフィールドに対して予測された「平均」視野方位に基づく、それ自身の各(異なる)変換を受ける)。
【００５６】
変換エンジンは、各フレームおよび/またはフレームのカラーフィールドの開始時などに、表示されるフレームごとの新しい予測された視野方位に基づいて、その変換動作を更新するのが好ましい。フレームの予測された視野方位は、最新のサンプリングされた視野方位データ(使用可能な場合)に基づくのが好ましい。
【００５７】
予測された視野方位に基づいて変換エンジンが(事実上)フレームのカラーフィールドに適用される変換は、任意の適切な望ましい変換であることができる。一般に、この変換は、2D平面(画像)の3D回転(透視変換(3D変換後の透視投影)/2Dホモグラフィ(画像間のホモグラフィ))を含むべきであり、含むのが好ましい。
【００５８】
好ましい実施形態では、変換は、(例えば、生成処理ユニットによって生成(描画)されたフレームに向けられた視野方位(視野方向および/または視野位置)と比較して)予測された視野方位(視野方向および/または視野位置)から見られているかのようなカラーフィールドの表現を提供するように、カラーフィールドを変換するためである。したがって、好ましい実施形態では、変換エンジンは、カラーフィールドを、生成されたカラーフィールドに向けられた視野方位から、各予測された視野方位に再投影するように動作する。
【００５９】
変換エンジンは、任意の適切な望ましい方法で実装されてよい。変換エンジンは、適切な処理回路によって提供されるのが好ましい。変換エンジンは、例えば、望ましい方法で動作するようにプログラムされ得る適切なプログラム可能な処理回路を用いて提供されるか、または必要な処理動作で実行するように構成された、固定機能の処理回路として提供されてよい。固定機能の回路が変換動作の実行に使用される場合、その固定機能の回路は、固定機能の回路の動作の構成において何らかの変形を容易にするために、この回路が実行する動作用の1つまたは複数の制御パラメータを変更することが可能であるなど、使用において限定的に構成可能であるように、構成されるのが好ましい。
【００６０】
変換エンジンは、データ処理システムにおいて望ましいように実装され、提供され得る。したがって、変換エンジンは、データ処理システムの「スタンドアロン」変換エンジン(変換プロセッサ)として提供されてよく、かつ/またはその他の方法で提供される(例えば、好ましくは、表示されるフレームにアクセスできる)データ処理システムのプロセッサ、コンポーネントなど(の一部)によって提供され得る。好ましい実施形態では、変換エンジンは、データ処理システムの別のコンポーネント(例えば、プロセッサ)の一部として提供される。その場合、変換エンジンは、ディスプレイプロセッサにおいて、および/または表示用のフレームを生成している生成処理ユニットにおいて、提供され得る。データ処理システムの2つ以上の要素が、必要に応じて適切な変換エンジンを備えることができる。
【００６１】
特に好ましい実施形態では、変換エンジンが、ディスプレイプロセッサにおいて提供され、予測された視野方位に基づく変換が、ディスプレイに提供するためにフレームを処理するときにディスプレイプロセッサによって実行される表示処理の一部として実行される。したがって、その場合、ディスプレイプロセッサは、生成処理ユニットによって生成されたフレームを視野方位に基づいて変換するよう機能する適切な変換エンジンを含む。
【００６２】
その場合、視野方位に基づく変換は、ディスプレイプロセッサにおいて個別のステップとして実行され得るが、特に好ましい実施形態では、ディスプレイプロセッサにおいて他の表示処理ステップの一部として実行される。例えば、ディスプレイプロセッサが、表示されるフレームに対して色収差補正を実行するようすでに機能する場合、本発明の方法での視野方位の変換が、色収差補正と組み合わせて(併せて)実行され得る。これは、ディスプレイプロセッサが、色収差補正を実行するために、各カラーチャネルを別々に処理する場合に特に適用可能であり、その場合、カラーフィールドがすでに事実上分離されているため、別々の各予測された視野方位の変換が、より簡単に異なるカラーチャネルに適用され得る。
【００６３】
したがって、特に好ましい実施形態では、変換エンジンが、ディスプレイプロセッサにおいて、ディスプレイプロセッサの処理動作の一部として、最も好ましくは、各カラーチャネルをすでに別々に処理しているディスプレイプロセッサの処理動作(色収差補正など)の一部として、またはその処理動作と併せて、実装される。
【００６４】
それに応じて、特に好ましい実施形態では、変換エンジンが、ディスプレイに表示されるフレームの(各)カラーフィールドを、その特定のカラーフィールドに対して予測された視野方位および1つまたは複数のその他の基準(パラメータ)(色収差補正およびレンズ歪み補正のうちの、好ましくは1つまたは複数、および好ましくはすべて、など)の両方に基づいて、変換するよう機能し、そのように変換するように動作する。
【００６５】
変換エンジンは、サンプリング位置ごと(例えば、ピクセルごと)に出力される、予測された視野方位によって変換されたカラーフィールド(すなわち、予測された視野方位によって変換されたサンプリング位置(ピクセル)(サンプリング位置(ピクセル)の値)のストリーム)を、生成するよう動作するのが好ましい。この動作は、出力される、予測された視野方位によって変換されたカラーフィールド内の各サンプリング位置(例えば、ピクセル)のデータ値を、入力フレーム内のサンプリング位置(例えば、ピクセル)のデータ値から生成することによって、出力される、予測された視野方位によって変換されたカラーフィールドを生成する、変換エンジンによって、実行されるのが好ましい。
【００６６】
特に好ましい実施形態では、変換エンジンは、表示されるフレーム内の表示データ要素(ピクセル)の位置に関して、変換された出力カラーフィールド内のそのデータ要素(ピクセル)ピクセルのデータが取得されるべきである、当該のカラーフィールド(平面)内の対応する位置(座標)を決定することによって、(各)カラーフィールドを変換する。
【００６７】
言い換えると、変換エンジンは、変換エンジンが適用する変換によって、予測された視野方位によって変換されたカラーフィールド内の特定のデータ要素(ピクセル)の位置に移動される、入力カラー平面内の位置を決定するのが好ましい。
【００６８】
これは、(表示のために)生成することが望ましい、予測された視野方位によって変換されたカラーフィールド内の複数のデータ要素(ピクセル)の位置に対して、好ましくはそれらの位置ごとに、実行されるのが好ましい。
【００６９】
変換エンジンは、特定の変換された出力カラーフィールドのデータ要素(例えば、ピクセル)の位置に関して、入力カラー平面のどの位置がサンプリングされるべきかを、任意の適切な望ましい方法で決定することができる。
【００７０】
特に好ましい実施形態では、変換エンジンは、変換された出力カラーフィールドのデータ要素(ピクセル)の位置x、yに関して、予測された視野方位によって変換された出力カラーフィールド内のそのデータ要素(ピクセル)の位置のデータが取得されるべきである、対応する入力カラー平面の位置を、変換動作がそのカラー(フィールド)平面に適用する、予測された視野方位の変換、ならびに入力カラー平面に適用するように変換エンジンが構成されているレンズ歪み補正、および入力カラー平面に適用するように変換動作が構成されている色収差補正のうちの1つまたは複数、および好ましくはそのすべてに基づいて決定する。
【００７１】
特に好ましい実施形態では、変換エンジンは、出力(表示)サンプリング(ピクセル)の位置x、yに関して、対応する入力カラー平面の位置(座標)(x'、y')を、変換動作が考慮するように構成されている、レンズ歪みに基づいて決定し、その後、決定されたカラー平面の位置(座標)(x'、y')を、当該のカラーフィールドに対して予測された視野方位に基づいて修正する。
【００７２】
変換された出力カラーフィールドを見るときに(色収差補正を適用するために)、決定された入力カラー平面の位置(座標)が、色収差も考慮するように修正されるのが、最も好ましい。この修正は、予測された視野方位に基づいて、サンプリングされる決定された入力カラー平面の位置を修正する前に、実行されるのが好ましい。
【００７３】
したがって、好ましい実施形態では、変換エンジンは、予測された視野方位に基づいてフレームを変換するときに、
変換されて出力される出力フレーム内のデータ要素の位置に関して、入力フレーム内の対応する位置を、規定されたレンズ歪みに基づいて決定することと、
出力変換フレームを見るときに、決定された入力フレームの位置を、色収差を考慮するように修正し、少なくとも1つの修正された入力フレームの位置を提供することと、
サンプリングされる入力フレーム内の出力位置を提供するために、決定された少なくとも1つの修正された入力フレームの位置を、予測された視野方位に基づいてさらに修正し、出力変換フレームのデータ要素に使用するデータを提供することとを実行するように構成される(かつ、実行するように動作する)。
【００７４】
入力フレームが3つのカラー平面(フィールド)として一緒に変換される場合、好ましい実施形態では、色収差補正段階が、異なるカラー平面ごとに別々の色収差を決定するよう機能する。したがって、好ましい一実施形態では、プロセスが、例えば、好ましくは、(前述した)レンズ歪みに基づいて生成されている出力変換フレームのデータ要素(サンプリング位置)に関して、入力フレームの初期位置を決定するように動作するが、その後、色収差補正段階が、複数(例えば、好ましくは、カラー平面ごとに1つの、3つ)の修正された入力フレームの位置(座標)(それぞれ、各色収差を考慮する)を決定するのが好ましい。
【００７５】
それに応じて、その後、予測された視野方位に基づく入力フレームの位置のその後の修正が、色収差補正によって提供された、各異なる入力フレームのカラー平面の位置に、別々に(当該のカラーフィールドに対する特定の予測された視野方位を使用して)それぞれ適用されるべきであり、適用されるのが好ましい。
【００７６】
したがって、その場合、特定の出力変換フレームのサンプリング位置に関して、入力フレーム内に、サンプリングされる複数(例えば、3つ)の位置(例えば、好ましくは、出力変換フレームに対して生成される、異なるカラー平面(色値)ごとに1つの入力フレームの位置)が存在する(および、存在するのが好ましい)。したがって、例えば、出力変換フレームのデータ要素(サンプリング位置)のRGBカラーデータのセットが、1つの(「赤色」)入力フレームの位置(座標)から決定された赤色の値、別の(「緑色」)入力フレームの位置(座標)から決定された緑色の値、および第3の(「青色」)入力フレームの位置(座標)から決定された青色の値を含むのが好ましい。
【００７７】
出力変換フレーム内のデータ要素(サンプリング位置)に使用されるデータを含んでいる入力フレーム内の1つまたは複数の位置が決定された後に、特に好ましい実施形態では、出力変換フレーム内のデータ要素(サンプリング位置)に使用されるデータ値を提供するために、決定された1つまたは複数の位置で入力フレームがサンプリングされる。
【００７８】
このサンプリングは、例えばバイリニアフィルタリングを使用して、望ましいように実行され得る。
【００７９】
フレームのカラーフィールドが、異なるカラーフィールドに対して予測された視野方位に基づいて変換され(さらに、その他の方法で、表示のためにディスプレイに送信するのに適したものになるように処理され)た後に、このフレームが、ディスプレイプロセッサによって表示するために、ディスプレイに送信されてよく、送信されるのが好ましい。好ましい実施形態では、ディスプレイプロセッサは、フレームを、表示のために、例えば、好ましくは、表示のためのデータ要素(ピクセル)のストリームとして、ディスプレイに直接送信する。フレームのデータは、望ましいように、有線接続または無線接続を介してディスプレイに提供されてよい。
【００８０】
その後、フィールドシーケンシャルカラーディスプレイは、フレームの異なるカラーフィールドを順番に表示することによって、受信されたフレームを表示するように(例えば、好ましくは、当該のディスプレイの動作の通常の方法で)動作する。したがって、カラーフィールドごとのデータ要素(ピクセル)が、ディスプレイのパネル上に適切にスキャンされ、当該のカラーフィールドを表示する(さらに、表示されるフレーム全体を構成する他のカラーフィールドについても同様に表示する)。
【００８１】
ディスプレイプロセッサは、表示されるフレームのデータを、結合された(例えば、交互配置された)赤色、緑色、および青色のカラーデータとして、フィールドシーケンシャルカラーディスプレイに提供することがある。その場合、次にそのカラーデータを、ディスプレイ(ユニット)自体に表示するために、別々の各カラーフィールド(平面)に分離する必要がある(したがって、ディスプレイは、まずディスプレイプロセッサから受信されたフレームデータを、表示のために別々の各カラーフィールドに分離してから、それらのフィールドを表示する)。
【００８２】
その場合、ディスプレイは、例えば、ディスプレイプロセッサから受信されたフレームデータを格納するために、そのデータをディスプレイ自体で別々な各カラーフィールドに分離することを容易にするように、チップ上のフレームバッファなどの、適切なローカルストレージを備えることができる。
【００８３】
特に好ましい実施形態では、ディスプレイプロセッサは、別々の各カラーフィールド(平面)にすでに分離されているフレームのデータを、表示のためにディスプレイに提供するよう機能する。したがって、その場合、ディスプレイプロセッサは、フレームの1つの(例えば赤色の)カラーフィールド(平面)に対応する第1の(例えば赤色の)カラーデータのセット、それに続いてフレームの別の(例えば緑色の)カラーフィールド(平面)に対応する第2の(例えば緑色の)カラーデータのセット、それに続いてフレームの次の(例えば青色の)カラーフィールド(平面)に対応する第3の(例えば青色の)カラーデータのセットを、例えば、好ましくは順番に、提供する(各フレームが4つ以上のフィールドとして表示される場合は、他のフィールドについても同様に提供する)。
【００８４】
その場合、フレームデータは、一連のカラー平面(フィールド)として(例えば、好ましくは、フィールドリフレッシュ頻度で)ディスプレイに提供され、その後、受信されたカラー平面(フィールド)を、表示パネルに表示するために、ディスプレイ(例えば、ドライバ回路)に直接渡すことができるようになり、例えば、フレームデータを、各カラーフィールドに分離できるようにするために、ディスプレイユニットでバッファする必要がない。その結果、ディスプレイユニット自体において、フレームのカラーデータを各カラーフィールド(平面)に分離する能力を提供する必要性をなくし、それによって、例えば、ディスプレイ(ユニット)自体において、その目的のためにチップ上のフレームバッファを提供する必要性を回避する。
【００８５】
必要に応じて、これらの構成においてディスプレイに提供するために、別々のカラー平面を生成するようにディスプレイプロセッサを構成することが可能であるが(好ましい一実施形態では、これが実行されることである)、特に好ましい実施形態では、ディスプレイプロセッサが、各カラー平面(フィールド)にすでに分離されたフレームを処理のために受信し、その後、それらのフレームを、別々のカラー平面(フィールド)として表示するために処理する。その場合、次にディスプレイプロセッサは、事実上、フレームを別々の平面的な(単一の)カラー画像としてそれぞれ処理する。
【００８６】
この動作を容易にするために、表示用のフレームを生成している生成処理ユニットは、ディスプレイプロセッサによって処理するために、単一のカラー(平面的)画像(フィールド)に分離されたフレームを提供するように、適切に構成されるのが好ましい。これは、生成処理ユニットが、生成されたフレームを、フレームが処理のためにディスプレイプロセッサによって読み取られるフレームバッファに書き込むときに、(例えば、フレームを交互配置された赤色、緑色、および青色の色値として書き込むのではなく)フレームデータを別々のカラー平面として(別々のカラー平面に)書き込むことによって、実現されるのが好ましい。
【００８７】
これは、望ましいように実現されてよい。例えば、生成処理ユニットのメモリ書き出しプロセスは、フレームを別々の各カラー平面としてメモリに書き出すように構成することができ、そのように構成するのが好ましい。例えば、グラフィックプロセッサ(特に、タイルベースのグラフィックプロセッサ)の場合、これは、タイルのデータ値をメモリ内の別々の各カラー平面に書き出すようにタイル書き出しプロセスを構成することによって、実現できる。
【００８８】
当然、その他の構成も可能であろう。
【００８９】
したがって、特に好ましい実施形態では、生成処理ユニットが、表示用のフレームをフィールドシーケンシャルカラーディスプレイ上で生成するときに、表示のためにディスプレイに提供するためにディスプレイプロセッサによって処理される、生成されたフレームを、別々のカラー平面として提供するよう機能する(かつ、提供するように動作する)。
【００９０】
好ましいそのような実施形態では、生成処理ユニットが、通常の方法で表示用のフレームを生成する(例えば、グラフィックプロセッサの場合に、通常通りフレームを描画する)が、その後、ディスプレイプロセッサによって使用するために、フレームデータをメモリに書き込むときに、フレームデータを3つの別々のカラー平面(RGB)として格納する。
【００９１】
その場合、次にディスプレイプロセッサは、表示用のフレームを別々の単一のカラー平面としてそれぞれ処理する。それに応じて、ディスプレイプロセッサは、各カラー平面をメモリから順番に読み取って処理する。したがって、ディスプレイプロセッサは、例えば、フレームの第1の(例えば、赤色の)カラー平面を読み取って処理し、次にフレームの第2の(例えば、緑色の)カラー平面を読み取って処理し、その後、フレームの第3の(例えば、青色の)カラー平面を読み取って処理するのが好ましい。
【００９２】
生成処理ユニットが表示用のフレームを別々のカラー平面として提供し、次にディスプレイプロセッサが、別々のカラー平面を、表示のためにフィールドシーケンシャルカラーディスプレイに提供する別々のカラー平面として処理することは、本発明の第1の態様の方法で異なるカラー平面(フィールド)を別々に変換する場合だけでなく、新規であり、それ自体で有利であることがあると考えられる。例えば、そのような構成は、いずれにしても、フレームをフィールドシーケンシャルカラーディスプレイに表示するときのエンドツーエンドのレイテンシを減らすこと、および/または例えばフレームバッファをディスプレイユニット自体に含める必要性を回避することによって、そのようなシステムの面積コストを減らすことを、可能にすることができる。
【００９３】
したがって、本発明のさらに別の態様によれば、データ処理システムを動作させる方法が提供されており、このデータ処理システムが、
表示用のフレームを表示するよう機能するフィールドシーケンシャルカラーディスプレイと、
ディスプレイに表示するためのフレームを生成するよう機能する生成処理ユニットと、
生成処理ユニットによって生成されたフレームを、表示のためにディスプレイに提供するよう機能するディスプレイプロセッサとを備えており、
方法が、
生成処理ユニットによって生成されたフレームを、フィールドシーケンシャルカラーディスプレイに表示するときに、
生成処理ユニットが、ディスプレイプロセッサによって処理するためのフレームを、別々のカラー平面の形態で提供するステップと、
ディスプレイプロセッサが、生成処理ユニットによって提供された各カラー平面を別々に処理し、別々のカラー平面を別々のカラー平面として、表示のためにディスプレイに提供するステップと、
ディスプレイが、フレームの別々のカラー平面を表示するステップとを含んでいる。
【００９４】
本発明のさらに別の態様によれば、
表示用のフレームを表示するよう機能するフィールドシーケンシャルカラーディスプレイと、
ディスプレイに表示するためのフレームを生成するよう機能する生成処理ユニットと、
生成処理ユニットによって生成されたフレームを、表示のためにディスプレイに提供するよう機能するディスプレイプロセッサとを備えているデータ処理システムが提供されており、
生成処理ユニットが、フィールドシーケンシャルカラーディスプレイに表示されるフレームを生成するときに、ディスプレイプロセッサによって処理するためのフレームを、別々のカラー平面の形態で提供するように構成されており、
ディスプレイプロセッサが、生成処理ユニットによって提供された各カラー平面を別々のカラー平面として処理し、別々のカラー平面を別々のカラー平面として、表示のためにディスプレイに提供するように構成されており、
ディスプレイが、ディスプレイプロセッサから受信されたフレームの別々のカラー平面を表示するように構成されている。
【００９５】
当業者によって理解されるであろうように、本発明のこれらの態様および実施形態は、本明細書に記載された本発明の好ましい任意選択的な特徴のうちのいずれか1つまたは複数あるいはすべてを含むことができ、含むことが好ましい。
【００９６】
したがって、例えば、システムは、生成処理ユニットによって生成されたフレームを、視野方位に基づいて変換する(好ましくは、カラー平面ごとに別々に変換する)変換エンジンをさらに備えることが好ましい。それに応じて、この方法は、好ましくは、生成処理ユニットによって生成されたフレームを、視野方位に基づいて変換することと、やはり好ましくは、各カラー平面を、それ自身の特定の視野方位に基づいて変換することとを含む。
【００９７】
本明細書では、そのような場合、ディスプレイプロセッサが特定のフレームを3つの別々のカラー平面として処理するが、ディスプレイプロセッサが、表示のためにディスプレイとさらに連携して、例えば、単に別々のカラー平面入力データを適切な方法で処理して、必要なフィールドパターンを生成することによって、任意の望ましいカラーフィールドパターン(colour field pattern)(例えば、RGB、RGBG、RGBRGBなど)をディスプレイに提供できるということにも、注意するべきである。
【００９８】
それらの態様および実施形態では、ディスプレイプロセッサは、フレームを別々の各カラー平面として任意の適切な望ましい方法で処理するように構成され得る。
【００９９】
したがって、例えば、ディスプレイプロセッサが、フレーム内のサンプリング位置(ピクセル)の異なるカラーチャネルに対して表示処理動作を実行するために、各カラー処理パイプラインを含んでいる場合、ディスプレイプロセッサは、特定のサイクルでフレームの単一のピクセルからの3つの異なるカラーチャネル(RGB)に対して動作するのではなく、単に適切なカラー処理パイプラインを、処理しているカラー平面に対して使用し、そのカラー平面からの単一のピクセルを特定のサイクルで処理するように、動作することできる。したがって、その場合、使用されていなかった他の2つのカラーパイプラインは、無効にすることができ、無効にすることが好ましい。
【０１００】
しかし、特に好ましい実施形態では、ディスプレイプロセッサが、3つの異なるカラー処理パイプラインを並列に動作させることによって、ピクセルの3つのカラーサンプルを単一のサイクルで同時に処理できる場合、フレームの単一のカラー平面が表示のために処理されている本発明の態様および実施形態の方法で動作するときに、特に好ましい実施形態では、ディスプレイプロセッサが、そのカラー処理パイプラインのそれぞれを使用して、当該のカラー平面からの特定のサンプリング位置(ピクセル)を処理するよう機能する。
【０１０１】
したがって、その場合、ディスプレイプロセッサは、単一のデータ要素(ピクセル)の3つのカラーチャネルを並列に処理するのではなく、当該の単一のカラー平面(フィールド)からの3つの異なるデータ要素(ピクセル)を同時に処理するように動作する。したがって、例えば、赤色のカラー平面の場合、ディスプレイプロセッサは、赤色のカラーパイプラインを使用して1つのデータ要素(ピクセル)を処理し、緑色のカラーパイプラインを使用して1つのデータ要素(ピクセル)を処理し、青色のカラーパイプラインを使用して1つのデータ要素(ピクセル)を処理することによって、同じカラー平面からの3つのデータ要素(ピクセル)を同時に読み取って処理する。
【０１０２】
その結果、これは、ディスプレイプロセッサが色別に分離されていないフレームを処理できるレートに類似するレートで、フレームの分離されたカラー平面を処理することを容易にする。
【０１０３】
その場合、ディスプレイプロセッサは、同じカラー平面からの3つの隣接するピクセルのセット内のデータ要素(ピクセル)のデータを取得するように適切に構成されることが好ましい。したがって、ディスプレイプロセッサは、当該のカラー平面から、3つの連続するデータ値(データ要素)のメモリ位置を読み取るように構成されるのが好ましい。これは、任意の適切な望ましい方法で実現され得る。
【０１０４】
変換エンジンが、表示される出力フレーム内の表示データ要素(ピクセル)の位置に関して、変換された出力カラーフィールド内のそのデータ要素(ピクセル)ピクセルのデータが取得されるべきである、当該の(入力)カラーフィールド(平面)内の対応する位置(座標)を決定することによって、(各)カラーフィールドを変換する場合、この動作は、ディスプレイプロセッサが単一のカラー平面を処理しているときに、表示されるフレーム内の各表示データ要素(ピクセル)の位置に関して、変換された出力カラーフィールド内のそのデータ要素(ピクセル)のデータが取得されるべきである、当該の(入力された)(単一の)カラー平面内の対応する位置(座標)を決定するだけでなく、変換された出力カラーフィールド内の1つまたは複数の(好ましくは、2つ以上の)データ要素(ピクセル)(位置)のデータがさらに取得されるべきである、当該の(入力された)単一のカラー平面内の1つまたは複数の位置(座標)もさらに決定するように、構成されるのが好ましい。
【０１０５】
したがって、好ましい実施形態では、変換エンジンが、処理される特定の表示ピクセル(座標)に関して、現在処理されている単一のカラー平面内の3つのサンプリング(ピクセル)位置を生成するように動作する。
【０１０６】
この動作は、考慮されている出力表示ピクセル位置(座標)に対応する1つの入力カラー平面のピクセル位置、表示(出力)ピクセル座標の特定の軸方向(行または列)に沿った、考慮されている出力表示ピクセル位置(座標)の次の表示(出力)ピクセル位置(座標)に対応する別の入力カラー平面のピクセル位置、および当該の特定の軸方向(行または列)に沿った、考慮されている出力表示ピクセル位置(座標)の次の、ただし1つの表示(出力)ピクセル位置(座標)に対応する別の入力カラー平面のピクセル位置を生成することによって実現されるのが好ましい。
【０１０７】
この動作は、(表示のために)生成するのが望ましい、予測された視野方位によって変換されたカラーフィールド内の(特定の軸方向に沿った)2つ置きのデータ要素(ピクセル)の位置に関して、実行されるのが好ましい(考慮されている各表示ピクセル位置が、3つの出力ピクセルの生成をトリガするため)。(したがって、それに応じて、変換動作に使用される表示(出力)ピクセル座標(位置)が、3つの連続する表示ピクセル座標のグループに対応する入力カラー平面のピクセル座標の選択および生成をトリガするように構成されるのが好ましい。)
【０１０８】
好ましい実施形態では、これらの構成において、色収差補正段階が、サンプリングされる3つの(隣接する)データ要素(ピクセル)の位置を生成するよう機能する(すなわち、色収差補正段階は、視野方位によって変換された当該の出力カラーフィールド(平面)内の各異なる出力(ピクセル)位置にそれぞれ対応する、3つの入力カラー平面の位置(座標)を決定する)。
【０１０９】
それに応じて、その後、予測された視野方位に基づく入力カラー平面の位置のその後の修正が、(例えば、色収差補正によって提供された)各異なる入力カラー平面の位置に、別々に(好ましくは、(前述したように)当該のカラーフィールド専用の予測された視野方位を使用して)それぞれ適用されるべきであり、適用されるのが好ましい。
【０１１０】
したがって、その場合、考慮されている(各)出力変換フレームのサンプリング(ピクセル)位置に対して生成された、単一の入力カラー平面(フィールド)内でサンプリングされる複数(例えば、3つ)の位置が存在する(および、存在するのが好ましい)。
【０１１１】
したがって、好ましい実施形態では、変換エンジンは、予測された視野方位に基づいて表示されるフレームの単一のカラー平面を変換するときに、
出力される出力変換フレーム内のデータ要素の位置に基づいて、出力変換フレーム内のそのデータ要素の位置に対応する、入力カラー平面内の位置、および出力変換フレーム内の2つの他の(好ましくは、出力変換フレーム内のデータ要素の位置に連続する)データ要素の位置に対応する、入力カラー平面内のさらに2つの位置を決定することと、
サンプリングされる入力カラー平面内の3つの出力位置を提供するために、3つの決定された入力カラー平面の位置を、予測された視野方位に基づいて修正し、出力変換フレームの3つのデータ要素の位置に使用するデータを提供することとを実行するように構成される(かつ、実行するように動作する)。
【０１１２】
変換された出力カラー平面(フィールド)内のデータ要素(サンプリング位置)に使用されるデータを含んでいる入力カラー平面内の位置が決定された後に、変換された出力カラー平面(フィールド)内のデータ要素(サンプリング位置)に使用されるデータ値を提供するために、決定された位置で入力カラー平面がサンプリングされ得る。
【０１１３】
ディスプレイプロセッサが別々の単一のカラー平面(フィールド)の形態で(別々の単一のカラー平面(フィールド)として)フレームを処理する場合、色収差補正などの、実行されているすべての色固有の処理が、現在処理されているカラー平面に対して、適切に構成(設定)および/または無効化されるべきであり、適切に構成(設定)および/または無効化されるのが好ましい。
【０１１４】
同様に、それに応じて、通常の動作において3つのカラーチャネルに適用されるすべてのプロセスが、単一のカラー平面が処理されているということを考慮するように、無効化および/または修正されるべきである。例えば、3つのRGB変形メッシュ(RGB distortion meshes)は(使用される場合)、単一チャネルの変形メッシュとして解釈されるが、(スキャン順序に応じて)(n×3+0)、(n×3+1)、および(n×3+2)の行または列にそれぞれ適合されるべきである。
【０１１５】
本発明は、単一のフレームの生成および処理を特に参照して上で説明されたが、当業者によって理解されるであろうように、本発明の方法における動作は、表示される複数のフレームに対して実行されるのが好ましく、表示される一連の複数のフレームの各フレームに対して実行されるのが好ましい。したがって、一実施形態では、本発明の方法における動作は、ユーザに表示するための一連の複数の出力フレームを生成するために使用され、それに応じて、本発明の方法における動作は、表示される複数の出力フレームに対して繰り返されるのが好ましい。
【０１１６】
したがって、例えば、生成処理ユニットは、表示される一連の複数の出力フレームを生成し、その後、変換エンジンおよびディスプレイプロセッサが、それらのフレームを適切に処理して、表示のためにディスプレイに提供する。
【０１１７】
それに応じて、表示用のフレームの生成および処理は、ユーザの左右の目にそれぞれ表示される一連の「左」および「右」のフレーム(フレームのカラーフィールド)を生成することを含んでもよく、含むのが好ましい。表示用の「左」および「右」のフレームの各対は、望ましいように、共通の入力フレームから、または「左」および「右」の各入力フレームから生成されてよい。
【０１１８】
特に好ましい実施形態では、本発明のディスプレイは、(例えば、好ましくは、仮想現実ディスプレイおよび/または拡張現実ディスプレイ用の)ヘッドマウントディスプレイを含む。その場合、それに応じて、ディスプレイは、フレームをユーザに表示するための表示パネル、およびユーザが表示されたフレームを見るときに介する1つまたは複数のレンズを備えるべきである、備えるのが好ましい。
【０１１９】
それに応じて、好ましい実施形態では、ディスプレイが、視野方位を決定する(例えば、頭部追跡)センサに関連付けられており、それらのセンサは、ディスプレイの現在の位置および/または相対的位置に基づいて、視野追跡情報を定期的に生成し、例えば、好ましくは、視野方位に基づいてフレームを変換するときに使用するために、その視野方位をデータ処理システムの処理ユニットに定期的に提供するよう機能するのが好ましい。
【０１２０】
したがって、本発明の別の態様は、本明細書に記載された本発明の態様および実施形態のうちのいずれか1つまたは複数のデータ処理システムを備えているヘッドマウントディスプレイデバイスを含む。それに応じて、本発明の別の態様は、本発明の態様および実施形態のうちのいずれか1つまたは複数の方法でヘッドマウントディスプレイデバイスを動作させることを含んでいる、ヘッドマウントディスプレイデバイスを動作させる方法を含む。
【０１２１】
本発明の方法における動作に必要な特定のユニットおよびコンポーネントだけでなく、データ処理システムは、データ処理システムが備えることができる任意のその他の適切な望ましいコンポーネント、ユニット、プロセッサなどのうちの1つまたは複数(好ましくは、すべて)を備えてもよく、備えるのが好ましい。したがって、データ処理システムは、中央処理装置、グラフィックスプロセッシングユニット、ビデオプロセッサ、画像信号プロセッサ、カメラ、システムバス、およびメモリコントローラのうちの1つまたは複数(好ましくは、すべて)を備えてよい。好ましい実施形態では、データ処理システムは、本明細書に記載されたデータおよび/または本明細書に記載されたプロセスを実行するためのソフトウェアを格納する1つまたは複数のメモリおよび/または1つまたは複数のメモリデバイスを備え、かつ/またはそれらと通信する。
【０１２２】
本発明は、適切に構成されたマイクロプロセッサベースのシステムなどの、任意の適切なシステムにおいて実装され得る。一実施形態では、本発明は、コンピュータおよび/またはマイクロプロセッサベースのシステムにおいて実装される。
【０１２３】
本発明のさまざまな機能は、任意の望ましい適切な方法で実行され得る。例えば、本発明の機能は、望ましいように、ハードウェアまたはソフトウェアにおいて実装され得る。したがって、例えば、特に示されない限り、本発明のさまざまな機能要素、エンジン、段階、および「手段」は、適切な1つまたは複数のプロセッサ、1つまたは複数のコントローラ、機能ユニット、回路、処理論理、マイクロプロセッサ構成などを含んでよく、これらは、適切な専用ハードウェア要素(処理回路)、および/または望ましい方法で動作するようにプログラムできるプログラム可能なハードウェア要素(処理回路)などの、さまざまな機能などを実行するよう機能する。
【０１２４】
ここで、当業者によって理解されるであろうように、本発明のさまざまな機能などが、特定のプロセッサ上で複製できるということ、および/または並列に実行できるということにも、注意するべきである。同様に、さまざまな処理段階が、必要に応じて処理回路などを共有してよい。
【０１２５】
さらに、本発明の処理段階およびエンジンのうちのいずれか1つまたは複数あるいはすべてが、処理段階の回路として、例えば、1つまたは複数の固定機能ユニット(ハードウェア)(処理回路)の形態で、かつ/または望ましい動作を実行するようにプログラムできるプログラム可能な処理回路の形態で、具現化されてよい。同様に、本発明の処理段階および処理段階の回路のうちのいずれか1つまたは複数が、他の処理段階おまたは処理段階の回路のうちのいずれか1つまたは複数とは別の回路要素として提供されてよく、かつ/または処理段階および処理段階の回路のうちのいずれか1つまたは複数あるいはすべてが、共有された処理回路で少なくとも部分的に形成されてよい。
【０１２６】
本発明の説明された態様および実施形態のすべてが、必要に応じて、本明細書に記載された本発明の好ましい任意選択的な特徴のうちのいずれか1つまたは複数あるいはすべてを含むことができ、一実施形態では含むということも、当業者によって理解されるであろう。
【０１２７】
本発明に従う方法は、ソフトウェア(例えば、コンピュータプログラム)を少なくとも部分的に使用して、実装されてよい。したがって、さらに別の実施形態から見た場合、本発明が、データプロセッサにインストールされたときに本明細書に記載された方法を実行するように具体的に適応されたコンピュータソフトウェアと、プログラム要素がデータプロセッサ上で実行されたときに本明細書に記載された方法を実行するためのコンピュータソフトウェアコード部分を含んでいるコンピュータプログラム要素と、プログラムがデータ処理システム上で実行されたときに本明細書に記載された1つまたは複数の方法のすべてのステップを実行するように適応されたソフトウェアコードを含んでいるコンピュータプログラムとを提供するということが、理解されるであろう。データプロセッサは、マイクロプロセッサシステム、プログラム可能なFPGA(field programmable gate array: フィールドプログラマブルゲートアレイ)などであってよい。
【０１２８】
本発明は、ディスプレイコントローラまたはデータプロセッサを備えているマイクロプロセッサシステムを動作させるために使用されたときに、前述のデータプロセッサと共に、前述のコントローラまたはシステムに、本発明の方法のステップを実行させるような、ソフトウェアを含んでいる、コンピュータソフトウェアキャリアにも広がる。そのようなコンピュータソフトウェアキャリアは、ROMチップ、CD-ROM、RAM、フラッシュメモリ、またはディスクなどの、物理ストレージ媒体であることができ、またはワイヤ上の電子信号、光信号、または人工衛星などへの無線信号などの、信号であることができる。
【０１２９】
本発明の方法のすべてのステップをコンピュータソフトウェアによって実行する必要はなく、したがってさらに別の広い実施形態から、本発明が、本明細書において示された方法のステップのうちの少なくとも1つを実行するために、コンピュータソフトウェアおよびコンピュータソフトウェアキャリアにインストールされたソフトウェアを提供するということが、さらに理解されるであろう。
【０１３０】
それに応じて、本発明は、コンピュータシステムと共に使用するためのコンピュータプログラム製品として適切に具現化されてよい。そのような実装は、コンピュータ可読媒体(例えば、フロッピー（登録商標）ディスク、CD-ROM、ROM、RAM、フラッシュメモリ、またはハードディスク)などの有形の非一時的媒体上に固定された、一連のコンピュータ可読命令を含んでよい。そのような実装は、光通信回線またはアナログ通信回線を含むが、これらに限定されない、有形の媒体を経由するか、あるいはマイクロ波、赤外線、またはその他の送信技術を含むが、これらに限定されない、無線技術を使用して無形で、モデムまたはその他のインターフェイスデバイスを介して、コンピュータシステムに送信可能な、一連のコンピュータ可読命令を含むこともできる。一連のコンピュータ可読命令は、本明細書において前述した機能の全部または一部を具現化する。
【０１３１】
当業者は、そのようなコンピュータ可読命令が、多くのコンピュータアーキテクチャまたはオペレーティングシステムと共に使用するための多数のプログラミング言語で記述され得るということを理解するであろう。さらに、そのような命令は、半導体、磁気、または光を含むが、これらに限定されない、現在または将来の任意のメモリ技術を使用して格納されるか、あるいは光、赤外線、またはマイクロ波を含むが、これらに限定されない、現在または将来の任意の通信技術を使用して送信されてよい。そのようなコンピュータプログラム製品は、添付の印刷された文書または電子文書と共に、取り外し可能な媒体として配布されるか(例えば、システムのROMまたは固定ディスク上に、コンピュータシステムと共に事前に読み込まれる市販ソフトウェア)、またはネットワーク(例えば、インターネットまたはワールドワイドウェブ)を経由してサーバまたは電子掲示板から配布されてよいということが企図される。
【０１３２】
ここで、添付の図面を単に例として参照し、本発明のさまざまな実施形態について説明する。
【図面の簡単な説明】
【０１３３】
【図１】例示的なデータ処理システムを示す図である。
【図２】本発明の一実施形態に従って動作できるディスプレイプロセッサを概略的に示す図である。
【図３】図4のディスプレイプロセッサの変換エンジンをさらに詳細に示す図である。
【図４】図2のディスプレイプロセッサの変換エンジンの動作をさらに詳細に示すフローチャートである。
【図５】例示的な仮想現実ヘッドマウントディスプレイヘッドセットを概略的に示す図である。
【図６】本発明の一実施形態における、表示用のフレームの提供を概略的に示す図である。
【図７】本発明の一実施形態における、表示用のフレームの提供をさらに詳細に示す概略図である。
【図８Ａ】本発明の第1の実施形態を示す図である。
【図８Ｂ】本発明の第1の実施形態を示す図である。
【図９】本発明の第1の実施形態を示す図である。
【図１０Ａ】本発明の第2の実施形態を示す図である。
【図１０Ｂ】本発明の第2の実施形態を示す図である。
【図１１】本発明の第2の実施形態を示す図である。
【発明を実施するための形態】
【０１３４】
適切な場合、図面全体を通じて、類似する参照番号が類似するコンポーネントに使用される。
【０１３５】
ここで、本発明の複数の好ましい実施形態が説明される。
【０１３６】
本実施形態は、拡張現実(AR)ディスプレイなどのためのヘッドマウントディスプレイシステムにおいてフレームをユーザに表示するプロセスに関連している。
【０１３７】
そのようなシステムは、図1に示されている(前述されている)ように構成されてよく、このシステムのディスプレイ4は、ヘッドマウントディスプレイを身に着けているユーザに見られるようにフレームを表示するための1つまたは複数の表示画面(1つまたは複数のパネル)を特に含んでいる適切なヘッドマウントディスプレイ、ユーザの目と表示画面の間の視路内の1つまたは複数のレンズ、および使用中(画像がユーザに向けてディスプレイ上に表示されている間)にユーザの頭部の姿勢(ユーザの頭部の位置および/または視野(凝視)方向)を追跡するための1つまたは複数のセンサを備えている。
【０１３８】
本実施形態では、ディスプレイ4は、LCoS(Liquid Crystal on Silicon)ディスプレイなどの、フィールドシーケンシャルカラーディスプレイの形態である。
【０１３９】
図5は、例示的な仮想現実ヘッドマウントディスプレイ85を概略的に示している。図5に示されているように、ヘッドマウントディスプレイ85は、例えば、1つまたは複数の頭部姿勢追跡センサを含んでいる適切なディスプレイマウント86を備えており、このディスプレイマウント86に、表示画面(パネル)87が取り付けられる。レンズ88の対が、表示画面87の視路内でレンズマウント89に取り付けられる。最後に、ユーザがヘッドセットを身に着けるための適切なフィッティング95が存在する。
【０１４０】
図1に示されているシステムでは、ディスプレイプロセッサ5が、ユーザによって見られるための適切な画像をディスプレイ4に提供するように動作する。ディスプレイプロセッサ5は、望ましいように、有線方式または無線方式で、ディスプレイ4に結合されてよい。
【０１４１】
ヘッドマウントディスプレイ4に表示される画像は、例えば、データ処理システム全体のホストプロセッサ(CPU)7上で実行されているアプリケーション10からの描画の要求に応答して、グラフィックプロセッサ(GPU)2によって描画され、それらのフレームをメインメモリ3に格納する。次にディスプレイプロセッサ5が、フレームをメモリ3から入力面として読み取り、それらのフレームを、ユーザに表示するためにディスプレイ4に適切に提供する。ディスプレイ4がフィールドシーケンシャルカラーディスプレイであるため、各フレームは、フレームの別々のカラーフィールド(平面)を順番に表示することによって(例えば、RGB、RGBG、またはRGBRGBとして)ディスプレイに表示される。
【０１４２】
本実施形態では、本発明に従って、ディスプレイプロセッサ5が、予測された視野方向に基づいてフレームを変換し、その後、それらのフレームを、ユーザに表示するためにディスプレイ4に提供することができるよう機能する。
【０１４３】
この動作を、図6および図7に示している。
【０１４４】
図6に示されているように、ディスプレイプロセッサ93は、(例えば)グラフィックプロセッサ(GPU)91によって生成されて描画されたフレーム92を、表示パネル94に提供するために、視野方位に基づいて変換するよう機能する変換エンジン100を含んでいる。
【０１４５】
図7は、視野方位変換処理を実行するときの、ディスプレイプロセッサの動作を示している。図7に示されているように、表示される描画されたフレーム92が、まずメモリから取得され(ステップ110)、次に、ディスプレイプロセッサ93の、ラインバッファなどの適切なバッファに読み込まれる(ステップ111)。
【０１４６】
その後、視野方位変換処理が有効化されているかどうかが判定される(ステップ112)(変換処理が有効化されていない場合、読み込まれた入力フレームが、通常の方法で表示するために、ディスプレイ94に提供される)。
【０１４７】
視野方位変換処理が有効化されている場合、取得された入力フレームが、ディスプレイプロセッサの変換エンジンによって、ホストプロセッサ90から提供された適切な視野方位パラメータ114に基づいて処理され、表示されるフレームの適切に「再投影された」バージョンを提供する(ステップ113)。次に、「再投影された」フレームが、表示のためにディスプレイ94に提供するために、残りの表示処理パイプラインに(パネル信号発生器115に)提供される。
【０１４８】
ここで、本実施形態において視野方位変換動作を実行するためのディスプレイプロセッサ5の構成、およびこの動作のプロセスが、さらに詳細に説明される。
【０１４９】
図2は、ディスプレイプロセッサ5の概略をさらに詳細に示している。図2では、各ボックスがディスプレイプロセッサの機能ユニットを表しており、矢印がさまざまな機能ユニット間の接続を表している。
【０１５０】
図2に示されているように、ディスプレイプロセッサ5は、ダイレクトメモリアクセス(DMA: Direct Memory Access)読み取りコントローラの形態で読み取りコントローラを特に含んでいる、メモリ読み取りサブシステム41を備えている。読み取りコントローラは、1つまたは複数の入力面を、メモリバス9を介してメインメモリ3(図2に示されていない)内の1つまたは複数のフレームバッファから読み取るように構成される。
【０１５１】
メモリ読み取りサブシステム41は、1つまたは複数の入力面を、それらがメモリから読み取られるときにローカルにバッファするために(例えば、レイテンシ隠蔽の目的で)使用される1つまたは複数のリアルタイムFIFO(first-in-first-out: 先入れ先出し)モジュールをさらに備えている。
【０１５２】
この実施形態では、メモリ読み取りサブシステム41は、合成された出力フレームを生成するために使用される入力層として使用するために、最大3つまでの異なる入力面を提供する(読み取る)ように構成される。3つの入力層は、例えばビデオプロセッサ(コーデック)1によって生成された、1つまたは複数のビデオ層、および例えばグラフィックスプロセッシングユニット(GPU)2によって生成された、1つまたは複数のグラフィックス層(例えば、グラフィックスウィンドウ)などを含んでよい。したがって、図2は、3つの層パイプライン42、43、44を備えているディスプレイプロセッサ5を示しており、これらの各層パイプラインは、表示層として使用されるデータを入力面から受信する。層パイプラインによって受信された入力面のいずれかまたはすべてが、必要に応じて、デコーダによるデコード、および/または回転ユニットによる回転を受けていてよい。
【０１５３】
各層パイプライン42、43、44は、受信された面に対して、受信されたデータワードからのピクセルの取り出し、色(例えば、YUVからRGBへの)変換、および逆ガンマ補正または逆sRGB補正(inverse sRGB correction)などの、適切な動作を実行する。
【０１５４】
図2の実施形態は3つの層パイプライン(したがって、最大3つの入力層)の使用を示しているが、当該の適用に応じて(および、シリコン面積制約などにも応じて)、本発明において任意の数の層パイプラインが提供され、使用されてよいということが理解されるであろう。
【０１５５】
ディスプレイプロセッサ5は、合成ユニット(表示合成器)46をさらに備えており、合成ユニット46は、入力を層パイプライン42、43、44から受信し、例えば適切なアルファブレンディング演算などによって、受信された入力層を合成し、合成された出力面を生成するように動作できる。
【０１５６】
合成ユニット46からの合成された出力フレームは、望ましいように、表示のために表示処理(後処理)パイプライン47に前方に送信され、かつ/またはメモリ書き込みサブシステム48に送信される。
【０１５７】
表示パイプライン47は、任意の望ましい処理動作を合成された出力面(フレーム)に対して選択的に実行し、その後、(処理された)合成された出力フレームを、関連付けられたディスプレイに適切に表示するために送信するように、構成される。
【０１５８】
表示処理パイプライン47は、例えば、色変換を合成された出力フレームに適用するよう機能する色変換段階、ディザリングを合成された出力フレームに適用するよう機能するディザリング段階、および/または合成された出力フレームに対してガンマ補正を実行するよう機能するガンマ補正段階を含んでよい。
【０１５９】
表示処理パイプライン47は、適切な表示タイミング機能も備える。したがって、表示処理パイプライン47は、例えば適切な水平ブランキング期間および垂直ブランキング期間を伴って、ピクセルデータを表示出力49に送信するように構成される。例えば、水平同期パルスおよび垂直同期パルス(HSYNC、VSYNC)が、非ブランキング期間においてアサートされるDATAEN信号と一緒に生成されてよい。ブランキング期間では、DATAENがデアサートされ、データがディスプレイに送信されない(水平フロントポーチ(HSYNCパルスの前)、水平バックポーチ(HSYNCパルスの後)、垂直フロントポーチ(VSYNCパルスの前)、および垂直バックポーチ(VSYNCパルスの後)という4つのブランキング期間が存在する)。
【０１６０】
必要に応じて、MIPI、DPI、HDMI（登録商標）、Display Portなどの、その他の表示タイミングおよびデータ(ピクセル)パッキング方式を使用することもできる。
【０１６１】
表示出力49は、例えば、(例えば、データ処理システムが含まれているモバイルデバイス、スマートフォン、タブレットなどの)データ処理システムのローカルディスプレイとインターフェイスをとってよい。
【０１６２】
それに応じて、表示処理パイプライン47および表示出力制御インターフェイス49が、表示用の出力フレームをディスプレイ4に提供するためのディスプレイプロセッサ5の出力段として機能する。
【０１６３】
ディスプレイプロセッサ5のメモリ書き込みサブシステム48は、それが受信する、例えば合成ユニット46によって生成された面を、メモリバスを介して外部メモリ3(外部メモリ3内のフレームバッファ)に書き込むよう機能する。これによってディスプレイプロセッサ5は、表示用の出力フレームを提供するだけでなく、必要に応じて、それらの出力フレームをメインメモリに書き込むこともできる。この動作を容易にするために、メモリ書き込みサブシステム48は、DMA書き込みコントローラを含んでいる。本実施形態では、メモリ書き込みサブシステム48は、レイテンシ隠蔽バッファとして機能する適切なFIFOも含んでいる。
【０１６４】
ディスプレイプロセッサ5は、データフローを、ディスプレイプロセッサを介して、図2に示されているように処理するために適切なユニットに向ける(すなわち、入力層、合成された出力面などを提供する)よう機能する、データフロー制御モジュール45も含んでいる。本実施形態では、データフローコントローラ45は、例えば、好ましくは、ディスプレイプロセッサ5が含まれているデータ処理システム全体のホストプロセッサ(例えば、CPU7)上で実行されている、ディスプレイコントローラ用のドライバ11からの適切なソフトウェアの制御下で動作する。このドライバは、例えば、ホストプロセッサ上で実行されているアプリケーションから受信された表示処理用のコマンドおよびデータに応答して、ディスプレイプロセッサ5のデータフローコントローラ45およびプログラム制御レジスタに適したコマンドを生成してよい。
【０１６５】
これに関連して、当然、その他の構成も可能であろう。
【０１６６】
前述したように、ディスプレイプロセッサ5が表示用の出力フレームを提供する場合、ディスプレイプロセッサ5は、例えばビデオコーデック1および/またはGPU2によって生成された、出力フレーム生成プロセスにおいて入力層として機能するためにメインメモリ3内の各フレームバッファに格納されている、1つまたは複数の入力面(フレーム)のデータを読み込み、その入力面(フレーム)データを(例えば、出力フレームに合成することによって)処理し、(合成された)出力フレームを、表示処理パイプライン47を介して表示のためにディスプレイ4に提供する。
【０１６７】
このプロセスは、例えば、ディスプレイ4の望ましいフレームレートに対応するレート(フィールドシーケンシャルカラーディスプレイの場合、毎秒60、90、120、または240フレームなど)で、表示する必要のあるフレームごとに繰り返され得る。
【０１６８】
図2に示されているように、本実施形態のディスプレイプロセッサ5は、入力バッファ51および出力バッファ52に関連付けられた変換エンジン50をさらに含んでいる。変換エンジン50は、それが入力バッファ51を介して受信する入力面(フレーム)を変換し、その入力面(フレーム)の、視野方位によって適切に変換されたバージョンを提供するよう機能し、その後、この入力面(フレーム)が、出力バッファ52を介して表示のためにディスプレイに提供される。
【０１６９】
入力面に適したデータをメインメモリから読み取り、層パイプラインに提供し、データフロー制御モジュール45によって入力バッファ51に提供するために、必要な入力面(フレーム)データが、メモリ読み取りサブシステム41を制御するドライバによって、入力バッファ51に読み込まれる。
【０１７０】
図2に示されているように、データフロー制御モジュール45は、層パイプライン42、43、および/または44によって処理された入力面データを、変換エンジン50によって処理するために、入力バッファ51に適切に向け、次に、出力バッファ52からのデータを合成ユニット46に適切に向け、そこから表示のために表示処理パイプライン47に向けるよう機能する。この動作は、やはり、ドライバによって適切に制御され、構成されてよい。
【０１７１】
データフロー制御モジュール45は、必要に応じて、変換されたフレームのデータを、外部メモリに書き出すためにメモリ書き込みサブシステム48に向けることもできる。この動作は、その後の表示用のフレームが、前のフレームとの差異に基づいて生成される場合に、適切であることがある。
【０１７２】
図2では、入力バッファ51および出力バッファ52が別々のバッファとして示されているが、それらのバッファは、必要に応じて、例えば層パイプライン内に存在できるバッファなどの、ディスプレイプロセッサ5内に存在できる他のバッファを介して、提供されてもよい。
【０１７３】
図2に示されているように、変換エンジン50は、制御レジスタ53のセットにも関連付けられており、制御レジスタ53を介して、変換プロセスに適した制御パラメータが、例えば、好ましくはドライバ11の制御下で、設定され得る。図2に示されているように、これらのレジスタは、ディスプレイプロセッサ用のドライバによって設定された視野方位変換パラメータを特に受信して格納する。例えばレンズを示すその他の制御パラメータおよび/またはヘッドマウントディスプレイの任意のその他の構成パラメータが、変換エンジン50の動作を制御するために、レジスタ53に格納されてもよい。
【０１７４】
当然、その他の構成も可能であろう。
【０１７５】
図3は、図2に示されているディスプレイプロセッサの変換エンジン50をさらに詳細に示している。
【０１７６】
図3に示されているように、ディスプレイプロセッサの変換エンジン50は、複数の段階、つまり、座標補間段階60、色収差補正段階61、視野方位変換段階62、および補間段階63を備えている。これらの各段階は、本実施形態では、固定機能ハードウェアモジュール(処理回路)の形態で実装され、この固定機能ハードウェアモジュールは、それが受信する入力データに対して特定の処理動作を実行するように構成されるが、その能力のため、構成の可能性が、モジュールごとのごくわずかの制御パラメータに制限される。それらの制御パラメータは、本実施形態では、一連のフレームが表示されるときに、システムと共に使用されている特定のヘッドセット(ディスプレイ)4に基づいて、ディスプレイプロセッサ5用のドライバ11によって設定される。
【０１７７】
当然、その他の構成も可能であろう。
【０１７８】
座標補間段階60は、変換エンジンから出力される出力変換面内のサンプリング位置x、yに関して、入力フレーム内(GPU2によって描画され、メモリ3に格納され、ユーザに表示されるフレーム内)の対応する位置(座標)x'、y'を、ディスプレイ4の表示パネルに表示され、ヘッドマウントディスプレイのレンズを通して見られるときに出力変換フレームに導入されるレンズ歪みに対応する規定されたレンズ歪みに基づいて、決定するように動作する。
【０１７９】
座標補間段階60は、例えば、このために、何らかの形態の三次曲線関数または楕円関数を、ディスプレイプロセッサ用のドライバによって制御パラメータを用いて設定可能な、例えば楕円の焦点などのこの関数のパラメータを使用して、実行してよい。
【０１８０】
色収差補正段階61は、座標補間段階60によって決定された入力面位置(座標)x'、y'を受け取り、ヘッドマウントディスプレイ4のレンズによって導入される色収差を考慮するように、それらの座標を「補正」する。
【０１８１】
図3に示されているように、カラー平面(R、G、B)ごとに別々の色収差補正が実行される。緑色のカラー平面の色収差は、アルファ(透明)平面にも使用される。
【０１８２】
したがって、この色収差補正段階61の出力は、入力フレーム内の赤色のカラー平面をサンプリングするために使用する1つのセットxR'、yR'と、入力フレーム内の緑色の平面およびアルファ(透明)平面をサンプリングするための1つのセットxG'、yG'と、入力フレーム内の青色の平面をサンプリングするための1つのセットxB'、yB'という、修正された入力フレームの位置(座標)の3つのセットになる。
【０１８３】
次に、色収差補正段階61によって決定された修正された入力フレームの位置が、視野方位変換段階62に提供される。
【０１８４】
この段階は、予測された視野方位に対応する変換パラメータのセットを入力として受け取ることであって、入力フレームが、ディスプレイ4に表示するために、この予測された視野方位から見られているかのように描画される、ことと、予測された視野方位に基づいて、(予測された視野方位に対応する)入力フレームの投影を生成するように動作することとを実行する(これについては、下でさらに詳細に説明される)。
【０１８５】
したがって、視野方位変換段階62は、色収差補正段階によって提供された入力フレームの各位置に対して変換をさらに実行し、それによって、視野方位によって変換された入力フレームの位置のセット(xR"、yR")、(xG"、yG")、(xB"、yB")を提供し、次にこのセットが、入力フレームをサンプリングして、現在生成されている出力変換フレームのサンプリング(データ要素)位置x、yに使用される色値を得るために、使用される。
【０１８６】
視野方位変換段階62が各入力フレームの位置に対して実行する変換は、例えば、2D平面(画像)の3D回転(透視変換/2Dホモグラフィ)を含んでよい。やはりこの変換は、変換段階62で、ドライバ設定制御パラメータによる使用において適切に調整され得る。
【０１８７】
視野方位変換段階62によって決定された、変換された入力フレームの位置が補間段階63に提供され、補間段階63が、示された位置で入力フレームをサンプリングし、それらの入力フレームの各位置での入力フレームの値を決定する。この決定は、規定された入力フレームのサンプリング(データ要素)位置に対する、入力フレームの値の適切な補間によって実行される。
【０１８８】
入力フレームのサンプリング位置のデータの補間は、任意の適切な望ましい方法で実行され得る。本実施形態では、共一次内挿法が使用されるが、必要に応じて、その他の構成が使用され得る。
【０１８９】
異なるカラー平面に対して異なる入力フレームの位置(座標)が決定されるため、本実施形態では、それに応じて、カラー平面ごとに、出力変換フレームのサンプリング位置(データ要素)に対して、(そのカラー平面の決定された入力フレームの位置に基づいて)データの別々のセットが補間される。したがって、出力変換フレームのサンプリング位置(データ要素)のRGBカラーデータのセットは、決定された「赤色」の入力フレームの位置(座標)(xR"、yR")から決定された赤色の値、決定された「緑色」の入力フレームの位置(座標)(xG"、yG")から決定された緑色の値、および決定された「青色」の入力フレームの位置(座標)(xB"、yB")から決定された青色の値を含む。
【０１９０】
アルファ(透明)値も決定される場合、前述したように、その値は、緑色の値を決定するために使用される入力フレームの位置(座標)から決定される。
【０１９１】
次に、図3に示されているように、残りのディスプレイプロセッサの表示処理パイプラインに提供し、ユーザに表示するためにディスプレイ4に提供するために、補間された値が出力バッファ(FIFO)52に出力される。
【０１９２】
図3に示されているように、適切な入力フレームデータを補間段階63に使用できるようにするために、視野方位変換段階62によって決定された(補間段階63によってサンプリングされる)修正された入力面の位置が、入力バッファ51への、それらのサンプリング位置を含んでいる入力フレームの適切な領域の取得を制御するために使用され(65)、その後、補間段階63によって使用される。
【０１９３】
これを実行するために、視野方位変換段階62によって決定された入力フレームの位置の整数部分が、必要な入力フレームデータを含んでいる入力フレームの適切な2次元ブロックを識別するために使用される。次に、入力段階が、それらの各入力フレームブロックを入力バッファ51に読み込むように動作する。
【０１９４】
図3にも示されているように、補間段階63によって使用するために入力バッファ51への入力フレームデータを要求することと、補間段階63がそのデータを処理して出力変換フレームのサンプリング位置を提供することとの間のレイテンシを考慮するために、適切な遅延(レイテンシ吸収)メカニズム64が変換段階に含まれていてよい。これは、望ましいように実装され得る。
【０１９５】
図3に示されているように、変換エンジン50の動作がトリガされ、そのタイミングが、ディスプレイ4からの適切な同期信号65の受信によって制御される。
【０１９６】
図4は、図3に示されている変換エンジン50の動作を示すフローチャートである。
【０１９７】
図4は、表示のために生成される出力変換フレーム内の各ピクセル(データ)位置に対する動作を示している。この動作は、必要な出力変換フレームのピクセル(データ位置)ごとに繰り返される。
【０１９８】
図4に示されているように、プロセスが、表示用の新しい出力フレームの開始を示す適切な同期信号120から開始する。
【０１９９】
その後、次に生成される望ましい出力変換フレームのピクセル座標x0、y0が決定される(ステップ121)。
【０２００】
次に、座標補間段階60は、変換エンジンから出力される出力変換フレーム内のピクセル(サンプリング)位置x0、y0に関して、入力フレーム内(GPU2によって描画され、メモリ3に格納され、ユーザに表示されるフレーム内)の対応する位置(座標)xi、yiを、ディスプレイ4の表示パネルに表示され、ヘッドマウントディスプレイのレンズを通して見られるときに出力変換フレームに導入されるレンズ歪みに対応する規定されたレンズ歪みに基づいて、決定するように動作する(ステップ122)。
【０２０１】
次に、色収差補正段階61が、ステップ122で座標補間段階60によって決定された入力フレームの位置(座標)xi、yiを受け取り、ディスプレイ4のレンズによって導入される色収差を考慮するようにそれらの座標を「補正」し(ステップ123)、修正された入力フレームの位置(座標)の3つのセットxr、yr、xga、yga、xb、ybを提供する。
【０２０２】
次に、ステップ123で色収差補正段階61によって決定された修正された入力フレームの位置が、望ましい予測された視野方位に対応する現在入力されているパラメータのセットに基づいて、変換段階62による「視野方位」の座標再投影(補正)を受け(ステップ124)、それによって、予測された視野方位によって変換された入力フレームの位置のセット(x'r、y'r)、(x'ga、y'ga)、(x'b、y'b)を提供する。
【０２０３】
次に、そのように決定された入力フレームの位置が、図4に示されているように、入力バッファへの必要な入力フレームのサンプリング位置のデータを含んでいる入力フレームの適切なブロックの取得を要求し、決定された入力フレームの位置のデータ値を補間段階63によって決定できるようにするために、使用される。この動作では、決定された入力フレームの各位置の整数部分を使用して、入力フレームのどのブロックが必要になるかを識別する。次に、識別された入力フレームのブロックが取得され、入力バッファに格納される(ステップ126)。
【０２０４】
次に、補間段階が、適切な入力フレームのデータ位置を、入力バッファに格納された入力フレームのブロックから読み取り、当該の出力フレームのピクセル(サンプリング位置)(x0、y0)の適切なデータ値を補間する(ステップ127)。
【０２０５】
次に、そのように生成された出力ピクセルが、その後、表示合成ユニットに提供し(表示合成ユニットによって消費され)、表示のためにディスプレイに提供するために、出力バッファに収集される(ステップ128)。
【０２０６】
図3および図4に示されているように、ディスプレイプロセッサ5の変換エンジンが、ユーザに表示される出力変換フレームを、その出力変換フレーム内の一連のサンプリング位置(ピクセル)として、サンプリング位置ごと(ピクセルごと)に生成する。本実施形態では、変換エンジンは、出力変換フレームをラスターラインごとに生成するように構成される(例えば、その順序で、出力変換フレームを表示のためにディスプレイ4に提供する必要があるため)。
【０２０７】
本実施形態は、特に、予測された視野方位に対して変換されるフレームをディスプレイ4に表示する場合の、データ処理システムの動作に関連しており、例えばそれは、ディスプレイが、例えば拡張現実アプリケーションまたは仮想現実アプリケーション用のフレームをユーザに表示するために使用されている場合であることがある。
【０２０８】
本実施形態では、予測された視野方位に対して変換されるフレームをフィールドシーケンシャルディスプレイ4に表示するときに、フレームの別々のカラーフィールドが、各カラーフィールドが表示される時間に対応するそれ自身の個別の各予測された視野方位に基づいて、それぞれ変換(再投影)される。この変換は、フレームの各カラーフィールドを変換(再投影)する、ディスプレイプロセッサ5内の変換エンジンによって、その特定のカラーフィールドに対して予測された視野方位に基づいて実行される。
【０２０９】
カラーフィールドに対して予測された視野方位(および、変換エンジンに、その予測された視野方位に基づいてカラーフィールドを変換させるパラメータ)は、本実施形態では、CPU7上で実行される予測視野方位決定エンジン15を用いて決定される。この予測視野方位決定エンジンは、表示のための最新の検知された視野方位(回転および位置)と、表示されているフレームが生成された時間と、当該のカラーフィールドの目標表示時間(すなわち、カラーフィールドが表示される時間)と、ユーザの現在の頭部の動きの推定(例えば、ユーザの以前の頭部の動きの追跡に基づく)とを使用して、(各)カラーフィールドに対して予測された視野方位を決定する。
【０２１０】
本実施形態では、予測された視野方位は、必要に応じて、例えば各フレームおよび/またはカラーフィールドの開始時に(ディスプレイプロセッサにおいてカラーフィールドが別々に処理される場合)、あるいは例えば、当該のフレーム/フィールド内で間隔を置くなど、さらに頻繁に、決定され得る。
【０２１１】
図8および図9は、フレームの各カラーフィールドがそれ自身の予測された視野方位に基づいてそれ自身の変換(再投影)を受ける第1の実施形態を示している。
【０２１２】
この実施形態では、ディスプレイプロセッサが、カラーフィールドを一緒に処理し、その後、各カラーフィールドが、それ自体の表示においてディスプレイ4の表示パネルに提供するために、分離される。
【０２１３】
図8はこれを説明しており、各フレーム160、161を生成し、その後、ディスプレイプロセッサ5によって処理するためにそれらのフレームをメモリ3に格納する、グラフィックプロセッサ2を示している。この例では、ディスプレイプロセッサ5が2つのフレーム160、161を合成して、表示用の合成されたフレーム162を提供し、その後、合成されたフレーム162が、例えばディスプレイ送信器163を介して、ディスプレイ4に(ディスプレイ4の受信器164に)送信されるということが仮定される(図8に示されているように、ディスプレイ4は、ディスプレイプロセッサ5(およびディスプレイ送信器163)への有線リンクまたは無線リンクを有してよい)。
【０２１４】
この実施形態では、図8に示されているように、表示される出力フレーム162が、結合された(交互配置された)RGBデータとして提供されるため、そのフレームデータが、一連の別々の各カラーフィールドとして表示のために表示パネル168に提供するために、ディスプレイドライバ回路167によって各カラーフィールド166に分離できるように、まずディスプレイ4のチップ上のフレームバッファ165に格納される。
【０２１５】
前述したように、この実施形態では、その処理の一部として、ディスプレイプロセッサが、予測された視野方位に基づいて(すなわち、当該の特定のカラー平面の各予測された視野方位を使用して)各カラー平面を別々に再投影する。
【０２１６】
この再投影は、ディスプレイプロセッサ5の変換エンジン50によって実行される。
【０２１７】
図9はこのプロセスを示しており、図3に示されている変換エンジンの構成に概して対応する。
【０２１８】
したがって、図9は、適切な光学補正181(図3に示されているレンズ歪み補正および色収差補正に対応する)を、適切な色ごとのレンズパラメータ182(ディスプレイが見られているときに介するレンズシステムに基づくセットになる)に基づいて、ディスプレイの各ピクセル座標に適用し、各カラーフィールド(Cr、Cg、Cb183)ごとに光学的に補正されたピクセル座標のセットを提供することを示している。
【０２１９】
次に、光学的に補正された各ピクセル座標183が、図9に示されているように、カラー平面ごとの変換Pr、Pg、Pb184をそれぞれ受けて、個別の各カラー平面の、別々のカラーフィールドごとに適切に変換されたサンプリング座標Tr、Tg、Tb185を提供する。
【０２２０】
図9に示されているように、これらのカラー平面(フィールド)ごとの変換は、カラーフィールドごとに、当該のカラーフィールドが表示パネル168に表示される各時間に基づいて予測された、別々の予測された視野方位の変換Pr、Pg、Pb186を使用する。
【０２２１】
次に、そのように変換された(再投影された)ピクセル座標が、表示される入力画像(フレーム)188をサンプリングする(187)ために使用され、その後、サンプリングされたピクセルが、合成およびその他の画像処理189などの、ディスプレイプロセッサの処理の適切なさらなる処理段階に提供される。
【０２２２】
次に、そのように変換されて再投影されたピクセルが、ディスプレイピクセル出力190に適切に提供される。
【０２２３】
図10および図11は、第2の実施形態を示している。
【０２２４】
この実施形態では、図10に示されているように、表示されるフレーム170、171が、各カラーフィールドにすでに分離されて(すなわち、3つの単一のカラー平面画像として)、グラフィックプロセッサ2によってディスプレイプロセッサ5に提供される。これは、この実施形態では、グラフィックプロセッサ2が、別々のカラー平面の形態で、生成したフレームをメモリ3に格納することよって、実現される。
【０２２５】
次に、ディスプレイプロセッサ5が、3つのカラー平面を別々に処理するため、ディスプレイ4の出力として、表示されるフレームの3つの別々のカラー平面172を提供する。その場合、図10に示されているように、ディスプレイ4に提供されるフレームが別々のカラー平面172の形態で提供されるため、ディスプレイ4自体でカラー平面の分離を実行する必要がなく、受信されたデータが、受信されたときに、ディスプレイドライバ回路167によって表示パネル168上に単に直接スキャンされ得る。これによって、例えば、チップ上のフレームバッファ165をディスプレイ4に含める必要性を回避する。
【０２２６】
図11は、この実施形態のディスプレイプロセッサにおいて実行される対応するカラーフィールドの再投影(変換)を示している。
【０２２７】
この場合、ディスプレイプロセッサは、(図9に示されているように、単一のピクセルからの3つの異なる色値を並列に処理するのではなく)特定のカラー平面からの3つのピクセルを並列に変換するように構成される。
【０２２８】
したがって、この場合、図11に示されているように、特定の表示ピクセル座標Di,jに関して、表示処理パイプラインの光学的補正段階181が、現在処理されている単一のカラー平面内の3つの光学的に補正された各ピクセル位置を出力200として提供するように動作する。
【０２２９】
この動作は、出力表示ピクセル座標に対応する1つの光学的に補正されたピクセル位置、特定の軸方向に沿った(この場合、表示ピクセル座標の行に沿った)次の表示ピクセル座標に対応する入力カラー平面内の光学的に補正されたピクセル位置、および当該の軸方向に沿った(この場合、行に沿った)次の、ただし1つの表示ピクセル座標に対応する入力カラー平面内の光学的に補正されたピクセル位置を生成することによって実現される。
【０２３０】
図11に示されているように、それに応じて、変換動作に使用される表示ピクセル座標が、3つの連続する表示ピクセル座標のグループに対応する入力カラー平面のピクセル座標の選択および生成をトリガするようにも構成される。
【０２３１】
次に、光学的に補正されたピクセル位置200が、当該のカラーフィールドの適切な予測された視野方位の変換Pf186を受け(184)、当該のカラーフィールドからサンプリングするために、予測された視野方位によって再投影された3つのピクセル位置201を提供する。
【０２３２】
次に、画像サンプリングプロセス187が、当該の入力カラー平面188内の適切なピクセル位置をサンプリングし、それらのピクセル値を、その後の合成および画像処理段階189に提供し、この段階では、それらのピクセル値が適切に処理され、その後、表示するために提供される(190)。
【０２３３】
本発明が、少なくとも好ましい実施形態において、ヘッドマウントフィールドシーケンシャルカラーディスプレイを使用するときに、より効率的な動作を提供できる構成を提供するということが、上記から理解され得る。この動作は、少なくとも本発明の好ましい実施形態において、ディスプレイに表示される個別のカラーフィールドを、それ自身の別々の予測された視野方位に基づいて変換することによって、および/または各カラーフィールドにすでに分離された表示されるフレームをディスプレイに提供することによって、実現される。
【符号の説明】
【０２３４】
1  ビデオコーデック
2  GPU
3  オフチップメモリ
4  ディスプレイ
5  ディスプレイプロセッサ
7  CPU
8  メモリコントローラ
9  相互接続
10  アプリケーション
11  ドライバ
12  カメラ
13  ISP
14  データ処理システム
15  予測視野方位決定エンジン
41  メモリ読み取り
42  層パイプライン
43  層パイプライン
44  層パイプライン
45  データフロー制御
46  合成
47  表示処理パイプライン
48  メモリ書き込みサブシステム
49  表示出力制御
50  変換エンジン
51  入力バッファ
52  出力バッファ
53  制御レジスタ
60  座標補間
61  色収差補正
62  変換
63  ピクセル補間
64  遅延(レイテンシ吸収)メカニズム
65  同期
85  ヘッドマウントディスプレイ
86  ディスプレイマウント
87  表示画面
88  レンズ
89  レンズマウント
90  ホストプロセッサ
91  GPU
92  描画されたフレーム
93  ディスプレイプロセッサ
94  表示パネル
95  フィッティング
100  変換エンジン
111  ラインバッファ
113  変換エンジン
114  視野方位パラメータ
115  パネル信号発生器
160  フレーム
161  フレーム
162  合成されたフレーム、出力フレーム
163  ディスプレイ送信器
164  ディスプレイ受信器
165  チップ上のフレームバッファ
166  カラーフィールド
167  ディスプレイドライバ回路
168  表示パネル
170  フレーム
171  フレーム
172  別々のカラー平面
180  表示ピクセル座標
181  光学的補正
182  色ごとのレンズパラメータ
183  光学的に補正されたピクセル座標
184  変換
185  変換されたサンプリング座標
186  変換パラメータ
187  画像サンプリング
188  入力画像
189  合成および画像処理
190  表示ピクセル出力
200  光学的に補正されたピクセル位置
201  再投影されたピクセル位置
【図１】
2020004413.tif 000003
【図２】
2020004413.tif 000004
【図３】
2020004413.tif 000005
【図４】
2020004413.tif 000006
【図５】
2020004413.tif 000007
【図６】
2020004413.tif 000008
【図７】
2020004413.tif 000009
【図８Ａ】
2020004413.tif 000010
【図８Ｂ】
2020004413.tif 000011
【図９】
2020004413.tif 000012
【図１０Ａ】
2020004413.tif 000013
【図１０Ｂ】
2020004413.tif 000014
【図１１】
2020004413.tif 000015
【外国語明細書】
2020004413000001.pdf