一种实现多画面视频会议的方法及多点控制单元
技术领域
本发明涉及多媒体通讯技术领域,特别涉及一种实现多画面视频会议的方法及多点控制单元。
背景技术
在视频会议中,参与视频会议的会议场所被称为会场。通常来说,一个会场对应一个视频终端(本文中简称为终端)对应一个会场。视频会议中,各个终端采集本会场的画面和声音数据,经过编码压缩后传输到多点控制单元(MCU,Multipoint Control Unit);MCU对上述数据进行重新整合和调配,按照会议创建者的需求将多路音视频数据流整合为一条音视频流,下发到各个视频终端。
随着因特网的广泛应用,视频会议系统越来越普及。与此同时,通过将多个MCU级联所形成的多级视频会议,例如“中央MCU→省MCU→市MCU→县MCU”等多级结构,也越来越多在实际中得到应用。图1所示为现有技术的一种多级视频会议系统的组网示意图。图1中的视频会议系统通过级联的多个多点控制单元(MCU,Multipoint Control Unit),形成了三级结构。其中,逻辑上的顶级,也即第一级,包括MCU1,第二级包括MCU2和MCU3,第三级包括MCU4和MCU5;每个MCU可以连接多个终端,图1中下级(第二级至第三级)各MCU分别包括有两个终端,如MCU2的终端2-1和终端2-2,MCU3的终端3-1和终端3-2,MCU4的终端4-1和终端4-2,MCU5的终端5-1和终端5-2。顶级MCU1通过第一支路1和第一支路2分别和第二级的MCU2和MCU3直接连接。这里,所述第一支路是指下级MCU与顶级MCU直接连接的支路。
在由级联的MCU所构建的视频会议系统中,在视频会议开始时,需要协商级联的MCU之间的带宽。由于受到MCU之间的带宽以及级联视频会议模式的限制,顶级MCU在设置多画面视频会议时,在同一时刻只能看到某条第一支路下的一个终端的会场图像。如图1所示,假设MCU1想要设置多画面视频会议,同一时刻MCU1只能调用任意第一支路下的一个终端的会场图像,例如第一支路1下MCU2的终端2-1或终端2-2的会场图像,而不能同时观看终端2-1和终端2-2的会场图像,也不能同时观看终端2-1和终端4-1的会场图像。
现有的视频会议中,级联的MCU之间的多画面视频会议的实现示意图如图2所示,其信令流程如图3所示。图2中,第一级MCU1设置了多画面视频会议,在一个多画面图像中同时观看第一支路1的MCU2的终端2-1的画面1和第一支路2的第二级MCU3的终端3-2的画面3。其信令流程包括以下信令的交互:
步骤301~302,MCU1分别向MCU2和MCU3发送一个终端画面请求消息(makeTerminalBroadcaster),该消息中包含相应的MCU标识(mcuNumber)和终端标识terminalNumber),要求MCU2和MCU3分别广播终端2-1和终端3-2的画面。
步骤303~304,MCU2和MCU3分别向MCU1返回终端画面请求回应消息(makeTerminalBroadcasterResponse),表示同意广播相应终端的画面。
步骤305~306,MCU2和MCU3分别向对应的终端申请I帧图像,并将获取到的I帧图像直接转发至MCU1。这里,终端2-1和终端3-2采集到的画面大小为一个通用中间格式(CIF,Common Intermediate Format)的大小,MCU2和MCU3直接将终端返回的画面图像数据转发至MCU1。终端压缩编码后的视频数据包括I帧和B帧数据,其中,I帧数据中包含了原始图像的大量数据,而B帧数据通常用来表示前后帧之间的矢量差。因此,I帧数据可以反映当前会场图像。
步骤307~308,MCU2和MCU3分别向MCU1发送视频源通知消息(terminalYouAreSeeing),用于指示MCU1当前观看的视频源的信息(如MCU标识terminalNumber和终端标识mcuNumber)。
步骤309~310,MCU1收到终端2-1和终端3-2返回的画面图像后,进行解码、拼接,并重新编码为一幅多画面图像,该多画面图像大小为一个CIF大小,然后将该多画面图像发送到对应的MCU,再通过该MCU将多画面图像转发到视频会议中需要观看的会场。
从以上所述可以看出,根据目前的级联视频会议模式,下级MCU是将各自下属终端的画面图像直接转发给顶级MCU。由于级联视频会议中MCU之间的带宽有限,为了避免出现网络拥塞,同一时刻任一第一支路只能上传一各终端的会场图像,因此,在级联视频会议中,顶级MCU在同一时刻只能观看某条第一支路上的一个会场图像。
发明内容
本发明所要解决的技术问题是提供一种实现多画面视频会议的方法及MCU,在不增加级联MCU之间带宽的情况下,实现了在级联视频会议中同时观看任一第一支路下的多个终端的会场图像。
为解决上述技术问题,本发明提供方案如下:
一种在级联的多点控制单元MCU之间实现多画面视频会议的方法,包括以下步骤:
A,顶级MCU通过与所述顶级MCU直接连接的第一支路,向下级MCU发送对终端的画面请求消息,所述画面请求消息中包括该终端画面在所述第一支路的传输带宽,其中,所有所述终端的传输带宽之和小于或等于所述第一支路的上行视频带宽;
B,顶级MCU接收所有终端的画面图像数据后,组合多画面图像。
本发明所述的方法,其中,所述传输带宽等于所述终端画面在多画面图像中的面积比例和所述第一支路的上行视频带宽的乘积。
本发明所述的方法,其中,所述传输带宽的分配是通过将所述第一支路的上行视频带宽平均分配给各个所述终端。
本发明所述的方法,其中,所述画面请求消息中还包括有所述终端画面的指定大小信息。
本发明所述的方法,其中,所述画面请求消息中还包括有为所述端分配的对应端口信息;
所述步骤B中,所述顶级MCU进一步从所述终端对应的端口上接收所述终端的画面图像数据。
本发明所述的方法,其中,所述步骤B中,顶级MCU进一步将所述多画面图像发送至视频会议中的会场。
本发明还提供了一种在级联的MCU之间实现多画面视频会议的方法,包括以下步骤:
S1,第二MCU通过与顶级MCU直接连接的第一支路接收所述顶级MCU对该第二MCU所属终端的画面请求消息,所述画面请求消息中包括所述终端画面在所述第一支路的传输带宽;
S2,第二MCU获取所述终端的画面并进行编码,使得编码后的所述终端的画面图像数据的码流速率不超过所述终端画面在所述第一支路的传输带宽,并将编码后的所述终端的画面图像数据发送给所述顶级MCU。
上述方法,其中,所述步骤S2中,所述获取所述终端的画面包括:第二MCU向所述终端请求画面图像;第二MCU接收所述终端的画面图像数据并进行解码,得到所述终端的画面。
上述方法,其中,还包括:
所述步骤S1中,所述第二MCU进一步从所述画面请求消息中获取所述终端画面的指定大小信息;
所述步骤S2中,所述第二MCU进一步根据所述指定大小信息对所述终端的画面进行编码,使得编码后的所述终端画面的大小为所述指定大小信息中所指定的大小。
上述方法,其中,所述步骤S1中,所述第二MCU进一步从所述画面请求消息中获取为所述终端分配的对应端口信息;
所述步骤S2中,所述第二MCU进一步将编码后的所述终端的画面图像数据发送至顶级MCU上的对应端口。
本发明提供了一种MCU,包括:
传输带宽分配单元,用于在通过与本MCU直接连接的第一支路向下级MCU发送对终端的画面请求消息时,为所述终端分配该终端画面在所述第一支路的传输带宽,其中,所有所述终端的传输带宽之和小于或等于所述第一支路的上行视频带宽;
画面请求单元,用于通过本MCU直接连接的第一支路向下级MCU发送对终端的画面请求消息,并在所述画面请求消息中携带所述传输带宽分配单元为所述终端分配的传输带宽;
画面组合单元,用于接收所有终端的画面图像数据,并组合多画面图像。
上述MCU,其中,所述传输带宽分配单元,进一步用于根据所述终端画面在多画面图像中的面积比例和所述第一支路的上行视频带宽的乘积,为所述终端分配传输带宽。
上述MCU,其中,所述传输带宽分配单元,进一步用于将所述第一支路的上行视频带宽平均分配给各个所述终端。
上述MCU,其中,所述画面请求单元,进一步用于在所述画面请求消息中携带所述终端画面的指定大小信息。
上述MCU,其中,所述画面请求单元,进一步用于在所述画面请求消息中携带为所述终端分配的对应端口信息;
画面组合单元,进一步用于从所述终端对应的端口接收所述终端的画面图像数据。
本发明还提供了一种MCU,包括:
请求接收单元,用于通过与顶级MCU直接连接的第一支路接收所述顶级MCU对本MCU所属终端的画面请求消息,所述画面请求消息中包括所述终端画面在所述第一支路的传输带宽;
画面处理单元,用于获取所述终端的画面并进行编码,使得编码后的所述终端的画面图像数据的码流速率不超过所述终端画面在所述第一支路的传输带宽,并将编码后的所述终端的画面图像数据发送给所述顶级MCU。
上述MCU,其中,所述画面处理单元,进一步用于通过向所述终端请求画面图像,并对接收到的所述终端的画面图像数据进行解码,获取所述终端的画面。
上述MCU,其中,所述请求接收单元,进一步用于从所述画面请求消息中获取所述终端画面的指定大小信息;
所述画面处理单元,进一步用于根据所述请求接收单元获取的所述指定大小信息,对所述终端的画面进行编码,使得编码后的所述终端画面的大小为所述指定大小信息中所指定的大小。
上述MCU,其中,所述请求接收单元,进一步用于从所述画面请求消息中获取为所述终端分配的对应端口信息;
所述画面处理单元,进一步用于将编码后的所述终端的画面图像数据发送至所述顶级MCU上的对应端口。
从以上所述可以看出,本发明提供的实现多画面视频会议的方法及MCU,各下级MCU对其下终端的画面图像数据进行解码获取各终端的画面,然后再对各终端的画面重新进行编码,使得编码后的各终端的画面图像数据的码流速率不超出预先分配的带宽,从而避免了在第一支路上观看多个终端的画面时出现拥塞,实现了在不增加级联视频会议中级联MCU之间带宽的情况下,同时观看第一支路下的多个终端的画面。同时,由于在重新编码时,MCU可以根据各终端画面在多画面图像中的面积大小,对各终端的画面进行重新编码,有利于顶级MCU在接收到各终端的画面后组合多画面图像的操作。
附图说明
图1为现有技术的一种多级视频会议系统的组网示意图;
图2为现有技术在级联MCU之间实现多画面视频会议的示意图;
图3为现有技术在级联MCU之间实现多画面视频会议的信令流程图;
图4为本发明实施例中实现多画面视频会议的示意图;
图5为本发明实施例中实现多画面视频会议的信令流程图;
图6为本发明实施例中所述的一种MCU的结构示意图;
图7为本发明实施例中所述的另一种MCU的结构示意图。
具体实施方式
本发明提供了一种实现多画面视频会议的方法及MCU,通过对MCU转发终端画面的方式进行改进,在不增加级联MCU之间的带宽的情况下,实现了在级联MCU所构建的视频会议中观看第一支路下的多个终端的画面。以下结合附图通过具体实施例对本发明做详细的说明。
本文中,所述第一支路是指下级MCU与顶级MCU直接连接的支路,所述第一支路下的终端是指通过该第一支路与顶级MCU连接的终端。
本实施例以图1所示的视频会议系统为例进行说明。本实施例所述实现多画面视频会议的方法,MCU之间仍保持现有的连接方式和带宽,通过由下级MCU对其下的终端的画面图像数据进行解码和重新解码,从而在相同带宽情况下,可以在第一支路上级联MCU之间传输多个终端的画面图像数据。这里,如图4所示,假设由第一级(顶级)MCU1设置多画面视频会议,MCU1想要观看第一支路1的MCU2下的终端2-1和终端2-2,以及第一支路2的MCU3下的终端3-2的画面。对于第一支路2,由于只观看该支路的一个终端(终端3-2)的画面,因此,其流程可以与现有技术相同。对于第一支路1,MCU1需要观看该支路下的两个终端的画面,其实现的信令流程如图5所示,包括:
步骤501,MCU1向MCU2发送一个非标准信令(nonStandard),向MCU2请求终端2-1和终端2-1的画面。在该信令中针对各终端(终端2-1和终端2-1)分别包含有以下参数:
1)终端标签(terminalLable):用于唯一标识视频会议中某一终端,其中包括该终端所属MCU的MCU标识和该终端自身的终端标识。例如,终端标签M.T(2,1)表示MCU2下的第1终端,即终端2-1,终端标签M.T(2,2)表示MCU2下的第2终端,即终端2-2。
2)终端画面的指定大小(pictureSize):用于表示该终端画面的指定大小。多画面图像中的子画面的大小都是标准的,主要有CIF、1/4CIF、1/9CIF、4/9CIF和1/16CIF等大小。这里,可根据该终端的画面在多画面图像中子画面的大小设置该终端画面的指定大小,本实施例中指定大小为1/4CIF。
3)该终端画面的传输带宽(banwidth):由于级联MCU之间的带宽有限,不可能每一路图像都按照呼叫带宽的大小进行传送,因此,为了保证任一第一支路下的多个终端的画面都能被正确地传送,需要根据级联MCU之间的带宽情况,为该支路下的各终端的画面分配合适的传输带宽。这里,具体的传输带宽的分配方法有多种,但都应该满足:该第一支路下的所有需要上传画面的终端的传输带宽之和不超过该第一支路的上行视频带宽。具体的分配方法有很多种,例如:将各终端的传输带宽设置为该终端在多画面视频会议的多画面图像中的面积比例和第一支路的上行视频带宽的乘积;还可以按照平均分配的方式,将该第一支路的上行视频带宽平均分配给该第一支路下所有需要上传画面的终端;还可以是根据各终端会场的重要性,为重要性高的终端会场分配较大的传输带宽,为重要性较低的会场分配较小的传输带宽等。优选的,本实施例采用上述第一种方式,即终端的传输带宽=该终端画面在多画面图像中的面积比例×(MCU2到MCU1的视频带宽)。假设本实施例中MCU1设置的多画面图像中包括三个终端(终端2-1、终端2-2和终端3-2)的画面,如果各终端的画面大小都相等,那么终端2-1或终端2-2在多画面图像中的面积比例就是1/3;某些视频会议中视频数据流可以包括主流和辅流两种,那么,这里MCU2到MCU1的视频带宽是指主流视频带宽。
4)地址信息(IPaddress):这里所述地址具体包括MCU1的IP地址和端口,所述端口是MCU1为该终端分配的对应端口。
步骤502,MCU2收到上述非标准信令后,首先判断其中的终端标签中的的MCU标识是否与自身相同:
如果不同,则使用本MCU地址信息替换所述非标准信令中的地址信息,然后,将该非标准信令下发至与本MCU连接的下一级MCU;
如果相同,则MCU2判断当前自身是否有足够的编解码资源,如果有,则向MCU1返回接收请求的响应消息,进入步骤503;否则,向MCU1返回拒绝请求的响应消息,并在该响应消息中携带拒绝原因,例如,MCU2的当前资源不足,MCU1在接收到该响应消息后向用户提示拒绝原因,并结束流程。
步骤503~504,MCU2获取终端2-1和终端2-2的画面并进行编码,使得编码后的各终端的画面图像数据码流速率不超过该终端画面的传输带宽,并将编码后的各终端的画面图像数据发送给MCU1。具体可以包括:MCU2分别向其下终端2-1和终端2-2请求请求画面图像;接收各终端返回的画面图像数据,并对所述画面图像数据进行解码,例如,对所述画面图像数据中I帧数据进行解码,得到各个终端的画面;然后,再根据所述非标准信令中的各终端画面的指定大小和传输带宽,对所述画面图像数据重新进行编码,使得重新编码后的各终端的画面大小为所述指定大小(例如1/4CIF),且各终端画面图像数据的码流速率不超过该终端画面的传输带宽,并将重新编码后的各终端的画面图像数据发送给MCU1;
步骤505,MCU1接收各个终端返回的画面图像数据,并将各画面图像组合为一幅多画面图像,然后将该多画面图像发送到视频会议中需要观看的会场。
从以上所述看出,本实施例根据终端画面在多画面图像中的面积比例和实际可用带宽,确定各终端画面的传输带宽;MCU根据所述传输带宽,对其下的多个终端的画面重新编码,以使得编码后的各终端的画面图像数据的码流速率不超过该终端画面的传输带宽,从而避免了级联视频会议中在观看第一支路下的多个终端的画面时出现拥塞,实现了在相同带宽情况下同时观看任一第一支路下的多个终端的画面。另外,由于在重新编码时,MCU可以根据各终端画面在多画面图像中的大小,对各终端的画面进行重新编码,有利于顶级MCU在接收到各终端的画面后组合多画面图像的操作。
基于上述实现多画面视频会议的方法,本实施例还提供了相应的MCU。如图6所示,本实施例所提供的一种MCU 60,包括:
传输带宽分配单元61,用于在通过与本MCU直接连接的第一支路向下级MCU发送对终端的画面请求消息时,为所述终端分配该终端画面在所述第一支路的传输带宽,其中,所有所述终端的传输带宽之和小于或等于所述第一支路的上行视频带宽;
画面请求单元62,用于通过本MCU直接连接的第一支路向下级MCU发送对终端的画面请求消息,并在所述画面请求消息中携带所述传输带宽分配单元61为所述终端分配的传输带宽;
画面组合单元63,用于接收所有终端的画面图像数据,并组合多画面图像。
这里,所述传输带宽分配单元61,还可以进一步根据所述终端画面在多画面图像中的面积比例和所述第一支路的上行视频带宽的乘积,为所述终端分配传输带宽;还可以进一步将所述第一支路的上行视频带宽平均分配给各个所述终端。
这里,所述画面请求单元62,还可以进一步在所述画面请求消息中携带所述终端画面的指定大小信息和为所述终端分配的对应端口信息。所述画面组合单元63,进一步从所述终端对应的端口接收所述终端的画面图像数据。
如图7所示,本实施例提供的另一种MCU 70,包括:
请求接收单元71,用于通过与顶级MCU直接连接的第一支路接收所述顶级MCU对本MCU所属终端的画面请求消息,所述画面请求消息中包括所述终端画面在所述第一支路的传输带宽;
画面处理单元72,用于获取所述终端的画面并进行编码,使得编码后的所述终端的画面图像数据码流速率不超过所述终端画面在所述第一支路的传输带宽,并将编码后的所述终端的画面图像数据发送给所述顶级MCU。这里,所述画面处理单元72,具体的可以是通过向所述终端请求画面图像,并对接收到的所述终端的画面图像数据进行解码,获取所述终端的画面。
这里,所述请求接收单元71,还可以进一步从所述画面请求消息中获取所述终端画面的指定大小信息;从而,所述画面处理单元72,进一步根据所述请求接收单元71获取的所述指定大小信息,对所述终端的画面进行编码,使得编码后的所述终端画面的大小为所述指定大小信息中所指定的大小。
这里,所述请求接收单元71,还可以进一步从所述画面请求消息中获取为所述终端分配的对应端口信息;所述画面处理单元72,进一步将编码后的所述终端的画面图像数据发送至所述顶级MCU上的对应端口。
综上所述,本发明所提供的实现多画面视频会议的方法和MCU,通过MCU对其下多个终端的画面重新进行编码,使得在不增加MCU之间的带宽情况下,可以在级联视频会议中的MCU之间传输任一第一支路下的多个终端的画面。
本发明所述的实现多画面视频会议的方法及MCU,并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明之领域,对于熟悉本领域的人员而言可容易地实现另外的优点和进行修改,因此在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。