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

根據交點分割字幕對象矢量輪廓中二次貝塞爾曲線的方法

文檔序號:7927638閱讀:181來源:國知局
專利名稱:根據交點分割字幕對象矢量輪廓中二次貝塞爾曲線的方法
技術領域
本發明屬于廣電行業電視節目制播機構的字幕編播技術領域,具體涉及一種根據
交點分割字幕對象矢量輪廓中二次貝塞爾曲線的方法。
背景技術
在字幕編播領域中,字幕對象可分為文字和圖形兩個部分。文字包括世界上各種
語種的文字,圖形包括各種規則形狀的圖形、由基本圖形元素組成的復合圖形和任意不規
則圖形。從計算機圖形學的角度來說,可以將所有類型的字幕對象視為由一系列直線和曲
線組成的圖形。圖形通常由點、線、面、體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性
組成。從處理技術上看,圖形主要分為兩類一類是基于線條信息表示的,如工程圖、等高線
地圖、曲面的線框圖等;另一類是明暗圖,也就是通常所說的真實感圖形。 字幕渲染是計算機圖形學、計算機數字圖像處理與電視臺的節目制作業務相結合
的技術。從計算機數字圖像處理的角度來說,對字幕對象的渲染包括兩個方面第一,基于
像素或子像素的一系列靜態處理,如圖象增強、二值化處理、邊緣檢測、模糊處理、浮雕、邊
緣反走樣、亮度貼圖、材質貼圖、防抖動、橢圓變形、多邊形變形、勾邊、增亮、銳化、柔化、凸
起、彩色鉛筆、油畫龜裂、交叉影線、剪樣、玻璃、邊緣增亮、墨水輪廓畫、瓷磚、信紙、拼綴物、
塑料包裝、水波紋、海綿、噴涂筆、著色玻璃、高斯模糊等特效;第二,基于關鍵幀的一系列動
態處理,包括水波、旗飄、螺旋、扭曲、三維投影、火焰、球變、三維形變、彎曲、幻影、巻頁、折
疊、禮花、百葉窗、碎裂、水波、波動、劃像、轉球、螺旋、旗飄、波動虛影、蝶變、流光、凸鏡、萬
花筒、激光、飛光、魔幻螺旋、運動模糊、徑向模糊、波浪、波浪倒影、回旋等特效。 字幕的渲染效果是衡量一個字幕系統的重要指標,特別是在反走樣處理、小字的
細節處理、立體邊的處理、虛邊、虛影、真實三維視覺感、三維字倒角、紋理、光照的處理等方面。 在現有的字幕系統中,字幕渲染存在著以下問題 第一,將文本字幕與圖形字幕的渲染區別開來,而且不同的圖形元素也使用不同 性質的幾何矢量來描述。這個問題在實現和應用兩個方面給字幕系統帶來了很多的不利。 從實現的角度來說,會導致一個字幕系統中存在多個完全不同的渲染引擎和渲染流程,而 且如果要支持一種新的字幕對象,則需要定義并實現新的渲染引擎,從而造成字幕系統的 功能擴展性存在很大的局限性。從應用的角度來說,帶來兩方面致命的問題一方面,不同 類型的字幕對象最終展現的效果不一致,例如兩個不同類型的字幕對象同樣是加了 2個像 素的全邊,但由于經過了不同的渲染引擎,最終的處理結果可能是不同的,在進行字幕創作 時給使用者帶來了諸多不便;另一方面,在字幕系統中針對字幕對象的操作不得不進行特 定的限制,例如,有的字幕對象支持幾何旋轉、幾何縮放,有的則不支持,有的字幕對象支持 任意角度的加邊、加影,有的則只支持固定角度的加邊、加影,有的甚至不支持。所有這些問 題都會影響字幕系統的普遍適用性和功能完備性。 第二,字幕渲染引擎的核心算法都是基于浮點運算,例如三角函數運算、反三角函數運算、除法運算、冪運算、開方運算等。這會導致兩方面的問題一方面,由于最終處理結 果要求的是整數型的像素值,因此在渲染引擎算法的不同階段會進行取整運算,這就會造 成計算上的累計誤差,導致最終的字幕效果在局部細節上存在缺陷,例如筆畫多的文字模 糊不清晰、筆畫粘連等;另一方面,這些浮點運算都是占用大量機器指令的數學運算,大大 降低了整個字幕系統的工作效率,影響到字幕制作和播出的時效性,特別是在高清晰度電 視字幕的制作中,由于其數據量是標清的5倍,這一點表現的更加明顯。 第三,作為字幕渲染重要指標之一的邊緣反走樣的效果不甚理想,甚至無法達到
實用的程度。這是因為現有的字幕系統在進行反走樣處理時,完全依賴當前像素空間的圖
像處理方法,沒有字幕幾何矢量信息的參與,也就無法實現基于子像素的處理,使得現有的
字幕系統的最終渲染效果出現比較明顯的邊緣鋸齒效應,影響字幕展現的效果。 由于上述同樣的原因,在對字幕對象進行基于濾鏡管道的圖像處理時,也會影響
字幕的最終效果。現有的字幕系統的渲染流程通常是先進行面邊影的貼圖,得到一個圖像,
然后將這個圖像放入濾鏡管道中,再進行一系列的圖像處理。但是由于沒有字幕幾何矢量
信息的參與,濾鏡管道的處理會破壞前者反走樣后的效果。也就是說,在本來就不理想的邊
緣處理上累積了新的邊緣鋸齒效應。 由于上述同樣的原因,對于稍微復雜一些的圖形元素的字幕對象,在圖形拐點處 出現振蕩效應,導致圖形輪廓不平滑。例如常用的圓角矩形對象,由四個角的圓弧與四條直 線組成,在圓弧與直線相接的地方,就會出現凸凹不平的現象。 第四,一個字幕對象在進行漸變色渲染時,應該是按照這個物體的矢量輪廓進行 徑向的漸變色彩處理,但是在現有的字幕系統中,對漸變色的渲染處理是將漸變色放到一 個內存塊中,在渲染時,還是采取了對應像素貼圖的方法。這就使得現有的字幕系統無法實 現真正意義上的漸變色的渲染效果。 第五,現有的字幕系統無法實現增加多個外邊、多個內邊、多個側面立體邊、多個 影子。簡單的面、邊、影的疊加的字幕展現已經無法滿足電視節目制作對字幕系統的要求。
第六,現有的字幕系統的渲染都不是基于Bezier曲線輪廓,但是由于TrueType 字庫中的字模都是使用Bezier曲線來描述的,所以就需要將從字庫中提取出來的Bezier 曲線轉換成另外一種形式的矢量,由于不同矢量表達式之間的信息不對稱性,在轉換過程 中會出現信息的損失,從而使得筆畫的形狀變形,導致筆畫粗細不均勻,影響字型展現的美 觀。 第七,現有的字幕系統無法將文字字幕對象轉換為圖形字幕對象,從而無法實現 字符變形、字符倒影、字符反轉、曲線擺放、藝術字等功能,無法滿足高級的字幕應用需求。
第八,現有的字幕系統無法實現多種不同類型的加邊方式,如尖角邊、圓角邊、方 角邊等,這在一定程度上影響了字幕應用的廣泛性。 第九,現有的字幕系統無法實現對任意形狀不規則圖形的支持,從而無法應對日 益重要的地理信息描述、氣象預報、綜合資訊等類型的字幕制作。 貝塞爾(Bezier)曲線是計算機圖形學中一種重要的多項式參數曲線。平面中的 任意N(N〉二 2)個點都可以構成一個Bezier曲線,這N個點稱為Bezier曲線的控制點, N個點組成的多邊形稱為Bezier曲線的控制多邊形。N次Bezier曲線的參數方程如下
t G [O,l] 其中,P。、P^... 、Pn是Bezier曲線的控制點。
由此,一次Bezier曲線的參數表達式為
B(t) = P0+(P「P0)t = (l-t)P。+tPp t G [O,l] —次Bezier曲線就是線性Bezier曲線,實際上是兩個控制點P。和P工之間的直線 段。 二次Bezier曲線的參數表達式為 B(t) = (1—t)2p。+2t(l-t)P,t2p2, t G [O,l] 三次Bezier曲線的參數表達式為 B(t) = Po(l-t)3+3P^(l-t)2+3P2t2(l-t) +P3t3, t G [O,l] P。、Pp^、P3四個點在平面或在三維空間中定義了三次Bezier曲線。曲線起始于 P。走向P工,并從P2的方向來到P3。 一般不會經過Pi或P^這兩個點只提供方向信息。P。和 Pi之間的間距,決定了曲線在轉而趨進P3之前,走向P2方向的長度。
Bezier曲線具有如下特性。 (1)無限可分性一條Bezier曲線可在任意點切割成兩條或任意多條子曲線,每 一條子曲線仍是Bezier曲線。 (2)對稱性保持Bezier曲線全部控制點Pi的坐標位置不變,只是將控制點Pi的 排序顛倒,曲線形狀保持不變。這個性質說明Bezier曲線在起點處有什么幾何性質,在終 點處也有相同的幾何性質。 (3)凸包性Bezier曲線位于其控制點的凸包之內。 (4)幾何不變性Bezier曲線位置和形狀與其特征多邊形頂點的位置有關,它不 依賴坐標系的選擇。 (5)變差縮減性平面內任意直線與曲線的交點個數不多于該直線與其特征多邊 形的交點個數。 (6)端點切矢量Bezier曲線的起點、終點與相應的特征多邊形的起點、終點重 合。其起點和終點處的切線方向和特征多邊形的第一條邊及最后一條邊的走向一致。
鑒于上述Bezier曲線的特性,如果將不同類型的字幕對象均轉換為二次Bezier 曲線,則有利于提高字幕的渲染效果,滿足字幕的高級應用以及解決現有字幕渲染方法存 在的問題。在將不同類型的字幕對象轉換為二次Bezier曲線后,在某些應用場合下,會出 現一個封閉二次Bezier曲線內部自相交的情況,例如自繪曲線、字幕對象經過旋轉或者某 些多語種字體中。因此需要對這種情況進行處理,刪除或者分割封閉二次Bezier曲線內部 包含的閉合環路。不僅如此,在一個字幕對象包含的多個封閉輪廓之間也可能存在相交的 情況,如果不對這種情況進行處理,則會影響字幕對象的最終渲染效果。

