Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

.NET ALGO HUFFMAN RLE MTF


Information sur la source

Catégorie :Fichier / Disque Source .NET ( DotNet ) Classé sous : huffman, rle, mtf, compression, codage Niveau : Initié Date de création : 27/04/2007 Date de mise à jour : 27/04/2007 21:25:01 Vu / téléchargé: 6 087 / 456

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Il y a 1 ans j'ai essayé de me lancer dans la compression des données mais sans succès,
aujourd'hui j'ai réussi à coder l'algorihtme d'Huffman, pour moi c'est donc une réussite.

Ce code permet la compression/décompression de n'importe quel fichier grâce au codage HuffMan ou
Rle. Il contient l'algorithme Mtf qui me servira, plus tard, dans une seconde source à coder
l'algorithme Bwt,iBwt et Lzw (j'ai laissé un module Bwt vide, j'ai tout effacé suite à une
transformation trop lente à mon goût).

Les performances sont les suivantes sur mon pc (Sempron 3000+, DD 5400tr min, pour vous donner une
idée sur la compression) Précision : La vitesse d'écriture est définie seulement sur ce qu'elle code, si la source a codé que 300Ko dans la seconde alors elle sera de 300Ko/sec. Les performances se mesure sur la vitesse de lecture qui definie la rapidité de traitement. Lorsque le taux de compression est faible la vitesse d'écriture s'aligne sur celle de lecture, vous saisissez?

Algo          |     Huffman      |    Rle
Compression   |    4,6Mo/sec     |  7Mo/sec
Décompression |     3Mo/sec      |  12Mo/sec

