新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的Gzip解壓縮硬件設(shè)計(jì)

基于FPGA的Gzip解壓縮硬件設(shè)計(jì)

作者:尚壯壯 李冰 時(shí)間:2014-03-31 來源:電子產(chǎn)品世界 收藏

  解壓縮基本原理

本文引用地址:http://m.butianyuan.cn/article/235597.htm

  文件格式分析

  壓縮后的文件主要由3個(gè)部分組成,分別是文件頭、壓縮數(shù)據(jù)部分、文件尾,如圖1所示。

  其中,文件頭包括:固定值,用于Gzip文件格式鑒別;壓縮方法,記錄壓縮時(shí)采用的壓縮方法;壓縮標(biāo)志,記錄操作系統(tǒng)等信息;文件名,記錄壓縮時(shí)文件的名稱;CRC16,記錄文件頭CRC16校驗(yàn)的值,等。

  壓縮數(shù)據(jù)部分包括:1個(gè)或若干個(gè)壓縮數(shù)據(jù)塊,壓縮數(shù)據(jù)塊可能采用stored模式(直接存儲(chǔ)模式,當(dāng)數(shù)據(jù)不值得壓縮時(shí)直接進(jìn)行存儲(chǔ))、fixed模式(LZ77壓縮后的數(shù)據(jù)采用靜態(tài)huffman編碼)、dynamic模式(LZ77壓縮后的數(shù)據(jù)采用動(dòng)態(tài)huffman編碼)之中的一種。Gzip在壓縮數(shù)據(jù)時(shí)會(huì)采用上述3種模式對數(shù)據(jù)進(jìn)行壓縮,而存儲(chǔ)時(shí)則選擇一種最優(yōu)的壓縮模式。每個(gè)壓縮數(shù)據(jù)塊在最開始的3bits(其中前2bits:00,stored;01,fixed;10,dynamic;11:保留位;最后1bits:0,不是最后一個(gè)數(shù)據(jù)塊;1:最后一個(gè)數(shù)據(jù)塊)中會(huì)記錄該數(shù)據(jù)塊所采用的壓縮模式以及該數(shù)據(jù)塊是否為最后一個(gè)數(shù)據(jù)塊,而在解壓縮時(shí)只需針對性處理即可。

  文件尾包括:,記錄原始數(shù)據(jù)校驗(yàn)值;ISIZE,記錄原始文件數(shù)據(jù)大小。該部分主要用于對解壓縮后的數(shù)據(jù)進(jìn)行校驗(yàn),保證解壓縮的正確性。

  Gzip解壓縮算法流程研究

  根據(jù)Gzip文件格式可以得出如圖2所示的解壓縮算法流程:

  (1)準(zhǔn)備處理待解壓縮文件;

  (2)對待解壓縮文件進(jìn)行文件頭處理,獲取壓縮方法、壓縮標(biāo)志、文件名等信息;

  (3)處理每個(gè)塊剛開始的3bits,根據(jù)處理結(jié)果選擇進(jìn)入相應(yīng)的解壓縮模式(stored模式、fixed模式、dynamic模式);

fpga相關(guān)文章:fpga是什么




關(guān)鍵詞: FPGA Gzip CRC32 PC

評論


相關(guān)推薦

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

關(guān)閉