justlisten a écrit:Savez vous comment connaître le taux d'erreur (corrigées par interpolation) persistant lors de la lecture d'une piste audio avec un CD ROM ?
Il suffit de créer le CD soi-même à partir d'un fichier wav quelconque. Une fois ce CD gravé, on le rippe, ce qui donne un second wav, dans lequel se cumulent les erreurs de gravure, plus les erreurs de lecture.
On peut alors comparer les wavs bit-à-bit. Le logiciel EAC peut faire cela. Il y a aussi la commande FC sous Windows en émulation MS-Dos, avec l'option /B.
Ca, c'est l'expérience de base. En pratique, pour être sûr de ne pas avoir d'erreur, il y a plusieurs méthodes : double rip avec comparaison des checksum (dans EAC, c'est l'action "test and copy selected tracks", avec le lecteur configuré en "burst mode"). Il faut lire la colonne CRC et vérifier que c'est "OK" à la fin.
EAC peut procéder de façon plus complexe en "secure mode". C'est plus compliqué à configurer, car il faut faire des réglages différents selon les mécaniques. L'avantage est que le logiciel tente une correction lorsqu'il détecte un problème.
Installer un rippeur avec AccurateRip est une solution radicale. Quand le plugin confirme que c'est OK, il n'y a aucun doute possible. Mais pour cela, il faut que le CD soit dans la base de données.
justlisten a écrit:Chose curieuse, ce problème de taux d'erreur est très flou et je n'ai trouvé aucune explication claire sur ce qu'il se passe réellement lors de la lecture d'une piste audio par un CD ROM : ce serait du bit à bit mais les logiciels ont quand même des alog de correction ... à préciser si certains savent.
L'information sur le CD est codée de façon assez complexe. La succession de cuvettes vue par le laser est d'abord traitée par une puce qui réalise un décodage dit "EFM". Note que cette étape isole totalement les données issues du CD de la suite. Cette puce génère des données entièrement nouvelles et non soumises aux problèmes mécaniques du CD. Tout au plus pourra-t-on y mesurer les instabilités de l'alimentation lorsque celle-ci envoie par ailleurs du courant dans les circuits de lecture optique.
Reste que s'il y avait des zones erronées ou illisibles sur le CD, les nouvelles données après ce décodage seront tout aussi erronées.
Ensuite, après un désentrelacement, il ya une étape de détection et de correction d'erreurs, dite C1. Les données erronées ou manquantes sont détectées, et si possible corrigées à l'aide de données redondantes. A ce stade, une dizaine d'erreurs sont corrigées par seconde, et en principe, il n'en reste aucune.
Ensuite, il y a l'étape de désentrelacement principale. Les données sont de nouveau mélangées, mais de loin en loin cette fois. Cela permet, si le CD est abîmé, de disperser les données de la zone illisible dans des blocs de données intactes.
Il y a ensuite une seconde étape de correction qui utilise encore des données redondantes. C'est l'étape C2. Les données manquantes sont reconstituées grâce aux données redondantes des blocs intacts. En principe, il n'y en a jamais besoin.
Enfin, si cette étape échoue, le lecteur remplace les données qui n'ont pas pu être retrouvées par une interpolation. Celle-ci est aidée par un troisième désentrelacement.
La notion de correction par des données redondantes s'appuie sur l'algèbre des groupes de Galois. A la fabrication du disque, les données redondantes sont calculées à l'aide d'une formule telle que si, dans un groupe de n octets, si un ou deux sont modifiés, le changement est détectable et corrigeable par une autre formule générale, applicable à n'importe quel groupe de n octets. Et s'il y a davantage d'octets modifiés, ce n'est pas réparable, mais tout de même détectable.
Au niveau C1, n=32, et il y a quatre octets redondants. Au niveau C2, il reste 32-4 = 28 octets, dont 4 encore redondants.
En sortie, on a 24 octets de données utiles, soit 24 x 8 = 192 bits, 96 par canal stéréo. Cela donne 96/16 = 6 échantillons stéréo de 16 bits, qui constituent un "bloc".
Tout cela est valable aussi bien dans un lecteur audio que dans un lecteur de CD-ROM. La principale différence, c'est qu'un lecteur audio aura tendance à lire les données en continu, tandis que le lecteur de CD-ROM les lit par paquets de 27 secteurs, un secteur contenant 98 blocs.
Je dis "tendance", car des tests menés sur les CD corrompus censés être "incopiables" qui polluaient les bacs à une époque montrent que parfois, les lecteurs audio lisent aussi par blocs.
Au fond, il y a très peu de différence entre la lecture en mode "audio" et le rippage. C'est surtout une question de vitesse.
Tout cela prend place dans les puces internes des mécaniques. Aucun logiciel, aucun fabricant de lecteur de CD proprement dit n'accède à ce qui se passe pendant la correction d'erreurs (les fabricants de puces oui). Les logiciels qui procèdent à une correction d'erreur peuvent agir à plusieurs niveaux. Cela peut désigner la lecture des CD-ROM proprement dits, qui comportent un troisième niveau de correction d'erreur. Celui-ci peut être activé ou non par le programme. Mais il n'existe pas sur un CD audio. Lire un CD-ROM sans correction d'erreur, c'est le lire en mode "audio", avec seulement les corrections C1 et C2, inamovibles.
Cela peut aussi désigner des astuces plus ou moins bien ficelées pour tenter de deviner si le lecteur a interpolé ou non. La plus simple est de lire les données deux fois. Les interpolations, lorsque le CD est abîmé, ou que la mécanique tourne trop vite, ne se produisent pratiquement jamais deux fois aux mêmes endroits. La moindre erreur est trahie par une différence entre les deux passes. Cela se complique lorsque le lecteur contourne l'ordre de relecture, et, pour gagner du temps, renvoie les mêmes données à l'identique sans les relire sur le disque. C'est le principe de la "mémoire cache".
Pour obtenir un bon rip, il faut donc utiliser une mécanique bien faite, sans bug (il y en a avec des bugs dans les puces !), ne pas la pousser à sa vitesse maxi, et garder ses disques propres. Dans ces conditions, il n'y a jamais d'erreur à interpoler après le niveau C2.
Pour les CD gravés, c'est encore autre chose. Ils ne sont pas toujours bien lisibles. Là, il peut y avoir des interpolations à la lecture.