CN118267700A - 云游戏的图像处理方法、装置、计算机设备、介质及产品 - Google Patents
云游戏的图像处理方法、装置、计算机设备、介质及产品 Download PDFInfo
- Publication number
- CN118267700A CN118267700A CN202211743596.5A CN202211743596A CN118267700A CN 118267700 A CN118267700 A CN 118267700A CN 202211743596 A CN202211743596 A CN 202211743596A CN 118267700 A CN118267700 A CN 118267700A
- Authority
- CN
- China
- Prior art keywords
- game
- texture
- image encoder
- rendering
- picture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000009877 rendering Methods 0.000 claims abstract description 206
- 230000001360 synchronised effect Effects 0.000 claims abstract description 165
- 238000000034 method Methods 0.000 claims abstract description 131
- 230000008569 process Effects 0.000 claims abstract description 98
- 230000007246 mechanism Effects 0.000 claims description 48
- 230000006854 communication Effects 0.000 claims description 41
- 238000004891 communication Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 20
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 8
- 238000005070 sampling Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本申请提出一种云游戏的图像处理方法、装置、计算机设备、介质及产品。该方法包括:获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况;获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况;在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。本申请可提高云游戏处理过程的灵活性和便捷性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及云游戏领域,尤其涉及一种云游戏的图像处理方法、一种云游戏的图像处理装置、一种计算机设备、一种计算机可读存储介质及一种计算机程序产品。
背景技术
目前,云游戏解决方案主要是对存量游戏的云化处理,一种方式是抓取云游戏的多个游戏画面进行编码并串流编码后的音视频流,另一种方式是利用游戏引擎提供的游戏插件直接集成到游戏中,基于插件来获取游戏画面并编码后进行音视频流的串流处理。
基于游戏插件来进行游戏云化处理的方案中,插件需负责游戏画面的渲染游戏画面的编码处理、以及传输编码后的音视频流的至游戏客户端,即插件需要配置有编码功能、实时通讯协议等诸多功能,插件的开发难度较高。
发明内容
本申请实施例提出了一种云游戏的图像处理方法、装置、计算机设备、介质及产品,支持将云游戏中的游戏纹理数据的纹理句柄和同步对象发送给图像编码器进行游戏画面的编码,使得云游戏的处理过程更加灵活、便捷。
一方面,本申请实施例提供了一种云游戏的图像处理方法,该方法包括:
获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况;
获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况;
在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。
一方面,本申请实施例提供了一种云游戏的图像处理装置,该装置包括:
获取单元,用于获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况;
获取单元,还用于获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况;
处理单元,用于在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。
在一种可能的实现方式中,游戏纹理数据是由目标云游戏对应云服务器中的引擎插件创建的;云服务器还包含图像编码器;其中,云服务器中的引擎插件和图像编码器属于两个独立的处理进程,并基于进程通信协议进行交互;
引擎插件在创建游戏纹理数据后,通过进程通信协议将游戏纹理数据的纹理句柄和对应的同步对象发送到图像编码器。
在一种可能的实现方式中,处理单元还用于执行以下操作:
引擎插件将创建的多个游戏纹理数据依次排列,得到目标纹理队列;
从目标纹理队列中获取一个游戏纹理数据作为渲染目标,并采用渲染目标对应的游戏纹理数据进行游戏画面的渲染;
通过进程通信协议向图像编码器发送渲染目标对应游戏纹理数据的纹理句柄和同步对象,以使图像编码器获取得到纹理句柄和同步对象。
在一种可能的实现方式中,当读取结果为读取成功时,图像编码器能成功从同步对象中获取针对游戏画面的渲染完成情况;获取单元根据读取结果从同步对象中获取针对游戏画面的渲染完成情况,用于执行以下操作:
通过图像编码器解析所述同步对象,并从解析的同步对象中获取得到游戏画面的渲染完成情况。
在一种可能的实现方式中,当读取结果为读取失败时,图像编码器不能成功从同步对象中获取针对游戏画面的渲染完成情况;获取单元根据读取结果从同步对象中获取针对游戏画面的渲染完成情况,用于执行以下操作:
通过中央处理器解析同步对象;
将中央处理器解析同步对象后得到的游戏画面的渲染完成情况,发送到图像编码器,以使图像编码器得到针对游戏画面的渲染完成情况。
在一种可能的实现方式中,处理单元还用于执行以下操作:
获取图像编码器支持的编码接口,其中,一个编码接口支持对相应的一个或多个同步机制对应生成的同步对象进行解析;
获取与游戏纹理数据对应的同步对象关联的参考同步机制;
在编码接口支持的同步机制包含参考同步机制时,确定图像编码器对同步对象的读取结果为读取成功,否则,则确定图像编码器对同步对象的读取结果为读取失败。
在一种可能的实现方式中,采用图像编码器对获取的游戏画面进行编码处理之后,处理单元还用于执行以下操作:
在图像编码器确定采用图像编码器对游戏画面的编码处理完成时,生成编码完成的通知消息,通知消息携带有已完成编码的游戏纹理数据的纹理句柄;
图像编码器基于进程通信协议,将生成的编码完成的通知消息发送至引擎插件。
在一种可能的实现方式中,处理单元还用于执行以下操作:
引擎插件从图像编码器获取编码完成的通知消息,并从通知消息中解析得到已完成编码的游戏纹理数据的纹理句柄;
将纹理句柄所指示的游戏纹理数据添加至目标纹理队列中。
在一种可能的实现方式中,游戏纹理数据是从目标纹理队列中获取的待渲染纹理数据;获取单元获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,用于执行以下操作:
根据游戏纹理数据进行游戏画面的渲染,并为游戏纹理数据对应的游戏画面关联创建纹理句柄;
根据游戏纹理数据,结合云服务器中所采用的参考同步机制,创建游戏纹理数据对应的同步对象。
在一种可能的实现方式中,处理单元采用图像编码器对获取的游戏画面进行编码处理之后,还用于执行以下操作:
获取采用图像编码器对获取的游戏画面完成编码处理后得到的图像编码数据;
基于实时通讯协议将图像编码数据发送至运行目标云游戏的游戏客户端,并从目标纹理队列中获取下一个游戏纹理数据进行游戏画面的渲染;
其中,接收到图像编码数据的所述游戏客户端用于对图像编码数据进行解码处理后,输出目标云游戏的游戏画面。
在一种可能的实现方式中,处理单元还用于执行以下操作:
对图像编码数据进行加密处理,得到加密编码数据;
基于实时通讯协议将加密编码数据发送至游戏客户端,以使游戏客户端从加密编码数据中解密得到的图像编码数据,并对图像编码数据进行解码处理后,输出目标云游戏的游戏画面。
一方面,本申请实施例提供一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述的云游戏的图像处理方法。
一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的云游戏的图像处理方法。
一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的云游戏的图像处理方法。
本申请实施例中,首先,可以获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,该纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,该同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况;然后,获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况;最后,在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。由此可见,在进行游戏画面的渲染过程,是由单独的图像编码器负责对游戏画面进行编码处理的,编码处理过程更加灵活;并且,无须等待游戏画面渲染完成后才将游戏画面发送至图像编码器进行编码,而是将用于渲染游戏画面的游戏纹理数据所关联的游戏句柄和同步对象共享至图像编码器,可以使得图像编码器基于同步对象确定游戏画面完成渲染后,基于纹理句柄对关联的游戏画面进行编码处理,使得云游戏的处理过程更加灵活、便捷。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术对象来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种云游戏的图像处理方案的原理示意图;
图2是本申请实施例提供的一种云游戏的图像处理***的架构示意图;
图3是本申请实施例提供的一种云游戏的图像处理方法的流程示意图;
图4是本申请实施例提供的一种游戏画面的场景示意图;
图5是本申请实施例提供的一种云服务器的结构示意图;
图6是本申请实施例提供的一种云游戏的图像处理方法的交互流程示意图;
图7是本申请实施例提供的一种读取同步对象的流程示意图;
图8是本申请实施例提供的一种云游戏的图像处理方法的场景示意图;
图9是本申请实施例提供的一种云游戏的图像处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
一、云游戏的图像处理方案的原理:
本申请提供了一种针对云游戏场景的图像处理方案,支持在云游戏场景中将对云游戏中游戏画面的渲染处理过程、以及渲染完成后的游戏画面的编码处理过程独立开来。也就是说,由目标云游戏的云服务器的引擎插件来负责游戏画面的渲染处理过程、以及由一个单独的游戏进程(程序)负责游戏画面的编码处理,从而可以使得引擎插件更加轻量化,便于集成至各个游戏引擎中,部署更加灵活。请参见图1,图1是本申请实施例提供的一种云游戏的图像处理方案的原理示意图。接下来,结合图1对本申请提供的图像处理方案的原理进行大致阐述:
如图1所示,本申请提供的云服务器中可以运行有两个独立的游戏进程,具体地,集成有插件的游戏引擎运行在目标云游戏的一个游戏进程中,配置有图像编码器的串流程序运行在目标云游戏的另一个游戏进程中。其中,引擎插件负责游戏画面的渲染,串流程序负责游戏画面的编码(图像编码)、以及对编码处理后得到的编码码流(音视频流)传输至游戏客户端。具体来说,本申请云游戏的图像处理方案的原理大致如下:云服务器中的引擎插件可以将用于渲染目标云游戏的游戏画面的游戏纹理数据对应的纹理句柄和同步对象共享至串流程序,串流程序中的图像编码器可以基于用于指示游戏纹理数据对游戏画面的渲染完成情况的同步对象来获取针对游戏画面的渲染完成情况,当图像编码器在获取的渲染完成情况指示已采用游戏纹理数据完成所述游戏画面的渲染时,通过纹理句柄获取在引擎插件中渲染得到的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。可选的,串流程序在编码完成后还可以将编码处理后得到的音视频流传输至游戏客户端,游戏客户端基于该音视频流输出相应的游戏画面。
由此可见,①从云服务器的结构上来说:本申请中将游戏画面的渲染处理交由插件来执行、以及将游戏画面的编码过程和后续的码流传输过程交由单独的串流程序来执行,相比于传统的游戏处理过程(渲染过程、编码过程、传输过程)均由引擎插件来执行而言,本申请可以提供一个只需负责游戏画面的渲染处理的更加轻量化的插件,便于集成至各个游戏引擎中,插件的部署更加灵活,且开发难度较低;②从云服务器的图像处理的流程上来说:插件与串流程序之间基于共享的纹理句柄和同步对象来实现游戏画面的编码处理,无须等待游戏画面渲染完成后才将游戏画面发送至图像编码器进行编码,而是将用于渲染游戏画面的游戏纹理数据所关联的游戏句柄、以及用于指示游戏画面的渲染完成情况的同步对象共享至图像编码器,可以使得图像编码器基于同步对象确定游戏画面完成渲染后,基于纹理句柄对来获取关联的游戏画面并对其进行编码处理,使得云游戏的处理过程更加灵活、便捷。
接下来,对上述提及的云游戏的图像处理方案中所涉及到的关键技术术语进行详细介绍:
二、云游戏的图像处理方案涉及的相关技术术语:
本申请提供的主要涉及云技术(云游戏和云计算)和区块链技术,为了能够对更清楚地理解本申请实施例提供的技术方案,下面对本申请实施例涉及的技术术语进行相关介绍。
(1)云计算技术:
①云游戏:
本申请提供的图像处理方案主要涉及云游戏场景。所谓云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端(如图1中的游戏客户端),而是在云服务器中运行,并由云服务器将游戏场景/游戏画面渲染为视频音频流(音视频流),通过网络传输给游戏客户端。游戏客户端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取游戏玩家输入的操作指令并发送给云服务器的能力即可。
基于此,结合上述图1所示的游戏客户端(云游戏的客户端)和云服务器为例,本申请中云游戏实现的大致原理如下:①游戏客户端:支持游戏玩家通过游戏客户端进入云游戏中进行游玩,在游玩过程中游戏玩家可在游戏画面中触发执行各种操作,例如:触屏操作、鼠标键盘操作等,游戏客户端会基于这些操作生成操作指令上报给云服务器。②云服务器:为参与云游戏的客户端启动云游戏的游戏进程;例如,某个游戏玩家基于游戏客户端进入云游戏中进行游玩,这时云服务器会在云端启动并运行两个游戏进程(引擎插件所在的游戏进程、以及图像编码器所在的游戏进程),并基于由两个游戏进程来为游戏客户端提供云游戏的游戏画面的编码结果(音视频流)。③游戏客户端:接收云服务器传输的音视频流后,显示相应的游戏画面。当游戏玩家在游戏画面中执行各种操作(例如触屏操作、鼠标键盘操作)时,游戏客户端会再次基于这些操作生成操作指令后上报给云服务器,由云服务器在对应的游戏进程中根据操作指令进而刷新云游戏的游戏画面,再将刷新后的游戏画面返回至客户端中进行显示。其中,用户在游戏画面中执行的操作可以包括移动操作、选择操作等等;例如,用户将游戏画面中的游戏角色从游戏画面中的第一位置移动至游戏画面中的第二位置;又如,用户选中(例如单击、双击、长按等等)游戏画面中的某个游戏控件。
上述所提及的游戏进程,也可以理解为云游戏实例,一个游戏进程即是一个云游戏实例,云游戏部署和运行在云游戏实例上,云游戏实例代表着虚拟计算资源,虚拟计算机资源可以包括:CPU(Central Processing Unit,中央处理器)、操作***、网络、磁盘、GPU(Graphics Processing Unit,图形处理器)等基础计算组件的集合;也就是说,游戏进程是成功启动、可实际操作的云游戏。
②云计算:
上述可知,目标云游戏的服务器(云服务器)可基于云计算技术提供图形处理能力与数据运算能力,以支撑目标云游戏的顺利运行。具体地,图形处理与数据运算过程中涉及大量的数据计算以及数据存储服务,需花费大量的计算机运营成本,因此本申请可基于云计算技术来实现相应的画面渲染、以及图像编码等过程。
其中,云计算(Cloud Computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用***能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取、按需使用、随时扩展、按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台),一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在云计算资源池中部署多种类型的虚拟资源,供外部客户选择使用。
(2)区块链技术:
区块链是分布式数据存储、P2P(Peer to Peer,点对点)传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(也可称为区块),每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个数据块。区块链以密码学方式保证数据不可篡改和不可伪造。
本申请中,可以将云游戏的图像处理过程中涉及到的游戏纹理数据、纹理句柄以及同步对象等数据发送至区块链进行存储,基于区块链的不可篡改、可追溯等特性可提高图像处理过程的安全性,避免游戏数据的泄露。
特别需要说明的是,在本申请的后续具体实施方式中,涉及到对象信息等相关数据,当本申请以上实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
结合上述对本申请提供的数据处理方案和所涉及到的相关技术术语的描述,接下来,结合图2对本申请实施例提供的数据处理***的架构进行具体介绍。
请参见图2,图2是本申请实施例提供的一种云游戏的图像处理***的架构示意图。该图像处理***的架构图中至少可以包括:终端设备集群、以及云服务器204。其中,终端设备集群中包括:终端设备201、终端设备202、以及终端设备203等;云服务器204与终端设备集群中的任一终端设备(例如终端设备201)之间可以基于有线或无线的方式建立通信连接,例如云服务器204与终端设备201之间具体可以基于实时通讯协议进行数据(如游戏纹理数据的图像编码数据)传输。应当理解,终端设备集群中的任一终端设备中均运行有目标云游戏的游戏客户端,游戏客户端用于对云服务器204传输的目标云游戏的音视频流进行解码播放处理,以在游戏客户端中输出解密处理后的游戏画面。需要说明的是,终端设备集群中的终端设备的数量用于示例,本申请实施例并不对终端设备的数量进行限定。
本申请所提及的终端设备201、终端设备202、以及终端设备203等可以是包括但不限于:手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internetdevice)、智能语音交互设备、车载终端、路边设备、飞行器、可穿戴设备、智能家电、或者例如智能手表、智能手环、计步器等具有图像处理功能的可穿戴设备,等等。
本申请所提及的云服务器204可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。
接下来,以图像处理***中的任一终端设备(例如终端设备201)为例,针对该终端设备201和云服务器204之间的数据交互过程进行相应介绍:
终端设备201在接收到目标游戏玩家输入的操作指令后,可将该操作指令发送至云服务器204。云服务器204在接收到针对目标云游戏的操作指令后,可以获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,该纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,该同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况。然后,云服务器204获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况。最后,云服务器204在获取的渲染完成情况指示已采用游戏纹理数据完成所述游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。
后续,云服务器204可以将编码完成后得到的图像编码数据发送至终端设备201,以使终端设备201基于解码该图像编码数据后,输出相应的游戏画面。
可以理解的是,本申请实施例描述的数据处理***是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术对象可知,随着***架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于前述对本申请数据处理方案和数据处理***的相关描述,接下来将结合附图对数据处理方案所涉及的具体实施例进行详细描述。
请参见图3,图3是本申请实施例所提供的一种云游戏的图像处理方法的流程示意图。该方法应用于图2所示的数据处理***中的云服务器。其中,该云游戏的图像处理方法主要包括但不限于如下步骤S301~S303:
S301:获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况。
本申请中,游戏纹理数据是指用于渲染游戏画面的数据,即用于对目标云游戏中的游戏内容进行渲染得到游戏画面的数据,该游戏纹理数据的数据格式可以包括二维数组、三维数组等,用于存储对应游戏画面的颜色、位置、背景环境等参数。其中,游戏内容可以包括场景内容和用户界面内容,场景内容是指游戏中的树木、道路、建筑等内容,用户界面内容是指游戏中可由用户操作的内容,例如游戏中的虚拟键盘、虚拟控件等等。请参见图4,图4是本申请实施例提供的一种游戏画面的场景示意图,在图4所示的游戏画面中,路灯(401)、交通牌(402)、草地(403)、房屋建筑(404)等是场景内容,“开始游戏”(405)、“退出游戏”(406)等虚拟控件是用户界面内容。另外,游戏画面是指可以在游戏客户端中显示的画面(例如图4所示的交通画面),游戏画面通常是由游戏场景画面和用户界面画面叠加得到的,游戏场景画面由场景内容渲染得到,用户界面画面由用户界面内容渲染得到。
应当理解,一个游戏纹理数据可对应一个游戏画面,并且该游戏纹理数据的纹理句柄用于指示该游戏纹理数据的标识,即一个纹理句柄可以对应一个游戏画面的标识。例如,当前游戏画面是目标云游戏中的第n帧画面,那么用于渲染该游戏画面对应的游戏纹理数据的纹理句柄(标识)可以为n,n为正整数。
另外,同步对象是指在基于游戏纹理数据进行游戏画面的渲染过程中所创建的一种特殊对象,该同步对象可用于指示游戏纹理数据对游戏画面的渲染完成情况,即该同步对象可理解为渲染游戏画面过程中的一种指示消息。具体地,同步对象在作为渲染游戏画面过程中的一种指示消息时,该指示消息可以具体显示为:渲染进度(百分比)、渲染指令(字符串)等格式。例如,同步对象指示的当前游戏画面的渲染完成情况显示为100%,则表示当前游戏画面已完成渲染;同步对象指示的当前游戏画面的渲染完成情况显示为50%,则表示当前游戏画面未完成渲染。又如,当同步对象指示的当前游戏画面的渲染完成情况显示为“end”,则表示当前游戏画面已完成渲染;当同步对象指示的当前游戏画面的渲染完成情况显示为“loading”,则表示当前游戏画面未完成渲染。
在一种可能的实现方式中,上述提及的游戏纹理数据是由目标云游戏对应云服务器中的引擎插件(例如Pixel Streaming插件、或Render Streaming插件等)创建的;云服务器还包含图像编码器,图像编码器例如可以为GPU(Graphic Processing Unit,图像处理器)。并且,云服务器中的引擎插件和图像编码器属于两个独立的游戏进程,其中,一个游戏进程用于执行目标云游戏中一种或多种游戏处理逻辑,例如,引擎插件所在的游戏进程用于负责游戏画面的渲染逻辑;又如,图像编码器所在的游戏进程用于负责对完成渲染的游戏画面的编码逻辑。具体实现时,引擎插件和图像编码器之间基于进程通信协议进行交互。具体地,引擎插件在创建游戏纹理数据后,可以通过进程通信协议将游戏纹理数据的纹理句柄和对应的同步对象发送到图像编码器。例如,进程通信协议具体可以为IPC协议(Internet Process Connection,一种共享“命名管道”的资源),该IPC协议可用于实现不同进程(引擎插件和图像编码器)之间的通信而开放的命名管道,可通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行数据(例如游戏纹理数据的纹理句柄和对应的同步对象)的交换。
接下来,结合附图对云服务器的结构以及各自负责的功能进行详细介绍。请参见图5,图5是本申请实施例提供的一种云服务器的结构示意图。如图5所示,云服务器中包括引擎插件和图像编码器(例如GPU编码器)。其中,引擎插件所在的游戏进程主要负责以下游戏处理逻辑:①创建和管理目标纹理队列,应当理解,游戏纹理数据是指从目标纹理队列中获取到的待渲染的游戏纹理;②共享纹理和同步对象,具体的,引擎插件共享纹理和同步对象可以包括:共享游戏纹理数据的纹理句柄、基于游戏纹理数据完成渲染的游戏画面、以及游戏纹理数据的同步对象等数据;③基于IPC协议与图像编码器之间进行通信。另外,图像编码器所在的游戏进程(串流程序)主要负责以下游戏处理逻辑:①接收引擎插件共享的游戏纹理数据的纹理句柄、和游戏纹理数据的同步对象;②GPU编码器进行游戏画面的编码处理;③基于IPC协议与引擎插件之间进行通信。最后,图像编码器还可以基于实时通讯协议将编码得到的音视频流传输至游戏客户端中。其中,图像编码逻辑和音视频传输逻辑均可由串流程序提供。
S302:获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况。
在一种可能的实现方式中,当读取结果为读取成功时,则图像编码器能成功从同步对象中获取针对游戏画面的渲染完成情况。云服务器根据读取结果从同步对象中获取针对游戏画面的渲染完成情况,具体可以包括如下步骤:通过图像编码器解析同步对象,并从解析的同步对象中获取得到游戏画面的渲染完成情况。
在另一种可能的实现方式中,当读取结果为读取失败时,则图像编码器不能成功从同步对象中获取针对游戏画面的渲染完成情况。云服务器根据读取结果从同步对象中获取针对游戏画面的渲染完成情况,具体可以包括如下步骤:首先,图像编码器可以通知云服务器的中央处理器执行同步对象的读取操作,应当理解,中央处理器是计算机设备(云服务器)的处理核心,中央处理器在处理过程中可适于实现一条或多条程序指令,具体适于加载并执行一条或多条程序指令从而执行同步对象的读取操作。因此,本申请实施例在确定图像编码器无法成功读取同步对象后,可以向中央处理器发送提示消息,该提示消息用于提示中央处理器执行同步对象的读取、解析操作以获取针对游戏画面的渲染完成情况。具体地,通过中央处理器解析同步对象;然后,将中央处理器解析同步对象后得到的游戏画面的渲染完成情况,发送到图像编码器,以使图像编码器得到针对游戏画面的渲染完成情况。
本申请实施例中,需要先基于同步对象确定游戏画面是否完成渲染,当确定游戏画面已完成渲染操作后,再由图像编码器对完成渲染的游戏画面进行编码处理。因此,本申请提供的技术方案会优先判断图像编码器是否能够成功从同步对象中获取针对游戏画面的渲染完成情况。若能,则由图像编码器负责同步对象的读取与解析,以获取针对游戏画面的渲染完成情况,这种方式可以在图像编码器具备读取同步对象的能力的基础上,可以由图像编码器直接执行同步对象的读取、以及游戏画面的编码处理这一系列操作,因此本申请实施例优先基于图像编码器来读取同步对象可使得整个图像处理流程更加连贯、提高处理效率。另外,若图像编码器不能成功读取该同步对象,则需交由云服务器的中央处理器来负责同步对象的读取与解析,然后由中央处理器通知图像编码器针对游戏画面的渲染完成情况,以此来保证图像编码器即使在不能成功读取同步对象的前提下仍然可以获取到针对游戏画面的渲染完成情况,以触发执行后续的编码处理操作。
在一种可能的实现方式中,本申请实施例可基于不同的同步机制来创建不同类型的同步对象,而不同的同步机制对应由不同的编码接口来提供,例如编码接口为图形API(Application Program Interface)接口。其中,同步机制是指用于创建不同类型的同步对象的机制/准则,并且基于某一同步机制创建的同步对象允许基于相同的同步机制进行同步对象的读取,例如,设备1基于同步机制A创建得到同步对象a,然后设备1将该同步对象发送至设备2,若设备2需成功读取该同步对象a,则设备2需支持或实现同步机制A(即设备2是否具备可提供同步机制A的编码接口)以此来成功进行同步对象a的读取。可选的,一种同步机制可用于创建一种或多种类型的同步对象。本申请实施例中,具体地,首先,获取图像编码器支持的编码接口,其中,一个编码接口支持对相应的一个或多个同步机制对应生成的同步对象进行解析;然后,获取与游戏纹理数据对应的同步对象关联的参考同步机制,参考同步机制是指用于创建本申请中的同步对象所使用的同步机制,如前述,同步对象可以是基于参考同步机制(例如同步机制A)创建得到的;最后,在编码接口支持的同步机制包含参考同步机制时,确定图像编码器对同步对象的读取结果为读取成功,否则,则确定图像编码器对同步对象的读取结果为读取失败。
举例来说,同步机制与编码接口之间的对应关系具体请参见如下表1所示:
表1.同步机制与编码接口之间的对应关系
如上述表1所示,所谓共享纹理是指不同游戏进程之间共享游戏纹理数据、以及游戏纹理数据的纹理句柄、游戏纹理数据对应的同步对象,本申请实施例中,主要是引擎插件和图形编码器之间共享游戏纹理数据的纹理句柄、游戏纹理数据对应的同步对象,后续在图像编码器基于同步对象确定游戏画面已完成渲染后,还可基于纹理句柄来从引擎插件中获取游戏纹理数据。本申请中不同的编码接口用于针对不同类型的游戏纹理数据以实现引擎插件与图像编码器之间的纹理共享;另外,不同的编码接口对应提供不同的同步机制来创建相应类型的同步对象以实现引擎插件与图像编码器之间的同步对象的交互,可以理解的是,引擎插件在基于不同的同步机制来创建相应类型的同步对象后,图像编码器在编码处理过程中,首先需调用对应的编码接口来进行同步对象的读取,由于不同类型的同步对象是基于不同类型的编码接口创建的,那么图像编码器需实现相应类型的编码接口后方可读取到引擎插件创建的同步对象,相比于直接创建在多个游戏进程(线程)中均可读取到的同步对象而言,本申请基于不同编码接口提供的同步机制的方式来创建相应类型的同步对象这种方式进一步确保了引擎插件与图像编码器在共享同步对象过程中的可靠性和有效性。具体来说,若编码接口为Direct3D11或Direct3D12接口,在引擎插件与图像编码器之间共享的游戏纹理数据的类型可以为SharedHandle,在引擎插件与图像编码器之间共享的同步对象的类型可以为SharedFence;又如,编码接口为Vulkan接口(一种跨平台的二维和三维图形应用程序接口),在引擎插件与图像编码器之间共享的游戏纹理数据的类型可以为“VK_KHR_external_memory_win32”(或“VK_KHR_external_memory_fd”),在引擎插件与图像编码器之间共享的同步对象的类型可以为“VK_KHR_external_semaphore_win32”(或“VK_KHR_external_semaphore_fd”);还如,编码接口为OpenGL ES(OpenGL for EmbeddedSystems,一种针对游戏主机等嵌入式设备开发的图形应用程序接口)接口,在引擎插件与图像编码器之间共享的游戏纹理数据的类型可以为“EGLImage”,在引擎插件与图像编码器之间共享的同步对象的类型可以为“EGL_KHR_fence_sync”。
基于上述共享纹理句柄和同步对象的方式,本申请提供的引擎插件可以把用于画面渲染的游戏纹理数据的纹理句柄和同步对象通过共享显存的方式传送给图像编码器(例如GPU编码器)。其中,所谓共享显存就是将云服务器中的一部分内存作为显存从而来提高显卡性能一个有效的手段,也就是说,云服务器中由引擎插件创建的游戏纹理数据的纹理句柄和同步对象(这些数据均存储于内存中)可以直接共享至图像编码器,无须图像编码器额外从显存中拷贝相应的数据(即游戏纹理数据的纹理句柄和同步对象),从而可以避免在图像编码时额外的显存拷贝步骤,可简化操作步骤,从而提高处理效率。
S303:在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。
如前述,当基于同步对象确定获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时(例如当渲染进度为100%时),可以通过纹理句柄获取关联的已完成渲染的游戏画面。接下来,可以采用图像编码器对获取的游戏画面进行编码处理。应当理解,对游戏画面的编码处理的实质是对游戏画面的压缩处理,具体的,可以采用标准编码参数对游戏画面进行编码处理,得到游戏画面的图像编码数据(例如音频流、视频流等)。例如,标准编码参数可以包括但不限于以下至少一种:采样率、位宽、声道数、目标时间长度内的采样点总数等等;其中,采样率也可称采样频率,是指单位时间(例如1秒)内从游戏画面中提取并组成离散序列的采样点个数,例如1秒从游戏画面中提取48000个采样点;位宽是指每个采样点所占位数,例如每个采样点占4比特或8比特等等;声道数是指播放游戏画面对应的音频时的声道数量,例如声道数为1表示单声道,声道数为2表示双声道;目标时间长度内的采样点总数是指在目标时间长度(例如10毫秒)内对游戏画面进行采样时的采样点总数。后续,在编码完成之后,还可将对游戏画面进行编码完成后得到的图像编码数据传输至游戏客户端,以使游戏客户端对接收到的图像编码数据进行解码处理后,输出目标云游戏的游戏画面。
本申请实施例中,首先,可以获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,该纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,该同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况;然后,获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况;最后,在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。由此可见,在进行游戏画面的渲染过程,是由单独的图像编码器负责对游戏画面进行编码处理的,编码处理过程更加灵活;并且,无须等待游戏画面渲染完成后才将游戏画面发送至图像编码器进行编码,而是将用于渲染游戏画面的游戏纹理数据所关联的游戏句柄和同步对象共享至图像编码器,可以使得图像编码器基于同步对象确定游戏画面完成渲染后,基于纹理句柄对关联的游戏画面进行编码处理,使得云游戏的处理过程更加灵活、便捷。
上述可知,本申请提供的图像处理方法主要涉及云游戏服务器的结构改进,将引擎插件和图像编码器分别独立在两个游戏进程中来共同向游戏客户端提供一种灵活、便捷的云游戏场景中的图像处理方案。接下来,请参见图6,图6是本申请实施例提供的一种云游戏的图像处理方法的交互流程示意图。该方法应用于图2所示的数据处理***中的云服务器,具体地,该方法具体涉及云服务器的引擎插件、以及图像编码器之间的具体交互过程。其中,该云游戏的图像处理的交互方法主要包括但不限于如下步骤S601~S608:
S601:引擎插件创建目标云游戏对应游戏纹理数据的纹理句柄和同步对象。
具体实现时,引擎插件创建目标云游戏对应游戏纹理数据的纹理句柄和同步对象的具体步骤如下:①创建目标纹理队列,具体地,引擎插件可以将创建的多个游戏纹理数据依次排列,得到目标纹理队列。可选的,引擎插件可以基于每个游戏纹理数据对应的游戏画面在目标云游戏场景中出现的顺序进行排列,得到目标纹理队列。例如,若第一游戏纹理数据是用于渲染目标云游戏的第一帧游戏画面的,第二游戏纹理数据是用于渲染目标云游戏的第二帧游戏画面的,则可以先将第一游戏纹理数据放入至目标纹理队列后,再将第二游戏纹理数据放入至目标纹理队列中,以此类推,可以针对目标云游戏的创建的多个游戏纹理数据进行排列后,得到目标纹理队列。②根据游戏纹理数据进行游戏画面的渲染,并为游戏纹理数据对应的游戏画面关联创建纹理句柄。,其中,关联创建的纹理句柄用于对游戏纹理数据对应的游戏画面进行指示,即可基于该纹理句柄关联获取到对应的游戏画面,由于本申请中的纹理句柄可以理解为类似于一个整数这样的标识,因此在数据传输过程中可基于数据量较小的纹理句柄来对应指示对应的游戏画面,无需将整个游戏画面的数据内容进行传输,减少了数据传输量,提高数据处理的效率。具体地,在游戏画面的渲染过程中,引擎插件可以从目标纹理队列中获取一个游戏纹理数据作为渲染目标(Render Target,RT),并采用该渲染目标对应的游戏纹理数据进行游戏画面的渲染。③根据游戏纹理数据,结合云服务器中所采用的参考同步机制,创建游戏纹理数据对应的同步对象。具体地,如上述表1所示,可以采用诸如:SharedFence、VK_KHR_external_semaphore_win32、VK_KHR_external_semaphore_fd、EGL_KHR_fence_sync等同步机制来创建游戏纹理数据对应的同步对象。
S602:引擎插件向图像编码器共享纹理句柄和同步对象。
具体实现时,引擎插件向图像编码器共享纹理句柄和同步对象的具体步骤包括:可以通过进程通信协议(例如IPC协议)向图像编码器发送渲染目标对应游戏纹理数据的纹理句柄和同步对象,以使图像编码器获取得到纹理句柄和同步对象。通过这种方式,引擎插件可以把用于画面渲染的游戏纹理数据的纹理句柄和同步对象通过共享显存的方式传送给图像编码器(例如GPU编码器),可以避免在图像编码时额外的显存拷贝步骤,可简化操作步骤,从而提高了云游戏的图像处理效率。
在一种可能的实现方式中,引擎插件从目标纹理队列可一次性获取多个待渲染的游戏纹理进行统一渲染处理。其中,获取的用于统一渲染的游戏纹理的数量可以根据目标云游戏所属的类型来确定。具体地,目标云游戏的类型为射击类型,则可以将目标游戏角色在目标云游戏中所属的不同类型的场景画面来确定待渲染的游戏纹理的数量,例如,可以将射击之前的多个场景画面(例如目标游戏角色在草地中寻找目标射击对象的画面)进行统一渲染处理;又如,可以将射击过程中的多个场景画面(例如目标游戏角色与目标射击对象之间进行对抗的画面)进行统一渲染处理;还如,可以将射击之后的多个场景画面(例如目标游戏角色将目标射击对象射击成功的画面、或者目标射击对象将目标游戏角色射击成功的画面)进行统一渲染处理。可以理解的是,游戏场景中的相邻的游戏画面之间具备较强的关联性,因此基于这种方式,引擎插件可基于游戏画面之间的强相关性进行批量渲染处理,进而可以减少渲染过程中的工作量;接下来,批量渲染游戏纹理以得到批量的游戏纹理数据后,也可以将这一批次的游戏纹理数据统一发送至图像编码器以针对多个已完成渲染处理的游戏画面进行批量的编码处理,同理,图像编码器可基于游戏画面之间的强相关性进行批量编码处理,进而可以减少编码过程中的工作量,总结来说,本申请支持针对批量的游戏纹理数据进行渲染、以及编码处理,可提高图像处理效率;另外,基于强相关的多个游戏画面进行渲染、编码处理,可以充分挖掘各个游戏画面之间的隐性关联关系,从而可以提高针对目标云游戏中各个游戏画面的编码过程或渲染过程的准确性。
具体实现时,在上述描述的批量进行游戏画面的渲染过程中,需要为每一批次进行批量渲染的游戏纹理数据关联创建对应的纹理句柄,以及同步对象。其中,该纹理句柄可以是关联有该批次批量渲染的多个游戏纹理数据对应的游戏画面,例如若该批次批量渲染的游戏画面为第1帧-第10帧,则创建的纹理句柄可以为数组(1,10);另外,为这一批次的多个游戏纹理数据关联创建的同步对象可以用于指示各个游戏纹理数据的渲染完成情况,即当同步对象确定渲染完成时,可理解为该批次中各个游戏纹理数据分别对应的游戏画面均完成渲染;当同步对象确定未渲染完成时,可理解为该批次中存在至少一个游戏纹理数据所对应的游戏画面未完成渲染。
后续,引擎插件可将批量游戏纹理数据的纹理句柄和对应的同步对象共享至图像编码器,以使得图像编码器进行批量的游戏画面的编码处理。应当理解,引擎插件和图像编码器针对批量游戏纹理数据的具体处理过程的详细步骤,具体可参考本申请图3实施例中针对一个游戏纹理数据的详细处理过程,本申请在此不再赘述。
S603:图像编码器读取同步对象。
具体实现时,首先,可以获取图像编码器支持的编码接口,其中,一个编码接口支持对相应的一个或多个同步机制对应生成的同步对象进行解析。然后,获取与游戏纹理数据对应的同步对象关联的参考同步机制。接下来,在编码接口支持的同步机制包含参考同步机制时,确定图像编码器对同步对象的读取结果为读取成功,否则,则确定图像编码器对同步对象的读取结果为读取失败。也就是说,本申请实施例可以基于图像编码器支持的编码接口来判断图像编码器是否支持读取该同步对象,从而得到图像编码器针对同步对象的读取结果。
S604:图像编码器根据读取结果从同步对象中获取针对游戏画面的渲染完成情况。
在一种可能的实现方式中,当读取结果为读取成功时,则图像编码器能成功从同步对象中获取针对游戏画面的渲染完成情况;那么,可以通过图像编码器解析同步对象,并从解析的同步对象中获取得到游戏画面的渲染完成情况。
在另一种可能的实现方式中,请参见图7,图7时本申请实施例提供的一种读取同步对象的流程示意图。如图7所示,当读取结果为读取失败时,图像编码器不能成功从同步对象中获取针对游戏画面的渲染完成情况;那么,图像编码器从同步对象中获取针对游戏画面的渲染完成情况的具体步骤如下S1-S5:
S1:引擎插件发送同步对象。
S2:图像编码器针对同步对象的读取结果为读取失败。
S3:图像编码器通知中央处理器进行同步对象的读取。
S4:中央处理器从引擎插件中读取同步对象。
S5:中央处理器将解析同步对象后得到的游戏画面的渲染完成情况,发送到图像编码器。
通过这种方式,若图像编码器能成功支持读取同步对象时,则由图像编码器进行同步对象的读取,若图像编码器不能成功支持读取同步对象时,则由中央处理器进行同步对象的读取,进而由中央处理器通知图像编码器读取同步对象后的针对游戏画面的渲染完成情况。可以使得图像编码器和中央处理器之间高效且灵活的发挥各自的作用与功能,提高图像处理过程的效率。
S605:若完成游戏画面的渲染,则图像编码器对游戏画面进行编码处理。
具体地,基于游戏画面的渲染完成情况可确定游戏画面是否已完成渲染,例如,获取到的渲染完成情况为渲染进度“100%”,则确定完成游戏画面的渲染;又如,获取到的渲染完成情况为渲染指令“end”,则确定完成游戏画面的渲染。后续,采用图像编码器进行游戏画面的编码处理,其中,图像编码器例如可以包括但不限于:GPU编码器、kubler编码器、增量式编码器等等,本申请实施例并不对编码器的种类进行具体限定。后续,在编码完成之后,可以生成游戏画面的图像编码数据。
在一种可能的实现方式中,图像编码器对游戏画面进行编码处理之后,可以获取采用图像编码器对获取的游戏画面完成编码处理后得到的图像编码数据;然后,基于实时通讯协议(Web Real-Time Communication,Web RTC)将图像编码数据发送至运行目标云游戏的游戏客户端,并从目标纹理队列中获取下一个游戏纹理数据进行游戏画面的渲染。其中,接收到图像编码数据的游戏客户端用于对图像编码数据进行解码处理后,输出目标云游戏的游戏画面。通过这种方式,引擎插件和图像编码器在完成一个游戏画面的渲染与编码处理之后,引擎插件又可从目标纹理队列中获取写一个游戏纹理数据进行相应游戏画面的渲染,以及编码处理等流程,以此类推,从而实现目标云游戏的云化处理。
在一种可能的实现方式中,图像编码器可以对图像编码数据进行加密处理,得到加密编码数据;然后基于实时通讯协议(例如WebRTC协议)将加密编码数据发送至游戏客户端,以使游戏客户端从加密编码数据中解密得到的图像编码数据,并对图像编码数据进行解码处理后,输出目标云游戏的游戏画面。基于这种方式,可以在云服务器与游戏客户端的通信过程中,将数据(图像编码数据)进行加密处理后进行传输,可以保证数据交互过程中的可靠性和安全性。
S606:图像编码器向引擎插件发送编码完成的通知消息。
具体实现时,图像编码器在确定对游戏画面进行编码完成后,可以生成编码完成的通知消息,并基于IPC协议向引擎插件发送编码完成的通知消息。其中,该编码完成的通知消息中携带有已完成编码的游戏纹理数据的纹理句柄。
S607:引擎插件从通知消息中解析得到游戏纹理数据的纹理句柄。
具体地,引擎插件从图像编码器获取编码完成的通知消息,并从通知消息中解析得到已完成编码的游戏纹理数据的纹理句柄。
S608:引擎插件将纹理句柄所指示的游戏纹理数据添加至目标纹理队列中。
应当理解的是,在云游戏的运行过程中,通常游戏画面之间具备较强的关联关系,即这一帧的游戏画面可用于作为渲染下一帧游戏画面的依据,例如,在射击的游戏场景中,第一帧用于指示扳动扳机的游戏画面,可作为渲染下一帧射击的游戏画面的主要依据。因此,已完成编码的游戏纹理数据(对应渲染一帧游戏画面)需重新添加至目标纹理队列中,该已完成编码的游戏纹理数据可用于对下一个游戏画面的渲染过程提供可靠的画面信息,基于这种方式,可保证云游戏的图像处理过程更加准确。具体地,后续,云服务器可基于该游戏纹理数据对下一个游戏画面进行渲染、编码等处理,同理,下一个已完成编码处理的游戏纹理数据又可用于对下下个游戏画面进行渲染、编码等处理,以此类推,基于这种环环相扣的云化处理流程,可以使得目标云游戏的云化处理流程更加具有串联性、那么云化处理后的目标云游戏中提供的各个游戏画面也更加准确、可靠;另外,基于上一个已完成编码的游戏纹理数据对下一个游戏画面进行渲染,由于前后相邻的两个游戏画面之间的关联性,还可以减少渲染过程中的计算量,提高处理效率。
基于以上描述,应当理解的是,本申请提供的图像处理方案可适用于各种类型的云游戏场景中。请参见图8,图8是本申请实施例提供的一种云游戏的图像处理方法的场景示意图。如图8所示,在云游戏场景中,①用户可在游戏客户端输入针对目标云游戏(例如赛车游戏、跳舞游戏等)的游戏操作指令,例如游戏操作指令可以包括:旋转指令、跳跃指令、移动指令等。游戏客户端响应于该游戏操作指令后,向云服务器发送该游戏操作指令。②云服务器在接收到针对目标云游戏的游戏操作指令后,基于引擎插件创建目标纹理队列,并从目标纹理队列中获取一个游戏纹理数据进行游戏画面的渲染,得到该游戏纹理数据的纹理句柄和同步对象。③引擎插件将目标云游戏对应游戏纹理数据的纹理句柄和同步对象共享给串流程序中运行的图像编码器。④图像编码器根据从同步对象中获取针对游戏画面的渲染完成情况,具体地,在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,图像编码器通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理,得到音视频流。⑤串流程序基于WebRTC协议将音视频流传输至游戏客户端,游戏客户端对接收到的音视频流进行解码处理后,即可显示对应的游戏画面。
本申请实施例中,云服务器中运行有两个独立的游戏进程,引擎插件运行在一个游戏进程中,图像编码器运行在另一个游戏进程中,然后引擎插件用于负责游戏画面的渲染处理逻辑,相比于传统的插件需负责画面渲染、图像编码等处理逻辑而言,本申请提供的插件更加轻量化,降低了插件的开发难度,从而便于灵活部署至各个游戏引擎中;另外,图像编码器与引擎插件之间可共享游戏纹理数据的过程中,可共享该游戏纹理数据对应的纹理句柄和同步对象,从而避免额外的显存拷贝操作,可简化操作步骤,从而提高了图像处理效率。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置,接下来,结合上述本申请实施例提供的云游戏的图像处理方案,对本申请实施例的相关装置进行相应介绍。
请参见图9,图9是本申请实施例提供的一种云游戏的图像处理装置的结构示意图。如图9所示,该云游戏的图像处理装置900可应用于前述实施例中所提及的云服务器。具体来说,云游戏的图像处理装置900可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该云游戏的图像处理装置900为一个应用软件;该云游戏的图像处理装置900可以用于执行本申请实施例提供的区块链数据处理方法中的相应步骤。该云游戏的图像处理装置900具体可以包括:
获取单元901,用于获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况;
获取单元901,还用于获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况;
处理单元902,用于在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。
在一种可能的实现方式中,游戏纹理数据是由目标云游戏对应云服务器中的引擎插件创建的;云服务器还包含图像编码器;其中,云服务器中的引擎插件和图像编码器属于两个独立的处理进程,并基于进程通信协议进行交互;
引擎插件在创建游戏纹理数据后,通过进程通信协议将游戏纹理数据的纹理句柄和对应的同步对象发送到图像编码器。
在一种可能的实现方式中,处理单元902还用于执行以下操作:
引擎插件将创建的多个游戏纹理数据依次排列,得到目标纹理队列;
从目标纹理队列中获取一个游戏纹理数据作为渲染目标,并采用渲染目标对应的游戏纹理数据进行游戏画面的渲染;
通过进程通信协议向图像编码器发送渲染目标对应游戏纹理数据的纹理句柄和同步对象,以使图像编码器获取得到纹理句柄和同步对象。
在一种可能的实现方式中,当读取结果为读取成功时,图像编码器能成功从同步对象中获取针对游戏画面的渲染完成情况;获取单元901根据读取结果从同步对象中获取针对游戏画面的渲染完成情况,用于执行以下操作:
通过图像编码器解析所述同步对象,并从解析的同步对象中获取得到游戏画面的渲染完成情况。
在一种可能的实现方式中,当读取结果为读取失败时,图像编码器不能成功从同步对象中获取针对游戏画面的渲染完成情况;获取单元901根据读取结果从同步对象中获取针对游戏画面的渲染完成情况,用于执行以下操作:
通过中央处理器解析同步对象;
将中央处理器解析同步对象后得到的游戏画面的渲染完成情况,发送到图像编码器,以使图像编码器得到针对游戏画面的渲染完成情况。
在一种可能的实现方式中,处理单元902还用于执行以下操作:
获取图像编码器支持的编码接口,其中,一个编码接口支持对相应的一个或多个同步机制对应生成的同步对象进行解析;
获取与游戏纹理数据对应的同步对象关联的参考同步机制;
在编码接口支持的同步机制包含参考同步机制时,确定图像编码器对同步对象的读取结果为读取成功,否则,则确定图像编码器对同步对象的读取结果为读取失败。
在一种可能的实现方式中,采用图像编码器对获取的游戏画面进行编码处理之后,处理单元902还用于执行以下操作:
在图像编码器确定采用图像编码器对游戏画面的编码处理完成时,生成编码完成的通知消息,通知消息携带有已完成编码的游戏纹理数据的纹理句柄;
图像编码器基于进程通信协议,将生成的编码完成的通知消息发送至引擎插件。
在一种可能的实现方式中,处理单元902还用于执行以下操作:
引擎插件从图像编码器获取编码完成的通知消息,并从通知消息中解析得到已完成编码的游戏纹理数据的纹理句柄;
将纹理句柄所指示的游戏纹理数据添加至目标纹理队列中。
在一种可能的实现方式中,游戏纹理数据是从目标纹理队列中获取的待渲染纹理数据;获取单元901获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,用于执行以下操作:
根据游戏纹理数据进行游戏画面的渲染,并为游戏纹理数据对应的游戏画面关联创建纹理句柄;
根据游戏纹理数据,结合云服务器中所采用的参考同步机制,创建游戏纹理数据对应的同步对象。
在一种可能的实现方式中,处理单元902采用图像编码器对获取的游戏画面进行编码处理之后,还用于执行以下操作:
获取采用图像编码器对获取的游戏画面完成编码处理后得到的图像编码数据;
基于实时通讯协议将图像编码数据发送至运行目标云游戏的游戏客户端,并从目标纹理队列中获取下一个游戏纹理数据进行游戏画面的渲染;
其中,接收到图像编码数据的所述游戏客户端用于对图像编码数据进行解码处理后,输出目标云游戏的游戏画面。
在一种可能的实现方式中,处理单元902还用于执行以下操作:
对图像编码数据进行加密处理,得到加密编码数据;
基于实时通讯协议将加密编码数据发送至游戏客户端,以使游戏客户端从加密编码数据中解密得到的图像编码数据,并对图像编码数据进行解码处理后,输出目标云游戏的游戏画面。
本申请实施例中,首先,可以获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,该纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,该同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况;然后,获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况;最后,在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。由此可见,在进行游戏画面的渲染过程,是由单独的图像编码器负责对游戏画面进行编码处理的,编码处理过程更加灵活;并且,无须等待游戏画面渲染完成后才将游戏画面发送至图像编码器进行编码,而是将用于渲染游戏画面的游戏纹理数据所关联的游戏句柄和同步对象共享至图像编码器,可以使得图像编码器基于同步对象确定游戏画面完成渲染后,基于纹理句柄对关联的游戏画面进行编码处理,使得云游戏的处理过程更加灵活、便捷。
请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图。该计算机设备1000用于执行前述方法实施例中云服务器所执行的步骤,该计算机设备1000包括:一个或多个处理器1001;一个或多个输入设备1002,一个或多个输出设备1003和存储器1004。上述处理器1001、输入设备1002、输出设备1003和存储器1004通过总线1005连接。其中,处理器1001(或称CPU(Central Processing Unit,中央处理器))是计算机设备的处理核心,该处理器1201适于实现一条或多条程序指令,具体适于加载并执行一条或多条程序指令从而实现上述的云游戏的图像处理方法的流程。具体地,存储器1004用于存储计算机程序,所述计算机程序包括程序指令,处理器1001用于调用存储器1004存储的程序指令,执行以下操作:
获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况;
获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况;
在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。
在一种可能的实现方式中,游戏纹理数据是由目标云游戏对应云服务器中的引擎插件创建的;云服务器还包含图像编码器;其中,云服务器中的引擎插件和图像编码器属于两个独立的处理进程,并基于进程通信协议进行交互;
引擎插件在创建游戏纹理数据后,通过进程通信协议将游戏纹理数据的纹理句柄和对应的同步对象发送到图像编码器。
在一种可能的实现方式中,处理器1001还用于执行以下操作:
引擎插件将创建的多个游戏纹理数据依次排列,得到目标纹理队列;
从目标纹理队列中获取一个游戏纹理数据作为渲染目标,并采用渲染目标对应的游戏纹理数据进行游戏画面的渲染;
通过进程通信协议向图像编码器发送渲染目标对应游戏纹理数据的纹理句柄和同步对象,以使图像编码器获取得到纹理句柄和同步对象。
在一种可能的实现方式中,当读取结果为读取成功时,图像编码器能成功从同步对象中获取针对游戏画面的渲染完成情况;处理器1001根据读取结果从同步对象中获取针对游戏画面的渲染完成情况,用于执行以下操作:
通过图像编码器解析所述同步对象,并从解析的同步对象中获取得到游戏画面的渲染完成情况。
在一种可能的实现方式中,当读取结果为读取失败时,图像编码器不能成功从同步对象中获取针对游戏画面的渲染完成情况;处理器1001根据读取结果从同步对象中获取针对游戏画面的渲染完成情况,用于执行以下操作:
通过中央处理器解析同步对象;
将中央处理器解析同步对象后得到的游戏画面的渲染完成情况,发送到图像编码器,以使图像编码器得到针对游戏画面的渲染完成情况。
在一种可能的实现方式中,处理器1001还用于执行以下操作:
获取图像编码器支持的编码接口,其中,一个编码接口支持对相应的一个或多个同步机制对应生成的同步对象进行解析;
获取与游戏纹理数据对应的同步对象关联的参考同步机制;
在编码接口支持的同步机制包含参考同步机制时,确定图像编码器对同步对象的读取结果为读取成功,否则,则确定图像编码器对同步对象的读取结果为读取失败。
在一种可能的实现方式中,采用图像编码器对获取的游戏画面进行编码处理之后,处理器1001还用于执行以下操作:
在图像编码器确定采用图像编码器对游戏画面的编码处理完成时,生成编码完成的通知消息,通知消息携带有已完成编码的游戏纹理数据的纹理句柄;
图像编码器基于进程通信协议,将生成的编码完成的通知消息发送至引擎插件。
在一种可能的实现方式中,处理器1001还用于执行以下操作:
引擎插件从图像编码器获取编码完成的通知消息,并从通知消息中解析得到已完成编码的游戏纹理数据的纹理句柄;
将纹理句柄所指示的游戏纹理数据添加至目标纹理队列中。
在一种可能的实现方式中,游戏纹理数据是从目标纹理队列中获取的待渲染纹理数据;处理器1001获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,用于执行以下操作:
根据游戏纹理数据进行游戏画面的渲染,并为游戏纹理数据对应的游戏画面关联创建纹理句柄;
根据游戏纹理数据,结合云服务器中所采用的参考同步机制,创建游戏纹理数据对应的同步对象。
在一种可能的实现方式中,处理器1001采用图像编码器对获取的游戏画面进行编码处理之后,还用于执行以下操作:
获取采用图像编码器对获取的游戏画面完成编码处理后得到的图像编码数据;
基于实时通讯协议将图像编码数据发送至运行目标云游戏的游戏客户端,并从目标纹理队列中获取下一个游戏纹理数据进行游戏画面的渲染;
其中,接收到图像编码数据的所述游戏客户端用于对图像编码数据进行解码处理后,输出目标云游戏的游戏画面。
在一种可能的实现方式中,处理器1001还用于执行以下操作:
对图像编码数据进行加密处理,得到加密编码数据;
基于实时通讯协议将加密编码数据发送至游戏客户端,以使游戏客户端从加密编码数据中解密得到的图像编码数据,并对图像编码数据进行解码处理后,输出目标云游戏的游戏画面。
本申请实施例中,首先,可以获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,该纹理句柄用于关联基于游戏纹理数据渲染得到的游戏画面,该同步对象用于指示游戏纹理数据对游戏画面的渲染完成情况;然后,获取图像编码器对同步对象的读取结果,并根据读取结果从同步对象中获取针对游戏画面的渲染完成情况;最后,在获取的渲染完成情况指示已采用游戏纹理数据完成游戏画面的渲染时,通过纹理句柄获取关联的游戏画面,并采用图像编码器对获取的游戏画面进行编码处理。由此可见,在进行游戏画面的渲染过程,是由单独的图像编码器负责对游戏画面进行编码处理的,编码处理过程更加灵活;并且,无须等待游戏画面渲染完成后才将游戏画面发送至图像编码器进行编码,而是将用于渲染游戏画面的游戏纹理数据所关联的游戏句柄和同步对象共享至图像编码器,可以使得图像编码器基于同步对象确定游戏画面完成渲染后,基于纹理句柄对关联的游戏画面进行编码处理,使得云游戏的处理过程更加灵活、便捷。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文所对应实施例中的方法,因此,这里将不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文所对应实施例中的方法,因此,这里将不再进行赘述。
本领域普通技术对象可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种云游戏的图像处理方法,其特征在于,包括:
获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,所述纹理句柄用于关联基于所述游戏纹理数据渲染得到的游戏画面,所述同步对象用于指示所述游戏纹理数据对游戏画面的渲染完成情况;
获取图像编码器对所述同步对象的读取结果,并根据所述读取结果从所述同步对象中获取针对所述游戏画面的渲染完成情况;
在获取的渲染完成情况指示已采用所述游戏纹理数据完成所述游戏画面的渲染时,通过所述纹理句柄获取关联的游戏画面,并采用所述图像编码器对获取的游戏画面进行编码处理。
2.如权利要求1所述的方法,其特征在于,所述游戏纹理数据是由所述目标云游戏对应云服务器中的引擎插件创建的;所述云服务器还包含所述图像编码器;
其中,所述云服务器中的引擎插件和图像编码器属于两个独立的处理进程,并基于进程通信协议进行交互;
所述引擎插件在创建所述游戏纹理数据后,通过所述进程通信协议将所述游戏纹理数据的纹理句柄和对应的同步对象发送到所述图像编码器。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
所述引擎插件将创建的多个游戏纹理数据依次排列,得到目标纹理队列;
从所述目标纹理队列中获取一个游戏纹理数据作为渲染目标,并采用所述渲染目标对应的游戏纹理数据进行游戏画面的渲染;
通过所述进程通信协议向所述图像编码器发送所述渲染目标对应游戏纹理数据的纹理句柄和同步对象,以使所述图像编码器获取得到所述纹理句柄和所述同步对象。
4.如权利要求1所述的方法,其特征在于,当所述读取结果为读取成功时,所述图像编码器能成功从所述同步对象中获取针对所述游戏画面的渲染完成情况;所述根据所述读取结果从所述同步对象中获取针对所述游戏画面的渲染完成情况,包括:
通过所述图像编码器解析所述同步对象,并从解析的同步对象中获取得到所述游戏画面的渲染完成情况。
5.如权利要求1所述的方法,其特征在于,当所述读取结果为读取失败时,所述图像编码器不能成功从所述同步对象中获取针对所述游戏画面的渲染完成情况;所述根据所述读取结果从所述同步对象中获取针对所述游戏画面的渲染完成情况,包括:
通过中央处理器解析所述同步对象;
将所述中央处理器解析所述同步对象后得到的所述游戏画面的渲染完成情况,发送到所述图像编码器,以使所述图像编码器得到针对所述游戏画面的渲染完成情况。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述图像编码器支持的编码接口,其中,一个编码接口支持对相应的一个或多个同步机制对应生成的同步对象进行解析;
获取与所述游戏纹理数据对应的同步对象关联的参考同步机制;
在所述编码接口支持的同步机制包含所述参考同步机制时,确定所述图像编码器对所述同步对象的读取结果为读取成功,否则,则确定所述图像编码器对所述同步对象的读取结果为读取失败。
7.如权利要求1所述的方法,其特征在于,所述采用所述图像编码器对获取的游戏画面进行编码处理之后,还包括:
在所述图像编码器确定采用所述图像编码器对所述游戏画面的编码处理完成时,生成编码完成的通知消息,所述通知消息携带有已完成编码的游戏纹理数据的纹理句柄;
所述图像编码器基于进程通信协议,将生成的编码完成的通知消息发送至所述引擎插件。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述引擎插件从所述图像编码器获取编码完成的通知消息,并从所述通知消息中解析得到已完成编码的游戏纹理数据的纹理句柄;
将所述纹理句柄所指示的游戏纹理数据添加至目标纹理队列中。
9.如权利要求1所述的方法,其特征在于,所述游戏纹理数据是从目标纹理队列中获取的待渲染纹理数据;所述获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,包括:
根据所述游戏纹理数据进行游戏画面的渲染,并为所述游戏纹理数据对应的游戏画面关联创建纹理句柄;
根据所述游戏纹理数据,结合所述云服务器中所采用的参考同步机制,创建所述游戏纹理数据对应的同步对象。
10.如权利要求3所述的方法,其特征在于,所述采用所述图像编码器对获取的游戏画面进行编码处理之后,还包括:
获取采用所述图像编码器对获取的游戏画面完成编码处理后得到的图像编码数据;
基于实时通讯协议将所述图像编码数据发送至运行所述目标云游戏的游戏客户端,并从目标纹理队列中获取下一个游戏纹理数据进行游戏画面的渲染;
其中,接收到所述图像编码数据的所述游戏客户端用于对所述图像编码数据进行解码处理后,输出所述目标云游戏的游戏画面。
11.如权利要求10所述的方法,其特征在于,所述方法还包括:
对所述图像编码数据进行加密处理,得到加密编码数据;
基于实时通讯协议将所述加密编码数据发送至所述游戏客户端,以使所述游戏客户端从所述加密编码数据中解密得到的图像编码数据,并对所述图像编码数据进行解码处理后,输出所述目标云游戏的游戏画面。
12.一种云游戏的图像处理装置,其特征在于,包括:
获取单元,用于获取目标云游戏对应游戏纹理数据的纹理句柄和同步对象,所述纹理句柄用于关联基于所述游戏纹理数据渲染得到的游戏画面,所述同步对象用于指示所述游戏纹理数据对游戏画面的渲染完成情况;
所述获取单元,还用于获取图像编码器对所述同步对象的读取结果,并根据所述读取结果从所述同步对象中获取针对所述游戏画面的渲染完成情况;
处理单元,用于在获取的渲染完成情况指示已采用所述游戏纹理数据完成所述游戏画面的渲染时,通过所述纹理句柄获取关联的游戏画面,并采用所述图像编码器对获取的游戏画面进行编码处理。
13.一种计算机设备,其特征在于,包括:存储装置和处理器;
存储器,所述存储器中存储一条或多条计算机程序;
处理器,用于加载所述一条或多条计算机程序实现如权利要求1-11中任一项所述的云游戏的图像处理方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-11中任一项所述的云游戏的图像处理方法。
15.一种计算机程序产品,其特征在于,所述计算程序产品包括计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-11中任一项所述的云游戏的图像处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211743596.5A CN118267700A (zh) | 2022-12-30 | 2022-12-30 | 云游戏的图像处理方法、装置、计算机设备、介质及产品 |
PCT/CN2023/129615 WO2024139724A1 (zh) | 2022-12-30 | 2023-11-03 | 图像处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211743596.5A CN118267700A (zh) | 2022-12-30 | 2022-12-30 | 云游戏的图像处理方法、装置、计算机设备、介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118267700A true CN118267700A (zh) | 2024-07-02 |
Family
ID=91635278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211743596.5A Pending CN118267700A (zh) | 2022-12-30 | 2022-12-30 | 云游戏的图像处理方法、装置、计算机设备、介质及产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118267700A (zh) |
WO (1) | WO2024139724A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10304421B2 (en) * | 2017-04-07 | 2019-05-28 | Intel Corporation | Apparatus and method for remote display and content protection in a virtualized graphics processing environment |
US10594901B2 (en) * | 2017-11-17 | 2020-03-17 | Ati Technologies Ulc | Game engine application direct to video encoder rendering |
CN113041617B (zh) * | 2021-03-18 | 2022-07-26 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏画面渲染方法、装置、设备及存储介质 |
-
2022
- 2022-12-30 CN CN202211743596.5A patent/CN118267700A/zh active Pending
-
2023
- 2023-11-03 WO PCT/CN2023/129615 patent/WO2024139724A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024139724A1 (zh) | 2024-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111882626B (zh) | 图像处理方法、装置、服务器及介质 | |
CN112316424B (zh) | 一种游戏数据处理方法、装置及存储介质 | |
JP6310073B2 (ja) | 描画システム、制御方法、及び記憶媒体 | |
CN113209632B (zh) | 一种云游戏的处理方法、装置、设备及存储介质 | |
US8876601B2 (en) | Method and apparatus for providing a multi-screen based multi-dimension game service | |
CN112870711B (zh) | 一种云游戏的处理方法、装置、设备及存储介质 | |
CN111654720B (zh) | 视频编码方法、装置、设备及可读存储介质 | |
KR20120119504A (ko) | 게임 스트리밍 서비스 시스템 및 방법 | |
US20230291808A1 (en) | Data processing method and apparatus, device and medium | |
CN109309842B (zh) | 直播数据处理方法和装置、计算机设备和存储介质 | |
CN112791399B (zh) | 云游戏画面的显示方法及装置、***、介质、电子设备 | |
JP6379107B2 (ja) | 情報処理装置並びにその制御方法、及びプログラム | |
US8860720B1 (en) | System and method for delivering graphics over network | |
CN104998412A (zh) | 一种单机游戏实现方法及装置 | |
JP7419554B2 (ja) | ゲーム内プレイヤー支援用に事前に記録されたゲームプレイビデオのサーフェシング | |
WO2024037110A1 (zh) | 数据处理方法、装置、设备以及介质 | |
CN115955590A (zh) | 视频处理方法、装置、计算机设备、介质 | |
Kim et al. | Multi-view rendering approach for cloud-based gaming services | |
CN115794139A (zh) | 镜像数据处理方法、装置、设备以及介质 | |
US8908775B1 (en) | Techniques for video data encoding | |
CN118267700A (zh) | 云游戏的图像处理方法、装置、计算机设备、介质及产品 | |
KR20130109904A (ko) | 멀티스크린 기반의 다차원 게임 서비스 방법 및 그 장치 | |
US20230421779A1 (en) | Decoding processing method and apparatus, computer device, and storage medium | |
US11870830B1 (en) | Embedded streaming content management | |
Stensland et al. | Using a commodity hardware video encoder for interactive applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |