CAPIRE MPEG Sebastian Sylwan Polo Didattico e di Ricerca di Crema

Slides:



Advertisements
Presentazioni simili
Scenario di reti a larga banda Scenario di reti a larga banda MAN MAN LAN LAN LAN B-ISDN.
Advertisements

Reti Fotoniche (Optical Networks) Gruppo Reti Politecnico di Torino- Dipartimento di.
Reti Fotoniche (Optical Networks) Fabio Neri Politecnico di Torino
Elaborazione numerica del suono
CODIFICA DELLE INFORMAZIONI
L’oscillatore digitale
La gestione dell'audio Creazione, acquisizione, formati di file a cura di Loris Tissìno (
File System Cos’è un File System File e Directory
Televisione Digitale Terrestre Aspetti Tecnici
Il codice neurale.
5-1 Protocolli ad accesso multiplo Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All.
La rete in dettaglio: rete esterna (edge): applicazioni e host
Moving Moving Young Young Turin Turin Hydrogen Hydrogen Olympic Olympic Safe RETE MANET informazioni in movimento.
Sistemi e Tecnologie della Comunicazione
Sistemi e Tecnologie della Comunicazione
Sistemi e Tecnologie della Comunicazione
Luca Iannelli, Video on Demand tramite rete Approfondimento di Reti di calcolatori A.A. 2005/2006.
Corso di Tecniche e Sistemi di trasmissione Fissi e Mobili
Codifica dell’ Informazione non numerica
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
Moving Pictures Experts Group Giovanni Margarita 50/193 Rosario Savarese 50/377.
Strumentazione per bioimmagini
Università degli Studi di Roma La Sapienza
Università degli studi di Ferrara DIPARTIMENTO DI INGEGNERIA Corso di Laurea in Ingegneria Elettronica Codifica e decodifica di oggetti visivi nello standard.
Laboratorio di El&Tel Elaborazione numerica dei segnali: analisi delle caratteristiche dei segnali ed operazioni su di essi Mauro Biagi.
MPEG 1.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Salvatore Loffredo 18 maggio 2007
Reti di Calcolatori IL LIVELLO RETE.
Reti di Calcolatori IL LIVELLO RETE.
Elaborazione (digitale) delle immagini
ADSL VOIP Voice Over IP.
IL MODEM Che cos’è? A cosa serve? Che problemi risolve? Come comunica?
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
Proposte di tesina Mario Toma.
Educare al multimediale 1 – Verso il digitale 2 Presentazione a cura di Gino Roncaglia Prima parte: Informazione in formato digitale.
Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Esercizi.
Sistemi di comunicazione
Tecniche di compressione segnali audio:
Il modello di riferimento OSI
Multimedia information retrieval. Problematica Materiale multimediale: non solo testo, ma audio (speech, musica..) immagini, video Retrieval basato su.
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
1 Applicazione di videoconferenza in ambiente Multicast con supporto per il protocollo di controllo di congestione RLC Giansalvo Gusinu Relatori: Prof.
Immagini digitali immagine digitale, si intende un elemento grafico elaborato tramite computer, che si può visualizzare sul monitor e stampare su carta.
Sistemi di elaborazione dellinformazione Ernesto Damiani Lezione 5 – SONET Modulo 1 -Tecniche di comunicazione digitale Unità didattica 1 -Richiami sulla.
Informatica Lezione 9 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Codifica dell’informazione
L’architettura a strati
DIGITALIAZZAZIONE Di Alessio.
RETI DI CALCOLATORI Domande di riepilogo Prima Esercitazione.
Laurea Ing EO/IN/BIO;TLC D.U. Ing EO 9
Informazione multimediale Lettere e numeri non costituiscono le uniche informazioni utilizzate dagli elaboratori ma ci sono sempre piu’ applicazioni che.
Laurea Ing EO/IN/BIO;TLC D.U. Ing EO 6 PULSE CODE MODULATION (PCM)
Codifica dell’informazione
LUCIDI dell'insegnamento di COMUNICAZIONI ELETTRICHE eo/in/bi
Networks: Data Encoding
Capitolo VIII. La comunicazione multimediale: l’elaborazione audio-video tra tecnologia e applicazioni.
Informazione multimediale
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTA’ DI INGEGNERIA ELETTRONICA
Bit singolo e burst u un canale che trasmette voce tollera bene gli errori distribuiti uniformemente –perche’ errori singoli hanno effetti simili al rumore.
Teoria delle ondicelle 2/ Compressione di segnali e immagini a.a. 2006/2007 JPEG.
FILTRI NUMERICI. Introduzione Nel campo nei segnali (analogici o digitali), un sistema lineare tempo-invariante è in grado di effettuare una discriminazione.
DVB-T Principali caratteristiche. Tv analogica: un programma per canale.
SOMMARIO La Digitalizzazione La Compressione LA DIGITALIZZAZIONE La digitalizzazione consiste nella trasformazione di un oggetto in una sequenza di numeri,
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
STRUTTURE DEI DATI (COMPLESSI). TESTO (codifica informazioni testuali) TESTO: (es. libro) sequenza di capitoli, paragrafi,pagine,righe, parole.
ANALISI DEI SEGNALI Si dice segnale la variazione di una qualsiasi grandezza fisica in funzione del tempo. Ad esempio: la pressione in un punto dello spazio.
Università degli Studi di Roma “La Sapienza” Techniche di Compressione “Elaborazioni delle Immagini” “Elaborazioni delle Immagini”
Transcript della presentazione:

