Sunteți pe pagina 1din 19

LAPI Laboratorul de Analiza i Prelucrarea Imaginilor

Universitatea POLITEHNICA din Bucureti

Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Plan Curs
Aplicaii & bibliografie M1. Informaia video

Analiza i Prelucrarea Secvenelor de Imagini


.l.dr.ing. Bogdan IONESCU

M2. Filtrare spaio-temporal M3. Informaia de culoare M4. Informaia temporal M5. Informaia de micare A1. Clasificarea automat dup gen

Bucureti, 2010

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Cateva domenii de aplicaie > supraveghere video:


monitorizare trafic, securizare, urmrire persoane, ...

> automatizri industriale:

> Aplicaii & bibliografie

inspecie linie de producie, detecie defecte fabricaie, ...

> televiziune:
compresie, transmisie, filtrare semnal video digital, HDTV, ...

> interfaare om-main:


realitate virtual, control roboi, sisteme biometrice, ...

> indexare multimedia:


gestionarea bazelor multimedia, sisteme de cutare dup coninut, ...

> ...
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 2 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 3

Conferine tiintifice din domeniu > ACM International Conference on Multimedia


ACM MM, Association for Computing Machinery

Cteva materiale bibliografice de sintez


> Cees G.M. Snoek, M. Worring, Multimodal Video Indexing: A Review of the State-of-the-art, Multimedia Tools and Applications, 25(1), pag. 535, 2005. > A. F. Smeaton, P. Over, W. Kraaij, High-Level Feature Detection from Video in TRECVid: A 5-Year Retrospective of Achievements, Multimedia Content Analysis, Theory and Applications, pp. 151174, Springer Verlag, Berlin 2009. > B. T. Truong, S. Venkatesh, Video abstraction: a systematic review and classification, ACM Transactions on Multimedia Computing, Communications, and Applications 3(1), 3 2007. > D. Brezeale, D.J. Cook, Automatic Video Classification: A Survey of the Literature, IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews, 38(3), pp. 416-430, 2008. > Alan C. Bovik, The Essential Guide to Video Processing, Academic Press, ISBN: 978-0-12-374456-2, 2009. > B. Ionescu, Analiza i Prelucrarea Secvenelor Video: Indexarea Automat dup Coninut, Ed. Tehnic Bucureti, 2009.
4 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 5

> IEEE International Conference on Multimedia & Expo


IEEE ICME, Institute of Electrical and Electronics Engineers

> IEEE International Conference on Image Processing


IEEE ICIP, Institute of Electrical and Electronics Engineers

> IS&T/SPIE Electronic Imaging


SPIE EI, International Society Advancing an Interdisciplinary Approach to the Science and Application of Light

> IEEE International Conference on Acoustic, Speech and Signal Processing


IEEE ICASSP, Institute of Electrical and Electronics Engineers

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

> M1. Informaia video


1.1. [ Noiuni de baz ] 1.2. [ Compresia informaiei ] 1.3. [ Manipulare video utilitare ] 1.4. [ Conceptul de indexare ]

> M1. Informaia video [ Noiuni de baz ]

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Noiuni de baz: ce reprezint o imagine ?


i imagine

Noiuni de baz: ce reprezint o imagine ?

elementul de baz al unei imagini 2D se numete pixel = picture element.

lumea real infinit spaial i spectral

imagine

imagine digital = ansamblu de valori plasate dup o form spaial ntr-un spaiu cel puin bidimensional (matrice)

fiecare pixel al imaginii este caracterizat prin: - valoare legat de culoarea transmis (ex. alb, rou, etc.) - poziie n imagine informaie spaial. forma pixelului: ptrat, rotund, rectangular (grid) + dimensiunea pixelului fac legtura dintre imagine i realitatea fizic.

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Noiuni de baz: rezoluie - aspect

[surs imagini Wikipedia]

Noiuni de baz: cum sunt reprezentate imaginile digitale ?


imagini scalare = valoarea oricrui pixel este un scalar proporional cu intensitatea luminoas
255 (alb)

rezoluia de pixeli = numrul de pixeli pe orizontal X numrul de pixeli pe vertical (dimensiune imagine) rezoluie mare nseamn o mai bun reprezentare a realitii (mai multe detalii)

imagini monocrome (binare, 1 bit/pixel) rezoluie

0 (negru) imagini cu niveluri de gri (de regul 8 bii/pixel)

imagini vectoriale = valoarea unui pixel este un vector


R G B

rat de aspect = limea imaginii n pixeli mprit la nlimea n pixeli.

=
imagine color RGB (8+8+8 bii/pixel)
10

video

film 35mm

wide

film cinema

film cinema

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

11

Noiuni de baz: palet de culoare


palet de culoare = mulimea tuturor culorilor (intensitilor) folosite de imagine.

Noiuni de baz: ce reprezint o secven de imagini ?


> video = o succesiune temporal de imagini (imagini n micare)

...
img.1 img.2 img.3 img.4 img.5 img.6 timp

rezoluie temporal (frame rate) = numr de imagini pe secund; timp real: PAL/SECAM 25 cadre/s sau NTSC 30 cadre/s, high speed: 50 - 200,000,000 cadre/s.

> video = volum de date important:


- 1 minut > 1.500 imagini statice; - 1 minut = 768x576x24x25x60 = 1.85 GB (fr compresie) protocoale de transfer de mare vitez: CameraLink (255MB/s), FireWire (~400MB/s), GigE Vision (Lan Gigabit).
12 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 13

2 culori

9 culori 100 de culori

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Noiuni de baz: SD vs. HD


SDTV = standard definition TV:
std. 576i 576p 480i 480i 480p res. 720576 704576 720480 720486 704480 aspect 5:4 11:9 3:2 40:27 22:15 utilizare D1/DV PAL (ITU-R 601) EDTV PAL DV NTSC D1 NTSC (ITU-R 601) EDTV NTSC

[surs imagini Wikipedia]

Noiuni de baz: eantionare i cuantizare

amplitudine X X

eantionare i cuantizare

sistem de calcul

HDTV = high definition TV:


std. 720p 1080p 1080i res. 1280720 19201080 19201080 aspect 16:9 16:9 16:9 utilizare HD ready Full HD Full HD

cuantizare

p = progresive, este afiat imaginea integral, i = interlaced, sunt afiate separat liniile impare i apoi cele pare.
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 14

X T eantionare perioad T

X timp
15

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Principiul compresiei datelor


motivaie simpl = volum de date prea mare (pentru stocare i/sau transmisie) SDTV ~ 20MB/s, HDTV ~ 120MB/s;

> M1. Informaia video [ Compresia informaiei ]

principiu: reducerea redundanei datelor (anumite informaii se repet sau pot fi deduse pe baza altora) redundan spaial = valorile pixelilor vecini sunt corelate la nivel de cadru:

detaliu 1

cadru i
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 16

detaliu 2
17

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Principiul compresiei datelor


redundan temporal = valorile pixelilor din cadrul curent sunt corelate cu cele ale pixelilor din cadre vecine temporal:

Tehnici de codare video: JPEG


Joint Photographic Experts Group 1986-1992 compresia imaginilor cu niveluri de gri i truecolor, primul pas major: compresie n frecven.

...
img.1 img.2 img.3 img.4 img.5 img.6 timp

> modul de codare: 1. RGB YCBCR:

redundan psihovizual = SVU este bazat pe aproximare, ochiul este puin sensibil la detalii lng contururi sau schimbri de cadru: percepem un dreptunghi cu toate c nu exist !
[M. Schmolesky,The Primary Visual Cortex, 2007]

separarea luminozitii (Y) de componentele cromatice (CB i CR) asigur o compresie mai bun cu pierderea minim a calitii perceptuale,
(detalii M2 Informaia de Culoare)

