Documente Academic
Documente Profesional
Documente Cultură
O alt metod important de realizare a compresiei este acea a abordrii predictive. Ea se bazeaz
pe faptul c datele ce urmeaz a fi comprimate nu difer mult de la o valoare la alta, deci pot fi
predicionate destul de bine din valorile anterioare. Din acest motiv metodele predictive se aplic
n special n cazul n care datele reprezint de fapt serii n timp (cazul unidimensional, de exemplu
semnale audio) sau serii n spaiu (cazul bidimensional, de exemplu imagini).
Dei n cele ce urmeaz vom prezenta aceste metode n contextul particular al compresiei vom
folosi termenul de codare predictiv, el fiind mult mai des folosit astfel n literatura de specialitate.
Eroare
predicie
DATE
INTRARE
CODOR
ENTROPIC
DATE
CODATE
PREDICTOR
Figura 1 Schema general de compresie folosind tehnici predictive
Eroare
predicie
DECODOR
ENTROPIC
DATE
CODATE
DATE
DECODATE
PREDICTOR
Figura 2 Schema general de decompresie folosind tehnici predictive
10
11
13
14
15
16
17
VI
10
-4
-7
-9 -10 -9
-7
-4
Val. prediconat VP
10
-4
-7
-9 -10 -9
-7 -4
EP
-1 -2
-4
-3
-2
-1
Valoare initiala
Eroare predicie
-3 -4
12
Dup cum se poate observa seria reprezint eantionarea unui semnal sinusoidal. Prin index am
notat indexul (de timp) din cadrul seriei. n exemplu s-a considerat predictorul A (se
predicioneaz cu valoarea anterioar din serie).
... B A
...
// predictie
// eroare de predictie
La nceput, cnd nu putem aplica predictorul ales (nu exist valoare anterioar) trebuie fcut o
convenie privind predicia, de exemplu se consider VP[0] = 0.
S relum exemplul anterior pentru cazul predictorului 2A-B. Acesta poate fi interpretat i ca
A+(A-B) reprezentnd prelungirea segmentului care trece prin A i B. Dup calcule asemntoare
obinem valorile:
Index
Valoare initiala
10
11
13
14
15
16
17
18
VI
10
-4
-7
-9 -10 -9
-7
-4
Val. prediconat VP
10
11
11
-4
-5 -1
EP
-1 -1
-1
-2 -1
-1
Eroare predicie
-1 -1
12
n acest caz pentru primele dou valori predicionate se consider VP[0]=0, VP[1]=VI[0]=0;
Pentru compararea performanelor celor 2 predictori s determinm histogramele erorii de predicie:
6
5
4
3
2
1
-4
-3
-2
-1
-4
-3
Predictor A
-2
-1
Predictor 2A-B
Am luat n considerare n fiecare caz primele 16 valori ale erorii de predicie corespunztoare
prediciilor efectiv fcute cu A respectiv 2A-B (nu i cazurile speciale de la nceput).
Constatm c pentru 2A-B histograma este mai dezechilibrat spre valoarea 0. Acest fapt va
permite codorului entropic s poat obine performane de compresie mai bune. Ambele histograme
sunt ns mult mai dezechilibrate spre 0 n raport histograma datelor iniial.
La decodare se pornete doar de la irul erorilor de predicie. Se determin apoi pas cu pas pentru
fiecare index:
VP[k] = VD[k-1]
// predictie
// reconstructie
Evident, la nceput cnd nu putem aplica predictorul ales, trebuie fcute aceleai predicii ca i la
codor. Prezentm valorile de la decodare n cazul predictorului 2A-B.
Index
EP
-1 -1
-1 -2 -1 -1 -1
Val. prediconat VP
10
11 11
VD
10
Eroare predicie
Valoare decodata
10
11
12
13
14
15
16
17
18
-1
-4
-5
-1
-4
-7
-4
-9 -10 -9
-7
C B
A
?
Imagine ce urmeaz a fi codat
n acest caz predicia se realizeaz (aproape ntotdeauna) pixel cu pixel de la stnga la dreapta i de
sus n jos. Predicia se poate face dup orice regul, dar doar pe baza pixelilor din zona gri
(imaginea deja parcurs). Aceast condiie este necesar pentru ca cele dou predictoare s
funcioneze identic (s produc aceeai valoare predicionat).
Prezentm n cele ce urmeaz cele mai importante reguli de predicie folosite n acest context.
Reguli de predicie utilizate de standardul JPEG
Standardul JPEG consider pentru modul de lucru lossless (complet diferit de cel lossy, bazat pe
DCT) o abordare predictiv standard i urmtorii 7 predictorii:
1:
2:
3:
4:
A + B - C
5:
A + (B - C) / 2
6:
B + (A - C) / 2
7:
(A + B) / 2
Primii 3 sunt unidimensionali iar ultimii 4 sunt realmente bidimensionali. Notaiile A, B respectiv C
sunt cele descrise n figura anterioar.
Regula de predicie din LOCO-I (standardizat n JPEG-LS)
n acest caz valoarea predicionat este dat de expresia:
min(A,B)
max(A,B)
A+B-C
in rest
Predictorul este astfel conceput nct s aleag B n cazul n care exist un contur vertical n locaia
curent, A n cazul n care exist un contur deasupra pixelului curent i A+B-C dac nu este
detectat nici o line de contur. Ultimul tip de predicie este similar cu alegerea valorii curente n
cazul n care pixelul curent ar aparine planului definit de cei trei vecini cu ponderi A,B i C.
Acest tip de predictor a fost folosit n aplicaiile de predicie de date sub diverse interpretri. Cea
mai important este aceea de mediere a celor trei predictori A, B, A+B-C. Combinnd aceste
interpretri acest predictor a fost denumit n cadrul procesului de standardizare Detector Median de
Contururi (Median Edge Detector).
Regula de predicie din CALIC
Algoritmul de predicie al metodei CALIC este prezentat n cele ce urmeaz:
DACA (dv+dh>32)
I*[i,j] = (dv*I[i-1,j]+dh*I[i,j-1])/(dv+dh)+(I[i+1,j-1]-I[i-1,j-1])/8
ALTFEL DACA (dv-dh>12)
I*[i,j] = (2*I[i-1,j]+I[i,j-1])/3+(I[i+1,j-1]-I[i-1,j-1])/8
ALTFEL DACA (dh+dv>12)
I*[i,j] = (I[i-1,j]+2*I[i,j-1])/3+(I[i+1,j-1]-I[i-1,j-1])/8
ALTFEL
I*[i,j] = (I[i-1,j]+I[i,j-1])/2+(I[i+1,j-1]-I[i-1,j-1])/8
DACA (d45-d135>32)
I*[i,j] = I*[i,j]+(I[i+1,j-1]-I[i-1,j-1])/8
ALTFEL DACA (d45-d135>16)
I*[i,j] = I*[i,j]+(I[i+1,j-1]-I[i-1,j-1])/16
ALTFEL DACA (d135-d45>32)
I*[i,j] = I*[i,j]+(I[i-1,j-1]-I[i+1,j-1])/8
ALTFEL DACA(d135-d45>16)
I*[i,j] = I*[i,j]+(I[i-1,j-1]-I[i+1,j-1])/16
unde I[i,j] reprezint poziia ce este analizat la un moment dat n cadrul imaginii, I*[i,j]
reprezint valoarea prediciei iar d45, d135, dv i dh reprezint:
dh
dv
d45
d135
dh
dv
d45
d135
Figura 3 Pixelii utilizai n determinarea valorilor dh, dv, d45, d135
Dup cum se poate observa se determin gradientul pe orizontal, vertical i la 45 respectiv 135
(situaie prezentat i n Figura 3) i n funcie de aceste valori se aduce o corecie valorii
predicionate anterior.
Observaie pentru codarea predictiv a imaginilor
n situaiile n care nu se poate aplica regula de predicie bidimensional dorit deoarece nu exist
toi pixelii necesari trebuie convenit (cu decodorul) o abordare alternativ. Acest lucru se ntmpl
de regul pe primul pixel (unde se alege o predicie fix), pe prima line a imaginii (unde se poate
alege predictorul A) i pe prima coloan (unde se poate alege predictorul B).
4. Observaii
n ce privete codarea predictiv facem urmtoarele observaii importante:
1. prin aplicarea prediciei gama dinamic a semnalului crete astfel
Gama semnal intrare
[0 N]
=>
[-N +N]
[-N +N]
=>
[-2N +2N]
solicitnd pentru reprezentare un bit n plus. Deci, prin predicie, nu doar ca nu apare compresie, ci
chiar apare o cretere a dimensiunii de reprezentare. Totui, acest fapt se compenseaz prin
dezechilibrarea histogramei spre valoarea 0, ceea ce va duce la o compresie mai bun realizat de
codorul entropic care urmeaz.
2. n codarea predictiv problema nu se pune n sensul clasificrii binare HIT / MISS n
ceea ce privete valoarea predicionat (ca n cazul prediciilor implementate n hardware). O
predicie mai bun se deosebete de una mai rea prin modul n care modific mai tare
distribuia nspre 0 i astfel permite codorului entropic s realizeze o compresie mai ridicat.
3. Codarea entropic care urmeaz etapei de predicie se realizeaz n general contextual,
avnd cte un model statistic pentru fiecare context posibil, contextele fiind definite tot n funcie
de valorile pixelilor folosii la predicie (problema contextelor nu este detaliat aici).
4. Metoda predictiv nu impune o anumit regula de predicie utilizat, putnd s folosim
reguli de predicie orict de elaborate (polinomiale de grad mai mare, predictoare neuronale etc.)
adaptate specificului datelor.