用於車聯網的三級數據壓縮裝置及其方法與流程
2023-06-10 04:21:26 2
本發明涉及一種用於車聯網的數據壓縮裝置及其方法,屬於數據處理
技術領域:
。
背景技術:
:車聯網一般由車載終端和管理網站兩部分組成,車載終端通過CAN總線與硬線等與發動機、車身電氣電路等進行信息互聯,可以採集車輛、道路和環境相關數據,通過無線傳輸技術,車載終端將採集到的信息上傳到管理網站。管理網站對採集到的信息進行加工、計算、共享和安全發布,可以根據不同的功能需求對車輛進行有效的引導與監管,以及提供專業的多媒體與移動網際網路應用服務。由於目前車聯網處於初期應用階段,車載終端周期性上報給管理網站的信號種類少,數據量比較小,所以車載終端較少考慮對於採集數據的壓縮處理,《道路運輸車輛衛星定位系統終端通訊協議及數據格式》(JT/T808,後文簡稱808協議)中消息格式的定義也證實這一點,其消息格式都是格式化的,每個欄位都有獨立的含義,而且每個欄位的長度都按照可能使用的最大長度來定義。雖然808協議前瞻性的定義了數據壓縮上報消息(消息ID:0x0901),即採用GZIP壓縮算法壓縮較長消息,但是目前暫時還沒有終端支持。隨著車聯網應用的深入,車載終端周期性上報給管理網站的信號種類將越來越多,數據量也將急劇增加,而無線網絡傳輸的速率是有限的,而且目前運營商的收費是與傳輸的數據流量相關聯的,因此車載終端加強數據壓縮的處理則是必然趨勢。技術實現要素:本發明所要解決的技術問題是提供一種用於車聯網的三級數據壓縮裝置及其方法,對於車載終端周期性上報給管理網站的整車網絡採集數據,採用該三級數據壓縮方法壓縮後,再上傳給管理網站,接收到壓縮數據後,管理網站使用對應的步驟解壓恢復出原始數據,再存儲到資料庫中。採用該三級數據壓縮方法,可以減小車載終端和管理網站之間無線傳輸的數據量,減少信道佔用時間,提高終端和管理網站的交互效率,也降低流量費用。本發明提供的用於車聯網的三級數據壓縮裝置及其方法,技術方案如下:一種用於車聯網的三級數據壓縮裝置,其特徵在於,數據壓縮裝置接收來自整車的網絡採集數據,經處理後發送給管理網站,數據壓縮裝置包括依次連接的數據過濾模塊、數據存儲優化模塊、通用無損壓縮模塊,其中:數據過濾模塊,將信號分為開關量/枚舉量一類,模擬量為另一類,分別進行數據過濾;數據存儲優化模塊,對分類後的數據分別進行時間的存儲優化和模擬量數值的存儲優化;通用無損壓縮模塊,使用通用的無損數據壓縮算法對經過數據存儲優化的數據進行壓縮。進一步地,所述的用於車聯網的三級數據壓縮裝置裝載在車載終端上;所述的數據存儲優化模塊包括緩存模塊,緩存模塊先將優化過的數據進行存儲,當達到設定的壓縮周期時,一起打包發送給通用無損壓縮模塊進行壓縮。進一步地,管理網站設有數據解壓縮裝置,數據解壓縮裝置包括依次連接的以下模塊:通用無損解壓縮模塊、數據恢復模塊,其中:通用無損解壓縮模塊,用與數據壓縮裝置相同的通用無損壓縮算法對消息體進行解壓縮;數據恢復模塊,將經過存儲優化的信息進行恢復。進一步地,所述的數據過濾裝置包括信號類型分類模塊、開關量和枚舉量過濾模塊、模擬量過濾模塊:信號類型分類模塊根據數據類型將數據分為開關量和枚舉量、模擬量兩種,並分別連接不同的過濾模塊進行過濾;開關量和枚舉量過濾模塊在數據值只有在發生變化時才處理保存,並保存數據變化的時間和變化後的數值,否則,數據將被丟棄;模擬量過濾模塊,對於每種信號,設定其向管理網站上報的周期,在這樣一個周期內採集的數據,只採樣保存一個數據值。進一步地,所述的數據存儲優化模塊,包括時間存儲優化模塊、開關量和枚舉量存儲優化模塊、模擬量存儲優化模塊,根據數據類型不同而連接不同的模塊,時間存儲優化模塊,對於時間的存儲優化,每個三級數據壓縮周期內,只完整記錄周期的起始時間為基準時間,其他的時間都只記錄與該基準時間的時間差,用 一個字節存放;開關量和枚舉量存儲優化模塊,對於開關量和枚舉量的時間,每一個數值對應記錄一個時間差;模擬量存儲優化模塊,對於模擬量的時間只記錄第一個採樣數據對應的時間差;對於模擬量數據值的存儲優化,通過基準值和差值的方式進行,差值的參考標準為所有數值中的最小值,把最小值定義為基準值,其他數值僅記錄與該基準值的差值,差值所佔存儲大小由最大差值來確定。一種用於車聯網的三級數據壓縮方法,其特徵在於,車載終端定義一個三級數據壓縮周期,在每個周期內對整車網絡採集的數據,均採用如下三個步驟對數據進行三級壓縮處理後再封裝上報給管理網站:壓縮步驟一:數據過濾,根據信號類型將信號分為開關量,枚舉量和模擬量三類,分別進行數據過濾;壓縮步驟二:數據存儲優化,包括時間的存儲優化和模擬量數值的存儲優化;壓縮步驟三:通用無損壓縮,使用通用無損數據壓縮算法對經過數據存儲優化的數據進行壓縮。進一步地,壓縮步驟一中的數據過濾方法具體為:對於開關量和枚舉量,數據過濾方法為:數據值只有在發生變化時才處理保存,保存數據變化的時間和變化後的數值,否則,數據將被丟棄;而對於模擬量,對於每種信號,設定其向管理網站上報的周期,在這樣一個周期內採集的數據,只採樣保存一個數據值。進一步地,壓縮步驟二中的數據存儲優化方法具體為:對於時間的存儲優化,每個三級數據壓縮周期內,只完整記錄周期的起始時間為基準時間,其他的時間都只記錄與該基準時間的時間差,用一個字節存放;對於開關量和枚舉量,每一個數值對應記錄一個時間差,而對於模擬量,由於採樣周期固定,只記錄第一個採樣數據對應的時間差;對於模擬量數據值的存儲優化,通過基準值和差值的方式進行,差值所佔存儲大小由最大差值來確定;壓縮步驟一與壓縮步驟二是實時進行的,在所述的壓縮步驟三中,數據是積累到一定時間進行一次壓縮,在壓縮步驟二中或在壓縮步驟二與壓縮步驟三的數據傳輸中間有一個緩存。進一步地,所述的模擬量數值的存儲優化,是通過存儲差值的方法,差值的參 考標準為所有數值中的最小值,把這個最小值定義為基準值,其他數值僅記錄與該基準值的差值,模擬量的基準值採用四字節存儲,而差值的數據類型則根據差值的最大值來選擇長度儘量短的數據類型進行存儲;差值的數據類型,限定存儲為一字節、兩字節或者四字節數據,即差值最大值小於等於一字節取值範圍的,統一使用一字節存儲,差值最大值大於一字節取值範圍,又小於等於兩字節取值範圍的,統一使用兩字節存儲,差值最大值大於兩字節取值範圍的,統一使用四字節存儲。進一步地,管理網站接收到擴展的數據壓縮消息後,採取如下步驟對數據進行解壓恢復處理:解壓步驟一:通用無損解壓縮,用與車載終端相同的通用無損壓縮算法對消息體進行解壓縮。解壓步驟二:數據恢復,將經過存儲優化的信息進行恢復。下面結合
發明內容與原理進一步說明:車載終端定義一個三級數據壓縮周期(如15秒),在每個周期內對整車網絡採集的數據,採用如下三個步驟對數據進行三級壓縮處理後再封裝上報給管理網站:步驟一:數據過濾。根據信號類型將信號分為開關量/枚舉量和模擬量三類,分別進行數據過濾。對於開關量和枚舉量,由於信號的數據值是跳變的,取值個數是有限的,而且在實際運行過程中,開關量和枚舉量的數值一般不會頻繁變化,在某些時間段內狀態不發生變化,因此對於開關量和枚舉量的數據過濾方法為:數據值只有在發生變化時才處理保存,保存數據變化的時間和變化後的數值,否則,數據將被丟棄。而對於模擬量,對於每種信號,設定其向管理網站上報的周期,在這樣一個周期內採集的數據,只採樣保存一個數據值。步驟二:數據存儲優化經過數據過濾之後,在一個三級數據壓縮周期內,對於開關量和枚舉量,保存下來的是數值變化時的時間和數值,而對於模擬量,保存下來的是過濾後的N個採樣時間及第一個採樣值對應的時間。考慮到數據的實時性要求,車載終端定義的三級數據壓縮周期一般都在秒級(如15秒),所以在一個三級數據壓縮周期內,各個採樣時間的變化主要是秒數的變化,而808協議中規定的時間的格式統一為YY-MM-DD-hh-mm-ss(GMT+8時間),精確到秒,採用BCD[6](6位元組的8421碼)數據類型存放,各個時間中的冗餘信息 較多,所以數據存儲優化的第一個優化點在於時間的存儲優化,對於某個三級數據壓縮周期,只需要完整記錄周期的起始時間為基準時間,其他的時間都只記錄與該基準時間的時間差,用一個字節存放即可。對於開關量,數值的變化周期不固定,所以每個採樣都需要記錄一個時間差,而對於模擬量,由於採樣周期固定,所以只需要記錄第一個採樣數據採集時間的時間差即可,後續採樣數據的採集時間,在管理網站上根據第一個採樣數據採集時間的時間差和採樣周期恢復即可。數據存儲優化的第二個優化點在於模擬量數值的存儲優化,也是通過存儲差值的方法,不過差值的參考標準為所有數值中的最小值,把這個最下值定義為基準值,其他數值僅記錄與該基準值的差值,為了降低算法的複雜度,不論模擬量的數值長度定義為幾個比特(當前最大為32比特),所有模擬量的基準值都採用四字節存儲,而差值的數據類型則根據差值的最大值來選擇長度儘量短的數據類型進行存儲。考慮到效率,差值的數據類型,限定為存儲為一字節、兩字節或者四字節數據,即差值最大值小於等於一字節取值範圍的,統一使用一字節存儲,差值最大值大於一字節取值範圍,又小於等於兩字節取值範圍的,統一使用兩字節存儲,差值最大值大於兩字節取值範圍的,統一使用四字節存儲。如車速是一個32比特的信號,每一個採樣值需要佔用四個字節,如果在某個三級數據壓縮周期內,車速的最大差值不超過一個字節的取值範圍,則該周期內其差值就只用一個字節存儲即可。步驟三:通用無損壓縮使用通用無損數據壓縮算法對經過數據存儲優化的數據進行壓縮,由於終端系統資源差別很大,這裡不限定特定的壓縮算法,對於資源充足的終端系統,可以採用壓縮比更大,但是資源開銷相對也比較大的壓縮算法。車載終端通過無線傳輸將擴展的數據壓縮消息直接傳送給管理網站,管理網站接收到擴展的數據壓縮消息後,先解析擴展的數據壓縮消息,再使用與車載終端相同的通用無損壓縮算法對消息體進行解壓縮,然後將經過存儲優化的信息進行恢復,最後將數據存儲到資料庫即可。本發明提供的適用於車聯網的三級數據壓縮方法,有益效果在於:與不進行壓縮與解壓縮處理的數據傳輸相比,採用本發明的該種三級壓縮算法,減少了無線數據傳輸的流量,減少信道佔用時間,提高終端和管理網站的交互效率,也降低流量費用。單純從壓縮效率考察,該方法並不一定是最佳的壓縮方法,因為數據存儲優化部分並沒有做到極限(差值長度沒有精確到比特),而步驟三的通用無 損壓縮也並沒有限定特定的無損壓縮算法,而不同的壓縮算法壓縮比是不同的,但是從系統總體需求考慮,通過合理選擇步驟三的無損壓縮算法,該三級數據壓縮方法能夠在壓縮效率和執行速度這兩個方面取得一個較好的折中,因此在車聯網領域能夠廣泛適用。附圖說明圖1是本發明的三級數據壓縮裝置的一個實施例的結構圖;圖2是本發明的開關量的數據過濾方法圖;圖3是本發明的枚舉量的數據過濾方法圖;圖4是本發明的模擬量的數據過濾方法圖;圖5是本發明的三級數據壓縮裝置的一個實施例的部分架構圖。具體實施方式以下將結合附圖和實施例對本發明進行詳細描述。圖1是本發明的三級數據壓縮裝置的一個實施例的結構圖。車載終端定義一個三級數據壓縮周期(如15秒),在每個周期內對整車網絡採集的數據,採用如下四個步驟對數據進行三級壓縮處理後再封裝上報給管理網站:步驟一:數據過濾。根據信號類型將信號分為開關量,枚舉量和模擬量三類,分別進行數據過濾。對於開關量和枚舉量,由於信號的數據值是跳變的,取值個數是有限的,而且在實際運行過程中,開關量和枚舉量的數值一般不會頻繁變化,在某些時間段內狀態不發生變化,因此對於開關量和枚舉量的數據過濾方法為:數據值只有在發生變化時才處理保存,保存數據變化的時間和變化後的數值,否則,數據將被丟棄。圖2為開關量的數據過濾方法,如圖2所示,時間點t0,t1,t2,t3,t4,t5,t6分別對應著開關量值1,0,0,1,1,0,0,根據只保存發生變化時的值的原則,提取t0,t1,t3,t5時刻的關鍵數據點保存,而t2,t4,t6時刻的數據值丟棄不保存。類似的,圖3為枚舉量的數據過濾方法,圖3中的枚舉量取值範圍為{0,3},t0,t1,t2,t3,t4,t5,t6分別對應著開關量值1,2,2,3,0,0,0,根據只保存發生變化時的值的原則,提取t0,t1,t3,t4時刻的關鍵數據點保存,而t2,t5,t6時刻的數據值丟棄不保存。而對於模擬量,對於每種信號,設定其向管理網站上報的周期,在這樣一個周期內採集的數據,只採樣保存一個數據值。如圖4所示,假設車速信號上報給車載終端的周期為100毫秒,而設定其向管理網站上報的周期為2秒,則對車速的數據過濾方法為,每輸入20個數據值In1,In2,In3...In20,只輸出一個平均值Out1進行保存處理。考慮到系統的可擴展性,每種信號向管理網站上報的周期設計為可變的,管理網站可以通過管理報文給終端下發指令修改指定信號(或多個信號)的上報周期。步驟二:數據存儲優化經過數據過濾之後,在一個三級數據壓縮周期內,對於開關量和枚舉量,保存下來的是數值變化時的時間和數值,而對於模擬量,保存下來的是過濾後的N個採樣時間和採樣值。考慮到數據的實時性要求,車載終端定義的三級數據壓縮周期一般都在秒級,所以在一個三級數據壓縮周期內,各個採樣時間的變化主要是秒數的變化,所以數據存儲優化的第一個優化點在於時間的存儲優化,對於某個三級數據壓縮周期,只需要完整記錄周期的起始時間為基準時間,精確到秒,其他的時間都只記錄與該基準時間的時間差,用一個字節存放即可。對於開關量,數值的變化周期不固定,所以每個採樣都需要記錄一個時間差,而對於模擬量,由於採樣周期固定,所以只需要記錄第一個採樣數據採集時間的時間差即可,後續採樣數據的採集時間,在管理網站上根據第一個採樣數據採集時間的時間差和採樣周期恢復即可。數據存儲優化的第二個優化點在於模擬量數值的存儲優化,也是通過存儲差值的方法,不過差值的參考標準為所有數值中的最小值,把這個最小值定義為基準值,其他數值僅記錄與該基準值的差值,為了降低算法的複雜度,不論模擬量的數值長度定義為幾個比特(當前最大為32比特),所有模擬量的基準值都採用四字節存儲,而差值的數據類型則根據差值的最大值來選擇長度儘量短的數據類型進行存儲。考慮到效率,差值的數據類型,限定為存儲為一字節、兩字節或者四字節數據,即差值最大值小於等於一字節取值範圍的,統一使用一字節存儲,差值最大值大於一字節取值範圍,又小於等於兩字節取值範圍的,統一使用兩字節存儲,差值最大值大於兩字節取值範圍的,統一使用四字節存儲。如車速是一個32比特的信號,每一個採樣值需要佔用四個字節,如果在某個三級數據壓縮周期內,車速的最大差值不超過一個字節的取值範圍,則該周期內其差值就只用一個字節存儲即可。一個三級數據壓縮周期超時時,將啟動數據的存儲優化,首先記錄基準時間,然後分別對各種信號進行數據存儲優化處理。對於各種模擬量信號,如表1所示記錄:信號編號ID、採樣個數n、第一個採樣時間差△T1、採樣周期T,差值長度(字節數)△VLen、基準值V、第一個採樣值差值△V1...第n個採樣值差值△Vn。表1:模擬量信號的數據存儲優化結果IDn△T1T△VLenV△V1△V2...△Vn對於各種開關量和枚舉量,如表2所示記錄信號編號ID、採樣個數n、第一個採集時間差△T1、第一個數據值V1...第n個採集時間差△Tn、第n個數據值Vn。表2:開關量和枚舉量信號的數據存儲優化結果IDn△T1V1△T2V2...△TnVn步驟三:通用無損壓縮使用通用無損數據壓縮算法對經過數據存儲優化的數據進行壓縮,由於終端系統資源差別很大,這裡不限定特定的壓縮算法,對於資源充足的終端系統,可以採用壓縮比更大,但是資源開銷相對比較大的壓縮算法。在以上的步驟中,壓縮步驟一與壓縮步驟二是實時進行的,在所述的壓縮步驟三中,數據是積累到一定時間進行一次壓縮,在壓縮步驟二中或在壓縮步驟二與壓縮步驟三的數據傳輸中間有一個緩存封裝擴展壓縮消息,由於808協議定義的數據壓縮上報消息限定了壓縮算法為GZIP壓縮算法,而本發明中步驟三中使用的通用無損壓縮算法並沒有限定,所以本發明可以擴展新的消息類型用於發送經過三級壓縮處理的數據。考慮到一個車聯網管理網站可能和多種終端對接,所以擴展壓縮消息頭中需要定義一個壓縮算法類型欄位,用於記錄車載終端所使用的無損壓縮算法的類型。擴展的數據壓縮報文格式如表3所示,經過三級壓縮處理得到的壓縮數據為消息體,消息頭中除了消息ID和消息體的長度欄位,為了方便管理網站解壓縮,記錄了一個消息體壓縮前長度和壓縮算法類型,另外為了增加壓縮數據的安全性,還需要對消息體進行校驗,並且在消息頭中記錄消息體校驗值,擴展的數據壓縮報文消息如表3所示:表3:擴展的數據壓縮報文格式消息ID消息體長度消息體壓縮前長度壓縮算法類型消息體校驗值消息體車載終端通過無線傳輸將擴展的數據壓縮消息直接傳送給管理網站,管理網站接收到擴展的數據壓縮消息後,如圖1,先根據消息頭的內容對消息體進行解析並進行合法性校驗,再使用與車載終端相同的通用無損壓縮算法對消息體進行解壓縮,然後根據時間差值恢復被存儲優化的時間信息,根據數據差值恢復被存儲優化的數據值,最後將恢復的數據存儲到資料庫即可。在一個具體實施例中,利用此方法形成的裝置為:用於車聯網的三級數據壓縮裝置,數據壓縮裝置接收來自整車的網絡採集數據經處理後發送給管理網站,數據壓縮裝置包括依次連接的數據過濾模塊、數據存儲優化模塊、通用無損壓縮模塊,其中:數據過濾模塊將信號分為開關量和枚舉量、模擬量二類,分別進行數據過濾;數據存儲優化模塊對分類後的數據均分別進行時間的存儲優化和模擬量數值的存儲優化;通用無損壓縮模塊對優化後的數據使用通用的無損數據壓縮算法對經過數據存儲優化的數據進行壓縮;在本實施例中,三級數據壓縮裝置裝載在車載終端上,在其他的實施例中,可以裝載在其他終端上;數據存儲優化模塊包括緩存模塊,緩存模塊先將優化過的數據進行存儲,當達到設定的壓縮周期時,一起打包發送給通用無損壓縮模塊進行壓縮。數據過濾裝置包括信號類型分類模塊、開關量和枚舉量過濾模塊、模擬量過濾模塊:信號類型分類模塊根據數據類型將數據分為開關量和枚舉量、模擬量兩種,並分別連接不同的過濾模塊進行過濾;開關量和枚舉量過濾模塊在數據值只有在發生變化時才處理保存,並保存數據變化的時間和變化後的數值,否則,數據將被丟棄;模擬量過濾模塊,對於每種信號,設定其向管理網站上報的周期,在這樣一個周期內採集的數據,只採樣保存一個數據值。數據存儲優化模塊,包括時間存儲優化模塊、開關量和枚舉量存儲優化模塊、模擬量存儲優化模塊,根據數據類型不同而連接不同的模塊,時間存儲優化模塊,對於時間的存儲優化,每個三級數據壓縮周期內,只完整記錄周期的起始時間為基 準時間,其他的時間都只記錄與該基準時間的時間差,用一個字節存放;開關量和枚舉量存儲優化模塊,對於開關量和枚舉量的時間,每一個數值對應記錄一個時間差;模擬量存儲優化模塊,對於模擬量的時間只記錄第一個採樣數據對應的時間差;對於模擬量數據值的存儲優化,通過基準值和差值的方式進行,差值的參考標準為所有數值中的最小值,把最小值定義為基準值,其他數值僅記錄與該基準值的差值,差值所佔存儲大小由最大差值來確定。車載終端定義一個三級數據壓縮周期,如15秒,數據經過數據壓縮裝置的時間在每個三級數據壓縮周期內。壓縮後的數據可使用JT/T808標準所規定的協議,以擴展數據類型進行傳輸。相應地,管理網站設有數據解壓縮裝置,數據解壓縮裝置包括依次連接的以下模塊:通用無損解壓縮模塊、數據恢復模塊,其中:通用無損解壓縮模塊,用與數據壓縮裝置相同的通用無損壓縮算法對消息體進行解壓縮;數據恢復模塊,將經過存儲優化的信息進行恢復。最後應當說明的是:以上實施例僅用以說明本案的技術方案而非對其限制;儘管參照較佳實施例對本案進行了詳細的說明,所屬領域的普通技術人員應當理解:依然可以對本案的具體實施方式進行修改或者對部分技術特徵進行等同替換;而不脫離本案技術方案的精神,其均應涵蓋在本案請求保護的技術方案範圍當中。當前第1頁1 2 3