PSI/SI深入学习3——SI信息解析1(NIT,BAT)

转自:http://blog.csdn.net/kkdestiny/article/details/12994675


PSI/SI 深入学习

BASIC KNOWLEDGE LEARNING OF PSI/SI 



SI 信息

INFORMATION OF SI

 

"SI是对多个TS流的描述,它包含了PSI"

        PSI只提供了单个TS流的信息,使接收机能够对单个TS流中的不同节目进行解码;但是,它不能提供多个TS流的相关业务,也不能提供节目的类型、节目名称、开始时间、节目简介等信息。因此,DVBPSI进行了扩展,提供了其他不同类型的表,形成了SI

         SI定义了PATPMTCAT之外的9张表,通过组织SI提供的这些数据,可以生成类似节目报表的形式,方便用户查看多种信息,这就是所谓的电子节目指南(EPG)。

        下面给出了SI定义的十张表(NIT的由SI规定的):

NIT

Network Information Table

网络信息表

描述整个网络,如多少TS流、频点和调制方式等信息

SDT

Service Description Table

业务描述表

包含业务数据(如业务名称、起始时间、持续时间等)

BAT

Bouquet Association Table

业务群关联表

给出业务群的名称及其业务列表等信息

EIT

Event Information Table

事件信息表

包含事件或节目相关数据,是生成EPG的主要表

RST

Running Status Table

运行状态表

给出事件的状态(运行/非运行)

TDT

Time&Date Table

时间和日期表

给出当前事件和日期相关信息,更新频繁

TOT

Time Offset Table

时间偏移表

给出了当前时间日期与本地时间偏移的信息

ST

Stuffing Table

填充表

用于使现有的段无效,如在一个传输系统的边界

SIT

 

选择信息表

仅用于码流片段中,如记录的一段码流,包含描述该码流片段业务信息段的地方

DIT

 

间断信息表

仅用于码流片段,如记录的一段码流中,它将插入到码流片段业务信息间断的地方

         SI定义的表,并不需要全部传输,其中,NITSDTEITTDT是必须传输的;而又以NITSDTEIT最为重要,利用这三个表可以构成功能不同的EPG,如提供节目附加信息、节目分类、节目预定和家长分级控制等。

 

NIT解析

PARSINGOF NIT

 

"NIT描述了数字电视网络中与网络相关的信息"

       NIT描述了数字电视网络中与网络相关的信息,但这个表本身的信息有限,更多的信息是依靠插入表中的描述符来提供的。NIT常用的描述符有:网络名称描述符(network_name_descriptor)、有线传送系统(cable_delivery_system_descriptor)、业务列表描述符(service_list_descriptor)和链接描述符(linkage_descriptor)。下图是实际的一个例子中的两种描述符。




NIT的表结构分析

ANALYZEOFTHE STRUCTUREOFNIT

 

        网络信息表(NIT)传递了与通过一个给定的网络传输的复用流/TS流的物理结构相关的信息,以及与网络自身特性相关的信息。

网络信息段

Syntax (句法结构)         No. of bits(所占位数)   Identifier(识别符)  Note(注释)  
network_information_section(){
table_id                                            8                      uimsbf                                                  
Section_syntax_indicator               1                          bslbf             通常设为“1”
Reserved_future_use                      1                        bslbf
Reserved                                         2                        bslbf
Section_length                                12                      uimsbf                 见注释
Network_id                                      16                       uimsbf                 见注释
Reserved                                         2                         bslbf
Version_number                              5                         uimsbf             见注释
Current_next_indicator                   1                          bslbf                 见注释
Section_number                              8                          uimsbf            见注释
last_section_number                       8                          uimsbf            见注释
Reserved_future_use                      4                          bslbf
Network_descriptors_length        12                        uimsbf
for(i=0;i<N;i++){
    descriptor()      //First descriptor loop
}
reserved_future_use                         4                     bslbf
transport_stream_loop_length       12                  uimsbf              
for(i=0;i<N;i++){
    transport_stream_id                     16                  uimsbf             见注释
    original_network_id                      16                  uimsbf             见注释
    reserved_future_use                      4                  bslbf
    transport_descriptors_length     12                   uimsbf
    for(j=0;j<N;j++){
        descriptor()     //Second descriptor loop
    }
}
CRC_32                                         32                  rpchof                  见注释
}

