Code-barres EAN

Le code EAN ( ; aussi appelé International Article Number ou IAN) est un code-barres utilisé par le commerce et l'industrie conformément aux spécifications d’, organisme aujourd'hui remplacé par GS1. Il est connu en France sous le nom de Gencode, à tort, puisque Gencode é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 (UPC, ou Universal Product Code) développé dans les années 1970 par George Laurer.

La dénomination actuelle est GTIN (Global Trade Item Number).

Description sommaire 

EAN est un système global destiné à l'identification univoque d'objets. Le code UPC, précurseur des codes EAN, a été englobé dans ces derniers simplement en le préfixant par le chiffre 0 (zéro). Le système UPC s'est rallié au système EAN en .

Le numéro EAN identifie des articles ou des unités logistiques de façon unique. Codé sous forme de codes à barres, le numéro EAN peut être lu par un lecteur spécifique, dit lecteur de codes-barres. Le numéro EAN constitue la base de contrôle du flux des marchandises, du fabricant jusqu'au consommateur final.

L'EAN est composé de 8, 13 ou  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 presque la totalité des produits courants (alimentation, vêtements, pharmacies, papeterie, électroménager, etc.). Le code est lu lors du passage aux caisses des commerces et plus généralement au moyen de lecteurs de code à barres qui peuvent être disposés dans les grandes surfaces, à la disposition des clients comme au service des caisses.

Il existe des codes EAN 8 et des codes EAN 13, composés respectivement de 8 ou  :
 les codes  sont réservés à l'usage sur des produits de petite taille (paquets de cigarettes par exemple) ;
 les codes  sont utilisés dans les domaines alimentaire et non-alimentaire ;
 Les codes  sont un code-barres long pour l'identification numérique de produits et informations alphanumériques.
Le système des codes EAN, comme tous les systèmes de codes à barres, fait appel à des notions d'arithmétique modulaire. Sa structure tient compte des contraintes physiques liées aux conditions de leur impression et de leur lecture.

Chacun des chiffres composant l’EAN peut, selon sa position dans le code, avoir trois représentations distinctes nommées :
 élément A,
 élément B,
 élément C.

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(s) supplémentaire(s) sans élargir le code-barres, tout en respectant les mêmes contraintes de lecture.

Les barres verticales noires et blanches utilisées sont des Codes Linéaires dont les barres élémentaires sont toutes de même largeur, dite largeur élémentaire ou module.
Il en résulte que les largeurs des barres verticales sont toutes des multiples de ce module :
 une barre de largeur 1 correspond à une seule barre élémentaire ;
 une barre de largeur 2 correspond à  élémentaires de même couleur ;
 une barre de largeur 3 correspond à  élémentaires de même couleur ;
 une barre de largeur 4 correspond à  élémentaires de même couleur ;

Les codes à barres sont destinés à être lus à des distances différentes, et donc les lecteurs ne mesurent pas la largeur réelle des barres, mais leurs largeurs relatives, en détectant uniquement les zones de transition selon leur propre référence de mesure.

Cela induit des contraintes élevées sur le codage, car ces lecteurs n’ont au départ aucune information sur 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éterminer si ce qu’ils ont détecté correspond à la réalité du codage initial. Par conséquent, le codage intègre plusieurs points de contrôle permettant de régler automatiquement le lecteur 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 lecteur sera utilisé.

Les éléments EAN 
Les éléments EAN se caractérisent par une succession de quatre barres (deux barres claires qui alternent avec deux barres sombres) dont la somme des largeurs vaut toujours 7 modules. Il y a donc au total 7 barres élémentaires dans un élément. Chacune de ces barres est elle-même constituée de la juxtaposition de 1 à 4 barres élémentaires de même couleur.

Chaque élément peut être représenté en binaire par une suite de 7 bits : 
un X ou 1 correspondant à une barre élémentaire noire, 
un _ ou 0 correspondant à une barre élémentaire blanche

Voici les représentations des 10 chiffres comme éléments A, B ou C :

Les éléments ci-dessus peuvent aussi être représentés sous la forme équivalente suivante où seules les largeurs des quatre barres successives (décrites de gauche à droite) sont indiquées (les éléments A et C se distinguent uniquement par la couleur de la première barre) :

