FR 2603122 A1 19880226 FR 8612028 A 19860825 Dlsoosltlf de traitement numérique d'imaaes La présente invention a pour objet un dispositif de traitement numérique en temps réel d'images constituées de pixels répartis en lignes et colonnes et codés sur n bits, transmis en série au dispositif à débit très élevé. Elle trouve une application particulièrement importante dans le prétraitement des images transmises, à une cadence de plusieurs dizaines de M bits/s, par les satellites d'observation terrestre, mais son domaine d'emploi s'étend à tout système dans lequel il est nécessaire de manipuler en temps réel un grand nombre de données arrivant à débit élevé et de les soumettre à un traitement très répétitif. Le prétraitement des images fournies par les satellites est très représentatif de ces conditions. Ce prétraitement comprend fréquemment, après des opérations de synchronisation et de décommutation - une calibration, effectuée pixel par pixel, constituée par une transformation linéaire permettant de compenser les différences de sensibilité entre les différents sites photosensibles des barrettes de détecteurs habituellement utilisées. - la détection de pixels aberrants et leur reconstitution, par interpolation entre les pixels adjacents, - la détection de lignes aberrantes et leur reconstitution par interpolation entre lignes adjacentes, - l'échantillonnage par prise de la moyenne d'ensembles successifs de pixels, - le prélèvement de fractions de l'image complète, ou formatage. Pour effectuer ces opérations en temps réel a la cadence requise, il est nécessaire de disposer de mémoires de masse à très grande capacité, souvent plusieurs centaines de Moctets, et de pouvoir effectuer les transactions nécessaires pour les calculs à une cadence compatible avec les temps d'accu et la capacité d'échange du dispositif. On pourrait, a priori, penser que seuls les disques durs, à grande capacité et à débit d'échange élevé lorsqu'ils sont & têtes multiples, permettent d'atteindre ce résultat dans des conditions de prix et d'encombrement acceptables. Mais ils présentent de graves inconvénients : l'accès en mémoire, n'étant pas aléatoire, réduit le débit. Le dispositif s'adapte mal à des variations de besoins. L'existence de pièces méca- niques en mouvement réduit la fiabilité. La présente invention vise à fournir un dispositif de traitement d'images répondant mieux que ceux antérieurement connus aux exigences de la pratique, notamment en ce qu'il permet d'arriver à des volumes de mémoire et & des débits très élevés, présente une modularité qui permet de l'adapter aux besoins et n'a pas de pièces mécaniques mobiles. Dans ce but, l'invention propose un dispositif qui comprend une mémoire de masse constituée de boîtiers de mémoire dynamique à semi-conducteurs, à accès aléatoire, dont chaque mot adressable contient p x n bits (m étant un entier supérieur à 1) ; un bus parallèle à a x n conducteurs relit à la mémoire de masse et à une unité de sortie ; et un ensemble de traitement relié au bus. Cet ensemble est avantageusement constitué de plusieurs unités de traitement travaillant en parallèle et capables chacune d'effectuer les différents types d'opérations de traitement requises. Il semblerait à première vue que l'utilisation de mémoires de masse à semi-conducteurs pour les volumes nécessaires est irréaliste, du fait de leur prix, et surtout du fait que le pyramidage de commandes qu'implique l'adressage d'un tel volume, augmente le temps d'accès au point de faire disparaltre le gain obtenu par l'accès aléatoire. L'apparition récente de mémoires dynamiques de grande capacité unitaire écarte le premier reproche. Le problème des temps d'accès est écarté ou du moins très atténué en organisant la mémoire en mots correspondant à plusieurs pixels (4 pixels de 8 bits par exemple), ce qui réduit le nombre de transactions en lecture-écriture et permet de le rendre compatible avec la cadence autorisée par les temps d'accès. Une autre mesure permettant de réduire le nombre des accès à la mémoire de masse, qui ne peut être considérée que comme semi-rapide, consiste à prévoir dans le dispositif - une mémoire tampon rapide, à accès aléatoire, de capacité inférieure de plusieurs ordres de grandeur à celle de la mémoire de masse, accessible par le bus global; et - un bus local parallèle, ayant le mçme nombre de fils que le bus global. accédant à la mémoire de masse et seul accessible par l'interface d'entrée du dispositif. Cette disposition est avantageusement utilisable en liaison avec la précédente, mais teut l'être indépendamment. Elle permet de diminuer tout à la fois - le nombre de transactions nécessaires sur la mémoire de masse, - l'encombrement du bus global et, par là, d'accepter des débits élevés. Le nombre de transactions et l'encombrement du bus global est encore notablement diminué en constituant chaque unité de traitement de façon qu'elle puisse effectuer en cascade toutes les opérations nécessaires. Chaque unité comporte alors une mémoire privée à accès aléatoire permettant d'effectuer les stockages intermédiaires entre traitements successifs, de capacité correspondant à une fraction seulement de l'image. Cette constitution est d'autant plus avantageuse que les traitements à effectuer sont peu complexes et se limitent fréquemment à des additions, soustractions et multiplications, se pretant bien à l'exécution par des processeurs microprogrammes spécialisés, plutôt que par des processeurs d'usage général. L'invention sera mieux comprise à la lecture de la description qui suit de modes particuliers d'exécution donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lequels - la Figure 1 est un schéma de principe de la constitution d'une chaine terrestre de traitement de signaux d'images provenant d'un satellite tel que SPOT ou LANDSAT - la Figure 2 est un synoptique d'un dispositif de prétraitement suivant l'invention, utilisable dans la chaine de la Figure 1 - la Figure 3 est un synoptique détaillé de l'interface de la mémoire de masse de la Figure 2 - la Figure 4 est un synoptique d'une des unités de traitement de la figure 2 ; et - la Figure 5 est un schéma montrant le découpage de l'image en zones. L'invention sera décrite dans son application au traitement d'images constituées de pixels codes sur 8 bits, répartis en lignes. On supposera que chaque image est constituée par une seulc trame de balayage. Le flot continu de données arrivant à la chaine de traitement est constitué de messages formés de bits en série, précédés de codes de délimitation, et notamment de mots de synchronisation ligne et/ou trame. La chaine de traitement montrée en Figure 1 peut hêtre regardée comme comportant un ensemble synchronisateur de format et décommutateur 10 qui isole les signaux d'image, redonnait les mots de synchronisation et fournit les signaux d'image sur une entrée parallèle 14 d'un dispositif de traitement 12, par exemple sous forme de mots de 16 bits correspondant à deux pixels. Le dispositif de prétraitement 12 effectue, sur les pixels reçus et mémorisés, des traitements portant sur les pixels individuels (calibration), sur des pixels d'une meme ligne ou de lignes adjacentes (interpolation de reconstitution de pixels aberrants ou manquants) sur l'ensemble d'une image ou de plusieurs images, ou meme sur un "plan prise de vue" regroupant des pixels pré- levés par sous-échantillonnage dans plusieurs centaines d'images succesives. Il fournit les données prétraitées à un calculateur 16 dont il ne sera plus question, car il est hors du cadre de la présente invention. Le dispositif de prétraitement 12 doit traiter un débit moyen élevé de bits, autoriser un accès rapide à une masse énorme de données et effectuer toute une séquence d'opérations sur les memes bits. Pour cette raison, il comporte - une mémoire de masse à accès véritablement aléatoire 18 à semi-conducteurs, dont le pyramidage de circuits de contrôle ne permet cependanbrpas d'atteindre le temps d'accès très bref d'un bottier isolé de mémoire dynamique - une mémoire tampon 20 à accès aléatoire, pouvant être une mémoire statique car sa capacité est beaucoup plus faible que celle de la mémoire 18, permettant de réduire le nombre d'accès requis en mémoire de masse - un bus global 22, permettant d'accèder en lecture-écriture aux mémoires 18 et 20, et relié d l'unité de sortie 24 du dispositif - un bus local 26, permettant uniquement d'accéder à la mémoire de masse 18, qui doit être à double accès, et à l'unité 28 d'acquicition à partir de l'ensemble 10, permettant de réduire le débit à transmettre sur le bus global ; et - un ensemble de traitement 30 constitué d'unités identiques 32 comportant chacun une mémoire privée 34 à accès aléatoire, permettant de conserver tous les résultats intermédiaires d'une séquencc de calculs, et de supprimer la nécessité d'accès en mémoire 18 ou 20 en cours de traitement. Ces composants seront successivement décrits, mais il faut tout d'abord noter que l'architecture montrée en figure 2 est particulièrement avantageuse avec des bus parallèles 22 et 26 capables de supporter en dynamique des mots représentant plusieurs pixels (4 pixels de 8 bits par exemple) et des mémoires 18 et 20 organisées en conséquence, chaque lecture ou écriture s'effectuant sur quatre pixels à la fois, d'ou une réduction du nombre d'accès nécesaires et une réduction du nombre de bits supplémentaires par pixel requis pour stocker un code auto-correcteur en mémoire. Bus alobal 22 Le bus global 22 interconnecte l'unité de sortie 24, la mémoire de masse 18 et la mémoire tampon 20 destinée à stocker les résultats fournil par l'ensemble de traitement 30 avant transmission vers l'unité de sortie 24. Ce bus 22 est donc préservé aux traitements et aux sorties. Parmi les bus utilisables, le plus avantageux semble être le MULTIBUS Il de Intel, utilisable avec des mots de 32 bits, offrant une bande passante de 40 Mo/s dans le cas d'une seule sortie, permettant un champ d'adressage de 5 Go, pourvu d'un espace d'interconnection qui facilite les opérations d'auto-test, de diagnostic et de reconfiguration des mémoires. Cependant, on pourrait également utiliser d'autres bus, et notamment le bus VME. Bus local 26 Le bus local 26 présente une architecture compatible avec le bus local et il est affecte au chargement de la mémoire de masse & partir de l'interface 28 d'acquisition des données fournies par l'ensemble 10. Gråce au bus local, le bus global n'a pas à supporter les transactions d'écriture des données brutes en mémoire de masse 18. L'adjonction d'un bus local, désigné par LBX, est déjà prévu à l'aide de cartes processeurs du MULTIBUS II et se fait donc sans difficulté. Mémoire tamPon20 La mémoire tampon 20 et la mémoire de masse 18 peuvent etre considérées comme constituant ensemble une "mémoire publique" par opposition aux mémoires privées 34. Elles comportent un système de détection et de correction d'erreur et un microcontrôleur d'auto-test et de diagnostic. La mémoire tampon 20 peut être une carte de mémoire disponible commercialement, par exemple par la Société Intel. Cette mémoire tampon 20 a une capacité réduite à 1 Mo dans un cas représentatif. Elle a pour fonction essentielle le stockage temporaire des données traitées avant reprise par l'unité de sortie 24. Du fait de sa capacité limitée, elle peut être très rapide. Elle est accessible au moins par le bus global 22 et supporte: - les transactions d'écriture des données brutes, soit 1/4 de transaction par pixel sorti, - les transactions de relecture par l'unité de sortie 24, soit encore 1/4 de transaction par pixel sorti. On est très loin de la saturation, meme pour les cadences enlevées requises. Dans le mode de réalisation montré en figure 2, la mémoire tampon 20 est à double abcès et constitue également boite aux lettres de commurication entre un processeur 36 de gestion du dispositif en tirets sur la Fig.2), d'une part, l'ensemble de traitement 18 et l'unité de sortie 24 d'autre part. Mais ces transactions représentent une charge négligeable des entrées-sorties de la mémoire tampon 20, comparée aux transferts de données traitées. Mémoire de masse 18 La mémoire de masse constitue un sous-ensemble essentiel du fait des exigences du dispositif en matière de capacité de mémorisation et de débit de transactions. Elle comporte un interface 38 d'accès par les deux bus et un chassis, pouvant etre séparé du reste du dispositif, contenant les cartes de mémoire proprement dites (Fig.3)- En dépit du pyramidage des circuits de contrôle nécessaires pour adresser jusqu'à 864 Mo, ou même davantage, on arrive à réaliser une mémoire à temps d'accès semi-rapide,(inférieur à 800 ns), notamment du fait que La mémoire est structurée en mots de 32 bits et accessible uniquement par mots entiers. Cette organisation permet par ailleurs de diminuer l'encombrement du code auto-correcteur, de 7 bits par exemple pour un mot de 32 bits. Physiquement, la mémoire peut etre constituée de cartes ayant une capacité individuelle de 16 Mo, dont le nombre peut etre modifié suivant les besoins, ce qui rend le dispositif modulaire. Chaque carte comporte un plan mémoire de 128 boîtiers de 1 Mbit (boitiers qui pourront hêtre remplacés par les boîtiers de 4 Mbit dès que ces derniers seront disponibles) et un plan auxiliaire de 28 boîtiers de 1 Mbit destiné au code autocorrecteur. La carte d'interface 38 va comporter des circuits ayant des fonctions que le spécialiste des processeurs implémente aisément - circuits 42 et 44 de gestion des accès aux bus 22 et 26, respectivement ; - circuit 46 de multiplexage et d'arbitrage des deux accès - interface 48 avec les plans mémoires - microprocesseur 50, de gestion de l'espace d'interconnection, d'auto-test des plans de mémoire et de reconfiguration automatique. Un auto-test complet prendrait un temps énorme du fait de la capacité de la mémoire 18. Pour cette raison, l'auto-test est fait par sondage à des adresses aléatoires dans chaque carte et complété par un test de chaque ligne d'adresse et de chaque ligne de données. L'existence du code auto-correcteur rend cet auto-test suffisant pour garantir le bon fonctionnement de la mémoire. La reconfiguration automatique est effectuée à l'issue de l'auto-test. Pour la rendre possible, des cartes sont prévues en réserve, normalement inutilisées et substituées aux cartes trouvées défectueuses à 1 'auto-test. Unite d'acauisition 28 L'unité d'acquisition 28 est n interface qui constitue pour le bus local 26 un maître secondaire. Elle utilise ce bus parallèle pour transférer, vers la mémoire 18, les informations d'entrée provenant de l'ensemble 10. L'unité 28 peut également être prévue pour démultiplexer les différentes bandes spectrales au cas où plusieurs images sont prises d'une meme scène, à l'aide de capteurs sensibles à différentes longueurs d'onde. Cette fonction peut etre remplie par des canaux d'accès direct à la mémoire 18. Ensemble de traitement 30 L'ensemble 30 est constitué de plusieurs unités de traitement 32 spécialisées qui oe répartissent la charge totale de traitement, non pas par type de traitement, mais par zones géographiques de l'image. Chaque unité 32 traite un bloc de données constitué de pixels correspondant à un certain nombre de colonnes et de lignes. L'unité acquiert le bloc de données brutes correspondant à la zone qu'elle doit traiter, par exemple la zone 52 de la Fig.5, et quelques lignes en haut et/ou en bas et quelques colonnes à droite et/ou à gauche pour reconstituer les pertes de synchronisation et corriger les détecteurs aberrants aux frontières du bloc). Ces pixels supplémentaires sont délimités en 54 sur la Fig.5. L'unité traite le bloc de données, range le bloc de données traitées, puis passe au bloc de données brutes suivant. Chaque unité 32 peut avoir la constitution montrée en Fig. 4 et comporter un interface 56, un séquenceur 58, une unité arithmétique et logique à usage général 60, un multiplieur-accumulateur 62, la mémoire vive privée 34 de stockage intermédiaire des données et les accessoires matériels requis pour manipuler en parallèle les pointeurs de données. Dans le cas montré cn Fig.4, ces accessoires comportent un registre de données 64 rt un pointeur à incrémentation automatique 66 à mots de 32 bits, directement couplés à l'interface 56 et un pointeur à incrémentation automatique 68, à mots de 16 bits, relié au bus interne 70 assurant les échanges dans l'unité 32. La séparation du séquenceur 58 et de l'unité arithmétique et logique (UAL) 60 permet d'exécuter simultanément des opérations sur les données d'une part, des branchements conditionnels ou des boucles d'autre part. L'existence d'un multiplieur-accumulateur séparé 62 et de compteurs matériels pour gérer les pointeurs de données 68 permet au microprogramme 57 de faire exécuter plusieurs opérations en parallèle. Avec un rythme de fonctionnement de 8 MHz, le micro-programme exécute en 125 ns à la fois un contrôle de boucle, une opération arithmétique sur une donnée, une multiplication et addition (accumulation) sur une autre donnée, et la mise à jour simultanée de deux pointeurs de données. Ces dispositions permettent d'exécuter les opérations de calibration, de reconstitution des pertes de synchronisation, de correction des détecteurs aberrants et de mise au format en un tout petit nombre de cycles, conduisant à un temps total pour ces traitements en cascade qui peut etre de l'ordre de 5 micro-secondes par pixel. Pour obtenir un débit en sortie de 1 mégapixel par seconde, cinq unités de traitement doivent etre placées en parallèle, chacune avec une mémoire privée 34 de 32 kmots de 16 bits. Processeur à usaae aénéral 36 de aestion du dlsDosltlf Le processeur gère le dispositif 12, interprète les télécommandes provenant de l'extérieur. Il n'est pas directement concerné par l'invention, si ce n'est qu'il organise le travail des unités de traitement en fonction des ordres qu'il reçoit à l'extérieur. Ce processeur peut être constitué par une carte standard comportant un microprocesseur 16 bits à 8 MHz, up co-processeur arithmétique, un contrôleur d'accès direct à la mémoire, deux lignes de communication sérielles multiprotocoles et un canal d'entrée-sortie parallèle si on souhaite pouvoir connecter un disque. On constate que l'architecture du dispositif réduit très considérablement à la fois le nombre nécessaire d'accès en mémoire de masse, et le nombre de transaction sur le bus global 22. Pour chaque pixel traité, - l'acquisition n'exige aucune transaction sur le bus 22 puisqu'elle s'effectue par le bus 26, - le traitement codte 1/4 de transaction, pour une lecture par les unités de traitement de mots de 4 pixels et, - 1/4 de transaction pour le rangement des résultats après traitement, par mots de 4 pixels. La sortie coûte 1/4 de transaction pour la relecture des pixels traités par mots de 4 pixels. Il suffit donc de 3 transactions pour 4 pixels traités, ce qui se traduit par 800 kilotransactions par seconde pour un débit de sortie de 1 Mpixel/s, ce qui est largement acceptable pour le MULTIBUS Il. REVENDICATIONS 1. Dispositif de traitement numérique en temps réel d'images constituées de pixels répartis en lignes et colonnes et codés sur n bits, transmis en série au dispositif, caractérisé en ce qu'il comprend - une mémoire de masse (18) constituée de boîtiers (40) de mémoire dynamique & semi-conducteurs, à accès aléatoire, dont chaque mot adressable contient E x n bits (m étant un entier supérieur & 1) - un bus parallèle & à ; in conducteurs relié à la mémoire de masse et à une unité de sortie - et un ensemble de traitement relié au bus. 2. Dispositif de traitement numérique en temps réel d'images constituées de pixels répartis en lignes et colonnes et codés sur n bits, transmis en série au dispositif, caractérisé en ce qu'il comprend - une mémoire de masse (18) constituée de boitiers (40) de mémoire dynamique, & semi-conducteurs, à accès aléatoire - un bus parallèle (22) relié i la mémoire de masse et à une unité de sortie ; et - un ensemble de traitement relié au bus. - une mémoire tampon rapide, à accès aléatoire, de capacité inférieure de plusieurs ordres de grandeur à celle de la mémoire de masse, accessible par le bus global; et - un bus local parallèle, ayant le meme nombre de fils que le bus global, accèdant à la mémoire de masse et seul accessible par l'interface d'entrée du dispositif. 3. Dispositif de traitement numérique selon la revendication 2, caractérisé ence que la mémoire de masse est organisée en mots de m x n bits, s étant un entier supérieur à 1. 4. Dispositif de traitement numérique selon la revendication 1, 2 ou 3 caractérisé en ce que l'ensemble de traitement (30) est constitué de plusieurs unités de traitement travaillant en parallèle et capables chacune d'effectuer les différents types d'opérations de traitement requises, chacune sur une zone d'images. 5. Dispositif de traitement numérique selon la revendication 4, caractérisé en ce que chaque unité de traitement (32) traite un bloc de données correspondant à une zone particulière de l'image plus quelques lignes et colonnes de recouvrement avec les zones adjacentes. 6. Dispositif de traitement numérique selon la revendication 5, caractérisé en ce que chaque unité de traitement (32) comporte un interface (56), un séquenceur (58), une unité arithmétique et logique å usage général (60), un multiplieur-accumulateur (62), la mémoire vive privée (34) de stockage intermédiaire des données. 7. Dispositif de traitement numérique selon la revendication 5, caractérisé en ce que chaque unité de traitement effectue toutes les opérations requises sur la zone sans transaction avec le bus global (22). 8. Dispositif de traitement numérique selon la revendication 1 ou 3, caractérisé en ce que la mémoire de masse comporte un code auto-correcteur par mot de n x n bits. 9. Dispositif de traitement numérique selon l'une quelconque des révendications 1 w 8, caractérisé en ce qu'il comporte des moyens d'auto-test par sondage à des adresses aléatoires.