Sunteți pe pagina 1din 6

Codare predictiv

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.

1. Schema general de codare-decodare predictiv


Algoritmul de compresie bazat pe codare predictiv funcioneaz astfel (Figura 1):
1. pentru fiecare valoare de intrare este predicionat o valoare pe baza unei scheme de
predicie
2. se calculeaz eroarea de predicie corespunztoare ca fiind diferena ntre valoarea real
i valoarea predicionat
3. valoarea erorii de predicie este transmis unui codor entropic (Huffman , aritmetic etc.)
i apoi salvat n fluxul comprimat.

Decompresia funcioneaz simetric procesului de compresie (Figura 2):


1. se preia din fluxul comprimat o valoare, se decodeaz entropic i se obine eroarea de
predicie.
2. pe baza aceleiai scheme de predicie se predicioneaz valoarea curent
3. la valoarea predicionat se adun eroarea de predicie i se obine valoarea real care se
salveaz n fluxul decodat.
Pentru ca schema s funcioneze corect este esenial ca predicia s se fac doar pe baza valorilor
deja codate, deoarece doar acestea exist la decodor (predicia se face doar pe baza trecutului).
Aceast condiie este necesar pentru ca cele dou predictoare s funcioneze identic (s produc
aceeai valoare predicionat).
Aa cum este descris anterior (la codor se scade i la decodor se adun valoarea prediciei) metoda
se ncadreaz n categoria metodelor lossless.

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

2. Codare predictiv pe caz unidimensional (serie de timp) - Exemplu


S considerm seria:
Index

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

...

Se determin apoi pas cu pas pentru fiecare index k:


VP[k] = VI[k-1]

// predictie

EP[k] = VI[k] - VP[k]

// 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

-8 -10 -11 -11 -8

-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

VD[k] = VP[k] + VP[k]

// 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

-8 -10 -11 -11 -8

-5

-1

-4

-7

-4

-9 -10 -9

Se observ ca datele au fost restaurate fr pierderi, dup cum era de ateptat.


3

-7

3. Codare predictiv pe caz bidimensional (imagini)


n cazul unidimensional metoda se baza pe corelaia valorilor alturate i deci pe predictibilitatea
valorii urmtoare pe axa timpului. n cazul bidimensional exist corelaie pe ambele axe, fapt de
care trebuie s in cont predictorii specifici imaginilor.
Imagine deja codata

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)

daca C >= max(A,B)

max(A,B)

daca C <= min(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

=|I[i-1,j ]-I[i-2,j ]|+|I[i ,j-1]-I[i-1,j-1]|+|I[i+1,j-1]-I[i ,j-1]|


=|I[i-1,j ]-I[i-1,j-1]|+|I[i ,j-1]-I[i ,j-2]|+|I[i+1,j-1]-I[i+1,j-2]|
=|I[i-1,j ]-I[i-2,j-1]|+|I[i-1,j-1]-I[i-2,j-2]|+|I[i ,j-1]-I[i-1,j-2]|
=|I[i+1,j-1]-I[i+2,j-2]|+|I[i ,j-1]-I[i+1,j-2]|+|I[i ,j-1]-I[i-1,j ]|

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

Gama semnal iesire

[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.

S-ar putea să vă placă și