RLE: Różnice pomiędzy wersjami
[wersja nieprzejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
Nie podano opisu zmian |
|||
Linia 1:
{{Do tablicy rejestracyjnej|RLE}}
'''Run-Length Encoding''' ('''RLE''',
Na przykład w ciągu:
Linia 7:
wwwwwiiiikkkkkkkiiippppppeeeeeddddiia
litera
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]], [[
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ć
== 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
Fragment obrazu:
y
y
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>
== Bibliografia ==▼
* {{Cytuj książkę | nazwisko=
▲==Bibliografia==
* {{Cytuj książkę | nazwisko=
▲* {{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]]
|