MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e...

54
L. A. Grieco DEE Telematics Lab. 1 MPEG-4 Sistemi per la Codifica e la Trasmissione di Segnali Multimediali Laurea Spec. Ing. TLC (INF)

Transcript of MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e...

Page 1: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

L. A. Grieco

DEE – Telematics Lab. 1

MPEG-4

Sistemi per la Codifica e la Trasmissione di Segnali Multimediali

Laurea Spec. Ing. TLC (INF)

Page 2: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

2

MPEG-4: Obiettivi

• Interattività basata sui contenuti

– Accesso ed organizzazione dei dati

– Manipolazione ed editing

– Gestione di scene ibride Naturali e Sintetizzate

– Accesso random con risoluzione temporale fine

• Efficienza di Compressione

• Accesso Universale

– Robustezza agli errori per abilitare la trasmissione su

reti ad affidabilità limitata

– Codifica a qualità adattativa con granularità fine

Page 3: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

3

MPEG-4: Applicazioni

• Multimedia Streaming over the Internet

• Mobile communications

• Digital multimedia broadcast

• Content-based storage & retrival

• Interactive media distributed on optical storage

• Real-time communications

• Studio & television post-production

• Surveillance

• Virtual meetings

• Infotainment

Page 4: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

4

MPEG-4: composizione della scena

Scene

Definition

audio

Precoded

objects

Video

Foregroud

Video

Background

La scena è creata integrando

opportunamente oggetti tra

loro legati da correlazioni

spazio-temporali

Composition

Encoder

Obj 1

Encoder

Obj 2

Encoder

Obj N

Encoder

La composizione della scena

ed i singoli oggetti sono

codificati indipendentemente

l’uno dall’altro

Multiplexing

&

Syncronization

Output

Stream

Page 5: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

5

MPEG 4: Riproduzione della scena

Demultiplexing

Composition

Decoder

Obj 1

Decoder

Obj 2

Decoder

Obj N

Decoder

Co

mp

osit

or

audio

video

Page 6: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

6

Architettura di un terminale MPEG-4

Transmission/Storage Medium

Delivery Layer

Multiplexed Stream

Sync Layer

SL-Packetized Stream

Compression Layer

Elementary Stream

Composition & Rendering

Objects & Scene Description

User Interaction

Page 7: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

7

Architettura di un terminale MPEG-4: i layer

• Transmission/Storage Medium: dispositivi di

memorizzazione di massa o rete di TLC da cui i

contenuti multimediali sono letti

• Delivery Layer: stack protocollare impiegato per

accedere al Transmission/Storage Medium

• Sync Layer: Sincronizza e frammenta in

pacchetti gli stream elementari

• Compression Layer: Decodifica gli stream

• Composition & Rendering: Sintetizza la scena

Page 8: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

8

Architettura di un terminale MPEG-4: gli stream

• Multiplexed stream: per ogni stack protocollare

impiegato dal delivery layer esiste un

multiplexed stream

• Elementary Stream: per ogni oggetto della

scena è presente un elementary stream

• SL-Packetized Stream: si ottengono

sincronizzando e frammentando in pacchetti gli

elementary stream

Page 9: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

9

MPEG-4: Descrizione degli Oggetti e

Sincronizzazione

• Una presentazione MPEG-4 consta di molteplici oggetti

audio/video trasportati attraverso un certo numero di

stream audio/video

• Tutti i componenti di una presentazione sono accessibili

tramite per mezzo di Object Descriptor (OD)

• Gli OD specificano come porre in relazione stream e

oggetti multimediali

• Gli OD sono tra loro posti in relazione mutua tramite una

scene description (rappresentata tramite Binary Format for

MPEG-4 Scenes, BIFS)

• La scene description trasporta informazioni circa la

dislocazione spazio-temporale dei singoli oggetti

Page 10: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

10

OD e Scene Description: Esempio

Audio

Source Object

DescriptorScene

Description

Page 11: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

11

Scene Description

• E’ una descrizione gerarchica della scena (scene tree)

• Le foglie rappresentano gli oggetti visibili/udibili

• La composizione dei vari oggetti nella scena avviene

mediante opportune diramazioni (grouping node)

