next up previous
Next: Terminali non flessibili Up: MSDL-A Previous: MSDL-A

Architettura MPEG-4

Come mostra la figura [*], gli AVO, insieme alle loro relazioni spazio-temporali, sono trasmessi dal codificatore al decodificatore MPEG-4.

Figura: Architettura di un terminale MPEG-4 (Flex_2).

Dal lato del codificatore, gli AVO vengono compressi, protetti dagli errori, multiplati, e infine trasmessi. La trasmissione può avvenire attraverso canali diversi, caratterizzati da differenti QoS (Quality of Service). Dal lato del decodificatore (figura [*]), gli AVO sono demultiplati, corretti dagli errori di trasmissione, decompressi, composti e quindi presentati all'utente, che ha la possibilità di interagire con la presentazione. Le informazioni dell'interazione possono essere trattate localmente, o trasmesse al codificatore.

Figura: Funzionamento di un decodificatore MPEG-4.

Prima che gli AVO possano essere trasmessi, il codificatore e il decodificatore devono scambiarsi le informazioni di configurazione. Il codificatore determina quali classi di tool e algoritmi necessitano al decodificatore per elaborare gli AVO: ogni classe è definita da una struttura dati, accompagnata da codice eseguibile. Se il decodificatore non conosce la definizione di una classe, questa viene scaricata, andando ad aggiungersi alle definizioni già note, che comprendono:

$\Box$
le classi standard, cioè l'insieme minimo di classi definito dallo standard (Standard Class Library)

$\Box$
le classi aggiunte dall'utente (Installed Class Library)

$\Box$
le classi scaricate dalla rete (Downloaded Class Library)

Le definizioni di classi più recenti possono sostituire le definizioni già note: questo meccanismo dà al decodificatore le caratteristiche di flessibilità ed estensibilità desiderate.

Quando un AVO viene trasmesso, è composto da due parti: un'intestazione, che comprende la definizione della classe di cui l'oggetto è istanza, e un corpo, che contiene i dati dell'oggetto. Se l'AVO fa parte di una classe standard, o comunque di una classe già nota al decodificatore, l'intestazione non è necessaria, così come non è necessario trasmette più volte l'intestazione per ogni oggetto che appartiene a una data classe.

La parte di dati è necessaria solo per oggetti ``naturali'', ovvero per immagini digitalizzate o per audio campionato. Gli oggetti ``sintetici'', come simboli, o note musicali, vengono generati dal codificatore tramite primitive grafiche e sonore. Ad esempio, per disegnare un cerchio non è necessario trasmetterne l'immagine punto per punto: basta sapere il centro e il raggio del cerchio, e il terminale provvederà a disegnarlo tramite una primitiva circle(), o simili.

Ogni AVO ha, in generale, un'estensione nelle quattro dimensioni (spazio e tempo), e il modello usato per le coordinate è detto 3D+T. Ogni AVO ha un sistema di coordinate locale, in cui l'oggetto ha una posizione fissa, nello spazio e nel tempo. La collocazione dell'AVO nella scena avviene mediante una trasformazione dal sistema di coordinate locale a quello globale, un compito che viene eseguito durante la fase di composizione. Questo consente di comporre arbitrariamente gli AVO, senza che la codifica del bitstream debba essere cambiata, perché i dati dell'AVO non contengono la posizione assoluta.

Il sistema di coordinate della scena è stabilito in riferimento ad un osservatore ipotetico, la cui posizione, nello spazio e nel tempo, può essere fissa o variabile (nel caso l'utente possa navigare all'interno della scena, come nella realtà virtuale).

Rispetto alla luce e al suono, gli AVO possono essere riflettivi o emissivi: luci e suoni giungono all'osservatore ipotetico direttamente, o tramite riflessione da altri AVO.

Dal lato decoder, un ``Video Compositor'' proietta gli AVO sul frame video (una matrice rettangolare di pixel) della scena, su uno o più piani di proiezione, per una visualizzazione successiva. Se un oggetto si trova al di fuori dello spazio definito dal frame, non viene proiettato. Analogamente, un ``Audio Compositor'' proietta gli AVO sul frame audio (un vettore unidimensionale di campioni) della scena, per una riproduzione successiva (figura [*]). Le sorgenti audio al di fuori della scena vengono attenuate o smorzate del tutto. I due Compositor dovrebbero operare contemporaneamente.

Figura: Composizione di una scena audio-video.

Ogni AVO dovrebbe essere campionato nello spazio e nel tempo secondo il criterio di Nyquist, ma gli AVO sintetici possono anche essere continui. Differenti AVO possono avere differenti risoluzioni nelle quattro dimensioni: è compito del Compositor di comporre gli oggetti sulla medesima scena, con risoluzione comune.

I Video Compositor possono essere 3D o 2.5D. Questi ultimi sono capaci solo di comporre AVO bidimensionali su piani sovrapposti a diverse profondità: questo è un metodo poco oneroso per simulare una tridimensionalità effettiva (figura [*]).

Figura: Video Compositor 2.5D.

Gli AVO sono gerarchici: ogni AVO può essere costituito da altri AVO, ed è detto oggetto ``composito''. Gli AVO atomici sono detti ``primitivi''. Una scena MPEG-4 può quindi essere pensata come una struttura ad albero, la cui radice è la scena stessa, e le foglie sono gli AVO primitivi (figura [*]). Tale struttura non è necessariamente statica, ma può variare al variare della scena. Una simile struttura gerarchica implica che lo stesso bitstream è organizzato gerarchicamente nella multiplazione degli oggetti.

Figura: Struttura logica di una scena.

La composizione della scena è generalmente gerarchica, dalla radice alle foglie, ma ogni oggetto intermedio può essere composto immediatamente sul piano di proiezione, ricavando la nuova trasformazione delle coordinate in base alle trasformazioni definite per gli oggetti genitori. L'aspetto degli oggetti è definito tramite colore e trasparenza (alpha blending).

Dopo la composizione, i frame audio e video sono inviati al sistema di presentazione, dove sono (eventualmente) immagazzinati in un buffer, e quindi presentati all'utente tramite i dispositivi di uscita video (monitor) e audio (altoparlanti). Il sistema di presentazione ha il compito di convertire la risoluzione e il formato cromatico dei frame in quelli usati dai sistemi di riproduzione, il che tipicamente implica uno scalamento delle immagini e una conversione da formato YUV a RGB.

Con questo sistema, la composizione degli AVO è indipendente dalla presentazione, e quindi dall'hardware usato per la riproduzione, e ciò consente un accesso universale, da parte di ogni possibile decodificatore, allo stesso stream decodificato.

Il sistema di presentazione ha anche il compito di rilevare gli eventi generati dall'utente, e di trasmetterli agli appropriati AVO, che potranno reagire alterando se stessi, o trasmettendo informazioni al codificatore attraverso un canale apposito.



Subsections
next up previous
Next: Terminali non flessibili Up: MSDL-A Previous: MSDL-A
Marco Delaurenti
1999-06-25