麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

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

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

發明內容
本發明的目的是針對現有字幕渲染技術所存在的缺陷,在將字幕對象歸一化為Bezier曲線并創建出多邊形矢量輪廓的基礎上,提供一種基于像素空間掩碼矩陣模型的字幕渲染方法,從而將字幕對象的矢量信息轉化為一個基于等高線的像素掩碼矩陣,并將其貫穿應用在字幕渲染的所有環節之中。 本發明的技術方案如下一種基于像素空間掩碼矩陣模型的字幕渲染方法,包括如下步驟 (1)創建一個二維矩陣模型,使之對應最終渲染后的像素空間; (2)根據字幕對象的多邊形矢量輪廓,確定上述二維矩陣的屬性值,得到像素空間掩碼矩陣模型; (3)建立與像素空間掩碼矩陣維數相同的字幕渲染紋理圖像矩陣,根據字幕渲染
紋理圖像矩陣以及像素空間掩碼矩陣的屬性對字幕對象進行紋理貼圖; (4)建立一維形態漸變色彩數組,根據形態漸變色彩數組以及像素空間掩碼矩陣
的屬性對字幕對象進行形態漸變徑向色彩填充。 進一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,還包括步驟(5)針對邊界像素根據其相鄰四像素的等高線距離進行反走樣處理。 進一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(2)中所述的二維矩陣的屬性值包括①一個像素到邊界的最短距離Border,②一個像素到最外側邊的側邊方向的距離Side,③經過一個像素的所有邊界圍成的多邊形的面積Area, —個像素的類型Type,⑤一個像素是否已經進行了反走樣處理的標志bAntialiasing。
進一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(3)中所述的紋理貼圖的步驟包括 (a)確定用于字幕對象渲染的紋理貼圖的順序; (b)根據字幕對象加邊的類型和邊的厚度確定紋理貼圖的半徑MinR和MaxR ;
(c)根據需要貼圖的圖像中的像素點的位置,進行色彩的賦值或反走樣處理。
更進一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(c)中如果需要貼圖的圖像中的像素點在紋理貼圖半徑MinR和MaxR所表示的兩條等高線圍成的區域內,則直接進行色彩賦值;如果需要貼圖的圖像中的像素點在紋理貼圖半徑MinR和MaxR所表示的兩條等高線上,則根據像素空間掩碼矩陣索引處對應的經過該像素的所有邊界圍成的多邊形的面積Area值進行反走樣處理。 再進一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(c)中,設需要貼圖的圖像中的像素點為P[i] [j],如果P[i] [j]在紋理貼圖半徑MinR和MaxR所表示的兩條等高線圍成的區域內,則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]處對應的經過該像素的所有邊
界圍成的多邊形的面積Area值。 進一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(4)中所述的形態漸變徑向色彩填充的步驟包括 (I)確定用于字幕對象渲染的徑向色彩填充的貼圖順序; (II)根據字幕對象加邊的類型和邊的厚度確定徑向色彩填充的半徑MinR和MaxR ; (III)將形態漸變色彩數組索引映射到徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區間[MinR,MaxR]內; (IV)根據需要貼圖的圖像中的像素點的位置,進行色彩的賦值或反走樣處理。
更進一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(IV)中如果需要貼圖的圖像中的像素點在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區間內,則直接進行色彩賦值;如果需要貼圖的圖像中的像素點在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線上,則根據像素空間掩碼矩陣索引處對應的像素到字幕對象輪廓邊界的最短距離Border值以及經過該像素的所有邊界圍成的多邊形的面積Area值進行反走樣處理。 再進一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(IV)中,設需要貼圖的圖像中的像素點為P[i][j],如果P[i][j]在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區間內,則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]處對應的像素到字幕對象輪
廓邊界的最短距離Border值; M[i][j].Area為像素空間掩碼矩陣中索引[i, j]處對應的經過該像素的所有邊
6界圍成的多邊形的面積Area值; RGBA(C[F(M[i] [ j] Border)])為形態漸變色彩數組中索引為F (M[i] [j]. Border)處的RGBA值。 上述F(M[i] [j]. Border)的計算公式為F(M[i] [j]. Border) =k*(M[i][j]. Border-MinR) / (MaxR-MinR) , k為形態漸變色彩數組中元素的個數。 進一步,如上所述的基于像素空間掩碼矩陣模型的字幕渲染方法,步驟(5)中所 述的根據相鄰四像素的等高線距離進行反走樣處理的步驟包括 ①在已經填充了色彩的圖像中,得到當前像素P[i][j]以及其上、下、左、右四個 相鄰像素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]);
② 在像素空間掩碼矩陣中得到與上述像素對應的掩碼屬性值;
③ 根據上述四個相鄰像素的色彩RGBA的值以及各像素的掩碼屬性值,進行加權 平均,得到處理后的像素P[i] [j]的色彩RGBA的值。 本發明的有益效果如下本發明將字幕對象的矢量信息轉化為一個基于等高線的 像素掩碼矩陣,并在此基礎上進行字幕渲染,使得字幕系統具有優秀的實用性、普遍的適用 性、功能的完備性、功能的可擴展性和制播的時效性,從而滿足電視節目制播機構對字幕質 量、字幕效果等日益增長的需求。通過高質量的字幕,使電視節目更加賞心悅目,也可以使 電視觀眾更快捷地了解時事新聞、綜合資訊信息、公共服務信息、實時氣象信息、收視動態 等電視內容,從而更加直接的體現電視媒體為大眾服務的重要社會屬性,取得更好的社會 效益。


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










