(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-21
(54)【発明の名称】リモート端末の没入型遠隔会議及びテレプレセンスのためのオーバーレイ処理のパラメータ
(51)【国際特許分類】
H04N 7/15 20060101AFI20221214BHJP
H04N 21/431 20110101ALI20221214BHJP
G06F 3/01 20060101ALI20221214BHJP
【FI】
H04N7/15
H04N21/431
G06F3/01 510
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022523169
(86)(22)【出願日】2021-04-12
(85)【翻訳文提出日】2022-04-18
(86)【国際出願番号】 US2021026798
(87)【国際公開番号】W WO2021257167
(87)【国際公開日】2021-12-23
(32)【優先日】2020-06-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】アビシェーク,ロヒット
(72)【発明者】
【氏名】ソダガァ,イラジ
【テーマコード(参考)】
5C164
5E555
【Fターム(参考)】
5C164FA10
5C164UB88P
5C164VA04S
5C164VA07P
5C164VA35P
5E555AA27
5E555BA13
5E555BB13
5E555BC08
5E555CB47
5E555DA08
5E555DC09
5E555FA00
(57)【要約】
ビデオ会議のための方法、コンピュータプログラム、及びコンピュータシステムが提供される。没入型遠隔会議セッションに関連付けられたビデオデータが受信される。ビデオデータに関連付けられたパラメータが識別され、それによって、パラメータは、没入型遠隔会議セッションに関連付けられたオーバーレイデータを指定する。ビデオデータは、識別されたパラメータに基づいて1つ以上のオーバーレイとともに表示される。
【特許請求の範囲】
【請求項1】
プロセッサによって実行可能な、ビデオ会議のための方法であって:
没入型遠隔会議セッションに関連付けられたビデオデータを受信することと;
前記ビデオデータに関連するパラメータを識別することであって、前記パラメータは、前記没入型遠隔会議セッションに関連付けられたオーバーレイデータを指定する、識別することと;
識別された前記パラメータに基づいて1つ以上のオーバーレイとともに前記ビデオデータを表示することと;を含む、
方法。
【請求項2】
前記パラメータは、セッション記述プロトコル(SDP)で提供される、
請求項1に記載の方法。
【請求項3】
前記パラメータは、最初のオファー-アンサーネゴシエーション中、又は、前記没入型遠隔会議セッション中にネゴシエートされる、
請求項1又は2に記載の方法。
【請求項4】
前記パラメータは、前記オーバーレイの最大数を定義し、特定の時間にオーバーレインスタンスの数を制限する、
請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
前記パラメータは、所与の時間インスタンスにおいてセンダによって共有されるオーバーレイIDのリストを定義する、
請求項1乃至4のいずれか1項に記載の方法。
【請求項6】
前記パラメータは、センダによって共有され、所与の時間インスタンスにおいてレシーバによってサポートされるオーバーレイIDのリストを定義する、
請求項1乃至4のいずれか1項に記載の方法。
【請求項7】
前記パラメータは、レシーバがセンダによって共有されるオーバーレイ以外のオーバーレイを使用することを許容されるかどうかを定義する、
請求項1乃至5のいずれか1項に記載の方法。
【請求項8】
前記パラメータは、レシーバがオーバーレイを受信し、使用してもよい許可されたセンダのリストを定義する、
請求項1乃至5のいずれか1項に記載の方法。
【請求項9】
ニューラルネットワークモデルを圧縮するためのコンピュータシステムであって、前記コンピュータシステムは:
コンピュータプログラムコードを記憶するように構成された1つ以上のコンピュータ可読非一時的記憶媒体と;
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって請求項1乃至8のいずれか1項に記載の方法を実行するように構成された1つ以上のコンピュータプロセッサと;を有する、
コンピュータシステム。
【請求項10】
ニューラルネットワークモデルを圧縮するためのコンピュータプログラムをその上に記憶した非一時的コンピュータ可読媒体であって、前記コンピュータプログラムは、1つ以上のコンピュータプロセッサに、請求項1乃至8のいずれか1項に記載の方法を実行させる、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本出願は、米国特許商標庁に、2020年6月15日に出願された米国仮特許出願第63/039,336号、及び2020年11月11日に出願された米国特許出願第17/095,239号からの優先権を主張し、これらの全体は参照により本明細書に組み込まれる。
【0002】
開示された主題は、遠隔端末のための没入型(Immersive)遠隔会議及びテレプレゼンス(Teleconferencing and Telepresence for Remote Terminals)(ITT4RT)のためのオーバーレイ処理(overlay handling)に関し、より具体的には、全方位(omnidirectional)ビデオ及び画像のためのオーバーレイのシグナリングに関し、例えば、プレゼンテーション/スクリーン共有ストリーム又は2Dビデオを、360ビデオストリームの上のオーバーレイとして見ることに関する。
【背景技術】
【0003】
全方位メディアストリームが使用されるとき、ユーザのビューポートに対応するコンテンツの部分のみが、ヘッドマウントディスプレイを使用している間に、レンダリングされ、ユーザにメディアストリームのリアルなビューを与える。
【0004】
図1は、没入型遠隔会議通話の従来のシナリオ(シナリオ1)を示しており、ここで、この通話(call)は、A(101)、B(102)、及びC(103)の間で開催される。ここで、Aは全方位カメラ(104)を備えた会議室を表し、BとCはそれぞれHMD及びモバイルデバイスを用いた遠隔参加者である。この場合、参加者BとCは、ビューポートの向きをAに送信し、Aは彼らにビューポート依存のストリームを送信する。
【0005】
拡張シナリオ(シナリオ2)が
図2aに示され、これは、複数の会議室(2a01、2a02、2a03、2a04)からなる。ユーザB(2a06)はビデオを見るためにHMDを使用し、ユーザC(2a07)はストリームを見るためにモバイルデバイスを使用する。BとCは、ビューポートの向きをルームに送信し、ルームはビューポートに依存するストリームを送信する。別のシナリオは、
図2bに示すように、MRF/MCU(2b05)を用いて通話がセットアップされる場合であり、ここで、メディアリソース機能(MRF)及びメディア制御ユニット(MCU)は、マルチパーティの会議通話において端末をブリッジングするためのメディア関連機能を提供するマルチメディアサーバである。ここでは、会議室がそれぞれのビデオをMRF/MCUに送る。これらのビデオは、ビューポートに依存しないビデオである。すなわち、360度のビデオ全体が、特定のビデオをストリーミングするユーザのビューポートに関係なく、メディアサーバに送信される。メディアサーバは、ユーザ(B(2b06)、C(2b07))のビューポートの向きを受信し、それに応じてビューポート依存のストリームを彼らに送信する。
【0006】
さらに、拡張シナリオでは、リモートユーザは会議室(2a01-2a04/2b01-2b04)から利用可能な360度ビデオの1つを選択して見ることができる。この場合、ユーザはストリーミングしたいビデオとビューポートの向きに関する情報を会議室又はMRF/MCUに送信する。ユーザは、アクティブな発言者(active speaker)に基づいて、ある部屋から別の部屋への切り替えをトリガすることができる。加えて、メディアサーバは、アクティブなユーザを持たない会議室からのビデオストリームの受信を一時停止することができる。
【0007】
ISO23090-2は、オーバーレイを「全方位ビデオ若しくは画像アイテム、又はビューポート上にレンダリングされるビジュアルメディアのピース」と定義しているが。ここでは、
図2a/2bを参照すると、会議室Aで参加者がプレゼンテーションを共有している場合、会議室Aで表示されている以外に、このプレゼンテーションはまたストリームとして他のユーザにもブロードキャストされる。このストリームは、360度のビデオの上に重ねることができる。加えて、オーバーレイは、2Dストリームにも使用することができる。
【0008】
ITT4RTで使用するために定義されたオーバーレイレンダリングに次の2種類がある。
・ビューポート相対オーバーレイ(Viewport-relative overlay)
・球相対2Dオーバーレイ(Sphere relative 2D overlay)
以下のパラメータは、OMAF仕様と整合している「球相対2Dオーバーレイ」に対して定義することができる:
overlay_ID, overlay_azimuth, overlay_elevation, overlay_tilt, overlay_azimuth_range, overlay_elevation_range, overlay_rot_yaw, overlay_rot_pitch, and overlay_rot_roll, region_depth_minus1, timeline_change_flag, name
【0009】
「ビューポート関連オーバーレイ」について、以下のパラメータがITT4RTに対して定義することができる:
overlay_ID, overlay_rect_left_percent, overlay_rect_top_percent, overlay_rect_width_percent, overlay_rect_height_percent, relative_disparity_flag, disparity_in_percent, disparity_in_pixels, name.
【0010】
オーバーレイとのユーザインタラクションに関して、オーバーレイは、信号で以下のパラメータを追加的に含むことができる:
【0011】
change_position_flag, change_depth_flag, switch_on_off_flag,change_opacity_flag, resize_flag, otation_flag, change_position_flag, change_depth_flag, switch_on_off_flag, change_opacity_flag, resize_flag, rotation_flag。
【発明の概要】
【0012】
実施形態は、ビデオ会議のための方法、システム、及びコンピュータ可読媒体に関する。一態様によれば、ビデオ会議の方法が提供される。この方法は、没入型遠隔会議セッションに関連付けられたビデオデータを受信することを含み得る。ビデオデータに関連付けられるパラメータが識別され、それによって、パラメータは、没入型遠隔会議セッションに関連付けられたオーバーレイデータを指定する(specifies)。ビデオデータは、識別されたパラメータに基づいて1つ又は複数のオーバーレイとともに表示される。
【0013】
別の態様によれば、ビデオ会議用のコンピュータシステムが提供される。コンピュータシステムは、1つ又は複数のプロセッサ、1つ又は複数のコンピュータ可読メモリ、1つ又は複数のコンピュータ可読有形記憶装置、及び1つ又は複数のメモリのうちの少なくとも1つを介して1つ又は複数のプロセッサのうちの少なくとも1つによって実行するために、1つ又は複数の記憶装置のうちの少なくとも1つに記憶されたプログラム命令を含み、それによってコンピュータシステムは方法を実行することができる。この方法は、没入型遠隔会議セッションに関連付けられたビデオデータを受信することを含み得る。ビデオデータに関連付けられたパラメータが識別され、それによって、パラメータは、没入型遠隔会議セッションに関連付けられたオーバーレイデータを指定する。ビデオデータは、識別されたパラメータに基づいて1つ又は複数のオーバーレイとともに表示される。
【0014】
さらに別の態様によれば、ビデオ会議用のコンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ又は複数のコンピュータ可読記憶装置と、1つ又は複数の有形記憶装置のうちの少なくとも1つに記憶されたプログラム命令と、プロセッサによって実行可能なプログラム命令とを含み得る。プログラム命令は、従って、没入型遠隔会議セッションと関連付けられたビデオデータを受信することを含み得る方法を実行するためのプロセッサによって実行可能である。ビデオデータに関連するパラメータが識別され、それによって、パラメータは、没入型遠隔会議セッションに関連するオーバーレイデータを指定する。ビデオデータは、識別されたパラメータに基づいて1つ又は複数のオーバーレイとともに表示される。
【図面の簡単な説明】
【0015】
これら及び他の目的、特徴及び利点は、添付の図面に関連して読まれることになる例示的な実施形態の以下の詳細な説明から明らかになるであろう。図面の種々の特徴は、図面が、詳細な説明に関連して当業者の理解を容易にすることを明確にするためのものであるため、正確なスケールではない。
【0016】
【
図1】没入型遠隔会議のためのエコシステムの概略図である。
【0017】
【
図2a】MRF/MCUなしのマルチパーティの複数会議室遠隔会議の概略図である。
【0018】
【
図2b】MRF/MCUを用いたマルチパーティの複数会議室遠隔会議の概略図である。
【0019】
【
図3a】MRF/MCUなしの単一のセンダからのオーバーレイを用いるマルチパーティ複数会議室遠隔会議を示している。
【0020】
【
図3b】MRF/MCUなしの単一のセンダからのオーバーレイを用いるマルチパーティ複数会議室遠隔会議を示している。
【0021】
【
図4a】MRF/MCUなしの複数センダからのオーバーレイを用いるマルチパーティ複数会議室遠隔会議。
【0022】
【
図4b】MRF/MCUを用いる複数センダからのオーバーレイを用いるマルチパーティ複数会議室遠隔会議。
【0023】
【
図5】没入型遠隔会議のためのプログラムによって実行されるステップを示す動作フローチャートである。
【0024】
【発明を実施するための形態】
【0025】
請求項に係る構造及び方法の詳細な実施形態が、本明細書に開示されている;しかし、開示された実施形態は、単に、種々の形態で実施され得る請求項に係る構造及び方法を例示するに過ぎないことを理解することができる。しかしながら、これらの構造及び方法は、多くの異なる形態で具体化することができ、本明細書に記載の例示的な実施形態に限定されるものと解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が詳細かつ完全であり、当業者に範囲を完全に伝えるように提供される。説明では、よく知られた特徴及び技術の詳細は、提示された実施形態を不必要に不明瞭にすることを避けるために省略することができる。
【0026】
様々な実施形態による方法、装置(システム)、及びコンピュータ可読媒体のフロー図及び/又はブロック図を参照して、態様が本明細書に記載される。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0027】
本開示は、レシーバ(receiver)においてユーザが使用できるオーバーレイの最大数を定義するために、オーバーレイパラメータを導入する。
【0028】
本開示は、センダ(sender)が共有しているオーバーレイのリストを定義するオーバーレイパラメータを導入する。
【0029】
本開示は、センダが共有し、レシーバにおいてユーザが使用することを望むオーバーレイのリストを定義するオーバーレイパラメータを導入する。
【0030】
本開示は、レシーバにおけるユーザが360度のビデオの上にある360度のビデオのセンダによって共有されたストリーム以外のストリームからのオーバーレイを使用することが許されるかどうかを定義するために、オーバーレイパラメータを導入する。
【0031】
本開示は、レシーバにおけるユーザが360度のビデオのセンダによって共有されるオーバーレイとともに彼らのオーバーレイを使用してもよい、許可されたセンダのリストを定義するためにオーバーレイパラメータを導入する。
【0032】
没入型遠隔会議に関して、オーバーレイビデオ又は画像が360度ビデオにスーパーインポーズされる(superimposed)とき、以下のような情報を含むべきである:
・ オーバーレイとして使用される画像又はビデオを指定するオーバーレイソース
・ オーバーレイがビューポート又は球に対してアンカーされているかどうかを記述するオーバーレイレンダリングタイプ
・ 不透明度などのレンダリングプロパティ
・ ユーザインタラクションプロパティ。
【0033】
図2a~2bに戻って参照すると、遠隔会議において全方位カメラを備えた複数の会議室があり、ユーザは、没入型ビデオとして表示されることになる会議室のうちの1つからのビデオストリームを選択する。ここで、ユーザがストリーミングしている360度のビデオで追加のプレゼンテーションマテリアル/共有画面が使用されるとき、360度のビデオの上にオーバーレイとしての別のストリームとして送信される。
【0034】
実施形態では、ユーザ(3a01、3b01)が、テレビ会議室A(3a02、3b02)から、そのHMD上で、没入型ビデオをストリーミングしている
図3a及び3bを参照する。ルームAは、会議室X(3a03、3b03)、Y(3a04、3b04)及びZ(3a05、3b05)から来るビデオストリームを表示するために画面共有を使用し、ここで、Xは2Dビデオストリームをストリーミングし、Y及びZはプレゼンテーションストリームをストリーミングする。X、Y、Zからのストリームは、他のすべてのリモートユーザにもブロードキャストされる。ユーザは、ユーザがサポートできるオーバーレイの最大数として定義できるパラメータ"max_overlay"を使用し得る。この値は、ユーザのリソースの可用性に基づき得る。この容量は、最初のオファー-アンサーネゴシエーション(offer-answer negotiation)中にセッション記述プロトコル(SDP)で提供され得、また、デバイスのバッテリ消費量、帯域幅可用性などのユーザのリソース可用性の変化に応じてセッション中にネゴシエートされ得る。max_overlay=0の場合は、レシーバがオーバーレイをサポートしないときのシナリオのために予約される。同じことが、通話をセットアップするためにMRF/MCU(3b06)が使用される場合の
図3bに示される。
【0035】
同じ又は別の実施形態では、追加のパラメータ“list_overlay”が定義され、これはセンダが共有しているオーバーレイのリストを(それらのオーバーレイid、overlay_idをリストすることによって)含み得る。これはセンダによってレシーバに送信され得、レシーバはリストからストリーミングされることになるオーバーレイを選択し得、センダに削減されたリストを送信し得る。このパラメータは、最初のオファー-アンサーネゴシエーション中にネゴシエートされ得る又はセッション中に再ネゴシエートされ得、SDPで提供される。list_overlay=0の場合は、レシーバがオーバーレイをサポートしない場合、すなわちmax_overlayが0に等しい場合のシナリオのために予約される。センダからユーザに送信されるオーバーレイの総数はmax_overlay値未満であるべきである。
【0036】
同じ又は別の実施形態では、オーバーレイのリストを送信することに加えて、センダはまた“list_overlay”パラメータに含まれ得るオーバーレイ優先度(overlay priority)を送信し得る。この優先度はセンダによって設定され、ストリームの内容に基づく。例えば、プレゼンテーションのためのサポート資料は、他の部屋の2Dビデオと比較して、より高い優先度が与えられる。これに加えて、センダはまた、オーバーレイの各々について帯域幅及びデコーディング計算要件をオプションで送信し得る。list_overlay=0は、センダがユーザにオーバーレイリストを送信せず、その結果、ユーザがオーバーレイを受信しないシナリオのために予約される。ユーザは、センダからオーバーレイリストを受信すると、サポートできるオーバーレイリストで応答する。これは、オーバーレイ優先度及びセンダによって送られたオーバーレイ特性、並びにレシーバの計算リソース及びレシーバのために利用可能なネットワーク帯域幅に基づき得る。これはパラメータ“list_overlay”の下で定義され得る。これらのパラメータは、オファー-アンサーネゴシエーション中又はセッション中にネゴシエートされ得、SDPで提供される。セッション中にユーザの帯域幅が減るシナリオを考えてみる。これが起こる時、"max_overlay"とオプションで"list_overlay"パラメータが再ネゴシエートされ得、結果としてlist_overlayの値が減少し得る。
【0037】
別の実施形態では、クライアントがAからの360度のビデオストリームを使用したいが、ストリームがAによって共有されていないY(4a304)及びZ(4a305)からのオーバーレイを使用したい場合のシナリオを検討する
図4aを参照する。この場合、クライアントは、360度のビデオストリームのセンダが、そのビデオ上でストリーミングされることになる他のソースからのオーバーレイを、すなわちAからの360度のビデオストリームを、ユーザが使用することを許容するかどうかを知る必要がある。そうするために、“use_other_overlay_flag”が追加され得る。use_other_overlay_flagは、1に設定されるとき、360度ビデオのセンダによって共有されていない他のセンダからのオーバーレイを使用することをユーザが許可されたことを指定する。この値は、360度のビデオがストリーミングされているセンダによって設定され得る。同じことが、通話をセットアップするためにMRF/MCU(4b06)が使用される場合の
図4bに示される。値が0の"use_other_overlay_flag"は、レシーバがこのセンダのビデオストリームによる他のセンダのオーバーレイを使用することが許可されないことを意味する。
【0038】
同じ又は別の実施形態では、use_other_overlay_flagが1に等しい場合、センダは、360度のビデオストリームと共にそれらのオーバーレイが使用され得る他のセンダのリストをレシーバに送信し得る。これはパラメータ"list_allowed_sender_overlays"を使用して定義できる。use_other_overlay_flagが0と等しい場合、ユーザは、360度のビデオストリームセンダによってそのストリームが共有されない他のリモートユーザ/会議室からのストリームをオーバーレイすることが許可されない。
【0039】
同じ実施形態又は別の実施形態では、上記のパラメータは、球相対二次元オーバーレイのレンダリング及びビューポート相対オーバーレイに使用することができる。
【0040】
上述の没入型遠隔会議及びテレプレゼンスのためのオーバーレイハンドリングのための技術は、コンピュータ可読命令を用いてコンピュータソフトウェアとして実装することができ、1つ以上のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図6は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム600を示す。
【0041】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィックス処理ユニット(GPU)などによって、直接的に、又はインタープリテーション、マイクロコード実行などを通して実行されることができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、又は同様のメカニズムの対象となり得る任意の適切なマシンコード又はコンピュータ言語を使用してコーディングされることができる。
【0042】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、モノのインターネット等を含む種々のタイプのコンピュータ又はそのコンポーネント上で実行することができる。
【0043】
次に、
図5を参照すると、コアテンションスコア(co-attention scores)に基づいてクエリをマッチさせるプログラムによって実行される方法500を示す動作フローチャートが示されている。
【0044】
602において、方法500は、没入型遠隔会議セッションと関連付けられたビデオデータを受信することを含む。
【0045】
604において、方法500は、ビデオデータに関連するパラメータを識別することを含み、それによって、パラメータは、没入型遠隔会議セッションに関連するオーバーレイデータを指定する。
【0046】
606において、方法500は、識別されたパラメータに基づいて、1つ以上のオーバーレイとともにビデオデータを表示することを含む。
【0047】
図5は、一実装形態の例示にすぎず、異なる実施形態がどのように実装され得るかに関する限定を意味しないことを理解されたい。図示された環境に対する多くの修正が、設計及び実装要件に基づいて行われ得る。
【0048】
コンピュータシステム600のための
図6に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用の範囲又は機能に関する限定を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム600の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組み合わせに関するいかなる依存性又は要件を有すると解釈されるべきではない。
【0049】
コンピュータシステム600は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通して、一人又は複数の人間ユーザによる入力に応答し得る。ヒューマンインターフェースデバイスはまた、オーディオ(スピーチ、音楽、周囲の音など)、画像(スキャン画像、静止画像カメラから取得された写真画像など)、ビデオ(2次元ビデオ、立体映像を含む3次元ビデオなど)のような、人間による意識的入力に必ずしも直接関係しない特定の媒体をキャプチャするために使用することができる。
【0050】
入力ヒューマンインターフェースデバイスは:キーボード501、マウス502、トラックパッド503、タッチスクリーン510、データグローブ(図示せず)、ジョイスティック505、マイクロホン506、スキャナ507、カメラ508のうちの1つ以上を含み得る。
【0051】
コンピュータシステム600はまた、特定のヒューマンインターフェース出力デバイスを含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び匂い/味を通して、1人又は複数の人間のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン510、データグローブ(図示せず)、又はジョイスティック505による触覚フィードバック、しかし、入力デバイスとして機能を果たさない触覚フィードバックであることもできる)、オーディオ出力デバイス(スピーカ509、ヘッドフォン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン510など、各々はタッチスクリーン入力機能を有する又は有さず、各々は触覚フィードバック機能を有する又は有さない-これらのうちのいくつかは、ステレオグラフィー出力のような手段を介して、2次元視覚出力又は3次元以上の出力を出力し得る;バーチャルリアリティグラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず))、及びプリンタ(図示せず)を含み得る。
【0052】
コンピュータシステム600はまた、人間がアクセス可能な記憶装置及びそれらの関連媒体、例えば、CD/DVDなどの媒体521を備えたCD/DVD ROM/RW520を含む光学媒体、サムドライブ522、リムーバブルハードドライブ又はソリッドステートドライブ523、テープ及びフロッピー(登録商標)ディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの特殊なROM/ASIC/PLDベースのデバイスなどを含むことができる。
【0053】
当業者はまた、本開示の主題に関連して使用される用語「コンピュータ可読媒体」は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解すべきである。
【0054】
コンピュータシステム600はまた、1つ以上の通信ネットワークへのインターフェースを含むことができる。ネットワークは、例えば、無線、有線、光であることができる。ネットワークは、さらに、ローカル、ワイドエリア、メトロポリタン、車両及び産業、リアルタイム、遅延耐性などであることができる。ネットワークの例は、イーサネット(登録商標)、無線LAN、GSM、3G、5G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTV有線又はワイヤレスワイドエリアデジタルネットワーク、CANBusを含む車両及び産業などを含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(449)(例えば、コンピュータシステム600のUSBポート)に取り付けられる外部ネットワークインターフェースアダプタを必要とする;他のネットワークは、一般に、後述するシステムバスに取り付けることによって、コンピュータシステム600のコアに組み込まれる(例えば、PCコンピュータシステムへのイーサネット(登録商標)インターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム600は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、TV放送)、単方向の送信のみ(例えば、CANbusから特定のCANbusデバイスへ)、又は、例えば、ローカル又はワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双方向であることができる。特定のプロトコル及びプロトコルスタックを、上述のように、これらのネットワーク及びネットワークインターフェースの各々で使用することができる。
【0055】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶装置、及びネットワークインターフェースは、コンピュータシステム600のコア540に取り付けることができる。
【0056】
コア540は、1つ以上の中央処理装置(CPU)541、グラフィックス処理装置(GPU)542、フィールドプログラマブルゲートアレイ(FPGA)543の形態の特殊化されたプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ544などを含むことができる。これらの装置は、リードオンリメモリ(ROM)545、ランダムアクセスメモリ546、ユーザがアクセスできない内蔵ハードドライブ、SSDなどの内部大容量記憶装置547と共に、システムバス548を介して接続され得る。いくつかのコンピュータシステムでは、システムバス548は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能にすることができる。周辺装置は、コアのシステムバス548に直接、又は周辺バス549を介して取り付けることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0057】
CPU541、GPU542、FPGA543、及びアクセラレータ544は、組み合わせて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM545又はRAM546に記憶することができる。移行データはまた、RAM546に記憶することができるが、永久データは、例えば、内部大容量記憶装置547に記憶することができる。1つ以上のCPU541、GPU542、大容量記憶装置547、ROM545、RAM546などと密接に関連付けることができるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索を可能にすることができる。
【0058】
コンピュータ可読媒体は、種々のコンピュータに実装された動作を実行するためにコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築することができ、又はそれらは、コンピュータソフトウェア技術の当業者に良く知られかつ利用可能な種類のものとすることができる。
【0059】
一例として、限定するものではなく、アーキテクチャを有するコンピュータシステム600、具体的にはコア540は、1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行するプロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として、機能を提供することができる。そのようなコンピュータ可読媒体は、コア内部大容量記憶装置547又はROM545のような非一時的な性質のコア540の特定の記憶装置と同様に、上述したように、ユーザがアクセス可能な大容量記憶装置に関連する媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのような装置に記憶され、コア540によって実行されることができる。コンピュータ可読媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア540、特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM546に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセス又は特定の部分を実行させることができる。追加的に又は代替として、コンピュータシステムは、回路(例えば、アクセラレータ544)内に配線された又はその他の方法で具現化されたロジックの結果として機能を提供することができ、回路は、本明細書に記載される特定のプロセス又は特定のプロセスの特定の部分を実行するためのソフトウェアの代わりに又はそれと共に動作することができる。ソフトウェアへの言及は、ロジックを含み、また、必要に応じて、その逆も可能である。コンピュータ可読媒体への参照は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0060】
いくつかの実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、及び/又はコンピュータ可読媒体に関連し得る。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読非一時的記憶媒体を含み得る。
【0061】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置であることができる。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、又はこれらの任意の適切な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは次のものを含む:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル汎用ディスク(DVD)、メモリスティック、フロッピー(登録商標)ディスク、パンチカード又はそれらに記録された命令を有する溝内の隆起構造のような機械的にエンコードされたデバイス、及びこれらの任意の適切な組み合わせ。本明細書で使用されるとき、コンピュータ可読記憶媒体は、それ自体、例えば、電波又は他の自由に伝搬する電磁波、導波管又は他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通って伝送される電気信号のような、一時的な信号であると解釈されるべきではない。
【0062】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピュータ/処理装置に、あるいは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して、外部コンピュータ又は外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含み得る。各コンピューティング/処理装置内のネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、各コンピューティング/処理装置内のコンピュータ可読記憶媒体に記憶するために転送する。
【0063】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又はSmalltalk、C++などのようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は類似のプログラミング言語のような手続型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれたソースコード又はオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェアパッケージとして、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で、又は完全にリモートコンピュータ又はサーバ上で、実行され得る。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続され得る、又は、接続は、外部コンピュータ(例えば、インターネットサービスプロバイダを使用するインターネットを介して)に行われ得る。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電子回路は、態様又は動作を実行するために、電子回路をパーソナライズするためにコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行し得る。
【0064】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されて、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図のブロック又はブロック(複数)に指定された機能/行為を実行するための手段を生成するように、機械を作り得る。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、及び/又は他の装置を特定の方法で機能させることができるコンピュータ可読記憶媒体に記憶されてもよく、その結果、その中に記憶された命令を有するコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図のブロック又はブロック(複数)に特定された機能/行為の態様を実装する命令を含む製品を含む。
【0065】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他の装置にロードされて、コンピュータ、他のプログラマブル装置、又は他の装置で実行される命令がフローチャート及び/又はブロック図のブロック又はブロック(複数)に指定された機能/行為を実装するように、コンピュータ、他のプログラマブル装置、又は他の装置に一連の動作ステップを実行させて、コンピュータ実装プロセスを生成させ得る。
【0066】
図中のフローチャート及びブロック図は、様々な実施形態によるシステム、方法、及びコンピュータ可読媒体の可能な実装形態のアーキテクチャ、機能、及び動作を示す。この点に関し、フローチャート又はブロック図の各ブロックは、特定の論理機能(複数可)を実装するための1つ以上の実行可能な命令を含む、モジュール、セグメント、又は命令の一部を表し得る。この方法、コンピュータシステム、及びコンピュータ可読媒体は、図面に示されたものよりも、追加のブロック、より少ないブロック、異なるブロック、又は異なる配置のブロックを含み得る。いくつかの代替的な実装では、ブロックに記載された機能は、図に記載された順序から外れて生じてもよい。例えば、連続して示される2つのブロックは、実際には、同時又は実質的に同時に実行されてもよく、又は、ブロックは、関連する機能に応じて、逆の順序で実行されてもよい。また、ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図のブロックの組み合わせは、指定された機能又は動作を実行する又は専用のハードウェア及びコンピュータ命令の組み合わせを実行する専用のハードウェアベースのシステムによって実装することができることに留意されたい。
【0067】
本明細書に記載したシステム及び/又は方法は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせの異なる形態で実装され得ることは明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の専用制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。したがって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
【0068】
本明細書中で使用されるいかなる要素、行為、又は命令も、明示的に記述されない限り、重要又は必須と解釈されるべきではない。また、本明細書で使用される場合、冠詞「1つの(「a」及び「an」)」は、1つ以上のアイテムを含むことを意図し、「1つ以上」と互換的に使用され得る。さらに、本明細書で使用される場合、用語「セット」は、1つ以上のアイテム(例えば、関連アイテム、非関連アイテム、関連アイテムと非関連アイテムの組み合わせなど)を含むことを意図し、「1つ以上」と互換的に使用され得る。1つのアイテムのみが意図される場合、用語「1つ」又は類似の言語が使用される。また、本明細書で使用される場合、用語「有する」、「有する」、「有している」などは、オープンエンドの用語であることが意図されている。さらに、語句「に基づく」は、明示的に別段の記載がない限り、「少なくとも部分的に基づく」を意味することが意図されている。
【0069】
種々の態様及び実施形態の説明は、説明のために提示されてきたが、開示された実施形態を網羅することを意図するものではなく、限定するものでもない。特徴の組み合わせが特許請求の範囲に記載される及び/又は明細書に開示されているとしても、これらの組み合わせは、可能な実装の開示を限定するものではない。実際、これらの特徴の多くは、請求項に具体的に記載されていない及び/又は明細書に開示されていない方法で組み合わせることができる。以下に列挙される各従属請求項は、1の請求項のみに直接従属し得るが、可能な実装の開示は、請求項のセット中の他の全てのクレームと組み合わせの各従属請求項を含む。多くの修正及び変形は、説明した実施形態の範囲から逸脱することなく、当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に対する実際的な応用又は技術的な改良を最もよく説明するため、又は当業者が本明細書で開示される実施形態を理解することを可能にするために選択された。
【国際調査報告】