基于DVB-SI的数字有线电视机顶盒节目指南的设计实现 |
|
作者:卫星爱好… |
|
摘要本文介绍了电子节目指南信息的构成以及MPEG-2PSI和DVB-SI信息规范,提出了一种EPG信息的存储结构和节目数据库的生成方案,并据此讲述了如何在数字有线电视机顶盒中生成电子节目指南EPG。
关键词机顶盒MPEG-2PSI节目专用信息DVB-SI业务信息电子节目指南
1引言
目前数字电视已经进入快速发展阶段,与数字电视相关的业务也将大幅度增长。当节目运营商将大量的节目信息通过有线网络提供给用户,用户在欣赏高质量节目源的同时如何才能方便快捷地找到这些业务或信息就成了开发者们需要解决的一个关键问题。电子节目指南(EPG,ElectronicProgramGuide)正是为了方便用户对信息的获取而制作的运行于用户端综合接收解码器(IRD,IntegratedReceiverDecoder)的应用程序,它通过电视屏幕向用户提供由文字、图形、图像组成的人机交互界面,负责电视节目和各种业务的导航[1]。用户通过电子节目指南,能够了解到节目的相关信息(包括节目时间、播放时间、内容梗概等),并且实现对节目的快速检索和访问。
EPG的形成依赖于节目播出前端将符合DVB(DigitalVideoBroadcasting)标准的业务信息(SI,ServiceInformation)插入到承载节目信息的传送流(TS,TransportStream)中,这些SI信息携带了EPG所需的全部数据。
2电子节目指南信息的组成和传输
电子节目指南信息(以下简称EPG信息)由两部分组成:基本EPG信息和扩展EPG信息。
基本EPG信息是指完全可以用《数字广播业务信息规范(GY/Z174-2001)》中的网络信息表NIT、业务群关联表BAT、业务描述表SDT、事件信息表EIT等进行描述的EPG信息。
扩展EPG信息是指在基本EPG信息之外,通过数据轮播传递的EPG信息,这些信息的入口采用EPG映射表EMT进行描述,信息的内容被封装成具有多级目录结构的文件系统,称为扩展EPG内容信息(XECI)。
一个EPG系统至少应该包括基本EPG信息[2]。
本文也仅就基本EPG信息进行论述。
“数据广播业务信息规范”中NIT、BAT、SDT、EIT和EMT表都被分成一个或若干个段(section)来表示,然后插入到TS包中。段是一种用来把SI信息表和EPG信息表映射为TS包的语法结构,这些信息符合GB/T17975.1定义的专用段语法结构。段可直接映射到TS包中。段可能起始于TS包有效负载的起始处,但这并不是必须的,因为TS包有效负载的第一个段的起始位置是由pointer_field字段指定的[3]。
3MPEG-2PSI节目专用信息与DVB-SI信息简介
在数字电视中,所有的音、视频信号和数据信息经过编码后,在进入传输系统前,必须按照MPEG-2标准打包,形成固定长度的TS包,包长为188字节或204字节。对于这些长度相同的包,如果没有引导信息,IRD是无法找到所需要的码流的。为此在MPEG-2标准中专门定义了节目专用信息(PSI,ProgramSpecificationInformation),其作用在于自动设置和引导IRD进行解码[4]。
PSI信息由以下四种表组成:(1)节目关联表PAT;(2)节目映射表PMT;(3)网络信息表NIT;(4)条件访问表CAT。
在实际应用中,解码器IRD要对某一路特定码流进行解码时,首先要找到PAT表,根据PAT表找到所需的节目及该节目对应的PMT表的PID。PMT表中可能包含多个数字码流,每个码流都有一个唯一的PID与之对应。如果要解码的是视频码流,则在PMT表中找到videoPID值,再从TS流中过滤出PID值与之匹配的TP包并送到视频解码器。
MEPG-2的PSI信息提供了相关节目组成和相互关系的信息,从而使得接收端IRD可以对多路传输流进行解析,但是这些信息在实际应用中仍显得不够,它不能提供节目的名称、节目的开始时间、持续时间及节目的附加信息等。为此在DVB中扩展定义了SI业务信息。PSI信息基本上都是与现行流(AS,ActualStream)相关的,而SI信息则可以包括不在现行流中的一些业务和事件信息,从而允许用户进行更多的选择和了解更多的其它业务信息。
与PSI定义的四种表不同,SI中定义了9种表,其中构成基本EPG信息的最重要的表是网络信息表NIT、业务描述表SDT和事件信息表EIT。SI表传送的信息都是通过描述符(descriptor)的形式给出的。
每个描述符都以descriptor_tag(用于唯一标识descriptor的类型)和descriptor_length开始。不同的描述符用于描述不同SI表中承载的信息[6]。
4系统介绍
本EPG系统是在STMicroelectronic公司所提供的机顶盒开发方案上实施的,其主控制芯片采用STi5518,内部集成有32位主CPU、专用DVB传输流解复用和解扰模块、MEPG-2音、视频解码单元、数字视频编码器及各种接口等。与之配套的软件开发平台选用的也是该公司开发的STLite/OS20嵌入式操作系统,支持多任务、存储器管理、进程调度、定时器管理等实时特性。该系统能实时接收用户通过遥控按键或前面板触发的交互信号,实现节目基本信息的浏览、节目列表的生成、节目之间的跳转以及节目预告信息的查询等。
5系统设计及实现
5.1EPG信息的存储结构
TS流里携带的EPG数据信息通过IRD接收以后都以树状链表的结构存储在PROG_INFO_STRUCT和TRANSPONDER_INFO_STRUCT这样两个结构中。
在本机顶盒有关节目操作的各项功能中,绝大部分都与节目数据库有关,比如自动节目搜索时,需要建立节目数据库,并为搜索到的节目在数据库中建立相应的数据单元,用于存储该节目的各种信息;在切换节目时,需要根据不同节目中音、视频数据的PID值从而选择不同的码流进行音、视频解码等。
节目数据库主要来自PSI表的内容。
在具体的软件实现过程中,节目数据库的建立主要通过ParsePAT()、ParsePMT()两个函数来实现。ParsePAT()函数调用的结果是得到有线传输系统中不同的节目PID,而ParsePMT则获取各个节目中音、视频码流的PID值。
5.2节目跳转的实现
系统响应用户在不同节目之间的切换时,需要将用户选定节目的音、视频码流从复用的多路节目码流中提取出来并分别送到音、视频解码器进行解码。它依赖于硬件可编程传输接口(PTI,ProgrammableTransportInterface)来实现。在系统生成的节目数据库结构中的stProgNo变量存储有转发器号TransponderId及节目的音、视频PID值。
5.3事件信息的获取
事件信息表EIT按时间顺序提供每个业务中包含的事件的信息。(这里的事件相当于传统意义上的节目,而业务则指的是提供节目源的某个电视台,如业务“中央电视台-1”的事件“新闻联播”。)EIT包含两种不同类型的表,分别为EITpresent/following(简称EITp/f)和EITSchedule(EIT-S)。EITp/f给出了指定业务中当前和后一个事件的信息,而EIT-S则包含一周内或更长时间的节目预告信息。任何构成EIT的eventinformationsection均在PID为0x0012的TS包中传输,它给出了业务中事件的名称、事件开始时间、持续时间及其他一些信息。
以下以EITp/f为例来讲述事件信息的获取方式:
在EITp/f中,每个业务service都用两个section分别来描述当前(present)和后续(following)信息,其中的sectionnumber为0的用来描述当前事件,而sectionnumber为1的section则用来描述后续事件。
在节目信息结构PROG_INFO_STRUCT中,定义了EVENT_INFO_BASIC类型的二维数组event_info_database[2]用来存放一个业务中的present和following事件的信息。这些信息包括事件的名称、事件的开始时间、事件的持续时间。
事件的日期和时间在TS流里是按照MJD(ModifiedJulianDate,修正的儒略日期)+UTC(UniversalTimeCo-ordinate,通用时间坐标)的格式并以16进制的形式给出的。在MJD+UTC和localMJD+localtime之间的转换可参照GY/Z174-2001来进行。如TS流里的数据为0xCE1F005600010600,则转换以后得到的信息为:该事件的播出时间为2003年5月8日,星期四,开始时间为00:56:00,持续时间为01:06:00。
而事件的名称则通过解析描述符short_event_descriptor来实现。并将得到的信息存储在event_info_database结构中。
所有解析得到的信息最终都将存储在节目数据库中,提供给显示模块直接调用。
6结束语
真正完整意义上的EPG的功能是十分强大的,它不仅能提供节目表单和当前节目播放等基本功能,还可提供节目预定和家长分级控制等高级功能。本文从实用的角度给出了一个基本EPG系统的实现方案。另外我们也实现了EPG交互式应用中的SI增值业务如天气预报、新闻、股票数据等的接收,以菜单触发的形式提供给用户一个由文本和图形组成的反馈信息。
|
posted on 2007-03-30 14:20
游子 阅读(2300)
评论(0) 编辑 收藏 引用 所属分类:
软件 、
硬件