RLE

RLE (ang. Run-Length Encoding - kodowanie długości serii) – prosty kodek kompresji bezstratnej.

RLE jest jednym z najprostszych kodeków kompresji bezstratnej. Zasada jego działania opiera się na sprawdzeniu, czy obok siebie występują bajty o tych samych wartościach i jeśli ten warunek jest spełniony, zamieniają powtarzające się bajty na parę danych – ilość powtórzeń bajta i wartość bajta. Dzięki temu wielokrotnie powtarzający się bajt można zapisać w zaledwie dwóch bajtach.

Taki format kompresji bezstratnej wykorzystywany jest np. w grafice rastrowej w formatach BMP, PCX czy TGA. Dostępny jest też w formatach PostScript i PDF. Skuteczność tego rozwiązania jest szczególnie duża w przypadku bitmap w których dominuje jednolite tło i litery (np. skanowane dokumenty lub inne grafiki z tekstem). Dzieki tym własnościom RLE znalazł zastosowanie także w faksach.

Inne implementacje RLE pozwalają na zwiększenie stopnia kompresji przez sprawdzanie nie tylko występujących po sobie znaków, ale również kolejnych linii obrazu (na występowanie takich samych danych w kilku liniach, lub powtarzających się, ale przesuniętych ciągów danych). W takim przypadku zastosowany zostaje nieco inny format danych wyjściowych. Podobnie inne implementacje pozwalają nie zapisywać pojedynczych bajtów w postaci dwubajtowej (licznik pojedynczego występnie i wspomniany bajt) – wcześniej umieszcza się informację, ile kolejnych bajtów ma być traktowanych jako dane jednobajtowe. Przydatne jest to przy fragmentach bardziej złożonej grafiki, gdy piksele obok siebie mają różne wartości.