二、EPG的实现
1、 EPG系统构成
EPG包含以下基本功能:
? 电视报:以时间---节目名称的形式,提供当前频道从当天开始的一周的电视
节目信息。
? 当前\\后续节目信息:提供当前频道播放的节目信息及节目简介,同时也提
供下一个将要播放的节目信息及简介。
EPG还可以包含以下的一些扩展功能,这些功能是可选的。
? 节目附加信息:如节目情节介绍。
? 节目分类:按节目内容进行分类,如体育、影视等。
? 节目预定:在节目单上预约一段时间之后将要播出的节目,届时机顶盒就可
以自动切换到预定的频道,并播放预定的节目。 ? 家长分级控制:对节目内容进行分级控制。
《数字电视广播业务信息规范》规定:EPG所需要的基本信息有SI来提供,以保证机顶盒获取EPG基本信息时的兼容性。对于个性化EPG所需要的额外信息,用户可根据具体情况通过专用数据传送。对于EPG的界面,则不作规定。EPG的上述功能所需的全部信息都必须通过SI获取。
在业务信息规范中,显示SI信息的方式并没做出详细的规定,机顶盒制造商可以自己选择显示方式。
下图是EPG系统的结构图:
从图中可看出,EPG系统分为两大部分,一部分是EPG客户端,另一部分是EPG服务端。EPG客户端由PSI\\SI编辑工作站和EVENT编辑工作站组成。
PSI\\SI编辑工作站的主要功能是对网络信息、传输刘信息、服务信息、链接描述符信息的编辑,主要的操作有:新增、修改、删除等基本操作。
EVENT编辑工作站的主要功能是负责录入每个server下的节目时间表信息、功能有: ? 节目片段的新增、插入、删除。
? 外部节目单的导入(节目基本信息导入)。 ? 增强节目信息的输入。
其中节目的基本信息有:节目播出的开始时间(年、月、日、时分)、节目时长、是否是CA控制、运行状态、节目名称、节目简介等。
节目增强信息包括:事件组件描述、事件内容描述、事件扩展描述、父母级控制四项。 事件组件描述有:语种、流描述、组件描述、流组件号、文本描述等内容。 事件内容描述:主要是节目分类,如一级分类、二级分类及用户自定义分类。 事件扩展描述:就是节目的其他方面的描述,多为语种描述。 父母级控制:观众年龄限制。
EPG客户端所输入的数据都通过数据库服务器与数据库相连,并调用里面的数据,生成EPG信息,EPG信息生成器主要功能有:
? 根据输入的信息生成符合标准的SI信息文件。
? 根据输入的节目单信息自动实时生成符合标准的EIT信息文件。 ? 根据输入的信息生成播发控制文件来控制EPG信息的播发。
最后,EPG播发服务器负责根据EPG信息生成器所产生的控制文件和信息文件来完成EPG信息的播发。
2、 机顶盒的工作过程
机顶盒通常采用从PAT表→PMT表→NIT表→SDT表→EIT表解析构造EPG并同时搜索节目。但根据SI标准及机顶盒的实际解码流程,应从NIT表直接构造EPG,即先忽略PAT、PMT表。首先通过在机顶盒预先设置的主频点从传输流中直接提取NIT表,根据NIT表携带的传输系统参数搜索所有载波信息,再解析SDT、EIT表等构造出基本的EPG信息,其过程是:NIT表→SDT表→EIT表→生成EPG。EPG提供的信息主要包括:传送信息的天数(例如一周)、传送频道的数目和名称、传送的节目数、节目提供商的标识和名称、传送网络的信息(网络标识和网络名称),其细节信息还包括:节目名称、节目的简单介绍、节目的开始和结束时间、节目的主题、节目的类属、节目的观看分级限制(例如对某个年龄段进行限制)。
机顶盒通过EPG菜单来切换不同频率的频道时的解析过程:根据SDT表给出的业务标识符service_id(它等于program_number)→PAT表→PMT表→找到所需节目的TS包→CAT表→解扰→解码(如果业务没被加扰,可省去CAT表→解扰过程)。
当加入了BAT表时,用户可根据节目的分类来检索所需要的节目频道。首先查找BAT,
根据BAT列出一系列的节目种类,比如新闻、体育、电影、音乐等,用户可选择其中自己感兴趣的类型,如电影。接收应用程序根据此BAT中包含的业务群信息,得到一个业务群列表。此时用户可以根据自己的喜好,选择自己喜欢观看的电影频道。
此时,首先要找到该业务所对应的传输流,根据BAT中所给出的对应的传输流标识符,然后查找NIT中与此传输流标识匹配的传输流描述符,然后根据描述符中的参数(如频率、调制方式等)解调出该传输流,即transport_stream_id→NIT(得到流的解调参数)。再根据BAT中的业务群组标识符(bouquet_id)完成:bouquet_id→ service_id→PAT表→PMT表→找到所需节目的TS包→CAT表→解扰→解码的过程(如果业务没被加扰,可省去CAT表→解扰过程),从而收看到自己喜欢看的节目。同时根据service_id在SDT中查找,得到有关的业务信息,还可以查找EIT,得到有关事件的信息,比如开始时间、持续时间等。
3、EPG的显示技术
当电视节目和EPG应用同时启动时,用户看到的是节目画面和EPG界面的叠加,电视画面从前到后可以分为三层,依次为图形层(On Screen Display,OSD)、视频层和背景层。图形层界面显示技术是指在图像画面上叠加文字显示,使屏幕为用户提供更多的附加信息;视频层为当前正在收看的节目,即解码出来的活动图像;背景层为没有播放电视节目和启动EPG菜单时的屏幕图像。EPG画面在图形层上构建,EPG画面是由许多EPG图形元素(如按钮、文本框、选择按钮、组件容器等)叠加而成。界面的状态转移是通过消息驱动的机制来实现的,在消息响应函数(消息响应函数就是一个普通函数指针,可以随时切换)中进行消息处理。用户见到的是屏幕图像是这三层的叠加后的图像。
SI数据检索模块快速地检索由播出前端SI数据库传送过来的SI信息,并提取这些信息供EPG显示使用;OSD层图形元素库提供界面所需的图形元素;状态转移控制器接收用户遥控器的输入,控制状态转移流向;OSD层图像是指EPG界面图形元素合成后的图像,完成图形绘制。最后是OSD层、视频层和背景层的叠加操作。 三、PSI/SI表的其他应用
1、 NVOD业务
NVOD称为准视频点播。它是把一个节目通过多个播放通道按一定的时间间隔进行重播。由于NVOD只是一个名称并不是一个实际的播放任务,为此在DVB-SI中把它定义为一个参考业务并把它作为一个标记来看。而每一个播放通道的播放,则是一个实际的播放任务,而且相邻两播放通道的播放时间都有固定的偏移量,所以DVB-SI中把它定义为时移业务。
一个参考业务下面通常包含6个时移业务,如图9所示。我们也可以把每一个时移业务看成是一个参考业务下的事件,那么播出时间和持续时间就是这个事件的基本元素。
接下来我们还必须要对参考业务进行一些描述,如:片长、价格、节目类型、节目发行商、家长等级控制、业务名称、节目简介、语言类别等。并将这些信息显示在屏幕上,而且把业务名称作为参考业务选择的第一级菜单,把时移业务的播放时间(事件时间元素)作为时移业务选择的二级菜单。
以上是NVOD业务的一个总体思路,如何具体实现呢?在DVB-SI中是利用SDT和EIT来实现的。
对于NVOD业务,SDT表主要传送业务描述符、NVOD参考描述符、时移业务描述符、业务描述符;EIT P/F主要传送短事件描述符、扩展事件描述符、组件描述符、CA标识描述符、内容描述符、家长等级控制描述符;EIT schedule主要传送时移事件描述符。
首先在NIT表的业务列表描述符(service_list_descriptor)通过service_type定义了7个业务,其中1个是参考业务(service_type=0X04),其余6个是时移业务
(service_type=0X05),并给这6个时移业务赋予业务ID(service_id),除了参考业务外,6个时移业务的业务ID是和PMT表中的节目号(program_number)相等的。然后在SDT表中,每一个时移业务都通过时移业务描述符(time_shifted_descriptor)赋予一个参考业务ID(reference_service_id)目的是表明每一个时移业务归属于那个参考业务。而对于参考业务则通过NVOD参考业务描述符(NVOD_reference_service_descriptor)和业务描述符(service_descriptor)进行描述,其中NVOD参考业务描述符通过TS_ID 、原始网络ID、业务ID给参考业务作了定位,而业务描述符给参考业务安上一个名称和提供这个参考业务提供者的信息。由此可见,参考业务名称及参考业务提供者的信息是由SDT产生的。
对于EIT表,7个业务对应着2个EIT的子表,通过业务ID和事件ID(event_id)进行定位。参考业务由一个EIT P/F子表进行描述。在EIT P/F里传送了短事件描述符(short_event_descriptor)、扩展事件描述符(extended_event_descriptor)、组件描述符(component_ descriptor)、CA标识描述符(CA_identifier_ descriptor)、内容描述符(content_ descriptor)和家长等级控制描述符(parental_rating_descriptor),这些描述符提供了给参考业务在:名称、提供者、片长、影片价格、影片简介、家长控制等级、语言类别等多方面进行描述。
6个时移业务由EIT schedule的多个段分别进行描述,对于每一个时移业务究竟需要多少个段来描述,是视其的播放编排(有多少个播放事件)而定的。前面说过,一个时移业务就相当于参考业务下的一个事件,但如果一个时移业务不只有一个播放任务,而是连续多个播放任务,那么一个时移业务就由多个事件组成,每一个播放任务就作为一个事件。如图10所示。每一个事件都由一个开始时间(start_time)和持续时间
图11
(duration)进行描述,并通过时移事件描述符(time_shifted_event_descriptor)中的参考业务ID和参考事件ID及event_id进行定位(对于一个参考业务下的所有时移业务的参考业务ID和参考事件ID都是相同的)。
以上这些表及描述符参数都通过业务ID进行关联,从而实现了NVOD应用的一、二选择菜单和点播收看。菜单界面如图11所示。
图12是SI信息表在NVOD业务的关系图。