> iluzii optice

http://www.michaelbach.de/ot/

2. subeantionare spaial:
ochiul uman percepe mai multe detalii fine la nivel de intensitate (Y) dect n nuan i saturaie (CB i CR): downsampling CB i CR: 4:2:2 (1/2 pe oriz.) sau 4:2:0 (1/2 pe oriz. & vert.)
18 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 19

tipuri de compresie: - fr pierderi (losseless), - cu pierderi (lossy).


Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: JPEG


> modul de codare (continuare): 3. mprire n blocuri:

imagine

Tehnici de codare video: JPEG


> modul de codare (continuare): 4. DCT Discrete Cosinus Transform: transformare
[A.K. Jain, Fundamentals of Digital Image Processing, 1989]
N 1 N 1 (2n + 1)l ( 2m + 1)k v(k , l ) = (k ) (l ) u ( m, n) cos cos 2 N 2N m =0 n = 0

fiecare component este mprit n blocuri nesuprapuse de regul de 8x8 pixeli (n funcie de subeantionare);

4. DCT Discrete Cosinus Transform: motivaie


spaial (coordonate) observm 5 obiecte luminoase pe un fond ntunecat, asemntoare unor bare verticale; - anumite informaii nu sunt disponibile direct n domeniul de definiie iniial al imaginii:
imagine

unde u(m,n) reprezint imaginea de dimensiune NxN, k ~ frecvena vertical iar l ~ frecvena orizontal, v(k,l) este imaginea transformatei, iar (k) este o constant dat de:

imaginea poate fi interpretat ca o oscilaie cosinus (frecvenial), informaie frecvena + amplitudine + DC (eventual)
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 20

(k ) =

1 N 2 N

matriceal se poate scrie:

k =0 altfel

V = C U C T (2m + 1)k C = (k ) cos 2N


21

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: JPEG


> modul de codare (continuare): 4. DCT Discrete Cosinus Transform: transformare
l

Tehnici de codare video: JPEG


> modul de codare (continuare): 4. DCT Discrete Cosinus Transform: transformare
cu alte cuvinte imaginea U este o sum ponderat de frecvene spaiale :
U

transf. invers (C este unitar):


(0,0) (0,1) (0,2) (0,3) (0,4)

C 1 = C T , U = C T V C
imaginea U poate fi scris ca:

(1,0)

(1,1)

(1,2)

(1,3)

(1,4)

U = Bk ,l v(k , l )
k = 0 l =0

N 1 N 1

v(0,0) v(1,0)

v(0,1) v(1,1)

(2,0)

(2,1)

(2,2)

(2,3)

(2,4)

unde Bk,l formeaz baza de imagini a transformatei DCT (~ frecvene).

(3,0)

(3,1)

(3,2)

(3,3)

(3,4)

Bk ,l = ck clT
unde k a matricei

(4,0)

(4,1)

(4,2)

(4,3)

(4,4)

ck reprezint coloana CT .
22

v(4,4)

baz imagini Bk,l transformata DCT (N=64)


Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 23

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: JPEG


> modul de codare (continuare): 4. DCT Discrete Cosinus Transform: exemplu

Tehnici de codare video: JPEG


> modul de codare: 4. DCT Discrete Cosinus Transform: compresie
compresie = reprezentarea grosier a coeficienilor de pondere mic ce corespund frecvenelor nalte;

ce nseamn frecven joas? ~ zone omogene ce nseamn frecven nalt ? ~ contururi

frecvena proporional cu uniformitii imaginii frecvena proporional cu uniformitii imaginii

imagine U

log10(|V|) (pseudoculori)

- energia este concentrat n doar civa coeficieni de frecvene joase; - primul coeficient este cel mai important (DC = valoare medie);

Matlab: DCT 1D dct(u) i idct(v); DCT 2D dct2(U) i idct2(V)


24 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 25

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: JPEG


> modul de codare: 5. cuantizare:

[surs imagine Wikipedia]

Tehnici de codare video: JPEG


> exemple:

[surs imagini Wikipedia]

pierdere detalii

coeficienii DCT sunt scalai individual (mprii la o constant ~ tabel de cuantizare) i rotunjii la primul ntreg; = eliminare detalii (coeficieni 0) i valori mici pentru frecvene joase;

6. codarea entropiei:
coeficienii sunt parcuri n ordinea importanei, matrice i apoi codai fr pierdere: > RLE (run-length encoding); + Huffman; > pentru coeficienii DC se codeaz doar diferenele (DPCM = Differential Pulse Code Modulation); parcurgere n zig-zag
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 26

vector

calitate ridicat (2.6:1)

calitate bun (15:1) conturare blocuri ( apropiere DC)

calitate medie (23:1)

culori aberante calitate sczut (46:1)


Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

calitate minim (144:1)


27

Tehnici de codare video: M-JPEG


Motion-JPEG fiecare cadrul al secvenei de imagini este comprimat folosind standardul JPEG (codare intra-cadru), primul pas spre compresia micrii;

Tehnici de codare video: MPEG-1


Moving Picture Experts Group 1993 MPEG-1 primul standard de compresie video n adevratul sens al cuvntului (stocare VideoCD); al doilea pas major: compresia temporal (inter-cadru). compresie intra-cadru = folosete principiul JPEG (DCT);

flux M-JPEG

compresie inter-cadru = se folosete de redundana temporal, pe principiul urmtor:


[C. Poynton, Digital Video and HDTV Algorithms and Interfaces, 2003]

JPEG1

JPEG2

JPEG3

JPEG4

...

timp ...

- datorit codrii individuale fluxul video poate fi editat - rat de compresie ntre 2:1 i 20:1 (stocare DVC Digital Videotape); > ineficient !
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 28

3
...

timp imagine codat intra (=cheie)


29

imagine imagine codat intra codat inter (=cheie) (doar diferene)

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: MPEG-1


compresie inter-cadru (continuare) [D. Marshall, Multimedia Course, 2001] problem: micarea obiectelor face ca valorile pixelilor s varieze foarte mult ntre cadre succesive temporal: diferenele (eroarea de predicie) sunt mari nct codarea inter devine total neeficient; soluia: estimarea micrii i compensarea micrii: >ipotez: diferena dintre cadre consecutive este dat de deplasarea obiectelor (diferen nul = se transmite doar un cadru);

Tehnici de codare video: MPEG-1


compresie inter-cadru (continuare)
(detalii M4 Informaia de Micare)

estimarea micrii (principiu): se caut noua poziie a fiecrui bloc de pixeli;

potrivire greit! cadru 1 cadru 2

> deplasare camer n jos; > micare obiect;


potrivire perfect! cadru 1 cadru 2
30

potrivire corect! cadru 2


31

cadru 2

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: MPEG-1


compresie inter-cadru (continuare) compensarea micrii (principiu): cadrul este reconstituit prin deplasarea blocurilor n concordan cu vectorii de micare; > n realitate deplasrile pixelilor sunt complexe nu ne putem baza doar pe vectorii de micare;
cadru 1 cadru 2 (real)

Tehnici de codare video: MPEG-1


> modul de codare al imaginilor:
o secven MPEG este partiionat n grupuri succesive de imagini (GOP groups of pictures) ce conin urmtoarele tipuri de cadre: I-picture (intra-picture): - imagine codat independent de celelalte cadre (codat intra); - este prima imagine dintr-un GOP; - constituie un punct de editare al fluxului MPEG fiind autosuficient; - pe baza ei sunt reconstituite alte cadre codate non-intra (=anchor); P-picture (forward predicted): - imagine reconstituit pe baza celei mai apropiate imagini cheie (ex. I-picture); - dup ce este reconstituit devine noua imagine cheie (anchor).
32 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 33

