嵌入式系統(tǒng)中的圖形處理技術(shù)(如用戶界面和游戲)正在不斷發(fā)展和改善,例如從基于2D的交互圖形發(fā)展到基于3D的交互圖形。便攜式游戲站(PSP)這樣的便攜式設(shè)備就實(shí)現(xiàn)了PlayStation 2類3D圖形質(zhì)量。而在PC圖形方面,可以讓開(kāi)發(fā)人員在頂點(diǎn)和片段層級(jí)配置功能的可編程著色方案已經(jīng)成為DirectX和OpernGL API基礎(chǔ)架構(gòu)的主要方案,這類硬件在像Xbox360和PlayStation 3這樣的游戲設(shè)備上已經(jīng)形成了非常豐富的內(nèi)容和經(jīng)驗(yàn)。然而嵌入式系統(tǒng)中的圖形處理存在著很多問(wèn)題和挑戰(zhàn)需要開(kāi)發(fā)人員去解決,例如為了保持長(zhǎng)電池壽命所需的低功耗,因?yàn)榭臻g約束要使系統(tǒng)的器件數(shù)量最少,以及限制門(mén)的數(shù)量以降低成本。
Khronos Group公司正在定義針對(duì)嵌入式領(lǐng)域的各種媒體API,目前已經(jīng)發(fā)布了一種圖形API,即OpenGL ES。該OpenGL ES共有1.x和2.x兩個(gè)版本,分別針對(duì)固定圖形管線和可編程圖形管線,這種方法與PC圖形中用的方法是一樣的。
DMP圖形內(nèi)核概述
DMP為嵌入式領(lǐng)域中的便攜式設(shè)備、移動(dòng)電話、汽車(chē)導(dǎo)航系統(tǒng)、娛樂(lè)游戲機(jī)和所有其它嵌入式圖形設(shè)備提供了可擴(kuò)展的高性能、低功耗3D圖形內(nèi)核。PICA200是最新的3D圖形IP內(nèi)核,涵蓋了前面提到的所有應(yīng)用領(lǐng)域。
該內(nèi)核由多個(gè)組件組成,包括OpenGL ES標(biāo)準(zhǔn)功能以及我們自己最初的圖形技術(shù)。這些組件是根據(jù)用戶要求以及帶有定制要素(如性能、存儲(chǔ)器帶寬和功耗)的目標(biāo)系統(tǒng)構(gòu)建的。在選擇IP接口方案時(shí),很難設(shè)定在這么寬的應(yīng)用范圍下用戶的具體要求。在采用開(kāi)放內(nèi)核協(xié)議(OCP)作為我們組件的標(biāo)準(zhǔn)總線接口方面DMP一直做得非常成功。
Maestro技術(shù)
通過(guò)采用OpenGL ES 1.1和我們自己的、被稱為Maestro的擴(kuò)展圖形API,圖形內(nèi)核已經(jīng)取得了很好的高性能低功耗效果。這些Maestro功能包括了各種目標(biāo)應(yīng)用中頻繁使用和實(shí)用的圖形功能,包括各種光照和明暗處理模型,例如Phong、Cook-Torrance和BRDF、陰影效應(yīng)、多邊形細(xì)分以及過(guò)程紋理。
1:Maestro功能、光照、陰影和微粒效果
Maestro功能利用我們改進(jìn)的最初算法以硬連線邏輯形式實(shí)現(xiàn),從而解決了嵌入式系統(tǒng)設(shè)計(jì)中低功耗與高性能的矛盾。Maestro功能可以實(shí)現(xiàn)非常豐富的內(nèi)容,比如PC和便攜式設(shè)備上的控制臺(tái)圖形(圖1)。
Maestro功能包括以下一些效果:
1. 光照Maestro-包括按照每個(gè)片斷的高性能光照功能,并支持各種明暗處理模型,如Phong、同向/異向 BRD以及下表面散射;
2. 陰影Maestro-支持實(shí)時(shí)的硬陰影和軟陰影處理;
3. 形狀Maestro-通過(guò)用硬件(例如NURBS和多邊形細(xì)分)產(chǎn)生精細(xì)的多邊形來(lái)減少存儲(chǔ)器帶寬,因此可以使輸入數(shù)據(jù)量實(shí)現(xiàn)最小化;
4. 映像Maestro-支持凹凸映像和過(guò)程紋理,并且過(guò)程紋理不需要任何存儲(chǔ)器讀取來(lái)生成紋理圖像,因?yàn)閳D像是根據(jù)算術(shù)等式產(chǎn)生的;
5. 微粒Maestro-用硬件產(chǎn)生霧化、云和氣體效果。
圖1:由Futuremark和DMP合作開(kāi)發(fā)的PICA200演示場(chǎng)景。
圖2:只使用OpenGL ES的渲染結(jié)果(左邊)以及用OpenGL ES 和我們的Maestro API后的渲染結(jié)果(右邊)
圖3:利用我們的陰影Maestro API實(shí)現(xiàn)的實(shí)時(shí)軟陰影渲染。
圖4:使用形狀Maestro的多邊形細(xì)分實(shí)例。左邊的圖形顯示了來(lái)自主CPU的輸入控制多邊形,右邊的圖形顯示了我們的圖形硬件實(shí)時(shí)產(chǎn)生的多邊形。
圖5:映像Maestro實(shí)例(左邊:針對(duì)每個(gè)片段光照的凹凸映像,右邊:利用沒(méi)有任何紋理存儲(chǔ)器訪問(wèn)的過(guò)程紋理硬件實(shí)現(xiàn)的木紋圖案)。
圖6:微粒 Maestro可以產(chǎn)生霧化、云和氣體效果。在我們的渲染算法中,清晰和模糊對(duì)象的組合沒(méi)有任何的瑕疵。
2:硬件框圖
這些Maestro技術(shù)通過(guò)算法優(yōu)化以及多個(gè)研究機(jī)構(gòu)的長(zhǎng)期研究得以實(shí)現(xiàn)。目前我們正在向嵌入式系統(tǒng)引入PC級(jí)的圖形和經(jīng)驗(yàn)。
硬件框圖
下面是圖形內(nèi)核的框圖。
在圖7中的所有紅色箭頭都指向了采用OCP的存儲(chǔ)器總線接口。
圖7:PICA200框圖。
在開(kāi)發(fā)PICA200內(nèi)核的過(guò)程中解決了以下一些挑戰(zhàn):
1)為了涵蓋所有嵌入式系統(tǒng),IP內(nèi)核必須支持各種運(yùn)行光譜的設(shè)備,包括從帶微型顯示屏的移動(dòng)電話到帶很大顯示器的娛樂(lè)設(shè)備。
2)3D圖形硬件需要極大的帶寬用于命令、紋理、色彩和z緩沖器讀/寫(xiě)訪問(wèn),而這種帶寬將確定3D IP內(nèi)核的性能,并且
3)IP內(nèi)核應(yīng)能很容易地集成到SoC系統(tǒng)環(huán)境中。
為解決所有這些問(wèn)題,我們決定采用OCP作為我們構(gòu)建模塊方案的標(biāo)準(zhǔn)接口基礎(chǔ)架構(gòu)。結(jié)果是,我們可以提供下面的選項(xiàng)來(lái)滿足用戶的需求(表1)。
以移動(dòng)電話系統(tǒng)為例,要求支持OpenGL ES功能和VGA顯示器尺寸,功耗應(yīng)該最小,因此在這種情況下,頂點(diǎn)處理器和紋理管線的數(shù)量需要分別優(yōu)化為兩個(gè)(當(dāng)然這里的數(shù)量?jī)H僅是一個(gè)例子)。Maestro功能的實(shí)現(xiàn)并不僅僅支持Open ES,因?yàn)樵诖罅康姆涓C電話中不需要非標(biāo)準(zhǔn)的功能。紋理緩存參數(shù)也可以針對(duì)SoC總線特性進(jìn)行優(yōu)化,因?yàn)槭聦?shí)上這些參數(shù)是由OCP標(biāo)準(zhǔn)自動(dòng)提供的。在像娛樂(lè)游戲機(jī)這樣的應(yīng)用中,所有Maestro功能都需要組件來(lái)支持更高質(zhì)量和吸引人的內(nèi)容以及高性能和大顯示器尺寸。
我們還采用了利用OCP線程協(xié)議的預(yù)取機(jī)制。這對(duì)于避免渲染管線的停頓以保持很高的渲染性能來(lái)說(shuō)是很重要的。表2給出了在該圖形內(nèi)核中線程ID分配的實(shí)例,在這個(gè)例子中,內(nèi)核共有四個(gè)紋理模塊。
OCP2.2支持標(biāo)示哪個(gè)線程允許失序響應(yīng),但是這個(gè)特殊DMP內(nèi)核并不支持失序處理,因?yàn)閷?duì)色彩和深度緩沖器的訪問(wèn)需要使用基于讀-修改-寫(xiě)鎖定的訪問(wèn),對(duì)其它的訪問(wèn)沒(méi)有針對(duì)失序訪問(wèn)支持的邏輯和FIFO,以便生成小型IP內(nèi)核及支持上述各種應(yīng)用。為了在沒(méi)有標(biāo)示功能條件下獲得較好的存儲(chǔ)器訪問(wèn)性能,這種圖形內(nèi)核針對(duì)基于模塊化的光柵化處理進(jìn)行了優(yōu)化,所有從三角函數(shù)產(chǎn)生的象素都要通過(guò)4X4這樣的矩形塊處理,以便通過(guò)長(zhǎng)突發(fā)長(zhǎng)度訪問(wèn)和數(shù)據(jù)訪問(wèn)跟上對(duì)齊地址而充分利用存儲(chǔ)器訪問(wèn),并為紋理和色彩緩沖器獲得較高的緩存利用率。
3:OCP好處
使用OCP的最大好處是廣泛使用的行業(yè)標(biāo)準(zhǔn)是開(kāi)放的,任何人都能得到。此外,大多數(shù)主要的SoC銷售商利用和支持OCP。這樣一來(lái),我們可以根據(jù)協(xié)議在我們的接口和緩存中定義某些參數(shù),以優(yōu)化我們的用戶總線訪問(wèn)接口和系統(tǒng)參數(shù),就像表1中的最后一行,這為IP提供商和SoC供應(yīng)商同時(shí)提供了一種高層次的構(gòu)建模塊概念。
本文小結(jié)
這種內(nèi)核最早是在SIGGRAPH 2006上發(fā)布的(圖8),目前PICA200構(gòu)建內(nèi)核已經(jīng)能夠供貨。
圖8:在SIGGRAPH 2006上的FPGA原型展示。
我們多年來(lái)一直在為嵌入式應(yīng)用開(kāi)發(fā)3D圖形技術(shù),而利用OCP可以減少開(kāi)發(fā)這種技術(shù)的時(shí)間和成本。對(duì)于IP內(nèi)核和SoC供應(yīng)商來(lái)說(shuō),系統(tǒng)整合工作是一項(xiàng)非常耗時(shí)的工作。PICA200內(nèi)核不僅支持各種嵌入式應(yīng)用,還通過(guò)利用基于OCP的構(gòu)建模塊方案優(yōu)化了每個(gè)系統(tǒng)的性能。OCP提供了能夠滿足上述設(shè)計(jì)挑戰(zhàn)所需的完整規(guī)范和基礎(chǔ)架構(gòu)。
責(zé)任編輯:gt
-
嵌入式
+關(guān)注
關(guān)注
5086文章
19141瀏覽量
305932 -
可編程
+關(guān)注
關(guān)注
2文章
866瀏覽量
39845 -
導(dǎo)航系統(tǒng)
+關(guān)注
關(guān)注
2文章
266瀏覽量
30733
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論