Brevet FR2986352A1 — publié le 20130802

Procédé de recherche de pixels dans une matrice et circuit mettant en oeuvre le procédé Domaine technique de l'invention L'invention est relative à un circuit de recherche d'une donnée dans un premier état à l'intérieur d'une matrice comportant des données dans un 10 deuxième état. L'invention est également relative à un procédé de recherche d'une donnée dans un premier état à l'intérieur d'une matrice comportant des données dans un deuxième état. 15 État de la technique 20 Les dispositifs de détection d'un rayonnement électromagnétique peuvent être utilisés pour l'observation d'une scène et plus particulièrement pour le suivi d'un élément particulier d'une scène. Par exemple, un élément particulièrement lumineux peut être suivi à l'intérieur d'une scène plus sombre. 25 L'élément lumineux est représenté dans la matrice de pixels du dispositif de détection par un pixel ou un groupe de pixels qui présentent une valeur égale à 0 ou égale à 1 alors que le reste de la scène est dans un état opposé. A titre d'exemple, l'élément lumineux est représenté par un pixel à l'état haut 30 « 1 » alors que le reste de la matrice est à l'état bas « 0 ». De cette manière, le déplacement de l'élément lumineux est rendu possible en suivant la position du pixel ou du groupe de pixels à l'état haut à l'intérieur de la matrice. Si l'élément lumineux se déplace rapidement, il est intéressant de déterminer rapidement la position du pixel à l'intérieur de la matrice. A titre d'exemple, si le détecteur comporte 100000 pixels et que la résolution temporelle du détecteur est égale à 100ps, le débit de données brutes est de un milliard d'informations binaires par seconde. Il est alors nécessaire d'avoir un système de recherche présentant une bande passante importante pour traiter ce flux de données ce qui implique une consommation énergétique importante. Dans les dispositifs mobiles, il est nécessaire de maîtriser la consommation électrique des différents circuits embarqués. Il en résulte que les données émises par le photodétecteurs doivent être compressées afin d'atteindre un débit raisonnable et limiter la consommation globale de cette partie du dispositif mobile. De manière conventionnelle, la recherche de pixels atypiques dans une matrice de pixels est réalisée de façon récursive en divisant la matrice M en une pluralité de sous-matrices 51, S2, S3 et S4. La matrice initiale M est divisée en plusieurs sous-matrices S et chaque sous-matrice S est testée afin de déterminer si elle contient ou non un pixel atypique. Quand une sous-matrice S est détectée comme contenant un pixel atypique, cette sous-matrice est considérée être la nouvelle matrice et cette nouvelle matrice est divisée comme précédemment en une pluralité de sous-matrices, par exemple S31, S32, S33, S34. Cette technique permet de déterminer la position d'un pixel atypique dans la matrice, mais au prix d'un procédé extrêmement complexe à mettre en oeuvre et très consommateur en énergie. Un tel mode de mise en oeuvre est illustré à la figure 1 et dans le document US2003209650. Objet de l'invention On constate qu'il existe un besoin de prévoir un procédé de recherche de la position d'une donnée dans un premier état à l'intérieur d'une matrice majoritairement composée de données dans un second état. On tend à combler ce besoin au moyen d'un procédé de recherche qui comporte, dans une matrice de données décomposée en une pluralité de lignes de données munies chacune de noeuds stockant lesdites données : réaliser un premier test sur une ligne de données de manière globale afin de déterminer si elle contient une donnée dans le premier état et envoyer un code représentatif de ce test dans un récepteur, le premier test envoyant un premier code lorsque la ligne de données comporte une donnée dans le premier état, et envoyant un deuxième code dans l'autre cas, réaliser un deuxième test pour tester individuellement les noeuds de la ligne de données associée à un premier code, le deuxième test envoyant un troisième code lorsque le noeud comporte une donnée dans le premier état et envoyant un quatrième code dans l'autre cas, les résultats du deuxième test étant envoyés dans le récepteur. On constate également qu'il existe un besoin de prévoir un circuit de recherche qui soit en mesure de déterminer la position d'une donnée dans un premier état à l'intérieur d'une matrice de données majoritairement composée de données dans un second état. On tend à combler ce besoin au moyen d'un circuit qui comporte : la matrice de données organisées selon une pluralité de lignes de données, chaque ligne comportant une pluralité de noeuds de stockage de données, chaque noeud de stockage étant configuré pour stocker un premier état ou un deuxième état, les noeuds de stockage étant majoritairement dans le deuxième état, un premier circuit de test de l'état d'une ligne de données, le premier circuit de test étant configuré pour déterminer si la ligne testée est dépourvue de noeud de stockage dans le premier état ou si la ligne testée comporte au moins un noeud de stockage dans le premier état, le premier circuit envoyant un premier code si la ligne comporte au moins un noeud dans un premier état ou un deuxième code si la ligne est dépourvue de noeud de stockage dans le premier état, un deuxième circuit de test de l'état des noeuds de stockage dans une ligne de données, le deuxième circuit de test étant configuré pour envoyer un troisième code si le noeud de stockage est dans le premier état ou un quatrième code si le noeud de stockage est dans le deuxième état, le deuxième circuit de test étant configuré pour tester une ligne de données lorsque le premier circuit de test à envoyé un premier code relatif à ladite ligne, un récepteur configuré pour recevoir le résultat du premier circuit de test pour chaque ligne testée et pour recevoir le résultat du deuxième circuit de test pour des noeuds de stockage. Description sommaire des dessins D'autres avantages et caractéristiques ressortiront plus clairement de la description qui va suivre de modes particuliers de réalisation de l'invention donnés à titre d'exemples non limitatifs et représentés aux dessins annexés, dans lesquels : la figure 1 représente, de manière schématique, un procédé de recherche dans un circuit de détection selon l'art antérieur, la figure 2 représente, de manière schématique, un circuit de recherche, la figure 3 représente, de manière synoptique, un premier mode de fonctionnement d'un circuit selon la figure 2, la figure 4 représente, de manière synoptique, un second mode de fonctionnement d'un circuit selon la figure 2, la figure 5 représente, de manière schématique, une variante de mise en oeuvre d'un circuit de recherche. Description de modes de réalisation préférentiels de l'invention Dans une matrice de données M, par exemple une matrice de pixels, les informations sont organisées selon une pluralité de lignes de données L. La matrice de données M peut représenter l'intégralité d'une matrice initiale ou une partie d'une matrice initiale. De manière avantageuse, les données sont organisées en rangées ou en colonnes. Une ligne L peut correspondre à une rangée de la matrice M ou à une colonne de la matrice M. Une ligne L peut également correspondre à une partie d'une rangée ou à une partie d'une colonne de la matrice M. Dans encore un autre mode de mise en oeuvre une ligne peut correspondre à plus d'une rangée ou plus d'une colonne de la matrice M. Dans ce cas de figure, une rangée ou une colonne de la matrice ne correspond pas obligatoirement à une ligne L mais à une pluralité de lignes en fonction du découpage réaliser dans la matrice M. A titre d'exemple, une rangée ou une colonne est découpée en deux, trois ou quatre sous-ensembles qui forment chacun une ligne. La matrice de données M peut être découpées selon différents critères afin de l'organiser en une pluralité de lignes de données. Chaque ligne L comporte une pluralité de noeuds de stockage de données. Un noeud de stockage réalise la conservation de la donnée unitaire à l'intérieur de la matrice. Le noeud de stockage peut être un pixel si la matrice gère des images. Le noeud de stockage contient une information binaire de type 0 ou 1, ou état haut et état bas. De manière plus générale, un premier état ou un second état est stocké dans le noeud de stockage. Le premier état peut être un état haut ou un état bas ou un état 0 ou un état 1. Le second état est différent du premier état. Afin de déterminer rapidement la position du ou des pixels dans un premier état à l'intérieur d'une matrice de pixels majoritairement dans un second état, il est avantageux d'utiliser un circuit de recherche qui détermine rapidement quel pixel est dans un premier état et quelle position est occupée par ce pixel dans la matrice M. Le terme pixel est utilisé à la place de noeud de stockage afin de faciliter la compréhension d'un tel circuit et d'un tel procédé dans le cas d'une analyse d'image. Cependant, l'homme du métier gardera à l'esprit que ce mode de réalisation peut être généralisé à d'autres domaines techniques pour lesquels, il est intéressant de rechercher des données se trouvant dans un état différent et minoritaire par rapport au reste de la matrice. La matrice M présente un nombre non négligeable de lignes comportant exclusivement des pixels dans le second état. Par matrice majoritairement dans le second état, on entend une matrice ayant au moins 90% des données dans le second état et 10% des données dans le premier état. Le circuit de recherche est particulièrement intéressant lorsque la matrice comporte moins de 1% de données dans le premier état. Le circuit de recherche comporte un premier circuit de test 1 de l'état d'une ligne de données L de la matrice M. Le premier circuit de test est configuré pour déterminer si la ligne L testée est dépourvue de noeud de stockage dans le premier état ou si la ligne L testée comporte au moins un noeud de stockage dans le premier état. Le premier circuit de test 1 réalise une analyse de l'intégralité de la ligne de données L sans analyser indépendamment les différents pixels contenus. Le premier circuit de test 1 envoie un premier code A ou un deuxième code B en fonction du résultat du test. Le premier circuit de test 1 envoie le premier code A si la ligne de données L testée comporte au moins un pixel dans un premier état. Le premier circuit de test 1 envoie le deuxième code B si la ligne L est dépourvue de pixel dans le premier état, c'est-à-dire si la ligne L ne contient que des pixels dans le second état. Le résultat envoyé est codé sur un nombre de bits inférieur aux nombre de noeuds définissant la ligne ce qui implique une compression de l'information. Ainsi, le premier code A et le deuxième code B représentent un nombre de bits inférieur aux nombre de noeuds définissant la ligne. De manière avantageuse, le premier code A et le deuxième code B sont codés sur un bit de manière à avoir une compression maximale sans perte d'information. Si le résultat envoyé est le deuxième code B, la ligne est entièrement définie avec un nombre de bits inférieur au nombre de noeuds définissant la ligne. De cette manière, un premier test rapide est réalisé ligne par ligne ce qui permet de tester l'intégralité de la matrice M dans une période réduite dans le cas particulier où le nombre de pixels dans le premier état est très faible. De manière avantageuse, la ligne L est une rangée si il existe moins de rangées que de colonnes et inversement la ligne L est une colonne si il existe plus de rangées que de colonnes. De cette manière, le test de l'intégralité de la matrice M est minimal. De manière avantageuse, les lignes sont testées consécutivement, suivant une séquence connue. A titre d'exemple les lignes sont testées lignes après lignes en suivant une direction Y de test des lignes depuis une extrémité de la matrice M jusqu'à l'extrémité opposée de la matrice M. De cette manière, il n'est pas nécessaire d'assigner un code représentant la position de la ligne L à l'intérieur de la matrice M. La position du premier code A ou du deuxième code B représentatif de l'état de la ligne à l'intérieur du signal compressé transitant dans le circuit de recherche permet de déterminer rapidement la position de la ligne L et son état. D'autres séquences de tests sont possibles, par exemple de manière avantageuse, les premières lignes testées sont choisies dans des zones de la matrice considérées comme prioritaires car elles présentent une plus grande probabilité d'avoir un pixel dans le premier état. Le circuit de recherche comporte un deuxième circuit de test 2 de l'état des noeuds de stockage dans une ligne de données L. Le deuxième circuit de test 2 est configuré pour tester l'état des pixels à l'intérieur de la ligne de données. Le deuxième circuit de test 2 est configuré pour envoyer un troisième code C si le pixel est dans le premier état ou un quatrième code D si le pixel est dans le deuxième état. De manière avantageuse, le deuxième circuit de test 2 est configuré pour tester une ligne de données lorsque le premier circuit de test 1 a envoyé un premier code A relatif à cette ligne L. En effet, afin de gagner du temps et de l'énergie, le résultat du premier test indique si la ligne L contient ou non au moins un pixel dans le premier état.30 Si le résultat du premier test indique que la ligne L ne comporte pas de pixel dans le premier état (deuxième code B), il apparaît comme superflu de réaliser un second test plus long qui doit donner le même résultat. En éliminant ce deuxième test, la ligne est caractérisée par un simple code (le code B) indiquant que tous les pixels sont dans le second état. Dans un mode de réalisation préférentiel, durant le deuxième test, les pixels sont testés consécutivement selon une direction de test X de pixels dans une ligne. Cette particularité permet de ne pas obligatoirement associer un code relatif à la position du pixel dans la ligne avec le code relatif à l'état du pixel. De cette manière, le signal transitant dans le circuit de recherche est fortement compressé et sans perte de données. De manière encore plus préférentielle, la direction de test est identique pour toutes les lignes de la matrice ce qui facilite l'analyse du signal. Dans un mode de réalisation pouvant être combiné avec les précédents, le deuxième circuit de test 2 analyse toute la ligne de pixels L. Ainsi, le circuit de test 2 envoie un troisième code C ou un quatrième code D associé à chaque pixel de la ligne. Il y a donc autant de troisième et quatrième codes que de pixels dans la ligne de données L. Ce mode de réalisation permet en plus de ne pas utiliser un code supplémentaire pour indiquer la fin de ligne car le circuit de recherche peut comporter une zone mémoire (non représentée) dans laquelle est indiqué le nombre de pixels pour chaque ligne de données L. Dans une variante du mode de réalisation précédent, le deuxième circuit de test analyse la ligne de pixels jusqu'à ce qu'un pixel soit détecté dans le premier état. Ainsi, le circuit de test envoie un ou plusieurs quatrièmes codes D puis un troisième code C représentatif du premier pixel de la ligne L se trouvant dans le premier état. Ce troisième code C sert également de code pour indiquer que l'information suivante est relative à une autre ligne de données L. Ce mode de réalisation est particulièrement avantageux lorsque la proportion de pixels dans le premier état est faible, par exemple de l'ordre de quelques unités ou quelques dizaines d'unités par matrice ce qui implique que la probabilité d'avoir deux pixels, d'une même ligne L, dans le premier état est nulle ou quasi-nulle. Ce mode de réalisation affecte peu ou pas un ensemble de pixels adjacents dans le premier état dans une même ligne car un bord de ce motif est détecté ce qui permet de suivre un motif lumineux ou sombre qui occupe plus d'un pixel dans la ligne de données. Dans un mode de réalisation particulier, il est possible de réaliser la recherche avec ces deux variantes de réalisation décalées dans le temps, afin par exemple, de définir la surface occupée par un ou plusieurs pixels dans le premier état. Un test complet de la ligne peut être réalisé, puis un ou plusieurs tests réduits de la ligne sont réalisables lors des phases d'acquisition suivantes. Cet enchainement peut être réalisé de manière cyclique avec une période prédéfinie. Le circuit de recherche comporte un dispositif de réception 3 des données envoyées par le premier circuit de test 1 et le deuxième circuit de test 2. Ce dispositif de réception également appelé récepteur 3 est connecté au premier et au deuxième circuits de tests de manière à recevoir le résultat du premier circuit de test 1 pour chaque ligne de données L et pour recevoir le résultat du deuxième circuit de test 2 pour des noeuds de stockage. Le récepteur contient le signal ou une partie du signal représentatif de l'analyse de la matrice de données M. Ce signal peut être transmis à un circuit de calcul 4 qui analyse l'information représentative de la matrice M. Ce signal est compressé et peut être, selon les modes de réalisation, sans perte de données, c'est-à-dire que tous les pixels ont été caractérisés et qu'il y a association de l'état du pixel avec sa position dans la matrice M. Le signal généré comporte au moins autant de codes que de lignes analysées. Il peut comporter également une pluralité de codes relatifs à l'analyse complète ou partielle des lignes comportant un pixel dans le premier état. Le test des lignes de données et des pixels des lignes L peut être réalisé de différentes manières. Dans un premier mode de réalisation pouvant être combiné avec les modes de réalisation précédents, le premier circuit de test 1 effectue l'analyse de toutes les lignes de données L et cette information est envoyée dans le récepteur 3. Cette première analyse permet de définir une première portion de signal représentant une analyse rapide de la matrice M. Un code représentatif de la fin de cette analyse peut être introduit dans le récepteur 3. Le code peut également être éliminé si le circuit de calcul recevant ce signal connaît le nombre de lignes définissant la matrice M. Ensuite, le deuxième circuit de test 2 effectue l'analyse des différentes lignes L pour lesquelles un premier code A a été associé afin de former la deuxième portion du signal. Les morceaux du signal représentatifs du test plus précis des différentes lignes L sont ajoutés dans le récepteur 3 dans l'ordre d'apparition de leur ligne L associée dans la première portion du signal afin de faciliter l'analyse. Dans ce cas de figure, le signal comporte une première portion représentative de l'analyse rapide de la matrice suivie d'une deuxième portion représentative d'une analyse plus précise des différentes lignes possédant un pixel dans le premier état. A titre d'exemple, la matrice M illustrée à la figure 2 est analysée pour rechercher les pixels atypiques. Les pixels atypiques sont représentés hachurés dans la matrice M. Durant le premier test, les lignes L sont analysées individuellement et dans leur globalité. La première ligne Ll est dépourvue de pixel dans le premier état, le résultat du test renvoie le code B dans le récepteur 3. La deuxième ligne L2 comporte au moins un pixel dans le premier état, le résultat du test renvoie le code A dans le récepteur 3. Les lignes L3 et L4 sont dépourvues de pixel dans le premier état, le résultat du test renvoie successivement deux codes B dans le récepteur 3. La ligne L5 comporte au moins un pixel dans le premier état, le résultat du test renvoie le code A dans le récepteur 3. Les lignes L6 et L7 sont dépourvues de pixel dans le premier état, le résultat du test renvoie successivement deux codes B dans le récepteur 3. La première portion du signal définie par le premier test de la matrice, peut d'écrire de la manière suivante : BABBABB. Le deuxième test est ensuite réalisé. Comme la ligne L-I est dépourvue de pixel atypique, le deuxième test est facultatif. Le deuxième test est réalisé sur la deuxième ligne L2. Les deux premiers pixels sont dans le second état, le deuxième test renvoie successivement deux codes D dans le récepteur 3. Le troisième pixel est dans le premier état, le deuxième test renvoie le code C dans le récepteur 3. Le reste des pixels de la ligne est dans le second état, le deuxième test renvoie ici neuf codes D dans le récepteur 3. Les lignes L3 et L4 ne sont avantageusement pas testées. La ligne L5 est soumise au deuxième test. Le résultat de ce test se traduit par la présence de cinq codes D représentant les cinq premiers pixels dans le deuxième état, un code C pour le pixel dans le premier état et six codes D pour le reste des pixels de la ligne dans le deuxième état. Le signal entré dans le récepteur peut donc s'écrire de la manière suivante : BABBABB DDCDDDDDDDDD DDDDDCDDDDDD Le signal est dépourvu d'espace, ces derniers permettant seulement de mieux comprendre visuellement le découpage du signal entre les différents tests. Dans une variante de mise en oeuvre du précédent mode de réalisation, le premier circuit de test 1 effectue l'analyse de toutes les lignes de données L et le deuxième circuit de test 2 réalise l'analyse de la ligne de données si elle possède un pixel dans le premier état et avant que le premier circuit de test 1 réalise l'analyse de la ligne L suivante. De cette manière, dans le récepteur, le premier code A représentatif d'une ligne L possédant un pixel dans le premier état est suivi d'un ou plusieurs troisième code C et quatrième code D représentatifs de l'analyse plus précise de la ligne L. Une fois cette analyse terminée, le récepteur comporte le résultat de l'analyse de la ligne suivante par le premier circuit de test avec un premier code A ou un seconde code B. A titre d'exemple, la matrice M illustrée à la figure 2 est analysée pour rechercher les pixels atypiques. Les pixels atypiques sont représentés hachurés dans la matrice M. Durant le premier test, les lignes L sont analysées individuellement et dans leur globalité. La première ligne Ll est dépourvue de pixel dans le premier état, le résultat du test renvoie le code B dans le récepteur 3. Comme la ligne L1 est dépourvue de pixel atypique, le deuxième test est facultatif. La deuxième ligne L2 comporte au moins un pixel dans le premier état, le résultat du test renvoie le code A dans le récepteur 3. Le deuxième test est réalisé sur la deuxième ligne L2. Les deux premiers pixels sont dans le second état, le deuxième test renvoie successivement deux codes D dans le récepteur 3. Le troisième pixel est dans le premier état, le deuxième test renvoie le code C dans le récepteur 3. Le reste des pixels de la ligne est dans le second état, le deuxième test renvoie ici neuf codes D dans le récepteur 3. Le test des deux premières lignes peut s'écrire de la manière suivante : BA DDCDDDDDDDDD. Les lignes L3 et L4 sont dépourvues de pixel dans le premier état, le résultat du test renvoie successivement deux codes B dans le récepteur 3. La ligne L5 comporte au moins un pixel dans le premier état, le résultat du test renvoie le code A dans le récepteur 3. La ligne L5 est soumise au deuxième test. Le résultat de ce test se traduit par la présence de cinq codes D représentant les cinq premiers pixels dans le deuxième état, un code C pour le pixel dans le premier état et six codes D pour le reste des pixels de la ligne dans le deuxième état. Les lignes L6 et L7 sont dépourvues de pixel dans le premier état, le résultat du test renvoie successivement deux codes B dans le récepteur 3. Le signal définissant la matrice, peut s'écrire de la manière suivante : BA DDCDDDDDDDDD BBA DDDDDCDDDDDD BB Dans le cas d'une analyse partielle de la ligne jusqu'à détecter un premier pixel dans le premier état, le premier mode de mise en oeuvre définit le signal suivant : BABBABB DDC DDDDDC Le deuxième mode de mise en oeuvre définit le signal suivant : BA DDC BBA DDDDDC BB Ces deux modes de fonctionnement du circuit de recherche peuvent être représentés par des schémas synoptiques illustrés aux figures 3 et 4. Durant une première étape F1 du procédé de recherche, le premier circuit de test 1 vérifie si dans une ligne (une rangée ou une colonne ou une partie de rangée ou colonne d'une matrice initiale), c'est-à-dire dans un premier ensemble de pixels de la matrice M, il existe au moins un pixel qui est dans un premier état, c'est-à-dire dans l'état recherché. Le test est réalisé de manière globale sans rechercher la valeur unitaire de chaque pixel. Le test réalise l'analyse de l'intégralité de la ligne de données, c'est-à-dire de la ligne dans son ensemble. Le résultat de cette analyse est envoyé dans le récepteur 3. L'étape F1 est ensuite recommencée pour les autres lignes L de la matrice M et le résultat des différents tests de ligne est enregistré dans le récepteur 3. L'information présente dans le récepteur est ensuite analysée afin de détecter quelle ligne L comporte un pixel dans le premier état, c'est-à-dire quelle ligne est caractérisée par un premier code A dans le récepteur. Cette analyse permet de choisir les lignes à analyser par le second circuit de test 2. L'information fournit par le premier circuit de test 1 peut également être associée à la ligne ou au deuxième circuit de test 2 afin de déclencher le deuxième test sans passer par l'analyse du récepteur. Dans une étape F2, le deuxième test est réalisé afin d'analyser les pixels de la ligne caractérisée par le premier code A. Le résultat de cette analyse est envoyé dans le récepteur 3. Le deuxième test permet de réaliser une analyse des différents noeuds de la ligne étudiée. Ce deuxième test est en mesure de discriminer la valeur particulière prise par chaque noeud dans la ligne et de remonter cette information dans le récepteur au moyen d'un code associé. Comme indiqué plus haut, le test de la ligne peut être complet ou partiel. Si plusieurs lignes comportent des pixels dans le premier état, l'étape F2 est répétée pour chacune des lignes caractérisées par le premier code A. L'ensemble des données des tests est envoyé dans le récepteur 3. Par la suite le récepteur peut être transmis au circuit de calcul 4 qui va traiter cette information et il est également possible de modifier la matrice de données M afin de recommencer la recherche. A titre d'exemple, une nouvelle acquisition de données peut être réalisée et ces données sont envoyées dans la matrice M afin de rechercher de nouvelles données dans le premier état. Dans une variante de réalisation illustrée schématiquement à la figure 4, durant une première étape F1 du procédé de recherche, le premier circuit de test 1 vérifie si dans une ligne (une rangée ou une colonne ou une partie de rangée ou de colonne d'une matrice initiale), c'est-à-dire dans un premier ensemble de pixels de la matrice M, il existe au moins un pixel qui est dans un premier état, c'est-à-dire dans l'état recherché. Le résultat de cette analyse est envoyé dans le récepteur 3. Le récepteur est ensuite analysé afin de détecter si la ligne venant d'être testée comporte un pixel dans le premier état. Si le résultat du test est le premier code A, la ligne comporte au moins un pixel dans le premier état et le second test de l'étape F2 est déclenché. Si le résultat du premier test est un second code B, la ligne est dépourvue de pixel dans le premier état et l'étape F1 est réalisée sur la ligne de données suivante. Le déclenchement de l'étape F2 peut être réalisé avec l'analyse du récepteur 3 ou en connectant le premier circuit de test 1 au second circuit de test 2 de sorte que l'émission d'un premier code A en sortie du premier circuit de test déclenche l'analyse de la ligne L par le second circuit de test 2. D'autres moyens de mise en oeuvre de cette succession de tests sont possibles. Dans une étape F2, le second test est réalisé afin d'analyser les pixels de la ligne 2 caractérisée par le premier code A. Le résultat de cette analyse est envoyé dans le récepteur 3. Comme indiqué plus haut, le test de la ligne peut être complet ou partiel. L'étape F1 est ensuite recommencée pour la ligne suivante de la matrice. Par la suite le récepteur peut être transmis à un circuit de calcul 4 qui va traiter cette information et il est également possible de modifier la matrice de données afin de recommencer la recherche. A titre d'exemple, une nouvelle acquisition de données peut être réalisée et ces données sont envoyées dans la matrice afin de rechercher de nouveaux pixels dans le premier état. Dans un mode de réalisation particulier, l'intégralité des pixels de la ligne est testée et le résultat de ce test est écrit dans le récepteur. De cette manière, lorsqu'un premier code A est écrit dans le récepteur, il est suivi par une suite de troisième C code et de quatrième code D. Le nombre de troisième C et quatrième D codes mis en série est égal au nombre de pixels présents dans la ligne étudiée. Ainsi, bien que la taille du signal varie dans le temps en fonction du nombre de pixels dans le premier état, le circuit de calcul analyse ces informations sans avoir besoin de codes supplémentaires indiquant une fin de ligne.30 La recherche du ou des pixels dans le premier état peut être réalisée par toute technique adaptée. A titre d'exemple, dans le cas où le nombre de pixels dans une ligne est constant dans la matrice, il est possible de faire la somme des informations stockées dans une ligne et de comparer cette valeur à une valeur représentative du résultat attendu, par exemple N*0 si la ligne comporte N pixels. Ce résultat peut être obtenu en comparant chaque pixel à une valeur seuil et en incrémentant un récepteur en fonction du résultat de la comparaison. Dans le cas où le nombre de pixels dans une ligne varie entre les lignes ou lorsque cette information n'est pas remontée au circuit de recherche, il est possible de faire la somme ou le produit des valeurs des différents pixels d'une ligne. Le choix de l'opérateur mathématique est choisi en fonction de l'information recherchée. Le test de la ligne peut être réalisé au moyen d'un opérateur de type OU ou d'un opérateur de type ET. Si le premier état est un niveau 1, on peut utiliser une addition des différents pixels (opérateur OU) afin de détecter au moins un pixel à l'état 1 dans une ligne de pixels à l'état O. Si le premier état est un niveau 0, on peut utiliser une multiplication des différents pixels (opérateur ET) afin de détecter au moins un pixel à l'état 0 dans une ligne de pixels à l'état 1. De manière avantageuse, le premier code A et le deuxième code B sont codés sur un bit afin de définir simplement l'état d'une ligne de données et obtenir un maximum de compression. Le premier code A est différent du deuxième code B. De manière avantageuse, le troisième code C et le quatrième code D sont codés sur un bit afin de définir simplement l'état du pixel et obtenir le maximum de compression. Le troisième code C est différent du quatrième code D. De manière avantageuse, lorsque le récepteur stocke des informations de manière binaire, le premier code A est identique au troisième code C et le deuxième code B est identique au quatrième code D. Dans le cas présent, à titre d'exemple, le code « 1 » représente le premier code A et le troisième code C. Le code « 1 » indique que la ligne comporte un pixel dans le premier état ou que le pixel testé est dans le premier état. Cette différentiation est réalisée par le circuit d'analyse en fonction de la position de ce code à l'intérieur du récepteur. De la même manière, le code « 0 » représente le deuxième code B et le quatrième code D. Le code « 0 » indique que la ligne est dépourvue de pixel dans le premier état et que le pixel est dans le second état. Cependant, il est également possible d'avoir un premier code A est identique au quatrième code D et le deuxième code B est identique au troisième code C. Le circuit de recherche est alors légèrement modifié par exemple en utilisant un inverseur supplémentaire. Dans le mode de réalisation avec analyse partielle de la ligne, les occurrences impaires de codes « 1 » sont relatives aux lignes comportant des pixels dans le premier état. Les occurrences paires de codes « 1 » sont représentatives du pixel dans le premier état à l'intérieur de la ligne. Dans ce mode de réalisation, comme on considère qu'une ligne ne peut pas avoir deux pixels dans le premier état. Le premier code « 1 » (ou les occurrences impaires) indique que la ligne présente un pixel dans le premier état. Le deuxième code « 1 » (ou les occurrences paires) indique la position du pixel dans la ligne et signifie également que l'analyse de la ligne est terminée. Ainsi, le prochain code « 1 » (occurrence impaire) est relatif à une autre ligne. De cette manière, il est possible de manière simple et rapide d'identifier les pixels dans le premier état à l'intérieur de la matrice de pixels et de donner facilement leur position. Le signal représentant la matrice est très compressé et plus facile à mettre en oeuvre que les enseignements de l'art antérieur. Dans une variante de réalisation, une rangée (ou une colonne) de données est décomposée en une pluralité de lignes. Par exemple, la rangée de données comporte trois lignes. Durant le premier test, les lignes sont analysées afin de déterminer quelle ligne possède un pixel dans le premier état et quelle ligne en est dépourvue. Selon le résultat de ce premier test, les lignes sont analysées ou non avec le second test afin de déterminer la position des pixels dans le premier état. Dans un mode de mise en oeuvre particulièrement avantageux, les données du premier test et du second test sont interlacées pour faciliter l'intégration de ce mode de réalisation dans un circuit ayant une architecture simple. Dans le cas particulier où le circuit est configuré pour lire une ligne représentant une partie de rangée ou une partie de colonne d'une matrice initiale (ici une partie de rangée), une rangée ou une colonne de la matrice initiale correspond à plusieurs lignes de la matrice M. A titre d'exemple, le circuit peut être configuré pour découper une rangée de la matrice initiale en trois sous-rangées, chaque sous-rangée correspond à une ligne de la matrice M. Le signal défini après analyse de la matrice illustrée à la figure 2 est le suivant : BBB ABB DDCD BBB BBB BAB DCDD BBB BBB La première suite de trois deuxièmes codes (BBB) correspond à l'analyse des trois premières lignes formant la première rangée. La deuxième suite de trois codes, un premier code A suivi de deux deuxième codes B (ABB) correspond à l'analyse des trois lignes formant la deuxième rangée. Cet ensemble de trois codes indique qu'un pixel dans le premier état se trouve dans la première ligne de la deuxième rangée et qu'aucun pixel dans le premier état n'est présent dans le reste de cette deuxième rangée. Une suite de quatre codes (DDCD) est ensuite générée pour caractériser plus finement la ligne identifiée par le premier code A. Chaque code correspond à une donnée, par exemple un pixel. Cette suite de quatre codes indique que le pixel dans le premier état se trouve en troisième position dans la ligne. La suite de quatre codes est suivie d'une nouvelle suite de trois codes caractérisant la rangée suivante. Le reste de l'analyse de la matrice est réalisé de la même manière que précédemment. Dans le cas présent, chaque suite de trois codes contenant le premier code A est suivie, avantageusement immédiatement, par une suite de quatre codes C et D contenant au moins une fois le troisième code C. Dans le cas où plusieurs lignes d'une même suite de trois codes sont représentées par le premier code A, il y a plusieurs séries de quatre codes C et D à la suite les uns des autres pour l'analyse plus fine de ces différentes lignes. La première suite de quatre codes correspond à la ligne représentée par la première occurrence du premier code A et les suites suivantes de quatre codes correspondent aux occurrences suivantes. Dans ce mode de réalisation, la rangée ou la colonne est analysée une première fois au moyen des différentes lignes. Une fois l'analyse de la rangée ou de la colonne réalisée, une analyse plus fine de la ligne associée ou des lignes associées au premier code est effectuée. L'analyse de la rangée ou de la ligne suivante est ensuite réalisée. Dans un autre mode de mise en oeuvre, l'analyse de la ligne est réalisée immédiatement après l'occurrence du premier code A ce qui se rapproche du mode de réalisation illustré à la figure 4. Dans un autre mode de réalisation, toutes les lignes sont analysées et il y a ensuite analyse plus précise des différentes lignes associées au premier code A. Le test d'une partie d'une rangée ou d'un colonne en tant que ligne peut être réalisé simplement comme cela est illustré à la figure 5. Le circuit de recherche comporte un dispositif de réception 3 des données envoyées par une pluralité de premiers circuits de test 1 et de deuxièmes circuits de test 2. Ce dispositif de réception également appelé récepteur 3 est connecté aux premiers et au deuxièmes circuits de test de manière à recevoir le résultat des premiers circuits de test 1 pour chaque ligne de données L qui constitue une rangée ou une colonne et pour recevoir le résultat du deuxième circuit de test 2 pour des noeuds de stockage. Plusieurs noeuds de stockage sont connectés à un même premier circuit de test 1 de manière à former une ligne. En d'autres termes, une rangée ou une colonne est décomposée en une pluralité de groupes de noeuds de stockage, chaque groupe étant associé à son propre premier circuit de test 1. Chaque ligne comporte également son propre deuxième circuit de test de manière à ressortir une information plus précise de la ligne lorsqu'elle est associée à un premier code A. Dans le mode de réalisation avantageux illustré à la figure 5, le premier et le deuxième circuits de test sont formés à l'intérieur d'un même circuit et ils partagent certains éléments, par exemple un récepteur élémentaire 5. Le circuit général est noté 1,2. Il comporte par exemple deux lignes de sortie. Une première ligne de sortie associée au premier circuit de test pour sortir un premier ou un deuxième code. Il possède une deuxième ligne de sortie associée au deuxième circuit de test pour sortir une pluralité de troisièmes ou quatrièmes codes. De manière particulièrement avantageuse, les premiers circuits de test comportent un récepteur élémentaire qui reçoit l'information des différents noeuds de stockage de la ligne associée. Cette information est traitée de manière à fournir le premier code A ou le deuxième code B sur une ligne de sortie reliée au récepteur. Ce récepteur du premier circuit de test est également associée au deuxième circuit de test de manière à ressortir facilement la caractérisation de la ligne associée à un premier code A. Ce mode de réalisation permet d'analyser facilement la matrice en fournissant une compression importante et en évitant d'utiliser des mémoires de trame ou de ligne. Dans un mode de réalisation particulier illustré dans l'exemple précédent, l'analyse plus précise des lignes peut être réalisée de manière séquentielle après chaque analyse d'un groupe de lignes, si nécessaire. Dans le cas illustré par l'exemple précédent une analyse fine par le deuxième test est effectuée après une analyse de trois lignes par un premier test ce qui permet de réaliser une analyse complète de chaque rangée. Un autre cycle peut être réalisé entre la fréquence du premier test et la fréquence du deuxième test, c'est à dire que l'information plus précise d'une ligne peut être placée juste après l'information générale sur la ligne. Il est encore possible d'analyser une pluralité de lignes, par exemple six lignes et de placer les éventuelles analyses plus précises de ces lignes à la suite. Dans cette configuration, le second circuit de test est configuré pour tester une ligne de données ou un groupe de lignes associées à un premier code A et envoyer le résultat de ce test dans le récepteur avant que le premier circuit de test réalise le test de la ligne suivante ou du groupe de lignes suivant. Dans un mode de réalisation particulier également illustré dans l'exemple précédent, plusieurs lignes sont analysées simultanément, chacune par leur premier circuit de test associé. Cette configuration permet d'augmenter le débit du circuit de recherche en réalisant plusieurs analyses en parallèle. Dans un mode de mise en oeuvre particulier, ce procédé d'analyse est utilisé dans une matrice de photodétecteurs. Les photodétecteurs observent une scène et le résultat de cette observation est enregistré dans un noeud de rétention associé à chaque photodétecteur. Ainsi, la scène observée est enregistrée et retranscrite par une information stockée dans les différents noeuds de rétention. Lorsque les photodétecteurs observent la scène de manière répétitive, l'analyse de la scène est réalisée de préférence entre deux acquisitions afin de suivre l'évolution de la scène observée. Dans les exemples ci-dessus, les rangées de pixel ont été découpées en série de trois lignes, chaque ligne comportant quatre pixels. Le découpage de la matrice aurait put être réalisé en colonne. Les rangées ou les colonnes auraient put être décomposées en une pluralité de lignes, chaque ligne comportant un nombre prédéfini de pixels. Il est possible de détecter des zones plus lumineuses ou plus sombres de la scène en utilisant le procédé de recherche décrit plus haut sur les différentes lignes de données et de suivre leurs déplacements dans une scène en réalisant plusieurs acquisitions. La scène observée est analysée au moyen de la matrice de pixels. Si l'information donnée par les photodétecteurs est de type analogique, il est avantageux de réaliser une étape de comparaison de la donnée fournie par le photodétecteur à un seuil afin de stocker une information binaire représentative de cette comparaison dans les noeuds de stockage. Si l'information stockée dans les noeuds de stockage est analogique, il est avantageux de réaliser une comparaison par rapport à un seuil et d'utiliser le résultat de cette comparaison afin de réaliser l'étape El d'analyse de la ligne. Dans un mode de réalisation particulier, la matrice de données fait partie d'un dispositif de détection. La matrice de données est une matrice de pixels où chaque pixel est associé à un photodétecteur. Le dispositif de détection comporte une pluralité de photodétecteurs capables de convertir le signal lumineux reçu en un signal électrique. Le photodétecteur est configuré pour détecter un rayonnement électromagnétique dans une gamme précise de longueur d'ondes. Le photodétecteur peut être formé par tout dispositif adapté, par exemple par une photodiode ou par un dispositif à puits quantique ou à multi-puits quantiques. Le photodétecteur est avantageusement configuré pour détecter un rayonnement visible ou infrarouge, de préférence, une gamme particulière du rayonnement infrarouge, par exemple les gammes, LWIR, MWIR ou SWIR. Le dispositif de détection comporte également des circuits de polarisation du photodétecteur. Le circuit de polarisation est configuré de manière à ce que le photodétecteur 1 agisse comme une source de courant dont l'intensité du courant est fonction du rayonnement électromagnétique reçu. Le photodétecteur est relié à un circuit qui intègre ou stocke le signal émis par le photodétecteur. Si le circuit de lecture comporte un condensateur d'intégration ce denier peut également servir pour définir le noeud de stockage. Il est également possible que le signal présent dans le circuit de lecture soit envoyé dans le noeud de stockage formé par un autre dispositif électronique. Afin de rechercher un niveau « 0 », il est avantageux de réaliser un test OU sur les noeuds d'une même ligne. De cette manière, le résultat attendu est 0 et la présence d'un résultat final égal à 1 entraîne une analyse plus précise de la rangée ou de la colonne. A titre d'exemple, un tel mode de réalisation peut être mis en oeuvre en utilisant une ligne de polarisation commune à la ligne de pixels et un bus de données commun à cette même ligne de pixels. La ligne de polarisation est reliée au bus de données par une pluralité d'interrupteurs montés en parallèle. Chaque pixel est relié à l'électrode de commande de son transistor associé. De cette manière, si tous les pixels sont dans le deuxième état, tous les interrupteurs sont à l'état bloquant et l'information de la ligne de polarisation n'est pas transmise sur le bus de données. Dans le cas où un pixel se trouve dans le premier état, l'information de la ligne de polarisation est envoyée dans le bus de données. L'interrupteur peut être formé par un transistor dont le type de conductivité (par exemple NMOS ou PMOS) est choisi en fonction du niveau de l'état recherché. Il est également possible de réaliser un test ET sur les circuits de détection d'une même rangée ou colonne. De cette manière, le résultat attendu est 1 et la présence d'un résultat final égal à 0 entraîne une analyse plus précise de la rangée ou de la colonne. A titre d'exemple, un tel mode de réalisation peut être mis en oeuvre en utilisant une ligne de polarisation commune à la ligne de pixel et un bus de données commun à cette même ligne de pixels. La ligne de polarisation est reliée au bus de données par une pluralité d'interrupteurs montés en série. Le montage série des différents interrupteurs permet de relier la ligne de polarisation au bus de données. Chaque pixel est relié à l'électrode de commande de son interrupteur associé. De cette manière, si au moins un interrupteur est dans le deuxième état, l'information de la ligne de polarisation n'est pas transmise sur le bus de donnée. Dans le cas où tous les pixels se trouvent dans le second état, l'information de la ligne de polarisation est envoyée dans le bus de données. Là encore, en changeant le type de conductivité des différents transistors formant les interrupteurs, il est possible de tester l'état opposé des pixels. De manière avantageuse, un test selon la configuration OU est utilisé car il permet de connecter la ligne de polarisation au bus de donnée de manière indépendante pour chaque transistor. Ainsi, le même circuit peut réaliser le second test en envoyant successivement sur le bus l'état de chaque pixel au moyen de son transistor associé. Un deuxième interrupteur peut être monté en série avec l'interrupteur précédent afin de définir si le premier test ou le second test est à effectuer. Le même bus de données sert à ressortir l'information de la ligne et de chaque pixel. Dans ce mode de mise en oeuvre avec un seul bus, le codage est réalisé sur un bit. De manière préférentielle, la ligne de polarisation est commune pour toute la matrice. De manière avantageuse, les circuits de lecture sont organisés selon une première direction d'organisation qui définit une rangée ou une colonne de circuits. De cette manière, le dispositif de détection comporte plusieurs rangées ou plusieurs colonnes de circuits de lecture. De manière préférentielle, les noeuds de stockage sont organisés en matrice c'est-à-dire en rangée et en colonne. Apres une étape d'observation d'une scène choisie, les circuits stockent une information représentative de cette scène. Une phase d'analyse de la scène est ensuite réalisée. Comme illustré à la figure 2, le dispositif de détection peut faire partie d'un dispositif de guidage d'un élément mobile. Dans ce dispositif de guidage, la position du pixel dans le premier état est déterminée dans la matrice de photodétecteurs. Cette position est envoyée dans un circuit de calcul 4 qui traite cette information et envoie un ou plusieurs signaux au système 6 de propulsion et/ou de direction de l'élément mobile. De manière avantageuse, le circuit de calcul envoie des signaux configurés de manière à rapprocher ledit au moins un pixel dans une position préférentielle de la matrice de photodétecteurs lors de la prochaine phase d'acquisition. De manière avantageuse, le circuit de calcul envoie des signaux configurés de manière à ce que l'élément mobile soit déplacé pour positionner le pixel dans le premier état, par exemple, au milieu de la matrice lors de la prochaine phase d'acquisition. Le circuit de recherche peut également être utilisé afin de tester la fonctionnalité du dispositif de détection face à une mire étalonnée ce qui permet de détecter rapidement les circuits de lecture non fonctionnels ou atypiques. La matrice de photodétecteur réalise l'acquisition de la mire étalonnée pendant une durée plus ou moins importante. Les pixels sont alors testés afin de rechercher ceux qui présentent une luminosité plus importante ou moins importante qu'un seuil.30 REVENDICATIONS1. Circuit de recherche d'information dans une matrice de données (M) comportant : la matrice de données (M) organisées selon une pluralité de lignes de données (L), chaque ligne (L) comportant une pluralité de noeuds de stockage de données, chaque noeud de stockage étant configuré pour stocker un premier état ou un deuxième état, les noeuds de stockage étant majoritairement dans le deuxième état, un premier circuit de test (1) de l'état d'une ligne de données (L), le premier circuit de test (1) étant configuré pour déterminer si la ligne (L) testée est dépourvue de noeud de stockage dans le premier état ou si la ligne (L) testée comporte au moins un noeud de stockage dans le premier état, le premier circuit envoyant un premier code (A) si la ligne (L) comporte au moins un noeud dans un premier état ou un deuxième code si la ligne (L) est dépourvue de noeud de stockage dans le premier état, un deuxième circuit de test (2) de l'état des noeuds de stockage dans une ligne (L) de données, le deuxième circuit de test (2) étant configuré pour envoyer un troisième code (C) si le noeud de stockage est dans le premier état ou un quatrième code (D) si le noeud de stockage est dans le deuxième état, le deuxième circuit de test (2) étant configuré pour tester une ligne de données (L) lorsque le premier circuit de test (1) à envoyé un premier code (A) relatif à ladite ligne, un récepteur (3) configuré pour recevoir le résultat du premier circuit de test (1) pour chaque ligne (L) testée et pour recevoir le résultat du deuxième circuit de test (2) pour des noeuds de stockage. 2. Circuit selon la revendication 1, caractérisé en ce que le premier code (A), le deuxième code (B), le troisième code (C)et le quatrième code (D) sont codés sur un bit. 3. Circuit selon l'une des revendications 1 et 2, caractérisé en ce que la matrice de données (M) est une matrice de photodétecteurs associée à une matrice de circuits de lecture, chaque circuit de lecture comporte un noeud d'intégration de l'information émise par le photodétecteur associé, le noeud d'intégration formant le noeud de stockage de donnée. 4. Circuit selon l'une quelconque des revendications 1 à 3, caractérisé en ce que le premier circuit de test (1) est configuré pour tester successivement des lignes (L) ou des groupes de lignes (L) de la matrice et envoyer le résultat desdits tests dans le récepteur (3). 5. Circuit selon la revendication 4, caractérisé en ce que le second circuit de test (2) est configuré pour tester une ligne de données (L) ou un groupe de lignes (L) associées à un premier code (A) et envoyer le résultat de ce test dans le récepteur (3) avant que le premier circuit de test (1) réalise le test de la ligne (L) suivante ou du groupe de lignes (L) suivant. 6. Circuit selon la revendication 5, caractérisé en ce que le second circuit de test (2) réalise le test de tous les noeuds de stockage de la ligne de données (L) dans une première direction de test. 7. Circuit selon la revendication 5, caractérisé en ce que le second circuit de test (2) réalise le test de tous les noeuds de stockage de la ligne de données (L) dans une première direction de test jusqu'à tester un noeud de stockage dans le premier état (A). - 2986352 31 8. Circuit selon l'une quelconque des revendications 1 à 7, caractérisé en ce que le premier circuit de test (1) comporte une ligne de polarisation, un bus de données représentatif du résultat du test, une pluralité d'interrupteurs montés en parallèle et connectés chacun à la ligne de polarisation et au bus 5 de données, l'électrode de commande de chaque interrupteur étant couplée au noeud de stockage associé de manière à commander l'état de l'interrupteur. 9. Elément mobile comportant : 10 un circuit de recherche d'information selon l'une des revendications 3 à 8, un système de propulsion et/ou de rotation de l'élément mobile un circuit de calcul connecté au récepteur (3) et configuré pour rechercher la position d'au moins un pixels dans le premier état et pour actionner le système de propulsion et/ou de direction de manière à rapprocher ledit au 15 moins un pixel dans une position préférentielle de la matrice de photodétecteurs lors de la prochaine phase d'acquisition. 10. Procédé de recherche d'une donnée dans un premier état à l'intérieur d'une matrice de données (M) majoritairement composée de données dans un 20 second état, la matrice de données (M) étant décomposée en une pluralité de lignes de données (L) munies de noeuds stockant lesdites données, caractérisé en ce qu'il comporte l'analyse des lignes de données (L) de la matrice (M), l'analyse comportant: réaliser un premier test sur une ligne de données (L) de manière globale 25 afin de déterminer si elle contient une donnée dans le premier état et envoyer un code (A, B) représentatif de ce test dans un récepteur, le premier test envoyant un premier code (A) lorsque la ligne de données comporte une donnée dans le premier état, et envoyant un deuxième code (B) dans l'autre cas, 30 réaliser un deuxième test pour tester individuellement les noeuds de la ligne de données (L) associée à un premier code (A), le deuxième testenvoyant un troisième code (C) lorsque le noeud comporte une donnée dans le premier état et envoyant un quatrième code (D) dans l'autre cas, les résultats du deuxième test étant envoyés dans le récepteur (3).