• Le proprietà di ciascuna foglia si ottengono accumulando

le proprietà dei nodi di livello più elevato attraversati nel

percorso dal root ad essa

Page 12: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

12

Scene Description: esempio

Group (root)

MovieSound Transform

Text

Tipici Nodi di Raggruppamento

• Group: e’ un semplice

contenitore

• Transform(2D): Definisce un

sistema di coordinate 3D(2D) per

i nodi figli, relativo al sistema di

coordinate ereditato dal nodo

padre

• OrderedGroup: Stabilisce

l’ordine di rappresentazione dei

nodi figli, prescindendo dalla loro

posizione nella scena

Page 13: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

13

MPEG-J: MPEG-4 & Java

• I terminali adibiti alla rappresentazione di scene MPEG-4

possono avere risorse molto differenti in termini di banda

e capacità computazionale

• MPEG-J ha come paradigma di riferimento il create once

run everywhere

• Con MPEG-J è possibile modificare la presentazione in

funzione delle risorse computazionali disponibili del

client

• MPEG-J fornisce un application engine che affianca il

presentation engine

Page 14: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

14

Terminale MPEG-J

MPEG-J Application

java.lang java.io java.util MPEG-J APIs

JVM

Presentation Engine

Execution Engine

Application Engine

BIFS, audio, visual …

Page 15: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

15

MPEG-J

• Presentation Engine: interpreta la BIFS e compone la presentazione

• Execution Engine: decomprime gli stream audio/video

• Application Engine: consente all’applicazione MPEG-J di controllare presentation e execution engine, es. in caso di risorse insufficienti: – si possono rappresentare gli oggetti meno importanti

con una descrizione testuale;

– Si possono riprodurre con più bassa qualità alcuni oggetti;

– Nel caso di applicazioni multimediali di e-learning, la presentazione si adatterà alle risposte fornite dall’utente

Page 16: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

16

MPEG-4 Delivery Framework

• Modello che nasconde ai livelli superiori i dettagli della tecnologia utilizzata per accedere ai contenuti multimediali

• Gioca il ruolo di livello di sessione nel modello ISO/OSI (Delivery Multimedia Integration Framework, DMIF Layer)

• DMIF Layer – gestisce sia la sessione associata alla presentazione

sia i canali associati ad ogni singolo stream

– Abilita la trasmissione di dati e/o comandi

Page 17: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

17

User Plane in un terminale MPEG-4

SL SL SL SL SL

FlexMux FlexMux

Elementary Streams

SL-Packetized Streams

Sync Layer

FlexMux Streams

TCP

IP

UDP

IP

AAL5

ATM

DMIF-Application

Interface (DAI)

Page 18: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

18

DMIF Network Interface

Originating

Application

DAI

DMIF

Filter

Originating

DMIF for

Broadcast

Originating

DMIF for

Local Files

Originating

DMIF for

Remote Srv

Target

DMIF

Target

DMIF

Sig

Map

DNI

Target

App

Target

App

Broadcast

Source

Local

Storage

Network

Sig

Map

Target

DMIF

DAI

Target

App

DNI

Page 19: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

19

FlexMux Tool

• Abilità il multiplexing di molteplici stream

elementari in un unico bitstream

• Soddisfa i seguenti requisiti:

– Basso overhead di multiplexing necessario per non

vanificare gli algoritmi ad alta efficienza di

compressione adottati in MPEG4

– Basso delay di multiplexing per supportare

applicazioni real-time

– Gestione di pacchetti a dimensione variabile

Page 20: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

20

FlexMux Packet: simple mode

Index Length Payload

1 Byte 1 Byte Fino a 253 Byte • In questa modalità, il

pacchetto FlexMux incapsula

un singolo pacchetto

• Index identifica lo stream a

cui appartiene il pacchetto0 -- 237

Page 21: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

21

FlexMux Packet: MuxCode

Index Length Slot 1

1 Byte 1 Byte

• In questa modalità, il pacchetto FlexMux incapsula molteplici pacchetti

• Index identifica gli stream da cui hanno origine i pacchetti concatenati nel

pacchetto FlexMux punta alla MuxCodeTable, in cui sono memorizzati,

