Brevet FR2648978A2 — publié le 19901228

FR 2648978 A2 19901228 FR 8908548 A 19890627 PROCEDE DE CODAGE D'UNE SUITE D > IMAGES, PAR UNE TRANSFORMATION ET UNE PLURALITE DE CODES A LONGUEUR VARIABLE, ET DISPOSITIFS POUR LA MISE EN OEUVRE DE CE PROCEDE L'invention concerne un perfectionnement au procédé de codage d'une suite d'images, et aux dispositifs pour la mise en oeuvre de ce procédé,décrits et revendiqués dans la demande de brevet français nO 88 16621 déposée par la demanderesse. Le brevet principal décrit un procédé de codage consistant à - diviser chaque image en blocs d'éléments d'image, chaque bloc étant représenté par au moins un bloc de valeurs - appliquer une transformation cosinus bidimensionnelle à chaque bloc de valeurs, pour obtenir un bloc de coefficients de transformation du bloc de valeurs considéré - coder chaque coefficient non nul, et la longueur de chaque plage de coefficients nuls, par un mot de code à longueur varia ble. Ce mot de code est fonction du rang respectivement : du coefficient à coder ; ou du premier coefficient de la plage de coefficients nuls, dont la longueur est à coder. Le brevet principal décrit notamment un mode de mise en oeuvre de ce procédé consistant à coder les valeurs des coefficients non nuls et les longueurs des plages de coefficients nuls selon un meme arbre de codage, pour chaque rang, après avoir transcodé toutes ces valeurs par une table dite d'assigna- tion, qui fait correspondre à chaque valeur ou longueur, un nombre entier positif appelé numéro d'événement, croissant dans l'ordre de probabilités décroissantes des valeurs et des longueurs. Les valeurs non nulles de coefficients et les longueurs de plages sont codées et transmises en consldérant tous les coefficients, de chaque bloc, dans un ordre fixé qui correspond à une croissance des fréquences spatiales de l'image à coder. Chaque numéro d'événement est codé par un procédé de codage à longueur variable qui est décrit dans la demande de brevet français nO 88 01860, au nom de la demanderesse. Ce procédé de codage à longueur variable permet d'utiliser un grand nombre d'arbres de codage distinctes, sans avoir A stocker des tables dans des mémoires mortes, parce que les mots de code sont fournis par un dispositif de calcul arithmétique et logique. Dans le décodeur, ils sont reconnus par un autre dispositif de calcul arithmétique et logique. Le changement d'arbre de codage est obtenu simplement en fournissant un jeu de trois paramètres au dispositif de codage et au dispositif de décodage. Un arbre de codage procurant un coût de codage peu différent du coût optimal peut être sélectionné ainsi. Ce procédé de codage à longueur variable peut être mis en oeuvre pour coder et décoder toutes sortes d'évènements, pourvu que la distribution statistique des valeurs représentant ces événements soit monotone décroissante de part et d'autre de la moyenne de ces valeurs. Dans ce cas, le codage consiste tout d'abord à représenter les événements par une suite de valeurs entiéres positives et consécutives, appelées numéros d'événements, qui peut être déduite de la suite des valeurs précédentes en additionnant une constante. Dans ce cas, il nty a donc pas à stocker une table d'assignation des numéros d'événement. Le codage consiste ensuite en des calculs arithmétlques et logiques simples portant sur les numéros d'événements. Dans le cas du codage par un même arbre de codage, pour chaque rang, d'une suite où sont mélangées des valeurs de deux types différents ayant deux répartitions statistiques différentes, les numéros d'événement ne peuvent pas être déterminés de manière simple. Il est nécessaire de créer et de stocker une table d'assignation. Celle-ci est constituée en ordonnant la suite de toutes les valeurs possibles, dans l'ordre de leur probabilité décrolssante, et en leur faisant correspondre une suite de numéros d'événements positifs et croissants. L'utilisation d'une table d'assignation stockée en mémoire morte est un inconvénient de ce mode de mise en oeuvre. Le brevet princlpal décrit un autre mode de mise en oeuvre consistant à utiliser deux familles d'arbres de codage distinctes, respectivement pour les valeurs non nulles de coefficients et pour les longueurs de plages ; et consistant à coder et à transmettre une suite mélangée de valeurs non nulles de coefficients et de longueurs de plages de valeurs nulles, en distinguant le type de chaque valeur au moyen d'un bit accompagnant chaque mot de code. Ce bit permet de sélectionner un arbre de codage parmi deux arbres dlstincts adaptés aux répartitions statistiques différentes des deux types de valeurs. Ce bit sup plémentaire accompagnant chaque mot de code a pour inconvé- nient d'augmenter le déblt des données codées à transmettre. Le but du perfectionnement selon l'invention est d 'évi- ter ces inconvénients en évitant l'utilisation d'une table d'as signation, ou d'un bit supplémentaire pour chaque mot de code. L'objet du perfectionnement est un procédé consistant essentiellement à utiliser deux familles d'arbres de codage distincts pour les deux types de valeurs ; et å organiser différemment la suite de valeurs à coder, de façon à discriminer les deux types de valeurs sans avoir à rajouter une quantité d'informations importante. Selon l'invention, un procédé de codage selon la revendication 1 du brevet principal, est caractérisé en ce que, pour coder chaque valeur non nulle et chaque longueur de plage de valeurs nulles d'un bloc de coefficients de transformation, il consiste à - compter le nombre n de coefficients non nuls dans le bloc - calculer, pour chaque coefficient non nul, une adresse relative qui est le rang de ce coefficient par rapport au coefficient non nul qui le précède dans l'ensemble des coefficients du bloc ordonnés dans un ordre prédéterminé - coder les n adresses relatives des coefficients non nuls du bloc, sous la forme de n mots de code à longueur variable - puis coder les n coefficients non nuls du bloc, sous la forme de n mots de code à longueur variable, fonctlons chacun du rang du coefficient à coder, dans l'ensemble de tous les coefficients du bloc ordonnés dans un ordre' prédéterminé. Un autre avantage de ce perfectlonnement est de permettre le décodage du rang de chaque coefficient ayant une valeur non nulle, avant de commencer le décodage des valeurs n coefficient elles-mémes. En effet, chaque mot de code représentant un coefficient de valeur non nulle, est déterminé selon un arbre de codage qui est choisi en fonction du rang du coefficient non nul. Réciproquement, il est donc nécessaire de connaitre le rang d'un coefficient pour pouvoir décoder sa valeur. Le brevet principal décrit deux modes de réalisatlon du codage et du décodage comportant chacun une astuce permettant de décoder une valeur non nulle de coefficient sans connaître son rang exact, dans le cas où il n'est pas possible de le déterminer Uffisamment rapidement. Le perfectionnement selon l'invention a ,ur avantage d'éliminer le problème posé par une vitesse insuffisante du décodage du rang des coefficients non nuls. L'invention sera mleux comprise et d'autres détails apparaitront à l'aide de la description ci-dessous et des figures l'accompagnant - la figure 1 représente un bloc de coefficients cosinus résultant de la transformation d'un bloc de valeurs représentant un bloc d'éléments d'images - la figure 2 représente la suite des valeurs des coefficients de ce bloc, mises dans un ordre prédéterminé correspondant aux fréquences spatiales croissantes; - la figure 3 représente l'organisation des données qui sont codées puis transmises pour coder ce bloc par le procédé selon l'invention; - la figure 4 représente l'organisation des données qui sont codées puis transmises pour coder un macrobloc constitué d'une pluralité de blocs tel que celul représenté sur la figure I - la figure 5 représente le schéma synoptique d'un exemple de réalisation d'un dispositif de codage pour la mise en oeuvre du procédé selon l'invention -la figure 6 représente le schéma synoptique d'un exemple de réalisation d'un dispositif de décodage d'images pour la mise en oeuvre du procédé selon l'invention - la figure 7 représente le schéma synoptique plus détaillé d'une partie de l'exemple de réalisation représenté sur la fl- gure 6. L'exemple de bloc de coefficients cosinus représenté sur la figure 1 comporte des valeurs non nulles: Cl, C2, C3, C14. Les autres coefficients sont nuls. Il est connu de coder et de transmettre ces coefficients selon un ordre prédéterminé correspondant aux fréquences spatiales croissar de l'image. Cet ordre correspond à un balayage en zig zag qui falt croitre le rang de la colonne ou le rang de la ligne pour chaque coefficient. Les coefficients non nuls sont, dans l'ordre : C1, C2, C3, . .., C14. Certaines valeurs nulles Isolées et certaines plages de valeurs nulles sont intercalées dans cette suite de coefficients non nuls. La figure 2 représente la suite de toutes les valeurs de coefficients de cet exemple, ordonnée selon cet ordre. Dans les modes de mise en oeuvre décrits dans le brevet principal, cette suite de valeurs de coefficients est codée dans cet ordre, en codant par plages les valeurs nulles, et les mots de codes sont déterminés alternativement selon deux familles d'arbres de codage correspondant respectivement aux valeurs de coefficients non nulles et aux longueurs de plages. Un arbre est choisi à l'intérieur de chacune des deux familles, respectivement en fonction du rang du coefficient ayant une valeur non nulle, ou du rang du premier coefficient nul dans la plage dont la longueur est à coder. La figure 3 représente l'organisation des données avant leur codage et leur transmission, lorsque le procédé selon l'invention est appliqué. Les données comportent tout d'abord le nombre n de coefficients ayant une valeur non nulle. Dans cet exemple n = 14. Puis elles comportent n valeurs d'adresse relative, puis n valeurs de coefficients non nulles. Les adresses relatives sont calculées à partir des adresses absolues des valeurs non nulles, ces adresses absolues étant constituées par les rangs de ces valeurs dans l'ensemble de tous les coefficients d'un bloc, ordonnés dans l'ordre prédé- terminé mentionné précédemment et représenté sur la figure 2. Ces adresses relatives ont pour. avantage de repérer aussi bien la position des coefficients non nuls que celle des coefficients nuls, car toute adresse relative ayant une valeur supérieure à I, traduit la présence d'une plage de valeurs nulles comportant un nombre de valeurs nulles égal à la valeur de cette adresse relative moins une unlté. D'autre part, le fait de rassembler et de coder en premier les adresses relatives permet de les rendre disponibles, dans le décodeur, avant de commencer le décodage des valeurs non nulles de coefficients. Les problèmes dus au temps de calcul nécessaire pour décoder la position des coefficlents sont ainsi évités. Pour coder les adresses relatives, la meilleure solution pour réduire le débit d'informations serait d'utiliser un mot de code fonction du rang du coefficient non nul précédant le coefficient ayant l'adresse considérée. Mais alors, le décodage de chaque adresse relative nécessiterait d'avoir fini le décodage de l'adresse relative qui la précède. Le décodage des adresses relatives ne pourrait pas etre réalisé par une structure dite "pipe-line", qui permet de gagner du temps de calcul. Pour éviter de tels problèmes dus à la durée du calcul de décodage, il est préférable de coder chaque adresse relative en fonction de son rang dans l'ensemble des adresses relatives correspondant aux coefficients non nuls d'un bloc, ordonnés selon les fréquences spatiales croissantes. Une variante simplifiée consiste A utiliser un seul arbre de codage pour toutes les adresses relatives, quel que soit leur rang. Les coefficients non nuls sont codés chacun par un mot de code qui est fonction du rang du coefficient à coder, dans l'ensemble de tous les coefficients du bloc, ordonnés selon l'ordre correspondant aux fréquences spatiales croissantes. Au moment du décodage des coefficients, l'adresse relative de chaque coefficient est cumulée pour retrouver le rang du coefficient à décoder, dans l'ensemble de tous les coefficients du bloc. Le mot de code est fonction en outre d'une valeur d'écart type calculée pour chaque rang, et pour chaque type de codage : inter-images et intrs-image. La figure 4 représente l'organisation des données à coder et à transmettre, dans le cas où le codage d'une suite d'images consiste non seulement à découper cette image en blocs d'éléments d'images, mais consiste en outre à considérer collectivement plusieurs blocs constituant ainsi un macrobloc pour lequel certaines données de codage peuvent être transmises en commun. Il est alors intéressant de transmettre ces donnét communes sous la forme d'une entête dite entête de macrobloc. Ces données peuvent hêtre : une information sur le type de co- dage lorsque le codage est alternativement : Intra-images et inter-images ; avec compensation de mouvement ou sans compensation de mouvement. Elles peuvent comporter aussi : un vecteur de mouvement ; une information sur le type ou la configurs'^n du macrobloc ; une adresse relative du macrobloc, indiqua: position par rapport A un autre macrobloc dans la même image. En fonction de ces informations concernant le macrobloc, les paramètres de codage et de décodage des coefficients cosinus peuvent varier. L'entête de macrobloc est codée par un code à longueur fixe car elle représente une faible quantité d'informations par rapport aux coefficients de transformation. Cette entête est suivie par les données codées d'un bloc n l, puis celles d'un bloc n02,. ., puls les données codées du bloc n06, dans cet exemple. Les données codées de chaque bloc comportent successivement : le nombre de coefficients non nuls du bloc, puis les adresses relatives de ces coefficients non nuls, puis les valeurs de ces coefficients non nuls. Sur cet exemple, il apparaît que la transmission du nombre nl, qui indique le nombre d'adresses relatives et le nombre de coefficients non nuls du bloc n01, permet de délimiter, au moment du décodage, les adresses relatives par rapport aux coefficients non nuls du bloc n l, puis de délimiter les coefficients non nuls du bloc n01 par rapport aux données codées du bloc n02. Il en est de même pour le bloc n02, etc..., malgré la longueur variable des mots de code et le nombre variable des coefficients non nuls. La figure 5 représente le schéma synoptique d'un exemple de réalisation d'un dispositif de codage d'images pour la mise en oeuvre du procédé de codage d'images selon l'invention. Cet exemple de réalisation comporte une borne d'entrée 1' recevant une suite de valeurs de luminance et de valeurs de chrominance représentant des blocs de 8x8 éléments d'images un dispositif 2' de sélection du type de codage inter-images ou intra-image ; un dispositif 3' de calcul de transformation cosinus bidimensionnelle ; un dispositif 4' de quantification à pas variable, ce pas étant réglé pour réguler le débit des informa tions codées fournies par le dispositif de codage d'images ; des moyens 118 pour calculer un numéro d'évènement ; un dispositif 7' de calcul de deux écarts types pour chaque rang ; un dlsposi- tif 9' de calcul de mots de code à partir des numéros d'événements ; un dispositif 10' de conversion en mots de 32 bits ; une mémoire morte 11' contenant les paramètres de huit arbres de codage ; une mémoire tampon 12 ; une borne de sor tie 13' reliée à un canal de transmission ; et un dispositif 16' d'insertion de mots de synchronisation et de mots de paramètres. La borne d'entrée 1' est reliée à une entrée du dispositif 2' qui décide que le codage de chaque bloc d'éléments d'image sera un codage inter-images ou intra-image, selon la quantité d'informations A transmettre dans ce deux cas. Ce dispositif de sélection est classique, il peut fonctionner par une comparaison des énergies des coefficients calculés selon les deux types de codage. Une première sortie du dispositif 2' est relié à une entrée du dispositif 16' d'insertion de mots de synchronisation et de paramètres, pour lui permettre de transmettre un bit indiquant le type de codage pour chaque bloc. Cette première sortie est reliée aussi A une premiére entrée du dispositif 7'. Une autre sortie du dispositif 2' est reliée à une entrée du dlsposi- tif 3' qui réalise le calcul d'une matrice de coefficients cosinus pour chaque bloc de 8x8 valeurs représentant des éléments d'image. Une sortie du dispositif 3' fournit une matrice de coefficients cosinus à une entrée du dispositif 4' qui réalise une quantification à pas variable, faisant correspondre à chaque coefficient un mot binaire de valeur E. Cette sortie du dispositif 4' est reliée à une entrée des moyens 118 et à une deuxième entrée du dispositif 7', pour leur fournir cette valeur E. Les moyens 118 possèdent une première sortie fournissant un numéro d'événement à une entrée du dispositif 9', et une deuxième sortie fournissant le rang d'un coefficient en cours de codage, à une première entrée d'adresses de la mémoire 11' et A une troisième entrée du dispositif 7'. Une troisième sortie des moyens 118 est reliée à une deuxième entrée d'adresse de la mémoire 11'. Une quatrième sortie des moyens 118 est reliée à une quatrième entrée du dispositif 7'. La deuxième sortie des moyens 118 fournit - le rang du coefficient qui est en cours de codage, la troisième sortie fournit une adresse relative de ce coefficient, alors que la quatrième sortie fournit le rang du coefficient qui est représenté par la valeur E appliquée à l'en- trée des moyens 118. Une troisième entrée d'adresses de la mémoire 11' est reliée à une première sortie du dispositif 7'. Une seconde sortie du dispositif 7' est reliée à une seconde entrée du dispositif 16'. Le dispositif de calcul 7' détermine deux valeurs d'écarts types pour chaque rang de coefficient dans les blocs des coefficients transformes, les coefficients étant ordonnés dans l'ordre correspondant aux fréquences spatiales croissantes. Une valeur d'écart type correspond à un codage intra-image et une valeur d'écart type correspond à un codage inter-images. .Lorsqu'un coefficient non nul est en cours de codage, la première sortie du dispositif 7' fournit à la troisième entrée de la mémoire morte 11' une adresse partielle fonction de l'écart type correspondant au rang du coefficient non nul qui est en cours de codage. Cette adresse partielle est constituée d'un mot binaire de trois bits correspondant A une valeur d'écart type et permettant de sélectionner directement un jeu de paramètres définissant un arbre de codage parmi huit arbres possibles pour chaque valeur de rang. La valeur de rang du coefficient en cours de codage est appliquée à la première entrée d'adresse de la mémoire 11', pour constituer une autre adresse partlelle. La réunion des deux adresses partielles constitue une adresse de lecture pour un Jeu de paramètres définissant un arbre de codage. Lorsqu'une adresse relative est en cours de codage, la troisième sortie des moyens 118 fournit A la deuxième entrée d'adresse de la mémoire 11', le rang de cette adresse relative dans la suite des adresses relatives des coefficients non nuls du bloc en cours de codage. Ce rang constitue une adresse de lecture pour un jeu de paramètres définissant un arbre de codage. Le dispositif de calcul 9' détermine un mot de code à longueur variable, en fonction des paramètres fournis par la mémoire 11' et en fonction du numéro d'événement fourni par les moyens 118. Deux sorties du dispositif 9' sont reliées respecti vement à deux entrées du dispositif 10' pour lui fournir un mot de code et un signal indiquant la longueur de ce mot de code. Le dispositif 10' possède en outre une entrée reliée à une sortie du dispositif 16' pour insérer, dans la suite des données codées, des mots de paramètres constitués par les deux tables de valeurs d'écarts types, et le bit indiquant le type de codage de chaque bloc, inter-images ou intra-image ; et et pour insérer des mots de synchronisation et des mots séparateurs de données. Une sortie du dispositif 10' est reliée à une entrée de données de la mémoire tampon 12' et lui fournit les données codées sous la forme de mots de 32 bits dans lesquels les mots de codes sont juxtaposés. La mémoire 12' possède une sortie de données reliée à la borne de sortie 13' du dispositif de codage, pour lui fournir les données codées, sous la forme d'une suite binaire, A un rythme constant correspondant au rythme d'un canal de transmission auquel est reliée la borne de sortie 13'. Le dispositif 9' de calcul d'un mot de code à longueur variable peut être réalisé selon l'enseignement de la demande de brevet français numéro 88 01860. Les moyens 118 pour déterminer un numéro d'événement, comportent : un comparateur 119 un compteur de coefficients nuls, 120 ; un pointeur de rang de coefficient 121 ; un soustracteur 122 ; un registre 123 ; une mémoire 124 du type premier entré premier sorti (FIFO), pour stocker des adresses relatives ; une mémoire 125 du même type, pour stocker des coefficients non nuls; une mémoire 128, du même type, pour stocker les rangs des coefficients non nuls ; un multiplexeur 126, à trois entrées et une sortie ; et un séquenceur 127. Le séquenceur 127 fournit des signaux d'horloge à des entrées de commande : du pointeur 121 ; du registre 123 ; des mémoires 124, 125, 128, 11', 12'; et des dispositifs 2' A 4', 7', 9', 10' et 16' ; par des liaisons non représentées. Une sortie du séquenceur 127 fournit le rang de chaque adresse relative en cours de codage, et constitue la troisième sortie des moyens 118. L'entrée des moyens 118 est reliée à une première entrée du comparateur 119 et à une entrée de données de la mémoire 125. Une seconde entrée du séparateur 119 reçoit en permanence un mot binaire de valeur nulle auquel il compare la valeur E qui est appliquée à l'entrée des moyens 118. La sortie du comparateur 119 fournit un signal logique lorsqu'il détecte que le coefficient A coder a une valeur E non nulle. Ce signal logique incrémente le contenu du compteur 120 et valide une écriture dans les mémoires 124, 125 et 128. Le pointeur 121 possède une sortie reliée à une première entrée du soustracteur 122 et A une entrée de données du registre 123. Ce pointeur 121 compte les coefficient de chaque bloc quelle que soit leur valeur. Il fournit donc la valeur de rang du coefficient représenté par la valeur E à l'instant considéré. Ce rang est stocké dans la mémoire 125, et est utilisé par le soustracteur 122 pour calculer une adresse relative. Le soustracteur 122 reçoit, sur une seconde entrée, l'adresse absolue déterminée précédemment par le pointeur 121, et qui est fournie par une sortie du registre 123. Une sortie du soustracteur 122 fournit cette adresse relative à une entrée de la mémoire 124 où elle est stockée sous l'action du signal logique fournit par la sortie du comparateur 119. Les mémoires 124 et 125 stockent donc en parallèle les adresses relatives et les valeurs E des coefficients non nuls. Ces mémoires étant du type premier entré premier sorti, elles restituent parallèlement les adresses relatives et les valeurs E correspondant à des rangs croissants. Elles possèdent chacune une sortie reliées respectlve- ment à deux entrées du multiplexeur 126. Une troisième entrée du multiplexeur 126 est reliée A une sortie du compteur 120 pour recevoir le nombre n des coefficients non nuls comptés par le compteur 120, lorsque les moyens 118 ont reçu toutes les valeurs E correspondant à un bloc de coefficients de transformation. La sortie du compteur 120 est reliée aussi A une entrée du séquenceur 127. Le séquenceur 127 possède une sortie reliée à une entrée de commande du multiplexeur 126. La sortie du multiplexeur 126 constitue la première sortie des moyens 118. Lorsque toutes les valeurs E correspondant à un bloc de coefficients ont été appliquées à l'entrée des moyens 118, le séquenceur 127 commande le multiplexeur 126 pour qu'il tran s- mette le nombre n fournit par le compteur 120. Puis il commande le multiplexeur 126 pour qu'il transmette les n d'adresses relatives fournies par la sortie de la mémoire 124, celle-cl étant commandée par le séquenceur 127 pour réaliser successivement n lectures. Puis le séquenceur 127 commande le multiplexeur 126 pour qu il transmette n coefficients non nuls fournis par la sortie de la mémoire 125, celle-cl étant commandée par le séquenceur 127 pour réaliser n lectures successives. Le dispositif 9' de calcul de mots de code fournit successivement : un mot de code A longueur predéterminée, pour représenter le nombre n; puls un mot de code à longueur variable pour chacune des n adresses relative; puis un mot de code A longueur variable pour chacun des n coefficients non nuls. Ces mots de codes à longueur variable sont déterminés chacun en fonction des paramètres fournis par la mémoire 11', et variables pour chaque numéro d'événement à coder. La figure 6 représente le schéma synoptique d'un exemple de réalisation d'un dispositif de décodage pour décoder des images codées par le dispositif de codage décrit précédemment. Cet exemple de réalisation comporte . une borne d'entrée 140 reliée à un canal de transmission transmettant des données qui ont été codées par le dispositif de codage décrit précédemment un dispositif 141 de conversion série-parallèle ; une mémoire tampon 142 ; un dispositif 143 de segmentation des données codées et de calcul des numéros d'événements ; un dispositif 144 de reconstitution des coefficients non nuls et de leurs rangs un dispositif 145 de reconstitutlon d'un bloc de coefficients un dispositif 146 de transformation cosinus inverse ; un dispositif 147 de reconstitution d'une image ; un dispositif 148 de détection des mots de synchronisation et des mots de paramètres; et une borne de sortie 149 restituant des valeurs de luminance et des valeurs de chrominance pour reconstituer une image. La borne d'entrée 140 fournit la suite des données codées, sous une forme série, à une entrée du dispositif 148 et à une éntrée du dispositif 141. Le dispositif 141 convertit ces données en mots de 32 bits ayant un rythme 32 fois plus petit, et les fournit à une entrée de données d'une mémoire tampon 142, dans laquelle ils sont inscrits sous la commande d'un slgnal d' friture fourni par un séquenceur non représenté. Le dispositif 148 reconnaît, dans la suite des données codées : des mots de synchronisation correspondant à chaque image et à chaque ligne de blocs, pour reconstituer la fréquence d'images et la fréquence de lignes de blocs ; des mots séparateurs séparant les données codées correspondant à chaque bloc d'éléments d'images ; et des mots de paramètres contenant des valeurs d'écarts types pour chaque image et contenant le bit indiquant le type de codage pour chaque bloc. Le dispositif 148 possède une première sortie reliée A une borne d'entrée 154 du dispositif 143, et à une entrée du dispositif 147, pour leur fournir un signal binaire indiquant le type de codage pour chaque bloc ; et une seconde sortie reli respectivement une valeur de rang de coefficient et une valeur de rang d'adresse relative. Le dispositif 144 reconstitue les coefficients non nuls de chaque bloc de coefficients de transformation, et leurs rangs, à partir des numéros d'événements fournis par le dispositif 143. Le dispositif 143 détermine chaque numéro d'événement à partir d'un mot de code qui représente : soit le nombre n de coefficients non nuls dans un bloc, soit une adresse relative, soit la valeur d'un coefficient non nul. Le mot de code représentant le nombre n est à longueur fixe. Par contre, les mots de code représentant les adresses relatives sont décodées selon un arbre de codage qui est fonction du rang de l'adresse relative dans la suite des adresses relatives correspondant au bloc en cours de décodage, et chaque coefficient non nul est décpdé selon un arbre de décodage qui est fonction du rang de ce coefficient dans l'ensemble de tous les coefficients du bloc en cours de décodage, ordonnés dans l'ordre correspondant aux fréquences spatiales croissantes. Pendant le décodage des coefficients non nuls, le rang du prochain coefficient à décoder est fourni au dispositif 143 par une borne de sortie 159 du dispositif 144. Pendant le décodage des adresses relatives, le rang d'une adresse relative à décoder est fourni au dispositif 143 par une borne de sortie 160 du dispositif 144. Le dispositif 144 possède en outre deux bornes de sorties 157 et 158 reliés respectivement A deux entrées du dispositif 145 pour lui fournir respectivement les coefficients non nuls et leurs rangs. Le dispositif 145 est constitué essentielle- ment d'une mémoire vive à accès aléatoire dont le contenu est remis A zéro au début du décodage de chaque bloc, et dans laquelle sont inscrits les coefficients non nuls, au fur et à mesure de leur décodage. Ils sont inscrits à des adresses constituées par rangs fournis par la borne de sortie 158. Le dispositif 145 possède une entrée de remise à zéro relié à une sortie d'un séquenceur non représenté. Une sortie du dispositif 145 est reliée à une entrée du dispositif 146 de transformation cosinus inverse pour lui fournir un bloc complet de coefficients cosinus décodés, à la fin du décodage d'un bloc. Une sortie du dispositif 146 est reliée à une entrée du dispositif 147 de reconstitution d'une image. Ce dernier comporte un addltionneur, un multiplexeur, et une mémoire d'image non représentés. L'additionneur permet de reconstituer les valeurs de lumlnance et les valeurs de chrominance ayant été codées par un codage inter-images. Le multiplexeur a une entrée de commande recevant le signal qui indique le type de codage inter-images ou intra-image, et une sortie reliée à une entrée de données de la mémoire d'images. Cette dernière possède une sortie de données reliée à la borne de sortie 149. un séquenceur, non représenté, commande et synchronise le fonctionnement de tous les évenements du dispositif de décodage. Le dispositif 143 de segmentatlon des données et des calculs d'un numéro d'événement est analogue à celui décrit dans le brevet principal. La figure 7 représente un schéma synoptique plus détaillé du dispositif 144 de reconstitution des coefficients non nuls et de leurs rangs. Il comporte : un démultiplexeur 160, à une entrée et deux sorties ; un séquenceur 161 ; un accumulateur d'adresses relatives 162 ; une mémoire vive 163, du type premier entré premier sorti (FIFO), pour stocker les valeurs de rangs. La borne d'entrée 152 est reliée à une entrée de données du démultiplexeur 160 et à une entrée du séquenceur 161. Une première sortie du séquenceur 161 est reliée A une entrée de commande du démultiplexeur 160. Une première sortie du multiplexeur 160 est reliée à une entrée de l'accumulateur d'adresses relatives 162 et une seconde sortie est reliée à la borne de sortie 158. Au début du décodage de chaque bloc, le premier numéro d'évènement est constitué par le nombre n des coefficients non nuls du bloc qui va etre décodé. Le nombre n est utilisé par le séquenceur 161 pour déterminer une séquence de signaux de commande. Les n numéros d'évènements qui suivent le nombre n représentent n adresses relatives. Puls, les n numéros d'événements sulvants représentent n coefficients non nuls. Le séquenceur 161 commande donc le multiplexeur 160 pour transmettre les n adresses relatives à l'accumulateur 162 qui détermine n rangs successivement, par accumulation des valeurs d'adresses relatives. Puis, le séquenceur 161 commande le multiplexeur 160 pour transmettre les n coefficients non nuls de la borne d'entrée 152 à la borne de sortie 158. Le séquenceur 161 possède une une seconde sortie reliée à la borne de sortie 160 et fournissant une valeur variant de 1 A n, indu, : le rang de la prochaine adresse relative à décoder, pour sélectionner l'arbre de décodage dans le dispositif 143, pendant le décodage des adresses relatives. La mémoire 163 possède une entrée de données reliée à une sortie de l'accumulateur 162 fournissant une suite de rangs de coefficients. Les rangs sont stockés dans la mémoire 163 sous l'action d'un signal de commande d'écrlture fourni par une trol sième sortie du séquenceur 161. Lorsque commence de décodage des valeurs de coefficients, leurs rangs sont lus dans la mémoire 163 sous l'action d'un signal de commande fourni par une quatrième sortie du séquenceur 161. Une sortie de la mémoire 163 est reliée aux bornes de sortie 157 et 159 pour fournir chaque rang au dispositif 143, afin de sélectionner un arbre de décodage pour décoder le mot de code représentant le coefficient ayant ce rang ; et pour fournir chaque rang au dispositif 145, afin de replacer le coefficient décodé A sa position initiale dans son bloc. L'invention est particulièrement applicable A la réalisatlon des dispositif de codage et de dispositifs de décodage A applications multlples. Par exemple, un même dispositif de décodage peut décoder alternativement des images de visiophone, de télévision classique, ou de télévlslon A haute définition, sans nécessiter un surcroit important de matériel puisqu'il n'y a pas à changer des mémoires mortes stockant des mots de code à longueur variable, nl à changer des mémoires mortes stockant des tables d'assignation Un simple changement de paramètres numériques permet de modifier les arbres de codage et les arbres de décodage. REVENDICATIONS 1. Procédé de codage selon la revendication X du brevet principal, caractérisé en ce que pour coder chaque valeur non nulle et chaque longueur de plage de valeurs nulles d'un bloc de coefficients de transformation, il consiste A - compter le nombre n de coefficients non nuls (C1, . C14) dans le bloc - calculer, pour chaque coefficient non nul, une adresse relative qui est le rang de ce coefficient par rapport au coefficient non nul qui le précède dans l'ensemble des coefficients du bloc ordonnés dans un ordre prédéterminé - coder les n adresses relatives des coefficients non nuls du bloc, sous la forme de n mots de code A longueur variable - puis coder le n coefficients non nuls du bloc, sous la forme de n mots de code A longueur variable, fonctlons chacun du rang du coefficient A coder, dans l'ensemble de tous les coefficients du bloc ordonnés dans un ordre prédéterminé. 2. Procédé selon la revendicatlon 1, caractérisé en ce qu'il consiste en outre A coder chaque adresse relative par un mot de code qui est fonction du rang de l'adresse relative qu'il code, dans la suite des n adresses relatives des coefficients non nuls du bloc considéré, ces adresses relatives étant ordonnées dans un ordre correspondant à l'ordre des coefficients du bloc. 3. Dispositif de codage selon la revendication 8 du brevet principal, caractérisé en ce que les moyens de calcul pour déterminer un mot de code pour chaque coefficient non nul et pour chaque longueur de plage de coefficients nuls, compor tent - des premiers moyens de calcul (118, 9') pour compter et coder le nombre n de coefficients non nuls dans un bloc, et pour calculer une adresse relative pour chaque coefficient non nul du bloc, relativement A un coefficient non nul qui le précède dans le bloc, l'ensemble des coefficients de chaque bloc étant ordonné selon un ordre prédéterminé, et pour coder cette adresse relative par un mot de code à longueur variable - des seconds moyens de calcul (9', 11')pour coder chaque coefficient non nul du bloc, par un mot de code à longueur variable, fonction du rang de ce coefficient dans l'ensemble des coefficlents du bloc ordonnés dans l'ordre prédéterminé. 4. Dispositif de codage selon la revendication 3, caractérisé en ce que les premiers moyens de calcul (118, 9')) déterminent un mot de code à longueur variable pour chaque adresse relative, en fonction du rang de cette adresse relative dans la suite des n adresses relatives des coefficients non nuls du bloc considéré. 5. Dispositif de décodage selon la revendication 13 du brevet principal, pour décoder une suite d'images codées par le procédé selon la revendication 1, caractérisé en ce que les moyens de calcul des moyens pour décoder des mots de code A longueur variable, comportent - des moyens (143) pour décoder le nombre n des coefficients non nuls dans chaque bloc à décoder - des moyens de calcul (143) pour décoder n mots de code représentant n adresses relatives de coefficients non nuls du bloc à décoder, l'ensemble des coefficients de chaque bloc étant considéré dans un ordre prédéterminé - des moyens de calcul (162) pour déterminer n rangs A partir des n adresses relatives - des moyens (143) pour décoder n mots de code représentant n coefficients non nuls - des moyens (145) pour reconstituer un bloc de coefficients à partir des n rangs et des n coefficients non nuls ainsi déterminés. 6. Dispositif de décodage, selon la revendication 5 pour décoder une suite d'images codées par le procédé selon la revendication 2, caractérisé en ce que les moyens de calcul (143) pour décoder n mots de code représentant n coeffl cients non nuls décodent chaque valeur d'adresse relative en fonction du rang de cette adresse relative dans la suite de n adresses relatives de coefficlents non nuls du bloc A décoder et décodent chaque mot de code représentant un coefficient non nul, en fonction du rang de ce coefficient dans l'ensemble des coefficients du bloc considéré, ordonnés dans l'ordre prédéterminé.