一种动态电压频率调整方法及装置与流程

文档序号:11514516阅读:193来源:国知局
一种动态电压频率调整方法及装置与流程

本发明涉及动态电压频率调整技术领域,特别涉及一种动态电压频率调整(dynamicvoltageandfrequencyscaling,dvfs)方法及装置。



背景技术:

目前,由于电子设备的cpu对于供电电池的寿命和功耗有严格的要求,因此需要通过动态电压频率调整(dynamicvoltagefrequencyscaling,dvfs)技术,根据cpu的实时负载需求,动态调整cpu的工作频率和工作电压,从而达到有效降低cpu的功耗的目的。

在现有技术中,在进行dvfs动态调整时,根据固定的dvfs表格中记录的工作电压、工作频率和cpu负载的上下阈值的对应关系,确定cpu的目标工作电压和目标工作频率,从而进行调整。当电子设备的cpu负载超过上阈值时,则增大cpu的目标工作电压和目标工作频率,当电子设备的cpu小于下阈值时,则减小cpu的目标工作电压和目标工作频率。

当电子设备进行视频编码时,电子设备的cpu负载一般比固定的dvfs表格中记录的cpu负载下阈值稍微大些,此时,若cpu采用与当前工作电压和当前工作频率对应的固定的dvfs表格中的组相邻的组中的,较当前工作电压和当前工作频率小的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,也可以满足该cpu的正常进行视频编码工作的需求。但是仅通过对现有的固定的dvfs表格的一刀切的上下阈值调节方法,则不能将cpu的目标工作电压和目标工作频率向更小的数值调整,所以上述的调整方法,针对视频编码的场合,不能使cpu的功耗达到更低的状态。



技术实现要素:

本发明提供一种dvfs方法及装置,用以解决现有技术中针对电子设备进行视频编码的场合,cpu的功耗不能达到更低的问题。

为达到上述目的,本发明实施例公开了一种动态电压频率调整dvfs方法,所述方法包括:

当处于视频编码场景时,获取视频缓冲利用率和cpu负载,判断所述视频缓冲利用率是否大于设定的阈值,其中,所述视频缓冲利用率为已经编码的视频占用的存储容量与可供编码的视频环形缓冲区域的总的存储容量的比值;

如果是,则根据获取的所述cpu负载以及预先确定的第一dvfs表格,确定cpu的目标工作电压和目标工作频率;

如果否,则根据获取的所述cpu负载以及预先确定的第二dvfs表格,确定cpu的目标工作电压和目标工作频率,其中所述第二dvfs表格中的cpu负载下阈值比第一dvfs表格中的cpu负载下阈值大;

根据确定的cpu的目标工作电压和目标工作频率进行工作。

进一步地,在所述获取视频缓冲利用率和cpu负载之前,所述方法还包括:

接收工作时钟设置信息,其中所述工作时钟设置信息中包含视频编码器的工作时钟的最高频率和双倍率同步动态随机存储器ddr的工作时钟的最高频率;

将所述视频编码器的工作时钟设置在对应的最高频率上,和将所述ddr的工作时钟设置在对应的最高频率上。

进一步地,所述根据获取的所述cpu负载以及预先确定的第二dvfs表格,确定cpu的目标工作电压和目标工作频率包括:

将所述cpu负载与所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值进行比较;

如果所述cpu负载位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,则将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率;

如果所述cpu负载未位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,根据比较结果、第二dvfs表格中记录的每组工作电压和工作频率及cpu的当前工作电压和当前工作频率确定cpu的目标工作电压和目标工作频率。

进一步地,所述根据比较结果、第二dvfs表格中记录的每组工作电压和工作频率及cpu的当前工作电压和当前工作频率确定cpu的目标工作电压和目标工作频率包括:

当比较结果为所述cpu负载大于所述第二dvfs表格中的cpu负载上阈值时,根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率大;

当比较结果为所述cpu负载小于所述第二dvfs表格中的cpu负载下阈值时,根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率小。

进一步地,所述当比较结果为所述cpu负载大于所述第二dvfs表格中的cpu负载上阈值时,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率之前,所述方法还包括:

