Documente Academic
Documente Profesional
Documente Cultură
Dicţionarele statice sunt create din timp, iar în procesul codării ele nu se
modifică.
Neajunsul esențial al dicționarelor statice este necesitatea transmisiunii acestui
şi decodorului împreună cu fișierul comprimat.
Dicţionarele dinamice sau adaptive se construiesc în procesul de realizare a
procedurii de compresie prin adăugarea în dicționarul inițial a cuvintelor noi
Aceste modificații se notează prin simbolurile LZX, LZY ş.a.m.d., unde Х sau
Y ş.a.m.d. reprezintă prima literă a numelui autorului modificaţiei.
5
12.2. Algoritmul de compresie Lempel-Ziv77 (LZ77)
Algoritmul LZ77 şi modificațiile lui se mai numesc algoritme cu dicţionare
glisante sau ferestre glisante
Codorul organizează în memoria sa o anumită regiune numită fereastră
glisantă cu volumul de M baiți, în care pot fi amplasate M simboluri
Rezultatul codării seriei selectate se prezintă în forma unui triplet de forma (p,l,s)
unde:
p - numărul poziției de început a seriei ce coincide în dicționar, De obicei, numărul
poziției p se consideră nu față de începutul cache-ului de căutare dar față de
începutul cache-ului de previzualizare
l - lungimea serie ce coincide;
s - prima (după seria ce coincide) literă din cache-ul de previzualizare care iarăși
nu coincide
În cazul exemplului, codul coincidenței serie adc este (2,3,_) , unde p=2
(numărul poziției de început al seriei ce coincide), l=3 – lungimea coincidenței
(numărul simbolurilor seriei ce coincide), s=_ (unde “_ ” se consideră semnul
pauzei dintre cuvintele).
Eficiența compresiei este cu atât mai înaltă, cu cât este mai mare volumul W al
dicționarului (de obicei, în practică W=2÷16 mii simboluri)
Crește probabilitatea de obținere a unor serii cât mai lungi ce coincid (de obicei,
în practică L≈ câteva zeci)
Soluție:
а) Procedura de codare
Cache-ul
Cache-ul de
de căutare
căutare Cache-ul
Cache-ul de
de
Nr.
Ieșire
Ieșire codor
codor
Nr. (dicționarul)
(dicționarul) previzual.
previzual.
pas
pas
pas
8
8 7
7 6
6 5
5 4
4 3
3 2
2 1
1 1
1 2
2 3
3 4
4 p
p ll S
S
1
1 -- -- -- -- -- -- -- -- L
L Z
Z 7
7 7
7 0
0 0
0 L
L
2
2 -- -- -- -- -- -- -- L
L Z
Z 7
7 7
7 L
L 00 00 Z
Z
3 - - - - - - L Z 7 7 L Z 0 0 7
4 - - - - - L Z 7 7 L Z 7 1 1 L
5 - - - L Z 7 7 L Z 7 7 . 4 3 .
Tot
Z 7 7 L Z 7 7 . - - - - - -
al
9
Astfel, textul codat reprezintă o serie din tripletele: (0,0,L), (0,0,Z), (0,0,7), (1,1,L) şi
(4,3,.)
K C 65 0,9
72
10
b) Procedura de decodare