EPG(electronic program guide)指的是电子节目向导,在实际的数字电视机顶盒制作过程中,这将是一个非常重要的模块。通过EPG,可以让用户看到详细的节目信息(包括频道名称,当前频道上的节目列表以及每个节目的播出时间,更详细的还有节目的简单介绍)。
在这个系统中,EPG信息主要通过段(Section)的形式在TS流中传输,为了存取EPG段信息,给EPG信息定义了以下几种表:
首选就是MPEG2标准中定义的PSI信息的四个表:节目关联表PAT(Program association table), 节目映射表PMT(program mapping table), 条件接收表CAT(Conditional access table), 网络信息表NIT(network information table).
1、PAT,节目关联表,在这张表中,包含着当前TS流中所包含的所有节目的世上映射表的PID以及当前传输流的ID(TSID),通常情况下,我们都需要从PAT中获得当前所有节目映射表的PID,然后再根据这些PID来得到节目的其他信息
2、PMT,节目映射表,在这张表中,包含了一套节目的主要信息,其主要包括这套节目中所用到了的流的PID,如视频流ID、音频流ID(可能会包含多个音频流)、附加数据流的PID等。有了音视频的ID之后,就可以正确地来安排电视的播放了(通常地,对于一个TS流,有了视频ID和音频ID就可以正确的播放了(多个音频流可用来切换声音语种))。
3、CAT,访问控制表。在数字电视节目在,有很多的节目是被加了密,只有得到相应的访问权限的用户才可以正常地播放。对于被加密的频道,CAT就存储了其被加密的信息(主要是系统访问的ID,通过这些ID去CI模块中得到相应的解密串,用来对音视频数据进行解密)
4、NIT,网络信息表,描述当前TS网络的信息,包括网络ID,网络名称等。
其次便是SI(service information)信息了,在欧洲标准的DVB中(老美用的是ATSC标准,后面再做相应的介绍),用了九张表来记录这些信息。
1、业务群信息表BAT,其记录了每一个业务群的名字以及这个业务群的详细描述
2、业务描述表SDT,也就相当于频道描述。在这个表中,列出了某一个业务群中所有的业务,通过这个表,我们可以很容易地得到每个业务的相关信息,如 几个确定一个业务的ID(TSID, ONID, SID)、 访问控制模式、业务供应商名称、业务名称等
3、事件信息表EIT,相当于节目描述。在这个表中,会列出当前TS流中包含的所有的节目信息,每一个节目信息包括:SID、TSID、ONID、EVENTID(节目唯一标识)、起始时间、持续时间、访问模式、节目名称、节目描述、节目级别、节目类别等(注:节目信息出多个表传输,分别代表着不同网络的事件信息)。
4、运行状态表(RST):
- 运行状态表给出了事件的状态(运行/非运行)。运行状态表更新这些信息,允许自动适时切换事件。
5、时间和日期表(TDT):
- 时间和日期表给出了与当前的时间和日期相关的信息。由于这些信息频繁更新,所以需要使用一个单独的表。
6、时间偏移表(TOT):
- 时间偏移表给出了与当前的时间、日期和本地时间偏移相关的信息。由于时间信息频繁更新,所以需要使用一个单独的表。
7、填充表(ST):
- 填充表用于使现有的段无效,例如在一个传输系统的边界。
8、选择信息表(SIT):
- 选择信息表仅用于码流片段(例如,记录的一段码流)中,它包含了描述该码流片段的业务信息的概要数据。
9、间断信息表(DIT):
- 间断信息表仅用于码流片段(例如,记录的一段码流)中,它将插入到码流片段业务信息间断的地方。