与之比较
在以DVB为基础的数字电视系统中,在TS码流中插入的数据可以分为几类:
1) 节目信息,即PSI信息,包括PAT、PMT、NIT等,这些信息是从码流中分解出节目所必需的;
2) 业务信息,即SI信息,包括NIT、SDT、EIT、TDT、TOT等,这些信息包括了网络描述、业务说明、节目介绍、时间等;
3) 专用数据(如Subtitle、Teletext等),这类数据是作为辅助业务的;
4) 应用类数据,这类数据的数据格式和传输封装方式与具体的应用相关,而且数据量都比较大。
在DVB的系统中,上述前三类的数据类型都是通过DSM-CC Section方式来封装的,这种方式的优点是通过校验和来排查数据传输中的错误。但是DSM-CC的Section封装只是解决了所需的一部分要求,另外还需要对数据结构、数据关系进行定义。前三类数据都具有明确的应用目标,在DVB标准中,对他们的用途、数据格式、封装方式都进行了详细而明确的定义。第四类数据随着具体应用的不同而存在较大的变化,DVB标准无法预先具体地定义。但是,DVB标准为这些数据的发送提供了几种机制,虽然没有明确数据格式,但在传输封装上作了尽可能细致的规定和说明。
一、DVB的5种数据广播方式
DVB系统中,针对上述的第四类数据,提供了5种广播式传输机制。应用系统可以根据具体使用要求,选择一到几种机制。这几种方式各有自己的特点。
1 数据管道(Data piping)
这种方式实现在广播网上传送简单的、异步的端到端数据。广播数据直接由MPEG-2 TS包的负载携带。
2 数据流(Data Streaming)
这种方式实现在广播网上发送面向流的端到端数据,发送方式可以是异步的,也可以是同步的或从同步的。数据是由MPEG-2系统中定义的PES携带。异步数据流仅指无定时要求的数据流(如RS-232数据)。同步数据流是指有定时要求的数据流,且数据和时钟可以在接收端重新生成一个同步的数据流(如E1、T1)。从同步的数据流是指有定时要求的数据流,且流中的数据通过和其它类型的数据流同步能够回放(如视频和音频)。
3 多协议封装(MPE)
这种方式在广播网上传送通讯协议数据报(datagram)。实现方法是把数据报封装成DSM-CC section,后者和MPEG-2私有section格式兼容。
4 数据轮(DC)
这种方式通过广播网周期性地发送数据模块。模块大小已知,且可以随时更新、加入数据族或从中删除。如果业务需要,模块可以聚集成模块组,同样,组可以聚集成超组。
数据轮使用DSM-CC数据轮传送。在DVB数据广播规范中,定义了用于DVB兼容网络需要添加的结构和描述子,没有对PID和定时参数的外部引用,从而能够离线准备内容。
5 对象轮(OC)
这种方式通过广播网络周期性地发送数据模块,数据模块的内容既可以是目录结构、文件实体,也可以是流或流事件信息,这些内容以对象的方式进行封装,对于不同类型的对象可以分别指定发送速率。不同的对象可以跨流发送,同一个对象也可以属于多个对象轮,因此对象轮的传送方式给予了前端系统非常灵活的操作方式,即可以将多种内容关联操作,形成一个功能强大的服务,而且还可以根据服务应用的优先级给予不同级别的响应。
6 对象轮——多媒体业务广播的首选
从上面的介绍可知道,对象轮这种发送机制是最灵活的。在开展基于数据广播的多媒体业务时,有几个要求:
1) 载体类型以文件和信号流两种方式为主,而文件需要比较复杂的目录结构;
2) 媒体类型多种多样,包括文字、图片、视频、音频等;
3) 业务组织形式需要灵活,实现数据与视音频互动,业务之间关联性也比较强;
4) 数据内容需要重复发送。
根据以上的要求,对比5种传输机制的特点,可以看出,对象轮机制是最好的选择。
选择对象轮作为传输机制,也是满足系统先进性和前瞻性要求的。在DVB标准体系中,MHP定义了一套开展多媒体业务所需要的技术体系。该体系就采用了对象轮作为首选传输机制。
二、OC与DC的直观比较
首先,DC是基础层协议,面向应用层提供一个数据传输和控制协议;OC是应用层协议,应用层的灵活性高。他们之间的关系就像网络协议中的TCP/IP和Http的关系。
其次,从协议内容来看,DC是定义数据块传输,而OC则定义数据块的逻辑意义。所以OC中定义的是逻辑对象,比如Directory,File以及这些逻辑对象之间的关系,而这些对象最终要通过DC的数据块来传输。
第三,DC本身并不能传输任何东西,它的扩充版本EDC才可以。在中国,DC(EDC)定义出来后,只有2家实施,而且,EDC没能对接过,也就是没有经过实践验证过。
第四,从传输效率来讲,他们的传输效率差不多,只是OC复杂一些。年,我们搞了一个比较测试,结果如下:
DC(EDC) OC
效率 96%~97% 93%~95.2%
我们可以看到,OC比DC(EDC)只低3个百分点。
实际上,随着机顶盒filter能力的不断提升,这个传输效率差异影响不大。
第五,目前国际主流的数据广播系统如Thales,Canal+,NDS,OpengTV,Alticast,Liberate等都是采用OC协议。
三、如何对OC与DC进行区别
由于OC是在DC的基础上,对数据进行了逻辑定义,实际上两者的传输并无本质性区别,因此从表面效果以及功能上,很难分别数据是由OC还是OC方式广播.
对播放的码流进行分析,OC和DC的区别,根本体现在DSM-CC中的BIOP Message数据结构上
OC:
在OC方式广播的码流中,BIOP Message由Dir Message和Fil Message组成,清晰的描述了各对象直接的逻辑关系
DC:
在DC方式广播的码流中,BIOP Message由Date Message(没有dir,fil之分)组成,不存在逻辑关系.
区别步骤:
a. 通过码流分析工具,查看PAT/PMT
b. 在PMT表中,查找到Ox数据的描述,找到对应的pid值
c. 根据在PMT中查找到的pid值,查找该pid值的packet包(通常的码流分析工具,会对此类pid的包进行归纳,否则需要收工查找)
d. 通过对DSM-CC数据结构的分析(一般情况下码流分析工具会代替我们完整这部分工作)
e. 分析0x数据中的DDB数据结构
f. 在DDB中,分析到DataBlock字段,就可以区分是OC数据广播还是DC数据广播.
g. 如果可以看到前四个字段为:0x50 即BIOP
h. 根据此图继续对数据结构进行分析:
i. 分析到objectKind data字段,就可以判断此BIOP的数据结构.
j. 如果对应的objectKind data字段值为上图中的0x00 (fil) 或者64697200 (dir) 则可以断定,为OC数据广播.