OCR-A - OCR-A

OCR-A
OCR-A font.svg
Catégorie sans empattement
Concepteur(s) Fondateurs de types américains
Commandée par Institut national américain de normalisation
Date de sortie 1968
Variantes OCR-A étendu
Spécimen de police OCR A.svg
Échantillon

OCR-A est une police créée en 1968, au début de la reconnaissance optique de caractères par ordinateur , lorsqu'il y avait un besoin pour une police qui pourrait être reconnue non seulement par les ordinateurs de l'époque, mais aussi par les humains. OCR-A utilise des traits simples et épais pour former des caractères reconnaissables. La police est à espacement fixe (largeur fixe), avec l'imprimante requise pour placer les glyphes0,254  cm (0,10  pouce) d'intervalle, et le lecteur doit accepter tout espacement entre0,2286  cm (0,09  pouce) et0,4572  cm (0,18  pouce).

Standardisation

La police OCR-A a été normalisée par l' American National Standards Institute (ANSI) en tant que ANSI X3.17-1981. X3.4 est depuis devenu l' INCITS et la norme OCR-A s'appelle désormais ISO 1073-1:1976 . Il existe également une norme allemande pour l'OCR-A appelée DIN 66008.

Implémentations

En 1968, American Type Founders a produit l'OCR-A, l'une des premières polices de caractères à reconnaissance optique de caractères à répondre aux critères définis par le Bureau of Standards des États-Unis. Le design est simple pour qu'il puisse être facilement lu par une machine, mais il est plus difficile à lire pour l'œil humain.

Alors que les caractères métalliques ont cédé la place à la composition informatique, Tor Lillqvist a utilisé Metafont pour décrire la police OCR-A. Cette définition a ensuite été améliorée par Richard B. Wales. Leur travail est disponible auprès du CTAN .

Pour rendre la version gratuite de la police plus accessible aux utilisateurs de Microsoft Windows, John Sauter a converti les définitions Metafont en TrueType en utilisant potrace et FontForge en 2004. En 2007, Gürkan Sengün a créé un paquet Debian à partir de cette implémentation. En 2008. Luc Devroye corrige le positionnement vertical dans l'implémentation de John Sauter, et fixe le nom du z minuscule.

Indépendamment, Matthew Skala a utilisé mftrace pour convertir les définitions Metafont au format TrueType en 2006. En 2011, il a publié une nouvelle version créée en réécrivant les définitions Metafont pour fonctionner avec METATYPE1 , générant des contours directement sans étape de traçage intermédiaire. Le 27 septembre 2012, il a mis à jour son implémentation vers la version 0.2.

En plus de ces implémentations gratuites d'OCR-A, il existe également des implémentations vendues par plusieurs fournisseurs. Pour plaisanter, Tobias Frere-Jones a créé en 1995 Estupido-Espezial, une refonte avec des swash et un long s . Il a été utilisé dans un numéro de Rolling Stone sur le thème de la « technologie » .

Utilisation

Bien que la technologie de reconnaissance optique de caractères ait progressé au point où de telles polices simples ne sont plus nécessaires, la police OCR-A est restée utilisée. Son usage reste répandu dans l'encodage des chèques à travers le monde. Certaines sociétés de boîtes postales insistent toujours pour que le numéro de compte et le montant dû sur un formulaire de retour de facture soient imprimés en OCR-A. De plus, en raison de son aspect inhabituel, il est parfois utilisé dans la publicité et les graphiques d'affichage.

Il est notamment utilisé pour les sous-titres de films et de séries télévisées comme Blacklist et pour les titres principaux de The Pretender . De plus, OCR-A est utilisé pour le film 13 Hours: The Secret Soldiers of Benghazi .

Points de code

Une police est un ensemble de formes de caractères, ou glyphes . Pour qu'un ordinateur utilise une police, chaque glyphe doit se voir attribuer un point de code dans un jeu de caractères . Lors de la normalisation de l'OCR-A, le codage de caractères habituel était le code standard américain pour l'échange d'informations ou ASCII. Tous les glyphes de l'OCR-A ne rentrent pas dans l'ASCII, et pour cinq des caractères, il y avait des glyphes alternatifs, ce qui aurait pu suggérer le besoin d'une deuxième police. Cependant, pour des raisons de commodité et d'efficacité, tous les glyphes devaient être accessibles dans une seule police utilisant le codage ASCII, les caractères supplémentaires étant placés à des points de codage qui auraient autrement été inutilisés.

