Brevet FR2703802A1 — publié le 19941014

"Dispositif d'estimation de mouvement entre des images successives d'une séquence d'images animées subdivisées en blocs bidimensionnels d'éléments d'image" Description: L'invention concerne un dispositif d'estimation de mouvement entre des images successives d'une séquence d'images animées subdivisées en blocs bidimensionnels d'éléments d'image balayés successivement horizontalement de gauche à droite et du haut en bas dans chaque image, pour affecter à chaque bloc un ensemble de données définissant undit vecteur de mouvement relatif à ce bloc. Par vecteur de mouvement il faut entendre un vecteur caractérisant le décalage du bloc courant vis-à-vis d'un bloc de l'image précédente dans la séquence, ayant les propriétés de luminosité les plus proches du bloc courant. L'invention trouve son application dans le domaine de la télévision haute définition et en particulier dans les systèmes de codage. Un dispositif d'estimation de mouvement est déjà connu par le brevet GB 2 214 751 Ce brevet décrit une méthode dite "Block Matching Process" ou méthode d'estimation de mouvement par correspondance de blocs Ce procédé, noté B M A. (de l'anglais Block Matching Algorithm) dans la suite de la présente description, met en oeuvre une recherche d'un bloc dit correspondant effectuée dans l'image qui précède l'image courante, et dans un voisinage de dimensions déterminées délimité par une fenêtre appelée "horizon de recherche" (en anglais Search Window), ces dimensions étant liées à l'amplitude maximale du vecteur de mouvement recherché Le bloc dit correspondant est le bloc qui, selon des critères prédéterminés, a les propriétés de luminosité les plus proches de celles du bloc courant. L'inconvénient du procédé BMA connu est qu'il fournit des vecteurs de mouvement non cohérents Par non- cohérence, il faut entendre le fait que dans l'image décomposée en blocs, la probabilité pour que des blocs voisins aient, ou bien le même vecteur de mouvement, ou bien un vecteur de valeur proche, est très faible. Ainsi, si l'image courante est subdivisée en X x Y blocs selon les directions horizontale et verticale, le procédé BMA peut fournir, dans le pire des cas, X x Y vecteurs de mouvement différents. Or, pour l'application au domaine de la compression d'image pour la télévision haute définition ou numérique, etc, il est indispensable de réduire, du côté de la source, le volume de données à transmettre, ou à stocker En effet, à ce jour, un signal vidéo à haute définition contient par exemple 4 fois le nombre d'informations comparé à un signal vidéo à définition normale. Donc, d'une manière générale, le but de l'estimation de mouvement est la réduction des informations à transmettre, en calculant un vecteur de mouvement par bloc d'image. Un but de la présente invention est alors de minimiser le nombre des vecteurs de mouvements trouvés dans chaque image, tout en optimisant chacun de ces vecteurs, afin de réduire encore le nombre d'informations à transmettre, et de conduire à une reconstitution de l'image de meilleure qualité. Ainsi, un but de la présente invention est de fournir un dispositif mettant en oeuvre un procédé capable de rendre spatialement cohérents des groupes de vecteurs de mouvement préalablement calculés par un dispositif du type BMA connu. Un autre but de l'invention est de fournir un tel dispositif utilisant un minimum de matériel, c'est- à-dire principalement un nombre de mémoires aussi faible que possible, et des mémoires de taille ou capacité aussi petite que possible. Le dispositif selon l'invention présente alors de nombreux avantages parmi lesquels: le nombre des données à transmettre est réduit, ce qui est particulièrement intéressant dans le domaine du codage en télévision. les effets de la subdivision en blocs sont minimisés dans l'image reconstruite, qui est donc améliorée. Les buts de l'invention sont atteints et les avantages obtenus par un dispositif tel que décrit dans le préambule et caractérisé en ce qu'il comprend en outre une structure de cohérence pour créer et faire croître desdites "régions" formées d'un bloc ou de plusieurs blocs adjacents, et ayant chacune un seul vecteur de mouvement, cette structure de cohérence comportant: a) des modules de mémoire pour stocker respectivement les jeux de données d'erreur du bloc courant, des régions déjà formées, et les numéros affectés à ces blocs et régions respectivement; b) des modules de travail formés de deux retards fixes à appliquer aux jeux de données d'erreur des régions adjacentes au bloc courant déjà traitées, dites régions potentielles gauche et supérieure, candidates pour former une région nouvelle par rattachement avec le bloc courant; c) des modules de calcul pour comparer les jeux de données d'erreur du bloc courant et ceux desdites régions potentielles, et pour décider, en fonction de critères prédéterminés, soit le rattachement du bloc courant à l'une desdites régions potentielles, soit l'initialisation d'une région nouvelle à partir de ce bloc courant; d) des modules multiplexeurs, à trois entrées et une sortie, pour aller chercher les données d'erreur dans l'un des modules de mémoire ou travail et les diriger respectivement vers les modules de calcul et vers la mémoire de stockage des données des régions respectivement; e) un module de contrôle de la procédure des modules de calcul et de celle des modules multiplexeurs. L'invention est décrite ci-après en détail en référence avec les figures schématiques annexées parmi lesquelles: la FIG 1 représente l'architecture du dispositif dit de cohérence composée de modules fonctionnels; la FIG 2 illustre la détermination d'un vecteur de mouvement relatif à un bloc d'image au moyen du module dit BMA de l'architecture de la FIG 1; la FIG 3 montre les blocs d'image voisins d'un bloc courant; les FIG 4 A à 4 C montrent les régions potentielles pour une fusion gauche avec un bloc courant, et les FIG 4 D à 4 F pour une fusion supérieure; la FIG 5 montre le chronogramme de fonctionnement des modules de mémoire de l'architecture de la FIG 1; L'invention est décrite ci-après dans un exemple concret mais non limitatif, d'application à la télévision à haute définition. Par signal de télévision-à haute définition, il faut entendre, à ce jour, un signal pour affichage sur écran de 1250 lignes, avec 1728 points ou pixels par ligne selon un système dit entrelacé. Par système entrelacé, il faut entendre que chaque image (en anglais FRAME) de 1250 lignes est composée de deux trames (en anglais FIELD) comprenant chacune la moitié des 1250 lignes Parmi ces deux trames, l'une est dite PAIRE, et comprend toutes les lignes de rang pair de l'image, et l'autre est dite IMPAIRE et comprend toutes les lignes de rang impair de l'image Ces deux trames ou sous-ensemble de lignes sont superposables. L'image de télévision est affichée sur un écran au moyen d'un balayage temporel qui, à un instant initial débute en haut et à gauche de l'écran, qui se poursuit en affichant la première ligne de la première trame vers la droite, puis chaque ligne successive de haut en bas jusqu'à l'affichage de la totalité de la première trame Un balayage temporel identique affiche ensuite toutes les lignes de la seconde trame. Un tel signal vidéo à haute définition contient 4 fois le nombre d'informations comparées à un signal vidéo à définition normale Il apparaît alors un problème dans la transmission de ces images à haute définition dans des canaux de télévision à définition normale. On est donc amené à réduire le nombre d'informations à transmettre en détectant l'existence de mouvement d'une image à l'autre Par exemple, on peut sous- échantillonner le signal par un facteur 2, en éliminant les trames PAIRES Alors, le but de l'estimateur de mouvement est de calculer les vecteurs de mouvement de chaque trame PAIRE, ces dernières n'étant pas transmises, en fonction de la trame IMPAIRE précédente, ou suivante, ou en fonction des deux Ces vecteurs de mouvements seront transmis à un système décodeur qui sera alors capable de reconstruire la trame manquante en utilisant les vecteurs de mouvement et les trames IMPAIRES au moyen d'interpolation de compensation de mouvement. Le but de la présente invention est de fournir un dispositif estimateur de mouvement qui fournit pour chaque trame un nombre de vecteurs de mouvement aussi réduit que possible, et ceci avec une économie de moyens techniques, notamment une économie de nombre de mémoires et de capacités de mémoire. Dans ce qui suit, on parlera de traitement "d'images", et non pas du traitement de "trames" dans un but de simplicité d'expression et de généralisation des concepts. En référence avec la FIG 1, le dispositif selon l'invention est représenté sous la forme d'une architecture composée de modules fonctionnels qui comprend d'abord un premier module 1 capable de fournir des vecteurs de mouvement associés à un certain nombre de blocs bidimensionnels, qui sont des subdivisions de l'image Ti à traiter Ce module 1 est conforme au système connu de l'état de la technique mettant en oeuvre la méthode dite BMA Ce module 1 sera ci-après appelé systématiquement "module BMA" pour des raisons de simplicité. En référence avec la FIG 3, dans le module BMA, l'image Ti à traiter est subdivisée en X x Y blocs suivant des lignes et des colonnes respectivement, et un vecteur de mouvement est recherché pour chacun de ces blocs Les blocs sont traités selon le balayage conventionnel en télévision à ce jour, c'est-à-dire du haut à gauche, vers le bas à droite. Ainsi, le bloc courant BN est situé dans la yième rangée en partant du haut de l'image Ti, et dans la xième colonne en partant de la gauche Du fait de ce balayage conventionnel, tous les blocs situés dans la rangée supérieure y-l, et tous les blocs situés dans les colonnes de gauche de la même rangée y, ont déjà été traités au moment o le traitement du bloc courant BN est entrepris Le bloc BN est par ailleurs le Nième bloc traité depuis le commencement du traitement de l'image Ti, qui a eu lieu en haut et à gauche de cette image Ti Le bloc BN porte donc le numéro N dans la chaîne de traitement de l'image Ti. En référence avec la FIG 2, le module BMA permet, pour chaque bloc courant BN de l'image Ti balayée de manière conventionnelle, de rechercher dans l'image précédente Ti-1, et sur un voisinage de taille déterminé, ou horizon de recherche, délimité par unedite fenêtre de recherche SW (en anglais Search Window), le bloc qui, selon un critère prédéterminé, a les propriétés de luminosité les plus proches du bloc courant. A cet effet, comme montré FIG 2, une projection orthogonale PB du bloc courant BN de l'image Ti est réalisée dans la trame précédente Ti-1 Puis la position antérieure PA du bloc courant BN est recherchée dans cette image précédente Ti-1 Le déplacement ou mouvement entre la projection orthogonale PB et la position antérieure PA est matérialisé par ledit vecteur de mouvement D. Pour effectuer cette recherche du bloc dit correspondant, situé à la position antérieure PA, le module BMA est amené à constituer un ensemble de données, appelé "jeu de données d'erreur" Ce jeu est constitué de trois types de données d'erreur suivants: A/ unedite "carte d'erreur" qui rassemble des grandeurs appelées erreurs E(D) relatives aux différences entre la luminosité des points ou pixels du bloc courant et la luminosité des pixels des blocs situés dans l'horizon de recherche déplacés vis-à-vis de ce bloc courant, ou de sa projection PB, d'une valeur D ayant pour composantes dx et dy. Plusieurs critères de définition d'erreur E(D) sont possibles Un premier critère repose sur la moyenne des valeurs absolues de la différence de luminosité entre les points du bloc courant et ceux du bloc de l'horizon de recherche dans l'image précédente déplacé d'un vecteur D. L'intensité I d'un point de coordonnées x,y dans le bloc courant BN s'écrit I(x,y). L'intensité I d'un point correspondant situé, dans le bloc de l'horizon de recherche déplacé d'un vecteur D par rapport au bloc PB projection orthogonale du bloc courant BN, dans la trame précédente Ti-1, s'écrit: I(x-dx, y-dy). L'erreur fondée sur la moyenne des valeurs absolues s'écrit: E (D) I I (x, y) I (x-dx, y -dy)| X y Un autre critère de calcul de l'erreur E(D) peut être celui dit des moindres carrés qui s'écrit: E (D) = E E lI(x,y) I(x-dx, y-dy) l 2 X y Ladite "carte d'erreur" rassemble donc les erreurs E(D) définies selon un des critères choisis, correspondant à tous les déplacements D possibles dans l'horizon de recherche choisi. B/ unedite erreur BMA, qui est l'erreur minimale parmi toutes les erreurs de la carte d'erreur, C/ undit vecteur minimum qui est le vecteur de mouvement correspondant à ladite erreur minimale ou BMA. Le module BMA choisit le vecteur estimé pour le bloc courant comme le vecteur de mouvement qui correspond à ladite erreur minimale ou BMA, c'est-à-dire ledit vecteur minimum. Le dispositif selon l'invention est destiné à appliquer un processus de cohérence à chaque bloc traité par le module BMA, c'est-à-dire que le dispositif selon l'invention a pour but de rendre cohérents les vecteurs de mouvements calculés par le module BMA. En référence avec la FIG 1, conformément à l'invention, ce dispositif comprend dans son architecture undit système dit de cohérence, qui va permettre, à partir des blocs individuels, la création de dites "régions" dans l'image Ti courante, et la croissance progressive de ces régions, en opérant le rattachement du bloc courant BN à une région adjacente comprenant des blocs déjà balayés, assurant ainsi la croissance de régions homogènes ayant le même vecteur de mouvement estimé. A cet effet, le système de cohérence selon l'invention comprend des moyens pour fusionner plusieurs blocs voisins Cette fusion peut aller jusqu'à la réunion de tous les blocs d'une image entière en cas d'image fixe, ce qui correspond à des vecteurs de mouvement nuls Les blocs ainsi fusionnés forment l'entité que l'on appelle "région" et qui a donc un seul vecteur de mouvement. Le système de cohérence selon l'invention comprend, parmi les moyens pour fusionner les blocs, des moyens pour comparer le bloc BN à estimer dans l'image courante Ti avec son voisinage déjà traité Si l'on considère que le balayage utilisé est le balayage conventionnel à ce jour en matière de télévision -du haut à gauche, vers le bas à droite- , le voisinage déjà traité est alors constitué par le bloc contigu gauche BN-1 dans la même ligne y de blocs, et par le bloc continu supérieur BN-M dans la même colonne x de blocs. La comparaison entre le bloc courant BN et les blocs contigus gauche et supérieur se fait sur les informations fournies par le module BMA référencé 1 sur la FIG 1, c'est-à- dire le jeu de données d'erreur: A/ la carte d'erreurs, B/ l'erreur minimale ou BMA, C/ le vecteur minimum qui constitue l'ensemble dit des "éléments de décisions". La croissance de régions par fusion de blocs courants doit être initialisée A chaque région seront alors affectés une carte d'erreur, une erreur minimale et un vecteur minimum spécifiques à cette région. Le premier bloc balayé est donc affecté à une première région, qui est numérotée en commençant par 1 et dont les données initiales sont donc celles de ce premier bloc: a/ la carte d'erreurs E(D) est, initialement, celle du premier bloc courant, telle que fournie par le circuit d'estimation de mouvement 1 ou système BMA; b/ l'erreur minimale Emin = min(E(D)) est, dans ce cas, l'erreur minimale (erreur BMA) dans la carte d'erreurs du premier bloc courant; c/ le vecteur de mouvement optimal D est, ici, celui auquel correspond ladite erreur minimale; d/ pour chaque bloc traité, on conserve le numéro de la région à laquelle il a été affecté, ici le numéro 1 pour le premier bloc ainsi considéré. Pour une région créée à partir de blocs voisins fusionnés au moyen du système de cohérence, a'/ la carte d'erreurs de la région est la somme arithmétique des cartes d'erreurs de chaque bloc contenu dans cette région, b'/ l'erreur minimale (dite BMA) de la région est la somme arithmétique des erreurs minimales intrinsèques de chaque bloc. c'/ le vecteur minimum de la région est celui qui minimise l'erreur de la nouvelle carte d'erreur relative à cette région. Donc, lors du traitement d'un bloc donné, le système de cohérence a des moyens pour comparer les informations intrinsèques du bloc courant BN, avec d'une part, les informations de ce bloc fusionné avec la région contig e gauche, et d'autre part avec les informations de ce bloc fusionné avec la région contig e supérieure. En fonction de critères décrits plus loin, trois situations, résultant de ces comparaisons, peuvent être envisagées: 1) la première situation possible est celle o aucune fusion n'est envisagée Dans ce cas une nouvelle région est initialisée ayant comme informations correspondantes, les informations intrinsèques du bloc courant; 2) la seconde situation possible est celle o la fusion est envisagée avec la région gauche Dans ce cas, une mise à jour est effectuée pour fournir les informations relatives à cette nouvelle région, en additionnant les cartes d'erreurs, en additionnant les erreurs minimales, et en remplaçant les vecteurs minima par un nouveau vecteur minimum qui minimise la nouvelle carte d'erreur 3) la troisième situation possible est celle o la fusion est envisagée avec la région supérieure Dans ce cas, une mise à jour est effectuée comme dans le cas de la fusion avec la région gauche, mais en prenant en compte les informations relatives à la région supérieure. Dans la réalisation du système de cohérence mettant en oeuvre ces opérations, ou algorithmes, il apparaît un certain nombre de problèmes. a) le premier problème de réalisation est lié à la complexité des accès mémoire nécessaire En effet les mémoires doivent être adressées deux fois durant une période temporelle de base Durant la période bloc on doit accéder à la mémoire 2 n fois, N étant le nombre de périodes d'horloge On serait donc tenté de multiplier les mémoires par 2 pour résoudre ce problème d'accès mémoire. ) le second problème de réalisation est lié à la capacité des mémoires requises pour stocker les informations. La partie du système la plus consommatrice de capacité mémoire sera celle qui est réservée aux stockages des informations des cartes d'erreurs Par exemple, à titre indicatif, on pourrait avoir 256 erreurs, sur 16 ou 24 bits, à stocker Et non seulement le système doit être à même de stocker les cartes d'erreurs des blocs courants à estimer, mais en outre, le système doit pouvoir stocker les cartes d'erreurs de la région gauche, celle de la région supérieure, ainsi que celles de toutes les régions potentielles de la trame Dans le pire des cas, qui ne peut être exclu, le système doit pouvoir stocker les informations relatives à X x Y régions différentes correspondant au cas o aucune fusion n'a été effectuée. y) le troisième problème de réalisation est lié à l'obtention de la collision entre des informations venant d'origines différentes, et devant aboutir au même point du système Ce dernier problème est donc essentiellement celui de la gestion du flux des données. Le système de cohérence selon l'invention fournit des moyens pour résoudre ces trois problèmes techniques principaux Selon l'invention, la méthode, ou algorithme, décrite plus haut est mise en oeuvre sans parallélisation, en sorte que les blocs courants sont traités par le même système matériel, successivement Cette technique de traitement des données sera appelée ultérieurement "pipe-line" et résout notamment le problème exposé sous a) Cette mise en oeuvre permet à la fois de minimiser le nombre des mémoires par 2, et de diminuer la capacité des mémoires d'un facteur important, par exemple 72, si on part d'une image subdivisée en 72 lignes de blocs, ce qui résout le problème exposé sous À) Enfin le troisième problème exposé sous y) relatif à la gestion des données est résolu par un système de multiplexeurs qui aiguillent les informations d'un point à un autre du système de cohérence, en fonction de l'environnement du bloc à traiter et de la décision de fusion à effectuer. Selon l'invention, des critères de décision suivants sont utilisés pour décider ou non de la fusion d'un bloc courant avec l'une des régions gauche ou supérieure, ou pour décider la non-fusion. I) Un premier critère de fusion peut consister à comparer l'erreur minimale de la nouvelle région formée en cas de fusion, avec la somme de l'erreur minimale de la région avant fusion, et de l'erreur minimale du bloc courant Dans ce critère, on peut introduire en outre un seuil multiplicatif. I') D'autres critères de fusion de même type que le premier peuvent être envisagés pour améliorer, c'est-à-dire affiner le processus de cohérence. Si le critère I ou éventuellement I' est vérifié pour les deux fusions possibles, c'est-à-dire gauche et supérieure, un critère supplémentaire dit d'arbitrage est appliqué. II) Le critère d'arbitrage consiste à comparer les erreurs, recherchées dans la carte d'erreurs du bloc courant correspondant aux vecteurs minima des régions gauche et supérieure après fusion. Ces critères sont mis en oeuvre au moyen des catégories d'éléments de décision suivantes: ( 1) pour le bloc courant BN, comme défini plus haut sous A, B, C: sa carte d'erreurs, son erreur BMA ou minimale son vecteur minimum. ( 2) pour chaque ancienne région AG ou AS (gauche ou supérieure), comme définis plus haut sous a', b', c' (ou a,b,c): sa carte d'erreurs respective, son erreur minimale ou BMA, son vecteur de mouvement optimal dit minimum. ( 3) de même, pour chaque nouvelle région AN constituée en associant soit l'ancienne région AG gauche, soit l'ancienne région AS supérieure au bloc courant BN, comme définis sous a', b', c' (ou sous a,b,c): sa carte d'erreurs respective, son erreur minimale Emin(AN), son vecteur minimum. Ces éléments de décision nécessaires, ou jeux de données d'erreur, sont stockés dans les diverses mémoires prévues dans le dispositif. Les critères I, I', ou II sont écrits sous forme d'une relation d'inégalité déterminée pour qu'ils permettent de contrôler ou de limiter la dégradation de la qualité de la restitution ultérieure du mouvement A cet effet, pour prendre une décision de fusion, on peut par exemple imposer à l'erreur minimale (BMA) de la nouvelle région de rester inférieure ou égale à la somme, augmentée d'un seuil en général réglable, de l'erreur minimale (BMA) du bloc courant BN et de l'erreur minimale (BMA) de l'ancienne région. Cet exemple n'est bien entendu pas limitatif, et l'on peut, par le choix d'autres types d'inégalités, fixer d'autres critères de contrôle des caractéristiques de la nouvelle région par rapport à celles de l'ancienne région considérée et à celles du bloc courant. En référence avec la FIG 1, l'architecture du système de cohérence comprend deux parties principales des mémoires Ml, R 2, R 3, M 4, M 5 et M" 4 des modules de calcul 11, 12 et 10. Cette architecture comprend en outre des moyens pour acheminer correctement les données Ces moyens sont constitués par des multiplexeurs MUX 1, MUX 2, MUX 3. La première mémoire Ml stocke le jeu de données d'erreur relatif au bloc courant BN: c'est-à-dire la carte d'erreurs du bloc courant, ainsi que l'erreur minimale (ou BMA) de cette carte et le vecteur de mouvement associé. La deuxième mémoire R 2 et la troisième mémoire R 3 stockent le jeu de données d'erreur relatif respectivement, à la région gauche incluant le bloc courant après calcul de fusion gauche, et le jeu de données d'erreur relatif à la région supérieure incluant le bloc courant après calcul de fusion supérieure, ces jeux de données d'erreur étant pour chaque région sa carte d'erreur ainsi que l'erreur minimale (ou BMA) correspondante, et le vecteur de mouvement associé à ladite erreur minimale Les informations dites de région ainsi stockées provisoirement en mémoires R 2 et R 3 sont également stockées, cette fois pour toutes les régions de l'image, et progressivement au fur et à mesure du balayage, dans la quatrième mémoire M 4, qui contient donc les données relatives à toutes les régions de l'image courante Les numéros de repérage desdites régions, et la correspondance entre le numéro d'un bloc et le numéro de la région incluant ce bloc sont stockés dans la cinquième mémoire M 5 Ces stockages en mémoire M 4 et en mémoire M 5 interviennent après les opérations de fusion ou d'initialisation. Les modules de calcul comprennent en référence avec la FIG 1, un module de calcul de fusion gauche 11, un module de calcul de fusion supérieure 12, et un contrôleur de procédure 10. Les trois multiplexeurs MUX 1, MUX 2 et MUX 3 contrôlent l'acheminement correct des données entre les mémoires Ml, R 2, R 3, M 4 et les modules de calcul 11 et 12. En référence avec les FIG 4, on a représenté les régions adjacentes au bloc courant BN pouvant constituer des régions potentielles de fusion. Les régions potentielles gauches adjacentes pour le bloc courant peuvent être soit: en référence avec la FIG 4 C, le bloc précédent A 9 dans le cas o ledit bloc précédent a initialisé une nouvelle région): le jeu de données d'erreurs correspondant est alors disponible dans la mémoire Ml; en référence avec la FIG AB, la précédente région gauche A 7 (dans le cas o le bloc précédent gauche a été fusionné avec une région supérieure; ce cas est appelé fusion supérieure du bloc précédent, le jeu de données d'erreur correspondant peut être trouvé dans R 3. en référence avec la FIG 4 A, la précédente région gauche supérieure A 12 (dans le cas de fusion gauche supérieure du bloc précédent): le jeu de données d'erreur correspondant peut être trouvé dans la mémoire R 3 ou la mémoire R 2. La sélection entre les trois mémoires Ml, R 2, R 3 est réalisée au moyen du multiplexeur MUX 1, en fonction de la décision précédente et de la position du bloc courant. Les régions potentielles adjacentes supérieures pour le bloc courant peuvent être soit: en référence avec la FIG 4 D, la région précédente gauche ou supérieure A 12 (dans le cas de fusion gauche ou supérieure du bloc précédent): le jeu de données d'erreur correspondant est disponible dans la'mémoire R 2 ou la mémoire R 3. en référence avec la FIG LF, la région précédente supérieure A 13 (dans le cas de fusion supérieure du bloc précédent): le jeu de données d'erreur correspondant est disponible dans la mémoire R 3. en référence avec la FIG 4 E, une région A 6 non impliquée dans un précédent processus de fusion: le jeu de données correspondant est disponible dans la mémoire M 4. La sélection entre ces trois mémoires R 2, R 3, M 4 est faite au moyen du multiplexeur MUX 2, en fonction de la décision précédente, le numéro des régions impliquées dans le processus, et la position du bloc courant L'adresse de la mémoire M 4 dépend du numéro de la région à lire. La région créée, dont le jeu de données d'erreur doit être stocké dans la mémoire M 4 après la décision de fusion concernant le bloc courant, peut être soit le bloc déjà traité (dans le cas o il a initialisé une nouvelle région): le jeu de données d'erreur sera stocké dans la mémoire Ml, la région gauche (dans le cas de fusion gauche du bloc courant): le jeu de données d'erreur correspondant sera stocké dans la mémoire R 2, la région supérieure (dans le cas de fusion supérieure du bloc courant): le jeu de données d'erreur correspondant sera stocké dans la mémoire R 3. La sélection entre ces trois mémoires est faite au moyen du multiplexeur MUX 3, en fonction de la décision. Toutefois, cela ne peut être fait qu'après que les calculs et les comparaisons pour le bloc courant soient terminés: c'est-à-dire, à la fin de la séquence de bloc. Pour cette raison, le stockage du jeu de données d'erreur d'une région contenant le bloc courant est réalisé dans le temps o le bloc suivant est traité. D'autre part, l'adresse de la mémoire M 4 dépend du nombre de régions à stocker. La procédure de cohérence du bloc courant appliquée par l'architecture de la FIG 1 peut être défini par les étapes suivantes: ETAPE 1: les numéros des régions adjacentes gauches et supérieures sont lues dans M 5; ETAPE 2: le jeu de données d'erreur relatif au bloc courant est stocké dans Ml et en même temps est envoyé aux modules de calcul 11 et 12; ETAPE 3: le jeu de données d'erreur relatif aux régions adjacentes gauches et supérieures est lu dans les mémoires appropriées Ml, R 2, R 3 ou M 4 et en même temps envoyé aux modules de calcul 11, 12; ETAPE 4: les calculs sont effectués par les modules 11 et 12; ETAPE 5: les résultats sont stockés dans la mémoire correspondante (R 2 pour le calcul de fusion de région gauche, et R 3 pour le calcul de fusion de région supérieure). et les étapes 2 à 5 sont répétées jusqu'à la fin de la séquence du bloc courant; ETAPE 6: une décision est prise à partir des calculs; ETAPE 7: un numéro de région est stocké pour le bloc courant dans M 5; ETAPE 8: les données d'erreurs relatives au bloc après fusion (ou de la région initialisée) sont lues à partir des mémoires Ml, R 2, R 3 et stockées dans M 4. Il faut noter que les étapes 3 et 8 sont contrôlées par les multiplexeurs MUX en fonction de la position du bloc, des régions adjacentes et de la décision de fusion. De plus, le numéro de région du bloc traité (courant) peut être le même que le numéro de la région adjacente dans le cas de fusion, ou peut être un nouveau numéro (donné par un compteur de régions) dans le cas d'une initialisation. Disposant maintenant de ces différents éléments, on décide en effet d'opérer la fusion avec la région gauche ou la fusion avec la région supérieure, ou l'initialisation, en fonction d'un des critères I, I' ou II, écrit sous forme d'une relation d'inégalité déterminée comme déjà décrit. Le rattachement final du bloc courant à une région (soit à la région adjacente gauche, soit à la région adjacente supérieure, soit à une nouvelle région initialisée avec ce bloc lui-même) est donc réalisé en suivant les étapes de comparaison définies ci-dessus, qui conduisent à quatre situations distinctes: ( 1) la fusion du bloc courant avec l'ancienne région gauche est acceptée (application sur la région gauche du critère I ou I' d'inégalité) et celle de ce bloc avec l'ancienne région supérieure est refusée (application sur cette région supérieure du critère I ou I' d'inégalité); ( 2) la fusion du bloc courant avec l'ancienne région gauche est refusée et celle de ce bloc avec l'ancienne région supérieure est acceptée (le critère I ou I' est vérifié pour cette ancienne région supérieure et non pour l'ancienne région gauche); ( 3) la fusion du bloc courant avec l'une ou l'autre des anciennes régions gauche et supérieure est refusée (le critère I ou éventuellement I' n'est vérifié sur aucune de ces régions) et il y a, avec ce bloc, initialisation d'une nouvelle région; ( 4) aucune de ces deux fusions n'est refusée (application du critère I ou éventuellement I' qui est vérifié), et, pour choisir entre l'une et l'autre, il faut introduire le critère II d'arbitrage. Cette attribution finale du bloc courant est réalisée par les unités de calcul 11 et 12 qui reçoivent, issus des première, deuxième et troisième mémoires Ml, R 2, R 3, les jeux de données d'erreurs liés respectivement au bloc courant, à l'ancienne région gauche et à l'ancienne région supérieure et détermine, à partir de l'ensemble de ces informations, toutes les données que l'on obtiendrait après fusion éventuelle du bloc avec l'une de ces deux anciennes régions, à savoir les cartes d'erreur des nouvelles régions obtenues dans l'un ou l'autre cas de fusion, ainsi que les erreurs minimales (BMA) et les vecteurs minima associés à ces nouvelles régions possibles. Ces nouvelles données, associées à une nouvelle région gauche ou à une nouvelle région supérieure viennent alors se substituer, dans les deuxième et troisième mémoires de travail R 2 et R 3, aux jeux de données d'erreur qui concernaient les anciennes régions gauche et supérieure. Ayant opéré cette première détermination, les unités de calcul 11 et 12 déterminent ensuite à quelle région le bloc courant est effectivement attribué (région gauche, région supérieure, nouvelle région initialisée) et les données relatives à cette région choisie sont recopiées dans la quatrième mémoire M 4 de stockage de données de région En même temps que ce stockage en mémoire M 4, l'unité de contrôle 10 commande l'écriture, dans la cinquième mémoire M 5, du numéro de repérage de la région qui vient d'être associée au bloc courant. Ainsi, lorsque, bloc après bloc, l'image a été entièrement balayée, les vecteurs de mouvement optimaux sont retrouvés pour chaque bloc en consultant d'une part la cinquième mémoire M 5, qui délivre le numéro de région correspondant à ce bloc, et d'autre part la quatrième mémoire M 4, qui délivre le vecteur de mouvement MV estimé associé à la région affectée de ce numéro, puis délivrés par les unités de calcul 11 et 12. Précédemment, on a mis l'accent sur un des avantages de l'invention qui consiste en une minimisation du nombre des mémoires ainsi que de capacités mémoires Jusqu'à présent, la description n'a pas mis en lumière de manière détaillée comment cet avantage était obtenu et les problèmes cités sous a), 5) et y) résolus Cet exposé est fait ci-après En référence avec la FIG 3, il apparaît que pour un bloc donné BN, les régions voisines sont au nombre maximal de X, ce nombre X étant le nombre de blocs horizontaux, alors que Y est le nombre de blocs verticaux Par exemple Y peut être égal à 72. Dans ces circonstances, au lieu de devoir stocker X fois Y jeux de données d'erreur relatives aux régions, -carte d'erreur, erreur minimale (BMA) et vecteur minimum-, il est seulement nécessaire de stocker au plus X jeux Si Y est égal à 72, cela représente donc 72 fois moins de jeux à stocker. Il faut noter que l'information propre aux cartes d'erreurs n'est utile que dans la mesure o elle concerne une ou des régions potentiellement voisines du bloc à estimer. C'est ainsi que la réduction par Y -par exemple 72- de la capacité de la mémoire M 4 concerne les erreurs, par exemple 256, que peut constituer une carte d'erreur dans le cas o l'horizon de recherche a pour dimension l-8, + 7 l pixels dans les deux direction horizontale et verticale Si l'horizon de recherche choisi est de dimensions plus importantes, par exemple l-32, + 31 l, alors le nombre d'erreurs de la carte d'erreurs peut devenir très important, dans ce cas 4096 Ces chiffres montrent combien il est avantageux de disposer d'un système tel que celui de l'invention capable d'aboutir en traitant seulement X jeux de données d'erreur au lieu de X x Y. On va maintenant revenir également sur l'architecture du système pour montrer comment sont en outre mieux résolus lesdits problèmes. En référence avec la FIG 1, l'architecture du système comprend donc d'abord les trois mémoires Ml, R 2, R 3. Dans Ml, sont stockées les informations du bloc courant Dans R 2 sont stockées les informations de la nouvelle région constituée par l'ancienne région gauche du bloc courant et ce bloc courant, c'est-à-dire les informations de la nouvelle région constituée par une fusion dite "fusion gauche" Dans R 3 sont stockées les informations de la nouvelle région constituée par une fusion dite "fusion supérieure". L'existence des mémoires R 2 ou R 3 ne veut pas dire qu'une décision de fusion a été prise, ou bien n'a pas été prise C'est pourquoi, les mémoires Ml, R 2, R 2 sont appelées "mémoires de travail". Par contre la mémoire M 4 est celle o sont stockées les jeux de données d'erreur des régions après fusion, donc des régions potentiellement adjacentes aux blocs encore à estimer dans la trame courante. En référence avec la FIG 1, on notera que la mémoire M 4 est composée notamment d'une mémoire M'4 dans laquelle sont stockés tous les vecteurs de mouvements calculés pour chaque région de l'image courante Cette mémoire M'4 permet de ne pas perdre l'information relative aux vecteurs de mouvements MV de toutes les régions de l'image Les vecteurs de mouvement MV sont par ailleurs disponibles en sortie au point 4 de l'architecture de la FIG 1. Outre les mémoires Ml, R 2, R 3, M 4, et M'4, l'architecture comprend la mémoire M 5 dans laquelle est stocké le numéro de la région correspondant à un bloc donné de l'image. Les modules de calcul 11 et 12 effectuent respectivement: en ce qui concerne le module de calcul 11: les comparaisons et calculs pour une éventuelle fusion gauche du bloc courant, en ce qui concerne le module de calcul 12: les comparaisons et calculs pour une éventuelle fusion supérieure du bloc courant. Puis l'architecture comprend le module 10 qui est un contrôleur, qui gère l'ensemble du déroulement du procédé ou algorithme Son rôle comprend: la décision de fusion, la gestion des numéros de région et de la mémoire M 5, la gestion des mémoires Ml et M 4, ainsi que la gestion de trois multiplexeurs MUX 1, MUX 2, MUX 3 En référence avec la FIG 1, le premier multiplexeur MUX 1 sélectionne une des trois régions gauches du bloc courant BN Cette région gauche peut provenir, en référence avec les FIG AA, B, C: soit de la mémoire Ml: cas de la région gauche potentielle A 9 montré sur la FIG 4 C Donc MUX 1 sélectionne Ml. soit de la mémoire R 3: cas de la région potentielle gauche A 7 montré sur la FIG 4 B Donc MUX 1 sélectionne R 3. soit de la mémoire R 2: cas de la région potentielle gauche A 12 montré sur la FIG 4 A Donc MUX 1 sélectionne R 3. Le second multiplexeur MUX 2 sélectionne une des trois régions potentielles supérieures du bloc courant BN. Cette région supérieure peut provenir, en référence avec les FIG 4 C, D, E soit de la mémoire R 3: cas de la seule région supérieure potentielle A 12 Donc dans le cas correspondant à 1 FIG 4 D, MUX 2 sélectionne R 3 (ou R 2). soit de la mémoire R 3: cas de la région supérieure potentielle A 13 Donc dans le cas correspondant à 1 FIG 4 F, MUX 2 sélectionne R 3. soit de la mémoire M 4: cas de région supérieure potentielle A 6 Donc dans le cas correspondant à la FIG LE, MUX 2 sélectionne M 4. Par une considération géométrique, due au sens de balayage de blocs, on constate qu'une région gauche ne peut jamais provenir de la mémoire M 4, ou plus exactement, une région n'ayant pas été impliquée dans le processus de fusion précédent, ne peut en aucun cas constituer une région gauche potentielle du bloc courant. De même, un bloc précédent initialisant une région ne peut en aucun cas constituer une région supérieure au bloc courant. a a Dans ces conditions, comme montré sur la FIG 1, il n'existe pas de contre- réaction de la mémoire M 4 en direction du module de calcul 11, et pas non plus de contre-réaction de la mémoire Ml en direction du module de calcul 12. Enfin le multiplexeur MUX 3 sélectionne, en fonction de la décision de fusion, l'information stockée soit dans la mémoire Ml (cas de la non fusion avec initialisation d'une nouvelle région), soit dans la mémoire R 2 (cas de la fusion gauche: avec mise à jour des informations concernant les régions modifiées), soit dans la mémoire R 3 (cas de la fusion supérieure, avec mise à jour des informations concernant les régions modifiées). Du point de vue temporel, le processus est illustré par les FIG 5 A et 5 B La référence IN représente les données fournies par le module BMA, et entrant dans le système de cohérence au point 2 de l'architecture de la FIG 1, référencé IN. En référence avec la FIG 5 A, pendant toute la durée t du traitement du bloc BN à estimer numéroté N sur l'image Ti, sont lues, dans les mémoires Ml, R 2, R 3, les informations correspondant au bloc précédent numéroté N-1 dans cette image Ti (voir la FIG 3) Et en même temps, les nouvelles informations concernant le bloc numéroté N sont écrites. Une phase de lecture est référencée RD sur cette FIG 5 A, et une phase d'écriture est référencée WT Ainsi par exemple une phase de lecture dans Ml est référencée RD/Ml Une phase d'écriture est référencée WT/Ml Il en est de même pour la mémoire M 4, o la lecture et l'écriture sont référencées respectivement RD/M 4, et WT/M 4 Par contre, dans les mémoires de travail R 2 et R 3, les entrées de données sont référencées respectivement IN/R 2 et IN/R 3 alors que les sorties des données sont référencées respectivement OUT/R 2 et OUT/R 3 Enfin les sorties 21 et 22 modules Il et 12 sont référencées OUT/11 et OUT/12. Les modules de calcul 11 et 12 de l'architecture représentée sur la FIG 1, traitent quant à eux, les informations de ce bloc de rang N avant de les écrire dans les mémoires Ml et R 2, ou R 3. La mémoire M 4, durant cette période t, est lue pour fournir les jeux de données d'erreur concernant une région quelconque numérotée N", qui constitue la région potentielle supérieure du bloc courant de numéro N Et les informations concernant le bloc précédent numéroté N-1 sont écrites dans cette mémoire M 4 Ceci est faisable puisque la décision de fusion concernant le bloc numéroté N-1 est déjà connue au moment o le bloc numéroté N est traité. Dans le chronogramme de la FIG 5 B, est illustré le remplacement de l'ancienne valeur correspondant à un vecteur noté Dp, ayant été stocké à l'adresse p référencée ap d'une mémoire, par la nouvelle valeur correspondant au même vecteur, mais concernant cette fois le bloc courant numéroté N Ainsi dans le cours d'une période t' qui correspond à la période de base t pour un bloc divisée par le nombre de pixels dans le bloc, d'abord, on lit à l'adresse p pour le bloc N-1, ce qui est référencé ap(N-1), puis on écrit à l'adresse p pour le bloc N, ce qui est référencé ap(N) Puis on passe au vecteur noté Dp+ 1 à l'adresse ap+l etc. Donc, comme il a été décrit précédemment, l'architecture de cohérence selon l'invention comprend deux mémoires particulières qui sont: la mémoire de la région gauche R 2, la mémoire de la région supérieure R 3. Le problème de l'utilisation des mémoires réside d'une manière générale dans le fait qu'il faut les adresser de la bonne manière Il faut donc prévoir un dispositif d'adressage pour ces deux mémoires R 2 et R 3. Un point particulièrement avantageux de l'invention est que ces mémoires sont constituées par des retards; c'est-à-dire que les modules de mémoire R 2 et R 3 sont des modules de retard fixe; du fait que les retards sont choisis fixes, ces modules de mémoire R 2 et R 3 n'ont pas besoin d'être contrôlés. Ainsi les modules de mémoire R 2 et R 3 ne stockent pas réellement les données relatives aux régions gauches et supérieures, mais sont destinés à retarder temporairement les jeux de données d'erreurs successifs relatifs aux régions gauches et supérieures. Un autre point particulièrement avantageux de l'invention est que l'architecture comporte, pour choisir le bon chemin de données correspondant au transfert des jeux de données d'erreurs durant le calcul relatif à chaque bloc courant, les trois multiplexeurs déjà décrits MUX 1, MUX 2, MUX 3, chacun ayant trois entrées et une sortie. Cependant, il est important de noter que les mémoires Ml et M 4 sont de véritables mémoires. En effet, la différence entre la mémoire Ml, qui doit être une mémoire réelle, et les retards R 2 et R 3 est due au fait que pour le bloc courant de rang N il faut pouvoir lire l'erreur correspondant au vecteur minimum de la région après fusion, et donc l'erreur correspondant au vecteur minimum de ce bloc courant dans cette région (cela correspond au critère devant choisir entre une fusion supérieure ou une fusion gauche au cas o les premiers critères aient été positifs pour les deux types de fusion) Par exemple dans le cas d'une mémoire de 128 cases, on stockera dans chaque case une erreur notée E sur un vecteur minimal noté Vi, soit EV 1, EV 2 EV etc i allant de 1 à 128. Le calcul de fusion donne un vecteur minimum noté VMIN, qui vaut soit V 1, soit V 2 soit Vi On a besoin de cette information EVMIN, et le système doit pouvoir aller la chercher au bon endroit Donc il faut connaître exactement l'emplacement de l'erreur associée à ce vecteur. C'est la raison pour laquelle, on ne peut pas remplacer la mémoire Mi par un retard fixe. En revenant au diagramme temporel de la FIG 5 B, on constate que pendant le traitement du bloc numéroté N-1, le jeu de données d'erreur du bloc N1 est stocké, en même temps que dans ladite mémoire Ml, le jeu de données d'erreur du bloc précédent N-2 est lu. On sait que, tel que montré sur la FIG 4, dans le découpage en régions, le bloc précédent N-1 constitue la région gauche du bloc courant N et est donc nécessaire pour le calcul du bloc courant. Dans le système selon l'invention, on a besoin de lire et d'écrire en même temps Le vecteur VN_ 1 relatif au bloc précédent N-1 est lu, et, pendant la même période t de bloc, l'erreur relative au vecteur courant VN est écrite. Donc on pourrait supposer A PRIORI, qu'il faut pour effectuer ces opérations de lecture et écriture simultanées, deux fois plus de capacité mémoire pour Ml. Mais il faut considérer que, avant d'écrire la nouvelle valeur constituée par l'erreur pour le vecteur VN relative au bloc courant de rang N, on va lire l'ancienne valeur pour le vecteur VN-t relative au bloc précédent de rang N-1, conformément au chronogramme de la FIG 5 B. Donc, on lit à l'adresse p, puis on écrase l'ancienne valeur en écrivant la nouvelle Il est donc nécessaire de prévoir deux fois moins de capacité mémoire qu'envisagé A PRIORI pour Ml. La mémoire M 4 quant à elle, contient les jeux de données d'erreur de toutes les régions trouvées dans l'image. En fait les jeux stockés sont seulement ceux relatifs aux régions qui peuvent servir pour traiter les blocs qui restent à estimer dans l'image On peut donc ainsi économiser aussi de la capacité mémoire pour la mémoire M 4. REVENDICATIONS 1 Dispositif d'estimation de mouvement entre des images successives d'une séquence d'images animées subidivisées en blocs bidimensionnels balayés successivement horizontalement de gauche à droite et du haut en bas dans chaque image, comprenant d'abord un module (BMA) qui détermine un jeu de données d'erreur, et, à partir de ce jeu, un vecteur de mouvement pour chaque bloc courant d'une image de la séquence, par rapport à des blocs de l'image précédente inclus dans un horizon de recherche, caractérisé en ce qu'il comprend en outre une structure de cohérence pour créer et faire croître desdites "régions" formées d'un bloc ou de plusieurs blocs adjacents, et ayant chacune un seul vecteur de mouvement, cette structure de cohérence comportant: a) des modules de mémoire (Ml, M 4, M 5) pour stocker respectivement les jeux de données d'erreur du bloc courant, des régions déjà formées, et les numéros affectés à ces blocs et régions respectivement; b) des modules de travail (R 2 et R 3) formés de deux retards fixes à appliquer aux jeux de données d'erreur des régions adjacentes au bloc courant déjà traitées, dites régions potentielles gauche et supérieure, candidates pour former une région nouvelle par rattachement avec le bloc courant; c) des modules de calcul ( 11, 12) pour comparer les jeux de données d'erreur du bloc courant et ceux desdites régions potentielles, et pour décider, en fonction de critères prédéterminés, soit le rattachement du bloc courant à l'une desdites régions potentielles, soit l'initialisation d'une région nouvelle à partir de ce bloc courant; d) des modules multiplexeurs (MUX 1, MUX 2, MUX 3), à trois entrées et une sortie, pour aller chercher les données d'erreur dans l'un des modules de mémoire ou travail (Ml, R 2, R 3) et les diriger respectivement vers les modules de calcul ( 11, 12) et vers la mémoire de stockage (M 4) des données des régions respectivement e) un module de contrôle ( 10) de la procédure des modules de calcul et de celle des modules multiplexeurs. 2 Dispositif d'estimation de mouvement selon la revendication 1, caractérisé en ce qu'il comprend en outre f) des contreréactions entre les sorties des modules de calcul ( 11, 12) et les entrées des modules de travail (R 2, R 3) relatives aux jeux de données d'erreur des régions nouvelles incluant le bloc courant et qui forment des régions potentielles gauche et supérieure respectivement, pour le bloc suivant le bloc courant, pour remplacer les données précédentes dans les modules de travail (R 2, R 3) en vue du traitement dudit bloc suivant. 3 Dispositif selon la revendication 2, caractérisé en ce que les calculs par le module (BMA) d'estimation de mouvement de chaque bloc comprennent la détermination de unedite "carte d'erreur" qui rassemble les erreurs relatives aux différences de luminosité des pixels du bloc courant et celles des pixels des blocs situés dans l'horizon de recherche déplacés vis-à-vis de la projection dudit bloc courant dans l'image précédente selon un vecteur dit de mouvement, unedite erreur BMA qui est l'erreur minimale parmi toutes les erreurs de la carte d'erreur, undit vecteur minimum qui est le vecteur de mouvement correspondant à l'erreur minimale (BMA), et en ce que pour chaque région nouvelle formée par le rattachement du bloc courant à unedite région potentielle, les modules de calcul ( 11, 12) effectuent la détermination de la carte d'erreur de la région nouvelle qui est la somme arithmétique des cartes d'erreurs de chaque bloc contenu dans cette région, l'erreur minimale (dite BMA) de la région nouvelle, qui est la somme des erreurs minimales relatives à chaque bloc, le vecteur minimum de la région nouvelle qui est celui qui correspond à l'erreur minimale et qui est choisit comme vecteur de mouvement de la région nouvelle. 4 Dispositif selon la revendication 3, caractérisé en ce que les modules de calcul ( 11, 12) effectuent la comparaison des données d'erreurs du bloc courant et des régions potentielles selon le critère: I/ comparaison de l'erreur minimale de ladite nouvelle région qui serait formée par le rattachement du bloc courant et d'unedite région potentielle gauche ou supérieure, avec l'erreur minimale relative à ce bloc, et avec l'erreur minimale relative à cette région potentielle avant rattachement, et éventuellement selon le critère dit d'arbitrage, II/ comparaison des erreurs recherchées dans la carte d'erreurs du bloc courant correspondant aux vecteurs minima desdites nouvelles régions qui seraient formées par rattachement, l'une du bloc courant ét de ladite région potentielle gauche, l'autre du bloc courant et de ladite région potentielle supérieure. Dispositif selon la revendication 4, caractérisé en ce que les modules de calcul prennent une décision positive de rattachement du bloc courant à l'une des régions potentielles si le critère I, écrit sous forme d'une inégalité est vérifié, c'est-à-dire si l'erreur minimale de la région nouvelle est inférieure ou égale à la somme augmentée d'un seuil réglable, de l'erreur minimale (BMA) relative au bloc courant, et de l'erreur minimale (BMA) relative à ladite région potentielle, 6 Dispositif selon la revendication 5 caractérisé en ce que, si le critère I est vérifié pour à la fois les deux régions potentielles gauche et supérieure, la décision positive de rattachement est prise sur la base du critère II d'arbitrage de rattachement du bloc courant avec celle des deux régions potentielles capable de former la région nouvelle.