analog
9/12/2007 1:14:00 PM
Witam
Moze ktos spotkal gdzies w literaturze identyczny (lub podobny) algorytm kompresji RL jak ponizej opisany.
Nie interesuje mnie kompresor/dekompresor, bo to sprawa banalna. Raczej pochodzenie konkretnego
rozwiazania. Calkiem mozliwe ze zostalo gdzies wczesniej opisane.
Zostal on zaimplementowany w krzemie (czyli sprzetowa dekomrpesja), i opis bazuje na analizie danych
wejsciowych i wyjsciwoych (czyli rev. engineering). Uzywane toto bylo lat temu 15 glownie do sprzetowej
dekomrpesji grafiki.
- dane zapisane w dwu blokach : 256 bajtowa tablica (128 x dwa bajty) + dane skompresowane
- skompresowane dane w postaci 9 bitowej: paczki 1+8 bajtow, gdzie pierwszy bajt zawiera 9 bit kazdego
z nastepnych 8 (mozna rowniez interpetowac to jako bajt kontrolny + 8 bajtow danych)
- dekompresja dwuetapowa:
1. jesli 9 bit (czyli pochodzacy ze bajtu kontrolnego)jest rowny 1, to bit numer 8 jest ignorowany,
a bity 0-7 sa indeksem w tablicy 128x2 - w rezultacie 9 bitowa dana zastepowana jest para bajtow
z tablicy,
2. typowa komrpesja RL - znacznikiem jest powtorzenie bajtu, czyli: gdy aktualnie analizowany bajt
ma taka sama wartosc jak poprzedni, to jest powtarzany n+1 razy (bajt nastepny zawiera n, czyli
licznik powtorzen).
--
TS