TWI616844B - 當複合物件在圖形影像中無法產生可見改變時促進圖形處理單元中此等物件之淘汰的技術 - Google Patents

當複合物件在圖形影像中無法產生可見改變時促進圖形處理單元中此等物件之淘汰的技術 Download PDF

Info

Publication number
TWI616844B
TWI616844B TW104138571A TW104138571A TWI616844B TW I616844 B TWI616844 B TW I616844B TW 104138571 A TW104138571 A TW 104138571A TW 104138571 A TW104138571 A TW 104138571A TW I616844 B TWI616844 B TW I616844B
Authority
TW
Taiwan
Prior art keywords
logic
subsequent frame
objects
graphics
pixel
Prior art date
Application number
TW104138571A
Other languages
English (en)
Other versions
TW201635243A (zh
Inventor
傑克 柯勒
比莫 波達
湯瑪茲 波奈其
Original Assignee
英特爾公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英特爾公司 filed Critical 英特爾公司
Publication of TW201635243A publication Critical patent/TW201635243A/zh
Application granted granted Critical
Publication of TWI616844B publication Critical patent/TWI616844B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本發明描述用於促進在計算裝置上的圖形影像中無法產生可見改變的複合物件之動態淘汰之機制。如本文所描述之實施例之方法包括識別圖框之多個物件中對於包括於後續圖框中為潛在無意義的一或多個物件,及應用包圍該一或多個物件的一或多個定界框。該方法可進一步包括基於頂點變換來決定對應於一或多個定界框的一或多個最小定界矩形。該方法可進一步包括基於柵格化規則來決定一或多個最小定界矩形對一或多個像素之一或多個像素中心之覆蓋,及在一或多個對應最小定界矩形中之第一最小定界矩形接觸或包括像素之像素中心的情況下,選擇一或多個物件中之第一物件以包括於後續圖框中。

Description

當複合物件在圖形影像中無法產生可見改變時促進圖形處理單元中此等物件之淘汰的技術 發明領域
本文所述之實施例大體係關於電腦。更特定而言,實施例係關於用於促進在計算裝置上之圖形影像中無法產生可見改變的複合物件之動態淘汰之機制。
發明背景
需要顯著處理努力但在螢幕上產生極小物件的物件之淘汰為透徹理解的技術,其中應用程式可在顯現效能與顯現圖框之視覺保真度之間做出正確取捨。然而,當此類物件由圖形處理系統顯現時,預計圖形處理系統服從由圖形介面指定的規則,且甚至在物件將在螢幕上表現為一點的情況下,該點需要經顯現。若此點未經顯現,則該點可導致較大物件之其他部分之間的可見間隙,該較大物件導致視覺假影。習知技術即使在物件於螢幕上不可見的情況下亦顯現此類物件,此可導致系統資源之顯著浪費。
依據本發明之一實施例,係特地提出一種設備,其包含:偵測及驗證邏輯,其用以識別一圖框之多個物件中對於包括於一後續圖框中為潛在無意義的一或多個物件;定界框計算及應用邏輯,其用以應用包圍該一或多個物件的一或多個定界框;計算邏輯,其用以基於一頂點變換來決定對應於該一或多個定界框的一或多個最小定界矩形,其中該計算邏輯進一步用以基於柵格化規則來決定該一或多個最小定界矩形對一或多個像素之一或多個像素中心之覆蓋;以及形成及顯現邏輯,其用以在該一或多個對應最小定界矩形中之一第一最小定界矩形接觸或包括一像素之一像素中心的情況下選擇該一或多個物件中之一第一物件以包括於該後續圖框中。
100‧‧‧資料處理系統/系統
102、200、1030‧‧‧處理器
102A~102N、107‧‧‧處理器核心
104‧‧‧快取記憶體
104A~104N‧‧‧內部快取記憶體單元
106‧‧‧暫存器檔案/共用快取記憶體單元
108、300、1032‧‧‧圖形處理器
109‧‧‧特定指令集
110‧‧‧處理器匯流排/系統代理器/系統代理器單元
112‧‧‧任擇的外部圖形處理器/ 基於環之互連單元/環形互連體
114‧‧‧整合式記憶體控制器
116‧‧‧記憶體控制器集線器/匯流排控制器單元
120‧‧‧記憶體裝置
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存裝置
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧輸入輸出(I/O)控制器集線器
134‧‧‧網路控制器
140‧‧‧舊版I/O控制器
142‧‧‧通用串列匯流排(USB)控制器
144‧‧‧鍵盤及滑鼠
146‧‧‧音訊控制器
208‧‧‧整合式圖形處理器
211、302、843‧‧‧顯示控制器
213‧‧‧I/O鏈路
218‧‧‧高效能嵌入式記憶體模組
304‧‧‧區塊影像傳送(BLIT)引擎
306‧‧‧視訊編解碼器引擎
310、410‧‧‧圖形處理引擎(GPE)
312、412、922‧‧‧3D管線
314‧‧‧記憶體介面
315‧‧‧3D/媒體子系統
316、416、830、924‧‧‧媒體管線
320‧‧‧顯示裝置
403、503、803‧‧‧命令流轉化器
414‧‧‧執行單元陣列
430‧‧‧取樣引擎
432‧‧‧解雜訊/解交錯模組
434‧‧‧運動估計模組
436‧‧‧影像縮放及濾波模組
444、614、856‧‧‧資料埠
502、802‧‧‧環形互連體
504‧‧‧管線前端
530‧‧‧視訊品質引擎(VQE)
533‧‧‧多格式編碼/解碼(MFX)
534、834‧‧‧視訊前端
536‧‧‧幾何管線
537、837‧‧‧媒體引擎
550A~550N‧‧‧子核心/第一子核心
552A~552N‧‧‧第一組執行單元
554A~554N‧‧‧媒體/紋理取樣器
560A~560N‧‧‧子核心/第二子核心
562A~562N‧‧‧第二組執行單元
564A~564N、610‧‧‧取樣器
570A~570N‧‧‧共用資源
580A~580N‧‧‧圖形核心/模組化核心
600、850‧‧‧執行緒執行邏輯
602‧‧‧像素著色器
604、831‧‧‧執行緒調度器
606‧‧‧指令快取記憶體
608N-1、852A、852B‧‧‧執行單元
608A~608N‧‧‧執行單元/執行單元陣列
612‧‧‧資料快取記憶體
700‧‧‧圖形核心指令格式
710‧‧‧128位元格式
712‧‧‧指令運算碼
713‧‧‧索引欄位
714‧‧‧控制欄位
716‧‧‧執行大小欄位
718‧‧‧目的地
720‧‧‧源運算元src0
722‧‧‧源運算元src1
724‧‧‧第三源運算元
726‧‧‧存取/位址模式
730‧‧‧64位元緊密指令格式/64位元格式
740‧‧‧運算碼解碼
742‧‧‧移動及邏輯運算碼群組
744‧‧‧流量控制指令群組
746‧‧‧雜項指令群組
748‧‧‧並行數學指令群組
750‧‧‧向量數學群組
805‧‧‧頂點擷取器
807‧‧‧頂點著色器
811‧‧‧可規劃外殼著色器/鑲嵌組件
813‧‧‧鑲嵌器/鑲嵌組件
817‧‧‧可規劃域著色器/鑲嵌組件
819‧‧‧幾何著色器
820‧‧‧圖形管線
823‧‧‧串流輸出
829‧‧‧裁剪器
840‧‧‧顯示引擎
841‧‧‧2D引擎
851‧‧‧附接L1快取記憶體/相關聯快取記憶體
854‧‧‧紋理及媒體取樣器
858‧‧‧紋理/取樣器快取記憶體/快取記憶體
870‧‧‧顯現輸出管線
873‧‧‧柵格化器/柵格化器及深度測試組件
875‧‧‧共用L3快取記憶體
877‧‧‧像素操作組件
878‧‧‧顯現緩衝快取記憶體
879‧‧‧深度緩衝快取記憶體
900‧‧‧圖形處理器命令格式
902‧‧‧目標用戶端/用戶端
904‧‧‧命令操作碼(運算碼)
905‧‧‧子運算碼
906‧‧‧有關資料
908‧‧‧命令大小/顯式命令大小
910‧‧‧樣本命令序列
912‧‧‧管線排清命令
913‧‧‧管線選擇命令
914‧‧‧管線控制命令
916‧‧‧回覆緩衝器狀態命令
920‧‧‧管線決定
930‧‧‧3D管線狀態
932‧‧‧3D基元
934、944‧‧‧執行
940‧‧‧媒體管線狀態
942‧‧‧媒體物件命令
1010‧‧‧3D圖形應用程式
1012‧‧‧著色器指令
1014‧‧‧可執行指令
1016‧‧‧圖形物件
1020‧‧‧作業系統
1022‧‧‧圖形API
1024‧‧‧前端著色器編譯器
1026‧‧‧使用者模式圖形驅動器
1027‧‧‧後端著色器編譯器
1028‧‧‧作業系統內核模式功能
1029‧‧‧內核模式圖形驅動器
1034‧‧‧通用處理器核心
1050‧‧‧系統記憶體
1100‧‧‧計算裝置/電腦裝置
1104‧‧‧輸入/輸出(I/O)源
1106‧‧‧作業系統(OS)
1108‧‧‧記憶體
1110‧‧‧動態圖形影像顯現機制/顯現機制/工作負荷機制
1112‧‧‧CPU
1114‧‧‧GPU
1116‧‧‧圖形驅動器邏輯
1201‧‧‧偵測及驗證邏輯
1203‧‧‧定界框(「BB」)計算及應用邏輯/「BB」邏輯
1205‧‧‧柵格化規則驗證及應用邏輯/「RR」邏輯
1207‧‧‧計算邏輯
1209‧‧‧形成及顯現邏輯
1211‧‧‧適應性調諧邏輯
1213‧‧‧通訊/相容性邏輯
1300‧‧‧影像
1301‧‧‧複合物件/定界框
1303‧‧‧頂點
1350‧‧‧最小定界矩形/定界框A/定界矩形A
1351、1361A~1361F‧‧‧像素
1353、1363A~1363F‧‧‧像素中心
1360‧‧‧最小定界矩形/定界框B/定界矩形B
1370‧‧‧圖框
1400、1450‧‧‧方法
1405~1485‧‧‧方塊
在隨附圖式之諸圖中藉由實例而非藉由限制來例示實施例,在隨附圖式中相似的參考數字指代類似元件。
圖1為根據一實施例之資料處理系統的方塊圖。
圖2為具有一或多個處理器核心、整合式記憶體控制器及整合式圖形處理器之處理器之一實施例的方塊圖。
圖3為可為謹慎圖形處理單元或可為與多個處理核心整合之圖形處理器的圖形處理器之一實施例的方塊圖。
圖4為用於圖形處理器之圖形處理引擎之一實施 例的方塊圖。
圖5為圖形處理器之另一實施例的方塊圖。
圖6例示包括在圖形處理引擎之一實施例中所使用的一陣列之處理元件的執行緒執行邏輯。
圖7為例示根據一實施例之圖形處理器執行單元指令格式的方塊圖。
圖8為圖形處理器之另一實施例的方塊圖,該圖形處理器包括圖形管線、媒體管線、顯示引擎、執行緒執行邏輯及顯現輸出管線。
圖9A為例示根據一實施例之圖形處理器命令格式的方塊圖,且圖9B為例示根據一實施例之圖形處理器命令序列的方塊圖。
圖10例示根據一實施例之用於資料處理系統的示範性圖形軟體架構。
圖11例示根據一實施例之使用動態圖形影像顯現機制之計算裝置。
圖12例示根據一實施例之動態圖形影像顯現機制。
圖13A例示根據一實施例之定界框,該定界框包圍形成物件的影像之物件之頂點。
圖13B例示根據一實施例之影像,該影像具有圍繞對應物件之定界框。
圖14A例示根據一實施例之用於具有複合物件之圖形影像之動態顯現之方法。
圖14B例示根據一實施例之用於適應性調諧之方法。
較佳實施例之詳細說明
在以下描述中,闡述眾多特定細節。然而,如本文所述,實施例可在無此等特定細節的情況下實踐。在其他例子中,尚未詳細展示熟知的電路、結構及技術以便不會混淆對此描述之理解。
實施例提供基於圖形處理單元(GPU)之技術,該技術用於動態地促進捨棄或接受影像內之較小物件之處理,在每圖框基礎上考慮,以便提供對於結果之對應的原始影像為真實的真實結果,諸如捨棄可具有確定大小但不接觸任何像素中心的小基元。如前述,習知技術通常基於軟體應用程式且在基元層級上執行,其中應用程式基於所得物件大小做出決策,該所得物件大小諸如在空間中產生物件大小及若物件小於定義的大小則淘汰該物件。實施例提供基於GPU(諸如基於GPU驅動器)且出於更有效且準確的結果而考慮柵格化規則的技術。
例如,電腦輔助設計(CAD)應用程式通常用於顯現大規模圖像模型,其中模型之一些部分可為實際上小的,使得該等部分對於終端使用者觀察而言在螢幕上可不可見。不同於物件淘汰演算法可用來淘汰對於人眼可不容易看見的小物件的地形類模擬場景,CAD類模型中之小物件之淘汰稍微更加困難,因為該淘汰可導致影像中之其他 部分之間的容易看見的間隙。實施例提供最佳化此類小物件之處理,在一實施例中,該最佳化藉由以下操作來達成:當小物件不可見時跨越該處理,但當小物件可見時(即使該等小物件極小)顯現該等小物件。此外,CAD應用程式傾向於使用顯示列表,且相同顯示列表可關於變焦因素經重新使用且此類顯示列表遍及本文件可被稱為「複合物件」。
概述-圖1至圖3
圖1為根據一實施例之資料處理系統100的方塊圖。資料處理系統100包括一或多個處理器102及一或多個圖形處理器108,且可為單處理器桌上型系統、多處理器工作台系統,或具有大量處理器102或處理器核心107之伺服器系統。在一實施例中,資料處理系統100為供在行動、手持式或嵌入式裝置中使用之系統單晶片整合式電路(SOC)。
資料處理系統100之實施例可包括基於伺服器之遊戲平台、遊戲控制台或併入基於伺服器之遊戲平台、遊戲控制台內,該遊戲控制台包括遊戲及媒體控制台、行動遊戲控制台、手持式遊戲控制台或線上遊戲控制台。在一實施例中,資料處理系統100為行動電話、智慧型電話、平板計算裝置或行動網際網路裝置。資料處理系統100亦可包括可穿戴裝置、與可穿戴裝置耦接或整合於可穿戴裝置內,該可穿戴裝置諸如智慧型腕表可穿戴裝置、智慧型眼鏡裝置、強化實境裝置或虛擬實境裝置。在一實施例中,資料處理系統100為具有一或多個處理器102及藉由一或多個圖形處理器108產生之圖形介面的電視或機上盒裝置。
一或多個處理器102各自包括一或多個處理器核心107以處理指令,該等指令在被執行時執行用於系統及使用者軟體之操作。在一實施例中,一或多個處理器核心107中每一者經組配來處理特定指令集109。指令集109可促進複雜指令集計算(CISC)、精簡指令集計算(RISC),或經由極長指令字(VLIW)之計算。多個處理器核心107可各自處理不同指令集109,該指令集可包括指令以促進其他指令集之模擬。處理器核心107亦可包括其他處理裝置,諸如數位信號處理器(DSP)。
在一實施例中,處理器102包括快取記憶體104。取決於架構,處理器102可具有單一內部快取記憶體或多個階之內部快取記憶體。在一實施例中,快取記憶體在處理器102之各種組件當中共用。在一實施例中,處理器102亦使用外部快取記憶體(例如,3階(L3)快取記憶體或末階快取記憶體(LLC))(未圖示),該外部快取記憶體可使用已知快取一致性技術在處理器核心107當中共用。暫存器檔案106另外包括於處理器102中,該處理器可包括用於儲存不同類型之資料的不同類型之暫存器(例如,整數暫存器、浮點暫存器、狀態暫存器及指令指標暫存器)。一些暫存器可為通用暫存器,而其他暫存器對處理器102之設計可為特定的。
處理器102耦接至處理器匯流排110以在處理器102與系統100中之其他組件之間傳輸資料信號。系統100使用示範性『集線器』系統架構,包括記憶體控制器集線器116及輸入輸出(I/O)控制器集線器130。記憶體控制器集線 器116促進在記憶體裝置與系統100之其他組件之間的通訊,而I/O控制器集線器(ICH)130經由局域I/O匯流排提供對I/O裝置之連接。
記憶體裝置120可為動態隨機存取記憶體(DRAM)裝置、靜態隨機存取記憶體(SRAM)裝置、快閃記憶體裝置,或具有合適效能以充當處理程序記憶體的某其他記憶體裝置。記憶體120可儲存資料122及指令121以供在處理器102執行處理程序時使用。記憶體控制器集線器116亦與任擇的外部圖形處理器112耦接,該任擇的外部圖形處理器可與處理器102中之一或多個圖形處理器108通訊以執行圖形及媒體操作。
ICH 130允許周邊裝置經由高速I/O匯流排連接至記憶體120及處理器102。I/O周邊裝置包括音訊控制器146、韌體介面128、無線收發器126(例如,Wi-Fi、藍牙)、資料儲存裝置124(例如,硬碟驅動機、快閃記憶體等),及用於將舊版(例如,個人系統2(PS/2))裝置耦接至系統的舊版I/O控制器。一或多個通用串列匯流排(USB)控制器142連接輸入裝置,諸如鍵盤及滑鼠144組合。網路控制器134亦可耦接至ICH 130。在一實施例中,高效能網路控制器(未圖示)耦接至處理器匯流排110。
圖2為具有一或多個處理器核心102A-N、整合式記憶體控制器114及整合式圖形處理器208之處理器200之實施例的方塊圖。處理器200可包括達至且包括藉由虛線框所表示之額外核心102N的額外核心。核心102A-N中每一者 包括一或多個內部快取記憶體單元104A-N。在一實施例中,每一核心102A-N亦具有對一或多個共用快取記憶體單元106之存取權。
內部快取記憶體單元104A-N及共用快取記憶體單元106表示處理器200內之快取記憶體階層。快取記憶體階層可包括每一核心內之至少一階之指令及資料快取記憶體及一或多個階之共用中階快取記憶體,諸如2階(L2)、3階(L3)、4階(L4)或其他階之快取記憶體,其中在外部記憶體前之最高階之快取記憶體經分類為末階快取記憶體(LLC)。在一實施例中,快取一致性邏輯維持各種快取記憶體單元106與104A-N之間的一致性。
處理器200亦可包括一組一或多個匯流排控制器單元116及系統代理器110。一或多個匯流排控制器單元管理一組周邊匯流排,諸如一或多個周邊組件互連匯流排(例如,PCI、PCI Express)。系統代理器110針對各種處理器組件提供管理功能性。在一實施例中,系統代理器110包括一或多個整合式記憶體控制器114以管理對各種外部記憶體裝置(未圖示)之存取。
在一實施例中,核心102A-N中一或多者包括針對同時多執行緒處理的支援。在此實施例中,系統代理器110包括用於在多執行緒處理期間協調及操作核心102A-N之組件。系統代理器110可另外包括功率控制單元(PCU),該功率控制單元包括調節核心102A-N及圖形處理器208之功率狀態的邏輯及組件。
處理器200另外包括圖形處理器208以執行圖形處理操作。在一實施例中,圖形處理器208與該組共用快取單元106,及包括該一或多個整合式記憶體控制器114之系統代理器單元110耦接。在一實施例中,顯示控制器211與圖形處理器208耦接以驅動對一或多個經耦接顯示器之圖形處理器輸出。顯示控制器211可為經由至少一互連體與圖形處理器耦接之單獨模組,或可整合於圖形處理器208或系統代理器110內。
在一實施例中,基於環之互連單元112用以耦接處理器200之內部組件,然而,可使用替代性互連單元,諸如點對點互連體、交換互連體,或其他技術,包括此項技術中熟知的技術。在一實施例中,圖形處理器208經由I/O鏈路213與環形互連體112耦接。
示範性I/O鏈路213表示多種I/O互連體中至少一者,包括促進各種處理器組件與諸如eDRAM模組之高效能嵌入式記憶體模組218之間的通訊之封裝上I/O互連體。在一實施例中,核心102-N中每一者及圖形處理器208使用嵌入式記憶體模組218作為共用末階快取記憶體。
在一實施例中,核心102A-N為執行同一指令集架構之同質核心。在另一實施例中,核心102A-N就指令集架構(ISA)而言為異質的,其中核心102A-N中一或多者執行第一指令集,而其他核心中至少一者執行第一指令集之子集或不同指令集。
處理器200可為一或多個基板之一部分或使用數 種處理技術中之任一者實行於一或多個基板上,該等技術例如互補金氧半導體(CMOS)、雙極接面/互補金氧半導體(BiCMOS)或N型金氧半導體邏輯(NMOS)。除其他組件之外,另外,處理器200可實行於一或多個晶片上或實行為具有所例示組件的系統單晶片(SOC)整合式電路。
圖3為可為謹慎圖形處理單元或可為與多個處理核心整合之圖形處理器的圖形處理器300之一實施例的方塊圖。在一實施例中,圖形處理器經由對圖形處理器上之暫存器的記憶體對映之I/O介面及經由置放至處理器記憶體中之命令來進行通訊。圖形處理器300包括記憶體介面314來存取記憶體。記憶體介面314可為對局域記憶體、一或多個內部快取記憶體、一或多個共用外部快取記憶體,及/或對系統記憶體之介面。
圖形處理器300亦包括顯示控制器302來將顯示輸出資料驅動至顯示裝置320。顯示控制器302包括用於顯示器之一或多個上覆平面的硬體,及視訊或使用者介面元件之多個層的複合物。在一實施例中,圖形處理器300包括視訊編解碼器引擎306來自一或多個媒體編碼格式或在該一或多個格式之間編碼、解碼或轉碼媒體,該一或多個格式包括(但不限於)諸如動畫專家群(MPEG)-2之MPEG格式、諸如H.264/MPEG-4 AVC之進階視訊寫碼(AVC)格式,以及電影與電視工程師協會(SMPTE)421M/VC-1,及諸如聯合圖像專家群(JPEG)之JPEG格式,及運動JPEG(MJPEG)格式。
在一實施例中,圖形處理器300包括區塊影像傳送(BLIT)引擎304來執行二維(2D)柵格化操作,包括例如位元邊界區塊傳送。然而,在一實施例中,2D圖形操作係使用圖形處理引擎(GPE)310之一或多個組件來執行。圖形處理引擎310為用於執行圖形操作之計算引擎,該等操作包括三維(3D)圖形操作及媒體操作。
GPE 310包括用於執行3D操作之3D管線312,諸如使用作用於3D基元形狀(例如,矩形、三角形等)之處理功能顯現三維影像及場景。3D管線312包括可規劃及固定功能元件,該等元件執行元件內之各種任務及/或對3D/媒體子系統315引發執行緒。儘管3D管線312可用以執行媒體操作,但GPE 310之實施例亦包括特定地用以執行媒體操作的媒體管線316,該等媒體操作諸如視訊後處理及影像增強。
在一實施例中,媒體管線316包括固定功能或可規劃邏輯單元來替代於或代表視訊編解碼器引擎306執行一或多個專門的媒體操作,諸如視訊解碼加速、視訊解交錯及視訊編碼加速。在一實施例中,媒體管線316另外包括執行緒引發單元以引發執行緒以供在3D/媒體子系統315上執行。經引發執行緒針對包括於3D/媒體子系統中之一或多個圖形執行單元上的媒體操作執行計算。
3D/媒體子系統315包括用於執行藉由3D管線312及媒體管線316所引發之執行緒的邏輯。在一實施例中,管線將執行緒執行請求發送至3D/媒體子系統315,該3D/媒體子系統包括用於仲裁及調度對可利用之執行緒執 行資源之各種請求的執行緒調度邏輯。執行資源包括一陣列之圖形執行單元來處理3D及媒體執行緒。在一實施例中,3D/媒體子系統315包括用於執行緒指令及資料之一或多個內部快取記憶體。在一實施例中,子系統亦包括共用記憶體來在執行緒之間共用資料且儲存輸出資料,該共用記憶體包括暫存器及可定址記憶體。
3D/媒體處理-圖4
圖4為用於圖形處理器之圖形處理引擎410之實施例的方塊圖。在一實施例中,圖形處理引擎(GPE)410為圖3中所示之GPE 310的一版本。GPE 410包括3D管線412及媒體管線416,其中每一者可不同於抑或類似於圖3之3D管線312及媒體管線316之實行方案。
在一實施例中,GPE 410與命令流轉化器403耦接,該命令流轉化器將命令串流提供至GPE 3D管線412及媒體管線416。命令流轉化器403耦接至記憶體,該記憶體可為系統記憶體,或內部快取記憶體及共用快取記憶體中一或多者。命令流轉化器403自記憶體接收命令且將命令發送至3D管線412及/或媒體管線416。3D管線及媒體管線藉由經由個別管線內之邏輯執行操作或藉由將一或多個執行緒調度至執行單元陣列414來處理命令。在一實施例中,執行單元陣列414為可縮放的,使得陣列基於GPE 410之目標功率及效能位準包括可變數目個執行單元。
取樣引擎430與記憶體(例如,快取記憶體或系統記憶體)及執行單元陣列414耦接。在一實施例中,取樣引 擎430提供允許執行陣列414自記憶體讀取圖形及媒體資料的用於可縮放執行單元陣列414之記憶體存取機制。在一實施例中,取樣引擎430包括針對媒體執行專門的影像取樣操作之邏輯。
取樣引擎430中之專門的媒體取樣邏輯包括解雜訊/解交錯模組432、運動估計模組434及影像縮放及濾波模組436。解雜訊/解交錯模組432包括對經解碼視訊資料執行解雜訊或解交錯演算法中之一或多者的邏輯。解交錯邏輯將交錯視訊內容之交替欄位組合為單一視訊圖框。解雜訊邏輯自視訊及影像資料降低或移除資料雜訊。在一實施例中,解雜訊邏輯及解交錯邏輯為運動適應性的,且基於視訊資料中偵測到之運動的量使用空間或時間濾波。在一實施例中,解雜訊/解交錯模組432包括專屬運動偵測邏輯(例如,在運動估計引擎434內)。
運動估計引擎434藉由對視訊資料執行諸如運動向量估計及預測之視訊加速功能而針對視訊操作提供硬體加速。運動估計引擎決定運動向量,該等運動向量描述影像資料在接連之視訊圖框之間的變換。在一實施例中,圖形處理器媒體編解碼器使用視訊運動估計引擎434來在巨集區塊層級處對視訊執行操作,該巨集區塊層級可另外為計算密集的以使用通用處理器來執行。在一實施例中,運動估計引擎434對圖形處理器組件為大體可利用的以輔助視訊解碼及處理功能,該等功能對視訊資料內之運動的方向或量值為敏感的或適應性的。
影像縮放及濾波模組436執行影像處理操作以增強所產生影像及視訊之視覺品質。在一實施例中,縮放及濾波模組436在將資料提供至執行單元陣列414之前在取樣操作期間處理影像及視訊資料。
在一實施例中,圖形處理引擎410包括資料埠444,該資料埠提供用於圖形子系統之額外機制以存取記憶體。資料埠444促進針對操作之記憶體存取,該等操作包括顯現目標寫入、恆定緩衝器讀取、暫用記憶體空間讀取/寫入及媒體表面存取。在一實施例中,資料埠444包括快取記憶體空間以快取存取記憶體。快取記憶體可為單一資料快取記憶體或針對經由資料埠存取記憶體的多個子系統分為多個快取記憶體(例如,顯現緩衝快取記憶體、恆定緩衝快取記憶體等)。在一實施例中,在執行單元陣列414中之執行單元上執行的執行緒藉由經由資料分佈互連體交換訊息而與資料埠通訊,該互連體耦接圖形處理引擎410之子系統中的每一者。
執行單元-圖5至圖7
圖5為圖形處理器之另一實施例的方塊圖。在一實施例中,圖形處理器包括環形互連體502、管線前端504、媒體引擎537及圖形核心580A-N。環形互連體502將圖形處理器耦接至其他處理單元,包括其他圖形處理器或一或多個通用處理器核心。在一實施例中,圖形處理器為整合於多核心處理系統內之許多處理器中的一者。
圖形處理器經由環形互連體502接收多批次之命 令。傳入命令藉由管線前端504中之命令流轉化器503解譯。圖形處理器包括可縮放執行邏輯以經由圖形核心580A-N執行3D幾何處理及媒體處理。針對3D幾何處理命令,命令流轉化器503將命令供應至幾何管線536。針對至少一些媒體處理命令,命令流轉化器503將命令供應至視訊前端534,該視訊前端與媒體引擎537耦接。媒體引擎537包括用於視訊及影像後處理之視訊品質引擎(VQE)530,及多格式編碼/解碼(MFX)533引擎以提供經硬體加速之媒體資料編碼及解碼。幾何管線536及媒體引擎537各自針對藉由至少一圖形核心580A所提供之執行緒執行資源產生執行緒。
圖形處理器包括表徵模組化核心580A-N(有時被稱為核心片段)之可縮放執行緒執行資源,模組化核心580A-N各自具有多個子核心550A-N、560A-N(有時被稱為核心子片段)。圖形處理器可具有任何數目個圖形核心580A至580N。在一實施例中,圖形處理器包括至少具有第一子核心550A及第二核心子核心560A之圖形核心580A。在另一實施例中,圖形處理器為具有單一子核心(例如,550A)之低功率處理器。在一實施例中,圖形處理器包括多個圖形核心580A-N,該等圖形核心各自包括一組第一子核心550A-N及一組第二子核心560A-N。該組第一子核心550A-N中每一子核心至少包括第一組執行單元552A-N及媒體/紋理取樣器554A-N。該組第二子核心560A-N中之每一子核心至少包括第二組執行單元562A-N及取樣器564A-N。在一實 施例中,每一子核心550A-N、560A-N共用一組共用資源570A-N。在一實施例中,共用資源包括共用快取記憶體及像素操作邏輯。其他共用資源亦可包括於圖形處理器之各種實施例中。
圖6例示包括在圖形處理引擎之一實施例中所使用的一陣列之處理元件的執行緒執行邏輯600。在一實施例中,執行緒執行邏輯600包括像素著色器602、執行緒調度器604、指令快取記憶體606、包括多個執行單元608A-N之可縮放執行單元陣列、取樣器610、資料快取記憶體612及資料埠614。在一實施例中,所包括組件經由連結至組件中每一者的互連組構得以互連。執行緒執行邏輯600包括經由指令快取記憶體606、資料埠614、取樣器610及執行單元陣列608A-N中之一或多者對記憶體之一或多個連接,該記憶體諸如系統記憶體或快取記憶體。在一實施例中,每一執行單元(例如,608A)為能夠執行多個同時執行緒且針對每一執行緒並行地處理多個資料元素的個別向量處理器。執行單元陣列608A-N包括任何數目個個別執行單元。
在一實施例中,執行單元陣列608A-N主要用以執行「著色器」程式。在一實施例中,陣列608A-N中之執行單元執行包括針對許多標準3D圖形著色器指令之原生支援的指令集,使得來自圖形程式庫之著色器程式(例如,Direct 3D及OpenGL)藉由最小轉譯來執行。執行單元支援頂點及幾何處理(例如,頂點程式、幾何程式、頂點著色器)、像素處理(例如,像素著色器、碎片著色器)及通用處理(例 如,計算及媒體著色器)。
執行單元陣列608A-N中之每一執行單元對資料元素之陣列進行操作。資料元素之數目為「執行大小」或用於指令之通道的數目。執行通道為用於資料元素存取、遮蔽及指令內之流量控制的邏輯執行單元。通道之數目可獨立於用於特定圖形處理器之實體ALU或FPU的數目。執行單元608A-N支援整數及浮點資料類型。
執行單元指令集包括單指令多資料(SIMD)指令。各種資料元素可作為經包裝資料類型儲存於暫存器中,且執行單元將基於元素之資料大小處理各種元素。舉例而言,當對256位元寬向量進行操作時,向量之256個位元儲存於暫存器中,且執行單元對作為四個單獨的64位元經包裝資料元素(四字(QW)大小資料元素)、八個單獨的32位元經包裝資料元素(雙字(DW)大小資料元素)、十六個單獨的16位元經包裝資料元素(字(W)大小資料元素)或三十二個單獨的8位元資料元素(位元組(B)大小資料元素)之向量進行操作。然而,不同的向量寬度及暫存器大小係可能的。
一或多個內部指令快取記憶體(例如,606)包括於執行緒執行邏輯600中以快取用於執行單元之執行緒指令。在一實施例中,一或多個資料快取記憶體(例如,612)得以包括以在執行緒執行期間快取執行緒資料。取樣器610得以包括以針對3D操作提供紋理取樣且針對媒體操作提供媒體取樣。在一實施例中,取樣器610包括專門的紋理或媒 體取樣功能性,以在將經取樣資料提供至執行單元之前在取樣處理程序期間處理紋理或媒體資料。
在執行期間,圖形管線及媒體管線經由執行緒引發及調度邏輯將執行緒起始請求發送至執行緒執行邏輯600。執行緒執行邏輯600包括局域執行緒調度器604,執行緒調度器604仲裁來自圖形管線及媒體管線之執行緒起始請求且執行個體化一或多個執行單元608A-N上的所請求執行緒。舉例而言,幾何管線(例如,圖5之536)將頂點處理、鑲嵌或幾何處理執行緒調度至執行緒執行邏輯600。執行緒調度器604亦可處理來自執行著色器程式之執行時間執行緒引發請求。
一旦一群組之幾何物件已受處理且柵格化為像素資料,則像素著色器602經調用以進一步計算輸出資訊且使結果寫入至輸出表面(例如,色彩緩衝器、深度緩衝器、模板緩衝器等)。在一實施例中,像素著色器602計算將跨於經柵格化物件上內插的各種頂點屬性之值。像素著色器602接著執行API供應之像素著色器程式。為了執行像素著色器程式,像素著色器602經由執行緒調度器604將執行緒調度至執行單元(例如,608A)。像素著色器602使用取樣器610中之紋理取樣邏輯來存取儲存於記憶體中之紋理圖中的紋理資料。對紋理資料及輸入幾何資料之算術運算針對每一幾何碎片計算像素色彩資料,或自進一步處理捨棄一或多個像素。
在一實施例中,資料埠614提供記憶體存取機 制,該機制供執行緒執行邏輯600將經處理資料輸出至記憶體以供在圖形處理器輸出管線上處理。在一實施例中,資料埠614包括或耦接至一或多個快取記憶體(例如,資料快取記憶體612)以經由資料埠快取用於記憶體存取之資料。
圖7為例示根據實施例之圖形處理器執行單元指令格式的方塊圖。在一實施例中,圖形處理器執行單元支援具有呈多個格式之指令的指令集。實線框例示通常包括於執行單元指令中之分量,而虛線包括任擇的或僅包括於指令之子集中的分量。所描述及例示之指令格式為巨集指令,因為其為供應至執行單元之指令,如與一旦指令受處理而得自指令解碼的微操作相對。
在一實施例中,圖形處理器執行單元原生地支援呈128位元格式710之指令。64位元緊密指令格式730基於所選擇之指令、指令選項及運算元之數目針對一些指令為可利用的。原生的128位元格式710提供對所有指令選項之存取,而一些選項及操作在64位元格式730中受限制。在64位元格式730中可利用之原生指令藉由實施例而變化。在一實施例中,指令使用索引欄位713中之一組索引值部分地變緊密。執行單元硬體基於索引值參考一組壓實度表格,且使用壓實度表格輸出來以128位元格式710重建構原生指令。
針對每一格式,指令運算碼712定義執行單元將執行之操作。執行單元跨於每一運算元之多個資料元素上而並行地執行每一指令。舉例而言,回應於加法指令,執行單元跨於表示紋理元素或圖像元素之每一色彩通道上而 執行同時加法運算。藉由預設,執行單元跨於運算元之所有資料通道上而執行每一指令。指令控制欄位712實現對某些執行選項之控制,諸如通道選擇(例如,預測)及資料通道次序(例如,拌和)。針對128位元指令710,執行大小欄位716限制將並行執行之資料通道的數目。執行大小欄位716不可利用於在64位元緊密指令格式730中使用。
一些執行單元指令具有達至三個運算元,包括兩個源運算元src0 722、src1 722,及一目的地718。在一實施例中,執行單元支援雙目的地指令,其中目的地中之一者被暗示。資料操縱指令可具有第三源運算元(例如,SRC2 724),其中指令運算碼JJ12決定源運算元之數目。指令之最後源運算元可為與指令一起傳遞之立即(例如,硬寫碼)值。
在一實施例中,指令基於運算碼位元欄位而分群以簡化運算碼解碼740。針對8位元運算碼,位元4、5及6允許執行單元決定運算碼之類型。所示之精確運算碼分群為示範性的。在一實施例中,移動及邏輯運算碼群組742包括資料移動及邏輯指令(例如,mov、cmp)。移動及邏輯群組742共用五個最高有效位元(MSB),其中移動指令呈0000xxxxb形式(例如,0x0x)且邏輯指令呈0001xxxxb形式(例如,0x01)。流量控制指令群組744(例如,call、jmp)包括呈0010xxxxb形式(例如,0x20)之指令。雜項指令群組746包括指令之混合,包括呈0011xxxxb形式(例如,0x30)之同步指令(例如,wait、send)。並行數學指令群組748包括呈0100xxxxb形式(例如,0x40)之逐分量算術指令(例如,add、 mul)。並行數學群組748跨於資料通道上並行地執行算術運算。向量數學群組750包括呈0101xxxxb形式(例如,0x50)之算術指令(例如,dp4)。向量數學群組對向量運算元執行諸如點積計算之算術運算。
圖形管線-圖8
圖8為圖形處理器之另一實施例的方塊圖,該圖形處理器包括圖形管線820、媒體管線830、顯示引擎840、執行緒執行邏輯850及顯現輸出管線870。在一實施例中,圖形處理器為包括一或多個通用處理核心之多核心處理系統內的圖形處理器。圖形處理器藉由對一或多個控制暫存器(未圖示)之暫存器寫入或經由發出至圖形處理器之命令而控制,該發出係經由環形互連體802而進行。環形互連體802將圖形處理器耦接至其他處理組件,諸如其他圖形處理器或通用處理器。來自環形互連體之命令藉由命令流轉化器803來解譯,該命令流轉化器將指令供應至圖形管線820或媒體管線830之個別組件。
命令流轉化器803指導頂點擷取器805組件之操作,該組件自記憶體讀取頂點資料且執行藉由命令流轉化器803所提供之頂點處理命令。頂點擷取器805將頂點資料提供至頂點著色器807,該頂點著色器執行對每一頂點之協調空間變換及照明操作。頂點擷取器805及頂點著色器807藉由經由執行緒調度器831將執行緒調度至執行單元852A、852B而執行頂點處理指令。
在一實施例中,執行單元852A、852B為具有用 於執行圖形及媒體操作之指令集的一陣列之向量處理器。執行單元852A、852B具有針對每一陣列為特定的或在陣列之間共用的附接L1快取記憶體851。快取記憶體可經組配為資料快取記憶體、指令快取記憶體,或經分割以在不同的分割區中含有資料及指令的單一快取記憶體。
在一實施例中,圖形管線820包括鑲嵌組件來執行3D物件之經硬體加速鑲嵌。可規劃外殼著色器811組配鑲嵌操作。可規劃域著色器817提供鑲嵌輸出之後端評估。鑲嵌器813在外殼著色器811之方向處操作,且含有專用邏輯以基於粗略幾何模型產生一組詳細幾何物件,該粗略幾何模型作為輸入提供至圖形管線820。若鑲嵌未經使用,則鑲嵌組件811、813、817可被繞過。
完整的幾何物件可藉由幾何著色器819經由調度至執行單元852A、852B之一或多個執行緒處理,或可直接進行至裁剪器829。幾何著色器對全部幾何物件進行操作,而非如在圖形管線之先前階段中對頂點或頂點之修補程式進行操作。若鑲嵌被停用,則幾何著色器819自頂點著色器807接收輸入。幾何著色器819為藉由幾何著色器程式可規劃的,以在鑲嵌單元經停用的情況下執行幾何鑲嵌。
在柵格化之前,頂點資料藉由裁剪器829處理,該裁剪器為固定功能裁剪器抑或具有裁剪及幾何著色器功能之可規劃裁剪器。在一實施例中,顯現輸出管線870中之柵格化器873調度像素著色器以將幾何物件轉換為其每像素表示。在一實施例中,像素著色器邏輯包括於執行緒執 行邏輯850中。
圖形引擎具有允許資料及訊息在圖形引擎之主要組件當中通過的互連匯流排、互連組構或某其他互連機制。在一實施例中,執行單元852A、852B及相關聯快取記憶體851、紋理及媒體取樣器854及紋理/取樣器快取記憶體858經由資料埠856互連,以執行記憶體存取且與圖形引擎之顯現輸出管線組件通訊。在一實施例中,取樣器854、快取記憶體851、858及執行單元852A、852B各自具有單獨的記憶體存取路徑。
在一實施例中,顯現輸出管線870含有柵格化器及深度測試組件873,該柵格化器及深度測試組件將基於頂點之物件轉換為其相關聯的基於像素之表示。在一實施例中,柵格化器邏輯包括分窗器(windower)/遮蔽器(masker)單元以執行固定功能三角形及線柵格化。相關聯之顯現緩衝快取記憶體878及深度緩衝快取記憶體879在一實施例中亦為可利用的。像素操作組件877對資料執行基於像素之操作,但在一些例子中,與2D操作相關聯之像素操作(例如,藉由摻合之位元區塊影像傳送)藉由2D引擎841執行,或藉由顯示控制器843使用上覆顯示平面在顯示時間替換。在一實施例中,共用L3快取記憶體875對所有圖形組件為可利用的,從而允許資料在不使用主系統記憶體之情況下的共用。
圖形處理器媒體管線830包括媒體引擎337及視訊前端834。在一實施例中,視訊前端834自命令流轉化器803接收管線命令。然而,在一實施例中,媒體管線830包 括單獨的命令流轉化器。視訊前端834在將媒體命令發送至媒體引擎837之前處理該等命令。在一實施例中,媒體引擎包括執行緒引發功能性以引發執行緒以供經由執行緒調度器831調度至執行緒執行邏輯850。
在一實施例中,圖形引擎包括顯示引擎840。在一實施例中,顯示引擎840在圖形處理器外部,且經由環形互連體802或某其他互連匯流排或組構與圖形處理器耦接。顯示引擎840包括2D引擎841及顯示控制器843。顯示引擎840含有能夠獨立於3D管線進行操作之專用邏輯。顯示控制器843與顯示裝置(未圖示)耦接,該顯示裝置可如在膝上型電腦中為系統整合式顯示裝置或為經由顯示裝置連接器所附接的外部顯示裝置。
圖形管線820及媒體管線830可組配以基於多個圖形及媒體程式設計介面執行操作,且對任一應用程式程式設計介面(API)並非特定的。在一實施例中,用於圖形處理器之驅動器軟體將對特定圖形或媒體程式庫為特定的API調用轉譯為可藉由圖形處理器處理的命令。在各種實施例中,支援係針對藉由科納斯組織所支援之開放圖形程式庫(OpenGL)及開放計算語言(OpenCLTM)、來自微軟公司之Direct3D程式庫,或在一實施例中針對OpenGL及D3D兩者提供。支援亦可針對開放源電腦視覺程式庫(OpenCV)而提供。具有相容3D管線之未來API亦將在對映可自未來API之管線進行至圖形處理器的管線之情況下得以支援。
圖形管線程式設計-圖9A至圖9B
圖9A為例示根據一實施例之圖形處理器命令格式的方塊圖,且圖9B為例示根據一實施例之圖形處理器命令序列的方塊圖。圖9A中之實線框例示通常包括於圖形命令中之組件,而虛線包括任擇的或僅包括於圖形命令之子集中的組件。圖9A之示範性圖形處理器命令格式900包括資料欄位來識別命令之目標用戶端902、命令操作碼(運算碼)904及用於命令之有關資料906。子運算碼905及命令大小908亦包括於一些命令中。
用戶端902指定圖形裝置的處理命令資料之用戶端單元。在一實施例中,圖形處理器命令剖析器檢驗每一命令之用戶端欄位以調節命令之進一步處理且將命令資料投送至適當的用戶端單元。在一實施例中,圖形處理器用戶端單元包括記憶體介面單元、顯現單元、2D單元、3D單元及媒體單元。每一用戶端單元具有處理命令之對應的處理管線。一旦命令藉由用戶端單元接收,則用戶端單元讀取運算碼904及若存在則讀取子運算碼905以決定將執行的操作。用戶端單元使用命令之資料906欄位中的資訊執行命令。針對一些命令,顯式命令大小908被預期指定命令之大小。在一實施例中,命令剖析器基於命令運算碼自動地決定命令中之至少一些的大小。在一實施例中,命令經由雙字之倍數來對準。
圖9B中之流程圖展示樣本命令序列910。在一實施例中,表徵圖形處理器之實施例的資料處理系統之軟體或韌體使用所示之命令序列的一版本來設立、執行及終止 一組圖形操作。樣本命令序列為示範性目的得以展示及描述,然而,實施例不限於此等命令或此命令序列。此外,命令可作為命令序列中之批次之命令而發出,使得圖形處理器將以至少部分地同時的方式處理命令之序列。
樣本命令序列910可以管線排清命令912開始,以使任何作用圖形管線針對管線完成當前未決的命令。在一實施例中,3D管線922及媒體管線924並未同時操作。管線排清經執行以使作用圖形管線完成任何未決之命令。回應於管線排清,用於圖形處理器之命令剖析器將暫停命令處理直至作用製圖引擎完成未決的操作為止,且有關的讀取快取記憶體為無效的。任擇地,顯現快取記憶體中標記為「髒」之任何資料可排清至記憶體。管線排清命令912可用於管線同步或在將圖形處理器置於低功率狀態之前得以使用。
當命令序列要求圖形處理器在管線之間顯式地切換時,管線選擇命令913得以使用。管線選擇命令913在發出管線命令之前在執行上下文內僅被需要一次,除非上下文將針對兩個管線發出命令。在一實施例中,緊接在經由管線選擇命令913之管線切換之前需要管線排清命令912。
管線控制命令914組配圖形管線以供操作,且用以程式設計3D管線922及媒體管線924。管線控制命令914組配用於作用管線之管線狀態。在一實施例中,管線控制命令914用於管線同步,且在處理一批次之命令之前自作用 管線內的一或多個快取記憶體清除資料。
回覆緩衝器狀態命令916用以組配一組回覆緩衝器以供個別管線寫入資料。一些管線操作需要一或多個回覆緩衝器之分配、選擇或組配,操作在處理期間將中間資料寫入至該等緩衝器中。圖形處理器亦使用一或多個回覆緩衝器來儲存輸出資料且執行跨執行緒通訊。回覆緩衝器狀態916包括選擇將針對一組管線操作使用的回覆緩衝器之大小及數目。
命令序列中之剩餘命令基於用於操作之作用管線而不同。基於管線決定920,命令序列對於3D管線922定製為以3D管線狀態930開始,或對於媒體管線924定製為在媒體管線狀態940處開始。
用於3D管線狀態930之命令包括用於頂點緩衝器狀態、頂點元素狀態、恆定色彩狀態、深度緩衝器狀態,及將在3D基元命令經處理之前組配的其他狀態變數的3D狀態設定命令。此等命令之值至少部分地基於使用中之特定3D API來決定。3D管線狀態930命令亦能夠在將不使用某些管線元件的情況下選擇性地停用或繞過該等元件。
3D基元932命令用以提交3D基元以藉由3D管線處理。經由3D基元932命令傳遞至圖形處理器之命令及相關聯參數轉遞至圖形管線中的頂點提取功能。頂點提取功能使用3D基元932命令資料來產生頂點資料結構。頂點資料結構儲存於一或多個回覆緩衝器中。3D基元932命令用以經由頂點著色器對3D基元執行頂點操作。為了處理頂點著色 器,3D管線922將著色器執行緒調度至圖形處理器執行單元。
3D管線922係經由執行934命令或事件來觸發。在一實施例中,暫存器寫入觸發命令執行。在一實施例中,執行係經由命令序列中之『前進(go)』或『啟動(kick)』命令來觸發。在一實施例中,命令執行係使用管線同步命令來經由圖形管線排清命令序列而觸發。3D管線將針對3D基元執行幾何處理。一旦操作完成,則所得的幾何物件經柵格化且像素引擎對所得像素上色。控制像素著色及像素後端操作之額外命令亦可得以包括以用於該等操作。
樣本命令序列910在執行媒體操作時遵循媒體管線924路徑。一般而言,用於媒體管線924之程式設計的特定用途及方式取決於將要執行之媒體或計算操作。特定媒體解碼操作可在媒體解碼期間卸載至媒體管線。媒體管線亦可得以繞過,且媒體解碼可使用藉由一或多個通用處理核心所提供之資源整體或部分地執行。在一實施例中,媒體管線亦包括用於通用圖形處理器單元(GPGPU)操作之元件,其中圖形處理器用以使用並非顯式地與圖形基元之顯現相關的計算著色器程式執行SIMD向量操作。
媒體管線924以與3D管線922類似之方式組配。一組媒體管線狀態命令940在媒體物件命令942之前調度或置放至命令佇列中。媒體管線狀態命令940包括資料來組配將用以處理媒體物件之媒體管線元件。此包括資料來組配媒體管線內之視訊解碼及視訊編碼邏輯,諸如編碼或解碼 格式。媒體管線狀態命令940亦支援一或多個指標對含有一批次之狀態設定之『間接』狀態元件的使用。
媒體物件命令942將指標供應至媒體物件以供媒體管線處理。媒體物件包括含有將要處理之視訊資料的記憶體緩衝器。在一實施例中,在發出媒體物件命令942之前,所有媒體管線狀態必須為有效的。一旦管線狀態經組配且媒體物件命令942經排佇列,則媒體管線924經由執行934命令或等效執行事件(例如,暫存器寫入)來觸發。來自媒體管線924之輸出可接著藉由3D管線922或媒體管線924所提供之操作進行後處理。在一實施例中,GPGPU操作以與媒體操作類似之方式來組配及執行。
圖形軟體架構-圖10
圖10例示根據一實施例之用於資料處理系統的示範性圖形軟體架構。軟體架構包括3D圖形應用程式1010、作業系統1020及至少一處理器1030。處理器1030包括圖形處理器1032及一或多個通用處理器核心1034。圖形應用程式1010及作業系統1020各自在資料處理系統之系統記憶體1050中執行。
在一實施例中,3D圖形應用程式1010含有包括著色器指令1012之一或多個著色器程式。著色器語言指令可呈高階著色器語言,諸如高階著色器語言(HLSL)或OpenGL著色器語言(GLSL)。應用程式亦包括可執行指令1014,該等可執行指令呈適於藉由通用處理器核心1034執行之機器語言。應用程式亦包括藉由頂點資料所界定之圖 形物件1016。
作業系統1020可為來自微軟公司之Microsoft® Windows®作業系統、專屬的類UNIX作業系統,或使用Linux內核之變體的開放源類UNIX作業系統。當Direct3D API在使用中時,作業系統1020使用前端著色器編譯器1024來將呈HLSL之任何著色器指令1012編譯為較低階著色器語言。編譯可為及時編譯或應用程式可執行共用預編譯。在一實施例中,高階著色器在3D圖形應用程式1010之編譯期間編譯為低階著色器。
使用者模式圖形驅動器1026可含有後端著色器編譯器1027以將著色器指令1012轉換為特定硬體表示。當OpenGL API在使用中時,呈GLSL高階語言之著色器指令1012傳遞至使用者模式圖形驅動器1026以供編譯。使用者模式圖形驅動器使用作業系統內核模式功能1028來與內核模式圖形驅動器1029通訊。內核模式圖形驅動器1029與圖形處理器1032通訊以調度命令及指令。
就各種操作或功能在本文得以描述之程度而言,其可描述或定義為硬體電路、軟體程式碼、指令、組態及/或資料。內容可體現於硬體邏輯中,或體現為直接可執行軟體(「物件」或「可執行」形式)、原始碼、經設計以供在圖形引擎上執行之高階著色器碼,或在用於特定處理器或圖形核心之指令集中的低階組合語言碼。本文所描述之實施例之軟體內容可經由儲存有內容的製品或經由操作通訊介面以經由該通訊介面發送資料之方法來提供。
非暫時性機器可讀儲存媒體可使機器執行所描述之功能或操作,且包括以可藉由機器(例如,計算裝置、電子系統等)存取之形式儲存資訊的任何機制,諸如可記錄/非可記錄媒體(例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存媒體、光學儲存媒體、快閃記憶體裝置等)。通訊介面包括介接至硬連線(hardwired)媒體、無線媒體、光學媒體等中任一者以通訊至另一裝置的任何機制,諸如記憶體匯流排介面、處理器匯流排介面、網際網路連接、碟片控制器等。通訊介面可藉由提供組態參數及/或發送信號以準備通訊介面以便提供描述軟體內容的資料信號來組配。通訊介面可經由發送至通訊介面的一或多個命令或信號存取。
所描述之各種組件可為用於執行所描述之操作或功能的構件。本文所描述之每一組件包括軟體、硬體或此等軟體、硬體之組合。組件可經實行為軟體模組、硬體模組、專用硬體(例如,應用程式特定的硬體、特定應用積體電路(ASIC)、數位信號處理器(DSP)等)、嵌入式控制器、硬連線電路等。除了本文描述的以外,可在不脫離所揭示之實施例及本發明之實行方案之範疇的情況下對該等實施例及本發明之實行方案進行各種修改。因此,本文之例示及實例應理解為例示性的,並且不具有限制性意義。本發明範圍應僅參考以下申請專利範圍來量測。
圖11例示根據一實施例之使用動態圖形影像顯現機制1100之計算裝置1110。計算裝置1100(例如,行動計 算裝置)可與圖1之資料處理系統100相同,且因此,為簡要及易於理解起見,以上參考圖1至圖10所陳述之細節中的許多不在此處進一步論述或重複。計算裝置1100可包括行動計算裝置(例如,智慧型電話、平板電腦、膝上型電腦、遊戲控制台、可攜式工作台等),該行動計算裝置充當用於代管動態圖形影像顯現機制(「顯現機制」)1110之主機,該動態圖形影像顯現機制用於藉由(在一實施例中)最佳化複合物件柵格化效能來促進圖形影像之基於動態圖形域之顯現。顯現機制1110可包括任何數目及類型之組件以執行各種任務來促進諸如在計算裝置1100之GPU 1114處的有效的基於GPU之工作負荷排程及執行,如將遍及本文件進一步所描述。應注意,遍及本文件,如「圖形域」等詞可與「圖形處理單元」或簡單地「GPU」可互換地引用,且類似地,「CPU域」或「主機域」可與「電腦處理單元」或簡單地「CPU」可互換地引用。
計算裝置1100可包括任何數目及類型之通訊裝置,諸如大型計算系統,諸如伺服器電腦、桌上型電腦等,且可進一步包括機上盒(set-top box)(例如基於網際網路之電纜電視機上盒等)、基於全球定位系統(GPS)之裝置等。計算裝置1100可包括充當通訊裝置的行動計算裝置,諸如包括智慧型電話的行動電話、個人數位助理(PDA)、平板電腦、膝上型電腦、電子閱讀器、智慧型電視、電視平台、可穿戴式裝置(例如,眼鏡、腕表、手鐲、智慧卡(smartcard)、珠寶、衣服物品等)、媒體播放器等。例如,在一實施例中, 計算裝置1100可包括使用積體電路(「IC」)的行動計算裝置,該積體電路諸如系統單晶片(「SoC」或「SOC」),該積體電路將計算裝置1100之各種硬體及/或軟體組件整合於單一晶片上。
如所例示,在一實施例中,除使用顯現機制1110之外,計算裝置1100可進一步包括任何數目及類型之硬體組件及/或軟體組件,諸如(但不限於)CPU 1112、具有代管工作負荷機制1110的圖形驅動器邏輯1116之GPU 1114、記憶體1108、網路裝置、驅動器等,以及輸入/輸出(I/O)源1104,諸如觸控螢幕、觸摸面板、觸摸墊、虛擬或常規鍵盤、虛擬或常規滑鼠、埠、連接器等。計算裝置1100可包括作業系統(OS)1106,該作業系統充當電腦裝置1100之硬體及/或實體資源與使用者之間的介面。預期,CPU 1112可包括一或多個處理器,諸如圖1之處理器102,而GPU 1114可包括一或多個圖形處理器,諸如圖1之圖形處理器108。在一實施例中且如參考後續諸圖進一步所描述,工作負荷機制1110可處於與其主機驅動器邏輯1116通訊中,該主機驅動器邏輯與GPU 1114合作以促進任何數目及類型之任務,該等任務促進命令之基於GPU之並行排程,如遍及本文件所描述。
應注意,如「節點」、「計算節點」、「伺服器」、「伺服器裝置」、「雲端電腦」「雲端伺服器」、「雲端伺服器電腦」、「機器」、「主機」、「裝置」、「計算裝置」、「電腦」、「計算系統」及其類似者等詞可遍及本文件可互換地使用。應 進一步注意,如「應用程式」、「軟體應用程式」、「程式」、「軟體程式」、「封裝」、「軟體封裝」及其類似者等詞可遍及本文件可互換地使用。又,如「工作」、「輸入」、「請求」、「訊息」及其類似者等詞可遍及本文件可互換地使用。
預期且如參考圖1至圖10進一步描述,如以上所述之圖形管線的一些處理程序係以軟體實行,而其餘處理程序係以硬體實行。圖形管線可以圖形共處理器設計來實行,其中CPU 1112經設計來與GPU 1114一起工作,該GPU可包括於CPU 1112中或與CPU 1112共定位。在一實施例中,GPU 1114可使用任何數目及類型之習知軟體及硬體邏輯來執行與圖形顯現有關的習知功能,以及新穎軟體及硬體邏輯以執行任何數目及類型之指令,諸如圖1之指令121,以執行如遍及本文件所揭示的工作負荷機制1110之各種新穎功能。
如前述,記憶體1108可包括隨機存取記憶體(RAM),該隨機存取記憶體包含具有物件資訊之應用程式資料庫。諸如圖1之記憶體控制器集線器116的記憶體控制器集線器可存取RAM中之資料,且將其轉遞至GPU 1114以供圖形管線處理。RAM可包括雙倍資料速率RAM(DDR RAM)、擴充的資料輸出RAM(EDO RAM)等。CPU 1112與硬體圖形管線互動,如參考圖3所例示,以共用圖形管線功能性。經處理資料儲存於硬體圖形管線中之緩衝器中,且狀態資訊儲存於記憶體1108中。所得圖框接著經傳送至顯示組件或裝置,諸如圖3之顯示裝置320,以供顯示。預期, 顯示裝置可具有各種類型,諸如陰極射線管(CRT)、薄膜電晶體(TFT)、液晶顯示器(LCD)、有機發光二極體(OLED)陣列等,以將資訊顯示給使用者。
記憶體1108可包含緩衝器(例如,圖框緩衝器)之預分配區域;然而,一般熟習此項技術者應理解,實施例並未如此受限,且可使用對下部圖形管線為可存取的任何記憶體。計算裝置1100可進一步包括如圖1中所引用之輸入/輸出(I/O)控制集線器(ICH)130、一或多個I/O裝置等。
CPU 1112可包括一或多個處理器來執行指令,以便執行計算系統實行的無論何軟體常式。該等指令頻繁地涉及對資料所執行的某種類之操作。資料及指令兩者可儲存於系統記憶體1108及任何相關聯之快取記憶體中。快取記憶體通常經設計來具有短於系統記憶體1108之潛時;例如,快取記憶體可整合至作為處理器之同一(相同的)矽晶片上及/或藉由較快的靜態RAM(SRAM)胞來建構,同時系統記憶體1108可藉由較慢的動態RAM(DRAM)胞來建構。藉由傾向於如與系統記憶體1108相對而將更頻繁使用之指令及資料儲存於快取記憶體中,計算裝置1100之整體效能效率改良。預期,在一些實施例中,GPU 1114可存在而作為CPU 1112之部分(諸如,實體CPU封裝之部分),在該狀況下,記憶體1108可藉由CPU 1112及GPU 1114共用或保持分開。
可使系統記憶體1108對計算裝置1100內之其他組件為可利用的。舉例而言,自對計算裝置1100之各種介 面(例如,鍵盤及滑鼠、指標埠、區域網路(LAN)埠、數據機埠等)所接收或自電腦裝置1100之內部儲存元件(例如,硬碟驅動機)所擷取的任何資料(例如,輸入圖形資料)在其藉由軟體程式之實行方案中的一或多個處理器操作之前常常暫時地排佇列至系統記憶體1108中。類似地,軟體程式決定應經由計算系統介面中之一者自計算裝置1100發送至外部實體或儲存至內部儲存元件中的資料在其得以傳輸或儲存之前常常暫時地排佇列於系統記憶體1108中。
此外,舉例而言,諸如圖1之ICH 130的ICH可用於確保,此資料在系統記憶體1108與其適當的對應的計算系統介面(及內部儲存裝置,若計算系統如此設計)之間恰當地傳遞,且可在自身與所觀測I/O裝置之間具有雙向點對點鏈路。類似地,諸如圖1之MCH 116的MCH可用於管理針對在CPU 1108及GPU 1112、介面及內部儲存元件當中的系統記憶體1114存取之各種競爭請求,該等請求可相對於彼此在時間上接近地發生。
I/O源1104可包括一或多個I/O裝置,該一或多個I/O裝置經實行以用於將資料傳送至計算裝置1100及/或自計算裝置1100傳送資料(例如,網路連接配接器);或,用於計算裝置1200內的大規模非依電性儲存(例如,硬碟驅動機)。包括文數字及其他金鑰之使用者輸入裝置可用以將資訊及命令選擇傳達至GPU 1114。另一類型之使用者輸入裝置為遊標控制件,諸如滑鼠、軌跡球、觸控式螢幕、觸控板或遊標方向鍵,以將方向資訊及命令選擇傳達至GPU 1114且控制顯示裝置上的遊標移動。電腦裝置1100之相機及麥克風陣列可用以觀測手勢,記錄音訊及視訊,以及接收及傳輸視覺及音訊命令。
計算裝置1100可進一步包括網路介面以提供對網路之存取,該網路諸如LAN、廣域網路(WAN)、都會區域網路(MAN)、個人區域網路(PAN)、藍牙、雲端網路、行動網路(例如,第三代(3G)等)、企業內部網路、網際網路等。網路介面可包括例如具有天線之無線網路介面,該天線可表示一或多個天線。網路介面亦可包括例如有線網路介面來經由網路纜線與遠端裝置通訊,該網路纜線可為例如乙太網路纜線、同軸纜線、光纖纜線、串行纜線或並行纜線。
網路介面可例如藉由符合IEEE 802.11b及/或IEEE 802.11g標準而提供對LAN之存取,及/或無線網路介面可例如藉由符合藍牙標準而提供對個人區域網路之存取。包括標準之先前及後續版本的其他無線網路介面及/或協定亦可得以支援。除了經由無線LAN標準之通訊之外或替代於其,網路介面可使用例如分時多重存取(TDMA)協定、全球行動通訊系統(GSM)協定、分碼多重存取(CDMA)協定及/或任何其他類型之無線通訊協定來提供無線通訊。
舉例而言,網路介面可包括一或多個通訊介面,諸如數據機、網路介面卡,或其他熟知的介面裝置,諸如用於耦接至乙太網路之介面裝置,符記環,或用於提供通訊鏈路以支援LAN或WAN之目的的其他類型之實體有線或無線附件。以此方式,舉例而言,電腦系統亦可經由習知 網路基礎架構耦接至數個周邊裝置、用戶端、控制表面、控制台或伺服器,該網路基礎架構包括企業內部網路或網際網路。
應瞭解,配備物少於或多於上文所述之實例的系統針對某些實行方案可為較佳的。因此,計算裝置1100之組態可取決於眾多因素而在實行方案間變化,諸如價格約束、效能要求、技術改良或其他境況。電子裝置或電腦系統1100之實例可包括(無限制)行動裝置、個人數位助理、行動計算裝置、智慧型電話、蜂巢式電話、手機、單向呼叫器、雙向呼叫器、訊息傳遞裝置、電腦、個人電腦(PC)、桌上型電腦、膝上型電腦、筆記型電腦、手持型電腦、平板電腦、伺服器、伺服器陣列或伺服器場、網站伺服器、網路伺服器、網際網路伺服器、工作台、迷你電腦、主架電腦、超級電腦、網路用具、網站用具、分散式計算系統、多處理器系統、基於處理器之系統、消費型電子設備、可規劃消費型電子設備、電視、數位電視、機上盒、無線存取點、基地台、用戶台、行動用戶中心、無線電網路控制器、路由器、集線器、閘道器、橋接器、交換器、機器,或其組合。
實施例可實行為以下各者中之任一者或組合:使用母板(parentboard)互連之一或多個微晶片或積體電路、硬連線邏輯、藉由記憶體裝置儲存且藉由微處理器執行之軟體、韌體、特定應用積體電路(ASIC)及/或現場可規劃閘陣列(FPGA)。藉由實例,「邏輯」一詞可包括軟體或硬體,及 /或軟體與硬體之組合。
實施例可經提供例如為電腦程式產品,其可包括儲存有機器可執行指令之一或多個機器可讀媒體,該等指令在藉由諸如電腦、電腦之網路或其他電子裝置的一或多個機器執行時可引起該一或多個機器根據本文所述之實施例執行操作。機器可讀媒體可包括(但不限於)軟性磁片、光碟、CD-ROM(緊密光碟-唯讀記憶體),及磁光碟片、ROM、RAM、EPROM(可抹除可規劃唯讀記憶體)、EEPROM(電可抹除可規劃唯讀記憶體)、磁性或光學卡、快閃記憶體,或適用於儲存機器可執行指令的其他類型之媒體/機器可讀媒體。
此外,實施例可作為電腦程式產品得以下載,其中程式可藉由體現於載波或其他傳播媒體中及/或藉由其調變之一或多個資料信號經由通訊鏈路(例如,數據機及/或網路連接)自遠端電腦(例如,伺服器)傳送至請求電腦(例如,用戶端)。
圖12例示根據一實施例之動態圖形影像顯現機制1110。在一實施例中,顯現機制1110可包括任何數目及類型之組件以執行與促進計算裝置(諸如圖11之計算裝置1100)處的圖形影像之基於圖形域之動態、有效及準確的顯現有關的各種任務。例如且在一實施例中,顯現機制1110可包括(但不限於):偵測及驗證邏輯1201;定界框(「BB」)計算及應用邏輯(「BB邏輯」)1203;柵格化規則驗證及應用邏輯(「RR邏輯」)1205;計算邏輯1207;形成及顯現邏 輯1209;適應性調諧邏輯1211;以及通訊/相容性邏輯1213。進一步例示且如參考圖11所述,顯現機制1110可為驅動器邏輯1116之部分,該驅動器邏輯與GPU 1114合作,該GPU轉而促進與基於GPU驅動器之顯現機制1110有關的一或多個任務。
在一實施例中,提供顯現機制1110以用於在一實施例中藉由將顯現機制1110之一或多個組件實行為GPU之驅動器之驅動器邏輯(諸如圖11之GPU 1114之驅動器邏輯1116)之部分以用於執行在複合物件層級處的各種顯現處理程序來達成圖形系統中的影像之改良之顯現。此外,不同於習知應用程式層級小物件濾波,顯現機制1110之基於GPU驅動器之實行方案促進具有各種大小之物件的影像之精確且真實的結果,該等大小自極大至極小。例如,若軟體應用程式請求具有許多頂點(諸如10,000個頂點)之輪子之影像經繪製且輪子經放大使得該輪子將產生一點,則仍可要求圖形驅動器繪製一點。然而,若來自10,000個頂點的所得點經決定為不接觸像素中心中任一者或由於應用程式設計介面(API)指定的柵格化規則而不產生可見像素,則在一實施例中,使用如藉由顯現機制1110促進的定界框,可捨棄輪子,此舉導致顯著的效能提高。此外,不同於應用程式物件層級封閉,若此輪子導致甚至一個像素,則在一實施例中,該像素隨後經繪製。
在使用顯現機制1110中,用於使用定界框之新穎及創新性技術經利用且使用,如將在本文件中進一步描 述。例如,在習知技術中,定界框使用限於視見平截頭體淘汰,或者應用程式層級的定界框演算法限於關於淘汰小物件進行二元決策。然而,實施例以任何數目及類型之新穎及創新性方式利用且使用定界框,諸如(不限於)利用及對照柵格化規則核對定界框。例如,如前述,可在基元層級處或在應用程式層級處執行習知技術,其中可不關注有關柵格化規則,因為例如遙遠物件(例如,樹木)可表現為一點。在一實施例中,在GPU驅動器處利用顯現機制1110,同時考慮且滿足應用程式設計介面(API)柵格化規則之約束。
在一實施例中,偵測及驗證邏輯1201可用來接收且/或偵測一或多個圖框上的一或多個影像內之任何數目及類型之物件,諸如CAD應用程式中之複合物件。預期,實施例並非僅限於基於CAD之應用程式或工具且實施例可與任何數目及類型之軟體應用程式、影像、圖框、形式、協定等一起使用且應用於上述各者;然而,為簡要、清楚及易於理解起見,可遍及本文件將CAD應用程式/工具用作一實例。
返回參考偵測及驗證邏輯1201,與接收及偵測任何數目、類型及大小之複合物件一起,偵測及驗證邏輯1201亦可用來偵測且識別每一複合物件內之任何數目及類型之頂點,諸如形成圖13A之複合物件1301的頂點1303。例如,顯現情景的CAD工具可使用預定義複合物件,其中可存在顯現物件可由於應用於物件基元、逐基元 (primitive-by-primitive)層級等上的柵格化規則而不改變圖框緩衝器內容時的狀況。此外,例如,對於複雜物件,每基元柵格化可顯著地影響顯現效能。
預期且請注意,諸如圖13A之複合物件1301的複合物件(或簡單地「物件」)可指代相對大的影像內之極小物件。例如,若大影像為具有諸如引擎、輪胎、座椅等之大主體部分的牽引機之影像,則複合物件則可為牽引機之引擎各處的小螺釘、固定於輪子中的小螺栓或座椅上的螺絲或設計模式等。此外,每一物件可包括頂點,諸如圖13A之頂點1303,其中定界框可經計算以經應用或置放來覆蓋物件之任何數目之此類頂點,如將參考BB邏輯1203及圖13A至圖13B進一步描述。
預期且請注意,可在運行時間中且在已偵測/識別物件及該物件之頂點時執行物件及該等物件之頂點之偵測/識別,可針對物件之頂點上的定界框之計算及應用觸發BB邏輯1203。在一實施例中,定界框可經自動地計算且基於物件之變化的最小值及最大值藉由BB邏輯1203針對定界框之大小加以動態調整。例如,在覆蓋最大值中,若物件看起來較大且具有附加之一或多個頂點,則定界框可動態地調整為足夠大以便覆蓋額外頂點,而相反,若一或多個頂點在物件看起來較小時已自物件移除,則定界框可動態地調整為較小但仍足夠大以便覆蓋物件頂點。類似地,在一些實施例中,定界框可經設定以覆蓋最小數目之頂點(例如,任何數目及佈局之頂點),因為實施例不限於用於計 算及應用定界框之任何特定技術。
在一實施例中,定界框之此動態變換可被視為具有最小成本(就系統資源等而言)之簡單得多的操作;尤其,當與針對複合物件中之所有頂點執行頂點計算相比時。然而,在一些實施例中,例如,對於具有少數基元之複合物件可不計算定界框,因為在此狀況下,處理定界框之成本可大於基元處理成本。繼續CAD實例,在CAD應用程式之狀況下,可在顯示列表創建期間計算定界框。預期,CAD應用程式可使用顯示列表來創建複合物件(例如,幾何形狀可為靜態的且經提供至圖形驅動器以儲存於圖形子系統記憶體中)。此外,例如,關於CAD應用程式,可針對用於複合物件之三維(3D)頂點決定最小定界框。類似地,例如,在二維(2D)頂點之狀況下,可決定最小定界矩形以覆蓋複合物件之2D頂點。
在一實施例中,在定界框之自動及動態計算及應用時,RR邏輯1205可經觸發以將定界框變換成定界矩形,且將有關柵格化規則應用於最小定界矩形以驗證對應物件將是否在基元層級上經處理,諸如物件顯現是否改變圖框緩衝器內容。若需要基元層級,則隨後可在基元層級處處理物件而不考慮定界框,且複合物件經顯現。
計算邏輯1207可執行各種計算以決定在有或無與定界框相關聯之物件的情況下後續圖框是否將經由形成及顯現邏輯1209顯現。在一實施例中,計算邏輯1207計算表示物件的定界框。例如,如關於圖13B進一步描述且例 示,在一實施例中,計算邏輯1207偵測如由定界框界定的物件之邊界且隨後進一步決定對應定界矩形將是否導致像素經產生。諸如定界矩形是否包圍一或多個像素之一或多個像素中心或與該一或多個像素中心接觸之此資訊經轉遞至形成及顯現邏輯1209以供進一步處理。
若在一實施例中,如由計算邏輯1207所決定,發現定界矩形包圍一或多個像素中心或與一或多個像素中心接觸,則形成及顯現邏輯1209可使用此資料來形成下一圖框,使得該下一圖框包括正藉由對應定界框定界的物件。相反,如由計算邏輯1207所決定,若發現定界矩形不包括像素中心中任一者或不與像素中心中任一者接觸,則形成及顯現邏輯1209可使用此資料來形成下一圖框,使得該下一圖框不包括正藉由定界框定界的物件。此將參考圖13B進一步例示。在一實施例中,在形成下一圖框時,諸如在有或無物件的情況下,形成及顯現邏輯1209隨後可顯現隨後可經由計算裝置之顯示裝置/螢幕呈現的圖框。
如將參考圖14B進一步論述,在一些實施例中,可在運行時間使用且應用適應性調諧邏輯1211來追蹤對顯現機制1110之各種處理程序及/組件之管理控制,且對該等各種處理程序及/組件進行管理控制,使得可防止計算中一或多者在該等計算之效能根據該等計算可產生或可無法產生的結果經決定為不必要的時經執行。在如此進行時,可保留有關資源以用於在計算系統處運行的其他處理程序/應用程式。在一實施例中,適應性調諧邏輯1211可連續地 運行,使得可連續地追蹤處理程序之有用性而不考慮處理程序或時間等。在另一實施例中,可諸如根據預定時間週期來週期性地觸發適應性調諧邏輯1211。在又一實施例中,適應性調諧邏輯1211可經設定以在一或多個事件(諸如對於其他應用程式降低的資源之指示)發生時、在最佳化處理程序之開始或中途等經觸發。在又一實施例中,可基於前述準則之任何組合來使用且加強適應性調諧邏輯1211。
通訊/相容性邏輯1213可用以促進在諸如圖11之計算裝置1100的一或多個計算裝置與以下各者之間的動態通訊及相容性:任何數目及類型之其他計算裝置(諸如,行動計算裝置、桌上型電腦、伺服器計算裝置等)、處理裝置(諸如,中央處理單元(CPU)、圖形處理單元(GPU)等)、影像俘獲裝置(諸如,相機)、顯示元件(諸如,顯示組件、顯示裝置、顯示螢幕等)、使用者/上下文感知組件及/或識別/驗證感測器/裝置(諸如,生物統計感測器/偵測器、掃描儀等)、記憶體或儲存裝置、資料庫及/或資料源(諸如,資料儲存裝置、硬驅動機、固態驅動機、硬碟、記憶卡或裝置、記憶體電路等)、網路(例如,雲端網路、網際網路、企業內部網路、蜂巢式網路、接近性網路,諸如藍牙、藍牙低能量(BLE)、藍牙智慧、Wi-Fi接近性、射頻識別(RFID)、近場通訊(NFC)、體域網路(BAN)等)、無線或有線通訊及有關協定(例如,Wi-Fi®、WiMAX、乙太網路等)、連接性及位置管理技術、軟體應用程式/網站(例如,社會及/或商務網路連接網站、商務應用程式、遊戲及其他娛樂應用程式 等)、程式設計語言等,同時確保與改變的技術、參數、協定、標準等的相容性。
遍及本文件,如「邏輯」、「組件」、「模組」、「構架」、「引擎」及其類似者等詞可為可互換地引用的,且藉由實例包括軟體、硬體,及/或軟體與硬體之任何組合,諸如韌體。此外,諸如「GPU」、「GPU域」、「CPU」、「CPU域」、「執行緒」、「緩衝器」、「命令」、「命令緩衝器」、「圖框緩衝器」、「柵格化規則」、「定界框」、「物件」或「複合物件」、「頂點」或「數個頂點」、「CAD」、「最佳化處理程序」、「適應性調諧」、「驅動器」、「驅動器邏輯」、「OpenGLTM」、「OpenCLTM」等的特定商標、字語、詞語、片語、名稱及/或縮寫字之任何使用不應理解為將實施例限於在產品中或在本文件以外的文獻中攜帶該標記的軟體或裝置。
預期,任何數目及類型之組件可添加至顯現機制1110及/或自顯現機制1110移除,以促進包括添加、移除及/或增強某些特徵之各種實施例。為簡要、清楚及易於理解顯現機制1110起見,標準及/或已知組件中之許多組件並未在此展示或論述,該等組件諸如計算裝置之組件。預期,如本文所述之實施例不限於任何特定技術、拓撲、系統、架構及/或標準,且為足夠動態的以採用及適應任何未來改變。
圖13A例示根據一實施例之定界框1301,該定界框包圍與形成物件的影像1300相關聯的物件之頂點1303。 為簡要起見,此後可不論述或重複參考前述圖1至圖12所論述之細節中的許多。如較早所描述,影像1300可具有任何數目之物件,範圍自極微小的物件至極其大的物件,且因而物件可含有任何數目及類型之頂點之組合或由任何數目及類型之頂點之組合形成;例如,在所例示實施例中,三角形頂點1303共同形成複合物件,該複合物件隨後由虛線的最小定界框1301(遍及本文件之其他部分被稱為「定界框」)包圍。預期,實施例不限於任何特定形狀之頂點或定界框,且此等僅用作實例且用於例示目的。如前述且在一實施例中,定界框1301可經自動地及動態地計算以經形成為覆蓋物件之頂點1303,該等頂點隨後使用圖11至圖12之顯現機制1110之一或多個組件加以處理。
圖13B例示圖框1370,該圖框具有經由最小定界框OpenGL頂點變換獲得的最小定界矩形1350、1360(遍及本文件之其餘部分被稱為「定界矩形」)。為簡要起見,此後可不論述或重複參考前述圖1至圖13A所論述之細節中的許多。在所例示實施例中,圖框1370經展示為具有若干像素,該等像素展示為正方形,其中每一像素經展示為包括像素中心,該像素中民在像素之中心指示為一點,諸如具有像素中心1353之像素1351。類似地,像素1361A-F經展示為具有對應像素中心1363A-F。
例如且在一實施例中,圖框1370包括兩個複合物件,該兩個複合物件具有表示該等物件的定界框A 1350及定界框B 1360。如先前所論述,在習知技術中,定界框使 用限於視見平截頭體淘汰或小物件淘汰,且此等應用程式層級的習知技術不關心柵格化規則,因為該等習知技術關於淘汰平截頭體外(out-of-frustum)物件或小物件進行二元決策。實施例規定此等定界矩形A 1350及定界矩形B 1360對照柵格化規則加以核對,且因此例如且在一實施例中,定界矩形A 1350諸如藉由圖12之非抗混淆多邊形柵格化規則邏輯1205核對,以決定該定界矩形是否接觸或包括像素中心中任一者。在所例示實施例中,因為定界矩形A 1350接觸或包括像素1353,所以由定界矩形A 1350表示的物件可能改變圖框內容(例如,多邊形柵格化規則),且因此,物件經選擇來分別藉由計算邏輯1207以及形成及顯現邏輯1209計算且形成以經顯現。
類似地,在一實施例中,定界矩形B 1360經核對以決定該定界矩形是否接觸或包括像素中心中任一點,該等像素中心諸如最接近於定界矩形B 1360的像素中心1363A-F。然而,與定界矩形A 1350相反,定界矩形B 1360並未展示為包括像素中心中任一者,該等像素中心包括像素中心1363A-F,且因此,顯現藉由定界矩形B 1360表示的物件不會改變圖框緩衝器內容,且因此,可拒絕(跨越)物件,該物件並未展示為如由圖12之顯現機制1110之各種組件促進的圖框1370之最終或後續版本之部分。
圖14A例示根據一實施例之用於具有複合物件之圖形影像之動態顯現之方法1400。方法1400可藉由處理邏輯執行,該處理邏輯可包含硬體(例如,電路、專屬邏輯、 可規劃邏輯等)、軟體(諸如,在處理裝置上運行之指令)或上述各者之組合。在一實施例中,方法1400可藉由圖11至圖12之顯現機制1110執行。方法1400之處理程序為呈現簡要及清楚起見以線性序列例示;然而,預期,任何數目個該等處理程序可並行地、非同步地或以不同順序執行。為簡要起見,此後可不論述或重複參考前述圖1至圖13B所論述之細節中的許多。
方法1400在方塊1405處以在每圖框基礎上的物件之偵測及驗證開始。在方塊1410處,可針對例如圖框中之一或多個物件過小而不能為任何後續圖框之部分來偵測且識別圖框中之一或多個物件,諸如複合物件,且拒絕該一或多個物件而不進行進一步處理。在方塊1415處,在一實施例中,針對選定的一或多個複合物件自動地計算一或多個最小定界框。在方塊1420處,使用例如OpenGL頂點變換來將定界框變換成定界矩形。
在方塊1425處,將用於非抗混淆、非多取樣、充滿模式多邊形之OpenGL柵格化規則應用於一或多個定界矩形,使得對照柵格化規則核對一或多個定界矩形以決定由一或多個定界框表示的物件中任一者是否展示於圖框中或成為圖框之部分。在方塊1430處,使用柵格化規則,在一實施例中,對照柵格化規則核對定界矩形,使得每一定界矩形經核對以決定該定界矩形是否接觸或包括像素之像素中心。
在一實施例中,在方塊1440處,若定界矩形不接 觸或包括像素中心,則可自下一圖框之顯現捨棄對應物件,因為該物件不會改變圖框緩衝器內容。在另一實施例中,在方塊1435處,若定界矩形接觸或包括像素中心,則對應物件經選擇且形成為包括於下一圖框之顯現中,且此外,物件被視為可能改變圖框緩衝器內容。
圖14B例示根據一實施例之用於適應性調諧之方法1450。方法1450可藉由處理邏輯執行,該處理邏輯可包含硬體(例如,電路、專屬邏輯、可規劃邏輯等)、軟體(諸如,在處理裝置上執行之指令),或上述各者之組合。在一實施例中,方法1450可藉由圖11至圖12之顯現機制1110執行。方法1300之處理程序為呈現簡要及清楚起見以線性序列例示;然而,預期,任何數目個該等處理程序可並行地、非同步地或以不同順序執行。為簡要起見,此後可不論述或重複參考前述圖1至圖12所論述之細節中的許多。
在一些實施例中,如前述,可在運行時間應用適應性調諧之方法1450來追蹤對顯現機制1110之各種處理程序及/組件之管理控制且對該等處理程序及/組件進行管理控制,使得如由顯現機制1110促進的一或多個處理程序可在必要時執行,而當此類處理程序之效能經決定為不必要的時終止或防止此類處理程序執行,使得繼而可保留有關資源以用於計算系統內之其他處理程序/應用程式。例如,可決定如由顯現機制1110促進的定界框之應用可並非任何數目之後續圖框所必需的,且因此,可使用適應性調諧方法1450暫停針對該特定數目之圖框計算及應用定界框之處 理程序。
換言之,在一些實施例中,可以預定圖框間隔在運行時間自動地且動態地追蹤如由顯現機制1110促進的計算及應用定界框之處理過程之有用性,且若決定系統並未受益於該處理程序,則可針對任何數目之後續圖框關閉處理程序。因此,在不損失其他應用程式之效能的情況下達成實際增益。例如,在一些實施例中,在1:1之變焦尺度比下,跨越複合物件之百分比可為0%,而效能增益之百分比可在-1%處,且類似地,在1:256之變焦尺度比下,跨越複合物件可在88%處,而效能增益可在70%處,等等。
在一實施例中,可基於任何數目及類型之因素決定臨限值,該等因素諸如運行時間資料或效能、歷史資料或效能、自實驗獲得的資料、用於最佳化之成本/經費分配、用於最佳化以及用於其他處理程序/應用程式之資源之可用性等。例如,臨限值可包括數目(例如,100個圖框)、百分比(例如,20%)、事件之發生(例如,用於其他應用程式之不足資源)或上述各者之組合等,且此外,臨限值可為動態的,且因此隨準則變化或前述因素中任何一或多者而改變。
在一實施例中,方法1450在方塊1455處始於打開如由圖11至圖12之顯現機制1110促進的最佳化處理程序。在方塊1460處,處理程序中之下一圖框經顯現,且此處理程序在方塊1465處繼續最佳化處理程序中所遭遇的每一圖框。在一實施例中,基於如在每圖框基礎上計算的跨越複 合物件與總複合物件之比來執行適應性調諧之方法1450。在方塊1470處,顯現圖框之數目等於計數之倍數,且處理程序在方塊1460繼續下一圖框之顯現。在方塊1475處,可計算複合物件之跨越數目/總數目,且在方塊1480處,複合物件之跨越數目/總數目大於臨限值(例如,數目、百分比等),處理程序在方塊1485處關閉。
對「一實施例」、「實施例」、「示例性實施例」、「各種實施例」等之引用指示如此描述之實施例可包括特定特徵、結構或特性,但並非每一實施例必要地包括該等特定特徵、結構或特性。此外,一些實施例可具有針對其他實施例所述之一些、所有特徵或不具有該等特徵。
在前述說明書中,已參考實施例之特定示範性實施例描述實施例。然而,將顯然,在不脫離如所附申請專利範圍中所闡述的實施例之更廣泛精神及範疇的情況下,可對實施例進行各種修改及改變。因此,應以例示性而非限制性意義來看待說明書及圖式。
在以下描述及申請專利範圍中,可使用「耦接」一詞連同其衍生詞。「耦接」用以指示兩個或兩個以上元件彼此協作或互動,但其在其間可能或可能不具有介入之實體或電氣組件。
如申請專利範圍中所使用,除非另外指定序數形容詞「第一」、「第二」、「第三」等之使用以描述共同元件,否則僅指示相似元件之不同的執行個體被引用,且不欲暗示如此描述之元件必須暫時地、在空間上、在排名上抑或 以任何其他方式處於給定序列中。
以下條款及/或實例係關於其他實施例或實例。示例中之特定細節可用於一或多個實施例中的任何位置。不同的實施例或實例之各種特徵可以各種方式與所包括之一些特徵及其他的經排除特徵組合,以適應多種不同的應用。實例可包括標的物,諸如方法、用於執行方法之行為的構件、包括指令之至少一機器可讀媒體,該等指令在藉由機器執行時使機器執行方法或根據本文所述之實施例及實例的用於促進混合通訊之設備或系統的行為。
一些實施例係關於實例1,該實例包括用以促進具有複合物件之影像之動態顯現的設備,該設備包含:偵測及驗證邏輯,其用以識別圖框之多個物件中對於包括於後續圖框中為潛在無意義的一或多個物件;定界框計算及應用邏輯,其用以應用包圍一或多個物件的一或多個定界框;計算邏輯,其用以基於頂點變換來決定對應於一或多個定界框的一或多個最小定界矩形,其中計算邏輯進一步用以基於柵格化規則來決定一或多個最小定界矩形對一或多個像素之一或多個像素中心之覆蓋;以及形成及顯現邏輯,其用以在一或多個對應最小定界矩形中之第一最小定界矩形接觸或包括像素之像素中心的情況下選擇一或多個物件中之第一物件以包括於後續圖框中。
實例2包括實例1之主題,其中形成及顯現邏輯進一步用以:形成包括物件的後續圖框;以及經由計算裝置顯現包括第一物件的後續圖框,其中後續圖框經顯現以經 由顯示裝置呈現,該顯示裝置耦接至該計算裝置,其中頂點變換包含開放圖形程式庫(OpenGL)頂點變換。
實例3包括實例1或2之主題,其中形成及顯現邏輯進一步用以在一或多個對應最小定界矩形中之第二最小定界矩形遺漏一或多個像素中心的情況下拒絕一或多個物件中之第二物件以便不包括於後續圖框中。
實例4包括實例3之主題,其中形成及顯現邏輯進一步用以形成且顯現後續圖框,而無須包括第二物件。
實例5包括實例1之主題,其中定界框計算及應用邏輯進一步用以自動地計算一或多個定界框,且其中定界框基於一或多個因素動態地應用於一或多個物件,該一或多個因素包括物件之頂點之數目、將包圍的頂點之最小數目及將包圍的頂點之最大數目中一或多者。
實例6包括實例1之主題,其進一步包含柵格化規則驗證及應用邏輯,該邏輯用以將柵格化規則應用於一或多個定界框以促進計算邏輯決定一或多個物件對一或多個像素中心之鄰近度。
實例7包括實例1之主題,其中偵測及驗證邏輯進一步用以在識別一或多個物件之前偵測且驗證該等多個物件,其中無意義係基於一或多個因素,該一或多個因素包括一或多個物件關於圖框緩衝器像素格之大小中一或多者。
實例8包括實例1之主題,其進一步包含適應性調諧邏輯,該邏輯用以決定如由偵測及驗證邏輯、定界框計 算及應用邏輯、用於對應最小定界矩形之柵格化規則驗證及應用邏輯、計算邏輯及形成及顯現邏輯中一或多者促進的一或多個處理程序之繼續或終止。
一些實施例係關於實例9,該實例包括用於促進具有複合物件之影像之動態顯現之方法,該方法包含:識別圖框之多個物件中對於包括於後續圖框中為潛在無意義的一或多個物件;應用包圍一或多個物件的一或多個定界框;基於頂點變換來決定對應於一或多個定界框的一或多個最小定界矩形,其中計算邏輯進一步用以基於柵格化規則來決定一或多個最小定界矩形對一或多個像素之一或多個像素中心之覆蓋;以及在一或多個對應最小定界矩形中之第一最小定界矩形接觸或包括像素之像素中心的情況下,選擇一或多個物件中之第一物件以包括於後續圖框中。
實例10包括實例9之主題,其進一步包含:形成包括物件的後續圖框;以及經由計算裝置顯現包括第一物件的後續圖框,其中後續圖框經顯現以經由顯示裝置呈現,該顯示裝置耦接至該計算裝置,其中頂點變換包含開放圖形程式庫(OpenGL)頂點變換。
實例11包括實例9之主題,其進一步包含在一或多個對應最小定界矩形中之第二最小定界矩形遺漏一或多個像素中心的情況下,拒絕一或多個物件中之第二物件以便不包括於後續圖框中。
實例12包括實例10之主題,其進一步包含形成且顯現後續圖框,而無須包括第二物件。
實例13包括實例9之主題,其進一步包含自動地計算一或多個定界框,且其中定界框基於一或多個因素動態地應用於一或多個物件,該一或多個因素包括物件之頂點之數目、將包圍的頂點之最小數目及將包圍的頂點之最大數目中一或多者。
實例14包括實例9之主題,其進一步包含將柵格化規則應用於一或多個定界框以促進計算邏輯決定一或多個物件對一或多個像素中心之鄰近度。
實例15包括實例9之主題,其進一步包含在識別一或多個物件之前偵測且驗證該等多個物件,其中無意義係基於一或多個因素,該一或多個因素包括一或多個物件關於圖框緩衝器像素格之大小中一或多者。
實例16包括實例9之主題,其進一步包含決定如由偵測及驗證邏輯、定界框計算及應用邏輯、用於對應最小定界矩形之柵格化規則驗證及應用邏輯、計算邏輯及形成及顯現邏輯中一或多者促進的一或多個處理程序之繼續或終止。
實例17包括至少一機器可讀媒體,其包含多個指令,該等指令在於計算裝置上執行時實行或執行一方法或實現如任何前述請求項中所主張之一設備。
實例18包括至少一非暫時性或有形機器可讀媒體,其包含多個指令,該等指令在於計算裝置上執行時實施或執行一方法或實現如任何前述請求項中所主張之一設備。
實例19包括系統,該系統包含用以實行或執行一方法或實現如任何前述請求項中所主張之一設備的一機制。
實例20包括設備,該設備包含執行如任何前述請求項中所主張之一方法的構件。
實例21包括計算裝置,該計算裝置經配置來實行或執行一方法或實現如任何前述請求項中所主張之一設備。
實例22包括通訊裝置,該通訊裝置經配置來實行或執行一方法或實現如任何前述請求項中所主張之一設備。
一些實施例係關於實例23,該實例包括系統,該系統包含具有指令之儲存裝置,及用以執行指令以促進用以執行包含以下各者之一或多個操作的機制的處理器:識別圖框之多個物件中對於包括於後續圖框中為潛在無意義的一或多個物件;應用包圍一或多個物件的一或多個定界框;基於頂點變換來決定對應於一或多個定界框的一或多個最小定界矩形,其中計算邏輯進一步用以基於柵格化規則來決定一或多個最小定界矩形對一或多個像素之一或多個像素中心之覆蓋;以及在一或多個對應最小定界矩形中之第一最小定界矩形接觸或包括像素之像素中心的情況下,選擇一或多個物件中之第一物件以包括於後續圖框中。
實例24包括實例23之主題,其中一或多個操作進一步包含:形成包括物件的後續圖框;以及經由計算裝置 顯現包括第一物件的後續圖框,其中後續圖框經顯現以經由顯示裝置呈現,該顯示裝置耦接至該計算裝置,其中頂點變換包含開放圖形程式庫(OpenGL)頂點變換。
實例25包括實例23之主題,其中一或多個操作進一步包含在一或多個對應最小定界矩形中之第二最小定界矩形遺漏一或多個像素中心的情況下拒絕一或多個物件中之第二物件以便不包括於後續圖框中。
實例26包括實例25之主題,其中一或多個操作進一步包含形成且顯現後續圖框,而無須包括第二物件。
實例27包括實例23之主題,其中一或多個操作進一步包含自動地計算一或多個定界框,且其中定界框基於一或多個因素動態地應用於一或多個物件,該一或多個因素包括物件之頂點之數目、將包圍的頂點之最小數目及將包圍的頂點之最大數目中一或多者。
實例28包括實例23之主題,其中一或多個操作進一步包含將柵格化規則應用於一或多個定界框以促進計算邏輯決定一或多個物件對一或多個像素中心之鄰近度。
實例29包括實例23之主題,其中一或多個操作進一步包含在識別一或多個物件之前偵測且驗證該等多個物件,其中無意義係基於一或多個因素,該一或多個因素包括一或多個物件關於圖框緩衝器像素格之大小中一或多者。
實例30包括實例23之主題,其中一或多個操作進一步包含決定如由偵測及驗證邏輯、定界框計算及應用邏 輯、用於對應最小定界矩形之柵格化規則驗證及應用邏輯、計算邏輯及形成及顯現邏輯中一或多者促進的一或多個處理程序之繼續或終止。
一些實施例係關於實例31,該實例包括設備,該設備包含:識別構件,其用於識別圖框之多個物件中對於包括於後續圖框中為潛在無意義的一或多個物件;應用構件,其用於應用包圍一或多個物件的一或多個定界框;決定構件,其用於基於頂點變換來決定對應於一或多個定界框的一或多個最小定界矩形,其中計算邏輯進一步用以基於柵格化規則來決定一或多個最小定界矩形對一或多個像素之一或多個像素中心之覆蓋;以及選擇構件,其用於在一或多個對應最小定界矩形中之第一最小定界矩形接觸或包括像素之像素中心的情況下,選擇一或多個物件中之第一物件以包括於後續圖框中。
實例32包括實例31之主題,其進一步包含:形成構件,其用於形成包括物件的後續圖框;以及顯現構件,其用於經由計算裝置顯現包括第一物件的後續圖框,其中後續圖框經顯現以經由顯示裝置呈現,該顯示裝置耦接至該計算裝置,其中頂點變換包含開放圖形程式庫(OpenGL)頂點變換。
實例33包括實例31之主題,其進一步包含拒絕構件,該構件用於在一或多個對應最小定界矩形中之第二最小定界矩形遺漏一或多個像素中心的情況下,拒絕一或多個物件中之第二物件以便不包括於後續圖框中。
實例34包括實例33之主題,其進一步包含形成構件,該構件用於形成且顯現後續圖框,而無須包括第二物件。
實例35包括實例31之主題,其進一步包含計算構件,該構件用於自動地計算一或多個定界框,且其中定界框基於一或多個因素動態地應用於一或多個物件,該一或多個因素包括物件之頂點之數目、將包圍的頂點之最小數目及將包圍的頂點之最大數目中一或多者。
實例36包括實例31之主題,其進一步包含應用構件,該構件用於將柵格化規則應用於一或多個定界框以促進計算邏輯決定一或多個物件對一或多個像素中心之鄰近度。
實例37包括實例31之主題,其進一步包含偵測構件,該構件用於在識別一或多個物件之前偵測且驗證該等多個物件,其中無意義係基於一或多個因素,該一或多個因素包括一或多個物件關於圖框緩衝器像素格之大小中一或多者。
實例38包括實例31之主題,其進一步包含決定構件,該構件用於決定如由偵測及驗證邏輯、定界框計算及應用邏輯、用於對應最小定界矩形之柵格化規則驗證及應用邏輯、計算邏輯及形成及顯現邏輯中一或多者促進的一或多個處理程序之繼續或終止。
圖式及前述描述提供實施例之實例。熟習此項技術者將瞭解,所描述元件中之一或多者可良好地組合為單 一功能元件。或者,某些元件可分為多個功能元件。來自一實施例之元件可添加至另一實施例。舉例而言,本文所述之處理程序的次序可改變且不限於本文所述之方式。此外,任何流程圖中之行動無需以所示次序實施;所有行為亦未必需要被執行。又,並非取決於其他行為之該等行為可與其他行為並行地執行。實施例之範疇決不藉由此等特定實例來限制。眾多變化無論是否在說明書中得以顯式地提供皆為可能的,該等變化諸如結構、維度及材料之使用的差異。實施例之範疇至少與藉由以下申請專利範圍所提供一樣寬泛。

Claims (24)

  1. 一種設備,其包含:偵測及驗證邏輯,用以識別一圖框之多個物件中之對於被包括在一後續圖框中而言可能無意義的一物件;定界框計算及應用邏輯,用以施用含納該物件的一定界框;計算邏輯,用以基於頂點變換而判定對應於該定界框的一最小定界矩形,其中,該計算邏輯進一步可基於柵格化規則而判定該最小定界矩形對一或多個像素之一或多個像素中心的覆蓋狀況;以及形成及顯現邏輯,若該最小定界矩形接觸或含容該一或多個像素中心中之至少一者,則該形成及顯現邏輯可將該物件選擇為要被包括在該後續圖框中。
  2. 如請求項1之設備,其中,該形成及顯現邏輯進一步可用於進行下列操作:在該物件被選擇為要被包括在該後續圖框中的情況下,形成包含該物件的該後續圖框;以及經由一計算裝置,顯現包含該物件的該後續圖框,其中,該後續圖框是以經由耦接至該計算裝置的一顯示裝置來呈現的方式被顯現,其中,該頂點變換包含開放圖形程式庫(OpenGL)頂點變換。
  3. 如請求項1之設備,其中,若該最小定界矩形未含容該 一或多個像素中心中之任一者,則該形成及顯現邏輯可拒絕將該物件包括在該後續圖框中。
  4. 如請求項3之設備,其中,該形成及顯現邏輯進一步可用於進行下列操作:在該物件被拒絕包括在該後續圖框中的情況下,形成並顯現不必包含該物件的該後續圖框。
  5. 如請求項1之設備,其中,該定界框計算及應用邏輯進一步可自動計算該定界框,並且其中,該定界框係基於一或多個因素而被動態地施用至該物件,該一或多個因素包括下列中之一或多者:該物件之頂點之數目、該等頂點中之要含納的最小數目、及該等頂點中之要含納的最大數目。
  6. 如請求項1之設備,其進一步包含:柵格化規則驗證及應用邏輯,用以對該定界框施用該等柵格化規則以有助該計算邏輯判定該物件相對於該一或多個像素中心的接近度。
  7. 如請求項1之設備,其中,該偵測及驗證邏輯進一步可在識別該物件之前偵測並驗證該等多個物件,其中,對於無意義的判定係奠基於一或多個因素,該一或多個因素包括:該物件之關聯於一圖框緩衝器像素格的大小。
  8. 如請求項1之設備,其進一步包含:適應性調諧邏輯,用以在該偵測及驗證邏輯、該定界框計算及應用邏輯、該柵格化規則驗證及應用邏輯、該計算邏輯、及該形成及顯現邏輯其中一或多者的協助 下判定對於一或多個處理程序的繼續或終止。
  9. 一種方法,其包含:識別一圖框之多個物件中之對於被包括在一後續圖框中而言可能無意義的一物件;施用含納該物件的一定界框;基於頂點變換而判定對應於該定界框的一最小定界矩形;基於柵格化規則而判定該最小定界矩形對一或多個像素之一或多個像素中心的覆蓋狀況;以及若該最小定界矩形接觸或含容該一或多個像素中心中之至少一者,則將該物件選擇為要被包括在該後續圖框中。
  10. 如請求項9之方法,其進一步包含:在該物件被選擇為要被包括在該後續圖框中的情況下,形成包含該物件的該後續圖框;以及經由一計算裝置,顯現包含該物件的該後續圖框,其中,該後續圖框是以經由耦接至該計算裝置的一顯示裝置來呈現的方式被顯現,其中,該頂點變換包含開放圖形程式庫(OpenGL)頂點變換。
  11. 如請求項9之方法,其進一步包含:若該最小定界矩形未含容該一或多個像素中心中之任一者,則拒絕將該物件包括在該後續圖框中。
  12. 如請求項11之方法,其進一步包含: 在該物件被拒絕包括在該後續圖框中的情況下,在形成並顯現不必包含該物件的該後續圖框。
  13. 如請求項9之方法,其進一步包含:自動計算該定界框,其中,該定界框係基於一或多個因素而被動態地施用至該物件,該一或多個因素包括下列中之一或多者:該物件之頂點之數目、該等頂點中之要含納的最小數目、及該等頂點中之要含納的最大數目。
  14. 如請求項9之方法,其進一步包含:對該定界框施用該等柵格化規則以有助判定該物件相對於該一或多個像素中心的接近度。
  15. 如請求項9之方法,其進一步包含:在識別該物件之前偵測並驗證該等多個物件,其中,對於無意義的判定基於一或多個因素,該一或多個因素包括:該物件之關聯於一圖框緩衝器像素格的大小。
  16. 如請求項9之方法,其進一步包含:判定對於一或多個處理程序的繼續或終止。
  17. 一種包含至少一個機器可讀媒體的機器可讀媒體集合,其包含多個指令,該等指令在一計算裝置上被執行時可協助該計算裝置執行包含下列的操作:識別一圖框之多個物件中之對於被包括在一後續圖框中而言可能無意義的一物件;施用含納該物件的一定界框; 基於頂點變換而判定對應於該定界框的一最小定界矩形;基於柵格化規則而判定該最小定界矩形對一或多個像素之一或多個像素中心的覆蓋狀況;以及若該最小定界矩形接觸或含容該一或多個像素中心中之至少一者,則將該物件選擇為要被包括在該後續圖框中。
  18. 如請求項17之機器可讀媒體集合,其中,該等操作包含:在該物件被選擇為要被包括在該後續圖框中的情況下,形成包含該物件的該後續圖框;以及經由一計算裝置,顯現包含該物件的該後續圖框,其中,該後續圖框是以經由耦接至該計算裝置的一顯示裝置來呈現的方式被顯現,其中,該頂點變換包含開放圖形程式庫(OpenGL)頂點變換。
  19. 如請求項17之機器可讀媒體集合,其中,該等操作包含:若該最小定界矩形未含容該一或多個像素中心中之任一者,則拒絕將該物件包括在該後續圖框中。
  20. 如請求項19之機器可讀媒體集合,其中,該等操作包含:在該物件被拒絕包括在該後續圖框中的情況下,形成並顯現不必包含該物件的該後續圖框。
  21. 如請求項17之機器可讀媒體集合,其中,該等操作包含:自動計算該定界框,其中,該定界框係基於一或多個因素而被動態地施 用至該物件,該一或多個因素包括下列中之一或多者:該物件之頂點之數目、該等頂點中之要含納的最小數目、及該等頂點中之要含納的最大數目。
  22. 如請求項17之機器可讀媒體集合,其中,該等操作包含:對該定界框施用該等柵格化規則以有助判定該物件相對於該一或多個像素中心的接近度。
  23. 如請求項17之機器可讀媒體集合,其中,該等操作包含:在識別該物件之前偵測並驗證該等多個物件,其中,對於無意義的判定係奠基於一或多個因素,該一或多個因素包括:該物件之關聯於一圖框緩衝器像素格的大小。
  24. 如請求項17之機器可讀媒體集合,其中,該等操作包含:判定對於一或多個處理程序的繼續或終止。
TW104138571A 2014-12-23 2015-11-20 當複合物件在圖形影像中無法產生可見改變時促進圖形處理單元中此等物件之淘汰的技術 TWI616844B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??PCT/PL2014/000161 2014-12-23
PCT/PL2014/000161 WO2016105218A1 (en) 2014-12-23 2014-12-23 Facilitating culling of composite objects in graphics processing units when such objects produce no visible change in graphics images

Publications (2)

Publication Number Publication Date
TW201635243A TW201635243A (zh) 2016-10-01
TWI616844B true TWI616844B (zh) 2018-03-01

Family

ID=52440792

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104138571A TWI616844B (zh) 2014-12-23 2015-11-20 當複合物件在圖形影像中無法產生可見改變時促進圖形處理單元中此等物件之淘汰的技術

Country Status (3)

Country Link
US (1) US20170330371A1 (zh)
TW (1) TWI616844B (zh)
WO (1) WO2016105218A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3065051A1 (en) * 2015-03-05 2016-09-07 Ingo Josopait Flow control for language-embedded programming in general-purpose computing on graphics processing units
GB2591103A (en) * 2020-01-15 2021-07-21 British Telecomm Rendering of spatial environments

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7400325B1 (en) * 2004-08-06 2008-07-15 Nvidia Corporation Culling before setup in viewport and culling unit
TWI375213B (en) * 2007-10-08 2012-10-21 Via Tech Inc Graphics procesing system and graphics processing method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862392A (en) * 1986-03-07 1989-08-29 Star Technologies, Inc. Geometry processor for graphics display system
US6900818B1 (en) * 2003-11-18 2005-05-31 Silicon Graphics, Inc. Primitive culling apparatus and method
SE0801742L (sv) * 2008-07-30 2010-01-31 Intel Corp Förfarande, apparat och datorprogramprodukt för förbättrad grafikprestanda
WO2009093956A1 (en) * 2008-01-23 2009-07-30 Swiftfoot Graphics Ab Method, apparatus, and computer program product for improved graphics performance
US9633458B2 (en) * 2012-01-23 2017-04-25 Nvidia Corporation Method and system for reducing a polygon bounding box
US9495781B2 (en) * 2012-06-21 2016-11-15 Nvidia Corporation Early sample evaluation during coarse rasterization
US9858709B2 (en) * 2012-11-29 2018-01-02 Samsung Electronics Co., Ltd. Apparatus and method for processing primitive in three-dimensional (3D) graphics rendering system
US9947077B2 (en) * 2013-12-31 2018-04-17 Thomson Licensing Video object tracking in traffic monitoring
WO2015181179A1 (en) * 2014-05-28 2015-12-03 Thomson Licensing Method and apparatus for object tracking and segmentation via background tracking
US10217272B2 (en) * 2014-11-06 2019-02-26 Intel Corporation Zero-coverage rasterization culling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7400325B1 (en) * 2004-08-06 2008-07-15 Nvidia Corporation Culling before setup in viewport and culling unit
TWI375213B (en) * 2007-10-08 2012-10-21 Via Tech Inc Graphics procesing system and graphics processing method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hansong Zhang, Dinesh Manocha, Tom Hudson, Kenny Ho, "Visibility Culling Using Hierarchical Occlusion Maps," in Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques, 1997. *

Also Published As

Publication number Publication date
TW201635243A (zh) 2016-10-01
US20170330371A1 (en) 2017-11-16
WO2016105218A1 (en) 2016-06-30

Similar Documents

Publication Publication Date Title
CN107251098B (zh) 使用动态三维形状促进真实对象的真三维虚拟表示
US10497173B2 (en) Apparatus and method for hierarchical adaptive tessellation
US11010858B2 (en) Mechanism to accelerate graphics workloads in a multi-core computing architecture
US9990758B2 (en) Bounding volume hierarchy generation using a heterogeneous architecture
TWI632524B (zh) 以邊緣爲基礎之覆蓋遮罩壓縮技術
TWI596569B (zh) 促進針對在計算裝置上之部分被遮蔽圖形影像之動態且有效的預啓用裁剪之技術
US10776156B2 (en) Thread priority mechanism
US20170140570A1 (en) Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices
TWI601096B (zh) 用於細分表面的直接和互動式射線追蹤之方法及設備
US10909753B2 (en) Method and apparatus for sampling pattern generation for a ray tracing architecture
WO2017201676A1 (en) Self-adaptive window mechanism
TW201810179A (zh) 用於虛擬實境和多視角系統之交錯光柵化和像素著色的架構
TWI720981B (zh) 用於處理需要相加數個乘法結果之指令的方法、設備和非暫態電腦可讀取媒體
CN107408293B (zh) 支持计算装置处的图形命令流中对命令缓冲器的多级嵌套
US20170178278A1 (en) Method and apparatus for updating a shader program based on current state
US10552211B2 (en) Mechanism to increase thread parallelism in a graphics processor
TW201810026A (zh) 用於在計算環境中資料之邏輯處理的暫存器檔案之延伸
US10769751B2 (en) Single input multiple data processing mechanism
TWI616844B (zh) 當複合物件在圖形影像中無法產生可見改變時促進圖形處理單元中此等物件之淘汰的技術