西塘水之韵客栈:电子节目指南(EPG)在机顶盒中的实现

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 05:12:28
电子节目指南(EPG)在机顶盒中的实现一  EPG简介  
电子节目指南(Electronic  Program  Guide,EPG),是指在符合MPEG-2  (13818-1)的TS传输流中插入DVB标准定义的业务信息(Service  Information,SI),使机顶盒(Set-Top-Box)的综合接收解码器(IRD)可以从TS流中提取出节目提供商播出节目的列表和播出参数,  以直观的形式显示给数字电视用户,使得用户可以方便地接收、选择数字电视节目。EPG信息由两部分信息组成:基本EPG信息和扩展EPG信息。  


基本EPG信息是指完全可以用《数字广播业务信息规范(GY/Z174-2001)》中的网络信息表(Network  Information  Table,NIT)、业务群关联表(BAT)、业务描述表(SDT)和事件信息表(EIT)进行描述的EPG信息。扩展EPG信息是指在基本EPG信息之外,通过数据轮播传递的EPG信息,这些信息的入口采用EPG映射表(EMT)进行描述,信息的内容被封装成具有多级目录结构的文件系统,称为扩展EPG内容信息(XECI)。  
在数字电视节目的播出过程中,可以加入辅助的SI信息,供机顶盒解码器的开发者来实现五花八门的电子节目指南的导航功能。利用机顶盒收看数字电视节目,用户通过EPG不仅能够接收普通的电视节目、广播节目或图文电视节目,而且,还可以查看感兴趣的信息,比如:按节目分类(如音乐节目、体育节目、电影等)检索节目、按节目提供者检索节目、查看未来一段时间内节目播出表以及视频网络中节目播出情况等信息。  

二  PSI/SI信息及其功能  
1.  PSI信息  
MPEG-2中的传送码流是根据ITU-TRecH220、ISO/IECDIS13818-2和ISO/IEC13818-3协议定义的一种数据流,其目的是为了在有可能发生严重错误的环境下进行一道或多道程序的编码数据的传送和存储。这种错误表现为比特值错误或分组丢失。传送流的速率可以是变化的或固定不变的。传送流速率由节目参考时钟(PCR)字段的位置和数值决定,通常对于每个程序都有自己的PCR字段。传送流中有关PID的信息及各PID之间的关系包含在节目特定信息(Program  Specific  Information,PSI)中,MPEG-2解码器将使用PSI信息来自动设置解码所需的各种参数。PSI信息使用4个表来定义码流的结构:节目关联表(Program  Association  Table,PAT)、节目映射表(Program  Map  Table,PMT)、NIT、条件访问表(Conditional  Access  Table,CAT)。  
(1)PAT:PAT表的PID号为“0x00”,解复用器工作总是通过寻找PAT表开始。PAT给出了构成传送流中各个节目业务的PMT的PID,可根据节目PID找到相应的PMT包;同时也给出了NIT的PID号。  
(2)PMT:PMT表指出了组成节目业务(Service)的各个码流的PID号,并对各路码流进行描述。PMT表提供程序号码与组成它们的原始流之间的映射,这种映射表是一个传送流中所有程序定义的集合。此表将在分组中传送,其PID值是私自选择的。如果需要的话,可以使用多个PID值。  
(3)NIT:NIT表由ETS300468定义,它符合ISO/IEC13818-1标准,其内容是私有的,目的是提供有关物理网络的信息。如果存在,Network  PID值由用户定义,并且应在PAT表中定义,其Program  Number为保留的0x0000。  
(4)CAT:CAT表提供一个或多个CA系统,PID值固定由0x0001标识。CAT表提供系统中条件接入的信息,指定CA系统与它们相应的权限管理信息EMM(Entitlement  Management  Messages)信息之间的联系,指定EMM的PID,以及其它相关的参数。  
2.  SI信息  
MPEG-2在PSI中提供了不少有关节目组成和相互关系的信息,从而使得在接收端可以正确地对TS流进行解复用。但是这些信息在实际使用时仍然显得不够,为此在DVB标准中采用SI信息对PSI信息进行了进一步的扩展。PSI中的信息基本上都是与当前码流相关,即它们所涉及的内容都与当前码流中的部分信息相关;而SI信息可以包括不在当前码流中的一些服务和事件,允许用户进行更多的选择和了解更多的其他服务。  
SI信息表主要有以下内容:  
(1)BAT:BAT表提供了所涉及的有关节目业务群的信息,包括节目业务群名称及节目业务群所包含的节目业务清单。利用BAT可以方便地进行相关节目或某一类节目的浏览和选择。  
(2)SDT:SDT表用于描述系统中服务的名称、服务提供者、是否有相应的事件描述表等方面的信息;服务描述表可以描述当前传输流,也可以描述其他传输流,这由表的Table  ID来区分。  
(3)EIT:EIT表包含事件或节目的有关数据,如事件的名称、开始时间、时间长度、运行状态等。  
(4)RST:RST表提供某一事件或多个事件的运行状态和时间,即某一事件运行或不运行的信息,如:正在运行、即将运行、暂停、不运行等,可用于按时自动切换到指定的事件。  
(5)TDT:TDT表给出了当前的时间和日期相关的信息。由于这些信息更新频繁,所以需要使用一个单独的表。  
(6)TOT:TOT表给出当前的时间、日期和本地时间偏移相关的信息。  
(7)ST:ST表的作用是表明其内容是无效的,只是作为填充字节,不传递有用信息。  
SI信息是用来描述传送系统,传送内容和广播数据流时间表等的数据,是补充MPEG-2中PSI的附加数据,这些数据帮助IRD自动调谐,给用户提供附加信息,使IRD能自动设置可供选择的业务。各业务信息表均分配了特定的PID。  


