视频帧播放方法、装置、设备以及存储介质与流程

文档序号:33698137发布日期:2023-03-31 17:10阅读:31来源:国知局
视频帧播放方法、装置、设备以及存储介质与流程

1.本技术涉及云游戏领域,特别涉及一种视频帧播放方法、装置、设备以及存储介质。


背景技术:

2.随着云计算技术的成熟,用户可以通过云计算来实现终端难以完成的任务。例如,在云游戏的领域,终端无需执行渲染操作,云游戏服务器能够基于终端发送的控制信息对游戏场景进行渲染,得到视频帧。云游戏服务器将该视频帧发送给终端,终端显示该视频帧即可。
3.相关技术中,当终端所处的网络状态不佳时,云游戏服务器会降低视频帧的分辨率以保证云游戏的流畅程度,但是降低视频帧的分辨率会导致云游戏的显示效果变差。


技术实现要素:

4.本技术实施例提供了一种视频帧播放方法、装置、设备以及存储介质,可以在保证云游戏的流畅程度的前提下,提高云游戏的显示效果。所述技术方案如下:
5.一方面,提供了一种视频帧播放方法,所述方法包括:
6.获取多个第一视频帧,所述多个第一视频帧是云游戏服务器以目标虚拟场景中被控虚拟对象的视角,对所述目标虚拟场景进行渲染得到的视频帧;
7.在所述多个第一视频帧的分辨率符合分辨率条件的情况下,对所述多个第一视频帧进行图像处理,得到多个第二视频帧,各个所述第二视频帧的分辨率高于对应的第一视频帧的分辨率;
8.播放所述多个第二视频帧。
9.一方面,提供了一种视频帧播放装置,所述装置包括:
10.视频帧获取模块,用于获取多个第一视频帧,所述多个第一视频帧是云游戏服务器以目标虚拟场景中被控虚拟对象的视角,对所述目标虚拟场景进行渲染得到的视频帧;
11.图像处理模块,用于在所述多个第一视频帧的分辨率符合分辨率条件的情况下,对所述多个第一视频帧进行图像处理,得到多个第二视频帧,各个所述第二视频帧的分辨率高于对应的第一视频帧的分辨率;
12.播放模块,用于播放所述多个第二视频帧。
13.在一种可能的实施方式中,所述图像处理模块,用于在所述多个第一视频帧的分辨率符合分辨率条件的情况下,在各个所述第一视频帧中每两个像素点之间插入参考像素点,得到各个所述第一视频帧对应的第二视频帧,所述参考像素点是基于所述每两个像素点生成的。
14.在一种可能的实施方式中,所述图像处理模块,用于执行下述任一项:
15.采用最临近插值法在各个所述第一视频帧中每两个像素点之间插入所述参考像素点;
16.采用双线性插值法在各个所述第一视频帧中每两个像素点之间插入所述参考像素点;
17.采用均值插值法在各个所述第一视频帧中每两个像素点之间插入所述参考像素点。
18.在一种可能的实施方式中,所述图像处理模块,用于在所述多个第一视频帧的分辨率符合分辨率条件的情况下,将所述多个第一视频帧输入超分模型,由所述超分模型对所述多个第一视频帧进行上采样,得到所述多个第二视频帧。
19.在一种可能的实施方式中,所述图像处理模块,用于对于所述多个第一视频帧中的任一第一视频帧,通过所述超分模型对所述第一视频帧进行特征提取,得到所述第一视频帧的第一视频帧特征;对所述第一视频帧特征进行非线性映射,得到所述第一视频帧的第二视频帧特征;对所述第二视频帧特征进行重构,得到所述第一视频帧对应的第二视频帧。
20.在一种可能的实施方式中,所述装置还包括:
21.插帧模块,用于在所述多个第二视频帧的帧率符合帧率条件的情况下,在所述多个第二视频帧中进行插帧,得到插帧后的所述多个第二视频帧;
22.所述播放模块,还用于播放所述插帧后的所述多个第二视频帧。
23.在一种可能的实施方式中,所述插帧模块用于在所述多个第二视频帧的帧率小于或等于帧率阈值的情况下,在所述多个第二视频帧中每两个第二视频帧之间插入参考视频帧,得到所述插帧后的所述多个第二视频帧。
24.在一种可能的实施方式中,所述装置还包括参考帧确定模块,用于执行下述任一项:
25.将所述每两个第二视频帧中任一第二视频帧确定为所述参考视频帧;
26.将所述每两个第二视频帧的平均视频帧确定为所述参考视频帧,所述平均视频帧中像素点的像素值为所述每两个第二视频帧中对应像素点的像素值的平均值;
27.将所述第二视频帧序列输入插帧模型,由所述插帧模型基于所述每两个第二视频帧进行处理,得到所述参考视频帧。
28.在一种可能的实施方式中,所述参考帧确定模块用于通过所述插帧模型,获取第三视频帧到第四视频帧的后向光流,所述第三视频帧为所述每两个第二视频帧中前一个第二视频帧,所述第四视频帧为所述每两个第二视频帧中后一个第二视频帧;获取所述第四视频帧到所述第三视频帧的前向光流;基于所述后向光流和所述前向光流,生成所述参考视频帧。
29.在一种可能的实施方式中,所述参考帧确定模块用于通过所述插帧模型,获取第三视频帧中多个图像块在第四视频帧中的运动矢量,所述第三视频帧为所述每两个第二视频帧中前一个第二视频帧,所述第四视频帧为所述每两个第二视频帧中后一个第二视频帧;基于所述运动矢量,生成所述参考视频帧。
30.在一种可能的实施方式中,所述装置还包括:
31.发送模块,用于向所述云游戏服务器发送网络延迟信息,以使所述云游戏服务器基于所述网络延迟信息生成所述多个第一视频帧。
32.一方面,提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个
或多个存储器,所述一个或多个存储器中存储有至少一条计算机程序,所述计算机程序由所述一个或多个处理器加载并执行以实现所述视频帧播放方法。
33.一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现所述视频帧播放方法。
34.一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该计算机设备执行上述视频帧播放方法。
35.通过本技术实施例提供的技术方案,获取到云游戏服务器发送的多个第一视频帧之后,基于多个第一视频帧的分辨率进行判断,当该分辨率符合分辨率条件时,对多个第一视频帧进行图像处理,图像处理的目的是提高第一视频帧的分辨率,得到多个第二视频帧,多个第二视频帧也就具有更高的分辨率,从而在保证云游戏流畅度的前提下,提高了云游戏的显示效果。
附图说明
36.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1是本技术实施例提供的一种视频帧播放方法的实施环境的示意图;
38.图2是本技术实施例提供的一种云游戏的基本流程图;
39.图3是本技术实施例提供的一种视频帧播放方法的流程图;
40.图4是本技术实施例提供的一种视频帧播放方法的流程图;
41.图5是本技术实施例提供的一种视频帧播放方法的流程图;
42.图6是本技术实施例提供的一种首帧延时变化图;
43.图7是本技术实施例提供的一种卡顿率变化图;
44.图8是本技术实施例提供的一种视频帧播放装置的结构示意图;
45.图9是本技术实施例提供的一种终端的结构示意图。
具体实施方式
46.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式做进一步地详细描述。
47.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
48.本技术中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个参照人脸图像是指两个或两个以上的参照人脸图像。
49.云游戏(cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备
(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云游戏服务器中运行,并由云游戏服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力、获取玩家输入指令并发送给云游戏服务器的能力以及基础的数据处理能力即可。
50.虚拟场景:是应用程序在终端上运行时显示(或提供)的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本技术实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动。
51.虚拟对象:是指在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在虚拟场景中显示的人物、动物、植物、油桶、墙壁、石块等。该虚拟对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
52.在一些实施例中,该虚拟对象是通过客户端上的操作进行控制的用户角色,或者是通过训练设置在虚拟场景对战中的人工智能(artificial intelligence,ai),或者是设置在虚拟场景中的非用户角色(non-player character,npc)。在一些实施例中,该虚拟对象是在虚拟场景中进行竞技的虚拟人物。在一些实施例中,该虚拟场景中参与互动的虚拟对象的数量是预先设置的,或者是根据加入互动的客户端的数量动态确定的。
53.以射击类游戏为例,用户能够控制虚拟对象在该虚拟场景的天空中自由下落、滑翔或者打开降落伞进行下落等,在陆地上中跑动、跳动、爬行、弯腰前行等,也可以控制虚拟对象在海洋中游泳、漂浮或者下潜等,当然,用户也可以控制虚拟对象乘坐虚拟载具在该虚拟场景中进行移动,例如,该虚拟载具可以是虚拟汽车、虚拟飞行器、虚拟游艇等,在此仅以上述场景进行举例说明,本技术实施例对此不作具体限定。用户也可以控制虚拟对象通过互动道具与其他虚拟对象进行战斗等方式的互动,例如,该互动道具可以是手雷、集束雷、粘性手雷(简称“粘雷”)等投掷类互动道具,也可以是机枪、手枪、步枪等射击类互动道具,本技术对互动道具的类型不作具体限定。
54.显示分辨率:分辨率主要是指显示器所能显示的像素的多少,可以从显示分辨率与图像分辨率两个方向来分类。显示分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素的多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。可以把整个图像想象成是一个大型的棋盘,而分辨率的表示方式就是所有经线和纬线交叉点的数目。显示分辨率一定的情况下,显示屏越小图像越清晰,反之,显示屏大小固定时,显示分辨率越高图像越清晰。图像分辨率则是单位英寸中所包含的像素点数,其定义更趋近于分辨率本身的定义。
55.插帧:即在原有画面显示的每两帧画面中增加一帧,缩短每帧之间的显示时间,使时间得到双倍提高,比如将视频帧率从原有的30hz提升到60hz。修正人眼视觉暂留形成的错觉,有效提高画面稳定性。
56.超分:提高图像分辨率的方法。
57.mos(mean opinion score):平均意见分,是主观评价实验之后,得到的主观分数,取值0-100,值越大,代表主观感受越好。
58.fps(frames per second):也可以理解为我们常说的“刷新率(单位为hz)”,fps是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。fps是测量用于保存、显示动态视频的信息数量。每秒钟帧数越多,所显示的动作就会越流畅。
59.sps(sequence parameter set):又称作序列参数集。sps中保存了一组编码视频序列(coded video sequence)的全局参数。所谓的编码视频序列即原始视频的一帧一帧的像素数据经过编码之后的结构组成的序列。
60.图1是本技术实施例提供的一种目标检测方法的实施环境示意图,参见图1,该实施环境中可以包括终端110和云游戏服务器140。在一些实施例中,终端110和云游戏服务器140为区块链系统中的节点,终端110和服务器140之间相互传输的数据存储在区块链上。
61.终端110通过无线网络或有线网络与云游戏服务器140相连。可选地,终端110是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端110安装和运行有支持虚拟场景显示的客户端。
62.云游戏服务器140是独立的物理云游戏服务器,或者是多个物理云游戏服务器构成的云游戏服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云游戏服务器。在一些实施例中,云游戏服务器140也被称为边缘计算节点。
63.可选地,终端110泛指多个终端中的一个,本技术实施例仅以终端110来举例说明。
64.本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端仅为一个,或者上述终端为几十个或几百个,或者更多数量,此时上述实施环境中还包括其他终端。本技术实施例对终端的数量和设备类型不加以限定。
65.在介绍完本技术实施例提供的视频帧播放方法的应用场景之后,下面将结合上述实施环境,对本技术实施例提供的视频帧播放方法的应用场景进行说明,在下述说明过程中,终端也即是上述终端110,云游戏服务器也即是上述云游戏服务器140。
66.本技术实施例提供的视频帧的渲染方法能够应用在各类云游戏的场景下,比如应用在第一人称射击类(first-person shooting,fps)游戏中,或者应用在第三人称射击游戏(third-personal shooting,tps)游戏中,或者应用在多人在线战术竞技游戏(multiplayer online battle arena,moba)中,或者应用在战棋游戏或者自走棋游戏中,本技术实施例对此不做限定。
67.以本技术实施例提供的视频帧的渲染方法应用在fps游戏中为例,用户在终端上启动云游戏客户端,在云游戏客户端中登录用户账号,也即是,用户在云游戏客户端中输入用户账号和对应的密码,点击登录控件来进行登录。响应于检测到对登录控件的点击操作,终端向云游戏服务器发送登录请求,登录请求中携带有用户账号和对应的密码。云游戏服务器接收到登录请求之后,从登录请求中获取用户账号和对应的密码,对用户账号和对应的密码进行验证。云游戏服务器对用户账号和对应的密码验证通过之后,向终端发送登录成功信息。终端接收到登录成功信息之后,向云游戏服务器发送云游戏获取请求,云游戏获
取请求中携带有用户账号。云游戏服务器获取云游戏获取请求之后,基于云游戏获取请求中携带的用户账号进行查询,获取该用户账号对应的多个云游戏,将该多个云游戏的标识发送给终端,由终端将该多个云游戏的标识展现在云游戏客户端中。用户通过终端,在云游戏客户端中展示的多个云游戏的标识中选择想玩的fps游戏的标识,也即是选择想玩的fps游戏。用户在云游戏客户端中选择fps游戏之后,终端向云游戏服务器发送游戏启动指令,游戏启动指令中携带有用户账号、该fps游戏的标识以及终端的硬件信息,其中,终端的硬件信息包括终端的屏幕分辨率、终端的型号等,本技术实施例对此不做限定。云游戏服务器接收到该游戏启动指令之后,从该游戏启动指令中获取用户账号、该fps游戏的标识以及终端的硬件信息。云游戏服务器基于终端的硬件信息对该fps游戏进行初始化,以实现渲染得到的游戏画面与终端之间的匹配。云游戏服务器启动该fps游戏。在运行该fps游戏的过程中,用户能够通过终端控制该fps中的被控虚拟对象进行移动,也即是终端将对被控虚拟对象的控制信息发送给云游戏服务器,云游戏服务器基于该控制信息对该fps的虚拟场景进行渲染,得到第一视频帧。参见图2,终端向云端服务器(云游戏服务器)实时传输交互操作(控制信息)。云端服务器基于接收到的交互操作进行渲染计算,向终端返回压缩的音视频流。终端对接收到的音视频流进行解码和播放。
68.在一些实施例中,云游戏服务器在渲染虚拟场景时,除了参考终端的屏幕分辨率以及型号之外,还会参考终端的网络延迟信息。若终端的网络延迟信息指示终端当前的网络延迟较高,那么云游戏服务器能够以较低的质量来渲染虚拟场景,得到的第一视频帧的分辨率也就较低,相应的,第一视频帧占用的网络带宽也就较小,最大程度的保证终端上运行的fps游戏的流畅程度,比如,当终端网络延迟较低时,云游戏服务器渲染出的第一视频帧的分辨率为1080p;当终端网络延迟较高时,云游戏服务器渲染出的第一视频帧的分辨率能够降低到720p。当出现第一视频帧的分辨率降低的情况时,终端能够采用本技术实施例提供的视频帧播放方法,对接收到的第一视频帧进行图像处理,的第二视频帧。相较于第一视频帧来说,图像处理后得到的第二视频帧具有更高的分辨率,也就是说第二视频帧具有更好的显示效果。这样就能够在终端网络出现波动时,在保证该fps流畅度的前提下,提高该pfs的显示效果。尤其是对于网络不稳定但是具有一定算力的终端来说,能够提高用户的游戏体验。
69.在一些实施例中,云游戏服务器向终端发送第一视频帧时,不是一帧一帧发送的,而是会渲染出一个视频帧序列,该视频帧序列包括多个第一视频帧,云游戏服务器每次会向终端发送该视频帧序列以供终端进行显示。当终端的网络延迟信息指示终端当前的网络延迟较高,云游戏服务器除了能够降低渲染得到的第一视频帧的分辨率之外,还能够减少视频帧序列中第一视频帧的数量,减少视频帧序列中第一视频帧的数量也即是降低终端在显示第一视频帧的帧率,比如,当终端的网络延迟较低时,该视频帧序列携带60个第一视频帧,这60个第一视频帧由终端在1s内均匀显示,此时的帧率也即是60;当终端的网络延迟较低时,该视频帧序列携带的第一视频帧的数量降低至30,这3个第一视频帧由终端在1s内均匀显示,此时的帧率也即是30。可以看出,通过降低帧率的方式能够减少传输视频帧的数量,也就减少了传输视频帧时对带宽的占用,但是降低帧率会导致显示的“顿挫感”。在这种情况下,终端能够采用本技术实施例提供的视频帧播放方法,在接收到的视频帧序列中进行插帧,以增加该视频帧序列中视频帧的数量。消除“顿挫感”,提高视频帧的播放效果。
70.另外,对于moba游戏、tps游戏、战棋游戏以及自走棋游戏来说,均能够采用上述步骤来进行处理,在此不再赘述。
71.还有,本技术实施例提供的视频帧播放方法除了能够应用在上述fps游戏、moba游戏、战棋游戏或者自走棋游戏之外,也能够应用在其他类型的云游戏中,本技术实施例对此不做限定。
72.在介绍完本技术实施例提供的视频帧播放方法的实施环境和应用场景之后,下面对本技术实施例提供的视频帧播放方法进行说明。
73.图3是本技术实施例提供的一种视频帧播放方法的流程图,参见图3,方法包括:
74.301、终端获取多个第一视频帧,该多个第一视频帧是云游戏服务器以目标虚拟场景中被控虚拟对象的视角,对该目标虚拟场景进行渲染得到的视频帧。
75.其中,被控虚拟对象也即是终端控制的虚拟对象。以目标虚拟场景中被控虚拟对象的视角,对该目标虚拟场景进行渲染是指:对目标虚拟场景中,被控虚拟对象观察到的画面进行渲染,得到第一视频帧,被控虚拟对象在虚拟场景中观察到的画面,也即是用户看到的画面。
76.302、终端在该多个第一视频帧的分辨率符合分辨率条件的情况下,对该多个第一视频帧进行图像处理,得到多个第二视频帧,各个第二视频帧的分辨率高于对应的第一视频帧的分辨率。
77.其中,终端对多个第一视频帧进行图像处理的过程,也即是对多个第一视频帧进行超分的过程,超分能够提高第一视频帧的分辨率,提高分辨率能够提高视频帧的显示效果。
78.303、终端播放该多个第二视频帧。
79.其中,第二视频帧是终端对第一视频帧进行图像处理后得到的,那么第二视频帧也就与对应的第一视频帧具有相同的图像内容,相较于显示第一视频帧来说,由于第二视频帧具有更高的分辨率,终端显示第二视频帧时也就具有更好的显示效果。
80.通过本技术实施例提供的技术方案,获取到云游戏服务器发送的多个第一视频帧之后,基于多个第一视频帧的分辨率进行判断,当该分辨率符合分辨率条件时,对多个第一视频帧进行图像处理,图像处理的目的是提高第一视频帧的分辨率,得到多个第二视频帧,多个第二视频帧也就具有更高的分辨率,从而在保证云游戏流畅度的前提下,提高了云游戏的显示效果。
81.上述步骤301-303是对本技术实施例的简单介绍,下面将结合一些例子,对本技术实施例提供的技术方案进行更加清楚地描述,参见图4,方法包括:
82.401、终端向该云游戏服务器发送网络延迟信息,以使该云游戏服务器基于该网络延迟信息生成该多个第一视频帧,该第一视频帧是该云游戏服务器以目标虚拟场景中被控虚拟对象的视角,对该目标虚拟场景进行渲染得到的视频帧。
83.其中,网络延迟信息用于表示终端与云游戏服务器之间的网络延迟。目标虚拟场景也即是用户选择的云游戏的游戏场景,被控虚拟对象的视角也即是被控虚拟对象的虚拟摄像机的视角,在fps游戏中,被控虚拟对象的虚拟摄像机位于被控虚拟对象的头部,用户通过终端控制被控虚拟对象在目标虚拟场景中进行移动时,该虚拟摄像机也会随着被控虚拟对象的移动而移动,该虚拟摄像机拍摄到的画面也即是被控虚拟对象在目标虚拟场景中
观察到的画面。在tps游戏中,被控虚拟对象的虚拟摄像机位于被控虚拟对象的上方,用户通过终端控制被控虚拟对象在目标虚拟场景中进行移动时,该虚拟摄像机也会随着被控虚拟对象的移动而移动,该虚拟摄像机拍摄到的画面也即是在被控虚拟对象上方观察到的画面。在云游戏场景下,该虚拟摄像机拍摄到的画面是由云游戏服务器渲染的,由于游戏过程中存在多个时序上连续的多个画面,该多个画面在本技术中被称为视频帧。
84.在一种可能的实施方式中,终端启动云游戏客户端,通过云游戏客户端获取终端与云游戏服务器之间的网络延迟信息,终端将该网络延迟信息发送给云游戏服务器。云游戏服务器接收到该网络延迟信息之后,根据该网络延迟信息确定对应的渲染参数,采用该渲染参数以目标虚拟场景中被控虚拟对象的视角,对该目标虚拟场景进行渲染,得到多个第一视频帧。
85.在这种实施方式下,终端能够将网络延迟信息发送给云游戏服务器,云游戏服务器能够基于该网络延迟信息来确定渲染参数,该网络延迟信息能够反映终端当前的网络状况,采用该渲染参数渲染得到的视频帧也就与终端网络状况相适应,从而保证终端运行云游戏的流畅程度。
86.下面通过两个例子对上述实施方式进行说明。
87.例1、终端启动云游戏客户端,通过云游戏客户端向云游戏服务器发送探测数据包,该探测数据包用于请求云游戏服务器返回确认数据包。终端通过云游戏客户端,将接收到确认数据包和发送探测数据包之间的时间差值,确定为该网络延迟信息,终端向云游戏服务器发送该网络延迟信息。云游戏服务器接收到该网络延迟信息之后,确定该网络延迟信息对应的渲染参数,该渲染参数用于指示渲染得到的视频帧的分辨率。云游戏服务器采用该渲染参数,以目标虚拟场景中被控虚拟对象的视角对该目标虚拟场景进行渲染,得到多个第一视频帧。
88.其中,在云游戏服务器采用该渲染参数,以目标虚拟场景中被控虚拟对象的视角对该目标虚拟场景进行渲染时,渲染工作由云游戏服务器的图形处理器(graphics processing unit,gpu)完成。云游戏服务器的图形处理器在对该目标虚拟场景渲染时,会将渲染得到的多个游戏画面存储在显存中。为了提高处理效率和降低延迟,云游戏服务器的图形处理器会直接对显存中的多个游戏画面进行编码,得到多个第一视频帧。在一些实施例中,云游戏服务器的图形处理器能够将显存中的多个游戏画面编码为vp8(谷歌研发且推出的视频格式)/vp9(谷歌研发且推出的视频格式)/h.264/h.265/avc(advanced video coding,高级视频编码)/avs(audio video coding standard,音视频编码标准)等格式的第一视频帧,本技术实施例对此不做限定。另外,对于游戏画面对应的音频数据来说,云游戏服务器也能够将音频数据编码为silk(微软开发的一种音频格式)/opus(一种开源的音频格式)/aac(advanced audio coding,高级音频编码)等格式的音频数据流。
89.例2、终端启动云游戏客户端,通过云游戏客户端向云游戏服务器发送测试数据下载请求,该测试数据下载请求用于请求从云游戏服务器下载测试数据。终端通过云游戏客户端,从云游戏服务器下载该测试数据,下载的时长由技术人员根据实际情况设置,比如设置为1s或3s等,本技术实施例对此不做限定。终端将下载的数据量与下载时间相除,得到该网络延迟信息。终端向云游戏服务器发送该网络延迟信息。云游戏服务器接收到该网络延迟信息之后,确定该网络延迟信息对应的渲染参数,该渲染参数用于指示渲染得到的视频
帧的分辨率。云游戏服务器采用该渲染参数,以目标虚拟场景中被控虚拟对象的视角对该目标虚拟场景进行渲染,得到多个第一视频帧。
90.在上一种实施方式中,是以终端刚启动云游戏客户端为例进行说明的,下面对终端通过云游戏客户端运行云游戏的过程进行说明。
91.在一种可能的实施方式中,在云游戏客户端上运行云游戏时,终端通过云游戏客户端向云游戏服务器发送对被控虚拟对象的控制信息以及网络延迟信息。云游戏服务器接收到该控制信息和该网络延迟信息之后,基于该控制信息确定目标虚拟场景中被控虚拟对象的视角,基于该网络延迟信息确定对应的渲染参数。云游戏服务器基于该渲染参数以及该被控虚拟对象的视角,对该目标虚拟场景进行渲染,得到第一视频帧。
92.其中,对被控虚拟对象的控制信息用于改变被控虚拟对象在目标场景中的位置、朝向以及动作,比如,控制信息能够控制被控虚拟对象在目标虚拟场景中向前后左右进行移动,或者能够控制被控虚拟对象在目标虚拟场景中向左或者向右旋转,或者能够控制被控虚拟对象在目标虚拟场景中执行下蹲、匍匐以及使用虚拟道具等动作。当然,在云游戏服务器基于控制信息,控制被控虚拟对象在目标虚拟场景中运动或者执行动作时,与被控虚拟对象绑定的虚拟摄像机也会随着被控虚拟对象的运动而运动,被控虚拟对象进行运动或者执行动作会导致被控虚拟对象观察目标虚拟场景的视角发生变化,与被控虚拟对象绑定的虚拟摄像机能够记录这一变化。
93.在上述两种实施方式中,是以由终端将网络延迟信息发送给云游戏服务器,云游戏服务器基于该网络延迟信息来确定对应的渲染参数为例进行说明的,下面对云游戏服务器基于其他方式来确定渲染参数进行说明。
94.在一种可能的实施方式中,终端启动云游戏客户端,通过云游戏客户端获取终端与云游戏服务器之间的网络延迟信息。终端基于该网络延迟信息,确定视频流信息,该视频流信息用于指示视频流的分辨率、码率以及帧率,其中,视频流包括多个视频序列,每个视频序列包括多个第一视频帧。在一些实施例中,同一视频序列中的第一视频帧是云游戏服务器采用相同的渲染参数渲染得到的,不同视频序列中的第一视频帧可能是云游戏服务器采用不同渲染参数渲染得到的。终端将该视频流信息发送给云游戏服务器,该云游戏服务器接收该视频流信息,基于该视频流信息确定对应的渲染参数。云游戏服务器采用该渲染参数以目标虚拟场景中被控虚拟对象的视角,对该目标虚拟场景进行渲染,得到多个第一视频帧。
95.在这种实施方式下,终端在获取到网络延迟信息之后,能够直接基于网络延迟信息确定视频流信息,云游戏服务器直接基于该视频流信息就能够快速确定对应的渲染参数,效率较高。
96.在一种可能的实施方式中,终端启动云游戏客户端,通过云游戏客户端获取终端与云游戏服务器之间的网络延迟信息。终端基于该网络延迟信息,显示视频流信息选择页面,该视频流信息选择页面中显示有候选的多个视频流信息,该多个视频流信息为与该网络延迟信息匹配的视频流信息。响应于多个视频流信息中目标视频流信息被选中,终端将该目标视频流信息发送给云游戏服务器,该云游戏服务器接收该目标视频流信息,基于该目标视频流信息确定对应的渲染参数。云游戏服务器采用该渲染参数以目标虚拟场景中被控虚拟对象的视角,对该目标虚拟场景进行渲染,得到多个第一视频帧。
97.在这种实施方式下,终端在获取到网络延迟信息之后,能够基于该网络延迟信息为用户提供多个可供选择的视频流信息,用户选择视频流信息的过程也即是选择分辨率、帧率以及码率的过程,这样也就为用户提供的更高的自主性。
98.当然,在进行云游戏的过程中,用户也能够通过云游戏客户端随时调整选择的视频流信息,云游戏服务器也就能够相应的调整渲染参数。
99.402、终端获取多个第一视频帧。
100.其中,多个第一视频帧属于同一个视频帧序列,多个第一视频帧是云游戏服务器基于相同的渲染参数对目标虚拟场景进行渲染后得到的,也即是多个第一视频帧具有相同的分辨率。由于多个第一视频帧是云游戏服务器对游戏画面进行编码后得到的,该视频帧序列也即是一个编码视频序列(coded video sequence,cvs)。
101.在一种可能的实施方式中,云游戏服务器在获取编码视频序列的同时,还会从服务器获取该编码视频序列对应的序列参数集(sequence parameter set,sps),该序列参数集用于指示终端如何对编码视频序列进行解码。终端基于该序列参数集,对该编码视频帧序列进行解码,得到多个第一视频帧。
102.403、终端在该多个第一视频帧的分辨率符合分辨率条件的情况下,对该多个第一视频帧进行图像处理,得到多个第二视频帧,各个第二视频帧的分辨率高于对应的第一视频帧的分辨率。
103.在一种可能的实施方式中,在该多个第一视频帧的分辨率符合分辨率条件的情况下,终端在各个第一视频帧中每两个像素点之间插入参考像素点,得到各个第一视频帧对应的第二视频帧,该参考像素点是基于该每两个像素点生成的。其中,这里描述的第一视频帧中每两个像素点是指,第一视频帧中在空间上相邻的两个像素点。
104.在这种实施方式下,对于每个第一视频帧来说,终端能够在该第一视频帧中每两个像素点之间插入参考像素点。通过这种插入参考像素点的方式来实现对第一视频帧的超分,得到的第二视频帧也就具有更高的分辨率,终端显示该第二视频帧时也就具有比对应的第一视频帧更好的效果。
105.在一些实施例中,分辨率符合分辨率条件是指,分辨率小于或等于分辨率阈值,该分辨率阈值由技术人员根据实际情况进行设置,或者由用户根据终端的运算能力进行设置本技术实施例对此不做限定。
106.下面通过几个例子对上述实施方式进行说明。
107.例1、在该多个第一视频帧的分辨率符合分辨率条件的情况下,终端采用最临近插值法在各个第一视频帧中每两个像素点之间插入该参考像素点,得到各个第一视频帧对应的第二视频帧。
108.比如,在该多个第一视频帧的分辨率小于或等于分辨率阈值的情况下,以在第一视频帧中两个像素点之间插入参考像素点为例,终端在这两个像素点之间插入参考像素点,该参考像素点的像素值为初始值,比如为0。终端将这两个像素点中任一像素点的像素值更新该参考像素点的像素值。这一过程体现了“最临近”的思想,也即是将参考像素点的像素值确定为最临近的像素点的像素值,从而快速完成对第一视频帧的图像处理,以提高第一视频帧的分辨率,得到第二视频帧。终端能够采用上述方式对各个第一视频帧进行处理,得到各个第一视频帧对应的第二视频帧。
109.需要说明的是,终端除了能够通过上述方式在各个第一视频帧中每两个像素点之间插入一个参考像素点之外,还能够插入多个参考像素点,下面以终端在各个第一视频帧中每两个像素点之间插入两个像素点为例进行说明。
110.比如,在该多个第一视频帧的分辨率小于或等于分辨率阈值的情况下,以在第一视频帧中两个像素点之间插入两个参考像素点为例,终端在这两个像素点之间插入第一参考像素点和第二参考像素点,该第一参考像素点和该第二参考像素点的像素值均为初始值,比如为0。终端采用这两个像素点中前一个像素点的像素值更新第一参考像素点的像素值,采用后一个像素点的像素值更新第二参考像素点的像素值,其中,这两个像素点中前一个像素点也即是与第一参考像素点之间距离较近的像素点,相应的,这两个像素点中后一个像素点也即是与第二参考像素点之间距离较近的像素点。下面对上述说明中“前一个像素点”和“后一个像素点”的区分方式进行说明。若这两个像素点在第一视频帧上从左至右排列,那么“前一个像素点”也即是这两个像素点中靠左的像素点;“后一个像素点”也即是这两个像素点中靠右的像素点。若这两个像素点在第一视频帧上从上至下排列,那么“前一个像素点”也即是这两个像素点中靠上的像素点;“后一个像素点”也即是这两个像素点中靠下的像素点。
111.例2、在该多个第一视频帧的分辨率符合分辨率条件的情况下,终端采用双线性插值法在各个第一视频帧中每两个像素点之间插入该参考像素点,得到各个第一视频帧对应的第二视频帧。
112.在一种可能的实施方式,在该多个第一视频帧的分辨率小于或等于分辨率阈值的情况下,终端在第一视频帧中每两个像素点之间插入该参考像素点,该参考像素点的像素值为初始像素值,比如为0。终端基于该参考像素点与每两个像素点之间的距离以及这两个像素点的像素值,更新该参考像素点的像素值。
113.以在第一视频帧中两个像素点之间插入两个参考像素点为例,终端在这两个像素点之间插入第一参考像素点和第二参考像素点,第一参考像素点和第二参考像素点的像素值均为初始像素值,比如为0。终端基于第一参考像素点与这两个像素点之间的距离,确定第一参考像素点与这两个像素点之间的两个第一权重,第一权重与距离正相关。终端基于第二考像素点与这两个像素点之间的距离,确定第二参考像素点与这两个像素点之间的两个第二权重,第二权重与距离正相关。终端基于两个第一权重,将这两个像素点的像素值进行加权求和,得到第一像素值,采用第一像素值更新第一参考像素点的像素值。终端基于两个第二权重,将这两个像素点的像素值进行加权求和,得到第二像素值,采用第二像素值更新第二参考像素点的像素值。
114.需要说明的是,上述是以在第一视频帧的每两个像素点之间插入两个参考像素点为例进行说明的,在其他可能的实施方式中,终端能够采用上述方式在每两个像素点之间插入三个或者更多参考像素点,本技术是实施例对于插入参考像素点的数量不做限定。
115.例3、在该多个第一视频帧的分辨率符合分辨率条件的情况下,终端采用均值插值法在各个第一视频帧中每两个像素点之间插入该参考像素点,得到各个第一视频帧对应的第二视频帧。
116.在一种可能的实施方式中,在该多个第一视频帧的分辨率小于或等于分辨率阈值的情况下,终端在第一视频帧中每两个像素点之间插入该参考像素点,该参考像素点的像
素值为初始像素值,比如为0。终端基于每两个像素点的像素值的平均值,更新该参考像素点的像素值。
117.在一种可能的实施方式中,在该多个第一视频帧的分辨率符合分辨率条件的情况下,终端将该多个第一视频帧输入超分模型,由该超分模型对该多个第一视频帧进行上采样,得到该多个第二视频帧。
118.下面通过几个例子对上述实施方式中超分模型的上采样过程进行说明。
119.例1、对于该多个第一视频帧中的任一第一视频帧,终端通过该超分模型对该第一视频帧进行特征提取,得到该第一视频帧的第一视频帧特征。终端通过该超分模型对该第一视频帧特征进行非线性映射,得到该第一视频帧的第二视频帧特征。终端通过该超分模型对该第二视频帧特征进行重构,得到该第一视频帧对应的第二视频帧。在一些实施例中,例1提供的上采样方式也被称为后采样超分,采用后采样超分能够让超分模型自适应的学习上采样过程,还能让特征提取过程在低维空间上进行,极大的降低计算负担,训练速度和推理速度较快。
120.比如,终端将该第一视频帧输入该超分模型,通过该超分模型的至少一个卷积层对第一视频帧进行卷积处理,得到该第一视频帧的第一视频帧特征。终端通过该超分模型的全连接层和激活层,对该第一视频帧特征进行全连接和非线性激活,得到该第一视频帧的第二视频帧特征。终端通过该超分模型的重构层,基于该第二视频帧特征进行重构,这里的重构也即是上采样,上采样能够增加第一视频帧的尺寸,也即是增加第一视频帧中像素点的数量,得到的第二视频帧的分辨率也就高于对应的第一视频帧。在一些实施例中,超分模型的重构层为一个反卷积层或者亚像素卷积层,终端能够通过反卷积层对第二视频帧特征进行反卷积处理,得到第二视频帧,也能够通过亚像素卷积层对第二视频帧特征进行反卷积处理,得到第二视频帧,本技术实施例对此不做限定。
121.下面对例1中超分模型的训练过程进行说明。
122.在一种可能的实施方式中,由于使用该超分模型的目的是提高视频帧的分辨率,那么在训练过程中,采用多个高分辨率图像和分别对应的多个低分辨率图像作为训练样本来对超分模型进行训练,其中,低分辨率图像是对对应的高分辨率图像进行下采样得到的,在一些实施例中,低分辨率图像也被称为受损图像。终端对该超分模型的模型参数进行初始化,将低分辨率图像输入该超分模型,通过该超分模型的至少一个卷积层对低分辨率图像进行卷积,得到该低分辨率图像的第一样本图像特征。终端通过该超分模型的全连接层和激活层对该第一样本图像特征进行全连接和非线性激活,得到该低分辨率图像的第二样本图像特征。终端通过该超分模型的重构层,对第二样本图像特征进行反卷积或者亚像素卷积,输出该低分辨率图像对应的超分图像。终端基于该超分图像与该低分辨率图像对应的高分辨率图像之间的差异信息,对该超分模型的模型参数进行调整。在一些实施例中,该超分图像与该低分辨率图像对应的高分辨率图像之间的差异信息为该超分图像与该低分辨率图像对应的高分辨率图像之间的像素值差异、图像特征差异、纹理差异中的至少一项。
123.在一些实施例中,终端还能够采用生成对抗(ga,generative adversarial)的方式来对该超分模型进行训练,也即是在训练过程中引入一个判别器,该判别器用于对该超分模型输出的图像进行打分,分数用于表示生成的高分辨率图像的逼真程度,该分数越高,也就表示判别器认为对应图像为生成图像的概率越高;该分数越高,也就表示判别器认为
该图像为原生图像的概率越高。终端将低分辨率图像输入超分模型之后,将超分模型输出的超分图像输入判别器,由判别器基于该超分图像进行打分,输出该超分图像对应的分数。终端基于该分数,对该超分模型的模型参数进行调整。在下一轮迭代中,终端根据超分模型输出的超分图像与对应的高分辨率图像之间的差异信息,对判别器的参数进行调整。通过该超分模型与判别器之间的“对抗”,提高超分模型的上采样效果。
124.需要说明的是,上述是以终端对该超分模型进行训练为例进行说明的,在其他可能的实施方式中,该超分模型也可以由云端训练得到,终端直接从云端获取该超分模型即可,本技术实施例对此不做限定。
125.例2、对于该多个第一视频帧中的任一第一视频帧,终端通过该超分模型对该第一视频帧进行多次上采样,得到第一视频帧对应的第二视频帧。在一些实施例中,例2提供的上采样方式也被称为逐步上采样超分,采用逐步上采样超分能够将困难的任务分解为简单的任务,该框架下的超分模型不仅大大降低了学习难度,而且获得了更好的性能。
126.比如,终端将该第一视频帧输入该超分模型,通过该超分模型的至少一个卷积层对第一视频帧进行卷积处理,得到该第一视频帧的第一视频帧特征。终端通过该超分模型的上采样层,对该第一视频帧特征进行上采样,得到第一上采样特征。终端通过该超分模型的至少一个卷积层对第一上采样特征进行卷积处理,得到该第一视频帧的第二视频帧特征。终端通过该超分模型的重构层,基于该第二视频帧特征进行重构,这里的重构也即是上采样,上采样能够增加第一视频帧的尺寸,也即是增加第一视频帧中像素点的数量,得到的第二视频帧的分辨率也就高于对应的第一视频帧。在一些实施例中,超分模型的重构层为一个反卷积层或者亚像素卷积层,终端能够通过反卷积层对第二视频帧特征进行反卷积处理,得到第二视频帧,也能够通过亚像素卷积层对第二视频帧特征进行反卷积处理,得到第二视频帧,本技术实施例对此不做限定。
127.需要说明的是,上述是以终端通过超分模型对第一视频帧进行两次上采样为例进行说明的,在其他可能的实施方式中,终端也能够通过该超分模型对第一视频帧进行三次或三次以上的上采样,本技术实施例对此不做限定。
128.例3、对于该多个第一视频帧中的任一第一视频帧,终端通过该超分模型对该第一视频帧进行上采样,得到第一视频帧对应的上采样视频帧,该上采样视频帧中像素点的数量大于第一视频帧中像素点的数量。终端通过该超分模型,对该上采样视频帧进行特征提取,得到该上采样视频帧的第一视频帧特征。终端通过该超分模型对该第一视频帧特征进行非线性映射,得到该第一视频帧的第二视频帧特征。终端通过该超分模型对该第二视频帧特征进行反卷积,得到该第一视频帧对应的第二视频帧。在一些实施例中,例3提供的上采样方式也被称为预上采样超分,采用预上采样超分能够减少学习难度,且可以得到任意比例图像。
129.比如,终端将该第一视频帧输入该超分模型,通过该超分模型的上采样层对该第一视频帧进行上采样,得到该第一视频帧对应的上采样视频帧。其中,该上采样层能够通过最临近插值法、双线性插值法以及均值插值法中的任一个来对第一视频帧进行上采样,得到该上采样视频帧,本技术实施例对此不做限定。终端通过该超分模型的至少一个卷积层对上采样视频帧进行卷积处理,得到该上采样视频帧的第一视频帧特征。终端通过该超分模型的全连接层和激活层,对该第一视频帧特征进行全连接和非线性激活,得到该上采样
视频帧的第二视频帧特征。终端通过该超分模型的反卷积层对第二视频帧特征进行反卷积处理,得到第二视频帧。
130.下面对例3中超分模型的训练过程进行说明。
131.由于使用该超分模型的目的是提高视频帧的分辨率,那么在训练过程中,采用多个高分辨率图像和分别对应的多个低分辨率图像作为训练样本来对超分模型进行训练,其中,低分辨率图像是对对应的高分辨率图像进行下采样得到的,在一些实施例中,低分辨率图像也被称为受损图像。终端对该超分模型的模型参数进行初始化,将低分辨率图像输入该超分模型,通过该超分模型的上采样层对该低分辨率图像进行上采样,得到该低分辨率图像对应的上采样图像。终端通过该超分模型的至少一个卷积层对低分辨率图像进行卷积,得到该低分辨率图像的第一样本图像特征。终端通过该超分模型的全连接层和激活层对该第一样本图像特征进行全连接和非线性激活,得到该低分辨率图像的第二样本图像特征。终端通过该超分模型的反卷积层,对第二样本图像特征进行反卷积,输出该低分辨率图像对应的超分图像。终端基于该超分图像与该低分辨率图像对应的高分辨率图像之间的差异信息,对该超分模型的模型参数进行调整。在一些实施例中,该超分图像与该低分辨率图像对应的高分辨率图像之间的差异信息为该超分图像与该低分辨率图像对应的高分辨率图像之间的像素值差异、图像特征差异、纹理差异中的至少一项。
132.在一些实施例中,终端还能够采用生成对抗的方式来对该超分模型进行训练,也即是在训练过程中引入一个判别器,该判别器用于对该超分模型输出的图像进行打分,分数用于表示生成的高分辨率图像的逼真程度,该分数越高,也就表示判别器认为对应图像为生成图像的概率越高;该分数越高,也就表示判别器认为该图像为原生图像的概率越高。终端将低分辨率图像输入超分模型之后,将超分模型输出的超分图像输入判别器,由判别器基于该超分图像进行打分,输出该超分图像对应的分数。终端基于该分数,对该超分模型的模型参数进行调整。在下一轮迭代中,终端根据超分模型输出的超分图像与对应的高分辨率图像之间的差异信息,对判别器的参数进行调整。通过该超分模型与判别器之间的“对抗”,提高超分模型的上采样效果。
133.需要说明的是,上述是以终端对该超分模型进行训练为例进行说明的,在其他可能的实施方式中,该超分模型也可以由云端训练得到,终端直接从云端获取该超分模型即可,本技术实施例对此不做限定。
134.另外,终端除了能够通过上述三个例子中描述的上采样方法之外,还能够采用迭代上下采样以及上述各个采样方法的变种来基于第一视频帧获取第二视频帧,比如,终端采用edsr(enhanced deep residual networks for single image super-resolution,用于单一图像超分辨率的增强型深度残差网络)、wdsr(wide activation for efficient and accurate image super-resolution,广泛激活实现高效准确的图像超分辨率)等,本技术实施例对此不做限定。
135.404、在该多个第二视频帧的帧率符合帧率条件的情况下,终端在该多个第二视频帧中进行插帧,得到插帧后的该多个第二视频帧。
136.其中,帧率是指终端每秒播放第二视频帧的数量,帧率越高,播放第二视频帧形成的视频也就越流畅;帧率越低,播放第二视频帧形成的视频也就越卡顿。正如上述步骤401所描述的,当终端当前网络延迟较高,也即是终端当前的网络状况不佳时,云游戏服务器除
了能够通过降低第一视频帧的分辨率的方式来减少传输第一视频帧所占用的带宽之外,还能够减少传输第一视频帧的数量,也即是将多个第一视频帧的帧率来减少传输时所占用的带宽,步骤404也即是在帧率较低时进行插帧,以提高帧率的方法。
137.在一种可能的实施方式中,在该多个第二视频帧的帧率小于或等于帧率阈值的情况下,终端在该多个第二视频帧中每两个第二视频帧之间插入参考视频帧,得到该插帧后的该多个第二视频帧。其中,这里描述的每两个第二视频帧是指,在时序上相邻的两个第二视频帧。
138.在这种实施方式下,当多个第二视频帧的帧率较低时,终端能够在每两个第二视频帧之间进行插帧,以提高多个第二视频帧的帧率,帧率的提高能够消除“顿挫感”,提高多个第二视频帧的播放效果。
139.在上述实施方式的基础上,下面对终端确定参考视频帧的方法进行说明。
140.在一种可能的实施方式中,终端将每两个第二视频帧中任一第二视频帧确定为该参考视频帧。
141.在这种实施方式下,终端能够直接将每两个第二视频帧中任一第二视频帧确定为该参考视频帧,无需终端进行额外的运算,确定参考视频帧的效率较高。
142.举例来说,对于时序上相邻的第二视频帧a和第二视频帧b来说,终端能够直接将第二视频帧a或者第二视频帧b确定为参考视频帧,后续直接将参考视频帧添加之间第二视频帧a和第二视频帧b。比如,终端将第二视频帧a确定为该参考视频帧,那么将该参考视频帧添加到第二视频帧a和第二视频帧b之间后,得到{第二视频帧a|第二视频帧a|第二视频帧b},原本的两个视频帧也就扩展为了三个视频帧,终端也就能够在相同时间内显示更多的视频帧,缩短视频帧之间的显示时间,从而提高播放的流畅程度。
143.在一种可能的实施方式中,终端将该每两个第二视频帧的平均视频帧确定为该参考视频帧,该平均视频帧中像素点的像素值为该每两个第二视频帧中对应像素点的像素值的平均值。
144.在这种实施方式下,终端能够直接通过求取平均值的方式来确定参考像素点,运算量较小,确定参考视频帧的效率较高。
145.举例来说,对于时序上相邻的第二视频帧a和第二视频帧b来说,终端基于第二视频帧a和第二视频帧b生成一个平均视频帧,该平均视频帧也即是该参考视频帧。终端在生成该平均视频帧时,获取第二视频帧a对应的像素值矩阵m和第二视频帧b对应的像素值矩阵n,获取像素值矩阵m和像素值矩阵n的平均像素值矩阵o。终端生成一个空白视频帧,该空白视频帧中像素点的数量和分布与第二视频帧a和第二视频帧b均相同,终端将平均像素值矩阵o中的数值确定为空白视频帧中对应像素点的像素值,得到参考视频帧。后续终端将该参考视频帧添加至第二视频帧a和第二视频帧b即可,也即是将原本的{第二视频帧a|第二视频帧b}变为{第二视频帧a|参考视频帧|第二视频帧b},原本的两个视频帧也就扩展为了三个视频帧,终端也就能够在相同时间内显示更多的视频帧,缩短视频帧之间的显示时间,从而提高播放的流畅程度。
146.在一种可能的实施方式中,终端将该第二视频帧序列输入插帧模型,由该插帧模型基于该每两个第二视频帧进行处理,得到该参考视频帧。
147.为了对上述实施方式进行更加清楚的说明,下面将通过两个例子对终端通过插帧
模型来获取参考视频帧的方法进行说明。
148.例1、终端通过该插帧模型,获取第三视频帧到第四视频帧的后向光流,该第三视频帧为该每两个第二视频帧中前一个第二视频帧,该第四视频帧为该每两个第二视频帧中后一个第二视频帧。终端通过该插帧模型,获取该第四视频帧到该第三视频帧的前向光流。终端通过该插帧模型,基于该后向光流和该前向光流,生成该参考视频帧。
149.在这种实施方式下,终端能够基于光流法来生成参考视频帧,参考视频帧的质量较好,从而提高了终端对视频帧的播放效果。
150.举例来说,终端过该插帧模型,获取第三视频帧到第四视频帧的第一后向光流,基于该第一后向光流,确定第三视频帧的第一时刻到中间时刻的第二后向光流,其中,中间时刻是第三视频帧和第四视频帧之间的时刻。终端通过该插帧模型,获取第三视频帧的特征图和边缘图像。终端通过该插帧模型,基于该第二后向光流,对第三视频帧以及第三视频帧的特征图和边缘图像进行前向映射,得到第一前向映射视频帧以及第一前向映射参考信息,第一前向映射参考信息包括第一前向映射视频帧的特征图和边缘图像。终端过该插帧模型,获取第四视频帧到第三视频帧的第一前向光流,基于该第一前向光流,确定第四视频帧的第二时刻到中间时刻的第二前向光流,其中,中间时刻是第四视频帧和第四视频帧之间的时刻。终端通过该插帧模型,获取第四视频帧的特征图和边缘图像。终端通过该插帧模型,基于该第二前向光流,对第四视频帧以及第四视频帧的特征图和边缘图像进行前向映射,得到第二前向映射视频帧以及第二前向映射参考信息,第二前向映射参考信息包括第二前向映射视频帧的特征图和边缘图像。终端通过该插帧模型,将第一前向映射视频帧、第一前向映射参考信息、第二前向映射视频帧以及第二前向映射参考信息组合为前向映射结果。终端通过该插帧模型,基于第一前向光流,确定从中间时刻到第二时刻的第三后向光流,基于第三后向光流,对第四视频帧以及第四视频帧的特征图和边缘图像进行后向映射,得到第一后向映射视频帧以及第一后向映射参考信息,第一后向映射参考信息包括第一后向映射视频帧的特征图和边缘图像。终端通过该插帧模型,基于第一后向光流,确定从中间时刻到第一时刻的第三前向光流,基于第三前向光流,对第三视频帧以及第三视频帧的特征图和边缘图像进行后向映射,得到第二后向映射视频帧以及第二后向映射参考信息,第二后向映射参考信息包括第二后向映射视频帧的特征图和边缘图像。终端通过该插帧模型,将第一后向映射视频帧、第一后向映射参考信息、第二后向映射视频帧以及第二后向映射参考信息组合为后向映射结果。终端通过该插帧模型,将前向映射结果和后向映射结果进行融合,得到该参考视频帧。
151.其中,终端在通过该插帧模型将前向映射结果和后向映射结果进行融合,得到该参考视频帧时,终端通过该插帧模型,对该前向映射结果进行编码,得到前向中间特征来对该后向映射结果进行编码,得到后向中间特征。终端通过该插帧模型,前向中间特征和后向中间特征进行融合,得到融合中间特征。终端通过该插帧模型,对融合中间特征进行解码,得到该参考视频帧。
152.例2、终端通过该插帧模型,获取第三视频帧中多个图像块在第四视频帧中的运动矢量,该第三视频帧为该每两个第二视频帧中前一个第二视频帧,该第四视频帧为该每两个第二视频帧中后一个第二视频帧。终端基于该运动矢量,生成该参考视频帧。
153.在这种实施方式下,终端能够获取视频帧中图像块的运动矢量,基于运动矢量来
生成参考视频帧,生成的参考视频帧的质量较高,终端的播放视频帧的效果较好。
154.举例来说,终端通过该插帧模型,获取该第三视频帧和第四视频帧的编码信息,该编码信息用于指示对第三视频帧和第四视频帧进行分块的方式以及第三视频帧中各个图像块由第三视频帧到第四视频帧的运动矢量。终端通过该插帧模型,基于该第三视频帧的编码信息,将第三视频帧和第四视频帧划分为多个图像块,确定各个图像块从第三视频帧到第四视频帧的运动矢量。终端通过该插帧模型,对各个图像块对应的运动矢量进行处理,得到各个图像块对应的目标运动矢量。终端通过各个图像块以及各个图像块的目标运动矢量,生成该参考视频帧。其中,终端通过该插帧模型对各个图像块对应的运动矢量进行处理包括将各个图像块对应的运动矢量除以目标数值,也即是保证图像块运动方向不变的前提下,缩短图像块的运动距离,目标数值由技术人员根据实际情况进行设置,本技术实施例对此不做限定。
155.需要说明的是,该插帧模型除了为上述例1和例2中描述插帧模型之外,还可以为其他类型的插帧模型,比如rife(real-time intermediate flow estimation for video frame interpolation,实时中间流估计算法)、rrin(video frame interpolation via residue refinement,基于残差细化的视频帧插值)以及edsc(multiple video frame interpolation via enhanced deformable separable convolution,基于增强可变形可分离卷积的多视频帧插值)等,本技术实施例对此不做限定。
156.另外,上述是以终端先对第一视频帧进行超分(步骤403),随后对超分后的多个第二视频帧进行插帧(步骤404)这样的顺序进行说明的,在其他可能的实施方式中,终端也能够先对多个第一视频帧进行插帧,随后在对插帧后的多个第一视频帧进行超分,本技术实施例对此不做限定。
157.405、终端播放该插帧后的该多个第二视频帧。
158.通过上述步骤401-405,相较于获取到的多个第一视频帧来说,终端播放的多个第二视频帧不仅分辨率更高,而且数量更多,从而播放视频帧的效果更好。
159.下面将结合图5和上述步骤401-405,对本技术实施例提供的视频帧播放方法进行说明,参见图5,终端启动云游戏客户端,通过云游戏客户端获取终端当前的网络延迟信息。终端根据网络延迟信息,确定对应的视频流信息(分辨率、帧率和码率)。云游戏服务器基于该视频流信息确定渲染参数,对目标虚拟场景进行渲染,得到第一视频帧。当网络延迟信息指示终端当前网络状态不佳时,云游戏服务器通知终端降低分辨率和帧率。终端基于获取到的多个第一视频帧进行判断,但需要进行超分和插帧时,对获取到的第一视频帧进行超分和插帧,得到插帧后的多个第二视频帧,终端播放该多个第二视频帧,该多个第二视频帧也即是超分插帧后的云游戏画面。比如,当前网络或终端配置不好,从云游戏服务器接收到的视频流是480p/15fps、720p/30fps或1080p/60fps等,用户可以根据自己体验习惯和终端算力情况选择是否超分插帧到720p/30fps、1080p/60fps或4k/90fps等。
160.上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
161.图6和图7提供了采用本技术实施例提供的视频帧播放方法后首帧延时变化情况和卡顿率变化情况,通过图6可以看出,采用本技术实施例提供的视频帧播放方法后,首帧延时有着100ms以上的下降,卡顿率降低了50%以上。
162.通过本技术实施例提供的技术方案,获取到云游戏服务器发送的多个第一视频帧之后,基于多个第一视频帧的分辨率进行判断,当该分辨率符合分辨率条件时,对多个第一视频帧进行图像处理,图像处理的目的是提高第一视频帧的分辨率,得到多个第二视频帧,多个第二视频帧也就具有更高的分辨率,从而在保证云游戏流畅度的前提下,提高了云游戏的显示效果。
163.通过本技术实施例提供的技术方案,对于网络不稳定的终端,云游戏服务器可以切到低分辨率低fps采集编码,低分辨率低fps可以大幅降低云游戏服务器采集编码的码率,减少网络不稳定终端的网络带宽压力,让传输更稳定流畅,比如对于网络不稳定终端,云游戏服务器采集编码720p/30fps相对1080p/60fps码率可以节省大于400%的网络带宽,然后终端通过插帧和超分技术超分插帧到1080p/60fps,云游戏画质体验相对采集编码1080p/60fps主观体验mos(mean opinion score,主观评分)相差在5%以内,但码率节省了400%以上,对于网络不稳定但是终端算力不错的情况具有极大的提升。
164.图8是本技术实施例提供的一种视频帧播放装置的结构示意图,参见图8,装置包括:视频帧获取模块801、图像处理模块802以及播放模块803。
165.视频帧获取模块801,用于获取多个第一视频帧,该多个第一视频帧是云游戏服务器以目标虚拟场景中被控虚拟对象的视角,对该目标虚拟场景进行渲染得到的视频帧。
166.图像处理模块802,用于在该多个第一视频帧的分辨率符合分辨率条件的情况下,对该多个第一视频帧进行图像处理,得到多个第二视频帧,各个该第二视频帧的分辨率高于对应的第一视频帧的分辨率。
167.播放模块803,用于播放该多个第二视频帧。
168.在一种可能的实施方式中,该图像处理模块802,用于在该多个第一视频帧的分辨率符合分辨率条件的情况下,在各个该第一视频帧中每两个像素点之间插入参考像素点,得到各个该第一视频帧对应的第二视频帧,该参考像素点是基于该每两个像素点生成的。
169.在一种可能的实施方式中,该图像处理模块802,用于执行下述任一项:
170.采用最临近插值法在各个该第一视频帧中每两个像素点之间插入该参考像素点。
171.采用双线性插值法在各个该第一视频帧中每两个像素点之间插入该参考像素点。
172.采用均值插值法在各个该第一视频帧中每两个像素点之间插入该参考像素点。
173.在一种可能的实施方式中,该图像处理模块802,用于在该多个第一视频帧的分辨率符合分辨率条件的情况下,将该多个第一视频帧输入超分模型,由该超分模型对该多个第一视频帧进行上采样,得到该多个第二视频帧。
174.在一种可能的实施方式中,该图像处理模块802,用于对于该多个第一视频帧中的任一第一视频帧,通过该超分模型对该第一视频帧进行特征提取,得到该第一视频帧的第一视频帧特征。对该第一视频帧特征进行非线性映射,得到该第一视频帧的第二视频帧特征。对该第二视频帧特征进行重构,得到该第一视频帧对应的第二视频帧。
175.在一种可能的实施方式中,该装置还包括:
176.插帧模块,用于在该多个第二视频帧的帧率符合帧率条件的情况下,在该多个第二视频帧中进行插帧,得到插帧后的该多个第二视频帧。
177.该播放模块803,还用于播放该插帧后的该多个第二视频帧。
178.在一种可能的实施方式中,该插帧模块用于在该多个第二视频帧的帧率小于或等
于帧率阈值的情况下,在该多个第二视频帧中每两个第二视频帧之间插入参考视频帧,得到该插帧后的该多个第二视频帧。
179.在一种可能的实施方式中,该装置还包括参考帧确定模块,用于执行下述任一项:
180.将该每两个第二视频帧中任一第二视频帧确定为该参考视频帧。
181.将该每两个第二视频帧的平均视频帧确定为该参考视频帧,该平均视频帧中像素点的像素值为该每两个第二视频帧中对应像素点的像素值的平均值。
182.将该第二视频帧序列输入插帧模型,由该插帧模型基于该每两个第二视频帧进行处理,得到该参考视频帧。
183.在一种可能的实施方式中,该参考帧确定模块用于通过该插帧模型,获取第三视频帧到第四视频帧的后向光流,该第三视频帧为该每两个第二视频帧中前一个第二视频帧,该第四视频帧为该每两个第二视频帧中后一个第二视频帧。获取该第四视频帧到该第三视频帧的前向光流。基于该后向光流和该前向光流,生成该参考视频帧。
184.在一种可能的实施方式中,该参考帧确定模块用于通过该插帧模型,获取第三视频帧中多个图像块在第四视频帧中的运动矢量,该第三视频帧为该每两个第二视频帧中前一个第二视频帧,该第四视频帧为该每两个第二视频帧中后一个第二视频帧。基于该运动矢量,生成该参考视频帧。
185.在一种可能的实施方式中,该装置还包括:
186.发送模块,用于向该云游戏服务器发送网络延迟信息,以使该云游戏服务器基于该网络延迟信息生成该多个第一视频帧。
187.需要说明的是:上述实施例提供的视频帧播放装置在播放视频帧时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频帧播放装置与视频帧播放方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
188.通过本技术实施例提供的技术方案,获取到云游戏服务器发送的多个第一视频帧之后,基于多个第一视频帧的分辨率进行判断,当该分辨率符合分辨率条件时,对多个第一视频帧进行图像处理,图像处理的目的是提高第一视频帧的分辨率,得到多个第二视频帧,多个第二视频帧也就具有更高的分辨率,从而在保证云游戏流畅度的前提下,提高了云游戏的显示效果。
189.本技术实施例提供了一种计算机设备,用于执行上述方法,该计算机设备可以实现为终端或者服务器,下面先对终端的结构进行介绍:
190.图9是本技术实施例提供的一种终端的结构示意图。该终端900可以是:智能手机、平板电脑、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
191.通常,终端900包括有:一个或多个处理器901和一个或多个存储器902。
192.处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主
处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
193.存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器901所执行以实现本技术中方法实施例提供的视频帧播放方法。
194.在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907、定位组件908和电源909中的至少一种。
195.外围设备接口903可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
196.射频电路904用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。
197.显示屏905用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。
198.摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。
199.音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。
200.定位组件908用于定位终端900的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。
201.电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。
202.在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器
910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
203.加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。
204.陀螺仪传感器912可以终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3d动作。
205.压力传感器913可以设置在终端900的侧边框和/或显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对ui界面上的可操作性控件进行控制。
206.指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。
207.光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制显示屏905的显示亮度。
208.接近传感器916用于采集用户与终端900的正面之间的距离。
209.本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
210.在示例性实施例中,还提供了一种计算机可读存储介质,例如包括计算机程序的存储器,上述计算机程序可由处理器执行以完成上述实施例中的视频帧播放方法。例如,该计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
211.在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该计算机设备执行上述视频帧播放方法。
212.在一些实施例中,本技术实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。
213.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
214.上述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1