Skip to content

Latest commit

 

History

History
executable file
·
111 lines (77 loc) · 2.77 KB

DOCUMENTATION_LIBHUFFMAN.md

File metadata and controls

executable file
·
111 lines (77 loc) · 2.77 KB

DOCUMENTATION DE LA BIBLIOTHEQUE HUFFMAN

STUCTURES DE DONNEES

Structure de l'arbre de Huffman

struct arbre_huffman {
    unsigned char symbole;   
    unsigned int occurence;   
    unsigned int code_binaire;              
    unsigned int nb_bits;           
    struct arbre_huffman *gauche, *droite;           
};

Structure du dictionnaire

struct dico{
    unsigned int code_binaire;
    unsigned int nb_bits;
};

DEFINITIONS

SOURCE_NON_TROUVEE -1
CIBLE_NON_GENEREE -2
MAX_SYMBOLES 256
MAX_OCCURENCES 255
MAX_NOM 255
GAUCHE 0
DROITE 1

VARIABLES GLOBALES

unsigned int NbOctFichierAComp=0;
unsigned int NbOctFichierADecomp=0;
unsigned int NbOctEntete=0;
unsigned int NbOctDonnees=0;
unsigned int NbSymboles=0;
unsigned int MaxOcurrences=0;
unsigned int MaxNbBits=0;
unsigned int TabNbBits=0;
unsigned int TabOcurrences[MAX_SYMBOLES];
struct arbre_huffman *TabArbres[MAX_SYMBOLES], *Racine=NULL;
struct dico Dictionnaire[MAX_SYMBOLES];

HUFFMAN.H

Initialisation d'une liste chainée.
Chemin* nouveauChemin(int x, int y);

INIT

Initialisation du tableau des occurrences.
void huffman_initialise_TabOccurences();

Initialisation du dictionnaire.
void huffman_initialise_Dictionnaire();

Initialisation du tableau des arbres.
void huffman_initialise_TA(struct arbre_huffman *TA[]);

Contruction de l'arbre binaire.
void huffman_construire_arbre_binaire();

TOOL

Tri l'arbre de Huffman par occurences.
void tri_TA_occurrences(struct arbre_huffman *TA[]);

Affiche de la syntaxe.
void affiche_syntaxe(char commande[]);

COMPRESSION

Création du code par un parcours préfixé de l'arbre.
`void huffman_creer_code(struct arbre_huffman *arbre, unsigned int code, unsigned int niveau);

Fonction de compression.
`int huffman_compression(char NomFichier[]);

Ecriture de l'en-tête.
`void huffman_ecrire_entete(FILE *fcible);

Ecriture du codage.
`int huffman_ecrire_codage(FILE *fsource, FILE *fcible);

Calcul des occurences des symboles dans le fichier source.
`int huffman_calcule_occurences(char nomfichier[]);

DECOMPRESSION

Fonction de décompression.
int huffman_decompression(char NomFichierSource[]);

Lecture de l'en-tête.
void huffman_lire_entete(FILE *fentree);

Lecture du codage.
int huffman_lire_codage(FILE *fsource, FILE *fcible);

Calcul de la taille du fichier.
unsigned int huffman_calcule_taille_fichier(FILE *fentree);