begin process at 2012 02 09 20:48:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > [C / WIN32] COMPRESSION HUFFMAN

[C / WIN32] COMPRESSION HUFFMAN


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :compression, huffman, win32 Niveau :Débutant Date de création :31/07/2007 Vu / téléchargé :6 631 / 416

Auteur : Neo_Fr

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note


 Description

Je cherchais depuis un moment un algo huffman facile a utiliser et j'ai fini par trouver mon bonheur ici: http://huffman.sourceforge.net, le code est facile a utiliser et il est en c en plus, mais je trouvais vraiment ce code lent pour compresser des gros fichiers, j'ai donc essayer de l'adapter en win32, mon probleme est que le code est maintenant encore plus lent!, pourtant je n'ai absolument rien changer mis a part l'allocation mémoire et la lecture/écriture des fichiers, je ne sais vraiment pas d'ou ca peut venir, je vous poste donc les deux versions.
J'attend vos remarques et suggestions avec impatiences.

Merci


 Conclusion

Code source original: http://huffman.sourceforge.net

 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 Source avec une capture [C / WIN32] NTCLIB: COMPRESSION PAR API NATIVE
Source avec Zip [C / WIN32] CHANGER DE FOND D'ÉCRAN AVEC IACTIVEDESKTOP
Source avec Zip [C / WIN32] LIRE UN FICHIER LIGNE PAR LIGNE
Source avec Zip [C / WIN32] RATLIB - CRYPTER FACILEMENT EN RC4, AES ET TEA
Source avec Zip [C] ALGORITHME BRUTE FORCE

 Sources de la même categorie

Source avec Zip WIN32 TLS LENT par dguilmain
Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64) par BruNews
Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip DELETE DIRECTORY (WIN64) par BruNews
Source avec Zip ENUM DIRECTORY (WIN64) par BruNews

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture COMPRESSION FICHIERS ALGORITHME HUFFMAN C par xtremejames183
Source avec Zip CODEUR DE HUFFMAN par webis
Source avec Zip LZZ HUFFMAN COMPRESSION par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture [C++/WIN32] COMPRESSEUR/DECOMPRESSEUR LZW par yann_lo_san
Source avec Zip ZLIB REVUE EN PUR WIN32 ET SANS CRT par BruNews

Commentaires et avis

Commentaire de max12 le 31/07/2007 23:10:28 administrateur CS

En faisant les statistiques permettant la compresison tu peux toujours sauter des caractère pour gagner un peu de speed. Ensuite je te dirais simplement de prendre un autre algorithme car Huffman c'est pourrit pour cette utilisation, au mieux  sa peut servir a compresser du texte avec un arbre déjà fait et encore.

Commentaire de Neo_Fr le 31/07/2007 23:32:18

Mon pb c'est pa l'algo en lui meme, mon pb c'est que la version que j'ai adapter en win32 et + lente que l'originale et ca me parait vraiment bizarre.

Commentaire de shenron666 le 01/08/2007 20:20:39

quel intérêt d'adapter un code portable en code non portable ?
pour ton problème de rapidité, tu peux regarder du côté des routines de lecture / écriture de fichiers
à part cela, et les routines d'allocation tu n'as pas changé grand chose donc faut pas chercher loin

Commentaire de Neo_Fr le 01/08/2007 22:39:46

Si j'ai essayer de l'adapter c'est pour la performance, pour les routines de lecture et d'écriture je ne vois pas pourquoi les apis serait plus lente elles sont censé etre plus rapide que les runtimes, je me suis surement planter quelque part mais ou??

Commentaire de f_l_a_s_h_b_a_c_k le 01/08/2007 23:31:15

pour la vitesse je ferais quelque chose comme ca,
il va compresser en memoire  et lire et ecrire en une shot de 50000 le gain en vitesse!

se que je peur voir avec ton code il lit un bytes a la fois!

