应用帧率平滑方法、电子设备及存储介质与流程

文档序号:35335762发布日期:2023-09-06 20:52阅读:34来源:国知局
应用帧率平滑方法、电子设备及存储介质与流程

本技术涉及终端,特别涉及一种应用帧率平滑方法、电子设备及存储介质。


背景技术:

1、随着终端技术的不断发展,对于游戏类或视频类等功耗较高的视频显示应用来说,应用画面的帧率及复杂度逐渐提升,以期得到更好的使用者体验。然而,对于终端来说,应用画面的帧率越高、越精致,功耗越大,越容易影响设备状态,比如设备更容易发烫。为了保障设备状态,降低设备发烫几率,一般会在视频显示应用运行的过程中,对视频显示应用的帧率进行管控。

2、相关技术中,视频显示应用运行的过程中,可以触发温控限帧策略。温控限帧策略是指若检测到设备温度大于温度阈值,则将应用帧率从当前的第一帧率调整为帧率较低的第二帧率。在帧率下降后,功耗降低,终端的设备温度也会随之下降,若设备温度下降至小于温度阈值,终端又会将应用帧率调回第一帧率。之后,若再次检测到设备温度大于温度阈值,则再将应用帧率降低为第二帧率。由此可知,这种帧率调整方法容易出现帧率的抖升抖降,稳定性较低。


技术实现思路

1、本技术提供了一种应用帧率平滑方法、电子设备及存储介质,可以在平衡设备状态、应用画面的显示性能和设备功耗的基础上进行帧率调整,使得帧率的调整更加平稳,降低帧率抖动概率,提高应用画面显示的稳定性,保障用户观看应用画面的流畅体验。所述技术方案如下:

2、第一方面,提供了一种应用帧率平滑方法,应用与电子设备,所述方法包括:

3、在第一应用运行的过程中,获取电子设备的设备状态信息;若根据获取的设备状态信息确定第一应用的运行场景满足帧率平滑条件,则根据获取的设备状态信息和第一应用的当前帧率,确定目标帧率;根据目标帧率,调整第一应用的帧率;根据目标帧率,调整显示屏幕的刷新率;根据目标帧率,为第一应用进行资源调度。

4、其中,第一应用为视频显示应用,视频显示应用是用于显示视频画面的应用。比如,第一应用为游戏应用、视频播放应用或视频通话应用等。设备状态信息用于指示设备状态,可以包括设备温度、设备负载等。

5、通过根据电子设备的设备状态信息确定的目标帧率调整视频显示应用的帧率,可以使视频显示应用的帧率与设备状态匹配,从而降低帧率对设备状态的影响,保障设备状态。通过根据目标帧率调整显示屏幕的刷新率,可以使显示屏幕的刷新率与设备状态和调整后的帧率匹配,保证视频显示的流畅性,进而保证视频显示性能。通过根据目标帧率为应用进行资源调度,可以使调度的资源与目标帧率匹配,进而使得电子设备可以在合理的功耗下保证视频显示的性能。因此,通过根据设备状态信息确定的目标帧率调整视频显示应用的帧率和显示屏幕的刷新率,以及为视频显示应用进行资源调度,可以在平衡设备状态、视频显示的性能和设备功耗的基础上进行帧率调整,使得帧率的调整更加平滑和稳定,降低帧率抖动概率,避免出现帧率陡降导致的卡顿问题,提高视频显示的稳定性,保障用户观看应用画面的流畅体验。

6、也即是,本技术实施例可以监听设备温度、设备负载等设备状态信息,还可以监听应用流畅度等应用状态信息,根据监听数据对应用的帧率进行反馈控制,具体对应用帧率、刷新率和资源调度这三个方面进行反馈控制,使得输出帧率在设备状态、应用画面的性能和设备功耗之间取得平衡。

7、作为一个示例,根据目标帧率,调整第一应用的帧率,包括:根据目标帧率,通过调整第一应用的图像渲染结果对应的前台缓冲和后台缓冲进行交换的等待时长,将第一应用的帧率调整为目标帧率。

8、其中,第一应用的图像渲染结果对应有前台缓冲和后台缓冲,后台缓冲用来存储图像渲染结果,前台缓冲用于存储渲染完成后待送显的图像数据。在第一应用的应用画面进行绘制时,实际上是对后台缓冲中的内容进行渲染,渲染完成后,将后台缓冲和前台缓冲进行交换。将后台缓冲和前台缓冲进行交换是指将后台缓冲中的内容(渲染结果)复制到前台缓冲中,再将前台缓冲中的内容进行送显,从而在显示器中显示绘制的应用画面。

