(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-09
(45)【発行日】2024-10-18
(54)【発明の名称】静止画内のステレオスプラッシュスクリーンのエンコーディング
(51)【国際特許分類】
G06T 13/80 20110101AFI20241010BHJP
G06F 3/01 20060101ALI20241010BHJP
G06F 3/04845 20220101ALI20241010BHJP
G09G 5/00 20060101ALI20241010BHJP
G09G 5/36 20060101ALI20241010BHJP
G09G 5/37 20060101ALI20241010BHJP
G09G 5/373 20060101ALI20241010BHJP
G09G 5/377 20060101ALI20241010BHJP
G09G 5/38 20060101ALI20241010BHJP
【FI】
G06T13/80 B
G06F3/01 510
G06F3/04845
G09G5/00 510A
G09G5/00 530T
G09G5/00 550B
G09G5/00 550D
G09G5/00 555A
G09G5/00 555G
G09G5/36 500
G09G5/37 100
G09G5/37 200
G09G5/373
G09G5/377 100
G09G5/38
(21)【出願番号】P 2022529534
(86)(22)【出願日】2020-12-02
(86)【国際出願番号】 US2020062817
(87)【国際公開番号】W WO2021113309
(87)【国際公開日】2021-06-10
【審査請求日】2023-11-20
(32)【優先日】2019-12-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】キャップス, マーシャル チャールズ
(72)【発明者】
【氏名】ジェス, アヌループ スレシュ
【審査官】鈴木 肇
(56)【参考文献】
【文献】特開2018-004703(JP,A)
【文献】特開2018-195943(JP,A)
【文献】米国特許出願公開第2018/0338057(US,A1)
【文献】特開2014-098747(JP,A)
【文献】米国特許出願公開第2014/0132977(US,A1)
【文献】米国特許出願公開第2010/0141685(US,A1)
【文献】欧州特許出願公開第02677419(EP,A1)
【文献】中国特許出願公開第107689218(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00
G06T 11/60 -13/80
G06T 17/05
G06T 19/00 -19/20
G06F 3/01
G06F 3/048- 3/04895
G09G 5/00 - 5/42
(57)【特許請求の範囲】
【請求項1】
ウェアラブルシステムによって実施されるコンピュータ化された方法であって、前記ウェアラブルシステムは、1つまたはそれを上回るハードウェアコンピュータプロセッサと、コンピュータ化された方法を実施するために前記ウェアラブルシステムによって実行可能なソフトウェア命令を記憶する1つまたはそれを上回る非一過性コンピュータ可読記憶デバイスとを有し、前記方法は、
画像ファイルをディスプレイバッファの中にロードすることと、
前記ウェアラブルシステムのブートアップ段階を決定することと、
前記決定されたブートアップ段階と関連付けられるガンマテーブル値の複数のセットのうちの1つを選択することと、
前記ガンマテーブル値の選択されたセットを、前記ディスプレイバッファと関連付けられるガンマテーブル記憶装置に書き込むことであって、前記ウェアラブルシステムは、前記ウェアラブルシステムのディスプレイ上に、前記ガンマテーブル記憶装置内の前記ガンマテーブル値によって調節されるように、前記画像ファイルをレンダリングするように構成される、ことと
を含む、方法。
【請求項2】
前記ガンマテーブル値の複数のセットは、対応する少なくとも10個のブートアップ段階と関連付けられるガンマテーブル値の少なくとも10セットを含む、請求項1に記載の方法。
【請求項3】
前記画像ファイルは、
静止画と関連付けられる第1のセットのピクセルであって、前記第1のセットのピクセルのそれぞれは、第1の範囲内のピクセル値を有する、第1のセットのピクセルと、
進行度バーと関連付けられる第2のセットのピクセルであって、前記第2のセットのピクセルのそれぞれは、前記第1の範囲と重複しない第2の範囲内のピクセル値を有する、第2のセットのピクセルと
を含む、請求項1に記載の方法。
【請求項4】
前記第1の範囲は、0~63であり、前記第2の範囲は、64~255である、請求項3に記載の方法。
【請求項5】
前記ピクセル値の第1の範囲と関連付けられる前記ガンマテーブル値は、ブートアップ段階毎に、同一であり、前記ピクセル値の第2の範囲の少なくともいくつかのピクセル値と関連付けられる前記ガンマテーブル値は、対応するブートアップ段階に関して変化する、請求項3に記載の方法。
【請求項6】
前記ピクセル値の第1の範囲と関連付けられる前記ガンマテーブル値は、前記ガンマテーブル値の複数のセットのそれぞれにおいて同一であり、前記ピクセル値の第2の範囲の少なくともいくつかのピクセル値と関連付けられる前記ガンマテーブル値は、前記ガンマテーブル値の異なるセットにおいて変化する、請求項3に記載の方法。
【請求項7】
ウェアラブルシステムによって実施されるコンピュータ化された方法であって、前記ウェアラブルシステムは、1つまたはそれを上回るハードウェアコンピュータプロセッサと、コンピュータ化された方法を実施するために前記ウェアラブルシステムによって実行可能なソフトウェア命令を記憶する1つまたはそれを上回る非一過性コンピュータ可読記憶デバイスとを有し、前記方法は、
静止画のピクセル値毎に、前記ピクセル値を第1の値の範囲に補間することと、
ブートアッププロセスの複数の段階毎に、
前記ブートアッププロセスの段階を描写する画像に対応するピクセル値を決定することと、
前記決定されたピクセル値毎に、前記ピクセル値を1ビットに閾値化することと、
前記ブートアッププロセスの段階と関連付けられる複数のエンコーディングされた乗数のうちのエンコーディングされた乗数を選択することであって、前記複数のエンコーディングされた乗数のそれぞれは、前記第1の値の範囲と重複しない第2の値の範囲内にある、ことと、
前記選択されたエンコーディングされた乗数によって、前記閾値化されたピクセル値のそれぞれを乗算することによって、前記ブートアッププロセスの前記決定された段階のためのエンコーディングされたピクセル値を計算することと、
前記ブートアッププロセスの複数の段階のための前記エンコーディングされたピクセル値を順次オーバーレイすることによって、合成のエンコーディングされたピクセル値を生成することと、
前記静止画と関連付けられる前記補間されたピクセル値と、前記ブートアッププロセスの段階と関連付けられる前記合成のエンコーディングされたピクセル値とを含む画像ファイルを生成することと
を含む、方法。
【請求項8】
第2の静止画のピクセル値毎に、前記ピクセル値を前記第1の値の範囲に補間することによって、第2の補間されたピクセル値を生成することと、
前記ブートアッププロセスの複数の段階毎に、
前記ブートアッププロセスの段階を描写する複数の画像の第2の画像に対応するピクセル値を決定することと、
前記決定されたピクセル値毎に、前記ピクセル値を1ビットに閾値化することと、
前記ブートアッププロセスの段階と関連付けられる前記複数のエンコーディングされた乗数のうちのエンコーディングされた乗数を選択することであって、前記複数のエンコーディングされた乗数のそれぞれは、前記第1の値の範囲と重複しない前記第2の値の範囲内にある、ことと、
前記選択されたエンコーディングされた乗数によって、前記閾値化されたピクセル値のそれぞれを乗算することによって、前記ブートアッププロセスの前記決定された段階のための第2のエンコーディングされたピクセル値を計算することと、
前記ブートアッププロセスの複数の段階のための前記第2のエンコーディングされたピクセル値を順次オーバーレイすることによって、第2の合成のエンコーディングされたピクセル値を生成することと
をさらに含み、
前記画像ファイルはさらに、前記第2の静止画と関連付けられる前記第2の補間されたピクセル値と、前記ブートアッププロセスの段階と関連付けられる前記第2の合成のエンコーディングされたピクセル値とを含む、請求項7に記載の方法。
【請求項9】
前記補間されたピクセル値および前記合成のエンコーディングされたピクセル値は、ディスプレイの左部分上へのレンダリングのために構成され、前記第2の補間されたピクセル値および前記第2の合成のエンコーディングされたピクセル値は、前記ディスプレイの右部分上へのレンダリングのために構成される、請求項8に記載の方法。
【請求項10】
前記閾値化されたピクセル値はそれぞれ、ゼロまたは1のいずれかである、請求項7に記載の方法。
【請求項11】
前記ブートアッププロセスの段階毎に、前記ブートアッププロセスのその段階のための対応する1つまたはそれを上回るエンコーディングされたピクセル値と関連付けられる1つまたはそれを上回るガンマテーブル値を生成することをさらに含む、請求項7に記載の方法。
【請求項12】
前記補間されたピクセル値と関連付けられるガンマテーブル値を生成することをさらに含み、前記ガンマテーブル値は、前記ピクセル値を補間することに先立って、前記静止画のピクセル値を決定するために使用可能である、請求項7に記載の方法。
【請求項13】
前記画像ファイルをディスプレイバッファの中にロードすることと、
周期的に、ブートアッププロセスの現在の段階を決定することと、
前記現在の段階と関連付けられるガンマテーブル値を選択することと、
前記選択されたガンマテーブル値を、ディスプレイと関連付けられるガンマテーブル記憶装置に記憶することであって、前記ディスプレイは、前記ガンマテーブル値によって調節されるように、前記画像ファイルをレンダリングするように構成される、ことと
によって、
ブートアップ画像をレンダリングすること
をさらに含む、請求項11に記載の方法。
【請求項14】
ウェアラブルシステムによって実施されるコンピュータ化された方法であって、前記ウェアラブルシステムは、1つまたはそれを上回るハードウェアコンピュータプロセッサと、コンピュータ化された方法を実施するために前記ウェアラブルシステムによって実行可能なソフトウェア命令を記憶する1つまたはそれを上回る非一過性コンピュータ可読記憶デバイスとを有し、前記方法は、
画像ファイルをロードすることと、
前記画像ファイルを前記ウェアラブルシステムのディスプレイ上にレンダリングすることと、
前記画像ファイルが、前記ウェアラブルシステムのディスプレイ上にレンダリングされている間、
ウェアラブルシステム特性を取得することと、
前記ウェアラブルシステム特性が前のブートアッププロセスから変化しているかどうかを決定することと、
前記ウェアラブルシステム特性が変化している場合、1つまたはそれを上回る幾何学的変換を前記画像ファイルに適用し、調節された画像ファイルを生成し、次のブートアッププロセスによる使用のために、前記調節された画像ファイルを記憶することと
を含む、方法。
【請求項15】
前記ウェアラブルシステム特性は、前記ウェアラブルシステムの付帯または固有の特性のうちの1つまたはそれを上回るものを含む、請求項14に記載の方法。
【請求項16】
ウェアラブルシステムによって実施されるコンピュータ化された方法であって、前記ウェアラブルシステムは、1つまたはそれを上回るハードウェアコンピュータプロセッサと、コンピュータ化された方法を実施するために前記ウェアラブルシステムによって実行可能なソフトウェア命令を記憶する1つまたはそれを上回る非一過性コンピュータ可読記憶デバイスとを有し、前記方法は、
ブート画像ファイルを記憶するように構成されるメモリにアクセスすることと、
前記アクセスされるメモリが、現在のブート画像ファイルを含まないことを決定することに応答して、少なくとも部分的に、グラフィックパイプラインによるブートアッププロセスの実行と同時に、前記ブート画像ファイルを生成することと
を含む、方法。
【請求項17】
前記アクセスされるメモリは、前記アクセスされるメモリが画像ファイルを含まない場合、前記現在のブート画像ファイルを含まないと決定される、請求項16に記載の方法。
【請求項18】
前記アクセスされるメモリは、前記アクセスされるメモリが古いバージョンの画像ファイルを含む場合、前記現在のブート画像ファイルを含まないと決定される、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、仮想現実、拡張現実、および複合現実結像および可視化システムに関する。
【背景技術】
【0002】
現代のコンピューティングおよびディスプレイ技術は、仮想現実(「VR」)、拡張現実(「AR」)、および複合現実(「MR」)システムの開発を促進している。VRシステムは、ユーザが体験するためのシミュレートされた環境を作成する。これは、頭部搭載型ディスプレイを通して、コンピュータ生成画像をユーザに提示することによって行われることができる。本画像は、感覚体験を作成し、これは、ユーザをシミュレートされた環境に没入させる。VRシナリオは、典型的には、実際の実世界画像もまた導入するのではなく、コンピュータ生成画像のみの提示を伴う。
【0003】
ARシステムは、概して、実世界環境をシミュレートされた要素で補完する。例えば、ARシステムは、ユーザに、頭部搭載型ディスプレイを介して、周囲実世界環境のビューを提供し得る。しかしながら、コンピュータ生成画像もまた、ディスプレイ上に提示され、実世界環境を向上させることができる。本コンピュータ生成画像は、実世界環境にコンテキスト的に関連する、要素を含むことができる。そのような要素は、シミュレートされたテキスト、画像、オブジェクト等を含むことができる。MRシステムは、シミュレートされたオブジェクトもまた実世界環境の中に導入するが、これらのオブジェクトは、典型的には、ARシステムより優れた相互作用の程度を特徴とする。シミュレートされた要素は、多くの場合、リアルタイムで相互作用することができる。
【0004】
ヒトの視知覚系は、複雑であって、他の仮想または実世界画像要素の中で仮想画像要素の快適で、自然な感覚で、かつ豊かな提示を促進する、VR/AR/MR技術を生産することは、困難である。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書に開示される仮想現実(「VR」)、拡張現実(「AR」)、および複合現実(「MR」)システムは、ディスプレイを含むことができ、これは、コンピュータ生成像(ビデオ/画像データ)をユーザに提示する。いくつかの実施形態では、ウェアラブルシステムは、装着可能であって、これは、有利なこととして、より没入型のVRまたはAR体験を提供し得る。
【図面の簡単な説明】
【0006】
【
図1】
図1は、ウェアラブルシステムの実施例を図示する。
【0007】
【
図2】
図2は、いくつかの実施形態による、ウェアラブルシステムの簡略化されたブロック図を図示する。
【0008】
【
図3】
図3は、ウェアラブルシステムを用いて、画像をディスプレイ上に提示する実施例を図示する。
【0009】
【
図4】
図4は、較正を使用して、幾何学形状歪曲を防止する、ウェアラブルデバイスのブロック図を図示する。
【0010】
【
図5】
図5は、例示的ブートアッププロセスを図示する、フローチャートである。
【0011】
【
図6A】
図6Aは、ディスプレイハードウェア内のガンマテーブルを更新し、アニメーションエフェクトを作成する、例示的プロセスを図示する、フローチャートである。
【0012】
【
図6B】
図6Bは、画像上のアニメーションエフェクトの実施例を図示する。
【0013】
【
図7】
図7A-7Cは、異なるガンマテーブルの実施例を示す。
【0014】
【
図8A】
図8Aは、ブートアッププロセスの間に表示され得る、静止画と関連付けられる、ピクセルデータの実施例を図示する。
【0015】
【
図8B】
図8Bは、
図8Aの静的画像と関連付けられる、補間されたピクセルデータの実施例を図示する。
【0016】
【
図9A】
図9Aおよび9Bは、エンコーディングプロセスの一部として進行度バーの種々の段階に適用される、ピクセル値変換を図示する。
【
図9B】
図9Aおよび9Bは、エンコーディングプロセスの一部として進行度バーの種々の段階に適用される、ピクセル値変換を図示する。
【0017】
【
図9C】
図9Cは、エンコーディングされたピクセル値の単一セットの中にオーバーレイされた、
図9A-9Bの進行度段階のそれぞれからのエンコーディングされたピクセル値の実施例を図示する。
【0018】
【
図10】
図10は、画像ファイルの下側部分内の静止画(例えば、正方形ロゴ)のエンコーディングされたピクセル値と、画像ファイルの上側部分内の進行度バーのエンコーディングされたピクセル値とを含む、画像データの実施例を図示する。
【0019】
【
図11】
図11は、画像データのあるピクセル値と関連付けられる、ガンマテーブル値の実施例を図示する。
【0020】
【
図12】
図12は、本明細書で議論されるシステムおよび方法を使用して実装され得る、静止画と、アニメーション化された進行度バーとを含む、例示的スプラッシュスクリーン画像を図示する。
【発明を実施するための形態】
【0021】
図1は、装着可能なVR/AR/MRウェアラブルシステム80(以降、「システム80」と称される)の実施例を図示する。システム80は、ディスプレイ62と、そのディスプレイ62の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含む。ディスプレイ62は、フレーム64に結合されてもよく、これは、ウェアラブルシステムユーザまたは視認者60(以降、「ユーザ60」と称される)によって装着可能であって、ディスプレイ62をユーザの眼60の正面に位置付けるように構成される。いくつかの実施形態では、スピーカ66が、フレーム64に結合され、ユーザ60の外耳道に隣接して位置付けられる。いくつかの実施形態では、示されない、別のスピーカが、ユーザ60の他の外耳道に隣接して位置付けられ、ステレオ/調節可能音制御を提供する。ディスプレイ62は、有線または無線接続68等によって、ローカル処理およびデータモジュール70に動作可能に結合され、これは、フレーム64に固定して取り付けられる、ユーザによって装着される、ヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様に、ユーザ60に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において等)等の種々の構成で搭載されてもよい。
【0022】
ローカル処理およびデータモジュール70は、アプリケーションプロセッサ(AP)およびグラフィック処理ユニット(GPU)等の1つまたはそれを上回るプロセッサと、不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリとを含んでもよく、その両方とも、データの処理および記憶を補助するために利用され得る。データは、画像捕捉デバイス(例えば、カメラ)、マイクロホン、慣性測定ユニット、加速度計、コンパス、GPSユニット、無線デバイス、および/またはジャイロスコープ等のセンサから捕捉されたデータを含む。センサは、フレーム64に動作可能に結合される、または別様に、ユーザ60に取り付けられてもよい。代替として、または加えて、センサデータは、遠隔処理モジュール72および/または遠隔データリポジトリ74を使用して、可能性として、処理または読出後に、ディスプレイ62への通過のために、入手および/または処理されてもよい。ローカル処理およびデータモジュール70は、これらの遠隔モジュール72、74が、相互に動作可能に結合され、ローカル処理およびデータモジュール70へのリソースとして利用可能であるように、通信リンク76、78によって、有線または無線通信リンク等を介して、遠隔処理モジュール72および遠隔データリポジトリ74に動作可能に結合されてもよい。
【0023】
いくつかの実施形態では、遠隔処理モジュール72は、データ(例えば、センサデータおよび/または画像情報)を分析および処理するように構成される、1つまたはそれを上回るプロセッサを含んでもよい。いくつかの実施形態では、遠隔データリポジトリ74は、デジタルデータ記憶設備を含んでもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュール内で実施され、遠隔モジュールからの完全自律使用を可能にする。
【0024】
いくつかの実施形態では、ディスプレイ62を介して提供される、コンピュータ生成画像データは、3次元であることの印象を作成することができる。これは、例えば、立体視画像データをユーザ60に提示することによって、行われることができる。いくつかの従来のシステムでは、そのような画像データは、若干異なる目線からの場面またはオブジェクトの別個の画像を含むことができる。別個の画像は、それぞれ、ユーザ60の眼の右眼および左に提示され、したがって、両眼視覚およびその関連付けられる深度知覚をシミュレートすることができる。
【0025】
図2は、いくつかの実施形態による、ウェアラブルシステム200の簡略化されたブロック図を図示する。本実施例では、ウェアラブルシステム200は、アンテナ210と、入出力(I/O)インターフェース220と、1つまたはそれを上回るセンサ230と、ディスプレイ240と、GPU250と、制御回路網260と、アプリケーションプロセッサ(「AP」)270と、記憶装置280とを含むことができる。アンテナ210は、遠隔処理モジュール72または遠隔データリポジトリ74(
図1)等の別のデバイスとの無線通信のために使用されてもよい。ユーザは、ウェアラブルシステムとの相互作用のために、I/Oインターフェース220を使用してもよい。センサ230は、画像捕捉デバイス(例えば、カメラ)、マイクロホン、慣性測定ユニット、加速度計、コンパス、GPSユニット、無線デバイス、ジャイロスコープ、および/または他の入力デバイスを含んでもよい。ディスプレイ240は、左眼および右眼ディスプレイパネル等の1つまたはそれを上回るグラフィカルディスプレイを含んでもよい。ディスプレイ240は、中央処理ユニット(CPU)と、GPUと、記憶装置とを含んでもよい。
【0026】
図2の実施例では、GPU250は、ユーザ60に表示されるための仮想、拡張、および/または複合現実画像データをレンダリングするように構成される。GPU250は、グラフィックパイプラインを含む。制御回路網260は、アンテナ210、I/Oインターフェース220、センサ230、ディスプレイ240、GPU250、AP、および記憶装置280に通信可能に結合されることができる。制御回路網260は、制御信号をアンテナ210、I/Oインターフェース220、センサ230、ディスプレイ240、GPU250、AP、および記憶装置280に送信する。
【0027】
AP270は、中央処理ユニット(CPU)、記憶装置、GPU等を含み、GPU250が、フレームを記憶装置280内に記憶されるデータからレンダリングする間、全体的動作を制御してもよい。AP270は、GPU250および制御回路網をサポートしてもよい。ある実施形態では、制御回路網260およびAP270は、1つのコンポーネントとして統合されてもよい。AP270は、実行されると、AP270に、あるアクションを実施させる、命令を含んでもよい。記憶装置280は、画像源等のデータ、センサ230によって収集されたデータ、命令、およびGPU250、制御回路網260およびAP270によって使用可能な他の情報を記憶するように構成される。
【0028】
図3は、AP(いくつかの実装では、ウェアラブルシステムのCPUと見なされ得る)およびGPUによって実施され得るようなウェアラブルシステムを用いて、画像をディスプレイ上にレンダリングする例示的方法を図示する、フローチャートである。ユーザが、画像ディスプレイのためのアプリケーションを実行するために、ウェアラブルシステムをオンにすると、APは、記憶装置内に記憶されるスタートアップ命令をルックアップし、アプリケーション(例えば、オペレーティングシステムおよび/またはオペレーティングシステム上で実行されるアプリケーション)を実行する前に、それらを実行する。いくつかの実施形態では、APは、適切な機能のために、ウェアラブルシステムのコンポーネントをチェックする動作を開始し、オペレーティングシステムをロードし、これは、概して、ブートプロセスと称される。ブートプロセスは、完了までにある程度の時間(例えば、20~90秒)がかかり、その時間の間、ウェアラブルシステムの機能性は、限定される。ウェアラブルシステムが、完全にブートアップした後、GPUは、左眼および右眼ディスプレイパネル上に投影される、調節された2D画像として、3D画像をレンダリングすることが可能である。しかしながら、いくつかの実装では、GPUは、ブートアッププロセスの間、利用不可能であって、したがって、グラフィックパイプラインを使用した幾何学的に変換される画像の動的生成は、ブートプロセスが完了されるまで、不可能である。
【0029】
図3の実施例では、グラフィックパイプラインは、例えば、GPUの一部として、専用ハードウェアとして実装される。ウェアラブルヘッドセットのコンテキストにおいて、グラフィックパイプラインは、アプリケーション内の3D場面を、ウェアラブルヘッドセットのディスプレイ上に表示される、ビデオまたは画像ファイルに変えるように構成される。
図3に図示されるように、グラフィックパイプラインは、頂点シェーダ、平面充填、幾何学形状シェーダ、頂点後処理、プリミティブアセンブリ、ラスタ化、フラグメントシェーダ、およびサンプルあたり動作を備えてもよい。いくつかの実施形態では、グラフィックパイプラインは、より少ないまたは付加的ブロックを含んでもよく、および/またはブロックは、
図3に図示されるものと異なる順序で実施されてもよい。
【0030】
いくつかの実施形態では、3D場面は、3D座標から形成され、これは、複数の3D頂点を形成してもよい。頂点シェーダは、仮想空間内の各頂点の3D位置を、画面上に現れる、2D座標に変換してもよい。頂点シェーダは、位置、色、およびテクスチャ座標等の特性を操作することができる。本実施例では、頂点シェーダの出力は、随意の平面充填段階に進み、これは、オブジェクトを場面内に提示する、2D座標のデータセットを管理し、2D座標を容易なレンダリングのための好適な構造に分割する。随意の幾何学形状シェーダは、次いで、頂点シェーダの結果に基づいて、点、線、および三角形等のグラフィックプリミティブを生成する。頂点後処理は、変換フィードバックおよびクリッピング等の固定された機能を含む。変換フィードバックは、頂点シェーダからの出力をバッファの中に記録する方法である。クリッピングは、プリミティブを、処理されるであろう、部分にクリッピングする。プリミティブアセンブリは、指示をベースプリミティブに提供することによって、分割された頂点をベースプリミティブのシーケンスに変換する。ラスタ化は、ベクトル画像を、ともに表示されると、画像を作成し得る、ピクセル、ドット、線等のラスタ画像に変換する。フラグメントシェーダは、ラスタ化によって生成されたフラグメントを色および単一深度値のセットに処理する。フラグメントは、単一ピクセルを生成するために必要である、データである。サンプルあたり動作は、深度試験、ステンシル試験等によって、フラグメントを試験し、結果を種々のバッファ内に書き込む。2D画像は、画像のフォーマットとして、フレームバッファ内に記憶されてもよい。
【0031】
いくつかの実装では、グラフィックパイプラインをセキュアに保つために、グラフィックパイプラインは、ブートアッププロセスの間、ユーザまたは外部プロセスが、GPUにアクセスすることができないように、APから分離される。グラフィックパイプラインおよびAPの分離に関するさらなる詳細は、下記に議論されるであろう。
【0032】
図4は、較正を使用して、ディスプレイ画像の歪曲を防止する、ウェアラブルデバイス200のブロック図を図示する。ウェアラブルデバイス200は、左光学スタックの一部として、左接眼レンズ(左眼ディスプレイパネル)202Aと、右光学スタックの一部として、右接眼レンズ(右眼ディスプレイパネル)202Bとを含んでもよい。センサ206A、206B、206C、206Dは、それぞれ、センサデータ220A、220B、220C、220Dを生成、検出、および/または捕捉するように構成されてもよく、これは、運動、光、温度、音、湿度、振動、圧力、および同等物等のウェアラブルデバイス200を囲繞する、環境の物理的特性、または左眼ディスプレイ202Aと右眼ディスプレイ202Bとの間の距離、ウェアラブルデバイス200の歪曲角度等のウェアラブルデバイスの固有または付帯特徴に対応する電子データであってもよい。センサデータ220A、220B、220C、220Dは、較正プロファイル254のために使用される。表示される画像の位置は、較正プロファイルを使用して決定されてもよい。幾何学形状補正のさらなる詳細は、参考文献を用いて解説されることができる。例えば、「Method for calibrating an augmented reality device」と題され、2018年12月21日に出願された、米国特許出願第16/230,169号(その開示全体は、あらゆる目的のために、本明細書に完全に記載される場合と同様に、参照することによって本明細書に組み込まれる)が挙げられる。さらに、「Image correction due to deformation of components of a viewing device」と題され、2019年3月15日に出願された、米国特許出願第16/355,611号(その開示全体は、あらゆる目的のために、本明細書に完全に記載される場合と同様に、参照することによって本明細書に組み込まれる)が挙げられる。
ロゴ画像を表示する実施例
【0033】
図5は、ウェアラブルデバイスのためのブートアッププロセスの例示的データフローを図示する、ブロック図である。本実施例では、アプリケーションプロセッサ510、グラフィックパイプライン512、および画像更新サービス514によって実施される、動作は、略図の別個の部分に図示される。他の実施形態では、動作は、異なる、より少ない、または付加的コンポーネントによって実施されてもよい。加えて、実施形態に応じて、
図5の方法は、より少ないまたは付加的ブロックを含んでもよく、ブロックは、図示されるものと異なる順序で実施されてもよい。有利なこととして、アプリケーションプロセッサ510は、それらが、保護された記憶装置560を含む、ウェアラブルヘッドセット上に適切に表示されるように、画像ファイルの幾何学的変換を生成する、論理を含む。
【0034】
ブロック520から開始し、ウェアラブルデバイスは、ユーザがウェアラブルヘッドセット上の電源ボタンを押下すること等によって、オンにされる。デバイスが電源投入されることに応答して、ブートアッププロセスは、アプリケーションプロセッサ510およびグラフィックパイプライン512の両方において開始される。グラフィックパイプライン512は、デバイスドライバ、オペレーティングシステムソフトウェア、アプリケーションソフトウェア、試験ハードウェアコンポーネント機能性等をロードする等のブートアッププロセス550を実施する。実施形態に応じて、ブートアッププロセスは、30~120秒またはそれを上回る時間がかかり得、その時間の間、グラフィックパイプライン512は、幾何学的に変換される画像をディスプレイ上にレンダリングするために利用不可能である。ブートアッププロセス550を含む、グラフィックパイプライン512は、保護された記憶装置560へのアクセスを有し、これは、有利なこととして、アプリケーションプロセッサ510にアクセス不可能である。したがって、ウェアラブルデバイスのための仮想世界ソフトウェアアプリケーションを作成する、開発者等のアプリケーションプロバイダは、保護された記憶装置560内の取扱に注意を要する情報へのアクセスを得ることができない。
【0035】
ブロック552では、グラフィックパイプラインは、完了するまで、ブートアッププロセスを継続し、その時点で、本方法は、ブロック554に継続し、そこで、ディスプレイの制御が、アプリケーションプロセッサ510から要求される。ブロック556では、グラフィックパイプライン512は、完全にブートアップされ、グラフィック画像をウェアラブルシステムのディスプレイ上にレンダリングするためのディスプレイバッファ等のディスプレイハードウェアへのアクセスを有する。
【0036】
図5の実施例では、ウェアラブルシステムのプロバイダおよび/またはウェアラブルシステム上で実行されるオペレーティングシステムによって動作され得るような外部サーバ514は、更新されたスプラッシュスクリーンロゴ(例えば、画像ファイル551)を、周期的に、ウェアラブルデバイスに提供してもよい。ロゴ画像の更新されたバージョンは、ブートアップ記憶装置531内に記憶され、アプリケーションプロセッサ510による次のブートアップサイクルの間、アクセスされてもよい。実施形態に応じて、画像ファイル551は、標準的ビットマップ(BMP)フォーマットまたは任意の他のグラフィックフォーマット等の種々のフォーマットで記憶されてもよい。標準的ビットマップフォーマットは、ラスタグラフィック画像ファイルフォーマットまたはドット行列データ構造である。ビットマップファイルでは、各ピクセルは、いくつかのビットによって規定される。
【0037】
ここで、アプリケーションプロセッサ510によって実施されるプロセスに目を向けると、ブロック530から開始して(これは、本デバイスがブロック520において給電された直後に生じる)、アプリケーションプロセッサ510は、画像ファイルをブートアップ記憶装置531からロードする。画像ファイルは、次いで、ブロック532において、ウェアラブルデバイスのディスプレイ上にレンダリングされる。ブロック534では、アプリケーションプロセッサ510は、GPUブートアッププロセスが完了したことを示す、要求をグラフィックパイプライン512から受信する(ブロック554)。続いて、アプリケーションプロセッサ510は、ブロック536において、ディスプレイの制御をGPUにハンドオーバする。
【0038】
いくつかの実施形態では、ブートアップ記憶装置531内に記憶される画像ファイルが存在しない場合、スプラッシュスクリーン画像は、そのブートアッププロセスの間、表示されなくてもよい。例えば、ウェアラブルデバイスが、製造後に最初にオンにされたとき、ロゴ画像は、ブートアップ記憶装置531内に記憶されていない場合があり、その時点で、画像更新サービス514から要求されてもよい。いくつかの実施形態では、ウェアラブルデバイスの製造の間、ロゴ画像は、ブートアップ記憶装置531内に記憶されてもよく、したがって、初期ブートアッププロセスの間、エンドユーザによってアクセス可能である。
【0039】
図5に示されるように、ブロック530および532において、アプリケーションプロセッサによって、画像ファイルを同時にロードおよび表示するために、プロセス511は、画像ファイルの幾何学的変換が、後続ブートアッププロセスにおいて使用するために実施されるべきであるかどうかを決定する。本実施例では、2つの条件(別個に下記に議論される)が、ウェアラブルシステム上での表示のための画像ファイルの処理の開始として示される。
【0040】
ブロック540では、アプリケーションプロセッサ510が、ユーザがディスプレイ上にレンダリングされた画像を視認する方法に影響を及ぼし得る、ウェアラブルシステムの特性を取得する。例えば、これらの特性は、工場較正データ、機械的変形データ(例えば、左眼ディスプレイと右眼ディスプレイとの間の距離およびウェアラブルデバイスの歪曲角度)、および同等物等のウェアラブルヘッドセットの固有および/または付帯特性を含んでもよい。次いで、ブロック542では、ウェアラブルシステムが最後にシャットダウンした以降に、ウェアラブルシステム特性が変化している場合、本方法は、ブロック544に継続し、そこで、幾何学的変換が、画像ファイルに適用され、調節された画像ファイル541を生成し、これは、ブロック530において、次のブートアッププロセスにおいてアクセスされる、ブートアップ記憶装置531内に記憶される。いくつかの実施形態では、ウェアラブルデバイスの固有/付帯特性は、アプリケーションプロセッサ510がロゴ画像をロードする前に、またはブートアッププロセスの間の任意の時間に、決定および/または取得されてもよい。ウェアラブルデバイスの固有/付帯特性は、それに対してアプリケーションプロセッサ510およびグラフィックパイプライン512の両方が、プロセッサの両方が、固有/付帯特性を利用し得るように、アクセスを有する、記憶装置(図示せず)内に記憶されてもよい。
【0041】
ブロック540に戻ると、アプリケーションプロセッサ510はさらに、現在レンダリングされている画像ファイルのバージョンを決定する(ブロック532)。ブロック542において、アプリケーションプロセッサ510が、レンダリングされた現在のバージョンが、画像ファイルの最新バージョンと異なることを決定する場合、画像ファイルの最新バージョンが、画像更新サービス514から要求する、またはブートアップ記憶装置531上ですでにアクセス可能な新しい画像ファイル551を識別すること等によって、アクセスされる。新しい画像ファイル551は、次いで、ウェアラブルデバイス上での適切な表示のために、幾何学的変換ブロック544によって処理される。したがって、ブロック542において、本方法は、条件のいずれか(例えば、新しい画像ファイルバージョンが利用可能であること、またはウェアラブルシステム特性の変化)が検出される場合、幾何学的変換ブロック544に継続する。本デバイスが、ブロック520において、次に電源投入されると、ブートアップ記憶装置531内に記憶される、調節された画像ファイル541が、ブロック530において、アクセスされ、ブートアッププロセスの間、表示される。いくつかの実施形態では、他の条件が、ブロック544の実行をトリガし、幾何学的変換を適用し、調節された画像ファイルを生成してもよい。
例示的アニメーションエフェクト
【0042】
図6Aは、ブートアッププロセスの間、アニメーションエフェクトを提供するために実施され得る、プロセスの一実施例を図示する、フローチャートである。ブートアッププロセスの進行度は、例えば、時計回りにまたは反時計回りに回転する進行度円、または前方および/または後方に移動する進行度バー等のアニメーションを用いて、示されてもよい。アニメーションエフェクトは、相互に最小限に異なり、ヒト視覚系が、シーケンシャル画像をアニメーションとして知覚する、高速連続シーケンシャル画像によって達成されてもよい。しかしながら、シーケンシャル画像をレンダリングすることは、アプリケーションプロセッサにとって、算出上困難であって、グラフィックパイプラインは、ブートアッププロセスが完了するまで、利用不可能である。したがって、本明細書に説明される方法は、グラフィックパイプラインによる処理に依拠せずに、アニメーションエフェクトを提供する効率的方法を提供する。
【0043】
図6Aの実施例では、ブートアップソフトウェア610は、アニメーションエフェクトが、ガンマテーブル内の値が調節されることによって、ディスプレイを視認するユーザによって可視化されるように、アプリケーションプロセッサによって、周期的に、ディスプレイハードウェア620のガンマテーブル622を選択および更新するように実行される。いくつかの実装では、ウェアラブルシステムのディスプレイハードウェアは、ディスプレイ上に画像データをレンダリングすることと併せて、ガンマテーブルにアクセスする。例えば、ガンマテーブルは、60Hzリフレッシュレートのための60回/秒等、1秒あたり何回もアクセスされ、ガンマ補正を下層画像データに適用するために使用されてもよい。本実施形態では、アプリケーションプロセッサは、静止画自体を変化させないが、代わりに、静止画のレンダリングが、静止画のピクセル値における調節を引き起こす、アプリケーションプロセッサによって行われる変更等、ガンマテーブルへの修正に基づいて変化されてもよい。したがって、ガンマテーブルが、例えば、ガンマテーブルを60回/秒更新することによって、順次変化され、更新されたガンマテーブルの変化が、画像データに適用される場合、アニメーションエフェクトは、静止画に適用されることができる。
【0044】
ブロック612から開始して、ブートアップソフトウェア610は、ブートアッププロセスの進行度を決定する。例えば、進行度は、本デバイスが、最初に電源投入されるとき、0%であってもよく、30~120秒のブートアッププロセスにわたって、100%に向かって徐々に移動してもよい。例えば、ブートアッププロセスは、実行され、個別のブートアッププロセスの段階と関連付けられる、複数のソフトウェアプロセスを含んでもよい。進行度モニタは、実行されたソフトウェアプロセス、まだ実行されていないソフトウェアプロセス、予期される総ブートアップ時間、経過ブートアップ時間、および/または、ブートアップ進行度を決定するために現在実行されているソフトウェアプロセスを追跡してもよい。ブートアッププロセスの進行度を決定する任意の他の方法もまた、使用されてもよい。
【0045】
次に、更新されたガンマテーブル(またはディスプレイハードウェア620内の現在のガンマテーブル622への更新)が、決定されたブートアップ進行度に基づいて選択される。例えば、第1のガンマテーブルは、0%~5%の進行度と関連付けられ得、第2のガンマテーブルは、5%~10%の進行度と関連付けられ得、第3のガンマテーブルは、10%~15%の進行度と関連付けられ得る等となる。いくつかの実施形態では、ラウンドロビン様式において選択される、一連のガンマテーブルが、ブートアッププロセスの異なる部分の間、使用されてもよい。例えば、0%~5%進行度レベルの間、一連の10個のガンマテーブルが、0%~5%進行度と関連付けられる所望のアニメーションエフェクトを提供するために、複数回、巡回されてもよい。
【0046】
次に、ブロック616では、選択されたガンマテーブルは、ハードウェアガンマテーブル622内に記憶され、これは、次いで、ブロック624において、グラフィックがウェアラブルシステムのディスプレイ上に表示されるにつれて、周期的にアクセスされる。したがって、ディスプレイのための60Hzリフレッシュレートを伴う、ある例示的実装では、ガンマテーブル622は、ピクセル強度レベルと関連付けられる、相対的陰影情報のために、60回/秒アクセスされてもよい。プロセスは、次いで、進行度レベルが変化するにつれて、対応する変化が、ガンマテーブルに行われ、これが、静止画と関連付けられるアニメーションエフェクトの変化を引き起こすように、ブロック612-616を繰り返す。
【0047】
図6Bは、ガンマテーブルスクロールを使用して、静止画に適用され得る、アニメーションエフェクトの段階の実施例を図示する。本実施例では、例示的ステータスバーが、アニメーションの5つの段階に図示され、段階501-505として表される。本実施例では、進行度バーは、5つのセクションを含み、これはそれぞれ、矩形、円形、または他のエリアを形成する、単一ピクセルまたは複数のピクセル等のピクセルのセットを表し得る。本実施例では、ステータスバーの5つの部分のそれぞれの内側の数は、(限定ではないが)グレースケール値または色インデックス等のピクセル値を表すことができる。ヒトが、別個かつ順次、段階501-505において、進行度バーを視認すると、ヒトの脳は、ピクセル値1が、全5つの部分を網羅するまで、最左部分から右まで拡散していると知覚する。
【0048】
フレーム600A-600Eはそれぞれ、単一フレームであってもよい、または複数のフレーム(例えば、各フレームが1/3秒にわたって表示されるように、60Hzディスプレイレートの20フレーム)と関連付けられてもよい。
図6Aを参照して議論されるように、ブートアッププロセスの間、ウェアラブルシステムは、ブートアップ進行度を決定し、決定されたブートアップ進行度に対応する、ガンマテーブル設定605A-605Eを選択し、選択されたガンマテーブル設定605A-605Eを用いて、ディスプレイハードウェアガンマテーブルを更新し、ブートアッププロセス全体を通して、これらのステップを繰り返してもよい。
【0049】
ディスプレイハードウェアガンマテーブルは、進行度バーのピクセルの特定のエリア等のピクセル値に対する調節を決定するためにアクセスされてもよい。したがって、ガンマテーブルが、フレームのそれぞれにおいて、ブートアップソフトウェアから受信されたガンマテーブル設定によって更新されると、進行度バーのピクセル値は、
図6Bに図示されるように変化される。
【0050】
図7A-7Cは、異なるガンマテーブルの実施例を示す。典型的には、ガンマは、画像システム内の輝度または三刺激値等のピクセル値をエンコーディングおよびデコーディングするために使用される、非線形演算である。概して、ガンマは、以下の冪乗則表現によって定義される。
【化1】
式中、非負の実入力値V
inが、γ乗され、定数Aによって乗算され、出力値V
outを求める。A=1の一般的場合では、入力および出力は、典型的には、0~1の範囲内である。別の実施形態では、入力(x軸)および出力(y軸)は、ピクセル値、例えば、0~255を表すことができる。画像は、
図7A-7Cに図示されるように、ガンマテーブルを使用して、ピクセル値を異なる値で再マッピングまたは置換することによって、変換されることができる。
図7Aを参照すると、ガンマは、1に等しく、これは、入力が出力と同一であることを意味する。したがって、
図7Aのガンマテーブルが、ディスプレイハードウェア内に記憶されるとき、入力画像は、出力画像と同一である。
図7Bを参照すると、ガンマは、2に等しく、したがって、ガンマ調節された出力画像は、入力画像より暗くなる。
図7Cを参照すると、ガンマは、0.5に等しく、したがって、ガンマ調節された出力画像は、入力より明るくなる。
図7A-7Cに図示されるガンマ曲線は、出力画像がガンマ補正を画像に適用することによって変化され得ることを示す、実施例である。ガンマレベルおよび補正は、
図7A-7Cに図示されるものに限定されない。
スプラッシュスクリーン画像内の静的およびアニメーション化されたグラフィックの例示的エンコーディング
【0051】
図8-11は、ブートアッププロセスの間、静止画およびアニメーション化された進行度バーの両方をレンダリングするために使用される、静止画(例えば、ロゴおよび/または他のスプラッシュスクリーングラフィック)と、合成のエンコーディングされた画像の中にエンコーディングされる進行度バーとの例示的表現を図示する。有利なこととして、エンコーディングは、ディスプレイハードウェアの能力を利用して、ガンマテーブルへの変更が行われるにつれて、ガンマ変換をディスプレイデータに適用する。
図8-11の実施例では、8ビットガンマテーブルが、使用され、静止画のためのピクセル値は、ガンマテーブルのピクセル値0~63内にエンコーディングされる一方、進行度バーのためのピクセル値は、ガンマテーブルのピクセル値64~255内にエンコーディングされる。他の実施形態では、ガンマテーブルの他のサイズが、使用されてもよく、および/または異なるピクセル値の範囲が、画像および/または進行度バーのために使用されてもよい。下記にさらに議論されるように、ピクセル値を動的ガンマテーブル(例えば、値を変化させる)内にエンコーディングする、本構成は、静止画およびアニメーション化された進行度バーの両方が、合成のエンコーディングされた画像(例えば、ビットマップファイル)およびガンマテーブルへの周期的更新に基づいて、レンダリングされることを可能にする。
【0052】
図8Aは、ブートアッププロセスの間に表示され得る、静止画と関連付けられる、ピクセルデータの実施例を図示する。例えば、静止画は、ロゴを含んでもよい。
図8Aの実施例では、正方形の中心に向かって色が明化する、正方形ロゴが、図示される。本実施例では、ピクセル値は、0~255に及び、これは、静止画のためのグレースケール値(例えば、0=黒色および255=白色)を表し得る。いくつかの実施形態では、複数のピクセルのセット値が、赤色、緑色、および青色ピクセル値等の各ピクセルと関連付けられ得、これはそれぞれ、0~255に及んでもよい。いくつかの実施形態では、ピクセル値の範囲および/またはピクセル毎のピクセル値の数は、ウェアラブルシステムの色ハードウェアおよび/またはソフトウェアのビット深度等に応じて、変動し得る。
図8Aの画像データは、BMP、PNG、JPG等の既存のファイルフォーマット、または別の既存または専有フォーマットで記憶されてもよい。
【0053】
図8Bの実施例では、
図8Aにおける画像のピクセル値は、範囲0~255から、エンコーディングされた画像データを記憶するために確保される、範囲、例えば、0~63に補間されている。したがって、255のピクセル値(
図8A)は、63のエンコーディングされた値(
図8B)に補間され、値55のピクセルは、14のエンコーディングされた値(
図8B)に補間される等となる。
図8Bのエンコーディングされたピクセル値は、後に、進行度バーと関連付けられるエンコーディングされたピクセル値でオーバーレイされるであろう(
図10参照)。
【0054】
図9Aおよび9Bは、エンコーディングプロセスの一部として、進行度バーの種々の段階に適用される、ピクセル値変換を図示する。本実施例では、進行度バーは、それぞれ、ブートアッププロセスの進行度と関連付けられ得る、10レベルの進行度のうちの1つにおける画像データと関連付けられる、10段階(またはステップ)を含む。特に、画像データ910は、10%進行度と対応し、画像データ920は、20%進行度と対応し、画像データ930は、30%進行度と対応する等となる。したがって、ブートアッププロセスの進行度を示すために、例えば、画像910-999は、順次巡回され、アニメーションエフェクトを作成し得る。しかしながら、スプラッシュスクリーンが単一画像に限定される、システムでは、複数の画像を通してシーケンス化することによるアニメーションは、不可能である。但し、本明細書のいずれかの場所に記載されるように、本明細書に開示されるシステムおよび方法は、有利なこととして、進行度バーのこれらの種々の段階を単一のエンコーディングされた画像の中にエンコーディングし、これは、プログラム上、ガンマテーブルを更新する、論理と併せて、類似進行度バーアニメーションエフェクトを作成する。
【0055】
図9Aおよび9Bの特定の実施例では、オリジナル進行度バーピクセル値は、進行度段階のそれぞれにおいて、列901に示される。列902では、列901内の進行度バー画像値はそれぞれ、1のビット深度に閾値化されている。例えば、0~255に及ぶ、ピクセル値に関して、本閾値化は、0~127の範囲内のピクセル値を0、128~255の範囲内のピクセル値を1に設定してもよい。
【0056】
次に、列903内では、列902内の閾値は、進行度レベルと対応し、進行度バーのための留保されるガンマテーブルビット範囲(例えば、本実施例では、64~255)内にある、エンコーディングされた乗数によって乗算される。本実施例では、(例えば、ブートアッププロセスの)進行度の各10%インクリメントは、約19.1のエンコーディングされた乗数の増加と相関する。したがって、0%進行度では、エンコーディングされた乗数は、64(例えば、ガンマテーブル内の留保される進行度バー値範囲の最低値)であって、10%進行度では、エンコーディングされた乗数は、83であって、20%進行度では、エンコーディングされた乗数は、102であって、30%進行度では、エンコーディングされた乗数は、121である等となり、100%進行度において、エンコーディングされた乗数が、255(ガンマテーブル内の留保される進行度バー値範囲の最高値)になるまで、列903に示されるように、続く。これらのエンコーディングされた乗数は、列902内の閾値化された値に適用され、列903に示されるように、進行度段階毎に、エンコーディングされた値を生産する。
【0057】
図9Cは、単一のエンコーディングされたピクセル値のセットの中にオーバーレイされた、
図9A-9Bの進行度段階のそれぞれからエンコーディングされたピクセル値の実施例を図示する。本実施例では、列903内のエンコーディングされたピクセル値は、相互の上にオーバーレイされ、100%のエンコーディングされたピクセル値から開始し、10%のエンコーディングされたピクセル値まで減少し、エンコーディングされたピクセル値904を取得する。いくつかの実装では、64(またはガンマテーブル内の留保される進行度バー値範囲の他の最小値)より低い、エンコーディングされたピクセル値が、64(または他の最小値)に設定される。
【0058】
図10は、画像ファイルの下側部分における静止画(例えば、正方形ロゴ)のエンコーディングされたピクセル値820と、画像ファイルの上側部分における進行度バーのエンコーディングされたピクセル値904とを含む、画像データの実施例を図示する。本合成画像データ1000は、ビットマップ画像ファイルまたは他の画像ファイルとして記憶されてもよい。有利なこととして、エンコーディングされたピクセル値は、ガンマテーブル値が更新されるにつれて、ブートアッププロセスの進行度に従って、静止画が適切に表示され、かつ進行度バーがアニメーション化されることを可能にする。
【0059】
図11は、画像データのあるピクセル値と関連付けられる、ガンマテーブル値の実施例を図示する。例えば、列1110は、画像の可能性として考えられるピクセル値(またはエンコーディングされたピクセル値)を表し、列1130は、対応するブートアップ進行度段階にレンダリングされる、実際のピクセル値を表す。したがって、
図11は、複数の進行度段階が、アニメーション化された進行度バー内にレンダリングされ得るように、ガンマテーブルのために可能性として考えられる、11個の値のセットを図示する。本実施例では、簡潔にするために、列1110内のピクセル値は、
図8-10の実施例内で使用されるそれらの特定の値のみを含む。しかしながら、より複雑な陰影、着色、および/またはアニメーションのために、付加的ピクセル値が、ガンマテーブル内で調節されてもよい。例えば、8ビットピクセル深度では、最大で全256ピクセル値が、静止画または進行度バー(または他のアニメーション)のための対応する出力値と関連付けられ得る。
【0060】
本実施例では、(列1110内の)0~63のピクセル値は、ブートアッププロセス全体を通して一貫する、出力値と関連付けられる。したがって、0~63の値を有する、ピクセルは、ブートアッププロセス全体を通して、一貫したレンダリングを維持する。上記に議論されるように、本実施例では、ロゴ等の静止画は、これらのピクセル値でエンコーディングされてもよい。
【0061】
ピクセル値64~255を参照すると、レンダリングされる、出力ピクセル値は、ブートアッププロセスの段階に基づいて調節される。例えば、ブートアップ進行度が、10%に到達すると、ガンマテーブルは、64および83の入力ピクセル値に関して、レンダリングされる出力ピクセル値が、255であるように更新される。したがって、
図11の10%ガンマテーブル値を使用して、エンコーディングされたピクセル値904のピクセルの第1の列(83の値を伴う)は、オンにされる一方、ピクセルの残りの列は、オフにされたままにされる。ブートアップ進行度モニタが、
図8-11の実施例では、10%の各インクリメントにおいて等、進行度バーへの更新が必要とされることを決定するにつれて、ガンマテーブル値は、
図11に示される対応する値で更新され、左から右にサイズが増加する、進行度バーのアニメーションエフェクトを作成してもよい。いくつかの実施形態では、前のブートアップ段階のガンマテーブル値から変化している、それらのガンマテーブル値のみが、ガンマテーブルに書き込まれる一方、他の実施形態では、全てのガンマテーブル値(例えば、
図11の実施形態では、256個の値)が、各ブートアップ段階変化に応じて、ガンマテーブルに書き込まれる。
【0062】
いくつかの実施形態では、ピクセル値および/またはエンコーディングされたピクセル値への付加的調節が、行われてもよい。例えば、ピクセル値の閾値化(例えば、行902)または補間(例えば、
図8B)に立って、画像補正が、スタートアップ画像ファイルが最後にレンダリングされた以降のヘッドセットの変形等、ウェアラブルシステムの固有および/または付帯特性を補正する等のために、ピクセル値に適用されてもよい。したがって、ピクセル値は、そのような固有および/または付帯特性を補償するために、選択的に、偏移、回転、増幅、低減等されてもよい。
【0063】
いくつかの実施形態では、静止画および/または進行度バーのピクセル値は、ウェアラブルシステムの装着者の左および右眼に表示され得るように、左および右プロジェクタの中にレンダリングされる。例えば、閾値化または補間(例えば、
図8B)に立って、ピクセル値は、複数の投影が視認されるとき、画像の3Dエフェクトを実装する等のために、複数のプロジェクタにレンダリングされてもよい。いくつかの実装では、複数の投影のレンダリングは、ピクセル値を修正し、固有および/または付帯特性を補償することと併せて実施されてもよい。複数の投影が、レンダリングされる(例えば、左眼画像および右眼画像)、実施形態では、エンコーディングプロセスは、画像毎に、別個に実施されてもよい。例えば、
図8-11の静止画および進行度バーエンコーディングプロセスは、左眼画像上で、1回、再び、右側の眼画像上で実施されてもよい。これらのエンコーディングプロセスは、順次または並列に、実施されてもよい。
【0064】
いくつかの実施形態では、合成のエンコーディングされた画像、例えば、単一ビットマップ画像は、画像の複数の投影のためのピクセル値を含んでもよい。例えば、合成のエンコーディングされた画像は、左および右投影の両方が、ブートアッププロセスの間、ウェアラブルシステム上にレンダリングされ得るように、ピクセル空間の左半分内の左投影と、ピクセル空間の右半分内の右投影とを含んでもよい。
【0065】
図12は、本明細書で議論されるシステムおよび方法を使用して実装され得る、静止画1220と、アニメーション化された進行度バー1230とを含む、例示的スプラッシュスクリーン画像1210を図示する。例えば、静止画1220および進行度バー1230は、ビットマップ画像等の単一画像ファイル内にエンコーディングされ、ブートアップ進行度の種々の段階におけるハードウェアガンマテーブルへの更新と併せて表示され、アニメーション化された進行度バーのエフェクトを作成してもよい。他の実施形態では、進行度バーの他の形状、サイズ、色等が、使用されてもよく、アニメーションエフェクトは、ガンマテーブル設定への調節によって、変動されてもよい。例えば、円形進行度バーが、本明細書に議論されるように、類似様式で実装されてもよい。
例示的実装
【0066】
本明細書に説明されるシステム、方法、およびデバイスはそれぞれ、いくつかの側面を有するが、そのうちの単一の1つのみが、その望ましい属性に関与するわけではない。本開示の範囲を限定せずに、いくつかの非限定的特徴が、ここで、簡単に議論されるであろう。以下の段落は、種々の例示的方法を説明する。任意の特定の実施例に説明される方法のいくつかまたは全てを実施する、対応するデバイス、システム、および/または他のハードウェアもまた、検討される。1つまたはそれを上回るコンピュータのシステムが、動作時、本システムにアクションを実施させる、システム上にインストールされる、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを有することによって、特定の動作またはアクションを実施するように構成されることができる。1つまたはそれを上回るコンピュータプログラムは、データ処理装置によって実行されると、本装置にアクションを実施させる、命令を含むことによって、特定の動作またはアクションを実施するように構成されることができる。
【0067】
実施例1:1つまたはそれを上回るハードウェアコンピュータプロセッサと、コンピュータ化された方法を実施するためにウェアラブルシステムによって実行可能なソフトウェア命令を記憶する、1つまたはそれを上回る非一過性コンピュータ可読記憶デバイスとを有する、ウェアラブルシステムによって実施される、コンピュータ化された方法であって、画像ファイルをディスプレイバッファの中にロードすることと、ウェアラブルシステムのブートアップ段階を決定することと、決定されたブートアップ段階と関連付けられる、ガンマテーブル値の複数のセットのうちの1つを選択することと、ガンマテーブル値の選択されたセットを、ディスプレイバッファと関連付けられる、ガンマテーブル記憶装置に書き込むことであって、ウェアラブルシステムは、ディスプレイ上のガンマテーブル記憶装置内のガンマテーブル値によって調節されるように、画像ファイルをレンダリングするように構成される、こととを含む、方法。
【0068】
実施例2:ガンマテーブル値の複数のセットは、対応する少なくとも10個のブートアップ段階と関連付けられる、ガンマテーブル値の少なくとも10セットを含む、実施例1に記載の方法。
【0069】
実施例3:画像ファイルは、静止画と関連付けられる、第1のセットのピクセルであって、第1のセットのピクセルのそれぞれは、第1の範囲内のピクセル値を有する、第1のセットのピクセルと、進行度バーと関連付けられる、第2のセットのピクセルであって、第2のセットのピクセルのそれぞれは、第1の範囲と重複しない、第2の範囲内のピクセル値を有する、第2のセットのピクセルとを含む、実施例1-2のいずれかに記載の方法。
【0070】
実施例4:第1の範囲は、0~63であって、第2の範囲は、64~255である、実施例1-3のいずれかに記載の方法。
【0071】
実施例5:ピクセル値の第1の範囲と関連付けられる、ガンマテーブル値は、ブートアップ段階毎に、同一であって、ピクセル値の第2の範囲の少なくともいくつかのピクセル値と関連付けられる、ガンマテーブル値は、対応するブートアップ段階に関して変化する、実施例1-3のいずれかに記載の方法。
【0072】
実施例6:1つまたはそれを上回るハードウェアコンピュータプロセッサと、コンピュータ化された方法を実施するためにウェアラブルシステムによって実行可能なソフトウェア命令を記憶する、1つまたはそれを上回る非一過性コンピュータ可読記憶デバイスとを有する、ウェアラブルシステムによって実施される、コンピュータ化された方法であって、静止画のピクセル値毎に、ピクセル値を第1の値の範囲に補間することと、ブートアッププロセスの複数の段階毎に、ブートアッププロセスの段階を描写する画像に対応する、ピクセル値を決定することと、決定されたピクセル値毎に、ピクセル値を1ビットに閾値化することと、ブートアッププロセスの段階と関連付けられる、複数のエンコーディングされた乗数のうちのエンコーディングされた乗数を選択することであって、複数のエンコーディングされた乗数のそれぞれは、第1の値の範囲と重複しない、第2の値の範囲内にある、選択されたエンコーディングされた乗数によって、閾値化されたピクセル値のそれぞれを乗算することによって、ブートアッププロセスの決定された段階のためのエンコーディングされたピクセル値を計算することと、ブートアッププロセスの複数の段階のためのエンコーディングされたピクセル値を順次オーバーレイすることによって、合成のエンコーディングされたピクセル値を生成することと、静止画と関連付けられる、補間されたピクセル値と、ブートアッププロセスの段階と関連付けられる、合成のエンコーディングされたピクセル値とを含む、画像ファイルを生成することとを含む、方法。
【0073】
実施例7:第2の静止画のピクセル値毎に、ピクセル値を第1の値の範囲に補間することによって、第2の補間されたピクセル値を生成することと、複数のブートアッププロセスの段階毎に、ブートアッププロセスの段階を描写する複数の画像の第2の画像に対応する、ピクセル値を決定することと、決定されたピクセル値毎に、ピクセル値を1ビットに閾値化することと、ブートアッププロセスの段階と関連付けられる、複数のエンコーディングされた乗数のうちのエンコーディングされた乗数を選択することであって、複数のエンコーディングされた乗数のそれぞれは、第1の値の範囲と重複しない、第2の値の範囲内にある、ことと、選択されたエンコーディングされた乗数によって、閾値化されたピクセル値のそれぞれを乗算することによって、ブートアッププロセスの決定された段階のための第2のエンコーディングされたピクセル値を計算することと、ブートアッププロセスの複数の段階のための第2のエンコーディングされたピクセル値を順次オーバーレイすることによって、第2の合成のエンコーディングされたピクセル値を生成することとをさらに含み、画像ファイルはさらに、第2の静止画と関連付けられる、第2の補間されたピクセル値と、ブートアッププロセスの段階と関連付けられる、第2の合成のエンコーディングされたピクセル値を含む、実施例6に記載の方法。
【0074】
実施例8:補間されたピクセル値および合成のエンコーディングされたピクセル値は、ディスプレイの左部分上へのレンダリングのために構成され、第2の補間されたピクセル値および第2の合成のエンコーディングされたピクセル値は、ディスプレイの右部分上へのレンダリングのために構成される、実施例6-7のいずれかに記載の方法。
【0075】
実施例9:閾値化されたピクセル値はそれぞれ、ゼロまたは1のいずれかである、実施例6-8のいずれかに記載の方法。
【0076】
実施例10:ブートアッププロセスの段階毎に、ブートアッププロセスのその段階のための対応する1つまたはそれを上回るエンコーディングされたピクセル値と関連付けられる、1つまたはそれを上回るガンマテーブル値を生成することをさらに含む、実施例6-9のいずれかに記載の方法。
【0077】
実施例11:補間されたピクセル値と関連付けられる、ガンマテーブル値を生成することをさらに含み、ガンマテーブル値は、ピクセル値を補間することに先立って、静止画のピクセル値を決定するために使用可能である、実施例6-10のいずれかに記載の方法。
【0078】
実施例12:画像ファイルをディスプレイバッファの中にロードすることと、周期的に、ブートアッププロセスの現在の段階を決定することと、現在の段階と関連付けられる、ガンマテーブル値を選択することと、選択されたガンマテーブル値を、ディスプレイと関連付けられる、ガンマテーブル記憶装置に記憶することであって、ディスプレイは、ガンマテーブル値によって調節されるように、画像ファイルをレンダリングするように構成される、こととによって、ブートアップ画像をレンダリングすることをさらに含む、実施例6-10のいずれかに記載の方法。
【0079】
実施例13:1つまたはそれを上回るハードウェアコンピュータプロセッサと、コンピュータ化された方法を実施するためにウェアラブルシステムによって実行可能なソフトウェア命令を記憶する、1つまたはそれを上回る非一過性コンピュータ可読記憶デバイスとを有する、ウェアラブルシステムによって実施される、コンピュータ化された方法であって、画像ファイルをロードすることと、画像ファイルをウェアラブルシステムのディスプレイ上にレンダリングすることと、画像ファイルが、ウェアラブルシステムのディスプレイ上にレンダリングされている間、ウェアラブルシステム特性を取得することと、ウェアラブルシステム特性が前のブートアッププロセスから変化しているかどうかを決定することと、ウェアラブルシステム特性が変化している場合、1つまたはそれを上回る幾何学的変換を画像ファイルに適用し、調節された画像ファイルを生成することと、次のブートアッププロセスによる使用のために、調節された画像ファイルを記憶することとを含む、方法。
【0080】
実施例14:ウェアラブルシステムの特性は、ウェアラブルシステムの付帯または固有の特性のうちの1つまたはそれを上回るものを含む、実施例13に記載の方法。
【0081】
実施例15:1つまたはそれを上回るハードウェアコンピュータプロセッサと、コンピュータ化された方法を実施するためにウェアラブルシステムによって実行可能なソフトウェア命令を記憶する、1つまたはそれを上回る非一過性コンピュータ可読記憶デバイスとを有する、ウェアラブルシステムによって実施される、コンピュータ化された方法であって、ブート画像ファイルを記憶するように構成される、メモリにアクセスすることと、アクセスされるメモリが、現在のブート画像ファイルを含まないことを決定することに応答して、少なくとも部分的に、グラフィックパイプラインによるブートアッププロセスの実行と同時に、ブート画像ファイルを生成することとを含む、方法。
【0082】
実施例16:アクセスされるメモリは、アクセスされるメモリが画像ファイルを含まない場合、現在のブート画像ファイルを含まないと決定される、実施例15に記載の方法。
【0083】
実施例17:アクセスされるメモリは、アクセスされるメモリが古いバージョンの画像ファイルを含む場合、現在のブート画像ファイルを含まないと決定される、実施例15-16のいずれかに記載の方法。
【0084】
上記に述べられたように、上記に提供される説明される実施例の実装は、ハードウェア、方法またはプロセス、および/またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含んでもよい。
付加的考慮点
【0085】
本明細書に説明される、および/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つまたはそれを上回る物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および/または電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全または部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされる、動的リンクライブラリ内にインストールされ得る、またはインタープリタ型プログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
【0086】
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアまたは1つまたはそれを上回る物理的コンピューティングデバイスは、例えば、関与する計算の量または複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、ビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスクまたは用途を提供するようにビデオデータを処理する必要がある。
【0087】
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性または不揮発性記憶装置、同一物の組み合わせ、および/または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログまたはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一または多重化アナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的または別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
【0088】
本明細書に説明される、および/または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、または機能性は、プロセスにおいて具体的機能(例えば、論理または算術)またはステップを実装するための1つまたはそれを上回る実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、本明細書に提供される例証的実施例に追加される、そこから削除される、修正される、または別様にそこから変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムまたはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、いずれの特定のシーケンスにも限定されず、それに関連するブロック、ステップ、または状態は、適切な他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそこから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証目的のためであり、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
【0089】
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線または無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
【0090】
本発明は、対象デバイスを使用して実施され得る方法を含む。本方法は、そのような好適なデバイスを提供する行為を含んでもよい。そのような提供は、エンドユーザによって実施されてもよい。換言すると、「提供する」行為は、単に、エンドユーザが、本主題の方法において必要なデバイスを取得する、それにアクセスする、それに接近する、それを位置付ける、それを設定する、それをアクティブ化する、それに電源を入れる、または別様にそれを提供するように作用することを要求する。本明細書に列挙される方法は、論理的に可能な列挙されたイベントの任意の順序およびイベントの列挙された順序で行われてもよい。
【0091】
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。上記に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
【0092】
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つまたはそれを上回る特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要または必須ではない。
【0093】
とりわけ、「~できる(can)」、「~し得る(could)」、「~し得る(might)」、「~し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、および/またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/またはステップが、1つまたはそれを上回る実施形態に対していかようにも要求されること、または1つまたはそれを上回る実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および/またはステップが任意の特定の実施形態において含まれる、または実施されるべきかどうかを決定するための論理を必然的に含むことを含意することを意図されない。用語「~を備える(comprising)」、「~を含む(including)」、「~を有する(having)」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され(およびその排他的意味において使用されず)、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの1つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「a」、「an」、および「the」は、別様に規定されない限り、「1つまたはそれを上回る」または「少なくとも1つ」を意味するように解釈されるべきである。本明細書で具体的に定義される場合を除いて、本明細書で使用される全ての技術的および科学的用語は、請求項の妥当性を維持されながら、可能な限り広義に一般的に理解される意味として与えられるべきである。
【0094】
本明細書で使用されるように、項目のリスト「~のうちの少なくとも1つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「A、B、またはCのうちの少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、およびA、B、およびCを網羅することが意図される。語句「X、Y、およびZのうちの少なくとも1つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等がX、Y、またはZのうちの少なくとも1つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在するように要求することを示唆することを意図するものではない。
【0095】
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、または連続的順序で実施される、または全ての図示される動作が実施される必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で1つまたはそれを上回る例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、1つまたはそれを上回る付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。