Un computer riproduce immagini e suoni interpretando numeri secondo una codifica. Per un'immagine quei numeri possono descrivere il colore dei pixel; per l'audio possono rappresentare campioni di un segnale raccolti nel tempo. Il video combina una sequenza di immagini con una scansione temporale e, spesso, una traccia sonora.
Dopo aver parlato di come il computer elabora le informazioni, nel video applico gli stessi principi ai contenuti multimediali. Parto da casi semplici per mostrare come si arriva da una sequenza di bit a ciò che vediamo e ascoltiamo.
Dati e interpretazione
Una sequenza di bit non contiene da sola l'indicazione di che cosa rappresenti. È il formato a stabilire come leggerla: come testo, valori numerici, colori o altre informazioni.
I programmi decodificano il contenuto e coordinano i dispositivi che lo rendono percepibile. Per le immagini intervengono il sistema grafico e lo schermo; per l'audio la catena di riproduzione deve trasformare i dati in un segnale che muova un altoparlante o una cuffia.
Un'immagine in bianco e nero: un bit per pixel
Immaginiamo una griglia nella quale ogni punto possa essere soltanto nero oppure bianco. In questo modello bastano due valori e quindi un bit per descrivere ciascun pixel.
Se la griglia misura 8 × 8 pixel, contiene 64 punti: i soli valori dell'immagine richiedono 64 bit, cioè 8 byte. Un file reale può occupare più spazio perché contiene anche informazioni sul formato, sulle dimensioni e su come leggere i dati.
L'esempio della lampadina accesa o spenta serve a capire la codifica. Non descrive letteralmente il funzionamento di ogni tecnologia di schermo.
Scala di grigi e profondità di colore
Per rappresentare sfumature intermedie servono più valori. Con 8 bit per pixel si possono distinguere 256 livelli: dal nero al bianco, passando per i grigi.
Continuiamo a usare bit; un byte è semplicemente un gruppo di otto bit. Aumentare la profondità significa aumentare il numero di combinazioni disponibili.
| Bit per pixel | Combinazioni possibili |
|---|---|
| 1 | 2 |
| 8 | 256 |
| 16 | 65.536 |
| 24 | 16.777.216 |
Questi numeri descrivono combinazioni codificabili. Il modo in cui vengono interpretate dipende dal formato e dal modello di colore.
RGB: combinare rosso, verde e blu
In una comune rappresentazione RGB a 24 bit, ogni pixel usa tre componenti da 8 bit: rosso, verde e blu. Ciascuna può assumere 256 valori.
Il nero corrisponde a (0, 0, 0) e il bianco a (255, 255, 255) in questo modello. Variando le tre intensità si ottengono le altre combinazioni.
Nel video cito anche ciano, magenta e giallo. È utile distinguerli: RGB descrive una sintesi additiva, legata alla luce; i modelli sottrattivi, come CMY e CMYK, sono usati in altri contesti, tra cui la stampa. Non sono semplicemente nomi diversi per la stessa codifica.
Risoluzione e spazio occupato
La risoluzione in pixel indica quante colonne e righe compongono l'immagine. Non stabilisce da sola la dimensione fisica di un pixel sullo schermo: per quella conta anche la dimensione del pannello e la sua densità.
Per un'immagine RGB non compressa, senza canale alfa e con 8 bit per componente, il calcolo dei soli dati è:
larghezza × altezza × 3 byte
Un'immagine da 1.920 × 1.080 pixel richiede quindi 6.220.800 byte per quei valori, circa 6,22 MB decimali. Un JPEG, un PNG o un altro formato può avere una dimensione diversa, perché entrano in gioco compressione e struttura del file.
Un video è una sequenza organizzata nel tempo
I fotogrammi descrivono le immagini che si susseguono. La frequenza dei fotogrammi indica quante immagini vengono presentate nell'unità di tempo: per esempio 25, 30 o 60 al secondo.
Risoluzione e frequenza sono grandezze diverse. La prima riguarda le dimensioni dell'immagine in pixel; la seconda la sua successione temporale. Non esiste un'unica risoluzione minima valida per qualunque video o sistema televisivo.
I codec possono comprimere sia i singoli fotogrammi sia le relazioni tra fotogrammi. Per questo il peso di un filmato non si ricava soltanto moltiplicando quello di un'immagine non compressa per la durata.
Come si trasforma un suono in numeri
Un microfono trasforma variazioni di pressione in un segnale elettrico. Per rappresentarlo digitalmente si effettuano due operazioni fondamentali: campionamento e quantizzazione.
Il campionamento misura il segnale a intervalli regolari. La frequenza di campionamento indica quante misure vengono effettuate in un secondo. La quantizzazione assegna a ciascuna misura uno dei valori numerici rappresentabili con la profondità scelta.
Sono due aspetti distinti: più campioni descrivono più fittamente il tempo, mentre più bit per campione consentono più livelli di ampiezza. Il risultato dipende anche dal segnale e dalla qualità della catena di acquisizione.
L'esempio degli 8.000 campioni al secondo
Nel video considero un esempio di voce campionata a 8.000 Hz con 8 bit per campione. Per un canale, senza compressione e senza contare altre informazioni, il flusso è:
8.000 campioni/s × 8 bit/campione = 64.000 bit/s
Si tratta di 64 kbit/s, cioè 8.000 byte al secondo. L'intervallo tra due campioni è 125 microsecondi.
È un esempio legato alla telefonia a banda stretta, non una descrizione completa di tutte le frequenze della voce umana. Per un segnale limitato in banda, il criterio di campionamento richiede una frequenza superiore al doppio della massima frequenza da rappresentare; nella pratica servono anche filtri e si devono considerare gli errori di quantizzazione.
Dalla rappresentazione alla riproduzione
Quando ascoltiamo, i campioni vengono decodificati e convertiti in un segnale analogico che il trasduttore rende udibile. Quando guardiamo, i valori dell'immagine guidano la visualizzazione sullo schermo.
La parte affascinante, per me, è la continuità del ragionamento: definiamo una rappresentazione, elaboriamo i dati e li trasformiamo in un risultato percepibile. Immagini, video e musica diventano così esempi concreti di come l'informatica organizzi informazioni molto diverse attraverso regole precise.