Le stockage de l'arbre est sérialisé et est construit sur l'héritage de classe (vous me dites si je
me trompe à propos de l'héritage) ce qui permet une meilleur lisibilitée.
Merci de faire part de vos impressions.

Maj 27/04/2007 : Estimation de la taille du fichier codé par l'algo Huffman
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

27 avril 2007 16:55:46 :
Erreur de zip
27 avril 2007 16:57:46 :
problème avec mon archiveur. Zip correct
27 avril 2007 21:10:13 :
Maj 27/04/2007 : Estimation de la taille du fichier codé par l'algo Huffman
27 avril 2007 21:25:01 :
Le temps continuer à sécouler pendant l'affichage d'une Msgbox

Commentaires et avis

signaler à un administrateur
Commentaire de yvesyves le 27/04/2007 20:29:21

Ici mon programme compresse un fichier Wmv mais celui a déjà été compressé donc le gain est minime. J'ai pris ce fichier de 40Mo pour faire un pti image. L'algorithme Huffman n'est eficace que sur du texte ou des images ou les octets se répétent fréquemment.

signaler à un administrateur
Commentaire de romagny13 le 27/04/2007 20:34:58

lol euu c'est normal que lorsque je compresse un fichier de 4 Ko une fois compressé il pèse 16 Ko ? :p

signaler à un administrateur
Commentaire de romagny13 le 27/04/2007 20:38:59

et puis j'aimerais comprendre parce que une fois compressé on se retrouve avec un fichier qui ne pourra pas retrouver son format initial ?? donc ou est l'utilité et l'interet ??

signaler à un administrateur
Commentaire de romagny13 le 27/04/2007 20:49:56

Ok il faut rajouter l'extension mais pour une compression lol c'est un comble que le fichier une fois compressé pese parfois 10 fois plus (fichier texte)

signaler à un administrateur
Commentaire de yvesyves le 27/04/2007 21:08:14

Précision la taille de la table pèse 12Ko, il est normal qu'un fichier de petite taille n'ai pas de grands intérets pour la compression.

signaler à un administrateur
Commentaire de yvesyves le 27/04/2007 21:12:50

Essaye de comvertir une fichier Bmp, Pdf, une application.
J'essaiyeré en plus des algos LZW et BWT de faire des archives pour rassembler plusieurs fichiers. Ainsi les fichiers de petites tailles (<40Ko) pourront trouver leur place.

signaler à un administrateur
Commentaire de yvesyves le 27/04/2007 21:16:14

Romagny t'a décidé de te lacher la? 3 commentaires toute les 4min? Désoler j'ai pas besoin d'un diplome pour faire du Vb comme tu dis, ni pour critiquer. Je prends quand même ta critique en compte pour une prochainne MAj

signaler à un administrateur
Commentaire de BruNews le 27/04/2007 22:31:54 administrateur CS

yvesyves, jette un oeil ici:
http://www.cppfrance.com/codes/HUFFMAN-CPPFRANCE_38961.aspx
il y a un très bon boulot de comparatif des différentes méthodes d'implémenter huffman.
Tu pourras aussi comparer avec ce que tu obtiens en .net, toujours bien de pouvoir se situer.

signaler à un administrateur
Commentaire de yvesyves le 27/04/2007 22:37:00

Merci BruNews même si le Vb se compare plus difficilement à C++. Je vais y jeter un coup d'oeil en tout cas je crois que j'ai perdu pour la table ^^.

signaler à un administrateur
Commentaire de romagny13 le 27/04/2007 23:24:14

non ce n'est pas toutes les 4 minutes moi regardes bien
par contre toi oui c'est toutes les 4 minutes exactement (21:08 ,21:12,21:16) lol

ba tu vois cela fait bien les commentaires pas trés sympathiques sur les sources ...

maintenant pour etre franc ton travail merite certainement et meriterait d'etre amélioré même si je ne suis pas sur qu'enormement de monde soit interesse et même de l'utilité si ce n'est sur un plan personnel d'un tel projet

maintenant je ne vois pas d'inconvenient a ce que tu demandes a un admin de retirer mes commentaires, et en meme temps tu peux de demander a faire retirer les tiens de mes sources cela fera plus propre merci

signaler à un administrateur
Commentaire de yvesyves le 28/04/2007 11:13:15

Ba l'algo D'huffman reste ce qu'il est, maintenant peut être que ca interresse pas grand monde mais moi si donc je continuerai pour le Bwt et tous les autres Algo mais avant je vais diminuer la taile de la table afin de pouvoir compresser de petits fichiers.

signaler à un administrateur
Commentaire de BLUEBIBUBBLE le 28/04/2007 18:50:12

La table peut être crée dynamiquement (comme pour les gif, zip, etc...)
et n'est pas incluse dans le fichier compressé.
Faire recherche avec mot-clefs: LZW

signaler à un administrateur
Commentaire de yvesyves le 29/04/2007 21:21:07

Sauf que je fais du Huffman et la table doit d'inscrire dans le fichier. Le Lzw ne stocke pas sont dictionnaire effectivement.

signaler à un administrateur
Commentaire de yvesyves le 30/10/2007 22:15:16

Bon vu que je ne met pas encore ce code à jour car j'en ferai peut être un autre implantant d'autres algo voici la méthode que j'ai retenu pour stocker la table :

Stocker dans 16 bytes le nombre de bytes à décoder utilisant la longuer du Byte codé des 16. ie : Au 3eme byte des 16 on lit 5, donc 5 bytes différents seront codés sur cette longueur (3).

Ensuite dans l'ordre on écrit les bytes utilisés
i.e : 56,134,235,4,65,... donc par exemple 56 et 134 seront côdés avec 2 bits (trouvé précédemment), 235 avec 3 bits et 4 et 65 avec 8 bits.

Pour le décodage il n'y a plus qu'a reproduire l'arbre par récurrence pour ma méthode en cherchant toujours à aller vers le poid faible.

Ainsi on obtient maximum 16+256 bytes pour la taille de la table.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Des exemples pour l'algo de compression RLE??? [ par YoDaaa ] Je voudrais savoir si des sources sur l'algorithme de compression de données RLE ou Huffman on déja été publiées?Merci d'avance compression huffman [ par totomus ] compression huffman [ par totomus ] Salut tout le monde !! Bon alors j'ai touv&#233; un programme qui m'int&#233;resse sur la compression de huffman mais comme je suis d&#233;butant, en Probleme de codage en VISUAL BASIC 6 [ par kimou75 ] bonjour.je coin&#231;e sur une verification de texte.vb me renvoi cette erreur : Erreur d'ex&#233;cution '3001':Les arguments sont de types incorrect, codage decodage [ par kojo ] comment faire, svp, pour quand on enregistre par exemple un mot de pass ds un ini, il soit coder??? Codage [ par Kahio ] Je fais en ce moment un petit WordPad avec visual basic et j'aimerai connaitre les codes pour avoir sur la zone de texte une image bitmap ainsi que le compression d'image [ par Nochasse ] bonjour &#224; tousje d&#233;sire afficher une image bmp apr&#232;s qu elle est &#233;t&#233; scanner cela ne fonctionne pas el' image doit&nbsp; &#23 Problème Compression zip [ par Taurus67 ] Bonjour, je fait un petit logiciel qui doit compresser en zip des demos (.dem) ( counter strike ) une fois que celle ci ont fini d'&#234;tre enregistr Problème de compression de base access [ par 3CP34 ] Bonjour &#224; tous,Je bosse sur une base access 2000 et je tente de la compresser dans mon projet vb.net 2002.J'ai un probl&#232;me au moment de la c Compression / décompression [ par nicolasheurtevin ] Bonjour, J'ai quelques petits soucis apr&#232;s avoir essay&#233; diff&#233;rents bouts de code permettant la compression zip et la d&#233;compressi


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,702 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.