Sunteți pe pagina 1din 31

2.

TEHNICI DE COMPRESIE A DATELOR


2.2. Necesitatea compresiei
Reducerea cerinelor de stocare;
Crete securitatea datelor;
Folosirea eficient a benzii canalului de comunicaie:
Canal de
Informaie
comunicaii
Telefonie
8000 eantioane/s x 8 bii/eantion = 64kb/s
banda=3,4kHz
Voce de band
larg
16000 e./s x 14 bii/e. = 224kb/s
banda=7kHz
CD-audio
44100 e/s x 16 bii/e. (stereo) = 1,41 Mb/s
banda=22kHz
Imagini
512x512 pixeli x 24 bii/pixel = 6,3 Mb/imagine
Video
640x480 pixeli color x 24 bii/pixel x 30 imagini/s = 221Mb/s
Diferena ntre banda disponibil i banda cerut pentru informaia necomprimat poate fi
acoperit prin compresie.
1

2.1. Performanele compresiei


Rata sau gradul de compresie
- Majoritatea specificaiilor: raportul ntre cantitatea datelor la intrare i la ieire.
- Problema: compatibilitatea datelor de la intrare i ieire
De exemplu:
intrare: 512 x 480 pixeli, 24 bii pe pixel = 737 280 bytes
ieire: 15 000 bytes
rata de compresie:
737 280 / 15 000 = 49:1
Dar dac ieirea este o imagine cu o rezoluie 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 numrul de bii pe pixelul afiat pentru fluxul comprimat.
De exemplu:
imaginea de ieire are rezoluia 256 x 240 pixeli i este obinut din fluxul de 15 000 bytes.
Rezult (15 000 x 8) / (256 x 240) = 2 bii pe pixel.

Calitatea imaginii
- Se poate realiza compresie cu pierderi sau fr pierderi.
- Compresia cu pierderi folosete o codare mai eficient dect codarea fiecrei valori din fluxul de
date de intrare.
- Reducerea numrului de bii (cuantizarea) pentru compresia cu pierderi se face pe baza unor:
- evaluri subiective (cele mai importante):
Scor
5
4
3
2

Calitate
Foarte Bun
Bun
Acceptabil
Slab

1 Proast

Modificarea imaginii
Imperceptibil
Abia perceptibil dar nesuprtoare
Perceptibil i puin suprtoare
Suprtoare dar fr pierderea
semnificaiei
Foarte suprtoare i cu pierderea
semnificaiei

- evaluri obiective (PSNR = Peak Signal to Noise Ratio)

PSNR = 10log
PSNR
> 40dB
30 40dB
< 30dB

2552

X ( i, j ) Y ( i, j )

(dB)

Calitate
Foarte bun
Bun
Slab

Viteza de compresie i de decompresie


- Compresia i decompresia nu dureaz ntotdeauna la fel de mult
Exemplu:
- stocarea imaginilor compresia nu este critic, decompresia poate fi critic
- Video-on-Demand decompresia este critic (cerine de timp real la redare).
- TVoverIP compresia i decompresia sunt critice (cerine de timp real la transm. i redare)
- Realizarea de sisteme hardware specializate pe compresie i decompresie
4

2.3. Codarea surselor analogice

Sunetele i imaginile digitale provin din semnale continue n timp/spaiu i n amplitudine;

EANTIONAREA
Pentru o reprezentare discret n timp semnalele continue sunt eantionate cu o frecven de
eantionare;

n domeniul frecven spectrul semnalului eantionat este repetarea periodic a spectrului


semnalului continuu pe multiplii de frecvena de eantionare;

Pentru ca semnalul original s poat fi refcut trebuie ca frecvena de eantionare s fie de dou
ori mai mare dect frecvena maxim a spectrului semnalului continuu;
CUANTIZAREA
Eantioanele au ns valori reale. Pentru o reprezentare discret
eantioanelor este necesar cuantizarea;

pe un numr de bii a

n funcie de numrul de bii ales putem reprezenta mai multe niveluri ale amplitudinii
eantioanelor. (3 bii nseamn 8 niveluri, 4 bii - 16 niveluri etc.)

