← Retour aux projets

Algorithmique / C

Codage de Huffman

Ce projet académique en C met en oeuvre l'algorithme de Huffman pour compresser et décompresser des fichiers texte et binaires simples. Il montre un travail proche de la machine, avec structures de données maison, manipulation binaire et format de compression personnalisé.

Vue d'ensemble

Le projet a été pensé comme un exercice d'algorithmique et d'implémentation bas niveau. À partir des fréquences d'apparition des octets, le programme construit un arbre de Huffman puis encode les données dans un format compressé spécifique au projet.

  • C
  • GCC
  • Fichiers binaires
  • Structures dynamiques

Ce que le projet montre

  • Manipulation d'algorithmes classiques sans s'appuyer sur des bibliothèques haut niveau.
  • Conception d'un format de stockage compressé adapté au projet.
  • Gestion d'allocations dynamiques, d'arbres et de files ordonnées.
  • Travail sur des entrées texte mais aussi sur des fichiers binaires simples.

Points techniques

  • Construction d'un arbre de Huffman à partir des fréquences des octets.
  • Encodage en codes binaires de longueur variable.
  • Lecture et écriture d'un en-tête avec table de correspondance.
  • Pipeline de décompression dédié avec reconstruction des données originales.
  • Tests sur plusieurs fichiers d'entrée comme texte, BMP et JPG.

Lancer le projet

Le projet se compile simplement avec GCC. Deux exécutables distincts sont prévus pour la compression et la décompression.

gcc CodageHuffman.c -lm -o CodageHuffman
gcc decompresser.c -o decompresser

./CodageHuffman vingtmille.txt
./decompresser compression_vingtmille.txt
Le format produit est spécifique au projet et pourrait encore être renforcé par une meilleure modularisation et davantage de tests automatiques.