Abstract
The Deflate compression algorithm provides one of the most widely used solutions for lossless data compression. Field-programmable gate arrays (FPGAs) are commonly used to implement hardware accelerators that speed up computation-intensive applications. In this article, FPGA-based accelerators for Deflate compression and decompression are described. These accelerators were specified in C++ and synthesized using Vivado High-Level Synthesis (HLS) for a Xilinx Virtex UltraScale+ series FPGA and a system clock frequency of 250 MHz. The proposed compressor processes data at a fixed input throughput of 4.0 GB/s and achieves a geometric mean compression ratio of 1.92 on the Calgary corpus benchmark files using static Huffman encoding. While not the first compressor synthesized using high-level synthesis, our design achieves a 25% greater throughput and an 11% greater compression ratio than the only other published design that uses Vivado HLS. The proposed decompressor design achieves average input throughputs of 196.61 MB/s and 97.40 MB/s, for statically and dynamically encoded Calgary corpus files, respectively. This is the first published decompressor design that is synthesized using high-level synthesis and provides performance that is comparable to that of the best published designs, having static throughputs 11% higher and dynamic throughputs only 10% lower than the expertly-optimized design sold by Xilinx.
Highlights
Data compression enables more efficient utilization of fixed data communication bandwidth and storage space
INFORMATION ON DEFLATE Deflate is the concatenation of two other compression algorithms: byte-level compression using LZ77 encoding [5] followed by bit-level compression using Huffman encoding [6]
COMPRESSOR RESULTS Our compressor core was implemented on a Xilinx XCVU3PFFVC1517 Virtex UltraScale+ Field-programmable gate arrays (FPGAs) [28]
Summary
Data compression enables more efficient utilization of fixed data communication bandwidth and storage space. We propose a compressor design that compresses data at a fixed input throughput of 4.0 GB/s while achieving a geometric mean compression ratio of 1.92 across the widely used Calgary corpus benchmark files [3] using static Huffman encoding. We propose a decompressor design with average input decompression throughputs of 196.61 MB/s and 97.40 MB/s, for statically and dynamically encoded Calgary corpus files, respectively These values are higher than most other reported decompressors while being achieved for the first time using high-level synthesis. This article is structured as follows: Section II reviews the Deflate file format and the compression and decompression processes.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have