一种基于贝塞尔曲线封闭轮廓的字幕渲染方法技术

技术编号:4332015 阅读:259 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,属于广电行业电视节目制播机构的字幕编播技术领域。本发明专利技术所述的方法首先将字幕对象转换为由一次、二次或三次贝塞尔线段组成的包括N个封闭轮廓的矢量轮廓信息;然后将封闭轮廓中一次和三次贝塞尔线段转换成二次贝塞尔线段;再将矢量轮廓信息中自相交的封闭轮廓内含的闭合环路删除或者分割;对矢量轮廓信息中相交的封闭轮廓进行规并整理,使封闭轮廓之间互不相交;最后将矢量轮廓信息中的封闭轮廓转换成多边形,对多边形加内边或外边后对字幕进行渲染。采用本发明专利技术所述的方法,能够提高字幕渲染的效率,增强字幕渲染的效果,满足字幕的高级应用需求。

【技术实现步骤摘要】

本专利技术属于广电行业电视节目制播机构的字幕编播
,具体涉及。
技术介绍
在字幕编播领域中,字幕对象可分为文字和图形两个部分。文字包括世界上各种语种的文字,图形包括各种规则形状的图形、由基本图形元素组成的复合图形和任意不规则图形。从计算机图形学的角度来说,可以将所有类型的字幕对象视为由一系列直线和曲线组成的图形。图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上看,图形主要分为两类一类是基于线条信息表示的,如工程图、等高线地图、曲面的线框图等;另一类是明暗图,也就是通常所说的真实感图形。 字幕渲染是计算机图形学、计算机数字图像处理与电视台的节目制作业务相结合的技术。从计算机数字图像处理的角度来说,对字幕对象的渲染包括两个方面第一,基于像素或子像素的一系列静态处理,如图象增强、二值化处理、边缘检测、模糊处理、浮雕、边缘反走样、亮度贴图、材质贴图、防抖动、椭圆变形、多边形变形、勾边、增亮、锐化、柔化、凸起、彩色铅笔、油画龟裂、交叉影线、剪样、玻璃、边缘增亮、墨水轮廓画、瓷砖、信纸、拼缀物、塑料包装、水波纹、海绵、喷涂笔、着色玻璃、高斯模糊等特效;第二,基于关键帧的一系列动态处理,包括水波、旗飘、螺旋、扭曲、三维投影、火焰、球变、三维形变、弯曲、幻影、巻页、折叠、礼花、百叶窗、碎裂、水波、波动、划像、转球、螺旋、旗飘、波动虚影、蝶变、流光、凸镜、万花筒、激光、飞光、魔幻螺旋、运动模糊、径向模糊、波浪、波浪倒影、回旋等特效。 字幕的渲染效果是衡量一个字幕系统的重要指标,特别是在反走样处理、小字的细节处理、立体边的处理、虚边、虚影、真实三维视觉感、三维字倒角、纹理、光照的处理等方面。 在现有的字幕系统中,字幕渲染存在着以下问题 第一,将文本字幕与图形字幕的渲染区别开来,而且不同的图形元素也使用不同性质的几何矢量来描述。这个问题在实现和应用两个方面给字幕系统带来了很多的不利。从实现的角度来说,会导致一个字幕系统中存在多个完全不同的渲染引擎和渲染流程,而且如果要支持一种新的字幕对象,则需要定义并实现新的渲染引擎,从而造成字幕系统的功能扩展性存在很大的局限性。从应用的角度来说,带来两方面致命的问题一方面,不同类型的字幕对象最终展现的效果不一致,例如两个不同类型的字幕对象同样是加了 2个像素的全边,但由于经过了不同的渲染引擎,最终的处理结果可能是不同的,在进行字幕创作时给使用者带来了诸多不便;另一方面,在字幕系统中针对字幕对象的操作不得不进行特定的限制,例如,有的字幕对象支持几何旋转、几何縮放,有的则不支持,有的字幕对象支持任意角度的加边、加影,有的则只支持固定角度的加边、加影,有的甚至不支持。所有这些问题都会影响字幕系统的普遍适用性和功能完备性。 第二,字幕渲染引擎的核心算法都是基于浮点运算,例如三角函数运算、反三角函10数运算、除法运算、幂运算、开方运算等。这会导致两方面的问题一方面,由于最终处理结果要求的是整数型的像素值,因此在渲染引擎算法的不同阶段会进行取整运算,这就会造成计算上的累计误差,导致最终的字幕效果在局部细节上存在缺陷,例如笔画多的文字模糊不清晰、笔画粘连等;另一方面,这些浮点运算都是占用大量机器指令的数学运算,大大降低了整个字幕系统的工作效率,影响到字幕制作和播出的时效性,特别是在高清晰度电视字幕的制作中,由于其数据量是标清的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) = P。+(P「P。)t = (l-t)P。+tP 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) = P。 (l-t) 3+3P^ (l-t) 2+3P2t2 (l-t) +P3t3, t G P。、PpP2、P3四个点在平面或在三维空间中定义了三次Bezier曲线。曲线起始于P。走向P工,并从P2的方向来到P3。 一般不会经过Pi或P^这两个点只提供方向信息。P。和Pi之间的间距,决定了曲线在转而趋进P3之前,走向P2方向的长度。 Bezier曲线具有如下特性。 (1)无限可分性一条Bezier曲线可在任意点切本文档来自技高网...

