Sunteți pe pagina 1din 48

Sisteme Multimedia

Compresii Video

Cezar PLESCA

Compresii Video

Motivatie. Generalitati
CIF video 352x288 la 30fps aprox. 35 Mbps.
Un flux HDTV in format RGB are un debit >
1Gbps.
Redundanta spatiala & temporala (interframe).
Codecul ales depinde de : calitatea dorita,
debitul
retelei, caracterul real-time (videoconferinta,
transmisii TV), capabilitatile dispozitivului de
Cezar PLESCA Compresii Video
afisare
2

Codecuri Importante - I
H.261, dezvoltat in 1990 pentru codarea
video in timp
real pe linii ISDN. Notiunea de macroblock,
(16x16
pixeli) . Debite reduse si dinamica scazuta.
H.263 versiune imbunatatita (1995)
furnizeaza
aceeasi calitate la un debit injumatatatit.
Folosit
pentru videoconferinte de calitate medie.
Cezar PLESCA

Compresii Video

Codecuri Importante - II
MPEG-1 transmisiile digitale TV pe cablu si
satelit,
DVD/SVCD. Rezolutii standard, neoptimizat
pentru
debite scazute (<1Mbps).
MPEG-2 suporta atat transmisia video
progresiva
cat si cea intretesuta. Mecanisme de codare
scalabila.
MPEG 4 folositCezar
pentru
codarea
obiectelor.4
PLESCA Compresii
Video

Flux video MJPEG


Fiecare frame poate fi compresat (JPEG,
JPEG2000).
MJPEG. Flux video editabil (acces aleatoriu).

Rate de compresie intre 2:1 si 20:1 (stocare


DVC
Digital Videotape). Nu se exploateaza deloc
Cezar PLESCA

Compresii Video

Compresie Diferentiala
Codare diferentiala : eroarea fata de
frame-ul
anterior. Eroarea este ulterior codata VLC.
Reduce corelarea intre frame-uri entropie
buna. Compresie eficienta pentru scene
statice.
Scene dinamice (ex. filme, evenimente
sportive)
miscarea camerei si dinamica obiectelor din
Cezar PLESCA Compresii Video
scena.
6

Compresia Diferentiala

Cezar PLESCA

Compresii Video

Compensarea Miscarii

Cezar PLESCA

Compresii Video

Estimarea miscarii
Cautarea pozitiei unui macrobloc in frame-ul
anterior.

Cezar PLESCA

Compresii Video

Eroarea reziduala
Miscarile obiectelor si ale camerei sunt
complexe
(translatii, rotatii, scalari, etc.) : erori
reziduale.

Cezar PLESCA

Compresii Video

10

Vectori de miscare
Compensarea miscarii frame-ul curent
poate fi
modelat ca o translatie a frame-ului
anterior.
Cautarea in jurul pozitiei blocului intr-o
anumita
fereastra spatiala pentru cea mai buna
aproximare.

Cezar PLESCA

Compresii Video

11

Cautarea Secventiala
Distanta
intre doua macroblocuri de

dimensiune NxN:
C(x,y) coltul stanga-sus al macrobblocului.

Metrici : MAD Mean Absolute Difference, MSE.


Vectorul de miscare asociat unui
macrobloc :
Cautare exhaustiva in fereastra (2p+1)x(2p+1)
Complexitate : (2p+1)x(2p+1)xNxNx3 :
Cezar PLESCA

Compresii Video

12

Cautare Logaritmica
Varianta

suboptimala dar
foarte eficienta.
Tehnica similara
cautarii binare.
Complexitate :
[8*log(p)+1]x
NxNx3

Cezar PLESCA

Compresii Video

13

Cautare Ierarhica
Reprezentare
multi

rezolutie. Se cauta
blocul cel mai apropiat
la rezolutia minima.
De la rezolutia k la k-1,
se cauta in vecinatatea
de 3x3 a blocului
expandat.

Cezar PLESCA

Compresii Video

14

Performantele metodelor de cautare

Cezar PLESCA

Compresii Video

15

