TWI616846B - 利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒的一種圖形子系統、電腦實施方法及電腦裝置 - Google Patents

利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒的一種圖形子系統、電腦實施方法及電腦裝置 Download PDF

Info

Publication number
TWI616846B
TWI616846B TW104129785A TW104129785A TWI616846B TW I616846 B TWI616846 B TW I616846B TW 104129785 A TW104129785 A TW 104129785A TW 104129785 A TW104129785 A TW 104129785A TW I616846 B TWI616846 B TW I616846B
Authority
TW
Taiwan
Prior art keywords
pixel
frame
input
sampling pattern
unit
Prior art date
Application number
TW104129785A
Other languages
English (en)
Other versions
TW201621810A (zh
Inventor
尤里 烏拉爾斯基
約拿M 艾本
格雷戈里 馬薩爾
安肯 巴內基
湯瑪斯 彼德森
奧列格 茲涅佐夫
艾瑞克B 林
普拉克夏普 梅塔
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 TW201621810A publication Critical patent/TW201621810A/zh
Application granted granted Critical
Publication of TWI616846B publication Critical patent/TWI616846B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/12Indexing scheme for image data processing or generation, in general involving antialiasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20182Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering

Landscapes

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

Abstract

本發明揭示一種光柵單元,設置成產生不同的取樣圖案給已知訊框之內的相鄰像素。此外,該光柵單元可調整訊框之間的該等取樣圖案。該光柵單元包含一索引單元,其選擇一取樣圖案表用於當前訊框。針對已知像素,該索引單元從該選取的取樣圖案表取得一取樣圖案。該取得的取樣圖案用來產生該像素的覆蓋率資訊,然後所有像素的該覆蓋率資訊用於產生一影像。然後該結果影像經過過濾來降低或移除取樣位置改變造成的假象。

Description

利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒的一種圖形子 系統、電腦實施方法及電腦裝置
本發明的具體實施例係關於圖形處理,尤其係關於利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒。
在圖形處理管線中,該光柵器通常負責根據與圖形場景相關的幾何來計算像素的涵蓋率資訊。例如:針對已知像素,該光柵器可決定該圖形場景內一三角形覆蓋該像素,然後稍後在該管線內,該像素可根據該三角形的顏色著色。該光柵器利用判斷該幾何是否覆蓋該像素之內一或多個覆蓋取樣位置上的該像素,來計算一像素的覆蓋率資訊。
在一簡單組態中,利用測試幾何是否覆蓋該像素的中央來決定覆蓋率,其中該像素的中央用來當成該覆蓋率取樣位置。不過,此取樣形式並不精準,尤其是對於複雜形狀。因此,現代光柵器經常採用多取樣方式,其中在多個不同覆蓋率取樣位置上測試該像素之內的覆蓋率。該等多取樣的位置一般都固定並且從像素到像素都一致,以反應依經驗決定的一特定取樣圖案,來產生一圖形場景範圍的精確覆蓋率資訊。
上述方式的一項缺點就是,透過傳統多取樣產生的影像品質取決於每一像素所使用的取樣位置數。因此,要產生較高品質影像,就必須實施更多取樣位置。不過,這些額外取樣位置會導致明顯的負擔。尤其是,額外訊框緩衝空間必須分配來容納顏色、z資料以及與該等額外取樣相關連的其他種資訊。總結來說,影像品質以及必要的負擔,都與取樣數成正比。
如先前所例示,業界內需要能夠提高影像品質,但不導致每 像素取樣數增加相關的負擔之技術。
本發明的一個具體實施例揭示一種圖形子系統,包含一第一取樣圖案表,其內含一第一複數個輸入,以及一索引單元,其設置成產生一第一索引進入該第一取樣圖案表,其參考該等第一複數個輸入內含的輸入之第一子集,並且從該第一取樣圖案表中擷取該輸入的第一子集,其中該輸入的第一子集內含之一第一輸入指出一第一訊框的一第一像素之內,要產生第一取樣之第一位置。
所揭示技術的至少一項優點為每一像素只有N/M個取樣位置,跨M個訊框可產生N個覆蓋率取樣,產生品質與每一像素中N覆蓋率取樣一致的影像。
100‧‧‧電腦系統
310‧‧‧串流多重處理器
102‧‧‧中央處理單元
315‧‧‧紋理單元
103‧‧‧裝置驅動程式
320‧‧‧記憶體管理單元
104‧‧‧系統記憶體
325‧‧‧預先光柵運算單元
105‧‧‧記憶體橋接器
330‧‧‧工作分配橫桿
106‧‧‧通訊路徑
335‧‧‧第一點五層快取
107‧‧‧輸入/輸出橋接器
350‧‧‧圖形處理管線
108‧‧‧使用者輸入裝置
352‧‧‧世界空間管線
110‧‧‧顯示裝置
354‧‧‧螢幕空間管線
112‧‧‧並行處理子系統
355‧‧‧圖元分配器
113‧‧‧第二通訊路徑
360‧‧‧頂點屬性擷取單元
114‧‧‧系統磁碟
116‧‧‧開關
365‧‧‧頂點、曲面細分、幾何處理單元
118‧‧‧網路配接器
370‧‧‧視埠比例、消隱、裁切單元
120-121‧‧‧外接卡
202‧‧‧並行處理單元
375‧‧‧拼貼單元
204‧‧‧並行處理記憶體
380‧‧‧設定單元
205‧‧‧輸入/輸出橋接器
385‧‧‧光柵器
206‧‧‧主介面
390‧‧‧像素著色單元
207‧‧‧任務/工作單元
395‧‧‧光柵運算單元
208‧‧‧一般處理叢集
410‧‧‧快取拼貼
210‧‧‧記憶體橫桿單元
420‧‧‧光柵拼貼
212‧‧‧前端
400‧‧‧螢幕空間
214‧‧‧記憶體介面
500‧‧‧像素資料
215‧‧‧分割單元
510‧‧‧索引單元
220‧‧‧動態隨機存取記憶體
520‧‧‧訊框資料
230‧‧‧處理叢集陣列
530‧‧‧取樣圖案表
305‧‧‧管線管理員
540‧‧‧取樣圖案
700‧‧‧像素群組
702-708‧‧‧像素
710‧‧‧像素群組
712-718‧‧‧像素
720‧‧‧像素群組
722-728‧‧‧像素
730‧‧‧像素群組
732-738‧‧‧像素
1000‧‧‧訊框
1010‧‧‧移動物體
1020‧‧‧靜止物體
1030‧‧‧靜止物體
1200‧‧‧實例
如此上面簡單彙總可詳細了解本發明上述特色的方式,本發明的更特定說明則參照具體實施例,某些具體實施例說明於附圖內。不過吾人應該注意,附圖只說明本發明的典型具體實施例,因此並不對發明領域產生限制,本發明承認其他等效具體實施例。
第一圖為例示設置來實施本發明一或多個態樣的電腦系統方塊圖;第二圖為根據本發明的一個具體實施例,包含在第一圖中該並行處理子系統內的一並行處理單元之方塊圖;第三A圖為根據本發明的一個具體實施例,包含在第二圖中該並行處理單元內的一般處理叢集之方塊圖;第三B圖為根據本發明的一個具體實施例,可在第二圖中該並行處理單元內實施的一圖形處理管線之概念圖;第四圖為根據本發明的一個具體實施例,可設置第三B圖中該圖形處理管線產生與處理一快取拼貼之概念圖;第五圖為根據本發明的一個具體實施例,更詳細例示第三圖內該光柵單元的方塊圖;第六A圖至第六B圖為根據本發明的許多具體實施例,在 產生取樣圖案時由第五圖的該光柵單元所執行的操作之概念圖;第七A圖至第七D圖為根據本發明的許多具體實施例,例示可由第五圖中該光柵單元所產生的示範取樣圖案;第八圖為根據本發明的一個具體實施例,用於產生不同取樣圖案來用於跨不同訊框的相鄰像素之方法步驟流程圖;第九圖為根據本發明的一個具體實施例,用於產生一像素的取樣圖案之方法步驟流程圖;第十圖為根據本發明的一個具體實施例,例示套用時間-空間過濾來改善影像品質的一示範圖形場景;第十一圖為根據本發明的一個具體實施例,用於根據偵測的動作來過濾像素資料之方法步驟流程圖;第十二圖為根據本發明的一個具體實施例,例示可根據取樣偏移方向混合的像素示範群組;第十三圖為根據本發明的一個具體實施例,用於根據取樣偏移方向來執行空間-時間過濾之方法步驟流程圖;以及第十四圖為根據本發明的一個具體實施例,用於根據偵測的動作來執行空間或時間過濾之方法步驟流程圖。
在以下描述中,揭示許多特定細節以對本發明有更徹底之理解。但是,精通技術人士應該了解,在無一或多個該等特定細節之下還是可實施本發明。
系統概觀
第一圖為例示設置來實施本發明一或多個態樣的電腦系統100之方塊圖。如所示,電腦系統100包含但不限於一中央處理單元(CPU,central processing unit)102,以及通過一記憶體橋接器105以及一通訊路徑113耦合至一並行處理子系統112的一系統記憶體104。記憶體橋接器105另透過一通訊路徑106耦合至一I/O(輸入/輸出)橋接器107,並且輸入/輸出橋接器107接著耦合至一開關116。
在操作上,輸入/輸出橋接器107設置成接收來自輸入裝置 108,例如鍵盤、滑鼠的使用者輸入資訊,並透過通訊路徑106和記憶體橋接器105將該輸入資訊轉送至中央處理單元102進行處理。開關116設置成提供輸入/輸出橋接器107與電腦系統100的其他組件,像是網路配接器118以及許多外接卡120和121之間的連接。
另如所示,輸入/輸出橋接器107耦合至系統磁碟114,該磁碟可設置成儲存內容與應用程式以及資料,供中央處理單元102以及並行處理子系統112使用。一般來說,系統磁碟114提供非揮發性儲存裝置給應用程式與資料,並且可包含固定式或可移除式硬碟機、快閃記憶體裝置以及CD-ROM(小型光碟唯讀記憶體)、DVD-ROM(數位多用途光碟-ROM)、藍光、HD-DVD(高傳真DVD)或其他磁性、光學或固態儲存裝置。最後雖然未明確顯示,不過其他組件,例如萬用序列匯流排(USB,universal serial bus)或其他連接埠連接、小型光碟機、數位多用途光碟機、檔案記錄裝置等等,可連接至輸入/輸出橋接器107。
在許多具體實施例內,記憶體橋接器105可為北橋晶片,並且輸入/輸出橋接器107可為南橋晶片。此外,通訊路徑106和113以及電腦系統100內其他通訊路徑都可用任何技術合適的協定來實施,包含但不受限於AGP(加速圖形連接埠)、HyperTransport或業界內已知的任何其他匯流或點對點通訊協定。
在某些具體實施例內,並行處理子系統112包含一圖形子系統,其將像素遞送至顯示裝置110,該裝置可為任何傳統陰極射線管、液晶顯示器、發光二極體顯示器等等。在這種具體實施例內,並行處理子系統112併入將圖形與視訊處理最佳化的電路,包含例如視訊輸出電路。如底下第二圖內更詳細的說明,這種電路可併入並行處理子系統112內含的一或多個並行處理單元(PPU,parallel processing unit)。在其他具體實施例內,並行處理子系統112併入針對一般用途及/或計算處理最佳化之電路。再一次,這種電路可併入一或多個並行處理單元,該等單元包含在設置成執行這種一般用途及/或計算操作的並行處理子系統112內。仍舊在其他具體實施例內,並行處理子系統112內含的該等一或多個並行處理單元可設置成執行圖形處理、一般用途處理以及計算處理操作。系統記憶體104包含至 少一個裝置驅動程式103,該驅動程式設置成管理並行處理子系統112內該等一或多個並行處理單元的該等處理操作。
在許多具體實施例內,並行處理子系統112可與第一圖中一或多個其他元件整合,以形成單一系統。例如:並行處理子系統112可與中央處理單元102和單一晶片上其他連接電路整合,以形成晶片上系統(SoC,system on chip)。
吾人將了解,本文中顯示的該系統為例示,所以可進行改變與修改。包含橋接器的數量與配置、中央處理單元102的數量以及並行處理子系統112的數量這類連接拓撲可依照需求修改。例如在某些具體實施例內,系統記憶體104直接連接至中央處理單元102,而不是透過記憶體橋接器105,並且其他裝置透過記憶體橋接器105以及中央處理單元102與系統記憶體104通訊。在其他替代拓撲中,並行處理子系統112連接至輸入/輸出橋接器107或直接連接至中央處理單元102,而不是連接至記憶體橋接器105。仍舊在其他具體實施例內,輸入/輸出橋接器107和記憶體橋接器105可整合成為單一晶片,替代現有的一或多個分散裝置。最後在特定具體實施例內,第一圖內顯示的一或多個組件並不存在。例如:省略開關116,並且網路配接器118和外接卡120、121都直接連接至輸入/輸出橋接器107。
第二圖為根據本發明的一個具體實施例,包含在第一圖中該並行處理子系統112內的一並行處理單元(PPU,parallel processing unit)202之方塊圖。雖然第二圖描述一個並行處理單元202,如上面所示,並行處理子系統112可包含任何數量的並行處理單元202。如所示,並行處理單元202耦合至本機並行處理(PP,parallel processing)記憶體204。並行處理單元202以及並行處理記憶體204可使用一或多個積體電路裝置來實施,例如可程式處理器、特殊應用積體電路(ASIC,application specific integrated circuit)或記憶體裝置,或以任何其他技術可行方式。
在某些具體實施例內,並行處理單元202包含圖形處理單元(GPU,graphics processing unit),其可設置成實施一圖形渲染管線,根據中央處理單元102及/或系統記憶體104所供應的圖形資料,執行與產生像素資料相關的許多操作。處理圖形資料時,並行處理記憶體204可用來當成 圖形記憶體,儲存一或多個傳統訊框緩衝區以及若需要,儲存一或多個其他渲染目標。此外,並行處理記憶體204可用來儲存與更新像素資料,並且將最終像素資料或顯示訊框遞送至顯示裝置110用於顯示。在某些具體實施例內,並行處理單元202也可設置用於一般用途處理和計算操作。
在操作上,中央處理單元102為電腦系統100的主要處理器,控制與協調其他系統組件的操作。尤其是,中央處理單元102發出指令控制並行處理單元202的操作。在某些具體實施例內,中央處理單元102將並行處理單元202的指令串流寫入至一資料結構(第一圖或第二圖內未明確顯示),其可位於系統記憶體104內、並行處理記憶體204內或可存取中央處理單元102和並行處理單元202的其他儲存位置內。該資料結構已經寫入一推送緩衝區的指標,開始在該資料結構內處理該指令串流。並行處理單元202讀取來自推送緩衝區的該指令串流,然後關於中央處理單元102的操作非同步執行指令。在其中已經產生多個推送緩衝區的具體實施例內,可由應用程式透過裝置驅動程式103來控制不同推送緩衝區的排程,指定每一推送緩衝區的執行優先順序。
另如所示,並行處理單元202包含透過通訊路徑113和記憶體橋接器105與電腦系統100剩餘部分連通的一輸入/輸出單元205。輸入/輸出單元205產生在通訊路徑113上傳輸的封包(或其他信號),也從通訊路徑113上接收所有傳入封包(或其他信號),將該等傳入封包導引至並行處理單元202的適當組件。例如:有關處理任務的指令可導引至主介面206,而有關記憶體操作的指令(例如讀取或寫入並行處理記憶體204)可導引至一橫桿單元210。主介面206讀取每一推送緩衝區,並將該推送緩衝區內儲存的該指令串流傳送至一前端212。
如上面結合第一圖所提及,並行處理單元202與電腦系統100剩餘組件的連接也可改變。在某些具體實施例內,包含至少一個並行處理單元202的並行處理子系統112實施成為可插入電腦系統100內擴充槽的外接卡。在其他具體實施例內,並行處理單元202可與例如記憶體橋接器105或輸入/輸出橋接器107這類匯流排橋接器整合在單一晶片上。同樣仍舊在其他具體實施例內,並行處理單元202的某些或全部元件可與中央 處理單元102一起包含在單一整合電路或晶片系統(SoC,system of chip)上。
在操作上,前端212將接收自主介面206的處理任務傳輸至任務/工作單元207內一工作分配單元(未顯示),該工作分配單元接收指標來處理任務,其編碼為任務中繼資料(TMD,task metadata)並儲存在記憶體內。至任務中繼資料的該指標包含在指令串流內,其儲存當成一推送緩衝區並由前端單元212從主介面206接收。可編碼為任務中繼資料的處理任務包含與要處理資料相關聯之索引,以及定義如何處理該資料的狀態參數與指令。例如:該等狀態參數與指令可定義要在該資料上執行的該程式。任務/工作單元207從前端212接收任務,並且確定在每一任務中繼資料指定的處理任務開始之前已經將一般處理叢集208設置成有效狀態。一優先順序可指定給每一任務中繼資料,用來排定該處理任務的執行時間。處理任務也可從處理叢集陣列230接收。選擇性,該任務中繼資料可包含一參數,其控制該任務中繼資料加入處理任務清單(或處理任務指標清單)的頭部或尾部,藉此提供高於執行優先順序的另一控制等級。
並行處理單元202根據一處理叢集陣列230,其包含一組C個一般處理叢集(general processing cluster,GPC)208,其中C1,有利地實施一高度並行處理架構。每一一般處理叢集208都可同時執行大量的(例如數百或數千)執行緒,其中每一執行緒都是一程式的實例。在許多應用當中,不同的一般處理叢集208可分配用於處理不同種類的程式,或用於執行不同種類的計算。一般處理叢集208的分配絕大部分取決於針對每一種程式或計算所賦予的工作負擔。
記憶體介面214包含一組D個分割單元215,其中D1。每一分割單元215都耦合至位於並行處理記憶體204內的一或多個動態隨機存取記憶體(DRAM,dynamic random access memory)220。在一個具體實施例內,分割單元215的數量等於動態隨機存取記憶體220的數量,並且每一分割單元215都耦合至不同的動態隨機存取記憶體220。在其他具體實施例內,分割單元215的數量可不等於動態隨機存取記憶體220的數量。精通技術人士將了解,動態隨機存取記憶體220可用任何其他技術合適的儲存裝置取代。在操作上,例如訊框緩衝區或紋理地圖這類渲染目標可通 過動態隨機存取記憶體220儲存,允許分割單元215並行寫入每一渲染目標的部分,以有效使用並行處理記憶體204的可用頻寬。
已知的一般處理叢集208都可處理要寫入並行處理記憶體204內任一動態隨機存取記憶體220的資料。橫桿單元210設置成將每一一般處理叢集208的輸出繞送至任意分割單元215的輸入或至用於進一步處理的任何其他一般處理叢集208。一般處理叢集208透過橫桿單元210與記憶體介面214通訊,來讀取或寫入至許多隨機動態存取記憶體220。在一個具體實施例內,橫桿單元210具有一連接至輸入/輸出單元205,加上透過記憶體介面214連接至並行處理記憶體204,藉此讓不同一般處理叢集208內的處理核心與系統記憶體104或不在並行處理單元204本機上的其他記憶體通訊。在第二圖的具體實施例中,橫桿單元210直接連接至輸入/輸出單元205。在許多具體實施例內,橫桿單元210可使用虛擬通道,以分隔一般處理叢集208與分割單元215之間的流量串流。
一般處理叢集208同樣可程式編輯來執行有關廣泛應用的處理任務,包含但不受限於線性與非線性資料傳輸、視訊及/或音訊資料篩選、模型化運算(例如套用實體規則來決定位置、速度以及其他物體屬性)、影像渲染運算(例如曲線細分著色、影點著色、幾何著色及/或畫素著色程式)、一般運算操作等等。在操作上,並行處理單元202設置成將來自系統記憶體104及/或並行處理記憶體204的資料傳輸至一或多個晶片上記憶體單元、處理該資料並且將結果資料寫回系統記憶體104及/或並行處理記憶體204。然後該結果資料可由其他系統組件存取,包含中央處理單元102、並行處理子系統112內的另一個並行處理單元202或電腦系統100之內的另一個並行處理子系統112。
如上述,任何數量的並行處理單元202都可包含在一並行處理子系統112內。例如:單一外接卡上可提供多個並行處理單元202,或多張外接卡可連接至通訊路徑113,或一或多個並行處理單元202可整合到一橋接器晶片上。多PPU系統內的PPU 202可彼此一致或不同。例如:不同的並行處理單元202可具有不同數量的處理核心及/或不同數量的並行處理記憶體204。在實施當中,當存在多個並行處理單元202時,這些並行處理 單元可並行操作,以比單一並行處理單元202還要高產量的方式來處理資料。合併一或多個並行處理單元202的系統可在許多設置與外型因素之下實施,包含但不受限於桌上型、膝上型、手持式個人電腦或其他手持裝置、伺服器、工作站、遊戲機、嵌入式系統等等。
第三A圖為根據本發明的一個具體實施例,第二圖中並行處理單元202內一般處理叢集208的方塊圖。在操作上,一般處理叢集208可設置成並行執行大量執行緒,以執行圖形、一般處理及/或計算操作。依照本說明書內所使用,「執行緒」代表在輸入資料特定集合上執行的一特定程式之實例。在某些具體實施例內,單一指令、多重資料(single-instruction,multiple-data,SIMD)指令發行技術用於支援大量執行緒的並行執行,而不用提供多個獨立指令單元。在其他具體實施例內,單一指令、多重執行緒(SIMT,single-instruction,multiple-thread)技術用於支援大量一般同步執行緒的並行執行,使用共用指令單元,其設置成發出指令至一般處理叢集208內的處理引擎集。不同於一單一指令、多重資料執行方案,其中所有處理引擎一般都執行一致的指令,單一指令、多重執行緒執行允許不同執行緒更迅速遵循分散的執行路徑通過一已知程式。業界內精通技術人士將了解,單一指令、多重資料處理方案代表一單一指令、多重執行緒處理方案的函數子集。
透過將接收自任務/工作單元處理207之內一工作分配單元(未顯示)的處理任務分配至一或多個串流多重處理器(SM,streaming multiprocessor)310之管線管理員305可有利地控制一般處理叢集208的操作。管線管理員305也可設置成利用指定串流多重處理器310所輸出已處理資料的目的地,控制一工作分配橫桿330。
在一個具體實施例內,一般處理叢集208包含一組M個串流多重處理器310,其中M1。另外,每一串流多重處理器310都包含一組功能執行單元(未顯示),例如執行單元以及載入儲存單元。指定用於任何該功能執行單元的處理操作可為管線化,這可在先前指令完成執行之前就發出執行新指令。本發明可提供已知串流多重處理器310內任何功能執行單元組合。在許多具體實施例內,該等功能執行單元可設置成支援許多不 同操作,包含整數與浮點演算(例如加法與乘法)、比較運算、布林運算(AND、OR、XOR)、位元位移和許多代數函數的計算(例如平面插值與三角函數、指數函數以及對數函數等等)。優點在於相同功能執行單元可設置成執行不同操作。
在操作上,每一串流多重處理器310都設置成處理一或多個執行緒群組。如本文所使用,「執行緒群組」或「經線」代表在不同輸入資料上同時執行相同程式的執行緒群組,其中該群組的一個執行緒指派給串流多重處理器310內不同的執行單元。一執行緒群組可包含數量比串流多重處理器310內執行單元數量還要少的執行緒,在此案例中,某些執行單元會在循環期間處理該執行緒群組時閒置。執行緒群組也可包含數量比串流多重處理器310內執行單元數量還要多的執行緒,在此案例中,將在連續時脈循環上進行處理。因為每一串流多重處理器310都可同時支援最多G個執行緒群組,所以在任何已知時間上一般處理叢集208內都可執行最多G*M個執行緒群組。
此外,在串流多重處理器310內可同時啟用複數個相關執行緒群組(在不同執行相位內)。此執行緒群組的集合稱為「合作執行緒陣列」(CAT,cooperative thread array)或「執行緒陣列」。特定合作執行緒陣列的大小等於m*k,其中k為執行緒群組內同時執行的執行緒數量,通常為串流多重處理器310內執行單元數量的整數倍數,並且m為串流多重處理器310內同時啟用的執行緒群組數量。
雖然第三圖A內並未顯示,不過每一串流多重處理器310都包含第一層(L1)快取,或使用串流多重處理器310之外對應L1快取內的空間,以支援由該等執行單元執行的載入與儲存操作。每一串流多重處理器310也存取並行處理單元202內所有一般處理叢集208之間共享的第二層(L2)快取(未顯示),該等L2快取可用於在執行緒之間傳輸資料。最後,串流多重處理器310也存取晶片外「全域」記憶體,其可包含並行處理記憶體204及/或系統記憶體104。吾人了解,並行處理單元202之外的任何記憶體都可用來當成全域記憶體。此外,如第三A圖內所示,一點五層(L1.5)快取335可包含在一般處理叢集208內,設置成接收並固定由串流多重處 理器310要求透過記憶體介面214從記憶體擷取的資料,這種資料包含但不受限於指令、統一資料以及常數資料。在具有一般處理叢集208內多個串流多重處理器310的具體實施例內,串流多重處理器310得利於共享共用指令和在L1.5快取335內快取的資料。
每一一般處理叢集208都具有一相關記憶體管理單元(MMU,memory management unit)320,其設置成將虛擬位址映射至實體位址。在許多具體實施例內,記憶體管理單元320可位於一般處理叢集208或記憶體介面214之內。記憶體管理單元320包含一組頁面表記錄(PTE,page table entry),用於將虛擬位址映射至一拼貼或記憶體分頁以及選擇性一快取線索引的實體位址。記憶體管理單元320可包含能夠位於串流多重處理器310或一或多個L1快取或一般處理叢集208內的分頁對照表(TLB,translation lookaside buffer)或快取。
在圖形與計算應用當中,一般處理叢集208可經過設置,如此每一串流多重處理器310都連結至一紋理單元315,用於執行紋理映射操作,例如決定紋理樣本位置、讀取紋理資料以及篩選該紋理資料。
在操作上,每一串流多重處理器310都輸出處理過的任務至工作分配橫桿330,以便將該處理過的任務提供至另一一般處理叢集208供進一步處理,或透過橫桿單元210將該處理過的任務儲存在L2快取(未顯示)、並行處理記憶體204或系統記憶體104內。此外,預先光柵運算(preROP,pre-raster operation)單元325設置成從串流多重處理器310接收資料、將資料引導至分割單元215內的一或多個光柵運算(ROP,raster operation)單元,並且執行顏色混合、組織像素顏色資料以及執行位址轉譯的最佳化。
吾人將了解,本文中顯示的該核心架構為例示,所以可進行改變與修改。此外,任何數量的處理單元,例如串流多重處理器310、紋理單元315、預先光柵運算單元325都可包含在一般處理叢集208內。進一步,如上面結合第二圖所述,並行處理單元202可包含任意數量的一般處理叢集208,其設置成功能彼此類似,如此執行行為並不取決於接收特定處理任務的一般處理叢集208。進一步,每一一般處理叢集208操作都與並行處理單元202內其他一般處理叢集208無關,來執行一或多個應用程式的任務。 在上面的說明中,精通技術人士將了解,第一圖至第三A圖內描述的架構並不限制本發明的範疇。
圖形管線架構
第三B圖為根據本發明的一個具體實施例,可在第二圖中並行處理單元202內實施的一圖形處理管線350之概念圖。如所示,圖形處理管線350包含但不受限於一圖元分配器(PD,primitive distributor)355、一頂點屬性擷取單元(VAF,vertex attribute fetch unit)360、一頂點、曲面細分、幾何處理單元(VTG,vertex,tessellation,geometry processing unit)365、一視埠比例、消隱及裁切單元(VPC,viewport scale,cull,and clip unit)370、一拼貼單元375、一設定單元(setup)380、一光柵器(raster)385、一片段處理單元,也稱為一像素著色單元(PS,pixel shading unit)390以及一光柵運算單元(ROP,raster operation unit)395。
圖元分配器355收集來自前端212與高階表面、圖形圖元等等相關聯的頂點資料,並將該頂點資料傳輸至頂點屬性擷取單元360。
頂點屬性擷取單元360從共享記憶體當中擷取與每一該傳入頂點相關聯的頂點屬性,並且將該頂點資料搭配相關聯的頂點屬性,儲存至共享記憶體。
頂點、曲面細分、幾何處理單元365為一可程式執行單元,其設置成執行頂點著色程式、曲面細分程式以及幾何程式。這些程式處理接收自頂點屬性擷取單元360的該頂點資料以及頂點屬性,並且產生圖形圖元以及每一頂點上的顏色值、表面法線向量以及透明度值給該等圖形圖元,供在圖形處理管線350之內進一步處理。雖然未明確顯示,頂點、曲面細分、幾何處理單元365在某些具體實施例內可包含一或多個頂點處理單元、一曲面細分起始處理單元、一任務產生單元、一任務分配器、一拓撲產生單元、一曲面細分處理單元以及一幾何處理單元。
該頂點處理單元為一可程式執行單元,其設置成執行頂點著色程式,依照該頂點著色程式所規定照明與轉換頂點資料。例如:該頂點處理單元可程式編輯成將該頂點資料從一物件型座標代表(物件空間)轉換 成一替代型座標系統,例如世界空間或標準化裝置座標(NDC,normalized device coordinates)空間。該頂點處理單元可讀取由該VAF儲存在共享記憶體內的頂點資料以及頂點屬性,並且可處理該頂點資料與頂點屬性。頂點處理單元415將處理過的頂點儲存在共享記憶體內。
該曲面細分起始處理單元為一可程式執行單元,其設置成執行曲面細分起始著色程式。該曲面細分起始處理單元處理該頂點處理單元所產生的頂點,並產生圖形圖元,就是補丁。該曲面細分起始處理單元也產生許多補丁屬性,然後該曲面細分起始處理單元將該補丁資料以及補丁屬性儲存在共享記憶體內。在某些具體實施例內,該曲面細分著色程式可稱為外表著色或曲面細分控制著色。
該任務產生單元從共享記憶體當中取得頂點的資料與屬性以及補丁。該任務產生單元產生用於處理該等頂點與補丁的任務,供圖形處理管線350內稍後階段進行處理。
該任務分配器重新分配該任務產生單元所產生的任務。該頂點著色程式以及該曲面細分起始程式的許多實例所產生之任務可在一個圖形處理管線350與另一個之間顯著改變。該任務分配器重新分配這些任務,如此每一圖形處理管線350在稍後管線階段期間具有大約相同的工作負擔。
該拓撲產生單元獲得該任務分配器分配的任務。該拓撲產生單元將該等頂點加上索引,包含與補丁相關聯的頂點,並且計算曲面細分頂點的(U,V)座標,以及連接該等曲面細分頂點形成圖形圖元的索引。然後該拓撲產生單元將具有索引的頂點儲存在共享記憶體內。
該曲面細分處理單元為一可程式執行單元,其設置成執行曲面細分著色程式。該曲面細分處理單元讀取來自共享記憶體的輸入資料,並且將輸出資料寫入至共享記憶體。在共享記憶體內的此輸出資料會傳遞至下一個著色階段,當成幾何處理單元455的輸入資料。在某些具體實施例內,該曲面細分著色程式可稱為領域著色或曲面細分評估著色。
該曲面細分處理單元為一可程式執行單元,其設置成執行幾何著色程式,藉此轉換圖形圖元。頂點經過分組,建構用於處理的圖形圖元,其中圖形圖元包含三角形、線段、點等等。例如:該幾何處理單元可 程式編輯成將該等圖形圖元分成一或多個新圖形圖元,並且計算參數,例如平面等式係數,用來將該等新圖形圖元光柵化。
該幾何處理單元將指定新圖形圖元的該等參數與頂點傳輸至視埠比例、消隱及裁切單元370。該幾何處理單元可讀取儲存在共享記憶體內的資料,以便用於處理該幾何資料。視埠比例、消隱及裁切單元370執行裁切、消隱、透視修正以及視埠變形,以決定在該最終渲染影像內可能看見哪個圖形圖元,可能看不見哪個圖形圖元。然後視埠比例、消隱及裁切單元370將處理過的圖形圖元傳輸至拼貼單元375。
拼貼單元375為圖形圖元排序引擎,位於一世界空間管線352與一螢幕空間管線354之間,如本說明書內進一步描述。圖形圖元在世界空間管線352內處理,然後傳輸至拼貼單元375。該螢幕空間分成快取拼貼,其中每一快取拼貼都關聯於該螢幕空間的一部分。針對每一圖形圖元,拼貼單元375識別與該圖形圖元交叉的快取拼貼集合,在此稱為「拼貼」的處理。在拼貼特定數量的圖形圖元之後,拼貼單元375依照快取拼貼處理該等圖形圖元,其中與一特定快取拼貼相關聯的圖形圖元已經傳輸至設定單元380。拼貼單元375在一個快取拼貼期間將圖形圖元傳輸至設定單元380。與多個快取拼貼交叉的圖形圖元一般在世界空間管線352內處理一次,但是多次傳輸至螢幕空間管線354。
這種技術改善在螢幕空間管線354內處理期間快取記憶體的位置關係,其中與第一快取拼貼相關聯的多個記憶體操作存取該等L2快取的一區域,或任何其他技術可行的快取記憶體,其可在該第一快取拼貼的螢幕空間處理期間保留。一旦螢幕空間管線354已經處理與該第一快取拼貼相關聯的該等圖形圖元,可清除與該第一快取拼貼相關聯的該部分L2快取,並且該拼貼單元可傳輸與一第二快取拼貼相關聯的圖形圖元。然後與一第二快取拼貼相關聯的多個記憶體操作存取該等L2快取的區域,該區域可在該第二快取拼貼的螢幕空間處理期間保留。因此,可降低至該等L2快取以及至該等渲染目標的整體記憶體流量。在某些具體實施例內,針對一已知圖形圖元執行該世界空間計算一次,而不管螢幕空間內與該圖形圖元交叉的快取拼貼數量。
設定單元380透過拼貼單元375接收來自視埠比例、消隱及裁切單元370的頂點資料,並且計算與該等圖形圖元相關聯的參數,包含但不受限於邊緣等式、部分平面等式以及深度平面等式。然後設定單元380將處理過的圖形圖元傳輸至光柵器385。
光柵器385掃描轉換新圖形圖元,並且將片段與覆蓋資料輸出至像素著色單元390。此外,光柵器385可設置成執行z消隱以及其他z型最佳化。
像素著色單元390為一可程式執行單元,其設置成執行片段著色程式,依照該片段著色程式所規定轉換接收自光柵器385的片段。片段著色程式可用像素等級粒度將片段著色,其中這種著色程式可稱為像素著色程式。另外,片段著色程式可用樣本等級粒度將片段著色,其中每一像素都包含多個樣本,並且每一樣本都代表像素一部分。另外,根據程式編輯的取樣率,片段著色程式可用任何其他技術可行粒度來將片段著色。
在許多具體實施例內,片段處理單元460可程式編輯成執行操作,例如透視修正、紋理映射、著色、混色等等,以產生傳輸至光柵運算單元395的已著色片段。像素著色單元390可讀取儲存在共享記憶體內的資料。
光柵運算單元395為一種處理單元,其執行光柵操作,例如模板、z測試、混色等等,並且將像素資料當成處理過的圖形資料來傳輸,透過記憶體介面214儲存在圖形記憶體內,其中圖形記憶體通常建構成為一或多個著色目標。該處理過的圖形資料可儲存在圖形記憶體內,例如並行處理記憶體204或系統記憶體104,用於顯示在顯示裝置110上或用於由中央處理單元102或並行處理子系統112進一步處理。在本發明的某些具體實施例內,光柵運算單元395設置成將寫入記憶體的z或顏色資料壓縮,並且將從記憶體讀取的z或顏色資料解壓縮。在許多具體實施例內,光柵運算單元395可位於記憶體介面214內、一般處理叢集208內、該一般處理叢集之外的處理叢集陣列230內或並行處理單元202之內的一個別單元(未顯示)內。
該圖形處理管線可由並行處理單元202之內任一或多個處 理元件來實施,例如:第三A圖的一個串流多重處理器310可設置成執行頂點、曲面細分、幾何處理單元365以及像素著色單元390之一者或多者的功能。圖元分配器355、頂點屬性擷取單元360、視埠比例、消隱及裁切單元370、拼貼單元375、設定單元380、光柵器385以及光柵運算單元395的功能也由特定一般處理叢集208之內的處理元件結合一對應分割單元215來執行。另外,可使用針對上列一或多個功能的專屬固定功能處理元件,實施圖形處理管線350。在許多具體實施例內,並行處理單元202可設置成實施一或多個圖形處理管線350。
在某些具體實施例內,圖形處理管線350可分成一世界空間管線352以及一螢幕空間管線354。世界空間管線352在3D空間內處理圖形物件,其中相對於其他圖形物件以及相對於一3D座標系統已知每一圖形物件的位置。螢幕空間管線354處理已經從該3D座標系統投射至一2D平面(呈現出顯示裝置110的表面)之圖形物件。例如:世界空間管線352可包含圖形處理管線350內從PD 355到視埠比例、消隱及裁切單元370的管線階段。螢幕空間管線354可包含圖形處理管線350內從設定單元380到光柵運算單元395的管線階段。拼貼單元375應該接在世界空間管線352的最後階段,換言之就是視埠比例、消隱及裁切單元370之後。拼貼單元375應該位於螢幕空間管線354的第一階段,換言之就是設定單元380之前。
在某些具體實施例內,世界空間管線352可進一步分成一阿爾發相位管線以及一貝他相位管線。例如:該阿爾發相位管線可包含圖形處理管線350內從PD 355到該任務產生單元的管線階段。該貝他相位管線可包含圖形處理管線350內從該拓撲產生單元到視埠比例、消隱及裁切單元370的管線階段。圖形處理管線350在該阿爾發相位管線內處理期間執行第一組操作,並且在該貝他相位管線內處理期間執行一第二組操作。如本說明書內所用,一組操作定義為由單一執行緒、一執行緒群組或由多個執行緒群組聯合執行的一或多個指令。
在具有多個圖形處理管線350的系統中,與一組圖形物件相關聯的該頂點資料以及頂點屬性可細分,如此每一圖形處理管線350通過該阿爾發相位都具有大約相同的工作負擔。阿爾發相位處理可顯著擴充該 頂點資料以及頂點屬性的總量,如此該任務產生單元生產的頂點資料與頂點屬性總量顯著大於PD 355和頂點屬性擷取單元360所處理的頂點資料與頂點屬性總量。進一步,即使在兩個圖形處理管線350在該阿爾發相位管線開始時處理相同屬性量,與一個圖形處理管線350相關聯的該任務產生單元比起與另一個圖形處理管線350相關聯的該任務產生單元,可產生顯著較多的頂點資料與頂點屬性數量。在這種情況下,該任務分配器重新分配該阿爾發相位管線產生的該等屬性,如此每一圖形處理管線350在該貝他相位管線開始時都具有大約相同的工作負擔。
請注意,如本說明書內所用,參照至共享記憶體可包含任一或多個技術可行的記憶體,包含但不受限於一或多個串流多重處理器310所共享的本機記憶體,或可透過記憶體介面214存取的記憶體,例如一快取記憶體、並行處理記憶體204或系統記憶體104。另請注意,如本說明書內所用,參照至快取記憶體可包含任一或多個技術可行的記憶體,包含但不受限於一L1快取、一L1.5快取以及該等L2快取。
拼貼快取
第四圖為根據本發明的一個具體實施例,可設置第三B圖中該圖形處理管線350產生與處理一快取拼貼410(0)之概念圖。如所示,快取拼貼410(0)代表螢幕空間400的一部分,並且分成多個光柵拼貼420。
螢幕空間400呈現一或多個記憶體緩衝區,其設置成儲存圖形處理管線350之內功能單元所傳輸的渲染影像資料以及其他資料。在某些具體實施例內,該等一或多個記憶體緩衝區可設置成為一或多個渲染目標。該螢幕空間呈現一記憶體緩衝區,設置成儲存該圖形處理管線所渲染的該影像。螢幕空間400可關聯於任意數量的渲染目標,其中每一渲染目標可設置成獨立於其他渲染目標以包含任何數量的欄位。一渲染目標內的每一欄位都可設置成獨立於其他欄位,以包含任何數量的位元。每一渲染目標都可包含多個相片元素(像素),接著每一像素都可包含多個樣本。在某些具體實施例內,每一快取拼貼的大小係根據與該螢幕空間相關聯的該渲染目標之大小與組態。在操作上,一旦渲染完成,則該等一或多個渲染目 標內的該等像素傳輸至一顯示裝置,以便顯示該渲染的影像。
藉由範例,螢幕空間400的一組渲染目標應包含八個渲染目標。該第一渲染目標應包含四個欄位代表顏色,包含紅色、綠色和藍色成分顏色,以及與對應片段相關聯的透明度資訊。該第二渲染目標應包含兩個欄位,代表與該對應片段相關聯的深度以及模板資訊。該第三渲染目標應包含三個欄位,代表與該對應片段相關聯的表面法線向量資訊,包含x軸法線向量、y軸法線向量以及z軸法線向量。剩餘的五個渲染目標應設置成儲存與該對應片段相關聯的額外資訊。這種組態應包含許多資訊的儲存,包含但不受限於3D位置資料、擴散照明資訊以及視鏡照明資訊。
每一快取拼貼410代表一部分螢幕空間400。為了清晰起見,第四圖內只顯示五個快取拼貼410(0)-410(4)。在某些具體實施例內,快取拼貼可在X和Y螢幕空間內具有任意大小。例如:若一快取拼貼位於也用於儲存其他資料的一快取記憶體內,則該快取拼貼應調整大小,以便只消耗該快取記憶體的特定部分。一快取拼貼的大小係根據一些因素,包含與螢幕空間400相關聯的該等渲染目標之數量與組態、每像素的樣本數量以及該快取拼貼內儲存的該資料是否經過壓縮。一般而言,一快取拼貼經過大小調整,以提高該快取拼貼資料仍舊留在該快取記憶體內,直到與該快取拼貼相關聯的所有圖形圖元已經完全處理之可能性。
光柵拼貼420代表一部分快取拼貼410(0)。如所示,快取拼貼410(0)包含以陣列排列的十六個光柵拼貼420(0)-420(15),也就是四個光柵拼貼420寬乘上四個光柵拼貼420高。在包含多個一般處理叢集208的系統內,與一已知快取拼貼410(0)相關聯的處理可在可用的一般處理叢集208之間區分。在所示的範例中,若快取拼貼410(0)的十六個光柵拼貼已經過四個不同一般處理叢集208處理,則每一一般處理叢集208應指派成處理快取拼貼410(0)內十六個光柵拼貼420當中的四個。尤其是,第一一般處理叢集208應指派成處理光柵拼貼420(0)、420(7)、420(10)和420(13),第二一般處理叢集208應指派成處理光柵拼貼420(1)、420(4)、420(11)和420(14),第三一般處理叢集208應指派成處理光柵拼貼420(2)、420(5)、420(8)和420(15),然後第四一般處理叢集208應指派成處理光柵拼 貼420(3)、420(6)、420(9)和420(12)。在其他具體實施例內,一已知快取拼貼之內該等不同光柵拼貼的處理可在一般處理叢集208之間分配,或以任何技術可行方式在電腦系統100內含的任何其他處理實體之間分配。
此時請回頭參閱第三B圖,光柵385設置成根據世界空間幾何產生覆蓋率資料,如上述。如此,光柵385設置成針對每一像素實施不同的取樣圖案,並且跨序列訊框針對每一像素改變這些取樣圖案。例如:針對已知的相鄰像素配對,光柵385可針對已知訊框的這些像素,實施一組兩個不同的取樣圖案。然後,針對後續訊框,光柵385可針對這些像素實施另一組兩個不同的取樣圖案。如此針對每一像素,在訊框之間使用不同的該取樣圖案,並且另外相較於相同訊框之內相鄰像素也不一樣。此一般方式在此可稱為「多訊框消鋸齒」或MFAA。
運用此方式,光柵385針對通過許多訊框的每一像素有效乘上多取樣消鋸齒模式,不用實際需要每像素額外的取樣。例如:取代每一像素實施N個取樣,光柵385可取代實施通過M個訊框的每一像素N/M個不同取樣,產生總共N個取樣。因為序列訊框相對一致,表示圖形物件通常在訊框之間不會顯著移動,此方式可導致觀看者感受到較高品質渲染影像,使用光柵385實際實施的較高階多取樣消鋸齒。底下結合第五圖至第九圖更詳細描述光柵385的此功能性。
以空間及/或時間方式改變取樣圖案
第五圖為根據本發明的一個具體實施例,更詳細例示第三圖內該光柵單元的方塊圖。如所示,光柵單元385包含像素資料500、一索引單元510、訊框資料520、一組取樣圖案表530以及一組取樣圖案540。像素資料500包含資料,指定目前由圖形處理管線385渲染來顯示的一訊框之內每一像素的X和Y座標。訊框資料520包含與訊框相關的一訊框編號。
每一取樣圖案表530都包含與特定訊框編號或訊框編號類型相關的一組取樣圖案,例如:取樣圖案表530可包含兩個取樣圖案表;第一表包含用於奇數訊框的取樣圖案,第二表包含用於偶數訊框的取樣圖案。裝置驅動程式103可設置取樣圖案表530的編號,並且設定每一取樣 圖案表530。尤其是,裝置驅動程式103可包含兩個用於奇數與偶數編號訊框的取樣圖案表,如上述,不過精通技術人士將了解,任何數量的這種表都落在本發明範疇之內。
索引單元510設置成接收訊框資料520,然後根據訊框編號,選擇目前訊框要使用的特定取樣圖案表530。然後索引單元510處理像素資料500,並且針對每一像素,產生一索引給選取的取樣圖案表530。該產生的索引參照選取取樣圖案表530之內的輸入數,每一輸入都指出在一像素內的XY位置,在此應該由光柵385產生用於該像素的一覆蓋率取樣。取樣圖案340包含用於一特定像素的所有這種XY位置。光柵385設置成根據對應至該像素的取樣圖案340,產生用於該像素的覆蓋率資訊。底下結合第六A圖至第六B圖,藉由範例詳細描述上述該方式。
第六A圖至第六B圖為根據本發明的許多具體實施例,在產生取樣圖案時由第五圖的該光柵單元所執行的操作之概念圖。本範例係關於光柵385可取樣每一像素最多64個獨一位置之組態。進一步,此範例係關於其中光柵385實施每一像素四個取樣的多訊框消鋸齒模式。如此,底下討論的該示範案例揭示一種有效8x消鋸齒模式,但是只有4x取樣位置。精通技術人士將了解,本文內討論的範例並不意圖以任何方式限制本發明的範疇。光柵385可設置成取樣任何位置數上的像素,並且實施每一像素任何數量的取樣。
在第六A圖內,索引單元510接收來自像素資料500的Xpos和Ypos,Xpos和Ypos一起反應出單一像素的該XY位置。索引單元510也接收來自訊框資料520的一訊框編號(frm #)。根據該訊框編號,索引單元510選擇取樣圖案表530(0),然後索引單元解析Xpos和Ypos,產生一索引進入取樣圖案表530(0)。該產生的索引選擇該表內含輸入的範圍。每一輸入都包含一X位置與一Y位置,分別位於X欄(Xcol)與Y欄(Ycol)內。在一個具體實施例內,索引單元510解析來自Xpos與Ypos的一些最低有效位元(LSB,least significant bit),然後將這些最低有效位元結合產生該索引。如所示,然後索引單元510可存取取樣圖案表530(0)之內輸入的範圍,以便產生取樣圖案540(0)給位於Xpos和Ypos上的像素。第六B圖例示相對 於不同像素執行的類似程序。
在第六B圖內,索引單元510接收來自像素資料500的Xpos’和Ypos’,Xpos’和Ypos’反應與上面結合第六A圖討論的該像素相鄰之像素的XY位置。索引單元解析Xpos’和Ypos’,以產生另一個索引進入取樣圖案表530(0),選擇該表內含輸入的不同範圍。如所示,然後索引單元510可存取取樣圖案表530(0)之內輸入的另一個範圍,以便產生取樣圖案540(0)’給相鄰像素。
請參閱第六A圖至第六B圖,索引單元510可針對該訊框之內的每一不同像素執行上述程序,藉此產生不同的取樣圖案給相鄰像素。此外,索引單元510可從不同訊框選擇不同的取樣圖案表530。如此,選取用於已知像素的取樣圖案540可在訊框之間改變。一般而言,用於已知像素的不同取樣圖案540之數量反應出由裝置驅動程式103所設置的消鋸齒程度。
例如在第六A圖至第六B圖內,光柵385設置成執行多訊框消鋸齒x8或8x多訊框消鋸齒。在這種情況下,光柵385應在每一訊框的每一像素之內四個位置上都產生一取樣,跨兩個連續訊框。同樣地,有效多取樣消鋸齒的程度等同於每訊框每像素的取樣數乘上該取樣圖案跨越改變的訊框數。如此在本文所討論的範例中,利用將四個不同取樣位置跨越兩個連續訊框,達成該有效8x多取樣。
精通技術人士將了解,利用調整每像素的取樣數以及該取樣圖案所跨越改變的訊框數,可實施任何特定多訊框消鋸齒模式。例如:為了實施多訊框消鋸齒x6,光柵385應產生一樣本給不同位置配對上的每一像素,橫跨三個連續訊框。本文內說明的特定值只供示範目的,並無意圖以任何方式限制本發明的範疇。第七A圖至第七D圖揭示可用來產生樣本以便計算覆蓋率資訊的許多不同取樣圖案。
第七A圖至第七D圖為根據本發明的許多具體實施例,例示可由第五圖中該光柵單元所產生的示範取樣圖案。一般而言,第七A圖至第七D圖之每一者例示四個取樣圖案,可實施來產生用於四個相鄰像素的樣本。此外,每一取樣圖案都指出在特定數量訊框期間啟動的不同取樣 位置,例如:這些圖內顯示的某些取樣位置可在偶數訊框期間啟動,其他則在奇數訊框期間啟動。以下範例僅供示範目的,並無意圖以任何方式限制本發明的範疇。
第七A圖例示一案例,其中1x多取樣消鋸齒模式(每像素一個樣本)有效提供2x多訊框消鋸齒模式。如所示,一像素群組700包含像素702、704、706和708。光柵385可產生一覆蓋率樣本給最多256個位置上之每一像素。針對每一訊框,光柵385每像素只產生一個覆蓋率樣本。不過,一個樣本的位置會隨跨奇數與偶數訊框而變。
例如:當處理偶數訊框時,光柵385可產生一覆蓋率樣本給位置(4,4)上的像素702,然後當處理奇數訊框時可產生一覆蓋率樣本給位置(12,12)上的像素。此外,因為像素702、704、706和708之每一者都位於一訊框之內不同XY位置上,因此用於每一像素的該取樣圖案與相鄰像素比較起來會改變。例如:在已知訊框內,像素702和704具有不同取樣圖案。不過,在已知訊框之內,像素704和706可具有相同取樣圖案。第七B圖至第七D圖例示使用本文所討論技術可達成的較高階多訊框消鋸齒。
第七B圖例示一案例,其中2x多取樣消鋸齒模式有效提供4x多訊框消鋸齒模式。如所示,一像素群組710包含像素712、714、716和718。針對每一訊框,光柵385每一像素產生兩個覆蓋率樣本,其中這些樣本的位置會跨奇數與偶數訊框而變。如此,利用分配2x樣本跨越兩個連續訊框,來達成4x多訊框消鋸齒。
第七C圖例示一案例,其中4x多取樣消鋸齒模式有效提供8x多訊框消鋸齒模式。如所示,一像素群組720包含像素722、724、726和728。針對每一訊框,光柵385每一像素產生四個覆蓋率樣本,其中這些樣本的位置會跨奇數與偶數訊框而變。如此,利用分配4x樣本跨越兩個連續訊框,來達成8x多訊框消鋸齒。
第七D圖例示一案例,其中8x多取樣消鋸齒模式有效提供16x多訊框消鋸齒模式。如所示,一像素群組730包含像素732、734、736和738。針對每一訊框,光柵385每一像素產生八個覆蓋率樣本,其中這些樣本的位置會跨奇數與偶數訊框而變。如此,利用分配8x樣本跨越兩個連 續訊框,來達成16x多訊框消鋸齒。
請參閱第七A圖至第七D圖,本文內例示的該示範取樣圖案提供用於示範目的。光柵385可實施各種不同的取樣圖案,以任何技術可行的方式散佈,而其可跨任何數量的連續訊框而變。第八圖和第九圖以逐步方式說明光柵385的一般操作。
第八圖為根據本發明的一個具體實施例,用於產生不同取樣圖案來用於跨不同訊框的相鄰像素之方法步驟流程圖。雖然已經結合第一圖至第七D圖的系統來描述該等方法步驟,不過精通技術人士將了解,設置來執行該等方法步驟(以任何順序)的任何系統都在本發明範疇內。
如所示,方法800從步驟802開始,其中光柵385之內的索引單元510識別與第一訊框相關聯的一取樣圖案表530。如此,索引單元510可解析訊框資料520,來識別與當前訊框相關聯的一訊框編號,然後根據該編號選擇該取樣圖案表。在步驟804上,索引單元510從該選取的取樣圖案表中選擇第一組取樣圖案,用於產生相鄰像素的覆蓋率資訊。在某些具體實施例內,針對每一相鄰的像素,該第一組取樣圖案可包含不同的取樣圖案。在步驟806上,光柵385根據該第一組取樣圖案,產生用於該等相鄰像素的覆蓋率樣本。
在步驟808上,光柵385前往第二訊框。在回應方面,訊框資料520可更新來反應與該第二訊框相關聯的新訊框編號。在步驟810上,光柵385之內的索引單元510識別與第二訊框相關聯的另一取樣圖案表530。索引單元510可解析已更新的訊框資料520,來識別與該第二訊框相關聯的編號,然後根據該編號選擇新的取樣圖案表。在步驟812上,索引單元510從該選取的取樣圖案表中選擇第二組取樣圖案,用於產生相鄰像素的覆蓋率資訊。針對每一相鄰的像素,該第二組取樣圖案可包含不同的取樣圖案。在某些具體實施例內,該第二組取樣圖案可反應該第一組取樣圖案的轉置。在步驟806上,光柵385根據該第二組取樣圖案,產生用於該等相鄰像素的樣本。
利用實施方法800,光柵385可用逐訊框方式,獨立設置每一像素的該樣本。此方式具有足夠彈性來實施多種不同的多訊框消鋸齒模 式,不用經歷通常傳統多取樣方式會經歷的負擔增加問題。第九圖更詳細說明索引單元510的功能性。
第九圖為根據本發明的一個具體實施例,用於產生一像素的取樣圖案之方法步驟流程圖。雖然已經結合第一圖至第七D圖的系統來描述該等方法步驟,不過精通技術人士將了解,設置來執行該等方法步驟(以任何順序)的任何系統都在本發明範疇內。
如所示,方法900從步驟902開始,其中索引單元510決定目前訊框的訊框編號。索引單元510可解析訊框資料520,在步驟902上決定該訊框編號。在步驟904上,索引單元510識別對應置該當前訊框編號的一取樣圖案表530。在步驟906上,索引單元510接收與已知像素相關聯的一XY座標,該XY座標反應出當前訊框之內該像素之位置。
在步驟908,索引單元510產生一索引進入該選取的取樣圖案表。該索引參照該選取的取樣圖案表內的輸入範圍。在步驟910上,索引單元510根據步驟908上產生的該索引,從該選取的取樣圖案表中取得一組取樣圖案位置。在步驟910上,光柵385產生在該取得樣本位置上該像素的覆蓋率資訊。光柵385之內的索引單元可針對該訊框內每一不同的像素實施方法900,以便針對每一這種像素,使用不同的取樣圖案來產生覆蓋率資訊。
請參閱第五圖至第九圖,本文所討論的該多訊框消鋸齒可套用來增加該有效多取樣模式。如此渲染的圖形影像品質可提高,因為事實上產生較高解析度覆蓋率資料。此外,運用特定具體實施例,可套用本文所討論的技術,增加由串流多重處理器310所執行的一著色器所實施之該效率超級取樣模式。在一個具體實施例內,由光柵385所產生的該覆蓋率取樣位置可複製,針對像素著色目的來產生著色器取樣位置。如此,裝置驅動程式103可設置串流多重處理器310來調整每一像素的著色器取樣位置,以反應用於每一像素的該特定取樣圖案340。運用此方式,裝置驅動程式103實施串流多重處理器310之內的有效超級取樣,而不需要額外著色器樣本,藉此提高影像品質。
透過使用特殊過濾器,降低跨訊框改變取樣圖案時潛在產生 的視覺假象,可進一步提高使用上述技術所產生的影像品質。這些過濾技術,底下稱為「時間-空間過濾」,可適用於包含靜止物體、移動物體或這兩種組合的圖形環境,如底下結合第十圖至第十四圖之更詳細說明。
時間-空間過濾
第十圖為根據本發明的一個具體實施例,例示套用時間-空間過濾來改善影像品質的一示範圖形場景。如所示,一圖形場景的一訊框1000包含一移動物體1010以及靜止物體1020和1030。當結合第五圖至第九圖所描述的該多訊框消鋸齒技術實施來渲染訊框1000時,由於至少一部分跨相鄰像素與訊框之間的取樣圖案改變,會出現特定假象。
例如:當靜止物體1020已渲染,則訊框之間取樣圖案的改變會導致該物體輕微抖動。此抖動會升高,例如因為不同的取樣圖案產生不同的覆蓋率資訊給跨不同訊框之該相同像素。如此,靜止物體1020的邊緣似乎會移動。在另一個範例中,當移動物體1010通過訊框1000時,則訊框之間的取樣圖案改變結合物體1010的動作,會導致在物體邊緣上出現鋸齒圖案。其他種假象也會產生,例如訊框之間移動物體1010的鬼影。
為了消除這些現象,裝置驅動程式103執行許多時間-空間過濾操作。尤其是,為了消除靜止物體伴隨的假象,裝置驅動程式103執行時間混合,如此先前訊框之內的對應像素會混合在一起。為了消除移動物體伴隨的假象,裝置驅動程式103執行空間混合,如此沿著邊緣的相鄰像素會混合在一起。
裝置驅動程式103可根據與該像素相關聯的動作量,以每像素為準來執行時間混合、空間混合或這兩者的組合。如此,若已判定已知像素靜止,則裝置驅動程式103啟動時間混合。另外,若已判定已知像素正在移動,則裝置驅動程式103啟動空間混合。裝置驅動程式103可使用稍後結合第十二圖至第十四圖更詳細說明的技術,來執行一組合式空間-時間混合。
在操作上,裝置驅動程式103可設置成利用比較通過先前訊框的像素值,來偵測與像素相關聯的動作。如此,裝置驅動程式103通常 比較具有類似取樣圖案配置的先前訊框。例如:當光柵385改變奇數與偶數訊框之間的取樣圖案時,如結合第六A圖至第七D圖所描述,裝置驅動程式103比較一組奇數訊框之內的對應像素及/或比較一組偶數訊框之內的對應像素。此方式是為了消除取樣圖案改變可能出現的動作偵測失敗。
實際上,裝置驅動程式103比較一些偶數訊框,來決定這些像素值之間的差異是否超出第一臨界。裝置驅動程式103也比較一些奇數訊框,來決定這些像素值之間的差異是否超出第二臨界。若超出該第一臨界與該第二臨界,則裝置驅動程式103識別動作。此方式可以每像素為準來執行識別動作。在一個具體實施例內,裝置驅動程式103可利用設置串流多重處理器310執行上述動作偵測功能性,來實施此方式。底下結合第十一圖以逐步方式說明本文內描述的該空間-時間過濾技術。
第十一圖為根據本發明的一個具體實施例,用於根據偵測的動作來過濾像素資料之方法步驟流程圖。雖然已經結合第一圖至第七D圖和第十圖的系統來描述該等方法步驟,不過精通技術人士將了解,設置來執行該等方法步驟(以任何順序)的任何系統都在本發明範疇內。
如所示,方法1100從步驟1102開始,其中裝置驅動程式103比較具有類似取樣圖案配置的先前訊框。例如:若光柵385改變偶數與奇數訊框之間的取樣圖案,則裝置驅動程式103可比較訊框N至訊框N-2,並且比較訊框N-1至訊框N-3。在步驟1104上,裝置驅動程式103決定是否偵測到動作。如此,裝置驅動程式103可決定先前訊框的像素值間之差異是否大於一臨界值。例如:裝置驅動程式103可決定訊框N與訊框N-2之間的差異是否超出該臨界。裝置驅動程式103也可決定訊框N-1與訊框N-3之間的差異是否超出另一個臨界。若超出該等臨界的一者或兩者,則裝置驅動程式103偵測到動作。
在步驟1104上,若裝置驅動程式103並未偵測到動作,則該方法前往步驟1106,在此裝置驅動程式103開始時間混合。如此,裝置驅動程式103可設置串流多重處理器310來執行該時間混合。在步驟1108上,裝置驅動程式103混合先前訊框內的對應像素。如此,裝置驅動程式103可將第一訊框之內具有一特定XY位置的已知像素與來自先前訊框並具 有相同XY位置的一像素混合。
在步驟1104上,若裝置驅動程式103事實上偵測到動作,則該方法1100前往步驟1110,在此裝置驅動程式103開始空間混合。如此,裝置驅動程式103可設置串流多重處理器310來執行該空間混合。在步驟1112上,裝置驅動程式103將沿著該圖形場景之內所偵測邊緣的像素混合。在一個具體實施例內,裝置驅動程式103實施一邊緣偵測演算法,來識別像素相鄰之內的邊緣。針對位於沿著偵測邊緣的已知像素,裝置驅動程式103選擇與該已知像素相鄰並位於沿著該邊緣的一或多個像素。然後,裝置驅動程式103可將該已知像素與該相鄰像素混合。
裝置驅動程式103可針對該訊框之內每一不同的像素來實施方法1100。因此,特定像素可經歷時間混合,而其他則經歷空間混合。例如:參閱第十圖,與靜止物體1020和1030相關聯的像素應該經歷時間混合,而與移動物體1010相關聯的像素應該經歷空間混合。裝置驅動程式103也可針對每一不同的像素,執行空間與時間混合之混合物。例如:裝置驅動程式103應將一動作分數指派給每一像素,然後根據該動作分數執行時間過濾與空間過濾的組合。如此,裝置驅動程式103可根據該動作分數,加重空間過濾結果,並且根據該動作分數的倒數,加重該時間過濾結果。此外,裝置驅動程式103可執行過濾來考慮每一像素之內取樣圖案之變化,如底下結合第十二A圖至第十四圖的更詳細說明所述。
第十二圖為根據本發明的一個具體實施例,例示可根據取樣偏移方向混合的像素示範群組。如所示,說明像素群組的實例1200跨越三個連續訊框。實例1200(0)出現在訊框0內、實例1200(1)出現在訊框1內並且實例1200(2)出現在訊框2內。另如所示,群組1200中央像素之內的一取樣位置跨訊框就改變。在訊框0內,該取樣位置可位於左上角。在訊框1內,該取樣位置可位於右下角。在訊框2內,該取樣位置可位於左上角。本文內所描述該取樣位置之示範動作可對應至一多訊框消鋸齒模式,其中該等取樣位置在偶數與奇數訊框之間改變。
如本文所參閱,「樣本位移方向」代表其中該取樣位置在訊框之間移動的像素方向。例如:在訊框0與1之間,該取樣位置位移朝向 右下方,如這些訊框之間的虛線所示。類似地,在訊框1與2之間,該取樣位置位移朝向左上方,如這些訊框之間的虛線所示。
裝置驅動程式103設置成根據樣本位移方向,執行相鄰像素之間的空間混合,以便抵消取樣位置位移所造成的潛在可感知動作。如此,如實例1200(1)之內所示,為了抵消訊框0與1之間的該右下角樣本位移,裝置驅動程式可用所顯示方式將該中央像素與左上角像素混合。類似地,在實例1200(2)之內,為了抵消訊框1與2之間的該左上角樣本位移,裝置驅動程式可用所顯示方式將該中央像素與右下角像素混合。
上述該混合技術可實施來減少使用多訊框消鋸齒渲染的訊框內之抖動及/或其他假象。這些技術也可與上面結合第十圖至第十一圖所討論的該空間-時間方式結合。第十三圖至第十四圖揭示根據物體動作以及樣本位移動作,用於混合像素的不同過濾技術。
第十三圖為根據本發明的一個具體實施例,用於根據取樣偏移方向來執行空間-時間過濾之方法步驟流程圖。雖然已經結合第一圖至第七D圖、第十圖和第十二圖的系統來描述該等方法步驟,不過精通技術人士將了解,設置來執行該等方法步驟(以任何順序)的任何系統都在本發明範疇內。
如所示,方法1300從步驟1302開始,其中裝置驅動程式103利用將該像素與往該當前訊框之內樣本位移方向相反方向內的相鄰像素之當前值混合,來計算一像素的第一顏色。裝置驅動程式103可利用實施如第十二圖內所述的類似技術來執行步驟1302。在步驟1304上,裝置驅動程式103利用將該像素的當前值與先前訊框內該像素之先前值混合,來計算第二顏色。
在步驟1306上,裝置驅動程式103決定是否有任何動作關聯於該像素。裝置驅動程式103可比較先前訊框來識別動作,如上面結合第十一圖所討論。若裝置驅動程式103偵測到動作,則方法1300前往步驟1308,其中裝置驅動程式103提高該像素的動作分數。然後方法1300前往步驟1310。在步驟1306上,若裝置驅動程式103並未偵測到動作,則方法1300前往步驟1312,其中裝置驅動程式103降低該像素的動作分數。然後 方法1300前往步驟1310。在步驟1310上,根據該第一顏色、第二顏色與該動作分數,裝置驅動程式103計算該像素的一顏色值。在一個具體實施例內,在步驟1310上執行的該操作包含根據該動作分數在該第一顏色與該第二顏色之間的內插。
裝置驅動程式103可重複執行方法1300,以便將該當前訊框之內的每一像素著色。如此,裝置驅動程式103可設置串流多重處理器310來執行任何與所有這種著色操作。運用此方式,裝置驅動程式103根據當前偵測的動作以及先前動作來過濾像素,同時也考慮樣本位移方向。在一個具體實施例內,裝置驅動程式103可根據該動作分數加重該第一顏色與該第二顏色,以便根據該動作分數達成該第一顏色與該第二顏色之間的平衡。結合第十三圖所描述的該等技術可適用於其中著色器取樣位置可設置成匹配覆蓋率取樣位置之場景。
第十四圖為根據本發明的一個具體實施例,用於根據偵測的動作來執行空間或時間過濾之方法步驟流程圖。雖然已經結合第一圖至第七D圖、第十圖和第十二圖的系統來描述該等方法步驟,不過精通技術人士將了解,設置來執行該等方法步驟(以任何順序)的任何系統都在本發明範疇內。
如所示,方法1400從步驟1402開始,其中裝置驅動程式103比較具有類似取樣圖案配置的先前訊框。在步驟1404上,裝置驅動程式103決定是否有任何動作關聯於一像素。若偵測到動作,則方法1400前往步驟1406,其中裝置驅動程式103提高該像素的動作分數。在步驟1408上,裝置驅動程式103根據動作分數,將該像素與在該樣本位移的相反方向內之相鄰像素混合。在一個具體實施例內,在步驟1408上執行的該混合步驟包含根據該動作分數的內插。
在步驟1404上,若並未偵測到動作,則方法1400前往步驟1410,其中裝置驅動程式103降低動作分數。在步驟1412上,裝置驅動程式103根據顛倒的動作分數,將該像素與先前訊框內的對應像素混合。該顛倒的動作分數可為例如1-(動作分數)或1/(動作分數)。在一個具體實施例內,在步驟1412上執行的該混合步驟包含根據該顛倒的動作分數之內插。
方法1400可套用來平衡像素與該相同訊框之內相鄰像素之混合,以及與連續訊框內對應像素之混合。在某些具體實施例內,當偵測到動作時,裝置驅動程式103也可混合沿著偵測邊緣的像素,以及混合像素來抵消樣本位移。例如:裝置驅動程式103可執行方法1100的步驟1112結合方法1400的執行步驟1408。結合第十四圖所描述的該等技術可適用於其中著色器取樣位置可設置成匹配覆蓋率取樣位置之場景。精通技術人士將了解,上述許多方法可用任何技術可行方式結合。
總結來說,一光柵單元設置成產生不同的取樣圖案給已知訊框之內的相鄰像素。此外,該光柵單元可調整訊框之間的該等取樣圖案。該光柵單元包含一索引單元,其選擇一取樣圖案表用於當前訊框。針對已知像素,該索引單元從該選取的取樣圖案表取得一取樣圖案。該取得的取樣圖案用來產生該像素的覆蓋率資訊,然後所有像素的該覆蓋率資訊用於產生一影像。然後該結果影像經過過濾來降低或移除取樣位置改變造成的假象。
所揭示技術的至少一項優點為每一像素只有N/M個取樣位置,跨M個訊框可產生N個覆蓋率取樣,產生品質與每一像素中N覆蓋率取樣一致的影像。如此,該有效多取樣模式可增加,而不用增加每像素的覆蓋取樣位置數。因此,所揭示技術並不會有傳統多取樣技術所伴隨負擔增加之問題。
許多具體實施例的描述已經為了說明而呈現,但非要將本發明受限在所公布形式中。在不脫離所描述具體實施例之範疇與精神的前提下,本技術之一般技術者將瞭解許多修正例以及變化例。
本具體實施例的態樣可具體實施為系統、方法或電腦程式產品。因此,本發明可為完整硬體具體實施例、完整軟體具體實施例(包含韌體、常駐軟體、微碼等)或軟體與硬體的組合具體實施例之樣態,在此通稱為「電路」、「模組」或「系統」。更進一步,本發明的樣態可採用具有媒體內具體實施電腦可讀取程式碼的一或多電腦可讀取媒體內具體實施之電腦程式產品之形式。
本說明書可運用任何一或多個電腦可讀取媒體的組合。該電 腦可讀取媒體可為電腦可讀取信號媒體或電腦可讀取儲存媒體。電腦可讀取媒體例如可為,但不受限於電、磁、光學、電磁、紅外線或半導體系統、設備或裝置或上述任何合適的組合。電腦可讀取儲存媒體的更多特定範例(非專屬清單)包含:具有一或多條線的電連接、可攜式電腦磁碟、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式唯讀記憶體(EPROM或快閃記憶體)、光纖、可攜式小型光碟唯讀記憶體(CD-ROM)、光學儲存裝置、磁性儲存裝置或前述任何合適的組合。在本文件的內文中,電腦可讀取儲存媒體可為:可包含或儲存程式,來讓指令執行系統、設備或裝置使用或相連之任何有形媒體。
上面藉由參考根據本發明具體實施例的方法、設備(系統)和電腦程式產品之流程圖和/或方塊圖來描述本發明樣態。吾人將瞭解,流程圖和/或方塊圖中的每一方塊以及流程圖和/或方塊圖中方塊的組合都可由電腦程式指令來實施。這些電腦程式指令可提供給一般用途電腦、特殊用途電腦或其他可程式資料處理設備的處理器來產生像是指令的機器,其透過電腦或其他可程式資料處理設備的處理器、用於實施流程圖和/或方塊圖中方塊所指定功能/動作之裝置所執行。這種處理器可為,並非限制,一般用途處理器、特殊用途處理器、應用專屬處理器或場可編輯。
圖式內的流程圖和方塊圖說明根據本發明許多具體實施例的系統、方法和電腦程式產品可能實施之架構、功能和操作。如此,流程圖或方塊圖內每一方塊都可代表模組、區段或程式碼部分,這部分程式碼可包括一或多個可執行指令來實施特定邏輯功能。吾人也應該注意,在某些替代實施當中,方塊內提到的功能可以不依照圖式內順序來執行。例如:兩連續顯示的方塊實際上可同時執行,或可顛倒順序執行,這取決於所牽涉到的功能。吾人也注意,使用執行特殊功能或動作的特殊用途硬體系統或特殊用途硬體與電腦指令的組合,實施方塊圖和/或流程圖的每一方塊以及方塊圖和/或流程圖內方塊的組合。
雖然上述指向本發明的具體實施例,不過可想出不背離本發明基本領域以及底下申請專利範圍的其他與進一步具體實施例。

Claims (22)

  1. 一種圖形子系統,包括:一第一取樣圖案表,其包括一第一複數個輸入;以及一索引單元,其設置成:產生一第一索引進入該第一取樣圖案表,該第一索引參考該第一複數個輸入內含的一第一輸入子集,以及從該第一取樣圖案表取得該第一輸入子集,其中一第一輸入被包括在該第一輸入子集內,該第一輸入指出在一第一訊框的一第一像素之內的一第一位置,該第一位置會產生一第一樣本。
  2. 如申請專利範圍第1項之圖形子系統,其中該索引單元更設置成決定與該第一訊框相關聯的一訊框編號,並且根據該訊框編號從複數個取樣圖案表中選擇該第一取樣圖案表。
  3. 如申請專利範圍第1項之圖形子系統,其中該索引單元更設置成接收與該第一像素相關聯的一組座標,並且根據至少該組座標的一部分來產生該第一索引。
  4. 如申請專利範圍第3項之圖形子系統,其中該組座標包括一X座標與一Y座標,並且該索引單元更設置成:解析來自該X座標的一或多個最低有效位元;解析來自該Y座標的一或多個最低有效位元;以及將來自該X座標的一或多個最低有效位元與來自該Y座標的一或多個最低有效位元結合,來產生該第一索引。
  5. 如申請專利範圍第1項之圖形子系統,其中該索引單元更設置成:產生一第二索引進入該第一取樣圖案表,該第二索引參考被包括在該第一複數個輸入內的一第二輸入子集;以及從該第一取樣圖案表取得該第二輸入子集,其中被包括在該第二輸入子集內的一第二輸入指出在該第一訊框的一第二像素之內,要產生一第二樣本之一第二位置。
  6. 如申請專利範圍第1項之圖形子系統,更包括一第二取樣圖案表,其包括一第二複數個輸入,其中該索引單元更設置成: 產生一第二索引進入該第二取樣圖案表,該第二索引參考被包括在該第二複數個輸入內的一第二輸入子集;以及從該第二取樣圖案表取得該第二輸入子集,其中被包括在該第二輸入子集內的一第二輸入指出在一第二訊框的一第二像素之內,要產生一第二樣本之一第二位置。
  7. 如申請專利範圍第6項之圖形子系統,其中該第一像素位於該第一訊框之內一第一組X-Y座標上,並且該第二像素位於該第二訊框之內該第一組X-Y座標上。
  8. 如申請專利範圍第6項之圖形子系統,其中該索引單元更設置成:產生一第三索引進入該第二取樣圖案表,其中該第三索引參考被包括在該第二複數個輸入內的一第三輸入子集;以及從該第二取樣圖案表取得該第三輸入子集,其中被包括在該第三輸入子集內的一第三輸入指出在該第二訊框的一第三像素之內,要產生一第三樣本之一第三位置。
  9. 如申請專利範圍第8項之圖形子系統,其中該第二像素位於該第二訊框之內一第二組X-Y座標上,並且該第三像素位於該第二訊框之內該第一組X-Y座標上。
  10. 如申請專利範圍第1項之圖形子系統,其中該第一樣本包括一覆蓋率樣本,並且其中連結至該圖形子系統的一著色器單元設置成在該第一位置上產生一著色器樣本給該第一像素,並且處理該著色器樣本來產生該第一像素的一顏色值。
  11. 一種用於產生像素樣本之電腦實施方法,該方法包括:產生一第一索引進入包括一第一複數個輸入的一第一取樣圖案表,其中該第一索引參考被包括在該第一複數個輸入內的一第一輸入子集,以及從該第一取樣圖案表取得該第一輸入子集,其中一第一輸入被包括在該第一輸入子集內,該第一輸入指出在一第一訊框的一第一像素之內的第一位置,該第一位置會產生一第一樣本。
  12. 如申請專利範圍第11項之電腦實施方法,更包括: 決定與該第一訊框相關聯的一訊框編號;以及根據該訊框編號,從複數個取樣圖案表當中選擇該第一取樣圖案表。
  13. 如申請專利範圍第11項之電腦實施方法,更包括:接收與該第一像素相關聯的一組座標;以及根據至少該組座標一部分來產生該第一索引。
  14. 如申請專利範圍第13項之電腦實施方法,其中該組座標包括一X座標與一Y座標,包更包括:解析來自該X座標的一或多個最低有效位元;解析來自該Y座標的一或多個最低有效位元;以及將來自該X座標的一或多個最低有效位元與來自該Y座標的一或多個最低有效位元結合,來產生該第一索引。
  15. 如申請專利範圍第11項之電腦實施方法,更包括:產生一第二索引進入該第一取樣圖案表,該第二索引參考被包括在該第一複數個輸入內的一第二輸入子集;以及從該第一取樣圖案表取得該第二輸入子集,其中被包括在該第二輸入子集內的一第二輸入指出在該第一訊框的一第二像素之內,要產生一第二樣本之一第二位置。
  16. 如申請專利範圍第11項之電腦實施方法,更包括:產生一第二索引進入包括一第二複數個輸入的一第二取樣圖案表,其中該第二索引參考被包括在該第二複數個輸入內的一第二輸入子集;以及從該第二取樣圖案表取得該第二輸入子集,其中被包括在該第二輸入子集內的一第二輸入指出在一第二訊框的一第二像素之內,要產生一第二樣本之一第二位置。
  17. 如申請專利範圍第16項之電腦實施方法,其中該第一像素位於該第一訊框之內一第一組X-Y座標上,並且該第二像素位於該第二訊框之內該第一組X-Y座標上。
  18. 如申請專利範圍第11項之電腦實施方法,更包括從一軟體應用程式接 收該等複數個取樣圖案表。
  19. 如申請專利範圍第18項之電腦實施方法,其中該軟體應用程式包括在該等複數個取樣圖案表內一些取樣圖案表,其反應一第一多訊框消鋸齒模式。
  20. 一種計算裝置,其包括:一圖形子系統,包括:一第一取樣圖案表,其包括一第一複數個輸入;以及一索引單元,其設置成:產生一第一索引進入該第一取樣圖案表,該第一索引參考被包括在該第一複數個輸入內的一第一輸入子集,以及從該第一取樣圖案表取得該第一輸入子集,其中一第一輸入被包括在該第一輸入子集內,該第一輸入指出在一第一訊框的一第一像素之內的一第一位置,該第一位置會產生一第一覆蓋率樣本。
  21. 如申請專利範圍第20項之計算裝置,更包括:一著色器單元,其連結至該圖形子系統並且設置成:產生一第一著色器樣本給該第一位置上的該第一像素,以及根據該第一著色器樣本,產生一第一顏色值給該第一像素。
  22. 如申請專利範圍第21項之計算裝置,其中該第一像素位於該第一訊框之內一第一組X-Y座標上,並且一第二像素位於一第二訊框之內該第一組X-Y座標上,並且其中該著色器單元更設置成:產生一第二著色器樣本給一第二位置上的該第二像素,以及根據該第二著色器樣本,產生一第二顏色值給該第二像素。
TW104129785A 2014-09-10 2015-09-09 利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒的一種圖形子系統、電腦實施方法及電腦裝置 TWI616846B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462048751P 2014-09-10 2014-09-10
US62/048,751 2014-09-10
US14/846,737 US10096086B2 (en) 2014-09-10 2015-09-05 Enhanced anti-aliasing by varying sample patterns spatially and/or temporally
US14/846,737 2015-09-05

Publications (2)

Publication Number Publication Date
TW201621810A TW201621810A (zh) 2016-06-16
TWI616846B true TWI616846B (zh) 2018-03-01

Family

ID=55358661

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104129785A TWI616846B (zh) 2014-09-10 2015-09-09 利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒的一種圖形子系統、電腦實施方法及電腦裝置

Country Status (4)

Country Link
US (1) US10096086B2 (zh)
CN (1) CN105405103B (zh)
DE (1) DE102015115232A1 (zh)
TW (1) TWI616846B (zh)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10147225B2 (en) * 2016-04-01 2018-12-04 Intel Corporation Method and apparatus for sampling pattern generation for a ray tracing architecture
CA2949383C (en) * 2016-11-22 2023-09-05 Square Enix, Ltd. Image processing method and computer-readable medium
TWI612800B (zh) * 2016-12-12 2018-01-21 瑞昱半導體股份有限公司 基於固定長度編碼之影像壓縮方法及裝置
CN108206955B (zh) * 2016-12-19 2020-06-12 瑞昱半导体股份有限公司 基于固定长度编码的影像压缩方法及装置
US10929707B2 (en) 2017-03-02 2021-02-23 Ricoh Company, Ltd. Computation of audience metrics focalized on displayed content
US10956495B2 (en) 2017-03-02 2021-03-23 Ricoh Company, Ltd. Analysis of operator behavior focalized on machine events
US10720182B2 (en) * 2017-03-02 2020-07-21 Ricoh Company, Ltd. Decomposition of a video stream into salient fragments
US10713391B2 (en) 2017-03-02 2020-07-14 Ricoh Co., Ltd. Tamper protection and video source identification for video processing pipeline
US10719552B2 (en) 2017-03-02 2020-07-21 Ricoh Co., Ltd. Focalized summarizations of a video stream
US10708635B2 (en) 2017-03-02 2020-07-07 Ricoh Company, Ltd. Subsumption architecture for processing fragments of a video stream
US10949463B2 (en) 2017-03-02 2021-03-16 Ricoh Company, Ltd. Behavioral measurements in a video stream focalized on keywords
US10956773B2 (en) 2017-03-02 2021-03-23 Ricoh Company, Ltd. Computation of audience metrics focalized on displayed content
US10949705B2 (en) 2017-03-02 2021-03-16 Ricoh Company, Ltd. Focalized behavioral measurements in a video stream
US10929685B2 (en) 2017-03-02 2021-02-23 Ricoh Company, Ltd. Analysis of operator behavior focalized on machine events
US10956494B2 (en) 2017-03-02 2021-03-23 Ricoh Company, Ltd. Behavioral measurements in a video stream focalized on keywords
US10943122B2 (en) 2017-03-02 2021-03-09 Ricoh Company, Ltd. Focalized behavioral measurements in a video stream
US10572966B2 (en) 2017-04-01 2020-02-25 Intel Corporation Write out stage generated bounding volumes
US10395623B2 (en) 2017-04-01 2019-08-27 Intel Corporation Handling surface level coherency without reliance on fencing
US10152822B2 (en) 2017-04-01 2018-12-11 Intel Corporation Motion biased foveated renderer
US10628907B2 (en) 2017-04-01 2020-04-21 Intel Corporation Multi-resolution smoothing
US10591971B2 (en) 2017-04-01 2020-03-17 Intel Corporation Adaptive multi-resolution for graphics
US10089230B1 (en) 2017-04-01 2018-10-02 Intel Corporation Resource-specific flushes and invalidations of cache and memory fabric structures
US10223773B2 (en) 2017-04-01 2019-03-05 Intel Corporation On demand MSAA resolve during lens correction and/or other post-processing phases
US10453241B2 (en) 2017-04-01 2019-10-22 Intel Corporation Multi-resolution image plane rendering within an improved graphics processor microarchitecture
US10157493B2 (en) 2017-04-01 2018-12-18 Intel Corporation Adaptive multisampling based on vertex attributes
US10489915B2 (en) 2017-04-01 2019-11-26 Intel Corporation Decouple multi-layer render fequency
US10242494B2 (en) 2017-04-01 2019-03-26 Intel Corporation Conditional shader for graphics
US10572258B2 (en) 2017-04-01 2020-02-25 Intel Corporation Transitionary pre-emption for virtual reality related contexts
US10706612B2 (en) 2017-04-01 2020-07-07 Intel Corporation Tile-based immediate mode rendering with early hierarchical-z
US10424097B2 (en) 2017-04-01 2019-09-24 Intel Corporation Predictive viewport renderer and foveated color compressor
US10109078B1 (en) 2017-04-10 2018-10-23 Intel Corporation Controlling coarse pixel size from a stencil buffer
US10319064B2 (en) 2017-04-10 2019-06-11 Intel Corporation Graphics anti-aliasing resolve with stencil mask
US10152632B2 (en) 2017-04-10 2018-12-11 Intel Corporation Dynamic brightness and resolution control in virtual environments
US11030713B2 (en) 2017-04-10 2021-06-08 Intel Corporation Extended local memory including compressed on-chip vertex data
US10373365B2 (en) 2017-04-10 2019-08-06 Intel Corporation Topology shader technology
US11106274B2 (en) 2017-04-10 2021-08-31 Intel Corporation Adjusting graphics rendering based on facial expression
US10497340B2 (en) 2017-04-10 2019-12-03 Intel Corporation Beam scanning image processing within an improved graphics processor microarchitecture
US10235735B2 (en) 2017-04-10 2019-03-19 Intel Corporation Graphics processor with tiled compute kernels
US10725929B2 (en) 2017-04-10 2020-07-28 Intel Corporation Graphics memory extended with nonvolatile memory
US10235794B2 (en) 2017-04-10 2019-03-19 Intel Corporation Multi-sample stereo renderer
US10460415B2 (en) 2017-04-10 2019-10-29 Intel Corporation Contextual configuration adjuster for graphics
US10204394B2 (en) 2017-04-10 2019-02-12 Intel Corporation Multi-frame renderer
US10204393B2 (en) 2017-04-10 2019-02-12 Intel Corporation Pre-pass surface analysis to achieve adaptive anti-aliasing modes
US10719902B2 (en) 2017-04-17 2020-07-21 Intel Corporation Thread serialization, distributed parallel programming, and runtime extensions of parallel computing platform
US10192351B2 (en) 2017-04-17 2019-01-29 Intel Corporation Anti-aliasing adaptive shader with pixel tile coverage raster rule system, apparatus and method
US10846918B2 (en) 2017-04-17 2020-11-24 Intel Corporation Stereoscopic rendering with compression
US10672175B2 (en) 2017-04-17 2020-06-02 Intel Corporation Order independent asynchronous compute and streaming for graphics
US10430147B2 (en) 2017-04-17 2019-10-01 Intel Corporation Collaborative multi-user virtual reality
US10467796B2 (en) 2017-04-17 2019-11-05 Intel Corporation Graphics system with additional context
US10521876B2 (en) 2017-04-17 2019-12-31 Intel Corporation Deferred geometry rasterization technology
US10347039B2 (en) 2017-04-17 2019-07-09 Intel Corporation Physically based shading via fixed-functionality shader libraries
US10290141B2 (en) 2017-04-17 2019-05-14 Intel Corporation Cloud based distributed single game calculation of shared computational work for multiple cloud gaming client devices
US10242486B2 (en) 2017-04-17 2019-03-26 Intel Corporation Augmented reality and virtual reality feedback enhancement system, apparatus and method
US10452552B2 (en) 2017-04-17 2019-10-22 Intel Corporation Memory-based dependency tracking and cache pre-fetch hardware for multi-resolution shading
US10896657B2 (en) 2017-04-17 2021-01-19 Intel Corporation Graphics with adaptive temporal adjustments
US10401954B2 (en) 2017-04-17 2019-09-03 Intel Corporation Sensory enhanced augmented reality and virtual reality device
US10347357B2 (en) 2017-04-24 2019-07-09 Intel Corporation Post-packaging environment recovery of graphics on-die memory
US10643374B2 (en) 2017-04-24 2020-05-05 Intel Corporation Positional only shading pipeline (POSH) geometry data processing with coarse Z buffer
US10109039B1 (en) 2017-04-24 2018-10-23 Intel Corporation Display engine surface blending and adaptive texel to pixel ratio sample rate system, apparatus and method
US10242496B2 (en) 2017-04-24 2019-03-26 Intel Corporation Adaptive sub-patches system, apparatus and method
US10402933B2 (en) 2017-04-24 2019-09-03 Intel Corporation Adaptive smart grid-client device computation distribution with grid guide optimization
US10251011B2 (en) 2017-04-24 2019-04-02 Intel Corporation Augmented reality virtual reality ray tracing sensory enhancement system, apparatus and method
US10409614B2 (en) * 2017-04-24 2019-09-10 Intel Corporation Instructions having support for floating point and integer data types in the same register
US10728492B2 (en) 2017-04-24 2020-07-28 Intel Corporation Synergistic temporal anti-aliasing and coarse pixel shading technology
US10755383B2 (en) * 2017-09-29 2020-08-25 Apple Inc. Multi-space rendering with configurable transformation parameters
US10991079B2 (en) * 2018-08-14 2021-04-27 Nvidia Corporation Using previously rendered scene frames to reduce pixel noise
CN113396400A (zh) 2019-03-15 2021-09-14 英特尔公司 用于针对高速缓存操作提供层级开放划分扇区和可变扇区大小的系统和方法
TWI717797B (zh) * 2019-08-05 2021-02-01 曹文峰 圖騰形成系統、方法及其設備、產品與電腦可讀取儲存裝置
DE102021103367A1 (de) 2021-02-12 2022-08-18 Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr Erzeugung realistischer bildbasierter Daten zum Entwickeln und Testen von Fahrerassistenzsystemen

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000033256A1 (en) * 1998-11-30 2000-06-08 Quantum3D, Inc. Pixel offset antialiasing
US6720975B1 (en) * 2001-10-17 2004-04-13 Nvidia Corporation Super-sampling and multi-sampling system and method for antialiasing
US6999100B1 (en) * 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US7446780B1 (en) * 2003-08-29 2008-11-04 Nvidia Corporation Temporal antialiasing in a multisampling graphics pipeline
US7868901B1 (en) * 2004-11-02 2011-01-11 Nvidia Corporation Method and system for reducing memory bandwidth requirements in an anti-aliasing operation

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6894701B2 (en) 2002-05-14 2005-05-17 Microsoft Corporation Type size dependent anti-aliasing in sub-pixel precision rendering systems
JP4456003B2 (ja) 2002-12-20 2010-04-28 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 低コスト・スーパーサンプリング・ラスタライゼーション
DE60231523D1 (de) 2002-12-20 2009-04-23 Ericsson Telefon Ab L M Kostengünstige supersampling-Aufrasterung
EP1480171B1 (en) 2003-05-22 2016-11-02 Telefonaktiebolaget LM Ericsson (publ) Method and system for supersampling rasterization of image data
CN101061517A (zh) 2004-09-20 2007-10-24 艾利森电话股份有限公司 通过像素采样抗锯齿的方法和系统
US7348996B2 (en) 2004-09-20 2008-03-25 Telefonaktiebolaget Lm Ericsson (Publ) Method of and system for pixel sampling
US7612783B2 (en) * 2006-05-08 2009-11-03 Ati Technologies Inc. Advanced anti-aliasing with multiple graphics processing units
US8605086B2 (en) 2008-07-03 2013-12-10 Nvidia Corporation Hybrid multisample/supersample antialiasing
JP5196315B2 (ja) 2008-11-07 2013-05-15 日本光電工業株式会社 生体信号描画装置及び生体信号描画方法
US8587581B2 (en) * 2009-10-15 2013-11-19 Nvidia Corporation Order-preserving distributed rasterizer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000033256A1 (en) * 1998-11-30 2000-06-08 Quantum3D, Inc. Pixel offset antialiasing
US6999100B1 (en) * 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US6720975B1 (en) * 2001-10-17 2004-04-13 Nvidia Corporation Super-sampling and multi-sampling system and method for antialiasing
US7446780B1 (en) * 2003-08-29 2008-11-04 Nvidia Corporation Temporal antialiasing in a multisampling graphics pipeline
US7868901B1 (en) * 2004-11-02 2011-01-11 Nvidia Corporation Method and system for reducing memory bandwidth requirements in an anti-aliasing operation

Also Published As

Publication number Publication date
CN105405103A (zh) 2016-03-16
US20160071242A1 (en) 2016-03-10
TW201621810A (zh) 2016-06-16
US10096086B2 (en) 2018-10-09
DE102015115232A1 (de) 2016-03-10
CN105405103B (zh) 2018-08-24

Similar Documents

Publication Publication Date Title
TWI616846B (zh) 利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒的一種圖形子系統、電腦實施方法及電腦裝置
US10957078B2 (en) Enhanced anti-aliasing by varying sample patterns spatially and/or temporally
CN112085658B (zh) 用于非均匀帧缓冲器栅格化的装置和方法
US10311628B2 (en) Piecewise linear irregular rasterization
US8704830B2 (en) System and method for path rendering with multiple stencil samples per color sample
US10417817B2 (en) Supersampling for spatially distributed and disjoined large-scale data
US8941676B2 (en) On-chip anti-alias resolve in a cache tiling architecture
US9177413B2 (en) Unique primitive identifier generation
JP2020113301A (ja) 非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整
US9734548B2 (en) Caching of adaptively sized cache tiles in a unified L2 cache with surface compression
US9530189B2 (en) Alternate reduction ratios and threshold mechanisms for framebuffer compression
TWI645371B (zh) 在上游著色器內設定下游著色狀態
BR112019012641A2 (pt) renderização foveada em arquiteturas em bloco
TW201618041A (zh) 來自片段著色器程式之樣本遮罩的控制
US10083514B2 (en) Stencil-then-cover path rendering with shared edges
CN107392836B (zh) 使用图形处理管线实现的立体多投影
TW201432609A (zh) 已分配的拼貼快取
US10607390B2 (en) Techniques for tiling compute work with graphics work
US20230269391A1 (en) Adaptive Pixel Sampling Order for Temporally Dense Rendering
US20180374185A1 (en) Techniques for maintaining atomicity and ordering for pixel shader operations
US9767600B2 (en) Target independent rasterization with multiple color samples
US10019776B2 (en) Techniques for maintaining atomicity and ordering for pixel shader operations