《PSI-SI基本概念表结构.doc》由会员分享,可在线阅读,更多相关《PSI-SI基本概念表结构.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、,1缩缩写(写(ABBREVIATION) ).12基本概念基本概念.22.1传输流(TRANSPORT STREAM / TS).22.2网络(NETWORK).22.3业务(SERVICE) .22.4业务群(BOUQUET) .22.5事件(EVENT).32.6组件(COMPONENT) .32.7PSI / SI.33PSI/SI 表的表的结结构构.43.1TABLE、SUB_TABLE和SECTION.43.2SECTION.43.2.1section_header.53.2.2descriptor.53.2.3table_loop .64PSI / SI 表表.74.1PMT(P
2、ROGRAM MAP TABLE).74.2PAT( PROGRAM ASSOCIATION TABLE ) .84.3CAT( CONDITIONAL ACCESS TABLE ).84.4NIT( NETWORK INFORMATION TABLE ).94.5SDT( SERVICE DESCRIPTION TABLE ) .104.6EIT ( EVENT INFORMATION TABLE ) .104.7BAT( BOUQUET ASSOCIATION TABLE ) .11,1缩缩写(写(Abbreviation) )缩写词全称中文意思MPEGMotion Picture Exp
3、erts Group运动图象专家组DVBDigital Video Broadcasting数字视频广播IRDIntegrated Receiver Decoder综合接收解码器PSIProgram Specific Information节目说明信息SIService Information业务信息CATConditional Access Table条件接收表PATProgram Association Table节目关联表PMTProgram Map Table节目映射表EITEvent Information Table事件信息表NITNetwork Information Table
4、网络信息表SDTService Description Table业务描述表TDTTime and Date Table时间/日期表BATBouquet Association Table业务群关联表RSTRunning Status Table运行状态表TOTTime Offset Table时间偏移表uimsbfunsigned integer most significant bit firstbslbfbit string, left bit first,2基本概念基本概念2.1传输传输流(流(Transport Stream / TS) )传输流是 MPEG II 规范的系统层提出的
5、、对多路节目进行复用的两种方案之一,它主要针对数据在非可靠信道的传输(另一种方案节目流是针对可靠信道的传输而提出的),比如卫星信道、微波信道或CATV 信道。传输流这种机制可将多路节目复用成一个流,并且,同一节目还可以包含多个视频和音频流。组成传输流的是一系列连续的数据包,简称 TS 包。TS 包的长度固定,一般是 188 字节。如果在这种 TS包的尾部加入 16 字节的 RS 纠错码,则包长为 204 字节。传输流的形成过程可以用图 2.1 来说明。组成节目的视频流和音频流经过基础流编码器之后,形成基本流,每一路视频流或音频流对应一路基本流。基本流经过打包,形成 PES 包流。每一个 PES
6、 包都有流标识、用于视、音频解码和播放同步的时戳。PES 包和其它的数据、控制信息经过复用器,形成 TS 包。每一个 TS 包都有一个包标识 PID,同一基础流对应的 TS 包,PID 的值相同。TS 流就是通过对各个基础流分配不同的 PID 号来唯一的标识各个不同的基础流、信息表和其它数据。每一个 TS 包最多只能包含一路基础流的内容。MPEG II基础流编码器MPEG II基础流编码器视频流数据音频流数据MPEG II基本流(ES)MPEG II基本流(ES)ES包形成器ES包形成器ES包流(PES)ES包流(PES)MUX数据和控制信息MPEG II传输流(TS)图 2.1 传输流系统框
7、图为了实现众多编码器与解码器之间的时钟同步,防止解码器的缓冲发生上溢或下溢,在系统流中加入了一个精确的系统级时间参考值,在 TS 流中,这个值被称为节目参考时钟 PCR。在解码器端,当检测到本地系统时钟和 PCR 所表征的时钟不一致时,解码器将调整本地系统时钟。2.2网网络络( (network) )一个传输系统,可以传输一组 MPEG II 码流。网络使用 network_id 来进行标识,不同运营商所运营的网络,对应的 network_id 不同。2.3业务业务( (service) )在广播者的控制下,可以按照时间表分步广播的一系列节目。一个业务可以理解为一个逻辑意义上的频道。使用 se
8、rvice_id 来标识一个业务。同一个传输流中,service_id 必须唯一。2.4业务业务群(群(bouquet) )一个业务群是一系列业务的集合。这些业务可以来自不同的 TS 流甚至不同的网络。业务群的概念可以,这样来理解:假设有两个业务提供商 PA 和 PB,PA 提供了 10 套节目,PB 提供了 20 套节目。但是,对于某一个地域的用户,只希望他们收到 PA 提供的 3 套节目和 PB 提供的 5 套节目。此时,可以将这些节目组成一个业务群。2.5事件(事件(event) )一组属于普通业务的广播数据流,它定义了起始时间和结束时间,一个事件就是一个节目,更确切的说,是一个节目段。
9、例如:一场足球比赛的半场,新闻快报,娱乐表演的第一部分。2.6组组件(件(Component) )组件是组成节目段的一个或多个实体,对应“传输流”概念中的基础流。以上概念之间的关系如图 2.2 所示。卫星转发器 1有线地面转发器 2转发器 T通道 1通道 2通道 T通道 1通道 2通道 T业务 1业务 2业务 T业务 1业务 2业务 T业务 1业务 2业务 T事件 1事件 2事件 Tt视频音频 1音频 2数据业务群网络复用业务事件组件图 2.22.7PSI / SI在 MPEG II 标准的系统部分重点描述了 MPEG II 系统级传输流中包含的 PSI 信息。PSI 描述了传输流所携带的内容
10、,包含了对构建各节目的基本流的描述和对节目本身的描述。为了给 IRD 提供更多的接收和解码所需信息,支持更复杂的应用,DVB 又准备了一个开放的服务信息系统(DVB-SI)来辅助 DVB 信号。SI 可以描述由某一播放者提供的每一个服务的技术特征及其他的信息,通过 SI 的帮助,用户可以在传输流中选择服务或事件,机顶盒使用 SI 信息能完成自动配置和自动接收。所有的 PSI/SI 信息都以表的形式从中心系统广播下来,表中包含了整个广播网络的物理特征和节目信息,所有这些表在传输时,都将被封装在大小固定的被称为段(section)的数据块中。,3PSI/SI 表的表的结结构构3.1table、 、
11、sub_table 和和 sectionPSI(节目说明信息)表包括 PAT、PMT 和 CAT,SI 表包括 NIT、SDT、EIT、BAT、TDT、TOT、RST 等。从结构上来说,这些表都由一个或多个子表组成,而子表又进一步由一个或多个 section 组成。section 最初是在 MPEG II 中定义的语法结构,在从 PSI 表到 TS 包的转换过程中,section 起到了中介的作用。DVB 在扩展 PSI 为 SI 的时候,沿用了这种语法结构。PSISI 表的框架如图 3.1 所示:SectionSectionSubTableSubTableTable图 3.1 Table、S
12、ubTable 和 Section 的结构关系不同的表之间可以通过表标识(table_id)进行区分,属于同一个 table_id 的不同子表一般通过表的扩展标识(table_id_extension)、版本号(version_number)进行区分,对于 EIT 和 SDT 的子表,还要加上其它的区分条件。这些用于区分子表的数据段(field)在每一个具体的表中都作了定义。3.2section一个比较一般的 section 结构如图 3.2 所示。 PSISI_table_section() section_header; for i = 0; i N; i + /* 1st descrip
13、tor loop */ descriptor(); other_fields; for i = 0; i N; i + /* table loop */ table_loop_header; for j = 0; j M; j + /* 2nd descriptor loop */ descriptor(); section_tail; 图 3.2 section 的结构在 section_header 部分包含了用于区分子表的“域”(field);section_header 之后可能有第一层描述符循环和表循环,一个表循环之中又可能再次包含描述符循环(习惯上称为第二层描述符循环)。所谓“循环
14、”,就是指相同或类似的数据结构重复出现。 “other_fields”位置处一般会有一个数据段用于指示表循环结构的长度(以字节为单位), “section_tail”处一般是一个 32 位的 CRC 校验位。,3.2.1section_headersection_header 的语法结构如表 3.1 所示。表 3.1 section_header 语法结构SyntaxNo. of bitsIdentifierRemarksection_header table_id8 uimsbfsection_syntax_indicator1 bslbfreserved_future_use1 bslbf
15、reserved2 bslbfsection_length12 uimsbftable_id_extension16 uimsbfIf section_syntax_indicator = 1version_number5 uimsbfIf section_syntax_indicator = 1current_next_indicator1 bslbfIf section_syntax_indicator = 1section_number8 uimsbfIf section_syntax_indicator = 1last_section_number8 uimsbfIf section_
16、syntax_indicator = 1不同的 PSISI 表具有不同的 table_id,在文档 En300468 中,有 PSISI 表和 table_id 的对应关系。section_syntax_indicator 最早在 MPEG II 中使用,主要用于“私有数据表”(private data table),其值为 0和 1 的时候,私有数据表的结构不同。DVB 中也使用了 section_syntax_indicator,当它的值为 1 时,section的第四、第五个字节表示 table_id_extension,并且从 section 第 43 位开始的 5 位表示子表的版本号
17、(version_number),第 48 位表示当前表是否有效(current_next_indicator),第 7 个字节表示当前 section 在所属子表中的编号(section_number),第 8 个字节记录子表中 section_number 的最大值。section_length 表示从 section 的第四字节开始到 section 结束的数据区的字节长度。对于一般的 PSISI表,section_length 的最大值为 1024;对于 EIT 表,section_length 的最大值为 4096。当 section_syntax_indicator 的值为 1 时
18、,section 的第四、第五字节表示 table_id_extension,对于不同的表,table_id_extension 的物理意义不同。PSISI 表中有两个表例外,即 PSI 表中的 CAT 表和 SI 表中的 ST 表。这两个表都没有 table_id_extension,但 CAT 表的 section_syntax_indicator 必须是 1,ST 表的section_syntax_indicator 可以为 0,也可以为 1。当 section_syntax_indicator 的值为 1 时,从 section 第 43 位开始的 5 位表示子表的版本号(versio
19、n_number)。version_number 的值从零开始,每当子表内容改变时,version_number 的值加 1。当version_number 增加到 31 后,再次回归到零。当 section_syntax_indicator 的值为 1 时,section 的第 48 位表示当前表是否有效(current_next_indicator)。如果 current_next_indicator 的值为 1,表示当前表有效,为 0,表示当前表无效,下一个表有效。3.2.2descriptor一个 descriptor 是一个语义上比较完整的语法结构,用于提供特定的信息,比如,netw
20、ork_name_descriptor 用于描述一个网络名称,service_descriptor 用于描述一个业务的类型、业务提供商的名称和业务名称。所有的 descriptor 都以一个 8 位的标识:descriptor_tag 开使,后面紧跟一个 8 位的数表示从 descriptor 的第 3 个字节开始到 descriptor 结束的数据区的字节长度。从 descriptor 的第 3 个字节开始到 descriptor 结束的数据是各个 descriptor 的具体内容。如表 3.2 所示。表 3.2 descriptor 结构示意SyntaxNo. of bitsIdentif
21、ier,PSISI_descriptor() descriptor_tag8 uimsbfdescriptor_length8 uimsbfdescriptor_contentdescriptor_tag 的值可以从 0255,其中,0、1 保留,218 是 PSI 中定义的描述符,1963 保留,64110 是 SI 中定义的描述符,111127 保留,128254 可以定义私有描述符,255 禁用。如图 3.3 所示。10218196364110111127128254255PSI descriptorsSI descriptorsuser define descriptorsreserv
22、edforbidden图 3.3 descriptor_tag allocation为了叙述方便,下文将 descriptor_tag 值在 218 的描述符称为 PSI 描述符,将 descriptor_tag 值在64110 的描述符称为 SI 描述符。同一个 descriptor 可能位于不同的 PSISI 表中,也可能位于同一个 PSISI 表的第一和(或)第二层描述符序列中。文档 IS13818 没有规定 PSI 描述符在 PSI 表中可能出现的位置。可以认为,PSI 描述符可以出现在PSI 表中的任何位置,只要该描述符对于该 PSI 表是有特定意义的。文档 En300468 的表
23、12 描述了 SI 描述符在 PSISI 表中可能出现的位置,在文档 Etr211 中,详细规定了各个 SI 表中允许出现的 SI 描述符。对于某一个特定的 SI 表,在 section 中的特定位置,只能出现特定的 SI描述符,其它描述符在这个位置出现都是没有意义的。3.2.3table_looptable_loop 对应于特定的 PSISI 表,不同 PSISI 表的 table_loop 结构上不同,具有不同的含义。例如,NIT 表的 table_loop 对应特定网络中的传输流,传输流的个数等于 NIT 中 table_loop 的个数;SDT 表的table_loop 对应特定传输流
24、中的业务(service),service 的个数等于 SDT 中 table_loop 的个数。图 3.4 是对本节的总结。SectionSectionSubTableSubTableTablePSISI_table_section1st descriptor loopsection_headerdescriptordescriptorother_fieldstable looptable_loop_header2nd descriptor loopdescriptordescriptorsection_tail Syntax No. of bits Identifiersection_he
25、ader table_id section_syntax_indicator reserved_future_use reserved section_length table_id_extension version_number current_next_indicator section_number last_section_number uimsbf bslbf bslbf bslbf uimsbf uimsbf uimsbf bslbf uimsbf uimsbf PSISI_descriptor() descriptor_tag descriptor_length descrip
26、tor_content88 uimsbf uimsbf 8 1 1 2 12 16 5 1 16 16 Syntax No. of bits Identifier图 3.4 PSI / SI 结构,4PSI / SI 表表4.1PMT( (Program Map Table) )现在回顾一下图 2.1,在节目发送端,一个节目(用 program_number 标识)可以由音频流、视频流组成,视、音频流经过处理,形成 TS 包之后,对应的 TS 包便带上了 PID 信息。不同的视、音频流对应的 PID 值不同。PMT 描述了当前 TS 流中节目的视、音频 PES 流和 PCR 的 PID,PMT
27、 的个数等于当前 TS 流中节目的个数。通过 PMT,可以从 MPEG II 传输流中提取指定节目的基本流并予以解码重放。PMT 的语法结构如表 4.1 所示。表 4.1 PMT 语法结构SyntaxNo. of bitsIdentifierprogram_map_section()table_id 8 uimsbfsection_syntax_indicator 1 bslbfreserved_future_use1 bslbfreserved2 bslbfsection_length12 uimsbfprogram_number16 uimsbfreserved2 bslbfversion
28、_number5 uimsbfcurrent_next_indicator1 bslbfsection_number8 uimsbflast_section_number8 uimsbfreserved3 bslbfPCR_PID13 uimsbfreserved4 bslbfprogram_info_length12 uimsbffor(i=0;iN;i+)descriptor()for(i=0;iN;i+)stream_type8 uimsbfreserved3 bslbfelementary_PID13 uimsbfreserved4 bslbfES_info_length12 uims
29、bffor(j=0;jN;j+)descriptor()CRC_3232 rpchof表中的 program_number 用于标识当前节目,PCR_PID 指示带有当前节目 PCR 信息的 TS 包的PID,PMT 循环结构的个数等于组成该节目的视、音频流的个数,每一个循环结构和组成该节目的一个视频或音频流对应,stream_type 说明流的类型,elementary_PID 指示带有流数据的 TS 包的 PID。收到节目的 PMT 后,可以根据 PCR_PID 获得 PCR,实现接收端和发送端的时钟同步;根据每个表循环中的 elementary_PID 获得相应基础流的数据,重现节目。P
30、MT 的接收同样是根据 PID 来实现的,PID 的值从下面的 PAT 中获得。,4.2PAT( Program Association Table )PAT 表规定使用 PID = 0 的 TS 包来传送,它列出了所属 TS 流中所有节目的编号,以及各编号节目所对应的 PMT 的 PID。根据列出的 PID,接收端就可以获得所有的 PMT 表。PAT 如表 4.2 所示。表 4.2 PAT 语法结构SyntaxNo. of bitsIdentifierprogram_association_section()table_id8 uimsbfsection_syntax_indicator1
31、bslbf“0”1 bslbfreserved2 bslbfsection_length12 uimsbftransport_stream_id16 uimsbfreserved2 bslbfversion_number5 uimsbfcurrent_next_indicator1 bslbfsection_number8 uimsbflast_section_number8 uimsbffor(i=0;iN;i+) program_number16 uimsbfreserved3 bslbfif(program_number = 0)network_PID 13 uimsbfelseprog
32、ram_map_PID13 uimsbfCRC_3232 rpchof在 PAT 的表循环中,一般有一个 program_number 值为 0 的循环,该循环中包含了 NIT 表的 PID 的信息;其它的循环中都是一个节目对应 PMT 的 PID。如果要收看的节目属于条件接收节目,接收端还必须提取 PSI 中的条件接收表,利用其中的信息对被加扰的节目进行解扰。4.3CAT( Conditional Access Table )CAT 表使用 PID = 0 x0001 的 TS 包来传送,其语法结构如表 4.3 所示。表 4.3 CAT 表(左)和 CA_descriptor(右)的语法结构
33、SyntaxNo. of bits Identifierconditional_access_section()section_headerfor(i=0;iN;i+)descriptor()CRC_3232 rpchofSyntaxNo. of bitsIdentifierCA_descriptor() descriptor_tag8uimsbfdescriptor_length8uimsbfCA_system_ID16uimsbfreserved3bslbfCA_PID13uimsbffor ( i=0; iN; i+) private_data_byte8uimsbf,CAT 表的信息在
34、描述符 CA_descriptor 中,CA_system_ID 用于标识 CA 系统,CA_system_ID 的值是统一分配的,在文档 ETR162 中可以查到;条件接收节目在编码的时候,相应 CA 系统的 EMM(entitled management message)或 ECM(entitled control message)信息也同时通过 TS 包发出,CA_PID 用于指示这些TS 包的 PID。一旦某一个 CA 系统参与了加扰工作,在 CAT 中就有一个 CA_descriptor 用于描述该 CA 系统。4.4NIT( Network Information Table )N
35、IT 传输与复用器传输流( TS )的物理结构有关的信息,以及网络本身的特点。在 MPEG II 中,NIT属于私有表,传送 NIT 的 TS 包的 PID 可以在 0 x00100 x1FFF 之间选择,因此,PAT 表中专门有一个program_number = 0 的循环用于指示传送 NIT 的 TS 包的 PID;在 DVB 中对 NIT 作了进一步的定义,并且规定,NIT 信息必须使用 PID = 0 x0010 的 TS 包传送,这样,接收 NIT 时就不需要从 PAT 中查找其 PID,而直接去 PID = 0 x0010 的 TS 包中接收即可。NIT 的语法如表 4.4 所示
36、。表 4.4 NIT 语法结构(部分)SyntaxNo. of bitsIdentifiernetwork_information_section()table_id8 network_id16 uimsbffor(i=0;iN;i+)descriptor()reserved_future_use4 bslbftransport_stream_loop_length12 uimsbffor(i=0;iN;i+)transport_stream_id16 uimsbforiginal_network_id16 uimsbfreserved_future_use4 bslbftransport_d
37、escriptors_length12 uimsbffor(j=0;jN;j+)descriptor()CRC_3232 rpchof其中,table_id 的取值可以是 0 x40 或 0 x41,当 table_id = 0 x40 时,表示 NIT 描述的是当前网络的信息;table_id = 0 x41 时,NIT 描述的是其它网络的信息。 ,DVB 规定,table_id = 0 x40 的 NIT 表必须发出。network_id 是 NIT 描述的网络的标识。NIT 表的每一个表循环用于描述 network_id 指定网络中的一个 TS 流。从表循环的结构可以看出,一个 TS 流
38、是用 ts_id 和 original_network_id 来唯一标识的。考虑下面的情况:假设在网络 A(network_id = NID_A)和网络 B(network_id = NID_B)中分别产生了一路 TS 流 TS_A 和 TS_B,它们的 ts_id 相同,都是TS_ID_AB。当 TS_A 和 TS_B 各自在独立的网络中传输时,没有问题。但如果这两路 TS 流传输到了同一个网络中时,只根据 ts_id 来标识它们就出现了问题,很显然,TS_A 和 TS_B 是不同的 TS 流,但它们的 ts_id是相同的。所以,为了唯一的标识 TS 流,引入了 original_netwo
39、rk_id,表示 TS 流产生的网络。这样,对于上面的情况,TS_A 的标识是 NID_A, TS_ID_AB ,TS_B 的标识是 NID_B, TS_ID_AB ,TS 流不同,标识也不同。在 NIT 的第二层描述符序列中,可以使用一个叫 service_list 的描述符列出相应 TS 流中所有的业务。service_list_descriptor 的语法如表 4.5 所示。表 4.5 service_list_descriptor 语法结构,SyntaxNo. of bitsIdentifierservice_list_descriptor()descriptor_tag 8 uims
40、bfdescriptor_length8 uimsbffor (i=0;iN;I+)service_id16 uimsbfservice_type8 uimsbf在描述符的循环结构中,列出了所有业务的标识和类型。4.5SDT( Service Description Table )SDT 表使用 PID = 0 x0011 的 TS 包传送,其语法结构如表 4.6 所示。表 4.6 SDT 语法结构(部分)SyntaxNo. of bitsIdentifierservice_description_section()table_id8 uimsbftransport_stream_id16 u
41、imsbforiginal_network_id16 uimsbffor(i=0;iN;i+)service_id16 uimsbfreserved_future_use6 bslbfEIT_schedule_flag1 bslbfEIT_present_following_flag1 bslbfrunning_status3 uimsbffree_CA_mode1 bslbfdescriptors_loop_length12 uimsbffor(j=0;jN;j+)descriptor()CRC_3232 rpchofSDT 用于描述由 ts_id, original_network_id
42、确定的 TS 流中所有 service 的信息,TS 流可以是当前TS 流或者其它的 TS 流。当 table_id 取值为 0 x42 时,SDT 对应当前的 TS 流;当 table_id 取值为 0 x46 时,SDT 对应其它的 TS 流。DVB 规定,table_id 为 0 x42 的 SDT 表必须发出。SDT 表循环结构的个数等于 TS 流中 service 的个数,service_id 和 ts_id、original_network_id 一起,用于唯一确定一个 service。DVB 建议,一旦某一个 service 被分配了一个 service_id 之后,这个 ser
43、vice_id 应该保持不变,这样有利于 IRD 提供一些诸如“favourate channel”之类的功能。running_status 标识 service 的状态,free_CA_mode 标识 service 中是否含有经过加扰的 event。4.6EIT ( Event Information Table )EIT 表描述由 original_network_id, ts_id, service_id 所标识的 service 中的 event 信息,对于每一个service,都有一个 EIT 子表和它对应。一个 EIT 表循环结构的对应于 service 中的 event,当 e
44、vent 的数目大于 1 时,这些 event 按照起始时间的先后顺序排列。EIT 表使用 PID = 0 x0012 的 TS 包传送,其语法结构如表 4.7 所示。表 4.7 EIT 表语法结构,SyntaxNo. of bitsIdentifiernetwork_information_section()table_id8 uimsbfservice_id16 uimsbftransport_stream_id16 bslbforiginal_network_id16 uimsbfsegment_last_section_number8 last_table_id8 for(i=0;iN
45、;i+)event_id16 uimsbfstart_time40 bslbfduration24 uimsbfrunning_status3 uimsbffree_CA_mode1 bslbfdescriptors_loop_length12 uimsbffor(j=0;jN;j+)descriptor()CRC_3232 rpchofEIT 的 table_id 的取值和含义可以用表 4.8 来说明。表 4.8 EIT 表 table_id 的取值和含义table_id含义0 x4EEIT 描述的当前/后继(present / following)event 信息在当前传输流中;0 x4F
46、EIT 描述的当前/后继(present / following)event 信息不在当前传输流中(在其它传输流中);0 x500 x5FEIT 描述的节目预报信息(event schedule information)在当前传输流中;0 x600 x6FEIT 描述的节目预报信息(event schedule information)不在当前传输流中;table_id 为 0 x4E 和 0 x4F 的 EIT 表描述的是相应 service 中的当前( present )和后继( following )event。此时,EIT 子表使用第一个 section 描述当前正在播放的 event
47、,使用第二个 section 描述即将播放的 event,第一、第二个 section 的表循环结构都只有一个。table_id 为 0 x500 x5F 和 0 x600 x6F 的 EIT 表描述相应service 中在某一时间段内按起始时间顺序排好的(schedule)event,section 的表循环结构一般是多个。DVB规定,table_id = 0 x4E 的 EIT 表必须发出。每一个 event 都有它的标识(event_id),起始时间(start_time),持续时间(duration,以秒为单位),运行状态(running_status)以及是否加扰(free_CA_m
48、ode)。每一个表循环结构中的描述符对相应 event 进行更为详尽的描述。现在回顾一下表 4.6,在 SDT 的表循环结构中有两个标志,EIT_schedule_flag 和EIT_present_following_flag,前者用于说明相应 service 的 EIT schedule 的信息是否在当前的传输流中;后者说明相应 service 的 EIT present / following 信息是否在当前传输流中。4.7BAT( Bouquet Association Table )BAT 提供有关节目业务群的信息,是否发送 BAT 表是可选的。发送 BAT 的 TS 包的 PID
49、= 0 x0011。BAT 结构如表 4.9 所示。bouquet_id 用于标识业务群,BAT 表循环结构对应与属于该业务群的所有业务所在的 TS 流。由于组成业务群的业务可以使用不同的 TS 流传输,所以,BAT 表循环结构的个数可以是一个或多个。表 4.9 BAT 语法结构,SyntaxNo. of bitsIdentifierbouquet_association_section()bouquet_id16 uimsbffor(i=0;iN;i+)descriptor()reserved_future_use4 bslbftransport_stream_loop_length12 u
50、imsbffor(i=0;iN;i+)transport_stream_id16 uimsbforiginal_network_id16 uimsbfreserved_future_use4 bslbftransport_descriptors_length12 uimsbffor(j=0;jN;j+)descriptor()CRC_3232 rpchof为了提高了 SI 比特流的一致性,并且简化了 IRD 的处理过程。DVB 对 BAT 表的内容作了如下规定:在 BAT 的每个子表中要列出属于 bouquet_id 标识的业务群的所有 service,实现的方法就是在第二层描述符序列中加入