基於xilinx FPGA實現LZW壓縮演算法

2021-10-23 00:17:44 字數 813 閱讀 1442

1 lzw演算法簡介

資料壓縮分為有失真壓縮和無失真壓縮。有失真壓縮是對壓縮後的資料進行重構 (解壓縮 ) ,重構後的資料與原來的資料有所不同,換來了大的壓縮比。無失真壓縮指對壓縮後的資料進行重構 ,重構後的資料與原來的資料完全相同。這裡只介紹lzw無失真壓縮和解壓縮演算法。

lzw壓縮演算法是一種通用的無失真壓縮方法,該壓縮演算法是根據其發明人lempel、zif、welch名字的首字母命名的。lzw壓縮演算法可以軟體實現也可以硬體實現;軟體壓縮一般應用在對時間要求不高的場合,而對執行速度有特殊要求的情況下,對資料進行實時壓縮一般都要用硬體實現。筆者主要研究基於fpga實現lzw演算法(包括壓縮和解壓縮),即用硬體電路來實現lzw演算法。

2 lzw壓縮原理

lzw演算法採用了一種先進的串表(string table)。將每個第一次出現的字串放在串表中,並用乙個**(code word)來表示。壓縮檔案只存貯數字。而不存貯串從而可以使檔案的壓縮效率得到較大的提高。不管是在壓縮還是解壓縮的過程中,都能正確地建立相同串表,壓縮或解壓縮完成後,這個串表將被丟棄。

串表好比一部字典,把輸入字串(單詞)轉換成字典中的所有的頁碼和頁中的序號。解碼就是據頁碼和頁中的序號找到字串(單詞)。使用同一部字典是正確還原的基礎。(lzw演算法基本原理不做介紹,可以參考網路資源)。

3 lzw壓縮實現難點

fpga實現lzw演算法要解決以下5個問題:

1)字典容量選擇

在實現lzw壓縮與解壓縮演算法的時候,需要構建乙個字典,用來存放壓縮過程中形成的字串表。lzw演算法的字典是自適應生成的,在實際應用中,若無限制地增大字典的容量,雖然可能獲得更好的壓縮率,但進行字串匹配時查詢的時間會變長,並且隨著編碼的碼字位數增加ÿ

基於Xilinx FPGA實現PCIE2 0介面

1 理論知識 1.1 匯流排發展 1 isa匯流排。工業標準架構匯流排 isa 傳輸速率為16mbps,擴充套件isa eisa 傳輸速率為32mbps 2 pci匯流排。第一版 pci匯流排,工作頻率33mhz,資料位寬32bit,傳輸速率為133mbps。第二版 pci匯流排,工作頻率33mhz...

XILINX FPGA實現定點轉浮點

1 小數的表達 參考 x表示實際的數 乙個浮點數 q表示它的qn型定點小數 乙個整數 q int x 2 n x float q 2 n 以q12為例 假設定點小數用16位二進位制表達,最高位是符號位,那麼有效位就是15位。小數點之後可以有0 15位。我們把小數點之後有n位叫做qn,例如小數點之後有...

在Xilinx FPGA上快速實現JESD204B

jesd204是一種連線資料轉換器 adc和dac 和邏輯器件的高速序列介面,該標準的 b 修訂版支援高達 12.5 gbps序列資料速率,並可確保 jesd204 鏈路具有可重複的確定性延遲。隨著轉換器的速度和解析度不斷提公升,jesd204b介面在adi高速轉換器和整合rf收發器中也變得更為常見...