CN115242759A - 一种云游戏处理方法、装置、计算机设备和介质 - Google Patents
一种云游戏处理方法、装置、计算机设备和介质 Download PDFInfo
- Publication number
- CN115242759A CN115242759A CN202210829301.XA CN202210829301A CN115242759A CN 115242759 A CN115242759 A CN 115242759A CN 202210829301 A CN202210829301 A CN 202210829301A CN 115242759 A CN115242759 A CN 115242759A
- Authority
- CN
- China
- Prior art keywords
- frame rate
- preset
- parameter
- encoding
- adjustment
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 claims abstract description 100
- 238000012545 processing Methods 0.000 claims abstract description 69
- 238000001514 detection method Methods 0.000 claims description 148
- 238000013139 quantization Methods 0.000 claims description 80
- 230000008859 change Effects 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 50
- 230000002159 abnormal effect Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 21
- 238000011896 sensitive detection Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 8
- 230000005856 abnormality Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 description 16
- 238000009877 rendering Methods 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000003247 decreasing effect Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了一种云游戏处理方法、装置、计算机设备和介质,该云游戏处理方法包括:获取目标云游戏的预设编码参数,以及目标云游戏的参考编码参数;预设编码参数是指对目标云游戏进行编码处理时期望的编码参数,参考编码参数是指对目标云游戏进行编码处理时可支持的编码参数;对预设编码参数和参考编码参数进行匹配,并基于对预设编码参数和参考编码参数之间的匹配结果,获取关于预设编码参数的参数调整策略;按照参数调整策略对预设编码参数进行调整处理,得到调整编码参数,并按照调整编码参数对目标云游戏进行编码处理。本申请实施例可由云服务器执行,能够自适应地对预设编码参数进行调整,实现对云游戏的灵活编码。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种云游戏处理方法、装置、计算机设备和介质。
背景技术
随着云计算技术的发展,云游戏以一种全新的方式带来高品质的游戏体验。在云游戏的场景下,游戏可以运行在服务器端,游戏画面的渲染、编码等均由服务器提供相关的硬件资源实现,终端无需高端的处理器和显卡等硬件配置,可基于接收到的已编码数据即可呈现游戏画面。经研究表明,在对云游戏的编码处理环节,当前对云游戏的编码处理存在灵活性较低的问题,由此,如何实现对云游戏的灵活编码,成为了当前的研究热点。
发明内容
本申请实施例提供一种云游戏处理方法、装置、计算机设备和介质,可以自适应地对预设编码参数进行调整,实现对云游戏的灵活编码。
一方面,本申请实施例提供了一种云游戏处理方法,包括:
获取目标云游戏的预设编码参数,以及目标云游戏的参考编码参数;预设编码参数是指对目标云游戏进行编码处理时期望的编码参数,参考编码参数是指对目标云游戏进行编码处理时可支持的编码参数;
对预设编码参数和参考编码参数进行匹配,并基于对预设编码参数和参考编码参数之间的匹配结果,获取关于预设编码参数的参数调整策略;
按照参数调整策略对预设编码参数进行调整处理,得到调整编码参数,并按照调整编码参数对目标云游戏进行编码处理。
一方面,本申请实施例提供了一种云游戏处理装置,包括:
获取模块,用于获取目标云游戏的预设编码参数,以及目标云游戏的参考编码参数;预设编码参数是指对目标云游戏进行编码处理时期望的编码参数,参考编码参数是指对目标云游戏进行编码处理时可支持的编码参数;
匹配模块,用于对预设编码参数和参考编码参数进行匹配,并基于对预设编码参数和参考编码参数之间的匹配结果,获取关于预设编码参数的参数调整策略;
调整编码模块,用于按照参数调整策略对预设编码参数进行调整处理,得到调整编码参数,并按照调整编码参数对目标云游戏进行编码处理。
相应地,本申请实施例提供了一种计算机设备,包括:处理器、存储器以及网络接口;处理器与存储器、网络接口相连,其中,网络接口用于提供网络通信功能,存储器用于存储程序代码,处理器用于调用程序代码,以执行本申请实施例中云游戏处理方法。
相应地,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本申请实施例中云游戏处理方法。
相应地,本申请实施例提供了一种计算机程序产品,计算机程序产品包括计算机程序或计算机指令,计算机程序或计算机指令被处理器执行时实现本申请实施例的云游戏处理方法。
在本申请实施例中,可获取目标云游戏的两种编码参数,包括预设编码参数以及参考编码参数,对预设编码参数以及参考编码参数进行匹配,并基于这两种编码参数之间的匹配可获取关于预设编码参数的参考调整策略,按照该参考调整策略对预设编码参数进行调整,得到调整编码参数,并按照该调整编码参数对目标云游戏进行编码处理。预设编码参数是对目标云游戏进行编码处理时所期望的编码参数,属于云游戏编码处理的预期数据,参考编码参数是对目标云游戏进行编码处理时所支持的编码参数,属于云游戏编码处理的实际数据,通过对这两种编码参数进行匹配,可以得知预期数据和实际数据之间的差异,并基于该差异获取合适的参考调整策略,通过参数调整策略可自适应地对预设编码参数进行调整,从而实现对预设编码参数的灵活设置,以使得调整后的预设编码参数适用云游戏中实际的编码处理情况。通过合适的调整编码参数对目标云游戏进行编码处理,可以充分利用编码资源,提升对目标云游戏进行编码处理的处理效果,或者是解决画面流畅度的问题,实现对目标云游戏的灵活编码。
附图说明
图1是本申请实施例提供的一种云游戏处理系统的架构图;
图2是本申请实施例提供的一种云游戏处理方法的流程示意图;
图3是本申请实施例提供的另一种云游戏处理方法的流程示意图;
图4a是本申请实施例提供的一种第一时间窗口和单位时间的关系示意图;
图4b是本申请实施例提供的一种自适应调整预设帧率的流程示意图;
图5是本申请实施例提供的又一种云游戏处理方法的流程示意图;
图6a是本申请实施例提供的一种第二时间窗口和第一时间窗口的关系示意图;
图6b是本申请实施例提供的另一种自适应调整预设帧率的流程示意图;
图7是本申请实施例提供的一种云游戏处理装置的结构示意图;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
云游戏是一种以云计算技术为基础的在线游戏技术。云计算技术属于一种云技术,所谓云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。其中,云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
在云游戏场景下,游戏并不在游戏客户端运行,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输至游戏客户端。将游戏场景渲染为视频音频流的过程具体包括对游戏画面的渲染以及对游戏画面的编码。在对云游戏的游戏画面进行编码处理的过程中,服务器中的编码模块(或者说编码器)可以基于预设编码参数对渲染完成的游戏图像帧进行编码处理,游戏图像帧的渲染可以由渲染模块,如服务器中的图形处理器(Graphics Processing Unit,GPU)完成。编码完成的游戏图像帧可通过网络实时地传输至游戏客户端进行显示。本申请实施例中,游戏图像和游戏画面在不做特别说明下可代表相同的含义。
如图1是本申请实施例提供的一种云游戏处理系统的架构图。该云游戏处理系统包括终端11和至少一个服务器12,终端11和服务器12之间可以通过有线或无线的方式建立通信连接。需要说明的是,终端11包括但不限于:智能手机、平板电脑、智能可穿戴设备、智能语音交互设备、智能家电、个人电脑、车载终端等等设备,本申请对此不作限制。对于终端设备的数量,本申请不做限制。服务器12可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliverNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。对于服务器的数量,本申请不做限制。
终端11中可运行目标云游戏的游戏客户端,该游戏客户端与部署在服务器中的目标云游戏关联,此处的关联是指目标云游戏可从游戏客户端获取游戏指令,并在服务器中基于获取的游戏指令控制所述游戏客户端运行,所述游戏客户端则基于服务器的控制进行游戏画面的显示,其中,该目标云游戏可以是服务器所运行的至少一个云游戏中的任一个。具体地,在目标云游戏运行过程中,终端11可以通过鼠标、键盘、触控等产生相应的操作指令,并将产生的操作指令回传到服务器12中,以使得服务器12接收操作指令后进行游戏画面的渲染等。此处服务器12接收的操作指令可以是任意类型的指令,例如用于控制目标云游戏的游戏画面中人物行走的控制指令、用于切换目标云游戏的游戏场景的切换指令等等,服务器接收到任意类型的操作指令均可对相应游戏画面进行渲染,并在对渲染完成的游戏画面进行编码处理之后,以视频流的方式传输至终端11进行显示。举例来说,服务器12接收到用于控制目标云游戏的游戏画面中人物行走的控制指令之后,可以对人物行走的游戏画面进行渲染,从而使得终端11接收服务器12返回的人物行走的游戏画面并进行显示。可见,目标云游戏的游戏画面是通过操作指令在服务器中远程渲染的。
服务器12用于为至少一个云游戏的运行提供相关服务,此处相关服务包括但不限于:渲染云游戏的游戏画面、对渲染好的游戏画面进行编码处理等。由于服务器12提供渲染功能,且云游戏的游戏画面存在实时传输的需求,因此服务器12可以是带有GPU的云端边缘服务器,对于GPU生成的游戏图像可以转换为视频流,并通过网络实时地传输到终端11中进行显示。
服务器12中可预先配置有相关的编码参数,例如帧率和码率,其中帧率是在图像领域中的定义,具体是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数,单位为帧/秒(即fps),帧率越大,画面越流畅。在云游戏场景下,此处为服务器预先配置的帧率称为预设帧率,是服务器对目标云游戏进行编码处理时预期的帧率。码率也称比特率BitRate,或称为位速率,码率是单位时间内视频(或音频)的数据量,单位是bps(bit persecond,位每秒),一般使用kbps(千位每秒)或Mbps(百万位每秒),不同的码率决定着编码器压缩视频的程度,码率是决定视频质量和文件大小的关键因素。此处为云游戏预先配置的码率可称为预设码率,该预设码率是服务器对目标云游戏进行编码处理所期望的视频数据量。预设帧率和预设码率属于对目标云游戏进行编码处理所期望的编码参数,基于预设帧率和预设码率可以决定编码的单帧游戏画面的平均大小,举例来说,预设码率为60Mbps,预设帧率为30fps,那么平均一帧游戏画面的大小为2M左右,游戏画面的大小可描述在游戏客户端呈现的游戏画面质量。其中,预设帧率可以是为编码模块默认设置的,也可以将预设帧率的设置提供给玩家,例如在游戏客户端提供帧率设置功能,玩家基于该帧率设置功能所设置的帧率即为服务器中编码模块的预设帧率;预设码率由网络带宽决定,具体可以由网络层根据网络资源和网络状况等情况进行自主设置。编码模块对于渲染模块在单位时间内传送过来一定数量的游戏画面帧,在经过编码之后该一定数量的游戏画面帧的大小的总和接近预期。对云游戏的游戏画面进行编码处理还包括实际的编码参数,例如实际帧率和实际码率,实际帧率在编码之前渲染模块(如GPU)向编码模块(如编码器)传输渲染完成的游戏画面帧的速度,即单位时间内传输的游戏画面帧数目,例如实际帧率为30fps即表示每秒传送30张游戏画面帧给编码器。实际码率是通过编码模块对渲染完成的游戏画面帧进行编码后的实际编码结果,沿用前述示例,预设码率为60Mbps,预设帧率为30fps,实际帧率也为30fps,对于1s内输出的编码后信息大小为60M,实际码率为60Mbps。由于实际的编码参数和预设的编码参数之间通常是存在差距的,在此情况下,在服务器12对目标云游戏的游戏画面进行编码处理的过程中,可能存在以下问题:
(1)在实际帧率明显小于预设帧率时,编码模块对于渲染模块传输过来的每帧游戏画面可以按照预设编码参数进行编码,最终编码结果的实际码率也是明显小于预设码率的,这样会造成预设码率的浪费以及画质非最优化,但是不会影响整体游戏进程。举例来说,预设码率为60Mbps,预设帧率为30fps,那么一帧游戏画面的平均大小大约为2M,如果实际帧率为15fps,编码后的实际码率约为30Mbps,实际码率远小于预设码率,而预设码率是由网络带宽决定的,在单位时间内传输的视频量大小并没有对所分配的网络带宽进行充分的利用,因此,造成了码率的浪费,并且画质也还有进一步地提升空间,例如将60M带宽资源编码15帧游戏画面,平均单帧游戏画面的大小约为4M,因此按照之前设置的编码参数(预设码率为60Mbps,预设帧率为30fps),平均单帧游戏画面的大小约为2M的画质并非最优选择。
(2)在实际帧率明显大于预设帧率时,基于前述类似的分析,最终编码结果的实际码率会明显大于预设码率。但是由于分配的带宽资源和预设码率是适配的,实际码率的超出会导致带宽资源的不够用,从而导致网络传输的卡顿,进而导致游戏客户端游戏画面的卡顿,影响游戏体验。
基于此,本申请提出了一种自适应调整预设编码参数的方案。具体而言,可获取目标云游戏的预设编码参数和参考编码参数,预设编码参数是对目标云游戏进行编码处理时期望的参数,参考编码参数是对目标云游戏进行编码处理时可支持的参数,通过对这两种编码参数进行匹配,可得知对目标云游戏的游戏画面进行编码处理时期望的数据是否与支持的数据接近,从而基于两种编码参数之间的匹配结果获取到用于调整预设编码参数的参数调整策略,采用该参数调整策略自动调整预设编码参数,得到调整后的预设编码参数(即调整编码参数),可以实现对预设编码参数自适应调整,进而得到合适的预设编码参数的配置,按照该调整编码参数对目标云游戏进行编码处理,可以与目标云游戏的实际编码情况相适应,实现编码处理的最佳效果,提升编码的灵活性。
按照参数调整策略对预设编码参数的调整过程,一般是指对该预设编码参数中所包含的预设帧率的调整,在本申请实施例中指出的关于该预设编码参数的调整过程,也是针对该预设帧率实行的调整,也即是说,上述提及的按照参数调整策略对预设编码参数进行调整的过程,是通过对预设帧率和参考帧率进行比对,获取相应的帧率调整策略,从而实现的对预设帧率进行自适应的调整过程,而基于对预设帧率的自适应调整,可在保证画面流畅度的情况下实现对预设码率的充分利用,提高画面质量,并可有效地解决因网络传输导致的画面卡顿问题,从而实现对游戏图像的灵活编码。
请参见图2,图2是本申请实施例提供的一种云游戏处理方法的流程示意图,该云游戏处理方法可由上述的服务器(一种计算机设备)执行,该云游戏处理方法可包括以下步骤S201~S203:
S201,获取目标云游戏的预设编码参数,以及目标云游戏的参考编码参数。
目标云游戏是服务器中包含的至少一个云游戏中正在运行的任一云游戏。目标云游戏的预设编码参数是指对目标云游戏进行编码处理时期望的编码参数。预设编码参数是指为服务器中编码模块预先配置的编码参数,编码模块按照预设编码参数可对目标云游戏进行编码处理,具体包括对目标云游戏的游戏画面进行编码处理,预设编码参数可反映预期编码结果。在一种实现方式中,预设编码参数包括预设帧率和预设码率,预设帧率是指在单位时间内编码的图像帧数目,例如30fps,表示编码模块期望在1秒内编码30帧图像。预设码率是指在单位时间内编码压缩的视频数据量,例如30Mbps,表示每秒可以编码压缩得到30M的视频,预设帧率和预设码率可以共同决定编码的单帧游戏画面的平均大小,实际的编码处理过程中每秒处理的一定数量的游戏画面帧的大小的总和接近预设码率的值。
参考编码参数是指对目标云游戏进行编码处理时可支持的编码参数。该参考编码参数是真正执行编码处理过程的实际数据。在一种实现方式中,参考编码参数包括参考帧率,参考帧率是指单位时间内传送的渲染完成的游戏图像帧数目,具体可以是服务器中的渲染模块(如GPU)向编码模块的送帧速度。参考帧率可称为实际送帧速度,或者是实际帧率。编码模块在单位时间内处理的图像帧数目可以等于渲染模块传输的图像帧数目,例如参考帧率为15fps,表示渲染模块在1秒内向编码模块传输了15帧图像,编码模块在1秒内接收到这15帧图像并对这些图像进行编码处理。编码模块可以对接收到的每帧图像按照预设编码参数配置进行编码处理,进而得到编码后的图像。本申请中所提及的对目标云游戏进行编码处理具体是指对目标云游戏的游戏画面进行编码处理。在一种实现方式中,参考编码参数还可以包括参考量化参数,该参考量化参数可以按照预设帧率进行编码所得到的量化参数,例如1s内编码15帧,每帧编码完之后统计一个量化参数,并对这15帧的量化参数进行平均后得到一个参考量化参数。
由于服务器中的编码模块在单位时间内实际处理的游戏图像帧数目可能并不会达到预期处理的游戏图像帧数目,也有可能偶然超出预期处理的游戏图像帧数目,这样实际编码结果和预期编码结果是存在差距的,从而可能会影响云游戏的游戏体验。在此情况下,可以对可控的预设编码参数进行调整,以减小实际编码结果和预期编码结果之间的差异。具体可参见S202~S203介绍的内容。
S202,对预设编码参数和参考编码参数进行匹配,并基于对预设编码参数和参考编码参数之间的匹配结果,获取关于预设编码参数的参数调整策略。
对预设编码参数和参考编码参数进行匹配是指:对该预设编码参数的取值和参考编码参数的取值进行大小比对,具体的,由于对预设编码参数的调整过程是关于预设帧率的调整过程,所以,该计算机设备对该预设编码参数的取值和参考编码参数的取值进行大小比对的过程,即是对预设编码参数包含的预设帧率和参考编码参数包含的参考帧率进行大小比对的过程。可以理解,预设编码参数和参考编码参数之间的匹配可以反映预期的数据和实际的数据之间的差距,基于两种编码参数之间的匹配结果可以决定是否对预设编码参数进行调整,从而在确定需调整预设编码参数时获取关于预设编码参数的参数调整策略,该参数调整策略用于指示预设编码参数的调整方式。预设编码参数包括预设帧率时,参数调整策略具体可以指示预设帧率的调整方式。需要说明的是,在调整预设帧率的过程中,通常是保持预设码率不变而调整预设帧率。这样可以调整平均一帧游戏图像编码出来的大小,从而使得实际编码结果与预期编码结果之间更接近。
由于预设编码参数和参考编码参数之间的匹配结果可指示预设编码参数和参考编码参数两者之间的大小关系,如可指示预设编码参数中的预设帧率大于参考编码参数中的参考帧率,或可指示设编码参数中的预设帧率小于参考编码参数中的参考帧率。其中,在预设帧率和参考帧率之间取得不同的匹配结果时,对服务器关于目标云游戏的编码过程的影响存在差异,因此针对不同匹配结果所获取到的参数调整策略也会存在一定的差异。但是参考调整策略与相应的匹配结果所适配的,这样可以实现对预设编码参数的灵活调整。
S203,按照参数调整策略对预设编码参数进行调整处理,得到调整编码参数,并按照调整编码参数对目标云游戏进行编码处理。
由于参数调整策略是与预设编码参数中预设帧率和参考编码参数中参考帧率之间的比对所取得的匹配结果对应的,匹配结果可以包括指示预设编码参数中的预设帧率大于参考编码参数中的参考帧率的第一匹配结果,以及预设编码参数中的预设帧率小于参考编码参数中的参考帧率的第二匹配结果。因此,计算机设备获取到的参数调整策略也可以包括两种:在匹配结果为第一匹配结果时,对应的参数调整策略可以是调低预设帧率的调整策略。通过调低预设编码参数包括的预设帧率可以减小原本的预设帧率,并使得调整后的预设帧率与参考帧率接近。基于参考调整策略对预设编码参数包括的预设帧率过程可以包括:根据参考帧率确定一个低于预设帧率的帧率,并将该帧率作为调低预设帧率之后的调整帧率。在匹配结果为第二匹配结果时,对应的参数调整策略是调高预设帧率的调整策略。通过调高预设编码参数包括的预设帧率可以增大原本的预设帧率,并使得调整后的预设帧率与参考帧率接近。基于参考调整策略对预设编码参数包括的预设帧率进行调整的过程包括:基于参考帧率确定一个高于预设帧率的帧率,可将该帧率作为调高预设帧率之后的调整帧率。
在一种可选的实施方式,可以持续地对目标云游戏的编码参数进行监测,并在存在参数调整需求时调用参数调整策略对编码参数进行调整。例如在第一次按照参数调整策略调整预设编码参数中的预设帧率之后,调整帧率可以作为新的预设帧率,若新的预设帧率与参考帧率之间的匹配结果触发对编码参数的调整,则可以获取参数调整策略,再次按照相应的参数调整策略调整该新的预设帧率。也即是说,对目标云游戏进行编码处理的预设帧率可以被迭代调整,从而适应实际的编码处理。
在一个可行的实施方式中,还可基于经验数据对预设编码参数包括的预设帧率进行调整。例如在某类主流场景的游戏中,存在多种固定帧率作为经验数据,在对预设帧率进行调高或者调低时,可根据参考编码参数包括的参考帧率直接从中选取合适的经验数据,对预设帧率进行调整,例如直接将选取的经验数据作为调整后的预设帧率。
按照参数调整策略对预设编码参数的调整处理得到的调整编码参数,是调整后的预设编码参数。通过参考调整策略可以基于实际的匹配情况灵活地调整预设编码参数,实现对预设编码参数的自适应调整。在一种可行的实现方式中,参考调整策略中可指示参考编码参数为预设编码参数的调整提供参考依据,使得对预期的编码参数调整与参考编码参数相适应。此处的相适应可以是调整后的预设编码参数与参考编码参数之间的差距在阈值范围内,这样两个编码参数尽可能接近。在预设编码参数调整之后,可按照调整后的预设编码参数对目标云游戏进行编码处理,可以在合适的编码参数配置下提高目标云游戏的编码效果,有效地应对云游戏场景中由于实际的数据和预期的数据所导致的各种问题,提升游戏体验。针对不同的云游戏配置和场景,均可基于本方法灵活地设置与实际游戏场景适配的预设编码参数。
在一个实施例中,目标云游戏运行于服务器中;服务器或者与目标云游戏关联的游戏客户端中设置有帧率优化开关。该帧率优化开关是用于指示是否开启自适应调整预设编码参数中的预设帧率功能的开关,可以对不同游戏控制是否采用自适应调整策略对预设帧率进行调整。本申请提供的云游戏处理方法还包括:响应于针对帧率优化开关的开启指令,执行获取目标云游戏的预设编码参数,以及目标云游戏的参考编码参数的步骤。其中,开启指令是在帧率优化开关被开启而产生的,当设置在游戏客户端时,帧率优化开关的开启指令是由玩家触发该帧率优化开关而产生的,当设置在服务器一侧时,开发人员可以设置该帧率优化开关的开启或者关闭状态,从而生成开启指令或者是关闭指令。在该帧率优化开关被开启时,可以控制对云游戏的编码处理采用本方案的自适应调整策略,对云游戏运行过程中的实际编码情况进行自主地判断,在预设编码参数中的预设帧率需要调整时,按照参数调整策略灵活地调整预设编码参数中的预设帧率。当帧率优化开关处于关闭状态,则按照固定的预设编码参数对目标云游戏进行编码。
本申请实施例所提供的云游戏处理方法,可获取目标云游戏的两种编码参数,包括预设编码参数以及参考编码参数,其中,预设编码参数是对目标云游戏进行编码处理时期望的编码参数,参考编码参数是对目标云游戏进行编码处理时可支持的编码参数,通过预设编码参数可反映云游戏编码处理的预期情况,通过参考编码参数可反映云游戏编码处理的实际情况,对以上两种编码参数进行匹配,可获知预期情况和实际情况之间的差异,基于两种编码参数之间的匹配结果获取合适的参考调整策略,采用参考调整策略可根据参考编码参数对预设编码参数进行自适应调整,实现对预设编码参数的灵活设置。通过调整预期的编码参数可得到调整后的预设编码参数,调整后的预设编码参数与对目标云游戏中实际的编码处理相适应,实现对云游戏编码参数的灵活配置,采用调整后的预设编码参数对目标云游戏进行编码处理,可实现对云游戏的灵活编码,提升编码处理效果。针对云游戏的不同编码参数配置以及不同的云游戏,均可实现对预期的编码参数进行灵活地设置和调整,以提升编码的灵活性。
请参见图3,图3是本申请实施例提供的另一种云游戏处理方法的流程示意图,该云游戏处理方法可由计算机设备(如图1中的任一服务器12)执行,该云游戏处理方法可包括以下步骤S301~S305:
S301,获取目标云游戏的预设编码参数,以及目标云游戏的参考编码参数。
编码参数包含帧率,预设编码参数包含预设帧率,参考编码参数包含参考帧率。预设帧率是指对目标云游戏进行编码处理所期望的帧率,例如编码模块1秒内所期望处理的游戏图像帧数目,预设帧率也可理解为预期的送帧速度,属于可控的编码参数,在一段时间内可以是固定不变的。参考帧率是指对目标云游戏进行编码处理所支持的帧率,例如编码模块能够在1秒内接收到多少帧即处理多少帧,参考帧率可理解为实际的送帧速度,属于不可控的编码参数,在一段时间内可能是变化波动的。
在一种实现方式中,参考编码参数是在包括N个单位时间的第一时间窗口内获取得到的,参考编码参数包括参考帧率。N为大于等于1的整数。第一时间窗口是一个具备时间长度的监测窗口,例如时间长度为10s(秒)的监测窗口。单位时间是指第一时间窗口内一个时间单位的时间。N个单位时间可基于单位时间的时间长度对第一时间窗口的时间长度进行划分得到的。示例性地,对于第一时间窗口和单位时间的关系示意图,可参见图4a,第一时间窗口的时间长度为10s,单位时间为1s,第一时间窗口内包括10个1s的单位时间,且每个单位时间内的游戏图像帧数目为5帧,表示实际帧率为5fps。
为便于理解,本申请中单位时间的时间长度取值为1s,每隔单位时间可以对统计到的编码参数进行分析,进而确定出参考编码参数。参考编码参数包含的参考帧率是指目标云游戏进行编码处理时可支持的帧率。具体可以是在第一时间窗口内渲染模块向编码模块在某个单位时间内的实际送帧数目。例如,在10s的第一时间窗口中第4s内(即第4个单位时间)的实际送帧数目。在对目标云游戏进行编码处理的过程中,通过第一时间窗口可以对目标云游戏的参考编码参数进行持续监测,在预定的时间点(即每个单位时间结束的时间点)统计并更新参考编码参数。
通过第一时间窗口获取参考编码参数包含的参考帧率的方式包括以下步骤S3011-S3012:S3011,获取与第一时间窗口关联的帧率列表;S3012,从帧率列表记录的至少一个帧率中选取出最大帧率,并将最大帧率作为通过第一时间窗口获取的参考帧率。
帧率列表与第一时间窗口关联是指:帧率列表是基于第一时间窗口内N个单位时间对应的帧率而生成的。由此,帧率列表记录了至少一个帧率,一个帧率与一个单位时间对应。至少一个帧率在此具体是N个帧率。其中,帧率是指单位时间内传输的画面帧数目。在云游戏场景下,具体是指渲染模块向编码模块在单位时间内的实际送帧数目,也可称为实际帧率。在一种实现方式中,在第一时间窗口内每隔单位时间可以统计该单位时间内的实际送帧数目,一个单位时间内的实际送帧数目可以转换为一个帧率,从而获取到N个帧率。例如10s的第一时间窗口,单位时间为1s,每1s的实际送帧数目为20帧,那么10个帧率均为20fps。
在一个实施例中,在N等于1时,第一时间窗口的时间长度和单位时间的时间长度是相等的,帧率列表中记录了1个帧率。举例来说,时间长度为1s,的第一时间窗口,单位时间也为1s,单位时间的实际送帧数目为15帧,那么第一时间窗口内的帧率即15fps,该帧率可以直接记录至帧率列表。
在另一个实施例中,在N大于等于2时,第一时间窗口包括的N个单位时间是基于时间顺序依次排列的,帧率列表中的第i个帧率是基于对应的第i个单位时间被记录到帧率列表中的,i为小于等于N的正整数。具体地,N个单位时间在第一时间窗口内顺序排列,第i个单位时间可以为N个单位时间中的任一个。举例来说,第一时间窗口的时间长度为10s且第一时间窗口包括10个1s的单位时间,第一时间窗口内第1s即第一个单位时间,第2s即第二个单位时间,依次类推,第10s即第10个单位时间,10个单位时间在第一时间窗口内按照对应的时间顺序依次排列。每达到一个单位时间,就可以统计一个帧率,第i个单位时间统计的帧率可以被记录到帧率列表中。
第i个帧率基于对应的第i个单位时间被记录到帧率列表的方式包括以下步骤(1)-(3):
(1)从帧率列表的i-1个已记录帧率中选取出最大已记录帧率,并基于第i个帧率和最大已记录帧率之间的帧率比值,对第i个帧率进行抖动检测,得到检测结果。
已记录帧率是指已经记录在帧率列表中的帧率。i大于1时,对于第i个单位时间来说,帧率列表中的已记录帧率是历史数据。在第i个单位时间距离第1个单位时间的时间间隔未达到第一时间窗口的时间长度时,可以每隔单位时间对统计到的帧率进行分析,第i个单位时间对应的帧率在符合要求时可以被记录到帧率列表中,再进入下一个单位时间的计时,并对第i+1个单位时间对应的帧率按照相同的方式进行分析。具体地,可以从帧率列表中选取出最大已记录帧率,该最大已记录帧率是帧率列表的已记录帧率中的最大值,通过最大已记录帧率和第i个单位时间对应的帧率之间的帧率比值进行抖动检测,可得到抖动检测结果。由于偶然的游戏场景变换或者是服务器的性能抖动可能会导致帧率出现波动,通过在第一时间窗口内对帧率进行持续监测,可以确定出帧率变化的稳定场景,而排除因性能抖动或者场景变换导致的帧率波动的瞬时场景。可以理解的是,i等于1时,第1个单位时间统计的帧率可以直接记录至帧率列表中,以便于为后续单位时间对应的帧率提供比对依据。
在一个可行的实施方式中,基于第i个帧率和最大已记录帧率之间的帧率比值,对第i个帧率进行抖动检测,得到检测结果,包括:获取第i个帧率和最大已记录帧率之间的帧率比值、比例阈值以及保持目标云游戏正常运行的帧率阈值;获取帧率比值和比例阈值之间的对比结果,以及第i个帧率与帧率阈值之间的对比结果;在帧率比值小于等于比例阈值且第i个帧率大于帧率阈值时,确定第i个帧率通过抖动检测;否则,确定第i个帧率未通过抖动检测。
比例阈值是用于判别第i个帧率是否抖动的阈值。第i个帧率和最大已记录帧率之间的帧率比值代表了第i个帧率和最大已记录帧率之间的帧率差距,帧率比值具体可以是第i个帧率/最大已记录帧率。举例来说,第i个帧率为15fps,最大已记录帧率为30fps,那么第i个帧率15fps除以最大已记录帧率30fps得到的帧率比值为0.5,每秒传送的画面帧数目的差距为50%。
帧率比值和比例阈值之间的比对结果可以指示第i个帧率是否抖动,具体地,在帧率比值和比例阈值之间的比对结果为帧率比值小于或者等于比例阈值时,说明第i个帧率和最大已记录帧率之间的帧率差距在可接受范围内,可以认为第i个帧率不是由于抖动而突变的帧率,为了进一步保证目标云游戏的正常运行,可使用帧率阈值与第i个帧率进行比较,该帧率阈值是云游戏运行的最低帧率,通常云游戏正常运行的帧率不会低于该值,例如30fps,以保证游戏体验。
当帧率比值小于等于比例阈值,且第i个帧率大于等于帧率阈值时,帧率阈值≤第i个帧率≤比例阈值*最大已记录帧率,说明第i个帧率不是由于抖动而突变的帧率且可以保证游戏正常运行,因此可确定第i个帧率通过抖动检测。
以上任意一个条件没有满足,即在帧率比值大于比例阈值或者是第i个帧率小于帧率阈值时,就可以认为第i个帧率不是稳定场景下变化的帧率,进而确定第i个帧率未通过抖动检测。具体地,帧率比值大于比例阈值说明第i个帧率和最大已记录帧率之间的帧率差距超出了稳定变化的可接受范围,可能是由于服务器性能抖动或者是场景抖动而引起的;或者第i个帧率低于帧率阈值不能保证目标云游戏的正常运行,对于游戏画面流畅度存在一定影响,可以视为第i个帧率为异常帧率。举例来说,第一时间窗口的时间长度为10s,每隔1s可以统计获取到的实际送帧数目value0,并且对于value0可以判断是否能够通过抖动检测。如对于第5s的实际帧率value0,在帧率列表list0中包含前4s的实际送帧速度,最大值为value1,比例阈值记为a1,帧率阈值记为f1,若value0/value1≤a1且f1≤value0,也即a1*value1≤value0≤f1,则可以确定通过抖动检测。若a1<value0/value1或者value0<f1,也即a1*value1<value0或者value0<a1*value1,则确定未通过抖动检测。
可见,对第i个帧率的抖动检测可以结合最大已记录帧率、比例阈值以及帧率阈值,通过比例阈值衡量当前统计到的帧率和已记录帧率之间的帧率差距,通过帧率阈值衡量当前统计到的帧率是否影响云游戏的运行。这样可以将第i个帧率能否通过抖动检测的条件限定到具体的范围,进而准确地判别第i个帧率是否是因为偶然因素发生的抖动,有利于统计可靠的帧率,以对预设编码参数是否需要调整进行准确判别。针对第i个帧率通过抖动检测或者是未通过抖动检测的处理具体包含以下(2)和(3)所介绍的方式。
(2)当检测结果指示第i个帧率通过抖动检测时,将第i个帧率记录到帧率列表中。
检测结果指示第i个帧率通过抖动检测,说明第i个帧率的波动是在稳定场景下的波动,而不是偶然的抖动造成的,此时可以将第i个帧率记录到帧率列表中,以用于对第i+1个帧率进行检测。需要说明的是,第一时间窗口包括N个单位时间,每个单位时间对应的帧率都可以按照上述方式进行检测,从而将N个帧率记录到帧率列表中,以便于从帧率列表中筛选出参考帧率进行后续处理。
(3)当检测结果指示第i个帧率未通过抖动检测时,清空帧率列表中的已记录帧率,并更新第一时间窗口;在更新的第一时间窗口中获取参考帧率。
检测结果指示第i个帧率未通过抖动检测,说明第i个帧率是由于服务器性能抖动或者是游戏场景变换的抖动而导致帧率波动,此时可以清空帧率列表中已记录帧率,并在新的第一时间窗口内统计帧率,以保证帧率列表中记录的帧率是可靠的数据。此处更新第一时间窗口是指对第一时间窗口进行重新计时,举例来说,假设确定出第3s的帧率未通过抖动检测,那么可以清空帧率列表中已记录的2个帧率,并对第一时间窗口重新计时,即从第3s作为更新的第一窗口的第1s重新统计帧率。基于更新的第一时间窗口重新开启新一轮的数据监测,此时帧率列表是与更新的第一时间窗口关联的,按照相同的方式获取更新的第一时间窗口对应的帧率列表,参考帧率是基于更新的第一时间窗口内统计的帧率确定的。
可以理解的是,在第一时间窗口内对帧率进行抖动检测时,只要出现第1个未通过抖动检测的帧率,那么帧率列表中所记录的帧率均会被清除,从而无法得到记录第一时间窗口内各个单位时间对应的所有帧率的帧率列表。但是,若第一时间窗口内各个单位时间对应的帧率都通过了抖动检测,第一窗口内统计到的所有帧率均被记录至帧率列表中,从而能够获取到N个帧率。
通过对第i个帧率进行抖动检测,依据检测结果可确定是否将该帧率记录至帧率列表中,这样可以避免因为偶然的游戏场景变化或者是服务器性能抖动而统计到不准确的数据,保证帧率列表中数据的可靠性,以及对预设编码参数调整的必要性,提升预设编码参数调整的准确性。
由于第一时间窗口包括N个单位时间,帧率列表中的帧率是基于对应的单位时间被记录的,因此,帧率列表中记录有N个帧率。在一种实现方式中,当N等于1时,第一时间窗口的时间长度和单位时间的时间长度是相等的,帧率列表中记录了1个帧率,该帧率即最大帧率,可直接作为通过第一时间窗口获取到的参考帧率。在另一种实现方式中,当N大于等于2时,可以从N个帧率中选取出最大帧率,进而将该最大帧率作为通过第一时间窗口获取的参考帧率。举例来说,帧率列表中包含10个帧率,则可以从这10个帧率中选取出一个最大帧率作为参考帧率,该最大帧率是第一时间窗口内统计到的实际送帧速度的最大值。
通过帧率列表对单位时间的帧率进行记录,可以十分方便地获取到最大帧率。最大帧率可以作为统计到的所有帧率中的代表数据,将最大帧率作为参考帧率,便于之后与预设编码参数中的预设帧率进行比对,由于最大帧率可以代表性地说明在该时间段内实际帧率与预设帧率之间的差距,基于帧率之间的比对可以决定是否触发调整预设编码参数的策略。
需要说明的是,在第一时间窗口内,除了获取单位时间的实际帧率,还可以在单位时间内获取编码帧(即已编码的游戏图像帧)的平均量化参数、关于预设编码参数(如预设码率和预设帧率)的变更信息等等。通过设置一个时间长度为t1的第一时间窗口,可以在对目标云游戏进行编码处理的过程中,每隔t1时间就统计并更新有关编码处理的信息。例如每秒的实际送帧数目(即实际帧率),每秒编码帧的量化参数,记录是否存在其他相关编码参数(如预设码率,预设帧率等)的修改的变更信息等,从而便于之后的分析。
通常,参考帧率和预设帧率之间存在差距,参考帧率小于或等于预设帧率,即实际送帧速度可能并不是预期的送帧速度,按照前述分析,这可能造成实际编码结果中预设码率大于实际码率,对于码率资源的利用不够充分,从而导致资源的浪费。参考帧率也可能由于突增而大于预设帧率,按照相同的分析,实际编码结果中实际码率可能明显大于预设码率,这样传输资源不够,可能造成画面卡顿。而由于参考编码参数是不可控的,实际处理过程中的情况无法被左右,因此可以按照相应的参数调整策略对可控的预设编码参数进行调整,具体可以对预设帧率进行调整,需要说明的是,在对预设帧率进行调整的过程中,预设码率可以保持不变。在不同情况下的参数调整策略也有所差异,以应对云游戏场景下编码结果的不同影响。基于对预设编码参数和参考编码参数之间的匹配结果,获取关于预设编码参数的参数调整策略的具体实现方式可以包括如下步骤S302~S304。
S302,基于预设编码参数包含的预设帧率,以及参考编码参数包含的参考帧率之间的对比,确定关于预设帧率的调整方向。
预设帧率和参考帧率之间的对比可以采用相应的比对策略进行比对。这是因为如果预设帧率和参考帧率之间差距太小,采用参数调整策略对预设帧率进行频繁地调整对于编码模块来说不是很友好,如果预设帧率和参考帧率之间的差距太大再进行调整,又有可能影响目标云游戏的画面流畅度,降低游戏体验。因此,采用对比策略对预设帧率和参考帧率之间的比对进行约束,可以为预设帧率和参考帧率之间的比对提供更加科学的依据,这样预设帧率的调整是在必要的情况下执行。
由于具体是对可控的预设帧率的调整,因此,依据预设帧率和参考帧率之间的比对,首先可以确定出调整方向。该调整方向包括增大预设帧率的方向和减小预设帧率的方向。在增大预设帧率的方向上可以通过增大预设帧率,将预设帧率向着参考帧率靠近,在减小预设帧率的方向上可以通过减小预设帧率,将预设帧率向着参考帧率靠近。在参考帧率明显大于预设帧率时,可以是增大预设帧率的方向,在参考帧率明显小于预设帧率时,可以是减小预设帧率的方向。
在一个实施例中,参考编码参数是在第一时间窗口内获取得到的,参考帧率是从帧率列表中选取出的最大帧率。对于参考帧率的获取方式可以参见前述S301中的介绍,在此不做详述。S302包括:基于预设编码参数包含的预设帧率,确定帧率上界和帧率下界,帧率上界和帧率下界构成目标帧率区间;从帧率列表中选取出最小帧率,并基于最大帧率和最小帧率,对帧率列表进行帧率异常检测;在帧率列表通过帧率异常检测,且参考帧率处于目标帧率区间时,确定关于预设帧率的调整方向为减小预设帧率的方向。
具体地,基于预设帧率和第一阈值比例可确定出帧率上界,预设帧率和第二与之比例可确定出帧率下界,其中第一阈值比例大于第二阈值比例。举例来说,第一阈值比例设置为0.8,第二阈值比例设置为0.2,目标帧率区间即为[0.2*预设帧率,0.8*预设帧率]。目标帧率区间是用于判定参考帧率是否明显小于预设帧率的区间。从第一时间窗口关联的帧率列表中选取出最大帧率处于该目标帧率区间内,表明实际帧率和预设帧率之间的差距达到调整标准,且不存在实际帧率过低的异常情况。并且,还可以获取帧率列表中的最大帧率(如每秒的实际送帧数目的最大值valuemax)和最小帧率(如每秒的实际送帧数目的最大值valuemin),并比较两者之间的差距(如最小帧率除以最大帧率的值)是否小于第三阈值比例(如0.2),从而实现对帧率列表中帧率异常检测,此处通过最大帧率和最小帧率实现的异常检测具体是对帧率列表中记录的帧率的稳定性的检测。若帧率列表通过帧率异常检测,说明帧率列表中记录的帧率是稳定的,即时帧率不一致也是在可接受的范围内波动。反之,则说明帧率列表中记录的帧率并不是稳定的。以上内容可以作为参考帧率和预设帧率之间的比对策略。
满足以上两个条件,包括帧率列表通过帧率异常检测以及参考帧率处于目标帧率区间,可以认为参考帧率是符合调低预设帧率的要求的,进而可确定预设帧率的调整方向为减小预设帧率的方向。以上任一个条件没有满足,则可以清空帧率列表中的帧率,并更新第一时间窗口,按照前述相同的步骤执行到此。
可见,参考帧率明显小于预设帧率时,对于预设帧率调整方向的确定是十分严苛的,通过多个条件的保障可以更加可靠地确定预设帧率的调整方向,进而确定预设帧率的调整是有必要的。
S303,获取关于预设编码参数的变更信息。
由于预设编码参数是可控的编码参数,对于预设编码参数的设置可以支持被外部修改,例如将预设编码参数中的预设帧率提供给玩家进行更改,因此,会在预设编码参数被修改时会产生变更信息。关于预设编码参数的变更信息可用于指示预设编码参数是否发生变更。在一种实现方式中,预设编码参数包含预设码率和预设帧率,关于预设编码参数的变更信息可用于指示预设帧率是否被外部修改而发生变更。关于预设帧率的变更可以由人工设置而产生,例如玩家在游戏客户端修改帧率。可选地,关于预设编码参数的变更信息也可包含用于指示预设码率是否变更的信息,此处关于预设码率的变更是由网络层决定的,网络层对网络性能的检测可以适应性地修改预设码率,将预设码率纳入变更的范围,是因为在预设帧率保持不变的情况下,预设码率的变更会影响平均单帧游戏画面的大小。
可以理解的是,预设编码参数中预设帧率的变更会直接影响原本的预设帧率与参考帧率之间的比对实际情况。举例来说,在第一时间窗口内统计帧率的过程中,任一时刻玩家更改了预设帧率,帧率列表中用于比对的数据变化了,该第一时间窗口内统计到的帧率可能并不是可靠的数据,因此,第一时间窗口中的统计数据可以被清空,并重新开启新一轮的数据监测。在此获取关于预设编码参数的变更信息可以对预设帧率是否调整进行更加准确地判定,保证用于分析的帧率列表中的帧率以及预设帧率的可靠性。
在一个实施例中,若参考编码参数是在第一时间窗口内获取得到的,参考编码参数还包括至少一个参考量化参数,其中,一个单位时间对应一个参考量化参数。一个单位时间包含所述目标云游戏的至少一帧游戏图像,一帧游戏图像是采用相应的量化参数进行编码处理的。也就是说,每编码完一帧游戏图像可以统计到一个量化参数(QuantizerParameter,简称QP),进而得到一个单位时间内编码完的每帧游戏图像对应的量化参数。该量化参数是量化步长Qstep的序号,用于反映空间细节压缩情况。
一个单位时间对应的参考量化参数是对所述一个单位时间包含的任一游戏图像帧对应的量化参数进行平均后得到的。也就是说,单位时间内编码完的各帧游戏图像对应的量化参数的平均值,即参考量化参数。举例来说,第一时间窗口的时间长度为10秒,单位时间为1秒,帧率为15fps,每1秒有15帧游戏图像被编码,每帧游戏图像对应1个量化参数,这样1s内可对统计到的15个量化参数进行平均,得到的平均值即作为参考量化参数,第一时间窗口内可以获取到10个参考量化参数。可见,在第一时间窗口内,除了对帧率进行统计,还可统计编码帧(即编码后对图像帧)的参考量化参数。
基于此,在执行步骤S303之前,还包括以下内容:基于至少一个参考量化参数确定出平均量化参数,并将平均量化参数和量化参数阈值进行对比;在平均量化参数高于量化参数阈值时,触发执行获取关于预设编码参数的变更信息。
具体地,在第一时间窗口内可获取到N个参考量化参数,对这N个量化参数进行平均,可以得到平均量化参数。量化参数阈值用于衡量目标云游戏的画面质量。由于量化参数的值越小,量化越精细,编码处理时大部分的细节都会被保留,图像质量也就越高,产生的码流也越长。量化参数的值越大,编码处理时细节丢失会更多,码率降低,图像失真严重和质量下降。因此,通过将平均量化参数和量化参数阈值进行比对,可以确定对目标云游戏进行编码处理时保留的细节是否达到要求。若平均量化参数小于等于量化参数阈值,例如平均量化参数QPave小于等于量化参数阈值10,则表示目标云游戏的当前游戏场景下的画面质量已经非常好,无需进行预设帧率的调整,不用触发检测预设编码参数是否发生变更。进一步地,可以清空当前第一时间窗口内统计到的数据,例如帧率列表中的帧率,并更新第一时间窗口,在更新的第一时间窗口内开启新一轮的数据监测。反之,若平均量化参数大于量化参数阈值,则说明目标云游戏的当前场景的画面质量还有进一步地提升空间,因此,可以进一步检测预设编码参数是否发生变更,具体可以通过获取到的关于预设编码参数的变更信息确定。
S304,在变更信息指示预设编码参数未变更时,获取与调整方向匹配的帧率调整策略。
其中,帧率调整策略是关于预设编码参数的参数调整策略。在一种实现方式中,预设编码参数包括预设帧率和预设码率,预设编码参数未变更是指预设帧率未变更。可选地,预设编码参数未变更也可以是指预设帧率和预设码率均未变更。变更信息指示预设编码参数未变更,也即预设编码参数没有被修改时,可获取关于预设编码参数的参数调整策略,此处具体为关于预设帧率的帧率调整策略,该帧率调整策略用于指示对预设编码参数中预设帧率的调整方式。帧率调整策略与调整方向匹配是指对预设帧率的调整与调整方向相关。例如调整方向为增大预设帧率的方向,那么帧率调整策略是指示增大预设帧率的策略。反之,在变更信息指示预设编码参数变更时,则可以重新获取目标云游戏的预设编码参数和参考编码参数,此时预设编码参数是变更后的预设编码参数,例如修改后的预设帧率。并且在重新获取预设编码参数或参考编码参数的过程中,目标云游戏的编码处理是正常进行的,具体是按照修改后的预设帧率进行编码。
在一个实施例中,预设编码参数包括预设帧率,对预设编码参数进行调整处理是针对预设编码参数中预设帧率进行调整处理,参数调整策略是关于预设帧率的帧率调整策略,帧率调整策略与确定的调整方向相匹配。按照参数调整策略对预设编码参数进行调整处理,得到调整编码参数,并按照调整编码参数对目标云游戏进行编码处理,具体可以是:按照帧率调整策略对预设帧率进行调整处理,得到调整帧率,并按照调整帧率对目标云游戏进行编码处理。此步骤的具体介绍可参见S305。
S305,按照帧率调整策略对预设帧率进行调整处理,得到调整帧率,并按照调整帧率对目标云游戏进行编码处理。
在一个实施例中,在确定的调整方向为减小预设帧率的方向时,按照帧率调整策略对预设帧率进行调整处理,得到调整帧率的方式包括:获取第一调整参数;采用第一调整参数对参考编码参数中的参考帧率进行更新,得到更新后的参考帧率,其中,更新后的参考帧率小于预设帧率;将更新后的参考帧率作为减小预设帧率后得到的调整帧率。具体地,第一调整参数是允许帧率上浮波动的参数,例如允许10%的帧率上浮波动,那么第一调整参数可以设置为1.1。参考编码参数中的参考帧率可以是第一时间窗口关联的帧率列表中的最大帧率,例如获取到的每秒的实际送帧数目的最大值valuemax,采用第一调整参数对参考帧率进行更新具体可以是计算第一调整参数和参考帧率之间的乘积,从而得到更新后的参考帧率,预设帧率可以调低至该更新后的参考帧率,从而得到调整帧率,即更新后的参考帧率可以作为该调整帧率。此时调整帧率是减小之后的预设帧率。
在另一个实施例中,在确定的调整方向为减小预设帧率的方向时,按照帧率调整策略对预设帧率进行调整处理,得到调整帧率的方式包括:获取为所述目标云游戏设置的至少一个经验帧率;从所述至少一个经验帧率中选取出小于所述预设帧率且与所述参考帧率匹配的目标经验帧率,并将所述目标经验帧率作为减小预设帧率后得到的调整帧率。
为目标云游戏设置的至少一个经验帧率可以为目标云游戏的预设帧率的调整提供更多地可能性,这些经验帧率属于一种经验数据,该经验数据可以是一些主流的帧率,例如120fps。目标经验帧率是至少一个经验帧率中满足条件的经验帧率,该条件具体包括与参考帧率匹配以及小于预设帧率,与参考帧率匹配是指经验帧率与参考帧率最接近,即与参考帧率之间的差距最小,进而可以将其作为调整帧率,即预设帧率减小后得到的帧率。举例来说,针对某类主流场景的帧率相对固定的游戏,如主要包含40fps/75fps/120fps的几种场景,在对预设帧率进行调低时,可以根据实际帧率从经验数据中选取合适的数据作为修改后的预设帧率。如实际帧率为60fps,预设帧率为80fps,那么可以选取75fps作为调整帧率。通过经验数据可以避免对调整帧率的计算,而是直接从经验帧率中获取,更加简便快捷。
基于上述描述,示例性地,对于自适应调整预设帧率的流程示意图,可以参见图4b。在第一时间窗口内的监测数据包括预设编码参数和参考编码参数,其中,预设编码参数包括预设帧率、预设码率,参考编码参数包括参考帧率、参考量化参数。对于检测的判定包括以下内容:实际帧率是否符合调低帧率要求,具体可以参见前述基于参考帧率和预设帧率之间的比对确定关于预设帧率的调整方向的步骤,在符合调低帧率要求时,可以进一步确定平均量化参数是否高于量化参数阈值,进而在高于量化参数阈值时,说明画面质量还可以进一步提升,可以继续判定预设编码参数是否变更,在预设编码参数未变更时,可以按照帧率调整策略调低预设帧率。以上任一个判定不符合,可以按照未调整的预设编码参数进行正常编码,并开启新的第一时间窗口,重新执行上述分析。需要说明的是,对于预设编码参数是否变更的判定,也可以在平均量化参数是否大于量化参数阈值之前执行,或者是在实际帧率是否符合调低帧率之前执行,这是因为任意时刻预设编码参数变更可能会影响整体数据的统计,因此,对于具体地执行顺序可以不加以限制。
可见,在调整方向为减小预设帧率的方向时,可以通过第一调整参数和预设帧率实现对预设帧率的更新,其中,第一调整参数的存在允许预设帧率的调整更加灵活,预设帧率的调整参考了实际的参考帧率,减小之后的预设帧率是与参考帧率接近的,这样将调整帧率应用于目标云游戏的编码处理,可以保证对预设码率的充分利用,提高预先分配的带宽资源的利用率,还可以进一步提升画面质量。
本申请实施例提供的云游戏处理方案,可以基于预设编码参数中的预设帧率和参考编码参数中的参考帧率之间的比对,确定关于预设帧率的调整方向,并且结合关于预设编码参数的变更信息,获取关于预设帧率的帧率调整策略,这样可以使得帧率调整策略的获取是更加可靠且准确性更高的。在此基础之上,在第一时间窗口内还可以进一步获取量化参数,对当前编码的画面质量进行判定,从而综合更多信息确定是否可以触发帧率调整策略,可见,对于帧率调整策略的触发可以通过一个或多个判断条件确定的,保证帧率调整策略的可靠性以及触发调整帧率的策略的必要性。这些判断条件具体可用于判定是否触发调低预设帧率的策略,这是由于在参考帧率明显小于预设帧率时,画质可能不是最优化,但整体游戏进程是正常进行的,是否对预设帧率进行调整经过多重判断之后再决策,可以有效提高决策的准确性。
请参见图5,图5是本申请实施例提供的又一种云游戏处理方法的流程示意图,该云游戏处理方法可由计算机设备(如图1中的服务器12)执行,该云游戏处理方法可包括以下步骤S501~S505:
S501,获取目标云游戏的预设编码参数,以及目标云游戏的参考编码参数。
在一个实施例中,编码参数包括帧率,若参考编码参数是在对应时间长度小于单位时间的第二时间窗口内获取得到的;则说明预设编码参数包括第二时间窗口内的预设帧率,参考编码参数包括第二时间窗口内的参考帧率,具体地,此处的单位时间是第一时间窗口的单位时间,第二时间窗口的时间长度小于单位时间的时间长度,第一时间窗口的时间长度远大于第二时间窗口的时间长度。第二时间窗口是灵敏度更高的时间窗口,第一时间窗口是监测周期更长的时间窗口。举例来说,请参见图6a所示的第一时间窗口和第二时间窗口的关系示意图。第一时间窗口的时间长度为5秒,单位时间为1秒,第二时间窗口的时间长度为100毫秒,可见,对应时间长度上第二时间窗口是远小于第一时间窗口的。
这两个时间窗口可以同时存在,并按照相应的分析方式对各自时间窗口内获取到的编码参数进行分析。可以理解的是,第一时间窗口设置为监测周期更长的时间窗口,可以通过一定时间的持续监测判定当前是否处于需要调低预设帧率的稳定场景,而非偶然游戏场景变换或服务端的性能抖动导致的帧率出现波动。第二时间窗口是监测周期更短的时间窗口,在第二时间窗口内对于统计到的帧率是更加灵敏的,该第二时间窗口对应调高预设帧率的策略,通过更加频繁的监测和分析,可以在出现游戏画面卡顿时快速触发调高预设帧率的策略,实现对预设帧率的立即调整,避免长时间游戏卡顿造成的不良好的游戏体验。
通过第二时间窗口获取参考编码参数包含的参考帧率的方式包括:获取第二时间窗口的帧率,并按照单位时间对第二时间窗口的帧率进行折算,得到折算帧率;将折算帧率作为通过第二时间窗口获取的参考帧率。具体地,第二时间窗口内获取到的帧率是一个实际帧率,即在第二时间窗口的时间长度内的送帧数目,由于第二时间窗口不是单位时间,为便于比较,可以对第二时间窗口的帧率进行折算,得到的折算帧率即为参考帧率。举例来说,100毫秒的第二时间窗口内的送帧数目为10帧,那么第二时间窗口的帧率为10/100=0.1帧/毫秒。可以将其进行折算为每秒的实际送帧数目,即折算帧率为0.1*1000=100帧/秒,该折算帧率即为第二时间窗口获取到的参考帧率。
由于参考帧率明显大于预设帧率时,参考帧率对画面流畅度的影响是非常直接的,因此参考帧率和预设帧率之间的比对可以直接使用参考帧率和一个阈值进行比对,该阈值可以是基于预设帧率确定的。具体可以参见下述S502~S503的内容。
S502,获取检测阈值,并基于检测阈值和预设编码参数包含的预设帧率,确定检测帧率。
检测阈值用于对第二时间窗口内统计到的参考帧率和预设帧率之间的帧率差距进行检测。基于检测阈值和预设帧率之间的乘积可以得到检测帧率,该检测帧率可用于直接和参考帧率进行比较。在一个实施例中,检测阈值为平缓检测阈值或灵敏检测阈值,平缓检测阈值小于灵敏检测阈值;检测帧率可以根据该平缓检测阈值或者是灵敏检测阈值进行确定。例如,平缓检测阈值为1.1,灵敏检测阈值为1.2。那么,检测帧率可以是1.1*预设帧率,或者是1.2*预设帧率。
S503,将检测帧率与参考编码参数包含的参考帧率进行对比,并在参考帧率大于等于检测帧率时,确定关于预设帧率的调整方向为增大预设帧率的方向。
检测帧率和参考帧率可以进行对比,若参考帧率大于或者等于检测帧率,则说明参考帧率和预设帧率之间的帧率差距超过了检测阈值,参考帧率是比预设帧率更大的帧率,可以确定关于预设帧率的调整方向为增大预设帧率的方向。
在一个实施例中,在检测阈值为平缓检测阈值或者灵敏检测阈值时,对于预设帧率和参考帧率之间的比对方式有所区别,具体可参见如下(1)和(2):
(1)若检测帧率是根据灵敏检测阈值确定出的,则在参考帧率大于等于检测帧率时,直接确定关于预设帧率的调整方向为增大预设帧率的方向。
具体地,在检测阈值为灵敏检测阈值时,若参考帧率大于等于检测帧率,说明参考帧率和预设帧率之间的帧率比值大于等于该灵敏检测阈值,则直接判定出现了参考帧率突增的现象,即参考帧率明显大于预设帧率,进而确定预设帧率的调整方向为增大预设帧率的方向。反之,若参考帧率小于检测帧率,则说明参考帧率和预设帧率之间的帧率比值小于灵敏检测阈值,参考帧率和预设帧率之间的帧率差距不大,参考帧率没有出现突增的现象,不会由于网络传输过程中由于带宽不够造成明显地画面卡顿,此时无需调整预设帧率。而是可以开启下一个第二时间窗口来获取数据(例如预设帧率和参考帧率),以按照相同的方式进行分析是否具备触发参数调整策略的条件。
(2)若检测帧率是根据平缓检测阈值确定出的,则在参考帧率大于等于检测帧率时,确定关于预设帧率的调整方向为增大预设帧率的方向,包括:在参考帧率大于等于检测帧率时,确定第二时间窗口中的参考帧率异常;获取关联时间窗口中的参考帧率的异常结果;在确定第二时间窗口中的参考帧率异常,且异常结果指示关联时间窗口中的参考帧率异常时,确定产生帧率连续异常的情况,并将关于预设帧率的调整方向确定为增大预设帧率的方向。
其中,关联时间窗口处于第二时间窗口之前,且与第二时间窗口相邻并等长。关联时间窗口可包括多个处于第二时间窗口之前的时间窗口,关联时间窗口和第二时间窗口之间是相邻等时间长度等长的,可以认为是历史的第二时间窗口。举例来说,当前的第二时间窗口为100毫秒,那么关联时间窗口为上一个100毫秒的第二时间窗口。当关联时间窗口中的参考帧率大于等于检测帧率时,产生关联时间窗口中的参考帧率的异常结果,该异常结果用于指示关联时间窗口的参考帧率异常。若关联时间窗口的参考帧率异常,并且当前的第二时间窗口的参考帧率也是异常的,那么可以确定产生帧率连续异常的情况,进而确定预设帧率的调整方向为增大预设帧率的方向。
可见,相比于灵敏检测阈值,平缓检测阈值对于参考帧率的检测是更加严苛的,在产生帧率连续异常的情况下才确定出预设帧率的调整方向,这样可以避免参考帧率突增太小而导致的不必要调整;而在灵敏检测阈值下,对于参考帧率的检测是更加快速的,这样可以迅速地确定出预设帧率的调整方向,进而获取对应的帧率调整策略对预设帧率进行快捷地调整。
可以理解的是,由于灵敏检测阈值大于平缓检测阈值,因此参考帧率在处于根据灵敏检测阈值确定的检测帧率以及根据平缓检测阈值的检测帧率之间时,也可以采用如(2)中所介绍的方案,即在连续多个的第二时间窗口内检测出参考帧率异常,则可以确定预设帧率的调整方向为增大预设帧率的方向。需要说明的是,在对预设帧率调整结束后,在之后的时间同样可以设置相同时间长度的第二时间窗口进行监测,并按照本方法所提供的内容对第二时间窗口的参考帧率进行分析。
S504,获取与调整方向匹配的帧率调整策略。
本实施例中,帧率调整策略是关于预设编码参数中预设帧率的参数调整策略。此处与调整方向匹配具体是指与增大预设帧率的方向匹配,帧率调整策略用于指示增大预设帧率的调整方式。按照参数调整策略对预设编码参数进行调整处理,得到调整参数,并按照调整参数对目标云游戏进行编码处理具体可参见S505所介绍的内容。
需要说明的是,执行S504步骤之前,可以获取关于所述预设编码参数的变更信息,该变更信息用于指示预设编码参数中的预设帧率是否变更。可选地,该变更信息也可用于指示预设编码参数中的预设码率是否变更。在一种实现方式中,在所述变更信息指示所述预设编码参数未变更时,可以执行S504步骤;在所述变更信息指示所述预设编码参数变更时,可以更新第二时间窗口,并在更新后的第二时间窗口内重新获取编码参数。在另一种实现方式中,无论预设编码参数是否变更,都可以执行S504步骤。这是由于第二时间窗口的时间长度太小时(例如毫秒级别),对于预设帧率的变更可能来不及调整,而获取到的关于预设编码参数的变更信息中包含的变更后的预设帧率,可用于作为调整预设帧率的参考值。
S505,按照帧率调整策略对预设帧率进行调整处理,得到调整帧率,并按照调整帧率对目标云游戏进行编码处理。
此处帧率调整策略是与增大预设帧率的方向匹配的参数调整策略,可用于调高预设帧率,以得到调整后的预设帧率,即调整帧率。在一个实施例中,在调整方向为增大预设帧率的方向时,帧率调整策略支持多种不同的调整策略。按照帧率调整策略对预设帧率进行调整,得到调整帧率的方式包括如下(1)-(4)中的任一种:
(1)按照第二调整参数对参考编码参数中的参考帧率进行更新,得到更新后的参考帧率;更新后的参考帧率被作为增大预设帧率后得到的调整帧率。
第二调整参数是允许帧率上浮波动的参数,例如第二调整参数设置为1.1,表示允许10%的帧率上浮波动。第二调整参数和第一调整参数可以相同或者不同,基于第二调整参数和参考帧率之间的乘积可以得到更新后的参考帧率,更新后的参考帧率大于预设帧率,预设帧率可以调高至该更新后的参考帧率,即增大预设帧率后得到的调整帧率即更新后的参考帧率。
(2)基于第二调整参数和参考帧率确定更新帧率阈值,并从目标云游戏的至少一个历史帧率中选取出目标历史帧率,目标历史帧率为大于等于更新帧率阈值的历史帧率,目标历史帧率被作为增大预设帧率后得到的调整帧率。
此方式下第二调整参数同上述方式(1),基于第二调整参数和参考帧率之间的乘积可以得到更新帧率阈值,该更新帧率阈值用于判别对预设帧率的调整界限。目标云游戏的历史帧率是指在当前调整之前按照本申请所提供的方法对预设帧率进行调整后得到的历史调整帧率,即历史设置过的预设帧率。从至少一个历史帧率中可选取出大于等于更新帧率阈值的历史帧率,并将其作为目标历史帧率,预设帧率可以调高至该目标历史帧率,得到调整后的预设帧率,即调整帧率为该目标历史帧率。历史设置过的预设帧率是具备参考性的,从历史帧率中选取可以提升预设帧率调整的可靠性。
(3)在变更信息指示对预设编码参数中的预设帧率发生变更时,将变更信息中包含的变更后的预设帧率,作为增大预设帧率后得到的调整帧率。
当外部修改了预设帧率,例如玩家通过游戏客户端修改了默认的预设帧率时,可以产生变更信息,通过变更信息可以得知预设帧率是否发生变更。在变更信息指示预设编码参数中预设帧率发生变更时,变更信息中包含变更后的预设帧率。此时可以将预设帧率调高至变更后的预设帧率,得到的调整帧率即该变更后的预设帧率,即外部修改的预设帧率。变更信息包含的变更后的预设帧率可以作为预设帧率调整的上限,当设置为该预设帧率时,可以达到玩家期望的最佳游戏体验。
(4)获取为目标云游戏设置的至少一个经验帧率,从至少一个经验帧率中选取出大于预设帧率且与参考帧率匹配的目标经验帧率,将目标经验帧率作为增大预设帧率后的调整帧率。
为目标云游戏设置的至少一个经验帧率可以为目标云游戏的预设帧率的调整提供更多地可能性,该经验数据可以是一些主流的帧率。目标经验帧率是至少一个经验帧率中满足条件的经验帧率,该条件具体包括与参考帧率匹配以及大于预设帧率,与参考帧率匹配是指经验帧率与参考帧率最接近,即与参考帧率之间的差距最小。进一步地可以将其作为调整帧率,即预设帧率增大后的值。举例来说,针对某类主流场景的帧率相对固定的游戏,如主要包含40fps/75fps/120fps的几种场景,都可以作为经验帧率,这些经验帧率属于一种经验数据,在对预设帧率进行调高时,可以根据实际帧率从经验数据中选取合适的数据作为修改后的预设帧率。如实际帧率为38fps,预设帧率为25fps,那么可以选取40fps作为调整帧率。通过经验数据可以避免对调整帧率的计算,而是直接从经验帧率中获取,更加简便快捷。
基于上述内容,示例性地,如图6b是本申请实施例提供的另一种自适应调整预设帧率的示意图。首先可以获取第二时间窗口的监测数据,在第二时间窗口内的监测数据包括预设编码参数和参考编码参数,其中,预设编码参数包括预设帧率、预设码率,参考编码参数包括参考帧率、参考量化参数。参考帧率是最大实际帧率。接着可以判断实际帧率是否符合调高帧率要求,具体地,可以参见前述对实际帧率和预设帧率之间的对比,确定关于预设帧率的调整方向为增大预设帧率的调整方向的步骤所描述的内容。在实际帧率符合调高帧率要求时,可以基于帧率调整策略(如前述介绍的多种策略中的任一种或多种的结合)调高预设帧率,在实际帧率不符合调高帧率要求时,可按照未调整的预设编码进行正常编码,并且开启新的第二时间窗口,重复以上分析。需要说明的是,整个流程中未将预设编码参数是否变更的判定加入是由于第二时间窗口是一个时间长度非常小的时间窗口,预设编码参数的变更可以不影响相应的判定,而是决定预设帧率调整的上限。需要说明的是,图4b和图6b所示的自适应调整策略可以在调整时择其一,对于时间窗口内的监测数据的分析可以同步进行。具体地,可以同时设置两个时间窗口开启对数据的监测,在第一时间窗口内可监测并统计编码前的实际送帧速度、编码后的量化参数,然后分析第一时间窗口对应的时间范围内,实际帧率和预设帧率的信息、平均量化参数以及编码参数的变更信息,同时,对于时间粒度更细的第二时间窗口t2,可以对实际帧率进行检测。在第一时间窗口内若实际帧率符合限制要求,且平均QP高于QP阈值,且期间不存在相关编码参数的修改,则根据实际帧率和预设帧率的差距自适应调整预设编码帧率,在第二时间窗口内若检测到实际帧率突增时,立即调整预设编码参数包括的预设帧率。针对不同的云游戏的编码参数配置和场景,均可以按照上述方案实现,实现对预设编码参数的灵活设置和调整,从而实现对游戏图像的灵活编码。
通过本申请实施例,可以对第二时间窗口中的参考编码参数包含的预设帧率进行检测,具体可以通过检测阈值确定用于和参考帧率进行对比的检测帧率,并设计了多种检测策略判定参考帧率是否异常,在参考帧率异常时,可以触发与调整方向匹配的帧率调整策略,从而实现对预设编码参数中预设帧率的自适应调整。由于参考帧率明显大于预设帧率时,对于编码结果的影响是实际码率远大于预设码率,这可能导致网络传输的卡顿进而导致游戏画面的卡顿,因此,对于调整预设帧率的策略的触发条件更加灵敏,第二时间窗口的时间长度更小,以便于更加灵活地检测到参考帧率是否发生突增现象,并便于迅速地对预设帧率进行调整,解决游戏画面卡顿的问题,根据目标云游戏配置和游戏场景进行自适应地调整帧率,可以自动地选择合适的预设帧率,实现对目标云游戏的灵活编码。
请参见图7,图7是本申请实施例提供的一种云游戏处理装置的结构示意图。上述云游戏处理装置可以是运行于计算机设备(即上述的服务器)中的一个计算机程序(包括程序代码),例如该云游戏处理装置为一个应用软件;该云游戏处理装置可以用于执行本申请实施例提供的方法中的相应步骤。如图7所示,该云游戏处理装置700可以包括以下至少一种:获取模块701、匹配模块702以及调整编码模块703。
获取模块701,用于获取目标云游戏的预设编码参数,以及目标云游戏的参考编码参数;预设编码参数是指对目标云游戏进行编码处理时期望的编码参数,参考编码参数是指对目标云游戏进行编码处理时可支持的编码参数;
匹配模块702,用于对预设编码参数和参考编码参数进行匹配,并基于对预设编码参数和参考编码参数之间的匹配结果,获取关于预设编码参数的参数调整策略;
调整编码模块703,用于按照参数调整策略对预设编码参数进行调整处理,得到调整编码参数,并按照调整编码参数对目标云游戏进行编码处理。
在一个实施例中,若参考编码参数是在包括N个单位时间的第一时间窗口内获取得到的,参考编码参数包含参考帧率,N为大于等于1的整数;则获取模块701具体用于:通过第一时间窗口获取参考帧率。在一种实现方式中,通过第一时间窗口获取参考帧率的方式包括:获取与第一时间窗口关联的帧率列表,帧率列表记录了至少一个帧率,其中,一个帧率与一个单位时间对应;从帧率列表记录的至少一个帧率中选取出最大帧率,并将最大帧率作为通过第一时间窗口获取的参考帧率。
在一个实施例中,在N大于等于2时,第一时间窗口包括的N个单位时间是基于时间顺序依次排列的,帧率列表中的第i个帧率是基于对应的第i个单位时间被记录到帧率列表中的,i为小于等于N的正整数;第i个帧率基于对应的第i个单位时间被记录到帧率列表的方式包括:从帧率列表的i-1个已记录帧率中选取出最大已记录帧率,并基于第i个帧率和最大已记录帧率之间的帧率比值,对第i个帧率进行抖动检测,得到检测结果;当检测结果指示第i个帧率通过抖动检测时,将第i个帧率记录到帧率列表中。
在一个实施例中,获取模块701,还用于:当检测结果指示第i个帧率未通过抖动检测时,清空帧率列表中的已记录帧率,并更新第一时间窗口;在更新的第一时间窗口中获取参考帧率。
在一个实施例中,获取模块701,还用于:获取第i个帧率和最大已记录帧率之间的帧率比值、比例阈值以及保持目标云游戏正常运行的帧率阈值;获取帧率比值和比例阈值之间的对比结果,以及第i个帧率与帧率阈值之间的对比结果;在帧率比值小于等于比例阈值且第i个帧率大于帧率阈值时,确定第i个帧率通过抖动检测;否则,确定第i个帧率未通过抖动检测。
在一个实施例中,若参考编码参数是在对应时间长度小于单位时间的第二时间窗口内获取得到的;则获取模块701,还用于:通过第二时间窗口获取参考编码参数包含的参考帧率。在一种实现方式中,通过第二时间窗口获取参考编码参数包含的参考帧率的方式包括:获取第二时间窗口的帧率,并按照单位时间对第二时间窗口的帧率进行折算,得到折算帧率;将折算帧率作为通过第二时间窗口获取的参考帧率。
在一个实施例中,编码参数包含帧率;匹配模块702,还用于:基于预设编码参数包含的预设帧率,以及参考编码参数包含的参考帧率之间的对比,确定关于预设帧率的调整方向;获取关于预设编码参数的变更信息;在变更信息指示预设编码参数未变更时,获取与调整方向匹配的帧率调整策略,帧率调整策略为关于预设编码参数的参数调整策略。
在一个实施例中,若参考编码参数是在第一时间窗口内获取得到的,参考编码参数还包括至少一个参考量化参数,其中,一个单位时间对应一个参考量化参数;调整编码模块703,用于:基于至少一个参考量化参数确定出平均量化参数,并将平均量化参数和量化参数阈值进行对比;在平均量化参数高于量化参数阈值时,触发执行获取关于预设编码参数的变更信息。
在一个实施例中,若参考编码参数是在第一时间窗口内获取得到的,则参考帧率是从帧率列表中选取出的最大帧率;调整编码模块703,还用于:基于预设编码参数包含的预设帧率,确定帧率上界和帧率下界,帧率上界和帧率下界构成目标帧率区间;从帧率列表中选取出最小帧率,并基于最大帧率和最小帧率,对帧率列表进行帧率异常检测;在帧率列表通过帧率异常检测,且参考帧率处于目标帧率区间时,确定关于预设帧率的调整方向为减小预设帧率的方向。
在一个实施例中,对预设编码参数进行的调整处理是针对预设编码参数中预设帧率的调整处理,参数调整策略是关于预设帧率的帧率调整策略,帧率调整策略与确定的调整方向相匹配;调整编码模块703,用于:按照帧率调整策略对预设帧率进行调整处理,得到调整帧率。在一种实现方式中,按照帧率调整策略对预设帧率进行调整处理,得到调整帧率的方式包括:在调整方向为减小预设帧率的方向时,获取第一调整参数;采用第一调整参数对参考编码参数中的参考帧率进行更新,得到更新后的参考帧率,其中,更新后的参考帧率小于预设帧率;将更新后的参考帧率作为减小预设帧率后得到的调整帧率。
在一个实施例中,若参考编码参数是在第二时间窗口内获取得到的;调整编码模块703,还用于:获取检测阈值,并基于检测阈值和预设编码参数包含的预设帧率,确定检测帧率;将检测帧率与参考编码参数包含的参考帧率进行对比,并在参考帧率大于等于检测帧率时,确定关于预设帧率的调整方向为增大预设帧率的方向。
在一个实施例中,检测阈值为平缓检测阈值或灵敏检测阈值,平缓检测阈值小于灵敏检测阈值;若检测帧率是根据灵敏检测阈值确定出的,则在参考帧率大于等于检测帧率时,直接确定关于预设帧率的调整方向为增大预设帧率的方向。
在一个实施例中,若检测帧率是根据平缓检测阈值确定出的;则调整编码模块703,还用于:在参考帧率大于等于检测帧率时,确定第二时间窗口中的参考帧率异常;获取关联时间窗口中的参考帧率的异常结果,关联时间窗口处于第二时间窗口之前,且与第二时间窗口相邻并等长;在确定第二时间窗口中的参考帧率异常,且异常结果指示关联时间窗口中的参考帧率异常时,确定产生帧率连续异常的情况,并将关于预设帧率的调整方向确定为增大预设帧率的方向。
在一个实施例中,对预设编码参数进行的调整处理是针对预设编码参数中预设帧率的调整处理,参数调整策略是关于预设帧率的帧率调整策略,帧率调整策略与确定的调整方向相匹配;按照帧率调整策略对预设帧率进行调整处理,得到调整帧率的方式包括:在调整方向为增大预设帧率的方向时,按照第二调整参数对参考编码参数中的参考帧率进行更新,得到更新后的参考帧率,其中,更新后的参考帧率大于预设帧率;更新后的参考帧率被作为增大预设帧率后得到的调整帧率;或者,基于第二调整参数和参考帧率确定更新帧率阈值,并从目标云游戏的至少一个历史帧率中选取出目标历史帧率,目标历史帧率为大于等于更新帧率阈值的历史帧率,目标历史帧率被作为增大预设帧率后得到的调整帧率;或者,在变更信息指示对预设编码参数中的预设帧率发生变更时,将变更信息中包含的变更后的预设帧率,作为增大预设帧率后得到的调整帧率。
在一个实施例中,对预设编码参数进行的调整处理是针对预设编码参数中预设帧率的调整处理,参数调整策略是关于预设帧率的帧率调整策略,帧率调整策略与确定的调整方向相匹配;按照帧率调整策略对预设帧率进行调整处理,得到调整帧率的方式包括:获取为目标云游戏设置的至少一个经验帧率;在调整方向为减小预设帧率的方向时,从至少一个经验帧率中选取出小于预设帧率且与参考帧率匹配的目标经验帧率,并将目标经验帧率作为减小预设帧率后得到的调整帧率;或者,在调整方向为增大预设帧率的方向时,从至少一个经验帧率中选取出大于预设帧率且与参考帧率匹配的目标经验帧率,将目标经验帧率作为增大预设帧率后得到的调整帧率。
可以理解的是,本申请实施例所描述的云游戏处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图8,图8是本申请实施例提供的一种计算机设备(即上述的服务器)的结构示意图。该计算机设备800可以包含独立设备(例如服务器、节点、终端等等中的一个或者多个),也可以包含独立设备内部的部件(例如芯片、软件模块或者硬件模块等)。该计算机设备800可以包括至少一个处理器801和通信接口802,进一步可选地,计算机设备800还可以包括至少一个存储器803和总线804。其中,处理器801、通信接口802和存储器803通过总线804相连。
其中,处理器801是进行算术运算和/或逻辑运算的模块,具体可以是中央处理器(central processing unit,CPU)、图片处理器(graphics processing unit,GPU)、微处理器(microprocessor unit,MPU)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)、复杂可编程逻辑器件(Complex programmable logic device,CPLD)、协处理器(协助中央处理器完成相应处理和应用)、微控制单元(Microcontroller Unit,MCU)等处理模块中的一种或者多种的组合。
通信接口802可以用于为至少一个处理器提供信息输入或者输出。和/或,通信接口802可以用于接收外部发送的数据和/或向外部发送数据,可以为包括诸如以太网电缆等的有线链路接口,也可以是无线链路(Wi-Fi、蓝牙、通用无线传输、车载短距通信技术以及其他短距无线通信技术等)接口。通信接口802可以作为网络接口。
存储器803用于提供存储空间,存储空间中可以存储操作系统和计算机程序等数据。存储器803可以是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read onlymemory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)等等中的一种或者多种的组合。
该计算机设备800中的至少一个处理器801用于调用至少一个存储器803中存储的计算机程序,用于执行本申请所示的实施例所描述的云游戏处理方法。
在一种可能的实施方式中,该计算机设备800中的处理器801用于调用至少一个存储器803中存储的计算机程序,用于执行以下操作:获取目标云游戏的预设编码参数,以及目标云游戏的参考编码参数;预设编码参数是指对目标云游戏进行编码处理时期望的编码参数,参考编码参数是指对目标云游戏进行编码处理时可支持的编码参数;对预设编码参数和参考编码参数进行匹配,并基于对预设编码参数和参考编码参数之间的匹配结果,获取关于预设编码参数的参数调整策略;按照参数调整策略对预设编码参数进行调整处理,得到调整编码参数,并按照调整编码参数对目标云游戏进行编码处理。
在一个实施例中,若参考编码参数是在包括N个单位时间的第一时间窗口内获取得到的,参考编码参数包含参考帧率,N为大于等于1的整数;则处理器801,具体用于:通过第一时间窗口获取参考帧率。在一种实现方式中,通过第一时间窗口获取参考帧率的方式包括:获取与第一时间窗口关联的帧率列表,帧率列表记录了至少一个帧率,其中,一个帧率与一个单位时间对应;从帧率列表记录的至少一个帧率中选取出最大帧率,并将最大帧率作为通过第一时间窗口获取的参考帧率。
在一个实施例中,在N大于等于2时,第一时间窗口包括的N个单位时间是基于时间顺序依次排列的,帧率列表中的第i个帧率是基于对应的第i个单位时间被记录到帧率列表中的,i为小于等于N的正整数;第i个帧率基于对应的第i个单位时间被记录到帧率列表的方式包括:从帧率列表的i-1个已记录帧率中选取出最大已记录帧率,并基于第i个帧率和最大已记录帧率之间的帧率比值,对第i个帧率进行抖动检测,得到检测结果;当检测结果指示第i个帧率通过抖动检测时,将第i个帧率记录到帧率列表中。
在一个实施例中,处理器801,具体用于:当检测结果指示第i个帧率未通过抖动检测时,清空帧率列表中的已记录帧率,并更新第一时间窗口;在更新的第一时间窗口中获取参考帧率。
在一个实施例中,处理器801,具体用于:获取第i个帧率和最大已记录帧率之间的帧率比值、比例阈值以及保持目标云游戏正常运行的帧率阈值;获取帧率比值和比例阈值之间的对比结果,以及第i个帧率与帧率阈值之间的对比结果;在帧率比值小于等于比例阈值且第i个帧率大于帧率阈值时,确定第i个帧率通过抖动检测;否则,确定第i个帧率未通过抖动检测。
在一个实施例中,若参考编码参数是在对应时间长度小于单位时间的第二时间窗口内获取得到的;则处理器801,具体用于:通过第二时间窗口获取参考编码参数包含的参考帧率。在一种实现方式中,通过第二时间窗口获取参考编码参数包含的参考帧率的方式包括:获取第二时间窗口的帧率,并按照单位时间对第二时间窗口的帧率进行折算,得到折算帧率;将折算帧率作为通过第二时间窗口获取的参考帧率。
在一个实施例中,处理器801,具体用于:基于预设编码参数包含的预设帧率,以及参考编码参数包含的参考帧率之间的对比,确定关于预设帧率的调整方向;获取关于预设编码参数的变更信息;在变更信息指示预设编码参数未变更时,获取与调整方向匹配的帧率调整策略,帧率调整策略为关于预设编码参数的参数调整策略。
在一个实施例中,若参考编码参数是在第一时间窗口内获取得到的,参考编码参数还包括至少一个参考量化参数,其中,一个单位时间对应一个参考量化参数;则处理器801,还用于:基于至少一个参考量化参数确定出平均量化参数,并将平均量化参数和量化参数阈值进行对比;在平均量化参数高于量化参数阈值时,触发执行获取关于预设编码参数的变更信息。
在一个实施例中,若参考编码参数是在第一时间窗口内获取得到的,则参考帧率是从帧率列表中选取出的最大帧率;则处理器801,还用于:基于预设编码参数包含的预设帧率,确定帧率上界和帧率下界,帧率上界和帧率下界构成目标帧率区间;从帧率列表中选取出最小帧率,并基于最大帧率和最小帧率,对帧率列表进行帧率异常检测;在帧率列表通过帧率异常检测,且参考帧率处于目标帧率区间时,确定关于预设帧率的调整方向为减小预设帧率的方向。
在一个实施例中,对预设编码参数进行的调整处理是针对预设编码参数中预设帧率的调整处理,参数调整策略是关于预设帧率的帧率调整策略,帧率调整策略与确定的调整方向相匹配;处理器801,用于:按照帧率调整策略对预设帧率进行调整处理,得到调整帧率。在一种实现方式中,按照帧率调整策略对预设帧率进行调整处理,得到调整帧率的方式包括:在调整方向为减小预设帧率的方向时,获取第一调整参数;采用第一调整参数对参考编码参数中的参考帧率进行更新,得到更新后的参考帧率,其中,更新后的参考帧率小于预设帧率;将更新后的参考帧率作为减小预设帧率后得到的调整帧率。
在一个实施例中,若参考编码参数是在第二时间窗口内获取得到的;则处理器801,用于:获取检测阈值,并基于检测阈值和预设编码参数包含的预设帧率,确定检测帧率;将检测帧率与参考编码参数包含的参考帧率进行对比,并在参考帧率大于等于检测帧率时,确定关于预设帧率的调整方向为增大预设帧率的方向。
在一个实施例中,检测阈值为平缓检测阈值或灵敏检测阈值,平缓检测阈值小于灵敏检测阈值;若检测帧率是根据灵敏检测阈值确定出的,则在参考帧率大于等于检测帧率时,直接确定关于预设帧率的调整方向为增大预设帧率的方向。
在一个实施例中,若检测帧率是根据平缓检测阈值确定出的;则处理器801,具体用于:在参考帧率大于等于检测帧率时,确定第二时间窗口中的参考帧率异常;获取关联时间窗口中的参考帧率的异常结果,关联时间窗口处于第二时间窗口之前,且与第二时间窗口相邻并等长;在确定第二时间窗口中的参考帧率异常,且异常结果指示关联时间窗口中的参考帧率异常时,确定产生帧率连续异常的情况,并将关于预设帧率的调整方向确定为增大预设帧率的方向。
在一个实施例中,对预设编码参数进行的调整处理是针对预设编码参数中预设帧率的调整处理,参数调整策略是关于预设帧率的帧率调整策略,帧率调整策略与确定的调整方向相匹配;按照帧率调整策略对预设帧率进行调整处理,得到调整帧率的方式包括:在调整方向为增大预设帧率的方向时,按照第二调整参数对参考编码参数中的参考帧率进行更新,得到更新后的参考帧率,其中,更新后的参考帧率大于预设帧率;更新后的参考帧率被作为增大预设帧率后得到的调整帧率;或者,基于第二调整参数和参考帧率确定更新帧率阈值,并从目标云游戏的至少一个历史帧率中选取出目标历史帧率,目标历史帧率为大于等于更新帧率阈值的历史帧率,目标历史帧率被作为增大预设帧率后得到的调整帧率;或者,在变更信息指示对预设编码参数中的预设帧率发生变更时,将变更信息中包含的变更后的预设帧率,作为增大预设帧率后得到的调整帧率。
在一个实施例中,对预设编码参数进行的调整处理是针对预设编码参数中预设帧率的调整处理,参数调整策略是关于预设帧率的帧率调整策略,帧率调整策略与确定的调整方向相匹配;按照帧率调整策略对预设帧率进行调整处理,得到调整帧率的方式包括:获取为目标云游戏设置的至少一个经验帧率;在调整方向为减小预设帧率的方向时,从至少一个经验帧率中选取出小于预设帧率且与参考帧率匹配的目标经验帧率,并将目标经验帧率作为减小预设帧率后得到的调整帧率;或者,在调整方向为增大预设帧率的方向时,从至少一个经验帧率中选取出大于预设帧率且与参考帧率匹配的目标经验帧率,将目标经验帧率作为增大预设帧率后得到的调整帧率。
应当理解,本申请实施例中所描述的计算机设备800可执行前文所对应实施例中对该云游戏处理方法的描述,也可执行前文图7所对应实施例中对该云游戏处理装置700的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,还应指出,本申请一个示例性实施例还提供了一种存储介质,该存储介质中存储了前述云游戏处理方法的计算机程序,该计算机程序包括程序指令,当一个或多个处理器加载并执行该程序指令,可以实现实施例中对云游戏处理方法的描述,这里不再赘述,对采用相同方法的有益效果描述,也在此不再赘述。可以理解的是,程序指令可以被部署在一个或能够互相通信的多个计算机设备上执行。
上述计算机可读存储介质可以是前述任一实施例提供的云游戏处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
本申请的一个方面,提供了另一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,该计算机程序或计算机指令被处理器执行时实现本申请实施例提供的云游戏处理方法的步骤。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (18)
1.一种云游戏处理方法,其特征在于,所述方法包括:
获取目标云游戏的预设编码参数,以及所述目标云游戏的参考编码参数;所述预设编码参数是指对所述目标云游戏进行编码处理时期望的编码参数,所述参考编码参数是指对所述目标云游戏进行编码处理时可支持的编码参数;
对所述预设编码参数和所述参考编码参数进行匹配,并基于对所述预设编码参数和所述参考编码参数之间的匹配结果,获取关于所述预设编码参数的参数调整策略;
按照所述参数调整策略对所述预设编码参数进行调整处理,得到调整编码参数,并按照所述调整编码参数对所述目标云游戏进行编码处理。
2.如权利要求1所述的方法,其特征在于,若所述参考编码参数是在包括N个单位时间的第一时间窗口内获取得到的,其中所述参考编码参数包含参考帧率,N为大于等于1的整数,则所述方法进一步包括:
获取与所述第一时间窗口关联的帧率列表,所述帧率列表记录了至少一个帧率,其中,一个帧率与一个单位时间对应;
从所述帧率列表记录的至少一个帧率中选取出最大帧率,并将所述最大帧率作为通过所述第一时间窗口获取的参考帧率。
3.如权利要求2所述的方法,其特征在于,在N大于等于2时,所述第一时间窗口包括的N个单位时间是基于时间顺序依次排列的,所述帧率列表中的第i个帧率是基于对应的第i个单位时间被记录到所述帧率列表中的,i为小于等于N的正整数;第i个帧率基于对应的第i个单位时间被记录到所述帧率列表的方式包括:
从所述帧率列表的i-1个已记录帧率中选取出最大已记录帧率,并基于所述第i个帧率和所述最大已记录帧率之间的帧率比值,对所述第i个帧率进行抖动检测,得到检测结果;
当所述检测结果指示所述第i个帧率通过所述抖动检测时,将所述第i个帧率记录到所述帧率列表中。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
当所述检测结果指示所述第i个帧率未通过所述抖动检测时,清空所述帧率列表中的已记录帧率,并更新所述第一时间窗口;
在更新的第一时间窗口中获取参考帧率。
5.如权利要求3所述的方法,其特征在于,所述基于所述第i个帧率和所述最大已记录帧率之间的帧率比值,对所述第i个帧率进行抖动检测,得到检测结果,包括:
获取所述第i个帧率和所述最大已记录帧率之间的帧率比值、比例阈值以及保持所述目标云游戏正常运行的帧率阈值;
获取所述帧率比值和所述比例阈值之间的对比结果,以及所述第i个帧率与所述帧率阈值之间的对比结果;
在所述帧率比值小于等于所述比例阈值且所述第i个帧率大于所述帧率阈值时,确定所述第i个帧率通过所述抖动检测;否则,确定所述第i个帧率未通过所述抖动检测。
6.如权利要求1所述的方法,其特征在于,若所述参考编码参数是在对应时间长度小于单位时间的第二时间窗口内获取得到的;则所述方法进一步包括:
获取所述第二时间窗口的帧率,并按照所述单位时间对所述第二时间窗口的帧率进行折算,得到折算帧率;
将所述折算帧率作为通过所述第二时间窗口获取的参考帧率。
7.如权利要求1所述的方法,其特征在于,所述基于对所述预设编码参数和所述参考编码参数之间的匹配,获取关于所述预设编码参数的参数调整策略,包括:
基于所述预设编码参数包含的预设帧率,以及所述参考编码参数包含的参考帧率之间的对比,确定关于所述预设帧率的调整方向;
获取关于所述预设编码参数的变更信息;
在所述变更信息指示所述预设编码参数未变更时,获取与所述调整方向匹配的帧率调整策略,所述帧率调整策略为关于所述预设编码参数的参数调整策略。
8.如权利要求7所述的方法,其特征在于,若所述参考编码参数是在第一时间窗口内获取得到的,所述参考编码参数还包括至少一个参考量化参数,其中,一个单位时间对应一个参考量化参数,则所述方法还包括:
基于所述至少一个参考量化参数确定出平均量化参数,并将所述平均量化参数和量化参数阈值进行对比;
在所述平均量化参数高于所述量化参数阈值时,触发执行获取关于所述预设编码参数的变更信息。
9.如权利要求7所述的方法,其特征在于,若所述参考编码参数是在第一时间窗口内获取得到的,则所述参考帧率是从帧率列表中选取出的最大帧率;所述基于所述预设编码参数包含的预设帧率,以及所述参考编码参数包含的参考帧率之间的对比,确定关于所述预设帧率的调整方向,包括:
基于所述预设编码参数包含的预设帧率,确定帧率上界和帧率下界,所述帧率上界和所述帧率下界构成目标帧率区间;
从所述帧率列表中选取出最小帧率,并基于所述最大帧率和所述最小帧率,对所述帧率列表进行帧率异常检测;
在所述帧率列表通过所述帧率异常检测,且所述参考帧率处于所述目标帧率区间时,确定关于所述预设帧率的调整方向为减小所述预设帧率的方向。
10.如权利要求1所述的方法,其特征在于,对所述预设编码参数进行的调整处理是针对所述预设编码参数中预设帧率的调整处理,所述参数调整策略是关于所述预设帧率的帧率调整策略,所述帧率调整策略与确定的调整方向相匹配;按照所述帧率调整策略对所述预设帧率进行调整处理,得到调整帧率的方式包括:
在所述调整方向为减小所述预设帧率的方向时,获取第一调整参数;
采用所述第一调整参数对所述参考编码参数中的参考帧率进行更新,得到更新后的参考帧率,其中,所述更新后的参考帧率小于所述预设帧率;
将所述更新后的参考帧率作为减小所述预设帧率后得到的调整帧率。
11.如权利要求7所述的方法,其特征在于,若所述参考编码参数是在第二时间窗口内获取得到的,则所述基于所述预设编码参数包含的预设帧率,以及所述参考编码参数包含的参考帧率之间的对比,确定关于所述预设帧率的调整方向,包括:
获取检测阈值,并基于所述检测阈值和所述预设编码参数包含的预设帧率,确定检测帧率;
将所述检测帧率与所述参考编码参数包含的参考帧率进行对比,并在所述参考帧率大于等于所述检测帧率时,确定关于所述预设帧率的调整方向为增大所述预设帧率的方向。
12.如权利要求11所述的方法,其特征在于,所述检测阈值为平缓检测阈值或灵敏检测阈值,所述平缓检测阈值小于所述灵敏检测阈值;
若所述检测帧率是根据所述灵敏检测阈值确定出的,则在所述参考帧率大于等于所述检测帧率时,直接确定关于所述预设帧率的调整方向为增大所述预设帧率的方向。
13.如权利要求11所述的方法,其特征在于,若所述检测帧率是根据所述平缓检测阈值确定出的,则所述在所述参考帧率大于等于所述检测帧率时,确定关于所述预设帧率的调整方向为增大所述预设帧率的方向,包括:
在所述参考帧率大于等于所述检测帧率时,确定所述第二时间窗口中的参考帧率异常;
获取关联时间窗口中的参考帧率的异常结果,所述关联时间窗口处于所述第二时间窗口之前,且与所述第二时间窗口相邻并等长;
在确定所述第二时间窗口中的参考帧率异常,且所述异常结果指示所述关联时间窗口中的参考帧率异常时,确定产生帧率连续异常的情况,并将关于所述预设帧率的调整方向确定为增大所述预设帧率的方向。
14.如权利要求1所述的方法,其特征在于,对所述预设编码参数进行的调整处理是针对所述预设编码参数中预设帧率的调整处理,所述参数调整策略是关于所述预设帧率的帧率调整策略,所述帧率调整策略与确定的调整方向相匹配;按照所述帧率调整策略对所述预设帧率进行调整处理,得到调整帧率的方式包括:
在所述调整方向为增大所述预设帧率的方向时,按照第二调整参数对参考编码参数中的参考帧率进行更新,得到更新后的参考帧率,其中,更新后的参考帧率大于所述预设帧率;所述更新后的参考帧率被作为增大所述预设帧率后得到的调整帧率;或者,
基于所述第二调整参数和所述参考帧率确定更新帧率阈值,并从所述目标云游戏的至少一个历史帧率中选取出目标历史帧率,所述目标历史帧率为大于等于所述更新帧率阈值的历史帧率,所述目标历史帧率被作为增大所述预设帧率后得到的调整帧率;或者,
在所述变更信息指示对所述预设编码参数中的预设帧率发生变更时,将所述变更信息中包含的变更后的预设帧率,作为增大所述预设帧率后得到的调整帧率。
15.如权利要求7所述的方法,其特征在于,对所述预设编码参数进行的调整处理是针对所述预设编码参数中预设帧率的调整处理,所述参数调整策略是关于所述预设帧率的帧率调整策略,所述帧率调整策略与确定的调整方向相匹配;按照所述帧率调整策略对所述预设帧率进行调整处理,得到调整帧率的方式包括:
获取为所述目标云游戏设置的至少一个经验帧率;
在所述调整方向为减小所述预设帧率的方向时,从所述至少一个经验帧率中选取出小于所述预设帧率且与所述参考帧率匹配的目标经验帧率,并将所述目标经验帧率作为减小预设帧率后得到的调整帧率;或者,
在所述调整方向为增大所述预设帧率的方向时,从所述至少一个经验帧率中选取出大于所述预设帧率且与所述参考帧率匹配的目标经验帧率,将所述目标经验帧率作为增大预设帧率后得到的调整帧率。
16.一种云游戏处理装置,其特征在于,包括:
获取模块,用于获取目标云游戏的预设编码参数,以及所述目标云游戏的参考编码参数;所述预设编码参数是指对所述目标云游戏进行编码处理时期望的编码参数,所述参考编码参数是指对所述目标云游戏进行编码处理时可支持的编码参数;
匹配模块,用于对所述预设编码参数和所述参考编码参数进行匹配,并基于对所述预设编码参数和所述参考编码参数之间的匹配结果,获取关于所述预设编码参数的参数调整策略;
调整编码模块,用于按照所述参数调整策略对所述预设编码参数进行调整处理,得到调整编码参数,并按照所述调整编码参数对所述目标云游戏进行编码处理。
17.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供网络通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行权利要求1-15中任一项所述的云游戏处理方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行权利要求1-15中任一项所述的云游戏处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210829301.XA CN115242759B (zh) | 2022-07-14 | 2022-07-14 | 一种云游戏处理方法、装置、计算机设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210829301.XA CN115242759B (zh) | 2022-07-14 | 2022-07-14 | 一种云游戏处理方法、装置、计算机设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115242759A true CN115242759A (zh) | 2022-10-25 |
CN115242759B CN115242759B (zh) | 2024-05-17 |
Family
ID=83673042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210829301.XA Active CN115242759B (zh) | 2022-07-14 | 2022-07-14 | 一种云游戏处理方法、装置、计算机设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115242759B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116208788A (zh) * | 2023-05-04 | 2023-06-02 | 海马云(天津)信息技术有限公司 | 提供网络应用服务的方法及装置、服务器设备和存储介质 |
CN116440501A (zh) * | 2023-06-16 | 2023-07-18 | 瀚博半导体(上海)有限公司 | 自适应云游戏视频画面渲染方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381316A (zh) * | 2019-07-17 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种视频传输控制方法、装置、设备及存储介质 |
CN111882626A (zh) * | 2020-08-06 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、服务器及介质 |
CN113891153A (zh) * | 2021-09-30 | 2022-01-04 | 杭州雾联科技有限公司 | 一种云游戏串流处理方法、装置及介质 |
CN113992967A (zh) * | 2021-10-25 | 2022-01-28 | 北京字节跳动网络技术有限公司 | 一种投屏数据传输方法、装置、电子设备及存储介质 |
CN114432705A (zh) * | 2022-01-06 | 2022-05-06 | 腾讯科技(深圳)有限公司 | 云游戏数据处理方法、装置、介质、设备及产品 |
-
2022
- 2022-07-14 CN CN202210829301.XA patent/CN115242759B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381316A (zh) * | 2019-07-17 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种视频传输控制方法、装置、设备及存储介质 |
CN111882626A (zh) * | 2020-08-06 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、服务器及介质 |
CN113891153A (zh) * | 2021-09-30 | 2022-01-04 | 杭州雾联科技有限公司 | 一种云游戏串流处理方法、装置及介质 |
CN113992967A (zh) * | 2021-10-25 | 2022-01-28 | 北京字节跳动网络技术有限公司 | 一种投屏数据传输方法、装置、电子设备及存储介质 |
CN114432705A (zh) * | 2022-01-06 | 2022-05-06 | 腾讯科技(深圳)有限公司 | 云游戏数据处理方法、装置、介质、设备及产品 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116208788A (zh) * | 2023-05-04 | 2023-06-02 | 海马云(天津)信息技术有限公司 | 提供网络应用服务的方法及装置、服务器设备和存储介质 |
CN116440501A (zh) * | 2023-06-16 | 2023-07-18 | 瀚博半导体(上海)有限公司 | 自适应云游戏视频画面渲染方法和系统 |
CN116440501B (zh) * | 2023-06-16 | 2023-08-29 | 瀚博半导体(上海)有限公司 | 自适应云游戏视频画面渲染方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115242759B (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107623851B (zh) | 视频码流传输控制装置及控制方法 | |
CN115242759B (zh) | 一种云游戏处理方法、装置、计算机设备和介质 | |
US10999174B2 (en) | Network adaptive latency reduction through frame rate control | |
US11228630B2 (en) | Adaptive bit rate media streaming based on network conditions received via a network monitor | |
US20220030245A1 (en) | Video encoding code rate control method, apparatus, and device, and storage medium | |
CN111135569A (zh) | 云游戏处理方法、装置、存储介质与电子设备 | |
CN114449282A (zh) | 视频传输控制方法及装置、设备、存储介质 | |
US20240022778A1 (en) | Systems, methods, and devices for optimizing streaming bitrate based on variations in processor load | |
CN112929712A (zh) | 视频码率调整方法和装置 | |
CN115989530A (zh) | 生成并处理视频数据 | |
CN114245196B (zh) | 一种录屏推流方法、装置、电子设备及存储介质 | |
CN113286146B (zh) | 媒体数据处理方法、装置、设备以及存储介质 | |
WO2021092821A1 (en) | Adaptively encoding video frames using content and network analysis | |
EP3925413B1 (en) | Determining a light effect based on an average color after a detected transition in content | |
CN112804527B (zh) | 图像输出方法、装置及计算机可读存储介质 | |
CN110912922B (zh) | 一种图像传输方法、装置、电子设备及存储介质 | |
CN115278289B (zh) | 一种云应用渲染视频帧处理方法与装置 | |
CN115190325A (zh) | 丢帧控制方法、装置、设备、存储介质及程序产品 | |
CN115278319A (zh) | 一种投屏数据传输方法、装置、电子设备和存储介质 | |
Zhang et al. | Anableps: Adapting Bitrate for Real-Time Communication Using VBR-encoded Video | |
US11997366B2 (en) | Method and apparatus for processing adaptive multi-view streaming | |
US20240171741A1 (en) | Video compression at scene changes for low latency interactive experience | |
CN115348451A (zh) | 一种编码处理方法、装置、服务器和介质 | |
CN115623248A (zh) | 数据处理方法、帧率调整方法、装置,设备及计算机介质 | |
CN117615175A (zh) | 视频播放方法、装置、电子设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40077120 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |