Généralités projet compression. Cahier des charges: compression, décompression, plus généralement. Principe de la compression de données. Compression de HUFFMAN. Enoncé du principe de HUFFMAN. Composition du programme. Etude de la complexité du programme: algorithme de compression, algorithme de décompression, complexité globale de l'algorithme. Les fonctions, leur rôle. Le principe d'exploitation des données. Les limites théoriques du programme. Comparaisons de compression. Programme source
[...] L'arbre est nécessaire lors de la décompression car il permettra de savoir (en le remontant) où il faut s'arrêter dans la lecture d'un code à convertir en caractère. Decodage_Donnees (‘FILE', ‘FILE') Cette fonction décode à partir de l'arbre de HUFFMAN ainsi ré-établi, les données issues du corps du fichier compressé. Le principe de remontée de l'arbre de HUFFMAN a été évoqué lors de la description de la fonction Creation_Arbre_Decodage (‘FILE') DeCompression_Huffman (‘FILE', ‘FILE') De la même manière que Compression_Huffman(‘FILE'), c'est la fonction principale permettant d'articuler toutes les autres fonctions lors de la phase de décompression. [...]
[...] Ex : l'octet 2 est utilisé comme suit : C Les limites théoriques du programme Notre programme de compression décompression de HUFFMAN doit faire face à quelques limites, elles sont mathématiques et inhérentes au choix de nos variables et de notre codage, mais aussi physiques et donc dépendantes du principe même énoncé par HUFFMAN. Les restrictions mathématiques : Nous venons de voir que la table des codages offrait une particularité sur la longueur des codes associés au niveau de l'octet n°2. Nous pouvons en effet enregistrer la longueur du code associé à un motif sur 6 bits de données soit au maximum, un code pourra être enregistré sur 64 bits de données. [...]
[...] Premièrement, sachant qu'il ne doit pas y avoir plus de 256 motifs différents, cette limite est vraisemblablement impossible à atteindre. Et il est aussi désavantageux d'arriver à coder des motifs sur autant de bits sachant qu'à l'origine, ils sont codés sur 8 bits uniques Dans ce cas, un motif serait stocké sur un espace de données 8 fois plus important qu'à l'origine Quel intérêt ? On notera le même type de restriction sur tous les compteurs qui sont enregistrés au début du fichier car leur taille octale est fixée à l'avance. Toutefois, les limites sont sensées n'être pas atteignables. [...]
[...] Elle permettra à terme d'ordonner ce tableau couplé à un jeu d'instruction. TriTable (‘T_ASCII') Cette fonction prend le rôle du jeu d'instruction permettant le tri du tableau qui contient les informations sur le cumul des fréquences dont nous venons de parler. Elle permet donc de tirer le tableau par ordre décroissant de sortie des motifs dans le fichier source (à compresser) CalculFrequence (‘FILE', ‘T_ASCII') Cette fonction calcule le nombre de fois qu'un motif apparaît dans le fichier source (à compresser). [...]
[...] Soit le texte suivant : BACFGABDDACEACG Imaginons que le fichier source (à compresser) contienne ce texte. Une fois le calcul des fréquences effectué, nous obtenons : Voilà le type d'arbre de HUFFMAN qui correspond à ces résultats et qui permet d'obtenir le codage correspondant à chaque motif : Le parcours descendant récursif de cet arbre permet grâce au code ou associé à chaque Nœud d'obtenir le codage correspondant à une lettre particulière (qui est représentée par une feuille de l'arbre). [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture