170 likes | 409 Views
Università degli studi di Ferrara. DIPARTIMENTO DI INGEGNERIA Corso di Laurea in Ingegneria Elettronica. Codifica e decodifica di oggetti visivi nello standard MPEG-4.
E N D
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 • Contenuti visivi bidimensionali naturali: immagini in movimento a colori • a variazione continua di tono • Rappresentazione in forma normale: • successione di bitmaps • nello spazio di colore YCBCR t • 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 LIMITI TRASMISSIONE STORAGE banda canali di trasmissione es.: ISDN 128 kbps capacità dispositivi storage es.: 1 h di filmato richiede 13,5 GB di memoria di massa 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
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 Trasform. 2D Codifica entropica Quantiz. scalare 01011101... 8x8 3x Cod. sorgente (lossy) Cod. lossless Implementazione low cost della quantizzazione vettoriale 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) Quantizzazione pesata o percettiva Codifica entropica: Huffman o aritmetica (5-10% più efficiente ma onerosa)
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 TV computer MPEG-4 telecom. • Obiettivi: • efficienza di compressione per ampia gamma di bitrates e tipi di dato • interattività basata sui contenuti → approccio ad oggetti Sequenza tradizionale (frame based) Oggetto di forma arbitraria (arbitrary shaped) • accesso universale → rappresentazione robusta e scalabilità
PARTE 1: SISTEMA audio • Non solo codifica ma anche composizione di scene • contenuti disomogenei: es. video: naturali, sintetici (2D e 3D) o ibridi • grafo in stile VRML • codec scena formato BIFS immagine arbitrary-shapednaturale Immagine naturale tradizionale 3D sintetico • 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 simple scalable Profili visivi naturali: ricoprimento parziale → MPEG-4 video famiglia di algoritmi main simple core n bit
CODIFICA FRAME-BASED Si adatta la codifica a blocchi per trasformate alle immagini in movimento: importante correlazione temporale → codifica differenziale dell’immagine rispetto a una sua predizione • Formazione predizione: • in avanti, indietro (ordine di riproduzione) o bi-interpolata • con compensazione del movimento: si stima il movimento dei macroblocchi e 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: • DCT adattiva alla forma (SA-DCT): solo pixel attivi nei border blocks (costo computazionale ridotto) • Padding: sfondo originale poco efficiente 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 in tempo reale (broadcasting in rete e videoconferenza) • - 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 “Stefan” “bream” classe frame-based ≈ 86 kB (5,6%) classe arbitrary-shaped ≈ 18 kB (1,2%)
FUNCTION TIMING: DECODER vs “bream”: 1960 ms “Stefan”: 730 ms IDCT 34% I/O 30% elaborazione 15% I/O 85% ME-MC 23% altro 8% IQ 5% • 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
CONFRONTO 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 • Tempi totali: 167 s contro 97 s per 1 s di video • ME estremamente onerosa: tempi 2 ordini di grandezza superiori agli 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 → distribuzione video 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