新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的實時無損數(shù)據(jù)壓縮系統(tǒng)設(shè)計

基于FPGA的實時無損數(shù)據(jù)壓縮系統(tǒng)設(shè)計

作者: 時間:2011-07-26 來源:網(wǎng)絡(luò) 收藏

摘要:針對某些特殊的測試實驗,既要求測試系統(tǒng)微體積、低功耗,還要求記錄大量數(shù)據(jù)的問題,提出基于解決方案。介紹了LZW壓縮算法的基本理論及其用硬件實現(xiàn)的方法。大量的實驗表明,系統(tǒng)工作穩(wěn)定,壓縮速度快(8 MB/s以上),對實測數(shù)據(jù)的壓縮效果好(25%左右)、工作時電流小(37 mA),實現(xiàn)了速度、性能、功耗三者的統(tǒng)一。
關(guān)鍵詞:;;LZW算法

引言
在工業(yè)生產(chǎn)和科研中,通常要對信號進(jìn)行長時間高速采樣,會產(chǎn)生大量采樣數(shù)據(jù)。在一些特殊環(huán)境下,受體積和功耗的限制,不能添加過多存儲器,需要引入技術(shù)來解決。軟件壓縮算法的運(yùn)算量較大,需要很高的CPU運(yùn)算速度和數(shù)據(jù)緩存空間,所以軟件壓縮一般應(yīng)用
在對時間要求不高的非實時壓縮場合。而對運(yùn)行速度有特殊要求的情況下,對數(shù)據(jù)的實時壓縮一般都要用硬件實現(xiàn)。有損壓縮之后數(shù)據(jù)進(jìn)行重構(gòu),與原來的數(shù)據(jù)有所不同。多數(shù)數(shù)據(jù)采集系統(tǒng)因被測對象的不確定性,需要采用無損數(shù)據(jù)壓縮。由于LZW無損壓縮算法具有自適應(yīng)特性,在對信號統(tǒng)計特性不明確的情況下仍然有較好的壓縮效果。結(jié)合FPGA的高集成度、低功耗、靈活性及并行運(yùn)算的特性,該設(shè)計用FPGA硬件實現(xiàn)LZW算法,以提高系統(tǒng)的實時壓縮能力。

1 LZW算法簡介
LZW算法是一種基于字典的壓縮算法,由Lemple、Ziv、Welch三人共同創(chuàng)造。該算法在數(shù)據(jù)的壓縮過程中會根據(jù)輸入的數(shù)據(jù)動態(tài)地建立一個字典,后續(xù)輸入的數(shù)據(jù)都會在這個字典中匹配查找,根據(jù)查找是否成功決定壓縮編碼的輸出。該算法的巧妙之處在于,壓縮過程中動態(tài)建立的字典不需要與壓縮數(shù)據(jù)流一道進(jìn)行傳輸和存儲。在對數(shù)據(jù)進(jìn)行解壓時,也能夠通過壓縮數(shù)據(jù)流重新建立一個字典,來完成解壓縮。算法粗略的描述如下:
a.JPG
f.jpg
算法首先進(jìn)行字典的初始化。然后輸入第一個字符數(shù)據(jù)賦給變量String(S)。數(shù)據(jù)逐個輸入壓縮器中,并賦給變量Character(C)。s和C生成一個索引,與字典中的詞條數(shù)據(jù)進(jìn)行匹配:如果匹配成功,將S和C的編碼值賦給S,繼續(xù)進(jìn)行下一輪的匹配;如果匹配失敗,則將S輸出,將S和C的編碼值存入字典,并且將C的值賦給S,這一過程一直進(jìn)行直到結(jié)束。最后輸出S,輸出結(jié)束標(biāo)志。
由算法描述可見,LZW算法過程并不是很復(fù)雜,能夠得到較快的壓縮速度。并且其在對數(shù)據(jù)特征并不了解情況下,也能有較好的壓縮效果。同時,其對應(yīng)的解壓縮算法也不復(fù)雜,解壓速度也優(yōu)于其他一些算法。


上一頁 1 2 3 4 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