(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-14
(54)【発明の名称】オペレーティングシステムのためのオーディオサービス設計
(51)【国際特許分類】
H04S 7/00 20060101AFI20221006BHJP
G06F 3/01 20060101ALI20221006BHJP
【FI】
H04S7/00 300
H04S7/00 340
H04S7/00 360
G06F3/01 510
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021572866
(86)(22)【出願日】2020-07-29
(85)【翻訳文提出日】2022-02-04
(86)【国際出願番号】 US2020043923
(87)【国際公開番号】W WO2021030051
(87)【国際公開日】2021-02-18
(32)【優先日】2019-08-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】サレム, マーク イハーブ
(72)【発明者】
【氏名】カマット, スミット
【テーマコード(参考)】
5D162
5E555
【Fターム(参考)】
5D162AA13
5D162CA26
5D162CC06
5D162CC18
5D162CC19
5D162CC36
5D162CD01
5D162CD07
5D162CD25
5D162DA02
5D162DA16
5D162EG02
5D162EG06
5D162EG08
5E555AA64
5E555BA17
5E555BA38
5E555BA88
5E555BB16
5E555BB38
5E555BC13
5E555CA41
5E555FA00
(57)【要約】
1つの実施形態において、コンピューティングデバイス上で実行しているオーディオサービスは、1つまたは複数のアプリケーションから、いくつかの世界固定オーディオオブジェクトを受信することであって、世界固定オーディオオブジェクトの各々は、三次元環境内の座標と関連付けられる、受信することと、世界固定オーディオオブジェクトの第1のサブセットおよび世界固定オーディオオブジェクトの第2のサブセットを識別することであって、第1のサブセットはいくつかの世界固定オーディオオブジェクトを含み、第2のサブセットは、第1のサブセットから除外されている世界固定オーディオオブジェクトのうちの1つまたは複数を含む、世界固定オーディオオブジェクトの第1のサブセットおよび世界固定オーディオオブジェクトの第2のサブセットを識別することと、世界固定オーディオオブジェクトの第2のサブセットおよび世界固定オーディオオブジェクトの関連する座標に基づいて、球面調和オブジェクトを生成することと、同時出力のためにオーディオをレンダリングするように構成されたオーディオドライバに、世界固定オーディオオブジェクトの第1のサブセットおよび球面調和オブジェクトと関連付けられるデータを送信することとを含む、方法を実施する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
コンピューティングデバイス上で実行しているオーディオサービスによって、
1つまたは複数のアプリケーションから、いくつかの世界固定オーディオオブジェクトを受信することであって、前記世界固定オーディオオブジェクトの各々は、三次元環境内の座標と関連付けられる、受信することと、
前記世界固定オーディオオブジェクトの第1のサブセットおよび前記世界固定オーディオオブジェクトの第2のサブセットを識別することであって、前記第1のサブセットはいくつかの世界固定オーディオオブジェクトを含み、前記第2のサブセットは、前記第1のサブセットから除外されている前記世界固定オーディオオブジェクトのうちの1つまたは複数を含む、前記世界固定オーディオオブジェクトの第1のサブセットおよび前記世界固定オーディオオブジェクトの第2のサブセットを識別することと、
前記世界固定オーディオオブジェクトの第2のサブセットおよび前記世界固定オーディオオブジェクトの関連する座標に基づいて、球面調和オブジェクトを生成することと、
同時出力のためにオーディオをレンダリングするように構成されたオーディオドライバに、前記世界固定オーディオオブジェクトの第1のサブセットおよび前記球面調和オブジェクトと関連付けられるデータを送信することと
を含む、方法。
【請求項2】
前記球面調和オブジェクトを前記生成することは、ヘッドセット関連伝達関数、前記三次元環境に対するユーザのロケーション、または姿勢のうちの少なくとも1つにさらに基づく、請求項1に記載の方法。
【請求項3】
前記三次元環境内の前記座標は、オーディオ源ロケーションを規定する、請求項1または2に記載の方法。
【請求項4】
前記世界固定オーディオオブジェクトの第1のサブセットと関連付けられる前記データは、直接伝播インパルス応答、残響インパルス応答、およびモノラルオーディオストリームを含み、前記方法は、好ましくは、
ヘッドセット関連伝達関数、前記三次元環境に対するユーザのロケーション、または姿勢のうちの少なくとも1つに基づいて、前記直接伝播インパルス応答および前記残響インパルス応答を生成することをさらに含み、好ましくは、前記直接伝播インパルス応答および前記残響インパルス応答を前記生成することは、前記三次元環境の少なくとも一部分の三次元モデルにさらに基づく、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記方法は、1つまたは複数の追加の球面調和オブジェクトを受信することをさらに含み、
前記球面調和オブジェクトを前記生成することは、前記1つまたは複数の追加の球面調和オブジェクトにさらに基づく、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記方法は、1つまたは複数の頭部固定オーディオオブジェクトを受信することをさらに含み、
前記世界固定オーディオオブジェクトの第1のサブセットおよび前記球面調和オブジェクトと関連付けられる前記データは、前記1つまたは複数の頭部固定オーディオオブジェクトとさらに関連付けられる、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記コンピューティングデバイスのオペレーティングシステムは、前記オーディオサービスを備える、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記1つまたは複数のアプリケーションおよび前記オーディオドライバは各々、同期クロック基準に結合される、請求項1から7のいずれか一項に記載の方法。
【請求項9】
ソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアは、クライアントデバイスによって実行されると、
1つまたは複数のアプリケーションから、いくつかの世界固定オーディオオブジェクトを受信することであって、前記世界固定オーディオオブジェクトの各々は、三次元環境内の座標と関連付けられる、受信することと、
前記世界固定オーディオオブジェクトの第1のサブセットおよび前記世界固定オーディオオブジェクトの第2のサブセットを識別することであって、前記第1のサブセットはいくつかの世界固定オーディオオブジェクトを含み、前記第2のサブセットは、前記第1のサブセットから除外されている前記世界固定オーディオオブジェクトのうちの1つまたは複数を含む、前記世界固定オーディオオブジェクトの第1のサブセットおよび前記世界固定オーディオオブジェクトの第2のサブセットを識別することと、
前記世界固定オーディオオブジェクトの第2のサブセットおよび前記世界固定オーディオオブジェクトの関連する座標に基づいて、球面調和オブジェクトを生成することと、
出力のためにオーディオをレンダリングするように構成されたオーディオドライバに、前記世界固定オーディオオブジェクトの第1のサブセットおよび前記球面調和オブジェクトと関連付けられるデータを送信することと
を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項10】
前記三次元環境内の前記座標は、オーディオ源ロケーションを規定する、請求項9に記載の媒体。
【請求項11】
前記世界固定オーディオオブジェクトの第1のサブセットと関連付けられる前記データは、直接伝播インパルス応答、残響インパルス応答、およびモノラルオーディオストリームを含む、請求項9または10に記載の媒体。
【請求項12】
前記ソフトウェアは、前記クライアントデバイスによって実行されると、
1つまたは複数の追加の球面調和オブジェクトを受信することを行うようにさらに動作可能であり、
前記球面調和オブジェクトを前記生成することは、前記1つまたは複数の追加の球面調和オブジェクトにさらに基づく、請求項9から11のいずれか一項に記載の媒体。
【請求項13】
前記ソフトウェアは、前記クライアントデバイスによって実行されると、
前記世界固定オーディオオブジェクトと同時に出力される1つまたは複数の頭部固定オーディオオブジェクトを受信することを行うようにさらに動作可能であり、
前記世界固定オーディオオブジェクトの第1のサブセットおよび前記球面調和オブジェクトと関連付けられる前記データは、前記1つまたは複数の頭部固定オーディオオブジェクトとさらに関連付けられる、請求項9から12のいずれか一項に記載の媒体。
【請求項14】
クライアントデバイスであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサのうちの1つまたは複数に結合されており、命令を含む1つまたは複数のコンピュータ可読非一時的記憶媒体と
を備え、前記命令は、前記1つまたは複数のプロセッサのうちの1つまたは複数によって実行されると、前記クライアントデバイスに、
1つまたは複数のアプリケーションから、いくつかの世界固定オーディオオブジェクトを受信することであって、前記世界固定オーディオオブジェクトの各々は、三次元環境内の座標と関連付けられる、受信することと、
前記世界固定オーディオオブジェクトの第1のサブセットおよび前記世界固定オーディオオブジェクトの第2のサブセットを識別することであって、前記第1のサブセットはいくつかの世界固定オーディオオブジェクトを含み、前記第2のサブセットは、前記第1のサブセットから除外されている前記世界固定オーディオオブジェクトのうちの1つまたは複数を含む、前記世界固定オーディオオブジェクトの第1のサブセットおよび前記世界固定オーディオオブジェクトの第2のサブセットを識別することと、
前記世界固定オーディオオブジェクトの第2のサブセットおよび前記世界固定オーディオオブジェクトの関連する座標に基づいて、球面調和オブジェクトを生成することと、
出力のためにオーディオをレンダリングするように構成されたオーディオドライバに、前記世界固定オーディオオブジェクトの第1のサブセットおよび前記球面調和オブジェクトと関連付けられるデータを送信することと
を行わせるように動作可能である、クライアントデバイス。
【請求項15】
前記世界固定オーディオオブジェクトの各々と関連付けられる前記三次元環境内の前記座標は、前記三次元環境内のオーディオ源ロケーションを規定し、および/または、好ましくは、前記世界固定オーディオオブジェクトの第1のサブセットと関連付けられる前記データは、直接伝播インパルス応答、残響インパルス応答、およびモノラルオーディオストリームを含み、および/または、好ましくは、前記命令は、前記1つまたは複数のプロセッサによって実行されると、
1つまたは複数の追加の球面調和オブジェクトを受信することを行うようにさらに動作可能であり、
前記球面調和オブジェクトを前記生成することは、前記1つまたは複数の追加の球面調和オブジェクトにさらに基づき、および/または、好ましくは、前記命令は、前記1つまたは複数のプロセッサによって実行されると、
1つまたは複数の頭部固定オーディオオブジェクトを受信することを行うようにさらに動作可能であり、
前記世界固定オーディオオブジェクトの第1のサブセットおよび前記球面調和オブジェクトと関連付けられる前記データは、前記1つまたは複数の頭部固定オーディオオブジェクトとさらに関連付けられる、請求項14に記載のクライアントデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、人工現実ソリューションのためのオーディオサービスアーキテクチャに関する。
【背景技術】
【0002】
人工現実ソリューションは、コンピューティングシステム(「ステージ」)と対になった人工現実デバイスを含み得る。人工現実デバイスは、限定ではなく、ヘッドセットまたは眼鏡を含み得る。ステージは、コンピュータシステムまたは任意の適切なコンピューティングデバイスであり得る。人工現実ソリューションのためのオーディオアーキテクチャは、限定ではないが、短い待ち時間、低電力消費、データプライバシ、およびデータセキュリティに対する1つまたは複数の要件と組み合わさった、オーディオ記録サポートおよびオーディオレンダリングサポートを含む、複数の制約に基づく設計を必要とし得る。例えば、人工現実デバイスは、ヘッドセットが、1回の充電でより長期間使用され、再充電の頻度を低減し、および/または、ヘッドセットの電池交換の頻度を低減することを可能にする、消費電力の低いオーディオアーキテクチャを必要とし得る。限定ではなく付加的な例において、人工現実デバイスは、1つまたは複数のドライバおよび1つまたは複数のアプリケーションへの応答待ち時間の短いオーディオアーキテクチャを必要とし得る。
【発明の概要】
【0003】
コンピューティングデバイス上で実行しているオーディオサービスによって、1つまたは複数のアプリケーションから、いくつかの世界固定オーディオオブジェクトを受信することであって、世界固定オーディオオブジェクトの各々は、三次元環境内の座標と関連付けられる、受信することと、世界固定オーディオオブジェクトの第1のサブセットおよび世界固定オーディオオブジェクトの第2のサブセットを識別することであって、第1のサブセットはいくつかの世界固定オーディオオブジェクトを含み、第2のサブセットは、第1のサブセットから除外されている世界固定オーディオオブジェクトのうちの1つまたは複数を含む、世界固定オーディオオブジェクトの第1のサブセットおよび世界固定オーディオオブジェクトの第2のサブセットを識別することと、世界固定オーディオオブジェクトの第2のサブセットおよび世界固定オーディオオブジェクトの関連する座標に基づいて、球面調和オブジェクトを生成することと、同時出力のためにオーディオをレンダリングするように構成されたオーディオドライバに、世界固定オーディオオブジェクトの第1のサブセットおよび球面調和オブジェクトと関連付けられるデータを送信することとを含む、方法が、本明細書において説明される。
【0004】
本方法の特定の実施形態において、球面調和オブジェクトを生成することは、ヘッドセット関連伝達関数、三次元環境に対するユーザのロケーション、または姿勢のうちの少なくとも1つにさらに基づく。本方法の特定の実施形態において、三次元環境内の座標は、オーディオ源ロケーションを規定する。本方法の特定の実施形態において、世界固定オーディオオブジェクトの第1のサブセットと関連付けられるデータは、直接伝播インパルス応答、残響インパルス応答、およびモノラルオーディオストリームを含む。本方法の特定の実施形態において、本方法は、ヘッドセット関連伝達関数、三次元環境に対するユーザのロケーション、または姿勢のうちの少なくとも1つに基づいて、直接伝播インパルス応答および残響インパルス応答を生成することをさらに含む。本方法の特定の実施形態において、直接伝播インパルス応答および残響インパルス応答を生成することは、三次元環境の少なくとも一部分の三次元モデルにさらに基づく。本方法の特定の実施形態において、本方法は、1つまたは複数の追加の球面調和オブジェクトを受信することをさらに含み、球面調和オブジェクトを生成することは、1つまたは複数の追加の球面調和オブジェクトにさらに基づく。本方法の特定の実施形態において、本方法は、1つまたは複数の頭部固定オーディオオブジェクトを受信することをさらに含み、世界固定オーディオオブジェクトの第1のサブセットおよび球面調和オブジェクトと関連付けられるデータは、1つまたは複数の頭部固定オーディオオブジェクトとさらに関連付けられる。本方法の特定の実施形態において、コンピューティングデバイスのオペレーティングシステムは、オーディオサービスを備える。本方法の特定の実施形態において、1つまたは複数のアプリケーションおよびオーディオドライバは各々、同期クロック基準に結合されている。
【0005】
ソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、ソフトウェアは、クライアントデバイスによって実行されると、1つまたは複数のアプリケーションから、いくつかの世界固定オーディオオブジェクトを受信することであって、世界固定オーディオオブジェクトの各々は、三次元環境内の座標と関連付けられる、受信することと、世界固定オーディオオブジェクトの第1のサブセットおよび世界固定オーディオオブジェクトの第2のサブセットを識別することであって、第1のサブセットはいくつかの世界固定オーディオオブジェクトを含み、第2のサブセットは、第1のサブセットから除外されている世界固定オーディオオブジェクトのうちの1つまたは複数を含む、世界固定オーディオオブジェクトの第1のサブセットおよび世界固定オーディオオブジェクトの第2のサブセットを識別することと、世界固定オーディオオブジェクトの第2のサブセットおよび世界固定オーディオオブジェクトの関連する座標に基づいて、球面調和オブジェクトを生成することと、出力のためにオーディオをレンダリングするように構成されたオーディオドライバに、世界固定オーディオオブジェクトの第1のサブセットおよび球面調和オブジェクトと関連付けられるデータを送信することとを行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体が、本明細書において説明される。
【0006】
クライアントデバイスによって実行されるように動作可能であるソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体の特定の実施形態において、三次元環境内の座標は、オーディオ源ロケーションを規定する。クライアントデバイスによって実行されるように動作可能であるソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体の特定の実施形態において、世界固定オーディオオブジェクトの第1のサブセットと関連付けられるデータは、直接伝播インパルス応答、残響インパルス応答、およびモノラルオーディオストリームを含む。クライアントデバイスによって実行されるように動作可能であるソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体の特定の実施形態において、ソフトウェアは、クライアントデバイスによって実行されると、1つまたは複数の追加の球面調和オブジェクトを受信することを行うようにさらに動作可能であり、球面調和オブジェクトを生成することは、1つまたは複数の追加の球面調和オブジェクトにさらに基づく。クライアントデバイスによって実行されるように動作可能であるソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体の特定の実施形態において、ソフトウェアは、クライアントデバイスによって実行されると、世界固定オーディオオブジェクトと同時に出力される1つまたは複数の頭部固定オーディオオブジェクトを受信することを行うようにさらに動作可能であり、世界固定オーディオオブジェクトの第1のサブセットおよび球面調和オブジェクトと関連付けられるデータは、1つまたは複数の頭部固定オーディオオブジェクトとさらに関連付けられる。
【0007】
クライアントデバイスであって、1つまたは複数のプロセッサと、1つまたは複数のプロセッサのうちの1つまたは複数に結合されており、命令を含む1つまたは複数のコンピュータ可読非一時的記憶媒体とを備え、命令は、1つまたは複数のプロセッサのうちの1つまたは複数によって実行されると、クライアントデバイスに、1つまたは複数のアプリケーションから、いくつかの世界固定オーディオオブジェクトを受信することであって、世界固定オーディオオブジェクトの各々は、三次元環境内の座標と関連付けられる、受信することと、世界固定オーディオオブジェクトの第1のサブセットおよび世界固定オーディオオブジェクトの第2のサブセットを識別することであって、第1のサブセットはいくつかの世界固定オーディオオブジェクトを含み、第2のサブセットは、第1のサブセットから除外されている世界固定オーディオオブジェクトのうちの1つまたは複数を含む、世界固定オーディオオブジェクトの第1のサブセットおよび世界固定オーディオオブジェクトの第2のサブセットを識別することと、世界固定オーディオオブジェクトの第2のサブセットおよび世界固定オーディオオブジェクトの関連する座標に基づいて、球面調和オブジェクトを生成することと、出力のためにオーディオをレンダリングするように構成されたオーディオドライバに、世界固定オーディオオブジェクトの第1のサブセットおよび球面調和オブジェクトと関連付けられるデータを送信することとを行わせるように動作可能である、クライアントデバイスが、本明細書において説明される。
【0008】
クライアントデバイスの特定の実施形態において、三次元環境内の座標は、世界固定オーディオオブジェクトの各々と関連付けられ、三次元環境内のオーディオ源ロケーションを規定する。クライアントデバイスの特定の実施形態において、世界固定オーディオオブジェクトの第1のサブセットと関連付けられるデータは、直接伝播インパルス応答、残響インパルス応答、およびモノラルオーディオストリームを含む。クライアントデバイスの特定の実施形態において、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数の追加の球面調和オブジェクトを受信することを行うようにさらに動作可能であり、球面調和オブジェクトを生成することは、1つまたは複数の追加の球面調和オブジェクトにさらに基づく。クライアントデバイスの特定の実施形態において、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数の頭部固定オーディオオブジェクトを受信することを行うようにさらに動作可能であり、世界固定オーディオオブジェクトの第1のサブセットおよび球面調和オブジェクトと関連付けられるデータは、1つまたは複数の頭部固定オーディオオブジェクトとさらに関連付けられる。
【0009】
本明細書において開示されている実施形態は例に過ぎず、本開示の範囲は当該実施形態に限定されない。特定の実施形態は、本明細書において開示されている実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含んでもよく、一部を含んでもよく、または、いずれも含まなくてもよい。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲に開示されており、例えば、方法など、1つの請求項分類において言及されている任意の特徴は、例えば、システムなどの別の請求項分類においても特許請求することができる。添付の特許請求の範囲における後方への従属関係または参照は、形式的な理由でのみ選択されている。しかしながら、任意の先行する請求項に戻る意図的な参照(特に、複数の従属関係)から生じる任意の主題も特許請求することができ、結果、請求項および請求項の特徴の任意の組み合わせが開示され、添付の特許請求の範囲において選択されている従属関係にかかわらず、特許請求することができる。特許請求され得る主題は、添付の特許請求の範囲において記載されている特徴の組み合わせだけでなく、特許請求の範囲内の特徴の任意の他の組み合わせも含み、特許請求の範囲において言及されている各特徴は、特許請求の範囲内の任意の他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書において記載または図示されている実施形態および特徴のいずれかは、別個の請求項において、および/あるいは、本明細書において記載もしくは図示されている任意の実施形態もしくは特徴、または、添付の特許請求の範囲の特徴のいずれかとの任意の組み合わせにおいて特許請求することができる。
【図面の簡単な説明】
【0010】
【
図1】オーディオ配布のためのハードウェアおよびソフトウェアアーキテクチャを備える例示的なオーディオアーキテクチャを示す図である。
【
図2】オーディオ配布のためのハードウェアおよびソフトウェアアーキテクチャを備える例示的なオーディオアーキテクチャを示す図である。
【
図3】オーディオをレンダリングするための例示的なオーディオアーキテクチャを示す図である。
【
図4】オーディオをレンダリングするための例示的な方法を示す図である。
【
図5】オーディオを記録するための例示的なオーディオアーキテクチャを示す図である。
【
図6】オーディオを記録するための例示的な方法を示す図である。
【
図7】例示的な伝搬ルータアーキテクチャを示す図である。
【
図8】例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0011】
図1は、オーディオ配布のためのハードウェアおよびソフトウェアアーキテクチャを備える例示的なオーディオアーキテクチャを示す。例示的なオーディオサービスアーキテクチャは、人工現実デバイスのオペレーティングシステム上で動作する、オーディオを配布するためのオーディオサービスを備えることができる。限定ではなく一例として、人工現実デバイスは、ユーザ101によって装着されるヘッドセット135であってもよい。例示的なオーディオアーキテクチャは、1つまたは複数のアプリケーションと1つまたは複数のオーディオドライバとの間でオーディオレンダリング要求とオーディオ記録要求とを協調させるためのオーディオサービスを備えることができる。例示的なオーディオサービスは、オーディオの信号処理が、オーディオと関連付けられるデータを生成または修正することを可能にすることができる。ヘッドセットは、コンピューティングデバイス130、すなわち、「ステージ」から、オーディオデータを受信することができ、ステージは、接続150を介してネットワーク110に結合することができる。限定ではなく一例として、ステージ130は、接続150を介して企業内部ネットワーク160および外部ネットワーク170に結合することができる。
【0012】
ヘッドセット130は、ユーザの左耳付近でオーディオをレンダリングするように方向付けられた1つまたは複数のスピーカと、ユーザの右耳付近でオーディオをレンダリングするように方向付けられた1つまたは複数のスピーカとを備えることができる。ヘッドセットは、1つまたは複数のマイクロフォンをさらに備えることができ、典型的には、2つ以上のマイクロフォンを備えることができる。特定の実施形態において、アプリケーションは、すべてのマイクロフォンから同時にオーディオを受信するのではなく、特定の方向に向けて配置されている特定の1つまたは複数のマイクロフォンを使用して、当該特定の方向からのオーディオを受信することを選択することが可能であり得る。当該選択を可能にすることは、ビームフォーミングして参照される場合がある。
【0013】
例示的な人工現実デバイスは、人工現実ユーザ指向オーディオ、すなわち、「頭部固定オーディオ」、および、環境指向オーディオ、すなわち、「世界固定オーディオ」をサポートすることができる。特定の実施形態において、例示的なオーディオアーキテクチャは、1つまたは複数の世界固定オーディオオブジェクト、1つまたは複数の頭部固定オーディオオブジェクト、および、1つまたは複数の球面調和オブジェクトのうちの1つまたは複数の組み合わせを組み込むことができる。頭部固定オーディオは、ユーザがヘッドセットをどのように動かしまたは回転させるかにかかわらず、同じようにヘッドセット内でレンダリングされるオーディオであり得る。限定ではなく一例として、ユーザのヘッドセット位置またはユーザの環境にかかわらず、特定の頭部固定通知が、ユーザの右耳付近でスピーカにおいてレンダリングされ得る。特定の実施形態において、頭部固定オーディオは、システム通知および/または背景音楽に有用であり得る。頭部固定オーディオは、2つのチャネルに制限され得、結果、すべての頭部固定オーディオストリームが、オーディオ生成のためのステレオオーディオ信号として混合され、提供される。
【0014】
対照的に、世界固定オーディオは、ユーザの環境の3D空間内の特定の点において生成されるオーディオをシミュレートするためにレンダリングされ得、結果、オーディオは、ユーザが自身の頭部を動かしてヘッドセットを動かすにつれて、左側スピーカと右側スピーカとの間でパンすることができる。すなわち、パンは、オーディオ源がユーザの正面の点に固定されているという印象をユーザに与えるように、ユーザの耳が見掛け上の音源のより近くに動くときにオーディオの音量を増大させ、ユーザの耳が見掛け上の音源から遠ざかるときに音量を低減することを含むことができる。限定ではなく一例として、オーディオがほぼ同じ音量で左側スピーカと右側スピーカの両方においてレンダリングされ、ただし、ユーザが自身の頭部を旋回させて一方の耳を見掛け上の音源のより近くに動かすとき、オーディオがユーザの動きに基づいてパンすることができるように、見掛け上、ユーザの真正面の点から発生するように、特定の世界固定オーディオをレンダリングすることができる。特定の実施形態において、世界固定オーディオは、3D環境内にある現実または仮想物体からオーディオを提供するのに有用であり得る。
【0015】
球面調和オーディオは、一般化された形態のマルチチャネルサラウンド音声である。球面調和オーディオは、特定の実世界または仮想のロケーションと関連付けられないオーディオに使用することができる。球面調和オーディオは、限定ではなく、周囲雑音、例えば、限定ではなく、競技場の群衆の叫び声および背景音楽と関連付けられるオーディオを含んでもよい。より提示の球面調和オーディオ(すなわち、チャネルがより少ない球面調和オーディオ)は、オブジェクトに基づくオーディオよりも品質の低いオーディオとしてユーザによって知覚され得る。例えば、限定ではなく、優先度のより低い頭部固定オーディオオブジェクトなどの、特定のオーディオオブジェクトを球面調和オーディオとして処理することによって、例示的なオーディオアーキテクチャは、限定ではなく、より短い待ち時間、より低い電力消費、より高い品質の物体ベースのオーディオオブジェクトに対するより高いオーディオ品質、およびユーザ構成可能設定を含む様々な設計制約を同時にサポートしながら、1つまたは複数のアプリケーションによって提供されるオーディオオブジェクトをサポートすることができる。
【0016】
特定の実施形態において、世界固定オーディオオブジェクトは、球面調和および頭部固定オーディオオブジェクトよりも計算的に多くを要求し得る。したがって、限定ではなく、待ち時間、電力消費、オーディオ品質制限、およびユーザ構成可能設定を含む1つまたは複数の制限に基づいて、世界固定オーディオオブジェクトの数を制限することが有益であり得る。限定ではなく一例として、世界固定オーディオオブジェクトは、限定ではなく、環境メタデータおよびヘッドセット位置データを含む、メタデータの処理を必要とし得る。
【0017】
特定の実施形態において、例示的なオーディオアーキテクチャは、1つまたは複数のオーディオオブジェクトの優先度を設定する役割を担い得る。オーディオオブジェクトの優先度は、優先度のより低いオーディオオブジェクトが球面調和オーディオとして処理され、生成される一方で、世界固定オーディオオブジェクトの処理を優先度のより高いいくつかのオーディオオブジェクトに制限するために使用することができる。限定ではなく一例として、オーディオサービスは、複数の世界固定オーディオオブジェクトを受信することができ、複数の世界固定オーディオオブジェクトを、世界固定オーディオとしてレンダリングするための優先度のより高いオブジェクトの第1のサブセットと、球面調和オーディオとしてレンダリングするための、第1のサブセットからのオーディオオブジェクトを一切含まない、優先度のより低いオーディオオブジェクトの第2のサブセットとに分離することができる。
【0018】
特定の実施形態において、オーディオオブジェクトは、メタデータと関連付けることができる。限定ではなく一例として、メタデータは、オーディオ源ロケーションを規定する三次元空間内の座標を含むことができる。オーディオ源ロケーションは、世界固定オーディオオブジェクトの空間的「発生源」、すなわち、現実または仮想空間内でオーディオが発生するロケーションを含むことができる。メタデータは、オーディオ源、および、三次元環境内の任意の実世界または仮想物体に対するユーザの向きに基づいてオーディオをレンダリングすることを可能にすることができる。
【0019】
特定の実施形態において、ステージは、特定の周波数においてヘッドセットにオーディオオブジェクトを提供することができ、ヘッドセットは、ステージからの順次的なオーディオオブジェクトの受信の間に適切なオーディオをレンダリングおよび出力する役割を担い得る。例えば、ステージは、規則的な時間間隔をおいたフレーム、すなわち、オーディオデータブロックにおいて、ヘッドセットにオーディオオブジェクトを提供することができる。規則的な時間間隔は、フレームレート、すなわち、フレームが受信される速度に対応することができる。ヘッドセットは、当該フレームレートに基づいてオーディオをレンダリングする役割を担うことができ、サブフレームについてオーディオをレンダリングする役割をさらに担うことができる。限定ではなく一例として、ステージが30Hzにおいてオーディオオブジェクトを提供する場合、ヘッドセットは、ユーザにとってより円滑なオーディオ体験を提供するために、例えば、補間を使用して、120Hzにおいてオーディオを提供することができる。特定の実施形態において、ステージからオーディオが受信される周波数よりも大きい周波数においてオーディオをレンダリングすることは、高品質のユーザ体験を保証するために重要であり得る。これは、ヘッドセットがオーディオフレーム間で動くときに特に重要であり得、サブフレームにおいてオーディオをレンダリングすることによって、オーディオが見掛け上、三次元空間にわたって飛ぶのを防止することができる。同様に、ヘッドセットは、例えば、限定ではなく、自己位置推定とマッピングの同時実行(SLAM)および慣性計測装置(IMU)データならびにユーザを取り巻く実世界および/または仮想環境の世界マップに基づいて、ヘッドセットと各オーディオ源との間の相対位置を考慮に入れて、適切な空間的手掛かりを用いてオーディオをレンダリングするすることができる。
【0020】
特定の実施形態において、人工現実オーディオアーキテクチャは、アプリケーションおよび/またはユーザに、待ち時間、電力、オーディオ品質、および他の要件を管理するとともに、複数の世界固定および/または頭部固定オーディオオブジェクトの複雑度を管理するオプションを提供することができる。特定の実施形態において、オーディオアーキテクチャは、データプライバシおよびセキュリティを可能にするために、オーディオドライバからのアプリケーションによるオーディオ生成および/またはオーディオ記録を隔離するための追加の処理を必要とする場合がある。限定ではなく一例として、オーディオアーキテクチャは、1つまたは複数のフィルタリング技法を利用して、オーディオデータがアプリケーション間で漏洩することを防止することができる。
【0021】
特定の実施形態において、世界固定オーディオオブジェクトは、アプリケーションによって提供されるロケーションメタデータおよびモノラルオーディオストリームに少なくとも部分的に基づいて生成することができる。世界固定オーディオオブジェクトのロケーションメタデータを、SLAM/IMUによって生成される世界メッシュデータとともに使用して、直接伝播インパルス応答および残響インパルス応答を生成することができる。直接電波インパルス応答および残響インパルス応答(IR)を、ヘッドセット関連伝達関数(HRTF)、ユーザロケーション、およびユーザ姿勢(同じくSLAM/IMUによって提供される)とともに使用して、正確な空間オーディオデータを作成することができる。
【0022】
本明細書において言及されているように、特定の世界固定オーディオオブジェクトを優先度付けすることができ、優先度のより低い世界固定オーディオオブジェクトは、球面調和オーディオとして処理することができる。特定の実施形態において、球面調和オーディオは、少なくとも忠実度要件および計算要件に応じて包含的に8~32チャネルを含む、マルチチャネルオーディオとして生成することができる。球面調和オーディオの1つの利点は、ヘッドセットとステージとの間の帯域幅を、球面調和オーディオ源の数に基づいて拡張しなくてもよいことである。加えて、ヘッドセット計算要件も、球面調和オーディオ源の数に基づいて拡張しなくてもよい。しかしながら、計算要件および帯域幅要件は、オーディオチャネルの数とともに増大し得る。特定の実施形態において、世界空間内のすべてのオーディオは、最大32チャネルにおいてレンダリングされ得る。オーディオのチャネルの最大数を設定することによって、球面調和オーディオは良好にスケーリングすることができ、背景オーディオの有益なフォーマットを提供することができる。
【0023】
特定の実施形態において、ステージ130は、ハードウェア、ソフトウェア、もしくは内蔵論理構成要素、または、適切な機能を実行することが可能な2つ以上の構成要素の組み合わせを含む、電子デバイスであってもよい。限定ではなく一例として、ステージ130は、デスクトップコンピュータ、ノートブックもしくはラップトップコンピュータ、ネットブック、タブレットコンピュータ、電子書籍リーダ、GPSデバイス、カメラ、個人情報端末(PDA)、手持ち式電子デバイス、携帯電話、スマートフォン、人工/仮想現実デバイス、他の適切な電子デバイス、または、人工/仮想現実デバイスと通信するための上記の任意の適切な組み合わせなどの、コンピュータシステムを含んでもよい。本開示は、任意の適切なステージを企図する。ステージ130は、ステージ130を使用するネットワークユーザが、ネットワーク150にアクセスすることを可能にすることができる。
【0024】
リンク150は、ステージ130をネットワーク110に接続することができる。特定の実施形態において、ステージ130は、リンク150およびネットワーク110を介して内部ネットワーク160に結合することができる。特定の実施形態において、ステージ130は、リンク150およびネットワーク110を介して外部ネットワーク170に結合することができる。本開示は、任意の適切なリンク150を企図する。特定の実施形態において、1つまたは複数のリンク150は、1つまたは複数の有線(例えば、デジタル加入者線(DSL)またはケーブルによるデータサービスインターフェース標準(DOCSIS)など)リンク、無線(例えば、Wi-Fiまたは世界規模相互運用マイクロ波アクセス(WiMAX)など)リンク、または光学(例えば、同期型光ネットワーク(SONET)または同期デジタル階層(SDH)など)リンクを含んでもよい。特定の実施形態において、1つまたは複数のリンク150は各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部、PSTNの一部、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、限定ではなくリンク150を含む別のリンク、または、2つ以上のそのようなリンク150の組み合わせを含んでもよい。リンク150は、必ずしもネットワーク環境110全体を通じて同じでなくてもよい。1つまたは複数の第1のリンク150は、1つまたは複数の事項において、1つまたは複数の第2のリンク150とは異なり得る。
【0025】
特定の実施形態において、内部ネットワーク160および/または外部ネットワーク170の各々は、1つまたは複数のタイプのサーバ、1つまたは複数のデータストア、限定ではないがAPIを含む1つまたは複数のインターフェース、1つまたは複数のウェブサービス、1つまたは複数のコンテンツソース、1つまたは複数のネットワーク、または任意の他の適切な構成要素を含んでもよい。内部ネットワーク160および/または外部ネットワーク170は、異なるエンティティによって動作され得る。しかしながら、特定の実施形態において、内部ネットワーク160および/または外部ネットワーク170は、ユーザにサービスを提供するために互いに連動して動作することができる。
【0026】
図2は、オーディオ配布のためのハードウェアおよびソフトウェアアーキテクチャを備える例示的なオーディオサービスアーキテクチャを示す。
図2は、1つまたは複数のアプリケーション220、222、224、226、オーディオサービス210、および1つまたは複数のドライバ230を備える例示的なオーディオアーキテクチャ200を示す。概して、オーディオサービス210は、アプリケーション220、222、224、226と、ドライバ230との間の仲介者として作用することができる。特定の実施形態において、ドライバ230は、デジタル信号プロセッサ(DSP)(図示せず)に結合することができる。オーディオサービス210は、アプリケーション220、222、224、226からのオーディオデータを、ドライバ230に配布する前に処理することができる。限定ではなく一例として、オーディオサービス210は、ステレオオーディオストリームを処理して、1つまたは複数の球面調和オーディオオブジェクトを生成することができ、1つまたは複数の世界固定オーディオオブジェクトを処理して、1つまたは複数の直接インパルス応答および1つまたは複数の残響インパルス応答のうちの1つまたは複数を生成することができる。
【0027】
1つまたは複数のアプリケーション220、222、224、226は、オーディオサービス210に結合することができ、オーディオサービス210は、1つまたは複数のドライバ230に結合することができる。オーディオサービス210は、1つまたは複数のアプリケーション220、222、224、226から1つまたは複数のアプリケーションオーディオオブジェクトを受信することができる。特定の実施形態において、オーディオサービス210はまた、限定ではないがメタデータを含む、1つまたは複数のアプリケーションオーディオオブジェクトと関連付けられるメタデータも受信することができる。オーディオサービスは、特定の1つまたは複数のオーディオオブジェクトを処理して、1つまたは複数のオーディオドライバに提供することができる単一の球面調和オーディオオブジェクトを生成することができる。同様に、オーディオサービス210は、1つまたは複数のオーディオオブジェクトを処理して、1つまたは複数のオーディオドライバ230に提供することができる単一の頭部固定オーディオオブジェクトを生成することができる。加えて、オーディオサービス210は、1つまたは複数のオーディオオブジェクトを処理して、すべて1つまたは複数のオーディオドライバ230に提供することができる、1つまたは複数のモノラルオーディオストリーム、1つまたは複数の直接インパルス応答、および1つまたは複数の残響インパルス応答のうちの1つまたは複数を生成することができる。オーディオサービス210はまた、IMUサービスおよび/またはSLAMサービス240から、限定ではないがメタデータを含むデータを受信することもできる。SLAM/IMUデータは、1つもしくは複数の世界固定オーディオオブジェクトおよび/または1つもしくは複数のインパルス応答の処理の一部として組み込むことができる。
【0028】
特定の実施形態において、オーディオサービス210は、伝搬ルータ212を備えることができる。伝搬ルータ212は、1つまたは複数のソフトウェアミキサ214を備えることができる。限定ではなく一例として、伝搬ルータ212は、1つまたは複数のアプリケーションから受信されるオーディオデータを混合して、1つまたは複数の頭部固定オーディオオブジェクトオブジェクト254を生成することができる。
図2において、伝搬ルータ212は、アプリケーション220、222から受信されるオーディオデータを混合する(アプリケーション220からのオーディオデータおよびアプリケーション222からのオーディオデータをミキサ214において合成することによって示されている)。伝搬ルータ212は、SLAMサービス、IMUサービス240のうちの1つまたは複数からのデータ、および/またはロケーションメタデータに少なくとも部分的に基づいて、世界固定オーディオ250に対応する直接インパルス応答272、残響インパルス応答274、および、モノラルオーディオストリーム270を含むデータを生成することができる。特定の実施形態において、伝搬ルータ212は、オーディオオブジェクトを混合し、および/または、オーディオオブジェクトをオーディオドライバ230に配布する役割を担うことができる。限定ではなく一例として、伝搬ルータ212は、単一の世界固定オーディオオブジェクトを作成するために同様の世界ロケーションを占有する2つの別個のオブジェクトから発するオーディオデータを混合することができる。
【0029】
特定の実施形態において、世界固定オーディオオブジェクトの数が、オーディオサービス210の1つまたは複数の構成設定によって許容される世界固定オーディオオブジェクトの最大数を超える場合、伝搬ルータ212は、特定のアプリケーションオーディオオブジェクトのみを処理して、1つまたは複数のオーディオドライバ230に配布するための世界固定オーディオ250をレンダリングすることができる。残りの優先度のより低いアプリケーションオーディオオブジェクトは、代わりに、球面調和オーディオ252として処理することができる。限定ではなく一例として、アプリケーション220によって提供される優先度の高いアプリケーションオーディオオブジェクトは、伝搬ルータ212に提供され、処理されて、世界固定オーディオ250をレンダリングするためにドライバ230に提供することができる、直接IR272、残響IR274、およびモノラルオーディオ270を含むデータを生成することができる。対照的に、アプリケーション220からの優先度のより低いアプリケーションオーディオオブジェクトは、ドライバ230に提供される前に、伝搬ルータ212によってソフトウェアミキサ214にルーティングされて、アプリケーション222などの1つまたは複数の他のアプリケーションからのアプリケーションオーディオオブジェクトと組み合わされて、球面調和オーディオ252を生成することができる。
【0030】
1つまたは複数のアプリケーション220、222、224、226はまた、ドライバ230によってキャプチャされ、記録を可能にするためにオーディオサービス210によって渡されるオーディオデータを受信することもできる。オーディオサービス210は、1つまたは複数のドライバ230からのオーディオ記録データの受信と、1つまたは複数のアプリケーション220、222、224、226へのオーディオ記録データの配布とを協調させることができる。特定の実施形態において、オーディオサービス210は、例えば、限定ではなく、アプリケーション226に提供されるオーディオ記録データのために
図2に示すようにオーディオデータをビームフォーミングすることによって、オーディオ記録データを処理することができる。1つまたは複数のドライバ230は、限定ではなく、発話デバイス260、ボイスオーバIP(VoIP)デバイス262、および一般記録デバイス264を含む、様々な記録タイプを記録するための1つまたは複数のデバイスを暴露することができる。特定の実施形態において、発話デバイス260およびVoIPデバイス262は、モノラルデバイスまたはステレオデバイスであってもよく、一方、一般記録デバイス264は、モノラルデバイスとしてビームフォーミングされたオーディオを有効化するためにオーディオサービス210に提供されるマルチチャネルデバイス(例えば、8チャネルデバイス)であってもよい。限定ではなく一例として、アプリケーション226は、追加の処理を行わずにオーディオデータを受信するアプリケーション228とは異なり、モノラルオーディオデータストリームを受信するために複数のマイクロフォンを特定のロケーションへとビームフォーミングすることを、オーディオサービスに要求することができるが、ビームフォーミングおよび他の処理は、待ち時間を増大させ、追加の計算リソースを必要とする場合がある。
【0031】
ドライバ230に結合されているDSP(図示せず)は、規則的な時間間隔をおいてフレームを受信することを期待し得る。規則的な時間間隔は、DSPフレームレートに対応することができる。DSPフレームレートは、オーディオサービス210が、ダイレクトメモリアクセス、「ドアベル/メールボックス」転送、または当該技術分野において知られている他のタイプの転送を介してドライバ230への転送を開始する速度であり得る。ドライバ230は、1つまたは複数のDSPフレームの待ち時間に遭遇し得る。限定ではなく一例として、待ち時間は、チューニングの結果として発生し得る。ドライバ230はまた、伝搬ルータ212の混合時間と関連付けられる待ち時間にも遭遇し得る。DSPフレームレート、および対応するDSPフレーム時間は、ドライババッファ内の各フレームのサイズに対応し得る。
【0032】
図3は、オーディオデータをレンダリングするための例示的なオーディオサービスアーキテクチャを示す。例示的なオーディオサービスアーキテクチャは、アプリケーション320、オーディオサービス310、およびドライバ330を備えることができる。アプリケーション320は、ヘッダキュー322、パラメータキュー324、およびオーディオバッファ340を備えることができ、キュー322、324は、オーディオサービス310と共有することができ、オーディオバッファ340は、オーディオサービス310とドライバ330の両方と共有することができる。共有される要素は、
図3に、アプリケーション320、オーディオサービス310、およびドライバ330の重なり合うドメインを示す陰影として示されている。ドライバ330は、2つのオーディオバッファ332、340を備えることができ、混合IOバッファ332は、ドライバ330およびオーディオサービス310と共有することができ、アプリケーションIOバッファ340は、オーディオサービス310とアプリケーション320の両方と共有することができる。ドライバ330は、両方ともオーディオサービスと共有することができる、直接インパルス応答バッファ334および残響インパルス応答バッファ336をさらに備えることができる。共有アーキテクチャ要素に加えて、オーディオサービス310は、伝搬ルータ312をさらに備えることができる。伝搬ルータ312は、インパルス応答生成器314を備えることができる。
図3に示すようにアーキテクチャ構成要素の間でバッファを共有することによって、仮想メモリオブジェクト(VMO)を使用することで、待ち時間をより短くし、電力消費をより低くすることを可能にすることができるゼロデータ転送および/または他のデータ転送を可能にすることが可能になり得る。
【0033】
頭部固定オーディオおよび球面調和オーディオデバイスは、単一のアプリケーションによって排他的に使用されず、パケットサイズは、システムによってロックされ得る。特定の実施形態において、すべてのアプリケーションは、所定のタイムスタンプを使用してシステムによって設定されるパケットサイズを参照し得る。タイムスタンプは、オーディオの提示時間を調整するために使用することができる。特定の実施形態において、アプリケーションは、オーディオパケットにタイムスタンプを付して、オーディオ提示の精細な制御を可能にすることができる。特定の実施形態において、オーディオサービスは、1つまたは複数のアプリケーションの代わりにオーディオパケットにタイムスタンプを付すことができる。
【0034】
図4は、オーディオをレンダリングするための例示的な方法400を示す。方法400は、ステップ410において開始することができ、ドライバ330およびオーディオサービス310が初期化され得る。初期化中、ドライバ330およびオーディオサービス310は、共有混合オーディオデータバッファ332、直接インパルス応答バッファ334および残響インパルス応答バッファ336を構成することができる。混合オーディオバッファ332は、所定のサイズに割り当てることができ、DSPフレームサイズの倍数にさらにチャンクすることができる。
【0035】
ステップ415において、アプリケーション320は、ヘッダおよびパラメータキュー322、324を共有することを可能にするために、オーディオサービス310に登録することによって、オーディオデータを提供する準備をすることができる。加えて、アプリケーション320、オーディオサービス310、およびドライバ330によってアクセス可能であるオーディオバッファ340を割り当てることができる。単純にするために、当該オーディオバッファ340は、オーディオバッファ332の整数の倍数であり得る。アプリケーションVMOは、動作モードに基づいてオーディオバッファ340をパケットにチャンクすることができ、チャンクは、単純にするためにDSPフレーム時間の倍数に対応することができる。限定ではなく一例として、
図3に示すパケットおよびフレームのサイズは同一である。オーディオパケットは、ペイロードまたはオーディオデータのブロックを含むことができる。特定の実施形態において、オーディオパケットは、オーディオデータの複数のフレームを含むことができる。限定ではなく一例として、1つのオーディオフレームは、n個のオーディオサンプルを含むことができ、オーディオパケットは、m個のフレームを含むことができ、nおよびmは特定の整数値を表し、mおよびnは等しい値であってもよく、または、等しい値でなくてもよい。
【0036】
ステップ420において、アプリケーション320は、オーディオデータをストリーミングする準備ができ、または、安定ストリーミング状態にあり、オーディオデータを、オーディオバッファ332に記憶することができるパケットにコピーすることができる。オーディオデータがバッファ332に記憶されると、オーディオサービス310とドライバ330の両方が、必要に応じてオーディオデータにアクセスすることができる。
【0037】
ステップ425において、アプリケーション320は、ヘッダキュー322内の特定のインデックスにおいてヘッダを作成し、同じインデックスにおいてパラメータキュー324に任意のパラメータを追加することができる。特定の実施形態において、パラメータキュー324内のパラメータが変化しない場合、当該インデックスにおけるパラメータキュー324は、パラメータに変化が無いことを示す所定の変数に設定することができる。
【0038】
ステップ430において、アプリケーション320は、パケットの準備ができたときにオーディオサービス310に通知することができる。限定ではなく一例として、人工現実デバイスは、通知は、通知/ドアベルを通じて行うことができる。特定の実施形態において、通知後、アプリケーション320は、ヘッダキュー322内のヘッダ、パラメータキュー324内のパラメータ、または、オーディオバッファ340のオーディオパケット内のオーディオデータを変更しなくてもよい。
【0039】
ステップ435において、オーディオサービス310は、アプリケーション320から受信されるオーディオデータおよびパラメータを伝搬ルータ312に提供して、IR生成器314を使用したインパルス応答の処理を可能にすることができる。オーディオサービス310は、DSPフレーム間は低電力モードにすることができる。オーディオサービス310は、アプリケーション320による通知を受けて当該低電力モードを脱し、現在のDSPフレーム時間と次のDSPフレーム時間との間の提示時間を用いてオーディオデータの処理を開始することができる。特定の実施形態において、伝搬ルータ312は、オーディオデータがドライバ330によって直接アクセスされるべきであるか否か、オーディオデータが別のアプリケーションのオーディオと混合されるべきであるか否か、または、オーディオデータが、世界固定オーディオオブジェクトの数および/もしくはオーディオデータ優先度に基づいて球面調和オーディオとして処理されるべきであるか否かを判定することができる。オーディオデータが混合または処理されるべきである場合、オーディオサービス310は、混合または処理されたオーディオデータをオーディオバッファ332にコピーすることができるように、これらのトランザクションを優先度付けすることができる。オーディオを処理および/または混合することによって、待ち時間が導入され得る。
【0040】
ステップ440において、オーディオサービス310は、伝搬ルータからのIR係数を、
図3に示す直接IRバッファ334および残響IRバッファ336に即座にコピーすることができる。IR係数を即座にデータ転送することによって、待ち時間を低減することができる。
【0041】
ステップ445において、オーディオサービス310は、ダイレクトメモリアクセスを介して、または、ドアベル/メールボックスメカニズムを介して、混合オーディオバッファ332またはアプリケーションオーディオバッファ340からのオーディオデータの転送を、ドライバ330に通知することができる。この時点において、オーディオサービス310および/または伝搬ルータ312は、オーディオバッファ332内のオーディオデータを変更しなくてもよい。
【0042】
ステップ450において、オーディオサービス310からドライバ330へのデータ転送が完了し、オーディオサービス310は、オーディオデータが記憶されたオーディオバッファ332内のロケーションに安全に書き込むことができるという通知を受信することができる。
【0043】
ステップ455において、オーディオサービス310は、オーディオサービス310が十分な通知を受信したときにオーディオデータの転送に成功したことをアプリケーション320に通知することができる。特定の実施形態において、2つ以上の通知を使用することによって、様々なパケットサイズをサポートすることができる。限定ではなく一例として、アプリケーション、サービス、またはドライバのうちの1つまたは複数が、アプリケーション、サービス、またはドライバ内で設定されているオプションまたは要件に基づいて、異なるパケットサイズを使用することが有益であり得る。特定の実施形態において、パケットサイズをより大きくすることによって、アプリケーション、サービス、またはドライバが、例えば、限定ではなく、より長い期間にわたって低電力モードにおいて動作することを可能にし、以て電力消費を低減するために、より低い頻度でより大きいオーディオパケットとインタラクトすることが可能になり得る。特定の実施形態において、パケットサイズをより小さくすることによって、アプリケーション、サービス、またはドライバが、例えば、限定ではなく、ユーザのより応答性の高いオーディオ体験を可能にするために、より高い頻度でより小さいオーディオパケットとインタラクトすることが可能になり得る。例えば、アプリケーションは、10Xのパケットサイズを使用し得、一方で、オーディオサービスは5Xのパケットサイズを使用し得、オーディオドライバはXのパケットサイズを使用し得る。当該例において、オーディオドライバは、応答性オーディオを保証するために各パケットを処理するように連続的に動作することができ、一方で、アプリケーションは、オーディオドライバが10個のオーディオパケットを処理するまで、低電力モードにおいて動作することによって、電力消費を低減することができる。特定の実施形態において、オーディオデータの所有者(オーディオバッファ332についてはドライバ330であり得、オーディオバッファ340についてはオーディオサービス310であり得る)は、フレーム/パケットをゼロ化すると期待される。
【0044】
アプリケーション320が、オーディオデータをドライバに転送するのに成功したことを通知された後、アプリケーション320は、ステップ420に戻って、レンダリングのための追加のオーディオデータを提供することができる。安定状態において、アプリケーション320は、オーディオパケットを充填し、パケットが処理されるまで待ち、次いで、再生されるオーディオデータをパケットに再充填することができる。
【0045】
特定の実施形態は、適切な場合に、
図4の方法の1つまたは複数のステップを繰り返すことができる。本開示は、
図4の方法の特定のステップを、特定の順序で行われるものとして記載および例示しているが、本開示は、
図4の方法の任意の適切なステップが、任意の適切な順序で行われることを企図している。さらに、本開示は、
図4の方法の特定のステップを含む、オーディオをレンダリングするための例示的な方法を記載および例示しているが、本開示は、適切な場合に、
図4の方法のステップのすべてを含み得るか、一部を含み得るか、一切含み得ない、任意の適切なステップを含む、オーディオをレンダリングするための任意の適切な方法を企図している。さらに、本開示は、
図4の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを記載および例示しているが、本開示は、
図4の方法の任意の適切なステップを実行する任意の適切な構成要素、デバイス、またはシステムの任意の適切な組み合わせを企図している。
【0046】
球面調和オーディオについて、伝搬ルータは、ストリームを球面調和オーディオに変換すること、および、オーディオデータを他の球面調和オーディオストリームと混合することを担い得る。頭部固定オーディオについて、伝搬ルータは、任意のアクティブなステレオストリーム、球面調和オーディオストリーム(HRTFの適用後)、およびオブジェクトベースのストリーム(空間レンダリングおよびHRTFの適用後)を混合することができる。伝搬ルータはまた、混合後の頭部固定オーディオを混合IOバッファにコピーすることもできる。さらに、伝搬ルータは、複数のストリームを混合して単一のストリームにして、オーディオドライバに提示されるオーディオストリームの数を限定することができる。パケットサイズがフレームサイズの整数の倍数であり、オーディオサービス310およびドライバ330によって暴露される待ち時間が単一のフレーム時間を超えるとき、ストリームを混合するのに十分なデータがあり得る。直接インパルス応答および残響インパルス応答バッファは、頭部固定オーディオには使用されなくてもよいことに留意されたい。
【0047】
図5は、オーディオデータを記録するための例示的なオーディオサービスアーキテクチャを示す。例示的なオーディオサービスアーキテクチャは、アプリケーション520、525、オーディオサービス510、およびドライバ530を備える。第1のアプリケーション520は、第1のオーディオバッファ522を備え、第1のオーディオバッファ522は、オーディオサービス510と共有され、第2のアプリケーション525は、第2のオーディオバッファ527を備え、第2のオーディオバッファ527は、オーディオサービス510と共有される。ドライバ530およびオーディオサービス510は、第3のオーディオバッファ532を共有することができる。
図5に示すようにアーキテクチャ構成要素の間でバッファを共有することによって、VMOを使用することで、待ち時間をより短くし、電力消費をより低くすることを可能にすることができるゼロデータ転送および/または他のデータ転送を可能にすることが可能になり得る。
【0048】
図6は、オーディオを記録するための例示的な方法600を示す。方法600は、ステップ610において開始することができ、初期化中、ドライバ530は、オーディオバッファ532を、VMOにマッピングすることができるオーディオデータに割り当てることができる。オーディオバッファ532は、オーディオサービス510と共有することができることに留意されたい。当該バッファ532は、DSPフレームサイズに対応するフレームにチャンクすることができる。
【0049】
ステップ615において、アプリケーション520は、オーディオの記録を開始する準備ができ得、オーディオサービス510に登録して、オーディオサービス510と共有することができる、VMOにマッピングすることができるオーディオデータのためのオーディオバッファ522を作成する。各アプリケーションは、アプリケーションにとって許容できる待ち時間に少なくとも部分的に基づいて、アプリケーション自体のオーディオバッファサイズを指定することができる。特定の実施形態において、アプリケーションは、DSPフレームサイズの整数の倍数であるバッファサイズを割り当てることができる。
図5において、アプリケーション520は、より大きいバッファ522をあり当てられており、一方、アプリケーション525は、より小さいバッファ527を割り当てられている。限定ではなく一例として、より大きいバッファは、アプリケーションが、より長い期間にわたって低電力モードにおいて動作し、低電力モードに戻る前に寄り多くのオーディオデータを処理することを可能にすることによって、電力消費を低減することを可能にすることができ、一方で、より小さいバッファは、オーディオ処理の待ち時間を短くすることができる。
【0050】
ステップ620において、オーディオサービス510は、少なくとも1つのアプリケーション520、525がオーディオサービス510に登録して、オーディオデータの記録を可能にした後に、ドライバ530を用いてフレームを待ち行列に入れることを開始することができる。
図5に示すように、アプリケーション520、525の両方が、オーディオサービス510と共有されるように構成されたオーディオバッファ522、527によって示されるように、オーディオサービス510にともに登録されている。
【0051】
ステップ625において、オーディオサービス510は、ドライババッファ532がオーディオデータの全フレームを受信したときに、通知を受信することができる。
【0052】
ステップ630において、オーディオサービス510は、オーディオバッファ532がドライバ530によって充填されたことを受けて、すべてのデータがキャプチャされることを保証するために、次のフレームを待ち行列に入れることができる。特定の実施形態において、オーディオサービス510が待ち行列に入れることは、オーディオデータ損失を防止するために即座に行うことができる。
【0053】
ステップ635において、オーディオサービス510は、オーディオバッファ532からアプリケーションバッファ522、527の両方にデータを転送することができる。
【0054】
ステップ640において、オーディオサービス510は、アプリケーションバッファ522、527にドライババッファ532からのオーディオデータが充填されたときに、アプリケーション520、525に通知することができる。オーディオデータがアプリケーションバッファ520、525に転送されたことを受けて、アプリケーション520、525は、オーディオデータを所望に応じて処理して、記録を生成することができる。特定の実施形態において、アプリケーション520、525は、一般記録のために記録されたオーディオデータをビームフォーミングして、特定のオーディオ源を他よりも強調することを試みることを可能にすることができる。限定ではなく一例として、デフォルト記録オプションは、360度のオーディオデータをキャプチャすることを含むことができ、一方で、ビームフォーミングされたオーディオの記録は、例えば、車両の交通などの背景オーディオよりも優先して、例えば、鳥の鳴き声などの単一のオーディオ源からのオーディオをキャプチャすることを試みることができる。ビームフォーマは、アプリケーションのコンテキストにおいて作動しているものであり得、ヘルパー機能として作用することができる。
【0055】
特定の実施形態は、適切な場合に、
図6の方法の1つまたは複数のステップを繰り返すことができる。本開示は、
図6の方法の特定のステップを、特定の順序で行われるものとして記載および例示しているが、本開示は、
図6の方法の任意の適切なステップが、任意の適切な順序で行われることを企図している。さらに、本開示は、
図6の方法の特定のステップを含む、オーディオをレンダリングするための例示的な方法を記載および例示しているが、本開示は、適切な場合に、
図6の方法のステップのすべてを含み得るか、一部を含み得るか、一切含み得ない、任意の適切なステップを含む、オーディオをレンダリングするための任意の適切な方法を企図している。さらに、本開示は、
図6の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを記載および例示しているが、本開示は、
図6の方法の任意の適切なステップを実行する任意の適切な構成要素、デバイス、またはシステムの任意の適切な組み合わせを企図している。
【0056】
特定の実施形態において、各記録モードは、アプリケーションにとって利用可能なデータに対する高レベルの理解および制御を可能にするための独立した許可および/または機能を有し得る。特定の実施形態において、特定のアプリケーションは、VoIPおよび発話記録モードを使用することを可能にされ得、一方、他のアプリケーションは当該モードの使用を可能にされない。特定の実施形態において、特定のアプリケーションが、適切な許可によって、VoIPおよび発話記録モードを使用することを可能にされ得る。
【0057】
複数のマイクロフォンが、限定ではなく、発話記録、VoIP記録、環境記録、および一般記録を含む、複数の記録モードをサポートすることができる。発話記録は、自動発話認識をサポートし、モノラル低ビットレートオーディオデータを含むことができ、ヘッドセット上でのビームフォーミングを可能にすることができる。VoIP記録は、ヘッドセット上での最適化された音声通信およびビームフォーミングをサポートすることができる。環境記録は、記録中のエコーキャンセルをサポートすることができ、ユーザの音声が記録されない記録を可能にすることができる。一般記録は、複数のマイクロフォンおよびループバックを使用することを含むことができ、より高いビットレートを可能にすることができ、ソフトウェアにおいて適用される1つまたは複数のサブモードを含むことができる。サブモードは、マルチチャネル生オーディオ記録、ループバックへのアクセス、固定および/またはアプリケーション定義のビームフォーミング、ならびに、球面調和オーディオ記録および/または空間オーディオ記録を含むことができる。マルチチャネル生オーディオ記録は、内部環境および工場較正に有益であり得る。ループバックへのアクセスは、内部開発、工場較正、およびエコー排除に有益であり得る。特定の実施形態において、オーディオアーキテクチャは、限定ではなく、ノイズキャンセル、視標追跡ビームフォーミングとして実施される「スーパーヒューマンヒアリング」を含む、ルーティングのみの設定を可能にすることができる。
【0058】
例示的なオーディオアーキテクチャは、様々なオーディオストリームを記録およびレンダリングすることが可能であり得る。限定ではなく一例として、オーディオストリームは、生マイクロフォンオーディオ、装着者発話ビームフォーマ出力、VoIP、および/または自動発話認識に最適化されたオーディオデータ、環境球面調和オーディオ記録、環境ビームフォーミングオーディオ記録、エコー参照および/またはレンダループバック、物体ベースのオーディオレンダストリーム、球面調和オーディオレンダリングストリーム、頭部固定オーディオストリーム、ならびに世界固定オーディオストリームを含むことができる。
【0059】
特定の実施形態において、オーディオアーキテクチャは、複数の分散された処理構成要素によって共有される同期クロック基準および時間を含むことができる。特定の実施形態において、VMOは、同期クロック基準に少なくとも部分的に基づいて、アプリケーション、オーディオサービス、およびドライバの間でデータ転送を協調させることができる。オーディオアーキテクチャによるオーディオレンダリングは、実世界要素と同期することができる。特定の実施形態において、オーディオデータには、実世界要素との同期、および、複数のセンサまたは複数のアプリケーションからのオーディオデータ間の同期を可能にするために、提示または記録時間によってタイムスタンプを付すことができる。特定の実施形態において、記録オーディオデータとレンダオーディオデータの両方は、限定ではなく、ストリームID、提示または記録時間、連続番号、および、例えば、限定ではなく、無音フレームフラグなどの1つまたは複数のフラグを含むヘッダメタデータを有するアーキテクチャ構成要素の間で進行し得る。特定の実施形態において、レンダオーディオパケットは、限定ではなく、ゲインおよびピッチシフトパラメータを含む1つまたは複数のパラメータを含むことができる。
【0060】
オーディオサービスは、限定ではなく、セキュリティ、グローバルゲイン、およびオーディオデータルーティングを含むオーディオポリシを設定および施行することを担い得る。特定の実施形態において、オーディオサービスは、限定ではなく、オーディオ再生、ユーザの高品質(VoIP/人間の聴き手)オーディオ記録、環境の高品質オーディオ記録、ユーザの高品質(ASR/機械の聴き手)、エコー参照オーディオストリーム、およびデバッグオーディオストリームのための許可および/または機能を含む、1つまたは複数の精細な許可および機能を提供することができる。特定の実施形態において、環境の高品質オーディオ記録、ユーザの高品質(ASR/機械の聴き手)発話記録は、レンダリングされたオーディオコンテンツエコーを含み得る。特定の実施形態において、エコー参照ストリームを使用して、ASR結果を改善することができる。特定の実施形態において、デバッグストリームは、生マイクロフォンオーディオデータ、エコー参照、および様々なデバッグタップ点のうちの1つまたは複数を含むことができる。
【0061】
セキュリティポリシを適用した後、オーディオサービスは、依然として、複数のアプリケーションがオーディオデータを記録することを可能にすることができる。限定ではなく一例として、マイクロフォンを使用して、第2のアプリケーションによるVoIP呼び出しのための音声トリガを可能にするためのオーディオを同時に記録しながら、1つのアプリケーションの音声IDを処理するためのオーディオを記録することができる。セキュリティ目的で、アプリケーションは、最終的な混合オーディオデータが、1つまたは複数の他のアプリケーションによって提供されるオーディオデータを含む可能性があるとき、ドライバに提供される最終的な混合オーディオデータを見ることを可能にされないことができる。この制限は、セキュアまたはプライベートなオーディオデータがアプリケーション間で漏洩するのを防止することができる。
【0062】
オーディオデータは、オーディオサービスアプリケーションプログラムインターフェース(API)によって推奨されるパケットサイズに従ってチャンクすることができる。オーディオアーキテクチャのための電力は、オーディオサービスの始動間隔に影響を与え得る、オーディオバッファに記憶されるパケットの数、すなわち、バッファ深度、および、パケットサイズの関数であり得る。特定の実施形態において、オーディオサービスAPIは、限定ではなく、バッファサイズ要件および使用事例を含む考慮事項に基づいて、最小および最大チャンクサイズに関する案内を提供することができる。限定ではなく一例として、当該APIは、一般目的使用、最小待ち時間、および最小電力消費のための最適化されたチャンクプリセットを識別することができる。オーディオサービスAPIはまた、バッファ深度およびパケットサイズがバッファリング遅延に及ぼす影響の指標を提供することもできる。限定ではなく一例として、APIは、当該構成パラメータに基づいて、アプリケーションによるオーディオデータの提示と、ドライバにおけるオーディオデータの再生との間の遅延の指標を提供することができる。
【0063】
限定ではなく一例として、オーディオサービスは、他のセンサ入力と同期されたオーディオなどの、非常に応答性の高いアプリケーションに対するオーディオの不調を回避する最小バッファリング構成を推奨することができる。限定ではなく一例として、オーディオサービスは、終日の音楽再生をサポートするための低電力消費を可能にするために、より長い間隔にわたってデューティサイクルを小さくすることによって、再生パケットをより大きくし、オーディオサービス始動間の時間をより長くすることを推奨することができる。限定ではなく別の例として、オーディオサービスは、頭部固定オーディオデータおよび球面調和オーディオデータなどの非排他的なオーディオデータをサポートするための、電力と待ち時間の両方に関する妥協をサポートするために、固定パケットサイズを推奨することができる。
【0064】
記録シナリオについて、オーディオサービスは、より低レベルのタイムスタンプを付された活動の検出、および、任意選択的にタイムスタンプを付された加速度計データを有する信頼度データを活用することができる。オーディオサービスは、計算要件を追加して信頼度データを改善するか、または、より低レベルのタイムスタンプを付された活動の検出、信頼度データ、および、任意選択のタイムスタンプを付された加速度計データを破棄するオプションを、アプリケーションにさらに提供することができる。
【0065】
本明細書において言及されているように、オーディオアーキテクチャは、VMOを利用して、ゼロデータ転送、および/または他のデータ転送を可能にすることができる。当該オーディオアーキテクチャの1つの利点は、オーディオポリシを施行しながら、オーディオおよび他のデータの冗長なコピーおよび処理が制限されることであり得る。オーディオおよび他のデータに対してタイムスタンプを一貫して使用することによって、性能をさらに改善するために、再処理されるのではなく、処理が再使用されることが可能になり得る。
【0066】
特定の実施形態において、オーディオアーキテクチャは、データを処理するためにHRTFを使用することができる。HRTFは、限定ではなく、ユーザの耳および/または頭部の3Dモデルを含む、ユーザに関する個人データを含む場合があるため、オーディオアーキテクチャは、HRTFを、バイオメトリックデータ、および、追加のセキュリティ予防策、ポリシ、および手順を必要とし得る、個人を特定できる情報として扱い得る。
【0067】
本明細書において言及されているように、オーディオアーキテクチャは、待ち時間および電力要件における適切な性能を保証するために、世界固定オーディオオブジェクトの数を、8個または16個の世界固定オーディオオブジェクトなどの、特定の数に制限することを含むことができる。当該オーディオサービスアーキテクチャの利点は、各々がオーディオのレンダリングを試みる複数のアプリケーションをサポートすることができる。オーディオアーキテクチャは、さらに、オーディオの記録を試みる多数のアプリケーションをサポートすることができ、リアルタイムオーディオ記録をサポートすることができる。オーディオアーキテクチャは、多数のアプリケーションへのオーディオデータの転送、および、データ転送成功を受けたアプリケーションへの通知の提供もサポートすることができる。
【0068】
図7は、例示的な伝搬ルータアーキテクチャを示す。オーディオアーキテクチャの特定の実施形態において、ドライバ730は、世界固定オーディオをレンダリングするためのモノラルオーディオストリーム770、直接伝播インパルス応答772、および残響インパルス応答774を受信することができる。伝搬ルータ712は、オーディオ源722の世界固定ロケーションを、SLAM/IMUによって生成されるメッシュ720とともに使用して、ドライバ730に提供するための直接伝播インパルス応答772および残響インパルス応答774を生成することができる。特定の実施形態において、ロケーションデータは、アプリケーションによって提供され得る。インパルス応答772、774は、正確な空間オーディオを作成するために、ユーザロケーションおよびユーザ姿勢(同じくSLAM/IMUから受信される)ならびにHRTFと組み合わせることができる。世界固定オーディオオブジェクトと関連付けられる空間オーディオの生成は、計算集約的であり得る。したがって、本明細書において言及されているように、世界固定オーディオオブジェクトの数が制限され得る。
【0069】
図8は、例示的なコンピュータシステム800を示す。特定の実施形態において、1つまたは複数のコンピュータシステム800は、本明細書において記載または例示されている1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態において、1つまたは複数のコンピュータシステム800は、本明細書において記載または例示されている機能を提供する。特定の実施形態において、1つまたは複数のコンピュータシステム800上で作動しているソフトウェアは、本明細書において記載もしくは例示されている1つまたは複数の方法の1つまたは複数のステップを実施するか、または、本明細書において記載もしくは例示されている機能を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム800の1つまたは複数の部分を含む。本明細書において、適切な場合、コンピュータシステムへの参照は、コンピューティングデバイスを包含し得、逆も真である。さらに、適切な場合、コンピュータシステムへの参照は、1つまたは複数のコンピューティングシステムを包含し得る。
【0070】
本開示は、任意の適切な数のコンピュータシステム800を企図する。本開示は、任意の適切な物理的形態をとるコンピュータシステム800を企図する。限定ではなく一例として、コンピュータシステム800は、内蔵コンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、個人情報端末(PDA)、サーバ、タブレットコンピュータシステム、人工/仮想現実デバイス、または、上記のうちの2つ以上の組み合わせであってもよい。適切な場合、コンピュータシステム800は、1つまたは複数のコンピュータシステム800を含んでもよく、単一もしくは分散されてもよく、複数のロケーションにまたがってもよく、複数の機械にまたがってもよく、複数のデータセンターにまたがってもよく、または、1つまたは複数のネットワーク内の1つまたは複数のクラウド構成要素を含み得るクラウド内に存在してもよい。適切な場合、1つまたは複数のコンピュータシステム800は、実質的な空間的または時間的制限なしに、本明細書において記載または例示されている1つまたは複数の方法の1つまたは複数のステップを実施することができる。限定ではなく一例として、1つまたは複数のコンピュータシステム800は、本明細書において記載または例示されている1つまたは複数の方法の1つまたは複数のステップを、リアルタイムでまたはバッチモードにおいて実施することができる。1つまたは複数のコンピュータシステム800は、適切な場合、本明細書において記載または例示されている1つまたは複数の方法の1つまたは複数のステップを、異なる時点においてまたは異なるロケーションにおいて実施することができる。
【0071】
特定の実施形態において、コンピュータシステム800は、プロセッサ802、メモリ804、記憶装置806、入出力(I/O)インターフェース808、通信インターフェース810、およびバス812を含む。本開示は、特定の構成にある特定の数の特定の構成要素を有する特定のコンピュータシステムを記載および例示しているが、本開示は、任意の適切な構成にある任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータシステムを企図している。
【0072】
特定の実施形態において、プロセッサ802は、コンピュータプログラムを構成する命令などの命令を実行するためのハードウェアを含む。限定ではなく一例として、命令を実行するために、プロセッサ802は、内部レジスタ、内部キャッシュ、メモリ804、または記憶装置806から命令を取り出し(またはフェッチし)、命令を復号および実行し、次いで、1つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ804、または記憶装置806に書き込むことができる。特定の実施形態において、プロセッサ802は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ802を企図している。限定ではなく一例として、プロセッサ802は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーションルックアサイドバッファ(TLB)を含むことができる。命令キャッシュ内の命令は、メモリ804または記憶装置806内の命令のコピーとすることができ、命令キャッシュは、プロセッサ802による当該命令の取り出しを加速させることができる。プロセッサ802において実行する命令が、プロセッサ802において実行する後続の命令によるアクセスまたはメモリ804もしくは記憶装置806への書き込みのための、プロセッサ802において実行されている以前の命令の結果、あるいは、他の適切なデータに対して動作するために、データキャッシュ内のデータは、メモリ804または記憶装置806内のデータのコピーとすることができる。データキャッシュは、プロセッサ802による読み出しまたは書き込み動作を加速させることができる。TLBは、プロセッサ802の仮想アドレス変換を加速させることができる。特定の実施形態において、プロセッサ802は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ802を企図している。適切な場合、プロセッサ802は、1つまたは複数の算術論理演算ユニット(ALU)を含んでもよく、マルチコアプロセッサであってもよく、または、1つまたは複数のプロセッサ802を含んでもよい。本開示は、特定のプロセッサを記載および例示しているが、本開示は、任意の適切なプロセッサを企図している。
【0073】
特定の実施形態において、メモリ804は、プロセッサ802が実行するための命令またはプロセッサ802が動作するためのデータを記憶するための主記憶装置を含む。限定ではなく一例として、コンピュータシステム800は、記憶装置806または別のソース(例えば、別のコンピュータシステム800など)からメモリ804へと命令をロードすることができる。次いで、プロセッサ802は、メモリ804から内部レジスタまたは内部キャッシュへと命令をロードすることができる。命令を実行するために、プロセッサ802は、内部レジスタまたは内部キャッシュから命令を取り出し、命令を復号することができる。命令の実行中または実行後、プロセッサ802は、1つまたは複数の結果(中間または最終結果であり得る)を内部レジスタまたは内部キャッシュに書き込むことができる。次いで、プロセッサ802は、当該結果のうちの1つまたは複数をメモリ804に書き込むことができる。特定の実施形態において、プロセッサ802は、1つまたは複数の内部レジスタもしくは内部キャッシュまたはメモリ804内の(記憶装置806または他の場所とは対照的に)命令のみを実行し、1つまたは複数の内部レジスタもしくは内部キャッシュまたはメモリ804内の(記憶装置806または他の場所とは対照的に)データに対してのみ動作する。1つまたは複数のメモリバス(各々がアドレスバスおよびデータバスを含み得る)は、プロセッサ802をメモリ804に結合することができる。バス812は、後述するように、1つまたは複数のメモリバスを含んでもよい。特定の実施形態において、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ802とメモリ804との間に存在し、プロセッサ802似よって要求されるメモリ804へのアクセスを容易にする。特定の実施形態において、メモリ804は、ランダムアクセスメモリ(RAM)を含む。当該RAMは、適切な場合、揮発性メモリであってもよい。適切な場合、当該RAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってもよい。さらに、適切な場合、当該RAMは、シングルポートまたはマルチポートRAMであってもよい。本開示は、任意の適切なRAMを企図する。メモリ804は、適切な場合、1つまたは複数のメモリ804を含んでもよい。本開示は、特定のメモリを記載および例示しているが、本開示は、任意の適切なメモリを企図している。
【0074】
特定の実施形態において、記憶装置806は、データまたは命令のための大容量記憶装置を含む。限定ではなく一例として、記憶装置806は、ハードディスクドライブ(HDD)、フロッピーディスク(商標)ドライブ、フラッシュメモリ、光ディスク、磁気光ディスク、磁気テープ、もしくはユニバーサルシリアルバス(USB)ドライブまたは上記のうちの2つ以上の組み合わせを含んでもよい。記憶装置806は、適切な場合、取り外し可能または取り外し不能(または固定)媒体を含んでもよい。記憶装置806は、適切な場合、コンピュータシステム800の内部または外部にあってもよい。特定の実施形態において、記憶装置806は、不揮発性ソリッドステートメモリである。特定の実施形態において、記憶装置806は、読み出し専用メモリ(ROM)を含む。適切な場合、当該ROMは、マスクプログラムROM、プラグラム可能ROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的消去再書き込みROM(EAROM)、もしくはフラッシュメモリまたは上記のうちの2つ以上の組み合わせであってもよい。本開示は、任意の適切な物理的形態をとる大容量記憶装置806を企図する。記憶装置806は、適切な場合、プロセッサ802と記憶装置806との間の通信を容易にする1つまたは複数の記憶装置制御ユニットを含んでもよい。適切な場合、記憶装置806は、1つまたは複数の記憶装置806を含んでもよい。本開示は、特定の記憶装置を記載および例示しているが、本開示は、任意の適切な記憶装置を企図している。
【0075】
特定の実施形態において、I/Oインターフェース808は、コンピュータシステム800と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、または両方を含む。コンピュータシステム800は、適切な場合、当該I/Oデバイスのうちの1つまたは複数を含んでもよい。当該I/Oデバイスのうちの1つまたは複数は、人間とコンピュータシステム800との間の通信を可能にすることができる。限定ではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、静止カメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/Oデバイスまたは上記のうちの2つ以上の組み合わせを含んでもよい。I/Oデバイスは1つまたは複数のセンサを含むことができる。本開示は、任意の適切なI/Oデバイスおよび当該デバイスのための任意の適切なI/Oインターフェース808を企図している。適切な場合、I/Oインターフェース808は、プロセッサ802が当該I/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含むことができる。I/Oインターフェース808は、適切な場合、1つまたは複数のI/Oインターフェース808を含んでもよい。本開示は、特定のI/Oインターフェースを記載および例示しているが、本開示は、任意の適切なI/Oインターフェースを企図している。
【0076】
特定の実施形態において、通信インターフェース810は、コンピュータシステム800と1つもしくは複数の他のコンピュータシステム800または1つもしくは複数のネットワークとの間の通信(例えば、パケットベースの通信など)のための1つもしくは複数のインターフェースを提供するハードウェア、ソフトウェア、または両方を含む。限定ではなく一例として、通信インターフェース810は、イーサネットもしくは他の有線ベースのネットワークと通信するためのネットワークインターフェースコントローラ(NIC)もしくはネットワークアダプタ、または、Wi-Fiネットワークなどの無線ネットワークと通信するための無線NIC(WNIC)もしくは無線アダプタを含んでもよい。本開示は、任意の適切なネットワークおよび当該ネットワークのための任意の適切な通信インターフェース810を企図している。限定ではなく一例として、コンピュータシステム800は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、都市規模ネットワーク(MAN)、またはインターネットの1つもしくは複数の部分、または、上記のうちの2つ以上の組み合わせと通信することができる。1つまたは複数の上記ネットワークの1つまたは複数の部分は、有線または無線であってもよい。一例として、コンピュータシステム800は、無線PAN(WPAN)(例えば、BLUETOOTH WPANなど)、Wi-Fiネットワーク、WiMAXネットワーク、携帯電話回線網(例えば、汎欧州デジタル移動電話方式(GSM)ネットワークなど)、もしくは他の適切な無線ネットワーク、または、上記のうちの2つ以上の組み合わせと通信することができる。コンピュータシステム800は、適切な場合、上記ネットワークのうちのいずれかのための任意の適切な通信インターフェース810を含むことができる。通信インターフェース810は、適切な場合、1つまたは複数の通信インターフェース810を含んでもよい。本開示は、特定の通信インターフェースを記載および例示しているが、本開示は、任意の適切な通信インターフェースを企図している。
【0077】
特定の実施形態において、バス812は、コンピュータシステム800の構成要素を互いに結合するハードウェア、ソフトウェア、または両方を含む。限定ではなく一例として、バス812は、アクセラレーテッドグラフィックスポート(AGP)もしくは他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、低ピン数(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンスドテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクススタンダードアソシエーションローカル(VLB)バス、もしくは別の適切なバス、または、上記のうちの2つ以上の組み合わせを含んでもよい。バス812は、適切な場合、1つまたは複数のバス812を含んでもよい。本開示は、特定のバスを記載および例示しているが、本開示は、任意の適切なバスまたは相互接続を企図している。
【0078】
本明細書において、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、1つもしくは複数の半導体ベースのもしくは他の集積回路(IC)(例えば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)など)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、磁気光ディスク、磁気光ドライブ、フロッピーディスク(商標)ディスケット、フロッピーディスク(商標)ドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、SECURE DIGITALカードもしくはドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、または、上記のうちの2つ以上の任意の適切な組み合わせを含んでもよい。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組み合わせであってもよい。
【0079】
本発明の実施形態は、人工現実システムを含んでもよく、または、人工現実システムと併せて実施されてもよい。人工現実は、例えば、仮想現実(VR)、人工現実(AR)、複合現実(MR)、ハイブリッド現実、またはそれらの何らかの組み合わせおよび/もしくは派生形を含むことができ、ユーザにて維持される前に何らかの様式で調整されている現実感の一形態である。人工現実コンテンツは、全体が生成されているコンテンツ、または、キャプチャされたコンテンツ(例えば、実世界の写真)と組み合わされた、生成されているコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組み合わせを含むことができ、それらのいずれかは、単一のチャネルまたは複数のチャネル(受け手に対して三次元効果を生成するステレオビデオなど)において提示することができる。付加的に、いくつかの実施形態において、人工現実は、例えば、人工現実内のコンテンツを生成するために使用され、および/または、人工現実において使用される(例えば、人工現実における活動を実施する)ために使用される、アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組み合わせと関連付けることができる。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されているヘッドマウントディスプレイ(HMD)、独立型HMD、モバイルデバイスもしくはコンピューティングシステム、または、1人もしくは複数の受け手に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装することができる。
【0080】
本明細書において、明示的に別途示されていない限り、または、文脈によって別途示されていない限り、「または」は包含的であって排他的ではない。したがって、本明細書において、明示的に別途示されていない限り、または、文脈によって別途示されていない限り、「AまたはB」は、「A、B、または両方」を意味する。さらに、本明細書において、明示的に別途示されていない限り、または、文脈によって別途示されていない限り、「および」は合同と個別の両方である。したがって、本明細書において、明示的に別途示されていない限り、または、文脈によって別途示されていない限り、「AおよびB」は、合同でまたは個別に「AおよびB」を意味する。
【0081】
本開示の範囲は、当業者が把握する、本明細書において記載または例示されている例示的な実施形態に対するすべての変化、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書において記載または例示されている例示的な実施形態に限定されない。さらに、本開示は、本明細書におけるそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして記載および例示しているが、当該実施形態はいずれも、当業者が把握する、本明細書のいずれかの箇所に記載または例示されている構成要素、要素、特徴、機能、動作、またはステップの任意の組み合わせまたは配列を含んでもよい。さらに、特定の機能を実施するように適合されている、実施するように配置構成されている、実施することが可能である、実施するように動作可能である、または実施するように動作する、装置もしくはシステムまたは装置もしくはシステムの構成要素に対する添付の特許請求の範囲における参照は、装置、システム、または構成要素がそのように適合されている、そのように配置構成されている、それが可能である、そのように構成されている、それを可能にされている、そのように動作可能である、またはそのように動作する限り、装置、システム、構成要素またはその特定の機能が起動されているか、オンにされているか、または、ロック解除されているか否かにかかわらず、その装置、システム、構成要素を包含する。加えて、本開示は、特定の実施形態を、特定の利点を提供するものとして記載または例示しているが、特定の実施形態は、当該利点を一切提供しなくてもよく、一部を提供してもよく、またはすべて提供してもよい。
【国際調査報告】