Brevet FR2674666A1 — publié le 19921002

La présente invention concerne un réseau de décalage bidimensionnel prévu pour l'utilisation dans un circuit à très haut niveau d'intégration destiné à la compression d'image. Dans toute réalisation en silicium, capable de fonctionner à grande vitesse, d'une fonction quel- conque dans laquelle il y a un débit continu de don- nées, comme dans un circuit à très haut niveau d'inté- gration pour la compression d'image, il est important de maintenir tous les étages occupés en permanence, pour maximiser le débit Ceci implique souvent l'uti- lisation d'une configuration dite en tandem Certaines fonctions peuvent devoir être dupliquées, de façon que l'un de deux blocs fonctionnels travaille sur des don- nées à partir d'un instant t, tandis que l'autre bloc a terminé son travail et transmet des données à partir d'un instant (t-1). Une technique de compression d'image souhai- table est décrite dans la demande de brevet des E U A. no 07/511245, déposée le 19 avril 1990 Dans cette demande, une telle duplication apparaît nécessaire à une phase particulière du processus. Il serait souhaitable de procurer un réseau de décalage perfectionné que l'on puisse utiliser dans un dispositif de compression d'image tel que celui décrit dans la demande précitée. Un but de l'invention est de procurer un réseau de décalage bidimensionnel prévu pour l'utili- sation dans un circuit à très haut niveau d'intégra- tion destiné à la compression d'image. Dans un système de compression d'image en couleur rapide, il est souhaitable d'avoir trois exem- plaires du réseau de décalage La raison en est que les données de couleurs sont habituellement décompo- sées en trois composantes de couleurs, telles que les composantes Y, I et Q. Pour maximiser le débit, il est avantageux de traiter simultanément les trois ensembles de valeurs L'économie que l'on réalise en passant d'un réseau de décalage de 128 registres à un réseau de décalage de 64 registres est ainsi multipliée Dans un système triple, on obtient un gain de 192 registres. Si l'on suppose que chaque registre est un registre à 12 bits qui nécessite approximativement 100 portes équivalentes, le gain est proche de 20 000 portes équivalentes Ceci représente une aire de silicium notable. Un aspect de l'invention consiste en un réseau de décalage bidimensionnel prévu pour l'utili- sation dans la compression d'image de données de pixels, comprenant une structure de réseau de décalage qui comporte un ensemble de registres à décalage à plusieurs bits; et des moyens pour décaler les données de pixels d'image dans au moins deux directions parmi l'ensemble de registres à décalage de la structure de réseau de décalage. D'autres buts, caractéristiques et avantages de l'invention seront mieux compris à la lecture de la description détaillée qui va suivre de modes de réali- sation, donnés à titre d'exemples non limitatif La suite de la description se réfère aux dessins annexés dans lesquels: La figure 1 représente un procédé dit en tandem pour la circulation de données; Les figures 2 A et 2 B sont des diagrammes de numérotation de blocs de pixels et de direction de balayage de pixels; La figure 3 est un schéma synoptique d'un réseau de décalage à 128 points; La figure 4 A est un schéma d'un réseau de décalage bidimensionnel réduit conforme à la présente invention; La figure 4 B montre quatre éléments de réseau de décalage adjacents du réseau de décalage bidimensionnel réduit qui est représenté sur la figure 4 A; et Les figures 5 A à 5 G sont des diagrammes qui illustrent la circulation des données dans un réseau de décalage bidimensionnel conforme à l'invention. La description qui suit porte sur un réseau de décalage bidimensionnel qui, lorsqu'il est réalisé en silicium, procure une économie de 50 % par rapport à une forme de réalisation classique La technique uti- lisée est examinée ci-dessous en relation avec les dessins annexés. La technique classique pour effectuer une Transformation de Chen Généralisée consiste à traiter les données en blocs de 8 x 8 pixels L'une des fonc- tions de l'algorithme est de décomposer le processus de transformation en 16 transformations de dimensions 1 x 8 (du type vecteur linéaire) Le nombre 16 recou- vre en réalité deux ensembles de 8, c'est-à-dire que huit vecteurs horizontaux sont transformés et huit vecteurs verticaux sont transformés Le résultat final consiste en blocs bidimensionnels transformés. La figure 1 illustre la phase initiale du processus Il existe un registre à décalage d'entrée qui contient 8 des 64 pixels sous la forme d'un vec- teur de 1 x 8 Ce vecteur est ensuite transmis à la première unité de transformation L'information de sortie de l'unité de transformation est mémorisée dans un réseau de décalage qui est constitué par 128 regis- tres à décalage à 12 bits ( 12 bits est un nombre arbitraire et ce nombre pourrait avoir une valeur quelconque par exemple de 8 à 16) Pendant ce temps, le vecteur de 1 x 8 suivant a été introduit par déca- lage et transformé Le vecteur transformé résultant est décalé vers le réseau de décalage et le vecteur précédent est décalé d'une position vers le bas. Lorsque les huit premiers vecteurs ont été trransformés, la première moitié du réseau de décalage est pleine A ce point, les contenus des 64 registres sont décalés vers 64 registres "voisins" A partir de ces derniers, les valeurs intermédiaires sont décalées vers l'extérieur, de la droite vers la gauche, dans le but d'effectuer la seconde transformation. Pendant que ce processus est en cours, le bloc de pixels suivant remplit la première moitié du réseau de décalage Ceci illustre le déroulement d'un processus en "tandem" Cependant, bien qu'il soit possible de faire en sorte que la machine fonctionne toujours à sa vitesse maximale, il y a des intervalles de temps au cours desquels certaines lignes du réseau de décalage ne sont pas utilisées. La figure 2 A montre la manière selon laquel- le les blocs de pixels sont ordonnés pour être présen- tés au processeur et la figure 2 B montre la direction de balayage de pixels qui sont transmis au processeur, c'est-à-dire l'ordre des vecteurs La figure 3 montre le réseau de décalage à 128 points Des premiers coef- ficients de transformation apparaissent au sommet du réseau et ils sont décalés vers le bas jusqu'à ce que huit vecteurs aient tous été introduits Ensuite, l'ensemble complet de 8 vecteurs est mémorisé en étant transféré en diagonale et vers le bas dans l'ensemble voisin, comme décrit ci-dessus. La présente invention réalise exactement la même fonction avec une quantité de silicium réduite de moitié dans le réseau de décalage Ainsi, 64 registres à décalage à 12 bits seulement sont nécessaires La figure 4 A représente la structure d'un tel réseau Il est très important de noter que dans le modèle à 128 éléments, chaque élément du réseau reçoit des données d'entrée provenant d'une seule direction Les regis- tres principaux reçoivent toujours des données d'en- trée provenant du haut et ils les décalent en sortie vers le bas Les registres "voisins" reçoivent des données provenant de la droite et ils les décalent toujours vers la gauche. Dans l'exemple de la figure 4 A, chaque élé- ment peut recevoir des données d'entrée provenant de deux directions et il peut les émettre dans deux directions Ainsi, le réseau peut effectuer un décala- ge dans deux directions Ceci est une caractéristique fondamentale de l'invention. La figure 4 B montre une représentation plus détaillée de la structure de la figure 4 A pour quatre éléments adjacents On note que des bascules avec des entrées multiplexées (MUX) constituent un élément de base commun dans des formes de réalisation de circuits à très haut niveau d'intégration comportant des réseaux de portes et des cellules de type standard. Ces éléments sont parmi les éléments les plus rapides dans la gamme qu'offrent la plupart des fournisseurs de circuits à très haut niveau d'intégration. On va maintenant considérer que ces éléments constituent un plan de bits du réseau de décalage (on peut considérer de façon équivalente que leur largeur est égale à la largeur de mot) La ligne de commande commune dirigée vers les entrées multiplexées et l'horloge commune pour les bascules ne sont pas repré- sentées Toutes les bascules reçoivent des signaux d'horloge de manière continue et simultanée La fonc- tion de multiplexage d'entrée détermine si les données d'entrée proviennent de la bascule située au-dessus ou de celle située à gauche L'étage de multiplexage 2/1 à la sortie n'est également pas représenté sur la figure 4 A Dans la description qui est faite, on considère que les données de sortie proviennent de la gauche ou proviennent du haut, exactement comme dans le réseau intérieur. En fonctionnement, la ligne de commande de multiplexage est placée dans la condition correspon- dant à une direction, par exemple pour le chargement à partir de la gauche Huit vecteurs sont chargés sous l'effet de huit impulsions d'horloge Le bloc de résultat intermédiaire de 8 x 8 entier se trouve maintenant dans le réseau et est prêt à être transfor- mé La ligne de commande de multiplexage est placée à la polarité opposée, de façon que les données qui sont appliquées aux bascules, et les données de sortie, proviennent du haut Les données qui sont enregistrées dans les bascules sont émises en ordre transposé au cours des huit périodes d'horloge suivantes Les nou- velles données ont été enregistrées dans un ordre transposé et, après huit périodes d'horloge, la ligne de commande de multiplexage est placée dans la condi- tion d'origine Par conséquent, chaque élément dans le réseau est utilisé en permanence (aucun gaspillage de silicium), les vecteurs sont manipulés en parallèle (à une cadence d'horloge qui est égale à la fraction 1/8 de la cadence d'horloge de pixel ou de composant), et la commande est réalisée au moyen d'une seule ligne. La figure 5 A montre trois blocs de pixels, à savoir le bloc 1, le bloc 2 et le bloc 3 Le bloc 1 est le premier dans le mécanisme de transposition et il est suivi par le bloc 2 (auquel est affecté le symbole '), et par le bloc 3 (auquel est affecté le symbole "). La figure 5 B montre le processus auquel sont soumis les vecteurs horizontaux du premier bloc rem- plissant le réseau Lorsque le réseau est plein, une rotation de 90 lui est appliquée, ce qui fait que les vecteurs deviennent des vecteurs verticaux, comme le montre la figure 5 C Ensuite, les vecteurs verticaux sont décalés en sortie vers la droite (en commençant par VO) (figure 5 D) Pendant ce temps, les vecteurs verticaux portant le symbole prime, qui proviennent du bloc 2, commencent à arriver par la gauche (figures 5 D-5 E) Enfin, lorsque le vecteur V 7 sur la figure 5 D est décalé en sortie, il existe maintenant un réseau qui est rempli par les vecteurs V' qui forment le second bloc A ce point, le réseau subit à nouveau une rotation de 90 de façon que maintenant ces vecteurs VI deviennent des vecteurs HI (figure 5 F) Les vec- teurs H' sont décalés en sortie à partir du bas et les vecteurs H" commencent à arriver à partir du bloc 3 (figures 5 F-5 G) Une fois que les vecteurs H' ont été entièrement décalés hors du réseau, ce dernier est rempli avec les vecteurs H" Une autre rotation de 90 ramène le réseau de l'invention au point de départ. En résumé, si les vecteurs Hi, avec i = 0, 1,- 7, sont des vecteurs à huit éléments, on peut désigner chaque élément par Hij, avec j = 0, 1, 7. L'opérateur de transposition transpose le réseau en remplaçant les lignes par les colonnes et inversement: TRANSPOSÉ lH l = H = V 13 13 -13 En faisant tourner de 900 la direction de décalage, et en effectuant le décalage de la gauche vers la droite, il est possible de transformer les vecteurs intermédiaires pour obtenir les caractéristi- ques dimensionnelles désirées pour la transformation horizontale Ainsi, pour tous les blocs de pixels pairs, le réseau est décalé de la gauche vers la droite, tandis que pour les blocs de pixels impairs le réseau est décalé du haut vers le bas Ce procédé utilise pleinement le silicium. La description précédente de modes de réali- sation spécifiques de l'invention a été présentée dans un but d'illustration Elle ne vise pas à être exhaus- tive ou à limiter l'invention aux formes précises décrites, et de nombreuses modifications et variations sont évidemment possibles, sur la base des principes indiqués ci-dessus Les modes de réalisation ont été choisis et décrits dans le but d'expliquer le mieux les principes de l'invention et son application pra- tique, pour permettre ainsi à l'homme de l'art d'uti- liser au mieux l'invention et divers modes de réalisa- tion présentant diverses modifications appropriées à l'utilisation particulière envisagée. REVENDICATIONS 1 Réseau de décalage bidimensionnel prévu pour l'utilisation dans une opération de compression d'image effectuée sur des données de pixels d'image, caractérisé en ce qu'il comprend: une structure de réseau de décalage comprenant un ensemble de registres à décalage à plusieurs bits; et des moyens pour déca- ler les données de pixels d'image dans au moins deux directions à travers l'ensemble de registres à décala- ge de la structure de réseau de décalage. 2 Réseau de décalage selon la revendication 1, caractérisé en ce que la structure de réseau de décalage comprend des moyens destinés à décaler les données de pixels à partir d'une première entrée gauche ou d'une première entrée supérieure de la structure de réseau de décalage, et des moyens desti- nés à émettre les données d'image décalées respective- ment vers une première sortie droite ou une première sortie inférieure. 3 Réseau de décalage selon la revendication 1, caractérisé en ce qu'il comprend en outre des moyens destinés à décaler les données de pixels d'image horizontalement dans la structure de réseau de décalage, et ensuite verticalement dans la structure de réseau de décalage. 4 Réseau de décalage selon la revendication 1, caractérisé en ce que les données de pixels d'image se présentent sous la forme de vecteurs linéaires de dimensions 1 x N. 5 Réseau de décalage selon la revendication 4, caractérisé en ce qu'il comprend en outre des moyens destinés à décaler dans une première direction des blocs de pixels impairs, et des moyens destinés à décaler dans une seconde direction, différente de la première, des blocs de pixels pairs.