Lo standard AES3 - Parte seconda

Nel numero scorso abbiamo presentato la forma del pacchetto di bit che rappresenta un campione in un segnale audio digitale...

di Stefano Cantadori


Nel numero scorso abbiamo presentato la forma del pacchetto di bit che rappresenta un campione in un segnale audio digitale. Ora analizzeremo con maggiore dettaglio le varie parti di questo pacchetto, e vedremo come è composta la trasmissione vera e propria.

Il preambolo
Al ricevitore AES arriva una serie di impulsi quadri, se non fosse per il preambolo non saprebbe da dove cominciare a contare. Mica può mettersi lì a casaccio, la serie di uni e zeri non avrebbe alcun senso. Per cui il preambolo annuncia che dietro di sé seguirà una serie di bit utili, tutti incasellati al loro posto.
Il preambolo, per farsi riconoscere, ha una struttura diversa da quella degli altri bit ed è la parte più robusta del segnale. All'interno del preambolo, infatti, ci sono delle parti (in particolare la prima) che non sono costituite da due pulsi unitari bensì da tre. È il “pulso quadro” più lungo di tutti.
Al preambolo sono dedicati i primi quattro time slot. Non si tratta di dati audio, servono solo per sincronizzare il ricevitore sul flusso di dati provenienti dalla sorgente. Il ricevitore riconosce il preambolo, in cui il primo impulso dura più degli altri, si aggancia, conta i trentadue bit estraendo i dati che servono, poi riconosce l'altro preambolo, conta trentadue e poi altro preambolo e così via. Insomma, si sincronizza e non molla più la presa.
Quanto sopra ci dice che il segnale AES3 è “self-clocking”, ovvero porta con sé le informazioni di clock e quanto serve per sincronizzare l'audio e i dati di due o più macchine digitali, senza dover collegare un altro cavo con le informazioni di sync.
Dal momento che il preambolo è caratterizzato da segnali che durano tre pulsi unitari che però hanno a disposizione quattro time slots, cioè otto pulsi unitari, si possono creare preamboli con pattern diversi. Voilà, di preamboli non ne avremo uno, non ne avremo neanche due, signori mi voglio rovinare, di preamboli ne metto tre. Il primo preambolo è quello del canale 1, cioè in genere canale sinistro di una coppia stereo. Si chiama X. Quello che annuncia il canale destro si chiama “Y”. Il terzo, con la “Z” di Zorro, riannuncia il canale sinistro e decreta l'inizio della raccolta di status bit che, come vedremo, vengono organizzati in “blocchi” ed hanno la loro utilità.

Fig 1: La forma dei diversi tipi di preambolo.

Frame e sub frame
Una sequenza di 32 bit, o time slots, viene chiamata sub frame. Un sub frame fa un canale. Il sub frame che lo segue fa l'altro. Due sub frame fanno un frame. Tre civette sul comò.
Per comodità, riporto qui una figura già pubblicata nel numero scorso con la struttura del sub frame.

Fig 2: Un sub frame AES3: 32 time slots con 24 bit di dati audio.

Il pacchetto di bit che rappresenta il sample del canale sinistro e il sample del canale destro (insieme ai bit amministrativi e alle informazioni di sincrono) costituisce un frame. Un frame perciò contiene 64 bit.
I frames sono trasmessi alla cadenza del sample rate: 48.000 volte al secondo, 96.000 volte al secondo e così via.


I bit amministrativi |V|U|C|P|
Il bit |V| - Validità
In origine avrebbe dovuto assegnare una sorta di qualificazione dei dati audio. Ad esempio “dati non adatti alla conversione in audio analogico”. Ma non è detto. In alcuni casi si attiva in presenza di alcuni errori, un comportamento che si ha con i CD player, ad esempio. C'è molta confusione sull'uso di questo bit e se il segnale è accompagnato dalla marcatura di “invalido” non si sa bene come dovrebbe reagire un ricevitore AES.
Buffamente, anche i dati dei formati compressi, MPEG, DTS, Dolby AC3 e vari altri, vengono flaggati come dati “non audio”. In realtà si evita così che vengano interpretati come lineari PCM: ne risulterebbe un rumoroso risultato.
Il bit |U| - User bit
User bit. Un costruttore di lanciamissili audio potrebbe decidere di trasmettere una combinazione di user bit per autorizzare il lancio. Se ne fa poco uso nel pro. Nel consumer la normativa è descritta dalle IEC60958 3. Lo user bit è trasmesso in pacchetti che portano informazioni sul materiale sonoro e su come preservare lo user bit nel passaggio fra varie macchine:
    Classe 1: dispositivi che generano i dati, ad esempio i CD player o i DAT quando esistevano.
    Classe 2: individua dispositivi che sono trasparenti agli user bit o che non li generano, tipo sound processor.
    Classe 3: trasparenti agli user data ma con eccezioni, vedi mixer, sample rate converter, campionatori.
