数字电视传输流中的引路者——PSI-SI表
2013-07-09陈柯霖
■陈柯霖
数字电视与传统模拟电视在选择节目的方式上是完全不同的,传统模拟电视的每一个频道对应一个节目,只要调到相应的频率,就可以看到节目。而在数字电视信号中,由于复用技术的使用,一路传输流(以下简称TS:Transport Stream)可以包含多个节目,所以要观看其中的某一个节目,就必须从TS 流中提取出这个节目的压缩包,然后再进行解码。那么当用户用遥控器在数字电视机顶盒上选了一个节目,机顶盒是怎样从众多的传输流中,选中这个节目进行播放的呢?数字电视机顶盒中为了找到需要的码流,识别不同的业务信息,需要在TS 流中加入一些引导信息,这就是本文中讲到的有线数字电视中常用的PSISI 表。
在数字电视中,所有视频、音频、文字、图片等都会经过数字化处理,形成数据,并按照MPEG-2【MPEG-2(ISO / IEC 13818):运动图像及伴音编码标准。1988年提出,1994年公布为国际标准,是专门针对数字电视的信源编码标准】的标准打包,形成固定长度(188 个字节)的传送包,然后将这些数据包进行复用,形成传送TS。每个TS 流通常由多个节目及业务复用组成,对应一个8MHz 带宽的频道进行传输。为了使数字电视机顶盒能够根据用户的需要找到相应的码流,识别不同的业务,在MPEG-2 中,专门定义了PSI(Program Specific Information)信息,其作用是从一个携带多个节目的TS 流中正确找到特定的节目;而由于系统中存在多个TS 流,所以在PSI 四个表的基础上再增加了九个表,形成SI(Service Information)表。SI 表是对整个系统所有TS 流的描述,它使机顶盒的综合接收解码器(IRD)可以从TS 流中提取出所播出节目的节目列表和播出参数,以直观的形式显示给数字电视用户,使得用户可以方便地接收、选择数字电视节目。
如图1 所示为广西数字电视中一个码流的PSI/SI 信息表。
从图1 中我们可以看到,PSI/SI表通过复用器插入到TS 流中,并用特定的PID(Packet ID 标志码传输包,在数字电视复用系统中它的作用好比一份文件的文件名)进行标识。括号里显示的PID 值即为前面表格的包标识符PID 值。PSI/SI 业务信息的包标识符PID 分配如表1 所示。
TS 流中具有相同PID 的不同信息表由表标识符table_id 来区分的,具体分配如表2 所示。
PSI 表的主要作用是使观众能从单TS 流中挑选出所需节目,机顶盒根据PSI 表所提供的必需的数据,即过滤出的PID 号,可以迅速将不同节目的视频、音频、数据信号分类,组合到一起,形成所需的节目并提供给观众。PSI 表主要由节目关联表(PAT)、节目映射表(PMT)和条件接收表(CAT)组成。
其中节目关联表PAT 表的PID为0x0000,它包括了该TS 流中的所有节目映射表即每个节目的PMT PID,传输流ID 等,PAT 表是解码器解出一套节目时的第一步,它告诉解码器PMT 表所在包的PID 值。
如图2 所示,其中PAT 表包标识符PID 为0x0000,表标识符(table_id)为0x00,TS 流ID(transport_stream_id)为0x0098 即第152 个传输流。该PAT 表里面包含了PMT_PID 分别为0x0900、0x00901、0x00902、0x00903、0x00904、0x0600、0x0601、0x0602 在内的8个节目的PMT 信息,从中我们也可以看出第152 个传输流中包含了以上8 个节目。
节目映射表(PMT)中包括每个节目的基本码流信息即视频信息、音频信息和同密的多家CA的ECM 授权控制信息。针对节目的加密情况,还含有CA_System_ID。如图3 所示,以TS152 传输流中PMT_PID 为0x0900 的这个节目为例,分析其PMT 表。它的节目号program_number 为2111,PMT_PID 为0x0900,表标识符(table_id)为0x02,PCRPID 为0x0080,视频PID 为0x028a,音频(Streamtype0x04)PID 为0x0200。其 中MPEG-2 数字电视13818-2 视频部分标准中规定视频基本流类型(Streamtype)为0x02,13818-3 音频部分标准中规定音频基本流类型(Streamtype)为0x04。
条件接入表(CAT)针对具体CA 系统中的用户的授权情况,含有标识具体CA 系统的CA_System_ID和用于获取授权管理信息EMM 的索引EMM_Pid,通过这两项内容就可以获得用户所在CA 系统的EMM(Entitlement Management Messages 授权管理信息)信息,从而达到节目解扰解密的目的。如图4 所示,CAT表PID 为0x0001,table_id 为0x01,其中包括了同密的三家CA 系统。CA_System_ID 即为每家CA 系统的标示。
SI 表的主要作用是使服务提供商可以通过一个多节目流的大的传输流网络为用户提供节目和服务,它与PSI 表一起,让机顶盒在整个传输流网络中,分解出所有的节目。SI 表主要包括网络信息表(NIT)、业务描述表(SDT)、事件信息表(EIT)、时间和日期表(TDT)、时间偏移表(TOT)、业务群关联表(BAT)和运行状态表(RST)等表信息。其中的NIT、SDT、EIT、TDT 是必需传送的,本文主要对这几个表进行解说,其它表则按照需要进行选择传送,本文中不再一一叙述。
NIT(Network Information Table)网络信息表。它的PID 值恒为0x0010,包含了每个传输流的频率信息,作用是表明网络的物理结构和其特殊参数,使得机顶盒可以按照用户的选择以很少的延时或无延时地改变频道、调谐参数,正确地解码出TS。
SDT(Service Description Table)服务描述表。它的作用是定义网络中有效的服务内容,如视频、音频、数据等。列出传输流的业务信息,如传输流中包含的节目名称、节目类型等。
EIT(Event Information Table)事件信息表。它的作用是定义网络中所有的事件,提供针对它们的描述,如每个节目的当前播出的节目名称、播出开始时间、播出时间段、父母控制级别等信息和下一个播出节目相关信息。
TDT(Time and Date Table)时间信息表。这个表格里面包含了与机顶盒有关的时间信息,这些信息是实时更新的。
通过分析数字电视传输流中的PSI/SI 表,我们可以解决很多数字电视方面的问题。比如我们再来看一下文章开头提到的问题,通过PSI/SI 表分析数字电视机顶盒接收某一个指定节目的流程。首先机顶盒从节目关联表(PAT)中取得这个节目的节目映射表(PMT)的PID 值;然后从传输流中找出与此PID 值相对应的节目映射表(PMT),从这个节目映射表中获得构成这个节目的基本码流的PID 值,根据这个PID 值从传输流中滤出相应的视频、音频和数据等基本码流,最后解码复原为原始信号,我们就从家里的电视收看到了选中的节目。