Universit degli studi di Ferrara DIPARTIMENTO DI INGEGNERIA

  • Slides: 17
Download presentation
Università degli studi di Ferrara DIPARTIMENTO DI INGEGNERIA Corso di Laurea in Ingegneria Elettronica

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: Fabio Cavalli Relatore: Dott. Ing. Massimo Piccardi Correlatore: Prof. Ing. Rita Cucchiara

DATI VISIVI - Contenuti visivi bidimensionali naturali: immagini in movimento a colori a variazione

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

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 capacità dispositivi storage es. : ISDN 128 kbps 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

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. 2 D Quantiz. scalare Codifica entropica 01011101. . . 8

CODIFICA PER TRASFORMATE Trasform. 2 D Quantiz. scalare Codifica entropica 01011101. . . 8 x 8 3 x Cod. sorgente (lossy) Cod. lossless Implementazione low cost della quantizzazione vettoriale 1. Trasformazione decorrelante: 2. coefficienti indipendenti – energia concentrata alle basse frequenze spaziali 3. trasf. subottime ma veloci: attualmente DCT (tutti IS) 4. verso Wavelet (JPEG 2000, VTC di MPEG-4): opt. contorni (localizzazione) 2. Quantizzazione pesata o percettiva 3. Codifica entropica: Huffman o aritmetica (5 -10% più efficiente ma onerosa)

MPEG: comitato ISO/IEC per codifica immagini in mov. ed audio associato MPEG-4: fase 4

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.

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

PARTE 1: SISTEMA audio Non solo codifica ma anche composizione di scene § contenuti disomogenei: es. video: naturali, sintetici (2 D e 3 D) o ibridi § grafo in stile VRML § codec scena formato BIFS immagine arbitrary-shaped naturale 3 D sintetico Immagine naturale tradizionale Consente l’integrazione dei codec specifici § codifica → multiplazione dei flussi informativi in uno stream MP 4 conforme § decodifica → demultiplazione e composizione della scena Supporto necessario

PARTE 2: VIDEO Standard generale: moltissimi tools ad hoc per le diverse funzionalità Implementazione

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 simple core n bit main

CODIFICA FRAME-BASED Si adatta la codifica a blocchi per trasformate alle immagini in movimento:

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. 16 x 16 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 Div. X; -) implementa lo standard di codifica frame-based MPEG-4 con audio MP 3

CODIFICA OBJECT-BASED Codifica di oggetti di forma arbitraria per supportare interattività content-based: contenuto informativo

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 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

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: 1 s CIF 4: 2: 0 @10 fps “Stefan” classe frame-based ≈ 86 k. B (5, 6%) “bream” classe arbitrary-shaped ≈ 18 k. B (1, 2%)

FUNCTION TIMING: DECODER “Stefan”: 730 ms “bream”: 1960 ms IDCT 34% I/O 30% altro

FUNCTION TIMING: DECODER “Stefan”: 730 ms “bream”: 1960 ms IDCT 34% I/O 30% altro 8% vs I/O 85% IQ 5% elaborazione 15% ME-MC 23% 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 1

CONFRONTO Al netto di I/O: 500 ms (“Stefan”) contro 290 ms (“bream”) per 1 s 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

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

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