张定京,金 鑫,王 颖,赵良福,陈德林
(国家广播电影电视总局广播科学研究院,北京 100045)
中国移动多媒体广播(CMMB),作为信息传播的一种新兴媒体形式,目前已经成为国内信息产业的发展热点,是今后广播电视事业发展的新的重要领域。移动多媒体广播业务是指通过卫星和地面无线广播方式,在手机、PDA、MP3、MP4、数码相机、笔记本式计算机等7 in以下的小屏幕、移动便携手持式终端上,实现随时随地接收广播电视节目收视与信息服务[1]。
在CMMB系统中,数据广播是指除音视频基本业务之外的一种利用CMMB广播信道传输数据流或数据文件的增值业务。数据广播可以传输多种信息内容,包括视频、音频、文本、图片、网页、业务流或其他多媒体信息数据。因此,CMMB数据广播可为用户提供除广播电视节目之外的其他多种个性化服务,扩展并丰富了移动多媒体广播的业务内容,对推动移动多媒体广播事业的发展起到越来越重要的作用。
CMMB数据广播分为流模式和文件模式两种。若数据业务以离散数据文件的方式展现,通常无时序要求、传输无时间标签指示或同步要求,则采用文件模式进行处理[2]。目前,CMMB数据广播业务已在国内多个城市进行试播,其中在北京试播的数据广播业务主要有:智能交通诱导、实时股票财经、电子杂志、精选短视频、网页推送等[2]。其中电子杂志、精选短视频、网页推送等业务实时性要求不高,具有文件模式业务的特点,所以采用数据广播的文件模式进行处理,而数据广播文件发生器可作为文件模式业务传输的通用平台实现这些服务。
2008年9月16日,国家广电总局科技司发布GD/J024—2008《移动多媒体广播数据广播文件发生器与XPE封装机技术要求和测量方法》这一广播电影电视行业暂行技术文件,该技术文件规定了数据广播文件发生器与XPE封装机的各项技术要求和测量方法[3]。笔者依据该技术文件及其他CMMB相关标准,开发完成了CMMB数据广播文件发生器,并用于广电总局开展的移动多媒体广播系统技术实验。
本文中,笔者将依据GY/T 220.5—2008标准[2]和相关技术文件,介绍CMMB数据广播文件发生器的方案设计和功能模块组成,并以主要模块为例,分析CMMB数据广播文件发生器的实现过程及涉及的关键技术。
GD/J024—2008技术文件[3]描绘了CMMB数据广播文件发生器的功能框图,如图1所示。
图1 数据广播文件发生器的功能框图
数据广播文件发生器主要功能包括输入、文件分割封装、输出等。输入模块通过光驱、USB或以太网,将数据文件上载至数据广播文件发生器;文件分割模块将数据文件分割成等长的文件片,多个文件片组成一个文件块;纠删编码模块对文件块进行纠删编码生成纠删检验块,纠删校验块分割为纠删校验片;文件属性表 (File Attribute Table,FAT)生成模块根据待播数据文件的数量、属性、传输参数等信息,生成FAT文件;数据封装模块主要是对FAT片、文件片和纠删校验片进行封装,分别生成FAT片传输包、文件片传输包和纠删校验片传输包;输出模块按照设定的发送码率,采用UDP协议将封装完成的文件模式传输包输出给后级设备。
上述模块中,文件分割、纠删编码和FAT生成模块在设计上较为复杂,笔者将在下一章中以此3个模块为重点,结合实例,详细分析数据广播文件发生器的实现过程以及涉及到的技术细节。
数据文件在进行分割之前,首先应确定编码类型(是否采用压缩编码)。如需压缩,则应先生成源文件的压缩文件后,对压缩文件进行分割。分割形式如图2所示。
图2 数据文件分割示意图
文件分割参数计算如下[2]
式中:ceil()为向上取整运算;floor()为向下取整运算。 若 KA=KB,则 ZA=Z。 否则,ZA=(Kt-KB×Z)/(KA-KB),ZB=Z-ZA。
下面以文件“a.jpeg”和“b.wmv”为例,进一步说明以上公式和参数的含义(见表1)。
表1 文件分割参数举例
当一个数据文件被分割成多个等长的文件片时,如果 Kt×T>F,则在最后一个文件片的结尾处填补(Kt×T-F)个填充字节(填充值为“0”)。CMMB终端在接收数据广播文件模式业务时,要确定待接收文件在传输中是否被填充,可通过分析FAT文件的内容信息和分割信息来判断。首先应确定文件的有效长度F,如果该文件未经过压缩 (file_encoding=0)[2], 则F为file_length的值,否则为file_encoding_length的值[1]。然后计算文件实际传输的长度 F′,方法为
如果F′>F,说明该文件在最后1个文件块的最后1个文件片有填充字节。当终端接收到最后1个文件片时,应将文件片尾部的(F′-F)个填充字节丢弃,将剩余有效数据保存或写入文件。
纠删编码是一种前向纠删码,可纠正删除错误,被用于恢复在传输信道中丢失的数据。CMMB数据广播文件模式采用的就是纠删码方法,来保证数据实时可靠的传输,其中纠删码采用低密度生成矩阵码 (Low Density Generator-matrix Code,LDGC)[2]。
数据文件进行纠删编码时按文件块进行,得到纠删校验块,纠删校验块再划分成若干与文件片等长的纠删校验片,纠删校验片与文件片连续编号[2],如图3a所示。
CMMB终端在接收数据文件时,如果在文件片传输层的低层协议层检测到错误,即可扩展协议封装包(eXtensible Protocol Encapsulation,XPE)[1]包出现误码,并且对XPE包数据进行前向纠错也无法纠正错误时,该XPE包将被抛弃,其所承载的数据也随之丢失。丢失的位置是随机的,既可能是文件片,也可能是纠删校验片。在文件片传输层将表现为某个文件块内的文件片序号不连续且无法收齐,如图3b所示。
如果出现上述情况,终端可利用纠删校验片恢复丢失的文件片。终端需记录下该文件块的文件片/纠删校验片的丢失位置,将组合后的文件块和纠删校验块一起进行纠删解码,如果文件片丢失数目在有效纠删范围内,文件块中所有文件片的数据将全部被恢复出来[4],如图3c所示。
图3 文件片/纠删校验片图示
纠删校验块的数据是对文件块进行纠删编码(LDGC编码)后生成,有关纠删编码相关参数计算如下
下面以表1中的文件B(b.wmv)为例,说明各参数的含义(见表 2)。
表2 纠删校验块大小计算举例
3.3.1 FAT生成
FAT文件用于描述数据业务所包含的数据文件的构成、路径、分割参数等信息[2]。FAT文件中各个元素的值需根据待播数据文件的数量、路径、属性、传输参数等信息而定。在生成FAT文件之前,需先获取、计算并保存有关参数,FAT生成的基本流程见图4。
图4 FAT生成流程示意图
下面以表1中的文件B(b.wmv)为例,说明FAT文件的具体内容。其中,文件所在相对路径为“b”,数据文件编码方式为GZIP压缩,纠删编码算法为LDGC编码,冗余开销为25%。图5为根据文件“b.wmv”生成的FAT文件实例。
图5 FAT文件XML实例
3.3.2 FAT分割与传输
同数据文件一样,FAT文件也需要分割后再进行传输。FAT文件分割成FAT片,对FAT片进行封装,生成FAT片传输包,语法结构见图6[2]。
图6 FAT片传输包的语法结构
由图6可以看出,FAT文件最多可以被分成256片(最后片序号为8位),FAT片的长度为N byte(最大值为4 095 byte),通过FAT片传输包传输的FAT文件最大长度为M byte(256×N)。FAT片长度一般与数据文件的文件片长度等长,以便控制输出码率的稳定。
如果原始FAT文件较大,文件长度超出M值,FAT片传输包将无法完整传输FAT文件。这种情况下,FAT文件需要进行压缩编码以缩短文件长度,压缩编码方式可采用GZIP算法。压缩后的FAT文件的长度一般可比原始FAT文件缩小几倍到几十倍。FAT文件如经过压缩,被分割、封装生成FAT片传输包,其中的“编码类型”字段的值要设为“1”(GZIP 压缩)。
当数据广播文件模式业务发送的文件发生变化时,FAT文件需要重新生成,文件片传输包和FAT片传输包也需要重新封装,其中多个代表更新标志的字段必须变更,以便于终端能及时发现文件业务的变化,进行相应处理。更新标志字段包括:
1)MaxVersion,为FAT文件中的FAT元素大版本号属性。若大版本号变化,终端需要重新构建资源标识与文件的对应关系。
2)MinVersion为FAT文件中的FAT元素小版本号属性。若仅有小版本号变化,资源标识与文件的对应关系保持不变。
3)UpdateIndex为FAT文件中的FAI元素更新序号属性。
4)文件片“更新序号”,即文件片/纠删检验片传输包语法中的更新标志,与“UpdateIndex”一致,要联动变更。
5)FAT片“更新序号”,即FAT片传输包语法中的更新标志,表示FAT信息发生变化。
表3为归纳的几种主要更新标志字段需要变更的情况。表3中,“√”表示当数据广播文件业务出现最左列描述的情况时,该更新标志字段要变更(循环递增加1)。
表3 更新标志字段变更表
目前,在移动多媒体广播系统中,除广播电视节目之外的其他多种个性化服务都需要在数据广播平台上展开,多元化的服务内容将是CMMB品牌的新的业务增长点。接下来,CMMB还将不断推出新的数据广播增值业务,如精彩游戏、生活资讯、打折信息等服务,这些服务都可以采用文件模式进行处理,因此数据广播文件发生器将在这些服务中发挥重要的作用。
笔者开发的CMMB数据广播文件发生器,已在CMMB前端播出平台中得到应用,经过使用,运行良好,对促进CMMB前期实验工作的开展起到一定积极作用。
[1]解伟.移动多媒体广播(CMMB)技术与发展[J].电视技术,2008,32(4):4-7.
[2]GY/T 220.5—2008,移动多媒体广播 第5部分:数据广播[S].2008.
[3]GD/J024—2008,移动多媒体广播数据广播文件发生器与XPE封装机技术要求和测量方法[S].2008.
[4]慕建君,路成业,王新梅.关于纠删码的研究与进展[J].电子与信息学报,2002(9):1276-1281.