欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

高速緩存使用抗鋸齒技術(shù)再現(xiàn)文本的覆蓋值的制作方法

文檔序號:6378617閱讀:234來源:國知局
專利名稱:高速緩存使用抗鋸齒技術(shù)再現(xiàn)文本的覆蓋值的制作方法
高速緩存使用抗鋸齒技術(shù)再現(xiàn)文本的覆蓋值
背景技術(shù)
計算裝置能夠以文本的形式顯示信息給人類用戶。文本由字符串構(gòu)成。對于英文文本,字符為字母和標(biāo)點(diǎn)符號的形式。以其它語言呈現(xiàn)的信息可以使用其它字符。不管具體的字符怎樣用于表現(xiàn)文本,計算裝置都可以配置有實(shí)用工具(utility),該實(shí)用工具能夠接收用于定義要在計算機(jī)的顯示器上再現(xiàn)的文本的輸入,然后對該顯示器產(chǎn)生適當(dāng)控制信號,從而適當(dāng)?shù)仫@示該文本。用于定義要在顯示器上再現(xiàn)的文本的輸入可以是任何適當(dāng)?shù)男问?,包括使用字?glyph)的定義。字形是文本的元素,如部分或全部字符。在字符是字母和標(biāo)點(diǎn)符號的情況下,字形可以是線和點(diǎn)狀的全部或部分字母或標(biāo)點(diǎn)符號。字形的定義描述了字形的形狀,并且可以是任何適當(dāng)?shù)母袷揭约澳軌蛞匀魏芜m當(dāng)?shù)姆绞绞褂靡詫︼@示器產(chǎn)生適當(dāng)?shù)目刂菩?號。為文本的適當(dāng)顯示而產(chǎn)生控制信號的再現(xiàn)處理可以包括多個步驟。這些步驟中的一些可用于使文本對于人類用戶觀看來說更加舒適。當(dāng)觀看計算機(jī)顯示器上的內(nèi)容時,人類趨向于對文本怎樣被呈現(xiàn)比它們是其它圖形對象的呈現(xiàn)更敏感。因此,通過計算機(jī)顯示器以人類將發(fā)現(xiàn)觀看舒服的方式呈現(xiàn)文本需要與用于呈現(xiàn)圖像不同的步驟。這種額外步驟的一個例子是對文本字形邊緣的處理。具體來說,當(dāng)顯示器的像素值被設(shè)定為使字形具有硬的高對比度邊緣時,許多計算機(jī)用戶不喜歡觀看或者發(fā)現(xiàn)難以觀看顯示器上的文本,因?yàn)檫@能夠使文本的邊緣具有塊狀的和參差的(或“鋸齒的”)外觀。為了提供更舒適的呈現(xiàn),使用“抗鋸齒”技術(shù)??逛忼X技術(shù)選擇顯示器的哪些像素被用來表示字形和字形周圍的區(qū)域,并且設(shè)置每個這種像素的強(qiáng)度以使字形的邊緣平滑并且使字形觀看起來更加舒適。當(dāng)文本要在顯示器上顯示時,該文本可以與其它顯示元素一起顯示。例如,文本可以與背景或前景圖形重疊顯示。為了重疊地顯示文本和圖形,計算裝置確定由將要產(chǎn)生文本覆蓋圖形效果的顯示器的各個像素發(fā)出的復(fù)合顏色。為了確定該復(fù)合顏色,使用文本的顏色信息和圖形的顏色信息進(jìn)行計算。文本和圖形的顏色信息可以包含在與顯示器的像素相對應(yīng)的每個文本和圖形的顏色值中。例如,在文本的顏色信息表示特定的像素應(yīng)該是紅色,并且圖形的顏色信息表示該特定的像素應(yīng)該是藍(lán)色的情況下,可以通過將該像素的復(fù)合顏色值識別為紫色來產(chǎn)生重疊效果。為了便于組合顏色信息,文本和重疊顯示元素的每個顏色值可以與由覆蓋值(也稱為“阿爾法”值)表示的“覆蓋”信息相關(guān)聯(lián)。當(dāng)通過組合重疊顯示元素的顏色值來計算復(fù)合顏色值時,每個顯示元素的覆蓋值可被用于基于逐個像素加權(quán)顏色值對復(fù)合顏色值的各自貢獻(xiàn)。具體來說,覆蓋值可被用于通過將一個顯示元素的顏色值加權(quán)為低于另一個顯示元素的顏色值而引入透明效果。例如,對于個別像素,當(dāng)來自覆蓋值的加權(quán)使復(fù)合顏色值更類似于圖形的顏色時,在底層的圖形上面顯示的文本可以在顯示器上表現(xiàn)為透明的或者比復(fù)合顏色值改為更類似于文本顏色時更加透明。覆蓋值還可被用在抗鋸齒技術(shù)中,用于柔化文本的邊緣并且使邊緣表現(xiàn)為與重疊顯示元素平滑地融合。為了使邊緣表現(xiàn)為平滑地融合,當(dāng)確定像素的復(fù)合顏色值時,該像素的文本的覆蓋值可被設(shè)置成產(chǎn)生透明效果。例如,文本的覆蓋值可被設(shè)置成對字形中間或者靠近字形邊緣的像素產(chǎn)生更加不透明的效果,并且對遠(yuǎn)離字形邊緣的像素產(chǎn)生更加透明的效果,這可以產(chǎn)生融合效果。具體來說,可以基于像素落入文本的任何字符的顯示區(qū)域內(nèi)的比例設(shè)置顯示器的每個像素的文本覆蓋值。對于完全落入字符的區(qū)域內(nèi)的像素,該覆蓋值可被指定為100%,使得在該像素的文本是不透明的(S卩,該像素的顏色將更類似于文本顏色)。同樣地,對于完全在文本的任何字符的區(qū)域之外的像素,該覆蓋值可被指定為0%,使得在該像素的文本完全透明,并且該像素將不顯示與文本有關(guān)的任何信息。部分在文本字符區(qū)域內(nèi)且部分在文本字符區(qū)域外的沿著文本邊緣的像素基于任意字符與該像素重疊的量,對于該文本具有0%和100%之間的覆蓋值。因此,對于該像素,文本顏色對復(fù)合顏色值的貢獻(xiàn)將根據(jù)該像素落入該文本字符的顯示區(qū)域內(nèi)的比例而被加權(quán)。這允許該文本以平滑的效果顯示,這使文本表現(xiàn)為沿著邊緣融合到背景中,而不是關(guān)于背景具有硬的高對比度的邊緣。以這種方式設(shè)置的覆蓋值可以歸一化為O和I之間的數(shù)字。已經(jīng)知道多種抗鋸齒技術(shù)。用于渲染(shading)字形邊緣的一種抗鋸齒技術(shù)通常稱為“灰度”渲染。使用灰度渲染,利用前文描述的技術(shù),整體地針對像素設(shè)置文本的單個
覆蓋值。另一種技術(shù)稱為子像素抗鋸齒,或者可替換地稱為子像素覆蓋。該方法利用許多計算機(jī)顯示器能夠以彩色呈現(xiàn)信息的特性。許多類型的顯示器的像素每個包括多個子像素,這些子像素一起操作以從該像素射出光。像素的每個子像素發(fā)射不同顏色的光,例如,紅、綠、藍(lán)。通過控制子像素,可以控制從該像素發(fā)射的光的強(qiáng)度和顏色。在子像素抗鋸齒技術(shù)中,代替基于由整個像素發(fā)射的光的期望強(qiáng)度和顏色嚴(yán)格控制子像素,設(shè)置用于單獨(dú)控制每個子像素的值,從而當(dāng)顯示字形時產(chǎn)生平滑的效果。具體來說,對于子像素抗鋸齒,針對像素的每個子像素分別設(shè)置覆蓋值,而不是像灰度抗鋸齒中那樣針對整個像素。盡管在灰度抗鋸齒中,與像素落入字符的顯示區(qū)域內(nèi)的量成比例地設(shè)置針對該像素的文本覆蓋值,但是在子像素抗鋸齒中,可以與每個子像素的量成比例地設(shè)置覆蓋值。當(dāng)設(shè)置用于控制每個子像素以某一強(qiáng)度發(fā)射光的復(fù)合控制值時,可以使用各個子像素的覆蓋值。具體來說,如上文討論的,可以組合文本的顏色信息與文本的子像素覆蓋值和重疊顯示元素的顏色信息,以確定子像素的復(fù)合控制值。由于顯示器的子像素具有比整像素更精細(xì)的分辨率,所以通過設(shè)置每個子像素的覆蓋值,可以實(shí)現(xiàn)比使用灰度抗鋸齒可能實(shí)現(xiàn)的更精細(xì)粒度的平滑,并且文本的視覺外觀可以優(yōu)于使用灰度抗鋸齒所能實(shí)現(xiàn)的。可以從華盛頓州雷蒙德市的微軟公司獲得的MICROSOFfCLEARTYPE 文本是使用子像素抗鋸齒的平滑技術(shù)的一個例子。如上所述,由于覆蓋值對用于確定要由顯示器的像素呈現(xiàn)的復(fù)合顏色值的計算的影響,覆蓋值可被用于產(chǎn)生這種透明度和平滑效果。當(dāng)要顯示多個顯示元素(如文本和圖形)以表現(xiàn)為重疊時,當(dāng)文本的覆蓋值被用于修正文本的顏色值時,進(jìn)行這些關(guān)于顏色值的計算。然而,當(dāng)組合多個顯示元素的顏色信息時,復(fù)雜性出現(xiàn)。因?yàn)榇蠖鄶?shù)顯示器不線性響應(yīng),所以多個顯示元素的修正后的顏色值(通過覆蓋值修正)的單純的線性插值將產(chǎn)生對人類眼睛不表現(xiàn)為文本和圖形的疊加的復(fù)合顏色。所以,如果通過線性插值組合文本和圖形的修正后的顏色值,那么得到的顯示對人而言看起來是不正確的。為了避免該結(jié)果,已知采用稱為“伽馬修正”的技術(shù)來修改修正后的顏色值的組合,使得對于人類觀看者來說,復(fù)合顏色看起來像預(yù)期的疊加。在伽馬修正中,通過與將要使用的顯示器相關(guān)聯(lián)的“伽馬值”修正通過線性插值產(chǎn)生的復(fù)合顏色值,使得復(fù)合顏色值將看起來正確。

發(fā)明內(nèi)容
申請人:已經(jīng)意識到并理解,當(dāng)在顯示器上再現(xiàn)文本時,通過適當(dāng)?shù)嘏判蛱幚聿襟E,計算裝置可以以良好的顯示質(zhì)量更快地操作??梢詫⑺霾襟E排序,以促進(jìn)隨后可在相對于重疊圖形的不同位置中再現(xiàn)文本時使用的信息的高速緩存。通過選擇要高速緩存的信息和高速緩存該信息的方式,可以進(jìn)一步促進(jìn)文本的快速和高質(zhì)量呈現(xiàn)。因此,本文描述用于以能夠高速緩存使用子像素抗鋸齒技術(shù)確定的子像素覆蓋值的方式處理與要顯不的文本有關(guān)的信息的技術(shù)。在一些實(shí)施例中,技術(shù)可以產(chǎn)生文本的子像素覆蓋值,其能夠與關(guān)于一個或多個重疊顯示元素的信息進(jìn)行線性組合,以確定顯示器的像素和/或子像素的復(fù)合顏色值。在這些實(shí)施例中,由于子像素覆蓋值在被從高速緩存器中取回時能夠與關(guān)于重疊顯示元素的信息線性組合,所以可以更快速更高效地進(jìn)行文本 與覆蓋顯示元素的再現(xiàn)。子像素覆蓋值可以與文本顏色值分開進(jìn)行高速緩存。在一些實(shí)施例中,顏色值可以從子像素覆蓋值中分割出來并且存儲在分開的數(shù)據(jù)結(jié)構(gòu)中。上述是本發(fā)明的非限制性的發(fā)明內(nèi)容,其由所附權(quán)利要求限定。


