begin process at 2010 02 09 20:18:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > COMPRESSION SELON L'ALGORITHME HUFFMAN

COMPRESSION SELON L'ALGORITHME HUFFMAN


 Information sur la source

Note :
8,75 / 10 - par 4 personnes
8,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Classé sous :compression, fichier, huffman, algorithme Niveau :Expert Date de création :10/05/2003 Date de mise à jour :10/05/2003 04:42:37 Vu / téléchargé :15 538 / 1 973

Auteur : Khaarl

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

 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!!! ;-)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Huffman
    •   classes
      •   package cache
        • UnnamedPackage.dep2Télécharger ce fichier [Réservé aux membres club]12 476 octets
      • Decoder.classTélécharger ce fichier [Réservé aux membres club]2 433 octets
      • Encoder.classTélécharger ce fichier [Réservé aux membres club]2 732 octets
      • FileHeader.classTélécharger ce fichier [Réservé aux membres club]1 660 octets
      • FiltreExtension.classTélécharger ce fichier [Réservé aux membres club]1 251 octets
      • Heap.classTélécharger ce fichier [Réservé aux membres club]1 612 octets
      • Huffman.classTélécharger ce fichier [Réservé aux membres club]10 273 octets
      • Lecteur.classTélécharger ce fichier [Réservé aux membres club]1 121 octets
      • Node.classTélécharger ce fichier [Réservé aux membres club]1 656 octets
      • Statistique.classTélécharger ce fichier [Réservé aux membres club]938 octets
      • TreeOps.classTélécharger ce fichier [Réservé aux membres club]1 104 octets
    • Huffman.jpx~
    •   Rapport
      • HuffmanUML.gifTélécharger ce fichier [Réservé aux membres club]Voir ce fichier26 587 octets
      • huffmanUML.zargoTélécharger ce fichier [Réservé aux membres club]29 353 octets
      • Page Titre.docTélécharger ce fichier [Réservé aux membres club]20 480 octets
      • TP_Final.docTélécharger ce fichier [Réservé aux membres club]120 832 octets
    •   src
    • Huffman.jpxTélécharger ce fichier [Réservé aux membres club]3 632 octets
    • Huffman.jpx.localTélécharger ce fichier [Réservé aux membres club]2 513 octets
    • Huffman.jpx.local~Télécharger ce fichier [Réservé aux membres club]1 661 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip PETIT LOGICIEL DE GESTION DES EMPLOYÉS

 Sources de la même categorie

Source avec Zip ANALYSEUR DE PROXY IRC ET HTTP AVEC UNE INTERFACE GRAPHIQUE par sisisousou
Source avec Zip Source avec une capture "PROGRAMMEUR", EST UN PROGRAMME QUI PERMET DE TAPER QUELQUE ... par edouard333
Source avec Zip Source avec une capture "NARRATEUR", PROGRAMME QUI "LIT" SE QU'ON ÉCRIT... par edouard333
Source avec Zip Source avec une capture RENAME-MOAR par cotepierrot
Source avec Zip Source avec une capture DWIKI (DESKTOPWIKI) par xsimo

 Sources en rapport avec celle ci

Source avec Zip COMPRESSION-DÉCOMPRESSION DE FICHIER par Moyan
Source avec Zip Source avec une capture APPLICATION DE TRANSFERT D'UN FICHIER VIA FTP par aissam_k2000
Source avec Zip ZIPEUR DE FICHIER 2 par grand_jeanluc
ZIPEUR DE FICHIER par harryharry
Source avec Zip Source avec une capture CODAGE ET ARBRE DE HUFFMAN (COMPRESSION, AFFICHAGE DE L'ARBR... par spontex

Commentaires et avis

Commentaire de CoreBreaker le 12/05/2003 00:22:42

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.

Commentaire de Khaarl le 12/05/2003 04:15:28

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... :-(

Commentaire de Khaarl le 12/05/2003 04:17:25

En passant, tu connais un bon site qui explique l'algo de Ziempev?

Commentaire de CoreBreaker le 12/05/2003 04:29:05

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

Commentaire de Khaarl le 12/05/2003 04:44:48

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... ;-)

Commentaire de CoreBreaker le 12/05/2003 04:46:58

Je cois que je me suis trompé c'est Lempel et Zif et donc la compression LZ puis il y a eu Welch pour donner LZW

Commentaire de Inc0 le 14/05/2003 22:39:58

Bravo Khaarl, c' est du bon boulot !

Commentaire de Khaarl le 15/05/2003 00:20:52

merci

Commentaire de Thalesouf le 29/08/2003 19:42:12

compression 50 % pour un screenshot de quake3 ,
pas mal du tout ! joli travail,faire sois même les choses c tellement plus intéressant !

Commentaire de youkk le 11/12/2003 18:05:32

bonjour, mais je n'arrive pas à ouvrir cette  source. Pourriez-vous me dire comment faire ? Merci.

Commentaire de benratti le 12/12/2003 13:47:28

Pas mal, mais ca serait bien de pouvoir specifier le repertoire de sortie de fichier compressé.

Commentaire de biglittlekiss le 05/02/2004 18:50:12

La, je comprend pas trop, moi j'ai fait une compression RLE, qui est dite moi performante que les méthode Huffman, Shannon fano et LZW.
Mais lorsque je compresse 1 fichier avec ton programme, et que je fais de même avec le mien, le fichier obtenu avec huffman est plus grand que celui fait avec mon RLE.

Alors la je sais pas, je vais regarder ton code attentivement en tout cas.

Et moi aussi je vais programmer LZW ;-)