Remarques 
La structure du code permet de reconnaître facilement le type d'un élément par sa parité (à savoir si le nombre de 1 est pair ou impair) et par son premier ou son dernier bit :
 parité impaire, commence par 0, se termine par 1 → élément A
 parité paire, commence par 0, se termine par 1 → élément B
 parité paire, commence par 1, se termine par 0 → élément C
 parité impaire, commence par 1, se termine par 0 → élément incorrect

Les codages B et C d'un même chiffre (donc situés ci-dessus sur la même ligne du premier tableau) sont toujours symétriques l'un de l'autre.
 Il en résulte que si le code est lu à l'envers, un élément de type B apparaît comme un élément de type C et un élément de type C apparaît de type B.
 Par contre un élément de type A lu à l'envers est incorrect. Il y a donc toujours au moins un élément de type A dans le code afin de déterminer le sens de lecture : pour le code EAN-8 ce sont tous les éléments de gauche, et pour le code EAN-13, le deuxième élément est toujours de type A.

Le codage d'un même chiffre comme élément C est toujours le complément de son codage comme élément A (les 1 et les 0 sont permutées).
 il en résulte que si un élément qui devrait être de type A est de type C, c'est que les couleurs sont inversées : blanc → 1 et noir → 0

Il découle des remarques précédentes que le codage EAN permet de lire le code :
 quel que soit le sens de lecture (c'est pourquoi on peut, à une caisse de supermarché, présenter un produit dans n'importe quelle position) ;
 quelle que soit la couleur d'impression du code-barres (blanc sur fond noir, ou noir sur fond blanc par exemple).

Le codage EAN peut permettre de différencier  distincts (ici, ce sont les dix chiffres de 0 à 9) ; en revanche, elle ne pourrait pas servir à coder des caractères supplémentaires (donc pas de lettre) ; en effet les  de  figurant dans le deuxième tableau représentent exactement l'ensemble des  possibles de  non nuls telles que la somme de ces chiffres soit égale à 7 :
 ceci a un lien avec p4(7), le symbole pk(n) correspondant à la fonction partage d'un entier ; en effet
 p4(7) vaut 3 et
 l'on ne peut écrire 7 - sous la forme d'une somme de 4 entiers positifs - que de 3 façons différentes :  7 = 4 + 1 + 1 + 1 = 3 + 2 + 1 + 1 = 2 + 2 + 2 + 1

Ces 3 "façons" générant respectivement, par permutation de leurs 4 chiffres, les 4 + 12 + 4 variantes suivantes : 
4+1+1+1 = 1+4+1+1 = 1+1+4+1 = 1+1+1+4 
3+2+1+1 = 3+1+2+1 = 3+1+1+2 = 2+3+1+1 = 2+1+3+1 = 2+1+1+3 = 1+3+2+1 = 1+2+3+1 = 1+1+3+2 = 1+1+2+3 = 1+2+1+3 = 1+3+1+2 
2+2+2+1 = 2+2+1+2 = 2+1+2+2 = 1+2+2+2

Les éléments spéciaux EAN 

En plus des éléments servant à coder les chiffres, les codes EAN contiennent des éléments de zones de garde, permettant de « calibrer » les lecteurs de code-barres, à savoir deux zones de garde normales latérales et une zone de garde centrale obligatoire séparant les types d'éléments codants autorisés de part et d'autre de celle-ci.

La zone de garde normale 
La zone de garde normale () est composée d'une bande noire, d'une bande blanche et d'une bande noire, et est située généralement à chacune des extrémités du code (début et fin).

 zone de garde normale :   [101]

Ce codage impose que les éléments qui suivent la zone de garde de début ne peuvent être que de type A ou B (ou une zone de garde centrale) pour ne pas accoler des modules de même couleur élargissant une barre noire ou blanche. De même il impose que les éléments qui précèdent la zone de garde de fin ne peuvent être que de type C (ou une zone de garde centrale).

Le codage complet nécessite également d'inclure une marge d'au moins deux modules nuls [00] de chaque côté du code-barres complet pour identifier correctement la zone de garde.

