FR 2588142 A1 19870403 FR 8613488 A 19860926 1. La présente invention concerne un système permettant le traitement de données d'image par convolution à grande vi- tesse pour toute application scientifique, industrielle, médi- cale, spatiale ou militaire. Pour de telles applications, on connaît deux techniques pour transformer en images des données provenant de capteurs extérieurs (en particulier, des dispo- sitifs de vision, mais également des capteurs acoustiques, etc.): dans l'une d'elles la donnée "diffusée" est transfor- mée en images classiques et dans l'autre dans lequel la donnée entrante est déjà sous forme d'une image du monde extérieur, et le traitement consiste à extraire et analyser les données que contient l'image elle-même. Dans les deux cas, la majeure partie de la technolo- gie de conversion d'image qui est appliquée est basée sur des algorithmes de convolution qui, en dépit de leurs propriétés mathématiques extrêmement utiles, introduisent des temps de traitement tellement longs que leur application sur des ordi- nateurs standard n'est pas pratique. Dans l'industrie en particulier, par exemple, les systèmes de vision par robot requièrent un potentiel de 2. traitement des images extrêmement élevé, plus particulière- ment au premier stade, afin de filtrer des fréquences spatia- les et améliorer le contraste, ou afin de détecter les carac- téristiques d'image nécessaires pour un traitement ultérieur de niveau plus élevé. La donnée de départ, qui est générale- ment fournie par une rétine électronique contenant un nombre de transducteurs pouvant atteindre 200 000 ou plus, est ba- layée à des fréquences de l'ordre des MHz et doit être traitée séparément. O10 De tous les procédés à base d'algorithme, ceux qui sont de loin les plus utilisés sont les techniques numéri- ques qui requièrent évidemment une conversion d'image discrè- te. L'image elle-même peut être définie comme une suite en deux dimensions de termes concernant la valeur de la brillan- ce, et peut être considérée comme obtenue en divisant une photographie (un carré pour simplifier) en une mosaïque de N.N carrés (éléments d'image) de dimensions égales, avec un niveau de gris affecté à chacun. Dans le domaine dans lequel s'applique le système de la présente invention, le filtrage a une importance majeure, en particulier pour "l'extraction des bords", qui est une fonction essentielle, en particulier dans les systèmes de trai- tement devant faire une distinction entre des objets et un arrière-plan donné, puis les identifier. De fait, une image discrète fournit toute l'informa- tion acquise à l'extérieur par un "système de vision artifi- cielle", information qui, cependant, ne peut être mise en uti- lisation pratique que si elle est convertie sous forme plus efficace qu'une simple suite de niveaux différents de brillan- ce d'éléments d'image. "L'extraction des bords", par exemple, est un procédé de conversion d'image qui préserve la majeure partie de la donnée d'image structurelle, facilitant ainsi le traitement ultérieur. Une sortie du processus "d'extraction de bord" com- prend un groupe de lignes situé à des points de la variation 3. de brillance de l'image. L'effet produit par de telles lignes réside dans le fait qu'elles sont étroitement liées aux pro- priétés des objets examinés, en ce sens que,évidemment, les variations de brillance se produisent souvent sur les bords des objets. Une convolution n'est qu'une opération "d'extrac- tion de bord", les opérations ultérieures du procédé dépendant du type de la suite employée. Ce qui suit est un bref résumé de ce qu'on sait déjà du procédé de convolution. Si X est une suite représentant une image et x(l, m) le terme générique de la même suite, o les variables 1 et m (nombres entiers entre 0 et N-l) indiquent l'emplacement (li- gne ou colonne) du terme en question, la suite peut évidemment être considérée comme une matrice de N lignes et N colonnes, dont les éléments sont situés en fonction des éléments d'ima- ge relatifs dont ils sont tirés. Dans le cas d'une convolution, une séquence de départ X produit une nouvelle séquence Y, dont chaque terme est une somme pondérée de termes dans la séquence de départ située autour du terme ayant le même emplacement. Par conséquent, le traitement par convolution dépend de la séquence pondérée, K, employée, une opération de convolution est indiquée par: Y = K*X. Le terme générique dans la séquence Y résultant est: y(l,m) = Z k(s,t) x(l-s,m-t) st Le traitement de convolution est généralement inter- prété comme un filtrage de fréquences spatiales. Pour obtenir des résultats fiables, même en présen- ce de bruit, les matrices de filtrage pour "l'extraction des bords" doivent avoir dans la majorité des cas des dimen- sions relativement importantes. Cependant, l'augmentation de la taille de la séquence K accroît évidemment le nombre des opérations de traitement impliquées. Le calcul de chaque 4. terme dans une séquence résultant d'une convolution de sé- quence à deux dimensions (ayant les caractéristiques usuel- les) implique: a) la connaissance de nR. nc termes dans la séquen- ce pour traitement; b) la multiplication de chaque terme par un "poids" approprié (le nombre de produits étant ainsi égal à nR.nc); c) l'addition des produits résultants (quand on addi- tionne des paires de nombres, le nombre d'addi- tions est égal à (nombre de produits à ajouter) - 1 = (nR. nc) - l nR À nc). A des fins d'application, le travail de traitement doit être simplifié autant que possible, c'est-à-dire en réduisant le nombre des opérations nécessaires pour chaque résultat. Lorsque le traitement d'une séquence K peut être séparé, l'ensemble du procédé est beaucoup plus simplifié. La séparabilité concernant K signifie: k(s,t) = f(s).g(t) expression dans laquelle f(s) et g(t) sont les termes de deux suites à une dimension de nR et nc termes, respective- ment. Si la séparabilité existe: y(l,m) = E f(s).g(t).x(l-s,m-t) st = E f(s). E g(t).x(l-s,m-t) s s = E f(s).w(l-s,m) s expressions dans lesquelles: w(l,m) = E g(t).x(l,m-t) t Le calcul peut ainsi être divisé en deux convolu- tions consécutives, impliquant une suite de traitement à deux dimensions et une suite à une dimension. W est une suite en deux dimensions de valeurs 5. intermédiaires provenant de X au moyen d'une première con- volution de ligne à une dimension (appelée ainsi car le calcul de w(l, m) implique seulement x(l, m-i) valeurs si- tuées sur la même ligne). En commençant à partir desdites valeurs intermédiaires, la suite finale Y s'obtient au moyen d'une seconde convolution à une dimension, cette fois une convolution de colonne (appelée ainsi car elle impli- que seulement des valeurs de la même colonne). Une convolution de ligne (colonne) à une dimension peut être considérée comme un cas spécial de convolution avec une suite de traitement en deux dimensions avec nR =1 (nc = 1). L'extension suivante peut par conséquent être faite: g(j) gR(Oj) f(i) fc(i,O) (R ou C indique que des suites en deux dimensions ne peu- vent avoir que des termes autres que zéro suivant une li- gne ou une colonne). La condition de séparabilité déjà mentionnée devient un cas spécial de: K = F * GR Par conséquent, pour le calcul complet, on peut em- ployer l'équation suivante: Y = F *(GR*X) = F *W avec W = GR*X c R Fc R La première convolution à une dimension, grâce à laquelle on calcule W à partir de la suite de départ X, né- cessite l.nc opérations par terme (l'expression "opération" signifie généralement l'acquisition d'une valeur de la suite à traiter, sa multiplication par un terme approprié dans la suite de traitement et l'addition du produit). La seconde convolution, grâce à laquelle la suite Y est obtenue à par- tir de la suite W, nécessite nR. 1 opérations par terme. Cela signifie que la suite finale est calculée avec un total de nR + nc opérations par terme, soit une réduc- tion considérable par rapport à un traitement direct, lequel 6. nécessiterait nR.n opérations. Plus les valeurs de n et n R'c R c sont élevées, plus grande sera la réduction. De plus, l'exécution réelle des calculs est simpli- fiée en remplaçant une convolution à deux dimensions par deux convolutions séparées à une dimension, chacune ayant seule- ment nR ou n termes. R c L'ampleur des travaux de traitement impliqués est un problème commun dans le cas d'un traitement numérique di- rect de termes d'une suite d'images discrètes à cause du nom- bre élevé des termes impliqués. Par exemple, dans le cas d'une image ayant 512.512 éléments d'image, et une suite de traitement séparable à deux dimensions de 32.32 termes, le nombre d'opérations à exécuter sera supérieur à 3.107 dont la moitié est constituée de multiplications. Pendant les tout premiers stades du traitement, l'ima- ge d'origine doit très souvent être traitée en utilisant un équipement de convolution de dimensions et/ou fonctions dif- férentes, de manière à faire ressortir des caractéristiques présentant un intérêt particulier. En employant de tels algo- rithm-es sur un ordinateur standard, le temps de traitement peul facilement atteindre de quelques dizaines de secondes à quel- ques minutes selon la complexité de l'opération de traitement. Cela est évidemment inacceptable, même pour les stades de simu- lation par algorithme, et même encore plus dans des conditions réelles de traitement, qui nécessitent généralement des temps de traitement très rapides se mesurant-en millisecondes par image vidéo acquise. Pour combiner la précision de conversion de l'image et le traitement à haute vitesse, les masques à deux dimen- sions sont par conséquent limités dans l'industrie à ceux qu'on peut séparer sans limitation pratique notable. Une convolution à deux dimensions est par conséquent calculée en multipliant deux convolutions consécutives à une dimen- sion dans deux directions d'image perpendiculaires. L'efficacité d'une machine spécialisée pour le 7. traitement par convolution, qu'on peut employer sur un ordina- teur de la même manière qu'une unité périphérique standard, est par conséquent évidente. Sur une machine spécialiséée, de fait, une structure appropriée peut être choisie pour réduire sensiblement le temps total de traitement. L'objet de la présente invention est de fournir un système permettant un traitement par convolution à une ou deux dimensions avec des variables séparables, système qui four- nit un traitement à haute vitesse, a comme caractéristique une réalisation modulaire souple, et permettant son adaptation à diverses conditions d'application, et qui convient à une application à intégration à très grande échelle. Selon la présente invention, on prévoit un système permettant un traitement de données d'image par convolution à haute vitesse,caractérisé en ce qu'il comprend au moins une unité arithmétique comportant un certain nombre de cellu- les de traitement interconnectées, avec au moins des entrées partiellement communes, et conçue pour exécuter des convolu- tions à une ou deux dimensions avec des variables séparables, et des moyens de mémoire destinés à mémoriser au moins la donnée devant être soumise à un tel traitement de convolu- tion. La présente invention sera bien comprise lors de la description suivante faite en liaison avec les dessins ci- joints dans lesquels: La figure 1 est un schéma sous forme de blocs d'un premier mode de réalisation du système selon la présente invention; La figure 2 est un schéma détaillé sous forme de blocs d'un premier mode de réalisation d'une unité arithmé- tique du schéma de la figure 1; La figure 2a est un graphique de temps d'un certain nombre de signaux du schéma de la figure 2; La figure 3 est un schéma détaillé sous forme de blocs d'unsecond mode de réalisation de l'unité arithmétique 8. du schéma de la figure 1; La figure 4 est un schéma d'ensemble sous forme de blocs de l'unité arithmétique du schéma de la figure 1; La figure 5 représente un certain nombre de mots de commande opératoires fournis au système selon la présente invention; La figure 6 est un schéma détaillé sous forme de blocs d'un mode de réalisation du moyen de mémoire dans le schéma de la figure 1. Comme représenté en figure 1, le système selon la présente invention, pour la convolution de suites numériques, est enfermé à l'intérieur d'un bloc 1 (représenté par une li- gne en tirets et désigné par l'expression "le bloc de convolu- tion") et comprend une unité arithmétique 2, un bloc de mé- moire 3, et un bloc 4 d'interface et de commande d'étage de traitement qui "dirige le fonctionnement du bloc 1 qui est totalement synchrone" et est rythmé par une horloge de 8 MHz. L'unité 2 et les blocs 3 et 4 sont connectés par des données dans les deux directions par une ligne locale 5, l'unité 2 étant également connectée dans une direction-à la ligne 5 au moyen d'un bloc 6 pour donner une approximation des résultats finaux et dont le fonctionnement sera décrit ultérieurement avec davantage de détail. Le bloc d'interface 4 est connec- té en deux directions à un bloc 36 de commande de programme, lequel est à son tour connecté en deux directions à une li- gne 7 à laquelle est connecté un ordinateur principal 8, par exemple un ordinateur dit VAX 11/780 fabriqué par la socié- té dite Digital Equipment Corporation. A cette ligne 7 est également connecté un bloc 9 de capteur extérieur d'image, par exemple une caméra de télévision. Le fonctionnement du bloc de convolution 1 consiste à exécuter les instructions codées fournies dans chaque cas individuel par l'ordinateur 8. En d'autres termes, aucune procédure fixe n'existe, le fonctionnement du bloc pouvant 9. être choisi selon nécessité par l'opérateur. Une procédure typique, pour le traitement d'une convo- lution à une dimension, comprend les stades suivants: 1) Transfert de la suite pour traitement (donnée originale d'image) de l'ordinateur 8 au bloc 1 (mémoire 3). 2) Transfert de la suite de traitement et des paramètres de l'ordinateur 8 au bloc 1 (mémoire de l'unité locale 2). 3) Traitement via l'unité arithmétique 2, par extraction des données du bloc de mémoire 3, approximation des résultats à 8 bits, et rechargement du bloc de mémoire 3. 4) Transfert de la suite résultante (image résultante) du bloc 1 à l'ordinateur 8. Des convolutions à une dimension peuvent être répé- tées (pour des convolutions à deux dimensions) en répétant les stades 2) et 3). Les stades 3) et 4) peuvent également être remplacés par un autre mode de traitement 3': 3') Traitement (d'une convolution à une dimension) pendant le transfert des résultats à l'ordinateur 8. Tous les transferts vers l'ordinateur 8 et le bloc de convolution 1 ou à partir de ceux-ci sont exécutés dans une mémoire à accès direct avec une logique d'établissement de liaison. A chaque transfert est affecté un code individuel, généré par l'ordinateur 8, pour permettre au bloc 1 deiden- tifier le transfert qi est exécuté,c'est-à-dire 1), 2), 3), 4) ou 3'). Le code accompagnant le transfert 1) provoque l'écriture par le bloc 1 de la donnée d'entrée dans le bloc 3 de mémoire de données. Pour ce transfert, un ordre spécifi- que existe dans lequel il y a lieu de transmettre les valeurs de la suite pour traitement,c'est-à-dire suivant chaque li- gne de gauche à droite (augmentation de l'index de colonne) et ligne par ligne de haut en bas (augmentation de l'index de ligne). Un tel agencement permet une reconstruction faci- le des coordonnées concernant chaque valeur de réception, 10. coordonnées qui sont employées par le bloc 1 pour former un code différent d'adresse comme cela est nécessité pour la mise en mémoire. Le transfert 2), identifié par le code l'accompa- gnant, consiste à transférer quelques dizaines de mots. Les mots, qui sont mémorisés dans des registres appropriés (ayant pour référence 14 en figure 2), définissent le calcul d'une convolution à une dimension en utilisant les données transmi- ses dans le stade 1). Plus précisément, en même temps que les mots, le bloc 1 reçoit les termes de la suite de traite- ment (8, 16, 24 ou 32 valeurs, 8 bits avec un complément à 2) et une paire de "paramètres" contenant les autres informa- tions nécessaires telles que le fait que la convolution est ou non une convolution de ligne ou de colonne. Un mot final de code dans ce transfert commence le traitement de la convo- lution selon les instructions reçues antérieurement. Dans le cas spécifique en question, le traitement consiste à ajouter les produits des termes dans la suite à traiter aux termes de la suite de traitement, ligne par ligne ou colonne par colon- ne. Chaque terme de la suite résultante est calculé sans ap- proximation intermédiaire; la valeur résultante (20 bits) étant approchée par un nombre à 8 bits avec un complément à 2. A ce stade du traitement (stade 3), le bloc 1 est isolé de l'ordinateur 8 pendant le temps de traitement, et remplace le contenu de la mémoire 3, constitué initiale- ment de la suite de traitement par la suite résultant de la convolution. Les termes et paramètres de la suite de traite- ment sont laissés inchangés et peuvent être utilisés ou défi- nis de nouveau pour le traitement ultérieur. Le transfert 4) est similaire à celui du stade 1) seulement dans la direction opposée. Cette lecture n'altère pas le contenu de la mémoire de données 3. Le bloc de convolution 1 est activé par un appel en provenance du bloc 36, à titre de partie d'un programme 11. exécuté par l'ordinateur principal 8. Le bloc 36 assure l'exécution du codage et des transferts nécessaires. Dans l'agencement de la figure 1 ayant comme carac- téristique un ordinateur principal 8 constitué d'un VAX 11/780, l'image résultante est disponible pour emploi en quelques secondes. Une telle augmentation importante du temps total par rapport au temps de traitement est presque entièrement due au temps pris pour transférer les suites d'image entre l'or- dinateur 8 et le bloc de convolution 1. Cependant, ces temps aussi peuvent être réduits en fraction de seconde en optimi- sant les procédures de transfert et employant des blocs d'in- terface 36 plus rapides. On examinera maintenant plus en détail le fonction- nement du bloc de convolution 1 et de l'unité arithmétique 2, afin d'exécuter une convolution numérique de base à une dimen- sion. Le calcul à exécuter est la convolution d'une sui- te pour le traitement X (de N,N termes) avec une suite de traitement constituée de h(-q),..., h(-l), h(O), h(l),..., h(p). Ces n termes (n = q + p + 1 = 8, 16, 24 ou 32) sont indiqués par des "coefficients". Le calcul peut être une con- volution de ligne ou de colonne, c'est-à-dire: W = HR * X ou W = H * X Le calcul total ainsi indiqué est effectué terme par terme,c'est-à-dire que les diverses valeurs dans la sui- te résultante sont calculées individuellement.(Pour simpli- fier "donnée" indique un terme de la suite pour le traite- ment X, et "résultat "un terme dans la suite résultante W). L'équation pour le résultat générique w(l, m) est: w(l,m) = h(i) x (l,m-i) i=-q,p ou w(l,m) = E h(i) x (1-i,m) i=-q,p Les équations précédentes indiquent les opéra- tions nécessaires pour calculer un résultat, c'est-à-dire 12. additionner les produits de n données, chacune multipliées par un coefficient approprié. Au moment de l'exécution du calcul, la donnée est contenue à l'intérieur de la mémoire 3, alors que la multi- plication et l'addition réelles sont exécutées dans l'unité arithmétique 2 dans laquelle les n coefficients ont été directement mémorisés. Dès qu'un résultat a été calculé, un autre est cal- culé en ajoutant d'une manière similaire les produits des mêmes coefficients pour un groupe différent de n données. En outre, comme représenté dans les équations ci-dessus, dès qu'une suite de coefficients a été instaurée, la seule dif- férence entre convolutions de ligne et de colonne réside dans le groupe de n données. Comme il n'existe aucun ordre donné dans lequel il faut calculer les divers résultats, une procédure systémati- que commode consiste à calculer les résultats consécutive- ment dans des lignes droites: lignes et colonnes pour des convolutions de ligne et de colonne, respectivement. Dans le cas d'une convolution de ligne, par exem- ple, le calcul w(1o, mo), nécessite la lecture de n données X(lomo-P),..., x(lo,mo+q) provenant de la mémoire 3. Le calcul de w(1o, m0+l) nécessite la lecture de x(lo0,mo0+l-p), x(l0,mo+l+q). Dans celles-ci, les n-1 premières ont * déjà été lues pour des calculs précédents et seule la derniè- re est "nouvelle". Comme chaque donnée est employée pour calculer n résultats qui sont calculés consécutivement alors que les données requises deviennent connues, chaque donnée peut être lue seulement une fois dans la mémoire 3, et pour une utilisation ultérieure, mémorisée directement dans l'unité arithmétique 2. Dans le cas indiqué ci-dessus, une telle mémorisation des données lues précédemment ne s'applique qu'à la n-1 "plus récente", ce qui permet de simplifier con- sidérablement la lecture des données et la structure de 13. l'unité arithmétique 2. La même chose s'applique à une con- volution de colonne, auquel cas, la donnée est lue séquentiel- lement dans la mémoire 3 en colonnes, aucune altération n'étant nécessaire dans l'unité arithmétique 2. En d'autres termes, la convolution d'une suite X à deux dimensions de N.N termes avec une suite de n h(i) termes est divisée en N convolutions séparées de deux suites à une dimension: la sui- te de traitement et, chaque fois, une ligne différente (ligne ou colonne) dans la suite à deux dimensions, de façon à obtenir, chaque fois, une ligne correspondante de résultats, suite de W éléments, dont chacun peut être indiqué: w(k) = Z h(i) x (k-i) i=-q,p Cela est une équation simplifiée, valable pour les convolutions tant de ligne que de colonne, dans laquelle les termes w(k) et x(k-i), éléments d'une suite à deux dimensions, sont pris pour impliquer l'index (commun) identifiant la li- gne droite dont il est question dans le calcul en cours d'exé- cution. Considérons maintenant le cas d'une convolution avec une suite de traitement "causal" de n termes (c'est-à- dire avec des indices de coefficients compris entre q = O et p = n-l): w(k) = Z h(i) x (k-i) i=O,n-l L'unité arithmétique 2, qui est "programmée" pour traiter la suite (H), demande consécutivement à l'entrée les termes de la suite (X) pour traitement, et émet consécutive- ment à la sortie les termes de la suite traitée (W). Dans le mode de réalisation représenté en figure 2, l'unité arithmétique 2 présente, par conséquent, "n" nombres de stades identiques 11 constitués de cellules semi-systoli- ques, c'est-à-dire qui fonctionnent en synchronisme avec une entrée commune de données 50 et une sortie commune 49 pour chaque stade 11 connecté à une entrée d'addition du stade 11 suivant. Chacune des cellules 11 comprend un multiplicateur à 14. haute vitesse 12 de 8 x 8 bits pour multiplier la donnée pro- venant de l'entrée 50 par le coefficient de convolution h(i) fourni par une mémoire locale 14 à accès direct chargée par l'ordinateur 8. La sortie du multiplicateur 12 est appliquée à un additionneur 13 de 20 bits qui l'ajoute à la donnée pré- sente à la sortie 49 de l'étage 11 précédent. La sortie de l'additionneur 13 est fournie à un registre 15, dont la sortie constitue la sortie 49 de l'étage 11. Alors que les multiplicateurs 12 ainsi que les additionneurs 13 sont constitués de blocs logiques en combi- naison, dont la sortie dépend des données d'entrée, le fonc- tionnement de chaque registre 15 nécessite un signal de com- mande d'écriture. A chaque front de montée du signal de com- mande d'écriture, chaque registre mémorise la donnée à son entrée à cet instant particulier, la transfère à la sortie et la maintient stable (quels que soient les changements à l'entrée) jusqu'à réception du front de montée suivant. Le signal constitué du signal de rythme (c) en figure 2a, s'en- tend comme étant destiné aux registres 15 dans le schéma de la figure 2. De plus, en figure 2a, (a) représente un graphi- que de temps de la valeur à l'entrée 50 de l'unité 2 en figu- re 2, et (b) un graphique de temps des valeurs à la sortie 51. Chacune des données envoyées consécutivement à l'en- trée 50 de l'unité arithmétique 2 reste constante pendant un cycle (la période entre deux fronts de montée consécutifs du signal de temps) de manière à permettre le calcul d'un nou- veau résultat, qui est envoyé à la sortie 51 de l'unité 2 dans le cycle suivant. La formation du résultat est facile- ment déductible étant donné la nature répétitive de la structure (la première cellule 11 en figure 2 peut, à des fins d'uniformité présenter un additionneur 13 ayant l'une des entrées (49) à zéro). Dans le cas de n coefficients, chaque terme est calculé par n stades (figure 2) dans n cycles. Le calcul: w(k) = h(n-l) x (k-n+l) + h(n+2) x(k-n+2) +... + h(l) x(k-l) + h(0) x (k) 15. commence dans le premier stade 11 dans le cycle o x(k-n+l) avec un produit h(n-l) x(k-n+l)... est présent comme entrée du multiplicateur 12. Cycle par cycle, une somme est formée par les sta- des 11 en additionnant un terme chaque fois au résultat par- tiel à la sortie du registre 15 du stade 11 précédent, jus- qu'à ce que, dans le cycle o x(k) est présent à l'entrée des multiplicateurs 12, le dernier stade 11 ajoute le der- nier addendum, h(0) x(k), et envoie le résultat complet w(k) à la sortie 51 de l'unité arithmétique 2 dans le cycle suivant. Une caractéristique spécifique de la structure de la figure 2 est que les opérations exécutées consécutivement dans chaque cycle sont une multiplication et une addition. Cette suite de deux opérations est indépendante du nombre des stades, c'est-à-dire que de nouvelles opérations consécu- tives ne sont pas nécessaires quel que soit le nombre des stades n impliqué Cela est un facteur important en ce sens que le temps nécessaire pour exécuter les opérations consécutives dans chaque cycle (par suite du retard des composants) est ce qui détermine la période minimum de séquencement pour le fonctionnement du bloc de convolution, temps qui doit évidem- ment être rendu minimum autant que possible. Si l'on tient compte du registre de sortie 15 du dernier stade 11, la sui- te réelle disponible à la sortie 51 de l'unité 2 en figure 2 est retardée d'un cycle par rapport à la suite X à l'entrée (comme représenté par les graphiques (a) et (b) en figu- re 2a). Le registre de sortie 15 est, de fait, un registre "pipeline", c'est-à-dire que contrairement aux autres, il n'est pas nécessaire pour le procédé mais est employé pour séparer, dans des cycles ultérieurs, les opérations exécu- tées dans le dernier stade 11 de l'unité 2 de celles exécutées par le bloc en aval. Les registres pipeline sont pratiquement une 16. obligation entre blocs, mais ils peuvent être également uti- lisés à l'intérieur du bloc lui-même. Par exemple, pour l'uni- té 2 de la figure 2, un niveau de pipeline constitué d'un registre supplémentaire peut être inséré dans chaque stade 11 entre le multiplicateur 12 et l'additionneur 13. Dans ce cas, la limite inférieure de la période de temps est déterminée par le retard le plus long d'un multiplicateur 12 et d'un addi- tionneur 13, avec comme résultat que la suite de sortie est retardée de deux cycles par rapport à la suite d'entrée X. Dans un mode de réalisation préféré, l'unité arith- métique 2 de la figure 2 comprend un module ayant huit sta- des 11, ce qui veut dire qu'il peut calculer des convolutions impliquant des suites de traitement de n Dans les cas impliquant un nombre de coefficients supérieur à huit, un premier mode de traitement fournit une connexion en cascade d'un certain nombre de modules identi- ques (grace à la nature répétitive de la structure de la fi- gure 2). Dans le cas n les (numérotés 53) connectés comme représenté en figure 4 dans laquelle: l'entrée 50 est l'entrée commune aux huit multi- plicateurs 12 de chaque module 53; P est l'entrée de l'ad- ditionneur 13 dans le premier stade 11 et 51 est la sortie du registre 15 dans le huitième stade 11. Le nombre de coefficients augmentant, le nombre des stades 11 nécessaires pour l'unité 2 augmente égale- ment, alors que le temps de traitement reste inchangé. Etant donné une période de 125 ns et une suite de traitement de 256 K termes, une opération de traitement (nécessitant approximativement autant de cycles que de ter- mes dans la séquence de traitement) est exécutée en gros en 35 ms. Laissant de côté la solution précédente pour le cas o une telle vitesse de traitement est nécessaire, la présente invention tient également compte de la possibilité de traitement de convolutions impliquant plus de huit 17. coefficients (avec une augmentation proportionnelle du-temps de traitement, naturellement) employant les multiplicateurs 12 et les additionneurs 13 d'un module 53. La structure de l'unité 2, comprenant les composants se répétant, est représen- tée en figure 3, qui illustre seulement le premier et le der- nier stade 11' dans la chaîne de huit stades qui tous les v/cycles (V/= 1, 2, 3, 4) calcule un résultat d'une convolu- tion avec une suite de traitement de %/.8 coefficients. Chaque stade 11' présente un multiplicateur 12 1D qui reçoit une donnée 50 à une entrée et, à l'autre entrée, un coefficient choisi dans un groupe, dans le cas présent, de quatre coefficients mémorisés dans un groupe 14' de mémoi- res à accès direct. La sortie du multiplicateur 12 est appli- quée à l'additionneur 13 qui reçoit à l'autre l'entrée, en provenance du stade 11' précédent, la sortie d'un registre d'un groupe 15' de quatre registres, et à son tour, envoie la sortie à son propre groupe 15' situé en aval. Une entrée de l'additionneur 13 du premier stade 11' est connectée à la sortie d'un dispositif de balayage (commutateur) 33 qui, à une entrée, reçoit un signal p et, aux autres entrées, la sortie d'un registre supplémentaire 34 dont l'entrée reçoit la sortie de l'un des registres D24, D16, D8 du groupe 15' du huitième stade 11' à l'exception du registre (Dout) du groupe 15' qui fournit la sortie 51. Le commutateur 33 per- met un traitement répétitif (d'un nombre de quatre dans le cas présent) pour le traitement de convolutions avec des suites de 8, 16, 24 ou 32 termes. Comme on l'expliquera plus en détail ci-après, cela permet le traitement de convo- lutions ayant des suites dépassant le nombre des stades 111' de l'unité arithmétique 2, en traitant séquentiellement les convolutions, avec une augmentation proportionnelle, naturel- lement, du temps de traitement impliqué. En figure 3, on décrira le fonctionnement de l'uni- té 2 en supposant 32 coefficients. Comme dans la structure à 32 stades, de la figure 2, la structure de la figure 3 présente 31 registres contenant des sommes partielles 18. (D31,... D1) et un (Dout) contenant le résultat final. Le contenu de chacun des registres est modifié par chaque don- née nouvelle d'entrée: dans la structure de la figure 2, cela est exécuté dans une période de séquencement alors que dans la structure de la figure 3, quatre périodes consécutives (appelées "étapes" et qui constituent un "cycle") sont néces- saires, quatre périodes à la fin desquelles un nouveau résul- tat est entrée dans le registre Dout' Le fonctionnement par étapes est exécuté en vali- o10 dant "en colonnes" tant les groupes de mémoire 14' que les groupes de quatre registres 15'. Dans la première étape de chaque cycle, les multiplicateurs 12 sont alimentés avec des coefficients h(31)... h(24), les registres D31,... D24 sont validés, et le commutateur 33 est instauré de manière à four- nir une entrée P au premier additionneur 13. (L'entrée P est nécessaire pour une connexion en cascade d'un certain nombre de modules 53. Avec un seul module 53, comme dans le cas pré- sent, on peut supposer que l'entrée P est nulle. De fait, l'entrée P est également utilisée pour donner une approximation des résultats, comme cela est décrit plus en détail ultérieu- rement). A la fin de cette première étape, de nouvelles va- leurs sont entrées dans les registres D31,..., D24;et d'une façon similaire pour les autres "colonnes" (23,..., 16; 15... 8; 7,..., 0) dans les étapes suivantes. Dans les étapes suivantes, le réglage du commutateur 33 est modifié de maniè- re à fournir au premier additionneur 13 la sortie du regis- tre 34 sur la connexion de réaction provenant des registres du dernier stade 11'. Le registre 34 exécute le report de la valeur contenue dans le registre du dernier stade validé dans l'étape précédente. Une suite de 24 coefficients est évidemment cal- culée dans trois étapes seulement; la première, dans laquel- le le commutateur 33 choisit l'entrée P, valide la colon- ne 23,..., 16; la seconde valide la colonne 15,..., 8; et la troisième et dernière (après quoi, le registre Dout est 19. chargé) valide la colonne 7,... 0. Deux étapes suffisent pour 16 coefficients, alors que 8 ne nécessitent aucun traitement de répétition. L'unité arithmétique 2, constituée de quatre éta- pes de répétition fonctionne, en relation avec les stades amont et aval, de la même façon qu'une unité arithmétique standard (avec aucun recyclage) composée de \/ 8 étages avec un cycle de fonctionnement (apparent) de 'V périodes de séquencement. Cela signifie, par exemple, que deux des uhi- tés 2 peuvent être connectées en cascade, comme représenté en figure 4, chacune procédant indépendamment au recyclage, pour le traitement de convolutions, ayant des suites de 32 coef- ficients dans seulement deux étapes. Pour rendre maximum la capacité de résolution de l'unité arithmétique 2, aucune approximation n'est faite des multiplications ou additions. Dans le cas des multiplications, le produit de deux facteurs à 8 bits avec un complément à 2 est donné en bits (pour obtenir deux bits de signe, le cas des deux facteurs étant -128, c'est-à-dire le nombre binaire 10000000, est exclu). Dans le cas des additions, qui impliquent l'addi- tion jusqu'à un maximum de 32 produits, des résultats intermé- diaires de 20 bits sont émis pour éviter le débordement même dans le pire des cas. Pour des applications générales de l'unité 2, on recommande-des calculs intermédiaires exacts. Cependant, dans le cas d'un résultat de convolution, un résultat à 20 bits serait évidemment inemployable, d'o la raison pour laquelle on a prévu un bloc 6 d'approximation programmable. Comme l'unité 2 et la mémoire 3 sont conçues pour fonctionner avec des données à octet, une convolution à deux dimensions nécessite une approximation intermédiaire des résultats de la première convolution à une dimension. Le bloc d'approximation 6 qui est constitué exclu- sivement d'une logique de combinaison, choisit un groupe 258814-2 20. de 8 bits, dans n'importe quelle position à partir du mot à bits provenant de l'unité 2. La valeur des m bits de poids faible au-dessous des 8 bits sélectionnés (m est programmable comme décrit ultérieu- rement avec davantage de détail) est arrondie pour démarrer l'addition exécutée dans l'unité 2, c'est-à-dire en supposant que "p" est le mot à 20 bits: 00...010...00, o le seul bit égal à 1 se trouve dans la position m-ma, en comptant à partir du bit de poids faible. En outre, si le nombre représenté par les 20-m bits de poids fort restants ne peut être représenté par 8 bits (c'est-à-dire si les 13-m bits de poids fort ne sont pas tous les mêmes), la sortie du bloc d'approximation 6 émet, non les 8 bits sélectionnés, mais la valeur maximum pouvant être représentée en 8 bits ainsi que le signe du nombre ini- tial (+127 si positif, - 128 si négatif). En d'autres termes, une logique dite de saturation est employée. La présente invention permet également une appro- ximation des résultats d'une convolution à une dimension à 16 au lieu de 8 bits. Cela est obtenu en transférant chaque résul- tat directement à l'ordinateur 8 (en "ralentissant" la vitesse de l'unité 2 pour être en correspondance avec la vitesse de transfert). Dans ce cas, la limite est constituée de la lon- gueur du mot transféré entre le bloc de convolution 1 et le bloc 36. Avec cette procédure, le contenu de la mémoire 3 reste inchangé. A ce stade,les deux paramètres transmis par l'ordi- nateur 8 au bloc de convolution 1 peuvent être définis exacte- ment. Le premier paramètre, relatif aux coefficients, indique la valeur q (le nombre de termes du type non-causal dans la séquence de traitement; 0 un code à 2 bits). Le second paramètre (de traitement) indique si une 21. convolution de ligne ou de colonne est requise (code à 1 bit) et définit la valeur m (pour la programmation du stade d'appro- ximation 6); O l'unité 2. Dans ce transfert, le bloc de convolution 1 reçoit également les termes de la (des) suite(s) de traitement, qui sont entrés dans des positions respectives dans la mémoire 14 de l'unité 2 (la figure 3 représente les positions pour une suite seulement). A cet effet, chaque coefficient est trans- féré en même temps que l'index i+q (0 cessite donc 5 bits) et un bit indiquant la suite de traitement à laquelle il appartient. Les mots transférés sont, comme re- présenté en figure 5, o (a), (b) (c) et (d) indiquent respec- tivement les mots concernant: le paramètre de coefficient, le paramètre de traitement, le coefficient et le démarrage du trai- tement, et o, en plus des symboles mentionnés ci-dessus: s = 0 ou = 1 indique la suite de coefficients, nc = 00 pour une suite de 8 coefficients, = 01 pour 16, = 10 pour 24, = 11 pour 32. d = 0 pour une convolution de ligne = 1 pour une convolution de colonne. Comme des mots différents sont identifiés par le code aux deux bits de poids fort, les paramètres et coefficients peuvent être transférés dans n'importe quel ordre. Enfin, un transfert peut contenir un certain nombre de commandes de démar- rage du traitement d'une convolution à une dimension, pour pro- grammer le traitement d'une convolution séparable à deux dimen- sions. Le bloc de mémoire 3 peut contenir une suite entière d'images (par exemple, une donnée à 8 bits 512.512) et est 22. "chargé" par l'ordinateur 8 avec la suite à traiter. Pendant le traitement par l'unité 2, la donnée à traiter doit être lue séquentiellement en lignes, cycle par cycle, à partir de la mémoire 3, et les résultats (appro- chés à 8 bits) entrés de la même manière. En utilisant seulement une mémoire 3 ayant une capacité totale égale au nombre de termes d'une suite, les résultats sont mémorisés au coûtdec la donnée initiale (à moins qu'un certain nombre de modules de la mémoire 3 soient prévus comme représenté par les lignes en tirets en figure 1) Cela, cependant, n'interfère en aucune manière avec le traitement en ce sens que chaque donnée est lue une fois seulement, et le résultat à entrer dans une position donnée est disponible seulement après que la donnée contenue dans ladite position ait été déjà lue. Cependant, le seul pr( blème impliqué, est non pas tellement l'utilisation des posi- tions en mémoire que la vitesse requise, en ce sens que pour chaque cycle la mémoire 3 est appelée pour exécuter une opé- ration de lecture et une opération d'écriture. Comme la donnée doit être écrite ou lue selon une suite connue (dans ce cas particulier, séquentiellement en 1l gnes ou colonnes), des agencements spéciaux dé mémoire per- mettent l'échange de données à une vitesse supérieure à cell permise par une seule mémoire. Comme représenté en figure 6, le bloc de mémoire 3 est constitué de quatre groupes identi- ques A, B, C et D, chacun comprenant: - une mémoi-re--à- accèsdirect de 64 K; - un registre 80 pour mémoriser temporairement chaque donnée lue dans ce groupe particulier; - une paire de registres 81 et 82 actionnés alternativement pour mémoriser temporairement chaque donnée devant être écrite dans ce groupe particulier. Il est également prévu des circuits de commande connus (non représentés) qui sont communs aux quatre grou- pes. 23. Un groupe de mémoires est caractérisé par sa capaci- té et son temps d'accès. La capacité de chacun des quatre groupes est 64 K, valeur qui dépend du nombre des disposi- tifs uniques à mémoire à accès direct (8 mots K à octets) employés. Le temps d'accès (150-200 ns) est le temps mis pour exécuter une opération de lecture (pour mettre à disposition une certaine donnée) ou une opération d'écriture (pour mémo- riser une certaine donnée). Comme l'agencement en question ne o10 permet pas d'exécuter l'opération de lecture ou d'écriture en moins d'une période de séquencement (125 ns), chaque opé- ration est effectuée en deux périodes consécutives (c'est-à- dire 250 ns). Cependant, grâce au fonctionnement en parallèle des quatre groupes, les temps d'accès équivalents sont qua- tre fois plus faibles. Par conséquent, à l'aide des registres, la mémoire 3 est dans son ensemble capable de lire et d'écrire une donnée par cycle, comme cela est nécessité par le fonctionnement de l'unité arithmétique 2 à la vitesse maximum. Les données traitées sont des termes d'une suite à deux dimensions qui,en tant que telles sont indiquées par une paire de coordonnées. Chaque donnée est mémorisée avec un code d'adresse, chaque suite ayant sa propre combinaison uni- que coordonnées-adresses. Pendant le traitement, en effet, le résultat w(l, m) est écrit dans la même position que x(l, m) a été mémorisé. Etant donné un groupe de mémoires 256 K, par exemple, la donnée indiquée par les coordonnées (i, j) peut être considérée comme étant mémorisée dans la position indi- quée par le code d'adresse: a (i,j) = (i. 512) + j Comme O 0 Cependant, lorsqu'on traite quatre groupes de 64 K, chaque donnée doit être également affectée à une mémoire 24. donnée, de sorte que des données consécutives en lignes ou colonnes, qui sont lues ou écrites simultanément, sont dans des groupes différents. La donnée indiquée par les coordonnées (i, j) est écrite dans le groupe A, B, C ou D selon que: (i+j)mod.4 = O, 1, 2 ou 3. A la donnée est par conséquent affecté le code d'adresse: a(i,j) = (i.128 + (j/4) o O de la division par un nombre entier est négligé. Chacun des registres d'entrée 81 et 82 de chaque groupe se voit ainsi autorisé l'accès à une ligne locale 5 tous les quatre cycles pour une opération d'écriture. La même chose s'applique au registre de sortie 80 grâce à la logique de commande imposant de nouveau un accès cyclique aux données vidéo (lecture de mémoire). Dans ce cas, la donnée est lue en lignes oucolonnes selon le programme choisi par l'opéra- * teur. On examinera maintenant en détail le traitement d'une ligne de données en liaison avec le fonctionnement du bloc de mémoire 3, et en supposant que l'unité 2 exécute une opération de traitement par période de séquencement, c'est-à-dire une opération de traitement avec une suite de 8 coefficients et un module, ou une suite de longueur multi- ple avec un nombre de modules supérieur à un (figure 4). Dans la mémoire 3, les mémoires à accès direct exécutent des opérations alternées de lecture et d'écriture. On commencera en examinant les opérations de lecture, c'est-à- dire la donnée de sortie. La fin d'une opération de lecture par les mémoires à accès direct est marquée par le front de montée du signal de commande d'écriture des registres de sortie 80. A la sui- te de la lecture, quatre données, une donnée par groupe, sont écrites dans le registre respectif de sortie 80 de cha- que groupe. Les données sont alors fournies à la suite à la 25. sortie de la mémoire 3 lors des quatre périodes suivantes, validant ainsi, une à la fois, les sorties des registres 80. La lecture de la donnée suivante est exécutée par les mémoires à accès direct deux cycles plus-tard. Par con- séquent, à la fin du quatrième cycle suivant une opération de lecture, cycle dans lequel la donnée écrite dans les re- gistres de sortie 80 est employée,, la donnée à fournir à la sortie de la mémoire 3 lors des quatre cycles suivants est de nouveau écrite dans les registres 80. Par conséquente en d'autres termes, entre deux opérations consécutives de lecture deux périodes sont laissées disponibles pour les mémoires à accès direct afin d'écrire quatre résultats. Pour poursuivre avec cet exemple de traitement de la première ligne, dans lequel seul l'index de colonne 0 simultanément par les mémoires à accès direct, dans la mesu- re o ces valeurs sont rendues disponibles dans la pério- de séparant deux opérations de lecture, ce qui n'est pas toujours le cas. Ce qui plus est, les quatre données ne sont stables simultanément que pendant une période, en ce sens que, après w(4K+3), la dernière donnée de l'ensemble de quatre données a été écrite dans le registre du groupe D, w(4K+4) est reçue, qui doit être écrite dans le registre du groupe A à la place de w(4K). Cependant, ce seul fait n'affectera pas l'opération d'écriture grâce à la concep- tion des mémoires à accès direct. Les valeurs d'une opération d'écriture, qui doit être nécessairement exécutée entre deux opérations de lec- ture, doivent par conséquent toujours présenter des coor- données consécutives, bien que non strictement liées par 26. groupe, caractéristique qui nécessitera une logique de com- mande plus complexe pour la génération des adresses des qua- tre groupes de mémoires à accès direct. Par ailleurs, la solution adoptée dans le cas pré- sent consiste à doubler les registres d'entrée (81 et 82) ce qui, en plus de la simplification de la conception, four- nit aussi une "acquisition à haute vitesse". En doublant les registres 81 et 82, les valeurs fournies à l'entrée de la mémoire 3 (toujours en liaison avec la première ligne) ont simplement besoin d'être écrites consécutivement dans les registres: 82 du groupe A, 82 du groupe B, 82 du groupe C, 82 du groupe D, 81 du groupe A, 81 du groupe B, 81 du groupe C, 81 du groupe D, etc., en commençant de nouveau à partir du premier. Ainsi, dans l'intervalle séparant deux opérations de lecture, les regis- tres 82 ou 81 (alternativement) des quatre groupes contien- nent un groupe de quatre valeurs qui, en plus du maintien de leur état stable pendant toute l'opération d'écriture (ce qui facilite l'exécution de celle-ci), est compatible avec le système d'adressage pour la lecture des blocs de mémoire à accès direct. Pour conclure, on remarquera que, pour la lecture et/ou l'écriture des données dans une ligne (colonne) généri que i, les quatre registres de chaque groupe (quatre regis- tres de sortie 80, quatre registres 81, et quatre registres d'entrée 82) sont utilisés dans l'ordre suivant: A, B, C, D si (i)mod4 = 0 mod.4 4 _ B, C, D, A si " = 1 C, D, A, B si (i) mod.4 = 2 D, A, B, C si " = 3 Comme avec l'unité arithmétique 2, un certain nom- bre de blocs identiques 3 de mémoire peuvent être intercon- nectés (cette fois en "parallèle") pour mémoriser les résul- tats d'une convolution sans perdre la donnée de départ. Etar donné deux blocs de mémoire 3, par exemple, pendant le 27. traitement, ceux-ci exécuteront alternativement les opéra- tions de lecture et d'écriture décrites précédemment en liai- son avec un bloc de mémoire 3, auquel cas, seule une logique de commande sera nécessaire pour produire les adresses et les commandes. Pour un traitement ne nécessitant aucune répétition dans l'unité arithmétique 2, la mémoire 3 exécute une opéra- tion de lecture et d'écriture pour chaque position dans une durée totale de 35 ms. Comme on l'a déjà mentionné, cela n'est possible que pour des opérations impliquant des don- nées consécutives en lignes ou en colonnes. L'ordre dans lequel la donnée est lue pour une convolution de ligne est cependant le même que pour le transfert de la donnée à l'ordinateur, et dans ce cas, aucune écriture n'est nécessai- re. La même chose s'applique lors du transfert de données dans la direction opposée, auquel cas la mémoire 3 est seulement appelée pour exécuter les opérations d'écriture. Enfin, on fera mention de la structure de la mé- moire 3, en particulier des registres 80, 81 et 82. Avec chaque groupe de mémoires, le fonctionnement des mémoires à accès direct et des registres est synchronisé au moyen de logiques de commande partiellement séparées, en ce sens que les mémoires à accès direct exécutent une opéra- tion en deux cycles, contrairement aux registres 80, 81 et 82 qui effectuent une opération par cycle. Une telle séparation peut être exploitée pour per- mettre potentiellement aux mémoires à accès direct et aux registres d'exécuter des opérations séquentielles de lecture ou d'écriture seulement à la vitesse de 4 opérations d'écri- ture ou de 4 opérations de lecture toutes les 250 ns. Dans le cas d'opérations de lecture, les mémoires à accès direct exécuteront des opérations consécutives de lecture seulement, les données étant écrites comme d'habitu- de dans des registres de sortie 80 à la fin de chaque opéra- tion. Les registres de sortie 80, commandés dans ce cas avec un séquencement de 16 MHz, émettront une donnée toutes les 28. 62,5 ns, ce qui sera par conséquent le temps d'accès équiva- lent de la mémoire 3. D'une façon similaire, l'opération d'écriture per- mettra d'acquérir le signal d'image directement à partir de la caméra de télévision 9 comme représenté par la ligne en ti- rets en figure 1, dans laquelle le bloc de convolution 1 peut être limité seulement à l'unité 2, au circuit d'approximation 6, au bloc de mémoire 3 et au circuit de commande 4. Une image standard de télévision est, de fait, composée d'environ 600 li- gnes avec un rapport largeur/hauteur de 4/3. Comme le signal analogique de chaque ligne est transmis en 52 As, pour mainte- nir le même cycle d'échantillonnage tant pour les lignes que pour les colonnes, le signal doit être échantillonné 800 fois, c'est-à-dire toutes les 65 ns. Pour mémoriser des données à cette vitesse, le fonctionnement des mémoires à accès direct nécessite l'emploi de registres d'entrée doubles. En utili- sant des registres d'entrée doubles (et en entrant des don- nées dans les cycles comme d'habitude), alors qu'un jeu de registres (par exemple de registres d'entrée 81) fournit à la mémoire à accès direct un groupe stable de quatre données pour mémorisation, l'autre registre (le registre d'entrée 82) est chargé temporairement avec la donnée entrante devant être four- nie aux mémoires à accès direct dans l'opération suivante. Les avantages du bloc 1 de convolution selon la présente invention sont apparus à la lecture de la description précédente. En particulier, celle-ci est entièrement polyvalen- te, tant en termes d'amélioration du circuit pour-l'unité arith- métique 2 afin de satisfaire les conditions de systèmes d'exploi- tation en temps réel, qu'en termes de programmation pour l'ex- tension du domaine d'application. En outre,le bloc 1 permet un fonctionnement direct avec des macro- instructions relatives à la taille du filtre, aux coefficients, au format du résultat final, et à la suite des deux convolutions à une dimension nécessaires pour le traitement de convolutions à deux dimensions. 29. Avec certaines limitations, diverses convolutions séquentielles à une dimension peuvent être effectuées dans un mode à répétition, afin d'obtenir des filtres de tailles équivalentes d'un nombre de coefficients même supérieur à 32. La précision du bloc 1 selon la présente invention convient par conséquent pour une prise d'images et des applications de traitement de caractère plus général. La possibilité de remettre en circulation des résultats partiels augmente considérablement la polyvalence de l'unité arithmétique 2. En effet, diverses configurations peuvent être choisies entre les deux extrêmes, dans lesquel- les N modules sont connectés en cascade pour obtenir les 8N coefficients dans une convolution à haute vitesse, ou bien un seul module est employé pour un bloc de convolution d'une 13 vitesse N fois plus petite. La conception uniforme, répétitive, de la structure de l'unité 2, obtenue en utilisant divers stades il identi- ques, est une caractéristique importante permettant sa mise en oeuvre dans un mode d'intégration à très grande échelle. De fait, la formation d'un circuit à intégration à très grande échelle d'un coût élevé peut n'être avantageu- se que s'il peut être transformé en module "élémentaire" employable sur des structures différentes en parallèle. La formation d'un système comprenant seulement le bloc de convolution 1, avec un accès direct des données à partir d'une caméra de télévision 9, permet une application encore plus souple en autorisant le débranchement de la camé- ra 9 de l'ordinateur principal 8. La présente invention n'est pas limitée aux exemples de réalisation qui viennent d'être décrits, elle est au contraire susceptible de modifications et de varian- tes qui apparaîtront à l'homme de l'art. 30. REVENDICATIONS 1 - Système (1) permettant le traitement de don- nées d'image par convolution à haute vitesse, caractérisé en ce qu'il comprend au moins une unité arithmétique (2) comportant un certain nombre de cellules de traitement inter- connectées (11, 11') avec au moins des entrées partiellement communes (50) et destinées à exécuter des convolutions à une ou à deux dimensions avec des variables séparables, et un moyen de mémoire (3) destiné à mémoriser au moins les données devant être soumises à un tel traitement de convolution. 2 - Système selon la revendication 1, caractérisé en ce qu'il comprend un moyen (14, 14') pour mémoriser les coefficients de l'opération de traitement. 3 - Système selon la revendication 1 ou la revendi- cation 2, caractérisé en ce que les cellules de traitement (1] 11') sont sensiblement identiques. 4 - Système selon la revendication 3, caractérisé en ce que chacune des cellules (11, 11') comprend un multipli- cateur (12) auquel on fournit la donnée à traiter et les coef- ficients de l'opération de traitement, et dont le résultat est appliqué à un additionneur (13) qui est également alimen- té avec la sortie d'une cellule précédente (11, 11'); la sor- tie de l'additionneur (13) étant fournie à un registre de mé- moire (15, 15') dont la sortie (49) constitue la sortie de la cellule. - Système selon la revendication 4, caractérisé ce que l'unité arithmétique (2) comprend un certain nombre des cellules (11'), chacune comportant un second nombre de moyens de mémoire (14') pour les coefficients de l'opération de traitement et de registres (15') pour mémoriser la sortie de l'additionneur respectif (13), les moyens de mémoire (14') et les registres (15') étant validés "en colonnes" à chaque étape de traitement, et comprenant un dispositif de balaya- ge (33) qui connecte sélectivement à l'entrée de l'addition- neur (13) de la première cellule (11') une entrée 31. extérieure (p) ou les sorties des registres (15') de la der- nière cellule en aval (11'), de manière à valider le traite- ment répété avec un nombre d'étapes égal au second nombre et, ou, à chaque étape, la sortie du registre (15') de la dernière cellule (11') validée dans l'étape précédente est reportée au dispositif de balayage (33). 6 - Système selon l'une quelconque des revendi- cations 1 à 5, caractérisé en ce que le moyen de mémoire (3) comprend un certain nombre de groupes de mémoires (A, B, C, D) interconnectées en parallèle. 7 - Système selon la revendication 6, caractérisé en ce que chacun des groupes (A, B, C, D) comprend une mémoi- re à accès direct, un premier registre (80) pour mémoriser temporairement chaque donnée lue dans la mémoire, et au moins un second registre (81, 82) pour mémoriser temporairement cha- que donnée à entrer dans la mémoire. 8 - Système selon la revendication 7, caractérisé en ce que chacun des groupes (A, B, C, D) comprend deux des seconds registres (81, 82) activés alternativement. 9 - Système selon l'une quelconque des revendica- tions 1 à 8, caractérisé en ce que les résultats donnés par l'unité arithmétique (2) sont mémorisés dans le moyen de mé- moire (3) à la place de la donnée initiale pour traitement. - Système selon l'une quelconque des revendica- tions 1 à 9, caractérisé en ce qu'il comprend un moyen (6) pour donner une approximation des résultats finals provenant de l'unité arithmétique (2>. 11 - Système selon la revendication 10, caractéri- sé en ce que le moyen d'approximation (6) est constitué d'élé- ments logiques en combinaison et sont conçus pour sélection- ner, à partir d'un mot provenant de ladite unité, un groupe de bits mieux choisis dans n'importe quelle position. 12 - Système selon l'une quelconque des revendica- tions 1 à 11, caractérisé en ce qu'il comprend un moyen (4) pour commander les étapes de traitement du système (1) et 32. pour faire l'interface avec un ordinateur extérieur (8). 13 - Système selon l'une quelconque des revendica- tions 1 à 12, caractérisé en ce que les opérations de traite- ment de convolution sont destinées à "extraire des bords" desdites images. 14 - Système selon l'une quelconque des revendica- tions 1 à 13, caractérisé en ce que la donnée est obtenue au moyen de dispositifs de vision de l'environnement. - Système selon la revendication 14, caractéri- sé en ce que ces dispositifs comprennent une caméra de télé- vision (9). 16 - Système selon l'une quelconque des revendica- tions 1 à 15, caractérisé en ce que la donnée d'image est cap- tée par un ordinateur (8) à partir dudit système (1). 17 - Système selon la revendication 15, caractérisé en ce que la donnée provenant de la caméra de télévision (9) est appliquée directement au moyen de mémoire (3).