应用于云游戏的视频渲染方法、系统及相关设备与流程

文档序号:31629929发布日期:2022-09-24 01:40阅读:165来源:国知局
应用于云游戏的视频渲染方法、系统及相关设备与流程

1.本技术涉及云游戏技术领域,具体涉及一种应用于云游戏的视频渲染方法、系统及相关设备。


背景技术:

2.随着5g技术的快速发展,我国已成为全球云游戏产业发展最快、最受关注的地区之一,并成为全球首个开展云游戏行业主客场地区。随着云游戏行业产业链的逐渐完善,未来云游戏行业产业将会形成与传统体育类似的收入模式,云游戏产业整体规模不可限量。
3.云游戏是以云计算为基础的游戏方式,其使用的主要技术包括云端完成游戏运行与画面渲染的云计算技术,以及用户终端与云服务器的流媒体传输技术。
4.然而,由于云服务器渲染的视频画面相对于不同的用户终端存在不适配的现象,导致用户在云游戏运行的过程中,画面出现拉伸变形的现象。


技术实现要素:

5.本技术实施例提供了一种应用于云游戏的视频渲染方法、系统、存储介质及服务器,可以提高云服务器渲染的视频画面对于不同的用户终端的适配程度,进而避免画面拉伸变形。
6.所述技术方案如下:在本技术的第一方面提供了一种应用于云游戏的视频渲染方法,应用于云服务器,所述方法包括:接收用户终端在运行云游戏时发送的游戏画面显示请求,获取所述用户终端的设备参数信息,所述设备参数信息包括所述用户终端本地支持的第一渲染参数;将所述第一渲染参数与所述云服务器最大支持的第二渲染参数进行比较,确定实际渲染参数;基于所述实际渲染参数对游戏画面进行渲染,得到渲染后的游戏画面;对所述渲染后的游戏画面进行编码,并发送至所述用户终端,以使所述用户终端对所述游戏画面进行解码并显示。
7.通过采用上述技术方案,用户终端在运行云游戏时,向云服务器发送游戏画面显示请求,云服务器接收请求的同时获取用户终端的设备参数信息,并基于用户终端的设备参数信息确定适于用户终端的实际渲染参数以对游戏画面进行渲染,之后将渲染后的游戏画面进行编码,发送至用户终端。云服务器根据用户终端的设备参数信息,设置与用户终端适配的渲染参数,提高了云服务器对于不同用户终端的适配能力,进而避免画面拉伸变形。
8.可选的,所述渲染参数为分辨率,所述将所述第一渲染参数与所述云服务器最大支持的第二渲染参数进行比较,确定实际渲染参数,包括:比较所述第二渲染参数是否超出所述第一渲染参数;若所述第二渲染参数超出所述第一渲染参数,则确定所述第一渲染参数为实际渲
染参数;若所述第二渲染参数未超出所述第一渲染参数,则对所述第一渲染参数进行缩放操作以确定实际渲染参数。
9.通过采用上述技术方案,当渲染参数为分辨率时,将用户终端支持的第一渲染参数与服务器最大支持的第二渲染参数进行比较,若第二渲染参数超出第一渲染参数,则确定所述第一渲染参数为实际渲染参数;若第二渲染参数未超出第一渲染参数,则对所述第一渲染参数进行缩放操作以确定实际渲染参数,最大化发挥终端性能和分辨率支持,并按照比例渲染避免画面拉伸变形。
10.可选的,所述渲染参数为刷新率,所述将所述第一渲染参数与所述云服务器最大支持的第二渲染参数进行比较,确定实际渲染参数,包括:比较所述第二渲染参数是否超出所述第一渲染参数;若所述第二渲染参数超出所述第一渲染参数,则确定所述第一渲染参数为实际渲染参数;若所述第二渲染参数未超出所述第一渲染参数,则确定所述第二渲染参数为实际渲染参数。
11.通过上述技术方案,当渲染参数为刷新率时,将用户终端支持的第一渲染参数与服务器最大支持的第二渲染参数进行比较,若所述第二渲染参数超出所述第一渲染参数,则确定所述第一渲染参数为实际渲染参数;若所述第二渲染参数未超出所述第一渲染参数,则确定所述第二渲染参数为实际渲染参数,最大化发挥终端性能,并按照比例渲染避免画面拉伸变形。
12.可选的,所述对所述第一渲染参数进行缩放操作以确定实际渲染参数,包括:确定缩放比例,所述第一渲染参数按照所述缩放比例缩放后小于或者等于所述第二渲染参数;将所述第一渲染参数乘以所述缩放比例,得到所述实际渲染参数。
13.通过采用上述技术方案,根据云服务器最大支持的第二渲染参数调整客户端支持的第一渲染参数确定缩放比例,通过将第一渲染参数乘以缩放比例得到实际渲染参数,使得调整后的客户端支持的第一渲染参数更加匹配于云服务器最大支持的第二渲染参数。
14.可选的,所述云服务器包括显存和存储器,所述将所述渲染后的游戏画面进行编码,并发送至所述用户终端,以使所述用户终端对所述游戏画面进行解码并显示,包括:在所述显存中对所述渲染后的游戏画面进行编码,得到编码画面;将所述编码画面存储至所述存储器中,并将所述存储器中的所述编码画面发送至所述用户终端,以使所述用户终端对所述编码画面进行解码并显示。
15.通过采用上述技术方案,在gpu的显存内基于实际渲染参数对游戏画面进行渲染,通过显存直接编码。减少了将显存内数据拷贝到内存的资源消耗和资源占有,节约了服务器的算力。
16.可选的,所述接收用户终端在运行云游戏时发送的游戏画面显示请求,获取所述用户终端的设备参数信息,包括:接收用户终端在运行云游戏时发送的游戏画面显示请求;判断所述游戏画面显示请求是否为首次请求;
若所述游戏画面显示请求为首次请求,则向所述用户终端获取设备参数信息;若所述游戏画面显示请求为非首次请求,则在缓存中查找所述用户终端的设备参数信息。
17.通过采用上述技术方案,判断用户终端发送的游戏画面显示请求是否为首次请求,若是,则获取用户终端的设备参数信息,并在视频渲染完成后在云服务器保存用户终端的设备参数信息,以便下一次直接调用;若否,则在缓存中查找该用户终端的设备参数信息,节约了云服务的算力,提高了云游戏的运行速度。
18.在本技术的第二方面提供了一种应用于云游戏的视频渲染方法,应用于用户终端,所述方法包括:在运行云游戏时向云服务器发送游戏画面显示请求,以使所述云服务器获取所述用户终端的设备参数信息,所述设备参数信息包括所述用户终端本地支持的第一渲染参数,以使所述云服务器基于所述第一渲染参数与所述云服务器最大支持的第二渲染参数进行比较后确定实际渲染参数并基于所述实际渲染参数对游戏画面进行渲染并编码后发送至所述用户终端;接收所述云服务器发送的编码后的游戏画面,对所述游戏画面进行解码并显示。
19.通过采用上述技术方案,用户终端在运行云游戏时,向云服务器发送游戏画面显示请求,云服务器接收请求的同时获取用户终端的设备参数信息,并基于用户终端的设备参数信息确定适于用户终端的实际渲染参数以对游戏画面进行渲染,之后将渲染后的游戏画面进行编码,发送至用户终端。云服务器根据用户终端的设备参数信息,设置与用户终端适配的渲染参数,提高了云服务器对于不同用户终端的适配能力,进而避免画面拉伸变形。
20.在本技术的第三方面提供了一种应用于云游戏的视频渲染系统,所述系统包括:设备信息获取模块,用于接收用户终端在运行云游戏时发送的游戏画面显示请求,获取所述用户终端的设备参数,所述设备参数信息包括所述用户终端本地支持的第一渲染参数;渲染参数确认模块,用于将所述第一渲染参数与所述云服务器最大支持的第二渲染参数进行比较,确定实际渲染参数;游戏视频渲染模块,用于基于所述实际渲染参数信、对游戏画面进行渲染,得到渲染后的游戏画面;游戏画面编码模块,用于将所述渲染后的游戏画面进行编码,并发送至所述用户终端,以使所述用户终端对所述游戏画面进行解码并显示。
21.通过采用上述技术方案,用户终端在运行云游戏时,向云服务器发送游戏画面显示请求,云服务器接收请求的同时获取用户终端的设备参数信息,并基于用户终端的设备参数信息确定适于用户终端的实际渲染参数对游戏画面进行渲染,之后将渲染后的游戏画面进行编码,发送至用户终端。云服务器根据用户终端的设备参数信息,设置与用户终端适配的渲染参数以对游戏画面进行渲染,进而使得用户终端可以流畅的显示游戏画面。
22.在本技术的第四方面提供了一种计算机存储介质,所述存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
23.在本技术的第五方面提供了一种服务器,包括处理器、存储器和收发器,其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步
骤。
24.综上所述,本技术包括以下至少一种有益技术效果:1、云服务器根据用户终端的设备参数信息,设置用户终端适配的渲染参数,提高了云服务器对于不同用户终端的适配能力,提高了用户的游戏体验感;2、将渲染后的游戏画面在显存中直接进行编码得到编码画面,并将编码画面存储至存储器中,以使用户终端对编码画面进行解码并显示,减少了对操作系统窗口画面进行截图的动作,或者是对显存内画面进行抓取后拷贝到内存,再由内存拷贝到编码器中进行编码,最后再拷贝到内存通过网络层发送至客户端的步骤,节约了服务器的算力,降低了云游戏的延迟。
附图说明
25.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1是本技术实施例提供的一种应用于云游戏的视频渲染方法的系统架构示意图;图2是本技术实施例提供的一种应用于云游戏的视频渲染方法流程示意图;图3是本技术实施例提供的一种若干个用户终端同时发送游戏画面显示请求的场景示意图;图4是本技术实施例提供的一种用户终端选择渲染方式的场景示意图;图5是本技术实施例提供的一种用户终端渲染时应用的ui设计设置画面场景示意图;图6是本技术实施例提供的另一种应用于云游戏的视频渲染方法的另一种实施例的流程示意图;图7a是本技术实施例提供的一种用户移动终端竖屏游戏状态下的场景图;图7b是本技术实施例提供的一种用户移动终端横屏游戏状态下的场景图;图8a是本技术实施例提供的一种用户pc终端全屏游戏状态下的场景图;图8b是本技术实施例提供的一种用户pc终端缩放游戏状态下的场景图;图9是本技术实施例提供的一种用户终端屏幕的逻辑分辨率、渲染分辨率、物理分配率的比例对比图;图10a是本技术实施例提供的一种第一渲染参数包含于第二渲染参数情况示意图;图10b是本技术实施例提供的一种第一渲染参数交叉与第二渲染参数示意图;图11是本技术实施例提供的一种示例性实施例提供的应用于云游戏的视频渲染系统的结构示意图;图12是本技术实施例提供的一种渲染参数确认模块的结构示意图;图13是本技术实施例提供的一种参数调整单元的结构示意图;图14是本技术实施例提供的一种游戏视频渲染模块的结构示意图;
图15是本技术实施例提供的另一种示例性实施例提供的应用于云游戏的视频渲染系统的结构示意图;图16是本技术实施例提供的另一种应用于云游戏的视频渲染方法的流程示意图;图17是本技术实施例提供的一种服务器的结构示意图。
27.附图标记说明:1、应用于云游戏的视频渲染系统;11、设备信息获取模块;12、渲染参数确认模块;13、游戏视频渲染模块;14、游戏画面编码模块;15、显示请求判断模块;16、渲染时间判断模块;121、参数比较单元;122、参数调整单元;123、参数确认单元;131、画面编码单元;132、画面存储单元;133、画面发送单元;1221、比例确定单元;1222、参数缩放单元;1000、服务器;1001、处理器;1002、通信总线;1003、用户接口;1004、网络接口; 1005、存储器。
具体实施方式
28.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。
29.在本技术实施例的描述中,“示性的”、
“ꢀ
例如”或者“举例来说”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
30.在本技术实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,单独存在b,同时存在a和b这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个屏幕终端是指两个或两个以上的屏幕终端。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
31.下面结合具体的实施例对本技术进行详细说明。
32.请参见图1,为本技术实施例提供的一种应用于云游戏的视频渲染方法的系统架构示意图,其中包括用户终端和云服务器,所述用户终端指的是云服务器与用户的交互设备,用户终端通常设置在能利用通信设施与远处计算机联工作的方便场所,它主要由通信接口控制装置与专用或选定的输入输出装置组合而成。众多分散的终端经由通信设施而与计算机联接的系统成为联机系统。而通常云游戏用户终端包括但不限于:安卓(android)系统设备、苹果公司开发的移动操作系统(ios)设备、个人计算机(pc)、全球局域网(world wide web,web)设备、虚拟现实(virtual reality,vr)设备、增强现实(augmented reality,ar)设备。
33.所述云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。在建立云游戏的时候,离不开最根本的内容,那就是云服务器,通过这个服务器可以把所需要的游戏画面进行渲染,压缩编码打包并且进行传输,此后,游戏用户能够在用户终端上去接触
游戏的真实画面。
34.其中,在云服务中设置有显存和存储器,所述显存也被叫做帧缓存,它的作用是用来存储显卡芯片处理过或者即将提取的渲染数据。如同计算机的内存一样,显存是用来存储处理的图形信息的部件,在显示屏上看到的画面是由一个个的像素点构成的,而每个像素点都以4至32甚至64位的数据来控制它的亮度和色彩,这些数据必须通过显存来保存,再交由显示芯片和核心处理器调配,最后把运算结果转化为图形输出到显示器上。在显卡开始图形渲染建模前,通常是把所需要的材料和纹理数据传送到显存里面,进行建模渲染,这些数据通过总线传输,显示芯片将通过总线提取存储在显存里面的数据,除了建模渲染数据外还有大量的顶点数据和工作指令流需要进行交换,这些数据通过数模转换器转换为模拟信号输出到显示端,最终显示我们看见的图像。
35.所述存储器,用于存储编码后游戏画面的编码文件。
36.云游戏,是以云计算为基础的在线游戏技术,基于云游戏的运行方式,游戏运行与云服务器,由云服务器将渲染完毕后的游戏画面经过编码等处理后通过网络传送给用户。基于这种方式,用户终端的游戏设备可以不需要高端处理器和显卡等高端硬件资源,只需要基本的音视频等媒体解压能力即可。因此,云游戏摆脱了用户终端对硬件的依赖,与传统游戏模式相比,云游戏能在很大程度上减少玩家玩游戏的设备成本。对云服务器来说,仅仅需要提高云服务器性能而不需要研发新主机,同时对用户玩家来说,可以得到更高画质而不用购买高性能的计算机。
37.视频编码器,是指能够对数字视频进行压缩的程序或者设备。
38.视频解码器,是指能够对数字视频进行解压缩的程序或设备。
39.在运行云游戏时,用户终端向云服务器发送游戏画面显示请求,云服务器接收到游戏画面显示请求后,获取用户终端的设备参数信息。云服务器将获取到的设备参数信息进行数据处理,并发送到显存中对游戏画面进行渲染。将渲染后的游戏画面通过编码器压缩编码后发送至存储器进行存储。云服务器的发射端读取存储器中编码后的游戏画面,并发送至用户终端的解码器进行解码并显示。
40.在一个实施例中,如图2所示,特提出了一种应用于云游戏的视频渲染方法的流程示意图,该方法主要应用于云服务器端,也可依赖于计算机程序实现,可依赖于单片机实现,也可运行于基于冯诺依曼体系的应用于云游戏的视频渲染系统上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
41.具体的,该应用于云游戏的视频渲染方法包括:步骤101:接收用户终端在运行云游戏时发送的游戏画面显示请求,获取所述用户终端的设备参数信息,所述设备参数信息包括所述用户终端本地支持的第一渲染参数。
42.所述请求是指挥云服务器工作的指示和命令,可以理解为制定执行某种运算或功能实现的控制代码。所述游戏画面显示请求在本技术实施例中可以理解为,在刚开始运行云游戏时,用户终端指挥云服务器执行获取用户终端的设备参数信息功能的代码,云服务器通过执行所述代码,可以获取用户终端的设备参数信息。
43.所述设备参数信息,主要包括设备硬件配置(所述第一渲染参数)和/或设备网络配置,可以是:集成电路卡识别码,即sim卡序列号,即手机插入的sim卡的iccid编码(sim卡的卡号),由20位数字组成,相当于手机号码的身份证;mac地址,网卡硬件地址,长度为48位
(6个字节),通常表示为12个16进制数;设备识别码,由系统初次启动时随机生成的64位随机整数,并以16进制字符串的形式保存在系统设置文件中;硬件序列号,一种设备硬件标识符,由硬件信息确定,在操作系统启动时写入系统属性中,没有固定格式。
44.所述第一渲染参数,主要包括,需要渲染的显示器数量、设备分辨率、设备刷新率范围、渲染比例等参数。
45.所述需要渲染的显示器数量,是指同时有多个用户终端在发送游戏画面显示请求,另外,也可以是一个终端配备了多个显示器,那么每个显示器需要匹配不同的游戏画面。
46.所述设备分辨率,是硬件参数,表示一块显示屏的显示面板中有多个最小显示单元,物理分辨率是固定不变的,不可调节的。
47.所述渲染分辨率(显卡或视频输出设备的数字图像分辨率),如果把设备的物理分辨率理解为“硬分辨率”,那么渲染分辨率就可以理解为“软分辨率”。通常用户终端的渲染分辨率和物理分辨率是保持一致的,在这种情况下,数字图像的每个像素点在显示器上都有对应的物理显示单元去显示,也就是点对点显示。
48.所述设备刷新率范围,设备刷新率是计算机显示器和投影设备的一个特性,它定义了设备每秒重新绘制屏幕上整个可见显示的频率和能力。刷新率以赫兹为单位,会根据显示设备的架构而有所不同,刷新率也称为垂直刷新或垂直扫描率。不同设备显示器刷新率范围不同,典型的计算机显示器的刷新率范围从60赫兹到100赫兹,具体取决于其屏幕尺寸,而对于lcd显示器,由于其先进的技术,刷新率较高。低于70赫兹的刷新率被视为负率,因为它们会导致屏幕闪烁。
49.所述渲染比例,一般是指运行云游戏设置的屏幕比例,渲染比例越高对用户终端的性能要求就越高。如果不选择合适的屏幕比例,就可能会造成卡顿。
50.例如,如图3所示,图3是若干个用户终端同时发送游戏画面显示请求的场景示意图,若干个用户终端同时发送游戏画面显示请求后,通过网络端的资源管理器传输至对应游戏的云服务器。云服务器接收到多个请求后,分别获取每个终端的设备参数并进行计算,然后采集计算结果分别对游戏画面进行渲染,从而将相应的画面传输到对应的终端。
51.例如,如图4所示,图4是用户终端选择渲染方式的场景示意图,当用户终端发送游戏画面显示请求至云服务器后,云服务器发送获取用户设备参数信息指令,用户终端收到所述指令后会弹出“选择渲染方式”界面框,包括“系统自动匹配”方式和“手动设定”方式。
52.又例如,如图5所示,图5是用户终端渲染时应用的ui设计设置画面场景示意图,当用户终端选择“手动设定”方式后,可根据提示或自定义设定分辨率、刷新率和渲染比例等渲染参数。
53.具体来说,当用户开始游戏时,用户终端会向云服务器发送游戏画面显示请求,当云服务器接收到所述游戏画面显示请求后,云服务器发送获取用户设备参数信息指令并作用于用户终端,用户终端收到所述指令后会弹出“选择渲染方式”界面框,包括“系统自动匹配”方式或是“手动设定”方式供用户选择,若用户选择“系统自动匹配”方式,用户终端则会将自身的设备参数信息发送至云服务器,若用户选择“手动设定”方式,可根据提示或自定义设定分辨率、刷新率和渲染比例等渲染参数信息并发送至云服务器。
54.步骤102:将所述第一渲染参数与所述云服务器最大支持的第二渲染参数进行比
较,确定实际渲染参数。
55.所述第二渲染参数,主要是指用户选择游戏时,服务器本端支持的渲染参数范围。第二渲染参数对应于第一渲染参数,包括分辨率、刷新率和渲染比例等渲染参数。
56.第二渲染参数可以是一个范围值,所述云服务最大支持的第二渲染参数指的是这个范围里面最大的值。
57.所述实际渲染参数,是指最适于用户终端的渲染参数。
58.具体来说,云服务器通过自身支持的第二渲染参数与用户终端支持的第一渲染参数进行比对,基于比对结果调整第一渲染参数,得到最适于用户终端的实际渲染参数。
59.步骤103:基于所述实际渲染参数对游戏画面进行渲染,得到渲染后的游戏画面。
60.渲染(render),是计算机动画(cencomputergraphics,cg)的最后一道工序,也是最终使图像符合的3d场景的阶段。而云游戏中的云渲染与常规的云计算类似,即将3d程序放在远程的服务器中渲染,用户终端通过全球广域网软件或者直接在本地的3d程序中点击“云渲染”按钮并借助高速互联网接入访问资源,指令从用户终端发出,服务器根据指令执行对应的渲染任务,而渲染结果画面则被传送回用户终端加以显示。
61.具体来说,云游戏渲染就是可视化、呈现效果的过程,云服务器基于实际渲染参数对游戏画面进行实时渲染,需要在23毫秒左右的时间完成一帧,实时渲染是指根据图形学算法将三维数据绘制到二维位图之中,并将这些位图实时显示。本质就是对图像数据的实时计算和输出,要求在短时间内渲染出一张图片,并显示出来,同时渲染并显示下一张图片。
62.步骤104:对所述渲染后的游戏画面进行编码,并发送至所述用户终端,以使所述用户终端对所述游戏画面进行解码并显示。
63.编码,是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。由于直接传输原始画面数据量庞大,会占用较多的带宽资源,为了节约带宽,在传输前编码器会对游戏画面进行压缩,让画面的数据减小,并成为统一的编码格式。
64.解码,是指用特定算法对已编码的游戏画面进行还原解码的过程,或将电脉冲信号转换成它所代表的信息、数据等过程。这样就节约了大量的带宽资源,并且传输的数据较小,减少了网络抖动所带来的影响。
65.具体来说,云服务器内的显存对已经渲染完成的游戏画面进行编码,并将编码后的文件传输至用户终端,用户终端接收到编码后的文件,并对其进行解码,并在显示屏上显示。
66.请参见图6,图6是本技术提供的一种应用于云游戏的视频渲染方法的另一实施例的流程示意图。
67.步骤201:接收用户终端在运行云游戏时发送的游戏画面显示请求。
68.其中,所述用户终端可以是安卓(android)系统设备、苹果公司开发的移动操作系统(ios)设备、个人计算机(pc)、全球局域网(worldwideweb,web)设备、虚拟现实(virtualreality,vr)设备、增强现实(augmentedreality,ar)设备等任一可连接显示屏且可连接于网络的智能设备。例如,手机的屏幕状态信息包括横屏状态和竖屏状态,电脑的屏幕状态信息包括全屏状态或是缩放状态。所述用户终端在发送游戏画面显示请求的指令之外,还发送了自身显示屏屏幕状态信息至云服务器。
69.例如,如图7a、7b所示,图7a是用户移动终端竖屏游戏状态下的场景图,图7b是用户移动终端横屏游戏状态下的场景图。当游戏模式从横屏状态转换成竖屏状态,纵横比会影响玩家对云游戏的体验感,选择合适的纵横比非常重要。纵横比描述屏幕或图像的宽度和高度,由用冒号分割的两个数字组成,第一个数字表示图像的宽度,第二个数字表示图像的高度,大多数的游戏都是以1920*1080为标准设计分辨率。而这个分辨率的纵横比为16:9,其他流行的纵横比还有4:3、16:10等。
70.又例如,如图8a、8b所示,图8a是用户pc终端全屏游戏状态下的场景图,图8b是用户pc终端缩放游戏状态下的场景图。
71.如上述论述,通常用户终端的渲染分辨率和物理分辨率是保持一致的,在这种情况下,数字图像的每一个像素点在显示器上都有对应的物理显示单元去显示,也就是点对点显示。但是在pc端运行云游戏时,通常可以调节游戏窗口大小,可以理解为将游戏画面放大或是缩小,这就是游戏渲染分辨率和显示器的物理分辨率不一致的情况。在放大模式中,渲染分辨率小于物理分辨率;在缩小模式中,渲染分辨率大于物理分辨率。如果用户选择手动设置分辨率,不使用系统自动匹配设置分配率时,如果设定的分辨率小于显示器的物理分配率,会导致显示画面拉伸变形又模糊。有些云游戏可以设置渲染分辨率,即使在系统的渲染分辨率较高的情况下,游戏内部还是可以设置较低的渲染分辨率,让游戏可以在配置交底的用户终端上更流畅的运行,带来的影响就是画面也会模糊变形。
72.在放大模式中,也存在渲染分辨率小于屏幕分辨率的情况,例如图9所示,图9是用户终端屏幕的逻辑分辨率、渲染分辨率、物理分配率的比例对比图,假设逻辑分辨率是375*667,渲染分辨率是1125*2201,依然是大于屏幕分辨率1080*1920的,所以画面不会变模糊。此时屏幕显示的内容和缩小窗口的内容相同,但是元素的物理尺寸会更大一些。
73.步骤202:判断所述游戏画面显示请求是否为首次请求。
74.步骤203:若所述游戏画面显示请求为首次请求,则向所述用户终端获取设备参数信息。
75.步骤204:若所述游戏画面显示请求为非首次请求,则在缓存中查找所述用户终端的设备参数信息。
76.具体来说,云服务器在缓存中建有模块列表,所述模块列表是指云服务器的缓存空间开辟区域以存储数据,在配置用户终端的实际渲染参数的过程中,将用户终端的设备识别码和实际渲染参数存入模块列表中,以方便随时调用、读取。在用户终端发送游戏画面显示请求后,云服务器会在模块列表中查找用户终端的设备识别码,以此来判断所述游戏画面显示请求是否为首次请求,若为首次请求,则按照下述步骤对所述用户终端配置实际渲染参数,若为非首次请求,则直接调用模块列表中的实际渲染参数对所述用户终端进行视频渲染。
77.步骤205:所述渲染参数为分辨率,比较所述第二渲染参数是否超出所述第一渲染参数。
78.具体来说,第一渲染参数是指用户终端支持的参数信息,第二渲染参数是指云服务器支持的参数信息,若是指设备分辨率,所述渲染参数都可理解为范围值。比较第二渲染参数是否超过第一渲染参数就可以理解成两个集合进行比较。
79.例如,如图10a、10b,其中,a表示第一渲染参数,b表示第二渲染参数,图10a是第一
渲染参数包含于第二渲染参数情况示意图,图10b是第一渲染参数交叉与第二渲染参数示意图。当发生上述两种情况时,都表示第二渲染参数范围超出第一渲染参数的范围。
80.步骤206:若所述第二渲染参数未超出所述第一渲染参数,则对所述第一渲染参数进行缩放操作以确定实际渲染参数。
81.步骤207:确定缩放比例,所述第一渲染参数按照所述缩放比例缩放后小于或者等于所述第二渲染参数,将所述第一渲染参数乘以所述缩放比例,得到所述实际渲染参数。
82.步骤208:若所述第二渲染参数超出所述第一渲染参数,则确定所述第一渲染参数为实际渲染参数。
83.具体来说,当渲染参数为分辨率时,判断第二渲染参数范围是否超出第一渲染参数范围,若所述第二渲染参数未超出所述第一渲染参数,则对所述第一渲染参数进行缩放操作以确定实际渲染参数。确定缩放比例,所述第一渲染参数按照所述缩放比例缩放后小于或者等于所述第二渲染参数,将所述第一渲染参数乘以所述缩放比例,得到所述实际渲染参数。若所述第二渲染参数超出所述第一渲染参数,则确定所述第一渲染参数为实际渲染参数。
84.例如,客户端支持1440*2560(即垂直像素点1440个,水平像素点为2560个)分辨率的渲染画面,服务器支持1920*1080分辨率的画面,服务器将对客户端的分辨率进行压缩,因为客户端支持的分辨率中的水平像素点大于垂直像素点,则将水平像素点压缩至服务器支持的水平像素点1080个,垂直像素点保持与水平像素点同比例压缩,故压缩后得到的实际渲染分辨率为1920*1080。若客户端支持的分辨率为3000*1440,服务器支持的分辨率为1920*1080,则压缩后的实际分辨率为1920*921。
85.步骤209:所述渲染参数为刷新率,比较所述第二渲染参数是否超出所述第一渲染参数。
86.步骤210:若所述第二渲染参数超出所述第一渲染参数,则确定所述第一渲染参数为实际渲染参数。
87.步骤211:若所述第二渲染参数未超出所述第一渲染参数,则确定所述第二渲染参数为实际渲染参数。
88.具体来说,当渲染参数为刷新率时,判断第二渲染参数范围是否超出第一渲染参数范围,若第二渲染参数未超过第一渲染参数范围,则直接确定第一渲染参数为实际渲染参数,若第二渲染参数超过第一渲染参数,则直接确定第二渲染参数为实际渲染参数。
89.例如,客户端支持的压缩率为90hz,服务器最高支持压缩率为60hz,则实际压缩率为60hz。若客户端支持的压缩率为30hz,服务器最高支持压缩率为60hz,则实际压缩率为30hz。
90.步骤212:基于所述实际渲染参数对游戏画面进行渲染。
91.步骤213:在所述显存中对所述渲染后的游戏画面进行编码,得到编码后画面。
92.步骤214:将所述编码画面存储至所述存储器中,并将所述存储器中的所述编码画面发送至所述用户终端,以使所述用户终端对所述编码画面进行解码并显示。
93.具体的,显存中内嵌有渲染模块和编码器模块,显存中的渲染模块直接接收游戏画面的输入,渲染后直接传输至兼容格式的编码器模块,编码器模块对渲染后的游戏画面进行编码得到游戏画面编码位流,并将编码位流发送到用户终端或存储到编码位流的存储
器中,或通过存储器发送到用户终端。
94.下述为本技术系统实施例,可以用于执行本技术方法实施例。对于本技术系统实施例中未披露的细节,请参照申请方法实施例。
95.请参见图11,其示出了本技术一个示例性实施例提供的应用于云游戏的视频渲染系统的结构示意图。该应用于云游戏的视频渲染系统可以通过软件、硬件或者两者的结合实现成为系统的全部或者一部分。该应用于云游戏的视频渲染系统1包括设备信息获取模块11、渲染参数确认模块12、游戏视频渲染模块13和游戏画面编码模块14。
96.设备信息获取模块11,用于接收用户终端在运行云游戏时发送的游戏画面显示请求,获取所述用户终端的设备参数,所述设备参数信息包括所述用户终端本地支持的第一渲染参数。
97.渲染参数确认模块12,用于将所述第一渲染参数与所述云服务器最大支持的第二渲染参数进行比较,确定实际渲染参数。
98.游戏视频渲染模块13,用于基于所述实际渲染参数、对游戏画面进行渲染,得到渲染后的游戏画面。
99.游戏画面编码模块14,用于将所述渲染后的游戏画面进行编码,并发送至所述用户终端,以使所述用户终端对所述游戏画面进行解码并显示。
100.可选的,如图12所示,所述渲染参数确认模块12包括参数比较单元121、参数调整单元122和参数确认单元123。
101.参数比较单元121,用于比较所述第二渲染参数是否超出所述第一渲染参数。
102.参数调整单元122,若所述第二渲染参数未超出所述第一渲染参数,则对所述第一渲染参数进行缩放操作以确定实际渲染参数。
103.参数确认单元123,若所述第二渲染参数超出所述第一渲染参数,则确定所述第一渲染参数为实际渲染参数。
104.可选的,如图13所示,所述参数调整单元122包括比例确定单元1221、参数缩放单元1222。
105.比例确定单元1221,用于确定缩放比例,所述第一渲染参数按照所述缩放比例缩放后小于或者等于所述第二渲染参数。
106.参数缩放单元1222,用于将所述第一渲染参数乘以所述缩放比例,得到所述实际渲染参数。
107.可选的,如图14所示,所述游戏视频渲染模块13包括画面编码单元131、画面存储单元132和画面发送单元133。
108.画面编码单元131,用于在所述显存中对所述渲染后的游戏画面进行编码,得到编码画面。
109.画面存储单元132,用于将所述编码画面存储至所述存储器中。
110.画面发送单元133,用于将所述存储器中的所述编码画面发送至所述用户终端,以使所述用户终端对所述编码画面进行解码并显示。
111.可选的,如图15所示,所述应用于云游戏的视频渲染系统1,还包括:显示请求判断模块15,用于接收用户终端在运行云游戏时发送的游戏画面显示请求;判断所述游戏画面显示请求是否为首次请求;若所述游戏画面显示请求为首次请求,则
向所述用户终端获取设备参数信息;若所述游戏画面显示请求为非首次请求,则在缓存中查找所述用户终端的设备参数信息。
112.需要说明的是,上述实施例提供的应用于云游戏的视频渲染系统在执行应用于云游戏的视频渲染方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用于云游戏的视频渲染系统与应用于云游戏的视频渲染方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
113.在一个实施例中,如图16所示,特提出了一种应用于云游戏的视频渲染方法,该方法主要应用于用户终端,也可依赖于计算机程序实现,可依赖于单片机实现,也可运行于基于冯诺依曼体系的应用于云游戏的视频渲染系统上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
114.具体的,该应用于云游戏的视频渲染方法包括:步骤301:在运行云游戏时向云服务器发送游戏画面显示请求,以使所述云服务器获取所述用户终端的设备参数信息,所述设备参数信息包括所述用户终端本地支持的第一渲染参数,以使所述云服务器基于所述第一渲染参数与所述云服务器最大支持的第二渲染参数进行比较后确定实际渲染参数并基于所述实际渲染参数对游戏画面进行渲染并编码后发送至所述用户终端。
115.步骤302:接收所述云服务器发送的编码后的游戏画面,对所述游戏画面进行解码并显示。
116.其中,上述步骤可参考步骤201至步骤214,此处不再赘述。
117.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
118.请参见图17,为本技术实施例提供了一种服务器的结构示意图。如图17所示,所述服务器1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
119.其中,通信总线1002用于实现这些组件之间的连接通信。
120.其中,用户接口1003可以包括显示屏(display)、摄像头(camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
121.其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
122.其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种接口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行
实现。
123.其中,存储器1005可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图17所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及一种应用于云游戏的视频渲染方法应用程序。
124.需要说明的是:上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置和方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
125.在图17所示的服务器1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储一种应用于云游戏的视频渲染方法的应用程序,当由一个或多个处理器执行时,使得服务器执行如上述实施例中一个或多个所述的方法。
126.一种服务器可读存储介质,所述服务器可读存储介质存储有指令。当由一个或多个处理器执行时,使得服务器执行如上述实施例中一个或多个所述的方法。
127.本领域的技术人员可以清楚地了解到本技术的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(field-programmable gate array,fpga)、集成电路(integrated circuit,ic)等。
128.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
129.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
130.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
131.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
132.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
133.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
134.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(read-only memory, rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
135.以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践真理的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1