Tech●●●●●Difficulty 4 of 5

Comment un CD rayé ou une sonde lointaine corrigent-ils des erreurs que personne n'a vues ?

Un CD peut perdre une bande de 2,5 mm de données à cause d'une rayure et jouer quand même parfaitement, grâce à une astuce à base de polynômes datant de 1960.

▶ Lancer l'histoire

Ils envoient des données en plus, calculées si habilement qu'on peut reconstruire les morceaux manquants ou faux. Tout système de correction d'erreurs ajoute de la redondance. Le plus simple, un bit de parité, sait dire que quelque chose cloche, mais pas où : il faut alors tout renvoyer. Les codes de Reed-Solomon, inventés par Irving Reed et Gustave Solomon en 1960, savent trouver et réparer les dégâts sur place, sans rien redemander à l'expéditeur.

L'astuce, c'est de transformer le message en courbe. Imagine un message de deux nombres comme une droite : deux nombres suffisent à fixer une droite. Au lieu d'envoyer seulement ces deux nombres, tu envoies quatre points de cette droite. Si deux points se perdent, les deux autres fixent toujours la même droite. Si un point arrive faux, il détonne : les trois autres restent alignés, et l'intrus peut être corrigé. Les vrais codes de Reed-Solomon font pareil avec des polynômes, des cousins plus courbes des droites, sur beaucoup de points.

La règle est précise. Ajoute t symboles de contrôle et le code peut réparer jusqu'à t symboles s'il sait où sont les dégâts, ou t/2 s'il doit aussi les trouver. C'est pour ça qu'un lecteur de QR code traite une zone illisible comme un trou repéré : les trous repérés coûtent deux fois moins cher à combler.

Corriger des erreurs avec une droite
  1. Étape 1: Le message est une droite

    Deux nombres suffisent à définir une droite.

  2. Étape 2: Envoyer des points en plus

    Envoie quatre points de la droite au lieu de deux.

  3. Étape 3: Deux perdus ? Pas grave

    Deux points survivants définissent toujours la même droite.

  4. Étape 4: Un faux ? Repère-le

    Trois points restent alignés ; l'intrus est l'erreur.

Un CD empile deux codes de ce type et mélange les données pour qu'une rayure soit étalée finement sur beaucoup de blocs. Résultat : il corrige entièrement des salves allant jusqu'à 4 000 bits, environ 2,5 mm de disque. La même idée a protégé les images envoyées par les sondes Voyager à partir de 1977.

Deux versions de la Joconde côte à côte : à gauche, criblée de pixels blancs manquants, de pixels noirs parasites et d'une bande blanche ; à droite, nette.
La Joconde telle que reçue par une sonde de la NASA, avec les erreurs dues à l'atmosphère terrestre (à gauche), puis après correction de Reed-Solomon (à droite).Photo: Xiaoli Sun, NASA Goddard · Domaine public

Quiz

0/3

  1. 1.Dans l'image de la droite, pourquoi peut-on repérer et corriger un point faux ?
  2. 2.Pourquoi un code de Reed-Solomon répare-t-il deux fois plus d'effacements que d'erreurs inconnues ?
  3. 3.Comment un CD survit-il à une rayure qui efface des milliers de bits d'affilée ?

Récap

Ajoute t symboles de contrôle : tu combles t trous que tu vois, ou tu corriges t/2 erreurs qu'il faut trouver.

Le fait surprenant · La correction d'erreurs est née de l'agacement de Richard Hamming face à un ordinateur qui abandonnait ses calculs chaque week-end.

Sources (5)

Pas de source, pas d'affirmation. Chacun des 29 faits de cette leçon renvoie à au moins une de ces sources.

  1. [1]Reed–Solomon error correction · Wikipedia
  2. [2]Error detection and correction · Wikipedia
  3. [3]Hamming code · Wikipedia
  4. [4]Lunar Reconnaissance Orbiter · Wikipedia
  5. [5]Voyager program · Wikipedia
D'autres leçons · 💻 Tech (3) Toutes les leçons « Tech » →

Une lumière de plus sur ta carte.

Reçois une leçon comme celle-ci chaque jour, sur les sujets que tu aimes. Gratuit, en deux ou cinq minutes.

Récupère la carte à partager de cette leçon ↗