Chinaunix首页 | 论坛 | 博客
  • 博客访问: 668728
  • 博文数量: 845
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:22
文章分类

全部博文(845)

文章存档

2011年(1)

2008年(844)

我的朋友

分类:

2008-10-15 16:29:33

          编者按:为了解决GPS车载系统空间小、GPS定位数据量大的矛盾,根据GPS定位数据的特点,提出了专用于GPS定全数据压缩的改进型半字节压缩算法。该算法是一种在原半字节压缩算法的基础上改进的算法,经过实际,压缩比可达50%。若将压缩预处理也折算法在内,总压缩比可达80%以上,为车载系统节省了大量的资源。除此之外,也缩短了GSM信道的占用时间,大大地缓解了向控制调度中心上传数据的压力。

GPS车载系统般体积较小,无存储量大的硬盘等设备,系统程序、应用程序一般装在FLASH或ROM中。由于FLASH或ROM等存储介质的价格相对台式机上广泛使用的硬盘、光盘等来说是非常昂贵的,因此,在开发嵌入式系统的软件产品时必须将软件所占的存储空间限制在一定的范围内。

在GPS车载系统的研发过程中,主要需解决的问题是:车载系统为了实现自导航,必须存储大量的GPS定位数据(每天需要存储约6MB);其二是这些数据还要通过GSM信道上传到控制调度中心(若通过短信业务发送,每次160B,则需要每分上传6次)。无疑,数据压缩是在不增加硬件成本的前提下,从软件的角度来充分发挥系统现有资源的有效办法。

数据压缩方法种类繁多,可以分为无损压缩和有损压缩两大类。无损压缩利用数据的统计冗余进行压缩。数据统计冗余度的理论限制,般为2:1到5:1。这类方法广泛用于文本数据、程序和特殊应用场合的图像数据(如指纹图像、医学图像等)的压缩。有损压缩方法利用了人类视觉对图像中的某些频率成分不敏感的特性,允许压缩过程中的损失一定的信息。虽然不能完全恢复原始数据,但是所损失的部分对理解原始图像的影响较小,却换来了大得多的压缩比。有损压缩广泛应用于语音、图像和视频数据的压缩。

目前现在的压缩算法很多,但不能直接用于嵌入式系统当中,这完全由嵌入式系统的特点所决定。首先,用于嵌入式系统的数据压缩方法应是无损压缩方法。其次,压缩代码和解码所需的信息代码必须足够短,否则就会失去压缩的意义。还有,嵌入式系统的数据压缩必须结合具体的数据格式的特点,才能进一步提高数据的压缩比。除此之外,目前的压缩程序的启动执行必须人为干扰,不能自动执行,因为它们是为文件系统设计的,而嵌入式系统的数据压缩必须能够自动执行。

1 GPS数据格式

GPS OEM板由变频器、信号通道、微处理器和存储单元等组成。GPS OEM板的型号甚多,性能各异,但大多采用美国国家海洋电子协会制定的NMEA-0183通信标准格式。本系统选择的是美国SiRF公司的SiRFstarII OEM板。SiRFstarII OEM板语句的输入、输出是通过RS232串行接口完成的,其通信端口的数据格式应该设置为8个数据位、1个起始位和1个停止位,校验方式选为无奇偶校验,波特率设置为4800波特。NMEA-0183通信标准的输出数据采用的是ASCII码,其内容包含了纬度、经度、高度、速度、日期、时间、航向以及卫星状况等信息,语句有六种,包括GGA,GLL、GSA、GSV、RMC和VTG。对于不同的用途,选用的语句记录也不同,例如嵌入式GPS车载系统的使用者只关心其日期和时间、纠度、面速度信息,因而可以只选用RMC记录语句。一条$GPRMC语句包括13个记录:语句标识头、世界时间、定位状态、纬度、纬度方位、经度、经度方位、地面速度、地面路线、日期、磁偏角、校验和和结束标记,它一共占用70个字节(其中还包括用于分隔记录所使用的11个逗号),例如:

$GPRMC,121530.998,A,4000.0162,N,11619.5476,E,0.00,240.81,160102,,*3B

由此可见,从SiRFstarII OEM板接收下来的数据流是文本字符串,根据GPS数据格式的特点,本设计中拟采用半字节法完成压缩及解压缩的任务。该方法属于无损压缩技术,其原理是去除字节中的冗余位,从而达到压缩目的。然而,这种方法只适用于纯数字文本文件的压缩,显然GPS定位数据并不是纯数字的,还必须在压缩前进行一下压缩预处理,最后再利用半字节压缩算法完成数据的压缩。

2 压缩预处理

仔细观察以上各段数据记录,可以发现语句之间的数据段还存在很多冗余。除此之外,这些记录中所含的信息既有英文字符又有数字,为了后续的压缩,对语句中的各个记录应做如下的预处理:

①语句标识头(ID):因为每个语句的标识头都一样,所以该记录段属地冗余信息,完全可以去除,在解压缩时再在每个语句前加上该标识头即可。


   ②世界时间(UTC):该信息段以时、分、秒、毫秒的格式指示出当时世界时间。转换为北京时间还需要再加上8小时。由于车载系统的定位数据的采集是以秒为单位的,所以毫秒量级的数据对本系统根本无用,是冗余信息,由于世界时间是按秒增1,定位数据也是每委员长更新一次,所以世界时间可以在程序的一开始采集记录一下,在解压缩时根据语句的指针值再加上起始时间便可以复原,因此该记录段在第一次存储后,以后的语句中的该信息全都是冗余信息。

③定位状态(A/V):占用1个字节,不进行预处理。由于车载系统处于的地方有可能收不到卫星信号(如隧道中),致使定位信息无效,因此尽管该字段发生变化的概率较小,又与其它信息段不相关,在此仍不能做预处理。

[1]   

【责编:Luzi】

--------------------next---------------------

阅读(351) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~