一个基于云计算的视频会议的转码分发系统的制作方法

文档序号:6535216阅读:152来源:国知局
一个基于云计算的视频会议的转码分发系统的制作方法
【专利摘要】本发明提供一个基于云计算的视频会议的转码分发系统,包括控制模块、调度模块、转码模块、数据收发模块以及资源监测模块。系统部署于云端的虚拟机中。调度模块将流水线中抽象节点部署到实际虚拟机当中。数据收发、转码模块在调度模块的控制下实现对视频流的实际转码、分发操作。与此同时,资源监测模块实时监测各虚拟机状态,供调度模块进行计算任务分配决策使用。本发明利用云计算服务有效解决了视频会议中多种类客户端导致的视频转码问题。
【专利说明】一个基于云计算的视频会议的转码分发系统
【技术领域】
[0001]本发明属于视频会议领域,具体地说,是一个基于云计算的转码分发系统,通过对每个任务单元和虚拟机的控制调度实现转码分发的低延迟并且降低功耗。
【背景技术】
[0002]随着计算机硬件和网络技术的高速发展,传统的通讯方式如电话、传真等已无法满足人们深层次的交流需求,近年来以声音和视频作为主要传输对象的多媒体通信成为当今通信领域研究的热点。视频会议系统作为一种现代化的办公系统,它可以将不同会场的实时场景和语音互连起来,使各与会者有“面对面”交谈的感觉。伴随着通信技术的进一步提升,高质量的多媒体视频会议也成为一种发展趋势,被越来越多的人们所需求,然而高质量的视频会议系统技术还不够成熟,在一个会议中支持大量的参与者和多路高清的视频十分困难。
[0003]与此同时,云计算作为一种新兴的事物,仅仅5年,就已经成为了 IT行业最流行的技术和发展趋势。Google、Amazon、IBM和微软等IT巨头们以前所未有的速度和规模推动云计算技术和产品的普及,一些学术活动也迅速将云计算提上日程。通常人们把云计算当作一种商业计算模型,它将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。按照云计算的服务类型可分为三类:将基础设施作为服务IaaS、将平台作为服务PaaS和将软件作为服务SaaS。
[0004]以往的视频会议系统架构往往是基于简单的C/S结构,使用一个网关来进行数据的转发,这种集中式结构在性能和扩展上存在很大的弊端。随着云计算的火热发展,基于云计算的视频会议架构成为视频会议领域的研究热点,云计算在部署、负载均衡以及扩展等方面存在很大的优势,同时软件即服务的模式也可以将视频会议中大量的计算负载集中到云计算平台中去完成,从而大大降低了视频会议中各个终端的多媒体处理压力。在云平台中实现多媒体转码也是视频会议的发展趋势。

【发明内容】

