RETI INTERNET MULTIMEDIALI



Documenti analoghi
RETI INTERNET MULTIMEDIALI. Compressive Video

Codifica Video MPEG. Ing. Francesco Benedetto - Prof. Gaetano Giunta. Laboratorio di Telecomunicazioni (COMLAB) Università degli Studi Roma Tre

Codifica video. Il video digitale. Sistemi Multimediali. Il video digitale. Il video digitale. Il video digitale.

RETI INTERNET MULTIMEDIALI

RETI INTERNET MULTIMEDIALI

VideoStreaming su IP

FONDAMENTI DI INFORMATICA. Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine. Compressione MPEG

La compressione del segnale video. Digital Video Broadcasting

Che cosa è, come funziona: Advanced Video Coding (AVC - H.264): Il prossimo futuro

Lezione 9: Video(II) Informatica e Produzione Multimediale. Docente: Umberto Castellani

Parte Introduttiva Video Digitali

Codifiche a lunghezza variabile

Reti di Telecomunicazione Lezione 8

ATTIVITÀ DI STAGE PRESSO STMICROELECTRONICS

Elementi di teoria dei segnali /b

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Compressione del Segnale (Audio)

Video Over IP (Internet)

HDTV LA TELEVISIONE AD ALTA DEFINIZIONE

Flussi Multimediali. Introduzione

Tecniche di Comunicazione Multimediale

Le immagini digitali. Le immagini digitali. Caterina Balletti. Caterina Balletti. Immagini grafiche. Trattamento di immagini digitali.

Standard di comunicazione

MPEG. Agenda. Comunicazioni multimediali M. Carli P. Campisi. Introduzione. Standard MPEG definiti. MPEG in via di definizione.

Lezione 8: La rappresentazione dell informazione Multimediale Suoni e Video Venerdi 6 Novembre 2009

Come si misura la memoria di un calcolatore?

CARATTERISTICHE VIDEO

Informatica grafica e Multimedialità. 4 Immagini grafiche

La Videosorveglianza Criteri per il dimensionamento dello storage

Classificazione delle applicazioni multimediali su rete

Informatica. Rappresentazione binaria Per esempio diventa /10/2007. Introduzione ai sistemi informatici 1

RETI INTERNET MULTIMEDIALI. Esercitazione 4

Codifica delle Informazioni

Informazione analogica e digitale

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Transmission Control Protocol

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Introduzione all analisi dei segnali digitali.

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

FONDAMENTI di INFORMATICA L. Mezzalira

RETI INTERNET MULTIMEDIALI. Esercitazione 2

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Strutturazione logica dei dati: i file

Tecniche per la Comunicazione Multimediale

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Documento tecnico. Standard di compressione video H.264. Nuove opportunità per il settore della videosorveglianza.

Tecniche per il progetto di sistemi elettronici tolleranti ai guasti

Sistemi Informativi Territoriali. Map Algebra

Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta Università degli studi di Salerno Laurea in Informatica

Reti di Calcolatori. Il software

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

e-dva - eni-depth Velocity Analysis

Progettazione di Basi di Dati

Reti di Telecomunicazione Lezione 6

Video nel multimedia. Il medium più difficile. Può essere il punto debole. non bisogna provarci tempi e costi

IMMAGINE BITMAP E VETTORIALI

PDF created with pdffactory trial version

Le fattispecie di riuso

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Appunti sulla codifica video

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I)

C M A P M IONAM A E M NT N O

Reti e Sistemi per l Automazione MODBUS. Stefano Panzieri Modbus - 1

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo

Basi di Dati Multimediali. Fabio Strocco

esercizi-voip-v1.doc (era esercizi v6.doc) Esercizio 1

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

Organizzazione degli archivi

Struttura del calcolatore

Sistema automatico di acquisizione e modellazione 3D a basso costo

Esercizi Multiplazione TDM Accesso Multiplo TDMA

Testi di Esercizi e Quesiti 1

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

LINGUAGGI DI PROGRAMMAZIONE

xdsl Generalità xdsl fa riferimento a tutti i tipi di Digital Subscriber Line

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Approfondimento di Marco Mulas

ARP (Address Resolution Protocol)

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Occupazione su disco. Compressione video. Perchè comprimere il video. Come comprimere. Bit Rate Video Telef. Pixels/ Frame Frame Bytes/

Codifica video scalabile a bassa complessità

Rete di accesso / Rete di trasporto

Lezione 1. Introduzione e Modellazione Concettuale

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

ƒ Gli standard e la gestione documentale

