Documente Academic
Documente Profesional
Documente Cultură
1. Obiectivul lucrrii
n lucrare se va studia codarea, respectiv decodarea, unei secvene de
simboluri emise de o surs discret staionar fr memorie, utiliznd algoritmii de
compresie fr pierderi de tip Lempel-Ziv-Welch (LZW).
2. Introducere teoretic
nainte de a trece la prezentarea fiecrei metode folosite la compresia de date,
sunt necesare cteva precizri despre noiunile i notaiile folosite n lucrare.
Alfabetul sursei este o mulime A, cu J simboluri:
A = {0, 1, ... , J1}.
O secven de lungime N emis de surs este o succesiune de simboluri ale
alfabetului A i se noteaz prin
X(1,N) = x1x2 ... xN.
Un subir al secvenei, care ncepe la poziia i i se termin la poziia j, se scrie
X(i,j) = xixi+1 ... xj.
Se consider c orice secven ncepe cu irul nul, de lungime zero. irurile Xx
i xX reprezint irurile obinute prin adugarea simbolului x la sfritul, respectiv la
nceputul subirului X. Prin tabel de (sub)iruri se nelege o list de (sub)iruri,
fiecare ir avnd o adres n aceast list. irurile sunt nregistrate prin anumite
caracteristici i se gsesc la adrese succesive. Raportul de compresie este raportul
ntre lungimea irului codat i cea a irului surs.
Principiile codrii sunt urmtoarele. Codarea LZ(W) reprezint o abatere de la
concepia clasic de codare, vzut ca o coresponden ntre un set fix de simboluri ale
sursei i un set fix de cuvinte de cod. n codarea LZ(W), irurile de la surs i
cuvintele de cod sunt definite dinamic, pe msur ce se desfoar codarea. Strategia
LZ(W) const ntr-o parcurgere incremental a irului surs, care va fi mprit ntr-o
serie de subiruri de lungime din ce n ce mai mare. n cele ce urmeaz, algoritmii
sunt detaliai fiecare n parte.
2.1. Algoritmul Lempel-Ziv 1977 (LZ77)
Pentru nceput, se vor explica denumirile i noiunile folosite n descrierea
algoritmului:
76 8
poziie de codare = poziia caracterului din irul de intrare care tocmai este
codat (nceputul buffer-ului lookahead);
buffer lookahead (privete nainte) = secvena de caractere de la poziia
de codare pn la sfritul irului de intrare (de lungime Ls, lungimea
cuvintelor surs);
fereastr de dimensiune N = subirul care conine N caractere de la poziia
de codare napoi (ultimele N caractere procesate);
pointer = indicatorul care arat potrivirea fa de fereastr i specific
lungimea acestei potriviri;
n = lungimea total a buffer-ului (include buffer-ul lookahead i fereastra).
Pasul 4.
77
Pasul 3.
Pasul 4.
78 8
Se ncepe prin analiza unui nou prefix din secvena de caractere, pornind cu un
prefix gol. Dac prefixul i caracterul care urmeaz (P + C) sunt prezeni sub forma
unui subir n dicionar, prefixul se mrete, acaparnd i caracterul C. Procedeul
continu pn cnd nu se mai ntlnete nici o potrivire cu vreun subir din dicionar.
n continuare, se livreaz la ieire cuvntul de cod reprezentat de prefixul P, iar apoi
caracterul C. Se adug noul subir P + C n dicionar i se continu procesarea noului
prefix din secvena de caractere.
Un caz special este acela n care dicionarul este gol: n acest caz, la ieire va
rezulta un cuvnt de cod special, care reprezint un subir gol, urmat de primul
caracter din secvena de intrare. Acest caracter va fi introdus n dicionar pe post de
subir.
Algoritmul furnizeaz o secven de cuvinte de cod, plus un caracter (W,C).
De fiecare dat cnd apare o pereche la ieirea algoritmului, subirul din dicionar
corespunztor lui W se mrete cu caracterul C, adic apare un nou subir n dicionar,
acesta coninnd deja toate subirurile formate prin nlturarea caracterelor de la
sfritul noului subir.
Algoritmul de codare LZ78 decurge astfel:
Pasul 1.
Pasul 2.
Pasul 3.
79
Pasul 3.
80 8
81
82 8
4. Desfurarea lucrrii
Se ruleaz programele demonstrative pentru fiecare dintre cele 4 metode
studiate. Se definesc sursele i parametrii de codare, iar apoi se introduc diferite
secvene i se compar rezultatele obinute, n funcie de lungimea secvenelor i de
numrul de simboluri ale sursei.
Se modific parametrii de codare i se
reia codarea. Rezultatele sunt afiate ntr-o
fereastr de dialog nemodal, putnd fi
pstrate pe ecran pentru comparaie rezultate
de la diferite sesiuni de codare. Sunt afiate
secvena original, cea codat, lungimile
acestora i raportul de compresie obinut. Se
noteaz cte un set complet de date pentru
fiecare algoritm.
83
5. ntrebri
1. Ce aduc n plus algoritmii de compresie de tip LZW fa de algoritmii
clasici de compresie fr pierderi?
2. Care sunt principalele caracteristici ale codrii LZ77?
3. Ce se ntmpl cu raportul de compresie la codarea LZ77, atunci cnd
lungimea cuvntului surs este meninut constant, iar lungimea
buffer-ului
crete. De ce?
4. Ce mbuntiri aduce metoda LZSS fa de algoritmul LZ77, din care
provine aceasta?
5. Care sunt elementele suplimentare aduse de algoritmul LZ78 fa de
metodele precedente?
6. Ce avantaje prezint algoritmul LZW fa de algoritmul LZ78?
7. Ce se ntmpl cu raportul de compresie la metodele LZ78 i LZW, atunci
cnd lungimea secvenei surs crete? De ce?
84 8