發明內容
針對現有技術中存在的缺陷,本發明的目的是提供一種根據交點分割字幕對象矢 量輪廓中二次貝塞爾曲線的方法。該方法能夠將字幕對象的矢量輪廓信息中不同封閉輪廓之間相交的Bezier線段根據交點分割成多段Bezier線段,有利于字幕對象的后續渲染。
為達到以上目的,本發明采用的技術方案是一種根據交點分割字幕對象矢量輪 廓中二次貝塞爾曲線的方法,包括以下步驟 (1)計算字幕對象矢量輪廓中所有的二次貝塞爾線段與其他二次貝塞爾線段的交 點; (2)在每條二次貝塞爾線段的交點處,將該二次貝塞爾線段分割;
假設一條二次貝塞爾線段B的三個控制點分別是P
、P [1] 、P [2],在B上有n個 交點,分別為S[O]到S[n-l],每個交點對應的貝塞爾參數方程中的t值分別是S[O]. t到 S[n-l]. t ; 首先在S[O]點處將線段B分成兩條線段B1和B1'; Bl的三個控制點分別為P
、Q
、S
,P
和S[O]的坐標已知,Q[O]的坐標



標為


Q
.x= (l-t)*P
. x+t*P[l]. x, Q[O].y = (l-t)*P
.y+t*P[l].y ;
Bl'的三個控制點分別為S
、R
、P[2],S
和P[2]的坐標已知,R[O]的坐
R
.x= (l-t)*P[l]. x+t*P[2]. x, R[O].y = (l_t)*P[l].y+t*P[2].y ;
其中,Q[O].x表示Q[O]點的橫坐標,Q[O].y表示Q[O]點的縱坐標,R[O]. x表 示R[O]點橫坐標,R[O].y表示R[O]點縱坐標^= (S[O]. t-P[O]. t)/(P[2]. t-P[O]. t), P[O]. t為P[O]點對應的貝塞爾參數方程中的t值,P[2]. t為P[2]點對應的貝塞爾方程中 的t值; 然后在S[l]點處將線段B1'分成兩條線段B2和B2',方法與在S
點處將線 段B分成兩條線段B1和B1'的方法相同; 以此類推,最后在S[n-l]點處將線段Bn-l'分成兩條線段Bn和Bn';最終得到 N+l條分割后的線段。 如上所述的一種根據交點分割字幕對象矢量輪廓中二次貝塞爾曲線的方法,步驟 (1)中所述的計算字幕對象矢量輪廓中所有的二次貝塞爾線段與其他二次貝塞爾線段的交 點的方法包括以下步驟 ①遍歷字幕對象矢量輪廓中所有的封閉輪廓,取出一個與已取不同的封閉輪廓 G[i]; ②遍歷G[i]中所有的二次Bezier線段,取出一個與已取不同的二次貝塞爾線段 B[j]; ③遍歷該字幕對象矢量輪廓中除B[j]之外的所有二次貝塞爾線段,取出一個與 已取不同的二次貝塞爾線段B[k]; 判斷B[j]與B[k]的外接矩形是否存在交集,如果不存在,則轉至步驟③;如果 存在,則計算B[j]與B[k]之間的交點: a.計算B[j]的起始控制點與結束控制點之間的空間直線距離L,計算公式為
L=^(>1- x0)2 + (yl- y0)2,其中xO、 yO是起始控制點坐標,xl、 yl是結束控制
7點坐標; b.判斷L《V^是否成立,如果不成立,則在中點處將B[J]分成兩條二次貝塞爾 線段; c.對步驟b分割后的兩條二次貝塞爾線段進行與步驟a至步驟b同樣的操作,直 到B[j]分割后的所有二次貝塞爾線段的起始控制點與結束控制點之間的空間直線距離均
小于等于V^"; d.采用與處理B[j]相同的方法處理B[k]; e.計算B[j]經過分割后的所有二次貝塞爾線段起始控制點與結束控制點之間的 直線段與B[k]經過分割后的所有二次貝塞爾線段起始控制點與結束控制點之間的直線段 的交點。 如上所述的一種根據交點分割字幕對象矢量輪廓中二次貝塞爾曲線的方法,步驟 ④中在中點處將一條貝塞爾線段分成兩條二次貝塞爾線段的方法為 假設二次貝塞爾線段的三個控制點分別為P0、 PI和P2,函數表達式為B(t)= (l-t)2p。+2t(l-t)2p一t2p2, t G [O,l]; 令t = 0.5,計算二次貝塞爾曲線方程上的一點Q,該點便是二次貝塞爾線段的中 點,其坐標的計算公式為Q = (P0+2*Pl+P2)/4 ; 將該二次貝塞爾曲線從中點Q處分成兩條二次貝塞爾線段,其中一條的三個控制 點分別為P0、R1、Q,另一條的三個控制點分別為Q、R2、P2。 本發明所述的方法,將字幕對象矢量輪廓信息中屬于不同的封閉輪廓的相交的二 次貝塞爾線段在交點處進行分割,有利于提高字幕對象的后續渲染效率,并增強字幕對象 的最終渲染效果。


