Newsgroup: it.comp.hardware.cd
Titolo: Cd audio: cosa legge un cd player [EXTRALUNGO]

Per chi vuole approfondire uno degli argomenti trattati
recentemente ecco un post di un anno e mezzo fa di Piercarlo
Boletti, progettista della vecchia serie Audio Analogue.
L'ho già postato con OE ma mi sono accorto che in cludeva un .gif
e così l'ho riformattato e ho usato Agent, sperando di essere
riuscito a cancellarlo in tempo.
*****
"Come viene immagazzinata un'informazione sul CD? Sul cd c'e'
solamente una serie di 1 e 0 che viene letta sequenzialmente
tramite il laser, giusto?"
L'informazione digitale registrata su QUALSIASI SUPPORTO (CD,
hard disk, floppy ecc), e' sempre registrata come una sequenza di
0 e 1. Il riconoscimento del contenuto avviene non tanto per
l'esistenza degli 0 e 1 quanto per il fatto che gli stessi
formano delle vere e proprie PAROLE che possono venire
interpretate da circuiti appositamente "istruiti" (ovvero
programmati) per "leggerle" e "capirle". In altre parole da
circuiti checonoscono la "lingua" in cui sono scritte. Il CD
contiene queste "parole" suddivise in "paragrafi" (detti frames)
che sono caratterizzati da alcuni dati tipici ovvero:
1) Una sequenza di inizio che dice al decoder dove deve
cominciare aleggere (equivale al nostro uso delle maiuscole: una
frase inizia semprecon una lettera maiuscola, cosi' come un nuovo
paragrafo e' sempre preceduto da un ritorno a capo, con punto di
chiusura - che, assieme al resto della punteggiatura, costituisce
nelle lingue occidentali l'equivalente dei codici di controllo
presenti nei linguaggi binari - un equivalente "rozzo" ma che
funziona). Nel CD si tratta di una traccia "indice"che non viene
"suonata" ma viene solo letta dal CDP. Questa traccia e' una vera
e propria "directory" del CD in tutto e per tutto analoga alla
directory degli hard disk; su di essa sono scritte tanto la
natura dei dati (ci possono essere piu' sessioni di natura
diversa sullo stesso CD), quanto il numero di sessioni
registrate. Il contenuto di queste sessioni (quindi per una
sessione audio il numero di tracce, il tempo complessivo e
simili) sono scritte all'interno della sessione stessa in
un'apposita subdirectory.
Nel caso dei CD misti per audio, la sessione audio deve essere
sempre la prima, altrimenti i CDP audio non possono riconoscerla
(alcuni espellono i dischi e buonanotte; altri come i Philips,
piu' gentilmente, fanno comparire sul display una sigla
alfanumerica che e' un modo per segnalare che non "capiscono"
quello che gli si e' dato da "leggere"). Questa traccia "indice"
si trova sempre nella stessa posizione fisica per tutti i CD
(ovvero vicino al centro del disco), che il CDP e' programmato
per ricercare come prima cosa da leggere all'atto del'inserimento
del disco.
2) Una struttura prefissata dei dati che in quanto tale puo'
venir "interpretata" automaticamente. Nel caso del CD un
"frame-paragrafo" e' costituito da una sequenza di 588 bit al cui
interno si trovano sempre:
A - Un segnale di sincronismo composto da 10 bit. Questo segnale
usa sempre la STESSA SEQUENZA di 0 e 1 che il decoder e'
abilitato a riconoscere come "inizio paragrafo". Il decoder e'
progettato per sentire una sequenza di 588+10 bit in una
"finestra" temporale che gli permette di mantenere il sincronismo
di arrivo e trattamento dei dati nonostante le irregolarita' che
si possono verificare in fase di lettura. Quando il sincronismo
si sgancia a causa di qualche urto o piu' comunemente perche'
il lettore sta ancora cercando la traccia da leggere, il fronte
end del decoder genera un "flag" di errore che, inoltrato ai
circuiti successivi del decoder, segnalano l'inaffidabilita' dei
dati in arrivo in quel momento, delegando poi alla logica di
controllo della macchina i provvedimenti da prendere, che
differiscono nella loro logica a seconda che il lettore sia un
CDP o un CD-ROM.
B - un segnale di subcodice composto da una parola a 17 bit
(detta parola "Q") che contiene informazioni sul numero di
traccia, il numero di indice all'interno della traccia (il quale
permette, nei lettori che lo sfruttano, di partire non solo
dall'inizio del brano ma anche da punti prefissati all'interno
dello stesso; i CD allegati ad "Amadeus", per esempio, usano in
maniera intensiva gli indici onde permettere a chi ascolta o
studia musica di rintracciare precisi passaggi musicali,
facilitandogli la lettura dello spartito), il tempo assoluto di
esecuzione e il tempo relativo di esecuzione (che e' in pratica
il tempo che viene visualizzato sul display del lettore); in
questa parola e' anche contenuto il bit di attivazione della
deenfasi (una sorta di "RIAA" per i CD, ormai caduta in disuso).
Questa parola contiene quasi tutte le informazioni "non
musicali" del brano da suonare.
C - 28 + 4 parole a 17 bit che costituiscono il vero e proprio
segnale audio cosi' sequenziato: 14 parole per il canale destro +
4 parole di controllo per la correzione degli errori di lettura
di entrambi i canali + 14 parole per il canale sinistro. Delle 14
parole di ciascuno canale, 12 sono byte di segnale codificati e 2
sono ulteriori codici di controllo e correzione. Di ogni parola a
17 bit solo 14 fanno testo; gli altri 3 sono bit di "merging"
(riempitivi).
Poiche' ogni campione di segnale e' composto da due byte, si
avranno alla fine del frame correttamente decodificato 6 campioni
per ciascun canale. E poiche' si hanno 7350 frames in un secondo,
moltiplicando questa frequenza per 6 si ottiene 44100 campioni al
secondo ovvero la frequenza di campionamento originale. Su come
viene processato tutto questo ben di Dio ci ritorno dopo.
Detto per inciso nessuno vieta di leggere i frames ad una
velocita' diversa: basta cambiare l'oscillatore di riferimento,
magari a frequenza variabile per ottenere un CDP in grado di
produrre effetti simili a quelli che si ottengono variando il
pitch dei registratori a nastro. Effetti alla HAL 9000: "Giro
giro tuondo, cascua il mmmuonduuooo..." (bellissimo!).
D - una parola di chiusura di 17 bit contenente il codice "P" che
segnala il termine del brano e nel caso di lettura della "traccia
di chiusura" (la lead-out track, una traccia muta che non viene
suonata) serve a segnalare alla macchina la fine del disco.
Il tutto funziona perche' alcune informazioni chiave - il
sincronismo specialmente - si trovano sempre nella stessa
posizione relativamente alle altre e perche' vengono lette
regolarmente ad una frequenza prestabilita.
E' un meccanismo che di digitale ha praticamente solo il nome: i
televisori (analogici!) ricostruiscono l'immagine sullo schermo
sfruttando esattamente la stesso principio.
Nel CD le "frasi" che contengono l'informazione da riprodurre
seguono una "costruzione grammaticale" fissata una volta per
tutte, ovvero sempre:
A-B-C-D, A-B-C-D, A-B-C-D... - - - ... A-B-C-D, A-B-C-D-P (fine
brano), il tutto ripetuto 7350 volte al secondo per tutta la
durata del disco (o del brano scelto: per il decoder non cambia
nulla).
Fin'ora ti ho descritto la struttura di un "frame" del CD che
tuttavia non rappresenta l'informazione del CD ma solo una sua
codifica. Una volta sincronizzati, i frames vengono convertiti da
formato seriale a formato parallelo tramite un apposito registro
di scorrimento; a questo punto le 34 parole da 14+3 bit vengono
convertite in altrettanti simboli da 8 bit per mezzo di una
tabella di corrispondenze. Il circuito che si occupa di
questa trasformazione viene detto demodulatore EFM ("Eight to
Fourteen Modulation").
Il simbolo "Q" da 8 bit, il primo presente dopo il segnale di
sincronismo, viene avviato ad un accumulatore (una piccola
memoria RAM) che ne mette insieme 12 (cioe' aspetta i simboli "Q"
di 12 frames prima di segnalare il "pieno"): dei 96 bit
risultanti, 16 vengono utilizzati come controllo di errore e
parita' dei rimanenti 80 che, eventualmente corretti, vengono
passati al microprocessore del CD, che li usa per sapere "a che
punto sta'" (tempi di esecuzione, numero di indice ecc.).
Questi dati vengono rinnovati 1225 volte ogni due secondi, una
velocita' "alta" per noi, ma di assoluto riposo anche per le
"lumache" che di solito vengono usati per governare display,
tastiera ed esecuzioni programmate di brani.
Se mi hai seguito fin qui ti sarai accorto che molti segnali di
controllo sono in banda audio: la frequenza di arrivo dei frames,
la frequenza di refreshing dei dati che pervengono al
microprocessore e buon ultimo, la frequenza di vibrazione della
testina per il controllo del tracking (650 Hz). C'e' di che
riflettere... Ma continuiamo.
Gli altri 33 simboli generati dal demodulatore EFM tutti, meno
l'ultimo che viene usato come segnalatore di fine brano (l'unico
momento in cui assume valore "1"), vengono inviati al decoder
vero e proprio del CDP. E qui ne succedono delle belle.
(...).
Al decoder arrivano 32 simboli da 8 bit; da questi come gia'
detto verranno ricavati 6 campioni a 16 bit per ciascun canale.
Per ottenere questo il decoder deve "interpretare" l'insieme di
questi 32 simboli. Innanzitutto usera' i quattro byte centrali
per fare un primo controllo di integrita' degli altri 28; se e'
tutto OK i simboli vengono immagazzinati in una RAM asieme a due
bit di "accompagnamento" che segnalano se il decoder ha trovato
degli errori, e se e' riuscito a correggerli o meno.
In un secondo tempo i 28 simboli gia' "trattati" vengono letti
dalla memoria e inviati ad un secondo decodificatore che li
ridurra' a 24 (12 per canale) usando i quattro byte rimanenti
come ulteriore codice di controllo e correzione degli errori ma
soprattutto per "deinterfoliare" i campioni (ovvero per rimettere
insieme ciascuna "testa" da 8 bit con le sue "gambe" in modo da
ricostituire il totale di 16 bit per campione).
In questo secondo decodificatore i bit di "accompagnamento"
giocano un ruolo chiave perche' segnalano se vi deve essere
un'ulteriore correzione degli errori o se basta il semplice
"deinterleaving"; questo e' anche l'ultimo stadio in cui, quando
e' possibile, il segnale puo' essere ricostruito esattamente
senza interpolazioni sulla base dei byte di controllo. I due
decodificatori sono in grado di correggere fino a 2 + 4
campioni errati (2 il primo e 4 il secondo), dopodiche' mandano
tutti a quel paese, segnalando con un flag che sono arrivati alla
frutta.
Tutti i simboli trattati, buoni, buoni dopo correzione e non
buoni del tutto vengono rimessi un'altra volta in memoria con i
loro bit "di certificato di errore" aggiornati. In caso di
singolo campione errato in mezzo ad altri due "buoni", il decoder
lo sostituisce con un campione interpolato, cioe' risultante
dalla media aritmetica tra i valori dei campioni che lo precede e
di quello che lo segue. In caso di piu' errori consecutivi il
decoder zittisce l'uscita e buonanotte.
L'interpolazione e' una buona soluzione solo se interviene di
tanto in tanto (e nei lettori fatti come si deve, e' cosi' - e
fatti come si deve non vuol dire necessariamente costosi: tanti
Philips economici sotto questo punto sono spesso piu' affidabili
di altri lettori piu' "blasonati" e persino di qualche
"professionale"). Se per le piu' svariate ragioni essa comincia a
intervenire troppo spesso sono guai; in particolare se si hanno
interpolazioni "a raffica", tipo una si' e una no a brevi
intervalli, il suono tendera' ad essere "sporcato" da un continuo
sfrigolio ad alta frequenza che si traduce spesso e volentieri in
intermodulazione belle e buona (con timbriche "metalliche" o alla
"carta stagnola" che molti conoscono bene).
Tuttavia in tanti CDP della vecchia scuola "multibit" Philips
esiste la possibilita' di intervento di un secondo interpolatore
in grado di sostituire piu' campioni errati consecutivi (fino a
otto) prima di "zittire" tutto; l'effetto di tale
"superinterpolatore" e' quello di comportarsi come un blando
filtro passa basso che interviene a frequenze superiori ai 5 kHz.
L'influenza sul suono e' sicuramente meno irritante delle
interpolazioni a "pioggia" ma tuttavia non trascurabile: il suono
tende via via a "incupirsi" proporzionalmente all'intervento
sempre piu' massiccio dell'interpolatore in caso di eccesso di
errori consecutivi. Se si verifica cio' e' un sicuro segno che e'
giunta l'ora di dare una pulita alle lenti del pick-up laser.
Ma a parte questo intervento "hard" che in media va attuato una
volta all'anno, un sicuro metodo per non incappare in troppe
"interpolazioni" sta nell'osservare una pulizia costante nel
maneggiare i CD, pulendoli prima di usarli con un piccolo panno
del genere che si usa solitamente per gli occhiali (dopotutto il
CDP rimane un lettore OTTICO e come tale va trattato).
Siamo ormai alla stretta finale. I byte con "certificato"
rappresentanti i campioni audio vengono ripescati per l'ultima
volta dalla memoria RAM e vengono rimontati in un apposito
registro di uscita a 16 bit, uno per canale. In effetti e' solo
da questo punto in poi che il segnale digitale di un CDP assume
la sua forma "terrestre" di sequenza temporale di campioni
convertibili in segnale analogico: prima e' roba da X-Files!
Da questi registri il segnale esce solitamente in formato seriale
ma nulla impedirebbe di renderli disponibili in formato
"parallelo", salvo il fatto che la maggioranza dei decoder IC non
prevede questo tipo di uscita (richiederebbe la bellezza di ben
16 pin di uscita dati contro uno). In ogni caso il segnale che ne
esce puo' da questo punto in poi essere trattato tramite
sovracampionatori e filtri digitali oppure anche essere
inviato tale e quale al DAC. Il segnale audio "puro" ricavabile
dal CD e' gia' presente in tutto il suo "splendore". Gli
eventuali campioni errati o interpolati vengono segnalati da un
apposito flag di cui i circuiti a valle del decoder possono tener
conto per attivare eventuali interventi di "riparazione" o
possono decidere di ignorare del tutto.
*****
Se non siete arrivati in fondo consiglio di conservare questo
post.
--
Zanbot3000
Il difficile non è essere intelligenti, ma sembrarlo
ICQ UIN #41121680
--
Zanbot3000
Il difficile non è essere intelligenti, ma sembrarlo
ICQ UIN #41121680

 *****
NO NON CI SEI RIUSCITO !! il file e' ankora presente.
Se lo vuoi cancellare dovresti avere nel tuo Newsreader 1 tasto con la
funzione "Annulla" (vai sul post ke vuoi annullare e klikki su "annulla")
almeno io nel mio vekkissimo Newsreader ce l'ho !!

 Newsreader ce l'ho !!
Non so perché con OE anche se l'ho annullato quasi subito lo
vedo ancora ma poi ho scaricato tutto il ng ex-novo con Agent
e mi fa vedere solo quello senza gif - magari lo cassa solo perché
c'è l'allegato e non perché l'ho fatto annullare tramite server.


 c'è l'allegato e non perché l'ho fatto annullare tramite server.
premesso che ho cancellato e riscaricato ex novo l'NG x evitare di vedere 1
post scaricato *prima* della tua Cancellazione prima di scriverti
io il tuo post con l'allegato lo vedo ankora (e' 1 piccolissimo smile)
Evidentemente non l'hai cancellato.