Transcript:

RETI INTERNET MULTIMEDIALI Codifica e Compressione del Video: MPEG Il documento è adattato da materiale cortesemente messo a disposizione dal Prof. Stefano Paris

Introduzione Il gruppo di esperti MPEG (Motion Picture Experts Group) si occupa della definizione dei seguenti standard MPEG-1, MPEG-2, MPEG-4: sistemi e tecniche di codifica audio/video MPEG-7: sistemi di ricerca di contenuti audio/video in database multimediali e descrittori base (forme, colori, etc.) MPEG-21: sistemi per lo scambio di contenuti multimediali attraverso diverse tecnologie di rete/dispositivi e gestione della protezione dei diritti

Introduzione MPEG definisce un sistema di codifica asimmetrico Il codificatore richiede molte più risorse (computazionali e temporali) del decodificatore Sviluppato per applicazioni non real-time (es. video storage) Gli standard definiti in MPEG sono organizzati in tre parti principali Sistema: multiplexing di diversi flussi audio/video codificati per lo storage e la trasmissione Codifica Video Codifica Audio

MPEG Codifica Video

Introduzione I diversi standard di codifica video definiti da MPEG si rivolgono a diverse tipologie di applicazioni Esigenze di risorse (banda, complessità, etc.) Qualità del segnale video riprodotto Standard MPEG-1 Risoluzione (Y) 352 x 24 72 x 48 Frame rate 3 fps 3 fps Bit rate 1.5 Mbit/s 15 Mbit/s Applicazioni Storage Video "main profile @ main level" MP@ML MPEG-2 MP@ML DVD, Digital Broadcast TV, HDTV

MPEG - Group of Pictures Il flusso video viene codificato come una sequenza di frame o picture Esistono tre tipologie di picture: I: Intra-Coded Picture P: Predictive Coded Picture (forward prediction) B: Bi-Directional Predictive Coded Picture (bi-directional prediction o anche interframe interpolative coding ) L insieme dei frame viene organizzato in raggruppamenti detti Group of Picture (GOP) Ogni GOP è composta da una I picture, e diverse P e B picture D (DC) picture: intraframe coding codifica solo coefficienti DC (usata raramente)

MPEG - Group of Pictures Tipicamente 12 frame tra due frame I consecutive Le frame B sono onerose dal punto di vista computazionale ma sono decisamente vantaggiose per la compressione Le frame I si usano quando ci sono cambi di scena... I B P B B P B...

MPEG - Group of Picture A causa delle tecniche di predizione utilizzate, al ricevitore la sequenza di frame decodificati risulterà diversa rispetto a quella di visualizzazione Un P frame dipende da un I frame (o da un frame P) precedente Un B frame dipende sia da un frame precedente sia frame successivo (siano essi I o P) E necessario riordinare la sequenza di frame prima di visualizzarli

MPEG - Group of Picture P 2 B 4 B 6 B 5 B 4 B 5 P 2 B 6 B 3 P 1 B 2 B 1 I B 1 B 2 I P 1 B 3 Ordine di visualizzazione Ordine di trasmissione

MPEG Formato Video Il flusso video è codificato in una struttura gerarchica formata da diversi livelli Blocco 8x8 Macroblocco 4 blocchi Y (una matrice 16x16) 2 blocchi C (un C b e un C r ) Slice: sequenza contigua di macroblocchi (stessa tonalità di grigi) Picture (I, P o B) Group of Picture (GOP)

MPEG Formato Video MPEG Bitstream: struttura gerarchica Livello più esterno Livello più interno

MPEG- Intestazioni Video sequence layer header: dimensione dell immagine (orizzontale e verticale), rapporto d aspetto, frequenza di quadro, bitrate, minima lunghezza del buffer del decoder, GOP layer header: tempo dall inizio della sequenza video, se il GOP è autoconsistente o necessita di frame da GOP precedenti, Picture layer header: riferimento temporale della picture, tipo di picture (I,P,B,D), occupazione iniziale del buffer del decoder, risoluzione del vettore del movimento in avanti per frame P e B, risoluzione del vettore del movimento all indietro per frame B, Slice layer header: posizione verticale in cui la slice ha inizio, scala di quantizzazione della slice Macroblock layer header: bit di riempimento opzionali, indirizzo incrementale del macroblocco, tipo di macroblocco, scala di quantizzazione, vettore di movimento Block: 8x8 coefficienti DCT codificati

MPEG Formato Video MPEG Bitstream: struttura gerarchica

