RLE: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
→‎Przykład: fix html
m drobne merytoryczne, drobne redakcyjne, drobne techniczne
Linia 1:
{{Do tablicy rejestracyjnej|RLE}}
 
'''Run-Length Encoding''' ('''RLE''', kodowanie długości serii) – prosta metoda [[kompresja bezstratna|bezstratnej kompresji]] danych, której działanie polega na opisywaniu ciągów tych samych liter (bitów, bajtów, symboli, [[piksel]]i itp.) za pomocą licznika powtórzeń (długości ciąguserii), a dokładniej przez pary: licznik powtórzeń litery''licznik_powtórzeń_litery'', ''litera''.
 
Na przykład w ciągu:
Linia 7:
wwwwwiiiikkkkkkkiiippppppeeeeeddddiia
 
litera ‘w’<tt>w</tt> powtarza się 5 razy, co jest zapisywane jako <tt>5w</tt> (ciąg pięciu liter <tt>w</tt>), dalej ‘i’<tt>i</tt> występuje 4 razy – <tt>4i,</tt> itd. ostatecznie uzyskuje się ciąg:
 
5w4i7k3i6p5e4d2i1a
Linia 13:
składający się z 18 znaków, podczas gdy kodowany ciąg składał się z 37 znaków.
 
Dane, które charakteryzują się takim rozkładem liter to głównie [[bitmapa|obrazy bitmapowe]], np. pomiędzy wierszami tekstu występują długie ciągi pikseli w kolorze tła, dokumentyjak w dokumentach [[faxTelefaks|faksowych]], w których dominuje białe tło. Dlatego kompresja RLE jest stosowana m.in. w faksach, w różnych formatach zapisu obrazu, takich jak [[PCX]], [[Windows Bitmap|BMP]], [[TGA (informatyka)|TGA]], również jako jeden z filtrów w dokumentach [[PostScript]] i [[Portable Document Format|PDF]].
 
Kodowanie RLE jest także stosowane jako jeden z końcowych etapów kompresji, który poprzedzają transformaty mające na celu utworzenie ciągów znaków dobrze kompresowanych przez RLE; takie transformaty, to np. [[transformata Burrowsa-Wheelera|Burrowsa-Wheelera]] i [[Move To Front|MTF]] lub w przypadku [[Kompresja (informatyka)|kompresji]] dźwięku jakiś– jeden ze sposóbsposóbów [[prognozowanie|predykcji]].
 
W niektórych praktycznych implementacjach (np. w filtrach PostScript i PDF, w formacie TGA) zapobiega się kodowaniu serii 1-elementowych, a więc powstawaniu ciągów postaci <tt>1a1b1c1a</tt>. W takich przypadkach koder wysyła specjalny kod, który informuje dekoder, że następne ''n'' symboli należy wprost skopiować, a nie powielać – dla przykładowych danych będzie to ciąg <tt>(4)abca</tt>, czyli 5 symboli, zamiast 8.