> codm i eroarea de aproximare (rezidual); precizie estimare , eroare ; > dac estimarea nu are o precizie acceptabil bloc codat intra.

cadru 2 (estimat/compensat) cadru 2 (eroare rezidual)


Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: MPEG-1


> modul de codare al imaginilor (continuare):
P-picture (forward predicted): exemplu
[C. Poynton, Digital Video and HDTV Algorithms and Interfaces, 2003]

Tehnici de codare video: MPEG-1


> modul de codare al imaginilor (continuare):
B-picture (bidirectional predicted, inovaie MPEG): - imagine reconstituit bidirecional (forward and backward prediction) prin medierea compensrii micrii din cadre cheie anterioare ct i ulterioare; - doar vizualizat, nu este folosit pentru predicia altor cadre! - contribuie semnificativ la creterea factorului de compresie.

I-picture

... ...
P-picture 1 P-picture 2 I/P-picture I/P-picture

> P-picture 1 este dedus/estimat (predicted) din I-picture; P-picture 2 este dedus din P-picture 1.
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 34

B-picture 1

B-picture 2
35

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: MPEG-1


> ierarhia imaginilor n fluxul MPEG (I, P, B-pictures): exemplu
GOP I0 1 2 3 4 5 6 7 8 I9

Tehnici de codare video: MPEG-1


> structura schematic a fluxului MPEG:
[D. Marshall, Multimedia Course, 2001]

secvena video

...
seq.1 seq.2 ... seq.N

I-picture P3 P6

I-picture SC seq.
video param. bitstream param.

QT

GOP1

GOP2

...

GOPM

- SC = Start Code; - video param.: lime, nlime, rat aspect, frame rate; - bitstream param.: rat de bii, buffer, constrngeri hardware;
B1 B2 B4 B5 B7 B8 GOP = IBBPBBPBB

- QT = quatization table pentru I i P-pictures; - GOP = group of pictures;

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

36

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

37

Tehnici de codare video: MPEG-1


> structura schematic a fluxului MPEG (continuare):
SC seq.
video param. bitstream param.

Tehnici de codare video: MPEG-1


> structura schematic a fluxului MPEG (continuare):
... GOPM SC Imag. tip
buffer param. param. codare

QT

GOP1

GOP2

Slice1

Slice2

...

SliceL

SC GOP

time code

GOP param.

Imag.1

Imag.2

...

Imag.P

SC Slice

vert. pos.

Q scale

MacroB.1 MacroB.2

...

MacroB.P

SC Imag.

tip

buffer param.

param. codare

Slice1

Slice2

...

SliceL

Adres

tip

vector micare

Q scale

CBP

Bloc1

...

Bloc6
...
AC6,63

- time code: cod de timp SMPTE (ore:minute:secunde:cadru); - GOP param.: descriu structura GOP (broken, open, ...); - tip: I, P sau B-picture; - param. codare: precizie pixeli ? - Slice: poriune din imagine (secven blocuri, +rol de re-sincronizare).
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 38

- vert.pos: pe ce linie ncepe slice-ul;

DC6,0 AC6,1 AC6,2

- Q scale: cum este scalat tabela de cuantizare; - MacroBloc1-6 = 4x 8x8 blocuri Y, 1x 8x8 bloc CB i 1x 8x8 bloc CR; - tip: are vector de micare? ce tip? - CBP = Coded Block Pattern, modul de codare ale celor 6 blocuri.
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 39

Tehnici de codare video: MPEG-2


Moving Picture Experts Group 1994 MPEG-2 n principal extensia lui MPEG-1 pentru scanare de tip i (interlaced); int: video de nalt calitate la 4-15Mb/s: Video on Demand (VOD), TV digital i satelit (SDTV i HDTV), stocare digital DVD - Video; > cteva date:
[S. Aramvith, M.-T. Sun, MPEG-1 and MPEG-2 Video Standards, 1999]

Tehnici de codare video: MPEG-2


Moving Picture Experts Group 1994 MPEG-2 n principal extensia lui MPEG-1 pentru scanare de tip i (interlaced); int: video de nalt calitate la 4-15Mb/s: Video on Demand (VOD), TV digital i satelit (SDTV i HDTV), stocare digital DVD - Video; > cteva date (continuare):
profil nivel High 1920x1152@60fps High 1440x1152@60fps Main 720x576@30fps Low 352x288@30fps Simple 15Mb/s Main 80Mb/s 60Mb/s 15Mb/s 4Mb/s Spatially SNR ~cel mai uzual, High scalable scalable video de nalt calitate: VOD, DVD, Digital TV, HDTV; 100Mb/s 15Mb/s 4Mb/s 60Mb/s 80Mb/s 20Mb/s -

profil nivel High 1920x1152@60fps High 1440x1152@60fps Main 720x576@30fps Low 352x288@30fps Simple 15Mb/s Spatially SNR video pentru teleconferine, ntrzieriHigh mici Main (low-delay) scalable scalable 80Mb/s 60Mb/s 15Mb/s 4Mb/s 15Mb/s 4Mb/s 60Mb/s 100Mb/s 80Mb/s 20Mb/s -

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

40

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

41

Tehnici de codare video: MPEG-2


Moving Picture Experts Group 1994 MPEG-2 n principal extensia lui MPEG-1 pentru scanare de tip i (interlaced); int: video de nalt calitate la 4-15Mb/s: Video on Demand (VOD), TV digital i satelit (SDTV i HDTV), stocare digital DVD - Video; > cteva date (continuare):
profil nivel High 1920x1152@60fps High 1440x1152@60fps Main 720x576@30fps Low 352x288@30fps Simple 15Mb/s Main 80Mb/s 60Mb/s 15Mb/s 4Mb/s SNR scalable 15Mb/s 4Mb/s Spatially (Signal-to-NoiseHigh scalable Ratio) permite mai multe de - niveluri 100Mb/s calitate video; 60Mb/s 80Mb/s 20Mb/s -

Tehnici de codare video: MPEG-2


Moving Picture Experts Group 1994 MPEG-2 n principal extensia lui MPEG-1 pentru scanare de tip i (interlaced); int: video de nalt calitate la 4-15Mb/s: Video on Demand (VOD), TV digital i satelit (SDTV i HDTV), stocare digital DVD - Video; > cteva date (continuare):
profil nivel High 1920x1152@60fps High 1440x1152@60fps Main 720x576@30fps Low 352x288@30fps SNR Simple mai multe Main niveluri de suport scalable rezoluie spaial; 80Mb/s 15Mb/s 60Mb/s 15Mb/s 4Mb/s 15Mb/s 4Mb/s Spatially scalable 60Mb/s High 100Mb/s 80Mb/s 20Mb/s -

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

42

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

43

Tehnici de codare video: MPEG-2


Moving Picture Experts Group 1994 MPEG-2 n principal extensia lui MPEG-1 pentru scanare de tip i (interlaced); int: video de nalt calitate la 4-15Mb/s: Video on Demand (VOD), TV digital i satelit (SDTV i HDTV), stocare digital DVD - Video; > cteva date (continuare):
profil nivel High 1920x1152@60fps High 1440x1152@60fps Main 720x576@30fps Low 352x288@30fps Spatially SNR suport Simple mai multe Main niveluri de calitate, scalable scalable rezoluie spaial i subeantionare (4:4:4, 4:2:2 - i 4:2:0); 80Mb/s 15Mb/s 60Mb/s 15Mb/s 4Mb/s 15Mb/s 4Mb/s 60Mb/s High 100Mb/s 80Mb/s 20Mb/s -

Tehnici de codare video: MPEG-2


