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

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

▶ オキュラス ブイアール,エルエルシーの特許一覧

特表2022-516220視標追跡を伴うヘッドマウントディスプレイにおけるユーザインタラクション
<>
  • 特表-視標追跡を伴うヘッドマウントディスプレイにおけるユーザインタラクション 図1
  • 特表-視標追跡を伴うヘッドマウントディスプレイにおけるユーザインタラクション 図2
  • 特表-視標追跡を伴うヘッドマウントディスプレイにおけるユーザインタラクション 図3
  • 特表-視標追跡を伴うヘッドマウントディスプレイにおけるユーザインタラクション 図4
  • 特表-視標追跡を伴うヘッドマウントディスプレイにおけるユーザインタラクション 図5
  • 特表-視標追跡を伴うヘッドマウントディスプレイにおけるユーザインタラクション 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-02-25
(54)【発明の名称】視標追跡を伴うヘッドマウントディスプレイにおけるユーザインタラクション
(51)【国際特許分類】
   G06F 3/01 20060101AFI20220217BHJP
   G02B 27/02 20060101ALI20220217BHJP
   G09G 5/00 20060101ALI20220217BHJP
   H04N 5/64 20060101ALI20220217BHJP
   G06T 19/00 20110101ALI20220217BHJP
   A63F 13/25 20140101ALI20220217BHJP
