CN116567297A - 帧率调整方法、装置、设备及存储介质 - Google Patents
帧率调整方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116567297A CN116567297A CN202210103004.7A CN202210103004A CN116567297A CN 116567297 A CN116567297 A CN 116567297A CN 202210103004 A CN202210103004 A CN 202210103004A CN 116567297 A CN116567297 A CN 116567297A
- Authority
- CN
- China
- Prior art keywords
- frame rate
- capability information
- coding frame
- rendering capability
- rendering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000009877 rendering Methods 0.000 claims abstract description 225
- 238000012545 processing Methods 0.000 claims description 42
- 230000008569 process Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 18
- 230000002829 reductive effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 23
- 238000005516 engineering process Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000036961 partial effect Effects 0.000 description 8
- 239000002699 waste material Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42607—Internal components of the client ; Characteristics thereof for processing the incoming bitstream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供了一种帧率调整方法、装置、设备及存储介质,包括:按照预设周期接收终端设备发送的渲染能力信息,渲染能力信息用于表征终端设备对接收到的码流的渲染能力,根据渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率,根据调整后的编码帧率对待传输视频进行编码,得到编码后的码流,将编码后的码流发送至终端设备,以使得终端设备根据编码后的码流渲染并显示待传输视频。从而,可提高服务器端的硬件资源和带宽资源的有效利用率。
Description
技术领域
本申请实施例涉及互联网技术领域,尤其一种帧率调整方法、装置、设备及存储介质。
背景技术
云游戏是一种以云计算技术为基础的在线游戏技术。随着云渲染、视频编码技术的发展,云游戏已经逐渐普及成为一种重要的游戏形态。云游戏把游戏的运行、渲染等逻辑放在云服务器上,通过视频编码技术对游戏画面进行编码压缩,编码的码流通过网络传输到终端设备,再由终端设备对码流进行解码和播放。
不同玩家游戏客户端运行在不同的终端设备中,现有技术中,云端服务器使用统一的编码帧率将游戏场景所涉及的游戏画面编码为码流,通过网络传输给玩家游戏客户端所在的终端设备。在正常情况下,码流的编码帧率越高播放画面越流畅。但是不同用户使用的终端设备的性能(例如图形处理能力)不同,有很多终端设备的性能无法支持渲染高编码帧率的码流。如果服务器向渲染能力不足的终端设备传输编码帧率过高的码流,在终端设备会存在渲染不及时导致的延时。服务器使用超过终端设备实际需要的编码帧率对游戏画面编码,会造成硬件资源和带宽资源浪费。
发明内容
本申请提供一种帧率调整方法、装置、设备及存储介质,可提高服务器端的硬件资源和带宽资源的有效利用率。
第一方面,提供一种帧率调整方法,包括:
按照预设周期接收终端设备发送的渲染能力信息,所述渲染能力信息用于表征所述终端设备对接收到的码流的渲染能力;
根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率;
根据所述调整后的编码帧率对待传输视频进行编码,得到编码后的码流;
将所述编码后的码流发送至所述终端设备,以使得所述终端设备根据所述编码后的码流渲染并显示所述待传输视频。
第二方面,提供一种帧率调整方法,包括:
接收服务器发送的码流;
对所述码流进行解码和渲染,并获取渲染能力信息,所述渲染能力信息用于表征终端设备对接收到的码流的渲染能力;
向服务器发送所述渲染能力信息,以使得所述服务器根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率,并根据所述调整后的编码帧率对待传输视频进行编码,得到编码后的码流。
第三方面,提供一种帧率调整装置,包括:
接收模块,用于按照预设周期接收终端设备发送的渲染能力信息,所述渲染能力信息用于表征所述终端设备对接收到的码流的渲染能力;
帧率调整模块,用于根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率;
编码模块,用于根据所述调整后的编码帧率对待传输视频进行编码,得到编码后的码流;
发送模块,用于将所述编码后的码流发送至所述终端设备,以使得所述终端设备根据所述编码后的码流渲染并显示所述待传输视频。
第四方面,提供一种帧率调整装置,包括:
接收模块,用于接收服务器发送的码流;
处理模块,用于对所述码流进行解码和渲染,并获取渲染能力信息,所述渲染能力信息用于表征终端设备对接收到的码流的渲染能力;
发送模块,用于向服务器发送所述渲染能力信息,以使得所述服务器根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率,并根据所述调整后的编码帧率对待传输视频进行编码,得到编码后的码流。
第五方面,提供一种服务器,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行如第一方面或其各实现方式中或者第二方面或其各实现方式中的方法。
第六方面,提供一种计算机可读存储介质,用于存储计算机程序,计算机程序使得计算机执行如第一方面或其各实现方式中或者第二方面或其各实现方式中的方法。
第七方面,提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行如第一方面或其各实现方式中或者第二方面或其各实现方式中的方法。
综上,在本申请中,通过服务器按照预设周期获取终端设备发送的渲染能力信息,根据渲染能力信息对编码帧率进行动态调整,使用调整后的编码帧率对待传输视频进行编码,并将编码后的码流发送给终端设备。由于编码帧率是根据终端设备的渲染能力信息动态调整的,因此编码后的码流是基于终端设备的渲染能力进行编码得到的,因此编码后的码流可较好地适配终端设备的渲染能力,实现服务器使用与终端设备的渲染能力适配的编码帧率进行编码,避免出现服务器向终端设备传输编码帧率过高的码流,导致终端设备渲染不及时出现的延时,同样可避免出现服务器使用超过终端设备实际需要的编码帧率对游戏画面编码,造成硬件资源和带宽资源浪费,可提高服务器端的硬件资源和带宽资源的有效利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种视频图像处理过程示意图;
图2为本申请实施例提供的一种视频图像处理过程示意图;
图3为本申请实施例提供的一种帧率调整方法的应用场景示意图;
图4为本申请实施例提供的一种帧率调整方法的流程图;
图5为本申请实施例提供的一种帧率调整方法的交互流程示意图;
图6为本申请实施例提供的一种帧率调整方法中终端设备收集渲染能力信息及发送渲染能力信息至服务器的过程示意图;
图7为本申请实施例提供的一种帧率调整方法中服务器进行帧率调整的流程示意图;
图8为本申请实施例提供的一种帧率调整方法的交互流程示意图;
图9为本申请实施例提供的一种视频图像处理过程示意图;
图10为本申请实施例提供的一种视频图像处理过程示意图;
图11为本申请实施例提供的一种视频图像处理过程示意图;
图12为本申请实施例提供的一种帧率调整装置的结构示意图;
图13为本申请实施例提供的一种帧率调整装置的结构示意图;
图14是本申请实施例提供的帧率调整设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在介绍本申请技术方案之前,下面先对本申请相关知识进行介绍:
1、云技术(Cloud technology),是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
2、云游戏(Cloud gaming),又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
3、帧率,帧率是图像领域中的定义,可以指画面每秒传输帧数,是指动画或视频的画面数,帧率的单位是FPS(fps)(每秒传输帧数),FPS是图像领域中的定义,是指每秒传输帧数,即动画或视频的画面数。帧率越大,画面越流畅。
如上,现有技术中对游戏画面编码并传输给游戏客户端时,一方面终端设备会存在渲染不及时导致的延时,另一方面会造成服务器端硬件资源和带宽资源浪费。为了解决这一技术问题,本申请中,通过服务器按照预设周期获取客户端发送的渲染能力信息,根据渲染能力信息对编码帧率进行动态调整,使用调整后的编码帧率对待传输视频进行编码,并将编码后的码流发送给客户端。由于编码帧率是根据终端设备的渲染能力信息动态调整的,因此编码后的码流是基于终端设备的渲染能力进行编码得到的,因此编码后的码流可较好地适配终端设备的渲染能力,实现服务器使用与终端设备的渲染能力适配的编码帧率进行编码,避免出现服务器向终端设备传输编码帧率过高的码流,导致终端设备渲染不及时出现的延时,同样可避免出现服务器使用超过终端设备实际需要的编码帧率对游戏画面编码,造成硬件资源和带宽资源浪费,可提高服务器端的硬件资源和带宽资源的有效利用率。
应理解的是,本申请技术方案可以应用于如下场景,但不限于:
目前对于一些基于云场景中视频或者图像处理过程可以如下:图1为本申请实施例提供的一种视频图像处理过程示意图,图2为本申请实施例提供的一种视频图像处理过程示意图。如图1所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行处理,对经过处理后的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行解码,最后按照解码结果进行视频图像的展示。或者,如图2所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行解码,并对解码后的视频图像进行处理,如锐化处理、模糊处理、降噪处理等,最后对处理后的视频图像进行展示。
示例性的,图3为本申请实施例提供的一种帧率调整方法的应用场景示意图,如图3所示,终端设备110可以与服务器120进行通信,其中,服务器120可以是独立的任一物理服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云服务的云服务器,还可以是多个物理服务器构成的服务器集群或者分布式系统,本申请对此不做限制。服务器120可包括用于进行图像编码的编码模块,该编码模块可以包括将模拟音视频信号压缩为编码数据(编码文件)的硬件设备/软件代码。
终端设备110可以是具有基本的流媒体播放能力、人机交互能力以及通信能力的设备,例如智能手机、平板电脑、台式计算机和智能电视等,终端设备110中安装并运行有游戏客户端,游戏客户端可以是运行于终端设备110中的应用程序。终端设备110中可以包括用于进行图像解码的解码模块,该解码模块可以包括将编码数据(或编码文件)转换为模拟音视频信号的硬件设备/软件代码。
在云游戏场景中,云服务器是指在云端运行游戏的服务器,并具备视频增强(编码前处理)、视频编码等功能,但不限于此。终端设备是指一类具备丰富人机交互方式、拥有接入互联网能力、通常搭载各种操作系统、具有较强处理能力的设备。终端设备可以是智能手机、客厅电视、平板电脑、车载终端、玩家游戏终端,如掌上游戏主机等,但不限于此。
在云游戏的运行过程中,服务器120可调用编码模块按照视频编码标准(如H.264、H.265等)对渲染得到的游戏画面进行图像压缩编码操作,以节省后续图像传输时占用的网络带宽,然后,可采用码流的方式将图像压缩编码得到的编码数据(编码帧)传输至终端设备110,终端设备110在接收到编码数据后,可通过解码模块对编码数据进行解码得到原始视频帧,再通过渲染模块对视频帧进行渲染显示,即显示原始的游戏画面。
本实施例中,视频帧也称为图像帧。
在一些可实现方式中,图3所示的应用场景中还可以包括:基站、核心网侧设备等,此外,图3示例性地示出了一个终端设备、一台服务器,实际上可以包括其他数量的终端设备和服务器,本申请对此不做限制。
下面将对本申请技术方案进行详细阐述:
图4为本申请实施例提供的一种帧率调整方法的流程图,该方法例如可以由如图3所示的服务器120执行,但不限于此,如图4所示,该方法包括如下步骤:
S101、按照预设周期接收终端设备发送的渲染能力信息,渲染能力信息用于表征终端设备对接收到的码流的渲染能力。
具体地,终端设备中安装有客户端,客户端可以为游戏客户端,可以为运行在终端设备中的应用程序。可选的,终端设备可以按照预设周期或者实时收集终端设备对接收到的码流的渲染能力(即渲染能力信息),并将收集到的渲染能力信息按照预设周期或者实时发送至服务器,具体可以是通过客户端发送至服务器。服务器按照预设周期接收终端设备发送的渲染能力信息,可选的,终端设备收集的预设周期与服务器接收渲染能力信息的预设周期可以相同也可以不同。例如,终端设备可以是实时收集,服务器在确定到达预设周期接收终端设备发送的渲染能力信息。
其中,渲染能力信息用于表征终端设备对接收到的码流的渲染能力,可选的,在一种可实施的方式中,渲染能力信息可以包括n与m的比值t,n为一个预设周期内终端设备渲染的视频帧数量,m为一个预设周期内终端设备接收到的视频帧数量m。例如,一个预设周期可以是0.5s、1s等等。若m与n相等,则可认为此时终端设备渲染能力充足。若n小于m可认为终端设备渲染能力不足以支撑当前的编码帧率。可选的,在一种可实施的方式中,渲染能力信息可以包括终端设备渲染预设数量的视频帧的时间T。预设数量例如为1个时,渲染能力信息即为终端设备渲染单帧视频帧的时间。预设数量还可以是其他数量。
S102、根据渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率。
具体地,根据渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率,可以是:
S1021、根据渲染能力信息、当前编码帧率和预设的调整方式,确定编码帧率的调整方向和帧率调整值,调整方向包括增大编码帧率、减小编码帧率或者编码帧率保持不变,帧率调整值为当前编码帧率的倍数。
其中,当前编码帧率为终端设备已接收到的码流的编码帧率,也为服务器在当前接收到终端设备的渲染能力信息时的编码帧率。
本实施例中,S102有如下三种可实施的方式:
作为一种可实施的方式,渲染能力信息包括n与m的比值t时,S1021中根据渲染能力信息、当前编码帧率和预设的调整方式,确定编码帧率的调整方向和帧率调整值,具体可以为:
若t小于1,确定编码帧率的调整方向为减小编码帧率,确定帧率调整值为当前编码帧率的n/m倍;
若t等于1,确定编码帧率的调整方向为编码帧率保持不变,确定帧率调整值为当前编码帧率的1倍。
作为另一种可实施的方式,渲染能力信息包括n与m的比值t时,S1021中根据渲染能力信息、当前编码帧率和预设的调整方式,确定编码帧率的调整方向和帧率调整值,具体可以为:
根据t、预设的最大编码帧率、渲染能力信息、当前编码帧率和预设的调整方式,确定编码帧率的调整方向和帧率调整值。
可选的,根据t、预设的最大编码帧率、渲染能力信息、当前编码帧率和预设的调整方式,确定编码帧率的调整方向和帧率调整值,具体可以为:
若t小于1,确定编码帧率的调整方向为减小编码帧率,确定帧率调整值为当前编码帧率的n/m倍;
若t等于1,在当前编码帧率小于预设的最大编码帧率时,确定编码帧率的调整方向为增大编码帧率,确定帧率调整值为当前编码帧率的M倍,M为预设数值。其中,预设的最大编码帧率为服务器的最大编码帧率,M例如为1.2,即将当前编码帧率提升20%。
在当前编码帧率等于预设的最大编码帧率时,确定编码帧率的调整方向为编码帧率保持不变,确定帧率调整值为当前编码帧率的1倍。
作为另一种可实施的方式,若渲染能力信息为所述终端设备渲染预设数量的视频帧的时间T,S102中根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率,具体可以包括:
先根据所述T计算得到所述终端设备的渲染帧率。具体地,例如预设数量为5,先计算出终端设备渲染单帧视频帧的时间为T1=T/5,接着计算终端设备的渲染帧率为1/T1。
若所述渲染帧率小于当前编码帧率,确定所述编码帧率的调整方向为减小编码帧率,确定所述帧率调整值为所述渲染帧率;若所述渲染帧率等于所述当前编码帧率,确定所述编码帧率的调整方向为所述编码帧率保持不变,确定所述帧率调整值为所述当前编码帧率的1倍。
S1022、根据编码帧率的调整方向和帧率调整值对编码帧率进行调整,得到调整后的编码帧率。
具体地,得到编码帧率的调整方向和帧率调整值后,即可直接根据编码帧率的调整方向和帧率调整值进行调整,得到调整后的编码帧率。
S103、根据调整后的编码帧率对待传输视频进行编码,得到编码后的码流。
具体地,本实施例中,根据调整后的编码帧率对待传输视频进行编码,得到编码后的码流,编码的方式不做限制。
S104、将编码后的码流发送至终端设备,以使得终端设备根据编码后的码流渲染并显示待传输视频。
具体地,服务器将编码后的码流发送至终端设备,终端设备接收到编码后的码流后,可先对编码后的码流进行解码,解码后进行渲染并显示待传输视频。
本申请提供的帧率调整方法,通过服务器按照预设周期获取终端设备发送的渲染能力信息,根据渲染能力信息对编码帧率进行动态调整,使用调整后的编码帧率对待传输视频进行编码,并将编码后的码流发送给终端设备。由于编码帧率是根据终端设备的渲染能力信息动态调整的,因此编码后的码流是基于终端设备的渲染能力进行编码得到的,因此编码后的码流可较好地适配终端设备的渲染能力,实现服务器使用与终端设备的渲染能力适配的编码帧率进行编码,避免出现服务器向终端设备传输编码帧率过高的码流,导致终端设备渲染不及时出现的延时,同样可避免出现服务器使用超过终端设备实际需要的编码帧率对游戏画面编码,造成硬件资源和带宽资源浪费,可提高服务器端的硬件资源和带宽资源的有效利用率。
下面结合一个具体的实施例,对本申请提供的帧率调整方法的技术方案进行详细说明。
图5为本申请实施例提供的一种帧率调整方法的交互流程示意图,如图5所示,本实施例的方法可以包括:
S201、终端设备按照预设周期收集终端设备对接收到的码流的渲染能力。
可选的,S201可以为:终端设备通过客户端接收服务器发送的码流,对所述码流进行解码和渲染,并获取渲染能力信息。
其中渲染能力信息可以包括n与m的比值t,所述n为一个所述预设周期内所述终端设备渲染的视频帧数量,所述m为所述一个所述预设周期内所述终端设备接收到的视频帧数量;或者,所述渲染能力信息可以包括所述终端设备渲染预设数量的视频帧的时间T。
若渲染能力信息为n与m的比值t,终端设备对所述码流进行解码和渲染,并获取渲染能力信息,具体可以包括:
根据所述码流进行视频帧计数,并将视频帧输入队列,从所述队列中依次取出视频帧,对取出的视频帧进行解码和渲染,并统计渲染完成的视频帧的数量,在一个预设周期到达时,获取一个所述预设周期内所述终端设备渲染的视频帧数量n和一个所述预设周期内所述终端设备接收到的视频帧数量,计算所述n与所述m的比值t。
若渲染能力信息为所述终端设备渲染预设数量的视频帧的时间T,终端设备对所述码流进行解码和渲染,并获取渲染能力信息,具体可以包括:
根据所述码流进行视频帧计数,并将视频帧输入队列,从所述队列中依次取出视频帧,对取出的视频帧进行解码和渲染,并统计渲染完成的视频帧的数量,在渲染完成的视频帧的数量等于所述预设数量时,获取渲染所述预设数量的视频帧的时间T。
S202、终端设备按照预设周期向服务器发送渲染能力信息。
具体地,终端设备对接收到的码流的渲染能力即为渲染能力信息,本实施例中以渲染能力信息为n与m的比值t为例,n为一个预设周期内终端设备渲染的视频帧数量,m为一个预设周期内终端设备接收到的视频帧数量m。图6给出了一种终端设备收集渲染能力信息及发送渲染能力信息至服务器的示例,图6为本申请实施例提供的一种帧率调整方法中终端设备收集渲染能力信息及发送渲染能力信息至服务器的过程示意图,如图6所示,终端设备的处理过程可以包括:
S1、终端设备接收服务器发送的编码后的码流。
其中,例如,服务器发送的编码后的码流的编码帧率为第一编码帧率。其中的码流为视频帧序列。
S2、终端设备进行视频帧计数,并将视频帧输入队列。同时从队列中取视频帧,对取出的视频帧进行解码、渲染,并进行渲染计数,及统计渲染完成的视频帧的数量。
S3、终端设备判断是否满足统计时间间隔。
此处的统计时间间隔即为一个预设周期。若是,则执行S4,若否,则执行S2。
S4、向服务器发送统计时间间隔内终端设备渲染的视频帧数量n与终端设备接收到的视频帧数量m的比值t。同时重新进行输入帧计数和渲染以及渲染视频帧计数。
S203、服务器根据渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率。
具体地,服务器根据渲染能力信息对编码帧率进行动态调整,具体可以有三种可实施的方式,可参见图4实施例中的描述。
本实施例中是以渲染能力信息为t(即n/m)为例,图7为本申请实施例提供的一种帧率调整方法中服务器进行帧率调整的流程示意图,图7仅是一种示例,具体是图4实施例中第二种可实施的方式的示例,具体地,图7所示的方法可以包括:
S11、服务器确定是否满足统计时间间隔。
此处的统计时间间隔即为预设周期,若是,则执行S12,若否,则执行S13。
S12、服务器判断n/m是否等于1。
若是,则执行S13,若否,则执行S14
S13、服务器判断当前编码帧率是否等于预设的最大编码帧率。
若是,则执行S15,若否,则执行S16。
S14、服务器将编码帧率调整为当前编码帧率的n/m倍。
S15、服务器维持当前编码帧率不变。
S16、服务器将编码帧率调整为当前编码帧率的M倍,M为预设数值。
本实施例中,M例如为1.2,即就是将编码帧率提升20%。
S204、服务器根据调整后的编码帧率对待传输视频进行编码,得到编码后的码流。
S205、服务器将编码后的码流发送至终端设备。
S206、终端设备根据编码后的码流渲染并显示待传输视频。
具体地,终端设备接收到编码后的码流后,可先对编码后的码流进行解码,解码后进行渲染并显示待传输视频。例如具体可以是继续进行图6所示的处理过程。
本申请提供的帧率调整方法,由于编码帧率是根据终端设备的渲染能力信息动态调整的,因此编码后的码流是基于终端设备的渲染能力进行编码得到的,因此编码后的码流可较好地适配终端设备的渲染能力,实现服务器使用与终端设备的渲染能力适配的编码帧率进行编码,避免出现服务器向终端设备传输编码帧率过高的码流,导致终端设备渲染不及时出现的延时,同样可避免出现服务器使用超过终端设备实际需要的编码帧率对游戏画面编码,造成硬件资源和带宽资源浪费,可提高服务器端的硬件资源和带宽资源的有效利用率。
在一种可实施的方式中,终端设备接收服务器发送的编码后的码流,可以是通过客户端接收服务器发送的码流,终端设备向服务器发送渲染能力信息,可以是通过客户端向所述服务器发送所述渲染能力信息。图8为本申请实施例提供的一种帧率调整方法的交互流程示意图,如图8所示,本实施例中服务器可以为云服务器。本实施例中S301-S306与图6所示实施例中的S201-S206的具体实施过程类似,区别在于S302中是终端设备通过客户端向所述云服务器发送所述渲染能力信息,即终端设备向客户端发送渲染能力信息,再由客户端通过网络将渲染能力信息发送给云服务器。以及,S305中是云服务器通过客户端向终端设备发送编码后的码流,即,云服务器通过网络向客户端发送编码后的码流,再由客户端将编码后的码流发送给终端设备。
在本申请上述实施例中,可选地,终端设备的渲染能力可以被划分为以下三种情况:
情况一:终端设备针对视频帧具备完全视频渲染能力。
情况二:终端设备针对视频帧具备部分视频渲染能力。
情况三:终端设备不具备视频渲染能力。
其中,终端设备不同的视频渲染能力可以通过枚举定义,如表1所示:
表1终端设备的渲染能力
如上表一中,不具备视频图像处理能力是指终端设备只具备基础的视频播放功能,不具备由硬件实现的视频图像处理能力。
具备部分视频图像处理能力是指终端设备具备基础的视频播放功能以外,还具备由硬件实现的特定的视频图像处理能力,但由于终端设备性能有限,只能完成部分的视频图像处理功能。包含两类情况:①在给定的视频帧率下,只能完成局部区域视频图像处理,不能完成全图处理。②在给定的视频帧率下,只能完成整个视频图像处理任务的部分子流程,不能完成全部流程。例如,在1080p@60fps的视频应用场景下,终端设备A具备由硬件实现的特定视频锐化算法,但由于终端设备性能有限,在60fps的视频帧率下,只能处理540p大小的视频尺寸。此时认定设备A具备部分视频图像处理能力。又例如,在1080p@60fps的视频应用场景下,针对特定的视频增强算法(包含算法a,b,c三个子流程),终端设备B性能有限,只能在1080p@60fps场景下完成子流程c。此时认定终端设备B具备部分视频图像处理能力。
具备完全视频图像处理能力是指终端设备具备基础的视频播放功能以外,还具备由硬件实现的特定的视频图像处理能力,并且在给定的视频帧率下,能完成全部区域和全部流程的视频图像处理。
本申请实施例中,可选的,视频处理算法类型定义例如如下表2所示。
表2视频处理算法类型定义
视频处理算法类型 | 枚举定义 |
未定义 | 0 |
视频锐化增强 | 1 |
视频HDR增强 | 2 |
视频图像模式 | 3 |
视频复杂度分析 | 1001 |
视频前景背景分析 | 1002 |
需要说明的是,图像渲染可以是云服务器在进行图像编码之前的图像处理过程,即图像前处理过程,也可以是终端设备在进行图像解码之后的图像处理过程,即图像后处理过程。本申请实施例中主要说明图像后处理过程。
可选的,本申请实施例进一步还可以包括:
云服务器根据游戏类型确定需要启用的渲染功能集合,再通过终端设备上报的设备类型、渲染能力,确定当前设备最优的渲染协同模式。具体渲染协同策略可以包括:渲染区域协同、渲染任务协同和视频分析协同。
其中,渲染区域协同是指特定的视频增强任务,根据终端设备的计算能力,划分云服务器和终端设备的渲染区域。云服务器渲染在视频编码前完成(视频前处理),终端设备渲染在视频解码后完成(视频后处理)。
基于上述终端设备的渲染能力划分情况,视频图像增强的分配情况可以如下:
可选地,若终端设备针对视频帧具备完全视频渲染能力,视频图像增强可完全由终端设备完成,图9为本申请实施例提供的一种视频图像处理过程示意图,如图9所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行编码,得到视频图像的编码后的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行视频图像解码,然后对解码得到的视频图像的全部区域进行视频图像增强,最后按照增强后的视频图像进行视频图像的展示。
若终端设备针对视频帧具备部分视频渲染能力,视频图像增强可实现部分区域在云服务器完成,部分区域在终端设备完成。图10为本申请实施例提供的一种视频图像处理过程示意图,如图10所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像的区域a进行视频图像增强,对经过视频图像增强后的视频图像进行编码,得到编码后的码流,进一步地,云服务器可以通过网络将码流发送给终端设备,终端设备对该码流进行解码得到视频图像,对视频图像的区域b进行视频图像增强,最后进行视频图像的展示。
若终端设备不具备视频渲染能力,则视频图像增强在云服务器完成。图11为本申请实施例提供的一种视频图像处理过程示意图,如图11所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行视频图像的全部区域进行图像增强,然后对视频图像增强后的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以通过网络将码流发送给终端设备,终端设备对该码流进行解码,最后对解码得到的视频图像进行展示。
渲染任务协同是面向特定的视频增强任务,此类任务可划分为不同的独立的子任务,每个子任务对应于不同的视频图像增强算法。例如,视频增强任务A由3个独立的子任务级联而成,渲染任务协同会根据终端设备的计算能力,让一部分视频图像增强任务在云服务器完成,另一部分视频图像增强任务在终端设备完成。云服务器完成的视频增强任务是在视频编码前完成(视频前处理),终端设备完成的视频增强任务是在视频解码后完成(视频后处理)。
其中,终端设备的视频渲染能力的数据结构可以如表3所示:
表3
/>
/>
图12为本申请实施例提供的一种帧率调整装置的结构示意图,如图12所示,该帧率调整装置可以包括:接收模块11、帧率调整模块12、编码模块13和发送模块14,
其中,接收模块11用于按照预设周期接收终端设备发送的渲染能力信息,渲染能力信息用于表征终端设备对接收到的码流的渲染能力;
帧率调整模块12用于根据渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率;
编码模块13用于根据调整后的编码帧率对待传输视频进行编码,得到编码后的码流;
发送模块14用于将编码后的码流发送至终端设备,以使得终端设备根据编码后的码流渲染并显示待传输视频。
可选的,帧率调整模块12用于根据渲染能力信息、当前编码帧率和预设的调整方式,确定编码帧率的调整方向和帧率调整值,调整方向包括增大编码帧率、减小编码帧率或者编码帧率保持不变,帧率调整值为当前编码帧率的倍数;
根据编码帧率的调整方向和帧率调整值对编码帧率进行调整,得到调整后的编码帧率。
可选的,渲染能力信息包括n与m的比值t,n为一个预设周期内终端设备渲染的视频帧数量,m为一个预设周期内终端设备接收到的视频帧数量m;或者,
渲染能力信息包括终端设备渲染预设数量的视频帧的时间T。
可选的,渲染能力信息包括n与m的比值t,帧率调整模块12用于:
若t小于1,确定编码帧率的调整方向为减小编码帧率,确定帧率调整值为当前编码帧率的n/m倍;
若t等于1,确定编码帧率的调整方向为编码帧率保持不变,确定帧率调整值为当前编码帧率的1倍。
可选的,渲染能力信息包括n与m的比值t,帧率调整模块12用于:
根据t、预设的最大编码帧率、渲染能力信息、当前编码帧率和预设的调整方式,确定编码帧率的调整方向和帧率调整值。
可选的,帧率调整模块12具体用于:
若t小于1,确定编码帧率的调整方向为减小编码帧率,确定帧率调整值为当前编码帧率的n/m倍;
若t等于1,在当前编码帧率小于预设的最大编码帧率时,确定编码帧率的调整方向为增大编码帧率,确定帧率调整值为当前编码帧率的M倍,M为预设数值;在当前编码帧率等于预设的最大编码帧率时,确定编码帧率的调整方向为编码帧率保持不变,确定帧率调整值为当前编码帧率的1倍。
可选的,渲染能力信息包括终端设备渲染预设数量的视频帧的时间T,帧率调整模块12用于:
根据T计算得到终端设备的渲染帧率;
若渲染帧率小于当前编码帧率,确定编码帧率的调整方向为减小编码帧率,确定帧率调整值为渲染帧率;
若渲染帧率等于当前编码帧率,确定编码帧率的调整方向为编码帧率保持不变,确定帧率调整值为当前编码帧率的1倍。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图6所示的帧率调整装置可以执行图4对应的方法实施例,并且帧率调整装置中的各个模块的前述和其它操作和/或功能分别为了实现图4对应的方法实施例中的相应流程,为了简洁,在此不再赘述。
图13为本申请实施例提供的一种帧率调整装置的结构示意图,如图13所示,该帧率调整装置可以包括:接收模块21、处理模块22和发送模块23,
其中,接收模块21用于接收服务器发送的码流;
处理模块22用于对所述码流进行解码和渲染,并获取渲染能力信息,所述渲染能力信息用于表征终端设备对接收到的码流的渲染能力;
发送模块23用于向服务器发送所述渲染能力信息,以使得所述服务器根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率,并根据所述调整后的编码帧率对待传输视频进行编码,得到编码后的码流。
可选的,渲染能力信息包括n与m的比值t,所述n为一个所述预设周期内所述终端设备渲染的视频帧数量,所述m为所述一个所述预设周期内所述终端设备接收到的视频帧数量;或者,
所述渲染能力信息包括所述终端设备渲染预设数量的视频帧的时间T。
可选的,渲染能力信息包括n与m的比值t,处理模块22用于:
根据所述码流进行视频帧计数,并将视频帧输入队列;
从所述队列中依次取出视频帧,对取出的视频帧进行解码和渲染,并统计渲染完成的视频帧的数量;
在一个预设周期到达时,获取一个所述预设周期内所述终端设备渲染的视频帧数量n和一个所述预设周期内所述终端设备接收到的视频帧数量,计算所述n与所述m的比值t。
可选的,渲染能力信息包括所述终端设备渲染预设数量的视频帧的时间T,处理模块22用于:
根据所述码流进行视频帧计数,并将视频帧输入队列;
从所述队列中依次取出视频帧,对取出的视频帧进行解码和渲染,并统计渲染完成的视频帧的数量;
在渲染完成的视频帧的数量等于所述预设数量时,获取渲染所述预设数量的视频帧的时间T。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图13所示的帧率调整装置可以执行图5对应的方法实施例,并且帧率调整装置中的各个模块的前述和其它操作和/或功能分别为了实现图5对应的方法实施例中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的帧率调整装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图14是本申请实施例提供的帧率调整设备的示意性框图。该帧率调整设备可以是上述方法实施例中的服务器或终端设备。
如图14所示,该帧率调整设备可包括:
存储器210和处理器220,该存储器210用于存储计算机程序,并将该程序代码传输给该处理器220。换言之,该处理器220可以从存储器210中调用并运行计算机程序,以实现本申请实施例中的方法。
例如,该处理器220可用于根据该计算机程序中的指令执行上述方法实施例。
在本申请的一些实施例中,该处理器220可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器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 DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器210中,并由该处理器220执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该帧率调整设备中的执行过程。
如图14所示,该帧率调整设备还可包括:
收发器230,该收发器230可连接至该处理器220或存储器210。
其中,处理器220可以控制该收发器230与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器230可以包括发射机和接收机。收发器230还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该帧率调整设备中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上该,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (16)
1.一种帧率调整方法,其特征在于,包括:
按照预设周期接收终端设备发送的渲染能力信息,所述渲染能力信息用于表征所述终端设备对接收到的码流的渲染能力;
根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率;
根据所述调整后的编码帧率对待传输视频进行编码,得到编码后的码流;
将所述编码后的码流发送至所述终端设备,以使得所述终端设备根据所述编码后的码流渲染并显示所述待传输视频。
2.根据权利要求1所述的方法,其特征在于,所述根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率,包括:
根据所述渲染能力信息、当前编码帧率和预设的调整方式,确定所述编码帧率的调整方向和帧率调整值,所述调整方向包括增大所述编码帧率、减小所述编码帧率或者所述编码帧率保持不变,所述帧率调整值为所述当前编码帧率的倍数;
根据所述编码帧率的调整方向和所述帧率调整值对所述编码帧率进行调整,得到调整后的编码帧率。
3.根据权利要求1或2所述的方法,其特征在于,所述渲染能力信息包括n与m的比值t,所述n为一个所述预设周期内所述终端设备渲染的视频帧数量,所述m为所述一个所述预设周期内所述终端设备接收到的视频帧数量;或者,
所述渲染能力信息包括所述终端设备渲染预设数量的视频帧的时间T。
4.根据权利要求2所述的方法,其特征在于,所述渲染能力信息包括n与m的比值t,所述根据所述渲染能力信息、当前编码帧率和预设的调整方式,确定所述编码帧率的调整方向和帧率调整值,包括:
若所述t小于1,确定所述编码帧率的调整方向为减小编码帧率,确定所述帧率调整值为所述当前编码帧率的n/m倍;
若所述t等于1,确定所述编码帧率的调整方向为所述编码帧率保持不变,确定所述帧率调整值为所述当前编码帧率的1倍。
5.根据权利要求2所述的方法,其特征在于,所述渲染能力信息包括n与m的比值t,所述根据所述渲染能力信息、当前编码帧率和预设的调整方式,确定所述编码帧率的调整方向和帧率调整值,包括:
根据所述t、预设的最大编码帧率、所述渲染能力信息、当前编码帧率和预设的调整方式,确定所述编码帧率的调整方向和帧率调整值。
6.根据权利要求5所述的方法,其特征在于,所述根据所述t、预设的最大编码帧率、所述渲染能力信息、当前编码帧率和预设的调整方式,确定所述编码帧率的调整方向和帧率调整值,包括:
若所述t小于1,确定所述编码帧率的调整方向为减小编码帧率,确定所述帧率调整值为所述当前编码帧率的n/m倍;
若所述t等于1,在所述当前编码帧率小于所述预设的最大编码帧率时,确定所述编码帧率的调整方向为增大编码帧率,确定所述帧率调整值为所述当前编码帧率的M倍,所述M为预设数值;在所述当前编码帧率等于预设的最大编码帧率时,确定所述编码帧率的调整方向为所述编码帧率保持不变,确定所述帧率调整值为所述当前编码帧率的1倍。
7.根据权利要求1所述的方法,其特征在于,所述渲染能力信息包括所述终端设备渲染预设数量的视频帧的时间T,所述根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率,包括:
根据所述T计算得到所述终端设备的渲染帧率;
若所述渲染帧率小于当前编码帧率,确定所述编码帧率的调整方向为减小编码帧率,确定所述帧率调整值为所述渲染帧率;
若所述渲染帧率等于所述当前编码帧率,确定所述编码帧率的调整方向为所述编码帧率保持不变,确定所述帧率调整值为所述当前编码帧率的1倍。
8.一种帧率调整方法,其特征在于,包括:
接收服务器发送的码流;
对所述码流进行解码和渲染,并获取渲染能力信息,所述渲染能力信息用于表征终端设备对接收到的码流的渲染能力;
向服务器发送所述渲染能力信息,以使得所述服务器根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率,并根据所述调整后的编码帧率对待传输视频进行编码,得到编码后的码流。
9.根据权利要求8所述的方法,其特征在于,所述渲染能力信息包括n与m的比值t,所述n为一个所述预设周期内所述终端设备渲染的视频帧数量,所述m为所述一个所述预设周期内所述终端设备接收到的视频帧数量;或者,
所述渲染能力信息包括所述终端设备渲染预设数量的视频帧的时间T。
10.根据权利要求8所述的方法,其特征在于,所述渲染能力信息包括n与m的比值t,所述对所述码流进行解码和渲染,并获取渲染能力信息,包括:
根据所述码流进行视频帧计数,并将视频帧输入队列;
从所述队列中依次取出视频帧,对取出的视频帧进行解码和渲染,并统计渲染完成的视频帧的数量;
在一个预设周期到达时,获取一个所述预设周期内所述终端设备渲染的视频帧数量n和一个所述预设周期内所述终端设备接收到的视频帧数量,计算所述n与所述m的比值t。
11.根据权利要求8所述的方法,其特征在于,所述渲染能力信息包括所述终端设备渲染预设数量的视频帧的时间T,所述对所述码流进行解码和渲染,并获取渲染能力信息,包括:
根据所述码流进行视频帧计数,并将视频帧输入队列;
从所述队列中依次取出视频帧,对取出的视频帧进行解码和渲染,并统计渲染完成的视频帧的数量;
在渲染完成的视频帧的数量等于所述预设数量时,获取渲染所述预设数量的视频帧的时间T。
12.根据权利要求8-11任一项所述的方法,其特征在于,所述接收服务器发送的码流,包括:
通过客户端接收所述服务器发送的所述码流;
所述向服务器发送所述渲染能力信息,包括:
通过所述客户端向所述服务器发送所述渲染能力信息。
13.一种帧率调整装置,其特征在于,包括:
接收模块,用于按照预设周期接收终端设备发送的渲染能力信息,所述渲染能力信息用于表征所述终端设备对接收到的码流的渲染能力;
帧率调整模块,用于根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率;
编码模块,用于根据所述调整后的编码帧率对待传输视频进行编码,得到编码后的码流;
发送模块,用于将所述编码后的码流发送至所述终端设备,以使得所述终端设备根据所述编码后的码流渲染并显示所述待传输视频。
14.一种帧率调整装置,其特征在于,包括:
接收模块,用于接收服务器发送的码流;
处理模块,用于对所述码流进行解码和渲染,并获取渲染能力信息,所述渲染能力信息用于表征终端设备对接收到的码流的渲染能力;
发送模块,用于向服务器发送所述渲染能力信息,以使得所述服务器根据所述渲染能力信息对编码帧率进行动态调整,得到调整后的编码帧率,并根据所述调整后的编码帧率对待传输视频进行编码,得到编码后的码流。
15.一种帧率调整设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至7或8-12中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至7或8-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210103004.7A CN116567297A (zh) | 2022-01-27 | 2022-01-27 | 帧率调整方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210103004.7A CN116567297A (zh) | 2022-01-27 | 2022-01-27 | 帧率调整方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116567297A true CN116567297A (zh) | 2023-08-08 |
Family
ID=87486624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210103004.7A Pending CN116567297A (zh) | 2022-01-27 | 2022-01-27 | 帧率调整方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116567297A (zh) |
-
2022
- 2022-01-27 CN CN202210103004.7A patent/CN116567297A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114501062B (zh) | 视频渲染协同方法、装置、设备及存储介质 | |
US20160029079A1 (en) | Method and Device for Playing and Processing a Video Based on a Virtual Desktop | |
US8457194B2 (en) | Processing real-time video | |
CN113965751B (zh) | 屏幕内容编码方法、装置、设备及存储介质 | |
CN111327921A (zh) | 视频数据处理方法及设备 | |
WO2023142716A1 (zh) | 编码方法、实时通信方法、装置、设备及存储介质 | |
CN110572673B (zh) | 视频编解码方法和装置、存储介质及电子装置 | |
CN116567346A (zh) | 视频处理方法、装置、存储介质及计算机设备 | |
US20240098316A1 (en) | Video encoding method and apparatus, real-time communication method and apparatus, device, and storage medium | |
WO2021057686A1 (zh) | 视频解码方法和装置、视频编码方法和装置、存储介质及电子装置 | |
US20230018087A1 (en) | Data coding method and apparatus, and computer-readable storage medium | |
CN116567297A (zh) | 帧率调整方法、装置、设备及存储介质 | |
CN110784731A (zh) | 一种数据流转码方法、装置、设备及介质 | |
CN114205359A (zh) | 视频渲染协同方法、装置及设备 | |
CN116193197A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN116567242A (zh) | 图像处理方法、装置及设备 | |
CN115550690B (zh) | 帧率调整方法、装置、设备及存储介质 | |
CN110677721B (zh) | 视频编解码方法和装置及存储介质 | |
CN116546262A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN110969672A (zh) | 图像压缩方法及装置 | |
CN116567320A (zh) | 视频处理协同方法、装置、设备及存储介质 | |
CN110582022A (zh) | 视频编解码方法和装置及存储介质 | |
CN114640849B (zh) | 直播视频编码方法、装置、计算机设备及可读存储介质 | |
CN110784719B (zh) | 在视频注释的存在下视频数据的高效编码 | |
CN115412559A (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 |