Sunteți pe pagina 1din 13

2.

TEHNICI DE COMPRESIE A DATELOR


2.2. Necesitatea compresiei

• Reducerea cerinţelor de stocare;


• Creşte securitatea datelor;
• Folosirea eficientă a benzii canalului de comunicaţie:
Canal de comunicaţii Informaţie
Telefonie
8000 eşantioane/s x 8 biţi/eşantion = 64kb/s
banda=3,4kHz
Voce de bandă largă
16000 eş./s x 14 biţi/eş. = 224kb/s
banda=7kHz
CD-audio
44100 eş/s x 16 biţi/eş. (stereo) = 1,41 Mb/s
banda=22kHz
Imagini 512x512 pixeli x 24 biţi/pixel = 6,3 Mb/imagine
640x480 pixeli color x 24 biţi/pixel x 30
Video
imagini/s = 221Mb/s
• Diferenţa între banda disponibilă şi banda cerută pentru informaţia
necomprimată poate fi acoperită prin compresie.

2.1. Performanţele compresiei

• Rata sau gradul de compresie


- Majoritatea specificaţiilor: raportul între datele la intrare şi la ieşire.
- Problema: compatibilitatea datelor de la intrare şi ieşire
De exemplu:
intrare: 512 x 480 pixeli, 24 biţi pe pixel = 737 280 bytes
ieşire: 15 000 bytes
rata de compresie: 737 280 / 15 000 = 49:1

Dar dacă ieşirea este o imagine cu o rezoluţie de 256 x 240 pixeli


rezultă o reducere de 4 ori a imaginii deci o rată compresie de
(737 280 / 4) / 15 000 = 12:1.

- Trebuie specificat numărul de biţi pe pixelul afişat pentru fluxul


compresat.
De exemplu:
imaginea de ieşire are rezoluţia 256 x 240 pixeli şi este obţinută din
fluxul de 15 000 bytes.
Rezultă (15 000 x 8) / (256 x 240) = 2 biţi pe pixel.

• Calitatea imaginii
- Se poate realiza compresie cu pierderi sau fără pierderi.
- Compresia cu pierderi foloseşte o codare mai eficientă decât codarea
fiecărei valori din fluxul de date de intrare.
1
- Principiul compresiei cu pierderi: diferenţa faţă de datele iniţiale este
mai greu de observat.
- Reducerea numărului de biţi (cuantizarea) pentru compresia cu
pierderi se face pe baza unor:
- evaluări subiective (cele mai importante):

Scor Calitate Modificarea imaginii


5 Excelentă Imperceptibilă
4 Bună Abia perceptibilă dar nesupărătoare
3 Acceptabilă Perceptibilă şi puţin supărătoare
2 Slabă Supărătoare dar fără pierderea semnificaţiei
1 Proastă Foarte supărătoare şi cu pierderea semnificaţiei

- evaluări obiective (PSNR = Peak Signal to Noise Ratio)


2552
PSNR = 10log (dB )
∑ ( ) ( )
2
 X i , j − Y i , j 

PSNR Calitate
> 40dB Foarte bună
30 – 40dB Bună
< 30dB Slabă

• Viteza de compresie şi de decompresie


- Compresia şi decompresia nu se fac întotdeauna în acelaşi timp
Exemplu:
- stocarea imaginilor – compresia nu este critică, decompresia poate
fi critică
- Video-on-Demand – compresia este critică (cerinţe de timp real).
- Realizarea de sisteme hardware specializate pe compresie şi
decompresie

2.3. Codarea surselor analogice

• Sunetele şi imaginile digitale provin din semnale continue în timp/spaţiu


şi în amplitudine;
• EŞANTIONAREA
• Pentru o reprezentare discretă în timp semnalele continue sunt eşantionate
cu o frecvenţă de eşantionare;

2
• În domeniul frecvenţă spectrul semnalului eşantionat este repetarea
periodică a spectrului semnalului continuu pe multiplii de frecvenţa de
eşantionare;