【FI】
G06F3/01 510
G02B27/02 Z
G09G5/00 510H
G09G5/00 550C
H04N5/64 511A
G06T19/00 A
G06F3/01 570
A63F13/25
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021528967
(86)(22)【出願日】2019-12-23
(85)【翻訳文提出日】2021-07-20
(86)【国際出願番号】 US2019068264
(87)【国際公開番号】W WO2020139810
(87)【国際公開日】2020-07-02
(31)【優先権主張番号】16/400,948
(32)【優先日】2019-05-01
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/785,622
(32)【優先日】2018-12-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】515046968
【氏名又は名称】フェイスブック・テクノロジーズ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】FACEBOOK TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】特許業務法人World IP
(72)【発明者】
【氏名】シュトゥク, セバスチャン
(72)【発明者】
【氏名】サン アグスティン ロペス, ハビエル
(72)【発明者】
【氏名】トール, マーティン ヘンリック
【テーマコード(参考)】
2H199
5B050
5C182
5E555
【Fターム(参考)】
2H199CA04
2H199CA23
2H199CA25
2H199CA30
2H199CA42
2H199CA45
2H199CA67
2H199CA69
2H199CA77
2H199CA91
2H199CA92
2H199CA96
5B050AA10
5B050BA06
5B050BA09
5B050BA11
5B050BA12
5B050BA13
5B050CA07
5B050EA07
5B050EA19
5B050EA26
5B050FA02
5C182AA02
5C182AA03
5C182AB14
5C182AB33
5C182BA03
5C182BA14
5C182BA46
5C182BA56
5C182BA64
5C182BA68
5C182CB12
5C182CB44
5C182DA66
5E555AA04
5E555AA41
5E555BA02
5E555BA04
5E555BA20
5E555BA38
5E555BB02
5E555BB04
5E555BB20
5E555BB38
5E555BC17
5E555BE17
5E555CA42
5E555CA44
5E555CB65
5E555CB66
5E555EA14
5E555FA00
(57)【要約】
仮想現実(VR)システムが、コンソールと、撮像デバイスと、ヘッドマウントディスプレイ(HMD)と、ユーザ入力デバイスとを含む。コンソールは、仮想現実(VR)エンジンと、追跡モジュールと、アプリケーションストアとを含む。HMDは、HMDを着用しているユーザにコンテンツを表示するように構成されたディスプレイ要素を含む。仮想現実エンジンは、ユーザからの物理的入力に応答して、ターゲットに投擲された仮想オブジェクトのためのベクトルを決定し、ユーザの眼のための視線ベクトルを決定し、ターゲットのための仮想オブジェクト位置ベクトルを決定することと、視線ベクトルと仮想オブジェクト位置ベクトルとのうちの少なくとも1つに基づいて、仮想オブジェクトのためのベクトルを修正することとを行うように構成される。仮想現実エンジンは、ターゲットに投擲されるべき仮想オブジェクトのための仮想オブジェクト位置ベクトルを決定し、ユーザの眼のための視線ベクトルを決定し、ユーザの手の仮想レンダリングのための仮想オブジェクト位置ベクトルを決定することと、視線ベクトルと、ユーザの手の仮想レンダリングの仮想オブジェクト位置ベクトルとのうちの少なくとも1つに基づいて、仮想オブジェクトをピックアップするためのユーザ入力を可能にすることとを行うようにも構成され得る。
【選択図】図3
【特許請求の範囲】
【請求項1】
ヘッドマウントディスプレイ(HMD)であって、視標追跡システムと、前記HMDを着用しているユーザにコンテンツを表示するためのディスプレイモジュールとを含む、ヘッドマウントディスプレイ(HMD)と、
前記ユーザからの物理的入力に応答して、ターゲットに投擲された仮想オブジェクトのための変位ベクトルを決定することと、
前記視標追跡システムを使用して、前記ユーザの眼のための視線ベクトルを決定することと、
前記視線ベクトルに基づいて、前記変位ベクトルを修正することと
を行うように構成されたAR/VRエンジンを有するコンソールと
を備える、AR/VRシステム。
【請求項2】
前記AR/VRエンジンが、前記視線ベクトルの方向成分に基づいて、前記変位ベクトルを修正するように構成された、請求項1に記載のAR/VRシステム。
【請求項3】
前記AR/VRエンジンが、前記変位ベクトルと前記視線ベクトルとの間の差分を決定することと、前記差分を少なくするように前記変位ベクトルを修正することとを行うように構成され、任意選択的に、
前記AR/VRエンジンが、前記変位ベクトルと前記視線ベクトルとの間の前記差分の所定の割合により、前記差分を少なくするように前記変位ベクトルを修正するように構成された、
請求項1に記載のAR/VRシステム。
【請求項4】
前記ターゲットが、動いているターゲットを含み、視線ベクトルは、前記ユーザが、前記動いているターゲットの前方を見ているときに決定される、請求項1に記載のAR/VRシステム。
【請求項5】
前記AR/VRエンジンは、ピックアップされるべき前記仮想オブジェクトのための仮想オブジェクト位置ベクトルを決定することと、前記視標追跡システムを使用して、前記ユーザの前記眼のための視線ベクトルを決定することと、
前記視線ベクトルおよび前記ユーザの手の位置が所定の距離内にあること、または
前記視線ベクトルおよび前記仮想オブジェクトの前記位置ベクトルが所定の距離内にあること
に基づいて、前記仮想オブジェクトをピックアップするためのユーザ入力を可能にすることとを行うようにさらに構成された、請求項1に記載のAR/VRシステム。
【請求項6】
ヘッドマウントディスプレイ(HMD)であって、視標追跡システムと、前記HMDを着用しているユーザにコンテンツを表示するためのディスプレイモジュールとを含む、ヘッドマウントディスプレイ(HMD)と、AR/VRエンジンを有するコンソールとを備えるAR/VRシステムにおいて、
前記ユーザからの物理的入力に応答して、ターゲットに投擲された仮想オブジェクトのための変位ベクトルを決定することと、
前記視標追跡システムを使用して、前記ユーザの眼のための視線ベクトルを決定することと、
前記視線ベクトルに基づいて、前記変位ベクトルを修正することと
を含む、方法。
【請求項7】
前記視線ベクトルの方向成分に基づいて、前記変位ベクトルを修正するステップ、請求項6に記載の方法。
【請求項8】
前記変位ベクトルと前記視線ベクトルとの間の差分を決定することと、前記差分を少なくするように前記変位ベクトルを修正することとを行うステップをさらに含み、任意選択的に、
前記変位ベクトルと前記視線ベクトルとの間の前記差分を少なくするように前記変位ベクトルを修正する前記ステップが、前記差分の所定の割合によるものである、
請求項6に記載のAR/VRシステム。
【請求項9】
前記ターゲットが、動いているターゲットを含み、前記視線ベクトルは、前記ユーザが、前記動いているターゲットの前方を見ているときに決定される、請求項6に記載のAR/VRシステム。
【請求項10】
前記AR/VRエンジンが、ピックアップされるべき前記仮想オブジェクトのための位置ベクトルを決定することと、前記視標追跡システムを使用して、前記ユーザの前記眼のための視線ベクトルを決定することと、
前記視線ベクトルおよび前記ユーザの手の位置が所定の距離内にあること、または
前記視線ベクトルおよび前記仮想オブジェクトの前記位置ベクトルが所定の距離内にあること
に基づいて、前記仮想オブジェクトをピックアップするためのユーザ入力を可能にすることとを行うようにさらに構成された、請求項6に記載のAR/VRシステム。
【請求項11】
コンピュータ可読プログラムを含む非一時的コンピュータ使用可能媒体を備えるコンピュータ製品であって、前記コンピュータ可読プログラムが、コンピュータ上で実行されたとき、
ユーザからの物理的入力に応答して、ターゲットに投擲された仮想オブジェクトのための変位ベクトルを決定することと、
視標追跡システムを使用して、前記ユーザの眼のための視線ベクトルを決定することと、
前記視線ベクトルに基づいて、前記変位ベクトルを修正することと
を行うように前記コンピュータを構成する、コンピュータ製品。
【請求項12】
前記変位ベクトルが、前記視線ベクトルの方向成分に基づいて修正される、請求項11に記載のコンピュータ製品。
【請求項13】
前記変位ベクトルを修正することが、さらに、前記変位ベクトルと前記視線ベクトルとの間の差分を決定し、前記差分を少なくするように前記変位ベクトルを修正し、任意選択的に、
前記変位ベクトルと前記視線ベクトルとの間の前記差分を少なくするように前記変位ベクトルを修正することが、前記差分の所定の割合によるものである、
請求項11に記載のコンピュータ製品。
【請求項14】
前記ターゲットが、動いているターゲットを含み、前記視線ベクトルは、前記ユーザが、前記動いているターゲットの前方を見ているときに決定される、請求項11に記載のコンピュータ製品。
【請求項15】
前記コンピュータが、ピックアップされるべき前記仮想オブジェクトのための位置ベクトルを決定することと、前記視標追跡システムを使用して、前記ユーザの前記眼のための視線ベクトルを決定することと、
前記視線ベクトルおよび前記ユーザの手の位置が所定の距離内にあること、または
前記視線ベクトルおよび前記仮想オブジェクトの前記位置ベクトルが所定の距離内にあること
に基づいて、前記仮想オブジェクトをピックアップするためのユーザ入力を可能にすることとを行うようにさらに構成された、請求項11に記載のコンピュータ製品。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、一般にヘッドマウントディスプレイ(HMD)に関し、詳細には、ユーザインタラクションを伴うHMDにおける視標追跡(eye tracking)を使用することに関する。
【背景技術】
【0002】
ヘッドマウントディスプレイ(HMD)は、ユーザに仮想風景を提示するために、あるいは動的情報、データ、または仮想オブジェクトで現実風景を拡張するために使用され得る。仮想現実(VR)風景または拡張現実(AR)風景は、体験を向上させ、ユーザによって観測された現実オブジェクトに仮想オブジェクトを整合させるために、3次元であり得る。シミュレートされたまたは拡張された環境への没入のより良好な体験を提供するために、空間におけるユーザの眼の位置および視線方向、および/または配向がリアルタイムで追跡され得、ユーザの頭部の配向および視線方向に応じて、表示される風景が動的に調整され得る。
【0003】
視標追跡は、専用視標追跡カメラを用いて、両方の眼のリアルタイム画像を取得することによって動作し得る。リアルタイム眼画像は、各眼の位置および配向を決定するために処理され、これは、AR/VRシステムが、視線方向および視線距離、すなわち、視線ベクトルを決定することを可能にする。ユーザの手の位置および配向を追跡するための手追跡も、VRシステムにおいて使用され得る。手追跡は、より低い忠実度と、より大きい位置誤差およびタイムラグとを有する傾向がある。これは、素早い手の動きを必要とするAR/VRタスク、たとえば、仮想オブジェクトを投擲する(throw)ことにとって難しいことが判明することがある。
【発明の概要】
【0004】
本出願は、ユーザの眼の視線方向を使用して、追加のユーザ入力と組み合わせて収束(convergence)点を決定して、システムとのユーザのインタラクションを向上させる。眼の収束は、VRでは仮想空間における深度を決定するために、またはARでは現実の深度を決定するために使用され得る。人が見ているところは、VRシーンにおける、またはARでは現実世界における、x,y,z点を伴う。たとえば、ユーザの視線方向の収束点は、オブジェクトピックアップまたはオブジェクト投擲(throwing)などのアクティビティに関する画像をより正確にレンダリングするために使用され得る。
【0005】
本開示によれば、ヘッドマウントディスプレイ(HMD)であって、視標追跡システムと、HMDを着用しているユーザにコンテンツを表示するためのディスプレイモジュールとを有する、ヘッドマウントディスプレイ(HMD)と、AR/VRエンジンを有するコンソールとを含むAR/VRシステムが提供される。AR/VRエンジンは、ユーザからの物理的入力に応答して、ターゲットに投擲された仮想オブジェクトのための変位ベクトルを決定することと、視標追跡システムを使用して、ユーザの眼のための視線ベクトルを決定することと、視線ベクトルに基づいて、変位ベクトルを修正することとを行うように構成される。
【0006】
AR/VRエンジンは、視線ベクトルの方向成分に基づいて、変位ベクトルを修正するように構成され得る。
【0007】
AR/VRエンジンは、変位ベクトルと視線ベクトルとの間の差分を決定することと、差分を少なくするように変位ベクトルを修正することとを行うように構成される。
【0008】
AR/VRエンジンは、変位ベクトルと視線ベクトルとの間の差分の所定の割合により、差分を少なくするように変位ベクトルを修正するように構成され得る。
【0009】
ターゲットは、動いているターゲットを含み得、視線ベクトルは、ユーザが、動いているターゲットの前方を見ているときに決定され得る。
【0010】
AR/VRエンジンは、ピックアップされるべき仮想オブジェクトのための仮想オブジェクト位置ベクトルを決定することと、視標追跡システムを使用して、ユーザの眼のための視線ベクトルを決定することと、視線ベクトルおよびユーザの手の位置が所定の距離内にあることに基づいて、仮想オブジェクトをピックアップするためのユーザ入力を可能にすることとを行うようにさらに構成され得る。
【0011】
AR/VRエンジンは、ピックアップされるべき仮想オブジェクトの仮想オブジェクト位置ベクトルを決定することと、視標追跡システムを使用して、ユーザの眼のための視線ベクトルを決定することと、視線ベクトルおよび仮想オブジェクトの位置ベクトルが所定の距離内にあることに基づいて、仮想オブジェクトをピックアップするためのユーザ入力を可能にすることとを行うようにさらに構成され得る。
【0012】
本開示によれば、ヘッドマウントディスプレイ(HMD)であって、視標追跡システムと、HMDを着用しているユーザにコンテンツを表示するためのディスプレイモジュールとを有する、ヘッドマウントディスプレイ(HMD)と、AR/VRエンジンを有するコンソールとを含むAR/VRシステムにおいて、ユーザからの物理的入力に応答して、ターゲットに投擲された仮想オブジェクトのための変位ベクトルを決定することと、視標追跡システムを使用して、ユーザの眼のための視線ベクトルを決定することと、視線ベクトルに基づいて、変位ベクトルを修正することとを含む方法が提供される。
【0013】
変位ベクトルを修正することは、視線ベクトルの方向成分に基づき得る。
【0014】
本方法は、変位ベクトルと視線ベクトルとの間の差分を決定することと、差分を少なくするように変位ベクトルを修正することとを行うステップをさらに含み得る。この場合、変位ベクトルと視線ベクトルとの間の差分を少なくするように変位ベクトルを修正することは、差分の所定の割合によるものである。
【0015】
ターゲットは、動いているターゲットを含み得、視線ベクトルは、ユーザが、動いているターゲットの前方を見ているときに決定され得る。
【0016】
AR/VRエンジンは、ピックアップされるべき仮想オブジェクトのための位置ベクトルを決定することと、視標追跡システムを使用して、ユーザの眼のための視線ベクトルを決定することと、視線ベクトルおよびユーザの手の位置が所定の距離内にあることに基づいて、仮想オブジェクトをピックアップするためのユーザ入力を可能にすることとを行うようにさらに構成され得る。
【0017】
AR/VRエンジンは、ピックアップされるべき仮想オブジェクトの位置ベクトルを決定することと、視標追跡システムを使用して、ユーザの眼のための視線ベクトルを決定することと、視線ベクトルおよび仮想オブジェクトの位置ベクトルが所定の距離内にあることに基づいて、仮想オブジェクトをピックアップするためのユーザ入力を可能にすることとを行うようにさらに構成され得る。
【0018】
本開示によれば、コンピュータ可読プログラムを含む非一時的コンピュータ使用可能媒体を備えるコンピュータ製品であって、コンピュータ可読プログラムが、コンピュータ上で実行されたとき、ユーザからの物理的入力に応答して、ターゲットに投擲された仮想オブジェクトのための変位ベクトルを決定することと、視標追跡システムを使用して、ユーザの眼のための視線ベクトルを決定することと、視線ベクトルに基づいて、変位ベクトルを修正することとを行うようにコンピュータを構成する、コンピュータ製品が提供される。
【0019】
変位ベクトルは、視線ベクトルの方向成分に基づいて修正され得る。
【0020】
変位ベクトルを修正することはまた、変位ベクトルと視線ベクトルとの間の差分を決定することと、差分を少なくするように変位ベクトルを修正することとを含み得る。この場合、変位ベクトルと視線ベクトルとの間の差分を少なくすることは、差分の所定の割合によるものであり得る。
【0021】
ターゲットは、動いているターゲットを含み得、視線ベクトルは、ユーザが、動いているターゲットの前方を見ているときに決定され得る。
【0022】
コンピュータは、ピックアップされるべき仮想オブジェクトのための位置ベクトルを決定することと、視標追跡システムを使用して、ユーザの眼のための視線ベクトルを決定することと、視線ベクトルおよびユーザの手の位置が所定の距離内にあることに基づいて、仮想オブジェクトをピックアップするためのユーザ入力を可能にすることとを行うようにさらに構成され得る。
【図面の簡単な説明】
【0023】
図1】本開示の一実施形態による、ヘッドマウントディスプレイ(HMD)の透視図である。
図2】本開示の一実施形態による、AR/VRシステムのブロック図である。
図3】本開示の一実施形態による、ディスプレイシステムによって提示されるシーンを観察する、眼300によって表されるユーザの概略平面図である。
図4】本開示の一実施形態による、第1のタスクのためにユーザ視線とユーザインタラクションとを組み合わせるフローチャートである。
図5】本開示の一実施形態による、第2のタスクのためにユーザ視線とユーザインタラクションとを組み合わせるフローチャートである。
図6】本開示の方法を実装するのに好適なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0024】
図は、単に説明の目的で本開示の実施形態を示す。本明細書で説明される実施形態の原理から逸脱することなく、本明細書で示される構造および方法の代替実施形態が採用され得ることを、当業者は以下の説明から容易に認識されよう。
【0025】
本明細書で使用されるAR/VRという用語は、ARシステムと、VRシステムと、複合現実(MR)システムを含む、それらの任意の組合せとを含む。AR/VRシステムの例が以下でさらに与えられる。
【0026】
システム環境
図1を参照すると、HMD100は、AR/VR環境へのより大きい程度の没入のためのユーザの顔を囲むAR/VRウェアラブルディスプレイシステムの一例である。HMD100の機能は、コンピュータ生成された像で物理的現実世界の環境のビューを拡張すること、および/または、完全に仮想3D像を生成することである。HMD100は、前面本体102と、バンド104とを含み得る。前面本体102は、信頼できるおよび快適な様式でのユーザの眼の前への配置のために構成され、バンド104は、ユーザの頭部上で前面本体102を固定するために伸張され得る。ディスプレイモジュール180は、ユーザにAR/VR像を提示するために、前面本体102中に配設され得る。前面本体102の側面106は、不透明であるか、または透明であり得る。
【0027】
いくつかの実施形態では、前面本体102は、ロケータ108と、HMD100の加速度を追跡するための慣性測定ユニット(IMU)110と、HMD100の位置を追跡するための位置センサー112とを含む。IMU110は、HMD100の運動に応答して1つまたは複数の測定信号を生成する位置センサー112のうちの1つまたは複数から受信された測定信号に基づいて、HMD100の位置を指示するデータを生成する電子デバイスである。位置センサー112の例は、1つまたは複数の加速度計、1つまたは複数のジャイロスコープ、1つまたは複数の磁力計、運動を検出する別の好適なタイプのセンサー、IMU110の誤差補正のために使用されるタイプのセンサー、またはそれらの何らかの組合せを含む。位置センサー112は、IMU110の外部に、IMU110の内部に、またはそれらの何らかの組合せで位置し得る。
【0028】
ロケータ108は、仮想現実システムが、HMD100全体のロケーションおよび配向を追跡することができるように、仮想現実システムの外部撮像デバイスによって追跡される。IMU110および位置センサー112によって生成された情報は、HMD100の位置および配向の追跡正確さ改善のために、ロケータ108を追跡することによって取得された位置および配向と比較され得る。正確な位置および配向は、ユーザが、3D空間において動き、回転するので、適切な仮想風景をユーザに提示するために重要である。
【0029】
HMD100は、HMD100の一部または全部の周囲のローカルエリアの深度情報を記述するデータをキャプチャする、深度カメラアセンブリ(DCA)111をさらに含み得る。そのために、DCA111は、レーザーレーダー(LIDAR)、または同様のデバイスを含み得る。深度情報は、3D空間におけるHMD100の位置および配向の決定のより良好な正確さのために、IMU110からの情報と比較され得る。
【0030】
HMD100は、リアルタイムでユーザの眼の配向および位置を決定するための視標追跡システム114をさらに含み得る。視標追跡システム114は、両方の眼を照らす赤外線照明器のアレイと、赤外光と可視光とを分離するためのホットミラーと、照明器からの反射(グリント)を用いて両方の眼の画像を取得する視標追跡カメラとを含み得る。眼の瞳孔の位置に対するグリントの位置を比較することによって、眼の位置および配向が決定され得る。眼の取得された位置および配向はまた、HMD100が、ユーザの視線方向を決定することと、それに応じてディスプレイモジュール180によって生成された画像を調整することとを可能にする。一実施形態では、輻輳、すなわち、ユーザの眼視線の収束角が決定される。決定された、視線方向および輻輳角はまた、画角および眼の位置に応じて、視覚的アーティファクトのリアルタイム補償のために使用され得る。さらに、決定された、輻輳および視線角は、ユーザとのインタラクション、オブジェクトをハイライトすること、オブジェクトを前景に持ってくること、追加のオブジェクトまたはポインタを作成することなどのために使用され得る。たとえば、前面本体102に組み込まれた小さいスピーカーのセットを含む、オーディオシステムも提供され得る。
【0031】
図2は、図1のHMD100と、様々なAR/VRアプリケーション、セットアップおよび較正手順、3Dビデオなどを記憶する外部コンソール190と、コンソール190を動作させ、および/またはAR/VR環境と対話するための入出力(I/O)インターフェース115とを含む、AR/VRシステム150を示す。HMD100は、物理的ケーブルを用いてコンソール190に「テザリング」されるか、またはBluetooth(登録商標)、Wi-Fiなど、ワイヤレス通信リンクを介してコンソール190に接続され得る。関連するI/Oインターフェース115を各々有する、複数のHMD100があり得、各HMD100および(1つまたは複数の)I/Oインターフェース115はコンソール190と通信する。代替構成では、異なるおよび/または追加の構成要素が、AR/VRシステム150中に含まれ得る。さらに、図1および図2に示されている構成要素のうちの1つまたは複数に関して説明される機能性は、いくつかの実施形態では、図1および図2に関して説明されるものとは異なる様式で構成要素の間で分散され得る。たとえば、コンソール115の機能性の一部または全部がHMD100によって提供され得、その逆も同様である。HMD100は、そのような機能性を達成することが可能な処理モジュールを提供され得る。
【0032】
図1を参照しながら上記で説明されたように、HMD100は、眼の位置および配向を追跡する、視線角および収束角を決定するなどのための視標追跡システム114(図2)と、3D空間におけるHMD100の位置および配向を決定するためのIMU110と、外部環境をキャプチャするためのDCA111と、HMD100の位置を独立して決定するための位置センサー112と、ユーザにAR/VRコンテンツを表示するためのディスプレイモジュール180とを含み得る。ディスプレイモジュール180は、(図2)電子ディスプレイ125を含み、たとえば、および限定はしないが、液晶ディスプレイ(LCD)、有機発光ディスプレイ(OLED)、無機発光ディスプレイ(ILED)、アクティブマトリックス有機発光ダイオード(AMOLED)ディスプレイ、透明有機発光ダイオード(TOLED)ディスプレイ、導波路ディスプレイ、プロジェクタ、またはそれらの組合せを含む。ディスプレイモジュール180は、光学ブロック130をさらに含み、光学ブロック130の機能は、電子ディスプレイ125によって生成された画像をユーザの眼に伝達することである。光学ブロックは、様々なレンズ、たとえば、屈折レンズ、フレネルレンズ、回折レンズ、能動または受動パンチャラトナムベリー位相(PBP:Pancharatnam-Berry phase)レンズ、液体レンズ、液晶レンズなど、瞳孔複製(pupil-replicating)導波路、格子構造、コーティングなどを含み得る。ディスプレイモジュール180は、光学ブロック1130の一部であり得る、可変焦点モジュール135をさらに含み得る。可変焦点モジュール135の機能は、たとえば、輻輳調節矛盾(vergence-accommodation conflict)を補償すること、特定のユーザの視覚障害を補正すること、光学ブロック130の収差をオフセットすることなどのために、光学ブロック130の焦点を調整することである。
【0033】
I/Oインターフェース115は、ユーザがアクション要求を送り、コンソール190から応答を受信することを可能にするデバイスである。アクション要求は、特定のアクションを実施するための要求である。たとえば、アクション要求は、画像データまたはビデオデータのキャプチャを開始または終了するための命令、あるいはアプリケーション内で特定のアクションを実施するための命令であり得る。I/Oインターフェース115は、キーボード、マウス、ゲームコントローラ、またはアクション要求を受信し、そのアクション要求をコンソール190に通信するための任意の他の好適なデバイスなど、1つまたは複数の入力デバイスを含み得る。I/Oインターフェース115によって受信されたアクション要求は、コンソール190に通信され、コンソール190は、そのアクション要求に対応するアクションを実施する。いくつかの実施形態では、I/Oインターフェース115は、I/Oインターフェース115の初期位置に対するI/Oインターフェース115の推定位置を指示する較正データをキャプチャするIMUを含む。いくつかの実施形態では、I/Oインターフェース115は、コンソール190から受信された命令に従って、ユーザに触覚フィードバックを提供し得る。たとえば、アクション要求が受信されたときに触覚フィードバックが提供され得るか、またはコンソール190がアクションを実施するときに、コンソール190が、I/Oインターフェース115に命令を通信して、I/Oインターフェース115が触覚フィードバックを生成することを引き起こす。
【0034】
コンソール190は、IMU110とDCA111と視標追跡システム114とI/Oインターフェース115とのうちの1つまたは複数から受信された情報に従って、処理するためのコンテンツをHMD100に提供し得る。図2に示されている例では、コンソール190は、アプリケーションストア155と、追跡モジュール160と、VRエンジン165とを含む。コンソール190のいくつかの実施形態は、図2に関して説明されるものとは異なるモジュールまたは構成要素を有し得る。同様に、以下でさらに説明される機能は、図1および図2に関して説明されるものとは異なる様式でコンソール190の構成要素の間で分散され得る。
【0035】
アプリケーションストア155は、コンソール190が実行するための1つまたは複数のアプリケーションを記憶し得る。アプリケーションは、プロセッサによって実行されたとき、ユーザへの提示のためのコンテンツを生成する命令のグループである。アプリケーションによって生成されたコンテンツは、HMD100またはI/Oインターフェース115の動きを介してユーザから受信された入力に応答したものであり得る。アプリケーションの例は、ゲームアプリケーション、プレゼンテーションおよび会議アプリケーション、ビデオ再生アプリケーション、または他の好適なアプリケーションを含む。
【0036】
追跡モジュール160は、1つまたは複数の較正パラメータを使用してAR/VRシステム150を較正し得、HMD100またはI/Oインターフェース115の位置を決定する際の誤差を低減するように、1つまたは複数の較正パラメータを調整し得る。また、追跡モジュール160によって実施される較正は、HMD100中のIMU110および/または、もしあれば、I/Oインターフェース115中に含まれるIMUから受信された情報を考慮する。さらに、HMD100の追跡が失われた場合、追跡モジュール160は、AR/VRシステム150の一部または全部を再較正し得る。
【0037】
追跡モジュール160は、HMD100またはI/Oインターフェース115の動き、IMU110、またはそれらの何らかの組合せを追跡し得る。たとえば、追跡モジュール160は、HMD100からの情報に基づいて、ローカルエリアのマッピングにおいてHMD100の基準点の位置を決定し得る。追跡モジュール160はまた、HMD100の基準点の位置、またはI/Oインターフェース115の基準点の位置を、それぞれ、HMD100の位置を指示するIMU110からのデータを使用して、またはI/Oインターフェース115の位置を指示するI/Oインターフェース115中に含まれるIMUからのデータを使用して決定し得る。さらに、いくつかの実施形態では、追跡モジュール160は、位置またはHMD100を指示するIMU110からのデータの部分、ならびにDCA111からのローカルエリアの表現を使用して、HMD100の将来のロケーションを予測し得る。追跡モジュール160は、HMD100またはI/Oインターフェース115の推定または予測された将来の位置をVRエンジン165に提供する。
【0038】
VRエンジン165は、HMD100から受信された情報に基づいて、HMD100の一部または全部の周囲のエリア(「ローカルエリア」)の3Dマッピングを生成し得る。いくつかの実施形態では、VRエンジン165は、深度を算出する際に使用される技法に関連する、DCA111から受信された情報に基づいて、ローカルエリアの3Dマッピングのための深度情報を決定する。様々な実施形態では、VRエンジン165は、深度情報を使用して、ローカルエリアのモデルを更新し、更新されたモデルに部分的に基づいて、コンテンツを生成し得る。
【0039】
VRエンジン165は、AR/VRシステム150内でアプリケーションを実行し、追跡モジュール160から、HMD100の位置情報、加速度情報、速度情報、予測された将来の位置、またはそれらの何らかの組合せを受信する。受信された情報に基づいて、VRエンジン165は、ユーザへの提示のためにHMD100に提供すべきコンテンツを決定する。たとえば、受信された情報が、ユーザが左を見ていることを指示する場合、VRエンジン165は、仮想環境において、またはローカルエリアを追加のコンテンツで拡張する環境において、ユーザの動きを反映する、HMD100のためのコンテンツを生成する。さらに、VRエンジン165は、I/Oインターフェース115から受信されたアクション要求に応答して、コンソール190上で実行しているアプリケーション内でアクションを実施し、そのアクションが実施されたというフィードバックをユーザに提供する。提供されるフィードバックは、HMD100を介した視覚または可聴フィードバック、あるいはI/Oインターフェース115を介した触覚フィードバックであり得る。
【0040】
いくつかの実施形態では、視標追跡システム114から受信された視標追跡情報(たとえば、ユーザの眼の配向)に基づいて、VRエンジン165は、電子ディスプレイ125上でのユーザへの提示のために、HMD100に提供されたコンテンツの解像度を決定する。VRエンジン165は、ユーザの視線の中心窩領域において、電子ディスプレイ125上の最大ピクセル解像度を有するコンテンツをHMD100に提供し得る。VRエンジン165は、電子ディスプレイ125の他の領域において、より低いピクセル解像度を提供し、したがって、AR/VRシステム150の電力消費を少なくし、ユーザの視覚体験を損なうことなしにコンソール190のコンピューティングリソースを節約し得る。いくつかの実施形態では、VRエンジン165はさらに、視標追跡情報を使用して、オブジェクトが電子ディスプレイ125上で表示されるところを調整して、輻輳調節矛盾を防ぎ、ならびに/または光学的ひずみおよび収差をオフセットすることができる。
【0041】
視標追跡支援ユーザ-オブジェクトインタラクション
視標追跡システム114は、ユーザの眼が見ている点を決定するためにも使用され得る。図3は、ディスプレイモジュール180によって提示されるシーンを観察する、眼300によって表されるユーザを示す。各眼300から3次元空間(x,y,z)における点への視界線310および320が、視標追跡システム114によって決定され、視線ベクトル350が定義される。図3は、説明の目的で、簡略化された2次元表現を提示する。平面330は、ディスプレイモジュール180から仮想ターゲットに延びる仮想ターゲット位置ベクトル340を有する仮想ターゲットが現れるロケーションを表す。仮想ターゲット位置ベクトル340は、距離成分、すなわち、ベクトルの長さと、方向成分とを有する。本出願は、視界線310と視界線320との交点によって定義される視線ベクトル350を使用する。視線ベクトル350は、ユーザのHMD180から、概して、仮想ターゲットの平面330のほうへ延びる変位ベクトルである。視線ベクトル350は、距離成分、すなわち、視線ベクトルの長さと、方向成分、すなわち、眼300による視線の全体的方向とを含む。VRエンジン165は、ユーザによって仮想ターゲットに投擲される仮想オブジェクトのための変位ベクトル360を決定するために、I/Oインターフェース115からの物理的入力、たとえば、コントローラからの入力またはコントローラの動きを使用し得る。たとえば、ハンドヘルドコントローラのユーザの手の動きが、速度ベクトルと、仮想オブジェクトのための得られた変位ベクトルとを決定するために使用され得る。図3に示されているように、変位ベクトル360は、提示された仮想ターゲットの平面330に達しないことがある。変位ベクトル360の端部と視線ベクトル350の端部との間の差分ベクトル365が、AR/VRエンジンによって決定され、次いで、変位ベクトル360を修正して投擲(throw)の正確さを改善するために使用され得る。図3は、プロセスの一例を示し、プロセスブロック375が、投擲されている仮想オブジェクトのための変位ベクトル360を決定する。プロセスブロック380が、視線ベクトル350を決定する。プロセスブロック385が、差分ベクトル365を決定する。また、プロセスブロック390が、差分ベクトル365に基づいて、変位ベクトル360を修正する。視線ベクトル350のさらなる使用が、図4および図5を参照しながら本明細書の以下で説明される。
【0042】
図4は、本開示の一実施形態による、第1のタスクのために、たとえば、投擲するために仮想オブジェクトをピックアップするために、ユーザ視線とユーザインタラクションとを組み合わせるためのフローチャートである。フローチャートは、ユーザの視線の視線ベクトルを使用して、所望の成果をより効果的に実装するためのプロシージャ400を示す。プロセスブロック410において、仮想オブジェクトのロケーションベクトルとしても知られる、ピックアップされるべき仮想オブジェクトへの仮想オブジェクト位置ベクトルが決定される。次いで、プロセスブロック420が、ユーザの視線ベクトル、すなわち、提示されたシーン内でユーザがどこを見ているかを決定する。判定ブロック430が、ピックアップされるべき仮想オブジェクトの仮想オブジェクト位置ベクトルと、ユーザのための視線ベクトルとの間の差分の絶対値が所定の距離よりも小さいかどうかを照会する。すなわち、ピックアップされるべきオブジェクトのための仮想オブジェクト位置ベクトルと、ユーザのための深度における手の位置とが所定の距離内で終端するか。たとえば、ユーザは、投擲されるべきボールを見て、手コントローラを動かして、そのボールをピックアップし得る。オブジェクト視線収束ベクトルが、手の動きセンサーによって提供されるよりも正確に手の位置を予測し得る。別の実施形態では、たとえば、視線ベクトルがオブジェクトロケーションからどのくらい遠くに進むか、所定の量内の場合、手の位置の深度ではなく制御入力が使用され得る。はいの場合、プロセスブロック440が、オブジェクトのピックアップを実現するためのユーザ制御入力を可能にし、プロセスブロック450が、仮想オブジェクトがピックアップされたというフィードバックをユーザに提供する。判定ブロック430について、いいえの場合、プロセスブロック460が、ユーザの手の位置を決定する。次いで、判定ブロック470が、手が仮想オブジェクト位置にあるかどうかを決定する。はいの場合、プロセスブロック440によって表されるように、ユーザ入力が可能にされる。いいえの場合、ユーザは、自分の手の位置を調整し、プロシージャは、プロセスブロック420によって表されるステップに戻る。
【0043】
このようにして、オブジェクト視線ベクトルが知られると、オブジェクト視線ベクトルは、ユーザのより正確なアクションを実現するために使用され得る。したがって、受信された情報が、ユーザがオブジェクトを見ていることを指示する場合、VRエンジン165は、仮想オブジェクトのロケーションベクトルによって指示されるように、レンダリングされた手の画像が、ピックアップされるべき仮想オブジェクトの位置に一致する位置に動くことを反映するために、システム環境においてユーザの手の動きをミラーリングする、HMD100のためのコンテンツを生成する。そのような一致が起こるとき、VRエンジン165は、I/Oインターフェース115から受信されたアクション要求に応答して、コンソール190上で実行しているアプリケーション内でアクションを実施し、そのアクションが実施されたというフィードバックをユーザに提供する。たとえば、提供されるフィードバックは、HMD100を介した視覚または可聴フィードバック、あるいはI/Oインターフェース115を介した触覚フィードバックを含む。ユーザの視線が、ピックアップされるべきオブジェクトに向けられない場合、たとえば、ターゲットに投擲するためのオブジェクトを把持することを試みながら、ターゲットを見ている場合、仮想手およびオブジェクトのための位置または仮想オブジェクト位置ベクトルは、一致を決定するために使用され、それにより、より正確にオブジェクトピックアップを保証し得る。
【0044】
図5は、本開示の一実施形態による、第2のタスクのためにユーザ視線収束とユーザインタラクションとを組み合わせるためのプロセス500のフローチャートである。たとえば、固定されたターゲットにオブジェクトを投擲することなどのスキルゲーム(game of skill)は、投擲されているオブジェクトの質量からの物理的フィードバックの欠如のために、および、投擲する動きなどの素早い手の動きを実施するときの手のロケーションおよび速さのリアルタイム決定に関連する技術的困難のために、VRおよびAR環境において表すのが難しいことが判明している。投擲されたオブジェクトの得られた変位についてのさらなる正確さを提供するために、本開示は、ユーザの物理的入力のみから決定される変位ベクトルを修正するためのストラテジーを提供する。プロセス500は、投擲正確さを改善するために様々な環境依存ストラテジーを使用する。
【0045】
プロセス500は、最初に、プロセスブロック505によって表されるように、ユーザの物理的入力、たとえば、手コントローラの動きに基づいて、投擲された仮想オブジェクトの変位ベクトル360を決定する。判定ブロック510が、対象とするターゲットが、固定されたターゲットであるかどうかを照会する。はいの場合、判定ブロック515が、ターゲットへの仮想オブジェクト位置ベクトル340が決定され得るかどうかを照会する。はいの場合、プロセスブロック520が、ターゲットへの仮想オブジェクト位置ベクトル340を決定する。プロセスブロック525が、ユーザのための視線ベクトル350を決定し、プロセスブロック528が、仮想オブジェクト位置ベクトル340または視線ベクトル350のいずれかを使用して、プロセスブロック505からの投擲された仮想オブジェクトの変位ベクトル360を修正する。変位ベクトルがどのように修正され得るかの例は、仮想オブジェクト位置ベクトル340または視線ベクトル350のいずれかの大きさ成分を使用することを含む。代替的に、変位ベクトルが修正され得ることは、仮想オブジェクト位置ベクトル340または視線ベクトル350のいずれかの方向成分を使用することを含む。別の実施形態は、仮想オブジェクト位置ベクトル340または視線ベクトル350のいずれかの大きさ成分と方向成分の両方を使用し得る。たとえば、方向成分と、大きさのための重み付け係数とを使用すること。変位ベクトルの修正は、あらかじめ選択されたスキルレベルに依存し、修正の程度は、スキルレベルを減少させることに比例して増加し得る。修正程度はまた、学習された属性であり得る。たとえば、システムは、ターゲットに当てるための失敗した試みの数から、さらなる体験が獲得されるまでユーザが助けを必要とすることを学習し得る。次いで、ユーザがより大きい成功を体験するにつれて、修正の程度は減少され得る。このようにして、スキルが取得されるので、仮想アクティビティのユーザの楽しみが維持され得る。別の例では、ユーザが見ているオブジェクトに、大きさおよび速度がマッピングされ得、フットボールのゲームを行う際など、正確な投擲のために、オブジェクトへの投擲が速やかに行われ得る。
【0046】
判定ブロック515に対していいえの場合、プロセスブロック530が、ユーザのための眼収束ベクトルを決定し、プロセスブロック535が、眼収束ベクトルを使用して、投擲された仮想オブジェクトの変位ベクトルを修正する。変位ベクトルがどのように修正され得るかの例は、視線ベクトルの大きさ成分を使用することを含む。代替的に、変位ベクトルが修正され得ることは、視線ベクトルの方向成分を使用することを含む。別の実施形態は、たとえば、方向成分と、大きさのための重み付け係数とを使用することによって、視線ベクトルの大きさ成分と方向成分の両方を使用し得る。変位ベクトルの修正は、あらかじめ選択されたスキルレベルに依存し、修正の程度は、スキルレベルを減少させることに比例して増加し得る。修正程度はまた、学習された属性であり得る。たとえば、システムは、ターゲットに当てるための失敗した試みの数から、さらなる体験が獲得されるまでユーザが助けを必要とすることを学習し得る。次いで、ユーザが大きい成功を体験するにつれて、修正の程度は減少され得る。このようにして、スキルが取得されるので、仮想アクティビティのユーザの楽しみが維持され得る。
【0047】
プロセス500、ステップ505~535は、様々なスキルゲーム、たとえば、ビーンバッグトス(bean bag toss)、ダーツ、および斧投擲(axe throwing)に適用され得る。固定されたターゲットの例では、プロセスブロック520が、ターゲットが不明瞭にされないことを暗示する。一般に、ユーザの視線はターゲットに向けられる。この例では、プロセスブロック528が、視線ベクトル350を使用して、投擲された仮想オブジェクトの変位ベクトル360を修正し得る。しかしながら、ユーザに提示されたシーンは、ユーザが投擲のときにターゲットから眼をそらすことを引き起こす、かく乱を含み得、この場合、より良好な投擲正確さを提供するために、仮想オブジェクト位置ベクトル340を使用して、投擲された仮想オブジェクトの変位ベクトル360を修正することが望ましいことがある。また、プロセスブロック528または535の修正の適用は、あらかじめ選択されたスキルレベル、たとえば、初心者、中級者および上級者に依存し得るか、あるいは、それらは、ユーザによる所定の数のミスまたは何らかの他のパラメータの結果として実装され得る。判定ブロック515からのいいえの経路は、ターゲットが不明瞭にされ、したがって、ターゲットの仮想オブジェクト位置ベクトルが利用可能でないことを暗示する。この例では、プロセスブロック535によって表されるように、ユーザのための視線ベクトル350が、投擲された仮想オブジェクトの変位ベクトル360を修正するために使用され得る。変位ベクトル360がどのように修正され得るかの例は、視線ベクトル350の大きさ成分を使用することを含む。代替的に、変位ベクトル360が修正され得ることは、視線ベクトル350の方向成分を使用することを含む。別の実施形態は、視線ベクトル350の大きさ成分と方向成分の両方を使用し得る。たとえば、方向成分と、大きさのための重み付け係数とを使用すること。変位ベクトル360の修正は、あらかじめ選択されたスキルレベルに依存し、修正の程度は、スキルレベルを減少させることに比例して増加し得る。修正程度はまた、学習された属性であり得る。たとえば、システムは、ターゲットに当てるための失敗した試みの数から、さらなる体験が獲得されるまでユーザが助けを必要とすることを学習し得る。次いで、ユーザが大きい成功を体験するにつれて、修正の程度は減少され得る。このようにして、スキルが取得されるので、仮想アクティビティのユーザの楽しみが維持され得る。
【0048】
判定ブロック510の、いいえによって決定されたように、ターゲットが固定されていない場合、環境は、動いているターゲットのシナリオを含む。動いているターゲットに対するユーザの応答が、ユーザに提示された状況に応じて変動することができる。3つの可能なシナリオがある。第1に、ユーザは、動いているターゲットを見ている。第2に、ユーザは、ターゲットがどこにあるかを予期して、動いているターゲットの前方を見ている。第3に、ユーザは、故意にターゲットを見ていない。第1のシナリオの一例は、投擲を行うために自分の眼でバケツを追うユーザが、動いているバケツにビーンバッグをトスすることを試みることであり得る。第2のシナリオの一例は、クォーターバックが、受け取りのときのレシーバのロケーションを予期したロケーションを見ることによって、レシーバに対してダウンフィールドに投擲することであり得る。第3のシナリオの一例は、チームスポーツプレイにおけるユーザが、対象とするパスレシーバを見ないことによって、対戦者をかく乱することを試みることである。したがって、プロセス500は、ターゲットのための仮想オブジェクト位置ベクトル340を決定するためのプロセスブロック540と、ユーザのための視線ベクトル350を決定するためのプロセスブロック545と、それらのベクトルが仮想ターゲット上で一致するかどうか、言い換えれば、ユーザがターゲットを見ているかどうかを照会する判定ブロック550を続ける。一致は、システムパラメータまたは所定のユーザパラメータに基づいて決定され得る。
【0049】
判定ブロック550の、はいは、プロセスブロック540の仮想オブジェクト位置ベクトル340またはプロセスブロック545の視線ベクトル350のいずれかを使用して、プロセスブロック505からの投擲された仮想オブジェクトの変位ベクトル360を修正するプロセスブロック555につながる。このプロセスは、第1のシナリオのために使用され得、望ましくは視線ベクトルを使用し得るが、仮想オブジェクト位置ベクトル340を使用することが、ユーザ依存またはユーザ定義パラメータとして選択され得る。
【0050】
判定ブロック550の、いいえは、第2のシナリオのおよび第3のシナリオのいずれかを意味することができる。ユーザが、ターゲットのための予期されたロケーションを見ている、第2のシナリオ、または、ユーザが、対象とするターゲットを故意に見ないことによって、相手プレーヤにフェイントをかけることを試みている、第3のシナリオのいずれかである。判定ブロック560が、ユーザが、対象とするターゲットを指示したかどうかを照会する。いいえは、第2のシナリオを表し、プロセスブロック565が、プロセスブロック545の視線ベクトル350を使用して、プロセスブロック505からの投擲された仮想オブジェクトの変位ベクトル360を修正する。すなわち、システムは、ユーザがどこを見ているかを使用して、投擲ベクトルの修正を実現する。
【0051】
判定ブロック560の、はいは、第3のシナリオを表し、プロセスブロック570が、プロセスブロック520からの仮想オブジェクト位置ベクトルを使用して、プロセスブロック505からの投擲された仮想オブジェクトのベクトルを修正する。たとえば、ユーザは、ダウンフィールドを見ながらプレーヤにショベルパスを行い、相手プレーヤにフェイントをかけようとする。
【0052】
判定ブロック560に関して、ユーザは、いくつかの異なるやり方を介して、対象とするターゲットを指示し得る。フットボールのクォーターバックシナリオでは、対象とするターゲットを指示するためにハドル(huddle)が使用され得る。より動的な状況、たとえば、バスケットボールでは、対象とするターゲットへのユーザの瞬間的な一瞥が、視線ベクトルの短時間の変化によって指示されるような対象とするターゲットを指示するために使用され得るか、または、ユーザは、コントローラを通して入力を提供することができる。
【0053】
図6は、例示的なコンピュータシステム600を示す。特定の実施形態では、1つまたは複数のコンピュータシステム600は、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータシステム600は、本明細書で説明または示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム600上で稼働しているソフトウェアは、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム600の1つまたは複数の部分を含む。
【0054】
本開示は、任意の好適な数のコンピュータシステム600を企図する。本開示は、任意の好適な物理的形態をとるコンピュータシステム600を企図する。限定としてではなく例として、コンピュータシステム600は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム600は、1つまたは複数のコンピュータシステム600を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、1つまたは複数のコンピュータシステム600は、実質的な空間的または時間的制限なしに、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定としてではなく一例として、1つまたは複数のコンピュータシステム600は、リアルタイムでまたはバッチモードで、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステム600は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。
【0055】
特定の実施形態では、コンピュータシステム600は、プロセッサ602と、非一時的メモリ604と、ストレージ606と、入出力(I/O)インターフェース608と、通信インターフェース610と、バス612とを含む。本開示は、特定の構成において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な構成において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
【0056】
特定の実施形態では、プロセッサ602は、コンピュータプログラムを作り上げる命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ602は、内部レジスタ、内部キャッシュ、非一時的メモリ604、またはストレージ606から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、非一時的メモリ604、またはストレージ606に1つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ602は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
【0057】
特定の実施形態では、非一時的メモリ604は、プロセッサ602が実行するための命令、またはプロセッサ602が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム600は、ストレージ606または(たとえば、別のコンピュータシステム600などの)別のソースからメモリ604に命令をロードし得る。プロセッサ602は、次いで、メモリ604から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ602は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ602は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ602は、次いで、非一時的メモリ604にそれらの結果のうちの1つまたは複数を書き込み得る。
【0058】
特定の実施形態では、プロセッサ602は、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ606または他の場所とは対照的な)メモリ604中の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ606または他の場所とは対照的な)メモリ604中のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスが、プロセッサ02をメモリ604に結合し得る。バス612は、以下で説明されるように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ602とメモリ604との間に常駐し、プロセッサ602によって要求されるメモリ604へのアクセスを可能にする。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
【0059】
特定の実施形態では、ストレージ606は、データまたは命令のための大容量ストレージを含む。ストレージ606は、適切な場合、リムーバブルまたは非リムーバブル(すなわち、固定)媒体を含み得る。ストレージ606は、適切な場合、コンピュータシステム600の内部または外部にあり得る。特定の実施形態では、ストレージ606は、不揮発性ソリッドステートメモリである。適切な場合、ストレージ606は、1つまたは複数のストレージ606を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
【0060】
特定の実施形態では、I/Oインターフェース608は、コンピュータシステム600と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム600は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム600との間の通信を可能にし得る。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の好適なI/Oデバイスと、それらのI/Oデバイスのための任意の好適なI/Oインターフェース608とを企図する。適切な場合、I/Oインターフェース608は、プロセッサ602がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース608は、適切な場合、1つまたは複数のI/Oインターフェース608を含み得る。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
【0061】
特定の実施形態では、通信インターフェース610は、コンピュータシステム600と、1つまたは複数の他のコンピュータシステム600または1つまたは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース610は、イーサネットまたは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWi-Fiネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース610とを企図する。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
【0062】
特定の実施形態では、バス612は、コンピュータシステム600の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
【0063】
本明細書では、コンピュータ可読記憶媒体への言及は、1つまたは複数の非一時的、有形、コンピュータ可読記憶媒体所有構造を包含する。限定としてではなく一例として、コンピュータ可読記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)半導体ベースまたは他の集積回路(IC)、ハードディスク、HDD、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスク、フロッピーディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカード、セキュアデジタルドライブ、あるいは別の好適なコンピュータ可読記憶媒体、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。本明細書では、コンピュータ可読記憶媒体への言及は、米国特許法第101条に基づく特許保護の対象とならない媒体を除外する。本明細書では、コンピュータ可読記憶媒体への言及は、米国特許法第101条に基づく特許保護の対象とならない限り、(電気信号または電磁信号自体を伝搬することなどの)信号送信の一時的形態を除外する。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
【0064】
上記の説明のいくつかの部分は、アルゴリズムプロセスまたは動作に関して実施形態について説明する。これらのアルゴリズム説明および表現は、データ処理技術分野の当業者が、他の当業者に自身の仕事の本質を効果的に伝えるために通常使用される。これらの動作は、機能的に、算出量的に、または論理的に説明されるが、プロセッサによる実行のための命令を備えるコンピュータプログラムによって、または等価な電気回路、マイクロコードなどによって実装されることが理解される。さらに、一般性の喪失なしに、機能的動作のこれらの仕組みをモジュールと呼ぶことが時々好都合であることも証明された。説明される動作およびそれらの関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せにおいて具現され得る。一実施形態では、ソフトウェアモジュールは、コンピュータプログラムコードを含んでいる非一時的コンピュータ可読媒体を備えるコンピュータプログラム製品で実装され、コンピュータプログラムコードは、説明されるステップ、動作、またはプロセスのいずれかまたはすべてを実施するためにコンピュータプロセッサによって実行され得る。
図1
図2
図3
図4
図5
図6
【国際調査報告】