(57)【要約】リアルタイム通信イベントのデータを処理する受信機、コンピュータ・プログラム製品、及び方法。受信機の処理モジュールは、リアルタイム通信イベントのデータ・ストリームを受信するリアルタイム通信アプリケーションを実施する。リアルタイム通信イベントにおける受信したデータ・ストリームのデータがユーザに出力される。リアルタイム通信イベント中のリアルタイム通信アプリケーションとのユーザのインタラクションが判定され、判定されたインタラクションに基づいて、リアルタイム通信イベントにおける受信したデータ・ストリームのデータ・レートが制御される。
2015532019.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイム通信イベントのデータを処理するよう構成された受信機であって、当該受信機は、
前記リアルタイム通信イベントのデータ・ストリームを受信し、
前記リアルタイム通信イベントにおける前記の受信したデータ・ストリームのデータをユーザに出力し、
前記リアルタイム通信イベント中の前記リアルタイム通信アプリケーションとの前記ユーザのインタラクションを判定し、
前記の判定したインタラクションに基づいて、前記リアルタイム通信イベントにおける前記の受信したデータ・ストリームのデータ・レートを制御する
リアルタイム通信アプリケーションを実施するよう構成された処理モジュールを含む、
受信機。
【請求項２】
前記リアルタイム通信イベントにおける前記の受信したデータ・ストリームの前記データ・レートを制御するために、前記処理モジュールは、前記リアルタイム通信イベントにおける前記データ・ストリームを当該受信機に送信する送信機に制御信号を送信する前記リアルタイム通信アプリケーションを実施するよう構成され、前記制御信号が、（ｉ）目標データ・レートのインジケーション、又は、（ｉｉ）前記の判定したインタラクションのインジケーションを含むことにより、前記送信機は、前記の判定したインタラクションに基づいて、目標データ・レートを決定することが可能となる、
請求項１記載の受信機。
【請求項３】
前記リアルタイム通信アプリケーションとの前記ユーザのインタラクションを判定するために、前記処理モジュールは、前記ユーザが前記リアルタイム通信イベントにおける伝送のために前記リアルタイム通信アプリケーションにデータを入力しているかどうかを判定する前記リアルタイム通信アプリケーションを実施するよう構成されている、
請求項１又は２記載の受信機。
【請求項４】
前記ユーザが前記リアルタイム通信イベントにおける伝送のために前記リアルタイム通信アプリケーションにデータを入力しているかどうかを判定するために、前記処理モジュールは、
前記ユーザが当該受信機においてマイクロフォンをミュートにしたかどうかを判定すること、
前記ユーザが当該受信機においてリスニング・モードをアクティブ化したかどうかを判定すること、及び
前記ユーザからオーディオ入力及びビデオ入力のうち少なくとも１つを検出すること
のうち少なくとも１つを実行する前記リアルタイム通信アプリケーションを実施するよう構成されている、
請求項３記載の受信機。
【請求項５】
前記リアルタイム通信アプリケーションとの前記ユーザのインタラクションを判定するために、前記処理モジュールは、遅延が前記リアルタイム通信イベントにおける通信の問題を引き起こしているかどうかを判定する前記リアルタイム通信アプリケーションを実施するよう構成されている、
請求項１乃至４いずれか一項記載の受信機。
【請求項６】
前記処理モジュールは、
前記リアルタイム通信イベントにおいてデータ・ストリームを送信し、
前記の判定したインタラクションに基づいて、前記リアルタイム通信イベントにおける前記の送信したデータ・ストリームのデータ・レートを制御する
前記リアルタイム通信アプリケーションを実施するようさらに構成されている、
請求項１乃至５いずれか一項記載の受信機。
【請求項７】
前記リアルタイム通信アプリケーションとの前記ユーザのインタラクションを判定するために、前記処理モジュールは、前記ユーザの注意が前記の出力したデータに向けられているかどうかを判定する前記リアルタイム通信アプリケーションを実施するよう構成されている、
請求項１乃至６いずれか一項記載の受信機。
【請求項８】
前記の受信したデータ・ストリームは、ビデオ・データ及びオーディオ・データを含み、前記処理モジュールは、
（ｉ）前記ユーザが、前記リアルタイム通信イベントにおける伝送のために、当該受信機におけるカメラによりキャプチャされた画像内に存在しないことを検出し、この検出に基づいて、前記ユーザが、前記の受信したデータ・ストリームの前記ビデオ・データを見ていないと判定すること、又は
（ｉｉ）当該受信機において前記の受信したデータ・ストリームの前記ビデオ・データを出力する前記リアルタイム通信アプリケーションのユーザ・インタフェースが、最小化されているか、隠されているか、又は焦点ずれしていると判定すること
により、前記ユーザの注意が前記の出力したデータに向けられていないと判定する前記リアルタイム通信アプリケーションを実施するよう構成されている、
請求項７記載の受信機。
【請求項９】
リアルタイム通信イベントのデータを処理するよう構成されたコンピュータ・プログラム製品であって、当該コンピュータ・プログラム製品は、非一時的なコンピュータ読み取り可能な媒体上に具現化され、前記リアルタイム通信イベントの受信機のプロセッサ上で実行されたとき、
前記リアルタイム通信イベントのデータ・ストリームを受信する動作と、
前記リアルタイム通信イベントにおける前記の受信したデータ・ストリームのデータをユーザに出力する動作と、
前記リアルタイム通信イベント中の前記リアルタイム通信アプリケーションとの前記ユーザのインタラクションを判定する動作と、
前記の判定したインタラクションに基づいて、前記リアルタイム通信イベントにおける前記の受信したデータ・ストリームのデータ・レートを制御する動作と、
を実行するリアルタイム通信アプリケーションを実施するよう構成されている、
コンピュータ・プログラム製品。
【請求項１０】
受信機においてリアルタイム通信アプリケーションを用いて、リアルタイム通信イベントのデータを処理する方法であって、
前記リアルタイム通信イベントのデータ・ストリームを受信するステップと、
前記リアルタイム通信イベントにおける前記の受信したデータ・ストリームのデータをユーザに出力するステップと、
前記リアルタイム通信イベント中の前記リアルタイム通信アプリケーションとの前記ユーザのインタラクションを判定するステップと、
前記の判定したインタラクションに基づいて、前記リアルタイム通信イベントにおける前記の受信したデータ・ストリームのデータ・レートを制御するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイム通信に関する。詳細には、本発明は、リアルタイム通信イベントのデータを処理することに関する。
【背景技術】
【０００２】
リアルタイム通信システムにより、リアルタイム通信イベントが、リアルタイム通信システムにおけるエンド・ポイント間を進むことが可能となる。例えば、リアルタイム通信イベントのエンド・ポイントが、それぞれのユーザに関連付けられたユーザ端末である場合、リアルタイム通信イベント（例えば、音声通話又はビデオ通話）により、リアルタイム通信が、ユーザ間で発生することが可能になる。リアルタイム通信イベントの各エンド・ポイントは、リアルタイム通信イベントを処理するために、リアルタイム通信アプリケーションを実施する。データ・ストリームが、ネットワークを介して、リアルタイム通信イベントのエンド・ポイント間で伝送される。例えば、ネットワークは、インタネット等のパケットベースのネットワークとすることができ、データ・ストリームは、例えば、インタネット・プロトコル（ＩＰ）に従ってパケット化され処理された一連のデータ・パケットを含み得る。代替として、又は追加的に、ネットワークは、携帯電話ネットワーク又は公衆交換電話網（ＰＳＴＮ）等の他のタイプのネットワークを含んでもよい。
【０００３】
リアルタイム通信イベントにおいて送信されるデータ・ストリームのデータ・レートの増大は、リアルタイム通信イベントの受信機において受信されるデータのより高い品質をもたらし得る。例えば、リアルタイム通信イベントがビデオ会議イベントである場合、ビデオ・データのために使用されるより高いデータ・レート（すなわち、より高い帯域幅）により、受信機においてより高い品質のビデオ信号を受信して出力することが可能となる。より高い品質のビデオ信号は、例えば、より高いフレーム・レート、解像度又はサイズを有し得る。それにより、より多くのデータが送信される必要がある。いくつかの状況において、リアルタイム通信イベントにおけるデータ・ストリームのデータ・レート（すなわち、帯域幅）を増大させることが有用であり得る。しかしながら、リアルタイム通信システムは、エンド・ポイント間の通信のために、限られたリソースしか有していない。したがって、リアルタイム通信イベントにおけるデータ・ストリームのデータ・レート（すなわち、帯域幅）の増大は、リアルタイム通信イベントの受信機におけるデータ・ストリームのデータの受信における遅延を発生させ得る。この遅延は、いくつかの状況において、弊害をもたらし得る。遅延は、リアルタイム通信イベントである通信イベントにとって、特に弊害をもたらし得る。というのは、遅延は、満足のいくようにリアルタイムに機能する通信イベントの能力に影響を及ぼし得るからである。伝送パスにおける遅延の存在は、本明細書において、レイテンシ（latency）と呼ばれることがある。例えば、リアルタイム通信イベントが、２人のユーザが会話している通話である場合、その通話の２つのエンド・ポイント間のデータ・ストリームの伝送における数百ミリ秒以上の遅延は、会話の流れに悪影響を及ぼすことがあり、両ユーザが同時に話して互いに気付かずに邪魔をするダブルトーク（doubletalk）のより頻繁な状況をもたらし得る。したがって、リアルタイム通信システムにおいて、リアルタイム通信アプリケーションは、データ・ストリームの伝送における帯域幅とレイテンシとの間のトレード・オフを生じさせる。例えば、ビデオ会議において、消費される帯域幅が高いほど、復号化ビデオ・データの品質は高くなるが、これは、増大したレイテンシを費やすことになる。
【０００４】
いくつかの帯域幅制御方法は、「遅延適応的（delay  adaptive）」であり、リアルタイム通信イベントにおける目標ラウンドトリップ又はエンド・ツー・エンドの遅延を定めて、その目標遅延を満たすために伝送レートを調整し得る。目標遅延は、ネットワーク条件に応じて、予め定められているか、又は適応的である。
【発明の概要】
【０００５】
この概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択したものを簡略化した形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。
【０００６】
発明者らは、リアルタイム通信イベントにおけるデータ・ストリームのデータ・レート（すなわち、帯域幅）は、リアルタイム通信イベントにおけるユーザのインタラクションに基づいて制御することができることを認識した。詳細には、帯域幅とレイテンシとの間の最適なトレード・オフは、ユーザがどのようにリアルタイム通信アプリケーションを使用しているかに依拠し得る。したがって、帯域幅とレイテンシとの間の最適なトレード・オフは、ユーザがどのようにリアルタイム通信アプリケーションを使用しているかに基づいて決定され得る。例えば、ユーザが積極的にインタラクトしていない場合、レイテンシは関心が低いものであり得、したがって、リアルタイム通信アプリケーションは帯域幅使用を増大させ得る。リアルタイム通信アプリケーションとのユーザのインタラクションが、リアルタイム通信イベントにおけるデータ・ストリームのレイテンシと帯域幅との間のトレード・オフをより良く制御するために、モニタリングされ使用され得る。
【０００７】
リアルタイム通信アプリケーションは、リアルタイム通信イベントの受信機において実施され得る。リアルタイム通信アプリケーションは、リアルタイム通信イベントのデータを処理することができる。詳細には、リアルタイム通信アプリケーションは、リアルタイム通信イベントのデータ・ストリームを受信して、受信したデータ・ストリームのデータをユーザに出力することができる。リアルタイム通信イベント中のリアルタイム通信アプリケーションとのユーザのインタラクションを判定することができ、判定したインタラクションに基づいて、受信したデータ・ストリームのデータ・レートを制御することができる。
【０００８】
リアルタイム通信アプリケーションとのユーザのインタラクションに基づいて受信データ・ストリームのデータ・レートを制御することにより、ユーザがリアルタイム通信イベントと現在インタラクトしている態様に適するように、帯域幅とレイテンシとの間のトレード・オフを適応させることができる。したがって、ユーザが増大したレイテンシに特に敏感な態様でインタラクトしている場合（例えば、ユーザが通話において喋っている場合）、データ・レートを比較的低く設定することができる。それにより、ユーザが増大したレイテンシにあまり敏感でない場合（例えば、ユーザが通話において喋っていない場合）と比較して、レイテンシを比較的低く設定することができる。同様に、ユーザが受信データの増大した品質に特に敏感な態様でインタラクトしている場合（例えば、ユーザがビデオ通話において受信されたビデオ・データを積極的に見ている場合）、データ・レートを比較的高く設定することができる。それにより、ユーザが受信データの増大した品質にあまり敏感でない場合（例えば、ユーザの注意がビデオ通話において受信されたビデオ・データに向けられていない場合）と比較して、受信データの品質を増大させることができる。
【図面の簡単な説明】
【０００９】
本発明のより良い理解のため、及び本発明がどのように実施され得るかを示すために、例として図面が参照される。
【図１】２つのユーザ端末を含む通信システムを示す図。
【図２】ユーザ端末の概略図。
【図３ａ】リアルタイム通信イベントにおいてデータを受信するプロセスのフローチャート。
【図３ｂ】リアルタイム通信イベントにおいてデータを送信するプロセスのフローチャート。
【図３ｃ】リアルタイム通信イベントを制御するプロセスのフローチャート。
【発明を実施するための形態】
【００１０】
本発明の好ましい実施形態について、例として説明する。
【００１１】
図１は、第１のユーザ端末１０２に関連付けられた第１のユーザ１０４と、第２のユーザ端末１０８に関連付けられた第２のユーザ１１０とを含むリアルタイム通信システム１００を示している。他の実施形態では、通信システム１００は、任意の数のユーザ及び関連ユーザ端末を含んでもよい。ユーザ端末１０２及びユーザ端末１０８は、通信システム１００において、ネットワーク１０６を介して通信することができ、それにより、ユーザ１０４及びユーザ１１０は、ネットワーク１０６を介して、互いに通信することが可能となる。好ましい実施形態において、通信システム１００は、パケットベースのＰ２Ｐ通信システムであるが、非Ｐ２Ｐシステム、ＶｏＩＰシステム、又はＩＭシステム等の他のタイプの通信システムが使用されてもよい。ネットワーク１０６は、例えば、インタネット、又は（ＰＳＴＮ又は携帯電話ネットワークといった）電話網等の別のタイプのネットワークとすることができる。ユーザ端末１０２及びユーザ端末１０８の各々は、例えば、携帯電話機、タブレット、ラップトップ、パーソナル・コンピュータ（「ＰＣ」）（例えば、Ｗｉｎｄｏｗｓ（登録商標）、Ｍａｃ  ＯＳ（登録商標）、及びＬｉｎｕｘ（登録商標）ＰＣを含む）、ゲーミング・デバイス、テレビジョン、携帯情報端末（「ＰＤＡ」）、又は、ネットワーク１０６に接続することができる他の組み込みデバイスとすることができる。ユーザ端末１０２は、ユーザ端末１０２のユーザ１０４から情報を受信し、ユーザ１０４に情報を出力するよう構成されている。ユーザ端末１０２は、ディスプレイ及びスピーカ等の出力デバイスを備える。ユーザ端末１０２はまた、キーパッド、タッチ・スクリーン、オーディオ信号を受信するためのマイクロフォン、及び／又はビデオ信号の画像をキャプチャするためのカメラ等の入力デバイスを備える。ユーザ端末１０２は、ネットワーク１０６に接続される。
【００１２】
ユーザ端末１０２は、通信システム１００に関連付けられたソフトウェア・プロバイダにより提供される通信クライアントを実行する。通信クライアントは、ユーザ端末１０２内のローカル・プロセッサ上で実行されるソフトウェア・プログラムである。通信クライアントは、ユーザ端末１０２が通信システム１００を介してデータを送受信するために、ユーザ端末１０２において必要とされる処理を実行する。ユーザ端末１０２において実行される通信クライアントは、（例えば、ユーザ１０４が通信システムの本物のサブスクライバであることを証明するために、）デジタル証明書を提示することにより、通信システムを介して通信するために認証され得る。
【００１３】
ユーザ端末１０８は、ユーザ端末１０２に対応し得る。ユーザ端末１０８は、ユーザ端末１０２において実行される通信クライアントと対応する通信クライアントをローカル・プロセッサ上で実行する。ユーザ端末１０８における通信クライアントは、ユーザ端末１０２における通信クライアントが、ユーザ１０４がネットワーク１０６を介して通信することを可能にするために必要とされる処理を実行するのと同様に、ユーザ１１０がネットワーク１０６を介して通信することを可能にするために必要とされる処理を実行する。ユーザ端末１０２及びユーザ端末１０８は、リアルタイム通信システム１００におけるエンド・ポイントである。図１は、明瞭さのため、２人のユーザ（１０４及び１１０）と、２つのユーザ端末（１０２及び１０８）としか示していないが、より多くのユーザ及びユーザ端末が通信システム１００に含まれてもよく、より多くのユーザが、それぞれのユーザ端末上で実行されるそれぞれの通信クライアントを用いて、通信システム１００を介して通信してもよい。
【００１４】
図２は、通信システム１００を介して通信するために通信クライアントが実行されるユーザ端末１０２の詳細な図を示している。ユーザ端末１０２は、中央処理装置（「ＣＰＵ」）又は「処理モジュール」２０２を備える。ＣＰＵ２０２には、スクリーン等のディスプレイ２０４、スピーカ２１１、データを記憶するためのメモリ２１２、並びに、キーパッド２０６、カメラ２０８、及びマイクロフォン２１０等の入力デバイスが接続される。ディスプレイ２０４、キーパッド２０６、カメラ２０８、マイクロフォン２１０、スピーカ２１１、及びメモリ２１２は、図２に示されるように、ユーザ端末１０２に一体化され得る。代替のユーザ端末では、ディスプレイ２０４、キーパッド２０６、カメラ２０８、マイクロフォン２１０、スピーカ２１１、及びメモリ２１２のうちの１以上が、ユーザ端末１０２に一体化されず、それぞれのインタフェースを介してＣＰＵ２０２に接続され得る。そのようなインタフェースの一例がＵＳＢインタフェースである。ＣＰＵ２０２は、ネットワーク１０６と通信するためのモデム等のネットワーク・インタフェース２２４に接続される。ネットワーク１０６に対するユーザ端末１０２の接続が無線接続である場合、ネットワーク・インタフェース２２４は、信号を無線によりネットワーク１０６に送信し信号を無線によりネットワーク１０６から受信するためのアンテナを含み得る。ネットワーク・インタフェース２２４は、図２に示されるように、ユーザ端末１０２に一体化され得る。代替のユーザ端末では、ネットワーク・インタフェース２２４は、ユーザ端末１０２に一体化されない。
【００１５】
図２はまた、ＣＰＵ２０２上で実行されるオペレーティング・システム（「ＯＳ」）２１４も示している。通信システム１００のクライアント・ソフトウェアのソフトウェア・スタック２１６が、ＯＳ２１４の上で実行される。ＣＰＵ２０２上で実行されると、クライアント・ソフトウェアは、以下でより詳細に説明するように、リアルタイム通信アプリケーションを実施する。ソフトウェア・スタックは、クライアント・プロトコル・レイヤ２１８、クライアント・エンジン・レイヤ２２０、及びクライアント・ユーザ・インタフェース・レイヤ（「ＵＩ」）２２２を示している。各レイヤは、特定の機能の役割を担う。各レイヤは、通常、他の２つのレイヤと通信するので、それらのレイヤは、図２に示されるように、スタック状に配置されるものとみなされる。オペレーティング・システム２１４が、コンピュータのハードウェア・リソースを管理して、ネットワーク１０６に／からネットワーク・インタフェース２２４を介して送信／受信されるデータを処理する。クライアント・ソフトウェアのクライアント・プロトコル・レイヤ２１８は、オペレーティング・システム２１４と通信し、通信システムを介した接続を管理する。より高いレベルの処理を必要とするプロセスが、クライアント・エンジン・レイヤ２２０に渡される。クライアント・エンジン２２０は、クライアント・ユーザ・インタフェース・レイヤ２２２と通信する。クライアント・エンジン２２０は、クライアントのユーザ・インタフェースを介してユーザ１０４に情報を提示しユーザ・インタフェースを介してユーザ１０４から情報を受信するために、クライアント・ユーザ・インタフェース・レイヤ２２２を制御するよう構成され得る。
【００１６】
ユーザ端末１０８は、上述したユーザ端末１０２と同様に実装され、ユーザ端末１０８は、ユーザ端末１０２に関して本明細書で説明した要素と対応する要素を有し得る。
【００１７】
図３ａ〜図３ｃに示されるフローチャートを参照して、以下で、ユーザ端末１０２がリアルタイム通信システム１００を介したリアルタイム通信イベントにおいてどのようにデータを処理するかについて説明する。以下で説明する例において、ユーザ１０４は、ユーザ端末１０８を使用するユーザ１１０との音声通話又はビデオ通話といったリアルタイム通信イベントと関与するために、ユーザ端末１０２を使用する。リアルタイム通信イベントにおいて、データ・ストリームが、ユーザ端末１０２とユーザ端末１０８との間で、ネットワーク１０６を介して、一方向に又は双方向に送信され得る。ユーザ端末１０２は、ユーザ端末１０８からデータ・ストリームを受信する場合、リアルタイム通信イベントにおける受信機として動作する。ユーザ端末１０２は、ユーザ端末１０８にデータ・ストリームを送信する場合、リアルタイム通信イベントにおける送信機として動作する。
【００１８】
図３ａは、ユーザ端末１０２がリアルタイム通信イベントにおける受信機として動作する場合の、ユーザ端末１０２により取られるステップを簡単に示している。ステップＳ３０２において、データ・ストリームが、ユーザ端末１０８からネットワーク１０６を介して、ネットワーク・インタフェース２２４を用いてユーザ端末１０２において受信される。データ・ストリームは、オーディオ・データ及び／又はビデオ・データ及び／又はリアルタイム通信イベントにおいて使用される他の適切なデータを含み得る。データ・ストリーム内のデータは、ネットワークを介した伝送のための適切なプロトコルに従って、ネットワーク１０６を介して送信される。例えば、ネットワーク１０６がインタネットである場合、データ・ストリーム内のデータは、インタネット・プロトコルに従って受信され得る。受信データ・ストリーム内のデータは、ネットワーク１０６を介した伝送のために、データ・パケットに加工され得る（例えば、符号化されパケット化され得る）。ネットワーク１０６を介した伝送のためにデータを処理する方法は、当技術分野では知られたものであり、本明細書では詳細に説明しない。
【００１９】
ステップＳ３０４において、受信データ・ストリームのデータが、ユーザ端末１０２からユーザ１０４に出力される。例えば、受信データ・ストリームからのビデオ・データ（及び／又はテキスト・データ等の他のビジュアル・データ）が、ユーザ端末１０２のディスプレイ２０４から出力され得る。受信データ・ストリームからのオーディオ・データが、ユーザ端末１０２のスピーカ２１１から出力され得る。データを出力するステップＳ３０４は、データを出力する前に、受信データを処理すること（例えば、脱パケット化してデータを復号化すること）を含み得る。データを出力する前の受信データに対して実行される処理は、ネットワーク１０６を介してデータを送信する前にデータに対して実行される処理に対応するものである。データを出力する前の受信データ・ストリームのデータを処理する方法は、当技術分野では知られたものであり、本明細書では詳細に説明しない。
【００２０】
図３ｂは、ユーザ端末１０２がリアルタイム通信イベントにおける送信機として動作する場合の、ユーザ端末１０２により取られるステップを簡単に示している。ステップＳ３０６において、ユーザ端末１０２は、ユーザ１０４から、リアルタイム通信イベントにおいてユーザ端末１０８に送信するための入力を受信する。例えば、ユーザ入力は、マイクロフォン２１０において受信されるオーディオ信号とすることができる。ユーザ入力は、カメラ２０８によりキャプチャされる画像信号又はビデオ信号であってもよい。カメラ２０８によりキャプチャされる画像は、ユーザ１０４の画像を含んでもよいし、含まなくてもよい。例えば、カメラ２０８が、ユーザ１０４の画像を含むビデオ信号のフレームをキャプチャする場合、ビデオ信号は、ビデオ通話においてユーザ端末１０８に送信することができ、それにより、ユーザ１１０は、ビデオ通話においてユーザ１０２の画像を見ることが可能となる。ステップＳ３０６において受信されるユーザ入力は、キーパッド２０６又はディスプレイ２０４上のタッチ・スクリーンを介して入力されるデータ（例えば、テキスト・データ）等の他のタイプの入力を含んでもよい。
【００２１】
ステップＳ３０８において、ユーザ入力が、ユーザ端末１０２において、リアルタイム通信イベントにおいてネットワーク１０６を介してユーザ端末１０８に送信するのに適したフォーマットに加工される。例えば、ネットワーク１０６がインタネットである場合、ユーザ入力は、上述したように、インタネット・プロトコルに従って、データ・パケットに加工され得る。例えば、ユーザ入力が、ユーザ１０４のスピーチを含むオーディオ信号である場合、ステップＳ３０８は、スピーチ・コーデックを用いスピーチ符号化スキームに従って、オーディオ入力を符号化することを含み得る。同様に、ユーザ入力がビデオ信号である場合、ステップＳ３０８は、ビデオ・コーデックを用いビデオ符号化スキームに従って、ビデオ入力を符号化することを含み得る。上述したように、ネットワーク１０６を介した伝送のためにユーザ入力を処理する方法は、当技術分野では知られたものであり、本明細書ではより詳細に説明しない。
【００２２】
ステップＳ３１０において、ステップＳ３０８で加工されたデータが、リアルタイム通信イベントにおいて、ユーザ端末１０２からネットワーク１０６を介してユーザ端末１０８に送信される。これは、ネットワーク・インタフェース２２４を用いてデータをネットワーク１０６に送信することを含む。
【００２３】
データは、データ・ストリームのためのデータ・レートに応じて処理され送信される。上述したように、データ・ストリームのデータ・レートとレイテンシとの間にはトレード・オフが存在する。
【００２４】
リアルタイム通信イベントが進むと、リアルタイム通信イベントとのユーザ１０４のインタラクションに基づいて、詳細には、ユーザ端末１０２において実行されるクライアント・ソフトウェアにより実施されるリアルタイム通信アプリケーションとのユーザ１０４のインタラクションに基づいて、リアルタイム通信イベントにおいて送信されるデータ・ストリームのデータ・レートを制御するために、図３ｃに示される方法ステップが実施される。
【００２５】
ステップＳ３１２において、リアルタイム通信アプリケーションとのユーザ１０４のインタラクションが判定される。以下でより詳細に説明するように、ユーザのインタラクションの様々な態様が、ステップＳ３１２において判定され得る。
【００２６】
ステップＳ３１４において、リアルタイム通信イベントにおける受信データ・ストリームのデータ・レートが、ステップＳ３１２で判定されたユーザのインタラクションに基づいて制御される。いくつかの実施形態では、ステップＳ３１４において、リアルタイム通信イベントにおける送信データ・ストリームのデータ・レートが、ステップＳ３１２で判定されたユーザのインタラクションに基づいて制御されてもよい。
【００２７】
これにより、ユーザが実際に通信イベントとどのようにインタラクトしているかに基づいて、帯域幅とレイテンシとの間の最適なトレード・オフを制御することが可能となる。例えば、ユーザ１０４の注意が、ビデオ通話において、ユーザ端末１０８から送信されたビデオ・データに向けられている場合、受信ビデオ・データの品質は、ユーザ１０４の注意がビデオ・データに向けられていない場合よりも重要である。したがって、ビデオ通話においてユーザ端末１０２で受信されるビデオ・データのデータ・レートは、ユーザ１０４の注意がビデオ・データに向けられていない場合よりもユーザ１０４の注意がビデオ・データに向けられている場合の方が高くなるよう制御される。別の例として、ユーザ１０４が、通話において、ユーザ１１０と通信していない場合（例えば、ユーザ１０４が、マイクロフォン２１０をミュートにしたか、若しくは、ユーザ１０４が通話の反対側（far  side）にオーディオ・データを送信することを意図しない「リスニング・モード（listening  mode）」を開始した場合、又は、ユーザ１０４が、音声通話において喋らない場合）、ユーザ端末１０２において受信されるデータ信号のために小さなレイテンシを維持することは、ユーザ１０４が積極的に通話にインタラクトしてオーディオ・データを通話の反対側に送信する場合ほど重要ではない。したがって、通話においてユーザ端末１０２で受信されるデータ信号のデータ・レートは、ユーザ１０４が通話においてユーザ１１０と通信している場合よりもユーザ１０４が通話においてユーザ１１０と通信していない場合の方が高くなるよう制御される。
【００２８】
受信データ・ストリーム及び／又は送信データ・ストリームのデータ・レートを制御するために、ユーザ端末１０２におけるリアルタイム通信アプリケーションは、データ・レートの目標値を決定するためのデータ・レート制御方法を実施する。目標値は、目標データ・レート自体であってもよいし、ステップＳ３０８において目標データ・レートを決定することができる別の値であってもよい。例えば、目標値は、データ・ストリームが超えるべきではない目標キュー・サイズ（target  queue  size）ＮＱであってよい。受信データ・ストリームのデータ・レートを制御するために、データ・ストリームのデータがリアルタイム通信イベントにおいてユーザ端末１０２で受信される前に、ユーザ端末１０２から、データ・ストリームのデータを処理するネットワーク１０６内のノードに、制御信号が送信され得る。制御信号は、目標データ・レートのインジケーションを含み得る（例えば、インジケーションは、目標データ・レート自体であってもよいし、ノードが目標データ・レートを決定することができる上述した目標キュー・サイズＮＱであってもよい）。それにより、ノードは、リアルタイム通信イベントにおいて、目標データ・レートでデータ・ストリームを送信することが可能となる。例えば、ノードは、リアルタイム通信イベントの送信機とすることができる、すなわち、本明細書で説明した例におけるユーザ端末１０８とすることができる。あるいは、ノードは、ネットワーク１０６内の中間ノードであってよく、データ・ストリームは、ユーザ端末１０８から中間ノードを介してユーザ端末１０２に送信される。
【００２９】
送信データ・ストリームのデータ・レートを制御するために、データ・レートの目標値のインジケーションが、ユーザ端末１０８から受信され得る。目標値は、ステップＳ３０８において使用される、ユーザ入力をデータ・ストリームに加工するためのアルゴリズムに提供される。データ・ストリームが目標データ・レートを有するように、目標値がステップＳ３０８において使用される。
【００３０】
ユーザ端末１０２においてクライアント・ソフトウェアにより実施されるリアルタイム通信アプリケーションにより実施されるデータ・レート制御方法は、目標キュー・サイズＮＱを使用することができる。帯域幅推定方法が、パケット遅延雑音項（packet  delay  noise  term）ｅｄを用いて、ネットワーク１０６を介したリアルタイム通信イベントに対して利用可能な帯域幅を推定するために使用され得る。ここで、データ・レートは、推定した帯域幅に基づいて制御することができる。これらの方法では、ＮＱ又はｅｄが高いほど、チャネル上で使用されるデータ・レートと遅延との間のトレード・オフ（すなわち、帯域幅とレイテンシとの間のトレード・オフ）における最適なデータ・レートとみなされる送信レートが高くなる。
【００３１】
データ・レートと遅延との間のトレード・オフに影響を及ぼし得るユーザの行動パターンは次のとおりである。ユーザ端末１０２においてクライアント・ソフトウェアにより実施されるリアルタイム通信アプリケーションとのユーザ１０４のインタラクションに関する例について、以下で説明する。こうした例は、データ・レートと遅延との間のトレード・オフにおけるより高い遅延を犠牲にして、より高い最適なデータ・レートをもたらすべきである。
【００３２】
リアルタイム通信アプリケーションとのユーザのインタラクションを判定するために、ユーザ端末１０２（詳細には、ユーザ端末１０２においてクライアント・ソフトウェアにより実施されるリアルタイム通信アプリケーション）は、ユーザ１０４が、リアルタイム通信イベントにおける伝送のために、リアルタイム通信アプリケーションにデータを入力しているかどうかを判定することができる。例えば、ユーザが、リアルタイム通信イベントにおける伝送のために、リアルタイム通信アプリケーションにデータを入力していない場合、リアルタイム通信イベントにおける受信データ・ストリームのデータ・レートが増大されるように、そのデータ・レートが制御され得る。
【００３３】
ユーザが、リアルタイム通信イベントにおける伝送のために、リアルタイム通信アプリケーションにデータを入力しているかどうかを判定するために、ユーザ端末１０２におけるリアルタイム通信アプリケーションは、例えば、（ｉ）ユーザ１０４が、マイクロフォン２１０をミュートにしたかどうかを判定し、（ｉｉ）ユーザ１０４が、ユーザ端末１０２におけるリアルタイム通信アプリケーションにより実施されるリスニング・モードをアクティブ化したかどうかを判定し、且つ／又は、（ｉｉｉ）ユーザ１０４から、オーディオ入力及びビデオ入力のうち少なくとも１つを検出することができる。
【００３４】
ユーザ１０４がマイクロフォン２１０をミュートにしたかどうかに関する判定は、多数の異なる方法により実行され得る。例えば、ユーザ１０４は、リアルタイム通信アプリケーションにおけるインタフェースを用いて、オペレーティング・システム２１４におけるインタフェースを用いて、又は、マイクロフォン２１０を備えるオーディオ・デバイス上の（例えば、ユーザ端末１０２に接続されたヘッドセット上の）ボタン等のコントロールを用いて、マイクロフォン２１０をミュートにすることができる。ユーザが、リアルタイム通信イベント中にマイクロフォン２１０をミュートにした場合、これは、ユーザ１０４が、リアルタイム通信イベントにおいて反対側とインタラクトすることを意図していないことのサインである。
【００３５】
ユーザ１０４がユーザ端末１０２においてリスニング・モードをアクティブ化したかどうかを判定するために、リアルタイム通信アプリケーションは、「リスニング・モード」インタフェースを実装することができ、ユーザ１０４は、「リスニング・モード」インタフェースを介して、ユーザ１０４が反対側とインタラクトすることを意図していないことを、リアルタイム通信アプリケーションに積極的に通知することができる。
【００３６】
ユーザ１０４からオーディオ入力及びビデオ入力のうち少なくとも１つを検出するために、リアルタイム通信アプリケーションは、ユーザ１０４が話をしているかどうか（すなわち、リアルタイム通信イベントにおける伝送のために、オーディオ・データを入力しているかどうか）、又は、動いているかどうか（すなわち、リアルタイム通信イベントにおける伝送のために、ビデオ・データを入力しているかどうか）を判定することができる。これを達成するために、リアルタイム通信アプリケーションは、マイクロフォン２１０を用いて受信されるオーディオ信号における音声アクティビティをモニタすることができ、且つ／又は、カメラ２０８を用いて受信されるビデオ信号におけるビデオ・アクティビティをモニタすることができる。マイクロフォン２１０を用いて受信されるオーディオ信号及びカメラ２０８を用いて受信されるビデオ信号におけるユーザ入力を検出する方法は、当業者には知られたものであり、本明細書では詳細に説明しない。ユーザ入力が、マイクロフォン２１０を用いて受信されるオーディオ信号において、又は、カメラ２０８を用いて受信されるビデオ信号において検出されなかった場合、リアルタイム通信アプリケーションは、ユーザ１０４がリアルタイム通信イベントにおいて反対側とインタラクトしていないと判定することができる。
【００３７】
ユーザ１０４が、リアルタイム通信イベントにおいて反対側とインタラクトしていない場合（例えば、ユーザ１０４が、反対側にデータを送信していない場合）、ユーザ１０４は、ユーザ１０４がリアルタイム通信イベントにおいて反対側とインタラクトしている場合（例えば、反対側にデータを送信している場合）と比較して、受信データ・ストリームに関するレイテンシに対してあまり敏感ではない。したがって、ユーザ１０４が、リアルタイム通信イベントにおいて反対側とインタラクトしていない場合、ユーザ端末１０２において受信されるデータ・ストリームのデータ・レートは増大され得る。すなわち、ユーザ１０４がリアルタイム通信イベントにおいて反対側とインタラクトしている場合（例えば、ユーザが反対側にデータを送信している場合）と比較して、ユーザ１０４がリアルタイム通信イベントにおいて反対側とインタラクトしていない場合（例えば、ユーザが反対側にデータを送信していない場合）において、データ・レート及び遅延の両方が増大されるように、リアルタイム通信イベントにおいてユーザ端末１０２で受信されるデータ・ストリームに関するデータ・レートと遅延との間のトレード・オフが最適化される。ユーザ１０４がリアルタイム通信イベントにおいて現在インタラクトしている態様のため、関連する遅延の増大はあまり重大ではない。
【００３８】
データ・レートと遅延との間のトレード・オフに影響を及ぼし得るユーザの行動パターンはさらに次のとおりである。ユーザ端末１０２においてクライアント・ソフトウェアにより実施されるリアルタイム通信アプリケーションとのユーザ１０４のインタラクションに関する例について、以下で説明する。こうした例は、データ・レートと遅延との間のトレード・オフにおけるより低い最適なデータ・レート、したがって、より低い遅延をもたらすべきである。
【００３９】
リアルタイム通信アプリケーションとのユーザ１０４のインタラクションを判定するために、ユーザ端末１０２（詳細には、ユーザ端末１０２においてクライアント・ソフトウェアにより実施されるリアルタイム通信アプリケーション）は、受信データ・ストリームに関する遅延が、リアルタイム通信イベントにおける通信の問題を引き起こしているかどうかを判定することができる。例えば、受信データ・ストリームに関する遅延が、リアルタイム通信イベントにおける通信の問題を引き起こしている場合、受信データ・ストリームのデータ・レートが低減され得る。それにより、遅延を低減させることが可能となる。遅延がリアルタイム通信イベントにおける通信の問題を引き起こしているかどうかを判定するために、リアルタイム通信アプリケーションは、リアルタイム通信イベントにおいてダブルトーク状態を検出することができる。通話において、高い通信遅延は、ダブルトーク状態、すなわち、通話のユーザが互いに気付かずに邪魔をする状態をもたらし得る。したがって、ダブルトークが検出された場合、リアルタイム通信イベントにおいて両方向に送信されるデータ・ストリームのデータ・レートが低減され得る。それにより、遅延を低減させ、ダブルトークの発生を低減させることができる。例として、通話のユーザが通話中に互いに邪魔をする頻度が閾値頻度（threshold  frequency）を超えた場合、ダブルトーク状態が存在するものと判定され得る。
【００４０】
いくつかの実施形態において、リアルタイム通信イベントの受信端末（例えば、ユーザ端末１０８からデータ・ストリームを受信する受信機として動作する場合のユーザ端末１０２）が、受信端末において実施されるリアルタイム通信アプリケーションとの受信ユーザのインタラクションを判定する。判定したインタラクションに基づいて、受信端末は、本明細書で説明した受信データ・ストリームの目標データ・レート（又は、帯域幅）を決定する。目標データ・レートのインジケーションが、データ・ストリームを受信端末に送信する、リアルタイム通信イベントの送信端末（例えば、送信端末は、ユーザ端末１０２にデータ・ストリームを送信する送信機として動作する場合のユーザ端末１０８である）に送信される。次いで、送信端末は、目標データ・レートに従って、データ・ストリームを受信端末に送信する。こうした実施形態において、受信端末は、受信端末において実施されるリアルタイム通信アプリケーションとのユーザのインタラクションから、目標データ・レートを決定する。
【００４１】
いくつかの実施形態において、判定したインタラクションのインジケーションが、データ・ストリームを受信端末に送信する、リアルタイム通信イベントの送信端末（例えば、送信端末は、ユーザ端末１０２にデータ・ストリームを送信する送信機として動作する場合のユーザ端末１０８である）に送信される。判定したインタラクションに基づいて、送信端末は、本明細書で説明したデータ・ストリームの目標データ・レート（又は、帯域幅）を決定する。次いで、送信端末は、目標データ・レートに従って、データ・ストリームを受信端末に送信する。こうした実施形態において、送信端末は、受信端末において実施されるリアルタイム通信アプリケーションとのユーザのインタラクションから、目標データ・レートを決定する。
【００４２】
したがって、いくつかの実施形態において、送信データ・ストリームのデータ・レートが、受信ユーザ端末において実施されるリアルタイム通信アプリケーションとの受信ユーザのインタラクションに基づいて制御されることが確認できる。リアルタイム通信イベントにおける各方向のデータ・ストリームのデータ・レートが制御され得るように、方法は、リアルタイム通信イベントの各端部において実施され得る。リアルタイム通信イベントは、２以上のエンド・ポイントを含み得る。例えば、システム１００の２人のユーザ間の通話は、２つのエンド・ポイントを有するが、システム１００の複数のユーザ間の会議通話は、それぞれの複数のエンド・ポイントを有し得る。
【００４３】
代替として、送信ユーザ端末は、送信ユーザ端末において実施されるリアルタイム通信アプリケーションとのユーザのインタラクションに基づいて、送信ユーザ端末がリアルタイム通信イベントにおいて送信するデータ・ストリームのデータ・レートを制御してもよい。例えば、ユーザ端末１０２が、ユーザ端末１０２において実施されるリアルタイム通信アプリケーションとのユーザ１０４のインタラクションに基づいて、ユーザ端末１０２がユーザ端末１０８に送信するデータ・ストリームのデータ・レートを制御してもよい。例えば、ユーザ端末１０２において実施されるリアルタイム通信アプリケーションが、通話におけるダブルトーク状態を検出した場合、通話においてユーザ端末１０２からユーザ端末１０８に送信されるデータ・ストリームのデータ・レートが低減され得る。それにより、ダブルトークの発生を低減させるために、送信データ・ストリームにおける遅延を低減させることができる。
【００４４】
リアルタイム通信アプリケーションとのユーザ１０４のインタラクションを判定するために、ユーザ端末１０２（詳細には、ユーザ端末１０２においてクライアント・ソフトウェアにより実施されるリアルタイム通信アプリケーション）は、ユーザの注意が出力したデータに向けられているかどうかを判定することができる。ユーザの注意が出力したデータに向けられていない場合、リアルタイム通信イベントにおける受信データ・ストリームのデータ・レートが低減されるように、そのデータ・レートが制御され得る。
【００４５】
例えば、ユーザ１０４が、ビデオ通話における伝送のために、ユーザ端末１０２におけるカメラ２０８によりキャプチャされた画像内に存在しない場合、ユーザ１０４は、ビデオ通話のビデオ・データに対して注意を向けていないと判定され得る。これは、ユーザ１０４が、ユーザ端末１０２の前におらず、したがって、リアルタイム通信アプリケーションにより出力されたディスプレイ２０４上のビデオ・データを見ていないことのサインであり得る。それに基づいて、ユーザ１０４は、受信データ・ストリームのビデオ・データを見ていないと判定され得る。しかしながら、ユーザ１０４が、オーディオ信号により反対側とまだインタラクトしている可能性が高いので、データ・ストリームの伝送のレイテンシがまだ重要である。したがって、ビデオ品質は、ビデオ通話における遅延よりも関心が低いと判定され、その結果、受信データ・ストリームのデータ・レートが低減され得る。それにより、関連する遅延を低減させることができる。
【００４６】
別の例として、受信データ・ストリームのビデオ・データを出力するリアルタイム通信アプリケーションのユーザ・インタフェースが、ユーザ端末１０２のディスプレイ２０４上で、最小化されているか、隠されているか、又は焦点ずれしている場合、ユーザ１０４は、ビデオ通話のビデオ・データに対して注意を向けていないと判定され得る。こうしたイベントは、ユーザ１０４が、ビデオ通話においてリアルタイム通信アプリケーションにより出力されたビデオ・データを見ていないことのインジケーションである。しかしながら、ユーザ１０４が、オーディオ信号により反対側とまだインタラクトしている可能性が高いので、データ・ストリームの伝送のレイテンシがまだ重要である。したがって、ビデオ品質は、ビデオ通話における遅延よりも関心が低いと判定され、その結果、受信データ・ストリームのデータ・レートが低減され得る。それにより、関連する遅延を低減させることができる。
【００４７】
本明細書で説明した方法は、ユーザ端末１０２においてクライアント・ソフトウェアにより実施されるリアルタイム通信アプリケーションにより実施することができる。このように、クライアント・ソフトウェアは、リアルタイム通信イベントのデータを処理するよう構成されたコンピュータ・プログラム製品であり、コンピュータ・プログラム製品は、非一時的なコンピュータ読み取り可能な媒体上に具現化され、ユーザ端末１０２のプロセッサ２０２上で実行されたとき、本明細書で説明した方法の動作を実行するリアルタイム通信アプリケーションを実施するよう構成される。ユーザ端末１０２は、ユーザ端末１０２とユーザ端末１０８との間のリアルタイム通信イベントのエンド・ポイントであり、ユーザ端末１０２は、ユーザ端末１０８からユーザ端末１０２に送信されるデータ・ストリームのための受信機として動作するとともに、ユーザ端末１０２からユーザ端末１０８に送信されるデータ・ストリームのための送信機として動作する。対応する方法が、ユーザ端末１０８において実施され得る。それにより、本明細書で説明した方法に従って、ユーザ端末１０２とユーザ端末１０８との間で双方向に送信されるデータ・ストリームのデータ・レートを制御することができる。
【００４８】
本明細書で説明した方法は、リアルタイム通信イベント中に動的に実施することができる。これにより、データ・ストリームのデータ・レートを動的に制御することが可能となる。データ・ストリームのデータ・レートは、ユーザ端末１０２において実施されるリアルタイム通信アプリケーションとのユーザ１０４の現在のインタラクションに基づいて、制御することができる。
【００４９】
ユーザ端末１０２において実施されるリアルタイム通信アプリケーションとのユーザ１０４のインタラクションは、ユーザ１０４がリアルタイム通信イベントとどのように関与しているかを説明する。すなわち、リアルタイム通信アプリケーションとのユーザ１０４のインタラクションは、ユーザがリアルタイム通信アプリケーションとどのように関わっているかを説明する。例えば、リアルタイム通信アプリケーションとのユーザ１０４のインタラクションは、（ｉ）ユーザ１０４がリアルタイム通信イベントのデータを受信する態様、及び（ｉｉ）ユーザ１０４がリアルタイム通信イベントにおける伝送のためのデータを入力する態様のうち少なくとも１つを説明することができる。
【００５０】
主題が、構造的特徴及び／又は方法論的動作に特有の言葉で説明されたが、添付の特許請求の範囲において定められる主題は、上述した特定の特徴又は動作に必ずしも限定される必要がないことを理解すべきである。むしろ、上述した特定の特徴及び動作は、請求項を実施するための例示的な形態として開示されたものである。
【図１】
2015532019.tif 000003
【図２】
2015532019.tif 000004
【図３ａ】
2015532019.tif 000005
【図３ｂ】
2015532019.tif 000006
【図３ｃ】
2015532019.tif 000007
【国際調査報告】
2015532019.tif 000008
2015532019.tif 000009