两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

快速像素渲染處理的制作方法

文檔序號:6456774閱讀:362來源:國知局
專利名稱:快速像素渲染處理的制作方法
技術領域
本揭示內容通常涉及圖像處理,且更具體來說,涉及在沒有專用硬件圖形加速器 的情況下提供快速像素渲染處理的三維(3D)圖形管線的技術。
背景技術
將關于3D對象的信息轉換成可顯示的位圖稱為像素渲染,且需要相當大的存儲 器及處理功率。過去,僅可在功能強大的工作臺上獲得3D圖形,而現(xiàn)在通??稍趥€ 人計算機(PC)中找到3D圖形加速器。硬件圖形加速器含有存儲器(例如,指令隨 機存取存儲器(IRAM))及專業(yè)化微處理器以處理眾多3D渲染操作。用于桌面的 Open GL⑧(開放式圖形庫)界定用于寫入產生3D及2D計算機圖形的應用程序的應用 程序編程界面(API)。所述API包含用于從基元繪制復雜三維場景的數(shù)百個函數(shù)。
OpenGL⑧ES是所述桌面OpenGL⑧的子集,其形成軟件與圖形之間的界面。所述 3D圖形引擎(OpenGL⑧ES)通常實施為兩個部分。第一部分包含處理頂點的那些函數(shù)且 通常在數(shù)字信號處理(DSP)固件中實施。第二部分包含用于像素渲染的那些函數(shù)且 在專用硬件圖形加速器中實施。執(zhí)行像素渲染的第二部分是常規(guī)3D圖形引擎的最后 管線級。最后管線級處理輸入三角形集以產生所述圖形圖像的像素表示。然而,所述 最后管線級通常是引擎中整個3D圖形管線的性能瓶頸。因此,改善用于像素渲染的 最后管線級的性能(以每秒的像素計)是非常重要的。
通常,在像素渲染操作期間,需要按與輸入所述三角形的相同次序來依序處理每 一輸入三角形。因此,阻止一具有多線程的處理器利用交錯式并行處理來處理輸入三 角形。
此外,所述硬件圖形加速器通常不靈活或不易伸縮。因此,所述硬件圖形加速器 不易添加新特征、支持3D圖形標準的更高版本(例如OpenGL⑧ES 1.0、 1.1 ...)、支 持不同的應用程序配置及定制要求。此外,所述硬件圖形加速器不易于針對不同的性 能要求(幀速率、屏幕大小、像素速率、三角形速率等)而伸縮,以最優(yōu)化硅成本及 系統(tǒng)功率消耗。
如可容易地看到,專用硬件圖形加速器占據小手持計算裝置(例如,移動或蜂窩 式電話)中的硅面積。因此,專用硬件圖形加速器會使手持計算裝置因包含所述專用 硬件圖形加速器及所用IRAM而增加其總成本。使用專用硬件圖形加速器還產生與 DSP的數(shù)據業(yè)務,從而添加開銷且消耗功率。因此,此項技術中需要在沒有專用硬件圖形處理器的情況下提供更快像素渲染處 理的三維(3D)圖形管線的技術。

發(fā)明內容
本文中描述在沒有專用硬件圖形加速器的情況下提供更快像素渲染處理的三維 (3D)圖形管線的技術。在實施例中,三維(3D)圖形管線包含頂點處理級,其可操 作以輸出3D圖形圖像的頂點信息。顯示細分級將顯示區(qū)域(其上疊加有輸出頂點信 息)中的像素劃分為子屏幕,所述子屏幕形成子屏幕任務列表。像素渲染級并行且獨 立地處理所述子屏幕任務列表中的多個子屏幕任務。
在另一方面中,無線裝置具有具有多個處理線程的數(shù)字信號處理器、由所述處理 線程存取的共享存儲器及處理器。所述處理器可操作以通過并行且獨立地處理子屏幕 任務列表中的多個子屏幕任務中的那些像素,而在沒有專用圖形加速器的情況下執(zhí)行 像素渲染。所述子屏幕任務包含疊加有頂點輸出信息的顯示區(qū)域的像素的一部分。
下文中將進一步詳細闡述本發(fā)明揭示內容的各種方面及實施例。


