Gli algoritmi di compressione servono a ridurre le dimensioni di un file mantenendo tuttavia una qualità accettabile. Ci riescono eliminando le informazioni superflue per i nostri organi di senso, come la vista e l’udito. Quella degli algoritmi di compressione è una sottile arte da studiare e capire. Se sei uno studente o un appassionato di tecnologia, e vorresti comprendere come la musica e lo streaming video utilizzano tali algoritmi, be’, prosegui la lettura!
Se ancora non lo hai fatto, ti invitiamo a leggere un altro articolo che spiega in generale i meccanismi degli algoritmi di compressione. La sua lettura potrebbe essere utile per comprendere appieno il funzionamento degli algoritmi nella musica e nello streaming video.
Bene, iniziamo!
Alcune cose da sapere sugli algoritmi di compressione
Esistono due tipi di compressione: con perdita e senza perdita. La compressione con perdita elimina alcune informazioni che non sono essenziali per la percezione umana, ma ottiene una riduzione maggiore. La compressione senza perdita conserva tutte le informazioni originali, ma ottiene in cambio una riduzione minore. Per l’utente è preferibile il miglior compromesso possibile tra qualità di un file e il suo peso.
Gli algoritmi di compressione si basano su principi matematici e psicoacustici, e sfruttano le proprietà dei segnali audio e video. Ti starai chiedendo: “quali sono le proprietà dei segnali audio e video? Sono parecchio confuso/a”. In effetti è meglio tu sappia quali siano, perché in un secondo momento ti verrà più facile capire come funzionano gli algoritmi di compressione nello streaming video e nella musica.
Immagina che un segnale audio o video sia come un disegno fatto da tanti puntini colorati. Ogni puntino ha una posizione e un colore. Più puntini ci sono, più il disegno è grande e dettagliato. Ma se il disegno è troppo grande, ci vuole molto spazio per conservarlo e molto tempo per mostrarlo agli altri. Gli algoritmi di compressione sono come dei trucchi per fare il disegno più piccolo, ma senza rovinarlo troppo. Tra i trucchi annoveriamo:
- Usare meno puntini per fare il disegno, ma scegliere quelli più importanti. Per esempio, se il disegno è di un cielo azzurro, non serve usare tanti puntini di azzurro diverso, basta usarne uno solo per ogni zona. Questo si chiama quantizzazione.
- Usare dei simboli per rappresentare i puntini che si ripetono. Per esempio, se il disegno ha una fila di 10 puntini rossi, invece di scrivere rosso-rosso-rosso-rosso-rosso-rosso-rosso-rosso-rosso-rosso, si può scrivere 10xrosso. Questo si chiama codifica entropica.
- Usare dei modelli per prevedere come saranno i puntini successivi. Per esempio, se il disegno è di una strada dritta, si può prevedere che i puntini saranno allineati in una certa direzione. Invece di scrivere la posizione e il colore di ogni puntino, si può scrivere solo la differenza tra il modello e il disegno reale. Prende il nome di predizione.
Questi trucchi permettono di fare il disegno più piccolo, ma a volte lo cambiano un po’. Se usiamo troppi trucchi o li usiamo male, il disegno può rovinarsi o diventare irriconoscibile. Dobbiamo quindi trovare un equilibrio tra la grandezza e la qualità del disegno. Ecco, lo stesso vale sia per lo streaming video che per la musica.
L’algoritmo di compressione nello streaming video: come funziona
Immagina di aver girato un film e Netflix accetta di metterlo in streaming sulla sua piattaforma. C’è solo un problema: il file pesa parecchio. Più un film pesa, più occupa banda su internet, perciò non solo ci starebbe più tempo a caricare, ma l’utente sprecherebbe una vigorosa quantità di dati. Come risolvere il problema? Ecco che qui entra in gioco l’algoritmo di compressione.
L’algoritmo di compressione nello streaming video è un modo per inviare un video su internet senza occupare troppa banda. Il video è diviso in tanti pezzetti chiamati fotogrammi, che sono le immagini che si susseguono per creare il movimento. Ogni fotogramma viene compresso con un algoritmo che cerca di eliminare le informazioni che non servono o che si ripetono. Spesso sono informazioni che il nostro occhio è incapace di notare. Per esempio, se il video mostra una persona che parla, non serve mandare ogni volta tutto lo sfondo, basta mandare solo la parte che cambia, cioè la bocca e gli occhi della persona. Questo si chiama predizione inter-frame. Oppure, se il video mostra un cielo azzurro, non serve mandare tutti i toni di azzurro, basta mandarne uno solo e dire quante volte si ripete. Si tratta della quantizzazione nominata in precedenza con l’esempio dei puntini.
Sono disponibili diversi algoritmi di compressione per lo streaming video, ma uno dei più usati è indubbiamente l’H.264. Questo algoritmo usa dei trucchi matematici per trasformare i pixel del video in numeri più piccoli e facili da mandare. Usa anche dei modelli predittivi per prevedere come saranno i fotogrammi successivi e manda solo le differenze. In questo modo, riesce a ridurre molto le dimensioni del video senza perdere troppa qualità. Bisogna specificare che ci sono anche altri algoritmi più nuovi e più efficienti, come l’H.265 o il VP92. Questi gioielli matematici riescono a comprimere ancora di più il video e a supportare risoluzioni più alte, come il 4K. C’è da dire che non tutti i dispositivi li supportano.
Nei prossimi anni saranno disponibili algoritmi sempre più sofisticati, in grado di ridurre ulteriormente le dimensioni di un file video senza sacrificare la qualità dello streaming.
L’algoritmo di compressione nella musica: come funziona
In realtà il discorso è simile anche con la musica. L’algoritmo di compressione cerca di ridurre le dimensioni di un file audio, mantenendo la qualità del suono. Il file audio viene diviso in tanti pezzetti chiamati campioni, che sono i valori della pressione sonora misurati a intervalli regolari. Ogni campione è compresso con un algoritmo che cerca di eliminare le informazioni che non servono o che si ripetono, insomma informazioni indifferenti al nostro udito. Ad esempio, nel caso in cui il documento audio contenga un suono elementare, non è necessario inviare l’intero insieme di campioni, ma è sufficiente trasmettere la frequenza e l’intensità del suono. Tale approccio è denominato codifica parametrica. Allo stesso modo, nel caso in cui il file audio contenga frequenze inudibili all’orecchio umano o sovrapposte da suoni più intensi, è possibile eliminarle senza compromettere significativamente la qualità. Questo principio è noto come psicoacustica.
Anche nel caso della musica, esistono diversi algoritmi di compressione. Tuttavia, il più utilizzato è il formato MP3, usato per la musica digitale e lo streaming audio su internet, come nel caso di Spotify. Questo algoritmo usa una trasformazione matematica per dividere il file audio in sottobande di frequenza e applicare una quantizzazione scalare. Il formato MP3 elimina le frequenze che non sono udibili dall’orecchio umano o che sono mascherate da altri suoni più forti.
I formati AAC e OGG sono algoritmi più nuovi, i quali permettono di comprimere ulteriormente il file audio, supportando parametri audio di qualità, come il surround e lo stereo 3D.
Alcune case discografiche usano formati senza perdita, come il FLAC o il WAV, per offrire una qualità elevata ai clienti più esigenti. Altre case discografiche invece usano formati con perdita, come l’MP3 o l’AAC2, per raggiungere un pubblico più ampio e ridurre i costi di distribuzione. Altre ancora fanno uso di formati protetti da DRM (Digital Rights Management), come il WMA o il M4P, per prevenire la pirateria e controllare l’uso della musica. Insomma dipende dalle esigenze dei clienti e delle case discografiche, non esiste una scelta univoca.
In ogni caso, l’MP3 risulta essere il formato più popolare per ovvie ragioni: un peso minore e una buona qualità del suono.
La sottile arte degli algoritmi di compressione è in continua evoluzione, grazie allo sviluppo di nuove tecnologie e al mutamento del mercato. Trattasi di una sfida tecnologica e artistica che richiede un equilibrio tra efficienza e qualità. La compressione dei dati è anche un’opportunità per creare nuove forme di espressione e comunicazione che sfruttino le potenzialità dell’audio e del video digitale. Ed è una sfida anche per i videogame in streaming. Lo streaming gaming consiste nel trasmettere in tempo reale il contenuto di un videogioco da un server remoto a un dispositivo locale. Il dispositivo locale riceve il flusso video compresso e lo decodifica per mostrare le immagini sullo schermo, mentre invia al server i comandi dell’utente tramite il controller o il touchscreen.
Insomma, la compressione dei dati è fondamentale per la trasmissione e archiviazione di dati, qualunque sia il contenuto.
Se ti è piaciuto questo articolo, lo staff di Inline Style ti invita a condividere il sapere tecnologico. Ci aiuti a crescere e a fare informazione. Grazie e alla prossima!
COMMENTI