The project is centered around implementing Huffman Coding, a lossless data compression algorithm. The process involves assigning variable-length codes to input characters based on their frequencies to ensure a prefix-free and unambiguous code system. The implementation will utilize a priority queue and a binary tree to create a file compression and uncompression system.
Key steps include reading a file to count byte frequencies, constructing the Huffman coding tree, generating a byte encoding table, compressing the file, and finally decompressing it to match the original file.
Upon launching the application, you will be greeted with the Welcome Screen. Here you can choose to
-
Compress
The screen displays the before and after file sizes along with the compression ratio. It also offers options to copy the file path, access the compressed file, and view the algorithm's details.
-
Uncompress
This screen shows the original and resulting file sizes post-decompression, ensuring file integrity with the uncompression ratio, and provides similar access and detail viewing options as the compression screen.