Compression selon l'algorithme huffman

Soyez le premier à donner votre avis sur cette source.

Vue 25 219 fois - Téléchargée 3 295 fois

Description

Salut! Voici un petit logiciel qui permet de compresser des fichiers (et bien sur de les décompresser!) en utilisant l'algorithme d'Huffman. Ne soyez pas trop critiques, ca fait à peine 1 an et demi que j'programme!
Il permet de compresser n'importe quel type de fichier, mais les meilleurs résultats sont avec les fichiers en textes brut (.java, .txt, .asm, .cpp) et les bitmaps (moins de couleurs = meilleure compression). Si vous obtenez des taux de compression lamentables (voir même négatifs), veuillez lire la documentation dans le sous-dossier "Rapport". Le code est très commenté et le rapport explique (du mieux que j'ai pu) la théorie derrière mon travail et l'analyse des résultats.

Conclusion :


Bugs connus: Aucun (pour l'instant) excepté que WinXP gère mal les demandes de "refresh" du JVM. Donc, si vous compressez un gros fichier, le programme peut paraitre gelé, mais il ne l'est probablement pas (testé jusqu'à 20 Mo sans plantage). La décompression est plus lente que la compression.

Mise à jour: Bientôt... (voir le rapport pour la liste des modifications à venir)

Remerciment:
Antonio Tavares (enseignant) pour avoir douté de ma capacité à réussir ce projet.
Guylaine (ma tendre moitié) pour avoir enduré mon humeur dûe à mon manque de sommeil et à un putain de bug dans mon décodeur... (le bug est corrigé!)
Nabob et MaxwellHouse (mmm... café!) pour leur soutien moral et leur forte concentration de caffeine. Merci encore! :-)
Tous ceux qui vont faire au moins un commentaire pour cette source. Ca arrive si rarement et pourtant, c'est tellement motivant!!! ;-)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

CoreBreaker
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1 -
Du point de vue algorithmique c'est interessant c'est vrais.
Mais Java propose dans le package java.util.zip de compresser les fichiers et zip est meilleur que huffman car zip possède Ziempev en plus d'huffman.
Khaarl
Messages postés
23
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
1 juin 2003
-
Merci du commentaire. C'est apprécié car ca me prouve que non seulement qqun a downloadé mon code, mais l'a meme regardé! :-)
La restriction majeure de mon projet était justement de ne pas utiliser les classes ZipOutputStream et ZipInputStream. Sinon, mon code aurait été beaucoup plus court! ;-) Je devais appliquer l'algo alors c'est ce que j'ai tenté. Le plus satisfaisant, c'est que j'ai l'impression d'avoir tellement plus appris en y allant de ce coté!
Aussi, dans mon rapport, j'ai mis que j'allais bientot implémenter le support zip... En fais, j'ai commencé hier à travailler dessus, mais a cause de ma fin de session, je n'aurai pas bcp de temps... :-(
Khaarl
Messages postés
23
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
1 juin 2003
-
En passant, tu connais un bon site qui explique l'algo de Ziempev?
CoreBreaker
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1 -
Bah alors c'est tout à ton honeur moi aussi aussi j'aime bien de temps en temps réinventer la pourdre à canon.
Le plus intéressant c'est faire des applis avec interface graphique.
Je connais pas spécilement de site sur Ziempev car ça traine un peut partout si tu tapes "Zimpev" sur un moteur de recherche voire sur www.cppfance.com tu auras sans doutes plein de liens
Khaarl
Messages postés
23
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
1 juin 2003
-
Quelle équipe on ferait! lol
Je déteste faire des interfaces graphiques... J'aime mieux faire un genre de moteur et dire à un autre: "Tu appelle ca de meme pour faire ca... ou tu fais ca pour obtenir ca...".
L'interface, ca me satisfait jamais... j'ai tjrs l'impression qu'elle est laide et pas fonctionnelle... ;-)

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.