Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAllegria Genovese Modificato 10 anni fa
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.