视频会议带宽选择机制的制作方法

文档序号:6435384阅读:285来源:国知局
专利名称:视频会议带宽选择机制的制作方法
技术领域
本发明一般涉及视频会议,尤其涉及视频会议带宽选择机制。
背景技术
视频会议涉及到在计算机网络上在处在不同位置的几个用户之间传输实况、双向交互式视频。实时交互式视频要求传输延迟受到限制的大量信息。这要求视频会议系统所依赖的计算机网络必须能够为对话过程中所涉及的每个用户提供足够的带宽量和服务质量。在所有网络中带宽往往是有限资源和服务质量未必总能得到保证,因此,存在一些限制。
于是,采用对网络,尤其存在高速链路和低速链路两者的网络的带宽限制加以考虑的视频会议带宽选择机制是众望所归和非常有利的。

发明内容
本发明的视频会议带宽选择机制解决了如上所述的问题,以及现有技术的其它相关问题。该带宽选择机制基于参与视频会议对话的任何节点处在局域网上(例如,被局域切换器或局域路由器隔开)还是被广域网(WAN)远程隔开。最好,局域节点接收编码速率、分辨率、和/或服务质量(QoS)要求都比非局域节点高的视频数据。
根据本发明的一个方面,提供了调整涉及到客户机设备的视频会议对话的参数的方法。该方法包括提供根据至少一个客户机设备的位置调整与至少一个客户机设备相对应的带宽特性的能力的步骤。
根据本发明的另一个方面,提供了调整客户机设备之间的视频会议对话的参数的系统。该系统包括根据至少一个客户机设备的位置调整与至少一个客户机设备相对应的带宽特性的装置。
通过结合附图对本发明的优选实施例进行如下详细描述,本发明的这些和其它方面、特征和优点将更加清楚。


