国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法

      文檔序號:7927642閱讀:402來源:國知局
      專利名稱:一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于廣電行業(yè)電視節(jié)目制播機(jī)構(gòu)的字幕編播技術(shù)領(lǐng)域,具體涉及 一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法。
      背景技術(shù)
      在字幕編播領(lǐng)域中,字幕對象可分為文字和圖形兩個部分。文字包括世 界上各種語種的文字,圖形包括各種規(guī)則形狀的圖形、由基本圖形元素組成 的復(fù)合圖形和任意不規(guī)則圖形。從計算機(jī)圖形學(xué)的角度來說,可以將所有類 型的字幕對象視為由一系列直線和曲線組成的圖形。圖形通常由點(diǎn)、線、面、 體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性組成。從處理技術(shù)上
      看,圖形主要分為兩類 一類是基于線條信息表示的,如工程圖、等高線地 圖、曲面的線框圖等;另一類是明暗圖,也就是通常所說的真實(shí)感圖形。
      字幕渲染是計算機(jī)圖形學(xué)、計算機(jī)數(shù)字圖像處理與電視臺的節(jié)目制作業(yè) 務(wù)相結(jié)合的技術(shù)。從計算機(jī)數(shù)字圖像處理的角度來說,對字幕對象的渲染包 括兩個方面第一,基于像素或子像素的一系列靜態(tài)處理,如圖象增強(qiáng)、二值 化處理、邊緣檢測、模糊處理、浮雕、邊緣反走樣、亮度貼圖、材質(zhì)貼圖、 防抖動、橢圓變形、多邊形變形、勾邊、增亮、銳化、柔化、凸起、彩色鉛 筆、油畫龜裂、交叉影線、剪樣、玻璃、邊緣增亮、墨水輪廓畫、瓷磚、信 紙、拼綴物、塑料包裝、水波紋、海綿、噴涂筆、著色玻璃、高斯模糊等特 效;第二,基于關(guān)鍵幀的一系列動態(tài)處理,包括水波、旗飄、螺旋、扭曲、 三維投影、火焰、球變、三維形變、彎曲、幻影、巻頁、折疊、禮花、百葉 窗、碎裂、水波、波動、劃像、轉(zhuǎn)球、螺旋、旗飄、波動虛影、蝶變、流光、 凸鏡、萬花筒、激光、飛光、魔幻螺旋、運(yùn)動模糊、徑向模糊、波浪、波浪 倒影、回旋等特效。
      字幕的渲染效果是衡量一個字幕系統(tǒng)的重要指標(biāo),特別是在反走樣處理、 小字的細(xì)節(jié)處理、立體邊的處理、虛邊、虛影、真實(shí)三維視覺感、三維字倒角、紋理、光照的處理等方面。
      在現(xiàn)有的字幕系統(tǒng)中,字幕渲染存在著以下問題
      第一,將文本字幕與圖形字幕的渲染區(qū)別開來,而且不同的圖形元素也 使用不同性質(zhì)的幾何矢量來描述。這個問題在實(shí)現(xiàn)和應(yīng)用兩個方面給字幕系 統(tǒng)帶來了很多的不利。從實(shí)現(xiàn)的角度來說,會導(dǎo)致一個字幕系統(tǒng)中存在多個 完全不同的渲染引擎和渲染流程,而且如果要支持一種新的字幕對象,則需 要定義并實(shí)現(xiàn)新的渲染引擎,從而造成字幕系統(tǒng)的功能擴(kuò)展性存在很大的局
      限性。從應(yīng)用的角度來說,帶來兩方面致命的問題 一方面,不同類型的字 幕對象最終展現(xiàn)的效果不一致,例如兩個不同類型的字幕對象同樣是加了 2 個像素的全邊,但由于經(jīng)過了不同的渲染引擎,最終的處理結(jié)果可能是不同 的,在進(jìn)行字幕創(chuàng)作時給使用者帶來了諸多不便;另一方面,在字幕系統(tǒng)中 針對字幕對象的操作不得不進(jìn)行特定的限制,例如,有的字幕對象支持幾何 旋轉(zhuǎn)、幾何縮放,有的則不支持,有的字幕對象支持任意角度的加邊、加影, 有的則只支持固定角度的加邊、加影,有的甚至不支持。所有這些問題都會 影響字幕系統(tǒng)的普遍適用性和功能完備性。
      第二,字幕渲染引擎的核心算法都是基于浮點(diǎn)運(yùn)算,例如三角函數(shù)運(yùn)算、 反三角函數(shù)運(yùn)算、除法運(yùn)算、冪運(yùn)算、開方運(yùn)算等。這會導(dǎo)致兩方面的問題 一方面,由于最終處理結(jié)果要求的是整數(shù)型的像素值,因此在渲染引擎算法 的不同階段會進(jìn)行取整運(yùn)算,這就會造成計算上的累計誤差,導(dǎo)致最終的字 幕效果在局部細(xì)節(jié)上存在缺陷,例如筆畫多的文字模糊不清晰、筆畫粘連等; 另一方面,這些浮點(diǎn)運(yùn)算都是占用大量機(jī)器指令的數(shù)學(xué)運(yùn)算,大大降低了整 個字幕系統(tǒng)的工作效率,影響到字幕制作和播出的時效性,特別是在高清晰 度電視字幕的制作中,由于其數(shù)據(jù)量是標(biāo)清的5倍,這一點(diǎn)表現(xiàn)的更加明顯。
      第三,作為字幕渲染重要指標(biāo)之一的邊緣反走樣的效果不甚理想,甚至 無法達(dá)到實(shí)用的程度。這是因?yàn)楝F(xiàn)有的字幕系統(tǒng)在進(jìn)行反走樣處理時,完全 依賴當(dāng)前像素空間的圖像處理方法,沒有字幕幾何矢量信息的參與,也就無 法實(shí)現(xiàn)基于子像素的處理,使得現(xiàn)有的字幕系統(tǒng)的最終渲染效果出現(xiàn)比較明 顯的邊緣鋸齒效應(yīng),影響字幕展現(xiàn)的效果。
      由于上述同樣的原因,在對字幕對象進(jìn)行基于濾鏡管道的圖像處理時, 也會彭響字幕的最終效果?,F(xiàn)有的字幕系統(tǒng)的渲染流程通常是先進(jìn)行面邊影的貼圖,得到一個圖像,然后將這個圖像放入濾鏡管道中,再進(jìn)行一系列的 圖像處理。但是由于沒有字幕幾何矢量信息的參與,濾鏡管道的處理會破壞 前者反走樣后的效果。也就是說,在本來就不理想的邊緣處理上累積了新的 邊緣鋸齒效應(yīng)。
      由于上述同樣的原因,對于稍微復(fù)雜一些的圖形元素的字幕對象,在圖 形拐點(diǎn)處出現(xiàn)振蕩效應(yīng),導(dǎo)致圖形輪廓不平滑。例如常用的圓角矩形對象, 由四個角的圓弧與四條直線組成,在圓弧與直線相接的地方,就會出現(xiàn)凸凹 不平的現(xiàn)象。
      第四, 一個字幕對象在進(jìn)行漸變色渲染時,應(yīng)該是按照這個物體的矢量 輪廓進(jìn)行徑向的漸變色彩處理,但是在現(xiàn)有的字幕系統(tǒng)中,對漸變色的渲染 處理是將漸變色放到一個內(nèi)存塊中,在渲染時,還是采取了對應(yīng)像素貼圖的 方法。這就使得現(xiàn)有的字幕系統(tǒng)無法實(shí)現(xiàn)真正意義上的漸變色的渲染效果。
      第五,現(xiàn)有的字幕系統(tǒng)無法實(shí)現(xiàn)增加多個外邊、多個內(nèi)邊、多個側(cè)面立 體邊、多個影子。簡單的面、邊、影的疊加的字幕展現(xiàn)已經(jīng)無法滿足電視節(jié) 目制作對字幕系統(tǒng)的要求。
      第六,現(xiàn)有的字幕系統(tǒng)的渲染都不是基于Bezier曲線輪廓,但是由于 TrueType字庫中的字模都是使用Bezier曲線來描述的,所以就需要將從字 庫中提取出來的Bezier曲線轉(zhuǎn)換成另外一種形式的矢量,由于不同矢量表達(dá) 式之間的信息不對稱性,在轉(zhuǎn)換過程中會出現(xiàn)信息的損失,從而使得筆畫的 形狀變形,導(dǎo)致筆畫粗細(xì)不均勻,影響字型展現(xiàn)的美觀。
      第七,現(xiàn)有的字幕系統(tǒng)無法將文字字幕對象轉(zhuǎn)換為圖形字幕對象,從而 無法實(shí)現(xiàn)字符變形、字符倒影、字符反轉(zhuǎn)、曲線擺放、藝術(shù)字等功能,無法 滿足高級的字幕應(yīng)用需求。
      第八,現(xiàn)有的字幕系統(tǒng)無法實(shí)現(xiàn)多種不同類型的加邊方式,如尖角邊、 圓角邊、方角邊等,這在一定程度上影響了字幕應(yīng)用的廣泛性。
      第九,現(xiàn)有的字幕系統(tǒng)無法實(shí)現(xiàn)對任意形狀不規(guī)則圖形的支持,從而無 法應(yīng)對日益重要的地理信息描述、氣象預(yù)報、綜合資訊等類型的字幕制作。
      貝塞爾(Bezier)曲線是計算機(jī)圖形學(xué)中 一種重要的多項(xiàng)式參數(shù)曲線。 平面中的^f壬意N (N〉=2)個點(diǎn)都可以構(gòu)成一個Bezier曲線,這N個點(diǎn)稱為Bezier曲線的控制點(diǎn),N個點(diǎn)組成的多邊形稱為Bezier曲線的控制多邊形。 N次Bezier曲線的參凄t方程如下
      B") = E ( : )p"")"— = P。(i-""+()Pi(i-W_1f+.' '+P,"" , ^ e [o' i]
      其中,P0、 P,..... Pn是Bezier曲線的控制點(diǎn)。
      由此, 一次Bezier曲線的參數(shù)表達(dá)式為 B(£) = P0 I (Pi — P())f = (1 -肌卜iPi , f G
      一次Bezier曲線就是線性Bezier曲線,實(shí)際上是兩個控制點(diǎn)P。和 之間的直線段。
      二次Bezier曲線的參凄t表達(dá)式為
      B(*) = (1 - ffPo卜測l - t)Pi I《2P2 , * € [(), ij 三次Bezier曲線的參數(shù)表達(dá)式為
      B(纟)=P(,(l 纟)3卜3P-(1 -纟)2 I 3P2f2(l - I' P:/ ,力G
      至P[n-l],所述的n為正整數(shù);
      ① 根據(jù)字幕對象的外接矩形的四個頂點(diǎn)坐標(biāo)計算基本字幕對象的中心點(diǎn) Q的坐標(biāo);
      ② 按照如下公式修正旋轉(zhuǎn)后的P[i]的坐標(biāo),(Ki《n, i為正整數(shù); x = P[i]. x - Q. x,
      y = P[i].y _ Q.y,
      P[i].x = Q. x + x*cos (A) - y*sin(A), P[i].y = Q. y + x*sin(A) + y*cos (A);
      其中,P[i].x和P[i].y分別為P[i]點(diǎn)才黃、縱坐標(biāo),Q. x和Q. y分別為Q 點(diǎn)的橫、縱坐標(biāo)。
      如上所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其中,所述的方 法在將當(dāng)前字幕對象鏈表中所有的字幕對象轉(zhuǎn)換成由一次、二次或者三次貝 塞爾線段組成的包括N個封閉輪廓的矢量輪廓信息后,還包括將所有字幕對 象矢量輪廓信息中的一次和三次貝塞爾線段轉(zhuǎn)換為二次貝塞爾線段的步驟。
      如上所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其中,將字幕對 象矢量輪廓信息中的一次和三次貝塞爾線段轉(zhuǎn)換為二次貝塞爾線段的方法包 括以下步驟
      遍歷矢量輪廓信息,取出一個與已取不同的封閉輪廓G;
      ② 遍歷封閉輪廓G,取出 一個與已取不同的貝塞爾線段B;
      ③ 判斷貝塞爾線段B是幾次貝塞爾線段,如果是一次或者三次貝塞爾線 段,則將其轉(zhuǎn)換為二次貝塞爾線段;
      ④ 重復(fù)步驟②至步驟③,直到處理完封閉輪廓G中所有的貝塞爾線段;
      ⑤ 重復(fù)步驟①至步驟④,直到處理完矢量輪廓信息中所有的封閉輪廓。
      如上所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,步驟③中將一次 貝塞爾線段轉(zhuǎn)換為二次貝塞爾線段的方法為假設(shè)一次貝塞爾線段的前后兩 個控制點(diǎn)分別為R0和Rl,將RO和Rl分別作為二次貝塞爾線段的第一個控 制點(diǎn)和第三個控制點(diǎn),將R0和R1的中點(diǎn)作為二次貝塞爾線段的第二個控制,、。
      如上所述的 一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,步驟③中將三次
      貝塞爾線段轉(zhuǎn)換為二次貝塞爾線段的方法為將一條三次貝塞爾線段轉(zhuǎn)換為 兩條二次貝塞爾線段;
      假設(shè)三次貝塞爾線段的控制點(diǎn)分別為R0、 Rl、 R2和R3; Ql為R0和Rl 的中點(diǎn),Ql. x = (RO. x + Rl. x) /2, Ql. y - (RO. y + Rl. y) /2; Q2是R2和 R3的中點(diǎn),Q2.x = (R2.x + R3.x)/2, Q2. y = (R2. y + R3. y)/2; Q3是Rl 和R2的中點(diǎn),Q3. x = (Rl.x + R2. x)/2, Q3. y = (Rl. y + R2.y)/2; Q4是 Ql和Q3的中點(diǎn),Q4. x = (Ql.x + Q3. x)/2, Q4. y = (Q1. y + Q3. y)/2; Q5 是Q2和Q3的中點(diǎn),Q5.x = (Q2.x + Q3.x)/2, Q5. y = (Q2. y + Q3.y)/2; Q6是Q4和Q5的中點(diǎn),Q6. x = (Q4. x + Q5. x)/2, Q6. y = (Q4. y + Q5. y)/2; Q7是Q4和Q5構(gòu)成的直線與R0和Rl構(gòu)成直線的交點(diǎn),Q7. x = (3*Q1. x + 3*Q4.x — RO. x — Q6. x)/4, Q7. y = (3*Q1, y + 3*Q4. y — RO. y — Q6.y)/4; Q8是Q4和Q5構(gòu)成的直線與R2和R3構(gòu)成直線的交點(diǎn),Q8. x = (3*Q2. x + 3*Q5.x — R3. x — Q6.x)/4, Q8. y = (3*Q2. y + 3*Q5. y — R3. y — Q6.y)/4;
      將三次貝塞爾線段在Q6點(diǎn)處分成兩條二次貝塞爾線段,其中一條二次貝 塞爾線段的三個控制點(diǎn)分別為RO, Q7, Q6,另一條貝塞爾線段的三個控制點(diǎn) 分別為Q6, Q8, R3。
      本發(fā)明所述的方法,由于Bezier曲線的諸多特性,因此將其應(yīng)用于字幕 系統(tǒng)中具有如下優(yōu)點(diǎn)。
      (1) 對于文字類型的字幕對象,可以直接使用操作系統(tǒng)的TrueType字 庫,無須轉(zhuǎn)換,確保字型與操作系統(tǒng)的字型一致。而且TrueType字體采用直 線和二次Bezier曲線來描述字符的輪廓,結(jié)合了光柵技術(shù)和矢量技術(shù)的優(yōu) 點(diǎn),克服了以往所有字體的缺點(diǎn),字體可以任意放大、縮小、旋轉(zhuǎn)和變形而 不會影響輸出質(zhì)量,提供了真正的設(shè)備無關(guān)性。二次Bezier曲線既能保證輪 廓曲線的光滑性,又有利于提高字形還原速度。
      (2) Bezier曲線可以用來表達(dá)一個字幕系統(tǒng)中所有的圖形元素。包括 各種規(guī)則形狀的圖形、由基本圖形元素組成的復(fù)合圖形和任意不規(guī)則圖形。(3) 根據(jù)Bezier曲線的凸包特性,可以很簡單快捷的計算出來一個字 幕對象的外接矩形,方便了字幕的后續(xù)處理。
      (4) 根據(jù)Bezier曲線的幾何不變性,解決了點(diǎn)坐標(biāo)和象素之間的相互 轉(zhuǎn)換問題,從而保證了在不同輸出設(shè)備上不出現(xiàn)變形等問題。
      (5) Bezier曲線的無限可分性、對稱性、變差縮減性,對于后續(xù)的基 于Bezier曲線輪廓的渲染引擎算法處理提供了很多的方便性和簡易性。
      (6) 將字符轉(zhuǎn)換為Bezier曲線,在字幕系統(tǒng)中便可以實(shí)現(xiàn)造字功能, 從而無須通過第三方的造字工具。還可以實(shí)現(xiàn)字符變形、字符倒影、字符反 轉(zhuǎn)、曲線擺放等功能,滿足了高級的字幕應(yīng)用需求。


      圖1是本發(fā)明所述的方法流程圖2是具體實(shí)施方式
      中將文字字幕對象轉(zhuǎn)換為矢量輪廓信息的流程圖; 圖3是具體實(shí)施方式
      中將字幕對象矢量輪廓信息中的一次和三次Bezier
      線段轉(zhuǎn)換為二次Bezier線段的流程圖4是具體實(shí)施方式
      中將橢圓圖元轉(zhuǎn)換成由三次Bez i er線段組成的封閉
      輪廓示意圖5是具體實(shí)施方式
      中將波浪旗飄圖元轉(zhuǎn)換成由三次Bez i er線段組成的 封閉輪廓示意圖6是具體實(shí)施方式
      中將心形圖元轉(zhuǎn)換成三次Bez ier線段組成的封閉輪 廓示意圖7是一次Bezier線段轉(zhuǎn)換成二次貝塞爾線段示意圖,7a為轉(zhuǎn)換前的 一次Bezier線段示意圖,7b為轉(zhuǎn)換后的二次Bezier線段示意圖8是三次Bezier線段轉(zhuǎn)換成兩條二次Bezier線段示意圖,8a—種三 次Bezier線段轉(zhuǎn)換前后的對比示意圖,8b是另一種三次Bezier線,殳轉(zhuǎn)換前 后的對比示意圖。
      具體實(shí)施例方式
      下面結(jié)合具體實(shí)施方式
      和附圖對本發(fā)明進(jìn)行詳細(xì)描述。
      圖1出示了本發(fā)明所述的將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法流程,主要包括以下步驟。
      (1 )從當(dāng)前字幕對象鏈表中取出一個與已取不同的字幕對象。
      (2)判斷字幕對象的類型,根據(jù)字幕對象的類型進(jìn)行相應(yīng)的處理,將字
      幕對象轉(zhuǎn)換成由一次、二次或者三次Bezier線段組成的包括N( N為正整凄t) 個封閉輪廓的矢量輪廓信息。
      字幕對象的類型包括文字字幕、基本圖形字幕和復(fù)合字幕。復(fù)合字幕是 指包括文字和基本圖形的字幕。
      如果字幕對象的類型為文字字幕,則可以直接使用操作系統(tǒng)的TrueType 字庫,無需轉(zhuǎn)換。圖2出示了獲取文字字幕在TrueType字庫中的矢量輪廓信 息的方法流程,包括以下步驟
      a. 根據(jù)文字字幕對象的字體名稱,使用操作系統(tǒng)提供的API (CreateFont )創(chuàng)建邏輯字體對象F;
      b. 使用操作系統(tǒng)^是供的API ( SelectObject ),將邏輯字體對象Fi殳置 到操作系統(tǒng)的資源描述表中,并保存操作系統(tǒng)原來的邏輯字體;
      c. 根據(jù)當(dāng)前字符的Unicode編碼,使用操作系統(tǒng)提供的API (GetGlyphOutline),從操作系統(tǒng)的當(dāng)前資源描述表中獲取當(dāng)前字符的矢量
      輪廓信息在TrueType字庫中占用的內(nèi)存字節(jié)數(shù)B;
      d. 根據(jù)當(dāng)前字符占用的內(nèi)存字節(jié)數(shù)B,分配內(nèi)存P;
      e. 根據(jù)當(dāng)前字符的Unicode編碼和占用的內(nèi)存P,再次使用操作系統(tǒng)提 供的API (GetGlyphOutline),從操作系統(tǒng)當(dāng)前資源描述表中獲取當(dāng)前字符 的矢量輪廓信息G,并恢復(fù)操作系統(tǒng)原來的邏輯字體。
      如果字幕對象的類型為基本圖形字幕,則將其轉(zhuǎn)換成由若干條三次貝塞 爾線段組成的封閉輪廓的矢量輪廓信息,主要是根據(jù)基本圖形的幾何參數(shù)確 定每條貝塞爾線段上的控制點(diǎn)坐標(biāo),具體包括以下步驟
      ① 根據(jù)基本圖形字幕的幾何形狀,將基本圖形字幕劃分成多條曲線段, 所述的曲線段包括直線段、正玄或余玄曲線段、圓弧段和橢圓弧段;
      ② 根據(jù)基本圖形字幕的外接矩形、每條曲線段的參數(shù)方程計算出每條曲線段轉(zhuǎn)換成三次貝塞爾線段后的起始控制點(diǎn)和結(jié)束控制點(diǎn)的坐標(biāo);
      ③對每條三次貝塞爾線段,根據(jù)起始控制點(diǎn)和結(jié)束控制點(diǎn)的坐標(biāo)和三次
      貝塞爾參數(shù)方程,分別計算t-l/3和1=2/3處的另外兩個控制點(diǎn)的坐標(biāo)。
      以基本圖形字幕為橢圓圖元為例,如圖4所示。首先,根據(jù)橢圓圖元與 其外4妻矩形的四個交點(diǎn)P400、 P403、 P406和P409將其分成四條曲線,爻,分 別為從P400到P403、從P403到P406、從P406到P409和從P409到P400。 將每條曲線段轉(zhuǎn)換成三次貝塞爾曲線后,從P400到P403的三次貝塞爾線段 的四個控制點(diǎn)分別為P400、 P401、 P402和P403,從P403到P406的三次貝 塞爾線l殳的四個控制點(diǎn)分別為P403、 P404、 P405和P406,從P406到P409 的三次貝塞爾線—敬的四個控制點(diǎn)分別為P406、 P407、 P408和P409, /人P409 到P400的三次貝塞爾線段的四個控制點(diǎn)分別為P409、 P410、 P411和P400。
      然后,根據(jù)橢圓圖元的外接矩形的四個頂點(diǎn)坐標(biāo)計算出橢圓中心點(diǎn)的坐 標(biāo)(a, b)、橫軸半徑ra和縱軸半徑rb。每條三次貝塞爾線段的各個控制 點(diǎn)坐標(biāo)的計算公式如下
      令PinA = ra * 0.55179445, PinB = rb * 0.55179445;
      <formula>formula see original document page 16</formula>。
      P400. x表示P400點(diǎn)的4黃坐標(biāo),P400. y表示P400點(diǎn)的縱坐標(biāo)。本
      實(shí)施方式中,其他類似的表示方式的含義與P400相同以基本圖形字幕為波浪旗飄圖元為例,如圖5所示。首先,根據(jù)兩條曲
      線段與兩條直線—?dú)W的四個交點(diǎn)P500、 P503、 P506和P509將其分成四條曲線 段,分別為從P500到P503、從P503到P506、從P506到P509和從P509到 P500。將每條曲線段轉(zhuǎn)換成三次貝塞爾曲線后,從P500到P503的三次貝塞 爾線段的四個控制點(diǎn)分別為P500、 P501、 P502和P503,從P503到P506的 三次貝塞爾線段的四個控制點(diǎn)分別為P503、 P504、 P505和P506,從P506到 P509的三次貝塞爾線,殳的四個控制點(diǎn)分別為P506、 P507、 P508和P509,從 P509到P500的三次貝塞爾線段的四個控制點(diǎn)分別為P509、 P510、 P511和 P500。
      已知波浪旗飄形圖元的外^接矩形的四點(diǎn)坐標(biāo),可以計算出該圖元外接矩 形的寬度和高度,分別為W5和H5。此外,根據(jù)已知的調(diào)節(jié)波浪旗飄圖元的 水平和垂直幅度的參數(shù)fx和fy,可以計算出來P500點(diǎn)的坐標(biāo)為(a, b) , a = fx*W, b = fy*H。
      每條三次貝塞爾線段上控制點(diǎn)坐標(biāo)的計算過程包括以下步驟。 (a )基于正玄曲線方程,根據(jù)P500點(diǎn)坐標(biāo)計算出P503點(diǎn)坐標(biāo)。
      P503. x = W5;
      P503. y = b + b*0. 9*sin((W5—a) *2*PI/W5)。
      (b)以P500點(diǎn)為起點(diǎn),以P503點(diǎn)為終點(diǎn),才艮據(jù)三次貝塞爾曲線方程, 分別計算t=l/3和t=2/3處的P501點(diǎn)和P502點(diǎn)的坐標(biāo)。
      P501. x= ((m"C2-m2承c》—(a"!承C2-a2承c0 *P500. x_ (d"C2-c"d2) *P503. x) /
      (b"C2-b2承C"i)。
      P502. x-((m"b2-m2,)-(a"b2-a2,) *P500. x-(d"b2-d2,) *P503. x) / 其中,m^a+(W5-a)/3, m2=a+(W5-a) *2/3; t廣l. 0/3, t2=2. 0/3;
      a^a-1,) * a-to * a-1,);
      b一n" (1-1,) * (l-t一 ; c廣3n"t" (l-t》;
      a2=(l-12) * (l-t2) * (1-12);b2=3*t2* (l-t2) * (1-12); c2=3*t2*t2* (l-t2);
      d2=t2*〖2*〖2。
      P501, y= ((n一C2-ri2^) - (a"c2-a *") *P500. y- (d"c廠c"d2) *P503, y) / (b"c廠b C"i)。
      P502. y= ((n"b2-ri2,) - (a"b2-a2氺b"i) *P500. y- (d,b2-d2承b"i) *P503. y) /
      其中,= b - b*0. 9*sin((W5—a) *2*PI/(3*W5)), n2 = b - b*0. 9*sin((W5-a) *2*PI*2/(3*W5))。 (c)基于正玄曲線方程,根據(jù)P500點(diǎn)坐標(biāo)計算出P506點(diǎn)坐標(biāo)。 P506. x = W5 - a;
      P506.y = H5 - b - b*0. 9 * s in ((W5-a) *2*PI/W5) U)計算P509點(diǎn)坐標(biāo)。 P509. x = 0; P509. y = H5 - b
      (e)以P506點(diǎn)為起點(diǎn),以P509點(diǎn)為終點(diǎn),才艮據(jù)三次貝塞爾曲線方程, 分別計算t=l/3和t-2/3處的P507點(diǎn)和P508點(diǎn)坐標(biāo),計算方法與計算P501 點(diǎn)、P502點(diǎn)的坐標(biāo)相同。
      (f )P504點(diǎn)坐標(biāo)等于P503點(diǎn)坐標(biāo),P505點(diǎn)坐標(biāo)等于P506點(diǎn)坐標(biāo),P510 點(diǎn)坐標(biāo)等于P509點(diǎn)坐標(biāo),P511點(diǎn)坐標(biāo)等于P500點(diǎn)坐標(biāo)。之所以要重復(fù)這幾 個點(diǎn),是為了使得該字幕對象的封閉矢量輪廓信息中的每條貝塞爾線段都是 三次貝塞爾線_歐。實(shí)際上,由控制點(diǎn)P503、 P504、 P505、 P506形成的三次貝 塞爾線段,以及由控制點(diǎn)P509、 P510、 P511、 P500形成的三次貝塞爾線4殳是 一條直線段。
      最后,獲得的字幕對象的矢量輪廓信息由四條三次貝塞爾線段組成,分 別為是由控制點(diǎn)(P500、 P501、 P502、 P503)形成的三次貝塞爾線辜更,由控制 點(diǎn)(P503、 P504、 P505、 P506)形成的三次貝塞爾線段,由控制點(diǎn)(P506、 P507、 P508、 P509)形成的三次貝塞爾線段,以及由控制點(diǎn)(P509、 P510、 P511、 P512) 形成的三次貝塞爾線段。以基本圖形字幕為心形圖元為例,如圖6所示。已知心形圖元的外接矩
      形的四個頂點(diǎn)坐標(biāo),可以計算出該圖元的寬度和高度,分別為W6和H6。首 先將該圖元分成8條曲線段,分別為從P600到P603、從P603到P606、從 P606到P609、從P609到P612、從P612到P615、從P615到P618、 P618到 P620,從P620到P600。將每條曲線段轉(zhuǎn)換成三次貝塞爾線段后各個控制點(diǎn) 坐標(biāo)的計算過程包括以下步驟。
      (i) 首先根據(jù)心形圖元的形狀特點(diǎn),計算點(diǎn)P600、 P603、 P606和P"9
      的坐標(biāo)。
      P600.x = 0. 73*W6 + 0. 27*W6*cos (A), P600. y = 0. 25*H6 - 0. 25*H6*s in (A); P603, x = 0. 73*W6 + 0. 27*W6*cos (PI/3+A), P603.y = 0. 25*H6 - 0. 25*H6*s in (PI/3+A); P606. x = 0. 73*W6 + 0. 27*W6*cos (2*PI/3+A), P606.y = 0. 25*H6 - 0. 25*H6*s in (2*PI/3+A); P609.x = 0.73*W6 + 0. 27*W6*cos (PI+A), P609. y = 0. 25*H6 - 0. 25*H6*s in (PI+A)。 其中PI和A為常數(shù),PI = 3. 1415926, A=-0. 5535442。
      (ii) 利用三次貝塞爾曲線方程,以P600點(diǎn)為起點(diǎn),以P603點(diǎn)為終點(diǎn), 分別計算t=l/3和t=2/3處的P601點(diǎn)和P602點(diǎn)的坐標(biāo)。三次貝塞爾曲線方 程的矩陣形式如下
      <formula>formula see original document page 19</formula><formula>formula see original document page 20</formula>[o,i]
      將上面矩陣展開后,得到
      X(t) = A0+ A"t + A2*t2+ A3*t3
      Y(t) = B0+ B^t + B2*t2+ B3*t3
      其中,A0=X0; A"-3X。+3X] A2 = 3X。 — 6X, + 3X2; A3 = -X0 + 3X,-3X2+X3; B0=Y0; B廣-3Y。+3Y; B2 = 3Y0 - 6Y, + 3Y2; B3 =-Y0 + 3Y, - 3Y2
      + Y3。
      由于P600點(diǎn)和P603點(diǎn)的坐標(biāo)X0、 X3、 Y0、 Y3已知,P601點(diǎn)的t值為1/3, P602點(diǎn)的t值為2/3,因此可以列出一個如下四元一次方程組 X, = A0+ Ap(1/3) + A2* (l/3)2+ A3*(l/3)3 Y, = B0+ Bp(1/3) + B2*(l/3)2+ B3*(l/3)3 X2 = A0+ A^(2/3) + A2*(2/3)2+ A3*(2/3)3 Y2 = B0+ B"(2/3) + B2*(2/3)2+ B3*(2/3)3
      解該方程組,即可得到P601和P602點(diǎn)的坐標(biāo)X2、 Y2的值。
      (iii) 利用三次Bezier參數(shù)方程,以P603點(diǎn)為起點(diǎn),以P606點(diǎn)為終點(diǎn), 分別計算t=l/3和t=2/3處的P604點(diǎn)和P605點(diǎn)的坐標(biāo)。方法與第③步中求 P601、 P602的坐標(biāo)相同,不再贅述。
      (iv) 利用三次Bezier參數(shù)方程,以P606點(diǎn)為起點(diǎn),以P609點(diǎn)為終點(diǎn), 分別計算t=l/3和t=2/3處的P607點(diǎn)和P608點(diǎn)的坐標(biāo)。方法與第③步中求 P601、 P602的坐標(biāo)相同,不再贅述。
      (v) 根據(jù)心形圖元的左右對稱性,可以得到P611、 P612、 P613、 P614、 P615、 P616、 P617和P618的坐標(biāo)。
      (vi) P620點(diǎn)的坐標(biāo)為(W/2, H)。
      (vii) P623、 P624點(diǎn)的坐標(biāo)等于P600點(diǎn),P619點(diǎn)的坐標(biāo)等于P618點(diǎn), P621、 P622點(diǎn)的坐標(biāo)等于P620點(diǎn)。
      最后,得到8條三次貝塞爾線段組成的矢量輪廓信息。這8條三次貝塞
      S;口下第一條線段由控制點(diǎn)(P600
      第二條線段由控制點(diǎn)(P603
      第三條線段由控制點(diǎn)(P606
      第四條線段由控制點(diǎn)(P609
      第五條線段由控制點(diǎn)(P612
      第六條線段由控制點(diǎn)(P615
      第七條線段由控制點(diǎn)(P618 (由于P618、 P619的坐標(biāo)相同 際上是一條直線段);
      第八條線段由控制點(diǎn)(P621 (由于P621、 P622的坐標(biāo)相同 際上是一條直線段)。
      對于其他類型的基本圖形字幕對象,可以按照同樣的思想,將其轉(zhuǎn)換為 由一次、二次或者三次Bezier線段組成的封閉4侖廓。
      如果字幕對象的類型為復(fù)合字幕,則將其轉(zhuǎn)換成矢量輪廓信息的方法包 括以下步驟
      a. 根據(jù)復(fù)合字幕對象的數(shù)據(jù)結(jié)構(gòu),將其拆分為M個基本字幕對象,所述 的基本字幕對象為文字字幕對象或基本圖形字幕對象,所述的M為正整數(shù);
      b. 分別將文字字幕對象和基本圖形字幕對象轉(zhuǎn)換成由一次、二次或三次 貝塞爾線段組成的封閉輪廓,得到M個基本字幕對象的矢量輪廓信息;
      c. 根據(jù)M個基本字幕對象的相對空間坐標(biāo),將步驟b中得到的M個矢量 輪廓信息組合在一起,形成該復(fù)合字幕對象的最終矢量輪廓信息。
      (3)根據(jù)字幕對象的旋轉(zhuǎn)、變形參數(shù),將步驟(2)中的矢量輪廓信息 進(jìn)行空間幾何變換。
      假設(shè)字幕對象的旋轉(zhuǎn)角度為A,基本字幕對象的控制點(diǎn)個數(shù)為n (n為正 整數(shù)),分別為P[O]至P[n-l],則對一個基本字幕對象進(jìn)行空間幾何變換的 過程包括以下步驟。
      P601、P602、P603)形成的j二次貝塞爾線段;
      P604、P605、P606)形成的J二次貝塞爾線段;
      P607、P608、P609)形成的二L次貝塞爾線段;
      P610、P611、P612)形成的jL次貝塞爾線段;
      P613、P614、P615)形成的J二次貝塞爾線段;
      P616、P617、P618)形成的J。欠貝塞爾線段;
      P619、P620、P621)形成的三次貝塞爾線4史
      P620、P621的坐才示相同,因此這條線段實(shí)
      P622、P623、P624)形成的三次貝塞爾線賴二
      P623、P624的坐標(biāo)相同,因此這條線段實(shí)a. 根據(jù)基本字幕對象的外接矩形的四個頂點(diǎn)坐標(biāo)計算基本字幕對象的中 心點(diǎn)Q的坐標(biāo)。
      b. 按照如下公式修正旋轉(zhuǎn)后的P[i] (0《i《n, i為正整數(shù))的坐標(biāo) x = P[i]. x - Q. x,
      y = P[i].y - Q.y,
      P[i].x = Q. x + x*cos (A) - y*sin(A), P[i].y = Q. y + x*sin(A) + y*cos (A);
      其中,P[i].x和P[i].y分別為P[i]點(diǎn)4黃、縱坐標(biāo),Q. x和Q. y分別為Q 點(diǎn)的^f黃、縱坐標(biāo)。
      (4)重復(fù)步驟(1)至步驟(3),直到處理完當(dāng)前字幕對象鏈表中所有 的字幕對象。
      在將字幕對象轉(zhuǎn)換成由一次、二次或三次貝塞爾線段組成的包含一個或 多個封閉輪廓的矢量輪廓信息后,為了使渲染引擎在算法處理上的一致性, 降低算法的復(fù)雜度,優(yōu)化算法的效率,還需要將這些不同次數(shù)的Bezier線段 統(tǒng)一轉(zhuǎn)換為二次貝塞爾線段。
      圖3出示了將字幕對象矢量輪廓信息中的一次和三次Bezier線段轉(zhuǎn)換為 二次Bezier線l殳的方法流程,包括以下步-驟
      ① 遍歷矢量輪廓信息,取出 一 個與已取不同的封閉輪廓G;
      ② 遍歷封閉輪廓G,取出一個與已取不同的Bezier線段B;
      ③ 判斷Bezier線段B是幾次Bezier線,殳,如果是一次或者三次Bezier 線段,則將其轉(zhuǎn)換為二次Bezier線段;
      ④ 重復(fù)步驟②至步驟③,直到處理完封閉4侖廓G中所有的Bezier線l殳; 重復(fù)步驟①至步驟 ,直到處理完矢量輪廓信息中所有的封閉輪廓。
      一次Bezier線段轉(zhuǎn)換為二次Bezier線段的原理為將一次Bezier線段 的前后兩個控制點(diǎn)RO和Rl作為二次Bezier線l殳的第一和第三個控制點(diǎn),RO 和Rl的中點(diǎn)作為二次Bezier線段的第二個控制點(diǎn)。
      圖7是一次Bezier線段轉(zhuǎn)換為二次Bezier線段示意圖,7a為轉(zhuǎn)換前的一次Bezier線段,7b為轉(zhuǎn)換后的二次Bezier線^:。其中,P70 = R70, P72 =R71, P71= ( R70和R71的中點(diǎn)),即P71. y = (R70. x + R71. x)/2; P71. y =(R70. y + R71. y)/2。
      三次Bezier線,殳4爭4奐為二次Bezier線,爻的原理為將一條三次Bezier 線段轉(zhuǎn)換成兩條二次Bezier線段。
      圖8中的8a和8b分別是將三次Bezier線段轉(zhuǎn)換為兩條二次Bezier線 段的兩種情況示意圖。假設(shè)一個三次Bezier線段的控制點(diǎn)分別為R80、 R81、 R82、 R83。 Ql是R80和R81的中點(diǎn),Q2是R82和R83的中點(diǎn),Q3是R81和 R82的中點(diǎn),Q4是Q1和Q3的中點(diǎn),Q5是Q2和Q3的中點(diǎn),Q6是Q4和Q5 的中點(diǎn),Q7是Q4和Q5構(gòu)成的直線與R0和Rl構(gòu)成直線的交點(diǎn),Q8是Q4和 Q5構(gòu)成的直線與R82和R83構(gòu)成直線的交點(diǎn)。
      根據(jù)R80、 R81、 R82、 R83四點(diǎn)的坐標(biāo)以及Bezier參數(shù)方程計算出Ql、
      Q2、 Q3、Q4、Q5、 Q6、 Q7、 Q8的坐標(biāo)如下Ql.x =, x + R81. x) /2,Qi.y =(R80. y + R81.y)/2Q2.x =(R82. x + R83. x) /2,Q2.y =(R82.y + R83.y)/2Q3.X =(R81. x + R82. x)/2,Q3.y =(R81.y + R82.y)/2Q4.X =(Ql.x + Q3. x)/2,Q4.y =(Ql.y + Q3. y)/2;
      Q5,X =(Q2.x + Q3. x)/2,Q5.y =(Q2.y + Q3. y)/2;Q6.X =(Q4. x + Q5. x) /2,Q6.y =(Q4.y + Q5.y)/2;Q7.X =(3*Q1. x + 3*Q4. x -RO. x -Q6. x)/4,Q7.y =(3*Ql.y + 3*Q4.y -RO. y _Q6.y)/4;Q8.(3*Q2. x + 3*Q5. x -R3. x -Q6. x)/4,Q8.y =(3*Q2.y + 3*Q5.y —R3. y -Q6. y)/4。
      將原來的三次Bezier線段在Q6點(diǎn)處分成兩條二次Bezier線段, 一條 Bezier線—?dú)W的三個控制點(diǎn)分別為R80, Q7, Q6,另 一條Bezier線l殳的三個控 制點(diǎn)分別為Q6, Q8, R83。
      本發(fā)明所述的方法并不限于上述具體實(shí)施方式
      ,本領(lǐng)域技術(shù)人員根據(jù)本 發(fā)明的技術(shù)方案得出其他的實(shí)施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范圍。
      權(quán)利要求
      1. 一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,包括以下步驟(1)從當(dāng)前字幕對象鏈表中取出一個與已取不同的字幕對象;(2)判斷字幕對象的類型,根據(jù)字幕對象的類型進(jìn)行相應(yīng)的處理,將字幕對象轉(zhuǎn)換成由一次、二次或者三次貝塞爾線段組成的包括N個封閉輪廓的矢量輪廓信息,所述的N為正整數(shù);(3)根據(jù)字幕對象的旋轉(zhuǎn)、變形參數(shù),將步驟(2)中的矢量輪廓信息進(jìn)行空間幾何變換;(4)重復(fù)步驟(1)至步驟(3),直到處理完當(dāng)前字幕對象鏈表中所有的字幕對象。
      2. 如權(quán)利要求1所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其特 征在于步驟(2)中所述的字幕對象的類型包括文字字幕、基本圖形字幕和 復(fù)合字幕,所述的復(fù)合字幕是指包括文字和基本圖形的字幕。
      3. 如權(quán)利要求2所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其特 征在于,步驟(2)中當(dāng)字幕對象的類型為文字字幕時,將其轉(zhuǎn)換成矢量輪廓 信息的方法包括以下步驟① 根據(jù)文字字幕對象的字體名稱,創(chuàng)建邏輯字體對象F;② 將邏輯字體對象F設(shè)置到操作系統(tǒng)的資源描述表中,并保存搡作系統(tǒng) 原來的邏輯字體;③ 根據(jù)當(dāng)前字符的Unicode編碼,從操作系統(tǒng)的當(dāng)前資源描述表中獲耳又 當(dāng)前字符的矢量輪廓信息在TrueType字庫中占用的內(nèi)存字節(jié)數(shù)B;④ 根據(jù)當(dāng)前字符占用的內(nèi)存字節(jié)數(shù)B,分配內(nèi)存P;⑤ 根據(jù)當(dāng)前字符的Unicode編碼和占用的內(nèi)存P,從才喿作系統(tǒng)的當(dāng)前資 源描述表中獲取當(dāng)前字符的矢量輪廓信息G,并恢復(fù)操作系統(tǒng)原來的邏輯字體。
      4. 如權(quán)利要求2所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其特 征在于,步驟(2)中當(dāng)字幕對象的類型為基本圖形字幕時,將其轉(zhuǎn)換成矢量 輪廓信息的方法包括以下步驟① 根據(jù)基本圖形字幕的幾何形狀,將基本圖形字幕劃分成多條曲線段,所述的曲線段包括直線段、正玄或余玄曲線段、圓弧段和橢圓弧段;② 根據(jù)基本圖形字幕的外接矩形、每條曲線段的參數(shù)方程計算出每條曲線段轉(zhuǎn)換成三次貝塞爾線段后的起始控制點(diǎn)和結(jié)束控制點(diǎn)的坐標(biāo);③ 對每條三次貝塞爾線段,根據(jù)起始控制點(diǎn)和結(jié)束控制點(diǎn)的坐標(biāo)和三次 貝塞爾參數(shù)方程,分別計算1=1/3和t-2/3處的另外兩個控制點(diǎn)的坐標(biāo)。
      5. 如權(quán)利要求2所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其特 征在于,步驟(2)中當(dāng)字幕對象的類型為復(fù)合字幕時,將其轉(zhuǎn)換成矢量輪廓 信息的方法包括以下步驟① 根據(jù)復(fù)合字幕對象的數(shù)據(jù)結(jié)構(gòu),將其拆分為M個基本字幕對象,所述 的基本字幕對象為文字字幕對象或基本圖形字幕對象,所述的M為正整數(shù);② 分別將文字字幕對象和基本圖形字幕對象轉(zhuǎn)換成貝塞爾曲線,得到M 個基本字幕對象的矢量輪廓信息;③ 根據(jù)M個基本字幕對象的相對空間坐標(biāo),將步驟②中得到的M個矢量 輪廓信息組合在一起,形成該復(fù)合字幕對象的最終矢量輪廓信息。
      6. 如權(quán)利要求1所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其特 征在于,步驟(3)中所述的根據(jù)字幕對象的旋轉(zhuǎn)、變形參數(shù),將步驟(2) 中的矢量輪廓信息進(jìn)行空間幾何變換的方法包括以下步驟假設(shè)字幕對象的旋轉(zhuǎn)角度為A,控制點(diǎn)個數(shù)為n,分別為P[O]至P[n-l], 所述的n為正整數(shù);① 根據(jù)字幕對象的外接矩形的四個頂點(diǎn)坐標(biāo)計算基本字幕對象的中心點(diǎn) Q的坐標(biāo);② 按照如下公式^f務(wù)正旋轉(zhuǎn)后的P[i]的坐標(biāo),0《i《n, i為正整凄t; x = P[i]. x - Q. x,y = P[i].y - Q.y,P[i].x = Q. x + x*cos (A) - y*sin(A), P[i].y = Q-y + x*sin(A) + y*cos (A) 5其中,P[i].x和P[i].y分別為P[i]點(diǎn)橫、縱坐標(biāo),Q.x和Q.y分別為Q 點(diǎn)的橫、縱坐標(biāo)。
      7. 如權(quán)利要求1所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其特征在于所述的方法在將所有字幕對象轉(zhuǎn)換成由一次、二次或者三次貝塞爾 線段組成的包括N個封閉輪廓的矢量輪廓信息后,還包括將所有字幕對象矢 量輪廓信息中的一次和三次貝塞爾線段轉(zhuǎn)換為二次貝塞爾線段的步驟。
      8. 如權(quán)利要求7所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其特 征在于,將字幕對象矢量輪廓信息中的一次和三次貝塞爾線段轉(zhuǎn)換為二次貝 塞爾線段的方法包括以下步驟① 遍歷矢量輪廓信息,取出 一個與已取不同的封閉輪廓G;② 遍歷封閉輪廓G,取出一個與已取不同的貝塞爾線段B;③ 判斷貝塞爾線段B是幾次貝塞爾線段,如果是一次或者三次貝塞爾線 段,則將其轉(zhuǎn)換為二次貝塞爾線段;④ 重復(fù)步驟②至步驟③,直到處理完封閉輪廓G中所有的貝塞爾線段;⑤ 重復(fù)步驟①至步驟④,直到處理完矢量輪廓信息中所有的封閉輪廓。
      9. 如權(quán)利要求8所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其特 征在于,步驟③中將一次貝塞爾線段轉(zhuǎn)換為二次貝塞爾線段的方法為假設(shè) 一次貝塞爾線4爻的前后兩個控制點(diǎn)分別為R0和Rl,將R0和Rl分別作為二 次貝塞爾線段的第一個控制點(diǎn)和第三個控制點(diǎn),將R0和R1的中點(diǎn)作為二次 貝塞爾線段的第二個控制點(diǎn)。
      10. 如權(quán)利要求8所述的一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,其 特征在于,步驟③中將三次貝塞爾線段轉(zhuǎn)換為二次貝塞爾線段的方法為將 一條三次貝塞爾線段轉(zhuǎn)換為兩條二次貝塞爾線段;作支i殳三次貝塞爾線,爻的控制點(diǎn)分別為R0、 Rl、 R2和R3; Ql為R0和Rl 的中點(diǎn),Ql. x = (RO. x + Rl. x) /2, Ql. y = (RO. y + Rl. y) /2; Q2是R2和 R3的中點(diǎn),Q2. x = (R2.x + R3. x)/2, Q2. y = (R2. y + R3. y)/2; Q3是Rl 和R2的中點(diǎn),Q3. x = (Rl.x + R2.x)/2, Q3. y = (R1. y + R2. y)/2; Q4是 Ql和Q3的中點(diǎn),Q4.x = (Ql.x + Q3. x)/2, Q4. y = (Q1. y + Q3. y)/2; Q5 是Q2和Q3的中點(diǎn),Q5.x = (Q2.x + Q3.x)/2, Q5.y = (Q2. y + Q3.y)/2; Q6是Q4和Q5的中點(diǎn),Q6. x = (Q4. x + Q5. x)/2, Q6. y = (Q4. y + Q5. y)/2; Q7是Q4和Q5構(gòu)成的直線與R0和Rl構(gòu)成直線的交點(diǎn),Q7. x = (3*Q1. x +3*Q4. x — R0.x — Q6. x)/4, Q7. y - (3*Q1. y + 3*Q4.y — RO, y — Q6.y)/4; Q8是Q4和Q5構(gòu)成的直線與R2和R3構(gòu)成直線的交點(diǎn),Q8. x = (3*Q2. x + 3*Q5.x - R3. x - Q6.x)/4, Q8. y = (3*Q2. y + 3*Q5. y - R3. y - Q6.y)/4;將三次貝塞爾線段在Q6點(diǎn)處分成兩條二次貝塞爾線段,其中一條二次貝 塞爾線段的三個控制點(diǎn)分別為RO, Q7, Q6,另一條貝塞爾線段的三個控制點(diǎn) 分別為Q6, Q8, R3。
      全文摘要
      本發(fā)明公開了一種將字幕對象轉(zhuǎn)換為貝塞爾曲線的方法,屬于廣電行業(yè)電視節(jié)目制播機(jī)構(gòu)的字幕編播技術(shù)領(lǐng)域。該方法針對不同類型的字幕對象進(jìn)行不同的處理,將所有類型的字幕對象轉(zhuǎn)換成由一次、二次或者三次貝塞爾曲線組成的包括一個或多個封閉輪廓的矢量輪廓信息,然后再將矢量輪廓信息中的一次和三次貝塞爾線段轉(zhuǎn)換為二次貝塞爾線段。該方法使得字幕對象可以任意放大、縮小、旋轉(zhuǎn)和變形而不影響質(zhì)量,字幕渲染的效果平滑、不失真、無級縮放,還實(shí)現(xiàn)了造字、字符變形、字符倒影、字符反轉(zhuǎn)和曲線擺放等功能,滿足高級的字幕應(yīng)用需求。
      文檔編號H04N5/278GK101415079SQ20081022587
      公開日2009年4月22日 申請日期2008年11月4日 優(yōu)先權(quán)日2008年11月4日
      發(fā)明者吳正斌, 鄭培楓 申請人:新奧特(北京)視頻技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1