Documente Academic
Documente Profesional
Documente Cultură
1. Definiii
Termenul de compresie a datelor este, sper, unul destul de cunoscut. O posibil definiie general ar fi:
Compresia se realizeaz prin schimbarea modului de reprezentare a datelor avnd deci de a face cu un
caz particular de codare (de aceea termenii de compresie i de codare vor fi folosii aproape ca
sinonime, dupa cum sunt consacrai pentru diferite metode). Codarea se face n raport cu un anumit
model al datelor, aflndu-ne astfel n cazul mai general de modelare, al cutrii unui model
corespunztor (optim) al datelor.
2. Clasificri
n cadrul acestui domeniu exist o mare varietate de metode, de cele mai multe ori prezentate
individual, fr a se ncerca integrarea acestora. Acest lucru impune clasificri, care se pot face dup
diverse criterii.
Cea mai general clasificare a metodelor de compresie se face dup eroarea de refacere a datelor. n
raport cu acest criteriu distingem dou categorii mari de metode:
1. Metode fr pierderi - n care datele se refac n totalitate, fr a exista nici o diferen ntre datele
originale i cele refcute. Aceste metode sunt cunoscute ca i metode LOSSLESS. Ele se
aplica n general n situaiile n care refacerea fr eroare este esenial: compresie de programe
executabile, surse de programe, texte, n general date de natur strict numeric.
1
2. Metode cu pierderi - n care datele se refac n limita unor erori considerate acceptabile. Acceptarea
din start a existenei unor erori duce la creterea spectaculoas a ratei de compresie fa de cazul
anterior. Termenul consacrat pentru aceste metode este cel de metode LOSSY. Aceste metode
se aplic n general n cazul datelor de natur analogic (date ce reprezint semnale care la
origine erau analogice) destinate n final tot unui operator uman. n aceast categorie intr
compresia semnalului audio i a semnalului video, semnale n a cror prelucrare, datorit naturii
lor analogice, gsim de obicei un cuantizor care se constituie oricum ntr-o surs de erori.
Delimitarea unei metode generale n lossless / lossy nu este strict. De exemplu, tehnicile predictive se
pot ncadra n ambele categorii, n funcie de datele pentru care se aplic (de natur numeric sau
analogic) i n funcie de existena n algoritm a unui cuantizor.
n funcie de modul cum evolueaza n timp modelul sursei de date, metodele de compresie se pot
mpri astfel:
1. Metode statice - n care modelul este fix, nu evolueaz n timp ci este construit apriori, pe baza unor
mesaje considerate tipice. n aceast categorie este inclus compresia realizat n cazul
transmisiilor fax. Este util n situaiile n care cunoatem statistica fluxului de date i aceasta
ramne neschimbat, rezultnd metode dedicate unui anumit context. Datorit caracterului
static se preteaz bine chiar i la implementri hardware. Schem general de compresie
(codare) pentru acest situaie este dat n Figura 1.1.
2. Metode semistatice - n care modelul este construit naintea codrii (comprimrii) pe baza datelor
MODELUL SURSEI
Figura 1.1 Schema general de compresie pentru modelare static
ce urmeaz s fie comprimate i este meninut nemodificat pe durata acesteia. Avantajul const
n adaptarea metodei la fluxul de date (metodele fiind mai general aplicabile). Dezavantajele
sunt necesitatea parcurgerii de dou ori a fluxului de date i necesitatea transmiterii modelului
spre decodor, fapt care ncarc suplimentar fluxul de date i deterioreaz performanele. n
aceast categorie se ncadreaz metoda de comprimare bazat pe algoritmul Huffman
(cunoscut de obicei ca i metoda Huffman static notaie oarecum nefericit dar consacrat).
Schem general de compresie (codare) pentru aceast situaie este dat n Figura 1.2.
2
Date Codare Date Decodare Date
de comprimat comprimate decomprimate
Model Model
Sursa Sursa
3. Metode dinamice (adaptive) - n care compresia ncepe la o anumit stare a modelului, aceeai att
n cazul comprimrii ct i n cel al decomprimrii. Starea iniial a modelului poate fi la rndul
ei determinat ca i n unul din cazurile anterioare. Fiecare simbol se codeaz pe baza modelului
curent. Dup codare sau respectiv decodare (la decodor) starea modelului se actualizeaz n
acelai mod att la codor ct i la decodor. Se elimin astfel cele dou dezavantaje importante ale
metodelor semistatice. Cele mai cunoscute metode de acest tip sunt compresia Huffman adaptiv
i metodele de dicionar. n acest caz schema general de compresie devine cea din Figura 1.3.
Model Model
Sursa Sursa
Figura 1.3 Schema general de compresie pentru modelare dinamic (adaptiv)
n funcie de natura informaiilor pe baza crora se construiete modelul putem clasifica metodele de
compresie n (clasificare care acoper doar metodele lossless):
Canal
(posibil cu perturbaii)
4. Cteva exemple
n continuare prezentm cteva exemple simple, relativ empirice, de metode de compresie. Acestea nu
se folosesc n practic de sine stttor, n aceast form simpl, ci de obicei ca etape intermediare n
scheme mai elaborate. Scopul principal al prezentrii acestora este acela de a exemplifica conceptele
de metod static / semistatic / dinamic i de metod statistic / de dicionar. Analiznd rezultatele
obinute vom observa ca niciuna din metode nu este util n toate situaiile, pentru unele fluxuri
(nefericit alese) nu doar c nu obinem compresie, ci am putea avea chiar o cretere a dimensiunii
datelor.
4
codare pe 7 biti a fluxului binar rezultat. n cele ce urmeaz prezentm doar etapa RLE, celelalte pot fi
gsite n documentaia BinHex 4.0.
Ideea de baz la RLE este aceea de codare a lungimii secvenelor repetitive (numite runs). n
continuare prezentm un flux de intrare i fluxul rezultat n urma codrii RLE:
00 11 22 33 44 55 66 77 00 11 22 33 44 55 66 77
11 22 22 22 22 22 22 33 11 22 90 06 33
11 22 90 33 44 11 22 90 00 33 44
Chiar dac n practic putem impune alt mod de reprezentare trebuie s rezolvm cele dou probleme:
codarea run-ului i apariia marker-ului.
Observm c metoda devine util doar n cazul existenei run-urilor de lungime minim 4 (run-uri mai
scurte se las neschimbate) i eficiena ei este redus de existena marker-ului n fluxul de date (caz
care duce la o expandare a fluxului).
Aa cum a fost prezentat metoda se bazeaz pe modelare static a fluxului de date. Dac dorim o
modelare semistatic putem face o analiz a fluxului n avans i s alegem ca i marker caracterul care
apare de cele mai puine ori n flux. Evident, noul marker trebuie transmis decodorului (de exemplu ca
primul caracter din fluxul codat). Dac dorim o modelare dinamic putem face o analiz periodic a
fluxului deja transmis i schimba din mers marker-ul.
Codarea statistic presupune realizarea statisticii apariiei simbolurilor i alocarea de coduri mai scurte
simbolurilor cu frecven de apariie mai mare. Evalum deci frecvenele de apariie:
A 4, B 2, C 1, D 1
i alocm coduri corespunztor:
A 0, B 10, C 110, D - 111
Fluxul codat devine acum:
01001001100111
avnd deci doar 14 bii, realiznd o compresie fa de situaia anterioar.
6
Obinem prin codare secvena 012333221100. Evident, deocamdat nu am ctigat absolut nimic.
n continuare considerm metoda Move To Front (MTF) de actualizare a dicionarului. Astfel, dup
codarea unui caracter pe baza dicionarului acest caracter este mutat n fa. Se ncearc s se
favorizeze astfel reprezentarea simbolurilor care se repet la interval scurt, indexul rezultat fiind n acel
caz de valoare mai mic. Metoda este una cu modelare dinamic bazat pe dicionar i, ca toate
metodele dinamice, const n:
Codare / decodare pe baza modelului curent (dicionarului curent)
Actualizarea modelului (dicionarului)
n ultimele coloane ale tabelului anterior este prezentat aplicarea metodei MTF pe datele considerate.
La fiecare pas dicionarul curent este cel obinut prin actualizarea de la pasul anterior. Fluxul rezultat
este 012300102030.
Fr MTF Cu MTF
0 *** 0 ******
1 *** 1 **
2 *** 2 **
3 *** 3 **
Acest fapt permite aplicarea asupra fluxului generat a unei metode statistice (de genul celei prezentate
anterior) care va avea performane bune dac fluxul este dezechilibrat. Constatm c metoda este
valoroas ca etap intermediar ntr-un lan mai lung de prelucrri (idee general valabil n compresia
de date). Evident, dac presupunerea privind repetarea simbolurilor nu este justificat, efectul MTF
poate fi nesemnificativ sau chiar negativ. Metoda MTF poate fi folosit i n cazul n care dicionarele
conin iruri de simboluri (cazul uzual n practic) nu numai simboluri individuale cum a fost prezentat
anterior pentru simplitate. De asemenea se pot lua n considerare i actualizarea prin mutarea n fa
doar cu un numr de k poziii (nu pn n prima poziie) i mutarea doar n cazul repetrii utilizrii
unei anumite intrri din dicionar (nu la fiecare utilizare).