附圖不意圖按比例繪制。在附圖中,在各圖中示出的每個相同的或近似相同的組件由類似的附圖標(biāo)記來表示。為了清晰,不是每個組件在每幅圖中都被標(biāo)注。在附圖中
圖IA是具有子像素顏色信道的示例性顯示器的框 圖IB是使用子像素抗鋸齒技術(shù)繪制的字形的例子;
圖2是可以用來執(zhí)行一些實(shí)施例的計算裝置的一些組件的框 圖3是在計算機(jī)顯示器再現(xiàn)文本中使用的、用于高速緩存抗鋸齒處理的覆蓋值的示例性處理的流程 圖4是在計算機(jī)顯示器再現(xiàn)文本中使用的、用于從高速緩存器取回抗鋸齒處理的覆蓋值的示例性處理的流程 圖5是可以作為計算抗鋸齒處理的覆蓋值的一部分進(jìn)行的示例性處理的流程 圖6是用于修正覆蓋值以避免進(jìn)行伽馬修正處理的示例性處理的流程 圖7是用于存儲要以不同顏色顯示的文本的覆蓋值的示例性處理的流程圖;以及 圖8是可以用來執(zhí)行一些實(shí)施例的計算裝置的框圖。
具體實(shí)施例申請人:已經(jīng)意識到并理解,在用戶界面中顯示文本所需的處理步驟減緩該界面,特別是對于包括動畫或者允許用戶使界面的元素動畫化的界面。然而,申請人還進(jìn)一步意識到并理解,處理步驟的適當(dāng)排序可以允許高速緩存與文本有關(guān)的信息,并且這種信息的高速緩存可以加速文本的再現(xiàn)。另外,申請人意識到并理解,雖然用于存儲像素的顏色值和覆蓋值的傳統(tǒng)技術(shù)將相關(guān)聯(lián)的像素的值一起存儲在單個數(shù)據(jù)結(jié)構(gòu)中,但是如果將子像素顏色值和子像素覆蓋值分開存儲在不同的數(shù)據(jù)結(jié)構(gòu)中由圖形處理單元來處理,則可以加速文本的再現(xiàn)。更具體來說,申請人已經(jīng)意識到用戶界面正變得比以前的界面更加交互式并且更加動畫化,并且動畫量的上漲給在用戶界面中再現(xiàn)文本帶來特別的困難。以使觀看者舒適的方式再現(xiàn)文本需要許多處理步驟,包括計算文本的覆蓋值、將文本的顏色信息和覆蓋值與重疊圖形的顏色信息相組合以及對得到的復(fù)合顏色值進(jìn)行伽馬修正。這些處理步驟可能需要相對長的時間來執(zhí)行,這可在將動畫插入到用戶界面中時導(dǎo)致時間延遲問題。例如,用戶界面允許交互式動畫,如在文本上放大或者相對于背景圖形滾動或移動文本。使用傳統(tǒng)再現(xiàn)技術(shù),每次在動畫之后重新再現(xiàn)文本時,都必須再次執(zhí)行相同的處理步驟以確定文本和圖形的新疊加的復(fù)合顏色值。因此,該處理步驟可能使界面以不連貫的或緩慢的方式響應(yīng)用戶。申請人:還進(jìn)一步意識到并理解,使用這些動畫化界面的裝置的類型正在改變。在諸如移動電話和平板電腦等具有觸摸屏界面的手持式計算機(jī)中動畫化界面是普遍的。然而,與桌上或膝上個人計算機(jī)相比,這種手持式計算機(jī)具有有限的資源和相對低速的處理器。使用這種有限的資源在動畫之后對文本進(jìn)行所述處理步驟可能使這些動畫化的界面進(jìn)·
一步減慢。申請人:還進(jìn)一步意識到并理解,由于當(dāng)文本相對于重疊顯示元素的位置改變時,復(fù)合顏色值可能改變,并且傳統(tǒng)的再現(xiàn)處理需要在新的復(fù)合顏色值上執(zhí)行伽馬修正,所以必須重復(fù)這些處理步驟。然而,申請人已經(jīng)意識到并理解,如果文本信息和關(guān)于其它顯示元素的信息可以在不進(jìn)行伽馬修正的情況下相組合,那么可以簡化必須在動畫之后進(jìn)行的處理步驟。具體來說,如果可以消除伽馬修正,那么可以在動畫之后將文本和其它重疊顯示元素的顏色信息線性組合。這種線性組合可以被快速地進(jìn)行。此外,包括子像素覆蓋值的文本信息可以被預(yù)先高速緩存,并且僅在動畫之后取回并且與有關(guān)重疊顯示元素的信息相組合。只進(jìn)行該組合可以加速界面的再現(xiàn),并且使該界面對于用戶觀看和操作來說更舒適。此外,申請人已經(jīng)意識到并且理解,一些傳統(tǒng)圖形處理單元(GPU)被專門配置為進(jìn)行一些再現(xiàn)操作,包括顏色信息的線性組合,并且可以快速進(jìn)行這些操作。如果GPU可被配置為進(jìn)行用于組合文本和其它的重疊顯示元素的顏色信息的操作,那么動畫之后的再現(xiàn)操作可被進(jìn)一步加速。例如,如果GPU被編程以對高速緩存的子像素覆蓋值的數(shù)據(jù)結(jié)構(gòu)操作,并且將高速緩存的子像素覆蓋值與文本和其它的重疊顯示元素的子像素顏色信息相組合以確定子像素的復(fù)合顏色值,那么再現(xiàn)操作可以被加速并且界面被改進(jìn)。因此,本文中描述用于計算與要被再現(xiàn)的文本有關(guān)的覆蓋信息以能夠高速緩存該覆蓋信息的技術(shù)。在一些實(shí)施例中,計算并高速緩存與子像素抗鋸齒技術(shù)一起使用的處理后的覆蓋值。當(dāng)子像素覆蓋值被高速緩存以供處理之后使用時,子像素覆蓋值可以被置于計算裝置的主存儲器中(例如,系統(tǒng)存儲器或視頻存儲器),而不將處理后的值與子像素的顏色信息相組合或相關(guān)聯(lián)。在一些實(shí)施例中,處理后的覆蓋值可以使文本的顏色信息能夠與一個或多個其它的重疊顯示元素的顏色信息線性組合,以計算在控制顯示器時使用的復(fù)合顏色值。在一些實(shí)施例中,可以在不進(jìn)行伽馬修正處理的情況下計算在控制顯示器的子像素中使用的這種復(fù)合顏色值。在本文中還描述用于取回高速緩存的子像素覆蓋值并且將該子像素覆蓋值與文本和其它的重疊顯示元素的顏色信息相組合以計算子像素的復(fù)合顏色值的技術(shù)。在一些實(shí)施例中,至少一個圖形處理單元(GPU)可被配置為使用該子像素覆蓋信息進(jìn)行操作并且計算子像素的復(fù)合顏色值。在一些情況下,GPU可被配置為基于分開存儲的文本的子像素顏色值和文本的子像素覆蓋值來計算子像素的復(fù)合顏色值。例如,子像素顏色值(其可以是對像素的紅、綠、藍(lán)顏色信道的控制值)可以存儲在與子像素覆蓋值不同的數(shù)據(jù)結(jié)構(gòu)中。這可以是如下情況=GPU本身適合于處理與單個像素有關(guān)的輸入信息,該信息設(shè)置在單個數(shù)據(jù)結(jié)構(gòu)中,其具有該像素的四個字段/值該像素的三個顏色值(紅、綠和藍(lán))和一個覆蓋值。在一些實(shí)施例中,利用子像素覆蓋值,GPU將處理像素的六個值三個子像素顏色值(紅、綠和藍(lán))和三個子像素覆蓋值。當(dāng)輸入信息以四值格式設(shè)置時,GPU可以高效且快速地處理該輸入信息。為了使數(shù)據(jù)處于四值格式以便高效處理,在一些實(shí)施例中,像素的顏色值與像素的覆蓋值分開并且位于不同的數(shù)據(jù)結(jié)構(gòu)中。在一些情況下,三個顏色值可以位于一個四值數(shù)據(jù)結(jié)構(gòu)中,并且三個子像素覆蓋值可以位于不同的四值數(shù)據(jù)結(jié)構(gòu)中。然后GPU可以被配置為使用兩個數(shù)據(jù)結(jié)構(gòu)處理單個像素的信息,而傳統(tǒng)上GPU使用單個數(shù)據(jù)結(jié)構(gòu)處理單個像素的所有信息(顏色值和覆蓋值)。下面描述這些技術(shù)的各種示例性的實(shí)施方式。然而,應(yīng)當(dāng)理解,實(shí)施例不局限于實(shí) 現(xiàn)所討論的這些示例技術(shù)中的任何一個,因?yàn)閷?shí)施例可以用任何適當(dāng)?shù)姆绞絹韺?shí)現(xiàn)。如前文討論的,本文描述的技術(shù)可被用于在顯示文本時確定用于控制顯示器的像素和子像素的復(fù)合顏色值。在一些情況下,可以單獨(dú)顯示文本,并且在計算復(fù)合顏色值時,子像素覆蓋值可以用于只修正文本的顏色信息。然而,在其它情況下,文本可以與一個或多個其它顯示元素重疊顯示,并且當(dāng)基于文本的和其它顯示元素的顏色信息計算復(fù)合顏色值時,可以使用該子像素覆蓋值。實(shí)施例不局限于計算與任何具體顯示元素或任何具體類型的顯示元素重疊的文本的復(fù)合顏色值。在各種實(shí)施例中,重疊顯示元素可以是在該文本的上面或后面顯示的一個或多個圖形,或者可以是其它文本。為了易于描述,在下面的例子中,子像素覆蓋值被描述為用于在文本與另一顯示元素重疊的情況下計算復(fù)合顏色值,并且其它的重疊顯示元素被描述為背景圖形。然而,應(yīng)當(dāng)理解,除非另外指出,否則這些示例性的技術(shù)中的任何一個都可以用于其它類型的重疊顯示元素或者文本不與任何其它顯示元素重疊的情況。本文描述的技術(shù)對于當(dāng)文本和重疊顯示元素之間的關(guān)系改變時快速且高效地顯示文本可以是有用的。當(dāng)文本或重疊顯示元素相對于彼此移動時,包括當(dāng)文本在用戶界面中移動時,這種關(guān)系可能改變。例如,當(dāng)文本在背景圖形上滾動時,本文中使用的技術(shù)可以是有用的。這些技術(shù)還可以在背景圖形相對于文本移動或者在與文本重疊的圖像改變的情況下使用。為了易于描述,下面的例子是在文本相對于背景圖形移動時再現(xiàn)文本的背景下給出的。然而,應(yīng)當(dāng)理解,這些技術(shù)對于出于任何原因再現(xiàn)文本都可以是有用的,包括響應(yīng)于任何相對變化或者響應(yīng)于請求顯示文本(其不與對文本的任何改變關(guān)聯(lián))。一些實(shí)施例可以結(jié)合子像素抗鋸齒技術(shù)操作,如MICR0S0FT CLEARTYPE 子像素抗鋸齒技術(shù)。子像素抗鋸齒技術(shù)結(jié)合如下顯示器操作該顯示器的像素包括多個子像素發(fā)光組件。本文描述的文本再現(xiàn)技術(shù)可以結(jié)合任何子像素抗鋸齒技術(shù)使用,包括本領(lǐng)域中已知的這樣的技術(shù)。圖IA以框圖的形式示出一些子像素抗鋸齒技術(shù)可以工作的顯示器的例子。圖IA的顯示器100包括5X7像素的陣列,包括像素102。顯示器100的每個像素包括三個子像素元素,每個子像素元素被設(shè)置為產(chǎn)生某個顏色的光。在圖IA中,顯示器100的第一行標(biāo)出了每個子像素被配置以產(chǎn)生的光的顏色紅(R)、綠(G)或藍(lán)(B)。例如,像素102包括紅子像素102A、綠子像素102B和藍(lán)子像素102C。顯示器的子像素可以被控制成使得該像素作為整體發(fā)射出某個顏色或強(qiáng)度的光。例如,通過控制紅、綠和藍(lán)子像素分別發(fā)射出一定量的光,整體地可以從該像素發(fā)射出紫色的光。使用灰度抗鋸齒和其它覆蓋技術(shù),整體地針對像素設(shè)置單個覆蓋值,該單個覆蓋值被用于調(diào)節(jié)每個子像素的顏色值。然而,使用子像素抗鋸齒技術(shù),改為每個子像素被分配各自的覆蓋值,使得每個子像素輸出的光可被控制,從而使用每個子像素產(chǎn)生效果。具體來說,每個子像素可以被分配在呈現(xiàn)平滑效果中使用的覆蓋值,以產(chǎn)生字形與重疊的背景圖形融合的外觀。當(dāng)使用通過使用子像素覆蓋值調(diào)節(jié)的顏色值來整體地控制像素時,這些子像素將產(chǎn)生預(yù)期的融合效果。圖IB示出通過向各個子像素分配覆蓋值而生成融合效果的例子。圖IB示出分別對應(yīng)于圖IA的顯示器100的子像素的覆蓋值的映射110。映射110示出當(dāng)要顯示“A”字形時,覆蓋值可以怎樣被分配。當(dāng)要顯示該字形時,映射110可以與其它信息相結(jié)合,以再現(xiàn)用于在顯示器100上顯示的該字形。在映射110中,顯示器的子像素被分配不同的覆蓋值。如像素112的例子中所示,一個像素的每個子像素可被分配不同的覆蓋值。分配給每個子像素的覆蓋值可被用于使用·該子像素顯示的文本顏色的透明度,從而產(chǎn)生與背景圖形的融合效果。如上文討論的,當(dāng)在復(fù)合顏色的計算中通過加權(quán)文本顏色而基于文本顏色和背景圖形的顏色確定復(fù)合顏色時,可以使用文本的覆蓋值。在子像素覆蓋值的情況下,其中子像素發(fā)射出某個顏色的光(例如,紅、綠或藍(lán)光),子像素覆蓋值可以與文本顏色和背景圖形顏色一起使用,以確定從每個子像素發(fā)射出的光的量或光的強(qiáng)度。通過使用子像素覆蓋值設(shè)置光的量/強(qiáng)度,可以使在顯示器中顯示的文本呈現(xiàn)出融合效果。如上文討論的,該融合可以柔化文本的邊緣,并且使該文本更適于人類觀看。應(yīng)當(dāng)理解,圖IA和圖IB的例子中給出的子像素的數(shù)目、顏色和排序僅是示例性的。實(shí)施例可適用于其它顏色的子像素(例如,黃色子像素)、每個像素具有更多或更少的子像素(例如,四個子像素)以及/或者可以以任何其它方式設(shè)置像素(例如,以藍(lán)一紅一綠排序代替紅一綠一藍(lán)),因?yàn)閷?shí)施例在這些方面沒有限制。此外,實(shí)施例也不局限于工作于任何具體類型的圖形界面、顯示器或計算裝置。本文中描述的技術(shù)可作為針對在任何適當(dāng)?shù)娘@示器中示出的任何圖形界面再現(xiàn)文本的一部分使用。此外,可以利用任何適當(dāng)?shù)挠嬎阊b置實(shí)現(xiàn)該圖形界面和顯示器。實(shí)施例可工作的計算裝置的例子包括膝上計算機(jī)或者桌上個人計算機(jī)、移動電話、包括智能電話和個人數(shù)字助理(PDA)的手持式計算機(jī)、平板計算機(jī)和服務(wù)器。圖2中示出一些實(shí)施例可工作的計算裝置的例子。圖2的框圖示出示例性的計算裝置200的一些組件。如所示的,計算裝置200包括一個或多個執(zhí)行進(jìn)程202 (在本文中還簡稱為“進(jìn)程”202),每個進(jìn)程可以與圖形引擎204交互,以請求在顯示器中顯示內(nèi)容。要被顯示的內(nèi)容可以包括可以由圖形引擎204使用抗鋸齒技術(shù)再現(xiàn)的文本。作為再現(xiàn)用于在顯示器上顯示的包括文本的內(nèi)容的一部分,圖形引擎204可以與至少一個圖形處理單元(GPU) 206交互,以進(jìn)行與再現(xiàn)相關(guān)的一些操作,并且可以另外將一些信息存儲在存儲器208 中。進(jìn)程202可以是執(zhí)行任何類型的處理或功能的任何適當(dāng)進(jìn)程,因?yàn)閷?shí)施例在這方面不受限制。進(jìn)程的例子包括與應(yīng)用軟件、系統(tǒng)軟件和/或其它類型的軟件相關(guān)聯(lián)的那些進(jìn)程。每個進(jìn)程的功能可以包括用于控制和/或顯示圖形用戶界面(GUI)的至少一部分的功能,用戶可以利用該GUI操作或促進(jìn)進(jìn)程202的其它功能。該GUI可以包括文本,在此情況下,顯示該⑶I可以包括在該⑶I中顯示文本。實(shí)施例不局限于以任何適當(dāng)格式顯示文本的GUI,并且不局限于以任何適當(dāng)格式存在的文本。在文本是英文文本的情況下,該文本可以包括字母和標(biāo)點(diǎn)符號的組合。在文本是其它語言的情況下,可以使用其它形式的其它字符。在⑶I包括文本的情況下,⑶I可以在一些情況下還允許文本的動畫化。響應(yīng)于這種動畫化,可以在顯示器上調(diào)節(jié)文本。這種調(diào)節(jié)可以包括相對于界面的其它顯示元素改變文本的位置或尺寸,如相對于背景圖形移動文本、相對于文本移動背景圖形或者改變背景或者如上文討論的任何其它適當(dāng)?shù)恼{(diào)節(jié)。因此顯示⑶I可以包括以例如相對于其它顯示 元素的新位置中的文本更新GUI的顯示。為了顯示或更新⑶I的顯示,進(jìn)程202可以與圖形引擎204交互。圖形引擎204可以實(shí)現(xiàn)由計算裝置200執(zhí)行的用于再現(xiàn)顯示器的圖形的功能的至少一部分。在一些實(shí)施例中,圖形引擎204可以作為抗鋸齒設(shè)施來操作,以確定與要再現(xiàn)的顯示器的文本相關(guān)的子像素覆蓋值。在一些實(shí)施例中,圖形引擎204可以另外包括產(chǎn)生文本的光柵圖像的功能,以準(zhǔn)備用于在圖形界面中顯示的文本。這種光柵圖像可以是任何適當(dāng)格式的,包括作為位圖。此外,在一些實(shí)施例中,圖形引擎204可以組合與要顯示的文本有關(guān)的信息和與其它顯示元素(如背景圖形)有關(guān)的信息,并且例如通過確定要在控制顯示中使用的復(fù)合顏色信息來準(zhǔn)備用于在顯示器上顯示的該組合。在一些實(shí)施例中,圖形引擎204可以實(shí)現(xiàn)MICR0S0FT Direct2d 和/或DIRECTX 圖形庫的一部分,它們每個都可以從華盛頓州雷蒙德市的微軟公司獲得??梢杂萌魏芜m當(dāng)?shù)姆绞綀?zhí)行圖形引擎204的功能。在一些實(shí)施例中,可以完全通過由計算裝置200的至少一個中央處理單元(CPU)執(zhí)行的指令來進(jìn)行圖形引擎204的功能。在其它實(shí)施例中,該功能的至少一部分可以通過由一個或多個GPU 206執(zhí)行的指令來進(jìn)行。在至少一些功能通過使用GPU 206來進(jìn)行的情況下,GPU 206可以由圖形引擎204配置以執(zhí)行該功能并且/或者被配置為執(zhí)行特殊指令。因此,為了顯示和更新用于與用戶交互的⑶I,進(jìn)程202可以與圖形引擎204交互。通過與圖形引擎204交互,進(jìn)程202可以將進(jìn)程202希望在顯示器中顯示的⑶I的內(nèi)容通知給圖形引擎204。與GUI的內(nèi)容有關(guān)的信息可以包括該GUI中所包括的顯示元素的任何適當(dāng)屬性,包括顯示元素的形狀、尺寸、位置和顏色。當(dāng)例如響應(yīng)于用戶輸入更新GUI時,任意或全部所述屬性可以再次在進(jìn)程202和圖形引擎204之間傳送。關(guān)于顯示元素的信息可以用任何適當(dāng)?shù)姆绞皆谶M(jìn)程202和圖形引擎204之間傳送。例如,一些實(shí)施例可以使用一個或多個應(yīng)用編程接口(API)函數(shù)調(diào)用,以在進(jìn)程202和圖形引擎204之間交換數(shù)據(jù)。如前文指出的,本文中描述的技術(shù)可被用于針對顯示器上顯示的界面再現(xiàn)和顯示文本。因此,在一些實(shí)施例中,進(jìn)程202可以與圖形引擎204交互以請求在⑶I中顯示文本并且/或者更新該文本的顯示??梢砸匀魏芜m當(dāng)?shù)氖綐釉诮缑嬷酗@示任何適當(dāng)?shù)奈谋?,因?yàn)閷?shí)施例在這方面不受限制。根據(jù)本文中描述的技術(shù),當(dāng)進(jìn)程202將在顯示器上顯示文本的請求發(fā)送給圖形引擎204時,圖形引擎204可以確定如何將該文本顯示在該界面中。下面結(jié)合圖3至圖7詳細(xì)討論可以由圖形引擎204執(zhí)行以確定如何顯示該文本的示例性操作。然而,簡言之,圖形引擎204可以基于字形描述的數(shù)據(jù)倉庫204A識別與要在顯示器上顯示的文本相對應(yīng)的形狀。如前文討論的,文本可以包括字符的任何適當(dāng)組合,并且字形可以是全部或部分字符。計算裝置可以包括字形描述的數(shù)據(jù)倉庫204A,其指示如何繪制字形的形狀,如在繪制字符時將使用的字形的線或點(diǎn)??梢曰谌魏芜m當(dāng)?shù)拿枋鲎R別字形的形狀,包括字形的圖像或者字形形狀的數(shù)學(xué)描述,因?yàn)閷?shí)施例在這方面不受限制。圖形引擎204可以根據(jù)數(shù)據(jù)倉庫204A的描述確定字形形狀到顯示器的像素和子像素的映射,該映射將被用于在顯示器上顯示該文本。上文討論了并且在圖IB中示出了這種映射的例子。然后圖形引擎204可以使用子像素抗鋸齒技術(shù)計算將在顯示該文本時使用 的子像素覆蓋值。在一些實(shí)施例中,當(dāng)圖形引擎204計算文本的子像素覆蓋值時,可以用如下方式計算該子像素覆蓋值該值可被高速緩存并且隨后在GUI中顯示或更新該文本時從該高速緩存器中取出該值。例如,在一些實(shí)施例中,使用子像素抗鋸齒技術(shù)針對該文本計算的子像素覆蓋值可以在被高速緩存之前被處理以產(chǎn)生處理后的覆蓋值。該處理可以包括通過將修正值施加于使用抗鋸齒技術(shù)計算出的初始覆蓋值來修改修正值。該修正值可以用任何適當(dāng)?shù)姆绞叫拚摮跏几采w值,以能夠高速緩存該覆蓋值并且使用高速緩存的覆蓋值。在一些實(shí)施例中,該修正值可以修改該初始覆蓋值,以模擬隨后進(jìn)行伽馬修正處理的效果,可以在界面中顯示文本和重疊圖形的復(fù)合之前對該復(fù)合進(jìn)行該伽馬修正處理。通過在高速緩存該覆蓋值之前模擬伽馬修正處理的效果,可以調(diào)節(jié)高速緩存的覆蓋值,以補(bǔ)償其上要顯示所述文本的顯示器的非線性。如前文討論的,顯示器的這種非線性阻礙文本和重疊圖形的顏色值的線性組合。通過在高速緩存該覆蓋值之前補(bǔ)償這種非線性,當(dāng)從高速緩存器取回該子像素覆蓋值時,該值可以與關(guān)于該文本和背景圖形的顏色信息組合而不進(jìn)行伽馬修正處理。因此,圖形引擎204可以直接對子像素覆蓋值進(jìn)行覆蓋修正處理,而不是對已經(jīng)與子像素的文本顏色值組合的覆蓋值進(jìn)行,盡管文本的顏色值可被用于通知該修正。作為進(jìn)行該覆蓋修正處理的一部分,圖形引擎204可以從覆蓋修正值的數(shù)據(jù)倉庫204B中取回修正值。下面結(jié)合圖5詳細(xì)討論圖形引擎204可以用來修正覆蓋值的技術(shù)。當(dāng)圖形引擎204已經(jīng)通過任何適當(dāng)?shù)奶幚碛嬎愠鎏幚砗蟮母采w值時,該處理后的覆蓋值可以被圖形引擎204寫到數(shù)據(jù)結(jié)構(gòu)210??梢允褂萌魏芜m當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)。在一些實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)210可以是四值圖形結(jié)構(gòu),其被配置為存儲與顯示元素有關(guān)的顏色信息,并且GPU固有地適合于處理。四值數(shù)據(jù)結(jié)構(gòu)可以存儲三個顏色值,每個子像素用一個顏色值,以及整體地用于像素的覆蓋值。這種結(jié)構(gòu)的例子是BGRA數(shù)據(jù)結(jié)構(gòu),其以藍(lán)一綠一紅一阿爾法格式存儲三個顏色值(藍(lán)、綠和紅)以及覆蓋(“阿爾法”)值。BGRA結(jié)構(gòu)可以對這四個不同值中的每一個使用八位。當(dāng)與圖形有關(guān)的信息是這種四通道格式時,其中三個通道用于顏色值,第四通道用于覆蓋值,GPU適于高效處理該信息。因?yàn)镚PU的操作和GPU的硬件寄存器被預(yù)配置為以該格式存儲值并且以該格式操作值,所以GPU可以高效地處理該格式的信息。因此,如果根據(jù)本文中描述的用于高速緩存子像素的覆蓋信息的技術(shù)使用四值結(jié)構(gòu),那么與其它格式的數(shù)據(jù)相比,GPU可以更容易處理四值格式的數(shù)據(jù)。因此,在一些實(shí)施例中,BGRA結(jié)構(gòu)可被用于存儲子像素覆蓋值。然而,如上文討論的,為了使用本文中描述的技術(shù)確定像素的顏色信息,一個像素可以使用六個值用于該像素的子像素的三個顏色值(紅、綠和藍(lán))以及用于該像素的子像素的三個覆蓋值。在使用該四值結(jié)構(gòu)存儲子像素覆蓋值的實(shí)施例中,這六個值不能存儲在一個數(shù)據(jù)結(jié)構(gòu)中。因此,在一些實(shí)施例中,該顏色控制信息可以被分開存儲在例如不同的四值結(jié)構(gòu)中,使得每個像素可以與兩個不同的四值結(jié)構(gòu)相關(guān)聯(lián)。在此情況下,一個四值結(jié)構(gòu)可以用于存儲覆蓋值,并且第二個四值結(jié)構(gòu)可以用于存儲顏色值。在GPU適于快速且高效地處理四值結(jié)構(gòu)中的值的情況下,該GPU可適于在該四值結(jié)構(gòu)的對應(yīng)位置中的值相互關(guān)聯(lián)的情況下進(jìn)行該處理。例如,該GPU可以適于在每個四值結(jié)構(gòu)的第一個值涉及藍(lán)色子像素的情況下快速處理數(shù)據(jù)。因此,盡管在一些實(shí)施例中可以將六個值存儲在兩個不同的四值數(shù)據(jù)結(jié)構(gòu)中,但是這些值不可以被分成在一個結(jié)構(gòu)中四個值,在另一個結(jié)構(gòu)中兩個值。如果以這種方式分割這些值,那么這些值中的一個將位于該四 值結(jié)構(gòu)中不與相關(guān)的值的位置相對應(yīng)的位置中。例如,如果三個顏色值(藍(lán)、綠和紅)和一個覆蓋值(藍(lán))設(shè)置在四值數(shù)據(jù)結(jié)構(gòu)中,那么該數(shù)據(jù)結(jié)構(gòu)中的藍(lán)色值的位置將不對應(yīng)于藍(lán)色覆蓋值的位置。一些GPU將不能夠快速且高效地處理以這種方式存儲的顏色值和覆蓋值,因?yàn)樵揋PU固有地不被配置為處理存儲在不同位置處的藍(lán)色值。因此,在像素的三個顏色值和三個覆蓋值被分割的情況下,顏色值可以存儲在一個結(jié)構(gòu)中,覆蓋值可以存儲在不同的結(jié)構(gòu)中。在這樣的一些情況下,每個四值數(shù)據(jù)結(jié)構(gòu)中的一個值可以是空的。然而,應(yīng)當(dāng)理解,可以使用其它數(shù)據(jù)結(jié)構(gòu)格式。例如,可以使用以不同格式組織數(shù)據(jù)的其它四值格式,如RGBA結(jié)構(gòu)。作為另一個例子,可以使用具有不同數(shù)目的信道的數(shù)據(jù)結(jié)構(gòu)。在一些實(shí)施例中,可以使用三信道數(shù)據(jù)結(jié)構(gòu)(例如,BGR結(jié)構(gòu))來存儲覆蓋值。在其它實(shí)施例中,可以使用六信道數(shù)據(jù)結(jié)構(gòu),其可存儲三個不同子像素中每一個的子像素覆蓋值和顏色值二者(例如,用于紅、綠和藍(lán)子像素的兩個值)。與結(jié)構(gòu)210的格式無關(guān),當(dāng)圖形引擎204產(chǎn)生處理后的覆蓋值時,處理后的覆蓋值可被輸出到數(shù)據(jù)結(jié)構(gòu)210??杀惠敵龅脑摳采w值包括像素的每個子像素的覆蓋值。例如,可以產(chǎn)生并存儲藍(lán)覆蓋值、綠覆蓋值和紅覆蓋值。在數(shù)據(jù)結(jié)構(gòu)包括顏色專用信道時,子像素覆蓋值可以存儲在對應(yīng)的信道中。例如,利用BGRA結(jié)構(gòu),傳統(tǒng)上存儲藍(lán)色信道的顏色控制信息的B信道可以被用于存儲藍(lán)色子像素覆蓋值。然后可以用任何適當(dāng)?shù)姆绞绞褂脭?shù)據(jù)結(jié)構(gòu)210。為了高速緩存覆蓋值,數(shù)據(jù)結(jié)構(gòu)210可被存儲在存儲器208中,如存儲在文本覆蓋值的高速緩存器208A中。存儲器208可以是可以高速緩存信息的任何適當(dāng)?shù)拇鎯ζ鳎S機(jī)訪問存儲器(RAM)或者存儲驅(qū)動。RAM的例子包括系統(tǒng)存儲器和視頻存儲器。存儲驅(qū)動的例子包括硬盤驅(qū)動和固態(tài)驅(qū)動(SSD)。數(shù)據(jù)結(jié)構(gòu)210還可被傳送到GPU 206以在與圖形相關(guān)的操作中使用。例如,作為再現(xiàn)處理的一部分,數(shù)據(jù)結(jié)構(gòu)210可被發(fā)送到GPU 206。作為再現(xiàn)處理的一部分,GPU 206可以基于使用每個像素顯示的顯示元素來確定顯示器的每個子像素的復(fù)合顏色信息。對于將要顯示文本的像素,存儲在結(jié)構(gòu)210中的子像素覆蓋值可被GPU 206用來確定復(fù)合顏色值。在一些實(shí)施例中,圖形引擎204可以配置GPU 206以能夠處理存儲在結(jié)構(gòu)210中的覆蓋值。如上文討論的,GPU 206可以固有地適于處理四信道數(shù)據(jù)結(jié)構(gòu),如BGRA結(jié)構(gòu),但是GPU 206可以適于處理這種格式的顏色值,而不是覆蓋值。因此,在一些實(shí)施例中,為了GPU 206處理覆蓋值,GPU 206可以被配置為以特定的方式使用結(jié)構(gòu)210。GPU 206可以被配置為在修正后的文本顏色值和背景圖形顏色值之間插值之前使用結(jié)構(gòu)210來修正文本顏色值。例如,GPU 206可被配置為在一些情況下從BGRA結(jié)構(gòu)的藍(lán)、綠和紅信道中的每個信道取回子像素覆蓋值并且不從阿爾法信道取回數(shù)據(jù)。GPU 206可被進(jìn)一步配置為將這些子像素覆蓋值乘以分開的BGRA結(jié)構(gòu)中的藍(lán)、綠和紅信道的顏色值,以產(chǎn)生修正后的文本顏色值。如前文討論的,GPU 206還可以被配置為將修正后的顏色值與背景圖形的顏色信息相組合以產(chǎn)生用于控制顯示器的子像素的復(fù)合顏色值。在不使用四信道結(jié)構(gòu)而是使用其它格式(如存儲覆蓋值和顏色值二者的六信道格式)的其它實(shí)施例中,GPU 206可以被配置為以任何適當(dāng)?shù)姆绞绞褂眠@些格式的數(shù)據(jù)。圖形引擎204可以采用任何適當(dāng)?shù)膭幼饕皂憫?yīng)于來自與顯示器中的內(nèi)容的顯示有關(guān)的進(jìn)程202的任何適當(dāng)?shù)妮斎?。在一些?shí)施例中,圖形引擎204可以響應(yīng)于從進(jìn)程202接收到要被顯示的文本內(nèi)容和該文本要被顯示的顏色,計算并高速緩存文本的覆蓋值。在一些情況下,響應(yīng)于接收到文本和字體顏色,圖形引擎204可以不再現(xiàn)或顯示文本。圖形引 擎204可以改為計算子像素覆蓋值,然后產(chǎn)生數(shù)據(jù)結(jié)構(gòu)210并且存儲覆蓋值,例如通過將數(shù)據(jù)結(jié)構(gòu)210存儲在存儲器208的高速緩存器208A中。在一些實(shí)施例中,圖形引擎204還可以在這時高速緩存字體顏色信息。之后,圖形引擎204可以從進(jìn)程202接收在顯示器上的具體位置再現(xiàn)文本的請求,例如當(dāng)文本在用戶界面中相對于背景圖形移動時。在圖形引擎204不高速緩存字體顏色的情況下,再現(xiàn)文本的請求還可以包括文本的字體顏色。當(dāng)圖形引擎204從進(jìn)程202接收到位置信息時,圖形引擎204可以取回高速緩存在高速緩存器208A中的數(shù)據(jù)結(jié)構(gòu)210中的文本的子像素覆蓋值,并且操作GPU 206以使用高速緩存的覆蓋值計算顯示器的與該位置相對應(yīng)的像素和子像素的復(fù)合顏色值。如前文討論的,現(xiàn)代的用戶界面可以使用戶能夠進(jìn)行大量的用戶界面元素的動畫。通過允許高速緩存子像素覆蓋值,本文中描述的技術(shù)可以在這種動畫之后允許更快速地對顯示器再現(xiàn)文本。以前,每次在動畫之后重新再現(xiàn)文本時,需要針對文本的新位置確定覆蓋值,之后在確定文本和重疊圖形的復(fù)合顏色值時使用該覆蓋值,之后該復(fù)合顏色值被伽馬修正以補(bǔ)償顯示器的非線性。該處理是集中的并且減慢了界面對動畫的響應(yīng)。相反,在一些實(shí)施例中,已經(jīng)被修正以補(bǔ)償該非線性的文本的子像素覆蓋值被存儲并且可以被取回。然后當(dāng)要重新再現(xiàn)文本時,該子像素覆蓋值只是被取回并且與要被重新再現(xiàn)的文本和背景圖形的顏色信息相組合。該處理更高效并且可以使用GPU固有適于處理的對數(shù)據(jù)結(jié)構(gòu)的線性操作來完成,這使得該操作能夠在GPU上快速進(jìn)行。因此,重新再現(xiàn)處理能夠更加高效地進(jìn)行。如前文討論的,當(dāng)文本第一次被再現(xiàn)時,圖形引擎204可以執(zhí)行任何適當(dāng)?shù)牟僮饕杂嬎阕酉袼馗采w值并且高速緩存子像素覆蓋值,并且當(dāng)重新再現(xiàn)該文本時使用高速緩存的子像素覆蓋值來確定像素的復(fù)合顏色值。在一些實(shí)施例中,圖形引擎204可以通過至少將高速緩存的覆蓋值和指令傳送給GPU 206來操作GPU 206,以執(zhí)行這些操作的至少一部分。圖3示出圖形引擎可以執(zhí)行用來計算和高速緩存覆蓋值的一個示例性處理(在一些實(shí)施例中包括通過配置GPU然后接著進(jìn)行該計算和高速緩存)。在開始圖3的處理300之前,在計算裝置的至少一個處理器上執(zhí)行的執(zhí)行進(jìn)程可以已經(jīng)將與將要在與該計算裝置相關(guān)聯(lián)的顯示器上顯示的文本有關(guān)的信息發(fā)送到該圖形引擎。與該文本有關(guān)的信息可以包括要被顯示的文本的內(nèi)容。該內(nèi)容可以是被表示為字符串或者任何其它適當(dāng)形式的文本本身。在一些情況下,與該文本有關(guān)的信息還可以包括該文本的顯示屬性,如該文本的顏色、該文本的位置或者與將如何顯示該文本有關(guān)的任何其它參數(shù)。然而,在其它實(shí)施例中,該文本的一些參數(shù)可以不在處理300之前接收,如該文本將要在顯示器上顯示的位置。與接收到什么信息無關(guān),一旦圖形引擎接收到與該文本有關(guān)的信息,處理300就開始??梢允褂靡阎募夹g(shù)執(zhí)行圖3的流程圖的前三個塊(即塊302、304、306)的操作。因此,在此不需要詳細(xì)討論這些操作。然而,為了說明可以實(shí)現(xiàn)實(shí)施例的方式,提供對這些操作的簡單討論。
在塊302中,圖形引擎識別該文本內(nèi)容的要被顯示的字形的形狀。識別要被顯示的字形的形狀可以包括從要被用于顯示該文本的字體的字體庫中取回該形狀的描述。當(dāng)要被用于顯示該字形的形狀被取回時,在塊304中,圖形引擎可以產(chǎn)生形狀到顯示器的像素的映射,該映射將被用于顯示該文本。該映射定義每個字形的相對位置,并因此定義了當(dāng)再現(xiàn)該文本時將會受影響的顯示器的一部分像素。該映射將在塊306中使用以設(shè)置子像素的覆蓋值。可以使用包括已知技術(shù)的任何適當(dāng)?shù)募夹g(shù),利用與每個像素有關(guān)的信息以及每個像素是否將被用于繪制每個字形的形狀來產(chǎn)生形狀的映射。在一些情況下,與每個像素有關(guān)的信息可以是表示該像素是否將被用于表示字形形狀的雙態(tài)“是”或“否”。在使用這種雙態(tài)值的一些情況下,該映射可以是每像素一位的映射,其針對顯示器的每個像素使用一位來表示該像素是否被用于繪制該映射(字形?)。在使用雙態(tài)值的其它情況下,可以在該文本的兩個維度中的一維或兩維上過采樣該映射。例如,可以使用已知的CLEARTYPE 技術(shù),通過從字形形狀取得將被用于表示字形形狀的至少一部分的每個像素的多個“樣本”,來產(chǎn)生過采樣的映射。CLEARTYPE 通過考慮將像素分割成與過采樣的量相對應(yīng)的相等區(qū)域6X I區(qū)域(即,在水平方向上6個區(qū)域,在豎直方向上一個行中)或者6X5區(qū)域(即,在水平方向上6個區(qū)域,在豎直方向上5行中)來取得樣本。當(dāng)將字形的形狀與像素和針對每個像素識別的相等區(qū)域進(jìn)行比較時,可以使用雙態(tài)值來表示該形狀是否與具體的區(qū)域重疊。圖形引擎可以通過產(chǎn)生每個字形的個別映射然后將這些個別映射合并以產(chǎn)生文本的映射、或者通過合并字形并且整體地產(chǎn)生文本的映射,來產(chǎn)生塊304的映射,因?yàn)閷?shí)施例在這方面不受限制。在塊304中產(chǎn)生該映射后,在塊306中使用該映射來設(shè)置將被用于再現(xiàn)該文本的顯示器的子像素的覆蓋值??梢杂萌魏芜m當(dāng)?shù)姆绞绞褂迷撚成鋪碓O(shè)置覆蓋值,包括使用已知的用于子像素抗鋸齒的技術(shù)。例如,可以使用已知的技術(shù)基于該映射的雙態(tài)值(包括基于過采樣映射的雙態(tài)值)設(shè)置覆蓋值。對于過采樣映射,例如,可以與根據(jù)采樣將被用于表示字體形狀的區(qū)域的數(shù)目成比例地設(shè)置覆蓋值??梢杂萌魏芜m當(dāng)?shù)姆绞竭M(jìn)行基于過采樣映射設(shè)置覆蓋值,包括使用已知的技術(shù),因?yàn)閷?shí)施例在這方面不受限制。例如,對于子像素抗鋸齒,可以針對像素的每個子像素使用CLEARTYPE 技術(shù)來確定覆蓋值。在使用過采樣的情況下,像素的一些區(qū)域?qū)⑴c該像素的每個子像素相對應(yīng)。可以與對應(yīng)于該子像素的對應(yīng)于字形形狀的樣本數(shù)量成比例地設(shè)置該子像素的覆蓋值。相比于對應(yīng)于字形的形狀,在子像素對應(yīng)于較多樣本的情況下,該子像素的覆蓋值可設(shè)置為使用該子像素顯示該文本的較暗的陰影/顏色。相反,在子像素對應(yīng)于較少樣本的情況下,覆蓋值可被設(shè)置為顯示較亮的陰影
/顏色。因此,在像素包括三個水平排列的子像素的情況下,可以確定三個不同的覆蓋值每個子像素一個。在一些實(shí)施例中,可以基于初步覆蓋值計算每個子像素的覆蓋值。例如,在塊304中針對每個像素取得多個豎直行的樣本,如在上文討論的6X5采樣例子中,并且像素包括三個水平排列的子像素,可以首先獲得每個子像素的多個覆蓋值。這可以通過確定每行樣本的每個子像素的覆蓋值來完成,如在前面的6X1例子中,對于子像素,其將為每個子像素產(chǎn)生五個初步覆蓋值;每行樣本一個。然后這些初步覆蓋值可以用任何適當(dāng)?shù)姆绞浇M合以產(chǎn)生子像素的單個覆蓋值,包括通過將該子像素的初步覆蓋值平均。通過塊302、304、306的操作,圖形引擎可以為子像素確定一組子像素覆蓋值,該 組子像素覆蓋值將被用于顯示由處理300開始之前的執(zhí)行進(jìn)程請求的文本。在塊306中計算出的子像素覆蓋值可被認(rèn)為是“初始”覆蓋值,因?yàn)樵谝恍?shí)施例中,這些覆蓋值可以用某些方式進(jìn)一步處理以產(chǎn)生處理后的子像素覆蓋值。例如,可以基于用戶喜好來調(diào)節(jié)通過在塊306中應(yīng)用的子像素抗鋸齒處理產(chǎn)生的初始覆蓋值以產(chǎn)生處理后的覆蓋值。也可以進(jìn)行任何其它處理,因?yàn)閷?shí)施例在這方面不受限制。因此,在塊308中,圖形引擎以某些方式處理該初始覆蓋值以產(chǎn)生處理后的覆蓋值。在一些實(shí)施例中,通過塊308的處理,覆蓋值可以被調(diào)節(jié)以允許與文本有關(guān)的顏色信息(包括子像素覆蓋值)直接并且線性地與諸如將要與該文本一起顯示的背景圖形等其它顯示元素的有關(guān)顏色信息組合,而不需要進(jìn)一步修正。而使用傳統(tǒng)技術(shù),當(dāng)覆蓋值與有關(guān)文本的顏色信息和有關(guān)背景圖像的顏色信息一起使用以確定用于控制顯示器的子像素的復(fù)合顏色值以示出該文本時,必須進(jìn)行額外處理以修正該組合。這種額外處理可能包括伽馬修正。這是因?yàn)椋缜拔挠懻摰?,?dāng)使用線性插值組合文本和圖形的顏色信息時,人類將不會覺得得到的復(fù)合顏色值是正確的。因此,在伽馬修正處理期間使用傳統(tǒng)技術(shù)修正插值結(jié)果以產(chǎn)生修正的復(fù)合顏色值。然而,在塊308的處理期間,圖形引擎可以處理初始覆蓋值以補(bǔ)償顯示器的非線性,并且能夠利用有限的后續(xù)處理組合有關(guān)文本的顏色信息與有關(guān)背景圖形的顏色信息。例如,初始覆蓋值可被修改為使得能夠線性組合顏色信息以產(chǎn)生用于將該文本與背景圖形一起顯示的復(fù)合顏色值。作為另一個例子,可以修正初始覆蓋值以消除在插值之后伽馬修正處理的進(jìn)行。在塊308中,圖形引擎可以用任何適當(dāng)?shù)姆绞綄Ω采w值執(zhí)行任何適當(dāng)?shù)奶幚怼O旅娼Y(jié)合圖5和圖6詳細(xì)討論可以執(zhí)行的處理的例子。在圖形引擎已經(jīng)處理了覆蓋值以產(chǎn)生處理后的覆蓋值之后,在塊310中,圖形引擎高速緩存處理后的覆蓋值。圖形引擎可以用任何適當(dāng)?shù)姆绞礁咚倬彺嫣幚砗蟮母采w值。在一些實(shí)施例中,圖形引擎可以以如下數(shù)據(jù)結(jié)構(gòu)高速緩存處理后的覆蓋值,該數(shù)據(jù)結(jié)構(gòu)具有與圖像處理單元(GPU)的硬件組織和固有操作匹配的尺寸和組織。例如,圖形引擎可以以四值數(shù)據(jù)結(jié)構(gòu)高速緩存將被用于在顯示器中顯示文本的每個像素的處理后的子像素覆蓋值,該四值數(shù)據(jù)結(jié)構(gòu)具有用于三個顏色值和一個覆蓋值的字段。在被設(shè)置在該四值數(shù)據(jù)結(jié)構(gòu)中之后,該覆蓋值可以被存儲在計算裝置的存儲器中。該覆蓋值可被存儲在該計算裝置的存儲器中(包括該計算裝置的系統(tǒng)存儲器、視頻存儲器或者存儲驅(qū)動中)以便稍后在再現(xiàn)期間使用。在塊310中存儲了在塊308中處理的子像素覆蓋值之后,處理300結(jié)束。在處理300之后,圖形引擎可以進(jìn)行與子像素覆蓋值有關(guān)的任何適當(dāng)動作。在一些實(shí)施例中,圖形引擎可以向最初提供該文本的執(zhí)行進(jìn)程提供高速緩存的子像素覆蓋值的標(biāo)識符。提供給該執(zhí)行進(jìn)程的標(biāo)識符可以是任何適當(dāng)?shù)臉?biāo)識符,包括高速緩存的覆蓋值在存儲器中的地址或者由圖形引擎使用的標(biāo)識符,并且圖形引擎以后可以使用該標(biāo)識符取回高速緩存的覆蓋信肩、O圖形引擎可以隨后以任何適當(dāng)?shù)姆绞讲⑶以谌魏芜m當(dāng)?shù)臅r間使用高速緩存的覆蓋值。圖形引擎可以隨后從該執(zhí)行進(jìn)程接收在顯示器上再現(xiàn)和顯示該文本的請求。該執(zhí)行進(jìn)程可以在任何適當(dāng)操作之后或者響應(yīng)于任何適當(dāng)條件進(jìn)行該請求,因?yàn)閷?shí)施例在這方面不受限制。在一些實(shí)施例中,該執(zhí)行進(jìn)程可以響應(yīng)于用戶請求觀看界面或者響應(yīng)于用戶與界面交互而請求顯示該文本。當(dāng)用戶交互導(dǎo)致文本改變時,例如當(dāng)用戶使文本動畫化時,該交互可以促使重新顯示或者更新文本的顯示。例如,當(dāng)該文本在界面中相對于背景圖形移 動或者以另外方式被動畫化時,該文本可以被重新顯示。不是由與用戶的交互導(dǎo)致的用戶界面的其它動畫化也可以促使該文本的重新再現(xiàn)。例如,在用戶界面被配置為示出在顯示器上滾動的文本的情況下,可以在該滾動期間重復(fù)重新再現(xiàn)該文本。響應(yīng)于從該執(zhí)行進(jìn)程接收到該請求,圖形引擎可以執(zhí)行各種操作以顯示其覆蓋值已經(jīng)被高速緩存的文本。圖4的處理400是可以由用于顯示其覆蓋值已經(jīng)被高速緩存的文本的圖形引擎實(shí)現(xiàn)的技術(shù)的一個例子。在處理400開始之前,可以已經(jīng)用任何適當(dāng)方式(包括通過圖3的處理300)產(chǎn)生,處理并高速緩存子像素覆蓋值。處理400在塊402開始,在塊402,圖形引擎從執(zhí)行進(jìn)程接收至少一個指令以再現(xiàn)該文本。來自該執(zhí)行進(jìn)程的指令可以包括該文本的任何適當(dāng)?shù)娘@示屬性。在一些實(shí)施例中,與該文本有關(guān)的信息可以包括該文本要被顯示的字體顏色和該文本要被顯示的位置。該指令還可以包括先前確定的并且高速緩存的子像素覆蓋值的任何適當(dāng)標(biāo)識符。在一些實(shí)施例中,該指令可以包括高速緩存的子像素覆蓋值在存儲器中的地址或者由圖形引擎保持的所高速緩存的覆蓋值的標(biāo)識符,該引擎可以使用該標(biāo)識符取回該覆蓋值。為了允許GPU確定用于重新再現(xiàn)該文本的復(fù)合顏色值,在塊404中,圖形引擎使圖像處理單元(GPU)可以利用被高速緩存的該文本的子像素覆蓋值。在一些情況下,圖形引擎可以響應(yīng)于塊402的指令從存儲器取回高速緩存的覆蓋值,并且將高速緩存的覆蓋值存儲在可被GPU訪問的存儲器位置中。在其它情況下,圖形引擎可以將高速緩存的覆蓋值預(yù)先置于GPU可以訪問的存儲器位置中。在高速緩存的覆蓋值可以被GPU利用的情況下,圖形引擎可以在某些情況下確保高速緩存的覆蓋值仍可以被GPU利用。當(dāng)該文本的覆蓋值已經(jīng)可以被利用之后,在塊406中,圖形引擎以類似的方式使將要與該文本重疊顯示的該界面的一個或多個其它顯示元素的信息可以被GPU利用。所述一個或多個其它顯示元素可以包括將要與該文本一起顯示并且在顯示器的某些位置中與該文本重疊的背景圖形。所述其它顯示元素的信息可以包括用于顯示其它顯示元素的顯示器的像素或子像素的顏色值。如上文討論的,當(dāng)兩個以上的顯示元素在圖形界面中重疊顯示時,基于顯示元素的顏色計算顯示器的每個像素的顏色值,以產(chǎn)生重疊效果。計算裝置的GPU被配置為快速進(jìn)行與再現(xiàn)圖形相關(guān)的各種操作。在這些操作當(dāng)中,基于顯示元素的顏色確定像素的復(fù)合顏色。GPU典型地被配置為對四值數(shù)據(jù)結(jié)構(gòu),如上文討論的BGRA數(shù)據(jù)結(jié)構(gòu),執(zhí)行這種操作。這種數(shù)據(jù)結(jié)構(gòu)具有三個子像素中每一個子像素的顏色值和作為整體的像素的覆蓋值。然而,GPU不是傳統(tǒng)上那樣配置為處理多個子像素中每一個子像素的覆蓋值,并且不適于在四值結(jié)構(gòu)的顏色信道(即,BGR信道)存儲子像素覆蓋值的情況下處理BGRA數(shù)據(jù)結(jié)構(gòu)。GPU改為如常規(guī)被配置為使用存儲在這些信道中的顏色值。然而,在一些實(shí)施例中,在塊404中取回的子像素覆蓋值可以由GPU處理,作為基于文本的顏色信息和背景圖形的顏色信息確定子像素的復(fù)合顏色值的一部分。因此,在塊408中,GPU可被配置為處理將子像素覆蓋信息存儲在至少三個信道中的四值數(shù)據(jù)結(jié)構(gòu)??梢杂萌魏芜m當(dāng)?shù)姆绞綀?zhí)行塊408的配置。在一些情況下,塊408的配置可以包括向GPU提供使用存儲在四值數(shù)據(jù)結(jié)構(gòu)中的作為子像素覆蓋值的數(shù)據(jù)來執(zhí)行的指令。GPU可以用任何適當(dāng)?shù)姆绞绞褂脕碜栽摻Y(jié)構(gòu)的子像素覆蓋值,包括通過將文本的子像素覆蓋值與顏色信息相組合。 在塊408中配置GPU之后,在塊410中,GPU可以執(zhí)行配置GPU的指令。具體來說,在塊410中,GPU確定將要顯示文本和背景圖形重疊的顯示器的子像素的復(fù)合顏色值。GPU可以針對每個子像素組合文本的覆蓋值與顏色值和背景圖形的顏色值,以產(chǎn)生子像素的復(fù)合顏色值。在一些實(shí)施例中,GPU可以在文本的顏色值和圖形的顏色值之間進(jìn)行線性插值。為了進(jìn)行該線性插值,GPU可以將文本的顏色值與圖形的顏色值相加,以確定復(fù)合顏色值,文本的子像素覆蓋值被用于對該相加加權(quán)。例如,在與背景圖形的顏色值相加之前,像素的每個顏色信道的子像素覆蓋值可以乘以該文本的像素和對應(yīng)顏色信道的顏色值。附加地或者可選地,在與文本顏色值相加之前,子像素覆蓋值的補(bǔ)數(shù)可以乘以背景顏色值。更具體來說,在一些實(shí)施例中,可以通過將文本顏色值(C)乘以子像素覆蓋值(α),將背景顏色值(B)乘以子像素覆蓋值的補(bǔ)數(shù)(l-α),并且將這些乘積相加在一起(CX α+(1-α)ΧΒ),來確定子像素的復(fù)合顏色值。如上文討論的,被高速緩存并且在塊404中從高速緩存器中取回的子像素覆蓋值可以已經(jīng)被處理,從而允許用這種方式進(jìn)行文本顏色值和背景顏色值的線性組合。子像素覆蓋值可以已經(jīng)被處理以限制或消除該線性組合之后對復(fù)合覆蓋值的進(jìn)一步處理。例如,可以已經(jīng)處理子像素覆蓋值以不必在該線性插值之后進(jìn)行伽馬修正處理。此外,在通過線性插值確定每個子像素的復(fù)合顏色值之后,可以在顯示文本和背景圖形時使用這些復(fù)合顏色值。例如,可以直接使用這些復(fù)合顏色值以控制顯示器或者在進(jìn)一步的操作中組合該復(fù)合顏色值與有關(guān)其它顯示元素的顏色信息以產(chǎn)生進(jìn)一步的復(fù)合顏色值。因此,在計算出將被用于顯示文本和背景圖形的顯示器的每個子像素的復(fù)合顏色值之后,在塊412中,該復(fù)合顏色值可被用于將該內(nèi)容顯示在顯示器中。在該內(nèi)容被顯示之后,處理400結(jié)束。在處理400之后,用戶可以再次與該界面交互,并且可以在該界面中使文本動畫化。當(dāng)文本被再次動畫化時,可以重復(fù)處理400,以基于高速緩存的該文本的子像素覆蓋值確定顯示器的每個子像素的新的復(fù)合值。通過高速緩存子像素覆蓋值,與重疊的圖形一起再現(xiàn)文本可以被更高效地進(jìn)行并且可以更快速地操作。同樣還可以更高效地進(jìn)行用于執(zhí)行該再現(xiàn)的硬件操作和再現(xiàn)命令。例如,在一些實(shí)施例中,可以進(jìn)行單個API調(diào)用以組合高速緩存的子像素覆蓋值與底層的圖形。例如,可以進(jìn)行單個API調(diào)用以融合子像素覆蓋值與目的地表面,其中事先已經(jīng)使用有關(guān)背景圖形的顏色信息定義了該目的地表面。此外,在圖形處理單元被配置為識別存儲在四信道數(shù)據(jù)結(jié)構(gòu)中的子像素覆蓋值之后,可以由GPU在顯示器的子像素上通過單個傳遞(single pass),而不是通過在每個子像素上的重復(fù)操作,來進(jìn)行由API調(diào)用觸發(fā)的融合。如上文結(jié)合圖3討論的,當(dāng)使用子像素抗鋸齒處理確定了文本的初始子像素覆蓋值時,可以用某種方式處理這些初始覆蓋值,以產(chǎn)生處理后的覆蓋值。該處理可以包括與用戶喜好相關(guān)的處理、與消除或減少稍后進(jìn)行的伽馬修正處理的需要相關(guān)的處理或者任何其它處理。實(shí)施例在這方面不受限制。圖5至圖6示出可用于處理在高速緩存子像素覆蓋值之前使用子像素抗鋸齒技術(shù)確定的初始覆蓋值的兩個示例性處理。
在圖5的處理500開始之前,圖形引擎接收到將被顯示的文本的內(nèi)容和該文本的字體顏色,并且計算該文本的子像素覆蓋值。通過處理500,可以修正這些覆蓋值。處理500在塊502開始,在塊502中,圖形引擎基于與抗鋸齒技術(shù)有關(guān)的用戶喜好調(diào)節(jié)初始子像素覆蓋值。如上文討論的,抗鋸齒技術(shù)被用于使文本更適于人類用戶觀看。不同的用戶可能具有與文本有關(guān)的不同舒適水平,因此一些計算裝置可以允許用戶指定抗鋸齒應(yīng)該被感知為子像素抗鋸齒而不是灰度抗鋸齒的程度。例如,當(dāng)以某種方式設(shè)置用戶喜好值(例如,設(shè)置為零值)時,圖形引擎可以通過將像素的所有子像素覆蓋值保持相同來進(jìn)行灰度抗鋸齒處理而不是子像素抗鋸齒處理。這種用戶喜好和設(shè)置它們的方式在本領(lǐng)域中是已知的,并且實(shí)施例可以實(shí)現(xiàn)任何適當(dāng)?shù)募夹g(shù)(包括已知的技術(shù))來應(yīng)用這樣的喜好。在塊502中,可以基于用戶喜好設(shè)置來調(diào)節(jié)最初確定的子像素覆蓋值??梢杂萌魏芜m當(dāng)?shù)姆绞綀?zhí)行塊502的調(diào)節(jié),包括使用已知的技術(shù)。MICR0S0FT CLEARTYPE 文本再現(xiàn)軟件包括用于基于用戶喜好調(diào)節(jié)覆蓋值的已知技術(shù),其可被用在一些實(shí)施例中。因此,在此不需要詳細(xì)討論調(diào)節(jié)覆蓋值。簡言之,在塊502中,圖形引擎可以基于用戶喜好來權(quán)衡為每個子像素設(shè)置的覆蓋值與為像素的相鄰子像素設(shè)置的覆蓋值。例如,在包括以紅、綠、藍(lán)的順序排列的三個子像素的顯示器中(如圖IA的例子中),可以將紅和綠子像素的覆蓋值相互權(quán)衡,并且可以將綠和藍(lán)子像素的覆蓋值相互權(quán)衡。圖形引擎可以使用線性插值進(jìn)行該權(quán)衡。例如,可以通過將用戶喜好值(β)乘以初始紅色子像素覆蓋值(%),將用戶喜好值的補(bǔ)數(shù)(I-β)乘以初始綠色子像素覆蓋值(ag),并且將這些乘積相加,來調(diào)節(jié)紅色子像素覆蓋值,從而執(zhí)行等式(I)
a / =a rX β + a gX (l-β )(I)
可以通過應(yīng)用等式(2)對藍(lán)色子像素覆蓋值執(zhí)行類似的計算。
a / =a bX β + a gX (l-β )(2)
在基于用戶喜好調(diào)節(jié)初始覆蓋值之后,圖形引擎可以基于文本顏色的亮度進(jìn)一步調(diào)節(jié)覆蓋值,從而確保文本以好的對比度顯示并且因此可視。作為第一步,在塊504中,圖形引擎計算作為輸入從請求顯示文本的執(zhí)行進(jìn)程接收到的字體顏色的亮度。通過加權(quán)并將三個加性顏色分量紅、綠、藍(lán)的字體顏色的顏色值相加獲得亮度值L。具體來說,可以通過應(yīng)用等式⑶設(shè)置亮度(L)L=O. 30 X R+. 59 X G+· 11 X B(3)
其中R、G和B是字體顏色的顏色值。在塊506中,圖形引擎可以識別基于亮度進(jìn)行的對比度調(diào)節(jié),從而確保文本相對于背景的良好對比度。這可以用任何適當(dāng)?shù)姆绞絹韴?zhí)行,包括已知的技術(shù),如MICROSOFTeCLEARTYPEe文本再現(xiàn)軟件采用的技術(shù)。在一些實(shí)施例中,計算裝置可以具有基本對比度值,圖形引擎可以基于文本的亮度調(diào)節(jié)該基本對比度值。該基本對比度值可以基于用戶喜好來設(shè)置,或者可以是固定的,或者可以用任何其它方式來設(shè)置,因?yàn)閷?shí)施例在這方面不受限制?;緦Ρ榷戎档恼{(diào)節(jié)量(k)可以取決于在塊504中計算出的亮度值。例如,在亮度值被計算為小于或等于O. 5的情況下,可以將調(diào)節(jié)變量(c)設(shè)置為1,從而不調(diào)節(jié)基本對比度值。在亮度值被計算為大于O. 5并且小于O. 75的情況下,可以基于亮度值(L)設(shè)置該調(diào)節(jié)值,例如通過應(yīng)用等式(4)
c=4X (. 75-L)(4)
在亮度值被計算為大于或等于O. 75的情況下,可以將調(diào)節(jié)值設(shè)置為0,從而禁止基于對比度調(diào)節(jié)覆蓋值。調(diào)節(jié)值(c)被設(shè)置之后,可以通過應(yīng)用等式(5)將基本對比度值乘以調(diào)節(jié)值來調(diào)節(jié)基本對比度值
k,=kX c(5)
在塊508中,圖形引擎可以再次基于在塊506中確定的對比度值(k’)修正在塊502中修正的子像素覆蓋值。具體來說,可以通過應(yīng)用等式(6)基于對比度值(k’)修正每個修正后的子像素覆蓋值(α ’)以產(chǎn)生進(jìn)一步修正的子像素覆蓋值(α ’’)
Cir-Cfc1 +1),、
O* =------(6)
在使用等式(6)修正了該文本的每個子像素覆蓋值之后,處理500結(jié)束。處理600示出可用來處理初始覆蓋值的另一個示例性處理。在一些實(shí)施例中,處理600可以與處理500 —起使用,并且可以在處理500之后由圖形引擎進(jìn)行,盡管實(shí)施例在這方面不受限制。在圖6的處理600開始之前,圖形引擎接收將被顯示的文本的內(nèi)容和該文本的字體顏色,并且計算該文本的子像素覆蓋值。通過處理600,這些覆蓋值可被修正。處理600在塊602開始,在塊602中,圖形引擎識別與將被用于顯示該文本的顯示器相關(guān)聯(lián)的伽馬值(Y)。顯示器的伽馬值是用已知方式獲得的值,其可以由顯示器的制造商設(shè)置,并且可以被用戶調(diào)節(jié)。在塊602中,圖形引擎可以用任何適當(dāng)?shù)姆绞阶R別伽馬值,包括通過從該計算裝置的數(shù)據(jù)倉庫(如與該顯示器的驅(qū)動器相關(guān)聯(lián)的數(shù)據(jù)倉庫)中取回該伽馬值。在塊604中,圖形引擎可以使用伽馬值(Y)來確定每個子像素覆蓋值的至少一個阿爾法修正值以在修正子像素覆蓋值時使用。該阿爾法修正值可以是修正子像素覆蓋值從而模擬伽馬修正處理效果的任何值。當(dāng)以模擬伽馬修正處理效果的方式調(diào)節(jié)子像素覆蓋值時,使用該子像素覆蓋值的文本的顏色信息可以與背景圖形的顏色信息線性組合,而不需要伽馬修正處理。結(jié)果,可以從再現(xiàn)文本的處理中去除伽馬修正處理,并且可以加速再現(xiàn)處理。修正子像素覆蓋值從而模擬伽馬修正處理效果的處理是已知的,并且可以在塊604和606中使用任意這些處理。用于確定阿爾法修正值的一個這種處理被稱為阿爾法修正處理,并且在2002年12月3日提交的,標(biāo)題為“Alpha correction to compensate forlack of gamma correction”的6933947號美國專利(’947專利)中進(jìn)行了詳細(xì)描述?!?947專利的全部內(nèi)容通過引用包含在本文中,并且至少用于討論確定阿爾法修正值。簡言之,在’947專利中描述的阿爾法修正處理產(chǎn)生通過伽馬值索引的阿爾法修正值表。這些阿爾法修正值是基于伽馬修正處理對從字體和背景顏色的組合產(chǎn)生的復(fù)合顏色的影響的觀測、針對伽馬值范圍中的每個以及字體和背景顏色范圍中的每個來確定。通過對伽馬修正的影響的重復(fù)觀測,可以識別每個伽馬值的伽馬修正對字體顏色的影響。例如,針對每個伽馬值,可以對從重復(fù)觀察確定的每個影響值進(jìn)行約束優(yōu)化。根據(jù)該約束優(yōu)化,可以識別每個伽馬值的阿爾法修正值,并且將其存儲在伽馬索引表中。因此,在塊604中,可以基于在塊602中識別出的伽馬值查詢伽馬索引表,并且可以取回與該伽馬值相對應(yīng)的阿爾法修正值。在塊606中,可以將阿爾法修正值與子像素覆蓋值組合以產(chǎn)生修正后的子像素覆蓋值?!?947專利描述了通過重復(fù)觀察識別每個伽馬值的四個阿爾法修正值,但是在使用中可以確定任意適當(dāng)數(shù)目的阿爾法修正值?!?47專利描述了基于四個阿爾法修正值并且基于字體顏色修正子像素覆蓋值。具體來說,’947專利描述了首先使用上述亮度等式(3)確定·字體顏色的亮度值(F)。然后可以使用伽馬值(Y )修正字體顏色的亮度值,以使用等式(7)產(chǎn)生伽馬修正后的字體亮度(f)
f=F(1/Y)(7)
然后可以使用伽馬修正后的字體亮度和四個阿爾法修正值(A、C2, C3和C4)來修正每個子像素覆蓋值(α),以使用等式(8)產(chǎn)生修正后的覆蓋值(a
α 修正=α + α X (I— α ) X (C1 X α +C2X α +C3X f+c4)(8)
在一些實(shí)施例中,代替在塊604和606中圖形引擎針對每個子像素覆蓋值進(jìn)行等式(7)和(8)的每一個,圖形引擎可以從可以訪問阿爾法修正值的伽馬索引表的另一個圖形設(shè)施取回修正后的子像素覆蓋值。在這種實(shí)施例中,圖形引擎可向該其它圖形設(shè)施提供子像素覆蓋值、該顯示器的伽馬值以及該子像素覆蓋值所對應(yīng)的子像素的顏色值。然后該其它圖形設(shè)施可以通過檢查該伽馬索引表并且進(jìn)行等式(7)和(8)將修正后的子像素覆蓋值返回給圖形引擎。與如何修正覆蓋值無關(guān),在塊606中圖形引擎通過阿爾法修正值調(diào)節(jié)了每個子像素覆蓋值之后,處理600結(jié)束。圖5和圖6的處理500和600可被用于處理初始覆蓋值,從而產(chǎn)生處理后的覆蓋值。如上文結(jié)合圖3討論的,圖形引擎處理覆蓋值之后,子像素覆蓋值可被例如以四信道數(shù)據(jù)結(jié)構(gòu)來高速緩存。因此,在處理500、600之一或二者之后,處理后的覆蓋值可以以數(shù)據(jù)結(jié)構(gòu)設(shè)置并且被置于高速緩存器中。同樣如上文結(jié)合圖3討論的,實(shí)施例不局限于使用任何具體數(shù)據(jù)結(jié)構(gòu)或者數(shù)據(jù)格式來高速緩存子像素覆蓋值。相反,實(shí)施例可以以任何適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)設(shè)置子像素覆蓋值。在一些實(shí)施例中,文本的顏色值可以額外地高速緩存在分開的數(shù)據(jù)結(jié)構(gòu)中。盡管可以使用任何結(jié)構(gòu),但有些結(jié)構(gòu)可能是有利的,并且可以在一些實(shí)施例中使用,如上文描述的GPU固有適于處理的四值結(jié)構(gòu)。在一些實(shí)施例中,如上文討論的,子像素覆蓋值可以設(shè)置在多個四值數(shù)據(jù)結(jié)構(gòu)中,并且這多個結(jié)構(gòu)可以一起設(shè)置在容器結(jié)構(gòu)(如紋理集)中。在使用多個顏色(如一個顏色用于文本的第一部分,另一個顏色用于文本的第二部分)在顯示器上顯示文本的一些實(shí)施例中可以使用容器結(jié)構(gòu)。通過以上討論應(yīng)該意識到,可以至少部分基于該文本將要使用的字體顏色來設(shè)置子像素覆蓋值。因此,在使用不同字體顏色的情況下,可導(dǎo)致不同的覆蓋值。在一些實(shí)施例中,這些不同的覆蓋值可以一起存儲在一個映射中。然而,在其它實(shí)施例中,可以產(chǎn)生不同的映射,然后可以將這些不同映射一起設(shè)置在紋理集(texture atlas)中。圖7示出為了可以將多個映射一起設(shè)置在紋理集中而執(zhí)行的一個示例性處理。處理700從塊702開始,在塊702中,圖形引擎確定將被用于顯示文本的每個顏色的處理后的子像素覆蓋值??梢杂萌魏芜m當(dāng)?shù)姆绞?包括根據(jù)前文描述的技術(shù))確定處理后的子像素覆蓋值。在塊704中,圖形引擎針對每個指定的顏色產(chǎn)生映射,該映射包括將被用于顯示該顏色的文本的子像素的覆蓋值。因此,每個映射的內(nèi)容將對應(yīng)于顯示器的子像素和像素,該顯示器的子像素和像素與使用和該映射相關(guān)聯(lián)的顏色顯示的該文本的部分相對應(yīng)。每個映射可以設(shè)置在任何適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)(包括BGRA數(shù)據(jù)結(jié)構(gòu))中。 然后在塊706中,圖形引擎將來自塊704的多個映射一起設(shè)置在容器結(jié)構(gòu)中,在一些實(shí)施例中其可以是紋理集。數(shù)據(jù)結(jié)構(gòu)被一起設(shè)置之后,可以同任何適當(dāng)?shù)姆绞礁咚倬彺嬖撊萜鹘Y(jié)構(gòu)。該容器結(jié)構(gòu)被高速緩存之后,處理700結(jié)束。根據(jù)本文中描述的原理操作的技術(shù)可以用任何適當(dāng)?shù)姆绞絹韺?shí)現(xiàn)。在上文的討論中包括一系列的流程圖,這些流程圖示出了用于計算并高速緩存子像素覆蓋值并且使用高速緩存的子像素覆蓋值再現(xiàn)用于在顯示器中顯示的文本的各種處理的步驟和動作。以上流程圖中的處理塊和判斷塊代表可以包括在用于執(zhí)行這些不同處理的算法中的步驟和動作。從這些處理得出的算法可以實(shí)現(xiàn)為整合并指導(dǎo)一個或多個單目的或多目的處理器的操作的軟件,可以實(shí)現(xiàn)為諸如數(shù)字信號處理(DSP)電路或者專用集成電路(ASIC)等功能等效電路,或者可以用任何其它適當(dāng)?shù)姆绞絹韺?shí)現(xiàn)。應(yīng)當(dāng)理解,本文中包括的流程圖不描述任何具體電路或者任何具體編程語言或者任何類型的編程語言的語法或操作。實(shí)際上,這些流程圖示出了功能信息,本領(lǐng)域的技術(shù)人員可以使用該功能信息來制作電路或者實(shí)現(xiàn)計算機(jī)軟件算法,以進(jìn)行用于實(shí)施本文中描述的技術(shù)類型的具體設(shè)備的處理。還應(yīng)當(dāng)理解,除非本文另外指出,否則每個流程圖中描述的步驟和/或動作的具體順序僅是為了說明可以實(shí)現(xiàn)的算法,并且在本文中描述的原則的實(shí)施方式和實(shí)施例中可以改變這些順序。因此,在一些實(shí)施例中,本文中描述的技術(shù)可以體現(xiàn)為作為軟件實(shí)現(xiàn)的計算機(jī)可執(zhí)行指令,所述軟件包括應(yīng)用軟件、系統(tǒng)軟件、固件、中間件、嵌入的代碼或者任何其它適當(dāng)類型的軟件。該計算機(jī)可執(zhí)行指令可以用眾多適當(dāng)?shù)木幊陶Z言和/或編程或腳本工具中的任何一個來編寫,并且還可以匯編為在框架機(jī)或虛擬機(jī)上執(zhí)行的可執(zhí)行機(jī)器語言代碼或中間代碼。當(dāng)本文中描述的技術(shù)體現(xiàn)為計算機(jī)可執(zhí)行指令時,這些計算機(jī)可執(zhí)行指令可以用任何適當(dāng)方式來實(shí)現(xiàn),包括眾多的功能設(shè)施,每個功能設(shè)施提供一個或多個操作以完成根據(jù)這些技術(shù)的算法操作的執(zhí)行。然而,舉例來說,“功能設(shè)施”是計算機(jī)系統(tǒng)的結(jié)構(gòu)組件,當(dāng)與一個或多個計算機(jī)整合并由該一個或多個計算機(jī)執(zhí)行時,其使該一個或多個計算機(jī)執(zhí)行特定的操作任務(wù)。功能設(shè)施可以是一部分軟件元素或者是整個軟件元素。例如,功能設(shè)施可以作為進(jìn)程的功能或者作為離散的進(jìn)程或者作為任何其它適當(dāng)?shù)奶幚韱卧獊韺?shí)現(xiàn)。如果本文中描述的技術(shù)作為多個功能設(shè)施來實(shí)現(xiàn),那么每個功能設(shè)施可以以其自己的方式實(shí)現(xiàn);不需要所有設(shè)施都以相同的方式實(shí)現(xiàn)。另外,這些功能設(shè)施可以適當(dāng)?shù)夭⑿泻?或串行地執(zhí)行,并且可以使用消息傳送協(xié)議或者以任何其它適當(dāng)?shù)姆绞?、利用?zhí)行這些功能設(shè)施的計算機(jī)上的共享存儲器在相互之間傳送信息。一般來說,功能設(shè)施包括執(zhí)行特定任務(wù)或者實(shí)現(xiàn)特定的抽象數(shù)據(jù)類型的例程、程序、目標(biāo)碼、組件、數(shù)據(jù)結(jié)構(gòu)等。典型地,功能設(shè)施的功能可以根據(jù)需要結(jié)合或分布在它們運(yùn)行的系統(tǒng)中。在一些實(shí)施例中,執(zhí)行本文中的技術(shù)的一個或多個功能設(shè)施可以一起形成完整的軟件包。在可選實(shí)施例中,這些功能設(shè)施可適合于與其它不相關(guān)的功能設(shè)施和/或進(jìn)程交互,以實(shí)現(xiàn)軟件程序應(yīng)用或者軟件系統(tǒng)。例如,在一些實(shí)施例中,實(shí)現(xiàn)這些技術(shù)的功能設(shè)施可以包含在軟件應(yīng)用中作為軟件應(yīng)用的一部分圖形功能,并且/或者包含在圖形再現(xiàn)系統(tǒng)中,例如可從華盛頓州雷蒙德市的微軟公司獲得的Direct2d 或DIRECTX 系統(tǒng)。在其它實(shí)施方式中,該功能設(shè)施可適合于以形成操作系統(tǒng)的方式與其它功能設(shè)施交互,所述操作系統(tǒng)包括可從華盛頓州雷蒙德市的微軟公司獲得的WINDOWS 操作系統(tǒng)。換句話說,在一些實(shí)施例中,該功能設(shè)施可以可選擇地作為操作系統(tǒng)的一部分或者在操作系統(tǒng)之外實(shí)現(xiàn)。 本文中已經(jīng)描述了用于執(zhí)行一個或多個任務(wù)的一些不例性功能設(shè)施,包括上文描述的圖形引擎。然而,應(yīng)當(dāng)理解,所描述的功能設(shè)施和任務(wù)劃分僅是為了說明可以實(shí)現(xiàn)本文描述的示例性技術(shù)的功能設(shè)施的類型,并且實(shí)施例不局限于以任何具體數(shù)目、劃分或類型的功能設(shè)施來實(shí)現(xiàn)。在一些實(shí)施例中,所有功能可以用單個功能設(shè)施來實(shí)現(xiàn)。還應(yīng)當(dāng)理解,在一些實(shí)施例中,本文描述的一些功能設(shè)施可以與其它功能設(shè)施一起或者與其它功能設(shè)施分開(即,作為單個單元或者作為分開的單元)來實(shí)現(xiàn),或者可以不實(shí)現(xiàn)這些功能設(shè)施中的一些。在一些實(shí)施例中,(當(dāng)作為一個或多個功能設(shè)施或者以任何其它方式實(shí)現(xiàn)時)實(shí)現(xiàn)本文中描述的技術(shù)的計算機(jī)可執(zhí)行指令可以被編碼在一個或多個計算機(jī)可讀介質(zhì)上,以向該介質(zhì)提供功能。計算機(jī)可讀介質(zhì)包括磁介質(zhì)(如硬盤驅(qū)動)、光學(xué)介質(zhì)(如壓縮盤(CD)或者數(shù)字多用途盤(DVD))、永久性或非永久性固態(tài)存儲器(例如,閃速存儲器、磁RAM等)或者任何其它適當(dāng)?shù)拇鎯橘|(zhì)。這種計算機(jī)可讀介質(zhì)可以用任何適當(dāng)?shù)姆绞絹韺?shí)現(xiàn),包括作為下文描述的圖8的計算機(jī)可讀存儲介質(zhì)806 (即,作為計算裝置800的一部分)或者作為單獨(dú)的分開的存儲介質(zhì)。當(dāng)在本文中使用時,“計算機(jī)可讀介質(zhì)”(也稱為“計算機(jī)可讀存儲介質(zhì)”)是指有形的存儲介質(zhì)。有形的存儲介質(zhì)是非暫時的并且具有至少一個物理的結(jié)構(gòu)組件。在本文中使用的“計算機(jī)可讀介質(zhì)”中,至少一個物理的結(jié)構(gòu)組件具有至少一個物理屬性,在產(chǎn)生具有嵌入信息的該介質(zhì)的過程中、在其上記錄信息的過程中、或者用信息編碼該介質(zhì)的任何其它過程中,可以通過一些方式改變該物理屬性。例如,在記錄過程中,計算機(jī)可讀介質(zhì)的一部分物理結(jié)構(gòu)的磁化狀態(tài)可以改變。此外,上文描述的一些技術(shù)包括以某些方式存儲這些技術(shù)使用的信息(例如,數(shù)據(jù)和/或指令)的動作。在這些技術(shù)的一些實(shí)施方式中(例如,作為計算機(jī)可執(zhí)行指令實(shí)現(xiàn)這些技術(shù)的實(shí)施方式),可以將該信息編碼在計算機(jī)可讀存儲介質(zhì)上。在本文中將特定的結(jié)構(gòu)描述為用于存儲該信息的有利格式的情況下,這些結(jié)構(gòu)可被用于當(dāng)將該信息編碼在存儲介質(zhì)上時告知該信息的物理組織。這些有利的結(jié)構(gòu)隨后可以通過影響與該信息交互的一個或多個處理器的操作來向存儲介質(zhì)提供功能;例如,通過提高由處理器進(jìn)行的計算機(jī)操作的效率。在所述技術(shù)可以體現(xiàn)為計算機(jī)可執(zhí)行指令的一些但不是全部實(shí)施方式中,這些指令可以在任何適當(dāng)?shù)挠嬎銠C(jī)系統(tǒng)中運(yùn)行的一個或多個適當(dāng)?shù)挠嬎阊b置上執(zhí)行,所述計算機(jī)系統(tǒng)包括圖2的示例性計算機(jī)系統(tǒng),或者一個或多個計算裝置(或者一個或多個計算裝置的一個或多個處理器)可以被編程為執(zhí)行該計算機(jī)可執(zhí)行指令。當(dāng)該指令以計算裝置/處理器可訪問的方式存儲時,例如存儲在本地存儲器中(例如,片上高速緩存器或者指令寄存器、可通過總線訪問的計算機(jī)可讀存儲介質(zhì)、可通過一個或多個網(wǎng)絡(luò)訪問并且可被該裝置/處理器訪問的計算機(jī)可讀存儲介質(zhì)等),該計算裝置或處理器可以被編程以執(zhí)行該指令。包括這些計算機(jī)可執(zhí)行指令的功能設(shè)施可以與計算裝置的操作整合并且指導(dǎo)該計算裝置的操作,該計算裝置包括單個多用途的可編程數(shù)字計算機(jī)、共享處理能力并且共同執(zhí)行本文描述的技術(shù)的(共處一地或者地理上分散的)兩個或多個多用途計算機(jī)的協(xié)同系統(tǒng)、專用于執(zhí)行本文中描述的技術(shù)的單個計算機(jī)或者(共處一地或者地理上分散的)計算機(jī)協(xié)同系統(tǒng)、用于執(zhí)行本文中描述的技術(shù)的一個或多個現(xiàn)場可編程門陣列(FPGA)或者任何其它適當(dāng)?shù)?br> >j-U ρ α裝直?!?br> 圖8示出計算裝置800形式的計算裝置的一個示例性實(shí)施方式,計算裝置800可以用在實(shí)現(xiàn)本文中描述的技術(shù)的系統(tǒng)中,雖然其它也是可能的。應(yīng)當(dāng)理解,圖8不打算描述根據(jù)本文描述的原理操作的計算裝置的必要組件,也不打算進(jìn)行全面描述。計算裝置800可以包括至少一個處理器802、網(wǎng)絡(luò)適配器804和計算機(jī)可讀存儲介質(zhì)806。計算裝置800可以例如是桌上或膝上個人計算機(jī)、個人數(shù)字助理(PDA)、智能移動電話、平板計算機(jī)、服務(wù)器或者任何其它適當(dāng)?shù)挠嬎阊b置。處理器802可以包括任何適當(dāng)?shù)奶幚砥?,包括中央處理單?CPU)和/或圖形處理單元(GPU)。網(wǎng)絡(luò)適配器804可以是使計算裝置800能夠在任何適當(dāng)?shù)挠嬎憔W(wǎng)絡(luò)上與任何其它適當(dāng)?shù)挠嬎阊b置有線和/或無線通信的任何適當(dāng)?shù)挠布?或軟件。該計算網(wǎng)絡(luò)可以包括無線接入點(diǎn)、交換機(jī)、路由器、網(wǎng)關(guān)和/或其它網(wǎng)絡(luò)設(shè)備以及用于在兩個以上計算機(jī)之間交換數(shù)據(jù)的任何適當(dāng)?shù)囊粋€或多個有線和/或無線通信介質(zhì),包括因特網(wǎng)。計算機(jī)可讀存儲介質(zhì)806可以是適于存儲由處理器802處理的數(shù)據(jù)和/或由處理器802執(zhí)行的指令的一個或多個介質(zhì)。處理器802能處理數(shù)據(jù)并且能夠執(zhí)行指令。該數(shù)據(jù)和指令可以存儲在計算機(jī)可讀存儲介質(zhì)806上,并且例如可以在計算裝置800的各組件之間傳送。存儲在計算機(jī)可讀存儲介質(zhì)806上的數(shù)據(jù)和指令可以包括用于實(shí)現(xiàn)根據(jù)本文中描述的原則操作的技術(shù)的計算機(jī)可執(zhí)行指令。在圖8的例子中,計算機(jī)可讀存儲介質(zhì)806存儲用于實(shí)現(xiàn)上文描述的各種設(shè)施并且存儲各種信息的計算機(jī)可執(zhí)行指令。計算機(jī)可讀存儲介質(zhì)806可以存儲圖形引擎808以在與計算裝置800相關(guān)聯(lián)的顯示器中再現(xiàn)并顯示文本。圖形引擎800可以包括覆蓋設(shè)施810,其可以作為圖形引擎800的用于確定、處理和高速緩存子像素覆蓋值的部分來實(shí)現(xiàn)。計算機(jī)可讀存儲介質(zhì)806還可以包括用于高速緩存在該顯示器上顯示或?qū)⒁@示的文本的覆蓋值的數(shù)據(jù)倉庫812。計算機(jī)可讀介質(zhì)806還可以存儲阿爾法修正值表814,其可以由圖形引擎808和/或覆蓋設(shè)施810使用以確定并處理子像素覆蓋值。盡管在圖8中沒有示出,計算裝置可另外具有一個或多個組件和外圍設(shè)備,包括輸入和輸出裝置。這些裝置除了別的以外還可以用于呈現(xiàn)用戶界面??杀挥糜谔峁┯脩艚缑娴妮敵鲅b置的例子包括用于視覺呈現(xiàn)輸出的打印機(jī)或顯示器以及用于聽覺呈現(xiàn)輸出的揚(yáng)聲器或其它發(fā)聲裝置。可被用于用戶界面的輸入裝置的例子包括鍵盤和指示裝置,如鼠標(biāo)、觸摸墊和數(shù)字化面板。作為另一個例子,計算裝置可以通過語音識別或者其它聽得見的格式接收輸入信息。已經(jīng)描述了以電路和/或計算機(jī)可執(zhí)行指令實(shí)現(xiàn)所述技術(shù)的實(shí)施例。應(yīng)當(dāng)理解,一些實(shí)施例可以是方法的形式,已經(jīng)提供了這種形式的至少一個例子。可以用任何適當(dāng)?shù)姆绞脚判蜃鳛樵摲椒ǖ囊徊糠诌M(jìn)行的動作。因此,盡管在說明性的實(shí)施例中被示出為順序的動作,但是實(shí)施例可被構(gòu)造為以不同于所示出的順序進(jìn)行所述動作,其可以包括同時進(jìn)行某些動作。上文描述的實(shí)施例的各方面可以單獨(dú)使用,可以結(jié)合使用,或者以上文描述的實(shí)施例中沒有具體討論的各種配置使用,因此其應(yīng)用不局限于上文中描述的或者附圖中示出的組件的細(xì)節(jié)和配置。例如,在一個實(shí)施例中描述的各方面可以用任何方式與其它實(shí)施例中描述的方面結(jié)合。 在權(quán)利要求中用于修飾權(quán)利要求要素的諸如“第一”、“第二”、“第三”等序數(shù)詞的使用本身不意味著一個權(quán)利要求要素相對于另一個權(quán)利要求要素的任何優(yōu)先級、優(yōu)越性或者順序,也不意味著方法的動作進(jìn)行的時間順序,而僅是用作標(biāo)記,以區(qū)分具有某一名稱的一個權(quán)利要求要素與具有相同名稱的另一權(quán)利要求要素(要不是作為序數(shù)詞使用),從而區(qū)分權(quán)利要求要素。此外,在文本中使用的短語和術(shù)語是出于說明的目的,并且不應(yīng)當(dāng)認(rèn)為是限制性的。在本文中“包括”、“包含”、“具有”、“含有”、“涉及”及其變體的使用意味著包括隨后列出的項(xiàng)目及其等同物以及另外的項(xiàng)目。詞語“示例性的”在本文中被用于表示作為實(shí)例、例子或例示。因此在本文中作為例子描述的任何實(shí)施例、實(shí)施方式、處理、特征等應(yīng)當(dāng)被理解為示例性的例子,并且除非另外指出,否則不應(yīng)當(dāng)被理解為優(yōu)選的或有利的例子。因此,盡管已經(jīng)描述了至少一個實(shí)施例的幾個方面,但是應(yīng)當(dāng)理解,對本領(lǐng)域的技術(shù)人員來說,很容易想到各種變更、修改和改進(jìn)。這些變更、修改和改進(jìn)有意作為本公開的一部分,并且有意落入在本文所描述的原則的精神和范圍內(nèi)。因此,以上描述和附圖僅是作為例子。
權(quán)利要求
1.一種處理將被顯示在計算裝置(200)的圖形界面中的文本的方法,所述方法包括 產(chǎn)生(304)所述文本的映射,所述映射包括表示所述文本的至少一個形狀的信息并且對應(yīng)于在顯示所述文本時使用的顯示器的多個子像素; 使用子像素抗鋸齒技術(shù)確定(306)所述多個子像素的初始子像素覆蓋值; 處理(308)所述初始子像素覆蓋值以產(chǎn)生圖像數(shù)據(jù)的多個像素的處理后的子像素覆蓋值;以及 高速緩存(312)所述處理后的子像素覆蓋值,以便隨后在所述圖形界面中再現(xiàn)所述文本時使用。
2.根據(jù)權(quán)利要求I所述的方法,其中高速緩存所述文本的處理后的子像素覆蓋值包括將所述處理后的子像素覆蓋值存儲(312)在數(shù)據(jù)結(jié)構(gòu)中,而不將所述文本在所述圖形界面中顯示的顏色的信息存儲在所述數(shù)據(jù)結(jié)構(gòu)中。
3.根據(jù)權(quán)利要求I所述的方法,其中處理所述初始子像素覆蓋值以產(chǎn)生處理后的覆蓋值包括調(diào)節(jié)(606)所述初始子像素覆蓋值以補(bǔ)償顯示所述圖形界面的顯示器的非線性。
4.根據(jù)權(quán)利要求3所述的方法,其中調(diào)節(jié)(606)所述初始子像素覆蓋值以補(bǔ)償非線性包括修正(606)所述初始子像素覆蓋值以能夠通過線性組合所述初始子像素覆蓋值和所述文本的顏色值以及與所述文本重疊顯示的至少一個其它顯示元素的顏色值來計算用于控制顯示器的復(fù)合顏色值。
5.根據(jù)權(quán)利要求I所述的方法,其中響應(yīng)于從執(zhí)行進(jìn)程(202)接收到至少包含所述文本的內(nèi)容并且不包括在所述顯示器上再現(xiàn)所述文本的位置的指令進(jìn)行所述產(chǎn)生、確定、處理和高速緩存。
6.—種設(shè)備,包括 至少一個處理器(802),其被編程為 響應(yīng)于接收到再現(xiàn)顯示器文本的請求,從高速緩存器(208A)取回(404)所述文本的子像素覆蓋值,所述子像素覆蓋值被設(shè)置在對應(yīng)于所述設(shè)備的至少一個圖形處理單元(GPU)(206)的硬件組織所設(shè)置的數(shù)據(jù)結(jié)構(gòu)中,所述數(shù)據(jù)結(jié)構(gòu)包括四個字段并且所述子像素覆蓋值被設(shè)置在所述數(shù)據(jù)結(jié)構(gòu)的三個字段中; 配置(408)所述至少一個GPU以確定顯示所述文本的顯示器的像素的復(fù)合顏色值,所述配置包括配置所述至少一個GPU以從所述數(shù)據(jù)結(jié)構(gòu)取回所述子像素覆蓋值; 從所述至少一個GPU接收(410)顯示所述文本的像素的復(fù)合顏色值;以及 基于所述復(fù)合顏色值對所述顯示器再現(xiàn)(412)所述文本的抗鋸齒后的版本。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其中所述至少一個處理器(802)被編程為配置所述至少一個GPU(606)以至少部分通過線性組合(410)由所述子像素覆蓋值修正后的所述文本的顏色值和在所述顯示器上與所述文本重疊顯示的至少一個其它顯示元素的顏色值來確定所述像素的復(fù)合顏色值。
8.根據(jù)權(quán)利要求6所述的設(shè)備,其中所述至少一個處理器(802)被編程為配置所述至少一個GPU(606)以至少部分基于來自所述數(shù)據(jù)結(jié)構(gòu)的像素的子像素覆蓋值和基于來自不同于所述數(shù)據(jù)結(jié)構(gòu)的第二數(shù)據(jù)結(jié)構(gòu)的像素的子像素顏色值來確定所述顯示器的像素的復(fù)合顏色值,所述第二數(shù)據(jù)結(jié)構(gòu)對應(yīng)于所述設(shè)備的至少一個圖形處理單元(GPU) (606)的硬件組織設(shè)置而成。
9.根據(jù)權(quán)利要求8所述的設(shè)備,其中所述至少一個處理器被進(jìn)一步編程為接收對所述顯示器再現(xiàn)所述文本的請求,所述請求包含所述第二數(shù)據(jù)結(jié)構(gòu),所述第二數(shù)據(jù)結(jié)構(gòu)包含所述子像素顏色值。
10.根據(jù)權(quán)利要求8所述的設(shè)備,其中所述至少一個處理器被進(jìn)一步編程為,響應(yīng)于接收到所述請求,從所述高速緩存器取回(404)包括所述子像素顏色值的所述第二數(shù)據(jù)結(jié)構(gòu)。
全文摘要
描述了計算要被顯示的文本的子像素覆蓋值、從而能夠高速緩存該子像素覆蓋值的技術(shù)。該子像素覆蓋值可以使得該文本的顏色信息和一個或多個其它重疊顯示元素的顏色信息能夠線性組合,以計算在控制顯示器時使用的復(fù)合顏色值。在一些實(shí)施例中,可以在不進(jìn)行伽馬修正處理的情況下計算在控制顯示器的子像素時使用的該復(fù)合顏色值。還描述了取回高速緩存的子像素覆蓋值并且將該值與文本和其它重疊顯示元素的顏色信息相組合以計算顯示器的子像素的復(fù)合顏色值的技術(shù)。至少一個圖形處理單元(GPU)可以被配置為使用該子像素覆蓋信息進(jìn)行操作并且計算子像素的復(fù)合顏色值。
文檔編號G06T1/60GK102930572SQ20121038338
公開日2013年2月13日 申請日期2012年10月11日 優(yōu)先權(quán)日2011年10月11日
發(fā)明者M.賈因, M.M.科亨, R.A.布朗, W.喬維拉普拉西特, A.M.普雷西爾斯, K.維德布拉特 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
桓台县| 北辰区| 民勤县| 孟州市| 东明县| 聊城市| 云南省| 关岭| 阳信县| 兰考县| 普洱| 泾源县| 墨竹工卡县| 平和县| 内江市| 河源市| 武宣县| 吴川市| 肇州县| 昭通市| 安西县| 天台县| 台中县| 洛阳市| 新沂市| 英山县| 堆龙德庆县| 武定县| 富民县| 饶平县| 临清市| 呼图壁县| 宜都市| 武川县| 青浦区| 洛宁县| 南陵县| 清原| 宜州市| 惠来县| 莫力|