Run-length encoding

RLE (run-length encoding) je bezeztrátová komprese, která kóduje vstupní data tak, že kóduje posloupnosti stejných hodnot do dvojic (délka posloupnosti, hodnota). Účinnost komprese je silně závislá na charakteru vstupních dat, která musí obsahovat delší sekvence stejných znaků, jinak výrazně účinnost komprese klesá.

Příklad

Příklad vstupních dat kodéru RLE:

WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW

Výsledek kódování RLE:

12W1B12W3B24W1B14W

Implementace

Nejčastější implementace je komprese bytového proudu. Implementuje se pomocí dvojic bytů, jeden byte udává hodnotu kódovaného bytu, druhý byte určuje počet opakování. Nevýhoda je, že pro jednu samostatnou hodnotu v proudu bytů se kóduje tato hodnota pomocí dvojice bytů, proto pro nevhodná vstupní data může být komprese neúčinná a velikost proudu z výstupu kóderu RLE až dvojnásobná oproti vstupu.

Použití v počítačové grafice pro kompresi obrazu, který obsahuje větší plochy stejné barvy. V grafických souborových formátech existují různé varianty RLE komprese, buď jako hlavní komprese dat (např. PCX) nebo jako pomocná metoda komprese dat (JPEG).

Externí odkazy