Skip to content

Here are some smaller projects that illustrate text compression. Starting with the Huffman code and the exponential Golomb code (exp-golomb). There is also a best practice for Brotli-GZip, as well as a file archiver similar to TAR, but designed to be much simpler with minimal functionality.

License

Notifications You must be signed in to change notification settings

michelenatale/Compress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Compress

Huffman Coding

The Huffman Code is the typical classic among compression codes, as this is an algorithm for lossless data compression. The C# code has a simple structure and fulfills the very fast derivation of the Huffman code, as well as the decoding. It's worth taking a look.

https://github.com/michelenatale/Compress/tree/main/HuffmanCoding

Exponential-Golomb-Codes

Exponential-Golomb-Codes (also known as Exp-Golomb-Coding) represent integers with bit patterns that become longer for larger numbers. One would think. The exponential Golomb code created here performs an analysis beforehand and adjusts the length of the code to the frequency.

https://github.com/michelenatale/Compress/tree/main/ExponentialGolombCode

Best Practice: Brotli and GZip from DotNet in Test.

Brotli and GZip are both compression methods for data. Both are implemented in the .Net Framework Core. Both compression methods can compress text as well as bytes, and are also used for sending data over the Internet, i.e., from one web server to another.

Incidentally, both methods are based on LZ77 and Huffman Coding. LZ77 was developed in 1977 by Abraham Lempel and Jacob Ziv. It is based on the dictionary principle, which has always proven to be extremely effective in compression. Compression rates of up to 90% can be achieved in some cases.

I subsequently added a very slim, simple, and fast archiving program (similar to TAR, ZIP, GZ) called “FileCompressPackage,” but with minimal functionality.

https://github.com/michelenatale/Compress/tree/main/TestBrotliDotNet

About

Here are some smaller projects that illustrate text compression. Starting with the Huffman code and the exponential Golomb code (exp-golomb). There is also a best practice for Brotli-GZip, as well as a file archiver similar to TAR, but designed to be much simpler with minimal functionality.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published