專利名稱:圖像處理裝置和圖像處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于根據(jù)矢量格式圖形數(shù)據(jù)生成光柵格式圖形數(shù)據(jù) 的繪圖技術(shù)。
背景技術(shù):
通過組合諸如點、直線、曲線、矩形、橢圓這樣的圖形要素構(gòu)成 的圖像稱作矢量圖形。另一方面,由點陣(像素或點)構(gòu)成的圖像稱作 光柵圖形。
通常,在顯示器上顯示的圖像或者由打印機打印的圖像是光柵圖 形。因此,當(dāng)由這些設(shè)備處理矢量圖形時,需要將矢量圖形轉(zhuǎn)換為光 柵圖形(光柵化)。光柵化的處理開銷較高,而且需要高性能的計算機 用于光柵化復(fù)雜的矢量圖形。
另一方面,因為每次顯示矢量圖形都可以生成合適分辨率的光柵 圖形,所以不會出現(xiàn)輪廓等的圖像質(zhì)量由于圖像的放大、縮小和變形 而惡化的情況。因此,在許多情況下,將諸如圖表和圖畫這樣的、輪 廓清晰的人工圖像作為矢量圖形來處理。在許多情況下,將諸如照片 這樣的自然圖像作為光柵圖形來處理。
作為矢量圖形的最熟悉的使用實例,字體己經(jīng)是熟知的。在早期
的個人電腦(在下文中稱作"PC")中,由于CPU性能的限制,所以
使用光柵格式的字體(位圖字體)。但是,在位圖字體中,必須存儲每 個分辨率的字體數(shù)據(jù),因此,需要大量存儲空間。
隨著CPU性能的提高,當(dāng)前的PC可以通過下述方式,禾U用較
少的存儲空間,顯示高質(zhì)量的字體,即,預(yù)先存儲與分辨率無關(guān)的矢 量格式字體(輪廓字體)數(shù)據(jù),并且在每種情況下,生成對應(yīng)于顯示器 或者打印機的合適分辨率的字體。
然而,嵌入移動電話、汽車導(dǎo)航系統(tǒng)等的CPU具有相對低的處
理能力。因此,希望能夠減少光柵化矢量圖形所需的計算代價。
近些年來,為了實現(xiàn)以上的目的,已經(jīng)使用了圖形處理單元
(GPU)。在使用GPU的光柵化技術(shù)中,使用多個三角形來近似得到 曲線。因此,當(dāng)放大光柵圖形時,光柵圖形具有粗糙的外觀。因為為 了平滑地光柵化矢量圖形,需要通過使用大量三角形來提高曲線的近 似精度,所以必然要增加存儲容量和處理代價。這里,已提出了一種 用于通過使用例如GPU來光柵化矢量圖形的技術(shù)(參考文件C.Loop and J.Blinn , Resolution Independent Curve Rendering using Programmable Graphics Hardware,參照SIGGRAPH 2005)。在該參考 文件中的光柵化技術(shù)的處理包括2階段的處理,B卩,由CPU執(zhí)行的 預(yù)處理,以及由GPU執(zhí)行的主處理。
在該參考文件中的光柵化技術(shù)中,不是以三角形為單位來處理矢 量圖形,而是以接近曲線的像素為單位來處理。因此,總是可以在不 依賴于分辨率的情況下平滑地光柵化曲線。另外,存儲容量和處理代 價與分辨率無關(guān),因此,不需要增加存儲容量和處理代價。
然而,在上述參考文件中的光柵化技術(shù)中,存在以下兩個問題。
(1) 預(yù)處理代價高。如果圖形的幾何形狀不隨時間而變化,則預(yù) 處理的代價不會變成嚴重的問題。這是因為執(zhí)行預(yù)處理一次之后不需 要再次執(zhí)行預(yù)處理。但是,當(dāng)圖形的幾何形狀動態(tài)地變化時,必須在 每種情況下再次執(zhí)行預(yù)處理,因此,在許多情況下,在整個光柵化處 理中預(yù)處理將成為瓶頸。
(2) a混合(Alphablending)用于抗鋸齒處理(anti-aliasing)。"抗鋸齒 處理"是用于消除在光柵化圖形的輪廓線上出現(xiàn)的鋸齒形(臺階狀的 失真)的處理。"a混合"是用于通過使用被稱為a值的系數(shù),半透明 地混合兩個像素值的處理。
眾所周知,為了使用a混合,全部圖形對象必須按照深度值排序 (深度排序),并且按照更深位置的圖形的順序來光柵化。深度排序是 具有極高代價的處理,并且在很多情況下,會是整個光柵化處理的瓶頸。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個方面的圖像處理裝置的特征在于,其包括第 一數(shù)據(jù)生成單元,其通過針對矢量格式圖形數(shù)據(jù)解析直線輪廓和曲線 輪廓來形成直線輪廓三角形和曲線輪廓三角形,從而生成三角形數(shù)
據(jù);第二數(shù)據(jù)生成單元,其根據(jù)三角形數(shù)據(jù)生成模版數(shù)據(jù);以及第三 數(shù)據(jù)生成單元,其參照模版數(shù)據(jù)生成光柵格式圖形數(shù)據(jù)。注意,本發(fā) 明不僅可以實現(xiàn)為如上所述的裝置發(fā)明,還可以實現(xiàn)為方法發(fā)明。
圖1是顯示根據(jù)第一實施例的圖像處理裝置的示意結(jié)構(gòu)的框圖2是顯示矢量格式圖形的一個實例的示圖3是顯示在參考文件中描述的光柵化技術(shù)的處理流程的流程
圖4是顯示矢量數(shù)據(jù)的一個實例的示意圖5A和5B是顯示直線輪廓和曲線輪廓的實例的示意圖6A和6B是顯示凸曲線輪廓和凹曲線輪廓的實例的示意圖7A和7B是顯示依照細分割來更新的被細分的曲線輪廓和直
線輪廓的實例的示意圖8是顯示被劃分為三角形數(shù)據(jù)的直線輪廓的實例的示意圖; 圖9A和9B是顯示已經(jīng)被光柵化的直線輪廓和曲線輪廓的實例
的示意圖IO是顯示生成的光柵數(shù)據(jù)的實例的示意圖; 圖11是顯示在第一實施例中三角形數(shù)據(jù)生成單元2的處理程序 的流程圖12是顯示在第一實施例中的直線輪廓的實例的示意圖; 圖13是顯示第一實施例中的根據(jù)直線輪廓生成的三角形數(shù)據(jù)的 實例的示意圖14顯示第一實施例中根據(jù)直線輪廓生成的三角形頂點號的實
例;
圖15是顯示第一實施例中生成根據(jù)直線輪廓生成的三角形模版
數(shù)據(jù)的實例的示意圖16A和16B是顯示第一實施例中生成表示曲線輪廓的三角形 模版數(shù)據(jù)的實例的示意圖17A和17B是顯示第一實施例中生成光柵數(shù)據(jù)的實例的示意
圖18是顯示第一實施例中的處理過程的流程圖; 圖19是顯示第二實施例中根據(jù)直線輪廓生成的三角形數(shù)據(jù)的實 例的示意圖20是顯示第二實施例中生成根據(jù)直線輪廓生成的三角形模版 數(shù)據(jù)的實例的示意圖21A和21B是顯示第二實施例中生成表示曲線輪廓的三角形 模版數(shù)據(jù)的實例的示意圖22是顯示根據(jù)第三實施例的圖像處理裝置的示意結(jié)構(gòu)的框
圖23是顯示用于說明第四實施例的矢量格式圖形的一個實例的 示意圖24是顯示第四實施例中的直線輪廓和曲線輪廓的實例的示意
圖25A和25B是顯示第四實施例中的凸曲線輪廓和凹曲線輪廓
的實例的示意圖26A和26B是顯示三次Bezier曲線(cubic Bezier curves)中的曲
線輪廓的實例的示意圖27是顯示第四實施例中根據(jù)直線輪廓生成的三角形數(shù)據(jù)的實
例的示意圖28是顯示第四實施例中生成根據(jù)直線輪廓生成的三角形模版 數(shù)據(jù)的實例的示意圖29A和29B是顯示第四實施例中生成根據(jù)直線輪廓生成的三
角形模版數(shù)據(jù)的實例的示意圖30A和30B是顯示第四實施例中生成光柵數(shù)據(jù)的實例的示意圖。
具體實施例方式
將參照附圖描述實施例。
在第一實施例中,將僅描述為了消除預(yù)處理的使用而進行的凸曲 線光柵化處理。如圖1所示,圖像處理裝置具有矢量數(shù)據(jù)存儲單元1,
三角形數(shù)據(jù)生成單元2,三角形數(shù)據(jù)存儲單元3,模版數(shù)據(jù)生成單元 4,模版數(shù)據(jù)存儲單元5,光柵數(shù)據(jù)生成單元6,光柵數(shù)據(jù)存儲單元7 和顯示單元8。在圖1中還顯示了關(guān)于各個框的數(shù)據(jù)的流程。
在上述結(jié)構(gòu)中,矢量數(shù)據(jù)存儲單元1存儲矢量格式圖形數(shù)據(jù)。 三角形數(shù)據(jù)生成單元2讀取矢量數(shù)據(jù)存儲單元1中存儲的矢量格 式圖形數(shù)據(jù),并且生成將在后面詳細描述的三角形數(shù)據(jù)。
三角形數(shù)據(jù)存儲單元3存儲由三角形數(shù)據(jù)生成單元2生成的三角 形數(shù)據(jù)。
模版數(shù)據(jù)生成單元4讀取三角形數(shù)據(jù)存儲單元3中存儲的三角形 數(shù)據(jù),并生成模版數(shù)據(jù)。
模版數(shù)據(jù)存儲單元5存儲由模版數(shù)據(jù)生成單元4生成的模版數(shù)據(jù)。
光柵數(shù)據(jù)生成單元6參照模版數(shù)據(jù)存儲單元5中存儲的模版 (stencil)數(shù)據(jù)生成光柵格式數(shù)據(jù)(下文還稱為"光柵數(shù)據(jù)")。
光柵數(shù)據(jù)存儲單元7存儲由光柵數(shù)據(jù)生成單元6生成的光柵數(shù)據(jù)。
顯示單元8呈現(xiàn)存儲在光柵存儲單元7中的光柵數(shù)據(jù)。 在圖1中,將矢量數(shù)據(jù)存儲單元1、三角形數(shù)據(jù)存儲單元3、模 版數(shù)據(jù)存儲單元5以及光柵數(shù)據(jù)存儲單元7描述為不同的框。這些存 儲單元可以配置在單個存儲器上,或者可以分別配置在多個不同的存 儲器上。
下面描述將圖2中所示的矢量圖形光柵化為光柵圖形的例子。在 這種情況下,為了便于理解對本實施例的光柵化技術(shù)的說明,首先, 將描述在上述參考文件中描述的光柵化技術(shù)的要點。
如圖3所示,在參考文件中描述的處理大致包括由CPU執(zhí)行的預(yù)處理和由GPU執(zhí)行的主處理這兩個階段的處理。g卩,首先CPU將 矢量格式圖形解析為三角形的集合。此后,GPU將各三角形光柵化。 這樣做的原因是GPU的處理單位是三角形,而且GPU不能直接處理 由圖2中所示的直線和曲線構(gòu)成的圖形。
具體地說,首先,從諸如HDD或者RAM這樣的存儲介質(zhì)中讀 取矢量格式數(shù)據(jù)(下文還稱為"矢量數(shù)據(jù)"),并且執(zhí)行用于解析其輪 廓的處理(步驟S101)。例如,表示圖2的圖形的矢量格式數(shù)據(jù)由圖4 中所示的點和直線構(gòu)成。在圖4中,圖形的直線或者參數(shù)曲線的端點 由黑點表示,并且參數(shù)曲線的控制點由白點表示。在步驟S101中, 通過解析這種矢量格式數(shù)據(jù)生成圖5A和5B中所示的兩種類型的輪 廓線數(shù)據(jù)。圖5A的輪廓線數(shù)據(jù)被稱為"直線輪廓",并且圖5B的輪 廓線數(shù)據(jù)被稱為"曲線輪廓"。
首先,將描述圖5B的曲線輪廓。如圖2、 4和5B所示,曲線輪 廓是連接參數(shù)曲線的起點、終點和控制點這三點的三角形的集合。這 里,各三角形圍繞參數(shù)曲線,并且曲線必須在三角形內(nèi)部。這里,曲 線輪廓被分類為如圖6A和6B所示的兩種類型的曲線輪廓。在圖6A 中,曲線的凹區(qū)域在圖形內(nèi)部(以下稱為"凹曲線輪廓"),在圖6B 中,曲線的凸區(qū)域在圖形內(nèi)部(以下稱為"凸曲線輪廓")。
將描述圖5A的直線輪廓。如圖2、圖4和圖5A所示,直線輪 廓是通過使用線段連接直線的起點和終點、凸曲線輪廓的起點和終 點、以及凹曲線輪廓的起點、控制點和終點獲得的多邊形。在凸曲線 輪廓上連接起點和終點這兩點,而在凹曲線輪廓上連接起點、控制點 和終點這三點。注意,如圖5A所示,構(gòu)成直線輪廓的多邊形不必限 于一個(在本例中,直線輪廓由三個多邊形構(gòu)成)。此外,在一些情況 下,各多邊形可以包括自身交叉點或空穴(hole)。
接下來,當(dāng)在步驟S101完成了對矢量格式數(shù)據(jù)的輪廓的解析時, 檢查是否在生成的曲線輪廓上存在重疊。因此,當(dāng)發(fā)現(xiàn)重疊時,程序 進行到步驟S103,其中執(zhí)行處理以對兩個重疊的三角形中區(qū)域更大 的三角形進行細分割(步驟S103)。因為直線輪廓在該細分割處理的影 響下發(fā)生改變,所以直線輪廓被更新(步驟S104)。其后,程序返回到
步驟S102,其中再次檢査是否存在重疊,在沒有重疊存在時,程序 返回到步驟S105。請注意,在步驟S102到S104中的處理被重復(fù), 直到?jīng)]有重疊存在。
具體來講,例如,在圖5B的曲線輪廓的例子中,三角形a與b, 以及三角形c與d是重疊的。因此,如圖7B所示,分別將三角形a 和c細分割為兩個三角形aO和bl,以及cO和cl。然后,如圖7A所 示,更新直線輪廓。
接下來,構(gòu)成直線輪廓的多邊形被分別劃分為多個三角形。例如, 圖7A的三個多邊形被劃分為如圖8所示的三角形集合。
將在上述步驟S101到S105中的全部處理作為由CPU執(zhí)行的預(yù) 處理來執(zhí)行。
然后,構(gòu)成直線輪廓(圖8)的三角形和構(gòu)成曲線輪廓(圖7B)的三 角形被GPU光柵化(步驟S106)。此時,如圖9A所示,構(gòu)成直線輪 廓的三角形內(nèi)部的所有像素被光柵化。相反,如圖9B所示,在構(gòu)成 曲線輪廓的三角形內(nèi)部的像素中,只有凹曲線輪廓上的凹區(qū)域或者只 有凸曲線輪廓上的凸區(qū)域被光柵化。
如上所述獲得的直線輪廓和曲線輪廓的光柵化的結(jié)果被一起存 儲在GPU內(nèi)部的幀緩沖器中。例如,將圖9A和9B中所示的數(shù)據(jù)分 別存儲在幀緩沖器中,作為如圖IO所示的光柵數(shù)據(jù)。
在本實施例中,存在減少了 CPU執(zhí)行的預(yù)處理的特性。以下, 將參照附圖描述在圖像處理裝置的各方框處的詳細操作(處理)以及 在方框間流動的數(shù)據(jù)的結(jié)構(gòu)。
矢量數(shù)據(jù)存儲單元1存儲將被光柵化的圖形的矢量數(shù)據(jù)。如圖4 中所述,矢量數(shù)據(jù)是由圖原類型、構(gòu)成圖原各點坐標、點之間的連接 關(guān)系等組成的。
例如,按照上述說明中的方式,如圖4所示表示圖2的圖形的矢 量數(shù)據(jù)。在圖4中,直線或者參數(shù)線的端點由黑點表示,參數(shù)曲線的 控制點由白點表示。
在第一實施例中,假設(shè)如圖4所示的矢量數(shù)據(jù)已經(jīng)被存儲在矢量 數(shù)據(jù)存儲單元1中。矢量數(shù)據(jù)不限于上述格式,并且可以包括通常在
計算機圖形學(xué)領(lǐng)域所使用的其他數(shù)據(jù)。
由三角形數(shù)據(jù)生成單元2讀取存儲在矢量數(shù)據(jù)存儲單元1中的矢 量數(shù)據(jù)(圖4)。三角形數(shù)據(jù)生成單元2按照如圖11所示的流程,通過 解析所讀取的矢量數(shù)據(jù)的輪廓來生成三角形數(shù)據(jù)。
首先,解析矢量數(shù)據(jù)的直線輪廓。在如圖5A中所示的技術(shù)中, 通過使用線段連接包含在矢量數(shù)據(jù)中的起點和終點,凸曲線輪廓的起 點和終點,以及凹曲線輪廓的起點、控制點和終點而獲得的多邊形被 定義為直線輪廓。
相反,在第一實施例中的三角形數(shù)據(jù)生成單元2中,至少一個多 邊形被定義為直線輪廓,該多邊形是在不考慮控制點的情況下,通過 使用線段僅連接包含在矢量數(shù)據(jù)中的直線和曲線的起點和終點而獲 得的。例如,作為根據(jù)圖4的矢量數(shù)據(jù)解析的直線輪廓,可以獲得如 圖12所示的三個多邊形P0、 P1和P2(以下,將在假設(shè)獲得多個多邊 形的情況下來描述)。
接下來,執(zhí)行生成直線輪廓三角形(步驟S202)。具體地,首先, 在構(gòu)成步驟S201中獲得的直線輪廓的各多邊形的多個頂點中選擇任 意頂點(在本說明書中,該點被稱為"軸心點")。然后,關(guān)于每個多 邊形,生成以軸心點作為一個頂點的多個三角形,以使得軸心點和包 含軸心點的多邊形上全部其他頂點被直線連接,并且相互連接的兩個 頂點成為一個三角形的一邊。這里,相互連接的兩個頂點是指與多邊 形的一邊相連的兩個頂點。
例如,假設(shè)在圖12中,點0、 23和28分別被選擇為三個多邊形 PO、 Pl和P2的軸心點,生成如圖13所示的多個三角形。在圖13中, 多個三角形相互重疊,并且僅從該附圖很難理解三角形的形成。因此, 為了方便,在圖14中顯示了構(gòu)成根據(jù)三個多邊形P0、 P1和P2生成 的多個三角形的三個頂點的數(shù)字標記。
但是,圖14僅是使得說明書可以理解的補充,并不表示三角形 數(shù)據(jù)本身。實際的三角形數(shù)據(jù)由構(gòu)成各三角形的三點的位置坐標、結(jié) 構(gòu)坐標、連接關(guān)系等組成。
然后,解析矢量數(shù)據(jù)的曲線輪廓(步驟S203)。在該處理中,以與圖5B中所示的處理相同的方式,將連接包含在矢量數(shù)據(jù)中的參數(shù)曲 線的起點、終點和控制點這3點的三角形的集合定義為曲線輪廓。
從三角形數(shù)據(jù)生成單元2輸出按照如上所述的處理過程生成的 直線輪廓的三角形數(shù)據(jù)(圖13)以及曲線輪廓的三角形數(shù)據(jù)(圖5B),并 且將它們存儲在三角形數(shù)據(jù)存儲單元3中。
請注意,可以配置過程以使得并行地執(zhí)行上述步驟S201和S202 的處理,從而使得可以在解析直線輪廓的同時生成三角形。
如上所述,三角形數(shù)據(jù)由構(gòu)成各三角形的三點的位置坐標、結(jié)構(gòu) (texture)坐標、連接關(guān)系等組成。但是,三角形數(shù)據(jù)的結(jié)構(gòu)不限于這 種格式,可以包括通常在計算機圖形學(xué)領(lǐng)域中使用的其他數(shù)據(jù)。
模版數(shù)據(jù)生成單元4讀取存儲在三角形數(shù)據(jù)存儲單元3中的三角 形數(shù)據(jù),并且通過光柵化三角形中的像素生成模版數(shù)據(jù)。
模版數(shù)據(jù)是與最終呈現(xiàn)在顯示單元8上的圖像具有相同分辨率 的圖像數(shù)據(jù)。注意,模版數(shù)據(jù)存儲在模版數(shù)據(jù)存儲單元5中。此外, 大約多個位的數(shù)值被分配給模版數(shù)據(jù)的各像素,并且在每幀的所有繪 畫之前,這些數(shù)值被初始化為0。
然后,模版數(shù)據(jù)生成單元4從三角形數(shù)據(jù)存儲單元3讀取直線輪 廓(圖13)的三角形數(shù)據(jù)和曲線輪廓(圖5B)的三角形數(shù)據(jù),并對它們光 柵化。此時,在直線輪廓的三角形內(nèi)部的全部像素被光柵化。這里, 執(zhí)行光柵化以使得相對于圖13中所示的三角形,為每個三角形,對 在三角形內(nèi)部的模版數(shù)據(jù)的像素值進行位反轉(zhuǎn)(bit-irwerted)。
例如,當(dāng)通過位反轉(zhuǎn)來描繪圖13中的全部三角形時,得到圖15 中所示的模版數(shù)據(jù)。在圖15中,在接受關(guān)于全部三角形的位反轉(zhuǎn)處 理的像素中,用黑色填充像素值是非O值的區(qū)域,并用灰色填充像素 值是0的區(qū)域。從圖15可以看出,在直線輪廓內(nèi)部的像素值是非O 數(shù)值,而在外部的像素值是0。
在曲線輪廓的三角形內(nèi)部的像素中,只有屬于曲線的凸區(qū)域的像 素被光柵化,而對應(yīng)于這些像素位置的模版數(shù)據(jù)的像素值是位反轉(zhuǎn) 的。
例如,當(dāng)圖16A所示的光柵化模版數(shù)據(jù)被相對于直線輪廓的三
角形而應(yīng)用于圖15所示的模版數(shù)據(jù)時,并且屬于曲線的凸區(qū)域的像 素值被位反轉(zhuǎn)時,如圖16B中所示,模版數(shù)據(jù)被更新。如圖16B所 示,初始提供的圖1的圖形內(nèi)部的像素值是非O的數(shù)值,而外部的像 素值是O。
在三角形數(shù)據(jù)的位反轉(zhuǎn)繪制處理的順序上不存在依賴關(guān)系。在圖 15、 16A和16B中,首先,將直線輪廓的三角形數(shù)據(jù)一次全部繪制, 然后,將曲線輪廓的三角形數(shù)據(jù)一次全部繪制。然而,可以按照任何 順序繪制全部三角形。
模版數(shù)據(jù)存儲單元5存儲由模版數(shù)據(jù)生成單元4生成的模版數(shù)據(jù) (圖16B)。
如上所述,模版數(shù)據(jù)是與最終呈現(xiàn)在顯示單元8上的圖像具有相 同分辨率的圖像數(shù)據(jù)。但是,模版數(shù)據(jù)的結(jié)構(gòu)不限于這種格式,可以 包括通常在計算機圖形學(xué)領(lǐng)域中使用的其他數(shù)據(jù)。
光柵數(shù)據(jù)生成單元6生成光柵數(shù)據(jù),從而參照存儲在模版數(shù)據(jù)存 儲單元5中的模版數(shù)據(jù),僅僅光柵化像素值是非0的數(shù)值的區(qū)域(圖 16B中用黑色填充的區(qū)域)。
光柵數(shù)據(jù)是與最終呈現(xiàn)在顯示單元8上的圖像具有相同分辨率 的圖像數(shù)據(jù),并且被存儲在光柵數(shù)據(jù)存儲單元7中。大約多個位的數(shù) 值被分配給光柵數(shù)據(jù)的各個像素,以用于多個顏色成分(例如,RGBA) 中每一個。
如圖17A所示,光柵數(shù)據(jù)生成單元6將覆蓋整個圖形的兩個三 角形的內(nèi)部的全部像素光柵化。但是,這些像素中的、將被實際寫入 光柵數(shù)據(jù)存儲單元7中的像素僅限于相應(yīng)模版數(shù)據(jù)的像素值是非0數(shù) 值的區(qū)域(圖17A中用黑色填充的區(qū)域)。因此,圖17B所示的光柵數(shù) 據(jù)被寫入光柵數(shù)據(jù)存儲單元7。
如上所述,光柵數(shù)據(jù)是與最終呈現(xiàn)在顯示單元8上的圖像具有相 同分辨率的圖像數(shù)據(jù)。但是,光柵數(shù)據(jù)的結(jié)構(gòu)不限于這種格式,可以 包括通常在計算機圖形學(xué)領(lǐng)域中使用的其他數(shù)據(jù)。
顯示單元8由用于將存儲在光柵數(shù)據(jù)存儲單元7中的光柵數(shù)據(jù)呈 現(xiàn)給用戶的顯示器、打印機等構(gòu)成。
將圖18的顯示光柵化技術(shù)的處理過程的流程圖與圖3中所示的 流程圖進行比較。根據(jù)第一實施例的圖像處理裝置,圖3所示的由 CPU進行的預(yù)處理的代價僅用于輪廓線的解析(步驟S301)。然后, 由GPU執(zhí)行生成模版數(shù)據(jù)(步驟S302)和生成光柵數(shù)據(jù)(S303)的處理。 因此,可以極大的減少CPU進行預(yù)處理的代價。因此,即使在圖形 的幾何形狀動態(tài)變化時,也可以高速執(zhí)行光柵化。
將描述第二實施例。
因為圖像處理裝置的結(jié)構(gòu)與第一實施例中一樣,所以省略對其說 明和詳細描述。第二實施例與第一實施例的不同在于,三角形數(shù)據(jù)生 成單元2和模版數(shù)據(jù)生成單元4的處理內(nèi)容不同。
如圖12所示,在第一實施例中,三角形數(shù)據(jù)生成單元2使多邊 形為直線輪廓,其中,通過使用線段僅連接包含在矢量數(shù)據(jù)中的直線 和曲線的起點和終點來獲得所述多邊形。
相反,在第二實施例中,按照與圖5A中所示技術(shù)相同的方式, 三角形數(shù)據(jù)生成單元2使多邊形為直線輪廓,其中,通過使用線段連 接包含在矢量數(shù)據(jù)中的直線的起點和終點,凸曲線輪廓的起點和終 點,以及凹曲線輪廓的起點、控制點和終點來獲得所述多邊形。
三角形數(shù)據(jù)生成單元2,按照與第一實施例相同的方式,通過對 直線輪廓的解析,相對于多邊形,生成以軸心點作為一個頂點的多個 三角形數(shù)據(jù)。圖19顯示了生成的三角形數(shù)據(jù)的實例。
曲線輪廓的結(jié)構(gòu)類型和根據(jù)曲線輪廓生成三角形數(shù)據(jù)的方法與 第一實施例相同。
模版數(shù)據(jù)生成單元4按照與第一實施例相同的方式,從三角形數(shù) 據(jù)存儲單元3中讀取并光柵化直線輪廓(圖19)的三角形數(shù)據(jù)和曲線輪 廓(圖5B)的三角形數(shù)據(jù)。此時,相對于直線輪廓的三角形,在各三角 形內(nèi)部的全部像素被光柵化,從而位反轉(zhuǎn)對應(yīng)于這些像素位置的模版 數(shù)據(jù)的像素值。
當(dāng)通過位反轉(zhuǎn)繪制圖19中的全部三角形時,獲得如圖20所示的 模型數(shù)據(jù)。在圖20中,在己經(jīng)被位反轉(zhuǎn)一次或多次的像素中,像素 值是非0數(shù)值的區(qū)域被黑色填充,而像素值是0的區(qū)域被灰色填充。
如圖16A所示,在第一實施例中,模版數(shù)據(jù)生成單元4僅光柵 化在曲線輪廓的三角形內(nèi)部的像素中的、屬于曲線的凸區(qū)域的像素。
相反,在第二實施例中,如圖21A所示,模版數(shù)據(jù)生成單元4 僅光柵化在曲線輪廓三角形內(nèi)部的像素中的、凹曲線輪廓的凹區(qū)域或 者凸曲線輪廓的凸區(qū)域。
例如,在已經(jīng)通過位反轉(zhuǎn)繪制直線輪廓的三角形數(shù)據(jù)并且己經(jīng)獲 得圖20中所示的模版數(shù)據(jù)的情況中,當(dāng)通過位反轉(zhuǎn)繪制如圖21A中 所示的,屬于曲線的凹區(qū)域或者凸區(qū)域的像素值時,更新模版數(shù)據(jù), 如圖21B中所示。從圖21B可以看出,在初始提供的圖2的圖形內(nèi) 部的像素值被設(shè)置為非0的數(shù)值,并且在外部的像素值被設(shè)置為0。
注意,在三角形數(shù)據(jù)的位反轉(zhuǎn)繪制的處理中,在順序上不存在依 賴關(guān)系。在圖20、 21A和21B中,首先,將直線輪廓的三角形數(shù)據(jù) 一次全部繪制,然后,將曲線輪廓的三角形數(shù)據(jù)一次全部繪制。但是, 可以按照任何順序繪制全部三角形。
由根據(jù)第二實施例的圖像處理裝置執(zhí)行的光柵化技術(shù)的處理過 程與圖18中所示的第一實施例的流程圖基本上相同。
因此,根據(jù)第二實施例的圖像處理裝置,按照與第一實施例相同 的方式,能夠極大地減少預(yù)處理代價。由于這個原因,即使在圖形的 幾何形狀動態(tài)變化時,也可以高速執(zhí)行光柵化。
此外,在第二實施例中,對直線輪廓的解析技術(shù)與第一實施例中 的不同,并且執(zhí)行與在圖5A和5B所示的技術(shù)中相同的解析。但是, 很明顯,不再需要進行曲線輪廓的細分割(步驟S103)和直線輪廓的更 新(步驟S104),并且在這一點,還可以極大的減少預(yù)處理代價。
將描述第三實施例。
如圖22所示,在根據(jù)第三實施例的圖像處理裝置中,還為根據(jù) 第一和第二實施例的圖像處理裝置提供覆蓋數(shù)據(jù)存儲單元9和光柵 數(shù)據(jù)合成單元10。
覆蓋數(shù)據(jù)存儲單元9存儲從模版數(shù)據(jù)生成單元4輸出的覆蓋數(shù)據(jù)。
覆蓋數(shù)據(jù)是與最終呈現(xiàn)在顯示單元8上的圖像具有相同分辨率
200710086236. 1
說明書第13/15頁
的圖像數(shù)據(jù)。大約多個位的數(shù)值被分配給覆蓋數(shù)據(jù)的各像素,并且在 每個幀的所有繪畫前被初始化為1。
模版數(shù)據(jù)生成單元4通過位反轉(zhuǎn)繪制模版數(shù)據(jù)并且輸出到模版 數(shù)據(jù)存儲單元5。在那時,模版數(shù)據(jù)生成單元4將a值繪制在覆蓋數(shù) 據(jù)存儲單元9中保存的覆蓋數(shù)據(jù)的相應(yīng)像素位置上。
模版數(shù)據(jù)生成單元4將小于1的值分配給光柵化的像素中的、位 于圖形邊沿附近的像素的a值,并且將a值作為覆蓋數(shù)據(jù)輸出給覆蓋 數(shù)據(jù)存儲單元9。
光柵數(shù)據(jù)生成單元6參照存儲在覆蓋數(shù)據(jù)存儲單元9中的覆蓋數(shù) 據(jù),生成具有子像素精度的光柵數(shù)據(jù),并且將該數(shù)據(jù)輸出至光柵數(shù)據(jù) 存儲單元7。
然后,當(dāng)覆蓋數(shù)據(jù)為1的像素被光柵化時,光柵數(shù)據(jù)生成單元6 相對于包含在像素中的全部子像素,分配這次光柵化的像素的顏色 值。
另一方面,當(dāng)其覆蓋數(shù)據(jù)小于1的像素,即,圖形邊沿附近的像 素被光柵化時,光柵數(shù)據(jù)生成單元6相對于包含在像素中的子像素中 的一部分,分配這次光柵化的像素的顏色值,并且相對于剩余子像素 直接存儲已經(jīng)分配的顏色值。注意,基于覆蓋的大小,選擇被分配顏 色值的子像素。
光柵數(shù)據(jù)存儲單元7存儲由光柵數(shù)據(jù)生成單元6生成的、具有子 像素精度的光柵數(shù)據(jù),以及由光柵數(shù)據(jù)合成單元IO合成的、具有像 素精度的光柵數(shù)據(jù)。
光柵數(shù)據(jù)合成單元10合成存儲在光柵數(shù)據(jù)存儲單元7中的、具 有子像素精度的光柵數(shù)據(jù),并且將該數(shù)據(jù)轉(zhuǎn)化為與最終呈現(xiàn)在顯示單 元8上的圖像具有相同分辨率(像素精度)的光柵數(shù)據(jù)。
通過這種方式,由于合成具有子像素精度的光柵數(shù)據(jù),因此可以 獲得已經(jīng)消除鋸齒現(xiàn)象的平滑的光柵化結(jié)果。
如上所述,在參考文件的技術(shù)中,a混合已經(jīng)用于抗鋸齒處理。 因此,必須深度排序全部圖形對象,并且以更深位置的圖形的順序來 光柵化所述全部圖形對象。
16
但是,根據(jù)第三實施例的圖像處理裝置,可以高速執(zhí)行抗鋸齒處 理,這是因為沒有使用具有高處理代價的a混合。
將描述第四實施例。
各實施例基本上描述了包括參數(shù)曲線(例如,二次Bezier曲線)的 圖形被光柵化的實例。第四實施例顯示了一個例子,其中,即使包含 三次Bezier曲線的圖形也能夠被按照與包含上述參數(shù)曲線(例如,二 次Bezier曲線)的圖形相同的方式來處理。注意,因為其處理過程與 第一實施例的相同,所以省略對其的說明。此外,省略與第一實施例 重疊部分的描述。
圖23是顯示包含三次Bezier曲線的圖形的實例的示意圖。假設(shè) 圖23的圖形被作為如圖24所示的矢量數(shù)據(jù)存儲于矢量數(shù)據(jù)存儲單元 1。
三角形數(shù)據(jù)生成單元2按照與第一實施例相同的方式,解析圖 24所示的矢量數(shù)據(jù),并且生成圖25A中所示的直線輪廓和圖25B中 所示的曲線輪廓。這里,圖形上的直線或者參數(shù)曲線的端點由黑點表 示,并且由白點表示參數(shù)曲線的控制點。在第四實施例中,參數(shù)曲線 的控制點是相對于參數(shù)曲線的端點的兩個點,并且形成三角形以使得 一個控制點與對角方向位置的端點相連。注意,由圖26A中所示的 曲線確定相對于曲線輪廓的光柵數(shù)據(jù)。但是,這可以由具有圖26B 中所示的拐點的曲線來確定。
然后,相對于直線輪廓,按照與第一實施例相同的方式,三角形 數(shù)據(jù)生成單元2生成多個以軸心點作為一個頂點的三角形,如圖27 所示,從而以直線相連軸心點(在圖27中的0點)和包含軸心點的三 角形中的全部其他頂點,并且相互連接的兩個頂點變?yōu)橐粋€三角形的 一邊。
模版數(shù)據(jù)生成單元4按照與第一實施例相同的方式光柵化由三 角形數(shù)據(jù)生成單元2生成的三角形數(shù)據(jù)。因此,可以獲得圖28中所 示的光柵化模版數(shù)據(jù)。最后,按照與第一實施例相同的方式,模版數(shù) 據(jù)生成單元4,根據(jù)從直線輪廓的三角形數(shù)據(jù)獲得的模版數(shù)據(jù)(圖28) 和從曲線輪廓的三角形數(shù)據(jù)獲得的模版數(shù)據(jù)(圖29A),生成如圖29B
所示的模版數(shù)據(jù)。然后,最后光柵化如圖30A中所示的覆蓋整個圖 形的兩個三角形內(nèi)部的全部像素。但是,這些像素中的、將被實際寫 入光柵數(shù)據(jù)存儲單元7中的像素僅限于相應(yīng)模版數(shù)據(jù)的像素值是非0 數(shù)值的區(qū)域(圖30A中用黑色填充的區(qū)域)。因此,圖30B中所示的光 柵數(shù)據(jù)被寫入光柵數(shù)據(jù)存儲單元7。注意,因為在這種情況下,詳細 處理與第一實施例中的相同,所以省略其描述。
如上所述,本實施例提供了新的光柵化技術(shù),其中極大減少了預(yù) 處理代價。因此,即使在圖形的幾何形狀動態(tài)改變時,也可以高速執(zhí) 行光柵化。
此外,本實施例提供了新的不需要a混合的抗鋸齒處理技術(shù)。因 此,不再需要處理代價較高的深度排序,并且可以高速應(yīng)用抗鋸齒處 理。
例如,上述實施例已經(jīng)描述了根據(jù)關(guān)于字符的矢量格式圖形數(shù)據(jù) 生成光柵格式圖形數(shù)據(jù)的情況。但是,不用說,本發(fā)明可以應(yīng)用于以 下情況,例如,以矢量格式提供地圖數(shù)據(jù),從地圖數(shù)據(jù)生成光柵格式 圖形數(shù)據(jù)。
根據(jù)本發(fā)明,即使在圖形的幾何形狀動態(tài)變化時,仍然可以高速 執(zhí)行光柵化。另外,可在不使用具有較高處理代價的a混合的情況下, 高速地應(yīng)用抗鋸齒處理。
權(quán)利要求
1.一種圖像處理裝置,包括第一數(shù)據(jù)生成單元,其通過針對矢量格式圖形數(shù)據(jù)解析直線輪廓和曲線輪廓,并且形成直線輪廓三角形和曲線輪廓三角形,從而生成三角形數(shù)據(jù);第二數(shù)據(jù)生成單元,其根據(jù)所述三角形數(shù)據(jù)生成模版數(shù)據(jù);以及第三數(shù)據(jù)生成單元,其參照所述模版數(shù)據(jù)生成光柵格式圖形數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的裝置,還包括 第一存儲單元,其存儲所述矢量格式圖形數(shù)據(jù); 第二存儲單元,其存儲由所述第一數(shù)據(jù)生成單元生成的所述三角形數(shù)據(jù);第三存儲單元,其存儲由所述第二數(shù)據(jù)生成單元生成的所述模版 數(shù)據(jù);第四存儲單元,其存儲由所述第三數(shù)據(jù)生成單元生成的所述光柵 格式圖形數(shù)據(jù)。
3. 根據(jù)權(quán)利要求2所述的裝置,還包括顯示單元,其呈現(xiàn)所述 光柵格式圖形數(shù)據(jù)。
4. 根據(jù)權(quán)利要求1所述的裝置,其中,所述第一數(shù)據(jù)生成單元 通過解析所述矢量格式圖形數(shù)據(jù)的直線輪廓生成至少一個多邊形,并 且以下述方式,針對每個多邊形生成多個三角形,所述方式是,以多 邊形的一個頂點作為多個三角形的公共頂點,以直線連接所述公共頂 點與全部其他頂點,并且相互連接的兩個頂點成為一個三角形的一邊。
5. 根據(jù)權(quán)利要求4所述的裝置,其中,所述第二數(shù)據(jù)生成單元通過對存儲在所述第三存儲單元中的所述多個三角形內(nèi)部的像素進 行位反轉(zhuǎn),以及通過對存儲在所述第三存儲單元中的、基于所述曲線 輪廓生成的曲線的凹區(qū)域或者凸區(qū)域所屬的像素進行位反轉(zhuǎn)來生成 模版數(shù)據(jù)。
6. 根據(jù)權(quán)利要求1所述的裝置,其中,由所述曲線輪廓定義的 曲線是參數(shù)曲線。
7. 根據(jù)權(quán)利要求1所述的裝置,其中,所述第二數(shù)據(jù)生成單元 為光柵化像素中的、位于圖形邊沿附近的像素的a值賦予小于1的值。
8. 根據(jù)權(quán)利要求7所述的裝置,還包括第五存儲單元,其存儲 從所述第二數(shù)據(jù)生成單元輸出的像素的a值,作為覆蓋數(shù)據(jù)。
9. 根據(jù)權(quán)利要求8所述的裝置,還包括光柵數(shù)據(jù)合成單元,該 光柵數(shù)據(jù)合成單元基于存儲在所述第五存儲單元中的覆蓋數(shù)據(jù)來合 成光柵數(shù)據(jù)。
10. —種圖像處理方法,包括-針對矢量格式圖形數(shù)據(jù)解析直線輪廓和曲線輪廓,以及通過形成 直線輪廓三角形和曲線輪廓三角形來生成三角形數(shù)據(jù); 根據(jù)所述三角形數(shù)據(jù)生成模版數(shù)據(jù);以及 參考所述模版數(shù)據(jù)生成光柵格式圖形數(shù)據(jù)。
全文摘要
本發(fā)明提出了一種圖像處理裝置和一種圖像處理方法,其中,所述圖像處理裝置具有第一數(shù)據(jù)生成單元,用于通過針對矢量格式圖形數(shù)據(jù)解析直線輪廓和曲線輪廓來形成直線輪廓三角形和曲線輪廓三角形,從而生成三角形數(shù)據(jù);第二數(shù)據(jù)生成單元,用于根據(jù)三角形數(shù)據(jù)生成模版數(shù)據(jù);以及第三數(shù)據(jù)生成單元,用于參照所述模版數(shù)據(jù)來生成光柵格式圖形數(shù)據(jù)。
文檔編號G06T11/20GK101114380SQ20071008623
公開日2008年1月30日 申請日期2007年3月9日 優(yōu)先權(quán)日2006年3月10日
發(fā)明者爰島快行 申請人:株式會社東芝