CN112005218B - 一种图像处理器的功率分配的方法、装置及*** - Google Patents
一种图像处理器的功率分配的方法、装置及*** Download PDFInfo
- Publication number
- CN112005218B CN112005218B CN201880092619.6A CN201880092619A CN112005218B CN 112005218 B CN112005218 B CN 112005218B CN 201880092619 A CN201880092619 A CN 201880092619A CN 112005218 B CN112005218 B CN 112005218B
- Authority
- CN
- China
- Prior art keywords
- power
- image processor
- preset
- frame rate
- image
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000001514 detection method Methods 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims abstract description 9
- 230000015654 memory Effects 0.000 claims description 66
- 230000006870 function Effects 0.000 claims description 57
- 238000005259 measurement Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 17
- 230000003247 decreasing effect Effects 0.000 claims description 11
- 238000005315 distribution function Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 6
- 230000007246 mechanism Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3218—Monitoring of peripheral devices of display devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3265—Power saving in display device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请实施例公开了一种图像处理器的功率分配的装置、***及方法,在该装置中,包括:帧率检测模块,用于检测当前待显示的图像数据的帧率;功率分配模块,用于:判断所述帧率是否低于预设帧率阈值;若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;若确定所述图像处理器达到所述功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。采用本申请,可提升设备的图像显示效果。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种图像处理器的功率分配的方法、装置及***。
背景技术
随着图像处理技术的不断发展,各种设备如移动终端、计算机和服务器等的图像处理能力也得到了极大的提升。从而可以在游戏、高清视频播放或图像编辑及绘图等需要进行大量图像处理的应用上为用户提高更好的使用体验。例如,通信技术的快速发展和移动终端的暴发式增长,使得移动终端如手机或平板电脑等在用户的生活、工作、娱乐等方面可提供越来越多的帮助。这也就对移动终端的性能要求越来越高。尤其在娱乐方面,基于移动终端的便利性和用户时间的碎片化,越来越多的用户使用移动终端来玩游戏或进行高清视频播放等。
由于移动终端尺寸较小,运行大型游戏应用时容易产生发热的问题,因此不得不对移动终端进行适度的温度控制,如降低***的总功率输出以使得移动终端的温度降低。但是***的总输出功率降低后可能会导致与游戏运行效果紧密相关的图像处理器(Graphic Processor Unit,GPU)处于功率瓶颈状态即输入功率较低使得GPU无法满足游戏应用流畅运行的需求,从而使得游戏应用运行时的帧率降低甚至出现卡顿,导致游戏应用运行不畅,用户的游戏体验较差,类似这种情况在其他设备上同样也非常常见。并且不仅限于游戏,对于其他需要消耗图像处理器的应用,类似问题也会存在。
发明内容
本申请实施例所要解决的技术问题在于,提供一种图像处理器的功率分配的装置、***及方法,以期提升图像显示效果。
第一方面,本申请的实施例提供了一种图像处理器的功率分配的装置,可包括:帧率检测模块,用于检测当前待显示的图像数据的帧率;功率分配模块,用于:判断所述帧率是否低于预设帧率阈值;若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;若确定所述图像处理器达到所述功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。该方案能够合理进行功率重新分配,提升图像处理器的性能。
在一种可能的实现方式中,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。可选地,该预设功率上限由传感器采集的装置所在的电池温度、***温度或单板温度确定。该方案能够在总***功率受到限制时重分配功率以缓解图像处理器的所述功率瓶颈状态。
在一种可能的实现方式中,所述其他模块包括控制处理器、其他处理器或存储器中的至少一个。该方案可以在不同器件之间进行功率重新分配以平衡***性能。
在一种可能的实现方式中,所述功率分配模块在判断图像处理器是否达到功率瓶颈状态时,具体用于:比较所述图像处理器的边界测量bound measure值与预设阈值;当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;其中,所述边界测量值是用于衡量所述图像处理器的负载状态的参数。该方案可以与帧率检测相结合,进一步准确确定图像处理器达到功率瓶颈状态。
在一种可能的实现方式中,所述装置还包括:信息保存模块,用于在确定所述图像数据的显示处于卡顿状态时,记录卡顿场景信息;其中,所述卡顿场景信息包括所述图像处理器驱动程序的开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。利用该方案保存的卡顿场景信息有助于研发人员对卡顿场景进行分析.
在一种可能的实现方式中,所述装置还包括:卡顿场景信息保存开关模块,用于接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭所述信息保存模块。
在一种可能的实现方式中,其特征在于,所述装置还包括:智能功率分配开关模块,用于接收用户输入的智能功率分配开关指令,根据所述智能功率分配开关指令的指示,开启或关闭所述功率分配模块。
在一种可能的实现方式中,其特征在于,所述功率分配模块具体用于:根据预设的功率调整量增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述其他模块的功率;或者根据预设的功率调整函数的取值增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述其他模块的功率。
在一种可能的实现方式中,所述功率分配模块还用于:在增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器和所述其他模块的功率分配至初始值。采用该方案后,一旦功率瓶颈状态解除,则***恢复为原始状态。
第二方面,本申请的实施例提供了一种图像处理器的功率分配的***,可包括:图像处理器,用于进行图像处理;控制处理器,用于:检测当前待显示的图像数据的帧率;判断所述帧率是否低于预设帧率阈值;若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;若确定所述图像处理器达到所述功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。
在一种可能的实现方式中,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。可选地,该预设功率上限由传感器采集的装置所在的电池温度、***温度或单板温度确定。
在一种可能的实现方式中,所述其他模块包括所述控制处理器、其他处理器或存储器中的至少一个。
在一种可能的实现方式中,所述控制处理器具体用于:比较所述图像处理器的边界测量bound measure值与预设阈值;当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;其中,所述边界测量值是用于衡量所述图像处理器的负载状态的参数。
在一种可能的实现方式中,所述***还包括:存储器,用于在所述控制处理器确定所述图像数据的显示处于卡顿状态时,记录卡顿场景信息;其中,所述卡顿场景信息包括所述图像处理器驱动程序在所述卡顿状态下,开放式图像接口中应用程序编程接口OpenGLAPI的执行时间、硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。
可选地,该存储器或装置中的另一存储器,用于存储控制处理器的驱动软件代码指令,该指令,用于驱动控制处理器执行之前提到的各类运行功能。
在一种可能的实现方式中,所述控制处理器还用于:接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭记录卡顿场景信息的功能。
在一种可能的实现方式中,所述控制处理器还用于:接收用户输入的智能功率分配开关指令,根据所述智能功率开关指令的指示,开启或关闭对所述图像处理器进行智能功率分配的功能。
在一种可能的实现方式中,所述控制处理器具体用于:根据预设的功率调整量增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者根据预设的功率调整函数的取值增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
在一种可能的实现方式中,所述控制处理器还用于:在增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器和所述其他模块的功率分配至初始值。
第三方面,本申请的实施例提供了一种图像处理器的功率分配的方法,可包括:当应用程序运行时,检测当前待显示的图像数据的帧率;若所述帧率低于预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;若所述图像处理器达到功率瓶颈状态,则动态增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。
在一种可能的实现方式中,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。可选地,该预设功率上限由传感器采集的装置所在的电池温度、***温度或单板温度确定。
在一种可能的实现方式中,所述其他模块包括控制处理器和存储器。
在一种可能的实现方式中,所述判断图像处理器是否达到功率瓶颈状态,包括:根据对所述图像处理器的边界测量bound measure值与预设阈值的比较结果,判断所述图像处理器是否达到功率瓶颈状态;当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;当所述边界测量值未达到所述预设阈值时,确定所述图像处理器未达到功率瓶颈状态;其中,所述边界测量值根据所述图像处理器驱动程序中读取的电压数据和频率数据确定。
在一种可能的实现方式中,当确定所述图像数据的显示处于卡顿状态时,还包括:记录卡顿场景信息;其中,所述卡顿场景信息包括所述图像处理器驱动程序在所述卡顿状态下,开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数HardwareCounter信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。
在一种可能的实现方式中,所述方法还包括:接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭记录卡顿场景信息的功能。
在一种可能的实现方式中,所述方法还包括:接收用户输入的智能功率分配开关指令,根据所述智能功率开关指令的指示,开启或关闭对所述图像处理器进行智能功率分配的功能。
在一种可能的实现方式中,其特征在于,所述动态增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率,包括:根据预设的功率调整量动态增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者根据预设的功率调整函数的取值动态增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
在一种可能的实现方式中,所述方法还包括:当达到功率瓶颈状态的所述图像处理器解除功率瓶颈状态达到预设时间之后,动态还原所述图像处理器和所述其他模块的功率分配至初始值。
第四方面,本申请的实施例提供了一种图像处理器的功率分配的装置,可包括:处理器、存储器和总线,所述处理器和存储器通过总线连接,其中,所述存储器用于存储一组程序代码,所述处理器用于调用所述存储器中存储的程序代码,执行本申请实施例第一方面或第一方面任一实现方式中的步骤。可选地,该装置可以进一步包括图像处理器。
第五方面,本申请的实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,实现上述第三方面或第三方面的任意可能的实现方式中的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本发明实施例提供的一种图像处理器的功率分配的***框架示意图;
图2为本发明实施例提供的一种图像处理器的功率分配的装置的组成示意图;
图3为本发明实施例提供的帧率检测模块的组成示意图;
图4为本发明实施例提供的一种智能功率调整机制的结构示意图;
图5为本发明实施例提供的一种图像处理器的功率分配的方法的流程示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请的实施例进行描述。本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参见图1,图1为本发明实施例提供的一种功率分配的***框架示意图;该***框架中可包括:图像处理器10、控制处理器20和存储器30。其可以应用在大型游戏运行、高清视频播放或其他需要进行复杂的图像渲染处理的场景下。该***可以包括在一个设备中,该设备可以是移动终端,如手机、平板电脑或可穿戴设备,也可以是台式电脑、服务器或车载设备等其他设备。该***框架可以是***芯片(System-on-a-Chip,SoC),或者被视为一个芯片。
其中,图像处理器10(Graphic Processing Unit,GPU)是例如计算机或移动终端等设备中的显卡的最重要组成部分,它决定了设备的图像处理能力和图像加速性能。在本申请实施例中,主要以移动终端如智能手机或平板电脑中的GPU为例进行说明。目前智能手机屏幕越来越大,***越来越华丽,游戏特效越来越眩目,传统手机仅依靠中央处理器(Central Processing Unit,CPU)进行图像处理的方式已经不能满足现今智能手机发展的需要。随着近几年智能手机的高速发展,三维(Three-dimensional,3D)加速芯片的引入为智能机的娱乐性注入了强大的生命力。有了3D加速芯片,可以流畅地运行各种3D游戏和3D应用程序。图像处理器10可以负责必要的3D处理,也可以将至少部分图像显示功能从CPU那里接管过来,并且还选择性进一步提供了视频播放、视频录制和照相时的辅助处理,使得CPU被大大解放,可以专心地处理纯指令,而不再需要去负责繁重的图像处理任务。从而使得手机***的3D性能得到极大的提升。在运行大型游戏应用程序时,图像处理器10会产生大量的热量,现阶段主要通过控制包括图像处理器10在内的***的总输出功率来实现智能手机的温度控制。
控制处理器20,是设备的控制中心,可以执行各种应用程序,读取或调用其他模块(如图像处理器10、存储器30等)采集或保存的数据进行处理和输出,实现对其他模块的管理和控制。其可以是中央处理器,还可以是其他类型处理器,如数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、微处理器或者微控制器等。在本申请实施例中,主要以移动终端如智能手机或平板电脑中的CPU为例进行说明。CPU是移动终端的控制中枢***,也是逻辑部分的控制中心。其可以通过运行存储器30内的软件及调用存储器30内的数据库,达到控制目的。CPU可以具备一个或一个以上的核心,如比较常见的双核处理器、四核处理器甚至八核处理器等。为了降低移动终端功耗,CPU包括大核和小核,当用户运行不同的应用程序时,可以根据应用程序的性能需求及终端功耗的考虑来选择运行应用程序所使用的核心。
存储器30,可以包括掉电易失性存储器如随机存取存储器(RAM)、或非掉电易失性存储器如只读存储器(ROM)或闪存(Flash Memory)等,也可以包括各种缓存,如先进先出(FIFO)存储器或先进后出(FILO)存储器。其可以向控制处理器20提供指令和数据。以移动终端为例,存储器30可用于移动终端运行时加载操作***和应用软件,缓存CPU要处理的数据和指令,也可以用于永久性的存储所述操作***和应用软件。
结合到本申请实施例中,图像处理器10,可用于进行图像处理;例如,可以对各种应用程序待显示的图像数据进行处理。所述应用程序包括游戏应用、视频播放应用或者是其他需要进行大量图像处理的应用等。
控制处理器20,可用于:检测当前待显示的图像数据的帧率;判断所述帧率是否低于预设帧率阈值;若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;若确定所述图像处理器10达到所述功率瓶颈状态,则增加所述图像处理器10的功率,并降低与所述显示相关的其他模块的功率,相当于执行的功率重新分配。可选地,所述图像处理器10的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。这样可以确保整个***工作的稳定性以及进行良好的设备温度控制管理。可选地,所述其他模块可以包括但不限于所述控制处理器10、其他处理器或存储器30中的至少一个。该卡顿状态即是所述帧率低于所述预设帧率阈值时的图像数据的显示状态,此时与显示有关的帧率被认为过低以至于显示的图像不够流畅。但是造成这种不流畅的原因可能很多,其有可能但不一定是由于图像处理器造成,为了进一步准确定位原因,需要进一步判断图像处理器是否达到功率瓶颈状态。通过两步判断法,能够准确识别卡顿出现的原因,合理实现功率重新分配或调整。
需要说明的是,上述帧率检测、卡顿状态判断、图像处理器10功率瓶颈状态判断、功率调整等功能的实现可以由控制处理器20来实现。该控制处理器20可以包括CPU,如运行操作***的CPU,该控制处理器20也可以包括运行操作***的CPU之外的其他控制器,例如在安卓(Android)***中,可以由CPU来运行安卓***和各种应用程序,单独配置一个其他的处理器来实现上述控制处理器20功能,本申请不作任何限定。
在判断图像处理器10是否处于功率瓶颈状态时,所述控制处理器20具体用于:比较所述图像处理器10的边界测量bound measure值与预设阈值;当所述边界测量值达到所述预设阈值时,确定所述图像处理器10达到功率瓶颈状态;当所述边界测量值没有达到所述预设阈值时,可以认为所述图像处理器10没有达到功率瓶颈状态,这样也就无需进行后续的功率调整;其中,所述边界测量值是用于衡量所述图像处理器10的负载状态的参数。边界测量值可以根据图像处理器10的驱动程序获取图像处理器10的工作频率、工作电压、工作电流或工作时间中的至少一种数据计算得到,例如是根据工作频率、工作电压、工作电流和工作时间进行综合计算得到的参数值。上述数据可以由控制处理器20从图像处理器10获取得到,然后根据这些数据计算边界测量值。
为了便于研发人员对卡顿场景进行分析。控制器处理器20可以在确定所述图像数据的显示处于卡顿状态时,将卡顿场景信息记录到存储器30或其他存储器中;其中,所述卡顿场景信息可以包括但不限于所述图像处理器10驱动程序在所述卡顿状态下,图像处理器10的驱动软件程序的开放式图像接口中应用程序编程接口OpenGL API的执行时间、图像处理器10的硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGLDraw Call。
可选地,在记录卡顿场景信息时,可以记录当前帧的信息,也可以记录包括当前帧在内的前n帧的信息,n为大于0的整数上述卡顿场景信息可以由控制器处理器20从图像处理器10获取并保存到存储器30或其他存储器上,也可以由控制处理器20向图像处理器10和存储器30或其他存储器发送信息存储指令,指示图像处理器10将上述数据输出到存储器30或其他存储器进行保存。
通过在控制处理器20上增加卡顿场景信息记录的功能,可以在出现卡顿的情况时,记录卡顿状态下图像处理器10驱动程序的相关信息以及出现的具体画面,利于开发人员提取卡顿数据进行分析,快速定位问题所在,进一步优化驱动和画面显示,有效的帮助开发人员解决卡顿问题。
可选地,为了便于灵活使用卡顿场景信息记录功能和智能功率分配功能,可以配置相应的开关来打开或关闭相应的功能,此时,所述控制处理器20还可以用于:接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭记录卡顿场景信息的功能。以及所述控制处理器20还可以用于:接收用户输入的智能功率分配开关指令,根据所述智能功率开关指令的指示,开启或关闭对所述图像处理器进行智能功率分配的功能。
在进行功率调整时,所述控制处理器20可用于:根据预设的功率调整量增加所述图像处理器10的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者根据预设的功率调整函数的取值增加所述图像处理器10的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
此外,为了平衡各个模块之间的功率分配,可选地,所述控制处理器20还可以用于:在增加所述图像处理器10的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器10和所述其他模块的功率分配至初始值。此处的预设时间可以由设备出厂时定义或给出若干选项供用户选择,或者也可以由用户自定义,本申请实施例不作任何限定。
需要说明的是,当显示出现卡顿时,说明与显示的相关模块性能不足或功率不足。由于在温控场景下***总输出功率可能降低,而与显示相关性较强的模块即为图像处理器10。因此,此时可以优先检测图像处理器10的功率状况,判断其是否达到功率瓶颈状态。如果其达到了功率瓶颈状态则增加图像处理器10的功率并降低其他模块的功率,如果图像处理器10没有出现功率瓶颈状态,则还可以检测与显示相关的其他模块的功率状况。事实上,控制器处理器20或存储器30也可能会出现功率瓶颈状态,这样也会对造成显示卡顿的情况发生,因此,在检测到控制器处理器20达到功率瓶颈状态时,可以增加控制器处理器20的功率,并降低其他模块的功率分配。同理,若检测到存储器30达到功率瓶颈状态,则可以增加所述存储器30的功率,并降低其他模块的功率分配。
在本申请实施例中,通过配置预设帧率阈值检测显示的卡顿状态并进一步检测图像处理器10的功率瓶颈状态,在图像处理器10处于功率瓶颈状态时增加其功率并降低其他模块的功率分配,相当于执行的功率重新分配。本实施例无需增加***总输出功率,降低了能耗比,减少了功率浪费,可以快速而有效的检测出显示卡顿场景,并通过提升图像处理器10功率来解决卡顿问题,从而提升了应用程序的平均帧率和流畅度,利于用户获得良好的应用程序使用体验。由于造成卡顿状态的原因很多,即便出现卡顿,可通过进一步检测图像处理器10是否处于功率瓶颈状态来提高识别卡顿原因的准确性,以便针对性做调整。
下面以控制处理器20为CPU并且运行安卓***(Android)为例,结合图2-图4对本申请实施例所述的图像处理器的功率分配的装置进行详细介绍,其主要功率分配功能可以由CPU来实现。可以理解功率分配也可以由运行安卓***的CPU之外的其他处理器来实现,本实施例仅仅是个举例。该实现功率分配的装置可以由软件实现并运行在所述CPU上。在进行功率分配之前,该实现功率分配的装置可以获取图像处理器10工作时的一些数据来对图像处理器10的工作状态进行判断,并根据判断结果对图像处理器10的功率进行调整。可选地,其功能可以包括但不限于进行应用程序运行时,待显示数据的帧率检测、卡顿场景识别、图像处理器10瓶颈状态检测,智能功率分配(Intelligent Power Allocation,IPA)等。可选地,还可以用于卡顿场景信息记录,并配置相应的开关模块来开启和关闭卡顿场景信息记录功能和IPA功能。IPA技术能够监测整个***,如SoC当前温度,再根据CPU中的大核、小核和图像处理器10的功率水平动态地分配每个部分的功率。该技术将通过算法预估每部分的功率,衡量它们是否处在额定性能水平范围内。随后,对超出的性能进行调整,以保持SoC处在正常的热量水平。在本申请实施例中,通过对IPA技术进行进一步的改进,可以显著的解决在温控场景下发生的显示画面卡顿问题。
请参见图2,为本发明实施例提供的一种图像处理器的功率分配的装置的组成示意图,该装置可以由CPU运行软件驱动指令所形成,具体包括:帧率检测模块100,其功能可以通过CPU实现,其功能对应的程序可运行在CPU上,用于检测当前待显示的图像数据的帧率。该装置进一步包括功率分配模块200,其功能同样可以通过CPU实现,其功能对应的程序可运行在CPU上。可用于:判断所述帧率是否低于预设帧率阈值;若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态,若所述帧率不低于所述预设帧率阈值则确定所述图像数据的显示不处于卡顿状态且不作其他操作;响应于所述卡顿状态,判断图像处理器10是否达到功率瓶颈状态;若确定所述图像处理器10达到所述功率瓶颈状态,则增加所述图像处理器10的功率,并降低与所述显示相关的其他模块的功率。如果确定所述图像处理器10未达到所述功率瓶颈状态,则不执行所述调整即维持原来的功率分配。
以安卓(Android)***和运行游戏应用程序的场景为例,帧率检测模块100可以包括如图3所示的各个部件。图3为帧率检测模块100的组成示意图。其中SurfaceFlinger&BufferQueue101中的SurfaceFlinger是运行在Android***的System进程中的一个服务程序,负责绘制Android应用程序的交互界面;SurfaceFlinger&BufferQueue101中的BufferQueue是Android用户界面***的服务程序,驻留在SurfaceFlinger进程中进行服务;FpsConuter102是一个帧率检测程序;IMonitor103是一个手机状态监控程序,可以监控手机温度、性能、或帧率等状态数据;Systrace104是Android的性能分析工具;帧率检测模块100外部的GPU DDK105是图像处理器10绘制渲染所需的驱动软件程序,运行在图像处理器10上;在本申请实施例中,FpsConuter102可以从存储器30或其他存储器上存储的配置文件中获取应用程序白名单和预设帧率阈值,并通过给定的预设帧率阈值来判断当前程序是否处于卡顿状态,这是由于在Android中,被显示的每一帧的更新都会调用BufferQueue服务,因此可以在BufferQueue服务基础上增加帧率检测程序FpsCounter102。FpsCounter102通过调用BufferQueue模块记录的显示图像的帧被调用次数来统计待显示的图像数据的帧率,再调用IMonitor103接口来保存Systrace文件,FpsConuter102还可以在显示卡顿时进行截屏,以上操作通过发送指示消息给IMonitor103,并通过IMonitor103将需要保存Systrace文件或截屏的指示发送给Systrace104。帧率检测模块100还可以从GPU DDK105上获取关于图像处理器10工作状态的一些数据来保存到Systrace文件,Systrace文件可以输出至存储器30或直接输出至***外部的洽谈存储器或其他设备,该设备可运行一些测试工具如HiZee(一种游戏测试工具),HiZee可以离线分析提取Systrace数据,并给出报表供用户查看。
可选地,预设帧率阈值可以是由终端厂商预先配置或由终端厂商预先配置若干选项供用户选择或由用户自定义设置,本申请实施例不作任何限定。且对于不同的应用程序可以配置相同或不同的帧率阈值,本申请实施例同样不作任何限定。以游戏应用程序为例,用户可以预先设定所有游戏应用程序的帧率阈值为显示效果较佳的30帧/秒,也可以单独为游戏画面较好的游戏应用A设置第一帧率阈值60帧/秒,并单独为游戏操作性较好的游戏应用程序B设置第二帧率阈值30帧/秒。当帧率阈值设置完毕后,会由终端保存上述设置信息在存储器30或其他存储器中的一个配置文件中,当需要使用时直接调用即可。在具体实现时,可以由CPU通过调用BufferQueue的帧调用次数来统计游戏时待显示的图像数据的帧率。
可选地,所述装置还可以包括信息保存模块300和***设置模块400。信息保存模块300和***设置模块400的功能也可以由CPU来实现,上述功能对应的程序可运行在CPU上。信息保存模块300,可用于在确定所述图像数据的显示处于卡顿状态时,记录卡顿场景信息;其中,所述卡顿场景信息包括在所述卡顿状态下,所述图像处理器的驱动程序开放式图像接口(0pen Graphics Library,OpenGL)中应用程序编程接口(ApplicationProgramming Interface,API)即OpenGL API的执行时间、所述图像处理器的硬件计数Hardware Counter的信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。
图2中的保存模块300是一个独立模块。可替换地,保存模块300可以是嵌入在图3的Systrace104中的,此时,图3的Imonitor103和Systrace104可以不是图2中的帧率检测模块100的一部分,而是位于帧率检测模块100之外,此时的Systrace104内部可包括用于保存卡顿场景信息的保存模块300。或者,Systrace104可以等同于是所述保存模块300,其在做性能分析和统计的同时生成Systrace文件,该Systrace文件可包括卡顿场景信息和其他信息,如截屏等。因此,Systrace104进一步将卡顿场景信息保存入存储器30或其他存储器,如***外部存储设备。
其中,OpenGL是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图像程序接口。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图像库。DrawCall是OpenGL的描绘次数;API是一些预先定义的函数,其作用是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,且无需访问源码,或者还可以用于理解某软件或硬件内部工作机制的细节。在进行保存时,卡顿场景信息被由图像处理器10提供给控制处理器20运行所形成的信息保存模块300,信息保存模块300可以把应用程序的执行状态通过调试器保存到Dump文件中。Dump文件是进程的内存镜像。Dump文件可用于给驱动程序编写人员调试驱动程序,这种文件必须用专用工具软件打开,比如使用WinDbg打开。
***设置模块400可用于对***的功能的开关进行设置,其功能可以通过CPU实现,上述功能对应的程序可运行在CPU上,可选地,其可以包括:卡顿场景信息保存开关模块401,用于接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭所述信息保存模块300。***设置模块400还包括智能功率分配开关模块402,用于接收用户输入的智能功率分配开关指令,根据所述智能功率分配开关指令的指示,开启或关闭所述功率分配模块200。
如果当前显示处于卡顿状态,且此时卡顿场景信息保存功能打开,则***会请求iMonitor103进行一次Systrace 104保存操作,图像处理器10将最近若干帧运行时,GPUDDK105中记录的OpenGL API的执行时间、Hardware Counter信息、OpenGL Draw Call等信息写入到Systrace104文件中,以便分析显示卡顿原因。例如,OpenGL API的执行时间过长,Hardware Counter信息中统计的图像处理器10的电压过低或频率过低,OpenGL Draw Call次数过多等都可能引起卡顿,当工程人员查看保存的信息时,便可以根据保存的信息来确定显示卡顿的原因。
当出现显示卡顿之后,便可以由功率分配模块200实现对图像处理器10瓶颈状态的检测以及当图像处理器10处于功率瓶颈状态时,对图像处理器10的功率进行动态调整。具体实现时,可以由CPU来完成上述功能,例如,当CPU判断出现卡顿状态时,可以该由CPU执行图2所示装置的功能,从GPU DDK105读取OpenGL API的执行时间、Hardware Counter信息、OpenGL Draw Call信息并写入到存储器30中进行保存,且可以根据接收到的用户的开关控制指令来开启或关闭相应的功能。
请参见图4,为本申请中智能功率调整机制的结构示意图。其中,竖直虚线右侧为本申请实施例涉及的硬件设备,包括图1所示的控制处理器20,即CPU,以及存储器30和图像处理器10;竖直虚线左侧为本申请实施例涉及的软件管理模块,由类似图2的装置实现。
其中,省电管理程序是一款温控软件,它会根据电池和/或主板的温度高低来改变***总输出功率的大小,并根据权值比如2∶1和***总输出功率来设定各个模块动态调压调频时的最大功率值。因此,在本申请实施例中,所述图像处理器10的功率和所述显示相关的其他模块的功率之和不超过预设功率上限即不会超过***总输出功率。可理解,省电管理程序除了受到温度控制外,还可以受到其他因素控制,如根据用户设置来确定所述预设功率上限,本实施例对此不作限定。下面以温度为考虑温度因素来控制预设功率上限为例作说明。该功率上限可以根据温度变化动态变化。
温度传感器驱动会获取电池温度传感器和主板温度传感器的温度数据,然后输出至省电管理程序,当电池和/或主板的温度较高时,省电管理程序会适当的降低***的总输出功率,即降低总功率上限,并采用常规的功率分配机制按照固定的权重为图像处理器10和CPU分配各自的最大功率,可选地,在功率分配机制中还可以包括为存储器30等其他模块分配最大功率,然后由动态电压频率调整(Dynamic Voltage and Frequency Scaling,DVFS)程序根据分配的最大功率和芯片所运行的应用程序对计算能力的不同需要,动态调节芯片的运行频率和电压(对于同一芯片,频率越高,需要的电压也越高),从而达到节能的目的。可选地,温度传感器驱动还可以提供其他传感器温度数据给省电管理程序以便省电管理程序设置总功率上限。其他温度数据包括但不限于由配置给SoC的温度传感器所采集的SoC温度数据。
DVFS程序是功能调整的执行者,可接受功率分配模块200和省电管理程序的控制。如图4所示,功率分配模块200中功率调整子模块203或省电管理程序用于进行功率调整,即各自输出调整信息,各自的调整信息综合起来形成功率分配机制,并将功率分配机制传输给DVFS程序以便DVFS程序进行具体功率调整。如图4所示,功率分配机制示例性地包括图像处理器10、CPU和存储器30三者的功率。例如,对于功率分配机制而言,省电管理程序用于控制图像处理器10、CPU和存储器30三者的初始功率,通常不超过控制图像处理器10、CPU和存储器30三者的最大功率,或三者初始功率之和不超过最大总功率之和,即***功率上限,功率调整子模块203用于在初始功率基础上进行再次功率调整,即在满足该功率上限基础上做功率重新分配,例如执行IPA。功率调整子模块203可以在适当的时刻,如执行以上功率重新分配的预设时间后将各个器件的功率还原为初始功率。
示例性地,结合图3和图4,当出现显示卡顿的情况时,本申请实施例所述的功率分配模块200会对省电管理程序作用下的常规的功率分配机制进行动态调整。首先,卡顿场景识别子模块201会根据帧率检测模块100提供的帧率信息确定是否出现卡顿,然后在出现卡顿时触发图像处理器10的瓶颈状态检测子模块202对图像处理器10进行检测。在检测过程中,瓶颈状态检测子模块202中的HardWare counter作为图像处理器10数据统计程序,可以获取到图像处理器10驱动中的一些相关数据,如图像处理器10的工作频率、工作电压、工作电流和工作时间等;瓶颈状态检测子模块202中的GPU bound detector作为图像处理器10瓶颈状态检测程序可以根据HardWare counter获取到的数据计算确定图像处理器10的边界测量值,然后将边界测量值与预设阈值进行比较,当预设阈值达到边界测量值时,便可以确定图像处理器10处于功率瓶颈状态。从而可以触发功率调整子模块203中的功率调整程序,来改变常规的功率分配机制中的权重如将2∶1改变为2.5∶0.5。而当所述边界测量值未达到所述预设阈值时,则可以确定所述图像处理器10未达到功率瓶颈状态。
需要说明的是,本申请实施例中的涉及的装置可以使用IPA权重动态调节机制,即将所述装置的功能内嵌到现有的IPA温度控制***之中。会在电池和/主板温度大于门限值的情况下,提高温度采样的频率,此时***总功率上限会被降低。每当温度被采样的同时,获取图像处理器10的功率状态。当图像处理器10处于功率瓶颈状态时,在满足所述功率上限的条件下采用优先图像处理器10的权重比;否则,在满足所述功率上限的条件下可以使用图像处理器10和CPU公平的权重比。IPA监控子程序会以固定的周期更新监控到的主板和/电池温度并检测图像处理器10功率瓶颈状态,一旦发生图像处理器10达到功率瓶颈状态,就动态的改变***总输出功率的分配权值。
可选地,除了直接改变权重的方式之外,也可以直接对各个模块的分配的最大功率值进行调整。例如,可以根据预设的功率调整量动态增加所述图像处理器10的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者可以根据预设的功率调整函数的取值动态增加所述图像处理器10的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
例如,***总输出功率为6000毫瓦,根据常规功率分配机制,图像处理器10初始分配的最大功率为3000毫瓦,CPU初始分配的最大功率为2000毫瓦,预设的调整量可以是500毫瓦,则出现卡顿时,可以将图像处理器10的最大功率调整为3500毫瓦,CPU的最大功率调整为1500毫瓦。当然,此处预设的功率调整量可以是单一的数字,也可以是一个由无规律的多个数字组成的数列,如[500,200,100],则第一次调整时可以按照500毫瓦进行调整,第二次按照200毫瓦为单位进行调整,第三次按照100毫瓦为单位进行调整。
又例如,可以给出预设的功率调整函数如y=1/x,其中,y为功率调整量,x为大于0的变量,其取值顺序及取值范围可以预设,如从0.0001取值到正无穷。根据x的取值可以计算得到功率调整量y的计算结果,然后根据y的计算结果进行分配,x可以与功率调整次数或其他***参数有关。如在第一次调整中x取0.001时y等于1000;在第二次调整中x=0.002时,y=500;在第三次调整中x=0.005时,y=200。通过使用这种减函数的函数值进行功率分配,可以在初始动态分配时先为功率瓶颈状态的模块尽快分配较多的功率以加速解除功率瓶颈状态。
而在增加所述图像处理器10的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还可以还原所述图像处理器10和所述其他模块的功率分配至调整前的初始值。确保整个***功率分配的平滑度。
可选地,在增加功率时,可以通过增加包括时钟频率、工作电压或电流中的至少一项。而在降低功率时,同样可以通过降低包括时钟频率、工作电压或电流中的至少一项来实现。本实施例对具体功率调整方式不做限定。在典型的示例中,如之前提到的图4中DVFS程序可以用于接受功率分配模块200中的功率调整子模块203的控制以作为功率调整和分配的执行者实现增加所述图像处理器10的功率并降低与所述显示相关的其他模块的功率,具体该DVFS程序进行电压和工作频率的缩放。本实施例将DVFS程序作为一个独立模块,在实际实现中,DVFS程序也可以包括在所述功率调整子模块203中,以形成功率分配模块200的一部分。或者,作为一个个可替换实施例,与图4中DVFS程序是软件不同,DVFS的功率调整功能,如电流、电压和工作频率的缩放等功能可以通过一个专用硬件来实现。此时该硬件在功率调整子模块203的控制下作为功率调整或分配的具体执行者,本实施例对此不作限制。
以上智能功率模块200包括的各个子模块或者更进一步的其他软件模块的功能可以由CPU实现,上述功能对应的程序可运行在CPU上。
请参见图5,为本发明实施例提供的一种图像处理器10的功率分配的方法的流程示意图;以移动该终端为例,其中的控制处理器10即为CPU,该CPU除了运行功率分配方法还运行安卓***和其他应用程序,该应用程序需要消耗图像处理器10的计算量。该方法有CPU执行并具体包括如下步骤:S501.检测当前待显示的图像数据的帧率。S502.判断所述帧率是否低于预设帧率阈值。S503.若所述帧率低于预设帧率阈值,则确定所述图像数据的显示处于卡顿状态,否则结束流程。S504.响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态。S505.若所述图像处理器达到功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。如所述图像处理器未达到功率瓶颈状态则结束流程,即不作调整。
该方法所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明请参见前述***、装置或其他实施例中关于这些内容的描述,此处不做赘述。也即是说,本申请的不同实施例中不同技术描述之间可以互相参考。
本领域技术人员可以理解,为了便于说明,本申请实施例中仅示出了一个存储器和处理器。在实际的场景中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等。当存储器数量是多个的时候,多个存储器可以是不同类型的存储器,本申请实施例对此不做限制。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (24)
1.一种图像处理器的功率分配的装置,其特征在于,包括:
帧率检测模块,用于检测当前待显示的图像数据的帧率;
功率分配模块,用于:
判断所述帧率是否低于预设帧率阈值;
若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;
响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;
若确定所述图像处理器达到所述功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率;
所述装置还包括:
信息保存模块,用于在确定所述图像数据的显示处于卡顿状态时,记录卡顿场景信息;
其中,所述卡顿场景信息包括所述图像处理器驱动程序的开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Cal l。
2.根据权利要求1所述的装置,其特征在于,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。
3.根据权利要求1所述的装置,其特征在于,所述其他模块包括控制处理器、其他处理器或存储器中的至少一个。
4.根据权利要求3中所述的装置,其特征在于,所述功率分配模块在判断图像处理器是否达到功率瓶颈状态时,具体用于:
比较所述图像处理器的边界测量值与预设阈值;
当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;
其中,所述边界测量值是用于衡量所述图像处理器的负载状态的参数。
5.根据权利要求1所述的装置,其特征在于,所述装置还包括:
卡顿场景信息保存开关模块,用于接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭所述信息保存模块。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
智能功率分配开关模块,用于接收用户输入的智能功率分配开关指令,根据所述智能功率分配开关指令的指示,开启或关闭所述功率分配模块。
7.根据权利要求6所述的装置,其特征在于,所述功率分配模块具体用于:
根据预设的功率调整量增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述其他模块的功率;或者
根据预设的功率调整函数的取值增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述其他模块的功率。
8.根据权利要求1至7中任一项所述的装置,其特征在于,所述功率分配模块还用于:
在增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器和所述其他模块的功率分配至初始值。
9.一种图像处理器的功率分配的***,其特征在于,包括:
图像处理器,用于进行图像处理;
控制处理器,用于:
检测当前待显示的图像数据的帧率;
判断所述帧率是否低于预设帧率阈值;
若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;
响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;
若确定所述图像处理器达到所述功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率;
所述***还包括:
存储器,用于在所述控制处理器确定所述图像数据的显示处于卡顿状态时,记录卡顿场景信息;
其中,所述卡顿场景信息包括所述图像处理器驱动程序在所述卡顿状态下,开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Cal l。
10.根据权利要求9所述的***,其特征在于,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。
11.根据权利要求9所述的***,其特征在于,所述其他模块包括所述控制处理器、其他处理器或存储器中的至少一个。
12.根据权利要求11所述的***,其特征在于,所述控制处理器具体用于:
比较所述图像处理器的边界测量值与预设阈值;
当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;
其中,所述边界测量值是用于衡量所述图像处理器的负载状态的参数。
13.根据权利要求9所述的***,其特征在于,所述控制处理器还用于:
接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭记录卡顿场景信息的功能。
14.根据权利要求13所述的***,其特征在于,所述控制处理器还用于:
接收用户输入的智能功率开关指令,根据所述智能功率开关指令的指示,开启或关闭对所述图像处理器进行智能功率分配的功能。
15.根据权利要求14所述的***,其特征在于,所述控制处理器具体用于:
根据预设的功率调整量增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者
根据预设的功率调整函数的取值增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
16.根据权利要求9至15任一项所述的***,其特征在于,所述控制处理器还用于:
在增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器和所述其他模块的功率分配至初始值。
17.一种图像处理器的功率分配的方法,其特征在于,包括:
检测当前待显示的图像数据的帧率;
判断所述帧率是否低于预设帧率阈值;
若所述帧率低于预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;
响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;
若所述图像处理器达到功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率;
当确定所述图像数据的显示处于卡顿状态时,还包括:
记录卡顿场景信息;
其中,所述卡顿场景信息包括所述图像处理器驱动程序在所述卡顿状态下,开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Cal l。
18.根据权利要求17所述的方法,其特征在于,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。
19.根据权利要求17所述的方法,其特征在于,所述其他模块包括控制处理器、其他处理器或存储器中的至少一个。
20.根据权利要求19所述的方法,其特征在于,所述判断图像处理器是否达到功率瓶颈状态,包括:
比较所述图像处理器的边界测量值与预设阈值;
当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;
其中,所述边界测量值是用于衡量所述图像处理器的负载状态的参数。
21.根据权利要求17所述的方法,其特征在于,所述方法还包括:
接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭记录卡顿场景信息的功能。
22.根据权利要求21所述的方法,其特征在于,所述方法还包括:
接收用户输入的智能功率开关指令,根据所述智能功率开关指令的指示,开启或关闭对所述图像处理器进行智能功率分配的功能。
23.根据权利要求22所述的方法,其特征在于,所述增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率,包括:
根据预设的功率调整量增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者
根据预设的功率调整函数的取值增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
24.根据权利要求17-23任一项所述的方法,其特征在于,所述方法还包括:
在增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器和所述其他模块的功率分配至初始值。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/085192 WO2019205172A1 (zh) | 2018-04-28 | 2018-04-28 | 一种图像处理器的功率分配的方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112005218A CN112005218A (zh) | 2020-11-27 |
CN112005218B true CN112005218B (zh) | 2024-01-30 |
Family
ID=68294750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880092619.6A Active CN112005218B (zh) | 2018-04-28 | 2018-04-28 | 一种图像处理器的功率分配的方法、装置及*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US11301029B2 (zh) |
CN (1) | CN112005218B (zh) |
WO (1) | WO2019205172A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343710B (zh) * | 2020-02-26 | 2023-04-25 | 维沃移动通信有限公司 | 一种功率调整方法及电子设备 |
CN111405347B (zh) * | 2020-04-23 | 2022-04-29 | 成都极米科技股份有限公司 | 画面显示方法、装置、电子设备及可读存储介质 |
CN112835548A (zh) * | 2021-02-04 | 2021-05-25 | 维沃移动通信有限公司 | 电子设备和显示帧率控制方法 |
US20220317747A1 (en) * | 2021-03-31 | 2022-10-06 | Advanced Micro Devices, Inc. | Power shifting based on bottleneck prediction |
CN113347487B (zh) * | 2021-06-17 | 2022-09-27 | 微微科技有限公司 | 一种自动兼容设备低电量的浏览器序列图视频化方法及终端 |
US11747882B2 (en) * | 2021-10-26 | 2023-09-05 | Dell Products L.P. | Central processor/accelerator power management system |
CN114222084B (zh) * | 2021-12-01 | 2023-05-23 | 联想(北京)有限公司 | 一种控制方法、装置及电子设备 |
CN114911336B (zh) * | 2022-03-17 | 2023-04-07 | 荣耀终端有限公司 | 调整频率的方法、装置、电子设备及可读存储介质 |
WO2023230744A1 (en) * | 2022-05-30 | 2023-12-07 | Qualcomm Incorporated | Display driver thread run-time scheduling |
US20240211014A1 (en) * | 2022-12-27 | 2024-06-27 | Advanced Micro Devices, Inc. | Power-aware, history-based graphics power optimization |
CN115942131B (zh) * | 2023-02-09 | 2023-09-01 | 蔚来汽车科技(安徽)有限公司 | 保障车辆环视功能的方法、座舱***及车辆、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1868211A (zh) * | 2003-03-28 | 2006-11-22 | 微软公司 | 使用图形处理单元加速视频解码 |
CN104115093A (zh) * | 2011-12-15 | 2014-10-22 | 英特尔公司 | 包括多个处理元件之间的功率和性能平衡的用于能效和节能的方法、装置和*** |
CN105190531A (zh) * | 2013-05-09 | 2015-12-23 | 苹果公司 | 空闲显示情况下的存储器功率节省 |
CN106375755A (zh) * | 2016-08-31 | 2017-02-01 | 福建省天奕网络科技有限公司 | 一种视频数据卡顿检测方法及*** |
CN106681833A (zh) * | 2016-12-27 | 2017-05-17 | 宇龙计算机通信科技(深圳)有限公司 | 一种调节cpu频率的方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7812844B2 (en) * | 2004-01-28 | 2010-10-12 | Lucid Information Technology, Ltd. | PC-based computing system employing a silicon chip having a routing unit and a control unit for parallelizing multiple GPU-driven pipeline cores according to the object division mode of parallel operation during the running of a graphics application |
US8284205B2 (en) * | 2007-10-24 | 2012-10-09 | Apple Inc. | Methods and apparatuses for load balancing between multiple processing units |
US20130155081A1 (en) * | 2011-12-15 | 2013-06-20 | Ati Technologies Ulc | Power management in multiple processor system |
US20140002730A1 (en) * | 2012-06-28 | 2014-01-02 | Qualcomm Incorporated | Adaptive frame rate control |
US9128721B2 (en) * | 2012-12-11 | 2015-09-08 | Apple Inc. | Closed loop CPU performance control |
US9589533B2 (en) * | 2013-02-28 | 2017-03-07 | Robert Bosch Gmbh | Mobile electronic device integration with in-vehicle information systems |
US9158358B2 (en) | 2013-06-04 | 2015-10-13 | Qualcomm Incorporated | System and method for intelligent multimedia-based thermal power management in a portable computing device |
EP3019971B1 (en) * | 2013-07-12 | 2020-05-06 | Google LLC | Methods and systems for performance monitoring for mobile applications |
US9940858B2 (en) * | 2016-05-16 | 2018-04-10 | Unity IPR ApS | System and method for assymetric rendering to eyes in augmented reality and virtual reality devices |
CN107463481A (zh) * | 2017-07-26 | 2017-12-12 | 努比亚技术有限公司 | 数据交互方法、移动终端和存储介质 |
-
2018
- 2018-04-28 WO PCT/CN2018/085192 patent/WO2019205172A1/zh active Application Filing
- 2018-04-28 CN CN201880092619.6A patent/CN112005218B/zh active Active
-
2020
- 2020-10-26 US US17/079,917 patent/US11301029B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1868211A (zh) * | 2003-03-28 | 2006-11-22 | 微软公司 | 使用图形处理单元加速视频解码 |
CN104115093A (zh) * | 2011-12-15 | 2014-10-22 | 英特尔公司 | 包括多个处理元件之间的功率和性能平衡的用于能效和节能的方法、装置和*** |
CN105190531A (zh) * | 2013-05-09 | 2015-12-23 | 苹果公司 | 空闲显示情况下的存储器功率节省 |
CN106375755A (zh) * | 2016-08-31 | 2017-02-01 | 福建省天奕网络科技有限公司 | 一种视频数据卡顿检测方法及*** |
CN106681833A (zh) * | 2016-12-27 | 2017-05-17 | 宇龙计算机通信科技(深圳)有限公司 | 一种调节cpu频率的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20210041937A1 (en) | 2021-02-11 |
WO2019205172A1 (zh) | 2019-10-31 |
US11301029B2 (en) | 2022-04-12 |
CN112005218A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112005218B (zh) | 一种图像处理器的功率分配的方法、装置及*** | |
US10628216B2 (en) | I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status | |
CN107851042B (zh) | 使用命令流提示来表征gpu工作负载和电力管理 | |
EP3629163A1 (en) | Load balance scheduling method and device, and computer readable storage medium | |
TW201902226A (zh) | 訊框速率調整方法及圖像處理裝置 | |
US20170262955A1 (en) | Scene-Aware Power Manager For GPU | |
JP2011210265A (ja) | 自動負荷検出に基づく電力管理 | |
TWI533146B (zh) | 虛擬資源調整裝置、方法及儲存其之電腦可讀取紀錄媒體 | |
CN111077979A (zh) | 功耗控制方法、存储介质及电子设备 | |
WO2019024641A1 (zh) | 数据同步方法、装置、存储介质以及电子设备 | |
CN113660173A (zh) | 一种流量控制方法、装置、计算机设备及存储介质 | |
US9983911B2 (en) | Analysis controller, analysis control method and computer-readable medium | |
US20140310723A1 (en) | Data processing apparatus, transmitting apparatus, transmission control method, scheduling method, and computer product | |
CN114419229A (zh) | 图像渲染方法、装置、计算机设备和存储介质 | |
CN105719229B (zh) | 一种基于指令流截取的应用程序透明化的分辨率控制 | |
CN112672405A (zh) | 功耗计算方法、装置、存储介质、电子设备以及服务器 | |
CN110515736B (zh) | 限制后台对象的方法、装置、终端及存储介质 | |
CN114116231A (zh) | 一种数据加载方法、装置、计算机设备及存储介质 | |
CN113595814A (zh) | 消息延迟检测方法、装置、电子设备及存储介质 | |
CN110633003B (zh) | 降低功耗的方法、装置、终端及存储介质 | |
WO2020206703A1 (zh) | 终端控制方法、装置、存储介质及电子设备 | |
CN114546910A (zh) | 访问控制方法、装置、存储介质及电子装置 | |
CN108958829B (zh) | 预加载的资源控制方法、装置、存储介质及终端 | |
TWI768478B (zh) | 適應性調用外部硬體資源的方法 | |
CN112163985B (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 |