Università degli studi di Ferrara DIPARTIMENTO DI INGEGNERIA Corso di Laurea in Ingegneria...

Post on 01-May-2015

213 views 0 download

Transcript of Università degli studi di Ferrara DIPARTIMENTO DI INGEGNERIA Corso di Laurea in Ingegneria...

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