CN115623248A - 数据处理方法、帧率调整方法、装置,设备及计算机介质 - Google Patents

数据处理方法、帧率调整方法、装置,设备及计算机介质 Download PDF

Info

Publication number
CN115623248A
CN115623248A CN202211633415.3A CN202211633415A CN115623248A CN 115623248 A CN115623248 A CN 115623248A CN 202211633415 A CN202211633415 A CN 202211633415A CN 115623248 A CN115623248 A CN 115623248A
Authority
CN
China
Prior art keywords
frame rate
frame
frames
determining
adjustment information
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
Application number
CN202211633415.3A
Other languages
English (en)
Other versions
CN115623248B (zh
Inventor
曹健
曹洪彬
黄永铖
杨小祥
陈思佳
宋美佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211633415.3A priority Critical patent/CN115623248B/zh
Publication of CN115623248A publication Critical patent/CN115623248A/zh
Application granted granted Critical
Publication of CN115623248B publication Critical patent/CN115623248B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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/234381Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开一种数据处理方法、帧率调整方法、装置,设备及计算机介质,可应用于云技术、云游戏、数据传输等各种场景。该方法包括:获取预设时长内已处理的多个帧的帧处理总时长与帧数量;获取第一帧率,所述第一帧率包括第一设备发送所述多个帧的当前帧率;基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,使所述第一设备根据所述第二帧率发送所述待发送帧,可起到保证处理帧的设备性能稳定,流畅播放帧的效果。

Description

数据处理方法、帧率调整方法、装置,设备及计算机介质
技术领域
本发明涉及数据传输技术领域,具体涉及一种数据处理方法、帧率调整方法、装置,设备及计算机介质。
背景技术
在云端与终端数据交互过程中,云端在对数据进行编码后,按照固定速率向终端传输画面数据。通过该方式向终端传输画面数据,在终端侧的帧解码速度较慢时,容易造成终端的待解码帧的囤积,解码耗时大大增加。终端中的软件或者硬件负载逐步增大,进而造成解码耗时进一步增大,画面展示的流畅度较差。
发明内容
本发明实施例提供一种数据处理方法、帧率调整方法、装置,设备及计算机介质,可以通过对一定时间段内的帧处理的处理情况,以及自其它设备接收帧的帧率对其他设备发送待发送帧的帧率进行调整,可起到保证处理帧的设备性能稳定,流畅播放帧的效果。
一方面,本发明实施例提供一种数据处理方法,所述方法包括:
获取预设时长内已处理的多个帧的帧处理总时长与帧数量;
获取第一帧率,所述第一帧率包括第一设备发送所述多个帧的当前帧率;
基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;
根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,使所述第一设备根据所述第二帧率发送所述待发送帧。
另一方面,本发明实施例提供一种帧率调整方法,包括:
获取针对当前帧率的帧率调整信息,所述当前帧率是由第一设备向第二设备发送多个已处理帧的第一帧率,所述帧率调整信息是基于所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率确定的;
根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
另一方面,本发明实施例提供一种数据处理装置,该装置包括:
第一获取单元,用于获取预设时长内已处理的多个帧的帧处理总时长与帧数量;
所述第一获取单元,还用于获取第一帧率,所述第一帧率包括第一设备发送所述多个帧的当前帧率;
确定单元,用于基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;
所述确定单元还用于根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,使所述第一设备根据所述第二帧率发送所述待发送帧。
另一方面,本发明实施例提供一种帧率调整装置,该装置包括:
第二获取单元,用于获取针对当前帧率的帧率调整信息,所述当前帧率是由第一设备向第二设备发送多个已处理帧的第一帧率,所述帧率调整信息是基于所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率确定的;
调整单元,用于根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的方法。
另一方面,提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上任一实施例所述的方法。
另一方面,提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如上任一实施例所述的方法。
本发明实施例通过获取预设时长内已处理的多个帧的帧处理总时长与帧数量;获取第一帧率,所述第一帧率包括第一设备发送所述多个帧的当前帧率;基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,使所述第一设备根据所述第二帧率发送所述待发送帧的方案,通过对一定时间段内的帧处理的处理情况,以及自其它设备(即第一设备)接收帧的帧率对其它设备向发送待发送帧的帧率进行调整,可起到保证处理帧的设备性能稳定,流畅播放帧的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据处理系统的结构示意图。
图2a为本发明实施例提供的数据处理方法的流程示意图。
图2b为本发明实施例提供的数据处理方法的流程示意图。
图2c为本发明实施例提供的数据处理方法的流程示意图。
图3a为本发明实施例提供的帧率调整方法的流程示意图。
图3b为本发明实施例提供的终端与服务器交互过程的示意图。
图4为本发明实施例提供的数据处理装置的结构示意图。
图5为本发明实施例提供的帧率调整装置的结构示意图。
图6为本发明实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例可应用于云技术、云游戏、数据传输等各种场景。
本发明实施例提供一种数据处理方法、帧率调整方法、装置,设备及计算机介质。具体地,本发明实施例的帧率调整方法与数据处理方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、智能语音交互设备、智能家电、穿戴式智能设备、飞行器、智能车载终端等设备,终端还可以包括客户端,该客户端可以是视频客户端、浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
例如,当数据处理方法运行于终端时,终端可下载安装相应的应用程序,终端在实际运行前述方法时,用于显示图形用户界面并通过图形用户界面与用户进行交互。具体地,终端将图形用户界面展示于给用户的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影呈现图形用户界面。例如,终端可以包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令,该图形用户界面可以包括游戏画面,该处理器用于生成图形用户界面、响应操作指令以及控制图形用户界面在触控显示屏上的显示。
前述帧率调整方法可运行于服务器,本发明的方案可适用于云游戏。云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏应用程序的运行主体和游戏画面呈现主体是分离的,方法的储存与运行是在云游戏服务器上完成的。而游戏画面呈现是在云游戏的客户端完成的,云游戏客户端主要用于游戏数据的接收、发送以及游戏画面的呈现,例如,云游戏客户端可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑、个人数字助理等,但是进行游戏数据处理的终端为云端的云游戏服务器。在进行游戏时,用户操作云游戏客户端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回云游戏客户端,最后,通过云游戏客户端进行解码并输出游戏画面。
首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语作如下解释:
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
帧率:指处理通信帧的速率,通信帧描画了以串行流的形式在通信信道上发送的数据的结构。在串行通讯中,数据以流的形式从源端发送到目的端。两个系统共同维护当前的通讯会话。数据流被分成若干个帧,帧是由一个起始位、几个数据位和1个停止位组成的。异步通信帧中数据代表一个字符。以太网帧中的数据包含一个完整的或者部分的信息分组。分组在源端较高层协议中形成并分割进一个或多个帧的数据域中。
在一些场景中,云端向终端发送帧时,云端不考虑终端的抖动情况(解码或渲染耗时异常),一直以同一帧率编码并传输码流给终端进行解码渲染。例如,云端一直以60fps编码并传输给终端,即使终端某段时间的单帧平均解码时间从10ms上涨到20ms,云端也不会降帧率,仍然以60fps编码传输,无法抗抖动,若单帧解码时间偶发上涨到20ms,此时终端每秒最高能解码的帧数仅有50帧(1000/20=50)。若云端仍然以60fps编码传输,则终端的解码队列会因为解码过慢不断囤积,造成解码延时大大增加(每秒都会多10帧堆积,若干秒后延时巨大)。此外,因为队列中解码帧越来越多,软件或者硬件无法休息(一直解码,无法停止),负载加大,抖动的情况可能会加剧。
本发明提供一种方案可解决前述技术问题,请参考图1,图1为本发明实施例提供的数据处理系统的结构示意图。该系统可包括终端10与服务器20,
终端10和服务器20之间通过网络连接,比如,通过有线或无线网络连接等。
其中,终端10,可以用于显示图形用户界面。其中,该终端用于通过图形用户界面与用户进行交互,例如通过终端下载安装相应的客户端并运行,例如通过调用相应的小程序并运行,例如通过登录网站呈现相应的图像用户界面等。
可选地,终端10可用于:
获取预设时长内已处理的多个帧的帧处理总时长与帧数量;
获取第一帧率,所述第一帧率包括服务器20发送所述多个帧的当前帧率;
基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;
根据所述帧率调整信息确定所述服务器20发送待发送帧的第二帧率,使所述服务器20根据所述第二帧率发送所述待发送帧。
可选地,服务器20用于:
获取针对当前帧率的帧率调整信息,所述当前帧率是由第一设备向第二设备发送多个已处理帧的第一帧率,所述帧率调整信息是基于所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率确定的;
根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
具体地,终端10与服务器20的具体功能在以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
本发明各实施例提供了一种数据处理方法,该方法可以由终端或服务器执行,也可以由终端和服务器共同执行;本发明实施例以数据处理方法由终端执行为例来进行说明。
图2a为本发明实施例提供的数据处理方法的流程示意图,该方法包括以下S201-S204:
S201、获取预设时长内已处理的多个帧的帧处理总时长与帧数量;
可选地,前述预设时长可以由相关人员设定,可选地,预设时长为2秒。
可选地,预设时长为预设的当前应用的运行时长,当前应用为游戏时,指预设的游戏运行的时长。
可选地,本发明中涉及到的对帧的处理指对帧的解码与渲染,已处理的帧指已完成解码与渲染的帧,终端每解码以及渲染一帧完毕后,都会得到该帧的耗时,即帧处理时长,帧处理总时长为处理前述多个帧时处理各帧的耗时的加和。
可选地,本发明中的帧处理时长的单位可以为秒或毫秒。
可选地,前述帧数量为已处理的多个帧的数量。
S202、获取第一帧率,所述第一帧率包括第一设备发送所述多个帧的当前帧率;
其中,第一设备可以为服务器,当前帧率可存储于终端中。
在本发明的另一些可选的实施例中,在应用启动后,若未调整过第一设备发送帧的帧率,则当前帧率为预设帧率;若已调整过第一设备发送帧的帧率,则当前帧率为最近一次对帧率进行调整后的帧率。
在本发明的一些可选的实施例中,前述预设帧率可以是相关人员设定的终端支持的最高帧率。
可选地,前述预设帧率可以是相关人员设定的应用支持的最高帧率。
S203、基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;
可选地,在所述预设时长的初始时刻,可将帧数量置0,每处理一帧,即每解码与渲染一帧,控制帧数量增1,进而得到预设时长内处理的全部帧的前述帧数量。
在一些实施例中,前述帧率调整信息可以为用于指示第一设备对发送待发送帧的帧率进行降低或提高的指示信息。
在另一些实施例中,前述帧率调整信息可以为用于指示第一设备具体将待发送帧的帧率降低或提高至具体帧率值的指示信息,该指示信息为具体的帧率值。
可选地,前述S203中,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,包括以下S2031-S2034:
S2031、根据所述第一帧率确定帧处理的第一平均耗时;
具体地,根据所述第一帧率确定帧处理的第一平均耗时,包括:
获取单位时间,其中单位时间可以为1(此时单位可以为秒),或1000(此时单位可以为毫秒);
计算所述单位时间与所述第一帧率的比值,得到帧处理的第一平均耗时。
在一些实施例中,根据所述第一帧率确定帧处理的第一平均耗时,可通过以下公式进行实现:
t1=1000/第一帧率
其中,t1指第一平均耗时,1000指单位时间,此时,1000的单位为ms。
在另一些实施例中,根据所述第一帧率确定帧处理的第一平均耗时,还可通过以下公式进行实现:
t1=1/第一帧率
其中,t1指第一平均耗时,1指单位时间,此时,1的单位为s。
S2032、获取所述已处理的多个帧中各帧的帧处理时长,得到多个帧处理时长;
S2033、获取多个帧处理时长中,大于所述第一平均耗时的帧处理时长的第一数量;
具体地,第一数量为多个帧对应的多个帧处理时长中帧处理时长较长的帧的数量。
S2034、当所述第一数量与所述帧数量的比值大于第一预设阈值时,根据所述帧处理总时长、所述帧数量与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,第一预设阈值可以由相关人员设定,可选地,第一预设阈值的取值范围可以为[0,1],具体可以为0~0.2之间(包含0与0.2)的数值,如0.1,或0.2,第一数量与帧数量的比值大于第一预设阈值,表示在已处理的多个帧中,耗时较长的帧的数量相对于帧数量的占比达到了预设占比(即第一预设阈值),此时,在认为抖动比较严重,确定针对降低所述第一设备发送待发送帧的帧率的帧率调整信息。
可选地,用于降低第一设备发送待发送帧的帧率的帧率调整信息可以为用于指示第一设备对待发送帧的帧率进行降低的指示信息。
可选地,用于降低第一设备发送待发送帧的帧率的帧率调整信息可以为用于指示第一设备对待发送帧的帧率降低至具体帧率值的指示信息。
可选地,前述S2034中,根据所述帧处理总时长、所述帧数量与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息,包括以下S01-S03:
S01、根据所述帧处理总时长与所述帧数量确定在所述帧处理总时长内帧处理的第二平均耗时;
具体地,S01中,根据所述帧处理总时长与所述帧数量确定在所述帧处理总时长内帧处理的第二平均耗时,包括:计算所述帧处理总时长与所述帧数量的比值,得到所述在所述帧处理总时长内帧处理的第二平均耗时。
具体地,根据所述帧处理总时长与所述帧数量确定在所述帧处理总时长内帧处理的第二平均耗时,可通过以下公式进行实现:
t2=T/frame_cnt
其中,t2为帧处理总时长内帧处理的第二平均耗时,T为帧处理总时长,frame_cnt为帧数量。
S02、根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
可选地,S02中,根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率,可包括:
获取单位时间,其中单位时间可以为1(此时单位可以为秒),或1000(此时单位可以为毫秒);
计算所述单位时间与所述第二平均耗时的比值,得到所述第二平均耗时对应的第三帧率。
在一些实施例中,S02中,根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率,可通过以下公式实现:
f1=1000/t2
其中,f1为第三帧率,t2指第二平均耗时,1000指单位时间,此时,1000的单位为ms。
在另一些实施例中,S02中,根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率,还可通过以下公式实现:
f1=1/t2
其中,f1为第三帧率,t2指第二平均耗时,1指单位时间,此时,1的单位为s。
S03、根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,前述S03中,根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息,包括以下S031-S033:
S031、获取第一预设值;
可选地,第一预设值可以为[0,1]中的数值,具体可以为[0.8,1]中的数值。
S032、确定第一预设值与所述第三帧率的第一乘积;
S033、将所述第一乘积与所述第一帧率中的最小值作为用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,前述S03中,根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息,可通过以下公式实现:
Fps1 = min(thr1*f1,第一帧率)
其中,thr1为第一预设值,f1为第三帧率,Fps1为用于降低第一设备发送待发送帧的帧率的帧率调整信息,为一帧率值,此时,用于降低第一设备发送待发送帧的帧率的帧率调整信息为用于指示第一设备对待发送帧的帧率降低至具体帧率值的指示信息(具体为一帧率值),其中,具体帧率值为第一乘积与所述第一帧率中的最小值。
在一些可选的实施例中,前述S203中,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,还包括以下S21-S22:
S21、当所述第一数量与所述帧数量的比值不大于所述第一预设阈值时,根据所述帧处理总时长与所述帧数量确定在所述帧处理总时长内帧处理的第二平均耗时;
具体地,第二平均耗时的确定方式可参见前述内容。
S22、当所述第二平均耗时与所述第一平均耗时的比值大于第二预设阈值时,根据所述第二平均耗时与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,第二预设阈值可以由相关人员确定,可选地,第二预设阈值可以为[0,1]中的数值,具体可以为[0.8,1]中的数值,例如可以为0.95。
第二平均耗时与所述第一平均耗时的比值大于第二预设阈值,表示有比较大的风险会解码渲染过慢,此时则确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,前述S22中,根据所述第二平均耗时与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息,包括以下S221-S222:
S221、根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
其中,根据第二平均耗时确定第三帧率的方式可参见前述内容。
S222、根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息可参见前述内容,此处不再赘述。
可选地,前述S203中,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,还包括以下S231-S234:
S231、获取预设帧率,所述预设帧率大于所述第一帧率;
S232、当所述第二平均耗时与所述第一平均耗时的比值不大于所述第二预设阈值时,根据所述预设帧率确定帧处理的第三平均耗时;
在一些可选的实施例中,根据所述预设帧率确定帧处理的第三平均耗时,可包括:
获取单位时间,其中单位时间可以为1(此时单位可以为秒),或1000(此时单位可以为毫秒);
计算所述单位时间与所述预设帧率的比值,得到帧处理的第三平均耗时。
在一些实施例中,根据所述预设帧率确定帧处理的第三平均耗时,通过以下公式进行实现:
t3=1000/预设帧率
其中,t3指第三平均耗时,1000指单位时间,此时,1000的单位为ms。
在另一些实施例中,根据所述预设帧率确定帧处理的第三平均耗时,还可以通过以下公式进行实现:
t3=1/预设帧率
其中,t3指第三平均耗时,1指单位时间,此时,1的单位为s。
S233、获取所述多个帧处理时长中,小于所述第三平均耗时的帧处理时长的第二数量;
具体地,第二数量为多个帧处理时长中较短的帧处理时长的数量。
S234、当所述第二数量与所述帧数量的比值不大于第三预设阈值时,根据所述第二平均耗时与所述预设帧率确定帧率调整信息。
可选地,第三预设阈值可以由相关人员设定,可选地,第三预设阈值的取值范围可以为[0,1],具体可以为[0.9,1]中的数值,如0.95,当第二数量与帧数量的比值大于第三预设阈值,表示在已处理的多个帧中,支持原高帧率,即预设帧率的解码渲染耗时的帧的比例大于一定占比(第三预设阈值),认为抖动可能已经缓解,此时,可不处理。
可选地,前述S2034中,根据所述第二平均耗时与所述预设帧率确定帧率调整信息,可包括以下S31-S34:
S31、根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
其中,根据第二平均耗时确定第三帧率的方式可参见前述内容。
S32、获取第二预设值;
可选地,第二预设值可以为[0,1]中的数值,具体可以为[0.8,1]中的数值。
S33、确定第二预设值与所述第三帧率的第二乘积;
S34、将所述第二乘积与所述预设帧率中的最小值作为帧率调整信息。
可选地,前述S32-S34为根据第三帧率与预设帧率确定帧率调整信息的过程,可选地,前述S32-S34可通过以下公式实现:
Fps2 = min(thr2*f1,预设帧率)
其中,thr2为第二预设值,f1为第三帧率,Fps2为确定出的帧率调整信息,为一帧率值。
可选地,第二乘积需大于第一帧率的值。
当所述第二数量与所述帧数量的比值不大于第三预设阈值时,说明从帧处理时长较快的帧的数量角度来看,终端当前的解码性能不太支持预设帧率,此时可根据平均性能,即第二平均耗时来调整帧率契合目前的性能。
可选地,前述S203中,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,还包括:当所述第二数量与所述帧数量的比值大于所述第三预设阈值,且所述第二平均耗时与所述第三平均耗时的比值不小于第四预设阈值时,根据所述第二平均耗时与所述预设帧率确定帧率调整信息。其中,根据所述第二平均耗时与所述预设帧率确定帧率调整信息的具体方法可参见前述S2034的具体实现。
可选地,前述S203中,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,还包括:当所述第二平均耗时与所述第三平均耗时的比值小于第四预设阈值时,根据所述第二平均耗时、所述第一帧率,以及所述预设帧率确定帧率调整信息。
可选地,第四预设阈值可以由相关人员设定,第四预设阈值的取值范围可以为[0,1],具体可以为[0.8,1]中的数值,如0.8,所述第二平均耗时与所述第三平均耗时的比值小于第四预设阈值时,指解码渲染抖动基本已经缓解,可确定针对提高所述第一设备发送待发送帧的帧率的帧率调整信息。
可选地,根据所述第二平均耗时、所述第一帧率,以及所述预设帧率确定帧率调整信息,包括以下S001-S005:
S001、根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
其中,第三帧率的确定方式可参见前述内容。
S002、获取第三预设值;
可选地,第三预设值可以为[0,1]中的数值,具体可以为[0.8,1]中的数值。
S003、确定第三预设值与所述第三帧率的第三乘积;
S004、将所述第三乘积与所述第一帧率中的最大值作为第四帧率;
S005、将所述第四帧率与所述预设帧率中的最小值作为帧率调整信息。
可选地,前述S002-S005可以通过以下方式进行实现:
Fps3 = min(预设帧率,max(thr3*f1,第一帧率))
其中,Fps3为帧率调整信息,th3为第三预设值,f1为第三帧率,max(thr3*f1,第一帧率)为第四帧率。
当所述第二数量与所述帧数量的比值大于第三预设阈值,且所述第二平均耗时与所述第三平均耗时的比值不小于第四预设阈值时,说明从帧处理时长较快的帧的数量角度来看,终端当前的解码性能支持预设帧率,但是从平均耗时角度看不支持初始高帧率。此时可根据平均性能,即第二平均耗时来调整帧率契合目前的性能。
通过该方案,既可以保证调整后的帧率是较高的帧率,又能保证游戏的正常运行。
可选地,当所述第二数量与所述帧数量的比值不大于第三预设阈值时,还可以不做处理,即不确定帧率调整信息。
可选地,当所述第二数量与所述帧数量的比值大于所述第三预设阈值,或当所述第二数量与所述帧数量的比值大于所述第三预设阈值且所述第二平均耗时与所述第三平均耗时的比值不小于第四预设阈值时,还可以不处理,即不确定帧率调整信息。
在另一些实施例中,前述S203中,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,包括前述S2031-S2033,以及:当所述第一数量与所述帧数量的比值大于第一预设阈值时,确定用于指示第一设备对发送待发送帧的帧率进行降低的帧率调整信息。
可选地,用于指示第一设备对发送待发送帧的帧率进行降低的帧率调整信息可以为一用于指示第一设备对发送待发送帧的帧率进行降低的第一标识信息。
在另一些实施例中,前述S203中,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,包括前述S231-S233,以及:当所述第二数量与所述帧数量的比值不大于第三预设阈值时,确定用于指示第一设备对发送待发送帧的帧率进行提高的帧率调整信息。
可选地,用于指示第一设备对发送待发送帧的帧率进行提高的帧率调整信息可以为一用于指示第一设备对发送待发送帧的帧率进行提高的第二标识信息。
在另一些实施例中,前述S203中,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,包括:当所述第二数量与所述帧数量的比值大于所述第三预设阈值,且所述第二平均耗时与所述第三平均耗时的比值不小于第四预设阈值时,确定用于指示第一设备对发送待发送帧的帧率进行提高的帧率调整信息。
在另一些实施例中,前述S203中,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,还包括:
当所述第二平均耗时与所述第三平均耗时的比值小于所述第四预设阈值时,确定用于指示第一设备对发送待发送帧的帧率进行提高的帧率调整信息。
S204、根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,使所述第一设备根据所述第二帧率发送所述待发送帧。
可选地,终端确定出第二帧率后,可将第二帧率发送至第一设备,使所述第一设备根据所述第二帧率发送所述待发送帧率,具体地,第一设备可将第二帧率作为发送待发送帧的帧率发送待发送帧。
在一些实施例中,根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,可包括:将所述帧率调整信息作为所述第一设备发送待发送帧的第二帧率。
在另一些实施例中,根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,可以包括:
获取所述帧率调整信息对应的预设帧率调整步长;根据所述预设帧率调整步长与所述第一帧率确定所述第一设备发送待发送帧的第二帧率。
在一些实施例中,帧率调整信息为用于指示第一设备对发送待发送帧的帧率进行降低的提示信息时帧率调整信息对应的预设帧率调整步长,与帧率调整信息为用于指示第一设备对发送待发送帧的帧率进行提高的提示信息时帧率调整信息对应的预设帧率调整步长可以相同,也可以不同。
在一些实施例中,当帧率调整信息为用于指示第一设备对发送待发送帧的帧率进行降低的提示信息时,根据所述预设帧率调整步长与所述第一帧率确定所述第一设备发送待发送帧的第二帧率包括:将所述第一帧率与预设帧率调整步长的差值作为第二帧率。
在一些实施例中,当帧率调整信息为用于指示第一设备对发送待发送帧的帧率进行提高的提示信息时,根据所述预设帧率调整步长与所述第一帧率确定所述第一设备发送待发送帧的第二帧率包括:将所述第一帧率与预设帧率调整步长的和作为第二帧率。
在本发明的一些可选的实施例中,前述S201可为在检测到与第一设备的连接未断开的情况下执行的,若断开,则结束。
需要说明的是,前面各步骤的执行顺序可以有所变化,本发明对此不做限定。
可选地,本方案可应用在云游戏场景中,第二设备(指终端)可运行有相应的游戏应用,第二设备自第一设备(指服务器)接收由第一设备采集与编码后的帧,第二设备在接收到第一设备发送的编码后的帧后,对帧进行解码并渲染。第二设备在对接收到的帧进行处理的过程中,可根据通过对一定时间段内的帧处理的处理情况,以及自第一设备接收帧的帧率对第一设备待发送的帧的发送帧率进行调整,可起到保证处理帧的设备,即第二设备的性能稳定,流畅播放帧的效果。以下结合一具体场景对本方案进行进一步说明,图2b与图2c为本发明提供的数据处理方法的流程示意图,在本方案中,可首先获取预设帧率与第一帧率,将帧数量计数器、慢帧计数器、快帧计数器,以及总耗时计时器置0;并将应用运行计时器置0,其中,应用运行计时器用于对应用的运行时间进行计时。其中,帧数量计数器用于对为第二设备侧已处理的帧的数量进行计数。慢帧计数器,用于对已处理的帧的帧处理时长大于第一平均耗时的帧进行计数,以得到前述第一数量。快帧计数器,用于对已处理的帧的帧处理时长小于帧处理的第三平均耗时的帧进行计数,以得到前述第二数量。总耗时计时器,用于对已处理的多个帧的帧处理总时长进行计时。
进一步地,第二设备获取一待处理的一当前帧进行处理,并获取处理当前帧的帧处理时长frame_time,并控制帧数量计数器增1、设置总耗时计时器=总耗时计时器+frame_time,并判断当前帧的帧处理时长是否大于第一平均耗时,若当前帧的帧处理时长大于所述第一平均耗时,则控制慢帧计数器增1,并判断距离上一次将应用运行计时器置0是否超过预设时长,若距离上一次将应用运行计时器置0未超过预设时长,则返回执行获取一待处理的一当前帧进行处理。若当前帧的帧处理时长不大于所述第一平均耗时,则判断当前帧的耗时是否小于帧处理的第三平均耗时,若当前帧的耗时小于第三平均耗时,则控制快帧计数器增1,并执行前述判断距离上一次将应用运行计时器置0是否超过预设时长;若当前帧的耗时不小于第三平均耗时,则直接执行前述判断距离上一次将应用运行计时器置0是否超过预设时长。
进一步地,若距离上一次将应用运行计时器置0超过预设时长,则执行前述S201-S204,其中,S203中的帧处理总时长为总耗时计时器的值。S203可具体包括:判断慢帧计数器的值与帧数量计数器的比值是否大于第一预设阈值,若是,则确定用于降低所述第一设备发送待发送帧的帧率的帧率调整信息;若否,则根据总耗时计时器的值与帧数量计数器的值确定第二平均耗时,并判断第二平均耗时与所述第一平均耗时的比值是否大于第二预设阈值,若是,则确定用于降低所述第一设备发送待发送帧的帧率的帧率调整信息;若否,则判断快帧计数器的值与帧数量计数器的比值是否大于第三预设阈值,若否,则根据所述第二平均耗时与所述预设帧率确定帧率调整信息;若是,则根据预设帧率确定帧处理的第三平均耗时,并在确定出第二平均耗时与所述第三平均耗时的比值不小于第四预设阈值时,根据所述第二平均耗时与所述预设帧率确定帧率调整信息;在确定出第二平均耗时与所述第三平均耗时的比值小于第四预设阈值时,根据所述第二平均耗时、第一帧率,以及预设帧率确定帧率调整信息。
本实施例的具体细节可参见前述内容,此处不再赘述。
本发明实施例通过获取预设时长内已处理的多个帧的帧处理总时长与帧数量;获取第一帧率,所述第一帧率包括第一设备发送所述多个帧的当前帧率;基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,使所述第一设备根据所述第二帧率发送所述待发送帧的方案,通过对一定时间段内的帧处理的处理情况,以及自其它设备(即第一设备)接收帧的帧率对其它设备向发送待发送帧的帧率进行调整,可起到保证处理帧的设备性能稳定,流畅播放帧的效果。
本发明通过在处理帧的设备,根据在预设时长内,实际处理多个帧的耗时,与实际处理帧的数量,结合发送帧的设备,即第一设备当前发送帧的帧率,对第一设备发送待发送帧的帧率进行调整,可以实时监测解码、渲染性能,确定出更优的帧率,避免抖动时因为解码或渲染过慢造成堵塞,以降低延时或者卡顿率。此外,在实时检测到抖动缓解后(即解码和渲染耗时能支持更高帧率),会进一步确定出更优帧率,逐步恢复到高帧率状态,保证用户的流畅体验。
本发明还提供了一种帧率调整方法,该方法可以由终端或服务器执行,也可以由终端和服务器共同执行;本发明实施例以帧率调整方法由服务器执行为例来进行说明。
图3a为本发明实施例提供的帧率调整方法的流程示意图,该方法可适用于终端或服务器,以下以该方法适用于服务器(如前述第一设备)为例进行说明,可选地,该方法包括以下S301-S302:
S301、获取针对当前帧率的帧率调整信息,所述当前帧率是由第一设备向第二设备发送多个已处理帧的第一帧率,所述帧率调整信息是基于所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率确定的;
S302、根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
其中,第二设备可以为终端。
可选地,第一设备可向终端发送用于获取针对当前帧率的帧率调整信息的请求,接收终端根据该请求反馈的帧率调整信息,终端可基于前述数据处理方法确定帧率调整信息。
在一些实施例中,S302、根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率,包括:将所述帧率调整信息作为由所述第一设备向所述第二设备发送待发送帧的第二帧率。
在另一些实施例中,前述S302中,根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率,包括:获取所述帧率调整信息对应的预设帧率调整步长;根据所述预设帧率调整步长调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
在一些实施例中,当帧率调整信息为用于指示第一设备对发送待发送帧的帧率进行降低的提示信息时,帧率调整信息对应的预设帧率调整步长,与帧率调整信息为用于指示第一设备对发送待发送帧的帧率进行提高的提示信息时,帧率调整信息对应的预设帧率调整步长可以相同,也可以不同。
在一些实施例中,根据所述预设帧率调整步长调整由所述第一设备向所述第二设备发送待发送帧的第二帧率,可包括:当帧率调整信息为用于指示第一设备对发送待发送帧的帧率进行降低的提示信息时,获取第一帧率;将所述第一帧率与预设帧率调整步长的差值作为由所述第一设备向所述第二设备发送待发送帧的第二帧率。
在一些实施例中,根据所述预设帧率调整步长调整由所述第一设备向所述第二设备发送待发送帧的第二帧率,还可包括:当帧率调整信息为用于指示第一设备对发送待发送帧的帧率进行提高的提示信息时,获取第一帧率;将所述第一帧率与预设帧率调整步长的和作为由所述第一设备向所述第二设备发送待发送帧的第二帧率。
在本发明的一些可选的实施例中,所述方法还包括:获取所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率;基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定所述帧率调整信息。
具体地,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定所述帧率调整信息可参见前述数据处理方法中的相关描述。
其中,第二设备可以指终端。
具体地,可参见图3b所示,图3b为本发明提供的终端与服务器交互的示意图,终端在启动游戏应用后,可向服务器请求帧,服务器对帧进行采集与编码,按照当前帧率向终端发送帧,终端按照本发明的数据处理方法确定帧率调整信息,并将帧率调整信息发送至服务器,服务器根据帧率调整信息调整采集、编码与发送待发送帧的帧率,并按照调整后的帧率向终端发送待发送帧。
通过本发明的方案,终端可根据所述帧率调整信息对服务器的发送帧率进行调整,并以调整后的发送帧率向终端发送待发送帧,可起到保证处理帧的设备性能稳定,流畅播放帧的效果。
上述所有的技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
为便于更好的实施本发明实施例的数据处理方法,本发明实施例还提供一种数据处理装置,请参阅图4,图4为本发明实施例提供的数据处理装置40的结构示意图。其中,该数据处理装置40可以包括:
第一获取单元41,用于获取预设时长内已处理的多个帧的帧处理总时长与帧数量;
所述第一获取单元41,还用于获取第一帧率,所述第一帧率包括第一设备发送所述多个帧的当前帧率;
确定单元42,用于基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;
所述确定单元42,还用于根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,使所述第一设备根据所述第二帧率发送所述待发送帧。
可选地,前述装置在用于基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息时,具体用于:
根据所述第一帧率确定帧处理的第一平均耗时;
获取所述已处理的多个帧中各帧的帧处理时长,得到多个帧处理时长;
获取多个帧处理时长中,大于所述第一平均耗时的帧处理时长的第一数量;
当所述第一数量与所述帧数量的比值大于第一预设阈值时,根据所述帧处理总时长、所述帧数量与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,前述装置在用于根据所述帧处理总时长、所述帧数量与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息时,具体用于:
根据所述帧处理总时长与所述帧数量确定在所述帧处理总时长内帧处理的第二平均耗时;
根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,前述装置在用于根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息时,具体用于:
获取第一预设值;
确定第一预设值与所述第三帧率的第一乘积;
将所述第一乘积与所述第一帧率中的最小值作为用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,前述装置在用于基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息时,具体用于:
当所述第一数量与所述帧数量的比值不大于所述第一预设阈值时,根据所述帧处理总时长与所述帧数量确定在所述帧处理总时长内帧处理的第二平均耗时;
当所述第二平均耗时与所述第一平均耗时的比值大于第二预设阈值时,
根据所述第二平均耗时与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,前述装置在用于根据所述第二平均耗时与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息时,具体用于:
根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
可选地,前述装置在用于基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息时,具体用于:
获取预设帧率,所述预设帧率大于所述第一帧率;
当所述第二平均耗时与所述第一平均耗时的比值不大于所述第二预设阈值时,根据所述预设帧率确定帧处理的第三平均耗时;
获取所述多个帧处理时长中,小于所述第三平均耗时的帧处理时长的第二数量;
当所述第二数量与所述帧数量的比值不大于第三预设阈值时,根据所述第二平均耗时与所述预设帧率确定帧率调整信息。
可选地,前述装置在用于基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息时,还具体用于:
当所述第二数量与所述帧数量的比值大于所述第三预设阈值,且所述第二平均耗时与所述第三平均耗时的比值不小于第四预设阈值时,根据所述第二平均耗时与所述预设帧率确定帧率调整信息。
可选地,前述装置在用于根据所述第二平均耗时与所述预设帧率确定帧率调整信息时,具体用于:
根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
获取第二预设值;
确定第二预设值与所述第三帧率的第二乘积;
将所述第二乘积与所述预设帧率中的最小值作为帧率调整信息。
可选地,前述装置在用于基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息时,还具体用于:
当所述第二平均耗时与所述第三平均耗时的比值小于所述第四预设阈值时,根据所述第二平均耗时、所述第一帧率,以及所述预设帧率确定帧率调整信息。
可选地,前述装置在用于根据所述第二平均耗时、所述第一帧率,以及所述预设帧率确定帧率调整信息时,具体用于:
根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
获取第三预设值;
确定第三预设值与所述第三帧率的第三乘积;
将所述第三乘积与所述第一帧率中的最大值作为第四帧率;
将所述第四帧率与所述预设帧率中的最小值作为帧率调整信息。
其中,第一设备可以为服务器。
可选地,前述装置在用于基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息时,具体用于:
根据所述第一帧率确定帧处理的第一平均耗时;
获取所述已处理的多个帧中各帧的帧处理时长,得到多个帧处理时长;
获取多个帧处理时长中,大于所述第一平均耗时的帧处理时长的第一数量;
当所述第一数量与所述帧数量的比值大于第一预设阈值时,确定用于指示第一设备对发送待发送帧的帧率进行降低的帧率调整信息。
上述数据处理装置的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各个单元可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个单元对应的操作。
数据处理装置40,可以集成在具备储存器并安装有处理器而具有运算能力的终端中,或者该数据处理装置40为该终端。
为便于更好的实施本发明实施例的帧率调整方法,本发明实施例还提供一种帧率调整装置,请参阅图5,图5为本发明实施例提供的帧率调整装置50的结构示意图。其中,该帧率调整装置50可以包括:
第二获取单元51,用于获取针对当前帧率的帧率调整信息,所述当前帧率是由第一设备向第二设备发送多个已处理帧的第一帧率,所述帧率调整信息是基于所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率确定的;
调整单元52,用于根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
可选地,前述装置在用于根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率时,具体用于:
获取所述帧率调整信息对应的预设帧率调整步长;
根据所述预设帧率调整步长调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
可选地,所述装置还用于:
获取所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率;
基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定所述帧率调整信息。
其中,第二设备为终端。
上述帧率调整装置的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各个单元可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个单元对应的操作。
帧率调整装置50,可以集成在具备储存器并安装有处理器而具有运算能力的服务器中,或者该帧率调整装置50为该服务器。
可选的,本发明还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
图6为本发明实施例提供的计算机设备的结构示意图,该计算机设备可以是图1所示的终端或服务器。如图6所示,该计算机设备600可以包括:通信接口601,存储器602,处理器603和通信总线604。通信接口601,存储器602,处理器603通过通信总线604实现相互间的通信。通信接口601用于计算机设备600与外部设备进行数据通信。存储器602可用于存储软件程序以及模块,处理器603通过运行存储在存储器602的软件程序以及模块,例如,前述方法实施例中的相应操作的软件程序。
可选的,该处理器603可以调用存储在存储器602的软件程序以及模块执行如下操作:
获取预设时长内已处理的多个帧的帧处理总时长与帧数量;
获取第一帧率,所述第一帧率包括第一设备发送所述多个帧的当前帧率;
基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;
根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,使所述第一设备根据所述第二帧率发送所述待发送帧。
可选的,该处理器603还可以调用存储在存储器602的软件程序以及模块执行如下操作:
获取针对当前帧率的帧率调整信息,所述当前帧率是由第一设备向第二设备发送多个已处理帧的第一帧率,所述帧率调整信息是基于所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率确定的;
根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
本发明还提供了一种计算机可读存储介质,用于存储计算机程序。该计算机可读存储介质可应用于计算机设备,并且该计算机程序使得计算机设备执行本发明实施例中的各方法中的相应流程,为了简洁,在此不再赘述。
本发明还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本发明实施例中的各方法中的相应流程,为了简洁,在此不再赘述。
本发明还提供了一种计算机程序,该计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本发明实施例中的各方法中的相应流程,为了简洁,在此不再赘述。
应理解,本发明实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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 RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR 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)等等。也就是说,本发明实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (19)

1.一种数据处理方法,其特征在于,所述方法包括:
获取预设时长内已处理的多个帧的帧处理总时长与帧数量;
获取第一帧率,所述第一帧率包括第一设备发送所述多个帧的当前帧率;
基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;
根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,使所述第一设备根据所述第二帧率发送所述待发送帧。
2.根据权利要求1所述的数据处理方法,其特征在于,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,包括:
根据所述第一帧率确定帧处理的第一平均耗时;
获取所述已处理的多个帧中各帧的帧处理时长,得到多个帧处理时长;
获取多个帧处理时长中,大于所述第一平均耗时的帧处理时长的第一数量;
当所述第一数量与所述帧数量的比值大于第一预设阈值时,根据所述帧处理总时长、所述帧数量与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
3.根据权利要求1所述的数据处理方法,其特征在于,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,包括:
根据所述第一帧率确定帧处理的第一平均耗时;
获取所述已处理的多个帧中各帧的帧处理时长,得到多个帧处理时长;
获取多个帧处理时长中,大于所述第一平均耗时的帧处理时长的第一数量;
当所述第一数量与所述帧数量的比值大于第一预设阈值时,确定用于指示第一设备对发送待发送帧的帧率进行降低的帧率调整信息。
4.根据权利要求2所述的数据处理方法,其特征在于,根据所述帧处理总时长、所述帧数量与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息,包括:
根据所述帧处理总时长与所述帧数量确定在所述帧处理总时长内帧处理的第二平均耗时;
根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
5.根据权利要求4所述的数据处理方法,其特征在于,根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息,包括:
获取第一预设值;
确定第一预设值与所述第三帧率的第一乘积;
将所述第一乘积与所述第一帧率中的最小值作为用于降低第一设备发送待发送帧的帧率的帧率调整信息。
6.根据权利要求2所述的数据处理方法,其特征在于,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,还包括:
当所述第一数量与所述帧数量的比值不大于所述第一预设阈值时,根据所述帧处理总时长与所述帧数量确定在所述帧处理总时长内帧处理的第二平均耗时;
当所述第二平均耗时与所述第一平均耗时的比值大于第二预设阈值时,
根据所述第二平均耗时与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
7.根据权利要求6所述的数据处理方法,其特征在于,根据所述第二平均耗时与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息,包括:
根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
根据所述第三帧率与所述第一帧率确定用于降低第一设备发送待发送帧的帧率的帧率调整信息。
8.根据权利要求6所述的数据处理方法,其特征在于,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,还包括:
获取预设帧率,所述预设帧率大于所述第一帧率;
当所述第二平均耗时与所述第一平均耗时的比值不大于所述第二预设阈值时,根据所述预设帧率确定帧处理的第三平均耗时;
获取所述多个帧处理时长中,小于所述第三平均耗时的帧处理时长的第二数量;
当所述第二数量与所述帧数量的比值不大于第三预设阈值时,根据所述第二平均耗时与所述预设帧率确定帧率调整信息。
9.根据权利要求8所述的数据处理方法,其特征在于,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,还包括:
当所述第二数量与所述帧数量的比值大于所述第三预设阈值,且所述第二平均耗时与所述第三平均耗时的比值不小于第四预设阈值时,根据所述第二平均耗时与所述预设帧率确定帧率调整信息。
10.根据权利要求8或9所述的数据处理方法,其特征在于,根据所述第二平均耗时与所述预设帧率确定帧率调整信息,包括:
根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
获取第二预设值;
确定第二预设值与所述第三帧率的第二乘积;
将所述第二乘积与所述预设帧率中的最小值作为帧率调整信息。
11.根据权利要求9所述的数据处理方法,其特征在于,基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息,还包括:
当所述第二平均耗时与所述第三平均耗时的比值小于所述第四预设阈值时,根据所述第二平均耗时、所述第一帧率,以及所述预设帧率确定帧率调整信息。
12.根据权利要求11所述的数据处理方法,其特征在于,根据所述第二平均耗时、所述第一帧率,以及所述预设帧率确定帧率调整信息,包括:
根据所述第二平均耗时确定所述第二平均耗时对应的第三帧率;
获取第三预设值;
确定第三预设值与所述第三帧率的第三乘积;
将所述第三乘积与所述第一帧率中的最大值作为第四帧率;
将所述第四帧率与所述预设帧率中的最小值作为帧率调整信息。
13.一种帧率调整方法,其特征在于,所述方法包括:
获取针对当前帧率的帧率调整信息,所述当前帧率是由第一设备向第二设备发送多个已处理帧的第一帧率,所述帧率调整信息是基于所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率确定的;
根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
14.根据权利要求13所述的帧率调整方法,其特征在于,根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率,包括:
获取所述帧率调整信息对应的预设帧率调整步长;
根据所述预设帧率调整步长调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
15.根据权利要求13所述的帧率调整方法,其特征在于,所述方法还包括:
获取所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率;
基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定所述帧率调整信息。
16.一种数据处理装置,其特征在于,所述装置包括:
第一获取单元,用于获取预设时长内已处理的多个帧的帧处理总时长与帧数量;
所述第一获取单元,还用于获取第一帧率,所述第一帧率包括第一设备发送所述多个帧的当前帧率;
确定单元,用于基于所述帧处理总时长、所述帧数量,以及所述第一帧率确定帧率调整信息;
所述确定单元还用于根据所述帧率调整信息确定所述第一设备发送待发送帧的第二帧率,使所述第一设备根据所述第二帧率发送所述待发送帧。
17.一种帧率调整装置,其特征在于,所述装置包括:
第二获取单元,用于获取针对当前帧率的帧率调整信息,所述当前帧率是由第一设备向第二设备发送多个已处理帧的第一帧率,所述帧率调整信息是基于所述已处理帧的帧处理总时长、帧数量、以及所述第一帧率确定的;
调整单元,用于根据所述帧率调整信息,调整由所述第一设备向所述第二设备发送待发送帧的第二帧率。
18.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行权利要求1-15任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-15任一项所述的方法。
CN202211633415.3A 2022-12-19 2022-12-19 数据处理方法、帧率调整方法、装置,设备及计算机介质 Active CN115623248B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211633415.3A CN115623248B (zh) 2022-12-19 2022-12-19 数据处理方法、帧率调整方法、装置,设备及计算机介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211633415.3A CN115623248B (zh) 2022-12-19 2022-12-19 数据处理方法、帧率调整方法、装置,设备及计算机介质

