capire mpeg sebastian sylwan [email protected] polo didattico e di ricerca di crema 24/4/99

54
CAPIRE MPEG Sebastian Sylwan [email protected] Polo Didattico e di Ricerca di Crema 24/4/99

Upload: allegria-genovese

Post on 01-May-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

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

CAPIRE MPEGSebastian Sylwan

[email protected]

Polo Didattico e di Ricerca di Crema24/4/99

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

Concetti base del video digitale

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

Vi sono familiari tutti i seguenti termini ?

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

MPEG

Motion

Pictures

Expert

Group

MPEG-1 1988-90

MPEG-2 1990-94 MPEG-4 1998MPEG-7 2000 (?)

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

Aggiunte rispetto a MPEG-1

Ottimizzato per il mondo BroadcastDiversi Aspect-ratio (16:9 HDTV WideScreen)Macroblock 4:2:2 4:4:4 InterlacingInformazioni sull’origine del materiale Video

(telecine, 3:2 pulldown, NTSC, PAL)Scalabilità del segnale VideoSistema di trasporto TS/PSMaggiore flessibilità nella compressione

(Variable-Length tables, Scale Factor, ½ px Motion Vectors )

Audio multilinguale

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

Suddivisione dello Standard

S ys tem sV id eoA u d ioC om p lian ceS oftw are S im u la tionD S M -C CD ig ita l S to rag e M ed ia -C om m an d an d C on tro lR ea l T im e In te rfacefo r S ys tem D ecod ersD S MR eferen ce S c rip t F orm at

M P E G - 2

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

MPEG-2 VideoObiettivi:

Descrivere un formato che descriva un Bitstream Video codificatoNon definire il processo di codificaDescrivere 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

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

MPEG-2 VideoParti componenti lo standard:

Definizioni di baseSintassi del segnale Video MPEG-2Descrizione SemanticaProcesso di decodificaEstensioni e ScalabilitàProfili e LivelliAnnessi

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

MPEG-2 VideoDefinizioni 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

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

Overview

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

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 coloreLivello di accettazione + alto per il rumore

alle alte frequenze

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

Strumenti di compressione

Mediante: DCT-Quantizzazione-VLCoding Huffman Coding Motion Estimation

} I-Pictures

B-Pictures / P-Pictures

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

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

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

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

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

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 patternIl primo coefficiente mi dà la luminosità generale del bloccoGli altri rappresentano le intensità delle diverse componenti frequenzialiLa maggior parte delle componenti è prossima a zero e quindi non le considero

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

Capiamo la DCT

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

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

8 16 19 22 26 27 29 34

16 16 22 24 27 29 34 37

19 22 26 27 29 34 34 38

22 22 26 27 29 34 37 40

22 26 27 29 32 35 40 48

26 27 29 32 35 40 48 58

26 27 29 34 38 46 56 69

27 29 35 38 46 56 69 83

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

RL Encoding

Run = numero di zeri prima di un coefficiente non-zeroLevel = in MPEG Video è il coefficiente della componente frequenzialeDefinisco 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.

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

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.

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

Motion Estimation

Per risolvere il problema si creano GOP (Group Of Pictures) con diversi tipi di Picture all’interno.

Intra-coded PicturePredictive coded Picture

Bi-directionally coded Picture

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

Motion Estimation

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

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.

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

Phase CorrelationIn 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.

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

Slices

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

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

Profili e LivelliGrande varietà di

applicazioniComplessitàCosto enorme per

supportare tutto lo standard

Implemento solo alcune funzioni (Profilo)

Profili LivelliSimple Profile Low Level (LL)

Main Profile (MP) Main Level (ML)

4:2:2 High 1440 Level (H14)

SNR Scalable Profile (SNR) High Level (HL)

Spatial Scaleable Profile(Spatial)High Profile (HP)

MPEG-2Feature

SP MP SNR Spatial HP

ChromaFormat

4:2:0 4:2:0 4:2:0 4:2:0 4:2:24:2:0

PicureType

I,P I,P,B I,P,B I,P,B I,P,B

Scaleable No Si Si Si Si

ScaleableMode

- - SNR SNRSpatial

SNRSpatial

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

Campionamenti tipici

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