La lecture du code barre se fait de façon différentielle en balayant le code dans un sens quelconque avec un pinceau laser au moins deux fois plus fin que les largeurs de barres imprimées mais plus large que les imperfections d'impression, afin de détecter les points de contraste qui provoquent deux pics de signal très rapprochés (un pic positif et un pic négatif), puis en ne tenant compte que des pics positifs (Cela permet de lire un code dont les couleurs seraient inversées et pas parfaitement blanches et noires).

Le calibrage se fait ensuite en mesurant le temps avec une horloge de fréquence élevée (au moins deux fois supérieure à celle séparant le passage du laser d'un module à l'autre) les pics de signal qui doivent se situer dans des intervalles de tolérance. La lecture est possible malgré les imperfections de géométrie du support (non parfaitement plat) et même quand celui-ci est en mouvement (avec une vitesse à peu près stable par rapport au lecteur).

Du fait de la présence des marges, des zones de garde et des contraintes de type d'élément codés à côté, il y aura toujours au moins la séquence [001010] en tête de code créant quatre points de contraste à distance égale : un début de code est détecté et calibre la lecture du reste du code lorsque les trois intervalles de temps mesurés entre ces quatre points de contraste sont à peu près égaux (avec une marge de tolérance), ce qui permet ensuite de détecter les autres points de contraste de la totalité du code.

La lecture est validée dans un premier temps lorsque les zones de garde médianes et finales sont détectées à une distance égale à un multiple connu du calibrage initial (avec une tolérance dépendant de la longueur maximale du code entre les zones de garde) et que les autres éléments codants (entre les zones de garde) ont des points de contraste également détectés à ces multiples du temps de calibrage mesuré sur les barres les plus fines des zones de garde.

La zone de garde centrale 

La zone de garde centrale () ou zone médiane est composée d'une bande blanche, d'une bande noire, d'une bande blanche, d'une bande noire et d'une bande blanche et est située généralement au centre du code.

  zone de garde centrale :  [01010]

Ce codage impose que les éléments qui précèdent la zone de garde centrale ne peuvent être que de type A ou B (ou la zone de garde initiale) pour ne pas accoler les barres de même couleur. De même il impose que les éléments qui suivent la zone de garde centrale ne peuvent être que de type C (ou la zone de garde finale).

Et on ne peut pas accoler deux zones de gardes normales sans y insérer au moins une zone de garde centrale (pour produire le code barre vide [101][01010][101]), les autres éléments codants étant placés d'un côté ou l'autre de la zone de garde centrale. Dans les codes-barres EAN standards, le nombre d'éléments codants de type A ou B placés avant la zone de garde centrale devrait correspondre au nombre d'éléments codants de type C placés après la zone de garde centrale, mais ce n'est pas une nécessité de codage puisque ces nombres déterminent un sous-type de code EAN (les sous-types sont de forme 4+4 éléments ou 6+6 éléments).

De plus le choix des éléments de type A ou B dans la première partie du code (avant la zone de garde centrale) peut être utilisé pour coder une information supplémentaire non codée dans les éléments individuels A ou B de la première partie du code EAN. Ceci n'est pas utilisé pour les codes EAN-8 standards de forme 4+4 (bien que cela permettrait de coder jusqu'à 16 symboles différents avec les 4 premiers éléments A ou B) ; mais cette possibilité est utilisée pour les codes standards EAN-13 de forme 6+6 (qui permettrait de coder jusqu'à 64 symboles différents avec les 6 premiers éléments A ou B, mais cette possibilité n'est utilisée que pour coder un seul chiffre décimal).

Les codes EAN 8 
Les codes EAN 8 sont composés de 8 chiffres. La séquence des barres est alors :
 une zone de garde normale
 le  sous la forme d'un élément A
 le  sous la forme d'un élément A
 le  sous la forme d'un élément A
 le  sous la forme d'un élément A
 une zone de garde centrale
 le  sous la forme d'un élément C
 le  sous la forme d'un élément C
 le  sous la forme d'un élément C
 le  sous la forme d'un élément C
 une zone de garde normale
Exemple : "9000-6323" se codera ainsi :

Les codes EAN 13 

Les codes EAN 13 sont composés de 13 chiffres.

