Codes Huffman: exemples, applications
Pour le moment, peu de gens pensent au fait,comment fonctionne la compression. Comparé au passé, l'utilisation d'un ordinateur personnel est devenue beaucoup plus facile. Et pratiquement chaque personne travaillant avec le système de fichiers utilise des archives. Mais peu de gens pensent à leur fonctionnement et sur quel principe est la compression des fichiers. La toute première version de ce processus était les codes Huffman, et ils sont encore utilisés dans divers archivers populaires. Beaucoup d'utilisateurs ne pensent même pas combien il est facile de compresser le fichier et selon quel schéma cela fonctionne. Dans cet article, nous verrons comment la compression fonctionne, quelles nuances aident à accélérer et à simplifier le processus d'encodage, et nous comprendrons également le principe de construction d'un arbre de codage.
Histoire de l'algorithme
Le tout premier algorithme pour une efficacitéle codage de l'information électronique était le code proposé par Huffman au milieu du XXe siècle, à savoir en 1952. C'est actuellement l'élément de base principal de la plupart des programmes créés pour compresser l'information. À l'heure actuelle, l'une des sources les plus populaires utilisant ce code sont les archives ZIP, ARJ, RAR et bien d'autres.
Le principe du codage efficace
La base de l'algorithme de Huffman est un schéma,Il permet de remplacer les symboles les plus probables, les plus fréquemment rencontrés par les codes d'un système binaire. Et ceux qui sont moins communs sont remplacés par des codes plus longs. La transition vers les codes Huffman longs se produit uniquement lorsque le système utilise toutes les valeurs minimales. Cette technique vous permet de minimiser la longueur du code pour chaque caractère du message original dans son ensemble.
Le code de Huffman, exemple
Pour illustrer l'algorithme, prenonsune version graphique de la construction d'un arbre de code. Pour utiliser cette méthode a été efficace, il est utile de clarifier la définition de certaines valeurs nécessaires pour le concept de cette méthode. L'ensemble des arcs et des nœuds qui sont dirigés de nœud à nœud est généralement appelé un graphique. L'arbre lui-même est un graphique avec un ensemble de certaines propriétés:
- dans chaque nœud ne peut pas entrer plus d'un des arcs;
- l'un des nœuds doit être la racine de l'arbre, c'est-à-dire qu'aucun arc ne doit l'entrer du tout;
- Si à partir de la racine pour commencer à se déplacer le long des arcs, ce processus devrait permettre d'entrer complètement dans l'un des nœuds.
Algorithme pour construire un arbre selon Huffman
La construction du code Huffman est faite à partir de lettresde l'alphabet d'entrée. Une liste de ces nœuds qui sont libres dans le futur arbre de code est créée. Le poids de chaque noeud dans la liste doit être la même que la probabilité d'occurrence des postes de lettres correspondant à ce noeud. Dans ce cas, parmi les quelques noeuds libres du futur arbre est choisi celui qui pèse le moins. Dans le même temps, si les indicateurs minimum sont observés dans plusieurs nœuds, il est alors possible de choisir librement l'une des paires.
Améliorer l'efficacité de la compression
Pour augmenter l'efficacité de compression, il est nécessaire dele temps de construire un arbre de code pour utiliser toutes les données concernant la probabilité de lettres apparaissant dans un fichier particulier attaché à un arbre, et de ne pas les laisser disperser sur un grand nombre de documents texte. Si vous parcourez d'abord ce fichier, vous pouvez immédiatement calculer les statistiques sur la fréquence à laquelle les lettres d'un objet à compresser sont rencontrées.
L'accélération du processus de compression
Pour accélérer l'algorithme, la définition des lettresIl est nécessaire d'effectuer non sur les indices de la probabilité de l'apparition de telle ou telle lettre, et sur la fréquence de son apparition. Grâce à cela, l'algorithme devient plus simple, et le travail avec celui-ci est grandement accéléré. Cela évite également les opérations associées aux virgules flottantes et à la division.
Conclusion
Les codes de Huffman - simples et établis de longue datealgorithme, qui est encore utilisé par de nombreux programmes et entreprises bien connus. Sa simplicité et sa clarté permettent d'obtenir des résultats de compression efficaces pour les fichiers de toute taille et de réduire considérablement l'espace qu'ils occupent sur le disque de stockage. En d'autres termes, l'algorithme de Huffman est un schéma longuement étudié et bien conçu, dont la pertinence ne diminue pas à ce jour.