Outil pour encoder/décoder avec Run-Length Encoding (RLE), un algorithme de compression de données basique consistant a décrire une chaine en fonction de ces répétitions.
RLE (Run-Length Encoding) - dCode
Catégorie(s) : Compression
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Run Length Encoding (ou RLE, ou codage par plages) est une technique de compression de données (sans perte) basée sur les répétitions successives d'éléments.
Run Length signifie longueur de course, et en effet, avec RLE, ce qui importe c'est la longueur, la taille des répétitions (dans un texte, un message, etc.)
RLE est un nom générique pour cette technique de compression, plusieurs manière de l'utiliser et de l'implémenter existent.
Le texte à encoder est parcouru pour trouver des suites de caractères identiques, noter alors le caractère et le nombre de répétition dans la séquence.
Exemple : DDDDDCCCCOOODDE peut être décrit par 5 fois le caractère D suivi de 4 fois le caractère C, etc. Le message peut donc être compressé D5C4C3D2E1 (10 caractères au lieu de 15, taux de compression : 33%).
Cette manière de procéder ne produit une compression que si le message est composé de nombreuses répétitions.
Exemple : DCODE serait compressé D1C1O1D1E1 (10 caractères au lieu de 5, taux de compression : -100%). Afin d'éviter ce genre de cas, il est possible d'omettre le 1 dans les cas de non-répétitions.
Variante d'écriture
Il est possible d'encoder en inversant les caractères et les décomptes.
Exemple : 5D4C3C2D1E est alors équivalent à D5C4C3D2E1
Cas de données binaires
Si le message est composé de données binaires (0 et 1), alors il est possible d'utiliser RLE sans indiquer le caractère, les nombres suffisent. Le premier chiffre indiquant les 0 (ou bien les 1) puis en alternance.
Exemple : 00011110000 se code 3,4,5
Cas de données numériques
Si le message est composé de chiffres, alors utiliser un séparateur sous peine de ne plus pouvoir distinguer les caractères de leur nombre de répétition.
Exemple : 11111111111122 se code 12-1,2-2 et non 12122 qui pourrait se traduire 1 répété 2122 fois, ou 1 fois 2 suivi de 12' fois le chiffre 2, etc.
La décompression RLE consiste à parcourir le message formé de couples (caractère, nombre de répétition) et d'écrire l'équivalent en répérant le caractère le nombre de fois correspondant.
Exemple : D5C4C3D2E1 se décompose en D5, C4, O3, D2, C1 et de répéter les caractères le bon nombre de fois : D5 => DDDDD puis C4 => CCCC, etc. pour obtenir DDDDDCCCCOOODDE
Cas de données binaires
Exemple : 3,4,5 se décode 00011110000 (ou 11100001111 selon la convention utilisée)
Un message compressé avec RLE est composé de couples (Caractère-Nombre) ou triples (Caractère-séparateur-Nombre)
Les formats d'image BMP et PCX utilisent RLE pour réduire la taille des fichiers.
dCode se réserve la propriété du code source pour "RLE (Run-Length Encoding)". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "RLE (Run-Length Encoding)", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "RLE (Run-Length Encoding)" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "RLE (Run-Length Encoding)" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "RLE (Run-Length Encoding)" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
RLE (Run-Length Encoding) sur dCode.fr [site web en ligne], consulté le 09/09/2024,