9、其中,前后台缓冲进行交换的等待时长越长,则对应的帧率越大;前后台缓冲进行交换的等待时长越短,则对应的帧率越小。

10、本技术实施例中,可以通过调整前台缓冲和后台缓冲进行交换的等待时长,来控制第一应用的单个图像帧从渲染到显示的时长,进而控制第一应用的帧率。前后台缓冲进行交换的等待时长越长,则对应的帧率越大;前后台缓冲进行交换的等待时长越短,则对应的帧率越小。

11、可以通过调整前台缓冲和后台缓冲进行交换的等待时长,来控制单帧从渲染到显示的时长,进而控制游戏应用的帧率。前后台缓冲进行交换的等待时长越长,则对应的帧率越大;前后台缓冲进行交换的等待时长越短,则对应的帧率越小。

12、作为一个示例,可以调用eglswapbuffers函数,通过eglswapbuffer函数调整第一应用的图像渲染结果对应的前台缓冲和后台缓冲进行交换的等待时长。其中,eglswapbuffers函数是嵌入式图形库(embedded graphic library,egl)中的一个函数,用于交换前后台缓冲。

13、作为一个示例,根据目标帧率,调整显示屏幕的刷新率,包括:根据目标帧率,确定目标刷新率,目标刷新率是根据目标帧率的数值确定的,或者是根据显示屏幕支持的多个刷新率档位中与目标帧率匹配的刷新率档位确定的;将显示屏幕的刷新率调整为目标刷新率。

14、在一个实施例中,显示屏幕可以支持多个刷新率档位,不同的刷新率档位对应不同的刷新率。电子设备可以从显示屏幕支持的多个刷新率档位中确定与目标帧率匹配的刷新率档位,将与目标帧率匹配的刷新率档位对应的刷新率确定为目标刷新率。

15、其中,与目标帧率匹配的刷新率档位可以是多个刷新率档位中与目标帧率的值最接近的刷新率档位,或者是大于或等于目标帧率的值的刷新率档位中与目标帧率的值最接近的刷新率档位,或者是小于或等于目标帧率的值的刷新率档位中与目标帧率的值最接近的刷新率档位,本技术实施例对此不做限定。

16、在另一个实施例中,显示屏幕支持刷新率的无极调整,电子设备可以将目标帧率对应的数值确定为目标刷新率。比如,若目标帧率为100fps,则目标刷新率为100hz。

17、如此,可以根据第一应用的当前帧率和设备状态信息,动态选择显示屏幕的刷新率档位,使得显示屏幕的刷新率与应用帧率和设备状态匹配,从而在合理的刷新率功耗下保证应用画面的流畅性。

18、作为一个示例,电子设备可以目标帧率,为第一应用调度处理器资源。

19、通过根据目标帧率为应用调度处理器资源,可以使调度的处理器资源与目标帧率匹配,进而使得电子设备可以在合理的处理器功耗下保证视频显示的性能。

20、作为一个示例,电子设备包括多核处理器,多核处理器被划分成多个簇,每个簇包括至少一个处理器,调度处理器资源可以包括调频、选核、迁核和亲和性设置中的一种或多种。

21、比如,可以根据目标帧率,确定单帧时长;根据单帧时长,以及多个簇中各个簇的算力和功耗,为第一应用的相关线程调度处理器资源。

22、在一个实施例中,可以根据单帧时长,以及多个簇中各个簇的算力和功耗,设置第一线程与第一簇的亲和性,第一簇为多个簇中的任一个。

23、其中,第一线程可以为第一应用的任一线程,比如为第一应用的重负载线程。重负载线程是指第一应用的所有线程中负载相对较重的线程,比如可以将第一应用的线程中运行时长满足预设条件的线程确定为重负载线程。其中,预设条件可以为运行时长大于预设时长等,当然也可以设置为其他条件,本技术实施例对此不做限定。示例地,重负载线程可以包括绘制线程和逻辑线程。

24、在一个实施例中,根据单帧时长,以及多个簇中各个簇的算力和功耗,基于第二簇的频段为第二线程进行调频,第二簇是指当前运行第二线程的处理器所属的簇。

25、在一个实施例中,先根据单帧时长,以及多个簇中各个簇的算力和功耗,基于第二簇的频段为第二线程进行调频,第二簇是指当前运行第二线程的处理器所属的簇。之后,判断第二线程调频后的频点的算力和功耗是否满足单帧时长的性能要求。若第二线程调频后的频点的算力和功耗不满足单帧时长的性能要求,则结束确定调度策略的步骤。若第二线程调频后的频点的算力和功耗不满足单帧时长的性能要求,则先根据单帧时长,以及多个簇中各个簇的算力和功耗,将第二线程从第二簇迁移至第三簇运行,再基于第三簇的频段为第二线程进行调频。

