Dato multimediale: caratteristiche principali
DEFINIZIONE
Un dato multimediale è una sequenza di bit che deve essere consumato in tempo reale (soft real-time).
PERDITE DI DATI
Le perdite video sono più tollerabili rispetto a quelle audio, poiché il cervello può ricostruire un'informazione visiva persa, mentre è molto più difficile per un'informazione sonora.
- esempio di parola con una lettera mancante → spesso auto-coreggiamo l’errore nella nostra mente
Interrupt
I dati multimediali richiedono una gestione precisa e costante e trasmissione in soft real time. Se la CPU viene interrotta mentre sta elaborando un campione audio o video, si possono verificare:
- Perdita di dati
- Ritardi o "lag
Natura analogica e trasformazione digitale
Il dato multimediale è originariamente analogico (flusso continuo che può assumere infiniti valori), ma deve essere trasformato in forma digitale per poter essere elaborato dai calcolatori. Questo processo, chiamato campionamento, può portare alla perdita di informazioni pk dati multimediali occupano tipicamente molto spazio, ma è possibile trovare compromessi, come nel caso di formati di codifica studiati per comprimere i file multimediali, quindi sacrificare i dati senza perdere eccessivamente la qualità (ad esempio MPEG)
TELEFONO E BANDA
Telefono = il primo sistema di comunicazione multimediale.
Per distribuire più contenuti multimediali è necessaria larga banda di rete ed elevate capacità di trasmissione all'interno del sistema di calcolo (nel volume di dati che passa tra memoria, CPU e disco).
Richiedono quindi grandi capacità di trasferimento, che col tempo sono incrementate con l’evoluzione degli hardware
FUNZIONALITA’ VCR COME I MEDIA TRADIZIONALI
- Devono poter essere usate alla stregua di un media “classico”. Un video su YouTube mi aspetto di poterlo usare esattamente come si usava
un videoregistratore: pausa, avanti, avanti veloce, dietro, ecc. Quindi si deve strutturare non solo il dato ma tutto il sistema per riuscire a farlo con una relativa facilità.
CODIFICA MIRATA A RISPARMIARE SPAZIO
Codifica di un dato multimediale
La codifica consiste nello stabilire un formato digitale per rappresentare informazioni analogiche con sequenze di bit (formato digitale)
La codifica non richiede che tutte le sequenze di bit abbiano la stessa lunghezza
Esempio di codifica: immagine 4x4 pixel
Nel caso specifico dell'immagine 4x4 pixel (16 pixel totali), poniamo il caso in cui si utilizzano 3 colori: bianco, nero e grigio. I pixel vengono codificati nel seguente modo:
- 1 per i pixel bianchi
- 01 per i pixel grigi.
- 00 per i pixel neri.
Codice a Lunghezza Media Uniformemente Minima = codifica di Huffman
- un formato di codifica che produce codice a lunghezza media uniformemente minima, ovvero ottimizzando al massimo lo spazio richiesto
- gli elementi più frequenti hanno codici più corti
- nessun codice deve essere prefisso di un altro
Per rappresentare l'immagine utilizzando il numero minimo di bit, riducendo lo spazio necessario, assegno ad ogni colore una qtà di bit tale che
Vantaggi della codifica
La codifica ha anche altre funzioni, oltre salvare spazio.
- Sicurezza: proteggere i dati multimediali, con tecniche come watermarking o steganografia.
- steganografia: processo usato ad esempio da SKY per nascondere il formato di decodifica dei contenuti finché non viene autorizzato l'accesso, ad esempio pagando l'abbonamento.
- Affidabilità: garantire che il dato sia rappresentato con sufficiente precisione nonostante le informazioni mancanti, causate da perdita di dati
Codifica e compressione: differenze (la codifica è anche per compressione)
È importante distinguere tra codifica e compressione.
La codifica e la compressione sono due passaggi complementari in un processo di gestione dei dati multimediali, risolvono problemi distinti
La codifica e la compressione sono due passaggi complementari in un processo di gestione dei dati multimediali, risolvono problemi distinti
- La codifica ha come obiettivo primario rappresentare un dato in modo strutturato e interpretabile dal sistema
- La compressione ha lo scopo primario di ridurre lo spazio occupato dai dati, eliminando ridondanze o informazioni non essenziali ed è integrato nel processo di codifica
FATTORI CHE INFLUENZANO TOLLERANZA ALLA PERDITA DI DATI (CODIFICA LOSSY)
Quali dati eliminare per la compressione?
il mondo che ci circonda è molto ridondante e questo approccio di codifica scarta informazioni percettivamente inutili, in quanto non rilevanti
Ridondanza spaziale (elimino dati a bassa correlazione) e percezione visiva
Definizione
scarta le informazioni visive di un certo tipo: informazioni sul piano orizzontale, in quanto occupa spazio inutile a cui gli occhi non danno significato
Cosa si intende per correlazione?
CORRELAZIONE = si misura quanto i colori di un pixel siano simili rispetto ai pixel vicini lungo una certa direzione (orizzontale o verticale). Minore è la somiglianza (correlazione) lungo una direzione, maggiore è l’importanza delle informazioni presentate dall’immagine
Secondo la percezione umana
- Alta correlazione Lungo X
- Ad esempio, lungo una riga orizzontale, è comune che aree uniformi di un’immagine (come un cielo o una superficie piatta) abbiano lo stesso colore o tonalità molto simile.
- Però, il cervello umano non percepisce facilmente la ripetizione, pk non aggiunge valore visivo significativo → quindi se la elimino nn li cambia
I colori dei pixel vicini sono simili (ad esempio, due pixel rossi uno accanto all’altro). Questo indica che c’è ridondanza(da eliminare), cioè informazioni che si ripetono.
- Bassa correlazione lungo Y
- Questo accade perché lungo l’asse verticale, nel contesto comune di tutti i giorni, troviamo più variazioni naturali, come:
- Ombre e sfumature: Ad esempio, su una parete o un oggetto curvo.
- Transizioni tra colori diversi: Ad esempio, il bordo tra due aree di colore diverso (come un cielo che incontra il mare).
I colori dei pixel vicini sono molto diversi. Ciò significa che l’immagine contiene informazioni più varie o dettagliate in quella direzione.
Ridondanza temporale (mantengo le parti di frame ad alta correlazione tra i frame consecutivi)
Definizione
Quando i cambiamenti tra i frame vicini sono minimi (ad esempio, uno sfondo statico o un soggetto che si muove poco), molte informazioni risultano ridondanti e possono essere eliminate o compresse senza perdere significativamente la qualità percepita.
Esempio di ridondanza temporale
In uno spezzone di video dove uno sfondo è fisso e un soggetto, come un coniglio, cambia solo espressione, i fotogrammi adiacenti sono molto simili. In questo caso:
- Non è necessario memorizzare ogni fotogramma i. Posso salvare il primo fotogramma (inquadratura 1) e poi memorizzare solo la differenza rispetto ai fotogrammi successivi
- La differenza in questi casi occupa pochissimo spazio, perché la variazione è minima e localizzata (ad esempio, il cambiamento di espressione del coniglio).
Compressione e problemi di codifica
Quando il movimento nel video diventa più rapido o complesso, la compressione può essere più difficile da effettuare, pk il sistema nn fa in tempo, causando sfocature in quanto vengono eliminate troppe informazioni
- esempio: gara di corse
alta e bassa frequenza
La mente umana valorizza maggiormente le informazioni lungo l’asse y pk genericamente caratterizzate da bassa ridondanza. Un altro fattore da considerare è la frequenza
- Alta frequenza
- IMMAGINI: Contorni netti, e variazioni rapide (es. il bordo di un oggetto o una texture complessa).
- SUONO: suoni acuti, come un fischio o il cinguettio degli uccelli.
- Bassa frequenza:
- Le variazioni sono più lente e meno "distinguibili".
- IMMAGINI: Aree omogenee o sfumature graduali (es. il cielo azzurro o una parete uniforme).
- SUONO: suoni gravi, come un rullo di tamburo o il rombo di un motore.
case study
- Nella prima immagine (risoluzione originale), tutti i dettagli sono visibili.
- Nella seconda immagine (risoluzione ridotta), mancano alcuni dettagli, ma non disturba la percezione.
- Nella terza immagine (risoluzione ulteriormente ridotta), i contorni sfumati causano fastidio visivo, perché il cervello fatica a interpretare le forme.
ALTRI Fattori che influenzano la tolleranza alla perdita di informazioni
- Il mezzo di fruizione: Schermi più piccoli (come smartphone) rendono meno percettibili le perdite di informazioni, permettendo una compressione più aggressiva.
- Tipo di perdità: La sensibilità del nostro occhio o del nostro orecchio influisce sulla percezione delle informazioni mancanti.
- un video con audio scarso è precepito meno tollerabile di un video con risoluzione scarsa
Codifica video avanzata: vettori di movimento e frame bidirezionali
vettori di movimento
Oltre al calcolo della differenza tra 2 frame vicini si può usare vettori di movimento: per indicare lo spostamento di un blocco (macro-blocco) da una posizione a un'altra.
Questo approccio aumenta le aree “nere” (informazioni ridondanti tra i frame che quindi riducono il quantitativo di dati da elaborare pk vengono riutilizzati), rendendo la compressione più efficiente.
- nel caso dell’immagine l’informazione ridondante Viene eliminata
- nel caso del video l’informazione ridondante viene riutilizzata, pk calcolo la differenza tra frame consecutivi, se anche uso i vettori di movimento, risparmio ancora di più
Ad esempio, in un video sportivo, il caschetto di un giocatore non scompare e riappare, ma si sposta da una posizione all’altra. Il vettore di movimento descrive questo spostamento, e il macro-blocco viene adattato alla nuova posizione
- Differenze nei contesti: Nei video in diretta (trasmissione live), la compressione è meno efficace rispetto a un video memorizzato, perché c’è meno tempo per elaborare i dati.
GOP STRUTTURA
I frame vengono organizzati in sequenze chiamate GOP (Group Of Pictures), innanzitutto i frame sono classificati in
- Frame indipendenti (I-Frame): Contengono l’intera informazione visiva per un dato fotogramma, compressa usando il metodo dei blocchi 8x8
- Serve come punto di riferimento iniziale ed è codificato indipendentemente..
- Frame predittivi (P-Frame): Contengono solo le variazioni rispetto a un I-Frame o a un altro P-Frame precedente
- Dipende dagli I-frame
- Frame interpolati (B-Frame): Contengono informazioni basate su una predizione bidirezionale (differenze rispetto ai frame precedenti e futuri)
- Dipende da entrambi i frame precedenti e successivi
GOP FUNZIONAMENTO
Un GOP tipico inizia con un I-frame, seguito da B-frame e P-frame. Questo approccio migliora l’efficienza della compressione ma introduce una complessità aggiuntiva:
- Dal punto di vista temporale, i frame sono ordinati in sequenza.
- Dal punto di vista della decodifica, è necessario decodificare prima il P-frame di riferimento per elaborare i B-frame successivi. Ciò richiede un buffer per gestire i frame fuori ordine.
CAPACITA DI PREDIZIONE DEI B-FRAME
- Esempio: Se un’auto scompare temporaneamente dietro un albero, il sistema non deve “dimenticarla, ovvero eliminare i frame associati”. Grazie ai B-frame, può prevedere che l’auto riapparirà nel futuro, utilizzando sia i dati dei frame precedenti che di quelli successivi.
- Predizione bidirezionale: Il B-frame codifica le informazioni mancanti confrontando sia i P-frame che gli I-frame circostanti.
Container e codifica
È importante distinguere tra codifica e container:
- Codifica: Definisce come l’audio o il video viene compresso e rappresentato (es. MPEG, Wavelet).
- Container: Specifica come i dati codificati vengono organizzati in un file (es. .AVI, .MOV). Alcuni container(organizzazione di dati) sono ottimizzati per specifici metodi di codifica, ma in teoria è possibile utilizzare qualsiasi combinazione, anche se non sempre efficiente (es. un video MPEG dentro un file .AVI).
ALTRI PARAMETRI DA CONSIDERARE
- il tipo di file multimediale deve essere adatto al mezzo di fruizione
- un video 4k a colori non lo do in elaborazione ad una tv in bianco e nero
- IN CONCLUSIONE: il cervello filtra le informazioni che raccoglie, ovvero elabora solo quelle più significative e butta tutto il resto, siamo sensibili alle variazioni istantanee. Se dovessimo elaborare tutto impazziremmo
- riconosciamo gli oggetti istintivamente, quindi ricostruiamo mentalmente le informazioni mancanti e associamo istintivamente una funzionalità ad un oggetto basandoci sulla nostra esperienza
MPEG
Definizione e scopo
MPEG (Moving Picture Experts Group) è un'organizzazione col compito di definire standard per la compressione audio e video.
COME AVVIENE LA COMPRESSIONE DEI FRAME DI UN DATO MULTIMEDIALE
Per eliminare localmente le informazioni ridondanti all’interno di un singolo fotogramma:
- Separazione dei colori in formato YUV
- I colori dell'immagine vengono rappresentati nel formato YUV: la componente di luminanza (Y) e due componenti di crominanza (U e V). Questo formato è più efficiente rispetto al classico RGB, poiché sfrutta il fatto che il nostro sistema visivo è più sensibile alla luminanza rispetto al colore.
- Divisione dell'immagine in blocchi 8x8 pixel
- per analizzare e comprimere le informazioni localmente
- matrici 8x8 che rappresentano l'intensità o il colore di quei pixel
- Trasformata a coseno discreta (DCT) → (trasformazione)
- Viene applicato un filtro matematico (DCT) a ciascun blocco per convertire le matrici in frequenze. Questo permette di distinguere i blocchi con informazioni importanti da quelle meno rilevanti
- Linearizzazione della matrice → (array)
- La matrice risultante dalla DCT (8x8) viene trasformata in un array, con i valori più significativi (calcolati dal DCT e posizionati in alto a sinistra) e quelli meno importanti (vicini allo zero) rappresentati in sequenza.
- Compressione dei valori
- I valori vicino a zero possono essere eliminati o compressi molto efficacemente, riducendo notevolmente lo spazio occupato.
Codifica asimmetrica
La compressione MPEG utilizza una codifica asimmetrica
- La codifica (creazione del byte-stream) è un processo complesso e computazionalmente pesante
- perché il video viene ottimizzato per eliminare la maggior quantità possibile di ridondanza.
- La decodifica (riproduzione del video) è invece semplice
Questo approccio è ideale per scenari in cui il contenuto viene codificato una sola volta (ad esempio, un film) ma riprodotto milioni di volte.
MODULARITA
- Lo standard MPEG consente l’evoluzione parallela di codificatori e decodificatori,
- Nuovi codificatori possono diventare più selettivi nel ridurre informazioni ridondanti.
- Nuovi decodificatori possono migliorare la qualità visiva
Il tutto senza necessità di modificare il mezzo di codifica/decodifica
STREAMING
INTRODUZIONE
Cos’è lo Streaming
Lo streaming è un flusso costante e continuo di informazioni
Lo streaming consiste nel consumare dati mentre vengono prodotti, senza aspettare che l'intero contenuto sia disponibile
Il Ruolo della Rete
Lo streaming non richiede necessariamente una rete internet. Il termine "streaming" indica semplicemente il flusso continuo di dati che vengono trasmessi e consumati in tempo reale, indipendentemente dal mezzo utilizzato.
- Ad esempio, quando si riproduce un video da un hard disk su uno schermo, non è richiesto a Internet.
- Allo stesso modo, una webcam che trasmette immagini al monitor lo fa in streaming, senza coinvolgere la rete.
Processo di Registrazione e Riproduzione
REGISTRO UN VIDEO
- codifico
- salvo in storage permanente.
RIPTODUZIONE VIDEO
- lettura dati dallo storage
- elaborazione (decodifica)
- riproduzione
- Le 3 fasi avvengono in catena, ognuno gestisce un frame (si sovrappongono)
- il video deve essere visualizzato a una velocità costante di 20-25 frame al secondo, ma lettura ed elaborazione non sono sempre sincronizzati quindi il flusso di dati riprodotto nn è sempre continuo
PROBLEMATICHE NEL PROCESSO DI RIPRODUZIONE VIDEO
Variazione del Tempo di Elaborazione
L'elaborazione dei dati video non avviene MAI a tempo costante per via di
- presenza di altri processi
- interrupt
Variazione del Tempo di Trasferimento (lettura)
Il tempo di trasferimento dei dati (e quindi la successiva lettura) non è regolare a causa della struttura del file system.
- Nei sistemi Unix, ad esempio, la lettura dei primi blocchi di dati è relativamente veloce
- ma man mano che il file cresce, il sistema deve utilizzare meccanismi quali blocchi d puntatori che puntano ad altri blocchi di puntatori invece di mappare direttamente i blocchi di dati aumentando il tempo di lettura.
- Produttore: Preleva i dati appena disponibili dall’hard disk e li inserisce nel buffer.
- Consumatore: Utilizza un timer per prelevare i dati dal buffer e inviarli al sistema di riproduzione (play out) a intervalli regolari.
- PROCESSO PERIODICO
- Buffer Underrun: Quando il buffer si svuota completamente e non ci sono dati da riprodurre. Il sistema deve compensare mostrando un fermo immagine o una schermata nera, creando una pessima esperienza per l’utente.
- svuota del tutto il buffer per ripartire dal punto corrente della trasmissione live
- rialloca più memoria, creando un buffer più grande per gestire eventuali picchi di dati futuri ed evitare che il problema si ripresenti subito dopo.
- Buffer Overrun: Quando il buffer è pieno e non può accettare nuovi dati, che vengono persi.
- leggo/inserisco dati più velocemente di quando li prelevo/elaboro
- Risorse Limitate: I dispositivi con risorse limitate, come smartphone o tablet, potrebbero non disporre di una memoria sufficiente per gestire un buffer di grandi dimensioni.
- Ritardo nella Fruizione: Se il buffer è molto grande, potrebbe essere necessario troppo tempo per riempirlo prima che la riproduzione inizi.
BUFFERING
Cos’è il Buffering
Il buffering consiste nell’utilizzo di una zona di memoria temporanea, chiamata buffer. Per tollerare un margine di errore tra lettura ed elaborazione
Funzionamento del Sistema Produttore-Consumatore
Il sistema segue il modello “produttore-consumatore”:
Importanza della Dimensione del Buffer
Il corretto dimensionamento del buffer è fondamentale per garantire una riproduzione stabile.
Problemi di un Buffer Troppo Piccolo
Un buffer troppo piccolo si riempie velocemente e viene svuotato altrettanto rapidamente, in particolare se il tempo di elaborazione è più veloce della lettura
SOLUZIONE
Un esempio comune è quando YouTube si blocca mostrando l’icona di caricamento (la "rotella che gira"). Questo indica che il buffer si è svuotato e il sistema sta aspettando che venga riempito nuovamente per riprendere la riproduzione.
Nei contenuti live, il buffer underrun è particolarmente problematico, poiché non c’è la possibilità di riavvolgere o aspettare nuovi dati già trasmessi. In tali casi:
Problemi di un Buffer Troppo Grande
Anche un buffer troppo grande può causare problemi:
- Il file system deve velocizzare il tempo di accesso ai dati e il salto da una posizione ad un altra realizzata per VCR o per cambio video multimediale
- Svuotare il Buffer: Quando si sceglie un punto specifico di un video, il buffer viene svuotato e ricaricato. Questo causa un breve ritardo nel riavvio della riproduzione
- Selezionare il Frame Giusto: I video MPEG usano frame I per iniziare la riproduzione correttamente. Se il sistema ripartisse da un frame P o B, l’immagine apparirebbe distorta, creando un effetto mosaico. Ecco perché la riproduzione non inizia mai esattamente dal punto selezionato, ma dal frame I più vicino.
- Se cambio canale nel bel mezzo della riroduzione di un GOP, prima di cominciare a visualizzare il nuovo canale (ovvero l’avvio di un nuovo GOP per iniziare dal corrispondente frame-I), posso dover aspettare diversi secondi i gruppi GOP sono abbastanza lunghi
VCR SFIDE E REQUISITI
Le funzionalità VCR, come riavvolgimento, avanzamento veloce e salto a un punto specifico comportano una gestione complessa dei dati digitali, poiché il sistema deve:
Esempio Pratico: Cambio Canale su SKY
Quando si cambia canale su SKY, il ritardo nella visualizzazione dipende dal formato MPEG utilizzato. La trasmissione video è organizzata in blocchi chiamati GOP (Group of Pictures).
PROCESSI MULTIMEDIALI
Cosa Sono i Processi Multimediali
I processi multimediali sono processi real-time di tipo periodico.
- soft real-time perché devono rispettare scadenze temporali (deadline), ma occasionali ritardi non interrompono completamente il sistema, anche se possono degradare la qualità dell’esperienza utente.
- periodici, pk devono essere eseguiti a intervalli regolari.
Ad esempio, un lettore video che riproduce 20 frame al secondo ha bisogno di essere schedulato ogni 1/20 di secondo per mantenere la riproduzione fluida.
Esempio di Processi Multimediali
Consideriamo tre processi periodici in un sistema multimediale:
- Processo A: Riproduce l’audio.
- Ha un periodo breve perché l’audio deve essere riprodotto con elevata frequenza
- tempo di elaborazione (burst) è relativamente breve.
- Processo B: Riproduce il video.
- Ha un periodo più lungo rispetto all’audio, quindi frequenza ridotta
- esecuzione è più impegnativa perché la decodifica video richiede più risorse.
- Processo C: Mostra i sottotitoli.
- Ha un periodo lungo
- esecuzione minima, poiché i sottotitoli cambiano meno frequentemente rispetto ai frame audio o video.
In ogni caso c’è il problema della barriera
Condizione di Schedulabilità
verifica se la CPU ah abbastanza tempo per completare tutti i processi entro le loro scadenze.
La formula è:
In sintesi la sommatoria (tasso di utilizzo) deve essere minore o uguale 1 (ovvero al 100% delle capacità del sistema)
Esempi Pratici di Schedulabilità
- Caso 1: Sistema Non Schedulabile
- Operazione F: Richiede 40 giorni per essere completata con un periodo di 30 giorni.
- Tasso di utilizzo = 40/30 = 1,33 (133%).
- Risultato: Non è possibile schedulare il processo, poiché la richiesta supera la capacità della CPU.
- Caso 2: Due Operazioni con Periodi Identici
- Fatturazione F: 20 giorni ogni 30 giorni.
- Stampa P: 15 giorni ogni 30 giorni.
- Tasso di utilizzo totale = (20/30) + (15/30) = 1,17 (117%).
- Risultato: Il sistema non può gestire entrambi i processi, poiché la richiesta totale supera il 100%.
- Caso 3: Due Operazioni con Periodi Diversi
- Fatturazione F: 20 giorni ogni 30 giorni → Tasso di utilizzo = 66%.
- Stampa P: 15 giorni ogni 45 giorni → Tasso di utilizzo = 33%.
- Tasso totale = 66% + 33% = 99%.
- Risultato: Il sistema è schedulabile, poiché il tasso di utilizzo totale è inferiore al 100%.
POLITICA DI SCHEDULAZIONE
RMS (Rate Monotonic Scheduling), che assegna priorità statiche basate sul periodo dei processi, EDS ricalcola le priorità dinamicamente a ogni decisione di schedulazione.
MAPPATURA GOP
Un array di indici punta in ogni cella ad un segmento del disco corrispondente ad un frame-I, che determina l’inizio del GOP corrispondente → allocazione indicizzata avviene grazie ai metadati del file multimediale
Dove stanno i metadati
- nel File System: in uno spazio apposito
- alla fine del File Multimediale
- AVI
- Se l'ultima parte del file viene persa o corrotta, l'intera tabella viene persa, rendendo difficile la riproduzione.
- lungo tutto il file multimediale
- MP4
- Questo rende possibile la riproduzione anche se alcune parti del file vengono danneggiate, mantenendo le funzionalità VCR.
GOP E DISCO
A seconda della dimensione del blocco di disco rispetto alla dimensione di un GOP, esistono due approcci per l’allocazione indicizzata:
- Blocchi disco < Dimensione GOP:
- mappatura GOP
- suddivisione GOP in blocchi minori
- Blocchi disco ≥ Dimensione GOP:
- Frammentazione Interna: Potrebbero rimanere porzioni di spazio inutilizzate all’interno del blocco. Per ridurre questo spreco, è possibile inserire più GOP nello stesso blocco, se lo spazio lo consente.