判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最大工作电压和最大工作频率;如果是,则将当前工作电压和工作频率确定为cpu的目标工作电压和目标工作频率;如果否,则进行接下来的步骤;

当比较结果为所述cpu负载小于所述第二dvfs表格中的cpu负载下阈值时,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率之前,所述方法还包括:

判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最小工作电压和最小工作频率;如果是,则将当前工作电压和工作频率确定为cpu的目标工作电压和目标工作频率;如果否,则进行接下来的步骤。

本发明实施例公开了一种动态电压频率调整dvfs装置,所述装置包括:

获取判断模块,用于当处于视频编码场景时,获取视频缓冲利用率和cpu负载,判断所述视频缓冲利用率是否大于设定的阈值,其中,所述视频缓冲利用率为已经编码的视频占用的存储容量与可供编码的视频环形缓冲区域的总的存储容量的比值;

第一确定模块,用于当获取判断模块的判断结果为是时,根据获取的所述cpu负载以及预先确定的第一dvfs表格,确定cpu的目标工作电压和目标工作频率;

第二确定模块,用于当获取判断模块的判断结果为否时,根据获取的所述cpu负载以及预先确定的第二dvfs表格,确定cpu的目标工作电压和目标工作频率,其中所述第二dvfs表格中的cpu负载下阈值比第一dvfs表格中的cpu负载下阈值大;

工作模块,用于根据确定的cpu的目标工作电压和目标工作频率进行工作。

进一步地,所述装置还包括:

接收模块,用于接收工作时钟设置信息,其中所述工作时钟设置信息中包含视频编码器的工作时钟的最高频率和双倍率同步动态随机存储器ddr的工作时钟的最高频率;

设置模块,用于将所述视频编码器的工作时钟设置在对应的最高频率上,和将所述ddr的工作时钟设置在对应的最高频率上。

进一步地,所述第二确定模块,具体用于将所述cpu负载与所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值进行比较;如果所述cpu负载位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,则将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率;如果所述cpu负载未位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,根据比较结果、第二dvfs表格中记录的每组工作电压和工作频率及cpu的当前工作电压和当前工作频率确定cpu的目标工作电压和目标工作频率。

进一步地,所述第二确定模块,具体用于当比较结果为所述cpu负载大于所述第二dvfs表格中的cpu负载上阈值时,根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率大;当比较结果为所述cpu负载小于所述第二dvfs表格中的cpu负载下阈值时,根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率小。

进一步地,所述装置还包括:

判断模块,用于判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最大工作电压和最大工作频率;

所述第二确定模块,还用于当判断模块的判断结果为是时,将当前工作电压和工作频率确定为cpu的目标工作电压和目标工作频率;

所述判断模块,还用于判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最小工作电压和最小工作频率;

所述第二确定模块,还用于当判断模块的判断结果为是时,将当前工作电压和工作频率确定为cpu的目标工作电压和目标工作频率。

本发明实施例公开了一种dvfs方法及装置,所述方法包括:当处于视频编码场景时,获取视频缓冲利用率和cpu负载,判断所述视频缓冲利用率是否大于设定的阈值,其中,所述视频缓冲利用率为已经编码的视频占用的存储容量与可供编码的视频环形缓冲区域的总的存储容量的比值;如果是,则根据获取的所述cpu负载以及预先确定的第一dvfs表格,确定cpu的目标工作电压和目标工作频率;如果否,则根据获取的所述cpu负载以及预先确定的第二dvfs表格,确定cpu的目标工作电压和目标工作频率,其中所述第二dvfs表格中的cpu负载下阈值比第一dvfs表格中的cpu负载下阈值大;根据确定的cpu的目标工作电压和目标工作频率进行工作。由于在本发明实施例中,当获取的视频缓冲利用率大于设定阈值时,获取的cpu的负载也会较大,则可以通过预先确定的第一dvfs表格确定cpu的目标工作电压和目标工作频率。当获取的视频缓冲利用率不大于设定阈值时,获取的cpu的负载也会较小,一般会处于第一dvfs表格的下阈值和第二dvfs表格的下阈值范围之间,此时可以通过预先确定的第二dvfs表格确定cpu的目标工作电压和目标工作频率,这种方式确定的cpu的目标工作电压和目标工作频率较仅通过第一dvfs表格确定的cpu的目标工作电压和目标工作频率更小,从而达到降低功耗的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1提供的一种dvfs过程示意图;