Cu ct numrul de bii scade cu att eroarea de cuantizare crete.

Eroare de cuantizare zero nseamn numr infinit de bii.

Rezult c trebuie acceptat o anumit distorsiune n reprezentarea digital a semnalelor. Aceasta


depinde de rata de bit RC.

Rat de bit: numr de bii pe secund;


2
Distorsiune: Eroarea ptratic medie: D = E{[ x (t ) x (t )] }

Teorema lui Shannon: Pentru un proces aleator Gausian alb cu lrgimea 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):


Eantionarea semnalului => semnal n timp discret,
Cuantizarea semnalului => semnal digital,
Codarea cu numr variabil de bii => reprezentare mai eficient;

Distorsiunea n acest caz este: D = Desantionare + Dcuantizare


Distorsiunea de eantionare 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 eantionat:

Distorsiunea de cuantizare provine din faptul c pentru fiecare bit n plus eroarea de cuantizare
se njumtete i distorsiunea se micoreaz de 4 ori: D 22 B .
2
De asemenea D este proporional cu energia semnalului: D x .

unde c este o constant;


Rata de bit este:

10

Scriind raportul semnal zgomot n decibeli:

Constanta c, deci i c2 , depinde de tipul de cuantizare. Pentru cuantizarea uniform c2


De exemplu:
Telefonia digital cu 8bii/eantion: SNR = 41dB

11

7 dB .

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 bii pe eantion

12

Valoar
e
0
1
2
3
4
5
6
7

Probabilitatea
apariie
0,125
0
0,5
0
0,125
0,125
0
0,125

de Codare
PCM
000
001
010
011
100
101
110
111

Codare
entropic
100
0
101
110
111

reprezentarea amplitudinii pe un numr infinit de bii este (perceptual) irelevant.


- Valoarea eantioanelor este cuantizat n funcie de diferena minim perceput.
amplitudinile semnalului sunt mutual dependente (corelate)

13

- Exemplu de semnal fr o corelaie ntre amplitudinile succesive este zgomotul alb gausian.
- Putem exploata corelaia ntre eantioane prin:
- Predicia eantionului urmtor pe baza celui curent

x ( i, j ) = x ( i 1, j )

- Calculnd diferena ntre valoarea eantionului 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 diferena pe un numr mai mic de bii.

2.5. Tipuri de codri


Codarea include compresia, securizarea datelor i controlul erorii
Codarea
entropic

Codarea Run-Length
Codarea Huffman
Codarea Aritmetic
14

Fr
pierderi

Predicie
Codarea
sursei

Codare
hibrid

Transformri
Codare pe
niveluri

DPCM
DM
FFT
DCT
Poziia biilor
Subeantionare
Codare pe
subbenzi

Cuantizarea vectorial
JPEG
MPEG
H.261

Cu pierderi
Iau n
considerare
coninutul

Codarea entropic
- Pentru un set de simboluri cu probabilitile de apariie cunoscute
p1 , p2 ,..., p N
- Informaia proprie simbolului i este:

I = log pi

- Entropia sursei este suma informaiilor pentru toate simbolurile:


15

E ( p1 , p2 ,..., pN ) = pi log pi
i =1

- Compresia caut s realizeze reprezentarea mesajelor cu numrul de bii minim corespunztor


coninutului de informaie. Limita minim a compresiei este entropia.
- Codurile cu redundan minim au lungimea medie minim pentru o anumit distribuie de
probabiliti.
- Raportul de compresie este lungimea medie a simbolurilor mprit la lungimea medie a
cuvintelor de cod (n bii).
Codarea Run-Length

- Eliminarea caracterelor care se repet


- zerouri n fiiere de date numerice
- spaii n fiiere text
- zone de aceeai crominan sau luminan n imagini
- Codarea numrului de apariii:
- este necesar un indicator (flag)

16

Exemplu:
flag = !, datele comprimate conin caracterul ! - numr de apariii
intrare: ABCCCCCCCCDEFGGGGG
ieire:

(18 caractere)

ABC!8DEFG!5

(11 caractere)

Codarea cu numr variabil de bii pe simbol

- Se obine o rat mai mare de compresie


