The aim of the project is to implement several lossless compression algorithms including Huffman coding and Lempel-Ziv using Java. Depending on the contents of a file, the target compression rate is anywhere between 20 and 90 percent. It should also be possible to decompress the files without any loss of information.
Huffman coding utilizes a tree structure for a dictionary and a minimum heap for constructing it. Lempel-Ziv encoding uses a search trie for its dictionary.
The input is any file and the output is a file that is hopefully substantially smaller.