Compression & Decompression Algorithms

Learn how compression and decompression functionalities improve performance for software-defined storage applications.

Hi. I'm Praveen from Intel. In this part of the Intel® Intelligent Storage Acceleration Library video playlist, we're going to discuss the compression algorithms of Intel® ISA-L. We will be walking through an example of how it will be beneficial to your stories applications.

[? IZip ?] is what we call our version of Zzip implementation of DEFLATE. Gzip is something like adapted to increase the performance. And it gets much better throughput than the fastest flavor of [INAUDIBLE].

There are three characteristics to keep in mind—compression ratio, compression throughput, and decompression throughput. Depending on your needs, you will have to trade one of these characteristics against each other.

Next, let's talk about DEFLATE. It is one of the most adapted compression formats that exist. And its license has been baked into all kinds of software applications. It is lossless, meaning that it allows the original data to be perfectly reconstructed from the compressed data.

Next, let's talk about the static and dynamic compression tables. It is important to note that the different compression algorithms traditionally use either a dynamic or static compression table. To get the best compression results, a dynamic table should be used. However, it will come at the cost of more processing time. The algorithms focused on throughput should use static tables.

The dynamic table has no initial knowledge of occurrence frequencies. It permits dynamically adjusting the Huffman tree as data is being transmitted. [INAUDIBLE] is a static Huffman table. For this table, you're not generating the table that you use for compression dynamically. But we have a static table here. This is why it is important.

The result is a lower compression ratio. But you get the higher speed and throughput in the compression algorithms. It's suitable with real-time compression workloads even without dedicated hardware.

The next thing we will talk about is a semidynamic compression. The Intel ISA-L semidynamic compression comes close to getting the balance of both the worlds. One of the cool features is a semidynamic compression, which is a brand new technique that Intel ISA-L offers. It allows the user to granularly trade off throughput for the compression ratios.

Intel ISA-L also offers a version of the decompression, or INFLATE, algorithm, which substantially improves the decompression performance. It is also fully compatible with existing DEFLATE archives.

Thanks for watching. To see a code sample of this, follow the links below. And read the article on the Intel® Developer Zone. Don't forget to like this video and subscribe.