DVBSI理解入门指南.docx
- 文档编号:8305131
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:17
- 大小:421.92KB
DVBSI理解入门指南.docx
《DVBSI理解入门指南.docx》由会员分享,可在线阅读,更多相关《DVBSI理解入门指南.docx(17页珍藏版)》请在冰豆网上搜索。
DVBSI理解入门指南
DVB-SI理解入门指南
(一))l-I5h"]
数字电视与传统模拟电视节目选择的方式完全不同,传统电视的每一个频道对应一个节目,只要调到相应的频率,就可以看到节目。
而在数字电视信号中,一路码流对应多路节目,使用复用技术就可以做到了。
一个物理的频道只能给出包含多路节目的一路传输流。
要观看其中的某一路节目,还必须从该传输流中提取出该路节目的压缩包,然后再进行解码。
所以怎样从众多的传输流中,选中一路节目播放,就变得很复杂。
在mpeg-2的传输流(TransportStream)中,节目专用信息PSI(ProgramSpecificInformation),就是规定不同节目和节目中的不同成分如何复用成一个统一的码流。
以PSI为基础可以提供一个码流的构成,从而帮助用户对节目进行选择。
DVB中的服务信息SI(ServiceInformation)则对此进行了进一步的扩展,加入了一些对用户有用的信息,标示节目的类型,服务商,节目的相互关系等。
正确的了解mpeg-2的PSI以及DVB的SI的结构,及其在节目组织,选择中的应用,可以正确理解serviceinformation在DVB解码中的地位。
对于我们做好对数字节目的复用,也能起到帮助作用。
1,MPEG-2TS中的PSI
PSI信息主要包括以下的表:
PAT(ProgramAssociationTable):
节目群丛表,该表的PID是固定的0x0000,它的主要作用是指出该传输流ID,以及该路传输流中所对应的几路节目流的MAP表和网络信息表的PID。
PMT(ProgramMapTable):
节目映射表,该表的PID是由PAT提供给出的。
通过该表可以得到一路节目中包含的信息,例如,该路节目由哪些流构成和这些流的类型(视频,音频,数据),指定节目中各流对应的PID,以及该节目的PCR所对应的PID。
NIT(NetworkInformationTable):
网络信息表,该表的PID是由PAT提供给出的。
NIT的作用主要是对多路传输流的识别,NIT提供多路传输流,物理网络及网络传输的相关的一些信息,如用于调谐的频率信息以及编码方式。
调制方式等参数方面的信息。
CAT(ConditionalAccessTable):
条件访问表,PID-0x0001。
除了上述的几种表外,mpeg-2还提供了私有字段,用于实现对MPEG-2的扩充。
2,DVB中的SI(终端形像)
Mpeg-2的PSI中提供了不少的相关节目组成和相互关系的信息,从而使得在接收端可以正确的对多路传输流进行分解。
但是这些信息在实际使用时仍显得不够,为此在DVB中采用SI对PSI信息进行了进一步的扩展。
除了在PSI中的信息之外,DVB还定义了一些其他的一些表。
SI的主要用途有:
a、根据NIT,PAT,PMT等信息可以进行自动的频道调谐;
b、更方便的对节目进行选择和定位;
c、实现电子节目指南EPG(ElectronicProgramGuide),等等。
PSI中的信息基本上都是与当前码流相关的,即它们所涉及的内容都与当前码流中的部分信息相关。
与PSI不同的是,SI的信息可以包括不在当前码流中的一些服务和事件,允许用户进行更多的选择和了解更多的其他服务信息。
DVB规定携带SI信息的传输包必须用指定的PID,指定的PID如下表:
TABLETYPEPIDValue
PAT0X0000
CAT0X0001
TSDT0X0002
RESERVED0X0003TO0X000F
NIT,ST0X0010
SDT,BAT,ST0X0011
EIT,ST0X0012
RST,ST0X0013
TDT,TOT,ST0X0014
NetworkSynchroniztion0X0015
Reservedforfutureuse0X0016TO0X001B
Inbandsignaling0X001C
Measurement0X001D
DIT0X001E
SIT0X001F
在该表中可以看到同一个PID可以对应不同的表,要把这样的表区分开来,需要进一步找到TableID进行识别。
TableID表如下:
ValueDescription
0x00Program_association_section
0x01Conditional_access_section
0x02Program_map_section
0x03Transport_stream_description_section
0x04TO0x3FReserved
0x40Network_information_section-actual_network
0x41Network_information_section-other_network
0x42Service_description_section-actual_transport_stream
0x43TO0x45Reservedforfutureuse
0x46Service_description_section-other_transport_stream
0x47TO0x49Reservedforfutureuse
0x4ABouquet_association_section
0x4BTO0x4DReservedforfutureuse
0x4EEvent_information_section-actual_transport_stream,P/F
0x4FEvent_information_section-other_transport_stream,P/F
0x50TO0x5FEvent_information_section-actual_transport_stream,schedule
0x60TO0x6FEvent_information_section-other_transport_stream,schedule
0x70Time_data_section
0x71Running_status_section
0x72Stuffing_section
0x73Time_offset_section
0x74TO0x7DReservedforfutureuse
0x7EDiscontinuity_information_section
0x7FSelection_information_section
0x80TO0xFEUserdefined
0xFFReserved
有了这两个ID我们可以在码流中找到我们想要的任何一张表。
SI主要包括以下一些信息表:
NIT(NetworkInformationTable):
NIT的作用主要是对多路传输流的识别,NIT
提供多路传输流,物理网络及网络传输的相关的一些信息,如用于调谐的频率信息以
及编码方式。
调制方式等参数方面的信息。
根据此信息设置IRD(IntegratedReceiver
Decoder)可以进行多路传输流之间的切换。
SDT(ServiceDescriptionTable):
用于描述系统中各路节目的名称,该节目的提
供者,是否有相应的时间描述表等方面的信息。
该表可以描述当前传输流,也可以描
述其他的传输流,这由TableID进行区分。
EIT(EventInformationTable):
该表示对某一路节目的更进一步的描述。
它提供
事件的的名称,开始时间,时间长度,运行状态等。
TDT(TimeandDataTable):
该表提供当前的时间信息,该表用来对IRD的解码
时钟进行更新
BAT(BouquetAssociationTable):
该表提供一系列类似节目的集合。
这些节目
可以不在同一个传输流中,利用该表可以很方便的进行相关节目或某一类节目的浏览
和选择。
RST(RunningStatusTable):
该表提供某一具体事件的的运行状态,可用于按时
自动的切换到指定的事件
TOT(TimeOffsetTable):
该表提供当地时间与TDT之间的关系,该表与TDT
配合使用。
TSDT(TransportStreamDescriptionTable):
由PID0x0002标识,提供传输流的一
些参数.
ST(StuffingTable):
该表表明其内容是无效的,只是作为填充字节。
那么,我们如何运用DVB中的SI信息表呢?
DVBSI入门
(二)——DVBSI的使用Ben
1、网络信息表(NIT)
网络信息表提供一组传输流以及相应的调谐信息。
NIT在IRD(整合接收解码器)启动程序中用到,并且调谐信息可以存储到不变的存储器中。
NIT还可以用来标志调谐信息的变化。
NIT遵从如下规定:
a、当前的传输系统必须包含NIT。
b、当且仅当NIT包含可用的传输系统描述符,当前传输系统才是有效的。
这就指定了NIT包含有效信息的条件。
在一些广播传输系统边界,TS中的NIT也被允许用来描述广播频道中的早期的网络。
IRD不得不选择一个不同的机制来获得当前传输系统的相应的调谐信息。
例如,一个卫星IRD接受到当前传输系统的一个卫星传输系统描述符,那么这个描述符被视为有效,如果一个电缆IRD接收到当前传输系统的一个电缆传输系统描述符也是有效的,但是,如果电缆IRD接收到当前传输系统的一个卫星传输系统描述符,那么这个描述符对于这个IRD就是无效的。
c、如果当前传输系统一个有效的NIT在SI比特流中出现,那么这个NIT应当列出当前传输系统中所有的TS。
d、SI流每10秒钟应当至少包含8个TS包来传输NIT或者空包。
这个规定简化了广播传输边界中NIT的复位(replacement)。
使用这样的复位机制,使得本地频率控制使用低廉设备成为可能。
SI使用两个标志来描述传输系统。
它们分别是network_id和original_network_id。
后者用来作为一个TS中的一个服务的唯一标志符,即使这个TS被传送到了其他的传输系统之中。
一个TS可以被path:
original_network_id/transport_stream_id唯一标识。
一个服务可以被path:
original_network_id/transport_stream_id/service_id唯一标识。
显然,network_id不在这个path之内。
另外,每个original_network_id中都有不同的service_id。
当一个服务(同一个TS内)被传送到另一个传输系统后,只有network_id改变了,original_network_id不受影响。
下面举个例子,考虑如下情况:
有两个服务(A和B),它们源于两个不同的传输系统并且碰巧有相同的service_id和transport_stream_id,它们被传输到一个新的传输系统。
在这个例子中,这两个服务被安排在新network中的不同的TS中。
如果这两个服务被放在同一个TS中,那么必须修改服务的ID号,因为在同一个TS中一个service_id不能够分配给多个服务,并且一个TS仅仅可以对应一个original_network_id。
2、BAT信息
BAT提供一组服务,这些服务提供了一个基础,IRD在这些基础之上向用户展示有效的服务。
BAT的传输是可选的。
下面的规则提高了SI比特流的连贯性并且简化了IRD的工作。
SI比特流应当在每个BAT子表中列出集锦的所有服务。
注意:
一个服务可以属于多个bouquet。
这一规定使得IRD可以通过不同的TS得到一个服务。
如果IRD将bouquet中服务信息提供给用户,那么列在bouquet中的服务就得到保证,否则一些服务将会丢失。
一个bouquet可以把不同网络传输的多个TS中的服务集中起来。
如果BAT中所有服务都被列在SDT中,IRD对bouquet中所有服务信息的访问将会变得容易。
同样的,如果NIT信息给出所有TS中service的容量,IRD对service的访问将会变得容易。
3、SDT信息
SDT用来罗列TS中service的名称以及其他参数。
每一个TS中都有一个独立的SDT子表。
为了提高对servic
e的采集,定义了下列规定:
强制传输当前TS的SDT;SDT列出的SI比特流至少包括TS中所有服务。
另外:
当前
TS(例如table_id=0x46)中SDT描述其他TS时,应当列出这个TS的所有service。
强烈推荐service_i
d,在一个network中一旦把一个service_id分配给了一个特定的服务,那么这个service_id将不再变化
,以便于IRD实现收藏频道列表之类的功能。
一、SI信息的构成
1、信息构成
SI信息内容是按照network(网络)→transportstrem(传输流)→service(业务)→event(事件)的分层顺序描述,如图1所示。
SI数据信息是按照一定的数据结构进行存储的,这样一来才能达到方便、快捷地进行数据检索和提取。
SI数据主要有:
网络信息、传输流信息、业务信息、业务的事件信息等,并且大量的信息都是通过描述符来传输的,所以可用树状链表来存储数据,构成从网络、传输流、业务、事件的树状结构。
机顶盒接收端的解析主要负责这些SI数据的重建。
2010-10-1415:
28上传
下载附件(21.11KB)
在数字电视系统中,为了能有效地从众多的数据包中组织起SI信息,而使用了很多的标识。
有Network_id(网络标识)、Original_network_id(原始网络标识)、Transport_stream_id(传输流标识)、Serviceid(业务标识)、eventid_id(事件标识)、Bouquet_id(业务群组标识)。
这些标识是作为信息查找定位用的,例如:
要在一个TS里找出一个业务信息,就要知道这个业务信息在那个网络里、在哪个TS里和这个业务信息在这个流里的标识,这样一来,通过层层过滤,就能精确地定位描述这个业务信息的位置,并把它们找出来进行数据组织。
图1就非常清楚地表明了这种查找思路。
一个网络信息由network_id来定位。
一个TS由network_id、Original_network_id、Transport_stream_id来定位,标明这个流在那个网络播发,它原属那个网络,并给它加上标识。
一个业务由network_id、Original_network_id、Transport_stream_id、service_id来定位,标明这个业务在那个网络播发,它原属那个网络和那个流,并给它加上标识。
这体现在SDT表中。
一个事件由network_id、Original_network_id、Transport_stream_id、service_id、event_id来定位,标明这个事件在那个网络播发,它原属那个网络和那个流及那个业务,并给它加上标识。
这体现在EIT表中。
据此,根据各个SI表的功能,各表的ID结构如下:
NIT:
network_id、Original_network_id、Transport_stream_id、service_id。
SDT:
Original_network_id、Transport_stream_id、service_id。
EIT:
Original_network_id、Transport_stream_id、service_id、event_id。
BAT:
bouquet_id、Original_network_id、Transport_stream_id、service_id。
另外,还有一个PID(包标识),它的作用是给每一个数据包打上一个标记,TS承载有视频数据、音频数据、PSI和SI信息数据、图文电视数据、字幕数据、数据广播数据、交互业务数据、CA系统的控制信息数据等等,除了PSI和SI信息数据和CA系统的控制信息数据外,其他的数据的PID都是通过PMT表给出的,CA系统的控制信息数据的PID是由CAT表给出的,而承载了PSI和SI信息的各种表的PID值是固定分配的。
如下表
表PID值
PAT|0X0000
CAT|0X0001
TSDT|0X0002
NIT、ST|0X0010
SDT、BAT、ST|0X0011
EIT、ST|0X0012
RST、ST|0X0013
TDT、TOT、ST|0X0014
DIT|0X001E
SIT|0X001F
由于这些表是分配了固定的PID值,所以机顶盒就可以根据这些PID值来辨认出是什么表,并读取表中的描述参数来生成EPG信息和完成各种数据的组织、解码出所需要的节目和信息。
2、表的构成
表是组成SI信息的一种数据结构。
在TS中有很多不同节目的数据包,解码器如何确定哪个数据包属于某个节目?
其答案就是在TS中的PSI和SI信息里,这些信息精确地指引出获得某节目与该节目数据包的PID之间的关系。
由MPEG-2定义的TS里面,数据包携带了两类信息:
一是音、视频等素材的数据,二是PSI表。
具有给定PID的数据包的有序排列就形成了TS流。
PSI表里的承载的内容主要是TS(本节目流)的描述参数。
由MPEG-2定义的PSI主要包含有三个表:
PAT、PMT、CAT。
每个表都可作为一个或多个TS包的净荷插入TS中传送。
2010-10-1415:
28上传
下载附件(57.45KB)
一个TS数据包的净荷为188个字节,当一个PSI/SI表的字节长度大于184字节时,就要对这个表进行分割,形成段(section)来传送。
分段机制主要是将一个数据表分割成多个数据段。
在PSI/SI表到TS包的转换过程中,段起到了中介的作用。
由于一个数据包只有188字节,而段的长度是可变的,EIT表的段限长4096字节,其余PSI/SI表的段限长为1024字节。
因此,一个段要分成几部分插入到TS包的净荷中。
如图2所示。
PSI/SI表的构成是:
一个表由一个或多个子表构成,表用table_id来标识;不同的子表由table_id和table_id_extension来区分(具有相同的table_id和不同的table_id_extension);一个子表由一个或多个段构成(具有相同的table_id和table_id_extension,不同section_number来区分);每个段由多个TS数据包的数据组成。
每个段具有一个完整的数据结构,表的重要参数----描述符在段里传送。
图3所示是SDT表的结构。
2010-10-1415:
28上传
下载附件(12.49KB)
2010-10-1415:
28上传
下载附件(41.2KB)
(1024)时,可把子表分割成两个或更多个段,并通过section_number来区分,如图3-1所示。
不同的信息表在TS中通过PID来区分,具有相同PID的不同表由table_id(table_id是表标识)来区分,属于同一个table_id的不同子表由table_id_extension、版本号(version_number)进行区分,属于同一个子表的不同段由section_number区分。
表的扩展标识符有:
network_id、oringinal_network_id、boquet_id、tansport_stream_id、service_id等。
l对于NIT表的子表具有相同的table_id、network_id和version_number。
l对于BAT表的子表具有相同的table_id、bouquet_id和version_number。
l对于SDT表的子表具有相同的table_id、oringinal_network_id、tansport_stream_id和version_number。
l对于EIT表的子表具有相同的table_id、oringinal_network_id、tansport_stream_id、service_id和version_number。
以EIT表为例。
EIT的PID是0X0012,当它的table_id=0X4E时,EIT描述的是在当前TS中的当前/后续(EITpresent/following)事件信息;table_id=0X4F时,EIT描述的是在其它TS中的当前/后续(EITpresent/following)事件信息。
这两个不同的描述形成了EIT的两个表。
每个表分为两个段,一个段用来描述当前正在播放的事件,另一个段用来描述即将播放的事件。
此时两个段的table_id、service_id、tansport_stream_id是相同的,但section_number不相同,section_number0x00用来描述当前事件,section_number0x01描述下一个事件。
⑴网络描述表(NIT)的作用
在MPEG2中由于并没有对NIT表进行定义,所以在PSI中NIT表内容是私有的,但在DVB中给NIT表作了明确的定义,所以NIT表是一个全局表,就是一个数字电视系统只对应两个NIT表,分别为当前网络表(table_id=0X40)和其他网络表(table_id=0X041),每个不同的网络视其频点数(1个TS=1个频点)的多少对应一个或多个子表,通过network_id来区分。
NIT表主要是提供有关物理网络的信息,网络信息表传送本网络以及与此有关的其它网络的一些信息。
每个网络都有唯一的识别符(network_id)。
网络信息表主要携带:
网络识别符(Network_ID)、网络名称、传输系统参数(有线传输系统参数包括:
频率、调制方式、FEC外码、符号率、FEC内码)、节目业务类型及Service_ID等信息。
机顶盒只要调谐到携带NIT表的传送流中,即可提取其它网络的参数,一般解码器便可根据提取出来的信息,自动搜索频道。
这里说一说network_id和oringinal_network_id的分别。
每个运营商都需要注册唯一的network_id,假设中央电视台的network_id=0X01,广州电视台的network_id=0X02。
当中央电视台直接播发自己的节目时,network_id=oringinal_network_id,如果由广州电视台转播中央电视台的节目时,那么network_id=0X02,oringinal_network_id=0X01。
也就是说oringinal_network_id等于节目原发运营商的network_id。
⑵业务描述表(SDT)的作用
SDT表是由DVB定义的,是一个SI表,因此它是一个全局表,一个数字电视系统对应两个SDT表,分别为当前流(actualtransport)表(table_id=0X42)和其他流(othertransport)表(table_id=0X46)。
每一个TS对应一个子表(也有对应多个子表的,如同一个TS但业务来自不同的original_network),通过tansport_stream_id和original_network_id来区分。
图4就是一个SDT表的构成图。
从图可看出,这个SDT表由两个表组成,一个是当前流表,只有一个子表;另一个是其他流表,由三个子表组成,每个流对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DVBSI 理解 入门 指南