一种带宽优化方法及系统的制作方法

文档序号:7783200阅读:167来源:国知局
一种带宽优化方法及系统的制作方法
【专利摘要】本发明公开了一种适用于云游戏场景的带宽优化方法及系统,系统包括位于服务器端的指令代理模块、状态管理模块、模型优化模块和网络传输模块,指令代理模块截取游戏进程中调用的指令及数据;状态管理模块处理所述指令和数据,若指令为设备相关指令,则对客户端设备进行状态查询和设置;若指令为模型相关指令,则将指令和数据放到对应模型的数据结构中,并在模型渲染之前,通过模型优化模块简化模型;模型优化模块从所述指令和数据中识别场景中的模型,并根据模型在场景中的位置和顶点复杂度信息对其进行压缩,以减少系统所需的带宽;网络传输模块用于将简化模型相关指令数据发送给客户端。实施本发明能有效降低云游戏场景下的高带宽需求。
【专利说明】一种带宽优化方法及系统
【技术领域】
[0001]本发明属于计算机游戏【技术领域】,更具体地,涉及一种适用于云游戏应用场景的带宽优化方法及系统。
【背景技术】
[0002]随着云游戏技术的普及,计算机游戏领域出现了一个新的游戏模式一云游戏。有别于传统的单机游戏和网络游戏,在云游戏系统中,借助于云服务器,用户并不需要安装游戏的客户端,便可以体验各式各样的游戏,同时,用户还可以在不同的设备终端得到一致的游戏体验。
[0003]云游戏系统采用的是客户机和服务器(Client/Server,简称C/S)网络架构,流式的数据在服务端和客户端之间进行传输,目前的实现方案中,流式数据分为视频流和指令流两种方式。视频流方式中,游戏的场景在服务端渲染,然后被压缩成视频流传输到客户端,在这种方式下,系统的带宽受游戏画面质量的影响,需要1.5Mbps的带宽才能保证标清游戏的流畅,而对于高清游戏,则需要5Mbps的带宽。指令流的方式,是指将游戏的指令迁移到客户端执行,这种方式用图形渲染指令流传输代替了视频流的传输,但是引入了需要额外传输的数据,如场景模型的数据和纹理数据等等,对于复杂而且变化频繁的场景,这些额外传输的模型和纹理数据并不比视频流的数据量小。因此,如何降低系统所需的带宽仍是云游戏平台中亟需解决的问题。

【发明内容】