图1A是例示根据本发明的一个示范性实施例、本发明可以应用的计算机系统100的方块图;图1B是例示根据本发明的一个示范性实施例的单播视频会议对话的方块图;
图1C是例示根据本发明的一个示范性实施例的多播视频会议对话的方块图;图2是例示根据本发明的一个示范性实施例、本发明可以应用的网络200的方块图;图3是例示根据本发明的一个示范性实施例、图2的视频会议服务器205的方块图;图4是例示根据本发明的一个示范性实施例、与包括在图3的数据库实体302中的成员数据库314有关的成员数据库项目400的图形;图5是例示根据本发明的一个示范性实施例、与包括在图3的数据库实体302中的有效对话数据库312有关的有效对话项目500的图形;图6是例示根据本发明的一个示范性实施例的简单网络管理协议(SNMP)客户机-服务器结构600的方块图;图7是例示根据本发明的一个示范性实施例、利用对话启动协议(SIP)为视频会议对话注册的方法的图形;图8A是例示根据本发明的一个示范性实施例、利用对话启动协议(SIP)建立单播视频会议对话的方法的图形;图8B是例示根据本发明的一个示范性实施例、当从客户机#1802接收到INVITE请求时(图8A的步骤810)图2的视频会议服务器205采取的步骤的图形;图9是进一步例示根据本发明的一个示范性实施例、图8A的方法的图形;图10是例示根据本发明的另一个示范性实施例、利用对话启动协议(SIP)建立多播视频会议对话的方法的图形;图11是例示根据本发明的一个示范性实施例、利用对话启动协议(SIP)取消视频会议对话的方法的图形;图12是例示根据本发明的一个示范性实施例、利用对话启动协议(SIP)终止两个客户机之间的视频会议对话的方法的图形;图13是例示根据本发明的一个示范性实施例、利用对话启动协议(SIP)终止三个客户机之间的视频会议对话的方法的图形;图14是例示根据本发明的另一个示范性实施例、利用对话启动协议(SIP)终止三个客户机之间的视频会议对话的方法的图形;图15是例示根据本发明的一个示范性实施例、有关分辨率和帧速率调整的信号发送方法的图形;图16是例示根据本发明的一个示范性实施例、分辨率和帧速率调整(客户机2和3)之前的信号发送的图形;图17是例示根据本发明的一个示范性实施例、分辨率和帧速率调整(客户机2和3)之后的信号发送的图形;图18A是根据本发明的一个示范性实施例、视频会议客户机应用模块1800的方块图;图18B是进一步例示根据本发明的一个示范性实施例、包括在图18A的多媒体接口层1802中的音频混合器1899的方块图;图18C是进一步例示根据本发明的一个示范性实施例、包括在图18A的多媒体接口层1802中的回声消除模块1898的方块图;图19是例示根据本发明的一个示范性实施例、包括在音频编解码器1804a和/或视频编解码器1804b之一中的解码器1890应用的方法的图形;图20是例示根据本发明的一个示范性实施例的用户面协议堆栈2000的图形;图21是例示根据本发明的一个示范性实施例的控制面协议堆栈2100的图形;图22是例示根据本发明的一个示范性实施例、与图18A的用户界面1808相对应的屏幕快照2200的方块图;图23是例示根据本发明的一个示范性实施例的登录界面2300的图形;图24是例示根据本发明的一个示范性实施例、用于对话初始化的用户选择界面2400的图形;图25是例示根据本发明的一个示范性实施例、用于接受或拒绝到来呼叫的邀请界面2500的图形;图26是例示根据本发明的一个示范性实施例、为拥有多个参与者的视频会议对话选择带宽的方法的流程图;和图27是例示根据本发明的另一个示范性实施例、建立多播视频会议对话的方法的图形。
具体实施例方式
本发明以视频会议带宽选择机制为目的。该带宽选择机制基于参与视频会议对话的任何节点是处在局域网上(例如,被局域切换器或局域路由器隔开)还是被广域网(WAN)远程隔开。
如果这些节点一起驻留在局域网上,那么,这两个节点之间的带宽量将比可用在WAN上的节点之间的带宽量大得多。于是,最好,局域节点接收编码速率、分辨率、和/或服务质量(QoS)要求都比非局域节点高的视频数据。应该认识到,更高编码速率、分辨率、和/或QoS要求的使用可以针对一些局域节点,但最好针对所有局域节点。
应该明白,本发明可以以硬件、软件、固件、专用处理器或它们的组合等各种形式实现。最好,本发明作为硬件和软件的组合来实现。此外,软件最好作为在程序存储设备上实实在在具体化的应用程序来实现。应用程序可以被上载到包括任何合适结构的机器和由该机器执行。最好,该机器是在含有诸如一个或多个中央处理单元(CPU)、随机访问存储器(RAM)、和输入/输出(I/O)接口之类的硬件的计算机平台上实现的。计算机平台还包括操作系统和微指令代码。这里所述的各种进程和功能的每一个可以是部分微指令代码或通过操作系统执行的部分应用程序(或它们的组合)。另外,诸如附加数据存储设备和打印设备之类的各种其它外围设备可以与计算机平台连接。
还应该明白,由于在附图中描绘的一些子系统部件和方法步骤最好以软件形式实现,系统部件(或进程步骤)之间的实际连接可能随编程本发明的方式而不同。利用这里讲授的原理,本领域的普通技术人员能够构思出本发明的这些和相似实施方案或配置。
图1A是例示根据本发明的一个示范性实施例、本发明可以应用的计算机系统100的方块图。计算机处理系统100包括通过系统总线104与其它部件可操作地耦合的至少一个处理器(CPU)102。只读存储器(ROM)106、随机访问存储器(RAM)108、显示适配器110、I/O适配器112、用户界面适配器114、声音适配器199、和网络适配器198都与系统总线104可操作地耦合。
显示设备116通过显示适配器110与系统总线104可操作地耦合。盘存储设备(例如,磁或光盘存储设备)通过I/O适配器112与系统总线104可操作地耦合。
鼠标120和键盘122通过用户界面适配器114与系统总线104可操作地耦合。鼠标120和键盘122用于将信息输入到系统100和从系统100输出信息。
至少一个扬声器(下文称为“扬声器”)197通过声音适配器199与系统总线104可操作地耦合。
(数字和/或模拟)调制解调器196通过网络适配器198与系统总线104可操作地耦合。
现在根据本发明的一个示范性实施例描述基于政策的网络管理(PBNM)。PBNM技术是提供定义和分配管理网络(下面参照图2描述本发明可以应用的示范性网络)的政策的能力的技术。这些政策使诸如带宽之类的关键性网络资源和安全性得到协调控制。PBNM允许在网络上需要不同对待的、诸如基于IP的视频会议之类的应用。PBNM为使不同类型的应用在单个网络上共存提供了基础,并且把所需资源提供给这些应用的每一个。
更详细地说,PBNM为消耗网络资源的应用和用户定义政策。例如,可以给予关键性商业应用以网络上最高优先级和最高带宽百分比,可以给予IP上的视频会议和语音以次最高优先级,最后,可以给予没有严格带宽或时间临界限制的万维网业务和文件传送以网络上其余的资源量。这种用户和应用的区分可以利用PBNM来完成。
视频会议系统通过为与视频会议应用相对应的政策询问网络政策服务器与PBNM系统联系在一起。视频会议服务器从网络政策服务器中获取政策,并且根据接收的参数,确定网络中可用于视频会议的资源。政策通常对应于,例如,在一天的某些时间内可用于这个应用或只适用于某些用户的带宽。通过对政策和/或其某些部分加以,例如,加入、删除、取代、修改等,可以容易地修改配置。其结果是,视频会议服务器将使用包含在政策中的信息来管理网络上的会议对话。
图2是例示根据本发明的一个示范性实施例、本发明可以应用的网络200的方块图。网络200包括视频会议服务器205、政策和QoS管理器210、MADCAP服务器215、第一数个计算机220a-f、第一局域网225、第一路由器240、第二数个计算机230a-e、第二局域网235、第二路由器245、和广域网250。
现在描述根据本发明的一个示范性实施例的服务器结构。图3是例示根据本发明的一个示范性实施例、图2的视频会议服务器205的方块图。可以认为视频会议服务器205包括如下三个基本实体数据库实体302、网络通信实体304、和对话管理实体306。
对话管理实体306负责管理视频会议对话建立和拆毁。对话管理实体306还提供对视频会议服务器205的大多数主要控制。对话管理实体306包括实现对话管理实体306的功能的对话管理器320。
网络通信实体304负责封装用于视频会议系统的许多不同协议。这些协议可以包括用于远程经营和管理的简单网络管理协议(SNMP)、用于政策管理的公用开放政策服务(COPS)或像轻型目录访问协议(LDAP)那样的另一种协议、用于多播地址分配的多播地址动态客户机分配协议(MADCAP)、用于视频会议对话管理的对话启动协议(SIP)、和用于分布式视频会议服务器管理的服务器到服务器消息传送。于是,网络通信实体304包括SNMP模块304a、LDAP客户机模块304b、MADCAP客户机模块304c、SIP模块304d、和服务器到服务器管理模块304e。此外,前面的单元304a-e分别与如下单元通信远程管理终端382、网络政策服务器(带宽中介器)384、MADCAP服务器215、桌面会议客户机388、和任何其它视频会议服务器390。这样的通信也可以利用共同的用协议模块330表示的传输控制协议(TCP)、用户数据报协议(UDP)、因特网协议(IP)实现。应该认识到,前面的协议表和相应的单元只是示范性的,因此,在保持本发明的精神和范围不变的同时,也可以容易地应用其它协议和相应的单元。
还应该认识到,视频会议服务器205的结构还适合于用户通过虚拟专用网络(VPN)将便携式设备接入联合设施中,以便发送和接收来自视频会议对话的内容。
数据库实体302包括如下四个数据库调度数据库310、有效对话数据库312、成员数据库314、和网络结构数据库316。
视频会议系统服务器205进一步包括,或至少与如下单元交接公司LDAP服务器(用户信息)340和可选外部数据库342。可选外部数据库342包括LDAP客户机304b。
现在描述根据本发明的一个示范性实施例、包括在图3的数据库实体302中的成员数据库314。成员数据库314包括有关登录到视频会议系统的每个用户的信息。举例来说,对于每个用户,如下信息可以保留在成员数据库314中用户名;密码(如果可应用的话);配套视频编解码器和捕获分辨率;配套音频编解码器;当前IP地址;当前呼叫号(如果当前存在有效呼叫的成员);可用性(可用或不可用);视频摄像机类型和型号;网络上的位置(每个位置通过有限带宽广域网链接连接);和CPU类型和处理能力。应该认识到,前面的项目只是示范性的,因此,在保持本发明的精神和范围不变的同时,对于每个用户,除了上面项目的一些或全部之外的其它项目或取代上面项目的一些或全部的其它项目可以保留在成员数据库314中。
图4是例示根据本发明的一个示范性实施例、与包括在图3的数据库实体302中的成员数据库314有关的成员数据库项目400的图形。在图4的示范性实施例中,成员数据库314是利用简单链接表实现的。但是,应该认识到,在本发明的其它实施例中,在保持本发明的精神和范围不变的同时,可以不同地实现成员数据库314。举例来说,LDAP型的数据库可以用于存储成员信息。
现在描述根据本发明的一个示范性实施例、包括在图3的数据库实体302中的有效对话数据库312。有效对话数据库312包括有关当前发生的每一次视频会议对话的信息。举例来说,对于每一次呼叫,如下的信息可以保留在有效对话数据库312中呼叫ID;描述;多播(是/否);如果是多播,那么,多播IP地址;对于每个参与者,网络位置、当前传输分辨率、当前传输位速率、视频和音频编解码器;公开/秘密呼叫(其它人可以加入吗?);对话的预定时间;对话的开始时间;和任何附加选项。应该认识到,前面的项目只是示范性的,因此,在保持本发明的精神和范围不变的同时,除了上面项目的一些或全部之外的其它项目或取代上面项目的一些或全部的其它项目可以保留在有效对话数据库312中。
图5是例示根据本发明的一个示范性实施例、与包括在图3的数据库实体302中的有效对话数据库312有关的有效对话项目500的图形。在图5的示范性实施例中,有效对话数数据库312是利用简单链接表实现的。但是,应该认识到,在本发明的其它实施例中,在保持本发明的精神和范围不变的同时,可以不同地实现有效对话数据库312。
再次参照图3,现在描述根据本发明的一个示范性实施例、包括在图3的数据库实体302中的网络结构数据库316。网络结构数据库316包括整个网络的完整映射。网络结构数据库316包括有关每个有效网络单元(即,IP路由器、以太网切换器等)的信息和有关将路由器和切换器连接在一起的链路的信息。为了有效地管理网络中的带宽和服务质量,视频会议服务器205需要知道这个信息。
在网络结构数据库316中还可以定义有关允许同时发生的视频会议对话数、视频会议对话位速率、和带宽限制的政策信息。在网络结构数据库316内可以将网络结构表示成加权图。应该认识到,在视频会议服务器205中网络结构数据库316是可选数据库。网络结构数据库316可以用于高速缓存从政策服务器210请求的政策。
现在描述根据本发明的一个示范性实施例、包括在图3的数据库实体302中的调度数据库310。调度数据库310包含用户预约使用视频会议对话系统的时间的时间表。这依赖于,例如,信息系统部门处在与在广域网250上的某些链路上可以同时发生的视频会议对话数有关的位置的政策。
现在描述图3的网络通信实体304。网络通信实体304包括简单网络管理协议(SNMP)模块304a;轻型目录访问协议(LDAP)客户机模块304b;多播地址动态客户机分配协议(MADCAP)客户机模块304c;对话启动协议(SIP)模块304d;和服务器到服务器管理模块304e。
现在描述根据本发明的一个示范性实施例、包括在图3的网络通信实体304中的简单网络管理协议(SNMP)模块304a。图6是例示根据本发明的一个示范性实施例的简单网络管理协议(SNMP)客户机-服务器结构600的方块图。结构600代表SNMP模块304a的一种实现;但是,应该认识到,本发明不局限于如图6所示的结构,因此,在保持本发明的精神和范围不变的同时,也可以应用其它SNMP结构。SNMP将用于视频会议服务器的远程管理和监视。
简单网络管理协议(SNMP)客户机-服务器结构600包括SNMP管理站610和SNMP受管理实体620。SNMP管理站610包括管理应用模块610a和SNMP管理器610b。SNMP受管理实体620包括受管理资源620a、SNMP受管理对象620b、和SNMP代理器620c。此外,SNMP管理站610和SNMP受管理实体620的每一个进一步包括UDP层630、IP层640、媒体访问控制(MAC)层650、和物理层660。
SNMP代理器620c允许来自SNMP管理站610的监视和管理。SNMP代理器620c是SNMP结构600中的客户机。SNMP代理器620c主要起响应对信息的请求和来自SNMP管理站610的动作的作用。SNMP管理站610是SNMP结构600中的服务器。SNMP管理站610是网络中管理代理器的中心实体。SNMP管理站610用作使管理者从SNMP代理器620c收集统计数据和改变SNMP代理器620c的配置参数的功能。
利用SNMP模型,视频会议服务器205中的资源可以通过将这些资源表示成对象来管理。每个对象是代表受管理代理器的一个方面的数据变量。这群对象统称为管理信息库(MIB)。对于SNMP管理站610,MIB起SNMP代理器620c上的一群接入点的作用。SNMP管理站610通过检索SNMP代理器620c中MIB对象的值,能够进行监视。SNMP管理站610还能够使动作发生在SNMP代理器620c上或可以改变SNMP代理器620c上的配置设置。
SNMP在IP层640上运行和将UDP层630用于它的传输协议。
用在SNMP管理协议中的基本消息如下GET;SET;和TRAP。GET消息使SNMP管理站610能够检索SNMP代理器620c上那些对象的值。SET消息使SNMP管理站610能够设置SNMP代理器620c上那些对象的值。TRAP消息使SNMP代理器620c能够将重要事件通知SNMP管理站610。
现在描述根据本发明的一个示范性实施例、包括在SNMP受管理实体620中的SNMP受管理资源620a。远程管理可以监视和/或控制视频会议服务器205内的如下资源有效对话和相关统计数据;对话日志;视频会议的网络政策;对话启动协议(SIP)参数和统计数据;和MADCAP参数和统计数据。
代表管理应用模块,从SNMP管理站610发出如下三种类型的SNMP消息GetRequest;GetNextRequest;和SetRequest。前两个是GET函数的变量。所有这三个消息由SNMP代理器620c以上传到管理应用模块610a的Get-Response消息的形式确认。SNMP代理器620c也可以响应已经发生在受管理资源中的事件发出trap消息。
再次参照图3,现在描述根据本发明的一个示范性实施例、包括在图3的网络通信实体304中的轻型目录访问协议(LDAP)客户机模块304b。LDAP模块304b将作为基于标准IP的协议的LDAP用于访问公用目录信息。LDAP定义像如下那样访问和修改目录项的操作搜索满足用户特定准则的项目;加入项目;删除项目;修改项目;和比较项目。
现在描述根据本发明的一个示范性实施例、包括在图3的网络通信实体304中的多播地址动态客户机分配协议(MADCAP)客户机模块304c。MADCAP模块304c利用MADCAP,它是使主机可以从多播地址分配服务器请求多播地址分配服务的协议。当视频会议对话被建立成使用多播服务时,视频会议服务器205需要获取分配给对话之中的客户机的多播地址。视频会议服务器205可以利用MADCAP协议动态地从多播地址分配服务器获取多播地址。
现在描述根据本发明的一个示范性实施例、包括在图3的网络通信实体304中的对话启动协议(SIP)模块304d。SIP模块304d利用SIP,它是基于IP的网络上创建、修改和终止与一个或多个参与者的多媒体对话的应用层控制协议。SIP是基于文本消息的协议。
在基于SIP的视频会议系统中,每个客户机和服务器通过SIP URL来标识。SIP URL采取user@host的形式,它的格式与电子邮件地址的格式相同,并且,在多数情况下,SIP URL就是用户电子邮件地址。
现在描述根据本发明的一个示范性实施例、包括在图3的网络通信实体304中的服务器到服务器管理模块304e。服务器到服务器管理模块304e利用在视频会议服务器之间交换信息的消息。服务器到服务器管理模块304e最好用在对支持的网络(例如,LAN 225)局部建立唯一视频会议服务器(例如,视频会议服务器205),从而几个视频会议服务器可以存在于公司广域网(例如,网络200)中的典型部署中。用于交换信息的消息的一些主要用途包括使数据库同步和检验网络资源的可用性。
定义如下消息QUERY-查询远程服务器中的项目;ADD-把项目加入远程服务器中;DELETE-从远程服务器中删除项目;和UPDATE-更新远程服务器中的项目。
服务器到服务器消息传送可以在每个服务器之间使用基于TCP的连接。当一个服务器的状态发生改变时,用相同的信息更新其余的服务器。
现在描述根据本发明的一个示范性实施例的视频会议服务器205的运行脚本。首先,给出与视频会议对话的建立相对应的运行脚本的描述,然后给出在视频会议对话期间与分辨率和帧速率调整相对应的运行脚本的描述。对话运行脚本包括SIP服务器发现、成员注册、对话建立、对话消除、和对话终止。
现在描述根据本发明的一个示范性实施例、与SIP服务器发现相对应的对话运行脚本。用户(视频会议客户机应用模块)可以利用预先配置视频会议服务器(人工预备)或者通过把REGISTER请求发送到众所周知的“所有SIP服务器”多播地址“sip.mcast.net”(224.0.1.75)来启动。第二种机制(REGISTER请求)更可取,因为不要求每个用户在他们的视频会议客户机应用模块中人工配置局域SIP服务器的地址。在这种情况下,需要在网络中正确地确定多播地址的范围,以保证用户为视频会议注册到正确的SIP服务器。除了前面的方法之外,在使预备过程更简单的另一种方法中,SIP规范建议管理者利用sip.domainname约定(例如,sip.princeton.tce.com)命名他们的SIP服务器。
现在描述根据本发明的一个示范性实施例、与成员注册相对应的对话运行脚本。图7是例示根据本发明的一个示范性实施例、利用对话启动协议(SIP)为视频会议对话注册的方法的图形。图7的例子包括视频会议客户机应用模块(客户机)702和视频会议服务器(服务器)205。应该认识到,短语“客户机应用模块”和“客户机”在这里可交换使用。
在成员注册功能中,客户机702把SIP REGISTER请求发送到服务器205(步骤710)。服务器205接收这个消息,并且将客户机702的IP地址和SIPURL存储在成员数据库314中。
尽管在标准中未定义它的使用,REGISTER请求可以包括消息主体。消息主体可以包含与利用服务器205注册的客户机702的配置选项有关的附加信息。
服务器205通过将200OK消息发回到客户机702确认注册(步骤720)。
现在描述根据本发明的一个示范性实施例的单播和多播视频会议对话。图1B和1C是分别例示根据本发明的一个示范性实施例的单播视频会议对话和多播视频会议对话的方块图。图1B和1C的例子包括客户机1130、客户机2132、客户机3134、以太网切换器136、IP路由器138、IP路由器140、和WAN 142。
在单播例子中,将唯一数据流从每个客户机发送到每一个其它客户机。随着更多的参与者加入网络中,这样的方法可以消耗掉大量的带宽。相反,在多播方法中,从每个客户机只发送一个数据流。因此,与单播方法相比,多播方法消耗更少的诸如带宽之类的网络资源。
现在描述根据本发明的一个示范性实施例、与单播视频会议对话建立相对应的对话运行脚本。图8A是例示根据本发明的一个示范性实施例、利用对话启动协议(SIP)建立单播视频会议对话的方法的图形。图8A的例子包括视频会议客户机应用模块#1(客户机#1)802、视频会议服务器(服务器)205、和视频会议客户机应用模块#2(客户机#2)806。
将INVITE请求从客户机#1802发送到服务器205(步骤810)。将INVITE请求从服务器205转发到客户机#2806(步骤815)将180振铃消息从客户机#2806发送到服务器205(步骤820)。将180振铃消息从服务器205转发到客户机#1802(步骤825)。
将200OK消息从客户机#2806发送到服务器205(步骤830)。将200OK消息从服务器205转发到客户机#1802(步骤835)。
将确认消息ACK从客户机#1802发送到客户机#2806(步骤840)。在两个节点(客户机#1802和客户机#2806)之间发生视频会议对话(媒体对话)(步骤845)。
图8B是例示根据本发明的一个示范性实施例、当从视频会议客户机应用模块#1802接收到INVITE请求时(图8A的步骤810)视频会议服务器205采取的步骤的图形。
服务器205首先进行检验,看一看是否利用服务器205注册了请求用户(客户机#1802),并且还进行检验,看一看是否利用服务器205注册了被呼叫的用户(客户机#2806)(步骤850)。
服务器205确定每个用户在网络上的位置(步骤855),并且确定是否存在连接他们的两个位置的低带宽WAN链路(例如,WAN250)(步骤860)。
如果不存在将两个位置连接在一起的低带宽链路WAN,服务器205继续进行呼叫(步骤865)。但是,如果在两个用户之间存在低带宽链路,那么,该方法转到步骤870。
在步骤870,服务器205检验WAN 250上有关视频会议对话的政策;这基本上可以翻译成“X对话可以以最大位速率Y发生”。服务器205根据这个政策检验可用性(步骤875)。如果不可用,那么,服务器205通过发送如下消息的任何一个拒绝INVITE请求“600-到处占线”、“486-这里占线”、“503-无服务可用”、或“603-拒绝”(步骤880),然后,终止该方法(不继续到图8A的方法的步骤815)。但是,如果可用,那么,服务器205继续进行呼叫(步骤865)。应该认识到,图8A的方法的步骤815接在步骤865之后。
图9是进一步例示根据本发明的一个示范性实施例、图8A的方法的图形。图9的例子包括客户机应用模块1998、客户机应用模块2997、视频会议服务器205、和其它视频会议服务器986。也显示在图9中的视频会议服务器205的单元包括成员数据库314、有效对话数据库312、包括在网络结构数据库316中的政策数据库999、对话管理器320、SIP模块304d、和服务器到服务器管理模块304e。
图9被配备成描绘视频会议服务器205内的内部交互,因此,只在基本级上显示它,以提供视频会议服务器205的实体之间的信令流的例子。
将INVITE请求从客户机应用模块1999发送到视频会议服务器205内的SIP模块304d(步骤903)。SIP模块304d解码消息,并且将INVITE请求转发到对话管理器320(步骤906)。对话管理器320检验网络结构数据库316内的有效对话数据库312、成员数据库314、和政策数据库999,以保证可以正确地建立起对话(分别是步骤909、912、和915)。如果可以正确地建立起对话,那么,有效对话数据库312、成员数据库314、和政策数据库999将OK消息发送到对话管理器320(步骤918、921、和924)。一旦这个核实进程完成,视频会议服务器205就将系统状态的变化通知其它视频会议服务器(步骤927和930)。
对话管理器320把INVITE消息转发到SIP模块304d(步骤933),然后,SIP模块304d又将INVITE消息转发到客户机应用模块2997(步骤936)。当接收到INVITE消息时,客户机应用模块2997利用指示SIP模块304d已经接收到INVITE消息的180振铃消息对SIP模块304d作出响应(步骤939)。180振铃消息由SIP模块304d接收,解码,然后转发到对话管理器320(步骤942)。在视频会议服务器205内如图9所示的数据库的每一个中更新客户机的状态(步骤945、948、951、954、957、和958)。
将180振铃消息从对话管理器320转发到客户机应用模块1998(步骤960和963)。然后,将200OK消息从客户机应用模块2997发送到SIP模块304d(步骤966),并且从SIP模块304d转发到对话管理器320(步骤969)。200OK消息指示客户机应用模块2997正在接受视频会议对话的邀请。
在视频会议服务器205内如图9所示的数据库的每一个中更新客户机的状态(步骤972、975、978、981、984、和985)。将OK消息从对话管理器320发送到SIP模块304d,并且从SIP模块304d转发到客户机应用模块1998(步骤988和991)。将ACK消息从客户机应用模块1998发送到客户机应用模块2987,从而完成对话建立(步骤994)。
现在描述根据本发明的一个示范性实施例、与多播视频会议对话建立相对应的对话运行脚本。为了提供建立多播对话,使用对话描述协议(SDP)。SDP协议能够传送多播地址和端口号。
除了要求多播地址之外,建立多播对话与建立单播对话类似。多播地址由网络中的MADCAP服务器215分配。
图10是例示根据本发明的另一个示范性实施例、利用对话启动协议(SIP)建立多播视频会议对话的方法的图形。图10的例子包括视频会议客户机应用模块#1(客户机#1)1002、视频会议服务器(服务器)205、视频会议客户机应用模块#2(客户机#2)1006、和MADCAP服务器215。
将INVITE请求从客户机#11002发送到服务器205(步骤1010)。将MADCAP请求从服务器205发送到MADCAP服务器215(步骤1015)。将确认消息ACK从MADCAP服务器215发送到服务器205(步骤1020)。将INVITE请求从服务器205转发到客户机#21006(步骤1025)。
将180振铃消息从客户机#21006发送到服务器205(步骤1030)。将180振铃消息从服务器205转发到客户机#11002(步骤1035)。
将200OK消息从客户机#21006发送到服务器205(步骤1040)。将200OK消息从服务器205转发到客户机#11002(步骤1045)。
将确认消息ACK从客户机#11002发送到客户机#21006(步骤1050)。在两个节点(客户机#11002和#21006)之间发生视频会议对话(媒体对话)(步骤1055)。
现在描述根据本发明的一个示范性实施例、与取消视频会议对话相对应的对话运行脚本。CANCEL消息用于终止未决对话建立尝试。客户机可以使用这个消息来取消客户机早先启动的未决视频会议对话建立尝试。服务器将CANCEL消息发送到将INVITE消息发送给它的、带有未决请求的相同位置。客户机不应该用“200OK”消息对CANCEL消息作出响应。如果CANCEL消息失败了,那么,可以使用对话终止序列(即,BYE消息)。
图11是例示根据本发明的一个示范性实施例、利用对话启动协议(SIP)取消视频会议对话的方法的图形。图11的例子包括视频会议客户机应用模块#1(客户机#1)1102、视频会议服务器(服务器)205、和视频会议客户机应用模块#2(客户机#2)1106。
将INVITE请求从客户机#11102发送到服务器205(步骤1110)。将INVITE请求从服务器205转发到客户机#21106(步骤1115)。
将180振铃消息从客户机#21106发送到服务器205(步骤1120)。将180振铃消息从服务器205转发到客户机#11102(步骤1125)。
将CANCEL消息从客户机#11102发送到服务器205(步骤1130)。将CANCEL消息从服务器205转发到客户机#21106(步骤1135)。
现在描述根据本发明的一个示范性实施例、与终止视频会议对话相对应的对话运行脚本。图12是例示根据本发明的一个示范性实施例、利用对话启动协议(SIP)终止两个客户机之间的视频会议对话的方法的图形。图12的例子包括第一客户机(视频会议客户机应用模块#1)1202、视频会议服务器(服务器)205、和第二客户机(视频会议客户机应用模块#2)1206。
客户机#11202决定中断与客户机#21206的呼叫。因此,客户机#11202将BYE消息发送到服务器205(步骤1210)。服务器205将BYE消息转发到客户机#21206(步骤1220)。
客户机#21206将200OK消息发回到服务器205,表明它(客户机#21206)已经断开了(步骤1230)。服务器205将200OK消息转发到客户机#11202,表明已成功断开(步骤1240)。
图13是例示根据本发明的一个示范性实施例、利用对话启动协议(SIP)终止三个客户机之间的视频会议对话的方法的图形。图13的例子包括第一客户机(视频会议客户机应用模块#1)1302、视频会议服务器(服务器)205、和第二客户机(视频会议客户机应用模块#2)1306、和第三客户机(视频会议客户机应用模块#3)1308。
客户机#11302决定切断与客户机#21306和客户机#31308的呼叫;这不拆毁客户机#21306和客户机#31308之间的对话。
客户机#11302将BYE消息发送到服务器205(步骤1310)。服务器205解释BYE消息和明白客户机#21306和客户机#31308卷入与客户机#11302的视频会议对话中,并且把BYE消息转发给客户机#21306和客户机#31308两者(步骤1320和1330)。
客户机#21306将200OK消息发回到服务器205(步骤1340)。服务器205将200OK消息转发回到客户机#11302(步骤1350)。客户机#31308将200OK消息发回到服务器205(步骤1360)。服务器205将200OK消息转发回到客户机#11302(步骤1370)。
图14是例示根据本发明的另一个示范性实施例、利用对话启动协议(SIP)终止三个客户机之间的视频会议对话的方法的图形。图14的例子包括第一客户机(视频会议客户机应用模块#1)1402、视频会议服务器(服务器)205、和第二客户机(视频会议客户机应用模块#2)1406、和第三客户机(视频会议客户机应用模块#3)1408。
客户机#11402决定切断与客户机#21406和客户机#31408的呼叫;这不拆毁客户机#21406和客户机#31408之间的对话。
客户机#11402将预定给客户机#21406的BYE消息发送到服务器205(步骤1410)。服务器205将BYE消息转发到客户机#21406(步骤1420)。客户机#11402将预定给客户机#31408的BYE消息发送到服务器205(步骤1430)。服务器205将BYE消息转发到客户机#31408(步骤1440)。
客户机#21406将200OK消息发回到服务器205(步骤1450)。服务器205将200OK消息转发回到客户机#11402(步骤1460)。客户机#31408将200OK消息发回到服务器205(步骤1470)。服务器205将200OK消息转发回到客户机#11402(步骤1480)。
除了参照图12到14描述的前例之外,终止进程也可以通过将BYE消息发送到属于视频会议对话用户的多播组地址来调用。利用这种方法,服务器和其它客户机应用模块将接收消息。由于与之相联系的更低开销量,这是终止对话的更通用和有效的机制。
现在描述根据本发明的一个示范性实施例、与分辨率和帧速率调整相对应的运行脚本。视频会议涉及到在计算机网络上在处在不同位置的几个用户之间传输实况、双向交互式视频。实时交互式视频要求传输延迟受到限制的大量信息。这要求视频会议系统所依赖的计算机网络必须能够为对话过程中所涉及的每个用户提供足够的带宽量和服务质量。在所有网络中带宽往往是有限资源和服务质量未必总能得到保证,因此,存在一些限制。在专用联合网络中,可以保证服务质量,但未必可以保证大量带宽。
基本联合计算机网络设施包括通过低速链路连接在一起的几个高速局域网(LAN)(参见,例如,图2)。每个高速LAN通常代表在单个地理位置上的网络设施,和低速链路是将多个地理位置连接在一起的长距离链路。使用低速链路的理由是,长距离链路的成本相对较高,并且大多数网络业务都定域在局域网内,因此,通常在这些长距离链路上不交换大量数据。
现在,在基于IP的网络上服务质量方面的最新进展为允许在这些网络之间传输其它类型的信息提供了手段。除了非实时数据业务之外,这为在设施之间传输实时信息(即,音频和视频)开辟了道路。利用网络服务质量的视频会议服务相当适合于建立在这个设施之上。现在,处在两个不同地理位置的两个用户完全有可能出现在实时视频会议对话中。视频会议对话的一个缺点是实时视频的传输可以消耗掉巨量带宽和容易耗尽可用网络资源。在网络之间传输的实时视频的位速率主要取决于视频分辨率和使用的压缩算法。通常,在带宽量合理的网络上完全可以支持处在不同地理位置的二个、三个或四个用户之间的一个视频会议对话。但是,由于带宽限制,存在着一般说来,既不能支持视频会议对话中四个之外的另外用户,也不能支持第二个视频会议对话的情况。视频会议系统的限制因素是地理位置之间的低速长距离链路。
一种可能解决方案是增加两个地理位置之间的长距离链路的带宽,以便支持系统中更多的用户。这种手段的缺点是带宽非常昂贵。第二种解决方案是拥有只允许视频会议对话中的有限数量用户(即,使用中用户)以高分辨率和高位速率传输,和该对话中的其余用户(即,非使用中用户)只能以有限位速率和有限分辨率传输的系统。视频会议对话组织者将控制哪些用户以高分辨率传输和哪些用户以低分辨率传输。如果用户在对话中不积极谈话或交互,那么,就不需要以高分辨率发送它们的视频。这样的手段可以节约极大量的带宽。
向前参照图18A的视频会议客户机应用模块1800,这种手段涉及到拥有视频会议客户机应用模块1800中支持各种窗口尺寸(即,代表高分辨率和低分辨率解码视频流的不同尺寸显示窗)的用户界面1808、和指定服务器205和其它客户机应用模块之间的通信的消息传送系统1842(包括在网络实体1806中,网络实体1806又包括在图18A的视频会议客户机应用模块1800中)。消息传送系统1842将包括控制客户机应用模块每一个的编码分辨率和传输位速率的消息。
现在描述根据本发明的一个示范性实施例、与分辨率和帧速率高速相对应的消息。具体地说,描述MSG_WINDOW_SWITCH消息和MSG_ADJUST_CODEC消息。
将MSG_WINDOW_SWITCH消息从客户机发送到服务器,指示使用中用户和非使用中用户之间的切换;也就是说,使用中用户变成非使用中用户,和非使用中用户变成使用中用户。视频会议服务器将与客户机确认这个请求。
将MSG_ADJUST_CODEC消息从服务器发送到每个客户机。MSG_ADJUST_CODEC消息将向客户机指示客户机应用以什么样的分辨率(即,CIF或QCIF)和帧速率发送。MSG_ADJUST_CODEC消息由每个客户机确认。
图15是例示根据本发明的一个示范性实施例、有关分辨率和帧速率调整的信号发送方法的图形。图15的例子包括视频会议服务器(服务器)205、客户机11504、客户机21506、客户机31508、和客户机41510。
将MSG_WINDOW_SWITCH消息从客户机11504发送到服务器205(步骤1520)。将确认消息ACK从服务器205发送到客户机11504(步骤1525)。
将MSG_ADJUST_CODEC(低)消息从服务器205发送到客户机11504(步骤1530)。将确认消息ACK从客户机11504发送到服务器205(步骤1535)。
将MSG_ADJUST_CODEC(高)消息从服务器205发送到客户机21506(步骤1540)。将确认消息ACK从客户机21506发送到服务器205(步骤1545)。
将MSG_ADJUST_CODEC(低)消息从服务器205发送到客户机31508(步骤1550)。将确认消息ACK从客户机31508发送到服务器205(步骤1555)。
将MSG_ADJUST_CODEC(低)消息从服务器205发送到客户机41510(步骤1560)。将确认消息ACK从客户机41510发送到服务器205(步骤1565)。
图16是例示根据本发明的一个示范性实施例、分辨率和帧速率调整(客户机2和3)之前的信号发送的图形。图17是例示根据本发明的一个示范性实施例、分辨率和帧速率调整(客户机2和3)之后的信号发送的图形。图16和17的例子包括客户机11602、客户机21604、网络路由器1606、客户机31608、和客户机41610。
将“以低位速率/分辨率发送”消息从客户机11602发送到网络路由器1606(步骤1620)。将“以高位速率/分辨率发送”消息从客户机31608发送到网络路由器1606(步骤1625)。将“以低位速率/分辨率发送”消息从客户机21604发送到网络路由器1606(步骤1630)。将“以高位速率/分辨率发送”消息从客户机41610发送到网络路由器1606(步骤1635)。
利用多播地址将数据从网络路由器1606发送到客户机21604、客户机31608、客户机11602、和客户机41610(分别是步骤1640、1645、1650、和1655)。
转到图17,将“以低位速率/分辨率发送”消息从客户机11602发送到网络路由器1606(步骤1720)。将“以高位速率/分辨率发送”消息从客户机31608发送到网络路由器1606(步骤1725)。将“以高位速率/分辨率发送”消息从客户机21604发送到网络路由器1606(步骤1730)。将“以低位速率/分辨率发送”消息从客户机41610发送到网络路由器1606(步骤1735)。
利用多播地址将数据从网络路由器1606发送到客户机21604、客户机31608、客户机11602、和客户机41610(分别是步骤1740、1745、1750、和1755)。
现在描述根据本发明的一个示范性实施例的客户机应用模块结构。客户机应用模块负责与用户交互、与其它客户机应用模块交换多媒体内容、和管理与服务器应用模块的呼叫。图18A是根据本发明的一个示范性实施例、视频会议客户机应用模块1800的方块图。应该认识到,可以将视频会议客户机应用模块1800建立在像计算机220a-f的任何一个和/或计算机220a-c的任何一个那样的计算机上。
视频会议客户机应用模块1800包括如下四个基本功能实体多媒体接口层1802;编解码器1804(音频编解码器1804a和视频编解码器1804b);网络实体1806;和用户界面1808。
多媒体接口层1802是视频会议客户机应用模块1800的主要控制实例。所有系统内通信通过多媒体接口层1802路由和受多媒体接口层1802控制。多媒体接口层1802的关键基础特征之一是容易地交换不同音频和视频1804的能力。除此之外,多媒体接口层1802提供了与取决于操作系统(OS)的用户输入/输出实体和网络子系统的接口。多媒体接口层1802包括成员数据库1820、主控模块1822、音频混合器1899、和回声消除模块1898。
用户界面1808为终端用户提供了与视频会议客户机应用模块1800的交互点。用户界面最好但并非必须当作OS相关模块来实现。许多图形用户界面取决于他们使用的具体OS。用户界面1808的四个主要功能是视频捕获、视频显示、音频捕获、和音频再现。用户界面1808包括音频/视频捕获接口1830、音频/视频回放模块1832、成员观看模块1834、聊天模块1836、和用户选择/菜单1838。音频/视频捕获接口1830包括摄像机接口1830a、麦克风接口1830b、和文件接口1830c。音频/视频回放模块1832包括视频显示器1832a、音频回放模块1832b、和文件接口1832c。
网络实体1806代表视频会议客户机应用模块1800的通信子系统。网络实体1806的功能是基于对话启动协议(SIP)的客户机到服务器消息传送和音频和视频流的发送和接收。网络实体1806还包括用于客户机之间媒体流的验证和加密通信的基本安全功能。网络实体1806包括安全模块1840、消息传送系统1842、视频流模块1844、音频流模块1846、和IP套接口1848a-c。
音频编解码器1804a和视频编解码器1804b是管理数字媒体的压缩和解压缩的子系统。与编解码器的接口应该是简单的和通用的,以便使交换它们变得容易。下文把多媒体接口层1802和编解码器1804之间的简单关系定义成用于实现的示范性模板或向导。音频编解码器1804a和视频编解码器1804b每一个都包括编码器1880和解码器1890。编码器1880和解码器1890每一个都包括队列1895。
视频会议客户机应用模块1800至少与视频会议服务器205和其它客户机1870连接。
现在描述根据本发明的一个示范性实施例、包括在图18A的多媒体接口层1802中的成员数据库1820。成员数据库1820根据每个对话存储有关每个参与用户的信息。成员数据库1820包括与发送/接收IP地址有关的信息、客户机能力、有关特定编解码器的信息、和有关不同用户的状态的细节。应该认识到,前面的项目只是示范性的,因此,在保持本发明的精神和范围不变的同时,除了上面项目的一些或全部之外的其它项目或取代上面项目的一些或全部的其它项目可以保留在成员数据库1820中。包括在成员数据库1820中的信息用于控制目的地是音频和视频解码器1890的输入信息。从网络输入的媒体信息需要路由到正确的音频和视频解码器1890。同样重要的是,从音频和视频解码器1890输入的媒体信息需要路由到正确的单播或多播地址,以便加以分配。包括在成员数据库1820中的基本信息还路由到用户界面1808,以便终端用户意识到对话的参与者和他们的能力。一旦从视频会议服务器205接收到INVITE请求,就把用户加入成员数据库1820中,和一旦从视频会议服务器205接收到BYE请求,就从中除去用户。当对话终止时,清仓成员数据库1820。
现在描述例示根据本发明的一个示范性实施例、包括在图18A的多媒体接口层1802中的主控模块1822。
主控模块1822是多媒体接口层1802的非常重要部分。主控模块1822起中央管理子系统的作用,并且提供如下关键功能音频和视频解码器和回放的同步机制;解码器到屏幕或到供记录用的文件的连接目标;和应用层服务质量。
音频和视频回放的同步对于最佳视频会议用户体验是至关重要的。为了精确地使两个媒体流同步,需要使用和与媒体内容一起发送时间标记。实时协议(RTP)为包括时间标记而提供通用首标和为这个目的而提供序列号。提供的时间标记不是打算使两个网络节点时钟同步,而是打算为了一致回放而使音频和视频流同步。这些时间标记需要在捕获的时候从同上点上的公用时钟中得出。例如,当捕获视频帧时,必须记录捕获视频帧的时间。这同样适用于音频。本文其它部分描述了使用RTP的附加细节和准则。
在使音频和视频同步的过程中主控模块1822的功能是使网络实体1806和编解码器1804连接,以便适当地传送元数据(包括时间标记和序列号)和多媒体数据。如果数据包迟到了,那么,取决于系统的当前状况,可以在解码之前或之后丢掉它们。RTP时间标记随后用于创建展示和回放时间标记。
主控模块1822还负责将音频和视频解码器1890的输出引向供回放用的屏幕,或供记录用的文件,或两者。独立地对待每个解码器1890,因此,在举例的情形下,这使一个解码器的输出显示在屏幕上,使第二解码器的输出记录在一个文件中,和使来自第三解码器的输出同时去往到文件和屏幕。
除了上述责任之外,主控模块1822还与应用层服务质量有关。主控模块1822收集与数据包丢弃、接收和发送的字节有关的信息、和相应地,根据这个信息而动作。这会涉及到将消息发送到另一个客户机或视频会议服务器205,以帮助修补出现在网络中的状况。实时控制协议(RTCP)可以用于报告统计数据和数据包丢失,还可以用于专用信号传送。
图18B是进一步例示根据本发明的一个示范性实施例、包括在图18A的多媒体接口层1802中的音频混合器1899的方块图。音频混合器1899(下文也称为“增益控制模块”)与数个音频解码器1890可操作地耦合。多个音频解码器1880接收压缩音频流和输出未压缩音频流。将未压缩音频流输入到音频混合器1899,并且输出成组合音频流。
图18C是进一步例示根据本发明的一个示范性实施例、包括在图18A的多媒体接口层1802中的回声消除模块1898的方块图。回声消除模块(下文也称为“回声消除器”)1898与扬声器1897(例如,音频回放模块1832b)和麦克风1896(例如,麦克风接口1830b)可操作地耦合。当在全双工或双向通信系统中生成来自扬声器1897的声音时,意欲只听到来自本地听众的声音。但是,生成的声音也被随后使该信号发送回到远端的本地麦克风1896听到,并且被当作回声听到。由于这个原因,视频会议客户机应用模块1800要求回声消除模块1898减轻这种效应,从而获得更好的用户体验。
现在描述根据本发明的一个示范性实施例、适用于视频会议客户机应用模块1800的子系统的接口。该接口包括与用户界面1808、网络实体1806、和编解码器1804的交互点。用户界面1808提供接收捕获的音频和视频,以及它们的相应的时间标记的功能。除此之外,还必须提供为了进行显示和再现而将音频和视频发送到用户界面1808的功能。网络实体1806接口提供为了对话控制和安全性而发送输入和输出消息的信号的功能。音频和视频编解码器1804a和1804b提供用于配置控制,以及为了进行压缩或解压缩而发送和接收数据包的基本接口。
现在描述根据本发明的一个示范性实施例的音频和视频编解码器1804a和1804b。
存在几种适合用在视频会议中的音频和视频编解码器。最好但并非必须,按照本发明应用的编解码器是基于软件的。根据本发明的一个示范性实施例,由于典型台式计算机的处理能力限制,H.263用于视频压缩和解压缩。随着将来台式计算机变得更有能力,可以实现和利用使用像H.26L那样更先进的编解码器的能力。当然,本发明不局限于前面类型的编解码器,因此,在保持本发明的精神和范围不变的同时,可以使用其它类型的编解码器。
现在描述根据本发明的一个示范性实施例、与编解码器1804a和1804b的接口。该描述包括DataIn函数、回叫函数、和编解码器选项。与编解码器1804a和1804b的接口应该足够灵活和在一般意义上来定义,以允许编解码器的可交换性,以及在将来允许加入新编解码器。实现这种灵活和一般性接口的推荐接口是向用户提供有限数量功能的非常简单接口。
DataIn函数仅用于存储编码器或解码器类的帧或数据包。
为了提供多媒体接口层1802和多媒体编解码器1804之间的简单连接,数据输出函数应该被当作回叫信号来实现。多媒体接口层1802把这个回叫函数设置成接收实体的输入函数。例如,当编解码器已经完成编码或解码帧时,由编解码器调用这个函数,以便从编码进程或解码进程传递预定信息。由于在这个回叫过程中编解码器不能做任何事情的限制,这个函数应该尽可能快地返回,以防止系统中的等待和不必要延迟。在这个函数中应该进行的唯一附加等待应该是访问共享资源时的互斥锁定。
适用于不同类型编解码器的选项范围是可变的。为了满足管理这些选项的要求,应该使用简单接口。由于它提供的灵活性,基于文本的接口是更可取的(但不是强制性的)。应该存在像START和STOP那样的一组公用命令,然后,编解码器指定这些命令。这种方法提供了简单接口,但是,由于需要简单解释器,使编解码器变得更加复杂。举例来说,选项函数可以通用到足以读取和写入选项。
例Result=Options(″start″);Result=Options(″resolution=CIF″);etc.
例如,编解码器之间的一些公用选项应该被标准化成start;stop;pause;quality index(0-100);和resolution。
质量指数是其值在0%到100%之间、描述编解码器的总质量的因子。它遵从值越大,视频质量越好的基本假设。
图19是例示根据本发明的一个示范性实施例、包括在音频编解码器1804a和/或视频编解码器1804b之一中的解码器1890应用的方法的图形。下面针对解码器描述表1901和调用器描述表1902对该方法加以描述。该方法至少利用如下输入和输出进行操作“数据输入”1999;“信号输入”1998;“信号输出回叫”1997;“设置回叫功能”1996;和“数据输出回叫”1995。输入“数据输入”1999用于将数据存储到输入队列(步骤1905)。
执行初始化步骤(Init),以初始化解码器1890(步骤1910)。执行等待开始或退出命令的主循环(步骤1920)。如果接收到退出命令,那么,从该方法退出(步骤1922),返回到,例如,另一个操作(1924)。
读出输入队列1895的数据,或者,如果输入队列1895是空的,施加等待条件(步骤193)。如果在步骤1930读出数据,解码该数据(步骤1940)。把“数据输出回叫”1995提供给步骤1920。
现在描述根据本发明的一个示范性实施例、网络200应用的通信。该描述补充上面参照网络通信提供的内容。
消息传送系统1842(包括在图18A的网络实体1806中)提供视频会议客户机应用模块1800和视频会议服务器205之间的接口。意欲用于对话管理(即,对话建立和拆毁)。所有信令消息都通过视频会议服务器205通信,而不是直接从客户机到客户机。像多媒体内容和私人聊天消息那样的数据包括只在客户机之间直接发送的信息。消息传送系统将使用基于标准的对话启动协议(SIP)。
存在几种支配视频会议客户机应用模块1800的功能的不同协议。例如,可以应用对话启动协议(SIP)、实时协议(RTP)、实时控制协议(RTCP)、和对话描述协议(SDP)。
对话启动协议(SIP)的用途是对话管理。SIP是用于创建、修改和终止与基于IP的网络上的一个或多个参与者的多媒体对话的基于文本的应用层控制协议。SIP用在客户机和服务器之间以完成这个工作。上面针对视频会议服务器205进一步描述了SIP。
实时协议(RTP)用于实时多媒体(即,音频和视频)的传输。RTP是提供与正在传送的多媒体信息的类型有关的附加细节的应用层协议。RTP存在于传输层之上和通常在用户数据报协议(UDP)的顶部传送。客户机应用模块中RTP的基本功能是用于传输时间标记(用于音频和视频同步化)、序列号,以及标识封装的有效负载的类型(例如,MPEG4、H.263、G.723等)。
图20是例示根据本发明的一个示范性实施例的用户级协议堆栈2000的图形。堆栈2000包括在一个层上的视像2010和声音2020、在另一个层上用于视像2010和声音2020两者的RTP2030、在又一个层上的UDP Port#X 2040和UDP Port#Y 2050、IP层2060、链路层2070、和物理层2080。除了通用RTP首标之外,还使用编解码器专用RTP首标。
实时控制协议(RTCP)是RTP标准的组成部分。RTCP用作发送器和接收器之间的统计数据报告工具。每个视频会议客户机应用模块1800都将收集他们的统计数据,和相互发送它们,以及将它们发送到服务器205。视频会议服务器205根据这个数据,记录有关可能出现在这个对话中的问题的信息。
图21是例示根据本发明的一个示范性实施例的控制级协议堆栈2100的图形。堆栈2100包括在一个层上的SIP 2110、UI编解码器改变消息传送2120、和RTCP 2130、TCP层2140、IP层2150、链路层2160、和物理层2170。
SDP的主要用途是传送有关对话的媒体流的信息。SDP包括但不局限于如下项目对话名和用途;对话启动的时间;构成对话的媒体;接收媒体的信息(即,地址、端口、格式等);媒体的类型;传输协议(RTP/UDP/IP);媒体的格式(H.263等);多播;媒体的多播地址;媒体的传输端口;单播;和媒体的远程地址。
SDP信息是SIP消息的消息正文。一起发送它们。
现在进一步描述例示根据本发明的一个示范性实施例、图18A的用户界面1808。用户界面1808是视频会议客户机应用模块1800的非常重要单元。用户界面1808包括几个视窗(显示/按钮/菜单/...),并且可以管理所有输入数据(音频/视频捕获、按钮、键击)。
图22是例示根据本发明的一个示范性实施例、与图18A的用户界面1808相对应的屏幕镜头2200的方块图。屏幕镜头2200包括“大视窗”2210、“小视窗”2220、聊天视窗部分2230、成员视窗部分2240、和聊天编辑部分2250。
再次参照图18A,视频捕获接口1830可以包括如下的任何一个web cam(未示出);捕获卡和高质摄像机(未示出);摄像机接口1830a;麦克风接口1830b;文件接口1830c等。
web cam应该通过利用Windows操作系统提供的Windows视频平台(VFW)应用程序编程接口(API)的USB或Firewire(IEEE1394)接口,或通过在像Linux那样的不同操作系统下使用的可替代捕获驱动器来支持。当然,本发明不局限于前面的接口、操作系统、或驱动器,因此,在保持本发明的精神和范围不变的同时,也可以使用其它接口、操作系统、或驱动器。
成员视窗模块1834用于显示参与正在进行的呼叫的成员。呼叫的发起者(即,主人)可以放充不想要的成员或选择积极的成员。每个成员可以选择一个或多个成员进行私人聊天消息交换。另外,在成员视窗模块1834中发出成员状态的信号。然后,成员可以将他们自己的状态设置成,例如,“没空”,以便向其它人发出他们当前没有空,但马上回来的信号。
除了视频流之外,每个成员还有机会利用聊天模块1836把聊天消息发送给所有其它成员或只发送给一些其它成员。这些消息被显示在聊天视窗中和在聊天编辑视窗中得到编辑。滚动条使人们可以观看较早的消息。
现在描述根据本发明的一个示范性实施例、客户机应用模块1800的运行情况。如下的描述仅仅是客户机应用模块1800的一些特性的基本准则,而非意欲代表整个特性表。该描述包括登录、呼叫的开始、呼叫的接受、和登出。
登录是最初启动客户机应用模块1800时完成的。登录可以根据在启动的时候提供给操作系统的登录名自动完成,或者,可以使用与登录无关的不同接口。这取决于对当前使用的网络进行验证的优选方法和如何管理政策。最简单的方法是使用与用在Windows操作系统中的那个相同的登录名,以保持命名的一致性,并且还具有重新使用现有用户数据库(如果可应用的话)的能力。
图23是例示根据本发明的一个示范性实施例的登录界面2300的图形。如果用户当前在服务器上没有帐户,使用签约特征2330。为了便于访问,可以在任何电子邮件地址输入箱2340中提供电子邮件地址。
为了启动呼叫,客户机应用模块1800从服务器205中查询一系列可用候选者。客户机可以选择在视频会议对话中他或她想要与之交往的用户。当涉及两个参与者时,将对话建立成单播的;否则,当涉及多于两个的参与者时,将对话建立成多播对话。
图24是例示根据本发明的一个示范性实施例、用于对话启动的用户选择界面2400的图形。
一旦通过呼叫邀请用户,在他们的屏幕上显示表示发起者姓名的消息。然后,用户可以接受或拒绝呼叫。如果用户接受呼叫,那么,客户机应用模块1800将接受(或确认)消息发送到服务器205。然后,服务器205将有关新成员的消息通知当前参与呼叫的每个成员。如果用户通过将取消消息发送到服务器205,拒绝了呼叫,那么,也将有关那个事件的消息通知所有其它成员。图25是例示根据本发明的一个示范性实施例、用于接受或拒绝到来呼叫的邀请界面2500的图形。
登出是从包括在视频会议服务器205的数据库实体302中的成员数据库314中除去用户。将BYE消息发送给对话的每个参与客户机。这可以通过多播或单播来完成。多播是发送这个消息的优选方法。
为了示范的目的,下面参照如图2所示的示范性网络200对本发明加以描述。但是,应该认识到,本发明不局限于如图2所示的特定网络配置,因此,在保持本发明的精神和范围不变的同时,可以应用网络的其它配置和实施方案。
回头参照图2,示范性网络200包括利用WAN 250连接在一起的两个LAN225和235。在图2的示范性实施例中,计算机220a-f处在LAN 225上,因此,相对于彼此是本地的;计算机230a-e处在LAN 235上,因此,相对于彼此是本地的。相对于彼此是本地的计算机处在高带宽LAN上,并且通过以太网切换器(未示出)相互连接。每个计算机拥有将它与以太网切换器相连接的100Mbps全双工以太网。如果两台计算机想要在这个局域网上开始相互视频会议对话,它们将拥有大量适用于它们的带宽。
通过WAN 250隔开的计算机通过1.5Mbps全双工链路相连接。如果两台计算机想要在这个WAN链路上开始相互视频会议对话,它们将拥有小量适用于它们的带宽。由于存在小量适合于支持视频会议应用程序的带宽,需要加强如何使用带宽的严格控制。视频会议应用程序也需要限制编码速率和降低分辨率。为了控制如何使用带宽,也可以在视频会议对话上施加服务质量要求,以保证视频业务不与,例如,数据业务发生冲突。
图26是例示根据本发明的一个示范性实施例、为拥有多个参与者的视频会议对话选择带宽的方法的流程图。多个参与者包括发起参与者和其它参与者。
如果有的话,确定哪些其它参与者相对于发起参与者是本地的(例如,在同一局域网(LAN)内)(步骤2610)。步骤2610可以,例如,通过查询网络(例如,网络结构数据库316),以查明IP地址在网络上的位置(步骤2610a),和通过检查其它参与者每一个的因特网协议(IP)地址(步骤2610b)来执行。举例来说,如果参与者处在与发起参与者相同的IP子网(或者已知为本地的IP子网)上,可以认为该参与者是本地的。当然,可以应用其它准则。也就是说,给定这里提供的本发明的原理,在保持本发明的精神和范围不变的同时,本领域的普通技术人员将会设想出这些确定一个参与者相对于另一个参与者是否是本地的方式和各种其它方式。
将视频数据发送给多个参与者中的每一个,以便发送给“本地”参与者的视频数据具有比发送给“非本地”参与者的视频数据更高的编码速率、分辨率、和/或服务质量要求(步骤2620)。也就是说,本地参与者将接收更好地适合于可用在,例如,LAN上的更高带宽的视频数据,而非本地参与者将接收更好地适合于受,例如,WAN限制的带宽的视频数据。
根据本发明的一个示范性实施例,步骤2620涉及到通过“发送”的客户机对两个不同视频流(第一视频流和第二视频流)的编码和利用多播传送两个视频流(步骤2620a)。第一视频流由传送给所有参与者的视频数据的基本层构成。第二视频流由只传送给“本地”参与者的视频数据的提高层构成。于是,必须正确地确定与第一视频流相对应的多播地址的范围,以便远程网络接收与第一视频流相对应的视频数据,和必须正确地确定与第二视频流相对应的多播地址的范围,以便远程网络不接收与第二视频流相对应的视频数据。
根据本发明的另一个示范性实施例,步骤2620涉及到编码两个不同视频流(第一视频流和第二视频流)和利用单播将两个视频流传送给参与者的每一个(步骤2620b)。第一视频流具有比第二视频流高的编码速率、分辨率、和/或QoS要求。适当的视频流供给定参与者观看,而不适当的视频流被,例如,舍弃掉。在图26的示范性例子中,适合于本地参与者的视频流是第一视频流,和适合于非本地参与者的视频流是第二视频流。应该认识到,单播方法的带宽没有多播方法的带宽那么有效。
图27是例示根据本发明的另一个示范性实施例、建立多播视频会议对话的方法的图形。图27的例子包括视频会议客户机应用模块#1(客户机#1)2702、视频会议客户机应用模块#2(客户机#2)2704、视频会议客户机应用模块#3(客户机#2)2706、视频会议服务器1(服务器#1)2708、和视频会议服务器2(服务器#2)2709。应该认识到,虽然图27的方法是按步骤2620a,针对传送基本层和提高层加以描述的,但本领域的普通技术人员在保持本发明的精神和范围不变的同时,可以容易地将图27的方法应用于步骤2620b的示范性实施例。
将INVITE请求从客户机#12702发送到服务器#12708(步骤2715)。服务器#12708将网络位置信息附加到INVITE请求上(步骤2720)。然后,将INVITE请求从服务器#12708转发到客户机#22704(步骤2725)。还将INVITE请求从服务器#12708转发到服务器#22709(步骤2730),和从服务器#22709转发到客户机#32706(步骤2735)。应该认识到,网络位置信息用于确定哪些参与者包括在以更高分辨率(从而消耗更多的带宽)接收视频的组中。也就是说,网络位置信息由每个参与者用于将视频数据的正确位速率发送给其它参与者。如上所述,用于确定邻近其它参与者的位置可以是视频会议对话的发起参与者或一些其它参与者的位置。
将180振铃消息从客户机#32706发送到服务器#22709(步骤2740)。将180振铃消息从服务器#22709发送到服务器#12708(步骤2745)和从服务器#12708发送到客户机#12702(步骤2750)。将180振铃消息从客户机#22704发送到服务器#12708(步骤2755)。将180振铃消息从服务器#12708发送到客户机#12702(步骤2760)。
将200OK消息从客户机#32706发送到服务器#22709(步骤2763)。将网络位置信息附加到200OK消息上(步骤2765),然后,将200OK消息从服务器#22709转发到服务器#12708(步骤2770),和从服务器#12708转发到客户机#12702(步骤2775)。将200OK消息从客户机#22704发送到服务器#12708(步骤2780)。将200OK消息从服务器#12708转发到客户机#12702(步骤2785)。
将基本层和提高层(按图26的方法的步骤2620a)从客户机#12702传送到客户机#22704(步骤2790)。只将基本层从客户机#12702传送到客户机#32706(步骤2795)。
应该认识到,虽然本发明被描述成相对于发起参与者确定位置,但是,取而代之,也可以相对于非发起参与者(即,不是启动视频会议对话的参与者之一)确定位置。这样,例如,如果发起参与者处在一个网络上和数个其它参与者(例如,除了发起参与者之外的所有其它参与者)处在另一个网络上,那么,在所有数个其它参与者之间可以利用增加的带宽,以便视频会议对话的大多数参与者(唯一除外的是发起参与者)将利用增加的带宽接收视频数据。此外,即使所有参与者相对于另一个是本地的,也可以这样实现本发明,只将一些参与者指定成以增加的带宽接收视频数据,而将其它参与者指定成利用较低的带宽接收视频数据;前面的方法可以基于如本发明所应用的领域的普通技术人员所容易确定那样的各种准则。也就是说,给定这里提供的本发明的原理,本领域的普通技术人员在保持本发明的精神和范围不变的同时,将会设想出本发明的这些和各种其它配置和实施方案。
虽然这里参照附图已经对示范性实施例作了描述,但应该明白,本发明不局限于那些明确的实施例,本领域的普通技术人员在不偏离本发明的范围或精神的情况下,可以作出各种其它改变和改进。所有这样的改变和改进都意欲包括在如所附权利要求书限定的本发明的范围之内。
权利要求
1.一种调整涉及客户机设备的视频会议对话的参数的方法,包括如下步骤提供根据客户机设备的至少一个的位置调整与客户机设备的至少一个相对应的带宽特性的能力。
2.根据权利要求1所述的方法,其中,带宽特性包括视频编码速率、分辨率、和服务质量(QoS)要求的至少一个。
3.根据权利要求1所述的方法,其中,根据客户机设备的至少一个处在相对于客户机设备的另一个是本地还是远程的目的地上,调整带宽特性。
4.根据权利要求3所述的方法,其中,提供调整带宽特性的能力的所述步骤包括如下步骤提供当客户机设备的至少一个处在相对于客户机设备的另一个是本地的目的地上时,增加客户机设备的至少一个使用的带宽量的能力;和提供当客户机设备的至少一个处在相对于客户机设备的另一个是远程的目的地上时,减少客户机设备的至少一个使用的带宽量的能力。
5.根据权利要求3所述的方法,其中,提供调整带宽特性的能力的所述步骤包括如下步骤提供检查客户机设备的至少一个和客户机设备的另一个的因特网协议(IP)地址的能力。
6.根据权利要求3所述的方法,其中,提供调整带宽特性的能力的所述步骤包括如下步骤提供确定客户机设备的至少一个是否与客户机设备的另一个处在同一个局域网(LAN)内的能力。
7.根据权利要求3所述的方法,其中,提供调整带宽特性的能力的所述步骤包括如下步骤提供确定客户机设备的至少一个是否与客户机设备的另一个处在同一个IP子网内的能力。
8.根据权利要求3所述的方法,其中,提供调整带宽特性的能力的所述步骤包括如下步骤提供确定客户机设备的至少一个是否处在已知相对于客户机设备的另一个是本地的IP子网上的能力。
9.根据权利要求3所述的方法,其中,视频会议对话是在网络上进行的,和提供调整带宽特性的能力的所述步骤包括如下步骤提供查询网络以查明多个参与者的至少一个和客户机设备的另一个的IP地址在网络上的位置的能力。
10.根据权利要求1所述的方法,其中,提供调整带宽特性的能力的所述步骤包括如下步骤提供编码视频数据的基本层和视频数据的至少一个提高层的能力;提供如果客户机设备的至少一个处在相对于客户机设备的另一个是本地的目的地上,利用多播将基本层和至少一个提高层传送到客户机设备的至少一个的能力;和提供如果客户机设备的至少一个处在相对于客户机设备的另一个是远程的目的地上时,只将基本层传送到客户机设备的至少一个的能力。
11.根据权利要求10所述的方法,进一步包括如下步骤提供如果客户机设备的至少一个处在相对于客户机设备的另一个是本地的目的地上,将基本层和至少一个提高层传送到客户机设备的另一个的能力。
12.根据权利要求1所述的方法,其中,提供调整带宽特性的能力的所述步骤包括如下步骤提供编码与同一内容相对应的第一视频流和第二视频流的能力,第一视频流要求比第二视频流更大的带宽;和提供利用单播将第一视频流和第二视频流传送到客户机设备的每一个的能力。
13.一种调整客户机设备之间的视频会议对话的参数的系统,包括根据客户机设备的至少一个的位置调整与客户机设备的至少一个相对应的带宽特性的装置。
14.根据权利要求13所述的系统,其中,带宽特性包括视频编码速率、分辨率、和服务质量(QoS)要求的至少一个。
15.根据权利要求13所述的系统,其中,用于调整的所述装置适用于根据客户机设备的至少一个处在相对于客户机设备的另一个是本地还是远程的目的地上,调整带宽特性。
16.根据权利要求15所述的系统,其中,用于调整的所述装置包括当客户机设备的至少一个处在相对于客户机设备的另一个是本地的目的地上时,增加客户机设备的至少一个使用的带宽量的装置;和当客户机设备的至少一个处在相对于客户机设备的另一个是远程的目的地上时,减少客户机设备的至少一个使用的带宽量的装置。
17.根据权利要求15所述的系统,其中,用于调整的所述装置包括检查客户机设备的至少一个和客户机设备的另一个的因特网协议(IP)地址的装置。
18.根据权利要求15所述的系统,其中,用于调整的所述装置包括确定客户机设备的至少一个是否与客户机设备的另一个处在同一个局域网(LAN)内的装置。
19.根据权利要求15所述的系统,其中,用于调整的所述装置包括确定客户机设备的至少一个是否与客户机设备的另一个处在同一个IP子网内的装置。
20.根据权利要求15所述的系统,其中,用于调整的所述装置包括确定客户机设备的至少一个是否处在已知相对于客户机设备的另一个是本地的IP子网上的能力。
21.根据权利要求15所述的系统,其中,视频会议对话是在网络上进行的,和用于调整的所述装置包括查询网络以查明多个参与者的至少一个和客户机设备的另一个的IP地址在网络上的位置的装置。
22.根据权利要求15所述的系统,其中,用于调整的所述装置包括编码视频数据的基本层和视频数据的至少一个提高层的装置;如果客户机设备的至少一个处在相对于客户机设备的另一个是本地的目的地上,利用多播将基本层和至少一个提高层传送到客户机设备的至少一个的装置;和如果客户机设备的至少一个处在相对于客户机设备的另一个是远程的目的地上时,只将基本层传送到客户机设备的至少一个的装置。
23.根据权利要求22所述的系统,进一步包括如果客户机设备的至少一个处在相对于客户机设备的另一个是本地的目的地上,将基本层和至少一个提高层传送到客户机设备的另一个的装置。
24.根据权利要求15所述的系统,其中,用于调整的所述装置包括编码与同一内容相对应的第一视频流和第二视频流的装置,第一视频流要求比第二视频流更大的带宽;和利用单播将第一视频流和第二视频流传送到客户机设备的每一个的装置。
全文摘要
调整涉及客户机设备的视频会议对话的参数的方法(图15)包括如下步骤提供根据客户机设备(客户机1-4)的至少一个的位置调整与客户机设备的至少一个相对应的带宽特性的能力。
文档编号G06F15/16GK1618203SQ02827988
公开日2005年5月18日 申请日期2002年12月11日 优先权日2001年12月15日
发明者约翰·W·理查森 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1