博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
电子节目指南(EPG)在机顶盒中的实现
阅读量:5285 次
发布时间:2019-06-14

本文共 5442 字,大约阅读时间需要 18 分钟。

一 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的数字电视机顶盒

转载于:https://www.cnblogs.com/lifan3a/articles/6140795.html

你可能感兴趣的文章
大道至简读后感(第四章)
查看>>
IDA IDC Tutorials: Additional Auto-Commenting
查看>>
k8s-存储卷1-十二
查看>>
在Android中Intent的概念及应用(二)——Intent过滤器相关选项
查看>>
第十六章 多态性(一)
查看>>
INSERT IGNORE INTO / REPLACE INTO
查看>>
Python数据类型-布尔/数字/字符串/列表/元组/字典/集合
查看>>
【刷题】SPOJ 705 SUBST1 - New Distinct Substrings
查看>>
IEEE 754浮点数表示标准
查看>>
declare 结构用来设定一段代码的执行指令
查看>>
图解算法读书笔记
查看>>
调试学习笔记
查看>>
解开lambda最强作用的神秘面纱
查看>>
Java基础:Object类中的equals与hashCode方法
查看>>
C#拦截Http请求
查看>>
图片下载器
查看>>
找不到docker.socket解决方法
查看>>
Activity生命周期
查看>>
HTML中head头结构
查看>>
sql server和mysql中分别实现分页功能
查看>>