- Caracterele care apar mai frecvent se codeaz cu mai puini bii
- Caracterele care apar mai puin frecvent se codeaz cu mai muli bii
Codarea Huffman
1. Se ordoneaz simbolurile n ordinea descresctoare a probabilitii.
2. Se grupeaz ultimele dou simboluri i se adun probabilitatea lor formnd un nou simbol.
3. Se reordoneaz noul set n ordinea descresctoare a probabilitii
4. Se repet paii 2 i 3 pn rmn dou probabiliti
5. Se aloc bitul 0 uneia din probabiliti i bitul 1 celeilalte.
6. Se merge n sens invers adugnd cte un bit la fiecare grup de 2 simboluri.
7. Se formeaz cuvintele de cod
17

si

Ps(si)

0
1
2
3
4
5

0,005
0,05
0,14
0,20
0,51
0,08

Cuvntul
de cod
1001111
100110
101
11
0
1000
18

6
7

0,04
0,005

10010
1001110

- Codarea iniial ar necesita 3 bii pe simbol.


Entropia H(S) = 2.024 bii/simbol
Lungimea medie L = 2.204 bii/simbol
- Permite decodarea instantanee a fluxurilor de date
Mesajul codat: 101 11 1000 100110
Mesajul decodat: 2 3 5
1
Codarea Aritmetic
- Se consider intervalul [min, max) care iniial este [0,1) . Lungimea intervalului este:
max min = 1 .
- Intervalul este mprit la numrul de simboluri, fiecare avnd aceeai probabilitate.
- Presupunem c simbolurile sursei au fost numerotate de la 1 la n i prob. simbolului i este pi .
- Simbolul k este codat cu un numr ntre [min, max) astfel:

19

1. Se calculeaz
probabilitile dinamic.
k 1

2. inf = pk ; sup = pk
1

3. r = min max
4. max' = min + r sup

min' = min + r inf

2/3 _
1/3_
0

.6667

c 1/3

.5834

.6667

_ c 1/4
.6334

b 1/3
.4167

a 1/3

.3333

b 2/4

_ a 1/4

.6001

.6667

c
2/5
b
2/5

a
.5834 _ 1/5

c 3/6
.6501

_
b 2/6

.6390
.6334

a 1/6

- Codarea irului bcca se face cu orice valoare n intervalul [.6334,.6390)


Codarea Diferenial PCM (DPCM) i codarea predictiv (LPC)

- Valorile viitoare ale semnalului pot fi aproximate (prezise) din comportamentul (eantioanele)
anterioare datorit corelaiei ntre eantioanele semnalului.
- Codarea DPCM se bazeaz pe faptul c orice poate fi prezis din semnal la codare poate fi
reconstruit la decodare.
- Etapele codrii DPCM:

20

1. Prezicerea valorii curente x(n) din valorile anterioare x(n 1) , x(n 2) , ...
2. Calculul diferenei (eroarea de predicie) ntre valoarea curent i valoarea prezis:
x ( n ) = x ( n ) x ( n )
3. Codarea erorii prediciei (cuantizarea + codarea VLC = cu numr variabil de bii) se poate face
cu un numr mai mic de bii.

x ( n)

x(n)
Q

x (n)

Predictor

xq (n)

00010100101

VLC

Memorie

x ( n)

- Decodorul trebuie s reproduc aceeai valoare prezis x (n) din valorile anterior decodate
x ( n 1) , x ( n 2 ) ...

21

00010100101

v ( n)

x ( n)

VLD

Predictor

x (n)

Memorie

- Pentru predicie se poate folosi:


x (n) = 0
- PCM:
x ( n) = x ( n 1)
- Simpla diferen:
- Media ponderat a ultimelor dou eantioane:
N

- Predictor liniar general:

x (n) = hk x(n k )
k =1

- Eroarea de reconstrucie/codare:

22

x (n) = h1 x ( n 1) + h2 x ( n 2)

r (n) = x(n) x(n) = x(n) x (n) + x* (n) =


= x(n) x* (n) = q (n)

- Rezult c eroarea global de reconstrucie n DPCM este egal cu eroarea de cuantizare a


