Compression huffman ( interface en api windows )

Soyez le premier à donner votre avis sur cette source.

Vue 13 251 fois - Téléchargée 9 257 fois

Description

Le programme que je vous propose est une implémentation de l'algorithme de Huffman (compression sans perte); il comprend un module de compression et un autre de décompression.
Il affiche également des informations sur l'entropie et la redondance du fichier source.

Au niveau du programme en lui-même, j'ai utilisé des arbres binaires pour le codage/décodage et j'ai réalisé un module de lecture/écriture asynchrone pour tenter d'améliorer les performances.

Le programme a été développé sous visual c++, donc j'ai bien peur qu'il soit difficile de le compiler dans d'autres environnements.

Toutes les critiques/remarques sont les bienvenues ^^.

Arthur

Conclusion :


1 - J'avais prévu de faire une compression sur des mots de 2,3 ou 4 octets pour améliorer les performances (3 octets pour les images par exemple) mais je n'ai pas eu le temps de me pencher sur le problème.

2 - Il y a plusieurs définitions du taux de compression, moi j'utilise : T=(taille_fichier_compressé/taille_fichier_original)

3 - J'ai essayé de faire des efforts sur les commentaires du code mais s'il y a des questions, je serai là pour y répondre.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
17 avril 2007

Quels sont les étapes pour ouvrir un nouveau projet en visual c++ 6.0 telque le votre? votre code est important.merci
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
Le seul problème est que tu es impatient et donc tu ne laisse pas le temps au cache de s'actualiser (plusieurs heures parfois).
PEBKAC =)
Messages postés
12
Date d'inscription
dimanche 22 juin 2003
Statut
Membre
Dernière intervention
12 juillet 2007

J'ai eu quelques problèmes pour l'ajout de cette première mise a jour...

J'ai cependant bien travaillé dessus, mais a vous d'en juger.
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
Il y a deux problemes :
le premier pas tres grave, mais ton code de gere pas les fichiers uniformes (une seul caractere), mais c'est pas important
le second : probleme de liberation memoire, j'ai enregistre chaque Malloc (ou new ...) et chaque Free (ou delete ...) et a la fin du programme il reste des blocs memoires non-liberes. J'ai mene ma petite enquete et le probleme vient de la fonction <nettoyage> : l'instruction "delete noeud;" devrait etre EN DEHORS du "if(noeud->filsg)"
car sinon les feuilles ne sont pas liberees
Messages postés
1
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
17 juillet 2006

perso je trouve que c'est un code bien pensé qui m'a pas mal servi; l'implémentation rend les choses bien pratiquables...
Afficher les 17 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.