seawang的个人空间 https://blog.eetop.cn/dacong9999 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

DVB-SI理解入门指南

已有 848 次阅读| 2013-8-13 14:18

数字电视与传统模拟电视节目选择的方式完全不同, 传统电视的每一个频道对应一个节目,只要调到相应的频率, 就可以看到节目。 而在数字电视信号中,一路码流对应多路节目,使用复用技术就可以做到了。一个物理的频道只能给出包含多路节目的一路传输流。要观看其中的某一路节目,还必须从该传输流中提取出该路节目的压缩包,然后再进行解码。 所以怎样从众多的传输流中,选中一路节目播放,就变得很复杂。在mpeg-2的传输流(Transport Stream)中,节目专用信息PSIProgram Specific Information),就是规定不同节目和节目中的不同成分如何复用成一个统一的码流。以PSI为基础可以提供一个码流的构成,从而帮助用户对节目进行选择。DVB中的服务信息SI(Service Information)则对此进行了进一步的扩展,加入了一些对用户有用的信息,标示节目的类型,服务商,节目的相互关系等。正确的了解mpeg-2PSI以及DVBSI的结构,及其在节目组织,选择中的应用,可以正确理解service informationDVB解码中的地位。对于我们做好对数字节目的复用,也能起到帮助作用。
1
MPEG-2 TS中的PSI
PSI
信息主要包括以下的表:
   PAT
Program Association Table):节目群丛表,该表的PID是固定的0x0000,它的主要作用是指出该传输流ID,以及该路传输流中所对应的几路节目流的 MAP 表和网络信息表的PID
   PMT
Program Map Table):节目映射表,该表的PID是由PAT提供给出的。通过该表可以得到一路节目中包含的信息,例如,该路节目由哪些流构成和这些流的类型(视频,音频,数据),指定节目中各流对应的PID,以及该节目的PCR所对应的PID
   NIT
Network Information Table):网络信息表,该表的PID是由PAT提供给出的。NIT的作用主要是对多路传输流的识别,NIT提供多路传输流,物理网络及网络传输的相关的一些信息,如用于调谐的频率信息以及编码方式。调制方式等参数方面的信息。
   CAT
Conditional Access Table):条件访问表,PID 0x0001
除了上述的几种表外,mpeg-2还提供了私有字段,用于实现对MPEG-2的扩充。

2
DVB中的SI
Mpeg-2
PSI中提供了不少的相关节目组成和相互关系的信息,从而使得在接收端可以正确的对多路传输流进行分解。但是这些信息在实际使用时仍显得不够,为此在DVB中采用SIPSI信息进行了进一步的扩展。
除了在PSI中的信息之外,DVB还定义了一些其他的一些表。
SI
的主要用途有:
a
、根据NITPATPMT等信息可以进行自动的频道调谐;
b
、更方便的对节目进行选择和定位;
c
、实现电子节目指南EPG(Electronic Program Guide),等等。
PSI
中的信息基本上都是与当前码流相关的,即它们所涉及的内容都与当前码流中的部分信息相关。与PSI不同的是,SI的信息可以包括不在当前码流中的一些服务和事件,允许用户进行更多的选择和了解更多的其他服务信息。
DVB
规定携带SI信息的传输包必须用指定的PID,指定的PID如下表:
    TABLE TYPE    PID Value