• Pentru ca semnalul original să poată fi refăcut trebuie ca frecvenţa de


eşantionare să fie de două ori mai mare ca frecvenţa maximă a
spectrului semnalului continuu;
• CUANTIZAREA
• Eşantioanele au însă valori reale. Pentru o reprezentare discretă pe un
număr de biţi a eşantioanelor este necesară cuantizarea;

• În funcţie de numărul de biţi ales putem reprezenta mai multe niveluri


ale amplitudinii eşantioanelor. (3 biţi înseamnă 8 niveluri, 4 biţi - 16
niveluri etc.)
• Cu cât numărul de biţi scade cu atât eroarea de cuantizare creşte.

• Eroare de cuantizare zero înseamnă număr infinit de biţi.


• Rezultă că trebuie acceptată o anumită distorsiune în reprezentarea
digitală a semnalelor. Aceasta depinde de rata de bit RC.

• Rată de bit: număr de biţi pe secundă;


• Distorsiune: Eroarea pătratică medie: D = E{[ x(t ) − xˆ (t )]2 }

3
• Teorema lui Shannon: Pentru un proces aleator Gausian alb cu
lărgimea de bandă W rata de bit depinde de raportul semnal-zgomot:

De exemplu:
Semnal vocal cu banda W = 4kHz şi SNR = 40dB

• Codarea PCM (Pulse Code Modulation):


• Eşantionarea semnalului => semnal în timp discret,
• Cuantizarea semnalului => semnal digital,
• Codarea cu număr variabil de biţi => reprezentare mai eficientă;

• Distorsiunea în acest caz este: D = Desantionare + Dcuantizare


• Distorsiunea de eşantionare provine din faptul că dacă semnalul
analogic are banda mai mare de f S / 2 acesta este filtrat trece-jos (LP)
pentru a putea fi eşantionat:

• Distorsiunea de cuantizare provine din faptul că pentru fiecare bit în


plus eroarea de cuantizare se înjumătăţeşte şi distorsiunea se
micşorează de 4 ori: D ∼ 2−2 B .
• De asemenea D este proporţională cu energia semnalului: D ∼ σ x2 .

unde c este o constantă;


• Rata de bit este:

4
• Scriind raportul semnal zgomot în decibeli:

• Constanta c, deci şi c2 , depinde de tipul de cuantizare. Pentru


cuantizarea uniformă c2 7dB .

De exemplu:
Telefonia digitală cu 8biţi/eşantion: SNR = 41dB

2.4. De ce pot fi comprimate semnalele?

• amplitudinea semnalului este statistic redundantă


Exemplu:
- un semnal are amplitudinea în intervalul [0,7]
- sunt necesari 3 biţi pe eşantion

Valoare Probabilitatea de apariţie Codare PCM Codare entropică


0 0,125 000 100
1 0 001
2 0,5 010 0
3 0 011
4 0,125 100 101
5 0,125 101 110
6 0 110
7 0,125 111 111

• reprezentarea amplitudinii pe un număr infinit de biţi este


(perceptual) irelevantă.
- Valoarea eşantioanelor este cuantizată în funcţie de diferenţa minimă
percepută.

• amplitudinile semnalului sunt mutual dependente (corelate)

- Exemplu de semnal fără o corelaţie între amplitudinile succesive este


zgomotul alb gausian.
5
- Putem exploata corelaţia între eşantioane prin:
- Predicţia eşantionului următor pe baza celui curent
xˆ ( i, j ) = x ( i − 1, j )
- Calculând diferenţa între valoarea eşantionului şi cea prezisă
∆x ( i, j ) = x ( i, j ) − xˆ ( i, j ) = x ( i, j ) − x ( i − 1, j )
Această diferenţă are (în medie) un interval mult mai mic de valori
(varianţă mai mică). => Se poate cuantiza diferenţa pe un număr
mai mic de biţi.

