原文地址:http://blog.sina.com.cn/s/blog_53220cef0100pi8j.html
1 基于DVB-SI的数字有线电视机顶盒节目指南的设计实现
王景存 王瑞胡
北京科技大学信息工程学院
武汉科技大学信息科学与工程学院
摘要 本文介绍了电子节目指南信息的构成以及MPEG-2 PSI和DVB-SI信息规范,提出了一种EPG信息的存储结构和节目数据库的生成方案,并据此讲述了如何在数字有线电视机顶盒中生成电子节目指南EPG。
关键词 机顶盒 MPEG-2 PSI节目专用信息 DVB-SI业务信息 电子节目指南
1 引言
目前数字电视已经进入快速发展阶段,与数字电视相关的业务也将大幅度增长。当节目运营商将大量的节目信息通过有线网络提供给用户,用 户在欣赏高质量节目源的同时如何才能方便快捷地找到这些业务或信息就成了开发者们需要解决的一个关键问题。电子节目指南(EPG,Electronic Program Guide)正是为了方便用户对信息的获取而制作的运行于用户端综合接收解码器(IRD,Integrated Receiver Decoder)的应用程序,它通过电视屏幕向用户提供由文字、图形、图像组成的人机交互界面,负责电视节目和各种业务的导航[1]。用户通过电子节目指 南,能够了解到节目的相关信息(包括节目时间、播放时间、内容梗概等),并且实现对节目的快速检索和访问。
EPG的形成依赖于节目播出前端将符合DVB(Digital Video Broadcasting)标准的业务信息(SI,Service Information)插入到承载节目信息的传送流(TS,Transport Stream)中,这些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/T 17975.1定义的专用段语法结构。段可直接映射到TS包中。段可能起始于TS包有效负载的起始处,但这并不是必须的,因为TS包有效负载的第一个段的 起始位置是由pointer_field字段指定的[ 3 ]。
3 MPEG-2 PSI节目专用信息与DVB-SI信息简介
在数字电视中,所有的音、视频信号和数据信息经过编码后,在进入传输系统前,必须按照MPEG-2标准打包,形成固定长度的TS包, 包长为188字节或204字节。对于这些长度相同的包,如果没有引导信息,IRD是无法找到所需要的码流的。为此在MPEG-2标准中专门定义了节目专用 信息(PSI,Program Specification Information),其作用在于自动设置和引导IRD进行解码[ 4 ]。
PSI信息由以下四种表组成: (1)节目关联表PAT; (2)节目映射表PMT; (3)网络信息表NIT; (4)条件访问表CAT。
在实际应用中,解码器IRD要对某一路特定码流进行解码时,首先要找到PAT表,根据PAT表找到所需的节目及该节目对应的PMT表 的PID。PMT表中可能包含多个数字码流,每个码流都有一个唯一的PID与之对应。如果要解码的是视频码流,则在PMT表中找到video PID值,再从TS流中过滤出PID值与之匹配的TP包并送到视频解码器。
MEPG-2的PSI信息提供了相关节目组成和相互关系的信息,从而使得接收端IRD可以对多路传输流进行解析,但是这些信息在实 际应用中仍显得不够,它不能提供节目的名称、节目的开始时间、持续时间及节目的附加信息等。为此在DVB中扩展定义了SI业务信息。PSI信息基本上都是 与现行流(AS,Actual Stream)相关的,而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.1 EPG信息的存储结构
TS流里携带的EPG数据信息通过IRD接收以后都以树状链表的结构存储在PROG_INFO_STRUCT和TRANSPONDER_INFO_STRUCT这样两个结构中。
在本机顶盒有关节目操作的各项功能中,绝大部分都与节目数据库有关,比如自动节目搜索时,需要建立节目数据库,并为搜索到的节目在数 据库中建立相应的数据单元,用于存储该节目的各种信息;在切换节目时,需要根据不同节目中音、视频数据的PID值从而选择不同的码流进行音、视频解码等。
节目数据库主要来自PSI表的内容。
在具体的软件实现过程中,节目数据库的建立主要通过ParsePAT()、ParsePMT()两个函数来实现。ParsePAT()函数调用的结果是得到有线传输系统中不同的节目PID,而ParsePMT则获取各个节目中音、视频码流的PID值
5.2 节目跳转的实现
系统响应用户在不同节目之间的切换时,需要将用户选定节目的音、视频码流从复用的多路节目码流中提取出来并分别送到音、视频解码器进 行解码。它依赖于硬件可编程传输接口(PTI,Programmable Transport Interface)来实现。在系统生成的节目数据库结构中的stProgNo变量存储有转发器号TransponderId及节目的音、视频PID值。
5.3 事件信息的获取
事件信息表EIT按时间顺序提供每个业务中包含的事件的信息。(这里的事件相当于传统意义上的节目,而业务则指的是提供节目源的某个 电视台,如业务“*电视台-1”的事件“新闻联播”。)EIT包含两种不同类型的表,分别为EIT present/following(简称EIT p/f)和EIT Schedule(EIT-S)。EIT p/f给出了指定业务中当前和后一个事件的信息,而EIT-S则包含一周内或更长时间的节目预告信息。任何构成EIT的event information section均在PID为0x0012的TS包中传输,它给出了业务中事件的名称、事件开始时间、持续时间及其他一些信息。
以下以EIT p/f为例来讲述事件信息的获取方式:
在EIT p/f中,每个业务service都用两个section分别来描述当前(present)和后续(following)信息,其中的section number为0 的用来描述当前事件,而section number为1的section则用来描述后续事件。
在节目信息结构PROG_INFO_STRUCT中,定义了EVENT_INFO_BASIC类型的二维数组 event_info_database[2]用来存放一个业务中的present和following事件的信息。这些信息包括事件的名称、事件的开始 时间、事件的持续时间。
事件的日期和时间在TS流里是按照MJD(Modified Julian Date,修正的儒略日期)+ UTC(Universal Time Co-ordinate,通用时间坐标)的格式并以16进制的形式给出的。在MJD+UTC和local MJD+local time之间的转换可参照GY/Z174-2001来进行。如TS流里的数据为0xCE1F 0056 0001 0600,则转换以后得到的信息为:该事件的播出时间为2003年5月8日,星期四,开始时间为00:56:00,持续时间为01:06:00。
而事件的名称则通过解析描述符short_event_descriptor来实现。并将得到的信息存储在event_info_database结构中。
所有解析得到的信息最终都将存储在节目数据库中,提供给显示模块直接调用。
6 结束语
真正完整意义上的EPG的功能是十分强大的,它不仅能提供节目表单和当前节目播放等基本功能,还可提供节目预定和家长分级控制等高级 功能。本文从实用的角度给出了一个基本EPG系统的实现方案。另外我们也实现了EPG交互式应用中的SI增值业务如天气预报、新闻、股票数据等的接收,以 菜单触发的形式提供给用户一个由文本和图形组成的反馈信息。
王景存,北京科技大学信息工程学院,副教授,博士;
王瑞胡,武汉科技大学信息科学与工程学院,硕士研究生,研究方向:数字信号处理。
2 数字电视的电子节目指南(EPG)及其系统
数字电视由于传输数字化,多种业务可以混合在一起通过一个信道传输。因此,数字电视已经不是单一的电视业务,而是指通过电视传输通道传输的数字业务,包括 视频、音频、图像、数据等。全球数字电视已经进入快速发展阶段。可以预见,在今后几年,与数字电视相关的业务将大幅度增长。随之而来的问题是,当数字电视 能为用户提供数倍于目前节目量的节目及多种业务时,用户怎样才能便捷地找到所要的节目和信息呢?电子节目指南(EPG)显然是必不可少的工具。
电子节目指南给用户提供一个容易使用的、界面友好的、可以快速访问节目的一种方式,用户还可以通过该功能收看一个或多个频道,甚至所有频道近期将播放的节 目。同时,EPG可提供分类功能,可以帮助用户浏览和选择各种类型的节目。当然电子节目指南对业务提供商也有很重要的意义。
数字电视的信息
1、节目说明信息
在数字电视中,所有的信息和信号,包括视频、音频、文字、图片等经数字化后都变成了数据。数据在传输前要按照有关标准(一般是MPEG-2)打包,形成固 定长度的传送(TS)包,MPEG-2的TS包长为188字节,然后再通过网络快速传输到目的地。对于这些长度相同的TS包,如果没有引导信息,接收端解 码器是无法找到需要的码流的。因此,在MPEG-2中专门定义了PSI。PSI的作用是自动设置和引导解码器进行解码。 PSI由节目关联表(PAT)、条件接收表(CAT)、节目映射表(PMT)和网络信息表(NIT)组成,每个表分成若干段映射(变换)到TS中传输。
PSI的几个表包含了解码和重现节目所需信息,其主要作用是找到节目和要解压缩的码流。其中PAT是所有表的根,它的PID值为0。实际应用中,解码器要 对一特定码流解码时,首先要找到PAT。然后在PAT中找到所需节目(比如节目1),根据节目1相应的PMT的PID(如22),找到节目1的PMT。 PMT中可能包括多个数字码流(包括视频码流、音频码流和数据码流),每个码流也有一个PID。如果要解码的是视频码流,则在PMT中找到视频码流的 PID是54,再到TS中去找PID是54的包,并把所有PID是54的包送到视频解码器。在PAT中,节目0总是为NIT预留的。
这里PID值是十进制的,在有关标准中分配的PID值是十六进制的,即用0×开头的值表示。如十进制的22、54,在十六进制中分别是0×16、0×36。
2、业务信息
PSI数据提供接收机能自动设置的信息,使之能对复用流中的不同节目流进行解码。但是PSI表不能提供有关业务和节目的识别信息。因此,DVB组织对 MPEG-2的PSI进行了扩展,提供了不同信息种类的多种表格,称之为SI。SI是用来描述传送系统、传送内容和广播数据流时间表等数据,它帮助综合接 收解码器(IRD)自动调谐,给用户提供附加信息,使IRD能自动设置可供选择的业务。
SI由业务群关联表(BAT)、业务描述表(SDT)、事件信息表(EIT)等9个表提供,它们分成若干段映射到TS包中传输。
在PSI中,网络信息表(NIT)的内容是专用的且未作规定,但在SI表中专门定义了NIT的语法和语义,扩展了NIT的数据格式,旨在提供更多有关物理网络的信息。
与PSI中PAT、PMT、CAT不同的是,SI的9个表在实际使用中并不都是强制性传送的。在实际(现行)传送系统中,NIT、SDT、EIT及TDT 的传送是强制性的。在其它传送系统中,NIT、SDT、EIT是可选传送的。BAT、RST、TOT在任何情况下都是可选传送的。ST、SIT和DIT则 是需要时才存在。
除携带时间表信息的EIT外,所有的PSI和SI表都不能加扰,以免影响解码器正常工作。
在实际应用中,节目播出前端将符合标准定义的PSI和SI表插入TS包,构成数字电视广播码流,传输给用户。接收端解码器根据PSI解复用和解码所需的码流,利用SI提供的数据构成各种功能的EPG。解码器根据包标识符(PID)和表标识符找到所需的码流和数据。
在插入TS之前,PSI和SI表被分成一段或若干段。段是用来把PSI和SI变换为TS包的语法结构,其长度是可变的。EIT的段限长4096字节,其余PSI和SI表的段限长1024字节。每段包含以下元素:表标识符、表标识符扩展、版本号和当前/后续指示符。
PSI和SI表分段映射到TS包后,带有相应的包标识符,用以指示TS包的性质。表标识符是为了标识段是属于什么表的。
PSI表只能在确切知道节目是什么、在什么时间播出时才能找到要解码的码流,并不提供有关节目是什么、在什么时间开始等信息,也没有多种码流的选择信息。 在数字电视业务不断增加的情况下,用户在选择业务时会感到很不方便。如果能将用户所需信息有序组织起来,提供类似节目报、又能在电视机上即时浏览的功能, 将大大方便用户使用。EPG正好能起到这种作用。
根据《数字电视广播业务信息规范》对EPG的要求,EPG应提供节目单和当前节目播放等基本功能,还可提供节目附加信息、节目分类、节目预订和家长分级控制等高级功能。
在交互电视中,EPG更复杂,应能提供诸如节目内容背景资料、视角切换、天气预报、游戏等功能。
EPG的这些功能均可通过SI提供的数据来实现。也就是说SI是实现EPG功能的前提。在SI表中,最重要的是NIT、EIT和SDT,利用这3个表中的数据就可以构造出功能不同的EPG。
3、网络信息表
在PSI中定义的NIT的传送是可选的。在SI中,要求在实际(现行)传送流中,NIT的传送是强制性的。
NIT指出了传送当前业务的物理网络信息及该网络的特性,例如业务是通过何种传送系统(卫星或地面或有线)传送的、传送系统的有关参数等。任一网络由独立分配的网络标识符值唯一标识。
NIT主要携带网络标识符、网络名称和传送系统参数等信息。
传送系统有两个标识,即网络标识符和原始网络标识符。当NIT在产生TS的网络上传送时,网络标识符和原始网络标识符取同一值。在原始网络标识符中的每个业务标识符都是唯一的。含于TS中的某个业务转移到另一传送系统时,网络标识符改变,原始网络标识符保持不变。
卫星传送系统的参数有:轨道位置、轨道的东西标志、频率、调制方式、极化方式、符号率及前向纠错(FEC)内码。
有线传送系统参数包括:频率、调制方式、FEC外码、符号率、FEC内码。
地面传送系统参数我国还未定义。
NIT中提供的上述数据是供解码器自动搜索频道用的,也可以显示出来为用户提供参考数据。另外,还可以传输一些可选信息,如多语种提供网络名称、业务列表等。
4、业务描述表
SDT的每一个子表都对一个特定TS流中的业务进行描述。这些业务可能是实际TS流的一部分,也可能是其它TS流的一部分,可以通过不同的表标识符来区分。(业务如CCTV1等)
SDT可分成若干业务描述段,任何构成SDT的段都要由PID为0×0011的TS包传送。
SDT提供业务所属的业务群、业务使用的加密系统、与其它业务的链接信息、该业务的准用国家、业务名称和业务提供者、业务是否允许NVOD,以及多画面的控制、实现交互式回传信道的电话号码和多语种业务名称等信息。
为了更容易获得有关业务,一般遵循这样一些规则:对于实际TS,SDT的传送是强制性的,而且在一特定TS的SDT中,SI码流至少应列出该TS中的所有业务信息;其它TS的SDT应当列出该TS的所有业务。
5、事件信息表 (事件如新闻联播等)
EIT按时间顺序提供每个业务中包含的事件的信息,其类型通过表识别符进行区别,见《数字电视广播业务信息规范》中的表2。任何构成EIT段均在PID为0×0012的传送包中进行传送
当前/后续事件信息表(EIT present/following)只包含给定业务中的当前和后续一个事件的信息,但在NVOD情况下可以有多于两个事件描述信息。而EIT Schedule(EIT-S)则包含一周内或更长时间的节目预告信息.
EIT提供的信息包括:事件的标识号、起始时间、节目长度;播放状态、是否加密;事件的详细介绍;两段同样事件的时间偏移;事件多语种的简短介绍;节目限定的级别等。
在所有PSI和SI表中,只有EIT的时间表可以被加扰。
电子节目指南的构成
根据NIT、SDT和EIT等SI表提供的信息,可以构成各种各样的EPG,使用户能通过多种方式找到所要的信息。
在数字电视系统中,对于电视台和用户来说,增加EPG功能是非常必要的,而EPG所需的信息正是由SI提供的。
实际上SI表提供的各种信息是通过描述符来实现的。《数字电视广播业务信息规范》中的表12列出了描述符在SI表中最可能出现的位置,从中可以看到,同一 类信息允许出现在多个SI表中,而且表示的是标识符最可能出现的位置,并没有限制在其它表中使用该标识符;此外,SI表提供的各种信息并不都是强制性的。 这样就为EPG前端系统和SI编辑器的开发提供了较大的空间和灵活性,同时也表明EPG是一种定制系统,它的功能与节目业务提供商打算向用户提供什么样的 服务有关。
EPG包含两个部分:一是播出前端的EPG编辑器;二是用户端数字电视接收机中相应的接收/显示/控制软件。两部分一一对应,如果一个厂家的接收机产品要 进入一个业已采用某种EPG前端产品(数据结构封装)的传输网络(用户群体),则必须按照前端定义的数据结构来改造其接收机的相关部分,从而接收显示前端 送出的业务信息。而在EPG前端编辑器中,根据所需的功能,将采用适当的描述符来提供有关的信息。
EPG系统的组成
EPG系统分为前端子系统和接收端子系统,前端子系统主要负责SI数据的组织和生成,一般来说,由一个专门的SI复用器(SI Server )来完成这部分工作,并把生成的SI数据与节目等的其它数据流进行系统层复用,在TS流中传输。
接收端子系统主要负责SI数据的接收、解析等。
综合接收解码器(Integrated Receive Decoder,IRD)从接收的TS流中解析出SI数据,并在本地建立SI数据库,用户通过EPG界面与SI数据库进行交互。为了方便用户的随机接入, SI数据是重复发送的,有关它的重传速率在EN 300 468[1]中有详细的规定。接收端不停地接收、解析来自发端的SI数据,当发端的SI数据改变时,SI数据库更新,否则接收的SI数据被丢弃。
EPG的应用程序运行于数字电视的机顶盒中,应用程序管理器负责EPG应用的管理,上层的EPG API屏蔽了下层的软硬件实体,使编写EPG应用程序时可以不考虑底层的具体实现,只需要调用相应的API函数,下层的DVB-SI API也是起同样的作用。下层的解复用模块接收TS流,解出DVB SI数据流,再经SI数据解析模块,生在SI信息表,存于本地数据库中,由DVB-SI API提供的接口向上层提供服务。
国内外的EPG系统的实现方案,概括起来主要有以下两种:
(1)本地应用方案:这种实现方案要求节目列表及详细信息作为业务信息的形式复用于MPEG-2传输层中,数据经信道传输后,在接收端的解码器对这些数据 进行解码,并在接收机RAM中形成专用的EPG数据库,EPG应用将检索数据库并根据用户输入的指令显示用户关心的节目信息。目前大多数厂商提供的EPG 采用该种实现方案。
(2)交互式实现方案:这种实现方案首先要求数字电视机顶盒的软件系统中有中间件(以HTML引擎为例),在发送端的EPG服务器将把HTML页面的形式 组织,通过数据广播信道传输到机顶盒,机顶盒通过HTML引擎显示这些页面,如同在PC世界中的浏览网页。用户与EPG的交互分成两种形式,对于没有回传 信道的情况下,HTML页面通过Data Carousel发送,实现本地交互;而对于有回传信道的情况下,机顶盒将根据用户的输入从网络中获取新的所需页面。该方案以OpenTV为代表。
上述两种实现方案都要求业务信息或HTML页面随着时间迁移或节目修改而做相应变更,对于本地应用和本地交互方案还要求数据有一定的重传率,以保证EPG的随机接入。
比较上述两种实现方案,前者的EPG显示形式是由接收机中的EPG应用完全决定的,发送端只提供必须的信息条目,比较容易实现;后者的EPG显示形式完全由EPG服务器提供的页面决定,即由发送端决定。
EPG系统的关键技术
实现EPG系统主要有以下几个关键技术:发端的SI数据的组织和生成,接收端SI数据的接收和解析,接收端SI数据库的建立,EPG界面的显示等。其中有 些是用硬件实现,如SI数据的接收和解析;有些则用软件实现,如SI数据库的建立和EPG界面的显示。具体如下:
1、SI数据的组织和生成
发端的SI数据的组织和生成,由发端的SI服务器(SI Server)完成这部分功能,接收端的SI解析与此功能相反,主要负责SI数据表的重建。SI数据的组织要符合DVB-SI中的语法定义和MPEG-2 的语法定义,同时要纵观传输网络中的所有业务信息。信息内容应与PSI和SI表中的信息相对应,它可按照Network-Transport Stream-Service-Event的分层顺序描述,同时内嵌Transport Stream-Program(Service)-Element Stream的分层顺序。
2、SI数据库的建立
SI数据必须按照一定的数据结构进行存储,这样才能方便、快捷地对其进行检索和数据的提取。特别是对EPG系统,运行于机顶盒的实时操作系统中,需要对用 户的交互进行实时的动作。SI数据库建立的好坏对其性能有重要的影响。SI数据主要有:网络信息、传输流信息、业务(节目)信息,业务的事件信息等,并且 大量的信息都是通过描述子来传输的,所以可用树状链表来存储数据,构成从网络、传输流、业务、事件的树状结构,传送不同信息的描述子用继承于同一基类的描 述子类来表示。
3、EPG系统的显示技术
当电视节目和EPG应用同时启动时,用户看到的可能是节目画面和EPG界面的叠加,用户所看到的电视画面从前到后可以分为三层,依次为图形层、视频层和背景层。
这里的图形层也就是下面所说的OSD(On Screen Display)层,OSD界面显示技术指在图像画面上叠加文字显示,使屏幕为用户提供更多的附加信息。视频层为当前正在收看的节目(解码出来的活动图 像);背景层为没有播放电视节目和启动EPG菜单时的屏幕图像。EPG画面在图形层上构建,EPG画面是由许多EPG图形元素(如按钮、文本框、选择按 钮、组件容器等)叠加而成。界面的状态转移是通过消息驱动的机制来实现的,在消息响应函数中进行消息处理。见到的屏幕图像是这三层的叠加(blend)后 的图像。
EPG界面显示的总体思想是:SI数据与图形元素分离。包括以下几部分:SI数据的检索与提取,EPG界面所需的图形元素库,状态转移控制器,OSD层绘 制引擎,OSD层图、视频层、背景层及这三层的Blend操作。SI数据检索模块快速的检索本地SI数据库,提供EPG界面当前输入焦点所需的数据信息; OSD层图形元素库提供界面所需的图形元素,该库存于本地机顶盒的ROM中;状态转移控制器接收用户遥控器的输入,提供当前显示所需的活动焦点,控制状态 转移地流向;OSD层图像是指EPG界面图形元素合成后的图像;OSD绘制引擎决定显示的相应算法,接收各模块提供的数据,完成OSD层图形的绘制,最后 是OSD层、视频层和背景层的blend操作。
数字电视的优势不仅仅是提供高质量的视频、音频节目,更重要的是采用数字化处理后,提供了业务的灵活性和多样性。其中电子节目指南,它描述节目的播出时间 和简要内容,可帮助观众方便快速地寻找自己感兴趣的节目。将为观众收看电视带来极大的帮助,因此。必须重视数字电视的电子节目指南系统的研究和内容的制作。