图2a为本发明实施例提供的一种视频编码示意图;

图2b为本发明实施例提供的一种电子设备的内部架构图;

图2c为本发明实施例提供的一种第二dvfs表格示意图;

图3为本发明实施例提供的一种dvfs过程示意图;

图4为本发明实施例1提供的一种dvfs装置结构图;

图5为本发明实施例提供的一种dvfs装置结构图。

具体实施方式

为了使电子设备在进行视频编码时,cpu的功耗达到更低,本发明实施例提供了一种dvfs方法及装置。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1:

图1为本发明实施例提供的一种dvfs过程示意图,该过程包括以下步骤:

s101:当处于视频编码场景时,获取视频缓冲利用率和cpu负载。

s102:判断所述视频缓冲利用率是否大于设定的阈值,其中,所述视频缓冲利用率为已经编码的视频占用的存储容量与可供编码的视频环形缓冲区域的总的存储容量的比值,如果是,则执行s103,如果否,则执行s104。

本发明实施例提供的dvfs方法可以应用于可以进行视频编码的电子设备。所述电子设备可以是手持设备,也可以是非手持设备。如果所述电子设备为手持设备,降低cpu的功耗就会更为重要,因为手持设备是通过电池供电工作的,手持设备的cpu对于供电电池的寿命和功耗有严格的要求。无论所述电子设备是否为手持设备,对本发明实施例均无影响。

电子设备中保存有阈值,当该电子设备处于视频编码场景时,可以获取视频缓冲利用率和cpu负载,视频缓冲利用率越大,对应的cpu负载一般会越大,视频缓冲利用率越小,对应的cpu负载一般会越小。电子设备判断所述视频缓冲利用率是否大于设定的阈值,根据判断结果确定cpu的目标工作电压和目标工作频率。

电子设备在获取视频缓冲利用率和cpu负载时,可以是实时获取的,也可以是按照设定的时间间隔获取的,获取视频缓冲利用率和获取cpu负载可以是同时进行的,也可以是按照预设的时间间隔以及预设的获取顺序依次获取的,例如预设的时间间隔为1s,获取顺序为先获取视频缓冲利用率,再获取cpu负载,则先获取视频缓冲利用率,1s后再获取cpu负载。所述视频缓冲利用率为已经编码的视频占用的存储容量与可供编码的视频环形缓冲区域的总的存储容量的比值。视频缓冲利用率可以反映出视频编码的整体性能。

s103:根据获取的所述cpu负载以及预先确定的第一dvfs表格,确定cpu的目标工作电压和目标工作频率。

电子设备中保存有第一dvfs表格,当判断出所述视频缓冲利用率大于设定的阈值时,可以根据获取的所述cpu负载以及预先确定的第一dvfs表格,确定cpu的目标工作电压和目标工作频率。其中,所述第一dvfs表格为现有的dvfs表格,所述根据获取的所述cpu负载以及预先确定的第一dvfs表格,确定cpu的目标工作电压和目标工作频率的过程属于现有技术,在本发明实施例中对该过程不进行赘述。

s104:根据获取的所述cpu负载以及预先确定的第二dvfs表格,确定cpu的目标工作电压和目标工作频率,其中所述第二dvfs表格中的cpu负载下阈值比第一dvfs表格中的cpu负载下阈值大。

电子设备中保存有第二dvfs表格,所述第二dvfs表格中的cpu负载下阈值比第一dvfs表格中的cpu负载下阈值大。当判断出所述视频缓冲利用率不大于设定的阈值时,可以根据获取的所述cpu负载以及预先确定的第二dvfs表格,确定cpu的目标工作电压和目标工作频率。

s105:根据确定的cpu的目标工作电压和目标工作频率进行工作。

当确定出cpu的目标工作电压和目标工作频率后,电子设备就可以根据确定的cpu的目标工作电压和目标工作频率进行工作了。

