- 相關(guān)推薦
GPS定位數(shù)據(jù)壓縮算法的設(shè)計(jì)與實(shí)現(xiàn)
摘要:為了解決嵌入式GPS車載系統(tǒng)存儲(chǔ)空間小、GPS定位數(shù)據(jù)量大的矛盾,根據(jù)GPS定位數(shù)據(jù)的特點(diǎn),提出了專用于GPS定全數(shù)據(jù)壓縮的改進(jìn)型半字節(jié)壓縮算法。該算法是一種在原半字節(jié)壓縮算法的基礎(chǔ)上改進(jìn)的算法,經(jīng)過實(shí)際測試,壓縮比可達(dá)50%。若將壓縮預(yù)處理也折算法在內(nèi),總壓縮比可達(dá)80%以上,為車載系統(tǒng)節(jié)省了大量的存儲(chǔ)資源。除此之外,也縮短了GSM信道的占用時(shí)間,大大地緩解了向控制調(diào)度中心上傳數(shù)據(jù)的壓力。嵌入式GPS車載系統(tǒng)般體積較小,無存儲(chǔ)量大的硬盤等設(shè)備,系統(tǒng)程序、應(yīng)用程序一般裝在FLASH或ROM中。由于FLASH或ROM等存儲(chǔ)介質(zhì)的價(jià)格相對臺式機(jī)上廣泛使用的硬盤、光盤等來說是非常昂貴的,因此,在開發(fā)嵌入式系統(tǒng)的軟件產(chǎn)品時(shí)必須將軟件所占的存儲(chǔ)空間限制在一定的范圍內(nèi)。
在GPS車載系統(tǒng)的研發(fā)過程中,主要需解決的問題是:車載系統(tǒng)為了實(shí)現(xiàn)自導(dǎo)航,必須存儲(chǔ)大量的GPS定位數(shù)據(jù)(每天需要存儲(chǔ)約6MB);其二是這些數(shù)據(jù)還要通過GSM信道上傳到控制調(diào)度中心(若通過短信業(yè)務(wù)發(fā)送,每次160B,則需要每分上傳6次)。無疑,數(shù)據(jù)壓縮是在不增加硬件成本的前提下,從軟件的角度來充分發(fā)揮系統(tǒng)現(xiàn)有資源的有效辦法。
數(shù)據(jù)壓縮方法種類繁多,可以分為無損壓縮和有損壓縮兩大類。無損壓縮利用數(shù)據(jù)的統(tǒng)計(jì)冗余進(jìn)行壓縮。數(shù)據(jù)統(tǒng)計(jì)冗余度的理論限制,般為2:1到5:1。這類方法廣泛用于文本數(shù)據(jù)、程序和特殊應(yīng)用場合的圖像數(shù)據(jù)(如指紋圖像、醫(yī)學(xué)圖像等)的壓縮。有損壓縮方法利用了人類視覺對圖像中的某些頻率成分不敏感的特性,允許壓縮過程中的損失一定的信息。雖然不能完全恢復(fù)原始數(shù)據(jù),但是所損失的部分對理解原始圖像的影響較小,卻換來了大得多的壓縮比。有損壓縮廣泛應(yīng)用于語音、圖像和視頻數(shù)據(jù)的壓縮。
目前現(xiàn)在的壓縮算法很多,但不能直接用于嵌入式系統(tǒng)當(dāng)中,這完全由嵌入式系統(tǒng)的特點(diǎn)所決定。首先,用于嵌入式系統(tǒng)的數(shù)據(jù)壓縮方法應(yīng)是無損壓縮方法。其次,壓縮代碼和解碼所需的信息代碼必須足夠短,否則就會(huì)失去壓縮的意義。還有,嵌入式系統(tǒng)的數(shù)據(jù)壓縮必須結(jié)合具體的數(shù)據(jù)格式的特點(diǎn),才能進(jìn)一步提高數(shù)據(jù)的壓縮比。除此之外,目前的壓縮程序的啟動(dòng)執(zhí)行必須人為干擾,不能自動(dòng)執(zhí)行,因?yàn)樗鼈兪菫槲募到y(tǒng)設(shè)計(jì)的,而嵌入式系統(tǒng)的數(shù)據(jù)壓縮必須能夠自動(dòng)執(zhí)行。
1 GPS數(shù)據(jù)格式
GPS OEM板由變頻器、信號通道、微處理器和存儲(chǔ)單元等組成。GPS OEM板的型號甚多,性能各異,但大多采用美國國家海洋電子協(xié)會(huì)制定的NMEA-0183通信標(biāo)準(zhǔn)格式。本系統(tǒng)選擇的是美國SiRF公司的SiRFstarII OEM板。SiRFstarII OEM板語句的輸入、輸出是通過RS232串行接口完成的,其通信端口的數(shù)據(jù)格式應(yīng)該設(shè)置為8個(gè)數(shù)據(jù)位、1個(gè)起始位和1個(gè)停止位,校驗(yàn)方式選為無奇偶校驗(yàn),波特率設(shè)置為4800波特。NMEA-0183通信標(biāo)準(zhǔn)的輸出數(shù)據(jù)采用的是ASCII碼,其內(nèi)容包含了緯度、經(jīng)度、高度、速度、日期、時(shí)間、航向以及衛(wèi)星狀況等信息,語句有六種,包括GGA,GLL、GSA、GSV、RMC和VTG。對于不同的用途,選用的語句記錄也不同,例如嵌入式GPS車載系統(tǒng)的使用者只關(guān)心其日期和時(shí)間、糾度、面速度信息,因而可以只選用RMC記錄語句。一條$GPRMC語句包括13個(gè)記錄:語句標(biāo)識頭、世界時(shí)間、定位狀態(tài)、緯度、緯度方位、經(jīng)度、經(jīng)度方位、地面速度、地面路線、日期、磁偏角、校驗(yàn)和和結(jié)束標(biāo)記,它一共占用70個(gè)字節(jié)(其中還包括用于分隔記錄所使用的11個(gè)逗號),例如:
$GPRMC,121530.998,A,4000.0162,N,11619.5476,E,0.00,240.81,160102,,*3B
由此可見,從SiRFstarII OEM板接收下來的數(shù)據(jù)流是文本字符串,根據(jù)GPS數(shù)據(jù)格式的特點(diǎn),本設(shè)計(jì)中擬采用半字節(jié)法完成壓縮及解壓縮的任務(wù)。該方法屬于無損壓縮技術(shù),其原理是去除字節(jié)中的冗余位,從而達(dá)到壓縮目的。然而,這種方法只適用于純數(shù)字文本文件的壓縮,顯然GPS定位數(shù)據(jù)并不是純數(shù)字的,還必須在壓縮前進(jìn)行一下壓縮預(yù)處理,最后再利用半字節(jié)壓縮算法完成數(shù)據(jù)的壓縮。
2 壓縮預(yù)處理
仔細(xì)觀察以上各段數(shù)據(jù)記錄,可以發(fā)現(xiàn)語句之間的數(shù)據(jù)段還存在很多冗余。除此之外,這些記錄中所含的信息既有英文字符又有數(shù)字,為了后續(xù)的壓縮,對語句中的各個(gè)記錄應(yīng)做如下的預(yù)處理:
①語句標(biāo)識頭(ID):因?yàn)槊總(gè)語句的標(biāo)識頭都一樣,所以該記錄段屬地冗余信息,完全可以去除,在解壓縮時(shí)再在每個(gè)語句前加上該標(biāo)識頭即可。
②世界時(shí)間(UTC):該信息段以時(shí)、分、秒、毫秒的格式指示出當(dāng)時(shí)世界時(shí)間。轉(zhuǎn)換為北京時(shí)間還需要再加上8小時(shí)。由于車載系統(tǒng)的定位數(shù)據(jù)的采集是以秒為單位的,所以毫秒量級的數(shù)據(jù)對本系統(tǒng)根本無用,是冗余信息,由于世界時(shí)間是按秒增1,定位數(shù)據(jù)也是每委員長更新一次,所以世界時(shí)間可以在程序的一開始采集記錄一下,在解壓縮時(shí)根據(jù)語句的指針值再加上起始時(shí)間便可以復(fù)原,因此該記錄段在第一次存儲(chǔ)后,以后的語句中的該信息全都是冗余信息。
③定位狀態(tài)(A/V):占用1個(gè)字節(jié),不進(jìn)行預(yù)處理。由于車載系統(tǒng)處于的地方有可能收不到衛(wèi)星信號(如隧道中),致使定位信息無效,因此盡管該字段發(fā)生變化的概率較小,又與其它信息段不相關(guān),在此仍不能做預(yù)處理。
④緯度:占用9個(gè)字節(jié),不進(jìn)行預(yù)處理。
⑤緯度:占用10個(gè)字節(jié),不進(jìn)行預(yù)處理
【GPS定位數(shù)據(jù)壓縮算法的設(shè)計(jì)與實(shí)現(xiàn)】相關(guān)文章:
GPS定位系統(tǒng)機(jī)器功能的實(shí)現(xiàn)(一)03-07
圖像拼接算法及實(shí)現(xiàn)03-03
FFT算法的研究與DSP實(shí)現(xiàn)03-07
基于小波分析與RLS算法的復(fù)雜光譜數(shù)據(jù)壓縮03-07
光學(xué)遙感圖像多目標(biāo)檢測及識別算法設(shè)計(jì)與實(shí)現(xiàn)03-17