一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

帧率调整方法、装置、设备及存储介质与流程

2023-01-17 13:21:07 来源:中国专利 TAG:


1.本发明实施例涉及互联网技术领域,尤其涉及一种帧率调整方法、装置、设备及存储介质。


背景技术:

2.云游戏是一种以云计算技术为基础的在线游戏技术。随着云渲染、视频编码技术的发展,云游戏已经逐渐普及成为一种重要的游戏形态。云游戏把游戏的运行、渲染等逻辑放在云服务器上,通过视频编码技术对渲染完毕的游戏画面进行编码压缩,编码的码流通过网络传输到终端设备,再由终端设备对码流进行解码渲染和播放。
3.不同玩家游戏客户端运行在不同的终端设备中,在正常情况下,码流的编码帧率越高播放画面越流畅,但是不同终端设备的解码渲染能力不同,现有技术中,为了兼顾低端机型的终端设备,即保证所有终端设备都可以流畅地解码渲染码流,云端服务器使用统一的较低的编码帧率将游戏场景所涉及的游戏画面编码为码流,通过网络传输给终端设备。
4.然而,上述方法会导致编码帧率只与部分终端设备的解码渲染能力适配,其它机型终端设备的解码渲染能力不能合理有效利用。


技术实现要素:

5.本发明实施例提供一种帧率调整方法、装置、设备及存储介质,可使得不同机型的终端设备的解码渲染能力得到合理有效利用,终端设备播放画面更流畅。
6.第一方面,提供一种帧率调整方法,包括:获取目标类型应用程序启动视频流传输时的第一网络带宽;根据所述第一网络带宽和所述目标类型应用程序启动时终端设备的解码渲染能力信息,确定目标帧率,所述解码渲染能力信息包括所述终端设备对m个码率点的码流的解码渲染能力,所述m为正整数;将所述目标帧率发送至服务器,以使所述服务器将当前帧率调整为所述目标帧率,所述当前帧率包括编码帧率或者编码帧率和数据采集帧率。
7.第二方面,提供一种帧率调整方法,包括:接收终端设备发送的目标帧率,所述目标帧率为所述终端设备根据第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息确定,所述第一网络带宽为所述目标类型应用程序启动视频流传输时的网络带宽,所述解码渲染能力信息包括所述终端设备对m个码率点的码流的解码渲染能力,所述m为正整数;将当前编码帧率调整为所述目标帧率;根据所述目标帧率对待传输视频进行编码,得到编码后的码流;将所述编码后的码流发送至所述终端设备,以使得所述终端设备对所述码流进行解码渲染和播放。
8.第三方面,提供一种帧率调整装置,包括:
获取模块,用于获取目标类型应用程序启动视频流传输时的第一网络带宽;确定模块,用于根据所述第一网络带宽和所述目标类型应用程序启动时终端设备的解码渲染能力信息,确定目标帧率,所述解码渲染能力信息包括所述终端设备对m个码率点的码流的解码渲染能力,所述m为正整数;发送模块,用于将所述目标帧率发送至服务器,以使所述服务器将当前编码帧率调整为所述目标帧率。
9.第四方面,提供一种帧率调整装置,包括:接收模块,用于接收终端设备发送的目标帧率,所述目标帧率为所述终端设备根据第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息确定,所述第一网络带宽为所述目标类型应用程序启动视频流传输时的网络带宽,所述解码渲染能力信息包括所述终端设备对m个码率点的码流的解码渲染能力,所述m为正整数;调整模块,用于将当前编码帧率调整为所述目标帧率;编码模块,用于根据所述目标帧率对待传输视频进行编码,得到编码后的码流;发送模块,用于将所述编码后的码流发送至所述终端设备,以使得所述终端设备对所述码流进行解码渲染和播放。
10.第五方面,提供一种帧率调整设备,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行如第一方面或其各实施方式中或者第二方面或其各实施方式中的方法。
11.第六方面,提供一种计算机可读存储介质,用于存储计算机程序,计算机程序使得计算机执行如第一方面或其各实施方式中或者第二方面或其各实施方式中的方法。
12.第七方面,提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行如第一方面或其各实施方式中或者第二方面或其各实施方式中的方法。
13.综上,在本发明实施例中,通过终端设备获取目标类型应用程序启动视频流传输时的第一网络带宽,根据第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息,确定目标帧率,将目标帧率发送至服务器,服务器将当前帧率调整为目标帧率,当前帧率包括编码帧率或者编码帧率和数据采集帧率。从而,通过端云协同完成帧率的调节,由于服务器的当前帧率是根据目标类型应用程序启动视频流传输时的第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息实时调整的,因此服务器编码后的码流是基于目标类型应用程序启动时终端设备的渲染能力信息进行编码得到的,因此编码帧率可较好地适配终端设备的渲染能力,实现服务器使用与终端设备的渲染能力适配的编码帧率进行编码,避免出现服务器向终端设备传输编码帧率过高或过低的码流,可使得不同机型的终端设备的解码渲染能力得到合理有效利用,终端设备播放画面更流畅,还可提高服务器端的硬件资源和带宽资源的有效利用率。
附图说明
14.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
15.图1为本发明实施例提供的一种视频图像处理过程示意图;图2为本发明实施例提供的一种视频图像处理过程示意图;图3为本发明实施例提供的一种帧率调整方法的应用场景示意图;图4为本发明实施例提供的一种帧率调整方法的交互流程图;图5为本发明实施例提供的一种帧率调整方法的交互流程示意图;图6为本发明实施例提供的一种获取终端设备的解码渲染能力信息的方法的流程图;图7为本发明实施例提供的一种确定帧率表的方法的流程图;图8为本发明实施例提供的一种帧率调整装置的结构示意图;图9为本发明实施例提供的一种帧率调整装置的结构示意图;图10是本发明实施例提供的帧率调整设备的示意性框图。
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
18.在介绍本发明实施例技术方案之前,下面先对本发明实施例相关知识进行介绍:1、云技术(cloud technology),是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
19.2、云游戏(cloud gaming),又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。简单地说,云游戏是
以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在云端服务器运行,云端服务器将渲染完毕后的游戏画面压缩后通过网络传送给玩家游戏终端。
20.3、帧率,帧率是图像领域中的定义,可以指画面每秒传输帧数,是指动画或视频的画面数,帧率的单位是fps(fps)(每秒传输帧数),fps是图像领域中的定义,是指每秒传输帧数,即动画或视频的画面数。帧率越大,画面越流畅。
21.4、码率,也称比特率(bit rate),或叫位速率,是单位时间内视频(或音频)的数据量,单位是 bps (bit per second,位每秒),一般使用 kbps(千位每秒)或mbps(百万位每秒)。不同的码率,决定着编码器压缩视频的程度,是决定视频最终质量和文件大小的关键因素。
22.5、视频编码,通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式,转化成的数据可以称为码流。
23.6、视频解码,是视频编码的逆向过程。
24.7、端云协同:一种服务器端(云端)和用户端(终端)经过协商,协同工作提升视频画质/流畅度的手段,如协同制定或调整视频编码/视频处理/网络传输的策略。端云协同可用于云游戏、云渲染、实时通信等场景。
25.现有技术中,为了保证所有终端设备都可以流畅地解码渲染码流,云端服务器使用统一的较低的编码帧率将游戏场景所涉及的游戏画面编码为码流,通过网络传输给终端设备。但是该方法会导致编码帧率只与部分终端设备的解码渲染能力适配,其它机型终端设备的解码渲染能力不能合理有效利用。
26.为了解决这一技术问题,本发明实施例中,通过终端设备获取目标类型应用程序启动视频流传输时的第一网络带宽,根据第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息,确定目标帧率,将目标帧率发送至服务器,以使服务器将当前帧率调整为目标帧率,当前帧率包括编码帧率或者编码帧率和数据采集帧率。从而,通过端云协同完成帧率的调节,由于服务器的当前帧率是根据目标类型应用程序启动视频流传输时的第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息实时调整的,因此服务器编码后的码流是基于目标类型应用程序启动时终端设备的渲染能力信息进行编码得到的,因此编码帧率可较好地适配终端设备的渲染能力,实现服务器使用与终端设备的渲染能力适配的编码帧率进行编码,避免出现服务器向终端设备传输编码帧率过高或过低的码流,可使得不同机型的终端设备的解码渲染能力得到合理有效利用,终端设备播放画面更流畅,还可提高服务器端的硬件资源和带宽资源的有效利用率。
27.应理解的是,本发明实施例技术方案可以应用于如下场景,但不限于:目前对于一些基于云场景中视频或者图像处理过程可以如下:图1为本发明实施例提供的一种视频图像处理过程示意图,图2为本发明实施例提供的一种视频图像处理过程示意图。如图1所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行处理,对经过处理后的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行解码,最后按照解码结果进行视频图像的展示。或者,如图2所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行解码,并对解码后的视频图像进行处理,如锐化处理、模糊处理、降噪处理等,最后
对处理后的视频图像进行展示。
28.示例性的,图3为本发明实施例提供的一种帧率调整方法的应用场景示意图,如图3所示,终端设备110可以与服务器120进行通信,其中,服务器120可以是独立的任一物理服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云服务的云服务器,还可以是多个物理服务器构成的服务器集群或者分布式系统,本发明实施例对此不做限制。服务器120可包括用于进行图像编码的编码模块,该编码模块可以包括将模拟音视频信号压缩为编码数据(编码文件)的硬件设备/软件代码。
29.终端设备110可以是具有基本的流媒体播放能力、人机交互能力以及通信能力的设备,例如智能手机、平板电脑、台式计算机和智能电视等,终端设备110中安装并运行有游戏客户端,游戏客户端可以是运行于终端设备110中的应用程序。或者,终端设备110中安装并运行有即时通信客户端或者支持音视频会议客户端,终端设备110中可以包括用于进行图像解码的解码模块,该解码模块可以包括将编码数据(或编码文件)转换为模拟音视频信号的硬件设备/软件代码。
30.在云游戏场景中,云服务器是指在云端运行游戏的服务器,并具备视频增强(编码前处理)、视频编码等功能,但不限于此。终端设备是指一类具备丰富人机交互方式、拥有接入互联网能力、通常搭载各种操作系统、具有较强处理能力的设备。终端设备可以是智能手机、客厅电视、平板电脑、车载终端、玩家游戏终端,如掌上游戏主机等,但不限于此。
31.在云游戏的运行过程中,服务器120可调用编码模块按照视频编码标准(如h.264、h.265等)对渲染得到的游戏画面进行图像压缩编码操作,以节省后续图像传输时占用的网络带宽,然后,可采用码流的方式将图像压缩编码得到的编码数据(编码帧)传输至终端设备110,终端设备110在接收到编码数据后,可通过解码模块对编码数据进行解码得到原始视频帧,再通过渲染模块对视频帧进行渲染显示,即显示原始的游戏画面。
32.在一些可实施方式中,图3所示的应用场景中还可以包括:基站、核心网侧设备等,此外,图3示例性地示出了一个终端设备、一台服务器,实际上可以包括其他数量的终端设备和服务器,本发明实施例对此不做限制。
33.示例性地,本发明实施例技术方案可以应用于音视频交互类场景,如云游戏、交互类直播、视频会议、视频通话等场景,可根据终端设备的解码渲染能力为用户提供最优帧率即更流畅的体验。
34.下面将对本发明实施例技术方案进行详细阐述:图4为本发明实施例提供的一种帧率调整方法的交互流程图,该方法例如可以由如图3所示的终端设备110和服务器120执行,但不限于此,如图4所示,该方法包括如下步骤:s101、终端设备获取目标类型应用程序启动视频流传输时的第一网络带宽。
35.具体地,终端设备中安装和运行有各类应用程序,目标类型应用程序是指具备视频流传输功能的应用程序,目标类型应用程序例如可以为游戏类应用程序、即时通信类应用程序和具有视频通话或语音通话功能的应用程序。
36.在用户启动目标类型应用程序进行视频流传输时,终端设备可检测到该目标类型应用程序启动视频流传输,此时终端设备会进行网络测速,具体可以通过预设的网络测速
方法,得到该目标类型应用程序启动视频流传输时的第一网络带宽,该第一网络带宽可以是终端设备测得的当前网络带宽。本实施例中对具体的网络测试方法不做限制。
37.s102、终端设备根据第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息,确定目标帧率,解码渲染能力信息包括终端设备对m个码率点的码流的解码渲染能力,m为正整数。
38.具体来说,目标类型应用程序启动和该目标类型应用程序启动视频流传输不同,在时间上目标类型应用程序先启动,然后才能启动视频流传输,例如某一即时通信应用程序,先启动该即时通信应用程序,才能启动视频通话(即启动了视频流传输)。
39.本实施例中,终端设备的解码渲染能力信息是目标类型应用程序启动时获取的解码渲染能力信息,解码渲染能力信息包括终端设备对m个码率点的码流的解码渲染能力。
40.可选的,作为一种可实施的方式,s102具体可以为:s1021、终端设备根据目标类型应用程序启动时终端设备的解码渲染能力信息确定帧率表,帧率表包括m个码率点分别对应的帧率。
41.s1022、终端设备根据帧率表与第一网络带宽确定目标帧率。
42.可选的,在一种可实施的方式中,s1021具体可以为:s10211、确定终端设备的解码渲染模式,解码渲染模式包括同步模型和异步模式。
43.s10212、根据终端设备的解码渲染模式和解码渲染能力信息,计算得到m个码率点分别对应的帧率。
44.可选的,解码渲染能力包括平均解码时间和平均渲染时间,s10212中根据终端设备的解码渲染模式和解码渲染能力信息,计算得到m个码率点分别对应的帧率,具体可以为:若终端设备的解码渲染模式为同步模式,m个码率点中的任一目标码率点对应的帧率为n与第一数值的商,第一数值为目标码率点的平均解码时间和目标码率点的平均渲染时间之和,n为预设值。
45.其中,n可以为1秒(s),m个码率点中的任一目标码率点对应的帧率为1除以第一数值的商。
46.若终端设备的解码渲染模式为异步模式,m个码率点中的任一目标码率点对应的帧率为n与第二数值的商,第二数值为目标码率点的平均解码时间和目标码率点的平均渲染时间之中的最大值。
47.其中,n可以为1秒(s),m个码率点中的任一目标码率点对应的帧率为1除以第二数值的商。
48.s10213、根据m个码率点分别对应的帧率得到帧率表。
49.可选的,在一种可实施的方式中,根据m个码率点分别对应的帧率得到帧率表,具体可以为:根据m个码率点分别对应的帧率,确定m个码率点分别对应的码率区间,根据m个码率点、m个码率点分别对应的码率区间和m个码率点分别对应的帧率,得到帧率表。
50.示例性地,如下表一为一个帧率表的示例:表一帧率表码率点对应码率区间帧率
5mbps0~5mbpsfps_5
ꢀꢀꢀ
10mbps
ꢀꢀꢀ
5~10mbps
ꢀꢀꢀ
fps_10
………
imbps(i-5)~imbpsfps_i可选的,s1022中根据帧率表与第一网络带宽确定目标帧率,具体可以为:从帧率表中查找第一网络带宽所在的码率区间,将第一网络带宽所在的码率区间对应的帧率确定为目标帧率。例如,第一网络带宽为7.5 mbps,其所在的码率区间为5 ~ 10 mbps区间,对应帧率为fps_10,即此时目标帧率为fps_10。
51.s103、终端设备将目标帧率发送至服务器。
52.s104、服务器将当前帧率调整为目标帧率,当前帧率包括编码帧率或者编码帧率和数据采集帧率。
53.具体来说,当前帧率包括编码帧率或者编码帧率和数据采集帧率,即服务器可以将当前编码帧率调整为目标帧率,也可以将当前编码帧率和数据采集帧率均调整为目标帧率。
54.s105、服务器根据目标帧率对待传输视频进行编码,得到编码后的码流。
55.具体地,本实施例中,服务器根据目标帧率对待传输视频进行编码,得到编码后的码流,编码的方式不做限制。
56.s106、服务器将编码后的码流发送至终端设备。
57.s107、终端设备对接收到的码流进行解码渲染和播放。
58.具体地,服务器将编码后的码流发送至终端设备,终端设备接收到编码后的码流后,可先对编码后的码流进行解码,解码后进行渲染和播放。
59.本实施例中,目标类型应用程序启动时终端设备的解码渲染能力信息可以是在目标类型应用程序启动时获取,由于应用程序启动后,用户可以操作其它功能,并不一定立即进行视频流传输,还可以启动应用程序一段时间后在后台运行,因此,本实施例中在目标类型应用程序启动时获取终端设备当前的解码渲染能力信息并缓存,在目标类型应用程序启动视频流传输时使用该解码渲染能力信息。下面详细介绍获取目标类型应用程序启动时终端设备的解码渲染能力信息的可实施方式。
60.可选的,在一种可实施的方式中,本实施例的方法在s101之前,还可以包括:s108、终端设备获取目标类型应用程序启动时的第二网络带宽。
61.具体地,在用户启动目标类型应用程序时,终端设备可检测到该目标类型应用程序启动,此时终端设备会进行网络测速,具体可以通过预设的网络测速方法,得到该目标类型应用程序启动时的第二网络带宽,该第二网络带宽可以是终端设备测得的当前最大网络带宽。本实施例中对具体的网络测试方法不做限制。
62.s109、终端设备根据第二网络带宽,获取终端设备的解码渲染能力信息。
63.具体来说,终端设备的解码渲染能力信息是根据终端设备的第二网络带宽确定的。在一种可实施的方式中, s109具体可以包括:s1091、根据第二网络带宽确定m个码率点。
64.s1092、获取m个码率点中每个码率点的测试码流。
65.s1093、分别解码渲染m个码率点中每个码率点的测试码流,得到终端设备对m个码
率点的码流的解码渲染能力,解码渲染能力包括平均解码时间和平均渲染时间。
66.作为一种可实施的方式,s1091中根据第二网络带宽确定m个码率点,具体可以包括:s10911、对第二网络带宽进行向上取整,得到第二网络带宽取整后的值。
67.具体地,例如第二网络带宽为10.1mbps向上取整为11mbps。
68.s10912、根据量化步长对第二网络带宽取整后的值进行量化,得到第二网络带宽的量化值。
69.其中量化步长例如可以为5 mbps、7 mbps、10 mbps或者其它数值,本实施例对此不做限制。
70.作为一种可实施的方式,根据量化步长对第二网络带宽取整后的值进行量化,可以通过如下公式进行量化:其中,max_rate 为第二网络带宽的量化值,a 为量化步长,max_rate_int 为第二网络带宽取整后的值,中的“/”为整数除法操作,结果只保留商的整数部分,以a=5为例,如11/5=2,14/5=2,15/5=3;表示先计算max_rate_int除以a的余数,如果余数大于0,结果为1,否则结果为0。
71.以量化步长为5为例,则第二网络带宽的量化值为:按照上述公式,如网络带宽10.1mbps的量化值就是15,网络带宽17 mbps的量化值就是20。
72.s10913、根据第二网络带宽的量化值和量化步长,确定m个码率点。
73.具体地,例如第二网络带宽的量化值为15mbps,量化步长为5mbps,则可确定5mbps、10mbps、15mbps三个码率点,即m=3。
74.作为一种可实施的方式,s1092具体可以为:根据测试文件确定m个码率点中每个码率点的测试码流;其中,可选的,测试文件为预存,例如可以为预存在本地的文件,例如m=3,3个码率点分别为5mbps、10mbps、15mbps,则根据测试文件确定m个码率点中每个码率点的测试码流,可以是从测试文件分别获取码率为5mbps大小的测试码流、码率为10mbps大小的测试码流和码率为15mbps大小的测试码流。
75.或者,可选的,测试文件可以为目标类型应用程序启动时终端设备从服务器接收。相应地,本实施例的方法还可以包括:服务器接收终端设备发送的测试文件获取请求,测试文件获取请求为目标类型应用程序启动时发送,服务器向终端设备发送测试文件。该种方式不占用终端设备的存储空间。
76.本发明实施例提供的帧率调整方法,通过终端设备获取目标类型应用程序启动视频流传输时的第一网络带宽,根据第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息,确定目标帧率,将目标帧率发送至服务器,服务器将当前帧率调整为目标帧率,当前帧率包括编码帧率或者编码帧率和数据采集帧率。从而,通过端云协同完成帧率的调节,由于服务器的当前帧率是根据目标类型应用程序启动视频流传输时的第一网络带
宽和目标类型应用程序启动时终端设备的解码渲染能力信息实时调整的,因此服务器编码后的码流是基于目标类型应用程序启动时终端设备的渲染能力信息进行编码得到的,因此编码帧率可较好地适配终端设备的渲染能力,实现服务器使用与终端设备的渲染能力适配的编码帧率进行编码,避免出现服务器向终端设备传输编码帧率过高或过低的码流,可使得不同机型的终端设备的解码渲染能力得到合理有效利用,终端设备播放画面更流畅,还可提高服务器端的硬件资源和带宽资源的有效利用率。
77.下面结合一个具体的实施例,对本发明实施例提供的帧率调整方法的技术方案进行详细说明。
78.图5为本发明实施例提供的一种帧率调整方法的交互流程示意图,如图5所示,本实施例的方法可以包括:s201、终端设备获取目标类型应用程序启动时的第二网络带宽。
79.具体地,在用户启动目标类型应用程序时,终端设备可检测到该目标类型应用程序启动,此时终端设备会进行网络测速,具体可以通过预设的网络测速方法,得到该目标类型应用程序启动时的第二网络带宽,该第二网络带宽可以是终端设备测得的当前最大网络带宽。本实施例中对具体的网络测试方法不做限制。
80.s202、终端设备对第二网络带宽进行向上取整,得到第二网络带宽取整后的值,根据量化步长对第二网络带宽取整后的值进行量化,得到第二网络带宽的量化值。
81.具体地,本实施例中以量化步长为5为例进行说明,例如第二网络带宽为10.1mbps向上取整为11mbps。
82.根据量化步长对第二网络带宽取整后的值进行量化,可以通过如下公式进行量化:其中,max_rate 为第二网络带宽的量化值,5 为量化步长,max_rate_int 为第二网络带宽取整后的值,中的“/”为整数除法操作,结果只保留商的整数部分,如11/5=2,14/5=2,15/5=3;表示先计算max_rate_int除以5的余数,如果余数大于0,结果为1,否则结果为0。
83.按照上述公式,如网络带宽10.1mbps的量化值就是15,网络带宽17 mbps的量化值就是20。
84.可选的,s201-s202具体可以由终端设备中的网络测速模块执行,网络测速模块的输出为第二网络带宽的量化值。
85.s203、终端设备根据第二网络带宽的量化值和量化步长,确定m个码率点,根据测试文件确定m个码率点中每个码率点的测试码流。
86.具体地,例如第二网络带宽的量化值为15mbps,量化步长为5mbps,则可确定5mbps、10mbps、15mbps三个码率点,即m=3。
87.s204、终端设备分别解码渲染m个码率点中每个码率点的测试码流,得到目标类型应用程序启动时终端设备的解码渲染能力信息,解码渲染能力信息包括终端设备对m个码率点的码流的解码渲染能力,解码渲染能力包括平均解码时间和平均渲染时间。
88.可选的,上述s203-s204可以由终端设备的解码渲染能力探测模块执行,示例性
地,结合图6示出一种根据第二网络带宽的量化值获取终端设备的解码渲染能力信息的过程。图6为本发明实施例提供的一种获取终端设备的解码渲染能力信息的方法的流程图,如图6所示,终端设备的解码渲染能力信息的获取过程可以包括:s1、输入第二网络带宽的量化值。
89.s2、令整型变量i=5。
90.此处的5即为s203中的量化步长。
91.s3、判断变量i是否小于或等于第二网络带宽的量化值。
92.若是,则执行s4,否则执行s6。
93.s4、解码渲染码率为i mbps大小的码流,记录i mbps码率点对应的平均解码时间和平均渲染时间,得到i mbps码率点的码流的解码渲染能力。
94.具体来说,平均解码时间和平均渲染时间的单位都是毫秒。码率为i mbps大小的码流可以根据测试文件确定。该测试文件可以预存或者从服务器通过网络传输获取。
95.s5、i = i 5,进入s3。
96.s6、输出终端设备的解码渲染能力信息,结束。
97.具体地,通过上述s1-s5可得到终端设备对m个码率点的码流的解码渲染能力,即得到目标类型应用程序启动时终端设备的解码渲染能力信息,m根据第二网络带宽的量化值确定。
98.s205、终端设备根据目标类型应用程序启动时终端设备的解码渲染能力信息确定帧率表,帧率表包括m个码率点分别对应的帧率。
99.在一种可实施的方式中,s205具体可以为:s2051、确定终端设备的解码渲染模式,解码渲染模式包括同步模型和异步模式。
100.s20522、根据终端设备的解码渲染模式和解码渲染能力信息,计算得到m个码率点分别对应的帧率。
101.可选的,解码渲染能力包括平均解码时间和平均渲染时间,s2052中根据终端设备的解码渲染模式和解码渲染能力信息,计算得到m个码率点分别对应的帧率,具体可以为:若终端设备的解码渲染模式为同步模式,m个码率点中的任一目标码率点对应的帧率为n与第一数值的商,第一数值为目标码率点的平均解码时间和目标码率点的平均渲染时间之和,n为预设值。
102.其中,n可以为1秒(s),m个码率点中的任一目标码率点对应的帧率为1除以第一数值的商。
103.若终端设备的解码渲染模式为异步模式,m个码率点中的任一目标码率点对应的帧率为n与第二数值的商,第二数值为目标码率点的平均解码时间和目标码率点的平均渲染时间之中的最大值。
104.其中,n可以为1秒(s),m个码率点中的任一目标码率点对应的帧率为1除以第二数值的商。
105.s20533、根据m个码率点分别对应的帧率,确定m个码率点分别对应的码率区间,根据m个码率点、m个码率点分别对应的码率区间和m个码率点分别对应的帧率,得到帧率表。
106.可选的,上述s205可以由终端设备的帧率计算模块执行。示例性地,结合图7示出一种帧率表的获取过程。图7为本发明实施例提供的一种确定帧率表的方法的流程图,如图
7所示,终端设备根据目标类型应用程序启动时终端设备的解码渲染能力信息确定帧率表的过程可以包括:s11、输入第二网络带宽的量化值。
107.s12、输入终端设备对m个码率点的码流的解码渲染能力,即m个码率点中每个码率点的平均解码时间和平均渲染时间。
108.s13、令整型变量i=5。
109.此处的5即为s203中的量化步长。
110.s14、判断变量i是否小于或等于第二网络带宽的量化值。
111.若是,则执行s15,否则执行s16。
112.s15、判断终端设备的解码渲染模式是否为异步模式。
113.若是,则执行s17,否则执行s18。
114.s17、确定i码率点的帧率为1000与第二数值的商,第二数值为i码率点的平均解码时间和i码率点的平均渲染时间中的最大值。
115.即i码率点的帧率fps_i = 1000ms / max (i码率点的平均解码时间,i码率点的平均渲染时间)。
116.s18、确定i码率点的帧率为1000与第一数值的商,第一数值为i码率点的平均解码时间和i码率点的平均渲染时间之和。
117.即i码率点的帧率fps_i =1000ms / (i码率点的平均解码时间 i码率点的平均渲染时间)。
118.s19、i = i 5,进入s14。
119.s16、根据m个码率点分别对应的帧率,确定m个码率点分别对应的码率区间,根据m个码率点、m个码率点分别对应的码率区间和m个码率点分别对应的帧率,得到帧率表。
120.例如,得到的帧率表如上表一所示。
121.s206、终端设备获取目标类型应用程序启动视频流传输时的第一网络带宽。
122.s207、终端设备从帧率表中查找第一网络带宽所在的码率区间,将第一网络带宽所在的码率区间对应的帧率确定为目标帧率。
123.s208、终端设备将目标帧率发送至服务器。
124.s209、服务器将当前帧率调整为目标帧率,当前帧率包括编码帧率或者编码帧率和数据采集帧率。
125.s210、服务器根据目标帧率对待传输视频进行编码,得到编码后的码流。
126.s211、服务器将编码后的码流发送至终端设备。
127.s212、终端设备对接收到的码流进行解码渲染和播放。
128.具体地,服务器将编码后的码流发送至终端设备,终端设备接收到编码后的码流后,可先对编码后的码流进行解码,解码后进行渲染和播放。
129.本发明实施例提供的帧率调整方法,通过端云协同完成帧率的调节,由于服务器的当前帧率是根据目标类型应用程序启动视频流传输时的第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息实时调整的,因此服务器编码后的码流是基于目标类型应用程序启动时终端设备的渲染能力信息进行编码得到的,因此编码帧率可较好地适配终端设备的渲染能力,实现服务器使用与终端设备的渲染能力适配的编码帧率进行编
码,避免出现服务器向终端设备传输编码帧率过高或过低的码流,可使得不同机型的终端设备的解码渲染能力得到合理有效利用,终端设备播放画面更流畅,还可提高服务器端的硬件资源和带宽资源的有效利用率。
130.图8为本发明实施例提供的一种帧率调整装置的结构示意图,如图8所示,该帧率调整装置可以包括:获取模块11、确定模块12和发送模块13。
131.其中,获取模块11用于获取目标类型应用程序启动视频流传输时的第一网络带宽;确定模块12用于根据第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息,确定目标帧率,解码渲染能力信息包括终端设备对m个码率点的码流的解码渲染能力,m为正整数;发送模块13用于将目标帧率发送至服务器,以使服务器将当前帧率调整为目标帧率,当前帧率包括编码帧率或者编码帧率和数据采集帧率。
132.在一实施例中,确定模块12用于:根据解码渲染能力信息确定帧率表,帧率表包括m个码率点分别对应的帧率;根据帧率表与第一网络带宽确定目标帧率。
133.在一实施例中,获取模块11还用于:获取目标类型应用程序启动时的第二网络带宽;根据第二网络带宽,获取终端设备的解码渲染能力信息。
134.在一实施例中,获取模块11具体用于:根据第二网络带宽确定m个码率点;获取m个码率点中每个码率点的测试码流;分别解码渲染m个码率点中每个码率点的测试码流,得到终端设备对m个码率点的码流的解码渲染能力,解码渲染能力包括平均解码时间和平均渲染时间。
135.在一实施例中,获取模块11具体用于:对第二网络带宽进行向上取整,得到第二网络带宽取整后的值;根据量化步长对第二网络带宽取整后的值进行量化,得到第二网络带宽的量化值;根据第二网络带宽的量化值和量化步长,确定m个码率点。
136.在一实施例中,获取模块11具体用于:根据测试文件确定m个码率点中每个码率点的测试码流;其中,测试文件为预存,或者,测试文件为目标类型应用程序启动时终端设备从服务器接收。
137.在一实施例中,确定模块12用于:确定终端设备的解码渲染模式,解码渲染模式包括同步模型和异步模式;根据终端设备的解码渲染模式和解码渲染能力信息,计算得到m个码率点分别对应的帧率;根据m个码率点分别对应的帧率得到帧率表。
138.在一实施例中,解码渲染能力包括平均解码时间和平均渲染时间,确定模块12具体用于:
若终端设备的解码渲染模式为同步模式,m个码率点中的任一目标码率点对应的帧率为n与第一数值的商,第一数值为目标码率点的平均解码时间和目标码率点的平均渲染时间之和,n为预设值;若终端设备的解码渲染模式为异步模式,m个码率点中的任一目标码率点对应的帧率为n与第二数值的商,第二数值为目标码率点的平均解码时间和目标码率点的平均渲染时间之中的最大值。
139.在一实施例中,确定模块12具体用于:根据m个码率点分别对应的帧率,确定m个码率点分别对应的码率区间;根据m个码率点、m个码率点分别对应的码率区间和m个码率点分别对应的帧率,得到帧率表。
140.在一实施例中,确定模块12具体用于:从帧率表中查找第一网络带宽所在的码率区间,将第一网络带宽所在的码率区间对应的帧率确定为目标帧率。
141.应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图6所示的帧率调整装置可以执行图4对应的方法实施例,并且帧率调整装置中的各个模块的前述和其它操作和/或功能分别为了实现图4对应的方法实施例中的相应流程,为了简洁,在此不再赘述。
142.图9为本发明实施例提供的一种帧率调整装置的结构示意图,如图9所示,该帧率调整装置可以包括:接收模块21、调整模块22、编码模块23和发送模块24。
143.其中,接收模块21用于接收终端设备发送的目标帧率,目标帧率为终端设备根据第一网络带宽和目标类型应用程序启动时终端设备的解码渲染能力信息确定,第一网络带宽为目标类型应用程序启动视频流传输时的网络带宽,解码渲染能力信息包括终端设备对m个码率点的码流的解码渲染能力,m为正整数;调整模块22用于将当前帧率调整为目标帧率,当前帧率包括编码帧率或者编码帧率和数据采集帧率;编码模块23用于根据目标帧率对待传输视频进行编码,得到编码后的码流;发送模块24用于将编码后的码流发送至终端设备,以使得终端设备对码流进行解码渲染和播放。
144.在一实施例中,接收模块21还用于:接收终端设备发送的测试文件获取请求,测试文件获取请求为目标类型应用程序启动时发送;发送模块24还用于向终端设备发送测试文件。
145.应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。
146.上文中结合附图从功能模块的角度描述了本发明实施例的帧率调整装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本发明实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本发明实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电
可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
147.图10是本发明实施例提供的帧率调整设备的示意性框图。该帧率调整设备可以是上述方法实施例中的服务器或终端设备。
148.如图10所示,该帧率调整设备可包括:存储器210和处理器220,该存储器210用于存储计算机程序,并将该程序代码传输给该处理器220。换言之,该处理器220可以从存储器210中调用并运行计算机程序,以实现本发明实施例中的方法。
149.例如,该处理器220可用于根据该计算机程序中的指令执行上述方法实施例。
150.在本发明实施例的一些实施例中,该处理器220可以包括但不限于:通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
151.在本发明实施例的一些实施例中,该存储器210包括但不限于:易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
152.在本发明实施例的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器210中,并由该处理器220执行,以完成本发明实施例提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该帧率调整设备中的执行过程。
153.如图10所示,该帧率调整设备还可包括:收发器230,该收发器230可连接至该处理器220或存储器210。
154.其中,处理器220可以控制该收发器230与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器230可以包括发射机和接收机。收发器230还可以进一步包括天线,天线的数量可以为一个或多个。
155.应当理解,该帧率调整设备中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
156.本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本发明实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方
法实施例的方法。
157.当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本发明实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,dvd))、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
158.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
159.在本发明实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
160.作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本发明实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
161.以上该,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以该权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献