專利名稱:用于繪制組合字形的區(qū)域的方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及計(jì)算機(jī)圖形學(xué)領(lǐng)域,具體地涉及產(chǎn)生和繪制由二維距離場(chǎng)表示 的對(duì)象。
背景技術(shù):
在計(jì)算機(jī)圖形學(xué)領(lǐng)域,二維對(duì)象的繪制是十分重要的。諸如字符形狀,公司標(biāo)識(shí)以
及包含在文檔中的插圖元素的二維對(duì)象被作為靜止圖像或構(gòu)成動(dòng)畫的幀序列進(jìn)行繪制。這
里有很多適合于二維對(duì)象的表示法,并且通常情況是對(duì)于諸如繪制和編輯的特定操作一種
表示法比其它表示法更好。在這種情況下,從一種形式到其它形式的轉(zhuǎn)換被執(zhí)行。 盡管在這里我們集中在可能是最普通和重要的二維對(duì)象的數(shù)字類型上,下面的討
論適用于所有類型的二維對(duì)象。 我們從數(shù)字類型的一些基本背景開始。諸如Times New Roman或Arial的典型的 拉丁字體族包含一組字體,例如普通,斜體,粗體,粗斜體。每種字體包括一組稱為字形的獨(dú) 特的字符形狀。每個(gè)字形通過它的不同設(shè)計(jì)特征來區(qū)分,例如基本幾何形狀,筆劃厚度,襯 線,結(jié)合點(diǎn),輪廓的位置和數(shù)目,粗細(xì)筆劃的比值,以及尺寸。 這里有許多表示字體的方式,包括位圖,諸如Type 1 [AdobeSystems公司1990] 和TrueType [Apple Computer公司1990]的輪廓,以及諸如輪廓占主導(dǎo)地位的K皿th' s Metafont的過程字體?;谳喞谋硎痉ū籆ambridge, Mass.的Bitstream公司, Mountain View, Calif. 的Adobe Systems公司,Cupertino, Calif.的Apple Computer公 司,Bellevue, Wash.的Microsoft公司,Hamburg, Germany的URW以及Wilmington, Mass. 的Agfa Compugraphic采用并普及。 Hersch, "Visual and Technical Aspects of Type, ,, CambridgeUniversity Press. 1993以及K皿th, "TEX and METAFONT :NewDirections in Typesetting, ,, Digital Press, Bedford, MA 1979,包含了字體的歷史和科學(xué)的綜合回顧。 特別重要的是兩類字號(hào)正文字號(hào)和顯示字號(hào)。正文類型的字體在相對(duì)小的例如 14pt.或更小的點(diǎn)尺寸上繪制,并在文檔的正文中使用,就像在本段中一樣。為了易辨認(rèn)且 閱讀舒適,正文類型需要高質(zhì)量的繪制。正文類型的大小、字樣和基線方向在單個(gè)文檔中很 少變化。 顯示類型的字體在相對(duì)大的例如36pt.或更高的點(diǎn)尺寸上繪制,并被用于篇名,
標(biāo)題,或在設(shè)計(jì)和廣告中用以設(shè)置狀態(tài)或吸引注意力。與正文類型相反,顯示類型的重點(diǎn)在 于美學(xué),在其中空間和時(shí)間混疊的缺乏很重要,而不像在易辨認(rèn)性中,對(duì)比度可能比反混疊
更重要。用于表示和繪制類型的框架能夠處理好具有不同需求的兩種類別是至關(guān)重要的。
類型可在諸如打印機(jī)或顯示器的輸出設(shè)備上以二值、灰度或彩色方式繪制。 一些繪制引擎針對(duì)非常小的字號(hào)使用二值繪制以獲得更好的對(duì)比度。然而,很好提示的灰度字 體僅僅可讀。 提示是和每個(gè)字形一起存放用以指定該字形的輪廓在繪制過程中應(yīng)被如何修改 以保持諸如對(duì)稱性,筆劃粗細(xì)和在一種字樣所有字形上的統(tǒng)一外觀等特征的一組準(zhǔn)則或過 程。 雖然設(shè)計(jì)自動(dòng)和半自動(dòng)的提示系統(tǒng)已被嘗試過,提示過程仍然是新字體設(shè)計(jì)和現(xiàn) 有字體針對(duì)低分辨率顯示設(shè)備進(jìn)行調(diào)整時(shí)的主要瓶頸。此外,解釋提示準(zhǔn)則的復(fù)雜性排除 了使用硬件進(jìn)行字體繪制。硬件支持的缺乏促使在軟件光柵化過程中,特別是在實(shí)時(shí)動(dòng)畫 制作類型的時(shí)候進(jìn)行折衷,例如每像素較少采樣點(diǎn)和低級(jí)過濾方法的使用。
灰度字體繪制通常涉及某種形式的反混疊。反混疊是平滑出現(xiàn)在二值字體中的外 部鋸齒邊緣或階梯效應(yīng)的過程。盡管許多字體繪制引擎是私有的,大部分在網(wǎng)格適配和提 示之后使用每像素4或16個(gè)采樣點(diǎn)的超級(jí)采樣,緊接著分別用2X2或4X4的盒形過濾器 進(jìn)行降采樣。 諸如盒形過濾器的初級(jí)過濾器由繪制速度的需要證明有效。然而,即使是該方法
對(duì)于動(dòng)態(tài)類型所需的實(shí)時(shí)繪制常常太慢,并且所繪字形受到空間和時(shí)間的混疊。 在版面上的三個(gè)重要趨勢(shì)顯示了現(xiàn)有技術(shù)字體表示和相關(guān)方法的一些內(nèi)在限制,
并由此提供了改變的需求。 第一個(gè)趨勢(shì)是由于辦公室中計(jì)算機(jī)的統(tǒng)治作用,在家瀏覽的因特網(wǎng)的普及率的上 升以及PDA和其它手持電子設(shè)備的增長,在屏幕上閱讀文本的重要性日漸增加。這些顯示 器通常具有72-150點(diǎn)/英寸的分辨率,這遠(yuǎn)低于打印設(shè)備的分辨率。 低分辨率要求在光柵化類型時(shí)特殊處理以確保閱讀舒適和易辨認(rèn)性,像由諸如 Microsoft和Bitstream等公司已在他們各自的ClearType和Font Fusion技術(shù)上投入的 資源證明的那樣。 第二個(gè)趨勢(shì)是動(dòng)態(tài)類型或運(yùn)動(dòng)版面的使用。動(dòng)態(tài)類型被用來傳達(dá)情緒,增加興趣, 并在視覺上吸引讀者的注意力。動(dòng)態(tài)類型的重要性通過它在電視和因特網(wǎng)廣告中的廣泛使 用來證明。 第三個(gè)趨勢(shì)是針對(duì)這類顯示器的像素分量并入了多種設(shè)計(jì)的顯示設(shè)備的增 長。就像在美國專利6, 188, 385 "Method and apparatus fordisplaying images such as text", Hill et al.中描述的那樣,垂直和水平樣條的RGB分量已經(jīng)成為傳統(tǒng)顯示 設(shè)備的標(biāo)準(zhǔn)排列。然而,有差別地排列分量具有很多優(yōu)點(diǎn),如同在美國專利申請(qǐng)公布 號(hào)20030085906 "Methods and systems for sub_pixel rendering usingad鄰tive filtering, Elliott et al.中描述的一樣。 不幸地是,傳統(tǒng)的基于輪廓的字體和相應(yīng)的方法在所有這些領(lǐng)域中具有局限性。 在低分辨率的顯示器上繪制類型需要仔細(xì)處理以平衡針對(duì)易讀性的好的對(duì)比度的需求以 及針對(duì)閱讀舒適而減小空間和/或時(shí)間混疊。 如上所述,基于輪廓的字體通常被提示以針對(duì)最優(yōu)外觀為繪制引擎提供指令。字 體提示是勞動(dòng)密集型和昂貴的。例如,開發(fā)一個(gè)針對(duì)具有超過一萬字形的日文或中文字體 的好的提示字樣要花費(fèi)數(shù)年。因?yàn)樘崾镜年P(guān)鍵在于改善正文類型的繪制質(zhì)量,提示對(duì)于沿 著任意路徑放置的類型和動(dòng)態(tài)類型往往是無效的。
4
盡管高質(zhì)量的過濾可被用于在具有有限數(shù)目的字號(hào)和字樣的靜態(tài)文檔中對(duì)灰度
類型進(jìn)行反混疊,在動(dòng)態(tài)類型中過濾的使用通常被實(shí)時(shí)繪制需求所限制。 類似在美國專利6, 188, 385中所描述的現(xiàn)有技術(shù)的子像素繪制方法具有許多與
三個(gè)趨勢(shì)全部相關(guān)的缺點(diǎn)。 首先,他們需要每個(gè)像素分量多個(gè)采樣點(diǎn)以得到令人滿意的質(zhì)量,這是低效的。當(dāng) 在包含多個(gè)分量的可選擇的像素布局,例如在美國專利申請(qǐng)公布號(hào)20030085906中描述的 布局上繪制時(shí),他們的方法就不實(shí)用了 。其次,他們使用顯示器的垂直或水平樣條來使得針 對(duì)鄰近像素分量的采樣點(diǎn)的再利用成為可能,這不能用于許多可選擇的像素分量布局。第 三,由于使用更好過濾器時(shí)他們方法的效率低,他們?cè)诓蓸用總€(gè)分量時(shí)使用低級(jí)的過濾器。
第四,所講解的方法不能提供針對(duì)在可選擇的像素分量布局上減輕彩色邊緣效應(yīng) 的任何測(cè)度。第五,非整數(shù)像素間隔的字形平移需要該字形的重新繪制。重新繪制通常需 要重新解釋提示,這是低效的。第六,對(duì)于某一像素分量布局,提示常常是特定的,因此必須 重做以處理可選擇的像素分量布局的增長。重做提示既昂貴又費(fèi)時(shí)。
繪制重疊的對(duì)象 當(dāng)兩個(gè)或多個(gè)對(duì)象被繪制時(shí),它們的繪制圖像可能重疊。例如,一個(gè)文本行中的兩 個(gè)字形的反混疊邊緣在字形被靠在一起放置時(shí)可能重疊。像另一個(gè)例子,單個(gè)日文漢字字 形可用幾個(gè)元素的組合來表示,例如筆劃,偏旁或基于筆劃的偏旁,這在它們被合并以繪制 單個(gè)日文漢字字形時(shí)可能重疊。 在這種情況下,繪制方法必須處理對(duì)象重疊的區(qū)域。在現(xiàn)有技術(shù)中,有幾種用于處 理這種重疊區(qū)域的方法。"Painter' s Algorithm"是一種針對(duì)二維和三維繪制的在計(jì)算機(jī) 圖形學(xué)中常用的方法。在Painter的算法中,對(duì)象被從后往前排序,然后按該順序繪制。由 每次繪制所確定的像素簡單覆蓋掉在上一次繪制中的對(duì)應(yīng)像素。 其他現(xiàn)有技術(shù)方法混合重疊像素的彩色或亮度值,S卩,這些方法根據(jù)一種準(zhǔn)則合 并彩色或亮度值,例如選擇最大或最小值或執(zhí)行重疊像素的算術(shù)平均。這些方法中的一部 分使用與每個(gè)像素相關(guān)聯(lián)的a值,利用所謂的a混合技術(shù)來混合重疊像素的值。
那些現(xiàn)有技術(shù)方法由于很多原因可能是有問題的。 例如,當(dāng)在液晶顯示器(LCD),有機(jī)發(fā)光二極管(0LED)或類似具有可獨(dú)立尋址的 像素分量的顯示技術(shù)上繪制時(shí),Painter的算法將導(dǎo)致緊密間隔的字形之間的彩色失真。
混合像素彩色或亮度的現(xiàn)有技術(shù)方法需要針對(duì)a值的額外計(jì)算和存儲(chǔ),并依賴 所用的混合方法表現(xiàn)出諸如邊緣模糊或邊緣丟失的不同失真。 另外,使用現(xiàn)有技術(shù)基于覆蓋的反混疊針對(duì)一組重疊對(duì)象確定的覆蓋值一般來說 不能被混合在一起以表示組合對(duì)象的真實(shí)覆蓋程度。 另一種處理重疊對(duì)象的現(xiàn)有技術(shù)方法在繪制前合并對(duì)象以產(chǎn)生一個(gè)組合對(duì)象。例 如,對(duì)于包含多個(gè)元素的基于輪廓的字形,元素的輪廓在繪制前被連接起來形成單一的輪 廓描述。類似地,要繪制包含多個(gè)筆劃的基于筆劃的字形,筆劃在繪制前被合并成單組筆 劃。 對(duì)于表示為距離場(chǎng)的對(duì)象元素,距離場(chǎng)可以使用由Perry et al. ,"Kizamu: A System for Sculpting Digital Characters, ,,ProceedingsACM SIGGRAPH 2001, pp. 47-56,2001描述的CSG運(yùn)算在繪制前合并為單個(gè)距離場(chǎng)。當(dāng)組合對(duì)象被表示為自適應(yīng)采樣的距離場(chǎng)時(shí),組合對(duì)象需要比元素所需總存儲(chǔ)量多很多的存儲(chǔ)量,因?yàn)楹喜?huì)給組合 對(duì)象帶來不存在于任何元素中的諸如非常細(xì)小的部分或角的精致細(xì)節(jié)。 所有那些在繪制前進(jìn)行合并的現(xiàn)有技術(shù)方法需要額外的存儲(chǔ)空間和復(fù)雜運(yùn)算來 產(chǎn)生組合對(duì)象。而且那些方法需要兩步,一個(gè)建立組合對(duì)象,一個(gè)繪制組合對(duì)象。
產(chǎn)生并繪制基于部件的字形 諸如中文,日文或韓文字體的亞洲字體可以包括10, 000或更多種字形。為了減小 存儲(chǔ)需求,這類字體中的字形可被表示成部件的公共集合的組合,在這里部件被稱為元素, 例如筆劃或部首。這些公共元素隨后作為字體庫被存入存儲(chǔ)器中,并在繪制之前或繪制過 程中合并以產(chǎn)生組合字形。 現(xiàn)有技術(shù)方法是用輪廓描述符定義元素,典型地由Bezier曲線或筆劃骨架。元素 可在繪制前被合并成諸如組合輪廓或筆劃的組合集合的單個(gè)形狀描述符。可選擇地,每個(gè) 元素可被獨(dú)立繪制,并針對(duì)每個(gè)像素從被合并的元素產(chǎn)生反混疊的亮度或覆蓋值以產(chǎn)生該 像素最終的反混疊亮度或覆蓋值。兩種方法都有如上所述的問題。
發(fā)明內(nèi)容
本發(fā)明提供了繪制組合字形的區(qū)域的方法。組合字形由一組元素定義。使用該組 元素產(chǎn)生二維距離場(chǎng)集合,其中該二維距離場(chǎng)集合的組合表示組合字形。組合字形的區(qū)域 隨后使用該二維距離場(chǎng)集合進(jìn)行繪制。
圖1A和IB是針對(duì)字形的現(xiàn)有技術(shù)距離場(chǎng)表示法的框圖; 圖2A和2B是依照本發(fā)明優(yōu)選實(shí)施例的距離場(chǎng)表示法的框圖; 圖3是依照本發(fā)明優(yōu)選實(shí)施例的距離場(chǎng)的雙二次單元的框圖; 圖4是依照本發(fā)明的用于以圖像順序?qū)?duì)象進(jìn)行反混疊的方法的流程圖; 圖5是本發(fā)明使用的線性過濾器的曲線圖; 圖6A, 6B和6C是在像素分量附近的采樣點(diǎn)的示圖; 圖7是依照本發(fā)明的用于以對(duì)象順序?qū)?duì)象進(jìn)行反混疊的方法的流程圖; 圖8是依照本發(fā)明的用于基于距離的自動(dòng)提示的方法的流程圖; 圖9是依照本發(fā)明的用于把筆劃轉(zhuǎn)換為距離場(chǎng)的方法的流程圖; 圖10是依照本發(fā)明的用于把二維對(duì)象轉(zhuǎn)換為距離場(chǎng)的方法的流程圖; 圖11是依照本發(fā)明的用于把距離場(chǎng)轉(zhuǎn)換為邊界描述符的方法的流程圖; 圖12是依照本發(fā)明的用于動(dòng)畫制作對(duì)象的方法的流程圖; 圖13是依照本發(fā)明的用于在包圍了二維對(duì)象的一個(gè)角的單元內(nèi)產(chǎn)生二維距離場(chǎng) 的方法的流程圖; 圖14A和14B是依照本發(fā)明的用于以圖像順序?qū)?duì)象集合進(jìn)行反混疊的方法的流 程圖; 圖15A, 15B和15C是依照本發(fā)明的用于以對(duì)象順序?qū)?duì)象集合進(jìn)行反混疊的方法 的流程圖; 圖16A, 16B和16C是依照本發(fā)明的使用紋理映射繪制基于單元的距離場(chǎng)的方法的流程圖; 圖17是依照本發(fā)明的繪制方法的流程圖; 圖18A, 18B和18C是依照本發(fā)明的用于排版字形集合的方法的流程圖; 圖19A, 19B和19C是依照本發(fā)明的用于產(chǎn)生組合字形并以圖像順序繪制組合字形
的區(qū)域的方法的流程圖; 圖20A-20D是依照本發(fā)明的用于產(chǎn)生組合字形并以對(duì)象順序繪制組合字形的區(qū) 域的方法的流程圖; 圖21A-21D是依照本發(fā)明的角單元的示圖;
圖22A-22C是依照本發(fā)明的兩片段單元的示圖; 圖23是依照本發(fā)明的用于在與二維對(duì)象相關(guān)聯(lián)的單元中產(chǎn)生二維距離場(chǎng)的方法 的流程圖; 圖24A是在一個(gè)區(qū)域內(nèi)的對(duì)象的一部分的示圖; 圖24B-24D是依照本發(fā)明的分割區(qū)域的三種單元配置的示圖;以及 圖25是依照本發(fā)明的用于針對(duì)表示對(duì)象的形狀描述符的區(qū)域產(chǎn)生距離場(chǎng)的最優(yōu)
配置的方法的流程圖。
具體實(shí)施例方式
字形的距離場(chǎng)表示 我們的發(fā)明把諸如字形,公司標(biāo)識(shí)或?qū)ο蟮娜我鈹?shù)字化表示的閉合二維形狀S表 示為二維有符號(hào)的距離場(chǎng)D。我們使用字形進(jìn)行說明。 非正式地,字形的距離場(chǎng)測(cè)量從場(chǎng)中任意一點(diǎn)到字形邊緣的距離,例如最小距離, 其中如果該點(diǎn)在字形的外部,則距離的符號(hào)為負(fù),如果該點(diǎn)在字形的內(nèi)部,則為正。在邊緣 上的點(diǎn)具有零距離。 正式地,距離場(chǎng)是 一 個(gè)針對(duì)所有p G R2的映射D :R2 — R,使得D (p)= sign(p) *min{| p-q | :對(duì)于S的在零等值面上的所有點(diǎn)q,即邊緣} , sign (p) = {_1,如果 P在S外部;+l,如果p在S內(nèi)部},而I I I I是歐幾里德范數(shù)。 對(duì)每個(gè)像素或每個(gè)像素分量使用單個(gè)離散采樣點(diǎn)的現(xiàn)有技術(shù)基于覆蓋的繪制方 法即使在采樣點(diǎn)離輪廓任意近的時(shí)候也可能完全丟失字形。繪制的字形具有鋸齒邊緣和信 息缺失,兩者都是空間混疊的形式。如果字形是動(dòng)態(tài)的,那么時(shí)間混疊會(huì)導(dǎo)致看起來像在運(yùn) 動(dòng)中"蠕動(dòng)"的閃動(dòng)輪廓和鋸齒邊緣。對(duì)每個(gè)像素或像素分量采用附加的采樣點(diǎn)以產(chǎn)生反 混疊的重現(xiàn)可以減小這些混疊效果,但為了得到可接受的結(jié)果可能需要很多采樣點(diǎn)。
相反地,依照我們的發(fā)明連續(xù)采樣的距離值即使當(dāng)采樣點(diǎn)在形狀外部時(shí)也表征了 該字形的一種近似,因此消除了現(xiàn)有技術(shù)的信息缺失失真。依照我們的發(fā)明,采樣距離值的 連續(xù)特性可被用來減輕空間混疊失真。 另外,由于距離場(chǎng)變化平緩,即它是C°連續(xù)的,當(dāng)字形移動(dòng)時(shí)采樣值變化緩慢,減 小了時(shí)間混疊失真。 距離場(chǎng)具有其它優(yōu)點(diǎn)。因?yàn)樗鼈兪且环N隱性表示,它們共有隱函數(shù)的好處。特別 地,距離場(chǎng)使用于設(shè)計(jì)字體的直觀接口成為可能。例如,諸如豎筆,橫筆,圓弧和襯線的獨(dú)立 字形部件可被分別設(shè)計(jì)。在設(shè)計(jì)之后,部件可以使用隱性混合方法混合起來組成同種字樣的不同字形。 距離場(chǎng)也有很多可用于運(yùn)動(dòng)版面或動(dòng)態(tài)類型,因?yàn)榫嚯x場(chǎng)提供了對(duì)于模擬對(duì)象間 的交互作用很重要的信息。 在優(yōu)選實(shí)施例中,我們使用自適應(yīng)采樣距離場(chǎng),即ADF,參考美國專利號(hào) 6,396,492,"Detail-directed hierarchical distance fields, ,,F(xiàn)risken, Perry, and Jones,在這里引入作為參考。 ADF是距離場(chǎng)的有效數(shù)字表示。ADF使用細(xì)節(jié)支配的采樣來減小表示該場(chǎng)所需的 采樣點(diǎn)數(shù)目。為了有效處理,采樣點(diǎn)被存入單元的空間層次結(jié)構(gòu),即四叉樹中。另外,ADF提 供了從采樣值重構(gòu)距離場(chǎng)的方法。 細(xì)節(jié)支配或自適應(yīng)采樣根據(jù)場(chǎng)內(nèi)的局部方差對(duì)距離場(chǎng)進(jìn)行采樣當(dāng)局部方差高
時(shí),使用較多的采樣點(diǎn),而當(dāng)局部方差低時(shí),使用較少的采樣點(diǎn)。自適應(yīng)采樣相比在整個(gè)場(chǎng) 以統(tǒng)一比率進(jìn)行采樣的規(guī)則采樣距離場(chǎng)和總在邊緣附近以最大比率進(jìn)行采樣的3彩色四 叉樹之上大大減小了存儲(chǔ)需求。 圖1A-1B比較了針對(duì)Times Roman 'a'和'D'的3彩色四叉樹所需的單元數(shù)目和 同樣精度下在圖2A-2B中的雙二次ADF所需的單元數(shù)目。單元數(shù)目直接和存儲(chǔ)需求相關(guān)。 兩個(gè)四叉樹都具有與距離值的512X512圖像相當(dāng)?shù)姆直媛省a槍?duì)'a'和'D'的3彩色四 叉樹分別具有17, 393和20, 813個(gè)單元,而它們對(duì)應(yīng)的雙二次ADF具有457和399個(gè)單元。 雙二次ADF通常比Frisken et al. "Adaptively SampledDistance Fields :a General Representation of Shape for ComputerGraphics, ,, Proceedings ACM SIGGRAPH 2000, pp. 249-254,2000的現(xiàn)有技術(shù)雙線性表示法少需要5_20倍的單元。
雙二次重構(gòu)方法 Frisken等人針對(duì)ADF空間層次結(jié)構(gòu)使用四叉樹,并且通過雙線性內(nèi)插從在每個(gè) 單元的四個(gè)角上采樣的距離重構(gòu)每個(gè)單元內(nèi)部的距離和梯度。他們提出"高階的重構(gòu)方
法......可被用于進(jìn)一步增加壓縮比,但該數(shù)目已經(jīng)暗示了一個(gè)針對(duì)額外努力的回報(bào)減
少的點(diǎn)"。 然而依照本發(fā)明,雙線性ADF對(duì)于表示,繪制,編輯和動(dòng)畫制作字符字形是不適用 的。特別地,它們需要太多的存儲(chǔ)量,處理效率太低,并且非邊緣單元中的重構(gòu)場(chǎng)的質(zhì)量對(duì) 諸如動(dòng)態(tài)模擬的操作是不夠的。"有界表面"方法通過要求在離表面,即邊緣有限距離內(nèi)的非邊緣單元通過一個(gè) 誤差判定測(cè)試,可以促使在非邊緣單元內(nèi)的進(jìn)一步細(xì)分,參見Perry et al. ,"Kizamu: A System for Sculpting DigitalCharacters, ,,Proceedings ACM SIGGRAPH 2001, pp. 47-56,2001.盡管有界表面方法減小了在該有界區(qū)域內(nèi)部的距離場(chǎng)中的誤差,我們發(fā)現(xiàn) 對(duì)于雙線性ADF,該方法導(dǎo)致了在單元數(shù)目上的不可接受的增長。 為了解決這些局限性,我們用雙二次重構(gòu)方法代替雙線性重構(gòu)方法。典型字形的 雙二次ADF往往需要比雙線性ADF少5-20倍的單元。在所需單元數(shù)目上的較高減少發(fā)生 當(dāng)我們針對(duì)諸如動(dòng)態(tài)模擬和動(dòng)畫類型的操作需要在非邊緣單元中的正確距離場(chǎng)的時(shí)候。
這種非常大的存儲(chǔ)量的減小使得典型動(dòng)畫所需的字形能夠被裝入現(xiàn)代CPU的片 上高速緩存中。這在處理時(shí)間上具有顯著影響,因?yàn)橄到y(tǒng)存儲(chǔ)器的存取基本上被去除了,輕 易地補(bǔ)償了高階重構(gòu)方法所需的附加計(jì)算。
8
圖3顯示了依照我們的優(yōu)選實(shí)施例的雙二次ADF單元300 。雙二次ADF中的每個(gè) 單元包含九個(gè)距離值301。在點(diǎn)(x, y)302的距離和梯度依照下面的等式1_3從這九個(gè)距 離值進(jìn)行重構(gòu)。 這里有多種可用的雙二次重構(gòu)方法。我們采用保證沿相同尺寸的相鄰單元的公共 邊界邊緣C°連續(xù)的雙變量內(nèi)插多項(xiàng)式。和使用雙線性方法類似,在不同尺寸的相鄰單元之 間的距離場(chǎng)的連續(xù)性使用誤差判定來保持到指定的偏差內(nèi)。誤差控制在ADF產(chǎn)生過程中的 單元細(xì)分,參見上面Perry等人的論文。 在點(diǎn)(x, y) 302,這里x和y被表示為單元坐標(biāo),即(x, y) G
X
,的距離 和梯度由下確定 令xv丄=x_0. 5,并且xv2 = x_l 令yv! = y-0. 5,并且yv2 = y-1
令= 2xVj xv2, bx2 = _4x xv2,并且bx3 = 2x xv丄 令= 2yvj * yv2, by2 = _4y * yv2,并且by3 = 2y * yv工
dist = b)^ * (bxj * d丄+bx2 * d2+bx3 * d3) + by2 * (bxj * d4+bx2 * d5+bx3 * d6) + by3 (bxj d7+bx2 d8+bx3 d9) (1)
gradx = -[by丄 (4x (d「2d2+d3)-3d「d3+4d2) + by2 (4x (d4—2d5+d6) -3d4—d6+4d5) + by3 (4x (d7-2d8+d9) -3c^-d9+4d8) ] (2) grady = _[(4y_3) (bx工 d,bx2 d2+bx3 d3)_ (8y_4) (bxj d4+bx2 d5+bx3 d6) + (4y-l) (bx丄 d7+bx2 d8+bx3 d9)]. (3) 使用浮點(diǎn)算術(shù)重構(gòu)距離需要 35個(gè)浮點(diǎn)運(yùn)算(flop),而使用浮點(diǎn)算術(shù)重構(gòu)梯度 70個(gè)浮點(diǎn)運(yùn)算。因?yàn)槲覀兊闹貥?gòu)方法不包含分支,并且字形可以全部存在于片上高 速緩存中,我們可以通過利用專門的CPU指令和現(xiàn)代CPU的深度指令管道進(jìn)一步優(yōu)化這些 重構(gòu)方法。此外,我們可以使用定點(diǎn)算術(shù)來重構(gòu)距離和梯度。
針對(duì)傳輸和存儲(chǔ)的壓縮
線性四叉樹 ADF四叉樹的空間層次結(jié)構(gòu)對(duì)于某些處理是必要的,例如沖突檢測(cè),但對(duì)于其它處 理是不必要的,例如下面描述的基于單元的繪制。 為了提供針對(duì)ADF字形的傳輸和存儲(chǔ)的壓縮,我們使用線性四叉樹結(jié)構(gòu),它把我
們的雙二次ADF作為葉單元的列表進(jìn)行存儲(chǔ)。樹結(jié)構(gòu)可在需要時(shí)從葉單元重建。 線性ADF四叉樹中的每個(gè)葉單元包括每個(gè)各兩字節(jié)的該單元的x和y位置,一字
節(jié)的單元層次,兩字節(jié)的在單元中心的距離值,以及每個(gè)各一字節(jié)的距離中心距離值的八
個(gè)距離偏置,總共15字節(jié)/單元。 每個(gè)距離偏置通過把它對(duì)應(yīng)的采樣距離值從中心距離值減去,用單元尺寸縮放以 減小量化誤差,并截短為八比特來確定。每個(gè)單元位置兩個(gè)字節(jié)以及針對(duì)單元層次的一字 節(jié)可以在上至2"X2W的分辨率上表示ADF。這對(duì)于表示字形以在顯示屏幕分辨率上進(jìn)行 繪制來說遠(yuǎn)遠(yuǎn)足夠。
字形可用16比特的距離值正確表示。把八個(gè)距離值編碼為8比特的距離偏置提 供了在存儲(chǔ)這些值的每一個(gè)上大致兩字節(jié)的節(jié)約。盡管在理論上,這會(huì)導(dǎo)致在大單元的距 離場(chǎng)中的一些誤差,我們沒有觀測(cè)到任何視覺上的退化。 高分辨率字形通常需要500-1000個(gè)葉單元。無損熵編碼可以獲得進(jìn)一步的 35-50%的壓縮率。因此,高分辨率ADF的整個(gè)字樣可被表示為300-500K字節(jié)。如果只需 要正文類型或者目標(biāo)分辨率很低,就像用于蜂窩電話,那么需要1/4 1/2的單元的低分辨 率ADF可被使用。 這些尺寸大大小于對(duì)每種點(diǎn)尺寸需要 0.5Mbytes/字樣的灰度位圖字體,在尺 寸上與很好提示的基于輪廓的字體相當(dāng)。TrueType字體的尺寸根據(jù)字形個(gè)數(shù)和提示的數(shù)目 和方法在十幾Kbytes到十幾Mbytes的范圍內(nèi)變化。Monotype公司的兩種很好提示的字體 Arial禾口 Times New Roman分另U需要266 Kbytes禾口 316 Kbytes。
從輪廓運(yùn)行時(shí)產(chǎn)生 根據(jù)我們的發(fā)明,就像在下面詳細(xì)描述的那樣,ADF可以使用Perry等人描述的 平鋪發(fā)生器從現(xiàn)有的輪廓或諸如Bezier曲線的邊界描述符中快速產(chǎn)生。到字形輪廓或邊 界的最小距離使用Bezier切片有效地計(jì)算,參見Sederberg et al. ,"Geometric Hermite Approximationof Surface Patch Intersection Curves, ,, CAGD, 8 (2) ,pp. 97-114,1991.
產(chǎn)生在2GHz Pentium IV處理器上需要0. 04-0. 08秒/字形。整個(gè)字樣可以在大 約四秒內(nèi)產(chǎn)生。由于不需要傳統(tǒng)的提示,產(chǎn)生ADF所需的邊界描述符大大小于它們對(duì)應(yīng)的 提示副本。 因此,與其存儲(chǔ)ADF,我們可以存儲(chǔ)這些最小輪廓,并在需要時(shí)從這些輪廓?jiǎng)討B(tài)產(chǎn) 生ADF字形。這些最小輪廓的縮減尺寸對(duì)于具有有限存儲(chǔ)量的設(shè)備和在有限帶寬的網(wǎng)絡(luò)上 傳輸字形的應(yīng)用來說很重要。 圖10顯示了用于把諸如字形的二維對(duì)象轉(zhuǎn)換成二維距離場(chǎng)的方法1000。對(duì)象 1001被表示為諸如樣條的邊界描述符集合和諸如偶_奇準(zhǔn)則或非零纏繞準(zhǔn)則的填充準(zhǔn)則。
該邊界描述符集合首先被預(yù)處理1010。預(yù)處理細(xì)分邊界描述符以減小它們的空間 范圍。邊界描述符也可被合并以減小邊界描述符集合的勢(shì)。預(yù)處理允許我們?cè)诖_定無符號(hào) 距離時(shí)減小針對(duì)每個(gè)位置所需查詢的邊界描述符的數(shù)目,如下所述。 空間層次結(jié)構(gòu)1021,例如四叉樹,從邊界描述符的預(yù)處理集合1011中構(gòu)建1020。 交點(diǎn)1031的快速緩存被初始化1030。交點(diǎn)1031的快速緩存保存邊界描述符與距離場(chǎng)的一 組諸如水平,垂直,對(duì)角等等線條相交的位置和相交的方向。這消除了在確定無符號(hào)距離的 符號(hào)時(shí)的冗余計(jì)算。交點(diǎn)可用間距來保存。 空間層次結(jié)構(gòu)1021隨后在位置集合被查詢1040用以確定在這些位置的距離集 合。該距離集合被用來構(gòu)建二維距離場(chǎng)1041。查詢?cè)诿總€(gè)位置調(diào)用諸如Bezier切片的距 離函數(shù)來確定無符號(hào)距離。交點(diǎn)的快速緩存,位置和填充準(zhǔn)則被用來確定距離的符號(hào)。
通過基于部件的字體進(jìn)行壓縮 針對(duì)包含10,000或更多字形的中文,日文和韓文字體的最有效的壓縮可通過使 用類似字體融合中的基于部件的表示法來實(shí)現(xiàn)。該表示法把字形分解成公共筆劃或部首, 即多個(gè)字體共有的復(fù)雜形狀,把筆劃和部首存入字體庫中,然后在字體繪制引擎中對(duì)它們 進(jìn)行重組。
因?yàn)榫嚯x場(chǎng)是一種隱性的表示,ADF可以使用混合或CSG運(yùn)算被輕易地組合,因此 很適合用于通過基于部件的方法進(jìn)行的壓縮。
表示二維距離場(chǎng)中的角 使用雙線性或雙二次重構(gòu)方法的細(xì)節(jié)支配的采樣允許ADF用少量距離值來表示 二維對(duì)象邊界的相對(duì)平滑的部分。然而在靠近角處,距離場(chǎng)具有高的方差,不能被這些重構(gòu) 方法很好地近似。為了正確地表示靠近角的距離場(chǎng),這種ADF要求包含角的單元被高度細(xì) 分,大大增加了存儲(chǔ)需求。另外,在如Perry等人所述的在ADF產(chǎn)生過程中采用的ADF的最 大細(xì)分級(jí)別限制了使用雙線性和雙二次ADF單元表示角的正確率。 為了解決這個(gè)問題,我們的發(fā)明提供了用于在與諸如字形的二維對(duì)象的角相關(guān)聯(lián) 的單元內(nèi)產(chǎn)生二維距離場(chǎng)的方法1300。 方法1300從二維對(duì)象確定1310邊界描述符1311的有序集合,并從該邊界描述符
1311的有序集合中識(shí)別出1320與單元相關(guān)聯(lián),例如靠近或在內(nèi)部,的角點(diǎn)1321。該單元隨
后被分割1330成兩個(gè)區(qū)域,第一區(qū)域離角最近,第二區(qū)域離對(duì)象邊界最近。方法1300也指
定了 1340用于在單元內(nèi)重構(gòu)距離的重構(gòu)方法和一組采樣距離值1371,并把該角點(diǎn)1321,為
區(qū)域定界的線,重構(gòu)方法和該組采樣距離值1371保存1380到存儲(chǔ)器中。 重構(gòu)方法根據(jù)該點(diǎn)所在的區(qū)域確定單元內(nèi)一點(diǎn)的距離。在第一區(qū)域中的查詢點(diǎn)的
距離被確定為從查詢點(diǎn)到角點(diǎn)的距離。 為了確定第二區(qū)域中的距離,我們把邊界描述符1311的有序集合分割1350成兩 個(gè)子集,一個(gè)包含在角點(diǎn)1321之前的邊界描述符,一個(gè)包含在角點(diǎn)1321之后的邊界描述 符。邊界描述符的每個(gè)子集隨后被延長1360以形成把單元分割成內(nèi)部和外部部分的延長 線。對(duì)每個(gè)部分,在單元內(nèi)的距離場(chǎng)可從由對(duì)應(yīng)延長線確定1370的采樣距離值1371集合 重構(gòu)。雙二次重建方法要求針對(duì)兩條延長線中的每一個(gè)保存九個(gè)距離值。
注意兩個(gè)內(nèi)部部分的交點(diǎn)形成了對(duì)象的角。因此,在第二區(qū)域內(nèi)的距離可通過重 構(gòu)到第一內(nèi)部部分的距離和到第二內(nèi)部部分的距離,然后選擇兩個(gè)確定距離的最小值來決 定。 這兩個(gè)區(qū)域可從穿過角點(diǎn)的兩條有向直線來指定,每條線垂直于邊界描述符兩個(gè) 子集中的一個(gè)。每條線可用角點(diǎn)和在角點(diǎn)處邊界描述符對(duì)應(yīng)子集的面向外側(cè)的法線來表 示。當(dāng)直線像這樣被確定時(shí),我們可以通過測(cè)定從查詢點(diǎn)到角點(diǎn)的向量和面向外側(cè)的法線 的叉積來判斷查詢點(diǎn)位于直線的哪一側(cè)。位于兩條直線外側(cè)的點(diǎn)位于第一區(qū)域,而位于任 意一條直線內(nèi)側(cè)的點(diǎn)位于第二區(qū)域。 圖21A-21D舉例說明了角單元的表示法。在圖21A中,單元2102包含對(duì)象2104的 一部分,其中對(duì)象2104的內(nèi)部被畫上陰影,而外部則被留為白色。該對(duì)象2104在單元2102 內(nèi)的邊界包括第一組邊界描述符2114,角點(diǎn)2116和第二組邊界描述符2118。
在對(duì)象2104該部分的單元2102中的距離場(chǎng)可以通過合并在圖21B中示出的延長 線2115的距離場(chǎng),在圖21C中示出的延長線2119的距離場(chǎng)和在圖21D中示出的角點(diǎn)2116 的距離場(chǎng)來表示。延長線2115通過延長第一組邊界描述符來定義。類似地,延長線2199 通過延長第二組邊界描述符來定義。 在優(yōu)選實(shí)施例中,延長線2115和2119的距離場(chǎng)各自使用一組采樣距離和諸如雙 線性或雙二次重構(gòu)方法的重構(gòu)方法來表示,而角點(diǎn)2116的距離場(chǎng)由用于確定從采樣點(diǎn)到角點(diǎn)2116的有符號(hào)距離的程序來表示。 角點(diǎn)2116的距離場(chǎng)的符號(hào)可從由角點(diǎn)2116表示的角的角度來確定。如果在對(duì)象 2104該部分的外側(cè)測(cè)量得到的角角度是銳的,那么角點(diǎn)2116的距離場(chǎng)符號(hào)為正。如果在對(duì) 象2104該部分的外側(cè)測(cè)量得到的角角度是鈍的,那么角點(diǎn)2116的距離場(chǎng)符號(hào)為負(fù)。例如, 由角點(diǎn)2116表示的角是鈍的,那么該角的距離場(chǎng)符號(hào)為負(fù)。 延長線2115和2119以及角點(diǎn)2116的距離場(chǎng)各自具有一個(gè)有效范圍和無效范圍。 有效范圍和無效范圍用由延長線2115的法向向量2120定義的第一直線和由延長線2119 的法向向量2122定義的第二直線分隔開,兩條線都通過角點(diǎn)2116。 圖21B, 21C和21D分別顯示了針對(duì)延長線2115, 2119和角點(diǎn)2116的有陰影的無效 范圍2124, 2126和2128以及無陰影的有效范圍2130, 2132和2134。在上面針對(duì)方法1300 定義的第一和第二區(qū)域可從有效范圍確定。第一區(qū)域,即離角點(diǎn)2116最近的單元區(qū)域,與 角點(diǎn)2116的有效區(qū)域2134相同。第二區(qū)域,即離對(duì)象2104的邊界最近的單元區(qū)域,是延 長線2115的有效區(qū)域2130和延長線2119的有效區(qū)域2132的并集。 在本發(fā)明的一個(gè)實(shí)施例中,為了確定單元2102中的采樣點(diǎn)的距離,我們從延長線 2115的距離場(chǎng)重構(gòu)第一有符號(hào)距離和對(duì)應(yīng)的第一有效性標(biāo)志,從延長線2119的距離場(chǎng)重 構(gòu)第二有符號(hào)距離和對(duì)應(yīng)的第二有效性標(biāo)志,從角點(diǎn)2116的距離場(chǎng)重構(gòu)第三有符號(hào)距離 和對(duì)應(yīng)的第三有效性標(biāo)志。第一,第二和第三有效性標(biāo)志分別根據(jù)采樣點(diǎn)位于延長線2115, 延長線2119和角點(diǎn)2116的有效區(qū)域的內(nèi)部還是外部來確定。從采樣點(diǎn)到對(duì)象2104該部 分的距離是針對(duì)該采樣點(diǎn)的有效的第一,第二和第三有符號(hào)距離的最小值。
表示二維距離場(chǎng)中的豎筆和其它細(xì)小結(jié)構(gòu) 使用角單元使使得ADF無需過度細(xì)分單元就能夠正確表示角。然而除角之外,諸 如字形的二維對(duì)象可以具有諸如垂直豎筆或水平橫筆的細(xì)小結(jié)構(gòu)。在這些結(jié)構(gòu)附近,距離 場(chǎng)是C1不連續(xù)的。當(dāng)梯度在一點(diǎn)奇異,即不連續(xù)時(shí),距離場(chǎng)在該點(diǎn)上是C1不連續(xù)的。
例如,距離場(chǎng)沿著在細(xì)小結(jié)構(gòu)任一側(cè)上的邊界描述符之間的曲線中段是(^不連續(xù) 的。因?yàn)檫@種不連續(xù)性需要對(duì)ADF的單元進(jìn)行過度細(xì)分,這就有在細(xì)小結(jié)構(gòu)附近更好的單 元表示和重構(gòu)方法的需求。 我們的本發(fā)明提供了針對(duì)在細(xì)小結(jié)構(gòu)附近的單元的'兩片段單元'表示和兩片段 單元重構(gòu)方法。圖22A,22B和22C示出了依照我們的本發(fā)明的兩片段單元。
在圖22A中,單元2202包含對(duì)象2206的一部分,在其中對(duì)象2206的內(nèi)部被畫上陰 影而外部則被留為白色。在單元2202內(nèi)的對(duì)象2206該部分的邊界包含包括第一片段2214 的第一組邊界描述符和包括第二片段2216的第二組邊界描述符。 在單元2202中的對(duì)象2206該部分的距離場(chǎng)可通過合并在圖22B中示出的第一片 段2214的距離場(chǎng)和在圖22C中示出的第二片段2216的距離場(chǎng)來表示。在優(yōu)選實(shí)施例中, 第一片段2214和第二片段2216的距離場(chǎng)各自使用一組采樣距離和諸如雙線性或雙二次重 構(gòu)方法的重構(gòu)方法來表示。 為了確定從采樣地到單元2202內(nèi)的對(duì)象2206該部分的距離,我們?cè)谠摬蓸狱c(diǎn)從 第一片段2214的距離場(chǎng)重構(gòu)第一有符號(hào)距離,并從第二片段2216的距離場(chǎng)重構(gòu)第二有符 號(hào)距離。 在圖22B中,針對(duì)第一片段2214的有符號(hào)距離場(chǎng)的正范圍2220被畫上陰影,而負(fù)
12范圍2222則被留為白色。在圖22C中,針對(duì)第二片段2216的有符號(hào)距離場(chǎng)的正范圍2230 被畫上陰影,而負(fù)范圍2232則被留為白色。在單元2202中的對(duì)象2206該部分是圖22B的 有陰影的正范圍2220和圖22C的有陰影的正范圍2230的交集。在優(yōu)選實(shí)施例中,從采樣點(diǎn) 到單元2202中的對(duì)象2206該部分的距離是第一有符號(hào)距離和第二有符號(hào)距離的最小值。
圖23示出了用于在與二維對(duì)象2301相關(guān)聯(lián)的兩片段單元2302中產(chǎn)生二維距離 場(chǎng)的方法。 一組邊界描述符2311針對(duì)對(duì)象2301被確定2310。邊界描述符2311可以有不 同的表示,包括線段和諸如Bezier曲線的樣條曲線。 邊界描述符2311被分割2320成一組片段2321,其中該組片段2321中的片段由 在預(yù)處理步驟或在分割2320過程中確定的一組特征來定界。特征的例子包括對(duì)象2301的 角,邊界描述符2311具有巨大彎曲度的點(diǎn),特定邊界描述符的端點(diǎn)或在特定邊界描述符上 沿特定片段的累加曲率超過預(yù)定門限的點(diǎn)。例如,把一個(gè)特征放在大的累加曲率的點(diǎn)上使 得能夠在一個(gè)片段開始彎回到自身,即當(dāng)片段的累加曲率幅度超過90度時(shí),劃定該片段的 邊界。 我們針對(duì)單元2302在該組片段2321中識(shí)別2330第一片段2331和第二片段2332。 在優(yōu)選實(shí)施例中,識(shí)別2330通過確定從每個(gè)測(cè)試點(diǎn)到該組片段2321中的每個(gè)片段的距離, 從該組片段2321中為單元2302內(nèi)的一組測(cè)試點(diǎn)中的每個(gè)測(cè)試點(diǎn)定位最近的片段。如果單 元2302中的每個(gè)測(cè)試點(diǎn)距離該組片段2321內(nèi)兩個(gè)特定片段中的一個(gè)最近,那么我們把這 兩個(gè)特定片段識(shí)別2330為兩片段單元的第一片段2331和第二片段2332。
我們指定2340第一組距離值2341來表示第一片段2331的距離場(chǎng),第二組距離值 2342來表示第二片段2332的距離場(chǎng)。例如, 一組九個(gè)距離值可于雙二次重構(gòu)方法一起被指 定2340用來表示對(duì)應(yīng)一個(gè)片段的距離場(chǎng)。 方法2300定義2350 了用于合并第一組距離值2341和第二組距離值2342以重構(gòu) 單元2302內(nèi)的距離場(chǎng)的重構(gòu)方法2351。在優(yōu)選實(shí)施例中,重構(gòu)方法2351通過使用第一組 距離值2341確定從采樣點(diǎn)到第一片段2331的距離,使用第二組距離值2342確定從采樣點(diǎn) 到第二片段2332的距離,然后通過取第一距離和第二距離的最小值來合并第一距離和第 二距離來重構(gòu)在單元2302內(nèi)一個(gè)采樣點(diǎn)上的距離場(chǎng)。距離值2341的集合,距離值2342的集合和重構(gòu)方法2351被存入2360存儲(chǔ)器2370 中,以使得在單元2302內(nèi)的二維對(duì)象2301的二維距離場(chǎng)的重構(gòu)成為可能。
為具有專用單元的距離場(chǎng)確定單元的最優(yōu)配置 使用諸如角單元和兩片段單元的專用單元可以減輕ADF單元的過度細(xì)分,該ADF 表示具有角和細(xì)小結(jié)構(gòu)的諸如字形的對(duì)象。然而,針對(duì)使用這些專用單元的距離場(chǎng)確定單 元的最優(yōu)配置相對(duì)于確定不使用專用單元的單元最優(yōu)配置復(fù)雜很多。針對(duì)距離場(chǎng)的單元配 置包括,例如單元的位置,尺寸,方向,重構(gòu)方法,類型和幾何特性。 用于分割包含表示對(duì)象的距離場(chǎng)的區(qū)域的可能單元配置有很多。Frisken等人的
現(xiàn)有技術(shù)講解了一種自頂向下和自底向上的細(xì)分方法,該方法把區(qū)域分割成矩形單元以產(chǎn)
生基于四叉樹或基于八叉樹的ADF,從而提供一種沒有專用單元的非最優(yōu)配置。不同于現(xiàn)有
技術(shù),本發(fā)明提供了一種用于產(chǎn)生具有最優(yōu)單元配置的基于單元的距離場(chǎng)表示方法。在優(yōu)
選實(shí)施例中,最優(yōu)配置可以包括諸如角單元和兩片段單元的專用單元。 圖24A示出了包含二維對(duì)象2401 —部分的區(qū)域2460,其中對(duì)象的內(nèi)部被畫上陰影而外部則被留為白色。在區(qū)域2460內(nèi)部的對(duì)象2401該部分的邊界包括與第一組邊界描述 符相關(guān)聯(lián)的第一片段2406,與第二組邊界描述符相關(guān)聯(lián)的第二片段2408,以及與第三組邊 界描述符相關(guān)聯(lián)的第三片段2410。第一片段2406和第二片段2408在對(duì)象2401該部分的 角2412相遇,而第二片段2408和第三片段2410在對(duì)象2401該部分的角2414相遇。
分割區(qū)域2460以確定單元配置的方式有很多。圖24B-24D顯示了在該配置可以 包含兩片段單元和角單元的時(shí)候,分割區(qū)域2460的不同單元配置。對(duì)于最優(yōu)配置的"最優(yōu)" 的詳細(xì)定義依賴于許多參數(shù),一些參數(shù)在圖24B-24D中示出,而其它參數(shù)將在下面描述。
圖24B顯示了針對(duì)在區(qū)域2460內(nèi)對(duì)象2401的邊界的Voronoi圖。每個(gè)不同陰影 的單元顯示了最接近某一片段或角的區(qū)域2460的一部分。在單元2420中的點(diǎn)最接近片斷 2406。在單元2422中的點(diǎn)最接近片斷2408。在單元2424中的點(diǎn)最接近片斷2410。在單 元2426中的點(diǎn)最接近角2414。最后,在單元2428中的點(diǎn)最接近角2414。
圖24B的Voronoi圖是當(dāng)該配置僅使用"一片段單元"時(shí),針對(duì)區(qū)域2460的最優(yōu) 單元配置的例子,一片段單元定義為在該單元內(nèi)的距離場(chǎng)可從單個(gè)片段確定的單元。在一 片段單元中的距離可通過例如在最接近該單元的片斷具有非常低的曲率時(shí)使用雙二次重 構(gòu)方法從一組采樣距離值進(jìn)行重構(gòu)。多種可選擇的重構(gòu)方法也是可能的,包括從單元內(nèi)一 點(diǎn)到離該單元最近的片斷的距離的解析確定。 圖24B的Voronoi圖在它提供了從中對(duì)象2401該部分的距離場(chǎng)可使用一片段單 元在區(qū)域2460的任何地方被準(zhǔn)確重構(gòu)的最小數(shù)目的單元的意義上是一種最優(yōu)單元配置。 使用Voronoi圖分割區(qū)域2460的一個(gè)缺點(diǎn)是確定Voronoi圖的準(zhǔn)確配置是困難的。使用 Voronoi圖的第二個(gè)缺點(diǎn)是那些單元具有非常復(fù)雜的邊界,因此導(dǎo)致了在繪制過程中針對(duì) 光柵化和定位單元的非常長的運(yùn)算時(shí)間。 圖24C提供了 一種分割區(qū)域2460的可選擇的最優(yōu)單元配置,該配置使用如上定義 的角單元。區(qū)域2460被分割成第一角單元2430和第二角單元2432。在角單元2430中的 距離可使用第一片段2406,角2412和第二片段2408進(jìn)行重構(gòu)。在角單元2432中的距離可 使用第二片段2408,角2414和第三片段2410進(jìn)行重構(gòu)。在角單元2430或角單元2432中 的距離可以使用諸如上面描述的方法那樣的角單元重構(gòu)方法從采樣距離值以非常高的精 度進(jìn)行重構(gòu)。 在圖24C中示出的單元配置在圖24B和24D的配置之上的優(yōu)點(diǎn)是圖24C中的配置 需要較少的單元。 一個(gè)缺點(diǎn)是角單元重構(gòu)方法通常比一片段或兩片段重構(gòu)方法更加復(fù)雜和 低效,并且圖24C的單元配置需要角單元重構(gòu)方法被用于區(qū)域2460的所有點(diǎn)。圖24C的配 置的第二個(gè)缺點(diǎn)是,與圖24B的Voronoi圖類似,單元邊界可能很難確定。第三個(gè)缺點(diǎn)是單 元邊界可能非常復(fù)雜,因此導(dǎo)致了在繪制過程中針對(duì)光柵化和定位單元的非常長的計(jì)算時(shí) 間。 圖24D示出了區(qū)域2460的第三種可選擇的最優(yōu)分割。區(qū)域2460被分割成四叉樹, 其中四叉樹中的每個(gè)葉子節(jié)點(diǎn)依照它的單元類型被畫上陰影。單元2440是一片段單元,單 元內(nèi)的點(diǎn)最接近片斷2410。單元2442是一個(gè)兩片段單元,單元內(nèi)的點(diǎn)最接近片斷2406或 片斷2410。在該單元內(nèi)的距離可使用兩片段重構(gòu)方法重構(gòu)。單元2444是一個(gè)角單元,其中 單元內(nèi)的點(diǎn)最接近角2414,片斷2406或片斷2408。單元2446也是一個(gè)角單元,其中單元 內(nèi)的點(diǎn)最接近角2414,片斷2408或片斷2410。在單元2444和單元2446中的距離可使用角單元重構(gòu)方法進(jìn)行重構(gòu)。 單元2448,2450和2452是外部單元,即位于距對(duì)象2401的邊界最小距離之外的
在對(duì)象2401該部分外部的單元。如果該距離場(chǎng)的正確表示在最小距離之外是不需要的,那
么在單元2448,2450和2452內(nèi)的點(diǎn)的距離可用更簡單的重構(gòu)方法近似。例如,在該點(diǎn)的距
離可使用雙二次重構(gòu)方法從九個(gè)采樣距離值重構(gòu),因此減少了存儲(chǔ)量和計(jì)算時(shí)間。 在圖24D中示出的分割的一個(gè)優(yōu)點(diǎn)是單元具有簡單的邊界,因此可以在繪制過程
中快速且輕易地光柵化和定位。第二個(gè)優(yōu)點(diǎn)是四叉樹提供了一種使距離場(chǎng)的快速查詢稱謂
可能的空間數(shù)據(jù)結(jié)構(gòu)。在圖24C的配置之上的優(yōu)點(diǎn)是諸如一片段或雙二次重構(gòu)方法的簡單
重構(gòu)方法被用于區(qū)域中的一些點(diǎn),而諸如兩片段或角重構(gòu)方法的較復(fù)雜的方法僅在需要時(shí)
使用,因此減少了計(jì)算時(shí)間。缺點(diǎn)是相比圖24B和24C的配置,圖24D的配置中有更多的單元。 就像由在圖24B,24C和24D中顯示的例子說明的那樣,當(dāng)專用單元類型被使用時(shí), 存在很多種針對(duì)分割表示對(duì)象的距離場(chǎng)的最優(yōu)單元配置。當(dāng)產(chǎn)生一種配置時(shí),定義"最優(yōu)" 依賴于許多參數(shù),包括如何繪制,編輯和處理該配置。 通過最優(yōu)配置,我們想要一種平衡基于單元的距離場(chǎng)表示的一組期望特征的配 置。配置的優(yōu)化可以通過最小化距離場(chǎng)尺寸,最小化繪制距離場(chǎng)所需的時(shí)間,最小化產(chǎn)生距 離場(chǎng)的時(shí)間,最大化距離場(chǎng)繪制的質(zhì)量度量,最小化單元總數(shù)以及最大化距離場(chǎng)的精度來 指導(dǎo),僅以這些為例。 圖25示出了用于針對(duì)表示對(duì)象的形狀描述符2502的區(qū)域2501產(chǎn)生基于單元的 距離場(chǎng)的方法2500。單元類型2511的集合被定義2510,其中單元類型可包括雙線性或雙 二次單元類型和包含角單元類型和兩片段單元類型各種專用單元類型,僅以這些為例。
方法2500產(chǎn)生2520針對(duì)區(qū)域2501的一組單元的配置2521,其中該組單元中的每 個(gè)單元具有特定的與單元類型集合2511定義的一樣的單元類型和用于重構(gòu)該單元內(nèi)的距 離場(chǎng)的重構(gòu)方法2512。該組單元的配置2521使用形狀描述符2502,區(qū)域2501和單元類型 集合2511進(jìn)行修改2530,直到達(dá)到針對(duì)區(qū)域2501該組單元的最優(yōu)配置2531。該組單元的 最優(yōu)配置2531被存儲(chǔ)2540在存儲(chǔ)器2541中以產(chǎn)生基于單元的距離場(chǎng)。
不同于Frisken等人描述的現(xiàn)有技術(shù)自頂向下和自底向上的產(chǎn)生方法,依照本發(fā) 明的配置能夠提供區(qū)域2501的完備的棋盤形布置或不完備的棋盤形布置。例如,依照本發(fā) 明,配置2521和最優(yōu)配置2531都可以覆蓋區(qū)域的一個(gè)子集,留下沒有表示距離場(chǎng)的區(qū)域范 圍,或提供區(qū)域外部距離場(chǎng)表示的區(qū)域超集。不同于現(xiàn)有技術(shù)方法,在本發(fā)明中的單元可以 相互重疊,提供產(chǎn)生最優(yōu)配置的額外機(jī)會(huì)。 現(xiàn)有技術(shù)方法沒有用優(yōu)化準(zhǔn)則指導(dǎo),因此不能產(chǎn)生任何意義下的最優(yōu)配置。現(xiàn)有 技術(shù)使用嚴(yán)格的確定性方法,導(dǎo)致通常是受限的和次優(yōu)的配置。現(xiàn)有技術(shù)也沒有在產(chǎn)生過 程中考慮專用單元。 為了獲得依照本發(fā)明的最優(yōu)配置,該組單元的配置2521的產(chǎn)生2520和修改2530 均可由用戶手動(dòng),由計(jì)算機(jī)自動(dòng)或由具有用戶輸入的計(jì)算機(jī)半自動(dòng)地完成。修改2530可以 通過從該組單元的配置2521中添加或刪除單元,或通過改變特定單元的諸如該特定單元 的幾何特性,位置,方向和類型的屬性來改變?cè)摻M單元的配置2521。產(chǎn)生2520和修改2530 均可使用確 性方法或包括概率方法和隨機(jī)方法在內(nèi)的不確定性方法來實(shí)現(xiàn)。
在一個(gè)實(shí)施例中,產(chǎn)生2520把單個(gè)單元放在區(qū)域2501內(nèi)的任意或預(yù)定的位置上, 并且修改2530把該單元調(diào)整到最優(yōu)形狀和尺寸上。修改2530隨后把新的單元添加到區(qū) 域2501的未覆蓋區(qū)域,調(diào)整每個(gè)單元至最優(yōu)形狀和尺寸,并重復(fù)該過程直至實(shí)現(xiàn)最優(yōu)配置 2531。在另一個(gè)實(shí)施例中,產(chǎn)生2520把一組初始角單元放在形狀描述符2502的角點(diǎn)附近, 修改2530把區(qū)域2501剩余的未覆蓋區(qū)域棋盤化以確定另一個(gè)最優(yōu)配置2531。這些實(shí)施例 都提供了在Frisken等人的現(xiàn)有技術(shù)方法中不可能得到的最優(yōu)配置2531。
在另一個(gè)實(shí)施例中,產(chǎn)生2520可以包括預(yù)處理形狀描述符2502以生成一組預(yù)處 理后的形狀描述符和一組對(duì)應(yīng)的可被用來加速產(chǎn)生2520和修改2530的預(yù)處理距離程序。
例如,預(yù)處理可以從形狀描述符中確定邊界描述符,把邊界描述符分割成由邊界 描述符的特征定界的一組片斷。該特征如上所述包括角點(diǎn),具有巨大曲率的沿著邊界描述 符的點(diǎn),邊界描述符的端點(diǎn)以及巨大累加曲率的點(diǎn)。特征可通過添加,刪除和變更特定特征 在修改2530過程中被改變。當(dāng)特征在修改2530過程中被改變時(shí),該組預(yù)處理后的形狀描 述符和該組預(yù)處理后的距離程序可被權(quán)宜采用。
字體繪制 在當(dāng)今的字體繪制引擎中,字體大多被表示為可在需要時(shí)進(jìn)行縮放以與期望的輸 出尺寸相匹配的輪廓。而大部分高分辨率打印機(jī)使用二值繪制,現(xiàn)代顯示設(shè)備通常使用灰 度繪制或者在小的點(diǎn)尺寸上使用灰度和二值繪制的組合。 光柵化灰度字形的常用方法涉及縮放和提示它們的輪廓??s放和提示的輪廓被掃 描轉(zhuǎn)換為高分辨率的圖像,通常比期望分辨率大四或十六倍。然后該高分辨率圖像使用諸 如盒形過濾器的過濾方法降采樣以產(chǎn)生最終的灰度圖象。 對(duì)于正文類型,單個(gè)字形可被光柵化一次,然后作為灰度位圖存入高速緩存以便 在預(yù)處理步驟中重復(fù)利用。針對(duì)字形的子像素位移的需求需要光柵化每個(gè)字形的幾個(gè)版 本。針對(duì)正文類型使用高速緩存允許在諸如在Adobe Acrobat PDF文檔中進(jìn)行頁面調(diào)度的 任務(wù)的過程中,以諸如1/2秒的短延遲進(jìn)行較高質(zhì)量的繪制。 然而,在任意路徑上繪制的類型和動(dòng)態(tài)類型排除了高速緩存的使用,因此必須在 需要時(shí)被產(chǎn)生。實(shí)時(shí)繪制需求迫使使用低級(jí)的過濾器,例如每像素四個(gè)采樣點(diǎn)的盒形過濾, 并阻礙了提示的使用。這將導(dǎo)致空間和時(shí)間混疊,以及基線抖動(dòng)和不連續(xù)的筆劃寬度。該 混疊可使用位于系統(tǒng)存儲(chǔ)器上的提示設(shè)備字體來減小。然后,保持實(shí)時(shí)的幀率對(duì)如何使用 提示設(shè)備字體設(shè)置了幾個(gè)限制,例如提示設(shè)備字體不能被動(dòng)態(tài)縮放或旋轉(zhuǎn)。
Microsoft在ClearType上的新近工作導(dǎo)致了針對(duì)LCD彩色顯示器的空間處理, 它包含了可尋址的彩色子像素,即分量的重復(fù)模式。Platt在"Optimal Filtering for Patterned Displays, ,, IEEE SignalProcessing Letters, 7 (7) , pp. 179_180, 2000,中描述 了一組針對(duì)每個(gè)彩色分量的感知最優(yōu)的過濾器。在實(shí)際中,最優(yōu)過濾器作為一組三置換的 盒形過濾器來實(shí)現(xiàn),每個(gè)針對(duì)一種顏色。 ClearType使用基于現(xiàn)有技術(shù)提示和覆蓋的反混疊方法來確定每個(gè)像素的每個(gè)分 量的亮度,因此具有上述所有缺點(diǎn)。相反地,我們的基于距離場(chǎng)的方法使用距離場(chǎng)來確定每 個(gè)像素每個(gè)分量的亮度,并使用較少采樣點(diǎn)來實(shí)現(xiàn)。在下面描述的我們的ADF反混疊方法 可替換盒形過濾器以提供每個(gè)像素較少采樣點(diǎn)的最優(yōu)過濾器的更好的仿真。
反混疊。典型地,一個(gè)像素包含離散分
量,例如在彩色打印機(jī)或顯示器中的紅綠藍(lán)分量。在灰度設(shè)備中,該像素是單個(gè)離散分量。
由于像素是離散的,繪制到輸出設(shè)備本質(zhì)上是一個(gè)采樣過程。采樣率依賴于設(shè)備的分辨率。
除非采樣率至少是源信號(hào)中最高(Nyquist)頻率的兩倍,采樣信號(hào)呈現(xiàn)混疊。 諸如字形輪廓的邊緣具有無窮大的頻率分量。因此邊緣不能用采樣數(shù)據(jù)精確地表
示。邊緣的不充分采樣導(dǎo)致了在運(yùn)動(dòng)圖像中往往是沿著被采樣邊緣爬行的鋸齒。如果源信
號(hào)還包含諸如"m"的重復(fù)垂直筆劃和"i"的單個(gè)垂直筆劃的空間模式,它們的頻率分量對(duì)
于采樣率來說過高,那么采樣數(shù)據(jù)將呈現(xiàn)信息缺失,摩爾條紋和時(shí)間抖動(dòng)。 為了避免混疊,輸入信號(hào)必須被預(yù)過濾以去除在采樣率允許之上的頻率分量。大
體上有兩種預(yù)過濾的方法。 第一種被稱為解析過濾。它在采樣前對(duì)源信號(hào)的連續(xù)表示使用空間平均的某種形 式。遺憾地是,解析過濾常常是不可能的,或者是因?yàn)樵葱盘?hào)沒有作為連續(xù)信號(hào)提供,這是 圖像處理的通常情況,或者是因?yàn)榇_定在過濾器占位內(nèi)的信號(hào)的解析描述過于復(fù)雜。這是 計(jì)算機(jī)圖形學(xué)中的所有除了簡單幾何形狀的情況,無疑是基于樣條的輪廓的情況。
第二種方法被稱為離散過濾。在該方法中,源信號(hào)通常以比目標(biāo)比率更高的比率 采樣以獲得超采樣的圖像。然后,離散過濾器被用來在把圖像降采樣為目標(biāo)比率之前減小 超采樣圖像中的高頻。離散方法在計(jì)算機(jī)圖形學(xué)中被稱為規(guī)則超采樣。 根據(jù)處理預(yù)算,硬件因素和關(guān)于輸出圖像中的對(duì)比度對(duì)平滑度的個(gè)人偏好可以使 用不同的離散過濾器。通常用于繪制類型的盒形過濾器把超采樣值的矩形陣列簡單替換為 它們的算術(shù)平均, 一般被認(rèn)為是信號(hào)處理界的低級(jí)過濾器。 在另一種方法中,自適應(yīng)超采樣把采樣和過濾的可用資源集中在具有較高局部頻 率分量的圖像區(qū)域上。最優(yōu)自適應(yīng)采樣可從圖像中的局部變化程度確定。然而,該技術(shù)的 有效性受需要估計(jì)圖像局部方差的限制,該處理的計(jì)算費(fèi)用很大。 由高頻模式的不充分規(guī)則采樣引起的摩爾條紋對(duì)于人的視覺系統(tǒng)是特別排斥的。
在一般的圖像處理中,隨機(jī)或抖動(dòng)采樣被用來解決該問題。對(duì)于隨機(jī)采樣,采樣點(diǎn)稍微偏離
其例行位置被隨機(jī)放置。隨機(jī)采樣傾向于用高頻噪聲代替混疊的摩爾條紋,并已被證明在
減小時(shí)間混疊上是非常有效的。 用基于距離的反混疊進(jìn)行繪制 由字形邊緣引入的無限大的頻率分量是在現(xiàn)有技術(shù)字體繪制中引起混疊的主要 成分。相反地,依照本發(fā)明通過使用2D距離場(chǎng)來表示2D對(duì)象,然后采樣該2D距離場(chǎng),由于
這種表示是(:°連續(xù)的,我們避免了這樣的邊界。作為替代,最大頻率依賴于字形本身的空
間模式,例如,'m'的重復(fù)垂直筆劃或'i'的單個(gè)垂直筆劃。 通過用它的2D距離場(chǎng)來表示字形,我們可以把解析預(yù)過濾器有效地用于該字形。 如下所述的我們的針對(duì)繪制距離場(chǎng)的反混疊方法產(chǎn)生一個(gè)與傳統(tǒng)解析預(yù)過濾器的輸出不 同的輸出。 用距離場(chǎng)反混疊 圖4顯示了以圖像順序?qū)Ρ硎?10為二維距離場(chǎng)411的諸如字形的對(duì)象401進(jìn)行 反混疊的方法400。每個(gè)像素402可包含一個(gè)或多個(gè)分量404,典型地用于'RGB'類型的輸 出設(shè)備的紅藍(lán)綠分量。該方法針對(duì)每個(gè)像素402的每個(gè)分量404使用一個(gè)或多個(gè)采樣點(diǎn)。方法400提供自適應(yīng)的基于距離的超采樣,基于距離的自動(dòng)提示和基于距離的網(wǎng)格適配。 作為結(jié)果的反混疊像素亮度可作為圖像的一部分在CRT或類似LCD的顯示器上繪制。該方 法對(duì)于繪制運(yùn)動(dòng)模糊特別有用。 在表示對(duì)象401的二維距離場(chǎng)411中的采樣點(diǎn)407的集合403與每個(gè)像素402的
每個(gè)分量404相關(guān)聯(lián)420。距離(D)405從二維距離場(chǎng)411和該采樣點(diǎn)集合403確定430。
然后,距離405被映射440為該像素402該分量404的反混疊亮度(1)406。 如上所述,在優(yōu)選實(shí)施例中,字形401用雙二次ADF 411表示410。這使得在字體
繪制過程中能夠有效使用基于距離的反混疊。其它諸如二維距離映射,二維距離框架,包括
專用單元的最優(yōu)ADF和程序上的距離場(chǎng)的表示也可被使用。 對(duì)于圖像中每個(gè)像素402的每個(gè)分量404,諸如葉單元的包含分量404的單元 使用在2002年7月31號(hào)提交的名為"Method forTr證rsing Quadtrees, Octrees, and N-Dimensional Bitrees,"的U. S專利申請(qǐng)?zhí)?0/209, 302中描述的四叉樹遍歷方法進(jìn)行定 位,通過參考其全文在這里并入。盡管其它在本技術(shù)中已知的遍歷方法可與我們的發(fā)明一 起使用,上述方法是無比較的,因此可以有效執(zhí)行。在分量404的距離從該單元的距離值重 構(gòu)并被映射440為反混疊亮度(1)406。 可以使用不同的映射,包括線性,Gaussian和S形函數(shù)。最優(yōu)映射函數(shù)的選擇是 主觀的。在一個(gè)實(shí)施例中,我們的映射是兩個(gè)函數(shù)的組合。第一個(gè)函數(shù)如上所訴,第二個(gè)是 對(duì)比度增強(qiáng)函數(shù)。這兩個(gè)函數(shù)被合并用以把距離場(chǎng)(D)405映射440為分量404的反混疊 亮度(1)406。 圖5顯示了作為距離502的函數(shù)的亮度501的線性映射500,例如
。該映射 把距離轉(zhuǎn)換為該像素每個(gè)分量的反混疊圖像亮度。距離在對(duì)象內(nèi)部為正,在對(duì)象外部為負(fù)。 不同的截止值503和504影響邊緣對(duì)比度和筆劃寬度。對(duì)于顯示類型,我們?cè)?-0. 75,0. 75) 像素的外部503和內(nèi)部504過濾器截止值上獲得了好的結(jié)果,對(duì)于正文類型是(-0.5, 0. 625)像素。 映射440可以用用戶接口選擇,這允許顯示器制造商針對(duì)他們的顯示器調(diào)整映射
440。類似地,用戶接口可在應(yīng)用軟件或操作系統(tǒng)層次上提供以使得每個(gè)用戶能夠根據(jù)他們
個(gè)人的偏好優(yōu)化映射440。 最優(yōu)的基于距離的自適應(yīng)超采樣 上述的基于距離的反混疊方法減小了由字形邊緣引起的混疊。然而,當(dāng)豎筆寬度 或字形部件間的間隔相對(duì)顯示器的采樣率太小時(shí),混疊失真仍會(huì)發(fā)生。在這種情況下,我們 采用如下所述的基于距離的自適應(yīng)超采樣進(jìn)一步減小空間和時(shí)間混疊。
在優(yōu)選實(shí)施例中,我們使用具有我們新的基于距離的自適應(yīng)超采樣的雙二次ADF
在現(xiàn)有技術(shù)基于輪廓的表示法和基于覆蓋的自適應(yīng)超采樣方法之上提供重大的改進(jìn)。由于
ADF使用細(xì)節(jié)支配的采樣,具有高的局部方差的距離場(chǎng)區(qū)域用較小的葉單元表示。因此,ADF
四叉樹的結(jié)構(gòu)提供了實(shí)現(xiàn)最優(yōu)的基于距離的自適應(yīng)采樣所需的局部方差的映射,克服了在
如上所述的確定局部方差的現(xiàn)有技術(shù)自適應(yīng)超采樣反混疊方法中的困難。 對(duì)于圖像中每個(gè)像素402的每個(gè)分量404,包含分量404的單元被定位,并且在該
分量的過濾器半徑r內(nèi)的采樣點(diǎn)407的集合403被關(guān)聯(lián)到像素分量404。每個(gè)分量的采樣
點(diǎn)407(spc)的數(shù)目依賴于單元關(guān)于r的相對(duì)尺寸(cellSize)。在采樣點(diǎn)407的采樣距離被過濾以確定430單個(gè)加權(quán)平均距離405,該距離隨后被映射440為該像素402該分量404 的反混疊亮度406。 多種過濾器和采樣策略是可能的。在優(yōu)選實(shí)施例中,我們使用Gaussian過濾器 的一般形式,用『"2-,"2對(duì)每個(gè)采樣點(diǎn)加權(quán),其中d是從采樣點(diǎn)到該像素分量的距離,而W 則是用于該分量的權(quán)重的和。類似的結(jié)果可用盒形過濾器,錐形過濾器,負(fù)的葉片過濾器和 Gaussian過濾器的其它形式來獲得。 圖6A-C顯示了我們的采樣策略。為了權(quán)值及權(quán)值和的有效計(jì)算,采樣點(diǎn)407被 放在靠近分量601的同心圓610內(nèi)。我們使用是像素間間隔的1.3倍的過濾器半徑r602, 并且當(dāng)cellSize > r時(shí)(圖6A)以lspc,當(dāng)r/2 < cellSize《r時(shí)(圖6B)以5spc,當(dāng) cellSize《r/2時(shí)(圖6C)以13spc進(jìn)行采樣。 除了同心圓,本發(fā)明可使用許多其它策略來關(guān)聯(lián)采樣點(diǎn)407和像素分量404。我們 的方法對(duì)于精確的采樣策略并不十分敏感。 如下所述的其它自適應(yīng)采樣策略把采樣點(diǎn)放置在包含在過濾器半徑r之內(nèi)的所 有單元的中心。該策略具有同樣的好結(jié)果。
基于單元的反混疊 上述的距離場(chǎng)反混疊方法可使用基于掃描行的光柵化在軟件中實(shí)現(xiàn)。可選擇地, 被分割成單元的距離場(chǎng),例如雙二次ADF或包含專用單元的最優(yōu)ADF,可一個(gè)單元接一個(gè)單 元,即以對(duì)象順序進(jìn)行反混疊。基于單元的繪制排除了用于定位包含該采樣點(diǎn)的單元的樹 遍歷,排除了用于計(jì)算單個(gè)單元內(nèi)的距離和梯度的冗余機(jī)構(gòu),并減少了單元數(shù)據(jù)的重復(fù)檢 索,即存儲(chǔ)器讀取。 另外,由于繪制所需的單元可被表示為固定尺寸的完備單元的有序塊,即單元內(nèi) 點(diǎn)的距離和梯度從該單元的距離值確定,我們的基于單元的方法可服從于硬件實(shí)現(xiàn),使實(shí) 時(shí)繪制成為可能。 圖7顯示了以對(duì)象順序?qū)Ρ硎?10為二維距離場(chǎng)711的諸如字形的對(duì)象701進(jìn)行 反混疊的方法700。方法700提供了自適應(yīng)的基于距離的超采樣,基于距離的自動(dòng)提示和基 于距離的網(wǎng)格適配。作為結(jié)果的反混疊像素亮度可作為圖形的一部分在CRT和類似LCD的 顯示器上繪制。該方法對(duì)于繪制運(yùn)動(dòng)模糊特別有用。我們可以在二維距離場(chǎng)711的單元以 空間層次結(jié)構(gòu)進(jìn)行組織以減小所需的距離采樣點(diǎn)數(shù)目的時(shí)候使用mip映射。
二維距離場(chǎng)711被分割成單元712。在我們使用雙二次自適應(yīng)采樣距離場(chǎng)的優(yōu)選 實(shí)施例中,每個(gè)單元的尺寸依賴于該二維距離場(chǎng)的局部方差。每個(gè)單元包括用于重構(gòu)該單 元內(nèi)的二維距離場(chǎng)的方法(M)713。包含待繪制距離場(chǎng)區(qū)域(虛線)722的一組單元721被 定義720。 區(qū)域722被用來定位730與該區(qū)域相關(guān)聯(lián)的一組像素731。在該組像素731中的 每個(gè)像素的分量集合741被指定740。然后,反混疊亮度751針對(duì)每個(gè)像素的每個(gè)分量從該 組單元中的距離確定。這里,距離從該組單元重構(gòu)。隨后該距離被映射為反混疊亮度,如上 所述。 在一個(gè)實(shí)施例中,我們可以通過定位在該像素分量附近的在該組單元內(nèi)的單個(gè)采 樣點(diǎn)來確定距離,并從該組單元重構(gòu)在該單個(gè)采樣點(diǎn)上的距離。在這個(gè)實(shí)施例中,二維距離 場(chǎng)711可被表示為包含專用單元的最優(yōu)ADF。
19
在我們的使用雙二次自適應(yīng)采樣距離場(chǎng)的優(yōu)選實(shí)施例中,該方法通過對(duì)比用于自 適應(yīng)的基于距離的超采樣的過濾器半徑小的單元進(jìn)行特殊處理而被增強(qiáng)。由于小的單元出 現(xiàn)在距離場(chǎng)中的高方差部分,靠近這些單元的像素內(nèi)的距離可在把該距離映射為亮度之前 被預(yù)過濾。 我們初始化元素的一個(gè)組合緩沖區(qū),其中每個(gè)元素對(duì)應(yīng)于該組像素中每個(gè)像素的
一個(gè)分量。在該組單元中的每個(gè)單元可被獨(dú)立處理。在優(yōu)選實(shí)施例中,每個(gè)元素包含均被
初始化為零的加權(quán)距離和累加權(quán)值。當(dāng)單元被處理時(shí),這些加權(quán)距離和累加權(quán)值在與位于
單元內(nèi)或單元中心的過濾器半徑內(nèi)的像素分量相對(duì)應(yīng)的緩沖區(qū)元素中增加。 處理完所有單元后,加權(quán)距離用針對(duì)每個(gè)像素每個(gè)分量的累加權(quán)重歸一化以產(chǎn)
生隨后被映射為反混疊分量亮度的距離。在優(yōu)選實(shí)施例中,我們使用與上面描述相同的
Gaussian權(quán)重和過濾器半徑。 迄今描述的我們的基于單元的繪制往往處理該組單元中的每個(gè)葉單元,而不考慮 每個(gè)單元關(guān)于過濾器半徑的相對(duì)尺寸。理論上,這提供了最優(yōu)的自適應(yīng)的基于距離的超采 樣。實(shí)際上,ADF四叉樹可作為mip映射使用以減小單元的數(shù)目。 ADF四叉樹結(jié)構(gòu)允許我們把小的葉單元替換為它們的祖先,有效地在某個(gè)預(yù)定單 元尺寸上截短四叉樹。只要該單元的尺寸小于等于像素間間隔的l/4,在自適應(yīng)的基于距離 的超采樣結(jié)果中不存在視覺感知上的退化。這減小了用于繪制該區(qū)域的單元數(shù)目。
繪制表示為二維距離場(chǎng)的重疊對(duì)象 本發(fā)明提供了避開現(xiàn)有技術(shù)中的問題的用于繪制表示為二維距離場(chǎng)的重疊對(duì)象 的方法和設(shè)備。特別地,不混合從基于覆蓋的反混疊得到的彩色和亮度值,也不在繪制前把 重疊對(duì)象合并成單個(gè)組合對(duì)象,本發(fā)明合并在針對(duì)像素分量的繪制過程中在需要時(shí)確定的 距離值。組合距離隨后被映射用以確定該像素分量的反混疊亮度。 圖14A和14B顯示了以圖像順序繪制對(duì)象集合1410的方法1400。參考圖14A, 該對(duì)象集合1410用二維距離場(chǎng)集合1430表示1420,每個(gè)對(duì)象有一個(gè)距離場(chǎng),例如,距離場(chǎng) 1431對(duì)應(yīng)于對(duì)象1411,而距離場(chǎng)1433對(duì)應(yīng)于對(duì)象1413。 如圖14B所示,每個(gè)像素1404可包含一個(gè)或多個(gè)分量1406,對(duì)于RGB繪制通常 是紅綠藍(lán)分量。方法1400確定像素1404的分量1406的反混疊亮度1402。采樣點(diǎn)集合 1441-1443與該像素分量1406相關(guān)聯(lián)1440,在每個(gè)采樣點(diǎn)集合和二維距離場(chǎng)集合1430中 的每個(gè)距離場(chǎng)之間是一一對(duì)應(yīng)的。例如,采樣點(diǎn)集合1441對(duì)應(yīng)距離場(chǎng)1431,而采樣點(diǎn)集合 1443對(duì)應(yīng)距離場(chǎng)1433。 對(duì)應(yīng)距離隨后針對(duì)每個(gè)距離場(chǎng)1431-1433使用它的對(duì)應(yīng)采樣點(diǎn)集合1441-1443來 確定,產(chǎn)生對(duì)應(yīng)距離1451-1453。例如,對(duì)應(yīng)距離1451針對(duì)距離場(chǎng)1431使用它的對(duì)應(yīng)采樣 點(diǎn)集合1441來確定。 對(duì)應(yīng)距離1451-1453隨后被合并1460以確定組合距離1461。該組合距離1461隨 后被映射1470以確定像素1404的分量1406的反混疊亮度1402。 圖15A, 15B和15C顯示了用于以對(duì)象順序繪制對(duì)象集合1510的方法1500。參考圖 15A,該對(duì)象集合1510中的每個(gè)對(duì)象1511-1513用對(duì)應(yīng)的二維距離場(chǎng)1521-1523表示1501 。 對(duì)應(yīng)的二維距離場(chǎng)1521-1523組成了二維距離場(chǎng)集合1520。例如,距離場(chǎng)1521對(duì)應(yīng)對(duì)象 1511,而距離場(chǎng)1523對(duì)應(yīng)對(duì)象1513。
參考圖15B,二維距離場(chǎng)集合1520中的每個(gè)距離場(chǎng)1521-1523被分割1525成單 元,其中每個(gè)單元與重構(gòu)1531該單元內(nèi)的二維距離場(chǎng)的方法相關(guān)聯(lián)1530。
如圖15C所示,要繪制對(duì)象集合1510的區(qū)域1545, 一組像素1551被定位1550,并 且針對(duì)該組像素1551中每個(gè)像素的分量集合1560被指定1555。注意該組像素1551中的 每個(gè)像素可以包含一個(gè)或多個(gè)分量,對(duì)于RGB繪制通常是紅綠藍(lán)分量。方法1500針對(duì)該組 像素1551中的每個(gè)像素的每個(gè)分量1561確定反混疊亮度1566。 針對(duì)二維距離場(chǎng)集合1520中的每個(gè)二維距離場(chǎng)1521-1523,與區(qū)域1545相關(guān)聯(lián)的 對(duì)應(yīng)單元1541-1543集合被識(shí)別1540,例如,單元集合1541針對(duì)距離場(chǎng)1521被識(shí)別1540, 而單元集合1543針對(duì)距離場(chǎng)1523被識(shí)別1540。 針對(duì)該組像素1551中每個(gè)像素的每個(gè)分量1561,反混疊亮度1566通過首先 針對(duì)該分量1561使用對(duì)應(yīng)的單元1541-1543集合來確定1570每個(gè)距離場(chǎng)的對(duì)應(yīng)距離 1571-1573來確定1565。例如,對(duì)于距離場(chǎng)1521,對(duì)應(yīng)距離1571針對(duì)分量1561使用單元 1541集合來確定1570。 對(duì)應(yīng)距離場(chǎng)1571-1573隨后被合并1575以確定一個(gè)組合距離1576。該組合距離 1576隨后被映射1580以產(chǎn)生該像素分量1561的反混疊亮度1566。 不同于通過混合或合并所繪對(duì)象的彩色或亮度值或通過合并基于覆蓋的反混疊 值來繪制重疊區(qū)域的現(xiàn)有技術(shù),方法1400和1500合并距離場(chǎng),因此減輕了現(xiàn)有技術(shù)表現(xiàn)出 的彩色失真和混合失真。 不同于Perry等人的現(xiàn)有方法,方法1400和1500不在繪制前產(chǎn)生組合距離場(chǎng)用 以表示組合對(duì)象。替代地,根據(jù)我們的本發(fā)敏發(fā)明,組合距離在繪制過程中根據(jù)需要針對(duì)像 素分量通過合并為該分量測(cè)定的距離來確定。 合并1460對(duì)應(yīng)距離1451-1453和合并1475對(duì)應(yīng)距離1571-1573的方法有好幾 種。例如,使用針對(duì)距離場(chǎng)的內(nèi)部正外部負(fù)的符號(hào)規(guī)定,合并可選取對(duì)應(yīng)距離的最大值以產(chǎn) 生對(duì)象的并集,或?qū)?yīng)距離的最小值以產(chǎn)生對(duì)象的交集。其它合并方法包括選取差分,執(zhí)行 算術(shù)平均,或執(zhí)行對(duì)應(yīng)距離的隱性混合,僅以這些為例。 隱性混合可被用來使對(duì)象間的角變圓,而算術(shù)平均可被用來通過進(jìn)一步減小所繪 區(qū)域中的高頻內(nèi)容來提供額外的反混疊。更一般地,合并可以是任何算術(shù)或條件運(yùn)算。另 外,合并可使用程序或表格來確定組合距離。
使用紋理映射繪制基于單元的距離場(chǎng) 本發(fā)明可以使用紋理映射繪制表示諸如二維字形的對(duì)象的距離場(chǎng),其中紋理映射 組成了多階段繪制管道中的一個(gè)階段。我們首先提供繪制管道的每個(gè)階段的概述,然后連 同本發(fā)明的幾個(gè)實(shí)施例一起描述不同階段的詳盡細(xì)節(jié)。 圖16A和16B顯示了依照本發(fā)明的用于繪制表示對(duì)象1603的距離場(chǎng)1602的方法 1600。 如圖16A所示,距離場(chǎng)1602被分割成單元集合1606,其中每個(gè)單元1604包括一組 距離采樣點(diǎn)1605和使用距離采樣點(diǎn)1605重構(gòu)單元1604內(nèi)的距離場(chǎng)1602的方法。
表示對(duì)象1603的距離場(chǎng)1602的區(qū)域1601被定義。為了繪制該區(qū)域1601,我們從 繪制管道中的第一階段開始,然后按順序進(jìn)行后續(xù)階段。 第一階段從距離場(chǎng)1602的單元集合1606中選擇1610源單元集合1611 。選擇1610使區(qū)域1601的繪制成為可能。例如,覆蓋區(qū)域1601的源單元集合1611可被選擇1610。
在圖16B中,第二階段把源單元集合1611中的每個(gè)源單元1612表示1620為在世 界坐標(biāo)系中定義的幾何元素1621。每個(gè)幾何元素1621和紋理映射1623相關(guān)聯(lián),其中紋理 映射1623包括對(duì)應(yīng)的源單元1612的距離采樣點(diǎn)1605。 幾何元素1621可被描述成四邊形,三角形,多邊形,一組構(gòu)成具有彎曲邊緣的形 狀的控制頂點(diǎn),僅以這些為例。幾何元素1621的描述通常被選擇以與對(duì)應(yīng)源單元1612的 幾何特征相匹配,雖然本發(fā)明并不限于該方法。 第三階段把每個(gè)幾何元素1621從世界坐標(biāo)系變換1630為像素坐標(biāo)系中的幾何元 素1631。執(zhí)行該變換1630的方式有很多,如下所述。 第四階段紋理映射1640每個(gè)幾何元素1631以確定與該幾何元素1631相關(guān)聯(lián)的 每個(gè)像素1643的每個(gè)分量1642的距離1641。紋理映射1640涉及光柵化幾何元素1631以 產(chǎn)生與幾何元素1631相關(guān)聯(lián)的像素1643,然后確定該像素1643的"顏色"。實(shí)際上,在本發(fā) 明中,像素1643的顏色表示該像素1643分量1642的距離值1641。紋理映射1640使用存 入紋理映射1623中的距離采樣點(diǎn)1605用以針對(duì)與幾何元素1631相關(guān)聯(lián)的每個(gè)像素1643 每個(gè)分量1642實(shí)現(xiàn)幾何元素1631內(nèi)的距離場(chǎng)1602的重構(gòu)。 在繪制管道的第五和最后階段,我們把每個(gè)像素1643的每個(gè)分量1642的距離 1641映射1650為該像素1643分量1642的反混疊亮度1651。 多階段繪制管道的各階段可在中央處理器,應(yīng)用程序?qū)S眉呻娐?,定函?shù)圖形 硬件,可編程圖形硬件及各種組合上實(shí)現(xiàn),僅以這些為例。 參見Real-Time Rendering, Akenine-Moller and Haines, A KPeters,2002, ISBN 1-56881-182-9,可編程圖形硬件允許我們的多階段繪制管道中的變換1630,紋理映 射1640和映射1650階段由頂點(diǎn)或像素濃淡處理器控制。頂點(diǎn)濃淡處理器定義了在幾何元 素上運(yùn)行以產(chǎn)生變換幾何元素的程序。像素濃淡處理器接收光柵化像素,這些像素隨后可 在它們最終到達(dá)幀緩存之前被處理,例如彩色化。頂點(diǎn)和像素濃淡處理器提供了繪制對(duì)象 時(shí)的極大的靈活性。 在本發(fā)明中,我們可以使用兩種類型的濃淡處理器來實(shí)現(xiàn)我們的繪制管道的多個(gè) 方面。例如,變換1630可由頂點(diǎn)濃淡處理器執(zhí)行,紋理映射1640可由像素濃淡處理器執(zhí)行, 而映射1650可由像素濃淡處理器執(zhí)行。 紋理映射1640能夠執(zhí)行多種內(nèi)插方法以確定針對(duì)每個(gè)像素1643的每個(gè)分量1642 的距離1641 ,例如雙線性內(nèi)插,三次線性內(nèi)插,雙二次內(nèi)插,更高階的諸如雙三次內(nèi)插,僅以 這些為例。紋理映射1640或者近似針對(duì)每個(gè)像素1643的每個(gè)分量1642的距離1641,由此 產(chǎn)生對(duì)象1603的較不忠實(shí)的繪制,或者精確測(cè)定針對(duì)每個(gè)像素1643的每個(gè)分量1642的距 離1641。近似方法可以在針對(duì)源單元1612的重構(gòu)方法過于復(fù)雜以至于不能實(shí)現(xiàn)或需要過 多時(shí)間來執(zhí)行的時(shí)候使用。 當(dāng)多紋理單元可用時(shí),紋理映射1640能夠并行地獨(dú)立確定每個(gè)像素1643的每個(gè) 分量1642的距離1641,因此有效地繪制對(duì)象1603。 映射1650可使用一維紋理映射來確定針對(duì)每個(gè)像素1643的每個(gè)分量1642的反 混疊亮度1651。該一維紋理映射可被用來近似一個(gè)過濾器函數(shù)。映射1650也可使用查找 表或像素濃淡處理器來確定針對(duì)每個(gè)像素1643的每個(gè)分量1642的反混疊亮度1651。
在繪制表示多個(gè)對(duì)象的多個(gè)距離場(chǎng)時(shí),或在繪制用距離場(chǎng)集合表示的組合字形時(shí),距離場(chǎng)可以重疊,且必須被適當(dāng)對(duì)待,參見上文。 圖16C顯示了包含本發(fā)明的方法1600的附加步驟以正確處理重疊情況的實(shí)施例。合并步驟1670在紋理映射1650之后執(zhí)行。在該實(shí)施例中,我們針對(duì)每個(gè)像素1643的每個(gè)分量1642,合并1670由紋理映射1640確定的距離1661-1663,以確定組合距離1671。然后我們把每個(gè)像素1643的每個(gè)分量1642的組合距離1671映射為該像素1643分量1642的反混疊亮度1681。 不同于本發(fā)明,現(xiàn)有技術(shù)字體繪制不能使用硬件有效地繪制高質(zhì)量的字形?,F(xiàn)有技術(shù)提示由于具有執(zhí)行流程的很多分支和復(fù)雜的數(shù)據(jù)結(jié)構(gòu),太復(fù)雜以至于不能使硬件成為有效解決方案。 盡管現(xiàn)有技術(shù)為了很多目的使用紋理映射,使用紋理映射依照本發(fā)明繪制表示對(duì)象的距離場(chǎng)是唯一的。另外,依照本發(fā)明的針對(duì)每個(gè)像素每個(gè)分量的距離值的獨(dú)立和并行確定也是獨(dú)創(chuàng)的。 不同于現(xiàn)有技術(shù),我們的發(fā)明使用像素濃淡著色器重構(gòu)單元內(nèi)的距離場(chǎng)使得諸如
距離場(chǎng)的角單元或兩片斷單元的專用單元的繪制成為可能。 使用逐級(jí)高速緩存系統(tǒng)結(jié)構(gòu)進(jìn)行繪制 圖17顯示了用于有效繪制表示為二維距離場(chǎng)的圖形對(duì)象的系統(tǒng)1700。系統(tǒng)1700包括繪制管道1710,高速緩存管理器1720和逐級(jí)高速緩存1730。 管道1710包括彼此順序連接的繪制階段1711-1716。第一階段1711作為輸入接收繪制請(qǐng)求1701,而最后階段1716輸出顯示圖像1702。每個(gè)階段的輸出提供針對(duì)后續(xù)階段的輸入。 高速緩存管理器1720把管道1710連接到逐級(jí)高速緩存1730上,高速緩存管理器在管道和逐級(jí)高速緩存之間發(fā)送高速緩存元素。 逐級(jí)高速緩存1730包括預(yù)處理形狀描述符高速緩存1731,距離場(chǎng)高速緩存1732,
距離值高速緩存1733,反混疊亮度高速緩存1734和彩色化圖像高速緩存1735。逐級(jí)高速
緩存1731-1735在圖17中被從最不完美,即最不完整的高速緩存元素到最完美,即最完整
的高速緩存元素從左到右放置,因此,高速緩存1730被認(rèn)為是"逐級(jí)的"。 每個(gè)高速緩存1731-1735包括針對(duì)輸入到繪制管道1710中對(duì)應(yīng)階段的下一階段
以及針對(duì)對(duì)應(yīng)階段的輸出的數(shù)據(jù)儲(chǔ)備。管道的繪制階段和數(shù)據(jù)儲(chǔ)備之間的一一對(duì)應(yīng)按常規(guī)
用虛的雙箭頭1741-1745指出。這些階段增加了經(jīng)過管道的元素的完成級(jí)別,并且針對(duì)完
成的每個(gè)級(jí)別有一個(gè)高速緩存。 使用逐級(jí)高速緩存系統(tǒng)操作進(jìn)行繪制 首先,針對(duì)圖形對(duì)象的繪制請(qǐng)求1701被產(chǎn)生。 其次,逐級(jí)高速緩存1730被高速緩存管理器1720查詢1721以確定最能表示顯示圖像1702的最完整的高速緩存元素1722,例如可用于滿足繪制請(qǐng)求的高速緩存類型1-5的元素。 第三,查詢逐級(jí)高速緩存的結(jié)果,即最完整的高速緩存元素1722,被傳送,也就是輸送,到適當(dāng)?shù)睦L制階段,即包含最完整高速緩存元素1722的高速緩存的對(duì)應(yīng)階段的下一階段,以完成該對(duì)象的繪制。如果沒有高速緩存元素可用1723,那么繪制請(qǐng)求的處理在階段1712中開始。 當(dāng)每個(gè)繪制階段完成處理后,該階段的輸出為了潛在的貯藏和稍后的再利用經(jīng)由高速緩存管理器1720也被傳送,即輸送回逐級(jí)高速緩存1730。例如,階段1716的輸出作為高速緩存1735的輸入被傳送。 對(duì)逐級(jí)高速緩存1730中的高速緩存元素使用壓縮方法增加了逐級(jí)高速緩存1730的有效尺寸,因此通過提供較大的高速緩存命中比率增加了管道1710的總效率。由于距離場(chǎng)的連續(xù)特性,距離場(chǎng)高速緩存1732和距離值高速緩存1733尤其易受壓縮的影響。
有很多在該技術(shù)中眾所周知的用于保存和定位在個(gè)體高速緩存1731-1735中的高速緩存元素的方式。 一種這類方法是散列法,其中對(duì)譯本從繪制請(qǐng)求1701中構(gòu)建然后散列以產(chǎn)生指示潛在高速緩存元素的位置的索引。當(dāng)繪制請(qǐng)求1701包含指定字樣的字形時(shí),該對(duì)譯本可能包括針對(duì)字形的字符編碼和針對(duì)字樣的名稱的逐位串接。
為了增加我們的逐級(jí)高速緩存1730的有效性,我們可使用最近最少使用,即LRU方法來管理高速緩存元素。在該算法中,最近最少使用的高速緩存元素在逐級(jí)高速緩存1730變滿時(shí)被丟棄。然而,注意到我們的逐級(jí)高速緩存1730可使用針對(duì)高速緩存元素的不同內(nèi)存管理方法,而不限于LRU方法是很重要的。 在該系統(tǒng)1700的另一個(gè)實(shí)施例中,逐級(jí)高速緩存1730中的高速緩存比繪制管道1710中的階段少。在該實(shí)施例中,不是所有階段都有一個(gè)對(duì)應(yīng)的高速緩存。有時(shí)刪減逐級(jí)高速緩存1730中的一個(gè)個(gè)體高速緩存是有利的,因?yàn)閷?duì)應(yīng)階段非常有效,而在個(gè)體高速緩存中貯藏輸出是不必要且浪費(fèi)存儲(chǔ)量的。另外,對(duì)應(yīng)階段的輸出可能需要過多存儲(chǔ)量來實(shí)現(xiàn)。 該領(lǐng)域技術(shù)人員很容易理解如何修改系統(tǒng)1700以包含各種繪制管道和各種逐級(jí)
高速緩存來使繪制需求得以被滿足。 處理像素分量 —個(gè)像素包含一個(gè)或多個(gè)分量。例如,位于典型的CRT或LCD彩色監(jiān)視器上的像素包含紅綠藍(lán)分量。在我們的發(fā)明中,當(dāng)像素包含多個(gè)分量時(shí),它們可被獨(dú)立對(duì)待,如上所述,或作為單個(gè)分量進(jìn)行處理。當(dāng)多個(gè)分量作為單個(gè)分量進(jìn)行處理時(shí),該像素的顏色和a值可從單個(gè)分量的反混疊亮度確定。 把多個(gè)分量當(dāng)作單個(gè)分量處理的原因有兩個(gè)。第一,它減少了繪制時(shí)間。第二,當(dāng)多個(gè)分量不能被單獨(dú)尋址時(shí),或當(dāng)個(gè)體分量的相對(duì)位置未知時(shí),每個(gè)分量的單獨(dú)對(duì)待是困難的。 當(dāng)諸如LCD和OLED的顯示設(shè)備具有可尋址的像素分量時(shí),在該技術(shù)中眾所周知的是獨(dú)立處理多個(gè)分量能夠增加設(shè)備的有效分辨率。我們的發(fā)明使用這種設(shè)備的這個(gè)特征來提供具有在現(xiàn)有技術(shù)之上的高質(zhì)量的基于距離場(chǎng)的反混疊。 當(dāng)在具有可尋址的像素分量的可選擇的像素布局上繪制時(shí),我們的發(fā)明具有在現(xiàn)有技術(shù)之上的許多優(yōu)點(diǎn)。例如,我們可以使用每個(gè)像素分量單個(gè)距離采樣點(diǎn),并獲得即使當(dāng)現(xiàn)有技術(shù)使用每像素分量多個(gè)基于覆蓋的采樣點(diǎn)時(shí),在現(xiàn)有技術(shù)之上的較高的質(zhì)量。我們的方法本身在任何布局上足夠快,而不需要像現(xiàn)有技術(shù)那樣重復(fù)使用采樣點(diǎn)。在現(xiàn)有技術(shù)中,采樣點(diǎn)的再利用在許多可選擇的像素布局上不能工作。另外,通過調(diào)整我們的諸如映射440的繪制參數(shù),我們的方法減輕了現(xiàn)有技術(shù)的彩色邊緣問題,并允許我們說明像素分量的
2423/30頁
不同特征,例如尺寸和亮度。
動(dòng)畫制作二維對(duì)象 圖12顯示了用于依照動(dòng)畫腳本1202把對(duì)象1201動(dòng)畫制作成幀序列的方法1200的流程圖。動(dòng)畫腳本1202為幀序列中的每一幀指示該對(duì)象的狀態(tài),例如,位置,尺寸,方向和該對(duì)象的變形。該對(duì)象被表示成二維距離場(chǎng)。對(duì)象1201的姿態(tài)1211依照動(dòng)畫腳本1202針對(duì)幀序列1221中的每一針進(jìn)行更新1210。對(duì)象1201使用更新的姿態(tài)1211和基于距離場(chǎng)的反混疊繪制方法1212進(jìn)行繪制。 表示對(duì)象1201的二維距離場(chǎng)可從該對(duì)象的不同表示中獲取,例如,該對(duì)象的輪廓描述或該對(duì)象的位圖描述。 針對(duì)某一對(duì)象1201的姿態(tài)1211更新1210可通過對(duì)對(duì)象使用各種諸如剛體變換,自由變形,柔體撞擊變形,層次設(shè)置方法,粒子模擬的操作以及改變繪制屬性來實(shí)現(xiàn)。
當(dāng)繪制1220該對(duì)象時(shí),我們把表示對(duì)象的二維距離場(chǎng)中的一組采樣點(diǎn)和幀序列1221中一幀內(nèi)的像素分量相關(guān)聯(lián)。通過從二維距離場(chǎng)和該組采樣點(diǎn)確定距離,我們可以把距離映射為該像素分量的反混疊亮度。 在優(yōu)選實(shí)施例中,我們把表示對(duì)象1201的二維距離場(chǎng)分割成單元,每個(gè)單元包括用于重構(gòu)該單元內(nèi)二維距離場(chǎng)的方法。為了在該實(shí)例中進(jìn)行繪制1220,我們識(shí)別出表示包含待繪制二維距離場(chǎng)區(qū)域的對(duì)象1201的二維距離場(chǎng)的單元集合,并定位與該區(qū)域相關(guān)聯(lián)的像素集合。針對(duì)該像素集合中每個(gè)像素的一組分量被指定。關(guān)于該像素每個(gè)分量的距離從單元集合中確定,并且該距離被映射為該像素分量的反混疊亮度以確定關(guān)于像素集合中每個(gè)像素每個(gè)分量的反混疊亮度。
基于距離的自動(dòng)提示 標(biāo)準(zhǔn)字體表示法中的提示是費(fèi)時(shí)的人工處理,在其中類型設(shè)計(jì)者和提示專家產(chǎn)生用于使個(gè)體字形與像素網(wǎng)格更好地適配的一組準(zhǔn)則。好的提示在小的字號(hào)上處理被很好隔開的字形,具有好的對(duì)比度,并且在外形上一致。 這些準(zhǔn)則提供具有相同對(duì)比度分布,具有有最強(qiáng)烈的可能對(duì)比度的左側(cè)和下側(cè)邊緣的垂直筆劃;具有針對(duì)把可視結(jié)構(gòu)傳輸?shù)窖劬Φ某浞謱?duì)比度的對(duì)角線筆劃和細(xì)小部分,字形的圓形部分;抱在一起,提供足夠被人眼捕捉到的側(cè)重點(diǎn)的襯線,參見Hersch etal. ,"Perc印tually Timed Generation of Grayscale Fonts, ,,IEEE CG&A,Nov,pp. 78-89,1995. 注意,現(xiàn)有技術(shù)過濾方法產(chǎn)生模糊字符,并為不同的字符部分分配不同的對(duì)比度分布,這就違反了類型設(shè)計(jì)的重要準(zhǔn)則。為了克服這些限制,提示針對(duì)每種字體的每個(gè)字形被開發(fā)。現(xiàn)有技術(shù)提示方法有很多問題它們對(duì)于開發(fā)是勞動(dòng)密集型的,繪制緩慢,并且復(fù)雜,因而不可能硬件實(shí)現(xiàn)。
對(duì)于基于輪廓的字體,具有提示的繪制是一個(gè)三步過程。首先,字形的輪廓被縮放并調(diào)準(zhǔn)到像素網(wǎng)格上。其次,該輪廓被修正以控制豎筆,橫筆和襯線的對(duì)比度,并增加非常細(xì)的部分和弧線的厚度。第三,修改后的輪廓用過濾器進(jìn)行跟隨有降采樣的超采樣。
盡管如上所述的我們的無提示的基于距離的反混疊繪制方法比使用提示的現(xiàn)有技術(shù)字體繪制方法有利,眾所周知,知覺提示可以在小的字號(hào)上改善閱讀的舒適度。
因此,如圖8所示,我們針對(duì)在小的點(diǎn)尺寸上繪制字形使用距離場(chǎng)來提供基于距離的自動(dòng)提示。提示中的第一步810是把距離場(chǎng)縮放并調(diào)準(zhǔn)到像素或像素分量網(wǎng)格。這可
從給定或獲得的諸如大寫字母高度,x高度和基線位置的字體測(cè)度來自動(dòng)完成。字體測(cè)度
可使用距離場(chǎng)的梯度從距離場(chǎng)自動(dòng)獲得用以檢測(cè)諸如大寫字母高度的特定字體測(cè)度。步驟
810包括諸如變形的距離場(chǎng)的常規(guī)變換以使能夠正確調(diào)準(zhǔn)到像素或像素分量網(wǎng)格。 在使用了這種形式的網(wǎng)格適配之后,我們使用距離場(chǎng)及其梯度場(chǎng)來提供知覺提示。 在一個(gè)實(shí)施例中,距離場(chǎng)的梯度方向被用來檢測(cè)820在對(duì)象左側(cè)和下側(cè)邊緣上的像素。通過涂黑830這些像素并使在對(duì)立邊緣上的像素變亮840,我們?cè)谧髠?cè)和下側(cè)邊緣上獲得了更高的對(duì)比度而無需改變外表上的筆劃寬度。這可通過減小和增加對(duì)應(yīng)像素亮度來實(shí)現(xiàn)。 在另一個(gè)實(shí)施例中,梯度場(chǎng)被用來提供針對(duì)對(duì)角筆劃和細(xì)小弧線的更好的對(duì)比度。我們注意到當(dāng)像素位于或接近字形的細(xì)小區(qū)域時(shí),該像素兩側(cè)的鄰居具有相反的梯度方向,即它們的點(diǎn)積是負(fù)的。通過檢測(cè)梯度方向上的突然變化,我們可以涂黑850在這些細(xì)小區(qū)域上的像素。 這里只有兩個(gè)如何使用距離場(chǎng)自動(dòng)提供知覺提示的例子。距離場(chǎng)也可被用來提供最優(yōu)的字符間隔和統(tǒng)一 的筆劃寬度。
排版字形 排版在給定諸如輪廓,該輪廓的起始位置以及針對(duì)該字形的諸如設(shè)置寬度和字距調(diào)整對(duì)的相關(guān)字體測(cè)度的輸入數(shù)據(jù)的情況下確定字形位置。我們把字形的走格定義為到下一字體的偏置,例如向量;走格通常包括字形的設(shè)置寬度,設(shè)置寬度和字距調(diào)整值,或由用戶定義,由輪廓指定或從字體測(cè)度得到的眾多其它組合。走格考慮了在直線,Bezier曲線,或其它由布局指定的復(fù)雜路徑上的排版。"TEX andMETAFONT :New Directions inTypesetting"提供了排版的好的綜述。 排版的典型應(yīng)用包括確定單詞中字母的位置以及確定段落中的行中斷。排版在確
定字形位置時(shí)考慮了字形的基本表示。例如,位圖字體不能被放置在像素的小數(shù)部分,但是
輪廓字體可以。輪廓字體常常被提示,這導(dǎo)致了字形位置的調(diào)整。 排版表示為二維距離場(chǎng)的字形 有很多種方式來排版表示為二維距離場(chǎng)的字形。 在一個(gè)實(shí)施例中,我們關(guān)閉基于距離的自動(dòng)提示以使當(dāng)用排版方法指示時(shí)字形位置的準(zhǔn)確放置成為可能。 在另一個(gè)實(shí)施例中,我們使用基于距離的自動(dòng)提示來進(jìn)行網(wǎng)格適配,即把表示每個(gè)字形的距離場(chǎng)調(diào)準(zhǔn)到像素網(wǎng)格上,從而近似當(dāng)使用排版方法指示時(shí)字形位置到像素小數(shù)部分的放置。 在另一個(gè)實(shí)施例中,為了獲得更高的精度,我們使用基于距離的自動(dòng)提示來進(jìn)行網(wǎng)格適配,即把表示每個(gè)字形的距離場(chǎng)調(diào)準(zhǔn)到像素網(wǎng)格的分量上,從而近似當(dāng)使用排版方法指示時(shí)字形位置到像素更小部分的放置。 在另一個(gè)實(shí)施例中,如圖18A-18C所示,方法1800排版一個(gè)字形集合1801。該字形集合1801可以表示,例如單詞的字母或文檔的字母。當(dāng)前字形1802從字形集合1801中被選擇1805,例如,單詞的第一個(gè)字母被選擇。當(dāng)前位置1803也被選擇1810。選擇1810可由用戶通過諸如鼠標(biāo)的輸入設(shè)備選擇或從字形集合1801的布局得到。
終止條件1804被測(cè)試1815,例如,該單詞的所有字母被排版了嗎,如果滿足,方法 1800停止。如果終止條件1804不滿足1850,那么方法1800重復(fù)確定下一字形1806的下 一位置1809,例如,單詞中的下一字母,其中下一字母1806從字形集合1801中選擇1820。
選擇1820之后,當(dāng)前字形1802被表示1825為二維距離場(chǎng)1807。然后,下一位置 1809使用當(dāng)前位置1803,當(dāng)前字形1802的走格1808和二維距離場(chǎng)1807的調(diào)準(zhǔn)1835來確 定1830,例如,下一位置1809被確定為距離當(dāng)前位置1803的走格1808的偏置,其中該偏置 根據(jù)調(diào)準(zhǔn)1835進(jìn)行調(diào)整。 最后,當(dāng)前字形1802被更新1840為下一字形1806,而當(dāng)前位置1803則被更新 1845為下一位置1809以為下次迭代做準(zhǔn)備。 調(diào)準(zhǔn)1835可以是當(dāng)前字形1802的繪制結(jié)果,或者可以不通過繪制確定。注意, 調(diào)準(zhǔn)1835依賴于所選的二維距離場(chǎng)1807的等值線,因?yàn)樗x的等值線可以改變當(dāng)前字形 1802的尺寸。在另一個(gè)實(shí)施例中,下一位置1809使用當(dāng)前位置1803,當(dāng)前字形1802的走格
1808和所選的二維距離場(chǎng)1807的等值線來確定。例如,下一位置1809被確定為距離當(dāng)前
位置1803的走格1808的偏置,其中該偏置根據(jù)所選等值線進(jìn)行調(diào)整。 零等值線可以導(dǎo)致無調(diào)整。負(fù)的等值線可以導(dǎo)致距離當(dāng)前位置1803的較大偏置,
因?yàn)樨?fù)的等值線增加了當(dāng)前字形1802的尺寸。正的等值線可以導(dǎo)致距離當(dāng)前位置1803的
較小偏置,因?yàn)檎牡戎稻€減小了當(dāng)前字形1802的尺寸。 產(chǎn)生并編輯字體 設(shè)計(jì)字體的基本方法有兩種。第一種是手動(dòng)。在那里,字形用手繪畫,數(shù)字化,隨 后輪廓被適配到數(shù)字化的位圖上。第二種是用計(jì)算機(jī)。 在后一種情況中,三種類型的工具是可用的。直接可視工具可被用于曲線處理。程 序設(shè)計(jì)工具通過執(zhí)行程序指令構(gòu)建字體形狀。該程序或者定義形狀的輪廓并填充它,或者 定義被具有許多諸如幾何特性和方向的屬性的筆尖劃過的路徑?;诓考脑O(shè)計(jì)工具允許 設(shè)計(jì)者建立諸如豎筆,弧線和其它重復(fù)出現(xiàn)的形狀的部件,然后合并這些部件以產(chǎn)生字形。
我們使用雕刻編輯器來提供基于筆劃的設(shè)計(jì)。這是如何在2001年3月16號(hào)提交 的U.S.專利申請(qǐng)?zhí)?9/810, 260, "System and Methodfor Sculpting Digital Models," 中所描述的3D雕刻的2D對(duì)應(yīng)物,在這里作為參考并入。筆劃可交互式地完成或者它可照 原本繪制以仿效可編程的設(shè)計(jì)工具。 使用與Adobe Illustrator中類似的Bezier曲線處理工具的基于曲線的設(shè)計(jì)也 可被使用。基于曲線的設(shè)計(jì)可以和用來把輪廓轉(zhuǎn)換為距離場(chǎng),把距離場(chǎng)轉(zhuǎn)換為輪廓的方法 相結(jié)合以提供設(shè)計(jì)范例之間的無縫接口。 基于部件的設(shè)計(jì)在隱性距離場(chǎng)上使用CSG和混合操作。這允許部件被分別設(shè)計(jì), 并在編輯或繪制過程中合并。 我們也提供了用于從模擬和數(shù)字字體母片自動(dòng)產(chǎn)生ADF的方法。
對(duì)于基于部件的設(shè)計(jì),我們的字體編輯器提供了使用四叉樹處理有效表達(dá)和旋轉(zhuǎn) ADF以模擬在字形中普遍存在的對(duì)稱性的能力。附加的特征包括ADF縮放,變換和諸如CSG 和混合的用于合并多個(gè)ADF的操作。
對(duì)于基于筆劃的設(shè)計(jì),我們提供了具有幾何外形的雕刻工具以仿效筆尖。模擬筆 尖的方向和尺寸可沿筆劃變化以摹擬書法。 圖9顯示了用于從筆劃產(chǎn)生二維距離場(chǎng)931的方法900。我們?cè)诠P劃過程中采樣 筆的狀態(tài),筆的狀態(tài)包括在筆劃過程中筆的位置。筆的狀態(tài)也可以包括方向和幾何特征。從 筆狀態(tài)的采樣點(diǎn)901,我們產(chǎn)生910沿筆劃的筆狀態(tài)的有序列表911。然后,一組邊界描述 符921從筆狀態(tài)的有序列表中產(chǎn)生920。最后,我們從該組邊界描述符921產(chǎn)生930 二維距 離場(chǎng)931。 在優(yōu)選實(shí)施例中,邊界描述符921是諸如三次Bezier曲線的曲線。
在優(yōu)選實(shí)施例中,我們使用曲線適配過程以用戶定義的精度把G2連續(xù)曲線的最 小集合適配到筆的路徑上。我們也使用工具尺寸和方向從該路徑產(chǎn)生偏置點(diǎn)的兩個(gè)附加有 序列表,并把曲線適配到這些偏置點(diǎn)上以產(chǎn)生筆劃輪廓。為了有效處理,輪廓曲線以空間層 次結(jié)構(gòu)放置。我們使用平鋪發(fā)生器從該層次結(jié)構(gòu)產(chǎn)生二維ADF,參見在2001年3月16號(hào)提 交的U. S.專利申請(qǐng)?zhí)?9/810, 983,在這里并入作為參考。 到輪廓的最小距離使用Bezier切片有效地計(jì)算。筆劃被轉(zhuǎn)換為ADF,而沒有用戶 可感知的延時(shí)。對(duì)于曲線處理,我們提供Bezier曲線編輯器。 如圖11所示,我們也提供了把距離場(chǎng)轉(zhuǎn)換為諸如Bezier曲線的邊界描述符的能 力,以提供在所有三種設(shè)計(jì)范例之間的無縫接口。 在優(yōu)選實(shí)施例中,我們使用雙二次ADF來產(chǎn)生邊界描述符,其中該轉(zhuǎn)換使用針對(duì) 快速領(lǐng)域搜索的ADF層次結(jié)構(gòu)遍歷葉單元,產(chǎn)生沿著該ADF的零值等值線的點(diǎn)的有序列表, 隨后如參考下面圖11所描述的那樣適配曲線。 與在其中邊界描述符誤差從點(diǎn)的列表計(jì)算的現(xiàn)有技術(shù)相反,我們從距離場(chǎng)直接計(jì) 算邊界描述符的誤差。我們特別關(guān)注銳利的角。我們的方法足夠快,可允許用戶在范例之 間以不可察覺的延時(shí)進(jìn)行無縫切換。 圖11顯示了用于把二維距離場(chǎng)1101轉(zhuǎn)換為一組邊界描述符1131的方法1100。 首先,我們選擇1110該二維距離場(chǎng)1101的一條等值線llll,例如,具有零值或少許偏置的距離。 接著,我們從等值線1111和二維距離場(chǎng)1101產(chǎn)生1120點(diǎn)的有序列表1121。在我 們的使用雙二次自適應(yīng)采樣距離場(chǎng)的優(yōu)選實(shí)施例中,該步驟使用鄰域搜索技術(shù)順序訪問自 適應(yīng)采樣距離場(chǎng)1101的鄰近單元。該搜索技術(shù)使用自適應(yīng)采樣距離場(chǎng)1101的空間層次結(jié) 構(gòu)以沿著等值線1111有效定位下一鄰域。 在另一實(shí)施例中,我們通過在ADF 1101中選擇邊界單元,在每個(gè)邊界單元播下一 組有序點(diǎn),然后使用ADF 1101的距離場(chǎng)和梯度場(chǎng)把每個(gè)點(diǎn)移向ADF 1101的等值線1111來 產(chǎn)生1120點(diǎn)的有序列表1121。 然后,我們初始化1130 —組邊界描述符1131以適配點(diǎn)的有序列表1121。邊界描 述符1131通過連接點(diǎn)的有序列表1121的鄰近點(diǎn)來初始化1130以形成構(gòu)成初始邊界描述 符1131的線段集合。 在另一個(gè)實(shí)施例中,我們通過定位角點(diǎn),把點(diǎn)的有序列表細(xì)分成由角點(diǎn)定界的片 段,并確定片段邊界描述符以適配每個(gè)片段來初始化1130—組邊界描述符1131。片段邊界 描述符的并集構(gòu)成了初始邊界描述符1131。
28
角點(diǎn)可通過測(cè)量從距離場(chǎng)確定的曲率來定位。在其中距離場(chǎng)是雙二次ADF的優(yōu)選 實(shí)施例中,高曲率的區(qū)域用ADF中的小單元表示,因此角點(diǎn)可通過使用ADF的單元尺寸來定 位。 —旦邊界描述符1131被初始化1130,該邊界描述符1131被更新1140。更新1140 通過重構(gòu)距離場(chǎng)并測(cè)量邊界描述符到等值線的平均或最大偏差來確定針對(duì)每個(gè)邊界描述 符的誤差。 邊界描述符1131被更新1140直到針對(duì)每個(gè)邊界描述符的誤差可以接受,或預(yù)定 時(shí)間總量已經(jīng)過去,或邊界描述符1131的集合的勢(shì)最小。 為了合并以非數(shù)字形式,即模擬母片,或以類似位圖的數(shù)字形式,即數(shù)字母片,保 存的字體的現(xiàn)有遺產(chǎn),我們的編輯系統(tǒng)提供了用于從高分辨率的二值位圖上產(chǎn)生ADF的方 法。 模擬母片首先被掃描用以在至少比目標(biāo)ADF分辨率高四倍的分辨率上產(chǎn)生二值
數(shù)字母片,例如,4096 X 4096的數(shù)字母片對(duì)于現(xiàn)今的顯示分辨率和顯示尺寸是足夠的。精確
的歐幾里德距離變換隨后被應(yīng)用于位圖以產(chǎn)生表示字形的規(guī)則采樣的距離場(chǎng)。 然后,我們使用平鋪發(fā)生器從這個(gè)規(guī)則采樣的距離場(chǎng)中產(chǎn)生ADF。在2GHZ的
Pentium IV處理器上從位圖到ADF的轉(zhuǎn)換需要 10秒/字形。 為了從字形的現(xiàn)有現(xiàn)有技術(shù)描述符轉(zhuǎn)換到用一組邊界描述符描述字形的距離場(chǎng),
我們使用參考圖io描述的方法。 產(chǎn)生和繪制基于部件的字形 本發(fā)明提供了用于產(chǎn)生和繪制組合字形的方法。不同于現(xiàn)有技術(shù)方法,它們用輪 廓描述符或筆劃骨架表示部件,即元素,并且或者在繪制前把元素合并為單個(gè)形狀描述符, 或者光柵化每個(gè)元素并合并反混疊亮度或覆蓋值,本發(fā)明把組合字形的元素表示為二維距 離場(chǎng),并使用這些二維距離場(chǎng)繪制該組合字形。 在優(yōu)選實(shí)施例中,繪制使用二維距離場(chǎng)合并針對(duì)像素分量確定的距離,然后把組 合距離映射為針對(duì)該像素分量的反混疊亮度。通過合并距離值而不是反混疊亮度或覆蓋 值,本發(fā)明減輕了現(xiàn)有技術(shù)表現(xiàn)出的彩色失真和混合失真。 不同于Perry等人的現(xiàn)有方法,本發(fā)明不在繪制之前產(chǎn)生組合距離場(chǎng)以表示組合 字形。替代地,依照我們的發(fā)明,與該像素分量相關(guān)聯(lián)的組合距離通過合并從每個(gè)元素確定 的距離在繪制過程中在需要時(shí)確定。 圖19A和19B顯示了用于產(chǎn)生組合字形1911并以圖像順序繪制該組合字形1911 的區(qū)域1941,產(chǎn)生繪制區(qū)域1943的方法1900。組合字形1911首先用元素集合1901定義 1910。 二維距離場(chǎng)集合1930隨后使用該元素集合1901產(chǎn)生1920以使得組合字形1911用 該二維距離場(chǎng)集合1930中的距離場(chǎng)1931-1933的組合來表示。組合字形1911的區(qū)域1941 使用該二維距離場(chǎng)集合1930進(jìn)行繪制1940。 圖19C顯示了針對(duì)方法1900的繪制1940的優(yōu)選實(shí)施例。區(qū)域1941中的每個(gè)像 素1944可以包含一個(gè)或多個(gè)分量1946,對(duì)于RGB繪制通常是紅綠藍(lán)分量。繪制1940針對(duì) 區(qū)域1941中每個(gè)元素1944的每個(gè)分量1946確定一個(gè)反混疊亮度1942。
采樣點(diǎn)的集合1951-1953與該像素分量1946相關(guān)聯(lián),在每個(gè)采樣點(diǎn)集合和二維距 離場(chǎng)集合1930中的每個(gè)距離場(chǎng)之間是一一對(duì)應(yīng)。例如,采樣點(diǎn)集合1951對(duì)應(yīng)距離場(chǎng)1931,而采樣點(diǎn)集合1953對(duì)應(yīng)距離場(chǎng)1933。 對(duì)應(yīng)距離隨后使用它的對(duì)應(yīng)采用點(diǎn)集合1951-1953針對(duì)每個(gè)距離場(chǎng)1931-1933確 定1960,產(chǎn)生對(duì)應(yīng)距離1961-1963。例如,對(duì)應(yīng)距離1961使用它的對(duì)應(yīng)采用點(diǎn)集合1951針 對(duì)距離場(chǎng)1931確定1960。 對(duì)應(yīng)距離1961-1963隨后被合并1970以確定組合距離1971。該組合距離1971隨 后被映射1980以確定該像素1944分量1946的反混疊亮度1942。 圖20A和20B顯示了用于產(chǎn)生組合字形2006并以對(duì)象順序繪制該組合字形2006 的區(qū)域2036,產(chǎn)生繪制區(qū)域2037的方法2000。組合字形2006首先用元素集合2001定義 2005。 二維距離場(chǎng)集合2020隨后使用該元素集合2001產(chǎn)生2010以使得組合字形2006用 二維距離場(chǎng)集合2020中的距離場(chǎng)2021-2023的組合來表示。 二維距離場(chǎng)集合2020中的每個(gè)距離場(chǎng)2021-2023被分割2025成單元,其中每個(gè) 單元與用于重構(gòu)2031該單元內(nèi)的二維距離場(chǎng)的方法相關(guān)聯(lián)2030。組合字形2006的區(qū)域 2036隨后使用該二維距離場(chǎng)集合2020進(jìn)行繪制2035。 圖20C和20D顯示了針對(duì)方法2000的繪制2035的優(yōu)選實(shí)施例。為了繪制組合字 形2006的區(qū)域2036, 一組像素2046從區(qū)域2036中被定位,并且針對(duì)該組像素2036中每個(gè) 像素的分量集合2055被指定2050。注意該組像素2046中的每個(gè)像素可以包含一個(gè)或多個(gè) 分量,對(duì)于RGB繪制通常是紅綠藍(lán)分量。 繪制2035針對(duì)該組像素2046中的每個(gè)像素的每個(gè)分量2056確定反混疊亮度 2061。 針對(duì)二維距離場(chǎng)集合2020中的每個(gè)二維距離場(chǎng)2021-2023,與區(qū)域2036相關(guān)聯(lián)的 對(duì)應(yīng)單元集合2041-2043被識(shí)別2040,例如,單元集合2041針對(duì)距離場(chǎng)2021被識(shí)別2040, 而單元集合2043針對(duì)距離場(chǎng)2023被識(shí)別2040。 針對(duì)該組像素2046中的每個(gè)像素的每個(gè)分量2056,反混疊亮度2061通過首先使 用對(duì)應(yīng)單元集合2041-2043為該分量2056確定2070針對(duì)每個(gè)距離場(chǎng)2021-2023的對(duì)應(yīng)距 離2071-2073來確定2060。例如,對(duì)應(yīng)距離2071使用單元集合2041為分量2056針對(duì)距離 場(chǎng)2021被確定2070。 對(duì)應(yīng)距離2071-2073隨后被合并2075以確定組合距離2076。該組合距離2076隨 后被映射2080以確定該像素分量2056的反混疊亮度2061。 方法1900的組合字形1911的元素1901和方法2000的組合字形2006的元素2001 具有多種表示法。例如,它們可用一維和二維形狀描述符表示,例如筆劃,輪廓,偏旁,筆劃 偏旁,路經(jīng)和用戶繪畫的曲線,筆劃和路徑。元素可用距離場(chǎng)表示,例如距離映射,自適應(yīng)采 樣的距離場(chǎng),用于產(chǎn)生距離的程序和距離函數(shù)。元素本身可以是諸如第一形狀描述符和第 二形狀描述符的隱性混合的合成體,或具有偏置描述符的骨架。 元素1901可使用許多方法定義1910,同時(shí)元素2001也可使用許多方法定義 2005。例如定義可使用諸如自動(dòng)形狀檢測(cè),形狀匹配和骨架化的程序自動(dòng)執(zhí)行。定義可由 用戶交互執(zhí)行或由用戶指導(dǎo)用于定義元素的程序半自動(dòng)地執(zhí)行。 定義1910和2005可從表示組合字形的距離場(chǎng)執(zhí)行。例如,元素可通過在距離場(chǎng) 上執(zhí)行基于距離的自動(dòng)形狀檢測(cè),形狀匹配和骨架化來定義。另外,定義可首先確定針對(duì)一 個(gè)元素的形狀描述符,然后確定針對(duì)形狀描述符的距離函數(shù)以定義該元素。
在距離場(chǎng)集合1930和2020中的距離場(chǎng)可被表示為自適應(yīng)采樣的距離場(chǎng),存入存 儲(chǔ)器中的距離集合,或用過程表示,僅以這些為例。 幾種方法可被用來在方法1900中合并1970對(duì)于距離1961-1963,以及在方法 2000中合并2075對(duì)于距離2071-2073。例如,針對(duì)距離場(chǎng)使用內(nèi)部正,外部負(fù)的符號(hào)轉(zhuǎn)換, 合并可選取對(duì)于距離的最大值來產(chǎn)生對(duì)象的并集,或選取對(duì)于距離的最小值來產(chǎn)生對(duì)象的 交集。 其它合并方法包括選取差分,執(zhí)行算數(shù)平均,或執(zhí)行對(duì)應(yīng)距離的隱性混合,僅以這 些為例。隱性混合可被用來使對(duì)象間的角變圓,而算術(shù)平均可被用來通過進(jìn)一步減小所繪 區(qū)域中的高頻內(nèi)容來提供額外的反混疊。更一般地,合并可以是任何算術(shù)或條件運(yùn)算。另 外,合并可使用程序或表格來確定組合距離。
針對(duì)活動(dòng)版面的計(jì)算量減小 我們的ADF字形框架的距離場(chǎng)和空間層次結(jié)構(gòu)屬性也可被用于諸如字形,公司標(biāo) 識(shí)或任何2D形狀的2D對(duì)象的計(jì)算機(jī)仿真。例如,兩個(gè)屬性都可被用于碰撞檢測(cè)和避免,計(jì) 算互相滲透的物體之間的力,以及模擬柔體變形。 使用有符號(hào)距離場(chǎng)的層次設(shè)置方法可被用來模擬諸如融化和流體動(dòng)力的多種效 果。ADF是一種緊致的隱性表示,它可被有效查詢以計(jì)算距離值和梯度,上面所列方法所需 的兩種重要計(jì)算。 相反,從移動(dòng)或變形的輪廓確定距離值和梯度對(duì)于實(shí)時(shí)交互在軟件中是不可實(shí) 現(xiàn)的,參見Hoff el al. ,"Fast and Simple 2D GeometricProximity Queries Using Graphics Hardware, "Proc. Interactive 3DGraphics,01, 2001.為了變形用線段近似的曲 線,Hoff等人使用圖形軟件在蒼蠅上產(chǎn)生規(guī)則采樣的2D距離場(chǎng)。 距離場(chǎng)的隱性特性允許復(fù)雜的拓?fù)渥兓缬没谳喞淖煮w很難模擬的表面 偏移。另外,距離場(chǎng)可被用來提供動(dòng)態(tài)對(duì)象的非真實(shí)感繪制以增加藝術(shù)效果。
本發(fā)明的效果 本發(fā)明提供了用于表示,繪制,編輯,處理,制作動(dòng)畫字符字形,公司標(biāo)識(shí)或任何二 維對(duì)象的新框架。 在優(yōu)選實(shí)施例中,本發(fā)明使用距離場(chǎng)表示二維對(duì)象。本發(fā)明包括用于產(chǎn)生包含雙 二次ADF和具有專用單元的ADF的距離場(chǎng)的不同示例的方法。我們的方法提供了在現(xiàn)有技 術(shù)之上在存儲(chǔ)需求量上的大幅減小和在精度上的大幅改善。 我們的基于距離的反混疊繪制方法相比在現(xiàn)有技術(shù)中使用的方法提供了更好且 更有效的反混疊。 我們的方法還提供了針對(duì)基于距離的自動(dòng)提示,基于距離的網(wǎng)格適配,產(chǎn)生和繪 制基于筆劃和基于偏旁的組合字形,排版字形,統(tǒng)一三種通用數(shù)字字體設(shè)計(jì)范例以及產(chǎn)生 針對(duì)活動(dòng)版面的各種特殊效果的計(jì)算量的減小。 我們的框架提供了很多優(yōu)點(diǎn)不需要使用勞動(dòng)密集型的手工提示即使在非常小的 字體尺寸下的高可讀性的類型;針對(duì)具有多種并且有時(shí)候很復(fù)雜的像素分量排列的諸如 OLED的平板顯示器的非并行的適應(yīng)性;使交互用戶能夠針對(duì)增強(qiáng)觀看舒適度和用戶優(yōu)選 項(xiàng)調(diào)節(jié)類型的繪制參數(shù)的唯一控制;直接在硅片上實(shí)現(xiàn),以及同時(shí)在定函數(shù)圖形硬件和可 編程圖形硬件上實(shí)現(xiàn)的計(jì)算完全的繪制管道;以及對(duì)諸如基于畫筆的輸入的先進(jìn)應(yīng)用的支持。 盡管本發(fā)明通過優(yōu)選實(shí)施例的示例的方式被描述,需要了解的是許多其它適配和 修改可在本發(fā)明的精神和范圍內(nèi)進(jìn)行。因此,所附的權(quán)利要求的目的是覆蓋在本發(fā)明的真 實(shí)精神和范圍內(nèi)的所有這些變化和修改。
權(quán)利要求
一種用于存儲(chǔ)表示區(qū)域中的二維對(duì)象的二維距離場(chǎng)的方法,包括下列步驟定義單元類型集合;產(chǎn)生針對(duì)該區(qū)域的單元集合的配置,每個(gè)單元具有由所述單元類型集合定義的特定單元類型和用于重構(gòu)該單元內(nèi)的二維距離場(chǎng)的方法;根據(jù)所述單元類型,為每個(gè)單元確定二維距離場(chǎng);以及將所述二維距離場(chǎng)和所述單元集合的配置存入存儲(chǔ)器中。
2. 根據(jù)權(quán)利要求1的方法,還包括根據(jù)表示所述對(duì)象的形狀描述符、所述區(qū)域和所述單元類型集合,修改所述單元集合的配置,直到達(dá)到針對(duì)該區(qū)域的單元集合的最優(yōu)配置。
3. 根據(jù)權(quán)利要求2的方法,其中,所述修改包括向所述單元集合的配置中添加單元。
4. 根據(jù)權(quán)利要求2的方法,其中,所述修改包括從所述單元集合的配置中刪除單元。
5. 根據(jù)權(quán)利要求2的方法,其中,所述修改包括改變特定單元的屬性。
6. 根據(jù)權(quán)利要求1至5中任一項(xiàng)的方法,其中,所述單元集合的配置棋盤形布置所述區(qū)域。
7. 根據(jù)權(quán)利要求1至5中任一項(xiàng)的方法,其中,所述單元集合的配置中的單元重疊。
8. 根據(jù)權(quán)利要求1至7中任一項(xiàng)的方法,其中,所述單元類型集合中的特定單元類型是兩片段單元類型。
9. 根據(jù)權(quán)利要求1至7中任一項(xiàng)的方法,其中,所述單元類型集合中的特定單元類型是角單元類型。
10. 根據(jù)權(quán)利要求1至7中任一項(xiàng)的方法,其中,所述單元類型集合中的特定單元類型是一片段單元類型。
11. 根據(jù)權(quán)利要求1至7中任一方法。
12. 根據(jù)權(quán)利要求1至7中任一方法。
13. 根據(jù)權(quán)利要求2至5中任一二維距離場(chǎng)的尺寸。
14. 根據(jù)權(quán)利要求2至5中任一所述二維距離場(chǎng)所需的時(shí)間。
15. 根據(jù)權(quán)利要求2至5中任一二維距離場(chǎng)繪制的質(zhì)量度量。項(xiàng)的方法,其中,所述用于重構(gòu)的方法包括雙二次重構(gòu)項(xiàng)的方法,其中,所述用于重構(gòu)的方法包括雙線性重構(gòu)項(xiàng)的方法,其中,所述單元集合的最優(yōu)配置最小化所述項(xiàng)的方法,其中,所述單元集合的最優(yōu)配置最小化繪制項(xiàng)的方法,其中,所述單元集合的最優(yōu)配置最大化所述
全文摘要
一種方法繪制組合字形的區(qū)域。組合字形由元素集合定義。二維距離場(chǎng)的集合使用該元素集合來產(chǎn)生,其中二維距離場(chǎng)集合的組合表示該組合字形。組合字形的區(qū)域隨后使用該二維距離場(chǎng)集合進(jìn)行繪制。
文檔編號(hào)G06T5/10GK101702309SQ200910140940
公開日2010年5月5日 申請(qǐng)日期2005年3月14日 優(yōu)先權(quán)日2004年3月16日
發(fā)明者羅納德·N·佩里, 薩拉·F·弗利斯肯 申請(qǐng)人:三菱電機(jī)株式會(huì)社