專利名稱:用于無線傳感節(jié)點(diǎn)感知數(shù)據(jù)的上下文自適應(yīng)商余編碼方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)壓縮技術(shù)領(lǐng)域,具體涉及一種用于無線傳感節(jié)點(diǎn)感知數(shù)據(jù)的上下文自適應(yīng)商余編碼方法。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)(WSN)的應(yīng)用越來越廣泛,然而,無線傳感器節(jié)點(diǎn)的能耗問題卻是制約其應(yīng)用的瓶頸之一。研究表明,傳感節(jié)點(diǎn)的能量主要消耗在無線數(shù)據(jù)傳輸?shù)倪^程中, 因此各種數(shù)據(jù)壓縮算法的研究迅速成為無線傳感器網(wǎng)絡(luò)中的新熱點(diǎn)。目前,傳感器網(wǎng)絡(luò)中的有損數(shù)據(jù)壓縮研究已經(jīng)有很多,基于傳感節(jié)點(diǎn)的無損數(shù)據(jù)壓縮算法卻只有有限的幾個(gè)。2006年Sadler C. M.和Martonosi M.提出一種基于字典的無損數(shù)據(jù)壓縮算法,稱為S-LZW算法,它是基于著名的LZW算法的一個(gè)針對無線傳感器網(wǎng)絡(luò)的改進(jìn)版本,也是無線傳感器網(wǎng)絡(luò)中的第一個(gè)無損壓縮算法。2008年,Marcelloni F.提出一種專用于傳感節(jié)點(diǎn)數(shù)據(jù)壓縮的簡單Huffman(S-HufTman)編碼算法,其編碼方法是首先對采集到的傳感數(shù)據(jù)求差,然后對差值進(jìn)行熵編碼,越小的數(shù)據(jù),編碼越短,越大的數(shù)據(jù),編碼越長。該算法對溫濕度數(shù)據(jù)可以達(dá)到60%以上的壓縮率,相比S-LZW(27. 25%)算法,具有明顯的優(yōu)勢。由于該算法實(shí)現(xiàn)簡單,運(yùn)算速度快,壓縮率高,很快成為傳感器節(jié)點(diǎn)中的經(jīng)典無損壓縮算法。2009年和2010年,Tharini C.和范祥輝等分別提出了對S-Huffman算法的改進(jìn),通過構(gòu)造二叉樹來實(shí)現(xiàn)一種自適應(yīng)Huffman編碼。自適應(yīng)Huffman編碼對出現(xiàn)次數(shù)多的數(shù)據(jù)編以較短的編碼,對出現(xiàn)次數(shù)少的數(shù)據(jù)編以較長的編碼。對于中相關(guān)度的數(shù)據(jù),自適應(yīng)Huffman編碼可以達(dá)到比S-Huffman有更好的壓縮率。但是,上述這些算法均存在以下一些明顯的問題S-LZff算法是對PC機(jī)中的LZW算法的裁減,LZff算法是一種基于字典的無損壓縮算法,它更適合于文本壓縮,而不是數(shù)字壓縮。因此,S-LZW算法對傳感數(shù)據(jù)的壓縮率并不高。同時(shí),LZW算法需要一個(gè)很大的字典表來存儲已有的串,S-LZW算法雖然對表空間進(jìn)行了裁減,但相對于傳感節(jié)點(diǎn)的存儲容量來說,它所需要的存儲空間依然太大。正是因?yàn)?S-LZW算法需要占用較大的存儲空間,算法實(shí)現(xiàn)也比較復(fù)雜而壓縮率又不夠高,因此,后續(xù)繼續(xù)對該算法的研究很少。S-Huffman算法只需一個(gè)占用15個(gè)字節(jié)的前綴表,同時(shí)壓縮率也比較高,因此很快成為傳感節(jié)點(diǎn)中的經(jīng)典無損壓縮算法。但由于S-Huffman是對前后數(shù)據(jù)的差值直接進(jìn)行編碼,因此,它只對變化比較緩慢的數(shù)據(jù)有比較好的壓縮效果,當(dāng)數(shù)據(jù)變換劇烈時(shí),其壓縮效果會急劇下降甚至還會出現(xiàn)負(fù)壓縮(即壓縮后的數(shù)據(jù)比壓縮前的數(shù)據(jù)還要長)。同時(shí),由于S-HufTman算法使用了 Log/這樣的傳感節(jié)點(diǎn)CPU并不支持的函數(shù),其實(shí)現(xiàn)后的算法比較復(fù)雜,要根據(jù)輸入數(shù)據(jù)的大小來具體實(shí)現(xiàn)。根據(jù)Marcelloni F.自己的描述,這一操作平均需要355個(gè)指令周期才能完成,相對于傳感節(jié)點(diǎn)有限的處理能力才說,這一操作還是顯得過于復(fù)雜。而針對S-HufTman算法的兩個(gè)改進(jìn)算法,雖然對中相關(guān)度數(shù)據(jù)有較高的壓縮率,但對于高相關(guān)度的數(shù)據(jù),其壓縮率的提升并不明顯(由于自適應(yīng)機(jī)制需要一定的適應(yīng)時(shí)間,有時(shí)壓縮率反而不如S-Huffman算法)。由于兩個(gè)改進(jìn)算法同樣是對差值直接編碼,因此,同樣不適合于低相關(guān)度的數(shù)據(jù)(急劇變換的數(shù)據(jù)往往是低相關(guān)數(shù)據(jù))的壓縮。同時(shí)這兩個(gè)算法需要更大的運(yùn)算量和存儲空間來完成自適應(yīng)樹的更新和維護(hù),這些開銷與壓縮率的提升相比,顯得并不相稱。從以上分析可看出,目前傳感節(jié)點(diǎn)中的無損壓縮算法研究,還停留在比較原始的階段。主要表現(xiàn)是尚沒有專用的算法出現(xiàn),還停留在對PC機(jī)上經(jīng)典算法進(jìn)行改造并使之可以運(yùn)行于節(jié)點(diǎn)之中的階段。目前傳感節(jié)點(diǎn)中的無損壓縮算法均是對傳統(tǒng)PC機(jī)無損壓縮算法的裁剪,其性能尚不能滿足應(yīng)用的需求。從實(shí)際應(yīng)用角度,研究基于傳感節(jié)點(diǎn)的無損壓縮算法往往更有現(xiàn)實(shí)意義,原因如下(I)無損數(shù)據(jù)傳輸是很多高級應(yīng)用的必然要求有損壓縮技術(shù)雖然能夠顯著地提高壓縮率,但往往是以丟棄大量原始數(shù)據(jù)并/或損失原始數(shù)據(jù)的精度為代價(jià)的。無線傳感器網(wǎng)絡(luò)的主要應(yīng)用是監(jiān)測各種環(huán)境參數(shù),而很多參數(shù)需要保持其原始精度,有損壓縮算法無法達(dá)到這一要求。例如在無線傳感器網(wǎng)絡(luò)的很多軍事應(yīng)用中,需要監(jiān)測被測區(qū)域可能發(fā)生的未知變化。由于事前不能確定被測區(qū)域會發(fā)生哪些變化,傳感節(jié)點(diǎn)就應(yīng)該盡可能地保持采集數(shù)據(jù)的原始精度,并將其傳回控制中心進(jìn)行深入分析。再比如在很多遙感和醫(yī)學(xué)應(yīng)用中,需要保持圖像傳感器采集到的高光譜圖像的原始精度。在這些應(yīng)用中,無損數(shù)據(jù)傳輸顯然是非常必要的。(2)來自傳感節(jié)點(diǎn)的無損數(shù)據(jù)傳輸是數(shù)據(jù)融合的前提很多應(yīng)用采用數(shù)據(jù)融合算法來減少網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù),但數(shù)據(jù)融合算法通常運(yùn)行于匯聚節(jié)點(diǎn)中。為確保數(shù)據(jù)融合的準(zhǔn)確性,要求融合前的數(shù)據(jù)必須保持原始精度。采用基于傳感節(jié)點(diǎn)的無損壓縮算法可以減少從傳感節(jié)點(diǎn)往匯聚節(jié)點(diǎn)的數(shù)據(jù)傳輸,從而進(jìn)一步提高節(jié)點(diǎn)的生存期。(3)基于傳感節(jié)點(diǎn)的無損壓縮是多數(shù)有損壓縮和分布式壓縮算法的基礎(chǔ)多數(shù)無損壓縮算法經(jīng)過簡單的裁減可以轉(zhuǎn)換為有損壓縮算法,且這種裁減通常可以在提高壓縮率的同時(shí)減少運(yùn)算量。例如前文提到S-Huffman算法,如果在得到傳感數(shù)據(jù)的差值后,設(shè)置一個(gè)閾值,將小于閾值的數(shù)據(jù)簡化為0,而只編碼大于閾值的數(shù)據(jù),該算法就可以變化為有損算法,它可以在大大提高壓縮率的同時(shí),減少運(yùn)算量。其它無損壓縮算法大多數(shù)可以通過類似的方法轉(zhuǎn)化有損壓縮算法。同樣,很多基于本地節(jié)點(diǎn)的壓縮算法經(jīng)過簡單的變化可以轉(zhuǎn)化分布式算法。例如在基于廣播的密集傳感器網(wǎng)絡(luò)中(這一假設(shè)條件與 SERVETTO S. D.所提出的分布式小波變換算法相同),節(jié)點(diǎn)間可以運(yùn)行S-Huffman算法以減少相鄰節(jié)點(diǎn)數(shù)據(jù)的空間相關(guān)性,從而實(shí)現(xiàn)一種分布式無損壓縮效果。因此,基于傳感節(jié)點(diǎn)的無損壓縮是很多有損壓縮和分布式壓縮算法的基礎(chǔ)。
發(fā)明內(nèi)容
針對上述現(xiàn)有技術(shù)中存在的缺陷或不足,本發(fā)明的目的在于,提供一種用于傳感器節(jié)點(diǎn)感知數(shù)據(jù)的上下文自適應(yīng)商余編碼方法(Context-based Adaptive Quotient Remainder encoding algorithm,簡稱CAQR算法)。本發(fā)明對針對慢變數(shù)據(jù)和非慢變數(shù)據(jù)均壓縮率高,可以平滑地運(yùn)行于傳感節(jié)點(diǎn)之中,并實(shí)現(xiàn)無損數(shù)據(jù)壓縮,且本發(fā)明運(yùn)算復(fù)雜度低,存儲空間占用小。為了達(dá)到上述目的,本發(fā)明采用如下的技術(shù)解決方案一種用于無線傳感節(jié)點(diǎn)感知數(shù)據(jù)的上下文自適應(yīng)商余編碼方法,具體按以下步驟進(jìn)行步驟O :對需要編碼的 N 個(gè)傳感數(shù)據(jù) Gandata[I] ,Gandata[2] ,Gandata[3],......,
Gandata [N]按照d[i] = Gandata [i+1]-Gandata [i]依次進(jìn)行求差,得到N_1個(gè)原始差值數(shù)據(jù)d[l],d[2],d[3]……d[i]……d[N-l],其中,N為自然數(shù),i = 1,2,3……N-I ;步驟I :將步驟O得到的N-I個(gè)原始差值數(shù)據(jù)d[i]分別按照下式進(jìn)行變換,得到
N-I個(gè)差值數(shù)據(jù)Data[i],變換公式為
權(quán)利要求
1.一種用于無線傳感節(jié)點(diǎn)感知數(shù)據(jù)的上下文自適應(yīng)商余編碼方法,其特征在于,具體按以下步驟進(jìn)行步驟O :對需要編碼的N個(gè)傳感數(shù)據(jù)Gandata[l], Gandata[2], Gandata[3],......,Gandata [N]按照d[i] = Gandata [i+1]-Gandata [i]依次進(jìn)行求差,得到N_1個(gè)原始差值數(shù)據(jù)d[l],d[2],d[3]……d[i]……d[N-l],其中,N為自然數(shù),i = 1,2,3……N-I ;步驟I :將步驟O得到的N-I個(gè)原始差值數(shù)據(jù)d[i]分別按照下式進(jìn)行變換,得到N-I個(gè)差值數(shù)據(jù)Data[i],變換公式為^其中,N為自然數(shù),i = 1,2,3......N-I ;步驟2 :初始化數(shù)據(jù)位數(shù)D為1,令i = I ;步驟3 :將當(dāng)前差值數(shù)據(jù)Data[i]作為被除數(shù),將2D作為除數(shù),得到當(dāng)前差值數(shù)據(jù) Data[i]的商Q和余數(shù)R ;步驟4 :對余數(shù)R進(jìn)行定長編碼,對商Q進(jìn)行變長編碼,得到當(dāng)前差值數(shù)據(jù)Data[i]的商余編碼;步驟5 :令數(shù)據(jù)位數(shù)D等于當(dāng)前差值數(shù)據(jù)Data[i]的位數(shù),即用當(dāng)前差值數(shù)據(jù)Data[i] 的位數(shù)作為下一個(gè)差值數(shù)據(jù)Data[i+1]的位數(shù);步驟6:判斷是否還有下一個(gè)未編碼的差值數(shù)據(jù),如果有,則令i = i+Ι,跳轉(zhuǎn)步驟3繼續(xù)編碼,否則,編碼完成,得到N-I個(gè)差值數(shù)據(jù)的商余編碼。
2.如權(quán)利要求I所述的方法,其特征在于,所述步驟4中對商Q進(jìn)行變長編碼采用 Huffman編碼方法。
全文摘要
本發(fā)明公開了一種用于無線傳感節(jié)點(diǎn)感知數(shù)據(jù)的上下文自適應(yīng)商余編碼方法,具體按以下步驟進(jìn)行對需要編碼的N個(gè)傳感數(shù)據(jù)依次進(jìn)行求差,得到原始差值數(shù)據(jù);將原始差值數(shù)據(jù)分別進(jìn)行變換得到差值數(shù)據(jù);初始化數(shù)據(jù)位數(shù)D為1,i=1;將當(dāng)前差值數(shù)據(jù)作為被除數(shù),將2D作為除數(shù),得到當(dāng)前差值數(shù)據(jù)的商Q和余數(shù)R;對余數(shù)進(jìn)行定長編碼,對商進(jìn)行變長編碼;令數(shù)據(jù)位數(shù)D等于當(dāng)前差值數(shù)據(jù)的位數(shù);判斷是否還有下一個(gè)未編碼的差值數(shù)據(jù),如果有,i=i+1,跳轉(zhuǎn)步驟3,否則編碼完成,得到差值數(shù)據(jù)的商余編碼。本發(fā)明對針對慢變數(shù)據(jù)和非慢變數(shù)據(jù)均壓縮率高,可以平滑地運(yùn)行于傳感節(jié)點(diǎn)之中,并實(shí)現(xiàn)無損數(shù)據(jù)壓縮,且本發(fā)明運(yùn)算復(fù)雜度低,存儲空間占用小。
文檔編號H04W84/18GK102595496SQ20121006008
公開日2012年7月18日 申請日期2012年3月8日 優(yōu)先權(quán)日2012年3月8日
發(fā)明者任學(xué)軍, 劉晨, 尹小燕, 張遠(yuǎn), 房鼎益, 王舉, 王薇, 趙康, 邢天璋, 陳少峰, 陳曉江 申請人:西北大學(xué)