Comment les caisses lisent des codes-barres abîmés
On passe un paquet de pâtes à la caisse. Le code-barres est froissé, une partie effacée. Pourtant, le bip retentit : l’article est scanné.
Ce moment à la caisse intrigue : malgré un code-barres abîmé, l’article est reconnu. On s’attend à un échec, mais le système retrouve la donnée. Beaucoup s’imaginent que la machine « voit » le code comme une image complète, qu’il suffirait d’un défaut pour tout fausser.
En réalité, les codes-barres sont conçus pour survivre aux rayures, plis ou traces d’usure. Ils fonctionnent comme des puzzles redondants. Leur logique n’est pas de lire chaque trait séparément, mais de reconstruire le message à partir de morceaux, même s’il en manque.
Lecture par lignes et correction
Le lecteur ne photographie pas le code-barres. Il envoie un rayon laser qui parcourt plusieurs lignes, lisant la séquence noire et blanche à différents endroits. Chaque passage capte une partie de l’information. Si un segment manque, l’appareil s’appuie sur les autres pour combler le trou. Ce principe repose sur l’idée de redondance : des portions du message sont répétées à plusieurs endroits du code.
Approfondir
Derrière cette prouesse, un algorithme : le code de Reed-Solomon, mis au point en 1960 au MIT. Il permet de détecter et corriger certaines erreurs ou manques dans la séquence lue, à condition qu’il reste assez de données intactes. Ce code équipe aussi les CD, DVD et même les transmissions spatiales (Reed & Solomon, 1960).
Puzzle ou image complète
On croit souvent qu’il suffit d’un défaut pour que le code-barres soit illisible. Mais le système est pensé dès l’origine pour tolérer les imperfections. Norman Woodland et Bernard Silver, inventeurs du code-barres, avaient documenté cette logique dès leur brevet IBM (US Patent 2,612,994, 1952) : la redondance n’est pas un hasard, mais une mesure prévue contre les aléas du réel.
Limites et variations selon les codes
Plus un code-barres est tolérant aux défauts, plus il doit répéter l’information, ce qui limite la quantité de données nouvelles à stocker. Les codes-barres classiques (linéaires) corrigent de petits défauts, mais restent vulnérables si toute une zone est effacée. Les codes 2D, comme les QR ou Data Matrix, vont plus loin : ils peuvent être lus même si 30% de leur surface est détruite, comme le détaille la norme ISO/IEC 16022:2006. Mais cette robustesse oblige à densifier le motif, ce qui complique la lecture rapide ou en faible lumière.
Approfondir
Dans la pratique, un code-barres linéaire très abîmé force souvent à répéter le passage sous le scanner, ou à en changer l’orientation, pour multiplier les chances de tomber sur un segment lisible. Les QR codes, eux, affichent leurs zones de correction sous forme de motifs identifiables en coin.
Compromis entre robustesse et simplicité
Certains ingénieurs défendent la simplicité des codes-barres linéaires, faciles et rapides à lire, malgré leur vulnérabilité. D’autres préfèrent la sécurité des codes 2D, capables de survivre à la saleté ou aux déchirures, comme sur les colis ou les billets de train. Le choix dépend du contexte : flux rapide en supermarché, stockage d’informations sensibles, ou conditions de numérisation difficiles. Personne ne s’accorde sur une solution unique.
Les lecteurs de caisse recréent un code partiel grâce à la redondance prévue dès l’origine, au prix d’un compromis entre robustesse et capacité.