两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于像素空間掩碼矩陣模型的字幕渲染方法

文檔序號(hào):7927637閱讀:253來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種基于像素空間掩碼矩陣模型的字幕渲染方法
技術(shù)領(lǐng)域
本發(fā)明涉及電視節(jié)目制作領(lǐng)域的字幕渲染技術(shù),具體涉及一種基于像素空間掩碼
矩陣模型的字幕渲染方法。
背景技術(shù)
由于電視字幕具有獨(dú)立的表意功能,作為一種必備的電視節(jié)目要素,電視字幕是一種重要的電視圖文的展現(xiàn)形式。隨著電視頻道、節(jié)目?jī)?nèi)容的細(xì)分,各個(gè)部門(mén)的分工也更加專(zhuān)業(yè)化,對(duì)于不同類(lèi)型節(jié)目的制作,以單一類(lèi)型的字幕系統(tǒng)已很難滿足要求。另外,電視節(jié)目的日益多樣性和電視觀眾欣賞、鑒賞水平的不斷提高,也要求電視字幕的應(yīng)用模式必然朝著多樣性的方向發(fā)展。 從廣義的角度來(lái)說(shuō),電視字幕所處理的字幕對(duì)象可以分為圖形和文字兩個(gè)部分。圖形包括各種規(guī)則形狀的圖形、由基本圖形元素組成的復(fù)合圖形和任意不規(guī)則圖形,文字包括世界上各種語(yǔ)種的文字。 從計(jì)算機(jī)展現(xiàn)的角度來(lái)說(shuō),字幕對(duì)象渲染的最終目的是根據(jù)圖形化的矢量信息和圖像紋理,采用數(shù)字圖像處理的相關(guān)算法,得到由32位RGBA表示的像素組成的一幀圖像。因此將字幕對(duì)象歸一化為一種圖形表達(dá)形式,有利于數(shù)字圖像處理算法的統(tǒng)一化。
從計(jì)算機(jī)圖形學(xué)的角度來(lái)說(shuō),可以將所有類(lèi)型的字幕對(duì)象視為由一系列直線和曲線組成的圖形。計(jì)算機(jī)圖形學(xué)的主要研究?jī)?nèi)容就是研究如何在計(jì)算機(jī)中表示圖形、以及利用計(jì)算機(jī)進(jìn)行圖形的計(jì)算、處理和顯示的相關(guān)原理與算法。圖形通常由點(diǎn)、線、面、體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性組成。從處理技術(shù)上來(lái)看,圖形主要分為兩類(lèi),一類(lèi)是基于線條信息表示的,如工程圖、等高線地圖、曲面的線框圖等,另一類(lèi)是明暗圖,也就是通常所說(shuō)的真實(shí)感圖形。計(jì)算機(jī)圖形學(xué)一個(gè)主要的目的就是要利用計(jì)算機(jī)產(chǎn)生令人賞心悅目的真實(shí)感圖形。為此,必須建立圖形所描述的場(chǎng)景的幾何表示,再用某種光照模型,計(jì)算在假想的光源、紋理、材質(zhì)屬性下的光照明效果。 在計(jì)算機(jī)圖形學(xué)中,Bezier曲線是一種重要的多項(xiàng)式參數(shù)曲線。平面中的任意N(N>= 2)個(gè)點(diǎn)都可以構(gòu)成一個(gè)Bezier曲線。這N個(gè)點(diǎn)稱(chēng)為Bezier曲線的控制頂點(diǎn),N個(gè)點(diǎn)組成的多邊形稱(chēng)為Bezier曲線的控制多邊形。在字幕渲染技術(shù)中,可以使用Bezier曲線來(lái)表達(dá)所有字幕對(duì)象的矢量信息,將字幕對(duì)象的原始矢量輪廓轉(zhuǎn)化為二次Bezier曲線,并將一個(gè)內(nèi)部自相交Bezier封閉曲線分成多個(gè)封閉輪廓,根據(jù)交點(diǎn)將一條Bezier線段分割成若干條首尾相連的線段,在字幕矢量輪廓中確定每一條Bezier線段的內(nèi)邊/外邊屬性,根據(jù)內(nèi)邊/外邊屬性對(duì)字幕矢量輪廓進(jìn)行規(guī)并整理,最終得到若干不相交的封閉輪廓。然后,將字幕對(duì)象的矢量輪廓離散化為直線段,計(jì)算字幕對(duì)象的多邊形矢量輪廓的屬性,進(jìn)一步根據(jù)多邊形的方向和加邊類(lèi)型,創(chuàng)建出用來(lái)加內(nèi)邊和外邊的多邊形矢量輪廓。
當(dāng)針對(duì)字幕對(duì)象的矢量信息進(jìn)行上述處理后,對(duì)字幕進(jìn)行渲染。在目前現(xiàn)有的字幕系統(tǒng)中,在字幕渲染方面存在著以下的問(wèn)題 1.作為字幕渲染重要指標(biāo)之一的邊緣反走樣的效果不甚理想,甚至無(wú)法達(dá)到實(shí)用
4的程度。這是因?yàn)楝F(xiàn)有的字幕系統(tǒng)在進(jìn)行反走樣處理時(shí),完全依賴(lài)當(dāng)前像素空間的圖像處
理方法,沒(méi)有字幕幾何矢量信息的參與,也就無(wú)法實(shí)現(xiàn)基于子像素的處理。這就使得現(xiàn)有的
字幕系統(tǒng)的最終渲染效果出現(xiàn)比較明顯的邊緣鋸齒效應(yīng),影響字幕展現(xiàn)的效果。 2. —個(gè)字幕對(duì)象在進(jìn)行漸變色渲染時(shí),應(yīng)該是按照這個(gè)物體的矢量輪廓進(jìn)行徑向
的漸變色彩處理,但是在現(xiàn)有的字幕系統(tǒng)中,對(duì)漸變色的渲染處理是將漸變色放到一個(gè)內(nèi)
存塊中,在渲染時(shí),還是采取了對(duì)應(yīng)像素貼圖的方法。這就使得現(xiàn)有的字幕系統(tǒng)無(wú)法實(shí)現(xiàn)真
正意義上的漸變色的渲染效果。 3.現(xiàn)有的字幕系統(tǒng)的渲染流程通常是先進(jìn)行面邊影的貼圖,得到一個(gè)圖像,然后將這個(gè)圖像放入濾鏡管道中,再進(jìn)行一系列的圖像處理。但是由于沒(méi)有字幕幾何矢量信息的參與,濾鏡管道的處理會(huì)破壞前者反走樣后的效果,也就是說(shuō),在本來(lái)就不理想的邊緣處理上累積了新的邊緣鋸齒效應(yīng)。