Codifica Intra-frame (I-frame) Un frame viene codificato utilizzando solo le informazioni contenute nel frame stesso Utilizzato per I picture Ognuno dei blocchi 8x8 di luminanza e crominanza DCT: coefficienti trasformati con DCT Quantizzazione: output della DCT quantizzato Entropy coding: coefficienti quantizzati vengono codificati utilizzando uno schema lossless Il processo è del tutto simile a quello eseguito da JPEG sequenziale

Codifica Intra-frame (I-frame) Codifica dei coefficienti DC di un I-frame La ridondanza dei coefficienti DC dei blocchi 8x8 adiacenti è ridotta utilizzando una codifica DPCM (Differential Pulse Coded Modulation) DC i k DC i k P i k Predittore del valore DC del blocco i-esimo del macroblocco j-esimo Il segnale risultante dalla differenza (varia nel range [-255; 255]) è codificato utilizzando una compressione lossless VLC (Variable Length Code) Lo standard definisce il codice VLC L ordine di predizione dei coefficienti DC dipende dall ordine di codifica dei blocchi 8x8 i P k

Codifica Intra-frame (I-frame) MB i MB i+1 Y 1 Y 2 Y 1 Y 2 Y 3 Y 4 Y 3 Y 4 C b C b C r C r

Codifica Intra-frame (I-frame) Codifica dei coefficienti AC di un I-frame Molti dei coefficienti AC ad alta frequenza sono nulli E più efficiente codificare la posizione e il valore dei (pochi) coefficienti non nulli La sequenza di coefficienti AC quantizzati (zig-zag) viene codificata utilizzando una sequenza di simboli <run:level> Run: indica il numero di elementi nulli che precedono un elemento non nullo Level: indica il valore dell elemento non nullo (successivo alla sequenza di elementi nulli) Ogni simbolo <run:level> viene codificato con un codice Variable Length Code (VLC) standardizzato

Codifica Intra-frame (I-frame) Codifica dei coefficienti di un I-frame 1 1 2 132 EOB 1 2 1 132 EOB P 1 3: 1: 2 1 2: 132

Codifica Inter-frame (P-frame) In generale due frame consecutivi sono molto simili tranne per alcuni scostamenti dovuti a: Movimento (della camera e degli oggetti) Variazione della luce (movimento delle ombre) Se si codifica il frame risultante dalle differenza tra il frame corrente e il frame precedente si aumenta la compressione Poca variazione nel frame risultante (pochi coefficienti DCT)

Codifica Inter-frame (P-frame) F t1 F t

Codifica Inter-frame (P-frame) Per migliorare ulteriormente la codifica si usa la tecnica di block-based motion compensated prediction error E necessario eseguire la stima del movimento dei blocchi tra due frame consecutivi Motion estimation Prima di eseguire la differenza si genera un nuovo frame utilizzando il frame di riferimento e l informazione ottenuta dall algoritmo di motion estimation (vettore di movimento) Errore di predizione: differenza tra il frame corrente e la versione ottenuta dalla predizione (motion compensated frame)

Codifica Inter-frame (P-frame) v enc v D enc P F F D v F mc F t t M t t t t M t ', ~ 1 t M t t t M t t t D F F v F mc F P dec D v dec v, ~ ' 1 F t F t1 Codifica Decodifica

Codifica Inter-frame (B-frame) La predizione Bi-direzionale utilizza due frame di riferimento Per ogni macroblocco del frame predetto vengono generati due vettori di movimento Un vettore relativo a un frame nel passato Un vettore relativo a un frame nel futuro La predizione bidirezionale è utile per la compressione di aree libere (non coperte da altri oggetti), ottenendo in un miglior rapporto di compressione I B-frame non vengono utilizzati come frame di riferimento per la predizione di altri frame

Codifica Inter-frame (B-frame) Ft1 1 F t F t v t v 1 ( 1) ( 1 1 1 t1 v (.5) ( 2 ( ) ( 2 2 2 t1 ).5) 1) Bi-directional Prediction Forward Prediction Backward Prediction

Codifica Inter-frame (B-frame) Non tutti i macroblocchi dei B-frame derivano da predizione bi-direzionale I macroblocchi che compongono i B-frame sono codificati utilizzando predizione Bidirezionale Backward Forward Nessuna (Intra-coded) Viene utilizzata la tipologia di predizione che minimizza la varianza dell errore di predizione della componente di luminanza

Codifica Inter-frame L informazione necessaria alla ricostruzione del macroblocco generato dalla codifica Interframe (P o B) è formata Vettore di movimento Errore di predizione La trasformazione DCT è applicata all errore di predizione, prima della quantizzazione e della codifica lossless

