安丰光,罗 旭,程承旗,濮国梁,宋树华
(1. 北京大学 遥感与地理信息系统研究所,北京100871; 2.中煤科技集团公司,北京100013)
2008年5月12日,四川汶川8.0级大地震波及了半个中国,也牵动了全国人民的心。地震发生后,震中附近的重灾区道路中断,通信中断。在“运输是基础,通信是关键”的紧急时刻,国际海事卫星也很“凑巧”地被关闭了十多个小时,使得灾区成为失去和外界一切通信联系的“孤城”。而我首批武警官兵于当晚22点左右到达地震重灾区,利用北斗卫星导航定位系统用户终端机连夜陆续发回的实时灾情数据,是地震重灾区发出的第一束生命急救电波[1-2]。
但由于北斗一号卫星导航定位系统[3]是主动式双向测距二维导航,用户需向北斗系统发送消息请求才能获得服务[4-5],且发送第一条消息后需隔Δt时间才能发送第二条消息,而不同等级北斗用户卡的等待间隔Δt从数秒到几十分钟不等、每次发送的字节数不等。同时,北斗短报文系统的通信带宽只有几百字节[6],适合传输关于灾情的文字信息。因此,利用北斗传输真实场面影像数据时,会遇到如下问题:
1) 通信带宽窄与影像数量大之间的矛盾。相对于北斗短报文系统一百多汉字的通信带宽而言,影像数据量相当大,因此传输整幅影像数据需要很长的时间。
2) 系统服务时间长,数据传输时效性差。由于用户连续发送两次消息之间有Δt等待时间[6],因此利用北斗连续传输大数据量影像数据时,整个文件接收过程耗时较长,从而导致数据传输时效性较差。
3) 北斗短报文系统连续传输信息时存在数据包丢失现象。由于北斗转发的信号较弱,易受地面目标遮挡影响,因此在传输连续的数据时,容易出现数据包丢失的现象。
4) 影像数据缺乏支持局部数据更新的数据结构与机制。目前,影像数据更新一般采用更新整个影像文件的方式,这种更新方式在高带宽的通信网络中没有问题,但通过类似于北斗短报文系统的通信环境进行数据更新就非常困难。因此,造成影像数据更新困难的原因之一就是缺乏一种支持影像局部更新的数据结构与机制。
为解决上述问题,本文提出基于剖分影像金字塔模型(subdivision image pyramid,SIP)的北斗卫星短报文系统影像传输策略与方法,为应急情况下传输遥感影像提供理论支撑。
北斗卫星导航定位系统不同于GPS的一个重要特色是,除提供定位服务外,还能提供简短报文通信服务,只是不同级别的用户服务时间间隔、一次传输数据量大小等存在差别[7]。因此,在利用北斗卫星短报文系统数据传输应用方面,国内也有少数学者进行相关研究,如张东等[8]于2005年利用北斗卫星进行文件传输;成方林等[9]2008年对北斗卫星传输大数据的传输协议进行了探讨。但由于北斗卫星通信带宽和服务频率的限制,采用北斗卫星传输大数据文件的应用很少。
针对传统的影像金字塔模型缺乏对局部影像数据的快速索引,从而导致影像数据局部更新困难的问题,北京大学空天信息工程研究中心项目组2009年提出了影像金字塔内分层、分块的策略,以及剖分影像块按照Hilbert曲线[10]进行编码与组织的剖分金字塔SIP模型[11-12]。这种基于数据块组织的数据结构有利于局部数据的快速提取与更新。
基于北斗卫星遥感影像的传输框架如图1所示。其中,剖分影像金字塔SIP是整个影像更新的基础,其基本制作过程是先根据北斗卫星短报文通信带宽,分析最佳传输的影像块粒度并建立影像SIP文件;然后将SIP数据预装到接收终端,并作为底图数据。当需对接收端进行影像数据更新时,发送端会对数据更新的影像块进行变化检测,然后将信息变化的影像块经压缩分包处理后与影像块编码一起,并由北斗短报文系统发送给接收端。接收端则根据数据编码将影像块放到恰当的影像位置,从而实现对接收端遥感影像数据的更新。
图1 基于北斗卫星短报文系统的遥感影像传输框架图
针对北斗卫星通信资源有限而遥感影像数据量相对较大的矛盾,根据前文所述数据传输框架,本文采用了以下传输策略。
(1) 基于影像块的数据传输
针对影像数据量大与通信带宽窄的矛盾和北斗更新整个文件方式时效性低的问题,本文采用影像压缩技术和传输局部目标区域数据块的传输策略,减少传输数据量和次数,以解决窄带宽通信传输大影像数据的矛盾,达到提高数据传输的时效性。因此,数据块大小的设计是传输的关键。为此,建立SIP时,应根据实际通信带宽、遥感影像的位深(bit depth)、图像压缩比例(scale)等信息,来确定SIP影像块大小。
(2) 基于变化信息的影像块传输
鉴于同一区域时间相近的不同时相遥感影像存在大量信息冗余的特点和SIP局部数据更新的优势,本文提出只更新信息变化的数据块的策略,以代替传统传输整幅影像数据方式,通过减少传输数据量,实现数据快速更新。具体方法是,在发送端采用比值法对SIP中影像块进行变化检测,确定是否需对影像进行数据更新;对需更新的影像块,通过压缩打包等处理后,由北斗发送给接收端,为接收端进行影像数据更新。
图2中,遥感影像变化检测方法采用目前成熟的比值法。在进行变化监测时,先设置阈值k0=0.75,并比较变化信息与原信息的百分比值k与k0的大小来确定是否应该更新影像。若k≥k0,认为信息发生了变化,数据须更新;若k 图2 基于变化信息的遥感影像更新流程图 (3) 基于图标编码的信息传输 针对北斗通信带宽窄和影像数据量大的现状,本文提出传输图标编码的传输策略,即对状态有限的目标,如道路是否畅通、桥梁是否完好等情况,发送端和服务端对这些目标状态的影像块或图标进行编号。当某一方发送这些目标信息时,只需将目标编号和相应的地址编码信息发送给另一方,然后另一方通过编码解译将对应目标状态的影像数据块对数据底图进行更新。这种通过传输地物状态图标编码方式,可极大地降低数据传输量和传输次数,适应窄带宽的北斗通信环境,提高北斗数据传输效率。 鉴于北斗通信信号易受高目标遮挡而出现数据包丢失的现象,若因丢失某个数据包而重传整个文件,将花费更长的时间。因此,本文针对北斗通信没有对丢失数据包进行补传的机制,专门设计了数据包丢失检测和重传技术。但为了防止因接收补传数据包而长时间等待,先介绍丢包处理的一些规则。 规则1 因第一个数据包含有影像块编码、大小,以及传输包数等信息,故若第一个数据包丢失,则接收端放弃接收后续的其他数据包。 规则2 接收端反馈丢失数据包信息时,最多反馈2次,每次等待时间为2Δt;若等待时间超过4Δt且仍没有接收到发送端补发的消息,则接收端放弃反馈丢失数据包信息并销毁已接收的数据。 规则3 接收端反馈丢包信息且获得补发的数据包后,当补发的数据包仍有数据包丢失,仍继续反馈补发所丢失的数据包信息。但若第二次补发数据包仍有数据包丢失,此后放弃反馈丢失的数据包信息并销毁已接收的数据。 基于前文的处理规则,北斗通信数据包丢失检测和重传机制如图3所示。在图3中,为了确保通信成功,发送端在请求消息发送时,在A时刻开始进行时间t1统计,若t1>2Δt且仍无信息反馈,则继续进行发送申请消息;若重复4次申请后仍然无响应,则放弃申请。若通信正常,接收端在接收到第一个数据包后(B时刻)开始进行统计丢失数据包。如果没有数据包丢失,则表示接收数据成功;如果存在数据包丢失,则当接收端接收到文件结束消息后(C时刻),开始反馈丢包信息并统计时间t2和反馈次数m。若t2>2Δt且没有收到反馈信息,则再次发送重传申请;若t2>4Δt时仍没收到重传数据包则放弃反馈且销毁已接收的数据;若反馈次数m>2且仍有数据包丢失,则放弃反馈并销毁已有相关信息。 图3 北斗卫星数据丢包检测与重传机制 下面是本文设计的数据传输协议头结构: typedef struct tagBDPACKETHEADER{ DWORD dwdBDID;∥发送端北斗卫星用户ID DWORD dwdBDDestID;∥接收端北斗卫星用户ID BYTE btPacketID;∥标识;0x0为消息,0x01为一般文件,0x02为影像,0x03为图标 WORD wdPacketNo;∥传输数据包的序号 BYTE btPacketType;∥数据包的类型;0x0为第一次发送,0x01为补发 DWORD dwdPacketLength;∥传输内容的长度 }; 在数据接收时,接收端通过分析包头的包序号wdPacketNo判断是否丢包并将所丢失包的序号进行记录;通过判断数据包类型btPacketType来判断所接收的数据包是第一次发送还是补发的。 (1)发送端 发送端对遥感影像块进行JPEG2000[10]压缩处理并添加传输协议头结构,制作成北斗系统标准的数据包后,由北斗卫星通信组件模块发送给接收端。此外,发送端还需补发接收端反馈丢失的数据包。发送端信息处理流程如图4所示。 (2) 接收端 接收端收到数据包后,首先对数据包进行分析,判断是否存在丢包,以及数据包是第一次发送的还是补发的。若是第一次发送的数据包,则直接将除传输协议头结构外的影像数据追加到接收影像数据的缓冲区中,并进行JPEG2000数据包解压;若是补发的数据包,则根据数据包序号信息将影像数据插入到影像缓冲区相应的位置;若数据包是第一次发送的但并不是已接收的数据包的后续包,则表明存在丢包,需进行丢包信息统计,并将丢包信息通过北斗反馈给发送端。图5是接收端信息处理流程。 图4 发送端处理流程图 图5 接收端处理流程图 本文以北斗卫星在5·12汶川地震救援为背景,利用Microsoft Embedded Visual C++4.0开发了一套利用北斗卫星短报文系统传输遥感影像手持终端模拟系统,并采用大小为10 888 B×9960 B×3 B、分辨率为0.61 m的遥感影像作为模拟试验数据。 模拟系统发送端为一台PC服务器,通过串口与北斗用户机相连;接收端为一个北斗手持终端,终端中使用的北斗卫星用户卡和北斗卫星OEM通信模块均由成都国腾电子集团提供。模拟系统采用北斗卫星用户卡一次传输数据包大小为106 B、服务时间间隔Δt为45 s。在模拟试验时,发送端通过串口由北斗用户机将信息发送给北斗卫星,接收端通过OEM模块提供的接口接收北斗卫星传输的数据信息。 考虑到传输环境的特殊性和手持终端的资源有限性,模拟系统在对道路是否畅通、桥梁是否损毁等信息传输时,采用传输图标编码方式进行信息更新;而对山体滑坡、堰塞湖等信息,采用传输影像的方式。 鉴于北斗用户卡的通信限制,在模拟试验过程中,测试数据按16像素×16像素大小进行分块、2像素×2像素合成1个像素的方法生成7层不同分辨率的剖分影像金字塔SIP,并作为接收端和发送端底图数据。表1为传输不同大小的剖分遥感影像或目标编码时所需的时间,图6是采用丢包重传机制对38次数据传输试验结果统计图。其中,8次丢包重传试验中,4次是由于第一个数据包丢失而导致的数据接收失败。 图6 采用丢包重传机制的试验统计 影像传输方式大小/B所用时间/s次数/次影像块78K33930754(理论值)影像块(16像素×16像素)8222706图标编码411 由表1可知,采用传输16像素×16像素的影像块和图标编码方式时,所用时间为270 s和1 s,数据传输效率和实效性明显提高。 系统测试的配置如下:发送端为Intel(R) Core(Tm)2 Duo CPU E4600,2.4 GHz,内存2 GB,硬盘240 GB的PC机;接收端为Intel(R) PXA263处理器,400 MHz,内存64 MB, Flash 32 MB,固存1 GB手持终端PDA。 试验证明,基于SIP的北斗卫星短报文系统传输影像技术及所采用的传输策略,较好地解决了北斗卫星系统数据传输丢包问题,并将北斗窄带宽通信环境下的影像数据更新的实时性提高至分钟级,使得大数据量的遥感影像数据近实时更新成为可能,使得北斗通信功能得到了更大的发挥,具有重要的应用价值。 参考文献: [1] 宋丽芳,陈全育.集团公司研制的卫星助力抗震救灾[EB/OL].[2008-05-20]. http:∥www.spacechina.com/n25/n144/n206/n214/ c60255/ content.html. [2] 羊城晚报.“北斗”卫星系统通信功能独特 汶川地震救灾立功[EB/OL]. [2008-11-08]. http:∥www. chinanews.com/gn/ news/2008/11-08/ 1442200.shtml. [3] 刘传润.北斗卫星导航定位系统的功能原理与前景展望[J].中国水运,2008,8(1):165-166. [4] 李猛,李颖.论我国卫星导航的应用现状与发展[J].科技传播,2011(1):190-191. [5] 范本尧,李祖洪,刘天雄.北斗卫星导航定位系统在汶川地震中的应用及建议[J].航天器工程,2008,17(4):6-13. [6] 李罡,王志明,吕晶.卫星导航技术专题讲座(二)第3讲 我国卫星导航定位系统简介[J].军事通信技术,2009,30(4):94-97. [7] 吕伟,朱建军.北斗卫星导航定位系统发展综述[J].地矿测绘,2007,23(3):29-32. [8] 张东,王志良,孟谦.基于北斗卫星技术的交通服务系统[J].微计算机信息,2005,21(2):186-189. [9] 成方林,张翼飞,刘佳佳.基于“北斗卫星”卫星导航系统的长报文通信协议[J].海洋技术,2008,27(1):26-28. [10] 冉令辉.全球空间信息剖分编码模型研究[D].北京:北京大学,2008. [11] 万元嵬. 影像数据剖分金字塔结构研究[D].北京:北京大学, 2009. [12] 程承旗,张恩东,万元嵬,等.遥感影像剖分金字塔研究[J].地理与地理信息科学,2010,26(1):19-23. [13] 赵冬青,吕志平,张西光,等.基于北斗的大地测量一体化生产系统研究[J].测绘通报,2009(3):1-4. [14] 朱永辉,白征东,过静珺,等.基于北斗一号的地质灾害自动监测系统[J].测绘通报,2010(2):5-7.四、关键技术和设计流程
1. 数据包丢失检测和重传技术
2. 设计流程
五、实例应用
六、结束语