專利名稱:通過(guò)像素采樣抗鋸齒的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及圖形處理,并且更具體地但不是限制地涉及一種在低計(jì)算成本下以高幀速率產(chǎn)生高質(zhì)量、抗鋸齒的圖形圖片的方法和系統(tǒng)。
背景技術(shù):
三維圖形的實(shí)時(shí)繪制在移動(dòng)終端上有大量吸引人的應(yīng)用,包括游戲、人機(jī)界面、消息接發(fā)和電子商務(wù)。由于三維繪制典型地是計(jì)算費(fèi)用大的任務(wù),因此必須經(jīng)常構(gòu)建專用硬件以實(shí)現(xiàn)可接受的性能。降低此硬件體系結(jié)構(gòu)的計(jì)算復(fù)雜性和帶寬利用率的創(chuàng)新方式因此是非常重要的。如在Akenine-Mller、Tomas和Jacob Strm的“Graphicsfor the MassesA Hardware Architecture for Mobile Phones”(ACMTransactions on Graphics,vol.22,no.3,Proceedings of ACMSIGGRAPH 2003,pp.801-808,July 2003)中所述的,已表明移動(dòng)電話的平均眼睛至像素的角度約是個(gè)人計(jì)算機(jī)(PC)的2-4倍。因此,移動(dòng)裝置上的圖像質(zhì)量理論上應(yīng)優(yōu)于用于PC上的圖像質(zhì)量。然而,移動(dòng)裝置一般具有更少且不太強(qiáng)大的計(jì)算資源。
自計(jì)算機(jī)圖形學(xué)的早期開始,當(dāng)在顯示屏上呈現(xiàn)靜態(tài)或移動(dòng)圖片時(shí),鋸齒一直是個(gè)問(wèn)題。鋸齒的一個(gè)示例是當(dāng)以某個(gè)角度繪制線時(shí)在顯示終端上可見(jiàn)的階梯效應(yīng)。這些階梯贗像通常被稱為“鋸齒”。在三維繪制期間,多邊形的邊緣經(jīng)常產(chǎn)生明顯的鋸齒贗像。最好是使用抗鋸齒(anti-aliasing)技術(shù)減少這些贗像。
減少由于鋸齒而在圖片中出現(xiàn)的贗像的一種方法是使用被稱為超級(jí)采樣的方法。在超級(jí)采樣方法中,按每個(gè)像素不止一個(gè)點(diǎn)對(duì)將要顯示的場(chǎng)景采樣,并根據(jù)樣本計(jì)算最終的圖像。作為超級(jí)采樣的特殊情況,多重采樣技術(shù)也按每個(gè)像素不止一個(gè)點(diǎn)對(duì)場(chǎng)景采樣,但片段著色器計(jì)算的結(jié)果(例如,紋理和顏色)在像素中的樣本之間共享。通常,多重采樣算法是一次性取每個(gè)像素的不止一個(gè)樣本并在網(wǎng)格單元的樣本之間共享計(jì)算。
在抗鋸齒的超級(jí)采樣方法中,以比在屏幕上顯示的最終分辨率更高的分辨率來(lái)繪制圖片,從而導(dǎo)致每個(gè)像素不止一個(gè)樣本。各像素的樣本隨后進(jìn)行平均,例如以形成像素的顏色。這通過(guò)為將要顯示的各像素繪制多個(gè)子像素樣本并將各像素的值計(jì)算為子像素樣本值的加權(quán)和來(lái)完成。例如,各顯示像素可由像素內(nèi)一組四個(gè)子像素樣本的過(guò)濾加權(quán)和組成。
由于使用超級(jí)采樣方法,圖形硬件必須為各顯示像素處理四倍量的樣本。這種抗鋸齒的方法經(jīng)常被稱為強(qiáng)力超級(jí)采樣。強(qiáng)力超級(jí)采樣大大提高了圖像質(zhì)量,但在存儲(chǔ)空間和繪制時(shí)間方面付出了高代價(jià)。例如,假設(shè)目標(biāo)圖像的寬度和高度為w×h。如果2w×2h的分辨率用于強(qiáng)力超級(jí)采樣,則使用每個(gè)像素四個(gè)樣本,并需要四倍的存儲(chǔ)空間及四倍的光柵化時(shí)間。雖然超級(jí)采樣提供了良好的圖片質(zhì)量,但由于計(jì)算負(fù)擔(dān)重,它可導(dǎo)致低的幀速率。
為了降低用于產(chǎn)生抗鋸齒像素的計(jì)算負(fù)擔(dān),可使用修改的超級(jí)采樣方案,在該方案中,子像素樣本位置被置于適當(dāng)?shù)奈恢靡允挂粋€(gè)或多個(gè)樣本位置的值可用于計(jì)算不止一個(gè)像素的最終值。這種超級(jí)采樣方案經(jīng)常被稱為樣本共享方案。通過(guò)共享樣本,實(shí)現(xiàn)每個(gè)像素少于四個(gè)樣本是可能的。由于部分計(jì)算可由像素內(nèi)的所有樣本共享,因此,多重采樣有時(shí)可用于進(jìn)一步降低帶寬需求。
美國(guó)圣克拉拉的NVIDIA公司的GeForce3TM圖形處理單元提供了支持超級(jí)采樣和像素之間的子樣本共享的硬件。被稱為“Quincunx(五點(diǎn)梅花排列采樣法)”的超級(jí)采樣方案介紹了在模片上以“5”的形式的子像素樣本模式(即,5個(gè)子像素樣本用于計(jì)算最終像素的值)。由于Quincunx方案中樣本位置的放置原因,每個(gè)像素只有兩個(gè)樣本需要計(jì)算。其余的樣本值從相鄰像素獲得。中心子像素樣本得到0.5的權(quán)重,而外圍子像素樣本各得到0.125的權(quán)重。有關(guān)Quincunx方案的信息可在NVIDIA公司的“Technical Brief,HRAAHigh-Resolution Antialiasing through Multisampling”中找到。
單色方案中介于黑色與白色之間的多個(gè)灰度等級(jí)取決于使用的像素樣本點(diǎn)的數(shù)量。在使用四個(gè)像素樣本位置的示例中,在黑色與白色之間最多將有三個(gè)灰影。因此,上述Quincunx方案最多提供4個(gè)灰影。然而,Quincunx方案的有效灰影數(shù)量可低至2個(gè)。在Quincunx方案中,樣本點(diǎn)在垂直、水平和45°方向上形成線,這使得對(duì)于一些線取向來(lái)說(shuō),Quincunx方案比其他一些方案表現(xiàn)得更差。
發(fā)明內(nèi)容
本發(fā)明力圖提供一種用于以低計(jì)算成本產(chǎn)生高質(zhì)量抗鋸齒的圖片的方法和設(shè)備。本發(fā)明的一個(gè)實(shí)施例涉及一種用于減少鋸齒的方法。該方法包括在多個(gè)像素樣本點(diǎn)對(duì)圖像的像素進(jìn)行采樣以產(chǎn)生相應(yīng)的多個(gè)像素樣本值的步驟,其中多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)位于沿像素的邊緣與一個(gè)位置有預(yù)定位移的位置。該方法還包括組合多個(gè)像素樣本值以產(chǎn)生顯示的像素值。在本發(fā)明的一個(gè)實(shí)施例中,預(yù)定位移利用查找表來(lái)確定。在本發(fā)明的又一個(gè)實(shí)施例中,預(yù)定位移以偽隨機(jī)的方式來(lái)確定。
本發(fā)明的另一個(gè)實(shí)施例涉及一種用于減少鋸齒的系統(tǒng),該系統(tǒng)包括適于存儲(chǔ)圖像的樣本緩沖器和適于在多個(gè)像素樣本點(diǎn)執(zhí)行像素采樣以產(chǎn)生相應(yīng)的多個(gè)像素樣本值的處理器,其中多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)位于沿像素的邊緣與一個(gè)位置有預(yù)定位移的位置。處理器還適于組合多個(gè)像素樣本值以產(chǎn)生至少一個(gè)顯示的像素值。
本發(fā)明的另一個(gè)實(shí)施例涉及一種制品,該制品包括至少一個(gè)計(jì)算機(jī)可讀介質(zhì)和包含在該至少一個(gè)計(jì)算機(jī)可讀介質(zhì)上的處理器指令,這些處理器指令配置為可由至少一個(gè)處理器從該至少一個(gè)計(jì)算機(jī)可讀介質(zhì)中讀取,并由此使該至少一個(gè)處理器運(yùn)行以便在多個(gè)像素樣本點(diǎn)對(duì)圖像的像素進(jìn)行采樣以產(chǎn)生相應(yīng)的多個(gè)像素樣本值,其中多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)位于沿像素的邊緣距一個(gè)位置的預(yù)定位移內(nèi)。處理器指令還使該至少一個(gè)處理器運(yùn)行以便組合多個(gè)像素樣本值從而產(chǎn)生顯示的像素值。
結(jié)合附圖,參照下面的具體實(shí)施方式
可獲得對(duì)本發(fā)明更完整的理解,其中圖1A示出用于抗鋸齒的像素采樣模式的示例;圖1B示出用于抗鋸齒的像素采樣模式;圖2A示出用于抗鋸齒的像素采樣模式的另一個(gè)示例;圖2B示出用于抗鋸齒的像素采樣模式;圖3A和3B示出像素樣本模式中的像素樣本位置的計(jì)算;圖4示出像素樣本模式的鏡像步驟;圖5示出另一個(gè)像素樣本模式的另一個(gè)鏡像步驟;圖6A和6B示出像素樣本模式;圖7示出像素樣本模式;圖8示出像素樣本模式;圖9A和9B示出用于產(chǎn)生抗鋸齒圖片的方法;圖10A-10D示出各像素包括三個(gè)像素樣本的多重采樣方案的變型;圖11示出另一個(gè)多重采樣方案;圖12示出包括九個(gè)像素的3×3像素配置中的抗鋸齒方案;圖13A-13D示出多重采樣方案;圖14示出多重采樣方案;圖15示出3×3像素配置中的抗鋸齒方案;以及圖16是示出用于創(chuàng)建抗鋸齒圖片的圖形系統(tǒng)的示意框圖。
具體實(shí)施例方式
現(xiàn)在將參照附圖,更充分地描述本發(fā)明的實(shí)施例。然而,本發(fā)明可體現(xiàn)為許多不同的形式并且不應(yīng)當(dāng)認(rèn)為受限于本文所提出的實(shí)施例。本發(fā)明應(yīng)只看作受目前存在的權(quán)利要求書及其等同物的限制。
本發(fā)明的各種實(shí)施例用于通過(guò)提供非周期性像素采樣模式減少抗鋸齒贗像。非周期性像素采樣模式不會(huì)使特殊的邊緣角更易于具有鋸齒贗像。本發(fā)明的各種實(shí)施例用于消除為相鄰像素實(shí)施反射規(guī)則的需要,并只要求被置于像素邊緣上的樣本由共享像素邊緣的相鄰像素來(lái)共享。因此,其他像素?zé)o需依賴于該樣本。
現(xiàn)在參照?qǐng)D1A,它示出用于八個(gè)像素101a-101h的像素采樣模式。圖1A的像素采樣模式示出位于像素101a-101h邊緣上的九個(gè)像素樣本點(diǎn)104-112。為清晰起見(jiàn),未示出可能位于水平像素邊緣上的任何像素樣本。由于像素采樣模式為每?jī)蓚€(gè)像素重復(fù)進(jìn)行,因此,圖1A的像素采樣模式具有的周期為2。
現(xiàn)在參照?qǐng)D1B,它示出依照本發(fā)明實(shí)施例的像素采樣模式。圖1B的像素采樣模式示出位于像素101a′-101h′邊緣上的九個(gè)像素樣本點(diǎn)104′-112′。為清晰起見(jiàn),未示出可能位于水平像素邊緣上的任何像素樣本。在圖1B中,像素樣本點(diǎn)105′沿像素101a′和101b′的共享邊緣按預(yù)定偏移量移位,以使它與任一其他像素樣本點(diǎn)104′和106′-112′不在沿像素邊緣的同一垂直距離上。像素樣本點(diǎn)105′移位的距離可通過(guò)多種方法或算法中的任何一種來(lái)確定。在一種選擇中,像素樣本點(diǎn)105′移位的距離可通過(guò)從將要執(zhí)行抗鋸齒方案的一個(gè)或多個(gè)像素的表中進(jìn)行查找來(lái)確定。在另一種選擇中,偏移量可以偽隨機(jī)的方式來(lái)確定。像素樣本點(diǎn)105′的位移產(chǎn)生非周期性的像素采樣模式。在又一種選擇中,在要求位于像素邊緣的樣本點(diǎn)由共享該像素邊緣的相鄰像素共享的情況下,像素樣本點(diǎn)104′-112′中的任何一個(gè)或多個(gè)可沿像素邊緣移位預(yù)定的距離。
現(xiàn)在參照?qǐng)D2A,它示出用于八個(gè)像素201a-201h的像素采樣模式。圖2A的像素采樣模式示出位于像素201a-201h邊緣上的九個(gè)像素樣本點(diǎn)204-212。為清晰起見(jiàn),未示出可能位于水平像素邊緣上的任何像素樣本。由于像素采樣模式為每三個(gè)像素重復(fù)進(jìn)行,因此,圖2A的像素采樣模式具有的周期為3。
現(xiàn)在參照?qǐng)D2B,它示出本發(fā)明的實(shí)施例,其中,像素采樣模式中的每個(gè)樣本定位在沿像素邊緣的預(yù)定偏移處,或定位在沿像素邊緣的預(yù)定間隔內(nèi)。圖2B示出八個(gè)像素201a′-201h′的像素采樣模式。圖2B的像素采樣模式示出位于像素201a′-201d′和202a′-202d′邊緣上的九個(gè)像素樣本點(diǎn)204′-212′。各像素樣本點(diǎn)204′-212′定位于在像素邊緣的預(yù)定間隔內(nèi)的預(yù)定點(diǎn)上。在一種選擇中,像素樣本點(diǎn)204′-212′在以偽隨機(jī)的方式定位在像素邊緣的預(yù)定間隔內(nèi)。在另一種選擇中,像素樣本點(diǎn)204′-212′定位于從查找表中讀取的預(yù)定偏移處,以使像素采樣模式不會(huì)對(duì)至少兩個(gè)像素重復(fù)。
圖2B示出與各像素樣本點(diǎn)204′-212′相關(guān)聯(lián)的預(yù)定間隔,各預(yù)定間隔用括號(hào)表示。通過(guò)使用像素樣本點(diǎn)的位移,在用于產(chǎn)生位移的偽隨機(jī)發(fā)生器或查找表的限度內(nèi),產(chǎn)生像素采樣模式的實(shí)際無(wú)限周期,這導(dǎo)致沿線邊緣的改進(jìn)的對(duì)稱打破并在抗鋸齒圖像中提供更佳的視覺(jué)質(zhì)量。雖然像素樣本點(diǎn)204′-212′的預(yù)定間隔示為只沿像素邊緣的一部分延伸,但應(yīng)理解,預(yù)定間隔可沿像素邊緣的整個(gè)長(zhǎng)度延伸以使特殊像素樣本點(diǎn)可位于沿像素邊緣的任何位置。還應(yīng)理解的是,像素樣本點(diǎn)無(wú)需精確地位于像素邊緣上,而是可位于像素邊緣附近,例如,在離像素邊緣三分之一像素寬度的距離處。應(yīng)理解的是,附加的像素樣本點(diǎn)可位于每個(gè)像素內(nèi)。
圖3A和3B示出其中像素樣本點(diǎn)303-306被置于像素301邊緣并且像素樣本點(diǎn)307-310被置于像素302邊緣的超級(jí)采樣方案。如果像素301和像素302的位置彼此相鄰,則這允許顯示存儲(chǔ)器中像素301與像素302之間的像素樣本共享。在圖3A和3B的超級(jí)采樣方案中,樣本不像Quincunx方案一樣被置于像素301、302的角上。相反,以旋轉(zhuǎn)的正方形配置為像素301、302的每個(gè)邊緣定義一個(gè)像素樣本點(diǎn),并且賦予每個(gè)樣本點(diǎn)0.25的權(quán)重。應(yīng)理解的是,其他權(quán)重也可用于加權(quán)各樣本點(diǎn)。
圖3A和3B下方分別示出了用于確定精確像素樣本位置的等式。如圖3A和3B所示,在圖3A和3B的等式中,項(xiàng)x0和y0分別表示x軸(“x”)和y軸(“y”)的原點(diǎn)。
如圖所示的像素樣本點(diǎn)303-310的布置提供了其中需要相對(duì)小數(shù)量的像素樣本點(diǎn)的采樣模式。另外,采樣模式提供了各樣本點(diǎn)位于像素的唯一行和列上的特征,即沒(méi)有兩個(gè)像素樣本共享特殊像素的同一列或行。這在圖3A和3B中通過(guò)虛線來(lái)示出,其中沒(méi)有兩個(gè)點(diǎn)在同一虛線上。采樣模式還用于破壞像素采樣模式配置的對(duì)稱性,這增強(qiáng)了顯示屏的非軸線的抗鋸齒效應(yīng),非軸線是不與顯示屏的水平軸或垂直軸平行的線??逛忼X效應(yīng)對(duì)于相對(duì)于顯示屏接近垂直或接近水平的線來(lái)說(shuō)甚至更大。例如,采用穿過(guò)一個(gè)或多個(gè)像素301、302在顯示屏上繪制的多邊形的接近水平取向的邊緣。例如如果Quincunx方案用于產(chǎn)生抗鋸齒線表示,則將使用四個(gè)樣本點(diǎn),像素的各角上各一個(gè)樣本點(diǎn)。對(duì)于一些像素,多邊形邊緣將只覆蓋像素的頂部,但仍將覆蓋兩個(gè)最高像素樣本位置。因此,通過(guò)檢查來(lái)自像素中像素樣本位置的值,即使邊緣覆蓋了像素的一半,所確定的像素的抗鋸齒值將為0.25。因此將拙劣地呈現(xiàn)像素。
如果借助于具有定位在接近水平線取向上的、覆蓋像素301、302頂部的一小部分的多邊形邊緣的圖3A和3B的方案發(fā)生同一情況,則多邊形邊緣將不會(huì)覆蓋兩個(gè)像素樣本位置,而是由于樣本位置的布置只覆蓋像素301、302的最高水平邊緣上的樣本位置。
圖4示出其中像素401的像素樣本點(diǎn)403-406不像Quincunx方案一樣被置于像素的角上的像素采樣模式。如像素樣本點(diǎn)403-406所示出的像素樣本配置稱為“象限A”。相應(yīng)地,表示如像素樣本點(diǎn)406-409所示出的像素樣本配置的像素402稱為“象限B”。
通過(guò)檢查并排的象限A和象限B的配置,顯然,當(dāng)在象限A的右側(cè)垂直邊緣410(并因此為象限B的左側(cè)垂直邊緣)被反射時(shí),象限B的像素樣本點(diǎn)406-409的鏡像是象限A中相應(yīng)的像素樣本點(diǎn)403-406。通過(guò)鏡像像素樣本點(diǎn)403-406和406-409的位置,可能的是,在這兩個(gè)像素之間共享像素樣本點(diǎn)406并且仍打破像素采樣配置的對(duì)稱性以實(shí)現(xiàn)更佳的抗鋸齒結(jié)果。每行只有一個(gè)樣本,并且每列只有一個(gè)樣本。例如,在Quincunx方案中,頂行有兩個(gè)樣本。
圖5示出其中左上方像素501包含按象限A配置的四個(gè)像素樣本點(diǎn)510-513的抗鋸齒方案。像素501右側(cè)的像素502也包含按象限B配置的四個(gè)像素樣本點(diǎn)513-516,這些樣本點(diǎn)在最左像素501的右邊緣被反射。此外,第三像素503也包含按象限A配置的四個(gè)像素樣本點(diǎn)516-519。正如從圖5可看到的,像素501-503共享各對(duì)像素501-502、502-503之間的一個(gè)像素樣本點(diǎn)513、516。包括像素504-506的下方像素行從呈現(xiàn)像素樣本點(diǎn)511、520-522的象限B配置的像素504開始。像素樣本點(diǎn)511在上方像素行上的像素501與像素504之間共享。通過(guò)檢查并排的象限A(即,最高像素501)和象限B(即,下方像素504)的配置,顯然,象限B的像素樣本點(diǎn)511、520-522形成了在像素501的底部水平邊緣530(并因此為像素504的頂部水平邊緣)反射的象限A中相應(yīng)點(diǎn)510-513的鏡像。
像素505包含按象限A配置的四個(gè)像素樣本點(diǎn)515、522-524。像素505與像素502共享一個(gè)像素樣本點(diǎn)515,并與像素504共享一個(gè)像素樣本點(diǎn)522。這同樣適用于最右側(cè)的像素506,該像素也與相鄰像素503、505共享兩個(gè)像素樣本點(diǎn)517、524。
通過(guò)使用鏡像方案,在確定像素501-506的最終值時(shí),除顯示屏上最高和最左像素501-504之外的所有像素只需要計(jì)算兩個(gè)新像素樣本位置值。在其中為像素501按從左到右且從上到下的順序執(zhí)行像素計(jì)算的一個(gè)示例中,計(jì)算了像素樣本點(diǎn)510-513的值。對(duì)于像素502,計(jì)算了像素樣本點(diǎn)514-516的值,而像素樣本點(diǎn)513的值由于已經(jīng)為像素501計(jì)算得出,因而不必計(jì)算。對(duì)于像素503,計(jì)算了像素樣本點(diǎn)517-519的值,而像素樣本點(diǎn)516的值由于已經(jīng)為像素502計(jì)算得出,因而不必計(jì)算。對(duì)于像素504,計(jì)算了像素樣本點(diǎn)520-522的值,而像素樣本點(diǎn)511的值由于已經(jīng)為像素501計(jì)算得出,因而不必計(jì)算。對(duì)于像素505,只計(jì)算了像素樣本點(diǎn)523-524的值,而像素樣本點(diǎn)515和522的值由于已經(jīng)分別為像素502和504計(jì)算得出,因而不必計(jì)算。類似地,對(duì)于像素506,只計(jì)算了像素樣本點(diǎn)525-526的值,而像素樣本點(diǎn)517和524的值由于已經(jīng)分別為像素503和505計(jì)算得出,因而不必計(jì)算。在其中可通過(guò)從右到左且從下到上掃描遍歷像素的另一種選擇中,除最右列和最底行外的所有像素只需兩個(gè)樣本。在又一種選擇中,掃描方向可每隔一行改變以便使存儲(chǔ)器的使用更高效。應(yīng)理解的是,本領(lǐng)域普通技術(shù)人員所了解的、遍歷幾何圖元的像素的許多方式是可能的,只要遍歷方案訪問(wèn)該幾何圖元內(nèi)的所有像素。
圖6A和6B示出其中像素樣本點(diǎn)303′-306′被置于像素301′的邊緣并且像素樣本點(diǎn)307′-310′被置于像素302′的邊緣的超級(jí)采樣方案。如果像素301′和像素302′的位置彼此相鄰,這允許顯示存儲(chǔ)器中像素301′與像素302′之間的像素樣本共享。在圖6A和6B的超級(jí)采樣方案中,一個(gè)或多個(gè)像素樣本點(diǎn)303′-306′可位于沿像素301′和302′邊緣的間隔內(nèi)的預(yù)定位置。圖6A和6B示出與各像素樣本點(diǎn)303′-310′相關(guān)聯(lián)的預(yù)定間隔,各預(yù)定間隔用括號(hào)表示。雖然各括號(hào)示為沿像素邊緣的一部分延伸,但應(yīng)理解,像素樣本點(diǎn)可沿像素邊緣的任何部分來(lái)定位。在圖6A和6B的實(shí)施例中,為像素301、302的各邊緣定義了一個(gè)像素樣本位置,并且賦予各樣本位置0.25的權(quán)重。對(duì)于圖6A,確定精確的像素樣本位置的示范等式如下
303′=(x0+2/3+offset(x0,y0,0),y0+1)304′=(x0,y0+2/3+offset(x0,y0,1))305′=(x0+1/3+offset(x0,y0,2),y0)306′=(x0+1,y0+1/3+offset(x0,y0,3))并且對(duì)于圖6B,等式如下307′=(x0+1/3+offset(x0,y0,0),y0+1)308′=(x0,y0+1/3+offset(x0,y0,1))309′=(x0+2/3+offset(x0,y0,2),y0)310′=(x0+1,y0+2/3+offset(x0,y0,3))其中,offset()函數(shù)表示用于生成預(yù)定范圍內(nèi)位移值的函數(shù),并且項(xiàng)x0和y0分別表示如圖6A和6B所示的x軸(“x”)和y軸(“y”)的原點(diǎn)。在另一個(gè)實(shí)施例中,在用于確定像素樣本位置的等式中不必包括加的常數(shù),因?yàn)榇诵畔⒖梢呀?jīng)編碼在查找表內(nèi)或偽隨機(jī)函數(shù)中。例如,像素樣本位置303′的等式可以是如下形式303′=(x0+offset(x0,y0,0),y0+1)一個(gè)或多個(gè)像素樣本點(diǎn)303′-310′的移位(或偏移)布置用于破壞采樣模式的周期性以便增強(qiáng)直邊、特別是接近27度的那些直邊上的抗鋸齒效應(yīng)。對(duì)于其中不執(zhí)行像素樣本點(diǎn)的位移的采樣模式,27度的邊緣可能由于像素樣本點(diǎn)表示旋轉(zhuǎn)27度的正方形的事實(shí)而以其他的方式產(chǎn)生不想要的結(jié)果。依照本發(fā)明的各種實(shí)施例引入位移將破壞這種對(duì)稱性,從而產(chǎn)生更佳的結(jié)果。
在一種選擇中,各像素樣本點(diǎn)303′-310′可定位在如從查找表中讀取的預(yù)定偏移處,以使像素采樣模式不會(huì)為至少每個(gè)像素而重復(fù)。在另一種選擇中,各像素樣本點(diǎn)303′-310′可利用偽隨機(jī)數(shù)發(fā)生器來(lái)定位。在又一種選擇中,除位于像素邊緣或其附近的那些像素樣本點(diǎn)外,采樣模式還可包括位于像素內(nèi)的一個(gè)或多個(gè)像素樣本點(diǎn)。
圖7示出其中最左側(cè)像素401′的像素樣本點(diǎn)403′-406′被置于沿像素401′邊緣的預(yù)定位置的像素采樣模式。像素樣本點(diǎn)407′-409′被置于像素402′的邊緣。像素樣本點(diǎn)403′-409′的至少其中之一的位置可位于沿像素401′和402′的相應(yīng)邊緣的預(yù)定間隔內(nèi)的預(yù)定位置。圖7示出與各像素樣本點(diǎn)403′-409′相關(guān)聯(lián)的預(yù)定間隔,各預(yù)定間隔用括號(hào)表示。雖然括號(hào)示為沿像素邊緣的一部分延伸,但應(yīng)理解,像素樣本點(diǎn)可沿像素邊緣的任何部分來(lái)定位。
圖8示出其中左上方像素501′包含四個(gè)像素樣本點(diǎn)510′-513′的抗鋸齒方案。像素501′右側(cè)的像素502′也包含四個(gè)像素樣本點(diǎn)513′-516′。此外,第三像素503′也包含四個(gè)像素樣本點(diǎn)516′-519′。正如從圖8中可看到的,像素501′-503′共享各對(duì)像素501′-502′、502′-503′之間的一個(gè)像素樣本點(diǎn)513′、516′。下方像素行從呈現(xiàn)像素樣本點(diǎn)511′、520′-522′的配置的像素504′開始。像素樣本點(diǎn)511′在上方像素行上的像素501′與像素504′之間共享。
像素505′包含四個(gè)像素樣本點(diǎn)515′、522′-524′。像素505′與上方行上的像素502′共享一個(gè)像素樣本點(diǎn)515′,并且與像素504′共享一個(gè)像素樣本點(diǎn)522′。這同樣適用于最右側(cè)的像素506′,該像素也與相鄰像素503′、505′共享兩個(gè)像素樣本點(diǎn)517′、524′。像素樣本點(diǎn)510′-525′的至少其中之一的位置可位于沿像素501′-506′的至少其中之一的相應(yīng)邊緣的預(yù)定間隔內(nèi)的預(yù)定位置。在一種選擇中,像素樣本點(diǎn)定位在從查找表中讀取的預(yù)定偏移處。在另一種選擇中,像素樣本點(diǎn)以偽隨機(jī)的方式定位在像素邊緣的預(yù)定間隔內(nèi)。
在確定像素501′-506′的最終值時(shí),除最高和最左像素501′-504′外的所有像素只需要計(jì)算兩個(gè)新像素樣本點(diǎn)值。在另一種選擇中,圖像中除最右側(cè)列和最底部行外的所有像素只需兩個(gè)樣本。通過(guò)從左到右掃描行,可遍歷圖像像素中的樣本位置。在又一種選擇中,掃描方向可每隔一行改變以便使存儲(chǔ)器的使用更高效。另外,應(yīng)理解任何遍歷方案可與超級(jí)采樣方案結(jié)合實(shí)施。
圖9A是示出一種用于產(chǎn)生高質(zhì)量抗鋸齒圖像的方法的流程圖,其中對(duì)一個(gè)或多個(gè)幾何圖元進(jìn)行采樣以產(chǎn)生圖像。在應(yīng)用階段(步驟610),處理器(例如,中央處理單元(CPU))運(yùn)行應(yīng)用程序(例如,計(jì)算機(jī)游戲)并生成要轉(zhuǎn)換成顯示屏上的2D呈現(xiàn)的幾何圖元(例如,三角形形式的多邊形)。
接著,在幾何階段(步驟620),處理器或圖形處理單元(GPU)計(jì)算影響顯示屏上的對(duì)象外觀的不同視覺(jué)效應(yīng),如光照、裁剪、變換或投影。由于當(dāng)在計(jì)算機(jī)圖形中創(chuàng)建3D對(duì)象時(shí)一般使用幾何圖元,因此一般計(jì)算出幾何圖元頂點(diǎn)的像素坐標(biāo)。
在光柵化階段(步驟630),三角形被引入樣本緩沖器。使用一個(gè)或多個(gè)幾何圖元上的紋理坐標(biāo)的透視糾正內(nèi)插以便確保獲得正確的投影。光柵化階段可由處理器和/或GPU來(lái)執(zhí)行。除此之外,處理器或GPU還可例如內(nèi)插一種或多種顏色、另一組紋理坐標(biāo)或霧等。處理器或GPU還可執(zhí)行Z緩沖器測(cè)試,并確保最終的像素獲得正確的顏色。在過(guò)濾階段(步驟640),過(guò)濾樣本緩沖器以產(chǎn)生存儲(chǔ)在顏色緩沖器中的像素顏色。顏色緩沖器的內(nèi)容隨后可在屏幕上顯示。
圖9B是示出圖9A的步驟630的更詳細(xì)的流程圖。在步驟631中,執(zhí)行第一幾何圖元的幾何圖元設(shè)定,其中,在幾何圖元中發(fā)現(xiàn)依照本發(fā)明各種實(shí)施例的像素樣本模式的第一樣本點(diǎn),并且進(jìn)程繼續(xù)到步驟632。在步驟632中,確定樣本點(diǎn)是否已在幾何圖元的邊界內(nèi)發(fā)現(xiàn)。如果未在幾何圖元內(nèi)發(fā)現(xiàn)樣本點(diǎn),則進(jìn)程繼續(xù)到步驟633,在該步驟中,確定是否還存在將要繪制的幾何圖元。如果還存在將要繪制的幾何圖元,則進(jìn)程繼續(xù)到步驟634。在步驟634中,取回下一個(gè)幾何圖元,并且進(jìn)程返回到其中執(zhí)行幾何圖元設(shè)定的步驟631。如果在步驟633中確定不再存在將要繪制的幾何圖元,則步驟630結(jié)束,并且進(jìn)程繼續(xù)到步驟640,在該步驟中執(zhí)行樣本過(guò)濾以產(chǎn)生過(guò)濾器。
如果在步驟632中確定在幾何圖元內(nèi)發(fā)現(xiàn)了樣本點(diǎn),則進(jìn)程繼續(xù)到步驟635,在該步驟中執(zhí)行有關(guān)在幾何圖元中樣本將是否可視的可視性檢查。在步驟636中,進(jìn)行有關(guān)樣本是否可視的確定。如果樣本不可視,則進(jìn)程繼續(xù)到步驟637,在該步驟中遍歷幾何圖元以查找?guī)缀螆D元內(nèi)的下一個(gè)樣本點(diǎn),并且進(jìn)程繼續(xù)到步驟632。
如果在步驟636中確定樣本點(diǎn)可視,則在步驟638中執(zhí)行樣本顏色的計(jì)算,并且在步驟639中,在如樣本緩沖器的一個(gè)或多個(gè)緩沖器中存儲(chǔ)樣本的顏色和深度。隨后,進(jìn)程返回到步驟637,在該步驟中遍歷幾何圖元以查找?guī)缀螆D元內(nèi)的下一個(gè)樣本點(diǎn)。
圖10A-10D示出各像素801、802、811、812包括三個(gè)像素樣本點(diǎn)的多重采樣方案的變型。像素樣本點(diǎn)803-808、813-818被置于像素801、802、811、812的邊界上。像素的邊界充當(dāng)樣本共享的鏡面,這允許顯示存儲(chǔ)器中不同像素801、802、811、812之間的樣本共享。
像素樣本點(diǎn)803-808、813-818的至少其中之一被置于各像素801、802、811、812的角上。術(shù)語(yǔ)“在角上”指大約在像素的兩個(gè)相交邊界的角上設(shè)置樣本,例如,離角的距離不大于終止于角的最短像素邊緣的長(zhǎng)度的三分之一。然而,只要角樣本可用于多至四個(gè)像素值的計(jì)算,則角樣本可相對(duì)于實(shí)際角而稍微移位。
在圖10A-10D的多重采樣方案中,為像素801、802、811、812的兩個(gè)邊界的角定義第一像素樣本點(diǎn)。為像素801、802、811、812的未與第一像素樣本所處的像素角相交的單獨(dú)邊界定義第二和第三像素樣本點(diǎn)。在圖10A-10D中,各像素801、802、811和812的第二和第三像素樣本定位在兩個(gè)角之間的邊界的中心。對(duì)于像素801,像素樣本點(diǎn)804、805各自定位在兩個(gè)角之間的邊界中心的中心。對(duì)于像素802,像素樣本點(diǎn)806、807各自定位在兩個(gè)角之間的邊界中心的中心。對(duì)于像素811,像素樣本點(diǎn)813、815各自定位在兩個(gè)角之間的邊界中心的中心。對(duì)于像素812,像素樣本點(diǎn)816、817各自定位在兩個(gè)角之間的邊界中心的中心。像素樣本點(diǎn)803、808、814和818各自分別定位在像素801、802、811和812的角上。然而,只要樣本可用于計(jì)算兩個(gè)相鄰像素的值,第二和第三像素樣本點(diǎn)可定位在邊界上的任何點(diǎn)。此外,在圖10A-10D中,第二和第三像素樣本點(diǎn)804、805、806、807、813、815、816、817定位在其相應(yīng)像素801、802、811、812的邊界上,它們離角的距離相同。在另一種選擇中,各像素樣本點(diǎn)804、805、806、807、813、815、816、817離角的距離可以不同。各像素樣本點(diǎn)被賦予1/3的權(quán)重(即,使得權(quán)重的和等于1)。可使用的另一種權(quán)重分配是對(duì)于第一像素樣本為0.2,并且對(duì)于第二和第三像素樣本各為0.4。像素樣本的任何其他權(quán)重分配只要其和合計(jì)值為一,便可使用。
在圖10A-10D中,在各像素801、802、811、812上疊加網(wǎng)格,并且網(wǎng)格定義了角上及網(wǎng)格與邊界相交而不是與角像素樣本點(diǎn)所處的像素801、802、811、812的角相交的任何地方的可能的像素樣本點(diǎn)。圖10A-10D分別示出了用于確定各像素801、802、811、812的精確樣本點(diǎn)模式的示范等式。如圖10A-10D所示,在圖10A-10D的等式中,項(xiàng)x0和y0分別表示x軸(“x”)和y軸(“y”)的原點(diǎn)。
圖11示出其中最左側(cè)像素901包括角上的一個(gè)像素樣本點(diǎn)903和像素901的單獨(dú)邊界上的兩個(gè)像素樣本點(diǎn)904-905的多重采樣方案。在下文中,此像素樣本配置將被稱為模式A。相應(yīng)地,呈現(xiàn)具有像素樣本點(diǎn)905-907的像素樣本配置的第二像素902被稱為模式B。通過(guò)檢查并排的模式A和模式B的配置,顯然,模式B的像素樣本點(diǎn)905-907是模式A中相應(yīng)點(diǎn)903-905的鏡像。模式A在像素901的右側(cè)垂直邊界908上反射以形成像素902的模式B。因此,模式B是模式A的鏡像。
模式A和模式B的像素樣本點(diǎn)還可在其相應(yīng)的底部水平邊界909上鏡像。呈現(xiàn)像素樣本配置的第三像素911將被稱為模式C,該像素樣本配置是模式A在像素901的底部水平邊界上鏡像時(shí)的鏡像。模式C具有像素樣本點(diǎn)904、923-924,其中,像素樣本點(diǎn)之一(即,像素樣本點(diǎn)904)與模式A共享。呈現(xiàn)像素樣本配置的第四像素912將被稱為模式D,該像素樣本配置是模式B在底部水平邊界909上鏡像時(shí)的鏡像。模式D具有像素樣本點(diǎn)906、924-925,其中,像素樣本點(diǎn)之一(即,像素樣本點(diǎn)906)與模式B共享,并且一個(gè)像素樣本點(diǎn)(即,像素樣本點(diǎn)924)與模式C共享。
通過(guò)跨垂直邊界908鏡像像素樣本點(diǎn)903-905的位置,在這兩個(gè)像素901、902之間共享像素樣本點(diǎn)905并且仍打破配置的對(duì)稱性以及實(shí)現(xiàn)改進(jìn)的抗鋸齒結(jié)果是可能的。在圖11的多重采樣方案中,每個(gè)像素行和像素列只有一個(gè)樣本。與此相比,在Quincunx方案中,頂行有兩個(gè)樣本。
圖12示出包括九個(gè)像素1001-1009的3×3像素配置中的抗鋸齒方案。最左上方像素1001包含按模式A配置的三個(gè)像素樣本點(diǎn)1010-1012。第二像素1002包括按模式B配置的三個(gè)像素樣本點(diǎn)1012-1014,這些樣本點(diǎn)是在最左上方像素1001的右邊界上的鏡像。此外,像素1003包括按模式A配置的三個(gè)像素樣本點(diǎn)1014-1016。正如從圖12可看到的,上方行的像素1001-1003在各對(duì)像素1001-1002、1002-1003之間共享一個(gè)像素樣本點(diǎn)1012、1014。
第二像素行從呈現(xiàn)像素樣本點(diǎn)1011、1017-1018的模式C配置的像素1004開始。像素樣本點(diǎn)1011在像素1004與像素1001之間共享。第二行上的像素1005包括按模式D配置的三個(gè)像素樣本點(diǎn)1013、1018-1019。像素1005與像素1002共享一個(gè)像素樣本點(diǎn)1013,并且與像素1004共享一個(gè)像素樣本點(diǎn)1018。這同樣適用于第二行上具有三個(gè)像素樣本點(diǎn)1015、1019-1020的像素1006,它也與相鄰的像素1003、1005共享兩個(gè)像素樣本點(diǎn)1015、1019。
第三像素行從呈現(xiàn)像素樣本點(diǎn)1017、1021-1022的模式A配置的像素1007開始。像素樣本點(diǎn)1017在像素1007與第四像素1004之間共享。像素1008包括按模式B配置的三個(gè)像素樣本點(diǎn)1019、1022-1023。像素1008與像素1005共享一個(gè)像素樣本點(diǎn)1019,并且與左側(cè)的像素1007共享一個(gè)像素樣本點(diǎn)1022。這同樣適用于在第三行上具有三個(gè)像素樣本點(diǎn)1019、1024-1025的像素1009,該像素與相鄰像素1006共享一個(gè)像素樣本點(diǎn)1019。
通過(guò)檢查圖12,顯然,除在最高行和最左列上的之外、設(shè)置于像素角上的所有像素樣本點(diǎn)在四個(gè)像素之間共享。因此,只需為四個(gè)像素計(jì)算一次角像素樣本的大多數(shù)(對(duì)于相對(duì)大的像素網(wǎng)格),其中計(jì)算成本為每個(gè)像素0.25。將只需為兩個(gè)相鄰的像素計(jì)算一次在兩個(gè)像素之間共享的、設(shè)置于未與角像素的邊界相交的邊界上的像素樣本點(diǎn)1011、1012、1013、1015、1018、1021、1022、1023、1024。因此,這些邊界像素的計(jì)算成本為每個(gè)像素0.5。
因此,通過(guò)使用鏡像方案,除最高和最左像素1001-1004、1007之外的所有像素平均只需計(jì)算1.25(0.25+0.5+0.5=1.25)個(gè)新像素樣本點(diǎn)值,用于確定像素1001-1009的最終值。在另一種選擇中,除最右列上的那些像素和最底行上的那些像素之外的所有像素只需1.25個(gè)樣本。在最為人熟知的多重采樣配置中,必須計(jì)算至少兩個(gè)像素樣本以便確定像素的最終值。
通過(guò)從左到右掃描行,可遍歷像素中的樣本位置。在另一種選擇中,掃描方向可每隔一行改變以便使存儲(chǔ)器的使用更高效??衫斫?,任何遍歷方案可與多重采樣方案結(jié)合實(shí)施。
圖13A-13D示出一個(gè)多重采樣方案。圖13A-13D的多重采樣方案示為各像素801′、802′、811′、812′包括三個(gè)像素樣本。像素樣本點(diǎn)803′-808′、813′-818′被置于像素801′、802′、811′、812′的邊界上。像素樣本點(diǎn)801′、808′、814′和818′各自分別被置于像素801′、802′、811′、812′的角上。依照?qǐng)D13A-13D的多重采樣方案,一個(gè)或多個(gè)像素樣本點(diǎn)804′、805′、806′、807′、813′、815′、816′及817′位于沿像素801′、802′、811′、812′的邊緣的間隔內(nèi)的預(yù)定位置上。圖13A-13D示出與各像素樣本點(diǎn)804′、805′、806′、807′、813′、815′、816′、817′相關(guān)聯(lián)的預(yù)定間隔,各預(yù)定間隔用括號(hào)表示。術(shù)語(yǔ)“在角上”指大約在像素的兩個(gè)相交邊界的角上設(shè)置樣本。然而,只要角樣本可用于多至四個(gè)像素值的計(jì)算,角樣本可相對(duì)于實(shí)際角而移位。例如,樣本點(diǎn)也可位于角附近,以使樣本點(diǎn)位于小于或等于像素寬度的三分之一的距離處。在又一種選擇中,除位于像素邊緣或角上或其附近的那些像素樣本點(diǎn)外,采樣模式還可包括位于像素內(nèi)的一個(gè)或多個(gè)像素樣本點(diǎn)。
在圖13A-13D的多重采樣方案中,分別為像素801′、802′、811′、812′的兩個(gè)邊界的角定義第一像素樣本點(diǎn)803′、808′、814′、818′。為像素801′、802′、811′、812′的未與角像素樣本相交的單獨(dú)邊界定義第二和第三像素樣本點(diǎn)804′、805′、806′、807′、813′、815′、816′、817′。在圖13A-13D中,各像素801′、802′、811′、812′的第二和第三像素樣本點(diǎn)804′、805′、806′、807′、813′、815′、816′、817′定位在兩個(gè)角之間的邊界中心。然而,如上所述,只要樣本可用于計(jì)算兩個(gè)相鄰像素的值,第二和第三像素樣本804′、805′、806′、807′、813′、815′、816′、817′可位于邊界上的任何位置。各像素樣本可被賦予1/3的權(quán)重(即,權(quán)重的和等于1)。因此,對(duì)于第一像素樣本來(lái)說(shuō),另一示范權(quán)重分配為0.2,并且對(duì)于第二和第三像素樣本來(lái)說(shuō)各為0.4。
用于確定圖13A的各像素的精確像素樣本點(diǎn)模式的示范等式如下803′=(x0,y0+1)804′=(x0+0.5+offset(0,y0,0),y0)805′=(x0+1,y0+0.5+offset(x0,y0,1))對(duì)于圖13B,等式如下806′=(x0,y0+0.5+offset(x0,y0,0))807′=(x0+0.5+offset(x0,y0,1),y0)808′=(x0+1,y0+1)對(duì)于圖13C,等式如下813′=(x0+0.5+offset(x0,y0,0),y0+1)814′-(x0,y0)815′=(x0+1,y0+0.5+offset(x0,y0,1))并且對(duì)于圖13D,等式如下
816′=(x0,y0+0.5+offset(x0,y0,0)817′=(x0+0.5+offset(x0,y0,1),y0+1)818′=(x0+1,y0)其中,offset()函數(shù)表示用于生成預(yù)定范圍內(nèi)位移值的函數(shù),并且x0和y0項(xiàng)分別表示如圖13A-13D所示的x軸(“x”)和y軸(“y”)的原點(diǎn)。在另一個(gè)實(shí)施例中,在用于確定像素樣本位置的等式中不必包括加的常數(shù)0.5,因?yàn)榇诵畔⒖梢呀?jīng)編碼在查找表內(nèi)或偽隨機(jī)函數(shù)中。例如,像素樣本位置804′的等式可以是如下形式804′=(x0+offset(x0,y0,0),y0)像素樣本點(diǎn)803′-808′、813′-818′的移位(或偏移)布置用于破壞配置的對(duì)稱性并增強(qiáng)抗鋸齒效應(yīng)。在一種選擇中,各像素樣本點(diǎn)804′-807′、813′和815′-817′可定位在如從查找表中讀取的預(yù)定偏移處以使像素采樣模式不會(huì)為至少每個(gè)像素進(jìn)行重復(fù)。在另一種選擇中,各像素樣本點(diǎn)804′-807′、813′和815′-817′可利用偽隨機(jī)數(shù)發(fā)生器來(lái)定位。
圖14示出其中最左像素901′包括角上的一個(gè)像素樣本點(diǎn)903′和位于沿像素901′邊界的間隔內(nèi)的預(yù)定位置上的兩個(gè)像素樣本點(diǎn)904′-905′的多重采樣方案。第二像素902′具有角上的像素樣本點(diǎn)907′和位于沿像素902′邊界的間隔內(nèi)的預(yù)定位置上的兩個(gè)像素樣本點(diǎn)905′和906′。第三像素911′具有角上的像素樣本點(diǎn)923′和位于沿像素911′邊界的間隔內(nèi)的預(yù)定位置的兩個(gè)像素樣本點(diǎn)904′和924′。第四像素912′具有角上的像素樣本點(diǎn)925′和位于沿像素912′邊界的間隔內(nèi)的預(yù)定位置的兩個(gè)像素樣本點(diǎn)906′和924′。圖14示出與各像素樣本點(diǎn)904′、905′、906′、924′相關(guān)聯(lián)的預(yù)定間隔,各預(yù)定間隔用括號(hào)表示。雖然各括號(hào)示為沿像素邊緣的一部分延伸,但應(yīng)理解,像素樣本點(diǎn)可沿像素邊緣的任何部分來(lái)定位。如圖14所示,像素樣本點(diǎn)904′、923′-924′形成其中像素樣本點(diǎn)904′在像素901′與像素911′之間共享的像素樣本模式。像素樣本點(diǎn)906′、924′-925′形成其中像素樣本點(diǎn)906′在像素902′與像素912′之間共享以及像素樣本點(diǎn)924′在像素911′與像素912′之間共享的像素樣本模式。各像素樣本點(diǎn)的預(yù)定位置可例如通過(guò)參照查找表或以偽隨機(jī)的方式來(lái)確定。
選定像素樣本位置的移位或偏移定位用于打破像素采樣配置的對(duì)稱性并實(shí)現(xiàn)更佳的抗鋸齒結(jié)果。另外,每個(gè)像素行只有一個(gè)樣本,并且每個(gè)像素列只有一個(gè)樣本。例如在Quincunx中,像素的頂行有兩個(gè)像素樣本。
圖15示出包括九個(gè)像素1001′-1009′的3×3像素配置中的抗鋸齒方案。像素1001′包含三個(gè)像素樣本點(diǎn)1010′-1012′。位于像素1001′右側(cè)的像素1002′包括三個(gè)像素樣本點(diǎn)1012′-1014′。此外,像素1003′包括三個(gè)像素樣本點(diǎn)1014′-1016′。正如從圖15可看到的,上方行的像素1001′-1003′在各對(duì)像素1001′-1002′、1002′-1003′之間共享一個(gè)像素樣本點(diǎn)1012′、1014′。
第二像素行從呈現(xiàn)像素樣本點(diǎn)1011′、1017′-1018′的配置的像素1004′開始。像素樣本點(diǎn)1011′在像素1004′與像素1001′之間共享。第二行上的像素1005′包括三個(gè)像素樣本點(diǎn)1013′、1018′-1019′。像素1005′與像素1002′共享一個(gè)像素樣本點(diǎn)1013′,并且與像素1004′共享一個(gè)像素樣本點(diǎn)1018′。這同樣適用于位于第二行上并具有三個(gè)像素樣本點(diǎn)1015′、1019′-1020′的像素1006′,該像素也與相鄰像素1003′、1005′共享兩個(gè)像素樣本點(diǎn)1015′、1019′。
第三像素行從呈現(xiàn)像素樣本點(diǎn)1017′、1021′-1022′的配置的像素1007′開始。像素樣本點(diǎn)1017′在像素1007′與像素1004′之間共享。像素1008′包括三個(gè)像素樣本點(diǎn)1019′、1022′-1023′。像素1008′與像素1005′共享一個(gè)像素樣本點(diǎn)1019′,并且與像素1007′共享一個(gè)像素樣本點(diǎn)1022′。這同樣適用于具有三個(gè)像素樣本點(diǎn)1019′、1024′-1025′的像素1009′,該像素與相鄰像素1006′共享一個(gè)像素樣本點(diǎn)1019′。一個(gè)或多個(gè)像素樣本1011′、1012′、1013′、1015′、1016′、1018′、1020′、1021′、1022′、1023′、1024′及1025′可位于沿像素1001′-1009′的邊界的間隔內(nèi)的預(yù)定位置上。圖15示出與各像素樣本點(diǎn)1011′、1012′、1013′、1015′、1016′、1018′、1020′、1021′、1022′、1023′、1024′及1025′相關(guān)聯(lián)的預(yù)定間隔,各預(yù)定間隔用括號(hào)表示。雖然各括號(hào)示為沿像素邊緣的一部分延伸,但應(yīng)理解,像素樣本點(diǎn)可沿像素邊緣的任何部分來(lái)定位。各像素樣本點(diǎn)的預(yù)定位置可例如以偽隨機(jī)的方式或通過(guò)參照查找表來(lái)確定。
通過(guò)檢查圖15,顯然,除在最高行和最左列上的之外、設(shè)置于像素角上的所有像素樣本點(diǎn)在四個(gè)像素之間共享。因此,只需為四個(gè)像素計(jì)算一次角像素樣本的大多數(shù)(對(duì)于相對(duì)大的像素網(wǎng)格),其中計(jì)算成本為每個(gè)像素0.25。將只需為兩個(gè)相鄰的像素計(jì)算一次在兩個(gè)像素之間共享的、設(shè)置于未與角像素的邊界相交的邊界上的像素樣本點(diǎn)1011′、1012′、1013′、1015′、1016′、1018′、1020′、1021′、1022′、1023′、1024′及1025′。因此,這些邊界像素的計(jì)算成本為每個(gè)像素0.5。
因此,除最高和最左像素1001′-1004′、1007′之外的所有像素平均只需計(jì)算1.25(0.25+0.5+0.5=1.25)個(gè)新像素樣本點(diǎn)值,用于確定像素1001′-1009′的最終值。在另一種選擇中,除圖像最右側(cè)列和最底部行的像素之外的所有像素只需1.25個(gè)樣本。在最為人熟知的多重采樣配置中,必須計(jì)算至少兩個(gè)像素樣本以便確定像素的最終值。
通過(guò)從左到右掃描行,可遍歷像素中的像素樣本點(diǎn)。在另一種選擇中,掃描方向可每隔一行改變以便使存儲(chǔ)器的使用更高效。要理解的是,在沒(méi)有背離本發(fā)明原理的情況下,可實(shí)施任何遍歷方案。
通過(guò)使用圖15的多重采樣方案,最多只需訪問(wèn)顯示存儲(chǔ)器三次以計(jì)算像素的最終值。然而,通過(guò)提供用于暫時(shí)存儲(chǔ)在一個(gè)或幾個(gè)隨后的像素值計(jì)算中所需要的樣本的附加的小且快的存儲(chǔ)器,如片上高速緩沖存儲(chǔ)器,使對(duì)顯示存儲(chǔ)器的必需訪問(wèn)減少到最低1.25次是可能的。通過(guò)將此方法與Quincunx方案一起使用,計(jì)算像素的最終值需最少訪問(wèn)存儲(chǔ)器兩次。此外,可利用甚至更小的附加的存儲(chǔ)器只存儲(chǔ)一個(gè)樣本(即,用于計(jì)算第一像素值和隨后像素值計(jì)算的樣本)。
再次參照?qǐng)D14,通過(guò)從顯示存儲(chǔ)器中取回像素樣本903′-905′,可計(jì)算出像素901′的最終值。像素樣本905′隨后可暫時(shí)存儲(chǔ)在附加的存儲(chǔ)器中。對(duì)于像素902′的最終值的計(jì)算,只需從顯示存儲(chǔ)器中取回像素樣本906′-907′,而像素樣本905′可從附加的存儲(chǔ)器中取回。因此,計(jì)算例如移動(dòng)終端的176×174像素網(wǎng)格的、大的像素網(wǎng)格的大多數(shù)像素只需訪問(wèn)顯示存儲(chǔ)器兩次。利用Quincunx方案,計(jì)算像素的最終值需訪問(wèn)顯示存儲(chǔ)器三次和附加的存儲(chǔ)器兩次。
圖16是依照具有像素樣本模式的超級(jí)采樣方案的、用于繪制例如多邊形的一個(gè)或多個(gè)幾何圖元的系統(tǒng)的框圖。中央處理單元(CPU)701經(jīng)數(shù)據(jù)總線703連接到存儲(chǔ)器702。存儲(chǔ)器702包括可在系統(tǒng)上運(yùn)行的應(yīng)用程序(例如,計(jì)算機(jī)游戲或計(jì)算機(jī)輔助設(shè)計(jì)(CAD)程序)。CPU 701在存儲(chǔ)器702中取出指令并執(zhí)行指令以便執(zhí)行特定的任務(wù)。在此情況中,CPU 701的任務(wù)是為圖形處理單元(GPU)704提供有關(guān)要在顯示屏705上繪制的對(duì)象的信息。
GPU 704可以是處理器的形式,例如數(shù)字信號(hào)處理器(DSP),或者是專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、硬連線邏輯或諸如此類的形式。在另一種選擇中,它可在CPU 701上執(zhí)行。GPU704也連接到總線703,但在大量信息于CPU 701與GPU 704之間傳送的情況下,還可經(jīng)單獨(dú)的高速總線706連接到CPU 701。在單獨(dú)的高速總線706上的數(shù)據(jù)傳送將因此不會(huì)干擾普通總線703上的數(shù)據(jù)業(yè)務(wù)。
顯示存儲(chǔ)器707也連接到總線703并存儲(chǔ)從GPU 704發(fā)送的有關(guān)要在顯示屏705上繪制的圖片(即,幀)的信息。更具體地,顯示存儲(chǔ)器包含樣本緩沖器707a和顏色緩沖器707b。樣本緩沖器707a包含的樣本數(shù)量大約是最終顏色緩沖器707b中的像素?cái)?shù)量的兩倍。在圖像繪制完成之后,顏色緩沖器707b保存將要在屏幕上顯示的像素的顏色。如同CPU 701與GPU 704之間的互連一樣,顯示存儲(chǔ)器707可經(jīng)單獨(dú)的高速總線直接連接到GPU 704。由于GPU 704和顯示存儲(chǔ)器707一般用于產(chǎn)生移動(dòng)圖像,因此一般期望這兩個(gè)單元之間的鏈路盡可能地快,并且不會(huì)阻塞總線703上的正常業(yè)務(wù)。
顯示存儲(chǔ)器707或經(jīng)共享總線703或通過(guò)單獨(dú)的高速總線709連接到視頻數(shù)模轉(zhuǎn)換器(VDAC)708,該轉(zhuǎn)換器從顏色緩沖器707b讀取信息并將它轉(zhuǎn)換成提供給顯示屏705以便在顯示屏705上繪制各個(gè)像素的模擬信號(hào)(例如,紅色、綠色、藍(lán)色(RGB)復(fù)合信號(hào))。GPU 704利用如本文所述的像素采樣模式執(zhí)行超級(jí)采樣或多重采樣過(guò)程以產(chǎn)生保存在顏色緩沖器707b中的像素。
雖然前面的具體實(shí)施方式
描述了其中可利用表查找或偽隨機(jī)的方法來(lái)確定像素樣本點(diǎn)的定位的示范實(shí)施例,但應(yīng)理解,依照本發(fā)明的原理,可使用定位像素樣本點(diǎn)的其他方法。
前面的具體實(shí)施方式
是有關(guān)本發(fā)明的實(shí)施例。本發(fā)明的范圍應(yīng)不必受此具體實(shí)施方式
的限制。例如,應(yīng)理解,本發(fā)明可與將樣本置于像素邊緣上的任何樣本方案一起使用。還應(yīng)理解,本發(fā)明所述各種實(shí)施例的超級(jí)采樣方案可包括在多個(gè)裝置中,這些裝置包括計(jì)算機(jī)和移動(dòng)終端。相反,本發(fā)明的范圍由下面的權(quán)利要求書及其等同物來(lái)界定。
權(quán)利要求
1.一種用于減少鋸齒的方法,所述方法包括在多個(gè)像素樣本點(diǎn)對(duì)圖像的像素進(jìn)行采樣以產(chǎn)生相應(yīng)的多個(gè)像素樣本值;其中所述多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)位于沿所述像素的邊緣與一個(gè)位置有預(yù)定位移的位置;以及組合所述多個(gè)像素樣本值以產(chǎn)生顯示的像素值。
2.如權(quán)利要求1所述的方法,其中所述預(yù)定位移利用查找表來(lái)確定。
3.如權(quán)利要求1所述的方法,其中所述預(yù)定位移以偽隨機(jī)的方式來(lái)確定。
4.如權(quán)利要求3所述的方法,其中利用偽隨機(jī)數(shù)發(fā)生器來(lái)確定所述以偽隨機(jī)的方式確定的預(yù)定位移。
5.如權(quán)利要求1所述的方法,其中所述多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)與相鄰像素的至少一個(gè)像素樣本點(diǎn)共享。
6.如權(quán)利要求1所述的方法,其中所述組合所述多個(gè)像素樣本值的步驟包括確定所述多個(gè)像素樣本值的平均值。
7.如權(quán)利要求1所述的方法,其中所述多個(gè)像素樣本值包括多個(gè)顏色值。
8.如權(quán)利要求1所述的方法,其中所述顯示的像素值包括顏色值。
9.如權(quán)利要求1所述的方法,其中所述預(yù)定位移包括沿所述像素的邊緣的預(yù)定間隔內(nèi)的位置。
10.如權(quán)利要求1所述的方法,其中所述預(yù)定位移等于零。
11.如權(quán)利要求1所述的方法,其中所述多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)對(duì)應(yīng)于第二像素的至少一個(gè)像素樣本點(diǎn),所述第二像素與所采樣的像素相鄰。
12.如權(quán)利要求1所述的方法,其中多個(gè)像素的樣本點(diǎn)包括實(shí)質(zhì)上非周期性的樣本模式。
13.如權(quán)利要求1所述的方法,其中所述多個(gè)像素樣本點(diǎn)由四個(gè)像素樣本點(diǎn)組成。
14.如權(quán)利要求1所述的方法,其中所述多個(gè)像素樣本點(diǎn)中的每個(gè)像素樣本點(diǎn)定位在所述像素的邊緣上。
15.如權(quán)利要求1所述的方法,其中所述多個(gè)像素樣本點(diǎn)中的每個(gè)像素樣本點(diǎn)位于沿所述像素的邊緣與一個(gè)位置有預(yù)定位移的位置。
16.如權(quán)利要求1所述的方法,其中所述多個(gè)像素樣本點(diǎn)由三個(gè)像素樣本點(diǎn)組成。
17.如權(quán)利要求1所述的方法,其中所述多個(gè)像素樣本點(diǎn)包括位于所述像素的角上的第一像素樣本點(diǎn);位于沿所述像素的第一邊緣的位置的第二像素樣本點(diǎn);以及位于沿所述像素的第二邊緣的位置的第三像素樣本點(diǎn)。
18.如權(quán)利要求17所述的方法,其中所述第二像素樣本點(diǎn)和所述第三像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)位于沿所述像素的邊緣與一個(gè)位置有預(yù)定位移的位置。
19.一種用于減少鋸齒的系統(tǒng),所述系統(tǒng)包括適于存儲(chǔ)圖像的樣本緩沖器;適于在多個(gè)像素樣本點(diǎn)執(zhí)行像素采樣以產(chǎn)生相應(yīng)的多個(gè)像素樣本值的處理器;其中所述多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)位于沿像素的邊緣與一個(gè)位置有預(yù)定位移的位置;以及其中所述處理器還適于組合所述多個(gè)像素樣本值以產(chǎn)生至少一個(gè)顯示的像素值。
20.如權(quán)利要求19所述的系統(tǒng),還包括適于存儲(chǔ)所述至少一個(gè)顯示的像素值的顏色存儲(chǔ)器。
21.如權(quán)利要求19所述的系統(tǒng),其中所述處理器包括中央處理單元(CPU)。
22.如權(quán)利要求19所述的系統(tǒng),其中所述處理器包括圖形處理單元(GPU)。
23.如權(quán)利要求19所述的系統(tǒng),其中所述組合所述多個(gè)像素樣本值的步驟包括確定所述多個(gè)像素樣本值的平均值。
24.如權(quán)利要求19所述的系統(tǒng),其中所述多個(gè)像素樣本值包括顏色值。
25.如權(quán)利要求19所述的系統(tǒng),其中所述至少一個(gè)顯示的像素值包括顏色值。
26.如權(quán)利要求19所述的系統(tǒng),其中所述預(yù)定位移利用查找表來(lái)確定。
27.如權(quán)利要求19所述的系統(tǒng),其中所述預(yù)定位移以偽隨機(jī)的方式來(lái)確定。
28.如權(quán)利要求27所述的系統(tǒng),還包括適于確定所述以偽隨機(jī)的方式確定的預(yù)定位移的偽隨機(jī)數(shù)發(fā)生器。
29.如權(quán)利要求19所述的系統(tǒng),其中所述預(yù)定位移包括沿所述像素的邊緣的預(yù)定間隔內(nèi)的位置。
30.如權(quán)利要求19所述的系統(tǒng),其中所述預(yù)定位移等于零。
31.如權(quán)利要求19所述的系統(tǒng),其中所述多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)對(duì)應(yīng)于所述圖像的相鄰像素的至少一個(gè)像素樣本點(diǎn)。
32.如權(quán)利要求19所述的系統(tǒng),其中所述多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)對(duì)應(yīng)于第二像素的至少一個(gè)像素樣本點(diǎn),所述第二像素與所采樣的像素相鄰。
33.如權(quán)利要求19所述的系統(tǒng),其中多個(gè)像素的樣本點(diǎn)包括實(shí)質(zhì)上非周期性的樣本模式。
34.如權(quán)利要求19所述的系統(tǒng),其中所述多個(gè)像素樣本點(diǎn)由四個(gè)像素樣本點(diǎn)組成。
35.如權(quán)利要求19所述的系統(tǒng),其中所述多個(gè)像素樣本點(diǎn)中的每個(gè)像素樣本點(diǎn)定位在所述像素的邊緣上。
36.如權(quán)利要求19所述的系統(tǒng),其中所述多個(gè)像素樣本點(diǎn)中的每個(gè)像素樣本點(diǎn)位于沿所述像素的邊緣與一個(gè)位置有預(yù)定位移的位置。
37.如權(quán)利要求19所述的系統(tǒng),其中所述多個(gè)像素樣本點(diǎn)由三個(gè)像素樣本點(diǎn)組成。
38.如權(quán)利要求19所述的系統(tǒng),其中所述多個(gè)像素樣本點(diǎn)包括位于所述像素的角上的第一像素樣本點(diǎn);位于沿所述像素的第一邊緣的位置的第二像素樣本點(diǎn);以及位于沿所述像素的第二邊緣的位置的第三像素樣本點(diǎn)。
39.如權(quán)利要求38所述的系統(tǒng),其中所述第二像素樣本點(diǎn)和所述第三像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)位于沿所述像素的邊緣距一個(gè)位置的預(yù)定位移內(nèi)。
40.一種用于減少鋸齒的制品,所述制品包括至少一個(gè)計(jì)算機(jī)可讀介質(zhì);包含在所述至少一個(gè)計(jì)算機(jī)可讀介質(zhì)上的處理器指令,所述處理器指令配置為可由至少一個(gè)處理器從所述至少一個(gè)計(jì)算機(jī)可讀介質(zhì)中讀取,并由此使所述至少一個(gè)處理器運(yùn)行以便在多個(gè)像素樣本點(diǎn)對(duì)圖像的像素進(jìn)行采樣以產(chǎn)生相應(yīng)的多個(gè)像素樣本值;其中所述多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)位于沿所述像素的邊緣與一個(gè)位置有預(yù)定位移的位置;以及組合所述多個(gè)像素樣本值以產(chǎn)生顯示的像素值。
41.如權(quán)利要求40所述的制品,其中所述預(yù)定位移利用查找表來(lái)確定。
42.如權(quán)利要求40所述的制品,其中所述預(yù)定位移以偽隨機(jī)的方式來(lái)確定。
43.如權(quán)利要求42所述的制品,其中利用偽隨機(jī)數(shù)發(fā)生器來(lái)確定所述以偽隨機(jī)的方式確定的預(yù)定位移。
44.如權(quán)利要求40所述的制品,其中所述多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)與相鄰像素的至少一個(gè)像素樣本點(diǎn)共享。
45.如權(quán)利要求40所述的制品,其中所述組合所述多個(gè)像素樣本值包括確定所述多個(gè)像素樣本值的平均值。
46.如權(quán)利要求40所述的制品,其中所述多個(gè)像素樣本值包括多個(gè)顏色值。
47.如權(quán)利要求40所述的制品,其中所述顯示的像素值包括顏色值。
48.如權(quán)利要求40所述的制品,其中所述預(yù)定位移包括沿所述像素的邊緣的預(yù)定間隔內(nèi)的位置。
49.如權(quán)利要求40所述的制品,其中所述預(yù)定位移等于零。
50.如權(quán)利要求40所述的制品,其中所述多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)對(duì)應(yīng)于第二像素的至少一個(gè)像素樣本點(diǎn),所述第二像素與所采樣的像素相鄰。
51.如權(quán)利要求40所述的制品,其中多個(gè)像素的樣本點(diǎn)包括實(shí)質(zhì)上非周期性的樣本模式。
52.如權(quán)利要求40所述的制品,其中所述多個(gè)像素樣本點(diǎn)由四個(gè)像素樣本點(diǎn)組成。
53.如權(quán)利要求40所述的制品,其中所述多個(gè)像素樣本點(diǎn)中的每個(gè)像素樣本點(diǎn)定位在所述像素的邊緣上。
54.如權(quán)利要求40所述的制品,其中所述多個(gè)像素樣本點(diǎn)中的每個(gè)像素樣本點(diǎn)位于沿所述像素的邊緣與一個(gè)位置有預(yù)定位移的位置。
55.如權(quán)利要求40所述的制品,其中所述多個(gè)像素樣本點(diǎn)由三個(gè)像素樣本點(diǎn)組成。
56.如權(quán)利要求40所述的制品,其中所述多個(gè)像素樣本點(diǎn)包括位于所述像素的角上的第一像素樣本點(diǎn);位于沿所述像素的第一邊緣的位置的第二像素樣本點(diǎn);以及位于沿所述像素的第二邊緣的位置的第三像素樣本點(diǎn)。
57.如權(quán)利要求56所述的制品,其中所述第二像素樣本點(diǎn)和所述第三像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)位于沿所述像素的邊緣與一個(gè)位置有預(yù)定位移的位置。
全文摘要
本發(fā)明公開了一種用于減少鋸齒的方法、系統(tǒng)和制品。依照一個(gè)實(shí)施例的方法在多個(gè)像素樣本點(diǎn)對(duì)圖像的像素進(jìn)行采樣以產(chǎn)生相應(yīng)的多個(gè)像素樣本值,其中多個(gè)像素樣本點(diǎn)中的至少一個(gè)像素樣本點(diǎn)位于沿像素的邊緣與一個(gè)位置有預(yù)定位移的位置。該方法還包括組合多個(gè)像素樣本值以產(chǎn)生顯示的像素值。
文檔編號(hào)G06T15/00GK101061517SQ200580039362
公開日2007年10月24日 申請(qǐng)日期2005年9月19日 優(yōu)先權(quán)日2004年9月20日
發(fā)明者T·阿克尼納-默勒, J·斯特倫 申請(qǐng)人:艾利森電話股份有限公司