Il problema "caro" Giaime è la leggerezza con cui spesso ti approcci ai problemi, così non sempre mi sento convinto dalle tue argomentazioni, spesso tese non tanto ad approfondire, quanto a rimuovere gli eventuali problemi, dandoli per risolti.
Se i click, rappresentano un errore irrisolto, e si possono ascoltare, io non posso essere sicuro che quelli "risolti" lo siano per il meglio.
Tanto per apprifondire:
Errori:
http://www.ascotti.org/programming/sbdi_cda.htm
Le specifiche per i CD permettono di avere fino a 220 errori al secondo. L'algoritmo CIRC riesce quasi sempre a correggere perfettamente questi errori ed a fornire dati corretti. Errori estesi fino a 450 byte consecutivi, per merito dell'interleaving, vengono corretti senza perdita di informazione. E' comunque possibile che qualcosa sfugga, ma di solito si tratta di piccoli "click" che all'ascolto vengono a malapena percepiti.
http://www.tweakness.net/articoli/COPIA ... %20EAC.htm
Con il metodo “secure reading”, infatti, quando un problema di lettura si verifica, EAC rilegge fino a 82 volte i dati per cercare di ottenere quanto più possibile dei risultati corretti segnalando poi gli eventuali errori e loro esatta posizione.
http://www.di.unipi.it/~romani/IAD/IAD6.pdf
Capacità di correzione di errori
Abbiamo già detto che ad ogni 24 bit di dati audio vengono aggiunti 8 bit di parità. Un altro trucco usato è quello di mischiare i dati all’interno del frame (interleaving) in modo che raffiche di errori (per esempio una macchia di marmellata alla ciliegia) possano venire comunque corrette. Eventuali errori non correggibili vengono trattati interpolando i valori buoni oppure, al limite, mettendo i player in mute.
http://www.hwupgrade.it/forum/archive/i ... 25677.html
Quando si ha a che fare con un flusso digitale di dati, la struttura binaria di questo flusso consente l'utilizzo di alcuni accorgimenti al fine di corregge gli inevitabili errori che inficiano la struttura stessa. Se poi si parla di scrittura su CD, l
a questione diviene ancor più interessante, soprattutto per quanto riguarda i CD-DA (Digital Audio), in cui gli errori vanno ad intaccare proprio l'esperienza dell'ascolto. Limitandosi all'ambito dei CD, si possono fare diverse considerazioni.
LE ORIGINI DI UN ERRORE
La causa più frequente di un errore è il cosiddetto "dropout", cioè un difetto nel supporto (non solo un difetto costruttivo) che causa una perdita di segnale durante la lettura del CD. Le cause del "dropout" possono essere un supporto che presenta difetti di fabbricazione oppure un difetto sopravvenuto a causa del normale utilizzo dei supporti (il più comune è il graffio sulla superficie del supporto)
I VARI TIPI DI ERRORE
E' utile distinguere immediatamente due macrocategorie di errori
i random bit errors, cioè errori che non sono correlati tra di loro
il burst error, un errore di ampiezza notevole (formato quindi da più errori consecutivi) che può anche rendere illeggibili molti bits.
LA RIDONDANZA
Com'è noto, i computers interpretano solo dati binari, cioè sequenze di 0 ed 1. Questo, di suo, consente di ricorrere ad un primo metodo di correzione d'errore, cioè la ridondanza. La tecnica è piuttosto semplice: oltre ai normali dati, vengono registrati sul CD anche dei dati ridondanti, cioè identici a quelli registrati in precedenza, in modo da poter eseguire controlli di validità del flusso digitale e di sostituire sequenze errate con le sequenze corrette ottenute con il semplice metodo del ricalcolo. Tuttavia la ridondanza non è sufficiente qualora si abbia un errore di vaste dimensioni o non vi siano dati sufficienti per il calcolo di ridondanza. Per questo motivo, si adottano altre tecniche, soprattutto nel
campo dell'audio.
Sulla base di questi concetti generali, è possibile approfondire vari argomenti.
IL RICONOSCIMENTO DEGLI ERRORI
Ci sono diversi metodi grazie ai quali si può riconoscere un errore
Codice di Controllo di Ridondanza Ciclica (CCRC). Si tratta del metodo più usato in campo audio. Il funzionamento pratico è ben chiarito da un esempio: assumendo il numero binario 1011011010 (in cui ci sono 6 dati 1), gli viene aggiunto il numero binario 0110 (che in decimale è il numero 6, cioè la quantità di 1 presenti nel dato originale, e che si ottiene sommando in binario 1+1+1+1+1+1), quindi di usa il 0110 per verificare l'esattezza del dato ed eventualmente correggerlo.
Codice di Correzione d'Errore (CCE). Tramite i dati ridondanti è possibile correggere gli errori generatisi in fase di registrazione o di lettura. Esistono molti codici di correzione d'errore, e l'analisi scende nel campo della matematica pura (che è ininfluente per questa trattazione, e per la quale non ho competenze specifiche, ergo mi astengo anche solo dal provarci). In generale, comunque, si usano o un metodo algebrico od un metodo probabilistico.
Interleaving e Cross Interleaving. La bontà della correzione d'errore dipende dalla capacità dell'algoritmo di utilizzare i dati ridondanti o ricostruire i dati mancanti. Tuttavia nel caso di errori ampi, come il burst error, vengono persi sia i dati normali che quelli ridondanti. I dati, però, vengono "spalmati" su ampie porzioni del CD, in modo che siano dispersi lungo tutta la superficie del supporto. Questo, ovviamente, aumenta la possibilità di correggere errori ampi. Inoltre è possibile, sempre per aumentare la possibilità di correggere errori ampi, che vengano impiegati due codici di correzione d'errore, separati non solo dall'interleaving, ma anche da un ritardo, di modo che le anomalie trovate dal primo blocco vengano utilizzate come puntatori d'errore per il secondo blocco. Questo metodo, detto Cross Interleaving, è utilizzato proprio per la correzione d'errore nei CD. Quest'ultima considerazione permette di passare al CIRC
[/list=A]
CIRC - CROSS INTERLEAVED REED-SOLOMON CODE
Tutti i dati (sia per l'audio che per i CD-ROM) scritti su CD usano il sistema di codifica CIRC. Rispettando il CIRC, per tutti i dati scritti su ogni CD vengono aggiunti, in fase di premastering, alcuni bytes, al fine di ottenere una lettura perfetta anche in caso di una scrittura non perfetta o di alterazioni fisiche che possono inficiare la lettura. Tanto per dare qualche dato numerico, per i CD-DA la codifica CIRC fa in modo che vi sia 1 bit incorreggibile su 10^9 bits; per i CD-ROM, la frequenza di bits incorreggibili è aumentata a 1 bit ogni 10^12 bits (grazie al fatto che per i CD-ROM viene riservato spazio per i CCE). Il CIRC permette la correzione di burst errors con ampiezza fino a 3500 bits (2,4 mm di lunghezza) e la compensazione per burst errors di ampiezza fino a 12000 bits (ben 8,5 mm di
lunghezza).Il CIRC utilizza 2 tecniche per trovare e correggere i bytes errati, e cioè sia la ridondanza che l'interleaving.
- Ridondanza -> il CIRC prevede l'aggiunta di dati di ridondanza pari al 25% dei dati normali".
Interleaving -> il CIRC distribuisce un blocco, formato da 24 bytes in 109 blocchi adiacenti, di modo che per distruggere completamente un byte sarebbe necessario distruggere tutti e 109 i blocchi, ma, in caso di dropouts comuni (graffi, impronte, polvere) rimangono sempre abbastanza dati per ricostruire i bytes danneggiati.
A questo si deve aggiungere che i due livelli di correzione usati dal CIRC (i famosi C1 e C2) sono stati studiati apposta per correggere i burst errors, e non solo gli errori casuali (che nel campo dell'audio generano solo rumore gaussiano, detto anche “rumore bianco”). A questo punto è necessario esaminare -a grandi linee- come funziona il sistema di decodifica di un CD. Il segnale RF (generato dal Photo Detector che misura la quantità di luce che viene riflessa dalla traccia su cui si trova il laser di lettura) è inviato all'encoder EFM (Eight to Fourteen Modulation, un metodo di codifica dei dati usato per fare in modo che la lunghezza di pits e lands sia sempre non meno di 3 e non più di 11 bits, il che peraltro riduce il jitter ed altre distorsioni) dove il flusso EFM viene decodificato e passa al vaglio del C1 (cioè il primo livello di correzione CIRC). Se il C1 viene passato con successo, si va al C2 (il secondo livello di correzione CIRC). Se i dati C2 posso essere decodificati, allora i dati sono corretti e non ci sono problemi: vengono raggruppati (o meglio, viene rimosso l'interleaving). Se invece il controllo C2 fallisce, bisogna distinguere se si ha a che fare con un CD-DA o con un CD-ROM:
CD-DA -> i dati, vengono fatti passare attraverso un sistema di mascheramento degli errori (dopodiché passano per il convertitore D/A e quindi arrivano -finalmente- alle casse). Da notare che è solo in casi rarissimi (si parla di 1 volta ogni 125 ore) il decoder CIRC non riesce ad trovare un errore e mandarlo al mascheramento errori; in questo caso, di solito, si sente un click. Il flusso digitale che è il dato dell'audio è considerato esatto a meno che il CIRC non trovi un errore C2 che non possa essere corretto. Nel caso che tutti i dati che rappresentano quel segmento audio errato siano corretti, allora l'audio errato viene interpolato, in modo da non sentire "artifacts" durante la riproduzione.
CD-ROM -> Il chipset del lettore CD usa la flag C2 per segnare i dati errati; questi dati verranno inviati al Layer3, cioè un ulteriore livello di correzione d'errore presente solo nei CD-ROM (che usano per i dati solo 2048 bytes, al contrario dei CD-DA, che usano per i dati tutti i 2352 bytes che formano un blocco).
Ciao, Roberto