發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)現(xiàn)有字幕渲染技術(shù)所存在的缺陷,在將字幕對(duì)象歸一化為Bezier曲線并創(chuàng)建出多邊形矢量輪廓的基礎(chǔ)上,提供一種基于像素空間掩碼矩陣模型的字幕渲染方法,從而將字幕對(duì)象的矢量信息轉(zhuǎn)化為一個(gè)基于等高線的像素掩碼矩陣,并將其貫穿應(yīng)用在字幕渲染的所有環(huán)節(jié)之中。 本發(fā)明的技術(shù)方案如下一種基于像素空間掩碼矩陣模型的字幕渲染方法,包括如下步驟 (1)創(chuàng)建一個(gè)二維矩陣模型,使之對(duì)應(yīng)最終渲染后的像素空間; (2)根據(jù)字幕對(duì)象的多邊形矢量輪廓,確定上述二維矩陣的屬性值,得到像素空間掩碼矩陣模型; (3)建立與像素空間掩碼矩陣維數(shù)相同的字幕渲染紋理圖像矩陣,根據(jù)字幕渲染
紋理圖像矩陣以及像素空間掩碼矩陣的屬性對(duì)字幕對(duì)象進(jìn)行紋理貼圖; (4)建立一維形態(tài)漸變色彩數(shù)組,根據(jù)形態(tài)漸變色彩數(shù)組以及像素空間掩碼矩陣
的屬性對(duì)字幕對(duì)象進(jìn)行形態(tài)漸變徑向色彩填充。 進(jìn)一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,還包括步驟(5)針對(duì)邊界像素根據(jù)其相鄰四像素的等高線距離進(jìn)行反走樣處理。 進(jìn)一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(2)中所述的二維矩陣的屬性值包括①一個(gè)像素到邊界的最短距離Border,②一個(gè)像素到最外側(cè)邊的側(cè)邊方向的距離Side,③經(jīng)過(guò)一個(gè)像素的所有邊界圍成的多邊形的面積Area, —個(gè)像素的類(lèi)型Type,⑤一個(gè)像素是否已經(jīng)進(jìn)行了反走樣處理的標(biāo)志bAntialiasing。
進(jìn)一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(3)中所述的紋理貼圖的步驟包括 (a)確定用于字幕對(duì)象渲染的紋理貼圖的順序; (b)根據(jù)字幕對(duì)象加邊的類(lèi)型和邊的厚度確定紋理貼圖的半徑MinR和MaxR ;
(c)根據(jù)需要貼圖的圖像中的像素點(diǎn)的位置,進(jìn)行色彩的賦值或反走樣處理。
更進(jìn)一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(c)中如果需要貼圖的圖像中的像素點(diǎn)在紋理貼圖半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)域內(nèi),則直接進(jìn)行色彩賦值;如果需要貼圖的圖像中的像素點(diǎn)在紋理貼圖半徑MinR和MaxR所表示的兩條等高線上,則根據(jù)像素空間掩碼矩陣索引處對(duì)應(yīng)的經(jīng)過(guò)該像素的所有邊界圍成的多邊形的面積Area值進(jìn)行反走樣處理。 再進(jìn)一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(c)中,設(shè)需要貼圖的圖像中的像素點(diǎn)為P[i] [j],如果P[i] [j]在紋理貼圖半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)域內(nèi),則P[i][j]的色彩值為:腿(P[i][j]) =RGBA(T[i][j]);如果P[i][j]在紋理貼圖半徑MinR和MaxR所表示的兩條等高線上,則P[i][j]的色彩值為RGBA(P[i] [j]) = RGBA(P[i] [j]) X (l-M[i] [j].Area)+RGBA(T[i] [j]) XM[i] [j].Area ; 其中, RGBA(P[i] [j])為需要貼像中索引[i, j]處的RGBA的值; RGBA(T[i] [j])為紋理圖像矩陣中索引[i, j]處的RGBA的值; M[i][j].Area為像素空間掩碼矩陣中索引[i, j]處對(duì)應(yīng)的經(jīng)過(guò)該像素的所有邊
界圍成的多邊形的面積Area值。 進(jìn)一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(4)中所述的形態(tài)漸變徑向色彩填充的步驟包括 (I)確定用于字幕對(duì)象渲染的徑向色彩填充的貼圖順序; (II)根據(jù)字幕對(duì)象加邊的類(lèi)型和邊的厚度確定徑向色彩填充的半徑MinR和MaxR ; (III)將形態(tài)漸變色彩數(shù)組索引映射到徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間[MinR,MaxR]內(nèi); (IV)根據(jù)需要貼圖的圖像中的像素點(diǎn)的位置,進(jìn)行色彩的賦值或反走樣處理。
更進(jìn)一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(IV)中如果需要貼圖的圖像中的像素點(diǎn)在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間內(nèi),則直接進(jìn)行色彩賦值;如果需要貼圖的圖像中的像素點(diǎn)在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線上,則根據(jù)像素空間掩碼矩陣索引處對(duì)應(yīng)的像素到字幕對(duì)象輪廓邊界的最短距離Border值以及經(jīng)過(guò)該像素的所有邊界圍成的多邊形的面積Area值進(jìn)行反走樣處理。 再進(jìn)一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(IV)中,設(shè)需要貼圖的圖像中的像素點(diǎn)為P[i][j],如果P[i][j]在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間內(nèi),則P[i][j]的色彩值為RGBA(P[i][j])=RGBA(C[F(M[i] [j].Border)]);如果P[i] [j]在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線上,則:腿(P[i][j]) = RGBA(P[i][j])*(l-M[i][j]. Area)+RGBA(C[F(M[i][j]. Border)])承M[i][j]. Area ;
其中, RGBA(P[i] [j])為需要貼像中索引[i, j]處的RGBA的值; M[i] [j]. Border為像素空間掩碼矩陣中索引[i, j]處對(duì)應(yīng)的像素到字幕對(duì)象輪
廓邊界的最短距離Border值; M[i][j].Area為像素空間掩碼矩陣中索引[i, j]處對(duì)應(yīng)的經(jīng)過(guò)該像素的所有邊
6界圍成的多邊形的面積Area值; RGBA(C[F(M[i] [ j] Border)])為形態(tài)漸變色彩數(shù)組中索引為F (M[i] [j]. Border)處的RGBA值。 上述F(M[i] [j]. Border)的計(jì)算公式為F(M[i] [j]. Border) =k*(M[i][j]. Border-MinR) / (MaxR-MinR) , k為形態(tài)漸變色彩數(shù)組中元素的個(gè)數(shù)。 進(jìn)一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(5)中所 述的根據(jù)相鄰四像素的等高線距離進(jìn)行反走樣處理的步驟包括 ①在已經(jīng)填充了色彩的圖像中,得到當(dāng)前像素P[i][j]以及其上、下、左、右四個(gè) 相鄰像素P [i-1] [ j] 、 P [i+1] [ j] 、 P [i] [ j-1] 、 P [i] [ j+1]的色彩RGBA的值,分別為:






C
C[2 C[3 C[4
腿(P[i] [j]) RGBA (P [i-1] [j]) RGBA (P [i+1] [j]) 腿(P[i] [j-l]) RGBA(P[i] [j+1]);
② 在像素空間掩碼矩陣中得到與上述像素對(duì)應(yīng)的掩碼屬性值;
③ 根據(jù)上述四個(gè)相鄰像素的色彩RGBA的值以及各像素的掩碼屬性值,進(jìn)行加權(quán) 平均,得到處理后的像素P[i] [j]的色彩RGBA的值。 本發(fā)明的有益效果如下本發(fā)明將字幕對(duì)象的矢量信息轉(zhuǎn)化為一個(gè)基于等高線的 像素掩碼矩陣,并在此基礎(chǔ)上進(jìn)行字幕渲染,使得字幕系統(tǒng)具有優(yōu)秀的實(shí)用性、普遍的適用 性、功能的完備性、功能的可擴(kuò)展性和制播的時(shí)效性,從而滿足電視節(jié)目制播機(jī)構(gòu)對(duì)字幕質(zhì) 量、字幕效果等日益增長(zhǎng)的需求。通過(guò)高質(zhì)量的字幕,使電視節(jié)目更加賞心悅目,也可以使 電視觀眾更快捷地了解時(shí)事新聞、綜合資訊信息、公共服務(wù)信息、實(shí)時(shí)氣象信息、收視動(dòng)態(tài) 等電視內(nèi)容,從而更加直接的體現(xiàn)電視媒體為大眾服務(wù)的重要社會(huì)屬性,取得更好的社會(huì) 效益。


圖la為像素空間掩碼矩陣的示意圖; 圖lb為填充了色彩以后的像素空間色彩矩陣示意圖; 圖2為基于像素空間掩碼矩陣模型的字幕渲染方法流程示意圖; 圖3a、圖3b為逐層計(jì)算像素點(diǎn)到邊界的最短距離的方法示意圖; 圖4a、圖4b、圖4c為逐層計(jì)算像素點(diǎn)沿側(cè)邊方向到最外側(cè)邊的距離的方法示意
圖; 圖5a、圖5b分別為確定輪廓內(nèi)像素點(diǎn)和輪廓外像素點(diǎn)的方式示意圖; 圖6為基于像素空間掩碼矩陣的紋理貼圖方法的原理示意圖; 圖7a、圖7b為根據(jù)像素空間掩碼矩陣模型等高線劃分不同渲染區(qū)域的兩種情況
示意圖; 圖8為基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法的原理示意圖; 圖9為基于相鄰四像素等高線距離的邊緣反走樣處理方法示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)的描述。 由于目前的用于電視節(jié)目制作的字幕系統(tǒng)中字幕渲染普遍存在渲染效率低下、邊 緣鋸齒效應(yīng)、小字模糊不清晰、文字筆畫(huà)粗細(xì)不均勻、漸變效果不真實(shí)、無(wú)法實(shí)現(xiàn)多邊多影 渲染效果、無(wú)法實(shí)現(xiàn)藝術(shù)字效果等一系列技術(shù)上和應(yīng)用上的問(wèn)題,因此,可以通過(guò)將字幕對(duì) 象的矢量信息轉(zhuǎn)化為一個(gè)基于等高線的像素掩碼矩陣,在此基礎(chǔ)上進(jìn)行字幕渲染的技術(shù)來(lái) 加以解決,這一技術(shù)稱(chēng)作基于曲線輪廓的封閉環(huán)域和像素掩碼矩陣的字幕渲染方法(具體 內(nèi)容可參見(jiàn)同期申請(qǐng)的專(zhuān)利)。 上述方法的關(guān)鍵步驟首先是有限封閉環(huán)域的生成。有限封閉環(huán)域?yàn)橛邢迋€(gè)內(nèi)環(huán)、 外環(huán)(內(nèi)、外環(huán)方向相反)定義的一個(gè)多連通閉區(qū)域,內(nèi)環(huán)必須在一個(gè)外環(huán)內(nèi)。 一個(gè)輸入圖 元由一個(gè)或多個(gè)封閉輪廓組成,輪廓以首尾連結(jié)的二次Bezier曲線表示。對(duì)封閉輪廓進(jìn)行 曲線相交檢測(cè),通過(guò)裁減曲線、并歸輪廓,生成有限環(huán)域的內(nèi)外環(huán)。 曲線的相交檢測(cè)利用外接矩形檢測(cè)選取可能相交曲線對(duì)以提高效率,然后遞歸法 對(duì)可能相交的Bezier曲線對(duì)二分法分割進(jìn)行局部曲線段的包圍盒檢測(cè),當(dāng)分割的曲線段 滿足直線擬和精度時(shí),用直線規(guī)則求交點(diǎn),根據(jù)交點(diǎn)分割相交曲線對(duì)。計(jì)算交點(diǎn)相連的曲線 的方向進(jìn)行內(nèi)、外環(huán)分類(lèi)測(cè)試,裁減不滿足內(nèi)、外環(huán)屬性的曲線,即刪除被一個(gè)外環(huán)包含卻 與外環(huán)方向一致的曲線或者被內(nèi)環(huán)包含的與內(nèi)環(huán)方向一致的曲線。連接首尾端點(diǎn)重合的曲 線,生成封閉的內(nèi)外環(huán)。 算法的思想基于某一渲染區(qū)(渲染基元為一個(gè)象素)的渲染屬性取決于其相對(duì)于 環(huán)域的位置,即以原始輪廓環(huán)域?yàn)?距線,通過(guò)計(jì)算渲染基元相對(duì)0距線的距離得到像素掩 碼矩陣,由像素掩碼矩陣的等高線劃分不同的渲染區(qū)。渲染區(qū)的靈活劃分,可以實(shí)現(xiàn)多層圖 元渲染;不同的距離計(jì)算方式得到不同的等高線,從而實(shí)現(xiàn)不同的區(qū)域邊界導(dǎo)角特性;像 素掩碼矩陣做深度信息等轉(zhuǎn)換,實(shí)現(xiàn)浮雕等立體效果。 因此,算法的另一關(guān)鍵步驟就是像素掩碼矩陣中各個(gè)屬性的計(jì)算。離散化曲線環(huán) 域,根據(jù)離散化的輪廓點(diǎn)鏈的前進(jìn)方向標(biāo)記距離映射圖中各基元的符號(hào)(例如,外環(huán)逆時(shí) 針,則左為正右為負(fù),點(diǎn)鏈經(jīng)過(guò)的基元為零)。通過(guò)對(duì)點(diǎn)鏈中各點(diǎn)的方向矢量及其前后點(diǎn)的 方向角平分線方向矢量圍成的有限區(qū)域范圍內(nèi)計(jì)算渲染基元的距離,在映射圖中記錄各基 元的絕對(duì)值最小的距離值。 基于上述原理,在將一個(gè)字幕對(duì)象的Bezier曲線矢量輪廓離散化為多邊形矢量G 之后,進(jìn)一步根據(jù)多邊形的方向和加邊類(lèi)型,創(chuàng)建出用來(lái)加內(nèi)邊的多邊形矢量G1和用來(lái)加 外邊的多邊形矢量G2。然后,就可以對(duì)字幕對(duì)象進(jìn)行后續(xù)渲染。 本發(fā)明首先需要建立與原始圖像具有相同維數(shù)的像素空間掩碼矩陣M如圖la所 示,填充了色彩以后的像素空間色彩矩陣如圖lb所示,每個(gè)像素的色彩值包括RGBA四個(gè)分 量。圖2為基于像素空間掩碼矩陣模型的字幕渲染方法流程示意圖。
像素空間掩碼矩陣M中每個(gè)像素點(diǎn)包括以下屬性數(shù)據(jù) (1). —個(gè)像素到邊界的最短距離Border。該值在加內(nèi)邊、外邊時(shí)使用。根據(jù)方角 邊、尖角邊、圓角邊的不同類(lèi)型,這個(gè)距離有不同的意義。
(2). —個(gè)像素到最外側(cè)邊的側(cè)邊方向的距離Side。該值在加側(cè)邊時(shí)使用。
(3).經(jīng)過(guò)一個(gè)像素的所有邊界圍成的多邊形的面積Area。該值在對(duì)邊界像素進(jìn)行反走樣貼圖時(shí)使用。因此首先要區(qū)分內(nèi)部像素和邊界像素對(duì)于內(nèi)部像素來(lái)說(shuō),該值為固 定的值(512*512);對(duì)于邊界像素而言,該值是一個(gè)小于等于512*512的值,表示通過(guò)該像 素的邊與該像素矩形(高和寬均為512)圍成多邊形的面積。 (4). —個(gè)像素的類(lèi)型Type。該值用來(lái)表示一個(gè)像素是側(cè)邊邊界、外邊邊界、內(nèi)邊 邊界、內(nèi)部像素。 (5). —個(gè)像素是否已經(jīng)進(jìn)行了反走樣處理的標(biāo)志bAntialiasing。使用這個(gè)布爾 變量以避免對(duì)同一個(gè)像素進(jìn)行多次的反走樣處理。 以上的Border、Side、Area的值都是在512*512的坐標(biāo)空間中,因此,可以將以上 這些數(shù)據(jù)當(dāng)作一個(gè)像素的掩碼。 下面對(duì)Border、 Side、 Area的值的計(jì)算以及像素類(lèi)型Type的確定進(jìn)行介紹。
如圖3a、圖3b所示,計(jì)算一個(gè)像素到邊界的最短距離Border值的方法如下
(1)在字幕對(duì)象的多邊形矢量輪廓邊界上選取直線段(P0, Pl),確定直線段(P0, Pl)兩個(gè)端點(diǎn)P0、 Pl的坐標(biāo)(P0. x, P0. y) 、 (PI. x, PI. y)以及兩個(gè)端點(diǎn)的加邊方向的向量 (P0. dx, P0. dy) 、 (PI. dx, PI. dy); 加邊方向的向量與加邊方向的角度的關(guān)系如下
P0. dx = Cos (AO) PO. dy = Sin (AO)
PI. dx = Cos (Al) PI. dy = Sin (Al) 其中,PO點(diǎn)的加邊方向的角度為A0, PI點(diǎn)的加邊方向的角度為Al。
(2)設(shè)定沿加邊方向逐層計(jì)算的距離k、步長(zhǎng)s,根據(jù)PO、 PI的加邊方向的向量依
次計(jì)算P0、P1在加邊方向上所對(duì)應(yīng)的點(diǎn)P2、P3、P4、P5的坐標(biāo); P2、 P4的坐標(biāo)根據(jù)PO點(diǎn)來(lái)計(jì)算 P2. x = PO. x+ (k-s) *P0. dx ; P2. y = PO. y+ (k_s) *P0. dy ; P4. x = PO. x+k*P0. dx ; P4. y = PO. y+k*P0. dy ; P3、 P5的坐標(biāo)根據(jù)PI點(diǎn)來(lái)計(jì)算 P3. x = PI. x+(k_s)*Pl. dx ; P3. y = PI. y+ (k_s) *P1. dy ; P5. x = PI. x+k*Pl. dx ; P5. y = PI. y+k*Pl. dy。 (3)由P2、P3、P4、P5點(diǎn)圍成四邊形,遍歷四邊形內(nèi)的所有像素點(diǎn),根據(jù)點(diǎn)到直線垂 直距離的計(jì)算公式,計(jì)算每個(gè)點(diǎn)到直線段(P0,P1)的距離。 如圖4a、圖4b、圖4c所示,計(jì)算一個(gè)像素到最外側(cè)邊的側(cè)邊方向的距離Side的方 法如下 (1)在字幕對(duì)象的側(cè)邊輪廓邊界上選取直線段(P0,P1),確定直線段(P0,P1)兩個(gè) 端點(diǎn)P0、 Pl的坐標(biāo)(PO. x, PO. y) 、 (PI. x, PI. y)以及側(cè)邊的加邊向量dx、 dy ;
側(cè)邊的加邊向量dx、 dy是根據(jù)側(cè)邊角度A確定的,側(cè)邊的加邊向量dx、 dy與A的 關(guān)系如下dx = Cos (A) , dy = Sin (A)。 (2)設(shè)定沿加邊方向逐層計(jì)算的距離k、步長(zhǎng)s,根據(jù)P0、 Pl的加邊向量依次計(jì)算P0、P1在加邊方向上所對(duì)應(yīng)的點(diǎn)P2、P3、P4、P5的坐標(biāo); P2、 P4的坐標(biāo)根據(jù)PO點(diǎn)來(lái)計(jì)算 P2. x = PO. x+ (k-s) *dx ; P2. y = PO. y+ (k_s) *dy ; P4. x = PO. x+k氺dx ; P4. y = PO. y+k氺dy ; P3、 P5的坐標(biāo)根據(jù)PI點(diǎn)來(lái)計(jì)算 P3. x = PI. x+(k_s)*dx ; P3. y = PI. y+(k_s)*dy ; P5. x = PI. x+k氺dx ; P5. y = PI. y+k*dy。 (3)由P2、P3、P4、P5點(diǎn)圍成四邊形,遍歷四邊形內(nèi)的所有像素點(diǎn),根據(jù)點(diǎn)到直線垂 直距離的計(jì)算公式,以及側(cè)邊的角度和直線段(PO, PI)的角度,計(jì)算每個(gè)像素點(diǎn)沿側(cè)邊加 邊方向到直線段(P0,P1)的路徑長(zhǎng)度。 設(shè)像素點(diǎn)到直線段(P0,P1)的垂直距離為D,側(cè)邊角度為A,直線段(P0,P1)與水 平線的夾角為B,則像素點(diǎn)A沿側(cè)邊加邊方向到直線段(P0,P1)的路徑長(zhǎng)度為D/Sin(A+B)。
計(jì)算經(jīng)過(guò)一個(gè)像素的所有字幕對(duì)象的矢量輪廓線段與像素邊界圍成的多邊形面 積Area值的方法如下 (a)遍歷字幕對(duì)象的多邊形矢量輪廓,針對(duì)字幕對(duì)象的N個(gè)封閉多邊形,取出一個(gè) 多邊形Q[i]; (b)遍歷多邊形Q[i]中的每條邊,針對(duì)Q[i]中的M條邊,取出一條邊L[j];
(c)根據(jù)邊L[j]前后兩個(gè)端點(diǎn)的坐標(biāo),確定邊L[j]經(jīng)過(guò)的像素,設(shè)L[j]經(jīng)過(guò)了F 個(gè)像素,分別是C
、C[1]........C[F-1],F(xiàn)^ 1 ; (d)從L[j]開(kāi)始,遍歷Q[i]中的所有M條邊,分別是L[j]到L[M-l],L[O]到 L[j-l],將經(jīng)過(guò)像素C[k]的邊與像素C[k]的正方形邊界的交點(diǎn)坐標(biāo)計(jì)算出來(lái);
(e)根據(jù)步驟(d)計(jì)算出來(lái)的交點(diǎn)坐標(biāo),由經(jīng)過(guò)像素C[k]的邊以及像素C[k]的 正方形邊界構(gòu)成一個(gè)多邊形,并將該多邊形存放在一個(gè)臨時(shí)數(shù)組中,如果臨時(shí)數(shù)組中已經(jīng) 存在一個(gè)相同的多邊形,就直接轉(zhuǎn)至步驟(f);否則,根據(jù)多邊形的頂點(diǎn)坐標(biāo)和個(gè)數(shù),采用 多邊形面積計(jì)算公式計(jì)算出邊L[j]對(duì)像素C[k]的面積貢獻(xiàn)的值A(chǔ)[j],并累加到像素C[k] 原來(lái)的像素面積Area值中; (f)重復(fù)步驟(d),直到計(jì)算完邊L[j]對(duì)所有經(jīng)過(guò)像素的面積貢獻(xiàn)的值;
(g)重復(fù)步驟(b),直到處理完多邊形Q[i]中的每條邊;
(h)重復(fù)步驟(a),直到處理完字幕對(duì)象中的每個(gè)多邊形。
步驟(e)中多邊形面積計(jì)算公式為A = B + G.5 x fabs (g(Y[,] x (X[w] - X[i+1]》) B = 0. 5Xfabs(Y[。]X (X[N—i]-X"+Y[N—i]X (X[N—2]-X
)) 其中,多邊形的N個(gè)頂點(diǎn)的坐標(biāo)為:(X
, Y
) — (X[N-l] , Y[N_l])。 像素空間掩碼矩陣的像素類(lèi)型Type的確定方法包括如下步驟
10
(1)針對(duì)像素空間掩碼矩陣中的所有像素,分別計(jì)算經(jīng)過(guò)一個(gè)像素的所有字幕對(duì) 象的矢量輪廓線段與像素邊界圍成的多邊形的面積Area ;
(2)根據(jù)步驟(1)所計(jì)算的面積值,確定邊界像素; (3)針對(duì)每個(gè)非邊界像素,向像素右側(cè)水平進(jìn)行掃描,對(duì)掃描中所跨越的字幕對(duì)象 的多邊形矢量輪廓邊界線段進(jìn)行計(jì)數(shù); (4)根據(jù)步驟(3)的最終計(jì)數(shù)結(jié)果,確定輪廓內(nèi)像素或輪廓外像素。
如果面積Area值小于512X512,則該像素為邊界像素。對(duì)于非邊界像素,要根據(jù) 該像素是位于字幕輪廓內(nèi)部或者輪廓外部來(lái)確定是內(nèi)點(diǎn)還是外點(diǎn)。在上述方法的步驟(3) 中,針對(duì)掃描中所跨越的字幕對(duì)象的多邊形矢量輪廓邊界線段,確定線段的起點(diǎn)P0和終點(diǎn) Pl,并得到起點(diǎn)和終點(diǎn)在Y軸上的坐標(biāo)PO. y和Pl. y,掃描的計(jì)數(shù)原則為如果Pl. y >P0. y, 則計(jì)數(shù)器加1 ;如果PI. y < PO. y,則計(jì)數(shù)器減1 ;如果PI. y = PO. y,則計(jì)數(shù)器不變。因此, 在確定字幕對(duì)象的多邊形矢量輪廓邊界線段的起點(diǎn)PO和終點(diǎn)PI時(shí),先需要確定多邊形矢 量輪廓為順時(shí)針多邊形輪廓或逆時(shí)針多邊形輪廓。 由于字幕對(duì)象的多邊形矢量輪廓是由字幕對(duì)象的曲線矢量輪廓離散化為直線段 以后得到的,因此,曲線矢量輪廓的順時(shí)針或逆時(shí)針?lè)较蚣礊槎噙呅问噶枯喞捻槙r(shí)針或 逆時(shí)針?lè)较?。判斷一條封閉曲線G的順時(shí)針/逆時(shí)針?lè)较?,只需要取出G中任意一條Bezier
線段,判斷其方向即可。具體處理步驟如下 第一步,取出這個(gè)封閉曲線G中的一條曲線段B,假設(shè)B的三個(gè)控制點(diǎn)分別為
P
、P[1]、P[2]; 第二步,根據(jù)線段B的起始控制點(diǎn)P[O]和結(jié)束控制點(diǎn)P[2]構(gòu)成直線的矢量,確 定是在水平方向還是在垂直方向上的進(jìn)行判斷,如果abs(P[2].y-P
.y) > abs(P[2]. x-P[O]. x),則將根據(jù)水平方向進(jìn)行判斷處理,否則,將根據(jù)垂直方向進(jìn)行判斷;
第三步,如果根據(jù)水平方向來(lái)判斷,則確定B的方向值為d, d的計(jì)算方法為如果 P[2].y 〉P
.y,則d = 1,如果P[2].y < P[O].y,則d = -l,如果P[2].y = P
.y,則 d = 0 ; 第四步,求出P[O]與P[2]的中點(diǎn)Q; 第五步,假設(shè)H為沿Q點(diǎn)的y坐標(biāo)構(gòu)成的水平直線,以Q點(diǎn)為起點(diǎn)向右側(cè)方向, 計(jì)算與H相交的所有其它Bezier線段,假設(shè)有M條線段與H相交,這些線段為B[O], B[l],......, B[M-1]; 第六步,計(jì)算B[i]的方向d[i],計(jì)算方法與第一步中計(jì)算B的方法相同; 第七步,d,為d[i]的總和,即d, = d
+d[l]+......+d[M_l]; 第八步,根據(jù)d和d'計(jì)算封閉曲線G方向?qū)傩詀,計(jì)算公式如下 封閉曲線G方向?qū)傩詀 = d*(l-2*abs(d')),如果a > O,表示封閉曲線G為順時(shí)
針?lè)较颍駝t為逆時(shí)針?lè)较颉?在像素空間掩碼矩陣的像素類(lèi)型Type確定方法的步驟(4)中,如果最終計(jì)數(shù)結(jié)果
為O,則該像素為輪廓外像素;如果最終計(jì)數(shù)結(jié)果不為O,則該像素為輪廓內(nèi)像素。 具體的實(shí)例如圖5a和圖5b所示,根據(jù)上述方法,圖5a中像素A的跨越邊界計(jì)數(shù)
為1,因此像素A為輪廓內(nèi)像素,圖5b中像素B的跨越邊界計(jì)數(shù)為0,因此像素B為輪廓外像素。
在對(duì)字幕對(duì)象進(jìn)行紋理貼圖時(shí)需要建立字幕渲染紋理圖像矩陣T,紋理圖像矩陣 T是根據(jù)最終需要得到的圖像的紋理效果而確定的,應(yīng)該注意的是紋理圖像矩陣T的維數(shù) 與像素空間掩碼矩陣M的維數(shù)應(yīng)該相同?;谙袼乜臻g掩碼矩陣的紋理貼圖方法的原理如 圖6所示。 在上述像素空間掩碼矩陣模型中,具有相同Border值的點(diǎn)構(gòu)成了一系列等高線, 利用這些等高線,就形成了多個(gè)渲染區(qū)域。外邊個(gè)數(shù)、內(nèi)邊個(gè)數(shù)、側(cè)邊個(gè)數(shù)、影子個(gè)數(shù)與渲染 區(qū)域個(gè)數(shù)的關(guān)系如下,假設(shè)一個(gè)字幕對(duì)象的外邊個(gè)數(shù)為W、內(nèi)邊個(gè)數(shù)為N、側(cè)邊個(gè)數(shù)為C、影 子個(gè)數(shù)為Y : 則渲染區(qū)域個(gè)數(shù)X為X = W+(N > 1 (N+l) :N)+C+Y+1 上式中(N > 1 (N+l) :N)的含義為N > 1時(shí)為(N+l),否則為N。 圖7a所示的字幕對(duì)象具有2個(gè)外邊、3個(gè)內(nèi)邊、2個(gè)側(cè)邊、2個(gè)影子,共劃分11個(gè)渲
染區(qū)域 (1).渲染區(qū)域1 :外邊2與外邊1之間的區(qū)域
(2).渲染區(qū)域2 :外邊1與原始輪廓之間的區(qū)域
(3).渲染區(qū)域3:原始輪廓與內(nèi)邊1之間的區(qū)域
(4).渲染區(qū)域4 :內(nèi)邊1與內(nèi)邊2之間的區(qū)域
(5).渲染區(qū)域5 :內(nèi)邊2與內(nèi)邊3之間的區(qū)域
(6).渲染區(qū)域6 :內(nèi)邊3之內(nèi)的面區(qū)域
(7).渲染區(qū)域7 :內(nèi)邊3與面之間的區(qū)域
(8).渲染區(qū)域8 :外邊2與側(cè)邊1之間的區(qū)域
(9).渲染區(qū)域9 :側(cè)邊1與側(cè)邊2之間的區(qū)域
(10).渲染區(qū)域10 :影子1的區(qū)域
(11).渲染區(qū)域11:影子2的區(qū)域 圖7b所示的字幕對(duì)象具有2個(gè)外邊、1個(gè)內(nèi)邊、1個(gè)側(cè)邊、1個(gè)影子,共劃分6個(gè)渲 染區(qū)域。
(1).渲染區(qū)域1 :外邊2與外邊1之間的區(qū)域
(2).渲染區(qū)域2 :外邊1與原始輪廓之間的區(qū)域
(3).渲染區(qū)域3 :原始輪廓與內(nèi)邊之間的區(qū)域
(4).渲染區(qū)域4 :內(nèi)邊之內(nèi)的面區(qū)域
(5).渲染區(qū)域5 :外邊2與側(cè)邊之間的區(qū)域
(6).渲染區(qū)域6 :影子的區(qū)域 建立了像素空間掩碼矩陣M和紋理圖像矩陣T后,就需要進(jìn)行如下紋理貼圖的處 理步驟 第一,確定紋理貼圖的順序。在基于像素空間掩碼的紋理貼圖中,字幕對(duì)象渲染貼 圖的順序?yàn)閮?nèi)邊(多個(gè))、面、外邊(多個(gè))、側(cè)邊、影子。 第二,確定紋理貼圖半徑MinR和MaxR。 MinR和MaxR表示的是兩條等高線。(1).
針對(duì)N條內(nèi)邊,假設(shè)每條邊的厚度為S[i], i G [O,N-l],則 第1條內(nèi)邊的MinR = 0, MaxR = S[O];第2條內(nèi)邊的MinR = S[O], MaxR = MinR+S[1];
第i條內(nèi)邊的MinR = S[l]+S[2]+. . . +S[i_2], MaxR = MinR+S[i_l];
第N條內(nèi)邊的MinR二 S[l]+S[2]+...+S[N-2],MaxR = MinR+S[N-l];
(2).針對(duì)面,則: 如果不加內(nèi)邊,則MinR = O,MaxR =像素空間掩碼矩陣MASK中最大的Border值;
如果加內(nèi)邊,則MinR =所有內(nèi)邊厚度之和,MaxR =像素空間掩碼矩陣MASK中最 大的Border值; (3).針對(duì)M條外邊,假設(shè)每條邊的厚度為W[i], i G [O,M-l],則: 第1條外邊的MinR = 0, MaxR = W[O]; 第2條外邊的MinR = W[O] , MaxR = MinR+W[l];第i條外邊的MinR = W[l]+W[2]+. .+W[i-2], MaxR = MinR+W[i-l];第M條外邊的MinR = W[l]+W[2]+. . . +W[M_2] , MaxR = MinR+W[M_l]; (4).針對(duì)側(cè)邊MinR =所有外邊厚度之和,MaxR = MinR+側(cè)邊厚度; (5).針對(duì)影子MinR =所有外邊厚度之和,MaxR = MinR+影子厚度。 第三,紋理貼圖。假設(shè)像素空間掩碼矩陣為MASK,簡(jiǎn)稱(chēng)M,紋理圖像矩陣為
TEXTURE,簡(jiǎn)稱(chēng)為T(mén),需要貼圖的圖像為PICTURE,簡(jiǎn)稱(chēng)P。 M、T、P的維數(shù)相同,假設(shè)為w和h。
對(duì)于P中的一個(gè)點(diǎn)P[i] [j] , i G
, j G
,色彩RGBA的值為 (1).根據(jù)像素空間掩碼的Border值來(lái)判斷像素點(diǎn)P[i][j]是否位于(MinR,
MaxR)表示的等高線內(nèi); 如果(M[i] [i]. Border < MinR或者M(jìn)[i] [i]. Border > MaxR),則該像素點(diǎn)不在這 個(gè)等高線內(nèi),此時(shí)不做任何處理。 否則該像素點(diǎn)不這個(gè)等高線內(nèi),進(jìn)行如下的后續(xù)處理。 (2).根據(jù)像素空間掩碼的Type值、MinR、MaxR的值來(lái)判斷像素點(diǎn)P[i] [j]是等高
線的內(nèi)點(diǎn)還是等高線上的點(diǎn); 滿足如下條件之一的點(diǎn)為等高線內(nèi)點(diǎn) 今M[i] [i]. Type !=邊界 今MinR ! = 0而且MaxR ! = 0 否則該像素點(diǎn)就是等高線上的點(diǎn)。 (3).根據(jù)上述得到的結(jié)果,進(jìn)行色彩的賦值。 對(duì)于等高線的內(nèi)點(diǎn),直接進(jìn)行色彩賦值即可;對(duì)于等高線上的點(diǎn),需要根據(jù)像素空 間掩碼的Area值進(jìn)行反走樣處理。 令如果P[i][j]是等高線內(nèi)的點(diǎn),則P[i][j]的色彩值為RGBA(P[i][j])= 腿(T[i] [j]) 今如果P[i][j]是等高線上的點(diǎn),則P[i][j]的色彩值為RGBA(P[i][j])=
RGBA(P[i] [j]) X (l-M[i] [j].Area)+RGBA(T[i] [j]) XM[i] [j].Area RGBA(P[i] [j])為需要貼像PICTURE中索引[i, j]處的RGBA的值; RGBA(T[i] [j])為紋理圖像矩陣TEXTURE中索引[i, j]處的RGBA的值; M[i][j]. Border和M[i][j]. Area為像素空間掩碼矩陣MASK中索引[i, j]處對(duì)
應(yīng)的Border禾口 Area的值。 在紋理貼圖完成后,進(jìn)行形態(tài)漸變徑向色彩填充,這一步驟需要建立形態(tài)漸變色
13彩數(shù)組C,形態(tài)漸變色彩數(shù)組C為一維形式,數(shù)組中元素的個(gè)數(shù)k可以根據(jù)需要來(lái)確定?;?br> 于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法的原理如圖8所示。 建立了形態(tài)漸變色彩數(shù)組C后,就需要進(jìn)行如下形態(tài)漸變徑向色彩填充的步驟 第一,確定徑向填充的順序。在基于像素空間掩碼的形態(tài)漸變徑向色彩填充中,字
幕對(duì)象渲染貼圖的順序?yàn)閮?nèi)邊(多個(gè))、面、外邊(多個(gè))、側(cè)邊、影子。 第二,確定徑向填充半徑MinR和MaxR。 MinR和MaxR表示的是兩條等高線。 (1).針對(duì)N條內(nèi)邊,假設(shè)每條邊的厚度為S[i],i G [O,N-l],則 第1條內(nèi)邊的MinR = 0, MaxR = S[O];第2條內(nèi)邊的MinR = S[O], MaxR = MinR+S[l];第i條內(nèi)邊的MinR = S[l]+S[2]+. . .+S[i-2], MaxR = MinR+S[i-l];第N條內(nèi)邊的MinR二 S[l]+S[2]+...+S[N-2],MaxR = MinR+S[N-l]; (2).針對(duì)面,則: 如果不加內(nèi)邊,則MinR = O,MaxR =像素空間掩碼矩陣MASK中最大的Border值;
如果加內(nèi)邊,則MinR =所有內(nèi)邊厚度之和,MaxR =像素空間掩碼矩陣MASK中最 大的Border值; (3).針對(duì)M條外邊,假設(shè)每條邊的厚度為W[i], i G [O,M-l],則 第1條外邊的MinR = 0, MaxR = W[O]; 第2條外邊的MinR = W[O] , MaxR = MinR+W[l];第i條外邊的MinR = W[l]+W[2]+. .+W[i-2], MaxR = MinR+W[i-l];第M條外邊的MinR = W[l]+W[2]+...+W[M-2], MaxR = MinR+W[M-l]; (4).針對(duì)側(cè)邊MinR =所有外邊厚度之和,MaxR = MinR+側(cè)邊厚度; (5).針對(duì)影子MinR =所有外邊厚度之和,MaxR = MinR+影子厚度; 第三,形態(tài)漸變色彩數(shù)組COLOR的映射。形態(tài)漸變色彩數(shù)組COLOR,簡(jiǎn)稱(chēng)為C, C中
包含的元素個(gè)數(shù)為k。需要將數(shù)組索引
映射到[MinR, MaxR]的區(qū)間內(nèi)。SP,對(duì)于區(qū)間內(nèi)的一個(gè)值x,對(duì)應(yīng)的形態(tài)漸變色彩數(shù)組的索引為F(x) = k* (x-MinR) / (MaxR-MinR) x G [MinR, MaxR] 第四,徑向填充。假設(shè)像素空間掩碼矩陣為MASK,簡(jiǎn)稱(chēng)M,形態(tài)漸變色彩數(shù)組 COLOR,簡(jiǎn)稱(chēng)為C,需要貼圖的圖像為PICTURE,簡(jiǎn)稱(chēng)P。 M、P的維數(shù)相同,假設(shè)為w和h。 C中 包含的元素個(gè)數(shù)為k。對(duì)于P中的一個(gè)點(diǎn)P[i] [j] , i G
, j G
,色彩RGBA 的值為 (1).根據(jù)像素空間掩碼的Border值來(lái)判斷像素點(diǎn)P[i][j]是否位于(MinR, MaxR)表示的等高線內(nèi); 如果(M[i] [i]. Border < MinR或者M(jìn)[i] [i]. Border > MaxR),則該像素點(diǎn)不在這 個(gè)等高線內(nèi),此時(shí)不做任何處理。 否則該像素點(diǎn)不這個(gè)等高線內(nèi),進(jìn)行如下的后續(xù)處理。 (2).根據(jù)像素空間掩碼的Type值、MinR、MaxR的值來(lái)判斷像素點(diǎn)P[i] [j]是等高 線的內(nèi)點(diǎn)還是等高線上的點(diǎn);滿足如下條件之一的點(diǎn)為等高線內(nèi)點(diǎn)
今M[i] [i]. Type !=邊界
今MinR ! = 0而且MaxR ! = 0
否則該像素點(diǎn)就是等高線上的點(diǎn)。
(3).根據(jù)上述得到的結(jié)果,進(jìn)行色彩的賦值。 對(duì)于等高線的內(nèi)點(diǎn),直接進(jìn)行色彩賦值即可;對(duì)于等高線上的點(diǎn),需要根據(jù)像素空 間掩碼的Area值進(jìn)行反走樣處理。 今如果P[i][j]是等高線內(nèi)的點(diǎn),則P[i][j]的色彩值為RGBA(P[i][j])= RGBA(C[F(M[i] [ j] Border)]) 今如果P[i] [j]是等高線上的點(diǎn),則:RGBA(P[i] [j]) = RGBA(P[i] [j])*(l_M[i] [j] Area)+RGBA(C[F(M[i][j] Border)])*M[i][j] Area RGBA(P[i] [j])為需要貼像PICTURE中索引[i, j]處的RGBA的值; M[i] [j]. Border和M[i] [j]. Area為像素空間掩碼矩陣M中索引[i,j]處對(duì)應(yīng)的
Border禾口 Area的值; RGBA(C[F(M[i] [j]. Border)])為形態(tài)漸變色彩數(shù)組COLOR中索引為F(M[i] [j]. Border)處的RGBA值。F(M[i] [j]. Border)的計(jì)算公式為F(M[i] [j]. Border) =k*(M[i] [j].Border-MinR)/(MaxR-MinR)。 在經(jīng)過(guò)紋理貼圖和形態(tài)漸變徑向色彩填充之后,已經(jīng)對(duì)全邊(內(nèi)邊、外邊)和側(cè)邊
進(jìn)行了基于子像素面積的反走樣處理,為了使面與內(nèi)邊、面與外邊、面與側(cè)邊、內(nèi)邊與內(nèi)邊、
外邊與外邊、外邊與側(cè)邊的效果更加平滑,需要根據(jù)相鄰四像素的等高線距離進(jìn)行進(jìn)一步
的反走樣處理?;谙噜徦南袼氐雀呔€距離的邊緣反走樣處理方法的原理如圖9所示。 基于相鄰四像素等高線距離的邊緣反走樣處理的核心思想是 第一,對(duì)于全邊,判斷像素空間掩碼矩陣對(duì)應(yīng)的像素,對(duì)距離為Border的全邊邊
界進(jìn)行反走樣2X2的像素矩陣正好在Border的等高線上,以四點(diǎn)的距離值與Border的
差值作為權(quán)值,做加權(quán)平均。 第二,對(duì)于側(cè)邊,與全邊反走樣一樣對(duì)2X2的矩陣做加權(quán)平均,所不同的是根據(jù) 側(cè)邊距離Side進(jìn)行計(jì)算。 基于相鄰四像素等高線距離的邊緣反走樣處理的步驟如下 假設(shè)當(dāng)前邊界對(duì)應(yīng)的等高線的值為Radius (R),像素空間掩碼矩陣為MASK(M),需 要進(jìn)行處理的圖像為PICTURE (P),那么,針對(duì)P的一個(gè)像素P[i] [j],進(jìn)行反走樣的運(yùn)算如 下 (1).將P[i][j]記為P0, P[i][j]的上、下、左、右四個(gè)相鄰像素為P[i-l][j]、 P[i+1] [j]、P[i] [j-l]、P[i] [j+l]。這四個(gè)像素的色彩RGBA的值分別為:C[o]=RGBA(P[i] [j])Cm=RGBA(P[i-l] [j])C[2]=RGBA(P[i+l] [j])C[3]=RGBA(P[i] [j-l])C[4]=RGBA(P[i] [j+1])(2) 將M[i] [j]記為M0 [j]的上、下、左、右四個(gè)相鄰掩碼為M[i-l] [j]、 M[i+1] [j] 、 M[i] [j-1] 、 M[i] [j+1]。對(duì)于全邊(內(nèi)邊或外邊),這四個(gè)掩碼的Border值分
別為 R
= M[i] [j]. Border
15