MPEG - Codifica Il codificatore MPEG è composto dai seguenti componenti Controller: controllo e sincronizzazione del flusso video FDCT (Forward DCT) Quantizzatore VLC encoder (Entropy coding) Recostruction Module Motion Estimator (predizione del movimento) Motion Compensation (compensazione del movimento) Il Recostruction Module e il Motion Compensation sono necessari per generare i frame di riferimento con cui eseguire la predizione del movimento (stima sugli stessi dati per codificatore e decodificatore)

MPEG - Codificatore Input Map Output Bitstream Buffer Video Filter F t + - D t DCT Quantizer Entropy Encoder M F t + + IDCT Rescaler D ~ t Motion Estimation Motion Compensation ~ F t 1 Frame Store

MPEG - Decodifica Il decodificatore MPEG è più semplice del codificatore (codifica asimmetrica) La ricostruzione è guidata dalle informazioni inviate dal codificatore (Coefficienti della DCT e motion vector) E composto essenzialmente da due componenti Recostruction Module Motion Compensation (compensazione del movimento)

MPEG - Decodificatore Buffer Input Bitstream Compressed data Entropy Decoder Rescaler IDCT + + Video Frame Motion Vector Motion Compensation Frame Store

Quantizzazione Picture Type I picture P picture B picture change MQUANT no change to MQUANT motion comp. motion vector set to Fwd motion compensation Bwd motion compensation interpolated compensation interframe intraframe A A A A coded not coded change MQUANT no change to MQUANT MQUANT= scale factor q change MQUANT no change to MQUANT A Quantization matrix

MPEG IDCT Mismatch

IDCT Mismatch L efficienza della compressione dipende generalmente dalla codifica inter-frame Nella codifica inter-frame i dati di un frame predetto (P o B) sono aggiunti ai dati decodificati da precedenti frame Minime variazioni prodotte dalle IDCT del codificatore e del decodificatore si propagano fino a un I-frame Se non controllate diventano percettibili come distorsione del segnale La differenza prodotta dalle IDCT del codificatore e del decodificatore è nota come IDCT mismatch error

IDCT Mismatch L errore di IDCT mismatch non è da confondere con l errore dovuto alla quantizzazione dei coefficienti della DCT Entrambe le IDCT operano sugli stessi coefficienti quantizzati Lo standard non definisce l algoritmo per il calcolo della IDCT Indica solo delle tolleranze espresse come errori La precisione finita con cui può essere rappresentata l output della IDCT contribuisce all errore di mismatch

IDCT Mismatch Lo standard definisce una procedura per la misura dell accuratezza della IDCT Un set di valori di riferimento (reference data set) composto da 1 blocchi 8x8 viene fornito per il calcolo dell accuratezza La propria implementazione della IDCT deve essere eseguita sullo stesso data set Due insiemi di valori (pel: picture element) Reference pel f k y, x Reconstructed pel fˆ k y, x

IDCT Mismatch peak error (ppe) L errore di misura tra i dati di riferimento e quelli calcolati dalla propria IDCT deve rispettare certi requisiti peak mean square error (pmse) e Requisiti: ppe pmse ˆ y, x f y, x f y x k k k, y, x maxe y, x y, x 1 k1 e k 2 k y, x 1 1.6 k 1,2,...,1

IDCT Mismatch Requisiti: overall mean square error (omse) peak mean error (pme) overall mean error (ome) omse pme ome y, x 7 7 x y k 1 7 7 1 x y k 1 64 64 1 k 1 1 1 e k e e k 2 k y, x y, x y, x.2.15.15

IDCT Mismatch Per limitare la propagazione degli errori di IDCT Mismatch, deve essere eseguita una codifica intra-frame (I-Frame) ogni 132 P-frame Processo noto come force updating Nella pratica il force updating è raro, poiché gli I-frame appaiono con una frequenza di 1 ogni 1-2 frame Semplifica le procedure di image editing, fast forward e fast reverse playback, semi-random access

MPEG Motion Estimation

Motion Estimation A differenza dell algoritmo di Motion Compensation, lo standard non definisce un algoritmo di Motion Estimation Motion Compensation: utilizzo del vettore di movimento durante la codifica/decodifica Motion Estimation: stima del vettore di movimento L algoritmo di Motion Estimation è il componente più importante nella codifica MPEG Dalla sua implementazione dipendono l efficacia (rapporto di compressione) e l efficienza (qualità) di codifica