diferenei x(n) .
- Raportul semnal-zgomot va fi determinat de performanele cuantizorului relativ la variana
semnalului x(n) .

Codarea cu transformate

23

- O transformat convertete 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 = X0
X0 = A
B = X1 + X0
X1 = B A
C = X2 + X0
X2 = C A
D = X3 + X0
X3 = D A

A, B, C i D au fiecare 8 bii
X0 este codat pe 8 bii (pixelul de baz)
X1, X2 i X3 necesit numai 4 bii
8 + (3 x 4) = 20 => 5bii/pixel

Transformata Cosinus Discret (DCT)

24

- Conversie imagine frecven.


- Importana informaiei de frecven:
- variaii lente de intensitate n imagine sunt cel mai bine percepute de ochi.
- variaiile lente corespund frecvenelor joase.
- tranziiile brute (pixelii de zgomot) corespund frecvenelor nalte i nu sunt percepute de ochi.
- Pentru un bloc din imagine de 8 x 8 pixeli, DCT este dat de:
7

Cmn = km kn I yx cos

( 2 x + 1) m cos ( 2 y + 1) n
16

x =0 y =0

16

1
2 2 , pentru m, n = 0
k ,k =
unde m n 1
,
n rest
2

- Coeficientul C00 se numete coeficient DC i reprezint frecvena spaial 0 sau media valorilor
pixelilor din bloc.

25

- Ceilali coeficieni se numesc coeficieni AC i reprezint frecvenele spaiale 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 conine NxN coeficieni DCT, iar C este o
matrice NxN cu elementele:

Cmn = kn

2m + 1) n
(
cos
2N

1
2 2 , pentru n = 0
kn =
1,
n rest
2

- DCT nu realizeaz compresia datelor

Transformata Cosinus Discret Invers (IDCT)

26

I xy = ku kv Cvu cos

( 2 x + 1) u cos ( 2 y + 1) v
16

u =0 v =0

16

1
2 2 , pentru u, v = 0
k ,k =
unde u v 1
,
n rest
2
- Teoretic transformarea DCT IDCT este fr pierderi

Codarea n subbenzi

27

- S presupunem c un semnal are cea mai mare parte a energiei concentrate n domeniul
frecvenelor joase.
- Se efectueaz o eantionare cu 10kHz, 8 bii pe eantion. Rata de transmisie necesar este de
80kbii/s.
- O transmisie mai eficient se poate realiza diviznd domeniul de frecven n dou subbenzi:

FTJ

FTJ

FTS

FTS

Prin decimare se pstreaz numrul de eantioane constant, repartizate pe subbenzi.


Pentru primul semnal CODEC1 va aloca tot 8 bii.
Deoarece energia coninut n al doilea semnal este mai mic CODEC2 poate aloca numai 4 bii.
Rezult n total 5 x 8 + 5 x 4 = 60kbii/s, deci o reducere cu 3/4.
n cazul 2D se pot folosi filtre separabile rezultnd patru descompuneri JJ, JS, SJ, SS.

28

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 corelaia ntre pixeli pe domenii mai largi.
29

- Efecte ale codrilor


- prin transformate: se observ blocurile pe care s-a aplicat transformata.
- n subbenzi: apariia unor inele i o accentuare a contururilor.
Alocarea optim a biilor
- Se poate aloca diferit numrul de bii pe eantion pentru fiecare subband n funcie de
caracteristicile semnalului n acea subband
- Considerm c semnalul xk din fiecare subband k se cuantizeaz pe bk bii. Eroarea de
cuantizare este:

q2 = c 22b x2
k

unde c = 1/12 .
- Eroarea total de cuantizare este:

1
=
M
2
q

k =1

- Rata total de bit este:

1
b=
M
30

b
k =1

2
qk

- Se arat c
1/ M

2 b
2
q c 2 x2k
k =1

2
2
Egalitate avem pentru qk = q k

- Rezult alocarea optim a biilor:


c xk
1
bk = log
2
q2
2

- Ctigul este
G=

1
M

2
xk

k =1

1/ M

xk

k =1

Avem ctig unitar dac x2 sunt egale.


k

31

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