R「
對(duì)于側(cè)邊,這四個(gè)掩碼的Border值分別為
R「
M[i-l] [j]. Border M[i+1] [j]. Border M[i] [j-l]. Border M[i] [j+1]. Border
(3),
=M[i][j].Side =M[i-l][j].Side =M[i+1] [j]. Side =M[i][j-l].Side =M[i] [j+1]. Side
對(duì)像素P[i] [j]進(jìn)行反走樣處理的算法是根據(jù)上述四個(gè)像素的RGBA和掩
碼的Border值或者Side值,進(jìn)行加權(quán)平均。處理后的像素P[i] [j]的RGBA為
S(C[k]x(abS(R[k]-R)))
RGBA(P[i][j]) = ^-
S(abs(Rrkl-R))
k=0 本發(fā)明所述的方法并不限于具體實(shí)施方式
中所述的實(shí)施例,本領(lǐng)域技術(shù)人員根據(jù) 本發(fā)明的技術(shù)方案得出其他的實(shí)施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范圍。
1權(quán)利要求
一種基于像素空間掩碼矩陣模型的字幕渲染方法,包括如下步驟(1)創(chuàng)建一個(gè)二維矩陣模型,使之對(duì)應(yīng)最終渲染后的像素空間;(2)根據(jù)字幕對(duì)象的多邊形矢量輪廓,確定上述二維矩陣的屬性值,得到像素空間掩碼矩陣模型;(3)建立與像素空間掩碼矩陣維數(shù)相同的字幕渲染紋理圖像矩陣,根據(jù)字幕渲染紋理圖像矩陣以及像素空間掩碼矩陣的屬性對(duì)字幕對(duì)象進(jìn)行紋理貼圖;(4)建立一維形態(tài)漸變色彩數(shù)組,根據(jù)形態(tài)漸變色彩數(shù)組以及像素空間掩碼矩陣的屬性對(duì)字幕對(duì)象進(jìn)行形態(tài)漸變徑向色彩填充。
2. 如權(quán)利要求1所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于還包括步驟(5)針對(duì)邊界像素根據(jù)其相鄰四像素的等高線距離進(jìn)行反走樣處理。
3. 如權(quán)利要求1或2所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(2)中所述的二維矩陣的屬性值包括①一個(gè)像素到邊界的最短距離Border,②一個(gè)像素到最外側(cè)邊的側(cè)邊方向的距離Side,③經(jīng)過(guò)一個(gè)像素的所有邊界圍成的多邊形的面積Area,④一個(gè)像素的類(lèi)型Type,⑤一個(gè)像素是否已經(jīng)進(jìn)行了反走樣處理的標(biāo)志bAntialiasing。
4. 如權(quán)利要求1或2所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(3)中所述的紋理貼圖的步驟包括(a) 確定用于字幕對(duì)象渲染的紋理貼圖的順序;(b) 根據(jù)字幕對(duì)象加邊的類(lèi)型和邊的厚度確定紋理貼圖的半徑MinR和MaxR ;(c) 根據(jù)需要貼圖的圖像中的像素點(diǎn)的位置,進(jìn)行色彩的賦值或反走樣處理。
5. 如權(quán)利要求4所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(c)中如果需要貼圖的圖像中的像素點(diǎn)在紋理貼圖半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)域內(nèi),則直接進(jìn)行色彩賦值;如果需要貼圖的圖像中的像素點(diǎn)在紋理貼圖半徑MinR和MaxR所表示的兩條等高線上,則根據(jù)像素空間掩碼矩陣索引處對(duì)應(yīng)的經(jīng)過(guò)該像素的所有邊界圍成的多邊形的面積Area值進(jìn)行反走樣處理。
6. 如權(quán)利要求5所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(c)中,設(shè)需要貼圖的圖像中的像素點(diǎn)為P[i][j],如果P[i][j]在紋理貼圖半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)域內(nèi),則P[i][j]的色彩值為RGBA(P[i][j])=腿(T[i][j]);如果P[i][j]在紋理貼圖半徑MinR和MaxR所表示的兩條等高線上,則P[i][j]的色彩值為RGBA(P[i] [j]) = RGBA(P[i] [j]) X (l-M[i] [j].Area)+RGBA(T[i][j]) XM[i] [j].Area ;其中,RGBA(P[i] [j])為需要貼像中索引[i, j]處的RGBA的值;RGBA(T[i] [j])為紋理圖像矩陣中索引[i, j]處的RGBA的值;M[i][j].Area為像素空間掩碼矩陣中索引[i, j]處對(duì)應(yīng)的經(jīng)過(guò)該像素的所有邊界圍成的多邊形的面積Area值。
7. 如權(quán)利要求1或2所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(4)中所述的形態(tài)漸變徑向色彩填充的步驟包括(I)確定用于字幕對(duì)象渲染的徑向色彩填充的貼圖順序;(II) 根據(jù)字幕對(duì)象加邊的類(lèi)型和邊的厚度確定徑向色彩填充的半徑MinR和MaxR;(III) 將形態(tài)漸變色彩數(shù)組索引映射到徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間[MinR,MaxR]內(nèi);(IV) 根據(jù)需要貼圖的圖像中的像素點(diǎn)的位置,進(jìn)行色彩的賦值或反走樣處理。
8. 如權(quán)利要求7所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(IV)中如果需要貼圖的圖像中的像素點(diǎn)在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間內(nèi),則直接進(jìn)行色彩賦值;如果需要貼圖的圖像中的像素點(diǎn)在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線上,則根據(jù)像素空間掩碼矩陣索引處對(duì)應(yīng)的像素到字幕對(duì)象輪廓邊界的最短距離Border值以及經(jīng)過(guò)該像素的所有邊界圍成的多邊形的面積Area值進(jìn)行反走樣處理。
9. 如權(quán)利要求8所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(IV)中,設(shè)需要貼圖的圖像中的像素點(diǎn)為P[i][j],如果P[i][j]在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間內(nèi),則P[i][j]的色彩值為腿(P[i][j]) = RGBA(C[F(M[i][j]. Border)]);如果P[i][j]在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線上,則:RGBA(P[i] [j]) = RGBA(P[i] [j])*(l_M[i] [j].<formula>formula see original document page 3</formula>其中,RGBA(P[i] [j])為需要貼像中索引[i, j]處的RGBA的值;M[i][j]. Border為像素空間掩碼矩陣中索引[i, j]處對(duì)應(yīng)的像素到字幕對(duì)象輪廓邊界的最短距離Border值;M[i][j].Area為像素空間掩碼矩陣中索引[i, j]處對(duì)應(yīng)的經(jīng)過(guò)該像素的所有邊界圍成的多邊形的面積Area值;RGBA(C[F(M[i] [j]. Border)])為形態(tài)漸變色彩數(shù)組中索引為F(M[i] [j]. Border)處的RGBA值;上述F(M[i] [j]. Border)的計(jì)算公式為F(M[i] [j]. Border) = k*(M[i][j].Border-MinR) / (MaxR-MinR) , k為形態(tài)漸變色彩數(shù)組中元素的個(gè)數(shù)。
10. 如權(quán)利要求2所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(5)中所述的根據(jù)相鄰四像素的等高線距離進(jìn)行反走樣處理的步驟包括① 在已經(jīng)填充了色彩的圖像中,得到當(dāng)前像素P[i][j]以及其上、下、左、右四個(gè)相鄰像素P[i-l] [j] 、 P[i+1] [j] 、 P[i] [j-l] 、 P[i] [j+l]的色彩RGBA的值,分別為C[O] = RGBA(P[i] [j])C[l] = RGBA(P[i-l] [j])C[2] = RGBA(P[i+l] [j])C[3] = RGBA(P[i] [j-l])C[4] = RGBA(P[i] [j+l]);② 在像素空間掩碼矩陣中得到與上述像素對(duì)應(yīng)的掩碼屬性值;③ 根據(jù)上述四個(gè)相鄰像素的色彩RGBA的值以及各像素的掩碼屬性值,進(jìn)行加權(quán)平均,得到處理后的像素P[i] [j]的色彩RGBA的值。
全文摘要
本發(fā)明涉及電視節(jié)目制作領(lǐng)域的字幕渲染技術(shù),具體涉及一種基于像素空間掩碼矩陣模型的字幕渲染方法。該方法通過(guò)建立像素空間掩碼矩陣、紋理圖像矩陣和形態(tài)漸變色彩數(shù)組,根據(jù)字幕對(duì)象的多邊形矢量輪廓,確定像素空間掩碼矩陣的屬性值,對(duì)字幕對(duì)象進(jìn)行紋理貼圖和形態(tài)漸變徑向色彩填充,并進(jìn)行反走樣處理。本發(fā)明所提供的字幕渲染方法使字幕系統(tǒng)具有了優(yōu)秀的實(shí)用性、普遍的適用性、功能的完備性、功能的可擴(kuò)展性和制播的時(shí)效性,從而滿足電視節(jié)目制播機(jī)構(gòu)對(duì)字幕質(zhì)量、字幕效果等日益增長(zhǎng)的需求。
文檔編號(hào)H04N5/278GK101764940SQ20081022586
公開(kāi)日2010年6月30日 申請(qǐng)日期2008年11月4日 優(yōu)先權(quán)日2008年11月4日
發(fā)明者吳正斌 申請(qǐng)人:新奧特(北京)視頻技術(shù)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
浮山县| 犍为县| 崇信县| 台北县| 安丘市| 尼勒克县| 克拉玛依市| 定襄县| 中方县| 四子王旗| 惠来县| 镶黄旗| 中方县| 临沧市| 东台市| 保山市| 昔阳县| 正阳县| 芒康县| 霸州市| 株洲县| 贡嘎县| 肃北| 葫芦岛市| 大渡口区| 林周县| 富蕴县| 张家口市| 平阳县| 郸城县| 衡阳县| 项城市| 武城县| 汉寿县| 沁阳市| 漳浦县| 新建县| 兴国县| 阜宁县| 八宿县| 平顺县|