IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アップル インコーポレイテッドの特許一覧

特許7194263プロセスデータ共有のための方法及びデバイス
<>
  • 特許-プロセスデータ共有のための方法及びデバイス 図1
  • 特許-プロセスデータ共有のための方法及びデバイス 図2
  • 特許-プロセスデータ共有のための方法及びデバイス 図3
  • 特許-プロセスデータ共有のための方法及びデバイス 図4
  • 特許-プロセスデータ共有のための方法及びデバイス 図5A
  • 特許-プロセスデータ共有のための方法及びデバイス 図5B
  • 特許-プロセスデータ共有のための方法及びデバイス 図6
  • 特許-プロセスデータ共有のための方法及びデバイス 図7A
  • 特許-プロセスデータ共有のための方法及びデバイス 図7B
  • 特許-プロセスデータ共有のための方法及びデバイス 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-13
(45)【発行日】2022-12-21
(54)【発明の名称】プロセスデータ共有のための方法及びデバイス
(51)【国際特許分類】
   G06T 19/00 20110101AFI20221214BHJP
   G06F 3/01 20060101ALI20221214BHJP
【FI】
G06T19/00 600
G06F3/01 510
【請求項の数】 20
(21)【出願番号】P 2021510017
(86)(22)【出願日】2019-08-22
(65)【公表番号】
(43)【公表日】2021-12-09
(86)【国際出願番号】 US2019047661
(87)【国際公開番号】W WO2020041567
(87)【国際公開日】2020-02-27
【審査請求日】2021-02-22
(31)【優先権主張番号】62/721,685
(32)【優先日】2018-08-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】デサイ, ランジット
(72)【発明者】
【氏名】ロックウェル, ミカエル ジェイ.
(72)【発明者】
【氏名】ドゥギネニ, ヴェヌ マーダヴ
(72)【発明者】
【氏名】リー, ロバート セオン ワイ
【審査官】橘 高志
(56)【参考文献】
【文献】特開2015-095045(JP,A)
【文献】特表2011-527788(JP,A)
【文献】国際公開第2016/205145(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
方法であって、1つ以上のプロセッサと、非一時的メモリと、画像取得インタフェースとを備えたデバイスにおいて、
前記画像取得インタフェースによって取得された視野に関連付けられた画像データを取得することと、
慣性測定ユニット(IMU)情報に少なくとも部分的に基づくポーズデータであって、前記画像取得インタフェースによって測定された、あるユーザの現在の姿勢に対応する前記ポーズデータを決定することと、
前記画像取得インタフェースを介して取得されたアイトラッキング情報に少なくとも部分的に基づいて、視線推定を決定することと、
前記画像取得インタフェースと通信可能な複数のプロセスの複数の特性に少なくとも部分的に基づいて、前記画像データ、前記ポーズデータ、及び前記視線推定の構成を決定することと、
前記画像データ、前記ポーズデータ、及び前記視線推定の前記構成、前記複数のプロセスの前記複数の特性、並びに前記デバイスに関連付けられたハードウェアタイミングパラメータのうちの少なくとも1つに少なくとも部分的に基づいて、前記複数のプロセスのアクセススケジュールを決定することと、を含む、方法。
【請求項2】
前記複数のプロセスの前記複数の特性に少なくとも部分的に基づいて、前記画像データ、前記ポーズデータ、及び前記視線推定の前記構成を決定することが、
前記複数のプロセスのうちの第1のプロセスであって、第1の特性のセットによって特徴付けられる前記第1のプロセスに対する、第1の画像データ、第1のポーズデータ、及び第1の視線推定のうちの少なくとも1つを取得することと、
前記複数のプロセスのうちの第2のプロセスであって、第2の特性のセットによって特徴付けられる前記第2のプロセスに対する、第2の画像データ、第2のポーズデータ、及び第2の視線推定のうちの少なくとも1つを取得することと、
前記第1の画像データ、前記第1のポーズデータ、及び前記第1の視線推定を、前記第2の画像データ、前記第2のポーズデータ、及び前記第2の視線推定と統合して、前記画像データ、前記ポーズデータ、及び前記視線推定であって、前記第1の特性のセット及び前記第2の特性のセットに少なくとも部分的に基づいて構成される前記画像データ、前記ポーズデータ、及び前記視線推定を生成することと、を含む、請求項1に記載の方法。
【請求項3】
前記アクセススケジュールが、決定論的モデルに基づいて決定され、前記方法が、
前記複数のプロセスの第1のプロセスに対して、前記第1のプロセスに対する入力、前記入力を提供するハードウェア又は第2のプロセスのうちの少なくとも1つ、及び前記ハードウェア又は前記第2のプロセスのうちの少なくとも1つから前記入力を取得するための時間パラメータを決定することと、
前記時間パラメータに少なくとも部分的に基づいて、前記第1のプロセスのウェイクタイムを計算することと、を含む、請求項1に記載の方法。
【請求項4】
タイムスタンプと関連付けられているフレームをレンダリングのためにベースデバイスから取得することと、
前記ポーズデータの軌跡及び前記タイムスタンプに基づいて、レンダリング時におけるレンダリングポーズを予測することと、
前記レンダリング時における前記レンダリングポーズを使用して前記フレームを調整することと、を更に含む、請求項1に記載の方法。
【請求項5】
前記複数のプロセスのための前記アクセススケジュールを決定することが、
前記画像データ、前記ポーズデータ、及び前記視線推定の前記構成、前記複数のプロセスの前記複数の特性、並びに前記デバイスからの前記ハードウェアタイミングパラメータのうちの少なくとも1つを取得するベースデバイスによってデータの収集をトリガすることであって、前記データは、前記ベースデバイスによって他のデバイスからもまた収集されることと、
前記データに基づいて前記ベースデバイスによって決定される前記アクセススケジュールを前記ベースデバイスから受信することと、を含む、請求項1に記載の方法。
【請求項6】
表示のためのシーンを生成するために、前記アクセススケジュールに従って前記構成にアクセスすることと、
前記構成から得られたデータであって、前記画像データ、前記ポーズデータ、及び前記視線推定のうちの少なくとも1つのサブセットである前記データを使用して、かつ前記アクセススケジュールに従って、前記シーンを表示することと、を更に含む、請求項1に記載の方法。
【請求項7】
前記アクセススケジュールに従って前記構成にアクセスすることが、
前記複数のプロセスのうちのプロセスの予想実行時間を前記アクセススケジュールに基づいて決定することと、
前記構成に従って前記プロセスによって使用されるデータをフェッチすると、前記予想実行時間にデータアクセスするための前記プロセスをウェイクアップすることと、を含む、請求項6に記載の方法。
【請求項8】
前記画像データ、前記ポーズデータ、及び前記視線推定が、記憶デバイスに記憶され、前記画像データ、前記ポーズデータ、及び前記視線推定の前記構成が、前記画像データ、前記ポーズデータ、及び前記視線推定を前記記憶デバイスに記憶するためのレイアウト又はシーケンシングのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項9】
前記画像取得インタフェースが、前記視野に関連付けられた前記画像データを取得するための画像センサを含む、請求項1に記載の方法。
【請求項10】
前記画像取得インタフェースが、前記ユーザの前記現在の姿勢を測定するためのIMUを含む、請求項1に記載の方法。
【請求項11】
前記画像取得インタフェースが、前記アイトラッキング情報を取得するためのアイトラッキング装置を含む、請求項1に記載の方法。
【請求項12】
前記複数のプロセスの前記複数の特性が、前記画像データ、前記ポーズデータ、及び前記視線推定を使用する前記プロセスのシーケンスを含む、請求項1に記載の方法。
【請求項13】
前記ハードウェアタイミングパラメータが、画像センサ、IMU、アイトラッキング装置、コントローラ、プロセッサ、又は通信デバイスのうちの少なくとも1つと関連付けられている、請求項12に記載の方法。
【請求項14】
デバイスであって、
画像取得インタフェースと、
前記画像取得インタフェースによって取得された視野に関連付けられた画像データを取得し、慣性測定ユニット(IMU)情報に少なくとも部分的に基づくポーズデータであって、前記画像取得インタフェースによって測定された、あるユーザの現在の姿勢に対応する前記ポーズデータを決定し、
前記画像取得インタフェースを介して取得されたアイトラッキング情報に少なくとも部分的に基づいて、視線推定を決定し、
前記画像取得インタフェースと通信可能な複数のプロセスの複数の特性に少なくとも部分的に基づいて、前記画像データ、前記ポーズデータ、及び前記視線推定の構成を決定し、
前記画像データ、前記ポーズデータ、及び前記視線推定の前記構成、
前記複数のプロセスの前記複数の特性、並びに
前記デバイスと関連付けられたハードウェアタイミングパラメータのうちの少なくとも1つに少なくとも部分的に基づいて、前記複数のプロセスのアクセススケジュールを決定する、1つ以上のプロセッサと、を備える、デバイス。
【請求項15】
前記1つ以上のプロセッサが、
前記複数のプロセスのうちの第1のプロセスであって、第1の特性のセットによって特徴付けられる前記第1のプロセスに対する、第1の画像データ、第1のポーズデータ、及び第1の視線推定のうちの少なくとも1つを取得することと、
前記複数のプロセスのうちの第2のプロセスであって、第2の特性のセットによって特徴付けられる前記第2のプロセスに対する、第2の画像データ、第2のポーズデータ、及び第2の視線推定のうちの少なくとも1つを取得することと、
前記第1の画像データ、前記第1のポーズデータ、及び前記第1の視線推定を、前記第2の画像データ、前記第2のポーズデータ、及び前記第2の視線推定と統合して、前記画像データ、前記ポーズデータ、及び前記視線推定であって、前記第1の特性のセット及び前記第2の特性のセットに少なくとも部分的に基づいて構成される前記画像データ、前記ポーズデータ、及び前記視線推定を生成すること、
によって、前記画像データ、前記ポーズデータ、及び前記視線推定の前記構成を決定する、請求項14に記載のデバイス。
【請求項16】
前記アクセススケジュールが、決定論的モデルに基づいて決定され、1つ以上のプロセッサが、更に
前記複数のプロセスの第1のプロセスに対して、前記第1のプロセスに対する入力、前記入力を提供するハードウェア又は第2のプロセスのうちの少なくとも1つ、及び前記ハードウェア又は前記第2のプロセスのうちの少なくとも1つから前記入力を取得するための時間パラメータを決定し、
前記時間パラメータに少なくとも部分的に基づいて、前記第1のプロセスのウェイクタイムを計算する、請求項14に記載のデバイス。
【請求項17】
前記1つ以上のプロセッサが、更に、
表示のためのシーンを生成するために、前記アクセススケジュールに従って前記構成にアクセスし、
前記構成から得られたデータであって、前記画像データ、前記ポーズデータ、及び前記視線推定のうちの少なくとも1つのサブセットである前記データを使用して、かつ前記アクセススケジュールに従って、前記シーンを表示する、請求項14に記載のデバイス。
【請求項18】
前記画像取得インタフェースが、前記視野に関連付けられた前記画像データを取得するための画像センサ、前記ユーザの前記現在の姿勢を測定するためのIMU、前記アイトラッキング情報を取得するためのアイトラッキング装置を含む、請求項14に記載のデバイス。
【請求項19】
前記複数のプロセスの前記複数の特性が、前記画像データ、前記ポーズデータ、及び前記視線推定を使用する前記プロセスのシーケンスを含む、請求項14に記載のデバイス。
【請求項20】
符号化された命令を有する非一時的コンピュータ可読媒体であって、前記命令が、画像取得インタフェースを含むデバイスの1つ以上のプロセッサによって実行されると、前記デバイスに、
前記画像取得インタフェースによって取得された視野に関連付けられた画像データを取得させ、
慣性測定ユニット(IMU)情報に少なくとも部分的に基づくポーズデータであって、前記画像取得インタフェースによって測定された、あるユーザの現在の姿勢に対応する前記ポーズデータを決定させ、
前記画像取得インタフェースを介して取得されたアイトラッキング情報に少なくとも部分的に基づいて、視線推定を決定させ、前記画像取得インタフェースと通信可能な複数のプロセスの複数の特性に少なくとも部分的に基づいて、前記画像データ、前記ポーズデータ、及び前記視線推定の構成を決定させ、
前記画像データ、前記ポーズデータ、及び前記視線推定の前記構成、前記複数のプロセスの前記複数の特性、並びに前記デバイスに関連付けられたハードウェアタイミングパラメータのうちの少なくとも1つに少なくとも部分的に基づいて、前記複数のプロセスのためのアクセススケジュールを決定させる、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、データ共有に関し、具体的には、決定論的プル/フェッチモデルを使用して低遅延でのデータ共有を提供するシステム、方法、及びデバイスに関する。
【背景技術】
【0002】
物理的環境とは、人々が電子システムの助けなしに、感知及び/又は相互作用することができる物理的世界を指す。物理的な公園などの物理的環境は、物理的な木々、物理的な建物、及び物理的な人々などの物理的物品を含む。人々は、視覚、触覚、聴覚、味覚、及び臭覚などを介して、物理的環境を直接感知し、及び/又はそれと相互作用することができる。
【0003】
対照的に、コンピュータ生成現実(computer-generated reality、CGR)環境は、人々が電子システムを介して感知及び/又は相互作用する全体的又は部分的にシミュレーションされた環境を指す。CGRでは、人の物理的動作のサブセット又はその表現がトラッキングされ、それに応答して、CGR環境内でシミュレートされた1つ以上の仮想オブジェクトの1つ以上の特性が、少なくとも1つの物理学の法則に適合するように調整される。例えば、CGRシステムは、人の頭部が回転するのを検出し、それに応じて、その人に提示するグラフィックコンテンツ及び音場を、そのような視界及び音が物理的環境において変化するであろうと似たように調整することができる。状況によっては(例えば、利用しやすさの理由から)、CGR環境における仮想オブジェクト(単数又は複数)の特性(単数又は複数)の調整は、物理的動作の表現(例えば、音声コマンド)に応じて行われてもよい。
【0004】
人は、視覚、聴覚、触覚、味覚及び嗅覚を含むこれらの感覚のうちの任意の1つを使用して、CGRオブジェクトを感知し、かつ/又はCGRオブジェクトと相互作用してもよい。例えば、人は、3D空間において点音源の知覚を提供する、3D又は空間的広がりを有するオーディオ環境を作り出すオーディオオブジェクトを感知し、かつ/又はそれと相互作用することができる。別の例では、オーディオオブジェクトは、コンピュータ生成オーディオを含め、又は含めずに、物理的環境から周囲音を選択的に組み込むオーディオ透過性を可能にすることができる。いくつかのCGR環境では、人は、オーディオオブジェクトのみを感知し、及び/又はそれと相互作用することができる。
【0005】
CGRの例としては、仮想現実及び複合現実が挙げられる。
【0006】
仮想現実(virtual reality、VR)環境とは、1つ以上の感覚について、全面的にコンピュータ生成感覚の入力に基づくように設計されたシミュレーション環境を指す。VR環境は、人が感知及び/又は相互作用することができる複数の仮想オブジェクトを含む。例えば、木、建物、及び人々を表すアバターのコンピュータ生成画像は、仮想オブジェクトの例である。人は、コンピュータ生成環境内に人が存在することのシミュレーションを通じて、かつ/又はコンピュータ生成環境内での人の物理的動きのサブセットのシミュレーションを通じて、VR環境における仮想オブジェクトを感知し、かつ/又はそれと相互作用することができる。
【0007】
コンピュータ生成感覚入力に全面的に基づくように設計されたVR環境とは対照的に、複合現実(mixed reality、MR)環境は、コンピュータ生成感覚入力(例えば、仮想オブジェクト)を含むことに加えて、物理的環境からの感覚入力又はその表現を組み込むように設計されたシミュレーション環境を指す。仮想性の連続体上において、複合現実環境は、一方の端における完全な物理的環境と、他方の端における仮想現実環境との間にあるがこれらを含まないどこかにある。
【0008】
いくつかのMR環境では、コンピュータ生成感覚入力は、物理的環境からの感覚入力の変化に応答し得る。また、MR環境を提示するための電子システムの一部は、仮想オブジェクトが現実のオブジェクト(すなわち、物理的環境からの物理的物品又はその表現)と相互作用することを可能にするために、物理的環境に関する所在場所及び/又は向きをトラッキングすることができる。例えば、システムは、仮想の木が物理的な地面に対して静止して見えるような動きに責任を有し得る。
【0009】
複合現実の例としては、拡張現実及び拡張仮想現実が挙げられる。
【0010】
拡張現実(augmented reality、AR)環境は、1つ以上の仮想オブジェクトが物理的環境上又はその表現上に重ねられたシミュレーション環境を指す。例えば、AR環境を提示するための電子システムは、人が物理的環境を直接見ることができる透明又は半透明のディスプレイを有してもよい。システムは、透明又は半透明のディスプレイ上に仮想オブジェクトを提示するように構成されていてもよく、それによって、人はシステムを使用して、物理的環境上に重ねられた仮想オブジェクトを知覚する。あるいは、システムは、不透明ディスプレイと、物理的環境の表現である、物理的環境の画像又は動画をキャプチャする1つ以上の撮像センサとを有してもよい。システムは、画像又は動画を仮想オブジェクトと合成し、その合成物を不透明なディスプレイ上に提示する。人は、システムを使用して、物理的環境の画像又は動画によって物理的環境を間接的に見て、物理的環境上に重ねられた仮想オブジェクトを知覚する。本明細書で使用するとき、不透明ディスプレイ上に示される物理的環境の動画は、「パススルー動画」と呼ばれ、システムが、1つ以上の撮像センサ(単数又は複数)を使用して、物理的環境の画像をキャプチャし、不透明ディスプレイ上にAR環境を提示する際にそれらの画像を使用することを意味する。更に代替的に、システムは、仮想オブジェクトを、物理的環境に、例えば、ホログラムとして又は物理的表面上に投影するプロジェクションシステムを有してもよく、それによって、人は、システムを使用して、物理的環境上に重ねられた仮想オブジェクトを知覚する。
【0011】
拡張現実環境はまた、物理的環境の表現がコンピュータ生成感覚情報によって変換されるシミュレーション環境を指す。例えば、パススルー動画を提供する際に、システムは、1つ以上のセンサ画像を変換して、撮像センサによってキャプチャされた遠近法とは異なる選択された遠近法(例えば、視点)による面付けを行うことができる。別の例として、物理的環境の表現は、その一部分をグラフィカルに変更(例えば、拡大)することによって変換されてもよく、それにより、変更された部分を元のキャプチャ画像を表すが写実的ではないバージョンとすることができる。更なる例として、物理的環境の表現は、その一部分をグラフィカルに除去又は曖昧化することによって変換されてもよい。
【0012】
拡張仮想現実(augmented virtuality、AV)環境は、物理的環境からの1つ以上の感覚入力を仮想環境又はコンピュータ生成環境が組み込むシミュレーション環境を指す。感覚入力は、物理的環境の1つ以上の特性の表現であり得る。例えば、AVパークには、仮想の木及び仮想の建物があり得るが、人々は、物理的な人々を撮った画像から顔が写実的に再現される。別の例として、仮想オブジェクトは、1つ以上の撮像センサによって撮像された物理的物品の形状又は色を採用してもよい。更なる例として、仮想オブジェクトは、物理的環境における太陽の位置と整合性のある影を採用することができる。
【0013】
人が様々なCGR環境を感知し、かつ/又はCGR環境と相互作用することを可能とする、多くの様々に異なる電子システムが存在する。例としては、スマートフォン、タブレット、デスクトップ/ラップトップコンピュータ、ヘッドマウントシステム、プロジェクションベースシステム、ヘッドアップディスプレイ(heads-up display、HUD)、統合表示機能を有する車両ウィンドシールド、統合表示機能を有する窓、(例えば、コンタクトレンズと同様に)人の目に接して配置されるように設計されたレンズとして形成されたディスプレイ、ヘッドホン/イヤフォン、スピーカアレイ、入力システム(例えば、触覚フィードバックを有する若しくは有さない、ウェアラブル又はハンドヘルドコントローラ、及び/又はハンドトラッキング及び/又は他の身体のポーズ推定機能を有するカメラ)、が挙げられる。
【0014】
ヘッドマウントシステムは、1つ以上のスピーカ(単数又は複数)及び一体型不透明ディスプレイを有してもよい。あるいは、ヘッドマウントシステムは、外部の不透明ディスプレイ(例えば、スマートフォン)を受け入れるように構成されたヘッドマウントエンクロージャ(HME)であってもよい。ヘッドマウントシステムは、物理的環境の画像又は動画をキャプチャするための1つ以上の撮像センサ、及び/又は物理的環境のオーディオをキャプチャするための1つ以上のマイクロフォンを組み込んでいてもよい。ヘッドマウントシステムは、不透明ディスプレイではなく、透明又は半透明のディスプレイを有してもよい。透明又は半透明のディスプレイは、媒体であって、それを通って画像を表す光が人の目に向けられる媒体を有してもよい。ディスプレイは、デジタル光投影、OLED、LED、uLED、液晶オンシリコン、レーザスキャン光源、又はこれらの技術の任意の組み合わせを利用することができる。媒体は、光導波路、ホログラム媒体、光結合器、光反射器、又はこれらの任意の組み合わせであってもよい。一実装形態において、透明又は半透明のディスプレイは、選択的に不透明になるように構成されていてもよい。プロジェクションベースシステムは、グラフィック画像を人間の網膜上に投影する網膜投影技術を採用することができる。プロジェクションシステムはまた、例えば、ホログラムとして、又は物理的表面上に、仮想オブジェクトを物理的環境内に投影するように構成されていてもよい。
【0015】
CGRデバイス上で利用可能なコンテンツは、ますます没入型で、よりグラフィック集約型になっており、かつ、日常生活に普遍的に適用可能である。したがって、CGRデバイスにおけるハードウェアは、リソースを大量に消費するプロセスに適応し、CGRコンテンツに追従するように進化し続けている。しかしながら、複数のプロセスが同時にリソースを争い合うため、遅延及び多数の割り込みにより必然的にボトルネック効果が生じる。遅延が可視である場合の問題は、ユーザのエクスペリエンスに悪影響を及ぼし得る。
【図面の簡単な説明】
【0016】
本開示は、当業者によって理解され得るように、いくつかの例示的な実装形態の態様を参照することによって、より詳細な説明を有してもよく、そのいくつかは添付図面に示されている。
【0017】
図1】いくつかの実装形態による、例示的な動作環境のブロック図である。
【0018】
図2】いくつかの実装形態による、CGRデータ共有のための割り込みモデルを示すブロック図である。
【0019】
図3】いくつかの実装形態による、プロセス間のCGRデータ共有のための例示的な決定論的プル/フェッチモデルのブロック図である。
【0020】
図4】いくつかの実装形態による、決定論的プル/フェッチモデルに基づく例示的なCGRデータ共有プロセスを示すブロック図である。
【0021】
図5A】いくつかの実装形態による、プル/フェッチモデルで使用されるコントローラの一例のブロック図である。
【0022】
図5B】いくつかの実装形態による、例示的なコントローラ管理データ構成及びプロセスアクセススケジューリングを示すブロック図である。
【0023】
図6】いくつかの実装形態による、例示的なCGRデバイスのブロック図である。
【0024】
図7A】いくつかの実装形態による、CGRパイプラインを示す。
【0025】
図7B】いくつかの実装形態による、CGRパイプラインを実装する分散システムを示す。
【0026】
図8】いくつかの実装形態による、プロセス間で共有データにアクセスする方法のフローチャートである。
【0027】
慣行により、図面に示される様々な特徴は縮尺どおりに描かれていない場合がある。したがって、様々な特徴部の寸法は明確化のために、任意に拡大又は縮小されている場合がある。加えて、いくつかの図面は、所与のシステム、方法、又はデバイスの構成要素の全てを描いていない場合がある。最後に、本明細書及び図の全体を通して、同様の特徴を有することを示すために同様の参照番号が使用される場合がある。
【発明の概要】
【0028】
本明細書に開示される様々な実装形態は、プロセス間で共有データにアクセスするためのデバイス、システム、及び方法を含む。様々な実装形態では、本方法は、1つ以上のプロセッサと、非一時的メモリと、及び画像取得インタフェースとを含むデバイスにおいて実行される。本方法は、画像取得インタフェースによって取得された視野に関連付けられた画像データを取得することを含む。本方法は、慣性測定ユニット(IMU)情報に少なくとも部分的に基づいてポーズデータを決定すること、を更に含み、そこで、ポーズデータは、画像取得インタフェースによって測定されたユーザの現在の姿勢に対応する。本方法は、画像取得インタフェースを介して取得されたアイトラッキング情報に少なくとも部分的に基づいて、視線推定を決定することを更に含む。本方法はまた、画像取得インタフェースと通信可能な複数のプロセスの複数の特性に少なくとも部分的に基づいて、画像データ、ポーズデータ、及び視線推定のための構成を決定することを更に含む。本方法は、画像データ、ポーズデータ、及び視線推定の構成、複数のプロセスの複数の特性、並びにデバイスに関連付けられたハードウェアタイミングパラメータのうちの少なくとも1つに少なくとも部分的に基づいて、複数のプロセスのためのアクセススケジュールを決定すること、を更に含む。
【0029】
いくつかの実装形態によれば、デバイスは、1つ以上のプロセッサと、非一時的メモリと、1つ以上のプログラムと、を含む。1つ以上のプログラムは、非一時的メモリに記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、本明細書に記載の方法のいずれかを実行するか又は実行させる命令を含む。いくつかの実装形態によれば、非一時的コンピュータ可読記憶媒体は内部に命令を記憶しており、この命令は、デバイスの1つ以上のプロセッサによって実行されると、本明細書内で説明する方法のうちのいずれかを実行、又はデバイスに実行させる。いくつかの実装形態によれば、デバイスは、1つ以上のプロセッサと、非一時的メモリと、本明細書に記載される方法のいずれかを実行する又は実行させる手段と、を含む。
【発明を実施するための形態】
【0030】
図面に示される例示的な実装形態の十分な理解を提供するために、数多くの詳細が記載されている。しかしながら、図面は単に本開示のいくつかの例示的な態様を示すものであり、したがって、限定的であると考慮されるべきではない。当業者であれば、他の有効な態様及び/又は変形が本明細書に記載される特定の詳細全てを含むものではないと理解するであろう。更に、本明細書に記載される例示的な実装形態のより適切な態様を不明瞭にしないよう、周知のシステム、方法、構成要素、デバイス及び回路は、網羅的に詳細を記載していない。
【0031】
上述のように、リソースの割り込みモデルに従うCGRデバイス上のプロセスは、多くの場合、リソースに対して同時に競合する。結果として、ボトルネック効果により、ユーザのエクスペリエンスに悪影響を及ぼす遅延を引き起こし得る。本明細書に開示される様々な実装形態は、割り込みモデルから離れ決定論的プル/フェッチモデルに移行している。プロセスがデータをセットされた時間においてフェッチすることを可能にするアクセススケジュールが決定される。アクセススケジュールは、システムパラメータ及びユーザポーズ情報などの、既知の(例えば、決定論的)情報に基づいて決定される。したがって、本明細書に記載される様々な実装形態は、上述の欠点、具体的にはデータアクセスに関与するものに対処する。結果として、消費されるメモリ及び処理リソースがより少なくなる。当然のことながら、データがCGRディスプレイパイプラインを通過しているときの遅延が減少するため、全体的なユーザエクスペリエンスを改善することができる。
【0032】
図1は、いくつかの実装形態による、例示的な動作環境100のブロック図である。関連する特徴が示されているが、当業者であれば、本明細書に開示される例示的な実施形態のより適切な態様を曖昧にしないように簡潔化するために、様々な他の特徴が示されていないことを、本開示から理解するであろう。そのために、非限定的な例として、動作環境100は、コントローラ102及びCGRデバイス104を含む。
【0033】
いくつかの実装形態では、CGRデバイス104は、タブレット又は携帯電話に対応する。様々な実装形態では、CGRデバイス104は、ヘッドマウントデバイス(HMD)、又はタブレット若しくは携帯電話が中に挿入されたヘッドマウントエンクロージャ(HME)などのヘッドマウントシステムに対応する。いくつかの実装形態では、CGRデバイス104は、CGRコンテンツをユーザに提示するように構成されている。いくつかの実装形態では、CGRデバイス104は、ソフトウェア、ファームウェア、及び/又はハードウェアの適切な組み合わせを含む。
【0034】
いくつかの実装形態によれば、CGRデバイス104は、CGRデバイス104の視野111においてテーブル107を含むシーン106内にユーザが仮想的及び/又は物理的に存在している間に、ユーザにディスプレイ122を介してCGRコンテンツを提示する。いくつかの実装形態では、CGRデバイス104は、仮想コンテンツ(例えば、仮想円筒109)を提示し、ディスプレイ122上におけるシーン106の(例えば、テーブル107の表現117を含む)動画パススルーを可能にするように構成されている。いくつかの実装形態では、CGRデバイス104は、仮想コンテンツを提示し、シーン106の光学的シースルーを可能にするように構成されている。
【0035】
いくつかの実装形態では、ユーザは、自分の手(単数又は複数)にCGRデバイス104を保持する。いくつかの実装形態では、ユーザは、自分の頭部にCGRデバイス104を装着する。したがって、CGRデバイス104は、CGRコンテンツを表示するために提供される1つ以上のCGRディスプレイを含む。例えば、CGRデバイス104は、ユーザの視野を包囲する。いくつかの実装形態では、CGRデバイス104は、CGRコンテンツを提示するように構成され、ユーザがCGRデバイス104を着用しないCGRチャンバ、エンクロージャ、又は部屋と置き換えられる。
【0036】
いくつかの実装形態では、コントローラ102は、ユーザに対するCGRコンテンツの提示を管理及び調整するように構成されている。いくつかの実装形態では、コントローラ102は、ソフトウェア、ファームウェア、及び/又はハードウェアの好適な組み合わせを含む。いくつかの実装形態では、コントローラ102は、シーン106に対してローカル又はリモートであるコンピューティングデバイスである。例えば、コントローラ102は、シーン106内に位置するローカルサーバである。別の例では、コントローラ102は、シーン106の外側に位置するリモートサーバ(例えば、クラウドサーバ、中央サーバなど)である。いくつかの実装形態では、コントローラ102は、1つ以上の有線又は無線通信チャネル144(例えば、BLUETOOTH、IEEE 802.11x、IEEE 802.16x、IEEE 802.3xなど)を介して、CGRデバイス104と通信可能に結合される。いくつかの実装形態では、コントローラ102の機能は、CGRデバイス104によって提供され、及び/又はCGRデバイス104と組み合わされる。
【0037】
図1に示すように、CGRデバイス104は、シーン106の表現を提示する。いくつかの実装形態では、シーン106の表現は、コントローラ102及び/又はCGRデバイス104によって生成される。いくつかの実装形態では、シーン106の表現は、シーン106のシミュレートされた置換である仮想シーンを含む。換言すれば、いくつかの実装形態では、シーン106の表現は、コントローラ102及び/又はCGRデバイス104によってシミュレートされる。そのような実装形態では、シーン106の表現は、CGRデバイス104が位置するシーン106とは異なる。いくつかの実装形態では、シーン106の表現は、(例えば、仮想円筒109を含む)シーン106の修正されたバージョンである拡張されたシーンを含む。例えば、いくつかの実装形態では、シーン106の表現を生成するために、コントローラ102及び/又はCGRデバイス104は、シーン106の画像を修正(例えば、拡張)する。いくつかの実装形態では、コントローラ102及び/又はCGRデバイス104は、シーン106の複製をシミュレートすることによってシーン106の表現を生成する。いくつかの実装形態では、コントローラ102及び/又はCGRデバイス104は、シーン106のシミュレートされた複製からアイテムを除去及び/又は追加することによって、シーン106の表現を生成する。
【0038】
図2は、CGRデータ共有のための割り込みモデル200を示すブロック図である。いくつかの実装形態では、シーン106の表現を生成するために(図1に示すように)、複数のプロセス、例えば、プロセス1 210-1、プロセス2 210-2、プロセス3210-3、・・・プロセスN 210-Nは、(図1に示すように)CGRデバイス104によって得られた生データを入力として取得する。例えば、生データは、画像センサ(単数又は複数)によって取得された画像データ230、IMUによって取得されたポーズデータ240、アイトラッキング装置によって取得された情報から導出された視線推定データ250、及びCGRデバイス104によって取得された他のデータ260、を含む。いくつかの実装形態では、複数のプロセス210は、1つのプロセスからの出力が別のプロセスによって入力として使用され、例えば、プロセス2 210-2からの出力がプロセス3 210-3への入力であるように、互いに依存している。いくつかの実装形態では、プロセス210からの生データ及び/又は出力は、通信経路220、例えば、コントローラ102の通信インタフェース(単数又は複数)、及び/又はCGRデバイス104の通信インタフェース(単数又は複数)を介して確立された通信経路を通じて通信される。
【0039】
図2に示すように、プロセス1 210-1が画像データ230及び視線推定データ250を必要とする場合、プロセス1 210-1は、画像データ230のコピー及び視線推定データ250のコピーを入力として取得するために、画像センサ及びアイトラッキング装置に割り込む。同様に、プロセス2 210-2もまた画像データ230及び視線推定データ250を必要とする場合、プロセス2 210-2は、画像データ230のコピー及びポーズ推定データ250のコピーを入力として取得するために、画像センサ及びアイトラッキング装置に割り込む。別の例では、図2に示すように、プロセス3 210-3は、プロセス2 210-2からの入力、ポーズデータ240、及び他のデータ260を必要とする。プロセス3 210-3は、ポーズデータ240及び他のデータ260を取得するために、IMU及び他のセンサ(単数又は複数)に割り込みながら、プロセス2 210-2の完了を待つ。
【0040】
割り込みモデル200は、いくつかの理由で非効率的である。第1に、複数のプロセス(例えば、プロセス1 210-1及びプロセス2 210-2)がリソース(例えば、画像データ230及び視線推定データ250)に対して競合している場合、割り込みは、複数のボトルネック、例えば、センサにおける少なくとも1つのボトルネック、及び通信経路220における別のボトルネックを作り出していた。第2に、データの複数のコピーが複数のプロセスに対して作成されるため、割り込みモデル200は、異なるタスクにわたってメモリを共有しない。したがって、メモリ使用が非効率的である。ボトルネック、非効率的なメモリ利用、及びプロセス依存性からのカスケード効果のため、割り込みモデル200は、CGRコンテンツのリアルタイムストリーミングのための遅延要件を満たすことができない。したがって、割り込みモデル200を使用して提示されるCGRシーンは、ユーザに乗り物酔いを引き起こし得る。
【0041】
図3は、いくつかの実施形態による、プロセス間でのCGRデータ共有のための例示的な決定論的プル/フェッチモデル300のブロック図である。決定論的システムは、典型的には、システムの将来状態の進展においてランダム性を伴わない。このように、決定論的モデルは、所与の開始条件又は初期状態から同じ出力を生成する。したがって、決定論的モデル300を使用して、システムは、データがいつ生成され、どこからアクセスされるかを予測することができる。したがって、プル/フェッチモデル300は、データがフェッチされる準備ができているときに、取り出しに効率的な位置からデータを取り出すことを可能にする。それゆえ、そのようなシステムでは、ボトルネックが低減され、リソースの競合が減少する。
【0042】
例えば、図3は、2つのプロセス、すなわちプロセスM及びプロセスNを示し、そこで、プロセスNはプロセスMからの出力に依存し、プロセスMはカメラによって撮影された画像データをフェッチする。システムは、カメラ露光時間Δ1などのハードウェアタイミングパラメータ、並びにプロセスの特性、例えば、プロセスMの処理時間Δ2、及び/又はプロセスM及びNに対する入力データのタイプを学習する。これらのパラメータ及び特性は、プロセスがデータをフェッチするタイミング、及びデータがフェッチされる場所を決定するためにシステムによって使用される。図3では、システムは、システム同期クロックを使用して開始時間(例えば、T)、予想カメラ動作持続時間(例えば、T~T)、及び予想プロセスM実行時間(T~T)を測定し、プロセスMのウェイクアップ時間T及びプロセスNのウェイクアップ時間Tを計算する。
【0043】
いくつかの実施形態では、決定論的システムは、各プロセスに対して計算されたウェイクアップ時間を含むプロセスのためのアクセススケジュールを生成する。いくつかの実施形態では、各タスク間、例えば、TとTとの間、TとTとの間、及びTとTとの間の期間での閾値時間量が確保される。閾値時間量は、プロセス及び/又はハードウェア構成要素間の通信遅延のために確保される。例えば、TとTとの間の時間は、システムがカメラに画像データの取得を開始するように通知するためのものであり、TとTとの間の時間は、カメラがプロセスMをウェイクアップするためのものであり、TとTとの間の時間は、プロセスMがプロセスNをウェイクアップするためのものである。いくつかの実施形態では、閾値時間量もまた、アクセススケジュール内に記録される。アクセススケジュールに続いて、ウェイクアップすると、プロセスM及びNに対する入力は、フェッチされる準備が整う。したがって、図2に示す割り込みモデル200とは対照的に、図3に示すようなプル/フェッチモデル300は、システムレベルにおける制約を低減し、システム性能を全体として向上させる。
【0044】
図4は、いくつかの実装形態による、決定論的プル/フェッチモデル300に基づくCGRデータ共有プロセス400を示すブロック図である。いくつかの実装形態では、(図1に示すように)シーン106の表現を生成するために、複数のプロセス、例えば、プロセス1 410-1、プロセス2 410-2、プロセス3 410-3、・・・プロセスN 410-Nは、(図1に示すように)CGRデバイス104によって取得された生データを受信する。例えば、生データは、画像センサ(単数又は複数)によって取得された画像データ430、IMUによって取得されたポーズデータ440、アイトラッキング装置によって取得された情報から導出された視線推定データ450、及びCGRデバイス104によって取得された他のデータ460、を含む。いくつかの実装形態では、複数のプロセスは、1つのプロセスからの出力が別のプロセスによって入力として使用され、例えば、プロセス2 410-2からの出力がプロセス3 410-3への入力であるように、互いに依存している。いくつかの実装形態では、複数のプロセス410からの生データ及び/又は出力は、通信経路420、例えば、コントローラ102の通信インタフェース(単数又は複数)、及び/又はCGRデバイス104の通信インタフェース(単数又は複数)を介して確立された通信経路を通じて通信される。
【0045】
図4に示すように、決定論的モデル300を使用して、コントローラ102は、バッファ425内のデータ427のデータ構成(例えば、レイアウト及び/又はシーケンシング)を指示し、例えば、バッファ425内のデータがプル/フェッチされる準備が整うと、アクセススケジュールに従って複数のプロセス410をウェイクアップする。例えば、プロセス2 410-2の画像データ427-2(図4では(I,2)として表されている)及びプロセス3 410-3の画像データ427-4(図4では(I,3)として表されている)は、カメラがキャプチャした画像データ430から取得される。プロセス2 410-2の画像データ427-2、及びプロセス3 410-3の画像データ427-4は、画像データ427-2及び427-4がデータストリーム内のプロセス410に提供されると、プロセス2 410-2及びプロセス3 410-3がアクセススケジュールに従ったシーケンスでウェイクアップするようなレイアウト及び/又はシーケンスで、バッファ425内に構成される。具体的には、プロセス3 410-3がウェイクアップすると、画像データ427-4並びにプロセス2 410-2からの出力がプル/フェッチされる準備が整う。
【0046】
図5Aは、いくつかの実装形態による、上述したプル/フェッチモデルで使用されるコントローラ102の一例のブロック図である。図5Bは、いくつかの実装形態による、コントローラ102によって管理されるデータ構成及びプロセスアクセススケジューリングを示すブロック図である。図5Bは、いくつかの実装形態による、図5Aに示すコントローラ102によって管理される例示的なCGRシーン生成を示すために使用されている。特定の特徴が示されているが、当業者は、本明細書に開示される実装形態のより適切な態様を曖昧にしないよう、簡潔にするために様々な他の特徴が示されていないことを、本開示から理解されよう。そのために、非限定的な例として、図5Aに示すように、いくつかの実装形態では、コントローラ102は、1つ以上の処理ユニット502(例えば、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィック処理ユニット(GPU)、中央処理ユニット(CPU)、処理コアなど)、1つ以上の入出力(I/O)デバイス506、1つ以上の通信インタフェース508(例えば、ユニバーサルシリアルバス(USB)、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、グローバル移動通信システム(GSM)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、グローバル測位システム(GPS)、赤外線(IR)、BLUETOOTH、ZIGBEE、及び/又は同様のタイプのインタフェース)、1つ以上のプログラミング(例えば、I/O)インタフェース510、メモリ520、並びにこれら及び様々な他の構成要素を相互接続するための1つ以上の通信バス504、を含む。
【0047】
いくつかの実装形態では、1つ以上の通信バス504は、システム構成要素間を相互接続し、システム構成要素間の通信を制御する回路構成を含む。いくつかの実装形態では、1つ以上のI/Oデバイス506は、キーボード、マウス、タッチパッド、ジョイスティック、1つ以上のマイクロフォン、1つ以上のスピーカ、1つ以上の画像センサ、1つ以上のディスプレイなどのうちの少なくとも1つを含む。
【0048】
メモリ520は、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、ダブルデータレートランダムアクセスメモリ(DDRRAM)、又は他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含む。いくつかの実装形態では、メモリ520は、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又はその他の不揮発性記憶デバイスなどの不揮発性メモリを含む。メモリ520は、1つ以上の処理ユニット502からリモートに位置する1つ以上の記憶デバイスを任意選択的に含む。メモリ520は、非一時的コンピュータ可読記憶媒体を含む。いくつかの実装形態では、メモリ520、又はメモリ520の非一時的コンピュータ可読記憶媒体は、任意選択のオペレーティングシステム530及びCGRコンテンツモジュール540を含む、以下のプログラム、モジュール及びデータ構造、又はそれらのサブセットを記憶する。
【0049】
オペレーティングシステム530は、様々な基本システムサービスを処理するための手順、及びハードウェア依存タスクを実行するための手順を含む。いくつかの実装形態では、CGRコンテンツモジュール540は、1人以上のユーザのためのCGRコンテンツ(例えば、1人以上のユーザのための単一のCGRコンテンツのセット、又は1人以上のユーザのそれぞれのグループのための複数のCGRコンテンツのセット)の提示を管理及び調整するように構成されている。そのために、様々な実装形態では、CGRコンテンツモジュール540は、データ取得ユニット542、トラッキングユニット544、調整ユニット546、データ送信ユニット548、及びデータアクセスユニット550を含む。
【0050】
いくつかの実装形態では、データ取得ユニット542は、少なくともCGRデバイス104からデータ(例えば、画像データ、ポーズデータ、視線推定、提示データ、相互作用データ、センサデータ、位置データなど)を取得するように構成されている。そのために、様々な実装形態では、データ取得ユニット542は、そのための命令及び/又はロジック、並びにそのためのヒューリスティックス及びメタデータを含む。
【0051】
いくつかの実装形態では、トラッキングユニット544は、シーン106をマッピングし、シーン106に関する少なくともCGRデバイス104の位置/場所をトラッキングするように構成されている。そのために、様々な実装形態では、トラッキングユニット544は、そのための命令及び/又はロジック、並びにそのためのヒューリスティックス及びメタデータを含む。
【0052】
いくつかの実装形態では、調整ユニット546は、CGRデバイス104によるユーザへのCGRコンテンツの提示を管理及び調整するように構成されている。CGRコンテンツの提示を管理及び調整するために、いくつかの実装形態では、調整ユニット546は、プロセス、データ記憶、及びハードウェア特性に関連する情報を取得するように構成されている。次いで、この情報は、調整ユニット546によって使用され、システムレベルでプロセスを調整する。そのために、様々な実装形態では、調整ユニット546は、そのための命令及び/又はロジック、並びにそのためのヒューリスティックス及びメタデータを含む。
【0053】
いくつかの実装形態では、データ送信ユニット548は、少なくともCGRデバイス104にデータ(例えば、提示データ、位置データなど)を送信するように構成されている。そのために、様々な実装形態では、データ送信ユニット548は、そのための命令及び/又はロジック、並びにそのためのヒューリスティックス及びメタデータを含む。
【0054】
いくつかの実装形態では、データアクセスユニット550は、データ取得ユニット542から取得されたデータをプロセスがフェッチすることを可能にするアクセススケジュールを決定するように構成されている。いくつかの実装形態では、データアクセスユニット550は、プロセスによる効率的なデータ取り出しのためのデータ構成552を決定する。いくつかの実装形態では、データアクセスユニット550はまた、プロセスがデータをプル又はフェッチするためのアクセススケジュール554を決定する。そのために、様々な実装形態では、データ送信ユニット548は、そのための命令及び/又はロジック、並びにそのためのヒューリスティックス及びメタデータを含む。
【0055】
例えば、図5Bでは、シーン認識プロセス560は、シーン106を認識するための画像データ及びポーズデータ580を取得する。ユーザが視線をシーン106内の関心領域(ROI)572に近接して固定したことをアイトラッキング装置が検出すると、ROI認識プロセス562は、視線推定データ582に基づいて画像データ内のROI画像データ590を特定する。続いて、オブジェクト認識プロセス564は、ROI画像データ590を分析し、ROI 572内のオブジェクト574を認識する。図5Bに示すように、プロセス560、562、及び564は、アクセススケジュール554に従ってデータ構成552にアクセスし、そこでアクセススケジュール554は、各プロセスの開始時間などの情報を含む。また、図5Bに示すように、データ構成552内のデータは、スケジュールされたフェッチに適応するように構成される。例えば、ROI画像データ590は、ROI認識プロセス562及びオブジェクト認識プロセス564によって使用されるため、ROI画像データ590は非ROI画像データ592とは別個に記憶され、より頻繁な又はより緊急性の高いアクセスに適応する。
【0056】
前述の図5Aを参照すると、データ取得ユニット542、トラッキングユニット544、調整ユニット546、データ送信ユニット548、及びデータアクセスユニット550は、単一のデバイス(例えば、コントローラ102)上に存在するものとして示されているが、他の実装形態では、データ取得ユニット542、トラッキングユニット544、調整ユニット546、データ送信ユニット548、及びデータアクセススケジューリングユニット550の任意の組み合わせを、別個のコンピューティングデバイス内に配置し得ることを理解されたい。
【0057】
更に、図5Aは、本明細書に記載される実装形態の構造概略図としてではなく、特定の実施形態に存在する様々な特徴の機能的な説明として意図されている。当業者によって認識されるように、別々に示された項目を組み合わせることができ、また、一部の項目は分離することができる。例えば、図5Aに別々に示されるいくつかの機能モジュールは、単一のモジュール内に実装することができ、単一の機能ブロックの様々な機能は、様々な実装形態において1つ以上の機能ブロックによって実装され得る。モジュールの実際の数並びに特定の機能の分割及びそれらの間にどのように機能が割り当てられるかは、実施形態によって異なり、いくつかの実装形態では、特定の実施形態のために選択されたハードウェア、ソフトウェア又はファームウェアの特定の組み合わせに部分的に依存する。
【0058】
図6は、いくつかの実装形態による、例示的なCGRデバイス104のブロック図である。特定の特徴が示されているが、当業者は、本明細書に開示される実装形態のより適切な態様を曖昧にしないよう、簡潔にするために様々な他の特徴が示されていないことを、本開示から理解されよう。そのために、非限定的な例として、いくつかの実装形態では、CGRデバイス104は、1つ以上の処理ユニット602(例えば、マイクロプロセッサ、ASIC、FPGA、GPU、CPU、処理コアなど)、1つ以上の入出力(I/O)デバイス606、1つ以上の通信インタフェース608(例えば、USB、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、GSM、CDMA、TDMA、GPS、赤外線、BLUETOOTH(登録商標)、ZIGBEE、及び/又は同様のタイプのインタフェース)、1つ以上のプログラミング(例えば、I/O)インタフェース610、1つ以上のCGRディスプレイ612、1つ以上の画像取得インタフェース614(例えば、任意選択の内向き及び/又は外向き画像センサ)、メモリ620、並びにこれらの及び様々な他の構成要素を相互接続するための1つ以上の通信バス604、を含む。
【0059】
いくつかの実装形態では、1つ以上の通信バス604は、システム構成要素間を相互接続し、システム構成要素間の通信を制御する回路構成を含む。いくつかの実装形態では、1つ以上のI/Oデバイス606は、1つ以上の生理学的センサ(例えば、血圧モニタ、心拍モニタ、血液酸素センサ、血糖センサなど)、1つ以上のマイクロフォン、1つ以上のスピーカ、触覚エンジン、及び/又は同様のもののうちの少なくとも1つを含む。
【0060】
いくつかの実装形態では、1つ以上のCGRディスプレイ612は、CGRコンテンツをユーザに提示するように構成されている。いくつかの実施形態では、1つ以上のCGRディスプレイ612は、ホログラフィック、デジタル光処理(DLP)、液晶ディスプレイ(LCD)、反射型液晶(LCoS)、有機発光電界効果トランジスタ(OLET)、有機発光ダイオード(OLED)、表面伝導型電子放出素子ディスプレイ(SED)、電界放出ディスプレイ(FED)、量子ドット発光ダイオード(QD-LED)、微小電気機械システム(MEMS)、及び/又は同様のディスプレイタイプに相当する。いくつかの実施形態では、1つ以上のCGRディスプレイ612は、回折、反射、偏光、ホログラフィックなどの、導波路ディスプレイに相当する。例えば、CGRデバイス104は、単一のAR/VRディスプレイを含む。別の例では、CGRデバイス104は、ユーザの両目のためのCGRディスプレイを含む。
【0061】
いくつかの実装形態では、1つ以上の画像取得インタフェース614は、CGRコンテンツ生成のためのデータを取得するように構成されている。いくつかの実装形態では、1つ以上の画像取得インタフェース614は、1つ以上の画像センサ、慣性測定ユニット(IMU)、加速度計、ジャイロスコープ、温度計、1つ以上の奥行きセンサ(例えば、構造化光、飛行時間など)、アイトラッキング装置のうちの少なくとも1つを含む。例えば、1つ以上の画像センサは、(例えば、相補型金属酸化膜半導体(CMOS)画像センサ又は電荷結合デバイス(CCD)画像センサを備えた)1つ以上のRGBカメラ、赤外線カメラ、イベントベースのカメラなどに相当する。
【0062】
メモリ620は、DRAM、SRAM、DDR RAM又は他のランダムアクセスソリッドステートメモリデバイスなどの、高速ランダムアクセスメモリを含む。いくつかの実装形態では、メモリ620は、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを含む。メモリ620は、1つ以上の処理ユニット602からリモートに位置する1つ以上の記憶デバイスを任意選択的に含む。メモリ620は、非一時的コンピュータ可読記憶媒体を含む。いくつかの実装形態では、メモリ620、又はメモリ620の非一時的コンピュータ可読記憶媒体は、任意選択のオペレーティングシステム630及びCGR提示モジュール640を含む、以下のプログラム、モジュール及びデータ構造、又はそれらのサブセットを記憶する。
【0063】
オペレーティングシステム630は、様々な基本システムサービスを処理するための手順、及びハードウェア依存タスクを実行するための手順を含む。いくつかの実装形態では、CGR提示モジュール640は、1つ以上のCGRディスプレイ612を介してCGRコンテンツをユーザに提示するように構成されている。そのために、様々な実装形態では、CGR提示モジュール640は、データ取得ユニット642、CGR提示ユニット644、アイトラッキングユニット646、及びデータ送信ユニット648を含む。
【0064】
いくつかの実装形態では、データ取得ユニット642は、少なくともコントローラ102からデータ(例えば、画像データ、ポーズデータ、提示データ、相互作用データ、センサデータ、位置データなど)を取得するように構成されている。そのために、様々な実装形態では、データ取得ユニット642は、そのための命令及び/又はロジック、並びにそのためのヒューリスティックス及びメタデータを含む。
【0065】
いくつかの実装形態では、CGR提示ユニット644は、1つ以上のCGRディスプレイ612を介してCGRコンテンツを提示するように構成されている。そのために、様々な実装形態では、CGR提示ユニット644は、そのための命令及び/又はロジック、並びにそのためのヒューリスティックス及びメタデータを含む。いくつかの実装形態では、CGR提示ユニット644は、第1の波長範囲の光を変形させるアイピースを通して、第1の波長範囲の放射光を含む画像を投影するように構成されている。いくつかの実施形態では、CGR提示ユニット644は、実質的な歪みなしに第2の波長範囲の光を通過させる一方、第1の波長範囲の光は反射及び屈折させるアイピースを通して、第1の波長の放射光を含む画像を投影するように構成されている。
【0066】
いくつかの実装形態では、アイトラッキングユニット646は、アイピースとディスプレイとの間に配置された1つ以上の光源を使用して、第2の波長範囲の光を放射し、カメラを使用して第2の波長範囲内の光を検出するように構成されている。様々な実装形態では、1つ以上の光源は、ユーザの目を照らし、カメラはユーザの目から反射された光を検出する。そのために、様々な実装形態では、アイトラッキングユニット646は、そのための命令及び/又はロジック、並びにそのためのヒューリスティックス及びメタデータを含む。いくつかの実装形態では、アイトラッキングユニット646は、アイピースを通して第2の波長範囲の光を放射し、ユーザの目によって反射された第2の波長範囲の光を検出するように構成されている。いくつかの実装形態では、アイトラッキングユニット646は、ユーザの目から検出された光反射に少なくとも部分的に基づいて、視線推定を提供する。
【0067】
いくつかの実装形態では、データ送信ユニット648は、少なくともコントローラ102にデータ(例えば、提示データ、位置データなど)を送信するように構成されている。そのために、様々な実装形態では、データ送信ユニット648は、そのための命令及び/又はロジック、並びにそのためのヒューリスティックス及びメタデータを含む。
【0068】
データ取得ユニット642、CGR提示ユニット644、アイトラッキングユニット646、及びデータ送信ユニット648は、単一のデバイス(例えば、CGRデバイス104)上に存在するものとして示されているが、他の実装形態では、データ取得ユニット642、CGR提示ユニット644、アイトラッキングユニット646、及びデータ送信ユニット648の任意の組み合わせを、別個のコンピューティングデバイス内に配置してもよいことを理解されたい。
【0069】
更に、図6は、本明細書に記載される実装形態の構造概略図としてではなく、特定の実施形態に存在する様々な特徴の機能的な説明として意図されている。当業者によって認識されるように、別々に示された項目を組み合わせることができ、また、一部の項目は分離することができる。いくつかの実装形態では、図6に別々に示すいくつかの機能モジュールは、単一のモジュール内に実装することができ、単一の機能ブロックの様々な機能は、様々な実装形態において1つ以上の機能ブロックによって実装され得る。モジュールの実際の数並びに特定の機能の分割及びそれらの間にどのように機能が割り当てられるかは、実施形態によって異なり、いくつかの実装形態では、特定の実施形態のために選択されたハードウェア、ソフトウェア又はファームウェアの特定の組み合わせに部分的に依存する。
【0070】
加えて、いくつかの実装形態では、図5Aに示すようなコントローラ102及び図6に示すようなCGRデバイス104によって実行される機能は、デバイス間に割り振られる。例えば、図7Aは、いくつかの実装形態による、センサからデータを受信し、(図1に示すような)シーン106の表現を生成する、CGRパイプライン700を示す。図7Bは、CGRパイプライン700を実装するシステム750を示している。システム750は、上述したコントローラ102及び/又はCGRデバイス104によって実行されるタスクを、コントローラ102とCGRデバイス104との間で割り振る。
【0071】
図7Aに示すように、いくつかの実装形態では、画像取得インタフェース614(図6)は、少なくとも、画像データを出力するための画像センサ710、ポーズデータを出力するためのIMU712、視線推定を提供するためのアイトラッキング装置714、及びシーン106を生成するためにプロセスへの入力として生データを提供するための1つ以上の他のセンサ716、を含む。コントローラ102によって実行されるプロセスは、画像データ、ポーズデータ、視線推定データ、及び生データを受信すると、受信したデータを、上述したようなデータ構成552に従ってバッファ(例えば、図4のバッファ425又は図7Aのバッファ720)に記憶する。更に、コントローラ102によって実行されるプロセスは、アクセススケジュール554に従ってバッファ720にアクセスする。アクセススケジュール554は、図3を参照して上述したような決定論的モデルに従って生成される。
【0072】
いくつかの実装形態では、CGRパイプライン700は、CGRコンテンツ及びデータをバッファ720から受信してディスプレイ612上に画像をレンダリングするレンダリングモジュール730を含む。様々な実装形態では、CGRコンテンツは、仮想オブジェクトの幾何学的形状の定義、仮想オブジェクトの色及び/又はテクスチャ、画像(シーン106のシースルー画像など)、並びにレンダリングされた画像内に表現されるコンテンツを記述する他の情報、を含む。いくつかの実装形態では、レンダリングされた画像を表示する前に最終補正が実行される。例えば、レンダリングされた画像はユーザのエクスペリエンスを改善するためにポーズデータに基づいて補正される。
【0073】
いくつかの実装形態では、図7Bに示されるように、最終補正及び他のより計算負荷の低いタスク(例えば、センサデータの前処理)が、CGRデバイスにおいて実行される。図7Bのシステム750は、いくつかの実施形態によるCGRパイプライン700を実装し、コントローラ102及び/又はCGRデバイス104によって実行される機能を割り振っている。したがって、より計算負荷の高いタスク、例えば、機械学習、コンピュータビジョン、及び/又は3Dレンダリングなどのタスクがコントローラ102の1つ以上のプロセッサ756を使用して、コントローラ102において実行される。次いで、コントローラ102は、表示前の最終補正のため、計算された画像をCGRデバイス104に移送する。いくつかの実装形態では、移送プロセスは、コントローラ102とCGRデバイス104との間の圧縮/展開及び通信を含む。
【0074】
いくつかの実装形態では、1つ以上のプロセッサ756は、調整ユニット546及びデータアクセスユニット550を含み、データアクセスユニット550は、データ構成552-1及びシステム750全体にわたって割り振られたプロセスのアクセススケジュール554-1を更に含む。例えば、コントローラ102は、CGRデバイス104からプロセスの特性及びハードウェアのパラメータを収集する。ニューラルネットワークなどの機械学習を使用して、移送プロセス、センサデータの前処理、及び/又は最終補正などを含むプラットフォーム全体にわたるプロセスの特性を抽出し重み付けすることができ、それによって、データにアクセスするプロセスのシーケンシングを予測することができる。コントローラ102はまた、いくつかの実装形態では、アクセススケジュール554-1に少なくとも部分的に基づいて予測されるデータアクセスに適応するようにデータ構成552-1を決定することができる。図7Bは、1つのコントローラ102及び1つのCGRデバイス104を備えるシステム750を示しているが、いくつかの実施形態では、複数のCGRデバイスをコントローラ102に接続することができる。そのような実施形態では、コントローラ102上での機械学習を使用して、複数のCGRデバイス(例えば、マルチプレーヤCGR環境)にわたるプロセスを含むクロスプラットフォームプロセスのアクセススケジュールを予測することができる。いくつかの実装形態では、コントローラ102は、各CGRデバイスがコントローラ102からデータ構成552-1及び/又はアクセススケジュール554-1のコピー又はサブセットを取得するように、システム全体のデータ構成552-1及びアクセススケジュール554-1を割り振る。データ構成552-2のローカルコピー及びアクセススケジュール554-2のローカルコピーに従って、画像取得インタフェース614によって取得されたデータが構成され、CGRデバイス104に関連付けられたプロセスは、構成されたデータにスケジュールに従ってアクセスする。そのため、各プロセス又は各デバイスがデータアクセスに対して最適化されている可能性がある他のシステムとは異なり、本明細書に記載される実施形態によるシステム750は、遅延が全体として低減されるように、システムレベルでのデータアクセスのプラットフォーム非依存型スケジューリングを提供する。
【0075】
図8は、いくつかの実装形態による、プロセスのアクセススケジュールを決定する方法800のフローチャートである。様々な実装形態では、方法800は、1つ以上のプロセッサ、非一時的メモリ、及び画像取得インタフェース(例えば、図6の画像取得インタフェース614)を備えたデバイスによって実行される。いくつかの実装形態では、方法800は、処理ロジックによって実行され、処理ロジックは、ハードウェア、ファームウェア、ソフトウェア、又はそれらの組み合わせを含む。いくつかの実装形態では、方法800は、非一時的コンピュータ可読媒体(例えば、メモリ)内に記憶された命令(例えば、コード)を実行するプロセッサ及び/又はコントローラ(例えば、図1のコントローラ102)によって実行される。簡潔に言えば、いくつかの状況では、方法800は、画像データを取得し、ポーズデータを決定し、かつ、視線推定を決定するために、画像取得インタフェースを利用することと、画像取得インタフェースと通信可能な複数のプロセスの複数の特性に少なくとも部分的に基づいて、画像データ、ポーズデータ、及び視線推定の構成を決定することと、画像データ、ポーズデータ、視線推定の構成、複数のプロセスの複数の特性、及びデバイスに関連付けられたハードウェアタイミングパラメータ、のうちの少なくとも1つに少なくとも部分的に基づいて、複数のプロセスのためのアクセススケジュールを決定することと、を含む。
【0076】
方法800は、ブロック810において、画像取得インタフェースによって取得された視野に関連付けられた画像データをデバイスが取得することで開始する。いくつかの実施形態では、画像取得インタフェースは、視野に関連付けられた画像データを取得するための画像センサ(例えば、図7Aの画像センサ710)を含む。
【0077】
方法800は、ブロック820において、デバイスが慣性測定ユニット(IMU)情報に少なくとも部分的に基づいてポーズデータを決定することで継続し、そこで、ポーズデータは、画像取得インタフェースによって測定されたユーザの現在の姿勢に対応する。いくつかの実施形態では、画像取得インタフェースは、ユーザの現在の姿勢を測定するためのIMU(例えば、図7AのIMU712)を含む。
【0078】
方法800は、ブロック830において、デバイスが画像取得インタフェースを介して取得されたアイトラッキング情報に少なくとも部分的に基づいて視線推定を決定することで継続する。いくつかの実施形態では、画像取得インタフェースは、アイトラッキング情報を取得するためのアイトラッキング装置(例えば、図7Aのアイトラッキング装置714)を含む。
【0079】
方法800は、ブロック840において、デバイスが、画像取得インタフェースと通信可能な複数のプロセスの複数の特性に少なくとも部分的に基づいて、画像データ、ポーズデータ、及び視線推定のための構成を決定することで継続する。例えば、図4に示すように、バッファ425内のデータ427の構成は、決定論的モデル300を使用してコントローラ102によって決定される。図3に示す決定論的モデル300は、バッファ425内のデータ427の構成を決定するためのパラメータの一部として、プロセスの特性(例えば、実行シーケンス及び/又はプロセス実行持続時間)を取得する。
【0080】
いくつかの実施形態では、ブロック842によって表されるように、構成の決定は、異なるプロセスのデータを集約することと、複数のプロセスの複数の特性に少なくとも部分的に基づいて集約されたデータを構成することと、を含む。例えば、2つのプロセスの構成の決定は、(1)複数のプロセスのうちの第1のプロセスであって、第1の特性のセットによって特徴付けられる第1のプロセスに対する、第1の画像データ、第1のポーズデータ、及び第1の視線推定のうちの少なくとも1つを取得することと、(2)複数のプロセスのうちの第2のプロセスであって、第2の特性のセットによって特徴付けられる第2のプロセスに対する、第2の画像データ、第2のポーズデータ、及び第2の視線推定のうちの少なくとも1つを取得することと、(3)第1の画像データ、第1のポーズデータ、及び第1の視線推定を、第2の画像データ、第2のポーズデータ、及び第2の視線推定と集約して、画像データ、ポーズデータ、及び視線推定であって、第1の特性のセット及び第2の特性のセットに少なくとも部分的に基づいて構成される画像データ、ポーズデータ、及び視線推定を生成すること、からなるステップを含む。
【0081】
例えば、図4に示すように、バッファ425内のデータ427の構成は、プロセス410の特性に少なくとも部分的に基づいて決定される。プロセス2 410-2からの出力がプロセス3 410-3によって入力として使用される場合、プロセス2 410-2用のデータ427-2は、データ427-4がプロセス3410-3によってフェッチされる準備ができる前に、プロセス2 410-2によってフェッチされる準備ができるようにバッファに構成される。別の例では、図5Bに示すように、ROI画像データ590は、非ROI画像データ592よりも多くのプロセスによって使用される。したがって、データ構成552に従い、ROI画像データ590は、より頻繁にアクセスされる領域及び/又はより緊急な必要性のある領域に記憶される。
【0082】
更に図8を参照すると、方法800は、ブロック850において、デバイスが、画像データ、ポーズデータ、及び視線推定の構成、複数のプロセスの複数の特性、並びにデバイスに関連付けられたハードウェアタイミングパラメータのうちの少なくとも1つに少なくとも部分的に基づいて、複数のプロセスのためのアクセススケジュールを決定することで継続する。いくつかの実施形態では、ブロック852によって表されるように、方法800は、決定論的モデルに基づいてアクセススケジュールを決定することを含む。そのような実施形態では、方法800は、複数のプロセスのうちの第1のプロセスに対して、ハードウェア又は第2のプロセスのうちの少なくとも1つが入力を提供する第1のプロセスの入力、1つ、及びハードウェア又は第2のプロセスのうちの少なくとも1つから入力を取得することに対する時間パラメータを決定することと、時間パラメータに少なくとも部分的に基づいて、第1のプロセスのためのウェイクタイムを計算することと、を更に含む。例えば、図3に示すように、プロセスMに対して、プロセスMの実行のためのウェイクタイムは、カメラの露光時間、例えば、既知のΔ1に少なくとも部分的に基づいて決定される。プロセスNの場合、プロセスMの実行のためのウェイクタイムは、カメラの露光時間及びプロセスMの実行持続期間、例えば、既知のΔ1及び既知のΔ2に少なくとも部分的に基づいて決定される。
【0083】
いくつかの実施形態では、ブロック854によって表されるように、方法800は、計算負荷の高いタスクをベースデバイスに割り振ることと、ユーザエクスペリエンスを最適化する(例えば、乗り物酔いを低減する)ためにデバイスにおいて最終補正を実行することと、を含む。例えば、図7Aに示すようなCGRパイプライン700では、図7Bに示すように、レンダリングを含む計算負荷の高いタスク(レンダリングモジュール730で実行されたような)をコントローラ102によって実行することができ、一方、図7Bに示すように、センサデータの前処理などの最小限の計算をCGRデバイス104によって実行することができる。更に、図7Aに示すように、シーンを表示する前に、CGRデバイス104からのデータ(例えば、ポーズデータ)を最終補正のために使用することができる。いくつかの実施形態では、レンダリングのためにベースによって送信されるフレームは、タイムスタンプされる。CGRデバイスは、フレームがベースにおいて計算された時間を知ることにより、フレームをベースから受信すると、ポーズデータの軌跡に基づいて、レンダリング時の(例えば、画像取得インタフェースによって測定されたユーザの現在の姿勢に対応する)レンダリングポーズを予測する。次いで、CGRデバイスは、レンダリング時間におけるレンダリングポーズを使用してフレームを調整することによって、最終補正を実行する。
【0084】
いくつかの実施形態では、ブロック856によって表されるように、方法800は、第2のデバイスによってアクセススケジュール及び/又は構成を決定することを含む。具体的には、割り振り後のアクセススケジュールの決定は、画像データ、ポーズデータ、及び視線推定の構成、複数のプロセスの複数の特性、並びにデバイスからのハードウェアタイミングパラメータのうちの少なくとも1つを取得するベースデバイスによってデータの収集をトリガし、データは、ベースデバイスによって他のデバイスからもまた収集されることと、データに基づいて第2のデバイスによって決定されるアクセススケジュールを第2のデバイスから受信することと、からなるステップを含む。例えば、図7Bに示すように、コントローラ102は、CGRデバイス104から、プロセス特性、データ構成情報、及びハードウェアパラメータなどを取得する。いくつかの実施形態では、コントローラ102はまた、他のCGRデバイスからそのような情報を受信する。収集した情報を利用して、コントローラ102は、システム全体のアクセススケジュール554-1及び/又はデータ構成552-1を提供する。
【0085】
いくつかの実施形態では、方法800は、ブロック860において、デバイスが、表示のためのシーン(例えば、現実世界のシーンの表現であるCGRシーン、又は完全に仮想シーンであるCGRシーン)を生成するために、アクセススケジュールに従って構成にアクセスし、構成から得られたデータであって、画像データ、ポーズデータ、視線推定のうちの少なくとも1つのサブセットであるデータを使用し、かつアクセススケジュールに従ってシーンを表示することで継続する。例えば、図7Aでは、CGRデバイスのディスプレイ612に提供されたシーンは、バッファ720からのデータを使用して生成される。図4に示すように、シーンを生成するためのプロセス410は、アクセススケジュールに従ってバッファ425からデータストリームをプルし、そこで、バッファ425内のデータ427は、構成に従って配置されている。別の例では、図5Bに示すように、シーン認識プロセス560、ROI認識プロセス562、及びオブジェクト認識プロセス564は、アクセススケジュール554に従ってデータにアクセスし、ROI画像データ590及び非ROI画像データ592は、データ構成552に従って記憶されている。
【0086】
いくつかの実施形態では、ブロック862によって表されるように、アクセススケジュールに従って構成にアクセスすることは、複数のプロセスのうちのプロセスの予想実行時間をアクセススケジュールに基づいて決定することと、構成に従ってプロセスによって使用されるデータをフェッチすると、予想実行時間にデータアクセスするためのプロセスをウェイクアップすることと、を含む。例えば、図3に示すように、アクセススケジュールに基づいて、時間T4におけるプロセスMの期待実行時間は、スケジュールされたアクセスに従って決定される。時間T4において、カメラからの画像データは、システムにより決定されたデータ構成に従ってデータが配置されるバッファから、プロセスMによってフェッチされる。
【0087】
添付の特許請求の範囲内の実装形態の様々な態様を上述したが、上述の実装形態の様々な特徴は、多種多様な形態で具現化されてもよく、上記の特定の構造及び/又は機能は単なる例示に過ぎないことは明らかである。本開示に基づいて、当業者は、本明細書に記載される態様は、任意の他の態様とは独立して実施されてもよく、これらの態様のうちの2つ以上が様々な方法で組み合わされてもよいことを理解すべきである。例えば、本明細書に記載される任意の数の態様を使用して、装置が実装されてもよく、かつ/又は方法が実行されてもよい。加えて、本明細書に記載される態様のうちの1つ以上に加えて、又はその他の構造及び/又は機能を使用して、このような装置が実装されてもよく、かつ/又はこのような方法が実行されてもよい。
【0088】
本明細書では、様々な要素を説明するために「第1の」、「第2の」などの用語が使用される場合があるが、これらの要素は、これらの用語によって限定されるべきではないことも理解されるであろう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、「第1ノード」の全ての出現について一貫して名前が変更され、「第2ノード」の全ての出現について一貫して名前が変更される限り、説明の意味を変えることなく、第1ノードは第2ノードと呼ぶことができ、同様に、第2ノードは第1ノードと呼ぶことができる。第1のノードと第2のノードは両方ともノードであるが、それらは同じノードではない。
【0089】
本明細書で使用される用語は、特定の実装形態を説明する目的のためであり、特許請求の範囲を限定することを意図するものではない。説明される実装形態の説明及び添付の特許請求の範囲で使用されるとき、単数形の「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形も含むことを意図している。また、本明細書で使用されるとき、用語「及び/又は」は、関連する列挙された項目のうちの1つ以上の任意の組み合わせ及び全ての考えられる組み合わせを指し、かつこれを含むことを理解されたい。用語「comprises(含む)」及び/又は「comprising(含む)」が、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を除外しないことを更に理解されたい。
【0090】
本明細書で使用されるときには、用語「if」は、文脈に応じて、「時」又は「際に」又は、先に述べた条件が正しいとの「判定に応じて」又は「判定に従って」、「検出に応じて」を意味するものと解釈できる。同様に、「[先に述べた条件が正しい]と判定される場合」又は「[先に述べた条件が正しい]場合」、又は「[先に述べた条件が正しい]時」というフレーズは、先に述べた条件が正しいとの「判定に際して」又は「判定に応じて」又は「判定に従って」又は「検出した際に」又は「検出に応じて」ということを意味するものと解釈できる。
図1
図2
図3
図4
図5A
図5B
図6
図7A
図7B
図8