當結合圖式參照下文所述詳細說明時,本發(fā)明揭示內容的各方面及實施例將變得
更明了 ,在所有圖式中相同的參考字符識別對應的元件。 圖1圖解說明3D成像設備的一般方框圖。 圖2圖解說明與共享存儲器介接的交錯式多線程處理器。 圖3圖解說明交錯式多線程處理器的細節(jié),其中顯示出每一線程的細節(jié)。 圖4圖解說明多線程處理器使用6個線程處理交錯指令的執(zhí)行時間與核心管線的圖表。
圖5圖解說明通過兩個線程處理的兩個并行指令集。
圖6圖解說明在實例性3D成像設備中3D圖形管線的一般流程圖。
圖7圖解說明3D圖形管線的過程的一般方框圖。
圖8A圖解說明被細分為MxN個柵格的顯示空間,其中M>1且NW。
圖8B圖解說明用于處理圖8A的經細分的顯示空間的任務列表。
圖9圖解說明被細分為MxN個柵格的顯示空間,其中M=l iN>l。
圖10圖解說明被細分為MxN個柵格的顯示空間,其中M>1且N4。
圖11圖解說明由頂點坐標界定且具有多個像素的三角形。
圖12圖解說明用于在被細分為一組四個細分區(qū)域的區(qū)域中處理三角形的指令操 作的圖形表示。
圖13圖解說明使用多線程處理器的3D圖形管線方法的流程圖。
具體實施例方式
在本文中,"例示性" 一詞用于意指"擔當實例、例子或例解"。本文中描述為 "實例性"的任何實施例或設計皆未必應視為比其它實施例或設計佳或有利。
眾多游戲應用程序需要在二維(2D)空間(例如,顯示屏幕)中顯示3D對象的 三維(3D)圖形應用程序。2D圖形中的像素具有定位、色彩及亮度的特性,而3D像 素添加指示所述點處于虛構Z軸上何處的深度特性。紋理隨著3D像素被組合而形成, 所述像素的每一者具有其自己的深度值。
現(xiàn)參照圖1,圖中顯示3D成像設備(通常標示為10)的實施例。3D成像設備 10包含通信單元12、數(shù)字信號處理器(DSP) 20、具有顯示區(qū)域18的屏幕16,存儲 器24及輸入/輸出(I/O)單元45。共享存儲器24可存儲游戲應用程序或者可按用戶 所需或為支持設備10的特征集而存儲其它應用程序(即,針對使用有線或無限網絡的 雙向通信,及其它軟件應用程序)。1/0單元45可包含鍵臺、鍵盤或數(shù)據通信端口。 屏幕16可操作以在顯示區(qū)域18中顯示2D信息以及3D圖形。
3D成像設備10可包含以下裝置中的一者個人數(shù)字助理(PDA);及移動、蜂 窩式或衛(wèi)星電話;膝上型計算機;筆記本計算機;平板PC;掌中寶(Palm Pilot); 無線通信裝置或類似物。
現(xiàn)參照圖2-5,在所述實例性實施例中,DSP20包含交錯式多線程處理器22。交 錯式多線程處理器22具有多個處理線程(PT) PT1、 PT2、 ...PTX。每一處理線程(PT) PT1、 PT2、…PTX共享表示為共享存儲器24的同一存儲器。每一處理線程l、 ...X均 包含相應一個指令集26卜.26x、核心27卜.27x (處理單元)及寄存器堆28卜28x。每一 核心27卜.27x的輸出與共享存儲器24通信。指令26r-26x包含用于執(zhí)行以下界定的操 作及用于執(zhí)行3D成像設備10的特征集(例如,多媒體)的其它操作的編程代碼。核 心27卜.27x執(zhí)行指令26卜.26x。
寄存器堆28廣'28x是一組通用寄存器且是DSP 20或微處理器的中心級。這些寄 存器堆28i…28x保持所有操作數(shù)(通常從存儲器載入),即,在將來自所有運算(例 如,算術運算、邏輯運算等)的所有結果存儲到共享存儲器24中之前保持所述結果。
某些DSP架構具有四個線程。然而,DSP 20可具有多于四個的線程,例如,在 沒有限制的情況下,六個并行運行的處理線程。在實例性實施例中,每一并行線程(PT) PT1、 PT2、 ...PTX提供每秒IOO個百萬指令包(MIPS)。每一指令包可以是四(4) 個指令、兩(2)個指令(超標量)或僅一個指令。然而,出于效率緣由不推薦一個指 令,因為DSP 20的架構去除指令間數(shù)據相依性所致的低效率。
使用術語線程或多線程來描述同時任務執(zhí)行。替代單個執(zhí)行路徑,可將程序(操 作)分解成多個同時執(zhí)行的執(zhí)行線程。在所述實例性實施例中,存在啟動線程,其需 要函數(shù)調用(或指令),且通常需要至少兩個自變數(shù)(1)所述啟動指令的位址;及 (2)上下文自變數(shù)。當線程正在運作及/或正在退出時,所述線程需要能夠做與其它處理線程相關的兩個基本工作(l)獲取共享資源且阻止其它線程使用此資源;及(2) 將消息安全地發(fā)送到其它線程(例如,己完成的、就緒的線程等)。
現(xiàn)參照圖4,其中顯示所述交錯式多線程并行處理的圖表。在此實例中,存在六 (6)個處理線程PT1、 PT2、 PT3、 PT4、 PT5及PT6。第一處理線程PT1處理第一指 令集1。此由核心管線的執(zhí)行時間線的第一(頂部)行表示。所述核心管線由核心27p… 27x表示。當?shù)谝惶幚砭€程PT1處理第一指令集1時,第二處理線程PT2處理其第一 指令集l。此由所述執(zhí)行時間線的第二行表示。因此,并行處理所述第一指令集l。
第三處理線程PT3處理其第一指令集1而第一及第二處理線程PT1及PT2處理 其第一指令集1。此由所述核心管線的執(zhí)行時間線的第三行表示。第四處理線程PT4 處理其第一指令集l。同時,第一、第二及第三處理線程PT1、 PT2及PT3繼續(xù)處理 其相關聯(lián)的第一指令集1。此由所述核心管線的執(zhí)行時間線的第四行表示。
第五處理線程PT5處理其第一指令集1而第一、第二、第三及第四處理線程PT1、 PT2、 PT3及PT4繼續(xù)處理其第一指令集1。此由所述核心管線的執(zhí)行時間線的第五行 表示。第六處理線程PT6處理其第一指令集1而第一、第二、第三、第四及第五處理 線程PT1、 PT2、 PT3、 PT4及PT5繼續(xù)處理其第一指令集1。此由所述核心管線的執(zhí) 行時間線的第六行表示。因此,所述處理線程對指令的處理是交錯的。
現(xiàn)參照圖4的第七(底部)行,假設第一處理線程PT1己完成其第一指令集l, 那么第一處理線程PT1開始處理第二指令集2而第二、第三、第四、第五及第六處理 線程PT2、 PT3、 PT4、 PT5及PT6繼續(xù)處理其第一指令集1。因此,處理線程PT1、 PT2、 ..PTX中的每一者的處理是并行且交錯的。
描述所有處理線程的交錯式處理負擔太重。因此,出于說明的目的,圖5中顯示 使用指令26i及262的交錯式處理,因為其與互斥相關。互斥是同時僅由一個處理線程 "擁有"的工具。當處理線程試圖獲取互斥時,其鎖定所述互斥。另一方面,如果所 述互斥已被鎖定,那么所述處理線程停止。當所述擁有的線程解鎖所述互斥時,所述 停止的線程重啟且獲取所述互斥的所有權。此過程在圖5中顯示。
在以第一處理線程PT1開始后,指令26,以執(zhí)行非關鍵代碼的步驟S22A開始。 步驟S22A后面是步驟S24A,其中第一處理線程PT1執(zhí)行鎖定互斥1指令(假設互斥 1已解鎖)。因此,第一處理線程PT1現(xiàn)在擁有互斥1。步驟S24A后面是步驟S26A, 其中執(zhí)行關鍵代碼。步驟S26A后面是步驟S28A,其中在完成所述關鍵代碼后,第一 處理線程PT1執(zhí)行解鎖互斥1指令。此后,第一處理線程PT1在步驟S30A處重新開 始非關鍵代碼的執(zhí)行。
與第一處理線程PT1并行,第二處理線程PT2在其中執(zhí)行非關鍵代碼的步驟S22B 處開始指令262。步驟S22B后面是步驟S24B,其中第二處理線程PT2期望在步驟S24B 處鎖定互斥l。然而,互斥l處于已鎖定狀態(tài)。因此,第二處理線程PT2的操作停止 直到第一處理線程PT1在步驟S28A處解鎖互斥1為止。隨后,開始其中可執(zhí)行所述 關鍵代碼的步驟26B。步驟S26B后面是步驟S28B,其中在完成所述關鍵代碼之后,第二處理線程PT2執(zhí)行經解鎖的互斥1指令。此后可繼續(xù)其它指令。
僅在需要時,使用所述互斥工具或另一令牌工具以保證在不同處理線程中對關鍵 區(qū)段的串行執(zhí)行。此也是對執(zhí)行進行串行化,而此意味著當某個代碼與其它線程執(zhí)行 的代碼發(fā)生沖突時,不可執(zhí)行所述代碼。由于使用共享存儲器24 (共享資源),互斥 工具是有幫助的。
現(xiàn)參照圖6及7,圖中顯示所述3D圖形管線(通常標示為100)的一般流程及方 框圖的實施例。3D圖形管線100通常將屏幕16的顯示區(qū)域18中的3D表示的整體任 務劃分為三(3)個管線級頂點處理(VP)級110、屏幕細分(SSD)級130及像素 渲染(PR)級140。在操作中,頂點處理(VP)級IIO包含當前在OpenGL⑧或OpenGL⑧ES 中實施且由數(shù)字信號處理器(DSP) 20處理的所有函數(shù)或所述函數(shù)子集。以假象方式 顯示通至屏幕16的線,因為屏幕16并非3D圖形管線100的一部分。
VP級110包含模型視界變換操作112、投影操作114、剔除操作U6、光照及著 色操作118、基元組裝操作120、裁剪(即用戶界定的裁剪)操作122及透視除法及 視口操作124。在OpenGL⑧或OpenGL⑧ES中明確界定了 VP級110的這些操作中的 每一者。
通常,模型視界變換操作112使用數(shù)學運算來將對象模型置于所需的位置及定向。 投影操作114使用使近事物更大及遠事物更小的數(shù)學運算。遮斷將近對象繪制在遠對 象前方。剔除及裁剪操作116及122丟棄不在視界中的事物。光照操作118計算表面 上的光的效應。
在所述實例性實施例中,VP級110可通過一個處理線程(圖2及3)實施。頂點 輸出信息包含用以在顯示區(qū)域16中界定三角形及其位置的頂點信息。所述頂點輸出信 息疊加在顯示區(qū)域16上,因為顯示區(qū)域16的像素包含頂點輸出信息以根據OpenGL⑧、 OpenGL⑧ES或其它圖形庫界定三角形。
屏幕細分(SSD)級130包含將顯示區(qū)域18劃分成MfN個子屏幕的屏幕細分操 作132。顯示區(qū)域18由多個疊加有所述頂點輸出信息的像素P (圖11)組成。來自 VP級110的頂點信息提供針對顯示區(qū)域18中的重疊界定三角形(例如圖8A的Tl及 T2)的頂點信息(例如圖11的V1、 V2及V3)。所述頂點信息可包含頂點坐標及邊 緣信息。通常,每一三角形的頂點輸出信息僅是數(shù)學描述集以界定封閉的區(qū)域。此數(shù) 學描述集存儲在共享存儲器24中以使得每一處理線程(PT1、 PT2、 ...PTX)可使用所 述數(shù)學描述集來計算在其自己的子屏幕任務內的每一像素P (圖ll)且決定像素是否 處在三角形內部。
圖8A圖解說明疊加于顯示區(qū)域18上的頂點輸出信息。在屏幕細分(SSD)級130 期間,通過將組成顯示區(qū)域18的像素劃分或分組成MxN個子屏幕任務來細分顯示區(qū) 域18,如圖8B中最佳所見。所述MxN個子屏幕任務是存儲于共享存儲器24中的 MxN個獨立任務。SSD級130的操作可使用與VP級110期間使用的處理線程分離的 處理線程實施。另一選擇為,可針對相同處理線程組合SSD級130的操作與VP級110的操作。
在圖8A中所示的實施例中,將顯示區(qū)域18劃分成MxN個子屏幕以形成柵格, 其中M〉1且N〉1。出于說明目的,圖9顯示顯示區(qū)域18'被劃分成MxN個子屏幕, 其中M4且N〉1。箭頭圖解說明掃描或工作流程方向。參照圖IO,顯示區(qū)域18"被劃 分成MxN個子屏幕,其中M〉1且NH。因此,顯示區(qū)域18"的子屏幕形成一系列列。
像素渲染(PR)級140包含光柵化、混合及紋理化應用程序操作142以及隱藏表 面去除操作144。然而,像素渲染級140可包含由OpenGL⑧或OpenGL ES界定的其 它操作。PR級140將來自VP級110的關于3D對象的信息轉換成可在屏幕16的顯示 區(qū)域18中顯示的位圖。PR級140處理輸入三角形集以產生3D圖形圖像的像素表示。
典型的像素渲染(PR)級可首先從頂點輸出信息列表中提取三角形。接下來,所 述PR級將從所述顯示區(qū)域提取像素且對照所述三角形計算所述像素以確定其是否在 所述三角形內部。如果被評估像素處在所述三角形內部,那么所述PR級可借助來自 所述三角形的對應色彩對像素執(zhí)行著色。如果被評估的像素不在所述三角形內部,則 跳過所述像素。然后,所述PR級將挑選顯示區(qū)域18中的下一個像素。所述PR級針 對顯示區(qū)域18中的其它像素重復以上過程直到已針對三角形評估或處理所有像素為 止。因此, 一次一個地處理像素。
然后,所述典型PR級將移到頂點輸出信息列表中的下一三角形并針對當前三角 形重復像素評估。
PR級140以類似方式處理多個子屏幕或子屏幕任務。不同之處在于所述子屏幕 具有較少數(shù)目要評估或處理的像素而處理線程(PT1、 PT2、…PTX)可獨立且并行地 處理多個子屏幕。因此,PR級140的處理時間比典型PR級快得多,因為每一子屏幕 中有較少像素且可并行地處理多個子屏幕(其中每一處理線程在處理一相應子屏幕中 的像素中皆獨立地工作)。
在實例性實施例中,使用交錯式多線程處理器22的一組多個處理線程PR1、 PR2、 ...PRX來處理PR級140。所述組中的用于PR級140的線程數(shù)目可以是2或更 多,其中最大值為X個線程。
在操作中,指派給像素渲染級140的每一處理線程PR1、 PR2、…PRX從任務列 表135捕獲可用子屏幕任務并將其從任務列表135中去除。所述組處理線程PR1、 PR2、…PRX以交錯式并行操作方式處理輸入三角形以渲染子屏幕中的像素(將輸入 三角形信息轉換成位圖以供在子屏幕中顯示)。在相應一個處理線程針對所捕獲子屏 幕任務完成像素渲染操作之后,所述處理線程移至任務列表135中的下一可用子屏幕 任務。重復此操作直到處理完所有子屏幕且完成像素渲染級140為止。
交錯式多線程處理器22允許所述多線程處理為 伸縮及均一的。操作6可由下式 界定<formula>formula see original document page 11</formula>
參照圖12,圖中顯示用于像素渲染的具有單個三角形T的四個子屏幕的方框。操 作d處理子屏幕任務Sn、 Sl2、 S^及S22,其表示為各自具有三角形T的細分部分(i) 的四個(i)子屏幕。因此,操作6等于子屏幕Su的操作4加上子屏幕S^的操作4加 上子屏幕S21的操作A加上子屏幕S22的操作^ 。如果并行地處理所有操作4 、 4 、 4 及64 ,處理像素渲染級140的總峰值性能因此是處理線程的峰值性能乘以所用的處理 線程的數(shù)目。子屏幕S 具有用于三角形T的像素的細分部分TlQ子屏幕SI2具有用于 三角形T的像素的細分部分T2。子屏幕S21具有用于三角形T的像素的細分部分T3。 子屏幕S22具有用于三角形T的像素的細分部分T4。出于說明的目的,線程的數(shù)目為 四(4)。由此,在此實例中,所述性能將是一個處理線程的性能乘以處理線程的數(shù)目。 因此,PR級140憑借其并行處理來自多個子屏幕的像素的能力而為快速像素渲染級。
另外,可在用真實應用建立簡檔之后配置M及N的數(shù)目,以便可針對不同情況 進一步最優(yōu)化性能。配置M及N為靈活性及伸縮性提供另一較大空間。建立簡檔包 含識別處理線程的載入(打標記計數(shù))或者操作任務的大小或復雜性。建立簡檔也可 包含評估其它分量,例如,與從共享存儲器24轉移數(shù)據及共享存儲器24的存儲器容 量相關聯(lián)的參數(shù)。借助建立簡檔及調整,可將幀速率、屏幕大小、像素速率、三角形 速率等用來改變或變更M及N及/或變更供在PR級140中使用的處理線程PR1、 PR2、…PRX的數(shù)目。剩余處理線程PR1、 PR2、 ...PRX用于同時運行的其它應用程序, 例如游戲-音頻。
現(xiàn)參照圖13,圖中顯示供3D圖形管線100使用的3D圖形管線方法200的流程 圖。方法200以步驟S202開始,其中執(zhí)行頂點處理以產生頂點輸出信息。步驟S202 后面是步驟S204,其中將疊加有頂點輸出信息的顯示區(qū)域18細分為MxN個子屏幕。 例如,如在圖8A中最佳所見,三角形T1延伸跨越子屏幕Sn、 S2t及S22且被細分為 圖8B中所示的其相應的細分部分Th、 Tl2、 Tl3。因此,圖8B中的任務列表135圖 解說明三角形Tl及T2的細分部分(出于說明的目的僅顯示兩個三角形)。如可了解, 可更快地處理任務列表135中來自頂點輸出信息的那些輸入項,所述頂點輸出信息的 確不具有與其相關聯(lián)的三角形或具有三角形的較小細分部分。因此,在像素渲染級140
在顯示區(qū)域18上顯示表示所述三角形的3D圖像之前,應完成對所述三角形的所有細 分部分的處理。
步驟S204后面是步驟S206,其中形成具有或不具有三角形的子部分的子屏幕任 務并將其置于任務列表135中。步驟S206后面是步驟S208!、 2082及208Y,其中Y 是所述組中的用于像素渲染級140的處理線程的數(shù)目(2個或更多個)。在步驟S208j 處,第一處理線程(下文稱為"線程l")獲得(第一)可用子屏幕任務(圖8B),在步驟S21(h處,處理所述子屏幕任務中的每一像素(尤其是經確定處在三角形或與 所述任務相關聯(lián)的三角形部分內或內部的那些像素)。步驟S210i后面是步驟S212p 其中做出其是否為任務列表135的結束的確定。如果所述確定為"是",那么線程1 的處理結束。否則,如果所述確定為"否",那么步驟S212,返回到步驟S208i。第二 處理線程(下文稱為"線程2")的操作基本上相同。線程2獲得或捕獲任務列表135 中的下一可用子屏幕任務。步驟S2082后面是步驟S2102,其中處理所述子屏幕任務。 步驟S2082后面是步驟S2102。步驟S2102后面是步驟S2122。在步驟S2122處,做出 任務列表135中是否還有任何更多任務的確定。如果步驟S2122處的確定為"否", 那么所述方法結束。否則,如果所述確定為"是",那么步驟S2122返回到步驟S2082。 步驟S208y通過線程Y獲得或捕獲第Y個可用子屏幕任務。步驟S208y后面是歩
驟S210y,其中處理所述子屏幕任務。步驟S210Y后面是步驟S212y,其中做出任務列
表135中是否還有任何更多任務的確定。如果所述確定為"否",那么所述方法結束。 否則,如果所述確定為"是",那么步驟S212Y返回到步驟S208y。
在步驟S210p S2102及S210y期間執(zhí)行的處理執(zhí)行光柵化、混合、紋理化應用程 序操作142及隱藏表面去除操作144。具體參照圖ll,具有中心點的正方形表示像素 P。像素P中的有些像素處在三角形Tll內部而有些像素處在三角形T11外部。每一 頂點V1、 V2及V3具有附有平滑描影的色彩值。使用線性插值來計算每一像素P處 的色彩值。使用頂點V1、 V2及V3來形成三角形T11且將此三角形置于顯示區(qū)域18 內。計算每一像素中心(由處在所述正方形中心的黑色點表示)處的色彩。插入包含 Z深度、a、霧及紋理的各種參數(shù)。
再參照圖2-4,在此實例中,存在六(6)個線程PT1、 PT2、 PT3、 PT4、 PT5及 PT6。第一線程PT1可用來處理VP級110。第二線程PT2可用來處理SSD級130。 剩余的四個線程PT3、 PT4、 PT5及PT6將用來并行地處理來自任務列表135的子屏 幕任務。此處,處理線程PT3將獲得第一個可用子屏幕任務1,1并處理所捕獲的第一 子屏幕任務1,1中的像素。處理線程PT4將獲得下一個(第二個)可用子屏幕任務1,2 且處理所捕獲的子屏幕任務1,2中的像素。處理線程PT5將獲得下一個(第三個)可 用子屏幕任務1,3且處理所捕獲的子屏幕任務1,3中的像素(假設M大于3)。
假設M為4,處理線程PT6將獲得下一個(第四個)可用子屏幕任務l,M且處 理所捕獲的子屏幕任務l,M中的像素。當處理線程PT3、 PT4、 PT5及PT6完成其各 自的子屏幕任務時,將捕獲并并行地處理額外子屏幕任務直到任務列表135為空為止。
如果一個處理線程執(zhí)行3M像素/秒渲染,那么處理一個像素將需要約30個指令 包。g卩,平均每像素大約IOO個指令。保留六個線程中的兩個線程用于VP級IIO及 SSD級130,以使剩余的四個處理線程來做所述像素渲染,此將支持是專用硬件圖形 加速器的性能(12M像素/秒)四倍的VGA分辨率。
因為所有處理線程共享相同存儲器24,所以所述處理線程可使用互斥工具非常有 效地(不重復地)共同處理同一輸入三角形數(shù)據集(子屏幕任務)。像素渲染級140是3D圖形管線100的最后管線級。PR級140處理輸入三角形列 表以產生3D圖形圖像的像素表示。以上所述的3D圖形管線100改善PR級140的性 能(以每秒像素計)。交錯式多線程處理器22以并行運行以處理任務列表35的處理 線程的數(shù)目的一倍數(shù)增加性能。
所述3D圖形管線架構的優(yōu)點是其在允許調整數(shù)目M及N方面的靈活性。通過增 加數(shù)目M及N,降低像素渲染級140的MIPS要求。因為每一子屏幕變得越來越小, 所以渲染任務變得越來越簡單。此有助于增加多個處理線程的性能。處理線程也可用 于其它同時應用程序,例如音頻。
如可容易地看到,本文所述用于渲染3D圖形圖像的軟件實施方案具有比專用圖 形加速器的硬件實施方案更高的性能。與圖形加速器的硬件實施方案相比,本文所述 的實施例是靈活且可伸縮的。因為本實施例是靈活的,所以易于擴展軟件代碼以添加 新特征、支持3D圖形標準的更高版本(例如OpenGLESl.O、 l丄..)及支持不同應用 配置及客戶要求。本實施例的可伸縮特征允許不同的性能要求(幀速率,屏幕大小, 像素速率、三角形速率等),以最優(yōu)化硅成本及系統(tǒng)功率消耗。
此實施例還能夠實現(xiàn)所述軟件實施方案與低成本且低功率處理器配合使用,替代 使用具有多-GHz時鐘速率的高端處理器以達到相同的性能。
在實例性實施例中,本文所述的方法及過程可以包括一個或一個以上計算^l可執(zhí) 行指令的計算機程序產品的形式實施于硬件、軟件、固件或其任意組合中。當實施于 軟件中時,所述計算機程序產品可存儲在計算機可讀媒體上或使用計算機可讀媒體傳 輸,所述計算機可讀媒體包含計算機存儲媒體及計算機通信媒體。
本文中,術語"計算機存儲媒體"是指適應存儲致使所述計算機執(zhí)行所述方法的 指令的任何媒體。舉例而言,而不限于此,所述計算機存儲媒體可包括故態(tài)存儲器裝 置,包含電子存儲器裝置(例如,RAM、 ROM、 EEPROM及類似物)、光學存儲器 裝置(例如,光盤(CD)、多樣化數(shù)字光盤(DVD)及類似物)、或磁性存儲器裝置 (例如,硬驅動器、快閃驅動器、磁帶驅動器及類似物)、或其它適應存儲所述計算 機程序產品的存儲器裝置、或此類存儲器裝置的一組合。
本文中,術語"計算機通信媒體"是指適應使用例如經調制載波、光學信號、DC 或AC電流及類似方法將所述計算機程序產品從一個地點傳輸?shù)搅硪粋€地點的任何實 體接口。舉例而言,而不限于此,所述計算機通信媒體可包括雙絞線、印刷或扁平電 纜、同軸電纜、光纜、數(shù)字訂戶線(DSL)或其它有線、無線、或光學串行或并行接 口或其一組合。
上文對所揭示實施例的說明意在使任何所屬領域的技術人員均可制作或使用本 發(fā)明。所屬領域的技術人員將易知對所述實施例的各種修改,且本文所界定的一般原 理可應用于其它實施例,此并不背離本發(fā)明的精神或范圍。因此,本發(fā)明并非意欲限 定為本文所示的實施例,而是欲賦予其與本文所揭示的原理及新穎^^征相一致的最寬 廣范圍。
權利要求
1、一種三維(3D)圖形管線,其包括頂點處理級,其可操作以輸出3D圖形圖像的頂點信息;顯示細分級,其可操作以將疊加有所述輸出頂點信息的顯示區(qū)域中的像素劃分為子屏幕,所述子屏幕形成子屏幕任務列表;及像素渲染級,其可操作以并行且獨立地處理所述子屏幕任務列表中的多個子屏幕任務。
2、 如權利要求1所述的管線,其中所述像素渲染級采用具有一組個別處理線程 的交錯式多線程處理器來并行且獨立地處理所述多個子屏幕任務中的相應一者。
3、 如權利要求2所述的管線,其中所述交錯式多線程處理器包含用于處理所述 頂點信息的處理線程。
4、 如權利要求3所述的管線,其中所述顯示細分級共享所述用于處理所述頂點 信息的處理線程。
5、 如權利要求3所述的管線,其中所述顯示細分級使用另一處理線程。
6、 如權利要求1所述的管線,其中所述像素渲染級包含光柵化、混合及紋理化 操作以及隱藏表面去除操作以形成所述3D圖形圖像的位圖。
7、 如權利要求1所述的管線,其中所述顯示區(qū)域與以下裝置中的一者相關聯(lián) 個人數(shù)字助理(PDA)、掌中寶、移動電話、蜂窩式電話、衛(wèi)星電話、膝上型計算機、 筆記本計算機及平板PC。
8、 一種方法,其包括對頂點對象進行頂點處理以輸出三維(3D)圖形圖像的頂點信息; 將所述輸出頂點信息疊加在顯示區(qū)域上;將所述顯示區(qū)域劃分成多個子屏幕以形成任務列表中的子屏幕任務,所述顯示區(qū) 域具有若干像素;及對所述任務列表中的多個子屏幕任務中的那些像素并行且獨立地進行像素渲染。
9、 如權利要求8所述的方法,其中所述像素渲染步驟包含以下步驟-通過交錯式多線程處理器的處理線程捕獲并鎖定所述任務列表中的相應一個可 用子屏幕任務;當捕獲到時,獨立地處理所述相應一個子屏幕任務的那些像素;及 針對每一隨后的可用子屏幕任務,通過所述交錯式多線程處理器的其它處理線程重復所述捕獲并鎖定步驟及所述處理步驟。
10、 如權利要求9所述的方法,其中所述頂點處理步驟包含以下步驟 通過所述交錯式多線程處理器的另一處理線程處理所述頂點對象以形成所述頂點信息輸出。
11、 如權利要求10所述的方法,其中所述劃分步驟包含與所述頂點處理步驟共 享所述另一處理線程的步驟。
12、 如權利要求8所述的方法,其中所述像素渲染步驟包含以下步驟光柵化、 混合及紋理化每一子屏幕任務的那些像素直到所述任務列表成為空的為止以形成所述 3D圖形圖像的位圖。
13、 如權利要求8所述的方法,其中所述像素渲染步驟包含以下步驟 產生用于在所述顯示區(qū)域中顯示的位圖,所述顯示區(qū)域與以下裝置中的一者相關聯(lián)個人數(shù)字助理(PDA)、掌中寶、移動電話、蜂窩式電話、衛(wèi)星電話、膝上型計 算機、筆記本計算機及平板PC。
14、 一種計算機程序產品,其包含具有用于致使計算機執(zhí)行以下操作的指令的計 算機可讀媒體進行頂點處理以形成三維(3D)圖形圖像的輸出頂點信息;將疊加有所述輸出頂點信息的顯示區(qū)域劃分為子屏幕以形成任務列表中的子屏 幕任務,所述子屏幕任務具有若干像素;及進行像素渲染以并行且獨立地處理多個子屏幕任務的那些像素。
15、 如權利要求14所述的計算機程序產品,其中所述用以進行像素渲染的指令包含用以執(zhí)行以下操作的指令通過交錯式多線程處理器的處理線程捕獲并鎖定所述任務列表中的相應一個可用子屏幕任務;當通過所述處理線程捕獲到時,獨立地處理所述相應一個子屏幕任務的那些像 素;及針對每一隨后的可用子屏幕任務,通過所述交錯式多線程處理器的其它處理線程重復所述可操作以捕獲并鎖定及處理的指令。
16、 如權利要求15所述的計算機程序產品,其中所述用以進行頂點處理的指令 包含可操作以執(zhí)行以下操作的指令使用所述交錯式多線程處理器的另一處理線程進行頂點處理以形成所述頂點信 息輸出。
17、 如權利要求16所述的計算機程序產品,其中所述用以劃分的指令包含與所 述用以進行頂點處理的指令共享所述另一處理線程的指令。
18、 如權利要求17所述的計算機程序產品,其中所述計算機可讀媒體包括無線通信裝置的共享處理器可讀媒體。
19、 如權利要求14所述的計算機程序產品,其中所述用以進行像素渲染的指令 包含用以光柵化、混合及紋理化每一子屏幕任務的那些像素以形成所述3D圖形圖像 的位圖的指令。
20、 一種無線裝置,其包括 具有多個處理線程的數(shù)字信號處理器;由所述處理線程存取的共享存儲器;及處理裝置,其可操作以通過并行且獨立地處理存儲于所述共享存儲器中的子屏幕 任務列表中的多個子屏幕任務中的那些像素而在沒有專用圖形加速器的情況下執(zhí)行像 素渲染,所述子屏幕任務包含疊加有頂點輸出信息的顯示區(qū)域的像素的一部分。
21、 如權利要求20所述的裝置,其中所述裝置包含以下裝置中的一者個人數(shù) 字助理(PDA)、掌中寶、移動電話、蜂窩式電話、衛(wèi)星電話、膝上型計算機、筆記 本計算機及平板PC。
全文摘要
本發(fā)明揭示一種在最后級(像素渲染)中并行且獨立地處理子屏幕的像素的三維(3D)圖形管線。所述子屏幕任務存儲于共享存儲器中的列表中。所述共享存儲器由指定用于像素渲染的多個處理線程存取。所述處理線程以有序方式捕獲并鎖定子屏幕任務且處理所述任務以形成供在屏幕上顯示的位圖。通過將其上疊加有頂點信息的顯示區(qū)域劃分成MxN個子屏幕任務來形成所述任務??苫谙到y(tǒng)簡檔改變M及N。
文檔編號G06T15/00GK101563712SQ200780046585
公開日2009年10月21日 申請日期2007年12月20日 優(yōu)先權日2006年12月22日
發(fā)明者吳車惠, 詹姆斯·M·布朗, 建 魏 申請人:高通股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
洪江市| 贵德县| 玉环县| 外汇| 盐池县| 石渠县| 曲阳县| 衡阳市| 通道| 方正县| 宜良县| 饶阳县| 泰安市| 喜德县| 桦南县| 合阳县| 肇州县| 谷城县| 交城县| 襄汾县| 福建省| 平顶山市| 嵩明县| 海丰县| 梁平县| 石屏县| 蓬安县| 高安市| 灌南县| 抚宁县| 成武县| 平湖市| 万全县| 天峻县| 大悟县| 辽源市| 福海县| 兰考县| 瓮安县| 大渡口区| 元阳县|