COMPRESSION DE HUFFMAN

cs_blackjack3 Messages postés 2 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 30 décembre 2004 - 30 déc. 2004 à 19:17
imen_jaouani Messages postés 1 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 22 novembre 2007 - 22 nov. 2007 à 11:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28507-compression-de-huffman

imen_jaouani Messages postés 1 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 22 novembre 2007
22 nov. 2007 à 11:52
j'ai utilisé ton code pour faire des calculs de performances sur
les codeurs entropiques : Huffman et d'autres codeurs .
donc j'ai modifier tes sources pour avoir en entrée une sequence de symboles ; c'est le cas le plus general ; à partir de ces symboles , les codes d'huffman sont générés , la séquences est codée , transmis dans un canal bruité et puis décode .

j'ai eu des problème lors du décodage : --> les codes d'huffman
ne sont pas correctement générés, les codes sont pré-fixés entre eux par exemple 01 et 01010101


j'ai besoin d'aide merci
camille2005 Messages postés 1 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 26 novembre 2006
26 nov. 2006 à 18:45
Bonjour,

Je suis débutant en langage C, et je m'intéresse à la compression de Huffman. Je suis curieux de voir le résultat de ce code. Je n'arrive pas à le faire marcher sur devC++. Je pense que je mets mal les différents fichiers de code (main.c,huffman.c,...) en relation.
QQun pourrait-il me dire quelle est la marche à suivre pour le faire marcher avec devC++?
Merci
Camille
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
3 août 2006 à 15:03
Autre petit BUG courant dans les sources Huffman :
probleme avec les fichiers "uniformes", i.e. toujours la meme lettre
l'arbre est reduit a sa racine, donc comme le code n'a pas prevu
ce cas la, le pogramme excute "NULL->fils_gauche", ce qui est genant.

Le cas uniforme est rare, car inutile, cependant le programme de compression doit le comprimer, c'est pas tres difficile ...
oim09 Messages postés 4 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 3 août 2006
3 août 2006 à 11:26
Tu as raison, le debugge ca existe...
J'avais écris ce code a l'époque ou j'apprenais a programmer en C, il est bien loin d'etre parfait, et effectivement ne marchais pas correctement, mais cela faisai tellement longtmeps que je l'avais oublié le bougre.

Merci a toi d'avoir signaler ce bug ;)
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
2 août 2006 à 21:30
Honte a celui qui a mis 10/10 :
je suis en train de regarder toutes les sources Huffmans de ccpfrance,
j'ai etudie la tienne, et je doit dire que je suis enerve, car deja il n'y a pas UN free() dans tes sources, ceci est une honte en soi !
Cependant ton programme ne marche absolument pas, j'ai essayer de compresser un fichier .c (comme blackjack3) et le fichier reconstuit etait altere, pourtant ton programme marche pour un fichier .txt

Alors j'ai fais le boulot a ta place (1h !!), voila le bug :
tu bidouilles dans l'ecriture de la table : tu mets un '\' pour la separtion, sauf que dans un fichier .c, il y a disons beaucoup beaucoup de slash (je te laisse deviner pourquoi ...) donc dans la tableau il y a le caractere '\', et donc dans mon fichier il y avait 96 caracteres differents (le 62eme etant le '\'), or il ne lit que 61 caracteres !!

Donc voila, je pousse un coup de geule, le DEBUGGGE ca existe !!!!!!
cs_blackjack3 Messages postés 2 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 30 décembre 2004
30 déc. 2004 à 19:17
Testé avec dev c++, fonctionne mais le taux de compression est tres limité, je pensais que cet algo donnait de meilleur resultas sur les fichiers texte, j'ai essayé avec un fichier html d'environ 4.5 mo transforme en 3 mo alors qu'avec pkzip le fichier n'occupe qu'environ 1mo apres compression, cela dit c'est cool de donner le source c...
Rejoignez-nous