一种无人值守的分布式多线程字幕渲染和播出方法

文档序号:7686723阅读:98来源:国知局
专利名称:一种无人值守的分布式多线程字幕渲染和播出方法
技术领域
本发明涉及广电领域电视节目制播机构的字幕播出技术,具体涉及一种 无人值守的分布式多线程字幕渲染和播出方法。
背景技术
从具体实现的角度来说,电视字幕的数据结构是非常复杂的,因而实现
字幕渲染的算法也是非常复杂的。主要的原因如下
(1) 电视台对字幕效果的要求越来越丰富。字幕作为一种电视节目的形 态,具有独立表意功能,它不仅完成用文字符号说明内容的基本功能,同时 还通过特技、动画的创作,为节目内容添光加彩。字幕的内容(文本)、静 态渲染字幕属性(字体、字色等)、动态渲染特技属性构成电视字幕的基本形 态。其中,字幕内容是字幕的实际内涵;静态渲染和动态渲染属性是为内容 服务的,是字幕的展现形式。
(2) 随着电视频道、节目内容的细分,各个部门的分工也更加专业化, 电视字幕的应用面也越来越广泛。
(3) 电视节目的日益多样性和电视观众欣赏、鉴赏水平的不断提高,也要 求电视字幕的应用模式必然朝着多样性的方向发展。
因此, 一个字幕产品中包含了很多图形处理、图像处理、特技处理的元 素,而且随着IT技术的不断发展,还会有更多的元素加入到电视字幕这种产 品形态中。在一个完整的字幕系统的数据结构中,涉及到静态渲染的属性有 接近300个,涉及到动态特技的属性有接近500个,渲染算法逻辑分支有5000 个,不同分支间的排列组合更是一个天文数字。并且,随着IT技术的发展和 用户需求的增加,这些数字还会不断增加。
为了保证在播出线上字幕播出的稳定性和安全性,避免由于软件系统崩 溃导致的播出事故,发明人提出了 "一种基于多样性应用的电视字幕播出设 备性能保障的方法,,(见同期的专利申请),其核心思路是自动渲染机器人
5使用随机数生成技术,生成大量的字幕对象,然后交给系统底层渲染引擎进 行渲染,在渲染过程中进行信息监控和信息处理。
在实际工作中,字幕的渲染是非常耗时的。以字元渲染为例,假设当前
Windows才喿作系统中的实际可用的TrueType字库为100个,对每个字库的其 中2000个常用汉字字符进行渲染,每个字符的字号从8到200,宽度从10% 到300%,那个渲染的次数为
100 x 2000 x ( 200 - 8 ) x ( 300 - 10 ) = 11136000000次。 假设每次渲染的平均时间为50毫秒,那么完成渲染的时间为5. 56 x 1011 毫秒,约等于155000小时,大约需要6400天。这种时间消4毛在实际应用中 是无法接受的,必须通过合理的配置对字母渲染模式加以改进。