26、其中,第三簇为多个簇中除第二簇之外的任一簇,比如为性能大于第二簇的一个簇。第二线程为第一应用的任一线程,比如为第一应用的重负载线程,如渲染线程或逻辑线程等。

27、在一个实施例中,根据单帧时长,以及多个簇中各个簇的算力和功耗,从多个簇中选择第四簇,将第四簇分配给游戏应用的第三线程。

28、其中,第四簇可以为多个簇中的任一簇,第三线程可以为第一应用的任一线程,比如为第一应用的重负载线程,如渲染线程或逻辑线程等。

29、通过为第一应用的相关线程进行亲和性设置,或者为第一应用的相关线程进行调频,或先进行迁核再进行调频,或者为第一应用的相关线程进行选核,可以使得第一应用的相关线程可以在合理的处理器资源下运行,进而使得设备可以在合理的设备功耗下保证第一应用的相关线程的运行性能,进而保证应用画面的显示性能。

30、作为一个示例,设备状态信息包括设备温度;若电子设备的当前设备温度大于第一基准温度,和/或,当前设备温度小于第二基准温度,以及温度变化速度大于速度阈值,则确定第一应用的运行场景满足帧率平滑条件;其中,第一基准温度小于第二基准温度,当前设备温度是指当前温度获取周期获取的设备温度,温度变化速度是指当前设备温度与上一个温度获取周期获取的设备温度之间的温度变化速度。

31、作为一个示例,根据获取的设备状态信息和第一应用的当前帧率,确定目标帧率,包括:根据电子设备的当前设备温度和温度变化值,确定帧率改变值,温度变化值是指当前设备温度与上一个温度获取周期获取的设备温度之间的温度变化值,温度变化值越大,帧率改变值越大;根据第一应用的当前帧率和帧率改变值,确定目标帧率。

32、也即是,帧率改变值与帧率变化值呈正比,即与温升速度或温降速度呈正比。如此,温升速度越快,帧率降低的越快,温降速度越快,帧率提升的越快,从而可以根据温升速度或温降速度灵活地调整应用帧率,提高帧率平滑效果。

33、作为一个示例,根据电子设备的当前设备温度和温度变化值,确定帧率改变值,包括:根据温度变化值,确定第一帧率改变值;根据当前设备温度,确定第二帧率改变值;根据第一帧率改变和第二帧率改变值,确定帧率改变值。

34、其中,第一帧率改变值是由温升速度贡献的帧率改变值。第二帧率改变值是由当前设备温度贡献的帧率改变值。

35、作为一个示例,根据温度变化值,确定第一帧率改变值,包括:

36、根据所述温度变化值,通过如下公式确定第一帧率改变值:

37、

38、其中,为第一帧率改变值,为温度变化值,为第一常数,a为第二常数。

39、作为一个示例,根据当前设备温度,确定第二帧率改变值,包括:

40、根据所述当前设备温度,通过如下公式确定第二帧率改变值:

41、

42、其中,为第二帧率改变值,为标准化温度,标准化温度是根据当前设备温度和中间温度确定得到,中间温度是令为0的标准化温度的值,为第三常数。

43、作为一个示例,根据第一帧率改变和第二帧率改变值,确定帧率改变值,包括:

44、根据第一帧率改变和第二帧率改变值,通过如下公式确定帧率改变值:

45、

46、其中,为帧率改变值,为第一帧率改变值,为第二帧率改变值,k为第四常数,为第五常数,normalfps为预先设置的帧率变化的最小单位。

47、通过根据上述公式计算帧率改变值,引入了自适应温度-帧率决策模型,是的帧率的决策符合温度变化趋势。

48、作为一个示例,设备温度是根据如下温度中的一种或多种确定:壳体温度、电池温度和系统温度。

49、作为一个示例,设备状态信息包括设备负载,电子设备还可以获取第一应用的流畅度信息;若流畅度信息不满足流畅度要求且设备负载大于第一负载阈值,或者,若第一应用的流畅度信息满足流畅度要求且设备负载小于第二负载阈值,则确定第一应用的运行场景满足帧率平滑条件;然后,根据流畅度信息、设备负载和第一应用的当前帧率,确定目标帧率。

50、如此,可以根据应用流畅度和设备负载,对应用帧率进行调整,使得应用帧率在合理的功耗下满足性能要求。

