基于FPGA的Gzip解壓縮硬件設計
Gzip解壓縮基本原理
本文引用地址:http://www.j9360.com/article/235597.htmGzip文件格式分析
Gzip壓縮后的文件主要由3個部分組成,分別是文件頭、壓縮數據部分、文件尾,如圖1所示。
其中,文件頭包括:固定值,用于Gzip文件格式鑒別;壓縮方法,記錄壓縮時采用的壓縮方法;壓縮標志,記錄操作系統等信息;文件名,記錄壓縮時文件的名稱;CRC16,記錄文件頭CRC16校驗的值,等。
壓縮數據部分包括:1個或若干個壓縮數據塊,壓縮數據塊可能采用stored模式(直接存儲模式,當數據不值得壓縮時直接進行存儲)、fixed模式(LZ77壓縮后的數據采用靜態huffman編碼)、dynamic模式(LZ77壓縮后的數據采用動態huffman編碼)之中的一種。Gzip在壓縮數據時會采用上述3種模式對數據進行壓縮,而存儲時則選擇一種最優的壓縮模式。每個壓縮數據塊在最開始的3bits(其中前2bits:00,stored;01,fixed;10,dynamic;11:保留位;最后1bits:0,不是最后一個數據塊;1:最后一個數據塊)中會記錄該數據塊所采用的壓縮模式以及該數據塊是否為最后一個數據塊,而在解壓縮時只需針對性處理即可。
文件尾包括:CRC32,記錄原始數據CRC32校驗值;ISIZE,記錄原始文件數據大小。該部分主要用于對解壓縮后的數據進行校驗,保證解壓縮的正確性。
Gzip解壓縮算法流程研究
根據Gzip文件格式可以得出如圖2所示的解壓縮算法流程:
(1)準備處理待解壓縮文件;
(2)對待解壓縮文件進行文件頭處理,獲取壓縮方法、壓縮標志、文件名等信息;
(3)處理每個塊剛開始的3bits,根據處理結果選擇進入相應的解壓縮模式(stored模式、fixed模式、dynamic模式);
fpga相關文章:fpga是什么
評論