[0005]本发明要解决的技术问题为:克服现有技术的不足,针对视频会议中多类客户端的转码分发问题,提出一个基于云计算的视频会议转码分发系统,该系统支持在视频会议中,根据客户端不同的种类和地域选择合适的转码分发策略,解决了视频会议中多种类客户端导致的视频转码问题。
[0006]本发明解决上述技术问题采用的技术方案为:一个基于云计算的视频会议的转码分发系统,其特点在于:它包括资源监测模块、数据收发模块、转码模块、控制模块、调度模块。
[0007]所述的资源监测模块负责对系统中的资源进行监测,其资源监测的层次分为两个,第一层为监测云计算平台中各虚拟机的整体资源使用情况,第二层为监测各个计算任务的资源使用情况;所需监测的资源包括CPU利用率、内存使用情况和网络带宽使用情况;资源监测模块周期性的将这些资源信息进行分析整理并汇报给调度模块;
[0008]所描述的数据收发模块由若干个数据收发网关单元组成,每个网关单元负责接收和分发若干路视频流,所有网关单元均受控制模块的统一管理和控制;每个客户端在登陆时,控制模块根据调度模块的调度结果为该客户端指定一个网关单元;客户端与该网关单元成功连接后,通过该网关单元向其他客户端发送自身的视频流及接收其他客户端发送的视频流;
[0009]所述的转码模块,负责对视频流参数进行修改;转码模块内部按功能可分为如下基本转码单元,分别是:解码单元、编码单元、视频缩放单元、ROI提取单元、帧率变更单元、多路视频混合单元、传输协议打包单元、传输协议解包单元;
[0010]所述的控制模块负责响应客户端发出的视频接收指令,根据视频流接收方客户端所在网关、视频流发送方客户端所在网关以及接收方对视频流的参数要求,生成一条转码分发流水线;该流水线的输入端为视频流发送方客户端所连接的网关单元即发送网关,输出端为视频流接收方客户端所连接的网关单元即接收网关,在输入端和输出端之间可以包括零个或多个基本转码单元;所述的接收方对视频流的参数要求,是指接收方对视频流的大小、帧率、布局、码率的要求;
[0011]所述的调度模块负责将转发分发流水线上每一级任务单元分配到最合适的虚拟机中执行。
[0012]进一步的,所述的调度模块拥有一个资源预测模型,该模型包含三个阶段:学习阶段、调度阶段、聚合阶段 。
[0013]进一步的,所述调度模块的学习阶段通过对预先准备好的学习数据集进行学习获取预测模型所需要的参数,该学习过程进一步包含以下步骤:
[0014]步骤1.对转码分发系统中提供的所有任务单元按照功能分类,并给出每类任务单元涉及的所有参数;
[0015]步骤2.在虚拟机上运行每种任务单元(Ti)来处理学习数据集,同时资源监测模块需同步监测该任务单元占用的各项资源;
[0016]步骤3.对步骤2中运行的任务单元枚举其参数的所有子集,并对每个参数子集Pi=Ip1, P2, -PkI计算多元线性回归,计算参数子集与资源监测模块监测到的资源项Resi的线性相关性,得到每个参数子集对应的回归系数集合Ai={ai,a2…,ak,b}及相关系数Ri ;
[0017]步骤4.从步骤3中得到的所有回归系数集合Ai和相关系数Ri中,选择相关系数Ri最大的一对,其对应的参数子集作为该任务单元的预测参数集合,回归系数作为线性预测公式的各项系数,即Ti类型任务单元对Resi资源的需求预测值为Pre (Resi, Ti) =a1*p1+a2*p2+...+ak氺pk+b0
[0018]进一步的,所述调度模块的调度阶段根据资源按需调度算法对任务单元进行调度,将任务单元按照其所需资源的多少分配到最适合的虚拟机上运行,该资源按需调度算法进一步包含如下步骤:
[0019]步骤1.调度模块从控制模块获得需要调度的任务单元数量,以及每个任务单元的类型和参数值;
[0020]步骤2.调度模块通过资源预测模型得到的预测公式对新增的任务单元所需的各项资源进行预测,得到该任务单元所需的资源集合Res= {Pre (CPU),Pre (Memory),Pre (Network Bandwidth)};
[0021]步骤3.将现有的虚拟机按可用资源的多少降序排列形成列队Q ;
[0022]步骤4.比较新增任务的所需资源Res是否超出队首虚拟机Q(O)的可用资源;若未超过,则将新增的任务单元分配到该虚拟机中,转步骤6 ;否则,按步骤5将Q(O)上的任务进行迁移到队列Q的其他虚拟机中,直到Q(O)有足够的资源承担新增任务,并将新增任务分配到该虚拟机中,转步骤6 ;若其他虚拟机没有足够的资源承担迁移的任务,则向系统申请新的虚拟机资源,将新增任务分配到新的虚拟机中,转步骤6 ;
[0023]步骤5.迁移时,每个待迁移的任务视为新增任务,将除Q (O)以外的所有虚拟机按步骤3重新排列形成队列Q’,并在该队列上执行步骤4 ;
[0024]步骤6.调度完成后对所有结点进行检查,若可用资源最多的虚拟机与可用资源最少的虚拟机的资源差值超过了 Threshold,则将可用资源最少的虚拟机上的任务按步骤5进行迁移,直到两者间可用资源的差值小于阈值。
[0025]进一步的,所述调度模块的聚合阶段负责在所有虚拟机均处于轻负载的状态下,将任务单元聚合到少数几台虚拟机中以降低能耗;该聚合步骤进一步包括如下步骤:
[0026]步骤1.调度模块根据资源监测模块返回参数,得到当前资源最多及负载最轻的虚拟机;若满足聚合条件,则执行步骤2 ;
[0027]步骤2.针对负载最轻的虚拟机即源虚拟机中的每一个任务单元,根据调度步骤寻找另一台合适的虚拟机即目标虚拟机接收该任务单元;
[0028]步骤3.目标虚拟机启动该任务单元;
[0029]步骤4.源虚拟机终止该任务单元;
[0030]步骤5.关闭源虚拟机;
[0031]步骤6.检查当如各虚拟机状态是否仍满足聚合条件,若是,则重复步骤1-5。
[0032]本发明与现有技术相比的优点在于:
[0033](I)、本发明提出的转码系统可实现用户端到用户端的双向在线实时转码,特别适合于应用在视频会议等需要双向实时通信的场合中。
[0034](2)、本发明提出的调度模块的资源预测模型可以将转码任务在云计算环境下进行按需配置,从而实现对云计算资源的充分利用。
【专利附图】

