特許第5961185号(P5961185)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特許5961185リモート・セッションにおけるリアルタイム・メディア最適化
<>
  • 特許5961185-リモート・セッションにおけるリアルタイム・メディア最適化 図000002
  • 特許5961185-リモート・セッションにおけるリアルタイム・メディア最適化 図000003
  • 特許5961185-リモート・セッションにおけるリアルタイム・メディア最適化 図000004
  • 特許5961185-リモート・セッションにおけるリアルタイム・メディア最適化 図000005
  • 特許5961185-リモート・セッションにおけるリアルタイム・メディア最適化 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5961185
(24)【登録日】2016年7月1日
(45)【発行日】2016年8月2日
(54)【発明の名称】リモート・セッションにおけるリアルタイム・メディア最適化
(51)【国際特許分類】
   G06F 13/00 20060101AFI20160719BHJP
   H04L 12/70 20130101ALI20160719BHJP
   H04N 21/4788 20110101ALI20160719BHJP
【FI】
   G06F13/00 650A
   H04L12/70 E
   H04N21/4788
【請求項の数】13
【全頁数】15
(21)【出願番号】特願2013-544511(P2013-544511)
(86)(22)【出願日】2011年11月28日
(65)【公表番号】特表2014-507697(P2014-507697A)
(43)【公表日】2014年3月27日
(86)【国際出願番号】US2011062269
(87)【国際公開番号】WO2012082347
(87)【国際公開日】20120621
【審査請求日】2014年11月17日
(31)【優先権主張番号】12/967,100
(32)【優先日】2010年12月14日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100153028
【弁理士】
【氏名又は名称】上田 忠
(74)【代理人】
【識別番号】100120112
【弁理士】
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100147991
【弁理士】
【氏名又は名称】鳥居 健一
(74)【代理人】
【識別番号】100119781
【弁理士】
【氏名又は名称】中村 彰吾
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(74)【代理人】
【識別番号】100138759
【弁理士】
【氏名又は名称】大房 直樹
(72)【発明者】
【氏名】シェイ,グオ−ウェイ
(72)【発明者】
【氏名】スリニビサン,スリバッサ・ケイ
(72)【発明者】
【氏名】ベラユサム,センティル・ケイ
(72)【発明者】
【氏名】マハジャン,ラジニーシュ
(72)【発明者】
【氏名】アイヤー,サブハシュリ
(72)【発明者】
【氏名】カーン,フマユン
【審査官】 小林 義晴
(56)【参考文献】
【文献】 特開2007−048005(JP,A)
【文献】 米国特許出願公開第2010/0146085(US,A1)
【文献】 特表2012−511213(JP,A)
【文献】 中国特許出願公開第102362269(CN,A)
【文献】 韓国公開特許第10−2013−0010910(KR,A)
【文献】 国際公開第01/057678(WO,A1)
【文献】 中国特許出願公開第101841563(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
H04L 12/70
H04N 21/4788
(57)【特許請求の範囲】
【請求項1】
リアルタイム・メディア最適化を提供する方法であって、
リモート計算デバイスとのリモート・セッションを確立するステップと、
前記リモート・セッション中に、サーバを関与させることなくローカル計算デバイスと前記リモート計算デバイスとの間にメディア・パスを確立するステップと、
前記リモート・セッション中に、サーバ・パスを介して前記サーバを通じて前記リモート計算デバイスと非リアルタイム・メディア・データを交換するステップと、
前記リモート・セッション中に、前記サーバを関与させずに前記メディア・パスを介して前記リモート計算デバイスとリアルタイム・メディア・データを交換するステップと、
記メディア・パスからの前記リアルタイム・メディア・データと前記サーバ・パスからの前記非リアルタイム・メディア・データとを同期させるステップであって、
前記サーバから、映像領域の位置および形状を受信するステップと、
前記メディア・パスから交換された前記リアルタイム・メディア・データをプロキシ・ウィンドウ上にレンダリングするステップであって、前記プロキシ・ウィンドウは、前記サーバから受信された前記映像領域の前記位置および前記形状を追跡するように構成される、ステップと、
前記プロキシ・ウィンドウを、前記ローカル計算デバイス上にメディア・データを表示するように構成されたユーザ・インターフェースと同期させるステップと、
を含む、ステップと、
を備える方法。
【請求項2】
請求項1に記載の方法であって、リモート・セッションを確立する前記ステップは、前記ローカル計算デバイスで動作するクライアントと、前記サーバで実行されるアプリケーションとの間にホップを確立するステップを備え、確立された前記ホップは前記サーバ・パス内にある、方法。
【請求項3】
請求項1に記載の方法であって、サーバ・パスを介して前記リモート計算デバイスと非リアルタイム・メディア・データを交換する前記ステップは、前記サーバ・パス中にある前記サーバへ非リアルタイム情報を送るステップを備える、方法。
【請求項4】
請求項1に記載の方法であって、サーバ・パスを介して前記リモート計算デバイスと非リアルタイム・メディア・データを交換する前記ステップは、前記サーバ・パス中にある前記サーバへ非リアルタイム情報を送るステップを備え、前記非リアルタイム情報は、前記ローカル計算デバイスの位置に対応する情報を含む、方法。
【請求項5】
請求項1に記載の方法であって、メディア・パスを介して前記リモート計算デバイスとリアルタイム・メディア・データを交換する前記ステップは、前記リアルタイム・メディア・データを捕獲し、エンコードし、送信するステップを備える、方法。
【請求項6】
請求項1に記載の方法であって、メディア・パスを介して前記リモート計算デバイスとリアルタイム・メディア・データを交換する前記ステップは、前記メディア・パスを介して前記リモート計算デバイスから前記リアルタイム・メディア・データを受信し、前記リアルタイム・メディア・データをデコードするステップを備える、方法。
【請求項7】
請求項1に記載の方法であって、メディア・パスを介して前記リモート計算デバイスとリアルタイム・メディア・データを交換する前記ステップは、1つのアドレス空間を別のアドレス空間へ再びマッピングするために、ネットワーク・アドレス情報を変更するステップを備える、方法。
【請求項8】
一組の命令を格納するコンピュータ読取可能メモリ記憶媒体であって、前記一組の命令は、実行されると、リアルタイム・メディア最適化を提供する方法を実施し、前記一組の命令によって実行される前記方法は
ローカル計算デバイスとリモート計算デバイスとの間でのリモート・セッションを確立するステップと、
前記リモート・セッション中に、サーバを関与させることなく前記ローカル計算デバイスと前記リモート計算デバイスとの間にメディア・パスを確立するステップと、
前記リモート・セッション中に、サーバ・パスを介して、前記ローカル計算デバイスと前記リモート計算デバイスとの間で非リアルタイム・メディア・データを交換するステップであって、前記非リアルタイム・メディア・データを交換することは、前記サーバ・パス内の前記サーバを通じて前記非リアルタイム・メディア・データを送るステップを含むものである、非リアルタイム・メディア・データを交換するステップと、
前記リモート・セッション中に、前記メディア・パスを介して、前記ローカル計算デバイスと前記リモート計算デバイスとの間で音声および映像データを含むリアルタイム・メディア・データを交換するステップであって、前記リアルタイム・メディア・データを交換することは、前記サーバを関与させずに前記メディア・パスを通じて前記ローカル計算デバイスと前記リモート計算デバイスとの間で直接的に前記リアルタイム・メディア・データを交換するステップを含むものである、リアルタイム・メディア・データを交換するステップと、
前記メディア・パスからの前記リアルタイム・メディア・データと前記サーバ・パスからの前記非リアルタイム・メディア・データとを同期させるステップであって、
前記サーバから、映像領域の位置および形状を受信するステップと、
前記メディア・パスから交換された前記リアルタイム・メディア・データをプロキシ・ウィンドウ上にレンダリングするステップであって、前記プロキシ・ウィンドウは、前記サーバから受信された前記映像領域の前記位置および前記形状を追跡するように構成される、ステップと、
前記プロキシ・ウィンドウを、前記ローカル計算デバイス上にメディア・データを表示するように構成されたユーザ・インターフェースと同期させるステップと、
を含む、ステップと、
を備える、コンピュータ読取可能メモリ記憶媒体
【請求項9】
請求項8に記載のコンピュータ読取可能メモリ記憶媒体であって、リモート・セッションを確立する前記ステップは、前記ローカル計算デバイスで動作するクライアントと、前記サーバで実行されるアプリケーションとの間にホップを確立するステップを備え、確立された前記ホップは前記サーバ・パス内にある、コンピュータ読取可能メモリ記憶媒体
【請求項10】
請求項8に記載のコンピュータ読取可能メモリ記憶媒体であって、前記メディア・パスは、前記ローカル計算デバイスで動作するクライアントで実行されるリモート・メディア・マネージャと、前記リモート計算デバイスとの間であるコンピュータ読取可能メモリ記憶媒体
【請求項11】
請求項8に記載のコンピュータ読取可能メモリ記憶媒体であって、メディア・パスを介して前記リモート計算デバイスとリアルタイム・メディア・データを交換する前記ステップは、前記リアルタイム・メディア・データを捕獲し、エンコードし、送信するステップを備える、コンピュータ読取可能メモリ記憶媒体
【請求項12】
請求項8に記載のコンピュータ読取可能メモリ記憶媒体であって、前記メディア・パスを介しての前記リモート計算デバイスとの、リアルタイム・メディア・データを交換する前記ステップは、前記メディア・パスを介して前記リモート計算デバイスから前記リアルタイム・メディア・データを受信し、前記リアルタイム・メディア・データをデコードし、デコードされた前記リアルタイム・メディア・データをレンダリングするステップを備える、コンピュータ読取可能メモリ記憶媒体
【請求項13】
リアルタイム・メディア最適化を提供するシステムであって、
メモリ・ストレージと、
前記メモリ・ストレージと結合される処理ユニットと
を備え、
前記処理ユニットは、リモート計算デバイスとのリモート・セッションを確立するように構成され、前記リモート・セッションを確立するように動作する前記処理ユニットは、
サーバが関与するサーバ・パスを確立し、
サーバが関与せず、前記リモート計算デバイスと直接に確立されるメディア・パスを確立する
ように動作するものであり、
前記処理ユニットは更に、
前記リモート・セッション中に、前記サーバ・パスを介して前記リモート計算デバイスと非リアルタイム・メディア・データを交換し、
前記リモート・セッション中に、前記メディア・パスを介して前記リモート計算デバイスとリアルタイム・メディア・データを交換し、
前記メディア・パスからの前記リアルタイム・メディア・データと前記サーバ・パスからの前記非リアルタイム・メディア・データとを同期させ、前記同期させることは、
前記サーバから、映像領域の位置および形状を受信すること、
前記メディア・パスから交換された前記リアルタイム・メディア・データをプロキシ・ウィンドウ上にレンダリングし、前記プロキシ・ウィンドウは、前記サーバから受信された前記映像領域の前記位置および前記形状を追跡するように構成されること、および
前記プロキシ・ウィンドウを、ローカル計算デバイス上にメディア・データを表示するように構成されたユーザ・インターフェースと同期させること
を含む、
ように構成される、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
リモート・セッションにおけるリアルタイム・メディア最適化。
【背景技術】
【0002】
[001] ビデオ会議では、音声および映像の遠隔通信を用いて、異なる場所にいる人々を集めてミーティングを行う。これは、個人事務所の2人の人間の間(ポイント・ツー・ポイント)での会話や、別々の場所にある大きい部屋に1人より多くの人間がいる場合のような幾つかのサイト(マルチポイント)を含んだ会話と同様に、簡単なものである。ビデオ会議は、ミーティング活動の音声および映像の送信に加えて、文書や、コンピュータで表示される情報や、ホワイトボードを共有するために使用することができる。
【発明の概要】
【0003】
[002] この概要は、概念を選択的に簡素な形で紹介するために提供されるものであり、それらの概念については「詳細な説明」の部分で更に説明する。この概要は、特許請求の範囲に記載する主題事項の鍵となる特徴や本質的な特徴を特定することを意図していない。また、この概要は、主題事項の範囲を限定するために使用することを意図したものでもない。
【0004】
[003] リアルタイム・メディア最適化を提供する。最初に、リモート計算デバイスとのリモート・セッションを確立する。次に、リモート・セッション中に、非リアルタイム・メディア・データを、サーバ・パス(サーバ経路)を介してリモート計算デバイスと交換する。更に、リモート・セッション中に、リアルタイム・メディア・データを、メディア・パス(メディア経路)を介してリモート計算デバイスと交換する。
【0005】
[004] 上記の概要的な説明および下記の詳細な説明の双方とも、単なる例を示すものであり、説明を目的とするものである。従って、上記の概要的な説明および下記の詳細な説明は、制限を加えるものとして考慮すべきではない。更に、ここで述べられる構成や変形形態に加えて、更なる構成や変形形態を提供することもできる。例えば、実施形態を、詳細な説明に記載した構成を組み合わせたものや、それらの構成を部分的に組み合わせたものとすることもできる。
【0006】
[005] ここでの開示に含まれ且つ開示の一部を構成する添付の図面は、本発明の様々な実施形態を示す。
【図面の簡単な説明】
【0007】
図1図1は、仮想化された環境のブロック図である。
図2図2は、リアルタイム・メディア・システムのブロック図である。
図3図3は、リアルタイム・メディア最適化を提供する方法のフローチャートである。
図4図4は、リアルタイム・メディア・システムのブロック図である。
図5図5は、計算デバイスを含むシステムのブロック図である。
【発明を実施するための形態】
【0008】
[011] 以下の詳細な説明では、添付の図面を参照する。図面および以下の説明では、可能な範囲で、同じまたは類似のエレメントに関して同じ参照番号を使用している。以下に本発明の実施形態について説明するが、変形例、適応例、および他の実施例も可能である。例えば、図に示したエレメントに対しての代替や付加や変更を行うことができ、また、ここで説明する方法についても、段(工程)を代替したり、順を変更したり、更に段を加えたりすることにより、変更することもできる。従って、下記の説明は本発明を限定するものではない。本発明の適切な範囲は特許請求の範囲により定められる。
【0009】
[012] デスクトップの仮想化は、センシティブなデータおよびアプリケーションを有する企業において使用されている。そのような企業は、センシティブなデータおよびアプリケーションをクライアント側マシンに駐在させることができない(例えば、セキュリティに関する問題があるため)。従って、デスクトップの仮想化では、シン・クライアント(thin client)がクライアント側マシン上で動作し、センシティブなデータおよびアプリケーションは、企業により制御されるサーバ上で実行される。この状況では、アプリケーションがサーバで自動的に実行され、ユーザが見ることができるのは、クライアント側マシン上のユーザ・インターフェース(UI)のみである。従って、企業のシステム管理者が、サーバ側イメージを更新する。そのため、ユーザがサーバへログインしたときには、ユーザは、システム管理者が押しつけたい最新のソフトウェアを得ることになる。
【0010】
[013] 図1は、仮想化環境100のブロック図である。図1に示すように、デスクトップが仮想化されると、実際の処理は、クライアント側マシン110ではなくサーバ105で行われる。このようなアプリケーション(即ち、仮想化環境100で実行されるアプリケーション)は、「仮想化アプリケーション」と呼ばれることもある。例えば、第1アプリケーション115および第2アプリケーション120は、実際にはサーバ105で実行されている。クライアント側マシン110は、第1アプリケーション115および第2アプリケーション120にそれぞれ対応する第1ユーザ・インターフェース125および第2ユーザ・インターフェース130を、レンダリングして表示する。仮想化アプリケーションは、非リアルタイムのアプリケーション(例えば、ワード・プロセッシングやスプレッドシートなど)に関して許容することができ、その場合、生のデータ(例えば、キー入力など)は、クライアント側マシンからサーバへ送られ、サーバで実行される仮想化アプリケーションが、ユーザ入力を受信してデータを処理する。
【0011】
[014] リアルタイム音声/映像会議アプリケーションは、上記の仮想化環境において仮想化アプリケーションとして実行することができる。リアルタイム音声/映像会議アプリケーションは、クライアント側マシンから捕獲した生の音声/映像データを取り入れ、そのデータをエンコードし、そのエンコードされたデータを、例えば有線で、送信する。更に、リアルタイム音声/映像会議アプリケーションは、エンコードされたデータのストリームをネットワークから受信し、そのエンコードされたデータのストリームをデコードし、そのデコードされたデータのストリームをクライアント側マシン上でレンダリングする。しかし、クライアント側マシンでローカルに実行される「非仮想化」リアルタイム・アプリケーションと比べた場合、仮想化したリアルタイム音声/映像会議アプリケーションでは、「仮想化」リアルタイム・アプリケーションが通る必要のある追加のホップ(hop、行程)(例えば、サーバを通る行程)がある。
【0012】
[015] 非仮想化リアルタイム・アプリケーションにおいてリアルタイムの音声/映像の送信および受信を行う場合、全ての処理は、サーバではなくクライアント側マシンで行われる。例えば、クライアント側アプリケーションは、デバイスから音声/映像を捕獲し、エンコードし、それをクライアント側マシンから有線で送信する。非仮想化アプリケーションとは対照的に、仮想化リアルタイム・アプリケーションでは、捕獲した生の音声/映像データを、例えば、捕獲用デバイスを遠隔操作することによりサーバへ送信するか、または捕獲用デバイスからの生のデータ・ストリームを、リモート・デスクトップ・チャンネルを介してサーバへ送信する。更に、仮想化環境におけるサーバは、エンコードされたストリームを送信する。従って、仮想化環境では、音声/映像のパスに追加的なホップ(例えば、クライアント側マシンからサーバへの行程)がある。それらの追加的なホップは、リアルタイム音声/映像データの流れにおける遅延/レイテンシを増加させる。
【0013】
[016] 図2は、本発明の実施形態に従ったリアルタイム・メディア・システム200を示す。リアルタイム・メディア・システム200は、第1クライアント側マシン205(例えば、ローカル計算デバイス)、第2クライアント側マシン210(例えば、リモート計算デバイス)、サーバ215、およびネットワーク220を備える。本発明の実施形態に従うと、非仮想化リアルタイム音声/映像会議は、第1クライアント側マシン205と第2クライアント側マシン210との間で、ネットワーク220を介して行われる。
【0014】
[017] 本発明の実施形態がサーバ・パス(即ち、第1ホップ225および第2ホップ230)を使用する場合、第1クライアント側マシン205と第2クライアント側マシン210との間の音声/映像データのパスにおいて、追加的なホップ(例えば、第1クライアント側マシン205からサーバ205への行程と、サーバ215から第2クライアント側マシン210への行程)があることになる。そのような追加的なホップは、第1クライアント側マシン205と第2クライアント側マシン210との間でのリアルタイムの音声/映像データの流れにおいて、例えば、遅延/レイテンシを増加させる。
【0015】
[018] 本発明の実施形態に従うと、上記の第1クライアント側マシン205と第2クライアント側マシン210との間でのリアルタイムの音声/映像データの流れにおける遅延/レイテンシは、そのリアルタイムの音声/映像データの流れにおいてサーバ215を含ませないことにより、避けることができる。例えば、音声/映像データを、サーバ215を介さないメディア・パス235を介して、第1クライアント側マシン205と第2クライアント側マシン210との間で送信することができる。しかし、メディア・パス235が確立されない場合や、メディア・パス235を確立した後に故障した場合、音声/映像データは、サーバ・パスを介して第1クライアント側マシン205と第2クライアント側マシン210との間で送信される。
【0016】
[019] 第1クライアント側マシン205、第2クライアント側マシン210、およびサーバ215のうちの何れのものも、例えば、デスクトップ・コンピュータ、ノートブック・コンピュータ、モバイル・デバイス、スマートフォン、またはパーソナル・デジタル・アシスタントを含み得るが、これらに限定はされない。ネットワーク220は、第1クライアント側マシン205、第2クライアント側マシン210、およびサーバ215が通信を行えるようにするインターネットや他のタイプのネットワークを含む。第1クライアント側マシン205、第2クライアント側マシン210、およびサーバ215のうちの何れのものも、例えば、図5と関連して詳細に説明する計算デバイス500を用いて、インプリメント(実施)することができる。
【0017】
[020] 図3は、リアルタイム・メディア最適化を提供する本発明の実施形態に従った方法300に含まれる段(ステージ)を概略的に記載するフローチャートである。方法300は、上記のリアルタイム・メディア・システム200を用いて実施できる。方法300のステージの実施については、以下で詳細に説明する。
【0018】
[021] 方法300は、開始ブロック305から始まり、ステージ310へ進む。ステージ310では、第1クライアント側マシン205が、リモート計算デバイス(例えば、第2クライアント側マシン210)とのリモート・セッションを確立する。例えば、図4に示すように、アプリケーション405はサーバ215で実行される。アプリケーション405はビデオ会議アプリケーションを含む。リモート・セッションに従って、第1クライアント側マシン205で動作するシン・クライアントは、サーバ215で実行されるアプリケーション405に対応するユーザ・インターフェース415をレンダリングして表示する。アプリケーション405は、第1クライアント側マシン205と第2クライアント側マシン210との間でのリモート・セッションを完成させる。
【0019】
[022] 方法300は、第1クライアント側マシン205がリモート・セッションを確立するステージ310からステージ320へと進み、ステージ320において、リモート・セッション中に、第1クライアント側マシン205は、サーバ・パスを介してリモート計算デバイス(例えば、第2クライアント側マシン210)と、非リアルタイム・メディア・データを交換する。交換される非リアルタイム・メディア・データは、例えば、第1クライアント側マシン205と第2クライアント側マシン210との間でのビデオ会議セッションに対応する非音声データまたは非映像データである。例えば、非リアルタイム・メディア・データは、例えば、緊急の911コールに使用される第1クライアント側マシン205の位置に対応するデータを含むことができる。非リアルタイム・メディア・データは、クライアントおよびサーバの能力に関するデータを含むこともできるが、これに限定はされない。それらの能力は、2つのクライアント間での直接通信に影響を与えるように使用することができる。
【0020】
[023] ステージ320において第1クライアント側マシン205が非リアルタイム・メディア・データを交換すると、方法300はステージ330へと続き、ステージ330において、第1クライアント側マシン205は、リモート・セッション中に、メディア・パス235を介してリモート計算デバイスと、リアルタイム・メディア・データを交換する。リアルタイム・メディア・データは、音声や映像のデータを含む。本発明の実施形態が、リアルタイム・メディア・データに関してサーバ・パス(即ち、第1ホップ225および第2ホップ)を使用する場合、第1クライアント側マシン205と第2クライアント側マシン210との間の音声/映像データのパスにおいて、追加的なホップ(例えば、第1クライアント側マシン205からサーバ215への行程と、サーバ215から第2クライアント側マシン210への行程)が存在することになる。それらの追加的なホップは、例えば、第1クライアント側マシン205と第2クライアント側マシン210との間でのリアルタイムの音声/映像データの流れの遅延/レイテンシを増加させ得る。
【0021】
[024] 本発明の実施形態は、第1クライアント側マシン205にリモート・メディア・マネージャ(RMM)(例えば、リモート・メディア・マネージャ・アプリケーション410)を備え、それにより、リアルタイム・メディア・データ(例えば、音声/映像や他の様式のものを付加することもできる)を捕獲し、エンコードし、サーバ215を関与させずにメディア・パス235で第1クライアント側マシン205から第2クライアント側マシン210へ直接的に送信することにより、上記の遅延/レイテンシを避けることができる。更に、RMMは、エンコードされたリアルタイム・メディア・データをネットワーク220から受信し(例えば、第2クライアント側マシン210からメディア・パス235を介して直接に送信される)、受信したエンコードされたリアルタイム・メディア・データをデコードし、第2クライアント側マシン210から受信してデコードされたリアルタイム・メディア・データを、ユーザ・インターフェース415へと直接的にレンダリングする。RMMは、サーバ215のアプリケーション405と関連して動作する。例えば、アプリケーション405は、第1クライアント側マシン205と接続された入力デバイス(例えば、カメラ420やマイクロフォン425)および出力デバイス(例えば、スピーカ430)を用いて、データの送信および受信を行う。RMMも、同じ入力デバイスおよび出力デバイスを使用することができる。従って、RMMは、入力デバイスおよび出力デバイスを共用するめに、サーバ215のアプリケーション405と関連して動作する。言い換えると、入力デバイスおよび出力デバイスは、メディア・パス235を介して送信/受信されるデータと、サーバ・パスを介して送信/受信されるデータとの双方のために共用される。
【0022】
[025] RMMがサーバ215のアプリケーション405と関連して動作する構成における別の例は、メディア・パス235からのデータとサーバ・パスからのデータとが同期をとられる例である。1つの例は、ジオメトリ・トラッキング(geometry tracking、幾何学的追跡)を含む。ジオメトリ・トラッキングは、映像をディスプレイ415上の表示すべき位置に配することを可能とする(映像データが、第2クライアント側マシン210から直接に送信されて、サーバ・パスを回避してメディア・パス235を介して、第1クライアント側マシン205へ直接に入来した場合)。例えばアプリケーション405は、映像領域の位置および形状の情報を、サーバ・パスを介して第1クライアント側マシン205へ送信する。次に、第1クライアント側マシン205は、アプリケーション405により送られた情報(例えば、位置および形状)を追跡する「プロキシ」ウィンドウに、映像(メディア・パス235から入来)をレンダリングする。アプリケーション405は、映像の位置および形状に関して発生し得る変化について連続的に監視し、その情報により第1クライアント側マシン205の更新を行い続ける。第1クライアント側マシン205は、アプリケーション405の情報により「プロキシ」ウィンドウの更新を行い続ける。このようにして、第1クライアント側マシン205での映像の表示の同期がとられる。
【0023】
[026] 更に、リモート・セッション中にメディア・パス235を介してリモート計算デバイスとリアルタイム・メディア・データを交換する第1クライアント側マシン205は、第1クライアント側マシン205からリモート計算デバイスへのネットワーク・アドレス変換(NAT)を行う。コンピュータ・ネットワークでは、ネットワーク・アドレス変換(NAT)は、トラフィック・ルーティング・デバイスを通過するときにデータグラム(IP)・パケット・ヘッダのネットワーク・アドレス情報を変更するプロセスを含むが、これは、1つのIPアドレス空間を別のIPアドレス空間へ再びマッピングすることを目的とする。ステージ330において第1クライアント側マシン205がリアルタイム・メディア・データを交換した後、方法300はステージ340で終了する。
【0024】
[027] 本発明に従った実施形態は、リアルタイム・メディア最適化を提供するシステムを含む。システムは、メモリ・ストレージと、そのメモリ・ストレージに結合される処理ユニットとを備える。処理ユニットは、リモート計算デバイスとのリモート・セッションを確立するように動作できる。更に、処理ユニットは、リモート・セッション中に、サーバ・パスを介してリモート計算デバイスと非リアルタイム・メディア・データを交換するように動作し、かつ、リモート・セッション中に、メディア・パスを介してリモート計算デバイスとリアルタイム・メディア・データを交換するように動作する。
【0025】
[028] 本発明に従った別の実施形態は、リアルタイム・メディア最適化を提供するシステムを含む。システムは、メモリ・ストレージと、そのメモリ・ストレージに結合される処理ユニットとを備える。処理ユニットは、ローカル計算デバイスとリモート計算デバイスとの間のリモート・セッションを確立するように動作できる。更に、処理ユニットは、リモート・セッション中に、サーバを含むサーバ・パスを介して、ローカル計算デバイスとリモート計算デバイスとの間で、非リアルタイム・メディア・データを交換するように動作する。更に、処理ユニットは、リモート・セッション中に、メディア・パスを介して、ローカル計算デバイスとリモート計算デバイスとの間で、音声データおよび映像データを含むリアルタイム・メディア・データを交換するように動作する。メディア・パス中にサーバは無い。
【0026】
[029] 本発明に従った更に別の実施形態は、リアルタイム・メディア最適化を提供するシステムを含む。システムは、メモリ・ストレージと、そのメモリ・ストレージに結合される処理ユニットとを備える。処理ユニットは、リモート計算デバイスとのリモート・セッションを確立するように動作できる。リモート・セッションを確立するように動作する処理ユニットは、サーバ・パスを確立するように動作する。サーバ・パスにはサーバが含まれている。また、処理ユニットは、メディア・パスを確立するように動作する。サーバ・パスにはサーバが含まれておらず、メディア・パスはリモート計算デバイスと直接的に確立される。更に、処理ユニットは、リモート・セッション中に、サーバ・パスを介して、リモート計算デバイスと非リアルタイム・メディア・データを交換するように動作する。更に、処理ユニットは、リモート・セッション中に、メディア・パスを介して、リモート計算デバイスとリアルタイム・メディア・データを交換するように動作する。
【0027】
[030] 図5は、計算デバイス500を含むシステムのブロック図である。本発明の実施形態に従うと、上記のメモリ・ストレージおよび処理ユニットは、図5の計算デバイス500などのような計算デバイスにおいて実施される。メモリ・ストレージおよび処理ユニットは、ハードウェア、ソフトウェア、およびファームウェアの任意の適切な組み合わせにより実現できる。更に、計算デバイス500は、仮想マシンでも物理マシンでも動作できる。例えば、メモリ・ストレージおよび処理ユニットは、計算デバイス500を用いて、または他の任意の計算デバイス518を計算デバイス500と組み合わせて用いて、実現することができる。上記のシステム、デバイス、および処理装置は例であり、本発明の実施形態に従って、他のシステム、デバイス、および処理装置により上記のメモリ・ストレージおよび処理ユニットを構成することもできる。更に、計算デバイス500は、上記のように、第1クライアント側マシン205や第2クライアント側マシン210のための動作環境を構成することができる。第1クライアント側マシン205や第2クライアント側マシン210は、別の環境でも動作することができ、計算デバイス500に限定されない。
【0028】
[031] 図5に関して、本発明の実施形態に従ったシステムは、計算デバイス500などのような計算デバイスを含む。基本的な構成では、計算デバイス500は、少なくとも1つの処理ユニット502およびシステム・メモリ504を含む。計算デバイスのコンフィギュレーションおよびタイプに応じて、システム・メモリ504は、揮発性メモリ(例えば、ランダム・アクセス・メモリ(RAM))、不揮発性メモリ(例えば、リード・オンリ・メモリ(ROM))、フラッシュ・メモリ、またはこれらのメモリの組み合わせを含むが、これらに限定はされない。システム・メモリ504は、オペレーティング・システム505、1以上のプログラミング・モジュール506、およびプログラム・データ507を含むことができる。オペレーティング・システム505は、例えば、計算デバイス500の動作を制御するために適切なものである。1つの実施形態では、プログラミング・モジュール506は、例えば、リモート・メディア・マネージャ・アプリケーション410を含む。更に、本発明の実施形態は、グラフィックス・ライブラリ、他のオペレーティング・システム、または任意の他のアプリケーション・プログラムと関連して実施することができ、特定のアプリケーションやシステムに限定されない。この基本的な構成は、図5において破線508で囲んだコンポーネントとして示されている。
【0029】
[032] 計算デバイス500は更なる特徴や機能を有する。例えば、計算デバイス500は、例えば、磁気ディスク、光ディスク、テープなどのような追加のデータ・ストレージ・デバイス(取り外し可能なものおよび/または取り外し不可能なもの)を含むこともできる。そのような追加のストレージは、図5において、取り外し可能ストレージ509および取り外し不可能ストレージ510として示している。計算デバイス500はまた、通信接続516を含むことができ、この通信接続516により、デバイス500は、例えば、インターネットやイントラネットなどのような分散型計算環境におけるネットワークを介して、他の計算デバイス518と通信することが可能となる。通信接続516は、通信媒体の一例である。
【0030】
[033] ここで使用する「コンピュータ読取可能媒体」という用語は、コンピュータ・ストレージ媒体を含む。コンピュータ・ストレージ媒体は、揮発性の媒体、不揮発性の媒体、取り外し可能な媒体、および取り外し不可能な媒体を含むことができ、これらの媒体は、情報を記憶する任意の方法や技術、例えば、コンピュータ読取可能命令、データ構造、プログラミング・モジュール、他のデータなどにより実現できる。システム・メモリ504、取り外し可能ストレージ509、および取り外し不可能ストレージ510は、全てコンピュータ・ストレージ媒体の例(即ち、メモリ・ストレージ)である。コンピュータ・ストレージ媒体は、RAM、ROM、電子的消去可能リード・オンリ・メモリ(EEPROM)、フラッシュ・メモリや他のメモリ技術、CD−ROM、デジタル・バーサタイル・ディスク(DVD)や他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージや他の磁気ストレージ・デバイス、または情報を記憶するために使用でき且つ計算デバイス500によりアクセス可能な任意の他の媒体などを含むが、これらに限定はされない。このようなコンピュータ・ストレージ媒体は、デバイス500の一部であり得る。また、計算デバイス500は、キーボード、マウス、ペン、音声入力デバイス、接触(タッチ)入力デバイスなどのような入力デバイス512(1以上)を有する。また、ディスプレイ、スピーカ、プリンタなどのような出力デバイス514(1以上)も有する。なお、上記のデバイスは例であり、他のものを使用することもできる。
【0031】
[034] また、ここで使用する「コンピュータ読取可能媒体」という用語は、通信媒体も含む。通信媒体には、コンピュータ読取可能命令、データ構造、プログラム・モジュール、変調されたデータ信号内のデータなどが埋め込まれる。変調されたデータ信号とは、搬送波や他のトランスポート機構などである。通信媒体は、任意の情報受渡媒体を含む。「変調されたデータ信号」という用語は、「変調されたデータ信号」という用語は、情報を信号内にエンコードするような様式で設定または変更されて1以上の特性を有する信号、を意味する。例えば、通信媒体は、有線ネットワークや直接有線接続などのような有線媒体と、音響、無線周波数(RF)、赤外線、および他のワイヤレスの媒体などのようなワイヤレス媒体とを含むが、これらに限定はされない。
【0032】
[035] 上記のように、オペレーティング・システム505も含めて、多数のプログラム・モジュールおよびデータ・ファイルをシステム・メモリ504に記憶することができる。処理ユニット502で実行する際、プログラミング・モジュール506(例えば、リモート・メディア・マネージャ・アプリケーション410)は、例えば、上記の方法300の1以上のステージを含む処理を行う。なお、上記の処理は例であり、処理ユニット502は他の処理を行うこともできる。本発明の実施形態に従って使用できる他のプログラミング・モジュールには、電子メールやコンタクト・アプリケーション(contacts application)、ワード・プロセッシング・アプリケーション、スプレッドシート・アプリケーション、データベース・アプリケーション、スライド・プレゼンテーション・アプリケーション、描画やコンピュータ支援のアプリケーションなどが含まれる。
【0033】
[036] 本発明の実施形態に従うと、一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造などを含み、それらは、特定のタスクを行うか、または特定の抽象データ型を実現する。更に、本発明の実施形態は他のコンピュータ・システム構成を用いて実施することができ、他のコンピュータ・システム構成には、手持型のデバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースまたはプログラマブルの大衆消費電子製品、ミニコンピュータ、メインフレーム・コンピュータなどが含まれる。また、本発明の実施形態は分散型計算環境でも実施することができ、その場合、タスクは、通信ネットワークを通じてリンクされるリモート処理デバイスにより行われる。分散型計算環境では、プログラム・モジュールは、ローカルのメモリ・ストレージ・デバイスおよびリモートのメモリ・ストレージ・デバイスの双方に配されることができる。
【0034】
[037] 更に、本発明の実施形態は電子回路で実施することができ、電子回路は、個別の電子エレメント、論理ゲートを含むパッケージ化または集積化された電子チップ、マイクロプロセッサを用いる回路、電子回路やマイクロプロセッサを含むシングル・チップなどを含む。また、本発明の実施形態は、例えば、AND、OR、NOTなどのような論理演算を行うことができる他の技術を用いて実施することができ、他の技術には、機械的技術、光学的技術、流体工学的技術、量子学的技術が含まれるが、これらに限定はされない。更に、本発明の実施形態は、汎用コンピュータや、任意の他の回路やシステムで実施することができる。
【0035】
[038] 本発明の実施形態は、例えば、コンピュータ・プロセス(方法)、計算システム、または製造品として実現でき、製造品には、コンピュータ・プログラム製品やコンピュータ読取可能媒体などが含まれる。コンピュータ・プログラム製品は、コンピュータ記録媒体とすることができ、コンピュータ記録媒体は、コンピュータ・システムにより読取可能であり、コンピュータ・プロセスを実行するための命令のコンピュータ・プログラムがエンコードされたものである。また、コンピュータ・プログラム製品は、搬送体を伝搬する伝搬信号とすることがてき、この伝搬信号は、コンピュータ・システムにより読取可能であり、コンピュータ・プロセスを実行するための命令のコンピュータ・プログラムがエンコードされたものである。従って、本発明は、ハードウェアおよび/またはソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)で実現できる。言い換えると、本発明の実施形態は、コンピュータで使用可能または読取可能な記録媒体上のコンピュータ・プログラム製品の形態とすることができ、記録媒体には、コンピュータで使用可能または読取可能なプログラム・コードが埋め込まれており、プログラム・コードは、命令実行システムにより、または命令実行システムと関連して、使用される。コンピュータで使用可能または読取可能な媒体は任意の媒体とすることができるが、その任意の媒体は、命令実行システムにより、または命令実行システムと関連して使用されるプログラムの包含、記憶、通信、伝搬、またはトランスポートを行うことができるものとする。
【0036】
[039] コンピュータで使用可能または読取可能な記録媒体は、例えば、電子、磁気、光学、電磁、赤外線、または半導体の技術を用いるシステム、装置、デバイス、または伝搬媒体とすることができる。より特定的なコンピュータ読取可能媒体の例(網羅するものではない)として、コンピュータ読取可能媒体は、1以上の配線を含む電気的接続、ポータブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMやフラッシュ・メモリ)、光ファイバ、およびポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD−ROM)を含む。なお、コンピュータで使用可能または読取可能な記録媒体は、更には、プログラムをプリントできる紙や他の適切な媒体とすることができる。なぜなら、プログラムは、例えば、紙や他の媒体を光学スキャニングすることにより電子的に捕獲し、コンパイルし、解釈することができ、また、必要に応じて適切な様式で処理することができ、コンピュータのメモリへ記憶することができるからである。
【0037】
[040] 例えば、本発明の実施形態は、上記で、本発明の実施形態に従った方法、システム、およびコンピュータ・プログラム製品のブロック図および/または動作図を参照して説明した。ブロックに記載した機能/動作は、フローチャートに示した順と異なる順で行われる場合もある。行われる機能/動作に応じて、例えば、連続して示された2つのブロックが、実際には、実質的に並列に行われる場合もあり、また、2つのブロックが逆の順に行われる場合もある。
【0038】
[041] 本発明の特定の実施形態について説明したが、他の実施形態も存在し得る。更に、本発明の実施形態は、メモリおよび他の記録媒体に記憶されたデータと関連するものとして説明したが、データは、他のタイプのコンピュータ読取可能媒体へ記憶することや、他のタイプのコンピュータ読取可能媒体から読み出すことができる。他のタイプのコンピュータ読取可能媒体としては、ハード・ディスク、フロッピー(登録商標)・ディスク、CD−ROMなどのような2次ストレージ・デバイスや、インターネットからの搬送波や、他の形態のROMやRAMなどがある。更に、ここで開示した方法のステージは、本発明から離れることなく、ステージの順の変更やステージの挿入や削除などを行うことにより、任意の様式に変更することができる。
【0039】
[042] 本出願に含まれるコードにおける著作権を含む全ての権利は、出願人に帰属するものであり、出願人の財産である。出願人は、本出願に含まれるコードにおける全ての権利を保持および保有しており、特許査定された発明を複製することに関してのみ、具体物を複製する許可を与えるが、他の目的のための許可は与えない。
【0040】
[043] 明細書は例を含んでいるが、本発明の範囲は特許請求の範囲に示されている。更に、明細書は、構造的な特徴や方法論的な動作に対して特定的な言語で記載されているが、特許請求の範囲は上記の特徴や動作に制限されるものではない。むしろ、上記の特定の特徴や動作は、本発明の実施形態のための例として開示されたものである。
図1
図2
図3
図4
図5