Brevet FR2618623A1 — publié le 19890127

Dispositif de codage-décodage d'images de documents utilisant la reconnaissance de formes et son utilisation dans un systeme de télécopie L'invention se rapporte au domaine de la transmission d'images de documents via les réseaux téléphoniques et plus particulièrement à un dispositif de codage-décodage d'images numérisées de documents, particuliérement adapté à la télécopie et à son utilisation dans un système de télécopie. Depuis l'apparition de normes internationales édictées par le C.C.@.T.T. (Comite Cons > iltatif International Télégraphi- que et Téléphonlque) pour la compa ibilité des télécopieurs et l'utilisation des reseaux téléphoniques pour la transmission des données de télécopie, le marché des télécopieurs a connu une grande expansion. Le C.C.I.T.T. a normalisé une première génération de télécopieurs (groupe 1 et 2) de type analogique, et une deuxième génération (groupe 3 et 4) utilisant des techniques numériques. Ce dernier type de télécopieurs a permis de réduire considérablement le temps de transmission et de restituer des documents d'une meilleure qualité. Ainsi pour un document de format A4 ayant une résolution de 200 pointsipouce, le temps de transmission est passé de 3 mn, en utilisant une technique de compression de bande -de type analogique, 'a 1 mn en Introduisant un codage monodimensionnel d"'HUFFMAN" ou le code bidimensionnel "READ" (Relative Element Adress Designate). On rappelle simplement que le codage monodimensionnel d'HUFFMAN consiste à définir une table de codes, adaptée à une distribution donnée, en attribuant les mots de codes les plus courts aux événements les plus probables et les mots de codes les plus longs aux événements dont la probabilité d'occurrence est faible. Contrairement au codage monodimensionnel d'HUFFMAN, le code READ est un procédé de codage bidimensionnel qui exploite la redondance existant entre la ligne à coder et les lignes précédentes et conduit à un taux de compression beaucoup plus important. L'inconvénient du code READ réside dans sa sensibilité aux erreurs de transtnission ; ainsi une ligne d'image mal codée entraîne la dégradation de tout le reste du document.Pour y remédier, le C.C.I.T.T. a prévu en option pour les télécopieurs du groupe 3, une réinitialisationtoutes les n lignes, en codant n-l lignes a l'aide du code READ et la suivante à l'aide du code de HItFF.MAN. Pour le groupe 4, la protection contre les erreurs de transmissinn est assurée au niveau des protocoles de communication, qui font que tout le document est codé en bidimensionnel. Ce type de codage est performant pour les documents de type graphique ou de type lettre d'affaire. Ses performances restent cependant relativement modestes pour les documents denses de type caractôre où existe d'ailleurs une grande redon dance d'information du fait que l'alphabet utilisé comporte un nombre restreint de symboles. De nouvelles méthodes de codage-décodage d'images de documents sont donc à l'étude. Elles permettent d'obtenir des taux de compression élevés sur ce type de documents, Les travaux récents menés en FRANCE et aux U. S. A. ont démontré l'intérêt d'une compression à base de connaissance des formes pour la transmission de documents. Les problèmes posés par cette nouvelle technique résident, pour l'essentiel, dans leur Implantation et leur coût en temps de calcul. La présente invention a pour objet un dispositif de codage-décodage qui réalise une extraction, une reconnaissance et un codage de symboles adaptés aux spécificités de la télécopie numérique, optimisant les performances en taux de compression, la qualité des documents restitués, la rapidité et la simplicité de mise en oeuvre. Suivant l'invention, un dispositif de codage-décodage d'images binaires de documents, est caractérisé en ce qu'il comporte, dans un ensemble de codage - un module d'extraction de vecters d'états caractérisant des formes, définies comme des ensembles de points connexes, par un ensemble de composantes actualisées à la fréquence point de manière récursive lors de l'analyse par lignes des points de l'image binaire - un module de reconnaissance des formes extraites par le module d'extraction, comparant les composantes des vecteurs d'état associées a ces formes à des vecteurs d'état analogues, associés à des symboles déja reconnus et stockés dans une bibliothèque, adressée par des labels associes aux symboles, ce module comportant en sévie un dispositif de préreconnaissance comparant certaines des composantes des vecteurs d'état des formes extraites aix composantes- correspondantes de tous les symboles en bibliothsque, pour déterminer un sous-ensemble réduit de symboles proches de la forme analysée, et un dispositif de rseonnaissanes fine opérant une comparaison entre les bits constituant la forme extraite et les cartes de bits associés aux seuls symboles du sous-ensemble réduit, dont le résultat est l'identification de la forme extraite à un symbole du sous-ensemble réduit, ou la non identification de la forme extraite dont les composantes sont alors stockées en bibliothèque - un module de codage qui effectue, en suivant des tables de codage prédéfinies, le codage de l'information issue du module de reconnaissance, c est-a-dire le codage du label du symbole reconnu et de sa position dans la page, ou le codage des composantes de la forme non reconnue et de sa position, suivant le résultat de l'identification, le module de codage étant relié au réseau de transmission. L'invention a également pour objet l'utilisation d'un tel dispositif de codage-décodage dans un système de télécopie. L'invention sera mieux comprise et d'autres caractéristiques apparaîtront à l'aide de la description qui suit, en référence aux figures annexées. - La figure 1 est le schéma synoptique d'un système de télécopie selon l'invention : - La figure 2 est le schéma synoptique du dispositif de codage suivant l'invention ; - La figure 3 illustre le voisinage d'un point courant tel que défini pour l'extraction des formes - La figure 4 est un schéma plus détaillé des modules d'extraction 10 et du module de reconnaissance de formes 20 associé à la bibliothèque 30, représentés sur la figure 2 - La figure 5 est l'organigramme du procédé d'artualisa- tion récursive mis en oeuvre dans le module d'extraction - TA figure 6 Pst un schéma illustrant le filtrage et la réduction pour l'obtention d'une composante d'un vecteur de translations:: - La figure 7 illustre les composantes des vecteurs de transition utilisées polir la reconnaissance par vecteurs de transitions - Le figure 8 illustre le procédé de décision relatif aux types de symboles - La figure 9 illustre les décalages utilisés lors des tests d'identification de forme - Les figures 10a, 10b, 10c et 10d illustrent le procédé mis en oeuvre pour la reconnaissance fine et représentent respectivement les cartes cie symboles inconnu (10a) et prototype (lOb), la matrice des erreurs (10c) et la matrice des erreurs pondérées (lOd) - La figure 11 illustre le procédé de comparaison fine de deux formes - La figure 12 illustre plus en détails la comparaison de deux lignes - La figure 13 illustre le procédé d'identification - Les figures 14a et 14b montrent respectivement les positions réelles des centres de gravité d'une forme anonyme et d'un symbole bil,liothèque, et les 16 configurations relatives possibles. - I,a figure 15 illustre le procédé d'affectation d'une zone mémoire à un nouveau symbole - La figure 16 illustre le procédé de traitement des symboles successifs d'une ligne - La figure 17 détaille la bibliothèque de symboles 30 de la figure 1 - La figure 18 illustre le décalage vertical d'un symbole identifié par rapport au symbole prototype de taille différente - La figure 1 illustre la décomposition- en segments connexes d'un symbole - I,a figure 20 illustre le procédé de réarrangement des segments lors d'une actualisation de forme - La figure 21 illustre la méthode de codage de segments connexes d'une forme utilisant les décalages entre segments successifs - La figure 22 est l'organigramme du procédé de codage des symboles extraits successivement; - La figure 23 est l'organigramme du procédé de décodage des données transmises, pour reconstituer les symboles à imprimer. ~ La figure 24 montre l'insertion d'un module 500 d'aide à l'extraction dans le dispositif pour faciliter la gestion - LR figure 25 est un schéma détaillé de ce module 500 d'aide à ltextraction, pour une extraction par segments - La figure 26 est un schéma détaillé d'un sous-ensemble de ce module 500 d'aide à l'extraction - La figure 27, -est un exemple de chronogramme des signaux de ce module 500 - La figure 28 est un schéma fonctionnel du procédé d'extraction mis en oeuvre par un module logiciel d'extraction 520 à partir des segments extraits par le module 500 - La figure 29 est le schéma synoptique d'un module d'aide à la préreconnaissance, 530 ~ La figure 30 est le schéma synoptique d'un moduble d'aide à la reconnaissance fine 570 - T,a figure 31 est le schéma général de l'assemblage des moyens matériels du dispositif tlo codage-décodage dans un mode de réalisation particulier oii des modules automatiques d'aide sont associés 'a deux microprocesseurs. Dans la description qui suit, le dispositif de codage-décodage selon l'invention est -décrit en détaillant ses fonctions élémentaires en utilisant soit une description de type matériel, soit une description de type logicielle, par les séquences d'opérations à mettre en oeuvre. Ces descriptionsélémentaires sont données à titre d'exemple et, sauf lorsqu'il est explicitement indiqué que la mise en oeuvre optimale est obtenue avec un module matériel ou avec un module logiciel les deux approches sont possible. Suivant les normes du C.C.I.T.T., les documents sont analysés à 30n points @ par pouce (1 pouce = 25,4 mm). Un docu- ment au format A4 (297 x 210 mm) comprend donc 3504 lignes de 2480 points. La figure 1 schématise un système de télécopie selon l'invention. Coté rémission, le document fac-similé à transmettre est code numeriquement par une unité de lecture, I, en général un lecteur de type CCD (Charge Coupled Device), qui balaye le document de haut en bas avec un pas constant et fournit pour chaque ligne lue une séquence de bits représentant la succession des points noirs (bit = "1") et blancs (bit = "O") L'image binaire du document est alors traitée pour diminuer le nombre de bits à transmettre par un dispositif de codage 2. Puis les données codées issues du dispositif 2 sont transmises à une mémoire tampon d'émission 3, reliée au réseau de télécommunications 4 dans lequel elles doivent transiter. Dans la partie réception, les données codées transmises via le réseau 4 sont reçues par une mémoire tampon de réception 5, qui les restitue pour traitement par un dispositif de décodage 6, directement déduit du dispositif de codage 2, qui à partir des données reçues restitue, pour tous les points de l'image, un élément binaire "1" ou "O". L'image numérisée ainsi formée est alors reconstruite par une imprimante 7, par exemple une imprimante à laser. La figure 2 est le schéma synoptique du dispositif de codage 2 de la figure 1. D'une manière général, le traitement effectué par ce dispositif consiste å scruter l'image binaire du document séquentiellement ligne à ligne au moyen d'un module d'extraction 10 dont la fonction est d'extraire les ensembles de points connexes pour les caractériser par des vecteurs diserimi- nants, actualisés si la -fréq ience-point de manière récursive. Ainsi, au cours de l'analyse, lorsqu'on détecte la fin naturelle ou artificielle d'une forme, ultérieurement appelée symbole, un module de reconnaissance de formes 20 la compare à des formes précédemment rencontrées et stockées dans une bibliothèque de symboles 30. Le module de reconnaissance est relié à un module de codage 40 dont la sortie délivre les données à transmettre via le réseau. La gestion de ces différents modules s'effectue de façon dynamique. par un module de gestion 50. Comme il sera décrit en détails ci-après, l'originalité du système décrit réside notamment dans les caractéristiques suivantes a) Pour la phase d'extraction, une analyse du document utilisant la propagation de vecteurs d'états qui gèrent en parallèle tous les symboles rencontrés sur la ligne courante, On ne mémorise ainsi qu'uns ligne du document à traiter. b) Pour la comparaison des formes, une préreconnaissance basée sur l'association de deux processus parallèles de discrimination à but décisionnel cl-après appelés préreconnaissance par semi-normes, et préreconnaissance par vecteurs de transitions, permettant de réduire le nombre de symboles-prototypes candidats, en sélectionnant, dans la plupart des cas, un ou deux symboles pour la deuxième phase de reconnaissance, c) une reconnaissance fine, récurrente, opérant sur une description par segments et traitant les lignes des symboles à comparer par rapport aux centres de gravité du prototype et du symbole inconnu. d) une classification des symboles de type caractère et graphique qui permet d'aiguiller en conséquence les informations correspondantes vers des unités de traitement auxquelles elles sont nécessaires. Les documents à traiter par le module d'extraetion 10 comportent des formes qu'on pelt répartir en deux catégories suivant des critères de taille Les symboles ensemble de points noirs connexes, entouré de points blancs, dont la hauteur et le nombre de seg ments latéraux sont limités. Ils représentent la plupart des caractères alpllATll1meriqlles imprimés de taille moyenne inscriptibles dans un rectangle de dimensions données. - Les résidus . ou non symboles, regroupant les caractères de grande taille, les graphismes composés essentiellement de traits, de courbes et l'écriture manuscrite. On rappelle a ce sujet que les procédés classiques de codage en télécopie numérique ne permettent pas de distinguer ces deux catégories de formes. Ils traitent globalement l'information contenue dans le document, sans tenir compte des éventuelles similitudes entre symboles qui sont la base du procédé de compression mis en oeuvre par l'invention. Le module d'extraction 10 extrait les ensembles de points connexes ou "formes" du document en un seul balayage du support d'image, et les caractérise par un ensemble de primitives élémentaires. Pour cela, à chaque point noir sont alloués de manière récursive un label de forme Fi et un vecteur El contenant les informations relatives aux primitives. Ces primitives peuvent être la taille de la forme (nombre de points), les nombres de segments horizontaux et verticaux dont elle est composée, la hauteur et la largeur de son enveloppe etc... Ce label et ce vecteur sont les composantes de ce que l'on appelle le vecteur d'état de la forme ou symbole". Comme indiqué ci-dessus un symbole est défini, entre autres, à partir du nombre de segments connexes (horizontaux ou verticaux), contenu dans le vecteur d'état de chaque forme. Ainsi, au cours de l'analyse, lorsqu'une forme est composée de plus d'un nombre maximal K de segments connexes, on peut soit la découper en symboles connexes, soit la considérer comme un "non-symbole". Le but de la méthode de codage est d'émettre le minimum d'informations nécessaires à la restitution des formes extraites, en exploitant Ru maximum la redondance qui existe dans le document. Aussi, les données transmises au récepteur se limitent dans a plupart des cas à l'indes du symbole dans la bibliothèque et à la position du symbole dans le plan de l'image. Il faut remarquer que cette solution est particulièrement avantageuse dans le cas où le document à transmettre est à forte densité typographique, ce qui est généralement le cas dans les transmissions inter-entreprises, lettres d'affaires, rapports etc... Comme indiqué ci-dessus, le procédé utilisé consiste à analyser le document séquentiellement de ligne en ligne, à extraire les symboles et à les comparer à des symboles précédemment rencontrés, stockés en bibliothèque, au fur et à mesure de leurs premières extractions. Dans le cas où ces symboles dépassent une taille donnée, on initialise de nouveaux symboles. Un problème délicat de ce procédé est lié à la sélection de paramètres maximaux adéquats qui caractérisent ces symboles. Le critère K choisi pour caractériser un symbole en imposant éventuellement artificiellement la fin d'une forme est en fait lié à la technique d'extraction des symboles utilisée, en particulier au nombre de composantes du vecteur d'état relatif à chaque symbole. Cependant, le critère retenu fonctionne correctement sur les symboles de hauteur moyenne de type "caractères alphanumé riques". Par contre, le retard entre le codeur et le décodeur devient très important si le symbole est de type graphique. Ainsi un deuxième critère a été introduit, pour limiter la hauteur des symboles : un symbole est alors défini comme une forme composée d'au plus K segments latéraux et de hauteur H limitée. Les différents cas de formes rencontrés dans les documents sont considérés ci-après Dans le premier cas, la forme représentée a un nombre de segments latéraux ko et une hauteur ho et est definie par: Sn(k,h) = f(ko Elle esi alors affectée å une famille de symboles dits "naturels". Jîs correspondent en général aux caractères typographiques moyens d'une page. Dans un deuxième cas, la forme en cours d'extraction a atteint à un point donné le nombre de segments maximum autorisé (ko = K). Par contre, sa hauteur ho est restée inférieure à la limite imposée elle ost alors définie par Sa(k,h) = f(ko = K, ho Sa(k,h) est alors affectée 'a la famille des symboles "artificiels" (correspondant au découpage de symboles réels de grande taille). Dans un dernier cas, la forme en cours d'extraction a atteint la hauteur maximale autorisée. Par contre, le nombre de segments qui la constitue est reste inférieur au nombre limite. Elle est donc définie par la relation S' (k,h) = f(ko S'a(k,h) est également affectée à la famille des symboles "artificiels" (généralement les graphismes). On considère également dans cette même famille, les symboles qui satisfont la relation S"a(k,h) = f(ko = K, h = H) Les paramètres K et H qui caractérisent un symbole sont prédéterminés en fonction - du nombre de composantes du vecteur d'état, pour le paramètre K, - du retard entre le codeur et le décodeur pour le paramètre 11. Si ces paramètres sont de faible valeur, le nombre de symboles parallèles à stocker dans la mémoire d'état devient ,très important et conduit à un remplissage rapide de cette mémoire par des symboles non significatifs. A contrario, des paramètres de fortes valeurs augmentent le retard entre le codeur et le décodeur. Il faut donc trouver un compromis, en choisissant des valeurs optimales. Ce compromis a été trouvé après analyse approfondie de différentes types de documents dont la resolc.ion est à 300 points/pouce. ce qui correspond à enl,iTon 12 points mm. Une étude statistique a permis de construire une fourchette, autorisant le codage de la majorité des symboles de taille moyenne. Ainsi, les critères optimaux retenus dans un mode de réalisation pour définir un symbole sont les suivants K = 70 H = 40 K et H étant respectivement, comme indiqué ci-dessus, le nombre maximum de segments latéraux et la hauteur limite pour décrire un symbole. La figure 4 décrite ci-après, représente le schéma synoptique des modules d'extraction 10 et de reconnaissance 20, associé à la bibliothèque des symboles 30 de la figure 2. Le traitement dans le module d'extraction consiste alors à actualiser à la fréquence-point les vecteurs d'états de ma nière récursive en utilisant uniquement les états des points voisins du point courant. Pour chaque point il peut y avoir création, ou extension, ou disparition d'une forme. Une disparition a lieu quand deux formes fusionnent parce qu'elles sont connexes. Dans la pratique pour une image échantillonnée spatialement sur un maillage rectangulaire, la connexité peut être établie à partir de 4 ou 8 points voisins. Le critère de connexité à partir de 4 poins (connexité horizontale ou verticale) ne permet pas de considérer comme connexes les branches situées en amont ou en aval des zones courantes. Le critère de connexité à partir de 8 points semble le mieux adapté à la méthode d'extraction de formes présentes dans des documents et qui sont la plupart du temps des caractères alphanumériques. Pour décrire les points situés dans un voisinage du point courant, la notation suivante, illustrée par la figure 3. est utilisée - le point voisin du "point courant" (PC) et précédent sur la même ligne sera appelé "point adjacent' (PA). - le point voisin du point courant (PC) appartenant à la ligne immédiatement a,j-dessus sera appelé "point dessus" (PD) - le point voisin du "point dess,îs" et situé à sa gauche sera appelé "point aval" - le point voisin du "point dessus" (PD) et situé à sa droite sera appele "point amont" (PDS). Le vecteur d'état caractérisant chaque forme est stocké dans une mémoire, appelée mémoire d'état 11, adressée par les labels de forme Fi. Lors du processus récursif d'actualisation des formes, décrit ci-après, en référence à la figure 4 des fusionnements de formes connexes sont opérés. Dans le cas oû une forme de label Fj absorbe une forme de label Fk, la forme résultante est caractérisée par un seul vecteur @j. stocké dans la mémoire d'état à l'adresse Fj. Pour que ]e label de forme Fk renvoie aussi à ce vecteur d'état, une mémoire, dite mémoire d'adresses 12, contient Fj à l'adresse Fk. La mémoire d'adresses permet donc un adressage indirect de la mémoire d'états composée de plusieurs mémoires en parallèle, chacune d'entre elles contenant une composante du vecteur d'état Ei(Ei E Rn). L'attribution de chaque point noir à une forme et l'actualisation du vecteur d'état caractéristique d'une forme se font à partir de l'état des points voisins. Les labels de forme actualisés sont mémorisés dans une mémoire ligne et servent de poin teur à la mémoire d'adresses. Ainsi, pour actualiser l'état du point courant, on lit les états les plus récents de la forme. Les adresses de ces états correspondent aux contenus de la mémoire d'adresses dont les adresses sont les labels de forme Fi. Cette attribution de chaque point noir à une forme et l'actualisation du vecteur d'éta@ caractéristique, peuvent se faire selon différentes règles. La description faite en référence à la figure 5 concerne un mode dit "à propagation adapta tive". Ainsi, pour attribuer un point noir à une forme, six cas sont à distinguer suivant l'allure locale du signal binaire correspondant aux formes rencontrees Pour faciliter l'exposé, le veci@ur d'état est supposé réduit à la composante de taille de la fol me: ler cas Mode initialisation : P P = O.PD = 0, PDS = O, PDA = Les points "adjacent", "dessus", "amont" et "aval" appartiennent au fond du document (niveau "O"). Le point courant n'étant connexe à aucune forme existante, il est attribué à une forme nouvelle de label Fi, résultat de l'incrémentation du label précédent, FC = Fi où Fi est l'adresse d'une case mémoire libre dans la mémoire d'adresses. Le label est inscrit dans la mémoire d'adresses à l'adresse Fi. Dans le môme temps les primitives relatives à cette nouvelle forme sont initialisées, par exemple le nombre de points N de la forme : N = 1. c c Les primitives notamment le nombre de points, N =1, sont écrites dans la mémoire d'état à l'adresse Fi. 2è cas M de horizontal A = 1 ; PD = O ; PDS = Le point "adjacent" est noir (niveau "1"), les points "dessus", "amont" appartiennent au fond du document (niveau "O"). Le point courant est donc connexe à un point appartenant à une forme définie précédemment. Il est alors attribué à cette forme. En fait, Si PDA est égal À I, PA et PDA ont été antérieurement affectés n ]a même forme. En conséquence, le test sur PDA n'est pas effectué puisque le résultat est le même quelle que soit sa valeur. FC FA où FA est le label de forme de la zone à laquelle appartient P . Les primitives notamment le nombre de points contenus dans cette forme, NFA , sont mises à jour NFA = NFA + 1. cas . Mode adaptatif :PD = 1 ; P A = 1 ; DA et PDS quelconques: Dans ce cas les règles d'attribution d'un point À une forme sont plus complexes. Dans le but de réduire le plus possible les cascades d'absorptions d'une forme par une autre, et de simplifier ainsi l'actualisation de la mémoire d'adresses, lorsque deux formes ont un point commun, la forme du point "dessus" a la priorité pour absorber la forme du point "adjacent", absorbant ainsi une forme de création plus récente en général. Mais, cette absorption est autorisée seulement si la forme du point "adjacent" n'a pas absorbé une forme précédemment, car dans ce dernier cas, c'est la forme du point "dessus" qui sera absorbée. Pour indiquer si une forme a déjà absorbé a. moins une autre forme, un bit indicateur d'absorption est rajouté dans chaque vecteur d'état. Par exemple pour la forme de label FA la valeur de ce bit est T FA = 1 s'il y a déjà eu absorption, et TFA = O dans le cas contraire, Ainsi, l'attribution du point courant à une forme est faite selon les règles suivantes a) si F A n'a pas absorbé : T FA = O ; FA et FD différents alors : FD absorbe F A et le point courant est affecté à la forme résultante FC = FD ; son bit indicateur est alors mis à 1 et les primitives sont actualisées, notamment la taille de la zone NFD = NFA + NFD+ 1. b) Si FA a absorbé : T FA = 1; ; FA et FD différents alors . FA absorbe FD , le point courant est affecté à la forme résultante FC = FA et les primitives sont actualisées notamment la taille de la zone NF A = NFA + NFD + i La forme du point "adjacent" absorbe donc la forme du point "dessus", quel que soit l'état de l'indicateur d'absorption de celle-ci. Si son bit indicateur TFD montre que la forme du point "dessus" a précédemment absorbé une forme, une cascade d'actualisations sera nécessaire dans la mémoire d'a@resses. c) Si @A et FD sont identiques : Les points "adjacent" et "dessus" ont un niveau "1". PA = 1 ; PD = 1 et appartiennent à la même forme NFA = NFD, le point courant est attribué à cette forme FC = FD (= FA) et les primitives sont actualisées, notamment KFD = NFD + 1. 4e cas : Mode vertical PA = O. PI = 1 Quels que soient les états des points PDA et PDS (O ou 1), le point "adjacent" appartient au fond du document, et le point "dessus" est noir. Le point courant est connexe à une forme déjà existante, donc il appartient à cette forme. Le nombre de points de celle-ei augmente d'une unité : PC = FD et NFD = NFD + 1. 5e cas ; Mode amont PDA = 0 ; PD = 0 ; PDS = 1 et PA = 1 I,'introduction de cette connexité diagonale complique les règles d'attribution d'un point à une forme. Pour contourner cette difficulté, les règles définies précédemment, relatives à une propagation adaptative sont utilisées. Le traitement consiste alors à effectuer un décalage linéaire dans le sens contraire à celui suivi par l'analyseur du document, c'est-à-dire que l'on décale PD et PDS qui deviennent PDA et respectivement. On se retrouve ainsi dans les mêmes conditions que celles données par les configurations rencontrées lors du mode adaptatif, et le point courant est affecté à FA ou à FDS suivant que FA a ou n a pas absorbé une zone précédemment. Dans les 2 cas, ces deux zones fusionnent. 6e cas : Mode aval P A = 0 ; PD = ; PDS = 0 ; PDA = Les point s "adjacent", "dessus" et "amont" appartiennent au fond du document (niveau "Q"). Le point "aval" est noir (niveau "1"). Le point courant est donc connexe à un point appartenant à une forme définie précédemment, il est alors attribué à cette forme. FC = FDA et FZDA = PZDA + 1. Dans certains des cas ci-dessus. une actualisation des mémoires est nécessaire. L'actualisation de la mémoire d'adresses comme celle de la mémoire d'état est réalisée au fur et å mesure du traitement des points. L'expérience montre qu'il n y a pratiquement jamais plus de deux cascades. Il suffit donc de réaliser systématiquement trois lectures, avant de faire l'écriture du label F obtenu. D'autre part, cette suito d'opérations étant relativement longue. il est nécessaire d'anticiper l'actualisation d'un temps égal à 3T, T étant le temps de balayage d'un point. En outre, pour gagner du temps. les trois lectures ne sont pas faites en série sur une même mémoire en utilisant une mémoire tampon pour stocker une valeur d'adresse entre deux lectures, elles sont réalisées dans trois mémoires distinctes mais identiques, qui au préalable ont le même contenu et sont finalement actualisées identiquement. Ce cadencement est fixé par le module de gestion 50, qui est un processeur convenablement programmé. Pour expliquer le fonctionnement du dispositif d'extraction, le vecteur d'état a été supposé réduit à la composante de taille de la forme. Mais comme indiqué ci-dessus d'autres types de "primitives" dont la détermination est compatible avec la structure récursive et dont le nombre d'opérations 'élémentaires est limité peuvent également être utilisées car la probabilité d'erreur de reconnaissance décroît lorsque le nombre des primitives croît, à condition toutefois de considérer ensemble - l'extraction et la sélection des primitives - le fonctionnement du système de reconnaissance. En effet, un système de reconnaissance très sophistiqué ne peut compenser une perte d'information due à un mauvais choix des primitives. Par ailleurs, dans le cas dune modélisation simpliste, le gain (de mémoire et de complexité) obtenu par une forte réduction de l'information peut être annulé dans la phase de reconnaissance. La composante de taille de la forme extraite de l'image caractérise parfaitement les formes similaires exemptes de bruit. Malheureusement, son pouvoir de discrimination atteint rapidement ses limites, quand le bruit introduit par l'analyseur du document devient important (bruit d'échantillonnage et de quantification). En effet, pour un ensemble de formes voisines appartenant å une même classe définie par exemple comme l'ensemble de formes associées à un caractère, par exemple la classe des "e" minuscule et dactylographiés, la marge de variation de la taille à l'intérieur de la classe est très importante, ce qui peut entraîner un recouvrement important avec d'autres classes de formes. Il est donc nécessaire de sélectionner un ensemble de paramètres convenables. Pour cela, un ensemble de paramètres de base a été défini et analysé - taille - nombre de segments latéraux - nombre de segments verticaux - hauteur de l'enveloppe - largeur de l'enveloppe - indice de remplissage de l'enveloppe parmi lesquels ont été sélectionnés les paramètres pertinents qui sont mesurés sur les formes et présentés au dispositif de reconnaissance de formes. Cette analyse a contribué à la réduction de l'information redondante donnée par les différents paramètres de base analysés. Dans l'ensemble des paramètres retenus, un sous-ensemble dont la détermination est compatible avec la structure récursive du module d'extraction a été sélectionné, les paramètres seront précisés ci-après en liaison avec leur utilisation dans le module de reconnaissance. La comparaison des formes s'effectue en deux phases - La premIère phase, appelée phase de préreconnaissance est rapide. Elle s'applique à tous les éléments de la bibliothèque et a pour but de déterminer les symboles prototypes de la bibliothèque auxquels ressemble la forme à reconnaître. - La deuxième phase appelée phase de reconnaissance fine est plus coûteuse en temps de calcul. Aussi, ne l'appllque-t-on que- sur un nombre réduit de candidats, afin de s'assurer qu'un symbole et un prototype sont identifiables avec une probabilité d erreur d'affectation quasiment nulle. Ainsi, si le symbole a déjà été rencontré, l'index bibliothèque est émis, sinon une description est d'une part rangée en bibliothèque et d'autre part transmise. Pour chaque symbole rencontré, on émet également les informations relatives à son emplacement dans la page. Ce sous-ensemble de paramètres étant déterminé, le traitement consiste à comparer un jeu de paramètres mesuré pour une forme aux jeux de paramètres de référence affectés aux différentes formes prédéfinies déjà rencontrées, stockées en bibliothèque. Ainsi, lorsqu'une forme inconnue demande å être identi- fiée, ses paramètres caraetsXriwtig\les sont extraits et érigés en vecteur d'observation. le système compare alors le vecteur d'observation à chacun des vecteurs de référence et mesure les degrés de similitudes, ce qui lui permet d'attribuer l'éehan- tillon inconnu à la classe ayant le vecteur de référence "le plus voisin". Le degré de similitude entre deux vecteurs est mesuré par la "distance" les séparant. La plupart des procédés de calcul de "distances" présentés dans la littérature sont des cas particuliers de la distance Dr de Minkowski, définie par la relation a et -b sont respectivement le vecteur d'observation et le vecteur de référence de composantes a1 , @ ap et b1 . .. bp Dans le cas oû r = 2, on retrouve la distance Euclidienne usuelle. D'autres distances sont fréquemment utilisées en reconnaissance des formes.Celles-ci sont obtenues pour différentes valeurs de r. Une métrique définie par la pondération simple des variables, ne présente pas les inconvénients rencontrés avec la métrique Euclidienne usuelle, à savoir que la contribution de chaque paramètre à la distance finale est pondérée par un coefficient qui dépend de la variance intra-classe un rôle variable est accordé par pondération aux différents paramètres. en fonction de leur "efficacité'. Mais l'inconvénient majeur de cette métrique par pondération simple est la nécessité d'effectuer un certain nombre d'opérations à chaque passage par le système de préreconnaissance ce qui ralenti le processus d'identification. L'étude des différentes métriques utilisables et les résultats de tests effectués à partir des caractères latins usuels a permis de mettre en évidence une distance générée par une famille de semi-normes à seuils adaptatifs particulièrement bien adaptée a la comparaison des formes caractérisées comme indiqué ci-dessus. Pour cela, une nouvelle transformation est effectuée. La nouvelle "distance'1 ainsi définie est générée par une famille de semi-normes utilisant des seuils qui s'adaptent à la "taille" de la forme à traiter. Les paramètres retenus pour cette préreconnaisssnce par semi-normes sont les suivants - x1 = la hauteur de l'enveloppe ; - x2 = la largeur de l'enveloppe - X3 = le nombre de segments horizontaux - x4 = le nombre de segments verticaux. La métrique introduite a l'avantage d'être facile 'a calculer et accorde un râle variable aux différents paramètres, en fonction de leur variance intra-classe Ainsi, si x1a , x2a , x3a et x4a sont les paramètres correspondant à une forme anonyme, et x1b , x2b , x3b , x4b ceux qui correspondent a une forme de référence, stockée en bibliothèque, l'affectation de cette forme anonyme ne peut se faire que lorsque les inégalités suivantes sont vérifiées simultanément Les seuils sk (k = 1, . 4) sont à déterminer à partir de la métrique définie par une transformation linéaire W avec la contrainte de normalisation:: La condition nécessaire à vérifier est donc dans laquelle et S est le seull optimum déterminé en simulation pour la métrique ainsi définie (pondération simple des variables). Pour calculer la valeur des quatre seuils partiels sk. on se place à la limite de l'inégalité définie par ]a relation (3) soit. la distance moyenne est alors au maximum A partir de ]'expression (5), on peut en déduire que les nouveaux seuils partiels sk constituent une fraction d une constante P = f(S) à déterminer, soit sk = P/Wk k (6) On suppose, dans ce qui suit, que d'une part la moyenne des écarts absolus entre les variables aléatoires indépendantes x@a et et xb reste constante pour l'ensemble les formes analysées k xak - xbk = Cte = C (7) et que d'autre part, C est proportionnelle à la constante P introduite dans (6) soit : C = &alpha;,P (8), l'expression (5) devient D = C. (9) max La constante P recherchée vaut alors P = S/&alpha; (10) En substituanf (10) dans (6), le seuil partiel correspondant à chacun des paramètres retenus est alors obtenu, soit S Sk = &alpha;W k k La valeur optimale de &alpha; est obtenue quant au moins deux des quatre semi-normes sont Inférieures à sk/2. A partir des coefficients de pondération correspondant à la contrainte de normalisation choisie, on a déterminé la valeur des seuils st partiels optimaux Ces quantités sont réajustées automatiquement et prennent des valeurs qui varient en fonction de la "taille" de la forme rencontrée et de son type tels que défini ci-après. Ainsi, a-t-on construit des classes différentes pour chacun des paramètres et a-t-on affecté un seuil propre à chacune de ces classes. Pour caractériser la similitude dune forme anonyme "a" avec la forme connue "b" stockée en bibliothèque, on utilisera donc une distance générée par la famille de semi-normes définie par les relations indiquées ci-desslls utilisant des paramètres de type entier entraits par récursivité sélectionnés parmi les paramètres de base ru vecteur d'étal. Les semi-normes À seuils adaptatifs ainsi introduites dans la phase de préreconnaissance acrordent un rôle variable aux différents paramètres, en fonction de leur efficacité et présentent une simplicité de formulation et des calculs réduits : quatre soustractions et quatre comparaisons. Les résultats obtenus sont très satisfaisants. Le pourcentage de formes bien classées obtenu avec les quatre "meilleurs" paramètres spatiaux de type entier définis ci-dessus est de 98,82%. Ainsi, le pourcentage global des formes anonymes introduites en bibliothèque est passé de 14,11961 avec une distance classique à seuil global fixe, à 1,17% avec une distance générée par une famille de semi-normes à seuils adaptatifs. A cette comparaison de distance est associé, en parallèle, un procédé qui permet de présenter au dispositif de reconnaissance fine un nombre restreint de candidats. En effet, il a été possible d'améliorer davantage la rapidité du processus d'identification en se limitant aux meilleurs candidats pour la phase de reconnaissance fine. Cette dernière phase, demande en effet beaucoup- de temps de calcul et peut dégrader les performances du système de compression, quand elle est souvent sollicitée. la solution proposée par l'invention est simple et particulièrement bien adaptée au but recherche. Eile est basée sur le comptage du nombre de transitions blanc, noir (le nombre de transitions blanc'noir est égal au nombre de segments de la forme) en regard à une mémoire ligne et une mémoire colonne. Chaque case de ces mémoires est donc associée à un compteur qui cumule le nombre de transitions blanc/noir. Ces informations constituent les composantes de ce que l'on appelle le vecteur de transitions. Le traitement consiste à actualiser ces vecteurs de transillon de manière récursive en utilisant les segments connexes (horizontaux et vertica,ix) qui constituent la forme analysée. Les vecteurs de transitions caractérisant chaque forme sont stockés dans une mémoire de transitions ligne et une mémoire de transitions colonne, adressées par les labels de forme Fi. Lors du procédé récursif d'actualisation des formes. décrit précédemment, des fusionnements de formes connexes sont opérés. Dans le cas où une forme Fj absorbe une forme Fk, la forme résultante est caractérisée par un seul couple de vecteurs de transitions Tj, stocké dans la mémoire de transitions à l'adresse Fj. Les mémoires de transitions sont donc remplies au fur et à mesure de l'analyse et suivent la détection de nouveaux segments. Comme indiqué ci-dessus, la mémoire d'adresse contient Fj à l'adresse Fk de façon à réaliser un adressage indirect pour Fk, qui renvoie à Fj. Le nombre de composantes dépend de la talure de la forme analysée. Pour les caractères imprimés Latins, majuscules et minuscules, les chiffres Arabes et Romains, ainsi que les caractères Chinois et Kanji, la capacité des mémoires de transitions peut être de 40 cases, pour une forme. Dans l'exemple suivant, à la fin de la ligne k, deux mémoires de transitions lignes ont été utilisées. Chacune d'elles a comptabilisé une transition (= 1 segment). A la fin de la ligne k l, la forme F2 a été absorbée par la forme F1 . La mémoire de transitions ligne affectée à la forme F @ est alors libérée et le contenu de la mémoire T1 subit le changement suivant Tl k. T1 I k. À k+l 1 1 1 z (La forme a deux transitions à la ligne k et une transition à la ligne k41). Le nombre de transitions contenu dans la mémoire T1 2 reste en mémoire, mais ne sert plus À rien puisque la forme F2 a été absorbée. Soit la représentation vectorielle T correspondant aux transitions horizontales de la forme représentée à titre d'exemple sur la figure 6 Ti = 1111 3333333 11 3333 11 I Il III IV V Dans les composantes de ce vecteur, on constate la présence d'une redondance importante dans la description de cette forme. Un objectif est alors la réduction du nombre de ces composantes sans pour autant perdre leurs caractères significatifs. Pour cela des classes (I, Il ..., V) sont construites en groupant les éléments Identiques. puis, on fait figurer une seule fois dans chacune de ces classes un élément dans la répétition consécutive de ce terme. En procédant ainsi, la suite initiale Ti convergera vers la suite réduite T' = 1 3 1 3 1 Chaque composante du vecteur de transitions contient une information plus oti moins importante. Un autre objectif est alors de procéder à un filtrage pour ne conserver que les composantes pertinentes. Ainsi, si l'on considère la description vectorielle de l'exemple précédent, la région représentée par la classe V n'est pas significative et peut entre assimilée à un "bruit". Une solution simple permettant le filtrage de cette région consiste à substituer å c es éléments les élément s correspondant à une zone voisine ne analyse approfondie a permis d'assimiler les classes résultant de la réduction ci-dessus ayant moins de trois élé ment s à du bruit. Mais, afin d'éviter le filtrage de la région définie par la classe III dans l'exemple, une procédure peut être prévoie pour garder les composantes pertinentes, en comparant à la longueur des segments connexes à un seuil donné, par exemple la moitié de la largeur (ou de la hauteur) moyenne des caractères. En pratiquant un filtrage adaptatif de la représentation vectorielle, la suite filtrée résultante est alors : T1 = l 3 1 3 O La figure 6 représente un exemple de deux formes appartenant à la même classe. La première forme de label 1 est stockée dans la bibliothèque et est décrite par ses vecteurs de transitions "filtrés et réduits". - Tb1 : 1 2 @ - Tbc : 1 La deuxième forme de label 54 est anonyme et est décrite par ses vecteurs de transition - Ta1 : 1 2 0 - Tac : 1 L'algorithme de préreconnaissance détecte une différence sur la troisième composante des vecteurs.Mais du fait de la parfaite similitude entre les vecteurs de transition colonne la forme anonyme et la forme bibliothèque sont considérées comme assez proches pour que la forme bibliothèque soit conservée par le dispositif de préreconnaissance par vecteurs de transition. Parallèlement, un indice de proximité globale est introduit pour "éloigner" les formes différentes rendues artificiellement similaires par les opérations de filtrage et de réduction En effet, les confusions constatées entre certaines formes, telles que (h, n), (1, i), etc... ne peuvent être levées qu'en introduisant une information supplémentaire.Celle-ci est portée par @@ nom@ ce de composantes formant les vecteurs de transitions initiaux Dans l'exemple donné sur la figure 6, cet indice de proximité est noté X(ligne) et Y(colonne) Xa = 28 et Xb = 28 Ya = 20 Yb = 20 Les indi@es correspondants, Xa et Xb d'une part et Ya et d'autre part sont comparés et la forme anonyme est considérée comme "proche" de la forme bibliothèque à laquelle elle est comparée si l'une ou l'autre des différences |Xb-Xa| et |Yb-Ya| est inférieure à une erreur tolérée, par exemple 2. Comme indiqué ci-dessus, une sélection adaptative des seuils de décision, notamment des seuils utilisés dans le dispositif de préreconnaissance par semi-normes, est réalisée en fonction des types de caractères et de la qualité du document à traiter. En effet, les formes sont irrégulières et entraînent des confusions inter-symboles. En plus de la classification symboles "naturels" et symboles "artificiels" indiquée ci-dessus, la classification suivante des symboles "naturels" a été établie - caractères "bien formés" - caractères "empatés" - caractères "filiformes" Aussi les procédures de reconnaissance s'adaptent au contexte de l'image traitée. En effet si les caractères ont un aspect "eonfus". l'unité de reconnaissance fine ne permettrait pas seule de dis- tinguer correctement certains symboles, le seuil de décision utilisé dans cette unité est défini selon la taille de la forme et il peut y avoir confusion par exemple d'une part entre les caractères "empatés" majuscules "S" et "B", d'autre part entre les caractères "empatés" minuscules "a" et "s" ou encore entre les caractères "Q" et "O". Afin d'éviter les confusions sus-indiquées, l'unité de décision détecte des catégories do symboles pocr sélectionner à partir do ces catégories des gamme. de seuils appropriées lors de la préreconnaissance. La procédure utilisée pour classifier efficament la forme à identifier est décrite ci-après et illustrée par l'organigramme de la figure 8. - Pour les symboles naturels deux paramètres ont été introduits. Le premier appelé "indice de remplissage" de l'enveloppe, défini comme le rapport entre la taille de la forme (nombre de point le constituant) et la taille de l'enveloppe Cet indice est comparé à une valeur de seuil I. Lorsque l'indice est grand. compris entre IS e 1 le caractère est dit "empaté. Le second paramètre appelé "élongation" mesure l'écart entre le centrolde de la forme et le centre de gravité de son enveloppe. Ce paramètre est comparé à une valeur de seuil Es. Lorsque cet écart est compris entre 0 et ES , le caractère est dit "filiforme". Le caractère qiii ne vérifie pas l'une ou l'autre condition susmentionnée. est considéré comme un caractère dit "bien formé". - Pour les symboles artificiels, une décomposition par classes s'est avérée inutile. Les graphismes ainsi détectés représentent en général des traits et des courbes de faibles épaisseurs qui nécessitent d'une part une préreconnaissance très sévère, fournie uniquement par la famille de semi-normes définie ci-dessus et d'autre part une reconnaissance fine mettant en oeuvre des seuils très serrés pour l'identification. Pour la mise on oeuvre du procédé de traitement décrit ci-dessus et afin de caractériser la similitude d'une forme anonyme avec l'une des formes connues stockées en bibliothèque, deux dispositifs de préreconnaissance complémentaires, effectuant une discrimination à but décisionnel fonctionnent donc en parallèle comme représentés sur la figure 4 qui est un schéma synoptique du module d'extraction 10 et du module de reconnaissance 20 de la figure 2 comme indiqué ci-dessus. Le module d'extraction 10, comporte comme indiqué ci-dessus, une mémoire d'états 11 q11i comporte la suite des vecteurs d'état associés ans différei1tes formes Fi actualisée récursivement ati fur et à mesure de l'analyse du doctement à transmettre. A cette mémoire d'état est associez une mémoire d'adresses 12 permettant la gestion des adresses de la mémoire d'état.Les paramètres mis en mémoire et actualisés dans cette mémoire d'état sont les paramètres nécessaires aux deux traitements indiqués ci-dessus, à savoir x1 hauteur de l'enveloppe x2 largeur de l'enveloppe; x3 nombre de segments horizontaux constituant la forme @ x4 nombre de segments verticaux constituant la forme T T1 les composantes du vecteur de transition ligne de la forme X X l'indice de proximité en ligne T c les composantes du vecteur de transition colonne de la forme Y Y l'indice de proximité en colonne. Les 4 premiers paramètres sont les composantes d'un vecteur d'état transmis lors de la détection de fin de forme naturelle ou artificielle (selon la taille atteinte par la forme indiquée ci-dessus) à l'entrée d'un dispositif de préreconnaissance par semi-normes 21, via une mémoire tampon 13 ; les 4 derniers paramètres sont les composantes d'un vecteur de transitions transmis, lors de la détection de fin de forme, à l'entrée d'un dispositif de préreconnaissance par vecteurs de transitions 22, via une mémoire tampon 14. Le dispositif de préreconnaissance par semi-normes 21 comporte un circuit sélecteur de seuils 211, associé a une mémotre de seuils 210, Ce circuit, qui reçoit les composantes du vecteur d'état, sélectionne les seuils s1, s2 , s3 et s4 à utiliser, en fonction des composantes du vecteur d'états x1a , x2a , x3a et x4a , dans la mémoire de seuils 210. Par ailleurs les 4 composantes du vecteur d'état sont comparées aux composantes correspondante stockées dans la bibliothèque de symboles 3G, pour les formes déjà rencontrées.Pour cela, 4 circuits de différe @ce 212, 213, 214, 215 effectuent p@u chaque symbole rangé en bibliothèque la différence entre la composante lue en bibliothèque et -la composante correspondante de la forme qui vient d'être extraite par le module d'extraction 10. Ces différences SN1 , SN2 , SN3 et SN4 sont comparées aux seuils s1 , s2 , s3 et s4 dans des comparateurs, respectivement 216, 217, 218. 219.ITn circuit 27 est activé lorsque toutes les différences sont inférieures aux différents seuils et le label du symbole de la bibliothèque considéré est alors transféré à un circuit 29 qtii À la fin du balayage de la bibliothèque contient l'ensemble E de tous les labels des symboles reconnus comme proches de la forme extraite par la préreconnaissance par semi normes. Si l'une quelconque des inégalités par rapport aux seuils n'est pas vérifiée, alors le symbole de la bibliothèque n'est pas retenu, et un circuit 28 est activé qui commande l'observation du vecteur associé au symbole suivant rangé en bibliothèque. Le sous-ensemble E1 des symboles rangés en bibliothèques reconnus comme proches de la forme extraite, toutes les différences étant inférieures aux seuils correspondants, comporte d'éventuels candidats pour la phase de reconnaissance fine ultérieure. Le dispositif de préreconnaissance par vecteurs de transitions 22 reçoit les composantes du vecteur de transition de la forme extraite dlll module d'extraction 10, et les composantes correspondAntes des vecteurs de transitions associées aux symboles. déjà rangés en bibliothèque. Il comporte des circuits de portes OU exclusif 220, 221 qui reçoivent respectivement les composantes Ta (forme anonyme @ extraite) et de Tb1 (symbole en bibliothèque) et Tac et Tbc. Ces circuits fournissent un signal à l'état 1 seulement si leurs composantes d'entrées sont identiques. Les sorties de ces circuits sont reliées à une porte ()l 222 qui fourrit un signal à l'eatat 1 si au moins tolites les composantes des vecteurs transitions sont identiques en ligne ou en colonne. Par ailleurs les indices de proximité en ligne xa et xb et en colonne y et yb sont comparés dans les circuits 223 et 22.1 et. lorsque ces indices sont pro@bes, à l'erreur tolérée près, en ligne ou en colonne, une porte OU 225 fournit un signal à l'état 1. Une porto OIT 226 reçoit les signaux issus des circuits OU 222 et 225 et transmet donc une information permettant de stocker le label du- symbole bibliothèque dans un circuit 227 qui contint à la fin du balayage de l'ensemble des symboles rangés en bibliothèque, le sous-ensemble E2 des symboles reconnus comme proches de la forme extraite par les vecteurs de transitions. Le dispositif de sélection 23 reçoit ces deux sous-ensem bles E et E2 dans une mémoire tampon 230 et recherche dans cette mémoire les éléments communs à ces deux sous-ensembles (qui apparaissent 2 fois). Un sous-ensemble réduit "Y" correspondant à l'intersection de ces deux sous-ensembles est gardé dans une mémoire 231. Dans les cas rares où ce sous-ensemble réduit est vide, l'ensemble généré par l'union des deux sous-ensembles précédents est gardé dans une mémoire 232. Les symboles ainsi sélectionnés sont présentés à un dispositif de reconnaissance fine 24. l'avantage d'une telle stratégle se situe au niveau de la rapidité du processus d'identification en réduisant le nombre de candidats à la reconnaissance fine. L'expérience montre en effet que pour chaque forllie anonyme. plusieurs candidats sont sélec tionnés par l'une oii l'autre des procédures de préreconnaissance décrites précédemment. Le procédé introduit ici a permis de réduire ce nombre en sélectionnant, dans la plupart des cas, un ou deux candidats pour la dernière phase de reconnaissance. Le dispositif de reconnaissance fine 24 fonctionne à partir des représentations d'image par segments et son fonctionnement va être décrit plus en détails ci@après. Ce dispositif de reconnaissance "fine" fonctionne en utilisent les descriptions de reconnaissance fine dil symbole inconnu A et d'un prototype B stocké en bibliothèque pour effectuer une Identification. Le procédé de traitement mis en oeuvre est le suivant Pour comparer deux symboles, la matrice des erreurs est évaluée de façon récurrente C(i j) = A(i,j) x B(i,j) Puis chaque point est pondéré par des coefficients de pondération p(i,j) de façon A donner plus d'importance aux grou pes d'erreurs en tenant compte des points du voisinage, tel que défini ci-dessus, comparativement aux erreurs isolées.La somme des erreurs pondérées devient alors avec IMAX nombre de lignes, JMAX nombre de colonnes i et j sont respectivement les indices de lignes et de colonnes. L'originalité du procédé d'identification mis en oeuvre réside dans le fait qu'il opère par rapport aux centres do gravité du prototype et dii symbole inconnu. Ces deux points caracté ristiques G A et GB servent d'origines pour faire correspondre au mieux les deux symboles à comparer. La figure 9 est un schéma illustrant ]e procédé utilisé La solution retenue consiste à détecter la position du centre de gravité par rapport à des frontières de décision D et x Dy orthogonales, définissant quatre cadrans J à IV et à sélectionner les points appartenant à l'une des quatre configurations C, possibles (i = IT à à @V@) avec neuf décalages horizontaux cii verticaux ai maximum. Itne fois ce "centrage" réalisé, une méthode de mise en correspondance particulière opère sur une représentation des symboles sous forme de transitions et non sur la carte des bits. Ceci a deux avantages - Le traitement est effectué non plus au niveau du bit, mais ai, niveau du mot. - L'essentiel du traitement est effectué sur les points porteurs de l'information, c'est-à-dire les transitions. Par ailleurs, une somme des erreurs pondérées est calculée de façon récurrente sur les "lignes dc symboles" à comparer, ce qui permet d'arrêter un test d'identification dès que le seuil est atteint. Tes figures 10a, lOb, 10@, 10d illustrent la comparaison fine de deux formes et montre comment sont évaluées les erreurs pondérées. Soient le symbole inconnu A (figure 10a) et le symbole prototype B (figure 10b), l'erreur linéaire, résultat de la comparaison de ces symboles, est stockée dans une matrice d'erreurs dimensionnées à la largeur maximale des symboles (figure 10c) par comparaison bit à bit. La figure 10d représente la matrice des erreurs pondérées correspondantes. Ainsi, le symbole A est considéré comme reconnu si la somme des erreurs pondérées est inférieure à un seuil adaptatif donné. La valeur de ce seuil est sélectionnée en fonction de la classe du symbole. Les figures 11 et 12 présentent les organigramme des algorithmes utilises. La figure 11 montre comment se déroule la comparaison de deux formes 1 et 2. SOM est la somme pondérée des erreurs. i indice ligne, i l'ind ce colonne avive On a également défini 3 vecteurs POND1, POND2 et POND3, dimensionnés é la largeur maximale des symboles (JMAX), dans lesquels on cumule les pondérations linéaires survenues lors de la comparaison de deux lignes. Lorsqu on a traité la ligne de rang i, POND1 donne pour les erreurs survenues sur la ligne précédente (i-1) le poids de l'erreur correspondant ; POND2 contient le début du calcul des pondérations pour la ligne i (évalue sur les lignes i - 1 et i) et POND3 le début du calcul des pondérations pour la ligne i + 1 (évalué sur la ligne i).En fin de traitement des lignes de rang i on effectue une rotation sur ces 3 vecteurs: POND1= POND2 POND2 = POND3 POND3 = O La figure 12 montre la comparaison des deux lignes de rang i pour l'identification et montre comment sont évalués ou réactualisés les différent vecteurs (ERR2, POND1, POND2, POND3). N1 et N2 représentent le nombre de transitions sur la ligne i des deux formes 1 et 2, x1 (n1) et x2 (n2) les transitions de rang n1 et n2 des deux formes 1 et 2 sur la ligne i. Pour chaque ligne, on considère qu'il y a une transition fictive située apres le dernier élément réel de la ligne. La fig re 13 présente les différentes étapes décrites ci-dessus. Unp autre originalité de la méthode réside dans la recherche de l'ordre optimal des décalages du centre de gravité de la forme anonyme, de manière à effectuer en premier ceux qui sont censés fournir le meilleur résultat. Cet ordre dépend des positions relatives des centres de gravité des deux formes à comparer.La figure 14a représente les positions réelles des centres de gravité de la forme anonyme et du symbole bibliothèque et la figure 14b represente les 16 configurations relatives pos ibles de ces deux centres do gravité. la rechrche de l'ordre optimal des décalages dii centre de gravité est lié à ces configurations Cette mesure, associée à l'artualisation du seuil,. permet d'abandonner plus rapidement la -econnaissance fine si il i'- 'y a pas correspondance, et ainsi de diminuer le nombre de ligne analysées. Comme indiqué ci-dessus, les vecteurs d'état oui caractérisent les formes extraites de l'image du document analysé, sont stockés dans une mémoire d'états 11, adressée par les labels de forme Fi . Aussi, lors du procédé récursif d'actualisation de ces vecteurs, des fusionnements de symboles connexes sont opé rs s et les zones mémoires occupées par les symboles absorbés doivent être affectées à d'autres symboles afin d'éviter la saturation rapide de la mémoire d'état dont la taille est limitée. La description qui suit se rapporte d'une part å la détermination de la taille optimale de la mémoire d'états, et d'autre part aux procédures spéciales permettant une bonne gestion de cette mémoire. Afin de faciliter l'intégration de la mémoire d'états 11 (voir figure 4) dans les terminaux de télécopie, il faut choisir une mémoire de capacité réduite et l'utiliser de manière optimale en respectant les contraintes suivantes - Traiter les symboles terminés à la fréquence ligne et rafraîchir un indicateur d'occupation correspondant à ces zones, - Récupérer rapidement les labels des zones occupées par des symboles absorbés ou traités et les affecter à de nouveaux symboles, afin d'éviter le cumul d'informations inutiles. - Activer occasionnellement une procédure spéciale quand la mémoire est remplie, afin d'éviter tout risque de débordement. Afin de distinguer la zone mémoire Fi, rendue disponible suite à une absorption, on utilise un indicateur d'occupation EAT qui peut prendre la valeur "0' ou "I", selon que la zone mémoire est occupée par une forme en cours d'extraction (EAT (Fi) = O) ou qu'elle est disponible pour une éventuelle affectation EAT(Fi) = 1. Par ailleurs, pour limiter le retard entre le codeur et le décodeur, la hauteur des symboles est limitée à la valeur optimale: H. Le traitement de ces symboles pour la reconnaissance fine nécessite donc une mémoire tampon de H lignes (Il = 40 comme indiqué ci-dessiis pour la résolution 300 points pouce) que l'on glisse dans le sens de balayage de l'analyseur du document. Le rafraîchissement de l'indicateur d'occupation de zone se fait alors de la manière suivante a) Se placer à la fin de la ligne courante : JL. b) Extraire de la mémoire d'états les symboles d'indice i, affectés déjà à un symbole donné en testant la valeur de l'or- donnée Emax, initialiset à la fin du traitement du symbole correspondant. c) Vérifier dans ce cas si ]e label affecté à ce symbole a été initialisé à la ligne JL-H en la comparant à l'ordonnée Ymin. d) Tester I'indication d'occupation des symboles initialisés, afin de savoir s'ils ont été absorbés par d'autres symboles. e) Traiter les symboles terminés. f) Rafraîchir l'indicateur d'occupation des symboles traités. Ayant limité.. la taille de la mémoire d'état, l'occupation de cette mémoire est optimisée en réutilisant les zones libérées grâce aux procédures définies précédemment. L'affectation (l'une zone mémoire À un nouveau symbole se fait alors de la manière suivante comme le montre l'organigramme de la figure 15 Au début de l'analyse d'un document, le' mode initialisation conduit à l'initialisation de l'indicateur d'occupation EAT(Fi), de l'indice de remplissage de mémoire, Sat = O, l'introduction de la taille mémoire maximale utilisable Tmax et l'initialisation du nombre de sauts, NSaut = O. a) Le numéro de zone est incrémenté d'une unité, en même temps que l'indice de remplissage de la mémoire Fi = FI+1 Sat = Sat @ 1. b) Le numéro résultant Fi ost vérifié poir s assurer qu'il ne conduit pas à un débordement de la mémoire; Si Fi > T alors la valeur "1" lui est affectée. max c) Le label Fi est vérifié pour s assurer qu'il correspond bien à une zone libre en testant l'état de ]'indicateur d'occupation EAT(Fi) = 0. d) Si oui ce label est alors affecté à un nouveau symbole @ ZC = Fi. e) Si non, après un test de l'indice de saturation et si Sat n'est pas supérieur à T , ce numéro est incrémenté max d'une unité, la procédure étant reprise en a). A partir du traitement de différents types de documents l'occupation de la mémoire d'état au cours du traitement a été testée : le nombre de symboles parallèles est très important pour certains types de documents et ne dépasse guère la centaine pour les autres documents. Une procédure spéciale de récupération est donc nécessaire, afin d'éviter un éventuel débordement. Aussi, quand la mémoire est remplie, c'est-à-dire quand Sat est supérieur à T max , les règles suivantes sont suivies a) le processus d'extraction des formes s'arrête, dans le module d'extraction 10. b) Les symboles terminés sont traités et les variables mises à jour, comme représenté sur l'organigramme de la figure 16 qui illustre le procédé de traitement des symboles. c) l'analyse du document est reprise. Dans le cas où le nombre de zones récupérées est inférieur à une fraction, par exemple 5 & de la taille de la mémoire, ce qui peut se produire si la ligne traitée ne porte pas d'informations, on poursuit le traitement des symboles initialisés à la ligne et ainsi de suite. La gestion de la bibliothèque 30 est assurée de la ma erse suivante Soif M le non.'.re total de symboles en bibliothèque. Compte-tenu de son influence sur l'efficacité de la méthode de compression, la bibliothèque est prévue pour accueillir les vecteurs d état de 256 symboles en parallèle adressés par leurs index en bibliothèque L'intervalle de définition de la valeur de Ni est donc le suivant 1 # M # 256 En cours de traitement, deux cas peuvent se présenter suivant que le symbole courant a été identifié à un prototype stocké en bibliothèque ou non. - Quand un symbole est identifié à un prototype rangé à l'index K de la bibliothèque, ce prototype est déplacé à la position R '2, tandis que les index des symboles compris entre K/2 et K-1 sont incrémentés de 1, car la probabilité d'occurrence de ce symbole a augmenté. - Quand un nouveau symbole est ajouté, l'index M/2 lui est attribué. Les index des prototypes compris entre M/2 et M-1 sont alors incrémentés de l, en effaçant si nécessaire le dernier symbole de la liste. Pour la procédure d'actualisation de la bibliothèque les informations constituant les composantes des vecteurs d'état correspondant aux symboles prototypes stockés en bibliothèque sont indiqué s ci-après. Il y a 18 types d'informations différentes, codés sur des nombres de bits fonction de leur variation maximum.Chaque type d'informations peut comporter un ou plusieurs éléments d'informations ainsi codés, par exemple le nombre de segments latéraux (1 élément d'information), les ordonnées absolues de ces segments (autant d'éléments d'information que de segments latéraux) ect.... comme le montre le tableau ci-après Désignation de Notation Variation Nombre Nombre Coût l'informa ion Maximum de bits d'éléments bina-ire stockée Abscisse absolue @ 2480 i2 70 84( des segments .Ordonnée absolue Y 350@ 12 70 840 des segmen@s .Longueur ces L 248 2 70 840 segments Suite en ligne Sx F 10 3G filtrée et réduite Suite en colonne Sy 8 > 10 30 filtrée et réduite .Indice de proxi- Lx 40 6 1 6 mité ligne .Indice de proxi- Ly 40 6 1 6 mité colonne .Abscisse Xmin 2480 12 1 12 minimum .Abscisse Xmax 2480 12 1 12 maximum .Ordonné Y . 3504 12 1 12 minimum min Ordonnée Y 3540 12 1 12 maximum max .Abscisse du centre de gravité Gx 2480 32 1 32 type réel .Ordonnée du centre de gravité Gy 3504 32 1 32 type réel .Taille du NM 40*2480 17 1 17 symbole .Nombre de seg- NSEGH 70 7 1 7 ments latéraux .Nombre de seg- NSEGV 2480 12 1 12 ments verticaux .Pointeur d'index INDEX2 256 8 1 8 Index ordonné INDEX1 256 8 1 8 Cette quantité de données est très importante ; il est donc nécessaire d'utiliser un artifice qui permet d'éviter le déplacement de cet ensemble de descriptions à chaque mise à jour de la bibliothèque. La solution adoptée illustrée par la figure 17 consiste à associer à la partie mémoire composantes 31 de la bibliothèque 30 un vecteur d'index ordonné 33, adressé indirectement par un pointeur de même dimension 32. Ainsi, l'actualisation de la bibliothèque est réduite au rafraîchissement de ce vecteur, pour l'application de la règle de gestion de bibliot@èque définie ci-dessus. Lorsqu'une forme anonyme a est identifiée à un symbole b stocké en bibliothèque, on ne transmet que la position absolue de cette forme et l'index du symbole bibliothéque. L'inconvénient majeur d'une telle méthode est qu'une différence entre les tailles des symboles a et b se traduit par un décalage horizontal et/ou vertical inter-symboles qui dégrade la qualité de restitution du document traité. Afin de remédier à ce défaut, une procédure de correction atténue la visibilité des distorsions introduites par la différence de taille entre la forme reconnue et le symbole reproduit. Pour illustrer une telle procédure, on considère sur la figure 18, d'une part le symbole b de hauteur hb et de largeur lb, et d'autre part la forme i de hauteur hi et largeur 1. . On prend comme référence la ligne Ymax définie par la base de l'enveloppe de i et on cherche à positionner le symbole identifié de telle sorte qu'il soit équidistant des symboles adjacents. Ainsi, suivant les valeurs de li et lb, trois cas peuvent se présenter : a) li > 1b : il faut retarder l'impression du symbole b de la quantité (1 - 1b)/2. b) li = 1b : aucun décalage n'est introduit. c) 1. i b' la quantité (lb - 1i)/2 Ainsi, pour déterminer l'abscisse absolue corrigée xi de la position de la forme i et le décalage vertical t; y nécessaire à son alignement, on procède de la manière suivante - calcul de la distance entre le symbole i et le prototype b - calcul de la position du symbole identifié sans tenir compte des corrections éventuelles xi@ = xb + dx - calcul des décalages à introduire @ x = ENT|(L@-Lb). 2|; #y = hi-hb - calcul de l'abscisse absolue corrigée x = x . + x c i La description qui précède a détaillé les modules d'extraction, de reconnaissance, et de gestion dc la bibliothèque des symboles prototypes. Dans ce qui suit, le module de codage de l'information contenue dans une page de télécopie et, parallèlement, le décodeur correspondant sont décrits. Le principe du codage consiste à utiliser le vecteur d'états caractéristique de la forme extraite. En effet, parmi les composantes de ce vecteur d'états, on a la description des contours de la forme par les abscisses et les ordonnées des segments, cette description correspondant à une succession de segments connexes définis par leurs transitions. On peut donc mettre à profit cette connexité en codant les transitions différentiellement les unes par rapport aux autres, et en utilisant des codes à longueur variable. Comme indiqué ci-dessus, les composantes du vecteur d'états qui caractérisent les formes extraites de l'image du document analysé, représentent d'une part les paramètres nécessaires à la préreconnaissance et d'autre part la description du symbole sous forme de suite de segments connexes dont le nombre est limité. Cette description fine du symbole sert dans la deuxième phase de décision qui opère par test d'identifica tion entre un symbole inconnu et un symbole prototype stocké -en bibliothèque. C'est cette même description qffi va servir pour coder l'information relative au symbole proprement dit. Selon l'invention, la méthode de codage préférée consiste à coder les segments les uns par rapport aux autres. Au préala ble, un traitement permet d'organiser séquentiellement les seg ments connexes contenus dans un symbole de manière à optimiser le codage de l'information. L'intérêt d'un tel traitement Pst qu'il permet d ,rgani- ser les composantes iii vecteur d'état, de manière à obtenir un codage séquentiel des segments qui constituent un symbole, sans faire appel à une mémoire tampon auxiliaire dont la dimension serait équivalente à 2 fois la taule maximum d'un symbole, soit : 2Lli. L et H étant respectivement la largeur du document et la hauteur limite pour décrire un symbole L = 2480 (points) H = 40 (lignes) Pour cela, au cours de l'extraction des points connexes d'un symbole, on stocke dans un fichier SEGMENT les informations de position et de longueur de ces segments. Ainsi au moment de l'absorption d'une zone par une autre zone, les segments de la zone absorbée et de la zone absorbante sont réorganisés, de telle manière que les segments soient ordonnés dans le sens du balayage du document (de haut en bas et de gauche à droite). La figure 19 illustre les segments caractéri- sant un symbole. Les composantes des vecteurs d'état des zones ZA et ZB avant absorption sont données par les tableaux suivants Vecteur d'état de ZA : N ligne 1 2 3 4 5 N segment S1 S2 S3 S4 S5 Vecteur d'état de N ligne 2 3 4 5 N segment S1' S2' S3' S4' Après absorption, la suite arrangée des segments connexes formant des composantes du vecteur d'état de la zone absorbante devient alors N ligne 1 2 2 3 3 4 4 5 5 N segment S1 S2 S1' S3 S2' S4 S3' $5 S4' Le procédé de réarrangement est décrit ci-après en réfé rence à son organigramme représente sur la figure 20. étape 1 : Sauvegarde du fichier SEGMENT ZA (prend) dans une mémoire tampon auxiliaire, dans lequel la variable est "Trans" étape 2 . faire - si segment de la forme absorbante ZA plus haut que @elui de la forme absorbée ZB faire segment (prend) Trans étape 3 - effectuer un test sur le nombre de segments si fin forme FIN Si non fin de la forme, reprendre le début de l'étape 2. - si les segments sont sur la même ligne faire si le segment de la forme absorbante est à gauche de la forme absorbée faire segment (prend) Trans si le segment de la forme absorbante n'est pas à gauche de la forme absorbante faire segment (prend) Segment pris Dans les deux cas, effectuer ensuite le test de fin de forme (reprendre en 3). Une fois les segments réarrangés dans le fichier "segments", il est possible de réaliser un codage, différentiel par transition. Un symbole est un ensemble de segments connexes caractérisés par les coordonnées de. leurs transitions. L'image binaire d'un document peut donc être entièrement déterminée à partir des informations de position et de longueur de ces segments. Ainsi, à partir du segment de référence appelé segment père, défini par ses coordonnées ();0, Ye) de début et sa longueur, chaque segment est codé par rapport au père précédent de la façon suivante Le père courant est déduit du père précédent.Les données à transmettre sont ainsi - x : écart entre l'extrémité du père courant et l'extrémité du père précédent (abscisse relative) - y : écart entre la ligne en cours et la ligne correspondant au pere précédent (ordonnée relative) - Lp: longueur du segment père de référence - dL : écart entre la longueur du père courant et la p longueur du père précédent (longueur relative) Les résultats obtenus peuvent être de 2 types a) - le père courant est un fils du père précédent c'est le cas le plus fréquent. b) - le père courant n'est pas un fils du père précédent ces événements sont plus rares que ceux du type précédent. Ils nécessitent donc des codes à longueur variable plus longs. Cela se produit lorsque des symboles composés de plusieurs branches sont extraits et que les segments successifs appartiennent à des branches différentes. Pour prendre en compte l'information de connexité, les données de position sont codées avec la méthode de HUFEMAN. Mais, ce type de codage n'est intéressant que si les événements à coder sont concentrés autour de valeurs très probables avec des écarts faibles. La méthode de codage originale selon l'invention utilise au mieux les codes à longueur variable. Son organigramme est représenté sur la figure 21. Ce codage utilise deux variables : un pas de travail : Pw, et un pas temporaire Pt étape 1 : initialisation des variables P =1 w Pt = 1 étape 2 : Tant que l'on n'a pas atteint le nombre de segments de la la formr résultat c'est-à-dire la fin de la forme. faire 1. Si le segment courant est sur la même ligne que le segment précédent, c'est-à-dire si y = O incrémenter le pas temporaire Pt = Pt + 1 a) si pas travail est supérieur ou égal au pas temporaire, coder le segment courant par rapport au segment donné par le pas travail : variable "rang" = Pw , puis reprendre au début de l'étape 2 b) si pas de travail est inférieur au pas temporaire coder le segment courant par rapport au segment précédent, c'est-à-dire faire "rang = 1" puis reprendre au début de l'étape 2. 2. si le segment courant et le segment précédent ne sont pas sur la même ligne affecter au pas de travail la valeur du pas temporaire : Pw = Pt . réinitialiser le pas temporaire Pt = 1 . coder le segment courant par rapport au segment donné par le pas de travail : rang = Pw puis reprendre au w début de l'étape 2. Ce traitement s'arrête lorsque la fin de la forme est détectée. Le procédé de codage particulièrement adapté aux segments caractérisant les symboles et optimisé pour minimiser la longueur moyenne des mots de code d'HUFFMAN utilisés pour coder différentiellement les transitions peut être remplacé par un autre procédé de codage. Plus particulièrement, le procédé de codage dit "bidimensionnel READ adapté", défini dans une recommandation du CCITT peut également être utilisé. Il s'agit d'un procédé de codage bidimensionnel ligne à ligne, dans lequel la position de chaque élément d'image différent de l'élément précédent sur la ligne en cours ou sur la ligne de codage, est codée par rapport à la position d'un élément de référence correspondant situe sur la ligne de codage ou sur la ligne de référence placée immédiatement au-dessus de la ligne de codage. Après le codage de la ligne courante, cette ligne devient la ligne de référence pour la ligne de codage suivante. Dans une page, on prend comme ligne de référence pour la première ligne de codage, une ligne blanche fictive. Ce procédé, connu en soi, ne sera pas décrit en détails. D'après l'analyse des coûts moyens de codage d'un symbole pour les différentes méthodes de codage suivantes codage différentiel des transitions codage READ . codage READ adapté. et pour 8 documents à transmettre comportant des carac tères de types différents, on peut constater que le procédé de codage READ adapté est très performant. Cependant, la méthode de codage differentiel des transitions décrite en détails ci-dessus semble être plus adaptée aux documents de type manuscrits et surtout pour les symboles de taille importante. Il faut noter que le code READ classique est plutôt -adapté au codage des résidus et semble être moins efficace pour les documents de télécopie, utilisant la reconnaissance des formes. Le document étant analysé ligne par ligne ; son codage est également effectué à la fréquence ligne. L'organigramme représenté sur la figure 22 illustre la succession des différentes opérations élémentaires menées pour le codage des symboles d'une ligne Les lignes importantes pour le codage, dites "lignes actives" sont toutes les lignes sur lesquelles au moins un début de symbole a été détecté. . Cette détection s'effectue en fin de ligne par balayage séquentiel de la mémoire d'état. Ainsi, tous les symboles terminés, naturellement ou artificiellement, doivent être inscriptibles dans une mémoire tampon glissante de H lignes (H = 40 pour la résolution 300 points/pouce). Un mot de code est utilisé pour indiquer s'il existe ou non des symboles sur la ligne , il est note SYMFLAG et est codé sur 1 élément binaire. Suivant que le symbole détecté sur la ligne a été identifié ou non par le module de reconnaissance deux cas se produisent au niveau du codage 1 : Cas d-'un symbole identifié - Codage de l'abscisse relative corrigée Afin de limiter les dégradations apportées par la différence de taille entre un symbole en cours de codage et un prototype stocké en bibliothèque, on ajoute à la valeur de l'abscisse du coin gauche de l'enveloppe contenant le symbole, le décalage qui permet de retarder ou avancer l'impression du symbole comme indiqué ci-dessus. Cette valeur représente initialement l'abscisse absolue corrigée du symbole sur la ligne, et son codage nécessite 12 bits. Une version optimisée du codeur permet de ne coder que l'abscisse relative du symbole par rapport au symbole précédent sur la ligne, et ceci en longueur variable. La longueur moyenne des mots de code par abscisse est alors de 9.21 bits au lieu de 12 bits par symbole. Ce codage diffère légèrement du codage d'HUFFMAN, en ce sens que seule une partie du mot de code (ou Prefixe) est établie à partir d'un arbre de HUFFMAN. Les différentes valeurs de l'abscisse relative des symboles sont réparties en plusieurs intervalles (16 classes notées 1 à 16). Chaque classe est caraetérisée par un préfixe (première partie du mot de code) établi d'après un arbre d'HUFFMAN et comporte entre 3 et 6 bits. Les éléments situés dans un intervalle donné sont repérés dans la classe par des index codés sur un nombre de bits défini (seconde partie du mot de code) : 3 bits pour les classes 2 à 15 et 12 bits pour la classe 1 et la classe 16. Ainsi, le mot de code C(x) représentant l'abscisse relative d'un symbole peut s'écrire de la manière suivante C(x) (préfixe, index) selon des mots de code de longueur totale variant entre 6 et 16 bits de la manière suivante Classe Préfixe Index Abscisse relative 1 0000 +12 bits 2480#11 2 00110 12#19 3 100 20#27 4 001111 28#35 5 0010 36#43 6 10111 44#51 7 101100 52#59 8 10101 60#67 9 101001 # +3 bits 68#75 10 101101 76#83 11 00010 84#91 12 101000 92#99 13 000111 100 107 14 001110 108#115 15 000110 116#123 16 11#+12 bits 124#2480 (17) 01 PLUS DE SYMBOLE Un mot de codage particulier 01 indique qu'il n'y a plus de symbole codé sur la ligne, "NO MORE SYMBOL". - Codage de l'index bibliothèque Le document est examiné ligne après ligne et les symboles qui sont extraits au fur et à mesure, sont comparés avec les symboles précédemment rencontrés qui ont été stockés dans la bibliothèque de symboles prototypes. Si le symbole a déjà été rencontré, l'index bibliothèque est émis, sinon une description du symbole est d'une part rangée en bibliothèque et d'autre part transmise. Ainsi, pour une bibliothèque qui peut accueillir 256 symboles en parallèle, le coût de transmission de l'index est de 8 bits.La procédure de gestion utilisée pour mettre à jour cette bibliothèque décrite ci-dessus, a l'avantage de permettre la construction d'un vecteur index ordonné de manière à obtenir un codage efficace de celui-ci à l'aide de mots de codes à longueur variable entre 4 et 12 bits construits suivant la méthode déjà décrite pour le codage de l'abscisse relative corrigée. Ainsi, le code C() représentant l'index bibliothèque peut être le suivant Classe Préfixe Index/Classe Index Bibliothèque 1 010 + 1 bit 1 - 2 2 lii + 2 bits 3 - 6 3 10 + 3 bits 7 - 14 4 110 + 3 bits 15 - 22 5 0110 + 3 bits 23 - 30 6 0111 + 4 bits 31 - 46 7 0011 + 5 bits 47 - 78 8 00101 + 6 bits 79 - 142 9 00100 + 7 bits 143 - 256 10 000 NEW SYMBOL La partie préfixe résulte d'un arbre de codage de HUFFMAN.Un code particulier 000 est utilisé pour indiquer qu'il s'agit d'un nouveau symbole "NEW SYMBOL". La longueur moyenne de C(b) est ainsi ramenée de 8 bits pour une bibliothèque comportant 256 symboles prototypes à moins de 6.4 bits pour les documents de référence types en fac-similé : lettres d'affalres ou documents dactylographiés plus denses. - Codage du décalage vertical Afin d'atténuer la visibilité des distorsions introduites par la différence de taille entre un symbole courant et un symbole prototype reproduit, une procédure de correction tient compte, à la restitution, de la différence de hauteurs inter-symboles. Le codage du décalage vertical ainsi introduit est fait au moyen de mots de code à longueur variable. Les statistiques faites sur les différents documents du CCITT montrent que ce décalage est centré autour de la valeur zéro et peut varier entre -3 et +3 lignes. Le codage de HUFFMAN est donc optimum pour ce type de répartition. Le tableau de codage peut être le suivant Classe Code Décalage vertical b1 b2 b3 b4 b5 b6 1 0000cl - 3 2 0001 - 2 3 01 - 1 4 1 O 5 001 1 6 00001 2 7 000000 3 La longueur moyenne des mots de codes ainsi construits est ramenée de 3 bits pour un codage à longueur fixe à 1.69 bit pour un codage. à longueur variable. - Mise à jour de la bibliothèque: Quand un symbole est identifié à un prototype rangé à l'index k de la bibliothèque, ce prototype est déplacé à la position k/2, tandis que les index des symboles compris entre k/2 et k-l sont incrémentés de 1. 2 : Cas d'un nouveau symbole - Codage de l'abscisse relative Le codage de la position du coin gauche de l'enveloppe contenant le symbole courant, se fait de la même manière que pour un symbole identifié - Codage de "NEW SYMBOL" Un mot de code noté "NEW SYMBOL" indique au décodeur qu'il s'agit d'un nouveau symbole sur la ligne.Afin de le différencier d'un symbole appartenant déjà à la bibliothèque, on a rajouté, à la table de codage des index, son code correspondant "NEW SYMBOL" comme le montre le tableau de codage des index bibliothèque ci-dessus - Codage de la hauteur du symbole Tous les symboles tiennent sur la même largeur (2480), quitte à ajouter des marges de la couleur du fond, Los h lignes de l points représentant le symbole à coder sont alors mises bout à bout pour ne former qu une seule ligne à coder. Il est nécessaire de coder la hauteur des nouveaux symboles afin de permettre au décodeur de régénérer la description initiale des symboles reçus.Les statistiques effectuées sur ce paramètre montrent qu'un codage du type HUFFMAN permet de limiter la longueur moyenne des mots de code à 3.80 bits au lieu de 6 bits initialement. Le tableau de codage peut être le suivant hauteur longueur Code hauteur longueur Code d'Huffman d'Huffman 1 8 10010000 20 2 00 2 9 100101111 21 3 111 3 8 10010101 22 5 11011 4 5 01010 23 7 1001001 5 5 11010 24 7 0110010 6 5 01001 25 5 01000 7 7 0110011 26 5 10011 8 8 01011100 27 4 1000 9 8 10010110 28 4 1100 10 8 10010001 29 4 0111 11 9 010111010 30 6 011000 12 9 010110010 31 10 0101100110 13 8 01011000 32 9 100101001 14 7 0101111 33 9 010111011 15 7 0101101 34 11 01011001111 16 9 100101000 35 15 010110011100110 17 9 100101110 36 15 010110011100111 18 5 01101 37 12 010110011101 19 3 101 38 14 01011001110000 39 14 01011001110001 40 14 01011001110010 - Introduction du symbole en bibliothèque Quand un nouveau symbole est ajouté, on lui attribue l'index M/2 (M étant le nombre total de symboles en bibliothe- que). Les index des prototypes compris entre M/2 et M-l sont alors incrémentés de 1, en effaçant si nécessaire le dernier symbole de la liste, comme indiqué ci-dessus. - Signalisation de la fin d'une ligne active Dans la table de codage des abscisses relatives des symboles (identifiés ou non) donnée ci-dessus, un mot de code noté "NO MORE SYMBOL" est prévu. Ainsi, tant qu'il y a des symboles sur la ligne active, la chaîne de codage continue jusqu a ce que cette condition ne soit plus vérifiée. Dans ce cas, cet événement est signalé au décodeur en envoyant le mot de code correspondant, à la fin de la ligne active. La description qui suit se rapporte au décodage d'une page de télécopie transmise via le réseau de télécommunications après le codage décrit ci-dessus Le codage et le décodage doivent être cohérents. Le rôle du décodeur est donc de reproduire, à partir d'un fichier de données codées et compactées, tous les symboles rencontrés dans le plan de l'image à transmettre. La source de ces symboles est - soit la description d'un nouveau symbole stockée dans la mémoire d'état, quand on détecte dans le train binaire le mot de code noté "NEW SYMBOL". - soit la bibliothèque de symboles prototypes, quand on détecte dans le train binaire un mot de code correspondant à un index bibliothèque. Le problème est donc de délimiter les mots de code et de retrouver leur signification. D'autre part, une bibliothèque de symboles qui avait été construite dynamiquement pour le codage d'un document, est créée et gérée de la même façon pour le décodage, ceci afin que les références bibliothéquées aient une juste signification. Trois méthodes principales de décodage peuvent être utilisées - méthode par cheminement dans un arbre de codage, - méthode par Indexation directe, - méthode par indexation dans les tables chainées. La première méthode demande peu d'encombrement mémoire, mais un temps de calcul relativement long. La deuxième méthode présente des caractéristiques inverses Elle nécessite un tableau de longueur 2LMAX ou LMAX est la longueur en bits du mot de code le plus long. Enfin, la troisième méthode est intermédiaire entre les deux premières. Elle consiste à découper un arbre de codage en sous-arbres. La méthode de décodage par cheminement dans l'arbre semble être la mieux adaptée. Son principe consiste à se placer à la racine de l'arbre et à parcourir une branche à chaque étape du décodage ; la brans hue parcourue dépend de la valeur du bit extrait. Le décodeur lit le fichier codé reçu bit à bit et recrée le fichier d'origine en se servant des tables de décodage qui lui permettent de définir la-fin des mots de code et leur signi fiction. Il est clair que pour des codes à longueur fixée, de telles tables ne sont pas nécessaires: on se contente alors de lire le nombre de bits requis et de les interpréter. Afin d'illustrer la technique d'utilisation de ces tables de décodage directement liées aux tables de codage, on considère le message à décoder suivant 0I 1 0010 j 001 11100 01 . . préfixe index ,fP SYMFLAG Abscisse Index décalage relative Bibliothèque vertical à l'aide des tables correspondant aux arbres de HUFFMAN associées aux différents paramètres codés. Les étapes du décodage sont décrites ci-après en référence à la figure 23 qui illustre leur enchaînement. ETAPE 1: Interprétation des mots à longueur fixe : 1 bit, indiquant l'existence ou la non existence de symbole sur la ligne. SYMFLAG = 0: pas de symbole sur la ligne. Un glissement d'une ligne est alors réalisée pour la mémoire tampon de 40 lignes pour passer au décodage éventuel des symboles commen çant sur la ligne suivante. SYMFLAG = 1 : existence de symbole sur la ligne ETAPE 2 : Décodage de l'abscisse à partir de la table des abscisses relatives. Dans l'exemple ci-dessus PREFIXE = 0010#Classe 5 comprise entre 36 et 43 INDEX/CLASSE = 001 3 Position 2 dans classe 5 POSITION = 37 ETAPE 3 : Décodage de l'index (ou "n'E S@ SYMBOL") à partir de la table des index bibliothèque. Dans l'exemple ci-dessus . PREFIXE = 111 # classe 2 comprise entre 3 et 6 . INDEX/CLASSE = 00 # position 1 dans classe 2 . Index bibliothèque = 3 ETAPE 4 : Décodage du décalage vertical pour un symbole connu ou décodage de la hauteur pour un nouveau symbole à partir des tables de codage du décalage verti cal ou de la hauteur. Dans l'exemple ci-dessus Code = 01 , classe 3 décalage = -1 Le message décodé en exemple ci-dessus a donc la signification suivante - une ligne sans symbole - détection d'un symbole décalé d'une ligne vers le haut par rapport à la ligne de référence, et dont l'abscisse relative du coin gauche de son enveloppe par rapport au bord de la page est égale à 37. La description de ce symbole est stockée en bibliothèque à la position 3. Ce symbole étant un symbole en bibliothèque, celle-ci est mise à jour (par son vecteur d'index). Dans le cas ou le symbole est un symbole nouveau, non encore rencontré, il est introduit dans la bibliothèque du décodeur. ETAPE 5 : Le symbole décodé est écrit dans une mémoire tampon : il provient soit de la bibliothèque soit de sa description par segments décodée. ETAPE 6 : Décodage d'une autre abscisse sur la ligne ou de l'indicateur "PLIS DE SYMBOLE" indiquant qu'il y plus de symboles sur la ligne - Si PLUS DE SYMBOT,E = i, alors un glissement dans la mémoire est effectuée pour passer à la ligne suivante ; puis, si la mémoire est pleine, les symbo les sont écrits sur disque et la mémoire est remise à zéro. - Si décodage d'une abscisse associée à un symbole suivant, la procédure est reprise à l'étape 3. Le document ayant été codé ligne par ligne, le décodeur reçoit le code de ces différentes lignes les unes après les autres. Sachant qu'un symbole tient sur plusieurs lignes, sa représentation décodée est conservée en mémoire tant que le décodage complet des lignes correspondantes n'est pas terminé. En tenant compte d'une part de la taille maximale d'un symbole et d'autre part des décalages verticaux tolérés, entre un symbole courant et celui stocké en bibliothèque (+ 3 lignes), la dimension de la mémoire tampon réception sera équivalente à Dbr = 2.L.H +6.L avec L = 2480 points et H = 40 lignes. La qualité d'image obtenue après les traitements de compression et décompression est très satisfaisante: - Résultats en qualité d'image L'évaluation de la qualité d'image a été faite par comparaisons entre des documents originaux et les documents correspondants reconstruits au bout de la chaîne complète des traitements. Ces documents ont été imprimés sur une imprimante gra phique de résolution 300 points/pouce. Plusieurs critères de qualité ont été retenus. - Une mauvaise reconnaissance se manifeste lorsqu'après les traitements, de compression/décompression un caractère du document traité est remplacé par un caractère différent. Au vu des analyses des documents traités : aucune mauvaise reconnaissance sur les caractères alphanumériques (lettres, chiffres, ponctuations, signes diacritiques ...) du document original, n'a été observée. - Le fait de remplacer un symbole naturel ou artificiel identifiable du document original par un élément de la bibliothèque, peut se traduire - soit par un décalage visible (vers le haut ou vers le bas) de la ligne dans le document reconstruit, qui n'était pas présent dans le document original. - soit par centrage du caractère (par rapport aux 2 caractères voisins de la même ligne) différent dans le document reconstruit après traitement et dans le document original. - soit par des irrégularités visibles dans la forme reconstruite après traitement qui n'étaient pas présentes dans la forme originale. Les irrégularités sont notamment les ruptures ou discontinuités dans les contours des formes et les décalages horizontaux ou verticaux d'une partie d'une forme par rapport aux parties voisines de la même forme. Une analyse des documents traités montre qu aucun mauvais positionnement (horizontal, vertical ou relatif) donnant lieu à une distorsion visible, n'a été observé sur les partles caractères et- graphiques. Les résultats obtenus sont les suivants - la qualité de L'image restituée après codage/décodage est donc visuellement identique au document original. - les taux de compression obtenus sur les documents de type essentiellement "caractère" sont nettement supérieurs à ceux obtenus par un codage classique READ. Ces performances doivent permettre d'assurer un temps de transmission inférieur ou égal au temps d'impression, - pour les documents de type essentiellement graphique, les taux de compression sont aussi bons que ceux obtenus avec le code READ groupe 4. - pour les documents de nature mixte ("caractère + graphique") le débit binaire par pixel est égal en moyenne au débit pour les documents de type "caractère". Par ailleurs, l'emploi d'une unité de décision associée au système de reconnaissance a permis de classifier les symboles en quatre catégories - caractères "bien formés" - caractères "empatés" - caracteres "filiformes" - graphismes Le traitement spécifique appliqué à chaque type de symbole a permis d'éviter des confusions évidentes entre les symboles "mal-formés". Les opérations décrites ci-dessus sont commandées par le module de gestion 50 (Fig.2), qui est un ensemble processeur programmé selon les organigrammes décrits ci-dessus. Cependant des gains dans le temps de traitement peuvent être obtenus en remplaçant certaines portions du traitement, commandées par des logiciels, par des opérateurs câblés. La description qui suit définit les différentes portions de l'algorithme susceptibles d'être accélérées par l'utfflsation d'opérateurs cables. Ces opérateurs câblés sont décrits ci-après Dans l'algorithme d'extraction de formes décrit ci-dessus, l'extraction se fait à la fréquence point. Il est possible d'adjoindre un module matériel d'aide à l'analyse qui fournit directement les segments horizontaux d'une ligne sous la forme : abscisse premier point noir, abscisse premier point blanc après le segment. Un module logiciel met alors à jour la mémoire d'état au, rythme des segments et non plus au rythme des points. Les avantages d'une telle structure sont les suivants - La mise à jour de la mémoire d'états est faite moins souvent. En effet, on a remarqué à partir des statistiques faites sur les longueurs des segments que cette mise à jour se fait environ 4 à 5 fois moins souvent. - Les fonctions "Recherche des points porteurs d'information", "Recherche des connexités autour du point" et Mise à jour de la mémoire ligne à la fréquence point" ne sont plus utilisées alors que ce sont ces fonctions qui consomment du temps" . - Le nombre d'absorptions successives est diminué. L'extraction des formes proposée est gérée par deux modules représentés sur la figure 24 - Un premier module 500 est un automate matériel qui vient prélever la signal vidéo numérisé (1 ou 0) issu du lecteur 1 pour générer en sortie les segments correspondants. Un segment est codé sous la forme (X1, X2) où X1 est l'abcisse (sur la ligne courante) du premier point noir du segment, et X2 est l'abcìsse du premier point blanc après le segment. De plus, un identificateur est attaché au segment dans le cas où il s'agit du dernier segment de la ligne courante (@dentificateur EOL pour "End of Line"). - Un second module 520 entièrement logiciel procède à l'extraction des formes à partir de ces segments en mettant à jour la mémoire d'états 11. Les descriptifs et formes apparaissant dans cette mémoire sont identiques à ceux déjà fixés ci-dessus. L'automate matériel d'aide à l'extraction, 500, dont le schéma synoptique est représenté sur la figure 25 convertit (en temps réel) le signal vidéo issu du lecteur en segments, de la manière suivante - extraire de chaque ligne l'adresse des segments. Une ligne étant composée de 2480 points : cela fait donc 2480 adresses possibles - indiquer le signal de fin de ligne (EOL). Ce signal de fin de ligne étant un code spécial. Chaque transition noir/blanc ou blanc/noir est mémorisée dans une mémoire RAM 501 d'une capacité de 4K Octets. Deux compteurs par 248C sont donc nécessaires - un compteur d'adresse 502 qui permet de trouver l'adresse du segment sur ]R ligne - un compteur 503 qui permet d'incrémenter les adresses de la mémoire 501 à chaque transition trouvée. Un segment est codé sous la forme X1 : 2 octets, X2 : 2 octets, (EOL): 1 octet. Les différents autres circuits et signaux utilisés ou générés dans l'automate d'extraction 500 et représentés sur la figure 25 sont les suivants - H1 signal d'horloge ; - Fin de ligne : à I durant la ligne et qui passe à O en fin de ligne - H1Val : H1 et fin de ligne issu, d'une porte ET, 505 appliqué aux entrées R/W commande écriture lecture dans la mémoire RAM 4KO, 501. Horloge d'accès EOL d'un module de demande d'accès EOL, 504. Horloge du compteur d'adresse 502 du segment sur la ligne. - H2 horloge d'incrémentation du compteur d'adresse RAM, 503, issu d'une porte ET 506 recevant le signal de sortie de la porte 505 et celui d'une porte ET, 507, et appliqué à ce compteur 503 via un multiplexeur 508. Ce signal génère 2 tops d'horloge à chaque transition noir/blanc et/ou blanc/noir par commande d'un compteur par 4, 509. Ces tops sont appliqués à une entrée de la porte 507 qui reçoit sur son autre entrée le signal vidéo numérise. - Signal de synchronisation ligne : synchro ligne. - TC: fin du comptage de 2480 points par le compteur 502 : commande le module de demande d'accès EOL, 504. Ce signal arrive à chaque fin de ligne. - Accès EOT,. Ce signal arrive à la fin de la ligne. Il permet de générer un code particulier dans la mémoire 501 à chaque fin de ligne par commande d'un générate tr de code EOL, 510. Le signal complémentaire : Accès EOL est également utilisé. - Horloge EOL : H EOL. C'est l'horloge qui incrémente les adresse de la mémoire 501 au moment d'une demande d'accès EOL via Ie multiplexeur 508 qui reçoit également le signal H2. - Fin de ligne. Ce signal est généré par la demande d'accès EOL, une fois que le code EOL est inséré dans la mémoire 501. Ce signal indique au processeur qu'il peut venir chercher les informations dans la mémoire par une demande d'accès DMA, toute la ligne ayant été traitée. Des mémoires tampon 512 et 513 de haute impédance sont insérées entre les compteurs par 2480 respectivement 502 et 503 et la mémoire RAM 501 à laquelle elles sont reliées via un bus de données et un bus d'adresses respectivement. Elles sont commandées respectivement, pour la première, via une porte ET 511, par une demande d'accès du microprocesseur associé ou par l'horloge transmise tant que la ligne n'est pas finie : accès EOL, pour la seconde par la demande d'accès du microprocesseur. La figure 26 est un schéma plus détaillé du circuit de demande d'accès EOL, 504, et du circuit compteur par 4,509, et la figure 27 représente le diagramme des temps d'un exemple des signaux ainsi générés. Le circuit de demande d'accès EOL, comporte trois bascules de type D, BO, B1, B2 et une porte ET. L'entrée de la bascule BO repolit le signal H1Val, sa sortie inversée QO est reliée à son entrée D et sa sortie QO est reliée à l'entrée de la seconde. L'entrée D de la seconde est toujours au niveau haut. Leurs entrées R reçoivent le signal do fin de comptage TC. La sortie non inversée Qi de B1 fournit le signal Accès EOL et est reliée à l'entrée de la troisième bascule B2. La sortie inversée Qui do B1, qui fournit Aeces-EOL est reliée à une entrée de la porte ET qui reçoit également le signal H1Val et fournit le signal d'horloge H.EOL. Enfin l'entrée R de B2 reçoit le signal Synchro ligne, son entrée D est toujours au niveau haut et sa sortie inversée fournit le signal Fin de ligne. Le diviseur par 4 509, est classiquement constitué de deux bascules B3 et B4 dont les sorties inversées Q3 et Q4 sont reliées à leurs entrées D correspondantes et qui reçoivent sur leurs entrées R le signal de synchro ligne. Le module logiciel 550 d'extraction des formes à partir des segments est alors défini de la manière suivante, autour de trois fonctions - une fonction d'allocation d'un segment à une forme - une fonction de recherche des connexités - une fonction de calcul des paramètres de la forme. Ces fonctions s'appuient sur les mêmes principes (en ce qui concerne l'allocation d'un segment à une forme et la recherche des connexités) que l'algorithme d'extraction fondé sur les points, décrit ci-dessus. L'enchainement de ces trois fonctions est représenté sur le schéma fonctionnel de la figure 28. La première fonction est l'allocation d'un segment à une forme : cette fonction attribue une forme au segment courant les différents cas susceptibles de se présenter sont listés ci-dessous cas 1 : pas de forme sur la ligne précédente entre (X1 - 1) et X2, alors il y a initialisation d'une nouvelle forme. cas 2 : 1 segment sur la ligne précédente entre (X1 - 1) et X2, appartenant à une forme F1; alors le segment courant appartient à la forme F1. cas 3 : n (n > 1) segments sur la ligne précédente entre (X1 - 1) et X2 appartenant à des formes différentes F1, F2. - si F1 n'a pas absorbé alors .F2 absorbe F1 segment courant appartient à F2 - si F1 a déjà absorbé alors F F1 absorbe F2 .segment courant appartient à F1 - si F2 = F1 il y a propagation de la forme F1; le segment courant appartient à la forme F1 . Il est envisageable de ne plus faire la distinction suivant que F1 a déjà ou non absorbé et de décider que F1 absorbe F9 ce qui correspond à la propagation de gauche à droite de la forme F1. La seconde fonction est la recherche des connexités: Cette fonction détecte les connexités du segment courant en déterminant les segments de la ligne précédente qui appartiennent à la même forme. c'est-a-dire qui ont des points d'abcisse X vérifiant la relation X X1 - 1 ou X v Les deux tests de connexité vont permettre de mettre à jour facilement les paramètres "verticaux" du descriptif de la forme (nombre de segments verticaux, suite Y) sans revenir au niveau du point. La recherche des connexités est détaillée ci-après Soit un segment référencé par Xl, X2 (EOL) sur la ligne courante. La recherche des connexités consiste à détecter 1) s'il y a un segment appartenant à la même forme avant X1 sur la ligne courante : il aura comme référence X'1 X'2 Si oui, on recherche les segments de la ligne précédente appartenant à la même forme et compris entre X'2 et XI alors Naval = somme des points de ces segments tels que abscisse soit supérieure ou égale à X'2 et inférieure ou égale à xl. Si non, on recherche les segments de la ligne précédente appartenant à la même forme et compris entre le début de la ligne et X1 - 1 : alors on définit Naval = somme des points de ces segments tels que abscisse soit inférieure ou égale à X1 - 1. 2) S'il y a un segment appartenant à la ligne courante "connexe" à un des segments de la ligne précédente appartenant à la même forme et compris entre X2 et fin de la ligne : il aura comme référence X"1 X"2. On définit alors une variable Namont @ si oui, Namont = 0 @ si non, Namont = somme des points de ces segments, tels que abscisse soit supérieure,ou égale X2. La troisième fonction est le calcul dos paramètres de la forme. Cette fon L'algorithme correspondant est détaillé ci-dessous: Hypothèses On considère une forme dont lo descriptif à un instant donné est le suivant Ordonnée Xmin Abscisse Xmin Hauteur Y max - Y min @ Largeur Xmax@@@ @ Xmin @NSEGH NSEGV @ N.M taille de la forme (nombre de points) Somme X Somme Y Suite X Suite Y Table des transitions segments sous la forme X1, X2, EOL (si dernier segment de la ligne) Indicateur graphique/caractère auxquels on ajoute deux autres paramètres .Ymax .Xmax (deux paramètres longueur-suite-X et longueur-suite-Y sont calculés lors de la terminaison de la forme) On considère un segment courant sur la ligne courante Ylc avec les paramètres caractéristiques X1, X2, (EOL). Naval et Namont qui appartient à la même forme dont on doit mettre à jour le descriptif. On effectue les opérations suivantes 1) mise à jour Ymin si initialisation de la forme alors Y min = Ylc 2) mise à jour Xmin si (Xmin X1) alors (Xmin = x1) 3) mise à jour Hauteur : (et Ymax) @@@ si (Ymax .(Ymax = Ymax + 1) 4) mise à jour Largeur : (et Xmax) si (Xamx .(Xmax = X2 - 1) si (Xmin > X1) alors (largeur = Largeur + min - X 5) mise à jour NSEGH NSEGH + NSEGH + 1 6) mise à jour NSEGV NSEGV = NSEGV + Naval + Namont 7) mise à jour du nombre de points de la forme NM = NM + X2 - X1 8) mise à jour Somme- X Somme X = Somme X + (somme des abcisses de X1 à X2 - 1) 9) mise à jour Somme Y Somme Y = Somme Y + (X2 - X1) x Ylc 10) mise à jour Suite X : Suite X est une donnée constituée de H max compteurs. On incrémente les (Ylc + 1 - Ymin) compteurs de Suite X. 11) mise à jour Suite Y Suite Y est une donnée constituée de 40 compteurs correspond aux 40 premières colonnes de la forme Si Naval non nul, alors incrémenter les (X1 + 1 = i) compteurs de Suite Y pour i variant de 1 à Naval Si Namont non nul, alors incrémenter ]es (X2 - Xmin + i) compteurs de Suite Y pour i variant de 1 à Namont. Dans ces 2 cas, seuls les compteurs Y sont à prendre en compte. 12) mise à jour Table des transitions: On mémorise la transition sous la forme X1, X2, (EOL) 13) test terminaison de forme Si Hauteur = H ou NSEGH = K, alors terminaison articificielle de la forme : dans ce cas, on positionne l'indicateur graphique (@et indicateur graphique sera aussi positionné pour la nouvelle forme issue de cette terminaison). (Les valeurs retenues sont H = 40 et K = 70, comme indiqué ci-dessus). Si la forme est terminée, les deux paramètres longueur-suite-X et longueur-suite-Y sont calculés à partir de Suite-X et Suite-Y. Le module logiciel 520 associé au module matériel 500 d'aide à l'extraction sera charge de l'extraction des formes, la partie matérielle ayant donc en charge l'extraction des segments et le microprocesseur la mise à jour de la mémoire d'état au rythme de ces segments, selon l'organigramme décrit ci-dessus en référence à la figure 28. De même qu un automate matériel peut être prévu pour l'aide à l'extraction, un automate matériel peut également être prévu pour l'aide à la préreconnaissance par semi-normes. Comme indiqué ci-dessus, la préreconnaissance par les paramètres caractéristiques d'une forme (ou semi-normes), consiste en une suite de comparaisons pour les différents paramètres de la forme Paramètre A - Paramètre B Seuil A est la forme anonyme à reconnaître B est l'une des formes de la bibliothèque (jusqu'à 256). Comme indiqué ci-dessus, quatre paramètres, associés chacun à un seuil de comparaison sont utilisés: Largeur, Hauteur, Nombre de segments verticaux, Nombre de segment horizontaux, pour la préreconnaissance par semi-normes. Une forme bibliothèque est candidate à la reconnaissance fine lorsqu'elle satisfait à toutes les comparaisons. L'opération de base (comparaison) est simple, mais répétée un grand nombre de fois (jusqu'à 1024 fois pour chaque forme anonyme). L'association d'un module câblé pour la comparaison et d'un contrôleur d'accès direct en mémoire, DMA, du microprocesseur permet de décharger le microprocesseur de cette tâche (eertains microprocesseurs 16 bits possèdent des contrôleurs d'accès direct en mémoire (DMAC) intégrés. Pour réaliser cette fonction, la bibliothèque est organisée de telle façon que l'ensemble des paramètres à tester soient placés à des adresses successives en mémoire. Un exemple d'un tel module câblé d'aide à la préreconnaissance 530 est représenté sur la figure 29. La comparaison élémentaire d'un paramètre caractéristique de la forme anonyme avec le paramètre correspondant de la forme bibliothèque, peut s'exprimer de la façon suivante - s. + a é b Si Xi 4 Xi et xi@ # si + xai Le module câblé comporte donc huit registres contenant les valeurs xia # si pour i = 1 à 4 qui seront comparées séquentiellement aux paramètres de la bibliothèque 30 lus par le contrôleur d'accès direct en mémoire, DMAC. Le module est donc composé des circuits suivants - un circuit à registres multiples R1, R2...R8 contient les valeurs de comparaison. Ces valeurs sont chargées par le microprocesseur pour chaque forme anonyme extraite du document après sélection du seuil correspondant; si, dans un circuit de sélection 531 et calcul dans un additionneur 532 des valeurs si + (#xai). La sortie de ce circuit est câblée sur une des entrées d'un comparateur, 534, via un circuit d'aiguillage 533 - un registre R9 contient le paramètre lu par le contrôleur DMAC dans la bibliothèque. Cette valeur est appliquée à la deuxième entrée du comparateur - un séquenceur 535 (circuit programmable) pilote le contrôleur d'accès direct en mémoire DMAC (signaux REQ et ACK) et le registre multiple Rl. ..R8 (aiguillage d'une des huit valeurs vers le comparateur 534 par les signaux SO S 1 ou S2). Le séemeneour 535 mémorise le résultat de huit comparaisons successives. Si toutes les comparaisons sont correctes, le séquenceur se bloque et génère une interruption vers le microprocesseur (signa] DONE). Le microprocesseur peut alors prendre en compte la forme bibliothèque comme candidat à la reconnaissance fine et relancer le séquenceur si toute la bibliothèque n'a pas été explorée. - Un registre de commandes 536 et un registre d'état 537 permettent au microprocesseur de contrôler le fonctionnement du module. - Un circuit de décodage d'adresses 538 génère les signaux nécessaires pour autoriser le microprocesseur à accéder aux registres multiples, de commandes 536 et d'état 537. Ce même matériel peut être utilisé pour la préreconnaissance par les suites réduites et filtrées, c'est-à-dire par les vecteurs de transitions. On peut estimer le temps d'une comparaison par le temps d'accès direct à la mémoire (bibliothèque). Il faut noter que grâce à un contrôleur d'accès direct en mémoire, DMAC, le calcul de la préreconnaissance ne nécessite pratiquement pas d'intervention du microprocesseur qui peut traiter d'autres tâches. Le gain obtenu est d'environ 80% sur le temps machine pour cette fonction, De plus la charge du microprocesseur et celle du module câblé sont très équilibrées. Comme indiqué ci-dessus, la phase de reconnaissance fine permet de mettre en correspondance une forme anonyme extraite du document avec une liste de formes candidates sélectionnées dans la bibliothèque selon les critères de prérecdnnaissance. Pour chaque candidat, cette phase se décompose en deux étapes - centrage du candidat et de la forme anonyme par rapport à leurs centres de gravité - calcul d'une erreur pondérée par identification des deux formes. Ces deux retapes sont répétées pour des positionnements différents des centres de gravité l'un par rapport à l'autre. Le centrage des deux formes comporte des calculs arithl.,étiques trop complexes pour être pris en charge par un module câblé. Par contre, l'identification est réalisée par la répétition d'opérations simules, sur toute la surface d'une fenêtre de mise en correspondance des deux formes. Comme indiqué cl-dessus, le calcul de l'erreur pondérée se fait au niveau de chaque point d'erreur. Cette structure utilise trois lignes tampon de 2480 octets pour calculer des erreurs pondérées partielles. En réalité, le calcul de- l'erreur pondérée globale exposé ci-dessus peut s'exprimer sous la forme suivante C(i,j)4'(1+2*C(i-1, j)) 2*C(i, j)*(C(i-1,j-1)+C(i, j-1)+C(i+1, j-1) Sous cette forme, le calcul de l'erreur pondérée ne nécessite plus que la connaissance de deux lignes successives d'erreurs (donc deux lignes successives de chacune des formes). Le calcul de S peut être mené de deux façons 1) Par comparaison des listes de segments de la forme anonyme et de la forme bibliothèque, selon deux phases - Détermination des segments d'erreurs par comparaison des segments des deux formes. Chaque forme comporte au maximum 70 segments, ce qui limite à 140 le nombre de segments d'erreurs. - Le calcu; proprement dit de l'erreur, qui nécessite de déterminer l'intersection des segments d'erreur pour des lignes successives (deux à deux). Les cas d'intersection sont également limités au nombre 140. Cette méthode fait intervenir de nombreux tests arithmétiques au niveau des segments. Son implémentation en module câblé paraît trop ]ourde. Une aide câblée ne pourrait qu'être limitée. Par contre, dans le cas d'une solution totalement programmée, cette méthode apporte un gain important, car toutes los opérations au rythme du pixel sont éliminées. 2) Par reconstruction de deux lignes successives des formes et calcul direct de l'expression précédente pour chaque point des lignes. Cette solution impose, pour chaque point de la fenêtre do compAraison, de connaître l'état des erreurs dans le voisinage causal du point courant (au sens défini ci-dessus Si le point (i, j) est un point de différence (C(i,j)=1), alors la contribution est S=S+1+2(C(i-l,j)+C(i-l ,j-l)+C(i,j-1)+C(i+1,j-1) Cette accumulation peut être réalisée par un module câblé. Pour obtenir deux lignes de points de différence (j et j-1), il faut reconstruire simultanément deux lignes successives de la forme anonyme et deux lignes de la forme bibliothèque. La description d'une forme, par une suite de segments dont on connaît le point de départ et la longueur, est peu pratique pour une reconstruction par un module câblé. Une alternative consiste à décrire une forme inscrite dans une fenêtre (1, h), par la suite des longueurs des segments blancs et noirs qui la compose. Cette description présente plusieurs avantages - L'homogénéité de la description (tous les éléments sont des longueurs) permet de reconstruire aisément la forme par un module câblé. - L'inscription d'une forme dans une fenêtre plus grande n'implique que la modification des longueurs des segments blancs de transition d'une ligne à l'autre. - Le décadrage vertical de +/- une ligne bu horizontal de +/- @ un point, se traduit par la modification du premier segment de la forme L1 = L1 + L pour le décadrage vertical L1 = Li i pour le décadrage horizontal - Le coût mémoire est inférieur à la solution initiale. Pour une forme de 70 segments sur 40 lignes. il faut 141 mots pour les longueurs et 40 index (octets) pour retrouver les changements de ligre. Le calcul d'erreur est effectué au rythme d'une horloge de balayage de la fenêtre de mise en correspondance des formes. Le synoptique de ce module câblé 570 d'aide à la reconnaissance fine est représenté sur la figure 30. Il réalise le calcul de l'erreur pondérée entre deux symboles décrits sous la forme d'une suite de segments alternativement blancs ou noirs. Le module se compose des éléments suivants - Quatre décompteurs 571, 572, 573, 574 chargés par le bus du microprocesseur sur commande de chargement LDO, LDl, LD2, LD3 contiennent les longueurs des segments courants de deux lignes successives de la forme anonyme et de deux lignes successives de la forme bibliothèque candidate. L'activation d'un des signaux RCO à RC3 signale la fin d'un segment (et donc le changement de valeur du pixel de la ligne concernée). ~ Un séquenceur 575 (circuit programmable) génère L'horloge CK de séquencement de tout le module. Cette horloge est bloquée lorsqu une fin de segment est détectée ou lorsque l'accumulateur déborde (signal DEBORD). Le séquenceur 575 fournit également les valeurs des pixels de différence pour les deux lignes successives de comparaison (ou EXCLUSIF). Ces valeurs changent au rythme des flns de segments (RCO-3). - Quatre bascules 576 et 577 on série, 578 et 579 en série servent de retards pour disposer du voisinage causal (tel que défini ci-dessus) des pixels d'erreur. Les valeurs des cinq pixels (binaires) sont appliqués à une mémoire PROM 580 (ou un circuit combinatoire) qui fournit la valeur de l'erreur pondérée autour du pixel courant: S(i,j)=C(i,j)*(1+2(C(i-1,j)+C(i-1,j-1)+C(i,j-1)+C(i+1,j-1)) - Un additionneur accumulateur 581, cumule les erreurs pondérées partielles S (i, j), pour calculer l'erreur finale. L'accumulation petit être réalisée avec 9 bits, car les seuils de reconnaissance fine ne dépassent pas cette dynamique. Le signal DEBORD indique le dépassement de capacité d'accumulation, Ceci bloque le séquenceur et permet d'abandonner la reconnaissance fine en cours, lorsqu'il y a lieu. - Le microprocesseur a accès aux signaux d'état des décompteurs 571 à 574 , RCO, RC1, RC2, RC3, et au signal de débordement, par un registre d'état 582 relié à son bus et qu'il peut donc lire sur commande de lecture "READS". Il peut alors poursuivre le l'IdentIfication en chargeant le segment suivant dans le compteur libre, ou abandonner la reconnaissance en cas de débordement. Le microprocesseur peut également lire via une commande de lecture "READM" le registre d'accumulation 581 pour connaître la valeur de l'erreur pondérée. Tous les signaux de chargement LDO à LD3 et de lecture READS et READM et RESET de l'accumulateur 581 sont fournis par un circuit de décodage des adresses du microprocesseur, 583 relié au bus d'adresses du microprocesseur, AD ,uP. Les différentes possibilités d'accélération du traitement par des modules câblés ont été indiquées ci-dessus. La description qui suit présente une solution optimale d'agencement de ces modules autour de deux microprocesseurs. A partir de l'architecture optimale décrite ci-dessous, on peut dériver différentes structures plus simples au niveau matériel mais éventuellement moins puissantes. Cette architecture est dite "optimale", dans le sens où elle exploite la totalité des aides matérielles présentées précédemment et les possibilités de traitement en parallèle offertes par l'algorithme. Il s'agit d'une architecture biprocesseur, représentée sur la figure 31. Chaque processeur est un microprocesseur 16 bits pour des raisons de puissance de calcul et d'espace d'adressage mémoire, respectivement P1 et P2 associés à des contrôleurs d'accès direct on mémoire, respectivement DMAC1 et DMAC2. Les deux processeurs sont fortement indépendants pour éviter les problèmes de conflits d'accès à un bus commun. Ils ne communiquent que par l'intermédiaire d'une mémoire "boîte aux lettres" (mémoire double port du type i 65231 de MATRA HARRIS) d'une capacité de 2K octets, à laquelle sont reliés leurs bus respectifs, RUS1 et BUS2. Le premier processeur P1 prend en charge l'analyse du document (extraction des formes) et la mise à jour de la mémoire d'état 11 qui est donc connectée à son bus BUS1. Il est aidé dans la tâche d'extraction par le module câblé 500 correspondant. Chaque forme terminée est transmise par la mémoire "boîte aux lettres" vers le deuxième microprocesseur. Le premier processeur réalise d'autre part le codage des formes et des index de bibliothèque. Son bus BUSI est donc également relié à la mémoire tampon d'émission 3 (voir Fig. 1). Le deuxième processeur ,uP2 réalise les fonctions de préreconnaissance, reconnaissance fine, et gestion de bibliothèque 30. Son contrôleur d'accès direct mémoire (DMAC2) est utilisé et il est associé à des modules câblés d'aide à la préreconnaissance 530 (cf. Fig. 29) et d'aide à la reconnaissance fine 570(cf Fig.30) interconnectés via le bus BUS2. L'invention n'est pas limitée à 1R description précise ci-dessus, qui décrit à titre d'exemple différents modes de réalisation, matériels ou logiciels, destinés au codage-décodage d'images de documents utilisant la reconnaissance' de formes. Notamment, suivant les matériels utilisés, des adaptations à la portée de l'homme de l'art pourront être mises en oeuvre poul optimiser le traitement, sans sortir du cadre de l'invention telle que précisée, notamment par les revendications ci-après. REVENDICATIONS 1. Dispositif de codage-décodage d'images binaires de documents, caractérisé en ce qu'il comporte, dans un ensemble de codage - un module (10) d'extraction de vecteurs d'états caractérisant des formes, définies comme des ensembles de points connexes, par un ensemble de composantes actualisées de maniere récursive lors de l'analyse par lignes de limage binaire - un module (20) do reconnaissance des formes extraites par le module d'extraction, comparant les composantes des vecteurs d'état associées à ces formes à des vecteurs d'état analogues, associés à des symboles déjà reconnus et stockés dans une bibliothèque (30), adressée par des labels associés aux symboles, ce module comportant en série un dispositif de préreconnaissance (21, 22, 23) comparant certaines des .composantes des vecteurs d'état des formes extraites aux composantes correspondantes de tous les symboles en bibliothèque, pour déterminer un sous-ensemble réduit de symboles proches de la forme analysée, et un dispositif de reconnaissance fine (24) opérant une comparaison entre la forme extraite et les seuls symboles du sous-ensemble réduit, dont le résultat est l'identification de la forme extraite à un symbole du sous-ensemble réduit, ou la non identification de la forme extraite dont les composantes sont alors stockées en bibliothèque (30) - un module de codage (40) qui effectue, en suivant des tables de codage prédéfinies, le codage de l'information issue du module de reconnaissance, c'est-b-dire le codage du label du symbole reconnu et de sa position dans la page, ou le codage des composantes de la forme non reconnue et de sa position, suivant le résultat de l'identification, le module de codage étant relié au réseau de transmission. 2. Dispositif selon la revendication 1, caractérisé en ce qu'il comporte en outre dans un ensemble de décodage, - un module de décodage relié au réseau qui effectue le décodage de l'information reçue en suivant des tables de décodage prédéfinies associées aux tables de codage, - un module de restitution des symboles sous forme de cartes de bits, à partir des composan:es transmises ou à partir d'une bibliothèque mise à jour tout au long de la transmission, selon que l'information reçue correspond à un symbole non déjà transmis ou à un symbole déjà transmis et adressé en bibliothèque par son label. 3. Dispositif selon la revendication 1, caractérisé en ce que le dispositif d'extraction comporte une mémoire d'état (11) et une mémoire d'adresses (12) associées pour stocker les vecteurs d'état et les actualiser, et en ce que les formes extraites sont limitées en hauteur (H) et en nombre de segments (K) de façon que simultanément la taille de la mémoire d'état et le retard entre l'ensemble de codage et l'ensemble de décodage soient optimaux, les formes interrompues du fait de ces limitations étant dites symboles artificiels et caractérisant des graphismes ou l'écriture manuscrite tandis que celles qui s'inscrivent dans ces paramètres maximaux sont dits symboles naturels, et caractérisent des caractères. 4. Dispositif selon la revendication 3, caractérisé en ce que le module d'extraction (10) est un module logiciel commandé à la fréquence point et réalise l'affectation de points à des formes en un seul balayage de l'image et l'actualisation des composantes des vecteurs d'états caractérisant les formes, au rythme des points. 5. Dispositif selon la revendication 4, caractérisé en ce que pour l'extraction le point courant est considéré comme connexe à un point déjà traité, appartenant à une forme déjà créée si ce point déjà traité est le point précédent sur la même ligne, ou l'un des points de la ligne précédente au-dessus du point courant ou de part et d'autre de ce point au-dessus. 6. Dispositif selon la revendication 3, caractérisé en ce que le module d'extraction (10) comporte un module matériel (500) d'aide à l'extraction regroupant les points connexes par segments, et un module logiciel (520) traitant les segments pour extraire les formes, effectuant pour un segment dit "courant" trois fonctions successivement : l'allocation du segment à une forme nouvelle ou par propagation à une forme déjà créée, la recherche des connexités par l'analyse de segments éventuellement connexes et de leur appartenance, l'actualisation des composantes des vecteurs d'etats caractérisant les formes au rythme des segments. 7. Dispositif selon la revendication fi, caractérisé en ce que le segment courant, défini par l'abscisse X1 de son premier point noir et l'abscisse X2 du premier point blanc après le segment, est connexe à un ou plusieurs segments déjà affectés à une ou plusieurs formes si les débuts de ces segments ont des abscisses comprises entre X1- 1 et X2. 8. Dispositif selon l'une des revendications 1 à 3, caractérisé en ce que le dispositif de préreconnaissance met en oeuvre deux processus fonctionnant en parallèle à partir de deux sous-ensembles différents de composantes des vecteurs d'états, - le premier étant un processus de préreconnaissance par semi-normes (21) utilisant des composantes du vecteur d'état caractérisant globalement la forme, et dans lequel la comparaison avec les composantes correspondantes des symboles en bibliothèque est effectuée par mesure de distances et test de ces distances par rapport à des seuils, les symboles en bibliothèque comparés étant - retenus dans un premier sous-ensemble (C1) de symboles proches lorsque les distances sont toutes inférieures aux seuils, - le second étant un circuit dit de préreconnaissance par transitions (22) utilisant des composantes du vecteur d'état caractérisant les transitions limitant la forme, et dans lequel la comparaison est effectuée par test d'identité avec les composantes correspondantes des symboles en bibliothèque, éventuellement aux erreurs tolérées près, les symboles en bibliothèque retenus formant un second sous-ensemble (C2) de symboles proches. 9. Dispositif selon la revendication 8, caractérisé en ce que le processus de préreconnaissance par semi-normes (21) utilise des composantes du vecteur d'état issu du dispositif d'extraction qui sont - la largeur et la hauteur de l'enveloppe de la forme définies comme les différences maximales entre respectivement les abscisses et les ordonnées des points de cette forme, - les nombres dc segments horizontaux et verticaux constituant la forme, chaque segment étant défini comme une suite de points adjacents sur une ligne ou une colonne. 10. Dispositif selon l'une des revendications 8 et 9, caractérisé en ce que le processus de préreconnaissance par transitions (22) utilise des composantes caractéristiques des nombres de transitions suivant les lignes et les colonnes. 11. Dispositif selon les revendications 8 à 10, caractérisé en ce qu'une unité de décision classe les symboles en symboles artificiels et symboles naturels et ces derniers en caractères empatés, caractères filiformes ou caractères bien formés, en fonction d'un premier paramètre dit "indice de remplissage" défini comme le rapport entre le nombre de points de l'enveloppe et le nombre de points connexes constituant le symbole, et d'un second paramètre dit "élongation" qui mesure l'écart entre le centroïde de la forme et le centre de gravité de son enveloppe, et en ce que les seuils utilisés dans le dispositif de préreconnaissance par semi-normes (21) sont prédéterminés et variables selon les classes de symboles détectés. 12. Dispositif selon l'une quelconque des revendications 8 à 11, caractérisé en ce que le sous-ensemble réduit de symboles proches de la forme analysée est constitué des symboles communs aux deux sous-ensembles issus des circuits de préreconnaissance par semi-normes (21) et par transitions (22), et à défaut de symboles communs, par I'union de ces deux sous-ensembles. 13. Dispositif selon l'une quelconque des revendications 8 à 12, caractérisé en ce que le dispositif de préconnaissance comporte un,module matériel (530) d'aide à la préreconnaissance effectuant directement les comparaisons tenant compte des seuils entre les composantes de la forme à comparer et les composantes des symboles bibliothèque analysées successivement, ce module matériel comportant des registres (R1 à R9), un séquenceur (535) commande par un registre de commande (536) associé à un registre de décodage d'adresses (538), un circuit d'aiguillage (533), Un comparateur (534), et un registre d'état (537) dans lequel sont disponibles les résultats des comparaisons. 14. Dispositif selon la revendication 8, caractérisé en ce que le dispositif de reconnaissance fine (24) construit une matrice des erreurs entre chaque symbole du sous-ensemble réduit de symboles bibliothèque et la forme extraite, et compare la somme de ces erreurs à un seuil adaptatif, fonction de la classe du symbole, qui aboutit à l'identification lorsque la somme des erreurs est inférieure à ce seuil adaptatif prédéfini. 15. Dispositif selon la revendication 14, caractérisé en ce que les erreurs sont affectées de coefficients de pondération tenant compte des états des points voisins, les groupes de points différents de la forme extraite et du symbole bibliothèque ayant des coefficients de pondération plus élevés que les points différents isolés, pour le calcul d'une somme d'erreurs pondérée. 16. Dispositif selon l'une des revendications 14 et 15, caractérisé en ce que la matrice des erreurs entre la forme extraite et le symbole qui lui est comparé dans le dispositif de reconnaissance fine (24) est calculée après centrage des centres de gravité de la forme extraite et du symbole comparé. 17. Dispositif selon l'une quelconque des revendications 14 à 16, caractérisé en ce que le dispositif de reconnaissance fine (24) comporte un module logiciel qui réalise le centrage de la forme à comparer avec la forme bibliothèque, et un module matériel d'aide à la reconnaissance fine (570) qui réalise le calcul des erreurs et l'identification, et qui comporte un séquenceur (575) associé à quatre décompteurs (571 à 574), un circuit à retard (576 à 579) relié à une mémoire PROM (580) qui permet de disposer simultanément des erreurs dans le voisinage causal du point courant et un additionneur accumulateur (581) dont la sortie fournit la somme des erreurs, éventuellement pondérée, un débordement de la capacité de l'accumulateur commandant via un registre d'état (582) l'arrêt de la reconnaissance fine en cours. 18. Dispositif selon la revendication 1, caractérisé en ce que le module de codage (4") code les formes extraites non reconnues dans la bibliothèque, par codage des segments connexes rangés dans une suite réarrangée au fur et à mesure de l'extraction, par un codage différentiel utilisant des codes à longueur variable. 19. Dispositif selon la revendication 1, caractérisé en ce que les positions des symboles successifs sont codées avant transmission, après correction éventuelle fonction de la différence de taille entre le symbole identifié et la forme extraite, par un codage à longueur variable. 20. Utilisation du dispositif de codage-décodage d'images binaires de documents selon l'une quelconque des revendications précédentes dans un système de télécopie numérique.