soporifik27
Messages postés7Date d'inscriptionmercredi 5 novembre 2003StatutMembreDernière intervention 6 janvier 2004
-
6 janv. 2004 à 00:24
heo3637
Messages postés1Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention23 avril 2012
-
23 avril 2012 à 22:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
heo3637
Messages postés1Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention23 avril 2012 23 avril 2012 à 22:50
Excellent travail, merci beaucoup!!!
cs_zalson
Messages postés4Date d'inscriptionmercredi 28 février 2007StatutMembreDernière intervention12 mai 2007 15 mai 2007 à 12:04
Salut je suis très interessé par votre code.Pouvez vous me donner un bref commentaire un son fonctionnement et comment est cree le dictionnare?
Quels types de fichier il compresse? puiseque je dois presenter un project pour la compression et decompression d'un fichier de texte.
yolas22
Messages postés1Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention19 juillet 2006 19 juil. 2006 à 15:02
Et bien je cherchais des explications sur le lzw compression et decompression, la lecture de ce code et des commentaires m'en a appris plus que certaines documentations.
Chapeau, super propre ton code ( 2 ans aprés je relance les compliments).
+ yolas22.
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 2 déc. 2005 à 09:16
J'ai pas utilisé la stl pour les raisons suivantes :
- ce code est en C.
- j'utilise jamais la stl en C++.
Par contre ma façon de stocker le dico est trop compliqué. Il y a en fait beaucoup plus simple.
Il suffit d'avoir un buffer contenant les x derniers octets et de sauvegardé une liste d'indice pour remonter les mots (utilisés par gzip).
hebus16
Messages postés80Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention 2 octobre 20091 1 déc. 2005 à 19:28
apres une petite lecture du code, j'aurai quand même une question ... le dictionnaire que tu utilises est constitué a partir du bon vieux malloc.... j'aimerai savoir pourquoi ne pas avoir utiliser l'objet map de la librairie stl ... ca aurait eviter pas mal de ligne pour la gestion du dictionnaire et serait bcp plus simple à gerer au niveau des ressources ... est ce un choix delibéré? si oui peux tu m'expliquer stp je patauge encore dans cette partie là .... si non voici une doc basique sur son fonctionnement:
http://support.microsoft.com/default.aspx?scid=kb;fr;157159#appliesto
Merci d'avance
hebus16
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 3 nov. 2005 à 09:01
POur le LZW, tout le code est nécessaire.
Des compressions plus simples existent :
RLE (Run Length Encoding)
Huffman.
Et plus complique :
ZIP, RAR, JPEG (image), MP3 (musique)...
Pour RLE et huffman, des sources et doc existent un peu partout sur ce site et le net.
Dans tous les cas, il faudra une fonction permettant d'écrire dans un fichier bit par bit.
A_balabola
Messages postés1Date d'inscriptionmercredi 19 octobre 2005StatutMembreDernière intervention 2 novembre 2005 2 nov. 2005 à 12:40
Bonjour je dois faire un programme en cpp sur la compression et la decompression des fichiers et images, donc j'ai vu ce programme qui m'a l'air tres interressent et je voudrais savoir s'il y a une manière plus simple de faire ce pgm parce que j'suis pas tres douée en cpp et est ce que tout les sous pgm sont necessaire pour ce projet. Aidez moi svp, merci beaucoup.
hebus16
Messages postés80Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention 2 octobre 20091 10 oct. 2005 à 21:48
Excellent travail aussi bien sur ce code clair que sur les explications fournies par les docs joints .... franchement bravo, rare de voir des développeurs aussi soigneux !!!
mrbozzo
Messages postés11Date d'inscriptionmercredi 29 octobre 2003StatutMembreDernière intervention 4 avril 2007 7 sept. 2004 à 22:33
ouah, quel code...
Dans ma tête c'était beaucoup plus simple mais plus gourmand en mémoire
merci d'avoir répondu à mon message...
brenntengel
Messages postés49Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention 6 mai 2006 17 juil. 2004 à 15:51
Merci j'ai chercher hier qlq page qui parle sur
ce sujet et j'ai pas trouver de bonne pages
et j'ai vu la pages dans le ZIP
et elle me semble tres claires ....(Merci !!!)
je vais essayer de traviller dessous et je te montrerai mon travaille des que possibles
allez A+ .
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 16 juil. 2004 à 21:16
la compression lzw ne marche bien que sur des fichiers non compressé; or les jpg le sont déjà et on peut guère faire mieux ave LZW.
pour faire ce prog je me suis basé sur la page web incluse dans le zip et en tappant lzw sur un moteur de recherche on trouve pas mal de doc la dessus
brenntengel
Messages postés49Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention 6 mai 2006 16 juil. 2004 à 18:01
Vraiment Chapeau pour ton travail j'ai vu bq d'autre
codes c'est Exellent .
Mais j'ai comme meme une question
j'ai essayer de compresser un fichier jpg mais
sa taille a augmenter de qlq KO pkoi ??.
Bon je voulais aussi si tu peut m'indiquer les
tutorial ou tu as appris toutes ces choses ;-)
Merci enocre et BRAVO !!!!!
coq73
Messages postés5Date d'inscriptionjeudi 24 juin 2004StatutMembreDernière intervention18 novembre 2004 25 juin 2004 à 11:02
merci beaucoup.je vais essayer de l'installer et voir si ça fonctionne si j'ai des problèmes je te le fais savoir.
buona giornata carissimo
JEAN PIERRE
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 24 juin 2004 à 23:40
j'ai tester le téléchargement, ça marche sinon voici "lzw.h"
si tu as tjrs des pb, donne e-mail par message perso et je t'enverrais le zip.
/******************************************************************************|* LZW.h : entête pour les fonctions de compression / décompression avec *|
|* l'algorithme LZW. *|
\******************************************************************************/
#ifndef _LZ_H_INCLUDED
#define _LZ_H_INCLUDED
/*============================================================================*|* Définition de types de base. *|
\*============================================================================*/
typedef unsigned char BYTE; /* donnée de 1 octet (8 bits) */
typedef unsigned short WORD; /* donnée de 2 octets (16 bits) */
typedef unsigned long DWORD; /* donnée de 4 octets (32 bits) */
/*============================================================================*|* Définition de constantes. *|
\*============================================================================*/
/* codes spéciaux */
#define LZW_EOF 256 /* fin de fichier */
#define LZW_BIT_PLUS 257 /* un bit de plus à lire */
#define LZW_NEW_DIC 258 /* nouveau dictionnaire */
#define LZW_BEGIN_DIC 259 /* premier mot du dictionnaire */
/* paramètres de l'algorithme */
#define MIN_BITS 9 /* nombre min de bits */
#define MAX_BITS 12 /* nombre max de bits */
#define MAX_DICO_LENGTH 4096 /* taille max du dictionnaire */
#define MAX_BUFFER_LENGTH 4096 /* taille max des buffers */
/* taille des buffers pour les lectures / écritures */
#define FILE_BUFFER_LENGTH 32768
/*============================================================================*|* Codes de retour des fonctions. *|
\*============================================================================*/
#define LZW_SUCCESS 0 /* succès */
#define LZW_ERROR_INFILE -1 /* erreur sur le fichier d'entrée */
#define LZW_ERROR_OUTFILE -2 /* erreur sur le fichier de sortie */
#define LZW_ERROR_NAMES -3 /* noms de fichiers identiques */
#define LZW_ERROR_MEM -4 /* erreur de mémoire */
#define LZW_ERROR_READ -5 /* erreur de lecture */
#define LZW_ERROR_WRITE -6 /* erreur d'écriture */
#define LZW_ERROR_EOF -7 /* fin de fichier non trouvé
(décompression) */
/*============================================================================*|* Structure décrivant un buffer. *|
\*============================================================================*/
typedef struct tagTBuffer
{
BYTE* m_pData; /* tableau des données */
WORD m_Size; /* taille du tableau */
WORD m_NbData; /* nombres de données dans le tableau */
}TBuffer;
/*============================================================================*|* Déclaration des fonctions globales. *|
\*============================================================================*/
extern int LZW (char* lpszInFile, char* lpszOutFile);
extern int UnLZW (char* lpszInFile, char* lpszOutFile);
extern int GetJobTotal ();
extern int GetJobCurrent ();
extern int GetInSize ();
extern int GetOutSize ();
#endif /* _LZ_H_INCLUDED */
coq73
Messages postés5Date d'inscriptionjeudi 24 juin 2004StatutMembreDernière intervention18 novembre 2004 24 juin 2004 à 16:28
bonjour
s'il te plait je n'arrive pas à telecharger le zip attaché car j'aimerai avoir la librairie " LZW.H"..comment y arriver.
jean pierre depuis l'italie
Oui, merci beaucoup;
votre apport pour ma base d'algorithmes enrichit ma perception de votre travail.
soporifik27
Messages postés7Date d'inscriptionmercredi 5 novembre 2003StatutMembreDernière intervention 6 janvier 2004 6 janv. 2004 à 00:24
alors la j'ai qu'une chose a faire !!!
MERCI MERCI MERCI !!!!
je m'incline pour te remercier lol
ça fait pas mal de jours que je cherche un code qui marche pour compresser avec cet algorithme pour comprendre la façon dont il fonctionne et tu me sauves !!!
merci grâce a toi on aura peut être une bonne note ! lol
23 avril 2012 à 22:50
15 mai 2007 à 12:04
Quels types de fichier il compresse? puiseque je dois presenter un project pour la compression et decompression d'un fichier de texte.
19 juil. 2006 à 15:02
Chapeau, super propre ton code ( 2 ans aprés je relance les compliments).
+ yolas22.
2 déc. 2005 à 09:16
- ce code est en C.
- j'utilise jamais la stl en C++.
Par contre ma façon de stocker le dico est trop compliqué. Il y a en fait beaucoup plus simple.
Il suffit d'avoir un buffer contenant les x derniers octets et de sauvegardé une liste d'indice pour remonter les mots (utilisés par gzip).
1 déc. 2005 à 19:28
http://support.microsoft.com/default.aspx?scid=kb;fr;157159#appliesto
Merci d'avance
hebus16
3 nov. 2005 à 09:01
Des compressions plus simples existent :
RLE (Run Length Encoding)
Huffman.
Et plus complique :
ZIP, RAR, JPEG (image), MP3 (musique)...
Pour RLE et huffman, des sources et doc existent un peu partout sur ce site et le net.
Dans tous les cas, il faudra une fonction permettant d'écrire dans un fichier bit par bit.
2 nov. 2005 à 12:40
10 oct. 2005 à 21:48
7 sept. 2004 à 22:33
Dans ma tête c'était beaucoup plus simple mais plus gourmand en mémoire
merci d'avoir répondu à mon message...
17 juil. 2004 à 15:51
ce sujet et j'ai pas trouver de bonne pages
et j'ai vu la pages dans le ZIP
et elle me semble tres claires ....(Merci !!!)
je vais essayer de traviller dessous et je te montrerai mon travaille des que possibles
allez A+ .
16 juil. 2004 à 21:16
pour faire ce prog je me suis basé sur la page web incluse dans le zip et en tappant lzw sur un moteur de recherche on trouve pas mal de doc la dessus
16 juil. 2004 à 18:01
codes c'est Exellent .
Mais j'ai comme meme une question
j'ai essayer de compresser un fichier jpg mais
sa taille a augmenter de qlq KO pkoi ??.
Bon je voulais aussi si tu peut m'indiquer les
tutorial ou tu as appris toutes ces choses ;-)
Merci enocre et BRAVO !!!!!
25 juin 2004 à 11:02
buona giornata carissimo
JEAN PIERRE
24 juin 2004 à 23:40
si tu as tjrs des pb, donne e-mail par message perso et je t'enverrais le zip.
/******************************************************************************|* LZW.h : entête pour les fonctions de compression / décompression avec *|
|* l'algorithme LZW. *|
\******************************************************************************/
#ifndef _LZ_H_INCLUDED
#define _LZ_H_INCLUDED
/*============================================================================*|* Définition de types de base. *|
\*============================================================================*/
typedef unsigned char BYTE; /* donnée de 1 octet (8 bits) */
typedef unsigned short WORD; /* donnée de 2 octets (16 bits) */
typedef unsigned long DWORD; /* donnée de 4 octets (32 bits) */
/*============================================================================*|* Définition de constantes. *|
\*============================================================================*/
/* codes spéciaux */
#define LZW_EOF 256 /* fin de fichier */
#define LZW_BIT_PLUS 257 /* un bit de plus à lire */
#define LZW_NEW_DIC 258 /* nouveau dictionnaire */
#define LZW_BEGIN_DIC 259 /* premier mot du dictionnaire */
/* paramètres de l'algorithme */
#define MIN_BITS 9 /* nombre min de bits */
#define MAX_BITS 12 /* nombre max de bits */
#define MAX_DICO_LENGTH 4096 /* taille max du dictionnaire */
#define MAX_BUFFER_LENGTH 4096 /* taille max des buffers */
/* taille des buffers pour les lectures / écritures */
#define FILE_BUFFER_LENGTH 32768
/* modes de fonctionnement */
#define COMPRESS 1 /* mode compression */
#define UNCOMPRESS 2 /* mode décompression */
/* définition TRUE */
#ifndef TRUE
#define TRUE 1
#endif
/* définition FALSE */
#ifndef FALSE
#define FALSE 0
#endif
/*============================================================================*|* Codes de retour des fonctions. *|
\*============================================================================*/
#define LZW_SUCCESS 0 /* succès */
#define LZW_ERROR_INFILE -1 /* erreur sur le fichier d'entrée */
#define LZW_ERROR_OUTFILE -2 /* erreur sur le fichier de sortie */
#define LZW_ERROR_NAMES -3 /* noms de fichiers identiques */
#define LZW_ERROR_MEM -4 /* erreur de mémoire */
#define LZW_ERROR_READ -5 /* erreur de lecture */
#define LZW_ERROR_WRITE -6 /* erreur d'écriture */
#define LZW_ERROR_EOF -7 /* fin de fichier non trouvé
(décompression) */
/*============================================================================*|* Structure décrivant un buffer. *|
\*============================================================================*/
typedef struct tagTBuffer
{
BYTE* m_pData; /* tableau des données */
WORD m_Size; /* taille du tableau */
WORD m_NbData; /* nombres de données dans le tableau */
}TBuffer;
/*============================================================================*|* Déclaration des fonctions globales. *|
\*============================================================================*/
extern int LZW (char* lpszInFile, char* lpszOutFile);
extern int UnLZW (char* lpszInFile, char* lpszOutFile);
extern int GetJobTotal ();
extern int GetJobCurrent ();
extern int GetInSize ();
extern int GetOutSize ();
#endif /* _LZ_H_INCLUDED */
24 juin 2004 à 16:28
s'il te plait je n'arrive pas à telecharger le zip attaché car j'aimerai avoir la librairie " LZW.H"..comment y arriver.
jean pierre depuis l'italie
21 janv. 2004 à 11:06
votre apport pour ma base d'algorithmes enrichit ma perception de votre travail.
6 janv. 2004 à 00:24
MERCI MERCI MERCI !!!!
je m'incline pour te remercier lol
ça fait pas mal de jours que je cherche un code qui marche pour compresser avec cet algorithme pour comprendre la façon dont il fonctionne et tu me sauves !!!
merci grâce a toi on aura peut être une bonne note ! lol