TWI596569B - 促進針對在計算裝置上之部分被遮蔽圖形影像之動態且有效的預啓用裁剪之技術 - Google Patents
促進針對在計算裝置上之部分被遮蔽圖形影像之動態且有效的預啓用裁剪之技術 Download PDFInfo
- Publication number
- TWI596569B TWI596569B TW104116038A TW104116038A TWI596569B TW I596569 B TWI596569 B TW I596569B TW 104116038 A TW104116038 A TW 104116038A TW 104116038 A TW104116038 A TW 104116038A TW I596569 B TWI596569 B TW I596569B
- Authority
- TW
- Taiwan
- Prior art keywords
- image
- pixels
- invisible
- graphics
- computing device
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Computer Hardware Design (AREA)
Description
本文所述之實施例大體係關於電腦。更特定言之,實施例係關於用於促進針對在計算裝置上之部分被遮蔽影像之動態且有效的預啟用裁剪的機制。
顯示導向改變及觸碰相關之撥動、捏縮及伸展事件等為行動計算裝置中相當普遍的體驗。此等頻繁且非同步之發生情形常常導致隱式的經裁剪二維(2D)影像,從而導致部分被遮蔽像素區域。在使用用於計算之圖形處理單元(GPU)執行時間/驅動器的習知技術中,執行緒經一致地調度以執行所有像素上之內核而不管其可見狀態,其中顯示範圍裁剪之行為得以推遲且在隨後的成像階段執行。在不斷地改變影像對顯示範圍之幾何關係的動態模型中,此等習知技術就功率、計算資源等而言為次最佳且低效的。此外,前述感覺事件強加GPU上之重複計算且攜帶致力於
不可見像素的相當大的額外負荷。
依據本發明之一實施例,係特地提出一種設備,其包含:偵測及接收邏輯,其用以接收相關於具有部分被遮蔽區域之一影像的狀態資料,其中該影像能夠在一計算裝置之一圖形處理單元上受處理;評估及計算邏輯,其用以評估該狀態資料,其中該評估包括該影像之可見像素及不可見像素中之至少一者的計算;決策邏輯,其用以選擇將被包括於該影像之處理中的該等可見像素,其中該等不可見像素係被忽略;以及處理邏輯,其用以基於該等可見像素處理該影像。
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、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、562A、562N、608A、608B、608C、608D、608N-1、608N、852A、852B、1553A、1553B、1553N‧‧‧執行單元
554A、554N‧‧‧媒體/紋理取樣器
560A、560N‧‧‧第二子核心
564A、564N、610‧‧‧取樣器
570A、570N‧‧‧共用資源
580A、580N‧‧‧圖形核心/模組化核心
600、850‧‧‧執行緒執行邏輯
602‧‧‧像素著色器
604、831‧‧‧執行緒調度器
606‧‧‧指令快取記憶體
612‧‧‧資料快取記憶體
710‧‧‧128位元格式/128位元指令
712‧‧‧指令運算碼/指令控制欄位
713‧‧‧索引欄位
716‧‧‧執行大小欄位
718‧‧‧目的地
720‧‧‧源運算元src0
722‧‧‧源運算元src1
724‧‧‧第三源運算元SRC2
730‧‧‧64位元緊密指令格式
740‧‧‧運算碼解碼
742‧‧‧移動及邏輯運算碼群組
744‧‧‧流量控制指令群組
746‧‧‧雜項指令群組
748‧‧‧並行數學指令群組
750‧‧‧向量數學群組
805‧‧‧頂點提取器
807‧‧‧頂點著色器
811‧‧‧可規劃外殼著色器/鑲嵌組件
813‧‧‧鑲嵌器/鑲嵌組件
817‧‧‧可規劃域著色器/鑲嵌組件
819‧‧‧幾何著色器
820‧‧‧圖形管線
829‧‧‧裁剪器
830‧‧‧圖形處理器媒體管線
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‧‧‧執行
940‧‧‧媒體管線狀態/媒體管線狀態命令
942‧‧‧媒體物件命令
1010‧‧‧3D圖形應用程式
1012‧‧‧著色器指令
1014‧‧‧可執行指令
1016‧‧‧圖形物件
1020‧‧‧作業系統
1024‧‧‧前端著色器編譯器
1026‧‧‧使用者模式圖形驅動器
1027‧‧‧後端著色器編譯器
1028‧‧‧作業系統內核模式功能
1029‧‧‧內核模式圖形驅動器
1034‧‧‧通用處理器核心
1050、1555‧‧‧系統記憶體
1102‧‧‧肖像模式
1104‧‧‧風景模式
1112、1122、1132‧‧‧正常影像
1114、1124、1134‧‧‧影像
1200‧‧‧計算裝置/電腦裝置
1202‧‧‧系統單晶片(「SoC」或「SOC」)
1204‧‧‧輸入/輸出(I/O)源
1206‧‧‧作業系統(OS)
1208‧‧‧記憶體/系統記憶體
1210‧‧‧動態預啟用裁剪機制/體積機制
1212‧‧‧中央處理單元(CPU)
1214‧‧‧圖形處理單元(GPU)
1216‧‧‧圖形子系統
1218‧‧‧計算子系統
1301‧‧‧偵測及接收邏輯
1303‧‧‧評估及計算邏輯
1305‧‧‧決策邏輯
1307‧‧‧處理邏輯
1309‧‧‧通訊/相容性邏輯
1400、1500‧‧‧方法
1401、1403、1405、1407、1501、1503、1505、1507、1509、1511、1513‧‧‧區塊
1550‧‧‧異動序列
1551‧‧‧執行緒調度
在隨附圖式之諸圖中藉由實例而非藉由限制來例示實施例,在隨附圖式中相似的參考數字指代類似元件。
圖1為根據實施例之資料處理系統的方塊圖。
圖2為具有一或多個處理器核心、整合式記憶體控制器及整合式圖形處理器之處理器之實施例的方塊圖。
圖3為可為謹慎圖形處理單元或可為與多個處理核心整合之圖形處理器的圖形處理器之一實施例的方塊圖。
圖4為用於圖形處理器之圖形處理引擎之實施例的方塊圖。
圖5為圖形處理器之另一實施例的方塊圖。
圖6例示包括在圖形處理引擎之一實施例中所使
用的一陣列之處理元件的執行緒執行邏輯。
圖7為例示根據實施例之圖形處理器執行單元指令格式的方塊圖。
圖8為包括圖形管線、媒體管線、顯示引擎、執行緒執行邏輯及成像輸出管線之圖形處理器之另一實施例的方塊圖。
圖9A為例示根據實施例之圖形處理器命令格式的方塊圖,且圖9B為例示根據實施例之圖形處理器命令序列的方塊圖。
圖10例示根據實施例之用於資料處理系統的示範性圖形軟體架構。
圖11A、圖11B、圖11C及圖11D例示可應用一或多個實施例之各種使用狀況。
圖12例示根據一實施例的使用動態預啟用裁剪機制之計算裝置。
圖13例示根據一實施例之動態預啟用裁剪機制。
圖14例示用於促進習知後啟用裁剪處理程序之方法。
圖15A例示根據一實施例的用於促進針對在計算裝置處之部分被遮蔽影像之動態預啟用裁剪處理程序的方法。
圖15B例示根據一實施例的用於在圖形處理單元處之計算啟用處理程序的異動序列。
在以下描述中,闡述眾多特定細節。然而,如本文所述,實施例可在無此等特定細節的情況下實踐。在其他例子中,尚未詳細展示熟知的電路、結構及技術以便不會混淆對此描述之理解。
實施例提供代表計算裝置(例如,行動計算裝置,諸如智慧型電話、平板電腦等)中之GPU的用於部分被遮蔽影像之有效預啟用裁剪技術,以促進指定影像之相關作用子空間的有效方法,從而預啟用GPU計算任務。舉例而言且在一實施例中,如與在非起作用像素上施配已受約束計算裝置資源的習知技術相對,實施例以在預啟用內核時遵守顯示裁剪狀態的GPU計算執行時間/驅動器為基礎提供新穎且創新的技術。執行時間/驅動器可接著調度處理執行緒以單獨地對可見子影像操作,從而例如在與顯像演算法執行之複雜性及經裁剪掉之元素的數目兩者成正比的功率方面產生效能之預期增益。
預期,實施例不限於任何特定作業系統或平台且提供預啟用裁剪選項之實施例可藉由任何數目及類型的作業系統及平台支援或在該等作業系統及平台處使用,以使使用者以規劃方式選擇相關區域以用於計算,該等作業系統及平台諸如(但不限於)Android®上之RenderScript®計算平台等。進一步預期,實施例可進一步擴展至應用於更廣範圍之非同步裁剪事件例項,諸如實施例可在各種資料並行系統處使用或藉由該等系統使用以可能地在其個別介面
中調適及實現預啟用裁剪最佳化。
如前述,基於GPU計算執行時間/驅動器之習知技術為脫離遵守被視為圖形特定之狀態作準備且為低效的,且由此嚴格地限於具有自足型GPU計算程式且不與較小動態環境(例如,行動計算環境等)一起工作的僅大型靜態環境(例如,桌上型計算環境等)。此等技術在其遇到經裁剪影像時為尤其低效的,此情況迫使習知執行時間/驅動器對所有像素(包括不相關的像素)執行重複的重新計算且在成像時間推遲對應的裁剪後啟用。因此,此等技術為相當昂貴且功率低效的,且在處理導致經裁剪影像且深深紮根於使用者體驗中之頻繁觸碰事件時嚴重低效。
實施例提供GPU計算執行時間/驅動器,其使用機制以藉由裝置顯示裁剪狀態來工作,使得其可驗證作用計算元件且在必要時調用更有效的預啟用裁剪。實施例提供就功率及資源兩者而言明顯有效之技術且提供無縫且有效的處理路徑。
概述-圖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,該指令集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耦接,外部圖形處理器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。在一實施例中,每一核心亦具有對一或多個共用快取記憶體單元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/媒體子系統315包括用於仲裁及調度對可利用之執行緒執行資源之各種請求的執行緒調度邏輯。執行資源包括一陣列之圖形執行單元來處理3D及媒體執行緒。在一實施例中,3D/媒體子系統315包括用於執行緒指令及資料之一或多個內部快取記憶體。在一實施例中,子系統亦包括共用記憶體來在執行緒之間共用資料且儲存輸出資料,該共用記憶體包括暫存器及可定址記憶體。
3D/媒體處理-圖4
圖4為用於圖形處理器之圖形處理引擎410之實施例的方塊圖。在一實施例中,圖形處理引擎(GPE)410為圖3中所示之GPE 310的一版本。GPE 410包括3D管線412及媒體管線416,其中每一者可不同於抑或類似於圖3之3D管線312及媒體管線316的實行方案。
在一實施例中,GPE 410與命令流轉化器403耦接,命令流轉化器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促進針對操作之記憶體存取,該等操作包括成像器目標寫入、恆定緩衝器讀取、暫用記憶體空間讀取/寫入及媒體表面存取。在一實施例中,資料埠444包括快取記憶體空間以快取存取記憶體。快取記憶體可為單一資料快取記憶體或針對經由資料埠存取記憶體之多個子系統分為多個快取記憶體(例如,成像緩衝快取記憶體、恆定緩衝快取記憶體等)。在一實施例中,在執行單元陣列414中之執行單元上執行的執行緒藉由經由資料分佈互連體交
換訊息而與資料埠通訊,該互連體耦接圖形處理引擎410之子系統中的每一者。
執行單元-圖5至圖7
圖5為圖形處理器之另一實施例的方塊圖。在一實施例中,圖形處理器包括環形互連體502、管線前端504、媒體引擎537及圖形核心580A-N。環形互連體502將圖形處理器耦接至其他處理單元,包括其他圖形處理器或一或多個通用處理器核心。在一實施例中,圖形處理器為整合於多核心處理系統內之許多處理器中的一者。
圖形處理器經由環形互連體502接收多批次之命令。傳入命令藉由管線前端504中之命令流轉化器503解譯。圖形處理器包括可縮放執行邏輯以經由圖形核心580A-N執行3D幾何處理及媒體處理。針對3D幾何處理命令,命令流轉化器503將命令供應至幾何管線536。針對至少一些媒體處理命令,命令流轉化器503將命令供應至視訊前端534,視訊前端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,圖形核心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來解譯,
命令流轉化器803將指令供應至圖形管線820或媒體管線830之個別組件。
命令流轉化器803指導頂點提取器805組件之操作,該組件自記憶體讀取頂點資料且執行藉由命令流轉化器803所提供之頂點處理命令。頂點提取器805將頂點資料提供至頂點著色器807,頂點著色器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處理,裁剪器829為固定功能裁剪器抑或具有裁剪及幾何著色器功能之可規劃裁剪器。在一實施例中,成像輸出管線870中之光柵化器873調度像素著色器以將幾何物件轉換為其每像素表示。在一實施例中,像素著色器邏輯包括於執行緒執行邏輯850中。
圖形引擎具有允許資料及訊息在圖形引擎之主要組件當中通過的互連匯流排、互連組構或某其他互連機制。在一實施例中,執行單元852A、852B及相關聯快取記憶體851、紋理及媒體取樣器854及紋理/取樣器快取記憶體858經由資料埠856互連,以執行記憶體存取且與圖形引擎之成像輸出管線組件通訊。在一實施例中,取樣器854、快取記憶體851、858及執行單元852A、852B各自具有單獨的記憶體存取路徑。
在一實施例中,成像輸出管線870含有光柵化器及深度測試組件873,組件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,可執行指令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)、磁碟儲存媒體、光學儲存媒體、快閃記憶體裝置等)。通訊介面包括介接至硬連線、無線、光學等媒體中之任一者以通訊至另一裝置的任何機制,該另一裝置諸如記憶體匯流排介面、處理器匯流排介面、網際網路連接、碟片控制器等。通訊介面藉由提供組態參數或發送信號來組配,以準備通訊介面來提供描述軟體內容之資料信號。通訊介面可經由發送至通訊介面之一或多個命令或信號來存取。
所描述之各種組件可為用於執行所描述之操作或功能的構件。本文所述之每一組件包括軟體、硬體,或
此等之組合。組件可實施為軟體模組、硬體模組、專用硬體(例如,特定應用硬體、特定應用積體電路(ASIC)、數位信號處理器(DSP)等)、嵌入式控制器、硬連線電路等。除了本文所述之內容之外,亦可在不脫離本發明之所揭示實施例及實行方案之範疇的情況下對該等實施例及實行方案進行各種修改。因此,本文之說明及實例應以例示性而非限制性意義來解釋。本發明之範疇應僅僅藉由參考下文之申請專利範圍來衡量。
圖11A、圖11B、圖11C及圖11D例示可應用一或多個實施例之各種使用狀況。舉例而言,如所例示,在圖11A中,在左側,影像在計算裝置(例如,行動計算裝置,諸如智慧型電話、平板電腦等)上在肖像模式1102下展示為完全可見的,但同一影像在轉至右側的風景模式1104時展示為嚴重裁剪的。此通常在使用者將諸如智慧型電腦之行動裝置自肖像轉至風景或自風景轉至肖像時發生。如所例示,當計算裝置之此移動可嚴重地裁剪正常展示的影像時,其可表明在成像時間之遠不那麼有效的後啟用裁剪行動。
類似地,圖11B例示諸如行動計算裝置之計算裝置之顯示螢幕的觸碰撥動。舉例而言且如所例示,藉由執行觸碰撥動,左側之正常影像1112可裁剪為右側的小得多的可見影像1114,其中參考此實例,像素之幾乎44%展示為不可見的。
圖11C例示諸如行動計算裝置之計算裝置之顯
示螢幕的觸碰捏縮。舉例而言且如所例示,藉由執行觸碰捏縮,左側之正常影像1122可裁剪為右側的小得多的可見影像1124,其中參考此實例,原始像素之幾乎75%變換為背景。
圖11D例示諸如行動計算裝置之計算裝置之顯示螢幕的觸碰伸展。舉例而言且如所例示,藉由執行觸碰伸展,左側之正常影像1132可在放大右側之影像1134時經裁剪,其中參考此實例,原始像素之幾乎75%被遮蔽。
圖12例示根據一實施例的使用動態預啟用裁剪機制1210之計算裝置1200。計算裝置1200(例如,行動計算裝置)可與圖1之資料處理系統100相同,且因此,為簡要起見,上文參看圖1至圖10所陳述之細節中的許多不在此處重複。計算裝置1200可包括用作用於主控動態預啟用裁剪機制(「預啟用機制」)1210之主機的行動計算裝置(例如,智慧型電話、平板電腦、膝上型電腦、遊戲控制台、攜帶型工作台等),動態預啟用裁剪機制1210包括任何數目及類型之組件來執行各種任務以促進針對行動裝置中之GPU的有效預啟用裁剪,該等GPU諸如計算裝置1200處之GPU 1214,如將遍及本文件進一步描述。應注意,遍及本文件,如「圖形域」等詞可與「圖形處理單元」或簡單地「GPU」可互換地引用,且類似地,「CPU域」或「主機域」可與「電腦處理單元」或簡單地「CPU」可互換地引用。
計算裝置1200可包括任何數目及類型之通訊裝置,諸如大型計算系統,諸如伺服器電腦、桌上型電腦等,
且可進一步包括機上盒(例如,基於網際網路之有線電視機上盒等)、基於全球定位系統(GPS)之裝置等。計算裝置1200可包括用作通訊裝置之行動計算裝置,諸如包括智慧型電話之蜂巢式電話、個人數位助理(PDA)、平板電腦、膝上型電腦、電子閱讀器、智慧型電視、電視平台、智慧型窗、頭戴顯示器(HMD)及其他可佩戴裝置(例如,可佩戴眼鏡、腕表、手鐲、智慧卡、珠寶、衣服製品等)、媒體播放器等。
舉例而言,在一實施例中,計算裝置1200可包括行動計算裝置,該行動計算裝置使用在單一晶片上整合計算裝置1200之各種硬體及/或軟體組件的積體電路(「IC」),諸如系統單晶片(「SoC」或「SOC」)1202。此等組件可包括任何數目及類型之硬體及/或軟體組件,諸如(但不限於)CPU 1212、具有圖形子系統1216及計算子系統1218之GPU 1214、記憶體1208、預啟用機制1210、網路裝置、驅動器,或其類似者,以及輸入/輸出(I/O)源1204,諸如觸控式螢幕、觸控面板、觸控板、虛擬或常規鍵盤、虛擬或常規滑鼠、埠、連接器等。計算裝置1200可包括用作電腦裝置1200之硬體及/或實體資源與使用者之間的介面之作業系統(OS)1206。預期,CPU 1212可包括一或多個處理器,諸如圖1之處理器102,而GPU 1214可包括一或多個圖形處理器,諸如圖1之圖形處理器108。此外,如所例示,GPU 1214可劃分為圖形子系統1216及計算子系統1218,以執行如遍及本文件所述的任何數目及類型之任務。
如所例示,在一實施例中,除了使用預啟用機制
1210之外,計算裝置1200亦可進一步包括任何數目及類型之硬體組件及/或軟體組件,諸如(但不限於)CPU 1212、具有圖形子系統1216及計算子系統1218等之GPU 1214、記憶體1208、網路裝置、驅動器,或其類似者,以及輸入/輸出(I/O)源1204,諸如觸控式螢幕、觸控面板、觸控板、虛擬或常規鍵盤、虛擬或常規滑鼠、埠、連接器等。在一實施例中,體積機制(volumetric mechanism)1210可藉由GPU 1214主控。在另一實施例中且如所例示,體積機制1210可能並非藉由計算裝置100主控且其可獨立地及在計算裝置100處的別處受主控,同時保持與計算裝置100之其他組件通訊,諸如GPU 1214之圖形子系統1216及/或計算子系統1218、CPU 1212、作業系統1206,及計算裝置1200之其他軟體應用程式及/或組件等。
計算裝置1200可包括用作電腦裝置1200之硬體及/或實體資源與使用者之間的介面之作業系統(OS)1206。預期,CPU 1212可包括一或多個處理器,諸如圖1之處理器102,而GPU 1214可包括一或多個圖形處理器,諸如圖1之圖形處理器108。在一實施例中且如將參看後續諸圖進一步描述,體積機制1210可與GPU 1214之圖形子系統1216及/或計算子系統1218通訊以促進任何數目及類型之任務,從而促進用於圖形影像之體積的及時成像,如遍及本文件所述。
應注意,如「節點」、「計算節點」、「伺服器」、「伺服器裝置」、「雲端電腦」「雲端伺服器」、「雲端伺服器電
腦」、「機器」、「主機」、「裝置」、「計算裝置」、「電腦」、「計算系統」及其類似者等詞可遍及本文件可互換地使用。應進一步注意,如「應用程式」、「軟體應用程式」、「程式」、「軟體程式」、「封裝」、「軟體封裝」及其類似者等詞可遍及本文件可互換地使用。又,如「工作」、「輸入」、「請求」、「訊息」及其類似者等詞可遍及本文件可互換地使用。
預期且如參看圖1至圖10進一步描述,如上文所述之圖形管線的一些處理程序係以軟體實施,而其餘處理程序係以硬體實施。圖形管線可以圖形共處理器設計來實施,其中CPU 1212經設計來與GPU 1214一起工作,GPU 1214可包括於CPU 1212中或與CPU 1212共定位。在一實施例中,GPU 1214可使用任何數目及類型之習知軟體及硬體邏輯來執行與圖形成像相關的習知功能,以及新穎軟體及硬體邏輯以執行任何數目及類型之指令,諸如圖1之指令121,以執行如遍及本文件所揭示的體積機制1210之各種新穎功能。
如前述,記憶體1208可包括隨機存取記憶體(RAM),該隨機存取記憶體包含具有物件資訊之應用程式資料庫。諸如圖1之記憶體控制器集線器126的記憶體控制器集線器可存取RAM中之資料,且將其轉遞至GPU 1214以供圖形管線處理。RAM可包括雙資料速率RAM(DDR RAM)、擴展資料輸出RAM(EDO RAM)等。CPU 1212與硬體圖形管線互動,如參看圖3所例示,以共用圖形管線處理功能性。經處理資料儲存於硬體圖形管線中之緩衝器中,
且狀態資訊儲存於記憶體1208中。所得影像接著傳送至顯示組件或裝置,諸如圖3之顯示裝置320,以供顯示。預期,顯示裝置可具有各種類型,諸如陰極射線管(CRT)、薄膜電晶體(TFT)、液晶顯示器(LCD)、有機發光二極體(OLED)陣列等,以將資訊顯示給使用者。
記憶體1208可包含緩衝器(例如,圖框緩衝器)之預分配區域,然而,一般熟習此項技術者應理解,實施例並未如此受限,且對下部圖形管線為可存取的任何記憶體可得以使用。計算裝置1200可進一步包括如圖1中所引用之輸入/輸出(I/O)控制集線器(ICH)130、一或多個I/O裝置等。
CPU 1212可包括一或多個處理器來執行指令,以便執行計算系統所實施之無論何軟體常式。該等指令頻繁地涉及對資料所執行的某種類之操作。資料及指令兩者可儲存於系統記憶體1208及任何相關聯之快取記憶體中。快取記憶體通常經設計來具有短於系統記憶體1208之潛時;例如,快取記憶體可整合至作為處理器之同一(相同的)矽晶片上及/或藉由較快的靜態RAM(SRAM)胞來建構,同時系統記憶體1208可藉由較慢的動態RAM(DRAM)胞來建構。藉由傾向於如與系統記憶體1208相對而將更頻繁使用之指令及資料儲存於快取記憶體中,計算裝置1200之整體效能效率改良。預期,在一些實施例中,GPU 1214可存在而作為CPU 1212之部分(諸如,實體CPU封裝之部分),在該狀況下,記憶體1208可藉由CPU 1212及GPU 1214共用或保持分開。
可使系統記憶體1208對計算裝置1200內之其他組件為可利用的。舉例而言,自對計算裝置1200之各種介面(例如,鍵盤及滑鼠、指標埠、區域網路(LAN)埠、數據機埠等)所接收或自電腦裝置1200之內部儲存元件(例如,硬碟驅動機)所擷取的任何資料(例如,輸入圖形資料)在其藉由軟體程式之實行方案中的一或多個處理器操作之前常常暫時地排佇列至系統記憶體1208中。類似地,軟體程式判定應經由計算系統介面中之一者自計算裝置1200發送至外部實體或儲存至內部儲存元件中的資料在其得以傳輸或儲存之前常常暫時地排佇列於系統記憶體1208中。
此外,舉例而言,諸如圖1之ICH 130的ICH可用於確保,此資料在系統記憶體1208與其適當的對應的計算系統介面(及內部儲存裝置,若計算系統如此設計)之間恰當地傳遞,且可在自身與所觀測I/O裝置之間具有雙向點對點鏈路。類似地,諸如圖1之MCH 126的MCH可用於管理針對在CPU 1212及GPU 1214、介面及內部儲存元件當中的系統記憶體1208存取之各種競爭請求,該等請求可相對於彼此在時間上接近地發生。
I/O源1204可包括一或多個I/O裝置,該一或多個I/O裝置經實施以用於將資料傳送至計算裝置1200及/或自計算裝置1200傳送資料(例如,網路連接配接器);或,用於計算裝置1200內的大規模非依電性儲存(例如,硬碟驅動機)。包括文數字及其他金鑰之使用者輸入裝置可用以將資訊及命令選擇傳達至GPU 1214。另一類型之使用者輸入裝
置為游標控制件,諸如滑鼠、軌跡球、觸控式螢幕、觸控板或游標方向鍵,以將方向資訊及命令選擇傳達至GPU 1214且控制顯示裝置上的游標移動。電腦裝置1200之相機及麥克風陣列可用以觀測手勢,記錄音訊及視訊,以及接收及傳輸視覺及音訊命令。
計算裝置1200可進一步包括(多個)網路介面以提供對網路之存取,該網路諸如LAN、廣域網路(WAN)、都會區域網路(MAN)、個人區域網路(PAN)、藍牙、雲端網路、行動網路(例如,第三代(3G)等)、企業內部網路、網際網路等。(多個)網路介面可包括例如具有天線之無線網路介面,該天線可表示一或多根天線。(多個)網路介面亦可包括例如有線網路介面來經由網路纜線與遠端裝置通訊,該網路纜線可為例如乙太網路纜線、同軸纜線、光纖纜線、串行纜線或並行纜線。
(多個)網路介面可例如藉由符合IEEE 802.12b及/或IEEE 802.12g標準而提供對LAN之存取,及/或無線網路介面可例如藉由符合藍牙標準而提供對個人區域網路的存取。包括標準之先前及後續版本的其他無線網路介面及/或協定亦可得以支援。除了經由無線LAN標準之通訊之外或替代於其,(多個)網路介面可使用例如分時多重存取(TDMA)協定、全球行動通訊系統(GSM)協定、分碼多重存取(CDMA)協定及/或任何其他類型之無線通訊協定來提供無線通訊。
舉例而言,(多個)網路介面可包括一或多個通訊
介面,諸如數據機、網路介面卡,或其他熟知的介面裝置,諸如用於耦接至乙太網路之介面裝置,符記環,或用於提供通訊鏈路以支援LAN或WAN之目的的其他類型之實體有線或無線附件。以此方式,舉例而言,電腦系統亦可經由習知網路基礎架構耦接至數個周邊裝置、用戶端、控制表面、控制台或伺服器,該網路基礎架構包括企業內部網路或網際網路。
應瞭解,配備物少於或多於上文所述之實例的系統針對某些實行方案可為較佳的。因此,計算裝置1200之組態可取決於眾多因素而在實行方案間變化,諸如價格約束、效能要求、技術改良或其他境況。電子裝置或電腦系統1200之實例可包括(無限制)行動裝置、個人數位助理、行動計算裝置、智慧型電話、蜂巢式電話、手機、單向呼叫器、雙向呼叫器、訊息傳遞裝置、電腦、個人電腦(PC)、桌上型電腦、膝上型電腦、筆記型電腦、手持型電腦、平板電腦、伺服器、伺服器陣列或伺服器場、網站伺服器、網路伺服器、網際網路伺服器、工作台、迷你電腦、主架電腦、超級電腦、網路用具、網站用具、分散式計算系統、多處理器系統、基於處理器之系統、消費型電子設備、可規劃消費型電子設備、電視、數位電視、機上盒、無線存取點、基地台、用戶台、行動用戶中心、無線電網路控制器、路由器、集線器、閘道器、橋接器、交換器、機器,或其組合。
實施例可實施為以下各者中之任一者或組合:使
用母板(parentboard)互連之一或多個微晶片或積體電路、硬連線邏輯、藉由記憶體裝置儲存且藉由微處理器執行之軟體、韌體、特定應用積體電路(ASIC),及/或場可規劃閘陣列(FPGA)。藉由實例,「邏輯」一詞可包括軟體或硬體,及/或軟體與硬體之組合。
實施例可經提供例如為電腦程式產品,其可包括儲存有機器可執行指令之一或多個機器可讀媒體,該等指令在藉由諸如電腦、電腦之網路或其他電子裝置的一或多個機器執行時可引起該一或多個機器根據本文所述之實施例執行操作。機器可讀媒體可包括(但不限於)軟性磁片、光碟、CD-ROM(緊密光碟-唯讀記憶體),及磁光碟片、ROM、RAM、EPROM(可抹除可規劃唯讀記憶體)、EEPROM(電可抹除可規劃唯讀記憶體)、磁性或光學卡、快閃記憶體,或適用於儲存機器可執行指令的其他類型之媒體/機器可讀媒體。
此外,實施例可作為電腦程式產品得以下載,其中程式可藉由體現於載波或其他傳播媒體中及/或藉由其調變之一或多個資料信號經由通訊鏈路(例如,數據機及/或網路連接)自遠端電腦(例如,伺服器)傳送至請求電腦(例如,用戶端)。
圖13例示根據一實施例之動態預啟用裁剪機制1210。在一實施例中,預啟用機制1210可包括任何數目及類型之組件/邏輯來執行各種任務,以促進針對諸如計算裝置1200之行動裝置中之GPU 1214的有效預啟用裁剪。舉例
而言且在一實施例中,預啟用機制1210可包括(但不限於):偵測及接收邏輯1301;評估及計算邏輯1303;決策邏輯1305;處理邏輯1307;以及通訊/相容性邏輯1309。進一步例示且如參看圖12前述提及,預啟用機制1210可與CPU及/或GPU通訊,使得一或多個任務可在與CPU及/或GPU之通訊中執行,該CPU及/或GPU諸如圖12之計算裝置1200的CPU 1212及GPU 1214。此外,如「被遮蔽」、「不可見」、「未看見」、「淘汰」及「廢棄」等詞及其對應的形式可遍及本文件可互換地使用。
如前述,習知技術為低效且嚴重受限的在於:其對圖形資料之過度推進、不必要的且非智慧的處理,諸如計算且處理所有影像之所有像素而不管影像經成像的方式,此導致諸如時間、功率、記憶體、佔用面積等之系統資源的過度濫用。此對於諸如行動電腦等之較小或資源受約束裝置為尤其成問題的。此等習知技術在其遇到經裁剪影像時為尤其低效的,此情況迫使習知執行時間/驅動器對所有像素(包括不相關的像素)執行重複的重新計算且在成像時間推遲對應的裁剪後啟用。因此,此等習知技術為相當昂貴且功率低效的,且在處理導致經裁剪影像且深深紮根於使用者體驗中之頻繁觸碰事件時嚴重低效。
實施例提供預啟用機制1210以藉由裝置顯示裁剪狀態來工作,使得其驗證作用計算元件且在必要時調用更有效的預啟動裁剪。實施例提供就功率及資源消耗兩者而言有效之技術,且提供無縫且有效的處理路徑。
在一實施例中,偵測及接收邏輯1301與通訊/相容性邏輯1309協作繼續自對應的計算裝置之GPU接收顯示裁剪狀態(亦稱為「裁剪資料」、「狀態資料」、「顯示資料」或簡單地「裁剪狀態」),該GPU諸如圖12之計算裝置1200的GPU 1214。預期,例如,在諸如智慧型電話及平板電腦之行動計算裝置上,顯示觸碰事件為相當普遍的、動態的,且有可能觸發重複的影像裁剪事件。進一步預期,此等行動裝置之GPU的圖形子系統可連續地觀測及獲得藉由如關於圖11A至圖11D所例示之使用者行動所觸發的此等事件之顯示裁剪狀態,該圖形子系統諸如圖12之圖形子系統1216。
在一實施例中,偵測及接收邏輯1301可觸發GPU之圖形子系統將顯示裁剪狀態自圖形子系統傳達至GPU的計算子系統,諸如圖12之GPU 1212的計算子系統1218。舉例而言,在一實施例中,圖形子系統可設定為基於預定準則操作,使得圖形子系統可在連續基礎上、以預定義時間段週期性地、在一或多個事件發生後,及/或在藉由偵測及接收邏輯1301有效地觸發時,及/或其類似者而自動地將顯示裁剪狀態傳達至計算子系統。
將與使用者行動相關之狀態資料自圖形子系統傳達至計算子系統的此新穎技術允許計算子系統具有關於所有影像,尤其是部分被遮蔽影像的必要且相關之資料,該資料可接著用以考慮及執行如藉由預啟用機制1210所促進的預啟用裁剪處理。
在一實施例中,在於計算子系統處接收顯示裁剪狀態後,此狀態資料即接著在評估及計算邏輯1303處得以接收以執行與狀態資料相關的評估及/或計算。舉例而言且在一實施例中,評估及計算邏輯1303可考慮狀態資料,以基於任何數目及類型之因素、準則、臨界值等判定狀態資料是否使預啟用裁剪適當化(justify)。舉例而言且在一實施例中,表示或包括一百分比之淘汰像素的預定臨界值,其可用以與狀態資料匹配,以基於狀態資料及臨界值判定預啟用裁剪處理程序是否可執行。
舉例而言,預定臨界值可設定基於百分比之準則來提出,除非像素之至少15%被淘汰,否則可執行無裁剪啟用(與如預啟用裁剪相對),此係因為影響小於15%之總像素的任何淘汰可被視為可接受的。對比而言,若15%或更多的像素被淘汰,如自狀態資料所判定,則影像可被考慮合理地裁剪,且由此,在此狀況下,預啟用裁剪可得以適當化。預期,15%僅為簡要、明確及易於理解而用作實例,實施例根本不限於任何特定百分比或任何百分比。
在一實施例中,在評估及計算後,評估及計算邏輯1303即可將其決策推薦至決策邏輯1305以供進一步處理。繼續先前實例,在比較與部分被遮蔽影像相關之狀態資料與預定臨界值後,若淘汰像素之量經判定為小於15%,則已使預定臨界值失效,評估及計算邏輯1303可向決策邏輯1305推薦無裁剪啟用可被觸發。然而,若例如,在比較自狀態資料取得之資訊與預定臨界值後,評估及計
算邏輯1303即可判定部分被遮蔽影像中之淘汰像素的百分比為至少15%,則評估及計算邏輯1303可將預啟用裁剪推薦至決策邏輯1305。
在一實施例中,決策邏輯1305可自評估及計算邏輯1303接收任何推薦,且基於一或多個推薦在無裁剪啟用與預啟用裁剪之間選擇。舉例而言,在一些實施例中,決策邏輯1305可基於任何數目及類型之因素置換推薦,該等因素諸如頻寬之可利用性、系統資源等。在自評估及計算邏輯1303接收諸如觸發無裁剪啟用之推薦後,決策邏輯1305即可選擇無裁剪啟用且指示處理邏輯1307啟用該處理程序。在一實施例中,處理邏輯1307在接收指令後即觸發無裁剪啟用且相應地執行任何相關的處理程序。
在一實施例中,在執行無裁剪啟用時,處理邏輯1307可處理影像的可在與影像相關之狀態資料未能滿足用於觸發預啟用裁剪之預定臨界值或準則時觸發的所有像素。舉例而言,如先前所論述,若狀態資料與臨界值之比較揭露影像根本未被遮蔽,諸如無像素淘汰被偵測到或所有像素得以利用,或遮蔽係可接受的,諸如超過可接受百分比之像素正被使用(例如,繼續先前實例,超過85%之像素正被使用或小於15%的像素被淘汰等),則無裁剪啟用可如藉由評估及計算邏輯1303所判定、藉由決策邏輯1305所決定或選擇,及藉由處理邏輯1307所促進或處理而得以觸發。
在一實施例中,若影像之狀態資料如藉由評估及
計算邏輯1303所促進在與預定臨界值比較後即揭露與影像相關的該狀態資料超過臨界值,使得正淘汰之像素的數目超過可接受數目,則預啟用裁剪可如藉由評估及計算邏輯1303所判定、藉由決策邏輯1305所決定或選擇,及藉由處理邏輯1307所促進或處理而得以觸發。
在處理預啟用裁剪時,在一實施例中,處理邏輯1307可能僅需要處理正被利用之像素而非判定為淘汰的像素。以不同方式陳述,例如,若44%之像素在影像顯示裁剪(諸如,歸因於圖11B中之觸碰撥動)期間被淘汰,則,在一實施例中,正被利用的僅56%(例如,100%-44%=56%)之像素經受如藉由處理邏輯1307所促進的任何後續處理程序,而淘汰(且由此未經利用)的其他44%之像素並未受處理,從而節約大量的處理時間、資源、功率等。類似地,在一些實行方案中,在使用如藉由處理邏輯1307所促進之預啟用裁剪時,甚至更大量的資源可在較高百分比之像素被淘汰時得以節省,諸如參看圖11C至圖11D,75%之像素歸因於被淘汰或被遮蔽可能未受處理。
此外,在一實施例中,如關於圖14C所例示,對GPU的諸如基於無裁剪啟用或預啟用裁剪之計算啟用處理程序可調用內核、所執行指令之集合等,該等指令使用數個執行緒並行地執行影像處理任務,其中每一執行緒可用以處理一像素。舉例而言,任何數目個計算執行緒可在啟用處理程序中跨於用於像素之處理的執行單元上同時及並行地啟用。在一實施例中,在使用預啟用裁剪處理程序時,
無淘汰像素可受處理,此引起遠少於處理所有像素之像素的處理,且因此,較少執行緒可得以啟用,且作為回報,有價值的系統資源可得以節省及/或用於其他處理程序,諸如在系統上執行的其他應用程式等。
應注意,在將與影像相關之狀態資料自圖形子系統傳達至計算子系統時,正利用或淘汰之像素的量得以判定,其可接著用以執行有效的基於預啟用裁剪之處理。在一實施例中,在完成像素之處理後,無論處理如藉由處理邏輯1307所促進係基於無裁剪啟用抑或預啟用裁剪,諸如經處理影像之任何處理結果可接著藉由處理邏輯1307轉遞至GPU的圖形子系統,其中其經促進以供在計算裝置之顯示螢幕上顯示。
通訊/相容性邏輯1311可用以促進在諸如圖12之計算裝置1200的一或多個計算裝置與以下各者之間的動態通訊及相容性:任何數目及類型之其他計算裝置(諸如,行動計算裝置、桌上型電腦、伺服器計算裝置等)、處理裝置(諸如,中央處理單元(CPU)、圖形處理單元(GPU)等)、影像俘獲裝置(諸如,相機)、顯示元件(諸如,顯示組件、顯示裝置、顯示螢幕等)、使用者/上下文感知組件及/或識別/驗證感測器/裝置(諸如,生物統計感測器/偵測器、掃描儀等)、記憶體或儲存裝置、資料庫及/或資料源(諸如,資料儲存裝置、硬驅動機、固態驅動機、硬碟、記憶卡或裝置、記憶體電路等)、網路(例如,雲端網路、網際網路、企業內部網路、蜂巢式網路、接近性網路,諸如藍牙、藍牙低能
量(BLE)、藍牙智慧、Wi-Fi接近性、射頻識別(RFID)、近場通訊(NFC)、體域網路(BAN)等)、無線或有線通訊及相關協定(例如,Wi-Fi®、WiMAX、乙太網路等)、連接性及位置管理技術、軟體應用程式/網站(例如,社會及/或商務網路連接網站、商務應用程式、遊戲及其他娛樂應用程式等)、規劃語言等,同時確保與改變的技術、參數、協定、標準等的相容性。
遍及此文件,如「邏輯」、「組件」、「模組」、「構架」、「引擎」及其類似者等詞可為可互換地引用的,且藉由實例包括軟體、硬體,及/或軟體與硬體之任何組合,諸如韌體。此外,對特定商標、詞、術語、短語、名稱及/或縮寫之任何使用不應理解為將實施例限於攜帶在本文件外之產品中或文獻中之該標籤的軟體或裝置,該縮寫諸如「GPU」、「CPU」、「裁剪」、「預啟用」、「後啟用」、「RenderScript®」、「觸碰撥動」、「觸碰捏縮」、「觸碰伸展」、「肖像」、「風景」、「維度」、「1D」、「2D」、「3D」、「行動計算裝置」等。
預期,任何數目及類型之組件可添加至預啟用機制1210及/或自預啟用機制1210移除,以促進包括添加、移除及/或增強某些特徵之各種實施例。為簡要、清楚及易於理解預啟用機制1210起見,標準及/或已知組件中之許多組件並未在此處展示或論述,該等組件諸如計算裝置之組件。預期,如本文所述之實施例不限於任何特定技術、拓撲、系統、架構及/或標準,且為足夠動態的以採用及適應
任何未來改變。
圖14例示用於促進習知後啟用裁剪處理程序之方法1400。如此處所例示及前述,方法1400在區塊1401處開始,GPU之計算子系統觸發無裁剪啟用,且在區塊1403處,啟用基於無裁剪啟用之處理。在區塊1405處,啟用且執行影響影像之所有像素(包括不可見或淘汰像素、可見像素等)的處理,且隨後,在區塊1407處,將經處理影像傳達至GPU之圖形子系統。
圖15A例示根據一實施例的用於促進針對在計算裝置處之部分被遮蔽影像之動態預啟用裁剪處理程序的方法1500。方法1500可藉由處理邏輯執行,該處理邏輯可包含硬體(例如,電路、專用邏輯、可規劃邏輯等)、軟體(諸如,在處理裝置上執行之指令),或其組合。在一實施例中,方法1500可藉由圖12至圖13之預啟用機制1210執行。方法1500之處理程序為呈現簡要及清楚起見以線性序列例示;然而,預期,任何數目個該等處理程序可並行地、非同步地或以不同次序執行。為簡要起見,參看前述圖1至圖14所論述之細節中的許多可能此後不會論述或重複。
如遍及本文件所論述,在計算裝置(例如,行動計算裝置,諸如智慧型電話、平板電腦等)上,顯示觸碰事件為相當動態的且常常觸發重複影像裁剪事件,從而引起部分被遮蔽影像。實施例為執行如藉由方法1500所促進的部分被遮蔽影像之預啟用裁剪處理作準備,從而產生改良且可觀的效能增益及系統資源之節省,諸如程式碼處理、
執行緒、功率、時間,及記憶體等。
方法1500在區塊1501處藉由以下操作開始:如藉由使用者所進行之一或多個顯示觸碰事件所觸發而產生及獲得與圖形影像相關的顯示裁剪狀態。舉例而言,此顯示裁剪狀態或狀態資料可自計算裝置之GPU的圖形子系統獲得,諸如圖12之計算裝置1200之GPU 1214的圖形子系統1216。如前述,此狀態資料可回應於使用者在計算裝置處執行各種影像變換行為而產生,該等行為諸如將影像自肖像改變為風景或自風景改變為肖像、觸碰撥動、觸碰捏縮、觸碰伸展等,如參看圖11A至圖11D所示。
在一實施例中,在區塊1503處,圖形子系統可接著將狀態資料傳送或轉遞至計算裝置之計算子系統,且在一實施例中,在區塊1505處,接著在計算裝置之GPU的計算子系統處接收狀態資料,諸如圖12之計算裝置1200之GPU 1214的計算子系統1218。如先前參看圖13所論述,此狀態資料可在連續基礎上,或基於預定時間段在週期性基礎上、回應於一或多個事件偶爾地,或在藉由圖12之預啟用機制1210之一或多個組件觸發時手動地,及/或其類似者而自圖形子系統提供至計算子系統。
在區塊1507處,基於狀態資料之評估及計算,進行關於影像是否經充分裁剪以觸發影像之預啟用裁剪處理的判定。在一實施例中,如先前參看圖13所論述,狀態資料之評估及計算可包括(無限制)狀態資料之內容與預定臨界值(例如,百分比臨界值,諸如2%、5%、15%、32%等)
的匹配,以判定影像之部分遮蔽性就例如被視為淘汰或不可見的百分比(及/或量及/或數目)之像素的處理而言是否為可接受的。舉例而言,若淘汰像素之百分比為可接受地小的(諸如,基於預定臨限值等),其中處理此等像素可能不需要過多資源(例如,執行緒、時間、功率等)之消耗,則在一實施例中,可在區塊1509處觸發影像之無裁剪啟用處理且可在區塊1513處處理影像。經處理影像接著提供回至GPU之圖形子系統以用於在區塊1501處進一步處理。
然而,若影像經充分裁剪,其中影像之淘汰或不可見像素的百分比(及/或量及/或數目)為相當大的,諸如超過預定臨界值(例如,等於/大於15%等),則在一實施例中,可在區塊1511處觸發影像之預啟用裁剪處理。如遍及本文件所論述,在執行影像之預啟用裁剪處理時,僅影像之可見像素可受處理而影像之淘汰像素可被忽略且並不包括於區塊1513處的處理中。經處理影像接著提供回至GPU之圖形子系統以用於在區塊1501處進一步處理。在一實施例中,較少像素經由預啟用裁剪處理之此處理使得計算裝置(例如,行動電腦,諸如智慧型電話、平板電腦等)之較少的處理執行緒及其他資源(例如,功率、時間、記憶體等)參與,從而產生計算裝置之整體較快且更有效的效能。
圖15B例示根據一實施例的用於在圖形處理單元處之計算啟用處理程序的異動序列1550。異動序列1550可藉由處理邏輯執行,該處理邏輯可包含硬體(例如,電路、專用邏輯、可規劃邏輯等)、軟體(諸如,在處理裝置上
執行之指令),或其組合。在一實施例中,異動序列1550可藉由圖11至圖12之預啟用機制1210執行。異動序列1550之處理程序為呈現簡要及清楚起見以線性序列例示;然而,預期,任何數目個該等處理程序可並行地、非同步地或以不同次序執行。為簡要起見,參看前述圖1至圖15A所論述之細節中的許多可能此後不會論述或重複。
如所例示,GPU上之計算啟用處理程序可調用執行緒調度1551,此可引起內核、執行指令之集合等的調用,以隨著影像處理任務應用於含於顯示裁剪範圍或將要處理的完整影像中之任一者中的每一像素而並行地執行該等影像處理任務。如參看圖15A所述,在一實施例中,因為較少像素可在如藉由區塊1513所促進之影像處理基於預啟用裁剪時受處理,所以較少的對應之計算執行緒、執行單元1553A-1553N等可能需要參與且使用。
如所例示,啟用處理程序可跨於與計算裝置之系統記憶體1555通訊以用於共用資源的執行單元1553A-1553N上同時調度任何數目個計算執行緒。預期,系統記憶體1555可與圖12之計算裝置1200的記憶體1208類似或相同。
對「一實施例」、「實施例」、「實例實施例」、「各種實施例」等之引用指示如此描述之(多個)實施例可包括特定特徵、結構或特性,但並非每一實施例必要地包括該等特定特徵、結構或特性。此外,一些實施例可具有針對其他實施例所述之一些、所有特徵或不具有該等特徵。
在前述說明書中,已參考實施例之特定示範性實施例描述實施例。然而,將顯然,在不脫離如所附申請專利範圍中所闡述的實施例之更廣泛精神及範疇的情況下,可對實施例進行各種修改及改變。因此,應以例示性而非限制性意義來看待說明書及圖式。
在以下描述及申請專利範圍中,可使用「耦接」一詞連同其衍生詞。「耦接」用以指示兩個或兩個以上元件彼此協作或互動,但其在其間可能或可能不具有介入之實體或電組件。
如申請專利範圍中所使用,除非另外指定序數形容詞「第一」、「第二」、「第三」等之使用以描述共同元件,否則僅指示相似元件之不同的執行個體被引用,且不欲暗示如此描述之元件必須暫時地、在空間上、在排名上抑或以任何其他方式處於給定序列中。
以下條款及/或實例係關於其他實施例或實例。實例中之特定細節可使用於一或多個實施例中的任何位置。不同的實施例或實例之各種特徵可以各種方式與所包括之一些特徵及其他的經排除特徵組合,以適應多種不同的應用。實例可包括標的物,諸如方法、用於執行方法之行為的構件、包括指令之至少一機器可讀媒體,該等指令在藉由機器執行時使機器執行方法或根據本文所述之實施例及實例的用於促進混合通訊之設備或系統的行為。
一些實施例係關於實例1,實例1包括一種促進針對在計算裝置上之部分被遮蔽影像之動態且有效的預啟用
裁剪之設備,其包含:偵測及接收邏輯,其接收與具有部分被遮蔽區域之一影像相關的狀態資料,其中該影像能夠在一計算裝置之一圖形處理單元上受處理;評估及計算邏輯,其評估該狀態資料,其中該評估包括該影像之可見像素及不可見像素中之至少一者的計算;決策邏輯,其選擇將包括於該影像之處理中的該等可見像素,其中該等不可見像素被忽略;以及處理邏輯,其基於該等可見像素處理該影像。
實例2包括實例1之標的物,其中該影像之該等部分被遮蔽區域係藉由該計算裝置之顯示導向的一或多個改變引起,其中該一或多個改變包括撥動、捏縮及伸展中之至少一者。
實例3包括實例2之標的物,其中該一或多個改變進一步包含使該計算裝置自一第一佈局變為一第二佈局,其中該第一佈局及該第二佈局包括一直式佈局、一橫式佈局及一對角線佈局中之至少一者,其中該計算裝置包括具有一智慧型電話及一桌上型電腦中之至少一者的一行動計算裝置。
實例4包括實例1之標的物,其中該等可見像素包含該影像之該等部分被遮蔽區域之一明顯部分的可辨像素,其中該等不可見像素包含該影像之該等部分被遮蔽區域之一被遮蔽部分的淘汰像素。
實例5包括實例1之標的物,其中該計算進一步包含基於預定準則使該狀態資料與一預定義臨界值匹配,其
中該預定義臨界值指示該等不可見像素之一可接受百分比。
實例6包括實例1之標的物,其中該決策邏輯進一步:針對該影像之該處理選擇該等可見像素;以及若該等不可見像素之一百分比等於或大於如藉由該預定義臨界值所指示的不可見像素之該可接受百分比,則針對該影像之該處理忽略該等不可見像素。
實例7包括實例6之標的物,其中該決策邏輯在該等不可見像素之該百分比小於如藉由該預定義臨界值所指示的不可見像素之該可接受百分比的情況下進一步針對該影像之該處理選擇該等可見像素及該等不可見像素。
實例8包括實例1之標的物,其進一步包含:圖形處理單元之一圖形子系統,其觀測該狀態資料且將該狀態資料轉遞至該圖形處理單元之一計算子系統;以及該計算子系統,其經由該偵測及接收邏輯自該圖形子系統接收該狀態資料。
一些實施例係關於實例9,實例9包括一種用於促進針對在計算裝置上之部分被遮蔽影像之動態且有效的預啟用裁剪之方法,其包含:接收與具有部分被遮蔽區域之一影像相關的狀態資料,其中該影像能夠在一計算裝置之一圖形處理單元上受處理;評估該狀態資料,其中評估包括該影像之可見像素及不可見像素中之至少一者的計算;選擇將包括於該影像之處理中的該等可見像素,其中該等不可見像素被忽略;以及基於該等可見像素處理該影像。
實例10包括實例9之標的物,其中該影像之該等部分被遮蔽區域係藉由該計算裝置之顯示導向的一或多個改變引起,其中該一或多個改變包括撥動、捏縮及伸展中之至少一者。
實例11包括實例10之標的物,其中該一或多個改變進一步包含使該計算裝置自一第一佈局變為一第二佈局,其中該第一佈局及該第二佈局包括一直式佈局、一橫式佈局及一對角線佈局中之至少一者,其中該計算裝置包括具有一智慧型電話及一桌上型電腦中之至少一者的一行動計算裝置。
實例12包括實例9之標的物,其中該等可見像素包含該影像之該等部分被遮蔽區域之一明顯部分的可辨像素,其中該等不可見像素包含該影像之該等部分被遮蔽區域之一被遮蔽部分的淘汰像素。
實例13包括實例9之標的物,其中該計算進一步包含基於預定準則使該狀態資料與一預定義臨界值匹配,其中該預定義臨界值指示該等不可見像素之一可接受百分比。
實例14包括實例9之標的物,其進一步包含:針對該影像之該處理選擇該等可見像素;以及若該等不可見像素之一百分比等於或大於如藉由該預定義臨界值所指示的不可見像素之該可接受百分比,則針對該影像之該處理忽略該等不可見像素。
實例15包括實例14之標的物,其進一步包含在該
等不可見像素之該百分比小於如藉由該預定義臨界值所指示的不可見像素之該可接受百分比的情況下針對該影像之該處理選擇該等可見像素及該等不可見像素。
實例16包括實例9之標的物,其進一步包含:經由圖形處理單元之一圖形子系統觀測該狀態資料且將該狀態資料提供至該圖形處理單元之一計算子系統;以及經由該計算子系統自該圖形子系統接收該狀態資料。
實例17包括至少一機器可讀媒體,其包含多個指令,該等指令在於一計算裝置上執行時實施或執行一方法或實現如任何前述請求項中所主張之一設備。
實例18包括至少一非暫時性或有形機器可讀媒體,其包含多個指令,該等指令在於一計算裝置上執行時實施或執行一方法或實現如任何前述請求項中所主張之一設備。
實例19包括一種系統,其包含實施或執行一方法或實現如任何前述請求項中所主張之一設備的一機制。
實例20包括一種設備,其包含執行如任何前述請求項中所主張之一方法的構件。
實例21包括一種計算裝置,其經配置來實施或執行一方法或實現如任何前述請求項中所主張之一設備。
實例22包括一種通訊裝置,其經配置來實施或執行一方法或實現如任何前述請求項中所主張之一設備。
一些實施例係關於實例23,實例23包括一種系統,其包含具有指令之一儲存裝置,及執行該等指令以促
進執行一或多個操作之一機制的一處理器,該一或多個操作包含:接收與具有部分被遮蔽區域之一影像相關的狀態資料,其中該影像能夠在一計算裝置之一圖形處理單元上受處理;評估該狀態資料,其中評估包括該影像之可見像素及不可見像素中之至少一者的計算;選擇將包括於該影像之處理中的該等可見像素,其中該等不可見像素被忽略;以及基於該等可見像素處理該影像。
實例24包括實例23之標的物,其中該影像之該等部分被遮蔽區域係藉由該計算裝置之顯示導向的一或多個改變引起,其中該一或多個改變包括撥動、捏縮及伸展中之至少一者。
實例25包括實例24之標的物,其中該一或多個改變進一步包含使該計算裝置自一第一佈局變為一第二佈局,其中該第一佈局及該第二佈局包括一直式佈局、一橫式佈局及一對角線佈局中之至少一者,其中該計算裝置包括具有一智慧型電話及一桌上型電腦中之至少一者的一行動計算裝置。
實例26包括實例23之標的物,其中該等可見像素包含該影像之該等部分被遮蔽區域之一明顯部分的可辨像素,其中該等不可見像素包含該影像之該等部分被遮蔽區域之一被遮蔽部分的淘汰像素。
實例27包括實例23之標的物,其中該計算進一步包含基於預定準則使該狀態資料與一預定義臨界值匹配,其中該預定義臨界值指示該等不可見像素之一可接受百分
比。
實例28包括實例23之標的物,其中該一或多個操作進一步包含:針對該影像之該處理選擇該等可見像素;以及若該等不可見像素之一百分比等於或大於如藉由該預定義臨界值所指示的不可見像素之該可接受百分比,則針對該影像之該處理忽略該等不可見像素。
實例29包括實例28之標的物,其中該一或多個操作進一步包含在該等不可見像素之該百分比小於如藉由該預定義臨界值所指示的不可見像素之該可接受百分比的情況下針對該影像之該處理選擇該等可見像素及該等不可見像素。
實例30包括實例23之標的物,其中該一或多個操作進一步包含:經由圖形處理單元之一圖形子系統觀測該狀態資料且將該狀態資料提供至該圖形處理單元之一計算子系統;以及經由該計算子系統自該圖形子系統接收該狀態資料。
一些實施例係關於實例31,實例31包括一種設備,其包含:用於接收與具有部分被遮蔽區域之一影像相關的狀態資料之構件,其中該影像能夠在一計算裝置之一圖形處理單元上受處理;用於評估該狀態資料之構件,其中評估包括該影像之可見像素及不可見像素中之至少一者的計算;用於選擇將包括於該影像之處理中的該等可見像素之構件,其中該等不可見像素被忽略;以及用於基於該等可見像素處理該影像之構件。
實例32包括實例31之標的物,其中該影像之該等部分被遮蔽區域係藉由該計算裝置之顯示導向的一或多個改變引起,其中該一或多個改變包括撥動、捏縮及伸展中之至少一者。
實例33包括實例32之標的物,其中該一或多個改變進一步包含使該計算裝置自一第一佈局變為一第二佈局,其中該第一佈局及該第二佈局包括一直式佈局、一橫式佈局及一對角線佈局中之至少一者,其中該計算裝置包括具有一智慧型電話及一桌上型電腦中之至少一者的一行動計算裝置。
實例34包括實例31之標的物,其中該等可見像素包含該影像之該等部分被遮蔽區域之一明顯部分的可辨像素,其中該等不可見像素包含該影像之該等部分被遮蔽區域之一被遮蔽部分的淘汰像素。
實例35包括實例31之標的物,其中該計算進一步包含用於基於預定準則使該狀態資料與一預定義臨界值匹配之構件,其中該預定義臨界值指示該等不可見像素之一可接受百分比。
實例36包括實例31之標的物,其進一步包含:用於針對該影像之該處理選擇該等可見像素之構件;以及用於在該等不可見像素之一百分比等於或大於如藉由該預定義臨界值所指示的不可見像素之該可接受百分比的情況下針對該影像之該處理忽略該等不可見像素之構件。
實例37包括實例36之標的物,其進一步包含用於
在該等不可見像素之該百分比小於如藉由該預定義臨界值所指示的不可見像素之該可接受百分比的情況下針對該影像之該處理選擇該等可見像素及該等不可見像素之構件。
實例38包括實例31之標的物,其進一步包含:用於經由圖形處理單元之一圖形子系統觀測該狀態資料且將該狀態資料提供至該圖形處理單元之一計算子系統的構件;以及用於經由該計算子系統自該圖形子系統接收該狀態資料之構件。
圖式及前述描述提供實施例之實例。熟習此項技術者將瞭解,所描述元件中之一或多者可良好地組合為單一功能元件。或者,某些元件可分為多個功能元件。來自一實施例之元件可添加至另一實施例。舉例而言,本文所述之處理程序的次序可改變且不限於本文所述之方式。此外,任何流程圖中之行動無需以所示次序實施;所有行為亦未必需要被執行。又,並非取決於其他行為之該等行為可與其他行為並行地執行。實施例之範疇決不藉由此等特定實例來限制。眾多變化無論是否在說明書中得以顯式地提供皆為可能的,該等變化諸如結構、維度及材料之使用的差異。實施例之範疇至少與藉由以下申請專利範圍所提供一樣寬泛。
100‧‧‧資料處理系統
102‧‧‧處理器
107‧‧‧處理器核心
104‧‧‧快取記憶體
106‧‧‧暫存器檔案/共用快取記憶體單元
108‧‧‧圖形處理器
109‧‧‧指令集
110‧‧‧處理器匯流排/系統代理器/系統代理器單元
112‧‧‧外部圖形處理器/基於環之互連單元/環形互連體
116‧‧‧記憶體控制器集線器/匯流排控制器單元
120‧‧‧記憶體裝置/記憶體
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存裝置
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧輸入輸出(I/O)控制器集線器
134‧‧‧網路控制器
140‧‧‧舊版I/O控制器
142‧‧‧通用串列匯流排(USB)控制器
144‧‧‧鍵盤及滑鼠
146‧‧‧音訊控制器
Claims (24)
- 一種設備,其包含:一預啟用機制之偵測及接收硬體邏輯,其用以接收相關於具有部分被遮蔽區域之一影像的顯示裁剪狀態,其中該影像能夠在一計算裝置之一圖形處理單元上受處理;該預啟用機制之評估及計算硬體邏輯,其用以評估該顯示裁剪狀態,其中該評估包括若任何不可見像素係存在的,該影像之可見像素及不可見像素中之至少一者的計算用以判定該等不可見像素是否超過一預定臨界,其中該預定臨界代表可接受藉由該等不可見像素所淘汰或佔據之該影像的一部分;該預啟用機制之決策硬體邏輯,其用以藉由選擇要包括於該影像之一裁剪中的該等可見像素與自該影像之該裁剪排除該等不可見像素來觸發用於預啟用裁剪的該影像之該裁剪的啟用;以及該預啟用機制之處理硬體邏輯,其用以處理具有該等可見像素之該影像的該裁剪。
- 如請求項1之設備,其中該影像之該等部分被遮蔽區域係由該計算裝置之顯示導向的一或多個改變引起,其中該一或多個改變包括撥動、捏縮及伸展中之至少一者。
- 如請求項2之設備,其中該一或多個改變進一步包含將該計算裝置自一第一佈局轉變為一第二佈局,其中該第一佈局及該第二佈局包括一直式(portrait)佈局、一橫式(landscape)佈局 或一對角線佈局,其中該計算裝置包括具有一智慧型電話及一桌上型電腦中之至少一者的一行動計算裝置。
- 如請求項1之設備,其中該等可見像素包含該影像之該等部分被遮蔽區域之一明顯部分的可辨像素,其中該等不可見像素包含該影像之該等部分被遮蔽區域之一被遮蔽部分的淘汰像素。
- 如請求項1之設備,其中該計算進一步包含基於預定準則將該顯示裁剪狀態與該預定義臨界匹配,其中該預定義臨界指示該等不可見像素之一可接受百分比。
- 如請求項1之設備,其中該決策邏輯進一步:針對該影像之該處理選擇該等可見像素;以及若該等不可見像素之一百分比等於或大於如由該預定義臨界所指示的不可見像素之該可接受百分比,則針對該影像之該處理忽略該等不可見像素。
- 如請求項6之設備,其中若該等不可見像素之該百分比小於如由該預定義臨界所指示的不可見像素之該可接受百分比,該決策邏輯進一步針對該影像之該處理選擇該等可見像素及該等不可見像素。
- 如請求項1之設備,其進一步包含:該圖形處理單元之一圖形子系統,其用以觀測該顯示裁剪狀態且轉遞該顯示裁剪狀態至該圖形處理單元之一計算子系統;以及該計算子系統,其用以經由該偵測及接收硬體邏輯自該圖形子系統接收該顯示裁剪狀態。
- 一種方法,其包含:以一預啟用機制之偵測及接收硬體邏輯來接收相關於具有部分被遮蔽區域之一影像的顯示裁剪狀態,其中該影像能夠在一計算裝置之一圖形處理單元上受處理;以該預啟用機制之評估及計算硬體邏輯來評估該顯示裁剪狀態,其中評估包括若任何不可見像素係存在的,該影像之可見像素及不可見像素中之至少一者的計算用以判定該等不可見像素是否超過一預定臨界,其中該預定臨界代表可接受藉由該等不可見像素所淘汰或佔據之該影像的一部分;以該預啟用機制之決策硬體邏輯,藉由選擇要包括於該影像之一裁剪中的該等可見像素與自該影像之該裁剪排除該等不可見像素來觸發用於預啟用裁剪的該影像之該裁剪的啟用;以及以該預啟用機制之處理硬體邏輯來處理具有該等可見像素之該影像的該裁剪。
- 如請求項9之方法,其中該影像之該等部分被遮蔽區域係藉由該計算裝置之顯示導向的一或多個改變引起,其中該一或多個改變包括撥動、捏縮及伸展中之至少一者。
- 如請求項10之方法,其中該一或多個改變進一步包含將該計算裝置自一第一佈局轉變為一第二佈局,其中該第一佈局及該第二佈局包括一直式(portrait)佈局、一橫式(landscape)佈局或一對角線佈局,其中該計算裝置包括具有一智慧型電話及一桌上型電腦中之至少一者的一行動計算裝置。
- 如請求項9之方法,其中該等可見像素包含該影像之該等部分被遮蔽區域之一明顯部分的可辨像素,其中該等不可見像素包含該影像之該等部分被遮蔽區域之一被遮蔽部分的淘汰像素。
- 如請求項9之方法,其中該計算進一步包含基於預定準則將該顯示裁剪狀態與該預定義臨界匹配,其中該預定義臨界指示該等不可見像素之一可接受百分比。
- 如請求項9之方法,其進一步包含:針對該影像之該處理選擇該等可見像素;以及若該等不可見像素之一百分比等於或大於如由該預定義臨界所指示的不可見像素之該可接受百分比,則針對該影像之該處理忽略該等不可見像素。
- 如請求項14之方法,其進一步包含若該等不可見像素之該百分比係小於如藉由該預定義臨界所指示的不可見像素之該可接受百分比,則針對該影像之該處理選擇該等可見像素及該等不可見像素。
- 如請求項9之方法,其進一步包含:經由該圖形處理單元之一圖形子系統觀測該顯示裁剪狀態且提供該顯示裁剪狀態至該圖形處理單元之一計算子系統;以及經由該計算子系統自該圖形子系統接收該狀態資料。
- 一種非暫時性機器可讀媒體,其包含複數個指令,該等指令在一計算裝置上被執行以促進該計算裝置進行包含以下各者之一或多個操作: 以一預啟用機制之偵測及接收硬體邏輯來接收相關於具有部分被遮蔽區域之一影像的顯示裁剪狀態,其中該影像能夠在一計算裝置之一圖形處理單元上受處理;以該預啟用機制之評估及計算硬體邏輯來評估該顯示裁剪狀態,其中評估包括若任何不可見像素係存在的,該影像之可見像素及不可見像素中之至少一者的計算用以判定該等不可見像素是否超過一預定臨界,其中該預定臨界代表可接受藉由該等不可見像素所淘汰或佔據之該影像的一部分;以該預啟用機制之決策硬體邏輯,藉由選擇要包括於該影像之一裁剪中的該等可見像素與自該影像之該裁剪排除該等不可見像素來觸發用於預啟用裁剪的該影像之該裁剪的啟用;以及以該預啟用機制之處理硬體邏輯來處理具有該等可見像素之該影像的該裁剪。
- 如請求項17之非暫時性機器可讀媒體,其中該影像之該等部分被遮蔽區域係由該計算裝置之顯示導向的一或多個改變引起,其中該一或多個改變包括撥動、捏縮及伸展中之至少一者。
- 如請求項18之非暫時性機器可讀媒體,其中該一或多個改變進一步包含將該計算裝置自一第一佈局轉變為一第二佈局,其中該第一佈局及該第二佈局包括一直式(portrait)佈局、一橫式(landscape)佈局或一對角線佈局中,其中該計算裝置包括具有一智慧型電話及一桌上型電腦中之至少一者的一行動計算裝置。
- 如請求項17之非暫時性機器可讀媒體,其中該等可見像素包含該影像之該等部分被遮蔽區域之一明顯部分的可辨像素,其中該等不可見像素包含該影像之該等部分被遮蔽區域之一被遮蔽部分的淘汰像素。
- 如請求項17之非暫時性機器可讀媒體,其中該計算進一步包含基於預定準則將該顯示裁剪狀態與該預定義臨界匹配,其中該預定義臨界指示該等不可見像素之一可接受百分比。
- 如請求項17之非暫時性機器可讀媒體,其中該一或多個操作進一步包含:針對該影像之該處理選擇該等可見像素;以及若該等不可見像素之一百分比等於或大於如藉由該預定義臨界所指示的不可見像素之該可接受百分比,則針對該影像之該處理忽略該等不可見像素。
- 如請求項17之非暫時性機器可讀媒體,其中該一或多個操作進一步包含若該等不可見像素之該百分比小於如藉由該預定義臨界所指示的不可見像素之該可接受百分比,則針對該影像之該處理選擇該等可見像素及該等不可見像素。
- 如請求項17之非暫時性機器可讀媒體,其中該一或多個操作進一步包含:經由該圖形處理單元之一圖形子系統觀測該顯示裁剪狀態且提供該顯示裁剪狀態至該圖形處理單元之一計算子系統;以及經由該計算子系統自該圖形子系統接收該狀態資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462019065P | 2014-06-30 | 2014-06-30 | |
US14/578,318 US9691122B2 (en) | 2014-06-30 | 2014-12-19 | Facilitating dynamic and efficient pre-launch clipping for partially-obscured graphics images on computing devices |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201618030A TW201618030A (zh) | 2016-05-16 |
TWI596569B true TWI596569B (zh) | 2017-08-21 |
Family
ID=54931121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104116038A TWI596569B (zh) | 2014-06-30 | 2015-05-20 | 促進針對在計算裝置上之部分被遮蔽圖形影像之動態且有效的預啓用裁剪之技術 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9691122B2 (zh) |
CN (1) | CN105224165B (zh) |
TW (1) | TWI596569B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9720827B2 (en) * | 2014-11-14 | 2017-08-01 | Intel Corporation | Providing multiple memory modes for a processor including internal memory |
EP3065051A1 (en) * | 2015-03-05 | 2016-09-07 | Ingo Josopait | Flow control for language-embedded programming in general-purpose computing on graphics processing units |
US10643296B2 (en) * | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US9990691B2 (en) * | 2016-02-17 | 2018-06-05 | Intel Corporation | Ray compression for efficient processing of graphics data at computing devices |
US10338953B2 (en) * | 2016-03-18 | 2019-07-02 | Intel Corporation | Facilitating execution-aware hybrid preemption for execution of tasks in computing environments |
CN106454098A (zh) * | 2016-10-31 | 2017-02-22 | 深圳晨芯时代科技有限公司 | 一种虚拟现实拍摄及显示的方法、*** |
CN109690471B (zh) * | 2016-11-17 | 2022-05-31 | 谷歌有限责任公司 | 使用取向元数据的媒体渲染 |
CN113918249B (zh) * | 2021-09-14 | 2023-11-21 | 北京房江湖科技有限公司 | 一种背景模糊控件的实现方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200848129A (en) * | 2007-03-30 | 2008-12-16 | Konami Digital Entertainment | Image generating device, image processing method, and information recording medium |
US20090058848A1 (en) * | 2007-08-30 | 2009-03-05 | John Howson | Predicted geometry processing in a tile based rendering system |
US8266550B1 (en) * | 2008-05-28 | 2012-09-11 | Google Inc. | Parallax panning of mobile device desktop |
US20130154950A1 (en) * | 2011-12-15 | 2013-06-20 | David Kvasnica | Apparatus and method pertaining to display orientation |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8325182B2 (en) * | 2008-12-31 | 2012-12-04 | Intel Corporation | Methods and systems to selectively batch-cull graphics primitives in response to sample cull results |
CN102956026A (zh) * | 2011-08-26 | 2013-03-06 | 鲍丽燕 | 基于不变矩的Copy-Move型篡改图像盲检测方法 |
-
2014
- 2014-12-19 US US14/578,318 patent/US9691122B2/en active Active
-
2015
- 2015-05-20 TW TW104116038A patent/TWI596569B/zh active
- 2015-05-29 CN CN201510287493.6A patent/CN105224165B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200848129A (en) * | 2007-03-30 | 2008-12-16 | Konami Digital Entertainment | Image generating device, image processing method, and information recording medium |
US20090058848A1 (en) * | 2007-08-30 | 2009-03-05 | John Howson | Predicted geometry processing in a tile based rendering system |
US8266550B1 (en) * | 2008-05-28 | 2012-09-11 | Google Inc. | Parallax panning of mobile device desktop |
US20130154950A1 (en) * | 2011-12-15 | 2013-06-20 | David Kvasnica | Apparatus and method pertaining to display orientation |
Also Published As
Publication number | Publication date |
---|---|
US9691122B2 (en) | 2017-06-27 |
US20150379762A1 (en) | 2015-12-31 |
CN105224165A (zh) | 2016-01-06 |
TW201618030A (zh) | 2016-05-16 |
CN105224165B (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10796397B2 (en) | Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices | |
TWI596569B (zh) | 促進針對在計算裝置上之部分被遮蔽圖形影像之動態且有效的預啓用裁剪之技術 | |
US11010858B2 (en) | Mechanism to accelerate graphics workloads in a multi-core computing architecture | |
US9916634B2 (en) | Facilitating efficient graphics command generation and execution for improved graphics performance at computing devices | |
US10565670B2 (en) | Graphics processor register renaming mechanism | |
US10338953B2 (en) | Facilitating execution-aware hybrid preemption for execution of tasks in computing environments | |
US20170140570A1 (en) | Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices | |
US10282804B2 (en) | Facilitating configuration of computing engines based on runtime workload measurements at computing devices | |
US9716875B2 (en) | Facilitating quantization and compression of three-dimensional graphics data using screen space metrics at computing devices | |
US20170212791A1 (en) | Facilitating dynamic thread-safe operations for variable bit-length transactions on computing devices | |
US10026142B2 (en) | Supporting multi-level nesting of command buffers in graphics command streams at computing devices | |
US10552211B2 (en) | Mechanism to increase thread parallelism in a graphics processor | |
US10002405B2 (en) | Smart optimization of unused graphics buffer memory in computing environments | |
WO2017200672A1 (en) | Triangle rendering mechanism | |
US10769751B2 (en) | Single input multiple data processing mechanism | |
US9734597B2 (en) | Interpolated minimum-maximum compression/decompression for efficient processing of graphics data at computing devices | |
TWI616844B (zh) | 當複合物件在圖形影像中無法產生可見改變時促進圖形處理單元中此等物件之淘汰的技術 |