2.5. Tipuri de codări

Codarea include compresia, securizarea datelor şi controlul erorii

Codarea Run-Length
Codarea
Codarea Huffman Fără pierderi
entropică
Codarea Aritmetică
DPCM
Predicţie
DM
FFT
Transformări
DCT
Codarea Cu pierderi
Poziţia biţilor
sursei
Subeşantionare
Codare pe niveluri Iau în
Codare pe
considerare
subbenzi
conţinutul
Cuantizarea vectorială
JPEG
Codare
MPEG
hibridă
H.261

• Codarea entropică
- Pentru un set de simboluri cu probabilităţile de apariţie cunoscute
- p1 , p2 ,..., pN
- Informaţia proprie simbolului i este:
- I = − log pi
- Entropia sursei este suma informaţiilor pentru toate simbolurile:
N
- E ( p1 , p2 ,..., pN ) = −∑ pi log pi
i =1
- Compresia caută să realizeze reprezentarea mesajelor cu numărul de
biţi minim corespunzător conţinutului de informaţie. Limita minimă a
compresiei este entropia.
- Codurile cu redundanţă minimă au lungimea medie minimă pentru o
anumită distribuţie de probabilităţi.
- Raportul de compresie este lungimea medie a simbolurilor împărţită
la lungimea medie a cuvintelor de cod (în biţi).
6
• Codarea Run-Length
- Eliminarea caracterelor care se repetă
- zerouri în fişiere de date numerice
- spaţii în fişiere text
- zone de aceeaşi crominanţă sau luminanţă în imagini
- Codarea numărului de apariţii:
- este necesar un flag
Exemplu:
flag = “!”
datele comprimate conţin “caracter” “!” “număr de apariţii”
intrare: ABCCCCCCCCDEFGGGGG
ieşire: ABC!8DEFG!5

• Codarea cu număr variabil de biţi pe simbol


- Se obţine o rată mai mare de compresie
- Caracterele care apar mai frecvent se codează cu mai puţini biţi
- Caracterele care apar mai puţin frecvent se codează cu mai mulţi biţi

Codarea Huffman
1. Se ordonează simbolurile în ordinea descrescătoare a probabilităţii.
2. Se grupează ultimele două simboluri şi se adună probabilitatea lor
formând un nou simbol.
3. Se reordonează noul set în ordinea descrescătoare a probabilităţii
4. Se repetă paşii 2 şi 3 până rămân două probabilităţi
5. Se alocă bitul “0” uneia din probabilităţi şi bitul “1” celeilalte.
6. Se merge în sens invers adăugând câte un bit la fiecare grup de 2
simboluri.
7. Se formează cuvintele de cod

si Ps(si) Cuvântul si Ps(si) Cuvântul


de cod de cod
0 0,005 1001111 4 0,51 0
1 0,05 100110 5 0,08 1000
2 0,14 101 6 0,04 10010
3 0,20 11 7 0,005 1001110

7
- Codarea iniţială ar necesita 3 biţi pe simbol.
Entropia H(S) = 2.024 biţi/simbol
Lungimea medie L = 2.204 biţi/simbol
- Permite decodarea instantanee a fluxurilor de date
Mesajul codat: 101111000100110
Mesajul decodat: 2 3 5 1

• Codarea Aritmetică
- Se consideră intervalul [min, max) care iniţial este [0,1) . Lungimea
intervalului este: max − min = 1 .
- Intervalul este împărţit la numărul de simboluri, fiecare având aceeaşi
probabilitate.
_ .6667 _ _
1 .6667 .6667

c 1/3 _ c 1/4 c
.5834
c 3/6
2/3 _ .6334 _
2/5
b 1/3 .6501 _
_ b 2/4 b
1/3 2/5 b 2/6
.4167 _ _
a 1/3 .6001 .6390 _
a
_ _ a 1/4 .5834 _ 1/5
a 1/6
0 .3333 .6334

