(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-20
(54)【発明の名称】基礎となるトランスポートメトリックを使用して暗号化されたストリーミングトラフィックを監視するための技法
(51)【国際特許分類】
H04L 43/04 20220101AFI20231013BHJP
H04L 43/02 20220101ALI20231013BHJP
H04L 43/12 20220101ALI20231013BHJP
【FI】
H04L43/04
H04L43/02
H04L43/12
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023521051
(86)(22)【出願日】2022-05-11
(85)【翻訳文提出日】2023-04-05
(86)【国際出願番号】 US2022028669
(87)【国際公開番号】W WO2023278014
(87)【国際公開日】2023-01-05
(32)【優先日】2021-06-28
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ドーキンズ、ポール・スペンサー
(72)【発明者】
【氏名】ウェンジャー,ステファン
(57)【要約】
少なくとも1つのプロセッサによって実行される、暗号化されたトラフィックを監視するための方法および装置。この方法は、複数のトランスポート層メトリックを使用して、ストリーミングソースまたはストリーミング宛先においてメディアストリームのトランスポートサマリを生成するステップであって、メディアストリームは暗号化され、トランスポート層メトリックは、ストリーミングソースまたはストリーミング宛先におけるメディアストリーム内の重複QUICパケットから導出されるパス特性を含む、ステップと、トランスポートサマリをネットワーク監視機能に転送するステップと、トランスポートサマリを分析し、他のソースおよび他の宛先から収集されたトランスポートサマリと相関させるステップとを含む。トランスポートサマリは、メディアストリーム内の重複QUICパケットに関する情報を含み得る。
【特許請求の範囲】
【請求項1】
暗号化されたトラフィックを監視するための方法であって、方法は、少なくとも1つのプロセッサによって実行され、
複数のトランスポート層メトリックを使用して、ストリーミングソースにおいてメディアストリームのトランスポートサマリを生成するステップであって、前記メディアストリームは暗号化され、前記トランスポート層メトリックは、前記ストリーミングソースまたはストリーミング宛先における前記メディアストリーム内の重複QUICパケットから導出されるパス特性を含む、ステップと、
前記トランスポートサマリをネットワーク監視機能に転送するステップと、
前記トランスポートサマリを分析し、他のソースから収集されたトランスポートサマリと相関させるステップと
を含む方法。
【請求項2】
前記トランスポートサマリは、前記メディアストリームの前記ストリーミング宛先において生成される、請求項1に記載の方法。
【請求項3】
前記ストリーミングソースまたはストリーミング宛先における前記メディアストリーム内の重複QUICパケットを検出するステップと、
前記重複QUICパケットに関する情報を前記ネットワーク監視機能に転送するステップと、
前記重複QUICパケットに関する情報を分析し、前記他のソースまたは他の宛先から収集された報告と相関させるステップと
をさらに含む、請求項2に記載の方法。
【請求項4】
前記ソースは、QUICトランスポート層プロトコルを使用して1つまたは複数のネットワークを介して前記ストリーミング宛先にメディアをストリーミングする、請求項2に記載の方法。
【請求項5】
前記ストリーミング宛先は、前記重複QUICパケットを除去する、請求項3に記載の方法。
【請求項6】
前記トランスポートサマリは、前記ネットワーク監視機能に定期的に転送される、請求項1に記載の方法。
【請求項7】
前記トランスポートサマリは、所定のイベントの発生に基づいて直ちに前記ネットワーク監視機能に転送される、請求項1に記載の方法。
【請求項8】
暗号化されたトラフィックを監視するための装置であって、
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードによって命令されたように動作するように構成された少なくとも1つのプロセッサと
を備え、前記プログラムコードは、前記少なくとも1つのプロセッサに、請求項1から7のいずれか一項に記載の方法を実行させる、装置。
【請求項9】
コンピュータに、請求項1から7のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2021年6月28日に出願された米国仮特許出願第63/215,890号および2022年3月24日に出願された米国特許出願第17/703,314号に基づき、それらに対する優先権を主張するものであり、それらの開示は、参照により全体が本明細書に組み込まれる。
【0002】
[技術分野]
本開示の実施形態は、コンピュータ間のパス上で暗号化されたトランスポートプロトコルを使用してコンピュータ間でメディアをストリーミングするために使用されるネットワーク化されたコンピュータの設計および動作に関し得る。具体的には、本開示の実施形態は、メディアをストリーミングするときのユーザエクスペリエンスに対するネットワーク内のトランスポートパス障害の影響を識別することに関する。
【背景技術】
【0003】
図1は、ストリーミングメディアソースまたはストリーミングメディア宛先として動作し得る複数のコンピュータを有するコンピュータネットワーク100を示す。具体的には、
図1は、関連技術による、暗号化されていないトランスポートプロトコル(例えば、TCP/IP)上のストリーミングプロトコルスタック(例えば、DASH-IFまたはHLS)を示す。ソースおよび宛先は、1つまたは複数のネットワークによって互いに接続される。
図1では、1つのソース110と1つの宛先120とが単一のネットワーク130によって接続されている。
【0004】
ソース110が、1つまたは複数のデータネットワーク130を通るパス上で宛先120にメディア140をストリーミングするとき、ソース110は、宛先120からのアプリケーションレベルフィードバックに基づいて宛先120へのパスを特徴付けることができる。例えば、関連技術では、1つの一般的な手法は、宛先120がソース110にメディアのチャンクを要求し、メディアのチャンクが宛先120においてユーザのためにレンダリングされるのに間に合うように到着することを保証するために、これらの要求をタイミング調整することである。
【0005】
ソース110から宛先120へのパスが良好に機能しているとき、宛先120は、許容可能なユーザエクスペリエンスを提供することが可能である。様々な理由のいずれかでパスが妨害されると、ソース110および宛先120におけるストリーミングメディアアプリケーション(111、121)実装は、問題があることを認識し得るが、問題を識別することができる可能性は低い。特に、ストリーミングメディアが複数のネットワークを横断している場合、ソース110および宛先120は、問題がどこにあるか、またはどのネットワークに問題があるかさえも識別することができない。したがって、ソース110および/または宛先120は、ストリーミングコンテンツプロバイダが、問題を解決することができるのは誰であるかを識別するのを助けることができない。一般に、ソース110は、帯域幅集約度のより低いコーディング方法に切り替えるなどのアクションをとり、ソース110と宛先120との間の必要な帯域幅を低減し、ユーザのエクスペリエンスを許容可能になるように十分に改善しようとする。
【0006】
この理由から、ネットワークオペレータは、多くの場合、送信側と受信側とを接続する(例えば、ソース110と宛先120とを接続する)ネットワークプローブ150をネットワークパスに沿って展開している。これらのネットワークプローブ150は、伝送制御プロトコル(TCP/IP)(RFC793/RFC791)などの基礎となるトランスポートプロトコル(112、122)が遭遇する異常および障害(170)を検出し、ネットワーク監視機能160に報告して、問題および障害を識別し、これらの問題を解決できるように分離する。これらのネットワークプローブ150は、暗号化されていないTCP/IPトランスポートプロトコル(112、122)からのTCP/IPプロトコルヘッダフィールドを検査するので、ソース110が暗号化されたメディアコンテンツを宛先120にストリーミングしている場合であっても、トランスポートプロトコルペイロードは暗号化されているが、トランスポートプロトコルヘッダは暗号化されていないので、この機能を実行することができる。
【0007】
ソース110内のストリーミングメディアアプリケーション111はまた、ストリーミングされているメディアに関する情報をネットワーク監視機能160に送信することができ、ネットワーク監視機能160は、アプリケーションプロトコルレベルからの情報を、基礎となるトランスポートプロトコルレベルからの情報と相関させることができる。
【発明の概要】
【0008】
本開示の1つまたは複数の例示的な実施形態は、ソースまたは宛先における基礎となるトランスポートメトリックを使用して、ソースと宛先との間の暗号化されたトラフィックを監視する方法および装置を提供する。
【0009】
実施形態によれば、少なくとも1つのプロセッサによって実行される、暗号化されたトラフィックを監視するための方法が提供される。方法は、複数のトランスポート層メトリックを使用して、ストリーミングソースにおいてメディアストリームのトランスポートサマリを生成するステップであって、メディアストリームは暗号化され、トランスポート層メトリックは、ストリーミングソースまたはストリーミング宛先におけるメディアストリーム内の重複QUICパケットから導出されるパス特性を含む、ステップと、トランスポートサマリをネットワーク監視機能に転送するステップと、トランスポートサマリを分析し、他のソースから収集されたトランスポートサマリと相関させるステップとを含み得る。
【0010】
実施形態によれば、暗号化されたトラフィックを監視する装置が提供される。装置は、プログラムコードを記憶する少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードによって命令されたように動作するように構成された少なくとも1つのプロセッサとを含み得る。プログラムコードは、少なくとも1つのプロセッサに、複数のトランスポート層メトリックを使用して、ストリーミングソースにおいてメディアストリームのトランスポートサマリを生成させるように構成された生成コードであって、メディアストリームは暗号化され、トランスポート層メトリックは、ストリーミングソースまたはストリーミング宛先におけるメディアストリーム内の重複QUICパケットから導出されるパス特性を含む、生成コードと、少なくとも1つのプロセッサに、トランスポートサマリをネットワーク監視機能に転送させるように構成された第1の転送コードと、少なくとも1つのプロセッサに、トランスポートサマリを分析させ、それを他のソースから収集されたトランスポートサマリと相関させるように構成された第1の分析コードとを含み得る。
【0011】
1つまたは複数の実施形態によれば、コンピュータコードを記憶する非一時的コンピュータ可読媒体が提供される。コンピュータコードは、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、複数のトランスポート層メトリックを使用して、ストリーミングソースにおいてメディアストリームのトランスポートサマリを生成することであって、メディアストリームは暗号化され、トランスポート層メトリックは、ストリーミングソースまたはストリーミング宛先におけるメディアストリーム内の重複QUICパケットから導出されるパス特性を含む、生成することと、トランスポートサマリをネットワーク監視機能に転送することと、トランスポートサマリを分析し、他のソースから収集されたトランスポートサマリと相関させることとを行わせる。
【0012】
追加の態様は、一部は以下の説明に記載され、一部は説明から明らかになるか、または本開示の提示された実施形態の実践によって実現され得る。
【図面の簡単な説明】
【0013】
本開示の実施形態の上記および他の態様、特徴、および態様は、以下の添付の図面と併せて以下の説明からより明らかになるであろう。
【
図1】暗号化されていないトランスポートプロトコル上のストリーミングプロトコルスタックに従うコンピュータネットワークの概略図である。
【
図2】1つまたは複数の実施形態による通信システムの簡略化されたブロック図を示す。
【
図3】1つまたは複数の実施形態による例示的なストリーミング環境の概略図である。
【
図4】暗号化されたトランスポートプロトコル上のストリーミングプロトコルスタックに従うコンピュータネットワークの概略図を示す。
【
図5】1つまたは複数の実施形態による、基礎となるトランスポートメトリックを使用して、暗号化されたトラフィックを監視するための方法のフローチャートである。
【
図6】1つまたは複数の実施形態による、基礎となるトランスポートメトリックを使用して、暗号化されたトラフィックを監視するためのコンピュータコードの一例のブロック図である。
【
図7】1つまたは複数の実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0014】
本開示は、基礎となるトランスポートメトリックを使用して、暗号化されたトラフィックを監視するための方法および装置に関する。本開示の実施形態は、添付の図面を参照して包括的に説明される。しかしながら、実装形態の例は、多様な複数の形態で実装され得、本開示は、本明細書で説明する例に限定されるものと解釈されるべきではない。逆に、実装形態の例は、本開示の技術的解決策をより包括的かつ完全なものにし、実装形態の例の概念を当業者に包括的に伝達するために提供される。添付の図面は、本開示の単なる例示であり、必ずしも縮尺通りに描かれていない。
【0015】
後述される特徴は、別々に使用されてもよいし、任意の順序で組み合わされてもよい。添付の図面に示されるいくつかのブロック図は、機能エンティティであり、必ずしも物理的または論理的に独立したエンティティに対応するとは限らない。さらに、実施形態は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実装されてもよいし、ソフトウェアの形態で実装されてもよいし、異なるネットワークおよび/またはプロセッサ装置および/またはマイクロコントローラ装置で実装されてもよい。一例では、1つまたは複数のプロセッサは、1つまたは複数の非一時的コンピュータ可読媒体に記憶されたコンピュータプログラムコードを実行する。
【0016】
図2は、本開示の一実施形態による通信システム200の簡略化されたブロック図を示す。通信システム200は、ネットワーク205を介して相互接続された少なくとも2つの端末202および203を含み得る。データの単方向送信の場合、第1の端末203は、ネットワーク105を介して他方の端末202に送信するために、ローカルロケーションにおいてビデオデータをコーディングし得る。第2の端末202は、ネットワーク205から他方の端末のコード化されたビデオデータを受信し、コード化されたデータを復号し、復元されたビデオデータを表示し得る。単方向データ送信は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0017】
図2は、例えば、ビデオ会議またはメディアストリーミング中に発生し得るコード化されたビデオの双方向送信をサポートするために設けられた端末201および204の第2のペアを示す。データの双方向送信の場合、各端末201および204は、ネットワーク205を介して他方の端末に送信するために、ローカルロケーションにおいて、キャプチャされたビデオデータをコーディングし得る。各端末201および204はまた、他方の端末によって送信されたコード化されたビデオデータを受信し得、コード化されたデータを復号し得、復元されたビデオデータをローカルディスプレイデバイスで表示し得る。
【0018】
図2では、端末201、202、203、および204は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示され得るが、本開示の原理はそのように限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用ビデオ会議機器に適用される。ネットワーク205は、例えば、ワイヤードおよび/またはワイヤレス通信ネットワークなどの、コード化されたビデオデータを端末201、202、203および204の間で伝達する任意の数のネットワークを表す。通信ネットワーク205は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットを含む。本議論の目的のために、ネットワーク205のアーキテクチャおよびトポロジは、本明細書で以下に説明されない限り、本開示の動作に重要ではない場合がある。
【0019】
図3は、開示された主題の適用例として、ストリーミング環境におけるビデオエンコーダおよびデコーダの配置を示す。開示される主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタル媒体上への圧縮ビデオの記憶などを含む、他のビデオ対応アプリケーションに等しく適用可能であり得る。
【0020】
ストリーミングシステムは、例えば、非圧縮ビデオサンプルストリーム313を生成するビデオソース301(例えばデジタルカメラ)を含むことができるキャプチャサブシステム303を含み得る。そのサンプルストリーム313は、符号化されたビデオビットストリームと比較して高いデータ量として強調され得、カメラ301に結合されたエンコーダ302によって処理され得る。エンコーダ302は、以下でより詳細に説明するように、開示する主題の態様を可能にするかまたは実装するために、ハードウェア、ソフトウェア、またはそれらの組合せを含むことができる。符号化されたビデオビットストリーム304は、サンプルストリームと比較してより少ないデータ量として強調され得、将来の使用のためにストリーミングサーバ305に記憶され得る。1つまたは複数のストリーミングクライアント312および307は、ストリーミングサーバ305にアクセスして、符号化されたビデオビットストリーム304のコピー308および306を取り出すことができる。クライアント312は、符号化されたビデオビットストリーム308の入来コピーを復号し、ディスプレイ309または他のレンダリングデバイス上でレンダリングされ得る発信ビデオサンプルストリーム310を作成する、ビデオデコーダ311を含むことができる。いくつかのストリーミングシステムでは、ビデオビットストリーム304、306、および308は、特定のビデオコーディング/圧縮規格にしたがって符号化され得る。これらの標準の例は上述されており、本明細書でさらに説明される。
【0021】
図4は、実施形態による、暗号化されたプロトコル上のストリーミングプロトコルスタックに従うコンピュータネットワーク400を示す。例えば、暗号化されたプロトコルは、クイックUDPインターネット接続(QUIC/UDP/IP)であり得る。
図4に示すように、コンピュータネットワーク400は、ストリーミングソース410と、ストリーミング宛先420と、1つまたは複数のデータネットワーク430と、1つまたは複数のメディアストリーム440と、ストリーミングメディアアプリケーション450と、トランスポートプロトコル460と、宛先トランスポートサマリ470と、ネットワーク監視機能480とを含み得る。
【0022】
ソース410は、1つまたは複数のネットワーク430を介して宛先420にメディアストリーム440をストリーミングし得る。ソース410および宛先420は、ほぼすべてのトランスポートプロトコルヘッダフィールドを暗号化するQUIC/UDP/IP(RFC9000/RFC763/RFC791)のようなトランスポートプロトコル460を使用する。少数のQUICヘッダフィールドは、(例えば、RFC8999「Version-Independent Properties of QUIC」に記載されているように)暗号化されていなくてもよい。ソース410内のストリーミングメディアアプリケーション450は、ストリーミングされているメディアに関する情報をネットワーク監視機能480に送信し得、宛先420内のストリーミングメディアアプリケーション450は、ストリーミングされているメディアに関する情報をストリーミングソース410に送信し得る。
【0023】
実施形態では、メディアストリーム440のソース410および宛先420は、暗号化されたトランスポートプロトコルを使用する。したがって、ネットワークプローブ(例えば、
図1に示すネットワークプローブ150)は、暗号化されたトランスポートプロトコルヘッダを読み取ることができず、有用な情報をネットワーク監視機能480に提供することができないであろう。そのため、問題および異常を検出するためにネットワークプローブに依存するのではなく、ソース410は、宛先トランスポートサマリ470を維持し、トランスポートレベル情報をネットワーク監視機能480に提供し得る。
【0024】
QUICなどのプロトコルはまた、TCPで可能なものよりも、改善された性能と、ソースから宛先へのパスに関するより良い情報とを提供することができる。ネットワーク監視機能480が、複数の送信側(すなわち、ソース)によって記録された観察にわたってこの情報を相関させるとき、これは、単一のソース-宛先ペアが提供することができるものを超えて、パス特性のネットワークオペレータの理解を向上させる。
【0025】
実施形態は、複数の送信側にわたってQUICトランスポート層プロトコルを使用して1つの可能なトランスポートイベントを処理するための例示的な方法を説明する。他の可能なトランスポートイベントは多く存在する。他の可能なトランスポートイベントが、本明細書の実施形態で詳述される手順と同様に処理され得ることは、当業者によって理解され得る。
【0026】
ソースおよび宛先は、重複する暗号化されたQUICパケットを検出することができるが、ネットワークプローブは検出することができない。したがって、ソース410または宛先420は、宛先420が重複パケットとしてドロップしたQUICパケットの数をサマリし、他のソースまたは宛先からの報告と相関させるために、このサマリをネットワーク監視機能480に提供することができる。これにより、ネットワークオペレータは、なぜパケットがネットワーク内で重複しているのか、およびこれが個別ケースであるかどうか、またはそれが多くのユーザに影響を及ぼしているかどうかを調査することができる。QUICパケットのドロップされた数のサマリは、例えば、ネットワークトランスポートサマリの一部としてトランスポートサマリ470によって含まれてもよい。トランスポートサマリ470は、ネットワーク監視機能480に定期的に提供されてもよいし、注目すべきイベントが発生したときにアラートとして直ちに提供されてもよいし、その両方であってもよい。
【0027】
図5は、1つまたは複数の実施形態による、基礎となるトランスポートメトリックを使用して、暗号化されたトラフィックを監視するための方法500のフローチャートを示す。方法500は、例えば、通信ネットワーク400によって実行され得る。
【0028】
図5に示されているように、動作510において、方法500は、複数のトランスポート層メトリックを使用して、ストリーミングソースまたはストリーミング宛先においてメディアストリームのトランスポートサマリを生成するステップであって、メディアストリームは暗号化され、トランスポート層メトリックは、ストリーミングソースまたはストリーミング宛先におけるメディアストリーム内の重複QUICパケットから導出されるパス特性を含む、ステップを含み得る。
【0029】
動作520において、方法500は、トランスポートサマリをネットワーク監視機能に転送するステップを含み得る。
【0030】
動作530において、方法500は、トランスポートサマリを分析するステップを含み得る。例えば、分析は、メディアストリーム内の重複QUICパケットを検出するステップを含み得る。
【0031】
動作540において、方法500は、分析されたトランスポートサマリを、他のソースおよび/または他の宛先から収集されたトランスポートサマリと相関させるステップを含み得る。
【0032】
図5は方法の例示的なブロックを示しているが、いくつかの実装形態では、方法は、追加のブロック、より少ないブロック、異なるブロック、または
図5に示すものとは別様に配置されたブロックを含み得る。追加的または代替的に、方法のブロックのうちの2つ以上が並行して実行されてもよい。
【0033】
図6は、1つまたは複数の実施形態による、基礎となるトランスポートメトリックを使用して、暗号化されたトラフィックを監視するためのコンピュータコードの一例のブロック図である。
【0034】
本開示の実施形態によれば、コンピュータコードを記憶するメモリを有する少なくとも1つのプロセッサが提供され得る。コンピュータコードは、少なくとも1つのプロセッサによって実行されると、本開示の任意の数の態様を実行するように構成され得る。
【0035】
図6に示されるように、コンピュータコード600は、生成コード610と、転送コード620と、分析コード630と、相関コード640とを含み得る。
【0036】
生成コード610は、少なくとも1つのプロセッサに、複数のトランスポート層メトリックを使用して、ストリーミングソースまたはストリーミング宛先においてメディアストリームのトランスポートサマリを生成させるように構成され得、ここで、メディアストリームは暗号化され、トランスポート層メトリックは、ストリーミングソースまたはストリーミング宛先におけるメディアストリーム内の重複QUICパケットから導出されるパス特性を含む。
【0037】
転送コード620は、少なくとも1つのプロセッサに、トランスポートサマリをネットワーク監視機能に転送させるように構成され得る。
【0038】
分析コード630は、少なくとも1つのプロセッサに、トランスポートサマリを分析させるように構成され得る。例えば、分析コード630は、少なくとも1つのプロセッサに、メディアストリーム内の重複QUICパケットを検出させるように構成され得る。
【0039】
相関コード640は、少なくとも1つのプロセッサに、トランスポートサマリを、他のソースから収集されたトランスポートサマリと相関させるように構成され得る。
【0040】
図6は、実施形態によるシステム、装置、またはデバイスのコンピュータコード600の例示的なブロックを示すが、いくつかの実装形態では、システムは、追加のブロック、より少ないブロック、異なるブロック、または
図6に示すものとは別様に配置されたブロックを含み得る。追加的または代替的に、システムのブロックのうちの2つ以上が組み合わされてもよい。言い換えると、
図6はコードの別個のブロックを示しているが、様々なコード命令は別個である必要はなく、混在し得る。
【0041】
上記で説明した、基礎となるトランスポートメトリックを使用して、暗号化されたトラフィックを監視するための技法は、コンピュータ可読命令を使用してコンピュータソフトウェアとしてソースと宛先の両方において実装され、1つまたは複数の非一時的コンピュータ可読媒体によって物理的に記憶されるか、または特別に構成された1つまたは複数のハードウェアプロセッサによって実装され得る。
図7は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム700を示す。
【0042】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって直接か、または解釈、マイクロコード実行などを通して、実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンク付け、または同様の機構の対象となり得る任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
【0043】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行され得る。
【0044】
コンピュータシステム700について
図7に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能性の範囲に関していかなる限定も示唆することを意図するものではない。構成要素の構成は、コンピュータシステム700の例示的な実施形態に示された構成要素のいずれか1つまたは組合せに関していかなる依存性または要件を有するものとしても解釈されるべきでない。
【0045】
コンピュータシステム700は、特定のヒューマンインターフェース入力デバイスを含み得る。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力を通した一人または複数の人間のユーザによる入力に応答し得る。ヒューマンインターフェースデバイスはまた、オーディオ(発話、音楽、周囲音など)、画像(スキャンされた画像、静止画像カメラから取得された写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャするために使用され得る。
【0046】
入力ヒューマンインターフェースデバイスは、キーボード701、トラックパッド702、マウス703、タッチスクリーン709、データグローブ、ジョイスティック704、マイクロフォン705、カメラ706、スキャナ707のうちの1つまたは複数(各々のうちの1つのみが図示されている)を含み得る。
【0047】
コンピュータシステム700はまた、特定のヒューマンインターフェース出力デバイスを含み得る。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を通して、一人または複数の人間のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン709、データグローブ、またはジョイスティック704による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る)、オーディオ出力デバイス(スピーカ708、ヘッドフォンなど)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン709などであり、それぞれがタッチスクリーン入力機能を有するかまたは有さず、それぞれが触覚フィードバック機能を有するかまたは有さず、そのうちのいくつかは、ステレオグラフィック出力、仮想現実眼鏡、ホログラフィックディスプレイ、およびスモークタンクなどの手段により2次元視覚出力または3次元を超える出力を出力することが可能であり得る)、およびプリンタを含み得る。
【0048】
コンピュータシステム700はまた、人間がアクセス可能な記憶デバイスと、CD/DVDまたは同様の媒体710を有するCD/DVD ROM/RW711を含む光媒体、サムドライブ712、リムーバブルハードドライブまたはソリッドステートドライブ713、テープおよびフロッピー(登録商標)ディスクなどのレガシー磁気媒体、セキュリティドングルなどの専用ROM/ASIC/PLDベースのデバイスなど、それらの関連媒体とを含むことができる。
【0049】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0050】
コンピュータシステム700はまた、1つまたは複数の通信ネットワーク714へのインターフェース715を含むことができる。ネットワーク714は、例えば、ワイヤレス、ワイヤライン、光とすることができる。ネットワーク714はさらに、ローカル、ワイドエリア、都市、車両および産業、リアルタイム、遅延耐性などとすることができる。ネットワーク714の例としては、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM(登録商標)、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むTVワイヤラインまたはワイヤレスワイドエリアデジタルネットワーク、CANBusを含む車両および産業用などが挙げられる。特定のネットワーク714は、一般に、特定の汎用データポートまたは周辺バス716(例えば、コンピュータシステム700のUSBポートなど)に取り付けられた外部ネットワークインターフェースアダプタ(例えば、グラフィックスアダプタ725)を必要とし、他のものは、一般に、以下で説明するようにシステムバスに取り付けることによってコンピュータシステム700のコアに統合される(例えば、PCコンピュータシステムへのイーサネット(登録商標)インターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワーク714のいずれかを使用して、コンピュータシステム700は、他のエンティティと通信することができる。そのような通信は、単方向受信専用(例えば、放送TV)、単方向送信専用(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明したように、これらのネットワークおよびネットワークインターフェースの各々で使用することができる。
【0051】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム700のコア717に取り付けることができる。
【0052】
コア717は、1つまたは複数の中央処理装置(CPU)718、グラフィックス処理装置(GPU)719、フィールドプログラマブルゲートエリア(FPGA)720の形態の専用プログラマブル処理装置、特定のタスクのためのハードウェアアクセラレータ721などを含むことができる。これらのデバイスは、読取り専用メモリ(ROM)723、ランダムアクセスメモリ(RAM)724、内部非ユーザアクセス可能ハードドライブ、SSDなどの内部大容量記憶装置722とともに、システムバス726を通して接続され得る。いくつかのコンピュータシステムでは、システムバス726は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス726に直接、または周辺バス716を通して接続することができる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
【0053】
CPU718、GPU719、FPGA720、およびアクセラレータ721は、組み合わせて前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM723またはRAM724に記憶することができる。過渡的なデータもRAM724に記憶することができ、永久的なデータは、例えば、内部大容量記憶装置722に記憶することができる。メモリデバイスのうちのいずれかへの高速記憶および取出しは、キャッシュメモリの使用により可能にされることができ、キャッシュメモリは、1つまたは複数のCPU718、GPU719、大容量記憶装置722、ROM723、RAM724などと密接に関連付けられることができる。
【0054】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されてもよいし、コンピュータソフトウェア分野の当業者に周知でかつ利用可能な種類のものであってもよい。
【0055】
限定としてではなく一例として、アーキテクチャ700を有するコンピュータシステム、具体的にはコア717は、1つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアをプロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータなどを含む)が実行した結果として、機能性を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介したようなユーザアクセス可能な大容量記憶装置、ならびにコア内部大容量記憶装置722またはROM723などの非一時的な性質のものであるコア717の特定の記憶装置に関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイス内に記憶され、コア717によって実行され得る。コンピュータ可読媒体は、特定のニーズにしたがって、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア717および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM724に記憶されるデータ構造を定義することおよびソフトウェアによって定義されたプロセスにしたがってそのようなデータ構造を修正することを含む、本明細書に説明される特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えてまたは代替として、コンピュータシステムは、回路(例えば、アクセラレータ721)内にハードワイヤードまたは別様に具現化されたロジックの結果として機能性を提供することができ、それは、ソフトウェアの代わりにまたはそれとともに動作して、本明細書に説明される特定のプロセスまたは特定のプロセスの特定の部分を実行することができる。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
【0056】
本開示では、いくつかの例示的な実施形態を説明してきたが、変更形態、置換形態、および様々な代替同等物が存在しており、これらは、本開示の範囲内に含まれるものである。したがって、当業者であれば、本明細書に明示的に図示または説明されていないが、本開示の原理を具現化し、したがって、本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができるであろうことを理解されよう。
【国際調査報告】