头端系统每隔一定周期将重复传送SI信息,对于最高速率为100Mb/s的传送流而言,重复传送SI信息的最小间隔为25ms。这样,对于新开机的用户,在很短的时间内,就可以接收到SI,构成EPG所需的各项条款。  

三  EPG的设计和实现方法  
1.  EPG信息的提取  
一般而言,PAT表的PID号为“0x00”,解复用器工作总是通过寻找PAT表开始。PAT给出了构成传送流中各个节目业务的PMT的PID,同时也给出了NIT的PID号。根据PID值及对应的Table  ID值可以从流中解出相应的PMT、NIT、SDT、EIT等信息。机顶盒接收端的解析主要负责这些SI数据信息的重建。信息内容应与PSI和SI表中的信息相对应,它可按照Network-Transport  Stream-Service-Event的分层顺序描述,同时内嵌Transport  Stream-Program(Service)-Element  Stream的分层顺序。SI数据信息必须按照一定的数据结构进行存储,这样才能方便、快捷地对其进行检索和提取数据。特别是对于运行于机顶盒的实时操作系统中的EPG,需要对用户的交互进行实时的动作,所以对响应速度的要求很高,SI数据库建立的好坏对其性能有重要的影响。SI数据主要有:网络信息、传输流信息、业务(节目)信息,业务的事件信息等,并且大量的信息都是通过描述子来传输的,所以可用树状链表来存储数据,构成从网络、传输流、业务、事件的树状结构,传送不同信息的描述子用继承于同一基类的描述子类来表示。  
网络信息表传送本网络以及与此有关的其它网络的一些信息。每个网络都有唯一的识别符,网络编码请参看ETR162。网络信息表主要携带:网络识别符(Network_ID)、网络名称、传输系统参数(有线传输系统参数包括:频率、调制方式、FEC外码、符号率、FEC内码)、节目业务类型及Service_ID等信息。如果NIT表中有关于传输系统参数的正确描述,只要调谐到携带此NIT表的传送流中,即可提取其它网络的参数,一般解码器便可根据提取出来的信息,自动搜索频道。  
节目业务描述表提供了如下的信息:属于哪一个节目业务群;节目业务的类型,如PAL、NTSC、SECAM、调频广播、图文电视、准视频点播等;节目业务的提供者;可以接收该节目业务的国家和不可以接收该节目业务的国家;指向特定信息的链接信息;实现准视频点播的指导信息;实现多画面的控制信息;指示使用的加密系统;给出实现交互式回传信道的电话号码;提供多语种的节目业务名称和广播者以及私有数据。  
事件信息表提供如下信息:节目段的标识号、起始时间、节目长度、播放状态、是否加密;指向特定信息的链接信息;节目段多语种的简短介绍;节目段的详细介绍;两段同样节目段的时间偏移;基本码流类型,如视频的幅型比、伴音的类型、字幕的类型等;使用的加密系统;节目类型,如电影/戏剧、新闻、综艺、体育、少儿、音乐、艺术、社会政治、文教等;节目限定年龄的级别;给出实现交互式回传信道的电话号码;为满足各节目段的码率而提供的缓存大小信息及私有数据。事件信息中提供了类似于广播电视报所提供的节目表的内容,根据EIT及其它表所提供的信息,可以做出各种EPG功能,如按节目类型检索、按时间检索及对某类节目的锁定等。  
2.  EPG的实现  
现在市场上的大多数机顶盒产品通常采用从PAT表→PMT表→NIT表→SDT表→EIT表解析构造EPG、搜索节目的方法。我公司在开发机顶盒过程中,根据SI标准及机顶盒的解码流程,首次提出从NIT表直接构造EPG,即先忽略PAT、PMT表,从传输流中直接提取NIT表,根据NIT表携带的传输系统参数搜索所有载波信息,再解析SDT、EIT表等信息构造出基本的EPG信息。EPG提供的信息主要包括:传送信息的天数(例如一周)、传送频道的数目和名称、传送的节目数、节目提供商的标识和名称、传送网络的信息(网络标识和网络名称),其细节信息还包括:节目名称、节目的简单介绍、节目的开始和结束时间、节目的主题、节目的类属、节目的观看分级限制(例如对某个年龄段进行限制)。  
在选择频道时再判断节目信息是否已经被解析,且在切换不同频率的频道时仅解析相应的PAT和PMT表,而无需再次重复解析NIT、SDT等信息。这样,无论在时间上还是在效率上都得到很大提升,解码和频道切换速度都很快,给用户的交互使用带来方便并留下良好的印象。  
EPG使用SI来帮助用户对节目进行搜索。在选择一个节目时,可能首先查找BAT,根据BAT的名称列出一系列的节目种类,比如新闻、体育、电影、音乐等,选择其中自己感兴趣的类型,如电影等,于是得到有关电影的BAT。接收应用程序根据此BAT中包含的服务信息,得到一个服务选择列表。此时可以根据喜好,选择所希望观看的电影频道。要实现这一目的,EPG需要找到服务所对应的传输流,这是EPG根据BAT中所对应的传输流标识符查找NIT中传输流的描述,直到找到相应的传输流标识流所对应的描述,根据描述子中的参数(如频率、调制方式等)将IRD调到相应的播出频道。调到该频道后,就可以解调出传输流,再根据BAT中得到的服务标识符在当前的传输流的SDT中查找对应的服务,得到有关服务的信息,然后用户就可以根据自己的兴趣来对事件项进行选择。这时EPG根据所选事件的标识符和服务标识符查找EIT,得到有关事件的信息,比如什么时间开始、共多长等。  
3.  EPG的显示技术  
当电视节目和EPG应用同时启动时,用户看到的可能是节目画面和EPG界面的叠加,电视画面从前到后可以分为三层,依次为图形层(On  Screen  Display,OSD)、视频层和背景层。OSD界面显示技术指在图像画面上叠加文字显示,使屏幕为用户提供更多的附加信息;视频层为当前正在收看的节目,即解码出来的活动图像;背景层为没有播放电视节目和启动EPG菜单时的屏幕图像。EPG画面在图形层上构建,EPG画面是由许多EPG图形元素(如按钮、文本框、选择按钮、组件容器等)叠加而成。界面的状态转移是通过消息驱动的机制来实现的,在消息响应函数中进行消息处理。用户见到的是屏幕图像是这三层的叠加后的图像。  
SI数据检索模块快速地检索本地SI数据库,提取数据信息供EPG显示使用;OSD层图形元素库提供界面所需的图形元素;状态转移控制器接收用户遥控器的输入,控制状态转移流向;OSD层图像是指EPG界面图形元素合成后的图像,完成图形绘制。最后是OSD层、视频层和背景层的叠加操作。  

四  结束语  
电视数字化,让电视以一个崭新的面貌出现,电视数字化的好处不仅仅是提供高质量的视频、音频节目,更重要的是采用数字化处理后,可以开展更多灵活多样的增值业务,EPG在其中将起到很重要的作用。如何在机顶盒中构造出美观大方、功能强大、操作简单且易于用户交互的EPG是机顶盒厂商所关注的问题。我们期待着中文EPG标准的早日出台,各厂商也能推出包含丰富内容、功能各异EPG的数字电视机顶盒。