Motion Estimation L algoritmo di motion estimation determina un vettore di movimento per ogni Macro-Blocco in cui è suddiviso il frame Assunzione: i vettori di movimento sono costanti in un MacroBlocco Un unico vettore di movimento è assegnato al macroblocco composto dai 4 blocchi 8x8 di luminanza (16x16) e i 2 blocchi 8x8 di crominanza La ridondanza tra Macro-Blocchi adiacenti è ridotta codificando le differenze tra i rispettivi vettori (si applica DPCM)

Motion Estimation Algoritmo di motion estimation Suddividi il frame corrente in macro-blocchi Stima un vettore di movimento per ogni macro-blocco utilizzando un frame di riferimento All interno di una finestra di ricerca del frame di riferimento (area W 2 ), cerca il macro-blocco che minimizza una misura dell errore (best match MB) Genera il vettore di movimento da applicare al MB del frame di riferimento per produrre il MB del frame corrente Per minimizzare la complessità computazionale si utilizzano strategia di ricerca efficienti

Motion Estimation La stima del moto è fatta a livello di macroblocco (16x16 di luminanza) La frame corrente è denominata «target frame» Si ricerca la miglior corrispondenza a livello di macroblocco nella target frame e il macroblocco più simile nelle frame precedenti o future, chiamate «reference frame» Lo spostamento tra il macroblocco della reference frame alla target frame si chiama «motion vector» La ricerca si effettua nelle vicinanze (spostamento orizzontale e verticale [ p,+p]): la dimensione della search window search (2p+1)x(2p+1)

Criterio di Matching MAD SAD MSD Esistono diverse misure dell errore che si vuole minimizzare Mean Absolute Distortion (Error) Sum of Absolute Distortion (Error) Mean Square Distortion (Error) 1 256 x, y F x i, y j F x dx i, y dy j 15 x, y F x i, y j F x dx i, y dy j i 15 j 1 256 15 i 15 x, y F x i, y j F x dx i, y dy j t t1 i t 15 j 15 j t t1 t1 2

Criterio di Matching SAD Generalmente si utilizza MAD(x,y) come misura dell errore, poiché fornisce una rappresentazione intera dell errore più facilmente rappresentabile x e y sono riferiti al upper-left corner: punto (,) i e j indicano spostamenti laterali a destra e in basso all interno dello stesso Macro-Blocco x, y 15 i MB del Frame Corrente 15 j F t x i, y j MB del Frame di Riferimento F x dx i t1, y dy j Spostamento Orizzontale Spostamento Verticale

Strategie di Ricerca Strategie di ricerca del vettore che minimizza l errore Full search 2-D Logarithmic search Three-step search Hierarchical search Strategia Full Search Tutti i possibili vettori di spostamento dell area di ricerca vengono considerati dall algoritmo Alta complessità computazionale, ma data la sua regolarità è facilmente parallelizzabile Trova la soluzione ottima

Strategia Full search Strategia Full Search Prova tutte le combinazioni ottenute variando dx e dy Seleziona la combinazione che minimizza la misura dell errore Complessità Assunzione: 3 operazioni per ogni confronto (sottrazione, valore assoluto, addizione) W 2 N 2 3 2 2 W N N 16

Strategia 2-D Logarithmic Strategia 2-D Logarithmic Trova una soluzione sub-ottima, ma richiede meno risorse della Full Search Versione 2-D della ricerca binaria Il confronto della misura dell errore (MAD) è effettuata solo tra i MB di una area che contiene 5 punti vicini L area è spostata iterativamente, centrandola nel punto che minimizza la misura dell errore

Strategia 2-D Logarithmic La misura MAD è calcolata solo per i 5 punti all interno dell area quadrata disposta in diagonale L area viene spostata ad ogni iterazione Il lato dell area viene dimezzato quando Il punto selezionato si trova sul bordo dell area di ricerca Il punto selezionato si trova nel mezzo dell area di ricerca corrente http://www.stanford.edu/class/ee398b/handouts/papers/jain%2-%2displacement%2measurement.pdf

Strategia three-step Step 1: -4,+4 pixel Step 2: -2,+2 pixel Step 3: -1,+1 pixel Si trova il miglior match ad ogni step e ci si sposta centrando il nuovo quadrato di indagine centrandolo nel punto, dimezzando la dimensione del quadrato Al terzo passo si seleziona il punto tra i 9 rimasti che offre il miglior match e si è trovato il motion vector

