Brevet FR2650462A1 — publié le 19910201

DISPOSITIF DE OONVERSION D'UN BALAYAGE LIGNE EN UN BALAYAGE EN DENTS DE SCIE VERTICALES PAR BANDES Dans diverses applications de traitement d'image ou plus généralement de traitement de données, on souhaite convertir une image résultant d'un balayage horizontal ligne par ligne en une image balayée en dents de scie verticales par bandes. Ainsi, comme l'illustre la figure 1, étant donné une image cozprenant des lignes successives de N éléments d'image (pixels) dont chacun correspond à un mot de données, on souhaite effectuer une lecture en dents de scie par bandes de M lignes, de la façon illustrée en figure 1. La façcon la plus classique pour réaliser une telle conversion consiste à utiliser deux mémoires RAM ayant chacune la dimension d'une bande de MN données. Les données correspcndant au premier balayage ligne sont mémorisées dans la première mémoire puis elles sont lues dans l'ordre souhaité du balayage en dents de scie par bandes tandis que les doerres de la bande suivante sont écrites dans l'autre mémoire et ainsi de suite les deux mémoires sont alternativement lues et écrites. Ce procédà présente l'incovénient évident de rnéoessi- ter deux mémoires avec leurs systèmes indépendants d'adressage. La présete invention propose d'utiliser une seule mémoire d'une capacité de MN mots pour réaliser oette opeération et propose également un circuit permettant de fournir autcnati- quement des adresses dans lesquelles on va lire et écrire simul- tanérment des données dans des cases sélectionnees de la m3moire. Pour atteindre. objets, la présente invention prOvoit un dispositif de conversion d'un balayage linéaire de lignes suxccssives de N données en un balayage en dents de scie par bandes d'une hauteur de M lignes, comprenant une émxoire de MN mots dans laquelle sont séquentiellement écrites les MN premires données puis dans laquelle les données suivantes sont séquentiellement écrites tandis que les données existantes sont lues en de mêmes adresses successives A,j, i déterminant un numéro d'ordre des données dans la mémoDire (0 xj étant un nombre tel que xi., = N.xj Modulo(MN-l) et xi = 1. Selcn un mode de réalisation de la présente invention, le générateur d'adresse coiprend un premier registre de la valeur Xj; un deuxième registre de valeur d'adresse (A.,,); un additionneur additionnant la sortie du premier registre et la sortie du deuxième registrLe (xj + Ai,j); des moyens (S2, SELI) pour transférer la plus petite des valeurs positives (xj + Ai,j) et [xj + A,j - (MN-1)] vers le deuxième registre; et des moyens pour, à chaque changement de bande, transférer la valeur (xj t) dans le prenier registre (xj), et forcer à zéro le contenu du deuxiame registre (Ao,j).. La présente invention va être décrite plus en détail dans le cadre d'un mode de réalisaticn particulier en relation avec les figures jointes parmi lesquelles: la figure 1 représente schématiquement le but à atteiidre par la présente invention à savoir une cxnveersicn de balayage ligne en balayage en dents de scie par bandes; les figures 2 à 5 représentent des remplissages succes- sifs de la mémoire selron la présente invention; la figure 6 reprsente un circuit permettant d'obtenir les adresses suressives recherchées d'adressage de la mâmoire. L'objet de la présente invention va être exposé en relation avec les figures 2 à 5 qui représentent des contenus sucessifs d'une mémoire RAM unique. On suppose dans l'exemple illuLstré que cette mnémoire correspondant à une baxnde comprend trois (M=3) lignes de sept (N=7) mots, les cases mémoire étant numnrotéss de 0 à 20. Initialement, comme le représente la figure 2, les doaées séquentielles sont écrites dans les cases corresponantes. Une fois la mémoire remplie, elle est lue en dents de scie, c'est-à-dire dans l'ordre: 0 7 14 1 8 15 2 9 16 3 10 17 4 11 18 5 12 19 6 13 20 A chaque lecture d'une case, la donnfe incidente est inscrite dans la case qui vient d'être lue. Les cases sont donc replies des données successives de la façcn indiquée en figure 3. Ensuite, il faut à nouveau rechercher sussivement les données 0, 7, 14.... On note à partir de la figure 3 qu'elles se triouvent aux adresses successives: 0 9 18 7 16 5 14 3 12 1 10 19 8 17 6 15 4 13 2 11 20 La figure 4 montre les données séquentielles inscrites dans les cases orrespeantes à savoir que la donnée O est dans la case 0, la donnée 1 dans la case 9 o se trouvait la donnée 7, la donnée 2 dans la case 18 o se trouvait la donnée 14, et ainsi de suite. Si l'on veut lire le contenu de la mémoire de la figure 4 dans l'ordre des donrnes 0, 7, 14... on est amenré à lire les cases mémoire dans l'ordre: 0 3 6 9 12 15 18 1 4 7 10 13 16 19 2 5 8 11 14 17 20 et l'on' écrit à nouveau dans la mémoire lors de chaque lecture la donnée incidente. Le remplissage orrespcndant est illustré en figure 5. On voit que, si l'on veut lire les dcneres de la figure dans l'ordre 0, 7, 14..., on arrive à nouveau à un remplissage identique à oelui de la figure 2 et le cycle se répéte jusqu'à lecture de toutes les bandes de l'image. - Les adresses suoessives d'adressage de la mDmoire RAM pourraient être mémorisées dans des m3moires ROM mais Ceci exige- rait une capacité de mémorisation très importante, au moins égale à oelle de la deuxième mémoire RAM présente dans le cadre du mode de réalisation à deux RAM susmentionnr. Ainsi, la présente invention prévoit un circuit permet- tant de générer les adresses suocessives A.,j, o i désigne l'adresse d'une case mémoire (une adresse variant entre 0 et 20 dans 1 'exemple pré, demment décrit) et o j correspond à un numéro de bande. Ainsi, i est compris entre 0 et MN-l, N étant lé rnmbre de mots dans une ligne et M le nombre de lignes dans une bande et j est un numéro de bande qui est incrmrenté d'une unité quand on passe d'une bande à la suivante. Un mode de réalisation du circuit selon la présente invention est illustré en figure 6. Il comprend un premier registLze R1 de mémorisaticn d'une valeur x", ce regisLtre étart initialement chargé à une valeur 1. Un deuxième registre R2 contient la valeur de l'adresse A,j en cours. Les sorties des registres R1 et R2 sont fournies à un premier additionneur Sl dont la sortie est envoyée d'une part à un circuit de sélection SEL et d'autre part à un deuxième additionneur S2 qui soustrait de la sortie de Sl la valeur (MN-1). L'additionneur S2 comprend une sortie de validation V1 qui indique si le résultat de 1'opé- ration est strictement positif. Cette sortie est envoyée au sélecteur s1, qui reçoit comme deuxième entrée la sortie de l'additiocnneur S2. Ainsi, si le signal VI indique que le résultat de S2 est positif, le sélectionneur STEL1 sélectionne la sortie de S2; sinon, il sélectionne la sortie de Sl pour l'envoyer dans le registre R2 et fournir une nouvelle valeur Ai,j. L'ensemble des circuits Sl, S2, SELI et R2 est actionne au rythme de la séquene d'adresses (horloge de données) et fournit des adresses Ai, j pour des valeurs de i suLessives. Quand on passe d'une bande à la suivante, c'est-à-dire que la valeur j s'irxreznte, un signal de synchronisation SYNC remet à zéro la valeur de l'adresse dans le registr R2 et met une valeur suivante (xj + 1) dans le registre Rl de la valeur xj. Cette valeur xj l peut être obtenue de la fagon illus- trée dans la partie supérieure de la figure. La sortie d'un registre R3, qui correspond initialement au contenu du registrL Rl, est appliquée à un circuit de sélection SEL2 après multipli- cation par la valeur N. La sortie du circuit SEL2 est envoyée au registr R3 destiné à mémoriser la valeur xj t, au moins à chaque oocurenoe du signal SYNC qui est un signal apparaissant tous les MN coups d'horloge de données à chaque changmrent de bande (ho>rloge de bande). La sortie du registre R3 est également envoyée à un additionneur S3 qui soustrait de la valeur qu'il contient la valeur MN-1. Cumme i'additiconneur S2, 1'additionneur S3 comprend une sortie de validation V2 indiquant si le résultat de l'opération est strictement positif. La sortie de l'addition- neur S3 est envoyée à une deuxième entrée du circuit de sélection SEl2 et se substitue à sa valeur-de sortie précédente. Si le résultat est strictement positif, le signal V2 envoyé par l'intermédiaire d'une porte OU au registre R3 entraiîne le transfert de la valeur de sortie du sélecteur dans oe registre R3, s'il est négatif ou nul, le contenu du registrLe n'est pas modifié. Graoe à l'opération des additionneurs S2 et S3 et des sélecteurs SELi et SEL2, on notera que l'on obtient: xj. = Nxj Modulo(MN-1), et Ai.,-; = (Ai,j+x3) Mculo(MN-1). On définit ici l'opération A Modulo(MN-l) par: A Modulo(MN-l) - A si A A MDdulo(MN-l) = A-(MN-1) tant que A > MN-1. Si l'on prend des exemples de valeurs numériques tels que ceux des figures 2 à 5, on voit que ces opérations cornduient au remplissage des tableaux de la façon indiquée prï5édement. Le circuit selon la présente invention est particalie- rement simple et occupera généralement beaucoup moins de place sur une puce de siliciun que des memoires' ROM contenant les adresses successives dont on doit affecter les remplissages successifs des blocs mémoire ontenant une bande d'image. En outre, on notera dans le circuit ci-dessus que la valeur xj.,1 ne doit être disponibie que tous les MN coups d'horloge de données, lors de l'apparition du signal SYNC, c'est-à-dire que le circuit de la partie supérieure de la figure 6 peut fonctionner relativement lentement et donc que le multi- plieur par N n'a pas besoin d'être un multiplieur rapide sophis- tiqué. En effet, si l'on se place immdiatement après l'appa- rition d'un signal SYNC alors que le registre R3 contenait la va- leur xj qu'il vient de transférer au registre.R1, ce registre R3 reçoit la valeur Nxj calculée au cours du cycle d'horloge précédent. La boucle S3, SEL2, R3 permet de remplacer en quelques cycles d'horloge de données cette valeur Nxj par Nxj Modulo (MN-1) qui est la nouvelle valeur xj+l. Le multiplieur dispose alors de tout le reste du cycle de l'horloge de bande pour calculer la valeur Nxj4l qui sera transférée au selecteur-. SEL2 lors de l'apparition du signal SYNC. Pour éviter d'attendre un temps de multiplication ini- tial, on prévoira des entrées d'initialisation INIT vers le registre R3 et le sélecteur SEL2 pour introduire par exemple les valeurs initiales 1 dans R3 et N dans SEL29 au premier cycle. Par ailleurs, on notera que le circuit selcn la présente invention permet de façon inver se de réaliser la conversion d'un balayage en dents de scie par bande en un balayage ligne en changeant simplement dans le multiplieur la constante N par la constante M. Selon un aspect de la présente invention, on notera que les valeurs de xj se répètent régulièrement selon un cycle qui dépend de la dimension de la bande considérée. Ce cycle était de 4 dans l'exemple des figures 2 à 5. Le calcul montre que pour des bandes de 8 lignes le cycle sera de: 844 pour des lignes de 720 dcnnes 39 pour des lignes de 721 dcnnûes pour des lignes de 722 données 13 pour des lignes de 1024 données 182 pour des lignes de 1025 données 1316 pour des lignes de 1026 données Ces exemples particuliers sont données car des lignes de 720 et de 1024 do-nées oerrespondent à des cas envisagés pour la télévision numérique. On constate que, pour oertaines dimensions de bandes, seul un petit nombre de valeurs xj apparait (20 pour 8 lignes de 722 données et 13 pour 8 lignes de 1024 dcnnées). En -y, selon une variante de la présente invention, dans le cas d'un circuit dédié à une application spécifique, on pourra remplaoer les circuits d'élaboration des valeurs xj apparaissant à la partie supérieure de la. figure 6 par une ROM mémorisant les quelques valeurs particulières de xj. On notera en outre que, si pour une application particulière on toabe sur un grand nombre de valeurs de xj (cas de 720 données susmentionnré), 'on pourra choisir fictivement un rnombre plus élevé (722 données) pour arriver à un petit nxombre de valeurs xj, les données ntares étant éliminées (dans le cas d'une application à la télévision elles apparaitrcnt pendant la durée du retour ligne). 2650 4 6 2 Pour obtenir -un oenarsian inverse dY dents de scie en balayage ligne il suffira de lire les damées m'nrisées dans la ROM en sens inverse du sens initialement prévu pour la conversion de balayage ligne en balayage en dents de scie. REVENDICATIONS 1. Dispositif de oonversion d'un balayage li'éire de lignes suocessives de N données en un balayage en dents de scie par barxes d'une hauteur de M lignes, caractérisé en ce qu'il crpren1d: - une mémoire de M mots dans'lasuelle sont séquentiel- lemnt _&rites les MN premières donrnées puis dans lauelle les d&nnées suivantes sont séquentiellement écrites tandis que les &rnnés existantes sont lues en de mêmes adresses successives Ai, j, i déterminant un numéro d'ordre des données dans la mêmoire (O rxxbre tel que xj. = N.xj Modulo(MN-l) et x1 = 1. 2. Dispositif selcn la revendication 1, caractérisé en oe que le géré_rateur d'adresse ocmprend: un premier registre (Rl) de la valeur xj, un deuxième registre (R2) de valeur d'adresse (Al,j un additionneur (Sl) additionnant la sortie du premier registre et la sortie du deuxième registre (xj + Aj), des moyens (S2, SELl) pour transférer la plus petite des valeurs positives (xj + Ai,j) et [xj + Ai,j - (MN-1)] vers le deuème registre, des tooyens pour, à c1aque changarent de bande, trans- férer la valeur (xj.,) dans le premier registre (xj), et foroer à zéro le contenu du deuxime registre (A,j). 3. Dispositif selon la revendication 2, caractérisé en ce que les valeurs xj scnt prèxémorisees. 4. Dispositif selon la reverdicaticn 2, caractérisé en oe que les valeurs xj sent fournies par un circuit c renant: un multiplieur par N reevant la valeur xj et fournis- sant Nxj, un troisième registre (R3) recevant la plus petite des valeurs positives Nxj et Nxj MDdulo (MN-1).