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

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

▶ カトマイ テック インコーポレイテッドの特許一覧

特許7318139操縦可能なアバターを有するウェブベースのテレビ会議仮想環境及びその適用
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-07-21
(45)【発行日】2023-07-31
(54)【発明の名称】操縦可能なアバターを有するウェブベースのテレビ会議仮想環境及びその適用
(51)【国際特許分類】
   H04N 7/15 20060101AFI20230724BHJP
【FI】
H04N7/15
【請求項の数】 24
(21)【出願番号】P 2022562717
(86)(22)【出願日】2021-10-20
(86)【国際出願番号】 US2021055875
(87)【国際公開番号】W WO2022087147
(87)【国際公開日】2022-04-28
【審査請求日】2023-01-06
(31)【優先権主張番号】17/075,338
(32)【優先日】2020-10-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/075,362
(32)【優先日】2020-10-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/075,390
(32)【優先日】2020-10-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/075,408
(32)【優先日】2020-10-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/075,428
(32)【優先日】2020-10-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/075,454
(32)【優先日】2020-10-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/198,323
(32)【優先日】2021-03-11
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】522401866
【氏名又は名称】カトマイ テック インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】クロール,ジェラルド コーネリス
(72)【発明者】
【氏名】ブラウンド,エリック スチュアート
【審査官】富樫 明
(56)【参考文献】
【文献】特許第6684952(JP,B1)
【文献】国際公開第2020/095714(WO,A1)
【文献】米国特許出願公開第2014/0098179(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/14-7/15
(57)【特許請求の範囲】
【請求項1】
第1のユーザと第2のユーザとの間でテレビ会議を可能にするシステムであって、
メモリに結合されたプロセッサと、
ディスプレイ画面と、
ネットワークインターフェースであって、(i)三次元仮想空間を指定するデータ、(ii)前記三次元仮想空間における位置及び方向であって、前記第1のユーザによって入力される前記位置及び方向、並びに前記第1のユーザのデバイスのカメラから捕捉されるビデオストリームであって、前記カメラは前記第1のユーザの写真画像を捕捉するように位置決めされる、ビデオストリームを受信するように構成されたネットワークインターフェースと、
前記プロセッサで実施されるウェブブラウザであって、ウェブアプリケーションをサーバからダウンロードし、前記ウェブアプリケーションを実行するように構成されるウェブブラウザと、
を備え、
前記ウェブアプリケーションは、
前記ビデオストリームをアバターの三次元モデルにマッピングするように構成されたマッパと、
レンダラーと、
を含み、
前記レンダラーは、前記第2のユーザの仮想カメラの視点から、前記第2のユーザに表示するために、前記位置に配置され、前記方向を向いた、前記ビデオストリームがマッピングされた前記アバターの前記三次元モデルを含む前記三次元仮想空間をレンダリングするように構成される、システム。
【請求項2】
前記デバイスはグラフィックス処理ユニットを更に含み、前記マッパ及び前記レンダラーは、前記ウェブアプリケーションが前記グラフィックス処理ユニットを使用してマッピング又はレンダリングできるようにするWebGLアプリケーション呼び出しを含む、
請求項1に記載のシステム。
【請求項3】
第1のユーザと第2のユーザとの間でテレビ会議を可能にするコンピュータ実施方法であって、
前記第1のユーザの第1のクライアントデバイス及び前記第2のユーザの第2のクライアントデバイスにウェブアプリケーションを送信することと、
前記ウェブアプリケーションを実行中の前記第1のクライアントデバイスから、(i)三次元仮想空間における位置及び方向であって、前記第1のユーザによって入力される位置及び方向、並びに(ii)前記第1のクライアントデバイスのカメラから捕捉されたビデオストリームであって、前記カメラは前記第1のユーザの写真画像を捕捉するように位置決めされる、ビデオストリームを受信することと、
前記第2のユーザの前記第2のクライアントデバイスに、前記位置、前記方向、及び前記ビデオストリームを送信することであって、前記ウェブアプリケーションは実行可能命令を含む、送信することと、
を含み、
前記実行可能命令は、ウェブブラウザで実行されると、アバターの三次元モデルに前記ビデオストリームをマッピングすることと、前記第2のユーザの仮想カメラの視点から、前記第2のユーザに表示するために、前記位置に配置され、前記方向を向いた前記ビデオストリームがマッピングされた前記アバターの前記三次元モデルを含む前記三次元仮想空間をレンダリングすることとを行わせる、方法。
【請求項4】
前記ウェブアプリケーションは、前記ウェブアプリケーションが前記第2のクライアントデバイスのグラフィックス処理ユニットを使用してマッピング又はレンダリングできるようにするWebGLアプリケーション呼び出しを含む、請求項3に記載の方法。
【請求項5】
第1のユーザと第2のユーザとの間でテレビ会議を可能にするコンピュータ実施方法であって、
三次元仮想空間を指定するデータを受信することと、
前記三次元仮想空間における位置及び方向を受信することであって、前記位置及び前記方向は前記第1のユーザによって入力される、受信することと、
前記第1のユーザのデバイスのカメラから捕捉されたビデオストリームを受信することであって、前記カメラは前記第1のユーザの写真画像を捕捉するように位置決めされる、受信することと、
ウェブブラウザで実施されるウェブアプリケーションにより、前記ビデオストリームをアバターの三次元モデルにマッピングすることと、
前記第2のユーザの仮想カメラの視点から、前記ウェブブラウザで実施される前記ウェブアプリケーションにより、前記第2のユーザに表示するために、前記位置に配置され、前記方向を向いた前記アバターの前記三次元モデルを含む前記三次元仮想空間をレンダリングすることと、
を含む、方法。
【請求項6】
前記第1のユーザの前記デバイスのマイクロホンから、前記ビデオストリームと同期して捕捉されたオーディオストリームを受信することであって、前記マイクロホンは前記第1のユーザの発話を捕捉するように位置決めされる、受信することと、
前記オーディオストリームを出力して、前記三次元仮想空間内の前記ビデオストリームの表示と同期して前記第2のユーザに対して再生することと、
を更に含む請求項5に記載の方法。
【請求項7】
前記仮想カメラの前記視点を変更する望みを示す前記第2のユーザからの入力が受信される場合、
前記第2のユーザの前記仮想カメラの前記視点を変更することと、
前記仮想カメラの前記変更された視点から、前記第2のユーザに表示するために、前記位置に配置され、前記方向を向いた前記アバターの前記三次元モデルを含む前記三次元仮想空間を再レンダリングすることと、
を更に含む請求項5に記載の方法。
【請求項8】
前記仮想カメラの前記視点は、少なくとも、前記三次元仮想空間における水平面上の座標並びにパン値及びチルト値によって定義される、請求項7に記載の方法。
【請求項9】
前記三次元仮想空間における前記第1のユーザの新しい位置及び方向が受信される場合、
前記第2のユーザに表示するために、前記新しい位置に配置され、前記新しい方向を向いた前記アバターの三次元モデルを含む前記三次元仮想空間を再レンダリングすることを更に含む請求項5に記載の方法。
【請求項10】
前記マッピングは、前記ビデオストリームの各フレームについて、前記アバターの前記三次元モデルにピクセルを繰り返しマッピングすることを含む、請求項5に記載の方法。
【請求項11】
前記データ、前記位置及び方向、並びに前記ビデオストリームは、サーバからウェブブラウザにおいて受信され、前記マッピング及びレンダリングは前記ウェブブラウザによって実行される、請求項5に記載の方法。
【請求項12】
前記サーバから、前記第1のユーザがもはや存在しないことを示す通知を受信することと、
前記第2のユーザに対して前記ウェブブラウザで表示するために、前記アバターの前記三次元モデルのない前記三次元仮想空間を再レンダリングすることと、
を更に含む請求項11に記載の方法。
【請求項13】
前記サーバから、第3のユーザが前記三次元仮想空間に入ったことを示す通知を受信することと、
前記三次元仮想空間における前記第3のユーザの第2の位置及び第2の方向を受信することと、
前記第3のユーザのデバイスのカメラから捕捉された第2のビデオストリームを受信することであって、前記カメラは前記第3のユーザの写真画像を捕捉するように位置決めされる、受信することと、
前記第2のビデオストリームを第2のアバターの第2の三次元モデルにマッピングすることと、
前記第2のユーザの前記仮想カメラの前記視点から、前記第2のユーザに表示するために、前記第2の位置に位置決めされ前記第2の方向を向いた前記第2の三次元モデルを含む前記三次元仮想空間をレンダリングすることと、
を更に含む請求項12に記載の方法。
【請求項14】
前記三次元仮想空間を指定するデータを受信することは、会議空間を指定するメッシュを受信することと、背景画像を受信することとを含み、前記レンダリングすることは、前記背景を球体にマッピングすることを含む、請求項5に記載の方法。
【請求項15】
命令を記憶した非一時的有形コンピュータ可読デバイスであって、前記命令は、少なくとも1つの計算デバイスによって実行されると、前記少なくとも1つの計算デバイスに、第1のユーザと第2のユーザとの間でテレビ会議を可能にする動作を実行させ、前記動作は、
三次元仮想空間を指定するデータを受信することと、
前記三次元仮想空間における位置及び方向を受信することであって、前記位置及び方向は前記第1のユーザによって入力される、受信することと、
前記第1のユーザのデバイスのカメラから捕捉されたビデオストリームを受信することであって、前記カメラは前記第1のユーザの写真画像を捕捉するように位置決めされる、受信することと、
前記ビデオストリームをアバターの三次元モデルにマッピングすることと、
前記第2のユーザの仮想カメラの視点から、前記第2のユーザに表示するために、前記位置に配置され、前記方向を向いた前記アバターの前記三次元モデルを含む前記三次元仮想空間をレンダリングすることと、
を含む、デバイス。
【請求項16】
前記動作は、
前記第1のユーザの前記デバイスのマイクロホンから、前記ビデオストリームと同期して捕捉されたオーディオストリームを受信することであって、前記マイクロホンは前記第1のユーザの発話を捕捉するように位置決めされる、受信することと、
前記オーディオストリームを出力して、前記三次元仮想空間内の前記ビデオストリームの表示と同期して前記第2のユーザに対して再生することと、
を更に含む、請求項15に記載のデバイス。
【請求項17】
前記動作は、前記仮想カメラの前記視点を変更する望みを示す前記第2のユーザからの入力が受信される場合、
前記第2のユーザの前記仮想カメラの前記視点を変更することと、
前記仮想カメラの前記変更された視点から、前記第2のユーザに表示するために、前記位置に配置され、前記方向を向いた前記アバターの前記三次元モデルを含む前記三次元仮想空間を再レンダリングすることと、
を更に含む、請求項15に記載のデバイス。
【請求項18】
前記仮想カメラの前記視点は、少なくとも、前記三次元仮想空間における水平面上の座標並びにパン値及びチルト値によって定義される、請求項17に記載のデバイス。
【請求項19】
前記動作は、前記三次元仮想空間における前記第1のユーザの新しい位置及び方向が受信される場合、
前記第2のユーザに表示するために、前記新しい位置に配置され、前記新しい方向を向いた前記アバターの三次元モデルを含む前記三次元仮想空間を再レンダリングすることを更に含む、請求項15に記載のデバイス。
【請求項20】
前記マッピングは、前記ビデオストリームの各フレームについて、前記アバターの前記三次元モデルにピクセルを繰り返しマッピングすることを含む、請求項15に記載のデバイス。
【請求項21】
前記データ、前記位置及び方向、並びに前記ビデオストリームは、サーバからウェブブラウザにおいて受信され、前記マッピング及びレンダリングは前記ウェブブラウザによって実行される、請求項15に記載のデバイス。
【請求項22】
前記動作は、
前記サーバから、前記第1のユーザがもはや存在しないことを示す通知を受信することと、
前記第2のユーザに対して前記ウェブブラウザで表示するために、前記アバターの前記三次元モデルのない前記三次元仮想空間を再レンダリングすることと、
を更に含む、請求項21に記載のデバイス。
【請求項23】
前記動作は、
前記サーバから、第3のユーザが前記三次元仮想空間に入ったことを示す通知を受信することと、
前記三次元仮想空間における前記第3のユーザの第2の位置及び第2の方向を受信することと、
前記第3のユーザのデバイスのカメラから捕捉された第2のビデオストリームを受信することであって、前記カメラは前記第3のユーザの写真画像を捕捉するように位置決めされる、受信することと、
前記第2のビデオストリームを第2のアバターの第2の三次元モデルにマッピングすることと、
前記第2のユーザの前記仮想カメラの前記視点から、前記第2のユーザに表示するために、前記第2の位置に位置決めされ前記第2の方向を向いた前記第2の三次元モデルを含む前記三次元仮想空間をレンダリングすることと、
を更に含む、請求項22に記載のデバイス。
【請求項24】
前記三次元仮想空間を指定するデータを前記受信することは、会議空間を指定するメッシュを受信することと、背景画像を受信することとを含み、前記レンダリングすることは、前記背景を球体にマッピングすることを含む、請求項15に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
[0001] 本願は、現在は2021年4月13日付けで発行された米国特許第10,979,672号として発行されている、2020年10月20日付けで出願された米国実用特許出願第17/075,338号、2021年3月11日付けで出願された米国実用特許出願第17/198,323号、現在は2021年8月17日付けで発行されている米国特許第11,095,857号として発行されている2020年10月20日付けで出願された米国実用特許出願第17/075,362号、現在は2021年3月16日付けで発行されている米国特許第10,952,006号として発行されている2020年10月20日付けで出願された米国実用特許出願第17/075,390号、現在は2021年7月20日付けで発行されている米国特許第11,070,768号として発行されている2020年10月20日付けで出願された米国実用特許出願第17/075,408号、現在は2021年7月27日付けで発行されている米国特許第11,076,128号として発行されている2020年10月20日付けで出願された米国実用特許出願第17/075,428号、及び2020年10月20日付けで出願された米国実用特許出願第17/075,454号への優先権を主張するものである。これらの出願の各々の内容は、全体的に参照により本明細書に援用される。
【0002】
背景
分野
[0002] この分野は一般にテレビ会議に関する。
【背景技術】
【0003】
関連技術
[0003] テレビ会議には、人々の間でリアルタイム通信するために、異なる場所にいる複数のユーザによる視聴覚信号の送受信が関わる。テレビ会議は、San Jose, CA所在のZoom Communications Inc.から入手可能なZOOMサービスを含め多様な様々なサービスから多くの計算デバイスで広く利用可能である。Cupertino, CA所在のApple Inc.から入手可能なFaceTime(登録商標)アプリケーション等の幾つかのテレビ会議ソフトウェアは、モバイルデバイスに標準装備されている。
【0004】
[0004] 一般に、これらのアプリケーションは、他の会議参加者のビデオを表示し、オーディオを出力することによって動作する。複数の参加者がいる場合、画面は、各々が1人の参加者のビデオを表示する幾つかの矩形フレームに分割し得る。これらのサービスは、発話している人物のビデオを提示するより大きなフレームを有することによって動作することもある。異なる個人が発話する際、そのフレームは話者間で切り替わる。アプリケーションは、ユーザのデバイスに統合されたカメラからのビデオを捕捉し、ユーザのデバイスに統合されたマイクロホンからオーディオを捕捉する。アプリケーションは次いで、他のユーザのデバイスで実行中の他のアプリケーションにそのオーディオ及びビデオを送信する。
【0005】
[0005] これらのテレビ会議アプリケーションの多くは、画面共有機能を有する。あるユーザが自身の画面(又は自身の画面の一部)の共有を特定すると、ストリームが画面の内容と共にその他のユーザのデバイスに送信される。幾つかの場合、他のユーザは、そのユーザの画面上にあるものを制御することさえできる。このようにして、ユーザはプロジェクトで協働し、又は他のミーティング参加者に対してプレゼンテーションを行うことができる。
【0006】
[0006] 近年、テレビ会議技術は重要性を増した。病気、特にCOVID-19の蔓延を恐れて、多くの職場、見本市、ミーティング、会議、学校、及び礼拝所は閉鎖され、又は参加しないように勧められている。テレビ会議技術を使用した仮想会議はますます、物理的なミーティングに取って代わっている。加えて、この技術は、出張及び通勤を回避するため、物理的に合うことよりも優れた利点を提供する。
【0007】
[0007] しかしながら多くの場合、このテレビ会議技術を使用すると、場所の感覚が失われることになる。対面で物理的に会って同じ場所にいるという体験的側面があり、これは会議が仮想的に行われる場合、失われる。ユーザがポーズを取り、仲間を見ることが可能であるという社会的側面がある。体験のこの感覚は、関係及び社会的繋がりを作る上で重要である。従来のテレビ会議に関して言えば、今のところはまだこの感覚は欠けている。
【0008】
[0008] 更に、会議が数人の参加者で開始される場合、これらのテレビ会議技術に伴って更なる問題が生じる。物理的なミーティング会議では、人々は雑談することができる。近くにいる人々だけに通じるように声を出すことができる。幾つかの場合、より大きなミーティングの状況において私的な会話をすることさえできる。しかしながら、仮想会議を用い、複数の人々が同時に話す場合、ソフトウェアは2つのオーディオストリームを略等しく混合し、参加者に互いに割り込んで発話させる。したがって、複数の人々が仮想会議に関わる場合、私的な会話は不可能であり、対話はむしろ、1人から多くの人への発話の形になりがちである。ここでも、仮想会議では、参加者が社会的繋がりを作り、より効率的にコミュニケーションをとって人脈を広げる機会を逃す。
【0009】
[0009] 更に、ネットワーク帯域幅及び計算ハードウェアの制限に起因して、多くのストリームが会議で生じた場合、多くのテレビ会議の性能は遅くなり始める。多くの計算デバイスは、2~3人の参加者からのビデオストリームを扱うように装備されており、12人以上の参加者からのビデオストリームを扱うようには装備されていない。全体的に仮想的に運営されている多くの学校では、25人のクラスは学校発行の計算デバイスをかなり遅くさせ得る。
【0010】
[0010] 多人数参加型オンラインゲーム(MMOG又はMMO)は一般に、25人よりもかなり多くの参加者を扱うことができる。これらのゲームでは多くの場合、1台のサーバに数百人又数千人のプレーヤがいる。MMOでは多くの場合、プレーヤはアバターを仮想世界のあちこちにナビゲートすることができる。これらのMMOでは、ユーザが互いと話し、又はメッセージを互いに送信することができることがある。例には、San Mateo, CA所在のRoblox Corporationから入手可能なROBLOXゲーム及びStockholm, Sweden所在のMojang Studiosから入手可能なMINECRAFTゲームがある。
【0011】
[0011] 裸のアバターに互いと対話させることにはまた、社会的相互作用に関して制限がある。これらのアバターは通常、人々が多くの場合、非意図的に作る表情を伝えることができない。これらの表情はテレビ会議で観察可能である。幾つかの公開公報が、仮想世界においてアバターに配置されるビデオを記載している可能性がある。しかしながら、これらのシステムは典型的には、専用ソフトウェアを必要とし、有用性を制限する他の制限を有する。
【発明の概要】
【発明が解決しようとする課題】
【0012】
[0012] テレビ会議の改良された方法が必要とされている。
【課題を解決するための手段】
【0013】
概要
[0013] 一実施形態において、デバイスは、第1のユーザと第2のユーザとの間でのテレビ会議を可能にする。本デバイスは、メモリに結合されたプロセッサ、ディスプレイ画面、ネットワークインターフェース、及びウェブブラウザを含む。ネットワークインターフェースは、(i)三次元仮想空間を指定するデータ、(ii)前記三次元仮想空間における位置及び方向であって、前記第1のユーザによって入力される位置及び方向、及び(iii)前記第1のユーザのデバイスのカメラから捕捉されるビデオストリームを受信するように構成される。第1のユーザのカメラは、第1のユーザの写真画像を捕捉するように位置決めされる。ウェブブラウザは、プロセッサで実施され、ウェブアプリケーションをサーバからダウンロードし、前記ウェブアプリケーションを実行するように構成される。ウェブアプリケーションは、テクスチャマッパ及びレンダラーを含む。テクスチャマッパは、ビデオストリームをアバターの三次元モデルにテクスチャマッピングするように構成される。レンダラーは、第2のユーザの仮想カメラの視点から、前記第2のユーザに表示するために、上記位置に配置され、上記方向を向いた前記アバターの前記テクスチャマッピングされた三次元モデルを含む前記三次元仮想空間をレンダリングするように構成される。ウェブアプリケーション内のテクスチャマッピングを管理することにより、実施形態は専用ソフトウェアをインストールする必要性を回避する。
【0014】
[0014] 一実施形態において、コンピュータ実施方法は、複数の参加者を含む仮想会議でのプレゼンテーションを可能にする。本方法において、三次元仮想空間を指定するデータが受信される。三次元仮想空間における位置及び方向も受信される。位置及び方向は、会議への複数の参加者のうちの第1の参加者によって入力された。最後に、第1の参加者のデバイスのカメラから捕捉されたビデオストリームが受信される。カメラは、第1の参加者の写真画像を捕捉するように位置決めされた。ビデオストリームは、アバターの三次元モデルにテクスチャマッピングされる。加えて、第1の参加者のデバイスからのプレゼンテーションストリームが受信される。プレゼンテーションストリームは、プレゼンテーション画像の三次元モデルにテクスチャマッピングされる。最後に、テクスチャマッピングされたアバター及びテクスチャマッピングされたプレゼンテーション画面を有する三次元仮想空間が、複数の参加者のうちの第2の参加者の仮想カメラの視点から、第2の参加者に表示するために、レンダリングされる。このようにして、実施形態は、社会会議環境でプレゼンテーションを可能にする。
【0015】
[0015] 一実施形態において、コンピュータ実施方法は、複数の参加者を含む仮想会議にオーディオを提供する。本方法において、第2のユーザのテクスチャマッピングされたビデオを有するアバターを含む三次元仮想空間は、第1のユーザの仮想カメラの視点から、第1のユーザに表示するためにレンダリングされる。仮想カメラは、三次元仮想空間において第1の位置にあり、アバターは、三次元仮想空間において第2の位置にある。第2のユーザのデバイスのマイクロホンからのオーディオストリームが受信される。マイクロホンは、第2のユーザの発話を捕捉するように位置決めされた。受信されたオーディオストリームの音量は、左オーディオストリーム及び右オーディオストリームを特定して、第2の位置が三次元仮想空間において第1の位置に相対する場所の感覚を提供するように調整される。左オーディオストリーム及び右オーディオストリームはステレオで出力されて、第1のユーザに再生される。
【0016】
[0016] 一実施形態において、コンピュータ実施方法は、仮想会議にオーディオを提供する。本方法において、第2のユーザのテクスチャマッピングされたビデオを有するアバターを含む三次元仮想空間が、第1のユーザの仮想カメラの視点から、第1のユーザに表示するためにレンダリングされる。仮想カメラは、三次元仮想空間において第1の位置にあり、アバターは、三次元仮想空間において第2の位置にある。第2のユーザのデバイスのマイクロホンからのオーディオストリームが受信される。仮想カメラ及びアバターが複数のエリア中の同じエリアに配置されるか否かが特定される。仮想カメラ及びアバターが、同じエリアに配置されないと特定される場合、オーディオストリームは減衰する。減衰したオーディオストリームが出力されて第1のユーザに対して再生される。このようにして、実施形態は、仮想テレビ会議環境において私的な会話及び雑談を可能にする。
【0017】
[0017] 一実施形態において、コンピュータ実施方法は、仮想会議に向けてビデオを効率的にストリーミングする。本方法において、仮想会議空間における第1のユーザと第2のユーザとの間の距離が特定される。第1のユーザのデバイスのカメラから捕捉されたビデオストリームが受信される。カメラは、第1のユーザの写真画像を捕捉するように位置決めされた。ビデオストリームの解像度又はビットレートは、距離が近いほど、距離が遠い場合よりも解像度が高くなるように、特定された距離に基づいて低減される。ビデオストリームは、仮想会議空間内の第2のユーザに表示するために、第2のユーザのデータに低減した解像度又はビットレートで送信される。ビデオストリームは、仮想会議空間内の第2のユーザに表示するために、第1のユーザのアバターにテクスチャマッピングされるべきである。このようにして、多数の会議参加者がいる場合であっても、実施形態は帯域幅及び計算リソースを効率的に割り振る。
【0018】
[0018] 一実施形態において、コンピュータ実施方法は、仮想テレビ会議においてモデリングを可能にする。本方法において、仮想環境の三次元モデルである、物体の三次元モデルを表すメッシュ及び仮想テレビ会議の参加者からのビデオストリームが受信される。ビデオストリームは、参加者によって操縦可能なアバターにテクスチャマッピングされる。テクスチャマッピングされたアバター及び仮想環境内の物体の三次元モデルを表すメッシュは、表示に向けてレンダリングされる。
【0019】
[0019] システム、デバイス、及びコンピュータプログラム製品の実施形態も開示される。
【0020】
[0020] 本発明の更なる実施形態、特徴、及び利点、並びに種々の実施形態の構造及び動作について、添付図面を参照して以下詳細に説明する。
【0021】
図面の簡単な説明
[0021] 添付図面は、本明細書に組み込まれて本発明の一部をなし、本開示を示し、説明と一緒に、本開示の原理を説明し、当業者が本開示を作成し使用できるようにするよう更に機能する。
【図面の簡単な説明】
【0022】
図1】[0022]ビデオストリームがアバターにマッピングされた、仮想環境においてテレビ会議を提供するインターフェース例を示す図である。
図2】[0023]テレビ会議に向けてアバターを有する仮想環境をレンダリングするのに使用される三次元モデルを示す図である。
図3】[0024]仮想環境においてテレビ会議を提供するシステムを示す図である。
図4A】[0025]テレビ会議を提供するために、データが図3のシステムの種々の構成要素間でいかに転送されるかを示す。
図4B】[0025]テレビ会議を提供するために、データが図3のシステムの種々の構成要素間でいかに転送されるかを示す。
図4C】[0025]テレビ会議を提供するために、データが図3のシステムの種々の構成要素間でいかに転送されるかを示す。
図5】[0026]相対的に左右音量を調整して、テレビ会議中、仮想環境における位置の感覚を提供する方法を示すフローチャートである。
図6】[0027]アバター間の距離が増大するにつれて音量がいかに下がるかを示すチャートである。
図7】[0028]テレビ会議中、仮想環境において異なる音量エリアを提供するように相対音量を調整する方法を示すフローチャートである。
図8A】[0029]テレビ会議中、仮想環境における異なる音量エリアを示す図である。
図8B】[0029]テレビ会議中、仮想環境における異なる音量エリアを示す図である。
図9A】[0030]テレビ会議中、仮想環境における音量エリアの階層横断を示す図である。
図9B】[0030]テレビ会議中、仮想環境における音量エリアの階層横断を示す図である。
図9C】[0030]テレビ会議中、仮想環境における音量エリアの階層横断を示す図である。
図10】[0031]三次元仮想環境における三次元モデルとの対話を示す。
図11】[0032]テレビ会議に使用される三次元仮想環境におけるプレゼンテーション画面共有を示す。
図12】[0033]三次元仮想環境内のアバターの相対位置に基づいて、利用可能な帯域幅を分配する方法を示すフローチャートである。
図13】[0034]アバター間の距離が増大するにつれて優先値がいかに低下することができるかを示すチャートである。
図14】[0035]相対優先度に基づいて割り振られる帯域波をいかに変更することができるかを示すチャートである。
図15】[0036]仮想環境内でテレビ会議を提供するのに使用されるデバイスの構成要素を示す図である。
【発明を実施するための形態】
【0023】
[0037] 要素が最初に現れた図面は典型的には、対応する参照番号における左端の1つ又は複数の桁によって示される。図面中、同様の参照番号は同一の要素又は機能的に同一の要素を示し得る。
【0024】
詳細な説明
仮想環境におけるアバターを用いたテレビ会議
[0038] 図1は、ビデオストリームがアバターにマッピングされる、仮想環境においてテレビ会議を提供する一例のインターフェース100を示す図である。
【0025】
[0039] インターフェース100は、テレビ会議への参加者に表示し得る。例えば、インターフェース100は、参加者に表示するためにレンダリングされ得、テレビ会議が進行するにつれて常時更新し得る。ユーザは、例えばキーボード入力を使用してユーザの仮想カメラの向きを制御し得る。このようにして、ユーザは仮想環境のあちこちをナビゲートすることができる。一実施形態において、異なる入力が、仮想環境における仮想カメラのX及びY位置並びにパン角及びチルト角を変更し得る。更なる実施形態において、ユーザは入力を使用して、仮想カメラの高さ(Z座標)又はヨーを変更し得る。更なる実施形態において、ユーザは入力を入力して、仮想カメラが元の位置に戻る間、仮想カメラに「ホップ」アップさせて重力をシミュレートし得る。仮想カメラのナビゲートに利用可能な入力は、例えば、仮想カメラをX-Y平面上で前後左右に移動させるWASDキーボードキー、仮想カメラを「ホップ」させるスペースバーキー、並びにパン角及びチルト角の変更を指定するマウス移動等のキーボード入力及びマウス入力を含み得る。
【0026】
[0040] インターフェース100はアバター102A及び102Bを含み、各アバターはテレビ会議への異なる参加者を表す。アバター102A及び102Bはそれぞれ、第1及び第2の参加者のデバイスからのビデオストリーム104A及び104Bがテクスチャマッピングされている。テクスチャマップとは、形状又は多角形の表面に適用(マッピング)される画像である。ここでは、画像はビデオの各フレームである。ビデオストリーム104A及び104Bを捕捉するカメラデバイスは、各参加者の顔を捕捉するように位置決めされる。このようにして、アバターはテクスチャマッピングされ、ミーティングでの参加者が話を聞くとき、顔の画像を移動させる。
【0027】
[0041] 仮想カメラがユーザ閲覧インターフェース100によって制御される方法と同様に、アバター102A及び102Bの場所及び方向は、アバターが表す各参加者によって制御される。アバター102A及び102Bは、メッシュによって表現される三次元モデルである。各アバター102A及び102Bは、アバターの下に参加者の氏名を有し得る。
【0028】
[0042] 各アバター102A及び102Bは種々のユーザによって制御される。アバターは各々、アバター自身の仮想カメラが仮想環境内で配置されている場所に対応するポイントに位置決めされ得る。ユーザ閲覧インターフェース100が仮想カメラの周囲を移動できるのと全く同じように、種々のユーザは各アバター102A及び102Bの周囲を移動することができる。
【0029】
[0043] インターフェース100にレンダリングされる仮想環境は、背景画像120と、アリーナの三次元モデル118とを含む。アリーナは、テレビ会議が行われるべき会場又は建物であり得る。アリーナは、壁で仕切られたフロアエリアを含み得る。三次元モデル118は、メッシュ及びテクスチャを含むことができる。三次元モデル118の表面を数学的に表す他の方法も同様に可能であり得る。例えば、ポリゴンモデリング、曲線モデリング、及びデジタルスカルプティングが可能であり得る。例えば、三次元モデル118は、ボクセル、スプライン、幾何プリミティブ、ポリゴン、又は三次元空間における任意の他の可能な表現によって表され得る。三次元モデル118は光源の仕様を含むこともできる。光源は例えば、点光源、指向性光源、スポットライト光源、及び周囲光源を含むことができる。物体は、いかに光を反射するかを記述する特定の性質を有することもできる。例では、性質は拡散照明相互作用、周囲照明相互作用、及びスペクトル照明相互作用を含み得る。
【0030】
[0044] アリーナに加えて、仮想環境は、環境の異なる構成要素を示す種々の他の三次元モデルを含むことができる。例えば、三次元環境は、装飾モデル114、スピーカモデル116、及びプレゼンテーション画面モデル122を含むことができる。モデル118と全く同様に、これらのモデルは、三次元空間において幾何表面を表す任意の数学的方法を使用して表すことができる。これらのモデルは、モデル118とは別個であってもよく、又は仮想環境の単一表現に結合されてもよい。
【0031】
[0045] モデル114等の装飾モデルは、リアリズムを強化し、アリーナの美的アピールを増大させるように機能する。スピーカモデル116は、図5及び図7に関して更に詳細に下述するように、プレゼンテーション及び背景音楽等の音声を仮想的に発し得る。プレゼンテーション画面モデル122は、プレゼンテーションを例示するためのアウトレットを提供するように機能することができる。プレゼンター又はプレゼンテーション画面共有のビデオは、プレゼンテーション画面モデル122にテクスチャマッピングし得る。
【0032】
[0046] ボタン108は、参加者のリストをユーザに提供し得る。一例において、ユーザがボタン108を選択した後、ユーザは、テキストメッセージを個々に又はグループとして送信することによって他の参加者とチャットすることができる。
【0033】
[0047] ボタン110は、ユーザが、インターフェース100のレンダリングに使用される仮想カメラの属性を変更できるようにし得る。例えば、仮想カメラは、データが表示に向けてレンダリングされる角度を指定する視野を有し得る。カメラ視野内のデータのモデリングがレンダリングされ、一方、カメラ視野外のデータのモデリングはレンダリングされなくてもよい。デフォルトにより、仮想カメラの視野は、広角レンズ及び人間の視覚と釣り合った60°と110°との間のどこかに設定し得る。しかしながら、ボタン110を選択すると、仮想カメラは、魚眼レンズと釣り合った170°を超えて視野を増大させ得る。これにより、ユーザは、仮想環境中の周囲のより広い周辺認識を有することが可能であり得る。
【0034】
[0048] 最後に、ボタン112により、ユーザは仮想環境から出る。ボタン112を選択すると、他の参加者に属するデバイスに、前にインターフェース100を見ていたユーザに対応するアバターの表示を停止させるようにデバイスにシグナリングする通知が通知され得る。
【0035】
[0049] このようにして、インターフェース仮想3D空間を使用して、テレビ会議を行う。あらゆるユーザはアバターを制御し、ユーザは、あちこち移動する、周囲を見る、ジャンプする、又は位置もしくは向きを変更する他のことを行うようにアバターを制御することができる。仮想カメラは、ユーザに仮想3D環境及びその他のアバターを示す。その他のユーザのアバターは、一体部分として、ユーザのウェブカム画像を示す仮想ディスプレイを有する。
【0036】
[0050] ユーザに空間の感覚を与え、ユーザが互いの顔を見られるようにすることにより、実施形態は、従来のウェブ会議又は従来のMMOゲームよりも社会的な体験を提供する。より社会的な体験は多様な用途を有する。例えば、オンラインショッピングで使用することができる。例えば、インターフェース100は、仮想のスーパーマーケット、礼拝所、見本市、B2B販売、B2C販売、スクーリング、レストラン又は食堂、製品リリース、建築現場訪問(例えば建築家、エンジニア、請負業者用)、オフィススペース(例えば人々が仮想的に「各自のデスクで」仕事をする)、機械のリモート制御(船、車両、飛行機、潜水艦、ドローン、穿孔機器等)、工場/施設制御室、医療処置、庭設計、ガイド付き仮想バスツアー、音楽イベント(例えばコンサート)、講義(例えばTEDトーク)、政治団体のミーティング、役員ミーティング、水中調査、辿り着くのが難しい場所の調査、緊急事態(例えば火災)に向けた訓練、料理、買い物(支払い及び配達)、仮想アート及びクラフト(例えば絵画及び陶芸)、結婚式、葬式、洗礼式、リモートスポーツ訓練、カウンセリング、恐怖への対処(例えば対面療法)、ファッションショー、アミューズメントパーク、家の装飾、スポーツ観戦、eスポーツ観戦、三次元カメラを使用して捕捉されたパフォーマンスの閲覧、ボードゲーム及びルールプレイングゲームでの遊び、医療画像上/医療画像を通して歩くこと、地質データの閲覧、言語学習、視覚障害者用の空間におけるミーティング、聴覚障害者用の空間におけるミーティング、通常なら歩くことができない又は立つことができない人々によるイベントへの参加、ニュース又は天気の提示、トークショー、本のサイン会、投票、MMO、仮想ロケーションの購入/販売(San Francisco, CA所在のLinden Research, Inc.から入手可能なSECOND LIFEゲームのような幾つかのMMOで利用可能なもの等)、蚤の市、ガレージセール、旅行エージェンシー、銀行、アーカイブ、コンピュータプロセス管理、フェンシング/刀剣格闘技/武術、再現ビデオ(例えば犯罪シーン及び/又は事故の再現)、リアルイベントのリハーサル(例えばウェディング、プレゼンテーション、ショー、スペースウォーク)、三次元カメラで捕捉されたリアルイベントの評価又は閲覧、家畜ショー、動物園、背の高い人/背の低い人/視覚障害者/聴覚障害者/白人/黒人としての人生の体験(例えばユーザが反応を体験したい視点をシミュレートするための仮想世界の変更ビデオストリーム又は静止画)、ジョブ面接、ゲームショー、インタラクティブフィクション(例えば殺人ミステリー)、仮想魚釣り、仮想セーリング、心理学的調査、挙動分析、仮想スポーツ(例えばクライミング/ボルダリング)、家又は他の場所での照明制御等(ホームオートメーション)、記憶の宮殿、考古学、ギフトショップ、顧客が実際に訪れたときにより快適であるようにするような仮想訪問、処置を説明し、人々により快適に感覚させるための仮想医療処置及び仮想取引所/金融市場/株式市場(例えばリアルタイムデータ及びビデオフィードを統合して仮想世界のリアルタイム取引及び分析にする)、実際に互いと組織的に会えるようにする、仕事の一環として人々が行く必要がある仮想場所(例えばインボイスを作成したい場合、仮想場所内からでのみそうすることが可能である)、及び顔の表情(例えば軍事、法執行、消防士、特殊作戦にとって有用)を見ることができるように人物の顔をARヘッドセット(又はヘルメット)上に投影する拡張現実、並びに予約(例えば特定の別荘/車/等)を提供するに当たり用途を有する。
【0037】
[0051] 図2は、テレビ会議に向けてアバターを有する仮想環境をレンダリングするのに使用される三次元モデルを示す図200である。図1に示されるのと全く同様に、ここでの仮想環境は三次元アリーナ118と、三次元モデル114及び122を含む種々の三次元モデルとを含む。これもまた図1に示されるように、図200は、仮想環境のあちこちをナビゲートするアバター102A及び102Bを含む。
【0038】
[0052] 上述したように、図1中のインターフェース100は、仮想カメラの視点からレンダリングされる。その仮想カメラは、図200において仮想カメラ204として示されている。先に述べたように、図1におけるユーザ閲覧インターフェース100は、仮想カメラ204を制御し、仮想カメラを三次元空間でナビゲートすることができる。インターフェース100は一貫して、仮想カメラ204の新しい位置及び仮想カメラ204のしや内のモデルの任意の変化に従って更新される。上述したように、仮想カメラ204の視野は、画角の水平視野及び垂直視野によって少なくとも部分的に定義される錐台であり得る。
【0039】
[0053] 図1に関して上述したように、背景画像又はテクスチャは仮想環境の少なくとも一部を定義し得る。背景画像は、遠くに見えることが意図される仮想環境の側面を捕捉し得る。背景画像は球体202にテクスチャマッピングし得る。仮想カメラ204は球体202の原点であり得る。このようにして、仮想環境の遠くの特徴を効率的にレンダリングし得る。
【0040】
[0054] 他の実施形態において、球体202の代わりに他の形状を使用して、背景画像にテクスチャマッピングし得る。種々の代替の実施形態において、形状は円柱形、立方体、矩形プリズム、又は任意の他の三次元ジオメトリであり得る。
【0041】
[0055] 図3は、仮想環境においてテレビ会議を提供するシステム300を示す図である。システム300は、1つ又は複数のネットワーク304を介してデバイス306A及び306Bに結合されたサーバ302を含む。
【0042】
[0056] サーバ302は、デバイス306Aと306Bとの間でテレビ会議セッションを接続するサービスを提供する。より詳細に下述するように、サーバ302は、新しい参加者が会議に加わったとき及び既存の参加者が会議から退出するとき、通知を会議参加者のデバイス(例えばデバイス306A及び306B)に通信する。サーバ302は、三次元仮想空間内の各参加者の仮想カメラの三次元仮想空間における位置及び方向を記述するメッセージを通信する。サーバ302は、ビデオ及びオーディオストリームを参加者の各デバイス(例えばデバイス306A及び306B)間で通信もする。最後に、サーバ302は、三次元仮想空間を指定するデータを記述するデータを記憶し、各デバイス306A及び306Bに送信する。
【0043】
[0057] 仮想会議に必要なデータに加えて、サーバ302は、インタラクティブ会議を提供するためにデータをいかにレンダリングするかについてデバイス306A及び306Bに指示する、実行可能情報を提供し得る。
【0044】
[0058] サーバ302は要求に対して応答で応答する。サーバ302はウェブサーバであり得る。ウェブサーバは、HTTP(ハイパーテキスト転送プロトコル)及び他のプロトコルを使用して、ワールドワイドウェブを経由して行われたクライアント要求に応答するソフトウェア及びハードウェアである。ウェブサーバの主な仕事は、ウェブページの記憶、処理、及びユーザの送出を通してウェブサイトコンテンツを表示することである。
【0045】
[0059] 代替の一実施形態において、デバイス306Aと306Bとの間の通信はサーバ302を通して行われず、ピアツーピアベースで行われる。その実施形態において、各参加者の場所及び方向を記述するデータ、新しい参加者及び既存の参加者に関する通知、並びに各参加者のビデオストリーム及びオーディオストリームの1つ又は複数は、サーバ302を通してではなく、デバイス306Aと306Bとの間で直接通信される。
【0046】
[0060] ネットワーク304は、種々のデバイス306A及び306B並びにサーバ302間の通信を可能にする。ネットワーク304はアドホックネットワーク、イントラネット、エクストラネット、仮想施設ネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、無線ワイドエリアネットワーク(WWAN)、大都市圏ネットワーク(MAN)、インターネットの一部、公衆交換電話回線網(PSTN)の一部、セルラ電話回線網、ワイヤレスネットワーク、WiFiネットワーク、WiMaxネットワーク、任意の他のタイプのネットワーク、又は2つ以上のそのようなネットワークの任意の組合せであり得る。
【0047】
[0061] デバイス306A及び306Bは、仮想会議への各参加者の各デバイスである。デバイス306A及び306Bは各々、仮想会議を行うために必要なデータを受信し、仮想会議を提供するのに必要なデータをレンダリングする。より詳細に下述するように、デバイス306A及び306Bは、レンダリングされた会議情報を提示するためのディスプレイ、ユーザが仮想カメラを制御できるようにする入力、会議に向けてオーディオをユーザに提供するスピーカ(ヘッドセット等)、ユーザの音声入力を捕捉するためのマイクロホン、及びユーザの顔のビデオを捕捉するように位置決めされたカメラを含む。
【0048】
[0062] デバイス306A及び306Bは、ラップトップ、デスクトップ、スマートフォン若しくはタブレットコンピュータ、又はウェアラブルコンピュータ(スマーツウォッチ、又は拡張現実、若しくは仮想現実ヘッドセット等)を含め、任意のタイプの計算デバイスであることができる。
【0049】
[0063] ウェブブラウザ308A及び308Bは、リンク識別子(例えばユニフォームリソースロケータ又はURL)によってアドレス指定されたネットワークリソース(ウェブページ等)を検索し、表示に向けてネットワークリソースを提示することができる。特に、ウェブブラウザ308A及び308Bは、ワールドワイドウェブ上の情報にアクセスするためのソフトウェアアプリケーションである。通常、ウェブブラウザ308A及び308Bは、ハイパーテキスト転送プロトコル(HTTP又はHTTPS)を使用してこの要求を行う。ユーザが特定のウェブサイトからのウェブページを要求すると、ウェブブラウザは必要なコンテンツをウェブサーバから検索し、コンテンツを解釈して実行し、次いでクライアント/相手方会議アプリケーション308A及び308Bとして示されているデバイス306A及び306Bのディスプレイにページを表示する。例において、コンテンツは、HTML及びJavaScript等のクライアント側スクリプトを有し得る。表示されると、ユーザは情報を入力し、ページ上で選択を行うことができ、それによりウェブブラウザ308A及び308Bは更なる要求を行う。
【0050】
[0064] 会議アプリケーション310A及び310Bは、サーバ302からダウンロードされ、各ウェブブラウザ308A及び308Bによって実行されるように構成されたウェブアプリケーションであり得る。一実施形態において、会議アプリケーション310A及び310BはJavaScriptアプリケーションであり得る。一例において、会議アプリケーション310A及び310Bは、Typescript言語等の高水準言語で書き、JavaScriptに翻訳又はコンパイルすることができる。会議アプリケーション310A及び310Bは、WebGL JavaScriptアプリケーションプログラミングインターフェースと対話するように構成される。JavaScriptで指定された制御コード及びOpenGL ESシェーディング言語(GLSL ES)で書かれたシェーダコードを有し得る。WebGL APIを使用して、会議アプリケーション310A及び310Bはデバイス306A及び306Bのグラフィックス処理ユニット(図示せず)を利用することが可能であり得る。更に、プラグインを使用しないインタラクティブ二次元及び三次元グラフィックスのOpenGLレンダリング。
【0051】
[0065] 会議アプリケーション310A及び310Bは、サーバ302から、他のアバターの位置及び方向を記述するデータ並びに仮想環境を記述する三次元モデリング情報を受信する。加えて、会議アプリケーション310A及び310Bは、サーバ302から他の会議参加者のビデオストリーム及びオーディオストリームを受信する。
【0052】
[0066] 会議アプリケーション310A及び310Bは、三次元環境を記述するデータ及び各参加者アバターを表すデータを含め、3つの三次元モデリングデータをレンダリングする。このレンダリングには、ラスタ化技法、テクスチャマッピング技法、レイトレーシング技法、シェーディング技法、又は他のレンダリング技法が関わり得る。一実施形態において、レンダリングには、仮想カメラの特性に基づくレイトレーシングが関わり得る。レイトレーシングは、光路を画像面におけるピクセルとしてトレースし、仮想物体との直面の効果をシミュレートすることによって画像を生成することを含む。幾つかの実施形態において、リアリズムを強化するために、レイトレーシングは、反射、屈折、散乱、及び拡散等の光学効果をシミュレートし得る。
【0053】
[0067] このようにして、ユーザはウェブブラウザ308A及び308Bを使用して、仮想空間に入り得る。シーンはユーザの画面に表示される。ユーザのウェブカムビデオストリーム及びマイクロンオーディオストリームはサーバ302に送信される。他のユーザが仮想空間に入ると、それらのユーザのアバターモデルが作成される。このアバターの位置はサーバに送信され、その他のユーザによって受信される。他のユーザはまた、オーディオ/ビデオストリームが利用可能なことの通知をサーバ302から取得もする。ユーザのビデオストリームは、そのユーザに作成されたアバターに配置される。オーディオストリームは、アバターの位置から来るものとして再生される。
【0054】
[0068] 図4A図4Cは、テレビ会議を提供するために図3におけるシステムの種々の構成要素間でデータがいかに転送されるかを示す。図3のように、図4A図4Cの各々は、サーバ302とデバイス306A及び306Bとの間の接続を示す。特に図4A図4Cはそれらのデバイス間のデータフロー例を示す。
【0055】
[0069] 図4Aは、サーバ302が、仮想環境を記述したデータをデバイス306A及び306Bにいかに送信するかを示す図400を示す。特に、両デバイス306A及び306Bは、サーバ302から三次元アリーナ404、背景テクスチャ402、空間階層408、及び任意の他の三次元モデリング情報406を受信する。
【0056】
[0070] 上述したように、背景テクスチャ402は、仮想環境の別個の特徴を示す画像である。画像は規則的(レンガの壁等)又は非規則的であり得る。背景テクスチャ402は、ビットマップ、JPEG、GIF、又は他のファイル画像フォーマット等の任意の一般的な画像ファイルフォーマットで符号化し得る。例えば、遠くの球体に対してレンダリングされる背景画像を記述する。
【0057】
[0071] 三次元アリーナ404は、会議が行われる空間の三次元モデルである。上述したように、三次元アリーナ404は例えば、メッシュと、恐らくは、記述する三次元プリミティブにマッピングされるそれ自体のテクスチャ情報とを含み得る。仮想カメラ及び各アバターは、仮想環境内をナビゲートすることができる空間を定義し得る。したがって、ナビゲート可能な仮想環境の外周をユーザに示すエッジ(壁又はフェンス等)によって区切られ得る。
【0058】
[0072] 空間階層408は、仮想環境において区画を指定するデータである。これらの参加者は、音声が、参加者間で転送される前にいかに処理されるかを特定するのに使用される。下述するように、この区画データは階層を有し得、仮想会議への参加者が私的な会話又は雑談をすることができるエリアで許される音声処理を記述し得る。
【0059】
[0073] 三次元モデル406は、会議を行うために必要な任意の他の三次元モデリング情報である。一実施形態において、これは、各アバターを記述する情報を含み得る。代替又は追加として、この情報は製品デモを含み得る。
【0060】
[0074] 会議を行うために必要な情報が参加者に送信された状態で、図4B及び図4Cは、サーバ302が情報をデバイス間でいかに転送するかを示す。図4Bは、サーバ302が各デバイス306A及び306Bから情報をいかに受信するかを示す図420を示し、図4Cは、サーバ302が各デバイス306B及び306Aに情報をいかに送信するかを示す図420を示す。特に、デバイス306Aは位置及び方向422A、ビデオストリーム424A、並びにオーディオストリーム426Aをサーバ302に送信し、サーバ302は、位置及び方向422A、ビデオストリーム424A、並びにオーディオストリーム426Aをデバイス306Bに送信する。そしてデバイス306Bは位置及び方向422B、ビデオストリーム424B、並びにオーディオストリーム426Bをサーバ302に送信し、サーバ302は、位置及び方向422B、ビデオストリーム424B、並びにオーディオストリーム426Bをデバイス306Aに送信する。
【0061】
[0075] 位置及び方向422A及び422Bは、デバイス306Aを使用するユーザの仮想カメラの位置及び方向を記述する。上述したように、位置は三次元空間における座標(例えばx、y、z座標)であり得、方向は三次元空間における方向(例えばパン、チルト、ロール)であり得る。幾つかの実施形態において、ユーザは仮想カメラのロールを制御することが可能ではないことがあり、したがって、方向はパン角及びチルト角のみを指定することがある。同様に、幾つかの実施形態において、ユーザはアバターのz座標を制御することができないことがあり(アバターは仮想重力によって拘束されるため)、したがって、z座標は不必要であり得る。このようにして、位置及び方向422A及び422Bは各々、少なくとも、三次元仮想空間における水平面上の座標並びにパン値及びチルト値を含み得る。代替又は追加として、ユーザはアバターを「ジャンプ」させることが可能であり得、したがって、Z位置は、ユーザがアバターをジャンプさせているか否かの指示によってのみ指定し得る。
【0062】
[0076] 異なる例において、位置及び方向422A及び422Bは、HTTP要求応答を使用して又はソケットメッセージングを使用して送受信し得る。
【0063】
[0077] ビデオストリーム424A及び424Bは、各デバイス306A及び306Bのカメラから捕捉されたビデオデータである。ビデオは圧縮し得る。例えば、ビデオは、MPEG-4、VP8、又はH.264を含め、任意の一般的に知られているビデオコーデックを使用し得る。ビデオはリアルタイムで捕捉し送信し得る。
【0064】
[0078] 同様に、オーディオストリーム426A及び426Bは、各デバイスのマイクロホンから捕捉されたオーディオデータである。オーディオは圧縮し得る。例えば、ビデオはMPEG-4又はvorbisを含め、任意の一般的に知られているオーディオコーデックを使用し得る。オーディオはリアルタイムで捕捉して送信し得る。ビデオストリーム424A及びオーディオストリーム426Aは、互いと同期して捕捉され、伝送され、提示される。同様に、ビデオストリーム424B及びオーディオストリーム426Bも、互いと同期して捕捉され、伝送され、提示される。
【0065】
[0079] ビデオストリーム424A及び424B並びにオーディオストリーム426A及び426Bは、WebRTCアプリケーションプログラミングインターフェースを使用して伝送し得る。WebRTCはJavaScriptで利用可能なAPIである。上述したように、デバイス306A及び306Bは、会議アプリケーション310A及び310Bとしてウェブアプリケーションをダウンロードして実行し、会議アプリケーション310A及び310BはJavaScriptで実施し得る。会議アプリケーション310A及び310BはWebRTCを使用して、JavaScriptからAPI呼び出しを行うことにより、ビデオストリーム424A及び424B並びにオーディオストリーム426A及び426Bを受信及び送信し得る。
【0066】
[0080] 先に触れたように、ユーザが仮想会議から退出するとき、この離脱は他の全てのユーザに通信される。例えば、デバイス306Aが仮想会議を出る場合、サーバ302は、その離脱をデバイス306Bに通信する。その結果、デバイス306Bはデバイス306Aに対応するアバターのレンダリングを停止し、そのアバターを仮想空間から削除する。更に、デバイス306Bは、ビデオストリーム424A及びオーディオストリーム426Aの受信を停止する。
【0067】
[0081] 上述したように、会議アプリケーション310A及び310Bは、各ビデオストリーム424A及び424Bからの新しい情報、位置及び方向422A及び422B、並びに三次元環境に関連する新しい情報に基づいて仮想空間を周期的又は断続的に再レンダリングし得る。簡潔にするために、これらの更新の各々はここでは、デバイス306Aの視点から説明される。しかしながら、当業者ならば、同様の変更を所与として、デバイス306Bも同様に挙動することを理解しよう。
【0068】
[0082] デバイス306Aは、ビデオストリーム424Bを受信すると、ビデオストリーム424Aからのフレームを、デバイス306Bに対応するアバターにテクスチャマッピングする。そのテクスチャマッピングされたアバターは、三次元仮想空間内で再レンダリングされ、デバイス306Aのユーザに提示される。
【0069】
[0083] デバイス306Aは、新しい位置及び方向422Bを受信すると、新しい位置に位置し新しい方向を向いた、デバイス306Bに対応するアバターを生成する。生成されたアバターは、三次元仮想空間内で再レンダリングされ、デバイス306Aのユーザに提示される。
【0070】
[0084] 幾つかの実施形態において、サーバ302は、三次元仮想環境を記述する更新されたモデル情報を送信し得る。例えば、サーバ302は更新された情報402、404、406、又は408を送信し得る。それが行われると、デバイス306Aは、更新された情報に基づいて仮想環境を再レンダリングする。これは、環境が経時変化する場合、有用であり得る。例えば、屋外イベントは、イベントが進行するにつれて日中から夕暮れに変化し得る。
【0071】
[0085] ここでも、デバイス306Bが仮想会議から出ると、サーバ302は、デバイス306Bがもはや会議に参加していないことを示す通知をデバイス306Aに送信する。その場合、デバイス306Aは、デバイス306Bのアバターのない仮想環境を再レンダリングする。
【0072】
[0086] 図4A図4Cにおける図3は、簡潔にするために2つのデバイスを有して示されているが、本明細書に記載の技法が任意の数のデバイスに拡張できることを当業者は理解するであろう。また、図4A図4Cにおける図3は単一のサーバ302を示しているが、サーバ302の機能が複数の計算デバイスにわたって分散することができることを当業者は理解するであろう。一実施形態において、図4Aにおいて転送されたデータは、サーバ302の1つのネットワークアドレスからのものであり得るが、図4B及び図4Cにおいて転送されるデータは、サーバ302の別のネットワークアドレスに/ネットワークアドレスから転送することができる。
【0073】
[0087] 一実施形態において、参加者は、仮想会議に入る前に、ウェブカム、マイクロホン、スピーカ、及びグラフィカル設定を設定することができる。代替の一実施形態において、アプリケーションを開始した後、ユーザは仮想ロビーに入り得、仮想ロビーにおいて、実際の人物によって制御されるアバターによって迎えられる。この人物は、ユーザのウェブカム、マイクロホン、スピーカ、及びグラフィカル設定を見て変更することが可能である。係員は、例えば見ること、あちこち移動すること、及び対話することについて教えることによって、仮想環境の使用方法をユーザに指示することもできる。ユーザは、準備ができると、仮想待機部屋から自動的に出て、実際の仮想環境に参加する。
【0074】
仮想環境におけるテレビ会議での音量調整
[0088] 実施形態はまた、仮想会議内の位置及び空間の感覚を提供するように音量を調整する。これは例えば、図5図7図8A図8B、及び図9A図9Cに示され、各図について以下説明する。
【0075】
[0089] 図5は、テレビ会議中、仮想環境における位置の感覚を提供するように相対的な左右の音量を調整する方法500を示すフローチャートである。
【0076】
[0090] ステップ502において、音量は、アバター間の距離に基づいて調整される。上述したように、別のユーザのデバイスのマイクロホンからのオーディオストリームが受信される。第1及び第2のオーディオストリームの両方の音量は、第1の位置に対する第2の位置間の距離に基づいて調整される。これを図6に示す。
【0077】
[0091] 図6は、アバター間の距離が増大するにつれて音量がいかに低下するかを示すチャート600を示す。チャート600は、x軸及びy軸に音量602を示す。ユーザ間の距離が増大するにつれて、音量は、基準距離602に達するまで一定のままである。基準距離602に達した時点で、音量は低下し始める。このようにして、他の全てのことは等しく、近いユーザほど、遠いユーザよりも音が大きい。
【0078】
[0092] 音声が低下する速度は低下係数に依存する。これは、テレビ会議システム又はクライアントデバイスの設定に内蔵される係数であり得る。線608及び線610によって示されるように、低下係数が大きいほど、小さいよりも音量は急速に低下する。
【0079】
[0093] 図5に戻ると、ステップ504において、相対的な左右オーディオは、アバターが配置された方向に基づいて調整される。即ち、ユーザのスピーカ(例えばヘッドセット)で出力されるオーディオの音量は、話しているユーザのアバターが配置されている場所の感覚を提供するように変更される。左右のオーディオストリームの相対音量は、オーディオを受け取っているユーザが配置されている位置(例えば仮想カメラの場所)に相対する、オーディオストリームを生成しているユーザが配置された位置(例えば話しているユーザのアバターの場所)の方向に基づいて調整される。位置は、三次元仮想空間内の水平面上にあり得る。左右のオーディオの相対音量は、第2の位置が第1の位置に相対して三次元仮想空間に存在する場所の感覚を提供するようにストリーミングされる。
【0080】
[0094] 例えば、ステップ504において、仮想カメラの左側のアバターに対応するオーディオは、オーディオが、受け取り側のユーザの右耳よりも左耳で大きな音量で出力されるように調整される。同様に、仮想カメラの右側のアバターに対応するオーディオは、オーディオが、受け取り側のユーザの左耳よりも右耳で大きな音量で出力されるように調整される。
【0081】
[0095] ステップ506において、相対的な左右のオーディオは、一方のアバターが他方のアバターに対して向いている方向に基づいて調整される。左右のオーディオストリームの相対音量は、仮想カメラが面している方向とアバターが面している方向との間の角度に基づいて、角度が垂直になるほど、左右のオーディオストリーム間の音量差が大きくなる傾向があるように調整される。
【0082】
[0096] 例えば、アバターが仮想カメラに直接面している場合、オーディオストリームに対応するアバターの相対的な左右の音量は、ステップ506において全く調整されなくてよい。アバターが仮想カメラの左側に面している場合、オーディオストリームに対応するアバターの相対的な左右の音量は、左が右よりも大きいように調整し得る。そしてアバターが仮想カメラの右側に面している場合、オーディオストリームに対応するアバターの相対的な左右の音量は、右が左よりも大きいように調整し得る。
【0083】
[0097] 一例において、ステップ506における計算は、仮想カメラが面している角度とアバターが面している角度とのクロス積を取ることを含み得る。角度は、水平面上で面している方向であり得る。
【0084】
[0098] 一実施形態において、チェックを行い、ユーザが使用しているオーディオ出力デバイスを特定し得る。オーディオ出力デバイスがヘッドフォンのセット又はステレオ効果を提供する別のタイプのスピーカではない場合、ステップ504及び506における調整は行われなくてよい。
【0085】
[0099] ステップ502~506は、あらゆる他の参加者から受信されるあらゆるオーディオストリームに対して繰り返される。ステップ502~506における計算に基づいて、あらゆる他の参加者での左右のオーディオ利得が計算される。
【0086】
[0100] このようにして、各参加者のオーディオストリームは、参加者のアバターが三次元仮想環境において配置された場所の感覚を提供するように調整される。
【0087】
[0101] アバターが配置された場所の感覚を提供するようにオーディオストリームが調整されるのみならず、特定の実施形態において、オーディオストリームは、私的又は半私的音量エリアを提供するようにも調整することができる。このようにして、仮想環境は、ユーザが私的会話を行えるようにする。また、仮想環境は、ユーザが互いと交流でき、従来のテレビ会議ソフトウェアでは可能ではなかった個別の雑談を行えるようにする。これは例えば、図7に関して示される。
【0088】
[0102] 図7は、テレビ会議中、仮想環境において異なる音量エリアを提供するように相対音量を調整する方法700を示すフローチャートである。
【0089】
[0103] 上述したように、サーバは、音声又は音量エリアの仕様をクライアントデバイスに提供し得る。仮想環境は異なる音量エリアに区画化し得る。ステップ702において、デバイスは、各アバター及び仮想カメラがどの音声エリアに配置されているかを特定する。
【0090】
[0104] 例えば、図8A及び図8Bは、テレビ会議中、仮想環境における異なる音量エリアを示す図である。図8Aは、アバター806を制御しているユーザと仮想カメラを制御しているユーザとの間での半私的会話又は雑談を可能にする音量エリア802を有する図800を示す。このようにして、会議テーブル810の周囲のユーザは、部屋の他の人を邪魔することなく会話することができる。仮想カメラのアバター806を制御しているユーザからの音声は、音量エリア802から出ると低下し得るが、完全になくなるわけではない。それにより、通行人は、参加したい場合、会議に加わることができる。
【0091】
[0105] インターフェース800は、下述するボタン804、806、及び808も含む。
【0092】
[0106] 図8Bは、アバター808を制御しているユーザと仮想カメラを制御しているユーザとの間での私的会話を可能にする音量エリア804を有する図800を示す。音量エリア804内に入ると、アバター808を制御しているユーザ及び仮想カメラを制御しているユーザからのオーディオのみが、音量エリア804内部にいるユーザに出力され得る。オーディオがそれらのユーザから会議における他のユーザに全く再生されない場合、それらのオーディオストリームは、他のユーザデバイスに送信すらされなくてもよい。
【0093】
[0107] 音量空間は、図9A及び図9Bに示されるように階層化し得る。図9Bは、階層に配置された異なる音量エリアを有するレイアウトを示す。音量エリア934及び935は音量エリア933内にあり、音量エリア933及び932は音量エリア931内にある。これらの音量エリアは、図900及び図9Aに示されるように、階層ツリーで表される。
【0094】
[0108] 図900において、ノード901は音量エリア931を表し、ツリーのルートである。ノード902及び903はノード901の子であり、音量エリア932及び933を表す。ノード904及び906はノード903の子であり、音量エリア934及び935を表す。
【0095】
[0109] エリア934に配置されたユーザが、エリア932に配置された、発話しているユーザを聞き取ろうとしている場合、オーディオストリームは、オーディオストリームを各々減衰させる幾つかの異なる仮想「壁」を通過する必要がある。特に、音声はエリア932の壁、エリア933の壁、及びエリア934の壁を通過する必要がある。各壁は特定の係数によって減衰させる。この計算は、図7のステップ704及び706に関して説明される。
【0096】
[0110] ステップ704において、階層をトラバースして、アバター間にある種々の音声エリアを特定する。これは例えば、図9Cに示される。話し声の仮想エリアに対応するノード(この場合、ノード904)から開始して、受け取り側ユーザのノード(この場合、ノード902)へのパスが特定される。パスを特定するために、ノード間のリンク952が特定される。このようにして、アバターを含むエリアと仮想カメラを含むエリアとの間のエリアのサブセットが特定される。
【0097】
[0111] ステップ706において、話しているユーザからのオーディオストリームは、エリアのサブセットの各壁伝達係数に基づいて減衰する。各壁伝達係数は、オーディオストリームが減衰する量を指定する。
【0098】
[0112] 追加又は代替として、異なるエリアはその場合、異なる低下係数を有し、方法600に示される距離に基づく計算は、各低下係数に基づいて個々のエリアに適用し得る。このようにして、仮想環境の異なるエリアは異なる率で音を出す。図5に関して上述した方法において特定されるオーディオ利得がオーディオストリームに適用されて、それに従って左右のオーディオを特定し得る。このようにして、音声に方向の間隔を提供するための壁伝達係数、低下係数の両方、及び左右調整は一緒に適用されて、包括的なオーディオ体験を提供し得る。
【0099】
[0113] 異なるオーディオエリアは異なる機能を有し得る。例えば、音量エリアは演壇エリアであり得る。ユーザが演壇エリアに配置されている場合、図5又は図7に関して説明した減衰の幾らか又は全ては生じなくてよい。例えば、低下係数又は壁伝達係数により減衰は生じなくてよい。幾つかの実施形態において、相対的な左右のオーディオはなお調整されて、方向の感覚を提供し得る。
【0100】
[0114] 例示を目的として、図5及び図7に関して説明した方法は、対応するアバターを有するユーザからのオーディオストリームを説明している。しかしながら、同じ方法をアバター以外の他の音声源に適用することも可能である。例えば、仮想環境はスピーカの三次元モデルを有し得る。プレゼンテーションにより又は単に背景音楽を提供するために、上述したアバターモデルと同じように音声をスピーカから発し得る。
【0101】
[0115] 先に触れたように、壁伝達係数を使用してオーディを全体的に分離し得る。一実施形態において、これを使用して、仮想オフィスを作成することができる。一例において、各ユーザは、物理的な(恐らくはホーム)オフィスに、常時オンになっており、仮想オフィスにログインした会議アプリケーションを表示するモニタを有し得る。ユーザが、オフィスにおり、入室不可であるかどうかを示せるようにする特徴があり得る。入室不可インジケータがオフの場合、同僚又はマネージャは仮想空間内をふらっと訪れ、物理的オフィスと同じようにノックするか、又は入室し得る。訪問者は、作業者がオフィスにいない場合、メモを残すことが可能であり得る。作業者が戻ると、作業者は訪問者が残したメモを読むことが可能である。仮想オフィスは、ユーザへのメッセージを表示するホワイトボード及び/又はインターフェースを有し得る。メッセージは電子メールであってもよく、及び/又はSan Francisco, CA所在のSlack Technologies, Inc.から入手可能なSLACKアプリケーション等のメッセージングアプリケーションからであってもよい。
【0102】
[0116] ユーザは、自身の仮想オフィスをカスタマイズ又はパーソナライズ可能であり得る。例えば、ユーザはポスター又は他の壁飾りのモデルを飾ることが可能であり得る。ユーザは、デスク又は植物等の装飾用置物のモデル又は向きを変更可能であり得る。ユーザは、照明又は窓からの眺めを変更可能であり得る。
【0103】
[0117] 図8Aに戻ると、インターフェース800は種々のボタン804、806、及び808を含む。ユーザがボタン804を押下すると、図5及び図7の方法に関して上述した減衰を行うことができ、又はより小量でのみ行うことができる。その状況において、ユーザの声は他のユーザに対して均一に出力され、ユーザが話をミーティングの全参加者に提供できるようにする。ユーザビデオも、下述するように、仮想環境内のプレゼンテーション画面に同様に出力することができる。ユーザがボタン806を押下すると、スピーカモードが有効化される。その場合、オーディオは、背景音楽を再生する等のために、仮想環境内の音声源から出力される。ユーザがボタン808を押下すると、画面共有を有効化し得、ユーザが各自のデバイス上の画面又はウィンドウの内容を他のユーザと共有できるようにする。内容はプレゼンテーションモデルに提示し得る。これについても下述する。
【0104】
三次元環境における提示
[0118] 図10は、三次元仮想環境における三次元モデル1004を有するインターフェース1000を示す。図1に関して上述したように、インターフェース1000は、仮想環境のあちこちをナビゲートすることができるユーザに表示され得る。インターフェース1000に示されるように、仮想環境はアバター1004及び三次元モデル1002を含む。
【0105】
[0119] 三次元モデル1002は、仮想空間内部に置かれた製品の3Dモデルである。人々はこの仮想空間に加わり、モデルを観察することが可能であり、その周囲を歩くことができる。製品は、体験を強化するために局所的音声を有し得る。
【0106】
[0120] より詳細には、仮想空間におけるプレゼンターが3Dモデルを示したい場合、ユーザはインターフェースから所望のモデルを選択する。これは、詳細(モデルの名称及びパスを含む)を更新するメッセージをサーバに送信する。これはクライアントに自動的に通信される。このようにして、三次元モデルは、ビデオストリームの提示と同時に表示されるようにレンダリングし得る。ユーザは、製品の三次元モデルの周囲で仮想カメラをナビゲートすることができる。
【0107】
[0121] 異なる例において、物体は製品デモであってもよく、又は製品の広告であってもよい。
【0108】
[0122] 図11は、テレビ会議で使用される三次元仮想環境におけるプレゼンテーション画面共有を有するインターフェース1100を示す。図1に関して上述したように、インターフェース1100は、仮想環境のあちこちをナビゲートすることができるユーザに表示し得る。インターフェース1100に示されるように、仮想環境はアバター1104及びプレゼンテーション画面1106を含む。
【0109】
[0123] この実施形態において、会議への参加者のデバイスからのプレゼンテーションストリームが受信される。プレゼンテーションストリームは、プレゼンテーション画面1106の三次元モデルにテクスチャマッピングされる。一実施形態において、プレゼンテーションストリームは、ユーザのデバイスのカメラからのビデオストリームであり得る。別の実施形態において、プレゼンテーションストリームは、ユーザのデバイスからの画面共有であり得、その場合、モニタ又はウィンドウが共有される。画面共有又は他の方法を通して、プレゼンテーションビデオ及びオーディオストリームは外部ソース、例えばイベントのライブストリームからであることもできる。ユーザがプレゼンテーションモードを有効化する場合、そのユーザのプレゼンテーションストリーム(及びオーディオストリーム)が、ユーザが使用したい画面の名称がタグ付けられてサーバに公開される。他のクライアントには、新しいストリームが利用可能なことが通知される。
【0110】
[0124] プレゼンターは、聴衆メンバの場所及び向きを制御することも可能であり得る。例えば、プレゼンターは、プレゼンテーション画面に面するように位置決めされ方向付けられるようにミーティングへの他の全ての参加者を再配置するために選択される選択肢を有し得る。
【0111】
[0125] オーディオストリームは、プレゼンテーションストリームと同期して、第1の参加者のデバイスのマイクロホンから捕捉される。ユーザのマイクロホンからのオーディオストリームは、プレゼンテーション画面1106からのものとして他のユーザによって聞かれ得る。このようにして、プレゼンテーション画面1106は上述したように音源であり得る。ユーザのオーディオストリームはプレゼンテーション画面1106から投影されるため、ユーザのアバターからのものは抑制し得る。このようにして、オーディオストリームは、三次元仮想空間内の画面1106上のプレゼンテーションストリームの表示と同期して出力され再生される。
【0112】
ユーザ間の距離に基づく帯域幅の割り振り
[0126] 図12は、三次元仮想環境内のアバターの相対位置に基づいて、利用可能な帯域幅を分配する方法1200を示すフローチャートである。
【0113】
[0127] ステップ1202において、仮想会議空間における第1のユーザと第2のユーザとの間の距離が特定される。距離は、三次元空間における水平面上のユーザ間の距離であり得る。
【0114】
[0128] ステップ1204において、受信したビデオストリームは、近いユーザからのものほど、遠いユーザからのビデオストリームよりも高い優先度が付されるように優先度付けられる。優先値は図13に示されるように特定し得る。
【0115】
[0129] 図13は、y軸上の優先度1306及び距離1302を示すチャート1300を示す。線1306で示されるように、基準距離1304に達するまでは一定を維持する優先度状態。基準距離に達した後、優先度は低下し始める。
【0116】
[0130] ステップ1206において、ユーザデバイスへの利用可能な帯域幅は、種々のビデオストリーム間で分配される。これは、ステップ1204において特定された優先値に基づいて行われ得る。例えば、優先度は、全て一緒に合算すると1になるように比例的に調整し得る。利用可能な帯域幅が不十分である任意のビデオでは、相対優先度をゼロにし得る。次いで、残りのビデオストリームに対して優先度は再び調整される。帯域幅はこれらの相対優先値に基づいて割り振られる。加えて、帯域幅はオーディオストリーム用に確保し得る。これは図14に示されている。
【0117】
[0131] 図14は、帯域幅1406を表すy軸と、相対優先度を表すx軸とを有するチャート1400を示す。有効とするには最小の帯域幅1406がビデオに割り当てられた後、ビデオストリームに割り振られる帯域幅1406は、その相対優先度に比例して増大する。
【0118】
[0132] 割り振られる帯域幅が特定されると、クライアントは、そのビデオに選択され割り振られた帯域幅/ビットレート/フレームレート/解像度でサーバからビデオを要求し得る。これは、クライアントとサーバとの間でネゴシエーションプロセスを開始して、指定された帯域幅でビデオのストリーミングを開始し得る。このようにして、利用可能なビデオ及びオーディオの帯域幅は全ユーザに適正に分割され、優先度が2倍のユーザは2倍多くの帯域幅を取得することになる。
【0119】
[0133] 可能な一実装形態において、同時放送を使用して、全てのクライアントは、異なるビットレート及び解像度で複数のビデオストリームをサーバに送信する。他のクライアントは次いで、クライアントが興味を有し、受信したいこれらのストリームの1つをサーバに示すことができる。
【0120】
[0134] ステップ1208において、仮想会議空間における第1のユーザと第2のユーザとの間で利用可能な帯域幅が、その距離におけるビデオの表示が非効率的であるようなものであるか否かが特定される。この特定は、クライアント又はサーバのいずれかによって行うことができる。クライアントにより行われる場合、クライアントは、サーバがクライアントへのビデオ送信を止めるためのメッセージを送信する。非効率的である場合、第2のユーザのデバイスへのビデオストリームの送信は中止され、第2のユーザのデバイスは、ビデオストリームを静止画像で置換することが通知される。静止画像は単に、受信した最後のビデオフレーム(又は最後のビデオフレームのうちの1つ)であり得る。
【0121】
[0135] 一実施形態において、同様のプロセスをオーディオに対して実行し得、オーディオに確保された部分のサイズを所与として、品質を下げ得る。別の実施形態において、各オーディオストリームに一定の帯域幅が与えられる。
【0122】
[0136] このようにして、実施形態は、全ユーザ及びサーバの性能を上げ、遠く離れたユーザ及び/又は重要性が低いユーザの場合、ビデオストリーム及びオーディオストリームの品質を下げることができる。これは、十分な帯域幅バジェットが利用可能な場合には行われない。低下はビットレート及び解像度の両方で行われる。そのユーザに利用可能な帯域幅をエンコーダによってより効率的に利用することができるため、これはビデオの品質を改善する。
【0123】
[0137] これとは独立して、ビデオ解像度は距離に基づいて縮小され、2倍遠いユーザは半分の解像度を有する。このようにして、不必要な解像度は、画面解像度の制限を所与として、ダウンロードしなくてよい。したがって、帯域幅が保存される。
【0124】
[0138] 図15は、仮想環境内でテレビ会議を提供するのに使用されるデバイスの構成要素を示すシステム1500の図である。種々の実施形態において、システム1500は上述した方法に従って動作することができる。
【0125】
[0139] デバイス306Aはユーザ計算デバイスである。デバイス306Aは、デスクトップ若しくはラップトップコンピュータ、スマートフォン、タブレット、又はウェアラブル(例えばウォッチ又はヘッドマウントディスプレイ)であることができる。デバイス306Aは、マイクロホン1502、カメラ1504、ステレオスピーカ1506、入力デバイス1512を含む。示されていないが、デバイス306Aは、プロセッサ及び永続的な一時的不揮発性メモリも含む。プロセッサは、1つ又は複数の中央演算処理装置、グラフィック処理ユニット、又はそれらの任意の組合せを含むことができる。
【0126】
[0140] マイクロホン1502は音声を電気信号に変換する。マイクロホン1502は、デバイス306Aのユーザの発話を捕捉するように位置決めされる。異なる例において、マイクロホン1502はコンデンサマイクロホン、エレクトレットマイクロホン、可動コイルマイクロホン、リボンマイクロホン、カーボンマイクロホン、圧電マイクロホン、光ファイバマイクロホン、レーザマイクロホン、ウォーターマイクロホン、又はMEMSマイクロホンであることができる。
【0127】
[0141] カメラ1504は、一般に1つ又は複数のレンズを通して光を捕捉することによって画像データを捕捉する。カメラ1504は、デバイス306Aのユーザの写真画像を捕捉するように位置決めされる。カメラ1504はイメージセンサ(図示せず)を含む。イメージセンサは例えば、電荷結合素子(CCD)センサ又は相補型金属酸化膜半導体(CMOS)センサであり得る。イメージセンサは、光を検出して電気信号に変換する1つ又は複数の光検出器を含み得る。同様の時間枠内で一緒に捕捉されたこれらの電気信号は、静止写真画像を構成する。定期的な間隔で一緒に捕捉された一連の静止写真画像はビデオを構成する。このようにして、カメラ1504は画像及びビデオを捕捉する。
【0128】
[0142] ステレオスピーカ1506は、電気オーディオ信号を対応する左右音に変換するデバイスである。ステレオスピーカ1506は、オーディオプロセッサ1520(以下)によって生成され、デバイス306Aのユーザに対してステレオで再生される左オーディオストリーム及び右オーディオストリームを出力する。ステレオスピーカ1506は、周囲スピーカと、音声をユーザの左右の耳に直接再生するように設計されたヘッドフォンとを両方とも含む。スピーカの例には、可動鉄片型ラウドスピーカ、圧電スピーカ、静磁気ラウドスピーカ、静電ラウドスピーカ、リボン及び平面磁気ラウドスピーカ、曲げ波スピーカ、フラットパネルスピーカ、ハイルエアモーショントランスデューサ、透明イオン伝導スピーカ、プラズマアークスピーカ、熱音響スピーカ、ロータリーウーファー、可動コイル、静電、エレクトレット、平面磁気、及びバランスドアーマチェアがある。
【0129】
[0143] ネットワークインターフェース1508は、2つの機器間又はコンピュータネットワーク内の2つのプロトコルレイヤ間のソフトウェア又はハードウェアインターフェースである。ネットワークインターフェース1508は、ミーティングの各参加者のビデオストリームをサーバ302から受信する。ビデオストリームは、テレビ会議への別の参加者のデバイスのカメラから捕捉される。ネットワークインターフェース1508は、三次元仮想空間及びその内部の任意のモデルを指定するデータもサーバ302から受信した。その他の各参加者について、ネットワークインターフェース1508は、三次元仮想空間における位置及び方向を受信する。位置及び方向は、他の各参加者によって入力される。
【0130】
[0144] ネットワークインターフェース1508はまた、データをサーバ302に送信する。ネットワークインターフェース1508は、レンダラー1518によって使用されるデバイス306Aのユーザの仮想カメラの位置を送信し、ビデオストリーム及びオーディオストリームをカメラ1504及びマイクロホン1502から送信する。
【0131】
[0145] ディスプレイ1510は、視覚的又は触覚的形態で電子情報を提示するための出力デバイスである(触覚的形態は例えば、視覚障害者の人々用の触覚電子ディスプレイに使用される)。ディスプレイ1510はテレビジョンセット、コンピュータモニタ、ヘッドマウントディスプレイ、ヘッドアップディスプレイ、拡張現実又は仮想現実ヘッドセットの出力、ブロードキャスト参照モニタ、医療用モニタ、モイバルディスプレイ(モバイルデバイスの)、スマートフォンディスプレイ(スマートフォンの)であることができる。情報を提示するために、ディスプレイ1510は、電子ルミネッセント(ELD)ディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)バックライトLCD、薄膜トランジスタ(TFT)LCD、発光ダイオード(LED)ディスプレイ、OLEDディスプレイ、AMOLEDディスプレイ、プラズマ(PDP)ディスプレイ、量子ドット(QLED)ディスプレイを含み得る。
【0132】
[0146] 入力デバイス1512は、データ及び制御信号をコンピュータ又は情報アプライアンス等の情報処理システムに提供するのに使用される機器である。入力デバイス1512は、ユーザが、レンダラー1518によって使用される仮想カメラの新しい所望位置を入力できるようにし、それにより、三次元環境におけるナビゲーションが可能になる。入力デバイスの例には、キーボード、マウス、スキャナ、ジョイスティック、及びタッチスクリーンがある。
【0133】
[0147] ウェブブラウザ308A及びウェブアプリケーション310Aについて図3に関して上述した。ウェブアプリケーション310Aは、スクリーンキャプチャ1514、テクスチャマッパ1516、レンダラー1518、及びオーディオプロセッサ1520を含む。
【0134】
[0148] スクリーンキャプチャ1514は、プレゼンテーションストリーム、特に画面共有を捕捉する。スクリーンキャプチャ1514は、ウェブブラウザ308Aによって提供されるAPIと対話し得る。APIから利用可能な関数を呼び出すことにより、スクリーンキャプチャ1514はウェブブラウザ308Aに、どのウィンドウ又は画面をシェアしたいかをユーザに尋ねさせ得る。そのクエリへの答えに基づいて、ウェブブラウザ308Aは、画面共有に対応するビデオストリームをスクリーンキャプチャ1514に返し得、スクリーンキャプチャ1514は、サーバ302に、そして最終的には他の参加者のデバイスに送信するためにネットワークインターフェース1508にそれを渡す。
【0135】
[0149] テクスチャマッパ1516は、ビデオストリームを、アバターに対応する三次元モデルにテクスチャマッピングする。テクスチャマッパ1516は、ビデオからの各フレームをアバターにテクスチャマッピングし得る。加えて、テクスチャマッパ1516は、プレゼンテーションストリームをプレゼンテーション画面の三次元モデルにテクスチャマッピングし得る。
【0136】
[0150] レンダラー1518は、デバイス306Aのユーザの仮想カメラの視点から、ディスプレイ1510に出力するために、受信された対応する位置に配置され方向を向いた各参加者のアバターのテクスチャマッピングされた三次元モデルを含む三次元仮想空間をレンダリングする。レンダラー1518は、例えばプレゼンテーション画面を含む任意の他の三次元モデルもレンダリングする。
【0137】
[0151] オーディオプロセッサ1520は受信したオーディオストリームの音量を調整して、左オーディオストリーム及び右オーディオストリームを特定して、第2の位置が第1の位置に対して三次元仮想空間にある場所の感覚を提供する。一実施形態において、オーディオプロセッサ1520は、第1の位置に対する第2の位置間の距離に基づいて音量を調整する。別の実施形態において、オーディオプロセッサ1520は、第1の位置に対する第2の位置の方向に基づいて音量を調整する。更に別の実施形態において、オーディオプロセッサ1520は、三次元仮想空間内の水平面上の第1の位置に対する第2の位置の方向に基づいて音量を調整する。更に別の実施形態において、オーディオプロセッサ1520は、アバターが仮想カメラの左側に配置される場合、左オーディオストリームがより大きな音量を有する傾向を有し、アバターが仮想カメラの右側に配置される場合、右オーディオストリームがより大きな音量を有する傾向を有するように、三次元仮想空間において仮想カメラが面している方向に基づいて音量を調整する。最後に、更に別の実施形態において、オーディオプロセッサ1520は、仮想カメラが面する方向とアバターが面する方向との間の角度に基づいて、角度が、アバターが面する方向により垂直になるほど、左右のオーディオストリーム間の温良さが大きくなる傾向を有するように音量を調整する。
【0138】
[0152] オーディオプロセッサ1520は、仮想カメラが配置されたエリアに対する、スピーカが配置されたエリアに基づいてオーディオストリームの音量を調整することもできる。この実施形態において、三次元仮想空間は複数のエリアにセグメント化される。これらのエリアは階層を有し得る。スピーカ及び仮想カメラが異なるエリアに配置されている場合、壁伝達係数を適用して、発話オーディオストリームの音量を減衰させ得る。
【0139】
[0153] サーバ302は、出席者通知器1522、ストリーム調整器1524、及びストリーム転送器1526を含む。
【0140】
[0154] 出席者通知器1522は、参加者がミーティングに加わるとき及びミーティングから去るとき、会議参加者に通知する。新しい参加者がミーティングに加わる場合、出席者通知器1522は、新しい参加者が加わったことを示すメッセージを会議へのその他の参加者のデバイスに送信する。出席者通知器1522は、ビデオ、オーディオ、及び位置/方向情報のその他の参加者への転送を開始するようにストリーム転送器1526にシグナリングする。
【0141】
[0155] ストリーム調整器1524は、第1のユーザのデバイスのカメラから捕捉されたビデオストリームを受信する。ストリーム調整器1524は、仮想会議のデータを第2のユーザに送信するために利用可能な帯域幅を特定する。ストリーム調整器1524は、仮想会議空間における第1のユーザと第2のユーザとの間の距離を特定する。そしてストリーム調整器1524は、利用可能な帯域幅を第1のビデオストリームと第2のビデオストリームとの間で相対距離に基づいて分配する。このようにして、ストリーム調整器1524は、遠いユーザからのビデオストリームよりも近いユーザのビデオストリームに高い優先度を付与する。追加又は代替として、ストリーム調整器1524は、恐らくはウェブアプリケーション310Aの一部としてデバイス306Aに配置し得る。
【0142】
[0156] ストリーム転送器1526は、受信した位置/方向情報、ビデオ、オーディオ、及び画面共有画面をブロードキャストする(ストリーム調整器1524によって調整が行われた状態で)。ストリーム転送器1526は、会議アプリケーション310Aからの要求に応答してデバイス306Aに情報を送信し得る。会議アプリケーション310Aは、出席者通知器1522からの通知に応答してその要求を送信し得る。
【0143】
[0157] ネットワークインターフェース1528は、2つの機器間又はコンピュータネットワーク内の2つのプロトコルレイヤ間のソフトウェア又はハードウェアインターフェースである。ネットワークインターフェース1528は、モデル情報を種々の参加者のデバイスに送信する。ネットワークインターフェース1528は、種々の参加者からビデオ、オーディオ、及び画面共有画面を受信する。
【0144】
[0158] スクリーンキャプチャ1514、テクスチャマッパ1516、レンダラー1518、オーディオプロセッサ1520、出席者通知器1522、ストリーム調整器1524、及びストリーム転送器1526は各々、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施することができる。
【0145】
[0159] 「(a)」、「(b)」、「(i)」、「(ii)」、等の識別子が異なる要素又はステップに使用されることがある。これらの識別子は明確にするために使用されており、必ずしも要素又はステップの順序を示しているわけではない。
【0146】
[0160] 本発明について、指定された機能の実施及びそれらの関係を示す機能構築ブロックを用いて上述した。これらの機能構築ブロックの境界は、説明の便宜のために本明細書において任意に定義されている。指定された機能及びその関係が適宜実行される限り、代替の境界を定義することが可能である。
【0147】
[0161] 特定の実施形態の上記説明は、当技術分野の技能内の知識を適用することにより、必要以上の実験なしで且つ本発明の一般概念から逸脱せずに、他人が、特定の実施形態等の種々の用途に向けて容易に変更及び/又は適合できるほど、本発明の一般性質を十分に明らかにするであろう。したがって、そのような適合及び変更が、本明細書に提示された教示及び指針に基づいて、開示された実施形態の意味及び均等物の範囲内であることが意図される。本明細書における表現及び用語が限定ではなく説明を目的としており、したがって、本明細書の用語又は表現は教示及び指針に鑑みて当業者によって解釈されるべきであることを理解されたい。
【0148】
[0162] 本発明の幅及び範囲は、上述した例示的な実施形態のいずれによっても限定されるべきではなく、以下の特許請求の範囲及びそれらの均等物に従ってのみ規定されるべきである。
【要約】
本明細書に開示されるのは、ビデオアバター(102A、102B)が仮想環境内でナビゲートできるようにする、ウェブベースのテレビ会議システムである。システムは、プレゼンテーションストリームを仮想環境内に配置されたプレゼンター画面(104A、104B)にテクスチャマッピングできるようにするプレゼンモードを有する。相対的な左右の音声は、仮想空間におけるアバターの位置の感覚を提供するように調整される。音声は、アバターが配置されているエリア及び仮想カメラが配置されているエリアに基づいて更に調整される。ビデオストリームの品質は、仮想空間における相対位置に基づいて調整される。三次元モデリングが仮想テレビ会議環境内部で利用可能である。
図1
図2
図3
図4A
図4B
図4C
図5
図6
図7
図8A
図8B
図9A
図9B
図9C
図10
図11
図12
図13
図14
図15