FR 2626693 A1 19890804 FR 8716781 A 19871203 "Dispositif et procédé à mémoire tampon, notamment pour la transposition matricielle ligne-colonne de séquences de données" Le domaine de l'invention est celui des dispositifs et procédés électroniques susceptibles d'assurer la transposition de toute matrice carrée de taille paire, dont les éléments sont fournis en séquence. Plus précisément, le dispositif selon l'invention a pour fonction de réaliser le traitement d'un flot de données, dans une mémoire tampon spécifique, traitement consistant à effectuer une transposition ligne/colonne de séquences de mots, séquences représentatives de matrices de données, dans le flot de données traité. Ce dispositif trouve une application préférentielle dans le domaine des compressions d'informations vidéo. En effet, de nombreuses méthodes de codage d'informaticns vidéo sont basées sur une opération préalable de transformation fonctionnelle de l'image. La transformation de l'image porte généralement sur des blocs élémentaires d'images, c'est-à-dire des matrices de points adjacents, résultant d'un découpage de l'image au moyen d'une "grille de découpage". Chaque bloc élémentaire subit ensuite un traitement et un codage spécifiques, par exemple pour obtenir une compression d'informations. L'un des codages courants utilisé consiste à effectuer une "Transformée Cosinus Discrète" (TCD), et est particulièrement adapté tant par ses qualités de transformation fonctionnelle, que par l'existence d'algorithmes permettant son implantation câblée. Or, l'application d'un traitement par TCD implique de réaliser successivement une TCD "ligne", puis une TCD "colonne" sur chaque bloc matriciel d'images. L'une des applications préférentielles de l'invention est donc de fournir un dispositif à mémoire tampon permettant de réaliser une opération de transposition des blocs élémentaires d'images, fournis sous forme d'un flot de séquences de données, entre une opération de traitement par TCD "ligne" et une opération de TCD "colonne". On connaît déjà des dispositifs et procédés à mémoire tampon permettant d'assurer ce type d'opération de transposition. Dans les systèmes connus, de même que dans l'invention, le principe de fonctionnement consiste à écrire, en un emplacement mémoire spécifique, une séquence source représentative d'un bloc élémentaire, matriciel, d'image, (sous-image), puis à lire les données ainsi mémorisées dans un certain ordre différent de l'ordre d'écriture, de façon à obtenir en sortie une séquence transposée du bloc d'images. Un premier dispositif connu consiste à utiliser deux mémoires distinctes. On écrit la séquence source Si dans l'une des mémoires, tandis qu'on lit, de façon transposée, la séquence Stil dans la seconde mémoire, et ainsi de suite de façon alternée pour les séquences Si+l, Si+2,.. Selon ce dispositif et cette méthode de transposition, on obtient une bonne rapidité de traitement, mais on accapare une place mémoire importante. La capacité mémoire disponible, sur silicium, doit en effet correspondre au volume de données de deux blocs d'images élémentaires. Selon un deuxième procédé connu, on peut 3G n'utiliser qu'une seule mémoire, dans laquelle on effectue successivement, et alternativement, une écriture d'une séquence source, puis la lecture transposée de la séquence transposée correspondante. Cette seconde méthode présente l'avantage de diminuer par deux l'encombrement accaparé. En contre- partie, elle présente l'inconvénient de diminuer 3 2626693 également fortement la vitesse maximale de fonctionnement du traitement de transposition. En conséquence, les principes connus de transposition ne permettent pas d'obtenir simultanément une rapidité optimale et un encombrement minimal de transposition. L'objectif de l'invention est notamment de pallier les inconvénients des dispositifs et procédés connus. Plus précisément, un premier objectif de l'invention est d'optimiser en même temps, au moyen d'un même dispositif à mémoire tampon, les deux paramètres de vitesse de fonctionnement et d'encombrement sur silicium. Un autre objectif de l'invention est de fournir une architecture de mémoire, et un procédé d'adressage d'une telle mémoire, en écriture et en lecture, assurant la transposition de séquences de données, notamment de séquences représentatives de blocs d'images élémentaires subissant, par exemple, un traitement par TCD bidimensionnelle. Le dispositif et le procédé, selon l'invention, permettent de réaliser la transposition en temps réel, sans duplication de l'espace mémoire qui est nécessaire au stockage d'un bloc élémentaire de sous- image. Ces objectifs sont atteints à l'aide d'un dispositif à mémoire tampon, notamment pour la transposition matricielle ligne/colonne de séquences de mots de (n x n) mots (n entier pair) du type des blocs élémentaires d'images en télévision numérique, chaque séquence source étant-transformée en séquence transposée, caractérise en ce que ladite mémoire tampon est répartie en deux demi-plans identiques de mémorisation, muni chacun de moyens individuels de lecture/écriture, et en ce que les moyens d'adressage coopèrent avec des moyens de séquencement des opérations de lecture/écriture desdits demi-plans de mémorisation, 262669.3 lesdits moyens de séquencement étant des moyens de commande de l'exécution d'une succession de couples d'opérations de lecture/écriture, chaque couple comprenant simultanément une opération de lecture sur un desdits demi-plans de mémorisation, et une opération d'écriture sur l'autre demi-plan. De façon avantageuse, les moyens de séquencement comprennent des moyens de génération d'un cycle d'adressage, ledit cycle d'adressage étant constitué d'une succession de deux cycles élémentaires d'adressage alternés, pour le remplissage et la lecture des mots chargés en mémoire tampon, respectivement, chaque séquence source étant chargée en alternance selon l'un puis l'autre cycle élémentaire d'adressage, la séquence transposée correspondante étant lue selon le cycle élémentaire d'adressage opposé. L'invention a également pour objet un procédé de transposition matricielle ligne/colonne de séquences 2C0 de (n x n) mots, notamment du type des blocs élémentaires d'images en télévision numérique, au moyen d'un dispositif a mémoire tampon recevant en entrée une séquence source, et fournissant en sortie la séquence transposée correspondante, procédé caractérisé en ce que, ladite mémoire tampon étant constituée de deux demi-plans identiques de mémorisation associés chacun à des moyens individuels de lecture/écriture, ledit procédé consiste à: - remplir la mémoire tampon dans l'ordre d'occurrence des mots de chacune desdites séquences sources en inscrivant sélectivement chaque mot dans l'un desdits demi-plans mémoire, de telle façon à permettre de: - lire chaque séquence transposée dans ladite mémoire tampon, en lisant sélectivement, dans l'ordre transpose, chaque mot courant de la séquence transposée dans le demi-plan de mémorisation dans lequel il était chargé, lesdits moyens individuels de lecture/écriture fonctionnant simultanément, de façon a réaliser une opération de lecture du mot courant de la séquence transposée courante dans l'un des demi-plans de mémorisation, et une écriture du mot courant de la séquence source courante dans l'autre demi- plan de mémorisation. De cette manière, ladite opération de remplissage s'effectue en affectant les mots de rang pair de la séquence source dans un premier demi-plan de mémorisation, et les mots de rang impair de la séquence source dans le second demi-plan, tout en prenant soin de i5 croiser l'affectation de parité, dévolue à chaque demi- plan de mémorisation, à chaque fois que le rang du mot courant de la séquence source est un multiple de la base n de la séquence. D'autres caractéristiques et avantages de , l'invention apparaîtront a la lecture suivante de la description de modes de réalisation préférentiels de l'invention, donnés à titre illustratif, et des dessins annexés dans lesquels: - la figure 1 représente l'organisation des adresses d'un bloc élémentaire d'images 4x4 dans une mémoire tampon de transposition suivant l'invention; - la figure 2 est un tableau récapitulatif des accès en mémoire (lecture et écriture), pour quelques cycles de transposition de blocs élémentaires k, k+l, k+2, au moyen d'une mémoire tampon du type de la figure 1; - la figure 3 schématise la décomposition de la mémoire tampon de la figure 1 en deux plans parallèles; - la figure 4 illustre un mode de réalisation de la mémoire tampon de transposition selon l'invention pour des blocs élémentaires 8x8; 6 2626693 - la figure 5 est un schéma fonctionnel du principe de fonctionnement d'un dispositif a mémoire de transposition 8x8 selon l'invention; - la figure 6 est schéma d'une tranche de décodeur du dispositif de la figure 5; - la figure 7 est un chronogramme des signaux de validation de la tranche de décodeur de la figure 6. Le fonctionnement des modes de réalisation 4x4 1G0 et 8x8 de la mémoire de transposition représentés dans les dessins obéit à deux principes de conception et fonctionnement: - afin de permettre la réalisation simultanée d'une lecture et d'une écriture sur la mémoire, celle-ci est divisée en deux plans disposant chacun de leur propre dispositif de lecture et d'écriture; - afin d'éviter les conflits d'accès en lecture/écriture, la mise en oeuvre de l'invention exige une décorrélation de l'ordre d'adressage des mots en mémoire tampon par rapport à leurs numéros d'ordre dans le bloc -d'images carré source correspondant. Le premier principe sera plus particulièrement illustré par la description des figures 3, 4 et 5. Le second principe va être plus particulièrement illustré ci-après à propos de la description de la mémoire de transposition 4x4 de la figure 1. Exemple 1: mémoire de transposition 4x4 L'organisation des adresses d'un bloc 4x4, et donc la disposition des mots dans une représentation matricielle de la mémoire de transposition suivant l'invention, est telle que représentée en figure 1. Cette disposition respecte les deux principes posés plus haut: - a l'initialisation, les mots reçus sont 3;5 écrits en balayant la matrice de la gauche vers la droite et de haut en bas, aux adresses: 0-1-2-3-4-5-6-7-8-9-10- 7 2626693 11. Dès l'écriture du mot X12 en adresse 12, on peut comrencer a lire la première colonne du bloc, et réaliser donc simultanément une lecture et une écriture de données; - la décorrélation de l'adresse des mots stockés en mémoire et de leurs numéros d'ordre dans la séquence représentative du bloc d'images source, est effectué de la manière suivante: les adresses des mots des lignes impaires de la mémoire matricielle sont permutées deux à deux. On vérifiera aisément que le séquencement et l'organisation d'adresses proposés évite judicieusement tout accès simultané en lecture et en écriture à des mots d'adresses de même parité au sein de la mémoire. On suivra plus en détail le fonctionnement du dispositif suivant l'invention à la lecture du tableau de la figure 2. Chaque ligne du tableau correspond à l'exécution d'une série de quatre cycles élémentaires de lecture/écriture dans le dispositif à mémoire de transposition suivant l'invention. La phase d'initialisation du fonctionnement n'est pas schématisée, et la première ligne du tableau correspond au début de la lecture transposée d'un bloc d'images k. Lors de la première série de quatre cycles élémentaires (T+H à T+4H), les accès suivants en mémoire sont réalisés: - en lecture: 0 puis 4, 8, 12, correspondant à la lecture transposée du bloc d'images k, c'est-à-dire la lecture de la mémoire matricielle suivant les colonnes (alors que l'écriture préalable du bloc k a été réalisée en ligne dans la mémoire), et simultanément; 8 2626693 - en écriture: 12, puis 13, 14, 15, c'est-a- dire la dernière ligne du bloc d'images k écrite à partir de la séquence source alimentant la mémoire. Au cours de la série des quatre cycles élémentaires suivants, on écrit les données "lignes" D provenant de la séquence source issue du bloc d'images "k+l", dans la "colonne" libérée par la lecture de la première série de la séquence transposée du bloc k, soit: - en écriture: 0, puis 4, 8, 12, et simultanément, on poursuit la lecture transposée du bloc k: - en lecture: 1, puis 5, 9, 13, et ainsi de suite, conformément au tableau de la figure 2. En examinant en détail le séquencement des opérations de lecture/écriture, on pourra noter qu'une scission naturelle de la mémoire en un demi-plan pair, et en un demi-plan impair, provoque des conflits d'accès. En effet, par exemple, en (T + O), il faut faire une écriture du mot O et, simultanément, une écriture du mot 12 - de même parité - et donc situé physiquement dans le même demi-plan de mémorisation. On remédie à cette anomalie en adoptant l'organisation proposée en figure 3, dans laquelle les mots des lignes impaires de la matrice sont permutés deux à deux. En d'autres termes, et d'une façon plus générale, l'organisation de la mémoire de transposition selon l'invention, consiste à scinder ladite mémoire en deux demi-plans contenant des mots, dont l'adresse a la même parité, en croisant toutefois cette parité à chaque fois que l'adresse s'incrémente de modulo la base de la matrice. Exemrpe d'une mémoire matricielle de transposition 8x8 Les implantations des adresses dans une mémoire matricielle 8x8, selon l'invention, sont représentées en figure 4. L'organisation des adresses répond au même principe que pour la mémoire 4x4 décrite ci-dessus. Les adresses des mots des lignes impaires sont interverties deux par deux. Plus généralement, le bon fonctionnement du système est assuré dès que les mots iCi sont de même parité sur toutes les diagonales d'un bloc, ou que tout mot d'un bloc est entouré de voisins "lignes" et "colonnes" de parité opposée. Cette solution est la plus simple du point de vue de la conception logique du décodeur d'adresses de la mémoire. En fait, cette règle peut être appliquée à toute matrice (nxn) avec n: nombre pair. Un schéma bloc représentatif d'un mode de réalisation concret d'une mémoire 8x8 selon l'invention est présenté en figure 5. On distingue, dans le schéma de principe de la figure 5: - un compteur binaire six bits 50, fournissant les 128 adresses caractéristiques d'un cycle complet (64 lectures et 64 écritures). - des circuits logiques 51, 52 qui implémentent un système de prédécodage/postdécodage des adresses, permettant de diminuer le nombre d'entrées des portes nécessaires au décodage, et par conséquent le nombre de transistors. Le fonctionnement de cette technique est détaillé plus loin, en relation avec la figure 6 illustrant le schéma d'une tranche 53 du décodeur. L'analyse du déroulement d'une séquence montre qu'on peut décomposer logiquement l'accés à chaque mot 262e693 meémoire à partir des sigaux suivants: - un cycle de comptage par pas de 1 en lecture; - un cycle de comptage par pas de 1 en écriture; - un cycle de comptage par pas de 8 en lecture; - un cycle de comptage par pas de 8 en écriture. Ces différents signaux MSE, M8L et leurs compléments M8EB, MSLB, sont fournis par le circuit logique de contrôle 52, à partir des informations fournies par le compteur 50. La figure 7 représente le chronogramme des signaux de validation MSE, M8L, M8EB, M8LB. On constate que le recouvrement des signaux dure 8 périodes d'horloge dans le cas d'une matrice 8x8. De cette manière, le sequencement de l'accés en mémoire est assuré par les circuits 53 correspondant à chaque adresse de la mémoire, tant en plan droit qu'en plan gauche. Ces circuits 53 reçoivent en entrée d'une part, des signaux provenant des circuits de prédécodage 51 et postdécodage 54, et d'autre part, les signaux de contrôle provenant du circuit logique 52. Ces circuits 53 fournissent simultanément, dans chaque demi-plan de mémorisation, un signal de sélection du mot à lire et du mot à écrire. On effectuera alors les opérations: d'arrêt de précharge, de lecture ou d'écriture, et d'aiguillage, au moyen des unités 56 et 57, sous commande du circuit de contrôle de mémoire 58. Les séquences sources de bloc images transitent par le bus d'entrée 59, et les séquences transposées, lues en mémoire, sont transportées sur le bus de sortie 60. La figure 6 détaille un mode de réalisation préférentiel des circuits logiques 53 correspondant à une tranche du décodeur de la figure 5. il1 * 2626693 Le signal 65, 65' correspondant a chaque mot mémoire de la mémoire de transposition est fourni par un circuit OU recevant en entrée quatre signaux provenant de quatre circuits ET 67, 67'. Chacun des circuit ET 67, 67' reçoit deux entrées: -. une entrée connectée à l'un des signaux de contrôle M&E, MBL, M8EB, M8LB, issu des circuits logiques 52, et, - une entrée provenant d'un circuit NON-ET 68, 68'. Chacun des circuits NON-ET est lui-même connecté sur la sortie des demi-circuits 51a, 51b de prédécodage des poids forts et des poids faibles des signaux du compteur 50. Chacun des demi-circuits de prédécodage reçoit trois fils d'adresses provenant d'un compteur binaire et fournit les 23 soit 8 - combinaisons possibles de ces trois poids d'adresses. Application à une opération de transposition entre TCD "licrne" et TCD "colonne" La mémoire de transposition 8x8 de la figure 5 peut contenir 64 mots de 12 bits, et être utilisée pour réaliser l'opération de transposition d'un bloc de 8x8 ayant subi une TCD (Transformée en Cosinus Discrète) "ligne", et devant subir une TCD "colonne". Les accès en lecture et en écriture se font simultanément au rythme de l'horloge commandant le compteur 50 de la figure 5. La mémoire est contrôlée par un signal d'initialisation "INIT" 61, qui indique la présence du premier mot d'une séquence source de 64 mots, constituant une sous-image de 8x8 Pixels, en entrée de la mémoire. La séquence transposée du bloc transposé correspondant est disponible en sortie, avec un retard de 56 cycles élémentaires d'horloge. 12 2626693 Comme déjà noté précédemm.ent, le principe de fonctionnement de ce dispositif consiste à remplir alternativement la mémoire en ligne puis en colonne, par des séquences sources de 64 données issues de l'opérateur TCD-LIGNE, et de réaliser conjointement la lecture en colonne, puis en ligne, des données stockées dans la mémoire de transposition, vers l'opérateur TCD-COLONNE. Comme déjà mentionné, il est en effet possible de lire la première colonne d'un bloc k de 64 données dès que le mot X56 est écrit en mémoire, et ce sans perturber -k le fonctionnement cyclique modulo 8 du dispositif. Dès lors, on peut lire en série le contenu de la première colonne (X0, X9, X16...X57), tout en écrivant la dernière ligne du bloc. Le dispositif suivant l'invention, permet donc de réaliser l'opération de transposition intermédiaire, au cours d'un traitement de TCD bidimensionnel sur blocs d'images de nxn pixels, n pair, sans duplication de l'espace mémoire nécessaire au stockage d'une sous-image, et avec une bonne rapidité de traitement. 13 26266'93 REVE:DX CATIONS 1) Dispositif à mémoire tampon, notamment pour la transposition matricielle ligne/colonne de séquences de mots de (n x n) mots (n entier pair) du type des blocs élementaires d'images en télévision numérique, chaque séquence source étant transformée en séquence transposée, caractérisé en ce que ladite mémoire tampon est répartie en deux demiplans identiques (G, D) de mémorisation, muni chacun de moyens individuels de lecture/écriture, 1k et en ce que les moyens d'adressage coopèrent avec des moyens de séquencement des opérations de lecture/écriture desdits demi-plans de mémorisation, lesdits moyens de séquencement étant des moyens de commande de l'exécution d'une succession de couples d'opérations de lecture/écriture, chaque Couple comprenant simultanément une opération de lecture sur un desdits demi-plans de mémorisation, et une opération d'écriture sur l'autre demi-plan. 2) Dispositif suivant la revendication 1, caractérisé en ce que lesdits moyens de séquencement comprennent des moyens de génération d'un cycle d'adressage, ledit cycle d'adressage étant constitué d'une succession de deux cycles élémentaires d'adressage alternés, pour le remplissage et la lecture des mots chargés en mémoire tampon respectivement, chaque séquence source étant chargée en alternance selon l'un puis l'autre cycle élémentaire d'adressage, la séquence transposée correspondante étant lue selon le cycle élémentaire d'adressage opposé. 3) Dispositif suivant la revendication 1, caractérisé en ce que ladite mémoire tampon présente une capacité de (n x n) mots. 4) Dispositif suivant la revendication 1, notamment pour l'utilisation aux fréquences vidéographiques, caractérisé en ce qu'elle est constituée 14 2626693 d'une mémoire statique comportant une cellule à six transistors. ) Procédé de transposition matricielle ligne/colonne de séquences de (n x n) mots, notamment du type des blocs élémentaires d'images en télévision numérique, au moyen d'un dispositif à mémoire tampon recevant en entrée une séquence source, et fournissant en sortie la séquence transposée correspondante, procédé caractérisé en ce que, ladite mémoire tampon étant constituée de deux demi-plans identiques de 1G mémorisation (G, D) associé chacun à des moyens individuels de lecture/écriture, ledit procédé consiste à: remplir la mémoire tampon dans l'ordre d'occurrence des mots de chacune desdites séquences sources en inscrivant sélectivement chaque mot dans l'un desdits demi-plans mémoire, de telle façon à permettre de: - lire chaque séquence transposée dans ladite mémoire tampon, en lisant sélectivement, dans l'ordre transposé, chaque mot courant de la séquence transposée dans le demi-plan de mémorisation dans lequel il était charge, lesdits moyens individuels de lecture/écriture fonctionnant simultanément, de façon a réaliser une opération de lecture du mot courant de la séquence transposée courante dans l'un des demi-plans de mémorisation, et une écriture du mot courant de la séquence source courante dans l'autre demi-plan de mémorisation. 6) Procédé suivant la revendication 5, caractérisé en ce que ladite opération de remplissage s'effectue en commençant par affecter chaque mot de rang pair de la séquence source dans un premier demi-plan de mémorisation, et chaque mot de rang impair de la séquence source dans le second demi-plan, puis à croiser 2626693 l'affectation de parité dévolue à chaque demi-plan de mé.orisation à chaque fois que le rang du mot courant de la séquence source est un multiple de la base n de la séquence. 1, 2O