測井?dāng)?shù)據(jù)實時無損壓縮研討和實踐

時間:2022-07-22 10:39:59

導(dǎo)語:測井?dāng)?shù)據(jù)實時無損壓縮研討和實踐一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

測井?dāng)?shù)據(jù)實時無損壓縮研討和實踐

隨著新型井下儀器的不斷涌現(xiàn)及多種井下儀器的組合應(yīng)用,測井信息通道也不斷增加,傳輸?shù)?a href="http://www.jrctt.com/lunwen/qtlw/zhcl/201207/534834.html" target="_blank">數(shù)據(jù)量越來越大。由于數(shù)據(jù)傳輸率與數(shù)據(jù)的實時存取以及井下系統(tǒng)的功耗是矛盾的,要實現(xiàn)井下幾千米的測井?dāng)?shù)據(jù)的實時傳輸,就必須盡量提高數(shù)據(jù)傳輸率,但隨著傳輸率的提高,信號的衰減和系統(tǒng)功耗也隨之增加。為了滿足新型測井系統(tǒng)對數(shù)據(jù)傳輸?shù)囊螅鞠到y(tǒng)采用了較高的傳輸率,測井時必須把采集的井下信息可靠而實時地傳輸?shù)降孛?,由于測井信息傳輸通道的傳輸距離遠,無線傳輸速度慢等特性的限制,解決好傳輸率的問題并非易事。因此,為了滿足井下數(shù)據(jù)的實時傳輸,便通過將井下采集的數(shù)據(jù)進行壓縮處理后再進行傳輸,這樣就間接地提高了傳輸率。

本文以研究LzW算法為基礎(chǔ),以FPGA為硬件平臺,以解決軟件壓縮解壓所存在的速度慢、占用內(nèi)存多的缺點。即:a.提高壓縮解壓速度,有利于實時性處理;b.節(jié)省寶貴的CPU資源,從而取得非常好的效果匡3〕。用不同的無損壓縮方法對數(shù)據(jù)(b)進行處理,從圖2可以看出,與RLE[4]、Huffinan算法[5]、幀相關(guān)壓縮[6]相比,LZW的壓縮效果明顯高于其他算法,尤其是遠遠高于通用的(未考慮測井?dāng)?shù)據(jù)特征)RLE、Huffillan算法。幾種無損壓縮結(jié)果的比較信息頭一數(shù)據(jù)區(qū){CRC校驗位1FAAF圖1觀叮井?dāng)?shù)據(jù)格式測井?dāng)?shù)據(jù)是以區(qū)為單位連續(xù)讀取的,每個區(qū)有258個字節(jié)組成,如圖1所示,每個區(qū)有四部分組成:信息頭(6個Bytes)、數(shù)據(jù)區(qū)(246個字節(jié))、CRC校驗位(4個Bytes)、信息尾(FAAF)。為了獲得更好的壓縮效果,將測井?dāng)?shù)據(jù)進行預(yù)處理,處理后的數(shù)據(jù)分為三部分:數(shù)據(jù)(a)包括信息頭、FAAF,數(shù)據(jù)(b)包括數(shù)據(jù)區(qū),數(shù)據(jù)(c)包括cRc校驗位。由于數(shù)據(jù)(a)是固定的,用特殊的代碼(100H)表示即可。由于數(shù)據(jù)(c)位數(shù)相對較少,故主要對數(shù)據(jù)區(qū)進行處理。從圖3可以看出,隨著數(shù)據(jù)字節(jié)數(shù)的增多,數(shù)據(jù)的重復(fù)率越高,壓縮效果越好。但是,壓縮效果不能無限制地提高,這是因為隨著測井?dāng)?shù)據(jù)差別的增大,數(shù)據(jù)重復(fù)率降低,壓縮效果受到限制。因此,根據(jù)實際情況確定合適的字典大小是非常關(guān)鍵的,本文采用兩個字典輪流工作,取得了很好的效果。另外,LZW算法的實時性較好,運算快,易于硬件的實現(xiàn),這也正是選擇該算法的重要原因。

