La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

CAPIRE MPEG Sebastian Sylwan Polo Didattico e di Ricerca di Crema

Presentazioni simili


Presentazione sul tema: "CAPIRE MPEG Sebastian Sylwan Polo Didattico e di Ricerca di Crema"— Transcript della presentazione:

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

2 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

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

4 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

5 Suddivisione dello Standard

6 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

7 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

8 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

9 Overview

10 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

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

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

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

14 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

15 Capiamo la DCT

16 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

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

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

19 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

20 Motion Estimation

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

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

23 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

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

25 Campionamenti tipici

26 Profili

27 Livelli

28 Riassumendo...

29 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

30 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

31 Sintassi schematizzata

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

33 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

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

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

36 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

37 Systems

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

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

40 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

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

42 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

43 DTS e PTS

44 Frame Reordering

45 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

46 PES (Packetized Elementary Stream)

47 TSP Format

48 Program Maps

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

50 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

51 Modello di riferimento per la Trasmissione

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

53 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

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


Scaricare ppt "CAPIRE MPEG Sebastian Sylwan Polo Didattico e di Ricerca di Crema"

Presentazioni simili


Annunci Google