在上述s101之前,即处于视频编码场景之前,还需进行dvfs模块初始化。针对上述s101和s102提及的视频缓冲利用率,可以根据图2a的视频编码示意图进行说明。在视频编码的过程中,视频环形缓冲区域用于存储编码数据流,同时写指针p_write和读指针p_read管理整个视频编码过程,图中的区域1、区域2和区域3构成视频环形缓冲区域,已经编码的视频占用的空间称为区域2,该视频环形缓冲区域中除已经编码的视频占用的空间外的空间为区域2和区域3,区域1占用的存储容量、区域2占用的存储容量和区域3占用的存储容量构成视频环形缓冲区域的总的存储容量。区域2占用的存储容量为已经编码的视频占用的存储容量,则视频缓冲利用率为区域2占用的存储容量与总的存储容量的比值。

随着视频编码的进行,写指针在写入视频数据,则该区域2占用的存储容量将会增加,相应的区域3的存储容量就会变小,读指针可以将写入的视频数据进行读取,则区域1占用的存储容量将会增加,相应的区域2占用的存储容量将会减小。区域2会动态变化,可能变小,也可能变大。每个区域占用的存储容量亦会变大或变小,但是区域1、区域2和区域3构成视频环形缓冲区域不会变化即视频环形缓冲区域的总的存储容量不会发生变化。当区域2占用的存储容量发生变化时,区域2占用的存储容量与总的存储容量的比值也会动态变化。

由于在本发明实施例中,当获取的视频缓冲利用率大于设定阈值时,获取的cpu的负载也会较大,则可以通过预先确定的第一dvfs表格确定cpu的目标工作电压和目标工作频率。当获取的视频缓冲利用率不大于设定阈值时,获取的cpu的负载也会较小,一般会处于第一dvfs表格的下阈值和第二dvfs表格的下阈值范围之间,此时可以通过预先确定的第二dvfs表格确定cpu的目标工作电压和目标工作频率,这种方式确定的cpu的目标工作电压和目标工作频率较仅通过第一dvfs表格确定的cpu的目标工作电压和目标工作频率更小,从而达到降低功耗的目的。

实施例2:

为了减少对视频编码场景的干扰,进一步确保电子设备的cpu的功耗降到最低,在上述实施例的基础上,在本发明实施例中,在所述获取视频缓冲利用率和cpu负载之前,所述方法还包括:

接收工作时钟设置信息,其中所述工作时钟设置信息中包含视频编码器的工作时钟的最高频率和双倍率同步动态随机存储器ddr的工作时钟的最高频率;

将所述视频编码器的工作时钟设置在对应的最高频率上,和将所述ddr的工作时钟设置在对应的最高频率上。

在本发明实施例中,对于视频编码的性能来说,主要影响因素有视频编码器的工作时钟的频率、ddr的工作时钟的频率和cpu主频,其中所述cpu主频对视频编码的性能影响较小,可以忽略不计。当编码器的工作时钟的频率和ddr的工作时钟的频率位于各自的最高频率时,对于视频视频编码的性能影响最小。

电子设备接收工作时钟设置信息,其中所述工作时钟设置信息中包含视频编码器的工作时钟的最高频率和ddr的工作时钟的最高频率。将所述视频编码器的工作时钟设置在对应的最高频率上,并将所述ddr的工作时钟设置在对应的最高频率上。

如图2b所示的进行视频编码的电子设备的内部架构图,包括总线、cpu、视频编码器以及ddr,可以通过总线设置视频编码器的工作时钟的频率和ddr的工作时钟的频率,以及获取cpu负载。

实施例3:

在上述各实施例的基础上,在本发明实施例中,所述根据获取的所述cpu负载以及预先确定的第二dvfs表格,确定cpu的目标工作电压和目标工作频率包括:

将所述cpu负载与所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值进行比较;

如果所述cpu负载位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,则将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率;

如果所述cpu负载未位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,根据比较结果、第二dvfs表格中记录的每组工作电压和工作频率及cpu的当前工作电压和当前工作频率确定cpu的目标工作电压和目标工作频率。

在本发明实施例中,在根据获取的所述cpu负载以及预先确定的第二dvfs表格,确定cpu的目标工作电压和目标工作频率时,具体的,可以是将获取的所述cpu负载与所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值进行比较,如果比较结果为所述cpu负载位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,则说明此时的工作电压和工作频率为该电子设备较优的工作电压和工作频率,则将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率。

