Sappiamo che le informazioni vengono rappresentate su un calcolatore attraverso l'uso di codici.
Tali codici vengono espressi come sequenze di simboli; ogni simbolo è scelto all'interno di un alfabeto che contiene una scelta di b diversi simboli (cardinalità dell'insieme).
Le sequenze sono poi assunte lunghe N simboli, in modo da poter rappresentare un numero finito di diverse informazioni. Ovviamente la scelta di b e N vincola il numero di informazioni rappresentabili.
Vediamo ora qualche calcolo che occorre fare per capire quanto spazio ci occorre per determinate categorie di informazioni.
Problema opposto: se la cardinalità è b, quanto devono essere lunghe le parole di codice per poter rappresentare un numero n di messaggi?
Basta invertire la formula e si ottiene
Caso particolare: b = 2. Allora le formule restano come sopra:
Notiamo poi che se abbiamo codici composti da varie parti, ciascuna delle quali adotta alfabeti di cardinalità diversa, non dobbiamo fare altro che considerare singolarmente le varie parti e poi fare il prodotto.
I numeri si rappresentano con codici binari. Anche in questo caso, abbiamo un numero finito di numeri rappresentabili.
Quando cerco di rappresentare un numero che non rientra nella gamma rappresentabile, per esempio a seguito di una operazione aritmetica (somma di numeri grandi), si ha una situazione di traboccamento. I bit in eccesso non stanno nelle parole di codice e debordano.
Per questo caso si usa il termine inglese overflow.
Esempio: abbiamo parole di 4 bit:
1 1 0 1 +
0 0 1 1 =
--------
1 0 0 0 0
In questo caso abbiamo overflow perchè il risultato dell'operazione
non si può più rappresentare con 4 bit.
Nel calcolare i valori rappresentabili dobbiamo scrivere il valore massimo e il minimo, non il numero di possibili valori. Quindi, per esempio, il massimo intero senza segno in n bit non vale 2n, ma vale
Adottando questo ragionamento, ricordiamoci che, nelle rappresentazioni in valore e segno e in complemento a due, un bit è dedicato al segno, e quindi i valori rappresentabili sono (grosso modo):
100 256 1000 120
100 -256 1000 -120 -8 0
I dati multimediali sono dati composti, o strutturati, nel senso che sono rappresentati in funzione di dati più semplici.
Ricordiamo che il campionamento va effettuato a una frequenza almeno doppia di quella massima che intendiamo rappresentare. Questo (teorema di Nyquist-Shannon) ci interessa soprattutto nel caso di segnali audio, per sapere, data la massima frequenza utile, quanti campioni al secondo dobbiamo mettere in conto.
A proposito di segnali di natura acustica, ricordiamo che l'audio può essere multicanale, ossia per esempio stereofonico (2) o surround (5.1, 7.1). Dobbiamo quindi considerare, in questi casi, tanti flussi audio indipendenti quanti sono i canali. 5.1 = 6 canali e 7.1 = 8 canali.
Quindi, per esempio, per l'audio stereo dobbiamo fare tutti i calcoli, e alla fine moltiplicare per 2.
Anche nel caso delle immagini siamo in una situazione multicanale, in quanto spesso i singoli pixel contengono i valori relativi a tre canali (o componenti) dell'immagine: rosso, verde e blu (R/G/B).
Ovviamente possiamo memorizzare solo l'intensità luminosa, ossia un unico canale, e ottenere un'immagine che occupa un terzo della memoria.
Per i video, infine, si devono fare le considerazioni che si fanno sulle immagini, ma poi bisogna moltiplicare l'occupazione per il numero di immagini individuali (frame) visualizzate al secondo.
Lo standard televisivo è 25 fps (frame per second) e quello cinematografico 24 fps, ma sono possibili minori valori se si accetta minore qualità.
Una volta calcolato il numero di campioni (nel modo appropriato per il particolare tipo di dato multimediale), occorre sapere quanti bit o byte occupa un singolo campione.Infine, occorre applicare la compressione, ossia dividere l'occupazione ottenuta per un fattore che viene fuori dall'algoritmo di compressione e in realtà non è noto a priori (anche se noi lo diamo negli esercizi).