in una struttura indicizzata, i dettagli relativi agli stream multiplexati

• Version indica quale MuxCodeTable utilizzare tra quelle definite

• Lo standard MPEG4 non specifica come le MuxCodeTabledevono

essere scambiate tra sender e receiver

240 -- 255

Version

1 Byte

Slot 2 Slot N

Page 22: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

22

FlexMux Tool: temporizzazione

• Le due modalità di funzionamento (simple e mux)

possono essere impiegate in modo congiunto per

multiplexare ulteriormente gli stream

• Il valore di index 239 è utilizzato per inserire byte di

stuffing per ottenere stream a bit rate costante

più semplice gestione degli istanti di trasmissione

• Il valore di index 238 è utilizzato per inserire

informazioni utili alla temporizzazione: reference

clock e bit rate dello strem info utili a stabilire

degli istanti di trasmissione

Page 23: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

23

MPEG-4: Natural Video Coding

• Codifica di sequenze video: motion compensated DCT coding scheme

• Codifica di immagini singole: wavelet transform & zero-tree coding

• Codifica di oggetti di sagoma arbitraria

• Scalable video coding

• Error-resilience coding tools

Page 24: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

25

MPEG-4: Bitstream Gerarchico

Visual Object

Sequence (VS)VS1 VS2 VS2-VSN

Visual Object

(VO)VO1 VO2 VO2-VON

Visual Object

Layer (VOL)VOL1 VOL2 VOL2-VOLN

GOV1 GOV

2

Group Of VOPs

(GOV)

VOP1Visual Object

Plane (VOP) VOP1

Page 25: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

26

MPEG-4: Codifica di Oggetti Rettangolari

• Ogni immagine di una sequenza video è considerata come un singolo VOP rettangolare

• Ogni VOP è codificato con un approccio block-based mediante approcci inter e intra frame

• Motion modes:– 1MV Mode: un vettore di moto per ogni macroblocco 16x16 è

trasmesso;

– 4MV mode: il macroblocco è suddiviso in 4 blocchi 8x8, un vettore di moto per ogni blocco è trasmesso

• New Motion-compensation Tools:– Quarter-pel motion compensation si ottiene inserendo

campioni virtuali interpolati nell’immagine di riferimento

– Global Motion Compensation

– Direct mode in bidirectional prediction un numero minore di bit è necessario per codificare i vettori di moto dei frame B essi sono codificati con riferimento ai vettori di moto dei frame P

Page 26: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

27

Direct Mode in bidirectional motion compensation

P0 B1 B2 P3

Position of the current

MB in B-VOP

Position of the

colocated MB in

backward reference

Forward

Reference VOP

for B1

Backward

Reference VOP

for B1

MVf

MVb

MV

MVf e MVb sono

espressi in funzione di

MV

Riduzione del numero

di bit necessari a

codificare i vettori di

moto

Page 27: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

28

New Texture Coding Tools

DCT Quant.AC/DC

PredictionScan

VLC

f(x,y) F(u,v) QF(u,v) PQF(u,v)

QFS(n)

Quantizzazione

MPEG o H263 Predizione termini

AC e DC dai

macroblocchi

limitrofi

Sono definiti 3 algoritmi di

scansione della matrice

dei coefficienti PQF

Page 28: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

29

MPEG-4 Video Objects: Example

Transparent

MB

Opaque

MB

Boundary

MB

VOP

Boundig Box

Page 29: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

30

Codifica di Oggetti di Sagoma Arbitraria

• Nel caso di VOP non rettangolari è necessario rappresentare la sagoma dell’oggetto

• A tal fine sono utilizzate le alpha mask

• Un’alpha mask definisce il livello di trasparenza di un VOP

• La trasparenza è rappresentata con un 8 bit ed assume valori da 0 (pixel completamente trasparente) a 255 (pixel completamente opaco)

• Per la maschere binare sono ammessi solo i valori 0 e 255 (sono codificate macroblocco per macroblocco)

• Le maschere non binarie sono codificate mediante una maschera binaria e algoritmi di texture encoding

Page 30: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

31

MPEG-4: Scalable Video Coding

