著录项信息
专利名称 | 一种在视频画面上叠加用户界面的方法 |
申请号 | CN200710147444.8 | 申请日期 | 2007-09-14 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2009-03-18 | 公开/公告号 | CN101388979 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N5/445 | IPC分类号 | H;0;4;N;5;/;4;4;5;;;G;0;9;G;5;/;3;7;7查看分类表>
|
申请人 | 中兴通讯股份有限公司 | 申请人地址 | 江苏省南京市雨花台区紫荆花路68号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 南京中兴新软件有限责任公司 | 当前权利人 | 南京中兴新软件有限责任公司 |
发明人 | 朱晓斌;董秀兰;田智平 |
代理机构 | 北京安信方达知识产权代理有限公司 | 代理人 | 龙洪;霍育栋 |
摘要
本发明公开了,一种在视频画面上叠加用户界面的方法,属于数字多媒体信息处理领域。该方法应用于多个业务应用的界面同时叠加到视频上的情况,包括:首先对所有业务应用的界面,均生成与其对应的叠加描述子并保存,其中叠加描述子中含有业务应用标识信息;然后针对多个待叠加的业务应用的界面,按序依次遍历其叠加描述子,并根据各叠加描述子的业务应用标识对各叠加描述子分别处理,从而生成叠加剪裁区;最后在叠加剪裁区范围将多个应用业务的界面与视频叠加。本发明方法将界面叠加到视频上,原理简单,运算量低,可以处理同一图层内界面相互重叠的情况,并为当前应用和非当前应用的界面在视频上产生不同的叠加效果。
1.一种在视频画面上叠加用户界面的方法,应用于多个业务应用的界面同时叠加到视频上的情况,其特征在于,包括以下步骤:
A:对所有业务应用的界面,均生成与所述界面对应的叠加描述子并保存,其中叠加描述子中包括业务应用标识信息、待叠加的多个业务应用的界面的Z序信息、期望叠加区域以及叠加控制参数;
B:针对多个待叠加的业务应用的界面,按序依次遍历所述界面的叠加描述子,并根据各叠加描述子的业务应用标识对各叠加描述子分别处理,从而生成叠加剪裁区;
C:在叠加剪裁区范围将多个应用业务的界面与视频叠加。
2.如权利要求1所述的方法,其特征在于,所述步骤A中,业务应用标识用于区分待叠加的界面所属的业务应用类别,所述业务应用类别分为当前活动的业务应用和非当前活动的业务应用。
3.如权利要求1所述的方法,其特征在于,所述步骤B,具体分为以下步骤:
B1:确定遍历各叠加描述子的顺序;
B2:获取并保存当前业务应用标识后,根据上述遍历顺序确定要遍历的第一个叠加描述子,将要遍历的第一个叠加描述子作为当前描述子;
B3:计算当前描述子的实际叠加区域,并确定当前描述子的实际叠加控制参数;
B4:根据得到的实际叠加区域和实际叠加控制参数修改叠加剪裁区的内容,然后返回步骤B3,直到遍历所有的叠加描述子。
4.如权利要求1或3所述的方法,其特征在于,所述步骤B中生成的叠加剪裁区被组织为各个实际叠加区域和叠加控制参数的集合时,则步骤C为,遍历所有与待刷新区域有关的实际叠加区域,按照对应的叠加控制参数将界面和视频进行叠加;
所述步骤B中生成的叠加剪裁区被组织为与界面象素一一对应的透明度缓冲区的形式时,则步骤C为,遍历待刷新区域内的每一个界面象素,根据界面象素对应的透明度将界面与视频进行叠加。
5.如权利要求3所述的方法,其特征在于,所述步骤B1中,按Z序遍历各叠加描述子。
6.如权利要求3所述的方法,其特征在于,所述步骤B3中,根据当前描述子的业务应用标识,判断当前描述子所属当前业务应用的类别,并根据此类别得到当前描述子的实际叠加控制参数。
7.如权利要求3或6所述的方法,其特征在于,所述当前描述子属于当前业务应用时,当前描述子实际叠加控制参数的透明度为不透明,当前描述子属于非当前业务应用时,当前描述子实际叠加控制参数的透明度为半透明。
技术领域\n本发明属于数字多媒体信息处理领域,尤其涉及一种在视频画面上叠加用户界面的方法。\n背景技术\n随着信息技术的发展,数字技术已经广泛应用于多媒体处理领域,这些数字多媒体设备在功能日益强大的同时也在不断提高其易用性,在视频画面上叠加用户界面已经成为一个趋势;数字多媒体设备通过灵活地配备软件,可以实现多种不同的业务功能,不同的业务应用在设计上相对独立,运行时可能会同时在视频上叠加各自的用户界面,且不同应用的界面之间还可能会重叠,容易给用户的理解和使用造成困难。因此,需要采用一种新的方法同时将多个应用的用户界面叠加到视频画面上。\n中国专利CN02149294“一种实现图文混合显示的方法”,是将待显示信息组织成多个图层,叠加在一起得到最终的输出图像。而实际应用中,不同应用的界面通常都在一个图层内部,而该专利并未对此给出解决方案。\n中国专利CN200510132415“一种用于在视频信号上叠加多个图形信号的控制装置及其方法”,则是通过逐个象素判断是否需要在视频上叠加图形信号,虽然该方法可以用于多个应用同时在视频上叠加界面的场合,但该专利需要逐个象素进行判断,运算量较大,且对当前正在操作的应用和未操作的应用没有分别进行处理。\n外国专利WO2006001506“IMAGE MIXING APPARATUS ANDPIXEL MIXER”是当两个被叠加的区域相互重叠时,根据两个区域的Z序来决定重叠部分的内容,但该专利同样对当前正在操作的应用和未操作的应用没有分别进行处理。\n综上所述,目前在视频上叠加界面的解决方案,均未对属于不同应用的界面加以区别对待,还有些方案未考虑同一图层内的界面相互重叠的情况。\n发明内容\n本发明所要解决的技术问题,是提供一种在视频画面上叠加用户界面的方法,从而实现在同一图层内相互重叠的多个用户界面的叠加处理以及对多个应用界面的区分。\n为了解决上述问题,本发明提供了,一种在视频画面上叠加用户界面的方法,应用于多个业务应用的界面同时叠加到视频上的情况,该方法包括以下步骤:\nA:对所有业务应用的界面,均生成与所述界面对应的叠加描述子并保存,其中叠加描述子中包括业务应用标识信息、待叠加的多个业务应用的界面的Z序信息、期望叠加区域以及叠加控制参数;\nB:针对多个待叠加的业务应用的界面,按序依次遍历所述界面的叠加描述子,并根据各叠加描述子的业务应用标识对各叠加描述子分别处理,从而生成叠加剪裁区;\nC:在叠加剪裁区范围将多个应用业务的界面与视频叠加。\n上述步骤A中,所述业务应用标识用于区分待叠加的界面所属的业务应用类别,所述业务应用类别分为当前活动的业务应用和非当前活动的业务应用。\n上述步骤B,具体分为以下步骤:\nB1:确定遍历各叠加描述子的顺序;\nB2:获取并保存当前业务应用标识后,根据上述遍历顺序确定要遍历的第一个叠加描述子,将要遍历的第一个叠加描述子作为当前描述子;\nB3:计算当前描述子的实际叠加区域,并确定当前描述子的实际叠加控制参数;\nB4:根据得到的实际叠加区域和实际叠加控制参数修改叠加剪裁区的内容,然后返回步骤B3,直到遍历所有的叠加描述子。\n当上述步骤B中生成的叠加剪裁区被组织为各个实际叠加区域和叠加控制参数的集合时,则步骤C为,遍历所有与待刷新区域有关的实际叠加区域,按照对应的叠加控制参数将界面和视频进行叠加;\n当上述步骤B中生成的叠加剪裁区被组织为与界面象素一一对应的透明度缓冲区的形式时,则步骤C为,遍历待刷新区域内的每一个界面象素,根据界面象素对应的透明度将界面与视频进行叠加。\n上述步骤B中具体步骤B1中,按Z序遍历各叠加描述子。\n步骤B3中,根据当前描述子的业务应用标识,判断当前描述子所属当前业务应用的类别,并根据此类别得到当前描述子的实际叠加控制参数。\n所述当前描述子属于当前业务应用时,当前描述子实际叠加控制参数的透明度为不透明,当前描述子属于非当前业务应用时,当前描述子实际叠加控制参数的透明度为半透明。\n本发明具在以下效果:\n1、由于本发明采用应用程序标识来区分欲叠加用户界面区域所属的应用,对当前应用和非当前应用的叠加控制参数分别进行处理,从而使用户看到的两类应用界面在视频上的叠加效果有明显区别;\n2、由于本发明中叠加剪裁区内的实际叠加区域采用区域运算得到,不必逐个象素判断,且叠加剪裁区只在需要时才根据叠加描述子重新计算生成,实际进行叠加时只需访问叠加剪裁区,因此降低了运算量。\n综上所述,采用本发明方法将界面叠加到视频上,原理简单,运算量低,可以处理同一图层内界面相互重叠的情况,并为当前应用和非当前应用的界面在视频上产生不同的叠加效果。与现有技术相比,能够节省计算能力,降低产品成本,美化界面效果,从而提升产品竞争力,非常适合用于将多个不同业务应用的界面同时叠加到视频上。\n附图说明\n图1为实施例中业务应用A的界面单独在图层上显示的示意图;\n图2为实施例中业务应用B的界面单独在图层上显示的示意图;\n图3为实施例中业务应用A、B的界面同时在同一个图层上显示的示意图;\n图4为实施例中业务应用B的界面被业务应用A的界面覆盖之后的实际叠加区域示意图;\n图5为实施例中视频画面的示意图;\n图6为实施例中业务应用A、B的界面同时叠加在视频上的示意图;\n图7为实施例中抠除了业务应用A的界面后覆盖剪裁区的形状示意图;\n图8为实施例中抠除了业务应用B的界面后覆盖剪裁区的形状示意图;\n图9为实施例的流程图;\n图10为实施例中生成叠加剪裁区的流程图;\n图11为实施例中叠加描述子处理模块的处理流程图;\n图12为实施例中将窗口的内容叠加到视频上的流程图。\n具体实施方式\n本发明的主要构思是,考虑叠加描述子中含有Z序信息,可以用于确定界面在相互重叠区域的叠加控制参数;采用应用程序标识来区分欲叠加界面区域所属的应用,对当前应用和非当前应用的叠加控制参数分别进行处理,从而使用户看到的两类应用界面在视频上的叠加效果有明显区别;另外叠加剪裁区内的实际叠加区域采用区域运算得到,且只在需要时才根据叠加描述子重新计算生成叠加剪裁区,实际进行叠加时只需访问叠加剪裁区即可。\n其中标识指与某类对象的某个特定实例相关联的指针、序号、编号或句柄等,即一切能在该类对象的所有实例中识别出该特定实例的数据或数据结构及其组合;\n当前应用指用户当前正在操作的业务应用,即当前活动的业务应用;\n非当前应用指用户当前没有操作的业务应用,即当前不活动的业务应用。\n下面结合附图对本发明的技术方案作进一步的详细描述。\n图9所示为,基于MicroWindows系统应用本发明技术方案的实施例,MicroWindows是一个开放源代码的图形系统,提供基本作图原语、区域集合运算、系统消息通讯和简单窗口管理等功能。本实施例在Linux环境实施,使用帧缓冲区(FrameBuffer)作为容纳用户界面的图层,以窗口为单位在视频上叠加界面,采用MicroWindows的Nano-X接口形式,主要修改服务器端的代码,另外本实施例中视频和界面都采用数字方式存储,叠加的结果也采用数字方式输出。\n其在视频画面上叠加用户界面的过程,包括以下步骤:\nA、生成叠加描述子\n本实施例中叠加描述子包含如下内容:\n1、期望叠加区域,也就是业务应用在视频上叠加的界面区域范围,本实施例中,业务应用的界面即为窗口,通过窗口数据结构指针访问窗口数据结构可以得到窗口的尺寸和位置信息,并将其作为该窗口的期望叠加区域;\n当然,也可以通过矩形或者更为复杂的曲线等直接描述出期望叠加区域的范围。\n2、根据MicroWindows服务器端窗口数据结构的组织形式决定了窗口之间叠加的先后顺序,即Z序;\n3、将窗口所属进程标识PID(process identifier),作为业务应用标识,将属于同一个进程的界面划归同一个业务应用,以PID来识别;\n4、本实施例中,叠加控制参数被省略,在生成叠加剪裁区时采用默认的策略确定实际的叠加控制参数。\nB、保存叠加描述子\n将上述系统中所有的叠加描述子组织成链表加以保存;同时修改原有的窗口数据结构,增加一个指针字段指向该窗口对应的叠加描述子,如果该窗口不需要叠加在视频上,则将该字段设为空值。\n本实施中,将叠加描述子保存在软件的数据结构中,在其它实例中也可以将叠加描述子保存在硬件寄存器或者闪存FLASH等中。\nC、生成叠加剪裁区\n在MicroWindows服务器端,所有窗口数据结构被组织成一个树的形式,树根是根窗口,其它的所有窗口都是根窗口的子窗口,子窗口的Z序位于其父窗口之上;而在同属一个窗口的子窗口中,排在前面的窗口的Z序又位于排在后面的窗口的Z序之上。\n根据上述分析可知,对窗口树进行后序遍历(Postorder Traversal)即可实现按照Z序从上到下对窗口进行遍历,而在本实施例中,每个叠加描述子都与一个窗口相对应,故对窗口树进行后序遍历等同于按照Z序从上到下遍历各叠加描述子。\n在遍历窗口树的同时,还要维护一个覆盖剪裁区,对于当前正在被遍历处理的窗口来说,覆盖剪裁区表示界面图层被所有Z序在该窗口之上且需要叠加到视频上的窗口覆盖之后剩余的区域,覆盖剪裁区与期望叠加区域求交集即可得到该窗口的实际叠加区域,而处理完某窗口的叠加描述子之后,覆盖剪裁区也随之缩小,要从中抠除该窗口的期望叠加区域。\n图1、图2分别表示业务应用A及业务应用B的界面,在本实施例中也可以称为窗口A和B单独在图层101、201上显示,其中阴影部分为叠加到视频上的期望叠加区域102、202。图3中窗口A及窗口B同时在图层301上显示,其中窗口A的Z序在窗口B之上,此时窗口A的实际叠加区域302与其期望叠加区域102相同,而窗口B的实际叠加区域303则比其期望叠加区域202小。图4在图层401中单独显示窗口B的实际叠加区域403,由于被窗口A覆盖,其期望叠加区域中有一部分402被从实际叠加区域中抠除。\n显然,遍历时先处理窗口A,此时覆盖剪裁区为整个图层,故窗口A的实际叠加区域与其期望叠加区域相同,此时,要从覆盖剪裁区中抠除窗口A的界面的期望叠加区域,如图7所示,整个界面图层701被抠除了窗口A的界面的期望叠加区域702,剩余的阴影部分703即为新的覆盖剪裁区。\n然后继续遍历,处理窗口B,将此时的覆盖剪裁区703与其期望叠加区域202求交集得到其实际叠加区域403,此时,要从覆盖剪裁区中抠除窗口B的期望叠加区域,如图8所示,801为整个界面图层,从原有的覆盖剪裁区703中抠除窗口B的期望叠加区域202,剩余的阴影部分803即为新的覆盖剪裁区,而802则为窗口A和B共同覆盖的图层区域。\n上述生成叠加剪裁区的具体过程,如图10所示,包括以下步骤:\n步骤1001:清空叠加剪裁区,将覆盖剪裁区初始化为整个图层,保存当前应用的PID,即MicroWindows系统内任何时刻都有且仅有一个窗口拥有焦点,该窗口对应的客户端进程为当前应用;\n步骤1002:对根窗口调用叠加描述子处理模块;\n步骤1003:将覆盖剪裁区加以保存。\n其中叠加描述子处理模块的处理流程,如图11所示,包括以下步骤:\n步骤1101:判断覆盖剪裁区是否为空或者本窗口不可见,如果是,结束流程,否则转向步骤1102;\n步骤1102:判断本窗口是否拥有子窗口,如果是,转向步骤1103,否则转向步骤1104;\n步骤1103:由于树的遍历通常都采用递归算法,所以本实施例中对本窗口的每个子窗口进行递归调用,即依次对每个子窗口调用叠加描述子处理模块,;\n步骤1104:判断本窗口是否需要叠加在视频上,如果是,转向步骤1105,否则结流程;\n步骤1105:计算实际叠加区域,调用Gd Intersect Region函数将本窗口占据的区域,也就是期望叠加区域,与当前的覆盖剪裁区求交集,结果即为实际叠加区域;\n步骤1106:判断当前窗口是否为当前业务应用,如果是,转向步骤1107,否则转向步骤1109;\n步骤1107:确定实际叠加控制参数,本实施例中叠加控制参数只包含透明度信息,将叠加描述子的PID与当前应用的PID加以比较,如果相等即属于当前应用,将透明度设为不透明,如果比较结果不相等则将透明度设为半透明;\n步骤1108:将本窗口的实际叠加区域和叠加透明度添加到叠加剪裁区域中;\n该步骤中所述的叠加剪裁区被组织成一个链表,链表的每个节点由其所属的窗口数据结构指针、实际叠加区域和叠加透明度组成。\n步骤1109:从覆盖剪区域中抠除本窗口占据的区域,本实施例通过调用Gd Subtract Region函数从覆盖剪裁区中抠除本窗口占据的区域,其结果为新的覆盖剪裁区。\n在实际操作过程中,如果窗口显示、隐藏、焦点或Z序发生变动时,都要重新生成叠加剪裁区,本实施例中通过修改MicroWindows代码实现这一步,即在执行相应操作的代码中间插入对叠加剪裁区生成模块的调用,也就是图10所示的流程即可。\nD、将界面与视频叠加\n在本实施例中,依次遍历叠加剪裁区内的每个节点,将界面图层中位于节点实际叠加区域内的象素按照相应的透明度叠加到视频上即可。其中由于界面和视频都是动态变化的,所以针对界面和视频的变化要分别考虑。\n图5所示为本实施例中视频画面501,其上显示了视频内容502。图6所示为窗口A和B叠加到视频601上的示意图,视频画面的内容604有一部分被窗口覆盖了,窗口A的实际叠加区域602与B的实际叠加区域603内采用的是不同的叠加控制参数。\n本实施例中界面变化引起的叠加以窗口为单位进行,将窗口的内容叠加到视频上的过程,如图12所示,包括以下步骤:\n步骤1201:应用发起一个针对某窗口的叠加请求;\n步骤1202:在叠加剪裁区域中搜寻属于该窗口的节点;\n步骤1203:判断搜寻是否成功,如果是,转向步骤1204,否则结束流程;\n步骤1204:将位于该窗口实际叠加区域内的象素按照透明度叠加到视频上。\n对于,视频变化引起的叠加较为简单:依次遍历叠加剪裁区内的每个节点,将界面图层中位于节点实际叠加区域内的象素按照相应的透明度叠加到视频上。\n上述实施例中,由于步骤C中生成的叠加剪裁区被组织为各个实际叠加区域和叠加控制参数的集合,因此步骤D中将界面与视频叠加过程为,遍历所有与待刷新区域有关的实际叠加区域,按照对应的叠加控制参数将界面和视频进行叠加。\n除了本实施例外,在实际操作中,步骤C也可以按照现有技术将生成的叠加剪裁区组织为与界面象素一一对应的透明度缓冲区的形式,此时步骤D中将界面与视频叠加过程为,遍历待刷新区域内的每一个界面象素,根据其对应的透明度将其与视频进行叠加。\n上述实施例,将界面叠加到视频上,原理简单,运算量低,在处理同一图层内界面相互重叠的情况时,使得当前应用和非当前应用的界面在视频上产生不同的叠加效果。与现有技术相比,能够节省计算能力,降低产品成本,美化界面效果,从而提升产品竞争力,非常适合用于将多个不同业务应用的界面同时叠加到视频上。\n当然,上述具体实施例不是对本发明技术方案的进一步限定,任何熟悉本领域的技术人员对本发明技术特征所作的等同替换或相应改进,仍在本发明的保护范围之内。
法律信息
- 2017-11-07
未缴年费专利权终止
IPC(主分类): H04N 5/445
专利号: ZL 200710147444.8
申请日: 2007.09.14
授权公告日: 2010.06.09
- 2015-06-03
专利权的转移
登记生效日: 2015.05.14
专利权人由中兴通讯股份有限公司变更为南京中兴新软件有限责任公司
地址由518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部变更为210012 江苏省南京市雨花台区紫荆花路68号
- 2010-06-09
- 2009-05-13
- 2009-03-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2004-06-02
|
2002-11-12
| | |
2
| |
2006-08-02
|
2005-12-23
| | |
3
| |
1998-09-16
|
1997-04-30
| | |
4
| | 暂无 |
1999-04-28
| | |
5
| |
2001-09-19
|
2001-03-12
| | |
6
| |
2002-04-10
|
2001-07-31
| | |
7
| |
2004-07-07
|
2003-11-27
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |