(57)【要約】第１のエンティティから第２のエンティティにデータを送信する方法が記述される。データは第１のエンティティと第２のエンティティとを接続する通信結合で利用可能な帯域幅を提供するように選択されるフォーマットを使用して送信される。第１のエンティティ又は第２のエンティティは、ターミナル・サービス（ＴＳ）クライアント装置及びターミナル・サービス（ＴＳ）サーバー装置をそれぞれ含み、又はその逆であってもよい。本方法は、第１のエンティティから第２のエンティティへの、より長いメッセージが後に続く短いメッセージの送信に関連したタイミング情報の記録により、帯域幅を計算することができる。短いメッセージは帯域幅の計算における待ち時間の影響を除去するために使用される。
2010520665.tif 000002
【特許請求の範囲】
【請求項１】
第１のエンティティから第２のエンティティへの通信結合を介してデータを送信するコンピュータ化された方法であって、
前記第１のエンティティから第２のエンティティへ小さなメッセージを送信するステップと、
前記第１のエンティティから第２のエンティティへより大きなメッセージを送信するステップと、
前記第２のエンティティが前記小さなメッセージ及び前記より大きなメッセージを受信するそれぞれの時に基づいてネットワーク結合の帯域幅を決定するステップと、
前記決定された帯域幅に基づいてフォーマットを選択するステップと、
前記第１のエンティティから第２のエンティティへ前記選択されたフォーマットを使用して後続のデータを送信するステップと
を含む方法。
【請求項２】
前記第１のエンティティはターミナル・サービス（ＴＳ）クライアント装置であり、前記第２のエンティティはターミナル・サービス（ＴＳ）サーバー装置であり、前記ＴＳクライアント装置は、遠隔相互作用プロトコルを使用して、前記ＴＳサーバー装置上で実行されるアプリケーションと相互作用する請求項１に記載のコンピュータ化された方法。
【請求項３】
前記後続のデータは、前記ＴＳサーバー装置による記録のために、前記ＴＳクライアント装置から前記ＴＳサーバー装置へ送信される請求項２に記載のコンピュータ化された方法。
【請求項４】
前記第２のエンティティはターミナル・サービス（ＴＳ）クライアント装置であり、前記第１のエンティティはターミナル・サービス（ＴＳ）サーバー装置であり、前記ＴＳクライアント装置は、遠隔相互作用プロトコルを使用して、前記ＴＳサーバー装置上で実行されるアプリケーションと相互作用する請求項１に記載のコンピュータ化された方法。
【請求項５】
前記後続のデータは、前記ＴＳクライアント装置における再生のために前記ＴＳサーバー装置から前記ＴＳクライアント装置へ送信される請求項４に記載のコンピュータ化された方法。
【請求項６】
前記第１のエンティティから前記第２のエンティティへ送信される前記後続のデータは音声データである請求項１に記載のコンピュータ化された方法。
【請求項７】
前記第１のエンティティから前記第２のエンティティへ送信される前記後続のデータはビデオデータである請求項１に記載のコンピュータ化された方法。
【請求項８】
前記第１のエンティティと前記第２のエンティティとの間のメッセージの送信に関与する待ち時間を占めるように短いメッセージが送信される請求項１に記載のコンピュータ化された方法。
【請求項９】
前記帯域幅は、前記待ち時間の影響について修正されるように、サイズＳを有する前記より大きなメッセージを送信するのに要する時間の量に基づいて決定される請求項８に記載のコンピュータ化された方法。
【請求項１０】
前記小さなメッセージを送信するステップ、前記より大きなメッセージを送信するステップ、帯域幅を決定するステップ、及び、前記第１のエンティティから前記第２のエンティティへのデータの送信の間、フォーマットを複数回数選択するステップを繰り返すステップをさらに含む請求項８に記載のコンピュータ化された方法。
【請求項１１】
１つの利用可能なフォーマットは、比較的高品質及び比較的低度の圧縮を有する請求項１に記載のコンピュータ化された方法。
【請求項１２】
１つの利用可能なフォーマットは、比較的低品質及び比較的高度の圧縮を有する請求項１に記載のコンピュータ化された方法。
【請求項１３】
請求項１に記載のコンピュータ化された方法を実行するための機械可読命令を含む１つ以上の機械可読媒体。
【請求項１４】
１つ以上のプロセッサと、
前記１つ以上のプロセッサによって実行されると請求項１に記載のコンピュータ化された方法を実行するコンピュータ実行可能命令を格納するメモリーと
を具備する１つ以上の計算装置。
【請求項１５】
ターミナル・サービス（ＴＳ）クライアント装置とターミナル・サービス（ＴＳ）サーバー装置との間で通信結合を介してデータを送信するコンピュータ化された方法において、前記ＴＳクライアント装置は、遠隔相互作用プロトコルを使用して、前記ＴＳサーバー装置上で実行されるアプリケーションと相互作用し、前記方法は、
前記ＴＳクライアント装置から前記ＴＳサーバー装置へ、又は、前記ＴＳサーバー装置から前記ＴＳクライアント装置へ、無視できるサイズの小さなメッセージを送信するステップと、
前記ＴＳクライアント装置から前記ＴＳサーバー装置へ、又は、前記ＴＳサーバー装置から前記ＴＳクライアント装置へ、サイズＳのより大きなメッセージを送信するステップと、
前記ＴＳクライアント装置又は前記ＴＳサーバー装置が前記小さなメッセージ及び前記より大きなメッセージを受信するそれぞれの時に基づいて前記通信結合の帯域幅を決定するステップであって、前記短いメッセージは前記ＴＳクライアント装置と前記ＴＳサーバー装置との間でのメッセージの送信に関与する待ち時間を占めるように送信され、前記帯域幅は、待ち時間の影響について修正されるように、サイズＳを有する前記より大きなメッセージを送信するのに要する時間の量に基づいて決定される、決定するステップと、
前記決定された帯域幅に基づいてフォーマットを選択するステップであって、比較的低品質のフォーマットが利用可能性の比較的低い帯域幅について選択され、比較的高品質のフォーマットが利用可能性の比較的高い帯域幅について選択される、選択するステップと、
前記選択されたフォーマットを使用して前記ＴＳクライアント装置と前記ＴＳサーバー装置との間で後続のデータを送信するステップと
を含む方法。
【請求項１６】
前記ＴＳクライアント装置と前記ＴＳサーバー装置との間で送信される前記後続のデータは音声データ又はビデオデータである請求項１５に記載のコンピュータ化された方法。
【請求項１７】
請求項１５に記載のコンピュータ化された方法を実行するための機械可読命令を含む１つ以上の機械可読媒体。
【請求項１８】
１つ以上のプロセッサと、
前記１つ以上のプロセッサによって実行されると請求項１５に記載のコンピュータ化された方法を実行するコンピュータ実行可能命令を格納するメモリーと
を具備する１つ以上の計算装置。
【請求項１９】
第１のエンティティから第２のエンティティへのデータの送信のためのフォーマットを選択するように構成されたフォーマット処理モジュールにおいて、前記第１のエンティティ及び前記第２のエンティティは通信結合によってともに結合され、前記フォーマット処理モジュールは、
前記第２のエンティティが小さなメッセージ及びより大きなメッセージを受信するそれぞれの時に基づいて前記通信結合の帯域幅を決定するように構成された帯域幅決定モジュールと、
複数の異なるフォーマットに関する情報を格納するフォーマット記憶部と、
前記決定された帯域幅に基づいて前記フォーマット記憶部において識別されるフォーマットを選択するように構成されたフォーマット選択モジュールと
を具備し、データは、前記選択されたフォーマットを使用して、前記通信結合を介して前記第１のエンティティから前記第２のエンティティへ送信される、フォーマット処理モジュール。
【請求項２０】
前記第１のエンティティはターミナル・サービス（ＴＳ）クライアント装置であり且つ前記第２のエンティティはターミナル・サービス（ＴＳ）サーバー装置であり、又は、前記第１のエンティティはＴＳサーバー装置であり且つ前記第２のエンティティはＴＳクライアント装置であり、前記ＴＳクライアント装置は、遠隔相互作用プロトコルを使用して、前記ＴＳサーバー装置上で実行されるアプリケーションと相互作用する、請求項１９に記載のコンピュータ化された方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、測定された帯域幅に基づいてデータ送信のフォーマットを選択する技術に関する。
【背景技術】
【０００２】
ターミナル・サービス（ＴＳ）システムは、ＴＳクライアント装置が遠隔のＴＳサーバー装置上で実行されているアプリケーションと相互作用（インタラクト）することを可能にする。アプリケーションと相互作用するユーザーは、アプリケーションがＴＳクライアント装置によってローカルに実行される場合に提供される同一のユーザー体験を一般に受け取る。ＴＳサーバー装置上でのアプリケーションの実行は多くの利点をもたらす。例えば、中央の位置で保持されるアプリケーションを管理することが容易になる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＴＳセッションは、ＴＳクライアント装置からＴＳサーバー装置へ、あるいはその逆にデータを送ることを含み得る。高品質及び低い待ち時間でこのデータを送信することは一般に望ましい。しかしながら、（インターネットのような）多くのネットワーク環境は、可変量の利用可能帯域幅を示す。この複雑さを考慮すると、ＴＳシステム内でどのようにデータを送信することが最適であるかを決定するのは難しい課題である。
【課題を解決するための手段】
【０００４】
ネットワークを介して第１のエンティティ及び第２のエンティティの間でデータを送信するための方法が説明される。第１のエンティティはターミナル・サービス（ＴＳ）クライアント装置を含んでもよく、第２のエンティティはＴＳサーバー装置を含んでもよく、又はその逆でもよい。１つの例示的な実施例によれば、方法は、サイズＳを有するより大きなメッセージが後に続く短いメッセージの送信からタイミング情報を抽出することにより、ネットワーク上の利用可能な帯域幅を決定する。当該方法は、帯域幅の決定から待ち時間の考慮を取り除くために、短いメッセージの送信から抽出された情報を使用する。当該方法は、決定された帯域幅を使用してデータ圧縮／解凍フォーマットを選択し、今度は、ＴＳクライアント装置からＴＳサーバー装置にデータを送信する際に選択されたフォーマットを使用し、その逆も行う。当該方法は、比較的大きな帯域幅が利用可能な場合、比較的高い品質を提供するフォーマットを選択することができる。当該方法は、より小さな帯域幅が利用可能な場合には、より低い品質を提供するフォーマットを選択することができる。このように、本発明の方法は、普及しているネットワーク条件を提供するためにデータの送信の間に使用されるフォーマットを動的に且つシームレスに調節することができる。
【０００５】
１つの例示的な実施例では、データは音声データ又はビデオデータを含んでもよい。音声データの場合には、例えば、本方法はＴＳクライアント装置によって獲得されるＴＳサーバー装置に対する音声データを送信するために使用することができる。ＴＳサーバー装置は、獲得された音声データを記録するか、あるいは獲得された音声データに対して他のある処理を行なうことができる。あるいは、本方法はＴＳクライアント装置における再生のためにＴＳサーバー装置からＴＳクライアント装置に音声データを送信するために使用することができる。
【０００６】
追加の例示的な実施及び付随する利点が以下に述べられる。
【図面の簡単な説明】
【０００７】
【図１】ターミナル・サービス（ＴＳ）クライアント装置からターミナル・サービス（ＴＳ）サーバー装置に、あるいはその逆にデータを送信するための例示的なシステムを示す図である。
【図２】図１のシステムの動作の例示的な方法を示すフローチャートである。
【図３】図１のシステムの任意の態様を実施するための例示的な処理機能を示す図である。
【図４】ＴＳクライアント装置からＴＳサーバー装置へ獲得された音声データを送信するための図１のシステムの応用を示す図である。
【図５】図４のシステムの動作の例示的な方法について説明するタイミング図である。
【図６】図４のシステムの動作の例示的な方法について説明するタイミング図である。
【図７】図４のシステムの動作の例示的な方法について説明するタイミング図である。
【０００８】
同一の数字は、類似のコンポーネント及び機能を参照するように明細書及び図面全体にわたって使用される。１００番代の番号は図１において初めに見られる機能を指し、２００番代の番号は図２において初めに見られる機能を指し、３００番代の番号は図３において初めに見られる機能を指す。
【発明を実施するための形態】
【０００９】
本明細書は、利用可能な帯域幅の決定に基づいて動的に選択される圧縮／解凍フォーマットを使用して、第１のエンティティと第２のエンティティとの間でデータを送るための方法を記述する。当該方法は様々なシステム、装置、モジュール、手続、記憶媒体、データ構造及び他の形式で表すことができる。
【００１０】
本明細書は次の節を含んでいる。Ａ節は、第１のエンティティと第２のエンティティとの間のデータの送信のための方法の概観を述べる。Ｂ節は、音声獲得及び音声再生を含む異なるシナリオに対する当該方法の例示的な応用について記述する。
Ａ．方法の概要
Ａ．１．例示的なシステム
事前の注意事項として、図面に関して記述された如何なる機能も、ソフトウェア、ファームウェア、ハードウェア（例えば固定論理回路）、マニュアル処理又はこれらの実施の組合せを使用して実施することができる。本明細書において使用される用語「論理」、「モジュール」、「コンポーネント」、「システム」又は「機能」は、一般に、ソフトウェア、ファームウェア、ハードウェア、又はこれらの要素の組合せを表す。例えば、ソフトウェアの実施例の場合には、用語「論理」、「モジュール」、「コンポーネント」、「システム」、又は「機能」は、演算装置（例えばＣＰＵ）上で実行された時に指定されたタスクを実行するプログラムコードを表す。プログラムコードは１つ以上のコンピュータ可読記憶装置に格納することができる。
【００１１】
より一般に、別個のユニットへ論理、モジュール、コンポーネント、システム及び機能を図示されるように分離することは、ソフトウェア、ファームウェア及び／又はハードウェアの実際の物理的なグループ化及び割り当てを反映し得るし、あるいは単一のソフトウェアプログラム、ファームウェアプログラム及び／又はハードウェアユニットによって行なわれる異なるタスクの概念的な割り当てに相当し得る。説明される論理、モジュール、コンポーネント、システム及び機能は、（例えば演算装置によって実施されるように）単一の場所に位置してもよいし、あるいは複数の位置に分散されてもよい。
【００１２】
「機械可読媒体」などの用語は、様々な種類の記憶装置（磁気、光学、静的、など）を含む、任意の形式で情報を保持する媒体を指す。機械可読媒体という用語は、１つのポイントから別のポイントへ情報を送信するための様々な有線及び／又は無線リンクを含む、情報を表す一時的な形式を包含する。
【００１３】
図１は、データが第１のエンティティから第２のエンティティに通信結合によって送信されるシステム１００を示す。あるいは、データは第２のエンティティから第１のエンティティに送信することができる。１つの例において、第１のエンティティはターミナル・サービス（ＴＳ）クライアント装置１０２を含むことができ、その一方で第２のエンティティはターミナル・サービス（ＴＳ）サーバー装置１０４を含むことができる。別の例において、第１のエンティティはＴＳサーバー装置１０４を含むことができ、第２のエンティティはＴＳクライアント装置１０２を含むことができる。ＴＳクライアント装置１０２及びＴＳサーバー装置１０４は、ネットワーク１０６によって互いに通信する。
【００１４】
ターミナル・サービス技術において、ＴＳクライアント装置１０２は、ＴＳサーバー装置１０４によって実施される１つ以上のアプリケーションと相互作用することができる。あたかもアプリケーションがＴＳクライアント装置１０２上で実行されているかのように、ＴＳクライアント装置１０２において、ユーザーは同じユーザー体験を一般に受け取る。ＴＳ技術は（クライアント装置によるアプリケーションのローカルでの実行と比較して）様々な利点を与える。１つの例示的な利点によれば、ＴＳ技術は、アプリケーションがクライアント装置によってローカルに実行される従来の場合と比較して、アプリケーションがより効率的なやり方で管理されることを可能にする。
【００１５】
説明を容易にするために、システム１００は、より一般的な第１のエンティティ及び第２のエンティティではなく、ＴＳクライアント装置１０２とＴＳサーバー装置１０４との間の相互作用の具体的な状況において記述される。しかし、ここで述べられる原理は、データが任意の第１のエンティティから任意の第２のエンティティに通信結合を通して送信されるあらゆるシステムに適用できることに留意すべきである。より具体的にするために、当該原理はさらにターミナル・サービス技術を使用しない環境における用途を見出す。
【００１６】
ネットワーク１０６は、異なる技術的及び商業的なの環境に適するように異なる方法で実施することができる。例えば、ネットワーク１０６は、広域ネットワーク（例えばインターネット）、イントラネット、デジタル加入者線（ＤＳＬ）ネットワークインフラ、二地点間の結合インフラなどのような任意の種類のデジタルネットワーク（あるいはデジタルネットワークの組合せ）を含んでもよい。図示されていないが、ネットワーク１０６は、様々な有線及び／又は無線リンク、ルーター、ゲートウエイ、ネーム・サーバーなどを含んでもよい。ネットワーク１０６は任意のプロトコル又はプロトコルの組合せによって管理することができる。
【００１７】
ＴＳ技術の１つのシナリオでは、ＴＳクライアント装置１０２はＴＳサーバー装置１０４へのデータの送信に使用される。例えば、ＴＳクライアント装置１０２は、ＴＳクライアント装置１０２における入力装置によって獲得される音声データ又はビデオデータ（あるいは任意の他のデータ）をＴＳサーバー装置１０４へリダイレクトすることができる。この場合、ＴＳサーバー装置１０４は、遠隔的にデータを記録するか又はデータに対して他の何らかの作業を行なうために使用することができる。別のシナリオでは、ＴＳサーバー装置１０４はＴＳクライアント装置１０２における再生のために、ＴＳクライアント装置１０２へデータを転送するために使用される。例えば、ＴＳクライアント装置１０２におけるユーザーは、ＴＳサーバー装置１０４で実行されるオーディオ・プレイヤー・アプリケーションと相互作用することができる。オーディオ・プレイヤー・アプリケーションは、ＴＳクライアント装置１０２での再生のために、ネットワーク１０６を介して、あらかじめ記録された音声コンテンツをＴＳクライアント装置１０２へ向けることができる。ＴＳ技術のさらに他の応用が可能である。一般に、矢印（１０８’、１０８”）は、ＴＳクライアント装置１０２からＴＳサーバー装置１０４へ、及びＴＳサーバー装置１０４からＴＳクライアント装置１０２へ、システム１００がデータを転送（あるいは、「リダイレクト」）することができることを説明する。
【００１８】
システム１００は、選択されたフォーマットを使用して、ＴＳクライアント装置１０２からＴＳサーバー装置１０４へ（あるいはその逆に）データを送信する。そのフォーマットは、部分的に、ネットワーク１０６を介した転送に先立ってデータを圧縮するために何の技術が使用されるか、また、宛先装置（１０２又は１０４）での受信の際にデータを解凍するために何の技術が使用されるかを制御できる。異なるフォーマットは、圧縮と品質についての様々な程度を提供することができる。スペクトルの一方の端において、あるフォーマットが、比較的低い程度の圧縮及び比較的高い品質を提供してもよい。スペクトルのもう１つの端においては、別のフォーマットが、比較的高い程度の圧縮であるがより低い品質を提供してもよい。高品質のフォーマットは一般に低品質のフォーマットより多くの帯域幅を消費する。
【００１９】
一般に、利用可能な帯域幅によって許容される最も高度の品質を使用してデータを送信することが望ましいかもしれない。しかし、ネットワーク１０６の帯域幅はデータ通信セッションの間に動的な方法で変化し得る。この状況に対処するために、システム１００は、セッションの間に利用可能な帯域幅を繰り返し測定する。帯域幅測定に基づいて、それがデータを送信するための最も適切なフォーマットを使用しているか否かを、システム１００は繰り返し再評価する。例えば、利用可能な帯域幅の大きさが所定のしきい値インクリメント（例えば１０パーセント）を超えて減少する場合、システム１００はより高い圧縮（したがってより少ない帯域幅を消費する）を提示するがより低い品質を提供する別のフォーマットを選択してもよい。利用可能な帯域幅の大きさがしきい値インクリメント（例えば１０パーセント）を超えて増加する場合、システム１００はより低い圧縮（したがってより多くの帯域幅を消費する）を提示するがより高い品質を提供する別のフォーマットを選択してもよい。
【００２０】
上記のように機能するために、ＴＳクライアント装置１０２及びＴＳサーバー装置１０４のうち１つ以上は、帯域幅を評価し且つ帯域幅に基づいて適切なフォーマットを選択する機能を含んでいる。
【００２１】
まず、ＴＳサーバー装置１０４によって提供される機能を考える。ＴＳサーバー装置１０４はサーバー・フォーマット処理モジュール１１０を含んでいる。サーバー・フォーマット処理モジュール１１０の目的は、ネットワーク１０６における現行の（prevailing）帯域幅を測定し、測定された帯域幅に最も適しているフォーマットを選択することである。このように機能するよう、サーバー・フォーマット処理モジュール１１０は、サーバー帯域幅計算モジュール１１２、サーバー・フォーマット選択モジュール１１４及び利用可能なフォーマットに関する情報を提供するサーバー・フォーマット記憶部１１６を含んでいる。サーバー帯域幅計算モジュール１１２は、ＴＳクライアント装置１０２とＴＳサーバー装置１０４との間のデータの送信に利用可能な帯域幅を計算するために使用される。サーバー・フォーマット選択モジュール１１４は、測定された帯域幅に基づいてサーバー・フォーマット記憶部１１６において識別されたフォーマットのうちの１つを選択するために使用される。サーバー帯域幅計算モジュール１１２が利用可能な帯域幅を計算する方法に関するさらなる詳細は、図２の議論の文脈において以下に提供される。
【００２２】
ＴＳサーバー装置１０４はまた、サーバー・データ変換器モジュール１１８を含んでいる。サーバー・データ変換器モジュール１１８の目的は、ネットワーク１０６を介して送信される（あるいは受信される）データを変換するために選択されたフォーマット（サーバー・フォーマット処理モジュール１１０によって識別される）を使用することである。例えば、サーバー・データ変換器モジュール１１８は、ＴＳクライアント装置１０２によって獲得されてＴＳクライアント装置１０２によってＴＳサーバー装置１０４へ送られる音声データを解凍するために選択されたフォーマットを使用することができる。さらに、サーバー・データ変換器モジュール１１８は、再生のためにＴＳクライアント装置１０２にネットワーク１０６を介して送信される音声データを圧縮するために選択されたフォーマットを使用することができる。
【００２３】
ＴＳサーバー装置１０４はまた、データエンジン１２０を含んでいる。このモジュール１３２の目的はデータに様々なデータ処理動作を行なうことである。例えば、音声データの場合には、データエンジン１２０は音声データに対してミキシング動作及び他の変形させる動作を行なうことができる。
【００２４】
ＴＳサーバー装置１０４はまた１つ以上のアプリケーション１２２を含んでいる。アプリケーション１２２は、ＴＳクライアント装置１０２におけるユーザーが相互作用してもよいあらゆる高レベルの機能を含むことができる。例えば、音声再生のシナリオでは、アプリケーション１２２のうちの１つはオーディオ・プレイヤー・アプリケーションを含んでもよい。オーディオ・プレイヤー・アプリケーションは、ＴＳクライアント装置１０２を介して歌及び他の音声ファイルを選択し再生するようにユーザーが相互作用することができるユーザー・インターフェースを提示する。ユーザーは、様々なユーザー・インターフェース・コントロール（例えばボリュームを制御するスライダ）を使用して、再生の特性を調節することができる。
【００２５】
ここで、ＴＳクライアント装置１０２を考えると、この装置１０２はクライアント・フォーマット処理モジュール１２４を含んでいる。クライアント・フォーマット処理モジュール１２４は一般にサーバー・フォーマット処理モジュール１１０と同じ機能を提供する。より正確にいえば、クライアント・フォーマット処理モジュール１２４は、サーバー・フォーマット処理モジュール１１０の動作を補足する機能を行なう。例えば、サーバー・フォーマット処理モジュール１１０が識別された解凍フォーマットを選択する場合、クライアント・フォーマット処理モジュール１２４は補足的な圧縮フォーマットを選択する。他方、サーバー・フォーマット処理モジュール１１０が識別された圧縮フォーマットを選択する場合、クライアント・フォーマット処理モジュール１２４は補足的な解凍フォーマットを選択する。
【００２６】
上述されたように機能すべく、クライアント・フォーマット処理モジュール１２４は、オプションの帯域幅計算モジュール１２６、クライアント・フォーマット選択モジュール１２８、及び利用可能なフォーマットに関する情報を提供するフォーマット記憶部１３０を含んでいる。これらのコンポーネントは、一般にサーバー・フォーマット処理モジュール１１０に関して上述されたものと同じ方法で（例えば補足的に）動作する。あるいは、サーバー・フォーマット処理モジュール１１０が帯域幅を計算し適切なフォーマットを選択することができ、そして選択されたフォーマットをクライアント・フォーマット処理モジュール１２４に伝えることができ、それによって帯域幅決定自体をなすためのクライアント帯域幅計算モジュール１２６の必要性を回避するという意味で、クライアント帯域幅計算モジュール１２６はオプションである。続く説明は、サーバー・フォーマット処理モジュール１１０とクライアント・フォーマット処理モジュール１２４との間のフォーマット・メッセージの交換についてのさらなる詳細を提供する。
【００２７】
ＴＳクライアント装置１０２はまた、クライアント・データ変換器モジュール１３２を含んでいる。このモジュール１３２の目的は、クライアント・サーバー・フォーマット処理モジュール１２４によって選択されたフォーマットを使用して、ＴＳサーバー装置１０４に送信される又はＴＳサーバー装置１０４により受信されるデータを変換することである。例えば、音声捕獲の場合には、クライアント・データ変換器モジュール１３２は、ネットワーク１０６を介したＴＳサーバー装置１０４への送信のために入力音声データを圧縮するため、選択された圧縮フォーマットを使用する。
【００２８】
ＴＳクライアント装置１０２はまた、入出力データ処理モジュール１３４を含んでいる。名前が示唆するように、入出力データ処理モジュール１３４はデータの入力又はデータの出力のための様々な装置を含むことができる。入力装置は、音声捕獲装置（例えばマイクロホンなど）、ビデオ・キャプチャ装置（例えばＣＣＤキャプチャー機構など）を含んでもよい。出力装置は、音声出力装置（例えばスピーカーなど）、表示装置などを含んでもよい。
Ａ．２  動作の例示的な方法
図２は、図１のシステム１００がどのように帯域幅を測定し、測定された帯域幅に基づいてフォーマットをどのように選択することができるかを説明する手続２００を示す。この手続２００は、ＴＳクライアント装置１０２からＴＳサーバー装置１０４に、またその逆に、データを送信する状況において行うことができる。この一般性を考慮すると、手続２００は、第１のエンティティがＴＳクライアント装置１０２あるいはＴＳサーバー装置１０４のいずれかを含むことができ、第２のエンティティが同様にＴＳクライアント装置１０２あるいはＴＳサーバー装置１０４のいずれかを含むことができることに留意して、第１のエンティティ及び第２のエンティティの状況において説明される。Ｂ節は、特定のシナリオの状況において手続２００について記述することにより、手続２００をより具体的にする。
【００２９】
議論を容易にするため、特定の動作が、ある順に実行される別個のブロックを構成するものとして記述される。そのような実施例は例示的であって制限的なものではない。ここに記述された特定のブロックは一緒にグループ化することができ、単一の動作において実行することができ、また本明細書で述べられる例において使用される順序と異なる順序で特定のブロックを実行することができる。フローチャートに示されるブロックは、ソフトウェア、ファームウェア、ハードウェア、マニュアル処理、これらの実施の任意の組合せなどによって実施することができる。
【００３０】
ブロック２０２において、第１のエンティティは、無視できる（ごくわずかな）サイズを有する第１のメッセージを送信する。このメッセージを送信する時間が、メッセージのサイズではなく、主としてネットワーク１０６内の待ち時間に依存するという意味で、サイズは無視することができる。
【００３１】
ブロック２０４において、第２のエンティティは、第１のメッセージを受け取り、当該メッセージが受け取られる時間（例えば、タイムスタンプによって示される）を記録する。
【００３２】
ブロック２０６において、第１のエンティティは、（ブロック２０２において送られる）小さなメッセージの直後にサイズＳのより大きなメッセージを送信する。サイズＳのより大きなメッセージは、送信されることになっているデータの一部を含む１つ以上のパケットを含み得る。例えば、音声データを送信する場合、サイズＳのより大きなメッセージは、音声データの１つ以上のパケットを含んでもよい。あるいは、サイズＳのより大きなメッセージは、交換すべきデータの主なフローに対して補足的なデータを含む１つ以上のパケットを含んでもよい。例えば、このような他のデータは、設定（構成）情報を提供してもよい。あるいは、当該他のデータは、帯域幅の測定を越えた意味のある用途を何ら有しない任意の情報を含んでもよい。
【００３３】
ブロック２０８において、第２のエンティティは、第２のメッセージを受け取り、当該メッセージが受け取られる時間（例えば、タイムスタンプによって示される）を記録する。
ブロック２１０において、システム１００は、データ送信の帯域幅を計算するために、動作２０４及び２０８において収集された情報を使用する。１つの場合において、帯域幅は、第２のメッセージの受信時間から第１のメッセージの受信時間を差し引き、その差によって第２のメッセージのサイズＳを割ることにより計算することができる。減算は帯域幅の計算において待ち時間の影響を除去するのに有用である。
【００３４】
ブロック２１０はさらに、測定された帯域幅に基づいて適切なフォーマットを選択することを含む。例えば、ネットワーク１０６において十分な帯域幅がある場合、システム１００は、比較的高品質の（低圧縮の）フォーマットを選択する。ネットワーク１０６において帯域幅が十分にない場合、システム１００は、比較的低品質の（高圧縮の）フォーマットを選択する。
【００３５】
ブロック２１２において、システム１００は、システム１００内の適切なエンティティに対してそのフォーマット選択を通信する。例えば、第２のエンティティが実際に帯域幅を計算し、当該帯域幅に基づいて適切なフォーマットを選択するエージェントであると仮定する。第２のエンティティは、選択されたフォーマットを第１のエンティティに通知するメッセージを、第１のエンティティに送信することができる。
【００３６】
ブロック２１４において、システム１００は、動作２１２において選択されたフォーマット変更を正式に行うことができる。例えば、音声獲得のシナリオでは、クライアント・フォーマット処理モジュール１２４は適切な圧縮フォーマットを選択することができ、サーバー・フォーマット処理モジュール１１０は適切な相補的な解凍フォーマットを選択することができる。音声再生のシナリオでは、クライアント・フォーマット処理モジュール１２４は適切な解凍フォーマットを選択することができ、サーバー・フォーマット処理モジュール１１０は適切な圧縮フォーマットを選択することができる。
【００３７】
ループして手続２００の先頭に戻る矢印は、手続２００がデータ送信セッションを通して複数回数繰り返されることを示す。この手続２００によって、システム１００は、ネットワーク１０６において利用可能な現行の帯域幅を映すために、使用中の圧縮／解凍フォーマットを動的に変更することができる。これにより、システム１００は、ネットワーク１０６が任意の所与の瞬間において提供する最良の可能な品質を使用して、データを送信することが可能となる。
Ａ．３．  例示的な処理機能
図３は、図１に示されるシステム１００の任意の態様を実施するために使用することができる例示的な処理機能３０２を説明する。１つの制限的でない場合において、例えば、処理機能３０２は、ＴＳクライアント装置１０２を実施するのに使用される任意のコンピューターマシンやＴＳサーバー装置１０４を実施するのに使用される任意のコンピューターマシンを表してもよい。
【００３８】
処理機能３０２は、ＲＡＭ３０４及びＲＯＭ３０６のような様々な揮発性及び不揮発性のメモリー並びに１つ以上の中央処理装置（ＣＰＵ）３０８を含み得る。処理機能３０２は、メモリー（例えば、３０４、３０６、又は他のどこか）によって保持される命令をＣＰＵ３０８が実行するときに、上で特定された様々な動作を実行することができる。処理機能３０２は、さらに、ハードディスク・モジュール、光ディスクモジュールなどのような様々な媒体デバイス３１０をオプションで含む。
【００３９】
処理機能３０２はまた、（入力装置３１４を介して）ユーザーから様々な入力を受け取り、（出力装置３１６を介して）ユーザーに様々な出力を提供するために、入出力モジュール３１２を含む。入力装置３１４は、キーボード、マウス型装置、マイクロホンなどを含み得る。１つの特定の出力装置は表示装置及び関連するグラフィカル・ユーザー・インターフェース（ＧＵＩ）３１８を含んでもよい。別の出力装置は音声データを提示するためのスピーカーを含んでもよい。処理機能３０２はまた、１つ以上の通信結合３２２を介して他の装置とデータを交換するために、１つ以上のネットワークインターフェース３２０を含み得る。通信結合３２２は上述のネットワーク１０６を含んでもよい。１つ以上の通信バス３２４が上述のコンポーネントを一緒に通信的に結合する。
Ｂ．例
２つの例が、上記の説明をより具体的にする助けとなる。第１の例は音声獲得を含む。この場合、ＴＳクライアント装置１０２は、音声データを（例えば、マイクロホンで）獲得して、ネットワーク１０６を介してＴＳサーバー装置１０４に音声データを送信する。そうする際に、ＴＳクライアント装置１０２は、選択されたフォーマットを使用して音声データを圧縮し、ＴＳサーバー装置１０４は、相補的な選択されたフォーマットを使用して音声データを解凍する。第２の例は音声再生を含む。この場合、ＴＳサーバー装置１０４は、ＴＳクライアント装置１０２におけるユーザーに対する再生のために、ＴＳクライアント装置１０２に音声データを送信する。そうする際に、ＴＳサーバー装置１０４は、選択されたフォーマットを使用して音声データを圧縮し、ＴＳクライアント装置１０２は相補的な選択されたフォーマットを使用して音声データを解凍する。
Ｂ．１．音声獲得
図４は、音声獲得シナリオをより詳しく説明するシステム４００である。システム４００は、図１の状況において導入されたものと同じ主要なコンポーネント、すなわち、ＴＳクライアント装置４０２、ＴＳサーバー装置４０４、及びＴＳクライアント装置４０２とＴＳサーバー装置４０４とをともに結合するネットワーク４０６を含む。
【００４０】
ＴＳサーバー装置４０４から始めると、この装置は、サーバー・フォーマット処理モジュール４０８及びサーバー音声変換器モジュール４１０を含む。これらのモジュールは、図１の状況において上述されたものと同じ機能、すなわち、帯域幅の測定、測定された帯域幅に最も適するフォーマットの選択、選択されたフォーマットを使用した音声データの変換を実行する。
【００４１】
ＴＳサーバー装置４０４はまた、動的仮想チャネル４１２を含む。このモジュール４１２は、ＴＳクライアント装置４０２へ音声データを運ぶための方法を実施する機能を示す。
【００４２】
ＴＳサーバー装置４０４はまた、入力処理モジュール４１４を含む。このモジュール４１４は、サーバー・フォーマット処理モジュール４０８及びサーバー音声変換器モジュール４１０を管理する。このモジュール４１４はまた、ＴＳサーバー装置４０４の上位コンポーネントについての受信音声データを格納するバッファを保持する。
【００４３】
ＴＳサーバー装置４０４はまた、エンドポイント・モジュール４１６を含む。このモジュール４１６は、入力処理モジュール４１４から音声データを検索し、それをＴＳサーバー装置４０４の上位コンポーネントへ渡す。
【００４４】
ＴＳサーバー装置４０４はまた、図１の同じ名前のモジュールと同じ役割を行う音声エンジン４１８を含む。すなわち、このエンジン４１８は、ミキシング等の音声データに対する様々なデータ処理動作を行う。エンドポイント・モジュール４１６は、音声エンジン４１８に入ってくる又は音声エンジン４１８から出ていくデータのストリームに対するデータ、コントロール、及びステータス・インターフェースとして働く。
【００４５】
ＴＳサーバー装置４０４はまた、様々なアプリケーション４２０を含む。アプリケーション４２０は、音声データ（例えば、ＴＳクライアント装置４０２から受け取られた音声データ）に関係する任意の上位の動作を行う。音声エンジン４１８は、アプリケーション４２０へ処理された音声データを転送する。
【００４６】
ここでＴＳクライアント装置４０２を考えると、このコンポーネントはクライアント処理モジュール４２２を含む。クライアント処理モジュール４２２は、ＴＳクライアント装置４０２によって行われる任意の動作を表わす。
【００４７】
ＴＳクライアント装置４０２はまた、クライアント入力情報モジュール４２４を含む。このモジュール４２４は、ＴＳクライアント装置４０２によって獲得される音声データを記録する。
【００４８】
ＴＳクライアント装置４０２はまた、動的仮想チャネル４２６を含む。このモジュール４２６は、音声データを運ぶ方法を実施する機能を指す。ＴＳクライアント装置４０２の仮想チャネル４２６上で送信されたデータは、ＴＳサーバー装置４０４の仮想チャネル４１２上で受け取られ、その逆も行われる。
【００４９】
ＴＳクライアント装置４０２はまた、クライアント・フォーマット処理モジュール４２８及びクライアント音声変換器モジュール４３０を含む。これらのモジュールは、図１に関して上述されたものと同じ機能を行う。例えば、クライアント音声変換器モジュール４３０は、圧縮されていないＰＣＭフォーマットの音声データを、クライアント・フォーマット処理モジュール４２８によって識別される選択されたフォーマットに変換することができる。
【００５０】
図５−７は、図４のシステム４００の動作の１つの例示的な方法を説明する。概観のため、音声獲得シナリオにおいて：１）ＴＳクライアント装置４０２は圧縮されていないフォーマットの音声データを記録し； ２）ＴＳクライアント装置４０２は、選択されたフォーマットを使用して音声データを圧縮し、ＴＳサーバー装置４０４に圧縮した音声データを送信し； ３）ＴＳサーバー装置４０４は受信された音声データを解凍し；そして、４）ＴＳサーバー装置４０４は、圧縮されていない音声データを音声エンジン４２８へ渡す。
【００５１】
プロトコルがより詳細に以下に述べられる。図５はプロトコルの概観を示す。図６は、プロトコルの態様を変換するデータを示す。図７は、プロトコルの帯域幅測定及びフォーマット選択の態様を示す。
【００５２】
図５から始めると、音声獲得動作の最初に、音声サービスは、エンドポイント・モジュール４１６へ発呼して、記録動作を開始する。これは開始（）方法（Start() method）を呼び出すことにより行われる。記録を始めるために、エンドポイント・モジュール４１６は、ＴＳクライアント装置４０２と情報交換を開始する。より具体的には、ＴＳサーバー装置４０４は、ＴＳクライアント装置４０２に対して動的仮想チャネル（４１２、４２６）を開き、ＴＳクライアント装置４０２とバージョン情報及びフォーマット情報を交換する。１つの例示的な場合において、ネットワーク性能情報がこのフォーマット情報の交換の過程で抽出されてもよく、この性能情報は帯域幅を推定するために使用することができ、それは今度はデータの圧縮及び解凍の際の使用のための最初のフォーマットを選択するために使用することができる。この点において、ＴＳサーバー装置４０４は、音声データの獲得を開始するようＴＳクライアント装置４０２に要求する。
【００５３】
ＴＳクライアント装置４０２は、ＴＳサーバー装置４０４への音声データの送信を開始する。図６はこの動作をより詳しく説明する。最初に、ＴＳクライアント装置４０２は、マイクロホンからの音声データを獲得する。次に、ＴＳクライアント装置４０２は、選択された圧縮フォーマットを使用して、獲得された音声データを圧縮する。ＴＳクライアント装置４０２はＴＳサーバー装置４０４に圧縮した音声データを送信し、これに際して、ＴＳサーバー装置４０４はこのデータを受け取り、選択されたフォーマットを使用してそれを解凍する。ＴＳサーバー装置４０４は、エンドポイント・モジュール４１６に関連したバッファに解凍された音声データを入れる。音声エンジン４１８はエンドポイント・モジュール４１６から音声データを検索する。
【００５４】
図５に戻り、音声記録の終了において、音声エンジン４１８は、記録を止めるためにエンドポイント・モジュール４１６へ発呼を行う。仮想チャネル（４１２、４２６）は閉じられ、これに際してデータ記録はＴＳクライアント装置４０２において止められる。
【００５５】
最後に、図７は、データ送信の間に帯域幅を測定し、利用可能な帯域幅に最も適するようにフォーマットを調節するための１つのプロトコルを説明する。図示されるように、ＴＳクライアント装置４０２は、より大きなデータメッセージが後に続く短い通知メッセージをＴＳサーバー装置４０４に送信する。より大きなメッセージがサイズＳを有する一方、短いメッセージは無視できるサイズを有する。より大きなメッセージは、実際の音声データの１つ以上のパケットの送信を含んでもよい。あるいは、より大きなメッセージは非音声データを含むことができる。
【００５６】
ＴＳサーバー装置４０４は、短いメッセージ及びより長いデータメッセージの受信に関連したタイムスタンプを記録する。このタイムスタンプ情報（及びより大きなデータメッセージのサイズＳ）に基づいて、ＴＳサーバー装置４０４は、上述の方法で帯域幅を測定し、次に、測定された帯域幅に最も適しているフォーマットを選択する。
【００５７】
ＴＳサーバー装置４０４は、次にＴＳクライアント装置４０２にフォーマット選択メッセージを送信する。（１つの場合では、ＴＳサーバー装置４０４は、単にフォーマットの変更についてのフォーマット選択メッセージを送信する。）１つの場合では、フォーマット変更メッセージがＴＳクライアント装置４０２に達する前に、ＴＳサーバー装置４０４は、ＴＳクライアント装置４０２からの短いメッセージ及びより大きなメッセージの複数のペアを受け取ってもよい。ＴＳサーバー装置４０４からフォーマット変更メッセージを受け取ると、ＴＳクライアント装置４０２は、音声データを圧縮するために使用しているフォーマットを正式に変更する。その後、ＴＳクライアント装置４０２は、変更完了通知メッセージをＴＳサーバー装置４０４に送信し、これに際して、ＴＳサーバー装置４０４は、ＴＳクライアント装置４０２から受け取る音声データを解凍するために使用される解凍フォーマットに対して、対応する変更を行う。
【００５８】
上記の処理は、ＴＳクライアント装置４０２からＴＳサーバー装置４０４への音声データの送信の間、周期的に繰り返される。
Ｂ．２．  音声再生
音声再生の場合は音声獲得の場合に類似する。両方の解決策とも、音声エンジン４１８によって事例を挙げて説明される音声エンドポイント・モジュール４１６を実施する。エンドポイント・モジュール４１６は、音声データをリダイレクトするために、ＴＳクライアント装置４０２に対して仮想チャネル（４１２、４２６）を開く。
動作において、ＴＳサーバー装置４０４は、その利用可能なフォーマットを列挙し、ＴＳクライアント装置４０２にこのリストを送る。ＴＳクライアント装置４０２はこのリストを調査し、（自身がサポートする音声能力とともに）自身がサポートするフォーマットのリストを返す。その後、ＴＳサーバー装置４０４は、上述の方法における後の使用のため、これらのフォーマットをキャッシュに格納する。ＴＳサーバー装置４０４はまた、利用可能な帯域幅の最初の推定を形成するため、様々な設定メッセージ又は構成メッセージを使用することができる。
【００５９】
システム４００は、音声獲得のための上述のものと類似する方法で音声再生の場合において帯域幅を計算する。すなわち、ＴＳサーバー装置４０４は、より大きなメッセージが後に続く小さなメッセージをＴＳクライアント装置４０２に送信する。より大きなメッセージは、再生用の音声データ又は他の種類のデータを含んでもよい。ＴＳクライアント装置４０２は、これらの２つのメッセージが受け取られるタイミングを記録することができる。ＴＳクライアント装置４０２は、１つ以上の確認メッセージで、ＴＳサーバー装置４０４に対してこのタイミング情報を伝えることができる。例えば、１つの実施例では、ＴＳクライアント装置４０２は、より大きなデータメッセージの受信を示すために確認メッセージを送信することができる。タイミング情報を受信すると、ＴＳサーバー装置４０４は上述された同じ方法で帯域幅を計算することができる。
【００６０】
その後、ＴＳサーバー装置４０４は、測定された帯域幅に最も適している適切なフォーマットを選択することができる。ＴＳサーバー装置４０４は、音声獲得の場合について上述されたものと類似する方法で、そのフォーマット選択を伝え、実行することができる。この点の後、システム４００は、（利用可能な帯域幅の大幅な変化に際して新しいフォーマットが選択されるまで、）選択されたフォーマットを使用して音声データを圧縮及び解凍することができる。
【００６１】
最後に、多くの特徴が対処することができる例示的な問題を最初に識別することにより、多くの特徴が本明細書において記述された。このような説明は、他者がここに指定された方法で問題を理解し及び／又は明確に述べたという承認を構成しない。関連する技術に存在する問題の理解及び明確な表現は、本発明の一部として理解されるべきものである。
【００６２】
より一般的にいえば、本発明は、構造的な特徴及び／又は方法論の行為に特有の言葉で述べられたが、添付の特許請求の範囲において規定される発明は特定の特徴または行為に必ずしも制限されないことを理解すべきである。そのようなものではなく、特定の特徴及び行為は特許請求される発明を実施する例示的な形式として開示されるものである。
【図１】
2010520665.tif 000003
【図２】
2010520665.tif 000004
【図３】
2010520665.tif 000005
【図４】
2010520665.tif 000006
【図５】
2010520665.tif 000007
【図６】
2010520665.tif 000008
【図７】
2010520665.tif 000009
【国際調査報告】
2010520665.tif 000010
2010520665.tif 000011