• MPEG-4 consente di perseguire due tipi di scalabilità

– Spatial/Temporal/SNR: consente di ottenere un bitrate

inferiore a scapito della risoluzione spazio-temporale o

dell’SNR. La scena è codificata tramite un base layer ed

uno o più enhancement layer il base layer può essere

reso più robusto ad eventuali errori di trasmissione rispetto

all’enhancement layer

– Object-based: la riduzione del bitrate è ottenuta

decodificando solo un sottoinsieme di tutti i possibili

oggetti

Page 31: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

32

MPEG-4: Spatial Scalability

Base Layer DecoderBase Layer

Upsampler

Previous Reconstr.

Enh. Layer VOPs

Vector

Decoding

Enhancement

Layer Motion Comp.

Prediction

Combine

Predictions

Spatial

PredictionTemporal

Prediction

Texture

Decoding+

Reconstructed

Base Layer VOP

Reconstructed

Enhancement Layer

VOP

Page 32: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

33

MPEG-4 Spatial Scalability: relazioni possibili tra

frame dell’enhancement e base layer

I P B B EL

I P P P BL

Temporal Prediction

Spatial Prediction

Page 33: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

34

MPEG-4: Temporal Scalability

VOP number

VOP number0 3 6 9 12

1 2 4 5 7 8 10 11

I P B P I BL

ELI P P B B B B P

Page 34: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

35

(8,1)(5,0)

(0,0)

(2,1)

(0,1)

SNR Fine Granularity Scalability (FGS): (codifica

dei coefficienti DCT dell’enhancement layer)

10 0 6 0 0 3 0 2 2 0 0 2 0 0 1 0

0 X 1 X X 1 X 0 0 X X 1 X X 0 X

Abs. Value

Sign

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0

0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0

MSB

LSB

MSB

LSB

(1,0) (2,0) (1,0) (0,0) (2,1)

Page 35: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

36

MPEG-4: Error-Resilient Coding

• Packet-based periodic resynchronization

• Data Partitioning (DP)

• Reversible variable-length codes (RVLCs)

• Header extension code (HEC)

• New Prediction (NEWPRED)

Page 36: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

37

MPEG-4: Packet-Based Resynchronization (1)

• Ristabilisce la sincronizzazione tra decoder e bitstream

dopo aver rivelato un errore

• Si basa su resynchronization marker

• L’encoder inserisce i marker nel bitstream prima della

trasmissione

• Una volta rivelato un errore, il decoder cerca il

successivo marker per ristabilire la sincronizzazione

• Usualmente è inserito un marker per ogni video packet

(N macroblocchi di un VOP)

Page 37: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

38

MPEG-4: Packet-Based Resynchronization (2)

Resync

pointError

location

Error is

detected

Lost

sync

Resync point

found

Regained

sync

Decode1

2 4

Search

resync point3 Decode 5

Video Bitstream

Discarded Data

Page 38: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

39

MPEG-4: Data Partitioning (DP)

• Organizza il bitstream in gruppi omogenei per

sensibilità agli errori di trasmissione

• Le informazioni contenute nei macroblocchi

sono classificate in due categorie

– High-priority: se corrotte, producono significativa

perdita di qualità nel macroblocco ricostruito

– Low-priority

Page 39: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

40

DP: Bitstream for I-VOP e P-VOP video packet

Resync

Marker

Video Packet

Header

1-st MB

Mode Info6 DC

N-th MB

Mode Info6 DC DCM AC

Resync

Marker

Video Packet

Header

1-st MB

Mode InfoMVs

N-th MB

Mode InfoMVs MM DCT

Nel caso di errori nel bitstream i marker DCM e MM

consentono di non perdere tutta l’informazione contenuta del

video packet

I-VOP video packet

P-VOP video packet

Page 40: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

41

MPEG-4: Reversible variable-length codes

(RVLCs)

• RVLC sono particolari VLC che possono essere

decodificati univocamente sia in direzione

forward sia in direzione backward

• Dopo aver ristabilito la sincronizzazione,

consentono di isolare con maggiore precisione

l’errore con conseguenti ripercussioni sulla

quantità di dati scartati

Page 41: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

42

RLVC: esempio