- Presupunem că simbolurile sursei au fost numerotate de la 1 la n şi


probabilitatea simbolului i este pi .
- Simbolul k este codat cu un număr între [min, max) astfel:
1. Se calculează probabilităţile dinamic.
k −1 k
2. inf = ∑ pk sup = ∑ pk
1 1
3. r = min − max
4. max' = min + r ⋅ sup min' = min + r ⋅ inf
- Codarea şirului ‘bcca’ se face cu orice valoare în intervalul
[.6334,.6390)

8
• Codarea Diferenţială PCM (DPCM) şi codarea predictivă (LPC)
- Valorile viitoare ale semnalului pot fi aproximate (prezise) din
comportamentul (eşantioanele) anterioare datorită corelaţiei între
eşantioanele semnalului.
- Codarea DPCM se bazează pe faptul că orice poate fi prezis din
semnal la codare poate fi reconstruit la decodare.
- Etapele codării DPCM:
- Prezicerea valorii curente x(n) din valorile anterioare x(n − 1) ,
x(n − 2) , ...
- Calculul diferenţei (eroarea de predicţie) între valoarea curentă şi
valoarea prezisă: ∆x ( n ) = x ( n ) − xˆ ( n )
- Codarea erorii predicţiei (cuantizarea + codarea VLC = cu număr
variabil de biţi) se poate face cu un număr mai mic de biţi.

x ( n) ∆x(n) ∆xq (n) 00010100101


Q VLC

xˆ (n) Predictor Memorie x ( n)

- Decodorul trebuie să reproducă aceeaşi valoare prezisă xˆ (n) din


valorile anterior decodate x ( n − 1) , x ( n − 2 ) ...

00010100101 v ( n) x ( n)
VLD Q

Predictor Memorie
xˆ (n)

- Pentru predicţie se poate folosi:


- PCM: xˆ (n) = 0
- Simpla diferenţă: xˆ (n) = x(n − 1)
- Media ultimelor două eşantioane: xˆ (n) = h1 x(n − 1) + h2 x(n − 2)
N
- Predictor liniar general: xˆ (n) = ∑ hk x( n − k )
k =1
- Eroarea de reconstrucţie/codare:
r ( n) = x(n) − x(n) = x(n) −  xˆ ( n) + ∆x* ( n)  =
= ∆x(n) − ∆x* (n) = q (n)
- Rezultă că eroarea globală de reconstrucţie în DPCM este egală cu
eroarea de cuantizare a diferenţei ∆x(n) .
9
- Raportul semnal-zgomot va fi determinat de performanţele
cuantizorului relativ la varianţa semnalului x(n) .

• Codarea cu transformate
- O transformată converteşte un set de date într-o reprezentare
alternativă care este mai convenabilă pentru codare
- Transformatele sunt reversibile
Exemplu:
- un bloc de 2 x 2 pixeli:
Transformata: Transformata inversă:
A B X0 = A A = X0
X1 = B – A B = X1 + X0
X2 = C – A C = X2 + X0
C D X3 = D – A D = X3 + X0
- A, B, C şi D au fiecare 8 biţi
- X0 este codat pe 8 biţi (pixelul de bază)
- X1, X2 şi X3 necesită numai 4 biţi
- 8 + (3 x 4) = 20 => 5biţi/pixel

Transformata Cosinus Discretă (DCT)


- Conversie imagine – frecvenţă.
- Importanţa informaţiei de frecvenţă:
- variaţii lente de intensitate în imagine sunt cel mai bine percepute
de ochi.
- variaţiile lente corespund frecvenţelor joase.
- tranziţiile bruşte (pixelii de zgomot) corespund frecvenţelor înalte
şi nu sunt percepute de ochi.

- Pentru un bloc din imagine de 8 x 8 pixeli, DCT este dată de:


7 7
Cmn = km kn ∑∑ I yx cos
( 2 x + 1) mπ cos ( 2 y + 1) nπ
x =0 y =0 16 16
 1
 2 2 , pentru m, n = 0
