Ga naar inhoud
100% lokaal

Run-length-codering

Herhaalde tekens in aantal-teken-paren comprimeren en terug decoderen.

Invoer
Uitvoer

Run-length-codering

Run-length-codering vervangt herhaalde tekens door een getal en het teken zelf: "aaabcc" wordt "3a1b2c" — drie a's, één b, twee c's. Dit gereedschap codeert tekst op deze manier en decodeert het onmiddellijk terug, volledig in uw browser. Het is hetzelfde principe achter faxcompressie, de RLE-variant van BMP en eenvoudige game-assetformaten: herhaalde gegevens krimpen veel in, en tekst zonder herhaling verandert nauwelijks van grootte.

Twee formaatopties bepalen hoe elke run wordt geschreven: getal vóór het teken (3a) of teken vóór het getal (a3). Het inschakelen van "Alleen runs langer dan 1 comprimeren" laat enkele exemplaren ongewijzigd — "aaabcc" wordt "3ab2c" in plaats van "3a1b2c" — wat dichter bij de manier ligt waarop RLE wordt onderwezen, maar vereist een scheidingsteken voor tekst die ook cijfers bevat. Een scheidingsteken tussen runs (een komma, een spatie, alles wat u typt) verwijdert die dubbelzinnigheid volledig en is vereist voor byte-modus. "Regel voor regel verwerken" voorkomt dat runs over regelafbrekingen heen gaan, handig wanneer elke regel echt zijn eigen record is.

Byte-modus behandelt de invoer als hex-bytes in plaats van teksttekens — plak hex zoals "00 00 00 ff" (spaties worden genegeerd) en het wordt byte voor byte gegroepeerd en gecomprimeerd, zoals RLE daadwerkelijk wordt gebruikt op binaire gegevens zoals niet-gecomprimeerde beeldrijen. Decodering weerspiegelt elke optie: selecteer dezelfde indeling, hetzelfde scheidingsteken en de byte-modusinstelling die voor codering werden gebruikt, en de originele tekst of hex komt exact terug. De live tally toont invoer- en uitvoerlengte plus de compressieverhouding, zodat u in één oogopslag kunt zien of een bepaalde invoer überhaupt een goed kandidaat voor run-length-codering is.

Alles wordt lokaal in uw browser uitgevoerd — niets wat u plakt, wordt ergens geüpload. Kopieer het resultaat, download het als .txt-bestand of stuur de uitvoer rechtstreeks terug naar de invoer om van richting te veranderen en de retour te verifiëren.

FAQ

Wat betekent 3a1b2c eigenlijk?
Het betekent drie a's, één b, dan twee c's — de run-length-codering van "aaabcc". Het getal hoort altijd bij het teken dat het telt, in welke volgorde dan ook de formaatoptie kiest.
Waarom mislukt decodering soms of produceert de verkeerde tekst?
Decodering gaat ervan uit dat de indeling, scheidingsteken en byte-modusopties overeenkomen met wat voor codering werd gebruikt. Als de originele tekst cijfertekens bevat en er geen scheidingsteken werd gebruikt, kunnen de cijfers als onderdeel van een getal worden misinterantieerd — voeg een scheidingsteken toe om dit te voorkomen.
Wanneer is run-length-codering werkelijk nuttig?
Op gegevens met lange herhaalde runs — eenvoudige kleurafbeeldingsrijen, opvulbytes, herhaalde logkarakters — krimpt de uitvoer veel in. Op typische tekst groeit de uitvoer meestal, omdat de meeste karakters niet herhalen.
Waarvoor is byte-modus?
Het behandelt de invoer als hex-gecodeerde bytes in plaats van tekst, zodat u binaire gegevens (geplakt als hex) op dezelfde manier kunt coderen als afbeeldings- en faxformaten, byte voor byte in plaats van teken voor teken.
Wordt mijn tekst ergens geüpload?
Nee. Codering en decodering worden volledig in uw browser uitgevoerd — niets wat u typt of plakt, verlaat uw apparaat.