Resync

pointError

location

Error is

detected

Lost

sync

Resync point

found

Regained

sync

Decode

Forward1

2 4

Search

resync point3Decode

Forward 6

Video Bitstream

5

Decode

Backward

Page 42: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

43

MPEG-4: Header extension code (HEC)

• Duplica porzioni di dati all’interno del bitstream

• E’ molto utile per preservare informazioni vitali

(es. VOP header)

Page 43: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

44

MPEG-4: New Prediction (NEWPRED)

• E’ utilizzata per applicazioni basate su real-time coding

• Riduce gli effetti della propagazione degli errori nel

tempo causata dalla compensazione del moto

• Utilizza un canale in upstream dal decoder all’encoder

(back channell)

• In funzione delle informazioni trasmesse sul back

channell, l’encoder può cambiare il riferimento utilizzato

nell’inter VOP coding

Page 44: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

45

MPEG-4 Visual Texture Coding (still image)

Wavelet

Transform

Quantization &

Zero-tree coding

Entropy

Coding

Input Image

Output

bitstream

Page 45: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

46

Scomposizione in sottobande

LPF

HPF

x

2

2

LPF

HPF

2

2

LPF

HPF

2

2Filtraggio e

sottocampionamento righe

Filtraggio e

sottocampionamento colonne

M

N

M

N/2

M/2

N/2

M

N/2

M/2

N/2

M/2

N/2

M/2

N/2

Page 46: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

47

Alberi di coefficienti

a a1

a2 a3

a11 a12

a13 a14

a111 a112

a113 a114

a121a122

a123 a124

a131a132

a133 a134

a141a142

a143 a144

a31 a32

a33 a34

a21 a22

a23 a24

a311 a312

a313 a314

a321a322

a323 a324

a331a332

a333 a334

a341a342

a343 a344

a211 a212

a213 a214

a221a222

a223 a224

a231a232

a233 a234

a241a242

a243 a244

Page 47: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

48

Embedded Zerotree Wavelet (EZW)

• Con riferimento ad una soglia T, ciascun coefficiente è classificato come:– Significant : se ha modulo maggiore di T

• Significant positive (sp)

• Significant negative (sn)

– Insignificant: se ha modulo minore di T• Zerotree root: se tutti i coefficienti dell’albero da esso generato hanno modulo minore di T (zr)

• Isolated zero: se almeno uno dei coefficienti dell’albero da esso generato ha modulo maggiore di T (iz)

• Sia M il modulo del coefficiente di valore assoluto più elevato, il valore di soglia iniziale è il coefficiente con modulo più elevato sarà contenuto nell’intervallo [T0,2T0)

• E’ un algoritmo che opera in più passi Ad ogni passo la soglia è dimezzata

• Ogni passo consiste di due fasi– Significance map encoding:

• i coefficienti che al passo precedente non sono risultati significativi vengono classificati

• viene aggiornata la lista dei coefficienti significativi

• Ciascun coefficiente significativo è quantizzato con il valore ±1.5T

– Refinement: si calcola la differenza tra i valori reali e quantizzati di ciascun coefficiente della lista e si aggiunge un valore correttivo pari a ±T/4 a seconda che la differenza sia positiva o negativa

• La procedura si ripete sino a quando il massimo numero di bit utilizzabili per la codifica del segnale è stato raggiunto

MT 2log

0 2

Page 48: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

49

EZW: Esempio

26 6 13 10

-7 7 6 4

4 -4 4 -3

2 -2 -2 0

• M=26 T0=16

• 26 sp; 6 zr; -7 zr; 7 zr (8 bit=2 bit/label * 4 label)

• Ls={26} lista dei coefficienti significativi

• Quantizzando 26 si ottiene 24 = 1.5*16

• 26 – 24 >0 si corregge la quantizzazione sommando 4=16/4 il valore quantizzato è

28 (1 bit per segnalare la correzione)

• T1 = 8

• 6 iz; -7 zr; 7 zr; 13 sp; 10 sp; 6 iz; 4 iz (14 bit)

• Ls = {26,13,10}

• I rispettivi valori quantizzati sono {28, 12, 12}