PAT 0X0000
CAT 0X0001
TSDT 0X0002
RESERVED 0X0003 TO 0X000F
NIT
ST 0X0010
SDT
BATST 0X0011
EIT
ST 0X0012
RST
ST 0X0013
TDT
TOTST 0X0014
Network Synchroniztion 0X0015
Reserved for future use 0X0016 TO 0X001B
Inband signaling 0X001C
Measurement 0X001D
DIT 0X001E
SIT 0X001F
在该表中可以看到同一个PID可以对应不同的表,要把这样的表区分开来,需要进一步找到TableID 进行识别。TableID表如下:        
Value  Description
0x00 Program_association_section
0x01 Conditional_access_section
0x02 Program_map_section
0x03 Transport_stream_description_section
0x04 TO 0x3F Reserved
0x40 Network_information_section-actual_network
0x41 Network_information_section-other_network
0x42 Service_description_section-actual_transport_stream
0x43 TO 0x45 Reserved for future use
0x46 Service_description_section-other_transport_stream
0x47 TO 0x49 Reserved for future use
0x4A Bouquet_association_section
0x4B TO 0x4D Reserved for future use
0x4E Event_information_section-actual_transport_stream,P/F
0x4F Event_information_section-other_transport_stream,P/F
0x50 TO 0x5F Event_information_section-actual_transport_stream,schedule
0x60 TO 0x6F Event_information_section-other_transport_stream,schedule
0x70 Time_data_section
0x71 Running_status_section
0x72 Stuffing_section
0x73 Time_offset_section
0x74 TO 0x7D Reserved for future use
0x7E Discontinuity_information_section
0x7F Selection_information_section
0x80 TO 0xFE User defined
0xFF Reserved
有了这两个ID我们可以在码流中找到我们想要的任何一张表。
SI
主要包括以下一些信息表:
NIT
Network Information Table):NIT的作用主要是对多路传输流的识别,NIT
提供多路传输流,物理网络及网络传输的相关的一些信息,如用于调谐的频率信息以
及编码方式。调制方式等参数方面的信息。根据此信息设置IRDIntegrated Receiver
Decoder
)可以进行多路传输流之间的切换。
SDT
Service Description Table):用于描述系统中各路节目的名称,该节目的提
供者,是否有相应的时间描述表等方面的信息。该表可以描述当前传输流,也可以描
述其他的传输流,这由TableID进行区分。
EIT
Event Information Table):该表示对某一路节目的更进一步的描述。它提供
事件的的名称,开始时间,时间长度,运行状态等。
TDT
Time and Data Table):该表提供当前的时间信息,该表用来对IRD的解码
时钟进行更新
BAT
Bouquet Association Table):该表提供一系列类似节目的集合。这些节目
可以不在同一个传输流中,利用该表可以很方便的进行相关节目或某一类节目的浏览
和选择。
RST
Running Status Table):该表提供某一具体事件的的运行状态,可用于按时
自动的切换到指定的事件
TOT
Time Offset Table):该表提供当地时间与TDT之间的关系,该表与TDT
配合使用。
TSDT
Transport Stream Description Table):由PID0x0002标识,提供传输流的一
些参数.
ST
Stuffing Table):该表表明其内容是无效的,只是作为填充字节。

那么,我们如何运用DVB中的SI 信息表呢?

DVB SI
入门(二)——DVB SI 的使用 Ben

1
、网络信息表(NIT
网络信息表提供一组传输流以及相应的调谐信息。NITIRD(整合接收解码器)启动程序中用到,并且调谐信息可以存储到不变的存储器中。NIT还可以用来标志调谐信息的变化。NIT遵从如下规定:
a
、当前的传输系统必须包含NIT
b
、当且仅当NIT包含可用的传输系统描述符,当前传输系统才是有效的。这就指定了NIT包含有效信息的条件。在一些广播传输系统边界,TS中的NIT也被允许用来描述广播频道中的早期的网络。IRD不得不选择一个不同的机制来获得当前传输系统的相应的调谐信息。例如,一个卫星IRD接受到当前传输系统的一个卫星传输系统描述符,那么这个描述符被视为有效,如果一个电缆IRD接收到当前传输系统的一个电缆传输系统描述符也是有效的,但是,如果电缆IRD接收到当前传输系统的一个卫星传输系统描述符,那么这个描述符对于这个IRD就是无效的。
c
、如果当前传输系统一个有效的NITSI比特流中出现,那么这个NIT应当列出当前传输系统中所有的TS
d
SI流每10秒钟应当至少包含8TS包来传输NIT或者空包。这个规定简化了广播传输边界中NIT的复位(replacement)。使用这样的复位机制,使得本地频率控制使用低廉设备成为可能。
SI
使用两个标志来描述传输系统。它们分别是network_idoriginal_network_id。后者用来作为一个TS中的一个服务的唯一标志符,即使这个TS被传送到了其他的传输系统之中。一个TS可以被pathoriginal_network_id/transport_stream_id唯一标识。一个服务可以被pathoriginal_network_id/transport_stream_id/service_id唯一标识。显然,network_id不在这个path之内。另外,每个original_network_id中都有不同的service_id。当一个服务(同一个TS内)被传送到另一个传输系统后,只有network_id改变了,original_network_id不受影响。
下面举个例子,考虑如下情况:有两个服务(AB),它们源于两个不同的传输系统并且碰巧有相同的service_idtransport_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得到一个服务。
如果IRDbouquet中服务信息提供给用户,那么列在bouquet中的服务就得到保证,否则一些服务将会丢失。一个bouquet可以把不同网络传输的多个TS中的服务集中起来。如果BAT中所有服务都被列在SDT中,IRDbouquet中所有服务信息的访问将会变得容易。同样的,如果NIT信息给出所有TSservice的容量,IRDservice的访问将会变得容易。
3
SDT信息
SDT
用来罗列TSservice的名称以及其他参数。每一个TS中都有一个独立的SDT子表。为了提高对service的采集,定义了下列规则:
强制传输当前TSSDT
SDT
列出的SI比特流至少包括TS中所有服务。
另外:
当前


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 7

    月排名
  • 0

    总排名
  • 1

    关注
  • 35

    粉丝
  • 17

    好友
  • 145

    获赞
  • 191

    评论
  • 11382

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 14:19 , Processed in 0.035632 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部