> principiul de codare MPEG-2 similar cu al lui MPEG-1 (codare intra i inter), totui exist diferene majore practice (cele mai importante):
[S. Aramvith, M.-T. Sun, MPEG-1 and MPEG-2 Video Standards, 1999]

codare video ntreesut (interlaced):

cadru 1 (scanare progresiv)

cmp 1-1

cadrul 1 (scanare ntreesut)

cmp 1-2

> codare la nivel de cadru sau la nivel de cmp;


44 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 45

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: MPEG-2


> diferene majore fa de MPEG-1 (continuare): codare video ntreesut (continuare): > compensarea micrii este adaptat la nivel de cadru sau cmp dual-prime motion compesation (mai eficient): cadru 1 x o x o x o x o
referin predicie cadru: clasic MPEG-1;

Tehnici de codare video: MPEG-2


> diferene majore fa de MPEG-1 (continuare): codare video ntreesut (continuare): > compensarea micrii este adaptat la nivel de cadru sau cmp dual-prime motion compesation (mai eficient): cadru cadru 2 un vector cadru cadru - dac 1 se cunoate de1micare v2 x la un alt cmp x cmp relativ x x un anumit pentru de referin (aceeai paritate): o o o o x a vectorului x x x extrapolare sau interpolare ode referin o de o de micare dv o pentru cmpul x x x opus x paritate + corecie corespunztoare decalajului dintre o diferite); o o linii (cmpuri o x x x x acest mecanism prin mediere tinde s o o din imagine. o o zgomotul reduc
referin referin predicie cadru: clasic MPEG-1;
46

cadru 2 x o x o x o x o

cadru 1 x o x o x o x o
referin

cadru 2 x o x o x o x o

cmp 1 cmp 2 cmp 1 cmp 2 x x o o x x o o x x o o x x o o


referin referin dual-prime: predicie pe baza a doi vectori din cmpurile de referin;

cmp 1 cmp 2 cmp 1 cmp 2 x


v

o o o o

dv

x x x x

o o o o

x x x

referin referin dual-prime: predicie pe baza a doi vectori din cmpurile de referin;
47

predicie cmp: fiecare separat;

predicie cmp: fiecare separat;

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: MPEG-2


> diferene majore fa de MPEG-1 (continuare): codare scalabil: codare pe straturi

Tehnici de codare video: MPEG-2


> diferene majore fa de MPEG-1 (continuare): codare scalabil (continuare): 4 moduri 1. scalabilitate SNR

1-2 straturi de detaliu (enhancement-layers) permit mbuntirea calitii: - rezoluie spaial mai mare, - rezoluie temporal mai mare, ...

basis: coeficieni DCT cuantizai la o calitate moderat (rat de bit ); enhancement: diferena dintre coeficienii DCT necuantizai i cei cuantizai; n funcie de preferine se decodeaz doar basis sau ambele straturi. 2. scalabilitate spaial

un strat de baz (basis-layer) ce furnizeaz o calitate video standard;

basis: subeantionare spaial prin decimare pentru o rezoluie mic; enhancement: supraeantionare prin interpolare + stocare predicie micare; furnizez simultan rezoluii diferite n funcie de terminalul utilizatorului ex.: trecere de la SDTV la HDTV;

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

48

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

49

Tehnici de codare video: MPEG-2


> diferene majore fa de MPEG-1 (continuare): codare scalabil (continuare): 4 moduri 3. scalabilitate temporal basis: codare la o rat de cadre redus; enhancement: compensarea micrii pentru reconstituirea unor cadre suplimentare; comunicaii fr fir, conexiune limitat reducere numr cadre/s; 4. scalabilitate hibrid - SNR + spaial : HDTV, SDTV, Videotelefon; - Spaial + temporal: HDTVp + res. temp. i HDTVi & SDTVi basic; - SNR + temporal : HDTVp mbuntit i HDTVp basic.

Tehnici de codare video: MPEG-2


> diferene majore fa de MPEG-1 (continuare): partiionarea datelor: pentru transmisie robust a datelor n medii predispuse la erori; > blocurile de 8x8 coeficieni DCT sunt mprite n partiii: de nivel sczut = informaie critic (frecvene de nivel ridicat = detalii (frecvene ),
low priority channel.

),

high priority channel.

depirea erorilor (error resilience): erori ce apar: n antet secven, antet cadre, antet slice, antet macrobloc, coeficieni DCT, vectori de micare, ... problem! - vectori de micare ascuni (concealement motion vectors) n antetul macroblocurilor, dac datele din macrobloc sunt corupte compensare din cadrul anterior;
50 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 51

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: MPEG-2


> diferene majore fa de MPEG-1 (continuare): depirea erorilor (continuare): - structura slice-urilor: reprezint marcheri pentru resincronizare dac are loc o eroare de transmisie, slice-uri cu mai puine blocuri; - localizare temporal: este folosit pentru a opri propagarea unei erori de decodare de la un cadru la altul (natural o eroare se oprete la urmtoarea imagine I-picture), creterea numrului de imagini cheie I-picture (periodice); > avantaje: acces aleator n fluxul video, faciliti fast-forward i fast reverse play, ... - codarea scalabil (vezi slide anterior)

Tehnici de codare video: MPEG-4


Moving Picture Experts Group 1999 MPEG-4: mai multe standarde (27) denumite pri ce acoper diferite aspecte de codare; int principal: codare la o rat de bit foarte redus (mult mai eficient); al treilea pas major: codarea obiectelor video (=video processing): - video object coding: codarea obiectelor video rectangulare sau de form arbitrar, att naturale ct i de sintez; - mesh object coding: codarea obiectelor vizuale pe baza suprafeei acestora (mesh-wireframe); - model-based coding: codarea pe baz de model a animaiei de sintez a feei i corpului; - still texture coding: codarea texturilor statice;
[B. Erol, F. Kossentini, A. Joch, G.J. Sullivan, L. Winger, MPEG-4 Visual and H.264/AVC: Standards for Modern Digital Video, 2009] 52 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 53

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: MPEG-4


obiect audio-vizual (AVO)= un segment video de dimensiune arbitrar ce are o semnificaie semantic ( inf. vizual, audio sau mixt); scen audio-vizual = o mulime de AVO identificate prin coordonatele spaiale i temporale, ex. {AVO1, AVO2,,AVON}; informaii transmise separat (scene description information) ce permit reconstrucia scenei la nivelul utilizatorului; AVO1: copaci (natural), AVO2: soare (sintez), AVO3: persoane (sintez), AVO4: voce, AVO3+4: persoane+voce (compus), la utilizator, AVO pot fi ascunse, terse, modificate (scalare, fps , ...)
54

Tehnici de codare video: MPEG-4


video object coding: presupune codarea vectorilor de micare, textur, forme i fundal (sau sprite): Video Object Plane (VOP) = o proiecie 2D a unui VO (obiect video, AVO) la un moment t, ce este definit prin textur (luminan-crominan) i form; acces la nivel de VO ct i VOP, implic segmentarea scenei!

X
ex. scen audio-vizual

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

55

Tehnici de codare video: MPEG-4


video object coding: principiu
VOP codor textur codare multiplex. MUX flux de date

Tehnici de codare video: MPEG-4


video object coding (continuare) codare vectori de micare: - vectori de micare nerestricionai = au voie s indice n afara zonei codate din VOP-ul de referin; - compensarea micrii cu blocuri de dimensiuni variabile; - compensare global a micrii (camera video);
codare vect. micare

+ -

DCT

cuantizare

cuantizare invers IDCT

+
predicie coeficieni compensare micare estimare micare codare form

- precizie quarter-sample (QPel) = precizia deplasrii este de pixeli, vectori de micare fracionari posibil prin interpolare;
000000 000000 0

buffer imag.

codare textur: - proces similar cu MPEG-1 i MPEG-2: macroblocuri blocuri DCT ... - dac un macrobloc depete un VOP de o anumit form, este bordat cu 0 pe acea regiune = compresie
56 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 57

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: MPEG-4


video object coding (continuare) codare form: - pentru a face distincia ntre textur i form se folosete conceptul de alpha-plane (hart binar sau cu niveluri de gri); 0 = total transparent, 255 = total opac, [1;254] niveluri progresive de transparen. codare cu pierderi sau fr: blocurile de frontier codate aritmetic; plan transparen ~ codare textur; codare intra sau inter: local, pe baza valorilor vecine sau estimare micare form i codare diferen.
58

Tehnici de codare video: MPEG-4


video object coding (continuare)
(detalii M4 Informaia de Micare) codare sprite: - codarea separat a VO ce sunt, fie statice pe durata unei scene video sau a cror modificri pot fi aproximate pe baza unor VO de plecare;

> izolare fundal de prim plan (codat o singur dat)

camera

imagine iniial

estimare prim-plan

imagine reconstituit

VOP

plan alpha binar

plan alpha gradual

sprite fundal aproximat din mai multe cadre

[H. Watanabe, K. Jinzenji, Sprite Coding in Object-based Video Coding Standard: MPEG-4, 2001] 59

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Tehnici de codare video: MPEG-4


> MPEG-4 vedere de ansamblu (pri): 1999 part 1: Systems descrie sincronizarea i multiplexarea video i audio; 1999 part 2: Visual (prezentat anterior) compresia datelor vizuale (video, texturi, imagini de sintez) = Advanced Simple Profile; 1999 part 3: Audio codarea perceptual a semnalului audio; 2000 part 4: Conformance testing protocol de testare a conformitii cu alte pri ale standardului; 2000 part 5: Reference software model de implementare de referin
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 60

Tehnici de codare video: MPEG-4


> MPEG-4 vedere de ansamblu (pri): continuare 1999 part 6: Delivery Multimedia Integration Framework interfaa dintre aplicaie i nivelul de transport (reele); 2002 part 7: Optimized reference software modele de implementare ale unor eventuale mbuntiri ale standardului; 2004 part 8: Carriage of contents over IP networks transport MPEG-4 pe reele cu IP; 2004 part 9: Reference hardware description model de implementare hardware; 2003 part 10: Advanced Video Coding codare semnale video ~ H.264; 2005 part 11: Scene description and application engine coninut interactiv 2D i 3D; XMT reprezentare textual con. multimedia;
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 61

Tehnici de codare video: MPEG-4


> MPEG-4 vedere de ansamblu (pri): continuare 2004 part 12: ISO base media file format format de fiier de stocare coninut media; 2004 part 13: Intellectual Property Management and Protection protecia si distribuia materialelor cu drept de autor; 2003 part 14: MP4 file format container pentru MPEG-4 bazat pe part 12; 2004 part 15: Advanced Video Coding file format container pentru MPEG-4 ce permite stocarea i n alte formate; 2004 part 16: Animation Framework eXtension model de reprezentare a graficii 3D (geometrie, textur, animaie,...); 2006 part 17: Streaming text format subtitrri;
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 62

Tehnici de codare video: MPEG-4


> MPEG-4 vedere de ansamblu (pri): continuare 2004 part 18: Font compression and streaming manipulare text; 2004 part 19: Synthesized texture stream crearea de clipuri de sintez cu o rat de bit foarte redus; 2006 part 20: Lightweight Application Scene Representation multimedia dedicat dispozitivelor mobile, integrate, ...; 2006 part 21: MPEG-J Graphics mediu de programare pentru multimedia interactiv MPEG + Java; 2007 part 22: Open Font Format fonturi scalabile; 2008 part 23: Symbolic Music Representation

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

63

Tehnici de codare video: MPEG-4


> MPEG-4 vedere de ansamblu (pri): continuare 2008 part 24: Audio and system interaction fiiere MPEG-4 i MPEG-4 audio; 2009 part 25: 3D Graphics Compression Model interconectare grafic 3D MPEG-4 cu grafic din alte standarde; 2010 part 26: Audio conformance 2010 part 27: 3D Graphics conformance > concluzie: pachet de tehnici de codare ce deservete o gam extrem de larg de aplicaii + adaptare continu la cerinele actuale; > din pcate, din motive practice, codarea obiectelor rmne n mare doar un concept de interes tiinific !
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 64

Tehnici de codare video: exemple


> comparaie calitate vizual
MPEG-2 full MPEG-4 M-JPEG MPEG-1

- imagini sintez 3D - 4s (100 cadre), - 1280x720 pixeli, - 2.496 kbps,

full: 264.611KB M-JPEG: 3.518KB (75:1) MPEG-1: 1.040KB (254:1) MPEG-2: 1.042KB (254:1) MPEG-4 p10: 1.017KB (260:1)
zoom 600%
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 65

Tehnici de codare video: exemple


> comparaie calitate vizual
full MPEG-4 full MPEG-2

Tehnici de codare video: exemple


> comparaie calitate vizual la o rat de bit redus
- imagini sintez 3D - 4s (100 cadre), - 1280x720 pixeli, - 1.008 kbps, MPEG-4 p10: 391KB (677:1) MPEG-2: 579KB (457:1) MPEG-1: 576KB (459:1) full MPEG-2 MPEG-4 MPEG-4p2 p10 MPEG-1 - 528 kbps, MPEG-1: 359KB (737:1) MPEG-2: 364KB (727:1) MPEG-4 p2: 382KB (693:1)

full: 264.611KB MPEG-4 p10: 1.017KB


full MPEG-1 full

MPEG-2: 1.042KB
M-JPEG

MPEG-1: 1.040KB

M-JPEG: 3.518KB

MPEG-4 p10: 205KB (1291:1) zoom 500%

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

66

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

67

Tehnici de codare video: exemple


> comparaie calitate vizual la o rat de bit redus

MPEG-4 p2

MPEG-2

MPEG-1

> M1. Informaia video [ Manipulare video utilitare ]

full

full

full

MPEG-4 p2: 382KB

MPEG-2: 364KB

MPEG-1: 359KB

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

68

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

69

Formate video
> tehnici de codare: algoritmi/metode de compresie video; > codec video: un dispozitiv sau program ce furnizeaz un pachet de proceduri ce permit compresia (encoding) i decompresia (decoding) datelor video digitale; implementarea tehnicilor de codare; > fiier video: un container ce specific modul de stocare pe disc a informaiei video codate. > player video: un pachet de utilitare ce furnizeaz o interfa grafic de vizualizare a coninutului video; se folosesc de codec-urile existente n sistem,
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 70

Formate video
codec-uri video:
- proprietar DivX, Inc. (fost DivXNetworks, Inc.), - include MPEG-4 Part 2 ASP i H.264/MPEG-4 Part 10 AVC. [http://www.divx.com] - open source, concurena direct DivX (XviD), - multiplatform, include MPEG-4 Part 2 ASP. [http://www.xvid.org] - realizat de 3ivx Technologies, sisteme embedded (vitez de prelucrare redus) - include MPEG-4 Part 2 ASP. [http://www.3ivx.com] - RealVideo, proprietar RealNetworks, destinat flux video n reea (streaming, coninutul video este vizualizat progresiv), - mai multe versiuni rv10-rv20: H.263, rv30-40: H.264, ... [http://www.realnetworks.com]
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 71

Formate video
codec-uri video (continuare):
- WMV: Windows Media Video (rspuns la RealVideo), - iniial bazat pe MPEG-4 Part 2 ASP i apoi modificat, - destinat streaming Internet (fiiere foarte mici), - suport o rat de bit variabil, constant sau medie. - Cinepak dezvoltat de SuperMac Apple QuickTime, - codare pentru rat de transfer CD-ROM, - DCT, folosete cuantizare vectorial. -IndeoVideo dezvoltat de Intel DVI Digital Video Interactive, - vizualizare video n timp real fr accelerare hardware, - bazat pe transformarea wavelet. [http://ligos.com/index.php/home/products/indeo] - On2 VP6 dezvoltat de TrueMotion, - folosit de Flash Video (Google YouTube, VP8 open source),

Formate video
fiiere video (containere) uzuale: .3GP - 3rd Generation Partnership Project, video destinat 3G (comunicaii mobile) sau Internet. .ASF - Microsoft Advanced Systems Format File, se specific structura datelor audio i video dar nu modul de codare (+ metadata: bibl. etc.). .AVI - Microsoft Audio Video Interleave File, datele sunt mprite n blocuri ("chunks) i identificate pe baza FourCC (4-Character Code): - "hdrl : antet, metadata video (rezoluie, frecven, etc.), - "movi: datele audio/visuale propriu-zise, - "idx1 (opional): offset data chunks. .FLV - Flash Video File, conine antet, date audio-video intercalate (interleaved), pachete de metadata. .MOV - Apple QuickTime Movie, compatibil cu platforme Macintosh dar i Windows.
72 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

[surs http://www.fileinfo.com/filetypes/video] 73

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Formate video
fiiere video (containere) uzuale: .MP4 - MPEG-4 Video File, Part 14, poate stoca i alte date precum subtitrri i este adaptat la streaming Internet. .MPG - MPEG Video File, de regul stocheaz format MPEG-1 i 2. .RM - Real Media File, container pentru streaming ce conine date audiovideo sau un link Internet la o surs multimedia (radio sau TV pe Internet). .SWF - Flash Movie, animaie realizat n Adobe Flash, conine text, grafic vectorial, bitmap, interactivitate; vizualizare de regul n Web browser. .VOB - DVD Video Object File, formatul MPEG-2 pentru DVD (localizare de regul n director VIDEO_TS); conine audio, video i subtitrri. .WMV - Windows Media Video File, bazat pe containerul ASF i include codare de tip Windows Media Video (WMV).
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 74

Accesare informaie video: mediul Matlab


deschidere fiiere AVI: funcia aviread()

mov=aviread(nume_fisier);
> deschide fiierul nume_fisier.avi din calea curent, decomprim toate cadrele video i le stocheaz ntr-un vector de structuri numit mov; atenie: film prea lung = out of memory ! > mov este un vector linie de dimensiune 1-by-N, unde N este numrul total de cadre din secvena video (numerotare de la 1);

colormap : conine paleta de culoare a imagini, mov(i).


i indice cadru curent

truecolor indexat

palet vid, vector M-by-3,

cdata

: conine valorile pixelilor, truecolor matrice Height-by-Width-by-3, indexat matrice Height-by-Width,


75

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Accesare informaie video: mediul Matlab


deschidere fiiere AVI: funcia aviread()

Accesare informaie video: mediul Matlab


deschidere fiiere AVI: funcia aviread()

imagesc(mov(10).cdata);

> afieaz cadrul 10 ntr-o fereastr.

mov=aviread(nume_fisier, index);
> deschide fiierul nume_fisier.avi din calea curent i decomprim doar cadrele specificate de index: - un singur cadru, index=constant; - mai multe cadre, index=vector (aceeai convenie ca anterior). n prelucrarea video de regul se lucreaz ntr-o fereastr temporal centrat n cadrul curent analizat:
fereastr w cadre cadrul i timp

mov(10).cdata(100:500,100:500,1)=0; mov(10).cdata(100:500,100:500,2)=0; mov(10).cdata(100:500,100:500,3)=255;


> .cdata( , , 1) = planul de rou (Red) .cdata( , , 2) = planul de verde (Green) .cdata( , , 3) = planul de albastru (Blue)

mov_w=aviread(nume_fisier, i-10:i+10);
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 76 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 77

Accesare informaie video: mediul Matlab


informaii AVI: funcia aviinfo()

Accesare informaie video: mediul Matlab


creare fiier AVI: funcia avifile() se deschide pe disc un flux video n nume_fisier.avi controlat prin new_mov; setri parametri de codare: - codec: Indeo3, Indeo5, Cinepak, MSVC, RLE sau None, - calitate, fps,

mov_info=aviinfo(nume_fisier);
> deschide fiierul nume_fisier.avi din calea curent, i extrage n structura mov_info informaii despre coninutul video: .Filename: 'HDMPEG4@528kbps.avi .FileSize: 390732 .FileModDate: '01-Nov-2010 15:14:38 .NumFrames: 98 .FramesPerSecond: 25 .Width: 1280 .Height: 720 .ImageType: 'truecolor .VideoCompression: 'DIVX .Quality: 0 .NumColormapEntries: 0
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 78

new_mov=avifile(nume_fisier.avi); new_mov.Fps=25; new_mov.Compression=Indeo5; new_mov.Quality=90;

% adaugare cadre for i=1:125 cadru=zeros(480,640,3); adugare secvenial de new_mov=addframe(new_mov,cadru); cadre la secvena new_mov, end new_mov=close(new_mov); nchidere flux video
(obligatorie).

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

79

Accesare informaie video: mediul Visual C++


> librria Microsoft AVIFile
[http://msdn.microsoft.com/en-us/library/dd756808%28VS.85%29.aspx]

Accesare informaie video: mediul Visual C++


> librria Microsoft AVIFile (continuare)
deschidere flux video MovieIsOpen indicator

iniializare i variabile control flux video

AVIFileInit();

iniializare librrie AVIFile (o singur dat); AVIFileExit(); la terminare program! pointer la o interfa IAVIFile (deschidere i manipulare fiiere); pointer la o locaie de memorie n care va fi stocat un handle ctre un flux de date (video, audio, ...); pointer la o interfa IGetFrame (extragere, decompresie ... ); antet fiier DIB (Device Independent Bitmap) i fiier AVI acces cadre.
80

PAVIFILE avi; PAVISTREAM pStream; PGETFRAME pFrame; BOOL MovieIsOpen; BITMAPINFOHEADER bih; AVIFILEINFO avi_info;

// nchidere flux anterior boolean (definit, nu este if (MovieIsOpen) standard!) { eliberare resurse folosite MovieIsOpen=False; la decompresie cadre; if (pFrame) AVIStreamGetFrameClose(pFrame); if (pStream) nchidere flux de date; AVIStreamRelease(pStream); if (avi) nchidere fiier avi; AVIFileRelease(avi); pFrame=NULL; pStream=NULL; avi=NULL; pointeri nuli; }
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 81

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Accesare informaie video: mediul Visual C++


> librria Microsoft AVIFile (continuare)
deschidere flux video (continuare) deschide un fiier AVI specificat de szFileName

Accesare informaie video: mediul Visual C++


> librria Microsoft AVIFile (continuare)
deschidere flux video (continuare) returneaz un pointer la un flux de date din fiierul refereniat de avi, n pStream; streamtypeVIDEO = flux video (AUDIO, MIDI, TEXT); eroare la deschidere; extrage antet fiier avi avi_info; .dwWidth x .dwHeight = dimensiuni; .dwRate / .dwScale = fps.
83

// deschidere fisier nou i returneaz n avi int res; pointerul la interfaa res=AVIFileOpen(&avi, szFileName, acestuia; OF_SHARE_DENY_WRITE, NULL); if (res!=AVIERR_OK) { // unable to open the AVI file! ... }

// deschidere flux de date nou MovieIsOpen=True; res=AVIFileGetStream(avi, pStream, streamtypeVIDEO, 0); if (res!= AVIERR_OK) { // stream open error! ... } AVIFileInfo(avi, &avi_info, sizeof(AVIFILEINFO));
82

deschidere non-exclusiv (alte programe pot citi fiierul) eroare la deschidere;

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Accesare informaie video: mediul Visual C++


> librria Microsoft AVIFile (continuare)
deschidere flux video (continuare) returneaz numrul de eantioane = cadre din fluxul video;

Accesare informaie video: mediul Visual C++


> librria Microsoft AVIFile (continuare)
deschidere flux video (continuare) alocare i scriere

// pregatire accesare cadre video int FrameNumber=AVIStreamLength(*pStream); if (FrameNumber==-1) { // stream length is zero! } int FirstFrame=AVIStreamStart(*pStream); if (FirstFrame==-1) { // error retrieving the first frame! }

eroare, nu exist nici un cadrul video; cutare poziie de plecare n flux = primul cadru video; eroare;

antet DIB bih; // deschidere flux de cadre video (la adresa ZeroMemory(&bih, sizeof(BITMAPINFOHEADER)); pointerului bih se bih.biBitCount=24; bih.biClrImportant=0; iniializeaz cu 0 bih.biClrUsed = 0; bih.biCompression = BI_RGB; memorie pentru bih.biPlanes = 1; bih.biHeight = avi_info.dwHeight; antet); bih.biWidth = avi_info.dwWidth; bih.biSize = sizeof(BITMAPINFOHEADER); pregtete decompresia bih.biSizeImage = bih.biWidth*bih.biHeight*3; din fluxul pStream i d controlul prin pFrame *pFrame=AVIStreamGetFrameOpen (imaginile conform bih) (*pStream, &bih); if (*pFrame==NULL) eroare la format imagine; { // frame format error! }
84 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 85

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Accesare informaie video: mediul Visual C++


> librria Microsoft AVIFile (continuare)
deschidere flux video (continuare) pointer la cadru decomprimat (copie); returneaz adresa la cadrul decomprimat de indice 100 din fluxul pFrame pDIB (char = 8bii); eroare decompresie;

Accesare informaie video: mediul Visual C++


> librria Microsoft AVIFile (continuare)
deschidere flux video (continuare)

// copiere cadru video unsigned char *pDataImage= NULL; unsigned char *pDIB = (unsigned char*) AVIStreamGetFrame(*pFrame, 100); if (pDIB==NULL) { // frame decompression failed! }

BITMAPINFOHEADER BmpInfo; copiere date pDIB memcpy(&BmpInfo.biSize, pDIB, pDataImage (pentru a modifica imaginea). sizeof(BITMAPINFOHEADER)); pDataImage = new unsigned char[BmpInfo.biSizeImage]; memcpy(pDataImage, pDIB+ sizeof(BITMAPINFOHEADER), BmpInfo.biSizeImage);
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 86

// modificare cadru, afiare etc. parcurgere imagine pe for (int y=0; y<BmpInfo.biHeight; y++) linii i coloane; for (int x=0; x<BmpInfo.biWidth; x++) { componenta de int Red=pDataImage[(BmpInfo.biHeight-1-y)* rou (y,x) BmpInfo.biWidth*3+x*3+2]; componenta de int Green=pDataImage[(BmpInfo.biHeight-1-y)* BmpInfo.biWidth*3+x*3+1]; verde (y,x) int Blue=pDataImage[(BmpInfo.biHeight-1-y)* componenta de BmpInfo.biWidth*3+x*3]; albastru (y,x) } ... dup calcule eliberare memorie pDataImage delete pDataImage; (copia cadrului decomprimat).
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 87

Manipulare informaie video: biblioteca FFMPEG


un pachet de librrii open source de manipulare a datelor multimedia;
[http://www.ffmpeg.org/]

Manipulare informaie video: biblioteca OpenCV


Open Source Computer Vision: un pachet de utilitare open source de analiz i prelucrare de imagini i video (>500 de algoritmi);
[http://opencv.willowgarage.com/wiki/]

> ffmpeg: utilitar conversie ntre diverse formate video (linie de comand); > ffserver: server de streaming multimedia live; > ffplay : media player; > libavutil : librrie de funcii specifice de programare (numere aleatoare, structuri de date, funcii matematice, ...); > libavcodec : librrie de codec-uri audio-video (codor-decodor); > libavformat : librrie multiplexare-demultiplexare pentru containere; > libswscale : librrie de funcii optimizate pentru scalare i conversie din diverse spaii de culoare; > libavdevice : librrie de renderizare i extragere cadre ...
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 88 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 89

Utilitare de lucru cu informaia video: VirtualDub


utilitar open source ce permite prelucrarea informaiei audio-video; (codul este disponibil + captura video)
[http://www.virtualdub.org/] video original (in) video modificat /filtrat (out)

Utilitare de lucru cu informaia video: Super Converter


utilitar freeware ce permite conversia n/din marea parte a formatelor video existente;
[http://www.erightsoft.com/SUPER.html] opiuni video: rezoluie, aspect, fps, rat de bii, ... opiuni audio: frecven eantionare, rezoluie, canale, rat de bit, ...

definire segment video [start-end]

demo
list fiiere de convertit (implicit fiierul rezultat este salvat n acelai director)

play, stop, ...

demo

bar de navigaie (time line)


90

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

91

Utilitare de lucru cu informaia video: VLC


VideoLAN: utilitar open source de vizualizare i streaming deschide flux video incomplet, stricat !
[http://www.videolan.org/vlc/] vizualizare (deschide DVD, flux video online, captur video, ...)

> M1. Informaia video [ Conceptul de indexare ]

bar de navigare temporal

control: play, stop, forward, ...

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

92

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

93

Conceptul de indexare (revisited)


> societatea actual este una bazat pe informaie oamenii schimb/acceseaz un volum de date multimedia important:
text, ex. eBooks, eDocuments, etc. audio, ex. muzic, voce, etc.

Conceptul de indexare (revisited)


> problem: cum accesm informaia relevant din aceste colecii imense de date ?
video = cantitate mare de date - 1 minut > 1.500 imagini (la 25 cadre/s) - 1 baz video > mii de filme (>135.000.000 imagini) vrem s cutam o anumit informaie,

imagini, ex. poze, grafic, etc.

secvene de imagini ex. filme, flux video, etc.

vrem s rsfoim baza de date, vrem s vizualizm eficient coninutul (video),

> se estimeaz c n viitorul apropiat >60% din datele vehiculate pe Internet vor fi video (ex. YouTube ~ upload 24h pe minut);
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 94

> soluia existent: sistemele de indexare automat dup coninut sau Content-based Indexing Systems (sunet: CBAR, imagini: CBIR, video: CBVR, etc.)
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 95

Conceptul de indexare (revisited)


> indexare = adugarea de informaii suplimentare relative la coninutul datelor ce se doresc a fi indexate = adnotare > exemplu simplu:

Cum se realizeaz indexarea


> diagrama de principiu a unui sistem de indexare video:
baza video datele propriu-zise interfaa cu utilizatorul

[rezumate]

sistemul de navigare

0001010010 1100011010 1111110001 0011110110 0001111111 informaie brut program: Windows 7 Explorer

atribute/indeci (numerici, textuali, etc.)

sistemul de cutare

adnotare coninut

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

96

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

97

Cum se realizeaz indexarea


mecanism indexare: 1. adnotarea bazei (offline): sunt generate atributele/indecii ce descriu proprietile datelor (definiie spaiu de caracteristici):
poate fi automat (ideal), semi-automat sau manual; opional, se pot genera rezumate de coninut (ex. trailer, imagini cheie) ce vor facilita navigarea ulterioar n baz;

Cum se realizeaz indexarea


mecanism indexare (continuare): 2. cutarea n baz a informaiilor dorite (continuare):
cererea de cutare este convertit de sistem n atribute de coninut folosind aceleai informaii ca n cazul etapei 1; (proiecie n spaiul de caracteristici) cutarea propriu-zis: atributele obinute anterior sunt comparate succesiv cu cele din baz folosind o anumit msur de similaritate (distan); interacia cu utilizatorul: rezultatele sunt furnizate n ordinea relevanei de regul folosind sistemul de navigare, opional feedback utilizator;
98 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 99

2. cutarea n baz a informaiilor dorite:


formularea cererii de cutare (query) cuvnt cheie (query-by-keyword); exemplu (query-by-example); manual, ~ sist. de navigare; gesturi (query-by-gesture); concept (query-by-concept); mimare (query-by-humming);

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

Sistemul de navigare
> permite accesul utilizatorului la informaiile din baza de date, (concretizarea sistemului de indexare):

Sistemul de navigare
> permite accesul utilizatorului la informaiile din baza de date, (exemple, continuare):

Fschlr Dublin City University orientat utilizator


[http://www.cdvp.dcu.ie/]

iMars IBM Research orientat Web


[http://mp7.watson.ibm.com/]

MediaMill University of Amsterdam navigare temporal


[http://www.science.uva.nl/research/mediamill]

VideoVerse LAPI Romnia sistem 3D


[http://imag.pub.ro/VideoIndexingRP2]

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

100

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

101

Principalele puncte critice ale indexrii


- atributele folosite: care sunt atributele cele mai relevante ? maximizarea informaiei reprezentate i minimizarea dimensiunii spaiului de caracteristici. - msura de distan: cnd dou secvene sunt similare ? (problematic mai complex dect n cazul imaginilor) secvenele similare dup un anumit criteriu trebuie s returneze distanele minime. - performana indexrii: cum evalum rezultatele indexrii ? subiectiv (studii bazate pe utilizator), obiectiv (msuri numerice, precision, recall, etc.).

Paradigme
[C. Snoek, A. Smeulders, Tutorial on Video Search Engines, 2010]

> exist o multitudine de reprezentri ale aceluia obiect: iluminare diferit, perspectiv, suprapunere obiecte, etc.

sensory gap

> discrepan ntre informaiile extrase n mod automat i semnificaia semantic pe care le-o putem atribuii acestora,
0 01001 0001 1010 01 1100 0001 11 1 0 111 11011 0011 1111 11 0001

main

semantic gap
copac

000101001 0 001111101 0 111111000 1 101111111 0 100111111 1

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

102

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

103

Paradigme
[C. Snoek, A. Smeulders, Tutorial on Video Search Engines, 2010]

Tendina sistemelor actuale


> dou mari categorii de sisteme: adnotare sintactic (low-level) model gap

> exist o multitudine de lucruri n lumea nconjurtoare:

> multitudine de ntrebuinri ale aceluiai concept,


culori text schimbare textur obiect de interes traiectorie sunet

interface gap

adnotare semantic (high-level)

n meciul de fotbal al Real Madrid, Ronaldo numrul 9 a marcat golul.

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

104

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

105

Surse de informaie
> video = informaie spaio-temporal: culoare: coninut vizual; textur: materiale din scen; form: obiecte, personaje; structura temporal: ritm, aciune; micare local sau global; sunet muzic, vorbire; alte surse ex. culoare piele, text ncrustat, etc.
specifice video motenite de la sistemele de indexare de imagini

MPEG-7
Moving Picture Experts Group (2002 prezent) = Multimedia Content Description Interface: standard de descriere a coninutului multimedia, al patrulea pas major: indexarea coninutului video.
[http://mpeg.chiariglione.org/]

Obiective principale:
> gestionarea informaiei audio-vizuale la nivel: audio, voce, video, imagini, grafic i 3D; > furnizarea de metode rapide de cutare, filtrare i identificare a coninutului multimedia (cutarea multimedia la fel de simpl precum cea textual); > descriptori de coninut (numerici, structuri, modele , colecii ...); > descrierea modului de relaionare a obiectelor pentru a forma scena; > independen fizic ntre partea de descriere i informaia propriu-zis (totui sunt relaionate, multiplexate);

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

106

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

107

MPEG-7
Descrierea coninutului multimedia (Multimedia Description Schemes) = structuri de metadate ce descriu i adnoteaz coninutul AV: textuale (XML ce poate fi citit editare, cutare, filtrare) binare (comprimate stocare sau transmisie) Descriptors (D): descrierea low-level a proprietilor scenei audio-vizuale (culoare, textur, micare, ...) + proprieti fizice (locaie, timp, calitate, ...); a fi extrase automat! Description Schemes (DSs): descrierea high-level a coninutului AV (regiuni, segmente, obiecte, evenimente, ...) necesit intervenie uman! Description Definition Language (DDL): descrierea pe baza XML a relaiilor structurale ntre descriptori (creare i modificare de DSs i D); System tools: binarizare, sincronizare, transport + stocare descriptori;
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 108

MPEG-7: descriptori de coninut


- color space: RGB, YCbCr, HSV, HMMD, ...
(detalii M2 Informaia de Culoare)

- color quantization: reducere de culoare,


(detalii M2 Informaia de Culoare)

- dominant color: culori reprezentative, %, coeren spaial, varian;

culoare

- scalable color: histogram de culoare HSV (scalabil nr. culori, bii, ...); - color layout: distribuia spaial a culorilor (foarte compact, independent de rezoluie); - color structure: informaie despre coninutul de culoare (histogram) dar i structur (prin element structurant); - GoP color: extensia descriptorului de culoare scalabil pentru secvene de imagini (histograma medie, median i intersecie = minim least common).

[T. Sikora, The MPEG-7 Visual Standard for Content Description - An Overview, 2001] Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 109

MPEG-7: descriptori de coninut


- homogenous texture: descriptori de textur pe baz de filtre Gabor (~ SVU);

MPEG-7: descriptori de coninut


- shape 3D: reprezentare folosind proiecii 2-D ale diferitelor ipostaze ale obiectului 3D;

textur

- texture browsing: caracterizare perceptual precum regularitate, direcionabilitate i granularitate; - edge histogram: distribuia spaial a 4 tipuri de orientri de contur (vertical, orizontal, 45, 135); - region shape: distribuia pixelilor ntr-un obiect 2D (obiecte complexe = regiuni disconecte, bazate pe 2D Angular Radial Transformation - transf. unitar);

form

- region locator: localizarea regiunilor la nivel de cadru prin specificarea unui dreptunghi sau poligon (scalabil); - spatio-temporal locator: localizarea spaio-temporal a regiunilor (micare obiecte); poate descrie i obiecte ce nu sunt conectate spaial;

form

(exemple de obiecte similare)

localizare

- contour shape: proprieti obiect pe baza formei conturului (bazate pe reprezentarea n Curvature ScaleSpace reprezentare 1D a conturului);
Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 110 Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU 111

MPEG-7: descriptori de coninut


- camera motion: parametri de micare global la un anumit moment temporal;
(detalii M4 Informaia de Micare)

- motion trajectory: traiectoria deplasrii obiectelor n timp (localizare temporal i spaial);

> Sfrit M1. Informaia video

micare

- parametric motion: descrierea micrii obiectelor pe baza modelelor parametrice (afine);


(detalii M4 Informaia de Micare)

- motion activity: ~nivelul de aciune (lent, rapid, aciune), bazat pe dispersia amplitudinii vectorilor de micare (pot avea o reprezentare spaial i temporal);

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

112

Analiza i Prelucrarea Secvenelor de Imagini, .l. Bogdan IONESCU

113

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