Fundamente Video
Standardele H.261, H.263

Cezar PLESCA

Compresii Video

16

Standardul H.261
Aplicatii principale : videoconferinta,
videofonie.
Debite de p*64 Kbps (p=1-31) maxim
384Kbps.
Intarzierea maxima pentru codare : 150msec

videoconferinte bidirectionale. YCbCr,


modelul 4:2:0

Cezar PLESCA

Compresii Video

17

Secventa de cadre H.261


Frame-uri I codate JPEG. Frame-uri P
codate predictiv
(forward prediction) in functie de frame-ul
precedent
(I sau P) vectorii de miscare + erorile.

Vectorii de miscare sunt cautati intr-o


fereastra de 31 Cezar PLESCA Compresii Video

18

Codarea unui frame I


Macroblocuri de 16x16 pixeli transformate in
4
blocuri Y si doua blocuri Cb si Cr; blocurile de
8x8
sunt apoi codate in maniera JPEG.

Cezar PLESCA

Compresii Video

19

Codarea unui frame P


Pentru fiecare macrobloc se calculeaza
vectorul de
miscare. Se obtine macroblocul diferenta
(4 Y, 2 Cb
si Cr). Blocurile diferenta 8x8 sunt
transformate
DCT, cuantificate si compresate folosind
parcurgerea in zigzag + VLC.
Daca diferenta fata de macroblocul de
referinta este
prea mare, macrobocul
seVideo
codeaza
Cezar PLESCA Compresii

20

Codarea unui frame P


Cuantificare
coeficienti DC :

Cuantificarea coeficientilor AC :
(coeficientul scale intre 1 si 31; regl. calitatea
video)

Cezar PLESCA

Compresii Video

21

Encoderul H.261

Cezar PLESCA

Compresii Video

22

Decoderul H.261

Cezar PLESCA

Compresii Video

23

Formatul H.261
GOB = regiune de 176x48 pixeli (Y); CIF :
352x288

Cezar PLESCA

Compresii Video

24

Formatul H.261
Nivelul imaginii : separator imagine,
timestamp
(sincronizarea cu fluxul audio), tipul imaginii
(CIF/QCIF). 1 GOB = regiune 176x48 pixeli
(Y)

Cezar PLESCA

Compresii Video

25

Formatul H.261
GQuant parametrul de cuantificare (scale);
poate
fi suprascris la nivel de macrobloc.
Macrobloc 6
blocuri, vectorul de miscare (MVD), tip (intra
sau
inter-frame compensat sau nu prin
miscare).

Cezar PLESCA

Compresii Video

26

Compensarea miscarii in
H.263
Vectorul de miscare este codat in functie de
vectorii
de miscare adiacenti (stanga, sus, dreaptasus).
In loc sa se codeze M(u,v), se codeaza
diferenta
(u, v) unde : u = u up; v = v vp.

Cezar PLESCA

Compresii Video

27

Codarea pe subpixeli H.263


Pentru imbunatatirea calitatii, imaginea este
reprezentata prin subpixeli (interpolare
biliniara).
Cautarea in domeniul subpixelilor se va face
intr-o
fereastra [-16,15,5] cu granularitate 0.5.

Cezar PLESCA

Compresii Video

28

Codari optionale H.263


Mod de predictie avansat macroblocuri
de 8x8.
5 vectori de miscare : MV, MV-N, MV-S, MV-E,
MV-V.
Pentru fiecare pixel, se codeaza diferenta
dintre
valoarea reala si media dintre pixelii prezisi
folosind
MV si valorile a doi vectori adiacenti
(de exemplu MV-S si MV-N).
Cezar PLESCA

Compresii Video

29

Codari optionale H.263


Modul de codare PB foloseste predictia forward si
predictia backward (fata de un frame ulterior).
Codarea a doua frame-uri intr-un frame PB: prima
imagine este codata P (fata de precenta P sau I) iar a
doua este codata B (bidirectional) fata de P si I.

Cezar PLESCA

Compresii Video

30

Fundamente Video
Standardele MPEG 1-2

