机顶盒平台的字幕数据格式分析及其显示实现
视频节目对白字幕数据格式规范
![视频节目对白字幕数据格式规范](https://img.taocdn.com/s3/m/9f83b7d94a7302768f99394d.png)
5.3.4 对白块共有显示参数结构定义
对白块共有显示参数结构定义见表6。
6
字段名 BlockParameters Language Position
Font
FontLatin LineAlign Layout
表6 对白块共有显示参数结构定义
意义 对白块共有显示参数数据标志 语言编号(可选) 对白块位置 a
4.3.2 字符编码、字库
字符编码规定:使用Unicode字符集。 字库规定:使用支持Unicode字符集的字库。
4.3.3 对白文字的语言支持
对于对白字幕文件中的一个对白段应: ——定义一个语言分类编号,标明对白文字的语言种类; ——使用 Unicode 字符编码; ——定义字体 I,支持本地语言(比如中文)字符;
对白段 2
„„
对白段 n
节目 ID …… 视频标准
ห้องสมุดไป่ตู้
一个文件可包含多个对白段
图1 对白字幕文件结构图
对白段
公共显示参数
公共特技参数
对白 字幕 入出 时码
第 1 对白屏
„„
第 n 对白屏
面边影 位置
文字排版
类型
时码
相 文本本
对 字屏屏
入 内显特
字体
„„
对齐
出 容示技
时
参参
码
数数
u
图2 对白段结点结构图
相 文本本
对 字屏屏
入 内显特
出 容示技
时
参参
码
数数
u
4.3 多语言支持
4.3.1 字符集设置
遵照IETF RFC 3629,本标准采用的字符编码为XML头标明的UTF-8方式的Unicode字符集。在文件信 息块中设置了可选的Language字段以标明字幕文件中所有文字的语言类别。在每个对白块的头信息块中 设置了可选的Language字段以标明该对白块的语言类别。
机顶盒平台的字幕数据格式分析及其显示实现
![机顶盒平台的字幕数据格式分析及其显示实现](https://img.taocdn.com/s3/m/1387d76e25c52cc58ad6be07.png)
机顶盒平台的字幕数据格式分析及其显示实现1 引言随着数字电视的蓬勃发展,数字电视已逐渐进入千家万户,除了传统的电视节目外,通过利用先进的数字电视技术为广大用户提供更多的信息服务,是广播电视事业发展的必然趋势。
字幕(subtitle)作为一种简便而直观的信息提供途径,其重要性主要体现在两个方面。
一是字幕可以为听力有障碍的人提供另一个"语音"信息途径;二是字幕功能可以通过简单的后期制作(如多语言显示),配合电视节目的全球化推广提供便捷的平台。
DVB 作为全球应用最广泛的数字电视传输标准,也为多种语言的字幕提供了相应的规范,从而使字幕成为不同国家和地区电视节目交流的良好载体。
2 DVB 数字电视字幕规范2.1 字幕控制信息规范控制信息的规范主要包括有效数据的加载和提取索引信息的存放两个方面。
DVB 中规定,字幕信息要以节目的私有数据包形式复用到节目的基本流中,与音视频数据加载形式类似。
提取索引信息则是利用DVB 中的描述符(descriptor)语法插入到节目映射表(PMT)的私有数据段中。
流类型为0×06 的私有数据段,承载本节目私有数据提取的相关信息:私有数据包的PID 及其描述符。
字幕描述符的标签值(descriptor_tag)为0×59,语法如下:分析字幕描述子可得出该字幕的语言代码(ISO639_language_code)、字幕类型、合成页及可选的辅助页。
这些信息在字幕数据的提取中将作为数据提取的索引信息。
2.2 字幕数据编码规范字幕显示在终端是以页的形式显示出来,每一页又分成多个区域,每一个区域里又关联着多个图形对象和区域的颜色。
因此,字幕数据编码是根据这些需求来定义的。
字幕数据承载在PES 包的负载中,结构如图1 所示。
图1 字幕数据的数据结构分析字幕的数据结构可知,前两个字节是字幕数据的确定信息,包括一个数据定义字节(该字段定义该数据流为DVB 字幕,其值为0×20)和一个字节的字幕流识别id(其值为0×00);最后一个字节为字幕数据结束标志(其值为0×ff)。
DVB数字电视机顶盒中字幕解码器的设计与实现
![DVB数字电视机顶盒中字幕解码器的设计与实现](https://img.taocdn.com/s3/m/86e5403b43323968011c921b.png)
标志不同数据流的 PD, 14字节 为数据 负载。为 I 后 8
了使 不 同的节 目以及节 目的各 个不 同部 分能 正确地 复 用 一个 统一 的传 输流 , E 2定 义 了节 目专 用信 息 MP G一 PIPorm SeicIfmao ) 传送节 目和 PD之 S( rga pcf no tn 来 i r i I 间 的关联 。P I 须 以一定 的 频 率 不 断 发送 , 秒 至 S必 每 少2 0次 。 S的 内 部 关 系 如 图 1 示 。 S使 用 4个 PI 所 PI
维普资讯
《 中国有线电视)06 1 ) ) 0 (7 2
CHI NA GI DI TAL CABL TV E
⑥
文 章 编 号 :07—72 ( 06 1 10 0 2 2 0 )7—10 — 4 7 1 0
-与 ・ 开 应 发用
中 图分 类号 : N 4 .9 T 99 17
口Z HANG Do gs e g HOU Jn l g n —h n 。Z i —n i
( ea U iesy J ns aj g2 0 2 C ia H h i nvr t, i guN n n 10 4, hn ) i a i
Absr c I h s p p r h rn i l fs b i e s se i iia t a t:n ti a e ,te p i cp e o u tt y tm n d g tl TV e p Bo fDVB i i l n r 。 l S tTo x o s man y i to du e c d. Wih t e d t i d a ay i ft e a c i cu e o t h eal n l sso h r ht t r fDVB s b il y t m .ad sg e d la tSi l— e e u tt s se e e in d mo e nd i mpe me tto fDVB u tte d c d r a e b o g u . n ai n o s b il e o e r r u hto t Ke r s: y wo d DVB;DTV;s b i e s se ;de o e u t l y tm t cd r
DVB-subtitle简介
![DVB-subtitle简介](https://img.taocdn.com/s3/m/95be8272793e0912a21614791711cc7931b778fc.png)
DVB su btitl e (转) 2009-12-25 10:12:50| 分类:默认分类 |标签:|字号大中小订阅冯卓明龚家华刘卫忠郑立新(华中科技大学电子科学与技术系,湖北武汉 430074)摘要:本文研究在机顶盒上实现对DVB字幕的解码和呈现,基于ST公司的机顶盒软硬件平台,设计实现图形及字符型字幕的解码以及相关呈现技术与算法,分析字幕实现流程以及关键技术。
关键词:字幕(Subti tle),解码器,机顶盒,传输流在D VB规范中定义了一种功能强大的字幕系统,用于在DV B数字电视广播系统中提供字幕服务,该系统基于位图方式,因此它可方便的用不同的字体以及颜色来呈现信函及信息;使用字幕提供的服务系统最大好处在于特殊字符的呈现,比如可方便显示中文和日文中的特殊字符。
虽然该系统的主要应用于TV制作,比如台标叠加、滚动字幕等,但是运用该方法可以将任何图文叠加在电视机屏幕上。
系统使用了彩色查找表(CLUT)方式来定义颜色,基于MPEG-2系统传输数据,字幕技术在数字电视高速发展的今天显得越来越重要。
1.解码器模型在机顶盒中,底层的驱动模块提供了数据包(如字幕流)接收和基于区域的屏幕显示功能,而D VB字幕标准本身就是基于区域的,因此,字幕解码器完全实现为一个上层软件模块,将软解码得到的字幕信息由OSD驱动模块在屏幕上呈现出来。
下面是DVB字幕标准提供了一个字幕解码器的参考模型,本设计完全遵循该模型【1】。
PID过滤器缓冲器预处理编码数据缓冲字幕处理复合缓冲字幕象素缓冲TS流字幕解码器图1字幕解码器模型图2是字幕解码器的软件系统结构:应用程序字幕解码器数据接收模块OS D 驱动模块硬件(机顶盒)图2解码器系统结构在软件系统中,字幕解码器实现为一个中间件,它提供一些必要的接口供应用层调用,如STS UBT_I nit()、STSU BT_St art()、STSU BT_Se tStre am()等。
机顶盒字幕显示详解
![机顶盒字幕显示详解](https://img.taocdn.com/s3/m/fc3663c081c758f5f71f6708.png)
1.概述Subtitle 模块将媒体流中的字幕流数据解码成可显示的字幕,是一种简便而直观的信息提供途径,其重要性主要体现在两个方面。
一是字幕可以为听力有障碍的人提供另一个"语音"信息途径;二是字幕功能可以通过简单的后期制作(如多语言显示),配合电视节目的全球化推广提供便捷的平台。
DVB作为全球应用最广泛的数字电视传输标准,也为多种语言的字幕提供了相应的规范,从而使字幕成为不同国家和地区电视节目交流的良好载体。
1.1 DVB subtitle的组织DVB Subtitle 字幕被定义成一路单独的ES 流,复用在TS 流中,通过解析PMT 表可得到字幕流的PID 信息。
在PMT 表中,描述DVB 字幕流类型为0x06,数据属性包括:字幕PID、页ID(composition-page_id)、辅助页ID(ancilliarypage_id)、语言编码等信息,这些描述信息在PMT 表中的两种格式如图1.1 所示:1.单PID,根据页ID 来区分不同字幕。
composition-page_id 表示一路字幕信息,如节目1,同一个PID 的字幕流下有两路不同语言的字幕。
2. 多PID,每个字幕使用独立的PID。
此时每一个PID 的字幕流只承载一路字幕,如节目2,有多少路字幕就需要多少个PES 流来传输。
图1.1 DVB Subtitle 在PMT 表中的描述2.重要概念1:页分段(page composition)。
通过页id(page_id)定义了该页显示终止时间、页的状态、该页中区域数、各区域号、各区域的水平及垂直位置。
2:区域分段(region composition)。
用于定义该区域的宽高、水平垂直位置、所使用的CLUT 表的CLUT_id值、对象的id、区域背景色以及像素深度等信息。
3:CLUT分段(CLUT definition)。
用于定义颜色,以便把传输的虚颜色转换成实际色板中的颜色。
数字电视隐蔽字幕显示的研究与实现的开题报告
![数字电视隐蔽字幕显示的研究与实现的开题报告](https://img.taocdn.com/s3/m/1f31c6e5294ac850ad02de80d4d8d15abf23006a.png)
数字电视隐蔽字幕显示的研究与实现的开题报告一、研究背景隐蔽字幕是指一种与视频内容相同时显现出来的字幕。
它通常是为听力障碍人群提供服务的,但在一些情况下也能成为其他观众的选择。
数字电视作为一种新型的电视媒体,隐蔽字幕的显示对广大观众来说具有重要的意义。
因此,研究数字电视隐蔽字幕的显示问题是十分必要的。
数字电视隐蔽字幕的显示问题涉及到图像处理、数据处理、音视频编解码等多个领域的知识。
准确、高效地实现数字电视隐蔽字幕的显示,需要使用多种技术手段,例如语音识别、机器学习、数据挖掘等。
本文旨在探究数字电视隐蔽字幕的显示问题,并提供可行性的、实用性的实现方案。
二、研究内容本文将主要从以下两个方面开展研究:1. 隐蔽字幕的提取和语音识别对于数字电视隐蔽字幕的显示,首先需要进行的是隐蔽字幕的提取和语音识别。
本文将使用机器学习和数据挖掘技术,将视频流中的隐蔽字幕提取出来,并对提取出的文字进行语音识别,从而实现隐蔽字幕的自动识别。
2. 隐蔽字幕的显示在实现隐蔽字幕自动识别之后,还需要将识别出的文字在视频流中进行显示,以供观众观看。
本文将使用图像处理和视频编解码等技术,将识别出的文字嵌入到视频流中,并进行适当的位置、字体、颜色等设置,从而实现隐蔽字幕的显示。
三、研究意义隐蔽字幕的显示对视听障碍人群来说具有非常重要的意义,可以提高他们观看电视节目的质量和体验。
同时,隐蔽字幕的显示也对非听力障碍人群来说有一定的价值。
在一些情况下,观众可能需要在嘈杂的环境中观看电视节目,或者需要静音观看,此时隐蔽字幕可以提供更好的观看体验。
实现数字电视隐蔽字幕的自动识别和显示,不仅可以提高数字电视业的技术水平和服务水平,还可以为听力障碍人群和大众观众提供更好的电视观看体验,具有一定的社会意义和经济价值。
四、研究方法本文将主要通过以下三种方法来实现数字电视隐蔽字幕的自动识别和显示:1. 机器学习和数据挖掘等技术机器学习和数据挖掘是实现数字电视隐蔽字幕自动识别的重要手段之一。
实现机顶盒在电视屏幕显示信息的方法及其系统[发明专利]
![实现机顶盒在电视屏幕显示信息的方法及其系统[发明专利]](https://img.taocdn.com/s3/m/210bef254028915f814dc21c.png)
专利名称:实现机顶盒在电视屏幕显示信息的方法及其系统专利类型:发明专利
发明人:方坤
申请号:CN201110063807.6
申请日:20110317
公开号:CN102143340A
公开日:
20110803
专利内容由知识产权出版社提供
摘要:本发明涉及机顶盒相关技术领域,特别是一种实现机顶盒在电视屏幕显示信息的方法及其系统。
所述方法包括:机顶盒接收到开始显示文字信息命令,则对从视频源获取的视频节目执行视频调整操作在电视屏幕上显示视频节目及文字信息;机顶盒接收到停止显示文字信息命令,则停止执行视频调整操作,在电视屏幕上全屏显示视频节目。
本发明通过对视频的大小调整,巧妙的在侧边留出空位,添加广告信息,使得广告信息与原有的视频节目互不影响。
申请人:广东九联科技股份有限公司
地址:516002 广东省惠州市数码工业园南区4号厂房1、2楼
国籍:CN
代理机构:广州粤高专利商标代理有限公司
更多信息请下载全文后查看。
数字机顶盒字幕解码显示系统的设计与实现
![数字机顶盒字幕解码显示系统的设计与实现](https://img.taocdn.com/s3/m/74dcb9e388eb172ded630b1c59eef8c75ebf954a.png)
数字机顶盒字幕解码显示系统的设计与实现
李碧月;苏凯雄;张进
【期刊名称】《有线电视技术》
【年(卷),期】2011(000)011
【摘要】本文通过对DVB标准中的ETS300743规范的字幕数据格式进行研究和分析。
结合机顶盒平台的解复用滤波、图层处理和用户接口模块,给出一种能够正确、完整、及时的字幕显示实现方案。
【总页数】5页(P67-70,74)
【作者】李碧月;苏凯雄;张进
【作者单位】福州大学物理与信息工程学院;福州大学物理与信息工程学院;福州大学物理与信息工程学院
【正文语种】中文
【中图分类】TN949.291
【相关文献】
1.隐藏式字幕解码与显示系统的FPGA实现 [J], 王涛;喻金华;肖铁军
2.字幕在线包装播出系统新技术与应用--北京电视台字幕在线包装播出系统设计与实现 [J], 杨导南;金强
3.字幕解码系统设计与实现 [J], 冯卓明;龚家华;易志雄;郑立新;刘卫忠;汪文化
4.DVB数字电视机顶盒中字幕解码器的设计与实现 [J], 张东升;周金陵
5.基于STLite/OS20系统的DVB字幕解码器设计 [J], 龚家华;刘卫忠
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机顶盒平台的字幕数据格式分析及其显示实现1 引言随着数字电视的蓬勃发展,数字电视已逐渐进入千家万户,除了传统的电视节目外,通过利用先进的数字电视技术为广大用户提供更多的信息服务,是广播电视事业发展的必然趋势。
字幕(subtitle)作为一种简便而直观的信息提供途径,其重要性主要体现在两个方面。
一是字幕可以为听力有障碍的人提供另一个"语音"信息途径;二是字幕功能可以通过简单的后期制作(如多语言显示),配合电视节目的全球化推广提供便捷的平台。
DVB 作为全球应用最广泛的数字电视传输标准,也为多种语言的字幕提供了相应的规范,从而使字幕成为不同国家和地区电视节目交流的良好载体。
2 DVB 数字电视字幕规范2.1 字幕控制信息规范控制信息的规范主要包括有效数据的加载和提取索引信息的存放两个方面。
DVB 中规定,字幕信息要以节目的私有数据包形式复用到节目的基本流中,与音视频数据加载形式类似。
提取索引信息则是利用DVB 中的描述符(descriptor)语法插入到节目映射表(PMT)的私有数据段中。
流类型为0×06 的私有数据段,承载本节目私有数据提取的相关信息:私有数据包的PID 及其描述符。
字幕描述符的标签值(descriptor_tag)为0×59,语法如下:分析字幕描述子可得出该字幕的语言代码(ISO639_language_code)、字幕类型、合成页及可选的辅助页。
这些信息在字幕数据的提取中将作为数据提取的索引信息。
2.2 字幕数据编码规范字幕显示在终端是以页的形式显示出来,每一页又分成多个区域,每一个区域里又关联着多个图形对象和区域的颜色。
因此,字幕数据编码是根据这些需求来定义的。
字幕数据承载在PES 包的负载中,结构如图1 所示。
图1 字幕数据的数据结构分析字幕的数据结构可知,前两个字节是字幕数据的确定信息,包括一个数据定义字节(该字段定义该数据流为DVB 字幕,其值为0×20)和一个字节的字幕流识别id(其值为0×00);最后一个字节为字幕数据结束标志(其值为0×ff)。
中间填充的数据则是字幕段数据。
在字幕段数据中前6 个字节为字幕段的头信息,包括1 个同步字节(其值为0×0f)、1 个类型字节(用来确定data_field()里携带的是哪种类型的数据分段)、2 个字节的页ID (用来唯一标志一个字幕段)以及2 个字节的段长度标识(标识其后面携带负载的大小)。
字幕段类型主要有以下四种:页分段(page composition)。
通过页id(page_id)定义了该页显示终止时间、页的状态、该页中区域数、各区域号、各区域的水平及垂直位置。
区域分段(region composition)。
用于定义该区域的宽高、水平垂直位置、所使用的CLUT 表的CLUT_id值、对象的id、区域背景色以及像素深度等信息。
CLUT 分段(CLUT definition)。
用于定义颜色,以便把传输的虚颜色转换成实际色板中的颜色。
对象数据分段(object data)。
用于定义对象的编码方法和编码数据。
编码方法包括像素编码和字符编码。
每一个对象可以看作是一个可显示的图像单元。
每一页数据的完整显示都至少需要这四个数据分段,所以在解析字幕流时,需要利用各种结构体及链表对这几个数据段数据进行解析并存储。
3 机顶盒字幕解码显示系统设计在STB 上实现字幕接收和显示主要包括四大模块:数据提取模块、数据解码模块、图层显示模块和用户控制模块。
各模块关系如图2 所示。
图中,用户控制模块用于响应用户按键,并发送消息控制其它各模块;数据提取模块根据接收控制模块发来的滤波启动、停止或提取字幕数据等控制消息,并完成数据的提取工作;数据解码模块负责对数据提取模块送来的字幕原始数据进行解码,并将解码后的数据送到指定的缓冲区内供图层显示模块调用;图层显示模块用于实现字幕界面的各种OSD 显示操作。
图2 字幕系统模块关系图。
3.1 字幕数据提取模块字幕数据提取模块包括两部分:字幕控制信息的提取和字幕数据包的提取。
用户控制模块发送字幕启动请求时,提取模块就启动SI 引擎。
首先,启动本节目的PMT 表滤波工作,获取PMT 数据并进行分析。
若当前节目没有字幕信息,则发送无字幕消息至用户模块;若当前节目带有字幕信息,则根据PMT 中的私有数据段和字幕描述符,获取字幕数据对应的PID、字幕的语言代码、字幕类型、合成页及可选的辅助页,并存放到字幕索引信息表中。
其次,根据字幕索引信息表启动字幕有效数据的PES 滤波,提取对应字幕数据包。
字幕数据提取总体流程如图3 所示。
图3 字幕数据提取流程当获得字幕的PID 及其它信息后,则按字幕语言的不同,把当前节目所携带的所有语言的字幕列表,供用户选择。
当用户选择完一个条目后,可利用该条目相应的控制信息获取字幕PES 包,把字幕PID,合成页id 和辅助页id 注册进滤波通道,并启动滤波器。
此时,若滤波器接收到相匹配的数据,则会产生相应的中断,通知上层进程读取数据;当获取一个完整的PES 包后,就传送给字幕解码器进行解码显示。
3.2 字幕数据解码模块字幕数据解码模块负责对字幕PES 包进行解码。
字幕PES 包解码流程如图4 所示。
图4 字幕PES 包解析流程。
字幕解码主要是对PES 包进行分析,包括PES包头的检测,PES 包头信息的提取和字幕段的分析。
滤波得到一个PES 包后,首先判断包头是否合法,包括判断前四个字节是否为0×000001BD 和PES包长度是否合法。
PES 包头信息提取包括提取PTS、PES 包头长度等。
PTS 是该分组中承载的所要显示的数据的显示时间。
根据包头长度可以定位到PES 的负载位置,进而分析PES 包的负载。
分析PES 包的负载,首先判断前两个字节(定义字节和字幕流id)是否分别为0×20、0×00.若都符合,则可以确定这个包就是所要的封装有字幕数据的PES 包。
然后进入字幕段分析,字幕字段的内容有四种情况。
先找到同步头字节0×0f,再往后分析8bit 的段类型(segment_type),通过判断该字节值来确定data_field()携带的是哪种类型的数据。
当segment_type为0×10 时[3],该段为页分段;当segment_type 为0×11时,则该段为区域分段;当segment_byte 为0×12 时,该段为CLUT 分段;当segment_byte 为0×13 时,该段为对象数据分段。
最后,根据不同的类型调用不同的函数对各种类型的分段进行下一步的分析。
在页分段的解析中找到该页的页id、显示终止时间、显示状态、该页由几个区域组成、每个区域的区域id 和每个区域的水平垂直坐标,并把这些数据存储起来。
然后,根据从页分段中获取的区域的id 找到相应的区域分段,获取该区域的宽高、像素深度、该区域填充的颜色、颜色表id(CLUT_id)、区域的数据对象个数、每个数据对象编号(object_id),并存储这些数据。
最后,通过CLUT_id 找到颜色表,得到颜色的Y、Cr、Cb、T 值。
通过object_id 找到对象数据的内容,包括编码方式及编码数据。
用相应的解码方式把这些相关的编码数据解码出来,并放入缓冲区。
其中,在页分析时,当解析出的该页的显示终止时间已经过了,则并不需要分析该页,把跟与该页相关的数据缓冲区进行清空操作。
由于一个PES 包可能包含多个字幕段(subtitling_segment),因此必须循环分析到最后一个字幕段。
对每个字幕段分析完后,都要判断下一个字节是下一个字幕段的同步头(0×0f)还是字幕数据结束标志(0×ff)。
若是下一个字幕段的同步头则继续分析,若是数据结束标志则代表该PES 包携带的负载分析完毕。
最后,把得到的数据存放到显示缓冲区,通过分析得到的PTS 创建一个定时时间,当时间到的时候从缓冲区中把数据读出,并调用OSD 层驱动显示数据。
在该解码中,对于合成页(composition_page_id)的处理分为两种,这是因为同一个PID 可能传送不同语言的字幕流,即语言不同的多个信息共享同一个PID流,所以在处理的时候可以把合成页设置为滤波器的深度。
当一路数据流进来的时候,对符合该PID 的PES 包中对应的页ID 进行判断,与页ID 相同的就提取,不同的就丢弃,这是其中的一种解析提取方式。
另一种方式是采用多种语言共用的PID 值去设置滤波器,把与该PID 值符合的字幕流提取出来,送去PES包解析。
经过PES 解析出该页ID,这时再判断该页ID是否与在PMT 表解析得到的页ID 一样。
如果一样的话,说明正是要找的包,反之则说明是一个无效的PES 包,则丢弃该包。
3.3 字幕图层显示模块当用户在收看节目,启动字幕功能时,用户看到的是节目画面和字幕画面的叠加,OSD 界面显示技术是指在图像画面上叠加图文显示,使屏幕提供更多附加信息。
为了控制字幕在屏幕上的正常显示,需要利用OSD 驱动模块提供的区域操作功能。
在该字幕显示实现中主要用到的OSD 函数接口有OSD 初始化函数、区域清除函数、OSD 区域创建函数、OSD 区域显示函数和OSD 区域隐藏函数,在该系统中以回调函数的形式利用这些接口函数。
在系统初始化中,必须先初始化字幕OSD 区域,获取OSD 层的设备id,注册字幕区域创建回调函数、字幕区域显示回调函数、字幕清屏回调函数和字幕区域隐藏回调函数。
把这些函数的地址加以保存,当需要相应的OSD 服务时,就通过函数指针调用相应的函数。
字幕显示可以根据分析PES 包得到时间信息,并通过这个时间信息与音视频同步。
在每区域数据解码完毕后,显示模块创建相关的OSD 区域,分配内存空间,把解析完的数据连同该数据要显示的时间PTS 送到显示缓冲区。
此时,根据当前系统时钟STC 和存储的PTS 创建一个定时器,如果显示时间已经超过了系统时间,那么显示缓冲区的数据就要清空掉;反之,当显示时间到的时候,定时器被触发,显示内容输出到OSD 缓冲区,并结合显示持续时间来进行字幕的显示。
显示状态流程如图5 所示。
图5 显示状态流程由于字幕的显示和机顶盒菜单界面的显示都是基于区域的,对于不同的应用,不能同时往同一个位置填充不同的数据。
因此,在字幕显示前要把菜单OSD 显示区域隐藏起来。
当字幕正在显示又需要使用系统菜单时,调用字幕区域隐藏函数,设置显示标志为非需要显示状态。
在菜单显示结束后,调用字幕区域显示函数,恢复字幕显示。
采用这种方式可以解决字幕显示和界面显示的冲突。