[0004]针对现有技术的以上缺陷或改进需求,本发明提供了适用于云游戏应用场景的带宽优化方法及系统,通过分析模型自身的结构并减少模型的复杂度,可有效解决现有云游戏系统中带宽使用过大的问题。
[0005]本发明解决其技术问题所采用的技术方案是,提供一种带宽优化系统,用于在云游戏场景中进行带宽优化,包括位于服务器端的指令代理模块、状态管理模块、模型优化模块以及网络传输模块,所述指令代理模块与状态管理模块相连,模型优化模块与状态管理模块相连,网络传输模块与模型优化模块相连,
[0006]所述指令代理模块用于截取游戏进程中调用的指令及数据,过滤后交由状态管理模块进行处理;
[0007]所述状态管理模块用于接收并处理所述指令和数据,如果所述指令为设备状态相关的指令,则对客户端渲染设备进行状态查询和设置;如果所述指令为模型相关的指令,则将所述指令和数据放到其对应模型的数据结构中,并在模型渲染之前,通过模型优化模块对模型进行简化处理;
[0008]所述模型优化模块用于从所述指令和数据中识别场景中的模型,并根据模型在场景中的位置和顶点复杂度信息对其进行可控粒度的压缩简化,以减少系统所需的带宽;
[0009]网络传输模块用于将简化后的模型相关指令和数据进行缓冲,压缩后发送至客户端。
[0010]在本发明所述的带宽优化系统中,所述模型优化模块还包括模型判断模块、与模型判断模块相连的计算模块和与计算模块相连的模型生成模块,
[0011]所述模型判断模块根据模型在场景中位置和顶点复杂度信息判断是否需要对模型进行简化;
[0012]所述计算模块用于在模型需要简化时确定简化的比率,根据二次误差度量计算模型相邻顶点合并的代价,并将所有待合并顶点对存放在一个数据结构中;如果当前模型的顶点复杂度尚未达到简化要求,则选取一对代价最小的顶点对进行合并,重新计算它们之间的合并代价直至当前模型的顶点复杂度达到简化要求;
[0013]所述模型生成模块用于在当前模型的顶点复杂度达到简化要求后,生成简化后的模型简化后的顶点相邻关系,所述模型的后续渲染按照简化后的相邻关系进行。
[0014]在本发明所述的带宽优化系统中,所述设备状态为影响当前渲染流程的一个状态集,包括当前的视角变化矩阵、光照和材质,所述状态设备相关的指令为对上述状态进行设置或者查询的指令。
[0015]在本发明所述的带宽优化系统中,所述模型相关指令为对模型的顶点格式、顶点数据和邻接关系数据进行设置的指令;所述模型相关的指令其对应的数据为模型的顶点数据、邻接关系数据和模型的纹理。
[0016]相应地,本发明还提供了一种带宽优化方法,用于在云游戏场景中进行带宽优化,所述方法包括以下步骤:
[0017]S1、服务器端截取游戏进程中调用的指令及数据,并进行过滤;
[0018]S2、服务器端接收并处理所述过滤后的指令和数据,如果所述指令为设备状态相关的指令,则对设备进行状态查询和设置;如果所述指令为模型相关的指令,则将所述指令和数据放到其对应模型的数据结构中,并在模型渲染之前,对模型进行简化处理;
[0019]S3、服务器端从所述指令和数据中识别场景中的模型,并根据模型在场景中的位置和顶点复杂度信息对其进行可控粒度的压缩简化,以减少系统所需的带宽;
[0020]S4、服务器端将简化后的模型相关指令和数据进行缓冲,压缩后发送至客户端。
[0021]在本发明所述的带宽优化方法中,所述步骤S3还包括:
[0022]S31、服务器端根据模型的复杂度及位置信息判断是否需要对模型进行简化,如果需要则确定简化的比率,执行步骤S32,否则执行步骤S4 ;
[0023]S32、根据二次误差度量计算模型相邻顶点合并的代价,并将所有待合并顶点对存放在一个数据结构中;
[0024]S33、如果当前模型的顶点复杂度尚未达到简化要求,则选取一对代价最小的顶点对进行合并,执行步骤S34 ;如果当前模型的顶点复杂度已达到简化要求,执行步骤S35 ;
[0025]S34、更新所述步骤S33中选取的顶点对相对应的顶点,重新计算它们之间的合并代价,返回步骤S33 ;
[0026]S35、生成简化后的模型的顶点相邻关系,所述模型的后续渲染按照简化后的相邻关系进行。
[0027]在本发明所述的带宽优化方法中,所述设备状态为影响当前渲染流程的一个状态集,包括当前的视角变化矩阵、光照和材质,所述状态设备相关的指令为对上述状态进行设置或者查询的指令。
[0028]在本发明所述的带宽优化方法中,所述模型相关指令为对模型的顶点格式、顶点数据和邻接关系数据进行设置的指令;所述模型相关的指令其对应的数据为模型的顶点数据、邻接关系数据和模型的纹理。
[0029]因此,本发明可以获得以下的有益效果:通过状态管理模块处理设备相关指令和模型相关指令,在服务端提供了客户端渲染设备的抽象模型,模拟客户端渲染设备在渲染过程中的状态,从而避免了大部分的网络延时,使得服务端可以高效地获取客户端渲染设备的状态,另外对模型相关的数据进行收集,有利于模型优化模块对模型的重建和编码;通过模型优化模块分析模型自身的结构,大大减少了模型的复杂度,从而减少了系统所需的网络带宽,并且根据模型在场景中出现的位置和顶点复杂度来决定模型的压缩比率,可以有效地保证场景的画面质量,模型优化模块对于每一个模型的压缩处理,只在该模型第一次加载时进行一次,因此相对于现有技术中视频流的逐帧压缩,以及同现有技术中指令流的增量数据传输相比,提高了数据传输效率,降低了系统的带宽需求。
【专利附图】