Strategia Hierarchical Logarithmic Strategia Hierarchical search La procedura di ricerca è eseguita utilizzando diverse versioni dei frame a risoluzioni diverse Trova il vettore che minimizza l errore nel frame a più bassa risoluzione Si migliora la stima modificando il vettore iterativamente incrementando la risoluzione dei frame

Strategia Hierarchical Logarithmic

MPEG-2 Algoritmo e differenze rispetto MPEG-1

MPEG-2 Introduzione MPEG-2 è stato sviluppato per supportare applicazioni con data rate maggiori di quelle che utilizzano la codifica MEPG-1 MPEG-2 condivide molti aspetti della codifica di MPEG-1 MPEG-2 definisce un meccanismo di codifica più efficiente per segnali video interlacciati (interleaved slice) MPEG-1 solo video non interallacciato MPEG-2 definisce tre formati di campionamento delle tre componenti YC b C r 4:2: componenti C b e C r sottocampionati nella direzione orizzontale e verticale 4:2:2 componenti C b e C r sottocampionati nella sola direzione orizzontale 4:4:4 nessun sottocampionamento

MPEG-2 Introduzione Sotto-campionamento crominanza 4:4:4 4:4: 4:2:2 4:2:

MPEG-2 Introduzione Interleaving & Field Frame Prediction (a) Frame picture vs. Field pictures, (b) Field Prediction for Field pictures

MPEG-2 Introduzione Scansione dei coefficienti DCT a zigzag e alternativa per video progressivo e interallacciato

MPEG-2 Formato Video MPEG-2 specifica diversi formati video, definiti dalla combinazione di due parametri Profilo: Sottoinsieme della sintassi di codifica (frame rate e color resolution); Rivolto ad una applicazione specifica; Descrive diversi gradi di scalabilità e modalità di codifica applicabili. Livello: Introduce vincoli sui parametri del decodificatore (risoluzione massima dell immagine, n max di operazioni per la decodifica, massimo bit rate...) MPEG-2 definisce 5 diversi profili: Simple Profile (SP) Main Profile (MP) SNR Scalable Profile (SNR) Spatially Scalable (Spt) High Profile (HP)

MPEG-2 Formato Video Esempi di profili definiti da MPEG-2 In tutti i profili tutti i macroblocchi di una slice devono essere codificati (non possono esserci buchi nel pattern di codifica) In MPEG-2 una slice deve essere composta da macroblocchi appartenenti alla stessa linea (la slice deve essere contigua) Constrained Parameters Bitstream (CPB) Profilo CPB MPEG-1 SP MP Formato Macro-Blocco 4:2: 4:2: 4:2: 4:2: Picture I, P, B, D I, P, B, D I, P I, P, B Slice All MB All MB All MB All MB Scalabile No No No No Precisione coeff. DC 8 bit 8 bit 8 bit {8, 9, 1} bit D frames (DC coded frame) sono un tipo di intraframe, in cui i coefficienti AC sono trascurati.

MPEG-2 Formato Video MPEG-2 definisce 4 diversi livelli: Low Level (LL) Main Level (ML) High Level 144 (HL-144) High Level (HL) Level Parametro Limite Campioni/linea 72 Main (SP@ML) Linee/frame 576 Frame/secondo 3 Bitrate 15 Mbit/s

Level Parametro Limite High (MP@HL) High - 144 (MP@HL-144) Main (MP@ML) Low (MP@LL) Campioni/linea 192 Linee/frame 1152 Frame/secondo 6 Bitrate 8 Mbit/s Campioni/linea 144 Linee/frame 1152 Frame/secondo 6 Bitrate 6 Mbit/s Campioni/linea 72 Linee/frame 576 Frame/secondo 3 Bitrate 15 Mbit/s Campioni/linea 352 Linee/frame 288 Frame/secondo 3 Bitrate 4 Mbit/s

MPEG-2 System Layer

MPEG-2 System Layer Oltre a definire la codifica video e audio, MPEG specifica la struttura dei pacchetti utilizzati per il trasporto del flusso multimediale i meccanismi di sincronizzazione un protocollo di trasporto che garantisce l integrità della trasmissione del flusso multimediale Il livello di sistema di MPEG definisce come integrare e sincronizzare diversi flussi dati elementari (Elementary Streams) Elementary Stream: singolo flusso multimediale Audio Video Dati e controllo (es. sottotitoli)

MPEG-2 System Layer I flussi ES vengono dapprima strutturati in pacchetti per formare il Packetized Elementary Stream (PES) I diversi PES contengono timestamp per la sincronizzazione dei diversi flussi I diversi PES vengono successivamente multiplexati per formare un unico flusso di trasporto MPEG definisce due alternative modalità per la generazione del flusso di trasporto Program Stream (PS) Transport Stream (TS)

