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

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

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特開2025-11100仮想デスクトップインフラソリューションのための適応リアルタイム通信プラグイン
<>
  • 特開-仮想デスクトップインフラソリューションのための適応リアルタイム通信プラグイン 図1
  • 特開-仮想デスクトップインフラソリューションのための適応リアルタイム通信プラグイン 図2
  • 特開-仮想デスクトップインフラソリューションのための適応リアルタイム通信プラグイン 図3
  • 特開-仮想デスクトップインフラソリューションのための適応リアルタイム通信プラグイン 図4
  • 特開-仮想デスクトップインフラソリューションのための適応リアルタイム通信プラグイン 図5
  • 特開-仮想デスクトップインフラソリューションのための適応リアルタイム通信プラグイン 図6
  • 特開-仮想デスクトップインフラソリューションのための適応リアルタイム通信プラグイン 図7
  • 特開-仮想デスクトップインフラソリューションのための適応リアルタイム通信プラグイン 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025011100
(43)【公開日】2025-01-23
(54)【発明の名称】仮想デスクトップインフラソリューションのための適応リアルタイム通信プラグイン
(51)【国際特許分類】
   H04L 67/563 20220101AFI20250116BHJP
   G06F 15/00 20060101ALI20250116BHJP
   G06F 3/04847 20220101ALI20250116BHJP
   G06F 3/16 20060101ALI20250116BHJP
   H04L 67/565 20220101ALI20250116BHJP
   H04L 67/08 20220101ALN20250116BHJP