51、作为一个示例,若流畅度信息不满足流畅度要求且设备负载大于第一负载阈值,则确定第一应用的运行场景满足帧率下降条件;然后,根据流畅度信息和设备负载,确定帧率下降值;根据帧率下降值和当前帧率,确定目标帧率。

52、作为一个示例,若第一应用的流畅度信息满足流畅度要求且设备负载小于第二负载阈值,则确定第一应用的运行场景满足帧率提高条件;然后,根据流畅度信息和设备负载,确定帧率提高值;根据帧率提高值和当前帧率,确定目标帧率。

53、如此,可以在设备负载较大时降低应用帧率,在设备负载较小时提高应用帧率,使得应用帧率符合设备性能。

54、作为一个示例,获取电子设备的设备状态信息之前,还可以获取电子设备的系统状态;若系统状态满足第一预设条件,则执行获取电子设备的设备状态信息的步骤。另外,若系统状态不满足第一预设条件,则不执行获取电子设备的设备状态信息的步骤。

55、示例地,第一预设条件包括以下系统状态中的一种或多种:

56、电子设备处于亮屏状态;

57、电子设备的显示屏幕为可折叠屏且处于展开态;

58、第一应用在前台运行;

59、电子设备处于多窗场景,多窗场景是指显示多个窗口的场景;

60、电子设备处于下拉通知栏状态;

61、电子设备处于来电场景;

62、电子设备处于录屏场景;

63、电子设备不处于低电量模式;

64、电子设备不处于插帧场景,插帧场景是指第一应用通过插帧方式生成视频帧的场景。

65、如此,可以在合适的系统状态下,执行帧率平滑方案,使得帧率平滑方案的执行更加灵活和有针对性。

66、另外,获取电子设备的系统状态之后,还可以先判断系统状态是否满足第二预设条件;若系统状态不满足第二预设条件,则判断系统状态是否满足第一预设条件;若系统状态满足第二预设条件,则不执行获取电子设备的设备状态信息的步骤。

67、其中,第一预设条件为帧率平滑方案的生效条件,相当于系统状态白名单,第二预设条件为帧率平滑方案失效条件,相当于系统状态黑名单。

68、通过在第一预设条件之外设置第二预设条件,可以提高系统状态的筛查效率,降低计算量。

69、示例地,第二预设条件包括如下系统状态中的一种或多种:

70、电子设备处于低电量模式;

71、电子设备处于插帧场景。

72、作为一个示例,获取电子设备的设备状态信息之前,还可以对第一应用进行白名单校验;若校验成功,则执行获取电子设备的设备状态信息的步骤。

73、比如,在确定系统状态满足第一预设条件之后,对第一应用进行白名单校验;若校验成功,则执行获取电子设备的设备状态信息的步骤。

74、如此,可以实现针对特定应用或特定类型的应用执行帧率平滑方案,提高帧率平滑方案的个性化配置需求。

75、比如,预设白名单可以包括至少一个应用的应用标识。在进行白名单校验时,可以判断预设白名单是否存在第一应用的应用标识,若预设白名单存在第一应用的应用标识,则确定校验成功;预设白名单不存在第一应用的应用标识,则确定校验失败。

76、如此,可以实现针对特定类型的应用执行帧率平滑方案,提高帧率平滑方案的个性化配置需求。

77、再比如,预设白名单包括至少一个应用类型。在进行白名单校验时,可以判断第一应用是否属于预设白名单包括的至少一个应用类型中的任一应用类型;若第一应用属于至少一个应用类型中的任一应用类型,则确定校验成功;若第一应用不属于至少一个应用类型中的任一应用类型,则确定校验失败。

78、如此,可以实现针对特定应用执行帧率平滑方案,提高帧率平滑方案的个性化配置需求。

79、第二方面,提供了一种应用帧率平滑装置,所述应用帧率平滑装置具有实现上述第一方面中应用帧率平滑方法行为的功能。所述应用帧率平滑装置包括至少一个模块,所述至少一个模块用于实现上述第一方面所提供的应用帧率平滑方法。

80、第三方面,提供了一种应用帧率平滑装置,所述应用帧率平滑装置的结构中包括处理器和存储器,所述存储器用于存储支持应用帧率平滑装置执行上述第一方面所提供的应用帧率平滑方法的程序,以及存储用于实现上述第一方面所述的应用帧率平滑方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述应用帧率平滑装置还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。

81、第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的应用帧率平滑方法。

82、第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的应用帧率平滑方法。

83、上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1