Qu’est-ce que le codage par plages ?
Le codage par plages est une méthode de compression sans perte qui remplace des valeurs identiques consécutives par chaque valeur et la longueur de sa plage. Son efficacité dépend de la fréquence des longues plages dans les données sources.
Fonctionnement du codage par plages
Un encodeur RLE parcourt les symboles dans un ordre défini et émet des paires ou des jetons décrivant une valeur et son nombre de répétitions. Le décodage développe chaque jeton de manière déterministe, sans supprimer aucune information source. L’ordre de parcours est important pour les images : des lignes horizontales peuvent produire de longues plages dans des illustrations aux couleurs uniformes, mais des plages courtes avec un autre parcours ou sur des photographies bruitées. Le RLE est souvent intégré comme une étape dans des formats d’images matricielles, de fax, de masques, de sous-titres ou de données intermédiaires, plutôt qu’utilisé comme un type de fichier autonome universel.
Points clés
- Un encodeur a besoin d’une convention d’échappement ou de représentation des jetons pour distinguer les valeurs littérales des marqueurs de plages ; la représentation exacte dépend du format et n’est pas inhérente au principe du RLE.
- L’augmentation de taille est maximale lorsque les valeurs changent fréquemment, car des métadonnées de plage sont ajoutées à des plages très courtes ; certains formats passent à des blocs de valeurs littérales pour limiter ce surcoût.
- Les plages ne doivent pas franchir les limites interdites par le format qui les contient, telles que les lignes de balayage ou les tuiles, même lorsque la dernière valeur d’une unité correspond à la première de la suivante.
Quand le codage par plages est utile
Choisissez cette méthode pour les masques, les graphiques simples ou d’autres données contenant de longues séquences de pixels identiques. Une entrée bruitée ou très variée peut produire une forme encodée aussi volumineuse, voire plus volumineuse que l’original.