Galett
Messages postés115Date d'inscriptionjeudi 7 février 2002StatutMembreDernière intervention21 mai 2005
-
1 juin 2002 à 19:14
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 2009
-
6 août 2006 à 00:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 6 août 2006 à 00:54
il manque des liberations memoires (des arbres surtout, et d'un buffer)
sinon un chose me chagrine :
fwrite(&nbdifferents,SIZE_UC,1,desti);//nombre de caratères différents (1 octet)
le probleme c'est que si le nombre de difference est 256, comme c'est code sur un unsigned char, ca enregistre sur un octet 0x00, donc il faut deux solutions : soit tu le codes sur 2 octets, soit tu enregistres (nbdifferents-1) au lieu de nbdifferents
kokoook
Messages postés2Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention15 mai 2005 15 mai 2005 à 13:09
en fait je suis pas un expert en c++ svp comment contre construire l'exécutable ?
merci
kokoook
Messages postés2Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention15 mai 2005 14 mai 2005 à 16:58
bonjour en fait je compile ton code et sa marche mais pour l'executer sa me donne ca :
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 18 juil. 2004 à 01:16
eh les gars, faut pas abuser, quand on a pas word, et que l'on ne veut pas payer une licence a microsoft, on télécharge open ofice.org, c'est gratuit!
Huffman, c'est assez performant, bien joué!!!
Il y avait un login qui l'expliquais, j'avais compris comment il marchait, mais jamais réussi a créer mon prog (et j'ai eu la fleme de m'y metre plus de trois heures...)
Bien joué, même si ça sert a rien car on a bzip2 qui l'inclut...
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 7 juil. 2004 à 18:38
Pour bobbyf > Tu copies huffman.exe dans C:
Tu lance l'invite MS-DOS et tu tape pour compresser :
C:\huffman -c source.ext destination.ext
Pour décompresser :
C:\huffman -d source.ext destination
exemple tu as essai.txt sur C:
Tu tape pour le compresser : C:\huffman -c C:\essai.txt C:\essai.txt.compres
Pour le décompresser :
C:\huffman -d C:\essai.txt.compres C:
cela devrait marcher
Le créateur du site www.jscv.com
cs_psycho
Messages postés232Date d'inscriptionsamedi 11 mai 2002StatutMembreDernière intervention27 octobre 2007 12 juin 2004 à 19:31
je ne comprends pas à quoi sert la fonction chercher dans le code de huffman, arbre.cpp
pourrais -tu m'éclairer de ta lumière ???
sinon, bo boulot, la prog est pas mal du tout....
je met 9/10
cs_nhs
Messages postés1Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention 2 mars 2004 2 mars 2004 à 11:09
Salut !
merci pour ton code et le tut
g un peu de mal a comprendre la partie rincipale de la compression
soporifik27
Messages postés7Date d'inscriptionmercredi 5 novembre 2003StatutMembreDernière intervention 6 janvier 2004 15 déc. 2003 à 20:06
ou en latex sa pourrai etre cool ossi ;-) merci
paske word... j'ai pô non plu
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 8 juin 2003 à 15:02
Salut !
Je n'ai pas Word 2000 => Pas moyen de lire le tutorial, qui m'aiderait certainement à comprendre la source... Peux-tu me le convertir ? (si possible en HTML, sinon en RTF, j'utilise que Wordpad...)
Merci d'avance ;)
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 30 déc. 2002 à 16:07
merci pour ta contribution... je la prend sur le champ...
Galett
Messages postés115Date d'inscriptionjeudi 7 février 2002StatutMembreDernière intervention21 mai 2005 1 déc. 2002 à 01:52
hummm je crois ke XP émule les prog dos(G po XP, donc pas sur) mais normalement tu devrais qd même pouvoir passer des param au prog...
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 24 nov. 2002 à 20:21
alors là je ne sais pas...
bobbyf
Messages postés4Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention25 mai 2003 24 nov. 2002 à 17:36
ben j'ai windows xp et j'ai pas dos mais l'invite de commande et quand je tape juste huffman.exe ,j'ai le message d'erruer que je t'ai cite precedemment
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 24 nov. 2002 à 13:40
Ah je n'avais pas compris:
Ouvre une fenêtre DOS et va dans le répertoire de l'exécutable huffman.exe
huffman -c source.ext destination.ext pour compresser
huffman -d source.ext destination (sans l'extension) pour décompresser.
Lis la doc, il y a un exemple à la fin
bobbyf
Messages postés4Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention25 mai 2003 24 nov. 2002 à 13:04
je me suis mal exprime .je sais qu'il faut le compiler et j'obtiens le meme huffman.exe que le tien. mais apres que faire pour essayer de compresser un fichier ? quand j'execute huffman.exe ap artir de l'inivte de commande j'obtiens comme message comme 'huffman.exe' n'est pas reconu en tant que commande interne .que faire ? toi tu fais comment? merci de me repondre
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 23 nov. 2002 à 17:19
voilà la mise à jour a été faite
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 23 nov. 2002 à 17:16
Mais il faut compiler le source ! M'enfin si tu le désires, je vais uploader l'exe aussi
bobbyf
Messages postés4Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention25 mai 2003 23 nov. 2002 à 16:57
mais il ny'a pas de huffman.exe ? comment le faire ?
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 5 juin 2002 à 13:29
Petit bug: la décompression du dernier caractère est fausse 1 fois sur 3. je n'arrive pas à corriger l'erreur. Un pastis à celui qui me dit ce qu'il faut changer
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 2 juin 2002 à 20:52
1/ Bits de bourrage: le dernier caractère peut n'occuper que 4 bits par exemple. Que faire des quatre derniers bits pour former un octet ? Et bien il faut les remplir avec ce que l'on veut. C'est l'opération dite de bourrage. En réalité, le pb ne s'est pas posé avec Huffman dans la mesure où on bourrait avec n'importe quoi mais on sauvegardait le nombre de caractères encodés.
2/on ajoute à temp 0 ou 1 selon que le bit numéro "nbits-1-j" de tableau[c] est égal à 0 ou 1
Ex
j=1
tableau[c]=5 soit 100 en binaire
nbits=3
temp=2
tableau[c].nbits-1-j=1 ->on regarde le bit 1 de tableau[c] qui est 0
Donc temp=temp+0
C'est clair ?
3/pour les compressions successives, ça marche dans certains cas. Mais je n'ai jamais eu de pb à la décompression (n'oublie pas de faire trois décompressions à la suite). Envoie moi le fichier
4/ pour les très gros fichiers, le pb est lié au fait que les int sont sur 4 octets et que certains codes dépassent cette valeur de 2^32 (c'est un hypothèse)
5/Moi aussi j'ai des exams !
Galett
Messages postés115Date d'inscriptionjeudi 7 février 2002StatutMembreDernière intervention21 mai 2005 1 juin 2002 à 19:14
Merci pour ce tut très sympa, G juste 2-3 p'tites questions, qu'appelles-tu les bits de bourrage(de poids forts ?(sens informatique voyons !)Overflow ?)
et sinon, si tu pouvais expliquer un peu la fct°
[ temp+=((tableau[c].codeHuffman)>>(tableau[c].nbits-1-j))&1;//une formule à la GoldenEye...],
G pas eu le tps de décortiquer entièrement ton source, je passe des exams en ce moment, mais je verrai ça après.
Sinon, le code marche super, mais un autre truc G recompressé un fichier déja compressé avec ce code(d'ailleurs ratio 1: 80% ratio2: 54% !!,et 3 : 15% :o)
mais pour décompressé (donc 3 fois de suite) ca marche plus, doit y avoir un ti prob, vàla si ca peut t'aider pour ton prob avec les gros fichier(10Mo)
PS:pour info, c t un bmp que G utilisé pour avoir de bons résultats même après une première compression
6 août 2006 à 00:54
sinon un chose me chagrine :
fwrite(&nbdifferents,SIZE_UC,1,desti);//nombre de caratères différents (1 octet)
le probleme c'est que si le nombre de difference est 256, comme c'est code sur un unsigned char, ca enregistre sur un octet 0x00, donc il faut deux solutions : soit tu le codes sur 2 octets, soit tu enregistres (nbdifferents-1) au lieu de nbdifferents
15 mai 2005 à 13:09
merci
14 mai 2005 à 16:58
Linking...
Huffman.obj : error LNK2001: unresolved external symbol "void __cdecl effacerListe(struct element *)" (?effacerListe@@YAXPAUelement@@@Z)
Huffman.obj : error LNK2001: unresolved external symbol "void __cdecl coderA(struct noeud *,struct caractere *,int,int)" (?coderA@@YAXPAUnoeud@@PAUcaractere@@HH@Z)
Huffman.obj : error LNK2001: unresolved external symbol "struct element * __cdecl delister(struct element *,struct noeud *)" (?delister@@YAPAUelement@@PAU1@PAUnoeud@@@Z)
Huffman.obj : error LNK2001: unresolved external symbol "struct noeud * __cdecl fusionner(struct noeud *,struct noeud *,unsigned char,int)" (?fusionner@@YAPAUnoeud@@PAU1@0EH@Z)
Huffman.obj : error LNK2001: unresolved external symbol "int __cdecl nombreElementsListe(struct element *)" (?nombreElementsListe@@YAHPAUelement@@@Z)
Huffman.obj : error LNK2001: unresolved external symbol "struct element * __cdecl enlister(struct element *,struct noeud *)" (?enlister@@YAPAUelement@@PAU1@PAUnoeud@@@Z)
Huffman.obj : error LNK2001: unresolved external symbol "struct noeud * __cdecl nouvelArbre(unsigned char,int,int)" (?nouvelArbre@@YAPAUnoeud@@EHH@Z)
Huffman.obj : error LNK2001: unresolved external symbol "enum Booleen __cdecl chercher(unsigned int,unsigned int,struct noeud *,unsigned char *)" (?chercher@@YA?AW4Booleen@@IIPAUnoeud@@PAE@Z)
Huffman.obj : error LNK2001: unresolved external symbol "void __cdecl reconstruireArbre(struct noeud * *,unsigned int,unsigned int,unsigned char)" (?reconstruireArbre@@YAXPAPAUnoeud@@IIE@Z)
Debug/Huffman.exe : fatal error LNK1120: 9 unresolved externals
Error executing link.exe.
Huffman.exe - 10 error(s), 0 warning(s)
je sais pas quoi faire aidez moi svp !!!!!!!
18 juil. 2004 à 01:16
Huffman, c'est assez performant, bien joué!!!
Il y avait un login qui l'expliquais, j'avais compris comment il marchait, mais jamais réussi a créer mon prog (et j'ai eu la fleme de m'y metre plus de trois heures...)
Bien joué, même si ça sert a rien car on a bzip2 qui l'inclut...
7 juil. 2004 à 18:38
Tu lance l'invite MS-DOS et tu tape pour compresser :
C:\huffman -c source.ext destination.ext
Pour décompresser :
C:\huffman -d source.ext destination
exemple tu as essai.txt sur C:
Tu tape pour le compresser : C:\huffman -c C:\essai.txt C:\essai.txt.compres
Pour le décompresser :
C:\huffman -d C:\essai.txt.compres C:
cela devrait marcher
Le créateur du site www.jscv.com
12 juin 2004 à 19:31
pourrais -tu m'éclairer de ta lumière ???
sinon, bo boulot, la prog est pas mal du tout....
je met 9/10
2 mars 2004 à 11:09
merci pour ton code et le tut
g un peu de mal a comprendre la partie rincipale de la compression
while(compteur<taille+1)
{
c=bufferfichier[compteur-1];
temp+=((tableau[c].codeHuffman)>>(tableau[c].nbits-1-j))&1;
if(i>=SIZEEX&&j>=(tableau[c].nbits-1))
pourait tu m'expliquer les tests (if)
merci
15 déc. 2003 à 20:06
paske word... j'ai pô non plu
8 juin 2003 à 15:02
Je n'ai pas Word 2000 => Pas moyen de lire le tutorial, qui m'aiderait certainement à comprendre la source... Peux-tu me le convertir ? (si possible en HTML, sinon en RTF, j'utilise que Wordpad...)
Merci d'avance ;)
30 déc. 2002 à 16:07
1 déc. 2002 à 01:52
24 nov. 2002 à 20:21
24 nov. 2002 à 17:36
24 nov. 2002 à 13:40
Ouvre une fenêtre DOS et va dans le répertoire de l'exécutable huffman.exe
huffman -c source.ext destination.ext pour compresser
huffman -d source.ext destination (sans l'extension) pour décompresser.
Lis la doc, il y a un exemple à la fin
24 nov. 2002 à 13:04
23 nov. 2002 à 17:19
23 nov. 2002 à 17:16
23 nov. 2002 à 16:57
5 juin 2002 à 13:29
2 juin 2002 à 20:52
2/on ajoute à temp 0 ou 1 selon que le bit numéro "nbits-1-j" de tableau[c] est égal à 0 ou 1
Ex
j=1
tableau[c]=5 soit 100 en binaire
nbits=3
temp=2
tableau[c].nbits-1-j=1 ->on regarde le bit 1 de tableau[c] qui est 0
Donc temp=temp+0
C'est clair ?
3/pour les compressions successives, ça marche dans certains cas. Mais je n'ai jamais eu de pb à la décompression (n'oublie pas de faire trois décompressions à la suite). Envoie moi le fichier
4/ pour les très gros fichiers, le pb est lié au fait que les int sont sur 4 octets et que certains codes dépassent cette valeur de 2^32 (c'est un hypothèse)
5/Moi aussi j'ai des exams !
1 juin 2002 à 19:14
et sinon, si tu pouvais expliquer un peu la fct°
[ temp+=((tableau[c].codeHuffman)>>(tableau[c].nbits-1-j))&1;//une formule à la GoldenEye...],
G pas eu le tps de décortiquer entièrement ton source, je passe des exams en ce moment, mais je verrai ça après.
Sinon, le code marche super, mais un autre truc G recompressé un fichier déja compressé avec ce code(d'ailleurs ratio 1: 80% ratio2: 54% !!,et 3 : 15% :o)
mais pour décompressé (donc 3 fois de suite) ca marche plus, doit y avoir un ti prob, vàla si ca peut t'aider pour ton prob avec les gros fichier(10Mo)
PS:pour info, c t un bmp que G utilisé pour avoir de bons résultats même après une première compression