【FI】
H04L67/563
G06F15/00 440A
G06F3/04847
G06F3/16 600
H04L67/565
H04L67/08
【審査請求】有
【請求項の数】36
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024161989
(22)【出願日】2024-09-19
(62)【分割の表示】P 2021559644の分割
【原出願日】2020-04-14
(31)【優先権主張番号】16/414,160
(32)【優先日】2019-05-16
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【弁理士】
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】ヒナント,ネイル アール.
(72)【発明者】
【氏名】ハワード,マシュー シー.
(72)【発明者】
【氏名】ヴァーティド,ラファエル ヴィンセント プリエト
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA68
5E555BA02
5E555BB02
5E555BC09
5E555CB47
5E555CB64
5E555FA00
(57)【要約】      (修正有)
【課題】クラウド計算環境内で遠隔的に実行される通信アプリケーションのユーザインタフェースを提示するためにクライアント計算装置上で実行する遠隔デスクトップクライアントの性能を改善する方法、システム及びプログラムを提供する。
【解決手段】クライアント計算装置において、プラグインは、クラウド計算環境内で実行される通信アプリケーションのユーザインタフェースを提示するためにクライアント計算装置上で実行される遠隔デスクトップクライアントと共に機能し、遠隔デスクトップクライアントが遠隔計算装置との音声及び/又はビデオ通信を、通信アプリケーションによってではなくピアツーピア式に行えるようにする。プラグインはまた、遠隔デスクトップクライアントがクライアント計算装置のハードウェアベースのメディア処理能力を決定し、遠隔計算装置とピアツーピアの音声及び/又はビデオ通信を行う際にかかる能力を活用できるようにする。
【選択図】図4
【特許請求の範囲】
【請求項1】
1つ又は複数のプロセッサと、
前記1つ又は複数のプロセッサによって実行するためのコンピュータプログラムロジックを記憶する1つ又は複数のメモリ装置と
を含むクライアント計算装置であって、前記コンピュータプログラムロジックは
クラウド計算環境内で実行される通信アプリケーションのユーザインタフェースを前記クライアント計算装置のユーザインタフェース内で提示するように構成されている遠隔デスクトップクライアントであって、前記通信アプリケーションによる音声及び/又はビデオ通信とは対照的に前記クライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、前記通信アプリケーションからリダイレクトされた通信を受信するように更に構成されている、遠隔デスクトップクライアントと、
前記遠隔デスクトップクライアントから前記リダイレクトされた通信を受信し、リアルタイム通信を可能にするためのフレームワークに適合する形式に前記リダイレクトされた通信を変換するように構成されているリアルタイム通信マネージャ、
前記変換済み通信に基づく音声及び/又はビデオ通信のために前記クライアント計算装置及び前記遠隔計算装置を接続するように構成されているリアルタイム通信コンポーネント、及び
前記クライアント計算装置のハードウェアベースのメディア処理能力を決定し、前記ハードウェアベースのメディア処理能力を使用して前記クライアント計算装置のメディアソースから捕捉されるメディアを処理し、前記遠隔計算装置に伝送されるように前記リアルタイム通信コンポーネントに前記処理済みメディアを提供するように構成されているメディア捕捉コンポーネント
を含むプラグインと
を含む、クライアント計算装置。
【請求項2】
前記メディアがビデオ又は音声の1つを含む、請求項1に記載のクライアント計算装置。
【請求項3】
前記リアルタイム通信マネージャが、
前記クライアント計算装置の別のハードウェアベースのビデオ処理能力を決定し、
前記他のハードウェアベースのメディア処理能力に基づいて前記遠隔計算装置とメディア通信パラメータをネゴシエートする
ように更に構成されている、請求項1に記載のクライアント計算装置。
【請求項4】
前記メディア捕捉コンポーネントが前記クライアント計算装置のオペレーティングシステムのアプリケーションプログラミングインタフェース(API)によって前記ハードウェアベースのメディア処理能力を決定し、前記リアルタイム通信マネージャがリアルタイム通信を可能にするための前記フレームワークのAPIによって前記他のハードウェアベースのメディア処理能力を決定する、請求項3に記載のクライアント計算装置。
【請求項5】
前記プラグインが前記リアルタイム通信コンポーネントによって前記遠隔計算装置から伝送されるメディアを受信し、前記クライアント計算装置の前記ユーザインタフェース内でレンダリングするために前記クライアント計算装置のメディアエンジンに前記受信したメディアを与えるように構成されているメディアレンダラコンポーネントを更に含み、前記ビデオレンダラコンポーネントが
前記クライアント計算装置の別のハードウェアベースのメディア処理能力を決定し、
前記遠隔計算装置から受信した前記メディアを処理するために前記他のメディア処理能力を使用する
ように更に構成されている、請求項1に記載のクライアント計算装置。
【請求項6】
前記ハードウェアベースのメディア処理能力がビデオコーデック又は音声コーデックの1つを含む、請求項1に記載のクライアント計算装置。
【請求項7】
前記ハードウェアベースのメディア処理能力がハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理の1つを含む、請求項1に記載のクライアント計算装置。
【請求項8】
クラウド計算環境内で実行される通信アプリケーションのユーザインタフェースを提示するクライアント計算装置の1つ又は複数のプロセッサによって実行される方法であって、
前記通信アプリケーションによる音声及び/又はビデオ通信とは対照的に前記クライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、前記通信アプリケーションからリダイレクトされた通信を受信すること、
リアルタイム通信を可能にするためのフレームワークを使用し、前記リダイレクトされた通信に基づく音声及び/又はビデオ通信のために前記クライアント計算装置及び前記遠隔計算装置を接続すること、
前記クライアント計算装置のハードウェアベースのメディア処理能力を決定すること、
前記遠隔計算装置から伝送されるメディアを受信すること、及び
前記ハードウェアベースのメディア処理能力を使用して前記クライアント計算装置によるレンダリングのために前記遠隔計算装置から受信した前記メディアを処理すること
を含む、方法。
【請求項9】
前記メディアがビデオ又は音声の1つを含む、請求項8に記載の方法。
【請求項10】
前記クライアント計算装置の別のハードウェアベースのビデオ処理能力を決定すること、及び
前記他のハードウェアベースのメディア処理能力に基づいて前記遠隔計算装置とメディア通信パラメータをネゴシエートすること
を更に含む、請求項8に記載の方法。
【請求項11】
前記ハードウェアベースのメディア処理能力を前記決定することが、前記クライアント計算装置のオペレーティングシステムのアプリケーションプログラミングインタフェース(API)を使用して前記ハードウェアベースのメディア処理能力を決定することを含み、
前記他のハードウェアベースのメディア処理能力を決定することが、リアルタイム通信を可能にするための前記フレームワークのAPIを使用して前記他のハードウェアベースのメディア処理能力を決定することを含む、
請求項10に記載の方法。
【請求項12】
前記クライアント計算装置の別のハードウェアベースのメディア処理能力を決定すること、
前記クライアント計算装置のメディアソースから捕捉されるメディアを処理するために前記他のハードウェアベースのメディア処理能力を使用すること、及び
前記遠隔計算装置に前記処理済みメディアを伝送すること
を更に含む、請求項8に記載の方法。
【請求項13】
前記ハードウェアベースのメディア処理能力がビデオコーデック又は音声コーデックの1つを含む、請求項8に記載の方法。
【請求項14】
前記ハードウェアベースのメディア処理能力がハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理の1つを含む、請求項8に記載の方法。
【請求項15】
請求項8乃至14の何れかをプロセッサが実行することを可能にするためのコンピュータプログラムロジック手段
を含むコンピュータプログラムロジックを記録しているコンピュータ可読媒体を含む、コンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
背景
[0001] 仮想化技術は、デスクトップのオペレーティングシステム(OS)及び関連するアプリケーションを、それらにアクセスするために使用されるクライアント計算装置から抽象化する。例えば、仮想デスクトップインフラソリューション(VDI)は、データセンタ内のサーバ上にデスクトップをホストし、ネットワーク上でクライアント計算装置にデスクトップの画像を届けることを含み得る。次いで、クライアント計算装置上でそのデスクトップ画像をレンダリングすることができ、クライアント計算装置のユーザは、デスクトップ及びそのアプリケーションがクライアント計算装置上でローカルに実行されているかのように、画像と直接対話することができる。
【0002】
[0002] この手法は、ユーザデスクトップを統合し集中化することによって、顧客が管理及びコストを合理化できるようにする。集中化の利点は、ハードウェア資源の最適化、ソフトウェアメンテナンスの低減、及びセキュリティの改善を含む。例えば或る例では、全てのユーザに対して、ソフトウェアパッチング及びOSマイグレーションを適用及び試験することができる。更にソフトウェア資産が集中化され、それにより容易にモニタ及び保護され、デスクトップが紛失するか又は盗難に遭った場合に、機密データのセキュリティが侵害されない。加えてデスクトップの仮想化は、ユーザの移動性並びに任意の場所及び任意の装置から仮想デスクトップにアクセスする自由度を高める。
【0003】
[0003] 仮想化技術によって与えられる多くの利点にもかかわらず、一部のアプリケーションは、VDI環境に関して最適化できない場合があるか又はVDI環境内で十分にサポートされない場合がある。そのような一例は、ユーザ間のリアルタイム通信(RTC)を可能にする、VDI環境内で実行される通信アプリケーションである(例えばMicrosoft(登録商標)Teams、Slack(登録商標))。RTCは、送信者から受信者に、ネットワーク上で情報(例えば音声、インスタントメッセージング、ビデオ等)をほぼ同時に、些細なレイテンシでやり取りすることを指す。
【発明の概要】
【0004】
概要
[0004] この概要は、以下の詳細な説明の中で更に説明する一連の概念を単純化した形で紹介するために提供される。この概要は、特許請求の範囲に記載の内容の重要な特徴又は本質的な特徴を識別することも、特許請求の範囲に記載の内容の範囲を限定するために使用されることも意図しない。
【0005】
[0005] クラウド計算環境内で遠隔的に実行される通信アプリケーションのユーザインタフェース(UI)を提示するためにクライアント計算装置上で実行される遠隔デスクトップクライアントの性能を改善するための方法、システム、及びコンピュータプログラム製品を本明細書に記載する。実施形態では、これらの方法、システム、及びコンピュータプログラム製品は、遠隔的に実行される通信アプリケーションによってではなくピアツーピア式に、遠隔デスクトップクライアントが遠隔計算装置と音声及び/又はビデオ通信を行えるようにする。かかる実施形態に更によれば、これらの方法、システム、及びコンピュータプログラム製品は、遠隔デスクトップクライアントがクライアント計算装置の1つ又は複数のハードウェアベースのメディア処理能力を決定し、遠隔計算装置とピアツーピアの音声及び/又はビデオ通信を行う際に、かかる1つ又は複数のハードウェアベースのメディア処理能力を活用できるようにし、それによりかかる音声及び/又はビデオ通信の品質を改善し、クライアント計算装置上の処理負荷を低減することができる。1つ又は複数のハードウェアベースのメディア処理能力は、例えば、クライアント計算装置によるレンダリングのために遠隔計算装置から受信されるメディアを処理するため、遠隔計算装置に伝送するためにクライアント計算装置のメディアソースから捕捉されるメディアを処理するため、又は遠隔計算装置とメディア通信パラメータをネゴシエートするための基礎として、使用されることができる。
【0006】
[0006] 本発明の更なる特徴及び利点並びに様々な実施形態の構造及び動作を、添付図面に関して以下で詳細に説明する。実施形態は本明細書に記載する特定の実施形態に限定されないことを指摘しておく。かかる実施形態は、例示目的で本明細書に示されるに過ぎない。本明細書に含まれる教示に基づいて、更なる実施形態が当業者に明らかになる。
【0007】
図面の簡単な説明
[0007] 本明細書に援用し本明細書の一部を形成する添付図面は、本願の実施形態を示し、説明と共に実施形態の原理を説明し、当業者が実施形態を作成し及び利用することを可能にするのに更に役立つ。
【図面の簡単な説明】
【0008】
図1】[0008]実施形態の一例による、クラウド計算環境内で実行される通信アプリケーションによるビデオ及び/又は音声通信を可能にするためのシステムの一例のブロック図を示す。
図2】[0009]実施形態の一例による、通信アプリケーションによるクライアント計算装置と遠隔計算装置との間の音声及び/又はビデオ通信とは対照的に、クライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするためのシステムの一例のブロック図を示す。
図3】[0010]実施形態の一例による、クライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、通信アプリケーションからの通信をリダイレクトすることを可能にするプラグインを含むシステムの一例のブロック図を示す。
図4】[0011]実施形態の別の例による、クライアント計算装置のハードウェアベースのメディア処理能力を決定し、メディアを処理するために検出したハードウェアベースのメディア処理能力を使用する遠隔デスクトップクライアントへのプラグインを含むクライアント計算装置のブロック図を示す。
図5】[0012]実施形態の一例による、クライアント計算装置のハードウェアベースのメディア処理能力を決定し、メディアを処理するために検出したハードウェアベースのメディア処理能力を使用するための方法の流れ図を示す。
図6】[0013]実施形態の一例による、クライアント計算装置の決定されたハードウェアベースのメディア処理能力に基づいて遠隔計算装置とメディア通信パラメータをネゴシエートするための方法の流れ図を示す。
図7】[0014]実施形態の一例による、クライアント計算装置のハードウェアベースのメディア処理能力を決定し、クライアント計算装置のメディアソースから捕捉されるメディアを処理するためにハードウェアベースのメディア処理能力を使用するための方法の流れ図を示す。
図8】[0015]様々な実施形態を実装するために使用することができるプロセッサベースのコンピュータシステムの一例のブロック図である。
【発明を実施するための形態】
【0009】
[0016] 本発明の特徴及び利点は、図面と併せて理解するとき以下に記載する詳細な説明からより明らかになり、図面では全体を通して同様の参照文字が対応する要素を識別する。図中、同様の参照番号は、同一の、機能的に同様の、及び/又は構造的に同様の要素を概して示す。或る要素が最初に登場する図面は、対応する参照番号の最上位桁によって示される。
【0010】
詳細な説明
I.導入
[0017] 本明細書及び添付図面は、本発明の特徴を組み込む1つ又は複数の実施形態を開示する。本発明の範囲は開示する実施形態に限定されない。開示する実施形態は本発明を例示するに過ぎず、開示する実施形態の修正版も本発明に包含される。本発明の実施形態は添付の特許請求の範囲によって定める。
【0011】
[0018] 本明細書での「一実施形態」、「或る実施形態」、「実施形態例」等への言及は、記載される実施形態が特定の特徴、構造、又は特性を含み得るが、全ての実施形態がそれらの特定の特徴、構造、又は特性を必ずしも含まなくてもよいことを意味する。更に、かかる語句は必ずしも同じ実施形態を指すものではない。更に、或る実施形態に関連して特定の特徴、構造、又は特性が記載される場合、明確に記載されているか否かにかかわらず、かかる特徴、構造、又は特性を他の実施形態に関連して影響させることが当業者の知識の範囲に含まれると考えられる。
【0012】
[0019] この解説では、別段の定めがない限り、本開示の実施形態の特徴の条件又は関係の特性を修飾する「ほぼ」及び「約」等の形容詞は、対象とする応用の実施形態の動作に関して許容可能な許容差の範囲内にその条件又は特性が定められることを意味するように理解される。
【0013】
[0020] 数多くの例示的実施形態を下記の通り記載する。本明細書で示す任意の節/小節の見出しは限定的であることを意図しないことに留意されたい。実施形態は本明細書の全体を通して記載され、ここで任意の種類の実施形態は任意の節/小節の下に含まれ得る。更に、任意の節/小節の中で開示される実施形態は、同じ節/小節及び/又は異なる節/小節の中に記載される他の任意の実施形態と、任意のやり方で組み合わせることができる。
【0014】
II.実施形態例
[0021] 仮想化技術は、デスクトップのオペレーティングシステム(OS)及び関連するアプリケーションを、それらにアクセスするために使用されるクライアント計算装置から抽象化する。例えば、仮想デスクトップインフラソリューション(VDI)は、データセンタ内のサーバ上にデスクトップをホストし、ネットワーク上でクライアント計算装置にデスクトップの画像を届けることを含み得る。次いで、クライアント計算装置上でデスクトップ画像をレンダリングすることができ、クライアント計算装置のユーザはデスクトップ及びそのアプリケーションがクライアント計算装置上でローカルに実行されているかのように画像と直接対話することができる。
【0015】
[0022] この手法は、ユーザデスクトップを統合し集中化することによって顧客が管理及びコストを合理化できるようにする。集中化することの利点は、ハードウェア資源の最適化、ソフトウェアメンテナンスの低減、及びセキュリティの改善を含む。例えば或る例では、全てのユーザに対してソフトウェアパッチング及びOSマイグレーションを適用し試験することができる。更にソフトウェア資産が集中化され、それにより容易にモニタ及び保護され、デスクトップが紛失し又は盗難に遭った場合に機密データのセキュリティが侵害されない。加えてデスクトップの仮想化は、ユーザの移動性並びに任意の場所及び任意の装置から仮想デスクトップにアクセスする自由度を高める。
【0016】
[0023] 仮想化技術によって与えられる多くの利点にもかかわらず、一部のアプリケーションはVDI環境に関して最適化できない場合があり又はVDI環境内で十分にサポートされない場合がある。そのような一例は、ユーザ間のリアルタイム通信(RTC)を可能にするVDI環境内で実行される通信アプリケーションである(例えばMicrosoft(登録商標)Teams、Slack(登録商標))。本明細書に記載のRTCは、送信者から受信者にネットワーク上で情報(例えば音声、インスタントメッセージング、ビデオ等)をほぼ同時に些細なレイテンシを伴ってやり取りすることを指す。
【0017】
[0024] 例えば図1は、クラウド計算環境内で実行される通信アプリケーションによるビデオ及び/又は音声通信を可能にするためのシステム100の一例のブロック図を示す。図1に示すように、システム100は仮想デスクトップホスト104を含むクラウド計算環境102、クライアント装置112、及び遠隔計算装置114を含む。
【0018】
[0025] 説明のために、クラウド計算環境102は仮想デスクトップホスト104を1つだけ含むように示されているが、任意の数の資源を含むことができる。例えばクラウド計算環境102は、1つ又は複数のクラウドデータセンタ内で及び/又は企業若しくは組織に関して敷地内で実行される資源(例えばサーバ)で構成され得る。加えて実施形態では、クラウド計算環境102はサーバとの通信及びサーバ間の通信を助ける資源(例えばネットワークスイッチ、ネットワーク等)、サーバによる記憶域(例えば記憶装置等)、他の資源を管理する資源(例えばマルチテナントクラウドのテナント向けに仮想オペレーティングプラットフォームを提示するように仮想マシンを管理するハイパーバイザ等)、及び/又は更なる種類の資源を含む任意の種類の及び任意の数の他の資源を含むことができる。一部の実施形態では、仮想デスクトップホスト104はデータセンタ又は敷地内サーバ内でアクセス可能な遠隔サーバ又は仮想マシンを含み得る。
【0019】
[0026] 加えて、クライアント計算装置112及び遠隔計算装置114は、それぞれラップトップ及びスマートフォンとして図示するが、任意の種類のモバイル計算装置又は固定計算装置とすることができる。モバイル計算装置の例は、これだけに限定されないがMicrosoft(登録商標)Surface(登録商標)装置、携帯情報端末(PDA)、シンクライアント、ラップトップコンピュータ、ノートブックコンピュータ、Apple iPad(商標)等のタブレットコンピュータ、ネットブック、携帯電話、携帯ゲーム機、又は装着型計算装置を含む。固定計算装置の例は、これだけに限定されないがデスクトップコンピュータ又はPC(パーソナルコンピュータ)、ゲーム機、又はサーバを含む。
【0020】
[0027] 図1に更に示すように、クライアント計算装置112はネットワーク108を介してクラウド計算環境102に通信可能に結合され、遠隔計算装置114はネットワーク118を介してクラウド計算環境102に通信可能に結合される。ネットワーク108及び118は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、企業ネットワーク、インターネット等の1つ又は複数のネットワークを含むことができ、有線及び/又は無線部分の1つ又は複数を含み得る。特定のシナリオでは、ネットワーク108及びネットワーク118が同じネットワークを含み得る。
【0021】
[0028] クライアント計算装置112、遠隔計算装置114、及び仮想デスクトップホスト104は、ネットワーク108及び118上の通信を可能にする少なくとも1つのネットワークインタフェースを含み得る。有線又は無線のかかるネットワークインタフェースの例は、IEEE 802.11無線LAN(WLAN)無線インタフェース、ワイマックス(Wi-MAX:Worldwide Interoperability for Microwave Access)インタフェース、イーサネットインタフェース、ユニバーサルシリアルバス(USB)インタフェース、セルラネットワークインタフェース、Bluetooth(商標)インタフェース、近距離無線通信(NFC)インタフェース等を含む。ネットワークインタフェースの更なる例を本明細書の他の箇所に記載する。
【0022】
[0029] クライアント計算装置112は、通信アプリケーションのユーザ間のビデオ及び/又は音声通信を可能にし、仮想デスクトップホスト104上で実行される通信アプリケーションのユーザインタフェース106をクライアント計算装置112のユーザインタフェース内で提示するように構成される遠隔デスクトップクライアントも含む。例えば通信アプリケーションのユーザインタフェース106に関連するデータはクライアント計算装置112に転送し、クライアント計算装置112の画面表示内のユーザインタフェースとしてレンダリングすることができる。通信アプリケーションのユーザインタフェース106を提示するクライアント計算装置112上のユーザインタフェースとユーザ110が有し得る如何なる対話(例えばマウス及び/又はキーボード入力)も追跡し、仮想デスクトップホスト104に伝送することができる。
【0023】
[0030] より具体的には、ユーザ110は(例えばユーザインタフェース内に表示される連絡先の隣の「電話アイコン」をクリックすることで)クライアント計算装置112のユーザインタフェースと対話することにより、遠隔計算装置114のユーザ116とのビデオ及び/又は音声通信を開始することができる。この対話は仮想デスクトップホスト104に与えることができ、仮想デスクトップホスト104上で実行される通信アプリケーションはユーザ116とのビデオ及び/又は音声通信を開始し実行することができる。
【0024】
[0031] 実施形態では、ユーザ110とユーザ116との間のビデオ及び/又は音声通信中、クライアント計算装置112及び遠隔計算装置114上のデバイスソース(ビデオカメラ等)がデバイスソースの前に現れる像を捕捉することができる。図1に示すように、ユーザ110及び116について捕捉されたビデオは、他方のユーザの計算装置の表示画面上で提示するために他方のユーザの計算装置に仮想デスクトップホスト104経由で転送することができる。例えば遠隔計算装置114上のデバイスソースによって捕捉されるユーザ116のビデオは仮想デスクトップホスト104に転送し、仮想デスクトップホスト104上で処理(例えば復号)し、通信アプリケーションのユーザインタフェース106の一部としてローカルにレンダリングすることができる。一部の実施形態では、クライアント計算装置112のユーザインタフェース内にユーザ116のビデオをレンダリングするために、スクリーンスクレイピングを使用してユーザインタフェース106内でレンダリングされるユーザ116のビデオに関連する画面表示データを集めることができ、それによりユーザ110はデバイスソースによって捕捉されるままにユーザ116のビデオを同時的に見ることができる。
【0025】
[0032] 図1に関して上記で説明したこのビデオ及び/又は音声通信の手法は(とりわけ高分解能のビデオ及び音声エクスペリエンスで)レイテンシの問題を招く場合があり、それはクライアント計算装置112と遠隔計算装置114との間のビデオ及び/又は音声通信がネットワーク108、仮想デスクトップホスト104、及びネットワーク118を経由して転送されるからである。更にこの手法は、メディアを処理することで費やされる時間及び資源の量を増やす可能性がある。例えば仮想デスクトップホスト104がメディアを受信する場合、メディアを復号しなければならない場合があり、仮想デスクトップホスト104がメディアを伝送する場合、メディアを符号化しなければならない場合がある。
【0026】
[0033] クライアント計算装置112と遠隔計算装置114との間でピアツーピアのビデオ及び/又は音声通信手法を実装することは上記のレイテンシの問題を軽減することができるだけでなく、仮想デスクトップホスト104上の処理作業負荷を低減することができる。例えば図2は、クラウド内の通信アプリケーションと対話するクライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするためのシステム200の一例のブロック図を示す。
【0027】
[0034] 図1に関して上記で説明したように、ユーザ110はクライアント計算装置112のユーザインタフェースと対話することで遠隔計算装置114のユーザ116とのビデオ及び/又は音声通信を開始することができる。この対話は仮想デスクトップホスト104に与えることができ、遠隔計算装置114とのメディア通信を開始するように仮想デスクトップホスト104上で実行される通信アプリケーションを促すことができる。但し図2では、クライアント計算装置112と遠隔計算装置114との間のピアツーピアメディア通信を可能にするためにメディア通信の呼び出しをインタセプトし、クライアント計算装置112にリダイレクトすることができる。クライアント計算装置112の遠隔デスクトップクライアントは、クライアント計算装置112と遠隔計算装置114との間のピアツーピアの音声及び/又はビデオ通信を可能にするために通信アプリケーションからリダイレクトされた通信を受信するように構成される。
【0028】
[0035] 音声及び/又はビデオ通信のためにクライアント計算装置112と遠隔計算装置114とが接続されると(図4及び図5に関して以下でより詳細に説明するプロセス)、クライアント計算装置112及び遠隔計算装置114は(図1のネットワーク108及び118と同じであり得る、同様であり得る、又は完全に異なり得る)ネットワーク202を介して互いにビデオ及び/又は音声を通信することができる。
【0029】
[0036] クライアント計算装置112と遠隔計算装置114との間のピアツーピアの音声及び/又はビデオ通信を可能にすることによって仮想デスクトップホスト104を経由したメディア通信が回避され、それによりかかる音声及び/又はビデオ通信に関連するレイテンシが低減され、仮想デスクトップホスト104上の処理負荷も低減される。更に、クライアント計算装置112と遠隔計算装置114との間のメディア通信接続をピアツーピアチャネルに移す一環として、本明細書に記載の実施形態は、かかる通信をより上手く実行するためにクライアント計算装置112のローカルハードウェアベースのメディア処理能力(例えばハードウェアベースのビデオ又は音声コーデック)が遠隔デスクトップクライアントによって発見され活用されることも可能にする。本明細書で使用するとき、メディアという用語は少なくともビデオ、音声、又はその組み合わせを包含するように理解すべきである。かかる実施形態はクライアント計算装置112のハードウェアベースのメディア処理能力を活用することができるので、ソフトウェアベースのメディア処理手法と比較してクライアント計算装置112によるメディア処理の品質及び効率を改善することができる。更に、クライアント計算装置112のかかるハードウェアベースのメディア処理能力を利用することはクライアント計算装置112のプロセッサ上の負荷を低減することができ、かかるプロセッサは対応するソフトウェアベースのメディア処理能力を代わりに実行する必要がない。
【0030】
[0037] 仮想デスクトップホスト104上で実行される通信アプリケーションからクライアント計算装置112への通信をリダイレクトするプロセスを例証するのを助けるために、図1及び図2を引き続き参照して次に図3を説明する。図3は、クライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、通信アプリケーションからの通信をリダイレクトすることを可能にするためのシステム300の一例のブロック図を示す。
【0031】
[0038] 図3に示すように、クラウド計算環境102は仮想デスクトップホスト104及びプラグイン302を含む。図3に更に示すように、プラグイン302はリダイレクトシム304を含む。リダイレクトシム304は、仮想デスクトップホスト104上で実行される通信アプリケーションによって開始される通信(例えばAPI呼び出し)をインタセプトし、ネットワーク108を介してその呼び出しをクライアント計算装置112にリダイレクトするように構成される。例えば通信アプリケーションが遠隔計算装置114とのビデオ及び/又は音声通信を開始する場合、リダイレクトシム304がビデオ及び/又は音声通信要求をインタセプトし、必要に応じて要求を修正(例えば特定のスクリプトオブジェクトを異なる実装と置換)し、それを通信チャネル306上で(ネットワーク108を介して)クライアント計算装置112にリダイレクトする。
【0032】
[0039] 一実施形態では、特定の条件が満たされる場合(例えば通信アプリケーションが特定の仮想デスクトップ環境上で実行される場合、及びマルチセッションユーザが有効にされる場合)、通信アプリケーションがプラグイン302を実行時にロードすることができる。ロードされると、プラグイン302は仮想デスクトップホスト104とクライアント計算装置112との間の通信を可能にするためにクライアント計算装置112との通信チャネル306の確立(例えば動的仮想チャネル(DVC)の確立)を試みることができる。実施形態では、プラグイン302がクライアント計算装置112に対してWebSocketサーバプロセスによる遠隔手続き呼び出し(RPC)を行うことができる。
【0033】
[0040] クライアント計算装置112のより詳細な全体像を与えるために、次に図4を説明する。図4は、クライアント計算装置112と遠隔計算装置との間のピアツーピア通信を可能にし、クライアント計算装置112のハードウェアベースのメディア処理能力を決定し、メディアを処理するために検出したハードウェアベースのメディア処理能力を使用する遠隔デスクトップクライアント402へのプラグイン404を含むクライアント計算装置112を示す。プラグイン404は、非OS固有であり任意のプラットフォームに適合する1組のコンポーネント432と、OS固有でありプラットフォームごとに再実装される必要がある1組のコンポーネント430とを含む。非OS固有の1組のコンポーネント432は、RTCリスナ406、RTCマネージャ408、ウィンドウマネージャ410、及びRTCコンポーネント412を含む。
【0034】
[0041] 図4に更に示すように、クライアント計算装置112は遠隔デスクトップクライアント402も含む。先に説明したように、クライアント計算装置112の遠隔デスクトップクライアント402はクライアント計算装置112と遠隔計算装置(例えば図1及び図2の遠隔計算装置114)との間のピアツーピアの音声及び/又はビデオ通信を可能にするために通信アプリケーションから(即ち図3のクラウド計算環境102のプラグイン302経由で)リダイレクトされた通信を通信チャネル306上で受信するように構成される。
【0035】
[0042] クライアント計算装置112と遠隔計算装置114との間のピアツーピア通信を可能にするプロセスで、リダイレクトされた通信を通信チャネル306上でリスンし、リダイレクトされた通信のストリームを受信時にRTCマネージャ408に与えるようにRTCリスナ406が構成される。RTCマネージャ408は、リダイレクトされた通信のストリーム(例えばシリアル化されたRPC呼び出し情報)を受信し、リアルタイム通信を可能にするためのフレームワーク(例えばWebRTC)に適合する形式にかかる通信を変換するように構成される。次いでRTCマネージャ408は、変換済み通信(例えばWebRTC API呼び出し)をRTCコンポーネント412に与える。RTCコンポーネント412は、RTCマネージャ408から与えられる変換済み通信(例えばWebRTC API呼び出し)に基づく音声及び/又はビデオ通信のためにクライアント計算装置112及び遠隔計算装置114を接続するように構成される。RTCコンポーネント412は、音声及び/又はビデオ通信のためにクライアント計算装置112と遠隔計算装置114との間の通信チャネル436を確立することができる。
【0036】
[0043] OS固有のプラグイン404の1組のコンポーネント430は、メディア捕捉コンポーネント414、メディアレンダラコンポーネント416、及びウィンドウマネージャコンポーネント418を含む。クライアント計算装置112と遠隔計算装置114とが音声及び/又はビデオ通信のために接続された後、メディア捕捉コンポーネント414及びメディアレンダラコンポーネント416を使用してクライアント計算装置112のハードウェアベースのメディア処理能力を検出し、クライアント計算装置112と遠隔計算装置114との間の音声及び/又はビデオ通信を最適化するためにハードウェアベースのメディア処理能力を使用することができる。
【0037】
[0044] 例えばメディア捕捉コンポーネント414は、クライアント計算装置112上で何が利用可能なのかを決定するためにOS固有のAPIを使用することにより、クライアント計算装置112のハードウェアベースのメディア処理能力を決定することができる。クライアント計算装置112上で何が利用可能なのかを決定した後、メディア捕捉コンポーネント414は、捕捉メディアの処理に関係する任意の情報(フォーマッティング等)及びハードウェアベースのメディア処理能力を活用して捕捉メディアを処理するのに必要なハードウェアの任意の構成をソースリーダ420に知らせるように構成される。ソースリーダ420は、クライアント計算装置112のビデオカメラ426及び他のデバイスソース(例えばマイクロホン)からメディアを捕捉するように構成される。
【0038】
[0045] 説明の助けになるように、クライアント計算装置112が捕捉ビデオを低分解能/品質にトランスコードするハードウェアベースのメディア処理能力を有することをメディア捕捉コンポーネント414が決定すると仮定する。メディア捕捉コンポーネント414は、元の捕捉メディアを中間非圧縮形式(例えば音声ではPCM、又はビデオではYUV)に復号し、次いで標的形式に符号化する必要があることをソースリーダ420に知らせることができる。次いでソースリーダ420はトランスコードを実行し、処理済みビデオをメディア捕捉コンポーネント414に与えることができる。ビデオを捕捉する際、ソースリーダ420はフレームサーバのように機能し、捕捉ビデオをメディア捕捉コンポーネント414にストリームすることができる。
【0039】
[0046] メディア捕捉コンポーネント414は、ビデオカメラ426から捕捉される処理済み及び/又は未処理のメディアをソースリーダ420から受信し、その捕捉メディアをRTCコンポーネント412に与えるように更に構成される。RTCコンポーネント412は、遠隔計算装置114に伝送するために捕捉メディアを準備するように構成される。図4に示すように、RTCコンポーネント412はソケットAPI424を経由して通信チャネル436上で捕捉メディアを遠隔計算装置114に送信することができる。
【0040】
[0047] メディアレンダラコンポーネント416は、クライアント計算装置112上で何が利用可能なのかを決定するためにOS固有のAPIを使用することにより、クライアント計算装置112のハードウェアベースのメディア処理能力を決定することができる。クライアント計算装置112上で何が利用可能なのかを決定した後、メディアレンダラコンポーネント416は、受信メディアの処理に関係する任意の情報(フォーマッティング等)及びハードウェアベースのメディア処理能力を活用して受信メディアを処理するのに必要なハードウェアの任意の構成をメディアエンジン422に知らせるように構成される。
【0041】
[0048] メディアレンダラコンポーネント416は、RTCコンポーネント412から受信されるメディアの特定のソースをメディアエンジン422に与えるように更に構成される。次いでメディアエンジン422はメディアパイプラインを構築し、それをレンダリングのためにセットアップすることができる。メディアエンジン422は、特定のソース(圧縮又は解凍)をメディアストリームソース428に与えるように構成される。メディアストリームソース428は、ハードウェアベースのメディア処理能力を活用して受信メディアを処理するのに必要なハードウェアにメディアソースを与えるように構成される。一実施形態では、メディアストリームソース428はビデオメディアを作成するためにフレームサーバ手法を使用することができる。
【0042】
[0049] 図4に示すように、メディアストリームソース428はハードウェア復号器438に接続される。一部の実施形態では、受信メディアが圧縮されている場合、ハードウェア復号器438が受信メディアを復号することができる。加えてメディアストリームソース428は、ハードウェアアクセラレイテッドビデオ処理(例えばフレームのサイズ変更、色の変換等)又はハードウェアアクセラレイテッド音声処理等の他のハードウェアベースのメディア処理能力に受信メディアを与えることができる。図4に示すように、処理済みメディアは遠隔デスクトップクライアント402のユーザインタフェース434内でレンダリングするために遠隔デスクトップクライアント402に与えることができる。或いは又は加えて、処理済みメディアはディスプレイ440においてレンダリングすることができる。ウィンドウマネージャ410及びウィンドウマネージャコンポーネント418は、ユーザインタフェース434内でレンダリングされるビデオに対して行われる必要がある任意の変更(例えばウィンドウの移動、ウィンドウのサイズ変更、ポップアップメニュー等)をモニタし追跡するように構成される。
【0043】
[0050] 図5図7に関してクライアント計算装置112を下記の通りより詳細に説明する。図5は、クライアント計算装置と遠隔計算装置との間のピアツーピア通信を可能にし、クライアント計算装置のハードウェアベースのメディア処理能力を決定し、メディアを処理するために検出したハードウェアベースのメディア処理能力を使用するための方法の流れ図500を示す。
【0044】
[0051] 流れ図500はステップ502で始まる。ステップ502で、通信アプリケーションによる音声及び/又はビデオ通信とは対照的にクライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、通信アプリケーションからリダイレクトされた通信を受信する。例えば及び図4を引き続き参照し、遠隔デスクトップクライアント402は、通信アプリケーションによる音声及び/又はビデオ通信とは対照的にクライアント計算装置112と遠隔計算装置114との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、通信アプリケーションからリダイレクトされた通信を通信チャネル306上で受信する。
【0045】
[0052] ステップ504で、リアルタイム通信を可能にするためのフレームワークを使用し、リダイレクトされた通信に基づく音声及び/又はビデオ通信のためにクライアント計算装置及び遠隔計算装置を接続する。例えば及び図4へと続き、RTCコンポーネント412は、リアルタイム通信を可能にするためのフレームワークを使用し、リダイレクトされた通信に基づく音声及び/又はビデオ通信のためにクライアント計算装置112及び遠隔計算装置114を接続する。一実施形態では、リダイレクトされる通信は通信アプリケーションからインタセプトされるWebRTC API呼び出しを含み、WebRTCのAPI及びプロトコルはクライアント計算装置112及び遠隔計算装置114を接続するために使用されるフレームワークである。
【0046】
[0053] ステップ506で、クライアント計算装置のハードウェアベースのメディア処理能力を決定する。例えば及び図4へと続き、メディアレンダラコンポーネント416は、クライアント計算装置112上で何が利用可能なのかを決定するためにOS固有のAPIを使用することにより、クライアント計算装置112のハードウェアベースのメディア処理能力を決定する。クライアント計算装置112のかかるハードウェアベースのメディア処理能力は、例えば(ビデオ復号器を含む)ビデオコーデック、(音声復号器を含む)音声コーデック、ハードウェアアクセラレイテッドビデオ処理、又はハードウェアアクセラレイテッド音声処理を限定なしに含み得る。
【0047】
[0054] ステップ508で、遠隔計算装置から伝送されるメディアを受信する。例えば及び図4へと続き、メディアレンダラコンポーネント416は遠隔計算装置114から伝送されるメディアをRTCコンポーネント412から受信する。
【0048】
[0055] ステップ510で、ハードウェアベースのメディア処理能力を使用してクライアント計算装置によるレンダリングのために遠隔計算装置からの受信メディアを処理する。例えば及び図4へと続き、メディアストリームソース428はハードウェアベースのメディア処理能力を使用してクライアント計算装置112によるレンダリングのために遠隔計算装置114からの受信メディアを処理する。説明の助けになるように、メディアストリームソース428はハードウェア復号器438に接続される。一部の実施形態では、受信メディアが圧縮されている場合、ハードウェア復号器438が受信メディアを復号することができる。加えてメディアストリームソース428は、ハードウェアアクセラレイテッドビデオ処理(例えばフレームのサイズ変更、色の変換等)又はハードウェアアクセラレイテッド音声処理等の他のハードウェアベースのメディア処理能力に受信メディアを与えることができる。
【0049】
[0056] 図6は、クライアント計算装置の決定されたハードウェアベースのメディア処理能力に基づいて遠隔計算装置とメディア通信パラメータをネゴシエートするための方法の流れ図600を示す。流れ図600はステップ602で始まる。ステップ602で、クライアント計算装置の別のハードウェアベースのビデオ処理能力を決定する。例えば及び図4へと続き、RTCマネージャ408はクライアント計算装置112の別のハードウェアベースのビデオ処理能力を決定することができる。RTCマネージャ408は、リアルタイム通信を可能にするためのフレームワークのAPIによって他のハードウェアベースのメディア処理能力を決定することができる。
【0050】
[0057] ステップ604で、他のハードウェアベースのメディア処理能力に基づいて遠隔計算装置とメディア通信パラメータをネゴシエートする。例えば及び図4へと続き、RTCマネージャ408は他のハードウェアベースのメディア処理能力に基づいて遠隔計算装置114とメディア通信パラメータをネゴシエートする。例えばRTCマネージャ408は、遠隔計算装置114が有さない特定の復号器(例えばVP9復号器)をクライアント計算装置112が有することを決定し得る。遠隔計算装置114の特定の復号器に適合する形式でメディアを提供するために、RTCマネージャ408は遠隔計算装置114とネゴシエートすることができる。
【0051】
[0058] 図7は、クライアント計算装置のハードウェアベースのメディア処理能力を決定し、クライアント計算装置のメディアソースから捕捉されるメディアを処理するためにハードウェアベースのメディア処理能力を使用するための方法の流れ図700を示す。流れ図700はステップ702で始まる。ステップ702で、クライアント計算装置の別のハードウェアベースのメディア処理能力を決定する。例えば及び図4へと続き、メディア捕捉コンポーネント414はクライアント計算装置112の別のハードウェアベースのメディア処理能力を決定する。メディア捕捉コンポーネント414は、クライアント計算装置112のOSに固有のAPIを使用することにより、クライアント計算装置112の利用可能なハードウェアベースのメディア処理能力を決定することができる。クライアント計算装置112のかかるハードウェアベースのメディア処理能力は、例えば(ビデオ符号器を含む)ビデオコーデック、(音声符号器を含む)音声コーデック、ハードウェアアクセラレイテッドビデオ処理、又はハードウェアアクセラレイテッド音声処理を限定なしに含み得る。
【0052】
[0059] ステップ704で、他のハードウェアベースのメディア処理能力を使用してクライアント計算装置のメディアソースから捕捉されるメディアを処理する。例えば、ハードウェアベースのビデオ又は音声符号器を使用してクライアント計算装置112のメディアソースから捕捉されるビデオ又は音声をそれぞれ符号化することができる。別の例として、ハードウェアアクセラレイテッドビデオ又は音声処理を使用してクライアント計算装置112のメディアソースから捕捉されるビデオ又は音声それぞれの処理を加速することができる。一部の実施形態では及び図4へと続き、メディア捕捉コンポーネント414は、捕捉メディアの処理に関係する任意の情報(フォーマッティング等)及びハードウェアベースのメディア処理能力を活用して捕捉メディアを処理するのに必要なハードウェアの任意の構成をソースリーダ420に知らせるように構成される。
【0053】
[0060] ステップ706で、遠隔計算装置に処理済みメディアを伝送する。例えば及び図4へと続き、RTCコンポーネント412は通信チャネル436上で遠隔計算装置114に処理済みメディアを伝送する。
【0054】
[0061] 上記の実施形態は仮想デスクトップホスト上で実行される通信アプリケーションに言及したが、本明細書に記載の技法はクライアント計算装置112から離れて実行される任意の通信アプリケーションと、かかる通信アプリケーションが仮想デスクトップ又は他の何らかの種類のプラットフォーム上で実行されていても、組み合わせて利用できることを理解すべきである。つまり、本明細書に記載の実施形態は仮想デスクトップ上で実行されている通信アプリケーションに限定されず、サーバ上で実行することができ、離れて位置するユーザ及びユーザ装置との間の音声及び/又はビデオ通信を可能にする任意の種類の通信アプリケーションを広く包含する。
【0055】
[0062] 更に、上記の実施形態はクライアント計算装置112上で実行される遠隔デスクトップ及び関連するプラグインに言及したが、それらのコンポーネントによって与えられる機能は任意の種類の構造又はアーキテクチャを有する任意の種類のソフトウェアコンポーネント内にカプセル化できることを理解すべきである。例えばプラグイン404の機能及び特徴は、必ずしもプラグインではないが、むしろ遠隔デスクトップクライアント402と共に機能するように動作可能な他の何らかの種類のソフトウェアコンポーネントであるソフトウェアコンポーネント内に含まれ得る。更に、遠隔デスクトップクライアント402を越えて追加のソフトウェアコンポーネントが必要とされないように、プラグイン404の機能及び特徴は遠隔デスクトップクライアント402内に直接一体化することもできる。また更に、遠隔デスクトップクライアント402及びプラグイン404の機能及び特徴は、遠隔デスクトップクライアント又はプラグインと呼ばれないものの本明細書に記載したコンポーネントに同様の機能を提供するクライアント計算装置112のアプリケーション又はオペレーティングシステムコンポーネント内に含まれ得る。
【0056】
III.コンピュータシステムの実装例
[0063] クラウド計算環境102、仮想デスクトップホスト104、プラグイン302、クライアント計算装置112、遠隔デスクトップクライアント402、プラグイン404、流れ図500、流れ図600、及び/又は流れ図700はハードウェア、又はソフトウェア及び/又はファームウェアの一方若しくは両方と組み合わせたハードウェアによって実装することができる。例えばクラウド計算環境102、仮想デスクトップホスト104、プラグイン302、クライアント計算装置112、遠隔デスクトップクライアント402、プラグイン404、流れ図500、流れ図600、及び/又は流れ図700は、1つ又は複数のプロセッサ内で実行され、コンピュータ可読記憶媒体内に記憶されるように構成されるコンピュータプログラムコード/命令として実装することができる。別の実施形態では、クラウド計算環境102、仮想デスクトップホスト104、プラグイン302、クライアント計算装置112、遠隔デスクトップクライアント402、プラグイン404、流れ図500、流れ図600、及び/又は流れ図700は、サービス型ソフトウェア(SaaS)又はサービス型プラットフォーム(PaaS)を操作するハードウェアによって実装することもできる。或いはクラウド計算環境102、仮想デスクトップホスト104、プラグイン302、クライアント計算装置112、遠隔デスクトップクライアント402、プラグイン404、流れ図500、流れ図600、及び/又は流れ図700はハードウェアロジック/電気回路として実装することができる。
【0057】
[0064] 例えば一実施形態では、クラウド計算環境102、仮想デスクトップホスト104、プラグイン302、クライアント計算装置112、遠隔デスクトップクライアント402、プラグイン404、流れ図500、流れ図600、及び/又は流れ図700のうちの任意の組み合わせの1つ又は複数をシステムオンチップ(SoC)によって一緒に実装することができる。SoCはプロセッサ(例えば中央処理装置(CPU)、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)等)、メモリ、1つ若しくは複数の通信インタフェース、及び/又は更なる回路のうちの1つ又は複数を含む集積回路チップを含むことができ、任意選択的に受信済みのプログラムコードを実行すること及び/又は機能を実行するための埋め込みファームウェアを含むことができる。
【0058】
[0065] 図8は、実施形態を実装することができる計算装置800の例示的実装形態を示す。例えばクラウド計算環境102、仮想デスクトップホスト104、プラグイン302、クライアント計算装置112、遠隔デスクトップクライアント402、プラグイン404のコンポーネントは、固定コンピュータ又はモバイルコンピュータの実施形態において、計算装置800の1つ若しくは複数の特徴及び/又は代替的特徴を含む計算装置800と同様の1つ又は複数の計算装置によってそれぞれ実装することができる。本明細書で示す計算装置800の説明は例示目的で与えており、限定的であることは意図しない。当業者なら分かるように、実施形態は更なる種類のコンピュータシステムによって実装することができる。
【0059】
[0066] 図8に示すように、計算装置800は、プロセッサ回路802と呼ぶ1つ又は複数のプロセッサ、システムメモリ804、及びシステムメモリ804を含む様々なシステムコンポーネントをプロセッサ回路802に結合するバス806を含む。プロセッサ回路802は、中央処理装置(CPU)、マイクロコントローラ、マイクロプロセッサ、及び/又は他の物理ハードウェアプロセッサ回路として1つ又は複数の物理ハードウェア電気回路装置要素及び/又は集積回路装置(半導体材料チップ又はダイ)によって実装される電気及び/又は光回路である。プロセッサ回路802は、オペレーティングシステム830、アプリケーションプログラム832、他のプログラム834等のプログラムコード等、コンピュータ可読媒体内に記憶されるプログラムコードを実行することができる。バス806は、様々なバスアーキテクチャの何れかを使用するメモリバス又はメモリコントローラ、周辺バス、アクセラレイテッドグラフィックスポート、及びプロセッサ又はローカルバスを含む幾つかの種類のバス構造の何れかの1つ又は複数を表す。システムメモリ804は、読取専用メモリ(ROM)808及びランダムアクセスメモリ(RAM)810を含む。基本入出力システム812(BIOS)がROM808内に記憶される。
【0060】
[0067] 計算装置800は以下のドライブ、つまりハードディスクとの間で読み書きするためのハードディスクドライブ814、リムーバブル磁気ディスク818との間で読み書きするための磁気ディスクドライブ816、及びCD ROM、DVD ROM、又は他の光媒体等のリムーバブル光ディスク822との間で読み書きするための光ディスクドライブ820の1つ又は複数も有する。ハードディスクドライブ814、磁気ディスクドライブ816、及び光ディスクドライブ820は、ハードディスクドライブインタフェース824、磁気ディスクドライブインタフェース826、及び光ドライブインタフェース828のそれぞれによってバス806に接続される。ドライブ及びその関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及びコンピュータ用の他のデータの不揮発性記憶域を提供する。ハードディスク、リムーバブル磁気ディスク、及びリムーバブル光ディスクを記載したが、フラッシュメモリカード、デジタルビデオディスク、RAM、ROM、及び他のハードウェア記憶媒体等の他の種類のハードウェアベースのコンピュータ可読記憶媒体を使用してデータを記憶することができる。
【0061】
[0068] ハードディスク、磁気ディスク、光ディスク、ROM、又はRAM上に幾つかのプログラムモジュールを記憶することができる。これらのプログラムはオペレーティングシステム830、1つ又は複数のアプリケーションプログラム832、他のプログラム834、及びプログラムデータ836を含む。アプリケーションプログラム832又は他のプログラム834は、例えば仮想デスクトップホスト104、プラグイン302、遠隔デスクトップクライアント402、プラグイン404、流れ図500、流れ図600、及び/又は流れ図700(流れ図500、600、及び700の任意の適切なステップを含む)、及び/又は本明細書に記載の更なる実施形態を実装するためのコンピュータプログラムロジック(例えばコンピュータプログラムコード又は命令)を含み得る。
【0062】
[0069] ユーザは、キーボード838及びポインティング装置840等の入力装置によって計算装置800内にコマンド及び情報を入力することができる。他の入力装置(不図示)はマイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、タッチスクリーン及び/又はタッチパッド、音声入力を受け付けるための音声認識システム、ジェスチャ入力を受け付けるためのジェスチャ認識システム等を含み得る。これらの及び他の入力装置は、バス806に結合されるシリアルポートインタフェース842によってプロセッサ回路802にしばしば接続されるが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス(USB)等の他のインタフェースによって接続されてもよい。
【0063】
[0070] 表示画面844も、ビデオアダプタ846等のインタフェースによってバス806に接続される。表示画面844は計算装置800の外部にあっても、計算装置800に組み込まれてもよい。表示画面844は情報を表示することができるだけでなく、ユーザコマンド及び/又は他の情報を(例えば接触、フィンガジェスチャ、仮想キーボード等によって)受け付けるためのユーザインタフェースになり得る。表示画面844に加えて、計算装置800はスピーカ及びプリンタ等の他の周辺出力装置(不図示)を含むことができる。表示画面844及び/又は他の任意の周辺出力装置(不図示)はユーザインタフェース106及び434、及び/又は本明細書に記載の任意の更なる実施形態を実装するために使用され得る。
【0064】
[0071] 計算装置800は、アダプタ又はネットワークインタフェース850、モデム852、又はネットワーク上で通信を確立するための他の手段によってネットワーク848(例えばインターネット)に接続される。内蔵又は外付けとすることができるモデム852は、図8に示すようにシリアルポートインタフェース842を介してバス806に接続することができ、又はパラレルインタフェースを含む別のインタフェースの種類を使用してバス806に接続することができる。
【0065】
[0072] 本明細書で使用するとき、「コンピュータプログラム媒体」、「コンピュータ可読媒体」、及び「コンピュータ可読記憶媒体」という用語は、ハードディスクドライブ814に関連するハードディスク、リムーバブル磁気ディスク818、リムーバブル光ディスク822、RAM、ROM、フラッシュメモリカード、デジタルビデオディスク、ジップディスク、MEM、ナノテクノロジベースの記憶装置等の他の物理ハードウェア媒体、及び更なる種類の物理/有形ハードウェア記憶媒体を指すために使用する。かかるコンピュータ可読記憶媒体は通信媒体から区別され、通信媒体と重複しない(通信媒体を含まない)。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータを、搬送波等の変調データ信号内に組み入れる。「変調データ信号」という用語は、信号内に情報を符号化するようにその特性の1つ又は複数が設定され又は変更された信号を意味する。限定ではなく例として、通信媒体は音響、RF、赤外線等の無線媒体及び他の無線媒体、並びに有線媒体を含む。実施形態は、コンピュータ可読記憶媒体を対象とする実施形態と別個の及び重複しないかかる通信媒体も対象とする。
【0066】
[0073] 上記で述べたように、コンピュータプログラム及びモジュール(アプリケーションプログラム832及び他のプログラム834を含む)はハードディスク、磁気ディスク、光ディスク、ROM、RAM、又は他のハードウェア記憶媒体上に記憶することができる。かかるコンピュータプログラムは、ネットワークインタフェース850、シリアルポートインタフェース842、又は他の任意のインタフェースの種類を介して受信することもできる。かかるコンピュータプログラムは、アプリケーションによって実行され又はロードされるとき、本明細書で論じる実施形態の特徴を計算装置800が実装することを可能にする。従って、かかるコンピュータプログラムは計算装置800のコントローラを表す。
【0067】
[0074] 実施形態は、任意のコンピュータ可読媒体上に記憶されるコンピュータコード又は命令を含むコンピュータプログラム製品も対象とする。かかるコンピュータプログラム製品はハードディスクドライブ、光ディスクドライブ、メモリ装置パッケージ、ポータブルメモリスティック、メモリカード、及び他の種類の物理記憶ハードウェアを含む。
【0068】
IV.更なる実施形態例
[0075] 第1の実施形態では、クライアント計算装置が、1つ又は複数のプロセッサと、1つ又は複数のプロセッサによって実行するためのコンピュータプログラムロジックを記憶する1つ又は複数のメモリ装置とを含み、コンピュータプログラムロジックは、クラウド計算環境内で実行される通信アプリケーションのユーザインタフェースをクライアント計算装置のユーザインタフェース内で提示するように構成される遠隔デスクトップクライアントであって、通信アプリケーションによる音声及び/又はビデオ通信とは対照的にクライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、通信アプリケーションからリダイレクトされた通信を受信するように更に構成される、遠隔デスクトップクライアントと、遠隔デスクトップチャネルコンポーネントからリダイレクトされた通信を受信し、リアルタイム通信を可能にするためのフレームワークに適合する形式にリダイレクトされた通信を変換するように構成されるリアルタイム通信マネージャ、変換済み通信に基づく音声及び/又はビデオ通信のためにクライアント計算装置及び遠隔計算装置を接続するように構成されるリアルタイム通信コンポーネント、及びクライアント計算装置のハードウェアベースのメディア処理能力を決定し、ハードウェアベースのメディア処理能力を使用してクライアント計算装置のメディアソースから捕捉されるメディアを処理し、遠隔計算装置に伝送されるようにリアルタイム通信コンポーネントに処理済みメディアを提供するように構成されるメディア捕捉コンポーネントを含むプラグインと、を含む。
【0069】
[0076] 一実施形態では、メディアがビデオ又は音声の1つを含む。
【0070】
[0077] 一実施形態では、リアルタイム通信マネージャが、クライアント計算装置の別のハードウェアベースのビデオ処理能力を決定し、他のハードウェアベースのメディア処理能力に基づいて遠隔計算装置とメディア通信パラメータをネゴシエートするように更に構成される。
【0071】
[0078] 一実施形態では、メディア捕捉コンポーネントがクライアント計算装置のオペレーティングシステムのアプリケーションプログラミングインタフェース(API)によってハードウェアベースのメディア処理能力を決定し、リアルタイム通信マネージャがリアルタイム通信を可能にするためのフレームワークのAPIによって他のハードウェアベースのメディア処理能力を決定する。
【0072】
[0079] 一実施形態では、プラグインがリアルタイム通信コンポーネントによって遠隔計算装置から伝送されるメディアを受信し、クライアント計算装置のユーザインタフェース内でレンダリングするためにクライアント計算装置のメディアエンジンに受信メディアを与えるように構成されるメディアレンダラコンポーネントを更に含み、ビデオレンダラコンポーネントはクライアント計算装置の別のハードウェアベースのメディア処理能力を決定し、遠隔計算装置からの受信メディアを処理するために他のメディア処理能力を使用するように更に構成される。
【0073】
[0080] 一実施形態では、ハードウェアベースのメディア処理能力がビデオコーデック又は音声コーデックの1つを含む。
【0074】
[0081] 一実施形態では、ハードウェアベースのメディア処理能力がハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理の1つを含む。
【0075】
[0082] 別の実施形態では、クラウド計算環境内で実行される通信アプリケーションのユーザインタフェースを提示するクライアント計算装置の1つ又は複数のプロセッサによって実行される方法が、通信アプリケーションによる音声及び/又はビデオ通信とは対照的にクライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、通信アプリケーションからリダイレクトされた通信を受信すること、リアルタイム通信を可能にするためのフレームワークを使用し、リダイレクトされた通信に基づく音声及び/又はビデオ通信のためにクライアント計算装置及び遠隔計算装置を接続すること、クライアント計算装置のハードウェアベースのメディア処理能力を決定すること、遠隔計算装置から伝送されるメディアを受信すること、及びハードウェアベースのメディア処理能力を使用してクライアント計算装置によるレンダリングのために遠隔計算装置からの受信メディアを処理することを含む。
【0076】
[0083] 一実施形態では、メディアがビデオ又は音声の1つを含む。
【0077】
[0084] 一実施形態では、この方法がクライアント計算装置の別のハードウェアベースのビデオ処理能力を決定すること、及び他のハードウェアベースのメディア処理能力に基づいて遠隔計算装置とメディア通信パラメータをネゴシエートすることを更に含む。
【0078】
[0085] 一実施形態では、ハードウェアベースのメディア処理能力を決定することが、クライアント計算装置のオペレーティングシステムのアプリケーションプログラミングインタフェース(API)を使用してハードウェアベースのメディア処理能力を決定することを含み、他のハードウェアベースのメディア処理能力を決定することが、リアルタイム通信を可能にするためのフレームワークのAPIを使用して他のハードウェアベースのメディア処理能力を決定することを含む。
【0079】
[0086] 一実施形態では、この方法が、クライアント計算装置の別のハードウェアベースのメディア処理能力を決定すること、クライアント計算装置のメディアソースから捕捉されるメディアを処理するために他のハードウェアベースのメディア処理能力を使用すること、及び遠隔計算装置に処理済みメディアを伝送することを更に含む。
【0080】
[0087] 一実施形態では、ハードウェアベースのメディア処理能力がビデオコーデック又は音声コーデックの1つを含む。
【0081】
[0088] 一実施形態では、ハードウェアベースのメディア処理能力がハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理の1つを含む。
【0082】
[0089] 別の実施形態では、クラウド計算環境内で実行される通信アプリケーションのユーザインタフェースを提示するクライアント計算装置の少なくとも1つのプロセッサによって実行されるとき、通信アプリケーションによる音声及び/又はビデオ通信とは対照的にクライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、通信アプリケーションからリダイレクトされた通信を受信すること、リアルタイム通信を可能にするためのフレームワークを使用し、リダイレクトされた通信に基づく音声及び/又はビデオ通信のためにクライアント計算装置及び遠隔計算装置を接続すること、クライアント計算装置のハードウェアベースのメディア処理能力を決定すること、及びハードウェアベースのメディア処理能力に基づいて遠隔計算装置とメディア通信パラメータをネゴシエートすることを含む方法を少なくとも1つのプロセッサに実行させるプログラム命令を記録しているコンピュータ可読記憶媒体。
【0083】
[0090] 一実施形態では、メディアがビデオ又は音声の1つを含む。
【0084】
[0091] 一実施形態では、この方法が、クライアント計算装置の別のハードウェアベースのビデオ処理能力を決定すること、及び遠隔計算装置から伝送されるメディアを受信すること、及びクライアント計算装置によるレンダリングのために、他のハードウェアベースのメディア処理能力を使用して遠隔計算装置からの受信メディアを処理することを更に含む。
【0085】
[0092] 一実施形態では、この方法が、クライアント計算装置の別のハードウェアベースのメディア処理能力を決定すること、クライアント計算装置のメディアソースから捕捉されるメディアを処理するために他のハードウェアベースのメディア処理能力を使用すること、及び遠隔計算装置に処理済みメディアを伝送することを更に含む。
【0086】
[0093] 一実施形態では、ハードウェアベースのメディア処理能力がビデオコーデック又は音声コーデックの1つを含む。
【0087】
[0094] 一実施形態では、ハードウェアベースのメディア処理能力がハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理の1つを含む。
【0088】
V.結論
[0095] 本発明の様々な実施形態を上記で説明してきたが、それらは限定ではなく例として示されているに過ぎないことを理解すべきである。添付の特許請求の範囲で定める本発明の趣旨及び範囲から逸脱することなしに、形式及び詳細の点で様々な変更を加えることができることを、当業者なら理解されよう。従って、本発明の広さ及び範囲は上記の例示的実施形態の何れによっても限定されるべきではなく、添付の特許請求の範囲及びその等価物に従ってのみ定められるものとする。
図1
図2
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2024-10-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサと、
コンピュータプログラムロジックを記憶する少なくとも1つのメモリ装置と
を含む第1の計算装置であって、前記コンピュータプログラムロジックは、前記少なくとも1つのプロセッサによって実行されると、前記第1の計算装置に、
ネットワーク計算環境内で実行されている通信アプリケーションから通信を受信することと、
前記通信に基づいて、前記第1の計算装置のハードウェアベースのメディア処理能力を識別することであって、前記ハードウェアベースのメディア処理能力は、ビデオコーデック、音声コーデック、ハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理のうちの少なくとも1つを含み、前記第1の計算装置の前記ハードウェアベースのメディア処理能力は、前記通信アプリケーションの対応するソフトウェアベースのメディア処理能力を有する、ことと、
前記通信アプリケーションの前記対応するソフトウェアベースのメディア処理能力の代わりに、前記第1の計算装置の前記ハードウェアベースのメディア処理能力を使用して、前記第1の計算装置と第2の計算装置との間のピアツーピアの音声及び/又はビデオ通信の一部としてメディアを処理することと
を実行させる、第1の計算装置。
【請求項2】
ユーザインタフェースとの対話により、前記通信アプリケーションが前記第2の計算装置との通信を開始するように促される、請求項1に記載の第1の計算装置。
【請求項3】
前記コンピュータプログラムロジックは、前記第1の計算装置に、前記ハードウェアベースのメディア処理能力に基づいて前記第2の計算装置とメディア通信パラメータをネゴシエートすることを更に実行させる、請求項1に記載の第1の計算装置。
【請求項4】
前記ハードウェアベースのメディア処理能力は、前記第1の計算装置のオペレーティングシステムのアプリケーションプログラミングインタフェース(API)によって識別される、請求項1に記載の第1の計算装置。
【請求項5】
前記メディア通信パラメータは、前記ピアツーピアの音声及び/又はビデオ通信のメディアフォーマットを決定するために使用可能な復号器の種類を含む、請求項3に記載の第1の計算装置。
【請求項6】
前記通信は、前記通信アプリケーションからインターセプトされるウェブリアルタイム通信(WebRTC)API呼び出しを含む、請求項1に記載の第1の計算装置。
【請求項7】
前記コンピュータプログラムロジックは、前記第1の計算装置に、前記通信アプリケーションからの前記通信をインターセプトするプラグインをロードすることを更に実行させる、請求項1に記載の第1の計算装置。
【請求項8】
第1の計算装置によって実行される方法であって、
ネットワーク計算環境内で実行されている通信アプリケーションから通信を受信することと、
少なくとも1つのプロセッサが前記通信に基づいて、前記第1の計算装置のハードウェアベースのメディア処理能力を識別することであって、前記ハードウェアベースのメディア処理能力は、ビデオコーデック、音声コーデック、ハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理のうちの少なくとも1つを含み、前記第1の計算装置の前記ハードウェアベースのメディア処理能力は、前記通信アプリケーションの対応するソフトウェアベースのメディア処理能力を有する、ことと、
前記通信アプリケーションの前記対応するソフトウェアベースのメディア処理能力の代わりに、前記第1の計算装置の前記ハードウェアベースのメディア処理能力を使用して、前記第1の計算装置と第2の計算装置との間のピアツーピアの音声及び/又はビデオ通信の一部としてメディアを処理することと
を含む、方法。
【請求項9】
ユーザインタフェースとの対話により、前記通信アプリケーションが前記第2の計算装置との通信を開始するように促される、請求項8に記載の方法。
【請求項10】
前記ハードウェアベースのメディア処理能力に基づいて前記第2の計算装置とメディア通信パラメータをネゴシエートすること
を更に含む、請求項8に記載の方法。
【請求項11】
前記メディア通信パラメータは、前記ピアツーピアの音声及び/又はビデオ通信のメディアフォーマットを決定するために使用可能な復号器の種類を含む、請求項10に記載の方法。
【請求項12】
前記ハードウェアベースのメディア処理能力は、前記第1の計算装置のオペレーティングシステムのアプリケーションプログラミングインタフェース(API)によって識別される、請求項8に記載の方法。
【請求項13】
前記通信は、前記通信アプリケーションからインターセプトされるウェブリアルタイム通信(WebRTC)API呼び出しを含む、請求項8に記載の方法。
【請求項14】
前記通信アプリケーションからの前記通信をインターセプトするプラグインをロードすること
を更に含む、請求項8に記載の方法。
【請求項15】
第1の計算装置の少なくとも1つのプロセッサによって実行されると、前記第1の計算装置に、
ネットワーク計算環境内で実行されている通信アプリケーションから通信を受信することと、
前記通信に基づいて、前記第1の計算装置のハードウェアベースのメディア処理能力を識別することであって、前記ハードウェアベースのメディア処理能力は、ビデオコーデック、音声コーデック、ハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理のうちの少なくとも1つを含み、前記第1の計算装置の前記ハードウェアベースのメディア処理能力は、前記通信アプリケーションの対応するソフトウェアベースのメディア処理能力を有する、ことと、
前記通信アプリケーションの前記対応するソフトウェアベースのメディア処理能力の代わりに、前記第1の計算装置の前記ハードウェアベースのメディア処理能力を使用して、前記第1の計算装置と第2の計算装置との間のピアツーピアの音声及び/又はビデオ通信の一部としてメディアを処理することと
を実行させるプログラム命令が記録されたコンピュータ可読記憶媒体。
【請求項16】
ユーザインタフェースとの対話により、前記通信アプリケーションが前記第2の計算装置との通信を開始するように促される、請求項15に記載のコンピュータ可読記憶媒体。
【請求項17】
前記プログラム命令は、前記第1の計算装置に、前記ハードウェアベースのメディア処理能力に基づいて前記第2の計算装置とメディア通信パラメータをネゴシエートすることを更に実行させる、請求項15に記載のコンピュータ可読記憶媒体。
【請求項18】
前記メディア通信パラメータは、前記ピアツーピアの音声及び/又はビデオ通信のメディアフォーマットを決定するために使用可能な復号器の種類を含む、請求項17に記載のコンピュータ可読記憶媒体。
【請求項19】
前記ハードウェアベースのメディア処理能力は、前記第1の計算装置のオペレーティングシステムのアプリケーションプログラミングインタフェース(API)によって識別される、請求項15に記載のコンピュータ可読記憶媒体。
【請求項20】
前記通信は、前記通信アプリケーションからインターセプトされるウェブリアルタイム通信(WebRTC)API呼び出しを含む、請求項15に記載のコンピュータ可読記憶媒体。
【請求項21】
1つ又は複数のプロセッサと、
前記1つ又は複数のプロセッサによって実行するためのコンピュータプログラムロジックを記憶する1つ又は複数のメモリ装置と
を含むクライアント計算装置であって、前記コンピュータプログラムロジックは、
クラウド計算環境内で実行される通信アプリケーションのユーザインタフェースを前記クライアント計算装置のユーザインタフェース内で提示するように構成されている遠隔デスクトップクライアントであって、前記通信アプリケーションによる音声及び/又はビデオ通信とは別に、前記クライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、前記通信アプリケーションからの通信を受信するように更に構成されている、遠隔デスクトップクライアントと、
前記クライアント計算装置のハードウェアベースのメディア処理能力を決定し、前記通信アプリケーションのソフトウェアメディア処理能力を使用せずに、前記ハードウェアベースのメディア処理能力を使用して前記通信の一部としてメディアを処理し、前記遠隔計算装置に伝送するためにリアルタイム通信コンポーネントに前記処理済みメディアを提供することであって、前記ハードウェアベースのメディア処理能力は、ビデオコーデック、音声コーデック、ハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理のうちの1つを含む、ことと、
通信の一部として前記メディアを符号化するために、前記ビデオコーデック、前記音声コーデック、前記ハードウェアアクセラレイテッドビデオ処理又は前記ハードウェアアクセラレイテッド音声処理のうちの前記1つを使用することに関係する情報をソースリーダに知らせることと
を実行するように構成されているメディア捕捉コンポーネント
を含む、クライアント計算装置。
【請求項22】
前記遠隔デスクトップクライアントからの前記通信を受信し、リアルタイム通信を可能にするためのフレームワークに適合する形式に前記通信を変換するように構成されているリアルタイム通信マネージャを更に含み、
前記リアルタイム通信コンポーネントは、前記変換済み通信に基づいて前記メディアの音声及び/又はビデオ通信のために前記クライアント計算装置及び前記遠隔計算装置を接続するように構成されている、
請求項21に記載のクライアント計算装置。
【請求項23】
前記リアルタイム通信マネージャが、
前記クライアント計算装置の他のハードウェアベースのビデオ処理能力を決定し、
前記他のハードウェアベースのメディア処理能力に基づいて前記遠隔計算装置とメディア通信パラメータをネゴシエートする
ように更に構成されている、請求項22に記載のクライアント計算装置。
【請求項24】
前記リアルタイム通信マネージャがリアルタイム通信を可能にするための前記フレームワークのAPIによって前記他のハードウェアベースのメディア処理能力を決定する、請求項23に記載のクライアント計算装置。
【請求項25】
前記リアルタイム通信コンポーネントによって前記遠隔計算装置から伝送されるリモートメディアを受信し、前記クライアント計算装置の前記ユーザインタフェース内でレンダリングするために前記クライアント計算装置のメディアエンジンに前記受信したリモートメディアを与えるように構成されているメディアレンダラコンポーネントを更に含み、前記メディアレンダラコンポーネントが、
前記クライアント計算装置の他のハードウェアベースのメディア処理能力を決定し、
前記遠隔計算装置から受信した前記リモートメディアを処理するために前記他のメディア処理能力を使用する
ように更に構成されている、請求項22に記載のクライアント計算装置。
【請求項26】
前記通信は、前記通信アプリケーションからインターセプトされるウェブリアルタイム通信(WebRTC)API呼び出しを含む、請求項21に記載のクライアント計算装置。
【請求項27】
オペレーティングシステムのプラグインを更に含み、前記プラグインが、前記メディア捕捉コンポーネントを提供する、請求項21に記載のクライアント計算装置。
【請求項28】
クラウド計算環境内で実行される通信アプリケーションのユーザインタフェースを提示するクライアント計算装置の1つ又は複数のプロセッサによって実行される方法であって、
前記通信アプリケーションによる音声及び/又はビデオ通信とは別に、前記クライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、前記通信アプリケーションから通信を受信することと、
前記通信を受信することに基づいて、前記通信アプリケーションのソフトウェアメディア処理能力を使用せずに、前記通信の一部としてメディアを処理する際に使用する、前記クライアント計算装置のハードウェアベースのメディア処理能力を決定することであって、前記ハードウェアベースのメディア処理能力は、ビデオコーデック、音声コーデック、ハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理のうちの1つを含む、ことと、
通信の一部として前記メディアを復号又は処理するために、前記ビデオコーデック、前記音声コーデック、前記ハードウェアアクセラレイテッドビデオ処理又は前記ハードウェアアクセラレイテッド音声処理のうちの前記1つを使用することに関係する情報をソースリーダに知らせることと、
前記遠隔計算装置から前記ピアツーピアの音声及び/又はビデオ通信として前記メディアを受信することと、
前記ハードウェアベースのメディア処理能力を使用して前記クライアント計算装置によるレンダリングのために前記遠隔計算装置からの前記メディアを処理することと
を含む、方法。
【請求項29】
リアルタイム通信を可能にするためのフレームワークを使用した前記通信に基づいて、音声及び/又はビデオ通信のために前記クライアント計算装置及び前記遠隔計算装置を接続すること
を更に含む、請求項28に記載の方法。
【請求項30】
前記クライアント計算装置の他のハードウェアベースのビデオ処理能力を決定することと、
前記他のハードウェアベースのメディア処理能力に基づいて前記遠隔計算装置とメディア通信パラメータをネゴシエートすることと
を更に含む、請求項29に記載の方法。
【請求項31】
前記他のハードウェアベースのメディア処理能力を決定することが、リアルタイム通信を可能にするための前記フレームワークのAPIを使用して前記他のハードウェアベースのメディア処理能力を決定することを含む、
請求項30に記載の方法。
【請求項32】
前記クライアント計算装置の他のハードウェアベースのメディア処理能力を決定することと、
前記クライアント計算装置のメディアソースから捕捉されるソースメディアを処理するために前記他のハードウェアベースのメディア処理能力を使用することと、
前記遠隔計算装置に前記処理済みソースメディアを伝送することと
を更に含む、請求項29に記載の方法。
【請求項33】
前記クライアント計算装置の前記ハードウェアベースのメディア処理能力を決定するために、オペレーティングシステムのプラグインを実行すること
を更に含む、請求項29に記載の方法。
【請求項34】
クラウド計算環境内で実行される通信アプリケーションのユーザインタフェースを提示するクライアント計算装置の少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
前記通信アプリケーションによる音声及び/又はビデオ通信とは別に、前記クライアント計算装置と遠隔計算装置との間のピアツーピアの音声及び/又はビデオ通信を可能にするために、前記通信アプリケーションから通信を受信することと、
前記通信を受信することに基づいて、前記通信アプリケーションのソフトウェアメディア処理能力を使用せずに、前記通信の一部としてメディアを処理する際に使用する、前記クライアント計算装置のハードウェアベースのメディア処理能力を決定することであって、前記ハードウェアベースのメディア処理能力は、ビデオコーデック、音声コーデック、ハードウェアアクセラレイテッドビデオ処理又はハードウェアアクセラレイテッド音声処理のうちの1つを含む、ことと、
通信の一部として前記メディアを復号又は処理するために、前記ビデオコーデック、前記音声コーデック、前記ハードウェアアクセラレイテッドビデオ処理又は前記ハードウェアアクセラレイテッド音声処理のうちの前記1つを使用することに関係する情報をソースリーダに知らせることと、
前記ハードウェアベースのメディア処理能力に基づいて前記遠隔計算装置とメディア通信パラメータをネゴシエートすることと
を含む方法を実行させるプログラム命令が記録された非一時的なコンピュータ可読記憶媒体。
【請求項35】
前記方法は、リアルタイム通信を可能にするためのフレームワークを使用した前記通信に基づいて、音声及び/又はビデオ通信のために前記クライアント計算装置及び前記遠隔計算装置を接続することを更に含む、請求項34に記載の非一時的なコンピュータ可読記憶媒体。
【請求項36】
前記方法は、
前記クライアント計算装置の他のハードウェアベースのビデオ処理能力を決定することと、
前記遠隔計算装置から伝送されたリモートメディアを受信することと、
前記他のハードウェアベースのメディア処理能力を使用して、前記クライアント計算装置によるレンダリングのために前記遠隔計算装置から受信した前記リモートメディアを処理することと
を更に含む、請求項35に記載の非一時的なコンピュータ可読記憶媒体。
【外国語明細書】