Profili

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

Livelli

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

Riassumendo...

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

Sintassi di MPEG-2 Videovideo_sequence() {

next_start_code()

sequence_header()

if(nextbits)==extension_start_code) {

sequence_extension()

do {

extension_and_user_data

do {

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

sequence_header()

sequence_extension()

}

}while (nextbits() != sequence_end_code)

}

else {

MPEG-1

}

sequence_end_code

}

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

Strutture sintattiche

video_sequence Contiene Pictures ed estensionisequence_header Dimesioni Immagine e FrameRate, matrici di quantizzazione

specialisequence_extension profilo/livello, Formato Chroma, se non esiste il flusso è MPEG-1GOP_header Timecode, informazioni per l’editingpicture_header dice se è I,B o P Picture. Contiene riferimento temporale (all’interno del GOP)picture_coding_extension Interlacing, PAL/NTSCpicture_data n slicesslice Posizione verticale, partizionamento, Fattore di quantizzazione, n

macroblockmacroblock Fattore di quantizzazione (opz.), blocchi, macroblock_modes,

motion_vectorsmacroblock_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 Mblockcoded_block_pattern Quali macroblocchi sono effettivamente codificati (e non tutto a 0)block Coefficienti DCTuser_data eventuali dati utentesequence_display_extension Formato video e attributi coloresequence_scalable_extension Che tipo di scalabilità viene usataquant_matrix_extension Matrici eventualmente definite dall’utente per la dequantizzazionepicture_display_extension da utilizzare al momento di mostrare il flussopicture_temporal_scalable_extension estensioni temporali (maggior frame-rate)picture_spatial_scalable_extension estensioni spaziali (maggior risoluzione)copyright_extension Originale o copia

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

Sintassi schematizzata

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

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

SNRNuovi coefficienti di quantizzazione (o backup)

PartitioningPriority Breakpoint

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

AudioLayers:

1 1:4 2 1:6 3 1:10

Sfrutto: Psico

acustica

Mediante: Sub-band

Masking

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

Audio Additions Half Sample Rate

enhancementNon uso tutto lo spettro

disponibile dimezzando la frequenza di campionamento

Multi Channel ExtensionFino a 5 canali surround

Adaptive Multichannel Prediction

Utilizzo le informazioni di alcuni canali (L+R) per predirre gli altri (Ls Rs C)

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

Costruiamo l’ Elementary

StreamApplichiamo le regole sintattiche per costruire uno stream

elementare che contiene tutti gli

elementi del Video compresso

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

SystemsParte 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

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

Systems

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

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

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

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)

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

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

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

Transport Streams

Esistono due tipi di Transport StreamsSPTS 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)

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

Informazioni di sincronizzazione

Transport Stream I pacchetti TS contengono informaz. Di clock nei

seguenti field:Program Reference Clock (PCR) 42 bitsDecoding 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

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

DTS e PTS

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

Frame Reordering

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

Systems: Gerarchia della

Sintassi Mpeg_transport_streamTransport Packet

• Adaptation_Field• PES_packet• program_association

section• CA_section• TS_program_map_sectio

n• Private_section

PID Packet Identifier (cosa c’è nel pacchetto)

(opz.) Timestamp(PCR), Splicing, Priorità

StreamID(V/A/DSM), Crypt, PTS, DTS

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

PES (Packetized Elementary Stream)

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

TSP Format

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

Program Maps

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

Program Specific Information (PSI)

Corrispondenza tra Programma e pacchetto (PSI-PID)

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

DSM-CCUser-Network Session protocolUser-User Directory, Stream control, File accessInteractive and broadcast downloadBroadcast object carouselSwitched digital broadcast channel change protocol

Video on DemandData BroadcastBroadband Internet

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

Modello di riferimento per la

Trasmissione

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

MPEG-4 InterattivitàVLBR Video - Migliore compressione3D scenesNon-rectangular elementsRobustezzaScalabilitàEditingRandom-AccessHybrid, Natural and Synthetic Data coding

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

MPEG-7Descrizione standardizzata di diversi

tipi di contenuto multimediale.Associazione col contenuto stesso

per permettere una veloce ed efficiente ricerca su una grande quantità di dati