JP2005507200A - バンド幅最オプティマイザを用いるグループ・ビデオ会議システムおよび方法 - Google Patents
バンド幅最オプティマイザを用いるグループ・ビデオ会議システムおよび方法 Download PDFInfo
- Publication number
- JP2005507200A JP2005507200A JP2003538920A JP2003538920A JP2005507200A JP 2005507200 A JP2005507200 A JP 2005507200A JP 2003538920 A JP2003538920 A JP 2003538920A JP 2003538920 A JP2003538920 A JP 2003538920A JP 2005507200 A JP2005507200 A JP 2005507200A
- Authority
- JP
- Japan
- Prior art keywords
- client
- communication speed
- video
- transmission
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 15
- 230000005540 biological transmission Effects 0.000 claims abstract description 73
- 238000004891 communication Methods 0.000 claims description 81
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 22
- 239000012634 fragment Substances 0.000 description 16
- 230000033228 biological regulation Effects 0.000 description 13
- 239000003381 stabilizer Substances 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000001105 regulatory effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1827—Network arrangements for conference optimisation or adaptation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
- H04L47/365—Dynamic adaptation of the packet size
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
- H04L65/4038—Arrangements for multi-party communication, e.g. for conferences with floor control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
ネットワーク上にマルチメディアの伝送を送受信するためのシステムは、2台以上のクライアントとサーバとを含む。各々のクライアントは、ネットワークに接続されており、オーディオおよびビデオデータを生成するとともにネットワークを介してそれらを受信する。サーバは、クライアントからオーディオおよびビデオデータを受信し、オーディオおよびビデオデータをクライアントに送信する。オーディオおよびビデオデータを伝送する間、クライアントとサーバは、オーディオおよびビデオデータを伝送すべき速度を動的に決定する。
【選択図】図1
【選択図】図1
Description
【発明の開示】
【0001】
関連出願とのクロスリファレンス
この出願は、スペンサーらによる、「可変バンド幅を有するグループ・ビデオ会議システムおよび方法(System and Method for Group Video Teleconferencing with Variable Bandwidth)」、2001年8月24日に出願された米国特許出願番号09/938,721号の一部継続出願である。出展明示により内容の全文をここに取り込む。
【0002】
技術分野
本発明は、ビデオ会議に関し、特に、ビデオ会議中にバンド幅の有用性に基づいて通信速度を変化させることに関する。
【0003】
背景技術
現在のビデオ会議技術では、比較的に、長い待ち時間、低い効率および劣ったスケーラビリティが問題となっている。この理由の1つは、現在の技術が、通信速度およびパケットサイズに対して、「最小の共通バンド幅」を用いることにある。したがって、複数のクライアントが同時に会議を行う場合、ビデオデータの伝送は、最小のバンド幅で可能なのと同じくらいだけ高速である。その結果、いくつかのクライアントが比較的低速のダイヤルアップ接続を用いる一方、他がT1,DSLまたは類似したブロードバンド接続を用いる会議では、ブロードバンド接続を用いるそれらのクライアントは、それらの能力を利用することで、ダイヤルアップ接続の速度でのみデータを受信することになる。
【0004】
現在のビデオ会議技術は、ビデオフレーム伝送蓄積転送方法を用いる。ビデオフレームが開設される度に、それらは、開設しているコンピュータ上のそれら全てに格納される。これは、サーバ上に大容量の利用可能なメモリを必要とし、サーバの作業負荷を増加させることになる。その結果、従来のシステムは、劣ったスケーラビリティを有し、待ち時間を増加させた。
【0005】
現在のビデオ会議技術は、ファイアウォールまたはプロキシサーバを通過させようとした場合、しばしば困難に遭遇する。ファイアウォールは、ビデオ会議技術で一般的であるプロトコル、UDP(User Datagram Protocol)を用いて送信されたデータと互換性を持たない。プロキシサーバは、リクエストをフィルタリングするために用いられ、この結果、ビデオ会議トラヒックを多くの場合含むトラヒックの特定のタイプを除去することになる。
【0006】
発明が解決しようとする課題
前述した限界を考慮すれば、ビデオ会議システムにとって、全てのクライアントのバンド幅能力のより良い利点を得て、待ち時間を短縮し、スケーラビリティを向上させ、ファイアウォールとプロキシサーバとの互換性を持つ必要性がある。
【0007】
課題を解決するための手段
本発明は、層サーバ・アーキテクチャを含むデータを動的に伝送するためにシステムを提供することにより、待ち時間を短縮し、かつマルチメディア・グループ会議の効率を向上させる。マルチメディア・グループ会議のためにシステムを用いているクライアントは、ネットワークに接続されており、該ネットワークを介して、オーディオおよびビデオデータを送受信する。クライアントがシステムにアクセスすると、サーバの1つが、クライアントへの接続で利用可能な最大バンド幅を決定する。そして、サーバは、伝送されているデータの適当な通信速度およびパケットサイズを確立する。マルチメディアデータを伝送している間、バンド幅オプティマイザは、最も効率的な通信速度を決定するために、パケット損失の実際の上下通信時間および通信速度をモニタリングする一方、通信速度を調整する。バンド幅オプティマイザは、バックログが検出されると、データに対するパケットサイズおよび伝送間隔を減少させることにより、データ通信速度を低下させる。バンド幅オプティマイザは、バックログが検出されない場合、バックログが再び検出されるまで、データ通信速度を徐々に増加させる。
【0008】
発明を実施するための最良の形態
図1は、本発明を含むシステムの典型的な実施形態の図である。システムは、ネットワーク100、ルータ112、1つ以上のクライアント102、および1つ以上のサーバ104を含んでいる。典型的な実施形態では、2つ以上のクライアントは、ネットワーク100を介して、互いにマルチメディアデータを送受信する。サーバ104は、クライアントからクライアントへのデータの正確な伝送のために必要とされる如何なるマルチメディア機能をも容易にする。ルータ112には、サーバ104への、あるいはサーバ104からのデータフローを容易にする、一般的な任意のルーティング機器が用いられる。典型的な実施形態では、層サーバ・アーキテクチャは、エントリサーバ106、ロビーサーバ108およびルームサーバ110(ひとまとめにしてサーバ104)のいくつか、または全てを含んでいる。ロビーおよびルームのメタファは、ロード・バランシングと場所重視の会議環境とを容易にする。個人との会議を選択する代わりに、各クライアント102は、ロビー、および該ロビー内のルームに入室することを選択する。オンライン・チャットルームと同様に、各クライアント102は、ルーム内の1つ以上の他のクライアントにオーディオ、ビデオおよびデータを送信することができる。
【0009】
サーバ104は、ネットワーク100を介してクライアント102に接続されている。典型的な実施形態では、ネットワーク100は、インターネット、専用ネットワークまたはイントラネットであってもよいが、他のネットワークを用いることもでき、ネットワークの特定の形態に限定されない。あるいは、いくつかの実施形態では、サーバ104およびクライアント102は、ネットワーク100を通過することなく、間接または直接、通信してもよい。クライアント102は、オーディオおよびビデオ信号を容易に送受信するために、多くのオーディオおよびビデオ機器構成を備えていてもよい。この機器は、ビデオ表示ユニット、スピーカ、マイクロフォン、カメラ、および、以下で説明する会議機能を実装するための適切なソフトウェアを実行する処理ユニットを含んでいてもよい。クライアント102の典型的な構成については、以下で、図4を参照してより詳細に説明する。
【0010】
マルチメディアデータを送受信するためには、クライアント102は、サーバ104と情報を交換する。典型的な実施形態は、1つまたは2つのエントリサーバ106を含んでいるが、システムは、エントリサーバ106の数に制限されない。エントリサーバ106は、ログイン処理中にパスワード暗号化を提供することを含む、ログイン・クライアント102の管理機能を担う。エントリサーバ106は、利用可能なロビーのディレクトリを維持し、各クライアント102がロビーを選択することを可能とし、そのクライアント102がそのロビーに入るための許可を有することを確実にすることを担う。エントリサーバ106に含まれる唯一の状態情報は、利用可能なロビーのディレクトリであるので、エントリサーバ106は、容易に集められる。また、エントリサーバ106は、バンド幅、待ち時間およびプロトコル有用性のクライアントイニシエート分析で支援する。クライアントがログインすると、クライアント102およびエントリサーバは、クライアント102へ、またはクライアント102からの接続のバンド幅を確立し、UDPが伝送プロトコルとして機能するかどうかを判定するテスト伝送を他の要求された情報とともに交換する。UDPの使用がファイアウォールまたはプロキシサーバで制限されないならば、セッション間の以後の伝送は、UDPを用いて送信される。しかしながら、UDPの使用が制限されるならば、以後の伝送は、TCP(transmission control protocol)を用いて送信される。
【0011】
ロビーサーバ108は、エントリサーバ106に識別情報を送信する。この情報は、ロビーにアクセスしていないクライアントのリストを含んでいる。また、ロビーサーバ108は、ロード・バランシング機能も実行する。クライアント102が新しいルームの開設を要求すると、ロビーサーバ108は、最小の負荷を有するルームサーバ110にルームを開設する。典型的な実施形態では、ロビーにログインした如何なるクライアント102でも、新しいルームの開設を要求することができる。あるいは、新しいルームの開設は、予め設定されたクライアント102、または特定の基準を満たすクライアントに限定されてもよい。いずれかのクライアント102によるルームの使用は、開設しているクライアント102に課金されるので、例えば、新しいルームの開設をリクエストすることは、支払い請求情報を与えられているクライアント102に制限されてもよい。他の例として、クライアント102は、物議をかもしたり、公序良俗に反したり、それ以外でも何らかの制限事項を含むルームの開設を、規制してもよい。
【0012】
典型的な実施形態では、新しいルームの開設を要求しているクライアント102、またはモデレータには、会議に関して特別な制御特権が与えられる。例えば、モデレータは、特定のクライアント102が、会議に参加し続けることを防止したり、クライアント102が情報の特定のタイプにアクセスすることを制御したり、ルームを閉じたりする。また、モデレータは、他のクライアント102へ特権を委任してもよい。典型的な実施形態では、ロビーサーバ108は、複数のルームサーバ110、例えば7つ以上のルームサーバ110を支援してもよい。クライアント102は、ロビーから、新しいルームの開設を要求する、あるいは既存のルームに入室する、というオプションを有する。
【0013】
典型的な実施形態では、ルームサーバ110は、システムのマルチメディア機能を容易にする。ルームサーバ110は、以下で、図3を参照してより詳細に説明される。図1は、考えられるアーキテクチャの一例のみを示し、本発明は、図1に示す典型的なアーキテクチャに限定されない。例えば、エントリサーバ106、ロビーサーバ108またはルームサーバ110の数が変化するように、サーバ104の全数は、変化してもよい。また、システムに含まれるサーバには、他のタイプがあってもよい。代替の実施形態では、システムは、ルータ112なしで動作してもよい。また、クライアント102およびサーバ104は、中間のネットワーク接続なしで、直接接続されてもよい。
【0014】
図2は、本発明の典型的な実施形態に従うマルチメディア・ストリーミング図である。クライアント102A、102B、102N(ひとまとめにしてクライアント102)は、ルームサーバ110を介して、互いに、オーディオおよびビデオデータを交換する。各クライアント102は、送信機204および受信機202を含んでいてもよい。ルームサーバ110は、ルームサーバ110を通して送信している各クライアント102に対して、固有の受信機210および送信機212を設置する。クライアント102は、図2に示されていないネットワーク100を介してルームサーバ110に接続されている。クライアント102およびルームサーバ110については、以下に、図3及び図4を参照して、より詳細に説明する。
【0015】
オーディオデータ216およびビデオデータ214は、開設しているクライアント102の送信機204から、サーバ110のクライアント102に対する受信機210に送信される。典型的な実施形態では、各クライアント102は、見るため、聞くためにビデオおよびオーディオを選択する。これらの選択は、加入者リストおよび申込みリストの使用を通して容易に行われる。加入者リストは、ルームで他のクライアントにデータを再配布するために受信機202、210と連携して用いられる。受信機202、210の各々は、オーディオデータに対して1つの加入者リストに、ビデオデータに対して1つの加入者リストにグループ化されている。加入者リストは、与えられたオーディオ・ストリームまたはビデオストリームを申し込んだ、それらのクライアントを識別する。申込みリストは、データを多重送信することができるので、ビデオ・ストリームを特定のビデオチャネルに関連ビデオストリーム信機204、212と連携して用いられる。送信機204、212の各々は、オーディオに対して1つの申込みリストに、ビデオに対して1つの申込みリストにグループ化されている。申込みリストは、オーディオおよびビデオが送信される、加入者リスト上のクライアントを識別する。ゆえに、加入者リストのクライアントは、オーディオおよびビデオを受信し、申込みリストのクライアントは、オーディオおよびビデオを送信することになる。典型的な実施形態では、各クライアント102が一度に1つのオーディオ・ストリームだけを聞くことになるので、オーディオ申込みリストは、1つのエントリだけを含むことになる。代替の実施形態では、システムは、マルチ・チャネル・オーディオをサポートしてもよく、この場合、オーディオ・ストリームは、ビデオストリームと同様の方法で多重送信される。ビデオ申込みリストは、同時に表示される各ビデオ・ウインドウに対して1つ、最大8つのエントリを含んでもよい。
【0016】
加入者リストと申込みリストとにおける情報に基づいて、ルームサーバ110の送信機210は、ビデオおよびオーディオ・ストリーム214、216を、ルームサーバ110内の受信するクライアント102の送信機212へ送信する。それから、送信機212は、ビデオおよびオーディオを、それぞれのクライアント102に送信する。マルチメディアデータの送信については、以下で、図3および図4を参照してより詳細に説明する。
【0017】
図2に示される実施例において、クライアント102Aは、ビデオデータ214Aおよびオーディオデータ216Aを送信している。図示の他の2つのクライアント、すなわちクライアント102B、102Nは、各々、ビデオデータ214B、214Nを送信している。クライアント102Aは、それ自身のビデオ214Aと、クライアント102Bからのビデオ214Bを受信している。この結果、送信機212Aに対するビデオ申込みリストは、クライアント102A、102Bを含み、受信機202A、202Bの双方に対する加入者リストは、クライアント102Aを含むことになる。図示する実施形態において、クライアント102Aのビデオ214Aは、ネットワーク100を介して、ルームサーバ110に送信されて戻ることに注目する。代わりの実施形態では、クライアント102Aは、ネットワークを介して送信されて戻るビデオ214Aなしの直接フィードバックとして、ローカル・ビデオ・イメージを見ることになる。この直接フィードバックは、待ち時間を短縮し、スケーラビリティを向上させる。クライアント102Bは、クライアント102Aからビデオ214Aおよびオーディオ216Aを受信し、クライアント102Nからビデオ214Nを受信している。クライアント102Nは、クライアント102Aからビデオ214Aおよびオーディオ216Aを受信し、クライアント102Bからビデオ214Bを受信している。クライアント102B、102Nが最初にこのオーディオおよびビデオデータの見聞きを要求する時に、関連する申込みおよび加入者リストがアップデートされる。
【0018】
クライアント102Aの送信機204Aは、クライアント102Aで開設されたオーディオ・ストリーム216Aとビデオストリーム214Aを、ルームサーバ110の受信機210Aに送信する。受信機210Aは、クライアント102B、102Nへの伝送のために、オーディオ・ストリーム216Aを、送信機212Bおよび送信機212Nの各々に送信する。受信機210Aは、クライアント102A、102B、102Nへの伝送のために、ビデオストリーム214Aを、送信機212A、212Bおよび212Nの各々に送信する。クライアント102Bの送信機204Bは、クライアント102Bで開設されたビデオストリーム214Bを、ルームサーバ110の受信機210Bに送信する。受信機210Bは、クライアント102Aおよび102Nへの伝送のために、ビデオストリーム214Bを、送信機212Aおよび212Nの各々に送信する。送信機204Nは、クライアント102Nで開設されたビデオストリーム214Nを、ルームサーバ110の受信機210Nへ送信する。受信機210Nは、クライアント102Bへの伝送のために、ビデオストリーム214Nを送信機212Bに送信する。
【0019】
送信機212Aは、ビデオ214Aおよび214Bを、クライアント102Aの受信機202Aに送信する。送信機212Bは、ビデオ214A、214Nおよびオーディオ216Aを、クライアント102Bの受信機216Aに送信する。送信機212Nは、ビデオ214A、214Bおよびオーディオ216Aを、クライアント102Nの受信機202Nへ送信する。送信機212A、212B、212Nからのこれら送信は、これら送信に対するそれぞれの申込みリストによって管理される。
【0020】
ビデオおよびオーディオ送信に加えて、クライアントは、スライドショー・プレゼンテーション、テキスト文書、写真画像、音楽ファイルなどのようなデータを送信してもよい。図2に示すビデオおよびオーディオ・ストリームにように、データストリームは、いずれかのクライアント102から1つ以上の受信クライアント102に送信されてもよい。図2には、3つのクライアント102が示されているが、各々に、ルームサーバ110の固有の送信機212および受信機210を有する、如何なる数のクライアント102があってもよい。
【0021】
図3は、本発明の典型的な実施形態によるルームサーバのブロック図である。ルームサーバ110は、一対の受信機210と送信機212を、ゼロ、または1つ以上含んでいてもよい。典型的な実施形態において、受信機210および送信機212は、ソフトウェアで実装され、ルームサーバ110は、マルチメディアデータを送受信している各クライアント102に対して、固有の受信機210と送信機212とを開設する。受信機210は、シーケンサ306を含んでいてもよい。送信機212は、オーディオ再シーケンサ308、ビデオ再シーケンサ310、マルチメディア・オーディオ・キュー312、ビデオ・マルチプレクサ314およびパケット・エンコーダ316のいくつか、または全てを含んでもいてもよい。
【0022】
各受信機210は、クライアント102からマルチメディアデータを受信するためにネットワーク100に接続されている。また、受信機210は、1つ以上の送信機212に接続されている。受信機210は、クライアント102から受信したデータを送信機212に転送する。また、送信機212は、ネットワーク100に接続されており、受信機210により送信機212に転送されたデータは、ネットワーク100を介して受信クライアント102に送信される。
【0023】
ルームサーバ110は、送信しているクライアント102からマルチメディア・ブロックの形態でデータを受信する。典型的な実施形態において、マルチメディア・ブロックは、シーケンス番号、オーディオフレーム、ビデオフラグメント、ビデオチャネル、レシート、ビデオパラメータ、オーディオパラメータ、ビデオ・エンド・フラグおよびオーディオ・エンド・フラグのいくつか、あるいは全てを含むデータパケットのタイプである。シーケンス番号は、マルチメディア・ブロックがオーディオまたはビデオデータを含んでいる場合、マルチメディア・ブロックを再オーダするために用いられる。マルチメディア・ブロックがオーディオデータを含んでいる場合には、このデータは、オーディオフレームの形態である。マルチメディア・ブロックがビデオデータを含んでいる場合には、このデータは、ビデオフラグメントの形態である。ビデオフラグメントは、ビデオフレームのスタート、ミドル、エンドを表すデータ構造である。また、ビデオフラグメントは、全ビデオフレームまたは前の伝送中にビデオフラグメントが失われたことを示す特別な値であってもよい。ビデオチャネルは、ビデオデータがある場合、ビデオフラグメントに割り当てられたチャネルである。受理証は、他のパーティにより受信されたマルチメディア・ブロックのシーケンス番号の最新のものである。受理証は、以下で、図6を参照して説明されるように、バンド幅の配分を決定する際に用いられる。ビデオおよびオーディオパラメータは、新しいビデオまたはオーディオデータを送信し始めるとき、マルチメディア・ブロックの一部として送信される。ビデオおよびオーディオ・エンド・フラグは、オーディオまたはビデオ送信の終わりを示す。ビデオデータに対する、パラメータおよびエンド・フラグは、新しいチャネルでデータを送信し始めることか、ビデオストリームの終端でチャネルを閉じることを含む。一実施形態において、オーディオデータは、ビデオデータより高い優先順位を有してもよく、ゆえに、データを送信できない場合、オーディオデータの精度を保証する。この場合、マルチメディア・ブロックは、全ての利用可能なオーディオデータを含む。典型的な実施形態では、シーケンサ306は、マルチメディア・ブロックを受信し、それらをオーディオ・メディア・ブロックおよびビデオ・メディア・ブロックに分離する。また、シーケンサ306は、マルチメディア・ブロックの適切な順序を保証するために、ネットワーク100を介して受信したマルチメディア・ブロックに対するシーケンス番号を用いる。シーケンサ306は、次の予想されるマルチメディア・ブロックの受領まで、シーケンスから外れたマルチメディア・ブロックを一時的に格納する。見失ったマルチメディア・ブロックが、格納領域が使い果たされる前に受信されなくなると、シーケンサ306は、マルチメディア・ブロックが失われたと見なす。
【0024】
オーディオ・メディア・ブロックは、シーケンサ306から送信機212のオーディオ再シーケンサ308にルームサーバ110によって転送される。シーケンサ306のように、オーディオ再シーケンサ308は、オーディオ・メディア・ブロックからのオーディオデータを、適切な順序で、すなわちそれらが生成された順序に配置する。典型的な実施形態では、オーディオ再シーケンサ308は、それがパケット損失を取り扱わないという点でシーケンサ306と異なる。その結果、シーケンスから外れて受信されたパケットに対してより一時的な格納を実現する。オーディオ再シーケンサ308からは、順番に配列されたオーディオ・メディア・ブロックが、マルチメディア・オーディオ・キュー312に送信される。マルチメディア・オーディオ・キュー312は、付加的なマルチメディアデータを受け入れるために受信クライアント102に利用可能なバンド幅があるまで、オーディオ・メディア・ブロックをバッファリングする。オーディオ・メディア・ブロックは、マルチメディア・ブロックを形成するために、ビデオ・メディア・ブロックに結合され、ネットワーク100または如何なる確立された伝送接続を介して、受信クライアント102に送信される。
【0025】
ルームサーバ110は、ビデオ・メディア・ブロックをビデオ再シーケンサ310に転送する。典型的な実施形態では、8つのビデオチャネルの各々に対して1つのビデオ再シーケンサがある。各チャンネルは、クライアント102のディスプレイ404上の固有の表示ウインドウに表示されるビデオデータを取り扱う。ゆえに、8つのビデオチャネルを有する典型的な実施形態では、8つ以上の同時に表示されたビデオストリームがあることになる。ビデオ・メディア・ブロックは、ビデオ・マルチプレクサ314に転送される。
【0026】
ビデオ・マルチプレクサ314は、各ビデオチャネルに対してビデオ・キューを含んでいる。ビデオ・キューは、FIFO(first in first out)であり、ビデオフラグメントを格納する。ビデオフラグメントは、全ビデオフレーム、ビデオフレームのスタート、ビデオフレームのミドル、ビデオフレームのエンド、または失われたビデオフラグメントを表す特別な値であってもよい。典型的な実施形態では、ビデオフラグメントの特定のシーケンスだけがビデオ・キューに入力されてもよい。例えば、「スタート」の後に「ミドル」が続き、「ミドル」の後に「エンド」が続くことになるが、「スタート」は、他の「スタート」の後に続くことはない。ビデオ・キュー内のフラグメントを配列することは、フラグメントからビデオフレームの再構成を容易にする。全ビデオフレームまたはビデオフレームの特定のバイト数は、ビデオ・キューから出力されてもよい。例えば、ビデオ・キューが200バイトの「スタート」フラグメントを格納していた場合、キューは、要求があれば、キュー内の次のフラグメントとして100バイトの「ミドル」フラグメントを放置して、100バイトの「スタート」フラグメントを出力することになる。
【0027】
ビデオ・マルチプレクサ314内のビデオ・キューは、ビデオデータに対するバッファとして機能する。ビデオ・メディア・ブロックがビデオ・マルチプレクサ314による順序で受信されるように、それらは、ビデオ・キュー内の完全なビデオフレームに組み立てられる。一度、全ビデオフレームが組み立てられると、ビデオデータを受け入れるための受信クライアント102への接続に利用可能なバンド幅がない場合、ビデオ・キューは、フレームを落とすことになる。バンド幅が受信クライアント102への接続に利用可能になると、ビデオ・メディア・ブロックは、パケット・エンコーダ316に送信され、マルチメディア・ブロックを形成するためにオーディオ・メディア・ブロックに結合される。マルチメディア・ブロックは、ネットワーク100または何らかの確立された伝送接続を介して受信クライアント102に送信される。
【0028】
図4は、本発明の典型的な実施形態によるクライアント102のブロック図である。一実施形態において、クライアント102は、受信機202、送信機204、ディスプレイ404、スピーカ406、カメラ408およびマイクロフォン410を含んでいる。各クライアント102は、マルチメディアデータを送受信することができる。
【0029】
送信側では、カメラ408は、ビデオ・イベントを生成し、マイクロフォン410は、オーディオ・イベントを生成する。ビデオ・イベントは、ビデオ・マルチプレクサ314に送信される。ルームサーバ110のビデオ・マルチプレクサ314のように、クライアントのビデオ・マルチプレクサ314は、多重ビデオ信号を取り扱うために多重チャネルを有する。ゆえに、クライアント102は、複数のビデオカメラを含んでいてもよい。また、ルームサーバ110のビデオ・マルチプレクサ314のように、クライアント102のビデオ・マルチプレクサ314は、バンド幅要求を減少するために、ビデオフレームを配列するため、およびドロップするために用いられる、各チャネルに対してビデオ・キューを含んでいる。
【0030】
オーディオ・イベントは、マイクロフォン410からマルチメディア・オーディオ・キュー312に送信される。バンド幅がデータを送信するために利用可能になると、ビデオ・メディア・ブロックとオーディオ・メディア・ブロックは、パケット・エンコーダ316に送信され、マルチメディア・ブロックを形成するために結合される。マルチメディア・ブロックは、ネットワーク100または何らかの確立された伝送接続を介して、ルームサーバ110へ送信される。
【0031】
受信側では、受信機202は、ネットワーク100を介して、ルームサーバ110からマルチメディア・ブロックを受信する。受信機202内のシーケンサ306は、適切な順序にマルチメディア・ブロックを順序付けて、それらをビデオ・メディア・ブロックとオーディオ・メディア・ブロックとに分離する。オーディオ・メディア・ブロックは、スピーカ406に送信され、サウンドに変換される。該サウンドは、特定の実施に従ってアナログまたはデジタルいずれの形式で生成されてもよい。ビデオ・メディア・ブロックは、ビデオ・デマルチプレクサ402へ送信され、別個のビデオフレームに分解される。ビデオ・マルチプレクサ314と同様に、ビデオ・デマルチプレクサ402は、ビデオフレームを組み立てるため、およびビデオフレームをドロップするために用いられる、ビデオ・キューを含む。ビデオフレームは、ビデオディスプレイ404へ送信され、従来の方法で表示される。
【0032】
図5は、本発明の典型的な実施形態によるスレッディング・モデルのブロック図である。マルチメディア伝送に加えて、ルームサーバ110の受信機210および送信機212は、それらの各々のクライアント102へ要求を送信するとともに、クライアント102からリクエストを受信する。これらの事象には、オーディオまたはビデオを特定のクライアントに送信するというリクエスト、特定のクライアントのビデオを見るというリクエスト、見ているビデオからクライアントを遮断するというリクエストなどを含む。モデレータの地位を割り当てられたクライアントは、モデレータに制限されるリクエストを行うことになる。これらリクエストの例には、クライアントを退場させるというリクエスト、特定のデータタイプにアクセスするべく特定のクライアントに特権を与えるというリクエスト、ルームを閉じるというリクエスト、または他のクライアントにモデレータの任務を与えるというリクエストが含まれる。
【0033】
図5に示すような典型的な実施形態では、リクエスト・プロセッサ500は、入力イベント・スレッド・プール502、メイン・スレッド・プール504、出力イベント・スレッド・プール506およびリクエスト・キュー508を含んでいる。入力イベント・スレッド・プール502は、受信機210およびリクエスト・キュー508に接続されている。リクエスト・キュー508は、入力イベント・スレッド・プール502、メイン・スレッド・プール504および出力イベント・スレッド・プールに接続されている。メイン・スレッド・プール504は、リクエスト・キュー508に接続されている。出力イベント・スレッド・プール506は、リクエスト・キュー508および送信機212に接続されている。リクエスト・プロセッサ500は、メモリに格納され、コンピュータ・プロセッサにより実行されるソフトウェアコードであってもよいが、本発明は、この実施形態に制限されない。典型的な実施形態では、メモリおよびコンピュータ・プロセッサは、ルームサーバ110の構成部品である。ソフトウェア命令は、フロッピーディスク(登録商標)、CD-ROM、または何らかの他の適当な記憶媒体のようなコンピュータで可読な媒体に格納されていてもよい。リクエスト・プロセッサ500内の構成部品の接続は、ソフトウェアコードにより定義される論理的な接続であってもよい。
【0034】
受信機210は、入力リクエストをクライアント102からリクエスト・プロセッサ500へ送信する。入力リクエストは、処理のために入力イベント・スレッド・プール502へ送信される。入力リクエストは、即時応答と長期動作を要求するリクエストを含んでいる。即時応答を要求する入力リクエストは、TCPを介して送信される入力ネットワーク・トラヒックを取り扱うために作られる。長期動作である入力リクエストは、接続が伝送プロトコルとしてUDPを支持する場合、UDPを介して送信される入力ネットワーク・トラヒックを取り扱うために作られる。
【0035】
出力リクエストは、処理のために出力イベント・スレッド・プール506に送信される。出力リクエストは、接続が伝送プロトコルとしてUDPを支持する場合、UDPを介して送信される外へ向かうデータを取り扱うために作られる。出力リクエストを処理する際に、出力イベント・スレッド・プール506は、出力イベントを発生する。このイベントは、外へ向かうデータをクライアント102へ送信するために1つ以上の送信機212を呼び出す。
【0036】
内部リクエストは、ルームサーバ110に内蔵されているタスクを実行するために用いられる。内部リクエストは、問題をロックしているか、遮断している潜在性のために入力または出力リクエストで取り扱うのに適切でない他のタスクと同様に、ルームサーバ110内でのオーディオおよびビデオの再送信からなる。内部リクエストは、リクエスト・キュー508に格納されており、スレッドが利用可能になると、メイン・スレッド・プール504に発送される。
【0037】
図6は、本発明の典型的な実施形態によるダイナミックデータ伝送のフローチャートである。ダイナミックデータ伝送の処理は、伝送の最小待ち時間およびマルチメディアデータの受信を確実にするために、クライアント102およびルームサーバ110の双方によって容易にされる。クライアント102がエントリサーバ106を通してログインすることによって会議セッションを始めると、バンド幅調整器は、上下マルチメディア伝送に対する現在のバンド幅および待ち時間を決定602する。クライアント102およびルームサーバ110は、各々、典型的な実施形態では、ソフトウェアで実装されるバンド幅調整器を含んでいる。バンド幅および待ち時間情報に基づいて、バンド幅調整器は、各接続に対して最適なパケットサイズおよび最適なパケット間隔を決定604する。ルームサーバ110は、ジャーナル、テーブル、または他の同様なデータ構造に、送信機212によって送信される次のパケットに対する、パケットサイズおよび出発時間を記録606する。クライアント102は、次のパケットを送信し、ジャーナル、テーブル、または他の同様なデータ構造に、このパケットに対するパケットサイズおよび出発時間を記録606する。
【0038】
一実施形態において、送信機(ルームサーバ110か、クライアント102のいずれか)は、受信機に送信すべきデータがさらにあるかどうかを判定608する。送信すべきデータがこれ以上ない場合には、処理を終了する。送信すべき更なるデータがある場合には、バンド幅調整器は、入ってくるマルチメディア・ストリームから受け取った各受理証に対して、ジャーナルから記録を取り除くことによりジャーナルを更新610する。ルームサーバ110では、は、受信機210で受理される。クライアント102では、受理証は、受信機202で受理される。また、バンド幅調整器は、失われたパケットに対してもジャーナルから記録を取り除く。そして、バンド幅調整器は、ジャーナルに残っているエントリの各々に対応している受理証に対する、予想到着時刻を決定612する。予想到着時刻は、パケットの出発時刻、待ち時間、出て行くパケットサイズならびに入ってくるパケットサイズ、およびバンド幅を用いることにより決定される。
【0039】
クライアント102およびルームサーバ110でのバンド幅調整器は、いずれかのジャーナルに記録されたパケットの期限が過ぎているか否かを判断614するために、予想到着時刻を用いる。期限が過ぎたパケットがあった場合には、バンド幅調整器は、送信機204、212がオーディオデータのみを送信するためのモード616に入る。オーディオデータは、ビデオとオーディオデータが結合したものより、送信のために低いバンド幅を要求するので、データがオーディだけに限定される場合、送信の待ち時間は減少することになる。期限が過ぎているパケットがない場合には、バンド幅調整器は、送信機204,212がオーディオおよびビデオデータの双方を送信するモード618に入る。ビデオおよびオーディオデータを取り扱うのに十分利用可能なバンド幅が接続にある場合、期限切れのパケットはなく、バンド幅調整器は、オーディオおよびビデオデータの双方の送信を許可することになる。これらの2つのモードの間の切り替わりの結果、より小さいバンド幅接続に対して、オーディオデータは、ビデオデータの断続的な伝送とともに連続的に送信される。オーディオモード、またはオーディオおよびビデオモードのいずれかに一度入ると、クライアント102またはルームサーバ110は、次のパケットを送信606し、パケットサイズおよびこのパケットに対する出発時刻を記録する。
【0040】
バンド幅オプティマイザ
図7は、バンド幅オプティマイザ700の典型的な実施形態のブロック図である。バンド幅オプティマイザは、最も効率的な通信速度を決定するために、パケット損失の実際の上下通信時間と速度をモニタリングする一方、通信速度を調整する。典型的な実施形態では、この効率的な通信速度は、ネットワーク待ち時間またはパケット損失のいずれかのかなりの増加なしに、データを伝送することができる最大速度として定義される。典型的な実装例では、以下に述べるバンド幅オプティマイザ700および該バンド幅オプティマイザ700の構成部品は、ソフトウェアで実装される。UDPが伝送のために用いられたプロトコルである場合、このソフトウェアは、クライアント102およびルームサーバ106の双方に配置されてもよい。TCPが伝送のために用いられたプロトコルである場合、クライアント102のみに配置される。バンド幅オプティマイザ700は、上下のマルチメディア・トラヒックのデータ内のバックログを継続してモニタする。バンド幅オプティマイザがバックログを検出した場合には、パケットサイズおよびデータに対する伝送間隔を減少させることによって、データの通信速度を低下させる。バンド幅オプティマイザがバックログを検出しない場合には、バックログが再び検出されるまで、データの通信速度を徐々に増加させる。この処理は、後でさらに詳細に説明される。
【0041】
バンド幅オプティマイザ700のこの実施形態は、接続アナライザ702、スタビライザ704、モニタ706、コントローラ708、規制モジュール710およびスロットル712を含んでいる。接続アナライザ702は、最大上下通信速度およびネットワーク待ち時間を決定する。クライアント102は、通信速度を手動で確立してもよいし、接続アナライザ702が上下通信速度およびネットワーク待ち時間を自動的に検出するように要求してもよい。典型的な配置において、それら3つの変数は、マルチメディアデータを送受信するのに先立って一度決定される。
【0042】
スタビライザ704は、上下の「現在の上限」通信速度を調整する。現在の上限通信速度は、接続アナライザ702により決定された最大通信速度とは異なる。現在の上限通信速度は、まず、接続アナライザ702によって決定された最大通信速度にセットされる。スタビライザ704は、所定の期間にわたってバックログされるために現れた接続の時間のパーセンテージを決定することにより現在の上限通信速度を調整する。例えば、典型的な実施形態では、スタビライザ704は、過去2秒にわたってバックログされるために現れた接続の時間のパーセンテージを決定してもよい。この時間のパーセンテージがゼロで、かつ現在の上限通信速度が最大通信速度より小さい場合、現在の上限は、与えられたパーセンテージずつ増加する。例えば、この増加は2パーセントであってもよい。通信速度が増加すると、もうそれ以上、増加(または減少)は、増加後の与えられた期間、許可されない。一例として、増加(または減少)は、増加の後、750msの間許可されない。バックログされた時間のパーセンテージが25を越える場合、現在の上限は、バックログされるために現れた接続の時間のパーセンテージずつ減少する。上限が減少すると、もうそれ以上、減少(または増加)は、与えられた期間、たとえば2秒間、許可されない。この調整は、接続アナライザ702からの入力および規制モジュール710からの入力に基づいている。典型的な実施形態では、規制モジュール710は、伝送の最後の2秒で検出されたバックログのパーセンテージのスタビライザ704に指標を送信する。スタビライザ704は、接続がバックログされた時間のパーセンテージを決定するために規制ジャーナルを見る。スタビライザ704は調整された上限を、規制モジュール710に送信する。
【0043】
典型的な実施形態では、モニタは、ミリ秒でバックログ量を決定し、これをコントローラ708に送信する。モニタ706は、データパケットが遠くにある受信機に送信される時刻、送信されたデータパケットのサイズ、サーバ待ち時間に対する値と同様に、データパケットが実際に受信される時刻、および受理証を含んだ下りパケットのサイズを含む、それら遠隔地の受信機によって送信された受理証を、入力として受信する。モニタ706は、データパケットが受信されるべきとき、および該データパケットに対する受理証が受信されるべきときを計算するために、データパケットが送信される時刻と、既知の待ち時間情報とを用いる。待ち時間の決定については、図9を参照して以下で更に詳細に説明する。ミリ秒でバックログ量を決定するために、モニタ706は、データパケットおよび該データパケットに対する受理証の双方が受信されると予想される時刻の情報を取得し続け、それらの時刻を、それらが実際に受信される時刻と比較する。この情報から、モニタ706は、実際の通信速度を計算することができる。モニタ706は、実際の通信速度と予想した通信速度との間の差分を決定する。このバックログ時刻は、コントローラ708に送信される。
【0044】
典型的な実施形態では、コントローラ708は、モニタ706から受信されたバックログが所定の閾値より上であるか否かを判定する。バックログが与えられた閾値より上である場合は、コントローラ708は、ポジティブな指標を規制モジュール710に送信する。そうでない場合は、コントローラ708は、ネガティブな指標を規制モジュール710に送信する。例えば、閾値が30ミリ秒のバックログでセットされていると、コントローラ708は、バックログがこの閾値より上である場合、ポジティブな指標を送信することになる。
【0045】
規制モジュール710は、スタビライザ704から現在の上限通信速度を受信し、コントローラ708から指標を受信する。指標がポジティブである場合、規制モジュールは、現在の通信速度を、所定の最小通信速度に制限する。指標がネガティブである場合、規制モジュールは、現在の通信速度として現在の上限通信速度を用いる。結果として生じる現在の通信速度は、スロットル712に送信される。また、規制モジュールは、規制履歴のジャーナルを保持する。ジャーナルは、テーブルまたは他の類似したデータ構造であってもよい。ジャーナルは、スタビライザ704に対するバックログのパーセンテージを決定するために調べられる。
【0046】
典型的な実施形態では、スロットル712は、規制モジュール710から通信速度を受信する。スロットル712は、出入データに対する、最適なパケットサイズおよびパケット通信間隔を決定するために通信速度を用いる。入力間隔は、通信プロトコルとしてTCPを用いる場合、出力間隔に常に等しい。通信プロトコルとしてUDPが用いられる場合には、入力間隔は、遠隔地の送信機のスロットル712によって決定される。
【0047】
図8は、バンド幅オプティマイザ処理の典型的な実施形態のフローチャートである。バンド幅オプティマイザ700は、最大現行バンド幅を決定802する。バンド幅オプティマイザ700内のモニタ706は、現行バックログを決定804する。コントローラ708は、ステップ806で、現行バックログが所定の閾値より大きいかを判定する。もしそうであるならば、規制モジュール710は、現在のバンド幅値を平均通信速度に制限する。もしそうでなければ、スタビライザ704は、ステップ810で、バックログがゼロより大きいかを判定する。バックログがゼロより大きい場合には、バンド幅オプティマイザは、現在のバンド幅値を保持する。バックログがない場合には、スタビライザ704は、所定の量ずつ現在のバンド幅値を増加814する。そして、スロットルは、現在のバンド幅値で示される通信速度に基づいて、現在のパケットサイズと通信速度とを調整する。
【0048】
図9は、通信待ち時間を決定するために本発明により用いられるように、待ち時間タイムライン900の典型的な実施形態を示す図である。バンド幅オプティマイザ700は、データが発生時点からマルチメディア表示まで伝わるとき、データを追跡するためにタイムスタンプを用いる。各データパケットが伝送経路で特定のポイント902を通過するとき、データパケットはタイムスタンプと関連付けられる。タイムスタンプは、データパケット自体に追加されてもよいし、あるいは、データの識別子に関連付けてもよく、データパケットより異なる場所に送信される。典型的な実施形態では、データが送信機に取り込まれたとき、各データパケットは、ポイント902Aでタイムスタンプと関連付けられる。送信機は、データパケットがどちらの方向に進行しているかに応じて、クライアント102またはサーバ104のいずれかになる。また、送信機がデータパケットを受信機に送信したとき、データパケットは、ポイント902Bでタイムスタンプと関連付けられる。送信機のように、この場合の受信機は、クライアント102またはサーバ104のいずれかになる。そして、データパケットは、受信機がデータを受信し、受理証を発生したときにポイント902Cで、受信機が受理証を送信機に送信したときにポイント902Dで、送信機が受理証を受信したときにポイント902Eで、送信機がデータパケットに対する待ち時間を決定するときにポイント902Fで、タイムスタンプと関連付けられる。
【0049】
ポイント902Aと902Bの間で生じる待ち時間、およびポイント902Eと902Fの間で生じる待ち時間は、送信機に起因している。ポイント902Bと902Cの間で生じる待ち時間、およびポイント902Dと902Eとの間で生じる待ち時間は、ネットワークに起因している。最後に、ポイント902Cと902Dとの間で生じる待ち時間は受信機に起因している。ゆえに、伝送ストリームを通してデータパケットを追跡することにより、全ての伝送に対する待ち時間を決定することができる。そして、モニタ706は、現在のバックログを決定するために待ち時間情報を用いる。
【0050】
図10は、本発明により用いられるようなバンド幅表示器の典型的な実施形態を示すブロック図である。バンド幅表示器は、ユーザインターフェースに必要とされる情報を得るためにバンド幅オプティマイザと入出力を行う。ユーザインターフェースについては、以下で、図11を参照してより詳細に説明する。典型的な実施形態では、バンド幅表示器1000は、ソフトウェアで実装され、表示器モジュール1002およびバンド幅メータ1004を含んでいる。表示器モジュール1002は、バンド幅決定モジュール702、モニタ706および規制モジュール710から情報を受信し、バンド幅メータ1004へ情報を出力する。バンド幅メータ1004は、図11で説明するユーザインターフェースを作るために、この情報を用いる。バンド幅決定モジュール702は、最大上下バンド幅の値を、表示器モジュール1002へ送信する。モニタ706は、上下バックログ情報を表示器モジュール1002へ送信する。バックログ情報は、実際に送信されたデータに対する通信速度およびバックログを防止するために要求される通信速度の双方を決定するために用いられる。規制モジュール710は、出力規制速度を表示器モジュール1002へ送信する。送信機は、入力規制速度を表示器モジュール1002へ提供する。いずれの速度も規制された場合、より小さい速度が、バンド幅メータ・ユーザインターフェースに対するスケールとして用いられる。速度が規制されなかった場合には、バンド幅決定モジュールから受信した最大バンド幅がユーザインターフェースに対するスケールとして用いられることになる。表示器モジュール1002は、入出力値をバンド幅メータ1004に提供するために速度情報を用いる。これらの値には、最大通信速度、現在の通信速度、およびバックログなしでデータフローを維持するために要求される速度が含まれる。
【0051】
図11は、バンド幅メータに対するユーザインターフェースの典型的な実施形態を示す図である。バンド幅メータ・ウインドウ1100は、入力バンド幅スケール1102および出力バンド幅スケール1104を含んでいる。各スケール1102、1104は、水平ヒストグラムメータ1108およびパーセンテージ値1106を含んでいる。パーセンテージ値1106は、水平ヒストグラムメータ1108上にグラフィカルに表示される。各スケールは、マルチメディアデータに対する最大通信速度を表示し、3つの部分を含んでいる。第1の部分1110は、現在のデータ通信速度を示し、第2の部分1112は、利用可能なバンド幅量を示し、第3の部分1114は、バックログなしで、望ましいデータフローを保持するために要求される速度の増加を示す。
【0052】
図11aは、上下通信速度が最大に近く、バックログがないことを示しているバンド幅メータを示す図である。図11bは、バックログなしで上下通信速度が最大に近く、入力通信速度が所望するより遅く、わずかなバックログが生じていることを示しているバンド幅メータを示す図である。図11cは、入力通信速度が所望するよりちょうどわずかに小さく、出力通信速度が所望するより非常に小さいことを示しているバンド幅メータを示す図である。この低い通信速度は、ヒストグラムメータ1108の第3の部分1114によって示されるように、大きなバックログを生じる。図11dは、上下通信速度が利用可能な最大通信速度に比べて小さく、バックログがないことを示しているバンド幅メータを示す図である。
【0053】
マイクロフォン・キュー
図2に示されるように、1度にたった1つのクライアント102だけがオーディオ216を送信する。図2において、クライアント102Aは、クライアント102Bおよび102Nによって受信されたオーディオ216Aを送信している。クライアントがオーディオを送信しているとき、クライアントは、マイクロフォンを占有する。マイクロフォン・キューは、マイクロフォンの仲裁を容易にするために、ルームサーバ106によって実装されたデータ構造である。キューの先頭のクライアント102は、マイクロフォンを占有し、ルーム内の他のクライアントによって聞かれることになるクライアントである。各クライアント102は、2つのリクエスト:話すリクエストおよび中断するリクエスト、を行うオプションを有する。これらリクエストは、上記図5を参照して説明したように、リクエスト・プロセッサ500によって取り扱われる。クライアントが話すためにリクエストを行うと、クライアントは、マイクロフォン・キューの最後に置かれる。マイクロフォンを占有するクライアントがマイクロフォンを手放すと、クライアントは、キュー内の次のクライアントにマイクロフォンを占有させるのを許可するために、マイクロフォン・キューから取り除かれる。クライアント102が中断するためにリクエストを行うと、クライアントは、マイクロフォン・キューの先頭に置かれる。ゆえに、該クライアントは、マイクロフォンを占有し、マイクロフォンの以前の占有者を含む他のクライアントは、上記クライアントの後ろ側のキュー内のそれらの順序を保持する。
【0054】
マイクロフォン・キューに対するユーザインターフェースの典型的な実施形態は、2つのアイコンを含んでいる。1つのアイコンは、マイクロフォンの占有1204を表し、マイクロフォンを占有しているクライアントの名前に隣接して表示される。第2のアイコンは、マイクロフォン・キューへの配置1206を表し、話すことを要求したクライアント1208の名前に隣接して表示される。マイクロフォン・キュー内の順序は、ユーザインターフェース内のクライアント・リストの順序によって表される。ゆえに、マイクロフォンを占有しているクライアントの名前は、リストの最上位にあることになり、その次に表示される第1のアイコンを有することになる。マイクロフォンの予定の次のクライアントの名前は、次のリストに載っているものであり、その次に表示される第2のアイコンを有することになる。
【0055】
インスタント・メッセンジャ統合
一実施形態において、図1に示されるビデオ会議システムは、ルータ112に接続された、1つ以上のインスタント・メッセンジャ・サーバを含んでいる。インスタント・メッセンジャ・サーバは、インスタント・ミーティング機能を実装する。この機能は、図13に示すように、現在利用可能なインスタント・メッセンジャ・プログラムと同様なユーザインターフェースを用いる。この実施形態では、各クライアントは、コンタクトリスト1300を作ることができる。コンタクトリスト1300は、クライアント102に固有であり、クライアントの画面名称1308によって識別される。コンタクトリスト1300を作る際に、クライアント102は、如何なる数の他のクライアント102の画面名称を追加してもよい。これらの画面名称は、リスト1302に表示される。各名称の隣には、各クライアント102がインスタント・ミーティング・サービスにサインインしているか否かを示すアイコン1304がある。この実施形態において、クライアント102は、ミーティングへの参加のために1つ以上のクライアント102を選択することによって、間接的にルームの開設を要求する。参加に招待されたクライアントを選択するために、要請しているクライアントは、画面名称リスト1302で、招待されたクライアントのユーザ名をハイライト表示してもよい。要請しているクライアントは、新たなルームを設置し、全ての招待されたクライアントへのアクセスを許可するために、インスタント・メッセンジャ・サーバに指示を出すビデオ呼出ボタン1306を選択する。それから、要請しているクライアントは、何れかのポイントでビデオ呼出を始めるために選択してもよく、要請しているクライアントは、新たなルームに入室し、サーバは、招待したクライアントに招待状を送信する。招待されたクライアントも、招待状を受理すると、新たなルームに入室する。
【0056】
ルーム内では、クライアント102は、ビデオ、オーディオおよびテキストを交換してもよい。時には、この情報の交換は、ミーティングに参加しているクライアント102の間で衝突を引き起こす可能性がある。これらのユーザは、衝突を解決することを希望して、ビデオ会議を運営する会社に苦情を届けてもよい。衝突を解決するために、会社は、広範囲な研究を実施することを要求されるかも知れず、衝突という結果になった出来事の後に続くクライアントの発言だけに頼らなければならなくなるかも知れない。証拠ジャーナル機能は、これが起こるのを防止する。クライアント102が他のクライアント102について不満を言いたい場合、不満を言っているクライアントは、証拠ジャーナルを起動させることができる。一旦起動したならば、証拠ジャーナルは、ごく最近のオーディオ、ビデオおよびテキストを記録する。例えば、ジャーナルは、5分のテキスト、5秒のオーディオ、および10秒のビデオを取り込む。時間間隔は、予め決められており、会社の必要性に基づいて変更してもよい。
【0057】
本発明の典型的な実施形態および様々な変形例を十分に説明したので、当業者は、ここに与えられた教えに基づき、本発明から逸脱しない数多くの変形例および同等物が存在することを理解されたであろう。すなわち、本発明は、前述の説明によって限定されることなく、添付の特許請求の範囲により制限されるものである。
【図面の簡単な説明】
【0058】
【図1】本発明の典型的な実施形態を含むネットワーク図である。
【図2】本発明の典型的な実施形態によるマルチメディアのストリーミング図である。
【図3】本発明の典型的な実施形態によるルームサーバのブロック図である。
【図4】本発明の典型的な実施形態によるクライアントのブロック図である。
【図5】本発明の典型的な実施形態によるスレッディング・モデルの図である。
【図6】本発明の典型的な実施形態による動的データ伝送のフローチャートである。
【図7】バンド幅オプティマイザの典型的な実施形態のブロック図である。
【図8】バンド幅オプティマイザ処理の典型的な実施形態のフローチャートである。
【図9】伝送待ち時間を決定するために本発明によって用いられる、待ち時間タイムラインの典型的な実施形態を示す概念図である。
【図10】本発明によって用いられる、バンド幅インジケータの典型的な実施形態を表すブロック図である。
【図11】バンド幅メータのためのユーザインターフェースの典型的な実施形態を示す図である。
【図12】マイクロフォン・キューを含むユーザインターフェースの典型的な実施形態の表示画面を示す模式図である。
【図13】インスタント・ミーティング機能で用いられる、コンタクトリストの典型的な実施形態の表示画面を示す模式図である。
【符号の説明】
【0059】
100 ネットワーク
102 クライアント
102A,102B,102N クライアント
104 サーバ
106 エントリサーバ
108 ロビーサーバ
110 ルームサーバ
112 ルータ
202,210 受信機
204,212 送信機
214 ビデオデータ
214A,214B,214N ビデオストリーム
216 オーディオデータ
216A オーディオストリーム
306 シーケンサ
308 オーディオ再シーケンサ
310 ビデオ再シーケンサ
312 マルチメディア・オーディオ・キュー
314 ビデオ・マルチプレクサ
316 パケット・エンコーダ
402 ビデオ・デマルチプレクサ
404 ディスプレイ
406 スピーカ
408 カメラ
410 マイクロフォン
500 リクエスト・プロセッサ
502 入力イベント・スレッド・プール
504 メイン・スレッド・プール
506 出力イベント・スレッド・プール
508 リクエスト・キュー
700 バンド幅オプティマイザー
702 バンド幅決定モジュール
702 接続アナライザ
704 スタビライザ
706 モニタ
708 コントローラ
710 規制モジュール
712 スロットル
【0001】
関連出願とのクロスリファレンス
この出願は、スペンサーらによる、「可変バンド幅を有するグループ・ビデオ会議システムおよび方法(System and Method for Group Video Teleconferencing with Variable Bandwidth)」、2001年8月24日に出願された米国特許出願番号09/938,721号の一部継続出願である。出展明示により内容の全文をここに取り込む。
【0002】
技術分野
本発明は、ビデオ会議に関し、特に、ビデオ会議中にバンド幅の有用性に基づいて通信速度を変化させることに関する。
【0003】
背景技術
現在のビデオ会議技術では、比較的に、長い待ち時間、低い効率および劣ったスケーラビリティが問題となっている。この理由の1つは、現在の技術が、通信速度およびパケットサイズに対して、「最小の共通バンド幅」を用いることにある。したがって、複数のクライアントが同時に会議を行う場合、ビデオデータの伝送は、最小のバンド幅で可能なのと同じくらいだけ高速である。その結果、いくつかのクライアントが比較的低速のダイヤルアップ接続を用いる一方、他がT1,DSLまたは類似したブロードバンド接続を用いる会議では、ブロードバンド接続を用いるそれらのクライアントは、それらの能力を利用することで、ダイヤルアップ接続の速度でのみデータを受信することになる。
【0004】
現在のビデオ会議技術は、ビデオフレーム伝送蓄積転送方法を用いる。ビデオフレームが開設される度に、それらは、開設しているコンピュータ上のそれら全てに格納される。これは、サーバ上に大容量の利用可能なメモリを必要とし、サーバの作業負荷を増加させることになる。その結果、従来のシステムは、劣ったスケーラビリティを有し、待ち時間を増加させた。
【0005】
現在のビデオ会議技術は、ファイアウォールまたはプロキシサーバを通過させようとした場合、しばしば困難に遭遇する。ファイアウォールは、ビデオ会議技術で一般的であるプロトコル、UDP(User Datagram Protocol)を用いて送信されたデータと互換性を持たない。プロキシサーバは、リクエストをフィルタリングするために用いられ、この結果、ビデオ会議トラヒックを多くの場合含むトラヒックの特定のタイプを除去することになる。
【0006】
発明が解決しようとする課題
前述した限界を考慮すれば、ビデオ会議システムにとって、全てのクライアントのバンド幅能力のより良い利点を得て、待ち時間を短縮し、スケーラビリティを向上させ、ファイアウォールとプロキシサーバとの互換性を持つ必要性がある。
【0007】
課題を解決するための手段
本発明は、層サーバ・アーキテクチャを含むデータを動的に伝送するためにシステムを提供することにより、待ち時間を短縮し、かつマルチメディア・グループ会議の効率を向上させる。マルチメディア・グループ会議のためにシステムを用いているクライアントは、ネットワークに接続されており、該ネットワークを介して、オーディオおよびビデオデータを送受信する。クライアントがシステムにアクセスすると、サーバの1つが、クライアントへの接続で利用可能な最大バンド幅を決定する。そして、サーバは、伝送されているデータの適当な通信速度およびパケットサイズを確立する。マルチメディアデータを伝送している間、バンド幅オプティマイザは、最も効率的な通信速度を決定するために、パケット損失の実際の上下通信時間および通信速度をモニタリングする一方、通信速度を調整する。バンド幅オプティマイザは、バックログが検出されると、データに対するパケットサイズおよび伝送間隔を減少させることにより、データ通信速度を低下させる。バンド幅オプティマイザは、バックログが検出されない場合、バックログが再び検出されるまで、データ通信速度を徐々に増加させる。
【0008】
発明を実施するための最良の形態
図1は、本発明を含むシステムの典型的な実施形態の図である。システムは、ネットワーク100、ルータ112、1つ以上のクライアント102、および1つ以上のサーバ104を含んでいる。典型的な実施形態では、2つ以上のクライアントは、ネットワーク100を介して、互いにマルチメディアデータを送受信する。サーバ104は、クライアントからクライアントへのデータの正確な伝送のために必要とされる如何なるマルチメディア機能をも容易にする。ルータ112には、サーバ104への、あるいはサーバ104からのデータフローを容易にする、一般的な任意のルーティング機器が用いられる。典型的な実施形態では、層サーバ・アーキテクチャは、エントリサーバ106、ロビーサーバ108およびルームサーバ110(ひとまとめにしてサーバ104)のいくつか、または全てを含んでいる。ロビーおよびルームのメタファは、ロード・バランシングと場所重視の会議環境とを容易にする。個人との会議を選択する代わりに、各クライアント102は、ロビー、および該ロビー内のルームに入室することを選択する。オンライン・チャットルームと同様に、各クライアント102は、ルーム内の1つ以上の他のクライアントにオーディオ、ビデオおよびデータを送信することができる。
【0009】
サーバ104は、ネットワーク100を介してクライアント102に接続されている。典型的な実施形態では、ネットワーク100は、インターネット、専用ネットワークまたはイントラネットであってもよいが、他のネットワークを用いることもでき、ネットワークの特定の形態に限定されない。あるいは、いくつかの実施形態では、サーバ104およびクライアント102は、ネットワーク100を通過することなく、間接または直接、通信してもよい。クライアント102は、オーディオおよびビデオ信号を容易に送受信するために、多くのオーディオおよびビデオ機器構成を備えていてもよい。この機器は、ビデオ表示ユニット、スピーカ、マイクロフォン、カメラ、および、以下で説明する会議機能を実装するための適切なソフトウェアを実行する処理ユニットを含んでいてもよい。クライアント102の典型的な構成については、以下で、図4を参照してより詳細に説明する。
【0010】
マルチメディアデータを送受信するためには、クライアント102は、サーバ104と情報を交換する。典型的な実施形態は、1つまたは2つのエントリサーバ106を含んでいるが、システムは、エントリサーバ106の数に制限されない。エントリサーバ106は、ログイン処理中にパスワード暗号化を提供することを含む、ログイン・クライアント102の管理機能を担う。エントリサーバ106は、利用可能なロビーのディレクトリを維持し、各クライアント102がロビーを選択することを可能とし、そのクライアント102がそのロビーに入るための許可を有することを確実にすることを担う。エントリサーバ106に含まれる唯一の状態情報は、利用可能なロビーのディレクトリであるので、エントリサーバ106は、容易に集められる。また、エントリサーバ106は、バンド幅、待ち時間およびプロトコル有用性のクライアントイニシエート分析で支援する。クライアントがログインすると、クライアント102およびエントリサーバは、クライアント102へ、またはクライアント102からの接続のバンド幅を確立し、UDPが伝送プロトコルとして機能するかどうかを判定するテスト伝送を他の要求された情報とともに交換する。UDPの使用がファイアウォールまたはプロキシサーバで制限されないならば、セッション間の以後の伝送は、UDPを用いて送信される。しかしながら、UDPの使用が制限されるならば、以後の伝送は、TCP(transmission control protocol)を用いて送信される。
【0011】
ロビーサーバ108は、エントリサーバ106に識別情報を送信する。この情報は、ロビーにアクセスしていないクライアントのリストを含んでいる。また、ロビーサーバ108は、ロード・バランシング機能も実行する。クライアント102が新しいルームの開設を要求すると、ロビーサーバ108は、最小の負荷を有するルームサーバ110にルームを開設する。典型的な実施形態では、ロビーにログインした如何なるクライアント102でも、新しいルームの開設を要求することができる。あるいは、新しいルームの開設は、予め設定されたクライアント102、または特定の基準を満たすクライアントに限定されてもよい。いずれかのクライアント102によるルームの使用は、開設しているクライアント102に課金されるので、例えば、新しいルームの開設をリクエストすることは、支払い請求情報を与えられているクライアント102に制限されてもよい。他の例として、クライアント102は、物議をかもしたり、公序良俗に反したり、それ以外でも何らかの制限事項を含むルームの開設を、規制してもよい。
【0012】
典型的な実施形態では、新しいルームの開設を要求しているクライアント102、またはモデレータには、会議に関して特別な制御特権が与えられる。例えば、モデレータは、特定のクライアント102が、会議に参加し続けることを防止したり、クライアント102が情報の特定のタイプにアクセスすることを制御したり、ルームを閉じたりする。また、モデレータは、他のクライアント102へ特権を委任してもよい。典型的な実施形態では、ロビーサーバ108は、複数のルームサーバ110、例えば7つ以上のルームサーバ110を支援してもよい。クライアント102は、ロビーから、新しいルームの開設を要求する、あるいは既存のルームに入室する、というオプションを有する。
【0013】
典型的な実施形態では、ルームサーバ110は、システムのマルチメディア機能を容易にする。ルームサーバ110は、以下で、図3を参照してより詳細に説明される。図1は、考えられるアーキテクチャの一例のみを示し、本発明は、図1に示す典型的なアーキテクチャに限定されない。例えば、エントリサーバ106、ロビーサーバ108またはルームサーバ110の数が変化するように、サーバ104の全数は、変化してもよい。また、システムに含まれるサーバには、他のタイプがあってもよい。代替の実施形態では、システムは、ルータ112なしで動作してもよい。また、クライアント102およびサーバ104は、中間のネットワーク接続なしで、直接接続されてもよい。
【0014】
図2は、本発明の典型的な実施形態に従うマルチメディア・ストリーミング図である。クライアント102A、102B、102N(ひとまとめにしてクライアント102)は、ルームサーバ110を介して、互いに、オーディオおよびビデオデータを交換する。各クライアント102は、送信機204および受信機202を含んでいてもよい。ルームサーバ110は、ルームサーバ110を通して送信している各クライアント102に対して、固有の受信機210および送信機212を設置する。クライアント102は、図2に示されていないネットワーク100を介してルームサーバ110に接続されている。クライアント102およびルームサーバ110については、以下に、図3及び図4を参照して、より詳細に説明する。
【0015】
オーディオデータ216およびビデオデータ214は、開設しているクライアント102の送信機204から、サーバ110のクライアント102に対する受信機210に送信される。典型的な実施形態では、各クライアント102は、見るため、聞くためにビデオおよびオーディオを選択する。これらの選択は、加入者リストおよび申込みリストの使用を通して容易に行われる。加入者リストは、ルームで他のクライアントにデータを再配布するために受信機202、210と連携して用いられる。受信機202、210の各々は、オーディオデータに対して1つの加入者リストに、ビデオデータに対して1つの加入者リストにグループ化されている。加入者リストは、与えられたオーディオ・ストリームまたはビデオストリームを申し込んだ、それらのクライアントを識別する。申込みリストは、データを多重送信することができるので、ビデオ・ストリームを特定のビデオチャネルに関連ビデオストリーム信機204、212と連携して用いられる。送信機204、212の各々は、オーディオに対して1つの申込みリストに、ビデオに対して1つの申込みリストにグループ化されている。申込みリストは、オーディオおよびビデオが送信される、加入者リスト上のクライアントを識別する。ゆえに、加入者リストのクライアントは、オーディオおよびビデオを受信し、申込みリストのクライアントは、オーディオおよびビデオを送信することになる。典型的な実施形態では、各クライアント102が一度に1つのオーディオ・ストリームだけを聞くことになるので、オーディオ申込みリストは、1つのエントリだけを含むことになる。代替の実施形態では、システムは、マルチ・チャネル・オーディオをサポートしてもよく、この場合、オーディオ・ストリームは、ビデオストリームと同様の方法で多重送信される。ビデオ申込みリストは、同時に表示される各ビデオ・ウインドウに対して1つ、最大8つのエントリを含んでもよい。
【0016】
加入者リストと申込みリストとにおける情報に基づいて、ルームサーバ110の送信機210は、ビデオおよびオーディオ・ストリーム214、216を、ルームサーバ110内の受信するクライアント102の送信機212へ送信する。それから、送信機212は、ビデオおよびオーディオを、それぞれのクライアント102に送信する。マルチメディアデータの送信については、以下で、図3および図4を参照してより詳細に説明する。
【0017】
図2に示される実施例において、クライアント102Aは、ビデオデータ214Aおよびオーディオデータ216Aを送信している。図示の他の2つのクライアント、すなわちクライアント102B、102Nは、各々、ビデオデータ214B、214Nを送信している。クライアント102Aは、それ自身のビデオ214Aと、クライアント102Bからのビデオ214Bを受信している。この結果、送信機212Aに対するビデオ申込みリストは、クライアント102A、102Bを含み、受信機202A、202Bの双方に対する加入者リストは、クライアント102Aを含むことになる。図示する実施形態において、クライアント102Aのビデオ214Aは、ネットワーク100を介して、ルームサーバ110に送信されて戻ることに注目する。代わりの実施形態では、クライアント102Aは、ネットワークを介して送信されて戻るビデオ214Aなしの直接フィードバックとして、ローカル・ビデオ・イメージを見ることになる。この直接フィードバックは、待ち時間を短縮し、スケーラビリティを向上させる。クライアント102Bは、クライアント102Aからビデオ214Aおよびオーディオ216Aを受信し、クライアント102Nからビデオ214Nを受信している。クライアント102Nは、クライアント102Aからビデオ214Aおよびオーディオ216Aを受信し、クライアント102Bからビデオ214Bを受信している。クライアント102B、102Nが最初にこのオーディオおよびビデオデータの見聞きを要求する時に、関連する申込みおよび加入者リストがアップデートされる。
【0018】
クライアント102Aの送信機204Aは、クライアント102Aで開設されたオーディオ・ストリーム216Aとビデオストリーム214Aを、ルームサーバ110の受信機210Aに送信する。受信機210Aは、クライアント102B、102Nへの伝送のために、オーディオ・ストリーム216Aを、送信機212Bおよび送信機212Nの各々に送信する。受信機210Aは、クライアント102A、102B、102Nへの伝送のために、ビデオストリーム214Aを、送信機212A、212Bおよび212Nの各々に送信する。クライアント102Bの送信機204Bは、クライアント102Bで開設されたビデオストリーム214Bを、ルームサーバ110の受信機210Bに送信する。受信機210Bは、クライアント102Aおよび102Nへの伝送のために、ビデオストリーム214Bを、送信機212Aおよび212Nの各々に送信する。送信機204Nは、クライアント102Nで開設されたビデオストリーム214Nを、ルームサーバ110の受信機210Nへ送信する。受信機210Nは、クライアント102Bへの伝送のために、ビデオストリーム214Nを送信機212Bに送信する。
【0019】
送信機212Aは、ビデオ214Aおよび214Bを、クライアント102Aの受信機202Aに送信する。送信機212Bは、ビデオ214A、214Nおよびオーディオ216Aを、クライアント102Bの受信機216Aに送信する。送信機212Nは、ビデオ214A、214Bおよびオーディオ216Aを、クライアント102Nの受信機202Nへ送信する。送信機212A、212B、212Nからのこれら送信は、これら送信に対するそれぞれの申込みリストによって管理される。
【0020】
ビデオおよびオーディオ送信に加えて、クライアントは、スライドショー・プレゼンテーション、テキスト文書、写真画像、音楽ファイルなどのようなデータを送信してもよい。図2に示すビデオおよびオーディオ・ストリームにように、データストリームは、いずれかのクライアント102から1つ以上の受信クライアント102に送信されてもよい。図2には、3つのクライアント102が示されているが、各々に、ルームサーバ110の固有の送信機212および受信機210を有する、如何なる数のクライアント102があってもよい。
【0021】
図3は、本発明の典型的な実施形態によるルームサーバのブロック図である。ルームサーバ110は、一対の受信機210と送信機212を、ゼロ、または1つ以上含んでいてもよい。典型的な実施形態において、受信機210および送信機212は、ソフトウェアで実装され、ルームサーバ110は、マルチメディアデータを送受信している各クライアント102に対して、固有の受信機210と送信機212とを開設する。受信機210は、シーケンサ306を含んでいてもよい。送信機212は、オーディオ再シーケンサ308、ビデオ再シーケンサ310、マルチメディア・オーディオ・キュー312、ビデオ・マルチプレクサ314およびパケット・エンコーダ316のいくつか、または全てを含んでもいてもよい。
【0022】
各受信機210は、クライアント102からマルチメディアデータを受信するためにネットワーク100に接続されている。また、受信機210は、1つ以上の送信機212に接続されている。受信機210は、クライアント102から受信したデータを送信機212に転送する。また、送信機212は、ネットワーク100に接続されており、受信機210により送信機212に転送されたデータは、ネットワーク100を介して受信クライアント102に送信される。
【0023】
ルームサーバ110は、送信しているクライアント102からマルチメディア・ブロックの形態でデータを受信する。典型的な実施形態において、マルチメディア・ブロックは、シーケンス番号、オーディオフレーム、ビデオフラグメント、ビデオチャネル、レシート、ビデオパラメータ、オーディオパラメータ、ビデオ・エンド・フラグおよびオーディオ・エンド・フラグのいくつか、あるいは全てを含むデータパケットのタイプである。シーケンス番号は、マルチメディア・ブロックがオーディオまたはビデオデータを含んでいる場合、マルチメディア・ブロックを再オーダするために用いられる。マルチメディア・ブロックがオーディオデータを含んでいる場合には、このデータは、オーディオフレームの形態である。マルチメディア・ブロックがビデオデータを含んでいる場合には、このデータは、ビデオフラグメントの形態である。ビデオフラグメントは、ビデオフレームのスタート、ミドル、エンドを表すデータ構造である。また、ビデオフラグメントは、全ビデオフレームまたは前の伝送中にビデオフラグメントが失われたことを示す特別な値であってもよい。ビデオチャネルは、ビデオデータがある場合、ビデオフラグメントに割り当てられたチャネルである。受理証は、他のパーティにより受信されたマルチメディア・ブロックのシーケンス番号の最新のものである。受理証は、以下で、図6を参照して説明されるように、バンド幅の配分を決定する際に用いられる。ビデオおよびオーディオパラメータは、新しいビデオまたはオーディオデータを送信し始めるとき、マルチメディア・ブロックの一部として送信される。ビデオおよびオーディオ・エンド・フラグは、オーディオまたはビデオ送信の終わりを示す。ビデオデータに対する、パラメータおよびエンド・フラグは、新しいチャネルでデータを送信し始めることか、ビデオストリームの終端でチャネルを閉じることを含む。一実施形態において、オーディオデータは、ビデオデータより高い優先順位を有してもよく、ゆえに、データを送信できない場合、オーディオデータの精度を保証する。この場合、マルチメディア・ブロックは、全ての利用可能なオーディオデータを含む。典型的な実施形態では、シーケンサ306は、マルチメディア・ブロックを受信し、それらをオーディオ・メディア・ブロックおよびビデオ・メディア・ブロックに分離する。また、シーケンサ306は、マルチメディア・ブロックの適切な順序を保証するために、ネットワーク100を介して受信したマルチメディア・ブロックに対するシーケンス番号を用いる。シーケンサ306は、次の予想されるマルチメディア・ブロックの受領まで、シーケンスから外れたマルチメディア・ブロックを一時的に格納する。見失ったマルチメディア・ブロックが、格納領域が使い果たされる前に受信されなくなると、シーケンサ306は、マルチメディア・ブロックが失われたと見なす。
【0024】
オーディオ・メディア・ブロックは、シーケンサ306から送信機212のオーディオ再シーケンサ308にルームサーバ110によって転送される。シーケンサ306のように、オーディオ再シーケンサ308は、オーディオ・メディア・ブロックからのオーディオデータを、適切な順序で、すなわちそれらが生成された順序に配置する。典型的な実施形態では、オーディオ再シーケンサ308は、それがパケット損失を取り扱わないという点でシーケンサ306と異なる。その結果、シーケンスから外れて受信されたパケットに対してより一時的な格納を実現する。オーディオ再シーケンサ308からは、順番に配列されたオーディオ・メディア・ブロックが、マルチメディア・オーディオ・キュー312に送信される。マルチメディア・オーディオ・キュー312は、付加的なマルチメディアデータを受け入れるために受信クライアント102に利用可能なバンド幅があるまで、オーディオ・メディア・ブロックをバッファリングする。オーディオ・メディア・ブロックは、マルチメディア・ブロックを形成するために、ビデオ・メディア・ブロックに結合され、ネットワーク100または如何なる確立された伝送接続を介して、受信クライアント102に送信される。
【0025】
ルームサーバ110は、ビデオ・メディア・ブロックをビデオ再シーケンサ310に転送する。典型的な実施形態では、8つのビデオチャネルの各々に対して1つのビデオ再シーケンサがある。各チャンネルは、クライアント102のディスプレイ404上の固有の表示ウインドウに表示されるビデオデータを取り扱う。ゆえに、8つのビデオチャネルを有する典型的な実施形態では、8つ以上の同時に表示されたビデオストリームがあることになる。ビデオ・メディア・ブロックは、ビデオ・マルチプレクサ314に転送される。
【0026】
ビデオ・マルチプレクサ314は、各ビデオチャネルに対してビデオ・キューを含んでいる。ビデオ・キューは、FIFO(first in first out)であり、ビデオフラグメントを格納する。ビデオフラグメントは、全ビデオフレーム、ビデオフレームのスタート、ビデオフレームのミドル、ビデオフレームのエンド、または失われたビデオフラグメントを表す特別な値であってもよい。典型的な実施形態では、ビデオフラグメントの特定のシーケンスだけがビデオ・キューに入力されてもよい。例えば、「スタート」の後に「ミドル」が続き、「ミドル」の後に「エンド」が続くことになるが、「スタート」は、他の「スタート」の後に続くことはない。ビデオ・キュー内のフラグメントを配列することは、フラグメントからビデオフレームの再構成を容易にする。全ビデオフレームまたはビデオフレームの特定のバイト数は、ビデオ・キューから出力されてもよい。例えば、ビデオ・キューが200バイトの「スタート」フラグメントを格納していた場合、キューは、要求があれば、キュー内の次のフラグメントとして100バイトの「ミドル」フラグメントを放置して、100バイトの「スタート」フラグメントを出力することになる。
【0027】
ビデオ・マルチプレクサ314内のビデオ・キューは、ビデオデータに対するバッファとして機能する。ビデオ・メディア・ブロックがビデオ・マルチプレクサ314による順序で受信されるように、それらは、ビデオ・キュー内の完全なビデオフレームに組み立てられる。一度、全ビデオフレームが組み立てられると、ビデオデータを受け入れるための受信クライアント102への接続に利用可能なバンド幅がない場合、ビデオ・キューは、フレームを落とすことになる。バンド幅が受信クライアント102への接続に利用可能になると、ビデオ・メディア・ブロックは、パケット・エンコーダ316に送信され、マルチメディア・ブロックを形成するためにオーディオ・メディア・ブロックに結合される。マルチメディア・ブロックは、ネットワーク100または何らかの確立された伝送接続を介して受信クライアント102に送信される。
【0028】
図4は、本発明の典型的な実施形態によるクライアント102のブロック図である。一実施形態において、クライアント102は、受信機202、送信機204、ディスプレイ404、スピーカ406、カメラ408およびマイクロフォン410を含んでいる。各クライアント102は、マルチメディアデータを送受信することができる。
【0029】
送信側では、カメラ408は、ビデオ・イベントを生成し、マイクロフォン410は、オーディオ・イベントを生成する。ビデオ・イベントは、ビデオ・マルチプレクサ314に送信される。ルームサーバ110のビデオ・マルチプレクサ314のように、クライアントのビデオ・マルチプレクサ314は、多重ビデオ信号を取り扱うために多重チャネルを有する。ゆえに、クライアント102は、複数のビデオカメラを含んでいてもよい。また、ルームサーバ110のビデオ・マルチプレクサ314のように、クライアント102のビデオ・マルチプレクサ314は、バンド幅要求を減少するために、ビデオフレームを配列するため、およびドロップするために用いられる、各チャネルに対してビデオ・キューを含んでいる。
【0030】
オーディオ・イベントは、マイクロフォン410からマルチメディア・オーディオ・キュー312に送信される。バンド幅がデータを送信するために利用可能になると、ビデオ・メディア・ブロックとオーディオ・メディア・ブロックは、パケット・エンコーダ316に送信され、マルチメディア・ブロックを形成するために結合される。マルチメディア・ブロックは、ネットワーク100または何らかの確立された伝送接続を介して、ルームサーバ110へ送信される。
【0031】
受信側では、受信機202は、ネットワーク100を介して、ルームサーバ110からマルチメディア・ブロックを受信する。受信機202内のシーケンサ306は、適切な順序にマルチメディア・ブロックを順序付けて、それらをビデオ・メディア・ブロックとオーディオ・メディア・ブロックとに分離する。オーディオ・メディア・ブロックは、スピーカ406に送信され、サウンドに変換される。該サウンドは、特定の実施に従ってアナログまたはデジタルいずれの形式で生成されてもよい。ビデオ・メディア・ブロックは、ビデオ・デマルチプレクサ402へ送信され、別個のビデオフレームに分解される。ビデオ・マルチプレクサ314と同様に、ビデオ・デマルチプレクサ402は、ビデオフレームを組み立てるため、およびビデオフレームをドロップするために用いられる、ビデオ・キューを含む。ビデオフレームは、ビデオディスプレイ404へ送信され、従来の方法で表示される。
【0032】
図5は、本発明の典型的な実施形態によるスレッディング・モデルのブロック図である。マルチメディア伝送に加えて、ルームサーバ110の受信機210および送信機212は、それらの各々のクライアント102へ要求を送信するとともに、クライアント102からリクエストを受信する。これらの事象には、オーディオまたはビデオを特定のクライアントに送信するというリクエスト、特定のクライアントのビデオを見るというリクエスト、見ているビデオからクライアントを遮断するというリクエストなどを含む。モデレータの地位を割り当てられたクライアントは、モデレータに制限されるリクエストを行うことになる。これらリクエストの例には、クライアントを退場させるというリクエスト、特定のデータタイプにアクセスするべく特定のクライアントに特権を与えるというリクエスト、ルームを閉じるというリクエスト、または他のクライアントにモデレータの任務を与えるというリクエストが含まれる。
【0033】
図5に示すような典型的な実施形態では、リクエスト・プロセッサ500は、入力イベント・スレッド・プール502、メイン・スレッド・プール504、出力イベント・スレッド・プール506およびリクエスト・キュー508を含んでいる。入力イベント・スレッド・プール502は、受信機210およびリクエスト・キュー508に接続されている。リクエスト・キュー508は、入力イベント・スレッド・プール502、メイン・スレッド・プール504および出力イベント・スレッド・プールに接続されている。メイン・スレッド・プール504は、リクエスト・キュー508に接続されている。出力イベント・スレッド・プール506は、リクエスト・キュー508および送信機212に接続されている。リクエスト・プロセッサ500は、メモリに格納され、コンピュータ・プロセッサにより実行されるソフトウェアコードであってもよいが、本発明は、この実施形態に制限されない。典型的な実施形態では、メモリおよびコンピュータ・プロセッサは、ルームサーバ110の構成部品である。ソフトウェア命令は、フロッピーディスク(登録商標)、CD-ROM、または何らかの他の適当な記憶媒体のようなコンピュータで可読な媒体に格納されていてもよい。リクエスト・プロセッサ500内の構成部品の接続は、ソフトウェアコードにより定義される論理的な接続であってもよい。
【0034】
受信機210は、入力リクエストをクライアント102からリクエスト・プロセッサ500へ送信する。入力リクエストは、処理のために入力イベント・スレッド・プール502へ送信される。入力リクエストは、即時応答と長期動作を要求するリクエストを含んでいる。即時応答を要求する入力リクエストは、TCPを介して送信される入力ネットワーク・トラヒックを取り扱うために作られる。長期動作である入力リクエストは、接続が伝送プロトコルとしてUDPを支持する場合、UDPを介して送信される入力ネットワーク・トラヒックを取り扱うために作られる。
【0035】
出力リクエストは、処理のために出力イベント・スレッド・プール506に送信される。出力リクエストは、接続が伝送プロトコルとしてUDPを支持する場合、UDPを介して送信される外へ向かうデータを取り扱うために作られる。出力リクエストを処理する際に、出力イベント・スレッド・プール506は、出力イベントを発生する。このイベントは、外へ向かうデータをクライアント102へ送信するために1つ以上の送信機212を呼び出す。
【0036】
内部リクエストは、ルームサーバ110に内蔵されているタスクを実行するために用いられる。内部リクエストは、問題をロックしているか、遮断している潜在性のために入力または出力リクエストで取り扱うのに適切でない他のタスクと同様に、ルームサーバ110内でのオーディオおよびビデオの再送信からなる。内部リクエストは、リクエスト・キュー508に格納されており、スレッドが利用可能になると、メイン・スレッド・プール504に発送される。
【0037】
図6は、本発明の典型的な実施形態によるダイナミックデータ伝送のフローチャートである。ダイナミックデータ伝送の処理は、伝送の最小待ち時間およびマルチメディアデータの受信を確実にするために、クライアント102およびルームサーバ110の双方によって容易にされる。クライアント102がエントリサーバ106を通してログインすることによって会議セッションを始めると、バンド幅調整器は、上下マルチメディア伝送に対する現在のバンド幅および待ち時間を決定602する。クライアント102およびルームサーバ110は、各々、典型的な実施形態では、ソフトウェアで実装されるバンド幅調整器を含んでいる。バンド幅および待ち時間情報に基づいて、バンド幅調整器は、各接続に対して最適なパケットサイズおよび最適なパケット間隔を決定604する。ルームサーバ110は、ジャーナル、テーブル、または他の同様なデータ構造に、送信機212によって送信される次のパケットに対する、パケットサイズおよび出発時間を記録606する。クライアント102は、次のパケットを送信し、ジャーナル、テーブル、または他の同様なデータ構造に、このパケットに対するパケットサイズおよび出発時間を記録606する。
【0038】
一実施形態において、送信機(ルームサーバ110か、クライアント102のいずれか)は、受信機に送信すべきデータがさらにあるかどうかを判定608する。送信すべきデータがこれ以上ない場合には、処理を終了する。送信すべき更なるデータがある場合には、バンド幅調整器は、入ってくるマルチメディア・ストリームから受け取った各受理証に対して、ジャーナルから記録を取り除くことによりジャーナルを更新610する。ルームサーバ110では、は、受信機210で受理される。クライアント102では、受理証は、受信機202で受理される。また、バンド幅調整器は、失われたパケットに対してもジャーナルから記録を取り除く。そして、バンド幅調整器は、ジャーナルに残っているエントリの各々に対応している受理証に対する、予想到着時刻を決定612する。予想到着時刻は、パケットの出発時刻、待ち時間、出て行くパケットサイズならびに入ってくるパケットサイズ、およびバンド幅を用いることにより決定される。
【0039】
クライアント102およびルームサーバ110でのバンド幅調整器は、いずれかのジャーナルに記録されたパケットの期限が過ぎているか否かを判断614するために、予想到着時刻を用いる。期限が過ぎたパケットがあった場合には、バンド幅調整器は、送信機204、212がオーディオデータのみを送信するためのモード616に入る。オーディオデータは、ビデオとオーディオデータが結合したものより、送信のために低いバンド幅を要求するので、データがオーディだけに限定される場合、送信の待ち時間は減少することになる。期限が過ぎているパケットがない場合には、バンド幅調整器は、送信機204,212がオーディオおよびビデオデータの双方を送信するモード618に入る。ビデオおよびオーディオデータを取り扱うのに十分利用可能なバンド幅が接続にある場合、期限切れのパケットはなく、バンド幅調整器は、オーディオおよびビデオデータの双方の送信を許可することになる。これらの2つのモードの間の切り替わりの結果、より小さいバンド幅接続に対して、オーディオデータは、ビデオデータの断続的な伝送とともに連続的に送信される。オーディオモード、またはオーディオおよびビデオモードのいずれかに一度入ると、クライアント102またはルームサーバ110は、次のパケットを送信606し、パケットサイズおよびこのパケットに対する出発時刻を記録する。
【0040】
バンド幅オプティマイザ
図7は、バンド幅オプティマイザ700の典型的な実施形態のブロック図である。バンド幅オプティマイザは、最も効率的な通信速度を決定するために、パケット損失の実際の上下通信時間と速度をモニタリングする一方、通信速度を調整する。典型的な実施形態では、この効率的な通信速度は、ネットワーク待ち時間またはパケット損失のいずれかのかなりの増加なしに、データを伝送することができる最大速度として定義される。典型的な実装例では、以下に述べるバンド幅オプティマイザ700および該バンド幅オプティマイザ700の構成部品は、ソフトウェアで実装される。UDPが伝送のために用いられたプロトコルである場合、このソフトウェアは、クライアント102およびルームサーバ106の双方に配置されてもよい。TCPが伝送のために用いられたプロトコルである場合、クライアント102のみに配置される。バンド幅オプティマイザ700は、上下のマルチメディア・トラヒックのデータ内のバックログを継続してモニタする。バンド幅オプティマイザがバックログを検出した場合には、パケットサイズおよびデータに対する伝送間隔を減少させることによって、データの通信速度を低下させる。バンド幅オプティマイザがバックログを検出しない場合には、バックログが再び検出されるまで、データの通信速度を徐々に増加させる。この処理は、後でさらに詳細に説明される。
【0041】
バンド幅オプティマイザ700のこの実施形態は、接続アナライザ702、スタビライザ704、モニタ706、コントローラ708、規制モジュール710およびスロットル712を含んでいる。接続アナライザ702は、最大上下通信速度およびネットワーク待ち時間を決定する。クライアント102は、通信速度を手動で確立してもよいし、接続アナライザ702が上下通信速度およびネットワーク待ち時間を自動的に検出するように要求してもよい。典型的な配置において、それら3つの変数は、マルチメディアデータを送受信するのに先立って一度決定される。
【0042】
スタビライザ704は、上下の「現在の上限」通信速度を調整する。現在の上限通信速度は、接続アナライザ702により決定された最大通信速度とは異なる。現在の上限通信速度は、まず、接続アナライザ702によって決定された最大通信速度にセットされる。スタビライザ704は、所定の期間にわたってバックログされるために現れた接続の時間のパーセンテージを決定することにより現在の上限通信速度を調整する。例えば、典型的な実施形態では、スタビライザ704は、過去2秒にわたってバックログされるために現れた接続の時間のパーセンテージを決定してもよい。この時間のパーセンテージがゼロで、かつ現在の上限通信速度が最大通信速度より小さい場合、現在の上限は、与えられたパーセンテージずつ増加する。例えば、この増加は2パーセントであってもよい。通信速度が増加すると、もうそれ以上、増加(または減少)は、増加後の与えられた期間、許可されない。一例として、増加(または減少)は、増加の後、750msの間許可されない。バックログされた時間のパーセンテージが25を越える場合、現在の上限は、バックログされるために現れた接続の時間のパーセンテージずつ減少する。上限が減少すると、もうそれ以上、減少(または増加)は、与えられた期間、たとえば2秒間、許可されない。この調整は、接続アナライザ702からの入力および規制モジュール710からの入力に基づいている。典型的な実施形態では、規制モジュール710は、伝送の最後の2秒で検出されたバックログのパーセンテージのスタビライザ704に指標を送信する。スタビライザ704は、接続がバックログされた時間のパーセンテージを決定するために規制ジャーナルを見る。スタビライザ704は調整された上限を、規制モジュール710に送信する。
【0043】
典型的な実施形態では、モニタは、ミリ秒でバックログ量を決定し、これをコントローラ708に送信する。モニタ706は、データパケットが遠くにある受信機に送信される時刻、送信されたデータパケットのサイズ、サーバ待ち時間に対する値と同様に、データパケットが実際に受信される時刻、および受理証を含んだ下りパケットのサイズを含む、それら遠隔地の受信機によって送信された受理証を、入力として受信する。モニタ706は、データパケットが受信されるべきとき、および該データパケットに対する受理証が受信されるべきときを計算するために、データパケットが送信される時刻と、既知の待ち時間情報とを用いる。待ち時間の決定については、図9を参照して以下で更に詳細に説明する。ミリ秒でバックログ量を決定するために、モニタ706は、データパケットおよび該データパケットに対する受理証の双方が受信されると予想される時刻の情報を取得し続け、それらの時刻を、それらが実際に受信される時刻と比較する。この情報から、モニタ706は、実際の通信速度を計算することができる。モニタ706は、実際の通信速度と予想した通信速度との間の差分を決定する。このバックログ時刻は、コントローラ708に送信される。
【0044】
典型的な実施形態では、コントローラ708は、モニタ706から受信されたバックログが所定の閾値より上であるか否かを判定する。バックログが与えられた閾値より上である場合は、コントローラ708は、ポジティブな指標を規制モジュール710に送信する。そうでない場合は、コントローラ708は、ネガティブな指標を規制モジュール710に送信する。例えば、閾値が30ミリ秒のバックログでセットされていると、コントローラ708は、バックログがこの閾値より上である場合、ポジティブな指標を送信することになる。
【0045】
規制モジュール710は、スタビライザ704から現在の上限通信速度を受信し、コントローラ708から指標を受信する。指標がポジティブである場合、規制モジュールは、現在の通信速度を、所定の最小通信速度に制限する。指標がネガティブである場合、規制モジュールは、現在の通信速度として現在の上限通信速度を用いる。結果として生じる現在の通信速度は、スロットル712に送信される。また、規制モジュールは、規制履歴のジャーナルを保持する。ジャーナルは、テーブルまたは他の類似したデータ構造であってもよい。ジャーナルは、スタビライザ704に対するバックログのパーセンテージを決定するために調べられる。
【0046】
典型的な実施形態では、スロットル712は、規制モジュール710から通信速度を受信する。スロットル712は、出入データに対する、最適なパケットサイズおよびパケット通信間隔を決定するために通信速度を用いる。入力間隔は、通信プロトコルとしてTCPを用いる場合、出力間隔に常に等しい。通信プロトコルとしてUDPが用いられる場合には、入力間隔は、遠隔地の送信機のスロットル712によって決定される。
【0047】
図8は、バンド幅オプティマイザ処理の典型的な実施形態のフローチャートである。バンド幅オプティマイザ700は、最大現行バンド幅を決定802する。バンド幅オプティマイザ700内のモニタ706は、現行バックログを決定804する。コントローラ708は、ステップ806で、現行バックログが所定の閾値より大きいかを判定する。もしそうであるならば、規制モジュール710は、現在のバンド幅値を平均通信速度に制限する。もしそうでなければ、スタビライザ704は、ステップ810で、バックログがゼロより大きいかを判定する。バックログがゼロより大きい場合には、バンド幅オプティマイザは、現在のバンド幅値を保持する。バックログがない場合には、スタビライザ704は、所定の量ずつ現在のバンド幅値を増加814する。そして、スロットルは、現在のバンド幅値で示される通信速度に基づいて、現在のパケットサイズと通信速度とを調整する。
【0048】
図9は、通信待ち時間を決定するために本発明により用いられるように、待ち時間タイムライン900の典型的な実施形態を示す図である。バンド幅オプティマイザ700は、データが発生時点からマルチメディア表示まで伝わるとき、データを追跡するためにタイムスタンプを用いる。各データパケットが伝送経路で特定のポイント902を通過するとき、データパケットはタイムスタンプと関連付けられる。タイムスタンプは、データパケット自体に追加されてもよいし、あるいは、データの識別子に関連付けてもよく、データパケットより異なる場所に送信される。典型的な実施形態では、データが送信機に取り込まれたとき、各データパケットは、ポイント902Aでタイムスタンプと関連付けられる。送信機は、データパケットがどちらの方向に進行しているかに応じて、クライアント102またはサーバ104のいずれかになる。また、送信機がデータパケットを受信機に送信したとき、データパケットは、ポイント902Bでタイムスタンプと関連付けられる。送信機のように、この場合の受信機は、クライアント102またはサーバ104のいずれかになる。そして、データパケットは、受信機がデータを受信し、受理証を発生したときにポイント902Cで、受信機が受理証を送信機に送信したときにポイント902Dで、送信機が受理証を受信したときにポイント902Eで、送信機がデータパケットに対する待ち時間を決定するときにポイント902Fで、タイムスタンプと関連付けられる。
【0049】
ポイント902Aと902Bの間で生じる待ち時間、およびポイント902Eと902Fの間で生じる待ち時間は、送信機に起因している。ポイント902Bと902Cの間で生じる待ち時間、およびポイント902Dと902Eとの間で生じる待ち時間は、ネットワークに起因している。最後に、ポイント902Cと902Dとの間で生じる待ち時間は受信機に起因している。ゆえに、伝送ストリームを通してデータパケットを追跡することにより、全ての伝送に対する待ち時間を決定することができる。そして、モニタ706は、現在のバックログを決定するために待ち時間情報を用いる。
【0050】
図10は、本発明により用いられるようなバンド幅表示器の典型的な実施形態を示すブロック図である。バンド幅表示器は、ユーザインターフェースに必要とされる情報を得るためにバンド幅オプティマイザと入出力を行う。ユーザインターフェースについては、以下で、図11を参照してより詳細に説明する。典型的な実施形態では、バンド幅表示器1000は、ソフトウェアで実装され、表示器モジュール1002およびバンド幅メータ1004を含んでいる。表示器モジュール1002は、バンド幅決定モジュール702、モニタ706および規制モジュール710から情報を受信し、バンド幅メータ1004へ情報を出力する。バンド幅メータ1004は、図11で説明するユーザインターフェースを作るために、この情報を用いる。バンド幅決定モジュール702は、最大上下バンド幅の値を、表示器モジュール1002へ送信する。モニタ706は、上下バックログ情報を表示器モジュール1002へ送信する。バックログ情報は、実際に送信されたデータに対する通信速度およびバックログを防止するために要求される通信速度の双方を決定するために用いられる。規制モジュール710は、出力規制速度を表示器モジュール1002へ送信する。送信機は、入力規制速度を表示器モジュール1002へ提供する。いずれの速度も規制された場合、より小さい速度が、バンド幅メータ・ユーザインターフェースに対するスケールとして用いられる。速度が規制されなかった場合には、バンド幅決定モジュールから受信した最大バンド幅がユーザインターフェースに対するスケールとして用いられることになる。表示器モジュール1002は、入出力値をバンド幅メータ1004に提供するために速度情報を用いる。これらの値には、最大通信速度、現在の通信速度、およびバックログなしでデータフローを維持するために要求される速度が含まれる。
【0051】
図11は、バンド幅メータに対するユーザインターフェースの典型的な実施形態を示す図である。バンド幅メータ・ウインドウ1100は、入力バンド幅スケール1102および出力バンド幅スケール1104を含んでいる。各スケール1102、1104は、水平ヒストグラムメータ1108およびパーセンテージ値1106を含んでいる。パーセンテージ値1106は、水平ヒストグラムメータ1108上にグラフィカルに表示される。各スケールは、マルチメディアデータに対する最大通信速度を表示し、3つの部分を含んでいる。第1の部分1110は、現在のデータ通信速度を示し、第2の部分1112は、利用可能なバンド幅量を示し、第3の部分1114は、バックログなしで、望ましいデータフローを保持するために要求される速度の増加を示す。
【0052】
図11aは、上下通信速度が最大に近く、バックログがないことを示しているバンド幅メータを示す図である。図11bは、バックログなしで上下通信速度が最大に近く、入力通信速度が所望するより遅く、わずかなバックログが生じていることを示しているバンド幅メータを示す図である。図11cは、入力通信速度が所望するよりちょうどわずかに小さく、出力通信速度が所望するより非常に小さいことを示しているバンド幅メータを示す図である。この低い通信速度は、ヒストグラムメータ1108の第3の部分1114によって示されるように、大きなバックログを生じる。図11dは、上下通信速度が利用可能な最大通信速度に比べて小さく、バックログがないことを示しているバンド幅メータを示す図である。
【0053】
マイクロフォン・キュー
図2に示されるように、1度にたった1つのクライアント102だけがオーディオ216を送信する。図2において、クライアント102Aは、クライアント102Bおよび102Nによって受信されたオーディオ216Aを送信している。クライアントがオーディオを送信しているとき、クライアントは、マイクロフォンを占有する。マイクロフォン・キューは、マイクロフォンの仲裁を容易にするために、ルームサーバ106によって実装されたデータ構造である。キューの先頭のクライアント102は、マイクロフォンを占有し、ルーム内の他のクライアントによって聞かれることになるクライアントである。各クライアント102は、2つのリクエスト:話すリクエストおよび中断するリクエスト、を行うオプションを有する。これらリクエストは、上記図5を参照して説明したように、リクエスト・プロセッサ500によって取り扱われる。クライアントが話すためにリクエストを行うと、クライアントは、マイクロフォン・キューの最後に置かれる。マイクロフォンを占有するクライアントがマイクロフォンを手放すと、クライアントは、キュー内の次のクライアントにマイクロフォンを占有させるのを許可するために、マイクロフォン・キューから取り除かれる。クライアント102が中断するためにリクエストを行うと、クライアントは、マイクロフォン・キューの先頭に置かれる。ゆえに、該クライアントは、マイクロフォンを占有し、マイクロフォンの以前の占有者を含む他のクライアントは、上記クライアントの後ろ側のキュー内のそれらの順序を保持する。
【0054】
マイクロフォン・キューに対するユーザインターフェースの典型的な実施形態は、2つのアイコンを含んでいる。1つのアイコンは、マイクロフォンの占有1204を表し、マイクロフォンを占有しているクライアントの名前に隣接して表示される。第2のアイコンは、マイクロフォン・キューへの配置1206を表し、話すことを要求したクライアント1208の名前に隣接して表示される。マイクロフォン・キュー内の順序は、ユーザインターフェース内のクライアント・リストの順序によって表される。ゆえに、マイクロフォンを占有しているクライアントの名前は、リストの最上位にあることになり、その次に表示される第1のアイコンを有することになる。マイクロフォンの予定の次のクライアントの名前は、次のリストに載っているものであり、その次に表示される第2のアイコンを有することになる。
【0055】
インスタント・メッセンジャ統合
一実施形態において、図1に示されるビデオ会議システムは、ルータ112に接続された、1つ以上のインスタント・メッセンジャ・サーバを含んでいる。インスタント・メッセンジャ・サーバは、インスタント・ミーティング機能を実装する。この機能は、図13に示すように、現在利用可能なインスタント・メッセンジャ・プログラムと同様なユーザインターフェースを用いる。この実施形態では、各クライアントは、コンタクトリスト1300を作ることができる。コンタクトリスト1300は、クライアント102に固有であり、クライアントの画面名称1308によって識別される。コンタクトリスト1300を作る際に、クライアント102は、如何なる数の他のクライアント102の画面名称を追加してもよい。これらの画面名称は、リスト1302に表示される。各名称の隣には、各クライアント102がインスタント・ミーティング・サービスにサインインしているか否かを示すアイコン1304がある。この実施形態において、クライアント102は、ミーティングへの参加のために1つ以上のクライアント102を選択することによって、間接的にルームの開設を要求する。参加に招待されたクライアントを選択するために、要請しているクライアントは、画面名称リスト1302で、招待されたクライアントのユーザ名をハイライト表示してもよい。要請しているクライアントは、新たなルームを設置し、全ての招待されたクライアントへのアクセスを許可するために、インスタント・メッセンジャ・サーバに指示を出すビデオ呼出ボタン1306を選択する。それから、要請しているクライアントは、何れかのポイントでビデオ呼出を始めるために選択してもよく、要請しているクライアントは、新たなルームに入室し、サーバは、招待したクライアントに招待状を送信する。招待されたクライアントも、招待状を受理すると、新たなルームに入室する。
【0056】
ルーム内では、クライアント102は、ビデオ、オーディオおよびテキストを交換してもよい。時には、この情報の交換は、ミーティングに参加しているクライアント102の間で衝突を引き起こす可能性がある。これらのユーザは、衝突を解決することを希望して、ビデオ会議を運営する会社に苦情を届けてもよい。衝突を解決するために、会社は、広範囲な研究を実施することを要求されるかも知れず、衝突という結果になった出来事の後に続くクライアントの発言だけに頼らなければならなくなるかも知れない。証拠ジャーナル機能は、これが起こるのを防止する。クライアント102が他のクライアント102について不満を言いたい場合、不満を言っているクライアントは、証拠ジャーナルを起動させることができる。一旦起動したならば、証拠ジャーナルは、ごく最近のオーディオ、ビデオおよびテキストを記録する。例えば、ジャーナルは、5分のテキスト、5秒のオーディオ、および10秒のビデオを取り込む。時間間隔は、予め決められており、会社の必要性に基づいて変更してもよい。
【0057】
本発明の典型的な実施形態および様々な変形例を十分に説明したので、当業者は、ここに与えられた教えに基づき、本発明から逸脱しない数多くの変形例および同等物が存在することを理解されたであろう。すなわち、本発明は、前述の説明によって限定されることなく、添付の特許請求の範囲により制限されるものである。
【図面の簡単な説明】
【0058】
【図1】本発明の典型的な実施形態を含むネットワーク図である。
【図2】本発明の典型的な実施形態によるマルチメディアのストリーミング図である。
【図3】本発明の典型的な実施形態によるルームサーバのブロック図である。
【図4】本発明の典型的な実施形態によるクライアントのブロック図である。
【図5】本発明の典型的な実施形態によるスレッディング・モデルの図である。
【図6】本発明の典型的な実施形態による動的データ伝送のフローチャートである。
【図7】バンド幅オプティマイザの典型的な実施形態のブロック図である。
【図8】バンド幅オプティマイザ処理の典型的な実施形態のフローチャートである。
【図9】伝送待ち時間を決定するために本発明によって用いられる、待ち時間タイムラインの典型的な実施形態を示す概念図である。
【図10】本発明によって用いられる、バンド幅インジケータの典型的な実施形態を表すブロック図である。
【図11】バンド幅メータのためのユーザインターフェースの典型的な実施形態を示す図である。
【図12】マイクロフォン・キューを含むユーザインターフェースの典型的な実施形態の表示画面を示す模式図である。
【図13】インスタント・ミーティング機能で用いられる、コンタクトリストの典型的な実施形態の表示画面を示す模式図である。
【符号の説明】
【0059】
100 ネットワーク
102 クライアント
102A,102B,102N クライアント
104 サーバ
106 エントリサーバ
108 ロビーサーバ
110 ルームサーバ
112 ルータ
202,210 受信機
204,212 送信機
214 ビデオデータ
214A,214B,214N ビデオストリーム
216 オーディオデータ
216A オーディオストリーム
306 シーケンサ
308 オーディオ再シーケンサ
310 ビデオ再シーケンサ
312 マルチメディア・オーディオ・キュー
314 ビデオ・マルチプレクサ
316 パケット・エンコーダ
402 ビデオ・デマルチプレクサ
404 ディスプレイ
406 スピーカ
408 カメラ
410 マイクロフォン
500 リクエスト・プロセッサ
502 入力イベント・スレッド・プール
504 メイン・スレッド・プール
506 出力イベント・スレッド・プール
508 リクエスト・キュー
700 バンド幅オプティマイザー
702 バンド幅決定モジュール
702 接続アナライザ
704 スタビライザ
706 モニタ
708 コントローラ
710 規制モジュール
712 スロットル
Claims (15)
- 2つ以上のクライアント間でマルチメディア伝送を送受信するコンピュータにより実行される方法であって、
クライアントとサーバとの間の接続に対する最大上下通信速度を決定するステップと、
前記接続を介しての伝送に対する待ち時間値を決定するステップと、
前記接続を介しての伝送に対するバックログ値を決定するステップと、
前記バックログ値および前記待ち時間値に応じて前記接続を介しての上下通信速度を変化させるステップと
を具備することを特徴とするコンピュータにより実行される方法。 - 前記マルチメディア伝送は、データパケットからなり、
前記通信速度を変化させる際に、
前記データパケットのサイズを変化させ、
各データパケットの伝送間の時間間隔を変化させること
をさらに含むことを特徴とする、請求項1に記載のコンピュータにより実行される方法。 - 前記通信速度を変化させるステップは、
バックログがなく、かつ通信速度が最大通信速度より小さい場合には、通信速度を増加させるステップと、
バックログが所定の閾値を越える場合には、通信速度を減少させるステップと
をさらに含むことを特徴とする、請求項1に記載のコンピュータにより実行される方法。 - 前記伝送は、クライアントで始まり、サーバで終わることを特徴とする、請求項1に記載のコンピュータにより実行される方法。
- 前記伝送は、サーバで始まり、クライアントで終わることを特徴とする請求項1に記載のコンピュータにより実行される方法。
- 2つ以上のクライアント間でマルチメディアデータ伝送を送受信するシステムであって、
マルチメディア伝送を受信するための受信機と、
可変通信速度で前記マルチメディア伝送を送信するための送信機と、
前記送信機に結合され、最大上下通信速度を決定し、前記マルチメディアデータ伝送におけるバックログをモニタリングし、前記バックログに応じて通信速度を変化させるバンド幅オプティマイザと
を具備することを特徴とするマルチメディアデータ送受信システム。 - 前記マルチメディア伝送は、データパケットからなり、
前記通信速度を変化させる際に、
前記データパケットのサイズを変化させ、
各データパケットの伝送間の時間間隔を変化させることを特徴とする請求項6記載のマルチメディアデータ送受信システム。 - 前記通信速度を変化させる際に、
バックログがなく、かつ通信速度が最大通信速度より小さい場合には、通信速度を増加させ、
バックログが所定の閾値を越える場合には、通信速度を減少させることを特徴とする請求項6記載のマルチメディアデータ送受信システム。 - 前記伝送は、クライアントで始まり、サーバで終わることを特徴とする請求項6記載のマルチメディアデータ送受信システム。
- 前記伝送は、サーバで始まり、クライアントで終わることを特徴とする請求項6記載のマルチメディアデータ送受信システム。
- 2つ以上のクライアント間でマルチメディア伝送を送受信するコンピュータで読み込み可能な媒体に格納されたコンピュータプログラム製品であって、
クライアントとサーバとの間の接続に対する最大上下通信速度を決定するステップと、
前記接続を介しての伝送に対する待ち時間値を決定するステップと、
前記接続を介しての伝送に対するバックログ値を決定するステップと、
前記バックログ値および前記待ち時間値に応じて前記接続を介しての上下通信速度を変化させるステップと
を実行させるべく前記媒体に接続されたプロセッサを制御することを特徴とするコンピュータプログラム製品。 - 前記マルチメディア伝送は、データパケットからなり、
前記通信速度を変化させるステップは、
前記データパケットのサイズを変化させるステップと、
各データパケットの伝送間の時間間隔を変化させるステップと
をさらに含むことを特徴とする請求項11記載のコンピュータプログラム製品。 - 前記通信速度を変化させるステップは、
バックログがなく、かつ通信速度が最大通信速度より小さい場合には、通信速度を増加させるステップと、
バックログが所定の閾値を越える場合には、通信速度を減少させるステップと
をさらに含むことを特徴とする請求項11記載のコンピュータプログラム製品。 - 前記伝送は、クライアントで始まり、サーバで終わることを特徴とする請求項11記載の方法。
- 前記伝送は、サーバで始まり、クライアントで終わることを特徴とする請求項11記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/045,133 US20030041165A1 (en) | 2001-08-24 | 2001-10-23 | System and method for group video teleconferencing using a bandwidth optimizer |
PCT/US2002/034024 WO2003036499A1 (en) | 2001-10-23 | 2002-10-23 | System and method for group video teleconferencing using a bandwidth optimizer |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005507200A true JP2005507200A (ja) | 2005-03-10 |
Family
ID=21936163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003538920A Pending JP2005507200A (ja) | 2001-10-23 | 2002-10-23 | バンド幅最オプティマイザを用いるグループ・ビデオ会議システムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20030041165A1 (ja) |
EP (1) | EP1444594A1 (ja) |
JP (1) | JP2005507200A (ja) |
KR (1) | KR20040084892A (ja) |
CA (1) | CA2464505A1 (ja) |
WO (1) | WO2003036499A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007202129A (ja) * | 2006-01-25 | 2007-08-09 | Seiko Epson Corp | データ中継サーバの通信方法、ファイヤウォールで保護されたビデオ会議サーバの通信方法、およびビデオ会議クライアントの通信方法 |
JP2012133792A (ja) * | 2005-04-07 | 2012-07-12 | Opanga Networks Inc | 適応型ファイル配信システムおよび方法 |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058817B1 (en) | 1999-07-02 | 2006-06-06 | The Chase Manhattan Bank | System and method for single sign on process for websites with multiple applications and services |
US8571975B1 (en) | 1999-11-24 | 2013-10-29 | Jpmorgan Chase Bank, N.A. | System and method for sending money via E-mail over the internet |
US10185936B2 (en) | 2000-06-22 | 2019-01-22 | Jpmorgan Chase Bank, N.A. | Method and system for processing internet payments |
US8335855B2 (en) * | 2001-09-19 | 2012-12-18 | Jpmorgan Chase Bank, N.A. | System and method for portal infrastructure tracking |
US7103556B2 (en) * | 2000-11-02 | 2006-09-05 | Jpmorgan Chase Bank, N.A. | System and method for aggregate portfolio client support |
US8849716B1 (en) | 2001-04-20 | 2014-09-30 | Jpmorgan Chase Bank, N.A. | System and method for preventing identity theft or misuse by restricting access |
WO2002099598A2 (en) | 2001-06-07 | 2002-12-12 | First Usa Bank, N.A. | System and method for rapid updating of credit information |
US7266839B2 (en) | 2001-07-12 | 2007-09-04 | J P Morgan Chase Bank | System and method for providing discriminated content to network users |
US7103576B2 (en) * | 2001-09-21 | 2006-09-05 | First Usa Bank, Na | System for providing cardless payment |
US7574597B1 (en) | 2001-10-19 | 2009-08-11 | Bbn Technologies Corp. | Encoding of signals to facilitate traffic analysis |
EP1444568A4 (en) * | 2001-11-01 | 2005-11-09 | Bank One Delaware Nat Ass | SYSTEM AND METHOD FOR ESTABLISHING OR AMENDING AN ACCOUNT WITH USER SELECTABLE TERMS |
US7987501B2 (en) | 2001-12-04 | 2011-07-26 | Jpmorgan Chase Bank, N.A. | System and method for single session sign-on |
US20180165441A1 (en) | 2002-03-25 | 2018-06-14 | Glenn Cobourn Everhart | Systems and methods for multifactor authentication |
US7376235B2 (en) * | 2002-04-30 | 2008-05-20 | Microsoft Corporation | Methods and systems for frustrating statistical attacks by injecting pseudo data into a data system |
KR20030095995A (ko) * | 2002-06-14 | 2003-12-24 | 마츠시타 덴끼 산교 가부시키가이샤 | 미디어 전송방법 및 그 송신장치 및 수신장치 |
US7058660B2 (en) * | 2002-10-02 | 2006-06-06 | Bank One Corporation | System and method for network-based project management |
US7353253B1 (en) * | 2002-10-07 | 2008-04-01 | Webex Communicatons, Inc. | Peer-to-peer messaging system |
US8301493B2 (en) | 2002-11-05 | 2012-10-30 | Jpmorgan Chase Bank, N.A. | System and method for providing incentives to consumers to share information |
US7873706B2 (en) * | 2003-03-19 | 2011-01-18 | Cgi Communications, Inc. | System and method for seamlessly providing video content to client systems over a network |
US9432463B2 (en) * | 2003-03-25 | 2016-08-30 | Sandvine Incorporated Ulc | System and method for diverting established communication sessions on the basis of content |
US7580976B2 (en) * | 2003-04-18 | 2009-08-25 | Microsoft Corporation | Identifying an appropriate connection point for connecting to an application layer session |
JP4183586B2 (ja) * | 2003-09-12 | 2008-11-19 | 三洋電機株式会社 | 映像表示装置 |
US20050091395A1 (en) * | 2003-10-08 | 2005-04-28 | Jason Harris | Method and system for transferring data files |
US8359349B2 (en) * | 2004-03-18 | 2013-01-22 | Nokia Corporation | System and associated terminal, method and computer program product for uploading content |
US7720983B2 (en) * | 2004-05-03 | 2010-05-18 | Microsoft Corporation | Fast startup for streaming media |
US20060055771A1 (en) * | 2004-08-24 | 2006-03-16 | Kies Jonathan K | System and method for optimizing audio and video data transmission in a wireless system |
US20060190723A1 (en) * | 2005-02-18 | 2006-08-24 | Jp Morgan Chase Bank | Payload layer security for file transfer |
US8583926B1 (en) | 2005-09-19 | 2013-11-12 | Jpmorgan Chase Bank, N.A. | System and method for anti-phishing authentication |
US20070127521A1 (en) * | 2005-12-02 | 2007-06-07 | The Boeing Company | Interface between network data bus application and avionics data bus |
US8140618B2 (en) | 2006-05-04 | 2012-03-20 | Citrix Online Llc | Methods and systems for bandwidth adaptive N-to-N communication in a distributed system |
WO2008000289A1 (en) * | 2006-06-29 | 2008-01-03 | Telecom Italia S.P.A. | Method and apparatus for improving bandwith exploitation in real-time audio/video communications |
US8793490B1 (en) | 2006-07-14 | 2014-07-29 | Jpmorgan Chase Bank, N.A. | Systems and methods for multifactor authentication |
US9275372B2 (en) * | 2006-10-03 | 2016-03-01 | International Business Machines Corporation | Controlling active and passive participation in a thread of conversation |
US8473735B1 (en) | 2007-05-17 | 2013-06-25 | Jpmorgan Chase | Systems and methods for managing digital certificates |
US8180029B2 (en) * | 2007-06-28 | 2012-05-15 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US9154333B2 (en) * | 2007-12-26 | 2015-10-06 | International Business Machines Corporation | Balanced management of scalability and server loadability for internet protocol (IP) audio conferencing based upon monitored resource consumption |
US8321682B1 (en) | 2008-01-24 | 2012-11-27 | Jpmorgan Chase Bank, N.A. | System and method for generating and managing administrator passwords |
DE102008013349B4 (de) * | 2008-03-10 | 2017-07-06 | Hytera Mobilfunk Gmbh | Kommunikationsverfahren und Kommunikationssystem mit Paketabstands- und Paketlängen-Regelung |
US8516121B1 (en) * | 2008-06-30 | 2013-08-20 | Symantec Corporation | Method and apparatus for optimizing computer network usage to prevent congestion |
US9608826B2 (en) | 2009-06-29 | 2017-03-28 | Jpmorgan Chase Bank, N.A. | System and method for partner key management |
WO2011100582A1 (en) * | 2010-02-12 | 2011-08-18 | Lightspeed Vt Llc | System and method for remote presentation provision |
US9043509B2 (en) * | 2011-01-14 | 2015-05-26 | Broadcom Corporation | Method and system for low-latency networking |
US9179169B2 (en) | 2012-03-14 | 2015-11-03 | Imagine Communications Corp. | Adaptive media delivery |
US9515942B2 (en) * | 2012-03-15 | 2016-12-06 | Intel Corporation | Method and system for access point congestion detection and reduction |
US9419957B1 (en) | 2013-03-15 | 2016-08-16 | Jpmorgan Chase Bank, N.A. | Confidence-based authentication |
CA2920122A1 (en) * | 2013-08-08 | 2015-02-12 | Ricoh Company, Limited | Program, communication quality estimation method, information processing apparatus, communication quality estimation system, and storage medium |
US9344218B1 (en) | 2013-08-19 | 2016-05-17 | Zoom Video Communications, Inc. | Error resilience for interactive real-time multimedia applications |
US9621636B1 (en) | 2013-09-10 | 2017-04-11 | Google Inc. | Distributed processing system throttling |
US10148726B1 (en) | 2014-01-24 | 2018-12-04 | Jpmorgan Chase Bank, N.A. | Initiating operating system commands based on browser cookies |
US9794078B2 (en) * | 2014-03-05 | 2017-10-17 | Ricoh Company, Ltd. | Fairly adding documents to a collaborative session |
DE102014115188A1 (de) * | 2014-10-17 | 2016-04-21 | Visocon Gmbh | Verfahren zur Anpassung eines zu übertragenden Datenstroms an eine Ressourcenauslastung |
FR3079704A1 (fr) * | 2018-03-29 | 2019-10-04 | Orange | Communication par video conference |
US10917323B2 (en) * | 2018-10-31 | 2021-02-09 | Nutanix, Inc. | System and method for managing a remote office branch office location in a virtualized environment |
KR102279356B1 (ko) * | 2020-10-16 | 2021-07-20 | (주)아크로비젼 | 케이블 기반 개폐식 지붕의 모니터링을 위한 영상 전송 방법 및 장치 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905729A (en) * | 1995-07-19 | 1999-05-18 | Fujitsu Network Communications, Inc. | Mapping a data cell in a communication switch |
US6185121B1 (en) * | 1998-02-26 | 2001-02-06 | Lucent Technologies Inc. | Access structure for high density read only memory |
DE19809385A1 (de) * | 1998-03-05 | 1999-09-09 | Bosch Gmbh Robert | Schaltregler |
US6590885B1 (en) * | 1998-07-10 | 2003-07-08 | Malibu Networks, Inc. | IP-flow characterization in a wireless point to multi-point (PTMP) transmission system |
-
2001
- 2001-10-23 US US10/045,133 patent/US20030041165A1/en not_active Abandoned
-
2002
- 2002-10-23 EP EP02802206A patent/EP1444594A1/en not_active Withdrawn
- 2002-10-23 CA CA002464505A patent/CA2464505A1/en not_active Abandoned
- 2002-10-23 WO PCT/US2002/034024 patent/WO2003036499A1/en not_active Application Discontinuation
- 2002-10-23 KR KR10-2004-7005895A patent/KR20040084892A/ko not_active Application Discontinuation
- 2002-10-23 JP JP2003538920A patent/JP2005507200A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012133792A (ja) * | 2005-04-07 | 2012-07-12 | Opanga Networks Inc | 適応型ファイル配信システムおよび方法 |
JP2007202129A (ja) * | 2006-01-25 | 2007-08-09 | Seiko Epson Corp | データ中継サーバの通信方法、ファイヤウォールで保護されたビデオ会議サーバの通信方法、およびビデオ会議クライアントの通信方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2003036499A1 (en) | 2003-05-01 |
CA2464505A1 (en) | 2003-05-01 |
KR20040084892A (ko) | 2004-10-06 |
EP1444594A1 (en) | 2004-08-11 |
US20030041165A1 (en) | 2003-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005507200A (ja) | バンド幅最オプティマイザを用いるグループ・ビデオ会議システムおよび方法 | |
KR101392122B1 (ko) | 멀티캐스트 배신 시스템 및 멀티캐스트 배신 방법 | |
US7257641B1 (en) | Multipoint processing unit | |
EP1454281B1 (en) | Quality of service setup on a time reservation basis | |
KR101432303B1 (ko) | 대역 요구 장치, 클라이언트 기기, 대역 요구 방법 및 기록 매체 | |
KR100964983B1 (ko) | 네트워크에 걸쳐서 화상회의 세션을 자동으로 개시하는 방법 및 시스템, 네트워크에 걸쳐서 화상회의 세션에 참가하기 위한 방법 및 네트워크에 걸쳐서 멀티캐스트 세션에 참가하기 위한 방법 | |
US9154395B2 (en) | Method and system for optimizing a jitter buffer | |
US20020064136A1 (en) | Conferencing network resource optimization for multi-point conferences | |
US9948889B2 (en) | Priority of uplink streams in video switching | |
WO2008039077A1 (en) | Method and device for providing scalability in streaming/archiving systems for conference calls | |
WO2007126652A2 (en) | Network resource optimization in a video conference | |
US20090193481A1 (en) | Method, device and system for providing a broadcast tv | |
US20100091687A1 (en) | Status of events | |
CN110445723A (zh) | 一种网络数据调度方法及边缘节点 | |
US9942161B1 (en) | Methods and systems for configuring and updating session-based quality of service for multimedia traffic in a local area network | |
US20020034164A1 (en) | Method and device for controlling a telecommunication conference | |
JP2004350227A (ja) | ビデオ会議システムにおける会議クライアント装置及びそのプログラム | |
AU2002363069A1 (en) | System and method for group video teleconferencing using a bandwidth optimizer | |
CN114567747A (zh) | 一种会议数据传输方法及会议系统 | |
EP1461708A1 (en) | System and method for group video teleconferencing with variable bandwidth | |
JP2009194495A (ja) | マルチキャスト通信システム及びマルチキャスト通信方法 | |
WO2008092250A1 (en) | Cooperative system and method for duplicating and delivering media streams in a distributed manner. | |
Smith et al. | Quality of Service Management within a Middleware for Large Scale Multicast Applications | |
JP2004349824A (ja) | 映像配信システムおよび映像配信方法 | |
JP2004048153A (ja) | 通信制御装置、通信制御方法、通信制御プログラムおよび通信制御プログラムを記録したコンピュータ読み取り可能な記録媒体 |