This project aims to develop a Python application with a graphical user interface (GUI) that demonstrates the functionality and efficiency of various lossless data compression techniques. The application supports five different techniques: Run-length encoding, Huffman encoding, Arithmetic encoding, Golomb encoding, and LZW encoding.
The user inputs a text message into the application, and the program encodes the message using each available technique. After encoding, the application displays the results of each technique, including the number of bits before and after encoding, compression ratio, probability of occurrence for each character, entropy, average length, and efficiency. Additionally, the application provides a recommendation system to suggest the optimal compression technique for the given message.
- Hager Mohamed : Run lenght
- Omar Alaa : Huffman
- Aya Ahmed : Arithmetic , Choose a GUI Framework
- Irinie Magued : Golomb
- Menna Allah Saeed : LZW
- Mohamed Yossri : Design the GUI , integrating a GUI with existing code , Test the GUI
- Python
- Tkinter (for GUI)
- Figma for designing the interface