Run-length encoding

Z Wikipedie, otevřené encyklopedie

Skočit na: Navigace, Hledání

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). Účinost komprese je silně závislá na charakteru vstupních dat, která musí obsahovat delší sekvence stejných znaků, jinak výrazně účinost komprese klesá.

[editovat] Příklad

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

WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW

Výsledek kódování RLE:

12W1B12W3B24W1B14W

[editovat] 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).

[editovat] Externí odkazy