View
214
Download
0
Category
Preview:
Citation preview
CAPIRE MPEGSebastian Sylwan
seba@dsi.unimi.it
Polo Didattico e di Ricerca di Crema24/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 ?
MPEG
Motion
Pictures
Expert
Group
MPEG-1 1988-90
MPEG-2 1990-94 MPEG-4 1998MPEG-7 2000 (?)
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
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
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
MPEG-2 VideoParti componenti lo standard:
Definizioni di baseSintassi del segnale Video MPEG-2Descrizione SemanticaProcesso di decodificaEstensioni e ScalabilitàProfili e LivelliAnnessi
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
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 coloreLivello 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
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.
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.
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
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
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
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.
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 PicturePredictive 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 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.
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
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
Campionamenti tipici
Profili
Livelli
Riassumendo...
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
}
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
Sintassi schematizzata
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
AudioLayers:
1 1:4 2 1:6 3 1:10
Sfrutto: Psico
acustica
Mediante: Sub-band
Masking
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)
Costruiamo l’ Elementary
StreamApplichiamo le regole sintattiche per costruire uno stream
elementare che contiene tutti gli
elementi del Video compresso
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
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 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)
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
DTS e PTS
Frame Reordering
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
PES (Packetized Elementary Stream)
TSP Format
Program Maps
Program Specific Information (PSI)
Corrispondenza tra Programma e pacchetto (PSI-PID)
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
Modello di riferimento per la
Trasmissione
MPEG-4 InterattivitàVLBR Video - Migliore compressione3D scenesNon-rectangular elementsRobustezzaScalabilitàEditingRandom-AccessHybrid, Natural and Synthetic Data coding
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
…to be continuedC’è ancora moltissimo da dire…
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
Recommended