Cezar PLESCA

Compresii Video

31

Standardul MPEG-1
Moving Pictures Experts Group
standard inceput in 1988, 25 de experti;
prezent peste 200 companii.
Ideea unui flux video compresat care sa
respecte o
sintaxa: decoder public; encoderul proprietar.
Formate (SIF) : 352x240, 30 fps (NTSC) si
352x288,
25 fps (PAL). Transmisie neintretesuta. YCbCr
4:2:0.
Folosit pentru compresia imaginilor video i a
sunetului pentruCezar
stocarea
pe CD. Compresia
PLESCA Compresii Video
32

Compensare miscarii MPEG1


Codarea forward nu este adaptata atunci
cand
obiectul este mascat in frame-ul de referinta.
In frame-ul sau frame-urile viitoare se poate
gasi o
potrivire mult mai buna predictie
bidirectionala!

Cezar PLESCA

Compresii Video

33

Codarea bidirectionala

Cezar PLESCA

Compresii Video

34

Ordinea de codare MPEG-1


M=3 (perioada pentru frame-uri P) si N=9
(perioada
pentru frame-uri I). Buffer display (ex. 5s)
transparenta variatiei debitului util in
streaming!

Cezar PLESCA

Compresii Video

35

Diferente MPEG-1 vs. H.261


Cuantificare : MPEG-1 are tabele diferite pentru
codarea intra si inter-frame, modulate de un
factor de
scara. Tabelele difera pentru cadre I, P sau B.
Reprezentarea macroblocurilor cu subpixeli pentru
aproximarea mai buna a vectorilor de miscare.
MPEG-1 suporta distante mai
mari intre frame-uri I; fereastra
de cautare merge pana la
[-512,511.5] (subpixeli) si
respectiv [-1024,1023] (pixeli).

Cezar PLESCA

Compresii Video

36

Formatul MPEG

Cezar PLESCA

Compresii Video

37

Formatul MPEG

Cezar PLESCA

Compresii Video

38

Formatul MPEG

Cezar PLESCA

Compresii Video

39

Sstandardul MPEG-2
MPEG1 destinat fluxurilor cu rate mici
(<1.5Mbps).
MPEG2 fluxuri de calitate superioara
(>4Mbps).
Aplicatii : HDTV , DVD, VoD. Exista 7 profiluri
pentru
diverse aplicatii. Fiecare profil are pana la 4
nivele.
DVD forma restransa a profilului principal.

Cezar PLESCA

Compresii Video

40

Codari scalabile in MPEG-2


Necesitatea unui flux unic adaptat la conditiile retelei.
Impartirea fluxului pe mai multe nivele :
- nivelul de baza care sa poata fi decodat independent.
- nivele superioare (dep. de baza) transmise ulterior.
Tipuri de scalabilitate definite in MPEG2: scalabilitate
SNR, scalabilitate spatiala, scalabilitate temporala,
scalabilitate hibrida si scalabilitate bazata pe
partitionarea datelor (multimii de coeficienti DCT).

Cezar PLESCA

Compresii Video

41

Scalabilitate SNR Encoder

Cezar PLESCA

Compresii Video

42

Scalabilitate SNR Decoder

Cezar PLESCA

Compresii Video

43

Scalabilitate spatiala - I

Cezar PLESCA

Compresii Video

44

Scalabilitate spatiala

Cezar PLESCA

Compresii Video

45

Scalabilitate temporala

Cezar PLESCA

Compresii Video

46

Scalabilitate temporala

Cezar PLESCA

Compresii Video

47

Scalabilitate hibrida
Combinarea a 2 modalitati de scalabilitate
anterioare.
Codare hibrida (temporala + spatiala) pe 3
nivele :
Flux video : F1 F2 F3 F4 F5 F6
1) nivelul de baza : scalabilitate spatiala
(versiunea
downsample a subfluxului F1 F3 F5 )
2) nivelul intermediar : scalabilitate spatiala
(diferentele dintre F1 F3 F5 si versiunea sa
de baza)
Cezar PLESCA Compresii Video
48

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