2LZW算法的過程描述LZW算法有三個重要的對象:輸入數(shù)據(jù)流、輸出編碼流和一張用于編碼的字典。輸入數(shù)據(jù)流是指被壓縮的數(shù)據(jù);輸出編碼流是指壓縮后輸出的代碼流;字典存儲的是字符串及其索引號,從而實現(xiàn)了數(shù)據(jù)的無損壓縮。其壓縮算法的過程見文獻【7]。該算法的基本思想是用簡單的代碼來代替復(fù)雜的字符串以實現(xiàn)壓縮,在壓縮過程中自適應(yīng)建立一個字典,反應(yīng)了字符串和代碼的對照關(guān)系,通過查詢字典來確定字符串壓縮代碼的輸出。LZW編碼能夠有效地利用重復(fù)出現(xiàn)的字符,只需掃描一次,無需有關(guān)輸入數(shù)據(jù)統(tǒng)計量的先驗信息,其運算時間正比于數(shù)據(jù)的長度。圖4是對數(shù)據(jù)(b)進行編碼的過程,如果字典中沒有當(dāng)前組成的字符串,則給該字符串編碼,并且放入字典中,否則,繼續(xù)讀取下一個字符組成新的字符串,如此循環(huán)??梢钥闯觯S著輸入的增多,字典的存儲也會增多,每個存儲地址代表更長的字符串,編碼效果也會越來越好。7只吞二奮591硯種170451556眾16習(xí)4多87t4U苦4人凌56卜礴9子4子〕2矛八口6封吞〔一14月5(1044公129盆O嗚65t78455717B今,17臼38t7日_.{尸圖5編碼輸出圖5是對數(shù)據(jù)(b)編碼后的數(shù)據(jù)輸出,如果字典中沒有當(dāng)前組成的字符串,則將前綴輸出,否則,不進行任何輸出,繼續(xù)讀取字符,組成新的字符串,如此循環(huán)。3硬件數(shù)據(jù)壓縮算法的基本原理及過程本文采用FPGA[8]實現(xiàn)了數(shù)據(jù)的實時無損壓縮。以Altera公司的Cyclonexl系列中的EPZe5T一1418作為目標(biāo)器件,經(jīng)過Quartusll軟件編譯綜合,ModelsimSE仿真,得到工程的綜合報告和仿真情況。圖6是整個工程的FPGA資源占用情況。由綜合結(jié)果得到,系統(tǒng)能夠穩(wěn)定運行的最高工作頻率是134MHz,平均每12個周期壓縮一個數(shù)據(jù)點,數(shù)據(jù)點輸入位寬為shits,所以整個系統(tǒng)能夠有效處理的能力為:89.3M/S。

其中,使用Verilog語言進行功能描述設(shè)計的FPGA芯片是整個算法的核心部分。系統(tǒng)運行時,井下的測井?dāng)?shù)據(jù)經(jīng)過一些預(yù)處理(去冗余:將幀頭去陶后傳送給FpG入進行存儲、壓縮處理等操作。綜合該算法和FPGA的特點,提高算法的壓縮性能與FPGA的資源利用率,做出了如下處理。

(l)為提高測井?dāng)?shù)據(jù)的壓縮率,對數(shù)據(jù)(c)先進行差值處理后,再進行LZW壓縮。

(2)為保證異步時鐘域數(shù)據(jù)同步,采用FPG內(nèi)的雙口RAM構(gòu)成一個FIFO對預(yù)處理后的數(shù)據(jù)進行緩存。

(3)對于HASH地址查找[9],難免會有沖突發(fā)生,解決該問題的途徑有兩種:a.改變HASH函數(shù);b.記錄法:將每個字符串是否被用過、被哪個段用過記錄下來,當(dāng)然這樣會占用額外內(nèi)存,但是用這點內(nèi)存換取時間也是非常值得的。

(4)字典存儲器模塊。字典的一個詞條包括字典編碼、前綴、后綴(當(dāng)前字節(jié))。每個詞條的寬度為咒位(字典編碼12位,前綴12位,當(dāng)前字節(jié)8位)。

(5)由于數(shù)據(jù)具有局部平穩(wěn)性,隨著數(shù)據(jù)的增多,數(shù)據(jù)間的相關(guān)性降低,影響壓縮效率??刹捎秒p字典輪流工作機制,使字典適應(yīng)于數(shù)據(jù)流的輸入。圖8所示是數(shù)據(jù)(b)的仿真截圖,圖中的code是字典編碼,dataout是12位的輸出,對照圖4、圖5對應(yīng)的理論壓縮過程,可見LZW模塊仿真的結(jié)果無誤。3硬件數(shù)據(jù)壓縮算法的基本原理及過程本文采用FPGA[8]實現(xiàn)了數(shù)據(jù)的實時無損壓縮。以Altera公司的Cyclonexl系列中的EPZe5T一1418作為目標(biāo)器件,經(jīng)過Quartusll軟件編譯綜合,ModelsimSE仿真,得到工程的綜合報告和仿真情況。圖6是整個工程的FPGA資源占用情況。4結(jié)語本文用硬件方法實現(xiàn)測井?dāng)?shù)據(jù)的實時無損壓縮,能夠?qū)⒏咚傩盘栕兂删徸冃盘栠M行傳輸,對于提高通信的信道容量,提高數(shù)據(jù)的可靠性具有重要的意義。

通過實踐證明,數(shù)據(jù)的壓縮比能達到19%左右,這大大提高了無線測井?dāng)?shù)據(jù)傳輸?shù)男省1炯夹g(shù)對于石油探測數(shù)據(jù)的采集具有重要的意義,具有廣闊的應(yīng)用前景。本文創(chuàng)新點:與其他同類文章相比,本文將LZW壓縮算法應(yīng)用于測井?dāng)?shù)據(jù)特征的數(shù)據(jù)壓縮處理,并通過FPGA對LZW算法進行完善,充分利用硬件資源,避免了在處理過程中有可能會出現(xiàn)的遺漏采樣點情況。