Auteurs: [LEFEUVRE Elouen - BARSOT Thomas - EL FAIQ Achraf - VILAYVONG Woody] Date: [09/01/2024]
Un programme en C capable de compresser un fichier texte en fichier binaire, et inversement en utilisant l'algorithme de codage Huffman.
- Compilateur C (gcc recommandé)
- Bibliothèque CUnit (pour les tests unitaires)
- Clonez le dépôt.
- Compilez le projet en exécutant
make. - Exécutez les tests unitaires avec
make tests. - Créer la documentation avec
make doc. - Créer le rapport sous format pdf avec
make rapport. - Nettoyez le projet avant de le reconstruire avec
make clean. - Pour supprimer la documentation, il faut préciser avec
make clean DOC=trueafin d'éviter de l'actualiser trop souvent.
src/: Fichiers sourcesinclude/: Fichiers d'en-têtetests/: Tests unitairesbin/: Exécutablesdoc/: Documentation générée par Doxygen
- Pour compresser un fichier :
./bin/CompDecomp -c fichier_source.txt fichier_compressé.bin
- Pour décompresser un fichier :
./bin/CompDecomp -d fichier_compressé.bin fichier_restaure.txt
-
Permet de compresser un fichier texte ou un pdf en fichier binaire Huffman comportant la longueur, les statistiques du fichier original ainsi que le code compressé.
-
Permet de décompresser un fichier binaire Huffman en ce même fichier texte original.
Avec un fichier pdf de 203,38Mo, nous obtenons un fichier compressé de 84,8Mo, ce qui correspond à un fichier plus de 2 fois moins volumineux.
Notre principale limitation et piste d'amélioration et de rendre notre programme universel vis à vis du type de fichier, et de rendre cette compression plus efficace.
Ce projet algorithmique nous a permis de se familiariser avec toutes les différentes étapes dans la réalisation d'un projet. Nous avons pu travailler dans le cycle en V, de l'analyse aux tests unitaires, en développant chaque partie de celui-ci. Nous avons aussi pu établir une documentation, un makefile et renforcer nos compétences en matière de C. De plus, travailler en groupe nous a permis de nous initier à l'utilisation de GitLab et à se répartir les tâches efficacement sur une longue période.
- Version 1.0.0 (09/01/2024)