MPEG Sistemi di Telecomunicazione I Fondamenti di Internet M. Carli P. Campisi Agenda Introduzione Standard MPEG definiti MPEG 1 MPEG 2 MPEG 4 MPEG in via di definizione Contesto – inquadramento storico Motivazioni Regole di standardizzazione MPEG 7 MPEG 21 Conclusioni “Negli anni 80 la tecnologia raggiunge l’utente” Studi di Nyquist (1928) CCITT ’60 raccomandazione per la digitalizzazione del segnale telefonico Frequenza di campionamento a 8 KHz Quantizzazione • -law 7 bits/sample • A-law 8 bits/sample Multiplexers: 24 o 30 canali telefonici a 2048 Kbits/sec Effetti pratici: NESSUNO Collo di bottiglia: apparecchio utente Evoluzione del contesto Prima meta’ anni 80 CCITT H.120 => 1.5 Mbps videoconferenza a casa Nasce il Compact DISC bitstream 1410 kbps Seconda meta’ anni 80: inizia il processo di standardizzazione (raccomandazioni) H.261 videotelefonia, videoconferenza bitrate: p x 64 kbps (pcanali telefonici) H.263 video telefonia bit rate inferiore a 64 kbps (canale telefonico numerico) ISDN (Integrated Services Digital Network) 144 kbps ADSL (Asymmetric Digital Subscriber Line) 1.5Mbps Standard attuali Meccanismo di generazione del bitstream: riduzione della ridondanza temporale Algoritmi di Block Matching seguita da una riduzione della ridondanza spaziale Riduzione ridondanza temporale Sequenza originale Frame 1 originale Frame 2 originale Stima del campo di moto Frame 2 ricostruito Differenza in valore assoluto Stima del campo di moto Regolarizzazione Applicazione Sequenza originale Frame 1 Errore di ricostruzione iniziale Frame 2 Stima ML Regolarizzazione Errore di ricostruzione finale Riduzione ridondanza spaziale Moving Pictures Expert Group Attività del gruppo iniziata nel 1988. Patrocinio di: • International Organization for Standardization (ISO), • International Electrotechnical Commission (IEC). Standard di codifica prodotti: MPEG-1 (Luglio 1988-Novembre 1992), MPEG-2 (Luglio 1990-Novembre 1994), MPEG-4 (Luglio 1993-Novembre 1998), MPEG-7 (Ottobre 1998- Novembre 2001). MPEG: cosa fa ? MPEG-1 Codifica Audio video; media qualità 1,5 Mb/s, per supporto fisico. MPEG-2 Codifica Audio video; media ÷ altissima qualità per canale trasmissivo / supporto fisico 4-15 Mb/s; Multiplex di programmi,comandi, dati. MPEG: cosa fa ? MPEG-4 Codifica di oggetti Audio video, naturali - sintetici, 2D3D, animazioni, indipendente dal BitRate e dalla qualità, supporto di interattività avanzata ed accesso all’informazione, completa indipendanza dal trasporto e dall’applicazione. MPEG-7 Interfacce descrittive del contenuto dell’informazione multimediale. Processo di standardizzazione per MPEG-1/2/4 Requirements, Competitive phase, Selection of basic methods, Collaborative phase, Working draft and draft international standard, Validation, International standard. MPEG 1 Codifica di audio e sequenze video per media digitali fino a 1.5 Mbps Standard in cinque parti: 1. 2. 3. 4. 5. Come accorpare diversi canali audio e video Codifica Video Codifica Audio Procedure per la verifica del co-decodificatore prodotto Implementazione C di un co/decoder MPEG-1: caratteristiche (1) Formato d’immagine SIF rapporto 4:3, risoluzione 352x288 oppure 352x240,non interallacciato. Decodificatori di struttura semplice. Codificatori di complessità variabile con influenza sul rapporto bit/rate — qualità. Orientato ad applicazioni di memorizzazione su supporto fisico es., CD-ROM. MPEG-1: caratteristiche (2) Utilizza in gran parte tecniche già definite nella Racc. H.261 Introduce la codifica con predizione bidirezionale (quadri B) Supporta funzionalità VCR (Fast search, Reverse, etc.) Qualità paragonabile a VCR con bit-rate di circa 1,5 Mbit/sec MPEG 2 - 1994 “Codifica generica di sequenze video e dell’audio associato” 1. Due tipi di multiplexing MPEG 2 Applicazioni CTV: distribuzione tv via cavo STV: trasmissione tv via satellite TTV: trasmissione tv via terrestre (ponti radio) ISM: mezzi di memorizzazione interattiva (dischi ottici o magnetici) SSM: mezzi di memorizzazione seriale (videoregistratori digitali) ENG: raccolta di notizie elettroniche NDB: servizi di database in rete (via ATM) IPC: comunicazioni interpersonali RVS: video controllo a distanza MPEG-2: caratteristiche (1) Formati d’immagine molteplici varie risoluzioni, rapporti 4:3 e 16:9, strutture interallacciate e non. Decodificatori: MPEG-2 = MPEG-1 + tool per interallacciato. Qualità variabile dal VCR al cinema numerico. MPEG-2: caratteristiche (2) Quantizzazione con range più elevato e adattata al blocco Nuove tavole VLC (variable length codes) Estensioni per scalabilità: Spaziale, SNR, Temporale Codifica Audio estesa per suono multi-canale MPEG-1 e MPEG-2: principio di codifica Riduzione della “ridondanza” prima della trasmissione. Compressione spaziale: riduzione della ridondanza dell’informazione lungo le dimensioni spaziali dell’immagine. (valori numerici simili che si ripetono in intorni limitati dell’immagine). Compressione temporale: riduzione della ridondanza dell’informazione nel tempo (valori numerici simili che si ripetono nel tempo anche se in posizioni spaziali differenti). MPEG-1 e MPEG-2: caratteristiche comuni Lo standard specifica: Lo standard non specifica: la sintassi e la semantica del bit stream, il processo di decodifica. il processo di codifica. Applicazioni di tipo “asimmetrico” (video CD, video on demand, etc.): codifica effettuata una sola volta, • complessità del codificatore non rilevante. decodifica effettuata molte volte, • necessità di decodificatori poco costosi. MPEG 4 Esempio di codifica ad oggetti Sequenza Bream Codifica frame-based a 128 kbit/s Codifica background a 28 kbit/s Codifica foreground 1 Codifica foreground 2 a 90 kbit/s a 10 kbit/s MPEG-4: perché ? Costante diffusione delle applicazioni multimediali necessità di uno standard con appropriate funzionalità per: • accedere, • manipolare i contenuti. Campi di applicazione: • Servizi multimediali interattivi: Comunicazioni personali (videoconferenza, videotelefonia) Accesso a basi di dati di immagini e video Servizi diffusivi (Web TV, Video on demand) MPEG-4: obiettivi Codifiche audio-video a basso bit-rate. Rappresentazione basata sul contenuto in opposizione alla rappresentazione basata sul frame o sul pixel. Tecniche di codifica innovative ad “oggetti”. Codifiche “content-based” e/o “model-based”. Nuovo tipo di interattività di utente basata sul contenuto e sulla semantica del video. MPEG-4: funzionalità (1) Interattività basata sul contenuto: accesso ai dati multimediali basata sul contenuto, manipolazione ed editing del bitstream, accesso random (nel tempo & agli oggetti), codifica ibrida di dati naturali e sintetici. Applicazioni: recupero dati da librerie on-line, home shopping interattivo, produzione ed editing di film. MPEG-4: funzionalità (2) Compressione: miglioramento dell’efficienza di codifica, codifica di più flussi dati concorrenti. Applicazioni: Memorizzazione e/o trasmissione efficiente di dati audio-video. • Miglioramento del browsing su Internet. • Realtà virtuale. MPEG-4: funzionalità (3) Accesso avanzato all’informazione: scalabilità basata sul contenuto (oggetti audio/visuali). • Possibilità di avere differenti qualità in termini di risoluzione spaziale e temporale. adattamento ad ambienti error-prone. Applicazioni: comunicazioni wireless, browsing di database, accesso a differenti livelli di contenuto, scala, risoluzione e qualità. MPEG-4: la scena (1) La scena Visuale è composta da Video-Objects VO. Proprietà dei VO: forma, movimento, tessitura. MPEG-4: la scena (2) L’utente può: accedere agli oggetti della scena, manipolarli. Oggetti audio-visuali (1) La scena Audio-Visuale è composta da Oggetti (AVO). Processo di formazione e/o estrazione di un VO: VO è un insieme di frame rettangolari in MPEG-1/2, VO rappresenta un oggetto che evolve nel tempo, VO rappresenta un oggetto estratto da una scena tramite segmentazione (automatica, semi-automatica, supervisionata). Oggetti audio-visuali (2) MPEG-4 non definisce come formare/estrarre un VO. MPEG-4 definisce il modello di Sfondo rappresentazione del VO. Esempio di VO Soggetto Audio Video Schema di codifica video MPEG-4 VO 0 VO 1 VO = Video Object VO 2 Segmentazione Sequenza originale Codificatore VO 0 Codificatore VO 1 Codificatore VO 2 MUX Sequenza codificata Segmentazione spazio-temporale del contenuto dei quadri della video sequenza in VO. Flessibilità di codifica dei diversi oggetti: diversi bit-rate, diversi frame rate, diversa priorità nella protezione. Schema di de-codifica video MPEG-4 Video: struttura dei dati (1) VideoSession ingloba le altre tre classi, una video sequenza può essere costituita da più VS. VideoObject (VS): (VO): classe che definisce specifici oggetti nella scena, consente di ottenere scalabilità relativa agli oggetti. Video: struttura dei dati (2) VideoObject Layer (VOL): consente di migliorare • risoluzione spaziale di un VO • risoluzione temporale di un VO. consente di ottenere scalabilità spaziale e temporale di VO. VideoObject Plane (VOP): occorrenza di un VO ad un dato istante. Video: struttura dei dati (3) La sintassi del bitstream video MPEG-4 Visual Object Sequence Visual Object 1 Video Object Layer Visual Object n Video Object 1 VOL 1 Group of VOP (GOV) VOL m VOL header VOL_start_code GOVheader VOP 1 Motion_marker GOVheader GOV_start_code GOV_start_code VOP header Prima part. Seconda part. VOP_start_code VOP n Prima part. Seconda part. Pacchetto video Resync_marker Schema di codifica di un VOP Informazioni di forma Codifica della forma Informazioni di movimento Stima del movimento Motocompensazione M U X Bitstream video Codifica della tessitura Informazioni di tessitura VOP precedente DCT Quantizzazione Scan dei coefficienti Predizione AC & DC VLC informazioni di tessitura Codifica di un VOP Codifica di forma: novità rispetto agli standard precedenti. Codifica di tessitura, stima di movimento, motocompensazione uguali rispetto agli standard precedenti Codifica di forma (1) Informazione di forma binaria: definisce quale porzione del supporto dell’oggetto appartiene al VO ad un dato istante, rappresentata come una matrice avente la stessa dimensione di quella della matrice di contenimento di un VOP, ogni elemento della matrice può assumere due soli valori. Informazione di forma a livelli di grigio: struttura simile a quella “binaria”, ogni elemento della matrice assume valori compresi in [0,255]. Codifica di forma (2) Dimensione regione di bordo pari a multipli di 16x16. Regione di bordo partizionata in blocchi 16x16. Codifica di forma binaria Co-decodifica Per effettuata blocco per blocco. ogni singolo blocco: la codifica è effettuata individuando i pixels che cambiano colore [0->255], [255->0], se tutti i pixels dello stesso blocco sono dello stesso colore la codifica non è effettuata. Risultato dell’algoritmo è la codifica della posizione dei pixels che cambiano. Codifica di forma a livelli di grigio Informazione relativa al supporto: codificata nello stesso modo delle forme binarie. Informazione relativa alla luminanza: codificata come macroblocchi (16x16) di luminanza con la stessa tecnica di codifica delle tessiture del VOP. Stima di movimento Scopo: riduzione della ridondanza temporale. Principio: simile a quello utilizzato in MPEG-1/2. Predizione Interframe, • genesi dei quadri P. Predizione bi-direzionale, • genesi dei quadri B. Stima di movimento: predizione interframe Ricerca del macroblocco nel frame successivo tramite “block matching”. Codifica del vettore di spostamento tra il macroblocco nel frame n-1 ed lo stesso macroblocco nel frame n. Stima di movimento: predizione bidirezionale Predizione dal quadro precedente e successivo. Stima di movimento in MPEG-4 Stima di movimento effettuata in MPEG1/2 estesa per rappresentare oggetti di forma arbitraria (VOP). Ogni Ogni VOP è diviso in macroblocchi. VOP codificato come: I-VOP (codificato indip.), P-VOP (predizione da un VOP prec.), Codifica scalabile Bit-stream scalabile: porzione di esso fornisce una rappresentazione a risoluzione e/o qualità “proporzionale” al bit-stream utilizzato. La scalabilità coinvolge più di un Video Object Layer. Scalabilità spaziale: l “enhancement layer” consente di migliorare la risoluzione spaziale del “base layer”. Scalabilità temporale: l “enhancement layer” consente di migliorare la risoluzione temporale del “base layer”. Co-decodificatore scalabile a due livelli (1) Co-decodificatore scalabile a due livelli (2) Ingressi al pre-processor: VOP. Scalabilità spaziale. “Pre-processor” separa il VOP in: • “base layer” (VOP a più bassa risoluzione) • “enhancement layer” (VOP a più alta risoluzione). Scalabilità temporale. La risoluzione temporale dell’oggetto selezionato è migliorato in modo tale da avere un movimento più “fluido” del resto dell’area. MPEG-7 MPEG-7 MPEG-7-cos’è: MPEG-7-obiettivi: descrizione (associata al contenuto) standardizzata di vari tipi di materiale multimediale. ricerca veloce ed efficiente di materiale multimediale. MPEG-7-caratteristiche: definisce un insieme standard di descrittori (associati al contenuto) che possono essere usati per descrivere vari tipi di informazione multimediale, standardizza un linguaggio “Description Definition Language” (DLL) per specificare gli schemi di descrizione . MPEG-7: schema di utilizzo feature extraction standard description scope of MPEG-7 Estrazione automatica o semi automatica, non definita dallo standard. Motore di descrittori: di ricerca: non definito dallo standard. search engine MPEG-7: terminologia (1) Descriptor (D): associa un “descriptor” ad una caratteristica • Es: colore caratteristica, istogramma per rappresentare il colore descriptor Description scheme (DS): definisce la struttura e la semantica dei descrittori. Description Definition Language: consente di definire i DS (“Description schemes”). MPEG-7: terminologia (2) DDL DS D DS D DS D D D defined in standard not in standard; defined using DDL MPEG-7: ruolo di “D” e “DS” MPEG-7 Description Definition Language (DDL) Description Generation MPEG-7 Description Schemes Descriptors Bitstream Syntax “DLL” Solo è utilizzato per generare “DS” e “D”. i “DS” sono utilizzati per generare la descrizione. MPEG-7: schema di utilizzo D, DS Search/ Query Engine Description Generation MPEG-7 Description Encoder Coded MPEG-7 Description User Decoder Filter Agents MM Content