La séquence des barres est alors :

 une zone de garde normale
 le  sous la forme d’un élément A
 le  sous la forme d’un élément A ou d'un élément B
 le  sous la forme d’un élément A ou d'un élément B
 le  sous la forme d’un élément A ou d'un élément B
 le  sous la forme d’un élément A ou d'un élément B
 le  sous la forme d’un élément A ou d'un élément B
 une zone de garde centrale
 le  sous la forme d’un élément C
 le  sous la forme d’un élément C
 le  sous la forme d’un élément C
 le  sous la forme d’un élément C
 le  sous la forme d’un élément C
 le  sous la forme d’un élément C (chiffre contrôle)
 une zone de garde normale

Les codes EAN 13+2 et EAN 13+5 

Les codes EAN 13 peuvent être suivis d'un «  » (complément) de 2 ou 5 chiffres, notamment sur les livres et magazines. La suite de cette section décrit ce « complément ».

Les chiffres de ce supplément sont codés comme des éléments A ou B, suivant la valeur d'une somme de
contrôle qu'il faut calculer en utilisant un modulo. Dans ce qui suit
on notera x % m (lire " x modulo m") le reste de la division de x par m.
Pour plus de détails, voir : Modulo (informatique) :

Supplément à 2 chiffres 

Calcul somme de contrôle :

Soit X la valeur du supplément.

La somme de contrôle est X % 4

Exemple :
Soit le supplément X = 35 
Somme de contrôle = 35 % 4 = 3

Ensuite, suivant la valeur de cette somme de contrôle, les chiffres sont codés d'après la table suivante :

Supplément à 5 chiffres 

Calcul somme de contrôle :

Soit X la somme des chiffres de rang pairs
et Y la somme des chiffres de rang impairs.

Calculons Z = 9 x +3 y

La somme de contrôle est Z % 10

Exemple : 
Soit le supplément = 12345 
x = 2 + 4 = 6 
et y = 1 + 3 + 5 = 9 
donc z = 9 * 6 + 3 * 9 = 81 
Somme de contrôle = 81 % 10 = 1

Un supplément débute par un délimiteur spécial de quatre modules dont la formule est
 1011 et
 chaque caractère, sauf le dernier, est suivi d'un séparateur de formule 01.

Le code EAN128 ou GS1-128 
Le code EAN128 a changé de dénomination pour GS1-128 car, finalement, elle n'a pas grand-chose en commun avec les codes EAN8 ou EAN13.

En effet ce code utilise la symbologie Code 128 et fait partie de la codification normalisée Codes GS1.

Ce code est utilisé en logistique sur les colis, les palettes ou autres sur des étiquettes dites « SSCC ».

Pays 

Les trois premiers chiffres de l'EAN indiquent dans quel pays l'entreprise est membre du système EAN. Ils n'indiquent pas toujours le pays de production, il peut s'agir du pays où est situé le siège social de l'entreprise ou l'un de ses sièges sociaux.
L'organisme de régulation national est chargé de l'octroi des numéros de membres pour chacun des pays. Le numéro de membre est le code à cinq chiffres qui suit l'identifiant du pays (son premier chiffre est le dernier de celui du pays).

La liste ci-dessous donne la correspondance entre les premiers chiffres et les pays ainsi que les détails de leur régulation nationale (information ou organisme de régulation).

Obtenir des codes-barres EAN 
Il y a différents moyens d'obtenir des codes-barres EAN.

 L'adhésion avec frais récurrents par abonnement annuel via GS1 France. L'entreprise loue les codes à GS1 et est alors obligée de payer des frais annuels pour continuer à les utiliser.
 L'achat de codes via un revendeur directement. Ces revendeurs tels que Codes à barres France, revendent des codes vierges de toute utilisation ayant appartenu à une entreprise avant 2002. Ces revendeurs ne facturent pas de frais supplémentaires, l'acheteur devient propriétaire des codes et n'est donc pas redevable d'un abonnement.

Notes et références

Articles connexes 
 EAN 13
 EAN 8
 UPC
 ISBN
 Échange de données informatisées
 Code QR
 Datamatrix
 Semacode
 Barcode battler, console

Liens externes 
 POD : Projet Open Data visant à créer un référentiel public à échelle mondiale basé sur le code EAN
 EAN Database

EAN
Identifiant