Nel momento in cui un segnale audio viene campionato, viene convertito in sequenze binarie e dunque può essere considerato come un insieme di dati memorizzabili su un opportuno supporto (hard disc, cloud, CD-ROM). Una volta che disponiamo del segnale audio in formato binario possiamo utilizzare una macchina digitale (per esempio un computer) per operare manipolazioni sui dati. La mole di dati che ci troviamo a manipolare può diventare imponente (ricordiamo che 1 secondo di musica stereo in quaità CD equivale a 172.26 KB di dati [Vedi: Lo standard CD audio]) e dunque uno dei vincoli di cui dobbiamo tenere conto è la potenza di calcolo di cui disponiamo. A volte le operazioni necessitano di essere eseguite in tempo reale[57] come per esempio un modulo digitale che esegue un algoritmo[58] per il calcolo del riverbero sul segnale di ingresso. Vediamo nel dettaglio come vengono manipolati i dati in modo da avere una percezione esatta delle grandezze coinvolte. Per fissare le idee supporremo che l'unità di calcolo centrale (CPU: Central Processing Unit) lavori sui dati a blocchi di 1 secondo; anche se le condizioni di lavoro reali si basano su tempi molto più ristretti, l'unità di misura scelta ci permette di focalizzare con maggiore facilità i diversi aspetti della questione. Se lavoriamo in tempo reale, ciò significa che dobbiamo fornire in uscita un flusso continuo di dati e questo ci impone di eseguire la nostra manipolazione su una mole di dati di 172.26 Kb (equivalenti ad 1 secondo) in un tempo inferiore, o al massimo uguale, ad 1 secondo. Il tempo di elaborazione dipende da due fattori principali:
La potenza di calcolo: dipende dal numero di operazioni elementari al secondo[59] che il processore è in grado di effettuare e da altri fattori come per esempio la quantità di memoria disponibile per le operazioni e il tempo di accesso ai dati della memoria stessa.
La complessità dell'algoritmo: le manipolazioni eseguite sui dati implicano calcoli matematici. Maggiore è la complessità del calcolo (che generalmente deriva dalla maggiore raffinatezza dell'algoritmo), maggiore è il tempo impiegato ad eseguirlo.
Nel caso che stiamo considerando è necessario che il nostro modulo manipoli ogni blocco di dati in un tempo inferiore a 1 secondo in modo tale da non essere mai in ritardo rispetto al flusso di dati che arriva in ingresso.
L'esempio descritto è utile per capire il funzionamento dei moduli digitali ma non è utilizzabile nella realtà in quanto introdurrebbe un ritardo di 1 secondo tra il segnale di ingresso e quello di uscita. Lavorando in tempo reale, tale ritardo sarebbe inaccettabile. In realtà la manipolazione viene eseguita su porzioni di segnali molto più brevi di un secondo in modo tale che il processore esegua il calcolo su una mole di dati relativamente ridotta.
A volte non è necessario lavorare in tempo reale dunque si possono utilizzare macchine con potenza di calcolo inferiore allungando i tempi di elaborazione. In questa modalità, denominata batch la manipolazione viene applicata sull'intera mole di dati e il risultato non è disponibile finché l'elaborazione non è completata.
[57] Lavorare in tempo reale significa ottenere un flusso di dati in uscita alla stessa velocità di quella cui cui i dati in ingresso vengono acquisiti.
[58] Un algoritmo è un procedimento di calcolo finalizzato ad ottenere un determinato risultato a partire da un insieme di condizioni e dati iniziali. Per una dettagliata descrizione degli algoritmi e delle loro implementazioni si rimanda a qualsiasi testo di introduzione all'informatica.
[59] Viene misurata in MHz. Un processore con una velocità di 120 MHz è in grado di eseguire 120 milioni di operazioni elementari al secondo.
La versione online del Corso Audio Multimediale è distribuita con Licenza
Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Italia



























