Brevet FR2891388A1 — publié le 20070330

Le domaine de l'invention est celui du traitement d'une image numérique au cours duquel on réalise la même opération pour chaque pixel de l'image. L'invention concerne plus précisément le traitement d'images numériques à des fins de test du capteur CDD ou CMOS ayant servi à acquérir les images, et vise à proposer un système et un procédé permettant d'accélérer un tel traitement, et par conséquent le test des capteurs d'images. On rappelle qu'une image monochrome est constituée de pixels, chaque pixel portant une information d'intensité. Une image couleur est quant à elle obtenue en rendant les pixels sensibles aux couleurs fondamentales à l'aide d'un filtre. Par exemple, l'utilisation d'un filtre de Bayer fournit des pixels alternativement vert, rouge, vert, bleu, vert, rouge, vert, bleu, etc. Un capteur d'image est un dispositif qui permet la transformation d'une image, définie par son intensité lumineuse et sa couleur en chaque pixel, en un signal électrique, typiquement utilisable pour effectuer des traitements de l'image, sa transmission, son archivage, ou encore son affichage sur différents supports de visualisation. Un dispositif photosensible, en général une photodiode ou un photoMOS, est ainsi utilisé pour transformer le flux de photons reçus au niveau d'un pixel, en un flux d'électrons. Ce flux d'électrons est alors accumulé pendant la durée d'exposition dans un condensateur raccordé au pixel. A la fin de la durée d'exposition, la tension, et donc la charge, au borne de ce condensateur est directement transmise à l'extérieur du capteur sous la forme d'une tension (dans la cas d'un capteur CCD, selon l'acronyme anglo-saxon Charge Coupled Device pour dispositif à couplage de charges) ou convertie en un code binaire par un convertisseur analogique/numérique puis transmise sous la forme d'un signal numérique (dans le cas d'un capteur CMOS). L'acquisition des pixels constituant une image est réalisée de manière séquentielle à l'aide d'une carte électronique d'acquisition faisant l'interface entre le capteur CMOS ou CCD à tester et une mémoire destinée à stocker l'image. Le test de chaque capteur consiste à analyser l'image fournie par le capteur, et cela pixel par pixel. Le but de cette analyse est de détecter les pièces défectueuses et de procéder aux réglages nécessaires (mise au point, étalonnage, etc.). L'intensité de chaque pixel peut-être représentée par une grandeur numérique codée selon différent format, entier non signé, entier signé ou flottant signé. Chaque pixel étant représenté par une valeur numérique, une image est donc représentée par un tableau de valeurs. L'analyse de l'image consiste donc à effectuer sur un tableau de valeurs une opération de traitement (c'est-à-dire typiquement une combinaison d'opérations élémentaires) dont le résultat permet de qualifier le bon fonctionnement du capteur. A l'exception de la transformée de Fourier rapide, le traitement d'image consiste à effectuer sur chaque pixel la même combinaison d'opérations élémentaires. On a représenté sur la figure 1, un système 10 de traitement d'images numériques destiné à être utilisé pour tester le capteur 1 ayant servi à l'acquisition des images. Le système 10 comprend un processeur 3, une mémoire 4 et un contrôleur d'accès mémoire 5 interfacé entre le processeur 3 et la mémoire 4. Comme déjà mentionné précédemment, le test consiste à réaliser la même opération pour chacun des pixels composant une image acquise à l'aide du capteur 1. Une carte électronique d'acquisition 2 est typiquement utilisée pour faire le lien entre le capteur 1 et le système 10. La carte 2 est plus précisément raccordée au système 10 par l'intermédiaire d'un bus système 6. La carte 2 transfère, par l'intermédiaire du bus 6, dans la mémoire 4 du système 10 une ou plusieurs images sous forme de tableau de valeurs. Le traitement de l'image est alors réalisé par le processeur 3 du système 10. Toutefois, le traitement peut s'avérer relativement long; sa vitesse est effectivement limitée notamment par la vitesse de traitement de l'unité arithmétique et logique UAL du processeur 3, ainsi que par le débit du bus reliant la mémoire 4 au processeur 3. Le test d'un capteur d'images CMOS/CDD est ainsi une opération longue, et il résulte de ce temps consacré au test un coût conséquent, qui peut représenter jusqu'à 30% du coût total de fabrication d'un capteur. Il existe donc un besoin pour une technique permettant de réduire le coût de fabrication d'un capteur CCD ou CMOS, en diminuant le temps consacré au test du capteur. On notera qu'il a été proposé d'utiliser un système multi-processeurs afin d'accélérer le traitement de l'information en parallélisant ce traitement entre les différents processeurs. Mais les différents processeurs d'une telle carte partage la même mémoire. Les processeurs sont alors en concurrence pour accéder aux données mémorisées, et la bande passante de l'accès mémoire constitue alors un point d'étranglement de tels systèmes limitant la vitesse de traitement. On comprend donc que de tels systèmes ne sont pas totalement satisfaisants. L'invention a pour objectif de répondre au besoin mentionné ci-dessus d'un test rapide d'un capteur d'images CMOS/CDD. A cet effet, l'invention propose, selon un premier aspect, un système de test d'un capteur d'image mettant en oeuvre un traitement d'une image fournie par le capteur au cours duquel on réalise la même opération pour chaque pixel de l'image, caractérisé en ce qu'il comporte une pluralité de modules de traitement, chaque module comprenant: - une mémoire comportant une zone Image dans laquelle l'image est destinée à être stockée; un processeur relié à la mémoire et apte à exécuter ladite opération sur un groupe de pixels de l'image stockée dans la zone Image. Certains aspects préférés, mais non limitatifs, de ce système sont les suivants: - la mémoire de chaque module de traitement comporte en outre une zone Commandes permettant d'indiquer au processeur dudit module le groupe de pixels pour lesquels il doit exécuter l'opération; - les processeurs sont commandés pour chacun exécuter l'opération sur un groupe de pixels différents de l'image; - la mémoire de chaque module de traitement comporte en outre une zone Programme dans laquelle l'opération est stockée sous la forme d'instructions exécutables par le processeur du module; - la mémoire de chaque module de traitement comporte en outre une zone Etats dans laquelle est stocké un état relatif à l'exécution de l'opération par le processeur du module; - le système comporte en outre une carte d'acquisition reliée à la zone Image de chacun des modules de traitement par l'intermédiaire d'un bus image, de manière à assurer le stockage simultané de l'image dans la zone Image de chacun des modules de traitement; - le système comporte en outre une unité centrale reliée à la carte d'acquisition par l'intermédiaire d'un bus système, la carte d'acquisition étant reliée à chaque module par l'intermédiaire d'un bus local de sorte que l'unité centrale puisse, par l'intermédiaire du bus et de chaque bus local, commander le processeur de chaque module de traitement pour qu'il exécute ladite opération, et disposer du résultat de l'exécution de l'opération par le processeur de chaque module; - le capteur du système est un capteur CDD ou CMOS. Selon un deuxième aspect, l'invention propose un procédé de test d'un capteur d'image mettant en oeuvre un traitement d'une image fournie par ledit capteur au cours duquel on réalise la même opération pour chaque pixel de l'image, caractérisé en ce qu'il comporte les étapes consistant à : 2891388 5 stocker ladite image dans une pluralité de modules de traitement; et, dans chacun des modules de traitement, exécuter ladite opération sur un groupe de pixels de ladite image. Certains aspects préférés, mais non limitatifs, de ce procédé sont les suivants: - l'étape de stockage est réalisée de manière simultanée pour chaque module de traitement; - l'étape d'exécution est réalisée de manière simultanée dans chaque module; - le procédé comporte une étape de passation à chaque module de traitement d'un paramètre relatif au groupe de pixels devant être soumis à ladite opération; - le procédé comporte une étape de transmission au cours de laquelle chaque module transmet à une unité centrale un état relatif à la réalisation de l'étape d'exécution; -chaque module transfert ensuite le résultat de ladite étape d'exécution à l'unité centrale. D'autres aspects, buts et avantages de la présente invention apparaîtront mieux à la lecture de la description détaillée suivante de formes de réalisation préférées de celle-ci, donnée à titre d'exemple non limitatif, et faite en référence aux dessins annexés sur lesquels, outre la figure 1 déjà commentée: la figure 2 est un schéma d'un système selon un mode de réalisation possible du premier aspect de l'invention; la figure 3 représente de manière schématique le chargement des images à traiter dans la mémoire de chacun des modules de traitement; la figure 4 représente de manière schématique le traitement d'une image par les différents modules de traitement. D'une manière générale, l'invention propose d'accélérer le traitement d'images provenant de capteurs CMOS ou CCD en multipliant le nombre de processeurs utilisés, et en augmentant proportionnellement le débit entre les processeurs et la mémoire qui contient les images. Comme déjà mentionné précédemment, le traitement est destiné à permettre le test d'un capteur CDD ou CMOS, et consiste à réaliser la même opération (c'est-à-dire la même combinaison d'opérations élémentaires) sur chaque pixel d'une image acquise à l'aide du capteur. Afin d'accélérer le traitement, l'invention propose que chaque processeur effectue cette combinaison d'opérations élémentaires sur une partie de l'image. La vitesse de traitement sera alors multipliée par le nombre de processeurs. Par ailleurs, afin de ne pas être limité par la bande passante d'accès à la mémoire, l'invention prévoit de manière avantageuse que chaque processeur dispose de sa propre mémoire. En référence à la figure 2, on a représenté un mode de réalisation possible d'un système de traitement d'une image numérique conforme au premier aspect de l'invention. Comme pour le système de l'état de la technique illustré sur la figure 1, le système de traitement selon l'invention est relié à une carte d'acquisition 2 permettant d'acquérir les images issues d'un capteur 1 à tester (typiquement un capteur CDD ou CMOS). Le système comprend une unité centrale 20 ainsi qu'une pluralité de modules de traitement MT1-MT4. L'unité centrale 20 dispose d'une architecture similaire à celle du système 10 de la figure 1. L'unité 20 comprend ainsi un processeur 23, une mémoire 24, et un contrôleur d'accès mémoire 25 permettant les échanges de données entre le processeur 23 et la mémoire 24. L'unité 20 est reliée à la carte d'acquisition 2 par l'intermédiaire d'un bus système 26. On notera toutefois qu'à la différence du système 10 de l'état de la technique représenté sur la figure 1, le processeur 23 du système conforme à l'invention n'est aucunement chargé de réaliser le traitement d'une image et la mémoire 24 n'est pas destinée à stocker les images à traiter. Sur la figure 2, par souci de lisibilité, seuls les composants du module MT1 sont représentés, mais on comprendra que les modules de traitement disposent tous de la même architecture. Chaque module de traitement MT1-MT4 comporte en effet: É un processeur P1P4; É une mémoire reliée au processeur par l'intermédiaire d'un contrôleur d'accès mémoire CAM, et comprenant: une zone Image I dans laquelle une image servant au test est destinée à être stockée; une zone Programme P dans laquelle l'opération de test (combinaison d'opérations élémentaires) est stockée sous la forme d'instructions exécutables par le processeur; une zone Commandes C destinée à la passation des commandes entre l'unité centrale 20 et le processeur P1-P4; une zone Etats E destinée à la passation d'états entre le processeur P1-P4 et l'unité centrale 20. On précise ici que les opérations élémentaires peuvent être regroupées sous la forme d'une librairie dans la zone Programme P. Ces opérations sont identiques pour chaque module de traitement de sorte que chaque processeur exécute les mêmes opérations. De manière préférentielle, la zone Image I de chaque module de traitement MT1-MT4 est directement reliée à la carte d'acquisition 2 par l'intermédiaire d'un bus image BI1. II est de la sorte possible de charger simultanément la ou les images à traiter (sous la forme de tableaux de valeurs correspondant aux pixels de l'image à traiter), par l'intermédiaire de chaque bus image BI1-BI4, pour stockage dans chacune des zones Image I des modules de traitement MT1-MT4. La ou les images stockées sont ainsi identiques pour chaque module de traitement. Par ailleurs, un bus local BL1-BL4 permet de relier les zones mémoire Commandes C et Etats E de chacun des modules MT1-MT4 à la carte d'acquisition 2, et de là à l'unité centrale 20 par l'intermédiaire du bus système 26. Chaque processeur est commandé pour exécuter la même fonction de traitement d'image (exécution de l'opération de traitement, c'est-à-dire de la combinaison d'opérations élémentaires) sur un groupe de pixels de l'image, c'est-à-dire sur une fraction de l'image. Chaque processeur exécute à cet effet l'opération chargée sous forme exécutable dans la zone Programme P de la mémoire qui lui est associée. L'exécution d'une même fonction sur des fractions d'image différentes suppose la passation de paramètres par le processeur 23 de l'unité centrale 20, et notamment de paramètres permettant d'adresser la zone d'image à traiter. Ces paramètres sont transmis, au cours d'une étape de passation, à chaque module de traitement MT1-MT4 par l'intermédiaire d'un bus local BL1-BL4 pour stockage dans la zone Commandes C associé au processeur P1-P4 de chaque module de traitement. Ces paramètres permettent notamment d'indiquer au processeur qu'elle est la zone de l'image qu'il doit traiter. Lorsque chaque processeur a exécuté l'opération sur la zone d'image qui lui est attribuée, le traitement est terminé, et le processeur le signale à l'unité centrale 20 par la transmission d'un état. L'état est alors inscrit par le processeur dans la zone Etats E de la mémoire puis transmis à la carte d'acquisition 2 par l'intermédiaire du bus local, la carte 2 signalant alors ledit état à l'unité centrale 20 par l'intermédiaire du bus système 26. L'image traitée ou les résultats du traitement sont alors transférés au processeur de l'unité centrale par l'intermédiaire du bus système. On a représenté de manière schématique sur la figure 3 le chargement par l'intermédiaire des bus image Bli-BI4, depuis la carte d'acquisition 2 vers les différents modules de traitement MT1-MT4, des images à traiter Il-13 pour réaliser le test du capteur 1. Les images 11-13 sont alors simultanément stockées dans la zone Image I de la mémoire de chacun des modules de traitement MT1-MT4. En d'autres termes, on envoie simultanément à chaque module de traitement les mêmes données image, ce qui peut être réalisé un temps d'exécution relativement court. En particulier, un tel fonctionnement ne nécessite pas de réaliser un tri dans le flux des images provenant du capteur 1 testé. Les processeurs P1-P4 des modules de traitement MT1-MT4 exécutent ensuite simultanément l'opération (chargée dans chaque zone Programme P des modules de traitement) de traitement de la ou des images 11-13 stockées dans chaque zone Image I des modules de traitement. Chaque processeur est pour cela commandé par l'unité centrale 20, la zone Commandes C de la mémoire permettant la passation des commandes par le bus local. En particulier, la zone Commandes C permet de passer au processeur un paramètre lui indiquant le groupe de pixels de l'image qu'il doit traiter. Par ailleurs, on comprend qu'en ayant doté chaque processeur de sa propre mémoire, on maximise la vitesse de traitement de la ou des images. On a représenté de manière schématique sur la figure 4 le traitement d'une image Il par les différents modules de traitement MT1-MT4. Les processeurs P1-P4 sont chacun commandés pour exécuter l'opération de traitement (chargée dans la zone Programme P de la mémoire qui leur est associée) sur un groupe de pixels différents de l'image Il, c'est-à-dire une fraction différente de l'image. Comme cela est représenté sur la figure 4, le processeur PI exécute l'opération de traitement sur une fraction (groupe de pixels) a de l'image Il, le processeur P2 sur une fraction b, le processeur P3 sur une fraction c de l'image Il et le processeur P4 sur une fraction d. Bien entendu, de manière avantageuse, l'union des fractions a, b, c et d représente l'image Il entière, et le traitement simultané de ces différentes fractions a, b, c, d de l'image I, par les différents modules permet donc de traiter totalement cette image. Une fois le traitement d'une fraction de l'image réalisé par un processeur P1-P4, celui-ci transmet un état indiquant la réalisation du traitement par l'intermédiaire du bus local BL1-BL4 à la carte 2, qui se charge de signifier cet état à l'unité centrale 20 par l'intermédiaire du bus système 26. L'image traitée, ou les résultats du traitement, sont ensuite transférées au processeur 23 de l'unité central 20 par l'intermédiaire du bus système 26. ll REVENDICATIONS 1. Système de test d'un capteur d'image (1) mettant en oeuvre un traitement d'une image (I1-13) fournie par le capteur (1) au cours duquel on réalise la même opération pour chaque pixel de l'image, caractérisé en ce qu'il comporte une pluralité de modules de traitement (MT1-MT4), chaque module comprenant: une mémoire comportant une zone Image (I) dans laquelle l'image est destinée à être stockée; - un processeur (P1-P4) relié à la mémoire et apte à exécuter ladite opération sur un groupe de pixels de l'image stockée dans la zone Image (I). 2. Système selon la revendication précédente, caractérisé en ce que la mémoire de chaque module de traitement (MT1-MT4) comporte en outre une zone Commandes (C) permettant d'indiquer au processeur (P1-P4) dudit module (MT1-MT4) le groupe de pixels (a, b, c, d) pour lesquels il doit exécuter ladite opération. 3. Système selon l'une des revendications précédentes, caractérisé en ce que les processeurs (P1-P4) sont commandés pour chacun exécuter ladite opération sur un groupe de pixels différents (a, b, c, d) de l'image. 4. Système selon l'une des revendications précédentes, caractérisé en ce que la mémoire de chaque module de traitement (MT1-MT4) comporte en outre une zone Programme (P) dans laquelle ladite opération est stockée sous la forme d'instructions exécutables par le processeur (P1-P4) dudit module (MT1-MT4). 5. Système selon l'une des revendications précédentes, caractérisé en ce que la mémoire de chaque module de traitement (MT1-MT4) comporte en outre une zone Etats (P) dans laquelle est stocké un état relatif à l'exécution de l'opération par le processeur dudit module. 6. Système selon l'une des revendications précédentes, caractérisé en ce qu'il comporte en outre une carte d'acquisition (2) reliée à la zone Image (I) de chacun des modules de traitement (MT1-MT4) par l'intermédiaire d'un bus image (BI1-BI4), de manière à assurer le stockage simultané de l'image dans la zone Image (I) de chacun des modules de traitement (MT1-MT4). 7. Système selon la revendication précédente, caractérisé en ce qu'il comporte en outre une unité centrale (20) reliée à la carte d'acquisition (2) par l'intermédiaire d'un bus système (26), la carte d'acquisition étant reliée à chaque module par l'intermédiaire d'un bus local (BL1-BL4) de sorte que l'unité centrale puisse, par l'intermédiaire du bus système (26) et de chaque bus local (BL1-BL4), commander le processeur de chaque module de traitement pour qu'il exécute ladite opération, et disposer du résultat de l'exécution de l'opération par le processeur de chaque module. 8. Système selon l'une quelconque des revendications précédentes caractérisé en ce que le capteur est un capteur CDD ou CMOS. 9. Procédé de test d'un capteur d'image (1) mettant en ceuvre un traitement d'une image (Il-13) fournie par ledit capteur (1) au cours duquel on réalise la même opération pour chaque pixel de l'image, caractérisé en ce qu'il comporte les étapes consistant à : stocker ladite image (I1-13) dans une pluralité de modules de traitement (MT1-MT3) ; et, dans chacun des modules de traitement, exécuter ladite opération sur un groupe de pixels (a, b, c, d) de ladite image. 10. Procédé selon la revendication 9, caractérisé en ce que l'étape de stockage est réalisée de manière simultanée pour chaque module de traitement. 11. Procédé selon l'une des revendications 9 ou 10, caractérisé en ce que l'étape d'exécution est réalisée de manière simultanée dans chaque module. 12. Procédé selon l'une des revendications 9 à 11, caractérisé en ce qu'il comporte une étape de passation à chaque module de traitement d'un paramètre relatif au groupe de pixels devant être soumis à ladite opération. 13. Procédé selon l'une des revendications 9 à 12, caractérisé en ce qu'il comporte une étape de transmission au cours de laquelle chaque module transmet à une unité centrale un état relatif à la réalisation de l'étape d'exécution. 14. Procédé selon la revendication précédente, caractérisé en ce chaque module transfère ensuite le résultat de ladite étape d'exécution à l'unité centrale.