compress_file(char name[256])
{ char *mem;
  char *memout;
  FILE *fpin;
FILE *fpout;
long l=0;
long lo=0;

mem=malloc(50 000);
memou=malloc(50 000);

fpin=fopen(name,rb);
fpou=fopen(name,rb);

do {

l=fread(mem,50 000,1,fpin);
huffman_encode_memory(mem, l, *memout, &lo);
l=fwrite(mem,lo,1,fpou);


} while(!feof(fp);


free(mem);
free(memou);
fclose(fpin);
fclose(fpou);
}

Commentaire de Neo_Fr le 02/08/2007 07:44:31

Oui d'accord pour ca, mais pourquoi la version avec les apis est + lente que la version originale alors que les 2 versions lise le fichier de le meme facon

Commentaire de shenron666 le 02/08/2007 20:01:13

au risque de me répéter, quelle est la ou quelles sont les différence(s) entre ton implémentation et l'implémentation originale ?
- types utilisés (tu utilises des defines ce qui revient au même)
- méthodes d'allocation / désallocation
- méthode de lecture écriture sur disque
si je n'ai rien oublié ça va vite à faire le tour
et ce que tu dis :
"...les 2 versions lise le fichier de le meme facon"
est faux, tu as changé les routines de lecture
reprends les routines utilisées à l'origine et testes par toi même
les routines Win32 que tu utilises sont des routines pour lire et écrire des blocs de données
elles ne sont pas optimisées pour lire et écrire octet par octet contrairement aux routines fputc et fgetc

pour ce qui est d'adapter pour la performance, c'est pas en changeant les types utilisés mais la façon de traiter les données
détermines la partie du programme qui s'avère être un goulot d'étranglement et améliore cette partie

comme le suggère f_l_a_s_h_b_a_c_k, fais en sorte que les routines de codage / décodage travaillent sur des blocs plutot que octet par octet

bon courage

Commentaire de Neo_Fr le 02/08/2007 22:51:24

"...les 2 versions lise le fichier de le meme facon"
Les deux versions lisent bien le fichier octet par octet

Maintenant si tu me dit que les apis ne sont pas optimisé pour lire octet par octet ca repond a ma question

je trouve quand meme un peu surprenant que les apis fassent pires que les crt...

sinon pour les types c'est juste parceque je prefere :p

Commentaire de ndubien le 22/04/2009 18:47:39 9/10

Pour informations:
Il me semble que votre version WIN32 ne fonctionne pas avec Windows Vista : lorsque j'ai voulu compresser, windows m'a envoyer le message "ce programme ne répond plus" !

Malgré ce léger problème, cette source me semble être très intéressante pour comprendre le fonctionnement de cette méthode de compression !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

compression et c++ [ par fakbill ] A l'adresse http://www.cjkware.com/wamckee/huffman.zip j'ai touvé une implémentation en c++ de l'algo de huffman.Pb: Je ne cromprends rien à la façon Compression JPEG [ par inkognitodz ] S.V.P. J'ai besoin du code (C++Builder) qui permet de compresser d Compression avec huffman sous SCILAB si possible Decompression aussi [ par Doser ] Besoin d'aide j suis un peu coincé compression et décompression un fichier texte selon l'algorithme de HUFFMAN [ par sarasofia ] [b]salut tout le monde s'il vous plaît[^^sad1] j ai besoin d'un programme de compression texte selon l algorithme de Huffman en C,C++, Matlab s'il vou algorithme de huffman( compression) [ par flamme19 ] sa[size=200]lut, je cherche un programme en c++ qui fait la compression, puis la décompression d'un texte donné en utilisant l'algorithme de huffman.. compression de huffman [ par chiheb1106 ] Est-ce qu'il y a un algorithme en C qui permet de réaliser la compression et la décompression d'un fichier texte selon la méthode de Huffman sans util Win32(control) [ par NitRic ] Bonjour, pour mon premier prog Win32 en C++ j'ai décider de faire un petit NotPad sauf que la j'ai un problème:J'ai fais des menu et dans le menu Édi compression et decompression d'un fichier [ par asma ] salut tt le monde , vous pouvez me filer un coup de main les gars ?? je veux une astuce pour compresser et decompresser un fichier (EN C++ evidemment Où trouver le Win32 SDK ? [ par PierreP ] ... avec un help ou qqchose de ce genre qui explique comment on utilise les fonctions.Impossible de le trouver sur Le site de Microsoft ! Tâche en continu dans une appli WIN32 [ par talonneur ] Bonjour, Je suis en train de m'initier à la programmation d'une application Win32 en langage C. Voilà le fonctionnement de la partie qui me pose prob


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 5,507 sec (3)

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