本技术涉及终端,特别涉及一种处理器的调频方法、电子设备、芯片系统及存储介质。
背景技术:
1、玩游戏是手机、平板电脑等终端使用中的一个重要场景,游戏体验也是评价终端优劣的一项重要指标。而游戏的帧率和抖动率是影响用户的游戏体验的重要指标,帧率差或抖动率高将导致游戏体验不佳,此时也就需要终端的设备厂商做平台型的优化。
2、帧率差和抖动率高的直接原因是随机丢帧。目前,终端一般采用基于负载的资源调度算法来改善随机丢帧现象。具体地,实时采集游戏画面的渲染流程中的负载信息,并根据多个时间窗口的负载信息统计渲染流程中的负载变化情况,根据负载变化情况为渲染流程分配合理的处理器资源。比如,若负载变化情况指示连续多个时间窗口内的负载均大于负载阈值,则对渲染线程所在处理器进行提频处理,以使处理器使用更高的频点来运行游戏画面的渲染线程,从而降低后续的丢帧概率。
3、但是基于负载的资源调度算法需要累计统计一定时间段的负载变化情况后才能进行调频处理,因此可能无法及时感知负载变化以及精准预测丢帧时机,进而无法及时分配应有的资源来配合渲染流程,导致处理器的频点不能在即将丢帧时得到及时提拉,随机丢帧现象的改善效果不佳。
技术实现思路
1、本技术提供了一种处理器的调频方法、电子设备、芯片系统及存储介质,可以提高调频的及时性,减少或避免随机丢帧现象。所述技术方案如下:
2、第一方面,提供了一种处理器的调频方法,应用于电子设备,方法包括:响应于第一操作,启动第一应用并显示第一应用的应用画面;在第一应用运行的过程中,获取第一应用的最新合成的图像帧的驻留时长;根据该驻留时长和目标时长的比较结果,对运行第一应用的渲染线程的目标处理器的频率进行调整。
3、其中,驻留时长是指所述图像帧在图形缓冲区中的缓存时长,即所述图像帧在渲染完成后从被存放在图形缓冲区到被从图形缓冲区取出进行合成的时长。目标时长是指驻留时长对应的稳定时长,即在帧率稳定的状态下,各帧的驻留时长一般维持在目标时长左右。其中,帧率稳定的状态是指应用未发生丢帧且帧率的抖动率小于预设抖动率的状态。预设抖动率可以根据需要进行设置,比如可以为不影响显示效果的最大抖动率。
4、帧率稳定的情况下,各个图像帧的驻留时长应维持在目标时长左右。通过将驻留时长与目标时长进行比较,可以及时感知图像生产者工作的负载变化以及生产速度的变化,从而及时、准确地预测可能丢帧的情况,因此根据驻留时长和目标时长的比较结果,对运行应用的渲染线程的处理器进行调频,可以在可能出现丢帧时及时进行调频处理,从而可以减少或避免应用的随机丢帧现象,进而减少或避免应用画面出现卡顿现象,提高了用户的应用体验。
5、在一个实施例中,可以获取应用在帧率稳定的状态下渲染的多个历史帧的驻留时长,根据多个历史帧的驻留时长,确定目标时长。比如,将多个历史帧的平均驻留时长确定为目标时长。如此,可以得到较为精确的目标时长,提高后续基于驻留时长进行调频的准确性。
6、在一个实施例中,目标时长t与应用的帧率匹配。比如,为了保证调频的准确性,在不同帧率场景下,可以分别设置不同的目标时长t。例如,在应用的帧率为60fps的情况下,目标时长t=8.3ms。在应用的帧率为90fps的情况下,目标时长t=5.5ms。
7、在一种可能的实现方式中,可以预先设置帧率与目标时长的对应关系,该对应关系包括多个帧率以及不同帧率对应的目标时长。在设置目标时长时,可以从该对应关系中确定与当前应用的帧率对应的目标时长。其中,各个帧率对应的目标时长可以根据该应用在对应帧率且在帧率稳定的状态下渲染的多个历史帧的驻留时长确定得到,比如,根据多个历史帧的平均驻留时长确定得到。
8、在一个实施例中,在最新合成的图像帧的驻留时长小于目标时长的情况下,对第一应用的渲染线程所在处理器进行提频,即提高第一应用的渲染线程所在处理器的频率,如此可以及时处理器的处理性能,进而提高图像生产者的生产速度,防止丢帧。反之,在最新合成的图像帧的驻留时长大于目标时长的情况下,对第一应用的渲染线程所在处理器进行降频,即降低渲染线程所在处理器的频率,以降低图像生产者的生产速度,节省功耗。
9、在一个实施例中,为了避免对处理器的频繁调频,节省功耗,还可以预先设置一个时长差容限,在进行调频之前,先将驻留时长与目标时长之间的时长差与时长差容限进行比较。若两者的时长差小于或等于时长差容限,则不对第一应用的渲染线程所在处理器进行调频。若两者的时长差大于时长差容限,再比较驻留时长与目标时长这两者的大小。若最新合成的图像帧的驻留时长小于目标时长,则对第一应用的渲染线程所在处理器进行提频;若最新合成的图像帧的驻留时长大于目标时长,则对第一应用的渲染线程所在处理器进行降频。
10、在一个实施例中,考虑到频繁进行调频带来的开销较大,为了节省功耗,避免频率的剧烈抖动(陡升陡降),还可以在对第一应用的渲染线程所在处理器进行调频时,对第一应用的渲染线程所在处理器的频率逐渐进行调整。如此,可以改善基于负载的资源调度算法存在的提频时将频点提升至最高频点,对功耗不友好的问题。
11、作为一个示例,在进行提频时,可以先将目标处理器的频率值提高第一频率值,然后继续获取第一应用合成的下一个图像帧的驻留时长,若下一个图像帧的驻留时长小于目标时长,则继续将目标处理器的频率值提高第一频率值,直至第一应用最新合成的图像帧的驻留时长大于或等于目标时长为止。
12、作为一个示例,在进行降频时,可以先将目标处理器的频率值降低第二频率值,然后继续获取第一应用合成的下一个图像帧的驻留时长,若下一个图像帧的驻留时长大于目标时长,则继续将目标处理器的频率值降低第二频率值,直至第一应用最新合成的图像帧的驻留时长小于或等于目标时长为止。
13、在一个实施例中,可以对第一应用的渲染线程的渲染流程进行监听,以获取渲染线程在渲染完成图像帧后,将图像帧存放在图形缓冲区的时间,得到图像帧的缓冲存放时间;对渲染流程对应的图像消费者的合成流程进行监听,以获取图像消费者从图形缓冲区取出图像帧进行合成的时间,得到图像帧的缓冲取出时间;根据图像帧的缓冲存放时间和缓冲取出时间,确定图像帧的驻留时长。
14、通过对第一应用的渲染线程的渲染流程以及图像消费者(如surfaceflinger)的合成流程进行监听,可以及时监听到最新合成的图像帧的缓冲存放时间和缓冲取出时间,并及时根据图像帧的缓冲存放时间和缓冲取出时间确定图像帧的驻留时长。
15、在一个实施例中,第一应用可以为游戏应用、视频应用或视频通话应用等,本技术实施例对此不做限定。
16、第二方面,提供了一种处理器的调频装置,所述处理器的调频装置具有实现上述第一方面中处理器的调频方法行为的功能。所述处理器的调频装置包括至少一个模块,所述至少一个模块用于实现上述第一方面所提供的处理器的调频方法。
17、第三方面,提供了一种处理器的调频装置,所述处理器的调频装置的结构中包括处理器和存储器,所述存储器用于存储支持处理器的调频装置执行上述第一方面所提供的处理器的调频方法的程序,以及存储用于实现上述第一方面所述的处理器的调频方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述处理器的调频装置还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
18、第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的处理器的调频方法。
19、第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的处理器的调频方法。
20、上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。