如果所述cpu负载未位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,可以根据比较结果、第二dvfs表格中记录的每组工作电压和工作频率及cpu的当前工作电压和当前工作频率确定cpu的目标工作电压和目标工作频率。

所述根据比较结果、第二dvfs表格中记录的每组工作电压和工作频率及cpu的当前工作电压和当前工作频率确定cpu的目标工作电压和目标工作频率时,可以是:

当比较结果为所述cpu负载大于所述第二dvfs表格中的cpu负载上阈值时,则将在所述第二dvfs表格中记录的比当前工作电压和当前工作频率大的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率。确定的所述cpu的目标工作电压和目标工作频率对应的第二dvfs表格中的组与当前工作电压和当前工作频率对应的第二dvfs表格中的组可以是相邻的,也可以是不相邻的。

当比较结果为所述cpu负载小于所述第二dvfs表格中的cpu负载下阈值时,则将在所述第二dvfs表格中记录的比当前工作电压和当前工作频率小的工作电压和工作频率确定为目标工作电压和目标工作频率。确定的所述cpu的目标工作电压和目标工作频率对应的第二dvfs表格中的组与当前工作电压和当前工作频率对应的第二dvfs表格中的组可以是相邻的,也可以是不相邻的。

实施例4:

为了确保确定的cpu的目标工作电压和目标工作频率为该电子设备的最优功耗,在上述各实施例的基础上,在本发明实施例中,所述根据比较结果、第二dvfs表格中记录的每组工作电压和工作频率及cpu的当前工作电压和当前工作频率确定cpu的目标工作电压和目标工作频率包括:

当比较结果为所述cpu负载大于所述第二dvfs表格中的cpu负载上阈值时,根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率大;

当比较结果为所述cpu负载小于所述第二dvfs表格中的cpu负载下阈值时,根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率小。

在本发明实施例中,所述当比较结果为所述cpu负载大于所述第二dvfs表格中的cpu负载上阈值时,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率之前,所述方法还包括:

判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最大工作电压和最大工作频率;如果是,则将当前工作电压和工作频率确定为cpu的目标工作电压和目标工作频率;如果否,则进行接下来的步骤。

在本发明实施例中,第二dvfs表格中包含至少一组工作电压和工作频率,当cpu的当前工作电压和当前工作频率是所述第二dvfs表格中的记录的最大工作电压和最大工作频率时,则说明该电子设备的当前工作电压和当前工作频率已经调整到最大值,则不能再把cpu的目标工作电压和目标工作频率调整到更大,所以将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率。如果cpu的当前工作电压和当前工作频率不是所述第二dvfs表格中的记录的最大工作电压和最大工作频率,则可以根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率大。

在本发明实施例中,当比较结果为所述cpu负载小于所述第二dvfs表格中的cpu负载下阈值时,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率之前,所述方法还包括:

判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最小工作电压和最小工作频率;如果是,则将当前工作电压和工作频率确定为cpu的目标工作电压和目标工作频率;如果否,则进行接下来的步骤。

在本发明实施例中,第二dvfs表格中包含至少一组工作电压和工作频率,当cpu的当前工作电压和当前工作频率是所述第二dvfs表格中的记录的最小工作电压和最小工作频率时,则说明该电子设备的当前工作电压和当前工作频率已经调整到最小值,则不能再把cpu的目标工作电压和目标工作频率调整到更小,所以将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率。如果cpu的当前工作电压和当前工作频率不是所述第二dvfs表格中的记录的最小工作电压和最小工作频率,则可以根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率小。

如图2c所示的第二dvfs表格示意图,cpu上阈值为80%,cpu下阈值为45%,所述第二dvfs表格中记录着每组工作电压和工作频率,例如,工作频率为1300000hz与工作电压为1.25v为一组,工作频率为1200000hz与工作电压为1.23v为一组,工作频率为1100000hz与工作电压为1.20v为一组,,工作频率为1000000hz与工作电压为1.15v为一组,工作频率为800000hz与工作电压为1.10v为一组。在根据所述第二dvfs表格确定cpu的目标工作电压和目标工作频率时,首先确定cpu的当前工作电压和当前工作频率,将获取的cpu负载与所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值进行比较。

