EPG简介

2023-05-16

一 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的数字电视机顶盒。 (全文完)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EPG简介 的相关文章

随机推荐

  • C++11之lambda函数

    最近一直在看mesos的源代码 xff0c mesos中用到了很多C 43 43 11的新特性 xff0c lambda函数就是其中的一个 对于lambda函数简单的来说就是java中的匿名函数 语法定义 capture paramente
  • C++中两个类互相包含

    今天突然想起一个C 43 43 的问题 xff0c 如果一个类A包含类B的实例 xff0c 而实例B也包含另一个类A xff0c 这种方式的代码应该怎么写 xff0c 按照一般的开发者的想法的代码如下 xff1a 文件A h span cl
  • 命名空间

    命名空间的作用 命名空间是为了防止名字冲突提供更加可控的机制 命名空间分割了全局命名空间 xff0c 其中每一个命名空间是一个作用域 命名空间的定义 命名空间由三部分组成 xff0c 分别是namespace 空间名字和一系列由花括号括起来
  • STL中的swap函数

    swap函数执行会调用容器内数据类型的 xff0c 拷贝构造和赋值函数调用 对自定义类型使用STL algorithm中的swap函数 xff0c 会调用自定义的类型的拷贝构造函数一次 赋值函数两次 xff1b 自定义类型中没有定义那么就会
  • C++11之POD类型

    什么是POD类型 POD的全称叫做Plain Old Data xff0c 简单讲就是一个类或者一个结构体通过二进制拷贝之后还能保持其不变 xff0c 那么这个类型就是POD类型 什么类型属于POD类型 当一个类型具有平凡的定义和标准布局这
  • C++11之初始化成员变量

    C 43 43 98中的成员变量初始化 在声明类的时候 xff0c 对于静态类型并且是常量类型 xff0c 同时是枚举或者是整型的变量可以使用 61 在声明时初始化 对于不符合上述要求的静态变量可以在类外使用 61 进行初始化对于非静态类型
  • C++11之左值、纯右值和将亡值

    在C 43 43 11中所有的值一定属于左值 纯右值和将亡值三种值之一 xff0c 分别介绍一下这三种类型 左值与右值 在C 43 43 中定义左值与右值的比较标准的方法是根据其可以取地址来判断 左值就是可以对变量进行取地址或者有名字的变量
  • Skip List

    Skip List 是什么 我们常用数组和链表来组织数据 xff0c 对于已排序的数据 xff0c 数组的查询时间复杂度可以是 lgn 二分查找 xff0c 插入和删除都是 n 链表提供了一种更加灵活的组织方式 xff0c 插入和删除的时间
  • 程序员的自我修养--可执行文件的装载与进程

    进程的虚拟地址空间 C语言指针大小的位数与虚拟地址空间的地址位数相同 xff0c 即32位平台下进程的虚拟地址空间为4G由于程序在运行是处于操作系统的监管下 xff0c 进程的虚拟地址空间都在操作系统的掌握中 xff0c 只能使用操作系统分
  • C++11之继承构造函数

    问题场景 类的继承中 xff0c 如果子类想使用父类的构造函数 xff0c 则需要在子类的构造函数中声明使用父类的构造函数 xff0c 例子如下 xff1a span class hljs keyword struct span A A s
  • E95-DTU(4G01-485)数传电台的特点及其应用详解

    1 E95 DTU 4G01 485简介 E95 DTU 4G01 485 是采用 4G CAT1 方案的云数传电台 xff0c 电台支持微信小程序简单配对使用 可以显现一对一 一对多 多对多等复杂应用场景 由于采用了云技术 xff0c 数
  • STM32学习笔记(串口、IAP)

    串口 xff1a 一 USART ITConfig USART1 USART IT TXE ENABLE xff1a 只要发送寄存器为空 xff0c 就会一直有中断 xff0c 因此 xff0c 要是不发送数据时 xff0c 把发送中断关闭
  • C++中容器的优点和缺点

    顺序容器 连续存储 array 优点 随机访问 一步直接得到数据的首地址的访问方式 方便 开销低 速度快 缺点 容量在定义时就确定了 不能够改变 中间删除和插入比较麻烦 需要后面的元素都移动 vector 优点 随机访问方便 可以自动扩容
  • 硬件切换485电路

    485接口具有很好的抗噪音抗干扰 长距离传输和多站能力特性 xff0c 使其为工控行业首选串行接口 485规定的电气特性为2线 xff0c 半双工多点通信 它的电气特性是有线缆两端的电压差来决定的 由于半双工模式 xff0c 通讯时需要切换
  • 802.11 Authentication and Association

    The 802 11 standard provides a method for supplying different levels of access to different nodes in a wireless local ar
  • 串口通信与波特率

    原文出自微信公众号 小小的电子之路 串口是串行接口的简称 xff0c 串行接口是采用串行通信方式的接口 串行通信是一种将需要传输的数据由低位到高位一位一位地在一条传输线上逐个传输的通信方式 一 串行通信的数据格式 首先来了解一下串行通信的数
  • 无人机方向控制pitch yaw roll是什么 .。欧拉角定义

    http blog csdn net yuzhongchun article details 22749521 三维空间的右手笛卡尔坐标如图1所示 图1 在航空中 xff0c pitch yaw roll如图2所示 pitch是围绕X轴旋转
  • Java学习记录

    Java学习记录 第一个Java程序tips Java对象与类变量类型构造方法创建对象源文件声明规则八大基本数据类型引用类型常量类型转换 第一个Java程序 span class token keyword public span span
  • 在Windows上搭建http服务器(lighttpd)------中秋节大礼

    今天中秋节 xff0c 也算忙了一大天了 窗外月圆 xff0c 我是不是也该吟诵 露从今夜白 xff0c 月是故乡明 这样的佳句呢 xff1f 还好 xff0c 过几天国庆就要回家了 今天继续来聊聊http服务器吧 xff01 在前面的文章
  • EPG简介

    一 EPG简介 电子节目指南 Electronic Program Guide xff0c EPG xff0c 是指在符合MPEG 2 13818 1 的TS传输流中插入DVB标准定义的业务信息 Service Information xf