專利名稱:用于圖像數(shù)據(jù)的超采樣光柵化的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及圖形處理,更具體地,涉及用于以低計算代價高幀速率地產(chǎn)生高質(zhì)量抗鋸齒圖形圖片的方法和裝置。
背景技術(shù):
從計算機圖形學(xué)的早期起,鋸齒就已經(jīng)成為在顯示器上呈現(xiàn)靜止或運動圖像時的一個問題。
解決鋸齒圖片的低視覺質(zhì)量的一個方法是使用所謂的超采樣(supersampling)。超采樣將提供優(yōu)質(zhì)的畫質(zhì),但是由于計算負(fù)荷重而具有低幀速率的缺點。更具體地,超采樣以比顯示在屏幕上的最終分辨率高的分辨率渲染圖片。這是通過對用于要顯示的各像素的多個子像素樣本進行渲染而完成的,即,各像素的值將是這些子像素值的加權(quán)和。例如,各個所顯示的像素可能包括像素內(nèi)的一組四個子像素樣本的過濾加權(quán)和。這意味著,與每個像素一個樣本相比,圖形硬件對于每個顯示像素必須處理四倍多的樣本。
專利文獻(xiàn)WO-00/33256公開了一種使用超采樣方案的系統(tǒng)。各像素被分割為或多或少精細(xì)構(gòu)建的(fine-meshed)網(wǎng)格,該網(wǎng)格定義了采樣點可能位于其中的子像素網(wǎng)格。這些子像素采樣點可以以多種不同結(jié)構(gòu)排列在像素邊緣內(nèi)部。然后對于每個要渲染的像素重復(fù)此采樣點結(jié)構(gòu)圖案。每個像素的最終值包括位于根據(jù)上述的這些子像素中的三個或更多個樣本的加權(quán)和。該方法的缺點是因為對于每個像素的處理,必須計算并從存儲器取出三個或更多個樣本,所以需要相當(dāng)大的計算和存儲能力。
為了降低產(chǎn)生抗鋸齒像素的計算負(fù)荷,可以使用稱為多級采樣方案的經(jīng)修改的超采樣方案。多級采樣方案的關(guān)鍵思想是在樣本之間共享計算。此外,多級采樣方案還可以在相鄰像素之間共享樣本(注意,這不同于共享計算)。后一多級采樣方案稱為樣本共享方案。
NVIDIA Corporation,Santa Clara,USA的GeForce3圖形處理單元提供了支持多級采樣以及像素之間的子樣本共享的硬件。該多級采樣方案稱為“Quincunx”,并以“5點”的形式將子像素采樣圖案呈現(xiàn)在小片(die)上,即,使用5個子像素樣本來計算最終像素的值。然而,由于采樣位置的放置,每個像素只需要計算兩個樣本;其他采樣值從相鄰像素獲得。中央的子像素樣本被賦予權(quán)重0.5,而周邊的子像素樣本被分別賦予權(quán)重0.125。在隨后步驟中,按照與常規(guī)超采樣方案相同的方式對子像素樣本進行過濾。
與Quincunx方案有關(guān)的詳細(xì)信息可以在NVIDIA Corporation的“Technical Brief,HRAAHigh-Resolution Antialiasing throughMultisampling”中找到。該文獻(xiàn)例如可以從NVIDIA Corporation的網(wǎng)站“www.nvidia.com”中找到。
諸如移動無線終端、移動電話、電子雜志、智能電話等的便攜式電子設(shè)備具有受限的電池容量。與便攜式電子設(shè)備中可用的電池容量相比,存儲訪問相對耗電些。同時,這種設(shè)備的存儲容量通常是受限的。因此,通常優(yōu)選地,盡可能地使圖形處理高效,其中對于提供抗鋸齒圖片而言,存儲訪問要盡可能的低。雖然Quincunx方案比現(xiàn)有技術(shù)中已知的其他超采樣或多級采樣方案都更為有效,但是其仍然需要相當(dāng)?shù)挠嬎隳芰Α?br>
因此,在現(xiàn)代電子圖形系統(tǒng)中,產(chǎn)生抗鋸齒像素的計算負(fù)荷是個問題。當(dāng)利用抗鋸齒方案來以降低的計算能力和受限的存儲容量在設(shè)備上產(chǎn)生運動圖片時,該問題尤為嚴(yán)重。
發(fā)明內(nèi)容
本發(fā)明的一個目的是提供一種用于使用低計算力來產(chǎn)生高質(zhì)量抗鋸齒圖片的方法和設(shè)備,其中與已知現(xiàn)有技術(shù)相比,至少存儲器需求降低了。
根據(jù)本發(fā)明的第一方面,該目的是通過覆蓋一組像素的采樣圖案來實現(xiàn)的,其中將各像素與采樣點的圖案相關(guān)聯(lián),其中所述點中的第一個被設(shè)置在大概該像素的角點處。所述采樣點中的第二個和第三個可以被設(shè)置在該像素的不與第一樣本的角點相交的邊界處。各像素的采樣點圖案是相鄰像素的圖案的鏡像(mirror image),并且不同于該相鄰像素的圖案。
通過在該像素的角點以及兩個邊界處設(shè)置樣本,必須從存儲器取出最多三個樣本來確定像素的最終值。此外,由于將這些樣本設(shè)置在在該像素的邊界處,并且在四個像素之間共享一個樣本,而每兩個像素之間共享兩個樣本,所以對于該組中的大部分像素平均只需計算1.25個樣本。
根據(jù)本發(fā)明的第二方面,公開了一種在抗鋸齒系統(tǒng)中使用的用于創(chuàng)建覆蓋一組像素的采樣圖案的方法。各像素具有采樣點的圖案,該圖案定義了相鄰像素的圖案的鏡像并且不同于該相鄰像素的圖案。第一采樣點設(shè)置在該像素的角點處。
第二和第三采樣點可以被定義在該像素的不與第一樣本的角點相交的邊界處。
根據(jù)本發(fā)明的第三方面,按照本發(fā)明的所述方法創(chuàng)建了一種抗鋸齒圖像。
根據(jù)本發(fā)明的第四方面,公開了一種抗鋸齒系統(tǒng),其包括GPU(圖形處理單元),該GPU適于定義像素的采樣點的圖案。該GPU適于定義各像素的采樣點圖案,以使得其為相鄰像素的圖案的鏡像并且不同于該相鄰像素的圖案。該GPU還適于將第一采樣點定義在該像素的角點處。
該GPU可以利用軟件和/或硬件來實現(xiàn)。
根據(jù)本發(fā)明的第五方面,提供了一種計算機程序產(chǎn)品。所述產(chǎn)品與可操作地連接到GPU的CPU(中央處理單元)關(guān)聯(lián),以定義像素的采樣點的圖案。該產(chǎn)品包括用于執(zhí)行本發(fā)明的方法的程序代碼部分。
本發(fā)明可以在用于處理例如靜止圖像或者靜止圖像的視頻序列的抗鋸齒系統(tǒng)中使用。
該計算機程序產(chǎn)品可以在計算機可讀介質(zhì)上實現(xiàn)。
本發(fā)明的優(yōu)點在于只需取出三個樣本來計算像素的最終值。此外,將一個樣本置于角點處意味著該樣本可以在一組像素中的多達(dá)四個像素之間共享。與現(xiàn)有技術(shù)的多級采樣方案相比,根據(jù)本發(fā)明的采樣圖案降低了計算負(fù)荷以及存儲器需求和存儲器帶寬。
在從屬權(quán)利要求中定義了本發(fā)明的其他實施例。
應(yīng)當(dāng)強調(diào),當(dāng)在本說明書中使用時,“包括”一詞用于指存在所述特征、整體(integer)、步驟或組件,但不排除存在以及添加一個或更多個其他特征、整體、步驟、組件或者它們的組。
根據(jù)對本發(fā)明多個實施例的以下說明,本發(fā)明的其他目的、特征以及優(yōu)點將變得顯現(xiàn),其中將參照附圖更具體地說明本發(fā)明的各方面,圖中圖1是示出用于創(chuàng)建抗鋸齒圖片的圖形系統(tǒng)的示意框圖;圖2a-d是示出根據(jù)本發(fā)明的子像素采樣點的計算的示意圖;圖3是根據(jù)本發(fā)明的鏡像的示意性例示圖;圖4是根據(jù)本發(fā)明的一組像素的示意性例示圖;圖5a-b是根據(jù)本發(fā)明的用于產(chǎn)生抗鋸齒圖片的方法的流程圖;圖6a-b是與現(xiàn)有技術(shù)方案相比根據(jù)本發(fā)明的像素值的計算的示意性例示圖;以及圖7是無抗鋸齒的現(xiàn)有技術(shù)方案與根據(jù)本發(fā)明的抗鋸齒方案之間的圖形比較。
具體實施例方式
圖1是用于繪制線或多邊形的系統(tǒng)的示例的框圖。CPU(中央處理單元)201通過數(shù)據(jù)總線203連接到存儲器202。存儲器202可以包括由系統(tǒng)運行的計算機可讀指令,如應(yīng)用程序的代碼部分。應(yīng)用程序可以是計算機游戲或者CAD(計算機輔助設(shè)計)程序。CPU 201從存儲器202取出指令,并執(zhí)行這些指令以進行特定任務(wù)。CPU 201的任務(wù)可以是對GPU 204(圖形處理單元)提供與應(yīng)繪制在顯示器205上的對象相關(guān)的信息。GPU204可以設(shè)為分立的硬件組件,如處理器、DSP(數(shù)字信號處理器)、ASIC(專用集成電路)、FGPA(現(xiàn)場可編程門陣列)、硬連線邏輯等。另選地,GPU 204是利用軟件和硬件的組合實現(xiàn)的,或者其可以按軟件提供,并可以由CPU 201來執(zhí)行。GPU 204連接到數(shù)據(jù)總線203。另選地,或者另外地,當(dāng)要在CPU 201與GPU 204之間傳輸大量信息的情況下,通過單獨的數(shù)據(jù)總線206(其可以為高速數(shù)據(jù)總線)將GPU 204連接到CPU 201。從而,該單獨數(shù)據(jù)總線206上的數(shù)據(jù)傳輸將不會干擾常規(guī)數(shù)據(jù)總線203上的數(shù)據(jù)業(yè)務(wù)量。
顯示存儲器207連接到數(shù)據(jù)總線203,并存儲從GPU 204發(fā)送的與應(yīng)在顯示器205上繪制的圖片(幀)相關(guān)的信息。顯示存儲器包括用于存儲各子像素樣本的信息的采樣緩沖器207a,以及顏色緩沖器207b。顏色緩沖器207b保存在完成了圖像渲染之后要在顯示器205上顯示的像素的顏色。由于CPU 201與GPU 204之間的互連,顯示存儲器207可以通過單獨的高速總線(未示出)直接連接到GPU 204。顯示存儲器207還可以構(gòu)成存儲器202的一部分。由于GPU 204和顯示存儲器207通常用于產(chǎn)生運動圖像,所以期望這兩個單元之間的鏈路盡可能得快,并且不會阻塞數(shù)據(jù)總線203上的正常業(yè)務(wù)量。
顯示存儲器207通過共享數(shù)據(jù)總線203或者單獨的高速總線209連接到VDAC 208(視頻數(shù)模轉(zhuǎn)換器)。VDAC 208從顏色緩沖器207b讀取信息,并將其轉(zhuǎn)換成模擬信號,例如,RGB(紅、綠、藍(lán))復(fù)合信號,該模擬信號被提供給顯示器205以在屏幕上繪制各個像素。
如上所述,使用了多種不同的技術(shù)來產(chǎn)生線和多邊形的抗鋸齒表示。圖2a-2d示出了根據(jù)本發(fā)明的多級采樣方案的變型例,該變型例對于各像素301、302、311、312包括三個子像素樣本。這些子像素采樣位置或采樣點303-308、313-318位于像素301、302、311、312的邊界處。這些邊界用作樣本共享的鏡面(mirror plane)。如上所述,這使得可以在顯示存儲器207中進行不同像素301、302、311、312之間的樣本共享。
采樣位置303-308、313-318中的至少一個位于各像素301、302、311、312的角點?!拔挥诮屈c”一詞在本說明中使用時是指,樣本大約設(shè)置在像素的兩個相交邊界的角點處。但是,角點樣本也可以被設(shè)置為相對于實際角點略微偏移,只要該角點樣本可以用于計算最多四個像素值。對于各具體實現(xiàn)而言,必須對實現(xiàn)充分結(jié)果而可以接受的偏移進行測試和評估。
在圖2a-d的實施例中,針對像素301、302、311、312的兩個邊界的角點定義了第一子像素采樣位置。針對像素301、302、311、312的不與該角點子像素樣本相交的各邊界定義了第二和第三子像素采樣位置。在圖2a-d中,各像素的第二和第三樣本位于兩個角點之間的邊界的中央。然而,第二和第三樣本可以位于該邊界上的任何位置處,只要該樣本可以用于計算兩個相鄰像素的值。必須在各具體實現(xiàn)中對邊界上的實際位置進行測試和評估。而且,在圖2a-d中,第二和第三樣本按距離一角點相同距離的方式位于邊界上。然而,對于第二和第三樣本而言,距離角點的距離可以不同,并且必須在各具體實現(xiàn)中對該距離進行測試和評估。
各樣本被賦予權(quán)重1/3,即,權(quán)重之和等于1。從而,另選的權(quán)重分布為對于第一樣本為0.2,對于第二和第三樣本為0.4。在本發(fā)明的范圍內(nèi)也可以采用其他權(quán)重,并且必須在各具體情況下對這些權(quán)重進行測試和評估。
在圖2a-2d中,在像素301、302、311、312上疊加有網(wǎng)格,并且該網(wǎng)格定義了角點處的可能采樣點,并且無論如何,該網(wǎng)格與沒有和像素301、302、311、312的所述角點相交的邊界相交。在圖2a-2d中分別示出了用于確定各像素的精確采樣點圖案的示例等式。
另選地,在沿任意方向平移采樣圖案的情況下,可以由一個或更多個鏡面代替上述像素邊界。從而,這些鏡面通常將平行于像素301、302、311、312的邊界,并且之間的間隔等于像素邊界之間的距離。例如,可以將采樣圖案少量地向左平移,其中子像素采樣位置不再位于像素的邊界上。在這種情況下,仍然可以定義用于創(chuàng)建根據(jù)本發(fā)明的采樣圖案的一個或更多個鏡面。通過以下結(jié)合圖3的討論,這將變得明顯。
按每個鏡面處一個采樣點的方式來設(shè)置采樣位置303-308、313-318,將打破結(jié)構(gòu)的對稱性,這將增加垂直線附近和水平線附近的抗鋸齒效果。
圖3示出了本發(fā)明的一個特征。根據(jù)以上說明,最左邊的像素401包括角點處的一個子像素采樣位置403以及像素401的各邊界上的兩個子像素采樣位置404-405。在以下說明中,將該子像素采樣結(jié)構(gòu)稱為“圖案A”。相應(yīng)地,將呈現(xiàn)作為“圖案A”的鏡像的子像素采樣結(jié)構(gòu)的第二像素402稱為“圖案B”。從圖3可以看出,根據(jù)以上說明,最右上部的像素402中的子像素采樣位置405-407對應(yīng)于圖案B的位置。通過一起檢查圖案A和圖案B的結(jié)構(gòu),顯見,圖案B的子像素采樣位置405-407是圖案A中的對應(yīng)位置403-405的鏡像。圖案A在像素401的右垂直邊界408處被反射,從而形成了像素402的圖案B。由此,圖案B是圖案A的鏡像。
圖案A和圖案B的子像素采樣位置也可以沿著它們各自的水平底邊界409被鏡像。在下文中,當(dāng)圖案A沿著其水平底邊界被鏡像時,呈現(xiàn)作為圖案A的鏡像的子像素采樣結(jié)構(gòu)的第三像素411,被稱為“圖案C”。圖案C具有子像素采樣位置404、423-424,其中所述位置之一是與圖案A共享的。下文中,當(dāng)圖案B沿著其水平底邊界409被鏡像時,呈現(xiàn)作為圖案B的鏡像的子像素采樣結(jié)構(gòu)的第四像素412,被稱為“圖案D”。圖案D具有子像素采樣位置406、424-425,其中一個樣本是與圖案B共享的,另一個樣本是與圖案C共享的。
根據(jù)上述說明,通過沿著垂直邊界408對子像素采樣位置403-405的位置進行鏡像,可以在兩個像素401、402之間共享樣本405,并且依然打破結(jié)構(gòu)的對稱性,并實現(xiàn)更好的抗鋸齒結(jié)果。本發(fā)明的采樣位置結(jié)構(gòu)的另一特征是對于像素的每個子像素行和列,只存在一個樣本。在例如Quincunx中,對于最上一行存在兩個樣本。同時,如下所述,可以在四個像素之間共享一個角點樣本。
圖4以包括9個像素501-509的3×3像素結(jié)構(gòu)示出了根據(jù)本發(fā)明的抗鋸齒方案。最左上部的第一像素501包括圖案A結(jié)構(gòu)中的三個子像素采樣位置510-512。第一像素501右側(cè)的第二像素502包括圖案B結(jié)構(gòu)中的三個子像素采樣位置512-514,這些子像素采樣位置在最左上部的像素501的右邊界處被鏡像。此外,第三像素503包括圖案A結(jié)構(gòu)中的三個子像素采樣位置514-516。從圖4可以看出,在最上行像素501-503中,在像素對501-502以及像素對502-503之間分別共享一個子像素采樣位置512以及一個子像素采樣位置514。
下一行開始于呈現(xiàn)子像素采樣位置511、517-518的圖案C結(jié)構(gòu)的第四像素504。在第四像素504與上一行上的第一像素501之間共享采樣位置511。第二行上的下一像素即第五像素505包括圖案D結(jié)構(gòu)中的三個子像素采樣位置513、518-519。第五像素505與上一行上的第二像素502共享一個采樣點513,并與左邊的第四像素504共享一個采樣點518。這同樣適用于第二行上的最右邊的具有三個子采樣位置515、519-520的第六像素506,該第六像素506與相鄰的像素503、505共享兩個采樣點515、519。
第三行開始于呈現(xiàn)子像素采樣位置517、521-522的圖案A結(jié)構(gòu)的第七像素507。第七像素507與上一行的第四像素504之間共享采樣位置517。第三行上的下一像素即第八像素508包括圖案B結(jié)構(gòu)中的三個子像素采樣位置519、522-523。第八像素508與上一行上的第五像素505共享一個采樣點519,并與左邊的第七像素507共享一個采樣點522。這同樣適用于第三行上的最右邊的具有三個子采樣位置519、524-525的第九像素509,該第九像素509與上一行的相鄰的第六像素506共享一個采樣點519。
通過檢查圖4,顯見,除了最上行和最左列之外的像素角點處設(shè)置的所有子像素采樣位置都被在四個像素之間共享。因此,角點子像素樣本中的大部分(對于較大的像素網(wǎng)格而言)只需針對四個像素計算一次,其中計算代價是每個像素0.25。兩個像素之間共享的在與角點像素的邊界不相交的邊界上設(shè)置的子像素采樣位置只需針對兩個相鄰像素計算一次。由此,對于這些邊界像素的計算代價為每個像素0.5。
結(jié)果,利用本發(fā)明的鏡像方案,為了確定像素501-509的最終值,顯示器205上的除了最上邊和最左邊像素501-504、507之外的所有像素平均需要的計算量僅為1.25(0.25+0.5+0.5=1.25)個新子像素采樣位置值。另選地,除了最右邊列和最下邊行之外的所有像素只需1.25個樣本。與必須計算至少兩個子像素樣本來確定像素的最終值的已知多級采樣結(jié)構(gòu)相比,這是一個顯著的改進。
通過從左到右掃描各線來對像素中的采樣位置進行遍歷。另選地,可以每隔一線改變掃描方向,從而更為有效地利用存儲器。應(yīng)當(dāng)理解,可以與根據(jù)本發(fā)明的多級采樣方案相結(jié)合地實現(xiàn)任何遍歷方案。
利用根據(jù)本發(fā)明的多級采樣方案,最多只需訪問顯示存儲器207三次來計算像素的最終值。然而,通過提供諸如片上高速緩沖存儲器的附加的小而快速的存儲器(未示出)來臨時存儲在像素值的一個或多個隨后計算中需要的樣本,可以將對于顯示存儲器207的必要訪問減少到1.25。通過與Quicunx方案一起使用該方法,需要訪問存儲器至少兩次來計算像素的最終值。這是顯著的不同,這是因為過濾致使存儲器帶寬使用的成本非常高。
在又一另選實施例中,可以利用甚至更小的附加存儲器(未示出)來只存儲一個樣本,即,用于計算第一像素的值并用于后續(xù)像素的值的計算的樣本。參照圖3,通過從顯示存儲器207取出樣本403-405,計算出像素401的最終值。然后,將樣本405臨時存儲在該附加存儲器中。為了計算像素402的最終值,只需從顯示存儲器207取出樣本406-407,而從該附加存儲器取出樣本405。結(jié)果,只需訪問顯示存儲器207兩次來計算大像素網(wǎng)格(如移動終端的176×174像素網(wǎng)格)的大部分像素。通過與Quicunx方案一起使用該方法,需要訪問顯示存儲器3次,并且訪問附加存儲器兩次,來計算像素的最終值。
圖5a是示出根據(jù)本發(fā)明一個實施例的用于產(chǎn)生高質(zhì)量抗鋸齒圖片的方法的流程圖。在步驟610中,CPU運行應(yīng)用程序(例如,計算機游戲)并產(chǎn)生要轉(zhuǎn)換為顯示器上的2維呈現(xiàn)的3維對象(通常為三角形形式的多邊形)。
接下來,在步驟620中,CPU或GPU/硬件計算影響對象在顯示器上的不同視覺參數(shù),如照射、剪輯、轉(zhuǎn)換、投影等。由于在計算機圖形學(xué)中創(chuàng)建3維對象時通常使用三角形,所以最后計算三角形的頂點的像素坐標(biāo)。
在步驟630中,CPU或GPU/硬件204在該多邊形上內(nèi)插紋理坐標(biāo),以確保獲得該紋理的正確投影。CPU 201或GPU/硬件204還可以內(nèi)插一個或更多個顏色,另一組紋理坐標(biāo)、煙霧等。還進行Z緩沖測試,并確保最終像素獲得正確的顏色。
圖5b是示出圖5a中的步驟630的更為詳細(xì)的流程圖。為了增加圖5b中的流程圖的可理解性,還參照圖6a。
步驟631是CPU 201或GPU/硬件204計算在整個多邊形701上使用的內(nèi)插數(shù)據(jù)的多邊形(例如,三角形)建立階段。
在步驟632中進行掃描轉(zhuǎn)換,其中CPU或GPU/硬件識別出處于多邊形701的邊緣705內(nèi)的像素703或采樣點704。有很多種不同方式來進行這種識別。一種簡單方法是逐行掃描各水平行。
在步驟633中,確定各像素的采樣點圖案,其中提供第一、第二和第三樣本,使得該采樣點圖案是相鄰像素圖案的鏡像并且不同于該相鄰像素圖案。同時,在該樣本的角點處定義第一樣本,并在該像素的與第一樣本的角點不相交的各邊界上定義第二和第三樣本。
所有可見采樣點704都轉(zhuǎn)到步驟634,其中通過紋理和內(nèi)插顏色來計算各可見樣本的顏色。將各樣本的顏色寫入樣本緩沖器207a。在處理了該圖片的所有多邊形之后,采樣緩沖器207a將包含高分辨率格式的圖片(對于最終圖像的每個像素為平均1.25個樣本)。在此階段中只處理可見樣本。不可見的樣本,如處于之前繪制的多邊形后面的樣本對于最終圖片是無用的。在步驟635中,確定在該多邊形內(nèi)是否存在任何更多的樣本。如果存在,則過程返回到步驟632。否則,過程將進行到步驟636。在最終步驟636中,對可見樣本進行過濾以產(chǎn)生正確尺寸的最終圖像。更具體地,對每個像素的三個樣本取平均值以形成存儲在顏色緩沖器207b中的最終像素顏色。各樣本被賦予權(quán)重1/3。另選地,可以使用非均勻分布的權(quán)重。
參照圖6a和6b,下面將在Quincunx方案與根據(jù)本發(fā)明的方案之間進行比較。在圖6a中示出了根據(jù)本發(fā)明的子像素采樣圖案,在圖6b中示出了根據(jù)Quincunx方案的子像素采樣圖案。
假設(shè)多邊形的內(nèi)部被著色成白色(編碼為1.0),并且外部被著色成黑色(編碼為0.0)。0.0和1.0之間的任何值表示一灰度級。同時應(yīng)當(dāng)注意,這同樣適用于顏色或其他表示。從本示例的圖中可以看出,多邊形(這種情況下為三角形)覆蓋了6×6像素矩陣。像素的數(shù)目并不限于該數(shù)目,而是取決于具體應(yīng)用,即,桌面計算機系統(tǒng)將使用比例如移動電話更高的分辨率(更多像素)。該工作原理適用于任何系統(tǒng),無論系統(tǒng)的分辨率如何。在圖6a中,在多邊形內(nèi)總共具有三個樣本的像素將獲得值1(全白)。在根據(jù)本發(fā)明的方案中,該值是將兩個邊界采樣位置與一個角點采樣位置相加(每一個權(quán)重為1/3)而產(chǎn)生的。在圖6b的Quincunx方案中,該值是將角點樣本(每一個權(quán)重為0.125)與中央樣本(權(quán)重為0.5)相加而產(chǎn)生的。
在圖6a中,最左邊的列將得到值(從上到下)1/3、2/3、1/3、1/3、1/3和0,其中各數(shù)表示灰度級顏色。即,多邊形705的左邊界將具有灰影,除了最下部的頂點為黑色。由此,通過本發(fā)明可以提供具有均勻分布的兩個灰影,雖然對于每個像素,只有三個樣本要存儲和取出。由于根據(jù)本發(fā)明只需要三個樣本,所以與現(xiàn)有技術(shù)中已知的采樣方案相比,需要更少的存儲器帶寬來取出所需的樣本,并且在最終過濾階段需要更少的存儲器帶寬。
在使用了Quincunx方案的圖6b中,最左列將得到以下值0.125、0.75、0.75、0.25、0.25和0.125。重要的是,該列中的第一與第二、第三與第四像素之間的突然跳動。如上所述,即使從理論上可以獲得0.375、0.5和0.625中的一值,當(dāng)使用Quincunx方案時,針對垂直線附近的計算像素值總是從0.25突然跳動到0.75。另一方面,根據(jù)本發(fā)明的鏡像方案將提供不同的可能像素值之間的更為平滑的過渡。此外,當(dāng)使用Quincunx方案時必須取出五個樣本,雖然只提供了兩個灰影。由此,當(dāng)使用根據(jù)本發(fā)明的方案時,計算量顯著減少。
當(dāng)繪制幾乎垂直的線和幾乎水平的線時鋸齒是非常顯眼的,由此抗鋸齒方案在邊界接近垂直或者水平時產(chǎn)生良好結(jié)果是重要的。
在圖7a-c中進一步示出了以上論證,其中示出了無抗鋸齒7a、Quincunx方案7b和根據(jù)本發(fā)明的方案之間的比較。這些圖清楚地示出了與無抗鋸齒相比,根據(jù)本發(fā)明的方案提高了對于接近垂直以及對角線兩者的抗鋸齒效果。此外,這些圖還示出了本發(fā)明的抗鋸齒效果與Quincunx方案差不多一樣好,但是Quincunx方案卻具有更重的計算負(fù)荷。
上面參照具體實施例說明了本發(fā)明。然而,在本發(fā)明的范圍內(nèi)的除上述以外的其他實施例同樣也是可以的??梢栽诒景l(fā)明的范圍內(nèi)提供與上述的通過硬件或軟件進行該方法的步驟不同的方法步驟。可以按與這些說明不同的其他組合的方式來組合本發(fā)明的不同特征和步驟。本發(fā)明只由所附專利權(quán)利要求來限制。
權(quán)利要求
1.一種在抗鋸齒系統(tǒng)中使用的用于創(chuàng)建覆蓋一組像素(501-509)的采樣圖案的方法,該方法包括確定各像素的采樣點圖案的步驟,其特征在于,包括以下步驟確定各像素的采樣點圖案,以使得該采樣點圖案是相鄰像素的采樣點圖案的鏡像,并且不同于該相鄰像素的采樣點圖案;以及在所述像素的第一和第二邊界的交叉點處定義第一采樣點。
2.根據(jù)權(quán)利要求1所述的方法,包括以下步驟對于最多四個相鄰像素的像素點圖案使用所述第一采樣點。
3.根據(jù)權(quán)利要求1或2所述的方法,還包括以下步驟在該像素的第三和第四邊界上定義第二和第三采樣點,所述第二和第三邊界不同于所述第一和第二邊界。
4.根據(jù)任一以上權(quán)利要求所述的方法,其中,像素的采樣點的(x,y)坐標(biāo)按關(guān)系(0,1)、(a,0)和(1,b)來定義。
5.根據(jù)權(quán)利要求1到3中的任一權(quán)利要求所述的方法,其中,像素的采樣點的(x,y)坐標(biāo)按關(guān)系(0,b)、(1-a,0)和(1,1)來定義。
6.根據(jù)權(quán)利要求1到3中的任一權(quán)利要求所述的方法,其中,像素的采樣點的(x,y)坐標(biāo)按關(guān)系(0,0)、(a,1)和(1,1-b)來定義。
7.根據(jù)權(quán)利要求1到3中的任一權(quán)利要求所述的方法,其中,像素的采樣點的(x,y)坐標(biāo)按關(guān)系(1-a,1)、(0,1-b)和(1,0)來定義。
8.根據(jù)權(quán)利要求4到7中的任一權(quán)利要求所述的方法,其中,a=b=0.5。
9.一種抗鋸齒圖像,是通過根據(jù)權(quán)利要求1到8中的任一權(quán)利要求來處理圖像而創(chuàng)建的。
10.一種抗鋸齒系統(tǒng),包括GPU(204),其中該GPU適于定義一組像素的采樣點圖案,所述抗鋸齒系統(tǒng)的特征在于,所述GPU適于執(zhí)行以下操作確定各像素的采樣點圖案,以使得該采樣點圖案是相鄰像素的采樣點圖案的鏡像,并且不同于該相鄰像素的采樣點圖案;以及在所述像素的第一和第二邊界的交叉點處定義第一采樣點。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中,所述GPU適于當(dāng)確定最多四個相鄰像素的像素值時使用在第一采樣點處采樣的樣本。
12.根據(jù)權(quán)利要求10或11所述的系統(tǒng),其中,所述GPU(204)進一步適于在該像素的第三和第四邊界上定義第二和第三采樣點,所述第三和第四邊界不同于第一和第二邊界。
13.根據(jù)權(quán)利要求10到12中的任一權(quán)利要求所述的系統(tǒng),其中,所述GPU(204)是利用硬件來實現(xiàn)的。
14.根據(jù)權(quán)利要求10到12中的任一權(quán)利要求所述的系統(tǒng),其中,所述GPU(204)是利用軟件來實現(xiàn)的。
15.根據(jù)權(quán)利要求10到12中的任一權(quán)利要求所述的系統(tǒng),其中,所述GPU(204)是利用軟件和硬件來實現(xiàn)的。
16.根據(jù)權(quán)利要求10到15中的任一權(quán)利要求所述的系統(tǒng),其中,像素的采樣點的(x,y)坐標(biāo)按照關(guān)系(0,1)、(a,0)和(1,b)而相關(guān)。
17.根據(jù)權(quán)利要求10到15中的任一權(quán)利要求所述的系統(tǒng),其中,像素的采樣點的(x,y)坐標(biāo)按照關(guān)系(0,b)、(1-a,0)和(1,1)而相關(guān)。
18.根據(jù)權(quán)利要求10到15中的任一權(quán)利要求所述的系統(tǒng),其中,像素的采樣點的(x,y)坐標(biāo)按照關(guān)系(0,0)、(a,1)和(1,1-b)而相關(guān)。
19.根據(jù)權(quán)利要求10到15中的任一權(quán)利要求所述的系統(tǒng),其中,像素的采樣點的(x,y)坐標(biāo)按照關(guān)系(1-a,1)、(0,1-b)和(1,0)而相關(guān)。
20.根據(jù)權(quán)利要求16到19中的任一權(quán)利要求所述的系統(tǒng),其中,a=b=0.5。
21.一種可直接加載到存儲器(202)中的計算機程序產(chǎn)品,包括程序代碼部分,該程序代碼部分用于在由可操作地連接到GPU(204)的CPU(201)運行所述產(chǎn)品時執(zhí)行根據(jù)權(quán)利要求13到19的方法。
22.根據(jù)權(quán)利要求31所述的計算機程序產(chǎn)品,其被具體實現(xiàn)在計算機可讀介質(zhì)上。
全文摘要
一種用于在抗鋸齒系統(tǒng)中使用的覆蓋一組像素的采樣共享圖案,其中各像素具有采樣點圖案。第一采樣點設(shè)置在像素的角點處,第二和第三采樣點設(shè)置在像素的與角點樣本不相交的單獨邊界處。此外,各像素的采樣點圖案是相鄰像素的圖案的鏡像,并且不同于該相鄰像素的圖案。
文檔編號G06T11/00GK1809840SQ200480014133
公開日2006年7月26日 申請日期2004年4月29日 優(yōu)先權(quán)日2003年5月22日
發(fā)明者托馬斯·阿凱寧-默勒 申請人:Lm愛立信電話有限公司