发明内容
本发明的目的在于针对实际工作中字幕渲染耗时长的缺陷,提供一种可以 提高字幕渲染效率的无人值守的分布式多线程字幕渲染和播出方法。
本发明的技术方案如下 一种无人值守的分布式多线程字幕渲染和播出方 法,该方法构建一个渲染工作站集群,通过预先设置,在每台工作站上部署不 同的渲染任务,分别对不同类型的字幕内容进行渲染,然后通过部署一台信息 处理工作站,集中监视每个工作站的渲染状态,收集错误信息并进行处理。
如上所述的无人值守的分布式多线程字幕渲染和^^出方法,该方法-使用一 台任务分发工作站对每台作为工作站的渲染机进行渲染任务的分发;或者,在 每台渲染机上手工编排渲染任务。
如上所述的无人值守的分布式多线程字幕渲染和播出方法,其中,每台工 作站通过启动多个渲染线程,分别对不同类型的字幕内容进行渲染。
进一步,在上述无人值守的分布式多线程字幕渲染和播出方法中,渲染任务 的逻辑结构采用"渲染引擎ID +渲染引擎数据,,的形式,渲染引擎ID的定义 如下
ID = 0:表示静态字元渲染引擎; ID = 1:表示静态图元渲染引擎; ID = 2:表示动态特技渲染引擎;ID = 3:表示字幕单渲染引擎。
如上所述的无人值守的分布式多线程字幕渲染和播出方法,其中,当一个 渲染机接收到一个渲染任务后,根据渲染引擎ID和渲染引擎数据,按如下方式 创建渲染对象
(1) 当渲染引擎ID为O,创建随机的字元对象;
(2) 当渲染引擎ID为l,创建随机的图元对象;
(3) 当渲染引擎ID为2,创建随机的特技对象;
(4) 当渲染引擎ID为3且模式为0,创建随机的字幕单对象;
(5) 当渲染引擎ID为3且模式为1,创建基于才莫板的字幕单对象。
进一步,在上述无人值守的分布式多线程字幕渲染和播出方法中,针对静 态字元渲染引擎和静态图元渲染引擎,渲染过程中产生的渲染信息包括 —心跳信号表示渲染机是否正常工作; 一物理内存的使用情况(渲染前后的对比); --虚拟内存的使用情况(渲染前后的对比); —渲染^毛时;
--当前字幕对象用于错误处理时的调试。
针对动态特技渲染引擎,渲染过程中产生的渲染信息包括
—心跳信号表示渲染机是否正常工作;
—物理内存的使用情况(渲染前后的对比);
—虚拟内存的使用情况(渲染前后的对比);
—CPU/GPU的峰值、持续峰值、多CPU的均衡情况;
--被赋予了特技或者特技组合的字幕对象用于错误处理时的调试。
针对字幕单渲染引擎,渲染过程中产生的渲染信息包括
—心跳信号表示渲染机是否正常工作;
一物理内存的使用情况(渲染前后的对比);
--虚拟内存的使用情况(渲染前后的对比);
--CPU/GPU的峰值、持续峰值、多CPU的均衡情况;
--实时性信息每秒播出的帧数;
—同 一个时间段的多个字幕对象的空间关系;
7——个字幕单中每个字幕对象的播出物理空间位置; —字幕单的精确播出时间;
一紧急插播的字幕单的信息;
—字幕单或者字幕单序列对象用于错误处理时的调试。
进一步,在上述无人值守的分布式多线程字幕渲染和播出方法中,每台工 作站设立一个代理服务进程,通过代理服务进程与信息处理工作站进行网络通 讯,包括如下处理流程
(1)将渲染进程发来的渲染消息》文入到消息队列中;
(2 )从消息队列中取出最近的消息进行预处理;
(3 )才艮据预处理的情况,将最终的信息封装成Socket凄t据包通过TCP/IP 协议发送给信息处理工作站; (4)维护消息队列。
如上所述的无人值守的分布式多线程字幕渲染和播出方法,其中,渲染信
息处理机包括如下处理流程
(1)收到从渲染机发送的Socket数据包;
(2 )根据通讯协议的数据结构,对Socket数据包进行解析;
U)将解析出来的信息,进行错误处理,将有用的信息存储到数据库中,
同时将这些信息发送给信息展现线程;
(4)信息展现线程将信息展现在用户界面上,同时根据信息的错误级别进
行声音警告、色彩警告、图示警告。
本发明通过将不同的渲染任务分别部署在不同的渲染工作站上,提高了字 幕渲染的工作效率;通过部署一台信息处理工作站,集中监^L每个工作站的渲 染状态,并处理错误信息,使该方法更具灵活性和实用性。通过科学的定义和 合理的配置,本发明可以使字幕渲染技术朝着更加稳定、安全、高效的方向发展。