Le descendant moderne de l'ASCII est Unicode , également connu sous le nom d' ISO 10646 . Unicode contient ASCII et a des dispositions spéciales pour les caractères OCR, donc certaines implémentations d'OCR-A se sont tournées vers Unicode pour obtenir des conseils sur les affectations de codes de caractères.

Représentation standard pré-Unicode

L' ISO norme ISO 2033 : 1983, et correspondant la norme industrielle japonaise JIS X 9010: 1984 ( à l' origine JIS C 6229-1984), définissent des codages de caractères OCR-A, OCR-B et E-13B . Pour OCR-A, ils définissent un ensemble ASCII 7 bits modifié (également connu par son ISO-IR Numéro ISO-IR-91) comprenant uniquement des lettres majuscules, des chiffres, un sous - ensemble de la ponctuation et des symboles et des symboles supplémentaires. Les codes redéfinis par rapport à l'ASCII, par opposition à simplement omis, sont répertoriés ci-dessous :

Personnage Image Emplacement En ASCII commentaires
£ signe dièse 0x23 # Correspond à la norme BS 4730, la variante britannique de l' ISO 646 .
{ Accolade Gauche 0x28 ( Le nom du personnage est toujours "GAUCHE PARENTHÈSE", malgré l'affichage d'une accolade. Le code ASCII habituel de l'accolade gauche 0x7B est omis.
} Accolade Droite 0x29 ) Le nom du personnage est toujours "RIGHT PARENTHESIS", malgré l'affichage d'une accolade. Le code ASCII 0x7D habituel de l'accolade droite est omis.
?? Crochet OCR 0x3C <
?? Président OCR 0x3E >
?? signe yen 0x5C \ Correspond à JIS X 0201 . Inclus dans JIS X 9010, mais omis par ISO 2033.
?? Fourche OCR 0x5D ]

De plus, la longue marque verticale ( Marque verticale longue) est codée à 0x7C, correspondant à la barre verticale ASCII (|).

Caractères OCR-A dédiés en Unicode

Les caractères suivants ont été définis à des fins de contrôle et sont maintenant dans la plage Unicode "Reconnaissance optique de caractères" 2440-245F :

Points de code OCR-A dédiés basés sur ASCII et Unicode
Nom Image Texte Unicode
Crochet OCR Crochet OCR ?? U+2440
Président OCR Président OCR ?? U+2441
Fourche OCR Fourche OCR ?? U+2442
Fourche inversée OCR ?? ?? U+2443
Boucle de ceinture OCR ?? ?? U+2444
Noeud papillon OCR ?? ?? U+2445

Espace, chiffres et lettres non accentuées

Chiffres OCR-A
OCR-A majuscules non accentuées
OCR-A lettres minuscules non accentuées

Toutes les implémentations d'OCR-A utilisent U+0020 pour l'espace, U+0030 à U+0039 pour les chiffres décimaux, U+0041 à U+005A pour les lettres majuscules non accentuées et U+0061 à U+007A pour les lettres non accentuées minuscules.

Caractères réguliers

En plus des chiffres et des lettres non accentuées, de nombreux caractères de l'OCR-A ont des points de code évidents en ASCII. Parmi ceux qui ne le font pas, la plupart, y compris toutes les lettres accentuées de l'OCR-A, ont des points de code évidents en Unicode.

