Compression d'Images - Quadtree
Compression d'images en niveaux de gris avec Quadtree et codage QTC
CQuadtreeAlgorithmes de CompressionTraitement d'ImagesMakefileDoxygen
Voir le codeProjet académique en C sur la compression d’images PGM. Le pipeline couvre la segmentation, la structure Quadtree, le codage QTC, et un filtrage simple pour réduire le bruit avant compression. Le projet propose un mode sans perte et un mode avec pertes (tolérance réglable). L’architecture est modulaire (bibliothèque + programme principal) avec documentation Doxygen.
Contexte et objectif
Projet de compression d’images en niveaux de gris à partir d’une représentation hiérarchique (Quadtree). Le but est de produire un codec unique capable d’encoder et décoder des images PGM.
Format d’entrée : PGM (P5)

Le projet travaille sur des images PGM en données brutes (P5), de taille 2^n × 2^n, avec 256 niveaux de gris. Le fichier contient un en‑tête (format, dimensions, niveaux) suivi des pixels.
Principe de compression
La compression repose sur une segmentation hiérarchique : si une zone est uniforme (ou presque), elle devient un bloc feuille. Sinon, elle est subdivisée en 4. Cela évite de descendre partout dans l’arbre.
Compression sans perte

Le mode sans perte impose une correspondance exacte des valeurs d’origine. L’image reconstruite après décodage est strictement identique à l’original.
Compression avec pertes

Un paramètre de tolérance permet d’accepter des blocs presque uniformes pour augmenter le taux de compression. La perte est contrôlée par ce seuil.
Schéma de codage (QTC)

Le format QTC stocke la structure du Quadtree et les valeurs des feuilles. Le taux de compression est calculé et enregistré.
Schéma de décodage
Le décodeur relit la structure QTC, reconstruit l’arbre puis restitue l’image PGM.
Métadonnées et options
Le fichier compressé inclut des métadonnées (date/heure, taux). Le codec propose des options pour compresser, décompresser et éventuellement exporter la grille de segmentation.