Přeskočit na obsah
100% lokálně

Kódování délky běhu

Komprimujte opakované znaky na páry počet-znak a dekódujte je zpět.

Vstup
Výstup

Kódování délky běhu

Kódování délky běhu nahradí opakované znaky počtem a samotným znakem: "aaabcc" se změní na "3a1b2c" — tři a, jedno b, dva c. Tento nástroj text tímto způsobem kóduje a dekóduje jej zpět, zcela v prohlížeči. Je to stejný princip, který stojí za faxovou kompresí, variantou RLE v BMP a jednoduchými formáty herních aktiv: opakující se data se výrazně zmenší, zatímco text bez opakování se sotva změní.

Dvě volby formátu určují, jak se každý běh napíše: počet před znakem (3a) nebo znak před počtem (a3). Zapnutím možnosti "komprimovat pouze běhy delší než 1" zůstanou jednotlivé výskyty holé — "aaabcc" se změní na "3ab2c" místo "3a1b2c" — čtení blíže k tomu, jak se RLE vyučuje, za cenu potřeby oddělovače pro text, který také obsahuje číslice. Oddělovač mezi běhy (čárka, mezera, cokoli, co napíšete) zcela odstraňuje tuto nejistotu a je vyžadován pro režim bajtů. "Zpracovat řádek po řádku" zabraňuje běhům v překročení zalomení řádků, užitečné, když je každý řádek skutečně vlastním záznamem.

Režim bajtů interpretuje vstup jako hexadecimální bajty místo textových znaků — vložte hex jako "00 00 00 ff" (mezery se ignorují) a jsou seskupeny a komprimovány bajt po bajtu, což je způsob, jakým se RLE skutečně používá na binárních datech, jako jsou nekomprimované řádky obrázků. Dekódování zrcadlí každou možnost: vyberte stejný formát, oddělovač a nastavení režimu bajtů použitého pro kódování a původní text nebo hex se vrátí přesně. Živá tabulka zobrazuje délku vstupu a výstupu plus poměr komprese, abyste mohli na první pohled vidět, zda je daný vstup dobrým kandidátem pro kódování délky běhu.

Všechno běží lokálně v prohlížeči — nic, co vložíte, se nikam nenahrává. Zkopírujte výsledek, stáhněte si jej jako soubor .txt nebo pošlete výstup přímo zpět do vstupu a přepněte směr a ověřte cestu tam a zpět.

Časté dotazy

Co přesně znamená 3a1b2c?
Znamená to tři a, jedno b a poté dva c — kódování délky běhu "aaabcc". Počet vždy přichází se znakem, který počítá, v kterémkoli pořadí, které si zvolí volba formátu.
Proč dekódování někdy selhá nebo vytvoří nesprávný text?
Dekódování předpokládá, že formát, oddělovač a možnosti režimu bajtů odpovídají tomu, co bylo použito pro kódování. Pokud původní text obsahuje znaky číslic a nebyl použit žádný oddělovač, číslice mohou být mylně čteny jako součást počtu — přidejte oddělovač, abyste se tomu vyhnuli.
Kdy je kódování délky běhu opravdu užitečné?
Na datech s dlouhými opakujícími se běhy — jednobarevné řádky obrázků, vyplnění bajtů, opakované znaky protokolu — výrazně se zmenší výstup. Na typickém textu to obvykle zvětšuje výstup, protože se většina znaků neopakuje.
Na co je režim bajtů?
Interpretuje vstup jako hexadecimálně kódované bajty místo textu, takže můžete spustit kódování délky běhu binárních dat (vložených jako hex) způsobem, jakým to dělají formáty obrázků a faxů, bajt po bajtu místo znaku po znaku.
Jsou moje data někde nahrána?
Ne. Kódování a dekódování běží zcela v prohlížeči — nic, co napíšete nebo vložíte, nikdy neopustí vaše zařízení.