一种基于像素空间掩码矩阵模型的字幕渲染方法

文档序号:7927637阅读:212来源:国知局
专利名称:一种基于像素空间掩码矩阵模型的字幕渲染方法
技术领域
本发明涉及电视节目制作领域的字幕渲染技术,具体涉及一种基于像素空间掩码
矩阵模型的字幕渲染方法。
背景技术
由于电视字幕具有独立的表意功能,作为一种必备的电视节目要素,电视字幕是一种重要的电视图文的展现形式。随着电视频道、节目内容的细分,各个部门的分工也更加专业化,对于不同类型节目的制作,以单一类型的字幕系统已很难满足要求。另外,电视节目的日益多样性和电视观众欣赏、鉴赏水平的不断提高,也要求电视字幕的应用模式必然朝着多样性的方向发展。 从广义的角度来说,电视字幕所处理的字幕对象可以分为图形和文字两个部分。图形包括各种规则形状的图形、由基本图形元素组成的复合图形和任意不规则图形,文字包括世界上各种语种的文字。 从计算机展现的角度来说,字幕对象渲染的最终目的是根据图形化的矢量信息和图像纹理,采用数字图像处理的相关算法,得到由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