FR2636152A1 - Processeur d'images en pipeline - Google Patents
Processeur d'images en pipeline Download PDFInfo
- Publication number
- FR2636152A1 FR2636152A1 FR8911660A FR8911660A FR2636152A1 FR 2636152 A1 FR2636152 A1 FR 2636152A1 FR 8911660 A FR8911660 A FR 8911660A FR 8911660 A FR8911660 A FR 8911660A FR 2636152 A1 FR2636152 A1 FR 2636152A1
- Authority
- FR
- France
- Prior art keywords
- data
- signal
- image
- stage
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
Ce processeur comprend des étages de traitement 21, 22, 23 connectés en cascade, adaptés chacun à opérer une transformation morphologique de données d'image fournies à une entrée de données LA de cet étage et à appliquer les résultats de la transformation à une sortie de données OUT chaque étage comportant un premier circuit de commande de flux de données comportant une première entrée IVAL pour un premier signal indiquant la disponibilité de données d'image à l'entrée de données de l'étage, un moyen pour retarder le premier signal d'un premier intervalle de temps donné et un moyen de couplage pour appliquer le premier signal retardé à une première borne de sortie OVAL; un deuxième circuit de commande de flux de données comportant une deuxième borne d'entrée ORDY de réception d'un deuxième signal indiquant la disponibilité d'un dispositif connecté à la sortie de données à recevoir les données d'image transformées fournies par cet étage, un moyen pour retarder le deuxième signal d'un deuxième intervalle de temps donné et un moyen de couplage pour appliquer le deuxième signal retardé à une deuxième borne de sortie IRDY; un moyen réagissant à la présence de l'un au moins des premier et deuxième signaux pour suspendre la transformation morphologique des données d'image; et chaque étage, à l'exception du dernier de la cascade, comportant des moyens de couplage de la première borne de sortie à la première borne d'entrée de l'étage suivant de la cascade et de couplage de la deuxième borne de sortie à la deuxième borne d'entrée de l'étage suivant la cascade.
Description
La présente invention est relative aux techniques de traitement d'images à
deux dimensions pour la reconnaissance des formes et des détails, et plus particulièrement à des techniques de ce genre qui font appel à une série de trans-
formations de pixels basées sur des voisinages de pixels.
Comme les équipements d'assemblage automatisé et les
robots vont en se perfectionnant, il est souhaitable d'ad-
joindre le sens de la vision à ces dispositifs. Ceci permet-
trait aux équipements de repérer la position d'un objet en cours de fabrication, ainsi que d'inspecter l'objet pour y vérifier la présence de composants ainsi que l'emplacement et les dimensions corrects de détails spécifiques. A cet effet, il a été conçu divers systèmes processeurs d'images qui fournissent une image de signaux vidéo bidimensionnelle
de l'objet à analyser.
Dans une technique antérieure de traitement d'images, on transforme l'image de signaux vidéo d'origine en une image totalement différente dans laquelle les détails désirés peuvent être plus facilement analysés. Pour préparer une image à la transformation, on numérise d'abord une image de signaux vidéo en une image binaire dans laquelle chaque élément d'image ou pixel est représenté par un seul bit, si bien que le pixel est soit noir, soit blanc. Chaque pixel de l'image binaire est ensuite transformé selon une règle bien
définie qui spécifie une nouvelle valeur pour le pixel consi-
déré en fonction de son ancienne valeur et des anciennes valeurs des pixels appartenant à un voisinage prédéfini qui l'entoure. Par exemple, le voisinage peut consister en une matrice de 3 x 3 pixels dont le centre est occupé par le pixel à transformer. Les valeurs binaires des neuf pixels de voisinage sont ensuite évaluées afin de déterminer la nouvelle valeur à affecter au pixel central. Dans un cas
simple, si les neuf pixels sont tous blancs, on fixe le ni-
veau blanc au pixel central dans l'image transformée; sinon,
on lui affecte le niveau noir. L'effet de cette transforma-
-2
tion est que les pixels bordant des régions blanches devien-
nent noirs. Ce cas est dénommé "érosion de blancs", car les régions blanches de l'image deviennent plus petites et les zones noires plus étendues. Il existe une transformation inverse, dite "dilatation de blancs", o la valeur transfor- mée du pixel central est blanche si certains pixels de voisinage sont noirs. Cette dernière transformation tend à dilater les régions blanches de l'image et à contracter les régions noires. Ce type de transformation par voisinage est connu génériquement sous le nom de "traitement morphologique mathématique" et est décrit dans l'ouvrage "Image Analysis and Mathematical Morphology" de Jean Serra, Academic Press, Inc., 1982. Le lecteur est également invité à se reporter au
US-A-3 805 035.
Lorsque l'on recourt à cette technique de traitement d'images morphologique, la règle de transformation est souvent réappliquée à l'image obtenue pour transformer davantage l'image de départ. Un certain nombre de ces itérations de transformation peuvent être exécutées afin de résoudre l'image en une transformée dans laquelle des informations relatives aux détails intéressants peuvent être extraites plus facilement. En définissant la règle de transformation et le nombre d'itérations de traitement, l'utilisateur peut résoudre un détail donné de l'image en un élément d'image spécifique, tel qu'un point ou une ligne
dans l'image résultante.
Comme on traitement répétitif est souvent nécessaire, il est souhaitable de monter un certain nombre de processeurs
morphologiques en pipeline afin d'accélérer la transforma-
tion en la version finale de l'image. Cependant, si les portions du système qui injectent les données d'image dans
le pipeline ou qui reçoivent l'image résultante finale pas-
sent dans un état dans lequel elles ne peuvent pas coopérer avec le pipeline, la bonne exécution du traitement n'est plus assurée. Plus précisément, si l'application de données
au pipeline cesse, la poursuite du fonctionnement du pipe-
line donnera lieu au traitement de données de pixels non -3-
valides, en fournissant une image résultante non valide.
D'une façon similaire, si la portion de sortie du système
devient inapte à recevoir des données du pipeline, la pour-
suite du fonctionnement aboutira à une perte des données d'image traitées. Ces types d'erreurs peuvent également sur- venir si un processeur morphologique individuel du pipeline tombe en panne et que les autres processeurs continuent à fonctionner. En conséquence, il est besoin d'un mécanisme permettant de signaler aux processeurs l'occurrence d'une anomalie et d'assurer une cessation de traitement en bon
ordre préservant l'intégrité des données.
Selon l'invention, un système de traitement d'images comporte plusieurs étages processeurs montés en cascade formant pipeline. Chaque étage opère une transformation prédéfinie sur des données d'image d'entrée et envoie les données d'image transformées à l'étage suivant. Un ensemble de lignes de signal de gestion de flux de données d'entrée relie chaque étage à un dispositif d'entrée qui fournit les données d'image d'entrée à cet étage. L'une de ces lignes véhicule un signal provenant du dispositif d'entrée qui indique quand ce dispositif a des données disponibles pour envoi et l'autre ligne véhicule un signal qui indique quand l'étage est prêt à recevoir des données. Un ensemble de lignes de signal de gestion de flux de données de sortie relie chaque étage à un dispositif de sortie qui reçoit les
données d'image transformées en provenance de cet étage.
L'une des lignes de ce deuxième ensemble véhicule un signal qui indique quand l'étage a des données d'image prêtes à être délivrées. L'autre ligne reçoit un signal représentant la disponibilité du dispositif de sortie à recevoir les données d'image transformées fournies par l'étage. Les dispositifs d'entrée et de sortie peuvent être un autre étage du pipeline ou bien des dispositifs couplés à chaque
extrémité du pipeline.
Un premier circuit dans chaque étage traite le signal de
flux de données d'entrée. Ce premier circuit retarde le si-
gnal qui indique quand le dispositif d'entrée a des données - 4 - et il applique le signal retardé à la ligne qui véhicule le signal indiquant quand l'étage a des données disponibles pour émission. Un deuxième circuit dans chaque étage retarde le signal qui indique quand le dispositif de sortie est disponible pour recevoir des données de l'étage. Le signal retardé fourni par le deuxième circuit est appliqué à la ligne qui véhicule un signal désignant la disponibilité de l'étage à recevoir des données d'image. L'un et l'autre des premier et deuxième circuits réalisent aussi un mécanisme de commande de la transformation d'imageen réponse aux signaux respectivement fournis par le dispositif d'entrée et le
dispositif de sortie.
Un but général de l'invention est de fournir un proces-
seur d'images qui est adapté à être utilisé pour constituer
un étage d'un système de traitement d'images en pipeline.
Pour permettre d'atteindre ce but général, la présente invention fournit une paire de signaux de flux de données qui gèrent la circulation des données transitant dans le pipeline. En tout point donné, l'un de ces signaux indique la disponibilité de données en amont dans la cascade de
pipeline. L'autre signal de commande indique la disponibi-
lité des dispositifs en aval du point considéré à recevoir
des données.
Un autre but de l'invention est de fournir un mécanisme prédéfini pour assurer la propagation de ces signaux de commande le long du pipeline pour permettre de réaliser une
gestion en bon ordre des transformations d'image.
Un autre but encore de la présente invention est de four-
nir une manière de déterminer si un transformation d'image
opérée par un étage est idempotente.
Les caractéristiques et avantages de l'invention res-
sortiront plus amplement de la description donnée ci-après à
titre d'exemple non limitatif en référence aux dessins annexés, sur lesquels: La FIGURE 1 est un schéma général d'un système de traitement d'images générique mettant en oeuvre la présente invention; -5- La FIGURE 2 est une représentation spatiale des pixels dans une portion d'une image vidéo; La FIGURE 3 montre le détail du processeur d'images en pipeline de la Figure 1; La FIGURE 4 est un schéma fonctionnel et électrique de l'un des étages du processeur d'images en pipeline; La FIGURE 5 représente le détail d'un sélecteur de voisinage pour un étage du processeur d'images en pipeline; La FIGURE 6 est une représentation de la portion d'image de la Figure 2 illustrant la relation temporelle des pixels au cours du traitement d'image; La FIGURE 7 est un schéma d'un circuit qui traite les signaux de gestion de flux de données entre étages; et La FIGURE 8 est un chronogramme des signaux de gestion
de flux de données entre étages.
La Figure 1 représente un système processeur d'images générique 8 dans lequel est incorporé un processeur d'images
à transformation morphologique selon la présente invention.
Le repère numérique 10 désigne une caméra vidéo classique, par exemple du genre fournissant un signal vidéo répondant à la norme RS-170. Par exemple, le signal vidéo représente une image vidéo à balayage de trame présentant 256 lignes de balayage dont chacune comporte 256 éléments d'image ou
pixels. Le signal vidéo fourni par la caméra vidéo est trans-
mis à un convertisseur analogique-numérique (CAN) 11 qui fournit une représentation numérisée du niveau de luminance
de chaque pixel de l'image vidéo. Selon le type de traite-
ment d'image que doit réaliser ce système, le CAN 11 peut être configuré de manière à fournir soit une représentation numérique sur six bits de la luminance d'échelle de gris du pixel, soit une représentation sur un seul bit (blanc ou
noir) de chaque pixel dans une image binaire.
Les pixels numérisés sont stockés dans une première mémoire 12 pour être traités en différé, un traitement en temps réel étant cependant réalisable. La sortie de données de la première mémoire 12 est couplée par un bus de données
parallèle 13 à six bits à l'entrée d'un pipeline de traite-
-2 6 -3
ment d'image 14 qui exécute la transformation morphologique de l'image. Deux lignes de gestion de flux de données, ENTREE PRETE et ENTREE VALIDE, s'étendent entre la première mémoire et le processeur en pipeline 14. La première mémoire 12 fournit un signal ENTREE VALIDE actif lorsqu'elle contient des données disponibles pour le pipeline de traitement d'image 14. Lorsque le pipeline de traitement d'image 14 est à même de recevoir des données, il établit un signal ENTREE PRETE actif. La sortie de données du pipeline de traitement d'image 14 est couplée à l'entrée d'une deuxième mémoire 15 qui emmagasine la version transformée de l'image. Deux lignes de gestion de colloque, SORTIE PRETE et SORTIE VALIDE, s'étendent entre le pipeline de traitement d'image 14 et la deuxième mémoire 15 pour gérer le flux de
données circulant entre eux.
La sortie de données de la deuxième mémoire 15 est reliée à l'entrée d'un circuit analyseur d'image 16 qui peut être de l'un quelconque de plusieurs types bien connus. Par exemple, l'analyseur d'image peut être du type décrit dans le US-A-3 449 586. Une horloge mère 17 fournit les signaux de cadencement nécessaires pour les composants du système de traitement d'images afin de commander leur fonctionnement et
de gérer le flux de données traversant le système.
L'essence de la présente invention fait intervenir le pipeline de traitement d'image 14 et ses signaux de gestion de colloque. Ce processeur exécute une transformation d'un pixel donné d'après les valeurs des pixels figurant dans un voisinage environnant. La Figure 2 représente la relation spatiale entre les pixels pour une portion de l'image vidéo
à balayage de trame emmagasinée dans la première mémoire 12.
Chaque pixel est défini par ses coordonnées de ligne et de colonne dans l'image bidimensionnelle, le premier pixel de la première ligne étant par exemple le pixel (0,0). Lors de la numérisation du signal de sortie de la caméra vidéo, la phase du signal d'horloge appliqué au CAN 11 est décalée d'une demi-période de pixel au début d'une ligne de balayage sur deux. Ce déphasage décale les pixels des lignes impaires - 7 - par rapport à ceux des lignes paires pour former une trame d'image "hexagonale". Ceci permet de définir un voisinage hexagonal formé par un pixel central à transformer et par
les six pixels qui lui sont adjacents. L'un de ces voisina-
ges, pour la transformation du pixel 1,2, est représenté par
la région hachurée de la Figure 2. Chaque pixel est égale-
ment membre des voisinages créés pour transformer chacun de ses six pixels adjacents. Comme on le voit sur cette figure, la transformation d'un pixel donné nécessite la connaissance des valeurs de pixels appartenant aux lignes de balayage
précédente et suivante de l'image.
Le détail du pipeline de traitement d'image 14 pour l'évaluation d'un voisinage de sept pixels en relation d'hexagonalité est représenté par la Figure 3. Le pipeline 14 est structuré autour de trois processeurs morphologiques 21, 22 et 23 qui sont montés en cascade, et auquels peuvent cependant être adjoints des processeurs morphologiques additionnels. Chacun des processeurs morphologiques comporte trois entrées de données LA, LB et LC pour la réception de données d'image en provenance du dispositif précédent dans la cascade. Par exemple, les trois entrées de données LA, LB et LC du premier processeur morphologique 21 reçoivent de la première mémoire 12 des données représentant les pixels appartenant respectivement à la ligne de balayage courante
et à ses deux lignes de balayage antécédentes. Plus précisé-
ment, la ligne de bit de poids fort du bus de données parallèle à six bits 13 en provenance de la première mémoire 12 est couplée directement à l'une des entrées LA du premier processeur morphologique 21. Les cinq lignes restantes du bus de données 13 sont couplées à l'entrée LA par un ensemble de cinq tampons de données à trois états 20. Selon qu'il s'agit de traiter une image à échelle de gris ou une image binaire, les tampons 20 sont commandés en sorte que six bits ou un seul bit, respectivement, se trouvent envoyés à l'entrée LA. Les six lignes de données 19 qui sont connectées à l'entrée LA du premier processeur morphologique 21 sont également couplées par un premier registre à -8- décalage 24 à l'entrée LB, et, par le montage en série du premier registre à décalage 24 et d'un deuxième registre à décalage 25, à l'entrée LC. Chacun des registres à décalage
24 et 25 comporte 256 étages de six bits de large et intro-
duit de ce fait un retard égal à une période de balayage de ligne horizontale de l'image vidéo. En variante, les registres à décalage peuvent être de longueur programmable, en permettant ainsi de configurer le pipeline avec plus de souplesse. Par suite des retards introduits par les registres à décalage, les pixels de trois lignes de balayage consécutives se trouvent simultanément appliqués aux entrées LA, LB et LC du premier processeur morphologique 21. Les registres à décalage 24 et 25 et le processeur morphologique 21 reçoivent un signal d'horloge de l'horloge mère 17. Le processeur morphologique 21 génère un signal de suspension qui est appliqué aux registres à décalage 24 et 25 pour
stopper le décalage des données.
La ligne de commande ENTREE VALIDE est couplée au premier processeur morphologique 21 et elle véhicule un signal, désigné dans ce qui suit par IVAL, qui indique quand la première mémoire 12 dispose de données de pixels pour ce processeur. Le premier processeur morphologique 21 émet un signal IRDY sur la ligne de commande ENTREE PRETE lorsqu'il
est à même de recevoir des données de la première mémoire.
Les processeurs morphologiques 21 à 23 sont tous reliés à une ligne de commande, désignée par BINARY, qui véhicule un signal indiquant si le traitement en cours concerne une image à échelle de gris ou une image binaire. Un signal de sortie d'occupation est fourni sur une autre ligne de commande commune, désignée par BUSY, par les processeurs 21 à 23 lorsqu'ils sont occupés à effectuer la transformation d'image. Le fonctionnement des registres à décalage et des processeurs morphologiques est référencé à un signal
d'horloge commun provenant de l'horloge mère 17.
La sortie du premier processeur morphologique 21, qui représente les résultats de la première transformation de l'image, est couplée directement.à l'entrée LA du deuxième -9- processeur morphologique 22 et, à travers un troisième et un quatrième registres à décalage 26 et 27, aux entrées LB et LC de ce processeur consécutif. Le premier processeur 21 génère un signal de sortie OVAL lorsqu'il a des données d'image transformée valides à délivrer. Ce signal de sortie
est appliqué à l'entrée de signal IVAL du deuxième proces-
seur morphologique 22. D'une façon similaire, ce deuxième processeur morphologique 22 génère un signal IRDY lorsqu'il
est prêt à recevoir des données d'entrée. Ce signal est ap-
pliqué à l'entrée de signal ORDY de sortie prête du premier processeur morphologique 21 pour indiquer que l'étage
suivant du pipeline est en mesure d'admettre des données.
Le deuxième processeur morphologique 22 est couplé au troisième processeur morphologique 23 par des connexions du même type que celles existant entre les premier et deuxième processeurs morphologiques 21 et 22. Des registres à
décalage 28 et 29 sont utilisés aux entrées LB et LC du troi-
sième étage. Selon le nombre d'étages du pipeline, les sor-
ties du troisième processeur morphologique 23 sont couplées
soit à un étage suivant, soit à la deuxième mémoire 15.
L'ensemble de circuits formant chacun des processeurs morphologiques 21 à 23 est identique à celui représenté par la Figure 4. Chacune des lignes de bit de donnée parallèles des trois entrées de données de ligne d'image LA, LB et LC est couplée à un sélecteur de voisins respectif 30 à 35. Par exemple, la ligne de bit de donnée de poids fort (LA5, LB5 et LC5) des trois entrées de données de ligne d'image est couplée à une entrée du premier sélecteur de voisins 30. Les lignes de bit de donnée de poids immédiatement inférieur respectives des entrées LA, LB et LC sont couplées aux entrées du deuxième sélecteur de voisins 31, et ainsi de
suite. Les sélecteurs de voisins 31 à 35 reçoivent collecti-
vement les données de pixels afférentes aux trois lignes de balayage consécutives et ils sélectionnent et stockent temporairement les données obtenues à partir des sept pixels
de chaque voisinage.
Le circuit réalisant le premier sélecteur de voisins 30
- 10 -
est représenté par la Figure 5, étant entendu que les autres sélecteurs 32 à 35 ont des circuits identiques. Le circuit
sélecteur de voisins 30 comporte neuf bascules (F/F) dési-
gnées par A à I qui emmagasinent un bit des données pour une matrice trois-sur-trois de pixels adjacents. La ligne de bit d'entrée de poids fort LA5 de l'entrée LA est couplée à l'entrée de donnée de la bascule A, dont la sortie Q est couplée à l'entrée de donnée de la bascule B. L'entrée de donnée de la bascule C est connectée à la sortie Q de la bascule B. Les sorties Q des bascules A et B sont connectées aux entrées d'un premier multiplexeur de lignes 38 et les sorties Q des bascules B et C sont connectées aux entrées
d'un deuxième multiplexeur de lignes 39.
La ligne de bit LB5 afférente à la ligne de balayage vidéo précédente alimente un montage en cascade similaire formé par les bascules D, E et F. Toutefois, les sorties Q des bascules D, E et F sont couplées à la sortie à trois états d'amplificateurs tampons respectifs 40 à 42. La ligne de bit LC5 afférente aux données de la ligne de balayage vidéo antépénultième alimente un montage en cascade de bascules G, H et I. Les sorties Q des bascules G et H sont connectées aux entrées d'un troisième multiplexeur de lignes 43, tandis qu'un quatrième multiplexeur 44 est attaqué par
les sorties Q des bascules H et I. Les sorties des multi-
plexeurs de lignes 38, 39, 43 et 44 et des amplificateurs tampons de sortie 40, 41 et 42 forment une sortie à sept
bits sur les lignes OB0 à OB6.
Comme visible en se reportant aux Figures 2, 5 et 6, les sélecteurs de voisins 30 à 35 reçoivent les données de pixels afférentes à trois lignes consécutives et ils délivrent séquentiellement les données correspondant aux
ensembles de sept pixels qui forment les voisinages d'image.
Etant donné que le système est conçu pour une image hexago-
nale et un voisinage hexagonal, les signaux de données de pixels doivent être traités différemment par les sélecteurs selon que le pixel à transformer appartient à une ligne de balayage de numéro impair ou pair. La raison de cette
- 11 -
différence de traitement ressortira de la description de la
manière dont sont traités les deux voisinages mis en évi-
dence sur la Figure 2.
Comme décrit précédemment, le signal d'horloge utilisé pour numériser les lignes de balayage impaires est déphasé d'une demi-période de pixel par rapport au signal d'horloge utilisé pour numériser les lignes de balayage paires. De ce
fait, les pixels numérisés correspondant à des lignes adja-
centes ont la disposition spatiale mutuelle schématisée par la Figure 2. Cependant, lorsque ces pixels sont extraits rythmiquement de la première mémoire 12 pour traverser les
registres à décalage 24 à 29 et les processeurs morphologi-
ques 21 à 23, chaque ligne est rythmée par un signal qui est en phase avec le signal d'horloge intervenant pour toutes les autres lignes de balayage. Il s'ensuit que les données affrentes à trois lignes de balayage arrivent aux entrées de processeur LA, LB et LC simultanément, en convertissant temporairement l'image hexagonale de la Figure 2 en une
image rectangulaire telle que représentée par la Figure 6.
Cette conversion altère les relations spatiales et temporel-
les entre les pixels des voisinages; qui plus est, la rela-
tion entre les sept pixels de voisinage est différente selon
que le pixel central est sur une ligne paire ou impaire.
Par exemple, si l'on considère le voisinage centré sur le pixel 1,2 des Figures 2 et 6, la conversion en une image rectangulaire place ces pixels avoisinants selon une matrice
de 3 x 3 pixels désignée par les lignes en trait fort entou-
rant le pixel (1,2) sur la Figure 6. Cette matrice corres-
pond à la matrice de 3 x 3 pixels contenue dans les bascules
des sélecteurs de voisins 30 à 35 du processeur morphologi-
que. Lorsque la donnée relative au pixel central (1,2) est logée dans la bascule centrale E, les valeurs des pixels de voisinage restants sont logées dans les bascules A, B, D, F, G et H. Un circuit de commande 45 faisant partie de chaque sélecteur de voisins 30 à 35 émet un signal désigné par ODD/EVEN (impair/pair) qui indique si le pixel central est sur une ligne de balayage impaire ou paire. Dans l'exemple
- 12 -
pris pour le pixel central (1,2) se trouvant sur une ligne
de balayage impaire, le signal ODD/EVEN impose aux multi-
plexeurs de lignes 38, 39, 43 et 44 de coupler les sorties des bascules A, B, G et H aux lignes de sortie OB0, OB1, OB5 et OB6, respectivement. Les sorties des bascules D, E et F représentent toujours un pixel de voisinage et elles sont par conséquent couplées en permanence aux lignes de sorties OB2, OB3 et OB4, respectivement. Il s'ensuit que les lignes de sortie du sélecteur de voisinage représentent des données afférentes aux pixels appartenant au voisinage hachuré sur
la Figure 6.
Lorsque le pixel en cours de transformation se trouve sur une ligne paire, tel le pixel (2,6), la conversion d'une image hexagonale en une image rectangulaire amène les sept pixels de voisinage en des positions relatives différentes dans la matrice 3 x 3, comme représenté par les pixels pointillés de la Figure 6. Il s'ensuit que lorsque la valeur de ce pixel (2,6) est mémorisée dans la bascule E des sélecteurs de voisinage 30 à 35, les valeurs correspondant aux autres pixels de son voisinage seront mémorisées dans les bascules B, C, D, F, H et I. Cet ensemble de bascules diffère de celui des bascules intervenant pour une ligne de balayage impaire. Le signal ODD/EVEN fait alors sélectionner aux multiplexeurs de lignes 38, 39, 43 et 44 les sorties des bascules B, C, H et I, respectivement. En conséquence, les
lignes de sortie OB0-OB6 du sélecteur de voisinage contien-
dront les données de pixels provenant des bascules B, C, D, E, F, H et I lorsque le pixel en cours de transformation se trouvera sur une ligne de balayage paire. Un signal de sortie VALID est généré par le circuit de commande 45 chaque fois que des données sont disponibles aux sorties OB0OB6 du
sélecteur de voisins.
Lorsque le pixel en cours de transformation est situé au bord de l'image, certains des emplacements de pixels du voisinage seront "hors image" et les bascules du sélecteur de voisins qui correspondent à ces emplacements de pixels ne disposeront pas de données. Le circuit de commande 45
- 13 -
reconnaît cette situation et délivre des signaux de remise à zéro à ces bascules correspondantes pour forcer leur sortie Q à zéro. Par exemple, lorsque le pixel en cours de transformation, c'est-à-dire le pixel central du voisinage, se trouve sur la ligne du bas de l'image, les bascules A, B et C seront réinitialisées pour faire apparaître des zéros à leur sortie Q. A ce moment, il n'y aura pas de données d'image valides aux entrées LA. En variante, ces bascules pourraient recevoir des signaux d'armement visant à forcer
leur sortie à 1.
Pour pouvoir générer le signal ODD/EVEN et les signaux RAZ de remise à zéro des bascules, le circuit de commande 45 reçoit des signaux de commande d'entrée désignés par CLOCK (horloge), BZ et PAR. Le signal de parité PAR indique si les pixels en cours de traitement sont sur une ligne de balayage impaire ou paire. Les processeurs morphologiques 21 à 23 peuvent être utilisés non seulement pour transformer une image entière, mais aussi pour transformer une portion d'une image. Dans ce dernier cas, les processeurs doivent savoir si la première ligne de balayage de cette portion est impaire ou paire. Le signal de parité indique aussi la fin d'une ligne de balayage ou la fin de la ligne dans la portion d'image définie, en permettant ainsi de remettre à zéro les bascules correspondantes au bord correspondant de l'image. Le signal de parité PAR est fourni par la sortie d'un multiplexeur de parité 46 qui sélectionne le signal en provenance de l'une de deux entrées BPAR ou GPAR selon qu'un signal B/G indique que l'on traite une image binaire ou à échelle de gris. Le circuit de commande 45 reçoit aussi un signal d'occupation BZ en provenance d'un multiplexeur d'occupation 47 qui choisit semblablemententre des signaux d'entrée BBZ et GBZ selon le type de l'image. Le signal BZ
indique le début et la fin de la portion de l'image à trai-
ter et il sert à indiquer quand un pixel central se trouve sur un bord horizontal de la portion d'image. De plus, les signaux BBZ et GPAR attaquent un circuit retardateur 48 pour fournir deux signaux de sortie OBZ et OPAR lorsque l'image
- 14 -
traitée est une image binaire. On verra comment s'effectue la sélection des différents signaux de commande et quels sont leurs effets dans une section ultérieure qui décrit le fonctionnement global du processeur morphologique d'image 21. Comme visible en se reportant encore aux Figures 3 et 4, le processeur morphologique 21 qui y est représenté peut être configuré pour traiter soit des images binaires, soit des images àéchelle de gris. Un grand nombre des composants du processeur qui sont en aval des sélecteurs de voisins 30 à 35 ne servent que dans le traitement d'un seul type de ces images. En conséquence, les parties restantes du processeur
morphologique 21 trouveront leur meilleure description en
regard de celle du traitement de chaque type d'image.
Lors du traitement d'une image binaire, chacun des processeurs morphologiques 21 à 23 ne reçoit qu'un seul bit pour chaque pixel. En ce qui concerne le premier 21 de ces processeurs dans le mode binaire, les tampons de données 20 insérés sur le bus d'entrée 13 sont rendus non conducteurs, si bien que seule la ligne de bit de poids fort du bus se
trouve couplée à l'entrée LA5. Les entrées LB5 et LC5 reçoi-
vent des formes retardées du signal de bit de poids faible en provenance des deux premiers registres à décalage 24 et 25. Seul le premier sélecteur de voisins 30 reçoit de la première mémoire 12 les données de pixels d'image d'origine; les sélecteurs de voisins restants 31 à 35 sont connectés en
cascade pour appliquer répétitivement une règle de transfor-
mation à l'image.
Les sept bits de sortie OB0 à OB6 issus du premier sélec-
teur de voisins 30 représentent à tout instant les valeurs binaires des sept pixels figurant dans le voisinage du pixel en cours de transformation. Ces bits de sortie sont transmis par l'intermédiaire d'un premier sous-faisceau de bus de pixels 50 à l'entrée d'adresse d'une première mémoire formant table de consultation (LUT) 60 comportant 128 positions de mémoire. Chaque combinaison spécifique des sept valeurs de pixels du voisinage désigne dans la mémoire de
- 15 -
table de consultation une position qui contient la valeur de transformation à bit unique associée au pixel central du voisinage. Par exemple, si l'on veut réaliser une érosion des zones blanches de l'image, la position mémoire (1111111) dans la mémoire de table de consultation 60 contiendra un 1
(niveau de blanc) et toutes les autres positions contien-
dront un 0 (niveau de noir). Ce bit de résultat de transfor-
mation est transmis par un conducteur 71 de la mémoire de table de consultation 60 à un amplificateur tampon à trois états 56 qui est sensibilisé dans le mode binaire par le signal B/G en provenance d'un circuit de commande de processeur 70. La sortie de l'amplificateur tampon 56 est connectée à l'entrée LA4 du deuxième sélecteur de voisins 31. Le signal présent à l'entrée LA4 est transmis par deux des lignes de données 19 et par les premier et deuxième registres à décalage 24 et 25 aux entrées LB4 et LC4. Ce couplage des entrées LA4, LB4 et LC4 permet à trois lignes de balayage de l'image transformée par la première mémoire de table de consultation 60 d'apparaitre à ces entrées. Le deuxième sélecteur de voisins 31 et la deuxième mémoire de table de consultation 61 qui lui est associée opèrent une autre transformation sur l'image binaire. Les paires en cascade restantes de sélecteurs de voisins 32 à 35 et de mémoires de table de consultation 62 à 65 exécutent des itérations de transformation d'image ultérieures. Chaque paire formée par un sélecteur de voisins et une mémoire de table de consultation forme une section de transformation
en cascade.
Dans le mode binaire, le sélecteur de voisins réagit au signal d'occupation BBZ et au signal de parité BPAR tels que les sélectionnent les multiplexeurs 46 et 47. A mesure que les données d'image relatives à chaque ligne se propagent dans chaque section de cette cascade, les signaux BBZ, BUSY et BPAR (parité) se propagent aussi. Ces signaux sont retardés par des circuits retardateurs 48 dans chacun des sélecteurs de voisins 30 à 35 afin de compenser le temps de
propagation des données d'image.
- 16 -
En chargeant des données appropriées dans les mémoires de table de consultation 60 à 65, on peut faire exécuter des
transformations différentes à chaque section de la cascade.
On peut même charger des données qui ne donnent pas lieu à transformation de l'image dans une section de cascade don- née, ce qui veut dire que les six sections n'effectuent pas
obligatoirement toutes une transformation. Une unité cen-
trale d'interfaçage (CPU) 49 couple le processeur morpholo-
gique 21 au microordinateur 18 du système de traitement d'images de manière à permettre de télécharger et de stocker les données de transformation dans les mémoires de table de
consultation respectives 60 à 65. A cet effet, l'unité cen-
trale 49 est couplée aux mémoires de table de consultation par un bus d'adresse 57 et un bus de données 59. Dans le but de simplifier la représentation du processeur morphologique sur la Figure 3, les lignes de signaux de commande classiques, dont la présence va de soi pour le spécialiste
en la matière, ont été omises.
La sortie de la dernière mémoire de table de consulta-
tion 65 est couplée par une ligne 58 à une entrée d'une unité arithmétique et logique (UAL) 66. L'unité arithmétique et logique comporte un ensemble de lignes de sortie 67 sur la ligne de bit de poids fort 67' dUquel est transmis le bit de donnée unique en provenance de la dernière mémoire de
table de consultation 65. Un signal issu du circuit de com-
mande de processeur 70 sensibilise un amplificateur tampon 68 inséré sur cette ligne de sortie 67', lequel transmet la donnée à la sortie de pixel du processeur morphologique d'image 21. Les amplificateurs tampons 69 placés sur les
cinq lignes de sortie de pixel restantes sont non conduc-
teurs dans le mode d'image binaire. -
Le circuit de commande de processeur 70 répond au signal d'horloge mère, à un signal de type d'image (BINARY), à un signal d'entrée valide (IVAL) et à un signal de sortie prête
(ORDY), appliqués de l'extérieur au processeur morphologi-
que, en générant des signaux de commande et d'horloge interne pour le processeur morphologique 21. Par exemple, le
- 17 -
signal de type d'image (BINARY) est utilisé pour produire le signal de commande interne B/G. De plus, le circuit de commande de processeur 70 utilise les signaux IVAL et ORDY pour générer un signal d'occupation actif BUSY de la manière que l'on va décrire dans ce qui suit. Au lieu de traiter une image binaire de la manière que l'on vient de décrire, le système processeur d'images et plus précisément les processeurs morphologiques 21 à 23 peuvent être configurés pour traiter une image à échelle de gris. Dans ce cas, la première mémoire 12 mémorise une valeur numérique sur six hits de la luminance pour chaque pixel de l'image. Les six bits pour chaque pixel sont lus dans la première mémoire et envoyés sur le bus 13. Comme visible sur la Figure 3, le tampon d'entrée 20 est sensibilisé dans ce mode de manière à coupler la totalité des lignes du bus de données 13 à l'entrée LA du premier processeur 21. Les registres à décalage de six bits de large 24 et 25 couplent en outre les lignes du bus de données aux entrées LB et LC de ce même processeur 21. Comme visible en considérant les Figures 4 et 5, chacune des six lignes du bus de données 13 est connectée à l'entrée LA de l'un différent des six sélecteurs de voisins 30 à 35. Les six lignes de bit de sortie des première et deuxième lignes à retard 24 et 25 sont semblablement couplées aux sélecteurs de voisins. Plus précisément, le premier sélecteur 30 reçoit les lignes de bit de poids fort (bit 5) des entrées LA, LB et LC, le deuxième sélecteur 31 est attaqué par les lignes de bit de poids immédiatement inférieur (bit 4), et ainsi de suite. Dans le mode d'échelle de gris, les sélecteurs 30 à
35 répondent aux signaux de commande BUSY et PARITY respec-
tivement appliqués en parallèle à leurs entrées GBZ et GPAR.
En réponse à ces signaux de commande, les sélecteurs de voi-
sins 30 à 35 envoient les bits de pixels qui correspondent au voisinage courant sur les lignes de sortie OB0 à OB6 de leur sous-faisceau de bus de pixels 50 à 55 respectif. Par exemple, le premier sélecteur de voisins 30 délivre les bits de poids fort des valeurs de luminance d'échelle de gris
- 18 -
pour les sept pixels du voisinage.
Le signal de commande BUSY appliqué à l'entrée GBZ provoque la remise à zéro des bascules A à I sélectionnées par le circuit de commande de processeur 45 lorsque le pixel central est au bord du haut ou du bas de l'image. D'une façon similaire, le circuit de commande 45 répond au signal PARITY appliqué à l'entrée GPAR pour remettre à zéro d'autres bascules sélectionnées lorsque le pixel central est au début ou à la fin d'une ligne de balayage. Ces signaux confèrent au circuit de commande 45 un fonctionnement qui est semblable au fonctionnement en mode binaire, à ceci près que comme les sélecteurs travaillent ici en parallèle, les
signaux BUSY et PARITY retardés provenant du circuit retar-
dateur 48 sont inutilisés.
Comme visible en se reportant encore à la Figure 4, les mémoires de table de consultation 60 à 65 sont inutilisées dans le mode de traitement d'images à échelle de gris. En conséquence, les amplificateurs tampons qui couplent la sortie de chaque mémoire à l'entrée LA de l'un des sélecteurs de voisins 31 à 35 (par exemple le tampon 56)
sont placés dans leur mode de sortie à trois états. Les sous-
faisceaux de bus de pixel 50 à 55 se réunissent en un bus de pixel central 72. Le bus de pixel central 72 couple les sélecteurs de voisins 30 à 35 à des circuits 75 et 76 qui détectent les deux pixels du voisinage qui ont les valeurs d'échelle de gris respectivement la plus faible et la plus forte. En ce qui concerne le circuit 76 qui détecte le pixel de valeur la plus forte, les six lignes de bit véhiculant la valeur d'échelle de gris pour l'un des pixels de voisinage sont couplées du bus de pixel central 72 à un premier ensemble de portes de données 80. Les groupes de six lignes de bit pour chacun des autres pixels de voisinage sont semblablement couplés à d'autres ensembles de portes de données 81 à 86. Dans le mode d'échelle de gris, lorsqu'un pixel voisin est sélectionné pour participer au calcul de la valeur d'échelle de gris la plus forte, l'unité centrale 49
- 19 -
transmet sur le bus de données de processeur 59 un octet qui sensibilise indépendamment les sept ensembles de portes de
données 80 à 86 du circuit de pixel le plus fort 76.
Lorsqu'ils sont sensibilisés, les ensembles de portes de données 80 à 86 couplent les lignes de pixel du bus de pixel central 72 à une série de comparateurs de pixels 77, 78, 79, 87, 88 et 89. Plus précisément, les deux premiers ensembles de portes de données 80 et 81 couplent les six lignes de bit de donnée pour deux des pixels de voisinage à des entrées du premier comparateur de pixels 77. Les valeurs d'échelle de gris pour ces deux pixels sont comparées par le premier comparateur 77, qui délivre les bits du pixel dont le niveau de luminance est le plus élevé. Les autres comparateurs 78, 79 et 88, 89 examinent semblablement les valeurs d'échelle de gris de deux pixels d'entrée et délivrent les bits du pixel de la valeur la plus forte. La sortie du comparateur final 89 de ce circuit de pixel le plus fort 76 représente le pixel de voisinage ayant la plus forte valeur d'échelle de gris. Cette sortie est reliée à l'une des entrées de
données parallèles de l'unité arithmétique et logique 66.
L'agencement du circuit de pixel le plus faible 75 est semblable à celui du circuit de pixel le plus fort, à ceci près que chacun de ses comparateurs fournit la valeur du pixel d'entrée dont la valeur d'échelle de gris est la plus faible. En conséquence, la sortie du circuit de pixel le plus faible 75, qui est couplée à une autre entrée parallèle de l'unité arithmétique et logique 66, représente le pixel de voisinage dont la valeur d'échelle de gris est la plus faible. De plus, une troisième entrée de données parallèle de l'unité arithmétique et logique 66 reçoit en outre les six bits de données correspondant au pixel central du voisinage, c'est-à-dire les bits provenant de la bascule E
de chacun des sélecteurs de voisins 30 à 35.
Selon la configuration de l'unité arithmétique et logi-
que 66, l'une des trois valeurs de pixel d'entrée (maximale, minimale ou centrale), peut être directement transmise à sa sortie 67. En variante, l'unité arithmétique et logique peut
- 20 -
être configurée pour effectuer une opération mathématique sur ces valeurs de pixels d'entrée. Par exemple, l'unité
arithmétique et logique peut calculer la moyenne arithméti-
que entre les valeurs d'échelle de gris de pixel la plus forte et la plus faible et appliquer le résultat à sa sortie 67. L'unité arithmétique et logique 66 est configurée par
des commandes envoyée dans l'unité centrale 49 par le micro-
ordinateur 18 du processeur d'images (Figure 1). Dans le mode d'échelle de gris, tous les amplificateurs tampons de sortie 68 et 69 de l'unité arithmétique et logique 66 sont rendus conducteurs pour fournir un état de sortie à bits multiples représentant la transformation du pixel central de chaque voisinage. Au fur et à mesure que les pixels sont envoyés rythmiquement à travers le processeur morphologique
21, chacun d'eux est transformé d'après la règle de conver-
sion qui est configurée dans le processeur.
Comme visible en se reportant momentanément à la Figure 3, les valeurs de pixel transformées fournies par le premier
processeur morphologique 21 sont transmises en série direc-
tement et à travers deux registres à décalage 26 et 27 à des entrées du deuxième processeur morphologique 22. Les sorties de ce deuxième processeur 22 sont semblablement couplées à un troisième processeur 23. Chacun des trois processeurs morphologiques 21 à 23 peut transformer l'image en recourant à des règles de transformation identiques ou différentes
dépendant de la configuration que leur donne l'utilisateur.
Chacune de ces transformations est idempotente si
l'image résultante est identique à l'imagz source. Dans cer-
taines opérations morphologiques, il est important de savoir si la transformation est ou non idempotente. Comme visible toujours en se reportant à la Figure 4, l'idempotence est
déterminée dans le mode d'échelle de gris par un accumula-
teur (ACC) 73 qui somme les valeurs transformées de tous les pixels de l'image de sortie. Si cette sommation de valeurs de pixels est la même pour les images d'entrée et de sortie et que l'on sait que la transformation est monotone, alors
la transformation est idempotente.
- 21 -
Par contre, dans le mode binaire, il y a six sections de
transformation morphologique binaire formées par un sélec-
teur de voisins et par la mémoire de table de consultation qui lui correspond dans chaque processeur morphologique. En conséquence, le simple examen de la sommation fournie par l'accumulateur 73 ne donne aucun moyen d'identifier l'étage qui a introduit l'idempotence. Pour permettre d'identifier
quelle est celle des sections de transformation d'image bi-
* naire qui a introduit l'idempotence, chacune des mémoires de
table de consultation 60 à 65 comporte un circuit qui com-
pare la valeur binaire du pixel central de chaque voisinage (c'est-à-dire l'état de sortie de la bascule E) à la valeur
de sortie lue dans la mémoire de table de consultation.
Lorsque le processeur morphologique 21 est initialisé au début du traitement de chaque image, un registre indicateur
faisant partie de chacune des mémoires de table de consulta-
tion 60 à 65 est mis à 1. Si pendant le traitement des pixels d'image, la comparaison de la valeur du pixel central à celle de son transformé indique des niveaux logiques binaires inégaux, l'indicateur de la mémoire de table de consultation correspondante est remis à zéro. Si au terme du traitement de l'image, la transformation effectuée par une section de transformation donnée était idempotente, son indicateur restera à 1. Si par contre la transformation n'était pas idempotente, en ceci que la valeur transformée d'un pixel quelconque n'était pas la même que sa valeur d'origine, l'indicateur aura été remis à zéro au cours du traitement. En conséquence, à l'achèvement du traitement d'une image, l'unité centrale 49 interroge les mémoires de table de consultation 60 à 65 et lit leurs bits indicateurs pour déterminer celle éventuelle à laquelle était associée
une transformation idempotente.
Le pipeline de traitement d'image 14 peut être formé par
des étages plus nombreux que les trois seuls étages représen-
tés par la Figure 3. Il est important dans un tel pipeline qu'en cas de défaillance du dispositif qui lui envoie des données ou du dispositif qui en reçoit de lui, le pipeline
- 22 -
s'arrête de fonctionner. Le présent système ne comporte pas de mémoire tampon, telle qu'une mémoire "premier entré, premier sorti", entre étages. En conséquence, si l'un des étages du pipeline continue à fonctionner alors qu'un étage adjacent s'est arrêté, il y aura soit traitement de données erronées en cas d'arrêt d'étages en amont, soit perte de
données en cas d'arrêt d'étages en aval. Le mécanisme éven-
tuel servant à suspendre le fonctionnement du pipeline lorsqu'un dispositif d'entrée ou de sortie tombe en panne doit arrêter le fonctionnement du pipeline d'une manière ordonnée afin de préserver l'intégrité des données. Si le
pipeline de traitement d'images est relativement long, appli-
quer simplement un signal de commande à l'une des extrémités et le laisser se propager d'une manière indéfinie à travers les étages peut ne pas fournir la commande en bon ordre
voulue. Du fait du temps de propagation du signal de com-
mande d'arrêt, les étages situés loin de la source du signal sont susceptibles de continuer à traiter des données après que les étages antérieurs se sont arrêtés. A moins de prendre en compte ce temps de propagation, l'intégrité des
données risque d'être perdue.
Comme visible sur la Figure 1, la première mémoire 12 et la deuxième mémoire 15 respectivement situées du côté entrée et du côté sortie du pipeline de traitement d'image 14 sont
reliées par des lignes de gestion de flux de données dési-
gnées par ENTREE PRETE, ENTREE VALIDE, SORTIE PRETE et SOR-
TIE VALIDE. Ces lignes de commande à destination et en pro-
venance du pipeline 14 traversent en série les processeurs
morphologiques 21 à 23 comme illustré par la Figure 3.
Chacun des processeurs morphologiques comporte une entrée qui reçoit le signal d'entrée valide IVAL destiné à ce processeur, en provenance soit de la première mémoire 12, soit d'un processeur morphologique antécédent. Ce signal IVAL indique quand les données d'entrée sont valides et disponibles. Si le processeur morphologique 20 à 23 est à même de recevoir des données, un signal d'entrée prête IRDY est envoyé à sa source de données d'entrée. D'une façon
2636 152
- 23 -
similaire, chacun des processeurs morphologiques 21 à 23 émet un signal de sortie valide OVAL lorsqu'il a des données à envoyer à un dispositif en aval et reçoit un signal de dispositif de sortie prêt ORDY lorsque le dispositif en aval est à même de recevoir les données de sortie.
La Figure 7 représente un exemple d'un circuit 90 fai-
sant partie du circuit de commande de processeur 70 et ser-
vant à coupler ces signaux de gestion de flux de données entre les dispositifs en amont et en aval du processeur morphologique. Le signal d'entrée valide IVAL, indiquant que le dispositif situé en amont dans le flux de données d'image a des données à émettre, est appliqué à l'entrée de données d'une bascule de type D 91 et à d'autres dispositifs du circuit de commande de processeur 70. La sortie Q de la bascule 91 est couplée par une première porte ET 93 à la borne de signal OVAL du processeur morphologique. L'autre entrée de la première porte ET 93 est connectée à la ligne 94, qui reçoit un signal de niveau haut lorsque l'unité arithmétique et logique 66 a des données à émettre. Le signal de sortie valide OVAL ne sera actif que lorsque le signal d'entrée valide IVAL est actif et que le processeur
morphologique a des données à émettre.
D'une façon similaire, le signal de sortie prête ORDY
qui indique quand le dispositif suivant dans le flux de don-
nées est à même de recevoir des données d'image est couplé à l'entrée de données d'une autre bascule 92. La sortie Q de cette bascule 92 est connectée à une entrée d'une deuxième porte ET 95 dont une autre entrée est connectée à la ligne 96, à laquelle est appliqué un signal de niveau haut lorsque
le processeur morphologique est à même de recevoir des don-
nées. Les entrées de signal d'horloge CLOCK de ces bascules de commande 91 et 92 reçoivent le signal d'horloge à la fréquence des pixels. Comme on peut le voir en considérant la Figure 7, le signal d'entrée prête IRDY n'est actif que si à la fois le signal ORDY est actif et le processeur morphologique est dans un état o il peut recevoir des données.
- 24 -
C'est en considérant les schémas électriques des Figures
3 et 7 et les profils de signaux de commande pour le traite-
ment d'images à échelle de gris représentés par la Figure 8 que l'on comprendra le mieux le fonctionnement du circuit de commande de processeur 70 en ce qui concerne les signaux de gestion de flux de données entre processeurs. Au cycle d'horloge "a" de la Figure 8, le microordinateur 18 invite l'unité centrale 49 de chacun des processeurs morphologiques 21 à 23 à commencer à traiter une nouvelle image. En réponse à l'impulsion de signal BEGIN, chacun des processeurs morphologiques 21 à 23 établit un signal d'occupation BUSY actif de niveau bas au flanc ascendant, ou positif, suivant d'impulsion d'horloge. Le signal BEGIN fait alors passer les processeurs 21 à 23 dans une phase d'initialisation qui dure approximativement seize cycles d'horloge et pendant lequel les registres, bascules et portes de données des processeurs
sont placés dans leur état initial.
On va décrire en détail le fonctionnement du premier processeur morphologique 21, étant entendu que les autres
processeurs 22 et 23 fonctionnent de la même manière.
Pendant la phase d'initialisation du processeur, le circuit de commande de processeur 70 établit les signaux IRDY et OVAL de niveau bas qui indiquent aux dispositifs adjacents
qu'il n'est pas prêt à recevoir ou à émettre des données.
Au cycle d'horloge b o se termine la phase d'initia-
lisation, le circuit de commande de processeur 70 applique un niveau haut à la ligne 98 pour armer la bascule 92 afin de ne pas tenir compte du signal ORDY puisqu'il n'y a pas disponibilité de données de sortie. Au même moment, un niveau haut est appliqué par la ligne 96 à la porte ET 95, ce qui établit un signal d'entrée prête IRDY actif à niveau haut qui indique à la première mémoire 12 que le processeur morphologique 21 est à même de recevoir des données de pixels. Toutefois, la première mémoire 12 n'est pas prête à envoyer des données, comme l'indique le niveau bas du signal d'entrée valide IVAL. Ce signal IVAL de niveau bas a pour effet de faire émettre au circuit de commande de processeur
- 25 -
un signal de suspension à niveau bas actif HOLD. Lorsque la première mémoire a des données disponibles à l'impulsion d'horloge c, son signal d'entrée valide IVAL passe au niveau haut et le circuit de commande de processeur 70 répond par un signal de suspension HOLD de niveau haut inactif. La donnée correspondant au premier pixel (0,0) est donc reçue à l'entrée LA du processeur morphologique 21. A ce moment, comme le processeur morphologique 21 n'a pas de données à émettre, le signal de sortie valide présent à la borne OVAL est encore bas, et le signal de sortie prête ORDY en provenance du dispositif qui reçoit les données de sortie
continue à être sans effet.
Pour faciliter l'exposé, on supposera que l'image ne com-
porte que trois lignes de balayage, de cinq pixels chacune.
Au cycle d'horloge d, l'acquisition de données s'arrête pendant un cycle à la fin de la première ligne de balayage, ce qui permet de donner lieu à un changement du signal de parité et à d'autres événements de fin de ligne. Pendant ce
hiatus dans le traitement, le circuit de commande de proces-
seur 70 établit une impulsion IRDY de niveau bas, par un signal de niveau bas sur la ligne 96, ce qui arrête le flux
de données issu de la première mémoire 12.
Au cycle d'horloge e, la donnée afférente au premier pixel à échelle de gris a été transformée et s'est propagée à travers le processeur morphologique 21, en devenant disponible à sa sortie. Immédiatement avant ce cycle d'horloge, le circuit de commande de processeur 70 a émis un signal de niveau bas sur la ligne 98, en mettant la bascule 92 en état de réagir au signal de sortie prête ORDY issu du processeur suivant 22. De plus, le circuit de commande de
processeur 70 émet un signal de niveau bas sur la ligne 94.
Comme les deux entrées de la porte ET 93 sont à présent hautes, le signal de sortie valide OVAL passe au niveau haut et signale ainsi au processeur suivant 22 que des données sont à présent à sa disposition. A ce moment, ce processeur 22 est en train d'émettre un signal ORDY de niveau haut qui indique qu'il est dans un état lui permettant d'admettre les
- 26 -
données en provenance du premier processeur morphologique 21. Un cycle d'horloge plus tard, au cycle d'horloge f, la première mémoire 12 force le signal d'entrée valide IVAL à passer au niveau bas, ce qui indique qu'il n'y a actuelle- ment pas de données disponibles à sa sortie. En réponse au niveau bas du signal d'entrée valide, le circuit de commande de processeur 70 applique aussitôt un signal de suspension
HOLD actif au niveau bas qui a pour effet d'arrêter le trai-
tement des pixels au sein de chacune des sections du premier processeur morphologique 21 ainsi que de figer les registres à décalage d'entrée 24 et 25. Si l'on considère la Figure 7,
au flanc ascendant suivant d'une impulsion d'horloge, le si-
gnal IVAL de niveau bas est copié sous déclenchement par la bascule 91 pour faire apparaître un niveau bas à sa sortie Q. Cette sortie fournit un signal OVAL de niveau bas comme
représenté pendant le cycle d'horloge g de la Figure 8. Pendant le cycle d'horloge h, la première mémoire 12 est de nouveau prête
à envoyer des données au processeur morphologique 21, et elle établit un signal IVAL de niveau haut qui fait fournir au circuit de commande de processeur un signal HOLD de niveau haut en permettant au processeur
de reprendre une nouvelle fois son fonctionnement au début.
Lors du flanc ascendant du cycle d'horloge suivant (i), le signal IVAL est copié sous déclenchement par la bascule 91 pour fournir un signal OVAL de niveau haut permettant au
pixel suivant (0,2) d'être sorti par le processeur morpholo-
gique 21. En conséquence, chaque fois que les données d'en-
trée sont indisponibles, le signal HOLD passe au niveau bas pour suspendre le transit rythmique des données à travers le processeur, en évitant ainsi l'introduction de bits de
données non valides dans le flux de données.
Au cycle d'horloge j, la fin de la deuxième ligne de données d'entrée se trouve atteinte et, comme cela s'est produit au cycle d'horloge d, le flux de données d'entrée est suspendu pendant un cycle d'horloge par un signal IRDY de niveau bas. Cependant, comme il reste alors des données
- 27 -
disponibles pour être sorties, le signal OVAL est inaltéré et les données continuent à être délivrées au dispositif de sortie, qui est en l'occurrence le deuxième processeur morphologique 22. Au cycle d'horloge k, on arrive à la fin de la première ligne dans les données de sortie et un signal
OVAL de niveau bas est établi pendant une impulsion d'hor-
loge afin de reproduire le retard de un cycle qu'a subi le flux de données à la fin de la première ligne de données
d'entrée (c'est-à-dire au cycle d'horloge d).
La délivrance du premier pixel de la ligne suivante (pixel 1,0) débute au cycle d'horloge suivant. Au cycle d'horloge m, le signal ORDY issu du processeur morphologique suivant 22 dans le pipeline passe au niveau bas, ce qui indique que le processeur suivant n'est pas prêt à recevoir de nouvelles données. Lors de cet événement, la sortie de l'unité arithmétique et logique 66 est verrouillée afin d'envoyer de manière continue les données représentant le
pixel courant sur la sortie du deuxième processeur morpholo-
gique 22. Le signal ORDY de niveau bas est également appli-
qué à l'entrée de données de la bascule 92 de la Figure 7.
Au flanc ascendant de l'impulsion d'horloge n, la bascule 92 est déclenchée pour faire apparaître à sa sortie Q un signal de niveau bas qui fait passer le signal IRDY au niveau bas comme visible sur la Figure 8. A ce moment, le circuit de commande de processeur 70 établit aussi un signal HOLD de niveau bas pour suspendre le transit rythmique des données de pixels à travers le processeur morphologique 21. A ce moment, la progression des données à travers les composants du premier processeur morphologique 21 est également suspendue. Lorsque le signal ORDY repasse au niveau haut au début de l'impulsion d'horloge p, le pixel suivant (1,1) des données de sortie est appliqué aux bornes de sortie du processeur morphologique. Cependant, à ce moment, le signal HOLD est encore maintenu au niveau bas, et il n'est pas injecté de nouvelles données de pixels. A l'impulsion d'horloge suivante q, le signal ORDY de niveau haut est appliqué à la deuxième bascule 92, ce qui fait repasser le
- 28 -
signal IRDY au niveau haut en faisant disparaître le signal HOLD de niveau bas et en réactivant le transit de données
dans le processeur.
La fin des trois lignes de données de pixels a lieu au début de l'impulsion d'horloge r, qui a pour effet de faire passer le signal IRDY au niveau bas. A Ce moment, le processeur morphologique 21 devient insensible au niveau du signal IVAL sous l'effet de l'envoi par le circuit de commande de processeur 70 d'un niveau bas sur la ligne 97 pour armer la bascule 91. Les données de pixels transformées correspondant aux portions restantes de la deuxième ligne de balayage et à la totalité de la troisième sont ensuite délivrées jusqu'à l'impulsion d'horloge q, au moment o a lieu la fin de la troisième ligne de sortie et o toutes les données ont été traités. A ce moment, un signal d'occupation BUSY de niveau haut inactif est établi et le signal OVAL passe au niveau bas, ce qui indique qu'il n'y a plus de
données de sortie disponibles.
Comme on peut le voir d'après la description donnée ci-
dessus du fonctionnement en ce qui concerne les signaux de colloque IVAL, OVAL, ORDY et IRDY, le présent système fournit une modalité de propagation ordonnée des signaux de colloque dans le pipeline de traitement d'images 14. Plus précisément, le signal IVAL est appliqué à la sortie du processeur morphologique 21 un cycle d'horloge après son application à l'entrée. D'une façon similaire, dans le sens opposé, le signal ORDY en provenance de l'étage suivant du
pipeline est appliqué à la sortie IRDY du processeur morpho-
logique 21 un cycle d'horloge après sa réception. Grâce à l'établissement d'un retard fixe dans propagation des signaux de colloque et au réglage en conséquence des flux de données entrants et sortants, une gestion en bon ordre du pipeline de traitement d'images 14 se trouve réalisée. Cette gestion en bon ordre permet d'associer en cascade un nombre important de processeurs morphologiques 21, 22, 23, etc. et permet aux dispositifs se trouvant à l'entrée et à la sortie du pipeline d'arrêter le flux de données selon les besoins
sans introduction de bits de données erronés ni perte de don-
nées si un dispositif récepteur n'était pas prêt à recevoir
les données.
- 29 -
Claims (16)
1. Système de traitement d'images, caractérisé en ce qu'il comprend: une multiplicité d'étages de traitement (21, 22,- 23) interconnectés en cascade, chacun des étages étant adapté à opérer une transformation morphologique de données d'image fournies à une entrée de données (LA) de cet étage et à appliquer les résultats de la transformation à une sortie de données (OUT), chaque étage comportant:
un premier circuit de commande de flux de données com-
portant une première entrée (IVAL) pour la réception d'un premier signal indiquant la disponibilité de données d'image a l'entrée de données de l'étage, un moyen propre à retarder le premier signal d'un premier intervalle de temps donné et un moyen de couplage propre à appliquer le premier signal retardé à une première borne de sortie (OVAL);
un deuxième circuit de commande de flux de données com-
portant une deuxième borne d'entrée (ORDY) pour la réception
d'un deuxième signal indiquant la disponibilité d'un disposi-
tif connecté à la sortie de données à recevoir les données d'image transformées fournies par cet étage, un moyen propre à retarder le deuxième signal d'un deuxième intervalle de temps donné et un moyen de couplage propre à appliquer le deuxième signal retardé à une deuxième borne de sortie
(IRDY);
un moyen réagissant à la présence de l'un au moins des premier et deuxième signaux pour suspendre la transformation morphologique des données d'image; et chaque étage, à l'exception du dernier de la cascade, *30 comportant des moyens de couplage de la première borne de sortie à la première borne d'entrée de l'étage suivant de la cascade et de couplage de la deuxième borne de sortie à la
deuxième borne d'entrée de l'étage suivant de la cascade.
2. Système de traitement d'images selon la revendication 1, caractérisé en ce qu'il comprend en outre des moyens de couplage des première et deuxième bornes de sortie (OVAL,
- 30 -
ORDY) du dernier étage (23) de la cascade au dispositif (15)
connecté à la sortie de données de ce dernier étage.
3. Système de traitement d'images selon la revendication 1, caractérisé en ce qu'il comprend en outre des moyens de couplage des première et deuxième bornes d'entrée (IVAL, IRDY) du premier étage [21) de la cascade au dispositif (12)
connecté à l'entrée de données de ce premier étage.
4. Système de traitement d'images selon la revendication 1, caractérisé en ce que ledit moyen réagissant à la présence de l'un au moins des premier et deuxième signaux suspend l'exécution de la transformation morphologique
sensiblement aussitôt qu'est reçu le premier signal.
5. Système de traitement d'images selon la revendication 1, caractérisé en ce que ledit moyen réagissant à la présence de l'un au moins des premier et deuxième signaux suspend l'exécution de la transformation morphologique après
un intervalle de temps sensiblement égal au deuxième inter-
valle de temps donné, compté à partir de la réception du
deuxième signal.
6. Système de traitement d'images selon la revendication 1, caractérisé en ce que les résultats de la transformation morphologique appliqués à la sortie de données de l'étage sont verrouillés lors de la suspension de la transformation morphologique ayant lieu en réponse à la réception du
deuxième signal.
7. Système de traitement d'images selon la revendication
1, caractérisé en ce qu'il comprend en outre un moyen d'iden-
tification (60-65; 73) de l'idempotence de la transformation
morphologique opérée par chaque étage.
8. Système de traitement d'images selon la revendication 1, caractérisé en ce que chaque étage (21, 22, 23) comprend une multiplicité de sections (30,60; 31,61;... 35,65) dont chacune traite un bit de données de chaque pixel d'un groupe prédéfini de pixels (Fig. 2); des moyens (56) permettant de connecter la multiplicité de sections en parallèle pour
- 31 -
traiter une multiplicité de bits numériques représentant des données d'image à échelle de gris pour chaque pixel, ou bien
de connecter la multiplicité de sections en série pour exécu-
ter une multiplicité de transformations morphologiques sur chaque bit de pixel d'une image binaire; et un moyen d'iden- tification (60-65, 73) de l'idempotence de la transformation
morphologique opérée par l'étage.
9. Système de traitement d'images selon la revendication 8, caractérisé en ce que le moyen de chaque étage pour l'identification de l'idempotence d'une transformation morphologique opérée par l'étage comprend en outre un moyen
d'identification (60-65) de l'idempotence d'une transforma-
tion morphologique opérée par chaque section.
10. Système de traitement d'images, caractérisé en ce qu'il comprend: une multiplicité d'étages de traitement (21, 22, 23) interconnectés en cascade, chacun des étages traitant des données d'image fournies à une entrée de données (LA) de cet étage et appliquant les résultats du traitement à une sortie de données (OUT), chaque étage comportant: un premier circuit de commande de flux de données comportant une première entrée (IVAL) pour la réception d'un premier signal indiquant la disponibilité de données d'image à l'entrée de données de l'étage, un moyen propre à retarder le premier signal d'un premier intervalle de temps donné et un moyen de couplage propre à appliquer le premier signal retardé à une première sortie (OVAL); un deuxième circuit de commande de flux de données comportant une deuxième entrée (ORDY) pour la réception d'un deuxième signal indiquant la disponibilité d'un dispositif connecté à la sortie de données à recevoir les données d'image traitées fournies par cet étage, un moyen propre à retarder le deuxième signal d'un deuxième intervalle de temps donné et un moyen de couplage propre à appliquer le deuxième signal retardé à une deuxième sortie (IRDY); un moyen réagissant à la présence de l'un au moins des premier et deuxième signaux pour gérer le traitement des
- 32 -
données d'image; et chaque étage, à l'exception du dernier de la cascade, comportant en outre des moyens de couplage de la première sortie à la première entrée de l'étage suivant de la cascade et de couplage de la deuxième sortie à la deuxième entrée de
l'étage suivant de la cascade.
11. Système de traitement d'images selon la revendica-
tion 10, caractérisé en ce qu'il comprend en outre des moyens de couplage des première et deuxième sorties (OVAL, ORDY) du dernier étage (23) de la cascade au dispositif (15)
connecté à la sortie de données de ce dernier étage.
12. Système de traitement d'images selon la revendica-
tion 10, caractérisé en ce qu'il comprend en outre des moyens de couplage des première et deuxième entrées (IVAL, IRDY) du premier étage (21) de la cascade au dispositif (12)
connecté à l'entrée de données (LA) de ce premier étage.
13. Système de traitement d'images selon la revendica-
tion 10, caractérisé en ce que ledit moyen réagissant à la présence de l'un au moins des premier et deuxième signaux suspend le traitement sensiblement aussitôt qu'est reçu le
premier signal.
14. Système de traitement d'images selon la revendica-
tion 10, caractérisé en ce que ledit moyen réagissant à la présence de l'un au moins des premier et deuxième signaux
suspend le traitement après un intervalle de temps sensible-
ment égal au deuxième intervalle de temps donné, compté à
partir de la réception du deuxième signal.
15. Système de traitement d'images selon la revendica-
tion 10, caractérisé en ce que les résultats du traitement appliqués à la sortie de données de l'étage sont verrouillés lors de la suspension de traitement ayant lieu en réponse à
la réception du deuxième signal.
16. Système pour le traitement d'une image formée par une série d'éléments d'image (Fig. 2), ledit système étant
caractérisé en ce qu'il comprend une multiplicité de sec-
- 33 -
tions de traitement (30,60; 31,61;... 35,65) interconnec-
tées en cascade, chaque section comportant des moyens propres à exécuter séquentiellement une transformation morphologique de chacun des représentants d'une série d'éléments d'image, des moyens de comparaison (60-65) de chaque élément d'image avant et après la transformation, et des moyens (49, 60-65) propres à indiquer quand tous les éléments de la multiplicité d'éléments d'image sont les
mêmes avant et après la transformation.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/240,523 US5046190A (en) | 1988-09-06 | 1988-09-06 | Pipeline image processor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR2636152A1 true FR2636152A1 (fr) | 1990-03-09 |
| FR2636152B1 FR2636152B1 (fr) | 1995-05-05 |
Family
ID=22906880
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR8911660A Expired - Fee Related FR2636152B1 (fr) | 1988-09-06 | 1989-09-06 | Processeur d'images en pipeline |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5046190A (fr) |
| FR (1) | FR2636152B1 (fr) |
Families Citing this family (51)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6067379A (en) * | 1988-12-09 | 2000-05-23 | Cognex Corporation | Method and apparatus for locating patterns in an optical image |
| NL8901825A (nl) * | 1989-07-14 | 1991-02-01 | Philips Nv | Pijplijnsysteem met multi-resolutie dataverwerking op echte-tijd-basis. |
| US5430862A (en) * | 1990-06-29 | 1995-07-04 | Bull Hn Information Systems Inc. | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution |
| DE4227733A1 (de) * | 1991-08-30 | 1993-03-04 | Allen Bradley Co | Konfigurierbarer cachespeicher und datenverarbeitungssystem mit einem derartigen speicher |
| US5657403A (en) * | 1992-06-01 | 1997-08-12 | Cognex Corporation | Vision coprocessing |
| DE69229338T2 (de) * | 1992-06-30 | 1999-12-16 | Discovision Associates, Irvine | Datenpipelinesystem |
| US5402049A (en) * | 1992-12-18 | 1995-03-28 | Georgia Tech Research Corporation | System and method for controlling a variable reluctance spherical motor |
| US5410232A (en) * | 1992-12-18 | 1995-04-25 | Georgia Tech Research Corporation | Spherical motor and method |
| US5434629A (en) * | 1993-12-20 | 1995-07-18 | Focus Automation Systems Inc. | Real-time line scan processor |
| US5583954A (en) * | 1994-03-01 | 1996-12-10 | Cognex Corporation | Methods and apparatus for fast correlation |
| US5642444A (en) * | 1994-07-28 | 1997-06-24 | Univ North Carolina | Specialized image processing system architecture and method for image data arrays |
| JP3924796B2 (ja) * | 1995-04-25 | 2007-06-06 | 株式会社デンソー | パターン位置の計測方法および計測装置 |
| US6026176A (en) * | 1995-07-25 | 2000-02-15 | Cognex Corporation | Machine vision methods and articles of manufacture for ball grid array inspection |
| US5872870A (en) * | 1996-02-16 | 1999-02-16 | Cognex Corporation | Machine vision methods for identifying extrema of objects in rotated reference frames |
| US5909504A (en) * | 1996-03-15 | 1999-06-01 | Cognex Corporation | Method of testing a machine vision inspection system |
| US6259827B1 (en) | 1996-03-21 | 2001-07-10 | Cognex Corporation | Machine vision methods for enhancing the contrast between an object and its background using multiple on-axis images |
| US6298149B1 (en) | 1996-03-21 | 2001-10-02 | Cognex Corporation | Semiconductor device image inspection with contrast enhancement |
| US5978502A (en) * | 1996-04-01 | 1999-11-02 | Cognex Corporation | Machine vision methods for determining characteristics of three-dimensional objects |
| US6137893A (en) * | 1996-10-07 | 2000-10-24 | Cognex Corporation | Machine vision calibration targets and methods of determining their location and orientation in an image |
| US5960125A (en) * | 1996-11-21 | 1999-09-28 | Cognex Corporation | Nonfeedback-based machine vision method for determining a calibration relationship between a camera and a moveable object |
| US5953130A (en) * | 1997-01-06 | 1999-09-14 | Cognex Corporation | Machine vision methods and apparatus for machine vision illumination of an object |
| US6075881A (en) * | 1997-03-18 | 2000-06-13 | Cognex Corporation | Machine vision methods for identifying collinear sets of points from an image |
| US5974169A (en) * | 1997-03-20 | 1999-10-26 | Cognex Corporation | Machine vision methods for determining characteristics of an object using boundary points and bounding regions |
| US6141033A (en) * | 1997-05-15 | 2000-10-31 | Cognex Corporation | Bandwidth reduction of multichannel images for machine vision |
| US6608647B1 (en) | 1997-06-24 | 2003-08-19 | Cognex Corporation | Methods and apparatus for charge coupled device image acquisition with independent integration and readout |
| US5978080A (en) * | 1997-09-25 | 1999-11-02 | Cognex Corporation | Machine vision methods using feedback to determine an orientation, pixel width and pixel height of a field of view |
| US6025854A (en) * | 1997-12-31 | 2000-02-15 | Cognex Corporation | Method and apparatus for high speed image acquisition |
| US6236769B1 (en) | 1998-01-28 | 2001-05-22 | Cognex Corporation | Machine vision systems and methods for morphological transformation of an image with zero or other uniform offsets |
| US6282328B1 (en) | 1998-01-28 | 2001-08-28 | Cognex Corporation | Machine vision systems and methods for morphological transformation of an image with non-uniform offsets |
| US6215915B1 (en) | 1998-02-20 | 2001-04-10 | Cognex Corporation | Image processing methods and apparatus for separable, general affine transformation of an image |
| US6381375B1 (en) | 1998-02-20 | 2002-04-30 | Cognex Corporation | Methods and apparatus for generating a projection of an image |
| US6163819A (en) | 1998-07-21 | 2000-12-19 | Micron Technology, Inc. | Sequential data transfer circuit |
| US6088812A (en) * | 1998-07-21 | 2000-07-11 | Micron Technology, Inc. | Sequential data transfer method |
| US6304125B1 (en) * | 1998-09-04 | 2001-10-16 | Sun Microsystems, Inc. | Method for generating and distribution of polyphase clock signals |
| US6381366B1 (en) | 1998-12-18 | 2002-04-30 | Cognex Corporation | Machine vision methods and system for boundary point-based comparison of patterns and images |
| US6687402B1 (en) | 1998-12-18 | 2004-02-03 | Cognex Corporation | Machine vision methods and systems for boundary feature comparison of patterns and images |
| US6684402B1 (en) | 1999-12-01 | 2004-01-27 | Cognex Technology And Investment Corporation | Control methods and apparatus for coupling multiple image acquisition devices to a digital data processor |
| US6748104B1 (en) | 2000-03-24 | 2004-06-08 | Cognex Corporation | Methods and apparatus for machine vision inspection using single and multiple templates or patterns |
| JP2001333303A (ja) * | 2000-05-23 | 2001-11-30 | Sharp Corp | 全方位視覚システム |
| US6400849B1 (en) * | 2000-10-20 | 2002-06-04 | Shih-Jong J. Lee | Image processing system with enhanced processing and memory management |
| US6504959B1 (en) * | 2000-10-20 | 2003-01-07 | Shih-Jong J. Lee | Image processing apparatus using a cascade of poly-point operations |
| US6404934B1 (en) * | 2000-10-20 | 2002-06-11 | Shih-Jong J. Lee | High speed image processing apparatus using a cascade of elongated filters programmed in a computer |
| US7006669B1 (en) | 2000-12-31 | 2006-02-28 | Cognex Corporation | Machine vision method and apparatus for thresholding images of non-uniform materials |
| US6992707B2 (en) * | 2002-03-06 | 2006-01-31 | Hewlett-Packard Development Company, L.P. | Delayed encoding based joint video and still image pipeline with still burst mode |
| US6801055B1 (en) * | 2002-10-25 | 2004-10-05 | Ecole De Technologie Superieure | Data driven clocking |
| US20040114047A1 (en) * | 2002-12-13 | 2004-06-17 | Vora Poorvi L. | Method for transforming an offset sensor array |
| JP3870905B2 (ja) * | 2003-01-22 | 2007-01-24 | セイコーエプソン株式会社 | 画像処理装置及びその処理方法 |
| US7639861B2 (en) | 2005-09-14 | 2009-12-29 | Cognex Technology And Investment Corporation | Method and apparatus for backlighting a wafer during alignment |
| US8111904B2 (en) | 2005-10-07 | 2012-02-07 | Cognex Technology And Investment Corp. | Methods and apparatus for practical 3D vision system |
| US8162584B2 (en) | 2006-08-23 | 2012-04-24 | Cognex Corporation | Method and apparatus for semiconductor wafer alignment |
| US8073281B2 (en) * | 2008-12-22 | 2011-12-06 | Canon Kabushiki Kaisha | Generating a dilation image utilizing parallel pixel processing |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4369430A (en) * | 1980-05-19 | 1983-01-18 | Environmental Research Institute Of Michigan | Image analyzer with cyclical neighborhood processing pipeline |
| EP0210434A2 (fr) * | 1985-07-26 | 1987-02-04 | International Business Machines Corporation | Système de traitement d'image modifiable parallèle en pipeline |
| EP0236762A1 (fr) * | 1986-03-08 | 1987-09-16 | Hitachi, Ltd. | Système à multiprocesseur |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2092711A1 (fr) * | 1970-06-10 | 1972-01-28 | Armines | |
| US3706071A (en) * | 1970-06-22 | 1972-12-12 | Information Int Inc | Binary image processor |
| US4060713A (en) * | 1971-06-23 | 1977-11-29 | The Perkin-Elmer Corporation | Analysis of images |
| FR2317645A1 (fr) * | 1975-07-11 | 1977-02-04 | Armines | Appareil destine a analyser au moins un milieu heterogene bi ou tridimensionnel |
| US4003024A (en) * | 1975-10-14 | 1977-01-11 | Rockwell International Corporation | Two-dimensional binary data enhancement system |
| US4083035A (en) * | 1976-09-10 | 1978-04-04 | Rockwell International Corporation | Binary image minutiae detector |
| US4174514A (en) * | 1976-11-15 | 1979-11-13 | Environmental Research Institute Of Michigan | Parallel partitioned serial neighborhood processors |
| US4167728A (en) * | 1976-11-15 | 1979-09-11 | Environmental Research Institute Of Michigan | Automatic image processor |
| US4322716A (en) * | 1976-11-15 | 1982-03-30 | Environmental Research Institute Of Michigan | Method and apparatus for pattern recognition and detection |
| US4192004A (en) * | 1977-09-08 | 1980-03-04 | Buerger Walter R | Topological transformation system |
| US4330833A (en) * | 1978-05-26 | 1982-05-18 | Vicom Systems, Inc. | Method and apparatus for improved digital image processing |
| US4215401A (en) * | 1978-09-28 | 1980-07-29 | Environmental Research Institute Of Michigan | Cellular digital array processor |
| US4293920A (en) * | 1979-09-04 | 1981-10-06 | Merola Pasquale A | Two-dimensional transform processor |
| US4301443A (en) * | 1979-09-10 | 1981-11-17 | Environmental Research Institute Of Michigan | Bit enable circuitry for an image analyzer system |
| US4290049A (en) * | 1979-09-10 | 1981-09-15 | Environmental Research Institute Of Michigan | Dynamic data correction generator for an image analyzer system |
| US4298858A (en) * | 1980-03-27 | 1981-11-03 | The United States Of America As Represented By The Secretary Of The Air Force | Method and apparatus for augmenting binary patterns |
| US4395697A (en) * | 1980-08-15 | 1983-07-26 | Environmental Research Institute Of Michigan | Off-image detection circuit for an image analyzer |
| US4395698A (en) * | 1980-08-15 | 1983-07-26 | Environmental Research Institute Of Michigan | Neighborhood transformation logic circuitry for an image analyzer system |
| US4398176A (en) * | 1980-08-15 | 1983-08-09 | Environmental Research Institute Of Michigan | Image analyzer with common data/instruction bus |
| US4363104A (en) * | 1980-09-22 | 1982-12-07 | Hughes Aircraft Company | Imaging system having multiple image copying and hierarchical busing |
| JPS57178486A (en) * | 1981-04-25 | 1982-11-02 | Nippon Kogaku Kk <Nikon> | Smoothing device for binary image signal |
| US4423414A (en) * | 1981-08-27 | 1983-12-27 | Burroughs Corporation | System and method for name-lookup in a local area network data communication system |
| US4484349A (en) * | 1982-03-11 | 1984-11-20 | Environmental Research Institute Of Michigan | Parallel pipeline image processor |
| US4665554A (en) * | 1983-07-13 | 1987-05-12 | Machine Vision International Corporation | Apparatus and method for implementing dilation and erosion transformations in digital image processing |
| US4665551A (en) * | 1983-12-08 | 1987-05-12 | Machine Vision International Corporation | Apparatus and method for implementing transformations in digital image processing |
| US4685144A (en) * | 1984-10-29 | 1987-08-04 | Environmental Research Institute Of Michigan | Image processing system with transformation detection |
-
1988
- 1988-09-06 US US07/240,523 patent/US5046190A/en not_active Expired - Lifetime
-
1989
- 1989-09-06 FR FR8911660A patent/FR2636152B1/fr not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4369430A (en) * | 1980-05-19 | 1983-01-18 | Environmental Research Institute Of Michigan | Image analyzer with cyclical neighborhood processing pipeline |
| EP0210434A2 (fr) * | 1985-07-26 | 1987-02-04 | International Business Machines Corporation | Système de traitement d'image modifiable parallèle en pipeline |
| EP0236762A1 (fr) * | 1986-03-08 | 1987-09-16 | Hitachi, Ltd. | Système à multiprocesseur |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2636152B1 (fr) | 1995-05-05 |
| US5046190A (en) | 1991-09-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR2636152A1 (fr) | Processeur d'images en pipeline | |
| FR2622989A1 (fr) | Machine multiprocesseur reconfigurable pour traitement du signal | |
| US4949390A (en) | Interconnect verification using serial neighborhood processors | |
| EP0558125B1 (fr) | Processeur neuronal à cellules synaptiques reparties | |
| BE897586A (fr) | Circuit parallele de controle de redondance cyclique | |
| FR2561011A1 (fr) | Processeur de calcul d'une transformee discrete inverse du cosinus | |
| EP2332067A1 (fr) | Dispositif de traitement en parallele d'un flux de donnees | |
| FR2686175A1 (fr) | Systeme de traitement de donnees multiprocesseur. | |
| CH629319A5 (fr) | Installation de traitement de donnees. | |
| FR2587521A1 (fr) | Appareil de traitement de signaux destine a effectuer des operations a resolutions multiples en temps reel | |
| FR2561010A1 (fr) | Processeur de calcul d'une transformee discrete du cosinus | |
| JP3995868B2 (ja) | 誤差拡散演算装置 | |
| FR2519221A1 (fr) | Dispositif destine a mettre sous forme numerique des images et procede associe | |
| FR2522423A1 (fr) | Unite de traitement de donnees | |
| EP0317413B1 (fr) | Dispositif de traitement de données relatives à des éléments d'image | |
| EP0547881B1 (fr) | Méthode et appareil de mise en oeuvre de filtres digitaux à deux dimensions | |
| JPH11328848A (ja) | データ伝送方式 | |
| EP0344052B1 (fr) | Mémoire modulaire | |
| EP1772808B1 (fr) | Dispositif et procédé de lecture d'informations dans un ensemble de composants électroniques reliés à un bus de communication, appliqué à la lecture d'une matrice de pixels | |
| EP0782330A1 (fr) | Dispositif d'estimation de mouvement par appariement de blocs | |
| EP0680015B1 (fr) | Dispositif d'alimentation en pixels d'une série d'opérateurs d'un circuit de compression d'images mobiles | |
| FR2619462A1 (fr) | Systeme de traitement numerique a bus multi-donnees | |
| EP0640910B1 (fr) | Procédé de commande d'un circuit du type premier entré - premier sorti et dispositif pour sa mise en oeuvre | |
| EP0356463A1 (fr) | Verification d'interconnexions au moyen de processeurs seriels d'environs | |
| EP2221727A1 (fr) | Système et procédé de traîtement de données numériques |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ST | Notification of lapse |