• 26 – 28 <0; 13 – 12 >0; 10 – 12 <0 (3 bit)

• Correggendo le quantizzazioni si ottiene {26, 14, 10} ………

Page 49: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

50

Set Partitioning In Hirarchical Trees (SPIHT)

• SPIHT è un’ottimizzazione dell’algoritmo EZW

• L’ottimizzazione mira a raggruppare i coefficienti

non significativi in misura maggiore rispetto ad

EZW maggiore compressione

Page 50: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

52

JPEG 2000: un po’ di storia ….

• 1986: nascita del il comitato JPEG

• 1993: pubblicazione del primo standard per la compressione di immagini

• 1996: il comitato JPEG avvia lo studio di un nuovo standard per la codifica delle immagini in grado di supportare applicazioni innovative

• 2000: pubblicazione del “core coding system” (Part 1) dello standard JPEG 2000

• 2001: standardizzazione Part 2/3/5

• 2002: standardizzazione Part 4/6

Part 1 Core coding systems Copertura dell’80% delle applicazioni con

algoritmi a minima complessità

Part 2 Extensions Funzionalità avanzate a maggiore

complessità

Part 3 Motion Codifica di sequenze di frame (no motion

estimation)

Part 4 Conformance Testing Test di conformità per i codec

Part 5 Reference SW Implementazione di riferimento

Part 6 Compound image file format File format per document scanning e fax

Page 51: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

53

JPEG 2000 Part 1: Caratteristiche Principali

• Maggiore efficienza di compressione rispetto allo standard JPEG

• Compressione lossy e lossless

• Rappresentazione a molteplici risoluzioni

• Embedded bitstream a supporto di decodifica progressiva e scalabilità SNR

• Tiling: la picture è suddivisa in parti (tile) che vengono elaborate indipendentemente

• Region Of Interest (ROI) coding

• Robustezza agli errori

• Robustezza a molteplici cicli di compressione e decompressione

• Accesso e processing random dello stream dati

• Formato del file più flessibile

Page 52: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

54

Schema di codifica

• Pre-processing

– Partizionamento dell’immagine in tile

– trasformazione (R,G,B) (Y, Cb, Cr): ciascuna componente viene processata indipendentemente

• DWT: trasformata wavelet bidimensionale di tipo integer-to-integer gli errori di arrotondamento non sono ammessi nella codifica lossless

• Quantization: uniforme con dead-zone intorno allo zero di ampiezza doppia

• Codifica Entropica

– ogni sottobanda è suddivisa in codeblock

– Ciascun codeblock è codificato indipendentemente (a spese dell’impossibilità di eliminare ridondanze tra sottobande) ottenendo

• Maggiore robustezza agli errori

• Accesso random

• Rate control

• Maggiore flessibilità nella rappresentazione dei dati

• Bitplane encoding

– i coefficienti quantizzati di ogni codeblock sono organizzati in bitplane scalabilità SNR

– Ciascun bitplane è codificato mediante codifica aritmetica in 3 fasi (Significant propagation, Refinement e Cleanup) creando 3 sub-bitplane scalabilità fine del rate

Pre-processing DWT QuantizationCodifica

Aritmetica

Bit-stream

Organization

Image

Compressed

Image

Page 53: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

55

Sottobande, codeblock e bitplane: un esempio

M. Rabbani and R. Joshi “An Overview of the JPEG 2000 still image compression

standard,” Signal Processing: Image Communication, 17 (2002) 3-48.

Page 54: MPEG-4telematics.poliba.it/images/file/grieco/multimedia/5-MPEG4-JPEG200… · sincronizzando e frammentando in pacchetti gli elementary stream. 9 MPEG-4: Descrizione degli Oggetti

56

Bit-stream

• Ogni immagine è partizionata in– Componenti (una per ciascun colore)

– Tile

– Livelli di risoluzione

– Sottobande

– Layer

– Codeblock

– Precint: insieme di codeblock contigui presi da sottobande alla medesima risoluzione

• Ogni pacchetto contiene i dati relativi ad una specifica partizione dei dati, individuata univocamente dalla quintupletta– # Precint

– # Layer

– # Livello di risoluzione

– # Tile

– # Componente