RLE: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Nie podano opisu zmian
WP:SK+ToS+Bn+mSI, drobne redakcyjne, drobne techniczne
Linia 1:
{{Do tablicy rejestracyjnej|RLE}}
 
'''Run-Length Encoding''' ('''RLE''', kOodowaniekodowanie 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ągu), a dokładniej przez pary: licznik powtórzeń litery, ''litera''.
 
Na przykład w ciągu:
Linia 7:
wwwwwiiiikkkkkkkiiippppppeeeeeddddiia
 
litera 'w'‘w’ powtarza się 5 razy, co jest zapisywane jako <tt>5w</tt> (ciąg pięciu liter <tt>w</tt>), dalej 'i'‘i’ 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, dokumenty [[fax]], 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]], [[BMPWindows (format)Bitmap|BMP]], [[TGA (informatyka)|TGA]], również jako jeden z filtrów w dokumentach [[PostScript]] i [[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 kompresji dźwięku jakiś sposób [[predykcja|predykcji]].
 
W niektórych praktycznych implementacjach (np. w filtrach PostScript i PDF, w formacie TGA) zapobiega się kodowaniu serii 1-elementowych, a więc powstawianiu 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.
 
== RLE 2D ==
W kompresji obrazów bitmapowych można stosować również rozszerzenie metody, w której sprawdza się czy w bieżącym wierszu obrazu powtarzają się piksele z wiersza wcześniejszego, wykorzystując w ten sposób ewentualne przestrzenne zależności.
 
Może sprawdzać, czy zachodzi równość ciągu pikseli <math>(x, y)</math> i <math>(x, y-1)</math> dla pewnego zakresu <math>x</math>, jak również na skos, tj. porównywać z ciągami pikseli z poprzedniego wiersza przesuniętymi o jedną pozycję w lewo lub prawo (<math>(x-1, y-1)</math> lub <math>(x+1, y-1)</math>). Jeśli zostanie znaleziony taki ciąg, wówczas zapisywana jest jego długość oraz kierunek porównania (tj. powyżej, powyżej na skos w lewo lub prawo). Rzecz jasna prócz tego stosowana jest zwykła metoda RLE.
 
=== Przykład XDXDXDXDXDXD ===
Fragment obrazu:
 
y - 1 a <font color="blue">b c d a a</font> a <font color="green">b c</font> ''przetworzony wiersz obrazu''
y <font color="blue">b c d a a</font> c c <font color="green">b c</font> ''przetwarzany wiersz''
 
Wiersz <math>y</math> może zostać zakodowany 6 symbolami: <font color="blue">(na skos w prawo)<tt>5</tt></font>, <tt>2c</tt>, <font color="green">(powyżej)<tt>2</tt></font>; udało się znaleźć w przetwarzanym wierszu dwa ciągi występujące w poprzednim, oprócz tego powtarza się litera <tt>c</tt>.
 
Dla porównania po zastosowaniu wyłącznie kodowania długości serii: <tt>1b1c1d2a2c1b1c <tt> (14 symboli), zaś po eliminacji ciągów 1-elementowych: <tt>(3)bcd2a2c(2)bc</tt> (11 symboli).
 
== Bibliografia ==
XDD
* {{Cytuj książkę | nazwisko=SayoodPrzelaskowski | imię=KhalidArtur | autor link= | tytuł=Kompresja danych : wprowadzeniepodstawy, metody bezstratne, kodery obrazów | data=20022005 | wydawca="RM"BTC | miejsce=Warszawa | isbn=83-724360233-09405-25}}
==Bibliografia==
* {{Cytuj książkę | nazwisko=PrzelaskowskiSayood | imię=Artur | autor link= | inni=Khalid | tytuł=Kompresja danych:. podstawy, metody bezstratne, kodery obrazówWprowadzenie | data=20052002 | wydawca=BTCRM | miejsce=Warszawa | isbn=83-602337243-05094-52}}
* {{Cytuj książkę | nazwisko=Sayood | imię=Khalid | tytuł=Kompresja danych : wprowadzenie | data=2002 | wydawca="RM" | miejsce=Warszawa | isbn=83-7243-094-2}}
 
[[Kategoria:Algorytmy kompresji]]