Sebastian Sylwan seba@dsi.unimi.it CAPIRE MPEG Sebastian Sylwan seba@dsi.unimi.it Polo Didattico e di Ricerca di Crema 24/4/99

Concetti base del video digitale Vi sono familiari tutti i seguenti termini ? Frame Interlacing Field Pixel Risoluzione Componenti Campionamento Luma SVP RGB YUV / YCbCr PAL / NTSC 4:4:4 / 4:2:2 / 4:2:0 CIF / SIF SNR Quantizzazione Chroma Broadcast

MPEG Motion Pictures Expert Group MPEG-1 1988-90 MPEG-2 1990-94 

Aggiunte rispetto a MPEG-1 Ottimizzato per il mondo Broadcast Diversi Aspect-ratio (16:9 HDTV WideScreen) Macroblock 4:2:2 4:4:4 Interlacing Informazioni sull’origine del materiale Video (telecine, 3:2 pulldown, NTSC, PAL) Scalabilità del segnale Video Sistema di trasporto TS/PS Maggiore flessibilità nella compressione (Variable-Length tables, Scale Factor, ½ px Motion Vectors ) Audio multilinguale

Suddivisione dello Standard

MPEG-2 Video Obiettivi: Descrivere un formato che descriva un Bitstream Video codificato Non definire il processo di codifica Descrivere il processo di decodifica (maggiore flessibilità) Mantenere lo standard estensibile per essere utilizzato in un ampio range di applicazioni Trasmissione via Satellite TV via cavo TV Interattiva

Parti componenti lo standard: MPEG-2 Video Parti componenti lo standard: Definizioni di base Sintassi del segnale Video MPEG-2 Descrizione Semantica Processo di decodifica Estensioni e Scalabilità Profili e Livelli Annessi

MPEG-2 Video Definizioni di base Frame 3 matrici (Luma, 2 Chroma) Picture Componente codificata (può non avere pixel) Block 8 x 8 pixels (Luma, 2 Chroma) MacroBlock 4 Blocchi di Luma + n di Chroma Slice “Fetta” contiene gruppi di MacroBlocks GOP Group of Pictures (tipicamente 12 Pictures) I,B,P Pictures Intra-coded, Bidirectionaly Predicted, Predictive Fields Interlacing

Overview

Principio di funzionamento Sfrutto: Ridondanza spaziale Ridondanza temporale Caratteristiche Psico-visive Prima compressione nel sottocampionamento (4:2:2, 4:2:0) Bassa sensibilità alle alte frequenze sul colore Livello di accettazione + alto per il rumore alle alte frequenze

Strumenti di compressione Mediante: DCT-Quantizzazione-VLCoding Huffman Coding Motion Estimation } I-Pictures B-Pictures / P-Pictures

Fourier Ogni forma d’onda periodica (qualsiasi se consideriamo periodo  ), può essere espressa come somma di componenti sinusoidali, ognuna espressa con la sua ampiezza, frequenza e fase.

Trasformata Coseno Discreta Porta dal dominio del tempo al dominio delle frequenze. divide la forma d’onda nelle sue componenti frequenziali, considerando un rispecchiamento della forma d’onda per eliminare le componenti sin() La DCT in se non effettua alcuna compressione (anzi). Semplicemente trasforma i pixel sorgente in una forma nella quale è possibile identificare la ridondanza Non tutte le frequenze spaziali sono simultaneamente presenti, quindi all’uscita della DCT avremo alcuni coefficienti con un valore rilevante, ma la maggior parte sarà molto prossima a zero.

Componenti frequenziali    0,2657 x = 0,2322 x = 0,0791 x = 0,2861 x = 0,2446 x = 0,1286 x = 0,1329 x = 0,0993 x = 0,1645 x = Combinando linearmente le varie componenti posso ottenere qualunque pattern Il primo coefficiente mi dà la luminosità generale del blocco Gli altri rappresentano le intensità delle diverse componenti frequenziali La maggior parte delle componenti è prossima a zero e quindi non le considero

