在嵌入式開(kāi)發(fā)中,有許多因素使60 FPS成為一個(gè)不完整的目標(biāo),這不僅僅是一個(gè)任意的數(shù)字,而是關(guān)于管理CPU工作負(fù)載以實(shí)現(xiàn)卓越的用戶體驗(yàn)和最大的能效。
當(dāng)談到嵌入式GUI開(kāi)發(fā)時(shí),每秒60幀(FPS)水印與“平滑”、“美麗”和“流暢”同義。開(kāi)發(fā)人員和精通技術(shù)的用戶談?wù)?0 FPS作為屏幕更新的黃金標(biāo)準(zhǔn),而供應(yīng)商承諾只有他們的平臺(tái)才能幫助你實(shí)現(xiàn)這一目標(biāo)。
最終用戶最后一次真正注意到設(shè)備的幀速率是什么時(shí)候?更有可能的是,他們抱怨屏幕過(guò)渡緩慢或動(dòng)畫(huà)抖動(dòng),他們可能在不知道實(shí)際原因的情況下將其歸因于FPS。大多數(shù)用戶并不特別關(guān)心每秒幀數(shù);他們關(guān)心用戶體驗(yàn)(UX)以及需要多長(zhǎng)時(shí)間插入設(shè)備。
這些因素使60 FPS成為一個(gè)不完整的目標(biāo)。這不僅僅是為了實(shí)現(xiàn)這個(gè)數(shù)字,而是為了在用戶沒(méi)有注意到的情況下管理CPU工作負(fù)載。
60是一個(gè)好的FPS嗎?
通常情況下,高幀速率聲明來(lái)自于設(shè)計(jì)用于實(shí)現(xiàn)任意水印的應(yīng)用程序,而不是真實(shí)系統(tǒng)的真實(shí)情況。以下是一些以實(shí)現(xiàn)60 FPS為名義的設(shè)計(jì)決策示例:
1.用于圖像和動(dòng)畫(huà)的原始文件格式與許多嵌入式開(kāi)發(fā)人員用于節(jié)省存儲(chǔ)空間的壓縮格式
2.后端軟件和GUI之間的進(jìn)程間通信或事件處理最少
3.地圖和語(yǔ)音助手等應(yīng)用程序通常不需要復(fù)雜的計(jì)算或算法
4.使用具有快速訪問(wèn)時(shí)間的硬件和外圍設(shè)備,但并非所有項(xiàng)目和預(yù)算都可以使用(盡管這在MCU領(lǐng)域已不再是一個(gè)問(wèn)題,因?yàn)楣韫?yīng)商正在發(fā)布更強(qiáng)大的產(chǎn)品,如本次NXP網(wǎng)絡(luò)研討會(huì)所解釋的)
5.測(cè)量關(guān)注屏幕的刷新率,而不是應(yīng)用程序呈現(xiàn)到屏幕上的次數(shù)
刷新率會(huì)影響FPS嗎?
上述最后一點(diǎn)極為重要,有兩個(gè)原因。首先,以60Hz刷新率運(yùn)行的屏幕與CPU和GPU上的應(yīng)用程序工作負(fù)載幾乎沒(méi)有關(guān)系,屏幕隨運(yùn)行而運(yùn)行;其次,如果應(yīng)用程序以與屏幕相同的速度刷新整個(gè)幀緩沖區(qū),那么嵌入式開(kāi)發(fā)人員必須認(rèn)真考慮為什么會(huì)這樣,消耗寶貴的處理器和內(nèi)存周期不應(yīng)掉以輕心,許多應(yīng)用程序?qū)嶋H上并不需要60 Hz的全屏刷新。
有一個(gè)平滑、高效、光滑的GUI更好嗎?還是犧牲掉60 FPS更好?
什么是可接受的FPS?
嵌入式應(yīng)用程序的“正確”FPS是一種能夠創(chuàng)建最佳用戶體驗(yàn)并將每幀內(nèi)的功耗降至最低的FPS。最好的嵌入式用戶體驗(yàn)是通過(guò)在框架邊界內(nèi)呈現(xiàn)設(shè)計(jì)師的屏幕元素和行為意圖來(lái)實(shí)現(xiàn)的。在60 FPS的情況下,這意味著在16毫秒(ms)內(nèi)完成必要的處理和渲染。“必要”的定義取決于應(yīng)用程序,但一般來(lái)說(shuō),這并不要求每一幀都重新渲染整個(gè)屏幕。由于工作負(fù)載消耗處理器周期和電源,因此只應(yīng)呈現(xiàn)不斷變化的元素。
始終問(wèn)問(wèn)自己:系統(tǒng)需要什么,什么時(shí)候必須做。從那里,你可以調(diào)高或調(diào)低以獲得所需的FPS。
Storyboard如何幫助
Storyboard旨在優(yōu)化CPU和GPU工作負(fù)載,并最大限度地提高電源效率。Storyboard運(yùn)行庫(kù)僅在必要時(shí)繪制和刷新屏幕,并且僅更新幀緩沖區(qū)中更改的元素。此外,在嵌入式開(kāi)發(fā)中,Storyboard還包括內(nèi)存可視化和性能優(yōu)化工具,使你能夠在部署之前確定應(yīng)用程序占用空間以及目標(biāo)上的運(yùn)行時(shí)特征(包括FPS)。