Points de code OCR-A supplémentaires basés sur ASCII et Unicode
Nom Glyphe Unicode
Point d'exclamation Point d'exclamation U+0021
Guillemet Guillemet U+0022
Numéro de signe Numéro de signe U+0023
signe dollar signe dollar U+0024
Signe de pourcentage Signe de pourcentage U+0025
Esperluette Esperluette U+0026
Apostrophe Apostrophe U+0027
Parenthèse gauche Parenthèse gauche U+0028
Parenthèse droite Parenthèse droite U+0029
Astérisque Astérisque U+002A
signe plus signe plus U+002B
Virgule Virgule U+002C
Tiret-Moins Tiret-Moins U+002D
Point (Période) Point (Période) U+002E
Solidus (barre oblique) Solidus (barre oblique) U+002F
Côlon Côlon U+003A
Point-virgule Point-virgule U+003B
Signe inférieur à Signe inférieur à U+003C
signe égal signe égal U+003D
Signe supérieur à Signe supérieur à U+003E
Point d'interrogation Point d'interrogation U+003F
Commercial à Commercial à U+0040
Support carré gauche Support carré gauche U+005B
Solidus inversé (barre oblique inverse) Solidus inversé U+005C
Support carré droit Support carré droit U+005D
Accent circonflexe Accent circonflexe U+005E
Accolade Gauche Accolade Gauche U+007B
Accolade Droite Accolade Droite U+007D
Signe dièse (Sterling) signe dièse U+00A3
signe yen signe yen U+00A5
Lettre majuscule latine A avec diérèse Lettre majuscule latine A avec diérèse U+00C4
Lettre majuscule latine A avec anneau au-dessus Lettre majuscule latine A avec anneau au-dessus U+00C5
Lettre majuscule latine AE Lettre majuscule latine AE U+00C6
Lettre majuscule latine N avec tilde Lettre majuscule latine N avec tilde U+00D1
Lettre majuscule latine O avec diérèse Lettre majuscule latine O avec diérèse U+00D6
Lettre majuscule latine O avec trait Lettre majuscule latine O avec trait U+00D8
Lettre majuscule latine U avec diérèse Lettre majuscule latine U avec diérèse U+00DC

Personnages restants

Linotype a codé les caractères restants de l'OCR-A comme suit :

Caractères OCR-A supplémentaires
Nom Glyphe Unicode Nom Unicode
Marque verticale longue Marque verticale longue U+007C Ligne verticale

Caractères supplémentaires

Les polices qui découlent des travaux de Tor Lillqvist et Richard B. Wales définissent quatre caractères qui ne figurent pas dans l'OCR-A pour remplir le jeu de caractères ASCII. Ces formes utilisent le même style que les formes de caractères OCR-A. Elles sont:

Caractères ASCII supplémentaires
Nom Glyphe Unicode
Ligne basse Ligne basse U+005F
Accent grave Accent grave U+0060
Ligne verticale Ligne verticale U+007C
Tilde Tilde U+007E

Linotype définit également des caractères supplémentaires.

Exceptions

Certaines implémentations n'utilisent pas les affectations de points de code ci-dessus pour certains caractères.

ID de précision

L'implémentation PrecisionID d'OCR-A a les points de code non standard suivants :

  • Crochet OCR à U+007E
  • Chaire OCR à l'U+00C1
  • Fourche OCR à U+00C2
  • Signe Euro à U+0080

Barcodesoft

L'implémentation Barcodesoft d'OCR-A a les points de code non standard suivants :

  • Crochet OCR à U+0060
  • Chaire OCR à l'U+007E
  • Fourche OCR à U+005F
  • Marque verticale longue à U+007C (convient avec Linotype)
  • Effacement de caractère à U+0008

Morovie

L'implémentation Morovia de l'OCR-A a les points de code non standard suivants :

  • Crochet OCR à U+007E (convient avec PrecisionID)
  • Chaire OCR à U+00F0
  • Fourche OCR à U+005F (convient avec Barcodesoft)
  • Marque verticale longue à U+007C (convient avec Linotype)

IDAutomation

L'implémentation IDAutomation d'OCR-A a les points de code non standard suivants :

  • Crochet OCR à U+007E (convient avec PrecisionID)
  • Chaire OCR à U+00C1 (en accord avec PrecisionID)
  • Fourche OCR à U+00C2 (convient avec PrecisionID)
  • Boucle de ceinture OCR à U+00C3

Vendeurs de normes de police

Voir également

Remarques

Liens externes