李忠偉,崔學(xué)榮,吳春雷
無線隨鉆測量系統(tǒng)的數(shù)據(jù)壓縮協(xié)議研究
李忠偉,崔學(xué)榮,吳春雷
在隨鉆測量系統(tǒng)中,目前采用的主要傳輸技術(shù)是泥漿壓力波正負(fù)脈沖的方法,該方法所固有的缺點(diǎn)是信號(hào)傳輸速率低,因此,在低信號(hào)傳輸速率下,研究數(shù)據(jù)的壓縮技術(shù),從而提高信號(hào)的傳輸效率具有非常重要的意義。提出采用Huffman技術(shù)對(duì)數(shù)據(jù)進(jìn)行壓縮,從而實(shí)現(xiàn)隨鉆測量系統(tǒng)的高效傳輸。實(shí)驗(yàn)證明:壓縮比可以滿足實(shí)際應(yīng)用需求,具有廣泛的應(yīng)用意義。
隨鉆測量;連續(xù)波;數(shù)據(jù)報(bào)協(xié)議;增量數(shù)據(jù)報(bào);完全數(shù)據(jù)報(bào);數(shù)據(jù)域定界
從井下到地面的信息傳輸技術(shù)是導(dǎo)向鉆進(jìn)與定向鉆進(jìn)領(lǐng)域中研究的熱點(diǎn)與難點(diǎn)問題,也是隨鉆測量系統(tǒng)應(yīng)用和發(fā)展的技術(shù)“瓶頸”。目前的研究熱點(diǎn)主要集中在傳輸設(shè)備硬件以及傳輸?shù)木幋a方面,在數(shù)據(jù)的壓縮傳輸方面少有研究。由于鉆井液信道傳輸帶寬有限、鉆井液壓力波信號(hào)的產(chǎn)生速率有待提高,因此,設(shè)計(jì)新型鉆井液壓力波信號(hào)發(fā)生器與引進(jìn)數(shù)據(jù)壓縮技術(shù)成為大幅提高井下信息傳輸效率的有效途徑。
目前,國內(nèi)井下數(shù)據(jù)壓縮技術(shù)的研究主要集中在聲波測井?dāng)?shù)據(jù)、成像測井?dāng)?shù)據(jù)、隨鉆地震數(shù)據(jù)等。例如,劉付斌等根據(jù)聲波信號(hào)的特點(diǎn),研究了基于字典的LZW壓縮算法在偶極子數(shù)字陣列聲波測井儀數(shù)據(jù)壓縮方面的應(yīng)用;張偉等引入了整數(shù)小波變換,采用最大幅值、最小閾值、最小輸出位等多種方法,降低了 SPIHT算法的復(fù)雜度,提高了小波變換的速度,并設(shè)計(jì)了算法的并行實(shí)現(xiàn)結(jié)構(gòu),滿足了聲波測井?dāng)?shù)據(jù)高速實(shí)時(shí)處理的要求[4];賈安學(xué)等以正交多極子聲波測井儀 MPAL專家模式的井下數(shù)據(jù)為測試數(shù)據(jù),采用算術(shù)編碼、預(yù)測編碼、FLAC和APE壓縮算法分別測試了對(duì)聲波測井?dāng)?shù)據(jù)的壓縮效果,其中FLAC和APE壓縮算法具有較好的壓縮率[5];嚴(yán)正國等利用小波變換的視頻圖像壓縮技術(shù),通過質(zhì)量盒控制、背景對(duì)比度控制和場頻控制等技術(shù)實(shí)現(xiàn)了井下圖像數(shù)據(jù)的高度壓縮[6]。
由于隨鉆測量數(shù)據(jù)參數(shù)在一定時(shí)間以及一定的地層下,許多參數(shù)具有一定的穩(wěn)定性,而且僅僅使用有限的表示數(shù)字的符號(hào)(共11個(gè)),所以在對(duì)其進(jìn)行壓縮時(shí),可以根據(jù)數(shù)字出現(xiàn)的頻率,極大提高數(shù)據(jù)的壓縮比,即壓縮后的二進(jìn)制數(shù)據(jù)的長度將更短,從而保證了其傳輸?shù)母咝浴?/p>
數(shù)據(jù)壓縮是指按照一定的算法對(duì)數(shù)據(jù)進(jìn)行重新組織,從而減少數(shù)據(jù)的長度,進(jìn)而減少信道中傳輸?shù)亩M(jìn)制比特流。數(shù)據(jù)壓縮可以分為無損壓縮和有損壓縮兩種,前者在接收端可以完整恢復(fù)出壓縮前的數(shù)據(jù)(例如WinRAR壓縮軟件),后者只能部分恢復(fù)出壓縮前的數(shù)據(jù)(例如:視頻、音頻的壓縮),在隨鉆測量數(shù)據(jù)傳輸中顯然要使用的是無損壓縮。
1.1 Huffman編碼簡介
Huffman編碼是1952年由Huffman提出的一種無損數(shù)據(jù)壓縮技術(shù),是基于統(tǒng)計(jì)模型的數(shù)據(jù)壓縮技術(shù),是無損壓縮當(dāng)中最好的方法之一。它使用二進(jìn)制來替換每個(gè)符號(hào),長度由每個(gè)符號(hào)出現(xiàn)的頻率(權(quán)值)決定。Huffman編碼充分考慮了被編碼的符號(hào)的統(tǒng)計(jì)特性,將出現(xiàn)概率大的符號(hào)轉(zhuǎn)換為較短的二進(jìn)制編碼,將出現(xiàn)概率小的符號(hào)轉(zhuǎn)換為較長的二進(jìn)制編碼,從而實(shí)現(xiàn)對(duì)字符的壓縮,也轉(zhuǎn)換為了二進(jìn)制。Huffman壓縮和解壓縮是通過Huffman樹來實(shí)現(xiàn)的。
1.2 Huffman樹的構(gòu)造
Huffman樹,即帶權(quán)路徑長度最短的樹。其構(gòu)造步驟如下:
① 根據(jù)給定的n個(gè)權(quán)值{w1,w2,……wn},構(gòu)造n棵只有根結(jié)點(diǎn)的二叉樹,令其權(quán)值為wj;
② 在森林中選取兩棵根結(jié)點(diǎn)權(quán)值最小的樹作為左右子樹,構(gòu)造一棵新的二叉樹,置新二叉樹根結(jié)點(diǎn)的權(quán)值為其左右子樹根結(jié)點(diǎn)權(quán)值之和;
③ 在森林中刪除這兩棵樹,同時(shí)將新得到的二叉樹加入森林中;
④ 重復(fù)上述② ③兩步,直到只含一棵樹為止,這棵樹即Huffman樹。
1.3 Huffman壓縮
首先,要根據(jù)Huffman樹獲得Huffman編碼表,方法是從根節(jié)點(diǎn)開始遍歷樹,左孩子的所有路徑標(biāo)注為0,右孩子的所有路徑標(biāo)注為1。然后,再根據(jù)生成的Huffman樹對(duì)數(shù)據(jù)進(jìn)行編碼,方法是從葉子結(jié)點(diǎn)開始向根結(jié)點(diǎn)回溯,組合路徑上所有的符號(hào)(0或1),即可得到該葉子結(jié)點(diǎn)對(duì)應(yīng)的符號(hào)的編碼。
1.4 Huffman解碼
解碼的過程本質(zhì)上就是一個(gè)遍歷二叉樹的過程,一直遍歷到葉子結(jié)點(diǎn),此時(shí)完成第一個(gè)字符的解碼;接著再重新從樹根開始遍歷二叉樹,一直再遍歷到葉子結(jié)點(diǎn),此時(shí)完成第二個(gè)字符的解碼;直到所有的二進(jìn)制都遍歷完畢為止。
在隨鉆測量中從井下向地面?zhèn)鬟f的參數(shù)均為數(shù)值型數(shù)據(jù),所以只用到10個(gè)數(shù)字、負(fù)號(hào)(-)、和小數(shù)點(diǎn)(.),共12個(gè)字符,所以只需要對(duì)這12個(gè)字符進(jìn)行Huffman編碼即可。隨鉆測量數(shù)據(jù)在某個(gè)時(shí)間段內(nèi)具有一定的穩(wěn)定性,即參數(shù)的取值變化不大。這樣,字符出現(xiàn)的頻率也就相對(duì)穩(wěn)定。發(fā)送方在井下自動(dòng)計(jì)算在某個(gè)周期內(nèi),各個(gè)字符出現(xiàn)的概率,如果符號(hào)出現(xiàn)的概率有了較大變化則擇期將其發(fā)送到地面主控計(jì)算機(jī),同時(shí)修改自己的 Huffman編碼。其更新流程圖如圖1所示:
圖1 Huffman編碼表的更新過程
2.1 系統(tǒng)初始化
在第一次使用系統(tǒng)發(fā)送編號(hào)為i的數(shù)據(jù)報(bào)Pi時(shí),需要對(duì)其參數(shù)進(jìn)行初始化,主要包括:
1)權(quán)值和編碼初始化
12個(gè)字符的權(quán)值都設(shè)置為1,這樣生成的Huffman樹的形狀如圖2所示:
圖2 系統(tǒng)初始化時(shí)生成的Huffman樹
各字符對(duì)應(yīng)的Huffman編碼如表1所示:
表1 系統(tǒng)初始化時(shí)生成的Huffman編碼
例如,根據(jù)表1所示的Huffman編碼,如果需要發(fā)送數(shù)值“0.34”,則壓縮碼為“00011100111000”;如果地面主控計(jì)算機(jī)收到的是“001010”,則解碼結(jié)果為“12”。
2)設(shè)定時(shí)間周期
用戶可以設(shè)定每類數(shù)據(jù)報(bào)的 Huffman編碼的更新周期,只有自上次重構(gòu)編碼后的時(shí)間超過這個(gè)更新周期,系統(tǒng)才重新計(jì)算是否需要更新Huffman編碼。
3)標(biāo)準(zhǔn)差閾值
只有當(dāng)在新的一個(gè)發(fā)送周期內(nèi)所有12個(gè)字符的概率標(biāo)準(zhǔn)差超過這個(gè)閾值,才更新 Huffman編碼;否則如果在很長時(shí)間內(nèi)字符的概率變化很少,即使到了更新周期,也不更新。
2.2 發(fā)送數(shù)據(jù)
在該模塊內(nèi)完成數(shù)據(jù)報(bào)的封裝、壓縮、校驗(yàn)和發(fā)送。
2.3 修改該序號(hào)的數(shù)據(jù)報(bào)的權(quán)值
每發(fā)送完一個(gè)數(shù)據(jù)報(bào),系統(tǒng)都重新更新該序號(hào)的報(bào)文中所涉及到的所有字符的權(quán)值,注意只是更新權(quán)值,并不重新計(jì)算Huffman編碼。
2.4 判斷自上次重構(gòu)編碼后的時(shí)間是否大于設(shè)定時(shí)間周期
因?yàn)樵诤荛L一段時(shí)間內(nèi)或者在某個(gè)地層上參數(shù)的取值都會(huì)保持相對(duì)穩(wěn)定,而且考慮到盡量減少 Huffman權(quán)值表發(fā)送的次數(shù),所以并不是每次發(fā)送完數(shù)據(jù)報(bào)都更新Huffman編碼,只有在經(jīng)過某個(gè)已經(jīng)設(shè)定的時(shí)間周期后,才考慮是否更新Huffman編碼,否則再轉(zhuǎn)回第2步,繼續(xù)發(fā)送后續(xù)數(shù)據(jù)。
2.5 計(jì)算所有字符的權(quán)值的標(biāo)準(zhǔn)差
標(biāo)準(zhǔn)差的計(jì)算公式為公式(1):
2.6 判斷標(biāo)準(zhǔn)差是否大于設(shè)定閾值
如果計(jì)算出的標(biāo)準(zhǔn)差很大,說明各個(gè)字符的出現(xiàn)概率發(fā)生了很大的變化,此時(shí)就需要重新計(jì)算 Huffman編碼。如果標(biāo)準(zhǔn)差變化不大,即使到了 Huffman編碼更新周期,也不更新,此時(shí)再轉(zhuǎn)回第2步,繼續(xù)發(fā)送后續(xù)數(shù)據(jù)。
2.7 發(fā)送該序號(hào)數(shù)據(jù)報(bào)的Huffman權(quán)值表
Huffman權(quán)值表的數(shù)據(jù)報(bào),采用如表所示的格式(假定數(shù)據(jù)報(bào)編號(hào)為99),其中:
(1)數(shù)據(jù)報(bào)類型標(biāo)識(shí):使用“1”,說明發(fā)送的是完全數(shù)據(jù)報(bào),要求地面主控計(jì)算機(jī)使用支持重傳的否定確認(rèn)協(xié)議,確保井下和地面Huffman編碼的一致性。
(2)數(shù)據(jù)域定界:表明后邊各個(gè)域中字符的長度,其中第一位一定為2,因?yàn)閿?shù)據(jù)報(bào)編號(hào)為99,長度為2。第2位為0、1或者2表示編號(hào)的長度,因?yàn)榫幪?hào)最大為99,所以長度最大為2。后邊12個(gè)域的長度最大為2,即數(shù)據(jù)域定界后12位的取值只能是0、1、2。
(3)數(shù)據(jù)報(bào)編號(hào):取固定值,99。
(4)編號(hào):指定當(dāng)前發(fā)送的權(quán)值表是屬于哪個(gè)數(shù)據(jù)報(bào)的,即數(shù)據(jù)報(bào)的編號(hào),如表2所示:
表2 Huffman權(quán)值表的數(shù)據(jù)報(bào)的格式
2.8 對(duì)本地該序號(hào)的數(shù)據(jù)報(bào)的字符重新進(jìn)行Huffman編碼
重新按照Huffman編碼的規(guī)則,構(gòu)造Huffman樹,重新編碼。該步驟在井下和地面主控計(jì)算機(jī)同時(shí)進(jìn)行,這樣保證下次發(fā)送的數(shù)據(jù)采用的是新的Huffman編碼。
注意:如果地面接收站沒有正確接收到該數(shù)據(jù)報(bào),則地面主控計(jì)算機(jī)會(huì)發(fā)送一個(gè)否認(rèn)幀,此時(shí)井下接收到該否認(rèn)幀后,需要重新發(fā)送 Huffman權(quán)值表和隨后已經(jīng)發(fā)送的使用新的Huffman編碼發(fā)送的所有數(shù)據(jù)。
衡量數(shù)據(jù)壓縮方法好壞的重要指標(biāo)是壓縮比,壓縮比=壓縮后代碼長度/源代碼長度×100%,其含義是被壓縮后的代碼占源代碼的比例。為了對(duì)算法進(jìn)行分析,本文選用勝利油田“高43-平51”井測深從993.81米到1079.7米的10條井史資料進(jìn)行分析。假設(shè)Huffman權(quán)值表如表3所示,根據(jù)該表產(chǎn)生的Huffman樹如圖3所示:
圖3 仿真中采用的字符的Huffman樹
根據(jù)該Huffman樹生成的各個(gè)字符的Huffman編碼如表3所示:
表3 仿真中采用的字符的Huffman編碼表
根據(jù)表3 Huffman編碼表對(duì)仿真的數(shù)據(jù)進(jìn)行Huffman壓縮的結(jié)果如表4所示:
表4 仿真的數(shù)據(jù)報(bào)及Huffman壓縮后的幀
被方框框起來的部分是數(shù)據(jù)報(bào)報(bào)頭。
從整個(gè)數(shù)據(jù)報(bào)考慮:從表4中可以看出如果采用7位的ASCII碼進(jìn)行傳輸,其長度明顯比Huffman壓縮的長。所有10條數(shù)據(jù)的平均壓縮比為43%。另外,因?yàn)榈?、6條是完全數(shù)據(jù)報(bào),其Huffman編碼的長度明顯比增量數(shù)據(jù)報(bào)長。
根據(jù)無線隨鉆測量系統(tǒng)獨(dú)特的特征設(shè)計(jì)了基于Huffman編碼的無線隨鉆測量系統(tǒng)的數(shù)據(jù)壓縮協(xié)議,通過對(duì)真實(shí)井史資料的仿真,發(fā)現(xiàn)該方法與傳統(tǒng)的 ASCII碼以及浮點(diǎn)數(shù)的表示方法相比,可以大大減少傳輸?shù)亩M(jìn)制比特流的長度,從而提高無線隨鉆測量信道的數(shù)據(jù)傳輸效率。
[1] 張煜,熊軻,裘正定,王升輝. 基于壓縮感知的隨鉆測井編碼傳輸方法[J]. 地球物理學(xué)報(bào),2013,01:335-347.
[2] 謝小勇. 基于網(wǎng)絡(luò)傳輸測井?dāng)?shù)據(jù)無損壓縮算法的研究[D].電子科技大學(xué),2013.
[3] 劉付斌, 李艾華. 偶極子數(shù)字陣列聲波測井儀中數(shù)據(jù)壓縮的實(shí)現(xiàn)[J]. 設(shè)計(jì)與研發(fā), 2007, 12: 58-61.
[4] 張偉, 師奕兵. 聲波測井?dāng)?shù)據(jù)壓縮的一種 SPIHT改進(jìn)算法[J]. 電子測量與儀器學(xué)報(bào), 2008, 22(1): 15-19.
[5] 賈安學(xué), 喬文孝, 鞠曉東等. 聲波測井井下數(shù)據(jù)壓縮算法壓縮效果測試[J]. 測井技術(shù), 2011, 35(3): 288-291.
[6] 嚴(yán)正國, 張家田. 井下電視圖像壓縮技術(shù)[J]. 西安石油大學(xué)學(xué)報(bào)(自然科學(xué)版), 2007, 22(5): 94-97.
Study on Data Compression Protocol of Wireless Measurement While Drilling System
Li Zhongwei, Cui Xuerong, Wu Chunlei
(Department of Computer and Communication Engineering, China University of Petroleum (Huadong), Qingdao 266580, China)
In the measurement while drilling system, the main transmission technology currently used is the mud pressure wave of positive and negative pulse. The demerit of which is the low signal transmission rate. Thus in the low rate of signal transmission, to study the compression technology so as to improve the transmission efficiency of the signal is of great importance. The paper proposes Huffman technology to compress the data and consequently enable the drilling with the measurement system to transfer efficiently. The experiment shows that the compression ratio can meet the needs of practical application, and has wide application significance.
Measurement While Drilling; Continuous Wave; Datagram Protocol; Incremental Datagram; Complete Datagram; Data Domain Bound
TE243
A
2014.10.15)
1007-757X(2014)12-0015-03
中國石油科技創(chuàng)新基金項(xiàng)目(2012D-5006-0304)
李忠偉(1978-),中國石油大學(xué)(華東),計(jì)算機(jī)與通信工程學(xué)院,副教授,博士,研究方向:井下系統(tǒng)、信息與控制工程研究,青島,266580
崔學(xué)榮(1979-),中國石油大學(xué)(華東),計(jì)算機(jī)與通信工程學(xué)院,副教授,博士,研究方向:UWB無線定位、隨鉆測量系統(tǒng)、位置服務(wù)、車聯(lián)網(wǎng),青島,266580
吳春雷(1980-),中國石油大學(xué)(華東),計(jì)算機(jī)與通信工程學(xué)院,講師,碩士,研究方向:UWB無線通信、隨鉆測量系統(tǒng)、60GHz無線通信,青島,266580