MPEG-2 System Layer

System Layer ES Formato Elementary Stream SH SE 1 EUD GOPH EUD 1 PH PCE EUD 2 PDS SDMB SE 2 Parametro Funzione SH Sequence Header SE 1 Sequence Extension EUD Extension and User Data GOPH Group Of Picture Header EUD 1 Extension and User Data 1 PH Picture Header PCE Picture Coding Extension EUD 2 Extension and User Data 2 PDS Picture Data containing Slices SDMB Slices Data containing Macro-Blocks SE 2 Sequence End

System Layer PES Header Primary PES Header PSCP SID PESPL OPESH SB Packetized Elementary Stream Parametro Funzione Descrizione PSCP Packet Start Code Prefix Preambolo SID Stream Identification Utilizzato per identificare il tipo di flusso PESPL PES Packet Length Numero di byte del pacchetto PES OPESH Optional PES Header Header opzionale del pacchetto PES SB Stuffing Bytes Bit di riempimento per soddisfare i requisiti di rete

System Layer PES Header Optional PES Header (OPESH) 1 SC P DAI C O/C Flags PESHDL OF 1 Parametro Funzione Descrizione SC Scrambling Control Tipologia di scrambling utilizzata P Priority Priorità assegnata al PES DAI Data Alignment Indicator Utilizzato per l allineamento dei byte C Copyright Informazioni relative ai diritti di proprietà intellettuale O/C Original/Copy Contenuto originale Flags 7 Flags Flags di controllo PESHDL PES Header Data Length Numero di byte che compongono l header opzionale OF 1 Optional Fields 1 Ulteriori campi opzionali

System Layer PES Header Optional Fields 1 (OF 1 ) PTS/DTS ESCR ESR DSMTM ACI PESCRC PESE Parametro Funzione Descrizione PTS/DTS Presentation Time-Stamps / Decoding Time-Stamps Timestamp di decodifica e di visualizzazione dell unita codificata ESCR Elementary Stream Clock Reference Tempo di arrivo previsto al sistema di decodifica (STD: System Target Decoder) ESR Elementary Stream Rate Rate al quale il decodificatore STD riceve i pacchetti PES DSMTM DSM Trick Mode Digital Storage Media trick mode ACI Additional Copy Information PESCRC PES Cyclic Redundancy Check Codice di controllo integrità (Checksum) PESE PES Extension Ulteriori Estensioni

System Layer PES Header Packetized Elementary Stream Extension (PESE) Flags OF 2 Parametro Funzione Descrizione Flags 5 Flags Flag di controllo OF 2 Optional Fields 2 Ulteriori campi opzionali

System Layer PES Header Optional Fields 2 (OF 2 ) OF 2 PHF PPSC PSTDB PESEF Parametro Funzione Descrizione OF 2 Optional Fields 2 Identificatore PHF Pack Header Field Header di un Program Stream PPSC Program Packet Sequence Counter Numero totale di flussi multimediali PSTDB P-STD Buffer Dimensione del buffer del decodificatore STD PESEF PES Extension Field Ulteriori estensioni

System Layer Program Stream MPEG PS è stato progettato per la trasmissione/memorizzazione di contenuti multimediali attraverso canali di comunicazione ad alta affidabilità, ossia con errori di trasmissione trascurabili (es. CD-ROM) MPEG PS è composto da più flussi audio e/o video pacchettizzati (PES) multiplexati assieme e trasmessi attraverso pacchetti di dimensione variabile I flussi audio e video sono sincronizzati e possono essere decodificati e presentati in modo sincrono

Formato Program Stream

System Layer Transport Stream MPEG TS è pensato per la trasmissione di contenuti multimediali attraverso reti poco affidabili (errori di trasmissione non trascurabili) MPEG TS è composto da più flussi audio e/o video (PES), non necessariamente sincronizzati, multiplexati assieme e trasmessi attraverso pacchetti di dimensione fissa (188 byte) Il flusso definito dalla modalità TS è composto da Un Header lungo 4 byte Un Payload lungo 184 byte

System Layer Transport Stream Packetized Elementary Stream Transport Stream Multiplexer TSH TSH TSP TSP TSH TSP TSH TSP

