FR 2485786 A1 19811231 FR 8115721 A 19810814 La présente invention concerne un système et un procédé d'inspection vidéo, et plus particulièrement un système et un procédé d'inspection vidéo en temps réel à seize niveaux de résolution dans l'échelle des gris. On sait comment utiliser la télévision en circuit fermé pour commander des processus opératoires. Par exemple, le brevet US -A- 3 243 509 au nom de Hans Sut décrit un système utilisant une caméra de télévion pour détecter la limite de phase entre les phases solide et liquide d'une tige à semi- conducteur dans un processus de fusion de zones. Dans le brevet US -A- 4 064 534 au nom de Tung Chang Chen et al, on utilise une caméra de télévision faisant partie d'un système de ccntrô- le de qualité dans la fabrication de bouteilles de verre, en comparant le contour de la bouteille terminée avec celui d'une bouteille de référence. Dans le brevet US -A- 4 135 204 au nom de Rye E. Davis, Jr. et al, on utilise une caméra de télévision pour contrôler la croissan- ce d'une ampoule terminale ouverte d'un thermomètre dans une tige de verre creuse échauffée en surveillant et en contrô- lant itérativement la croissance des rebords de l'ampoule au moyen de techniques de détection de rebord. Les systèmes antérieurs concernent des situation o le paramètre intéressant est constitué par un rebord ou une limite susceptible d'être comparé à une référence déjà existante. Cependant, il existe de nombreuses applications o la détection d'un rebord ou d'une limite est totalement inadéquate. Ces applications comprennent par exemple la reconnaissance d'un motif et la mesure d'une surface. La présente invention permet de surmonter les insuffi- sances des systèmes antérieurs et propose un système d'inspec tion vidéo en temps réel et à grande vitesse, à seize ni- veaux de résolution dans l'échelle des gris, apte à être utilisé aussi bien pour la reconnaissance d'un motif que pour mesurer des surfaces. Le système d'inspection vidéo selon la présente invention est de petites dimensions, puissant, rapide, relativement peu coûteux et très fiable. Dans un mode de réalisation donné à titre d'exemple, la présente invention est utilisée dans une application de contrôle de qualité pour comparer des étiquettes sur des bouteilles en partant d'une ligne de remplissage à grande vitesse avec une étiquette de référence, pour déterminer si les bouteilles portent des étiquettes correctes et si l'ins- cription portée sur les étiquettes a été salie ou endommagée. Dans un mode de fonctionnement préféré, la différence, s'il y en a, entre l'étiquette de référence et l'étiquette ins- pectée est affichée sur un moniteur*de télévision que peut voir un opérateur. Les avantages de cette application sont faciles à comprendre car il est maintenant possible d'effec- tuer une inspection de qualité avec un rendement de 100% sans frais de main-d'oeuvre excessifs. Dans un mode de réalisation préféré, la présente inven- tion utilise une caméra de télévision transistorisée emplo- yant par exemple un réseau de 244 x 236 éléments, chacun de ces 57.584 éléments constituant un "pixel" ou partie élé- mentaire de l'image d'ensemble. La donnée numérique non structurée provenant de la caméra de télévision est envoyée à un interface comportant un canal d'accès direct à une mémoire (DMA). L'ensemble interface/DMA reçoit l'information vidéo en temps réel et structure la donnée, en utilisant seize niveaux dans l'échelle des gris, et il combine quatre pixels dans chaque mot. En plus de la caméra de télévision et de l'ensemble interface/DMA, la présente invention utili- se une mémoire vive ou a accès libre (RAM), un processeur, un calculateur (comprenant un terminal associé de commande pour un opérateur) et un circuit à dessiner des graphiques (avec un moniteur de télévision associé). L'ensemble inter- face/DMA, la mémoire à accès libre RAM, le processeur, le calculateur et le circuit à dessiner des graphiques sont tous interconnectés au moyen d'une "barre multibus" qui transporte les signaux de données, de commandes et d'adres- ses. L'ensemble interface/DMA synchronise la caméra de télévision avec la barre multibus et transfère l'image de télévision en temps réel dans tout emplacement désiré de la mémoire RAM. Lorsque l'image est dans la mémoire RAM, le traitement s'effectue sur deux niveaux. Le calculateur effectue les tâches de surveillance en vue de la communica- tion en série, du traitement entrée/sortie de la gestion de la mémoire, de l'acquisition des données et de l'affichage, alors que le processeur est utilisé pour le traitement à grande vitesse par réseaux des données contenues dans la mémoire RAM. Le logiciel du.système est situé dans le calcu- lateur. Comme déjà noté, le système d'inspection vidéo selon la présente invention peut être facilement adapté à de nombreu- ses applications, y compris la reconnaissance de motifs et la mesure de surfaces. Parmi les applications de reconnais- sance de motif, on peut citer l'inspection de plaquettes de circuits imprimés terminées, la détection de failles dans des articles fabriqués, la détection d'éléments intrus, l'analyse d'empreintes digitales, la détection d'objets étrangers dans des conteneurs avant de les remplir, ainsi que dans des systèmes d'atterrissage d'avions ou pour éviter des collisions. Parmi les applications concernant la mesure de surfaces, on peut citer la mesure de pièces usinées, la mesure de l'épaisseur de parois de coeur, l'analyse semi-automatisée de rayons X et la mesure de précision de la surface d'objets irréguliers. En ajoutant une information de positionnement, le système d'inspection vidéo selon la présente invention peut également être utilisé pour engendrer des signaux sensoriels visuels dans le domaine de la robotique. Le système d'inspection vidéo selon la présente inven- tion présente cette souplesse du fait qu'il peut acquérir et traiter la gamme totale des données provenant du détecteur. En outre, en utilisant des composants optiques standards avec la caméra de télévision, les images disponibles pour l'analyse vont de l'échelle micro à l'échelle macro, de l'image de circuits microélectroniques à l'image de corps planétaires ou de champs célestes. De plus, on peut aussi utiliser les techniques de filtrage optique standards pour améliorer ou modifier de façon quelconque la réponse de fréquence du système et pour développer par exemple des sensibilités spécifiques pour des couleurs. Du fait que la caméra de télévision transistorisée est sensible à la totalité du spectre visible et au-delà, le système d'inspection vidéo selon la présente invention peut être appliqué à toute tâche o on utilise le spectre visi- ble. Par exemple, on peut analyser des émissions secondaires de rayons X par l'intermédiaire de la fluoroscopie. On peut également effectuer des analyses spectrales en colorimétrie. Les photographies d'événements peuvent également être analy- sées sur toute une gamme de modes. En bref, les applications du système d'inspection vidéo selon la présente invention ne sont limitées que par la résolution du détecteur et la capacité de mettre au point un logiciel approprié au traite- ment des images. Une forme de réalisation de la présente invention est maintenant décrite avec référence aux dessins ci-annexés formant partie de la description et dans lesquels: la figure l est un schéma fonctionnel par blocs d'un mode de réalisation préféré du système d'inspection vidéo selon la présente invention, la figure 2 est un schéma fonctionnel par blocs de l'ensemble interface/DMA de la figure 1, les figures 3A à 3C représentent un diagramme schémati- que de l'ensemble interface/DMA de la figure 2, la figure 4 est un diagramme fonctionnel par blocs de la mémoire RAM de la figure 2, les figures 5A à 5C représentent le diagramme schémati- que d'une 'page" de la mémoire de la figure 4, les figures 6A et 6B représentent un diagramme fonction- nel par blocs du processeur de la figure 1, et les figures 7A à 7H représentent des tableaux synopti- ques de programmes destinés au mode de réalisation de la figure 1. Le système d'inspection vidéo selon la présente inven- tion est représenté à la figure 1 et comprend une caméra de télévision 10, un ensemble interface/DMA 20, une mémoire vive ou à accès libre RAM 30, un processeur 40, un calcula- teur 50, un terminal de commande pour opérateur 60, un circuit à dessiner des. graphiques 70 et un moniteur de télévision 80. L'ensemble interface/DMA, la mémoire RAM, le processeur, le calculateur et le circuit à dessiner des graphiques sont tous reliés par une barre multibus 90. La caméra de télévision 10 est de préférence une caméra transistorisée telle que le modèle TN2500 CID (charge injec- tion device) de la General Electric Co., qui comprend un réseau plan et bi-axial d'éléments d'image comportant 244 éléments verticaux et 248 éléments horizontaux. Dans le mode de réalisation préféré, on n'utilise que 236 des 248 rangées. On obtient ainsi 57.584 éléments d'image, ou "pixels", par image totale, chaque pixel mesurant 36x46 microns. La lectu- re de l'image totale prend 30 millisecondes et chaque pixel a une résolution (qui exige 4 éléments d'information ou bits) de seize niveaux dans l'échelle des gris. Ainsi, la caméra de télévision produit des données numériques à la 57.584 pixels 4 bits vitesse de 30 miîlisecondes x pixel = 7,68 mégabits/sec. L'ensemble interface/DMA 20 est représenté à la figure 2 sous la forme d'un schéma fonctionnel par blocs et il est représenté schématiquement à la figure 3. L'ensemble inter- face/DMA remplit deux fonctions séparées. Il accumule quatre pixels de 4 bits pour former un mot de 16 bits (2 multiplets ou bytes) et il effectue l'adressage direct vers la mémoire RAM 30. Il réalise également toute la synchronisation entre les données vidéo et la barre multibus 90. L'ensemble interface/DMA 20 a la possibilité d'adresser jusqu'à 1 mégabyte en mémoire, de transférer jusqu'à 128.000 bytes au cours d'une unique salve de transfert, et il peut fonction- ner à des vitesses de transfert pouvant atteindre 10 méga- bytes à la seconde. La vitesse de transfert minimale est de 2 mégabytes à la seconde. Ainsi, l'ensemble interface/DMA 20 peut traiter toute la gamme de résolution et de sensibilité du détecteur. La mémoire statique à grande vitesse RAM 30 est repré- sentée sur le diagramme fonctionnel par blocs de la figure 4 et schématiquement sur la figure 5. La mémoire RAM 30 a un espace d'adressage d'un mégabyte qui lui permet de recevoir en temps réel la sortie totale de la caméra de télévision 10. Le temps du cycle de mise en mémoire de la mémoire RAM est, dans le pire des cas, de 100 nanosecondes et elle peut lire/écrire soit 8 ou 16 bits par cycle en tout empla- cement dans l'espace d'adressage d'un mégabyte. Le processeur 40 à haute performance et orienté par la barre omnibus est représenté sous la forme d'un schéma fonctionnel par blocs sur la figure 6 et schématiquement à la figure 7. Le processeur 40 est conçu pour accepter le code de programme et des données de la barre multibus 90 et pour exécuter le programme à une vitesse d'horloge de huit à dix mégahertz. Le processeur 40 effectue les calculs à grande vitesse sur les données contenues dans la mémoire 30. Le calculateur 50 du système peut être un microcalcula- teur Intel SBC 86/12 basé sur le microprocesseur Intel 8086 de 16 bits. Lorsque l'image a été mise dans la mémoire 30, la majeure partie du traitement est effectuée au moyen du calculateur 50. Comme noté précédemment, le calculateur 50 effectue les tâches de surveillance concernant la communi- cation en série, le traitement entrée/sortie de la gestion de la mémo re, l'acquisition des données et l'affichage. Les codes de programme qui sont internes au calculateur 50 sont ceux qui sont nécessaires pour effectuer une série de trai- tements vidéo comprenant la reconnaissance de motifs et la mesure sans contact. Le logiciel est mis en mémoire dans des mémoires mortes programmables et effaçables (EPROM) faisant partie du calculateur 50. Les figures 7A à 7H sont des tableaux synoptiques de programmes quand on applique le système d'inspection vidéo selon la présente invention à l'inspection d'étiquettes. Le terminal de commande par opérateur 60 est représenté à la figure 1 et permet à. l'opérateur de communiquer avec le calculateur 50. Le terminal de commande par opérateur 60 peut être tout terminal standard RS232C tel qu'un terminal Data General Dasher. Le terminal de commande par opérateur comprend un clavier et un tube à rayons cathodiques ou une imprimante à clavier. Le terminal de commande 60 commu- nique avec le calculateur 50 et permet par exemple d'effec- tuer des changements de paramètres dans le logiciel. Le circuit à dessiner des graphiques 70 est relié par un interface à la barre multibus 90 et transforme les données en un format convenant à l'affichage sur le moniteur de télévision 80. Dans le mode de réalisation préféré, le circuit à dessiner des graphiques 70 produit une sortie vidéo composite dans l'échelle des gris. Le circuit à dessiner des graphiques 70 peut être un contrôleur modèle RGB-256 à tube à rayons cathodiques à seize couleurs de gris et à tableau unique fabriqué par Matrox Lectronic Systems, Ltd, Montréal, Quebec, Canada. Le circuit à dessiner des graphiques RGB-256 est compatible avec le système à barre omnibus standard Intel SBC. Le moniteur de télévision 80 peut être tout moniteur de télévision standard. La barre multibus 90 est relié par des interfaces à divers éléments de barre omnibus, c'est-à-dire des maîtres, des esclaves et des esclaves intelligents. Un maître de barre omnibus est tout module ayant la capacité de commander la barre omnibus. Le maître exerce cette commande en acqué- rant la barre omnibus par une logique d'échange de barre omnibus, puis engendre des signaux d'instruction, des si- gnaux d'adresse et des adresses de mémoire. De nombreux modules peuvent constituer des maîtres de barres omnibus. Le type de base le plus courant de maître de barre omnibus est le module Intel MD-800 CPU (pour unité de traitement centra- le) et comprenant un processeur et une logique d'échange de barres omnibus. Parmi des maîtres plus complexes, on peut citer les microcalculateurs Intel SBC 80/20, Intel SBC /30 et Intel SBC 86/12. Un autre type de module pouvant constituer un interface avec la barre multibus est l'esclave de barre omnibus. Un esclave de barre omnibus décode les lignes d'adresse et agit sur les signaux d'instruction provenant des maîtres de barres omnibus. Les esclaves de barres omnibus:ne sont pas capables de commander la barre multibus. Des exemples d'es- claves de barres omnibus sont constitués par des registres d'entrée/sortie et des mémoires. Le troisième type de module pouvant constituer un inter- face avec la barre multibus est l'esclave intelligent. L'esclave intelligent a les attributs d'un module esclave du fait qu'il décode les adresses et agit sur les ordres pro- venant des modules maîtres. Cependant, l'esclave intelligent contient un microprocesseur programmé avec un logiciel ou un programme particulier et il est utilisé pour commander la mémoire sur panneau et l'entrée/sortie mais non la barre E multibus. Dans la terminologie des éléments de barre omnibus, l'ensemble interface/DMA, la mémoire RAM 30 et le circuit à dessiner des graphiques 70 sont des modules esclaves alors que le processeur 40 est un module esclave intelligent et le calculateur 50 un module maître. Comme représenté à la figure 1, les signaux passant par la barre multibus 90 comprennent des lignes de données, des lignes de commande et des lignes d'adresse et d'inhibition. Les lignes de données comprennent seize lignes de données bidirectionnelles, soit de DATO/ à DATF/ dans la notation hexadécimale. Les lignes de commande comprennent les signaux d'horloge, d'instructions, d'acceptation et d'initialisa- tion. Les signaux d'horloge sont les suivants: "horloge constante" (CCLK/) et "horloge de barre omnibus" (BCLK/). Les instructions sont les suivantes: "écriture mémoire" (MWTC/), " lecture mémoire" (MRDC/), "écriture entrée/ sortie" (IOWC/) et 'lecture entrée/sortie" (IORC/). Le signal d'instruction d'acceptation est: "reconnaissance transfert" (XACK/) alors que l'instruction d'initialisation est "initialisation" (INIT/). Les lignes d'adresse vont de l'ADRO/ à l'ADR13/ (0-9, A-F, 10-13), alors que les lignes d'inhibition comprennent l'INH1/ et l'INH2/. La commande de byte est BHEN/. Si on se réfère à la figure 2, tous les mots de commande du DMA sont acceptés sur le bord arrière du CCLK/. Les ordres sont effectués ou les données sont chargées 30 nanosecondes après la reconnaissance de l'adresse. Le démarrage du DMA s'effectue sur le bord avant suivant du BCLK/. Un XACK/ est engendré par le DMA après quatre impul- sions CCLK/ suivant la reconnaissance de l'adresse. La caméra de télévision 10 peut être utilisée soit sur le mode 'séquentiel 122" soit sur le mode "séquentiel 244". Dans le mode "séquentiel 122" on n'utilise que 122 lignes comprenant chacune 236 pixels. Dans le mode "séquentiel 244", qui est le mode de résolution le plus élevé de la caméra, on utilise 244 lignes comprenant chacune 236 pixels. Le mode de fonctionnement de la caméra est indiqué par une sortie appropriée de la logique 216 du mode de fonctionnement de la caméra. Dans le mode de réalisation préféré, on utilise le mode "séquentiel 244". L'ensemble interface/DMA utilise trois signaux de rythme provenant de la caméra. Ceux-ci sont des signaux de synchro- nisation verticale, d'interruption de synchronisation et d'horloge 5x. Ces trois signaux sont représentés à la figure 2 sous forme d'entrées pour le dispositif de rythme 204 de synchronisation de la caméra.,Le signal d'interruption de synchronisation est un signal logique qui monte quand la donnée valable est présente sur les lignes DAT4 à DAT7. L'impulsion de synchronisation verticale apparaît au commen- cement de chaque champ de données, deux champs formant une image. Dans le mode "séquentiel 244", l'impulsion de synchro- nisation verticale revient toutes les 33,32 millisecondes. Le signal d'horloge 5x est de 22,5 mégahertz et un nouveau pixel de 4 bits apparaît sur les lignes DAT 4 à DAT 7 toutes les 5 impulsions d'horloge (toutes les 222 nanosecondes). Ainsi, un mot de 16 bits (2 bytes) est transféré toutes les 888 nanosecondes et il y a 62 transferts de mot par ligne. L'ensemble interface/DMA 20 est représenté à la figure 2 sous forme d'un schéma fonctionnel par blocs, et il comprend un élément tampon d'entrée 201, un fichier registre 202, une logique de rythme 203, un dispositif de rythme 204 de syn- chronisation de la caméra, une logique de comptage de pixels 205, un dispositif d'égalisation lecture/écriture 206, une logique de lecture de mot 207, une logique d'écriture de mot 208, une logique d'écriture de rythme 209, un registre de transfert de longueur 210, un registre d'adresse 211, une logique codage interruption 212, une logique de décodage d'adresses 213, un dispositif d'excitation de barre omnibus 214, un élément tampon de sortie 215 et une logique de mode de fonctionnement de caméra 216. L'ensemble interface/DMA 20 est également représenté schématiquement à la figure 3. Bien que cela ne soit pas nécessaire pour la compréhension de la présente invention, on décrira cependant le rapport entre le schéma fonctionnel par blocs de la figure 2 et le diagramme schématique de la figure 3. Le technicien qualifié compren- dra que du fait que l'ensemble interface/DMA est constitué à partir de "puces" à circuit intégré multifonctionnel, dont chacune peut contenir un certain nombre de circuits séparés, une "puce" quelconque de la figure 3 peut faire partie de plusieurs blocs fonctionnels différents de la figure 2. L'élément tampon 201 comprend U14 et U15. Le fichier registre 202 comprend U7 à U10. La logique de rythme 203 comprend U2, U20 et U22. Le- dispositif de rythme 204 de la synchronisation de la caméra comprend U1 et U2. La logique de comptage de pixels 205 comprend Ul, U3, U4 et U11. Le disposiitf d'égalisation lecture/écriture 206 comprend U5, U6 et U70 à U72. La logique de lecture de mots 207 comprend U5 alors que la logique d'écriture de mots 208 comprend U6. La logique d'écriture de rythme 209 comprend U13, U18 à U21, U55, U56 et U100. Le registre de transfert de longueur 210 comprend U32 à U35. Le registre d'adresse 211 comprend U27 à U31. La logique codage interruption 212 comprend U41 et U16. La logique de décodage d'adresse 213 comprend U38 à U41, U53 et U54. Le dispositif d'excitation de barre omnibus d'adres- se 214 comprend U45 à U48. L'élément tampon de données 215 comprend 049 à U52. L'ensemble interface/DMA 20 est traité par le calcula- teur 50 comme un dispositif d'entrée/sortie (I/O). L'adresse de base peut être sélectionnée par un commutateur entre OOOOH et 0090H. En fonctionnement, IOWC/ est mis en mémoire tampon et décodé par la logique de décodage d'adresses 213. Le bloc DMA répond à toute adresse correctement décodée dans son instruction appliquée avec un XACK/ au calculateur 50. Le calculateur 50 réagit au XACK/ en libérant l'IOWC/ et le bloc DMA est alors en condition pour fonctionner sur un autre IOWC/. L'instruction établie pour le bloc DMA comprend les quatre instructions d'écriture d'entrée/sortie I/O suivantes: (1) Remettre l'interruption à l'état initial (RST INT) - L'ordre de remise de l'interruption à l'état initial est produit par la logique de décodage d'adresses 213 en réponse àun IOWC/ à l'adresse 00'x'OH du calculateur 50 par l'in- termédiaire de la barre multibus 90. Aucune donnée n'est nécessaire pour produire un ordre de remise de l'interrup- tion à l'état initial. (2) Transférer le chargement de longueur (XFER LNTH LD) - L'ordre de transfert de chargement de longueur est pro- duit par la logique de décodage d'adresses 213 en réponse à un IOWC/ à l'adresse 00'x'2H du calculateur 50 et il est présenté à la fois au registre de transfert de longueur 210 et au registre d'adresse 211. L'ordre de transfert de char- gement de longueur provoque le transfert du nombre de mots qui doivent être lus dans le registre de transfert de lon- gueur 210. (3) Charger l'adresse de démarrage (STADR LD) - L'ordre de chargement d'adresse de démarrage est produit par la logique de décodage d'adresse 213 en réponse à un IOWC/ à l'adresse 00'x'4H provenant du calculateur 50. L'ordre de chargement d'adresse de démarrage déclenche la lecture-des 16 bits d'ordre élevé de l'adresse de démarrage de 20 bits -dans l'adresse 00'x'4H. Cette adresse est alors décalée vers la gauche de 4 bits de manière que toutes les adresses de démarrage soient situées sur des limites paires de 16 bytes. (4) Démarrage du transfert (GO) - L'ordre de démarrage du transfert est produit par la logique de décodage d'adres- ses 213 en réponse à un IOWC/à l'adresse 00'x'6H. L'ordre de démarrage du transfert parvient à la logique de rythme 203 quand un signal de validation est produit et valide ou habilite l'ensemble interface/DMA 20. Sur le bord approprié de l'impulsion d'horloge de barre omnibus qui est reçue par la logique de rythme 203 en provenance de la barre multibus , un signal d'occupation BUSY/ est produit par la logique de rythme 203 et l'ensemble interface/DMA 20 commence le transfert des données sur l'impulsion de synchronisation verticale suivante provenant de la caméra 10. Le bloc interface capture les quatre bits les plus significatifs des données provenant de la caméra 10 et les organise en des mots de 16 bits (2 bytes). Quand un mot a été formé, une instruction MWTC/ est envoyée à la mémoire RAM 30 et la donnée est transférée à la mémoire 30 par la barre multibus 90. Lors de la réception d'une instruction XACK/ de la mémoire RAM 30, l'interface retire l'adresse et la donnée de la barre multibus 90, décrémente le registre de transfert de longueur 210, et incrémente le registre d'a- dresses 211 deux fois. L'interface conserve également la trace du nombre de "pixels" qu'il a reçu de la caméra de télévision 10 sur une ligne horizontale quelconque. A la fin de chaque ligne, le nombre de "pixels" reçus de la caméra est contrôlé, et si nécessaire des transferts additionnels sont effectués vers la mémoire 30 de manière qu'il y ait égalisation des mots sortis et des mots entrés pour chaque ligne. Dans le mode de réalisation préféré, le bloc inter- face transfère un mot de 16 bits dans la mémoire RAM 30 en nanosecondes. Ceci comprend toutes les fonctions de "gestion" concernant les registres et les fonctions de rythme nécessaires aux circuits compatibles avec la barre multibus. Le bord montant de l'impulsion de synchronisation verti- cale qui apparaît une fois pour chaque trame est pris au moment t = 0. Si un signal d'habilitation est présenté par la logique de rythme 203 à un dispositif de rythme 204 de synchronisation de la caméra, le transfert commence. Quatre bits de données sont chargés dans l'un des 4 x 4 registres constituant le fichier registre 202. Comme déjà mentionné précédemment, le fichier registre 202 comprend les registres U7 à UIO. Le premier "pixel" (4 bits) est chargé par exemple au niveau zéro du registre U7. Les second, troisième et quatrième pixels sont chargés au niveau 0 des registres U8, U9 et U10 respectivement. Les cinquième, sixième, septième et huitième pixels sont chargés au niveau 1 des registres U7, U8, U9 et U10 respectivement. La logique de lecture de mots 207 (compteur U5) contrôle quel emplacement de mot sera chargé et elle est incrémentée après chaque quatrième pixel. Quand le transfert des données commence, les niveaux zéro des registres U7, U8, U9 et U10 sont lus en parallèle pour former le premier mot de 16 bits (2 bytes). Le second mot est transféré par la lecture en parallèle du niveau 1 des registres U7 à U10. Les vitesses élevées du transfert des données sont obtenues par chargement séquentiel des données dans un niveau des registres U7 à U10 alors qu'il y a lecture simultanée des données en parallèle dans un autre niveau des quatre registres. Qudand le quatrième pixel a été chargé dans le fichier registre 202, un signal XFER REQ est engendré dans la logique d'écriture de rythme 209 (U13, broche 5) et utilisé pour valider le dispositif d'excitation de barre omnibus d'adresses 214. Après un retard approprié, une impulsionMWTC/ est envoyée à la barre multibus 90 par la logique d'écriture de rythme 209. Quand la mémoire RAM 30 a accepté la donnée,un signal XACK/ est envoyé à la barre omnibus et décodé par la logique d'écriture de rythme 209 qui provoque le retrait de l'adresse et de la donnée de la barre omnibus de même que l'instruction MWTC/. Le registre de transfert de longueur 210 est décrémenté et le registre d'adresses 211 est mis deux fois en mémoire annexe pour être conforme au mode de fonctionnement du transfert des mots. A la fin de chaque ligne horizontale et s'il ne reste pas de mots dans le fichier registre 202, les compteurs U5 et U6 du dispositif d'égalisation de lecture/écriture 206 seront égaux. Si les compteurs ne sont pas égaux, des trans- ferts successifs sont effectués jusqu'à ce qu'ils parvien- nent à égalité. En ce point, aucun transfert supplémentaire n'est effectué pour cette ligne. Le transfert des données continue jusqu'à ce qu'un signal de longueur zéro soit engendré par le registre de transfert de longueur 210. A ce moment, la commande de la barre omnibus est abandonnée et le bloc interface est déshabilité. Le calculateur 50 émet une instruction RST INT et reprend la commande de la barre omnibus. Si on se réfère à la figure 4, la mémoire RAM 30 com- prend un matériel 301 de commande de barre omnibus, des dispositifs tampons lecture/écriture 302, un réseau de mémoire 303, une logique de décodage d'adresses 304 et des dispositifs de sélection par sauts de blocs d'adresses 305. Le réseau de mémoire 303 comprend de préférence une série de 64 "pages", chaque page comprenant 16 K bytes de 8 bits de mise en mémoire. Le matériel 301 de commande de barre omni- bus effectue la synchronisation entre la barre omnibus et le réseau de mémoire 303. La logique de décodage d'adresses 304 détermine si l'adresse apparaissant sur la barre omnibus correspond à celle du réseau de mémoire 303. Le dispsitif de sélection par sauts de blocs d'adresses 305 détermine l'a- dresse de base pour chaque page (bloc de 16K bytes) de l'espace d'adresse du réseau de mémoire 303. Les dispositifs tampons lecture/écriture 302 mettent en mémoire intermédi- aire des données entre le réseau de mémoire 303 et la barre omnibus en réponse à un signal de validation produit par la logique de décodage d'adresses 304. Si on se réfère brièvement à la figure 5 qui est un diagramme schématique d'une "page" de la mémoire RAM 30, les référence U53 à U58 désignent. les dispositifs tampons lecture/ écriture alors que U2 à U9, U10 à U17, U20 à U27 et U28 à U35 comprennent 32 puces logiques Intel 2147-3 de 4K par 1 bit, déterminant une capacité deYmise en mémoire de 16 K bytes de 8 bits. Si on se réfère à la figure 6, le processeur 40 orienté par la barre omnibus comprend un microprocesseur (CPU) 401 constitué de préférence par un microprocesseur Intel 8086 de 16 bits. Le processeur 40 comprend également un générateur d'horloge 402, un décodeur d'état 403, un verrou d'adresse 404, un arbitre de barre omnibus 405, un disposiitf d'exci- tation de barre omnibus d'adresses 406, un dispositif d'ex- citation de barre omnibus de données 407, un décodeur d'in- structions de barre omnibus 408, des dispositifs d'interrup- tion par sauts 409, un contrôleur d'interruption programma- ble (PIC) 410, un décodeur à distance d'entrée/sortie I/O 411, un fichier registre boite aux lettres 412, un registre de commande d'interruption 413, un décodeur d'adresse local d'entrée/sortie I/O 414, un décodeur d'adresses de mémoire 415, un dispositif tampon de données 416, une mémoire RAM à grande vitesse 417 et une mémoire morte programmabme (PROM) à grande vitesse 418. Le processeur 40 orienté par la barre omnibus est lui- même un calculateur complet en ce sens qu'il comprend une unité de traitement centrale à microprocesseur LSI (à minia- * turisation intégrale), une mémoire, un circuit d'interrup- tion prioritaire de résolution et un dispositif d'arbitrage de barre omnibus. Le processeur 40 est appliqué à la barre multibus et agit en tant que ressource de calcul asynchrone. Dans la terminologie des barres multibus, le processeur 40 est un esclave intelligent. La configuration du processeur permet au microprocesseur 401 de- fonctionner sur des codes et des données de programme à sa vitesse de calcul maximale. De plus, le calculateur 50, qui dans la terminolo- gie des barres multibus est un module maître, peut adresser le processeur 40 et décharger et/ou charger les codes et/ou données de programme en vue du traitement asynchrone par le processeur 40 orienté par la barre omnibus. Le composant central du processeur 40 permettant ce type d'opération est * le fichier registre boîte auxlettres 412. La réalisation pratique d'une partie importante du processeur 40 est identique à cellede l'Intel SBC 86/12 qui, comme déjà noté, utilise également un microprocesseur Intel 8086 de 16 bits. De ce fait, on ne décrira que les. régions nettement différentes de la disposition habituelle. Le CPU 401 fonctionne normalement à une fréquence d'hor- loge de 8 mégahertz, bien qu'il puisse être amené à fonc- tionner jusqu'à 10 mégahertz. Toutes les fonctions de rythme opèrent à la fréquence totale de l'horloge, sans états d' "attente". La mémoire du processeur 40 a été organisée en deux espaces d'adresses séparés. Les adresses 0 à 4095 compren- nent une mémoire à semi-conducteur RAM à très haute vitesse 417 qui peut comprendre par exemple des dispositifs Intel 2147-3. Les adresses 1.019. 904 à 1.024.000 comprennent une mémoire EPROM à grande vitesse 418 qui peut comprendre par exemple des dispositifs Intel 2716-1. Le décodeur d'adresses de mémoire 415 établit obligatoirement un accès au panneau pour les deux groupes d'adresses identifiés ci-dessus et établit l'accès obligatoire à la barre omnibus pour toutes les autres adresses. La communication en vue de l'initiali- sation et du fonctionnement normal du processeur 40 est réalisée au moyen du fichier registre boîte aux lettres 412 à deux ouvertures qui réagit à des ordres d'entrée/sortie I/O, par l'intermédiaire des adresses sélectionnables par sauts provenant du calculateur 50 de même que les instruc- tions d'entréelsortie I/O provenant du CPU 401. Ainsi, les communications de calculateur à calculateur sont réalisées par l'intermédiaire du fichier registre boîte aux lettres 412 qui peut comprendre par exemple quatre fichiers regis- tres 74LS170 de 4 par 4. L'instruction d'entrée/sortie I/O programmée est égale- ment décodée en tant qu'adresses sur panneau ou hors panneau. Cependant, les adresses du dispositif I/O sur panneau peu- vent être sélectionnées par sauts de manière à éviter des conflits d'adresses du dispositif I/O avec d'autres disposi- tifs. Le processeur 40 comprend trois dispositifs I/O, à savoir: un contrôleur d'interruption programmable 410; un registre de commande d'interruption 413; et un fichier registre boite aux lettres 412. A chaque dispositif I/O est alloué un bloc de quatre adresses, chaque adresse étant un nombre paire décalé par rapport à une adresse de base. Par exemple, si l'adresse de base pour le contrôleur d'interrup- tion programmable 410 est l'hexadécimal 40, les adresses suivantes seront alors 42, 44, 46 et 48 en hexadécimal. Tous les accès du dispositif I/O qui ne sont pas dirigés sur le panneau sont dirigés vers la barre multibus. Tous les accès des mémoires orientées par la barre omnibus et d'entrée/ sortie I/O sont dirigés par un arbitrage "normal" de barre omnibus. On notera cependant que le CPU 401 peut, lorsqu'il est commandé par un programme particulier, 'bloquer" la barre omnibus quand il a terminé son arbitrage et déterminer des accès subséquents sans avoir à subir un arbitrage addi- tionnel. Ceci permet les performances de passage les plus complètes en direction et en provenance de la barre omnibus, quand cela est nécessaire. On peut également faire en sorte que le processeur 40 fonctionne comme un processeur esclave. Dans ces conditions, lors de la mise sous tension initiale et/ou lorsqu'il y a une instruction de rétablissement (RESET) provenant du matériel, le programme particulier résidant dans le proces- seur 40 détermine la configuration initiale du contrôleur d'interruption programmable 410 et l'initialisation de la mémoire, des registres et de l'indicateur de pile. Le pro- gramme particulier arrête alors le processeur 40. Le calcu- lateur 50 monté sur la barre multibus adresse le fichier registre boîte aux lettres 412 et charge un vecteur de 16 bits dans le registre boîte aux lettres. Lorsque le vecteur est chàrgé, une instruction d'interruption est envoyée au CPU 401. Le programme particulier résidant dans le processeur émet en sortie l'état arrêt (HALT) et effectue une lecture d'entrée/sortie I/O vers le fichier registre boîte aux lettres. L'adresse du lecteur de 16 bits est lue et utilisée pour constituer les 16 bits les plus significatifs dans une adresse de mémoire de 20 bits hors panneau. Cet emplacement de mémoire est le premier mot d'un bloc de commande de processeur (PCB). Le programme particulier résidant dans le processeur 40 a alors accès au PCB et lit et traite les mots de commande du processeur (PCW) contenus dans ce PCB. Les PCW envoient des instructions au processeur 40 pour qu'il remplisse l'une des trois fonctions suivantes: (1) " envoyer état", c'est-à-dire former et placer un mot d'état de processeur (PSW) dans un emplacement désigné de la mémoire, (2) " déplacer mots", c'est-à-dire déplacer des mots du programme et/ou des données soit de la mémoire du processeur vers la mémoire hors panneau (par exemple la mémoire RAM ) soit vice versa, (3) "Exécuter", c'est-à-dire exécuter un code de pro- GJymmle c.oirwiençant à une adresse désignée. Le PCB contient une liste de PCW dans une chaîne. Chaque PCW peut être suivi par des mots de donnée appropriés. Lorsqu'un PCW a été décodé et exécuté, une réponse d'inter- ruption est envoyée si elle est ainsi codée. La réponse d'interruption est engendrée par le registre de commande d'interruption 413. Le CPU 401 établit le niveau d'interrup- tion approprié dans le registre de commande d'interruption -413 et ce niveau est couplé à la barre multibus au moyen d'une instruction d'écriture d'entrée/sortie I/O pour inter- rompre le registre de commande. Ce mode utilisé pour envoyer des instructions au proces- seur 40 et utiliser le mécanisme d'interruption parallèle permet d'atteindre de hautes performances, un calcul asyn- chrone avec un minimum de surveillance et une souplesse maximale. En fonctionnement, les algorithmes de traitement d'image sont chargés dans la mémoire RAM 417 du processeur 40. Ces algorithmes sont exécutés sur des données de "pixels" stockées dans la mémoire RAM 30 et envoyées au processeur 40 par la barre multibus 90. Ainsi, le processeur 40 effectue un "traitement par réseaux" asynchrone et à grande vitesse des données stockées dans le réseau de mémoire 303 (figure 4). Les tableaux synoptiques de programmes destinés à être appliqués, selon la présente invention, à une inspection d'étiquettes, sont représentés aux figures 7A à 7H. On commence par placer une étiquette maître devant la caméra de télévision 10. La sortie de la caméra de télévision est alors structurée par l'ensemble interface/DMA 20 et stockée dans la mémoire RAM 30. Ensuite, l'étiquette maître est affichée sur le moniteur de télévision 80 en utilisant le circuit à dessiner des graphiques 70. En variante, l'étiquet- te maire peut être affichée au moyen d'une imprimante du terminal de commande 60 pour opérateur. L'algorithme d'inspec- tion particulier utilisé est alors choisi par l'opérateur. Par exemple, l'algorithme peut concerner un calcul de sur- face. En variante, l'algorithme peut consister en un calcul de ligne pondérée. Ensuite, l'opérateur détermine la "fenêtre" (partie du réseau de 244 x 236 pixels à inspecter) et le 'mérite" (seuil) à utiliser pour l'opération d'inspection en cause. Le système est alors prêt à inspecter des étiquettes disposées par exemple sur des bouteilles à mesure qu'elles sortent d'une ligne de remplissage à grande vitesse. Comme dans le cas de l'étiquette maître, l'étiquette sujet est visionnée par la caméra de télévision 10 et la sortie de la caméra de télévision est structurée par l'ensemble inter- face/DMA 20 et stockée dans la mémoire RAM 30. On choisit la fenêtre et on utilise une routine de traitement d'image à grande vitesse au moyen du processeur 40 orienté par la barre omnibus. La routine choisie peut consister par exemple en des calculs de surface ou de lignes pondérées. Pour les deux routines, les pixels correspondants provenant des étiquettes maîtres et sujets et stockés dans la mémoire RAM 30 sont sélectionnés et transférés au processeur 40 o la valeur absolue de la différence d'intensité est calculée. On soustrait de cette valeur le décalage de bruit sélectionné, pour compenser des interférences de fond. Dans le cas de la routine de ligne pondérée, les différences pondérées sont accumulées au travers d'une ligne donnée. Le résultat de l'accumulation est alors comparé avec le "mérite" ou seuil choisi pour cette fenêtre. Si le résul- tat accumulé est plus important que le mérite, l'erreur est signalée. En supposant qu'il n'y ait pas d'erreur, les lignes successives de pixels sont traitées jusqu'à ce qu'une fenêtre soit terminée, moment auquel le système est prêt pour inspecter l'étiquette suivante ou la fenêtre suivante destinée à cette étiquette. Dans le cas de la routine de surface, toutes les diffé- rences non nulles de la totalité de la fenêtre sont accumu- lées et comparées avec le mérite déterminé pour la fenêtre. On comprendra que le mérite en cas d'une routine de surface soit normalement différent (mais pas supérieur) au mérite d'une routine de ligne pondérée. Si les différences accumu- lées pour la fenêtre sont plus importantes que le mérite prévu pour cette fenêtre, une erreur est signalée. Sinon, le système est prêt à traiter l'étiquette suivante ou la fenê- tre suivante destinée à cette étiquette. Auusi bien dans les routines de surface que de ligne pondérée, les différences entre les pixels correspondants peuvent être indiquées à un opérateur par une imprimante au terminal 60 ou sur le moniteur de télévision 80, pour que dans le cas o il y a signalisation d'erreur, l'opérateur puisse voir la cause de l'erreur et accepter ou rejeter l'étiquette en fonction de l'importance de cette erreur. L'invention n'est pas limitée au mode de réalisation représenté et décrit en détail à titre d'exemple, car diver- ses modifications peuvent y être apportées sans sortir de son cadre. REVENDICATIONS 1 - Interface orienté par barre omnibus, situé entre une source de données vidéo numériques et une mémoire, caractérisé en ce qu'il comprend (a) des moyens pour saisir les quatre bits les plus significatifs d'une donnée correspondant à chaque élément d'image vidéo et pour organiser cette donnée en mots de 16 bits; et (b) des moyens pour effectuer un transfert direct Io d'adresse de ladite donnée dans ladite mémoire. 2 - Interface selon la revendication 1, caractérisé ei ce qu'il comprend des moyens pour effectuer ledit trans- fert de donnée à une vitesse pouvant atteindre l'ordre de grandeur de dix millions de multiplets ou bytes de 8 bits à la seconde. - Interface selon la revendication 1, caractérisé en ce qu'il comprend des moyens pour surveiller le nombre d'éléments d'image reçus pendant chaque ligne horizontale et le nombre de ces éléments transférés dans ladite mémoire. 4 - Interface selon la revendication 3, caractérisé en ce qu'il comprend des moyens pour s'assurer que le nombre d'éléments d'image reçus et le nombre d'éléments d'image transférés correspondent pour chaque ligne horizontale. - Interface selon la revendication 1, caractérisé en ce que lesdits moyens pour saisir et organiser ladite donnée vidéo numérique comprennent un fichier registre fono- tiouant selon le môde: premier entré, premier sorti. 6 - Interface selon la revendication 5, caractérisé en ce que ledit fichier registre comprend quatre registres, chaque registre comprenant quatre niveaux de stockage, chaque niveau comprenant des moyens pour stocker quatre bits. 7 - Interface selon la revendication 6, caractérisé en ce qu'il comprend des moyens pour lire des groupes succes- sifs de données de 4 bits correspondant à des éléments d'image successifs dans un niveau desdits quatre registres successifs et pour lire simultanément un mot de 16 hits dans un autre niveau de tous les qpAre registres.