【附图说明】
[0030]下面将结合附图及实施例对本发明作进一步说明,附图中:
[0031]图1是本发明带宽优化方法的工作流程图;
[0032]图2是本发明带宽优化系统的结构框图;
[0033]图3是本发明带宽优化系统的模型优化模块工作流程图。
【具体实施方式】
[0034]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0035]图1是本发明带宽优化系统的结构框图。如图1所示,本发明的带宽优化系统包括位于服务器端的指令代理模块1、状态管理模块2、模型优化模块3以及网络传输模块4,所述指令代理模块I与状态管理模块2相连,模型优化模块3与状态管理模块2相连,网络传输模块4与模型优化模块3相连。
[0036]指令代理模I块用于截取游戏进程中调用的指令及数据,进行简单过滤后交由状态管理模块进行处理;
[0037]状态管理模块2用于接收并处理所述指令和数据,如果所述指令为设备状态相关的指令,则直接对客户端渲染设备进行状态查询和设置;如果所述指令为模型相关的指令,则将所述指令和数据放到其对应模型的数据结构中,并在模型渲染之前,通过模型优化模块3对模型进行简化处理;其中,设备状态具体而言是指影响当前渲染流程的一个状态集,如当前的视角变化矩阵、光照、材质等等,设备状态相关的指令是指对这类状态进行设置或者查询的指令;模型相关指令是指对模型的顶点格式,顶点数据,邻接关系数据等进行设置的指令;所述模型相关的指令其对应的数据为模型的顶点数据、邻接关系数据和模型的纹理;[0038]模型优化模块3用于从所述指令及相应数据中识别场景中的模型,并根据模型在场景中的位置和顶点复杂度信息对其进行可控粒度的压缩简化,以减少系统所需的带宽;
[0039]网络传输模块4用于将简化后的模型相关指令数据进行缓冲,采用无损压缩算法压缩后发送给客户端。
[0040]模型优化模块3还包括模型判断模块31、与模型判断模块相连的计算模块32和与计算模块相连的模型生成模块32,
[0041]模型判断模块31根据模型在场景中的位置和顶点复杂度信息判断是否需要对模型进行简化;
[0042]计算模块32用于在模型需要简化时确定简化的比率,根据二次误差度量计算模型相邻顶点合并的代价,并将所有待合并顶点对存放在一个数据结构中;如果当前模型的顶点复杂度尚未达到简化要求,则选取一对代价最小的顶点对进行合并,重新计算它们之间的合并代价直至当前模型的顶点复杂度达到简化要求;
[0043]模型生成模块33用于在当前模型的顶点复杂度达到简化要求后,生成简化后的模型简化后的顶点相邻关系,所述模型的后续渲染按照简化后的相邻关系进行。
[0044]在本发明的带宽优化系统中,根据位置信息判断是否对模型简化为当模型的位置进入到场景的视角(也就是被渲染出来)时才进行简化。
[0045]在本发明的带宽优化系统中,采用二次误差度量算法可较精确地计算得到相邻顶点合并的代价。简化的比率由模型顶点复杂度来决定,顶点复杂越大,简化的力度越大。模型顶点复杂度是否达达到简化要求由公式“简化后的顶点数=原始顶点数*简化比率”判断,即当简化后的顶点数小于等于原始顶点数*简化比率得到的数值时,证明当前模型的顶点复杂度已达到简化要求。
[0046]图2是本发明带宽优化方法的工作流程图。如图2所示,本发明带宽优化方法包括以下步骤:
[0047]S1、服务器端截取游戏进程中调用的指令及数据,并进行简单过滤;
[0048]S2、服务器端接收并处理所述过滤后的指令和数据,如果所述指令为设备状态相关的指令,则对设备进行状态查询和设置;如果所述指令为模型相关的指令,则将所述指令和数据放到其对应模型的数据结构中,并在模型渲染之前,对模型进行简化处理;其中,设备状态具体而言是指影响当前渲染流程的一个状态集,如当前的视角变化矩阵、光照、材质等等,设备状态相关的指令是指对这类状态进行设置或者查询的指令;模型相关指令是指对模型的顶点格式,顶点数据,邻接关系数据等进行设置的指令;所述模型相关的指令其对应的数据为模型的顶点数据、邻接关系数据和模型的纹理;
[0049]S3、服务器端从所述指令和数据中识别场景中的模型,并根据模型在场景中的位置和顶点复杂度信息对其进行可控粒度的压缩简化,以减少系统所需的带宽;
[0050]S4、服务器端将简化后的模型相关指令和数据进行缓冲、顺序调整,采用无损压缩算法压缩后发送至客户端。
[0051]S5、客户端接收到指令数据,进行解压和缓存处理后,交由客户端图形库执行,最终效果显不在客户端的屏.中;
[0052]S6、用户在客户端进行操作,其操作被封装成网络包,传输到服务端对应的游戏进程中,完成游戏的交互。[0053]在步骤SI执行之前,首先需启动服务端,进行系统初始化,等待客户端的连接;启动客户端,将其连接到系统的服务端,并将客户端自身的硬件信息发送给服务器端;服务器端接收到来自客户端的请求,启动请求对应的游戏进程,并将指令代理模块加载到游戏进程的地址空间中。
[0054]图3是本发明上述带宽优化方法中模型优化方法的工作流程图。如图3所述,本发明带宽优化方法步骤S3中模型优化方法的工作流程包括以下步骤:
[0055]S31、服务器端根据模型位置和顶点复杂度信息判断是否需要对模型进行简化,如果需要则确定简化的比率,执行步骤S32,否则执行步骤S4 ;
[0056]S32、根据二次误差度量计算模型相邻顶点合并的代价,并将所有待合并顶点对存放在一个数据结构中;
[0057]S33、如果当前模型的顶点复杂度尚未达到简化要求,则选取一对代价最小的顶点对进行合并,执行步骤S34 ;如果当前模型的顶点复杂度已达到简化要求,执行步骤S35 ;
[0058]S34、更新所述步骤S33中选取的顶点对相对应的顶点,重新计算它们之间的合并代价,返回步骤S33 ;
[0059]S35、生成简化后的模型的顶点相邻关系,所述模型的后续渲染按照简化后的相邻关系进行。
[0060]在本发明的带宽优化方法中,根据位置信息判断是否对模型简化为当模型的位置进入到场景的视角(也就是被渲染出来)时才进行简化。
[0061]在本发明的带宽优化方法中,采用二次误差度量算法可较精确地计算得到相邻顶点合并的代价。简化的比率由模型顶点复杂度来决定,顶点复杂越大,简化的力度越大。模型顶点复杂度是否达达到简化要求由公式“简化后的顶点数=原始顶点数*简化比率”判断,即当简化后的顶点数小于等于原始顶点数*简化比率得到的数值时,证明当前模型的顶点复杂度已达到简化要求。
[0062]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种带宽优化系统,用于在云游戏场景中进行带宽优化,包括位于服务器端的指令代理模块、状态管理模块、模型优化模块以及网络传输模块,所述指令代理模块与状态管理模块相连,模型优化模块与状态管理模块相连,网络传输模块与模型优化模块相连,其特征在于, 所述指令代理模块用于截取游戏进程中调用的指令及数据,过滤后交由状态管理模块进行处理; 所述状态管理模块用于接收并处理所述指令和数据,如果所述指令为设备状态相关的指令,则对客户端渲染设备进行状态查询和设置;如果所述指令为模型相关的指令,则将所述指令和数据放到其对应模型的数据结构中,并在模型渲染之前,通过模型优化模块对模型进行简化处理; 所述模型优化模块用于从所述指令和数据中识别场景中的模型,并根据模型在场景中的位置和顶点复杂度信息对其进行可控粒度的压缩简化,以减少系统所需的带宽; 网络传输模块用于将简化后的模型相关指令和数据进行缓冲,压缩后发送至客户端。
2.如权利要求1所述的带宽优化系统,其特征在于,所述模型优化模块还包括模型判断模块、与模型判断模块相连的计算模块和与计算模块相连的模型生成模块, 所述模型判断模块根据模型在场景中位置和顶点复杂度信息判断是否需要对模型进行简化; 所述计算模块用于在模型需要简化时确定简化的比率,根据二次误差度量计算模型相邻顶点合并的代价,并将所有待合并顶点对存放在一个数据结构中;如果当前模型的顶点复杂度尚未达到简化要求,则选取一对代价最小的顶点对进行合并,重新计算它们之间的合并代价直至当前模型的顶点复杂度达到简化要求; 所述模型生成模块用于在当前模型的顶`点复杂度达到简化要求后,生成简化后的模型简化后的顶点相邻关系,所述模型的后续渲染按照简化后的相邻关系进行。
3.如权利要求1或2所述的带宽优化系统,其特征在于,所述设备状态为影响当前渲染流程的一个状态集,包括当前的视角变化矩阵、光照和材质,所述状态设备相关的指令为对上述状态进行设置或者查询的指令。
4.如权利要求1或2所述的带宽优化系统,其特征在于,所述模型相关指令为对模型的顶点格式、顶点数据和邻接关系数据进行设置的指令;所述模型相关的指令其对应的数据为模型的顶点数据、邻接关系数据和模型的纹理。
5.一种带宽优化方法,用于在云游戏场景中进行带宽优化,其特征在于,所述方法包括以下步骤: 51、服务器端截取游戏进程中调用的指令及数据,并进行过滤; 52、服务器端接收并处理所述过滤后的指令和数据,如果所述指令为设备状态相关的指令,则对设备进行状态查询和设置;如果所述指令为模型相关的指令,则将所述指令和数据放到其对应模型的数据结构中,并在模型渲染之前,对模型进行简化处理; 53、服务器端从所述指令和数据中识别场景中的模型,并根据模型在场景中位置和顶点复杂度信息对其进行可控粒度的压缩简化,以减少系统所需的带宽; 54、服务器端将简化后的模型相关指令和数据进行缓冲,压缩后发送至客户端。
6.如权利要求5所述的带宽优化方法,其特征在于,所述步骤S3还包括:` 531、服务器端根据模型的复杂度及位置信息判断是否需要对模型进行简化,如果需要则确定简化的比率,执行步骤S32,否则执行步骤S4 ;` 532、根据二次误差度量计算模型相邻顶点合并的代价,并将所有待合并顶点对存放在一个数据结构中;` 533、如果当前模型的顶点复杂度尚未达到简化要求,则选取一对代价最小的顶点对进行合并,执行步骤S34 ;如果当前模型的顶点复杂度已达到简化要求,执行步骤S35 ;` 534、更新所述步骤S33中选取的顶点对相对应的顶点,重新计算它们之间的合并代价,返回步骤S33 ; ` 535、生成简化后的模型的顶点相邻关系,所述模型的后续渲染按照简化后的相邻关系进行。
7.如权利要求5或6所述的带宽优化方法,其特征在于,所述设备状态为影响当前渲染流程的一个状态集,包括当前的视角变化矩阵、光照和材质,所述状态设备相关的指令为对上述状态进行设置或者查询的指令。
8.如权利要求5或6所述的带宽优化方法,其特征在于,所述模型相关指令为对模型的顶点格式、顶点数据和邻接关系数据进行设置的指令;所述模型相关的指令其对应的数据为模型的顶点数据、邻接关系数据和`模`型的纹理。
【文档编号】H04L29/06GK103763307SQ201310750750
【公开日】2014年4月30日 申请日期:2013年12月30日 优先权日:2013年12月30日
【发明者】廖小飞, 金海 , 杨晓彬, 郑然 , 林立, 张伟 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1