Nel pro, si possono annidare informazioni “user reserved” generiche anche nel Channel Status Bit Block, il blocco di 192 bit organizzati in 24 bytes di cui discorreremo tra breve. Lo User bit vero e proprio può lavorare secondo lo standard IEC60958 3 di cui sopra oppure con una simile trasmissione a pacchetto ma regolata dalle norme AES18.
Quando arriva la stringa AES al ricevitore, nelle informazioni Channel Status bit ricavate da |C| sono contenute le indicazioni su come interpretare lo User bit |U|, che sarà secondo le IEC o l'AES18 o altrimenti.

Il bit |C| - Channel status
Lo status bit “C” reca con sé molte informazioni.
Queste sono incasellate in blocchi di 192 frames. Anzi, per essere più precisi, ogni sub frame ha il proprio status bit C, per cui ogni sub frame ha il suo blocco di 192 status bit. Scatta il preambolo Z ed ecco che per ogni sub frame estraggo il valore di C e lo organizzo in bytes (un byte contiene 8 bit).
24 di questi bytes, organizzati in tavole, costituiscono il blocco di 192 bit di cui si cianciava pocanzi. È grazie agli status bit che sappiamo, ad esempio, se i dati che ci arrivano possono essere decodificati come audio PCM lineare e se si tratta di professionale o consumer. Alcuni dati settano il copyright, altri le informazioni sull'enfasi (anche per i dati si pompano gli acuti) ecc.
I due formati, AES e S/PDIF, hanno in comune il significato dei primi due status bit; gli altri 190 sono completamenti differenti. Ad esempio nell'AES gli status bit da 8 a 11 determinano il Channel Mode: un valore 0001 indica due canali. Se invece la stringa è monofonica si annuncia con 0010. Se si trasmette in Single Channel Double Sample Rate - SCDSR - potremmo avere a che fare con un segnale mono qualsiasi oppure con uno dei due canali di un segnale stereo. In questo caso ci interesserà sapere se si tratta del canale sinistro (1000) oppure del destro (1001). Se ti serve un canale di scorta e il tuo macchinario è progettato per gestirlo, ecco che 0011 annuncia il canale di scorta, quello secondario. Sempre con i bit amministrativi, si potrà commutare tra primario e secondario. Purché il ricevitore lo preveda.
Nel Channel Status bit, nei byte 22 e 23 rispettivamente, il penultimo e ultimo byte visto che SI DOVREBBE COMINCIARE A CONTARE DA ZERO e non come ho fatto io prima, sono contenute informazioni di reliability (affidabilità) e il CRCC (Cyclic Redundancy Check Character) che serve per controllare eventuali alterazioni dei dati (si usa nella trasmissione dati in genere).


Il bit |P| - Parità
È un mezzo per scoprire errori di trasmissione. Verifica che nella stringa ci sia un numero pari di transizioni, che le transizioni dell'inizio del sub frame avvengano in modo regolare, che il preambolo sia orientato sempre dalla stessa parte. Come  avviene per il CRC dell'ultimo status byte e i flags del penultimo, fa parte di un argomento appassionante per chi si occupa di trasmissione dati. La materia è fondamentale ma forse poco stimolante per noi dell'audio ed io ne sono profondamente ignorante.


Alla Prossima
Sul fatto che possiamo usare solo i dati che leggiamo e interpretiamo correttamente si disquisì nei numeri scorsi. Dei connettori, cavi, ampiezza del pulso quadro nel caso S/PDIF e AES e della connessione ottica Toslink ne parlammo nei numeri ancora precedenti.
Si fece cenno allo standard AES multicanale, il MADI, che trasporta 64 canali fino a 100 m su un economico cavetto coassiale o su ottico per distanze maggiori. Lo standard MADI è basato su un protocollo ridondante nativo, caratteristica estremamente importante quando gli spettatori sono 10.000 belve urlanti pronte a distruggere il locale se vengono rimandate a casa per ragioni tecniche.

Ah, prima di andare a dormire mi rimane da chiarire il mistero dei secondi nani introdotto nel numero scorso, sulla durata di un pulso unitario in trasmissione: se un frame è trasmesso 48.000 volte al secondo, essendo un frame composto da 64 bit, conterrà 128 Pulsi Unitari. Quindi, vedendola dalla parte del pulso unitario:
1 / (128 x 48.000) = 162 ns e rotti.

Come potete dedurre da quanto scritto oggi, i Padri Fondatori hanno lavorato bene, creando degli standard con ampi margini per sviluppi futuri.
Ciò detto, proprio uno di loro un giorno mi confessò: “Sai, se lo rifacessimo adesso lo faremmo completamente diverso”.
Non mi sembra il caso oggi di saltarvi sulle palle con il Jitter, per cui Tana Libero Tutti (TLT).

Nota:
Le immagini le ho quasi tutte ricavate da pubblicazioni Audio Precision.
Per chi volesse saperne di più raccomando il libro Audio Measurement Handbook di Bob Metzler e Measurement Techniques for Digital Audio di Julian Dunn.
Entrambi editi da Audio Precision, sono una vera miniera di informazioni, riferimenti e standard.