Bonjour � tous,
Dans le cadre d'un exercice de cours, je suis amen� � cr�er un programme de compression/d�compression selon l'algorithme de Huffman.
Mon probl�me est le suivant, le programme est quasi fonctionnel, sauf que ALEATOIREMENT le fichier de destination ne retranscrit pas de mani�re
uniforme le fichier source (ajout de caract�re en fin de fichier de type .txt...). Cela vaut de m�me pour les fichiers de type bitmap qui sont retranscrits
en ayant des octets en plus, une diff�rence minime, mais une diff�rence quand m�me.
J'ai utilis� des map pour le calcul des fr�quences et la construction de l'arbre et je veux rester dans l'optique de mon impl�mentation, sauf que j'aimerais que cela soit � 100% fonctionnel, et je n'arrive pas � trouver l'erreur.
Plusieurs choses qui me paraissent �tranges :
-Les octets en plus dans mon fichier de destination.
Est-ce un probl�me au niveau de la construction de l'arbre? Pourtant mes fonctions d'affichages des maps, montrent que j'ai correctement cr�er l'arbre
-Pourquoi cela influence-t-il EXCLUSIVEMENT QUE la fin du fichier texte quand il s'agit d'un fichier texte.
-Lors de l'utilisation de la fonction
La map des arbres devrait avoir le m�me ordre que celle de fr�quences, cependant ce n'est pas le cas, (utilisation des fonctions d'affichage)
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 void createForest(mapFq & mapFq, mapFrt & mapFrt){ map<unsigned char,unsigned>::iterator it = mapFq.begin(); while(it != mapFq.end()){ HuffTree ht = treeFromFreq(it->first); mapFrt.insert(std::make_pair(ht, it->second)); ++it; } }
Pour tester l'executable, apr�s l'avoir compil�, il faut le faire via le cmd dans le Debug,
Dans mon cas
cd Desktop/Huff/bin/Debug
compression = Desktop/Huff/bin/Debug>huffman -c test.txt huff
d�compression = Desktop/Huff/bin/Debug>huffman -d huff test2.txt
Cela devrait marcher sur les images bitmap aussi, la diff�rence d'octet est plus prononc�e.
Voila si vous pouviez m'aiguiller dans la r�solution de mon probl�me je vous serais reconnaissant.
Merci d'avance et merci pour le tuto sur Huffman qui m'a beaucoup aid�!
Huff.zip
Partager