图1为本发明所用系统的结构示意图。图2本发明的数据传送模型示意图。
具体实施例方式
下面结合附图和具体实施例对本发明进行详细的描述。
图1显示了基于无人值守的分布式、多线程字幕渲染和播出引擎的系统结 构组成。根据设备的情况部署集群渲染工作站,在渲染前,制定每台工作站的 渲染任务。监视和错误处理终端用来收集每台渲染工作站的渲染状态,收集错 误信息并进行处理。
參工作流程
(l)在图l中,每个渲染机接收不同的渲染任务,可以使用一台任务分发 工作站进行渲染任务的分发,也可以在每台渲染机上手工编排,这里不对任务 分发工作站进行描述,统一使用后面一种方式。
(2 )渲染机收到任务后,即可使用字幕参数随机数模型创建字幕对象或者 字幕播出单,而后启动渲染引擎进行字幕的渲染。
(3)渲染机在渲染过程中,将渲染的信息通过网络发送给统一的监控终端 进行处理。
*数据模型
针对上面给出的无人值守的分布式多线程字幕渲染和播出方法的流程示意 图,在这个方法中,重点使用的模型包括如下几种
(1) .渲染任务模型
(2) .渲染对象模型
(3) .渲染信息模型
(4) .数据传送模型
1.渲染任务模型
一个渲染任务的逻辑结构是"渲染引擎10+渲染引擎数据"。物理表现形 式可以是一个标准的XML文件。具体描述如下 (1).渲染引擎ID
表示了这个任务使用的渲染引擎。具体定义如下> ID = 0:表示静态字元渲染引擎
> ID = 1:表示静态图元渲染引擎
> ID = 2:表示动态特技澧染引擎
> ID = 3:表示字幕单渲染引擎(多个字幕对象组成一个字幕单,该引擎包括 静态和动态引擎)
可以根据应用的需要,扩展其他的渲染引擎。
在一个渲染任务中,针对不同的渲染引擎,会有不同结构的渲染数据。
(2) .静态字元渲染引擎数据(引擎ID=0 ) 针对静态字元渲染引擎,数据结构如下
>是否进行断点续测。
>字库名字数组。表示这个渲染任务对哪些字库进行处理。
>字符索引。可以是多个Text文本文件的全i 各径名。这些Text文本文件中包
含了需要渲染的字符、词组、短句等。 >字号的最小值、最大值、每次循环渐进的步长。 >字符宽度的最小值、最大值、每次循环渐进的步长。 >字元渲染的面、边、影的属性。
(3) .静态图元渲染引擎数据(引擎ID-l) 针对静态图元渲染引擎,数据结构如下
>是否进行断点续测。
>图元的索引。表示这个渲染任务对哪些图元进行处理。 >图元逻辑高度的最小值、最大值、每次循环渐进的步长。 >图元逻辑高度的最小值、最大值、每次循环渐进的步长。 >图元渲染的面、边、影的属性。
(4) .动态特4支渲染引擎数据(引擎ID=2 ) 针对动态特技渲染引擎,数据结构如下
>是否进行断点续测。
>特技的索引。表示这个渲染任务对哪些特技进行处理。
10>特技类型表。主要列出这些特技是属于CPU特技、GPU特技还是混合特技。
根据这个属性对不同的资源进行监视和信息收集。 >特技参数的最小值、最大值、每次循环渐进的步长。每种特技参数不同,针 对每个参数都需要定义。
(5) 字幕单渲染引擎数据(引擎ID=3 ) 针对字幕单渲染引擎,数据结构如下
>是否进行断点续测。
>渲染模式O表示基于随机字幕单的渲染;l表示基于模板字幕单的渲染。 >内嵌以上三种引擎的数据。渲染模式为O时有效。也就是说,在字幕单的渲
染引擎数据中,包括了静态字元渲染引擎、静态图元渲染引擎、动态特4支渲
染引擎的混合数据。
>字幕单的模板文件路径。渲染模式为l时有效。这些模板实际上就是字幕单 的工程文件。根据用户的不同使用环境创建大量的模板。
2. 渲染对象模型
当 一个渲染机接收到 一个渲染任务后,会根据渲染引擎ID和渲染引擎数据, 创建以下渲染对象
(1) 当引擎ID为O,创建随机的字元对象;
(2) 当引擎ID为1,创建随机的图元对象;
(3) 当引擎ID为2,创建随机的特技对象;
(4) 当引擎ID为3且模式为0,创建随机的字幕单对象;
(5 )当引擎ID为3且模式为1,创建基于模板的字幕单对象; 渲染机创建完这些对象之后,就交给渲染引擎进行无人值守的渲染任务。
3. 渲染信息模型
这里指的渲染信息,是指渲染机在渲染过程中产生的一些信息(包括不同 级别的错误信息)。与渲染对象模型类似,对于不同的渲染引擎,渲染信息的模 型也是不同的。
(1).针对前两种渲染引擎(静态字元、静态图元)渲染信息模型如下>心跳信号表示渲染机是否正常工作; >物理内存的使用情况(渲染前后的对比); >虚拟内存的使用情况(渲染前后的对比); >渲染耗时;
>当前字幕对象用于错误处理时的调试。
(2).针对动态特技渲染引擎,信息模型如下 >心跳信号表示渲染机是否正常工作; >物理内存的使用情况(渲染前后的对比); >虚拟内存的使用情况(渲染前后的对比); > CPU/GPU的峰值、持续峰值、多CPU的均衡情况; >被赋予了特技或者特技组合的字幕对象用于错误处理时的调试。
(3).针对字幕单渲染引擎,信息模型如下 >心跳信号表示渲染机是否正常工作; >物理内存的使用情况(渲染前后的对比); >虚拟内存的使用情况(渲染前后的对比);
> CPU/GPU的峰值、持续峰值、多CPU的均衡情况; >实时性信息每秒播出的帧数;
>同一个时间段的多个字幕对象的空间关系;
> 一个字幕单中每个字幕对象的播出物理空间位置; >字幕单的精确播出时间;
>紧急插播的字幕单的信息;
>字幕单或者字幕单序列对象用于错误处理时的调试。
4.数据传送模型
这里的数据传送模型基于TCP/IP网络协议的。模型的图示如图2所示。在 这个模型中,数据传送的流程如下 (1).渲染机的数据传送 渲染进程的处理流程如下>渲染任务驱动渲染机进行字幕播出渲染;
>渲染过程中,根据具体的渲染引擎产生相应的渲染信息;
>将这些信息通过进程通讯方式发送给本机的一个代理服务进程。
信息代理服务进程的处理
在渲染机上,设立一个"代理服务进程,,的主要原因是考虑到尽可能不影 响到"渲染进程"的资源占用,从而尽可能模拟真实的字幕播出服务器的应用。 这个进程负责与信息处理工作站进行网络通讯。同时这个进程还可以对渲染信 息进行预处理,对于正常的消息,可以只把心跳信息发给信息处理工作站,从 而降低网络流量。处理的流程如下 >将渲染进程发来的渲染消息放入到消息队列中; >从消息队列中取出最近的消息进行预处理;
>根据预处理的情况,将最终的信息封装成Socket数据包通过TCP/IP协议发
送给信息处理工作站; >维护消息队列。
(2).渲染信息处理机的数据传送 渲染信息处理机的处理流程如下 >收到从渲染机发送的Socket数据包; >根据通讯协议的数据结构,对Socket数据包进行解析; >将解析出来的信息,进行错误处理,将有用的信息存储到数据库中,同时将
这些信息发送给信息展现线程; >信息展现线程将信息展现在用户界面上,同时根据信息的错误级别进行声音 警告、色彩警告、图示警告。
员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。
权利要求
1. 一种无人值守的分布式多线程字幕渲染和播出方法,其特征在于该方法构建一个渲染工作站集群,通过预先设置,在每台工作站上部署不同的渲染任务,分别对不同类型的字幕内容进行渲染,然后通过部署一台信息处理工作站,集中监视每个工作站的渲染状态,收集错误信息并进行处理。
2. 如权利要求1所述的无人值守的分布式多线程字幕渲染和播出方法,其 特征在于该方法使用 一 台任务分发工作站对每台作为工作站的渲染机进行渲 染任务的分发;或者,在每台渲染机上手工编排渲染任务。
3. 如权利要求1所述的无人值守的分布式多线程字幕渲染和播出方法,其 特征在于每台工作站通过启动多个渲染线程,分别对不同类型的字幕内容进 行渲染。
4. 如权利要求1或2或3所述的无人值守的分布式多线程字幕渲染和播出 方法,其特征在于渲染任务的逻辑结构采用"渲染引擎ID +渲染引擎数据" 的形式,渲染引擎ID的定义如下ID = 0:表示静态字元渲染引擎; ID = 1:表示静态图元渲染引擎; ID = 2:表示动态特技渲染引擎; ID = 3:表示字幕单渲染引擎。
5. 如权利要求4所述的无人值守的分布式多线程字幕渲染和播出方法,其 特征在于当一个渲染机接收到一个渲染任务后,根据渲染引擎ID和渲染引擎 数据,按如下方式创建渲染对象(1) 当渲染引擎ID为O,创建随机的字元对象;(2) 当渲染引擎ID为1,创建随机的图元对象;(3) 当渲染引擎ID为2,创建随机的特技对象;(4) 当渲染引擎ID为3且模式为0,创建随机的字幕单对象;(5) 当渲染引擎ID为3且模式为1,创建基于才莫板的字幕单对象。
6. 如权利要求4所述的无人值守的分布式多线程字幕渲染和播出方法,其 特征在于针对静态字元渲染引擎和静态图元渲染引擎,渲染过程中产生的渲 染4言息包4舌--心跳信号表示渲染机是否正常工作; --物理内存的使用情况; 一虚拟内存的使用情况; —渲染耗时;--当前字幕对象用于错误处理时的调试。
7. 如权利要求4所述的无人值守的分布式多线程字幕渲染和播出方法,其 特征在于针对动态特技渲染引擎,渲染过程中产生的渲染信息包括--心跳信号表示渲染机是否正常工作; --物理内存的使用情况; --虚拟内存的使用情况;一CPU/GPU的峰值、持续峰值、多CPU的均衡情况;—被赋予了特技或者特技组合的字幕对象用于错误处理时的调试。
8. 如权利要求4所述的无人值守的分布式多线程字幕渲染和播出方法,其 特征在于针对字幕单渲染引擎,渲染过程中产生的渲染信息包括—心跳信号表示渲染机是否正常工作; --物理内存的使用情况; --虚拟内存的使用情况;—CPU/GPU的峰值、持续峰值、多CPU的均;銜情况;—实时性信息每秒播出的帧数;—_同 一个时间段的多个字幕对象的空间关系;——个字幕单中每个字幕对象的播出物理空间位置; —字幕单的精确播出时间;—紧急插播的字幕单的信息;--字幕单或者字幕单序列对象用于错误处理时的调试。
9. 如权利要求1所述的无人值守的分布式多线程字幕渲染和播出方法,其 特征在于每台工作站设立一个代理服务进程,通过代理服务进程与信息处理 工作站进行网络通讯,包括如下处理流程(1)将渲染进程发来的渲染消息》丈入到消息队列中; (2 )从消息队列中取出最近的消息进行预处理;(3 )根据预处理的情况,将最终的信息封装成Socket数据包通过TCP/IP协议发送给信息处理工作站; (4)维护消息队列。
10.如权利要求9所述的无人值守的分布式多线程字幕渲染和播出方法,其特征在于渲染信息处理机包括如下处理流程 (1)收到从渲染机发送的Socket数据包; (2 )根据通讯协议的数据结构,对Socket数据包进行解析; (3)将解析出来的信息,进行^l普误处理,将有用的信息存储到数据库中,同时将这些信息发送给信息展现线程;(4 )信息展现线程将信息展现在用户界面上,同时根据信息的错误级别进行声音警告、色彩警告、图示警告。
全文摘要
本发明涉及广电领域电视节目制播机构的字幕播出技术,具体涉及一种无人值守的分布式多线程字幕渲染和播出方法。该方法构建一个渲染工作站集群,通过预先设置,在每台工作站上部署不同的渲染任务,分别对不同类型的字幕内容进行渲染,然后通过部署一台信息处理工作站,集中监视每个工作站的渲染状态,收集错误信息并进行处理。本发明提高了字幕渲染的工作效率,使字幕渲染技术朝着更加稳定、安全、高效的方向发展。
文档编号H04N5/278GK101483724SQ20081005603
公开日2009年7月15日 申请日期2008年1月11日 优先权日2008年1月11日
发明者吴正斌 申请人:新奥特(北京)视频技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1