云游戏画面的显示方法及装置、系统、介质、电子设备
文献发布时间:2023-06-19 11:00:24
技术领域
本公开涉及云游戏技术领域,具体而言,涉及云游戏画面的显示方法、云游戏画面的显示装置、云游戏画面的显示系统、计算机存储介质以及电子设备。
背景技术
随着云技术的发展,越来越多的云应用出现在人们的生活中。其中,在云游戏场景下,游戏运行在云服务器端的容器中,用户登录云游戏时,会启动容器,并匹配一个与用户当前登录的客户端的显示分辨率适配的虚拟机进行游戏画面的渲染,以实现云游戏画面的显示适配。
由于云服务器端的容器的启动会消耗计算资源,所以云游戏服务器有缓存策略,即用户所启动的容器对应的虚拟机在用户下线后在云游戏服务端会被保留一定时间。正因如此,当同一个用户在缓存时间内切换了具有不同显示分辨率的客户端再次登录同一个云游戏时,由于使用的是缓存中的与上次登录的客户端的显示分辨率匹配的虚拟机进行游戏画面的渲染,因此,会存在渲染分辨率和显示分辨率不相同的情况。
在渲染分辨率和显示分辨率不相同且渲染分辨率的宽高比和显示分辨率的宽高比的比例不一致时,如果在显示分辨率下全屏显示渲染分辨率所对应的游戏画面,会出现游戏画面的拉伸变形,进而影响画面显示的质量和显示的准确性。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种云游戏画面的显示方法、用云游戏画面的显示系统、云游戏画面的显示装置、计算机存储介质、以及电子设备,进而能够提高云游戏画面的显示准确性。
根据本公开的一个方面,提供一种云游戏画面的显示方法,包括:
响应于目标客户端的云游戏启动操作,获取所述云游戏的目标云游戏标识和所述目标客户端的目标显示分辨率;在云游戏虚拟机的渲染分辨率和所述目标显示分辨率不一致时,获取所述云游戏虚拟机所渲染的游戏画面中的目标游戏场景元素和所述目标游戏场景元素对应的第一画面显示信息;根据所述目标云游戏标识,在预先存储的各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的所述关键帧中的第二画面显示信息中,确定出目标画面显示信息;根据所述目标画面显示信息调整所述第一画面显示信息,以使所述目标客户端显示目标游戏画面。
根据本公开的一个方面,提供一种云游戏画面的显示系统,包括:
云游戏画面渲染子系统,用于根据与目标客户端的用户标识对应的云游戏虚拟机渲染游戏画面;分辨率调整子系统,用于对所述游戏画面进行分辨率调整,以确定目标云游戏画面;云游戏画面显示子系统,用于显示所述目标游戏画面;其中,所述分辨率调整子系统根据上述的云游戏画面的显示方法对所述云游戏画面进行分辨率调整,以确定目标游戏画面。
根据本公开的一个方面,提供一种云游戏画面的显示装置,包括:
信息获取模块,被配置为响应于目标客户端的云游戏启动操作,获取所述云游戏的目标云游戏标识和所述目标客户端的目标显示分辨率;
第一画面显示信息获取模块,被配置为在云游戏虚拟机的渲染分辨率和所述目标显示分辨率不一致时,获取所述云游戏虚拟机所渲染的游戏画面中的目标游戏场景元素和所述目标游戏场景元素对应的第一画面显示信息;目标画面显示信息确定模块,被配置为根据所述目标云游戏标识,在预先存储的各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的所述关键帧中的第二画面显示信息中,确定出目标画面显示信息;游戏画面调整模块,被配置为根据所述目标画面显示信息调整所述第一画面显示信息,以使所述目标客户端显示目标游戏画面。
在本公开的一种示例性实施例中,所述云游戏画面的显示装置还包括第二画面显示信息存储模块,该第二显示信息存储模块通过以下方式预先存储第二画面显示信息:
响应于任意客户端的云游戏启动操作,获取所述云游戏的云游戏标识和所述客户端的显示分辨率;
在云游戏虚拟机的渲染分辨率和所述客户端的显示分辨率一致时,获取所述客户端显示的游戏画面对应的视频流中的关键帧;
对所述关键帧进行图像识别,以确定所述关键帧中的游戏场景元素和第二画面显示信息;
根据所述云游戏标识,将所述客户端的显示分辨率与其对应的所述关键帧中的游戏场景元素标识和所述第二画面显示信息存储至预设存储空间中;
其中,所述第二画面显示信息包括所述关键帧中的游戏场景元素在对应的所述关键帧中的画面显示信息。
在本公开的一种示例性实施例中,所述第二画面显示信息存储模块,还通过以下方式预先存储第二画面显示信息:
在云游戏虚拟机的渲染分辨率和所述客户端的显示分辨率不一致时,获取所述云游戏虚拟机所渲染的游戏画面所对应的视频流中的关键帧;
对所述关键帧进行图像识别,以确定所述关键帧中的游戏场景元素和第二画面显示信息;
根据所述云游戏标识,将所述渲染分辨率与其对应的所述关键帧中的游戏场景元素标识和所述第二画面显示信息存储至预设存储空间中;
其中,所述第二画面显示信息包括所述关键帧中的游戏场景元素在对应的所述关键帧中的画面显示信息。
在本公开的一种示例性实施例中,所述目标画面显示信息确定模块还通过以下方式预先存储第二画面显示信息:
基于相同的所述云游戏标识和相同的所述客户端的显示分辨率,将所述关键帧中的游戏场景元素标识和所述预设存储空间中已存储的各关键帧中的游戏场景元素标识进行匹配;
在匹配不成功时,将所述客户端的显示分辨率与其对应的所述关键帧中的游戏场景元素标识和所述第二画面显示信息存储至预设存储空间中;
在匹配成功时,确定与所述关键帧匹配成功的所述已存储的各关键帧对应的第二画面显示信息和所述关键帧对应的第二画面显示信息是否相同,如果不相同,则将所述客户端的显示分辨率与其对应的所述关键帧中的游戏场景元素标识和所述第二画面显示信息存储至预设存储空间中。
在本公开的一种示例性实施例中,所述目标画面显示信息确定模块通过以下方式确定出目标显示信息:
在所述预设存储空间中,确定出所述目标云游戏标识对应的云游戏的不同分辨率的关键帧;
在所述不同分辨率的关键帧中,确定所述目标显示分辨率对应的各关键帧为候选关键帧;
根据所述候选关键帧中的游戏场景元素和所述目标游戏场景元素的匹配关系,确定出目标画面显示信息。
在本公开的一种示例性实施例中,所述目标画面显示信息确定模块通过以下方式根据所述候选关键帧中的游戏场景元素和所述目标游戏场景元素的匹配关系,确定出目标画面显示信息:
将各所述候选关键帧中的游戏场景元素标识和目标游戏场景元素标识进行匹配,确定匹配成功的所述候选关键帧为目标关键帧;
获取所述目标关键帧中的各游戏场景元素在所述目标关键帧中的第二画面显示信息;
根据所述第二画面显示信息,确定出所述目标游戏场景元素在所述目标显示分辨率所对应的游戏画面中的目标画面显示信息。
在本公开的一种示例性实施例中,上述的目标画面显示信息模块通过以下方式确定目标关键帧:
在多个所述候选关键帧中的游戏场景元素标识和所述目标游戏场景元素标识匹配成功时,获取匹配成功的各所述候选关键帧中的游戏场景元素在其对应的所述候选关键帧中的第二画面显示信息;
针对每个匹配成功的所述候选关键帧,确定所述第二画面显示信息和所述第一画面显示信息之间的差异值;
确定所述差异值最小的所述候选关键帧为所述目标关键帧。
在本公开的一种示例性实施例中,所述游戏画面调整模块通过以下方式所述根据所述目标画面显示信息调整所述第一画面显示信息,以使所述目标客户端显示目标云游戏画面:
调整所述云游戏虚拟机渲染的游戏画面的尺寸至所述目标显示分辨率,确定尺寸调整后的所述第一画面显示信息对应的待替换画面显示信息;
将所述待替换画面显示信息替换为所述目标画面显示信息,以使所述目标客户端显示目标游戏画面。
在本公开的一种示例性实施例中,所述云游戏画面的显示装置还包括显示内容调整模块,该显示内容调整模块被配置为:
在所述目标客户端的显示屏幕包括非显示区域时,根据所述非显示区域的尺寸确定出所述目标客户端的目标显示分辨率;
将所述待替换画面显示信息替换为所述目标画面显示信息后,获取所述非显示区域的待显示内容对应的待显示坐标;
根据所述非显示区域的尺寸和所述待显示坐标偏移所述待显示内容,以使所述目标客户端显示所述待显示内容偏移后的所述目标游戏画面。
在本公开的一种示例性实施例中,所述显示内容调整模块通过以下方式获取所述非显示区域的待显示内容对应的待显示坐标:
将所述待显示内容和预设显示内容进行匹配;
在所述待显示内容与所述预设显示内容匹配成功时,获取所述非显示区域的待显示内容对应的待显示坐标。
在本公开的一种示例性实施例中,所述第一画面显示信息包括所述目标游戏场景元素在所述渲染分辨率对应的游戏画面中的显示坐标、像素数量和颜色空间值;所述第二画面显示信息包括所述游戏场景元素在对应的不同分辨率的关键中的显示坐标、像素数量和颜色空间值。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本公开的一个方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
根据本公开的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开示例性实施例所提供的游戏画面的显示方法中,首先,响应于目标客户端的云游戏启动操作,获取云游戏的目标云游戏标识和目标客户端的目标显示分辨率;其次,在云游戏虚拟机的渲染分辨率和目标显示分辨率不一致时,获取云游戏虚拟机所渲染的游戏画面中的目标游戏场景元素和目标游戏场景元素在云游戏虚拟机所渲染的游戏画面中的第一画面显示信息;然后,根据获取的目标云游戏标识,在预先存储的各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的关键帧的第二画面显示信息中,确定目标游戏场景元素的目标画面显示信息;最后,根据目标画面显示信息调整第一画面显示信息,以使目标客户端显示目标游戏画面。从而实现了云游戏中的游戏画面的分辨率适配显示,由于采用的是预先存储的目标游戏场景元素在目标显示分辨率下的正常画面显示信息进行适配,因此,在适配的同时不会出现游戏场景元素的拉伸变形或屏幕中的游戏画面的两侧具有空白区域,进而保证了客户端画面显示的准确性和客户端屏幕的显示区域的充分利用,提高了云游戏画面显示的质量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本公开实施例的一种云游戏画面的显示方法及装置的示例性系统架构的示意图。
图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
图3示意性示出了根据本公开的一个实施例的云游戏画面的显示方法的流程图。
图4示意性示出了根据本公开的一个实施例中预先存储第二画面显示信息的方法的流程图。
图5示意性示出了根据本公开的一个实施例中的将第二画面显示信息存储至预设存储空间的方法的流程图。
图6示意性示出了根据本公开的一个实施例中确定出目标画面显示信息的方法的流程图。
图7示意性示出了根据本公开的一个实施例中确定目标关键帧的方法的流程图。
图8示意性示出了根据本公开的一个实施例中根据目标画面显示信息调整第一画面显示信息的方法的流程图。
图9示意性示出了根据本公开的一个实施例中对客户端的屏幕中被遮挡的显示内容进行处理的方法的流程图。
图10示意性示出了根据本公开的一个实施例中的云游戏画面的显示系统的结构框图。
图11示意性示出了根据本公开的一个实施例中的分辨率调整子系统的结构框图。
图12示意性示出了根据本公开的一个实施例的云游戏画面的显示装置的框图。
图13示意性示出了根据本公开的一个实施例的分布式系统应用于区块链系统的结构示意图。
图14示意性示出了根据根公开的一个实施例提供的区块结构的示意图。
图15示意性示出了根据本公开的一个实施例提供的云游戏画面的显示方法的可选应用模式示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术并变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如游戏网站、视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
目前,云技术在很多领域已经有了广泛的应用,云游戏便是云技术的应用产物之一。云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
目前的云游戏服务器架构主要包括x86和ARM,同时可以通过GPU(GraphicsProcessing Unit,图形处理器)对游戏过程进行加速。在云游戏中,可以通过虚拟化技术将物理服务器虚拟化成多个容器,每个容器中都可以运行一个游戏。
在云游戏场景下,游戏运行在云服务器端的容器中,用户登录云游戏时,会启动容器,然后匹配一个与用户当前登录的客户端的显示分辨率适配的虚拟机进行游戏画面的渲染,以实现云游戏画面的显示适配。
由于云服务器端的容器的启动会消耗计算资源,所以云游戏服务器有缓存策略,即用户所启动的容器对应的虚拟机在用户下线后在云游戏服务端会被保留一定时间。正因如此,当同一个用户在缓存时间内切换了具有不同显示分辨率的客户端再次登录同一个云游戏时,由于使用的是缓存中的与上次登录的客户端的显示分辨率匹配的虚拟机进行游戏画面的渲染,因此,会存在渲染分辨率和显示分辨率不相同的情况。
在渲染分辨率和显示分辨率不相同时,如果在显示分辨率下全屏显示渲染分辨率所对应的游戏画面,相关技术中,会使用拉伸来填充全屏幕,拉伸时根据客户端的分辨率计算拉伸比例,如果渲染分辨率的宽高比和显示分辨率的宽高比的比例不一致,会导致空白区域。例如,虚拟机的渲染分辨率是720*1280(9:16),而客户端的显示分辨率是1080*2160(9:18),在客户端游戏画面会按比例(9:16)放大到1080*1920(9:16),由于放大后的画面高度和手机的高度不一致,即2160-1920=240,结果会造成画面两侧有空白区域,从而未能充分有效的利用客户端屏幕的显示区域。
如果充分利用客户端的显示尺寸,将720*1280放大到1080*2160,由于宽度方向的拉伸和高度方向的拉伸不成比例,所以会出现游戏画面的拉伸变形,进而影响游戏画面的显示质量和显示准确性。
为了解决上述问题,本公开提出了一种云游戏画面的显示方法及装置,该方法及装置可以应用于图1所示的示例性应用环境的系统架构中。
参考图1,图1示出了可以应用本公开实施例的一种云游戏画面的显示方法及装置、的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103、104中的一个或多个,网络105和服务器106。网络105用以在终端设备101、102、103、104和服务器106之间提供通信链路的介质。网络105可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103、104可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器106可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
本公开实施例所提供的云游戏画面的显示方法可以在服务器106执行,相应地,云游戏画面的显示装置一般设置于服务器106中。
举例而言,在一种示例性实施例中,可以是用户在终端设备101、102、103或者104上登录并启动某个云游戏。上述服务器106可以响应于用户在终端设备101、102、103或者104上的云游戏启动操作,获取终端设备登录的云游戏的云游戏标识和终端设备的显示分辨率。然后,将终端设备的显示分辨率和云游戏服务器中启动的云游戏虚拟机的渲染分辨率进行对比,在二者不一致时,对云游戏虚拟机所渲染的游戏画面进行分辨率的调整,在二者一致时,则不做其他处理,以使对应的终端设备显示与其显示分辨率匹配的游戏画面。本领域技术人员容易理解的是,上述应用场景仅是用于举例,本示例性实施例中并不以此为限。
图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图2所示,计算机系统200包括中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从存储部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有系统操作所需的各种程序和数据。CPU201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本公开的方法和装置中限定的各种功能。
图3示出本公开一示例性实施例中的云游戏画面的显示方法的流程示意图。参考图3,该方法可以包括以下步骤:
步骤S310,响应于目标客户端的云游戏启动操作,获取云游戏的目标云游戏标识和目标客户端的目标显示分辨率;
步骤S320,在云游戏虚拟机的渲染分辨率和目标显示分辨率不一致时,获取云游戏虚拟机所渲染的游戏画面中的目标游戏场景元素和目标游戏场景元素对应的第一画面显示信息;
步骤S330,根据目标云游戏标识,在预先存储的各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的所述关键帧中的第二画面显示信息中,确定目标画面显示信息;
步骤S340,根据目标画面显示信息调整所述第一画面显示信息,以使目标客户端显示目标游戏画面。
在本公开示例性实施例所提供的游戏画面的显示方法中,首先,响应于目标客户端的云游戏启动操作,获取云游戏的目标云游戏标识和目标客户端的目标显示分辨率;其次,在云游戏虚拟机的渲染分辨率和目标显示分辨率不一致时,获取云游戏虚拟机所渲染的游戏画面中的目标游戏场景元素和目标游戏场景元素在云游戏虚拟机所渲染的游戏画面中的第一画面显示信息;然后,根据获取的目标云游戏标识,在预先存储的各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的关键帧的第二画面显示信息中,确定目标游戏场景元素的目标画面显示信息;最后,根据目标画面显示信息调整第一画面显示信息,以使目标客户端显示目标游戏画面。从而实现了云游戏中的游戏画面的分辨率适配显示,由于采用的是预先存储的目标游戏场景元素在目标显示分辨率下的正常画面显示信息进行适配,因此,在适配的同时不会出现游戏场景元素的拉伸变形或屏幕中的游戏画面两侧具有空白区域,进而保证了客户端画面显示的准确性和客户端品目的显示区域的充分利用,提高了云游戏画面显示的质量。
此外,在下述的进一步改进方案中,还对显示屏幕中被遮挡的显示内容进行了偏移处理,以使被遮挡的关键游戏数据可以显示在屏幕中,从而进一步改善云游戏画面的显示准确性和显示质量。
下面,在另一实施例中,对上述步骤进行更加详细的说明。
在步骤S310中,响应于目标客户端的云游戏启动操作,获取云游戏的目标云游戏标识和目标客户端的目标显示分辨率。
在本示例性的实施方式中,目标显示分辨率为目标客户端的实体屏幕上显示的像素个数,例如分辨率360*240的意思是水平方向含有像素个数为360个,垂直方向像素个数为240个。其中,目标客户端可以包括上述的图1中的任意的终端设备。
其中,目标客户端的实体屏幕可以包括刘海屏、折叠屏和无刘海非折叠的全面屏以及曲面屏等任意的实体屏幕。在客户端的实体屏幕是刘海屏时,目标显示分辨率为刘海尺寸和去除刘海后的尺寸的叠加。例如,刘海屏中的刘海高度为60,去除刘海后的分辨率是1400*960。那么当前刘海屏需要全面展示出来的分辨率就是1460*960。在客户端的屏幕是折叠屏时,目标显示分辨率可以包括折叠屏折叠后的显示屏幕的分辨率,也可以包括折叠屏打开后的显示屏幕的分辨率。在客户端的实体屏幕是曲面屏时,目标显示分辨率为曲面区域的分辨率加上屏幕非曲面区域的分辨率。
示例性的,用户可以在客户端通过用户标识登录任意的云游戏,并启动对应的云游戏。用户在客户端启动云游戏后,客户端可以和客户端服务器建立长连接,保持数据通信,并将当前登录的用户标识、启动的云游戏标识、当前登录的客户端的显示分辨率、当前登录的客户端的设备型号等基础数据信息发送给客户端服务器。同时,客户端服务器会监听云游戏服务器的指令信息,比如:用户时长不够、用户网络异常、云游戏设备(云游戏虚拟机或云游戏容器)异常等等,并根据监听到的指令进行对应的业务处理。
客户端服务器接收到客户端发送的基础数据信息后,可以将该基础数据信息发送给云游戏服务器,从而使云游戏服务器获取到包括当前客户端登录的云游戏标识和当前客户端的显示分辨率在内的基础数据信息。
云游戏服务器接收到客户端的基础数据信息后,可以根据基础数据信息中的用户标识在云游戏服务器的缓存中查询是否有与当前用户标识匹配的云游戏虚拟机。如果有,则直接使用缓存中的云游戏虚拟机进行此次云游戏过程中的游戏画面的渲染;如果没有,则需要根据云游戏标识启动对应的云游戏容器,并匹配与当前客户端的显示分辨率适配的云游戏虚拟机,以使用该云游戏虚拟机进行此次云游戏过程中的游戏画面的渲染。
接下来,在步骤S320中,在云游戏虚拟机的渲染分辨率和目标显示分辨率不一致时,获取云游戏虚拟机所渲染的游戏画面中的目标游戏场景元素和目标游戏场景元素对应的第一画面显示信息。
在本示例性实施例中,渲染分辨率为云游戏虚拟机对应的虚拟屏幕上显示的像素个数。云游戏虚拟机可以包括启动云游戏的容器后,目标客户端或目标客户端所登录的用户标识所匹配的云游戏虚拟机。
游戏场景可以是游戏中的人和物所处的环境,游戏场景通常是由游戏开发设计人员构建的3D虚拟场景,而非真实世界场景。游戏场景元素即为游戏场景中的人和物,如游戏角色、地面、天空、水、山、花、草、树、石头、鸟、兽、虫、鱼、车辆、房屋等元素。对游戏场景的渲染过程,即为将3D的游戏场景转换成2D图像的过程。目标游戏场景元素可以包括云游戏虚拟机当前渲染的游戏画面中包括的游戏场景元素。
本公开示例性的实施方式中,第一画面显示信息包括各目标游戏场景元素在云游戏虚拟机所渲染的游戏画面中的画面显示信息。具体的,第一画面显示信息包括目标游戏场景元素在云游戏虚拟机的渲染分辨率对应的游戏画面中的显示坐标、像素数量和颜色空间值。例如,渲染分辨率是360*240,目标游戏场景元素有树和房屋。第一画面显示信息可以包括树和房屋在360*240的虚拟屏幕中的显示坐标、所占的像素数量和每个显示坐标对应的颜色空间值。
示例性的,可以判断目标显示分辨率和云游戏服务器中所启动的与目标客户端的用户标识对应的云游戏虚拟机的渲染分辨率是否一致。其中,目标显示分辨率和渲染分辨率一致包括目标显示分辨率和渲染分辨率宽高比相同,例如都是9:16。目标显示分辨率和渲染分辨率不一致包括目标显示分辨率和渲染分辨率的宽高比不相同。
如果目标显示分辨率和渲染分辨率相同,则可以将云游戏虚拟机渲染的游戏画面以视频流的形式发送给目标客户端,以在目标客户端进行显示,如果不相同但宽高比相同,则可以根据比例进行拉伸或缩小。如果不一致,则可以获取云游戏虚拟机所渲染的游戏画面中的目标游戏场景元素和第一画面显示信息,根据后续的步骤S330至步骤S340对云游戏虚拟机渲染的游戏画面进行分辨率调整,将调整后的游戏画面发送给目标客户端进行显示。
继续参考图3,在步骤S330中,根据目标云游戏标识,在预先存储的各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的关键帧中的第二画面显示信息中,确定出目标画面显示信息。
在本公开中,关键帧又称为I帧(Intra coded frames),在视频流编码中,I帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。I帧使用帧内压缩,不使用运动补偿,由于I帧不依赖其它帧,所以是随机存取的入点,同时是解码的基准帧。
在示例性的实施方式中,第二画面显示信息可以包括游戏画面的关键帧中的游戏场景元素在对应的不同分辨率的关键帧中的显示坐标、像素数量和颜色空间值。目标画面显示信息包括目标游戏场景元素在目标显示分辨率所对应的游戏画面中的画面显示信息。具体的,可以包括目标游戏场景元素在目标显示分辨率对应的游戏画面中全屏无空白区域且不拉伸显示(即正常全屏显示)时的显示坐标、像素数量和颜色空间。
示例性的,可以在任意的客户端登录并启动云游戏后,获取当前云游戏运行过程中,云游戏的虚拟机所渲染的游戏画面所对应的视频流的关键帧中的游戏场景元素在关键帧中的画面显示信息,通过该画面显示信息以预先存储各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的关键帧中的第二画面显示信息。由于不同的客户端具有不同的显示分辨率,因此,可以获取到不同显示分辨率对应的游戏画面的关键帧中的游戏场景元素在对应的关键帧中的第二画面显示信息。
图4示意性示出了根据本公开的一个实施例中预先存储第二画面显示信息的方法的流程图。参考图4,该方法可以包括步骤S410至步骤S440。其中:
在步骤S410中,响应于任意客户端的云游戏启动操作,获取云游戏的云游戏标识和客户端的显示分辨率。
在示例性的实施方式中,任意客户端包括上述的目标客户端。
示例性的,对于步骤S410中的任意客户端中的任一客户端而言,步骤S410的具体实施方式和上述的步骤S310中的获取云游戏的目标云游戏标识和客户端的目标显示分辨率的具体实施方式相同,此处不再进行赘述。
接下来,在步骤S420中,在云游戏虚拟机的渲染分辨率和客户端的显示分辨率一致时,获取客户端显示的游戏画面对应的视频流中的关键帧。
在示例性的实施方式中,云游戏虚拟机的渲染分辨率和客户端的显示分辨率一致包括渲染分辨率和客户端的显示分辨率的宽高比相同。当然,云游戏虚拟机的渲染分辨率和客户端的显示分辨率一致也可以是渲染分辨率和客户端的显示分辨率完全相同,例如,都是360*240。本示例性实施方式对此不做特殊限定。
示例性的,获取到客户端的显示分辨率后,可以将客户端的显示分辨率的宽高比和当前云游戏的云游戏虚拟机的渲染分辨率的宽高比进行对比。如果相同,则获取此次游戏过程中,客户端显示的游戏画面对应的视频流中的关键帧。
在步骤S430中,对关键帧进行图像识别,以确定关键帧中的游戏场景元素和第二画面显示信息。
在示例性的实施方式中,第二画面显示信息包括关键帧中的游戏场景元素在对应的关键帧中的画面显示信息。具体的,画面显示信息可以包括各游戏场景元素在对应的关键帧中的显示坐标、所占的像素数量、每个显示坐标对应的颜色空间值等信息。
示例性的,可以通过图像识别技术对关键帧进行图像识别,以确定关键帧中包括的游戏场景元素和各游戏场景元素在对应的关键帧中的画面显示信息。
接下来,在步骤S440中,根据云游戏标识,将客户端的显示分辨率与其对应的关键帧中的游戏场景元素标识和第二画面显示信息存储至预设存储空间中。
示例性的,识别出关键帧中的游戏场景元素和各游戏场景元素在对应的关键帧中的第二画面显示信息后,可以根据云游戏标识,将客户端的显示分辨率与其对应的关键帧中的游戏场景元素标识和第二画面显示信息存储至预设存储空间中。
图5示意性示出了根据本公开的一个实施例中的将第二画面显示信息存储至预设存储空间的方法的流程图。参考图5,该方法可以包括步骤S510至步骤S510至步骤S560。
在步骤S510中,基于相同的云游戏标识和相同的客户端的显示分辨率,将关键帧中的游戏场景元素标识和预设存储空间中已存储的各关键帧中的游戏场景元素标识进行匹配。
示例性的,可以将识别的关键帧中的游戏场景元素标识和预设存储间中已存储的具有相同的云游戏标识和相同的客户端的显示分辨率对应的各关键帧中的游戏场景元素标识进行匹配。以根据匹配结果确定是否将识别的该关键帧对应的游戏场景元素标识和第二画面显示信息存储至预设存储空间中。
具体的,在步骤S520中,判断关键帧中的游戏场景元素标识和预设存储空间中已存储的各关键帧中的游戏场景元素标识是否匹配成功。若匹配不成功,则转至步骤S530,若匹配成功,则转至步骤S540。
在步骤S530中,根据云游戏标识,将客户端的显示分辨率与其对应的所述关键帧中的游戏场景元素标识和第二画面显示信息存储至预设存储空间中。
举例而言,如果匹配不成功,则表明预设存储空间中没有存储过该客户端显示分辨率下的当前云游戏画面的关键帧对应第二画面显示信息,则可以将该关键帧包括的游戏场景元素标识和对应的第二画面显示信息存储至预设存储空间中,以在其它具有相同显示分辨率的客户端进行该游戏画面的分辨率调整适配。
在步骤S540中,判断与所述关键帧匹配成功的已存储的各关键帧对应的第二画面显示信息和所述关键帧对应的第二画面显示信息是否相同。如果不相同,则转至步骤S550,如果相同,则转至步骤S560。
在步骤S550中,根据云游戏标识,将所述客户端的显示分辨率与其对应的所述关键帧中的游戏场景元素标识和所述第二画面显示信息存储至预设存储空间中。
在步骤S560中,对该关键帧对应的游戏场景元素标识和第二画面显示信息不进行存储处理。
举例而言,若关键中的云游戏场景元素标识和预设存储空间中已存储的各关键帧中的游戏场景元素标识是否匹配成功,还需要进一步判断识别出的关键帧中的游戏场景元素在关键帧中的第二画面显示信息和匹配成功的已存储过的各关键帧中的第二画面显示信息是否形同。如果相同,则表明预设存储空间中已经存储过该云游戏该分辨率下该游戏画面的关键帧中的游戏场景元素在该关键帧中的第二画面显示信息,无需重复存储;如果不相同,则表明预设存储空间中没有存储过该云游戏该分辨率下该游戏画面的关键帧中的游戏场景元素在该关键帧中的第二画面显示信息,则可以将关键帧包括的游戏场景元素标识和各游戏场景元素在该关键帧中第二画面显示信息存储至预设存储空间中,以在其他具有相同显示分辨率的客户端进行该游戏画面的分辨率调整适配。
通过上述的步骤S410至步骤S440,可以预先存储各云游戏不同分辨率下的各关键帧中包括的游戏场景元素的第二画面显示信息至预设存储空间,从而在需要进行渲染分辨率和显示分辨率的适配调整时,可以根据预设存储空间中预先存储的各第二画面显示信息进行适配调整。
需要说明的是,由于各第二画面显示信息是从不同分辨率的客户端的实体屏幕所显示的游戏画面中识别获取的,且实体屏幕和云游戏的虚拟机的虚拟屏幕的分辨率一致,因此,各第二画面显示信息不存在拉伸变形或在屏幕中显示时具有空白区域的情况。
示例性的,上述的步骤S410至步骤S440,是在虚拟机的渲染分辨率和客户端的显示分辨率一致时,对虚拟机渲染的云游戏画面的视频流中的关键帧进行图像识别,以预先存储不同分辨率下的关键帧中的游戏场景元素在对应的关键帧中的第二画面显示信息。其对应的场景是,在用户登录云游戏时,为用户登录的客户端匹配了和用户登录的客户端的显示分辨率匹配的云游戏虚拟机,以进行此次游戏过程中的游戏画面的渲染,此时虚拟机的渲染分辨率和客户端的显示分辨率一致。
在另一种场景中,在用户下线切换客户端(切换后的客户端的显示分辨率和下线前登录的客户端的显示分辨率不一致)并在缓存时间内再次登录同一个云游戏后,如前所述,由于云游戏服务器的缓存机制,此次云游戏过程中,虚拟机的渲染分辨率和客户端的显示分辨率不一致。此时,由于虚拟机所渲染的游戏画面与虚拟机虚拟屏幕的分辨率一致,因此,虚拟机在渲染分辨率下直接渲染的游戏画面对应的视频流中的关键帧中各游戏场景元素在渲染分辨率下的画面显示信息是没有被拉伸变形且在渲染分辨率对应的虚拟屏幕中不存在空白显示区域。
所以,在云游戏虚拟机的渲染分辨率和所述客户端的显示分辨率不一致时,可以获取云游戏虚拟机所渲染的游戏画面所对应的视频流中的关键帧;对关键帧进行图像识别,以确定关键帧中的游戏场景元素和第二画面显示信息;根据云游戏标识,将渲染分辨率与其对应的关键帧中的游戏场景元素标识和第二画面显示信息存储至预设存储空间中;其中,第二画面显示信息包括关键帧中的游戏场景元素在对应的所述关键帧中的画面显示信息。
通过在渲染分辨率和显示分辨率不一致时,存储渲染分辨率与其对应的关键帧中的游戏场景元素标识和第二画面显示信息,可以提高预先存储的不同分辨率的关键帧对应的第二画面显示信息的丰富性,提高不同分辨率对应的游戏画面的适配性能。
例如,用户A当前进行游戏登录的客户端的显示分辨率是分辨率1,但此次登录中为用户A分配的是缓存中用户A上次使用分辨率2的客户端登录云游戏时与分辨率2匹配的云游戏虚拟机,分辨率1和分辨率2不一致。即用户A当前进行游戏的客户端的显示分辨率是分辨率1,云游戏虚拟机的渲染分辨率是分辨率2。但用户A是云游戏1中游戏进度最快的玩家,其目前在云游戏1中通关到第50关。因此,可以将用户A此次游戏过程中,云游戏虚拟机渲染的游戏画面对应的关键帧的第二画面显示信息存储下来,当其它用户使用与分辨率2一致的客户端登录云游戏时,可以使用该第二画面显示信息为其它用户进行游戏画面显示的分辨率调整适配。
预先存储了各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的关键帧中的第二画面显示信息,在任意用户登录并启动云游戏后,如果该用户对应的云游戏虚拟机的渲染分辨率和该用户当前登录的客户端的显示分辨率不一致时,则可以根据步骤S310中获取的目标云游戏标识,在预先存储的各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的关键帧中的第二画面显示信息中,确定出目标游戏场景元素的目标画面显示信息,以根据目标画面显示信息对云游戏虚拟机渲染的游戏画面进行分辨率调整,从而实现在客户端的屏幕中的显示适配。
示例性的,图6示意性示出了根据本公开的一个实施例中确定出目标画面显示信息的方法的流程图。参考图6,该方法可以包括步骤S610至步骤S610至步骤S630。其中:
在步骤S610中,在预设存储空间中,确定出目标云游戏标识对应的云游戏的不同分辨率的关键帧。
示例性的,可以根据步骤S310中获取的目标云游戏标识,在预设存储空间中,确定出目标云云游戏标识对应的云游戏的不同分辨率对应的关键帧。其中,每种分辨率对应至少一个关键帧。
接下来,在步骤S620中,在不同分辨率的关键帧中,确定目标显示分辨率对应的各关键帧为候选关键帧。
示例性的,可以在云游戏标识对应的不同分辨率的关键帧中,查询目标显示分辨率对应的关键帧,并将该关键帧确定为候选关键帧。
在步骤S630中,根据候选关键帧中的游戏场景元素和目标游戏场景元素的匹配关系,确定出目标游戏场景元素的目标画面显示信息。
示例性的,步骤S630的具体实施方式可以是,将各候选关键帧中的游戏场景元素标识和目标游戏场景元素标识进行匹配,确定匹配成功的候选关键帧为目标关键帧;获取目标关键帧中的各游戏场景元素在目标关键帧中的第二画面显示信息;根据第二画面显示信息,确定出目标游戏场景元素在目标显示分辨率所对应的游戏画面中的目标画面显示信息。
其中,当候选关键帧中包括的游戏场景元素标识和目标游戏场景元素标识完全相同时,则匹配成功。当然,也可以使用模糊匹配的方法,本示例性实施方式对此不做特殊限定。例如,候选关键帧中包括游戏场景元素标识1、2、35、8;在目标游戏场景元素标识包括1、2、35、8时,则匹配成功,也可以是目标游戏场景元素标识包括1、2、35、8中的至少3个时,则匹配成功。
举例而言,候选关键帧为目标云游戏标识对应的云游戏在目标显示分辨率下的各关键帧,在候选关键帧中可以找到与目标游戏场景元素标识匹配的候选关键帧为目标关键帧,将目标关键帧中的各游戏场景元素在目标关键帧中的第二画面显示信息确定为目标画面显示信息。
示例性的,由于在同一个云游戏中,相同分辨率对应的不同的关键帧所包括的游戏场景元素可能完全相同,但各游戏场景元素在关键帧的显示位置不同,即存在多个候选关键帧中的游戏场景元素标识和目标游戏场景元素标识匹配成功的情况。针对这种情况,需要进行特殊处理,以确定出目标关键帧。
示例性的,图7示出了本公开的一个实施例中在多个候选关键帧中的游戏场景元素标识和目标游戏场景元素标识匹配成功时,确定目标关键帧的方法的流程图。参考图7,该方法可以包括步骤S710至步骤S730。其中:
在步骤S710中,获取匹配成功的各候选关键帧中的游戏场景元素在其对应的候选关键帧中的第二画面显示信息;
在步骤S720中,针对每个匹配成功的候选关键帧,确定第二画面显示信息和第一画面显示信息之间的差异值;
在步骤S730中,确定差异值最小的所述候选关键帧为目标关键帧。
举例而言,在多个候选关键帧中的游戏场景元素标识和目标游戏场景标识匹配成功时,针对每个匹配成功的候选关键帧,确定其包括的游戏场景元素在该候选关键帧中的第二画面显示信息和目标游戏场景元素在云游戏虚拟机所渲染的游戏画面中的第一画面显示信息之间的差异值。确定差异值最小的候选关键帧为目标关键帧。
具体的,对于各匹配成功的候选关键帧,可以将互相匹配的各游戏场景元素标识对应的第一画面显示信息和第二画面显示信息之间的差异值进行平均,取差异值的平均值最小的匹配成功的候选关键帧为目标关键帧。
例如,目标游戏场景元素标识包括:1、2、5、8、9,候选关键帧1和候选关键帧2中包括的游戏场景元素标识也是1、2、5、8、9。针对候选关键帧1而言,可以分别对应的计算游戏场景元素标识1、2、5、8、9的第一画面显示信息和候选关键帧1对应的第二画面显示信息的差异,会得到游戏场景元素标识1、2、5、8、9对应的差异值,将1、2、5、8、9对应的差异值进行平均,即为第一画面显示信息和候选关键帧1的第二画面显示信息之间的差异值。针对候选关键帧2与候选关键帧1计算差异值的方式相同,此处不再进行赘述。
需要说明的是,在针对每个匹配成功的所述候选关键帧,确定所述第二画面显示信息和所述第一画面显示信息之间的差异值时,可以使用第一画面信息中的显示坐标的差异作为第二画面显示信息和第一画面显示信息的差异值。
通过上述的步骤S710至步骤S730,可以在多个候选关键帧中的游戏场景元素标识和目标游戏场景元素标识匹配成功时,确定目标关键帧。
确定出目标关键帧后,可以将目标关键帧中游戏场景元素在目标关键帧中的第二画面显示信息对应的确定为各目标游戏场景元素在目标显示分辨率对应的游戏画面中的目标画面显示信息。
继续参考图3,在步骤S340中,根据目标画面显示信息调整所第一画面显示信息,以使目标客户端显示目标游戏画面。
示例性的,图8示意性示出了根据本公开的一个实施例中根据目标画面显示信息调整第一画面显示信息的方法的流程图。参考图8,该方法可以包括步骤S810至步骤S820。其中:
在步骤S810中,调整云游戏虚拟机渲染的游戏画面的尺寸至所述目标显示分辨率,确定尺寸调整后的第一画面显示信息对应的待替换画面显示信息。
示例性的,可以先将云游戏虚拟机渲染的游戏画面的尺寸调整至目标显示分辨率。具体的,可以根据渲染分辨率和目标显示分辨率的宽之比和高之比分别将渲染分辨率的宽调整至目标显示分辨率的宽,将渲染分辨率的高调整至目标显示分辨率的高。此时,第一画面显示信息对应的待替换显示信息为各目标游戏场景元素的第一画面显示信息进行尺寸调整后,在尺寸调整后的画面中的显示信息。
接下来,在步骤S820中,将待替换画面显示信息替换为目标画面显示信息,以使目标客户端显示目标游戏画面。
示例性的,由于渲染分辨率和目标显示分辨率不一致,因此,尺寸调整后,各目标游戏场景元素在调整后的游戏画面中的待替换显示信息是被拉伸变形或缩小变形的。因此,在步骤S820中,可以将待替换显示信息对应的替换为目标画面显示信息,以使目标客户端显示替换后的目标游戏画面。由于目标画面显示信息为各目标游戏场景元素在目标显示分辨率下的正常显示信息,因此,其在目标显示分辨率对应的屏幕中不存在不能充分利用显示区域进行全屏显示的问题或者在全屏显示时,不存在拉伸变形的问题,提高了画面显示的质量和显示的准确性。
为了进一步的提高云游戏画面的显示准确性,在本示例性实施例中,针对实体屏幕中包括非显示区域的情况,例如刘海屏,进行了显示内容偏移处理,以将被刘海区域遮挡的显示内容显示在屏幕中。
图9示意性示出了根据本公开的一个实施例中对客户端的屏幕中被遮挡的显示内容进行处理的方法的流程图。参考图9,该方法可以包括步骤S910至步骤S930。其中:
在步骤S910中,在目标客户端的显示屏幕包括非显示区域时,根据非显示区域的尺寸确定出目标客户端的目标显示分辨率。
示例性的,目标客户端的显示屏幕包括非显示区域可以包括客户端的前置摄像模组所占的区域。以刘海屏为例,刘海区域为目标客户端的显示屏幕对应的非显示区域。此时,可以根据刘海区域的高度确定出目标客户端的目标显示分辨率。如步骤S310中所述,假设刘海屏的刘海的高度为60,去除刘海后的分辨率是1400*960。那么该刘海屏的目标显示分辨率就是1460*960。
在步骤S920中,将所述待替换画面显示信息替换为所述目标画面显示信息后,获取非显示区域的待显示内容对应的待显示坐标。
继续以刘海屏为例,可以获取刘海区域中的待显示内容。将刘海区域中的待显示内容和预设显示内容进行匹配,如果匹配成功,则获取待显示内容对应的待显示坐标。
举例而言,可以根据需求自定义需要在屏幕中展示的预设游戏数据内容,比如某个游戏字段对应的游戏数据是需要展示的。在游戏画面展示过程中,如果该游戏字段对应的游戏数据被遮挡,可以获取该游戏数据对应的显示内的显示坐标,根据该显示坐标和刘海高度对被刘海区域遮挡的预设显示内容进行平移处理,以将其显示在客户端的屏幕中。
在步骤S930中,根据所述非显示区域的尺寸和所述待显示坐标偏移所述待显示内容,以使所述目标客户端显示所述待显示内容偏移后的所述目标游戏画面。
举例而言,假设被刘海区域遮挡的游戏数据内容的对应的其中一个待显示坐标点是(10,10),刘海的高度是20。则可以将待显示坐标点(10,10)对应的像素坐标值偏移至坐标点(30:10),以此类推,可以将被刘海遮挡的游戏数据内容偏移至屏幕中的显示区域。
通过上述的步骤S910至步骤S930,可以将客户端屏幕中的非显示区域中的关键游戏数据内容偏移至显示区域,从而进一步提高游戏画面显示的准确性。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本示例实施例中还提供了一种云游戏画面的显示系统。参考图10,该云游戏画面的显示系统包括云游戏画面渲染子系统1010、分辨率调整子系统1020和云游戏画面显示子系统1030。其中:
上述的云游戏画面渲染子系统1010,用于根据与目标客户端的用户标识对应的云游戏虚拟机渲染游戏画面;
上述的分辨率调整子系统1020,用于对所述游戏画面进行分辨率调整,以确定目标云游戏画面。
上述的云游戏画面显示子系统1030,用于显示所述目标游戏画面。
示例性的,云游戏画面显示子系统用户在目标客户端显示所述目标游戏画面。
在一种示例性应用场景中,用户可以在目标客户端启动云游戏,做初始化相关操作,并且和客户端服务器建立长连接,保持数据的通信工作。发送给客户端服务器一些基础参数信息:例如,启动的云游戏ID,手机的分辨率,客户端的型号,用户ID等。而且客户端还可以保持监听客户端服务器的指令信息,比如:用户时长不够,用户网络异常,云游戏设备异常等等,以便作出对应的业务操作。
客户端服务器收到客户端的发送的基础参数信息后,把用户的基础参数信息发送给云游戏服务器。云游戏服务器可以包括云游戏对应的容器,在容器中可以进行云游戏的初始化工作。
云游戏服务器接收到客户端服务器发送的用户基础参数信息,开始启动容器,匹配与当前分辨率适配的虚拟机,开始当前游戏的渲染工作。其中,采用容器内渲染的技术,因为在容器内可以直接访问GPU,而GPU具有高并发的计算能力,可以直接在容器内完成渲染,提升渲染性能,大大降低了渲染多带来的延迟。
当云游戏服务器启动容器并匹配好虚拟机后,可以给客户端服务器发送准备就绪的指令。此时,客户端服务器可以开始记录与用户关联的游戏数据,比如,用户的剩余时长,可用时长等信息。同时,客户端服务器通知客户端云游戏服务器已经准备就绪,可以获取云游戏视频流。但在本公开中,客户端获取的云游戏视频流是通过上述的分辨率调整子系统1020进行分辨率调整后的视频流。
在本公开的一种示例性实施方式中,分辨率调整子系统1020可以根据上述的图3所示的云游戏画面的显示方法对云游戏画面进行分辨率调整,以确定目标游戏画面。
示例性的,图11示意性示出了根据本公开的一个实施例中的分辨率调整子系统的结构框图。参考图11,该分辨率调整子系统包括分辨率判断单元1021、关键帧数据提取存储单元1022、游戏画面分辨率调整单元1023、视频流输出单元1024。
举例而言,在图11中,如步骤(1),云游戏画面渲染子系统可以将渲染的游戏画面的视频流以流数据的形式发送到分辨率调整子系统1020中的分辨率判断单元1021中,同时向分辨率判断单元发送客户端的显示分辨率,当然也可以发送客户端的设备型号,以在预先存储的设备型号和分辨率的对应关系数据库中查询该设备型号对应的显示分辨率。还可以同时发送客户端的显示分辨率和设备型号,以根据设备型号判断该客户端是否为需要进行被遮挡的显示内容调整的客户端。本示例性实施方式对此不做特殊限定。
分辨率判断单元1021接收到云游戏画面渲染子系统发送的游戏画面的视频流数据和当前客户端的显示分辨率后,可以比对该视频流中的游戏画面的分辨率和当前客户端的显示分辨率是否一致,如果一致,可以通过步骤(4)直接将云游戏画面渲染子系统发送的视频流发送至视频流输出单元1024,以通过步骤(8)进行游戏画面的输出;如果不一致,如步骤(3),可以将接收到的云游戏画面渲染子系统1010发送的游戏画面和客户端的显示分辨率发送至游戏画面分辨率调整单元1023,游戏画面分辨率调整单元1023获取接收到的游戏画面的游戏场景元素和游戏场景元素在该游戏画面中的第一画面显示信息,并将客户端的显示分辨率和游戏场景元素以及第一画面显示信息通过步骤(5)发送至关键帧数据提取存储单元1022中,以在关键帧数据提取存储单元1022中确定出目标画面显示信息。
确定出目标显示信息后,关键帧数据提取单元1022通过步骤(6)将确定出的目标画面显示信息发送至游戏画面分辨率调整单元1023,游戏画面分辨率调整单元1023根据目标画面显示信息通过上述的图8中的各步骤对游戏画面进行分辨率调整,并将调整后的游戏画面通过步骤(7)发送至视频流输出单元1024,视频流输出单元1024以视频流的形式通过步骤(8)输出进行分辨率调整后的目标游戏画面数据。
在进行上述步骤(1)的同时,云游戏画面渲染子系统1010可以通过步骤(2)将渲染的游戏画面以流数据的形式发送到分辨率调整子系统1020中的关键帧数据提取存储单元1022中,同时,关键帧数据存储提取单元可以获取当前客户端的显示分辨率以及云游戏标识。
关键帧数据提取存储单元1022可以对视频流中的关键帧进行图像识别,以确定关键帧中的游戏场景元素和上述的第二画面显示信息,并判断客户端的显示分辨率和云游戏画渲染子系统渲染的游戏画面的分辨率是否一致。
如果一致,在判断没有存储过该云游戏该显示分辨率下的该关键帧的第二画面显示信息的情况下,根据云游戏标识,将客户端的显示分辨率与其对应的关键帧中的游戏场景元素标识和第二画面显示信息存储至关键帧数据提取存储单元1022中的预设存储空间中;如果不一致,则在判断没有存储过该云游戏该渲染分辨率下的该关键帧的第二画面显示信息的情况下,根据云游戏标识,将渲染分辨率与其对应的关键帧中的游戏场景元素标识和第二画面显示信息存储至关键帧数据提取存储单元1022中的预设存储空间中。
需要说明的是,分辨率判断单元1021还可以获取客户端的设备型号,然后根据客户端的设备型号在预先存储的设备型号和分辨率数据对应关系集合中确定当前的客户端是否为具有刘海屏的客户端,如果是,则在游戏画面分辨率调整单元1023中对分辨率调整后的游戏画面通过上述的图9中的步骤进行非显示区域的待显示内容的偏移。
示例性的,上述的视频流输出单元1024,用于分辨率调整子系统中的视频流的输出,其提供对外的统一接口,分辨率调整子系统对外输出视频流已经进行了分辨率适配调整,输出的是和客户端的显示分辨率完全适配且不拉伸无空白显示区域的游戏画面。同时,由于云游戏服务器对外有同一的API供客户端调用拉取视频流,分辨率调整子系统处理好的视频流可以使用云游戏服务器的现有接口进行处理,这样云游戏服务器的整体对外暴漏的接口一致,从而在进行分辨率适配调整的同时,减低了服务的对接成本。
在示例性的应用场景中,客户端完成基本初始化工作后,收到客户端服务器发送的可以获取视频流的指令,此时,客户端就可以通过现有的云游戏服务器的对外接口拉取视频流输出单元1024输出的视频流数据,并且实时和云游戏服务器进行指令交互,根据交互的指令接收新的视频流。在客户端可以本地通过流媒体播放器进行视频流的播放。即接收到云游戏服务器的帧数据后,在帧缓冲区中把帧数据渲染到屏幕上。
此外,由于云游戏在操作过程中需要不断的把用户的操作指令发送给云游戏服务器,以渲染新的游戏画面,所以客户端在监听到用户不同的手势或者点击操作后,转化为对应的指令信息,发送给云游戏服务器。
云游戏服务器可以将客户端发送指令信息转化为虚拟机可以识别的底层指令,发送给虚拟机,以使虚拟机可以不断的根据底层指令渲染与操作指令相关的游戏画面。对该游戏画面进行分辨率调整,以在客户端不断展示分辨率调整后的与用户操作指令对应的目标游戏画面。
进一步的,本示例实施方式中,还提供了一种云游戏画面的显示装置。该云游戏画面的显示装置可以应用于一服务器或终端设备。参考图12所示,该云游戏画面显示装置1200可以包括信息获取模块1210、第一画面显示信息获取模块1220、目标画面显示信息确定模块1230、以及游戏画面调整模块。其中:
信息获取模块1210,被配置为响应于目标客户端的云游戏启动操作,获取所述云游戏的目标云游戏标识和所述目标客户端的目标显示分辨率;
第一画面显示信息获取模块1220,被配置为在云游戏虚拟机的渲染分辨率和所述目标显示分辨率不一致时,获取所述云游戏虚拟机所渲染的游戏画面中的目标游戏场景元素和所述目标游戏场景元素对应的第一画面显示信息;
目标画面显示信息确定模块1230,被配置为根据所述目标云游戏标识,在预先存储的各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的所述关键帧中的第二画面显示信息中,确定出目标画面显示信息;
游戏画面调整模块1240,被配置为根据所述目标画面显示信息调整所述第一画面显示信息,以使所述目标客户端显示目标游戏画面;
在本公开的一种示例性实施例中,所述云游戏画面的显示装置1200还包括第二画面显示信息存储模块,所述第二画面显示信息存储模块通过以下方式预先存储各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的所述关键帧中的第二画面显示信息:
响应于任意客户端的云游戏启动操作,获取所述云游戏的云游戏标识和所述客户端的显示分辨率;
在云游戏虚拟机的渲染分辨率和所述客户端的显示分辨率一致时,获取所述客户端显示的游戏画面对应的视频流中的关键帧;
对所述关键帧进行图像识别,以确定所述关键帧中的游戏场景元素和第二画面显示信息;
根据所述云游戏标识,将所述客户端的显示分辨率与其对应的所述关键帧中的游戏场景元素标识和所述第二画面显示信息存储至预设存储空间中;
其中,所述第二画面显示信息包括所述关键帧中的游戏场景元素在对应的所述关键帧中的画面显示信息。
在本公开的一种示例性实施例中,所述第二画面显示信息存储模块还可以通过以下方式预先存储各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的所述关键帧中的第二画面显示信息:
在云游戏虚拟机的渲染分辨率和所述客户端的显示分辨率不一致时,获取所述云游戏虚拟机所渲染的游戏画面所对应的视频流中的关键帧;
对所述关键帧进行图像识别,以确定所述关键帧中的游戏场景元素和第二画面显示信息;
根据所述云游戏标识,将所述渲染分辨率与其对应的所述关键帧中的游戏场景元素标识和所述第二画面显示信息存储至预设存储空间中;
其中,所述第二画面显示信息包括所述关键帧中的游戏场景元素在对应的所述关键帧中的画面显示信息。
在本公开的一种示例性实施例中,所述第二画面显示信息存储模块还可以通过以下方式存储第二画面显示信息:
基于相同的所述云游戏标识和相同的所述客户端的显示分辨率,将所述关键帧中的游戏场景元素标识和所述预设存储空间中已存储的各关键帧中的游戏场景元素标识进行匹配;
在匹配不成功时,将所述客户端的显示分辨率与其对应的所述关键帧中的游戏场景元素标识和所述第二画面显示信息存储至预设存储空间中;
在匹配成功时,确定与所述关键帧匹配成功的所述已存储的各关键帧对应的第二画面显示信息和所述关键帧对应的第二画面显示信息是否相同,如果不相同,则将所述客户端的显示分辨率与其对应的所述关键帧中的游戏场景元素标识和所述第二画面显示信息存储至预设存储空间中。
在本公开的一种示例性实施例中,所述目标画面显示信息确定模块1230通过以下方式,在预先存储的各云游戏的不同分辨率的关键帧中的游戏场景元素在对应的所述关键帧中的第二画面显示信息中,确定出目标画面显示信息:
在所述预设存储空间中,确定出所述目标云游戏标识对应的云游戏的不同分辨率的关键帧;
在所述不同分辨率的关键帧中,确定所述目标显示分辨率对应的各关键帧为候选关键帧;
根据所述候选关键帧中的游戏场景元素和所述目标游戏场景元素的匹配关系,确定出目标画面显示信息。
在本公开的一种示例性实施例中,基于前述实施例,所述目标画面显示信息确定模块1230还通过以下方式根据所述候选关键帧中的游戏场景元素和所述目标游戏场景元素的匹配关系,确定出目标画面显示信息:
将各所述候选关键帧中的游戏场景元素标识和目标游戏场景元素标识进行匹配,确定匹配成功的所述候选关键帧为目标关键帧;
获取所述目标关键帧中的各游戏场景元素在所述目标关键帧中的第二画面显示信息;
根据所述第二画面显示信息,确定出所述目标游戏场景元素在所述目标显示分辨率所对应的游戏画面中的目标画面显示信息。
在本公开的一种示例性实施例中,基于前述实施例,所述目标画面显示信息确定模块1230还通过以下方式根据所述候选关键帧中的游戏场景元素和所述目标游戏场景元素的匹配关系,确定出目标画面显示信息:
在多个所述候选关键帧中的游戏场景元素标识和所述目标游戏场景元素标识匹配成功时,获取匹配成功的各所述候选关键帧中的游戏场景元素在其对应的所述候选关键帧中的第二画面显示信息;
针对每个匹配成功的所述候选关键帧,确定所述第二画面显示信息和所述第一画面显示信息之间的差异值;
确定所述差异值最小的所述候选关键帧为所述目标关键帧。
在本公开的一种示例性实施例中,基于前述实施例,所述游戏画面调整模块1240通过以下方式根据所述目标画面显示信息调整所述第一画面显示信息,以使所述目标客户端显示目标云游戏画面:
调整所述云游戏虚拟机渲染的游戏画面的尺寸至所述目标显示分辨率,确定尺寸调整后的所述第一画面显示信息对应的待替换画面显示信息;
将所述待替换画面显示信息替换为所述目标画面显示信息,以使所述目标客户端显示目标游戏画面。
在本公开的一种示例性实施例中,基于前述实施例,所述云游戏画面的显示装置1200还可以包括显示内容调整模块,所述显示内容调整模块被配置为:
在所述目标客户端的显示屏幕包括非显示区域时,根据所述非显示区域的尺寸确定出所述目标客户端的目标显示分辨率;
将所述待替换画面显示信息替换为所述目标画面显示信息后,获取所述非显示区域的待显示内容对应的待显示坐标;
根据所述非显示区域的尺寸和所述待显示坐标偏移所述待显示内容,以使所述目标客户端显示所述待显示内容偏移后的所述目标游戏画面。
在本公开的一种示例性实施例中,基于前述实施例,所述显示内容调整模块还可以通过以下方式获取所述非显示区域的待显示内容对应的待显示坐标:
将所述待显示内容和预设显示内容进行匹配;
在所述待显示内容与所述预设显示内容匹配成功时,获取所述非显示区域的待显示内容对应的待显示坐标。
在本公开的一种示例性实施例中,基于前述实施例,所述第一画面显示信息包括所述目标游戏场景元素在所述渲染分辨率对应的游戏画面中的显示坐标、像素数量和颜色空间值;所述第二画面显示信息包括所述游戏场景元素在对应的不同分辨率的关键中的显示坐标、像素数量和颜色空间值。
上述云游戏画面的显示装置1200中各模块或单元的具体细节已经在对应的云游戏画面的显示方法中进行了详细的描述,此处不再赘述。
在一些实施例中,上述服务器、终端设备都可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端设备等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。其中,节点包括硬件层、中间层、操作系统层和应用层。
图13示出本公开一个示例性实施例提供的分布式系统1300应用于区块链系统的结构示意图,区块链系统中各节点1310的功能包括:
1、路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2、应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,比如共享账本可以记录云游戏服务中的终端设备的类型、终端设备的显示分辨率、云游戏标识、用户标识和用户标识对应的虚拟游戏资产等游戏数据。
智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的云游戏服务。
3、区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。比如,区块链中服务器所在的节点记录了云游戏的游戏记录对应的数据。
参见图14,图14示出了本公开一个示例性实施例提供的区块结构(BlockStructure)的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
进一步的,参见图15,图15是本公开实施例提供的云游戏画面的显示方法的应用模式示意图。包括区块链网络400(示例性示出了共识节点410-1至共识节点410-3)、认证中心500、客户端节点600和客户端节点700,下面分别进行说明。
区块链网络400的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如终端101、102、103、104和服务器106,都可以在不需要授权的情况下接入区块链网络400;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端101、102、103、104/服务器106)可以接入区块链网络400,此时,成为区块链网络400中的客户端节点。
在一些实施例中,客户端节点可以只作为区块链网络400的观察者,即提供支持业务主体发起云游戏服务(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络400的共识节点410(例如,共识节点410-1至共识节点410-3)的功能,例如共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络400中,通过区块链网络400实现数据和业务处理过程的可信和可追溯。
区块链网络400中的共识节点接收来自不同的客户端节点提交的云游戏服务,执行云游戏服务以更新账本或者查询账本,执行云游戏服务的各种中间结果或最终结果可以返回业务主体的客户端节点中显示。
例如,客户端节点600可以订阅区块链网络400中感兴趣的事件,例如区块链网络400中特定的组织/通道中发生的交易,由共识节点410推送相应的交易通知到客户端节点600,从而触发客户端节点600中相应的业务逻辑。
下面以客户端节点600/700接入区块链网络以实现云游戏画面的显示的管理为例,说明区块链网络的示例性应用。
参见图15,管理环节可以涉及多个客户端节点,如客户端节点600可以为服务器106对应的节点,客户端节点600从认证中心500进行登记注册获得各自的数字证书,数字证书中包括客户端节点600的公钥、以及认证中心500对客户端节点600的公钥和身份信息签署的数字签名,用来与客户端节点600针对云游戏服务的数字签名一起附加到云游戏服务中,并被发送到区块链网络,以供区块链网络从交易中取出数字证书和签名,验证消息的可靠性(即是否未经篡改)和发送消息的客户端节点600的身份信息,区块链网络会根据身份进行验证,例如是否具有发起云游戏服务的权限。业务主体下辖的电子设备(例如终端设备或者服务器)运行的客户端都可以向区块链网络400请求接入而成为客户端节点。
客户端节点600用于将目标客户端的目标显示分辨率和目标游戏场景元素发送至区块链网络400中。客户端节点600根据目标显示分辨率和目标游戏场景元素生成对应更新操作的云游戏服务,在云游戏服务中指定了实现更新操作需要调用的智能合约、以及向智能合约传递的参数,云游戏服务还携带了客户端节点600的数字证书、签署的数字签名(例如,使用客户端节点600的数字证书中的私钥,对云游戏服务的摘要进行加密得到),并将云游戏服务广播到区块链网络400中的共识节点410。
区块链网络400中的共识节点410中接收到云游戏服务时,对云游戏服务携带的数字证书和数字签名进行验证,验证成功后,根据云游戏服务中携带的身份,确认客户端节点600是否是具有云游戏服务权限,数字签名和权限验证中的任何一个验证判断都将导致云游戏失败。验证成功后签署节点自己的数字签名(例如,共识节点410-1的私钥对交易的摘要进行加密得到),将根据目标显示分辨率和目标游戏场景元素,从不同分辨率的关键帧对应的游戏场景元素的第二画面显示信息中,确定出目标分辨率下的目标游戏场景元素对应的目标画面显示信息,并将目标画面显示信息记录到区块链网络400的账本中。
客户端节点700(终端101、102、103、104对应的节点)用于将目标用户标识和目标客户端的目标显示分辨率发送至区块链网络400中。客户端节点700根据目标用户标识生成对应的查询云游戏服务,在查询云游戏服务中指定需要调用的智能合约、以及向智能合约传递的参数,云游戏服务还携带了客户端节点700的数字证书、签署的数字签名(例如,使用客户端节点700的数字证书中的私钥,对云游戏服务的摘要进行加密得到),并将云游戏服务广播到区块链网络400中的共识节点410。
区块链网络400中的共识节点410中接收到云游戏服务时,对云游戏服务携带的数字证书和数字签名进行验证,验证成功后,根据云游戏服务中携带的身份,确认客户端节点700是否是具有云游戏服务请求权限,数字签名和权限验证中的任何一个验证判断都将导致云游戏服务请求失败。验证成功后签署节点自己的数字签名(例如,共识节点410-1的私钥对交易的摘要进行加密得到),根据目标用户标识和目标客户端的显示分辨率,从不同分辨率的关键帧对应的目标游戏场景元素的第二画面显示信息中,确定出目标画面显示信息,从账本中查询目标画面显示信息对应的键值对,并返回交易结果。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3所示的各个步骤等。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
此外,本公开在一个示例性实施例中,还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
- 云游戏画面的显示方法及装置、系统、介质、电子设备
- 游戏画面的显示方法、装置和存储介质及电子设备