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
[editovat | editovat zdroj]Příklad vstupních dat kodéru RLE:
WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW
Výsledek kódování RLE:
12W1B12W3B24W1B14W
Implementace
[editovat | editovat zdroj]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
[editovat | editovat zdroj]- PCX prakticky, implementace komprimace RLE: http://www.root.cz/clanky/…