(57)【要約】  本開示は、ライトフィールドプロジェクションディスプレイに関わるグラフィックおよびディスプレイ処理に関わる方法、技術、デバイス、および装置を説明する。いくつかの例では、本開示は、同時に複数のアノテーションをレンダリングおよび表示することが可能なプロジェクションディスプレイシステムを説明する。アノテーションは、表示され得る任意の情報（例えば、テキスト、サイン、方向、ロゴ、電話番号、など）である。一例では、本開示は、複数の異なる焦点距離で同時に複数のアノテーションをレンダリングおよび表示するための技術を企図する。【選択図】図６
2019519835.tif 000002
【特許請求の範囲】
【請求項１】
情報ディスプレイのための方法であって、前記方法は、
オブジェクトまでの距離を決定することと、
前記距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、
前記焦点距離で前記第１のアノテーションを、前記ディスプレイで、表示することと、
を備える、方法。
【請求項２】
前記オブジェクトまでの更新された距離を決定することと、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算することと、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示することと、
をさらに備える、請求項１に記載の方法。
【請求項３】
１つまたは複数の追加のアノテーションについて、それぞれの焦点距離を決定することと、前記１つまたは複数の追加のアノテーションは前記第１のアノテーションとは異なり、
前記１つまたは複数の追加のアノテーションをそれらのそれぞれの焦点距離で表示することと、
をさらに備える、請求項２に記載の方法。
【請求項４】
前記オブジェクトまでの前記距離を決定することは、一連の時間間隔で前記オブジェクトまでの前記距離を絶えず決定することを備え、
前記焦点距離を計算することは、前記時間間隔の各々で前記距離に基づいて前記焦点距離を絶えず計算することを備える、請求項１に記載の方法。
【請求項５】
前記ディスプレイは、プロジェクションディスプレイである、請求項１に記載の方法。
【請求項６】
前記プロジェクションディスプレイは、ピンホール、マスクを使用するライトフィールドプロジェクタ、レンズレットアレイを使用するライトフィールドプロジェクタ、またはレチナールプロジェクタのうちの１つである、請求項５に記載の方法。
【請求項７】
グラフィック処理ユニット（ＧＰＵ）で、前記第１のアノテーションを、複数のビューでレンダリングすることをさらに備える、請求項１に記載の方法。
【請求項８】
前記複数のビューについて、マルチビュービューポートを受信することと、
前記複数のビューについて、モデルビュープロジェクションを受信することと、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成することと、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成することと、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、記憶することと、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶することと、
をさらに備え、
前記それぞれの第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記第１のアノテーションをレンダリングすることは、前記複数のビューの各々について、それぞれの前記第１のレベルバッファを実行することを備える、
請求項７に記載の方法。
【請求項９】
前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記方法はさらに、
ディスプレイプロセッサで、前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換すること、を備える、請求項８に記載の方法。
【請求項１０】
情報ディスプレイのための装置であって、前記装置は、
アノテーションを記憶するように構成されているメモリと、
１つまたは複数のプロセッサと、を備え、前記１つまたは複数のプロセッサは、
オブジェクトまでの距離を決定することと、
前記距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、
前記焦点距離で前記第１のアノテーションを表示することと、
を行うように構成されている、装置。
【請求項１１】
前記１つまたは複数のプロセッサはさらに、
前記オブジェクトまでの更新された距離を決定することと、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算することと、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示することと、を行うように構成されている、請求項１０に記載の装置。
【請求項１２】
前記１つまたは複数のプロセッサはさらに、
１つまたは複数の追加のアノテーションについて、それぞれの焦点距離を決定することと、前記１つまたは複数の追加のアノテーションは前記第１のアノテーションとは異なり、
前記１つまたは複数の追加のアノテーションをそれらのそれぞれの焦点距離で表示することと、を行うように構成されている、請求項１１に記載の装置。
【請求項１３】
前記オブジェクトまでの前記距離を決定するために、前記１つまたは複数のプロセッサは、一連の時間間隔で前記オブジェクトまでの前記距離を絶えず決定するように構成され、
前記焦点距離を計算するために、前記１つまたは複数のプロセッサは、前記一連の時間間隔で前記距離に基づいて前記焦点距離を絶えず計算するように構成されている、請求項１０に記載の装置。
【請求項１４】
前記ディスプレイをさらに備える、請求項１０に記載の装置。
【請求項１５】
前記ディスプレイは、プロジェクションディスプレイである、請求項１４に記載の装置。
【請求項１６】
前記プロジェクションディスプレイは、ピンホール、マスクを使用するライトフィールドプロジェクタ、レンズレットアレイを使用するライトフィールドプロジェクタ、またはレチナールプロジェクタのうちの１つである、請求項１５に記載の装置。
【請求項１７】
前記１つまたは複数のプロセッサは、中央処理ユニットとグラフィック処理ユニットとを含む、請求項１０に記載の装置。
【請求項１８】
前記グラフィック処理ユニットは、前記第１のアノテーションを、複数のビューでレンダリングするように構成されている、請求項１７に記載の装置。
【請求項１９】
前記中央処理ユニットはさらに、
前記複数のビューについて、マルチビュービューポートを受信することと、
前記複数のビューについて、モデルビュープロジェクションを受信することと、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成することと、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成することと、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、記憶することと、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶することと、
を行うように構成され、
前記それぞれの第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記第１のアノテーションをレンダリングするために、前記グラフィック処理ユニットは、前記複数のビューの各々について、それぞれの前記第１のレベルバッファを実行するように構成されている、請求項１８に記載の装置。
【請求項２０】
前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記装置はさらに、
前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換するように構成されたディスプレイプロセッサを備える、請求項１９に記載の装置。
【請求項２１】
装置情報ディスプレイであって、前記装置は、
オブジェクトまでの距離を決定するための手段と、
前記距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算するための手段と、
前記焦点距離で前記第１のアノテーションを表示するための手段と、
を備える、装置。
【請求項２２】
前記オブジェクトまでの更新された距離を決定するための手段と、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算するための手段と、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示するための手段と、
をさらに備える、請求項２１に記載の装置。
【請求項２３】
複数のビューで前記第１のアノテーションをレンダリングするための手段をさらに備える、請求項２１に記載の装置。
【請求項２４】
前記複数のビューについて、マルチビュービューポートを受信するための手段と、
前記複数のビューについて、モデルビュープロジェクションを受信するための手段と、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成するための手段と、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成するための手段と、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、記憶するための手段と、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶するための手段と、
をさらに備え、
前記それぞれの前記第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記第１のアノテーションをレンダリングするための前記手段は、前記複数のビューの各々について、それぞれの前記第１のレベルバッファを実行するための手段を備える、
請求項２３に記載の装置。
【請求項２５】
前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記装置はさらに、
前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換するための手段を備える、
請求項２４に記載の装置。
【請求項２６】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたときに１つまたは複数のプロセッサに、
オブジェクトまでの距離を決定することと、
前記距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、
前記焦点距離で前記第１のアノテーションを表示することと、
を行わせる、コンピュータ可読記憶媒体。
【請求項２７】
前記命令はさらに、前記１つまたは複数のプロセッサに、
前記オブジェクトまでの更新された距離を決定することと、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算することと、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示することと、を行わせる、請求項２６に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記命令はさらに、前記１つまたは複数のプロセッサに、
複数のビューで前記第１のアノテーションをレンダリングさせる、請求項２６に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記命令はさらに、前記１つまたは複数のプロセッサに、
前記複数のビューについて、マルチビュービューポートを受信することと、
前記複数のビューについて、モデルビュープロジェクションを受信することと、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成することと、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成することと、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに記憶することと、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶することと、
を行わせ、
前記それぞれの第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記第１のアノテーションをレンダリングすることは、前記複数のビューの各々について、それぞれの前記第１のレベルバッファを実行することを備える、
請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記命令はさらに、前記１つまたは複数のプロセッサに、
前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換させる、請求項２９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、プロジェクションディスプレイに関わるグラフィックおよびディスプレイ処理に関わる技術に関する。
【背景技術】
【０００２】
ライトフィールドプロジェクションディスプレイ（light field projection display）は、とりわけ自動車アプリケーションのためのヘッドアップディスプレイ、航空電子機器アプリケーション、拡張現実アプリケーション、仮想現実アプリケーション、およびホログラフィックディスプレイアプリケーションのためのヘッドアップディスプレイを含む、多くのアプリケーションにおいて、使用され得る。多くのプロジェクションディスプレイアプリケーションにおいて、情報（例えば、１つまたは複数のアノテーション）が、固定の焦点距離でユーザに表示される。グラフィック処理ユニット（ＧＰＵ）は、このようなアノテーションをレンダリングするために使用され得る。
【発明の概要】
【０００３】
[0003]  概して、本開示は、ライトフィールドプロジェクションディスプレイに関わるグラフィックおよびディスプレイ処理に関わる方法、技術、デバイスおよび装置を説明する。いくつかの例では、本開示は、同時に複数のアノテーション（annotation）をレンダリングおよび表示することが可能であるプロジェクションディスプレイシステムを説明する。アノテーションは、表示され得る任意の情報（例えば、テキスト、サイン（signs）、方向、ロゴ、電話番号など）である。一例では、本開示は、複数の異なる焦点距離で同時に複数のアノテーションをレンダリングおよび表示するための技術を企図する。
【０００４】
[0004]  いくつかの例では、アノテーションの焦点距離(focal length)は、現実世界のオブジェクトまでの焦点距離と一致するように選択され得る。この方法で、アノテーションは、ユーザが彼らの視界の焦点を合わせていると見込まれる同じ焦点距離で、ユーザに表示され得る。現実世界のオブジェクトまでの焦点距離にアノテーションの焦点距離を一致させることは、概して、より良いユーザエクスペリエンスを与える。自動車／航空電子機器ヘッドアップディスプレイアプリケーションに関しては、現実世界のオブジェクトの焦点距離にアノテーションの焦点距離を一致させることは、気を散らせるものがより少なく、かくして、ユーザが、彼らの注意の焦点を、現実世界のオブジェクトと表示されたアノテーションとの間で行ったり来たりさせて絶えず合わせ直す必要がないので、より安全な動作環境を提供し得る。
【０００５】
[0005]  本開示の他の例では、現実世界のオブジェクトまでの距離および／または焦点距離は、絶えず更新され得る。この方法で、アノテーションはまた、アノテーションおよび現実世界のオブジェクトまでの焦点距離が同じに維持されるように、絶えず更新される焦点距離でレンダリングされ得る。本開示はまた、異なる焦点距離で複数のアノテーションの生成を加速させる（accelerating）ためのグラフィック処理技術を説明する。さらに、本開示はまた、プロジェクションディスプレイにのためのフレームからの読取りおよび処理を加速させるためのディスプレイ処理技術を開示する。一例では、本開示は、情報ディスプレイのための方法を説明し、その方法は、オブジェクトまでの距離を決定することと、その距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、その焦点距離で第１のアノテーションを、ディスプレイで、表示することと、を備える。
【０００６】
[0006]  別の例では、本開示は、情報ディスプレイのための装置を説明し、その装置は、アノテーションを記憶するように構成されたメモリ、および、オブジェクトまでの距離を決定することと、その距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、その焦点距離で第１のアノテーションを表示することとを行うように構成された１つまたは複数のプロセッサ、を備える。
【０００７】
[0007]  別の例では、本開示は、装置情報ディスプレイを説明し、その装置は、オブジェクトまでの距離を決定するための手段と、その距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算するための手段と、その焦点距離で第１のアノテーションを表示するための手段と、を備える。
【０００８】
[0008]  別の例では、本開示は、実行されたときに、１つまたは複数のプロセッサに、オブジェクトまでの距離を決定することと、その距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、その焦点距離で第１のアノテーションを表示することとを行わせる命令を記憶するコンピュータ可読記憶媒体を説明する。
【０００９】
[0009]  本開示の１つまたは複数の実施形態の詳細は、添付図面および以下の説明において記述されている。本発明の他の特徴、目的、および利点は、説明、図面から、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】[0010]  図1は、本開示の技法に従った例としてのデバイスを示すブロック図である。
【図２】[0011]  図２は、単一のアノテーションを有する例としてのヘッドアッププロジェクションディスプレイを例示する概念図である。
【図３】[0012]  図３は、異なる焦点距離で複数のアノテーションを示している、本開示の技術に従ったプロジェクションディスプレイシステムを例示する概念図である。
【図４】[0013]  図４は、異なる焦点距離で２つのアノテーションを示している、本開示の技術に従ったプロジェクションディスプレイシステムを例示する概念図である。
【図５】[0014]  図５は、異なる焦点距離で２つのアノテーションを示している、本開示の技術に従ったプロジェクションディスプレイシステムを例示する概念図である。
【図６】[0015]  図６は、図１のシステムの例をより詳細に示すブロック図である。
【図７】[0016]  図７は、図１のプロセッサによって実行される技術をより詳細に示す概念図である。
【図８】[0017]  図８は、オリジナルのMultiViewPortコマンドがどのように複数のビューの各々に関わる複数のビューポートコマンドに変換され得るのかを例示する概念図である。
【図９】[0018]  図９は、仮想カメラから３Ｄオブジェクトの距離を決定するための技術を示す概念図である。
【図１０】[0019]  図１０は、３Ｄのオブジェクトにモデル、ビュー、およびプロジェクションマトリクスを適用するための技術を示すフロー図である。
【図１１】[0020]  図１１は、例としてのビューマトリクスを示す概念図である。
【図１２】[0021]  図１２は、例としてのプロジェクションマトリクスを示す概念図である。
【図１３】[0022]  図１３は、プロジェクションマトリクスを規定する例としての平面を示す概念図である。
【図１４】[0023]  図１４は、図１のプロセッサによって実行される技術をより詳細に示す概念図である。
【図１５】[0024]  図１５は、例としてのマルチビュータイルからライトフィールドタイルへの変換を示す概念図である。
【図１６】[0025]  図１６は、例としてのライトフィールドタイルをより詳細に示す概念図である。
【図１７】[0026]  図１７は、例としてのディスプレイタイプを示す図である。
【図１８】[0027]  図１８は、本開示の技術に従った例としての方法を示すフローチャートである。
【発明を実施するための形態】
【００１１】
[0028]  本開示は、ディスプレイ上に情報（例えば、テキスト、オブジェクション、サイン、命令、またはより大まかには、アノテーション）を表示するための技術に関する。いくつかの例では、本開示は、ライトフィールドプロジェクションディスプレイを使用して１つまたは複数のアノテーションを表示することに関する技術を説明する。いくつかの例では、ライトフィールドプロジェクションディスプレイは、１つまたは複数の固定の焦点距離でアノテーションを表示するように構成される。ヘッドアップディスプレイ（ＨＵＤ）アプリケーションにおいて、このような技術は、表示されたアノテーションが現実世界のオブジェクトとは異なる焦点距離にあり得るため、気を散らせるものであり得る。この状況は、ユーザに、彼らの焦点を、表示されたアノテーションと現実世界のオブジェクトとの間で絶えず変えることを強いるため、注意散漫（distructions）と劣悪なユーザエクスペリエンスをもたらし得る。
【００１２】
[0029]  これらの欠点を鑑みて、本開示は、１つまたは複数のアノテーションが異なる焦点距離で表示され得る技術を企図する。一例では、１つまたは複数のアノテーションは、現実世界のオブジェクトまでの焦点距離に一致する焦点距離で表示され得、かくしてユーザにあまり気を散らせない。いくつかの例では、本開示の技術は、表示されたアノテーションの焦点距離が絶えず更新され得るように現実世界のオブジェクトまでの距離を決定することを含む。本開示はまた、異なる焦点距離で複数のアノテーションの生成を加速させるためのグラフィック処理技術を説明する。さらに、本開示はまた、プロジェクションディスプレイのためのフレームからの読取りおよび処理を加速させるためのディスプレイ処理技術を開示する。  [0030]  図１は、本開示で説明される１つまたは複数の例としての技術に従ってプロジェクションディスプレイ上での表示のためにデータを処理するための例としてのデバイスを例示するブロック図である。図１の例では、システム１０は、プロセッサ１２、グラフィック処理ユニット（ＧＰＵ）１４、ディスプレイプロセッサ２４、およびシステムメモリ１６を含む。いくつかの例では、プロセッサ１２、ＧＰＵ１４およびディスプレイプロセッサ２４は、集積回路（ＩＣ）２７として形成され得る。例えば、ＩＣ２７は、システムオンチップ（ＳｏＣ：system on chip）のようなチップパッケージ内の処理チップと見なされ得る。いくつかの例では、プロセッサ１２、ＧＰＵ１４およびディスプレイプロセッサ２４は、異なる集積回路（例えば、異なるチップパッケージ）に収納され得る。
【００１３】
[0031]  プロセッサ１２、ＧＰＵ１４、ディスプレイプロセッサ２４の例は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等な集積または離散論理回路を含むが、それらに限定されるものではない。プロセッサ１２は、システム１０の中央処理ユニット（ＣＰＵ）であり得る。いくつかの例では、ＧＰＵ１４は、グラフィック処理に適した超並列処理能力（massive parallel processing capabilities）をＧＰＵ１４に提供する集積および／または離散論理回路を含む特殊ハードウェアであり得る。いくつかのインスタンスでは、ＧＰＵ１４はまた、汎用処理能力を含み得、汎用処理タスク（すなわち非グラフィック関連のタスク）をインプリメントする場合、汎用ＧＰＵ（ＧＰＧＰＵ）と呼ばれ得る。
【００１４】
[0032]  ディスプレイプロセッサ２４は、具体的には、表示されるデータ上で動作を実施するように構成されるプロセッサであり得る。例えば、ディスプレイプロセッサ２４は、ディスプレイ１８にこのような画像を送る前にプロセッサ１２およびＧＰＵ１４によって生成される１つまたは複数の画像上で２Ｄオペレーションを実施するように構成され得る。２Ｄオペレーションの例は、回転、スケーリング、ストレッチング、組成、混色、および他のオペレーションを含み得る。さらに、ディスプレイプロセッサ２４は、画像を、インプットデータフォーマットからディスプレイ１８に対応するアウトプットデータフォーマットに変換するように構成され得る。以下により詳細に説明されるように、ディスプレイプロセッサ２４は、（例えば、ディスプレイ１８がライトフィールドプロジェクションディスプレイであるケースでは、）ＧＰＵ１４によって生成されるマルチビュータイルフォーマットの画像を、ライトフィールドプロジェクションディスプレイに対応する（compatible with）ライトフィールドタイルフォーマットに変換するように構成され得る。ディスプレイプロセッサ２４はこのような２Ｄオペレーションを加速させるように構成された専用のハードウェアであるので、ディスプレイプロセッサ２４は、ＧＰＵ１４またはプロセッサ１２で実行するソフトウェアプロセスと比較してより迅速にこのような変換を実施することが可能であり得る。そのため、ディスプレイ１８によって表示される画像のフレームレートが増大され得る。
【００１５】
[0033]  ディスプレイプロセッサ２４が、中央処理ユニット、ＤＳＰ、ＧＰＵとして、ＡＳＩＣとして、ＦＧＰＡとして、または、プログラマブルなおよび／または固定の機能回路の任意の他の組み合わせとして、インプリメントされ得ることが理解されるべきである。これに関して、いくつかの例では、ＩＣ２７は、別個のディスプレイプロセッサ２４を含まない場合があり、むしろ、ディスプレイプロセッサ２５の機能は、プロセッサ１２および／またはＧＰＵ１４によって実施され得る。
【００１６】
[0034]  例示の目的で、本開示に説明される例としての技術は、プロセッサ１２、ＧＰＵ１４、および／またはディスプレイプロセッサ２４に関して説明される。しかしながら、本開示に説明される技術は、そのようには限定されない。本開示に説明される技術は、処理ユニットの他のタイプ（例えば、グラフィック処理のためでなくとも、超並列処理能力を提供する処理ユニット）にまで拡張され得る。また、本開示に説明される技術は、具体的には並列処理のために構成されていない処理にユニットにまで拡張され得る。
【００１７】
[0035]  プロセッサ１２は、さまざまなタイプのアプリケーションを実行し得る。アプリケーションの例は、動作システム、ウェブブラウザ、ｅメールアプリケーション、スプレッドシート、ビデオゲーム、またはディスプレイのための可視オブジェクト（viewable object）を生成する他のアプリケーションを含む。本開示の例では、プロセッサ１２は、プロジェクションディスプレイを使用して情報を表示するためのアプリケーションを実施するように構成され得る。このようなアプリケーションは、自動車のためのＨＵＤ、航空機のためのＨＵＤ、拡張現実（ＡＲ：augmented reality）アプリケーションのためのレチナール(retinal)ディスプレイ、拡張現実（ＡＲ）アプリケーション、仮想現実（ＶＲ）アプリケーション、または、複数の異なる焦点距離で情報がユーザに表示され得る任意の他のアプリケーションのための他のプロジェクションディスプレイ、を含み得る。例えば、このアプリケーションの技術は、（例えば、オートバイ運転手、スキーヤーなどのために）異なる焦点距離およびアノテーションを表示することができるディスプレイを含み得る眼鏡またはゴーグルと併せて使用され得る。図２乃至５を参照してより詳細に説明されるように、複数の異なる焦点距離で情報をレンダリングおよび表示することは、システム１０が、複数の異なる現実世界のオブジェクトの焦点距離に、表示される情報の焦点距離を合わせることを、可能にする。システム１０は、現実世界のオブジェクトまでの焦点距離を絶えず更新するように、従って、システム１０が（例えば、自動車ＨＵＤアプリケーションの中で）動いているとき、現実世界のオブジェクトとマッチする焦点距離でアノテーションを絶えず更新およびレンダリングするように、構成され得る。
【００１８】
[0036]  システム１０によって表示される情報は、テキスト、シンボル、ビデオ、３Ｄグラフィック、などを含む、任意のタイプの情報であり得る。概して、拡張現実（augmented reality）および／またはヘッドアップディスプレイアプリケーションに関しては、このような情報は、アノテーションと呼ばれ得る。このような文脈で、アノテーションは、ユーザの周りの世界についての情報をユーザに伝達する。例えば、アノテーションは、車両情報（現在のスピード、ＧＰＳロケーション、燃料マイレージ、燃料の残量など）、運転ルール（スピード制限、一方通行の道など）、ルーチン情報（曲がる方向、次の曲がり角までの距離、道路ナンバー、出口ナンバー）、関心地点（ＰＯＩ：points-of-interest）情報（事業所のロゴ、事業所名、電話番号、事業所の評価、発信者のＩＤ、スマートフォン通知、衝突／事故防止インジケータ、など）または、ユーザの周囲についての別の他の情報、を含み得る。
【００１９】
[0037]  システムメモリ１６は、１つまたは複数のアプリケーションの実行のための命令を記憶し得る。プロセッサ１２におけるアプリケーションの実行は、プロセッサ１２に、表示される画像コンテンツに関するグラフィックデータを生成させる。本開示の例では、プロセッサ１２におけるアプリケーション実行によって、１つまたは複数のアノテーションが、さまざまな異なる焦点距離で表示され得る。プロセッサ１２は、さらなる処理のためにＧＰＵ１４に画像コンテンツのグラフィックデータを送信し得る。システムメモリ１６はまた、ディスプレイ１８によって表示される情報の（１つまたは複数の）フレームを記憶するように構成されるフレームバッファを含み得る。
【００２０】
[0038]  例えば、プロセッサ１２におけるアプリケーション実行は、プロセッサ１２に、プリミティブの頂点（vertices of primitives）を生成させ、ここにおいて、それぞれの頂点におけるプリミティブの相互接続は、グラフィカルなオブジェクト（例えば、アノテーション）を形成する。この例では、プロセッサ１２が生成するグラフィックデータは、頂点の属性についての属性データである。例えば、プロセッサ１２において実行するアプリケーションは、頂点について、色値、透明度、座標などを生成し得、それらはすべて、頂点の属性の例である。追加の属性も同様に存在し得、いくつかの例では、アプリケーションは、例としての属性のすべてを生成する必要はない。概して、技術は、属性データ以外のデータタイプ（例えばカウンター）に拡張可能であり、技術は、属性データに限定されるとは、あるいは、色値、透明度、座標などの属性データの例に限定されるとは、見なされるべきではない。
【００２１】
[0039]  いくつかの非グラフィック関連の例では、プロセッサ１２は、ＧＰＵ１４によって処理されるためにより適切なデータを生成し得る。このようなデータは、グラフィック、またはディスプレイを目的とするものである必要はない。例えば、プロセッサ１２は、マトリクス演算がＧＰＵ１４によって実施される必要があるデータを出力し得、そしてＧＰＵ１４は、マトリクス演算を実施し得る。
【００２２】
[0040]  概して、プロセッサ１２は、超並列演算（massive parallel operation）を必要とするタスクのようなタスクを処理することを、ＧＰＵ１４にオフロードし得る。一例として、グラフィック処理は、超並列演算を必要とし、プロセッサ１２は、ＧＰＵ１４にこのようなグラフィック処理タスクをオフロードし得る。しかしながら、マトリクス演算のような他の演算（オペレーション）はまた、ＧＰＵ１４の並列処理能力からの恩恵を受け得る。これらの例では、プロセッサ１２は、非グラフィック関連の演算をＧＰＵ１４に実施させるために、ＧＰＵ１４の並列処理能力を利用し得る。
【００２３】
[0041]  プロセッサ１２は、特定のアプリケーション処理インターフェース（ＡＰＩ）にしたがってＧＰＵ１４と通信し得る。このようなＡＰＩの例は、マイクロソフト（登録商標）によるＤｉｒｅｃｔＸ（登録商標）、クロノスグループ（Khronos group）によるＯｐｅｎＧＬ（登録商標）またはＯｐｅｎＧＬ ＥＳ（登録商標）およびＯｐｅｎＣＬ（登録商標）ＡＰＩを含み、しかしながら、本開示の態様は、ＤｉｒｅｃｔＸ、ＯｐｅｎＧＬ、またはＯｐｅｎＣＬ ＡＰＩに限定されず、他のタイプのＡＰＩに拡張され得る。さらに、本開示に説明される技術は、ＡＰＩに従って機能することは要求されず、プロセッサ１２およびＧＰＵ１４は、通信に関わる任意の技術を使用し得る。
【００２４】
[0042]  以下により詳細に説明されるように、本開示の技術に従って、プロセッサ１２は、複数の異なる焦点距離で複数のアノテーションの有効な処理を可能にする特殊ＡＰＩを使用するＧＰＵ１４にコマンドを提供し得る。ライトフィールドディスプレイによるディスプレイのためのアノテーションをレンダリングするために、アノテーションのレンダリングは、複数の仮想カメラアングルを使用し得る。一例では、最大２５の異なるカメラアングルが、投影されたライトフィールドにおけるアノテーションのローテーションに依存してアノテーションをレンダリングするために、使用され得る。本開示の技術に従えば、プロセッサ１２によって実行されるグラフィックドライバーは、そのカメラアングルにおけるシーンをレンダリングするためのコマンドとともに、特定のカメラアングルについてＧＰＵ１４に、マルチビュービューポート、モデル、ビュー、およびプロジェクション（ＭＶＰ）マトリクスを提供するように構成され得る。一例では、ＧＰＵドライバーは、一方のバッファにおいては特定のカメラアングルに固有のコマンドを、他方のバッファにおいてはすべてのカメラアングルに共通するコマンドを、含み得る。この方法で、すべてのカメラアングルに共通するコマンドは、一度生成されるだけでよく、すべてのカメラアングルによって再利用され得る。
【００２５】
[0043]  システム１０はまた、ディスプレイ１８、ユーザインターフェース２０、トランシーバモジュール２２、位置検出ユニット２８、および距離推定ユニット３０を含み得る。システム１０は、明確化のために図１に示されていない、追加のモジュールまたはユニットを含み得る。例えば、システム１０は、いくつかの例では、電話通信を実施するために、スピーカーおよびマイクロフォンを含み得る、それらはどちらも図１に示されていない。さらに、システム１０に示されているさまざまなモジュールおよびユニットは、システム１０のすべての例において必要とされるのではない。例えば、ユーザインターフェース２０およびディスプレイ１８は、いくつかの例では、システム１０の外側にあり得る。
【００２６】
[0044]  ディスプレイ１８は、任意のタイプのライトフィールドプロジェクションディスプレイ、レチナールディスプレイ、ホログラフィックディスプレイ、または、任意の他のタイプのディスプレイであり得、ここにおいて、複数のアノテーションが、複数の異なる焦点距離でユーザに表示され得る。一例では、ディスプレイ１８は、液晶ディスプレイ（ＬＣＤ）、デジタルライトプロジェクション（ＤＬＰ）ディスプレイ、発光ダイオード（ＬＴＥ（登録商標））ディスプレイ、オーガニックＬＥＤ（ＯＬＥＤ）ディスプレイ、陰極線管（ＣＲＴ：cathode ray tube）ディスプレイ、またはピクセル値を生成するための任意の他のタイプのディスプレイであり得る、基礎となる（underlying）ディスプレイを含み得る。ライトフィールドを生成するために、基礎となるディスプレイによって生成されるピクセルは、ピンホールマスク、レンズレット（lenslet）アレイ、または光を種々のアングルに向ける任意の他のメカニズムを通じて、投影され得る。レンズレットアレイまたはピンホールマスクによって生成されるライトフィールドは、結合器(combiner)に向けられる。結合器は、ガラスから成る平坦な部品であるか、他のメカニズム（例えばビームスプリッタ）であり得、それは、光をコリメートし、（例えば、自動車のフロントガラスに）ユーザの視界内で、ユーザにライトフィールドを投影し返す。上記は、単なる一例であり、複数の異なる焦点距離でアノテーションを表示することが可能である任意のタイプのプロジェクションディスプレイが本開示の技術と組み合わせて使用され得ることが、理解されるべきである。
【００２７】
[0045]  ユーザインターフェース２０の例は、トラックボール、マウス、キーボード、および他のタイプのインプットデバイスを含むが、これらに限定されない。ユーザインターフェース２０はまた、タッチスクリーンであり得、ディスプレイ１８の一部として組み込まれ得る。トランシーバモジュール２２は、システム１０と他のデバイスまたはネットワークとの間の有線または無線の通信を可能にするための、回路を含み得る。トランシーバモジュール２２は、変調器、復調器、増幅器、および有線または無線の通信のための他のこのような回路を含み得る。
【００２８】
[0046]  システムメモリ１６は、システム１０のためのメモリであり得る。システムメモリ１６は、１つまたは複数のコンピュータ可読記憶媒体を備え得る。システムメモリ１６の例は、ランダムアクセスメモリ（ＲＡＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、あるいは、データ構造および／または命令の形式で所望のプログラムコードを記憶または搬送するために使用可能であり、且つコンピュータまたはプロセッサによってアクセスされることができるその他の媒体を含むが、それらに限定されない。
【００２９】
[0047]  いくつかの態様では、システムメモリ１６は、プロセッサ１２、ＧＰＵ１４、およびディスプレイプロセッサ２４に属する本開示に記載の機能を、プロセッサ１２、ＧＰＵ１４、ディスプレイプロセッサ２４に実施させる命令を含み得る。従って、システムメモリ１６は、実行されたときに、１つまたは複数のプロセッサにさまざまな機能を実施させる記憶された命令を有するコンピュータ可読記憶媒体であり得る。
【００３０】
[0048]  いくつかの例では、システムメモリ１６は、非一時的な記憶媒体であり得る。「非一時的な」という用語は、記憶媒体が、搬送波または伝播信号に具現化されないことを示し得る。しかしながら、「非一時的な」という用語は、システムメモリ１６が移動不可能である（non-movable）こと、またはそれのコンテンツが静的であること、を意味するように解釈されるべきではない。一例として、システムメモリ１６は、システム１０から取り除かれ、別のデバイスへ移動される。別の例として、システムメモリ１６と実質的に同様のメモリが、システム１０に挿入され得る。特定の例では、非一時的な記憶媒体は、（例えば、ＲＡＭにおいて）経時的に変化する可能性があるデータを記憶し得る。
【００３１】
[0049]  例えば、本開示の他の部分でより詳細に説明されるように、システムメモリ１６は、本開示に説明される１つまたは複数の例の技術を実施するプロセッサ１２において実行するコンパイラのためのコードを記憶し得る。システムメモリ１６はまた、ＧＰＵ１４のシェーダーコアにおいて実行するシェーダープログラム（例えば、頂点シェーダー、ピクセルまたはフラグメントシェーダー、計算シェーダーなど）のためのコードを記憶し得る。
【００３２】
[0050]  位置検出ユニット２８は、システム１０の近くの任意のＰＯＩの現在のロケーション、並びにシステム１０の現在のロケーションを検出するように構成され得る。以下により詳細に説明されるように、位置検出ユニット２８は、ＰＯＩのロケーションのデータベース並びに位置／ロケーション受信機（例えば、グローバルポジショニングシステム（ＧＰＳ）受信機）を含み得る。この方法では、システム１０は、システム１０と特定のＰＯＩ（例えば、事業所、交差点など）との間の現在の距離を決定し、ＰＯＩに関するアノテーションを表示するための焦点距離を計算し、ＰＯＩまでの焦点距離に一致する（すなわち、表示されるアノテーションの焦点距離が現実世界のオブジェクトまでの焦点距離に一致する）焦点距離でアノテーションを表示するように、構成され得る。
【００３３】
[0051]  位置検出ユニット２８はまた、システム１０と現実世界のオブジェクトとの間の距離を決定および更新するのを補助する、システム１０に関する他の情報にアクセスし得る。例えば、自動車アプリケーションにおいて、位置検出ユニット２８はまた、（例えばルーティングアプリケーションを使用する場合の）対象とするルート、ルートパス、車両スピード、加速などの自動車動作情報にアクセスするように構成され得る。
【００３４】
[0052]  距離推定ユニット３０は、システム１０と、ロケーションがデータベースにおいて入手可能でない他の現実世界のオブジェクトとの間の距離を計算するように構成され得る。例えば、自動車の文脈では、距離推定ユニット３０は、システム１０と他の自動車との間の距離、システム１０と道路標識（road signs）との間の距離、システム１０と歩行者との間の距離、およびより大まかには、システム１０とシステム１０の近くの任意の他の障害物またはオブジェクトとの間の距離を、計算するために使用され得る。距離推定ユニット３０は、システム１０と他の現実世界のオブジェクトとの間の距離を検討するための任意の技術を使用し得る。例えば、システム１０と別の自動車との間の距離を検出するために、距離推定ユニット３０は、立体(stereoscopic)カメラを含み得る。距離推定ユニット３０は、立体画像によって生成される画像に基づいて別の自動車までの距離を決定するために、コンピュータビジョンおよび／または他の画像処理技術を使用し得る。しかしながら、システム１０と他の現実世界のオブジェクトとの間の距離を決定するための任意の技術が本開示の技術と併せて使用され得ることが、理解されるべきである。
【００３５】
[0053]  システム１０は、複数の異なる焦点距離での複数のアノテーションの表示が要求され得る任意のアプリケーションにおいて使用され得る。例えば、システム１０は、自動車に組み込まれ得、ヘッドアップディスプレイを駆動するために使用され得る。別の例として、システム１０は、航空機に組み込まれ得、航空ヘッドアップディスプレイを駆動するために使用され得る。さらに別の例として、システム１０は、レチナール（retinal）ディスプレイシステムに組み込まれ得るか、これと併せて使用され得る。例えば、システム１０は、眼鏡、または他のタイプのヘッドギアまたはウェアラブルディスプレイに組み込まれるレチナールプロジェクタと合わせて使用され得る。システム１０はまた、携帯電話、タブレット、ラップトップコンピューター、デスクトップコンピュータ、セットトップボックス、または任意の他のコンピューティング環境に組み込まれ得る。
【００３６】
[0054]  本開示の１つまたは複数の例に従えば、以下により詳細に説明されるように、システム１０は、オブジェクトまでの距離を決定することと、その距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、当該焦点距離で第１のアノテーションを表示することとを行うように構成され得る。本開示のさらなる例では、システム１０は、オブジェクトまでの更新された距離を決定することと、更新された距離に基づいて第１のアノテーションを表示するための更新された焦点距離を計算することと、更新された焦点距離で、ディスプレイで第１のアノテーションを表示することと、を行うように構成され得る。
【００３７】
[0055]  本開示の他の例では、システム１０は、複数のアノテーションを表示するように構成され得る。このような例では、システム１０は、１つまたは複数の追加のアノテーションについてそれぞれの焦点距離を決定すること、１つまたは複数の追加のアノテーションは第１のアノテーションとは異なる、と、それぞれの焦点距離で当該１つまたは複数の追加のアノテーションを表示することと、を行うようにさらに構成され得る。
【００３８】
[0056]  図２は、単一のアノテーションを有する例としてのヘッドアッププロジェクションディスプレイを例示する概念図である。図２の例は、自動車アプリケーションにおけるＨＵＤの例を示す。図２は、固定の距離で表示されるアノテーション１０２を示す。この例では、アノテーション１０２は、自動車の現在のスピード（「６０」）である。しかしながら、アノテーション１０２は、任意の種類の情報であり得る。図２で判るように、アノテーション１０２は、車両１０４が焦点外に見られるので、車両１０４とは異なる焦点距離にあり得る。典型的な運転状況では、運転手は、彼らの視野の焦点を遠方のある一点に当てていることが最も多く、多くの状況において、その点は、彼らの真正面の車両（例えば、車両１０４）である。
【００３９】
[0057]  そのため、アノテーション１０２によって伝達される情報を認識するために、運転手は、彼らの焦点を、車両１０４からアノテーション１０２に調整しなければならない。このことは、運転手に、彼らの視野の焦点を、運転焦点距離（例えば、車両１０４の焦点距離）とアノテーションを見るための焦点距離との間で絶えず変えることを強いる。運転手の焦点をこのように変えることは、運転手にとっての相当の注意散漫をもたらし得る。
【００４０】
[0058]  図３は、異なる焦点距離で複数のアノテーションを示している、本開示の技術に従ったプロジェクションディスプレイシステムを例示する概念図である。図３に示されているように、システム１０は、車両の運転手の視野において複数のアノテーション１０２、１０６、および１０８を表示するように構成され得る。アノテーション１０２は、車両情報（例えば、車両スピード）であり得、アノテーション１０６は、ルーティング方向（例えば、曲がり指示（turn instruction））であり得、アノテーション１０８は、ビジネスに関する情報（例えば、ビジネスのロゴ）であり得る。システム１０は、結合器６２（例えば、光結合器）においてライトフィールドを投影するように構成されているライトフィールドプロジェクションディスプレイ（例えば、図１のディスプレイ１８）を含み得る。いくつかの例では、結合器６２が、ディスプレイ１８の一部であり得ることに留意されたい。結合器６２は、（例えば、車のフロントガラスを通じた）ユーザの予期される視野におけるユーザの目へとライトフィールドを向け直す。
【００４１】
[0059]  本開示の一例としての技術に従えば、システム１０は、複数の異なる焦点距離で複数の異なるアノテーションをレンダリングおよび表示するように構成され得る。例えば、アノテーション１０２は、焦点距離Ｆ１で表示され得、アノテーション１０６は、焦点距離Ｆ２とＦ３との間で表示され得、アノテーション１０８は、焦点距離Ｆ４で表示され得る。
【００４２】
[0060]  以下の例で記述されるように、本開示の技術は、複数の焦点距離でのアノテーションの表示を可能にするだけではなく、表示されるアノテーションの焦点距離は、現実世界のオブジェクトの焦点距離に合わせられ得る。さらに、本開示の他の例では、表示されるアノテーションの焦点距離は、ユーザおよび／またはシステム１０が動くのにしたがって現実世界のオブジェクトまでの焦点距離に合わせるように絶えず更新され得る。
【００４３】
[0061]  図４は、現実世界のオブジェクトまでの距離に合わせられた異なる焦点距離で２つのアノテーションを示している、本開示の技術に従ったプロジェクションディスプレイシステムを例示する概念図である。図４に示されているように、アノテーション１０２は、車両１０４（すなわち、現実世界のオブジェクト）と同じ焦点距離で表示される。図１を参照して上述されたように、距離推定ユニット３０は、車両１０４までの距離を決定し、このような決定された距離を、アノテーション１０２を表示するための焦点距離を計算するために使用するように構成され得る。図４で判るように、運転手が車両１０４に視野の焦点を当てるとき、車両１０４とアノテーション１０２との両方に、焦点が合わせられる。
【００４４】
[0062]  この例では、アノテーション１０２を表示するための焦点距離は、運転手が典型的にユーザの真正面の車両に視野の焦点を当て得るという仮説に基づくことに、留意されたい。他の例では、システム１０は、運転手の注意散漫を防ぐために、運転手が典型的に視野の焦点を当てる焦点距離で、アノテーション１０２（または、ＧＰＳ情報または車両に関わる任意の他の情報）を表示するように構成され得る。このような焦点距離は、固定であり得るか、ユーザ設定可能であり得るか、現実世界のオブジェクト（例えば、車両１０４）に合わせるために絶えず更新され得る。
【００４５】
[0063]  さらに、図４に示されるように、アノテーション１０８（例えば、ビジネスのロゴ）は、アノテーション１０８に関連するＰＯＩ（例えば、物理的な店舗）の物理的なロケーション１１０の焦点距離と同じ商店距離で表示される。図４の例では、ユーザは、車両１０４に視野の焦点を当てている。そのため、物理的なロケーション１１０とアノテーション１０８との両方は、焦点から外れている。この状況は、アノテーション１０２を表示するライトフィールドの部分は目１１２の網膜上で焦点が合わされているが、アノテーション１０８を表示するライトフィールドの部分は目１１２の網膜上で焦点が合わされていない、目１１２によって描写されている。
【００４６】
[0064]  図５は、現実世界のオブジェクトに合わせられた異なる焦点距離で２つのアノテーションを示している、本開示の技術に従ったプロジェクションディスプレイシステムを例示する概念図である。図５の例では、ユーザは、視野の焦点を物理的なロケーション１１０に変えている。この例では、物理的なロケーション１１０と関連するアノテーション１０８との両方に焦点が合わせられ、一方で、車両１０４とアノテーション１０２とには焦点が合わせられていない。この状況は、アノテーション１０８を表示するライトフィールドの部分は目１１２の網膜上で焦点が合わされているが、アノテーション１０２を表示するライトフィールドの部分は目１１２の網膜上で焦点が合わされていない、目１１２によって描写されている。
【００４７】
[0065]  図６は、図１のシステム１０の例を詳細に示すブロック図である。図６の例では、距離推定ユニット３０は、現実世界の距離推定ユニット３８、車両動作情報ユニット４０、および立体カメラ４２を含み得る。現実世界の距離推定ユニット３８は、プロセッサ（例えば、プロセッサ１２）において実行するソフトウェアにおいてインプリメントされ得るか、専用のハードウェア（例えば、ＡＳＩＣ）として実行され得るか、ハードウェアおよびソフトウェアの両方の組み合わせであり得る。
【００４８】
[0066]  立体カメラ４２は、システム１０のユーザの視野の写真を撮るように構成され得る。立体カメラ４２は、奥行き情報が結果の画像から決定され得るように、各々異なるカメラアングルで２個以上のカメラを含む。例えば、現実世界の距離推定ユニット３８は、立体の三角測量技術を使用して立体カメラ４２によって撮影される現実世界のオブジェクトまでの距離を決定するように構成され得る。現実世界の距離推定ユニット３８は、立体カメラ４２によって生成された種々の画像において対応する点を見つけ、種々のカメラアングルを鑑みて対応する点の相対的なロケーションを考慮して、現実世界のオブジェクト（他の車両、道路標識、障害物、歩行者など）の奥行きを決定するように構成され得る。しかしながら、現実世界のオブジェクトまでの距離を決定するためのレンジイメージングの他の技術が、システム１０で使用され得る。現実世界の距離推定ユニット３８は、システム１０（またはシステム１０がインストールされた車両）と１つまたは複数の現実世界のオブジェクトとの間の距離を絶えず決定および更新するように構成され得る。
【００４９】
[0067]  距離推定ユニット３０は、車両動作情報ユニット４０をさらに含み得る。車両動作情報ユニット４０は、システム１０が使用される車両の現在の動作に関わる情報にアクセスするように構成され得る。このような情報は、車両のスピード、車両の加速、車両の減速、または、車両と他の現実世界のオブジェクトとの間の距離を更新するために使用され得る車両の現在の動作についての任意の他の情報を含み得る。車両情報は、距離情報を更新するのを補助するために立体カメラ４２によって生成される画像からの距離決定と併せて使用され得る。距離情報を更新するために使用され得る他の車両情報は、オブジェクト回避情報（例えば、衝突が差し迫っていることを示す衝突防止システムからのインジケーション）、（例えば、車線逸脱警報システムからの）車線逸脱を示す情報、および／または、（例えば、車線逸脱警報システムが、車両が車線から出ていることを示すという例では、）車線変更支援システムが作動されていることを示す情報、を含み得る。
【００５０】
[0068]  現実世界の距離推定ユニット３８は、それまでの距離が計算されている現実世界のオブジェクトのタイプを識別するために、コンピュータビジョンおよび／または画像認識技術を使用するように構成され得る。例えば、距離推定ユニット３８は、現実世界のオブジェクトが別の車、道路標識、障害物などであることを識別するために、画像認識技術を使用し得る。そして距離推定ユニット３０は、インフォテインメント（infotainment）および位置アノテーション論理３６に、現実世界のオブジェクトのタイプの識別と共に現実世界のオブジェクトまでの距離を、両方提供し得る。この方法で、インフォテインメントおよび位置アノテーション論理３６は、識別された現実世界のオブジェクトについて、ディスプレイに適切なアノテーションを選択し得る。
【００５１】
[0069]  図６の例では、位置検出ユニット２６は、ＧＰＳ受信機３２、ＧＰＳ ＰＯＩデータベース３４、および前述のインフォテインメントおよび位置アノテーション論理３６を含み得る。ＧＰＳ受信機３２は、システム１０の現在のロケーションを決定するためにＧＰＳ衛星から衛星信号を受信するように構成された受信機である。しかしながら、システム１０の位置および／またはロケーションを決定するための任意の技術が使用され得、本開示はＧＰＳに限定されないことが、留意されるべきである。ＧＰＳ ＰＯＩデータベースは、固定のＰＯＩのロケーションのデータベースである。システム１０の現在のロケーション並びにシステム１０の近くのＰＯＩのロケーションを決定することによって、インフォテインメントおよび位置アノテーション論理３６は、システム１０とＰＯＩとの間の距離を決定し得る。いくつかの例では、インフォテインメントおよび位置アノテーション論理３６は、プロセッサ（例えば、プロセッサ１２）で実行するソフトウェアとしてインプリメントされ得る。他の例では、インフォテインメントおよび位置アノテーション論理３６は、専用のハードウェア（例えば、ＡＳＩＣ）、または、ハードウェアとソフトウェアとの組み合わせとしてインプリメントされ得る。
【００５２】
[0070]  インフォテインメントおよび位置アノテーション論理３６は、どのアノテーションを何個表示するかを決定し得る。表示されるアノテーションは、予め決定されているか、ユーザによって選択され得る。例えば、図１のユーザインターフェース２０を使用して、ユーザは、どの車両情報（ルーティング、スピード、マイレージなど）が表示されるかを選択し得る。さらに、ユーザは、アノテーションが表示される特定のＰＯＩまたは複数のＰＯＩ（例えば、特定の事業所、事業所の種類、交差点、公園など）を示し得る。
【００５３】
[0071]  表示されるアノテーションをレンダリングするために、インフォテインメントおよび位置アノテーション論理３６は、表示されるアノテーションのタイプ、アノテーションをレンダリングするための焦点距離、およびアノテーションをレンダリングするためのディスプレイの視野におけるロケーションを、示すように構成され得る。インフォテインメントおよび位置アノテーション論理３６は、プロセッサ１２に（例えばＯｐｅｎＧＬまたはＤｉｒｅｃｔＸフォーマットの）グラフィックＡＰＩコマンド４４を提供し得る。ＡＰＩコマンド４４はまた、複数のカメラアングルの各々に対してＭＶＰマトリクスを規定する情報、およびディスプレイによって表示可能な視野を規定する複数の仮想カメラアングル（すなわち複数のビュー）に関わるマルチビュービューポートを規定する情報を含み得る。ＡＰＩコマンド、マルチビュービューポート、およびＭＶＰ情報に関わる技術は、図７乃至９を参照してより詳細に、以下に大まかに記述される。
【００５４】
[0072]  ＨＵＤドライバー４８を実行しているプロセッサ１２は、シングルパスで複数のビューの各々に対してアノテーションがレンダリングされ得る方法で、ＡＰＩコマンド４４を変換し得る。まず、ＨＵＤレンダリングＡＰＩコンバージョン４６を実行することによって、プロセッサ１２は、複数のビューの各々に対して別個のビューポートコマンドにマルチビュービューポート情報を変換し得る。さらに、ＨＵＤレンダリングＡＰＩ４６を実行することによって、プロセッサ１２は、複数の仮想カメラアングル（すなわち複数のビュー）の各々に対してＭＶＰマトリクスを生成し得る。さらに、任意の共通のコマンド（すなわち、マルチビューに固有でない）が、プロセッサ１２によって実行されるマルチビューコンバージョンプロセス５２に伝達され得る。
【００５５】
[0073]  マルチビューコンバージョンプロセス５２を実行するプロセッサ１２は、ＨＵＤレンダリングＡＰＩコンバージョン４６によって生成されたコマンドを階層的なバッファ配列に再配列し得る。マルチビューコンバージョンプロセス５２は、特定のビューに固有のコマンドを、第１のより高いレベルバッファに配置する。第１のより高いレベルバッファにおけるコマンドの中で、ポインタが、１つまたは複数の第２のより低いレベルバッファにおける１つまたは複数のコマンドを実行する。第２のより低いレベルバッファにおけるコマンドは、すべてのビューに共通する。このようにして、ＧＰＵ１４は、プロセッサ１２が各ビューについて共通のコマンドを再実行する必要無く、異なるビューの各々についてコマンドを実行することが可能であり得る。
【００５６】
[0074]  図７は、プロセッサ１２において実行するＨＵＤレンダリングＡＰＩコンバージョン４６によって受信されるＡＰＩコマンド４４を、詳細に示す。コマンドMultiViewPort（ｘ，ｙ，width，height）は、レンダリングされる全画面のサイズの原点の位置（すなわち、ｘ、ｙ位置）、並びに、全画面の幅および高さを規定する。図７の例は、ＯｐｅｎＧＬコマンドを図示するが、任意のグラフィックＡＰＩが使用され得ることが理解されるべきである。図７に示されているように、ＨＵＤレンダリングＡＰＩコンバージョン４６は、MultiViewPortコマンドを、レンダリングされる複数のビューの各々についてのメタデータに（すなわち、ビュー（Ｖ１１）からビュー（Ｖｍｎ）に）変換するように構成される。図７の例では、２５個の異なるビューが、マルチビュータイル１５２にレンダリングされる。各ビューは、Ｖｍｎによって指定されており、ここにおいてｍはマルチビュータイル１５２におけるビューの行であり、ｎはマルチビュータイル１５２におけるビューの列である。各ビューは、特定の仮想カメラアングルから全体のレンダリングされたシーンを表しており、ここにおいて、各ビューは、異なるカメラアングルを有する。ライトフィールドプロジェクションディスプレイ（例えばディスプレイ１８）によって結合（combined）および表示されるとき、表示される画像は、複数の異なる焦点距離でのアノテーションを含み得る（すなわち、画像は、感知される奥行き(depth)を有する立体である）。
【００５７】
[0075]  ＨＵＤレンダリングＡＰＩコンバージョン４６は、コマンドMultiViewPort（ｘ，ｙ，width，height）をマルチビュータイル１５２の特定のビューの各々についての複数のglViewPortコマンドを示すメタデータに変換する。ＨＵＤレンダリングＡＰＩ４６は、各ビューに対して各glViewPortコマンドのための開始をマーキングするMeta begin view（Ｖｍｎ）コマンドを加える。ＨＵＤレンダリングＡＰＩ４６はまた、各ビューに対して各glViewPortコマンドの終わりをマーキングするMeta endコマンドを加える。glViewPortコマンドは、マルチビュータイル１５２における各ビューのロケーションを示す。
【００５８】
[0076]  図８は、どのようにオリジナルのMultiViewPortコマンドが複数のビューの各々についての複数のビューポートコマンドに変換され得るかを例示する概念図である。この例では、２５個のビューＶｍｎ（すなわち、Ｖ１１−Ｖ５５）が存在し、ここにおいてｍはビューの行を表し、ｎはビューの列を表す。上述されたように、オリジナルのMultiViewPortは、表示される全体のスクリーン１５０を表す。スクリーン１５０は、原点（Ｘ０、Ｙ０）、並びに幅(Width)および高さ(Hight)によって規定される。各ビューの幅（ｖｗ）は、列（ｍ）の総数で割った全体のスクリーン１５０の幅で規定される。すなわち、ｖｗ＝幅／ｍである。各ビューの高さ（ｖｈ）は、行（ｎ）の数で割った全体のスクリーン１５０の高さで規定される。すなわち、ｖｈ＝高さ／ｎである。
【００５９】
[0077]  ＨＵＤレンダリングＡＰＩコンバージョン４６は、次の等式を使用して各ビューポートＶｍｎの原点を決定し得る。Ｖｍｎ ＶｉｅｗＰｏｒｔ原点＝（Ｘ０＋（ｍ−１）＊ｖｗ，Ｙ０＋（ｎ−１）＊ｖｈ）。個々のビューポートＶｍｎの各々は、（Ｘ０＋（ｍ−１）＊ｖｗ，Ｙ０＋（ｎ−１）＊ｖｈ，ｖｗ，ｖｈ）として規定され得る。例えば、Ｘ０＝０およびＹ）＝０と仮定すると、ビューＶ１１についての原点は、（０＋（１−１）＊ｖｗ，０＋（１−１））＊ｖｈ）＝（０，０）であり得る。ビューＶ１２についての原点は、（０＋（２−１）＊ｖｗ，０＋（１−１）＊ｖｈ）＝（ｖｗ，０）であり得る。ビューＶ５５についての原点は、（０＋（５−１）＊ｖｗ，０＋（５−１）＊ｖｈ）＝（４ｖｗ，４ｖｈ）であり得る。
【００６０】
[0078]  図７に戻ると、任意の共通のコマンド（すなわち、ビュー固有でないコマンド）は、ビューポートメタデータの下に記憶され得る。例としての共通のコマンドは、glClear、glTexSubImage2D、glBindTexture、glActiveTexture、glUseprogramを含み得る。先行するコマンドは、ＯｐｅｎＧＬ ＡＰＩにおけるレンダリングコマンドである。リスト化されたものだけではなく、特定のビューに固有でない任意のレンダリングコマンドが、共通のコマンドと見なされ得る。このような共通のコマンドは、すべてのビューに対して同じであるビューをレンダリングするために使用される任意のコマンドであり得る。
【００６１】
[0079]  ＨＵＤレンダリングＡＰＩコンバージョン４６はまた、全体のスクリーンに関わるマルチビューユニフォームマトリクス情報（ＭultiviewUniformmatrix4fv（…，ＭＶＰ）を、複数のビューの各々についてＭＶＰマトリクスに、変換し得る。ビューポート情報のように、ＨＵＤレンダリングＡＰＩ４６は、Meta begin view（Ｖｍｎ）コマンドおよびMeta endコマンドで、各ビューについてのＭＶＰマトリクス情報の開始と終わりを、それぞれ指定し得る。この場合もやはり、任意の共通のコマンド（すなわち、ビュー固有でないコマンド）は、ＭＶＰメタデータの下に記憶され得る。例としての共通のコマンドは、glVertexAttribPointer、glEnableVertextAttribArray、およびglDrawArraysを含み得る。このような共通のコマンドは、すべてのビューに対して同じであるビューをレンダリングするために使用される任意のコマンドであり得る。
【００６２】
[0080]  各ビューに関わるＭＶＰマトリクスは、コマンドglUniformmatrix4fv （…，ＭＶＰmn）によって規定され得、ここにおいて、各ビューは、特有のＭＶＰマトリクスを有する。ＭＶＰマトリクスは、モデル、ビュー、およびプロジェクションマトリクスを含む３つのマトリクスである。ビューおよびプロジェクションマトリクスは、各ビューのカメラアングルに基づいて変わる。モデルマトリクスは、オブジェクト（例えばアノテーション）のローカル座標空間をワールド空間にマッピングする。モデルマトリクスはまた、アノテーションの回転およびスケーリングを規定する。ビューマトリクスは、ビューをワールド空間からカメラ空間にマッピングする。プロジェクションマトリクスは、ディスプレイのために、カメラ空間をスクリーン空間に投影する。ＭＶＰマトリクスが各ビューに対してどのように決定されるかが、以下に記述される。
【００６３】
[0081]  各ビューは、ワールド空間における異なるカメラロケーションに基づく。ディスプレイ１８がプロジェクションディスプレイである例では、ビューの数が、ディスプレイを投影するために使用されるレンズレットまたはピンホールの数によって規定され得る。本開示の一例では、２５個の異なるビューが生成される。少数のビューが３Ｄフィディリティ（fidelity）を犠牲にして処理を加速し得る。多くのビューは、処理スピードを犠牲にして３Ｄフィディリティを拡大し得る。
【００６４】
[0082]  中央のカメラロケーションに関わる結合されたＭＶＰマトリクスは、ＭＶＰ＝Ｐ＊Ｖ＊Ｍと規定される。すなわち、プロジェクションマトリクス、ビューマトリクス、およびモデルマトリクスが一緒に乗算される。モデルマトリクスＭは、各ビューに対して同じである、Ｍ＝Ｖ−１ｘＰ−１ｘＭＶＰ。Ｖ−１およびＰ−１は、それぞれ、逆ビューマトリクスおよび逆プロジェクションマトリクスである。しかしながら、ビューマトリクスおよびプロジェクションマトリクスは、各ビューに関わる視錐台（frustum）およびカメラの位置に基づいて異なる。カメラ位置および視錐台は、予め規定され、プロセッサ１２によってアクセス可能であるメモリにおける構成ファイルにおいて記憶され得る。したがって、（ＭＶＰ'とラベル付けされる）任意の特定のビューのＭＶＰは、ＭＶＰ’＝Ｐ’＊Ｖ’＊Ｍとして規定され得る。この場合も同様に、モデルマトリクスＭは、すべてのビューに対して同じである。
【００６５】
[0083]  図９に示されているように、例えば、距離推定ユニット３０によって決定される現実世界の距離２００は、距離変換プロセス２０２を使用してプロセッサ１２によって３Ｄモデルオブジェクト距離２０４に変換され得る。言い換えると、距離変換プロセス２０２は、現実世界の距離を３Ｄモデル空間における距離に変換する。距離変換プロセス２０２は、現実世界の距離２００を、（RatioOf3DWorldByRealWorldと呼ばれる）現実世界の空間に対する３Ｄワールド空間の比率によって乗算することによって、達成され得る。RatioOf3DWorldByRealWorldは、以下のように規定される。
【００６６】
【数１】
2019519835.tif 000003
【００６７】
[0084]  WidthOfProjectionPlane２０８は、投影面２１２からの仮想カメラ２０６がいるところまでの距離（DistanceOfProjectionPlane２１０）が与えられたときの仮想カメラ２０６によって収集され得るライトフィールドの幅を規定する変数である。投影面２１２は、３Ｄワールドにおけるオブジェクト（例えば、図９において３Ｄモデルオブジェクトとラベル付けられた、アノテーション）が投影される面である。本開示の例では、投影面２１２は、レンズレットアレイ、またはピンホールマスクであり得る。変数PhysicalDimensionOfDisplayWidthは、実際の物理的なディスプレイの幅である。変数fovは、WidthOfProjectionPlane２０８およびDistanceOfProjectionPlane２１０を与えられたときのカメラ２０６によって可視の（例えば角度によって規定される）視野である。tanは、タンジェント演算を表す。
【００６８】
[0085]  図１０は、例えばＧＰＵ１４によってアノテーションをレンダリングするために、ＭＶＰマトリクスが特定のカメラビュー（すなわち３Ｄオブジェクト）についてアノテーションにどのように適用されるかを示すフロー図である。まず、３Ｄオブジェクト（例えばアノテーション）頂点データは、ＧＰＵ１４（２２０）によって取得される。アノテーションの各々の形状は、予め規定され、メモリ（例えば、システムメモリ１６）において記憶され得る。ワールド空間における３Ｄオブジェクトの位置は、図９に関して上述された技術を使用して決定され得る。ＧＰＵ１４は、３Ｄオブジェクト頂点データ２２０にモデルマトリクスＭを適用し得、変換された目／カメラ座標（２２２）を生成する。例えば、マトリクスモデルＭは、アノテーションを、位置（Ｘ，Ｙ，オブジェクトの距離）に変換し得、ここにおいて、ＸおよびＹは、特定のカメラビューについて規定される３Ｄワールド空間における座標であり、オブジェクトの距離は、例えば、図９を参照して上述された技術を使用して決定されるように、仮想カメラに対する３Ｄワールド空間におけるアノテーションのＺ距離である。上述されたように、モデルマトリクスは、各カメラビューに対して同じである。モデルマトリクスは、予め規定され得、アノテーションがどのように変換、回転、およびスケーリングされるかを決定する。
【００６９】
[0086]  次に、ＧＰＵ１４は、変換された目／カメラ座標にプロジェクションマトリクス（Ｐ）を適用し、焦点（投影）面上に、クリップされ（clipped）且つ正規化された（normalized）デバイス座標を生成する（２２４）。プロジェクションマトリクス（Ｐ）は、カメラビューの各々に対して異なる。プロジェクションマトリクスがどのように決定されるかが、以下により詳細に記述される。そしてＧＰＵ１４は、ラスタライズされ且つテクスチャマッピングされ得るピクセルを生成するために、クリップされ且つ正規化されたデバイス座標にビューマトリクス（Ｖ）を適用する（２２６）。ビューマトリクス（Ｖ）はまた、カメラビューの各々に対して異なる。ビューマトリクスがどのように決定されるかが、以下により詳細に説明される。
【００７０】
[0087]  ビューマトリクス（Ｖ）の例は、図１１に示される。Ｒｉｇｈｔ座標、ｒｉｇｈｔ＿ｘ、ｒｉｇｈｔ＿ｙ、およびｒｉｇｈｔ＿ｚは、カメラからｒｉｇｈｔベクトル（Ｘ方向）の座標である。Ｕｐ座標Ｕｐ＿ｘ、Ｕｐ＿ｙ、およびＵｐ＿ｚは、カメラからＵｐベクトル（Ｙ方向）の座標である。Ｌｏｏｋ座標Ｌｏｏｋ＿ｘ、Ｌｏｏｋ＿ｙ、およびＬｏｏｋ＿ｚは、カメラからＬｏｏｋベクトル（Ｚ方向）の座標である。Ｐｏｓｉｔｉｏｎ座標-（Ｒｉｇｈｔ＊Ｐｏｓｉｔｉｏｎ）、-（Ｕｐ＊Ｐｏｓｉｔｉｏｎ）、および-（Ｌｏｏｋ＊Ｐｏｓｉｔｉｏｎ）は、空間中に特定の仮想カメラの位置を与えられたときの該空間の変換を表す。そのため、カメラの相対位置を与えられたとき各カメラビューに対してビューマトリクスが変えられ得ることが、判る。この場合でも同様に、カメラビューの数、およびカメラの相対位置は、予め規定され、システムメモリ１６における構成ファイルにおいて記憶され得る。
【００７１】
[0088]  ビューマトリクス（Ｖ）の例が図１２に示される。Ｎｅａｒ、Ｆａｒ、ｒｉｇｈｔ、ｌｅｆｔ、ｔｏｐ、およびｂｏｔｔｏｍという用語の定義は、図１３に関連して規定される。カメラ２０６の視錐台は、特定の仮想カメラの視野および位置を与えられたとき、スクリーンに現れる３Ｄワールド空間の領域である。視錐台は、近接面２３４、焦点（投影）面２１２、および遠隔面２３２に関連した３Ｄ形状で規定される。上述されたように、投影面２１２は、３Ｄワールドにおけるオブジェクト（例えば、アノテーション）が投影される面である。遠隔面２３２および近接面２３４は、予め決定され、システムメモリ１６中の構成ファイルに記憶され得る。遠隔面２３２は、３Ｄワールド空間におけるオブジェクトがレンダリングされ得る、カメラ２０６から最も離れている点を表す。近接面２３４は、３Ｄワールド空間におけるオブジェクトがレンダリングされ得る、カメラ２０６から最も近い点を表す。視錐台は、遠隔面２３２、投影面２１２、および近接面２３４によって規定されるピラミッド形状である。視錐台の外のオブジェクトはいずれもレンダリングされない。
【００７２】
[0089]  図１２におけるプロジェクションマトリクス（Ｐ）を参照すると、ｆａｒは、単純に遠隔面２３２であり、ｎｅａｒは近接面２３４である。Ｌｅｆｔは、遠隔面２３２の左端に延びる近接面２３４の左端によって規定される面である。Ｔｏｐは、遠隔面２３２の上端に延びる近接面２３４の上端によって規定される面である。Ｒｉｇｈｔは、遠隔面２３２の右端に延びる近接面２３４の右端によって規定される面である。Ｂｏｔｔｏｍは、遠隔面２３２の下端に延びる近接面２３４の下端によって規定される面である。
【００７３】
[0090]  図１２および図１３の例は、中心のカメラ視錐台に関わる。しかしながら、中心のカメラ以外に、すべての他の仮想カメラの視野が、予め決定されたカメラ分離距離（例えば、Camera_separation_distanceXおよびCamera_separation_distanceY）によってオフセットされる。すなわち、各仮想カメラは、Ｘ方向とＹ方向との両方で３Ｄワールド空間において異なる位置にある。中心のカメラの視錐台に関わるプロジェクションマトリクスＰは、システムメモリ１６に記憶される構成ファイルに記憶され得る。他のカメラに関わるｌｅｆｔ面（ｌｅｆｔ’）、ｒｉｇｈｔ面（ｒｉｇｈｔ’）、ｔｏｐ面（ｔｏｐ’）およびｂｏｔｔｏｍ面（ｂｏｔｔｏｍ’）の更新された値は、以下に示されるように、所定のカメラ分離距離（例えば、Camera_separation_distanceXおよびCamera_separation_distanceY）に基づいて計算され得る。
【００７４】
【数２】
2019519835.tif 000004
【００７５】
そのため、各異なるカメラビューは、異なるプロジェクションマトリクスを有する。
【００７６】
[0091]  図１４は、プロセッサ１２によって実行されるマルチビューコンバージョンプロセス５２をより詳細に示す。図１４に示されているように、マルチビューコンバージョンプロセス５２は、ＨＵＤレンダリングＡＰＩコンバージョン４６によって生成されるコマンドを受信する。すなわち、各ビューについての共通のコマンドと共に、別個のビューすべてについてのビューポートの各々、並びに、いくつかのビューすべてのＭＶＰマトリクスの各々は、ＨＵＤドライバー４８のマルチビューコンバージョンプロセス５２に提供される。マルチビューコンバージョンプロセス５２は、ＨＵＤレンダリングＡＰＩコンバージョン４６から受信されたコマンドを再配列し、階層的なバッファ構造においてコマンドを記憶し、さらなる処理のためにＧＰＵドライバー５６にコマンドを送る。
【００７７】
[0092]  １つの例では、マルチビューコンバージョンプロセスは、第１のレベルバッファにおいて各ビューに関わるＭＶＰコマンド（例えば、glUniformmatrix4fv）および、ビューポートコマンド（例えば、glViewPort）の各々を記憶し得る。例えば、図１４に示されるように、Ｖ１１に関わるＭＶＰコマンドおよびビューポートは、第１のレベルの間接バッファ１６０（ＩＢ１＿Ｖ１１）に記憶される。一例では、マルチビューコンバージョンプロセス５２は、すべてのビューについて別個の第１のレベルの間接バッファ中に、ビューポートおよびＭＶＰコマンドを記憶し得る。汎用の第１のレベルの間接バッファ１６２（ＩＢ１＿Ｖｍｎ）が、汎用のビューＶｍｎについて示されている。他の例では、各ビューについてのビューポートおよびＭＶＰコマンドは、単一の第１のレベルの間接バッファにおいて連結され得る。
【００７８】
[0093]  本開示の一例としての技術に従えば、マルチビューコンバージョンプロセス５２は、第１のレベルの間接バッファ（例えば、バッファ１６０および１６２）にビュー固有のコマンド（マルチビューコマンド）を単に配置する。マルチビューコンバージョンプロセス５２は、１つまたは複数の第２のレベルのバッファにおいて、ビュー固有でないコマンド（例えば共通のコマンド）を記憶する。例えば、ビューポートをセットアップすることに関わる共通のコマンドが、第２のレベルの間接バッファ１６４（ＩＢ２＿１）に記憶され得、ＭＶＰマトリクスを使用してレンダリングすることに関わる共通のコマンドは、第２のレベルの間接バッファ１６６（ＩＢ２＿２）に記憶され得る。
【００７９】
[0094]  第２のレベルの間接バッファ１６４中のコマンドを実行するために、マルチビューコンバージョンプロセスは、第２のレベルの間接バッファ１６４中のコマンドを呼び出すために、第１のレベルの間接バッファ１６０に命令（Call IB2＿1）を含む。同様に、第２のレベルの間接バッファ１６６中のコマンドを実行するために、マルチビューコンバージョンプロセスは、第２のレベルの間接バッファ１６６中のコマンドを呼び出すために、第１のレベルの間接バッファ１６０に命令（Call IB2＿2）を含む。このようにして、すべてのビューに共通のコマンドが、第２のレベルの間接バッファの１セットに、一度ＧＰＵドライバー５６に供給されれば良い。
【００８０】
[0095]  ＨＵＤレンダリングＡＰＩコンバージョン４６とマルチビューコンバージョンプロセス５２の両方の実行によって、プロセッサ１２は、ＧＰＵ１４が１つのパスでインフォテインメントおよび位置アノテーション論理３６によって提供されるアノテーションをレンダリングし得るように、コマンドの単一のセットを生成することが可能である。従来の技術は、各ビューについて別個のコマンドストリームを必要とし、従って、図７の例では、マルチビュータイル１５２の２５個のビューを与えられたとき、２５個の別個のレンダリングパスを必要としてきた。
【００８１】
[0096]  図６に戻ると、マルチビューコンバージョンプロセス５２を実行し、階層的なコマンド構造を生成した後に、プロセッサ１２は、使用される特定のＧＰＵ１４における実行のために必要とされる任意の他のコマンドを生成するために、ＧＰＵドライバー５６を実行し得る。そしてＧＰＵ１４は、プロセッサ１２によって生成されるコマンドを実行し、複数のビューの各々においてアノテーションをレンダリングするように構成される。そしてＧＰＵ１４によってレンダリングされたフレームは、マルチビュータイル１５２のフォーマットでメモリ（例えば、図１のシステムメモリ１６）に記憶され得る（図７参照）。
【００８２】
[0097]  プロセッサ１２は、ディスプレイドライバー５８を通じて、ＧＰＵ１４によってレンダリングされたフレームがディスプレイ１８によって表示されるように、ディスプレイプロセッサ２４に命令し得る。ＧＰＵによってレンダリングされたフレームは、マルチビュータイルフォーマットで記憶され得、ここにおいて、フレームの各タイルは、レンダリングされたビューのうちの１つである。しかしながら、データの異なるフォーマットは、ライトフィールドディスプレイを使用してこのようなシーンを表示することを求められ得る。ディスプレイプロセッサ２４は、ＧＰＵ１４によって生成されたマルチビュータイルフォーマットを、ディスプレイ１８に対応するフォーマットに、再配列するように構成される。
【００８３】
[0098]  図１５は、マルチビュータイル１５２からライトフィールドタイル１７０への例としてのコンバージョンプロセスを示す概念図である。この場合も同様に、上述されたように、マルチビュータイル１５２の各ビューは、特定の仮想カメラアングルからレンダリングされる全体のフレームを表す。そのため、それらはマルチビュータイル１５２においてコロケートされないが、ビューＶｍｎの各々における対応するピクセルは、レンダリングされるシーンにおいて空間的にコロケートされる。例えば、Ｖ１１の左上のコーナーにおけるピクセルは、ビューＶ５３、およびビュー３５、などにおける左上のコーナーと同じシーンのエリアを、しかし異なるカメラアングルで、表す。そのため、ディスプレイプロセッサ２４は、すべての対応するピクセルがライトフィールドタイル１７０を生成するためにグループ化されるように、マルチビュータイル１５２においてピクセルを再配列するように構成され得る。
【００８４】
[0099]  一例として、ライトフィールドタイル１７０の第１のディスプレイラインは、マルチビュータイル１５２のビューの第１の行におけるすべてのビュー（すなわち、ビューＶ１１、Ｖ１２、Ｖ１３、Ｖ１４、Ｖ１５）の第１のラインからのすべてのピクセルを含み得る。しかしながら、上述されたように、ディスプレイプロセッサ２４は、ビューＶ１１の左上のコーナーにおけるピクセルが最初であり、Ｖ１２の左上のコーナーにおけるピクセルがそれに後続し、Ｖ１３の左上のコーナーにおけるピクセルがそれに後続する、というように、ピクセルを再配列する。一度Ｖ１５の左上のコーナーにおけるピクセルに達すると、ライトフィールドタイル１７０の第１のディスプレイラインにおける次のピクセルは、ビューＶ１１の上側のラインにおける第２のピクセルである。
【００８５】
[0100]  ライトフィールドタイル１７０において、第２のディスプレイラインは、マルチビュータイル１５２の第１の行のビューにおけるピクセルの第２の行から生じるのではなく、マルチビュータイル１５２の第２の行のビュー（すなわち、ビューＶ２１、Ｖ２２、Ｖ２３、Ｖ２４、Ｖ２５）のピクセルの第１の行から生じる。このプロセスは、マルチビュータイル１５２の全体に対して繰り返される。
【００８６】
[0101]  図１６は、例としてのライトフィールドタイル１７０を詳細に示す。図１６の例は、ディスプレイ１８がレンズレットアレイを使用するケースにおけるライトフィールドタイル配列を示す。以下に説明されるように、異なる配列が、ピンホールマスクを使用するディスプレイを含む、種々のタイプのディスプレイのために使用され得る。図１６の例は、３つの異なるレンズレットアレイによって投影するためのデータに相当する３ピクセルを示す。ライトフィールドサブタイル１７４（ピクセルｎ−１）は、レンズレットｎ−１によって投影され、ライトフィールドサブタイル１７６（ピクセルｎ）は、レンズレットｎによって投影され、ライトフィールドサブタイル１７８（ピクセルｎ＋１）は、レンズレットｎ＋１によって投影される。図２６で判るように、各ライトフィールドサブタイルは、２５のピクセル値を含む。これら２５のピクセル値は、マルチビュータイルの２５の異なるビューから取得される。記号表示ピクセル＿ｎ−１、ピクセル＿ｎおよびピクセル＿ｎ＋１は、特定のビュー内のピクセルのロケーションを示し、一方で、カメラ１１は、特定のビューを示す（すなわち、カメラ１１はＶ１１と同じであり、カメラ１２はＶ１２と同じである、など）。
【００８７】
[0102]  図６に戻ると、ディスプレイプロセッサ２４がライトフィールドタイル１７０を生成した後に、ディスプレイプロセッサは、（例えば、図１のシステムメモリ１６において）フレームバッファにおけるライトフィールドタイル１７０を記憶することと、ライトフィールドタイル１７０を表示するように下層のディスプレイ６０に命令することとを行うように、構成され得る。他の例では、ディスプレイプロセッサ２４は、システムメモリ１６にライトフィールドタイル１７０を書き込むことなく、直接ディスプレイ１８にライトフィールドタイル１７０を送り得る。図６の例では、下層のディスプレイ６０は、ＬＣＤまたはＤＬＰであり得るが、他のタイプの下層のディスプレイが使用されても良い。下層のディスプレイ６０によって生成される光を案内して３次元の視野を生成するために、下層のディスプレイ６０によって生成された光は、ピンホールまたはレンズレットアレイ６４を通じて案内される。
【００８８】
[0103]  散乱光をコリメートしてユーザの視野において最後に表示される画像６６を投影し返すために、散乱光は、結合器６２に向けられ得る。結合器は、ガラスから成る平坦な部品であり得るか、他のメカニズム（例えばビームスプリッタ）であり得、それは、光をコリメートし、（例えば、自動車のフロントガラスにおける）ユーザの視界内で、ユーザにライトフィールドを投影し返す。
【００８９】
[0104]  図１７は、例としてのディスプレイタイプを示す図である。一例では、ディスプレイ１８は、レンズレットアレイを使用し得る。レンズレットアレイは、表示される各ピクセルに対して複数のレンズレット１８０を含み得る。レンズレット１８０は、異なる角度で下層のディスプレイ６０によって生成された光を案内するレンズである。図１７で判るように、レンズレット１８０は、レンズレット１８０の屈折焦点距離（refractive focal length）に基づいて、一般的に外側に向かった角度で光を案内する。そのため、ライトフィールドサブタイル１７４の配列は、ディスプレイプロセッサ２４によって使用され得る。
【００９０】
[0105]  別の例では、ディスプレイ１８は、表示される各ピクセルに対して１つのピンホール１８２を含む、１つのピンホールマスクを使用し得る。図１７に示されているように、スクリーンピクセル(s)と１つのピンホールとの間の距離（Ｄｓｐａｃｅ）は、ピンホール１８０によって生成される散乱光の最大の視野角（Ｍａｘ ＶｉｅｗＡｎｇｌｅ）を規定する。Ｄｓｐａｃｅがより大きいほどに、視野角（viewing angle）はより大きくなる。ピンホール１８２は、ギャップ（Ｄｓｐａｃｅ）およびホールロケーションに基づいて、下層のディスプレイ６０によって生成される光を案内する。
【００９１】
[0106]  図１７に示されているように、光は、レンズレット１８０とは逆のやり方でピンホール１８０によって散光される。すなわち、左端のスクリーンピクセルは、レンズレット１８０のように、左には向けられず、しかし、ピンホール１８２を使用して右に向けられる。そのため、ライトフィールドサブタイル１７４の配列は、ピンホール１８２と使用されるべきではない。その代わりに、ライトフィールドタイルは、ライトフィールドサブタイル１７５によって示されるように、左から右に、反転されるべきである。
【００９２】
[0107]  図９乃至１３を再度参照すると、ピンホール１８２によって、またはレンズレット１８０によって生成される最大角度は、投影面までの所定の距離（図９のdistance_of_projection_plane）を与えられたとき、３Ｄワールド空間における仮想カメラの位置を決定する。ピンホールマスク１８２中の１つの特定のピンホールの後ろのピクセルの数は、使用され得るカメラビューの総数を決定する。本開示の一例では、ディスプレイ１８は、ピンホールにつき５ｘ５マトリックスのピクセルが存在するように、構成される。そのため、各５ｘ５マトリックスのピクセルは、１カメラビューに対応する。かくして、５ｘ５マルチビュータイルは、５ｘ５の対応するカメラからレンダリングされる。
【００９３】
[0108]  図１８は、本開示の例としての方法を示すフローチャートである。本開示の一例では、プロセッサ１２は、オブジェクトまでの距離を決定するように構成され得る（３００）。例えば、プロセッサ１２は、現実世界のオブジェクトまでの距離を決定するように、距離推定ユニット３０を指示（direct）し得る。プロセッサ１２は、距離に基づいてディスプレイ１８で第１のアノテーションを表示するための焦点距離を計算するようにさらに構成され得る（３０２）。プロセッサ１２は、ＧＰＵ１４およびディスプレイプロセッサ２４と併せて、第１のアノテーションをレンダリングし、計算された焦点距離で第１のアノテーションを表示し得る（３０４）。一例では、ディスプレイ１８は、プロジェクションディスプレイである。他の例では、プロジェクションディスプレイは、ピンホール、マスクを使用するライトフィールドプロジェクタ、レンズレットアレイを使用するライトフィールドプロジェクタ、またはレチナールプロジェクタのうちの１つである。
【００９４】
[0109]  本開示のさらなる例では、プロセッサ１２は、距離推定ユニット３０を使用して、オブジェクトまでの更新された距離を決定するように構成され得る。プロセッサ１２は、さらに、更新された距離に基づいて第１のアノテーションを表示するための更新された焦点距離を計算し、更新された焦点距離で、ディスプレイで第１のアノテーションを表示し得る。
【００９５】
[0110]  他の例では、プロセッサ１２は、１つまたは複数の追加のアノテーションについて、それぞれの焦点距離を決定すること、１つまたは複数の追加のアノテーションは第１のアノテーションとは異なる、と、それぞれの焦点距離で１つまたは複数の追加のアノテーションを表示することと、を行うように構成され得る。一例では、オブジェクトまでの距離を決定することは、一連の時間間隔でオブジェクトまでの距離を絶えず決定することを備え、焦点距離を計算することは、一連の時間間隔で距離に基づいて焦点距離を絶えず計算することを備える。
【００９６】
[0111]  本開示の他の例では、ＧＰＵ１４は、複数のビューで第１のアノテーションをレンダリングするように構成され得る。この例では、プロセッサ１２は、複数のビューについてマルチビュービューポートを受信し、複数のビューについてモデルビュープロジェクションを受信し、複数のビューの各それぞれのビューについて、それぞれのビューポートを生成し、複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成し、複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、複数のビューの各それぞれのビューに固有の第１のコマンドを記憶し、複数のビューの各それぞれのビューに共通である第２のコマンドを第２のレベルバッファに記憶するように構成され得、ここにおいて、それぞれの第１のレベルバッファ中の第１のコマンドは、第２のレベルバッファ中の第２のコマンドを呼び出す。ＧＰＵ１４は、第１のアノテーションをレンダリングするように構成され得、複数のビューの各々について、それぞれの第１のレベルバッファを実行することを備える。
【００９７】
[0112]  本開示の別の例では、レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶される。この例では、ディスプレイプロセッサ２４は、レンダリングされた第１のアノテーションをマルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換するように構成され得る。
【００９８】
[0113]  １つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせでインプリメントされ得る。ソフトウェアでインプリメントされる場合、これら機能は、コンピュータ可読媒体上で１つまたは複数の命令またはコードとして記憶または送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体のような有形の媒体に対応する、コンピュータ可読記憶媒体を含み得る。このように、コンピュータ可読媒体は一般的に、非一時的である有形のコンピュータ可読記憶媒体に対応し得る。データ記憶媒体は、本開示で説明された技法のインプリメンテーションのための命令、コード、および／またはデータ構造を取り出すために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされることができる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【００９９】
[0114]  限定ではなく例として、このようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、フラッシュメモリ、あるいは、データ構造または命令の形式で所望のプログラムコードを記憶するために使用可能であり、かつコンピュータによってアクセスされることができるその他任意の媒体を備えることができる。コンピュータ可読記憶媒体およびデータ記憶媒体は、搬送波、信号、または他の一時的な媒体を含まないが、代わりとして非一時的な有形の記憶媒体を対象にすることが理解されるべきである。ディスク（disk）およびディスク（disc）は、本書で使用される場合、コンパクトディスク（ＣＤ）（disc）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（ＤＶＤ）（disc）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、本書では、ディスク（disk）は通常、磁気的にデータを再生し、その一方でディスク（disc）は、レーザーを用いて光学的にデータを再生する。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１００】
[0115]  命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等な集積されたまたはディスクリートな論理回路などの、１つまたは複数のプロセッサによって実行され得る。したがって、本書で使用される場合、「プロセッサ」という用語は、前述の構造、または本書で説明された技法のインプリメンテーションに適したその他任意の構造のいずれかを称し得る。これに加えて、いくつかの態様では、本書で説明された機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび／またはソフトウェアモジュール内で提供され得、または、組み合わされたコーデックに組み込まれ得る。また、これら技法は、１つまたは複数の回路または論理要素において完全にインプリメントされ得る。
【０１０１】
[0116]  本開示の技法は、無線ハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、幅広い様々なデバイスまたは装置でインプリメントされ得る。様々な構成要素、モジュール、またはユニットは、本開示において、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するために説明されているが、それらは、異なるハードウェアユニットによる実現を必ずしも必要とするわけではない。むしろ、上述されたように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされ得るか、または適切なソフトウェアおよび／またはファームウェアと併せて、上述のような１つまたは複数のプロセッサを含む、相互運用ハードウェアユニットの集合によって提供され得る。
【０１０２】
[0117]  様々な例が説明された。これらの例および他の例は、以下の特許請求の範囲の範囲内にある。
【図１】
2019519835.tif 000005
【図２】
2019519835.tif 000006
【図３】
2019519835.tif 000007
【図４】
2019519835.tif 000008
【図５】
2019519835.tif 000009
【図６】
2019519835.tif 000010
【図７】
2019519835.tif 000011
【図８】
2019519835.tif 000012
【図９】
2019519835.tif 000013
【図１０】
2019519835.tif 000014
【図１１】
2019519835.tif 000015
【図１２】
2019519835.tif 000016
【図１３】
2019519835.tif 000017
【図１４】
2019519835.tif 000018
【図１５】
2019519835.tif 000019
【図１６】
2019519835.tif 000020
【図１７】
2019519835.tif 000021
【図１８】
2019519835.tif 000022
【手続補正書】
【提出日】平成30年11月5日(2018.11.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
情報ディスプレイのための方法であって、前記方法は、
ディスプレイとオブジェクトとの間の距離を決定することと、
前記距離に基づいて前記ディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、
前記計算された焦点距離に基づいて複数のビューで前記第１のアノテーションを、グラフィック処理ユニット（ＧＰＵ）で、レンダリングすることと、を備え、ここにおいて、レンダリングすることは、
前記複数のビューについて、マルチビュービューポートを受信することと、
前記複数のビューについて、モデルビュープロジェクションを受信することと、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成することと、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成することと、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、記憶することと、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶することと、ここにおいて、前記それぞれの第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記複数のビューの各々について、前記それぞれの第１のレベルバッファを実行することと、
前記焦点距離で前記レンダリングされた第１のアノテーションを、前記ディスプレイで、表示することと、を含む、方法。
【請求項２】
前記オブジェクトまでの更新された距離を決定することと、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算することと、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示することと、
をさらに備える、請求項１に記載の方法。
【請求項３】
１つまたは複数の追加のアノテーションについて、それぞれの焦点距離を決定することと、前記１つまたは複数の追加のアノテーションは前記第１のアノテーションとは異なり、
前記１つまたは複数の追加のアノテーションをそれらのそれぞれの焦点距離で表示することと、
をさらに備える、請求項２に記載の方法。
【請求項４】
前記オブジェクトまでの前記距離を決定することは、一連の時間間隔で前記オブジェクトまでの前記距離を絶えず決定することを備え、
前記焦点距離を計算することは、前記時間間隔の各々で前記距離に基づいて前記焦点距離を絶えず計算することを備える、請求項１に記載の方法。
【請求項５】
前記ディスプレイは、プロジェクションディスプレイである、請求項１に記載の方法。
【請求項６】
前記プロジェクションディスプレイは、ピンホール、マスクを使用するライトフィールドプロジェクタ、レンズレットアレイを使用するライトフィールドプロジェクタ、またはレチナールプロジェクタのうちの１つである、請求項５に記載の方法。
【請求項７】
前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記方法はさらに、
ディスプレイプロセッサで、前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換すること、を備える、請求項１に記載の方法。
【請求項８】
情報ディスプレイのための装置であって、前記装置は、
アノテーションを記憶するように構成されているメモリと、
１つまたは複数のプロセッサと、を備え、前記１つまたは複数のプロセッサは、
ディスプレイとオブジェクトとの間の距離を決定することと、
前記距離に基づいて前記ディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、
前記計算された焦点距離に基づいて複数のビューで前記第１のアノテーションをレンダリングすることと、を行うように構成され、ここにおいて、前記第１のアノテーションをレンダリングするために、前記１つまたは複数のプロセッサはさらに、
前記複数のビューについて、マルチビュービューポートを受信することと、
前記複数のビューについて、モデルビュープロジェクションを受信することと、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成することと、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成することと、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、記憶することと、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶することと、ここにおいて、前記それぞれの第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記複数のビューの各々について、前記それぞれの第１のレベルバッファを実行することと、
前記焦点距離で前記レンダリングされた第１のアノテーションを表示することと、を行うように構成されている、装置。
【請求項９】
前記１つまたは複数のプロセッサはさらに、
前記オブジェクトまでの更新された距離を決定することと、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算することと、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示することと、を行うように構成されている、請求項８に記載の装置。
【請求項１０】
前記１つまたは複数のプロセッサはさらに、
１つまたは複数の追加のアノテーションについて、それぞれの焦点距離を決定することと、前記１つまたは複数の追加のアノテーションは前記第１のアノテーションとは異なり、
前記１つまたは複数の追加のアノテーションをそれらのそれぞれの焦点距離で表示することと、を行うように構成されている、請求項９に記載の装置。
【請求項１１】
前記オブジェクトまでの前記距離を決定するために、前記１つまたは複数のプロセッサは、一連の時間間隔で前記オブジェクトまでの前記距離を絶えず決定するように構成され、
前記焦点距離を計算するために、前記１つまたは複数のプロセッサは、前記一連の時間間隔で前記距離に基づいて前記焦点距離を絶えず計算するように構成されている、請求項８に記載の装置。
【請求項１２】
前記ディスプレイをさらに備える、請求項８に記載の装置。
【請求項１３】
前記ディスプレイは、プロジェクションディスプレイである、請求項１２に記載の装置。
【請求項１４】
前記プロジェクションディスプレイは、ピンホール、マスクを使用するライトフィールドプロジェクタ、レンズレットアレイを使用するライトフィールドプロジェクタ、またはレチナールプロジェクタのうちの１つである、請求項１３に記載の装置。
【請求項１５】
前記１つまたは複数のプロセッサは、中央処理ユニットとグラフィック処理ユニットとを含む、請求項８に記載の装置。
【請求項１６】
前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記装置はさらに、
前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換するように構成されたディスプレイプロセッサを備える、請求項８に記載の装置。
【請求項１７】
装置情報ディスプレイであって、前記装置は、
ディスプレイとオブジェクトとの間の距離を決定するための手段と、
前記距離に基づいて前記ディスプレイで第１のアノテーションを表示するための焦点距離を計算するための手段と、
前記計算された焦点距離に基づいて複数のビューで前記第１のアノテーションをレンダリングするための手段と、を備え、ここにおいて、レンダリングするための前記手段は、
前記複数のビューについて、マルチビュービューポートを受信するための手段と、
前記複数のビューについて、モデルビュープロジェクションを受信するための手段と、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成するための手段と、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成するための手段と、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、記憶するための手段と、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶するための手段と、ここにおいて、前記それぞれの第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記複数のビューの各々について、前記それぞれの第１のレベルバッファを実行するための手段と、
前記焦点距離で前記レンダリングされた第１のアノテーションを表示するための手段と、を含む、装置。
【請求項１８】
前記オブジェクトまでの更新された距離を決定するための手段と、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算するための手段と、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示するための手段と、
をさらに備える、請求項１７に記載の装置。
【請求項１９】
前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記装置はさらに、
前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換するための手段を備える、
請求項１７に記載の装置。
【請求項２０】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたときに１つまたは複数のプロセッサに、
ディスプレイとオブジェクトとの間の距離を決定することと、
前記距離に基づいて前記ディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、
前記計算された焦点距離に基づいて複数のビューで前記第１のアノテーションをレンダリングすることと、を行わせ、ここにおいて、前記第１のアノテーションをレンダリングするために、前記命令はさらに、前記１つまたは複数のプロセッサに、
前記複数のビューについて、マルチビュービューポートを受信することと、
前記複数のビューについて、モデルビュープロジェクションを受信することと、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成することと、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成することと、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、記憶することと、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶することと、ここにおいて、前記それぞれの第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記複数のビューの各々について、前記それぞれの前記第１のレベルバッファを実行することと、
前記焦点距離で前記レンダリングされた第１のアノテーションを表示することと、を行わせる、コンピュータ可読記憶媒体。
【請求項２１】
前記命令はさらに、前記１つまたは複数のプロセッサに、
前記オブジェクトまでの更新された距離を決定することと、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算することと、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示することと、を行わせる、請求項２０に記載のコンピュータ可読記憶媒体。
【請求項２２】
前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記命令はさらに、前記１つまたは複数のプロセッサに、
前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換させる、請求項２０に記載のコンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
[0117]  様々な例が説明された。これらの例および他の例は、以下の特許請求の範囲の範囲内にある。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］情報ディスプレイのための方法であって、前記方法は、
オブジェクトまでの距離を決定することと、
前記距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、
前記焦点距離で前記第１のアノテーションを、前記ディスプレイで、表示することと、
を備える、方法。
［Ｃ２］前記オブジェクトまでの更新された距離を決定することと、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算することと、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示することと、
をさらに備える、［Ｃ１］に記載の方法。
［Ｃ３］１つまたは複数の追加のアノテーションについて、それぞれの焦点距離を決定することと、前記１つまたは複数の追加のアノテーションは前記第１のアノテーションとは異なり、
前記１つまたは複数の追加のアノテーションをそれらのそれぞれの焦点距離で表示することと、
をさらに備える、［Ｃ２］に記載の方法。
［Ｃ４］前記オブジェクトまでの前記距離を決定することは、一連の時間間隔で前記オブジェクトまでの前記距離を絶えず決定することを備え、
前記焦点距離を計算することは、前記時間間隔の各々で前記距離に基づいて前記焦点距離を絶えず計算することを備える、［Ｃ１］に記載の方法。
［Ｃ５］前記ディスプレイは、プロジェクションディスプレイである、［Ｃ１］に記載の方法。
［Ｃ６］前記プロジェクションディスプレイは、ピンホール、マスクを使用するライトフィールドプロジェクタ、レンズレットアレイを使用するライトフィールドプロジェクタ、またはレチナールプロジェクタのうちの１つである、［Ｃ５］に記載の方法。
［Ｃ７］グラフィック処理ユニット（ＧＰＵ）で、前記第１のアノテーションを、複数のビューでレンダリングすることをさらに備える、［Ｃ１］に記載の方法。
［Ｃ８］前記複数のビューについて、マルチビュービューポートを受信することと、
前記複数のビューについて、モデルビュープロジェクションを受信することと、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成することと、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成することと、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、記憶することと、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶することと、
をさらに備え、
前記それぞれの第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記第１のアノテーションをレンダリングすることは、前記複数のビューの各々について、それぞれの前記第１のレベルバッファを実行することを備える、
［Ｃ７］に記載の方法。
［Ｃ９］前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記方法はさらに、
ディスプレイプロセッサで、前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換すること、を備える、［Ｃ８］に記載の方法。
［Ｃ１０］情報ディスプレイのための装置であって、前記装置は、
アノテーションを記憶するように構成されているメモリと、
１つまたは複数のプロセッサと、を備え、前記１つまたは複数のプロセッサは、
オブジェクトまでの距離を決定することと、
前記距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、
前記焦点距離で前記第１のアノテーションを表示することと、
を行うように構成されている、装置。
［Ｃ１１］前記１つまたは複数のプロセッサはさらに、
前記オブジェクトまでの更新された距離を決定することと、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算することと、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示することと、を行うように構成されている、［Ｃ１０］に記載の装置。
［Ｃ１２］前記１つまたは複数のプロセッサはさらに、
１つまたは複数の追加のアノテーションについて、それぞれの焦点距離を決定することと、前記１つまたは複数の追加のアノテーションは前記第１のアノテーションとは異なり、
前記１つまたは複数の追加のアノテーションをそれらのそれぞれの焦点距離で表示することと、を行うように構成されている、［Ｃ１１］に記載の装置。
［Ｃ１３］前記オブジェクトまでの前記距離を決定するために、前記１つまたは複数のプロセッサは、一連の時間間隔で前記オブジェクトまでの前記距離を絶えず決定するように構成され、
前記焦点距離を計算するために、前記１つまたは複数のプロセッサは、前記一連の時間間隔で前記距離に基づいて前記焦点距離を絶えず計算するように構成されている、［Ｃ１０］に記載の装置。
［Ｃ１４］前記ディスプレイをさらに備える、［Ｃ１０］に記載の装置。
［Ｃ１５］前記ディスプレイは、プロジェクションディスプレイである、［Ｃ１４］に記載の装置。
［Ｃ１６］前記プロジェクションディスプレイは、ピンホール、マスクを使用するライトフィールドプロジェクタ、レンズレットアレイを使用するライトフィールドプロジェクタ、またはレチナールプロジェクタのうちの１つである、［Ｃ１５］に記載の装置。
［Ｃ１７］前記１つまたは複数のプロセッサは、中央処理ユニットとグラフィック処理ユニットとを含む、［Ｃ１０］に記載の装置。
［Ｃ１８］前記グラフィック処理ユニットは、前記第１のアノテーションを、複数のビューでレンダリングするように構成されている、［Ｃ１７］に記載の装置。
［Ｃ１９］前記中央処理ユニットはさらに、
前記複数のビューについて、マルチビュービューポートを受信することと、
前記複数のビューについて、モデルビュープロジェクションを受信することと、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成することと、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成することと、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、記憶することと、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶することと、
を行うように構成され、
前記それぞれの第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記第１のアノテーションをレンダリングするために、前記グラフィック処理ユニットは、前記複数のビューの各々について、それぞれの前記第１のレベルバッファを実行するように構成されている、［Ｃ１８］に記載の装置。
［Ｃ２０］前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記装置はさらに、
前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換するように構成されたディスプレイプロセッサを備える、［Ｃ１９］に記載の装置。
［Ｃ２１］装置情報ディスプレイであって、前記装置は、
オブジェクトまでの距離を決定するための手段と、
前記距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算するための手段と、
前記焦点距離で前記第１のアノテーションを表示するための手段と、
を備える、装置。
［Ｃ２２］前記オブジェクトまでの更新された距離を決定するための手段と、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算するための手段と、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示するための手段と、
をさらに備える、［Ｃ２１］に記載の装置。
［Ｃ２３］複数のビューで前記第１のアノテーションをレンダリングするための手段をさらに備える、［Ｃ２１］に記載の装置。
［Ｃ２４］前記複数のビューについて、マルチビュービューポートを受信するための手段と、
前記複数のビューについて、モデルビュープロジェクションを受信するための手段と、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成するための手段と、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成するための手段と、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに、記憶するための手段と、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶するための手段と、
をさらに備え、
前記それぞれの前記第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記第１のアノテーションをレンダリングするための前記手段は、前記複数のビューの各々について、それぞれの前記第１のレベルバッファを実行するための手段を備える、
［Ｃ２３］に記載の装置。
［Ｃ２５］前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記装置はさらに、
前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換するための手段を備える、
［Ｃ２４］に記載の装置。
［Ｃ２６］命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたときに１つまたは複数のプロセッサに、
オブジェクトまでの距離を決定することと、
前記距離に基づいてディスプレイで第１のアノテーションを表示するための焦点距離を計算することと、
前記焦点距離で前記第１のアノテーションを表示することと、
を行わせる、コンピュータ可読記憶媒体。
［Ｃ２７］前記命令はさらに、前記１つまたは複数のプロセッサに、
前記オブジェクトまでの更新された距離を決定することと、
前記更新された距離に基づいて、前記第１のアノテーションを表示するための更新された焦点距離を計算することと、
前記更新された焦点距離で、前記ディスプレイで、前記第１のアノテーションを表示することと、を行わせる、［Ｃ２６］に記載のコンピュータ可読記憶媒体。
［Ｃ２８］前記命令はさらに、前記１つまたは複数のプロセッサに、
複数のビューで前記第１のアノテーションをレンダリングさせる、［Ｃ２６］に記載のコンピュータ可読記憶媒体。
［Ｃ２９］前記命令はさらに、前記１つまたは複数のプロセッサに、
前記複数のビューについて、マルチビュービューポートを受信することと、
前記複数のビューについて、モデルビュープロジェクションを受信することと、
前記複数のビューの各それぞれのビューについて、それぞれのビューポートを生成することと、
前記複数のビューの各それぞれのビューについて、それぞれのモデルビュープロジェクションを生成することと、
前記複数のビューの各それぞれのビューに固有の第１のコマンドを、前記複数のビューの各それぞれのビューについてのそれぞれの第１のレベルバッファに記憶することと、
前記複数のビューの各それぞれのビューに共通である第２のコマンドを、第２のレベルバッファに記憶することと、
を行わせ、
前記それぞれの第１のレベルバッファ中の前記第１のコマンドは、前記第２のレベルバッファ中の前記第２のコマンドを呼び出し、
前記第１のアノテーションをレンダリングすることは、前記複数のビューの各々について、それぞれの前記第１のレベルバッファを実行することを備える、
［Ｃ２８］に記載のコンピュータ可読記憶媒体。
［Ｃ３０］前記レンダリングされた第１のアノテーションは、マルチビュータイルフォーマットで記憶され、前記命令はさらに、前記１つまたは複数のプロセッサに、
前記レンダリングされた第１のアノテーションを、前記マルチビュータイルフォーマットからライトフィールドタイルフォーマットに変換させる、［Ｃ２９］に記載のコンピュータ可読記憶媒体。
【国際調査報告】
2019519835.tif 000023
2019519835.tif 000024