begin process at 2012 05 27 14:46:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > COMPRESSION ET DECOMPRESSION SELON L'ALGORITHME D'HUFFMAN

COMPRESSION ET DECOMPRESSION SELON L'ALGORITHME D'HUFFMAN


 Information sur la source

Note :
9 / 10 - par 3 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Niveau :Expert Date de création :14/04/2003 Date de mise à jour :14/04/2003 13:59:47 Vu / téléchargé :13 976 / 2 294

Auteur : malibu23

Ecrire un message privé
Site perso
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Il est  optimiser pour etre le plus rapide possible
Il compresse a moins d'un Mo la seconde
Il est basé sur une architecture d'arbre et de liste chainée le tous avec une bonne dose de pointeur.

Si vous avez des questions n'hesitez pas !




 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip PROJET DE RESEAUX : CODE CYCLIQUE, CODE DE HAMMING
Source avec Zip CALCUL DU PLUS COURT CHEMIN, AVEC ALGORITHME DE FLOYD ET DE ...

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de manouman le 25/06/2003 16:01:56

Salut,
J'ai téléchargé ton projet et je l'ai recompilé. La compression fonctionne correctement mais la décompression plante. L'exécutable fournit fonctionne correctement mais apparement il y a un problème avec les sources. As tu une solution ?

Commentaire de malibu23 le 25/06/2003 18:05:55

Je vais te faire une reponse facile mais qui est pourtant vrai
chez moi il marche parfaitement.

Tu as essayer de compresser quoi ?
Quel Taille ?

JM

Commentaire de manouman le 25/06/2003 18:34:12

Je viens de réussir à le faire fonctionner sous Visual C++ 6 mais le problème persiste sous Dev C++. Désolé de t'avoir embêté. Merci pour le source qui a un bon rendu, environ un facteur 2 sur un fichier texte de 8Mo.

Commentaire de DarkBoss le 08/02/2004 18:36:26

ouaou et keske ta mis dans ton fichier texte ??????

Commentaire de manouman le 08/02/2004 20:03:17

J'ai généré un fichier texte à partir d'un catalogue de produits. Donc il y avait un code produit, le prix, l'emplacement du produit, le libellé et les diverses promotions. Une ligne égale un produit et il y avait 10000 lignes. Donc 10000 produits. Le fichier pesé 8Mo. J'ai obtenu un taux de compression d'environ 0.5 car le fichier pesé en sorti 3.9Mo.
Voila tout !!!

Commentaire de jjbarbar le 03/05/2006 18:39:02

En effet la décompression ne marche pas (et je suis surpris de la souplesse de Visual C++, quelle merde..) puisque que les erreurs viennent de tableaux mal dimensionnés pour lesquels on essaye d'acceder à des index du supérieur à la taille de ces tableaux : il y a tout d'abord le tableau bin qui devrait etre de taille 8 au lieu de taille 7 et puis ensuite le tableau arbre_code qui n'est evidement pas de la bonne taille dans la boucle :
for ( x = 0;x <= cpt_arbre_code;x++)
{
dec_bin(fgetc(fic_lec));
for (y = 0;y <= 7;y++)
arbre_code[8*x+y] = bin[y];}
qui precede un :
taille_arbre_code = (8*cpt_arbre_code+8)-1;
(qu'on pourrait reécrire : )
taille_arbre_code = (9*cpt_arbre_code)-1;

...Moi qui m'étais emmerdé à virer tout ce qu'il y avait de C++ dans le code pour pouvoir le compiler avec de simples compilateurs C...

Enfin la mémoire alloué (avec les new) n'est pas libéré, ce qui rend le code inutisable dans d'autres programmes (tout comme il faut alors eviter de compresser/decompresser) plusieurs fichiers successivement avec le .exe final.

Bref j'étais content de trouver un code qui me semblait assez concis pour pouvoir le compiler dans une tite appli , je vais finalement devoir me rabbatre sur la zlib (la dll fait tout de même 34k) à moins que je n'ai pas trop d'emmerdes avec la libbzip2 sous windoze...

Commentaire de ptidiable009 le 28/05/2006 21:55:00

c'est difficile!!!!

Commentaire de axeltheseducer le 29/05/2006 09:49:27

svp esce que klk1 peut m'aider??!!en m'envoyant des informations sur la décompression de huffman

Commentaire de malibu23 le 29/05/2006 20:03:13

Voila un site pour comprendre les bases déja :

http://tcharles.developpez.com/Huffman/

Commentaire de lol55 le 09/07/2006 15:31:21

Super!

Très Bien Commenté et la structure du Code! Mmmmh!
(J'adore)

Bravo

9/10

PS: Moi, J'ai pas de problème avec la décompilation...

Commentaire de malibu23 le 10/07/2006 00:53:49

Merci pour le commentaire ca fais vraiment super plaisir :)

@++

Commentaire de JCDjcd le 03/08/2006 15:19:04

10/10 ... n'importe quoi, on aura tout vu.
Je ne comprend pas celui qui met 10/10 vu les problemes suivants :
* deux fonctions 'val', je sais c'est pas un probleme en C++, la signature fait la difference, mais la le boulot des deux fonctions est different, donc pour plus de clarte il faut deux noms differents pour eviter que se perde
* gros probleme de liberation memoire, les arbres ne sont pas liberes, et les piles ne sont pas toujours videes !!
* beaucoup trop de variables globales, (cpt_arbre_code,nb_char_dif,nb_lettre par exemple) dont l'initialisation n'est faite d'une fois au debut du programme, or si je veux utiliser la compression plus d'une fois dans un programme, la compression plante violemment car les variables n'ont pas ete reinitialisees
* BUG : dans la reconstruction, "pile" doit etre initialise a NULL
* BUG : dans depiler, le teste n'est pas "p != NULL" mais plutot "(*p) != NULL"
* lorsque le fichier est uniforme (i.e. le meme caractere a chaque fois dans le fichier de depart) alors il y a une bloc memoire qui n'est pas libere

Commentaire de vcprogrammer le 20/04/2007 02:08:19

Merci pour le code, j'ai essayé de faire le projet moi même, mais j'avais un problème au niveau de construction de l'arbre ,mais avec ce code, j'ai bien trouvé la solution, encore merci.

Commentaire de LogiLip le 04/06/2007 21:38:15

Salut, je me réinterresse a la compression, et je cherchais a me remémorrer le huffman. Bien joué pour le code.
Cependant y'a 2 truc pour améliorer:
- le calcul de puissance : si tu ne fait que des puissance de 2 tu peut éviter la boucle (si tu regarde en asm, ça bouffe vite des instructions et de la meme) tu peut direct utiliser un décalage :
       return 1 << position;  ---> ça fait 2^position (permet aussi de positionner un bit)
- L'algorithme est le huffman statique en 2 passes, si tu veut faire du temps réelle, faudrait passer en dynamique, le truc que je cherchais justement, c'est la manière de se passer de la création de l'arbre a chaque évennement ajouté... la je vois pas.
Bon courage pour la suite

Commentaire de annous87 le 28/01/2009 10:35:19

Merci beaucoup pour le programme.ton travail était impressionnant...

Commentaire de dossti le 22/05/2009 22:11:40

bonsoir j'ai telechrgé votre programme parce que je l'ai comme projet de fin d'etude mais je voulais vous demander est ce que c'est possible de m'expliquer que fait les fonctions correpondance_code,ecriture_lettre,nouveau_code et nouveau_code et j'aimerai bien comprendre qu'est ce qu'on ecrit dans le fic_ecr

je souhaite avoir une reponse le plus vite possible(au max 3jours)

merci d'avance

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales