基于DVB的数据广播技术

来源:百度文库 编辑:神马文学网 时间:2024/04/29 07:30:22
数字技术为广播电视带来了一场革命。这场革命的意义不仅仅是电视业本身,而是为任何数字信息的广播开启了大门。通过这扇大门,数字广播技术将在未来的信息社会中扮演重要角色。
除了数字电视广播外,数字广播技术还包括数据广播和交互业务两大方面,其典型应用包括软件下载、宽带Internet服务以及交互电视等。本文主要介绍基于DVB标准的数据广播技术基本原理和实现,对交互数据广播业务使用的数据集和对象集协议做了详细说明。
1 数据广播
大多数通讯协议都是基于双向的点对点(point to point)通讯。虽然它们通过交互式的认证过程确保了传输的可靠性,但是它们不适合用来同时将同样的信息传输给大量的观众。举个简单的例子:假如我们现在需要将实时股票行情信息传递给很多的观众,如果我们使用点对点的通讯协议,我们就不得不为每个观众建立一个专门的连接,这样的代价将是很高的而效率却是很低的。但是如果我们将这些数据通过一条带宽受控的信道以广播的方式发送出去,并且使得只有被授权的用户才能够接收到,就可使得所有的数据只发送一次,而且可以控制接收者却不限制接收的人数,这将省去为每个接收者建立专门的连接,无论在效率上还是经济效益上都是极明显的。所以说,数据广播是数据通讯的一种方式(协议)而不是一种物理意义上的传送。其传送的媒体可以是多种,包括卫星、有线等等。
2 数据广播标准
鉴于数据广播的重要性,欧洲的DVB、美国的ATSC以及日本的ISDB(综合业务数字广播)在这一领域展开了激烈的争夺。其中DVB标准在1999年6月正式成为欧洲标准时交互业务标准就是欧洲电信的标准(ETS)。ATSC的数据广播标准则由T3技术组的S13专家组负责。
无论是DVB还是ATSC或者其他的数字电视广播标准,都是基于MPEG-2的传送流机制,而标准只是定义了如何在各种不同的传输媒质上进行TS包传送。根据ISO/IEC13818-1协议,所有数据被分割成188字节大小的定长分组数据包,这些包在数字电视广播中用来传送数字视音频以及相关的信息。实际上,这种定长的数据包可以用来传送各种信息。数据广播标准就是规定了用TS流来传送面向多种应用的数据的方法。
除了TS流以外,ISO/IEC 13818-6数字存储媒体的命令和控制(DSM-CC)是数据广播的另一基础。所谓DSM-CC是一种特殊的协议,用于提供在数字存储媒体上管理MPEG码流所需的基本控制函数和操作。此协议位于操作系统层之上、应用层之下,独立于所管理的数字存储媒体、所关联的网络协议以及所在的操作系统,也和数字存储媒体是本地的还是远程的无关。DSM-CC是一个庞大的规范,数据广播标准只是其应用的一个领域。
DVB系列数据广播协议标准包括TR 101 202《DVB数据广播规范执行指南》和EN 301192《DVB数据广播的规范》。而ATSC的数据广播标准则是2000年7月发布的A90《ATSC数据广播标准》。两者从原理上来讲很接近,本文的介绍将以DVB的标准为主,因为它颁布较早且普及程度较高。
3 数据广播的基本原理
数据广播可以分成四种类型,这四种类型分别针对不同的应用。这四种类型为:
(1)数据管道(Data piping):数据直接由MPEG TS包的负载携带,数据分割、组装和解释则都留给用户自己定义。
(2)数据流(Data streaming):数据由MPEG系统定义的PES的负载携带,用来实现广播网上传送面向流的端到端数据。
(3)多协议封装(Multiprotocol encapsulation MPE):将通讯协议数据包封装成DSM-CC分段,这种分段兼容MPEG-2私有分段,最终实现在广播网上传送多种协议的数据包如IP数据包。
(4)数据集和对象集(Data Carousel and Object Carousel):定义在 DCM-CC的数据集或对象集的基础上,将需要周期性发送的数据组织成大小相同的块进行广播网发送。
数据管道协议说明并没有对如何从TS包中取出数据给出具体说明,仅仅指定了如何将数据封装到MPEG-2传送流包中。和其他的应用相比,要实现这种服务,发送和接收双方需要较多的先验知识;数据流协议说明是定义在MPEG分组原始流(PES)基础上的,协议定义提供了更多的功能,尤其是时间信息。这样就可以用来传递异步、从同步和同步广播;多协议封装,数据集和对象集的应用都是建立在DCM-CC的框架结构上,共同基于MPEG-2系统层定义的私有分段基础之上。DVB标准仅仅增加了关于如何让这种框架结构工作在DVB网络环境中的定义,尤其是和服务信息(service information)的接口说明。
在DVB数据广播标准中,所有应用都被分割成两部分:控制和传送。其中控制部分涉及到服务信息(SI)和程序特殊信息(PSI),属于DVB用户服务信息协议定义的范畴,而关于数据传送部分的说明属于《DVB数据广播规范》定义的范畴。
4 数据广播的具体协议实现
4.1 数据管道
数据管道是一种异步数据传送机制,数据被直接插入到MPEG-2的传送包负载中。这种机制中并没有给出关于数据的分段和重组定义而是留给了应用自己定义。举个例子,TS包头中的负载起始标志(payload_unit_ start_indicator)可以被用来标志数据包的开始,而传送优先级标志(transport_priority)可以被用来标志数据包的结束。至于如何将数据通过管道及时地传送则不在协议中规定而由应用自己保证。
数据服务将通过一个或多个数据广播描述子来说明对数据管道的应用。每一个描述子通过成份标志(componen_tag)来唯一标志一个特定的数据管道。而且,这个成份标志必须和可能在程序映射表(PMT)中提供的流标志描述子(stream_identifier_descriptor)中的成份标志完全一致。流标志描述子用来指明哪一个流使用了数据管道,DVB标准中定义了关于数据广播描述子的具体使用,而对于在PMT中的流类型( stream_type)的描述DVB没有定义具体值。
在DVB的具体应用中,数据管道机制用来传送任意用户自定义的数据类型。
4.2 数据流
数据流分成三种:异步数据流,从同步数据流和同步数据流。无论哪种,最终都是被插入到MPEG-2传送流的分组原始流(PES)层进行传送。
异步数据流用来传送没有定时要求的数据流,在使用分组原始流层进行数据传送时需要遵循的语法如下(其中关于该层的语法结构请参考13818-1协议):  setream-id:该字段必须设置为0xBF,表示是私有流;
PES-packet-length:这个 16比特的字段必须设置为非0值。
同步数据流用于传送在接收端输出数据码率必须严格精确控制的应用。接收端的时钟通过MPEG标准定义的节目参考时钟(PCR)机制和发送端实现同步,通过分组原始流层的数据包结构来进行数据传递。这种结构提供一个9比特的显示时间标签扩展(PTS_extension)字段用来精确定位数据访问单元,这和视音频访问单元是类似的。单元的大小可以是比特,也可以是字节或多个字节,完全取决于具体应用。注意这个9比特的扩展将显示时间标签的精确度从11微秒(90k)提高到37纳秒(27M)。这种精确定位可在多个接收机接收同样的数据服务并需要以对齐的方式同步输出数据时应用,或者用来在输入信号临时丢失的情况下保持数据输出的同步。
从同步数据流和同步数据流应用的区别在于从同步数据流传送的数据流需要和其他的MPEG-2的打包原始流严格同步,其余的类似。
和数据管道一样,无论同步数据流还是异步数据流都是通过一个或多个数据广播描述子来说明 对数据流的应用。每一个描述子通过成份标志(component_tag)来唯一标志一个特定的数据流。而且,这个成份标志必须和可能在程序映射表(PMT)中提供的流标志描述子(stream_identifier_ descrinor)描述子中的成份标志完全一致。流标志描述子用来指明哪一个流使用了数据流。DVB中同样定义了关于数据广播描述子的具体使用。
无论是同步还是异步数据流都必须在PMT中设置流类型为0x06或者采用用户自定义的数值。
4.3 多协议封装
多协议封装(MPE)提供一种基于MPEG-2传送流的在数字电视广播网络中传送数据的机制。该协议主要的一个应用领域是传送基于IP协议的数据,也可以通过进行LLC/SNAP封装来传递按其他网络协议定义的数据流,并适用于unicast,multicast和broadcast等多种传播方式。这些都是通过一个48位的MAC地址来实现的,但是DVB并没有规定如何为用户分配MAC地址。考虑到广播的实际安全性,封装协议通过支持对数据包的加密和动态改变MAC地址来保证安全。
分段数据是通过数据段结构(datagram_section)来传递的,并兼容于为私有数据定义的DSM-CC段,具体定义读者可以参考13818-6协议,这里不作详述。这种分段格式提供了一种有效的将数据表映射到MPEG-2传送流包格式的机制,并且可以在现有的解复用的软硬件基础上利用MAC地址方便地实现数据包滤波。
分段机制允许将一个数据表分段映射入多个数据段,如果数据表的长度小于或者等于4080字节(包括LLC/SNAP头),则数据表可以放入一个数据段而无需分段。对于 IP协议数据,由于LLC/SNAP可以被忽略,则MTU(最大传输单元)应该被设置成4080,这样可以让数据表无需被重新分段,如果考虑LLC/SNAP则MTU应该被设置为4074或者更小。
6字节的MAC地址在数据段结构中被划分成两个部分,这样做的目的是为了使接收端方便采用硬件方式进行包滤波。
4.4 数据集
数据集(也有称数据轮)是一种允许服务器或者某个应用循环地、一次或者多次地发送一组相同数据模块的服务。如果一个接收者希望访问其中的某一个特定的模块,则仅仅需要等到下一次广播的时候即可。一个典型的数据集的应用是图文广播。数据集是定义在DSM-CC的数据集的基础上的,提供一种循环传递数据到接收者的机制。
在数据集中数据被划分成模块(modules),每个模块被划分成大小完全一样的块(block)。除了最后一个块可能会小一些,一个数据集中其他所有的块的大小都是一样的。每个模块代表逻辑上相互独立的数据,如文件。根据服务的需要,多个模块可以组织成一个组(group),类似的多个组可以进一步构成超组(Super group)。
数据集规范使用到了DSM-CC下载规范中的四条消息;数据存放在下载数据块(DownloadDataBlock DDB)消息中,关于模块的控制信息存放在下载信息说明(DownloadlnfoIndication DII)、下载服务初始化(Download ServerInitiate DSI)以及下载取消(DownloadCancel)消息中。其中下载服务初始化消息描述一个超组中组的信息,而下载信息说明消息描述一个组中模块的信息。基于这些控制消息,用户可以从网络中获取模块的子集,DVB标准定义了如何使用上面四条消息。
数据集可以组成两种结构:单层结构和双层结构。单层结构中仅仅包含一个组,这种情况下,DVB的服务描述表(SDT)、事件信息表(EIT)中的数据广播描述字段(data-broadcast-descriptor)指向下载信息说明消息,该消息利用模块信息字节(ModuleInfo Byte mi)来描述组中的模块。mi中包含了一组循环的描述子描述各种信息,如指向DDB消息的指针信息等。
两层结构中,下载服务初始化消息用来描述超组中不同组的信息,而下载信息说明消息的使用则一致。 DSI消息使用组信息字节(GrouplnfoByte gi)来描述内部的组的信息,方法和mi类似,包括三种可能:
(1)数据集中包含单一的组的描述,但如果该描述太大以至超过了一个DII消息的容量,就需要将一个大的组分成几个小的组,每个组都有自己的DII消息描述。由于数据集只能有一个处于最顶层的控制消息,因此需要使用两层结构。为了重建最开始的大组,各个新的小组之间需要通过处于DSI中的组连接描述子进行连接。
(2)数据集提供一种版本的应用但是支持多种特性的接收者。这样就必须为每种特性的接收者提供一个组,这些组之间可以共享一些模块。
(3)数据集同时提供多种版本的服务给一种特性类型的用户。这种情况下,由于没有版本信息的存在,DSI总是指向最新版本的组。如果有最新版本的服务加入,则DSI作相应的修改而指向最新的版本组。这就是说,在接收端用户为了在新版本的应用加入后还能够继续以前的访问就必须保存相关的DSI信息。
作为接收机,必须能处理任何一种形式的数据集结构,而作为发送方必须能选择任何一种方式的数据集进行服务。
组和模块可以使用各自独立的PID进行传送,也可以进行PID共享。如果服务不提供数据明显的外部位置指示,则需要从控制消息中获取这些信息。这些信息包括:指向特定流的指针和唯一的模块标志,接收机根据这些信息来有效地提取数据。另外,在 DSI和 Dll中还包括模块和块的大小。
一个典型的数据集的应用就是电子节目指南(EPG)的传送。
4.5 对象集
对象集概念的定义主要是针对一种基于DVB网络的,尤其是DVB交互式网络的,需要周期性广播DSM-CC User-User(U-U)协议的一种数据广播服务,是基于13818-6的对象集和数据集基础上的说明。一个DVB对象集代表一个由DSM-CC U-U对象集合而成的特殊服务,使得通过路径对象(directory objects)、文件对象(file objects)和流对象(stream objects)从服务器端向最终用户传递一组对象结构变得十分方便。路径和内容存储在服务器上,服务器反复地将涉及的对象通过对象集协议插入到DVB兼容的MPEG-2传送流中。接收端可以通过访问对象集中周期性的数据来恢复对象应用,而在本地实现对服务的模仿。这样对象集就提供了客户端一种访问服务器应用和内容的途径,使服务器和客户端之间或多或少的具备了一些交互的连接。
对象集实际上是为最终用户提供了一种实现DSM-CC U-U访问的机制。对象集定义是平台无关且兼容DSM-CC U-U的,在一个DSM-CC U-U系统环境中,一组对象结构就好像一个服务域,这个服务域有一个可以被看成是对象组结构的顶层路径服务网关,该网关中包含所有用户的广播对象名称表。通过该表,可使广播网络中定位服务域上的对象和交互式网络中的一致。
对象集中单个对象的数据和特性是通过一个单独的消息(Message)传送的,即BIOP消息(Broadcast Inter ORB Protocol)。每个BIOP消息都是通过一个模块(module)传送,每个模块可以包含一条或多条BIOP消息,数据封装则是数据集定义的内容。
服务域中的对象是通过对象参考(Object reference)来标识的,DSM-CC使用一种基于CORBA模型的可以共用的对象参考结构(IOR Interoperable object reference structure)。对象参考中包含了从一个网络上的服务器中恢复完整对象所需的全部信息。在IOR的结构中,称包含了单一实例的存储对象位置信息为属性体(profile body)。一个IOR也可以通过包含多个属性体来描述多重存储位置的对象。对象集说明定义了两种属性体:BIOPProfileBody和Lite OptionsProfileBody,分别用来说明处于同一个对象集中或者不同对象集中的对象。其中前一个称为Broadcast Inter ORB Protocol属性体,通过对象集的标识符、对象集处于模块的标识符以及模块中标志对象的唯一的key可以很方便地表示一个对象,而对象集的标识通过PMT中的描述子与DVB的服务信息产生联系。第二个属性体称为LiteOptionsProfileBody,可以通过全局唯一的NSAP地址和其他的服务域发生联系。所谓NSAP指的是对象集的网络服务访问点地址(Network Service Access Point),这个地址中包含的网络细节说明使得该地址在整个网络中是唯一的,从而将某个对象集和其他的服务域区分开来。
对象集在设计上支持DSM-CC U-U的API接口,这些接口包括DSM∷Directory、DSM∷File、DSM∷Stream、DSM∷ServiceGateway、DSM∷Stream Event。需要注意的是,在语义上针对广播的API和针对交互业务的API是不同的,这是因为广播的网络没有回传信道。
前面说过,对象集中一个U-U对象的数据和特性是通过一条BIOP消息传递的,该消息包括:消息头(MessageHeader)、消息子头(MessageSubHeader)和消息体(MessageBody)。其中消息头提供BIOP协议版本和消息长度,消息子头中包括对象的类型和key(注意key是在模块中对象的唯一标志),而消息体则是基于对象类型的并且包含了U-U对象的具体数据,注意BIOP的消息长度本身是可变的。
BIOP的广播通过数据集的模块,每个模块由多个BIOP组成,模块内部通过key来对每个对象唯一标识,BIOP消息最后封装成数据集的块再到DSM-CC层进行段封装。接收端如果需要获取一个完整的对象首先需要获取完整的包含该对象的模块,这就要求接收端对模块的版本、大小、块的大小、时间以及广播通道等传送参量具备先验知识。在实际应用中都是通过前面定义的下载信息来说明消息传递,一个下载信息说明消息可以传递多个模块的传送参量,由此可知从网络中恢复对象是经两个步骤完成的。关于BIOP以及NSAP的进一步阐述可以参考13818-6协议。
对象集的传递最后是通过MPEG-2传送流的私有段来完成的。DSM-CC为了支持一些特殊应用需求而定义了一种和MPEG-2私有段兼容的DSM-CC段,该定义不影响正常的MPEG-2系统解码,DVB仅仅给出了使用该私有段的一些指导意见。
13818-6中定义的对象集是网络无关的,也就是说可以适用于各种广播网络。网络无关性是通过“分接”(Tap)的概念来实现的,分接通过一种联合标签实现各种具体的网络的连接。因此,接收端需要一张关联表将Tap和具体网络联系上。
6 总  结
数据广播的自然延续就是交互业务。通过数据广播,用户可以从大量的信息中选择自己需要的信息。这种选择是在用户本地发生的,称为本地交互。如果拥有回传信道,用户还能向业务提供者上传信道来反馈信息,这时发生的交互称为远程交互。
可以看到,数据广播实际上是广播电视增值业务的基础。其派生出来的实际应用很多,如无回传的股票信息发送、电视附加信息查看、公共信息浏览、大量回传的视频会议、交互游戏、数据交换以及视频点播、下载等无一不是以数据广播为基础。在广播数字化改造的浪潮中,数据广播技术将扮演着越来越重要的角色。