Publications (2)

Publication Number Publication Date
CN115623248A true CN115623248A (zh) 2023-01-17
CN115623248B CN115623248B (zh) 2023-03-21

Family

ID=84880017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211633415.3A Active CN115623248B (zh) 2022-12-19 2022-12-19 数据处理方法、帧率调整方法、装置,设备及计算机介质

Country Status (1)

Country Link
CN (1) CN115623248B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070057952A1 (en) * 2005-09-14 2007-03-15 Microsoft Corporation Adaptive scheduling to maintain smooth frame rate
CN106792148A (zh) * 2016-12-09 2017-05-31 广东威创视讯科技股份有限公司 一种提高图像流畅度的方法及系统
CN108063973A (zh) * 2017-12-14 2018-05-22 浙江大华技术股份有限公司 一种视频流解码方法及设备
CN110881136A (zh) * 2019-11-14 2020-03-13 腾讯科技(深圳)有限公司 视频帧率控制方法、装置、计算机设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070057952A1 (en) * 2005-09-14 2007-03-15 Microsoft Corporation Adaptive scheduling to maintain smooth frame rate
CN106792148A (zh) * 2016-12-09 2017-05-31 广东威创视讯科技股份有限公司 一种提高图像流畅度的方法及系统
CN108063973A (zh) * 2017-12-14 2018-05-22 浙江大华技术股份有限公司 一种视频流解码方法及设备
CN110881136A (zh) * 2019-11-14 2020-03-13 腾讯科技(深圳)有限公司 视频帧率控制方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN115623248B (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
CN111882626B (zh) 图像处理方法、装置、服务器及介质
US11012338B2 (en) Network adaptive latency reduction through frame rate control
US9549152B1 (en) Application content delivery to multiple computing environments using existing video conferencing solutions
CN110636346B (zh) 一种码率自适应切换方法、装置、电子设备及存储介质
US9942556B2 (en) Altering streaming video encoding based on user attention
CN101001362B (zh) 在线播放流媒体的方法及终端
US8903897B2 (en) System and method for providing interactive content to non-native application environments
CN112422873B (zh) 插帧方法、装置、电子设备及存储介质
CN112870711B (zh) 一种云游戏的处理方法、装置、设备及存储介质
WO2022257699A1 (zh) 图像画面显示方法、装置、设备、存储介质及程序产品
WO2015061083A1 (en) Adapting a jitter buffer
US20150134846A1 (en) Method and apparatus for media segment request retry control
CN109769125B (zh) 流媒体码率的动态调整方法、媒体服务器及转码服务器
CN113286146B (zh) 媒体数据处理方法、装置、设备以及存储介质
CN111510761A (zh) 首帧均衡限流方法、装置、计算机设备及可读存储介质
CN115623248B (zh) 数据处理方法、帧率调整方法、装置,设备及计算机介质
CN114416013A (zh) 数据发送方法、装置、电子设备及计算机可读存储介质
CN116567242A (zh) 图像处理方法、装置及设备
CN116264619A (zh) 资源处理方法、装置、服务器、终端、系统及存储介质
CN114554277A (zh) 多媒体的处理方法、装置、服务器及计算机可读存储介质
CN113747181A (zh) 基于远程桌面的网络直播方法、直播系统及电子设备
CN113965779A (zh) 云游戏数据的传输方法、装置、系统及电子设备
CN113747237B (zh) 数据处理方法、装置、电子设备及存储介质
CN118055277A (zh) 视频处理方法、装置、设备与计算机存储介质
CN118055260A (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
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40080395

Country of ref document: HK