Le code EAN (European Article Numbering) est un code-barres utilisé par le commerce et l'industrie conformément aux spécifications d’EAN International, organisme aujourd'hui remplacé par GS1. Il est connu en France sous le nom de GENCODE, à tort, puisque GENCOD était le nom de l'organisme français chargé de sa régulation nationale.
Historiquement, le code EAN est dérivé du code universel des produits développé dans les années 1970 par George Laurer.
Le code UPC est un code EAN commençant par 0 (zéro). EAN est un système global destiné à l'identification univoque d'objets. Le système UPC s'est rallié au système EAN en décembre 1976.
Le numéro EAN identifie des articles ou des unités logistiques de façon unique. Sous forme de codes à barres, le numéro peut être lu par un scanner optique. Le numéro EAN constitue la base de contrôle du flux des marchandises, du fabricant à Taïwan jusqu'au consommateur final à Paris.
L'EAN est composé de 8 ou 13 chiffres représentés sous forme de séquences de barres noires et blanches formant un code à barres.
Ce type de code à barres se trouve sur la presque totalité de produits courants (alimentation, vêtements, droguerie, papeterie, électroménager, etc.). Le code est lu lors du passage aux caisses des commerces.
Il existe des codes EAN 8 et des codes EAN 13, composés respectivement de 8 ou 13 chiffres :
Le code EAN, comme tous les codes à barres, fait appel à des notions mathématiques assez pointues. Leur structure tient compte des contraintes physiques liées aux conditions de leur impression et de leur lecture. En effet, leur reconnaissance nécessite de pouvoir séparer et mesurer les largeurs des barres, à des distances de lecture variable, sur différents types de capteurs et en l’absence de toute horloge ou mesure de référence.
Chacun des chiffres composant l’EAN peut, selon sa position dans le code, avoir trois représentations distinctes nommées :
Les éléments B ne sont utilisés que pour certains types de codes basés sur EAN, quand le nombre de chiffres est suffisant. Ils permettent dans certaines conditions de coder un (voire plusieurs) chiffre supplémentaire sans élargir le code-barres, tout en respectant les mêmes contraintes de lecture.
Les barres verticales noires et blanches utilisées sont caractérisées par une certaine largeur, qui est toujours multiple d'une certaine largeur élémentaire (nommée module). Dans la suite de ce document, on adopte les conventions suivantes :
Les codes à barres sont destinés à être lus à des distances différentes, et donc les capteurs ne mesurent pas la largeur réelle des barres, mais leurs écartements relatifs, en détectant uniquement les zones de transition selon leur propre référence de mesure.
Cela induit des contraintes très élevées sur le codage, car ces capteurs n’ont au départ aucune idée de la largeur élémentaire utilisée dans le codage. Ils doivent donc la déduire de ce qu’ils captent, et être en mesure de détecter si ce qu’ils ont détecté correspond à la réalité du codage initial. Par conséquent, le codage intègre de nombreux points de contrôle permettant de régler automatiquement le décodeur aux particularités du support où ces codes à barres sont imprimés, et de vérifier la qualité de cette lecture dans les conditions variables où le capteur sera utilisé.