如果,所述cpu负载位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,则将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率,例如所述当前工作电压为1.20v,当前工作频率为1100000hz,所述cpu负载为50%,则即cpu的目标工作电压为1.20v,目标工作频率为1100000hz。

如果,所述cpu负载小于所述第二dvfs表格中的cpu负载下阈值,判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最小工作电压和最小工作频率;如果是,则将当前工作电压和工作频率确定为cpu的目标工作电压和目标工作频率;如果否,则根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率小。例如,所述cpu负载为40%,所述cpu的当前工作电压为1.20v,当前工作频率为1100000hz,所述当前工作电压和当前工作频率不是所述第二dvfs表格中的记录的最小工作电压和最小工作频率,则确定所述当前工作电压为1.20v,当前工作频率为1100000hz对应的组,将与所述组相邻的且工作电压和工作频率较当前工作电压和当前工作频率小组的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,则所述目标工作电压为1.15v,目标工作频率为1000000hz。例如,所述cpu负载为40%,所述cpu的当前工作电压为1.10v,当前工作频率为800000hz,所述当前工作电压和当前工作频率是所述第二dvfs表格中的记录的最小工作电压和最小工作频率,则将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率,则所述目标工作电压为1.15v,目标工作频率为1000000hz。

如果,所述cpu负载大于所述第二dvfs表格中的cpu负载上阈值,判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最大工作电压和最大工作频率;如果是,则将当前工作电压和工作频率确定为cpu的目标工作电压和目标工作频率;如果否,则根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率大。例如,所述cpu负载为90%,所述cpu的当前工作电压为1.20v,当前工作频率为1100000hz,所述当前工作电压和当前工作频率不是所述第二dvfs表格中的记录的最大工作电压和最大工作频率,则确定所述当前工作电压为1.20v,当前工作频率为1100000hz对应的组,将与所述组相邻的且工作电压和工作频率较当前工作电压和当前工作频率大组的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,则所述目标工作电压为1.20v,目标工作频率为1100000hz。例如,所述cpu负载为90%,所述cpu的当前工作电压为1.25v,当前工作频率为1300000hz,所述当前工作电压和当前工作频率是所述第二dvfs表格中的记录的最大工作电压和最大工作频率,则将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率,则所述目标工作电压为1.25v,目标工作频率为1300000hz。

图3为本发明实施例提供的一种dvfs过程示意图,该过程包括以下步骤:

s301:接收工作时钟设置信息,其中所述工作时钟设置信息中包含视频编码器的工作时钟的最高频率和ddr的工作时钟的最高频率,将所述视频编码器的工作时钟设置在对应的最高频率上,和将所述ddr的工作时钟设置在对应的最高频率上。

s302:当处于视频编码场景时,获取视频缓冲利用率和cpu负载,判断所述视频缓冲利用率是否大于设定的阈值,其中,所述视频缓冲利用率为已经编码的视频占用的存储容量与可供编码的视频环形缓冲区域的总的存储容量的比值,如果是,则执行s303,如果否,则执行s304。

s303:根据获取的所述cpu负载以及预先确定的第一dvfs表格,确定cpu的目标工作电压和目标工作频率。

s304:比较所述cpu负载与第二dvfs表格中的cpu负载上阈值和cpu负载下阈值的大小,如果所述cpu负载位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,则执行s305,如果所述cpu负载大于所述第二dvfs表格中的cpu负载上阈值,则执行s306,所述cpu负载小于所述第二dvfs表格中的cpu负载下阈值,则执行s307。

s305:将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率。

s306:判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最大工作电压和最大工作频率,如果是,则执行s305,如果否,则执行s308。

s307:判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最小工作电压和最小工作频率,如果是,则执行s305,如果否,则执行s309。

s308:根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率大。

s309:根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率小。

s310:根据确定的cpu的目标工作电压和目标工作频率进行工作。

图4为本发明实施例1提供的一种dvfs装置结构图,所述装置包括:

获取判断模块41,用于当处于视频编码场景时,获取视频缓冲利用率和cpu负载,判断所述视频缓冲利用率是否大于设定的阈值,其中,所述视频缓冲利用率为已经编码的视频占用的存储容量与可供编码的视频环形缓冲区域的总的存储容量的比值;

