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