System Layer TS Header SB TEI PUSI TSC PID AFC CC AF Parametro Dimensione Funzione Descrizione SB 8 bit Synchronization Byte Preambolo che identifica l inizio del pacchetto TS TEI 1 bit Transport Error Indicator Indica un errore nel bitstream del pacchetto PUSI 1 bit Payload Unit Start Indicator Utilizzato per identificare se il contenuto del pacchetto TS sia un pacchetto PES TSC 2 bit Transport Scrambling Control Informazione di controllo utilizzata per lo scrambling del pacchetto TS PID 13 bit Packet Identifier Identifica univocamente la sorgente che ha prodotto il contenuto trasportato dal pacchetto TS AFC 2 bit Adaptation Field Control Indica se AF è presente o meno CC Continuity Counter Identificatore di pacchetto all interno dello stesso flusso identificato da PID AF Adaptation Field (Optional) Informazione opzionale non necessariamente contenuta in tutti i pacchetti dello stesso flusso identificato dal valore di PID

MPEG-4 Overview

MPEG-4 Introduzione MPEG-4 è uno degli standard più recenti di compressione di contenuti multimediali Oltre ai meccanismi di compressione pone molta enfasi sull interattività sperimentata dall utente MPEG-4 estende gli standard che lo precedono adottando una codifica basata su oggetti (objectbased coding) Garantisce maggiore efficienza (alti rapporti di compressione) Il flusso video può essere codificato manipolando sia gli oggetti visivi che la scena MPEG-4 è stato definito per un ampio spettro di applicazioni con bitrate compresi tra 5 kbit/s e 1 Mbit/s

MPEG-4 Introduzione Funzionalità definite da MPEG-4 Interattività Content-Based Compressione Universal Access Sincronizzazione Flessibilità di Allocazione di Canali Virtuali Caratteristiche MPEG-4 Modalità low end-to-end delay User Control Trasmissione attraverso internetwork diverse Sicurezza (autenticazione, cifratura, key management) Trasmissione Multipoint

MPEG-4 Codifica VOP-based Il formato del flusso video codificato (bitstream) definito da MPEG-4 è molto diverso da quello definito dai suoi predecessori MPEG-4 definisce una struttura gerarchica di rappresentazione della scena visualizzata orientata agli oggetti: Video-object Sequence (VS) Video Object (VO) Video Object Layer (VOL) Video Object Plane (VOP) Group of VOPs (GOV) In MPEG-1 e MPEG-2 la codifica è eseguita considerando tutto il frame (codifica frame-based)

MPEG-4 Descrizione della scena La descrizione della scena di MPEG-4 consente di: Introdurre una struttura gerarchica della scena Combinare oggetti naturali e sintetici Interagire con singoli elementi (audio e video) della scena http://leonardo.chiariglione.org/papers/isce96/index.htm

MPEG-4 Codifica VOP-based Video-object Sequence (VS): trasporta la scena completa codificata con MPEG-4, che può contenere oggetti 2-D e 3-D Video Object (VO): identifica un particolare oggetto della scena, che può essere una qualsiasi forma non rettangolare della scena (oggetto, sfondo, etc.) Video Object Layer (VOL): semplifica la codifica scalabile di un VO (codifica multi-layered) Video Object Plane (VOP): identifica un intero frame o un VO che deve essere codificato o con cui si vuole interagire Group of VOPs (GOV): istantanea di un VO in un determinato istante temporale

Complessità Rapporto di Compressione MPEG-4 Codifica VOP-based

MPEG-4 Codifica VOP-based La codifica VOP-based definita da MPEG-4 utilizza la tecnica di motion compensation I-VOP: codifica Intra-frame applicata a un VOP P-VOP: codifica Inter-frame con forward prediction applicata a un VOP B-VOP: codifica Inter-frame con bi-directional prediction applicata a un VOP La codifica VOP-based risulta più complessa della frame-based poiché un VOP può avere una forma arbitraria Si deve codificare anche l informazione che identifica la forma oltre al vettore di movimento e i coefficienti della DCT

Approfondimenti Libri Chad Fogg; Didier J. LeGall; Joan L. Mitchell; William B. Pennebaker, MPEG Video Compression Standard. Springer 1996. Iain Richardson, H.264 and MPEG-4 Video Compression: Video Coding for Next Generation Multimedia. Wiley 23. Articoli D. LeGall, MPEG: a Video Compression Standard for Multimedia Applications. Communications of the ACM, vol. 34, no. 4, pp. 46-58, April 1991. IEEE Transactions on Circuits and Systems for Video Technology, Special Issue on the H.264/JVC Video Coding Standard, July 23. Link http://www.itu.int/rec/t-rec-h.264-213-i/en