【附图说明】
[0035]图1为本发明所述系统的模块结构图。
[0036]图2为本发明的调度模块的资源预测模型的学习阶段流程图。
[0037]图3为本发明的调度模块的资源预测模型的调度阶段流程图。
[0038]图4为本发明的调度模块的资源预测模型的聚合阶段流程图。
[0039]图5为本发明的资源监测模块的结构图。
[0040]图6为本发明的数据收发模块的示意图。
【具体实施方式】
[0041]下面结合附图以及具体实施例进一步说明本发明。
[0042]如图1所示,本发明包括资源监测模块、数据收发模块、转码模块、控制模块、调度模块。资源监测模块是用于监测云计算平台中的资源使用情况,它分为两个层次:第一层是物理资源层,负责监测搭载云计算平台的物理服务器集群的CPU和内存等资源的使用情况,第二层是虚拟化资源层,监测正在运行的虚拟机内部的CPU和内存等资源的使用,资源监测模块周期性的将这些资源信息进行分析整理并汇报给调度模块;数据收发模块负责接收转发客户端和其他收发模块发送的视频流,并根据配置信息将视频流转发到目标单元,目标单元包括转码模块,客户端,其他数据收发模块;转码模块负责对视频流参数进行修改,转码模块采用Filter设计模式实现转码进程。可支持的转码内容包括视频缩放、ROI提取、帧率变更、多路视频混合;控制模块负责响应客户端发出的视频接收指令,根据视频流接收方客户端所在网关、视频流发送方客户端所在网关以及接收方对视频流的参数要求,生成一条转码分发流水线,将流水线发送给调度模块;调度模块负责根据资源预测模型将转码分发流水线上每一级任务单元分配到最合适的虚拟机中执行。
[0043]如图2所示,本发明的基于云计算的视频会议资源预测模型的学习阶段流程图,进一步包括以下步骤:
[0044]步骤1.对转码分发系统中提供的所有任务单元按照功能分类,并给出每类任务单元涉及的所有参数;
[0045]步骤2.在虚拟机上运行每种任务单元(Ti)来处理学习数据集,同时资源监测模块需同步监测该任务单元占用的各项资源;
[0046]步骤3.对步骤2中运行的任务单元枚举其参数的所有子集,并对每个参数子集Pi=Ip1, P2, -PkI计算多元线性回归,计算参数子集与资源监测模块监测到的资源项Resi的线性相关性,得到每个参数子集对应的回归系数集合Ai={ai,a2…,ak,b}及相关系数Ri ;
[0047]步骤4.从步骤3中得到的所有回归系数集合Ai和相关系数Ri中,选择相关系数Ri最大的一对,其对应的参数子集作为该任务单元的预测参数集合,回归系数作为线性预测公式的各项系`数,即Ti类型任务单元对Resi资源的需求预测值为Pre (Resi, Ti) =a1*p1+a2*p2+...+ak*pk+b ;
[0048]如图3所示,本发明的基于云计算的视频会议资源预测模型的调度阶段流程图,进一步包括以下步骤:
[0049]步骤1.调度模块从控制模块获得需要调度的任务单元数量,以及每个任务单元的类型和参数值;
[0050]步骤2.调度模块通过资源预测模型得到的预测公式对新增的任务单元所需的各项资源进行预测,得到该任务单元所需的资源集合Res= {Pre (CPU),Pre (Memory),Pre (Network Bandwidth)};
[0051]步骤3.将现有的虚拟机按可用资源的多少降序排列形成列队Q ;
[0052]步骤4.比较新增任务的所需资源Res是否超出队首虚拟机Q(O)的可用资源;若未超过,则将新增的任务单元分配到该虚拟机中,转步骤6 ;否则,按步骤5将Q(O)上的任务进行迁移到队列Q的其他虚拟机中,直到Q(O)有足够的资源承担新增任务,并将新增任务分配到该虚拟机中,转步骤6 ;若其他虚拟机没有足够的资源承担迁移的任务,则向系统申请新的虚拟机资源,将新增任务分配到新的虚拟机中,转步骤6 ;
[0053]步骤5.迁移时,每个待迁移的任务视为新增任务,将除Q (O)以外的所有虚拟机按步骤3重新排列形成队列Q’,并在该队列上执行步骤4 ;[0054]步骤6.调度完成后对所有结点进行检查,若可用资源最多的虚拟机与可用资源最少的虚拟机的资源差值超过了 Threshold,则将可用资源最少的虚拟机上的任务按步骤5进行迁移,直到两者间可用资源的差值小于阈值。
[0055]如图4所示,本发明的基于云计算的视频会议资源预测模型的聚合阶段流程图,进一步包括以下步骤:
[0056]步骤1.调度模块根据资源监测模块返回参数,得到当前资源最多及负载最轻的虚拟机;若满足聚合条件,则执行步骤2 ;
[0057]步骤2.针对负载最轻的虚拟机即源虚拟机中的每一个任务单元,根据调度步骤寻找另一台合适的虚拟机即目标虚拟机接收该任务单元;
[0058]步骤3.目标虚拟机启动该任务单元;
[0059]步骤4.源虚拟机终止该任务单元;
[0060]步骤5.关闭源虚拟机;
[0061]步骤6.检查当如各虚拟机状态是否仍满足聚合条件,若是,则重复步骤1-5。
[0062]如图5所示,本发明的资源监测模块的结构图。资源监测模块是运行在物理机和虚拟机中的监测程序,负责各项计算资源状态的收集与分析。资源监测模块不仅仅将对虚拟机上各项资源的整理状况进行监测,还对转码服务进程做更细致的信息收集。这些资源信息会被资源监测模块收集整理,这些资源的状态信息将作为调度模块调度的基础。
[0063]如表1所示,为资源监测模块监测的资源表,每一行对应一项监测参数,包括“CPU使用率”,“内存利用率”,“带宽”等。
[0064]表1为本发明的资源监测模块的监测资源表
[0065]
【权利要求】
1.一个基于云计算的视频会议的转码分发系统,其特征在于:包括资源监测模块、数据收发模块、转码模块、控制模块和调度模块,其中, 所述的资源监测模块负责对系统中的资源进行监测,其资源监测的层次分为两个,第一层为监测云计算平台中各虚拟机的整体资源使用情况,第二层为监测各个计算任务的资源使用情况;所需监测的资源包括CPU利用率、内存使用情况和网络带宽使用情况;资源监测模块周期性的将这些资源信息进行分析整理并汇报给调度模块; 所描述的数据收发模块由若干个数据收发网关单元组成,每个网关单元负责接收和分发若干路视频流,所有网关单元均受控制模块的统一管理和控制;每个客户端在登陆时,控制模块根据调度模块的调度结果为该客户端指定一个网关单元;客户端与该网关单元成功连接后,通过该网关单元向其他客户端发送自身的视频流及接收其他客户端发送的视频流; 所述的转码模块,负责对视频流参数进行修改;转码模块内部按功能可分为如下基本转码单元,分别是:解码单元、编码单元、视频缩放单元、ROI提取单元、帧率变更单元、多路视频混合单元、传输协议打包单元、传输协议解包单元; 所述的控制模块负责响应客户端发出的视频接收指令,根据视频流接收方客户端所在网关、视频流发送方客户端所在网关以及接收方对视频流的参数要求,生成一条转码分发流水线;该流水线的输入端为视频流发送方客户端所连接的网关单元即发送网关,输出端为视频流接收方客户端所连接的网关单元即接收网关,在输入端和输出端之间可以包括零个或多个基本转码单 元;所述的接收方对视频流的参数要求,是指接收方对视频流的大小、帧率、布局、码率的要求; 所述的调度模块负责将转码分发流水线上每一级任务单元分配到最合适的虚拟机中执行。
2.根据权利要求1所述的一个基于云计算的视频会议的转码分发系统,其特征在于:所述的调度模块拥有一个资源预测模型,该模型包含三个阶段:学习阶段、调度阶段、聚合阶段。
3.根据权利要求2所述的一个基于云计算的视频会议的转码分发系统,其特征在于:所述调度模块的学习阶段通过对预先准备好的学习数据集进行学习获取预测模型所需要的参数,该学习过程进一步包含以下步骤: 步骤1.对转码分发系统中提供的所有任务单元按照功能分类,并给出每类任务单元涉及的所有参数; 步骤2.在虚拟机上运行每种任务单元(Ti)来处理学习数据集,同时资源监测模块需同步监测该任务单元占用的各项资源; 步骤3.对步骤2中运行的任务单元枚举其参数的所有子集,并对每个参数子集Pi=Ip1, P2, -PkI计算多元线性回归,计算参数子集与资源监测模块监测到的资源项Resi的线性相关性,得到每个参数子集对应的回归系数集合Ai={ai,a2…,ak,b}及相关系数Ri ; 步骤4.从步骤3中得到的所有回归系数集合Ai和相关系数Ri中,选择相关系数民最大的一对,其对应的参数子集作为该任务单元的预测参数集合,回归系数作为线性预测公式的各项系数,即Ti类型任务单元对Resi资源的需求预测值为Pre (Resi, Ti) =BfpJai^p2+…+ak*pk+b。
4.根据权利要求2所述的一个基于云计算的视频会议的转码分发系统,其特征在于:所述调度模块的调度阶段根据资源按需调度算法对任务单元进行调度,将任务单元按照其所需资源的多少分配到最适合的虚拟机上运行,该资源按需调度算法进一步包含如下步骤: 步骤1.调度模块从控制模块获得需要调度的任务单元数量,以及每个任务单元的类型和参数值; 步骤2.调度模块通过资源预测模型得到的预测公式对新增的任务单元所需的各项资源进行预测,得到该任务单元所需的资源集合Res= {Pre (CPU), Pre (Memory), Pre (NetworkBandwidth)}; 步骤3.将现有的虚拟机按可用资源的多少降序排列形成列队Q ; 步骤4.比较新增任务的所需资源Res是否超出队首虚拟机Q(O)的可用资源;若未超过,则将新增的任务单元分配到该虚拟机中,转步骤6 ;否则,按步骤5将Q(O)上的任务进行迁移到队列Q的其他虚拟机中,直到Q(O)有足够的资源承担新增任务,并将新增任务分配到该虚拟机中,转步骤6 ;若其他虚拟机没有足够的资源承担迁移的任务,则向系统申请新的虚拟机资源,将新增任务分配到新的虚拟机中,转步骤6 ; 步骤5.迁移时,每个待迁移的任务视为新增任务,将除Q (O)以外的所有虚拟机按步骤3重新排列形成队列Q’,并在该队列上执行步骤4 ; 步骤6.调度完成后对所有结点进行检查,若可用资源最多的虚拟机与可用资源最少的虚拟机的资源差值超过 了 Threshold,则将可用资源最少的虚拟机上的任务按步骤5进行迁移,直到两者间可用资源的差值小于阈值。
5.根据权利要求2所述的一个基于云计算的视频会议的转码分发系统,其特征在于:所述调度模块的聚合阶段负责在所有虚拟机均处于轻负载的状态下,将任务单元聚合到少数几台虚拟机中以降低能耗;该聚合步骤进一步包括如下步骤: 步骤1.调度模块根据资源监测模块返回参数,得到当前资源最多及负载最轻的虚拟机;若满足聚合条件,则执行步骤2 ; 步骤2.针对负载最轻的虚拟机即源虚拟机中的每一个任务单元,根据调度步骤寻找另一台合适的虚拟机即目标虚拟机接收该任务单元; 步骤3.目标虚拟机启动该任务单元; 步骤4.源虚拟机终止该任务单元; 步骤5.关闭源虚拟机; 步骤6.检查当前各虚拟机状态是否仍满足聚合条件,若是,则重复步骤1-5。
【文档编号】G06F11/30GK103699447SQ201410007678
【公开日】2014年4月2日 申请日期:2014年1月8日 优先权日:2014年1月8日
【发明者】楼奕华, 成睿, 陈永全, 吴文峻 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1