unde km , kn = 
 1, în rest
 2
- Coeficientul C00 se numeşte coeficient DC şi reprezintă frecvenţa
spaţială 0 sau media valorilor pixelilor din bloc.
- Ceilalţi coeficienţi se numesc coeficienţi AC şi reprezintă frecvenţele
spaţiale orizontale şi verticale din bloc.
- Se poate da şi o reprezentare matricială:
Y = CT XC
unde X este un bloc de NxN pixeli din imagine, Y conţine NxN
coeficienţi DCT, iar C este o matrice NxN cu elementele:

10
 1
( 2m + 1) nπ  2 2 , pentru n = 0
Cmn = kn cos , kn = 
2N  1, în rest
 2

- DCT nu realizează compresia datelor

Transformata Cosinus Discretă Inversă (IDCT)

7 7
I xy = ∑∑ ku kv Cvu cos
( 2 x + 1) uπ cos ( 2 y + 1) vπ
u =0 v =0 16 16
 1
 2 2 , pentru u , v = 0
unde ku , kv = 
 1, în rest
 2

- Teoretic transformarea DCT – IDCT este fără pierderi

• Codarea în subbenzi
- Să presupunem că un semnal are cea mai mare parte a energiei
concentrate în domeniul frecvenţelor joase.
- Se efectuează o eşantionare cu 10kHz, 8 biţi pe eşantion. Rata de
transmisie necesară este de 80kbiţi/s.
- O transmisie mai eficientă se poate realiza divizând domeniul de
frecvenţă în două subbenzi:

FTJ FTJ

FTS FTS

- Prin decimare se păstrează numărul de eşantioane constant, repartizate


pe subbenzi.
- Pentru primul semnal CODEC1 va aloca tot 8 biţi.
- Deoarece energia conţinută în al doilea semnal este mai mică
CODEC2 poate aloca numai 4 biţi.
- Rezultă în total 5 x 8 + 5 x 4 = 60kbiţi/s, deci o reducere cu 3/4.
- În cazul 2D se pot folosi filtre separabile rezultând patru descompuneri
JJ,JS,SJ,SS.

11
Reprezentare polifazică

- Dacă matricea E( z ) este matricea de la transformata DCT şi R ( z ) este


matricea de la transformata IDCT atunci codarea pe subbenzi devine
codarea cu Transformata Cosinus Discretă.
- Codarea în subbenzi poate fi privită ca o codare prin transformate cu
blocuri suprapuse. Deci poate exploata corelaţia între pixeli pe
domenii mai largi.
- Efecte ale codărilor
- prin transformate: se observă blocurile pe care s-a aplicat
transformata.
- în subbenzi: apariţia unor inele şi a accentuare a contururilor.

Alocarea optimă a biţilor


- Se poate aloca diferit numărul de biţi pe eşantion pentru fiecare
subbandă în funcţie de caracteristicile semnalului în acea subbandă
- Considerăm că semnalul xk din fiecare subbandă k se cuantizează pe
bk biţi. Eroarea de cuantizare este:
σ q2k = c × 2−2bk σ x2k
unde c = 1/12 .
- Eroarea totală de cuantizare este:
1 M
σ q2 = ∑σ q2k
M k =1
- Rata totală de bit este:
1 M
b = ∑ bk
M k =1
- Se arată că
1/ M
 M 2 
σ ≥c×2  ∏σ xk 
2 −2 b
q .
 k =1 
Egalitate avem pentru σ q2k = σ q2 ∀k

12
- Rezultă alocarea optimă a biţilor:
1 c × σ x2k
bk = log
2 σ q2
- Câştigul este
M
1
M
∑σ 2
xk
G= k =1
1/ M
≥ 1.
 M
2 
 ∏σ xk 
 k =1 
Avem câştig unitar dacă σ x2k sunt egale.

13

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