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