第一确定模块42,用于当获取判断模块的判断结果为是时,根据获取的所述cpu负载以及预先确定的第一dvfs表格,确定cpu的目标工作电压和目标工作频率;

第二确定模块43,用于当获取判断模块的判断结果为否时,根据获取的所述cpu负载以及预先确定的第二dvfs表格,确定cpu的目标工作电压和目标工作频率,其中所述第二dvfs表格中的cpu负载下阈值比第一dvfs表格中的cpu负载下阈值大;

工作模块44,用于根据确定的cpu的目标工作电压和目标工作频率进行工作。

图5为本发明实施例提供的一种dvfs装置结构图,在图4的基础上,所述装置还包括:

接收模块51,用于接收工作时钟设置信息,其中所述工作时钟设置信息中包含视频编码器的工作时钟的最高频率和双倍率同步动态随机存储器ddr的工作时钟的最高频率;

设置模块52,用于将所述视频编码器的工作时钟设置在对应的最高频率上,和将所述ddr的工作时钟设置在对应的最高频率上。

所述第二确定模块43,具体用于将所述cpu负载与所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值进行比较;如果所述cpu负载位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,则将cpu的当前工作电压和当前工作频率确定为cpu的目标工作电压和目标工作频率;如果所述cpu负载未位于所述第二dvfs表格中的cpu负载上阈值和cpu负载下阈值范围内,根据比较结果、第二dvfs表格中记录的每组工作电压和工作频率及cpu的当前工作电压和当前工作频率确定cpu的目标工作电压和目标工作频率。

所述第二确定模块43,具体用于当比较结果为所述cpu负载大于所述第二dvfs表格中的cpu负载上阈值时,根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率大;当比较结果为所述cpu负载小于所述第二dvfs表格中的cpu负载下阈值时,根据cpu的当前工作电压和cpu的当前工作频率对应的第二dvfs表格中的组,将与所述组相邻的组中的工作电压和工作频率确定为cpu的目标工作电压和目标工作频率,其中,所述相邻的组中的工作电压和工作频率较当前工作电压和当前工作频率小。

所述装置还包括:

判断模块53,用于判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最大工作电压和最大工作频率;

所述第二确定模块43,还用于当判断模块的判断结果为是时,将当前工作电压和工作频率确定为cpu的目标工作电压和目标工作频率;

所述判断模块53,还用于判断cpu的当前工作电压和当前工作频率是否为所述第二dvfs表格中的记录的最小工作电压和最小工作频率;

所述第二确定模块43,还用于当判断模块的判断结果为是时,将当前工作电压和工作频率确定为cpu的目标工作电压和目标工作频率。

本发明实施例公开了一种dvfs方法及装置,所述方法包括:当处于视频编码场景时,获取视频缓冲利用率和cpu负载,判断所述视频缓冲利用率是否大于设定的阈值,其中,所述视频缓冲利用率为已经编码的视频占用的存储容量与可供编码的视频环形缓冲区域的总的存储容量的比值;如果是,则根据获取的所述cpu负载以及预先确定的第一dvfs表格,确定cpu的目标工作电压和目标工作频率;如果否,则根据获取的所述cpu负载以及预先确定的第二dvfs表格,确定cpu的目标工作电压和目标工作频率,其中所述第二dvfs表格中的cpu负载下阈值比第一dvfs表格中的cpu负载下阈值大;根据确定的cpu的目标工作电压和目标工作频率进行工作。由于在本发明实施例中,当获取的视频缓冲利用率大于设定阈值时,获取的cpu的负载也会较大,则可以通过预先确定的第一dvfs表格确定cpu的目标工作电压和目标工作频率。当获取的视频缓冲利用率不大于设定阈值时,获取的cpu的负载也会较小,一般会处于第一dvfs表格的下阈值和第二dvfs表格的下阈值范围之间,此时可以通过预先确定的第二dvfs表格确定cpu的目标工作电压和目标工作频率,这种方式确定的cpu的目标工作电压和目标工作频率较仅通过第一dvfs表格确定的cpu的目标工作电压和目标工作频率更小,从而达到降低功耗的目的。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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