通過GC Nano技術(shù)提升用戶界面體驗
GPU是提升HMI用戶體驗的基礎(chǔ)技術(shù),可以實現(xiàn)屏幕/UI合成,包括多個源(ISP/照相機(jī)、視頻等)的多層混合、圖像過濾、字體渲染/加速、3D效果(變換、透視等)等很多其他功能。Vivante擁有一條基于GPU技術(shù)的綜合產(chǎn)品線,包括GC Vega系列和GC Nano系列。
本文引用地址:http://butianyuan.cn/article/201808/387558.htmGC Vega系列適用于需要最新、最好GPU硬件和功能的SoC,這些功能包括:OpenGL ES 3.1,完整安卓擴(kuò)展包(AEP)支持,包括硬件鑲嵌/幾何著色器(TS/GS)、DirectX 12、CTM(closetothemetal) GPU編程、混合射線跟蹤、零驅(qū)動開銷、傳感器融合以及針對使用OpenVX、OpenCV或OpenCL視覺處理的GPU計算,都納入到最積極的PPA(性能、功耗和面積)和全功能設(shè)計方案中。目標(biāo)市場覆蓋高端可穿戴設(shè)備和近距離/中距離移動設(shè)備、4K電視以及用于服務(wù)器虛擬化的GPU。
GC Nano系列則屬于另一范疇,適用于為具備GPU渲染的HMI/UI的可穿戴設(shè)備和IoT設(shè)備(智能家庭/家電、信息設(shè)備……)等消費類產(chǎn)品帶來革命性推動的器件。該內(nèi)核專為在CPU、內(nèi)存(片上和DDR)、電池及帶寬非常有限的資源受限型環(huán)境下工作而設(shè)計。GC Nano還進(jìn)行了優(yōu)化,與需要在30/60fps及以上速率下提供UI合成加速的較小尺寸的MCU平臺配合工作。GC Nano系列的優(yōu)勢包括:
·優(yōu)化的硅片面積和功率。硅片占位極小,可使受限SoC的單位面積性能達(dá)到最佳;這就意味著,廠商可在不超出硅片/功率預(yù)算且保證靈敏、平滑的UI性能的前提下,在其設(shè)計中添加增強(qiáng)圖像功能。GC Nano可在超低功耗和熱量(最小動態(tài)功率和接近零的泄漏功率)下最大限度地延長電池壽命。
·智能合成。Vivante的即時模式渲染(IMR)架構(gòu)通過智能化的方式,僅合成和更新發(fā)生改變的屏幕區(qū)域,減少了合成帶寬、延遲、開銷及功率。合成可以通過兩種方式進(jìn)行:利用GC Nano合成所有屏幕層(圖形、背景、圖像、視頻、文本等);或通過緊耦合的設(shè)計,其中GC Nano與顯示控制器/處理器(第三方或Vivante DC核)同時工作實現(xiàn)UI合成。想要進(jìn)一步減少帶寬,還可以通過Vivante的DEC壓縮IP核對數(shù)據(jù)進(jìn)行壓縮/解壓縮。
·可穿戴和IoT 設(shè)備即用。超輕量級向量圖形(GC Nano Lite ) 和OpenGLES 2.0(GC Nano、GC Nano Ultra)驅(qū)動、SDK及工具可很容易地將可穿戴設(shè)備及物聯(lián)網(wǎng)設(shè)備屏幕過渡到消費級圖形界面。GC Nano包還包括教程、示例代碼及其他文檔,以幫助開發(fā)人員優(yōu)化或移植其代碼。
·為MCU/MPU平臺設(shè)計??尚遁d并極大降低系統(tǒng)資源的有效設(shè)計,包括完整UI/合成及顯示控制器集成、最小CPU開銷、無DDR且僅含閃存的配置、帶寬調(diào)制、CTM GPU驅(qū)動以及針對可穿戴/IoT設(shè)備的、可減少硅片尺寸的GPU特性。軟件代碼量極小,減少了對內(nèi)存大小的限制,縮短了GPU初始化/啟動時間,同時對于需要一鍵顯示信息的屏幕,可以瞬間啟動UI合成。
·生態(tài)系統(tǒng)和軟件支持。開發(fā)人員可以利用輕量級NanoUI或OpenGL ES API進(jìn)一步擴(kuò)展或定制解決方案。業(yè)界對于現(xiàn)有Vivante產(chǎn)品提供的大量支持,包括覆蓋字體、插圖工具及Qt開發(fā)環(huán)境的重要合作伙伴的、針對Android、AndroidWear及嵌入式UI解決方案的GC Nano/GC Nano Ultra產(chǎn)品線。
·計算即用。未來幾年內(nèi),可穿戴/物聯(lián)網(wǎng)(處理)節(jié)點數(shù)量將以數(shù)百億個的速度增加,由于節(jié)點始終保持開啟、互聯(lián)和處理狀態(tài),數(shù)據(jù)網(wǎng)絡(luò)的帶寬可能成為問題。GC Nano通過在節(jié)點上進(jìn)行超低功率處理(GFLOP/GINT ops),且僅根據(jù)需求發(fā)送有用的壓縮數(shù)據(jù),可以有效緩解帶寬壓力。案例包括傳感器融合計算和圖像/視頻帶寬降低。
Vivante的軟件驅(qū)動棧、SDK以及工具包將支持NanoUI API,其可為無操作系統(tǒng)/無DDR 的GC Nano Lite提供CTM GPU加速,同時還可為更先進(jìn)的解決方案(包括專有或高級操作系統(tǒng),例如嵌入式Linux、Tizen、Android、AndroidWear 及其他在最小內(nèi)存空間中需要OpenGL ES 2.0+的RTOS)提供OpenGLES 2.0 API(3.x可選)。這些各種各樣的操作系統(tǒng)/無操作系統(tǒng)平臺將構(gòu)成下一代可穿戴設(shè)備和物聯(lián)網(wǎng)的基礎(chǔ),為每個人帶來獨特的最佳個性化體驗。GC Nano驅(qū)動包括主動節(jié)能、智能合成與渲染以及帶寬調(diào)制,使OEM廠商和開發(fā)人員能夠使用超輕UI/合成或3D圖形驅(qū)動為可穿戴設(shè)備和物聯(lián)網(wǎng)構(gòu)建豐富的視覺體驗。
GC Nano的很多創(chuàng)新創(chuàng)建了一個完整“視覺”可穿戴設(shè)備MCU/SoC平臺(圖1),能夠?qū)崿F(xiàn)PPA和軟件效率最優(yōu)化,從而改善設(shè)備的整體性能和BOM成本,同時提供最緊湊的UI圖形軟硬件開銷,不會降低或限制屏幕上的用戶體驗。隨著可穿戴設(shè)備和物聯(lián)網(wǎng)逐步融入人們的生活,這些新的GPU將會越來越多地應(yīng)用到身邊的新奇產(chǎn)品中。
3D UI渲染的趨勢和重要性
下一代產(chǎn)品將采用智能手機(jī)、平板電腦及智能電視中精心策劃的UI設(shè)計元素,并將它們整合到物聯(lián)網(wǎng)設(shè)備及可穿戴設(shè)備中,使產(chǎn)品保持一致界面。相似的UI外觀(look -and-feel)可以減少使用學(xué)習(xí)曲線,加快設(shè)備采用速度。另外,由于不同設(shè)備的處理能力/性能水平不同,會依據(jù)較小尺寸屏幕采用最低水平配置(基準(zhǔn)性能),但是隨著設(shè)備性能上升到操作系統(tǒng)供應(yīng)商劃分的更高層級,還可添加附加特性/更高性能。
更新后的UI包括以下新特性:
·動畫圖標(biāo)—為用戶輕松呈現(xiàn)選中的菜單項或輸入光標(biāo)指向的位置,使用戶無需花費時間尋找屏幕上的光標(biāo)位置。在選中圖標(biāo)前,圖標(biāo)可以旋轉(zhuǎn)、擺動、彈出、閃現(xiàn)等。
·實時動畫—動態(tài)內(nèi)容可以將簡單的背景(壁紙)轉(zhuǎn)化成動態(tài)的移動場景,為用戶設(shè)備增加個性修飾。背景圖像和設(shè)計也可搭配裝飾、照明、主題及氣氛等實現(xiàn)個性化設(shè)置。一些大型白色家電制造商正在測試這些概念設(shè)計,希望不遠(yuǎn)的將來能夠展現(xiàn)一二。
·3D效果—文本、圖標(biāo)和圖像可超越簡單的陰影效果,其中,GPU功能可利用強(qiáng)大的著色器指令渲染,為UI各個部分增添3D特征(例如:轉(zhuǎn)盤、視差、深度模糊、部件/圖標(biāo)渲染成3D/2D形狀、圖標(biāo)運動的程序/模板動畫、粒子系統(tǒng)的物理仿真、透視圖等)。這些效果可以利用GCNano的超低功率OpenGL ES 2.0/3.x流水線實現(xiàn)。
GC Nano的架構(gòu)在HMI UI合成方面表現(xiàn)出色,可以呈現(xiàn)3D UI效果并降低帶寬和延遲,詳見下文。
GC Nano帶寬計算
本節(jié)將會逐步敘述多種用戶界面場景示例,并對GC Nano GPU渲染的30和60fpsUI HMI計算系統(tǒng)帶寬。
合成方法
將評估的屏幕顯示合成有兩種選擇:第一,GPU完成所有層(或表面,包括視頻)的整個屏幕合成,顯示控制器僅將已合成的HMI U I輸出到屏幕上(圖3);第二,顯示控制器對GPU和視頻解碼器(VPU)合成的層進(jìn)行最后的混合和合并,再顯示出來(圖4)。頂層示意圖未顯示DDR內(nèi)存事務(wù),但將在后續(xù)UI步驟的描述中給出。
UI帶寬計算
計算假設(shè)。GC Nano UI處理采用ARGB8(每像素32位)格式。當(dāng)GC Nano進(jìn)行全合成時,GPU會自動將16位YUV視頻格式轉(zhuǎn)換成32位ARGB格式。
視頻幀為YUV422(每像素16位)格式,并且與屏幕尺寸分辨率相同(GC Nano將輸入視頻作為視頻紋理對待)。最終合成的幀為ARGB8格式(每像素32位)。讀取視頻的請求突發(fā)長度為32字節(jié)。GC Nano UI請求突發(fā)長度為64位字節(jié)。寫出UI渲染和最終幀的寫長度為64字節(jié)。
這些情況假設(shè)UI渲染為32位。如果顯示格式為16位(適用于較小屏幕),則以下所列的帶寬計算將會大大降低。帶寬計算將以WVGA(800x480)和720p(1280x720)為例。本例中,需要刷新/更新的每幀UI像素的大小包括以下比例:15%(標(biāo)準(zhǔn)UI);25%; 50%(最差UI)。
·GC Nano全UI合成。圖5 描述了來/去DDR內(nèi)存的數(shù)據(jù)流利用GC Nano進(jìn)行整個UI合成的過程。采用這種方法的好處包括:利用GPU在圖像或視頻上進(jìn)行一些前后處理、過濾、為圖像/視頻添加標(biāo)準(zhǔn)3D效果(視頻轉(zhuǎn)盤、彎曲/去彎曲等)以及增強(qiáng)實境(GC Nano在視頻流頂部覆蓋渲染的3D內(nèi)容)。由于可以對GC Nano編程使其執(zhí)行圖像/UI相關(guān)任務(wù),這種方法靈活度最高。
顯示控制器包含一個能夠直接從系統(tǒng)內(nèi)存中讀取數(shù)據(jù)的DMA引擎,其支持多種數(shù)據(jù)格式,包括ARGB、RGB、YUV444/422/420及其重排格式。
GC Nano合成UI的架構(gòu)優(yōu)勢
GPU渲染包括兩個主要架構(gòu),即瓦片紋理渲染(TBR)和直接渲染(IMR)。TBR在全幀所有相關(guān)信息都可用時,將屏幕圖像分解成方塊并進(jìn)行渲染。在IMR下,圖形命令直接向GPU發(fā)布并立即執(zhí)行。Vivante架構(gòu)中的技術(shù)可以剔除幀中隱藏或不可見的部分,因而不會在渲染最終將被去除的場景部分上浪費執(zhí)行、帶寬和功率等。Vivante的IMR在為最新AAA級游戲(利用全硬件加速呈現(xiàn)精細(xì)的幾何圖形和PC水平的圖形質(zhì)量)渲染逼真的3D圖像時也具有顯著優(yōu)勢,例如其高端GC Vega內(nèi)核(DirectX 11.x、OpenGL ES 3.1及安卓擴(kuò)展包AEP)可支持高級GS/TS著色器等。注:GC/TS等一些高級特性不適用于GC Nano系列。
UI瓦片紋理渲染(TBR)架構(gòu)
下面說明在TBR架構(gòu)下渲染UI的過程。
·場景分解成塊。TBR架構(gòu)將圖像分解成獨立的瓦片(小方塊)進(jìn)行渲染。每個方塊都有自己的數(shù)據(jù)庫/命令列表(方塊列表),并且在GPU開始渲染和進(jìn)入下一幀之前,整個幀的所有命令都需處于可用狀態(tài)。數(shù)據(jù)庫/方塊列表緩沖區(qū)的大小在渲染(可能導(dǎo)致溢出)前也是未知的,并且依賴于幀—簡單幀數(shù)據(jù)庫較小,而復(fù)雜幀數(shù)據(jù)庫較大。任何方塊在處理過程中發(fā)生變化都意味著整個幀數(shù)據(jù)庫需要再次更新,而且在某些情況下,需要刷新全幀并重啟。
將預(yù)處理步驟和分塊步驟相結(jié)合,可實現(xiàn)以下效果。圖8展現(xiàn)了當(dāng)前幀的情況,所有的UI表面都被分割為三角形,整個幀被分塊,并準(zhǔn)備好進(jìn)行渲染。如果幀不發(fā)生任何變化(靜態(tài)UI),則可按原樣渲染。
TBR UI渲染總結(jié)
從上述步驟可看出,由于預(yù)處理的UI三角形需要首先儲存在內(nèi)存中,然后在使用時會被讀取,基于TBR的GPU具有額外開銷,這就增加了UI渲染的時延。TBR GPU也需要大量的片上L2緩存來存儲整個幀(方塊)數(shù)據(jù)庫,但隨著UI復(fù)雜性增強(qiáng),片上L2緩存大小(裸片面積)只能同時增加,或TBR內(nèi)核只能不斷溢出至DDR內(nèi)存,這會導(dǎo)致時延、帶寬和功率增加。TBR具備確認(rèn)和追蹤U I的哪些部分(方塊)和哪些表面發(fā)生了變化的機(jī)制,可盡可能簡化預(yù)處理過程,但對于擁有很多移動區(qū)域的較新UI來說,這仍構(gòu)成了限制。此外,隨著屏幕尺寸/分辨率和內(nèi)容復(fù)雜性的增加,在所有屏幕上,由此導(dǎo)致的時延在使用統(tǒng)一UI的谷歌、微軟和其他操作系統(tǒng)平臺上甚至顯得更為明顯。
UI的直接渲染(IMR)架構(gòu)
最先進(jìn)的GPU使用的是IMR技術(shù),它是基于目標(biāo)的渲染技術(shù),在PC(臺式機(jī)/筆記本)顯卡中直到Vivante的GC系列產(chǎn)品線上都能看到。IMR技術(shù)使GPU可以渲染逼真的圖像,并繪制屏幕上最新的復(fù)雜、動態(tài)、交互式內(nèi)容。在該架構(gòu)中,圖形API調(diào)用命令被直接發(fā)送至GPU,收到命令和數(shù)據(jù)后即刻進(jìn)行對象渲染。這一流程顯著提升了3D渲染性能。
對UI來說,無需進(jìn)行預(yù)通過處理,這消除了上一節(jié)中看到的TBR相關(guān)延遲。此外,UI中加入了許多智能事務(wù)消除機(jī)制,使得幀中的隱藏(看不到的)部分甚至不必通過GPU流水線發(fā)送;或是如果隱藏部分已經(jīng)處于發(fā)送狀態(tài)(例如,UI表面發(fā)生變化),它們也可以立即丟棄掉,這樣流水線即可繼續(xù)執(zhí)行有意義的工作。
出于靈活性考慮,合成處理過程在著色器中進(jìn)行,Vivante GPU可以自動增加矩形圖元,以便將整個屏幕納入考慮范圍,進(jìn)而實現(xiàn)100%的效率(使用兩個三角形僅發(fā)揮50%的效率)。對于簡單UI和3D幀而言,內(nèi)存帶寬等效于TBR架構(gòu),但對于更高級的UI和3D場景來說,TBR設(shè)計需接入遠(yuǎn)超過IMR的外存,因為TBR的片上緩存中無法容納大量的復(fù)雜場景數(shù)據(jù)。
基于對象的IMR UI渲染。IMR GPU是基于對象的,即每個UI表面都被視為一個待渲染的個體對象。GPU收到與一個對象的命令列表后,它會立即執(zhí)行命令,并繪制出表面。與此同時,GC Nano中也會添加一個新的圖元,使矩形圖元能夠被渲染,進(jìn)而實現(xiàn)100%的效率(使用兩個三角形繪制矩形僅有50%的效率)。
附加UI內(nèi)容被視為新對象。新的UI表面(彈出式視窗、通知、新內(nèi)容、新窗口等)也僅被視為對象進(jìn)行處理。
IMR GPU 是下一代動態(tài)UI 的理想之選。GPU收到某一對象的命令列表后,就會立即對其進(jìn)行靜態(tài)或動態(tài)渲染。同時,GPU也會對各個對象進(jìn)行測試,利用各種剔除和深度/Z方法確定哪些是看得見的部分,并丟棄隱藏的部分。對象中看不見的部分會被立刻丟棄。那些最初看得見(位于GPU流水線中)但后來被隱藏(彈出通知覆蓋了一個表面)的部分會被立刻摒棄,這樣GPU就可以對另一個可視對象進(jìn)行渲染。與TBR不同的是,IMR在處理前不必等待整個幀命令列表。
IMR UI渲染總結(jié)。對于動態(tài)3D UI、復(fù)雜3D圖形和映射應(yīng)用等,IMR在延遲、帶寬和功率方面更具優(yōu)勢。內(nèi)存消耗與內(nèi)存I/O是IMR的另一明顯優(yōu)勢—對新型動態(tài)實時3D UI來說,IMR實屬不二之選;對于標(biāo)準(zhǔn)UI來說,IMR和TBR勢均力敵,但I(xiàn)MR 可為SoC / MCU 賦予靈活性且更適用于未來。注:在過去,TBR更適用于簡單UI和簡單的3D游戲(矩形/多邊形數(shù)量少、復(fù)雜度低),因為TBR可以將完整的幀方塊數(shù)據(jù)庫保留在芯片(L2緩存)上。但隨著領(lǐng)先的智能手機(jī)、平板電腦和電視的發(fā)展,UI技術(shù)也在不斷進(jìn)步,這使得IMR技術(shù)越來越受歡迎。
評論