圖1是具體實施方式
中將橢圓圖元轉換成由三次Bezier線段組成的封閉輪廓示 意圖; 圖2是具體實施方式
中將波浪旗飄圖元轉換成由三次Bezier線段組成的封閉輪 廓示意圖; 圖3是具體實施方式
中將心形圖元轉換成三次Bezier線段組成的封閉輪廓示意 圖; 圖4 一次Bezier線段轉換成二次貝塞爾線段示意圖,4a為轉換前的一次Bezier 線段示意圖,4b為轉換后的二次Bezier線段示意圖; 圖5三次Bezier線段轉換成兩條二次Bezier線段示意圖,5a —種三次Bezier線 段轉換前后的對比示意圖,5b是另一種三次Bezier線段轉換前后的對比示意圖;
圖6是具體實施方式
中存在相鄰二次貝塞爾線段自相交情況的封閉輪廓處理前 后效果示意圖; 圖7是具體實施方式
中存在非相鄰二次貝塞爾線段自相交情況的封閉輪廓處理 前后效果示意圖; 圖8是具體實施方式
中二次貝塞爾線段的外接矩形示意圖;
圖9是具體實施方式
中二次貝塞爾線段中點示意 圖10是具體實施方式
中存在非相鄰二次貝塞爾線段自相交情況的封閉輪廓兩次 處理前后效果示意圖; 圖11是本發明所述的方法流程圖; 圖12是具體實施方式
中計算字幕對象矢量輪廓中所有的二次貝塞爾線段與其他 二次貝塞爾線段的交點的方法流程圖; 圖13是具體實施方式
中將一條二次貝塞爾線段分割成五條二次貝塞爾線段示意 圖。
具體實施例方式
下面結合具體實施方式
和附圖對本發明進行詳細描述。 本發明所述的方法主要應用于在將不同類型的字幕對象轉換為由二次Bezier線 段組成的包括一個或多個封閉輪廓的矢量輪廓信息時,不同的封閉輪廓之間存在相交的二 次貝塞爾線段的字幕渲染中。 將不同類型的字幕對象轉換為由二次Bezier線段組成的包括一個或多個封閉輪 廓的矢量輪廓信息可以采用如下方法。 由于字幕對象的類型包括文字字幕、基本圖形字幕和復合字幕(包括文字和基本 圖形的字幕),因此針對不同類型的字幕對象需要進行不同的處理。 如果字幕對象的類型為文字字幕,則可以直接使用操作系統的TrueType字庫,無 需轉換。其方法主要包括以下步驟 ①根據文字字幕對象的字體名稱,使用操作系統提供的API (CreateFont)創建邏 輯字體對象F ; ②使用操作系統提供的API (SelectObject),將邏輯字體對象F設置到操作系統 的資源描述表中,并保存操作系統原來的邏輯字體; ③根據當前字符的Unicode編碼,使用操作系統提供的API (GetGlyphOutline), 從操作系統的當前資源描述表中獲取當前字符的矢量輪廓信息在TrueType字庫中占用的 內存字節數B; ④根據當前字符占用的內存字節數B,分配內存P ; ⑤根據當前字符的Unicode編碼和占用的內存P,再次使用操作系統提供的 API (GetGlyphOutline),從操作系統當前資源描述表中獲取當前字符的矢量輪廓信息G,并 恢復操作系統原來的邏輯字體。 如果字幕對象的類型為基本圖形字幕,則將其轉換成由若干條三次貝塞爾線段組 成的封閉輪廓的矢量輪廓信息,主要是根據基本圖形的幾何參數確定每條貝塞爾線段上的 控制點坐標,具體包括以下步驟 ①根據基本圖形字幕的幾何形狀,將基本圖形字幕劃分成多條曲線段,所述的曲 線段包括直線段、正玄或余玄曲線段、圓弧段和橢圓弧段; ②根據基本圖形字幕的外接矩形、每條曲線段的參數方程計算出每條曲線段轉換 成三次貝塞爾線段后的起始控制點和結束控制點的坐標; ③對每條三次貝塞爾線段,根據起始控制點和結束控制點的坐標和三次貝塞爾參 數方程,分別計算t = 1/3和t = 2/3處的另外兩個控制點的坐標。
以基本圖形字幕的幾何形狀為橢圓形為例,如圖1所示。首先,根據橢圓形與其外 接矩形的四個交點P100、 P103、 P106和P109將其分成四條Bezier線段,分別為從P100到 P103、從P103到P106、從P106到P109和從P109到PIOO。從P100到P103的三次Bezier 曲線的四個控制點分別為P100、P101、P102和P103,從P103到P106的三次Bezier曲線的 四個控制點分別為P103、P104、P105和P106,從P106到P109的三次Bezier曲線的四個控 制點分別為P106、P107、P108和P109,從P109到PIOO的三次Bezier曲線的四個控制點分 別為P109、P110、P111和PIOO。 然后,根據橢圓圖元的外接矩形的四個頂點坐標計算出橢圓中心點的坐標(a,b)、 橫軸半徑ra和縱軸半徑rb。每條三次貝塞爾線段的各個控制點坐標的計算公式如下
令PinA = ra*0. 55179445, PinB = rb*0. 55179445。P跳x =3jP跳y=b+rb 5P101.x =a+PinA ;P101.y=b+rb 5P102.X =a+ra jP102.y=b+PinBP103.X =a+ra jP103.y=b ;P104.X =a+ra jP104.y=b-PinBP105.X =a+PinA ;P105.y=b_rb 5P106.X =P106.y=b_rb 5P107.X =a-PinA ;P107.y=b_rb 5P跳X =P跳y=b-PinBP109.X =P109.y=b ;P110.X =P110.y=b+PinBPill.X =a-PinA ;Pill.y=b+rb。 其中,PIOO. x表示PIOO點的橫坐標,PIOO. y表示PIOO點的縱坐標。本實施方式 中,其他類似的表示方式的含義與PIOO相同。 以基本圖形字幕的幾何形狀為波浪旗飄形為例,如圖2所示。首先,根據兩條曲線 段與兩條直線段的四個交點P200、P203、P206和P209將其分成四條曲線段,分別為從P200 到P203、從P203到P206、從P206到P209和從P209到P200。將每條曲線段轉換成三次貝 塞爾曲線后,從P200到P203的三次Bezier線段的四個控制點分別為P200、 P201、 P202和 P203,從P203到P206的三次Bezier線段的四個控制點分別為P203、 P204、 P205和P206, 從P206到P209的三次Bezier線段的四個控制點分別為P206、P207、P208和P209,從P209 到P200的三次Bezier線段的四個控制點分別為P209、 P210、 P211和P200。
已知波浪旗飄形圖元的外接矩形的四點坐標,可以計算出該圖元外接矩形的寬度 和高度,分別為W2和H2。此外,根據已知的調節波浪旗飄圖元的水平和垂直幅度的參數fx 和fy,可以計算出來P200點的坐標為(a, b) , a = fx*W, b = fy*H。
每條三次貝塞爾線段上控制點坐標的計算過程包括以下步驟。
①基于正玄曲線方程,根據P200點坐標計算出P203點坐標。
P203.x = W2;P203. y = b+b*0. 9*sin ((W2_a) *2*PI/W2)。 ②以P200點為起點,以P203點為終點,根據三次Bezier曲線方程,分別計算t =/3和t = 2/3處的P201點禾口 P202點的坐標 0116] P201.x
0117] P202. x
0118]
((m一C2-m2化》 ((m一b2-m2氺b》
0119] 0120] 0121] 0122] 0123] 0124] 0125] 0126] 0127]
其中,= a+(W2-a)/3, m2
(l-t》
_t》;
=3*1^*1^* (l-t》
=t^t一t!;
a2=a-t2)*a-t2)*(l-t2)
b2_t2);
c2=3*t2*t2*(l-t2)
d2=t2*t2*t2。
(E^氺C2 — El2氺C》氺P200. X—(C^氺C2 — Ci氺d2)氺P203. x\
(Eii氺b2—Ei2氺b》氺P200. x_ (c^氺b2—d2氺b》氺P203. x). a+(W2-a)*2/3 ;、 = 1. 0/3, t2 = 2. 0/3 ;
P201. y
(E^氺C2—Ei2氺c》氺P200. y_ (c^氺C2—Ci氺d2)氺P203. y). (Eii氺b2—Ei2氺b》氺P200. y_ (c^氺b2—d2氺b》氺P203. y).
0128] P202. y
0129] 其中,n丄=b-b*0. 9*sin((W2_a)*2*PI/(3*W2)),
0130]n2 = b_b*0. 9*sin((W2_a)*2*PI*2/(3*W2))。
0131] ③基于正玄曲線方程,根據P200點坐標計算出P206點坐標。
0132] P206. x = W2_a;
0133] P206. y = H2-b_b*0. 9*sin((W2_a)*2*PI/W2) 0134] ④計算P209點坐標。 0135] P209.x = 0; 0136] P209. y = H2_b
0137] ⑤以P206點為起點,以P209點為終點,根據三次Bezier曲線方程,分別計算t = /3和t = 2/3處的P207點和P208點坐標,計算方法與計算P201點、P202點的坐標相同。 0138] P204點坐標等于P203點坐標,P205點坐標等于P206點坐標,P210點坐標等 于P209點坐標,P211點坐標等于P200點坐標。之所以要重復這幾個點,是為了使得該字 幕對象的封閉矢量輪廓信息中的每條Bezier線段都是三次Bezier曲線。實際上,由控制 點P203、 P204、 P205、 P206形成的三次Bezier曲線,以及由控制點P209、 P210、 P211、 P200 形成的三次Bezier曲線是一條直線段。 以基本圖形字幕的幾何形狀為心形為例,如圖3所示。已知心形圖元的外接矩形 的四點坐標,可以計算出該圖元的寬度和高度,分別為W3和H3。首先將該圖元分成8條曲 線段,分別為從P300到P303、從P303到P306、從P306到P309、從P309到P312、從P312到 P315、從P315到P318、 P318到P320,從P320到P300。將每條曲線段轉換成三次貝塞爾線 段后各個控制點坐標的計算過程包括以下步驟。 ①首先根據心形圖元的形狀特點,計算點P300、P303、P306和P309的坐標。
P300. x = 0. 73*W3+0. 27*W3*cos (A), P300. y = 0. 25*H3-0. 25*H3*sin(A); P303. x = 0. 73*W3+0. 27*W3*cos (PI/3+A), P303.y = 0. 25*H3_0. 25*H3*sin(PI/3+A); P306. x = 0. 73*W3+0. 27*W3*cos(2*PI/3+A), P306. y = 0. 25*H3-0. 25*H3*sin(2*PI/3+A); P309. x = 0. 73*W3+0. 27*W3*cos (PI+A), P309. y = 0. 25*H3-0. 25*H3*sin (PI+A)。 其中PI和A為常數,PI = 3. 1415926, A = -0. 5535442。 ②利用三次Bezier參數方程,以P300點為起點,以P303點為終點,分別計算t 1/3和t = 2/3處的P301點和P302點的坐標。三次Bezier曲線的矩陣形式如下 P(,)= X(t) = [t3 t2 t 1


Y(t) = f
將上面矩陣展開后,得到
X(t) = Ao+A一t+A^t2+A^t3 Y(t) = Bo+B^t+B^f+B^t3 其中,A。 = X。 = -3X。+3X丄
2一211P600_33-2—1尸60100101000尸603_ 2_211 _—Xo—
一33-2一lXi
0010X2
1000X3 —
—2-211 一
一33-2一lYi
0010Y2
1000Y3;A。
3X。-6X一3X2 ;A3 = -X0+3X「3X2+X3 ;B0 = Y0 ;B! 二 -3Yo+3Y丄;B2 = 3Y。-6Y,3Y2 ;B3 = -Y0+3Y「3Y2+Y3。 由于P300點和P303點的坐標X。、X3、 Y。、 Y3已知,P301點的t值為1/3,P302點的 t值為2/3,因此可以列出一個如下四元一次方程組
Y X2 Y。
A。 +A^ (1/3) +A2* (1/3) 2+A3* (1/3):
B。 +B一 (1/3) +B2* (1/3) 2+B3* (1/3):
A。 +A^ (2/3) +A2* (2/3) 2+A3* (2/3):
B。 +B^ (2/3) +B2* (2/3) 2+B3* (2/3):


解該方程組,即可得到P301和P302點的坐標X!、 X2、 Y!、 Y2的值。 ③利用三次Bezier參數方程,以P303點為起點,以P306點為終點,分別計算t =
1/3和t = 2/3處的P304點和P305點的坐標。方法與第③步中求P301、P302的坐標相同,
不再贅述。
利用三次Bezier參數方程,以P306點為起點,以P309點為終點,分別計算t =1/3和t = 2/3處的P307點和P308點的坐標。方法與第③步中求P301、P302的坐標相同, 不再贅述。 ⑤根據心形圖元的左右對稱性,可以得到P311、P312、P313、P314、P315、P316、P317 和P318的坐標。 ⑥P320點的坐標為(W/2, H)。 ⑦P323、 P324點的坐標等于P300點,P319點的坐標等于P318點,P321、 P322點 的坐標等于P320點。 最后,得到8條三次貝塞爾線段組成的矢量輪廓信息。這8條三次貝塞爾線段如







第一條線段由控制點(P300、P301、P302、P303)形成的三次貝塞爾線段 第二條線段由控制點(P303、P304、P305、P306)形成的三次貝塞爾線段 第三條線段由控制點(P306、P307、P308、P309)形成的三次貝塞爾線段 第四條線段由控制點(P309、P310、P311、P312)形成的三次貝塞爾線段 第五條線段由控制點(P312、P313、P314、P315)形成的三次貝塞爾線段 第六條線段由控制點(P315、P316、P317、P318)形成的三次貝塞爾線段 第七條線段由控制點(P318、 P319、 P320、 P321)形成的三次貝塞爾線段(由于 P318、P319的坐標相同,P320、P321的坐標相同,因此這條線段實際上是一條直線段);
第八條線段由控制點(P321、 P322、 P323、 P324)形成的三次貝塞爾線段(由于 P321、P322的坐標相同,P323、P324的坐標相同,因此這條線段實際上是一條直線段)。
對于其他類型的基本圖形字幕對象,可以按照同樣的思想,將其轉換為由一次、二 次或者三次Bezier線段組成的封閉輪廓。 當字幕對象的類型為復合字幕時,將其轉換成矢量輪廓信息的方法包括以下步 驟 ①根據復合字幕對象的數據結構,將其拆分為M(M為正整數)個基本字幕對象。基 本字幕對象就是指文字字幕對象或者基本圖形字幕對象。 ②分別使用上述"文字字幕對象"和"基本圖形字幕對象"的處理方法得到這M個 基本字幕對象的矢量輪廓信息。 ③根據M個基本字幕對象的相對空間坐標,將步驟②中得到的M個矢量輪廓信息 組合在一起,形成該復合字幕對象的最終矢量輪廓信息。 將字幕對象經過上述轉換后,還需要根據字幕對象的旋轉、變形參數,將變換后的 矢量輪廓信息進行空間幾何變換。 假設字幕對象的旋轉角度為A,基本字幕對象的控制點個數為n(n為正整數),分 別為P[O]至P[n-l],則對一個基本字幕對象進行空間幾何變換的過程包括以下步驟。
a.根據基本字幕對象的外接矩形的四個頂點坐標計算基本字幕對象的中心點Q 的坐標。 b.按照如下公式修正旋轉后的P[i] (0《
x = P[i]. x-Q. x,
y = P[i].y-Q.y,
P [i]. x = Q. x+x*cos (A) _y*sin (A),
《n, i為正整數)的坐標
13
<formula>formula see original document page 14</formula>
其中,P[i].x和P[i].y分別為P[i]點橫、縱坐標,Q.x和Q.y分別為Q點的橫、縱坐標。 在將不同類型的字幕對象轉換為由一次、二次或三次Bezier曲線組成的封閉輪廓后,為了使渲染引擎在算法處理上的一致性,降低算法的復雜度,優化算法的效率,還需要將不同次數的Bezier線段統一轉換為二次Bezier線段。 將一次Bezier線段轉換為二次Bezier線段的原理為將一次Bezier線段的前后兩個控制點R0和Rl作為二次Bezier線段的第一和第三個控制點,RO和Rl的中點作為二次Bezier線段的第二個控制點。 圖4是一次Bezier線段轉換為二次貝塞爾線段示意圖,4a為轉換前的一次Bezier線段,4b為轉換后的二次Bezier線段。其中,P40 = R40, P42 = R41, P41 = (R40和R41的中點),即P41. x = (R40. x+R41. x)/2 ;P41. y = (R40. y+R41. y)/2。
將三次Bezier線段轉換為二次Bezier線段的原理為將一條三次Bezier線段轉換成兩條二次Bezier線段。 圖5中的5a和5b分別是將三次Bezier線段轉換為兩條二次Bezier線段的兩種情況示意圖。假設一個三次Bezier線段的控制點分別為R50、R51、R52、R53。 Ql是R50和R51的中點,Q2是R52和R53的中點,Q3是R51和R52的中點,Q4是Q1和Q3的中點,Q5是Q2和Q3的中點,Q6是Q4和Q5的中點,Q7是Q4和Q5構成的直線與R0和Rl構成直線的交點,Q8是Q4和Q5構成的直線與R52和R53構成直線的交點。 根據R50、 R51、 R52、 R53四點的坐標以及Bezier參數方程計算出Ql、 Q2、 Q3、 Q4、Q5、Q6、Q7、Q8的坐標如下:
Ql. xQ2. xQ3. xQ4. xQ5. xQ6. xQ7. xQ7.yQ8. xQ8.y
(R50. x+R51. x)/2, Ql. y(R52. x+R53. x)/2, Q2. y(R51. x+R52. x)/2, Q3. y(Q1. x+Q3. x)/2, Q4. y =(Q2. x+Q3. x)/2, Q5. y =(Q4. x+Q5. x)/2, Q6. y =
=(R50. y+R51. y)/2=(R52. y+R53. y)/2=(R51. y+R52. y)/2(Ql.y+Q3. y)/2(Q2. y+Q3. y)/2(Q4. y+Q5. y)/2
(3*Q1. x+3*Q4. x-RO. x_Q6. x) /4,(3*Q1. y+3*Q4. y-RO. y-Q6. y)/4 ;(3*Q2. x+3*Q5. x_R3. x_Q6. x) /4,(3*Q2. y+3*Q5. y-R3. y-Q6. y) /4。
將原來的三次Bezier線段在Q6點處分成兩條二次Bezier線段, 一條Bezier線段的三個控制點分別為R50, Q7, Q6,另一條Bezier線段的三個控制點分別為Q6, Q8, R53。
在由二次Bezier曲線組成的封閉輪廓的矢量輪廓信息中,可能存在自相交的二次Bezier線段,即封閉輪廓內含一個或多個閉合環路,如圖6、圖7和圖10所示。為了增強字幕的渲染效果,提高渲染效率,需要對這種情況進行處理,刪除或者分割閉合環路。
處理自相交的二次貝塞爾曲線的方法為首先判斷封閉輪廓G中是否存在二次貝塞爾線段自相交的情況,如果存在,則繼續判斷是相鄰二次貝塞爾線段自相交還是非相鄰二次貝塞爾線段自相交,如果是相鄰二次貝塞爾線段自相交,則將封閉輪廓G中內含的包括相鄰二次貝塞爾線段自相交的閉合環路刪除;如果是非相鄰的二次貝塞爾線段自相交,則將封閉輪廓G和其內含的包括非相鄰二次貝塞爾線段自相交的閉合環路分割成多個封閉輪廓。 判斷封閉輪廓G中是否存在二次貝塞爾線段自相交的方法為假設G中有M個二次貝塞爾線段,分別是B
、B[1]、B[2]至B[M-1];依次取出G中每個二次貝塞爾線段B[j],判斷B[j]與G中的其它二次貝塞爾線段是否相交,如果相交,則G存在自相交情況;否則,不存在自相交情況。 判斷兩條二次貝塞爾線段是否相交的方法為首先計算兩條二次貝塞爾線段的外接矩形;然后判斷兩條二次貝塞爾線段的外接矩形是否存在交集,如果存在,則這兩條二次貝塞爾線段相交,如果不存在,則這兩條二次貝塞爾線段不相交。
參照圖8,計算一條二次貝塞爾線段的外接矩形的方法為假設二次貝塞爾線段的三個控制點分別為P0、P1和P2,P0點的橫坐標為PO. x,縱坐標為PO. y ;P1點的橫坐標為PI. x,縱坐標為PI. y ;P2點的橫坐標為P2. x,縱坐標為P2. y ;計算由P0、P1和P2構成的三角形的外接矩形T, T即為該二次貝塞爾線段的外接矩形,公式如下
T. left = min (PO. x, PI. x, P2. x),
T. right = max(PO. x, PI. x, P2. x),
T. top = min (PO. y, PI. y, P2. y),
T. bottom = max (PO. y, PI. y, P2. y); 其中,T. left表示外接矩形左邊框的橫坐標,T. right表示外接矩形右邊框的橫
坐標,T. top表示外接矩形上邊框的縱坐標,T. bottom表示外接矩形下邊框的縱坐標;min
函數表示取所有參數中的最小值,max函數表示取所有參數中的最大值。 如果封閉輪廓G中存在二次貝塞爾線段自相交的情況,則判斷是相鄰二次貝塞爾
線段自相交還是非相鄰二次貝塞爾線段自相交的方法為如果B[j]與相鄰線段B[j+l]相
交,則是相鄰二次貝塞爾線段自相交,否則是非相鄰二次貝塞爾線段自相交。 參照圖6,如果是相鄰二次貝塞爾線段自相交,則將封閉輪廓G中內含的包括自相
交的相鄰二次貝塞爾線段的閉合環路刪除的方法為 假設G中有M個二次貝塞爾線段,分別是B
、B[1]、B[2]至B [M_l],兩條自相交的相鄰二次貝塞爾線段分別為B[j]和B[j+l];首先計算B[j]和B[j+l]的交點S;然后將B[j]的起始控制點與S相連構成一條新的二次貝塞爾線段B[j'],將S與B[j+l]的結束控制點相連構成一條新的二次貝塞爾線段B[j+l' ],B[j' ]、B[j+l']與封閉輪廓G中原來的二次貝塞爾線段B[O]到B[j-l]、B[j+2]到B[M-1]構成了一個新的封閉輪廓G',令G二G';最后刪除S與B[j]的結束控制點構成的封閉輪廓。圖6中(6a)為處理前的封閉輪廓G, (6b)為處理后的封閉輪廓G, (6c)為刪除的封閉輪廓。 參照圖7,如果是非相鄰二次貝塞爾線段自相交,則將封閉輪廓G和其內含的包括自相交的非相鄰二次貝塞爾線段的閉合環路分割成多個封閉輪廓的方法為
假設兩條自相交的非相鄰二次貝塞爾線段分別為B[j]和B[k], j 〈k;首先計算B[j]和B[k]的交點S;然后將B[j]的起始控制點與S相連構成一條新的二次貝塞爾線段B[j'],并將S與B[k]的結束控制點相連構成一條新的二次貝塞爾線段B[k' ],B[j']、B[k']與封閉輪廓G中原來的線段B[O]到B[j-l]、B[k+l]到B[M-1]構成了一個新的封
15閉輪廓G',令G二G';最后將S與B[j]的結束控制點和B[k]的起始控制點相連,形成了兩條新的二次貝塞爾線段,將這兩條新的二次貝塞爾線段與B[j+l]到B[k-l]中所有的二次貝塞爾線段構成了一個新的封閉輪廓G〃 ,將G〃加入到字幕對象矢量輪廓信息表。
計算字幕對象矢量輪廓信息中兩條二次Bezier曲線交點的方法,從理論上來說,可以根據兩條二次Bezier曲線的聯合參數方程計算。但這種方法是不可取的,因為不但計算量巨大,而且都是基于浮點數的運算,算法的效率會比較低。因此,本實施方式采用"二分迭代法"。該方法的核心思想為如果兩條二次Bezier線段相交,那么根據中點將這兩條二次Bezier線段分別分成兩條二次Bezier線段,得到4條二次Bezier線段;然后再按照同樣的方法,處理這4條線段,直到最終每條線段的起始控制點和結束控制點的空間直線
距離小于某一個值(通常情況下,這個值為v^),最終可以歸結為計算兩條直線段的交點。
該方法具體包括以下步驟 (I)假設兩條相交的二次貝塞爾線段分別為B[j]和B[k],將B[j]和B[k]分別進行如下處理 ①計算二次貝塞爾線段的起始控制點與結束控制點之間的空間直線距離L,L =^/(Xl — x0)2 + (yl — y0)2 ,其中,x0、y0為起始控制點橫、縱坐標,xl和yl為結束控制點橫、縱坐標; ②判斷L是否大于M,如果大于,則計算二次貝塞爾線段的中點,將二次貝塞爾線段在中點處劃分成兩條二次貝塞爾線段,所述的M-V^"; ③重復步驟①至步驟②,直到劃分后的每條二次貝塞爾線段的起始控制點與結束控制點之間的空間直線距離L小于或等于M ; (II)將B[j]和B[k]經過步驟(I)處理后,假設最終相交的兩條二次貝塞爾線段分別為B[j']和B[k'],計算B[j']的起始控制點和結束控制點構成的直線與B[k']的起始控制點和結束控制點構成的直線的交點。 本實施方式中,計算二次貝塞爾線段的中點的方法為假設二次貝塞爾線段的三
個控制點分別為P0、 Pl和P2,函數表達式為 B(t) = (l-t)2p。+2t(l-t)2p一t2p2 t G [O,l]; 令t = 0.5,計算二次貝塞爾曲線方程上的一點,該點便是二次貝塞爾線段的中點,其坐標的計算公式為B = (P0+2*Pl+P2)/4。 如圖9所示,Rl是直線(PO, Pl)的中點,R2是直線(Pl, P2)的中點,R3是直線(P2, PO)的中點,Q是直線(Rl, R2)與直線(R3, Pl)的交點。Q點便是二次Bezier曲線(P0,P1,P2)的中點。 Rl點橫坐標Rl. x = (PO. x+P1. x) /2, Rl點縱坐標Rl. y = (PO. y+P1. y) /2 ;R2點橫坐標R2. x = (Pl. x+P2. x)/2, R2點縱坐標R2. y = (Pl. y+P2. y)/2。其中,PO. x、PO. y為PO點橫、縱坐標;Pl. x、 Pl. y為Pl點橫、縱坐標;P2. x、 P2. y為P2點橫、縱坐標。
Q點的橫坐標Q. x = (R1. x+R2. x) /2 = (PO. x+2*Pl. x+P2. x) /4, Q點的縱坐標Q. y=(Rl. y+R2. y)/2 = (PO. y+2*Pl. y+P2. y)/4。 當封閉輪廓G中非相鄰二次貝塞爾線段自相交的情況處理后,分割后的封閉輪廓仍有可能存在自相交的情況。如圖IO所示,(10a)所示的封閉輪廓經過處理后,將其分割
16成(lOb)、 (10c)和(10d)所示的封閉輪廓,其中(10c)所示的封閉輪廓仍然存在自相交的情況,因此需要重復上述步驟對(10c)所示的封閉輪廓進行再處理,直到分割后的所有封閉輪廓中沒有自相交的情況發生。(10c)所示的封閉輪廓經過再處理后,分割成(lOcl)和(10c2)兩個封閉輪廓。 在字幕對象的矢量輪廓信息中,不同的封閉輪廓之間可能存在相交的情況,為了有利于字幕對象的后續渲染,增強字幕對象的最終渲染效果,需要對這種情況進行處理,在交點處將一條二次Bezier線段分割成多條二次Bezier線段。 圖11出示了本發明所述的根據交點分割字幕對象矢量輪廓中二次貝塞爾曲線的方法,包括以下步驟 (1)計算字幕對象矢量輪廓中所有的二次貝塞爾線段與其他二次貝塞爾線段的交點; (2)在每條二次貝塞爾線段的交點處,將該二次貝塞爾線段分割;
假設一條二次貝塞爾線段B的三個控制點分別是P[O] 、P[1] 、P[2],在B上有n個交點,分別為S[O]到S[n-l],每個交點對應的貝塞爾參數方程中的t值分別是S[O]. t到S[n-l]. t ; 首先在S
點處將線段B分成兩條線段Bl和Bl'; Bl的三個控制點分別為P
、Q
、S
,P
和S[O]的坐標已知,Q[O]的坐標

標為
Q
.x= (l-t)*P
. x+t*P[l]. x,Q[O].y = (l-t)*P
.y+t*P[l].y ;
Bl'的三個控制點分別為S
、R
、P[2],S
和P[2]的坐標已知,R[O]的坐
R
.x= (l-t)*P[l]. x+t*P[2]. x,R[O].y = (l_t)*P[l].y+t*P[2].y ;
其中,Q[O].x表示Q[O]點的橫坐標,Q[O].y表示Q[O]點的縱坐標,R[O]. x表示R[O]點橫坐標,R[O].y表示R[O]點縱坐標^= (S[O]. t-P[O]. t)/(P[2]. t-P[O]. t),P[O]. t為P[O]點對應的貝塞爾參數方程中的t值,P[2]. t為P[2]點對應的貝塞爾方程中的t值; 然后在S[l]點處將線段B1'分成兩條線段B2和B2',方法與步驟①相同;
以此類推,最后在S[n-l]點處將線段Bn-l'分成兩條線段Bn和Bn';最終得到N+l條分割后的線段。圖13出示了將一條二次貝塞爾線段分割成五條二次貝塞爾線段的示 圖12出示了計算字幕對象矢量輪廓中所有的二次貝塞爾線段與其他二次貝塞爾線段的交點的方法流程,包括以下步驟 ①遍歷字幕對象矢量輪廓中所有的封閉輪廓,取出一個與已取不同的封閉輪廓G[i]; ②遍歷G[i]中所有的二次Bezier線段,取出一個與已取不同的二次貝塞爾線段B[j]; ③遍歷該字幕對象矢量輪廓中除B[j]之外的所有二次貝塞爾線段,取出一個與
17已取不同的二次貝塞爾線段B[k]; 判斷B[j]與B[k]的外接矩形是否存在交集,如果不存在,則轉至步驟③;如果存在,則計算B[j]與B[k]之間的交點。計算B[j]與B[k]之間的交點與上述計算自相交的二次貝塞爾線段的交點的原理相同,此處不再贅述。 本發明所述的方法并不限于上述具體實施方式
,本領域技術人員根據本發明的技術方案得出其他的實施方式,同樣屬于本發明的技術創新范圍。
權利要求
一種根據交點分割字幕對象矢量輪廓中二次貝塞爾曲線的方法,包括以下步驟(1)計算字幕對象矢量輪廓中所有的二次貝塞爾線段與其他二次貝塞爾線段的交點;(2)在每條二次貝塞爾線段的交點處,將該二次貝塞爾線段分割;假設一條二次貝塞爾線段B的三個控制點分別是P
、P[1]、P[2],在B上有n個交點,分別為S
到S[n-1],每個交點對應的貝塞爾參數方程中的t值分別是S
.t到S[n-1].t;首先在S
點處將線段B分成兩條線段B1和B1′;B1的三個控制點分別為P
、Q
、S
,P
和S
的坐標已知,Q
的坐標為Q
.x=(1-t)*P
.x+t*P[1].x,Q
.y=(1-t)*P
.y+t*P[1].y;B1′的三個控制點分別為S
、R
、P[2],S
和P[2]的坐標已知,R
的坐標為R
.x=(1-t)*P[1].x+t*P[2].x,R
.y=(1-t)*P[1].y+t*P[2].y;其中,Q
.x表示Q
點的橫坐標,Q
.y表示Q
點的縱坐標,R
.x表示R
點橫坐標,R
.y表示R
點縱坐標;t=(S
.t-P
.t)/(P[2].t-P
.t),P
.t為P
點對應的貝塞爾參數方程中的t值,P[2].t為P[2]點對應的貝塞爾方程中的t值;然后在S[1]點處將線段B1′分成兩條線段B2和B2′,方法與在S
點處將線段B分成兩條線段B1和B1′的方法相同;以此類推,最后在S[n-1]點處將線段Bn-1′分成兩條線段Bn和Bn′;最終得到N+1條分割后的線段。
2. 如權利要求1所述的一種根據交點分割字幕對象矢量輪廓中二次貝塞爾曲線的方 法,其特征在于步驟(1)中所述的計算字幕對象矢量輪廓中所有的二次貝塞爾線段與其 他二次貝塞爾線段的交點的方法包括以下步驟① 遍歷字幕對象矢量輪廓中所有的封閉輪廓,取出一個與已取不同的封閉輪廓G[i];② 遍歷G[i]中所有的二次Bezier線段,取出一個與已取不同的二次貝塞爾線段 B[j];③ 遍歷該字幕對象矢量輪廓中除B[j]之外的所有二次貝塞爾線段,取出一個與已取 不同的二次貝塞爾線段B[k];④ 判斷B[j]與B[k]的外接矩形是否存在交集,如果不存在,則轉至步驟③;如果存在, 則計算B[j]與B[k]之間的交點:a. 計算B[j]的起始控制點與結束控制點之間的空間直線距離L,計算公式為L= V(xl - x0)2 + (yl - y0)2 ,其中x0、 y0是起始控制點坐標,xl、 yl是結束控制點 坐標;b. 判斷L《V^"是否成立,如果不成立,則在中點處將B[j]分成兩條二次貝塞爾線段;c. 對步驟b分割后的兩條二次貝塞爾線段進行與步驟a至步驟b同樣的操作,直到 B[j]分割后的所有二次貝塞爾線段的起始控制點與結束控制點之間的空間直線距離均小于等于V^;d. 采用與處理B[j]相同的方法處理B[k];e.計算B[j]經過分割后的所有二次貝塞爾線段起始控制點與結束控制點之間的直線 段與B[k]經過分割后的所有二次貝塞爾線段起始控制點與結束控制點之間的直線段的交 點。
3.如權利要求2所述的一種根據交點分割字幕對象矢量輪廓中二次貝塞爾曲線的 方法,其特征在于,步驟④中在中點處將一條貝塞爾線段分成兩條二次貝塞爾線段的方法為假設二次貝塞爾線段的三個控制點分別為P0、P1和P2,函數表達式為<formula>formula see original document page 3</formula>令t = 0. 5,計算二次貝塞爾曲線方程上的一點Q,該點便是二次貝塞爾線段的中點,其 坐標的計算公式為<formula>formula see original document page 3</formula>將該二次貝塞爾曲線從中點Q處分成兩條二次貝塞爾線段,其中一條的三個控制點分 別為P0、 Rl、 Q,另一條的三個控制點分別為Q、 R2、 P2。
全文摘要
本發明公開了一種根據交點分割字幕對象矢量輪廓中二次貝塞爾曲線的方法,屬于廣電行業電視節目制播機構的字幕編播技術領域。該方法首先計算字幕對象矢量輪廓中所有的二次貝塞爾線段與其他二次貝塞爾線段的交點S
到S[n-1];然后在S
點處將線段B分成兩條線段B1和B1′;在S[1]點處將線段B1′分成兩條線段B2和B2′;以此類推,最后在S[n-1]點處將線段Bn-1′分成兩條線段Bn和Bn′,最終得到N+1條分割后的線段。采用本發明所述的方法有利于字幕對象的后續渲染,增強字幕對象的最終渲染效果。
文檔編號H04N5/278GK101764943SQ20081022586
公開日2010年6月30日 申請日期2008年11月4日 優先權日2008年11月4日
發明者吳正斌 申請人:新奧特(北京)視頻技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 南宁市| 宿迁市| 红桥区| 翼城县| 鄂托克旗| 鄢陵县| 繁峙县| 乐山市| 浠水县| 磐石市| 黄平县| 大庆市| 甘泉县| 民权县| 吴堡县| 磐石市| 绥中县| 南雄市| 麟游县| 乌兰察布市| 武夷山市| 磐石市| 娄烦县| 舒兰市| 巴林右旗| 南丰县| 凌云县| 元阳县| 神池县| 和静县| 梁山县| 焦作市| 乌苏市| 甘南县| 天台县| 郯城县| 四平市| 乌鲁木齐县| 临武县| 高州市| 讷河市|