algorytm.org

Algorytm LZ77 - dlaczego tracę symbole?



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Forum www.algorytm.org :: Algorytmy kompresji
Witaj Gość   
[Zarejestruj się]  
[Zaloguj się]
Zamieść odpowiedź
 Algorytm LZ77 - dlaczego tracę symbole?

Koduję ciąg FEAEDAEAFE, słownik 4 pozycje, bufor także 4
Trójki zapisuję w formacie (P, C, S)

P - indeks podciągu

C - długość podciągu

S - następny symbol znajdujący się za podciągiem



1. Wpisuję do słownika pierwszy symbol



  0   1   2   3   | bufor wejściowy

-----|-----|-----|----|----------------

| F | F | F | F | F | E | A | E



2. Wypisuję pierwszą trójkę (0, 1, E) i przesuwam całe okno o 2 pozycje w lewo.



  0   1   2   3   | bufor wejściowy

-----|-----|-----|----|----------------

| F | F | F | E | A | E | D | A



3. Druga trójka (0,0, E) W słowniku nie ma symbolu więc indeks i długość 0, okno o jedną pozycję w lewo. Straciłem symbol A!



  0   1   2   3   | bufor wejściowy

-----|-----|-----|----|----------------

| F | F | E | A | E | D | A | E



4. Trójka (2,1,D), dwa miejsca w lewo



  0   1   2   3   | bufor wejściowy

-----|-----|-----|----|----------------

| E | A | E | D | A | E | A | F



5. Trójka (1, 2, A), trzy miejsca w lewo



  0   1   2   3   | bufor wejściowy

-----|-----|-----|----|----------------

| D | A | E | A | F | E | |



6. Trójka (0,0, E). Spowoduje to że przy odkodowywaniu stracę symbol F.
Po odkodowaniu otrzymuję: FEEEDEEAE - dwa symbole A przeszły w E a symbol F wogóle przepadł. Dlaczego tak się dzieje? Co z tym można zrobić?
Cytuj
Zamieść odpowiedź Strona # 
Szybka odpowiedź

Kod:    


Powered by ccBoard