SI标准中规定:original_network_idtransport_stream_id两个标识符相结合唯一确定了网络中的TS流。各网络被分配独立的network_id值作为网络的唯一识别码。当NIT表在生成TS流的网络上传输时,network_idoriginal_network_id将取同一值。

  • NIT表被切分为网络信息段(network_information_section
  • 任何NIT的段都必须由PID0x0010TS包传输
  • 现行网络的NIT表任何段的table_id值应为0x40,且具有相同的table_id_extension即(network_id);
  • 现行网络以外的其他网络NIT表的段table_id值应为0x41

                 

        注意到这里出现了两个循环,分别成为第一层循环和第二层循环;每层循环都插入了一个描述符,也就是一共插入了两个描述符。这两个描述符的特点如下:

第一层描述符

作用域是针对整个网络的,如插入网络名称描述符、链接描述符等

第二层描述符

作用域是第一层循环所代表的一个TS流,如插入有线传输系统描述符



上图提供的即是一个真实的NIT表,红色框内有两个描述符,分别是业务列表描述符service_list_descriptor和有线传输系统描述符cable_delivery_system_descriptor;它们都位于第二层循环。

 

 

 

NIT的业务列表描述符结构分析

ANALYZEOFTHE STRUCTUREOFSERVICE_LIST_DESCRIPTORINNIT

 

        业务列表描述符通过业务标识符和业务类型提供业务服务。其目的在于:告诉接收机每一个TS流中存在多少个业务以及每一个业务的类型。其结构如下:

业务列表描述符

Syntax(句法结构)    No. of bits(所占位数)Identifier(识别符) 

service_list_descriptor(){

descriptor_tag                       8                       uimsbf

descriptor_length                   8                       uimsbf

for(i=0;i<N;i++){

service_id                  16                      uimsbf

service_type               8                       uimsbf

}

}

service_id(业务标识符):唯一标识TS中的一个业务,它与program_map_section中的program_number(参看PMT表结构)相同。但当业务类型为0x04时(即NVOD参考业务,service_id没有对应的program_number)。

service_type(业务类型):指示业务的类型。如0x01为数字电视业务,0x02为数字音频广播业务,0x04NVOD参考业务,0x05NVOD时移业务。

HINT:下表给出了业务类型编码方法

service_type

描述

0x00

预留使用

0x01

数字电视业务

0x02

数字音频广播业务

0x03

图文电视业务

0x04

NVOD参考业务

0x05

NVOD时移业务

0x06

马赛克业务

0x07

PAL制编码信号

0x08

SECAM制编码信号

0x09

D/D2-MAC

0x0A

调频广播

0x0B

NTSC制信号

0x0C

数据广播业务

0x0D

公共接口使用预留

0x0E

RCS映射(见EN 301 790

0x0F

RCS FLS(见EN 301 790

0x10

DVB  MHP业务

0x11~0x7F

预留使用

0x80~0xFE

用户定义

0xFF

预留使用

 

 

        上图所示只是其中一个section的业务列表描述符,如果将所有的section全解析,那么此网络中所有TS流包含的所有service_idservice_type都可以获得。这样,用户可以据此了解整个网络业务的构成,并以此为基础对业务进行分类、整合。

 

 

 

NIT的有线传输系统描述符结构分析

ANALYZEOFTHE STRUCTUREOFCABLE_DELIVERY_SYSTEM_DESCRIPTORINNIT

 

        有线传输系统描述符(Cable_Delivery_System_descriptor)是NIT业务中重要的描述符,也是基本运营所必需的描述符。它主要描述了每一个TS流的物理参数(频率、调制方式、符码率等),使接收机能正确锁频、得到数据。其结构如下:

有线传输系统描述符

Syntax(句法结构)    No. of bits(所占位数)Identifier(识别符) 

cable_delivery_system_descriptor(){

descriptor_tag                      8           uimsbf        

descriptor_length                 8           uimsbf                        

frequency                            32          bslbf

reserved_future_use            12          bslbf

FEC_outer                              4           bslbf             前向纠错外码

modulation                          8           bslbf

symbol_rate                         28          bslbf

FEC_inner                             4             bslbf           前向纠错内码

 }

Frequency(频率):32位,以84BCD码给出频率。其单位是MHz,小数点位于第四个BCD码之后,如0312.0000MHz

Modulation(调制方式):指出有线传输系统的调制方式。其定义如下表:

调制方式(十六进制)

描述

0x00

未定义

0x01

16 QAM

0x02

32 QAM

0x03

64 QAM

0x04

128 QAM

0x05

256 QAM

0x06~0xFF

预留使用

symbol_rate(符码率):28位,以74BCD码表示符码率。其单位是MSPS(兆符号每秒),小数点位于第三个BCD码后,如027.4500 MSPS


 上图所示为一个真实TS流里的一个有线传输系统描述符。可以看到其频率为331.0000MHz,符码率为6.8750MSym/s,调制方式为64 QAM

 

 

 

 

NIT的网络名称描述符结构分析

ANALYZEOFTHE STRUCTUREOFNETWORK_NAME_DESCRIPTORINNIT

 

        网络名称描述符的功能比较简单,它以字符串的形式将网络的名称告诉接收机。下面是其描述符结构列表:

网络名称描述符

Syntax(句法结构)    No. of bits(所占位数)Identifier(识别符) 

network_name_descriptor(){

descriptor_tag                         8                       uimsbf

descriptor_length                   8                       uimsbf

for(i=0;i<N;i++){

char                                             8                    uimsbf

}

}

char(字符):8位字段,一个字符串,给出NIT表指定的传送系统的名称。



NIT的链接描述符结构分析

ANALYZEOFTHE STRUCTUREOFLINKAGE_DESCRIPTORINNIT

 

链接描述符

Syntax(句法结构)    No. of bits(所占位数)Identifier(识别符) 

linkage_descriptor(){

descriptor_tag                         8           uimsbf        

descriptor_length                     8          uimsbf   

transport_stream_id                 16          uimsbf

original_network_id                 16          uimsbf

service_id                                 16           uimsbf

linkage_type                              8              uimsbf

for(i=0;i<N;i++){

   private_data_byte                 8             bslbf

}

} 

         如果用户要求得到SI系统描述的特定实体的进一步信息,则可以使用链接描述符。链接描述符包含的信息给出了该实体的位置。如:可以在一个NIT中使用一个链接描述符,给出网络中可存放业务附加信息的位置;或者在BAT表中的链接描述符可链接到业务群的相关信息等。

        使用链接描述符,也可以提供一种业务,以替换CA系统的功能。如果CA系统不能处理相应功能的时候,接收机就可以用这个业务来取代CA

        使用链接描述符,还可以以一种备用业务,用以替换主业务。若主业务的运行状态被置为“not_running”,那么,接收机可以自动选择被链接描述符指引的备用业务,以取代该业务。

       使用链接描述符,还可以向移动接收机提供漫游功能。若现行业务其service_id下无法使用,IRD可以自动选择该功能。hand-over_type指明link_descriptor是否链接到不同国家的同一业务,或者链接到本地变更业务或关联业务。

        总之,链接描述符为运营商提供了一种业务扩充功能,使得运营商可以更加灵活地组合各种业务。

 



NIT的软件下载链接描述符结构分析

ANALYZEOFTHE STRUCTUREOFDOWNLOAD_LINKAGE_DESCRIPTORINNIT

 

       软件下载描述符用于运营商在网络内进行多于一个机顶盒的软件下载更新标识,在网络信息表NIT的第一个循环内,并且可能多次出现。针对同一组制造商号(manufacturer_id)、硬件类型(hw_model)、硬件版本(hw_version)和软件类型(sw_model),可能有不只一组的不同软件版本(sw_version)和开始时间(start_time)参数,并可能出现在同一个或多个链接描述符(linkage_descriptor)的各个循环内。

 

 

BAT解析

PARSINGOF BAT

"BAT将网络中的所有业务分成了多个业务群,以此界定用户"

       BAT即业务群关联表(BouquetAssociation Table),它将网络中所有的业务分成了多个业务群,以此界定用户。例如,将网络中所有业务分为两个业务群,一个是境内节目业务群,另一个是境外节目业务群。这样,国内的运营商就可以利用这样划分的业务群,充分利用节目资源,在不违反现有广电总局规定的前提下,同时分别满足境内用户和境外用户。

BAT本身可以跨网络存在,但在国内运营体系来看几乎没有得到真正使用。国内的运营使用中,BAT还可以存在分级运营的运营体系中,用于区分不同的地域用户。

         BAT被切分为业务群关联段,所有的业务群关联段都在TS中传输,其PID为0x0011。所有的业务群关联段的table_id都取0x4A。

HINT:SDT的TS包PID也为0x0011,其table_id为0x42或0x46。



BAT的表结构分析

ANALYZEOFTHE STRUCTUREOFBAT

 

        下面给出了BAT表的段结构:

业务群关联段

Syntax(句法结构)         No. ofbits(所占位数)   Identifier(识别符)  Note(注释)
bouquet_association_section(){
table_id                                            8                      uimsbf                                                  
Section_syntax_indicator               1                          bslbf         通常设为“1”
Reserved_future_use                      1                        bslbf
Reserved                                         2                        bslbf
Section_length                                12                      uimsbf                 见注释
bouquet_id                                      16                       uimsbf                 见注释
Reserved                                         2                         bslbf
Version_number                              5                         uimsbf             见注释
Current_next_indicator                   1                          bslbf                 见注释
Section_number                              8                          uimsbf            见注释
last_section_number                       8                          uimsbf            见注释
Reserved_future_use                      4                          bslbf
bouquet_descriptors_length        12                        uimsbf
for(i=0;i<N;i++){
    descriptor()
}
reserved_future_use                         4                     bslbf
transport_stream_loop_length       12                  uimsbf              
for(i=0;i<N;i++){
    transport_stream_id                     16                  uimsbf             见注释
    original_network_id                      16                  uimsbf             见注释
    reserved_future_use                      4                  bslbf
    transport_descriptors_length     12                   uimsbf
    for(j=0;j<N;j++){
        descriptor()
    }
}
CRC_32                                         32                  rpchof                  见注释
}
  注意到 BAT 的结构和 NIT 类似,其作用和描述符的使用也与 NIT 大致雷同。其中,可以插入传输系统描述符、业务列表描述符等。 这些表和 NIT 中的表已介绍,这里不再赘述。




BAT的业务群名称描述符结构分析

ANALYZEOFTHE STRUCTUREOFBOUQUET_NAME_DESCRIPTORINBAT

 

       下面给出的是业务群名称描述符,它以文本方式给出了业务群的名称:

业务群名称描述符

Syntax(句法结构)    No. of bits(所占位数)Identifier(识别符) 

bouquet_name_descriptor(){

descriptor_tag                         8           uimsbf                           

descriptor_length                     8          uimsbf                        

for(i=0;i<N;i++){

    char                                       8            uimsbf      

}

}

char(字符):8位字段,用于描述BAT子表叙述的节目业务群名称

        业务名称描述符和网络名称描述符类型,只是作为业务群的一个代号,其实际意义只存在于用户界面上,可以给用户一个良好的操作体验。

 


====================================

博主信息

====================================
Destiny
QQ: 1139904786
邮箱/Email: 1139904786@qq.com
====================================

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值