基于 DVB-H 网络的 IPDC 平台中的 PSI/SI 信息测试
与分析
摘要:DVB-H 是由欧洲数字电视广播标准化组织提出的手持终端数字广播标准,基于 DVB-H
网络的 IPDC 系统可向用户提供全 IP 的数字广播服务,例如基于 IP 的手机电视、公共信息
发布等。为了使接收机可以正确的接收 DVB 服务,需要在 TS 流中插入辅助信息,即 PSI 和
SI 信息。PSI 信息的作用是辅助接收机的解码器解复用 DVB 服务,SI 信息的作用是向用户
提供不同 DVB 服务的标识符,以区分不同的 DVB 网络或者 DVB 服务。本文将详细的介绍从
TS 流中提取包含 PSI/SI 信息的数据包以及分析过程,以及获得 PSI/SI 中的相关信息,最
终获得系统提供的 DVB 服务的过程。
关键词:节目描述信息(PSI) 服务信息(SI) DVB-H IPDC
中图分类号:
1 引言
DVB-H 是欧洲数字电视广播标准化组织在 DVB-T 标准基础上提出的手持终端数字广播
标准。它不仅与 DVB-T 兼容,而且可以满足手持终端接收音视频信号的要求,例如低功耗、
高移动性、无缝平滑切换服务等,可保证在室内、户外、步行或高速行驶的汽车上正常收看。
IPDC 是 DVB-H 网络上的一种典型应用,该系统将各种 IP 流发送到网络中,通过多播的方
式发送给网络内的手持终端用户,使用户获得基于 IP 的服务。IP 流在 DVB-H 网络上传输,
除了传送节目内容之外,还要传送辅助信息帮助终端正确的接收服务和区分复用在一起的服
务,这些辅助信息通称 PSI/SI 信息,它们被封装成表的形式,不经过加密直接封装成 TS 分
组和节目内容一起发送。终端接收节目,实际上是从接收 PSI/SI 信息开始的,从 PSI/SI 信
息中,终端获得节目列表以及各个节目对应的 TS 分组 PID,然后才可以只接收特的 PID 的
TS 分组忽视具有其他 TS 分组 PID 的数据包,从而开始接收一个特定的节目。可见,PSI/SI
信息的接收、测试和分析是非常重要的。本文首先详细介绍 DVB-H 网络结构,然后介绍
PSI/SI 信息的分类及其内容和作用,最后接收怎样通过 C 语言程序获得 PSI/SI 信息,以及
怎样分析它们。
2 DVB-H 网络
DVB-H 网络是一种分级的广播网络,它的服务器端可以分为四层,最底层的是音视频
流及普通文件数据,它们是 DVB 服务(DVB service)的基本元素,音视频流和文件传输组
成服务(service),若干个服务复用成 TS 流,经过发射机处复用器的复用,交付给卫星、光
纤或者陆地通讯系统组成的网络传输,向用户提供数字广播服务。
- 1 -
DVB newwork
ID: network_id
PSI/SI:INT
图 1 DVB 网络、TS 流、DVB 服务和基本流的关系
上图展示了 DVB-H 网络中各个元素的关系 。最大的单元是 DVB-H 网络,它可以
由单频网络(SFN)或者多频网络(MFN)构成,每一个 DVB-H 网络由若干个小区(cell)
组成,每一个小区至少有一套发射设备,其关键的组成部分是复用器,结合广播网络的特点,
在 DVB-H 网络分析中可以忽视小区的概念,而重点强调复用器的概念,因为复用器是节目合
成的关键设备。每一个复用器承载一个 MPEG-2 TS 流,因此 DVB-H 网络可以看作 TS 流的
集合或者小区的集合。它用 network_id 作为自己的唯一标识符,network_id 保存在网络信息
表(NIT)中。
]1[ ]2[
比 DVB-H 网络低一个级别的概念是 TS 流,它是组成 DVB-H 网络的元素,在 DVB-H
网络中 TS 流可以和复用器划等号。实际上,一个 TS 流是由一组复用在一起的服务和相应
的 PSI/SI 信息组成的,针对某个网络,同一组复用的节目内容,加上不同的 PSI/SI 信息,
可以形成不同的 TS 流。TS 流要用 transport_stream_id 和 original_network_id 来标识自己,前
者在不同的网络中可以是相同的,因此,从全局的角度看,一个 TS 流必须用
transport_stream_id 和 original_network_id 的二元组来唯一的标识自己。这两个字段的信息保
Multiplex1
ID: transport_stream_id+
original_network_id
PSI/SI:PAT
Multiplex2
ID: transport_stream_id+
original_network_id
PSI/SI:PAT
Multiplex3
ID: transport_stream_id+
original_network_id
PSI/SI:PAT
DVB service1
ID:service_id
PSI/SI:PMT
DVB service2
ID:service_id
PSI/SI:PMT
DVB service3
ID:service_id
PSI/SI:PMT
Component1
ID:component_tag,PID
Component2
ID:component_tag,PID
DVB networks
TS
Service
Component3
ID:component_tag,PID
ES
TS:Transport Stream ES:Elementary Stream
- 2 -
存在节目相关表(PAT)中。
TS 流在 DVB-H 网络中,是由 DVB 服务时分复用在一起组成的。每一个服务,可以
是一套电视节目,可以是一个文件传输或者一条公共消息发布,也可以是以上基本元素的集
合。根据 ETSI 的规范 ,DVB 服务是一个节目事件序列的集合,每一个节目事件又由若干
基本流组成。从全局的角度来看,服务用 service_id、transport_stream_id 和 network_id 来唯
一标识自己,这些标识符信息包含在节目映射表 PMT 中。
]1[
最后,服务由基本流组成,这些基本流承载单一类型的数据,可以是一道音频流,或
者一道视频流,或者是一个数据传输,但是不可以是以上的组合。每一个基本流,要用
component_tag 或者 TS 流分组 PID 来标识自己,这种标识是在一个服务内部有意义的,如果
放到全局的角度,就要加上服务的标识符。
注意,根据 TS 分组 PID 是可以从 DVB-H 接收卡中读到相应的 TS 流数据包的。
IP Platform1
ID:platform_id
PSI/SI:INT
图 2 基于 DVB-H 网络的 IPDC 系统的层次结构
上图展示了基于 DVB-H 网络的 IPDC 系统的层次结构 。DVB-H 网络从 IP 的角度可
以分为 IP 平台(platform 通道( IP 流三个层次。最大的单元是 平台,标
TS 流,可以存在于一个或者多个 DVB-H 网络中。
]2[
)、IP flow)和 IP
识一个没有冲突的 IP 地址空间,它要用 Platform_id 来标识自己;IP 通道表示一组具有相同
的源 IP 地址和目的 IP 地址的 IP 流的集合,它在一个 IP 平台中用源地址和目的地址来标识
自己,不同平台上的 IP 通道可以有相同的标识符,因为他们所在的 IP 平台不同,从全局角
度来看,他们仍然是不同的 IP 通道。
注意,一个 IP 平台可以包含多个
IP 流是采用 IP 的观点来分析 DVB-H 网络时最小的元素,每一个 IP 流,承载一个基
IP flow1
ID : IP address
IP flow2
ID : IP address
IP flow3
ID : IP address
IP stream1
ID:ts_id+
Original_network_id
+PID
IP stream2
ID:transport_id+
Original_network_id
+PID
IP Platform
IP flow
IP stream3
ID:transport_id+
Original_network_id
+PID
IP
streams
- 3 -
本流(
些网络标识符,这些标识符对于
从 TS
3 PSI/SI 信息简介
PSI 信息
PSI 即 Program Specific Information ,由于服务是通过复用器复用在一起的,所以
接收机 服务
服务的 service_id
¾ 是分开封装成
¾ 理网络的信息,比较重要的是可以从 NIT 表中
¾ 供 个或多个 CA 系统,PID 值固定由 0x0001 标识。
PAT 下图所示:
Elementary stream),IP 流用 transport_stream_id、original_network_id 和 TS 分组 PID
的三元组来标识自己,PID 和基本流是可以对应起来的。
以上详细介绍了 DVB-H 网络的层次结构,提到了一
流中提取节目出来是非常重要的,它们就包含在 PSI/SI 信息表中,如图 1,2 所示。
下面详细介绍这些标识符所在的 PSI/SI 表格。
]2[ ]4[
需要辅助信息来解复用以得到各个 ,PSI 正是这种信息。PSI 信息还可向用户提
供每一个服务由那些基本元素组成,以及每一个基本元素在 TS 流中的分组 PID 等信息,PSI
信息封装成 PAT,PMT,CAT,NIT 四类表格,比较重要的是前两个。
¾ PAT(节目相关表):保存了复用器与可用服务列表的映射关系,即可用
和其 PMT PID 的映射关系,还保存了网络信息表 NIT 的位置信息 ]3[ 。
PMT(节目映射表):每一个服务(service)由若干个基本流组成,它们
IP 数据包传送的,要把它们合成为一个可供用户收看的节目,必须从复用的 IP 流中,
找出对应与一个服务的所有元素,而 PMT 表格保存了每一个服务的组成信息,根据一
个指定的 service_id(program_number),可以从 PMT 中查到这个 service 由哪些基本流
组成以及每一个基本流的 TS 分组 PID。PMT 中还包含了每一个节目的节目时钟参考
(Program Clock Reference)信息 ]3[ 。
NIT(网络信息表):NIT 表格包含了物
获得 network_id 和 platform_id ]2[ 。
CAT(条件访问表):CAT 表提 一
CAT 表提供系统中条件接入的信息,指定 CA 系统与它们相应的权限管理信息
EMM(Entitlement Management Messages)信息之间的联系,指定 EMM 的 PID,以及其
它相关的参数。
和 PMT 的关系如
- 4 -
PAT PMT Elementary Stream PID
图 3 PAT 和 PMT 的关系
以上叙述了比较重要的 PSI 信息,PSI 信息是 MPEG-2 标准定义的,DVB-H 规范中的
定义和 MPEG-2 标准是兼容的。
SI 信息
SI 信息是 DVB-H 规范中特有的,用来描述传送系统,传送内容和广播数据流时
间表等的数据,是补充 MPEG-2 中 PSI 的附加数据,这些数据帮助 IRD 自动调谐,给用户
提供附加信息,使 IRD 能自动设置可供选择的业务。各业务信息表均分配了特定的 PID。
它提供了比 PSI 更为丰富的信息,使得接收机可以更好的识别 DVB 服务。SI 信息包括 BAT,
SDT,EIT,RST,TDT,TOT,ST。
]2[ ]4[
¾ BAT:实际运营中会把不同的复用中的一些相关的服务或者某一类服务划分成为一个集
群,BAT 保存了这样的集群中的可用服务的信息。
¾ SDT:服务描述表,用于描述系统中服务的名称、服务提供者、是否有相应的事件描述
表等方面的信息;服务描述表可以描述当前传输流,也可以描述其他传输流,这由表的
Table ID 来区分。
¾ EIT:事件信息表。一些相关的音视频流、文件流,加上规定的开始时间和结束时间,
构成一个事件。比如,北京时间 20070723 18:20-20:30 直播亚洲杯四分之一决赛韩国
VS 伊朗就是一个事件。
¾ RST:运行状态表,提供某一事件或多个事件的运行状态和时间,即某一事件运行或不
运行的信息,如:正在运行、即将运行、暂停、不运行等,可用于按时自动切换到指定
的事件
¾ TDT:记录服务器当前的时间和日期信息
Program number1
PMT PID
Program number2
PMT PID
…………
Program number n
PMT PID
Program 1
PMT section
Program 2
PMT section
……
Program n
PMT section
Program 1
PCR PID
Program 1
Video PID
Program 1
Audio PID 1
Program 1
Audio PID 2
Program 1
Data PID
- 5 -
¾ TOT:记录当前服务器时间和本地时间的偏差值
¾ ST:ST 表的作用是表明其内容是无效的,只是作为填充字节,不传递有用信息
¾ INT 即为 IP/MAC Notification Table,它包含了一个 IP 平台中所有的 service 对应的 IP
地址,以及每一个 IP对应的 service_id,进而可以通过查询PAT和PMT得到每一个 service
的 TS 分组 PID,因此可以说 INT 表包含了一个 IP 平台所提供的服务的位置信息,它
是一个非常重要的表格。
4 PSI/SI 信息解析
应用程序
读接收卡程序
图 4 程序层次结构
如上图所示,要通过正常工作的 DVB-H 接收卡获得节目,需要二个层次的程序,读
接收卡程序负责从 DVB-H 接收卡中读取数据,这个层次的程序并不清楚自己读到的是音视
频还是辅助信息,只是读取指定 PID 的数据包交付给上层,上层的应用程序负责分析从接
收卡上读到的数据,获得 PSI/SI 信息中包含的标识符以及其他有用数据,并且负责指定硬
件操作程序的参数,以便可以读到正确的数据,PSI/SI 信息的获得与分析分为 INT discovery
和 Channel discovery 两个过程,第一步获得平台上所有可用的 DVB service,后一个过程获
得一个指定 service 的 PID。
PSI/SI 信息的的测试与分析,首先获得包含指定表格的分组,也就是指定 PID 的 TS
分组;然后查看指定表格的格式定义:NIT ,PAT,PMT ,INT ,根据这些表格的定
义可以查询到关心的信息位于描述符的哪一个位置,哪一个字节是关心的信息,从而把这些
信息读出来。
]2[ ]3[ ]4[
INT discovery
INT discovery的目的是得到 IP平台中所有节目的 IP地址和 service_id,以及和接收节目
有关的 ESG service 的 IP 地址和 service_id.
第一步的任务是从 IP 流中读出 INT 表格,因为它包含了 bootstrap 地址,和一个可用服务
列表,系统将 INT 视为一个服务并且为它分配了一个 service_id,通过这个 service_id 可以找
到 INT 的组成元素在 IP 流中的 PID,从而从 IP 流中把 INT 表格读取出来,然后根据 ETSI
- 6 -
规范对于 INT 表格结构的定义 ,可以从这个表格中读取平台提供的每一个服务的组播地
址。具体流程如下图所示:
]4[
调谐(Tuning)到指定频率
定位并解析 NIT 表,找到服务器
对应的 platform_id 和 Service_id
定位 PAT,根据获得的 Service_id
在 PAT 中找到对应的 PMT PID
定位 PMT,在 PMT 中分析节目对
应的 TS 分组 PID
定位和分析 INT,得到节目的名称
和提供者名称;分析 SDT,得到节
目对应的组播地址
根据节目组播地址和 service_id
图 5 INT 获得流程
完整的节目信息包括节目列表,它包含在 INT 和 SDT 中,其中,INT 包含了网络中所
有 IP 流的 IP 地址,和每一个 IP 流的 service_id, SDT 包含的是每一个 service 的名字和提供
者。INT 中还包括 bootstrap 地址,这个地址是终端获得 ESG 信息的地址。SDT 的 PMT PID
是预先定义好的,不需要遵循先获得 service_id,再查询 PAT,最后查询 PMT 获得 PID,再从
TS 流中读取的流程。
channel discovery
INT discovery 之后,获得了 bootstrap 地址和网络中所有服务的 IP 地址,以及每一个
服务的 service_id,但是这些信息对于从接收卡中读取一个节目是不够的,一个 service 相关
的数据,在 TS 流中,具有相同的分组 PID,要从 TS 流中读取属于一个 service 的音视频以
及数据信息,必须获得这个 PID。上面的图四显示,一个 service 的各个元素具有不同的 PID。
- 7 -
实际运营业务时不用这种方式,MPEG-2 规范提供了另外一种基本流组合方式 ,即编码的
时候,音频、视频流分别编码,然后把音视频流以及其它和这个节目相关的其它数据流映射
到一个节目流(Program Stream)中,节目流中包含了和一个节目相关的所有数据,还包括
一种辅助信息——节目流映射(Program Stream Map),节目流映射中包含了一个节目相关
的所有基本流的信息,比如他们的类别,以及如何区分它们的标识符等。对于 DVB-H 接收
卡,不需要关心节目流这个层面,只要根据某个节目的 service_id 从 PAT 中查到这个节目的
PMT 的 PID,然后根据这个 PID 从 TS 流中读到包含 PMT 的分组,然后再根据 service_id
从 PMT 中查到一个节目对应的 TS 分组 PID,然后就可以根据这个 PID,从 TS 流中读出这
个节目的 TS 分组交给相应的处理程序,从而接收到节目。一个节目的 TS 分组 PID 的查找
是非常关键的,只有得到了这个 PID 才可能进行下一步的接收和处理。
]3[
如上所述,PSI/SI 信息的测试和分析过程一般都分为表定位和表分析两个过程,难点
在于表分析,各个表格的结构比较复杂。实际测试中,存在表定位失败的现象,这是因为
PSI/SI 都是周期性发送的,如果接收时恰好包含 PSI/SI 信息的分组丢失,那么就会定位表格
失败,这时候需要重新开始定位,或者采取改变天线的位置等措施。
PSI/SI 信息测试和分析完成之后,得到了网络内各个服务的 PID,这个时候可以选定
一个节目,也就是选定它的 PID,接收卡会根据这个 PID,只把给定 PID 的分组保留在缓冲
中,然后就可以进一步分析信号的质量和一些重要的参数,如突发序列长度,突发序列时间
间隔,上升时间等。
5 总结
本文介绍了 DVB-H 网络的层次结构,详细介绍了构成 DVB 服务必不可少的 PSI/SI 信息,
介绍了主要的 PSI/SI 表,以及从接收卡上获得 PSI/SI 信息的方法。根据上面介绍的 PSI/SI
信息的测试与分析过程,可以设计终端的节目接收系统,也可以设计信号和频道的实时间监
测系统。
参考文献
[1].ETSI “Digital Video Broadcasting (DVB): Specification for Service Information (SI) in DVB
systems”, ETSI Standard EN 300 468 ,
[2] ETSI “Digital Video Broadcasting (DVB): IP Datacast over DVB-H: Program Specific
Information (PSI)/Service Information (SI)” ETSI standard TS 102 470 206
[3] ITU-T “Information technology — Generic coding of moving pictures and associated
audioinformation: Systems”,ITU-T Rec H (ISO/IEC 13818-1) 2000
[4] ETSI “Digital Video Broadcasting (DVB):DVB specification for data broadcasting”, ETSI
Standard EN 301 192 ,2004
- 8 -
PSI/SI In IPDC System based on DVB-H NetWorks
Li Guoqing,Liu Wenjing
School of Telecommunication Engineering, Beijing University of Posts and Telecomunications
Abstract
DVB-H (Digital Video Broadcasting for Handhold Terminals) is an ETSI standard specification.
IPDC system based on DVB-H network can provide users with all-IP services, eg. digital
audio/video broadcast, public message ,and so on.. To get the DVB service correctly for the
receiver, server must insert the associated information into the TS stream, that is, PSI and SI.
Program Specific Information (PSI) consists of data enabling a decoder to demultiplex DVB
services. SI information can provide information on DVB services carried by different multiplexes,
and even on other DVB networks. In this paper, we will talk about how to extract the PSI and SI
from the IP stream and the function of each kind of PSI and SI.
Key words: PSI SI DVB-H IPDC
- 9 -
1 引言
2 DVB-H网络
3 PSI/SI 信息简介
PSI信息
SI信息
4 PSI/SI 信息解析
INT discovery
channel discovery
5 总结