Capiamo la DCT

Quantizzazione Questo è il processo che introduce perdita di qualità del segnale video Prendo i coefficienti usciti dalla DCT e li divido per una matrice di quantizzazione Valori sempre più alti man mano che cresce la frequenza Fattore di scala Ottengo molti coefficienti a 0 Li leggo a zig-zag

RL Encoding Run = numero di zeri prima di un coefficiente non-zero Level = in MPEG Video è il coefficiente della componente frequenziale Definisco sequenze corte per le +comuni combinazioni di Run e Level Tra 2 e 13 bit Non tutte le combinazioni sono codificate Se trovo una combinazione non in tabella, mando cod. escape, R ed L.

Motion Estimation In realtà la grossa riduzione del Bitrate si ha sfruttando la ridondanza temporale: Una volta codificata un’immagine di riferimento come spiegato prima (I-Frame) cerco similarità con i frame adiacenti. Innanzitutto controllo che il macroblocco in esame non sia rimasto identico (o quasi) nel frame successivo, nel qual caso non lo invio. Altrimenti, cerco nelle vicinanze per identificare se si è mosso. Se lo trovo, invio un vettore di movimento. Codifico secondo lo schema visto in precedenza solo se non ho trovato il macroblocco da nessuna parte nel frame. Se sono tra una I e una P-Picture, interpolo i vettori di movimento Non è la panacea, però. Se commetto un piccolo errore e calcolo i frame successivi solo partendo dal precedente, l’errore si propaga rapidamente.

Motion Estimation Per risolvere il problema si creano GOP (Group Of Pictures) con diversi tipi di Picture all’interno. Intra-coded Picture Predictive coded Picture Bi-directionally coded Picture

Motion Estimation

Come avviene la ricerca del Macroblocco ? Block Matching Enorme quantità di calcolo Fatta a diversi livelli di dettaglio Phase correlation Trasformata di Fourier sui blocchi da comparare Sottraggo le componenti frequenziali Antitrasformata di Fourier Ottengo dei picchi che rivelano la direzione e l’entità dei movimenti (ma non la loro posizione) Block Matching ma solo in direzioni e distanze predeterminate.

Phase Correlation In realtà il processo avviene in 2 dimensioni, per cui ottengo una superficie di correlazione con tanti picchi quanti sono i movimenti nell’area che sto esaminando. È importante capire che con la correlazione di fase ottengo informazione sull’entità e la direzione del movimento, ma non so dove nell’immagine questo avvenga, dovrò quindi cercarlo, ma l’efficienza della ricerca è incredibilmente superiore a prima.

Slices Non sono necessarie per la compressione, ma sono molto utili nel caso di errori nel canale. Risincronizzano il flusso video Permettono di definire aree di interesse

Grande varietà di applicazioni Profili e Livelli Grande varietà di applicazioni Complessità Costo enorme per supportare tutto lo standard Implemento solo alcune funzioni (Profilo)

Campionamenti tipici

Profili

Livelli

Riassumendo...

