本發(fā)明實施例涉及移動終端技術(shù)領(lǐng)域,尤其涉及一種移動終端幀率的控制方法、裝置及移動終端。
背景技術(shù):
隨著移動終端技術(shù)的發(fā)展,各式各樣的移動終端已成為人們生活工作中不可或缺的工具。在安裝有操作系統(tǒng)的移動終端中,移動終端通過不斷刷新顯示畫面來呈現(xiàn)不同時刻下的各種顯示畫面。
在手機(jī)等移動終端中的顯示刷新流程中主要包括畫面繪制操作、畫面合成操作和顯示操作。各應(yīng)用如桌面或視頻等,執(zhí)行繪圖(Render)操作,以分別繪制各自的圖像;待所有應(yīng)用完成Render操作后,系統(tǒng)執(zhí)行合成(Compose)操作,以將各應(yīng)用所繪制的圖像合成為一個顯示幀;將該顯示幀輸出到屏幕上進(jìn)行最終顯示。相關(guān)技術(shù)中移動終端在有幀率調(diào)節(jié)的需求時,幀率的控制方法存在一定缺陷,需要改進(jìn)。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種移動終端幀率的控制方法、裝置及移動終端,可以合理的調(diào)節(jié)移動終端的幀率。
在第一方面,本發(fā)明實施例提供了一種移動終端幀率的控制方法,包括:
獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率;
按照設(shè)定平滑調(diào)節(jié)策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率;
基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率。
在第二方面,本發(fā)明實施例提供了一種移動終端幀率的控制裝置,包括:
幀率獲取模塊,用于獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率;
中間幀率獲取模塊,用于按照設(shè)定平滑調(diào)節(jié)策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率;
幀率調(diào)節(jié)模塊,用于基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率。
在第三方面,本發(fā)明實施例提供了一種移動終端,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機(jī)程序,所述處理器執(zhí)行所述計算機(jī)程序時實現(xiàn)以下步驟:
獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率;
按照設(shè)定平滑調(diào)節(jié)策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率;
基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率。
本發(fā)明實施例通過獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率,按照設(shè)定平滑調(diào)節(jié)策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率,并基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率,可以合理的調(diào)節(jié)移動終端的幀率。
附圖說明
圖1是本發(fā)明一個實施例提供的一種移動終端幀率的控制方法的流程圖;
圖2是本發(fā)明一個實施例提供的一種顯示過程的示意圖;
圖3是本發(fā)明一個實施例提供的Vsync顯示刷新機(jī)制的示意圖;
圖4是本發(fā)明一個實施例提供的一種移動終端幀率的控制方法的流程圖;
圖5是本發(fā)明一個實施例提供的幀率調(diào)節(jié)平滑曲線的示意圖;
圖6是本發(fā)明一個實施例提供的一種移動終端幀率的控制方法的流程圖;
圖7是本發(fā)明一個實施例提供的一種移動終端幀率的控制裝置的結(jié)構(gòu)示意圖;
圖8是本發(fā)明一個實施例提供的一種移動終端的結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明具體實施例作進(jìn)一步的詳細(xì)描述??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部內(nèi)容。在更加詳細(xì)地討論示例性實施例之前應(yīng)當(dāng)提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項操作(或步驟)描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時實施。此外,各項操作的順序可以被重新安排。當(dāng)其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
圖1給出了本發(fā)明一個實施例提供的一種移動終端幀率的控制方法的流程圖,本實施例的方法可以由移動終端幀率的控制裝置來執(zhí)行,該裝置可通過硬件和/或軟件的方式實現(xiàn),所述裝置可作為移動終端一部分設(shè)置在所述移動終端的內(nèi)部。
如圖1所示,本實施例提供的一種移動終端幀率的控制方法包括以下步驟:
步驟101、獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率。
為了便于理解,下面以Android系統(tǒng)為例,對Android系統(tǒng)中顯示畫面從生成到顯示的過程進(jìn)行簡單的說明。圖2為本發(fā)明一個實施例提供的一種顯示過程的示意圖。
首先,在應(yīng)用(Application)層,每個應(yīng)用程序(以下簡稱應(yīng)用或APP)按照自己的應(yīng)用設(shè)計情況(一般由對應(yīng)的安裝包APK決定)各自單獨執(zhí)行圖像繪制(Render)操作,并在繪制操作處理完成后,各應(yīng)用將所繪制的所有圖像發(fā)送給執(zhí)行圖像合成操作的合成模塊(Surface flinger)。
然后,在應(yīng)用框架(Framework)層,系統(tǒng)有三個幀緩沖器(Frame Buffer,F(xiàn)B),三個FB可以循環(huán)使用。Surface flinger從三個FB中找出一個空閑的FB,并在該空閑的FB上,根據(jù)應(yīng)用配置信息,例如哪個圖像應(yīng)該置底、哪個圖像應(yīng)該置頂、哪個圖像采用透底效果等,通過合成(Compose)操作,將各個應(yīng)用分別繪制的多個圖像疊加在一起,得到最終顯示的顯示幀(待顯示畫面)。
最后,在內(nèi)核(Kernel)層,可以將待顯示畫面通過移動終端顯示處理(Mobile Display Process,MDP)模塊傳輸給顯示硬件(包括顯示控制器和顯示屏,使待顯示畫面最終顯示在顯示屏上。這里對顯示屏的類型不做限定,例如可以是液晶顯示器(Liquid Crystal Display,LCD)。
另外,Android系統(tǒng)在顯示刷新的過程中,引入了同步(Vsync)刷新機(jī)制。圖3給出了本發(fā)明一個實施例提供的Vsync顯示刷新機(jī)制的示意圖。具體地,Vsync刷新機(jī)制其實就是在整個顯示流程中,插入“心跳”即系統(tǒng)同步(Vsync)信號,由顯示控制器發(fā)送給CPU,用于產(chǎn)生Vsync中斷,以控制每次Render操作和Compose操作都需要按照心跳來完成,從而將整個顯示過程中的關(guān)鍵步驟都納入到Vsync的統(tǒng)一管理機(jī)制。Vsync信號頻率目前常見為60Hz。
如圖3所示,假設(shè)Vsync信號周期為T,不考慮信號的傳輸延遲,第一個Vsync信號Vsync1到達(dá)CPU后,CPU控制合成模塊向各應(yīng)用轉(zhuǎn)發(fā)該第一個Vsync信號Vsync1,各應(yīng)用響應(yīng)于用戶在顯示屏上的觸摸滑動等操作,開始執(zhí)行Render操作;并在各應(yīng)用完成Render操作后,得到各應(yīng)用所繪制的多個圖像。第二個Vsync信號Vsync2到達(dá)CPU后,CPU控制顯示控制器向合成模塊轉(zhuǎn)發(fā)該第二個Vsync信號Vsync2,合成模塊開始執(zhí)行圖像合成操作,將各應(yīng)用所繪制的多個圖像進(jìn)行合成,生成待顯示畫面。第三個Vsync信號Vsync3到達(dá)CPU后,系統(tǒng)開始執(zhí)行顯示刷新,并將該待顯示畫面最終顯示在顯示屏上。
在移動終端圖像繪制、合成和刷新顯示的流程中,存在3種幀率:繪制幀率、合成幀率和刷新率(刷新幀率)。
其中,繪制幀率為應(yīng)用程序在圖像繪制完成后,觸發(fā)合成模塊合成的幀率,可以理解為應(yīng)用程序單位時間(例如,1秒鐘)繪制圖像的次數(shù)。
合成幀率為把各個應(yīng)用程序的繪制圖像合成為一個待顯示畫面的幀率。
刷新率為移動終端的顯示屏顯示畫面刷新的幀率。
該步驟101中所述的幀率可以為繪制幀率、合成幀率或者刷新率。
在移動終端的運行場景中可能存在一些需要調(diào)整移動終端幀率的應(yīng)用場景,對于從低幀率調(diào)到高幀率的應(yīng)用場景,可以直接將幀率設(shè)置為高幀率,但是對于從高幀率調(diào)節(jié)為低幀率的應(yīng)用場景,若直接由高幀率降低設(shè)置為低幀率,將會造成顯示屏畫面顯示不夠自然和流暢的問題,用戶體驗非常不好。
該步驟用于獲取當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,其中所述第一幀率大于所述第二幀率。例如,第一幀率為60HZ,第二幀率為50HZ。
步驟102、按照設(shè)定平滑調(diào)節(jié)策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率。
該步驟用于按照預(yù)先設(shè)定的平滑調(diào)節(jié)策略,獲取第一幀率和第二幀率之間的至少一個中間幀率。具體可以根據(jù)第一幀率和第二幀率與各個中間幀率之間的設(shè)定函數(shù)對應(yīng)關(guān)系來根據(jù)所述第一幀率和第二幀率獲取所述至少一個中間幀率;或者結(jié)合移動終端當(dāng)前的運行場景來根據(jù)所述第一幀率和第二幀率獲取所述至少一個中間幀率。
步驟103、基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率。
將移動終端的幀率由第一幀率依次調(diào)節(jié)至各個中間幀率,直至調(diào)節(jié)至所述第二幀率,實現(xiàn)了移動終端幀率的平滑調(diào)節(jié),避免了由第一幀率直接調(diào)整至第二幀率造成的畫面顯示不流暢的問題。
本實施例提供的移動終端幀率的控制方法,通過獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率,按照設(shè)定平滑調(diào)節(jié)策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率,并基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率,可以合理的調(diào)節(jié)移動終端的幀率。
圖4給出了本發(fā)明一個實施例提供的一種移動終端幀率的控制方法的流程圖。如圖4所示,本實施例提供的方法包括以下步驟:
步驟201、獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率。
步驟201、將所述第一幀率作為當(dāng)前幀率,基于當(dāng)前幀率與中間幀率的設(shè)定對應(yīng)關(guān)系,獲取當(dāng)前幀率對應(yīng)的第一個中間幀率。
其中,所述當(dāng)前幀率與中間幀率的設(shè)定關(guān)系包括:
F(n)=Fs*cos((nπ)/K);或者,
F(n)=Fs*sin((nπ)/K+π/2)
其中,F(xiàn)(n)為中間幀率,F(xiàn)s為當(dāng)前幀率,K為設(shè)定值,n為初始值為1,增加值為設(shè)定間隔值的變量,在當(dāng)前幀率為所述第一幀率時n為所述初始值1。其中π為180°,所述K值可以取值為180°。
可以理解的是,所述當(dāng)前幀率與中間幀率的設(shè)定關(guān)系也可以為線性關(guān)系、指數(shù)關(guān)系或者對數(shù)關(guān)系,本實施例對此并不進(jìn)行限制。示例性的,所述設(shè)定關(guān)系還可以為:F(n)=Fs-1,其中F(n)為中間幀率,F(xiàn)s為當(dāng)前幀率,n為初始值為1,增加值為設(shè)定間隔值的變量,例如設(shè)定間隔值為1,即n=n+1,在當(dāng)前幀率為所述第一幀率時n為所述初始值1。
下面以設(shè)定關(guān)系為F(n)=Fs*cos((nπ)/K)進(jìn)行舉例說明:
若K取值180°,當(dāng)前的第一幀率為60,第二幀率為50,那么根據(jù)設(shè)定關(guān)系可得到第一個中間幀率F(1)=60*cos(π/K)=60*cos1=59.99,在一個具體的實施方式中可通過取整函數(shù)INT(x),得到F′(n)=INT(F(n)),即可將F′(1)=59作為第一個中間幀率。
步驟203、將所述第一個中間幀率作為新的當(dāng)前幀率,基于所述設(shè)定對應(yīng)關(guān)系,獲取所述新的當(dāng)前幀率對應(yīng)的下一個中間幀率,直至當(dāng)前幀率與第二幀率的差值在設(shè)定范圍內(nèi)。
如上述示例,將第一個中間幀率59作為新的當(dāng)前幀率,基于上述設(shè)定對應(yīng)關(guān)系,獲取所述新的當(dāng)前幀率對應(yīng)的下一個中間幀率(第二個中間幀率)F′(2),由F(2)=59.99*cos(2π/K)=59.95,可知F′(2)=59,將第二個中間幀率F′(2)=59作為當(dāng)前幀率,基于上述對應(yīng)關(guān)系,獲取當(dāng)前幀率對應(yīng)的下一個中間幀率(第三個中間幀率)F′(3)=59,以此類推,直至當(dāng)前幀率與第二幀率50的差值在設(shè)定范圍內(nèi)。其中,所述設(shè)定范圍可以設(shè)置為0-1,即若當(dāng)前幀率與第二設(shè)定值的差值小于等于1,則停止執(zhí)行基于所述設(shè)定對應(yīng)關(guān)系,獲取所述新的當(dāng)前幀率對應(yīng)的下一個中間幀率的操作。例如,若當(dāng)前中間幀率的值為51,則不再獲取下一個中間幀率。
最終可得到如下的中間幀率序列(單位HZ)(59,59,59,59,59,59,58,58,57,56,55,54,52,51)。
步驟204、基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率。
如上述示例,基于獲取的中間幀率序列,將幀率由第一幀率逐漸調(diào)節(jié)至所述第二幀率,即由第一幀率60HZ平滑調(diào)節(jié)至第二幀率50HZ的平滑調(diào)節(jié)序列如下(單位HZ)(60,59,59,59,59,59,59,58,58,57,56,55,54,52,51)。
如圖5所示,根據(jù)F(n)=Fs*cos((nπ)/K)設(shè)定關(guān)系得到的中間幀率有一個緩慢過渡的過程,例如前6個中間幀率都是59,往后2個中間幀率是58,再往后是57,56,55,54,52,51,相比于線性設(shè)定關(guān)系能夠更加平滑的調(diào)整幀率,且在從第一幀率降低到第二幀率的過程中,開始階段平滑度較高,往后平滑度慢慢降低,可以達(dá)到畫面流暢度高,并且?guī)式档退俣瓤斓募夹g(shù)效果。
本實施例提供的方法,通過獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率,將所述第一幀率作為當(dāng)前幀率,基于當(dāng)前幀率與中間幀率的設(shè)定對應(yīng)關(guān)系,獲取當(dāng)前幀率對應(yīng)的第一個中間幀率,將所述第一個中間幀率作為新的當(dāng)前幀率,基于所述設(shè)定對應(yīng)關(guān)系,獲取所述新的當(dāng)前幀率對應(yīng)的下一個中間幀率,直至當(dāng)前幀率與第二幀率的差值在設(shè)定范圍內(nèi),并基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率,可以實現(xiàn)平滑的調(diào)節(jié)移動終端的幀率。
圖6給出了本發(fā)明一個實施例提供的一種移動終端幀率的控制方法的流程圖。如圖6所示,本實施例提供的移動終端幀率的控制方法包括以下步驟:
步驟301、獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率。
步驟302、根據(jù)設(shè)定預(yù)測參數(shù)預(yù)測從所述第一幀率到第二幀率的調(diào)節(jié)過程中,移動終端所處的場景類型,所述場景類型包括靜態(tài)畫面場景、低動態(tài)畫面場景和高動態(tài)畫面場景。
其中,所述設(shè)定預(yù)測參數(shù)包括當(dāng)前運行的應(yīng)用程序的屬性、中央處理器(Central Processing Unit,CPU)的頻率信息、中央處理器的負(fù)載信息、圖像處理器(Graphic Processing Unit,GPU)的頻率信息和圖像處理器的負(fù)載信息中的至少一項。所述應(yīng)用程序的屬性包括應(yīng)用程序的標(biāo)識或者類型。
示例性,若當(dāng)前運行的應(yīng)用程序為桌面,則預(yù)測調(diào)節(jié)過程中移動終端所處的場景類型為靜態(tài)畫面場景;若當(dāng)前運行的應(yīng)用程序為微信、QQ或者閱讀器類型的應(yīng)用程序,則預(yù)測調(diào)節(jié)過程中移動終端所處的場景類型為低動態(tài)畫面場景;若當(dāng)前運行的應(yīng)用程序的類型為視頻或者游戲,則預(yù)測調(diào)節(jié)過程中移動終端處于高動態(tài)畫面場景。
又示例性的,可將中央處理器的負(fù)載和/或頻率分為3個等級,負(fù)載和/或頻率處于第1等級即負(fù)載和/或頻率為0的或者較小的運行場景下預(yù)測調(diào)節(jié)過程中移動終端處于靜態(tài)畫面場景;負(fù)載和/或頻率處于第2等級的運行場景下預(yù)測調(diào)節(jié)過程中移動終端處于低動態(tài)畫面場景;負(fù)載和/或頻率處于第3等級的運行場景下預(yù)測調(diào)節(jié)過程中移動終端處于高動態(tài)畫面場景。同理,也可將圖像處理器的負(fù)載和/或頻率分為3個等級,根據(jù)圖像處理器的負(fù)載和/或頻率的等級預(yù)測調(diào)節(jié)過程中移動終端所處的場景類型??梢岳斫獾氖?,也可以結(jié)合中央處理器的負(fù)載和/或頻率的等級以及圖像處理器的負(fù)載和/或頻率的等級預(yù)測調(diào)節(jié)過程中移動終端所處的場景類型。
步驟303、按照所述場景類型對應(yīng)的平滑調(diào)整策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率。
若預(yù)測到調(diào)節(jié)過程中移動終端處于靜態(tài)畫面場景,則所述按照所述場景類型對應(yīng)的平滑調(diào)整策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率包括:將所述第一幀率作為當(dāng)前幀率,將當(dāng)前幀率與第一設(shè)定值的差值作為第一個中間幀率;將所述第一個中間幀率作為新的當(dāng)前幀率,將新的當(dāng)前幀率與第一設(shè)定值的差值作為下一個中間幀率,直至當(dāng)前幀率與第二幀率的差值小于或者等于第一設(shè)定值。
示例性的,第一幀率為60HZ,第二幀率為50HZ,第一設(shè)定值為3。將第一幀率與第一設(shè)定值的差值57HZ作為第一個中間幀率;將第一個中間幀率作為新的當(dāng)前幀率,將新的當(dāng)前幀率與第一設(shè)定值的差值54HZ作為第二個中間幀率,直至當(dāng)前幀率與第二幀率的差值小于或者等于第一設(shè)定值。即可得到中間幀率序列(單位HZ)為(57,54,51)。
若預(yù)測到調(diào)節(jié)過程中移動終端處于低動態(tài)畫面場景,則所述按照所述場景類型對應(yīng)的平滑調(diào)整策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率包括:將所述第一幀率作為當(dāng)前幀率,將當(dāng)前幀率與第二設(shè)定值的差值作為第一個中間幀率;將所述第一個中間幀率作為新的當(dāng)前幀率,將新的當(dāng)前幀率與第二設(shè)定值的差值作為下一個中間幀率,直至當(dāng)前幀率與第二幀率的差值小于或者等于第二設(shè)定值。
示例性的,第一幀率為60HZ,第二幀率為50HZ,第二設(shè)定值為2。將第一幀率與第二設(shè)定值的差值58HZ作為第一個中間幀率;將第一個中間幀率作為新的當(dāng)前幀率,將新的當(dāng)前幀率與第二設(shè)定值的差值56HZ作為第二個中間幀率,直至當(dāng)前幀率與第二幀率的差值小于或者等于第二設(shè)定值。即可得到中間幀率序列(單位HZ)為(58,56,54,52)。
若預(yù)測到調(diào)節(jié)過程中移動終端處于高動態(tài)畫面場景,則所述按照所述場景類型對應(yīng)的平滑調(diào)整策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率包括:將所述第一幀率作為當(dāng)前幀率,將當(dāng)前幀率與第三設(shè)定值的差值作為第一個中間幀率;將所述第一個中間幀率作為新的當(dāng)前幀率,將新的當(dāng)前幀率與第三設(shè)定值的差值作為下一個中間幀率,直至當(dāng)前幀率與第二幀率的差值小于或者等于第三設(shè)定值。
示例性的,第一幀率為60HZ,第二幀率為50HZ,第三設(shè)定值為1。將第一幀率與第三設(shè)定值的差值59HZ作為第一個中間幀率;將第一個中間幀率作為新的當(dāng)前幀率,將新的當(dāng)前幀率與第三設(shè)定值的差值58作為第二個中間幀率,直至當(dāng)前幀率與第二幀率的差值小于或者等于第三設(shè)定值。即可得到中間幀率序列(單位HZ)為(59,58,57,56,55,54,53,52,51)。
其中,所述第一設(shè)定值、第二設(shè)定值和第三設(shè)定值依次減小。
步驟304、基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率。
本實施例提供的方法,通過獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,根據(jù)設(shè)定預(yù)測參數(shù)預(yù)測從所述第一幀率到第二幀率的調(diào)節(jié)過程中,移動終端所處的場景類型,按照所述場景類型對應(yīng)的平滑調(diào)整策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率,可以結(jié)合移動終端所處的場景類型,平滑的調(diào)節(jié)移動終端的幀率。
圖7為本發(fā)明一個實施例提供的一種移動終端幀率的控制裝置的結(jié)構(gòu)示意圖,該裝置可由軟件和/或硬件實現(xiàn),集成在移動終端中。如圖7所示,該裝置包括幀率獲取模塊41、中間幀率獲取模塊42和幀率調(diào)節(jié)模塊43。
所述幀率獲取模塊41,用于獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率;
所述中間幀率獲取模塊42,用于按照設(shè)定平滑調(diào)節(jié)策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率;
所述幀率調(diào)節(jié)模塊43,用于基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率。
進(jìn)一步的,所述中間幀率獲取模塊用于:
將所述第一幀率作為當(dāng)前幀率,基于當(dāng)前幀率與中間幀率的設(shè)定對應(yīng)關(guān)系,獲取當(dāng)前幀率對應(yīng)的第一個中間幀率;
將所述第一個中間幀率作為新的當(dāng)前幀率,基于所述設(shè)定對應(yīng)關(guān)系,獲取所述新的當(dāng)前幀率對應(yīng)的下一個中間幀率,直至當(dāng)前幀率與第二幀率的差值在設(shè)定范圍內(nèi)。
進(jìn)一步的,所述當(dāng)前幀率與中間幀率的設(shè)定關(guān)系包括:
F(n)=Fs*cos((nπ)/K);或者,
F(n)=Fs*sin((nπ)/K+π/2)
其中,F(xiàn)(n)為中間幀率,F(xiàn)s為當(dāng)前幀率,K為設(shè)定值,n為初始值為1,增加值為設(shè)定間隔值的變量,在當(dāng)前幀率為所述第一幀率時n為所述初始值1。
進(jìn)一步的,所述中間幀率獲取模塊用于:
根據(jù)設(shè)定預(yù)測參數(shù)預(yù)測從所述第一幀率到第二幀率的調(diào)節(jié)過程中,移動終端所處的場景類型,所述場景類型包括靜態(tài)畫面場景、低動態(tài)畫面場景和高動態(tài)畫面場景;
按照所述場景類型對應(yīng)的平滑調(diào)整策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率。
進(jìn)一步的,所述設(shè)定預(yù)測參數(shù)包括當(dāng)前運行的應(yīng)用程序的種類屬性、中央處理器的頻率信息、中央處理器的負(fù)載信息、圖像處理器的頻率信息和圖像處理器的負(fù)載信息中的至少一項。
進(jìn)一步的,若預(yù)測到調(diào)節(jié)過程中移動終端處于靜態(tài)畫面場景,則所述中間幀率獲取模塊用于:
將所述第一幀率作為當(dāng)前幀率,將當(dāng)前幀率與第一設(shè)定值的差值作為第一個中間幀率;
將所述第一個中間幀率作為新的當(dāng)前幀率,將新的當(dāng)前幀率與第一設(shè)定值的差值作為下一個中間幀率,直至當(dāng)前幀率與第二幀率的差值小于第一設(shè)定值小于或者等于第一設(shè)定值;
若預(yù)測到調(diào)節(jié)過程中移動終端處于低動態(tài)畫面場景,則所述中間幀率獲取模塊用于:
將所述第一幀率作為當(dāng)前幀率,將當(dāng)前幀率與第二設(shè)定值的差值作為第一個中間幀率;
將所述第一個中間幀率作為新的當(dāng)前幀率,將新的當(dāng)前幀率與第二設(shè)定值的差值作為下一個中間幀率,直至當(dāng)前幀率與第二幀率的差值小于第二設(shè)定值小于或者等于第二設(shè)定值;
若預(yù)測到調(diào)節(jié)過程中移動終端處于高動態(tài)畫面場景,則所述中間幀率獲取模塊用于:
將所述第一幀率作為當(dāng)前幀率,將當(dāng)前幀率與第三設(shè)定值的差值作為第一個中間幀率;
將所述第一個中間幀率作為新的當(dāng)前幀率,將新的當(dāng)前幀率與第三設(shè)定值的差值作為下一個中間幀率,直至當(dāng)前幀率與第二幀率的差值小于第三設(shè)定值小于或者等于第三設(shè)定值;
其中,所述第一設(shè)定值、第二設(shè)定值和第三設(shè)定值依次減小。
進(jìn)一步的,所述幀率包括移動終端的應(yīng)用程序的繪制幀率、用于合成畫面的合成模塊的合成幀率或者顯示屏的刷新率。
本實施例提供的裝置,通過獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率,按照設(shè)定平滑調(diào)節(jié)策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率,并基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率,可以合理的調(diào)節(jié)移動終端的幀率。
圖8為本發(fā)明一個實施例提供的一種移動終端的結(jié)構(gòu)示意圖,該移動終端可以包括本發(fā)明任意實施例提供的移動終端幀率的控制裝置,如圖8所示,該移動終端可以包括:存儲器501、中央處理器(Central Processing Unit,CPU)502(又稱處理器,以下簡稱CPU)、所述存儲器501,用于存儲可執(zhí)行程序代碼;所述處理器502通過讀取所述存儲器501中存儲的可執(zhí)行程序代碼來運行與所述可執(zhí)行程序代碼對應(yīng)的程序,以用于執(zhí)行:獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率;按照設(shè)定平滑調(diào)節(jié)策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率;基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率。
所述移動終端還包括:外設(shè)接口503、RF(Radio Frequency,射頻)電路505、音頻電路506、揚聲器511、電源管理芯片508、輸入/輸出(I/O)子系統(tǒng)509、觸摸屏512、其他輸入/控制設(shè)備510以及外部端口504,這些部件通過一個或多個通信總線或信號線507來通信。
應(yīng)該理解的是,圖示移動終端500僅僅是移動終端的一個范例,并且移動終端500可以具有比圖中所示出的更多的或者更少的部件,可以組合兩個或更多的部件,或者可以具有不同的部件配置。圖中所示出的各種部件可以在包括一個或多個信號處理和/或?qū)S眉呻娐吩趦?nèi)的硬件、軟件、或硬件和軟件的組合中實現(xiàn)。
下面就本實施例提供的用于控制幀率的移動終端進(jìn)行詳細(xì)的描述,該移動終端以手機(jī)為例。
存儲器501,所述存儲器501可以被CPU502、外設(shè)接口503等訪問,所述存儲器501可以包括高速隨機(jī)存取存儲器,還可以包括非易失性存儲器,例如一個或多個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
外設(shè)接口503,所述外設(shè)接口503可以將設(shè)備的輸入和輸出外設(shè)連接到CPU502和存儲器501。
I/O子系統(tǒng)509,所述I/O子系統(tǒng)509可以將設(shè)備上的輸入輸出外設(shè),例如觸摸屏512和其他輸入/控制設(shè)備510,連接到外設(shè)接口503。I/O子系統(tǒng)509可以包括顯示控制器5091和用于控制其他輸入/控制設(shè)備510的一個或多個輸入控制器5092。其中,一個或多個輸入控制器5092從其他輸入/控制設(shè)備510接收電信號或者向其他輸入/控制設(shè)備510發(fā)送電信號,其他輸入/控制設(shè)備510可以包括物理按鈕(按壓按鈕、搖臂按鈕等)、撥號盤、滑動開關(guān)、操縱桿、點擊滾輪。值得說明的是,輸入控制器5092可以與以下任一個連接:鍵盤、紅外端口、USB接口以及諸如鼠標(biāo)的指示設(shè)備。
觸摸屏512,所述觸摸屏512是用戶終端與用戶之間的輸入接口和輸出接口,將可視輸出顯示給用戶,可視輸出可以包括圖形、文本、圖標(biāo)、視頻等。
I/O子系統(tǒng)509中的顯示控制器5091從觸摸屏512接收電信號或者向觸摸屏512發(fā)送電信號。觸摸屏512檢測觸摸屏上的接觸,顯示控制器5091將檢測到的接觸轉(zhuǎn)換為與顯示在觸摸屏512上的用戶界面對象的交互,即實現(xiàn)人機(jī)交互,顯示在觸摸屏512上的用戶界面對象可以是運行游戲的圖標(biāo)、聯(lián)網(wǎng)到相應(yīng)網(wǎng)絡(luò)的圖標(biāo)等。值得說明的是,設(shè)備還可以包括光鼠,光鼠是不顯示可視輸出的觸摸敏感表面,或者是由觸摸屏形成的觸摸敏感表面的延伸。
RF電路505,主要用于建立手機(jī)與無線網(wǎng)絡(luò)(即網(wǎng)絡(luò)側(cè))的通信,實現(xiàn)手機(jī)與無線網(wǎng)絡(luò)的數(shù)據(jù)接收和發(fā)送。例如收發(fā)短信息、電子郵件等。具體地,RF電路505接收并發(fā)送RF信號,RF信號也稱為電磁信號,RF電路505將電信號轉(zhuǎn)換為電磁信號或?qū)㈦姶判盘栟D(zhuǎn)換為電信號,并且通過該電磁信號與通信網(wǎng)絡(luò)以及其他設(shè)備進(jìn)行通信。RF電路505可以包括用于執(zhí)行這些功能的已知電路,其包括但不限于天線系統(tǒng)、RF收發(fā)機(jī)、一個或多個放大器、調(diào)諧器、一個或多個振蕩器、數(shù)字信號處理器、CODEC(COder-DECoder,編譯碼器)芯片組、用戶標(biāo)識模塊(Subscriber Identity Module,SIM)等等。
音頻電路506,主要用于從外設(shè)接口503接收音頻數(shù)據(jù),將該音頻數(shù)據(jù)轉(zhuǎn)換為電信號,并且將該電信號發(fā)送給揚聲器511。
揚聲器511,用于將手機(jī)通過RF電路505從無線網(wǎng)絡(luò)接收的語音信號,還原為聲音并向用戶播放該聲音。
電源管理芯片508,用于為CPU502、I/O子系統(tǒng)及外設(shè)接口503所連接的硬件進(jìn)行供電及電源管理。
上述移動終端可執(zhí)行本發(fā)明任意實施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊,通過獲取移動終端當(dāng)前的第一幀率和待調(diào)節(jié)后的第二幀率,所述第一幀率大于所述第二幀率,按照設(shè)定平滑調(diào)節(jié)策略,獲取所述第一幀率和所述第二幀率之間的至少一個中間幀率,并基于所述至少一個中間幀率,將所述移動終端的幀率由所述第一幀率逐漸調(diào)節(jié)至所述第二幀率,可以合理的調(diào)節(jié)移動終端的幀率。
上述僅為本發(fā)明的較佳實施例及所運用的技術(shù)原理。本發(fā)明不限于這里所述的特定實施例,對本領(lǐng)域技術(shù)人員來說能夠進(jìn)行的各種明顯變化、重新調(diào)整及替代均不會脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實施例對本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由權(quán)利要求的范圍決定。