università degli studi di ferrara
DESCRIPTION
Università degli studi di Ferrara. DIPARTIMENTO DI INGEGNERIA Corso di Laurea in Ingegneria Elettronica. Codifica e decodifica di oggetti visivi nello standard MPEG-4. - PowerPoint PPT PresentationTRANSCRIPT
Università degli studi di Ferrara
DIPARTIMENTO DI INGEGNERIA
Corso di Laurea in Ingegneria Elettronica
Codifica e decodifica di oggetti visivi
nello standard MPEG-4
Laureando: Relatore: Fabio Cavalli Dott. Ing. Massimo Piccardi
Correlatore:
Prof. Ing. Rita Cucchiara
DATI VISIVI
t
- Rappresentazione in forma normale:
successione di bitmaps
nello spazio di colore YCBCR
- Contenuti visivi bidimensionali naturali: immagini in movimento a colori
a variazione continua di tono
- Sottocampionamento crominanza:
perdita di qualità impercettibilie
rappresentazione più compatta
esempio notevole: chroma format 4:2:0
Campione Y Campione CB,CR
TRASMISSIONE DI CONTENUTI VISIVI
Es.: filmato SIF 4:2:0 progressivo a 30 Hz in true color (‘risoluzione’ media)
ogni frame richiede 1,5 ∙ 352 ∙ 240 ∙ 8 ≈ 1 Mbit → data rate: 30 Mbps
banda canali di trasmissione
es.: ISDN 128 kbps
capacità dispositivi storage
es.: 1 h di filmato richiede 13,5 GB
LIMITITRASMISSIONE STORAGE
compressione necessaria in part. per riproduzione in tempo reale dalla rete
→ altrimenti conveniente: uso efficiente delle risorse (rete, memorie)
tempi di latenza ridotti SE non è troppo onerosa
di memoria di massa
COMPRESSIONE
Compressione o compattamento dei dati: codifica dell’informazione volta
al conseguimento di una rappresentazione in forma compatta
Efficienza di codifica per immagini naturali:
correlazione spaziale → codifica intra
correlazione temporale → codifica inter
ridondanza percettiva (spc. e tmp.) → codifica con perdita (lossy)
TECNICHE LOSSY PER IMMAGINI FISSE
Maggior efficienza di compressione a parità di costo computazionale
quantizzazione vettoriale
compressione frattale
Troppo onerose → codifica per trasformate
CODIFICA PER TRASFORMATE
8x8
Codificaentropica
Quantiz.scalare
Trasform.2D
01011101...
1. Trasformazione decorrelante:
coefficienti indipendenti – energia concentrata alle basse frequenze spaziali
trasf. subottime ma veloci: attualmente DCT (tutti IS)
verso Wavelet (JPEG2000, VTC di MPEG-4): opt. contorni (localizzazione)
2. Quantizzazione pesata o percettiva
3. Codifica entropica: Huffman o aritmetica (5-10% più efficiente ma onerosa)
Cod. sorgente (lossy) Cod. lossless
Implementazione low cost della quantizzazione vettoriale
3x
MPEG
MPEG: comitato ISO/IEC per codifica immagini in mov. ed audio associato
MPEG-4: fase 4 del gruppo, attualmente 2 versioni (altre 3 in fieri)
Storage su supporti digitali
Televisione digitale (SDTV e HDTV)
Codifica a oggetti
MPEG-7: rappresentazione e gestione contenuti multimediali
MPEG-21: infrastruttura multimediale
MPEG-4
Mira all’integrazione di 3 campi applicativi della tecnologia dell’informazione
Obiettivi:
efficienza di compressione per ampia gamma di bitrates e tipi di dato
interattività basata sui contenuti → approccio ad oggetti
accesso universale → rappresentazione robusta e scalabilità
Sequenza tradizionale
(frame based)
Oggetto di forma arbitraria
(arbitrary shaped)
MPEG-4
computer TV
telecom.
PARTE 1: SISTEMA
Non solo codifica ma anche composizione di scene
contenuti disomogenei:
3D sintetico
Immagine naturale
tradizionale
audio
arbitrary-shaped naturale
immagine
es. video: naturali, sintetici (2D e 3D) o ibridi
grafo in stile VRML
codec scena formato BIFS
Consente l’integrazione dei codec specifici
codifica → multiplazione dei flussi informativi in uno stream MP4 conforme
decodifica → demultiplazione e composizione della scena
Supporto necessario
PARTE 2: VIDEO
Standard generale: moltissimi tools ad hoc per le diverse funzionalità
Implementazione completa spesso ingiustificata e costosa → profili e livelli
Profilo: definisce un’implementazione parziale dello standard (sottoinsieme della sintassi) attraverso i tipi di oggetti trattabili
Livello: identifica un insieme di vincoli sui parametri dell’algoritmo, fissando il limite massimo di complessità consentita
Profilo@livello → punto di interoperabilità codec fissato
Profili visivi naturali:
ricoprimento parziale
→ MPEG-4 video famiglia di algoritmi
simple scalable
n bit
core
mainsimple
CODIFICA FRAME-BASED
Si adatta la codifica a blocchi per trasformate alle immagini in movimento:
importante correlazione temporale → codifica differenziale dell’immaginerispetto a una sua predizione
Formazione predizione:
in avanti, indietro (ordine di riproduzione) o bi-interpolata
con compensazione del movimento: si stima il movimento dei macroblocchie lo si applica al frame di riferimento per la predizione.
16x16
svantaggi: devo allegare i vettori di moto stimati (overhead) stima e compensazione del moto onerose
con codifica differenziale dei MV (altamente correlati) l’efficienza di compressione aumenta
DivX;-) implementa lo standard di codifica frame-based MPEG-4 con audio MP3
CODIFICA OBJECT-BASED
Codifica di oggetti di forma arbitraria per
supportare interattività content-based:
contenuto informativo ‘duplice’
forma trama
Il codec per la forma guida il codec per la trama: richiede la codifica dei soli blocchi dentro o sul contorno della sagoma
Schema di codifica classico ottimizzato:
(costo computazionale ridotto)
Padding: sfondo originale poco efficiente
DCT adattiva alla forma (SA-DCT):solo pixel attivi nei border blocks
nella MC → farcitura oggetto segmentato per ottimizzarne le capacità predittive
CODIFICA SAGOMA
Sequenza di fotogrammi detti α-planes: rappresentazione forma o livelli di traslucentezza
→ codifica sagome binarie:
Formazione di una finestra minima (VOP) contenente l’oggetto e allineata ai macroblocchi ← per pilotare correttamente il codec della trama
Codifica del VOP (anche lossy):
approccio a macroblocchi, detti BAB
moto-compensazione OR codifica aritmetica basata sul contesto (CAE)
CAE: codificatore aritmetico pilotato dalla probabilità delle realizzazioni condizionata ad un contesto di pixel ‘vicini’ ← correlazione!
MC per formazione contesto inter mode (vicinato temporale)
CODEC VIDEO MICROSOFT
Implementazione software in C++ rivolta a Windows
solo parte video di MPEG-4 vers. 1 → corredo software
oggetti naturali e trame scalabili (wavelet)
codice non ottimizzato
BENCHMARK
- Obiettivi: stima tempi di calcolo richiesti e verifica requisiti per esecuzione
“Stefan” “bream”
- Configurazione piattaforma: PC Pentium II 450 Mhz 128 MB Windows 98
- due sole sequenze di test di ‘risoluzione’ media: 1s CIF 4:2:0 @10 fps
in tempo reale (broadcasting in rete e videoconferenza)
classe frame-based ≈ 86 kB (5,6%)
classe arbitrary-shaped ≈ 18 kB (1,2%)
FUNCTION TIMING: DECODER
“Stefan”: 730 ms “bream”: 1960 ms
I/O 85%
elaborazione 15%
IDCT 34%
ME-MC 23%
IQ 5%
altro 8%
I/O 30%
I/O in “bream” molto oneroso: diversa modalità d’accesso al disco accesso sequenziale di “Stefan” → accesso diretto (“seekoff”) di “bream”
Misura I/O poco significativa:
dipende fortemente disco rigido usato (ottimizzazioni controller)
applicazioni pratiche (players): la riproduzione non richiede scrittura su disco
→ confronto al netto di I/0
vs
CONFRONTO
54,147
34,648
247,806
162
47,75135,326
19,399,304
93,15282,553
0
50
100
150
200
250
IDCT ME-MC IQ VLD shape altro
Tem
pi d
i ese
cuzi
one
[ms]
Stefan
bream
Al netto di I/O: 500 ms (“Stefan”) contro 290 ms (“bream”) per 1s di video
Entrambe stanno in real-time, “bream” condizionatamente all’I/O
ENCODER
3410
161079
47710681663
89369
552
5161
1
100
10000
1000000
(I)DCT ME-MC (I)Q altro (I/O)
Tem
pi d
i ese
cuzi
one
[ms]
Stefan
bream
Tempi totali: 167 s contro 97 s per 1 s di video
ME estremamente onerosa: tempi 2 ordini di grandezza superioriagli altri tools
CONCLUSIONI
Fattore di scala (≈1,7) ricorrente tra gli stessi tempi relativi alle 2 sequenze: tempi di esecuzione modulati dal numero di blocchi utili (tecniche block-based)
Per risoluzioni medie decoder supporta il real-time → distribuzionevideo in rete
Margine per risoluzioni maggiori minimo MA accortezze speed-up immediato:
codice ottimizzato MMX dei GPP moderni
algoritmi di complessità ridotta per ME (ad libitum)
riduzione dei tempi di un ordine di grandezza
→ plausibile real-time anche per ‘risoluzioni’ maggiori su PC più recenti
Encoder: vincoli sforati clamorosamente → impossibili applicazioni real time (end-to-end, es. videoconferenza)
Forse solo per risoluzioni molto basse su piattaforme all’avanguardia