Article de reference

Encodage à longueur variable

En théorie du codage , le codage à longueur variable est un type de schéma de codage de caractères dans lequel des codes de longueurs différentes sont utilisés pour coder un jeu...

théorie du codage , le codage à longueur variable est un type de schéma de codage de caractères dans lequel des codes de longueurs différentes sont utilisés pour coder un jeu de caractères (un répertoire de symboles) pour la représentation dans un ordinateur . Le concept équivalent en informatique est la chaîne de bits .

Les codes à longueur variable permettent de compresser et de décompresser des sources sans erreur ( compression de données sans perte ) tout en conservant la possibilité de les relire symbole par symbole. Une source indépendante et identiquement distribuée peut être compressée presque arbitrairement près de son entropie . Ceci contraste avec les méthodes de codage à longueur fixe, pour lesquelles la compression de données n'est possible que pour de grands blocs de données, et toute compression au-delà du logarithme du nombre total de possibilités comporte une probabilité d'échec finie (bien que potentiellement arbitrairement petite).

Pour ces raisons, elles étaient parfois utilisées pour compresser le texte anglais et réduire sa taille dans les jeux d'aventure pour les premiers micro-ordinateurs . Cependant, l' avènement des disquettes , l'augmentation de la mémoire vive et les algorithmes de compression généralistes ont rendu ces méthodes obsolètes.

Les codages multioctets résultent généralement d'un besoin d'augmenter le nombre de caractères pouvant être codés sans rompre la compatibilité ascendante avec une contrainte existante. Par exemple, avec un octet (8 bits) par caractère, on peut coder 256 caractères possibles ; pour coder plus de 256 caractères, le choix évident serait d'utiliser deux octets ou plus par unité de codage ; deux octets (16 bits) permettraient de coder 65 536 caractères possibles, mais une telle modification romprait la compatibilité avec les systèmes existants et pourrait donc s'avérer impossible.

Les symboles sources improbables peuvent se voir attribuer des mots de code plus longs, tandis que les symboles sources probables peuvent se voir attribuer des mots de code plus courts, ce qui permet d'obtenir une longueur de mot de code moyenne faible . Parmi les stratégies de codage à longueur variable les plus connues, on peut citer le codage de Huffman , le codage de Lempel-Ziv , le codage arithmétique et le codage à longueur variable adaptatif au contexte .

I♥NY » est encodée en UTF-8 comme suit (représentée par les valeurs d'octets hexadécimales ) : 49 E2 99 A5 4E 59. Parmi les six unités de cette séquence, 49 , 4E et 59 sont des unités uniques (pour I , N et Y ), E2 est une unité de tête et 99 et A5 sont des unités de fin. Le symbole du cœur est représenté par la combinaison de l'unité de tête et des deux unités de fin.théorie des langages formels , la définition mathématique précise est la suivante : soient et deux ensembles finis, appelés respectivement alphabets source et cible . Un code est une fonction totale qui associe à chaque symbole de une séquence de symboles sur , et l'extension de à un homomorphisme de dans , qui transforme naturellement chaque séquence de symboles source en une séquence de symboles cible, est appelée son extension .