Brevet FR2736739A1 — publié le 19970117

Dispositif de transformation bidimensionnelle inverse en cosinus discret La présente invention concerne un dispositif de traitement numérique du signal, et plus particulièrement un dispositif de transformation bidimensionnelle inverse en cosinus discret (IDCT) qui convient pour être mis en oeuvre sur un circuit intégré à très grande intégration (VLSI). Plusieurs normes vidéo internationales comme celles du Joint Picture Expert Group (JPEG), du Motion Photography Expert Group (MPEG), et de la norme H.261, exigent un circuit de compression ou de codage de données vidéo rapide. Bien qu'un effort ait été fait pour simplifier l'algorithme de IDCT, un circuit IDCT classique, tel que représenté sur la figure 1 (art antérieur) reste très compliqué. En outre, l'efficacité de fonctionnement de la configuration de circuit de la figure 1 (art antérieur) ne satisfait pas aux exigences de temps réel des normes mentionnées ci-dessus. Par exemple, afin de réduire les dimensions du circuit, des procédés tels que la rétroaction de données peuvent être adoptés dans la conception du circuit, ce qui augmente le temps d'exécution de la transformation des données. Sans un agencement habile du flux de données ou des relations de synchronisation, les vitesses de fonctionnement du circuit IDCT sont trop faibles pour être conforme aux exigences des normes internationales mentionnées ci-dessus.Ces inconvénients vont être rendus plus évidents par la description suivante du circuit de l'art antérieur. Le circuit de la figure 1 (art antérieur), qui est un circuit IDCT l-D, comprend un circuit combinatoire 10 pour recevoir des données d'entrée, plusieurs circuits de transformation 12 à 19 pour traiter les données d'entrée, et plusieurs éléments de posttraitement pour générer des données de sortie. Chacun des circuits de transformation 12 à 19 comprend un dispositif à mémoire 22, un multiplicateur 24, un registre 26, un additionneur 28, un accumulateur 30 et un autre registre 32. En ce qui concerne les éléments de post-traitement, deux multiplexeurs 34 et 36, un additionneur 37, un soustracteur 38 et un circuit de permutation 40 sont fournis. Ce circuit peut exécuter l'algorithme de IDCT 2-D en effectuant deux transformations l-D successives.C'est-à-dire que les résultats de la IDCT 2-D peuvent être obtenus en connectant deux circuits de la figure 1 (art antérieur) en série ou en ayant une rétroaction du circuit de permutation 40 au circuit combinatoire 10 du circuit IDCT. Cependant, étant donné que le multiplicateur, dans chaque circuit de transformation 12 à 19, a une vitesse de fonctionnement très faible, l'efficacité de transformation du circuit IDCT est affectée. En outre, du fait que le circuit de la figure 1 (art antérieur) exécute deux fois les processus de IDCT l-D pour obtenir les résultats 2-D, le fonctionnement en temps réel est difficile à obtenir. Bien que des dispositifs formant mémoire morte (ROM) puissent prendre la place des multiplicateurs du circuit IDCT pour augmenter l'efficacité de fonctionnement, des dispositifs formant ROM ayant une très grande capacité sont nécessaires à la transformation 2-D. En conséquence, les dimensions du circuit seront trop grandes pour être intégrées dans un circuit VLSI. La présente invention propose ainsi un circuit IDCT 2-D ayant une structure arithmétique répartie, de manière à réduire la complexité du circuit et à augmenter l'efficacité de transformation. La présente invention propose également un circuit IDCT 2-D comprenant des éléments fonctionnant à différents débits, permettant d'effectuer la transformation des données à grande vitesse pour satisfaire les besoins de traitement en temps réel. La présente invention propose également un circuit IDCT 2-D ayant un flux de données et une synchronisation spécifiques, de façon à diminuer les dimensions du circuit et à faciliter sa mise en oeuvre sur un circuit VLSI. Un dispositif pour une IDCT 2-D en temps réel selon la présente invention est constitué d'un registre d'adaptation de débit, d'une paire de multiplexeurs, d'une pluralité de registres, d'une pluralité d'extracteur de paramètres, d'une pluralité d'accumulateurs, d'une pluralité d'éléments additionneurs, d'une paire de troncateurs, d'un registre de transposition et d'un registre d'adaptation inverse de débit. Les données sont entrées dans le registre d'adaptation de débit et sorties du registre d'adaptation inverse de débit à un premier débit. Toutefois, le processus de transformation, effectué entre le registre d'adaptation de débit et le registre d'adaptation inverse de débit, est à un second débit. En outre, une structure arithmétique répartie est utilisée dans l'invention pour diminuer la complexité du circuit et augmenter l'efficacité de fonctionnement. Ainsi, l'agencement de circuit selon la présente invention est capable d'exécuter le IDCT 2-D en temps réel, et peut être intégrée dans un agencement VLSI. Afin de comprendre plus complètement la présente invention et ses avantages, on se réfère maintenant à la description suivante en relation avec les dessins joints, où les numéros de référence semblables représentent des sous-ensembles semblables, et sur lesquels La figure 1 (art antérieur) est un schéma fonctionnel d'un circuit IDCT 2-D selon la technique antérieure La figure 2 est un schéma de principe d'un circuit IDCT 2-D selon la présente invention ; La figure 3 est un schéma fonctionnel détaillé du registre 14 représenté sur la figure 2 La figure 4 est un schéma fonctionnel détaillé d'un extracteur de paramètres 15 représenté sur la figure 2 La figure 5 est un schéma fonctionnel détaillé d'un accumulateur 16 représenté sur la figure 2 La figure 6 est un schéma fonctionnel détaillé d'un élément additionneur 17 représenté sur la figure 2 ; et La figure 7 est un chronogramme représentant le fonctionnement du circuit de la figure 2. Avant la description du circuit IDCT d'un mode de réalisation préféré de la présente invention, l'algorithme IDCT va être expliqué. Afin de simplifier la description suivante, une matrice de données ayant une dimension de 8x8 est prise pour exemple. Bien entendu, la présente invention n'est pas limitée à une dimension 8x8. Si une matrice de données d'entrée Y du circuit IDCT a des éléments YUV destinés à être transformés en Xij en constituant ainsi une matrice originale X, l'équation de transformation peut être exprimée sous la forme de l'équation (1). où les paramètres C(u) et C(v) sont respectivement En général, on peut exprimer l'équation (1) sous la forme de l'équation (3), pour simplifier le calcul. C'est-à-dire que l'algorithme 2-D direct de l'équation (1) est réduit en des processus l-D double de l'équation (3). En conséquence, l'équation IDCT peut être développée en une expression matricielle, comme indiqué par l'équation (4), qui peut décrire de façon plus appropriée le calcul des lignes et colonnes dans un processus IDCT. [x,] [A B A @ S F G Y0 ] x, @ @ @ @ @ -S - D - F Y1 -D G Z y2 - - -D y3 Z Z y4 @ @ y5 (4) x@ @ F y6 x@ @ @ F -G y7@ avec les éléments suivants En raison de leurs propriétés symétriques, la dimension de la matrice 8x8 de l'équation (4) peut être réduite encore plus. Ainsi, des expressions très simplifiées du processus IDCT qui comprennent le calcul de matrices 4x4 sont représentées par les équations (5) et (6). x0 A B @ @ E F G Y2 x1 A C -A -B Y@ E -G -D -F Y3 = #x2# A -C -A S #Y@# F -D G E #Y5# x3 A -B A -S Y@ G -F E -D Y7 (5) x@ A B D E F G Y@ x6 A -A -B @ E -S -@ -F Y2 = #x5# A -C -A @ @ #F - @ E #Y@# X4 A -B -F E -D y@ (6) De toute évidence, il n'y a que deux multiplications différentes des matrices des équations (5) et (6).Si deux matrices M et N sont définies par M A S A @ E F G y1 M A -A -B N E -G -D -F Y3 M=##= et N=@ =@, (7) M2 A -C -A B F -D G E Y5 M3 A -B A -C@Y@ N2 G -F E -D Y7 les équations (5) et (6), c'est-à-dire les équations du processus IDCT, peuvent être exprimées comme étant x@ M@ N@ M@ x@ M@3 N@ #=# - et - - x@ M@ N. - M (8) x@ M@ En d'autres termes, le résultat de la IDCT, la matrice X, peut être obtenu en additionnant et en soustrayant les matrices 4x4 M et N. Etant donné que le fonctionnement des multiplicateurs est trop lent pour le calcul matriciel, les dispositifs formant ROM sont utilisés dans la présente invention pour extraire les paramètres IDCT et faciliter ainsi le calcul matriciel. La présente invention utilise une structure arithmétique répartie pour réaliser le calcul mentionné ci-dessus. La structure arithmétique répartie peut réduire les exigences de capacité des dispositifs formant ROM. L'équation (9) est une multiplication de matrices 4x4. (9) où les paramètres C, I et O ont respectivement m, n et m+n bits. En conséquence, l'équation (9) peut être réécrite sous la forme suivante En outre, si Ij est représenté comme un complément 2's, c'est-à-dire où Ijo est un bit de signe et le bit 0 est le bit de poids fort (MSB), l'équation (10) peut être représentée sous la forme suivante Le dernier terme d'équation (12) est calculé par la sélection de valeurs de Ci0 à Ci3, sur la base de la pondération des paramètres 10 à I3.Par exemple, lorsque k=4 et 104114124134=1011, la valeur du dernier terme de l'équation (12) sera CiO+Ci2+Ci3. En conséquence, si les valeurs de I0kIlkI2kI3k ont été décidées, la valeur du dernier terme de l'équation (12) peut être obtenue à partir d'un dispositif formant ROM à 16 mots où des valeurs prédéterminées de Ci0I0k+CilIlk+Ci2I2k+Ci3I3k sont enregistrées. Dans la présente invention, chaque mot du dispositif formant ROM est constitué de m+n bits. Ainsi, le calcul de l'équation (12) peut être effectué par une accumulation de n multiples de résultats provenant du dispositif formant ROM à 16 mots et d'un additionneur/soustracteur à (m+n) bits. En conséquence, un mode de réalisation préféré de la présente invention va être décrit en relation avec le schéma de principe de la figure 2. Si la matrice d'entrée Y a une dimension de NxN, le circuit IDCT 2-D de la présente invention comprend un registre d'adaptation de débit 10, deux multiplexeurs 11 et 12, N premiers registres 13, N seconds registres 14, N extracteurs de paramètres 15, N accumulateurs 16, N/2 éléments additionneurs 17, une paire de troncateurs 18 et 19, un registre de transposition 20 et un registre d'adaptation de débit inverse 21. Le fonctionnement de chaque élément du circuit IDCT 2-D va maintenant être expliqué. Le registre d'adaptation de débit 10 reçoit des données entrées à un premier débit et sort des données à un second débit. C'est-à-dire que les éléments de la matrice d'entrée Y sont entrés dans le registre d'adaptation de débit 10 au premier débit. Puis une séquence de données réagencée est envoyée au multiplexeur 11 depuis le registre d'adaptation de débit 10 au second débit. Le second débit est de préférence deux fois plus rapide que le premier débit. Les différents débits d'entrée/sortie de données peuvent être obtenus en fournissant des signaux de commande de différentes fréquences à la borne d'entrée et à la borne de sortie du registre d'adaptation de débit 10. En conséquence, une opération de transformation à deux vitesses peut être obtenue à l'intérieur du circuit IDCT 2-D. Les multiplexeurs 11 et 12 fournissent deux chemins de données pour la transmission de données. Un premier chemin de données lla est fourni par le multiplexeur 11 pour la séquence de données d'entrée réagencée provenant du registre d'adaptation de débit 10. Ce chemin de données est actif pendant un premier processus IDCT l-D. Lorsque le premier processus IDCT 1-D est terminé, un second processus IDCT l-D commence, et un second chemin de données llb est fourni à la place du premier chemin de données par le multiplexeur 11 pour transmettre une autre séquence de données à partir du registre de transposition 20. Les premiers registres 13 sont connectés en série. L'un des premiers registres 13 est connecté au premier multiplexeur 11 pour acquérir des données puis séquentiellement écrire les données dans un premier registre 13 suivant. Ces premiers registres 13 sont des registres à 1 mot dont la longueur de mot dépend des exigences de précision de la norme de communication sur laquelle est basé le circuit IDCT. Les seconds registres 14 sont également des registres à 1 mot. Les seconds registres 14 ont des données d'entrée à 1 mot, tandis que deux données à 1 bit par cycle d'horloge sont respectivement sorties par les bornes 15a et 15b. La structure des registres 14 est illustrée sur la figure 3, sur laquelle huit registres 141 à 1 bit sont connectés en série pour fournir un chemin de données à bits impairs pour la borne 15a, tandis que huit registres supplémentaires sont connectés en série pour fournir un chemin de données à bits pairs pour la borne 15b. Chaque extracteur de paramètres 15 comprend deux dispositifs 151 formant ROM à 16 mots et un additionneur/soustracteur 152, comme illustré sur la figure 4. La longueur de mot dans l'extracteur de paramètres 15 est de m+n bits. Comme défini dans l'équation (9), m et n dépendent des normes de communication sur lesquelles est basé le circuit IDCT. Etant donné que les données d'entrée provenant de la borne 15a sont inférieures d'un ordre à celles de la borne 15b, les paramètres extraits du dispositif 151 formant ROM à la borne 152a doivent avoir un décalage de 1 bit vers la droite avant de s'y ajouter ou de s'en soustraire à la borne 152b. C'est seulement lorsqu'un bit de signe apparat à la borne 15b que le calcul de soustraction est effectué, ou que 1'additionneur/soustracteur 152 effectue le calcul d'addition. Chaque accumulateur 16, comme illustré sur la figure 5, comprend un additionneur 161 et un registre 162. L'accumulation de paramètres provenant de l'extracteur de paramètres 15 est effectuée par l'additionneur 161 qui ajoute chaque donnée d'entrée provenant de la borne 16a aux données enregistrées dans le registre 162, accumulant ainsi des données dans celui-ci. Chaque élément additionneur 17 comprend un additionneur 171 et un soustracteur 172, comme illustré sur la figure 6. Les éléments additionneurs 17 sont fournis pour effectuer le calcul d'addition et de soustraction de l'équation (8), obtenant ainsi les premiers et seconds résultats de la IDCT 1-D aux bornes 18a0 à 18a7. Le troncateur 18 est fourni pour tronquer les premiers résultats de la IDCT l-D de sorte qu'ils deviennent des valeurs à m bits pour simplifier le second processus IDCT l-D. Le troncateur 19 est fourni pour tronquer les seconds résultats de la IDCT l-D de sorte qu'ils deviennent des valeurs à 9 bits pour se conformer aux exigences des normes de communication. Le registre de transposition 20 a une dimension de NxN (8x8 dans le mode de réalisation préféré). Les premiers résultats de la IDCT l-D sont enregistrés dans le registre de transposition 20 pendant le premier processus de IDCT l-D. Les données enregistrées, qui sont indiquées en tant que matrice Z, sont transposées en une autre matrice de données zt. Les matrices Z et zt sont en format 1-D, de même que celle de la séquence partant de la matrice Y, comme indiqué ci-dessus. Puis, pendant le second processus de IDCT l-D, la matrice zt est envoyée au multiplexeur 11. En ce qui concerne le registre d'adaptation de débit inverse 21, un débit d'entrée de données du second débit et un débit de sortie de données du premier débit doivent être cohérent avec le registre d'adaptation de débit 10. Pendant le second processus IDCT 1-D, les seconds résultats IDCT 1-D sont enregistrés dans le registre d'adaptation de débit inverse 21, puis sortis sous forme de matrice X de données au premier débit. Les différents débits d'entrée/sortie de données peuvent être obtenus en fournissant des signaux de commande de différentes fréquences à la borne d'entrée et à la borne de sortie du registre d'adaptation de débit inverse 21. Le fonctionnement du circuit IDCT 2-D de la présente invention va être décrit en référence au chronogramme représenté sur la figure 7. En référence à la figure 2 et à la figure 7, les éléments de la matrice de données d'entrée Y sont écrits successivement dans le registre d'adaptation de débit 10 et y sont enregistrés, via la borne 10a, dans l'ordre de ligne par ligne, connu sous le nom de technique de "balayage tramé". Lorsque le premier élément de la dernière ligne de la matrice Y, c'est-àdire l'élément Y70 dans le mode de réalisation préféré, est sur le point d'être écrit dans le registre d'adaptation de débit 10, les données qui y sont enregistrées commencent à être lues via la borne lia. Les données de sortie du registre d'adaptation de débit 10 sont une séquence de Yok, Ylk, Y4k, Y6k, Ylk, Y3kt Y5k et Y7k, k allant de O à 7, qui sont différentes de la séquence d'entrée. Ces séquences de données peuvent être observées dans les première et seconde lignes de la figure 7. Pendant le premier processus IDCT 1-D, c'est-àdire le premier processus IDCT 1-D, le multiplexeur 11 fournit son premier chemin de données pour les données d'entrée YUV. En conséquence, chaque élément de la matrice Y peut être séquentiellement écrit dans le registre 13 par l'intermédiaire du registre d'adaptation de débit 10 et du multiplexeur 11. A chaque fois que huit mots de données ont été écrits dans le registre 13, les données sont envoyées simultanément au registre 14. Chaque mot enregistré dans le registre 14 est lu une fois tous les deux bits par l'intermédiaire des bornes 15a0:3 et 15b0:3, en référence à la figure 3.Etant donné que les pondérations des bornes 15a0, 15al, 15a2 et 15a3 sont identiques et que celles des bornes 15b0, 15bl, 15b2 et 15b3 sont identiques également, il peut y avoir deux bus de 4 bits 15a et 15b formés par les deux ensembles de bornes de sortie de données. Comme indiqué cidessus, les données du bus 15b sont supérieures d'un ordre aux données du bus 15a. Les données des bus 15a et 15b sont écrites dans l'extracteur de paramètres 15 pour sélectionner les paramètres correspondants dans les dispositifs formant ROM 151. Ces paramètres, comme sommes partielles de l'équation (12), sont additionnés dans l'additionneur 152 puis sortis aux bornes 16a. Après accumulation des données des bornes 16a par les accumulateurs 16, les résultats transformés des matrices 4x4, comme représenté par les équations (7) et (8), sont obtenus. En conséquence, les premiers résultats de la IDCT l-D peuvent être obtenus par un calcul d'addition ou de soustraction des résultats transformés par les éléments additionneurs 17. Etant donné que les résultats IDCT 1-D peuvent avoir une longueur de mot de plus que ce qui est nécessaire pour atteindre la précision de données recherchées, le troncateur 18 est fourni pour tronquer les résultats de la IDCT 1-D, éliminant ainsi les circuits de traitement des bits redondants. Etant donné que seuls les premiers m bits des résultats de la IDCT l-D sont maintenus, le circuit peut être plus condensé et la synchronisation est facile à commander. Les données transformées provenant du troncateur 18, c'est-à-dire les éléments de la matrice Z, sont enregistrées et transposées dans le registre de transposition 20. Lorsque le second processus IDCT l-D commence, les éléments de la matrice Z sont envoyés au premier multiplexeur 11 pour le second processus IDCT l-D. Dans le mode de réalisation préféré, le second processus IDCT l-D commence lorsque le premier élément de la sixième colonne de la matrice Z, c'est-à-dire Z06 est écrit dans le registre de transposition 20. La séquence de sortie du registre de transposition 20 est une séquence de Zk0, Zkl, Zk2, Zk3 Zk4 Zk5 Zk6 et Zk7 avec le numéro de ligne k.Lorsque l'élément Z07 est sur le point d'être transformé dans le second processus IDCT l-D, représenté comme ligne tiretée à gauche de la figure 7, il n'est pas encore prêt à être envoyé à partir du registre de transposition 20. En conséquence, une rétroaction provenant du troncateur 18 est fournie pour transmettre directement l'élément Z07 au second multiplexeur 12 pour le second processus IDCT l-D. Ainsi, en général, le second multiplexeur 12 fournit un troisième chemin de données pour les données allant du premier registre 13 au second registre 14, alors que pendant le moment où l'élément Z07 est nécessaire, un quatrième chemin de données est fourni par le second multiplexeur 12 comme raccourci. Le fonctionnement du second processus IDCT l-D est similaire à celui du premier processus IDCT l-D, à l'exception de la fourniture du second chemin de données par le premier multiplexeur 11 pour les données transposées, c'est-à-dire les éléments de la matrice Z. Lorsque le second processus IDCT l-D est exécuté successivement, les données de sortie du circuit IDCT 2-D, c'est-à-dire les éléments de la matrice X, sont générés et tronqués par le troncateur 19, puis écrits dans le registre d'adaptation de débit inverse 21. Finalement, la matrice X est sortie au premier débit du registre d'adaptation de débit inverse 21, comme représenté sur la dernière ligne de la figure 7. Le fonctionnement à deux vitesses du circuit IDCT 2-D permet de réaliser une transformation en temps réel. En outre, en comparaison du circuit classique de la figure 1 (art antérieur), une structure arithmétique répartie comprenant les premier et second registres, les extracteurs de paramètres, les accumulateurs et les éléments additionneurs est fournie dans la présente invention pour remplacer la fonction du circuit de transformation du circuit de l'art antérieur. Etant donné que la structure arithmétique répartie utilise des dispositifs formant ROM pour le calcul des matrices, l'efficacité de fonctionnement est améliorée. En outre, grâce aux divers modes d'adresse fournis par le registre d'adaptation de débit et le registre d'adaptation de débit inverse, le câblage entre chaque élément peut être simplifié, les dimensions du circuit de la présente invention peuvent être grandement réduites, et la conception matérielle est beaucoup plus facile. En conséquence, la présente invention est plus appropriée pour une mise en oeuvre VLSI. Revendications 1. Dispositif de transformation bidimensionnelle inverse en cosinus discret (IDCT) en temps réel, comprenant un registre d'adaptation de débit pour entrer NxN données à un premier débit et sortir les données à un second débit un premier multiplexeur pour fournir des premier et deuxième chemins de données destinés à transmettre les données, le premier chemin de données étant fourni pour des données provenant du registre d'adaptation de débit pendant un premier processus IDCT l-D, et le second chemin de données étant fourni pour les données transposées pendant un second processus IDCT l-D N premiers registres connectés en série, l'un des premiers registres étant connecté au premier multiplexeur pour écrire séquentiellement les données fournies par le premier multiplexeur pour un registre suivant des premiers registres un deuxième multiplexeur pour fournir des troisième et quatrième chemins de données, le troisième chemin de données étant fourni pour des données provenant du premier registre qui est connecté au premier multiplexeur et le quatrième chemin de données étant fourni pour des données de rétroaction N seconds registres pour enregistrer les données provenant des premiers registres et les données de rétroaction N extracteurs de paramètres pour générer des paramètres à partir des données enregistrées dans les deuxièmes registres N accumulateurs pour accumuler les paramètres extraits par les extracteurs de paramètres N/2 éléments additionneurs connectés aux accumulateurs pour générer des résultats transformés et les données de rétroaction un registre de transposition pour transposer les résultats transformés provenant des éléments additionneurs, dans lequel la donnée transposée est générée par le registre de transposition et y est enregistrée pendant le premier processus IDCT l-D ; et un registre d'adaptation inverse de débit pour acquérir des données provenant des éléments additionneurs, pendant le second processus IDCT l-D, au second débit, et pour sortir les NxN données au premier débit. 2. Dispositif de IDCT 2-D selon la revendication 1, comprenant en outre un troncateur couplé entre les éléments additionneurs et le registre de transposition pour tronquer les données transformées. 3. Dispositif de IDCT 2-D selon la revendication 1, comprenant en outre un troncateur couplé entre les éléments additionneurs et le registre d'adaptation inverse de débit pour tronquer les données transformées. 4. Dispositif de IDCT 2-D selon la revendication 1, dans lequel les premiers registres sont des registres à 1 mot. 5. Dispositif de IDCT 2-D selon la revendication 1, dans lequel les deuxièmes registres sont des registres à 1 mot. 6. Dispositif de IDCT 2-D selon la revendication 1, dans lequel les second registres comprennent deux ensembles de connexion en série des N/2 registres à 1 bit. 7. Dispositif de IDCT 2-D selon la revendication 1, dans lequel chacun des extracteurs de paramètres comprend deux dispositifs formant ROM et un additionneur/ soustracteur. 8. Dispositif de IDCT 2-D selon la revendication 1, dans lequel chacun des accumulateurs comprend un additionneur et un registre. 9. Dispositif de IDCT 2-D selon la revendication 1, dans lequel chacun des éléments additionneurs comprend un additionneur et un soustracteur. 10. Dispositif de IDCT 2-D selon la revendication 1, dans lequel le registre d'adaptation de débit comprend un moyen pour fonctionner en divers modes d'adresse pour l'entrée et la sortie des données. 11. Dispositif de IDCT 2-D selon la revendication 1, dans lequel le registre d'adaptation inverse de débit comprend un moyen pour fonctionner en divers modes d'adresse pour l'entrée et la sortie des données.