Commentaire de gouessej le 19/03/2007 16:16:23

Pas mal du tout! Bravo! Ca mérite une bonne note. Je n'aime pas réinventer l'eau chaude mais quand les profs te le demandent, tu le fais. Le code est assez propre. C'est intéressant.

Commentaire de yvkoe le 25/09/2007 20:47:33 8/10

parfait mais fais gaffe aux taches  de cafe dans le compil ca fait mal

Commentaire de robertjul le 15/03/2008 18:53:28

Super, merci beaucoup pour ton travail car mon projet est très proche du tiens. Donc tu m'a beaucoup aider, je vais étudier ton code pour bien tout comprendre.
Merci de bien vouloir partager ton code.

Commentaire de tarekbillel le 05/05/2009 21:42:39

bonjour premierment mrc d'avoire maitre un code comme sa isi , alors ya une idéer pour fair dimunuer le lentement étuliser le finalizer(); pour recupérer l'espace objet

Commentaire de manzat le 09/06/2009 12:32:55

Bonjour , merci pour ton code qui nous a bcp aidé,mais comment savoir le repertoire de sortie de fichier compressé.??
car il met le fichier dans la racine de projet.

Merci d'avance!

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Former des octet a partir de bit ==< Huffman [ par biglittlekiss ] Bonjour,Voilà je fais actuellement un programme sur la méthode de huffman.J'en suis a ce stade, j'ai obtenu le code de Huffman pour chacun des bytes c Compression par l'algorithme Burrows-Wheeler [ par saidman32 ] salut tt le monde!!La transformée de Burrows-Wheeler est une technique de compression de données. je vous pris de bien vouloir m'aider pour réaliser u compression audio [ par simson ] Bonjour, Existe il une classe pour compresser et décompresser un fichier sonore ( comme le mp3 par exemple) ou faut il faire l'algorithme soit extraire fichier à partir d'un fichier [ par gadour_esz ] salut,je suis entrain de réaliser une application qui manipule un fichier.le but est d'extreire des lignes spécifiées de ce fichier dans un autre fich terms pertinents [ par gadour_esz ] salut,je suis entrain de préparer un programme qui travaille avec les fichiers log( ce sont des fichier qui enregistrent l'historique d'un site)j'ai r Appli graphique [ par fluken ] Bonjour,     J'ai réaliser une application java permettant de traiter un XML. J'ai utilisé la librairie Velocity +un fichier XSL + du java.Pour l'inst Traitement de fichier texte tros lourd, et Aussi Appelle un Process externe [ par XeonJAVA ] Bonjour,Je suis en train de developer un appli qui va appelle un autre appli pour traiter un fichier texte, les problemes :l'appli appelé cree un fich Transformation du GML vers SVG [ par twtzhr ] Bonjour je programme en java un bouton qui permet d'ouvrir un fichier GML à l'aide d'un JFileChooser puis le convertir en un fichier SVG pour que ce d erreur dans copie de fichier [ par vboussema ] salutje veut copier un fichier dans le jre pour cela je recupère l'enplacement de java.exe puis je fait la copieil me fait une exception:C:\Program%20


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,733 sec (4)

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