Telematica Indice 1. 2. 3. 4. Tecniche di Codifica di Segnali Video Percezione visiva TV analogica e digitale Codifica di immagini – Standard JPEG Codifica di flussi video 1. 2. 3. 4. 5. 6. Gruppo Reti TLC [email protected] http://www.telematica.polito.it/ Compensazione del moto MPEG: organizzazione gerarchica dei dati Standard MPEG-1 Standard MPEG-2: scalabilità, profili e livelli Standard MPEG-4: codifica content-based, sprite coding Sincronizzazione: MPEG-2 Systems CODIFICA DI SEGNALI V I D E O - 1 CODIFICA DI SEGNALI V I D E O - 2 Percezione Visiva Colori • L’occhio umano percepisce radiazioni elettromagnetiche la cui lunghezza d’onda ? è compresa tra 250 e 780 nm • Un sorgente che emette radiazioni (luce) a un’unica lunghezza d’onda è monocromatica • La sensibilità dell’occhio varia a seconda della lunghezza d’onda, cioè a parità di energia la radiazione viene percepita come più o meno intensa a seconda di ? • Il colore di un oggetto dipende dalla lunghezza d’onda e dall’energia delle radiazioni luminose che emette o riflette • L’occhio possiede due tipi di recettori: coni e bastoncelli; i primi sono più sensibili alla lunghezza d’onda, gli altri all’energia CODIFICA DI SEGNALI V I D E O - 3 CODIFICA DI SEGNALI V I D E O - 4 Colori (2) Colori (3) • Esistono tre famiglie di coni, maggiormente sensibili a lunghezze d’onda corte (Blu), medie (Verde) e lunghe (Rosso) • Mescolando tre colori (detti “primari”) è possibile riprodurre tutta la gamma di colori percepibile dall’occhio • Esistono varie terne di colori che possono essere usati come come primari • Per quanto detto prima, solitamente si usano Rosso, Verde e Blu • Questa codifica è detta RGB (Red, Green, Blue) Sensibilità normalizzata dei coni (curve bianca) e dei bastoncelli (curva nera) al variare della lunghezza d’onda CODIFICA DI SEGNALI V I D E O - 5 CODIFICA DI SEGNALI V I D E O - 6 Pag. 1 Telematica Definizioni Lightness e Brightness • Intensità: energia irradiata per unità di area • Luminanza: energia irradiata per unità di area pesata da una funzione di sensibilità caratteristica della percezione visiva • Brightness: risposta percettiva alla luminanza di un’area • Lightness: risposta percettiva alla luminanza di un’area relativamente alla luminanza di un’area di riferimento • Intensità e Luminanza sono grandezze oggettive, misurabili con opportuni strumenti • Brightness e Lightness sono soggettive: dipendono da molti fattori (tra cui la luminanza dell’ambiente in cui ci si trova) e variano da persona a persona • La percezione della luminanza è non-lineare: la lightness di una sorgente la cui luminanza è il 18% di quella di una sorgente di riferimento è circa 50% CODIFICA DI SEGNALI V I D E O - 7 CODIFICA DI SEGNALI V I D E O - 8 Luminanza e Crominanza Luminanza e Crominanza (2) • Statisticamente le componenti R, G e B di un colore presentano una forte correlazione; la presenza di ridondanza può essere sfruttata per ridurre la quantità di informazione con cui un colore è rappresentato • Negli standard della TV analogica si usano segnali separati per: • La luminanza e le crominanze sono scarsamente correlate • La luminanza porta le informazioni su lightness e brightness, che definiscono ad esempio i contorni di una figura • L’occhio è particolarmente sensibile a lightness e brightness, quindi l’informazione utile è concentrata principalmente nella luminanza – la luminanza, cioè la rappresentazione di un’immagine usando una scala di grigi – le crominanze, cioè l’informazione sui colori CODIFICA DI SEGNALI V I D E O - 9 CODIFICA DI SEGNALI V I D E O - 10 Codifiche per la TV Analogica Codifiche per la TV Analogica (2) • Lo standard PAL (Phase Alternate Line) utilizza una codifica detta YUV, in cui la componente Y rappresenta la luminanza mentre U e V sono le crominanze • Le componenti YUV possono essere ottenute da quelle RGB tramite una trasformazione lineare: Y = 0.3R + 0.59G + 0.11B U = 0.493 (B – Y) V = 0.877 (R – Y) • Lo standard NTSC (National Television System Commitee) utilizza la codifica YJQ • La trasformazione da RGB a YJQ è ancora lineare ma con coefficienti diversi per J e Q: Y = 0.3R + 0.59G + 0.11B J = 0.74 (R – Y) – 0.27 (B – Y) Q = 0.48 (R – Y) + 0.41 (B – Y) CODIFICA DI SEGNALI V I D E O - 11 CODIFICA DI SEGNALI V I D E O - 12 Pag. 2 Telematica Codifiche per la TV Analogica (3) Standard Televisivi • La TV analogica in bianco e nero utilizza solo il segnale di luminanza, mentre quella a colori decodifica anche le crominanze PAL NTSC 4:3 Aspect Ratio 4:3 625 Numero di linee per frame 525 25 Numero di frame al secondo 29.97 8 MHz Banda di trasmissione 6 MHz CODIFICA DI SEGNALI V I D E O - 13 CODIFICA DI SEGNALI V I D E O - 14 Video Digitale Video Digitale (2) • Lo standard ITU-R 601 definisce un formato digitale per i segnali PAL e NTSC • Per entrambi i tipi di segnali sono previsti 720 campioni per linea; la frequenza di campionamento corrispondente è di circa 13.5 MHz • Le componenti Y, U e V vengono campionate separatamente ma, essendo le crominanze di minore importanza, U e V vengono sottocampionate rispetto a Y con rapporto 4:2:2 o 4:1:1 • Impiegando 8 bit per rappresentare ogni componente di ogni campione, otteniamo un bitrate di (13.5 + 6.75 + 6.75)*8 = 216 Mbit/s • Gli standard per la TV digitale ad alta definizione (HDTV) prevedono che si utilizzino fino a: – 1440 o 1920 campioni per linea – 1152 linee per frame – 60 frame al secondo • Con questi formati il bitrate risultante può facilmente superare 1 Gb/s • La capacità di trasmettere, immagazzinare ed elaborare flussi a questi bitrate non è disponibile al di fuori degli ambienti professionali • Sono quindi necessarie tecniche di compressione che consentano di ridurli notevolmente CODIFICA DI SEGNALI V I D E O - 15 CODIFICA DI SEGNALI V I D E O - 16 Compressione di Flussi Video Tecniche di Codifica per Immagini • I flussi video contengono un elevato grado di ridondanza, che può essere eliminato per ridurne le dimensioni • Ridondanza statistica: • Lossless: – Entropiche: basate sul metodo di Huffman, si usano simboli più corti per sequenze più probabili – Run-Length (RLE): sfrutta la correlazione tra elementi adiacenti; lunghe sequenze di simboli uguali vengono sostituite da una coppia (valore, numero di ripetizioni) – Il formato .GIF ad esempio usa una codifica lossless basata su dizionario (tipo .ZIP) – Spaziale: pixel adiacenti in un frame sono correlati (compressione intra -frame) – Temporale: pixel nella stessa posizione in frame consecutivi sono correlati (compr. inter-frame) • Ridondanza percettiva: legata alle caratteristiche e ai limiti del sistema visivo CODIFICA DI SEGNALI V I D E O - 17 CODIFICA DI SEGNALI V I D E O - 18 Pag. 3 Telematica Tecniche di Codifica per Immagini (2) Tecniche di Codifica per Immagini (3) • Lossy: • Lossy (segue): – Vettoriale: considera un blocco (vettore) di elementi e sceglie da un codebook il vettore campione che lo rappresenta meglio; i blocchi possono essere mono- o bi-dimensionali – Layered: scompone gerarchicamente l’immagine in più livelli; ogni livello migliora la qualità dell’immagine rappresentata da quello precedente. La scomposizione si ottiene tramite campionamento a diverse frequenze o in diverse sottobande – Predittiva: fa ipotesi sulla correlazione di elementi adiacenti, per esempio assumendo che la dinamica della differenza sia minore della dinamica del segnale originario (tipo DPCM) – Trasformazioni: considerano l’immagine in un dominio in cui la ridondanza delle informazioni sia più facilmente evidenziabile; ad esempio la FFT e la DCT mostrano come la maggior parte dell’informazione sia concentrata nelle componenti a bassa frequenza dello spettro • Nella pratica si usano codifiche ibride che impiegano diversi schemi di compressione in cascata per ottenere risultati migliori CODIFICA DI SEGNALI V I D E O - 19 CODIFICA DI SEGNALI V I D E O - 20 Lo Standard JPEG Codifica JPEG • E’ uno standard per la compressione di immagini statiche approvato nel 1992 dal “Joint Photographic Experts Group” dell’ISO • Realizza una codifica “lossy”, sfruttando le caratteristiche della percezione umana • E’ possibile variare il rapporto di compressione a seconda della qualità dell’immagine compressa che si desidera ottenere • L’algoritmo lavora separatamente su luminanza e crominanze (rappresentate in 3 matrici diverse), quindi è necessario effettuare la trasformazione RGB->YUV o RGB->YJQ • Le tre matrici vengono suddivise in blocchi di 8x8 • Ad ogni blocco viene applicata la DCT CODIFICA DI SEGNALI V I D E O - 21 CODIFICA DI SEGNALI V I D E O - 22 Codifica JPEG (2) Codifica JPEG (3) • Le componenti a bassa frequenza contengono la maggior parte dell’informazione utile, pertanto vengono quantizzate in maniera più fine • la componente “continua” (DC) del blocco si trova nell’angolo in alto a sinistra della matrice; spostandosi a destra e verso il basso si trovano le componenti a frequenze via via più alte • La componente DC viene codificata come differenza rispetto alla componente DC del blocco precedente • Molti dei coefficienti delle componenti ad alta frequenza risultano essere nulli a causa della quantizzazione più grossolana • I coefficienti AC vengono codificati con RLE, scandendo la matrice a zig-zag, in modo da allineare i coefficienti nulli delle componenti in alta frequenza • Infine le coppie (valore, numero di ripetizioni) vengono codificate con il metodo di Huffman • La finezza della quantizzazione determina il rapporto di compressione che si riesce a ottenere e il grado di degradazione dell’immagine compressa CODIFICA DI SEGNALI V I D E O - 23 CODIFICA DI SEGNALI V I D E O - 24 Pag. 4 Telematica Esempio Codificatore e Decodificatore Da [1] CODIFICA DI SEGNALI V I D E O - 25 CODIFICA DI SEGNALI V I D E O - 26 Codifica MPEG Compensazione del Moto • Il flusso video è costituito da una sequenza di immagini (frame) • I singoli frame vengono compressi con tecniche simili a quelle usate in JPEG • La correlazione temporale tra i frame viene sfruttata usando codifiche differenziali e compensazione del moto (Motion Compensation) • Il frame N viene suddiviso in blocchi • Per ogni blocco si stima un vettore di moto : si analizzano nel frame (N-1) tutti i blocchi in posizioni adiacenti a quello di interesse e si seleziona quello più simile • Si trasmettono le componenti del vettore di moto e le eventuali “differenze” tra i due blocchi • L’operazione di codifica è molto più onerosa della decodifica CODIFICA DI SEGNALI V I D E O - 27 CODIFICA DI SEGNALI V I D E O - 28 Compensazione del Moto (2) MPEG – Organizzazione dei Dati • I dati sono organizzati in maniera gerarchica su 6 livelli: 1. 2. 3. 4. 5. 6. Da [2] CODIFICA DI SEGNALI V I D E O - 29 Sequence Group of Pictures (GOP) Picture Slice Macroblock Block CODIFICA DI SEGNALI V I D E O - 30 Pag. 5 Telematica Sequenze e GOP MPEG – Organizzazione dei Dati (2) • La Sequence corrisponde al flusso video; per essa sono definite le dimensioni dei frame, il numero di fotogrammi al secondo e il bitrate • All’interno di una sequenza si trovano i GOP, gruppi indipendenti di immagini in ordine contiguo di visualizzazione che possono a loro volta contenere tre tipi di immagini: – I: intra-pictures, – P: inter-frame predicted pictures – B: bi-directional inter-frame predicted pictures CODIFICA DI SEGNALI V I D E O - 31 CODIFICA DI SEGNALI V I D E O - 32 Immagini Immagini (2) • Immagini B: • Immagini I: – Sono codificate senza riferimenti ad altre immagini (non sfruttano ridondanza temporale) – Possono essere usate come riferimento per immagini di tipo P o B – Forniscono punti per l’accesso casuale – Limitano la propagazione degli errori – Sono codificate facendo riferimento a due immagini di tipo I o P passate e future – Non vengono mai usate come riferimento • Un GOP può contenere solo immagini di tipo I, sia di tipo I che P, oppure di tipo I, P e B • Un elevato numero di immagini P e B aumenta il rapporto di compressione ma anche il ritardo di codifica e rende più difficoltoso l’accesso casuale • Immagini P: – Sono codificate facendo riferimento all’immagine passata di tipo I o P più vicina – Possono essere usate come riferimento per immagini di tipo P o B CODIFICA DI SEGNALI V I D E O - 33 CODIFICA DI SEGNALI V I D E O - 34 Immagini (3) Slices • Dato che le immagini B fanno riferimento a immagini future, l’ordine di visualizzazione è diverso da quello di codifica e trasmissione • Esempio: • Le Slice sono porzioni di un’immagine comprendenti un numero intero (variabile) di macroblocchi • Una slice non contiene riferimenti spaziali ad altre slice, quindi può essere decodificata indipendentemente • Vengono utilizzate per la sincronizzazione – Ordine di visualizzazione: I 0 B1 B2 P3 B4 B5 P6 – Dipendenze: • • • • • I0 -> nessuna P 3 -> I0 B 1 e B 2 -> I0 e P3 P 6 -> P3 B 4 e B 5 -> P3 e P6 – Ordine di codifica e trasmissione: I0 P3 B1 B2 P6 B4 B5 CODIFICA DI SEGNALI V I D E O - 35 CODIFICA DI SEGNALI V I D E O - 36 Pag. 6 Telematica Macroblocchi Macroblocchi (2) • Il Macroblock (MB) è l’unità fondamentale utilizzata per la predizione del moto • In MPEG-1 ha dimensione 16x16 • Può essere di tipo: • La scelta del tipo di MB da utilizzare dipende dal tipo di immagine: – tipo I: impiega solo MB di tipo Intra – tipi P e B: possono impiegare MB Intra, Inter e Skipped • Nel caso di immagini B e MB Inter, la predizione può essere: – Skipped: è identico al MB nella stessa posizione dell’immagine di riferimento; non viene né codificato né trasmesso – Inter: viene codificato in maniera differenziale rispetto a un altro MB dell’immagine di riferimento; si trasmettono il vettore di moto, valori delle differenze e livelli di quantizzazione – Intra: viene codificato autonomamente; si trasmettono i valori dei campioni e i livelli di quantizzazione – Backward: usa un vettore di moto riferito a un MB dell’immagine passata – Forward: usa un vettore di moto riferito a un MB dell’immagine futura – Interpolated: usa due vettori di moto, riferiti a un MB dell’immagine passata e a uno di quella futura; la predizione viene fatta sulla media dei due MB CODIFICA DI SEGNALI V I D E O - 37 CODIFICA DI SEGNALI V I D E O - 38 Macroblocchi (3) • Lo standard non specifica come calcolare i vettori di moto e il criterio di scelta del tipo di MB • Solitamente si usano tecniche di tipo block matching: (a) Frame N da codificare – Si cerca il vettore di moto che minimizza l’energia della differenza tra il blocco da codificare e quello di riferimento – Se l’energia della differenza è minore di una soglia prefissata si sceglie un MB di tipo Inter, cioè si trasmettono le differenze – In caso contrario si sceglie un MB di tipo Intra, cioè si trasmette il MB per intero (c) Immagine “differenza” senza motion compensation (tutti i vettori di moto nulli) CODIFICA DI SEGNALI V I D E O - 39 (b) Frame N-1 (con vettori di moto) (c) Immagine “differenza” con motion compensation Blocchi Standard MPEG-1 (1992) • I Blocks sono l’unità fondamentale su cui viene elaborata la ridondanza spaziale • Hanno dimensioni 8x8 e sono rappresentati da una matrice per la luminanza e due per le crominanze • Le crominanze sono sottocampionate 4:1:1, quindi un macroblocco contiene 4 matrici 8x8 di luminanza e 2 di crominanza • La codifica del singolo blocco è la stessa usata in JPEG: trasformazione DCT, quantizzazione, codifica differenziale per la componente DC, codifica RLE ed entropica con scansione a zig -zag per le componenti AC • Concepito per qualità VHS a bitrate fino a 1.5Mbps (simile al bitrate di un CD audio) • Non sono supportate immagini interlacciate • Il “constrained parameter set” (insieme di valori di riferimento per le implementazioni dello standard) di MPEG -1 è: – – – – – – CODIFICA DI SEGNALI V I D E O - 41 Da [2] Pixel per riga = 768 Righe per immagine = 576 Macroblocchi per immagine = 396 Macroblocchi al secondo = 9900 Immagini al secondo = 30 Bitrate = 1.856 Mbit/s CODIFICA DI SEGNALI V I D E O - 42 Pag. 7 Telematica Standard MPEG-2 (1994) Scalabilità del Video • Concepito per la televisione digitale e HDTV, memorizzazione su CD, broadcasting terrestre e satellitare, retrieval interattivo • Caratteristiche salienti: • Il flusso viene scomposto in un layer “base” e un certo numero di layer “enhancement” • Layer successivi migliorano la qualità offerta da quelli precedenti • Un ricevitore può decidere di decodificare solo un certo numero di layer, dipendentemente dalle risorse di cui dispone (display, processore, etc.) • In MPEG la scalabilità può essere SNR, spaziale o temporale, a seconda del criterio di scomposizione adottato • Layer di base possono usufruire di un trattamento migliore (ad esempio alta priorità) da parte del sistema di trasmissione – Qualità video non inferiore a PAL/NTSC – Supporto per immagini interlacciate – Scalabilità del video (possibilità di ridurre progressivamente la qualità dell’immagine in presenza di errori di trasmissione) – Compatibilità con MPEG-1 – Definizione di Profili e Livelli per favorire l’interoperabilità tra implementazioni parziali dello standard CODIFICA DI SEGNALI V I D E O - 43 CODIFICA DI SEGNALI V I D E O - 44 Scalabilità del Video (2) Codifica e Decodifica Scalabile • SNR: il layer base usa una quantizzazione più grossolana per i coefficienti DCT, quelli più alti la raffinano • Spaziale: varia la risoluzione spaziale dell’immagine – ad esempio il layer base sottocampiona e quelli successivi trasmettono le parti mancanti – utile per supportare display di dimensione diversa • Temporale: varia la risoluzione temporale del flusso – ad esempio i layer successivi aumentano il numero di immagini per secondo – concepito anche per visione stereoscopica (un canale destro e uno sinistro per la stessa immagine) Da [2] CODIFICA DI SEGNALI V I D E O - 45 CODIFICA DI SEGNALI V I D E O - 46 Profili e Livelli Profili • Un profilo definisce un insieme di algoritmi supportati in aggiunta a quelli dei profili inferiori • Un livello definisce il range dei parametri (dimensioni dell’immagine, numero di immagini al secondo e bit-rate) supportati • La coppia profilo e livello identifica le funzionalità supportate dal decodificatore • Indicativamente ci si attende che tutti i decoder supportino almeno il profilo MAIN con livello MAIN SPATIAL scalable Tutte le funzionalità del profilo SPATIAL scalable più supporto per: •Codifiche con 3 livelli di scalabilità spaziale e SNR •Codifica dei colori YUV 4:2:2 Tutte le funzionalità del profilo SNR più algoritmi per: •Codifica scalabile spaziale (2 livelli) •Codifica dei colori YUV 4:0:0 SNR scalable Tutte le funzionalità del profilo MAIN più algoritmi per: •Codifica scalabile SNR (2 livelli) •Codifica dei colori YUV 4:2:0 MAIN Algoritmi di codifica non scalabili con supporto per: •Video interlacciato •Accesso casuale •Predizione bi-direzionale (B-pictures) •Codifica dei colori YUV 4:2:0 Tutte le funzionalità del profilo MAIN ma: •Non supporta predizione bi-direzionale •Usa codifica dei colori YUV 4:2:0 CODIFICA DI HIGH SIMPLE CODIFICA DI SEGNALI V I D E O - 47 Pag. 8 SEGNALI V I D E O - 48 Telematica Livelli HIGH Samples/line 1920 HIGH 1440 1440 Lines/frame 1152 Frames/s Bitrate (Mbit/s) Standard MPEG-4 (1998) MAIN • Adotta un approccio “Content Based”, ovvero identifica e codifica separatamente oggetti all’interno del flusso video • Gli obiettivi sono: LOW 720 352 1152 576 288 60 60 30 30 80 60 15 4 – Robustezza in ambienti error-prone (reti wireless, canali congestionati, etc.) – Elevato grado di interattività, con possibilità di manipolare e archiviare i dati in maniera estremamente flessibile – Codifica efficiente di informazioni sia “naturali” che “sintetiche” – Compressione efficiente, con supporto per bitrate anche inferiori a 64 Kb/s CODIFICA DI SEGNALI V I D E O - 49 CODIFICA DI SEGNALI V I D E O - 50 Oggetti Video Oggetti Video (2) • Un oggetto video è sequenza di bitmap di forma qualsiasi, detti “Video Object Planes” • La forma e la posizione dei VOP variano nel tempo • Per ogni oggetto video vengono trasmesse informazioni quali: • Ogni oggetto viene codificato in uno stream diverso • L’utente ha la possibilità di: – Decodificare solo alcuni degli oggetti presenti nel flusso – Aggiungerne di nuovi – Variare i parametri di rappresentazione degli oggetti – Forma – Trasparenza – Coordinate spaziali – Scalamento e rotazione • E’ inoltre possibile fare riferimento a oggetti contenuti in una libreria locale al ricevitore CODIFICA DI SEGNALI V I D E O - 51 CODIFICA DI SEGNALI V I D E O - 52 Oggetti Video (3) Altri Oggetti • Esempi di oggetti audio sono i suoni prodotti dai vari strumenti di un’orchestra o le diverse voci in una conversazione • Oggetti sintetici invece sono ad esempio il testo in sovraimpressione e gli oggetti animati al computer quali volti e figure umane “texture mapped wire-grid” Da [3] CODIFICA DI SEGNALI V I D E O - 53 CODIFICA DI SEGNALI V I D E O - 54 Pag. 9 Telematica Struttura dello Standard Struttura dello Standard (2) • Lo standard prevede il supporto per immagini rettangolari come MPEG-1 e MPEG-2 • “VLBV Core” è una porzione dello standard che si occupa della codifica real -time di flussi: – – – – – • Le rimanenti parti dello standard si preoccupano di come aggiungere le funzionalità content-based ai codificatori e decodificatori VLBV e HBV • Nell’esempio qui riportato un coder VLBV di base viene dotato di funzionalità content-based aggiun gendo un blocco che codifica le forme dei VOP non content-based a bassissimo bitrate (5 – 64 Kb/s) con alta robustezza agli errori a basso ritardo a bassa complessità Base • “HBV Core” invece fornisce le stesse funzionalità ma in contesti in cui il bitrate disponibile è più elevato (alcuni Mb/s) Extended VOP VOP Motion Texture (DCT) Shape Motion Bitstream Texture (DCT) Bitstream Da [2] CODIFICA DI SEGNALI V I D E O - 55 CODIFICA DI SEGNALI V I D E O - 56 Struttura dello Standard (3) Sprite Coding • Lo Sprite Coding è una tecnica che sfrutta la presenza di immagini statiche di grosse dimensioni, ad esempio sfondi o panorami • Si scompone la sequenza in sprite di “foreground” e “background” • Per il foreground si trasmettono in ogni frame tutti i parametri dell’oggetto • Per il background si trasmette una sola volta la bitmap completa e successivamente solo i parametri di movimento della telecamera che lo inquadra 5…64 Kb/s 64 Kb/s … 2 Mb/s Bit Rate HBV Core Additional Content-Based Functionalities VLBV Core Functionalities Da [2] VLBV = Very Low Bitrate Video HBV = High Bitrate Video CODIFICA DI SEGNALI V I D E O - 57 CODIFICA DI SEGNALI V I D E O - 58 Frame 1 Sprite Coding (2) • Nell’esempio che segue, lo sprite di foreground è costituito dal tennista, il background dal campo e dal pubblico • Si trasmette prima il frame 200, che contiene tutte le informazioni sul background • Successivamente si trasmettono i parametri completi del foreground e i parametri di moto del background (traslazione, rotazione, zoom…) Frame 50 Frame 100 Frame 200 Da [3] CODIFICA DI SEGNALI V I D E O - 59 Pag. 10 Telematica Foreground e Background Prestazioni • La tecnologia sprite coding consente di ottenere rapporti di compressione molto alti con buona qualità della sequenza • La necessità di separare foreground e background fa sì che sia facilmente utilizzabile nei database multimediali, dove è possibile fare del processing off-line, e non per il broadcasting in tempo reale Da [3] CODIFICA DI SEGNALI V I D E O - 61 CODIFICA DI SEGNALI V I D E O - 62 Prestazioni (2) Sincronizzazione: MPEG-2 Systems • E’ la porzione dello standard che definisce la sintassi e la semantica del bitstream • Specifica come multiplare più flussi nello stesso bitstream e sincronizzarli durante la decodifica • Il criterio di multiplazione (cioè come intercalare pacchetti provenienti da varie sorgenti) non è specificato • Un Elementary Stream è il flusso codificato prodotto da un singola sorgente video o audio Stessa immagine estratta da una sequenza codificata con MPEG-1 (sx) e con MPEG-4 (dx) a parità di bitrate (1 Mb/s) Da [3] CODIFICA DI SEGNALI V I D E O - 63 CODIFICA DI SEGNALI V I D E O - 64 MPEG-2 Systems (2) Time-stamp • Una volta segmentato in pacchetti viene detto Packetized Elementary Stream (PES) • I PES vengono multiplati in uno stream • Esistono due tipi di stream: Program Stream e Transport Stream • I PES includono dei time-stamp di sincronizzazione negli header: – SCR (System Clock Reference): fornisce il riferimento per la demultiplazione dei PES di un programma – DTS (Decoding Time Stamp): specificano in quale istante deve essere decodificata ogni immagine – PTS (Presentation Time Stamp): specificano in quale istante deve essere visualizzata ogni immagine Da “Broadcast Technology” no.11, Summer 2002 CODIFICA DI SEGNALI V I D E O - 65 CODIFICA DI SEGNALI V I D E O - 66 Pag. 11 Telematica Stream Transport Stream • Program Stream (MPEG-1 e MPEG-2): • Ogni pacchetto dello stream contiene un “Packet ID” (PID) che identifica l’elementary stream a cui appartiene • Il PID 0 è riservato e trasporta le informazioni relative alla “Program Association Table” (PAT) • La PAT associa ogni programma contenuto nello stream ad una “Program Map Table” (PMT), specificando il PID che la trasporta • La PMT elenca tutti i PID degli elementary stream del programma (audio, video, …) – Multipla sorgenti audio e video con una base tempi comune, equivalenti a un programma TV – Concepito per memorizzazione su supporti quali CD e DVD – Usa pacchetti detti PS Packs di dimensioni variabili comprese tra 1 e 64 Kbyte • Transport Stream (solo MPEG-2): – Multipla un certo numero di programmi, ognuno con la sua base tempi – Concepito per broadcasting TV via cavo, satellite, etc. – Usa pacchetti di dimensione fissa e pari a 188 byte CODIFICA DI SEGNALI V I D E O - 67 CODIFICA DI SEGNALI V I D E O - 68 Demultiplazione Organizzazione dei Dati • Quindi il decodificatore, per demultiplare il programma P: – Estrae i pacchetti con PID 0 e ricostruisce la PAT – Nella PAT legge il PID X dei pacchetti contenenti la PMT del programma P – Estrae i pacchetti con PID X e costruisce la PMT del programma P – Estrae tutti i pacchetti aventi uno dei PID elencati nella PMT (Y, Z, etc.) Da “Broadcast Technology” no.11, Summer 2002 CODIFICA DI SEGNALI V I D E O - 69 CODIFICA DI SEGNALI V I D E O - 70 Bibliografia 1. G. K. Wallace, “The JPEG Still Picture Compression Standard” , IEEE Transactions on Consumer Electronics, Vol. 38, No. 1 , Feb. 1992, pp. xviii-xxxiv 2. T . Sikora, “MPEG Digital Video-Coding Standards”, IEEE Signal Processing Magazine, Sept. 1997, pp. 82-100 3. P. Kauff, B. Makai, S. Rauthenberg, U. Golz, J. L. P. De Lameillieure, T . Sikora, “Functional Coding of Video Using a Shape-Adaptive DCT Algorithm and an Object-Based Motion Prediction Toolbox”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 7, No. 1, Feb. 1997, pp. 181-196 4. 5. Color FAQ, http://www.poynton.com/ Home page di L. Chiariglione, http://www.chiariglione.org/ 6. MPEG-2 Tutorial, http://www.bretl.com/mpeghtml/MPEGindex.htm CODIFICA DI SEGNALI V I D E O - 71 Pag. 12