PSI-SI基本概念表结构
更新时间:2023-04-27 23:14:01 阅读量: 实用文档 文档下载
- si\/pi基本概念推荐度:
- 相关推荐
1缩写(ABBREVIATION) (1)
2基本概念 (2)
2.1传输流(T RANSPORT S TREAM /TS) (2)
2.2网络(NETWORK) (2)
2.3业务(SERVICE) (2)
2.4业务群(BOUQUET) (2)
2.5事件(EVENT) (3)
2.6组件(C OMPONENT) (3)
2.7PSI/SI (3)
3PSI/SI表的结构 (4)
3.1TABLE、SUB_TABLE和SECTION (4)
3.2SECTION (4)
3.2.1section_header (5)
3.2.2descriptor (5)
3.2.3table_loop (6)
4PSI / SI表 (7)
4.1PMT(P ROGRAM M AP T ABLE) (7)
4.2PAT(P ROGRAM A SSOCIATION T ABLE ) (8)
4.3CAT(C ONDITIONAL A CCESS T ABLE ) (8)
4.4NIT(N ETWORK I NFORMATION T ABLE ) (9)
4.5SDT(S ERVICE D ESCRIPTION T ABLE ) (10)
4.6EIT(E VENT I NFORMATION T ABLE ) (10)
4.7BAT(B OUQUET A SSOCIATION T ABLE ) (11)
1缩写(Abbreviation)
2基本概念
2.1传输流(Transport Stream / TS)
传输流是MPEG II规的系统层提出的、对多路节目进行复用的两种方案之一,它主要针对数据在非可靠信道的传输(另一种方案——节目流是针对可靠信道的传输而提出的),比如卫星信道、微波信道或CATV信道。传输流这种机制可将多路节目复用成一个流,并且,同一节目还可以包含多个视频和音频流。
组成传输流的是一系列连续的数据包,简称TS包。TS包的长度固定,一般是188字节。如果在这种TS包的尾部加入16字节的RS纠错码,则包长为204字节。
传输流的形成过程可以用图2.1来说明。组成节目的视频流和音频流经过基础流编码器之后,形成基本流,每一路视频流或音频流对应一路基本流。基本流经过打包,形成PES包流。每一个PES包都有流标识、用于视、音频解码和播放同步的时戳。PES包和其它的数据、控制信息经过复用器,形成TS包。
每一个TS包都有一个包标识PID,同一基础流对应的TS包,PID的值相同。TS流就是通过对各个基础流分配不同的PID号来唯一的标识各个不同的基础流、信息表和其它数据。每一个TS包最多只能包含一路基础流的容。
图2.1 传输流系统框图
为了实现众多编码器与解码器之间的时钟同步,防止解码器的缓冲发生上溢或下溢,在系统流中加入了一个精确的系统级时间参考值,在TS流中,这个值被称为节目参考时钟PCR。在解码器端,当检测到本地系统时钟和PCR所表征的时钟不一致时,解码器将调整本地系统时钟。
2.2网络(network)
一个传输系统,可以传输一组MPEG II 码流。网络使用network_id 来进行标识,不同运营商所运营的网络,对应的network_id不同。
2.3业务(service)
在广播者的控制下,可以按照时间表分步广播的一系列节目。一个业务可以理解为一个逻辑意义上的频道。使用service_id 来标识一个业务。同一个传输流中,service_id必须唯一。
2.4业务群(bouquet)
一个业务群是一系列业务的集合。这些业务可以来自不同的TS流甚至不同的网络。业务群的概念可以这样来理解:假设有两个业务提供商PA和PB,PA提供了10套节目,PB提供了20套节目。但是,对于某一个地域的用户,只希望他们收到PA提供的3套节目和PB提供的5套节目。此时,可以将这些
节目组成一个业务群。
2.5事件(event)
一组属于普通业务的广播数据流,它定义了起始时间和结束时间,一个事件就是一个节目,更确切的说,是一个节目段。例如:一场足球比赛的半场,新闻快报,娱乐表演的第一部分。
2.6组件(Component)
组件是组成节目段的一个或多个实体,对应“传输流”概念中的基础流。
以上概念之间的关系如图2.2所示。
图2.2
2.7PSI / SI
在MPEG II标准的系统部分重点描述了MPEG II系统级传输流中包含的PSI信息。PSI描述了传输流所携带的容,包含了对构建各节目的基本流的描述和对节目本身的描述。为了给IRD提供更多的接收和解码所需信息,支持更复杂的应用,DVB又准备了一个开放的服务信息系统(DVB-SI)来辅助DVB 信号。SI可以描述由某一播放者提供的每一个服务的技术特征及其他的信息,通过SI的帮助,用户可以在传输流中选择服务或事件,机顶盒使用SI信息能完成自动配置和自动接收。
所有的PSI/SI信息都以表的形式从中心系统广播下来,表中包含了整个广播网络的物理特征和节目信息,所有这些表在传输时,都将被封装在大小固定的被称为段(section)的数据块中。
3PSI/SI表的结构
3.1table、sub_table和section
PSI(节目说明信息)表包括PAT、PMT和CAT,SI表包括NIT、SDT、EIT、BAT、TDT、TOT、RST等。从结构上来说,这些表都由一个或多个子表组成,而子表又进一步由一个或多个section组成。section最初是在MPEG II中定义的语法结构,在从PSI表到TS包的转换过程中,section起到了中介的作用。DVB在扩展PSI为SI的时候,沿用了这种语法结构。
PSISI表的框架如图3.1所示:
图3.1 Table、SubTable和Section的结构关系
不同的表之间可以通过表标识(table_id)进行区分,属于同一个table_id的不同子表一般通过表的扩展标识(table_id_extension)、版本号(version_number)进行区分,对于EIT和SDT的子表,还要加上其它的区分条件。这些用于区分子表的数据段(field)在每一个具体的表中都作了定义。
3.2section
一个比较一般的section结构如图3.2所示。
图3.2 section的结构
在section_header部分包含了用于区分子表的“域”(field);section_header之后可能有第一层描述符循环和表循环,一个表循环之中又可能再次包含描述符循环(习惯上称为第二层描述符循环)。所谓“循环”,就是指相同或类似的数据结构重复出现。“other_fields”位置处一般会有一个数据段用于指示表循环结构的长度(以字节为单位),“section_tail”处一般是一个32位的CRC校验位。
3.2.1section_header
section_header的语法结构如表3.1所示。
表3.1 section_header 语法结构
不同的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位表示子表的版本号(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时,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位表示子表的版本号(version_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.2 descriptor
一个descriptor 是一个语义上比较完整的语法结构,用于提供特定的信息,比如,network_name_descriptor 用于描述一个网络名称,service_descriptor 用于描述一个业务的类型、业务提供商的名称和业务名称。
所有的descriptor 都以一个8位的标识:descriptor_tag 开使,后面紧跟一个8位的数表示从descriptor 的第3个字节开始到descriptor 结束的数据区的字节长度。从descriptor 的第3个字节开始到descriptor 结束的数据是各个descriptor 的具体容。如表3.2所示。
表3.2 descriptor 结构示意
descriptor_tag 的值可以从0~255,其中,0、1保留,2~18是PSI 中定义的描述符,19~63保留,64~110是SI 中定义的描述符,111~127保留,128~254
可以定义私有描述符,255禁用。如图
3.3所示。
PSI descriptors
SI descriptors
user define descriptors
reserved
forbidden
图3.3 descriptor_tag allocation
为了叙述方便,下文将descriptor_tag 值在2~18的描述符称为PSI 描述符,将descriptor_tag 值在64~110的描述符称为SI 描述符。
同一个descriptor 可能位于不同的PSISI 表中,也可能位于同一个PSISI 表的第一和(或)第二层描述符序列中。文档IS13818没有规定PSI 描述符在PSI 表中可能出现的位置。可以认为,PSI 描述符可
以出现在PSI 表中的任何位置,只要该描述符对于该PSI 表是有特定意义的。
文档En300468的表12描述了SI 描述符在PSISI 表中可能出现的位置,在文档Etr211中,详细规定了各个SI 表中允许出现的SI 描述符。对于某一个特定的SI 表,在section 中的特定位置,只能出现特定的SI 描述符,其它描述符在这个位置出现都是没有意义的。
3.2.3 table_loop
table_loop 对应于特定的PSISI 表,不同PSISI 表的table_loop 结构上不同,具有不同的含义。例如,NIT 表的table_loop 对应特定网络中的传输流,传输流的个数等于NIT 中table_loop 的个数;SDT 表的table_loop 对应特定传输流中的业务(service ),service 的个数等于SDT 中table_loop 的个数。
图3.4是对本节的总结。
图 3.4 PSI / SI 结构
4 PSI / SI 表
4.1 PMT (Program Map Table )
现在回顾一下图2.1,在节目发送端,一个节目(用program_number 标识)可以由音频流、视频流组成,视、音频流经过处理,形成TS 包之后,对应的TS 包便带上了PID 信息。不同的视、音频流对应的PID 值不同。
PMT 描述了当前TS 流中节目的视、音频PES 流和PCR 的PID ,PMT 的个数等于当前TS 流中节目的个数。通过PMT ,可以从MPEG II 传输流中提取指定节目的基本流并予以解码重放。
PMT
的语法结构如表4.1所示。
表4.1 PMT 语法结构
表中的program_number用于标识当前节目,PCR_PID指示带有当前节目PCR信息的TS包的PID,PMT循环结构的个数等于组成该节目的视、音频流的个数,每一个循环结构和组成该节目的一个视频或音频流对应,stream_type说明流的类型,elementary_PID指示带有流数据的TS包的PID。
收到节目的PMT后,可以根据PCR_PID获得PCR,实现接收端和发送端的时钟同步;根据每个表循环中的elementary_PID获得相应基础流的数据,重现节目。
PMT的接收同样是根据PID来实现的,PID的值从下面的PAT中获得。
4.2PAT( Program Association Table )
PAT表规定使用PID = 0的TS包来传送,它列出了所属TS流中所有节目的编号,以及各编号节目所对应的PMT的PID。根据列出的PID,接收端就可以获得所有的PMT表。PAT如表4.2所示。
表4.2 PAT语法结构
在PAT 的表循环中,一般有一个program_number 值为0的循环,该循环中包含了NIT 表的PID 的信息;其它的循环中都是一个节目对应PMT 的
PID 。
如果要收看的节目属于条件接收节目,接收端还必须提取PSI 中的条件接收表,利用其中的信息对被加扰的节目进行解扰。
4.3 CAT( Conditional Access Table )
CAT 表使用PID = 0x0001的TS 包来传送,其语法结构如表4.3所示。
表4.3 CAT 表(左)和CA_descriptor (右)的语法结构
CAT 表的信息在描述符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.4 NIT( Network Information Table )
NIT 传输与复用器/传输流( TS )的物理结构有关的信息,以及网络本身的特点。在MPEG II 中,NIT 属于私有表,传送
NIT 的TS 包的PID 可以在0x0010~0x1FFF 之间选择,因此,PAT 表中专门有一个program_number = 0的循环用于指示传送NIT 的TS 包的PID ;在DVB 中对NIT 作了进一步的定义,并且规定,NIT 信息必须使用PID = 0x0010的TS 包传送,这样,接收NIT 时就不需要从PAT 中查找其PID ,而直接去PID = 0x0010的TS 包中接收即可。NIT 的语法如表4.4所示。
表4.4 NIT 语法结构(部分)
其中,table_id 的取值可以是0x40或0x41,当table_id = 0x40时,表示NIT 描述的是当前网络的信息;table_id = 0x41时,NIT 描述的是其它网络的信息。,DVB 规定,table_id = 0x40的NIT 表必须发出。
network_id 是NIT 描述的网络的标识。
NIT 表的每一个表循环用于描述network_id 指定网络中的一个TS 流。从表循环的结构可以看出,一个TS 流是用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_network_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 语法结构
在描述符的循环结构中,列出了所有业务的标识和类型。
4.5 SDT( Service Description Table )
SDT 表使用PID = 0x0011的TS 包传送,其语法结构如表4.6所示。
表4.6 SDT 语法结构(部分)
Syntax
No. of bits
Identifier service_description_section(){
table_id 8 uimsbf
transport_stream_id 16 uimsbf
original_network_id 16 uimsbf
for(i=0;i service_id 16 uimsbf reserved_future_use 6 bslbf EIT_schedule_flag 1 bslbf EIT_present_following_flag 1 bslbf running_status 3 uimsbf free_CA_mode 1 bslbf descriptors_loop_length 12 uimsbf for(j=0;j descriptor() } } CRC_32 32 rpchof } SDT用于描述由[ ts_id, original_network_id ] 确定的TS流中所有service的信息,TS流可以是当前TS流或者其它的TS流。当table_id取值为0x42时,SDT对应当前的TS流;当table_id取值为0x46时,SDT对应其它的TS流。DVB规定,table_id为0x42的SDT表必须发出。 SDT表循环结构的个数等于TS流中service的个数,service_id和ts_id、original_network_id一起,用于唯一确定一个service。DVB建议,一旦某一个service被分配了一个service_id之后,这个service_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,当event 的数目大于1时,这些event按照起始时间的先后顺序排列。 EIT表使用PID = 0x0012的TS包传送,其语法结构如表4.7所示。 表4.7 EIT表语法结构 EIT的table_id的取值和含义可以用表4.8来说明。 表4.8 EIT表table_id的取值和含义 table_id为0x4E和0x4F的EIT表描述的是相应service中的当前( present )和后继( following )event。此时,EIT子表使用第一个section描述当前正在播放的event,使用第二个section描述即将播放的event,第一、第二个section的表循环结构都只有一个。table_id为0x50~0x5F和0x60~0x6F的EIT表描述相应service中在某一时间段按起始时间顺序排好的(schedule)event,section的表循环结构一般是多个。DVB规定,table_id = 0x4E的EIT表必须发出。 每一个event都有它的标识(event_id),起始时间(start_time),持续时间(duration,以秒为单位),运行状态(running_status)以及是否加扰(free_CA_mode)。每一个表循环结构中的描述符对相应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 = 0x0011。BAT结构如表4.9所示。 bouquet_id用于标识业务群,BAT表循环结构对应与属于该业务群的所有业务所在的TS流。由于组成业务群的业务可以使用不同的TS流传输,所以,BAT表循环结构的个数可以是一个或多个。 表4.9 BAT语法结构 为了提高了SI比特流的一致性,并且简化了IRD的处理过程。DVB对BAT表的容作了如下规定:□在BAT的每个子表中要列出属于bouquet_id标识的业务群的所有service,实现的方法就是在第二层描述符序列中加入service_list描述符; □所有在BAT表中涉及到的service都应该在SDT表中列出,每个service对应SDT表的一个表循环结构; □所有在BAT表中涉及到的service都应该在NIT表中列出,实现的方法也是在第二层描述符序列中加入service_list描述符。
正在阅读:
PSI-SI基本概念表结构04-27
小学数学北京版《六年级上》《一 分数乘法》精选课后作业(03-09
枸橼酸西地那非片06-05
如何选择适合自己的激光测距仪06-20
电介质期末复习题 - 图文10-18
ISA-300+入门教程 - 图文11-23
2020年民主集中制建设金句09-07
2015-2020年中国铁路货车市场深度分析与前景发展战略咨询报告08-31
sap ME51N,ME21N屏幕增强12-03
贵州省青少年参与黑恶势力犯罪研究04-27
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 概念
- 结构
- 基本
- PSI
- SI
- 一种太阳能汽车换气装置的设计研究
- 高考理综知识点总结复习资料
- 田家庵区代理发表职称论文发表-优化英语教学课堂论文选题题目
- 《结构力学》复习题及答案
- 2016年下半年内蒙古内审师《内审计作用》:内部审计与全面质量管理试题
- 常用药物配伍禁忌之欧阳光明创编
- 精选2019-2020年北师大版初中历史七年级下册第一单元 繁荣与开放的社会第8课 璀璨的文学艺术练习题四十
- 人教版八年级音乐上册教案全集1
- 九年级物理上学期期中考试试题及答案
- 2016-2017学年第二学期研究生三助岗位设置一览表
- 山东省2020届高三文科数学备考之2020届名校解析试题精选分类汇编10:概率-Word版含答案
- 中医医院建设标准条文说明(征求意见稿)
- 毕业论文—小区FTTX+LAN宽带接入网设计
- 农业综合开发高标准农田建设示范工程建设项目可行性研究报告
- 2015山东省医师定期考核题库(带答案) - 副本
- 侯马论文网代理发表职称论文发表-通讯网络信息系统论文选题题目
- 新闻管理系统项目开发计划
- 工作室个人工作总结(精选多篇)
- 国际货物买卖协议书
- 2019育婴员实操技能题