(57)【特許請求の範囲】
【請求項１】
処理ユニットを有するサーバにおける、ビデオストリームのサブスクリプションを提供する方法であって、前記方法は、
前記処理ユニットが、少なくとも１つのビデオストリームを、少なくとも１つの第１のクライアントから受信するステップと、
前記処理ユニットが、サブスクリプション要求を、少なくとも１つの第２のクライアントから受信するステップと、
前記処理ユニットが、前記少なくとも１つの第１のクライアントから受信したビデオストリームが、前記少なくとも１つの第２のクライアントからのサブスクリプション要求にマッチするかどうかを判定するステップと、
前記少なくとも１つの第１のクライアントから受信したビデオストリームが、前記少なくとも１つの第２のクライアントからのサブスクリプション要求にマッチしないとの判定に応じて、前記処理ユニットが、前記少なくとも１つの第２のクライアントからのサブスクリプション要求にマッチする異なるビデオストリームを前記少なくとも１つの第１のクライアントに要求するステップと、
前記処理ユニットが、前記少なくとも１つのビデオストリームが前記少なくとも１つの第２のクライアントからの前記サブスクリプション要求にマッチするとの判定に応答して、前記受信したビデオストリームを、前記第２のクライアントに送信するステップとを備え、
前記処理ユニットが、前記ビデオストリームを、複数のクライアントのそれぞれから、受信するステップと、
前記処理ユニットが、サブスクリプション要求を、前記複数のクライアントのそれぞれから、受信するステップと、
前記処理ユニットが、前記サブスクリプション要求が、前記受信したビデオストリームにマッチするかどうかを判定するステップと、
前記サブスクリプション要求が、前記受信したビデオストリームにマッチするとの判定に応答して、前記処理ユニットが、マッチする少なくとも１つの前記受信したビデオストリームを、前記複数のクライアントのうちの少なくとも１つに送信するステップとをさらに備えたことを特徴とする方法。
【請求項２】
前記サブスクリプション要求が、前記受信したビデオストリームにマッチするかどうかを判定するステップは、前記受信したビデオストリームが、前記サブスクリプション要求によって要求される、ビデオストリームの情報源クライアント、解像度、およびフレームレートのうちの少なくとも１つを含むかどうかを判定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記サブスクリプション要求が前記受信したビデオストリームにマッチしないとの判定に応答して、前記処理ユニットが、前記受信したビデオストリームを、前記サブスクリプション要求にマッチするように変更できるかどうかを判定するステップと、
前記受信したビデオストリームを、前記サブスクリプション要求にマッチするように変更できるとの判定に応答して、前記処理ユニットが、前記受信したビデオストリームを、前記サブスクリプション要求にマッチするように変更するステップと、
前記処理ユニットが、前記変更したビデオストリームを、前記複数のクライアントのうちの少なくとも１つに送信するステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項４】
前記サブスクリプション要求が前記受信したビデオストリームにマッチしないとの判定に応答して、前記処理ユニットが、前記サブスクリプション要求に関連づけられた、ビデオストリームの情報源クライアントが、前記サブスクリプション要求にマッチするビデオストリームにエンコードできるかどうかを判定するステップと、
前記情報源クライアントが、前記サブスクリプション要求にマッチするビデオストリームにエンコードできるとの判定に応答して、前記処理ユニットが、前記情報源クライアントに、前記サブスクリプション要求にマッチするビデオストリームにエンコードさせる命令を送信するステップと、
前記処理ユニットが、エンコードしたビデオストリームを前記情報源クライアントから受信し、前記複数のクライアントのうちの少なくとも１つに送信するステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項５】
前記サブスクリプション要求が、前記受信したビデオストリームにマッチしないとの判定に応答して、前記処理ユニットが、前記受信したビデオストリームのうちのいずれが、前記サブスクリプション要求に最もよくマッチするかを判定するステップと、
前記処理ユニットが、前記サブスクリプション要求に最もよくマッチするビデオストリームを、前記複数のクライアントのうちの少なくとも１つに送信するステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項６】
前記受信したビデオストリームのうちのいずれが、前記サブスクリプション要求に最もよくマッチするかを判定するステップは、
前記受信したビデオストリームの情報源クライアントが、前記サブスクリプション要求に関連づけられた情報源クライアントにマッチするかどうかを判定するステップと、
前記受信したビデオストリームの情報源クライアントが、前記サブスクリプション要求に関連づけられた情報源クライアントにマッチするとの判定に応答して、前記サブスクリプション要求に関連づけられた情報源クライアントにマッチする前記受信したビデオストリームの解像度が、前記サブスクリプション要求に関連づけられた解像度にマッチするかどうかを判定するステップと、
前記受信したビデオストリームの情報源クライアントおよび解像度が、前記サブスクリプション要求に関連づけられた情報源クライアントおよび解像度にそれぞれマッチするとの判定に応答して、前記受信したビデオストリームのフレームレートが、前記サブスクリプション要求に関連づけられたフレームレートにはマッチするかどうかを判定するステップと、
前記受信したビデオストリームの情報源クライアントおよび解像度が、前記サブスクリプション要求に関連づけられた情報源クライアントおよび解像度にそれぞれマッチするが、前記受信したビデオストリームのフレームレートが、前記サブスクリプション要求に関連づけられたフレームレートにはマッチしないとの判定に応答して、前記受信したビデオストリームを、前記複数のクライアントのうちの少なくとも１つに送信するステップと
を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記受信したビデオストリームの情報源クライアントが、前記サブスクリプション要求に関連づけられた情報源クライアントにマッチしないとの判定に応答して、
前記処理ユニットが、前記複数のクライアントの中から、前記サブスクリプション要求に関連付けられた情報源クライアントではない第２の情報源クライアントを選択するステップと、
前記処理ユニットが、前記第２の情報源クライアントから受信した少なくとも１つのビデオストリームを、前記複数のクライアントのうちの少なくとも１つに送信するステップと
をさらに備えたことを特徴とする請求項６に記載の方法。
【請求項８】
コンピュータにより実行されると、前記コンピュータに、ビデオストリームのサブスクリプションを提供する方法を実行させるコンピュータプログラムであって、前記方法は、
複数のビデオ会議クライアントのそれぞれから、少なくとも１つの情報源ビデオストリームを受信するステップと、
前記複数のビデオ会議クライアントのうちの少なくとも１つから、少なくとも１つのビデオサブスクリプション要求を受信するステップと、
前記複数のビデオ会議クライアントの各々から受信した情報源ビデオストリームの少なくとも１つの第１のストリームが、前記少なくとも１つのビデオストリームサブスクリプション要求にマッチするかどうかを判定するステップと、
前記複数のビデオ会議クライアントの各々から受信した情報源ビデオストリームの少なくとも１つの第１のビデオストリームが、前記ビデオストリームサブスクリプション要求にマッチしないとの判定に応じて、前記ビデオストリームサブスクリプション要求にマッチする、異なる情報源ビデオストリームを要求するステップと、
前記複数のビデオ会議クライアントの各々から受信した情報源ビデオストリームの前記少なくとも１つの第１のストリームが、前記少なくとも１つのビデオストリームサブスクリプション要求にマッチするとの判定に応答して、前記ビデオストリームのうちマッチした少なくとも１つの第１のストリームを、前記複数のビデオ会議クライアントのうちの要求している少なくとも１つのビデオ会議クライアントに送信するステップと
を備え、
前記複数のビデオ会議クライアントのうちの少なくとも１つから、前記受信したビデオストリームの少なくとも１つである、少なくとも１つの第２のストリームに対する第２のサブスクリプション要求を受信するステップと、
前記第２のストリームが、前記第２のサブスクリプション要求にマッチするかどうかを判定するステップと、
前記第２のストリームが、前記第２のサブスクリプション要求にマッチするとの判定に応答して、前記第２のストリームを、前記複数のビデオ会議クライアントのうちの少なくとも１つに送信するステップと
をさらに備えたことを特徴とするコンピュータプログラム。
【請求項９】
前記第２のストリームを、前記複数のビデオ会議クライアントのうちの少なくとも１つに送信するステップは、
前記サブスクリプション要求にマッチする第１のストリームと、前記第２のストリームとの合成ビデオストリームを作成するステップと、
前記合成ビデオストリームを、前記複数のビデオ会議クライアントのうちの少なくとも１つに送信するステップと
を含むことを特徴とする請求項８に記載のコンピュータプログラム。
【請求項１０】
前記ビデオストリームを受信するステップは、１つの前記ビデオ会議クライアントから解像度の異なる複数の前記ビデオストリームを受信するステップを含み
前記第１のストリームが、前記サブスクリプション要求にマッチするかどうかを判定するステップは、前記サブスクリプション要求に関連づけられた解像度に最も近い前記第１のストリームを選択するステップを含み、
前記第２のストリームが、前記第２のサブスクリプション要求にマッチするかどうかを判定するステップは、前記第２のサブスクリプション要求に関連づけられた解像度に最も近い前記第２のストリームを選択するステップを含む
ことを特徴とする請求項８に記載のコンピュータプログラム。
【請求項１１】
前記第１のストリームが、前記サブスクリプション要求にマッチするかどうかを判定するステップは、前記第１のストリームが、前記サブスクリプション要求に関連づけられたフレームレートで利用可能かどうかを判定するステップを含み、
前記第２のストリームが、前記第２のサブスクリプション要求にマッチするかどうかを判定するステップは、前記第２のストリームが、前記第２のサブスクリプション要求に関連づけられたフレームレートで利用可能かどうかを判定するステップを含み、
前記方法は、
前記第１のストリームと、前記第２のストリームとの合成ビデオストリームを作成するステップであって、前記作成するステップは、
前記第１のストリームが、前記サブスクリプション要求に関連づけられたフレームレートで利用可能でない場合、前記第１のストリームのフレームレートを変更するステップと、
前記第２のストリームが、前記第２のサブスクリプション要求に関連づけられたフレームレートで利用可能でない場合、前記第２のストリームのフレームレートを変更するステップと、
前記変更した第１のストリーム、および前記変更した第２のストリームを、単一のビデオストリームに結合することによって前記合成ビデオストリームを作成するステップと
を含む、作成するステップと、
前記合成ビデオストリームを、前記複数のビデオ会議クライアントのうちの少なくとも１つに送信するステップと
をさらに備えたことを特徴とする請求項８に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチビットレートストリームを使用するビデオ会議のサブスクリプションに関する。
【背景技術】
【０００２】
ビデオ会議のサブスクリプションによって、クライアントは、自らが対面を望む参加者を選択することができる。ビデオ電話会議では、２つ以上の場所で双方向のビデオ通信、および音声通信を介して同時に対話することを可能にする対話式通信技術を使用することができる。ビデオ会議では、音声およびビデオの通信を使用し、異なる拠点にいる人々を会議に集めることができる。これは、個人事務所における二者間の会話（ポイントツーポイント）であってもよく、および／または異なる拠点の大きな部屋における複数人とともに複数拠点（マルチポイント）を含んでもよい。会議活動の音声通信、および画像通信に加えて、ビデオ会議を使用して、書類、コンピュータに表示された情報、およびホワイトボードを共有することができる。音声／ビデオ通信を取り込み、記録し、エンコーディングとして知られる処理を使用してデジタル化し、コンピュータネットワークなどの通信媒体を介して他の拠点に伝送し、受信し、デコードし、かつ、ビデオ会議の他の参加者に表示することができる。数多くのエンコーディング／デコーディングの標準が、この処理と互換性がある。
【０００３】
ビデオ会議における従来の方法は、ビデオコンテンツをミキシングする代わりに、ビデオストリームを、ある参加者から他の参加者へ配信することである（全ての着信ビデオストリームをデコードし、それらをまとめて構成し、それを単一のストリームに再エンコードし、再エンコードしたストリームをあらゆる参加者に送信する）。従って、一部のシステムでは、全ての参加者からのビデオを表示するか、またはユーザに、自らが望む任意の参加者との対面の選択を許可する代わりに、ビデオ電話会議にアクティブな話者に切り替えるだけで、その話者を表示することができる。さらに、従来のシステムでは、クライアントは、静的な混合ストリームではなく特定のストリームをサブスクライブすることはできず、そしてまた、帯域幅の制約のためそれほど多くのストリームを受信することもできない。
【発明の概要】
【０００４】
マルチビットレートストリームを使用するビデオ会議のサブスクリプションを提供する。本「発明の概要」を提供することで、「発明を実施するための形態」においてさらに記載されている概念の抜粋を簡単な形で紹介する。本「発明の概要」は、特許請求の範囲に記載された主題の主要な特徴、または重要な特徴を特定することを意図するものではない。また、本「発明の概要」は、特許請求の範囲に記載された主題の範囲を限定するために使用されることを意図するものでもない。
【０００５】
ビデオ会議のサブスクリプションを提供することができる。ビデオ会議のサーバは、複数の異なるビットレートのビデオストリームを、ビデオ会議の各クライアントから受信することができ、各クライアントからサブスクリプション要求を受信することができる。サブスクリプション要求は、特定の他のクライアントからのビデオストリームを、所与の解像度、および／または所与のフレームレートで見るという要求を含むことができる。ビデオ会議サーバは、受信したビデオストリームをサブスクリプション要求と一致させることにより、サブスクライブするクライアントに所望のビデオストリームを送信することができる。サーバはまた、参加者からのビデオストリームの異なるバージョン（例えば、異なる解像度）を要求することができ、および／またはビデオストリームを変更し、サブスクリプション要求に、より適合することもできる。
【０００６】
上述の一般的説明、および以下の詳細な説明は双方とも、実施例を提供し、説明するためのみのものである。従って、上述の一般的説明、および以下の詳細な説明を、限定するものとして考慮すべきでない。さらに、特徴、または変形形態を、本明細書に説明するものに加えて提供することができる。例えば、実施形態は、詳細な説明に記述する様々な特徴の組み合わせ、および下位の組み合わせｗを対象にできる。
【図面の簡単な説明】
【０００７】
添付図面は、本開示に組み込まれ、本開示の一部を構成するものであり、本発明の様々な実施形態を示す。
【０００８】
【図１】ビデオ会議環境のブロック図である。
【図２】様々なビデオサブスクリプション構成を示す図である。
【図３】マルチビットレート（multiple bit rate、ＭＢＲ）エンコーディングを示す図である。
【図４】ビデオ会議においてサブスクリプションを提供する方法のフローチャートである。
【図５】図４の方法において使用する、サブスクリプション要求にマッチするビデオストリームを選択するためのサブルーチンのフローチャートである。
【図６】コンピューティング装置を含むシステムのブロック図である。
【発明を実施するための形態】
【０００９】
以下の詳細な説明は、添付図面を参照する。可能な限り、同一の参照番号が、図面及び以下の説明において使用され、同一又は類似の要素を参照する。本発明の実施形態を説明できるが、修正、適応、および他の実装も可能である。例えば、置換、追加又は修正は、図面において示される要素に対して行なうことができる。本明細書で説明される方法を、開示された方法に対して、段階を置換し、並べ替え、又は追加することにより、修正できる。従って、以下の詳細な説明は、本発明を限定しない。代わりに、本発明の適切な範囲は、添付の特許請求の範囲により定義される。
【００１０】
ビデオ会議のサブスクリプションを提供することができる。本発明の実施形態に従って、マルチビットレート（ＭＢＲ）方式を使用し、ビデオ会議に参加している他のクライアントにより提供されるビデオストリームをサブスクライブするというクライアント要求に応じて、データをクライアントにストリーミングすることができる。例えば、あるクライアントは、ビデオ会議に参加している他のクライアントそれぞれからのビデオ情報源ストリーム（video source stream、情報源からのビデオストリーム）を同時に見ることを望むことができるが、 他のクライアントは、他の１つのクライアントからのストリームを見ることを望むだけである。
【００１１】
図１は、ビデオ会議環境１００のブロック図である。ビデオ会議環境１００は、イントラネットクライアント１１０、およびイントラネットのネットワーク接続１１５を介して接続されたビデオ会議サーバ１２０を含むことができる。ビデオ会議環境１００はさらに、第１のインターネットクライアント１３０、第２のインターネットクライアント１４０、および第３のインターネットクライアント１５０を含むことができる。インターネットクライアントそれぞれを、インターネット１６０を介してビデオ会議サーバ１２０に接続することができる。本発明の実施形態に従って、ビデオ会議サーバ１２０、イントラネットクライアント１１０、第１のインターネットクライアント１３０、第２のインターネットクライアント１４０、および第３のインターネットクライアント１５０はそれぞれ、図６に関して以下でより詳細に説明するコンピューティング装置６００を含むことができる。
【００１２】
複数のクライアントが互いの間でビデオストリームを共有したい場合、ビデオ会議環境１００を使用することができる。各クライアントは、ビデオ会議サーバ１２０に接続することができる。ビデオ会議サーバ１２０は、どのクライアントが接続されているか、および各クライアントの性能はどれほどであるかのリストを保持することができる。本発明の実施形態に従って、ビデオ会議サーバ１２０は、どのクライアントが、ビデオ会議サーバ１２０にビデオストリームを送信する責務を負うことができるかを判定する責務を負うことができる。ビデオ会議サーバ１２０は、クライアントから受信したビデオストリームを、他の接続しているクライアントに送信することができる。ビデオストリームを一連のビデオフレームとしてエンコードすることができ、各フレームは単一の画像を含むことができる。各フレームは、複数ビットのデータにより表すことができる。あらゆるフレームのあらゆるビットのデータも、ビデオストリームの情報源を表すために送る必要がないように、ビデオストリームをコード化する。異なるフレームの型を使用して、ビデオストリームをエンコードおよび／または圧縮することができる。
【００１３】
各クライアントは、少なくとも１つのビデオストリームをエンコードして、ビデオ会議サーバ１２０に送信することができる。例えば、各クライアントは、クライアントに接続されたウェブカメラ、および／またはマイクなどの音声／ビデオ入力を有することができる。入力を使用して、ビデオストリーム（音声を含むことができる）を生成することができ、クライアントは、ビデオストリームをビデオ会議サーバ１２０に送信する前に、ビデオストリームをエンコードすることができる。ビデオ会議サーバ１２０は、各クライアントからエンコードされたストリームを受信し、どのストリームを各クライアントに中継するかを決定することができる。例えば、イントラネットクライアント１１０は、現在話している人を含む一連のビデオフレームとして、ビデオストリームをエンコードすることができる。ビデオ会議サーバ１２０は、現在の話者を表示しているイントラネットクライアント１１０からのエンコードされたストリームを、第１のインターネットクライアント１３０、第２のインターネットクライアント１４０、および第３のインターネットクライアント１５０に送信することができる。ビデオ会議サーバ１２０は、第１のインターネットクライアント１３０、第２のインターネットクライアント１４０、および第３のインターネットクライアント１５０のそれぞれからのエンコードされた情報源ストリームを、イントラネットクライアント１１０に送信し、視聴メンバを表示できる。
【００１４】
図２は、ビデオ会議環境１００における様々なビデオサブスクリプション構成を示す図である。第１のインターネットクライアント１３０は、第１の情報源ビデオストリーム２３０をビデオ会議サーバ１２０に送信することができる。第２のインターネットクライアント１４０は、第２の情報源ビデオストリーム２４０をビデオ会議サーバ１２０に送信することができる。第３のインターネットクライアント１５０は、第３の情報源ビデオストリーム２５０をビデオ会議サーバ１２０に送信することができる。イントラネットクライアント１１０は、第４の情報源ビデオストリーム２１０をビデオ会議サーバ１２０に送信することができる。
【００１５】
各情報源ビデオストリームは、解像度、およびフレームレートを含むプロパティを含むことができる。例えば、情報源ビデオストリームは、高精細（１２８０×７２０画素）の解像度、３０ｆｐｓ(frames per second)でエンコードされたビデオ、ＶＧＡ（６４０×４８０）の解像度、３０ｆｐｓでエンコードされたビデオ、および／またはＣＩＦ（３２０×２４０）の解像度、１５ｆｐｓでエンコードされたビデオを含むことができる。
【００１６】
各クライアントは、サブスクリプション要求をビデオ会議サーバ１２０に送信することができる。サブスクリプション要求は、情報源クライアント（source client、情報源のクライアント）、解像度、および／またはフレームレートなどの、要求されたパラメータを含むことができる。例えば、イントラネットクライアント１１０は、第１のインターネットクライアント１３０からのビデオストリームのサブスクリプションを要求することができる。ビデオ会議サーバ１２０は、サブスクリプション要求にマッチするビデオストリーム、例えば、第１の情報源ビデオストリーム２３０などが利用可能かどうかを判定する。本発明の実施形態に従って、ビデオ会議サーバ１２０は、第１の情報源ビデオストリーム２３０が、他のサブスクリプション要求の任意の、および／または全てのパラメータを含むかどうかを判定することができる。例えば、サブスクリプション要求は、ＶＧＡの解像度、３０ｆｐｓでエンコードされた第１のインターネットクライアントからのビデオストリーム２３０を求める要求を含むことができる。第１の情報源ビデオストリーム２３０が、これらのパラメータにマッチする場合、すなわち、第１の情報源ビデオストリーム２３０がＶＧＡの解像度、３０ｆｐｓでエンコードされている場合、ビデオ会議サーバ１２０は、第１の情報源ビデオストリーム２３０をイントラネットクライアント１１０に中継することができる。
【００１７】
第１の情報源ビデオストリーム２３０が、これらのパラメータにマッチしない場合、ビデオ会議サーバは、第１のインターネットクライアントに、第１の情報源ビデオストリーム２３０の異なるバージョンを含む追加の情報源ビデオストリームをエンコードするよう命令する。この場合、異なるバージョンは、第１のインターネットクライアント１３０がエンコードできるように、サブスクリプション要求のパラメータにできる限りマッチするものを含む。例えば、第１のインターネットクライアント１３０は、ＶＧＡの解像度、３０ｆｐｓの情報源ビデオストリームをエンコードできないかもしれないが、ＶＧＡの解像度、１５ｆｐｓの情報源ビデオストリームをエンコードすることはできる場合がある。従って、第１のインターネットクライアント１３０は、ＶＧＡの解像度、１５ｆｐｓの追加の情報源ビデオストリームをエンコードし、ビデオ会議サーバ１２０に追加の情報源ビデオストリームを送信することができる。ビデオ会議サーバ１２０は、イントラネットクライアント１１０からのサブスクリプション要求に応じて、追加の情報源ビデオストリームをイントラネットクライアント１１０に中継することができる。
【００１８】
本発明の実施形態に従って、ビデオ会議クライアントは、複数のビデオストリームを求めるサブスクリプション要求を、ビデオ会議サーバ１２０に送信することができる。例えば、第１のインターネットクライアント１３０は、ビデオ会議に参加している他のクライアントそれぞれからの情報源ビデオストリームのサブスクリプションを要求することができる。ビデオ会議サーバ１２０は、第２の情報源ビデオストリーム２４０、第３の情報源ビデオストリーム２５０、および第４の情報源ビデオストリーム２１０を、第１のインターネットクライアント１３０に中継することができる。
【００１９】
さらに本発明の実施形態に従って、クライアントは、ビデオ会議に参加している全てのクライアントからのビデオ情報源ストリームを見ることを望む場合がある。例えば、第２のインターネットクライアント１４０は、４人のクライアントによるビデオ会議に参加し、参加している４人のクライアント全員を表示する２×２の合成ビデオストリームをサブスクライブするよう要求する場合がある。ビデオ会議サーバは、第１の情報源ビデオストリーム２３０、第２の情報源ビデオストリーム２４０、第３の情報源ビデオストリーム２５０、および第４の情報源ビデオストリーム２１０を、デジタル信号処理を使用して単一のビデオストリームに結合し、２×２のグリッドに４つの情報源を配置し、単一の合成したビデオストリームを、第２のインターネットクライアント２４０に送信することができる。
【００２０】
さらに本発明の実施形態に従って、クライアントは、複数のビデオ情報源ストリームをサブスクライブすることを望むかもしれないが、要求されたストリームのオリジナルのバージョンを受信するためには十分な帯域幅を有していない場合がある。例えば、第３のインターネットクライアント１５０は、イントラネットクライアント１１０、および第１のインターネットクライアント１３０からのビデオストリームのサブスクリプションを要求することができる。サブスクリプションは、２つのストリームを、２×１のマトリクス、ＶＧＡの解像度、１５ｆｐｓで送信するよう要求しているパラメータを含むことができる。第１の情報源ビデオストリーム２３０、および第４の情報源ビデオストリーム２１０が、ビデオ会議サーバ１２０に、ＶＧＡの解像度、３０ｆｐｓで送信されている場合、第３のインターネットクライアント１５０に送信するために２つのビデオストリームを１つの新しいビデオストリームに合成する前に、ビデオ会議サーバ１２０は、第１の情報源ビデオストリーム２３０、および第４の情報源ビデオストリーム２１０それぞれを、例えば他のあらゆるフレームを除去することによって、変更することができる。
【００２１】
図３は、マルチビットレート（ＭＢＲ）エンコーディングを示す図である。図１に関して上述したように、ビデオ会議システム１００は、イントラネットクライアント１１０、ビデオ会議サーバ１２０、第１のインターネットクライアント１３０、および第２のインターネットクライアント１４０を含むことができる。本発明の実施形態に従って、イントラネットクライアント１１０は、情報源ビデオストリームの高解像度バージョン３１０、および情報源ビデオストリームの低解像度バージョン３２０を、他のクライアントからのサブスクリプション要求に基づき、ビデオ会議サーバ１２０に送信することができる。例えば、第１のインターネットクライアントは、イントラネットクライアント１１０からの高解像度のビデオストリームを目的としたサブスクリプション要求３０５を、ビデオ会議サーバ１２０に送信することができ、ビデオ会議サーバ１２０は、情報源ビデオストリームの高解像度バージョン３１０を第１のインターネットクライアント１３０に中継することによって、応答することができる。
【００２２】
第２のインターネットクライアント１４０は、イントラネットクライアント１１０によって提供されているビデオ情報源ストリームの低解像度バージョン３２０とは異なるフレームレートでの、イントラネットクライアント１１０からの低解像度ビデオストリームを求めるサブスクリプション要求３４０を送信することができる。ビデオ会議サーバ１２０は、要求されたフレームレートにマッチするように低解像度バージョン３２０を変更でき、ビデオ情報源ストリームの変更したバージョン３５０を、第２のインターネットクライアント１４０に送信する。
【００２３】
本発明の実施形態に従って、サブスクリプション要求は、方式パラメータを含むことができる。例えば、クライアントは、他の全ての参加者からのビデオストリームをサブスクライブするが、現在の話者のストリームを高解像度で受信することを望む場合がある。従って、クライアントは、対話方式のパラメータを含むサブスクリプション要求を送信することができる。各情報源ビデオストリームは、現在の話者を搬送していることを示し、現在話しているクライアントは、現在の話者である間、さらに、より高解像度のビデオストリームを追加することができるので、ビデオ会議サーバ１２０は、クライアントのサブスクリプションに対してビデオストリームを切り替えることができる。他の可能な構成では、１つの主要な話者のクライアント、および多くの視聴クライアントを有することができる。話者は、視聴クライアントからの多く、および／または全てのビデオストリームを見たい場合があるが、一方、視聴クライアントは、話者、および／またはＱ＆Ａセッションで質問しているクライアントのみを見たい場合がある。ビデオ会議サーバ１２０は、低解像度のストリームを要求することによって、話者のクライントが視聴クライアント全てをサブスクライブすることを可能にすることができる。ビデオ会議サーバ１２０は、より低解像度のストリーム全ての帯域幅の総計が、話者のクライアントが扱うことができる帯域幅よりまだ大きい場合、ストリームをより低いフレームレートに変更できる。本発明の実施形態に従って、話者のクライアントは、１つの視聴クライアント、または複数の視聴クライアントを閲覧するよう切り替えることができる。視聴クライアントは、例えば、視聴クライアントの数が、設定可能な閾値より少ない場合は、より高解像度のビデオストリームを、ビデオ会議サーバ１２０に送信することができる。
【００２４】
図４は、本発明の一実施形態に従って、ビデオ会議のサブスクリプションを提供する方法４００に含まれる一般的な段階を説明するフローチャートである。図６に関して以下により詳細に説明するように、方法４００を、コンピューティング装置６００を使用して実装することができる。方法４００の段階を実装する方法を、以下により詳細に説明する。本発明の実施形態に従って、方法４００の任意、および／または全ての段階を、ビデオ会議サーバ１２０で、および／または複数のビデオ会議クライアントのうちの任意のクライアントで、実施することができる。
【００２５】
方法４００は、開始ブロック４１０で始まり、段階４２０に進み、そこでコンピューティング装置６００は、少なくとも１つのクライアントを登録することができる。例えば、少なくとも１つのクライアントは、ネットワーク接続を介してコンピューティング装置６００に動作中に接続することができ、コンピューティング装置６００によって提供されるビデオ電話会議への参加を要求することができる。
【００２６】
登録の一部として、コンピューティング装置６００は、少なくとも１つのクライアントの、利用可能な演算能力、および利用可能なエンコーディング／デコーディング方式を含む性能を判定することができ、少なくとも１つのクライアントに、複数の異なるビットレートの複数のビデオストリームを提供するよう求めることができる。本発明の実施形態に従って、コンピューティング装置６００は、少なくとも１つのクライアントが性能を有する場合、そのクライアントにいくつかのストリームを提供するよう要求することができるが、そのクライアントが、利用可能な演算能力、利用可能なプロセッササイクル、利用可能なメモリ、および／または利用可能な帯域幅を少ししか有していない場合、そのクライアントにストリームを１つだけ提供するよう求めることもできる。
【００２７】
方法４００は、段階４２０から段階４３０へ進み、そこでコンピューティング装置６００は、少なくとも１つのエンコードされたビデオストリームを、少なくとも１つのクライアントから、受信することができる。複数のクライアントは、ビデオ会議に参加することができ、各クライアントは少なくとも１つのビデオストリームを送信することができる。例えば、コンピューティング装置６００は、ＶＧＡの解像度、３０ｆｐｓでエンコードされた音声／ビデオストリームを、少なくとも１つのクライアントから、受信することができる。本発明の実施形態に従って、コンピューティング装置６００は、少なくとも１つのクライアントから複数のストリームを受信することができる。例えば、１つのクライアントは、３つのバージョンのビデオストリーム（高精細解像度、３０ｆｐｓでエンコードされたもの、ＶＧＡの解像度、３０ｆｐｓでエンコードされたもの、およびＣＩＦの解像度、１５ｆｐｓでエンコードされたもの）を送信することができる。
【００２８】
方法４００は、段階４３０から段階４４０へ進み、そこでコンピューティング装置６００は、ビデオ会議の少なくとも１つのクライアントからサブスクリプション要求を受信することができる。例えば、コンピューティング装置６００は、あるクライアントから、第２のクライアントからのＶＧＡ、３０ｆｐｓでエンコードされたストリームを求めるサブスクリプション要求を受信することができる。本発明の実施形態に従って、コンピューティング装置６００は、ビデオ会議に参加している任意、および／または全てのクライアントから、複数のサブスクリプション要求を受信することができる。例えば、あるクライアントは、参加している他のクライアント全てのより低解像度のバージョンを要求することができ、他のクライアントは、どのクライアントでも、ビデオ会議でアクティブな話者に指定されたクライアントから高解像度バージョン、および他の一部、または全てのクライアントから低解像度バージョンを要求することができる。
【００２９】
方法４００は、段階４４０からサブルーチン４５０へ進み、そこでコンピューティング装置６００は、サブスクリプション要求にマッチするビデオストリームを見つけ、それを少なくとも１つのクライアントに送信できる。例えば、コンピューティング装置６００は、第２のクライアントが、ＶＧＡ、３０ｆｐｓでエンコードされたビデオストリームを、コンピューティング装置６００にすでに送信していると判定でき、それゆえに、コンピューティング装置６００は、このビデオストリームがサブスクリプション要求にマッチすると判定できる。サブルーチン４５０に関するさらなる詳細を、図５に関して以下に説明する。
【００３０】
方法４００は、サブルーチン４５０から段階４６０へ進み、そこでコンピューティング装置６００は、マッチするストリームをクライアントに送信することができる。例えば、コンピューティング装置６００は、ネットワーク接続を介して、第２のクライアントから受信したマッチするビデオストリームを、サブスクリプション要求を送信したクライアントへ中継することができる。
【００３１】
方法４００は、段階４６０から段階４７０へ進み、そこでコンピューティング装置６００は、さらに何らかのサブスクリプション要求を受信しているかどうかを判定することができる。サブスクリプション要求は、既存のサブスクリプションを変更する要求、例えば、あるクライアントが、自らがすでに受信しているストリームの低解像度バージョンを要求するというような要求を含むことができる。このような要求を、例えば、利用可能な帯域幅の低下に応じて、行なうことができる。サブスクリプション要求はまた、少なくとも１つのビデオストリームをすでに受信しているクライアントによる、追加のクライアント（単数または複数）からのビデオストリームを求める要求、またはビデオ会議の他のクライアントからの要求も含むことができる。
【００３２】
コンピューティング装置６００が、他のサブスクリプション要求を受信していると判定する場合、方法４００はサブルーチン４５０に戻り、マッチするビデオストリームを見つけるようとする。追加のサブスクリプション要求を受信していない場合、コンピューティング装置６００は、ビデオ会議の終了まで追加の要求を待ち続けることができ、ビデオ会議の終了時に、方法４００は段階４８０で終了することができる。
【００３３】
図５は、図４の方法において使用する、サブスクリプション要求にマッチするビデオストリームを選択するためのサブルーチンのフローチャートである。サブルーチン４５０において、コンピューティング装置６００は、例えば、要求されたビデオストリームの情報源クライアントのような、サブスクリプション要求に関連づけられたプロパティを分析できる。サブルーチン４５０は、段階５１０で開始することができ、そこでコンピューティング装置６００は、要求された情報源クライアントに関連づけられたビデオストリームが利用可能かどうかを判定することができる。この判定は、情報源クライアントがビデオ会議に接続されているかどうか、情報源クライアントが、ビデオストリームをコンピューティング装置６００に、現在送信しているかどうか、ならびに／または情報源クライアントが、コンピューティング装置６００および／もしくはビデオ会議の他のクライアントによって要求される場合、ビデオストリームを送信することができる場合があるかどうかを判定することを含むことができる。段階５１０で、コンピューティング装置６００は、要求された情報源クライアントが、要求されたビデオストリームを提供することができない場合があると判定する場合、サブルーチン４５０は段階５１５に進み、そこでコンピューティング装置６００は、所定のロジックに従って代替の情報源クライアントを選択することができる。例えば、コンピューティング装置６００は、アクティブな話者として指定されたクライアントを選択できる。本発明の実施形態に従って、コンピューティング装置６００は、要求しているクライアントに、要求されたサブスクリプションが利用可能でないことを通知するエラーを返すことができる。コンピューティング装置６００は、ビデオ会議中ずっと、要求された情報源クライアントが利用可能になるかどうかについて、定期的に判定を行ない続けることができる。段階５１５で、代替の情報源クライアントを選択すると、サブルーチン４５０は、段階５１０に戻り、新しく選択された情報源クライアントが利用可能かどうかを判定する。
【００３４】
段階５１０で、コンピューティング装置６００は、要求された情報源クライアントが利用可能である、および／またはビデオストリームを提供できる場合があると判定する場合、サブルーチン４５０は段階５２０に進み、そこでコンピューティング装置６００は、サブスクリプション要求に関連づけられた情報源クライアントが、ビデオストリームを、サブスクリプション要求に関連づけられた解像度で、現在送信しているかどうかを判定することができる。例えば、クライアントは、情報源クライアントのＶＧＡ（６４０×４８０）の解像度のビデオストリームのサブスクリプションを要求することができる。コンピューティング装置６００は、情報源クライアントが、自身のビデオストリームのＶＧＡの解像度バージョンを提供しているかどうかを判定することができる。提供していない場合、サブルーチン４５０は段階５２５に進み、そこでコンピューティング装置６００は、情報源クライアントが、ビデオストリームを、適切な解像度で提供できるかどうかを判定することができる。
【００３５】
段階５２５で、コンピューティング装置６００が、情報源クライアントが要求された解像度でビデオストリームを提供できると判定する場合、サブルーチン４５０は段階５３０に進み、そこでコンピューティング装置６００は、情報源クライアントに、ビデオストリームを、要求された解像度で送信し始めるよう要求することができる。情報源クライアントが要求された解像度でビデオストリームを提供することができないと判定された場合、サブルーチン４５０は段階５３５に進み、そこでコンピューティング装置６００は、情報源クライアントのビデオストリームの、最も近い解像度での他のバージョンを使用することを選択できる。例えば、情報源クライアントは、ＶＧＡの解像度のビデオストリームの代わりに、ＣＩＦの解像度のビデオストリームを提供することができる場合がある。
【００３６】
ビデオストリームの解像度がコンピューティング装置６００によって選択されると、サブルーチン４５０は段階５４０に進み、そこでコンピューティング装置６００は、ビデオストリームがサブスクリプション要求に関連づけられたフレームレートで利用可能かどうかを判定することができる。段階５２０で選択されたストリームが、要求されたフレームレートにマッチしない場合、サブルーチン４５０は段階５４５に進み、そこでコンピューティング装置６００は、ビデオストリームを、例えば、代替のフレームを除去し、フレームレートを下げることによって、変更できる。例えば、コンピューティング装置６００は、ＶＧＡの解像度、１５ｆｐｓのビデオストリームを求めるサブスクリプション要求を受信する場合があるが、情報源クライアントによって提供されるビデオストリームは、３０ｆｐｓでエンコードされる場合がある。コンピューティング装置６００は、例えば、ビデオストリームからフレームを落とし、フレームレートを下げることができる。本発明の実施形態に従って、コンピューティング装置６００は、解像度に関する段階５２５の処理と同様、情報源クライアントが、要求されたフレームレートで、ビデオストリームをエンコード、および送信することができるかどうかを判定することができ、情報源クライアントが、マッチするストリームを、コンピューティング装置６００に送信するよう要求できる。段階５４０、および／または段階５４５から、サブルーチン４５０は、段階４６０で方法４００に戻ることができる。
【００３７】
本発明の実施形態に従って、サブスクリプション要求は、情報源クライアント、解像度、およびフレームレートなどのプロパティの、受け入れ可能な代替値を提供することができる。例えば、サブスクリプション要求は、第１のクライアントからのビデオストリームを求める要求を含むことができ、第２のクライアントからのビデオストリームもまた受け入れ可能であることを示すことができる。同様に、サブスクリプション要求は、例えば、利用可能であるならば高精細度のビデオストリームを望み、ＶＧＡの解像度のストリームもまた受け入れ可能であることを示し、ただし、ＣＩＦの解像度のストリームしか利用可能でない場合は、コンピューティング装置６００は、サブスクリプション要求に応じてビデオストリームを送信しないよう要求するといったように、要求した解像度に優先順位を付けることができる。
【００３８】
本発明に従う一実施形態は、複数のクライアントにデータを提供するシステムを含むことができる。システムは、メモリ記憶装置、およびメモリ記憶装置に接続された処理ユニットを含むことができる。処理ユニットは、以下のように動作できる。すなわち、少なくとも１つの第１のクライアントから少なくとも１つのビデオストリームを受信し、少なくとも１つの第２のクライアントからビデオサブスクリプション要求を受信し、少なくとも１つの第１のクライアントから受信した少なくとも１つのビデオストリームが、少なくとも１つの第２のクライアントからのビデオサブスクリプション要求にマッチするかどうかを判定し、および少なくとも１つの第１のクライアントから受信した少なくとも１つのビデオストリームが、少なくとも１つの第２のクライアントからのビデオサブスクリプション要求にマッチすると判定することに応じて、少なくとも１つの第１のクライアントから受信した少なくとも１つのビデオストリームを、少なくとも１つの第２のクライアントに送信するよう動作できる。ビデオサブスクリプション要求は、要求された解像度、および／または要求されたフレームレートを含むことができる。少なくとも１つの第１のクライアントから受信した少なくとも１つのビデオストリームが、少なくとも１つの第２のクライアントからのビデオサブスクリプション要求にマッチしない場合、処理ユニットは、少なくとも１つの第１のクライアントに、少なくとも１つのビデオストリームをエンコードし、送信することを停止させる命令を送信するよう動作できる。
【００３９】
本発明の実施形態に従って、処理ユニットは以下のように動作できる。すなわち、ビデオ会議に参加している複数のクライアントを登録し、複数のクライアントそれぞれから少なくとも１つのビデオストリームを受信し、登録したクライアントそれぞれから少なくとも１つのビデオサブスクリプション要求を受信し、登録したクライアントそれぞれからの少なくとも１つのビデオサブスクリプション要求が、複数のクライアントから受信した少なくとも１つのビデオストリームにマッチするかどうかを判定し、およびマッチする受信した少なくとも１つのビデオストリームを複数のクライアントそれぞれに送信するよう動作できる。サブスクリプション要求と受信したビデオストリームとの間のマッチを判定することは、ビデオストリームが、サブスクリプション要求の要求する情報源クライアント、サブスクリプション要求の要求する解像度、および／またはサブスクリプション要求の要求するフレームレートにマッチするかどうかを判定することを含むことができる。
【００４０】
受信したビデオストリームが、少なくとも１つのサブスクリプション要求にマッチしない場合、プロセッサは以下のように動作できる。すなわち、受信した少なくとも１つのビデオストリームを、少なくとも１つのビデオサブスクリプション要求にマッチするように変更できるかどうかを判定し、ビデオストリームを変更し、および変更したビデオストリームを要求しているクライアントに送信するよう動作できる。ビデオストリームを変更することは、異なる解像度でビデオストリームを再エンコードすること、少なくとも１つのフレームをビデオストリームから落とすこと、および／または受信した少なくとも２つのビデオストリームを単一のビデオストリームに結合することを含むことができる。本発明のさらなる実施形態に従って、処理ユニットは、サブスクリプション要求に関連づけられたビデオストリームの情報源クライアントが、サブスクリプション要求を満たすビデオストリームをエンコードできるかどうかを判定するよう動作できる。情報源クライアントが、サブスクリプション要求を満たすビデオストリームをエンコードできる場合、処理ユニットは、ビデオストリームの情報源クライアントに、命令を送信し、マッチするビデオストリームをエンコードし、結果として生じる、マッチするビデオストリームを、要求している、登録した少なくとも１つのクライアントに送信できる。情報源クライアントが、マッチするビデオストリームを送信できるかどうかを判定するよう動作することは、ビデオストリームの情報源クライアントが、ビデオストリームの異なる２つのバージョンをエンコードできるかどうかを判定するよう動作することを含むことができ、この場合、２つのバージョンは解像度、および／またはフレームレートの点で異なる。
【００４１】
処理ユニットが、受信したビデオストリームによって、少なくとも１つのサブスクリプション要求を満たすことができないと判定する場合、および／またはクライアントのいずれも要求されたビデオストリームを提供できない場合があると判定する場合、処理ユニットは以下のように動作できる。すなわち、受信したビデオストリームのうちのいずれが、少なくとも１つのビデオサブスクリプション要求に最もよくマッチするか演算し、および少なくとも１つのビデオサブスクリプション要求に最もよくマッチするビデオストリームを、少なくとも１つの登録したクライアントに送信するよう動作できる。例えば、処理ユニットは以下を判定できる。すなわち、少なくとも１つのビデオストリームが、サブスクリプション要求に関連づけられたビデオストリームの情報源クライアントにマッチするかどうか、サブスクリプション要求に関連づけられたビデオストリームの情報源クライアントにマッチする少なくとも１つのビデオストリームが、サブスクリプション要求に関連づけられた解像度にマッチするかどうか、ならびに／または、サブスクリプション要求に関連づけられたビデオストリームの情報源クライアントおよび解像度にマッチし、少なくとも１つのビデオストリームが、サブスクリプション要求に関連づけられたフレームレートにマッチするかどうかを判定できる。処理ユニットは、少なくとも１つのビデオストリームを、要求しているクライアントに送信できる。
【００４２】
処理ユニットが、少なくとも１つのビデオストリームがサブスクリプション要求に関連づけられたビデオストリームの情報源クライアントにマッチしないと判定する場合、処理ユニットは以下のように動作できる。すなわち、サブスクリプション要求に関連づけられたビデオストリームの情報源クライアント以外の複数のクライアントの中から第２のビデオストリームの情報源クライアントを選択し、および選択した第２のビデオストリームの情報源クライアントから受信した少なくとも１つのビデオストリームを、要求しているクライアントに送信するよう動作できる。サブスクリプション要求に関連づけられたビデオストリームの情報源クライアント以外の複数のクライアントの中から第２のビデオストリームの情報源クライアントを選択することは、現在の話者を含むビデオストリームを送信している第２のビデオストリームの情報源クライアントを選択することを含むことができる。
【００４３】
本発明に従う他の実施形態は、複数のクライアントにビデオストリームを提供するシステムを含むことができる。システムは、メモリ記憶装置、およびメモリ記憶装置に接続された処理ユニットを含むことができる。処理ユニットは以下のように動作できる。すなわち、複数のビデオ会議クライアントを登録し、複数のビデオ会議クライアントそれぞれから、少なくとも１つの情報源ビデオストリームを受信し、少なくとも１つの複数のビデオ会議クライアントから、少なくとも１つのビデオストリームのサブスクリプション要求を受信し、複数のビデオ会議クライアントそれぞれから受信した情報源ビデオストリームの少なくとも１つの第１のストリームが、少なくとも１つのビデオストリームのサブスクリプション要求にマッチするかどうかを判定し、および複数のビデオ会議クライアントそれぞれから受信した情報源ビデオストリームの、少なくとも１つの第１のストリームが、少なくとも１つのビデオストリームのサブスクリプション要求にマッチすると判定することに応じて、情報源ビデオストリームうちの、マッチする少なくとも１つの第１のストリームを、要求している複数のビデオ会議クライアントのうちの少なくとも１つに送信するよう動作できる。処理ユニットはさらに以下のように動作できる。すなわち、複数のビデオ会議クライアントのうちの少なくとも１つから、少なくとも１つの第２のビデオストリームのサブスクリプション要求を受信し、複数のビデオ会議クライアントそれぞれから受信した情報源ビデオストリームの、少なくとも１つの第２のストリームが、少なくとも１つの第２のビデオストリームのサブスクリプション要求にマッチするかどうかを判定し、および複数のビデオ会議クライアントそれぞれから受信した情報源ビデオストリームの、少なくとも１つの第２のストリームが、少なくとも１つの第２のビデオストリームのサブスクリプション要求にマッチすると判定することに応じて、情報源ビデオストリームのうちのマッチする少なくとも１つの第２のストリームを、複数のビデオ会議クライアントのうちの要求している少なくとも１つに送信するよう動作できる。
【００４４】
本発明の実施形態に従って、情報源ビデオストリームのうちのマッチする少なくとも１つの第２のストリームを、複数のビデオ会議クライアントのうちの要求している少なくとも１つに送信するよう動作することは、処理ユニットが以下のように動作することを含むことができる。すなわち、情報源ビデオストリームのうちのマッチする少なくとも１つの第１のストリームと、情報源ビデオストリームのうちのマッチする少なくとも１つの第２のストリームとの合成ビデオストリームを作成し、合成ビデオストリームを、複数のビデオ会議クライアントのうちの要求している少なくとも１つに送信するよう動作することを含むことができる。
【００４５】
処理ユニットはさらに、複数のビデオ会議クライアントのうちの少なくとも１つから、少なくとも１つの第２の情報源ビデオストリームを受信するよう動作でき、少なくとも１つの第２の情報源ビデオストリームは、少なくとも１つの情報源ビデオストリームの異なるバージョンを含む。異なるバージョンは、少なくとも１つの第１のビデオ情報源ストリームのより低解像度のバージョンを含むことができる。
【００４６】
処理ユニットは以下のように動作できる。すなわち、少なくとも１つの第１のビデオ会議クライアントから少なくとも１つの第１のビデオ情報源ストリームを受信し、少なくとも１つの第２のビデオ会議クライアントから少なくとも１つの第２のビデオ情報源ストリームを受信し、少なくとも１つの第３のビデオ会議クライアントから、少なくとも１つの第１のビデオ会議クライアント、および少なくとも１つの第２のビデオ会議クライアントからの情報源ビデオストリームを求めるサブスクリプション要求を受信し、ならびに、少なくとも１つの第１のビデオ情報源ストリーム、および少なくとも１つの第２のビデオ情報源ストリームの合成ビデオストリームを作成するよう動作できる。合成ビデオストリームを作成するよう動作することは、少なくとも１つのビデオ情報源ストリームのフレームレートを変更し、変更したストリーム（単数または複数）を単一のビデオストリームに結合するよう動作することを含むことができる。
【００４７】
さらに本発明に従う他の実施形態は、ビデオ会議におけるレートマッチングを提供するシステムを含むことができる。システムは、メモリ記憶装置、およびメモリ記憶装置に接続された処理ユニットを含むことができる。処理ユニットは以下のように動作できる。すなわち、複数のビデオ会議クライアントから、複数のビデオストリームを受信し、複数のビデオ会議クライアントのうちの少なくとも１つから、少なくとも１つのサブスクリプション要求を受信し、および複数のビデオストリームのうちの要求された少なくとも１つを、複数のビデオストリームのうちの要求された少なくとも１つの情報源クライアントから、要求された解像度、および要求されたフレームレートで受信しているかどうかを判定するよう動作できる。複数のビデオストリームのいずれも要求された解像度、および／またはフレームレートにマッチしない場合、処理ユニットは以下のように動作できる。すなわち、情報源クライアントがマッチするビデオストリームを送信できるかどうかを判定し、情報源クライアントにそのようにするよう要求し、およびマッチするビデオストリームを、要求しているクライアントに送信するよう動作できる。サブスクリプション要求は、複数のビデオストリームのうちの少なくとも１つ、要求された解像度、および／または要求されたフレームレートを求める要求を含むことができる。各クライアントは、複数のビデオストリームのうちの少なくとも１つを送信できる。
【００４８】
図６は、コンピューティング装置６００を含むシステムのブロック図である。本発明の一実施形態に従って、上述のメモリ記憶装置、および上述の処理ユニットを、図６のコンピューティング装置６００などのコンピューティング装置内に実装することができる。ハードウェア、ソフトウェア、またはファームウェアの任意の適切な組み合わせを使用して、メモリ記憶装置および処理ユニットを実装できる。例えば、メモリ記憶装置、および処理ユニットを、コンピューティング装置６００、またはコンピューティング装置６００と結合して任意の他のコンピューティング装置６１８で実装できる。上述のシステム、上述の装置、および上述のプロセッサは例であり、他のシステム、他の装置、および他のプロセッサは、本発明の実施形態に従って、上述のメモリ記憶装置、および上述の処理ユニットを含むことができる。さらに、コンピューティング装置６００は、上述のようにシステム１００の動作環境を含むことができる。システム１００は、他の環境で動作でき、コンピューティング装置６００に限定されない。
【００４９】
図６を参照すると、本発明の一実施形態に従うシステムは、コンピューティング装置６００などのコンピューティング装置を含むことができる。基本構成において、コンピューティング装置６００は、少なくとも１つの処理ユニット６０２、および少なくとも１つのシステムメモリ６０４を含むことができる。コンピューティング装置の構成、およびコンピューティング装置の種類によって、システムメモリ６０４は、揮発性メモリ（例えば、ＲＡＭ(random access memory)）、不揮発性メモリ（例えば、ＲＯＭ(read-only  memory））、フラッシュメモリ、またはこれらのいずれかの組み合わせを含むことができるが、これらに限定されない。システムメモリ６０４は、オペレーティングシステム６０５、１つまたは複数のプログラミングモジュール６０６を含むことができ、かつプログラムデータ６０７を含むことができる。オペレーティングシステム６０５は、例えば、コンピューティング装置６００の動作を制御するのに適している。一実施形態において、プログラミングモジュール６０６は、例えば、データ分析モジュール、および／またはビデオ会議サーバ６２０を含むことができる。さらに、本発明の実施形態は、グラフィックスライブラリ、他のオペレーティングシステム、または他の任意のアプリケーションプログラムとともに実施されることができ、任意の特定のアプリケーション、または任意の特定のシステムに限定されない。この基本構成を、点線６０８内のこれらのコンポーネントにより、図６に示している。
【００５０】
コンピューティング装置６００は、追加の特徴または機能性を有することができる。例えば、コンピューティング装置６００はまた、例えば、磁気ディスク、光ディスク、またはテープなど、追加のデータ記憶装置（リムーバブルおよび／または非リムーバブル）を含むこともできる。このような追加の記憶装置は、リムーバブル記憶装置６０９、および非リムーバブル記憶装置６１０により、図６に示している。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のための任意の方法または技術で実装した、揮発性および不揮発性、リムーバブルおよび非リムーバブルの媒体を含むことができる。システムメモリ６０４、リムーバブル記憶装置６０９、および非リムーバブル記憶装置６１０は全て、コンピュータ記憶媒体の例（すなわち、メモリ記憶装置）である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ(electrically erasable programmable read-only memory）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ(digital versatile disk）もしくは他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、情報を記憶するために使用でき、コンピューティング装置６００によりアクセス可能な他の任意の媒体を含むことができるが、これらに限定されない。このようなコンピュータ記憶媒体はいずれも、装置６００の一部として存在することができる。コンピューティング装置６００はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置など、入力装置（単数または複数）６１２を有することができる。表示装置、スピーカ、プリンタなど出力装置（単数または複数）６１４を含むこともできる。上述の装置は例であり、他のものを使用できる。
【００５１】
コンピューティング装置６００はまた、装置６００が、例えば、イントラネット、またはインターネットなどの分散コンピューティング環境内のネットワーク上などで、他のコンピューティング装置６１８と通信することを可能にすることができる通信接続６１６を含むことができる。通信接続６１６は、通信媒体の一例である。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または、搬送波もしくは他の転送機構など、被変調データ信号による他のデータによって具体化でき、かつ、任意の情報配信媒体を、一般に含むことができる。用語「被変調データ信号」は、１つまたは複数の特性セット(characteristics set)を有するか、信号で情報をエンコードするような方法で変更した信号を表すことができる。例として、限定でもなく、通信媒体は、有線ネットワーク、または直接有線接続など有線媒体、および、音波、高周波 (radio frequency）（ＲＦ）、赤外線、および他の無線媒体などの無線媒体を含むことができる。本明細書において使用されるような、用語「コンピュータ可読媒体」は、記憶媒体、および通信媒体の両方を含むことができる。
【００５２】
上述のように、オペレーティングシステム６０５を含む、多数のプログラムモジュール、および多数のデータファイルを、システムメモリ６０４に記憶できる。処理ユニット６０２上で実行中に、プログラミングモジュール６０６（例えば、ビデオ会議サーバ６２０）は、例えば、上述のように、方法４００の段階のうち１つまたは複数を含む処理を実施できる。上述の処理は例であり、処理ユニット６０２は、他の処理を実施できる。本発明の実施形態に従って使用できる他のプログラミングモジュールは、電子メール、およびコンタクトアプリケーション、文書処理アプリケーション、表計算アプリケーション、データベースアプリケーション、スライドプレゼンテーションアプリケーション、描画またはコンピュータ支援のアプリケーションプログラムなどを含むことができる。
【００５３】
一般に、本発明の実施形態に従って、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および、特定のタスクを実施できるか、または特定の抽象データ型を実装できる他の種類の構造を含むことができる。さらに、本発明の実施形態を、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム制御可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成で実施できる。本発明の実施形態を、通信ネットワークを介してリンクされたリモートの処理装置によりタスクを実施する分散コンピューティング環境において、実施できる。分散コンピューティング環境において、プログラムモジュールを、ローカルおよびリモート両方のメモリ記憶装置に配置できる。
【００５４】
さらに、本発明の実施形態を、分離した電子素子を含む電気回路、論理ゲートを含むパッケージ化もしくは集積された電子チップ、マイクロプロセッサを利用する回路で、または電子素子を含む単一のチップもしくは複数のマイクロプロセッサ上で、実施できる。本発明の実施形態を、例えばＡＮＤ、ＯＲ、およびＮＯＴなどの論理動作を実施可能な他の技術を使用して、実施することもできる。これらの技術は、機械技術、光学技術、流体技術、および量子技術を含むが、これらに限るものではない。加えて、本発明の実施形態を、汎用コンピュータ内、または他の任意の回路もしくはシステムにおいて、実施できる。
【００５５】
本発明の実施形態を、例えば、コンピュータ処理（方法）、コンピュータシステムとして、またはコンピュータプログラム製品もしくはコンピュータ可読媒体などの製品として、実装できる。コンピュータプログラム製品は、コンピュータシステムにより読み取り可能であり、コンピュータ処理を実行する命令のコンピュータプログラムをエンコードするコンピュータ記憶媒体として存在することができる。コンピュータプログラム製品はまた、コンピュータシステムにより読み取り可能であり、コンピュータ処理を実行する命令のコンピュータプログラムをエンコードしている、搬送波上の伝搬信号として存在することもできる。従って、本発明を、ハードウェア、および／またはソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）で具現化できる。言い換えると、本発明の実施形態は、命令実行システムにより、もしくは命令実行システムに接続して使用する媒体において具現化されるコンピュータ使用可能プログラムコード、またはコンピュータ可読プログラムコードを有し、コンピュータ使用可能記憶媒体、またはコンピュータ可読記憶媒体上のコンピュータプログラム製品の形をとることができる。コンピュータ使用可能媒体、またはコンピュータ可読媒体は、命令実行のシステム、機器、もしくは装置によって、またはそれらに接続して使用するプログラムを含み、記憶し、通信し、伝播し、または転送できる、任意の媒体として存在することができる。
【００５６】
コンピュータ使用可能媒体、またはコンピュータ可読媒体は、例えば、電子、磁気、光学、電磁気、赤外線、もしくは半導体のシステム、機器、装置、または伝搬媒体として存在することができるが、これらに限定されない。より具体的なコンピュータ可読媒体の例（限定的リスト）として、コンピュータ可読媒体は以下を含むことができる。すなわち、１つまたは複数の有線を有する電気接続、ポータブルコンピュータディスク、ＲＡＭ(random access memory)、ＲＯＭ(read-only memory)、ＥＰＲＯＭ（erasable programmable read-only memory、またはフラッシュメモリ）、光ファイバ、ポータブルＣＤ−ＲＯＭ(compact disc read-only memory)を、含むことができる。コンピュータ使用可能媒体、またはコンピュータ可読媒体は、プログラムを印刷する紙、または他の適切な媒体であることさえ可能であることに留意されたい。なぜならば、例えば紙または他の媒体の光学式スキャン介して、プログラムを電気的に取り込み、次いでコンパイルし、解釈し、または必要に応じて別の方法で適切な方法で処理して、次いで、コンピュータメモリに記憶できるためである。
【００５７】
本発明の実施形態を、例えば、本発明の実施形態による方法、システム、およびコンピュータプログラム製品のブロック図および／または動作を示す図を参照して上述している。ブロックで記した機能／動作は、いずれかのフローチャートに示した順序以外でも起こり得る。例えば、含まれている機能性／動作によっては、連続して示されている２つのブロックを、実際には、実質的に並行して実行することができ、または、ブロックを、時には、逆の順序で実行することができる。
【００５８】
本発明のある特定の実施形態について説明したが、他の実施形態も存在し得る。さらに、本発明の実施形態を、メモリおよび他の記憶媒体に記憶されたデータに関連づけて説明したが、ハードディスク、フロッピーディスク、もしくはＣＤ−ＲＯＭ、インターネットからの搬送波、または、ＲＡＭもしくはＲＯＭの他の形態のような二次記憶装置など、他の種類のコンピュータ可読媒体上にデータを記憶するか、これらからデータを読み取ることもできる。さらに、開示した方法の段階を、段階の順序を並び替える、および／または、段階を挿入もしくは削除することを含む任意の方法で、本発明から逸脱することなく修正することができる。
【００５９】
本明細書に含まれる規定において、著作権を含む全ての権利は、出願人に権限が与えられ、出願人の所有権である。出願人は、本明細書に含まれる規定において、権利全てを保有および保持し、承認された特許品の再生産に関してのみその物質を再生産する許可を与えるものであり、他の目的のためには一切許可を与えない。
【００６０】
本明細書は例を含むが、本発明の範囲は、添付の特許請求の範囲により示すものである。さらに、本明細書を構造的特報および／または方法論的動作に特有の言語で記述したが、特許請求の範囲は、上述の特徴または動作に限定されない。それどころか、上述の特定の特徴および動作は、本発明の実施形態の例として開示される。
【図１】
0005781441.tif 000002
【図２】
0005781441.tif 000003
【図３】
0005781441.tif 000004
【図４】
0005781441.tif 000005
【図５】
0005781441.tif 000006
【図６】
0005781441.tif 000007