【技术保护点】
一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,包括以下步骤:(1)将字幕对象转换为由一次、二次或三次贝塞尔线段组成的包括N个封闭轮廓的矢量轮廓信息,所述的N为正整数;(2)将步骤(1)获得的封闭轮廓中一次和三次贝塞尔线段转换成二次贝塞尔线段;(3)将经步骤(2)转换后的矢量轮廓信息中自相交的封闭轮廓内含的闭合环路删除或者分割;(4)对经步骤(3)处理后的矢量轮廓信息中相交的封闭轮廓进行规并整理,使封闭轮廓之间互不相交;(5)将经步骤(4)处理后的矢量轮廓信息中的封闭轮廓转换成多边形;(6)对经步骤(5)转换后的矢量轮廓信息中的多边形加内边或外边。

【技术特征摘要】
一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,包括以下步骤(1)将字幕对象转换为由一次、二次或三次贝塞尔线段组成的包括N个封闭轮廓的矢量轮廓信息,所述的N为正整数;(2)将步骤(1)获得的封闭轮廓中一次和三次贝塞尔线段转换成二次贝塞尔线段;(3)将经步骤(2)转换后的矢量轮廓信息中自相交的封闭轮廓内含的闭合环路删除或者分割;(4)对经步骤(3)处理后的矢量轮廓信息中相交的封闭轮廓进行规并整理,使封闭轮廓之间互不相交;(5)将经步骤(4)处理后的矢量轮廓信息中的封闭轮廓转换成多边形;(6)对经步骤(5)转换后的矢量轮廓信息中的多边形加内边或外边。2. 如权利要求1所述的一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,其特征在于,步骤(1)中所述的将字幕对象转换为由一次、二次或三次贝塞尔线段组成的包括N个封闭轮廓的矢量轮廓信息的方法包括以下步骤① 从当前字幕对象链表中取出一个与已取不同的字幕对象;② 判断字幕对象的类型,根据字幕对象的类型进行相应的处理,将字幕对象转换成由一次、二次或者三次贝塞尔线段组成的N个封闭轮廓;所述的字幕对象的类型包括文字字幕、基本图形字幕和复合字幕,所述的复合字幕是指包括文字和基本图形的字幕;如果字幕对象的类型为文字字幕,则获取文字字幕在TrueType字库中的矢量轮廓信息的方法包括以下步骤a. 根据文字字幕对象的字体名称,创建逻辑字体对象F ;b. 将逻辑字体对象F设置到操作系统的资源描述表中,并保存操作系统原来的逻辑字体;c. 根据当前字符的Unicode编码,从操作系统的当前资源描述表中获取当前字符的矢量轮廓信息在TrueType字库中占用的内存字节数B ;d. 根据当前字符占用的内存字节数B,分配内存P;e. 根据当前字符的Unicode编码和占用的内存P,从操作系统当前资源描述表中获取当前字符的矢量轮廓信息G,并恢复操作系统原来的逻辑字体;如果字幕对象的类型为基本图形字幕,则将其转换成矢量轮廓信息的方法包括以下步骤a. 根据基本图形字幕的几何形状,将基本图形字幕划分成多条曲线段,所述的曲线段包括直线段、正玄或余玄曲线段、圆弧段和椭圆弧段;b. 根据基本图形字幕的外接矩形、每条曲线段的参数方程计算出每条曲线段转换成三次贝塞尔线段后的起始控制点和结束控制点的坐标;c. 对每条三次贝塞尔线段,根据起始控制点和结束控制点的坐标和三次贝塞尔参数方程,分别计算t = 1/3和t = 2/3处的另外两个控制点的坐标。如果字幕对象的类型为复合字幕,则将其转换成矢量轮廓信息的方法包括以下步骤a.根据复合字幕对象的数据结构,将其拆分为M个基本字幕对象,所述的基本字幕对象为文字字幕对象或基本图形字幕对象,所述的M为正整数;b. 分别将文字字幕对象和基本图形字幕对象转换成由一次、二次或三次贝塞尔线段组成的封闭轮廓,得到M个基本字幕对象的矢量轮廓信息;c. 根据M个基本字幕对象的相对空间坐标,将步骤b中得到的M个矢量轮廓信息组合在一起,形成该复合字幕对象的最终矢量轮廓信息;③ 根据字幕对象的旋转和变形参数,将步骤②中的矢量轮廓信息进行空间几何变换假设字幕对象的旋转角度为A,基本字幕对象的顶点个数为n,分别为P[O]至P[n-l],所述的n为正整数;a. 根据基本字幕对象的外接矩形的四个顶点坐标计算基本字幕对象的中心点Q的坐标;b. 按照如下公式修正旋转后的P[i]的坐标,O《i《n, i为正整数;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]点横、纵坐标,Q. x禾P Q. y分别为Q点的横、纵坐标;④ 重复步骤①至步骤③,直到处理完当前字幕对象链表中所有字幕对象。3.如权利要求1或2所述的一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,其特征在于,步骤(2)中所述的将一次和三次贝塞尔线段转换为二次贝塞尔线段的方法包括以下步骤① 遍历矢量轮廓信息,取出一个与已取不同的封闭轮廓G ;② 遍历封闭轮廓G,取出一个与已取不同的贝塞尔线段B;③ 判断贝塞尔线段B是几次贝塞尔线段,如果是一次或者三次贝塞尔线段,则将其转换为二次贝塞尔线段;将一次贝塞尔线段转换为二次贝塞尔线段的方法为假设一次贝塞尔线段的前后两个控制点分别为R0和Rl,将R0和Rl分别作为二次贝塞尔线段的第一个控制点和第三个控制点,将R0和Rl的中点作为二次贝塞尔线段的第二个控制点;将三次贝塞尔线段转换为二次贝塞尔线段的方法为将一条三次贝塞尔线段转换为两条二次贝塞尔线段;假设三次贝塞尔线段的控制点分别为R0、 Rl、 R2和R3 ;Ql为R0和Rl的中点,Ql. x =(R0. x+R1.X),/2,Ql.y =(R0. y+Rl.y),/2Q2是R2和R3的中点,Q2. x =(R2. x+R3.X),/2,Q2.y =(R2. y+R3. y),/2Q3是R1和R2的中点,Q3. x =(R1. x+R2.X),/2,Q3.y =(Rl.y+R2. y),/2Q4是Q1和Q3的中点,Q4. x =(Q1. x+Q3.X),/2,Q4.y =(Ql.y+Q3. y),/2Q5是Q2和Q3的中点,Q5. x =(Q2. x+Q3.X),/2,Q5.y =(Q2. y+Q3. y),/2Q6是Q4和Q5的中点,Q6. x =(Q4. x+Q5.X),/2,Q6.y =(Q4. y+Q5. y),/2Q7是Q4和Q5构成的直线与R0和Rl构成直线的交点,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构成的直线与R2和R3构成直线的交点,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点处分成两条二次贝塞尔线段,其中一条二次贝塞尔线段的三个控制点分别为R0, Q7, Q6,另一条贝塞尔线段的三个控制点分别为Q6, Q8, R 3。④ 重复步骤②至步骤③,直到处理完封闭轮廓G中所有的贝塞尔线段;⑤ 重复步骤①至步骤④,直到处理完矢量轮廓信息中所有的封闭轮廓。4. 如权利要求1所述的一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,其特征在于,步骤(3)中将矢量轮廓信息中自相交的封闭轮廓内含的闭合环路删除或者分割的方法包括以下步骤① 从字幕对象的矢量轮廓信息中取出一个与已取不同的封闭轮廓G ;② 判断封闭轮廓G中是否存在二次贝塞尔线段自相交的情况,如果存在,则继续判断是相邻二次贝塞尔线段自相交还是非相邻二次贝塞尔线段自相交,如果是相邻二次贝塞尔线段自相交,则将封闭轮廓G中内含的包括自相交的相邻二次贝塞尔线段的闭合环路删除;如果是非相邻二次贝塞尔线段自相交,则将封闭轮廓G和其内含的包括自相交的非相邻二次贝塞尔线段的闭合环路分割成多个封闭轮廓;③ 重复步骤②,直到封闭轮廓G中所有的自相交情况处理完毕;④ 重复步骤①至步骤③,直到字幕对象矢量轮廓信息表中所有的封闭轮廓处理完毕。5. 如权利要求4所述的一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,其特征在于,步骤②中判断封闭轮廓G是否存在二次贝塞尔线段自相交情况的方法为假设G中有M个二次贝塞尔线段,分别是B、B[1]、B[2]至B[M-1];依次取出G中每个二次贝塞尔线段B[j],判断B[j]与G中的其它二次贝塞尔线段是否相交,如果相交,则G中存在自相交情况;否则不存在自相交情况;如果B[j]与相邻线段B[j+l]相交,则是相邻二次贝塞尔线段自相交,否则是非相邻二次贝塞尔线段自相交。6. 如权利要求5所述的一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,其特征在于,判断两条二次贝塞尔线段是否相交的方法包括以下步骤a. 计算两条二次贝塞尔线段的外接矩形;假设二次贝塞尔线段的三个控制点分别为P0、P1和P2,P0点的横坐标为P0. x,纵坐标为P0. y ;P1点的横坐标为Pl. x,纵坐标为PI. y ;P2点的横坐标为P2. x,纵坐标为P2. y ;计算由P0、P1和P2构成的三角形的外接矩形T, T即为该二次贝塞尔线段的外接矩形,公式如下T. left = min(PO. x, Pl. x, P2. x),T. right = max (P0. x, PI. x, P2. x),T. top = min (P0. y, PI. y, P2. y),T. bottom = max (P0. y, PI. y, P2. y);其中,T. left表示外接矩形左边框的横坐标,T. right表示外接矩形右边框的横坐标,T. top表示外接矩形上边框的纵坐标,T. bottom表示外接矩形下边框的纵坐标;min函数表示取所有参数中的最小值,max函数表示取所有参数中的最大值;b. 判断两条二次贝塞尔线段的外接矩形是否存在交集,如果存在,则这两条二次贝塞尔线段相交,如果不存在,则这两条二次贝塞尔线段不相交。7. 如权利要求4所述的一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,其特征在于,步骤②中将封闭轮廓G中内含的包括自相交的相邻二次贝塞尔线段的闭合环路删除的方法为假设G中有M个二次贝塞尔线段,分别是B、B[1]、B[2]至B[M-1],两条自相交的相邻二次贝塞尔线段分别为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]的结束控制点构成的封闭轮廓。8. 如权利要求4所述的一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,其特征在于,步骤②中将封闭轮廓G和其内含的包括自相交的非相邻二次贝塞尔线段的闭合环路分割成多个封闭轮廓的方法为假设G中有M个二次贝塞尔线段,分别是B、B[1]、B[2]至B[M-1],两条自相交的非相邻二次贝塞尔线段分别为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]至ljB[j-l]、B[k+l]到B[M-1]构成了一个新的封闭轮廓G',令G二G';最后将S与B[j]的结束控制点和B[k]的起始控制点相连,形成了两条新的二次贝塞尔线段,将这两条新的二次贝塞尔线段与B[j+l]到B[k-l]中所有的二次贝塞尔线段构成了一个新的封闭轮廓G〃 ,将G〃加入到字幕对象矢量轮廓信息表中。9. 如权利要求1所述的一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,其特征在于,步骤(4)中对矢量轮廓信息中相交的封闭轮廓进行规并整理的方法包括以下步骤① 计算所有封闭轮廓中每条二次贝塞尔线段与其他封闭轮廓中的二次贝塞尔线段的交点;② 将所有存在交点的二次贝塞尔线段在交点处分割成多条首尾相连的二次贝塞尔线段;③ 确定所有封闭轮廓中包含的每条二次贝塞尔线段的内外边属性;④ 将属性为内边的二次贝塞尔线段删除,并重构矢量轮廓信息中的封闭轮廓;⑤ 标记所有封闭轮廓的方向,所述的方向包括顺时针和逆时针。10. 如权利要求7、8或9所述的一种基于贝塞尔曲线封闭轮廓的字幕渲染方法,其特征在于,计算两条二次贝塞尔线段的交点的方法包括以下步骤(I)假设两条相交的二次贝塞尔线段分别为B[j]和B[k],将B[j]和B[k]分别进行如下处理a. 计算二次贝塞尔线段的起始控制点与结束控制点之间的空间直线距离L,L -V(x, - x。)2 + (y, - y0)2 ,其中,xO、y0为起始控制点横、纵坐标,xl和yl...

【专利技术属性】
技术研发人员:吴正斌袁慧晶郑培枫
申请(专利权)人:新奥特北京视频技术有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利