專利名稱:一種基于像素空間掩碼矩陣的紋理貼圖方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電視節(jié)目制作領(lǐng)域的字幕渲染技術(shù),具體涉及一種基于像素空間掩碼
矩陣的紋理貼圖方法。
背景技術(shù):
由于電視字幕具有獨(dú)立的表意功能,作為一種必備的電視節(jié)目要素,電視字幕是 一種重要的電視圖文的展現(xiàn)形式。隨著電視頻道、節(jié)目內(nèi)容的細(xì)分,各個(gè)部門的分工也更加 專業(yè)化,對(duì)于不同類型節(jié)目的制作,以單一類型的字幕系統(tǒng)已很難滿足要求。另外,電視節(jié) 目的日益多樣性和電視觀眾欣賞、鑒賞水平的不斷提高,也要求電視字幕的應(yīng)用模式必然 朝著多樣性的方向發(fā)展。 從廣義的角度來說,電視字幕所處理的字幕對(duì)象可以分為圖形和文字兩個(gè)部分。 圖形包括各種規(guī)則形狀的圖形、由基本圖形元素組成的復(fù)合圖形和任意不規(guī)則圖形,文字 包括世界上各種語種的文字。 從計(jì)算機(jī)展現(xiàn)的角度來說,字幕對(duì)象渲染的最終目的是根據(jù)圖形化的矢量信息和 圖像紋理,采用數(shù)字圖像處理的相關(guān)算法,得到由32位RGBA表示的像素組成的一幀圖像。 因此將字幕對(duì)象歸一化為一種圖形表達(dá)形式,有利于數(shù)字圖像處理算法的統(tǒng)一化。
從計(jì)算機(jī)圖形學(xué)的角度來說,可以將所有類型的字幕對(duì)象視為由一系列直線和曲 線組成的圖形。計(jì)算機(jī)圖形學(xué)的主要研究內(nèi)容就是研究如何在計(jì)算機(jī)中表示圖形、以及利 用計(jì)算機(jī)進(jìn)行圖形的計(jì)算、處理和顯示的相關(guān)原理與算法。圖形通常由點(diǎn)、線、面、體等幾何 元素和灰度、色彩、線型、線寬等非幾何屬性組成。從處理技術(shù)上來看,圖形主要分為兩類, 一類是基于線條信息表示的,如工程圖、等高線地圖、曲面的線框圖等,另一類是明暗圖,也 就是通常所說的真實(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)稱為Bezier曲線的控制頂點(diǎn),N 個(gè)點(diǎn)組成的多邊形稱為Bezier曲線的控制多邊形。在字幕渲染技術(shù)中,可以使用Bezier 曲線來表達(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ù)多邊形的方向和加邊類型,創(chuàng)建出用來加內(nèi)邊和外邊的多邊形矢量輪廓。
當(dāng)針對(duì)字幕對(duì)象的矢量信息進(jìn)行上述處理后,對(duì)字幕進(jìn)行渲染。由于某一渲染區(qū) (渲染基元為一個(gè)像素)的渲染屬性取決于其相對(duì)于曲線輪廓封閉環(huán)域的位置,如何按照 一定的貼圖順序在貼圖半徑內(nèi)部對(duì)原始圖像的每個(gè)像素的色彩進(jìn)行準(zhǔn)確的賦值,是實(shí)現(xiàn)字
3幕渲染方法的關(guān)鍵所在。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)上述基于曲線輪廓封閉環(huán)域和像素空間掩碼的字幕渲染技 術(shù)的實(shí)現(xiàn)原理,提供一種基于像素空間掩碼矩陣的紋理貼圖方法,從而實(shí)現(xiàn)在貼圖半徑內(nèi) 部對(duì)原始圖像的每個(gè)像素色彩的準(zhǔn)確賦值。 本發(fā)明的技術(shù)方案如下一種基于像素空間掩碼矩陣的紋理貼圖方法,包括如下 步驟 (1)建立與原始圖像具有相同維數(shù)的像素空間掩碼矩陣和紋理圖像矩陣;
(2)確定用于字幕對(duì)象渲染的紋理貼圖的順序; (3)根據(jù)字幕對(duì)象加邊的類型和邊的厚度確定紋理貼圖的半徑MinR和MaxR ;
(4)根據(jù)需要貼圖的圖像中的像素點(diǎn)的位置,進(jìn)行色彩的賦值或反走樣處理。
進(jìn)一步,如上所述的基于像素空間掩碼矩陣的紋理貼圖方法,步驟(2)中字幕對(duì) 象渲染的紋理貼圖的順序?yàn)閮?nèi)邊、面、外邊、側(cè)邊、影子。 進(jìn)一步,如上所述的基于像素空間掩碼矩陣的紋理貼圖方法,步驟(3)中針對(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[1] +S[2] + +S[N_2] , MaxR = MinR+S[N_l]。 進(jìn)一步,如上所述的基于像素空間掩碼矩陣的紋理貼圖方法,步驟(3)中針對(duì)面,
在不加內(nèi)邊的情況下,MinR = 0, MaxR =像素空間掩碼矩陣中像素點(diǎn)到字幕對(duì)象曲線輪廓
邊界的距離的最大值;在加內(nèi)邊的情況下,MinR =所有內(nèi)邊厚度之和,MaxR =像素空間掩
碼矩陣中像素點(diǎn)到字幕對(duì)象曲線輪廓邊界的距離的最大值。 進(jìn)一步,如上所述的基于像素空間掩碼矩陣的紋理貼圖方法,步驟(3)中針對(duì)M條
外邊,設(shè)每條邊的厚度為W[i], i G [O,M-l],則 第1條外邊的MinR = 0, MaxR = W[O]; 第2條外邊的M nR = 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]。 進(jìn)一步,如上所述的基于像素空間掩碼矩陣的紋理貼圖方法,步驟(3)中針對(duì)側(cè)
邊,MinR =所有外邊厚度之和,MaxR = MinR+側(cè)邊厚度。 進(jìn)一步,如上所述的基于像素空間掩碼矩陣的紋理貼圖方法,步驟(3)中針對(duì)影 子,MinR =所有外邊厚度之和,MaxR = MinR+影子厚度。 進(jìn)一步,如上所述的基于像素空間掩碼矩陣的紋理貼圖方法,步驟(4)中如果需 要貼圖的圖像中的像素點(diǎn)在紋理貼圖半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)域 內(nèi),則直接進(jìn)行色彩賦值;如果需要貼圖的圖像中的像素點(diǎn)在紋理貼圖半徑MinR和MaxR所 表示的兩條等高線上,則根據(jù)像素空間掩碼矩陣索引處對(duì)應(yīng)的經(jīng)過該像素的所有邊界圍成 的多邊形的面積Area值進(jìn)行反走樣處理。
更進(jìn)一步,如上所述的基于像素空間掩碼矩陣的紋理貼圖方法,步驟(4)中,設(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)過該像素的所有邊
界圍成的多邊形的面積Area值。 本發(fā)明的有益效果如下本發(fā)明按照一定的貼圖順序,根據(jù)像素空間掩碼矩陣和 紋理矩陣,在貼圖半徑內(nèi)部對(duì)原始圖像的每個(gè)像素的色彩進(jìn)行賦值,同時(shí)對(duì)半徑邊緣的像 素進(jìn)行反走樣處理。通過渲染區(qū)的靈活劃分,可以實(shí)現(xiàn)多層圖元渲染的效果,使字幕邊緣更 加圓滑,層次更加豐富,整體效果更加精美。從而便于頻道節(jié)目包裝,提高收視質(zhì)量,提升電 視節(jié)目制播機(jī)構(gòu)的整體形象,滿足公眾的欣賞要求,為電視節(jié)目制播機(jī)構(gòu)取得更好的經(jīng)濟(jì) 效益。
圖1為基于像素空間掩碼矩陣的紋理貼圖方法的原理示意圖; 圖2為根據(jù)像素空間掩碼矩陣模型等高線劃分不同渲染區(qū)域的一種情況示意圖; 圖3為根據(jù)像素空間掩碼矩陣模型等高線劃分不同渲染區(qū)域的另一種情況示意 圖; 圖4為線段端點(diǎn)的加邊方向的向量與加邊方向的角度關(guān)系示意圖; 圖5為逐層計(jì)算像素點(diǎn)到邊界的最短距離的方法示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)的描述。 由于目前的用于電視節(jié)目制作的字幕系統(tǒng)中字幕渲染普遍存在渲染效率低下、邊 緣鋸齒效應(yīng)、小字模糊不清晰、文字筆畫粗細(xì)不均勻、漸變效果不真實(shí)、無法實(shí)現(xiàn)多邊多影 渲染效果、無法實(shí)現(xiàn)藝術(shù)字效果等一系列技術(shù)上和應(yīng)用上的問題,因此,可以通過將字幕對(duì) 象的矢量信息轉(zhuǎn)化為一個(gè)基于等高線的像素掩碼矩陣,在此基礎(chǔ)上進(jìn)行字幕渲染的技術(shù)來 加以解決,這一技術(shù)稱作基于曲線輪廓的封閉環(huán)域和像素掩碼矩陣的字幕渲染方法(具體 內(nèi)容可參見同期申請(qǐng)的專利)。 上述方法的關(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è),通過裁減曲線、并歸輪廓,生成有限環(huán)域的內(nèi)外環(huán)。 曲線的相交檢測(cè)利用外接矩形檢測(cè)選取可能相交曲線對(duì)以提高效率,然后遞歸法 對(duì)可能相交的Bezier曲線對(duì)二分法分割進(jìn)行局部曲線段的包圍盒檢測(cè),當(dāng)分割的曲線段
5滿足直線擬和精度時(shí),用直線規(guī)則求交點(diǎn),根據(jù)交點(diǎn)分割相交曲線對(duì)。計(jì)算交點(diǎn)相連的曲線的方向進(jìn)行內(nèi)、外環(huán)分類測(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)?距線,通過計(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)過的基元為零)。通過對(duì)點(diǎn)鏈中各點(diǎn)的方向矢量及其前后點(diǎn)的方向角平分線方向矢量圍成的有限區(qū)域范圍內(nèi)計(jì)算渲染基元的距離,在映射圖中記錄各基元的絕對(duì)值最小的距離值。 基于上述原理,在將一個(gè)字幕對(duì)象的Bezier曲線矢量輪廓離散化為多邊形矢量G之后,進(jìn)一步根據(jù)多邊形的方向和加邊類型,創(chuàng)建出用來加內(nèi)邊的多邊形矢量G1和用來加外邊的多邊形矢量G2。然后,就可以對(duì)字幕對(duì)象進(jìn)行后續(xù)渲染。 本發(fā)明首先需要建立與原始圖像具有相同維數(shù)的像素空間掩碼矩陣M和紋理圖像矩陣T,如圖l所示。 紋理圖像矩陣T即是根據(jù)最終需要得到的圖像的紋理效果而確定的,應(yīng)該注意的是紋理圖像矩陣T的維數(shù)與像素空間掩碼矩陣M的維數(shù)應(yīng)該相同。
像素空間掩碼矩陣M中每個(gè)像素點(diǎn)包括以下屬性數(shù)據(jù) (1). —個(gè)像素到邊界的最短距離Border。該值在加內(nèi)邊、外邊時(shí)使用。根據(jù)方角邊、尖角邊、圓角邊的不同類型,這個(gè)距離有不同的意義。 (2). —個(gè)像素到最外側(cè)邊的側(cè)邊方向的距離Side。該值在加側(cè)邊時(shí)使用。
(3).經(jīng)過一個(gè)像素的所有邊界圍成的多邊形的面積Area。該值在對(duì)邊界像素進(jìn)行反走樣貼圖時(shí)使用。因此首先要區(qū)分內(nèi)部像素和邊界像素對(duì)于內(nèi)部像素來說,該值為固定的值(512*512);對(duì)于邊界像素而言,該值是一個(gè)小于等于512*512的值,表示通過該像素的邊與該像素矩形(高和寬均為512)圍成多邊形的面積。 (4). —個(gè)像素的類型Type。該值用來表示一個(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è)像素的掩碼。以上屬性數(shù)據(jù)的具體確定方法可以參見同期申請(qǐng)的專利,此處僅對(duì)本發(fā)明中需要用到的一個(gè)像素到邊界的最短距離Border值以及經(jīng)過一個(gè)像素的所有邊界圍成的多邊形的面積Area值的計(jì)算進(jìn)行介紹。 如圖4、圖5所示,計(jì)算一個(gè)像素到邊界的最短距離Border值的方法如下
(1)在字幕對(duì)象的多邊形矢量輪廓邊界上選取直線段(P0, Pl),確定直線段(P0,
6PI)兩個(gè)端點(diǎn)P0、 PI的坐標(biāo)(PO. x, PO. y) 、 (PI. x, PI. y)以及兩個(gè)端點(diǎn)的加邊方向的向量 (PO. dx, PO. dy) 、 (PI. dx, PI. dy); 加邊方向的向量與加邊方向的角度的關(guān)系如下
PO. dx = Cos (AO) PO. dy = Sin (AO)
PI. dx = Cos (Al) PI. dy = Sin (Al) 其中,PO點(diǎn)的加邊方向的角度為AO, PI點(diǎn)的加邊方向的角度為Al。 (2)設(shè)定沿加邊方向逐層計(jì)算的距離k、步長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)來計(jì)算 P2. x = PO. x+ (k-s) *P0. dx ; P2. y = PO. y+ (k_s) *P0. dy ; P4. x = PO. x+k*PO. dx ; P4. y = PO. y+k*PO. dy ; P3、 P5的坐標(biāo)根據(jù)PI點(diǎn)來計(jì)算 P3. x = PI. x+ (k-s) *P1. 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)的距離。 計(jì)算經(jīng)過一個(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)過的像素,設(shè)L[j]經(jīng)過了F 個(gè)像素,分別是C
、C[1]........C[F-1],F(xiàn)^ 1 ; (d)從L[j]開始,遍歷Q[i]中的所有M條邊,分別是L[j]到L[M-l],L[O]到 L[j-l],將經(jīng)過像素C[k]的邊與像素C[k]的正方形邊界的交點(diǎn)坐標(biāo)計(jì)算出來;
(e)根據(jù)步驟(d)計(jì)算出來的交點(diǎn)坐標(biāo),由經(jīng)過像素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] 原來的像素面積Area值中; (f)重復(fù)步驟(d),直到計(jì)算完邊L[j]對(duì)所有經(jīng)過像素的面積貢獻(xiàn)的值;
(g)重復(fù)步驟(b),直到處理完多邊形Q[i]中的每條邊;
(h)重復(fù)步驟(a),直到處理完字幕對(duì)象中的每個(gè)多邊形。
步驟(e)中多邊形面積計(jì)算公式為
A 二 B + 0.5 x fabs (Y[,] x (X[w] — X[i+1])))
i=l B = 0. 5 X fabs (Y[。] X (X[N—i]-X[u) +Y[N—" X (X[N—2]-X
)) 其中,多邊形的N個(gè)頂點(diǎn)的坐標(biāo)為:(X
, Y
) — (X[N_l] , Y[N_l])。 在上述像素空間掩碼矩陣模型中,具有相同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。 圖2所示的字幕對(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ū)域 圖3所示的字幕對(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];
8
第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 = Mi nR+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)稱M,紋理圖像矩陣為
TEXTURE,簡(jiǎn)稱為T,需要貼圖的圖像為PICTURE,簡(jiǎn)稱P。 M、T、P的維數(shù)相同,假設(shè)為w和h。
對(duì)于P中的一個(gè)點(diǎn)P[i] [j] , i G
, j G
,色彩RGBA的值為 (1).根據(jù)像素空間掩碼的Border值來判斷像素點(diǎn)P[i][j]是否位于(MinR,
MaxR)表示的等高線內(nèi); 如果(M[i] [i]. Border < Mi nR或者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的值來判斷像素點(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的值。 本發(fā)明所述的方法并不限于具體實(shí)施方式
中所述的實(shí)施例,本領(lǐng)域技術(shù)人員根據(jù)
9本發(fā)明的技術(shù)方案得出其他的實(shí)施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范圍。
權(quán)利要求
一種基于像素空間掩碼矩陣的紋理貼圖方法,包括如下步驟(1)建立與原始圖像具有相同維數(shù)的像素空間掩碼矩陣和紋理圖像矩陣;(2)確定用于字幕對(duì)象渲染的紋理貼圖的順序;(3)根據(jù)字幕對(duì)象加邊的類型和邊的厚度確定紋理貼圖的半徑MinR和MaxR;(4)根據(jù)需要貼圖的圖像中的像素點(diǎn)的位置,進(jìn)行色彩的賦值或反走樣處理。
2. 如權(quán)利要求l所述的基于像素空間掩碼矩陣的紋理貼圖方法,其特征在于步驟(2)中字幕對(duì)象渲染的紋理貼圖的順序?yàn)閮?nèi)邊、面、外邊、側(cè)邊、影子。
3. 如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的紋理貼圖方法,其特征在于步驟(3)中針對(duì)N條內(nèi)邊,設(shè)每條邊的厚度為S[i],i G [O,N-l],則 第1條內(nèi)邊的MinR = O,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]。
4. 如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的紋理貼圖方法,其特征在于步 驟(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]。
5. 如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的紋理貼圖方法,其特征在于步 驟(3)中針對(duì)側(cè)邊,MinR =所有外邊厚度之和,MaxR = MinR+側(cè)邊厚度。
6. 如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的紋理貼圖方法,其特征在于步 驟(3)中針對(duì)影子,MinR =所有外邊厚度之和,MaxR = MinR+影子厚度。
7. 如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的紋理貼圖方法,其特征在于步 驟(4)中如果需要貼圖的圖像中的像素點(diǎn)在紋理貼圖半徑MinR和MaxR所表示的兩條等高 線圍成的區(qū)域內(nèi),則直接進(jìn)行色彩賦值;如果需要貼圖的圖像中的像素點(diǎn)在紋理貼圖半徑 MinR和MaxR所表示的兩條等高線上,則根據(jù)像素空間掩碼矩陣索引處對(duì)應(yīng)的經(jīng)過該像素 的所有邊界圍成的多邊形的面積Area值進(jìn)行反走樣處理。
8. 如權(quán)利要求7所述的基于像素空間掩碼矩陣的紋理貼圖方法,其特征在于步驟(4) 中,設(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)過該像素的所有邊界圍 成的多邊形的面積Area值。
全文摘要
本發(fā)明涉及電視節(jié)目制作領(lǐng)域的字幕渲染技術(shù),具體涉及一種基于像素空間掩碼矩陣的紋理貼圖方法。該方法按照一定的貼圖順序,根據(jù)像素空間掩碼矩陣和紋理矩陣,在貼圖半徑內(nèi)部對(duì)原始圖像的每個(gè)像素的色彩進(jìn)行賦值,同時(shí)對(duì)半徑邊緣的像素進(jìn)行反走樣處理。通過渲染區(qū)的靈活劃分,可以實(shí)現(xiàn)多層圖元渲染的效果,使字幕邊緣更加圓滑,層次更加豐富,整體效果更加精美。從而便于頻道節(jié)目包裝,提高收視質(zhì)量,提升電視節(jié)目制播機(jī)構(gòu)的整體形象,滿足公眾的欣賞要求,為電視節(jié)目制播機(jī)構(gòu)取得更好的經(jīng)濟(jì)效益。
文檔編號(hào)H04N5/278GK101764939SQ200810225860
公開日2010年6月30日 申請(qǐng)日期2008年11月4日 優(yōu)先權(quán)日2008年11月4日
發(fā)明者吳正斌 申請(qǐng)人:新奧特(北京)視頻技術(shù)有限公司