一種最大誤差可控的軌跡數(shù)據(jù)壓縮方法
【專利摘要】本發(fā)明屬于軌跡計(jì)算【技術(shù)領(lǐng)域】,具體為一種最大誤差可控的軌跡數(shù)據(jù)壓縮方法。本發(fā)明步驟包括:設(shè)定軌跡數(shù)據(jù)在壓縮后的最大誤差范圍;從待壓縮軌跡的當(dāng)前位置pi開始向后掃描下一個(gè)點(diǎn)pi+1,從pi對(duì)掃描的點(diǎn)的最大誤差范圍做角度范圍限制,用si+1表示;重復(fù)上一步驟,直到點(diǎn)pi+k。si+1,si+2,。。,si+k-1的交集不為空,并且si+1,si+2,。。,si+k-1,si+k的交集為空,即可用<pi,pi+k-1>表示子軌跡<pi,pi+1,。。,pi+k-1>,誤差在設(shè)定的最大范圍內(nèi);然后從pi+k-1開始,對(duì)軌跡中剩下的部分同上步驟進(jìn)行壓縮,直到軌跡中所有點(diǎn)掃描完畢。本發(fā)明方法降低了壓縮方法的時(shí)間復(fù)雜度,使得壓縮方法具有線性時(shí)間復(fù)雜度,即與軌跡點(diǎn)數(shù)同數(shù)量級(jí)。
【專利說明】一種最大誤差可控的軌跡數(shù)據(jù)壓縮方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于軌跡計(jì)算【技術(shù)領(lǐng)域】,具體涉及一種最大誤差可控的軌跡數(shù)據(jù)壓縮方法。
【背景技術(shù)】
[0002]軌跡計(jì)算是隨著GPS、北斗等用戶位置采集設(shè)備的普及和位置簽到等應(yīng)用的流行,進(jìn)而產(chǎn)生了大量用戶軌跡數(shù)據(jù)背景下興起的【技術(shù)領(lǐng)域】。軌跡計(jì)算領(lǐng)域的技術(shù)具有針對(duì)性強(qiáng)、實(shí)用性好的特點(diǎn)。具體到軌跡壓縮領(lǐng)域,軌跡壓縮技術(shù)相比于普適的數(shù)據(jù)壓縮技術(shù),能夠充分利用軌跡自身的特點(diǎn),壓縮效果好于普適的數(shù)據(jù)壓縮方法。通過軌跡壓縮計(jì)算能夠有效地降低計(jì)算機(jī)處理負(fù)載和數(shù)據(jù)存儲(chǔ)、傳輸開銷,提高服務(wù)速度和質(zhì)量。衡量軌跡壓縮技術(shù)的指標(biāo)主要有兩個(gè):
(1)壓縮比,指壓縮前的數(shù)據(jù)大小和壓縮后的數(shù)據(jù)大小的比。壓縮比越大,軌跡壓縮技術(shù)效果越好;
(2)壓縮時(shí)間,指從開始進(jìn)行軌跡壓縮到軌跡壓縮完成所花費(fèi)的時(shí)間。軌跡壓縮時(shí)間越短,表明軌跡壓縮的效率越高。
[0003]軌跡壓縮技術(shù)分為歐幾里得空間的軌跡壓縮技術(shù)和路網(wǎng)軌跡壓縮技術(shù)兩類:
Cl)歐幾里得空間的軌跡壓縮:
歐幾里得空間的軌跡壓縮技術(shù)針對(duì)歐幾里得空間軌跡,軌跡表示為經(jīng)緯度位置序列。這類軌跡壓縮技術(shù)主要采用計(jì)算幾何類方法。我們的發(fā)明屬于這類技術(shù)。
[0004]經(jīng)典的歐氏空間軌跡壓縮技術(shù)為開放窗口(Opening Window,0PW)方法,其中最常用的方法為前一開放窗口(Before Opening Window,B0PW)方法。圖1是BOPW方法的一個(gè)例子:預(yù)先設(shè)定一個(gè)誤差允許的上限,在這個(gè)例子中是一個(gè)歐幾里德距離,也即壓縮后的軌跡與壓縮前相比軌跡點(diǎn)首尾相連所構(gòu)成的折線的最大距離不超過所設(shè)定的誤差允許上限。在壓縮時(shí),從軌跡的起始點(diǎn)A7開始,依次向后掃描,并嘗試將之后若干個(gè)連續(xù)的軌跡點(diǎn)刪除,判斷壓縮是否滿足條件。首先嘗試刪除A,將&和&相連。判斷/7,距離辦-辦線段距離是否超過預(yù)設(shè)誤差限制。沒有超過,則繼續(xù)嘗試刪除辦,判斷a和辦距離線段辦-/7,的距離是否超過限制。由于依然沒有超過,則繼續(xù)嘗試刪除/V這時(shí)發(fā)現(xiàn)辦距離線段辦-內(nèi)的距離超過了設(shè)定的誤差上限,因此A不能被刪除,需要退回到A位置并從A開始重新進(jìn)行上述過程。這個(gè)過程持續(xù)到整個(gè)軌跡壓縮完畢。如例所示,最終軌跡壓縮結(jié)果為4,,P3,P6, P9, 。由于在這個(gè)過程中每個(gè)軌跡點(diǎn)被檢查是否距離壓縮后軌跡的距離是否超過誤差限制的次數(shù)與軌跡點(diǎn)點(diǎn)數(shù)級(jí)別相同,因此該方法的時(shí)間復(fù)雜度為軌跡點(diǎn)點(diǎn)數(shù)的平方級(jí)。
[0005]( 2 )路網(wǎng)軌跡壓縮技術(shù):
路網(wǎng)軌跡壓縮技術(shù)針對(duì)有路網(wǎng)情況下的軌跡壓縮,軌跡表示為路網(wǎng)中的路段序列。這類軌跡壓縮技術(shù)主要利用路網(wǎng)本身的信息和性質(zhì)進(jìn)行。
[0006]傳統(tǒng)的路網(wǎng)軌跡壓縮技術(shù)主要有兩種,一種是基于路網(wǎng)的街道信息,利用行人車輛傾向于沿著相同道路行走的特點(diǎn),對(duì)于軌跡道路序列只記錄其轉(zhuǎn)到另一條街道上的那條路段,從而達(dá)到減少存儲(chǔ)的數(shù)據(jù)量的壓縮目的。對(duì)于中間的路段,可以在需要時(shí)利用街道的路段序列進(jìn)行補(bǔ)全還原。另一種技術(shù)是僅利用路網(wǎng)本身的拓?fù)浣Y(jié)構(gòu),嘗試將道路序列中的一些子序列替換為經(jīng)過更少路段的子序列,并通過設(shè)定評(píng)價(jià)標(biāo)準(zhǔn)(如定義兩者的某些距離函數(shù))保證這種替換的結(jié)果與原始軌跡是近似的。顯然,這種技術(shù)進(jìn)行軌跡壓縮是有損壓縮,且壓縮后的軌跡無法完全復(fù)原。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的在于提出一種最大誤差可控的軌跡數(shù)據(jù)壓縮方法,通過計(jì)算角度范圍的方法降低壓縮方法的時(shí)間復(fù)雜度,使得壓縮方法具有線性時(shí)間復(fù)雜度,即與軌跡點(diǎn)數(shù)同數(shù)量級(jí)。
[0008]本發(fā)明提出的最大誤差可控的軌跡數(shù)據(jù)壓縮方法,具體步驟如下:
(I)設(shè)定最大誤差范圍:
軌跡數(shù)據(jù)為二維(或多維)點(diǎn)對(duì)的序列,如歐氏空間中的經(jīng)緯度坐標(biāo)。需要設(shè)定壓縮過程中的橫縱兩 個(gè)方向上的誤差范圍τ和η,也就是說壓縮后的軌跡與壓縮前的軌跡相t匕,任意點(diǎn)到壓縮前的軌跡的距離縱向上和橫向上分別不超過τ和η。
[0009](2)從待壓縮軌跡的當(dāng)前位置開始向后掃描后續(xù)的點(diǎn),從對(duì)掃描的點(diǎn)的最大誤差范圍做角度范圍限制,具體操作如下:
(a)從當(dāng)前掃描位置開始掃描,并把角度范圍置為360度;
(b)依次掃描后面的軌跡點(diǎn),并用本段的掃描開始點(diǎn)到當(dāng)前點(diǎn)的縱向正負(fù)τ范圍所夾角度和橫向正負(fù)Η所夾角度與之前的允許角度求交,作為新的允許的角度范圍限制;
(C)重復(fù)步驟(b)直到限制的角度范圍為空,設(shè)該點(diǎn)為A.+i,則退回到上一個(gè)軌跡點(diǎn)Au,并將其與本段開始點(diǎn)之間的采樣點(diǎn)壓縮掉,即用〈A., Pi+k-1~>來表示子軌跡…,Pm、;然后從這個(gè)軌跡點(diǎn)Au開始作為當(dāng)前掃描位置。
[0010](3)重復(fù)執(zhí)行步驟(2),對(duì)軌跡中剩下的部分同上步驟進(jìn)行壓縮,直到軌跡中所有點(diǎn)掃描完畢。這時(shí)我們就得到了軌跡壓縮的結(jié)果。
[0011]本發(fā)明步驟(1)中,設(shè)置最大誤差范圍時(shí),每個(gè)維度是獨(dú)立設(shè)置的,且每個(gè)維度的上下誤差值可以根據(jù)需要設(shè)置不同大??;軌跡上的每個(gè)點(diǎn)可以是獨(dú)立設(shè)置的,即不同的點(diǎn)可以設(shè)置不同的最大誤差限制。
[0012]本發(fā)明步驟(3)的具體操作如下:以上一段壓縮軌跡表示的終點(diǎn)作為當(dāng)前位置,重復(fù)步驟(2)。
[0013]相比于傳統(tǒng)的軌跡壓縮開放窗口方法,本發(fā)明的意義在于其將軌跡壓縮的時(shí)間復(fù)雜度降低到了線性復(fù)雜度,即與軌跡點(diǎn)數(shù)同數(shù)量級(jí)。其創(chuàng)新之處在于通過引入角度范圍的概念,使得軌跡的壓縮過程中每個(gè)點(diǎn)最多被嘗試壓縮一次,而不是之前方法需要重復(fù)被驗(yàn)證是否可以被壓縮。從而降低了時(shí)間復(fù)雜度。
[0014]本發(fā)明可以在上述基礎(chǔ)上進(jìn)行兩方面的擴(kuò)展。
[0015]一是本發(fā)明的用途不局限于時(shí)空軌跡,任何抽象意義上的點(diǎn)序列均可用此方法進(jìn)行壓縮,包括二維、三維和多維。誤差的限定范圍同軌跡數(shù)據(jù)一樣可以是多維的。例如如果我們將軌跡擴(kuò)展為xyz三維歐式空間下的軌跡,則可以在三個(gè)維度上利用角度范圍方法進(jìn)行壓縮。這種擴(kuò)展對(duì)于傳統(tǒng)的開放窗口方法也是等價(jià)的。本發(fā)明的時(shí)間復(fù)雜度依然是線性,而傳統(tǒng)方法是軌跡點(diǎn)數(shù)平方。
[0016]二是對(duì)于每個(gè)軌跡點(diǎn)的誤差限定可以更加靈活。例如可要求每個(gè)采樣點(diǎn)的誤差范圍不一定一致,一個(gè)采樣點(diǎn)某一維度的采樣誤差允許范圍也不要求對(duì)稱。這樣就可以更加靈活的適應(yīng)各種軌跡壓縮的需求,如某些比較關(guān)鍵的位置誤差允許范圍減小,以便保證較高的質(zhì)量。而另一些非關(guān)鍵的位置軌跡壓縮誤差范圍可設(shè)置得較大,以提高壓縮比。與此同時(shí),本發(fā)明也支持采用其他形式的誤差范圍限定,如歐幾里得距離。只要將角度范圍的限制變?yōu)閺钠鹗键c(diǎn)向以軌跡點(diǎn)為中心,所限定歐氏空間誤差上限為半徑的圓作兩切線的夾角即可。
【專利附圖】
【附圖說明】
[0017]圖1BOPW軌跡壓縮方法。
[0018]圖2縱向上限制角度范圍。
[0019]圖3橫向上限制角度范圍。
[0020]圖4對(duì)角度范圍求交。
[0021]圖5對(duì)后續(xù)的角度范圍多次求交。
[0022]圖6角度范圍在夾角范圍內(nèi)和不在夾角范圍內(nèi)兩種情況。
[0023]圖7不同的縱橫誤差限制下的壓縮比。
[0024]圖8壓縮軌跡圖示。其中,只給出了軌跡的片段,包括6個(gè)點(diǎn)...,pi+so子軌跡<Pi,Pi+1,...,p1+3>可以壓縮為<Pi,Pi+3y表示,保證在最大誤差范圍內(nèi)。
【具體實(shí)施方式】
[0025]下面結(jié)合具體實(shí)例來說明本發(fā)明的具體實(shí)施過程。
[0026]1、軌跡數(shù)據(jù)的準(zhǔn)備與誤差范圍制定:
將軌跡繪制于歐氏空間二維平面上,并制定軌跡壓縮允許的縱向誤差上限為正負(fù)r范圍(如圖2所示),橫向?yàn)檎?fù)η范圍(如圖3所示)。
[0027]2、從軌跡的當(dāng)前位置開始向后掃描,用設(shè)定的誤差范圍對(duì)壓縮線的角度范圍進(jìn)行限制:
從當(dāng)前位置Ui,式.)開始,向后掃描。此時(shí)允許的角度范圍為整個(gè)360度范圍。掃描至lj(ii+1,式.+1)時(shí),用該點(diǎn)的縱向范圍限制夾角的范圍,如圖2所示;用該點(diǎn)的橫向范圍限制夾角的范圍,如圖3所示。對(duì)二者的交集與之前的允許范圍求交,得到了經(jīng)過該點(diǎn)的可用化簡角度范圍,如圖4所示。將這個(gè)新得到的夾角與點(diǎn)(ii+2,式.+2)繼續(xù)重復(fù)上述過程求交,如圖5所示。重復(fù)這個(gè)過程處理后面的點(diǎn)。如圖6所示,如果點(diǎn)落在該允許范圍內(nèi)如則繼續(xù),否則若如^ i+3則停止這個(gè)過程。
[0028]3、重復(fù)執(zhí)行步驟2直到軌跡為空。這時(shí)我們就得到了軌跡壓縮的結(jié)果。
[0029]下面通過真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)來驗(yàn)證一種最大誤差可控的軌跡數(shù)據(jù)壓縮方法的效果。
[0030]首先介紹本實(shí)驗(yàn)的實(shí)驗(yàn)環(huán)境:本實(shí)驗(yàn)采用gcc 4.6.2編譯環(huán)境,代碼采用C/C++開發(fā)。在一臺(tái)Intel Core ?7-37 70 CPU (3.40 GHz)處理器32 GB內(nèi)存的Win7平臺(tái)上運(yùn)行。實(shí)驗(yàn)對(duì)象是新加坡出租車軌跡數(shù)據(jù)。我們一共試驗(yàn)了新加坡一個(gè)月的出租車軌跡數(shù)據(jù),總共有15000多輛出租車共約465000條行車軌跡的。針對(duì)不同的歐氏空間橫向和縱向誤差的范圍限制(分別定名為TSND和NSTD),其壓縮比如圖7所示,可以發(fā)現(xiàn)通過靈活設(shè)置的最大誤差范圍,可以得到不同的壓縮比。
【權(quán)利要求】
1.一種最大誤差可控的軌跡數(shù)據(jù)壓縮方法,其特征在于具體步驟如下: (1)設(shè)定最大誤差范圍: 軌跡數(shù)據(jù)為二維點(diǎn)對(duì)的序列,設(shè)定壓縮過程中的橫縱兩個(gè)方向上的誤差范圍τ和η,即壓縮后的軌跡與壓縮前的軌跡相比,任意點(diǎn)到壓縮前的軌跡的距離縱向上和橫向上分別不超過τ和η ; (2)從待壓縮軌跡的當(dāng)前位置Α.開始向后掃描后續(xù)的點(diǎn),從對(duì)掃描的點(diǎn)的最大誤差范圍做角度范圍限制; (3)重復(fù)執(zhí)行步驟(2),對(duì)軌跡中剩下的部分同上步驟進(jìn)行壓縮,直到軌跡中所有點(diǎn)掃描完畢,即到軌跡壓縮的結(jié)果。
2.根據(jù)權(quán)利要求1所述的最大誤差可控的軌跡數(shù)據(jù)壓縮方法,其特征在于步驟(2)的具體操作如下: (1)設(shè)當(dāng)前掃描位置為A.,初始允許的角度范圍置為360度,從開始掃描后續(xù)的點(diǎn); (2)對(duì)于每一個(gè)被掃描的軌跡點(diǎn),用本段的掃描開始點(diǎn)到當(dāng)前點(diǎn)的縱向正負(fù)τ范圍所夾角度和橫向正負(fù)Η所夾角度與之前的允許角度求交,作為新的允許的角度范圍限制; (3)重復(fù)步驟(2),直到限制的角度范圍為空,設(shè)該點(diǎn)為A.+i,則退回到上一個(gè)軌跡點(diǎn)Pi^1,并將其與本段開始點(diǎn)之間 的采樣點(diǎn)壓縮掉,即用表示子軌跡Ipm,P i+k-〉°
3.根據(jù)權(quán)利要求1所述的最大誤差可控的軌跡數(shù)據(jù)壓縮方法,其特征在于步驟(3)的具體操作如下: 以上一段壓縮軌跡表示<Pi,pi+k-;>的終點(diǎn)作為當(dāng)前位置,重復(fù)步驟(2)。
【文檔編號(hào)】H03M7/30GK103795417SQ201410028758
【公開日】2014年5月14日 申請日期:2014年1月22日 優(yōu)先權(quán)日:2014年1月22日
【發(fā)明者】孫未未, 宋壬初 申請人:復(fù)旦大學(xué)