R「
對于側邊,這四個掩碼的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
對像素P[i] [j]進行反走樣處理的算法是根據上述四個像素的RGBA和掩
碼的Border值或者Side值,進行加權平均。處理后的像素P[i] [j]的RGBA為
S(C[k]x(abS(R[k]-R)))
RGBA(P[i][j]) = ^-
S(abs(Rrkl-R))
k=0 本發明所述的方法并不限于具體實施方式
中所述的實施例,本領域技術人員根據 本發明的技術方案得出其他的實施方式,同樣屬于本發明的技術創新范圍。
1權利要求
一種基于像素空間掩碼矩陣模型的字幕渲染方法,包括如下步驟(1)創建一個二維矩陣模型,使之對應最終渲染后的像素空間;(2)根據字幕對象的多邊形矢量輪廓,確定上述二維矩陣的屬性值,得到像素空間掩碼矩陣模型;(3)建立與像素空間掩碼矩陣維數相同的字幕渲染紋理圖像矩陣,根據字幕渲染紋理圖像矩陣以及像素空間掩碼矩陣的屬性對字幕對象進行紋理貼圖;(4)建立一維形態漸變色彩數組,根據形態漸變色彩數組以及像素空間掩碼矩陣的屬性對字幕對象進行形態漸變徑向色彩填充。
2. 如權利要求1所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于還包括步驟(5)針對邊界像素根據其相鄰四像素的等高線距離進行反走樣處理。
3. 如權利要求1或2所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(2)中所述的二維矩陣的屬性值包括①一個像素到邊界的最短距離Border,②一個像素到最外側邊的側邊方向的距離Side,③經過一個像素的所有邊界圍成的多邊形的面積Area,④一個像素的類型Type,⑤一個像素是否已經進行了反走樣處理的標志bAntialiasing。
4. 如權利要求1或2所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(3)中所述的紋理貼圖的步驟包括(a) 確定用于字幕對象渲染的紋理貼圖的順序;(b) 根據字幕對象加邊的類型和邊的厚度確定紋理貼圖的半徑MinR和MaxR ;(c) 根據需要貼圖的圖像中的像素點的位置,進行色彩的賦值或反走樣處理。
5. 如權利要求4所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(c)中如果需要貼圖的圖像中的像素點在紋理貼圖半徑MinR和MaxR所表示的兩條等高線圍成的區域內,則直接進行色彩賦值;如果需要貼圖的圖像中的像素點在紋理貼圖半徑MinR和MaxR所表示的兩條等高線上,則根據像素空間掩碼矩陣索引處對應的經過該像素的所有邊界圍成的多邊形的面積Area值進行反走樣處理。
6. 如權利要求5所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(c)中,設需要貼圖的圖像中的像素點為P[i][j],如果P[i][j]在紋理貼圖半徑MinR和MaxR所表示的兩條等高線圍成的區域內,則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]處對應的經過該像素的所有邊界圍成的多邊形的面積Area值。
7. 如權利要求1或2所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(4)中所述的形態漸變徑向色彩填充的步驟包括(I)確定用于字幕對象渲染的徑向色彩填充的貼圖順序;(II) 根據字幕對象加邊的類型和邊的厚度確定徑向色彩填充的半徑MinR和MaxR;(III) 將形態漸變色彩數組索引映射到徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區間[MinR,MaxR]內;(IV) 根據需要貼圖的圖像中的像素點的位置,進行色彩的賦值或反走樣處理。
8. 如權利要求7所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(IV)中如果需要貼圖的圖像中的像素點在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區間內,則直接進行色彩賦值;如果需要貼圖的圖像中的像素點在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線上,則根據像素空間掩碼矩陣索引處對應的像素到字幕對象輪廓邊界的最短距離Border值以及經過該像素的所有邊界圍成的多邊形的面積Area值進行反走樣處理。
9. 如權利要求8所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(IV)中,設需要貼圖的圖像中的像素點為P[i][j],如果P[i][j]在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區間內,則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]處對應的像素到字幕對象輪廓邊界的最短距離Border值;M[i][j].Area為像素空間掩碼矩陣中索引[i, j]處對應的經過該像素的所有邊界圍成的多邊形的面積Area值;RGBA(C[F(M[i] [j]. Border)])為形態漸變色彩數組中索引為F(M[i] [j]. Border)處的RGBA值;上述F(M[i] [j]. Border)的計算公式為F(M[i] [j]. Border) = k*(M[i][j].Border-MinR) / (MaxR-MinR) , k為形態漸變色彩數組中元素的個數。
10. 如權利要求2所述的基于像素空間掩碼矩陣模型的字幕渲染方法,其特征在于步驟(5)中所述的根據相鄰四像素的等高線距離進行反走樣處理的步驟包括① 在已經填充了色彩的圖像中,得到當前像素P[i][j]以及其上、下、左、右四個相鄰像素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]);② 在像素空間掩碼矩陣中得到與上述像素對應的掩碼屬性值;③ 根據上述四個相鄰像素的色彩RGBA的值以及各像素的掩碼屬性值,進行加權平均,得到處理后的像素P[i] [j]的色彩RGBA的值。
全文摘要
本發明涉及電視節目制作領域的字幕渲染技術,具體涉及一種基于像素空間掩碼矩陣模型的字幕渲染方法。該方法通過建立像素空間掩碼矩陣、紋理圖像矩陣和形態漸變色彩數組,根據字幕對象的多邊形矢量輪廓,確定像素空間掩碼矩陣的屬性值,對字幕對象進行紋理貼圖和形態漸變徑向色彩填充,并進行反走樣處理。本發明所提供的字幕渲染方法使字幕系統具有了優秀的實用性、普遍的適用性、功能的完備性、功能的可擴展性和制播的時效性,從而滿足電視節目制播機構對字幕質量、字幕效果等日益增長的需求。
文檔編號H04N5/278GK101764940SQ20081022586
公開日2010年6月30日 申請日期2008年11月4日 優先權日2008年11月4日
發明者吳正斌 申請人:新奧特(北京)視頻技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 繁昌县| 香河县| 庆阳市| 嘉定区| 大关县| 新蔡县| 蓝田县| 武陟县| 吴忠市| 米脂县| 南岸区| 专栏| 射阳县| 沙坪坝区| 马边| 北安市| 新乡市| 泾阳县| 琼结县| 昔阳县| 抚州市| 泌阳县| 莱芜市| 仁化县| 资阳市| 南木林县| 额尔古纳市| 资兴市| 兴业县| 贞丰县| 达州市| 大方县| 阿坝县| 沂南县| 柳河县| 逊克县| 宜兰市| 西乡县| 波密县| 长葛市| 故城县|