Sintassi di MPEG-2 Video video_sequence() { next_start_code() sequence_header() if(nextbits)==extension_start_code) { sequence_extension() do { extension_and_user_data if (nextbits())==group_start_code) { group_of_pictures_header() extension_and_user_data (*) } picture_header() picture_coding_extension() extension_and_user_data (**) picture_data() } while ((nextbits()==picture_start_code) || (nextbits()==group_start_code)) if (nextbits() !=sequence_end_code) { }while (nextbits() != sequence_end_code) else { MPEG-1 sequence_end_code

Strutture sintattiche video_sequence Contiene Pictures ed estensioni sequence_header Dimesioni Immagine e FrameRate, matrici di quantizzazione speciali sequence_extension profilo/livello, Formato Chroma, se non esiste il flusso è MPEG-1 GOP_header Timecode, informazioni per l’editing picture_header dice se è I,B o P Picture. Contiene riferimento temporale (all’interno del GOP) picture_coding_extension Interlacing, PAL/NTSC picture_data n slices slice Posizione verticale, partizionamento, Fattore di quantizzazione, n macroblock macroblock Fattore di quantizzazione (opz.), blocchi, macroblock_modes, motion_vectors macroblock_modes I,B o P macroblock (in una I-Picture, posso avere I o P Mb, in una B-Pic ho I,B o P Mb) motion_vectors vettori di movimento per il Mblock coded_block_pattern Quali macroblocchi sono effettivamente codificati (e non tutto a 0) block Coefficienti DCT user_data eventuali dati utente sequence_display_extension Formato video e attributi colore sequence_scalable_extension Che tipo di scalabilità viene usata quant_matrix_extension Matrici eventualmente definite dall’utente per la dequantizzazione picture_display_extension da utilizzare al momento di mostrare il flusso picture_temporal_scalable_extension estensioni temporali (maggior frame-rate) picture_spatial_scalable_extension estensioni spaziali (maggior risoluzione) copyright_extension Originale o copia

Sintassi schematizzata

Base Layer - Enhancement Layer Scalabilità Base Layer - Enhancement Layer Spaziale: Diverse risoluzioni nello stesso flusso video (es. MPEG-1 + MPEG-2, ML@MP + HL@HP) Temporale: Diversi Frame Rate SNR Nuovi coefficienti di quantizzazione (o backup) Partitioning Priority Breakpoint

Audio Layers: Sfrutto: Mediante: 1 1:4 2 1:6 3 1:10 Psico acustica 1 1:4 2 1:6 3 1:10 Sfrutto: Psico acustica Mediante: Sub-band Masking

Audio Additions Half Sample Rate enhancement Multi Channel Extension Non uso tutto lo spettro disponibile dimezzando la frequenza di campionamento Multi Channel Extension Fino a 5 canali surround Adaptive Multichannel Prediction Utilizzo le informazioni di alcuni canali (L+R) per predirre gli altri (Ls Rs C)

Costruiamo l’ Elementary Stream Applichiamo le regole sintattiche per costruire uno stream elementare che contiene tutti gli elementi del Video compresso

Systems Parte dello standard che si occupa del trasporto e multiplexing dei dati. Distinguo: Program Stream (media) Transport Stream (network) Evito così di dipendere dalle tecnologie di rete. Packet Video “Colla” tra MPEG Video ed MPEG Audio

Systems

Program Stream Strutture dati lunghe low-error environments Sincronizzazione A/V Private Data

Transport Stream Strutture dati corte e a lunghezza fissa (pacchetti da 188 byte) Multiplexing / Demultiplexing Sincronizzazione A/V Private Data No error recovery Channel guide Informazioni di temporizzazione nei pacchetti Sincronizzazione Jitter correction Supporto alla Crittografia (PPV)

Costruiamo la sintassi Il bitstream di uscita di un compressore Audio o Video è un Elementary Stream (diviso in access units, frames) Questo stream viene poi suddiviso in Pacchetti e forma un Packetized Elementary Stream (fatto di PES Packets) PES Packet Payload (Dimensione Variabile=acces unit) PES Packet Header I PES vengono poi mappati in Transport Stream Packets (TSP) TSP Payload TSP Header

Transport Streams Esistono due tipi di Transport Streams SPTS Single Program Transport Stream Contiene diversi PES che condividono tutti una base dei tempi comune. Può contenere più istanze di Audio, Video, Dati, ma tutti con la stessa Time-Base MPTS Multiple Program Transport Stream Multiplexing di diversi SPTS (bouqet)

Informazioni di sincronizzazione Transport Stream I pacchetti TS contengono informaz. Di clock nei seguenti field: Program Reference Clock (PCR) 42 bits Decoding Time Stamp (DTS) Presentation Time Stamp (PTS). È importante che durante la trasmissione venga mantenuta la sincronizzazione e il frame rate tra trasmittente e ricevente Il PCR viene usato per sincronizzare i clock (27Mhz) di Tx ed Rx

DTS e PTS

Frame Reordering

Systems: Gerarchia della Sintassi Mpeg_transport_stream Transport Packet Adaptation_Field PES_packet program_association section CA_section TS_program_map_section Private_section PID Packet Identifier (cosa c’è nel pacchetto) (opz.) Timestamp(PCR), Splicing, Priorità StreamID(V/A/DSM), Crypt, PTS, DTS

PES (Packetized Elementary Stream)

TSP Format

Program Maps

Program Specific Information (PSI) Corrispondenza tra Programma e pacchetto (PSI-PID)

DSM-CC User-Network Session protocol User-User Directory, Stream control, File access Interactive and broadcast download Broadcast object carousel Switched digital broadcast channel change protocol Video on Demand Data Broadcast Broadband Internet

Modello di riferimento per la Trasmissione

MPEG-4 Interattività VLBR Video - Migliore compressione 3D scenes Non-rectangular elements Robustezza Scalabilità Editing Random-Access Hybrid, Natural and Synthetic Data coding

MPEG-7 Descrizione standardizzata di diversi tipi di contenuto multimediale. Associazione col contenuto stesso per permettere una veloce ed efficiente ricerca su una grande quantità di dati

…to be continued C’è ancora moltissimo da dire… seba@dsi.unimi.it Per ogni dubbio, chiarimento, domande, suggerimenti: seba@dsi.unimi.it Probabilmente queste slide verranno aggiornate a breve. Controllate: http://www.media.dsi.unimi.it/~seba/ Grazie dell’attenzione Sebastian Sylwan