(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-14
(54)【発明の名称】フォービエイテッドレンダリングのためのシステムおよび方法
(51)【国際特許分類】
G09G 5/02 20060101AFI20221006BHJP
G09G 5/00 20060101ALI20221006BHJP
G09G 5/36 20060101ALI20221006BHJP
G06T 15/00 20110101ALI20221006BHJP
H04N 7/01 20060101ALI20221006BHJP
G06F 3/0346 20130101ALI20221006BHJP
【FI】
G09G5/02 B
G09G5/00 550C
G09G5/00 550B
G09G5/00 520H
G09G5/36 520A
G09G5/36 520P
G09G5/36 520E
G09G5/36 520C
G06T15/00 501
H04N7/01 170
H04N7/01 350
H04N7/01 270
G06F3/0346 423
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021573159
(86)(22)【出願日】2020-07-29
(85)【翻訳文提出日】2022-02-09
(86)【国際出願番号】 US2020044119
(87)【国際公開番号】W WO2021030062
(87)【国際公開日】2021-02-18
(32)【優先日】2019-08-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】セイラー, ラリー
【テーマコード(参考)】
5B080
5B087
5C063
5C182
【Fターム(参考)】
5B080AA13
5B080AA19
5B080BA02
5B080BA04
5B080CA01
5B080CA04
5B080DA06
5B080FA02
5B080FA08
5B080FA15
5B080GA00
5B080GA22
5B087AA03
5B087BC05
5B087DD03
5C063BA08
5C063CA05
5C063CA16
5C063CA40
5C182AA02
5C182AA03
5C182AA06
5C182AB02
5C182AB08
5C182AB33
5C182AB37
5C182BA01
5C182BA03
5C182BA04
5C182BA14
5C182BA56
5C182BA75
5C182BC22
5C182BC25
5C182CA01
5C182CA11
5C182CA15
5C182CA21
5C182CB01
5C182CB03
5C182CB12
5C182CB42
5C182CB43
5C182CB44
5C182CB52
5C182CC25
5C182DA12
5C182DA25
5C182DA44
5C182DA66
(57)【要約】
一実施形態では、コンピューティングシステムが、第1のフレームレートにおいて生成された第1のレンダリングされたフレームにアクセスし得る。本システムは、第1のレンダリングされたフレームに基づいて、第1のフレームレートよりも高い第2のフレームレートにおいてサブフレームを生成し得る。本システムは、センサーデータに基づいてユーザの視線方向を決定することと、視線方向に基づいて、少なくとも、ユーザの中心窩焦点を包含する第1の視線領域と第1の視線領域を除く第2の視線領域とを決定することと、第1のサブフレームについて、第1のサンプリング解像度を使用して第1の視線領域に対応する色値を決定し、第1のサンプリング解像度よりも低い第2のサンプリング解像度を使用して第2の視線領域に対応する色値を決定することとによって、第1のサブフレームを生成し得る。本システムは、第2のフレームレートにおいて表示のためにサブフレームを出力し得る。
【選択図】
図2B
【特許請求の範囲】
【請求項1】
コンピューティングシステムによって、
第1のフレームレートにおいて生成された第1のレンダリングされたフレームにアクセスすることと、
前記第1のレンダリングされたフレームに基づいて、前記第1のフレームレートよりも高い第2のフレームレートにおいてサブフレームを生成することであって、前記サブフレームのうちの第1のサブフレームが、
センサーデータに基づいてユーザの視線方向を決定することと、
前記視線方向に基づいて、少なくとも、前記ユーザの中心窩焦点を包含する第1の視線領域と前記第1の視線領域を除く第2の視線領域とを決定することと、
前記第1のサブフレームについて、第1のサンプリング解像度を使用して前記第1の視線領域に対応する色値を決定し、前記第1のサンプリング解像度よりも低い第2のサンプリング解像度を使用して前記第2の視線領域に対応する色値を決定することと
によって生成される、サブフレームを生成することと、
前記第2のフレームレートにおいて表示のために前記サブフレームを出力することと
を含む、方法。
【請求項2】
前記第1のサブフレームが、変換ブロックとピクセルブロックとを備えるグラフィックパイプラインによって生成され、
前記変換ブロックによって、複数のタイルと複数の表面との間の交差を決定するために複数の光線を前記複数の表面に投射することによって複数のタイル-表面ペアを決定することであって、前記第1のビュー領域に対応する前記色値と前記第2のビュー領域に対応する前記色値とが、前記複数のタイル-表面ペアに基づいて決定される、複数のタイル-表面ペアを決定すること
をさらに含む、請求項1に記載の方法。
【請求項3】
前記変換ブロックが、前記第1の視線領域に対応する前記色値よりも、前記第2の視線領域に対応する前記色値を決定するためにより少量の光線を投射する、請求項2に記載の方法。
【請求項4】
前記ピクセルブロックによって、前記第1のサンプリング解像度を使用して表面の第1のセットをサンプリングすることによって前記第1の視線領域に対応する前記色値を決定することと、
前記ピクセルブロックによって、前記第2のサンプリング解像度を使用して表面の第2のセットをサンプリングすることによって前記第2の視線領域に対応する前記色値を決定することであって、前記ピクセルブロックが、前記第1の視線領域に対応する前記色値よりも、第2のサンプルビュー領域に対応する前記色値を決定するためにより少量の計算を実施する、前記第2の視線領域に対応する前記色値を決定することと
をさらに含む、請求項2に記載の方法。
【請求項5】
前記第2の視線領域に対応するピクセルのグループの第1の色チャネルが、前記第2のサンプリング解像度に関連し、前記第2の視線領域に対応するピクセルの前記グループの第2の色チャネルが、前記第2のサンプリング解像度とは異なる第3のサンプリング解像度に関連する、請求項4に記載の方法。
【請求項6】
前記第2の視線領域に対応するピクセルの前記グループの前記第1の色チャネルの各n×nピクセルアレイについてのグレースケール値を独立して決定することであって、nの値が、前記第2のサンプリング解像度に基づいて決定される、各n×nピクセルアレイについてのグレースケール値を独立して決定することと、
前記第2の視線領域に対応するピクセルの前記グループの第2の色チャネルの各m×mピクセルについてのグレースケール値を独立して決定することであって、mの値が、前記第2の色チャネルに関連する前記第3の解像度に基づいて決定される、各m×mピクセルについてのグレースケール値を独立して決定することと
をさらに含む、請求項5に記載の方法。
【請求項7】
前記第1の色チャネルの前記第2のサンプリング解像度と前記第2の色チャネルの前記第3のサンプリング解像度とが、2のべき乗の関係を有する、請求項6に記載の方法。
【請求項8】
複製プロセスに基づいて前記n×nピクセルアレイ内の各ピクセルについてのグレースケール値を決定することであって、前記複製プロセスがディスプレイシステムによって実施される、前記n×nピクセルアレイ内の各ピクセルについてのグレースケール値を決定すること
をさらに含む、請求項6に記載の方法。
【請求項9】
補間プロセスに基づいて前記n×nピクセルアレイ内の各ピクセルについてのグレースケール値を決定することであって、前記補間プロセスが、輝度補正プロセスおよびディザリングプロセスより前に前記グラフィックパイプラインの表示ブロックによって実施される、前記n×nピクセルアレイ内の各ピクセルについてのグレースケール値を決定すること
をさらに含む、請求項6に記載の方法。
【請求項10】
前記第1の視線領域と前記第2の視線領域とを除く第3の視線領域を決定することであって、前記第1の視線領域、前記第2の視線領域、および前記第3の視線領域のそれぞれの色値が、徐々により低いサンプリング解像度に基づいて決定される、第3の視線領域を決定すること
をさらに含む、請求項1に記載の方法。
【請求項11】
a)前記第1のサブフレームがソースデータに基づいて生成され、
前記第1のサブフレームを生成するために、連続的により低い解像度において前記ソースデータを前処理することと、
前記第1のサブフレームを生成しながら、前記連続的により低い解像度において前記ソースデータにアクセスすることと
をさらに含む、または
b)前記第2の視線領域に対応する複数のピクセルにシャープネスフィルタを適用することであって、前記第1のサブフレームが、前記第2の視線領域中の1つまたは複数の物体に関連する1つまたは複数のエッジ上のコントラストレベルを維持する、シャープネスフィルタを適用すること
をさらに含む、または
c)前記第2の視線領域中の前記第1のサブフレームの複数のピクセルにシャープネスフィルタを適用することであって、前記第1のサブフレームが、前記第2の視線領域中の平均輝度を維持する、シャープネスフィルタを適用すること
をさらに含む、または
d)前記第1のフレームレートが30~90Hzの第1の範囲内にあり、前記第2のフレームレートが1~2kHzの第2の範囲内にある、
のいずれか1つである、請求項1に記載の方法。
【請求項12】
ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアは、実行されたとき、
第1のフレームレートにおいて生成された第1のレンダリングされたフレームにアクセスすることと、
前記第1のレンダリングされたフレームに基づいて、前記第1のフレームレートよりも高い第2のフレームレートにおいてサブフレームを生成することであって、前記サブフレームのうちの第1のサブフレームが、
センサーデータに基づいてユーザの視線方向を決定することと、
前記視線方向に基づいて、少なくとも、前記ユーザの中心窩焦点を包含する第1の視線領域と前記第1の視線領域を除く第2の視線領域とを決定することと、
前記第1のサブフレームについて、第1のサンプリング解像度を使用して前記第1の視線領域に対応する色値を決定し、前記第1のサンプリング解像度よりも低い第2のサンプリング解像度を使用して前記第2の視線領域に対応する色値を決定することと
によって生成される、サブフレームを生成することと、
前記第2のフレームレートにおいて表示のために前記サブフレームを出力することと
を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項13】
a)第1のサブフレーム画像が、変換ブロックとピクセルブロックとを備えるグラフィックパイプラインを使用して生成され、前記ソフトウェアは、実行されたとき、
前記変換ブロックによって、複数のタイルと複数の表面との間の交差を決定するために複数の光線を前記複数の表面に投射することによって複数のタイル-表面ペアを決定することであって、第1のビュー領域に対応する前記色値と第2のビュー領域に対応する前記色値とが、前記複数のタイル-表面ペアに基づいて決定される、複数のタイル-表面ペアを決定すること
を行うようにさらに動作可能である、または
b)前記変換ブロックが、前記第2の視線領域に対応する前記色値よりも、前記第1の視線領域に対応する前記色値を決定するためにより少量の光線を投射する、
のいずれか1つである、請求項12に記載の媒体。
【請求項14】
1つまたは複数のプロセッサと、
前記プロセッサのうちの1つまたは複数に結合され、命令を備える、1つまたは複数のコンピュータ可読非一時的記憶媒体と
を備えるシステムであって、前記命令は、前記プロセッサのうちの1つまたは複数によって実行されたとき、前記システムに、
第1のフレームレートにおいて生成された第1のレンダリングされたフレームにアクセスすることと、
前記第1のレンダリングされたフレームに基づいて、前記第1のフレームレートよりも高い第2のフレームレートにおいてサブフレームを生成することであって、前記サブフレームのうちの第1のサブフレームが、
センサーデータに基づいてユーザの視線方向を決定することと、
前記視線方向に基づいて、少なくとも、前記ユーザの中心窩焦点を包含する第1の視線領域と前記第1の視線領域を除く第2の視線領域とを決定することと、
前記第1のサブフレームについて、第1のサンプリング解像度を使用して前記第1の視線領域に対応する色値を決定し、前記第1のサンプリング解像度よりも低い第2のサンプリング解像度を使用して前記第2の視線領域に対応する色値を決定することと
によって生成される、サブフレームを生成することと、
前記第2のフレームレートにおいて表示のために前記サブフレームを出力することと
を行わせるように動作可能である、システム。
【請求項15】
a)第1のサブフレーム画像が、変換ブロックとピクセルブロックとを備えるグラフィックパイプラインを使用して生成され、前記命令は、前記プロセッサのうちの1つまたは複数によって実行されたとき、前記システムに、
前記変換ブロックによって、複数のタイルと複数の表面との間の交差を決定するために複数の光線を前記複数の表面に投射することによって複数のタイル-表面ペアを決定することであって、第1のビュー領域に対応する前記色値と第2のビュー領域に対応する前記色値とが、前記複数のタイル-表面ペアに基づいて決定される、複数のタイル-表面ペアを決定すること
を行わせるようにさらに動作可能である、または
b)前記変換ブロックが、前記第2の視線領域に対応する前記色値よりも、前記第1の視線領域に対応する前記色値を決定するためにより少量の光線を投射する、
のいずれか1つである、請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、仮想現実および拡張現実など、人工現実に関する。
【背景技術】
【0002】
人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(視聴者に3次元効果をもたらすステレオビデオなど)。人工現実は、たとえば、人工現実におけるコンテンツを作成するために使用される、および/または人工現実において使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連し得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスまたはコンピューティングシステム、あるいは、1人または複数の視聴者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
【発明の概要】
【0003】
本明細書で説明される特定の実施形態は、レンダリングプロセスの電力消費量および計算リソース使用量を低減するために、ユーザの中心窩領域(foveal region)に基づくディスプレイの異なる表示領域にわたって可変解像度をもつ表示コンテンツをレンダリングするためのシステムおよび方法に関する。システムは、ディスプレイについて、いくつかの表示領域を、ディスプレイ上のユーザの注視点に対するそれらの距離に基づいて決定し、異なる表示領域中で異なる解像度をもつ表示コンテンツをレンダリングし得る。たとえば、システムは、フル表示エリアの1/4の幅および1/4の高さをもち、(最新の眼の位置に基づいて決定され得る)ユーザの注視点を中心とする、第1の表示領域と、フル表示エリアの1/2の幅および1/2の高さをもち、第1の表示領域を囲むが第1の表示領域を除く、第2の表示領域と、ディスプレイの残りの表示エリアに対応する第3の表示領域とを決定し得る。次いで、システムは、異なる表示領域の3つの色チャネル(たとえば、RGB)の各々についてサンプリング解像度(sampling resolution)を独立して決定し得る。たとえば、システムは、第1の表示領域のすべての3つの色チャネルについてフルサンプリング解像度を使用し、第2および第3の表示領域について低減されたサンプリング解像度(たとえば、第2の表示領域中では、緑色チャネルについてフル解像度ならびに赤色および青色チャネルについて1/2解像度、第3の表示領域中では、緑色チャネルについて1/2解像度ならびに赤色および青色チャネルについて1/4解像度)を使用し得る。
【0004】
特定の実施形態では、システムは、低減された解像度をもつ表示コンテンツについてのタイル/表面ペア(tile/surface pair)を決定するために、より少量の光線を投射し(cast)得る。たとえば、システムは、緑色チャネルについてフル解像度を使用し、赤色または青色チャネルについて1/2解像度を使用し得る。その結果、システムは、各緑色ピクセルについて光線を投射する必要があり、(4つの赤色ピクセルについて4つの光線および4つの青色ピクセルについて4つの光線の代わりに)4つの赤色または青色ピクセルごとに1つの光線のみを投射する必要があり得る。したがって、システムは、12個ではなく、4ピクセル領域について合計6つの光線(赤色について1つ、青色について1つ、および緑色について4つ)のみを投射する必要があることになる。したがって、システムは、メモリ読取り帯域幅の1/2および計算ユニット(たとえば、フィルタブロック)の数の1/2のみを必要とすることになる。システムは、表示コンテンツについての色値を決定するために、タイル/表面ペアについてのテクスチャデータ(たとえば、MIPマップテクスチャデータ)を取り出し得る。より少ないデータが処理される必要があるので、システムは、低減されたテクスチャメモリ読取りおよびデータ処理のために、同じ量のリソース(たとえば、フィルタ、メモリ、計算ユニット)を使用して、所与のクロックサイクルにおいてフル解像度ピクセルの2倍の数の1/2解像度ピクセルを処理することができる。特定の実施形態では、色値が決定された後に、システムは、低減されたピクセル密度のために、ディスプレイの背面に色値を送るためにより少ない送信帯域幅を必要とし得る。特定の実施形態では、システムは、フォービエイテッドフィルタ処理により独立して計算されない色値を、いくつかの異なるやり方で、すなわち、(1)輝度補正およびディザリングより前に近隣色値を補間することによって、(2)近隣色値をディスプレイに送信した後に、それらの近隣色値を補間することによって、または(3)ディスプレイにおいて近隣色値を複製することによって生成し得る。
【0005】
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、上記で開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式上の理由で選定されるにすぎない。ただし、前の請求項への意図的な参照(特に複数の従属関係)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれも、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
【0006】
一実施形態では、方法は、コンピューティングシステムによって、
第1のフレームレートにおいて生成された第1のレンダリングされたフレームにアクセスすることと、
第1のレンダリングされたフレームに基づいて、第1のフレームレートよりも高い第2のフレームレートにおいてサブフレームを生成することであって、サブフレームのうちの第1のサブフレームが、
センサーデータに基づいてユーザの視線方向を決定することと、
視線方向に基づいて、少なくとも、ユーザの中心窩焦点を包含する第1の視線領域と第1の視線領域を除く第2の視線領域とを決定することと、
第1のサブフレームについて、第1のサンプリング解像度を使用して第1の視線領域に対応する色値を決定し、第1のサンプリング解像度よりも低い第2のサンプリング解像度を使用して第2の視線領域に対応する色値を決定することと
によって生成される、サブフレームを生成することと、
第2のフレームレートにおいて表示のためにサブフレームを出力することと
を含み得る。
【0007】
一実施形態では、第1のサブフレームは、変換ブロックとピクセルブロックとを備えるグラフィックパイプラインによって生成され得、方法は、
変換ブロックによって、複数のタイルと複数の表面との間の交差(intersection)を決定するために複数の光線を複数の表面に投射することによって複数のタイル-表面ペア(tile-surface pair)を決定することであって、第1のビュー領域に対応する色値と第2のビュー領域に対応する色値とが、複数のタイル-表面ペアに基づいて決定される、複数のタイル-表面ペアを決定すること
を含み得る。
【0008】
変換ブロックは、第1の視線領域に対応する色値よりも、第2の視線領域に対応する色値を決定するためにより少量の光線を投射し得る。
【0009】
一実施形態では、方法は、
ピクセルブロックによって、第1のサンプリング解像度を使用して表面の第1のセットをサンプリングすることによって第1の視線領域に対応する色値を決定することと、
ピクセルブロックによって、第2のサンプリング解像度を使用して表面の第2のセットをサンプリングすることによって第2の視線領域に対応する色値を決定することであって、ピクセルブロックが、第1の視線領域に対応する色値よりも、第2のサンプルビュー領域に対応する色値を決定するためにより少量の計算を実施する、第2の視線領域に対応する色値を決定することと
を含み得る。
【0010】
第2の視線領域に対応するピクセルのグループの第1の色チャネルが、第2のサンプリング解像度に関連し得、第2の視線領域に対応するピクセルのグループの第2の色チャネルが、第2のサンプリング解像度とは異なる第3のサンプリング解像度に関連し得る。
【0011】
一実施形態では、方法は、
第2の視線領域に対応するピクセルのグループの第1の色チャネルの各n×nピクセルアレイについてのグレースケール値を独立して決定することであって、nの値が、第2のサンプリング解像度に基づいて決定される、各n×nピクセルアレイについてのグレースケール値を独立して決定することと、
第2の視線領域に対応するピクセルのグループの第2の色チャネルの各m×mピクセルについてのグレースケール値を独立して決定することであって、mの値が、第2の色チャネルに関連する第3の解像度に基づいて決定される、各m×mピクセルについてのグレースケール値を独立して決定することと
を含み得る。
【0012】
第1の色チャネルの第2のサンプリング解像度と第2の色チャネルの第3のサンプリング解像度とは、2のべき乗の関係を有し得る。
【0013】
一実施形態では、方法は、
複製プロセスに基づいてn×nピクセルアレイ内の各ピクセルについてのグレースケール値を決定することであって、複製プロセスがディスプレイシステムによって実施される、n×nピクセルアレイ内の各ピクセルについてのグレースケール値を決定すること
を含み得る。
【0014】
一実施形態では、方法は、
補間プロセスに基づいてn×nピクセルアレイ内の各ピクセルについてのグレースケール値を決定することであって、補間プロセスが、輝度補正プロセスおよびディザリングプロセスより前にグラフィックパイプラインの表示ブロックによって実施される、n×nピクセルアレイ内の各ピクセルについてのグレースケール値を決定すること
を含み得る。
【0015】
一実施形態では、方法は、
第1の視線領域と第2の視線領域とを除く第3の視線領域を決定することであって、第1の視線領域、第2の視線領域、および第3の視線領域のそれぞれの色値が、徐々により低いサンプリング解像度に基づいて決定される、第3の視線領域を決定すること
を含み得る。
【0016】
一実施形態では、第1のサブフレームはソースデータに基づいて生成され得、方法は、
第1のサブフレームを生成するために、連続的により低い解像度においてソースデータを前処理することと、
第1のサブフレームを生成しながら、連続的により低い解像度においてソースデータにアクセスすることと
を含み得る。
【0017】
一実施形態では、方法は、
第2の視線領域に対応する複数のピクセルにシャープネスフィルタを適用することであって、第1のサブフレームが、第2の視線領域中の1つまたは複数の物体に関連する1つまたは複数のエッジ上のコントラストレベルを維持する、シャープネスフィルタを適用すること
を含み得る。
【0018】
一実施形態では、方法は、
第2の視線領域中の第1のサブフレームの複数のピクセルにシャープネスフィルタを適用することであって、第1のサブフレームが、第2の視線領域中の平均輝度を維持する、シャープネスフィルタを適用すること
を含み得る。
【0019】
第1のフレームレートは30~90Hzの第1の範囲内にあり得、第2のフレームレートは1~2kHzの第2の範囲内にあり得る。
【0020】
一実施形態では、1つまたは複数のコンピュータ可読非一時的記憶媒体がソフトウェアを具現し得、ソフトウェアは、実行されたとき、
第1のフレームレートにおいて生成された第1のレンダリングされたフレームにアクセスすることと、
第1のレンダリングされたフレームに基づいて、第1のフレームレートよりも高い第2のフレームレートにおいてサブフレームを生成することであって、サブフレームのうちの第1のサブフレームが、
センサーデータに基づいてユーザの視線方向を決定することと、
視線方向に基づいて、少なくとも、ユーザの中心窩焦点を包含する第1の視線領域と第1の視線領域を除く第2の視線領域とを決定することと、
第1のサブフレームについて、第1のサンプリング解像度を使用して第1の視線領域に対応する色値を決定し、第1のサンプリング解像度よりも低い第2のサンプリング解像度を使用して第2の視線領域に対応する色値を決定することと
によって生成される、サブフレームを生成することと、
第2のフレームレートにおいて表示のためにサブフレームを出力することと
を行うように動作可能である。
【0021】
一実施形態では、第1のサブフレーム画像は、変換ブロックとピクセルブロックとを備えるグラフィックパイプラインを使用して生成され得、ソフトウェアは、実行されたとき、
変換ブロックによって、複数のタイルと複数の表面との間の交差を決定するために複数の光線を複数の表面に投射することによって複数のタイル-表面ペアを決定することであって、第1のビュー領域に対応する色値と第2のビュー領域に対応する色値とが、複数のタイル-表面ペアに基づいて決定される、複数のタイル-表面ペアを決定すること
を行うように動作可能であり得る。
【0022】
変換ブロックは、第2の視線領域に対応する色値よりも、第1の視線領域に対応する色値を決定するためにより少量の光線を投射し得る。
【0023】
一実施形態では、システムは、1つまたは複数のプロセッサと、プロセッサのうちの1つまたは複数に結合され、命令を備える、1つまたは複数のコンピュータ可読非一時的記憶媒体とを備え得、命令は、プロセッサのうちの1つまたは複数によって実行されたとき、システムに、
第1のフレームレートにおいて生成された第1のレンダリングされたフレームにアクセスすることと、
第1のレンダリングされたフレームに基づいて、第1のフレームレートよりも高い第2のフレームレートにおいてサブフレームを生成することであって、サブフレームのうちの第1のサブフレームが、
センサーデータに基づいてユーザの第2の視線方向を決定することと、
第2の視線方向に基づいて、少なくとも、ユーザの中心窩焦点を包含する第1の視線領域と第1の視線領域を除く第2の視線領域とを決定することと、
第1のサブフレームについて、第1のサンプリング解像度を使用して第1の視線領域に対応する色値を決定し、第1のサンプリング解像度よりも低い第2のサンプリング解像度を使用して第2の視線領域に対応する色値を決定することと
によって生成される、サブフレームを生成することと、
第2のフレームレートにおいて表示のためにサブフレームを出力することと
を行わせるように動作可能である。
【0024】
一実施形態では、第1のサブフレーム画像は、変換ブロックとピクセルブロックとを備えるグラフィックパイプラインを使用して生成され得、命令は、プロセッサのうちの1つまたは複数によって実行されたとき、システムに、
変換ブロックによって、複数のタイルと複数の表面との間の交差を決定するために複数の光線を複数の表面に投射することによって複数のタイル-表面ペアを決定することであって、第1のビュー領域に対応する色値と第2のビュー領域に対応する色値とが、複数のタイル-表面ペアに基づいて決定される、複数のタイル-表面ペアを決定すること
を行わせるように動作可能であり得る。
【0025】
変換ブロックは、第2の視線領域に対応する色値よりも、第1の視線領域に対応する色値を決定するためにより少量の光線を投射し得る。
【図面の簡単な説明】
【0026】
【
図1A】例示的な人工現実システムを示す図である。
【
図1B】例示的な拡張現実システムを示す図である。
【
図2A】ディスプレイエンジンの例示的なアーキテクチャを示す図である。
【
図2B】表示画像データを生成するためのディスプレイエンジンの例示的なグラフィックパイプラインを示す図である。
【
図2C】マスタサブフレーム機構を使用して表示コンテンツをレンダリングするための例示的な方式を示す図である。
【
図3A】フォービエイテッドレンダリングのための異なるレンダリング解像度をもつ表示領域を決定するための例示的な方式を示す図である。
【
図3B】赤色、緑色、および青色の3つの色チャネルのための3つの例示的なピクセルアレイを示す図である。
【
図3C】異なる色チャネルおよび異なる表示領域のサンプリング解像度を決定するための例示的な方式を示す図である。
【
図3D】計算量を低減するために異なる色チャネルおよび異なる表示領域について異なるサンプリング解像度を使用する例示的な方式を示す図である。
【
図4A-D】システムが、1つまたは複数の画像領域中のサンプリング解像度を低減することによって、同じ計算リソースを使用してより多数のピクセルタイルを処理することを可能にする、例示的なフレームワークを示す図である。
【
図5A-C】ピクセルサブアレイ内のピクセルについてのグレースケール値を決定するための例示的な複製プロセスおよび補間プロセスを示す図である。
【
図6】フォービエイテッドレンダリングのための例示的な方法を示す図である。
【
図7】例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0027】
AR/VRシステムは、(たとえば、バッテリーによって電力供給される)限られた利用可能な電力と、限られた計算リソース(たとえば、計算ユニット、メモリ、データ送信帯域幅など)とを有し得る。しかしながら、フル解像度表示コンテンツのためのグラフィックレンダリングプロセスは、電力消費と計算リソースの両方に関して要求していることがあり、したがって、AR/VRシステムの性能に悪影響を及ぼすことがある。特定の実施形態は、表示コンテンツレンダリングプロセスに関係する電力消費量と計算リソース使用量とを低減するために、フォービエイテッドレンダリングプロセスを使用し得る。たとえば、システムは、ユーザの注視点に対応する中心窩領域中で(赤色、緑色、および青色のすべての色チャネルについて)フル解像度をもつ表示コンテンツをレンダリングし、ユーザの中心窩領域以外の表示領域中で(1つまたは複数の色チャネルについて)低減された解像度をもつ表示コンテンツをレンダリングし得る。フォービエイテッドレンダリングプロセスを使用することによって、システムは、低減された解像度をもつ表示コンテンツについてのタイル/表面ペアを決定するために、より少量の光線を投射し、したがって、レンダリングプロセスのためにより少ない計算リソースを使用し得る。システムは、低減されたメモリ読取りおよびデータ処理のために、フル解像度画像を処理する場合と同じ量の計算リソースを使用して、所与のクロックサイクルにおいてより大きい画像エリア(たとえば、より多数のピクセルまたはピクセルタイル)を処理し、したがって、システム性能の効率を改善し得る。さらに、システムは、フォービエイテッド画像の少なくとも一部分における低減された解像度のために、ディスプレイにピクセル値を送るためにより少ない送信帯域幅を必要とし得る。
【0028】
図1Aは、例示的な人工現実システム100Aを示す。特定の実施形態では、人工現実システム100は、ヘッドセット104、コントローラ106、およびコンピューティングシステム108などを備え得る。ユーザ102が、視覚人工現実コンテンツをユーザ102に表示することができるヘッドセット104を装着し得る。ヘッドセット104は、オーディオ人工現実コンテンツをユーザ102に提供することができるオーディオデバイスを含み得る。ヘッドセット104は、環境の画像およびビデオをキャプチャすることができる1つまたは複数のカメラを含み得る。ヘッドセット104は、ユーザ102の輻輳距離を決定するためのアイトラッキングシステムを含み得る。ヘッドセット104は、ヘッドマウントディスプレイ(HDM)と呼ばれることがある。コントローラ106は、トラックパッドと1つまたは複数のボタンとを備え得る。コントローラ106は、ユーザ102から入力を受信し、それらの入力をコンピューティングシステム108に中継し得る。コントローラ106はまた、触覚フィードバックをユーザ102に提供し得る。コンピューティングシステム108は、ケーブルまたはワイヤレス接続を通してヘッドセット104およびコントローラ106に接続され得る。コンピューティングシステム108は、人工現実コンテンツをユーザ102に提供し、ユーザ102から入力を受信するように、ヘッドセット104およびコントローラ106を制御し得る。コンピューティングシステム108は、スタンドアロンホストコンピュータシステム、ヘッドセット104と統合されたオンボードコンピュータシステム、モバイルデバイス、または人工現実コンテンツをユーザ102に提供し、ユーザ102から入力を受信することが可能な任意の他のハードウェアプラットフォームであり得る。
【0029】
図1Bは、例示的な拡張現実システム100Bを示す。拡張現実システム100Bは、フレーム112と、1つまたは複数のディスプレイ114と、コンピューティングシステム120とを備えるヘッドマウントディスプレイ(HMD)110(たとえば、眼鏡)を含み得る。ディスプレイ114は透明または半透明であり、HMD110を装着しているユーザがディスプレイ114をのぞいて現実世界を見ることを可能にし、同時に、視覚人工現実コンテンツをユーザに表示し得る。HMD110は、オーディオ人工現実コンテンツをユーザに提供し得るオーディオデバイスを含み得る。HMD110は、環境の画像およびビデオをキャプチャすることができる1つまたは複数のカメラを含み得る。HMD110は、HMD110を装着しているユーザの輻輳運動を追跡するためのアイトラッキングシステムを含み得る。拡張現実システム100Bは、トラックパッドと1つまたは複数のボタンとを備えるコントローラをさらに含み得る。コントローラは、ユーザから入力を受信し、それらの入力をコンピューティングシステム120に中継し得る。コントローラはまた、触覚フィードバックをユーザに提供し得る。コンピューティングシステム120は、ケーブルまたはワイヤレス接続を通してHMD110およびコントローラに接続され得る。コンピューティングシステム120は、拡張現実コンテンツをユーザに提供し、ユーザから入力を受信するように、HMD110およびコントローラを制御し得る。コンピューティングシステム120は、スタンドアロンホストコンピュータシステム、HMD110と統合されたオンボードコンピュータシステム、モバイルデバイス、または人工現実コンテンツをユーザに提供し、ユーザから入力を受信することが可能な任意の他のハードウェアプラットフォームであり得る。
【0030】
図2Aは、ディスプレイエンジン210の例示的なアーキテクチャ200を示す。特定の実施形態では、本開示で説明されるプロセスおよび方法は、ディスプレイエンジン210内で具現または実装され得る。ディスプレイエンジン210は、たとえば、限定はしないが、テクスチャメモリ212、変換ブロック213、ピクセルブロック214、表示ブロック215、入力データバス211、出力データバス216などを含み得る。特定の実施形態では、ディスプレイエンジン210は、ディスプレイ上でレンダリングされるべき画像を生成するための1つまたは複数のグラフィックパイプラインを含み得る。たとえば、ディスプレイエンジン210は、ユーザの左眼および右眼のための2つのグラフィックパイプラインを含み得る。グラフィックパイプラインのうちの一方は、テクスチャメモリ212、変換ブロック213、ピクセルブロック214、表示ブロック215などを含み得るか、またはそれらの上に実装され得る。ディスプレイエンジン210は、他方のグラフィックパイプラインのための変換ブロック、ピクセルブロック、および表示ブロックの別のセットを含み得る。(1つまたは複数の)グラフィックパイプラインは、ディスプレイエンジン210のコントローラまたは制御ブロック(図示せず)によって制御され得る。特定の実施形態では、テクスチャメモリ212は、制御ブロック内に含まれ得るか、または、制御ブロックの外部の、ただしディスプレイエンジン210にローカルのメモリユニットであり得る。ディスプレイエンジン210の構成要素のうちの1つまたは複数は、高速バス、共有メモリ、または任意の他の好適な方法を介して通信するように構成され得る。この通信は、データならびに制御信号、割込みまたは/および他の命令の送信を含み得る。たとえば、テクスチャメモリ212は、入力データバス211を通して画像データを受信するように構成され得、表示ブロック215は、出力データバス216を通してディスプレイシステムにピクセル値を送り得る。
【0031】
特定の実施形態では、ディスプレイエンジン210は、コントローラブロック(図示せず)を含み得る。制御ブロックは、1つまたは複数のデータバスを通してディスプレイエンジン210の外部のコントローラから、位置データおよび表面情報など、データおよび制御パッケージを受信し得る。たとえば、制御ブロックは、身体装着可能コンピューティングシステムから入力ストリームデータを受信し得る。入力データストリームは、30~90Hzのメインフレームレートにおいて生成された一連のメインフレーム画像を含み得る。メインフレーム画像を含む入力ストリームデータは、必要とされるフォーマットにコンバートされ、テクスチャメモリ212に記憶され得る。特定の実施形態では、制御ブロックは、身体装着可能コンピューティングシステムから入力を受信し、ディスプレイ上でレンダリングするための画像データを準備し、仕上げるために、ディスプレイエンジン中のグラフィックパイプラインを初期化し得る。データおよび制御パケットは、たとえば、テクセルデータと位置データと追加のレンダリング命令とを含む1つまたは複数の表面に関係する情報を含み得る。制御ブロックは、ディスプレイエンジン210の1つまたは複数の他のブロックに、必要に応じてデータを配信し得る。制御ブロックは、表示されるべき1つまたは複数のフレームを処理するためにグラフィックパイプラインを始動し得る。特定の実施形態では、2つのアイディスプレイシステムのためのグラフィックパイプラインは、各々、制御ブロックを含むか、または同じ制御ブロックを共有し得る。
【0032】
特定の実施形態では、変換ブロック213は、人工現実シーン中に表示されるべき表面についての初期可視性情報を決定し得る。概して、変換ブロック213は、スクリーン上のピクセルロケーションから光線を投射し、ピクセルブロック214に送るべきフィルタコマンドを作り出し得る(たとえば、双線形タイプまたは他のタイプの補間技法に基づくフィルタ処理)。変換ブロック213は、(たとえば、ヘッドセットの慣性測定ユニット、アイトラッキングセンサー、ならびに/または同時位置特定およびマッピング(SLAM)などの任意の好適なトラッキング/位置特定アルゴリズムを使用して決定された)ユーザの現在の視点から、表面が配置された人工シーンへの光線投射を実施し得、ピクセルブロック214に送るべきタイル/表面ペア217を作り出し得る。
【0033】
特定の実施形態では、変換ブロック213は、以下のように4段パイプラインを含み得る。光線投射器(caster)は、タイルと呼ばれる1つまたは複数の整合ピクセルのアレイに対応する光線バンドルを発し得る(たとえば、各タイルは16×16整合ピクセルを含み得る)。光線バンドルは、1つまたは複数のひずみメッシュに従って、人工現実シーンに入る前に歪曲され得る。ひずみメッシュは、少なくとも、アイディスプレイシステムヘッドセットシステムから生じる幾何学的ひずみ効果を補正するように構成され得る。変換ブロック213は、各タイルのバウンディングボックスを表面のためのバウンディングボックスと比較することによって、各光線バンドルがシーン中の表面と交差するかどうかを決定し得る。光線バンドルが物体と交差しない場合、それは廃棄され得る。タイル-表面交差が検出された後に、対応するタイル/表面ペアは、ピクセルブロック214に受け渡され得る。
【0034】
特定の実施形態では、ピクセルブロック214は、タイル-表面ペアに基づいてピクセルについての色値またはグレースケール値を決定し得る。各ピクセルについての色値は、受信され、テクスチャメモリ212に記憶された、表面のテクセルデータからサンプリングされ得る。ピクセルブロック214は、変換ブロック213からタイル-表面ペアを受信し得、1つまたは複数のファイラーブロックを使用する双線形フィルタ処理をスケジュールし得る。各タイル-表面ペアについて、ピクセルブロック214は、投影されたタイルが表面と交差する場所に対応する色値を使用して、タイル内のピクセルについての色情報をサンプリングし得る。ピクセルブロック214は、取り出されたテクセルに基づいて(たとえば、双線形補間を使用して)ピクセル値を決定し得る。特定の実施形態では、ピクセルブロック214は、各ピクセルについて別々に、赤色、緑色、および青色成分を処理し得る。特定の実施形態では、ディスプレイは、2つのアイディスプレイシステムについて2つのピクセルブロックを含み得る。2つのアイディスプレイシステムの2つのピクセルブロックは、独立して、および互いに並列に動作し得る。ピクセルブロック214は、次いで、ピクセルブロック214の色決定を表示ブロック215に出力し得る。特定の実施形態では、ピクセルブロック214は、2つまたはそれ以上の表面が重複エリアを有するとき、2つまたはそれ以上の表面を合成して1つの表面にし得る。合成された表面は、リサンプリングプロセスのためにより少ない計算リソース(たとえば、計算ユニット、メモリ、電力など)を必要とし得る。
【0035】
特定の実施形態では、表示ブロック215は、ピクセルブロック214からピクセル色値を受信し、ディスプレイの走査線出力により好適であるようにデータのフォーマットをコンバートし、ピクセル色値に1つまたは複数の輝度補正を適用し、ディスプレイへの出力のためにピクセル色値を準備し得る。特定の実施形態では、表示ブロック215は、各々、行バッファを含み得、ピクセルブロック214から受信されたピクセルデータを処理し、記憶し得る。ピクセルデータは、クワッド(quad)単位で(たとえば、クワッド当たり2×2ピクセル)およびタイル単位で(たとえば、タイル当たり16×16ピクセル)編成され得る。表示ブロック215は、ピクセルブロック214によって生成されたタイル順序ピクセル色値を、物理的ディスプレイによって必要とされ得る走査線または行順序データにコンバートし得る。輝度補正は、任意の必要とされる輝度補正、ガンママッピング、およびディザリングを含み得る。表示ブロック215は、補正されたピクセル色値を物理的ディスプレイ(たとえば、瞳孔ディスプレイ)のドライバに直接出力し得るか、またはピクセル値をディスプレイエンジン210の外部のブロックに様々なフォーマットで出力し得る。たとえば、ヘッドセットシステムのアイディスプレイシステムは、バックエンド色処理をさらにカスタマイズするための、ディスプレイへのより広いインターフェースをサポートするための、あるいは表示速度または忠実度を最適化するための、追加のハードウェアまたはソフトウェアを含み得る。
【0036】
特定の実施形態では、グラフィックスアプリケーション(たとえば、ゲーム、マップ、コンテンツ提供アプリなど)は、GPUまたはディスプレイエンジン上でレンダリングすべきプリミティブを生成するために所与のビュー位置および時点とともに使用されるシーングラフを構築し得る。シーングラフは、シーン中の物体間の論理および/または空間関係を定義し得る。特定の実施形態では、ディスプレイエンジン210も、フルアプリケーションシーングラフの簡略化された形式であるシーングラフを生成し、記憶し得る。簡略化されたシーングラフは、表面(たとえば、アプリケーションによってレンダリングされたメインフレームに基づいて生成された対応するテクスチャを有する、3D空間において定義された、四角形または輪郭など、ディスプレイエンジン210によってレンダリングされたプリミティブ)間の論理および/または空間関係を指定するために使用され得る。シーングラフを記憶することは、ディスプレイエンジン210が、シーンを複数の表示フレームにレンダリングすることと、現在の視点(たとえば、頭部位置)と、現在の物体位置(たとえば、それらは互いに対して移動していることがある)と、表示フレームごとに変化する他のファクタとについてシーングラフ中の各要素を調整することとを可能にする。さらに、シーングラフに基づいて、ディスプレイエンジン210は、ディスプレイサブシステムによってもたらされる幾何学的ひずみおよび色ひずみについても調整し、次いで、物体を一緒に合成してフレームを生成し得る。シーングラフを記憶することは、ディスプレイエンジン210が、著しく低いレートにおいてGPUまたはディスプレイエンジン210を実際に稼働しながら所望の高いフレームレートにおいてフルレンダー(render)を行った結果を近似することを可能にする。
【0037】
図2Bは、表示画像データを生成するためのディスプレイエンジン210の例示的なグラフィックパイプライン200Bを示す。特定の実施形態では、グラフィックパイプライン200Bは可視性ステップ272を含み得、ここで、ディスプレイエンジン210は、身体装着可能コンピューティングシステムから受信された1つまたは複数の表面の可視性を決定し得る。可視性ステップ272は、ディスプレイエンジン210の変換ブロック(たとえば、
図2A中の213)によって実施され得る。ディスプレイエンジン210は、身体装着可能コンピューティングシステムから入力データ261を(たとえば、制御ブロックまたはコントローラによって)受信し得る。入力データ261は、身体装着可能コンピューティングシステムからの1つまたは複数の表面、テクセルデータ、位置データ、RGBデータ、およびレンダリング命令を含み得る。入力データ261は、30~90フレーム毎秒(FPS)をもつメインフレーム画像を含み得る。メインフレーム画像は、たとえば、24ビット/ピクセルの色深度を有し得る。ディスプレイエンジン210は、受信された入力データ261を処理し、テクセルメモリ212に保存し得る。受信されたデータは変換ブロック213に受け渡され得、変換ブロック213は、表示されるべき表面についての可視性情報を決定し得る。変換ブロック213は、スクリーン上のピクセルロケーションのための光線を投射し、ピクセルブロック214に送るべきフィルタコマンドを作り出し得る(たとえば、双線形タイプまたは他のタイプの補間技法に基づくフィルタ処理)。変換ブロック213は、(たとえば、ヘッドセットの慣性測定ユニット、アイトラッカー、ならびに/または同時位置特定およびマッピング(SLAM)などの任意の好適なトラッキング/位置特定アルゴリズムを使用して決定された)ユーザの現在の視点から表面が配置された人工シーンへの光線投射を実施し、ピクセルブロック214に送るべき表面-タイルペアを作り出し得る。
【0038】
特定の実施形態では、グラフィックパイプライン200Bはリサンプリングステップ273を含み得、ここで、ディスプレイエンジン210は、ピクセル色値を作り出すためにタイル-表面ペアから色値を決定し得る。リサンプリングステップ273は、ディスプレイエンジン210の
図2A中のピクセルブロック214)によって実施され得る。ピクセルブロック214は、変換ブロック213からタイル-表面ペアを受信し得、双線形フィルタ処理をスケジュールし得る。各タイル-表面ペアについて、ピクセルブロック214は、投影されたタイルが表面と交差する場所に対応する色値を使用して、タイル内のピクセルについての色情報をサンプリングし得る。ピクセルブロック214は、取り出されたテクセルに基づいて(たとえば、双線形補間を使用して)ピクセル値を決定し、決定されたピクセル値をそれぞれの表示ブロック215に出力し得る。
【0039】
特定の実施形態では、グラフィックパイプライン200Bは、ベンドステップ274、補正ステップ275、シリアライゼーションステップ276などを含み得る。特定の実施形態では、274、275、および276のベンド、補正およびシリアライゼーションステップは、ディスプレイエンジン210の表示ブロック(たとえば、
図2A中の215)によって実施され得る。ディスプレイエンジン210は、表示コンテンツレンダリングのために表示コンテンツをブレンドし、ピクセル色値に1つまたは複数の輝度補正を適用し、物理的ディスプレイのための走査線出力のためにピクセル値をシリアライズし、プロジェクタのμLEDディスプレイに好適な表示データ279を生成し得る。ディスプレイエンジン210は、プロジェクタのμLEDディスプレイに表示データ279を送り得る。特定の実施形態では、システムは、3つのμLED背面ユニット280A、280B、および280Cを含み得る。280A、280B、および280Cの各μLED背面ユニットは、デシリアライゼーションモジュール282と、PWM制御およびデータローディングモジュール284と、μLED行列286とを含み得る。ディスプレイエンジン210から受信された表示データ279は、デシリアライゼーションモジュール282によってデシリアライズされ、PWM制御およびデータローディングモジュール284によってロードされ、μLED行列286によって表示され得る。特定の実施形態では、μLEDディスプレイは、5ビット/ピクセルで1~2kサブフレーム毎秒において稼働し得、色当たり47Gbpsにおいてデータフローを生成し得る。サブフレーム画像は、8ビットの色深度またはグレースケールを表すためにディザリング(たとえば、空間または/および時間ディザリング)され得る。
【0040】
図2Cは、マスタサブフレーム機構を使用して表示コンテンツをレンダリングするための例示的な方式200Cを示す。特定の実施形態では、システムは、表示コンテンツをレンダリングするためのマスタサブフレームレンダリング機構を採用し得る。システムのディスプレイエンジンは、ディスプレイエンジンの外部のコントローラ(たとえば、AR/VRシステムまたは身体装着可能コンピューティングシステムの複数のディスプレイエンジンを協調させる中央コントローラなど)からの一連のメインフレーム画像を含むメインフレーム画像データをロードし得る。メインフレーム画像は、マスタフレームレート(たとえば、30~90Hz)において生成され、ディスプレイエンジンにロードされ得る。ディスプレイエンジンは、グラフィックパイプラインまたは局所変換動作(localized transformative operation)(たとえば、2Dシフト、補間、複数の表面を合成して単一の表面にすること)を使用して、マスタフレームレート(たとえば、30~90Hz)よりも高くなり得るサブフレームフレームレート(たとえば、1~2kHz)において一連のサブフレーム画像を生成し得る。ディスプレイエンジンは、サブフレーム画像をサブフレームフレームレートにおいて物理的ディスプレイにレンダリングし得る。このマスタサブフレームレンダリング機構は、ディスプレイエンジンが、高いサブフレームレート(たとえば、1~2kHz)をもつ表示コンテンツをレンダリングし、したがって、ユーザの頭部運動または眼球運動により敏感である(たとえば、より短い応答時間である)ことを可能にし得る。
【0041】
限定としてではなく一例として、ディスプレイエンジンは、装着可能コンピューティングシステムの(ディスプレイエンジンの外部にある)中央制御ユニットからの画像データをテクセルメモリにロードし、
図2Cに示されているように、マスタフレームクロック信号220とサブフレームクロック信号230とに基づいて表示コンテンツを物理的ディスプレイにレンダリングし得る。マスタフレームクロック信号220は、アクティブ時間期間222と非アクティブ時間期間224とを含む周期時間期間を含み得る。特定の実施形態では、マスタフレームクロック信号220のアクティブ時間期間222は、6ms~28msの範囲内の長さを有し得、非アクティブ時間期間224は、約5msの長さを有し得る。メインフレーム画像データは、周期マスタフレームクロック信号220の非アクティブ時間期間224中に、更新されるか、またはディスプレイエンジンのテクスチャメモリにロードされ得る。
【0042】
ディスプレイエンジンにロードされたかまたは更新された後に、メインフレーム画像データは、ディスプレイエンジンのテクスチャメモリ内に記憶され得る。ディスプレイエンジンは、メインフレーム画像データに基づいて物理的ディスプレイのための表示データを生成するために、グラフィックパイプライン(または1つまたは複数の局所変換動作)を使用し得る。物理的ディスプレイのための表示データは、サブフレームクロック信号230に基づいて1~2kHzのサブフレームレートにおいて生成され、レンダリングされ得る、いくつかのサブフレーム画像を含み得る。サブフレームクロック信号230は、マスタフレームクロック信号220のアクティブ時間期間222に対応するアクティブ時間期間232と、マスタフレームクロック信号220の非アクティブ時間期間224に対応する非アクティブ時間期間234とを含む周期時間期間を含み得る。サブフレーム240を含む表示コンテンツは、1~2kHzのサブフレームレートにおいてアクティブ時間期間232(たとえば、行更新当たり185~270ns)中に物理的ディスプレイにレンダリングされ得る。非アクティブ時間期間234中に、ディスプレイエンジンは、サブフレームを物理的ディスプレイにレンダリングしないことがあるが、サブフレームを物理的ディスプレイにレンダリングする代わりに、他の動作、たとえば、可変焦点レンズを機械的に調整すること、または/および1つまたは複数の局所変換動作を実施し得る。マスタサブフレームレンダリング機構の場合、ディスプレイエンジンは、メインフレーム画像を受信し、より高いサブフレームレートをもつサブフレームを物理的ディスプレイにレンダリングするために、マスタフレームレートを使用して、アップストリームモジュール(たとえば、装着可能コンピューティングシステムの中央制御ユニット)とインターフェースし得る。ディスプレイエンジンは、より高い輝度、より長い持続性、または/および改善されたビット深度をもつディスプレイレンダリング結果を生成するために、複数のフレームをリプレイし、サブフレームに対して変換または動作(たとえば、色補正)実施し得る。
【0043】
特定の実施形態では、システムは、表示コンテンツ(たとえば、特定のビューアングルにおけるシーン)がユーザの頭部運動または眼球運動に極めて敏感であることを可能にするために、高いフレームレート(たとえば、1~2kHz)をもつサブフレーム画像を生成し、レンダリングし得る。システムは、ユーザの眼の位置(たとえば、注視点)または/および頭部位置を決定するために、1つまたは複数のアイトラッキングセンサーまたは/および頭部運動トラッキングセンサーを使用し得る。次いで、システムは、最新の眼の位置または/および頭部位置に従って(たとえば、ユーザの視点、ビューアングル、または/および注視点に基づいて)、シーンの新しいサブフレームを生成し、レンダリングし得る。システムは、サブフレーム画像を生成するために、1つまたは複数のプロセス(たとえば、変換ブロックによるタイル/表面決定プロセス、ピクセルブロックによるリサンプリングプロセス、表示ブロックによるブレンディング、フィルタ処理、補正、および滅菌プロセスなど)を含むグラフィックパイプラインを使用し得る。サブフレームの高いレンダリングフレームレート(したがって、短いレンダリング期間)のために、システムは、シーンの次のサブフレームを生成する前に、正確で最新の(たとえば、リアルタイムまたは半リアルタイムの)眼の位置情報(たとえば、注視点)または/および頭部位置情報を有し得る。特定の実施形態では、システムは、この正確で最新の眼の位置情報または/および頭部位置情報を利用して、フォービエイテッドレンダリングのためのフォービエイテッドサブフレーム画像を生成し得る。システムは、いくつかの表示領域を、ユーザの中心窩領域または注視点に対するそれらの相対位置および距離に基づいて決定し、異なる表示領域に対応する異なる画像領域中で可変解像度をもつフォービエイテッドサブフレーム画像を生成し得る。フォービエイテッドサブフレーム画像は、ユーザの中心窩領域または注視点に対応する1つまたは複数の画像領域中では、高解像度(たとえば、フル解像度)を有し得、ユーザの注視点からより遠い画像領域中では、徐々により低い解像度を有し得る。
【0044】
図3Aは、フォービエイテッドレンダリングのための異なるレンダリング解像度をもつ表示領域を決定するための例示的な方式300Aを示す。特定の実施形態では、システムは、ユーザの注視点または眼の位置に基づいて、フル表示エリア310を異なる表示領域またはエリアに分割し得る。システムは、表示領域に対応する異なる画像領域中で異なる解像度をもつサブフレーム画像を生成し、異なる表示領域中で異なるレンダリング解像度をもつ表示コンテンツをレンダリングし得る。限定としてではなく一例として、システムは、ユーザ注視点311に基づいて第1の表示領域312を決定し得る。第1の表示領域312は、フル表示エリアの一部分(たとえば、10%、20%、25%、30%、50%、60%、または任意の好適な割合)をカバーする、注視点311を中心とする矩形領域であり得る。ユーザの注視点は、1つまたは複数のアイトラッキングセンサーによって測定されるユーザの眼の位置に基づいて決定され得る。システムは、第1の表示領域312を除く第2の表示領域313を決定し得る。言い換えれば、第2の表示領域313は、第1の表示領域312によってカバーされるピクセルのサブセットとの共有ピクセルを有しないことがあるピクセルのサブセットをカバーし得る。システムは、(たとえば、第1の表示領域312および第2の表示領域313によってカバーされるピクセルのサブセットとの共有ピクセルを有しないことがあるピクセルのサブセットをカバーする)第1の表示領域312および第2の表示領域313を除く第3の表示領域314を決定し得る。第3の表示領域314は、第1の表示領域312および第2の表示領域313によってカバーされないディスプレイの残りのエリアをカバーし得る。
【0045】
ここで説明される第1、第2、および第3の表示領域の形状およびサイズは例示のためのものであり、表示領域はそれについて限定されないことは、注目に値する。たとえば、表示領域は、任意の好適なサイズ(たとえば、フル表示エリアの任意の割合)をもつ任意の好適な形状(たとえば、矩形形状、正方形形状、円形形状、多角形形状、カスタマイズされた形状、不規則形状、任意の形状など)であり得る。限定としてではなく一例として、第1の表示領域312は、フル表示エリア310の1/4の幅および1/4の高さを有し得る。第2の表示領域313は、フル表示エリア310の1/2の幅および1/2の高さを有し得る。第3の表示領域314は、第2の表示領域313以外の、フル表示エリア310の残りのエリアをカバーし得る。限定としてではなく別の例として、第1の表示領域312は、フル表示エリア310の1/8の幅および1/8の高さを有し得る。第2の表示領域313は、フル表示エリア310の1/4の幅および1/4の高さを有し得る。第3の表示領域314は、第2の表示領域313以外の、フル表示エリア310の残りのエリアをカバーし得る。
【0046】
第1、第2、および第3の表示領域の相対位置およびサイズは例示のためのものであり、表示領域はそれについて限定されないことは、注目に値する。たとえば、特定の実施形態では、第1の表示領域312は、注視点311を中心とし得る。しかしながら、いくつかの他の実施形態では、第1の表示領域312は、注視点311を中心としないことがある。注視点311は、第1の表示領域311中の任意の好適な位置(たとえば、中心位置、非中心位置、中心の左側の位置、中心の右側の位置、中心の上方の位置、中心の下方の位置、任意の位置など)に位置し得る。別の例として、特定の実施形態では、第2の表示領域313は、第1の表示領域312を中心とし、または/および注視点311を中心とし得る。しかしながら、いくつかの他の実施形態では、第2の表示領域313は、第1の表示領域312を中心とする必要がないか、または注視点311を中心とする必要がないことがある。第1の表示領域312は、第2の表示領域313中の任意の好適な位置に位置し得る。第2の表示領域313は、第3の表示領域314中の任意の好適な位置に位置し得る。
【0047】
特定の実施形態では、ユーザの中心窩領域に対応する第1の表示領域312は、ユーザの注視点または注視方向の不確実性の程度に基づいて決定され得る。たとえば、システムは、10度の不確実性をもつユーザの注視方向と、±5度の不確実性をもつユーザの中心窩領域とを決定し得る。システムは、第1の表示領域312が、フル解像度の場合、±15度のユーザのビューアングルに対応するサイズを有し、第1の表示領域以外の他の表示領域中でより低い解像度を使用すると決定し得る。ここで説明される3つの表示領域は例示のためのものであり、表示領域分割はそれについて限定されないことは、注目に値する。システムは、ディスプレイを任意の好適な様式で任意の数の領域(たとえば、格子パターンによって分割された領域、共通中心領域(co-centered region)、重複形状によって画定される排他的領域など)に分割し得る。たとえば、システムは、格子パターンを使用してフル表示エリアをいくつかの表示領域に分割し、これらの表示領域の各々についてのレンダリング解像度を、ユーザの注視点に対するそれらの相対位置または/およびに基づいて決定し得る。各表示領域は、タイルの行列(たとえば、16個のタイル×16個のタイル)をカバーし、各タイルは、ピクセルの行列を含んでいる(たとえば、各タイルが16個のピクセル×16個のピクセルを有する)ことがある。表示領域のエッジ位置は、実装を簡略化するために何らかの整合(たとえば、16個のピクセル)に制約され得る。システムは、表示領域に対応する異なる画像領域中で異なる解像度を有するサブフレーム画像を生成し、対応するレンダリング解像度を使用してディスプレイの異なる表示領域中で画像の異なる部分をレンダリングし得る。
【0048】
特定の実施形態では、システムは、異なる表示領域中で異なるレンダリング解像度をもつ表示コンテンツをレンダリングし得る。(ユーザの注視が集中する)中心窩領域に対応する表示領域の場合、システムは、赤色、緑色、および青色チャネルについてフル解像度をもつピクセル値を計算し、表示し得る。中心窩領域外の表示領域の場合、ユーザの眼はそれらの領域中でより小さい視力(acuity)を有するので、システムは、1つまたは複数の色チャネルについてより低い解像度を使用し得る。システムは、最初に、ユーザの注視点に基づいてディスプレイの2つまたはそれ以上の表示領域を決定し、これらの表示領域の各々についてのレンダリング解像度を決定し得る。各表示領域のレンダリング解像度は、ユーザの注視点に対するその表示領域の距離に依存し得る。システムは、注視点からより遠い表示領域について、徐々により低いレンダリング解像度を使用し得る。たとえば、システムは、ユーザの注視点を含んでいる表示領域中では、フルレンダリング解像度を使用し、ユーザの注視点からより遠い表示領域中では、より低いレンダリング解像度を使用し得る。特定の実施形態では、システムは、(たとえば、1~2kHzサブフレームフレームレートにおいて)一連のフォービエイテッドサブフレーム画像を生成するために、グラフィックパイプラインまたは1つまたは複数の局所変換動作を使用し得る。フォービエイテッドサブフレーム画像の各々は、ディスプレイの表示領域に対応する異なる画像領域にわたって可変画像解像度を有し得る。システムは、ディスプレイの異なる表示領域中で異なるレンダリング解像度を使用してフォービエイテッドサブフレーム画像をレンダリングし得る。限定としてではなく一例として、システムは、それぞれ、第1の表示領域312、第2の表示領域313、および第3の表示領域314中で第1の解像度、第2の解像度、および第3の解像度をもつ、フォービエイテッドサブフレーム画像の表示コンテンツをレンダリングし得る。第1の解像度は、3つのレンダリング解像度のうちの最も高い解像度(たとえば、ディスプレイのフル解像度)であり得、第2および第3の解像度は、第1の解像度よりも低い低減された解像度であり得る。特に、第3の解像度は第2の解像度よりも低くなり得、第2の解像度は第1の解像度よりも低くなり得る。1つまたは複数の表示領域中で、低減されたレンダリング解像度を使用することによって、システムは、表示コンテンツを生成およびレンダリングするためのプロセスに関係する計算の量および電力消費量を低減し得る。
【0049】
図3Bは、赤色、緑色、および青色の3つの色チャネルのための3つの例示的なピクセルアレイ(たとえば、320、330、340)を示す。特定の実施形態では、システムは、3つの色チャネル(たとえば、赤色、緑色、および青色)をもつディスプレイを有し得、システムは、それぞれの色チャネルの1つまたは複数のクロマのピクセルをサブサンプリングし得る。言い換えれば、システムは、異なる色チャネルのピクセルが、他の色チャネルとは異なるサンプリング解像度を有することを可能にし得る。システムは、それぞれ、赤色、緑色、および青色チャネルのグレースケール値を決定するために、グラフィックパイプラインのリサンプリングプロセスを使用し得る。同じピクセルの赤色、緑色、および青色チャネルのグレースケール値は、互いに独立して決定され得る。特定の実施形態では、システムは、異なる色チャネル(たとえば、赤色、緑色、青色)のピクセルについて異なるサンプリング解像度を有するフォービエイテッド画像を生成し、レンダリングし得る。表示領域または画像領域内で、システムは、赤色、緑色、および青色チャネルのピクセルが、ユーザの中心窩領域からの距離に基づいてスクリーンの異なる部分を処理するときに(たとえば、互いに対して2のべき乗の)異なるサンプリング解像度を有することを可能にし得る。限定としてではなく一例として、表示領域に対応する画像領域内で、システムは、緑色チャネルのピクセルがフルサンプリング解像度を有することを可能にし、赤色および青色チャネルのピクセルが1/2サンプリング解像度を有することを可能にし得る。別の例として、表示領域に対応する画像領域内で、システムは、緑色チャネルのピクセルが1/2サンプリング解像度を有することを可能にし、赤色および緑色チャネルのピクセルが1/4サンプリング解像度を有することを可能にし得る。本開示では、画像またはディスプレイの解像度は、画像またはディスプレイのピクセルの数あるいは単位面積当たりのピクセルの数によって表され得ることは、注目に値する。いくつかのピクセル(たとえば、色チャネルの2Dアレイ中のピクセル)のサンプリング解像度は、そのグレースケール値が独立して計算されたピクセルの割合によって、または、独立して計算されたグレースケール値と、独立して計算されたグレースケール値に基づいてそのグレースケール値が決定される対応するピクセルの総数との比によって、表され得る。レンダリング解像度は、表示領域中で画像の一部分をレンダリングするために使用される解像度を指し得、レンダリング解像度は、レンダリングされる対応する画像部分のサンプリング解像度に対応し得る。
【0050】
特定の実施形態では、システムは、1つまたは複数の表示領域内の1つまたは複数の色チャネルのピクセルについて、フルサンプリング解像度または低減されたサンプリング解像度を使用し得る。特定の実施形態では、フルサンプリング解像度は、ディスプレイのフルピクセル解像度に対応し得、低減されたサンプリング解像度は、2のべき乗(すなわち、フルサンプリング解像度の1/2n、ここで、nは任意の好適な整数であり得る)でフルサンプリング解像度から低減されたサブサンプリング解像度であり得る。たとえば、低減されたサンプリング解像度は、フルサンプリング解像度の1/2、1/4、1/8、1/16などであり得る。フルサンプリング解像度の1/2nであるサンプリング解像度の場合、システムは、n×nピクセルを含んでいる各ピクセルグループについてのグレースケール値を独立して決定し得る。互いに対して2のべき乗のサンプリング解像度は例示のためのものであり、サンプリング解像度はそれについて限定されないことは、注目に値する。異なる色チャネルまたは/および異なる表示領域のサンプリング解像度は、互いに対して任意の好適な整数のべき乗の関係を有し得る。
【0051】
特定の実施形態では、フルサンプリング解像度をもつ2Dピクセルアレイの場合、システムは、2Dピクセルアレイの各ピクセルについての色値またはグレースケール値を(たとえば、グラフィックパイプラインのリサンプリングプロセスを使用して)独立して決定し得る。限定としてではなく一例として、緑色ピクセルアレイ320がフルサンプリング解像度を有するとき、システムは、緑色ピクセルアレイ320内の16個のピクセルの各々についてのグレースケール値を独立して決定し得る。特定の実施形態では、1/2サンプリング解像度を有する2Dピクセルアレイの場合、システムは、2Dピクセルアレイの各2×2ピクセルサブアレイ(たとえば、垂直方向に沿った2つのピクセルおよび水平方向に沿った2つのピクセル)についての色値またはグレースケール値を(たとえば、グラフィックパイプラインのリサンプリングプロセスを使用して)独立して決定し得る。システムは、各ピクセルサブアレイ内のピクセルについてのそれぞれのグレースケール値を決定するために、(たとえば、ディスプレイエンジンの表示ブロックによる、またはディスプレイシステム内の1つまたは複数のコントローラによる)複製または補間プロセスを使用し得る。複製または補間プロセスは、輝度補正およびディザリングプロセスより前に表示ブロックによって実施されるか、またはディスプレイシステムの1つまたは複数のコントローラによって実施され得る。複製および補間プロセスは、パイプラインプロセス(たとえば、タイル/表面ペア決定プロセス、リサンプリングプロセス、フィルタ処理プロセスなど)よりも少ない計算リソースを必要とし、少ない電力を消費し得る。その結果、システムは、2Dアレイ中のピクセルの数のグレースケール値の1/4のみを独立して計算することによって、計算リソース使用量および電力消費量を低減し得る。限定としてではなく一例として、赤色ピクセルアレイ330が1/2サンプリング解像度を有するとき、システムは、[0,0]、[0,1]、[1,0]、および[1,1]のピクセルを含む第1のピクセルサブアレイと、[0,2]、[0,3]、[1,2]、および[1,3]のピクセルを含む第2のピクセルサブアレイと、[2,0]、[2,1]、[3,0]、および[3,1]のピクセルを含む第3のピクセルサブアレイと、[2,2]、[2,3]、[3,2]、および[3,3]のピクセルを含む第4のピクセルサブアレイとを含む2×2ピクセルサブアレイの各々についてのグレースケール値を独立して決定し得る。その結果、システムは、2Dピクセルアレイ中の16個のピクセルについて4つの独立したグレースケール値のみを計算する必要があり得る。
【0052】
特定の実施形態では、1/4サンプリング解像度を有する2Dピクセルアレイの場合、システムは、2Dピクセルアレイの各4×4ピクセルサブアレイ(たとえば、垂直方向に沿った4つのピクセルおよび水平方向に沿った4つのピクセル)の色値またはグレースケール値を(たとえば、グラフィックパイプラインのリサンプリングプロセスを使用して)独立して決定し得る。システムは、各ピクセルサブアレイ内のピクセルについてのそれぞれのグレースケール値を決定するために、(たとえば、ディスプレイエンジンの表示ブロックによる、またはディスプレイシステム内の1つまたは複数のコントローラによる)複製または補間プロセスを使用し得る。その結果、システムは、2Dアレイ中のピクセルの数のグレースケール値の1/16のみを計算する必要があり得る。限定としてではなく一例として、青色ピクセルアレイ340が1/4サンプリング解像度を有するとき、システムは、青色ピクセルアレイ340中のすべての16個のピクセルを含む4×4ピクセルグループについてのグレースケール値を独立して決定し得る。16個のピクセルのグレースケール値は、同じグレースケール値を複製すること、または独立して決定された複数のグレースケール値を補間することによって決定され得る。その結果、システムは、2Dアレイ中の16個のピクセルについて1つのグレースケール値のみを独立して計算する必要があり得る。1/2および1/4サンプリング解像度は例示のためのものであり、低減されたサンプリング解像度はそれについて限定されないことは、注目に値する。異なる色チャネルまたは/および異なる表示領域の低減されたサンプリング解像度は、フルサンプリング解像度との関係を有し、任意の好適な整数のべき乗(すなわち、フルサンプリング解像度の1/mn、ここで、mおよびnは任意の好適な整数であり得る)の互いとの関係を有し得る。
【0053】
特定の実施形態では、システムは、異なる色チャネルについて異なるピクセルサイズを有するディスプレイ(たとえば、μLEDディスプレイ)を使用し得る。たとえば、システムは、緑色ピクセルの2倍の大きさ(面積4倍)である赤色ピクセルおよび青色ピクセルを有するμLEDディスプレイを使用し得る。表示領域中の赤色、緑色、および青色ピクセルの数は、1:4:1の比を有し得、各赤色ピクセルおよび各青色ピクセルが4つの緑色ピクセルに対応する。特定の実施形態では、システムは、3つの色チャネルについて同じサイズのピクセルを有し、各色チャネルについて同じ数のピクセルを有する(たとえば、赤色、緑色、および青色ピクセルの比が表示領域中で1:1:1である)、ディスプレイを使用し得る。特定の実施形態では、システムは、3つの色チャネルについて同じサイズのピクセルを有するが、異なる色チャネルについて異なる数のピクセルを有する(たとえば、赤色、緑色、および青色ピクセルの数の比が表示領域中で1:2:1である)、ディスプレイを使用し得る。本開示で説明されるシステムおよび方法は、ディスプレイのタイプに依存せず、たとえば、限定はしないが、μLEDディスプレイ、OLEDディスプレイ、AMLEDディスプレイ、LCDディスプレイ、LEDディスプレイ、あるいは異なる色チャネルの任意のピクセルサイズまたは/および数ピクセルの任意の比をもつ任意の好適なディスプレイを含む、任意のタイプのディスプレイに適用可能であることは、注目に値する。本開示で説明されるシステムおよび方法はRGB色チャネルをもつディスプレイに限定されないことは、注目に値する。たとえば、特定の実施形態では、システムは、人間がルミナンスほど正確に色を知覚しないことを利用して、白黒ルミナンスチャネルと色情報についての2つの他のチャネルとをもつディスプレイを有し得る。1つまたは複数の色チャネルまたはルミナンスチャネルは、水平または/および垂直方向においてサブサンプリングされ得る。本開示で説明されるシステムおよび方法は、このタイプのディスプレイにも適用可能である。
【0054】
図3Cは、異なる色チャネルおよび異なる表示領域のサンプリング解像度を決定するための例示的な方式300Cを示す。特定の実施形態では、システムは、いくつかの表示領域と、これらの領域についてのいくつかの徐々により低いレンダリング解像度とを、ユーザの注視点に対するそれらの相対位置または/および距離に基づいて決定し得る。本開示の前のセクションにおいて説明されたように、システムは、異なる色チャネルが異なるサンプリング解像度を有することを可能にし得る。異なる色チャネルのサンプリング解像度は、独立しているか、または互いに関係し(たとえば、2のべき乗であり)得る。特定の実施形態では、システムは、緑色ピクセルよりも大きいサイズ(たとえば、サイズが2倍および面積が4倍)を有する赤色および青色ピクセルをもつディスプレイを有し得る。表示領域中の赤色、緑色、および青色ピクセルの数は、1:4:1の比を有し得、各赤色ピクセルおよび各青色ピクセルが4つの緑色ピクセルに対応する。特定の実施形態では、システムは、同じサイズの赤色、緑色、および青色ピクセルを有するが、赤色または青色ピクセルよりも多くの緑色ピクセルを有し得る(たとえば、RGBピクセルの数の比が1:2:1であり得る)、ディスプレイを有し得る。ディスプレイの緑色ピクセルは、赤色または青色ピクセルよりも大きい割合の光密度(たとえば、70~80%)を照明し得る。特定の実施形態では、システムは、同じサイズの赤色、緑色、および青色ピクセルを有し、同じ数の緑色、赤色または青色ピクセルを有し得る(たとえば、RGBピクセルの数の比が1:1:1であり得る)、ディスプレイを有し得る。特定の実施形態では、システムは、赤色および青色チャネルよりも緑色チャネルについて相対的に高いサンプリング解像度を使用し得る。ただし、本開示で説明されるシステムおよび方法は、異なる色チャネルの任意のピクセルサイズおよび任意の数のピクセルをもつ任意のタイプのディスプレイに適用可能であることは、注目に値する。
【0055】
限定としてではなく一例として、システムは、ユーザの注視点に対応する(たとえば、ユーザの注視点を中心とするかまたはそれを含んでいる)第1の表示領域を決定し、各々が注視点に対するより長い距離を有する、第2、第3、および第4の表示領域を決定し得る。ユーザの注視が集中する中心窩領域に対応する第1の表示領域の場合、システムは、フルサンプリング解像度を使用し、各色チャネルの各ピクセルについての独立したグレースケール値を計算し得る。第1の表示領域中のフルサンプリング解像度は、この領域中の表示されたコンテンツがシャープエッジを有することを可能にし、この領域中の表示コンテンツのクリアなビューを可能にし得る。他の表示領域の場合、ユーザはこれらの領域中でそれほど視力を有しないことがあるので、システムは、低減されたサンプリング解像度を使用し得る。
【0056】
別の例として、第2の表示領域の場合、システムは、緑色チャネルについてフルサンプリング解像度を使用し、赤色チャネルと青色チャネルの両方について1/2サンプリング解像度を使用し得る。その結果、この表示領域の3つの色チャネルのすべてのピクセルについて、システムは、(1/2の対応する計算低減レートで)この領域中のピクセルの総数の1/2についてのグレースケール値のみを独立して計算する必要があり得る。たとえば、
図3B中の320、330、および340のピクセルアレイを参照すると、緑色チャネルがフルサンプリング解像度を有し、赤色および青色チャネルが1/2サンプリング解像度を有するとき、独立して計算される必要があるグレースケール値の数は、それぞれ、緑色、赤色、および青色の色チャネルについて、16個、4つ、および4つであり得、24個の独立したグレースケール値の総数となり、これは、3つのピクセルアレイ320、330、および340の合計ですべての48個のピクセルの1/2である。
【0057】
また別の例として、第3の表示領域の場合、システムは、緑色、赤色、および青色のすべての3つの色チャネルについて1/2サンプリング解像度を使用し得る。その結果、この領域中のすべての3つの色チャネル中のすべてのピクセルについて、システムは、(1/4の対応する計算低減レートで)この領域のピクセルの総数の1/4についてのグレースケール値のみを独立して計算する必要があり得る。たとえば、
図3B中の320、330、および340のピクセルアレイを参照すると、すべての3つの色チャネルが1/2サンプリング解像度を有するとき、独立して計算される必要があるグレースケール値の数は、それぞれ、緑色、赤色、および青色の色チャネルについて、4つ、4つ、および4つであり得る。独立したグレースケール値の総数は12個であり得、これは、3つのピクセルアレイ320、330、および340中のすべての48個のピクセルの1/4である。
【0058】
また別の例として、第4の表示領域の場合、システムは、緑色チャネルについて1/2サンプリング解像度を使用し得、赤色および青色の色チャネルについて1/4サンプリング解像度を使用し得る。その結果、この領域のすべての3つの色チャネル中のすべてのピクセルについて、システムは、(1/8の対応する計算低減レートで)この領域中のピクセルの総数の1/8についてのグレースケール値のみを独立して計算する必要があり得る。たとえば、
図3B中の320、330、および340のピクセルアレイを参照すると、緑色チャネルが1/2サンプリング解像度を有し、青色および赤色チャネルが1/4サンプリング解像度を有するとき、独立して計算される必要があるグレースケール値の数は、それぞれ、緑色、赤色、および青色の色チャネルについて、4つ、1つ、および1つであり得る。独立したグレースケール値の総数は6つであり得、これは、3つのピクセルアレイ320、330、および340中のすべての48個のピクセルの1/8である。その結果、システムは、低減されたサンプリング解像度をもつ画像領域を生成するための計算の量を低減し得る。ここで説明されるサンプリング解像度方式は例示のためのものであり、サンプリング解像度決定はそれについて限定されないことは、注目に値する。たとえば、システムは、3つの色チャネルについて任意のサンプリング解像度の任意の好適な組合せを使用し得る。異なる色チャネルの異なるサンプリング解像度の関係は、互いに対する2のべき乗の関係に限定されないことは、注目に値する。その関係は、任意の好適な整数のべき乗であり得る。
【0059】
特定の実施形態では、システムは、異なるレンダリング解像度をもつ表示コンテンツをレンダリングするための、特定のサイズのいくつかの表示領域を決定し得る。限定としてではなく一例として、
図3Aを参照すると、システムは、フルディスプレイサイズ310の1/4(フルディスプレイの1/4の幅および1/4の高さ)であり、フル表示エリアの1/16をカバーする、第1の表示領域312を決定し得る。システムは、第1の表示領域312を除く第2の表示領域313を決定し得る。第2の表示領域は、フルディスプレイサイズの1/2(フル表示エリアの1/4をカバーする、フルディスプレイの幅の1/2および1/2の高さ)である(第1の表示領域312を除く)矩形形状に対応し得る。システムは、フル表示エリアの残りのエリアを含み、フル表示エリアの3/4をカバーする、第3の表示領域314を決定し得る。特定の実施形態では、フル表示エリアは、2560個のピクセル×1792個のピクセルの解像度を有し得る。第1の表示領域312は、ユーザの注視点311をほぼ中心とし得る(たとえば、第1の表示領域の中心が、ユーザの注視点311に対するしきい値距離内にある)。表示領域のエッジ位置は、実装を簡略化するために何らかの整合(たとえば、16個のピクセル)に制約され得る。
【0060】
図3Dは、計算量を低減するために異なる色チャネルおよび異なる表示領域について異なるサンプリング解像度を使用する例示的な方式300Dを示す。特定の実施形態では、第1の表示領域は、フルサンプリング解像度を有するすべての3つの色チャネルを有し得る。システムは、この表示領域中の各色チャネルの各ピクセルについてのグレースケール値を独立して計算し得る。第2の表示領域は、緑色チャネルについてフルサンプリング解像度を使用し、赤色および青色チャネルについて1/2サンプリング解像度を使用し得る。本開示の前のセクションにおいて説明されたように、システムは、(1/2の計算低減レートで)この領域中のピクセルの総数の1/2についてのグレースケール値のみを独立して計算する必要があり得る。第2の表示領域はフル表示エリアの3/16をカバーするので、システムは、第2の表示領域について、ディスプレイの総ピクセルの3/32についてのグレースケール値のみを独立して計算する必要があり得る(たとえば、第2の表示領域によって寄与される、ディスプレイの総ピクセルの3/16から3/32への計算低減)。第3の表示領域は、すべての3つの色チャネルについて1/2サンプリング解像度を使用し得る。本開示の前のセクションにおいて説明されたように、システムは、(1/4の計算低減レートで)この領域中のピクセルの総数の1/4についてのグレースケール値のみを独立して計算する必要があり得る。第3の表示領域はフル表示エリアの3/4をカバーするので、システムは、第2の表示領域について、ディスプレイの総ピクセルの3/16についてのグレースケール値のみを独立して計算する必要があり得る(たとえば、第3の表示領域によって寄与される、ディスプレイの総ピクセルの3/4から3/16への計算低減)。その結果、システムは、この例示的な方式を使用することによる、ピクセル処理に対する計算低減について、11/32(すなわち、1/16+3/32+3/16)の計算低減レートまたはほぼ3:1の低減を有し得る。したがって、システムは、ディスプレイ背面に表示データを送信するために、バス帯域幅のほぼ1/3のみを必要とし得る。
【0061】
特定の実施形態では、システムは、(フルサンプリング解像度など、比較的より高いサンプリング解像度を有し得る)第1の表示領域についてより小さい領域を使用することによって、または/および他の表示領域中でさらにより低いサンプリング解像度を使用することによって、ピクセル値を決定するための計算をさらに低減し得る。限定としてではなく一例として、システムは、フルディスプレイサイズの1/5の幅および1/5の高さ(すなわち、フル表示エリアの1/25の面積)をもつ第1の表示領域を使用し得る。別の例として、システムは、フルディスプレイサイズの1/6の幅および1/6の高さ(すなわち、フル表示エリアの1/36の面積)をもつ第1の表示領域を使用し得る。別の例として、システムは、フルディスプレイサイズの1/8の幅および1/8の高さ(すなわち、フル表示エリアの1/64の面積)をもつ第1の表示領域を使用し得る。ここで説明される第1の表示領域のサイズは例示のためのものであり、第1の表示領域のサイズはそれについて限定されず、任意の好適なサイズであり得ることは、注目に値する。
【0062】
特定の実施形態では、システムは、1つまたは複数の表示領域中でさらにより低いサンプリング解像度を使用することによって、ピクセル値を決定するための計算の量をさらに低減し得る。限定としてではなく一例として、第3の表示領域中で、システムは、緑色チャネルについて1/2解像度を使用し、赤色および青色チャネルについて1/4解像度を使用し得る。第3の表示領域の場合、システムは、ディスプレイの総ピクセルの3/32(すなわち、1/8×3/4)についてのみグレースケール値を独立して計算する必要があり得る。
図3Dに示されているように同じサイズおよびサンプリング解像度を有する他の領域の場合、システムは、ディスプレイのすべてのピクセルについて7/32(すなわち、1/16+3/32+3/32=7/32)またはほぼ1/4の総計算低減レートを有し得る。
【0063】
特定の実施形態では、システムは、1つまたは複数の表示領域中で低減されたレンダリング解像度を用いたフォービエイテッドレンダリングを使用することによって、データバス上のワーストケース走査線帯域幅(または行当たりのピーク帯域幅)を低減し得る。たとえば、
図3Dに示されている方式を使用する、
図3Aに示されている表示領域の場合、第1の表示領域は、フルサンプリング解像度をもつすべての3つの色チャネルを有し、したがって、フルピクセル密度を有し得る。第2の表示領域は、緑色チャネルについてフルサンプリング解像度を有し、赤色および青色チャネルについて1/2サンプリング解像度を有し、したがって、1/2ピクセル密度を有し得る。第3の表示領域は、すべての3つの色チャネルについて1/2サンプリング解像度を有し、したがって、1/4ピクセル密度を有し得る。第1の表示領域と交差する行は、フルピクセル密度をもつ第1の表示領域中に入るその行の1/4個のピクセルと、1/2ピクセル密度をもつ第2の表示領域中に入るその行の1/4個のピクセルと、1/4ピクセル密度をもつ第3の表示領域中に入るその行の1/2個のピクセルとを有し得る。その結果、すべての3つの表示領域と交差する行についてのワーストケース走査線帯域幅は、ディスプレイ全体についてのフル解像度レンダリングと比較して、1/2=1/4×1+1/2×1/4+1/4×1/2(すなわち、行のピクセル密度×ピクセル数割合の和)によって決定されるように、1/2の低減比(または2:1の圧縮レート)を有し得る。したがって、データバス上の行当たりのピーク帯域幅は、この例では、同じ2:1の低減比であり得る。
【0064】
特定の実施形態では、システムは、フォービエイテッドレンダリングのために異なる画像領域中で可変解像度をもつ一連のフォービエイテッドサブフレーム画像を生成し得る。フル解像度サブフレーム画像を生成することと比較して、フォービエイテッドサブフレーム画像を生成することは、より少ない計算リソースを使用し、より少ない電力を消費し得る。たとえば、より低い解像度をもつ画像領域の場合、システムは、変換ブロックによるタイル/表面ペア決定プロセス中に、より少ない光線を投射し、したがって、電力消費量および計算リソース使用量を低減し得る。別の例として、より低い解像度をもつ画像領域の場合、グラフィックパイプラインは、ピクセルブロックによるリサンプリングプロセス中に、より少数のピクセルについて計算し、したがって、電力消費量および計算リソース使用量を低減し得る。別の例として、フォービエイテッドサブフレーム画像の場合、システムは、表示ブロックによるブレンディング、補正、滅菌プロセス中に、より大きい表示エリア(たとえば、より多数のピクセルまたはピクセルタイル)を処理し、したがって、電力消費量および計算リソース使用量を低減し得る。別の例として、低減されたサンプリング解像度をもつ画像領域を生成するために、システムは、より低い解像度をもつソースデータ(たとえば、より低い解像度またはより大きいサイズをもつMIPマップテクスチャデータ)にアクセスし、したがって、テクスチャデータにアクセスするためにより少ないメモリ読取りを実施し得る。さらに、フォービエイテッドサブフレーム画像を使用することによって、システムは、(限られた帯域幅を有し得る)データバスを通してディスプレイにピクセル値を送信するための、より小さいデータ変換帯域幅を必要とし得る。
【0065】
図4A~
図4Dは、システムが、1つまたは複数の画像領域中のサンプリング解像度を低減することによって、同じ計算リソースを使用してより多数のピクセルタイルを処理することを可能にする、例示的なフレームワークを示す。限定としてではなく一例として、システムは、4×4ピクセルタイル(たとえば、タイル411、タイル412、タイル413、タイル414、タイル421、タイル422、タイル423、タイル424、タイル431、タイル432、タイル433、タイル434、タイル441、タイル442、タイル443、タイル444)を含むタイルアレイ400A中のピクセルを処理する必要があり得る。各タイルは、任意の好適なサイズのピクセルのアレイ(すなわち、n×nピクセルアレイ、ここで、nは任意の整数であり得る)、たとえば、4×4ピクセルアレイ、16×16ピクセルアレイ、64×64ピクセルアレイなどを含み得る。特定の実施形態では、各ピクセルタイルは、赤色、緑色、および青色チャネルの3つのサブクロマピクセル(sub-chroma pixel)を含む1つの単一のピクセルに対応し得る。この例では、赤色、緑色、および青色チャネルのサブクロマピクセルは、1:1:1の比の数または/および同じピクセルサイズを有し得、各タイル(たとえば、タイル411、タイル412、タイル421、タイル422)は、16×16ピクセルアレイ(たとえば、
図3Bに示されているように3つの色チャネルの3つのピクセルアレイ320、330、340の組合せ)を含み得る。
【0066】
特定の実施形態では、(たとえば、ユーザの中心窩領域または注視点に対応する領域のための)フル解像度画像領域を生成するために、システムは、
図4Bの方式400Bのブロック410、420、および430によって表される計算リソース(たとえば、メモリ、バッファ、キャッシュ、計算ユニット、フィルタ、ある帯域幅をもつデータバス、または任意の画像処理リソース)のグループを使用して、ピクセルタイルアレイ400A中のピクセルタイルを処理し得る。特定の実施形態では、各ブロックは、色チャネルのピクセルタイルに専用であり、(その色チャネルの)4つのピクセルタイルを同時に処理し得る。たとえば、ブロック410は、緑色チャネルに専用であり、411G、412G、421G、および422Gの4つの緑色タイルを同時に処理し得る。同様に、ブロック420は、赤色チャネルに専用であり、411R、412R、421R、および422Rの4つの赤色タイルを同時に処理し得る。ブロック430は、青色チャネルに専用であり、411B、412B、421B、および422Bの4つの青色タイルを同時に処理し得る。その結果、410、420、および430の3つのブロックによって表される計算リソースのグループは、(たとえば、
図4A中の画像エリア401中の)画像の一部分をカバーする4つのピクセルタイルを同時に処理し得る。対応して、システムは、各ブロック上の同時に処理されたピクセルタイルによって決定された量の、特定の帯域幅をもつデータを取り出すために、それぞれのデータバス(たとえば、データバス491、492、および493)を通してメモリにアクセスし得る。
【0067】
特定の実施形態では、(たとえば、ユーザの中心窩領域以外の領域のための)低減されたサンプリング解像度をもつ解像度画像領域を生成するために、システムは、ブロック410、ブロック420、およびブロック430によって表される計算リソース(たとえば、メモリ、バッファ、キャッシュ、計算ユニット、フィルタ、ある帯域幅をもつデータバス、または任意の画像処理リソース)の同じグループを使用して、より大きい画像エリアを同時に処理し得る。たとえば、緑色チャネルについてフルサンプリング解像度をもち、赤色および青色チャネルについて1/2サンプリング解像度をもつ画像領域の場合、システムは、緑色チャネルの4つのピクセルごとに赤色または青色チャネルの各ピクセルについてのグレースケール値を独立して計算する必要があり得る。言い換えれば、赤色、緑色、および青色チャネルのサブクロマピクセルは、1:4:1の数の比を有し得る。システムは、
図4Dに示されているようにピクセルタイルを処理するためのリソースの使用量を最適化し得る。たとえば、ブロック410および420は、緑色チャネルに専用であり、411G、412G、413G、414G、421G、422G、423G、および424Gの8つの緑色タイルを同時に処理し得る。ブロック430は、赤色および緑色チャネルを処理し、411Rおよび413Rの2つの緑色タイルならびに411Rおよび413Rの2つの赤色タイルを同時に処理するために、使用され得る。その結果、
図4D中の方式400Dの410、420、および430の3つのブロックによって表される計算リソースのグループは、
図4Aに示されているタイルアレイ400A上の画像エリア401の2倍大きい(
図4C中のタイルアレイ400C中の)画像エリア402を同時に処理し得る。対応して、同じサイズの画像エリアを生成または処理するために、システムは、それぞれのデータバス(たとえば、データバス491、492、および493)からのより小さい帯域幅を必要とし、画像生成または処理プロセス中により少ない量のデータを取り出し得る。したがって、システムは、低減されたメモリ読取りおよびデータ処理のために、フル解像度画像を処理する場合と同じ量の計算リソースを使用して、所与のクロックサイクルにおいてより大きい画像エリア(たとえば、より多数のピクセルまたはピクセルタイル)を処理し、したがって、システム性能の効率を改善し得る。
【0068】
図4A~
図4Dに示されているフレームワークが任意の特定の計算リソースに限定されないことは、注目に値する。たとえば、ブロック410、420、および430は、計算ユニット、メモリ、フィルタ、バッファ、キャッシュ、データバス帯域幅、または任意の好適なリソースを表し得る。別の例として、ピクセルタイルおよび対応する処理ブロックの配置は、任意の配置であり得る、同じブロックサイズがより多くのピクセルタイル(たとえば、サブサンプリングの前の、2倍の数のピクセル)をホストまたは/および処理することを可能にする。1つまたは複数の画像領域中で、低減された解像度を用いたフォービエイテッドレンダリングを使用することによって、システムは、同じ量の計算リソースを使用してより大きい画像エリアを処理し、したがって、画像レンダリングプロセスのためにより少ない電力および時間を消費し得る。さらに、低減されたサンプリング解像度をもつ画像領域を生成または処理すること、システムは、より低い解像度のテクスチャデータを使用し、より少ないテクスチャメモリ読取り動作を有し、したがって、電力消費量をさらに低減し得る。たとえば、緑色チャネルについてフル解像度をもち、赤色および青色について1/2解像度をもつ領域を考慮すると、システムは、緑色についてフル解像度のソースデータにアクセスし、各ピクセルについて別個の値を計算し得、この値はディスプレイ背面に送られることになる。しかしながら、赤色および青色について、システムは、1つの1/4解像度のソースデータにアクセスし、ピクセルの各2×2について1つの値を計算し得る。これらの値は、各々、ディスプレイ背面に送られることになり、ディスプレイ背面は、それらの値を複製して2×2表示ピクセルにし得る。その結果、この方法は、より低い解像度のサブクロマピクセルのために必要とされるメモリストレージ、メモリアクセスおよび処理時間を低減するだけでなく、ディスプレイを駆動する、表示ブロックから背面までのデータバス上の帯域幅をも低減する。
【0069】
図5A~
図5Cは、ピクセルサブアレイ内のピクセルについてのグレースケール値を決定するための例示的な複製プロセスおよび補間プロセスを示す。
図5Aは、1/2サンプリング解像度を有する例示的なピクセルアレイを示す。システムは、
図5Aに示されているように、ピクセルアレイ510中の各2×2ピクセルサブアレイについてのグレースケール値を独立して計算し得、ここで、黒いドットが、独立して計算されたグレースケール値を有するピクセルを表し、白抜きのドットが、そのグレースケール値が独立して計算されない(および複製または補間プロセスによって決定される)ピクセルを表す。たとえば、システムは、それぞれの2×2ピクセルサブアレイについてピクセル[0,0]、[0,2]、[2,0]、および[2,2]についてのグレースケール値を独立して計算し得る。次いで、システムは、それぞれの2×2ピクセルサブアレイ内の各ピクセルについてのピクセル値を決定するために、複製プロセスまたは補間プロセスを使用し得る。
図5Bは、サブアレイ511内のすべてのピクセルについてのグレースケール値を決定するための例示的な複製プロセスを示す。システムは、ピクセル[0,0]のグレースケール値を複製し、ピクセル[0,1]、[1,0]、および[1,1]について同じ値を使用し得る。
図5Cは、サブアレイ515内のすべてのピクセルについてのグレースケール値を決定するための例示的な補間プロセスを示す。たとえば、システムは、それぞれ、[0,0]と[2,0]、[0,0]と[0,2]、[0,2]と[2,2]、および[2,0]と[2,2]のピクセルペアのグレースケール値を補間することによって、ピクセル[1,0]、[0,1]、[1,2]および[2,1]のグレースケール値を決定し得る。別の例として、システムは、ピクセル[0,0]、[0,2]、[2,0]、および[2,2]の任意の好適な組合せを補間することによって、ピクセル[1,1]についてのグレースケール値を決定し得る。ピクセルアレイ510中のピクセルは任意の色チャネルのピクセルであり得ることは、注目に値する。ここで示される複製プロセスおよび補間プロセスは例示のためのものであり、複製プロセスおよび補間プロセスはそれについて限定されないことは、注目に値する。たとえば、複製プロセスは、任意のサイズをもつ任意のサブアレイのピクセルについてのグレースケール値を決定するために使用され得る。別の例として、補間プロセスは、(2つのピクセルに限定されない)任意の数の関係するピクセルに基づき得る。別の例として、補間プロセスは、画像の1つまたは複数の部分の平均輝度を維持するために加重平均化計算に基づき得る。その結果、システムは、フォービエイティングの観点(foveating perspective)からグレースケール値に基づいて画像の複写された領域を選択的に決定およびレンダリングし、レンダリングプロセスに関係する計算の量を低減し得る。
【0070】
特定の実施形態では、複製プロセスまたは/および補間プロセスは、輝度補正およびディザリングプロセスの前にディスプレイエンジンの表示ブロックによって実施され得る。特定の実施形態では、複製プロセスまたは/および補間プロセスは、ピクセルデータがディスプレイに送信された後にディスプレイシステムによって(たとえば、ディスプレイの1つまたは複数のコントローラによって)実施され得る。たとえば、システムは、低減されたサンプリング解像度をもつピクセル値をディスプレイシステムに送り(これは、送信するためにより少ないデータバス帯域幅を必要とする)、ピクセル値データに、同じまたは別個のデータストリーム(たとえば、サイドチャネル)中で、対応するピクセル値をディスプレイにマッピングする(または、物理的ピクセルアレイに送信されている、タイル当たりのピクセル密度をマッピングする)ためのロケーション情報(たとえば、それぞれの物理的ピクセルが関連するサブアレイまたはピクセルロケーション)を送り得る。システムは、複製および補間動作を実施するためのドライバ論理またはコントローラを含み得るディスプレイシステム(たとえば、LEDディスプレイまたはμLEDディスプレイ)を含み得る。複製プロセスまたは/および複写プロセスを使用することによって、システムは、フォービエイテッドレンダリングによる計算リソース節約および電力節約をダウンストリームレンダリングパイプラインに拡張し得る。
【0071】
特定の実施形態では、システムは、フォービエイテッド画像の1つまたは複数の部分中のコントラストまたは/および平均輝度を維持し得る。特定の実施形態では、システムは、コントラストまたは/および平均輝度を維持するために、フォービエイテッド画像を生成するために連続的により低い解像度においてソースデータ(たとえば、MIPマップテクスチャデータ)を前処理し、ソースデータにアクセスし得る。特定の実施形態では、システムは、ディスプレイ背面にピクセル値を送る前に、コントラストまたは/および平均輝度を維持するために、前に、計算されたピクセル値にシャープネスフィルタを適用し得る。この場合、フルサンプリング解像度をもつピクセルはフィルタ処理される必要がないことがあり、低減されたサンプリング解像度をもつピクセルのみがフィルタ処理される必要があり得る。たとえば、
図3Aに示されている表示領域および
図3Dに示されているサンプリング解像度方式の場合、第1の表示領域中のピクセルおよび第2の表示領域の緑色チャネルのピクセルは、それらのピクセルがフルサンプリング解像度を有するので、フィルタ処理される必要がないことがある。第2のディスプレイの赤色および青色チャネルのピクセルおよび第3の表示領域のすべてのピクセルは、対応するピクセルのコントラストおよび平均輝度を維持するために、フィルタ処理される必要があり得る。
【0072】
図6は、フォービエイテッドレンダリングのための例示的な方法600を示す。方法600はステップ610において開始し得、コンピューティングシステムは、第1のフレームレート(たとえば、30~90Hzのメインフレームレート)において生成された第1のレンダリングされたフレーム(たとえば、メインフレーム画像)にアクセスし得る。ステップ620において、システムは、第1のレンダリングされたフレームに基づいて、第1のフレームレートよりも高い第2のフレームレートにおいてサブフレームを生成し得る。サブフレームのうちの第1のサブフレームは、センサーデータに基づいてユーザの視線方向を決定することと、視線方向に基づいて、少なくとも、ユーザの中心窩焦点(たとえば、注視点)を包含する第1の視線領域と第1の視線領域を除く第2の視線領域とを決定することと、第1のサブフレームについて、第1のサンプリング解像度を使用して第1の視線領域に対応する色値を決定し、第1のサンプリング解像度よりも低い第2のサンプリング解像度を使用して第2の視線領域に対応する色値を決定することとによって、生成され得る。ステップ630において、システムは、第2のフレームレートにおいて表示のためにサブフレームを出力し得る。
【0073】
特定の実施形態では、システムは、少なくとも変換ブロックとピクセルブロックとを含むグラフィックパイプラインを使用して第1のサブフレームを生成し得る。システムは、変換ブロックを使用して、タイルと表面との間の交差を決定するためにいくつかの光線をいくつかの表面に投射することによっていくつかのタイル-表面ペアを決定し得る。システムは、ピクセルブロックを使用して、複数のタイル-表面ペアに基づいて第1および第2のビュー領域に対応する色値を決定し得る。特定の実施形態では、変換ブロックは、(第1のサンプリング解像度に関連する)第1の視線領域に対応する色値よりも、(第2のサンプリング解像度に関連する)第2の視線領域に対応する色値を決定するためにより少量の光線を投射し得る。特定の実施形態では、システムは、ピクセルブロックによって、第1のサンプリング解像度を使用して表面の第1のセットをサンプリングすることによって第1の視線領域に対応する色値を決定し得る。システムは、ピクセルブロックによって、第2のサンプリング解像度を使用して表面の第2のセットをサンプリングすることによって第2の視線領域に対応する色値を決定し得る。ピクセルブロックは、第1の視線領域に対応する色値よりも、第2のサンプルビュー領域に対応する色値を決定するためにより少量の計算を実施し得る。
【0074】
特定の実施形態では、第2の視線領域に対応するピクセルのグループの第1の色チャネルが、第2のサンプリング解像度に関連し得る。第2の視線領域に対応するピクセルのグループの第2の色チャネルが、第2のサンプリング解像度とは異なる第3のサンプリング解像度に関連し得る。特定の実施形態では、システムは、第2の視線領域に対応するピクセルのグループの第1の色チャネルの各n×nピクセルアレイについてのグレースケール値を独立して決定し得、nの値が、第2のサンプリング解像度に基づいて決定され得る。特定の実施形態では、システムは、第2の視線領域に対応するピクセルのグループの第2の色チャネルの各m×mピクセルについてのグレースケール値を独立して決定し得、mの値が、第2の色チャネルに関連する第3の解像度に基づいて決定され得る。特定の実施形態では、第1の色チャネルの第2のサンプリング解像度と第2の色チャネルの第3のサンプリング解像度とは、2のべき乗の関係を有し得る。特定の実施形態では、システムは、ディスプレイシステムによって実施され得る複製プロセスに基づいてn×nピクセルアレイ内の各ピクセルについてのグレースケール値を決定し得る。特定の実施形態では、システムは、輝度補正プロセスおよびディザリングプロセスより前にグラフィックパイプラインの表示ブロックによって実施される補間プロセスに基づいて、n×nピクセルアレイ内の各ピクセルについてのグレースケール値を決定し得る。
【0075】
特定の実施形態では、システムは、第1の視線領域と第2の視線領域とを除く第3の視線領域を決定し得る。第1の視線領域、第2の視線領域、および第3の視線領域のそれぞれの色値は、徐々により低いサンプリング解像度に基づいて決定され得る。特定の実施形態では、システムは、ソースデータに基づいて第1のサブフレームを生成し得る。システムは、第1のサブフレームを生成するために、連続的により低い解像度においてソースデータを前処理し、第1のサブフレームを生成しながら、連続的により低い解像度においてソースデータにアクセスし得る。特定の実施形態では、システムは、第2の視線領域中の1つまたは複数の物体に関連する1つまたは複数のエッジ上のコントラストレベルを維持するために、第2の視線領域に対応するいくつかのピクセルにシャープネスフィルタを適用し得る。特定の実施形態では、システムは、第2の視線領域中の平均輝度を維持するために、第2の視線領域中の第1のサブフレームのいくつかのピクセルにシャープネスフィルタを適用し得る。特定の実施形態では、第1のフレームレートは30~90Hzの第1の範囲内にあり得、第2のフレームレートは1~2kHzの第2の範囲内にあり得る。
【0076】
特定の実施形態は、適切な場合、
図6の方法の1つまたは複数のステップを繰り返し得る。本開示は、
図6の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、
図6の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、
図6の方法の特定のステップを含む、フォービエイテッドレンダリングのための例示的な方法を説明し、示すが、本開示は、適切な場合、
図6の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、フォービエイテッドレンダリングのための任意の好適な方法を企図する。さらに、本開示は、
図6の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、
図6の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0077】
図7は、例示的なコンピュータシステム700を示す。特定の実施形態では、1つまたは複数のコンピュータシステム700は、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータシステム700は、本明細書で説明または示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム700上で稼働しているソフトウェアは、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム700の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
【0078】
本開示は、任意の好適な数のコンピュータシステム700を企図する。本開示は、任意の好適な物理的形態をとるコンピュータシステム700を企図する。限定としてではなく例として、コンピュータシステム700は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実デバイス、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム700は、1つまたは複数のコンピュータシステム700を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、1つまたは複数のコンピュータシステム700は、実質的な空間的または時間的制限なしに、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定としてではなく一例として、1つまたは複数のコンピュータシステム700は、リアルタイムでまたはバッチモードで、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステム700は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。
【0079】
特定の実施形態では、コンピュータシステム700は、プロセッサ702と、メモリ704と、ストレージ706と、入出力(I/O)インターフェース708と、通信インターフェース710と、バス712とを含む。本開示は、特定の配置において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な配置において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
【0080】
特定の実施形態では、プロセッサ702は、コンピュータプログラムを作り上げる命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ702は、内部レジスタ、内部キャッシュ、メモリ704、またはストレージ706から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ704、またはストレージ706に1つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ702は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ702を企図する。限定としてではなく一例として、プロセッサ702は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB)とを含み得る。命令キャッシュ中の命令は、メモリ704またはストレージ706中の命令のコピーであり得、命令キャッシュは、プロセッサ702によるそれらの命令の取出しを高速化し得る。データキャッシュ中のデータは、プロセッサ702において実行する命令が動作する対象のメモリ704またはストレージ706中のデータのコピー、プロセッサ702において実行する後続の命令によるアクセスのための、またはメモリ704もしくはストレージ706に書き込むための、プロセッサ702において実行された前の命令の結果、あるいは他の好適なデータであり得る。データキャッシュは、プロセッサ702による読取りまたは書込み動作を高速化し得る。TLBは、プロセッサ702のための仮想アドレストランスレーション(virtual-address translation)を高速化し得る。特定の実施形態では、プロセッサ702は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ702を企図する。適切な場合、プロセッサ702は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つまたは複数のプロセッサ702を含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
【0081】
特定の実施形態では、メモリ704は、プロセッサ702が実行するための命令、またはプロセッサ702が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム700は、ストレージ706または(たとえば、別のコンピュータシステム700などの)別のソースからメモリ704に命令をロードし得る。プロセッサ702は、次いで、メモリ704から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ702は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ702は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ702は、次いで、メモリ704にそれらの結果のうちの1つまたは複数を書き込み得る。特定の実施形態では、プロセッサ702は、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ706または他の場所とは対照的な)メモリ704中の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ706または他の場所とは対照的な)メモリ704中のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスが、プロセッサ702をメモリ704に結合し得る。バス712は、以下で説明されるように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ702とメモリ704との間に常駐し、プロセッサ702によって要求されるメモリ704へのアクセスを容易にする。特定の実施形態では、メモリ704は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は、任意の好適なRAMを企図する。メモリ704は、適切な場合、1つまたは複数のメモリ704を含み得る。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
【0082】
特定の実施形態では、ストレージ706は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ706は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。ストレージ706は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含み得る。ストレージ706は、適切な場合、コンピュータシステム700の内部または外部にあり得る。特定の実施形態では、ストレージ706は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ706は、読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。本開示は、任意の好適な物理的形態をとる大容量ストレージ706を企図する。ストレージ706は、適切な場合、プロセッサ702とストレージ706との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ706は、1つまたは複数のストレージ706を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
【0083】
特定の実施形態では、I/Oインターフェース708は、コンピュータシステム700と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム700は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム700との間の通信を可能にし得る。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の好適なI/Oデバイスと、それらのI/Oデバイスのための任意の好適なI/Oインターフェース708とを企図する。適切な場合、I/Oインターフェース708は、プロセッサ702がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース708は、適切な場合、1つまたは複数のI/Oインターフェース708を含み得る。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
【0084】
特定の実施形態では、通信インターフェース710は、コンピュータシステム700と、1つまたは複数の他のコンピュータシステム700または1つまたは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース710は、イーサネットまたは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース710とを企図する。限定としてではなく一例として、コンピュータシステム700は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスであり得る。一例として、コンピュータシステム700は、(たとえば、BLUETOOTH WPANなどの)ワイヤレスPAN(WPAN)、WI-FIネットワーク、WI-MAXネットワーク、(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)セルラー電話ネットワーク、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。コンピュータシステム700は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース710を含み得る。通信インターフェース710は、適切な場合、1つまたは複数の通信インターフェース710を含み得る。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
【0085】
特定の実施形態では、バス712は、コンピュータシステム700の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス712は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の好適なバス、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。バス712は、適切な場合、1つまたは複数のバス712を含み得る。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
【0086】
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
【0087】
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「A、B、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「AおよびB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、AおよびB」を意味する。
【0088】
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、配置されるか、実施することが可能であるか、実施するように構成されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、配置されるか、可能であるか、構成されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。
【国際調査報告】