Brevet FR2640840A1 — publié le 19900622

PROCèDE 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 procédé de codage d'une suite d'images, par une transformation et par une pluralité de codes à longueur variable. Un tel procédé a pour but de réduire la quantité d'informations à transmettre, ou à stocker, lorsque des images ont été numérisées. Il est applicable, par exemple, aux systèmes de transmission vidéo numériques ou aux magnétoscopes numériques. il est connu de coder une image numérisée en mettant en oeuvre une transformation bidimensionnelle, par exemple la transformation cosinus, et en mettant en oeuvre des mots de code à longueur variable. Le codage par transformation cosinus consiste à diviser chaque image en blocs d'éléments d'images, chaque bloc étant représenté par un bloc de valeurs de luminance, un bloc de valeurs de différence de couleur bleue, et un bloc de valeurs de différence de couleur rouge. L'application de la transformation cosinus à chacun de ces blocs fournit une matrice de valeurs appelées coefficients de transformation du bloc. Ce type de codage est dit intra-image. Un perfectionnement de ce procédé de codage consiste à appliquer la transformation cosinus non pas aux valeurs représentant directement un bloc de pixels, mais à des valeurs de différences par rapport à des valeurs appelées prédictions, constituées par les valeurs représentant un bloc de pixels homologue dans l'image précédant l'image à coder. Le codage est alors d'un type dit inter-images. Une variante consiste à prendre pour prédictions des valeurs calculées à partir de celles représentant le bloc homologue, mais en appliquant en outre une translation de compensation de mouvement. Ce type de codage est dit inter-images avec compensation de mouvement. Le type de codage varie généralement au cours du temps. Chaque bloc d'éléments d'image est codé soit par un codage inter-images, soit par un codage intra-image, la sélection étant faite, pour chaque bloc, de façon à minimiser la quantité d'informations à transmettre. Il est connu aussi de coder par plages les valeurs nulles des coefficients de transformation, ceux-ci étant balayés selon un ordre prédéterminé. Le codage par plages consiste à transmettre seulement la longueur de chaque plage au lieu de transmettre individuellement les valeurs nulles. Il est connu de coder les coefficients de transformation, et les longueurs de plages, par des mots de code à longueur variable. Ces mots de code ont de faibles longueurs pour coder des valeurs apparaissant fréquemment et ont des longueurs plus grandes pour coder des valeurs ayant des probabilités d'apparition plus faibles. Naturellement, les mots de code sont choisis de telle façon que toute concaténation licite de plusieurs mots de code ne peut pas reproduire accidentellement l'un des mots de code. Le taux de compression des informations obtenu par l'utilisation de mots de code à longueur variable dépend beaucoup de la répartition statistique des valeurs à transmettre.Une table unique de mots de code correspondant à l'ensemble des valeurs possibles pour les coefficients de transformation non nuls et pour les longueurs de plages de coefficients nuls, et correspondant aux deux types de codage, ne peut pas être optimale, car ces quatre types de valeurs ont des répartitions statistiques qui sont différentes. La seule caractéristique commune à ces quatre types de valeurs est leur concentration plus élevée au voisinage de la valeur zéro, et leur probabilité décroissante quand leur valeur absolue augmente. En outre, les caractéristiques statistiques de ces quatre types de valeurs dépendent de la position du coefficient, ou de la plage, dans la matrice de coefficients de transformation. Enfin, la répartition statistiques de ces valeurs varie dans le temps. Elle peut être étudiée sur une suite d'images considérées comme typiques, mais en pratique les images ont des caractéristiques statistiques très diverses. Les répartitions statistiques de ces quatre types de valeurs peuvent varier de manière importante. Il apparaît donc que le choix d'une table de mots de code à longueur variable, sans prendre en compte : la position du coefficient, ou de la plage de valeurs nulles, dans sa matrice, et sans prendre en compte les caractéristiques statistiques réelles des images, ne permet pas d'optimiser la réduction du débit d'informations. Le but de l'invention est d'améliorer le taux de compression des procédés de l'art antérieur. L'objet de l'invention est un procédé de codage consistant notamment à choisir le mot de code représentant la valeur d'un coefficient, ou d'une longueur de plage, non seulement en fonction de cette valeur, mais aussi en fonction de la position et d'un écart-type, respectivement : de ce coefficient ; ou de cette plage. L'invention a aussi pour objet un dispositif de codage d'images et un dispositif de décodage d'images pour mettre en oeuvre ce procédé. Selon l'invention, un procédé de codage d'une suite d'images, par une transformation, et par une pluralité de codes à longueur variable, 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 bidimensionnelle à chaque bloc de valeurs, pour obtenir un bloc de coefficients de transformation du bloc de valeurs considéré - coder chaque valeur, non nulle, de coefficient, et la longueur de chaque plage de valeurs nulles de coefficients, par un mot de code à longueur variable est caractérisé en ce que chaque mot de code est fonction du rang respectivement : du coefficient à coder; ou du coefficient situé au début de la plage de valeurs nulles, dont la longueur est à coder. L'invention sera mieux comprise et d'autres détails apparaîtront à l'aide de la description ci-dessous et des figures l'accompagnant - la figure 1 représente schématiquement le chemin de balayage permettant de définir le rang de chacun des coefficients ou de chacune des différences de coefficients représentant un bloc d'éléments d'images - la figure 2 représente schématiquement la répartition statistique des valeurs de coefficients et des longueurs de plages, d'une part pour les basses fréquences spatiales, et d'autre part pour les hautes fréquences spatiales, d'un exemple de suite d'images - la figure 3 représente le diagramme d'attribution d'un numéro d'arbre de codage en fonction de la valeur d'écart-type - la figure 4 représente le schéma synoptique d'un exemple de réalisation d'un codeur d'images pour la mise en oeuvre du procédé selon l'invention; ; - la figure 5 représente le schéma synoptique d'un exemple de réalisation d'un dispositif de décodage pour décoder une suite d'images codées par le procédé selon l'invention; - les figures 6 et 7 représentent le schéma synoptique plus détaillé d'une partie de l'exemple de réalisation de la figure 5. La figure 1 représente schématiquement la matrice des coefficients transformés cosinus des valeurs de luminance d'un bloc de 8x8 éléments d'image. Ces coefficients ont respectivement pour ordonnée et pour abscisse des valeurs de fréquence u et v. Pour représenter plus commodément leur position, et pour faire en sorte que les coefficients de plus faibles rangs correspondent aux basses fréquences spatiales, ces coefficients sont repérés, non par leurs coordonnées (u,v), mais par leur rang le long d'un chemin en zigzag. Les derniers coefficients le long de ce chemin sont ceux correspondant aux hautes fréquences spatiales de l'image. Un chemin analogue est défini pour la matrice des coefficients représentant les valeurs de chrominance rouge ou les valeurs de chrominance bleue d'un bloc d'éléments d'image. La figure 2 comporte deux parties : une partie gauche correspondant aux basses fréquences spatiales et une partie droite correspondant aux hautes fréquences spatiales. Chaque partie représente le graphe du nombre de plages de coefficients nuls, en fonction des longueurs des plages, et représente le nombre de coefficients en fonction des valeurs de ces coefficients. Ces nombres de plages et ces nombres de coefficients sont considérés sur un grand nombre de blocs d'éléments d'image, afin d'obtenir des nombres représentatifs de la probabilité d'apparition de ces longueurs de plages et de ces valeurs de coefficients. Les blocs considérés sont tous codés par un codage intra-image. Il apparaît sur ces graphes, que le nombre de plages de coefficients nuls, ayant une longueur donnée, est plus faible dans les basses fréquences que dans les hautes fréquences spatiales, et que les plages de longueurs importantes se trouvent uniquement dans les hautes fréquences spatiales. Il apparais aussi que les coefficients ont des valeurs largement réparties sur toute la gamme des valeurs, pour les coefficients correspondant aux basses fréquences spatiales, alors que les coefficients correspondant aux hautes fréquences spatiales sont très nombreux à avoir une faible valeur. Ces graphes montrent donc la grande disparité des répartitions statistiques des longueurs de plages, respectivement des valeurs de coefficients, en fonction du rang des coefficients. Le cas des valeurs de chrominance est analogue. Une constatation semblable peut être faite lorsque les coefficients résultent d'un codage inter-images ou lorsqu'ils résultent d'un codage intra-image, mais la répartition varie en outre selon le type de codage. C'est pourquoi, une première caractéristique du procédé selon l'invention consiste à utiliser des mots de code qui sont fonctions du rang, respectivement : du coefficient à coder, ou du premier coefficient de la plage de vaieurs nulles, dont la longueur est à coder. Des graphes analogues aux graphes représentés sur la figure 2 peuvent être tracés pour diverses suites d'images. La comparaison de ces graphes montre que la répartition statistique des longueurs de plages et des valeurs de coefficients, pour une même position dans la matrice, varie notablement en fonction de la suite d'images. C'est pourquoi, une autre caractéristique du procédé selon l'invention consiste à coder, respectivement: chaque coefficient, ou chaque longueur de plage, par un mot de code qui est fonction d'un écart-type calculé pour le rang considéré, pour le type de valeur considéré, et pour le type de codage considéré; au cours du codage de l'image précédant l'image courante. Par exemple, pour les coefficients de transformation, l'écart-type correspondant à un rang donné est calculé en additionnant les carrés de tous les coefficients ayant ce rang dans les blocs de coefficients résultant du codage intra-image de blocs d'éléments de l'image précédant l'image courante, puis cette somme est divisée par le nombre de carrés qui ont été additionnés. De même, une valeur d'écart-type est déterminée pour chaque rang, à partir des valeurs de coefficients calculées pour des blocs d'éléments d'image codés par un codage inter-images, au cours du codage de l'image precédant l'image courante. De même, une valeur d'écart-type est déterminée pour chaque rang, à partir des longueurs de plages calculées pour des blocs codés par un codage intra-image.De même, une valeur d'écart-type est déterminée, pour chaque rang, à partir des longueurs de plages calculées pour des blocs codés par un codage inter-images. Par exemple, pour coder un coefficient de transformation ayant un rang donné, et résultant d'un codage inter-images, le procédé consiste à : lire dans une mémoire la valeur de l'écart-type correspondant au codage inter-images et correspondant aux coefficients de transformation ayant ce rang donné ; puis comparer la valeur de cet écart-type par rapport à une pluralité de valeurs de seuil correspondant à une pluralité de tables fournissant les mots de code à longueur variable. Selon une première variante du procédé selon l'invention, les coefficients non nuls et les longueurs de plages de coefficients nuls résultant d'un codage intra-image, sont codés par des mots de code identiques. Pour un rang donné, il y a alors un seul écart-type pour ces deux types de valeurs. De même, les coefficients et les longueurs de plages, résultant d'un codage inter-images sont codées par des mots de code identiques, et il y a alors un seul écart-type pour ces deux derniers types de valeurs, pour un rang donné. Il y a alors seulement deux valeurs d'écart-type à calculer pour chaque rang. Dans ce cas, deux types de valeurs ayant des répartitions statistiques différentes doivent être codés avec un même arbre de codage. Il est alors nécessaire d'utiliser une table, dite d'assignation, qui à chaque valeur fait correspondre un numéro d'évènement croissant en fonction de la probabilité d'apparition décroissante de cette valeur, l'ensemble des valeurs des deux types étant ordonné dans l'ordre de leur probabilité décroissante. Ce transcodage par une table d'assignation nécessite d'utiliser une mémoire marte supplémentaire dans le dispositif de codage et une mémoire morte supplémentaire dans le dispositif de décodage. Une deuxième variante du procédé selon l'invention consiste à utiliser une table d'assignation différente selon qu'une valeur non nulle de coefficient est précédée) ou non, d'une valeur nulle ou d'une plage de valeurs nulles. En effet, si un coefficient suit une plage de valeurs nulles, le décodeur sait automatiquement que la valeur de ce coefficient n'est pas nulle, car autrement elle aurait été intégrée à la plage. Par conséquent, il est possible de coder ce coefficient en utilisant une table d'assignation qui, en fait, ne comporte pas les évènements constitués par les longueurs des plages. Cette table d'assignation étant simplifiée, elle fournit des numéros d'événements qui sont moins nombreux et par conséquent les mots de code correspondants ont une longueur maximale qui est réduite . Il est possible d'utiliser un même jeu de huit tables de codage pour les quatre types de valeurs à coder, et d'utiliser les mêmes valeurs de seuil, puisque la caractéristique essentielle des valeurs n'est pas leur type, mais leur répartition statistique, laquelle est reflétée par la valeur d'écart-type. Le choix de la table associée à chaque intervalle peut être fait, une fois pour toutes, par des essais comparatifs, en comparant les coûts de codage procurés par les huit tables pour coder une suite d'évènements ayant un écart-type donnée. La figure 3 représente graphiquement la correspondance entre la gamme des valeurs de l1écart-type et la gamme des tables de codage. Dans cet exemple, il y a sept valeurs de seuil correspondant à huit tables de codage qui sont représentées par des numéros de un à huit. L'utilisation d'une pluralité de tables de codage permet de réduire le débit d'informations transmis, puisqu'elle permet de tenir compte des variations de répartition statistique en fonction du rang, et en fonction du temps. Malheureusement, cela complique la réalisation d'un dispositif de codage et d'un dispositif de décodage. Classiquement, une table de code à longueur variable est déterminée une fois pour toutes, puis est stockée dans une mémoire morte dans le dispositif de codage et dans le dispositif de décodage. Il est envisageable de stocker un jeu de tables de codage distinctes, en multipliant la capacité de la mémoire morte située dans le dispositif de codage et la capacité de la mémoire morte située dans le dispositif de décodage. Cependant, cette solution est coûteuse en matériel. Un autre type de code à longueur variable est utilisé avantageusement. La demande de brevet français Nb 88 01860, au nom de la demanderesse, décrit un procédé de codage et un procédé de décodage, à longueur variable, permettant d'utiliser un grand nombre de tables de codage distinctes sans avoir a les stocker dans des mémoires morte, parce que les mots de code sont fournis par un dispositif de calcul arithmétique et logique, puis sont reconnus par un autre dispositif de calcul arithmétique et logique. Ces dispositifs arithmétiques et logiques sont peu complexes bien qu'ils permettent d'utiliser un nombre élevé de tables de codage. Le changement de table de codage est obtenu simplement en fournissant un jeu de trois paramètres au dispositif de codage et au dispositif de décodage. Une table de codage procurant un coût de codage peu différent du coût optimal, peut être sélectionnée ainsi. Ce procédé de codage à longueur variable peut être mis en oeuvre pour coder puis décoder toute sorte d'événements, pourvu que la distribution 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, les événements peuvent être représentés facilement par une suite de valeurs entières consécutives positives ou nulles. Dans un premier temps, la description ci-dessous fera abstraction des valeurs à coder en les considérant comme une suite finie d'événements dans laquelle chaque événement à coder est représenté par un numéro croissant lorsque la probabilité de l'événement décroît. L'événement le plus probable est appelé événement n0 O, les autres étant appelés : événement n0 1, n0 2, etc... Dans le cas particulier ou les valeurs à coder sont toutes positives ou nulles, il y a identité entre le numéro de l'événement à coder et la valeur qui constitue l'événement à coder. Par exemple, si les valeurs à coder sont les valeurs entières 0, 1, 2, .... 127 ; avec des probabilités décroissantes, le procédé de codage est appliqué directement sur la suite des valeurs binaires correspondant à : O, 1, 2, ..., 127. Pour construire un arbre de codage ayant une structure régulière facile à définir par une loi de progression simple, l'ensemble des événements possibles est découpé en une suite de N sous-ensembles disjoints comportant chacun un nombre d'événements déterminé par une loi simple. Chacun de ces sous-ensembles comporte 2n(i) 1 événements, n(l) étant un nombre entier qui est fonction du rang i du sous-ensemble d'événements, par une loi de progression prédéterminée. Pour coder un événement représenté par une valeur E entière et positive, ce procédé de codage à longueur variable consiste à - déterminer un premier mot binaire ne comportant que des bits ayant une même valeur, et dont le nombre de bits B est une fonction croissante de la valeur à coder E, en calculant le nombre B selon une fonction B (E) prédéterminée - déterminer un second mot binaire ayant une valeur correspondant au rang de la valeur à coder, dans l'ensemble des valeurs à coder ordonnées selon les probabilités décroissantes, et dont le nombre de bits est déduit de la fonction B (E) et du nombre de bits du premier mot binaire - constituer un mot de code en réunissant le premier et le second mot binaire ainsi déterminés. Plus précisément, le premier mot binaire du mot de code comporte un nombre de bits B égal à la somme de n(i) pour i=1 à io-1, où n(i) est un nombre entier fonction d'une variable entière i selon une loi arithmétique et logique déterminée, et i est un nombre entier fonction de E, et tel o que E est strictement supérieure à la somme de (2n(i)-1) pour et inférieure ou égale à la somme de (2n(i)-1) pour 1=1 à io. o Le second mot binaire a une valeur égale à la différence entre E et la somme de (2n(i)-1) pour i=1 à io; et a un nombre de bit B' égal à n(iO). o En règle générale, la valeur de la seconde partie du mot de code varie de O à 2n(io)-2. Le fait d'avoir découpé l'ensemble des événements en une suite de sous-ensembles disjoints, chaque ième sous-ensemble comportant 2n(i)-1 événements, permet d'utiliser toutes les valeurs possibles de la seconde partie du mot de code. Naturellement, si l'ensemble des événements comporte un nombre d'événements qui n'est pas égal à une puissance de 2, le dernier sous-ensemble, le Nième sous-ensemble, peut comporter un nombre d'événements inférieur à la valeur maximale de la seconde partie du mot de code correspondant à ce sous-ensemble. La loi de progression de n(i) en fonction de i peut être quelconque, mais le codage et le décodage seront beaucoup plus simples à mettre en oeuvre, au moyen d'un simple dispositif de calcul arithmétique et logique, si cette loi peut être exprimée d'une manière simple par des opérations arithmétiques et logiques. Les lois de progression préférentielles sont des lois de forme linéaire, avec une valeur initiale a, et une pente égale à un nombre c d'événements pour un pas égal à b sous-ensembles. Autrement dit, n(i) est donné par les formules suivantes n(1) = a n(i) = n(i-l) si i-1 est compris entre l(modulo b) inclus et b-1(modulo b) inclus et n(l) = n(i-1)+c si i-l:O(modulo b) Une loi de progression n(i) ayant été fixée, l'arbre de codage est défini. La valeur de a est choisie de préférence entre 1 et 5 inclus, la valeur de b est choisie de préférence entre 1 et 3 inclus, et la valeur de c est choisie de préférence entre 0 et 3 inclus. Le décodage est réalisé selon un arbre de décodage qui est identique à l'arbre de codage. Pour décoder chaque valeur E, le procédé consiste A - rechercher parmi les premiers bits à décoder, un premier mot binaire ne comportant que des bits ayant la valeur 1 et ayant un nombre de bits égal à l'une des valeurs d'une suite de valeurs entières définie par la fonction B (E) mise en oeuvre pour le codage - déterminer un second mot binaire constitué de bits suivant ceux du premier mot binaire et dont le nombre est déduit de la fonction B(E) mise en oeuvre pour le codage, et du nombre de bits déterminé pour le premier mot binaire - déterminer la valeur décodée, E, en additionnant une valeur entière prédéterminée, correspondant au nombre de bits du premier mot binaire par la fonction B (E), et la valeur du second mot binaire. Plus précisément, la valeur correspondant au nombre de bits du premier mot binaire est déterminée en calculant, pour i croissant à partir de 1 - une suite de nombres entiers n(i) selon une loi arithmétique et logique identique à celle mise en oeuvre pour le codage - la valeur binaire CH (i) d'un mot binaire constitué de n(i) bits consécutifs de la suite de bits à décoder, ces n (i) bits étant distincts pour chaque valeur de i. Puis le procédé consiste à - comparer CH (i) respectivement à la valeur 2n(i-l) - déterminer une valeur maximale i de i, telle que CH(i0 -1) est égal à 2n(10-1) - additionner les valeurs CH(i), pour i croissant de 1 jusqu'à I inclus La valeur de cette somme est égale au o rang de la valeur à décoder, dans l'ensemble des valeurs décodées possibles, ordonné dans l'ordre des probabilités décroissante. Elle est donc égale à la valeur E à décoder. Le décodage consiste donc en deux étapes : une première étape consiste à localiser dans quel sous-ensemble se trouve l'événement à décoder ; une seconde étape consiste à trouver le rang de l'événement à décoder, parmi tous les événements de ce sous-ensemble. La première étape détecte tout d'abord si le premier groupe des bits de la suite de données codées est : 1, ou 111, ou llllll; etc..., en découpant, dans la suite des données codées, une suite de champs distincts ayant respectivement n(1) bits, n(2) blots, n(3) bits, etc..., et en testant la valeur des bits de ces champs pour i croissant, jusqu'à trouver un champ comportant au moins un bit de valeur 0, ce champ constituant la fin du mot de code. La deuxième étape calcule E en additionnant les valeurs de tous les champs qui constituent le mot de code. Ce - -procédé de codage à longueur variable est particullèrement avantageux pour coder les évènements constitués par une suite de valeurs entières consécutives positives ou nulles, ayant des probabilités décroissantes quand leurs valeurs augmentent. Ces valeurs peuvent être codées par un dispositif arithmétique et logique simple, sans transcodage préalable. Dans le cas où les évènements à coder sont des valeurs entières consécutives dont la répartition est centrée sur une valeur connue, en étant décroissante et monotone de part et d'autre de cette valeur connue, il est possible de se ramener au cas précédent en soustrayant la valeur connue à chacune des valeurs à coder. Dans le cas OÙ la valeur à coder est quelconque, notamment si sa probabilité d'apparition n'est pas une fonction monotone de sa valeur absolue, il est nécessaire de réaliser un transcodage préalable. Ce transcodage consiste à associer à chaque valeur un numéro d'évènement constitué par un nombre entier positif croissant à partir de O, en fonction des probabilités décroissantes des valeurs à coder. Ce cas est analogue au cas mentionné précédemment, ou deux types de valeurs ayant des répartitions statistiques différentes, sont codées par une même table de codage, à condition de les transcoder préalablement par une table d'assignation. Une troisième variante du procédé selon l'invention permet de gagner du temps sur la durée du décodage. Pour coder une valeur non nulle qui est précédée d'une plage de valeurs nulles, cette variante consiste à coder cette valeur par un mot de code qui n'est pas fonction du rang exact de cette valeur, mais est fonction d'un rang qui est pris égal au rang de la première valeur nulle de la plage, augmenté d'une unité, quelle que soit la longueur de la plage. Au moment du décodage de cette valeur non nulle, le rang considéré n'est pas le rang exact, qui nécessite de connaître la longueur de la plage, mais c'est un rang qui est calculé en ajoutant une unité au rang du premier coefficient constituant le début de la plage.Ainsi, il est possible de décoder rapidement un coefficient qui suit une plage de valeurs nulles, puisqu'il n'est pas nécessaire d'attendre la fin du décodage de la longueur de la plage. Une quatrième variante du procédé de codage, destinée au même but, consiste à interdire le codage par plages pour les coefficients ayant un rang inférieur à une limite fixée qui correspond au début des hautes fréquences spatiales. Leurs valeurs nulles sont codées individuellement, comme les valeurs non nulles. Simultanément, les changements d'arbre de codage sont interdits pour les coefficients ayant un rang supérieur ou égal à cette limite fixée, par contre le codage par plages est autorisé. Cette variante est basée sur le fait que les changements d'arbre de codage sont moins fréquents pour les rangs correspondant aux fréquences élevées, et que les plages de valeurs nulles sont moins fréquentes pour les rangs correspondant aux basses fréquences. Ainsi, les coefficients correspondant aux fréquences basses et moyennes sont codés au moyen de divers arbres de codage, en fonction du rang et de l'écart-type, alors que les coefficients correspondant à des fréquences élevées sont codés toujours avec le même arbre de codage quel que soit leur rang, ce qui permet de ne pas tenir compte de leur rang. Ainsi, il est possible de décoder rapidement un coefficient qui suit une plage de valeurs nulles, puisqu'fil n'est pas nécessaire d'attendre la fin du décodage de la longueur de la plage. Dans le même but, gagner du temps sur la durée du décodage, un perfectionnement au procédé de codage décrit cl-dessus consiste à limiter le nombre d'évènements codés pour chaque bloc d'éléments d'image; en considérant comme nulles les dernières valeurs de coefficients ou de différence de coefficients. Par exemple, le nombre d'événements peut être limité à 52 pour chaque bloc de 64 coefficients de luminance, et 12 pour chaque bloc de coefficients de différences de couleur, représentant un bloc de 8x8 éléments d'images. Une telle limitation permet de disposer de deux fois plus de temps pour coder et pour décoder les 64 évènements, par rapport au cas où le nombre maximal d'évènements prévu est 128. En pratique, cette limitation dégrade très rarement la qualité des blocs d'éléments d'image restitués. La figure 4 représente le schéma synoptique d'un exemple de réalisation d'un dispositif de codage d'images pour la mise en oeuvre de la deuxième et de la troisième variante du procédé 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 informations codées fournies par ce dispositif de codage d'images ; un dispositif 5 de détection des plages de valeurs nulles ; un dispositif 6 de détection des fins de plages de valeurs nulles ; un dispositif 7 de calcul de deux écarts-types pour chaque rang de coefficient; une mémoire morte 8 contenant des tables d'assignation; un dispositif 9 de calcul d'un mot de code ; 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 sortie 13 reliée à un canal de transmission ; un séquenceur 14 commandant chacun des éléments de ce dispositif de codage ; un pointeur de rang, 15 ; et un dispositif 16 d'insertion de mots de synchronisation et de mots de paramètres. Le dispositif 2 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 à transmettre dans ces 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 sortie du dispositif 2 est reliée à une entrée du dispositif 16 pour transmettre un bit indiquant le type de codage pour chaque bloc, et est reliée à une entrée d'adresses de la mémoire morte 8 pour sélectionner une famille parmi deux familles de tables d'assignation selon que le codage est inter-images ou intra-image. Une autre sortie du dispositif 2 est reliée à une entrée du dispositif 3. Une sortie du dispositif 3 fournit une matrice de coefficients cosinus à une entrée du dispositif 4. Le dispositif 4 réalise une quantification à pas variable qui fait correspondre à chaque coefficient, un mot binaire de valeur E. Cette valeur E est appliquée : à une entrée du dispositif 5 de détection des plages de valeurs nulles ; à une entrée du dispositif 6 de détection des fins de plages ; et à une entrée du dispositif 7 de calcul de deux écarts-types pour chaque rang. Le dispositif 5 possède une première sortie fournissant une valeur de coefficient, à une entrée d'adresses de la mémoire morte 8. Une seconde sortie du dispositif 5 fournit un signal d'incrémentation à une entrée de commande du pointeur de rang 15. Une sortie de ce dernier fournit une valeur de rang à une entrée d'adresses de la mémoire morte 8 et à une entrée d'adresse de la mémoire morte 11. Cette valeur de rang est incrémentée d'une unité avant le codage de chaque valeur non nulle de coefficient, et avant le codage d'une plage de valeurs nulles, quelle que soit sa longueur. Mais la valeur du rang est incrémentée aussi d'une unité pour la première valeur non nulle qui suit une plage de valeurs nulles. Puis elle est incrémentée de la longueur de la plage, pour la deuxième valeur non nulle qui suit la plage. Le dispositif 6 possède une entrée reliée à la sortie du dispositif 4 pour recevoir la valeur E, et une sortie reliée une entrée d'adresses de la mémoire 8, pour lui fournir un signal binaire F indiquant si le précédent coefficient constitue la fin d'une plage de valeurs nulles. Le dispositif 7 possède une première sortie reliée à une seconde entrée d'adresses de la mémoire 11, pour lui fournir une valeur d'écart-type ; et une seconde sortie reliée à une entrée du dispositif 16, pour transmettre, avec les données codées de chaque image, deux tables de 8x8 valeurs d'écart-type. Chaque valeur d'écart-type est représentée par un mot de 3 bits permettant de sélectionner directement un jeu de paramètres définissant un arbre de codage, parmi huit jeux possibles pour chaque valeur de rang. La mémoire morte 8 possède une sortie fournissant une valeur entière positive, appelée numéro d'évènement, lue dans une table parmi une pluralité de tables, en fonction : du signal de sélection du type de codage ; du rang ; et du signal de fin de plage, F. Le numéro d'évènement est appliqué à une entrée du dispositif 9. Une autre entrée du dispositif 9 est reliée à une sortie de la mémoire il et reçoit les paramètres qui définissent un arbre de codage. Deux sorties du dispositif 9 sont reliées respectivement å 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 8x8 valeurs d'écart-type, et par le bit indiquant le type de codage de chaque bloc, 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 code 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 série, Bun 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 n0 88 01860. Il comporte alors - des premiers moyens de calcul pour calculer une valeur n(i), pour i entier croissant à partir de 1, selon les formules n(i) = a n(i) = n(i-1) si i est compris entre 1(module b) inclus et b-1(modulo b) inclus n(i) = n(1-1)+c Si i-1=O(modulo b) ;. a, b, c étant des constantes entières positives qui sont les paramètres définissant un arbre de codage - - des seconds moyens de calcul pour calculer une suite de valeurs entières S(i), S (i) étant égale à la somme de (2n(U)-1) pour des valeurs entières u croissant de 1 à- i, et pour comparer la valeur S (i) à une valeur à coder E ; et déterminer une valeur i telle que E est strictement o supérieure à S(i0 -1) et inférieure ou égale à S(io); - des troisièmes moyens de calcul pour former un mot binaire ayant B(i0 -1) bits de valeur 1, B(io-1) étant égal à la somme de n(i) pour 1=1 à i -1 o - un registre pour constituer un mot de code comportant une première partie constituée par le mot binaire de B(io-1) bits de valeur 1; et une seconde partie constituée par un mot binaire dont la valeur est E-S(lo-1). La figure 5 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 la deuxième et la troisième variante du procédé selon l'invention. Cet exemple comporte : une borne d'entrée 40 reliée à un canal de trsnsmission transmettant des données qui ont été codées au moyen du dispositif de codage décrit précédemment ; un dispositif 41 de conversion série-parallèle ; une mémoire tampon 42 ; un dispositif 43 de segmentation des données codées et de calcul d'un numéro d'événement ; un dispositif 44 de reconstitution des plages de valeurs nulles ; un dispositif 45 de reconstitution d'un bloc de coefficients ; un dispositif 46 de transformation cosinus inverse ; un dispositif 47 de reconstitution d'une image ; un dispositif 48 de détection des mots de synchronisation et des mots de paramètres ; et une borne de sortie. 49 restituant des valeurs de luminance et des valeurs chrominance pour reconstituer une image. La borne d'entrée 40 fournit la suite des données codées, sous la forme série, à une entrée du dispositif 48 et à une entrée du dispositif 41. Le dispositif 41 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 42, dans laquelle ils sont inscrits sous la commande d'un signal d'écriture fournit par un séquenceur non représenté. Le dispositif 48 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'image ; et des mots de paramètres contenant les valeurs d'écart-type, pour chaque image, et contenant le bit indiquant le type de codage pour chaque bloc. Le dispositif 48 possède une première sortie reliée à une borne d'entrée 54 du dispositif 43, et à une entrée du dispositif 47 pour leur fournir un signal binaire indiquant le type de codage, pour chaque bloc ; et une deuxième sortie reliée à une borne d'entrée 55 du dispositif 43 pour lui fournir, préalablement au décodage de chaque image, la suite des valeurs d'écart-type qui seront utilisés pour décoder cette image. La mémoire tampon 42 possède une sortie de données reliée à une borne d'entrée 50 du dispositif 43 pour lui fournir des mots de 32 bits à un rythme défini par un signal de commande de lecture qui est fourni à une entrée de commande de la mémoire 42 par une borne de sortie 51 du dispositif 43. Le dispositif 43 possède en outre une borne de sortie 52 reliée à une entrée du dispositif 44 pour lui fournir des valeurs de coefficients de transformation, ou de longueurs de plage, et pour lui fournir un bit lui indiquant le type de chaque valeur fournie. Le dispositif 43 possède en outre deux bornes d'entrée 53 et 56, reliées respectivement à deux sorties du dispositif 44 pour recevoir respectivement un signal binaire fp indiquant la fin d'une plage de valeurs nulles, et un signal binaire d'incrémentation du rang utilisé pour décoder les valeurs codées. Le dispositif 44 reconstitue les plages de valeurs nulles en fournissant au dispositif 45 une suite de valeurs nulles dont le nombre est égal à la longueur de plage fournie par la borne de sortie 52, lorsque la valeur est du type longueur de plage. Le dispositif 44 ne fait que retransmettre une valeur fournie par la borne de sortie 52, lorsque le bit l'accompagnant indique qu'il s'agit d'une valeur de coefficient. Le dispositif 45 possède une sortie reliée à une entrée du dispositif 46 pour lui fournir, bloc par bloc, les coefficients de transformation reconstitués. Le dispositif 47 comporte un additionneur, un multiplexeur, et une mémoire d'image, non représentés. L'additionneur permet de reconstituer les valeurs de luminance 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, et a une sortie reliée une entrée de données de la mémoire d'image. La mémoire d'image possède une sortie de données reliée à la borne de sortie 49. Un séquenceur, non représenté, commande et synchronise le fonctionnement de tous les éléments du dispositif de décodage. La figure 6 représente un schéma synoptique plus détaillé d'un exemple de réalisation du dispositif 43 de segmentation des données codées et de calcul d'un numéro d'évènement. Cet exemple de réalisation comporte : deux registres, 60 et 61 ; un registre à fenêtre, 62 ; un accumulateur 63 ; un dispositif 64 de segmentation ; un ensemble 65 de 32 portes logiques ET ; un registre décaleur à 32 bits, 66 ; une mémoire morte 67 contenant des valeurs de préfixe ; un additionneur 68 ; un séquenceur 69 commandant l'ensemble des éléments du dispositif 43 ; un pointeur de rang 70 ; une mémoire morte 71 contenant huit numéros désignant huit arbres de codage ; une mémoire vive 72 contenant 64 valeurs d'écart-type pour le codage inter-image et 64 valeurs d'écart-type pour le codage intra-image; deux registres 73 et 74 ; et une mémoire morte 75 contenant des tables d'sssignation Les données codées, qui sont appliquées à la borne d'entrée 50 du dispositif 43, sous la forme de mots de 32 bits, sont stockées d'abord dans le registre 61 puis dans le registre 60. Une sortie du registre 61 et une sortie du registre 60 fournissent chacune un mot de 32 bits, appliqué respectivement å deux entrées du registre 62. Le registre 62 est un registre à fenêtre, c'est-à-dire fournissant sur une sortie de 32 bits qui sont pris consécutivement parmi les 64 bits appliqués sur les entrées. La fenêtre de sélection des 32 bits est mobile. Elle se déplace d'un nombre de bits déterminé par un nombre appliquée å une entrée de commande du registre 62, et qui est fourni par une sortie de l'accumulateur 63. L'accumulateur 63 possède en outre une sortie de retenue qui est reliée à des entrées de validation des registres 60 et 61, et à la borne de sortie 51 du dispositif 43, pour commander la lecture du mot de données suivant, dans la mémoire tampon 42. L'accumulateur 63 accumule des valeurs de longueur qui sont les longueurs des mots de code qui sont extraits successivement de la suite de données. Une borne de sortie 82 du dispositif de segmentation 64 fournit la longueur, d'un mot extrait de la suite de données, à : une entrée de l'accumulateur 63 une entrée de commande du registre décaleur 66, et une première entrée d'adresses partielles de la mémoire morte 67. Une sortie du registre 62 fournit un mot de 32 bits de données à une borne d'entrée 80 du dispositif 64 et à une première entrée de l'ensemble 65. le dispositif 64 possède en outre une borne d'entrée 81 reliée à une sortie de la mémoire morte 71 et une borne de sortie 83 fournissant un masque de 32 bits à une seconde entrée de l'ensemble 65. Une sortie de l'ensemble 65 fournit un mot binaire de 32 bits à une entrée du registre décaleur 66. Une sortie du registre 66 fournit un mot binaire de 11 bits à une entrée du registre 73. La mémoire morte 67 possède une seconde entrée d'adresses partielles reliée à la sortie de la mémoire morte 71, et possède une sortie fournissant un mot binaire de 11 bits à une entrée du registre 74. Les sortie des registres 73 et 74 sont reliées respectivement à deux entrées de l'additionneur 68. Ce dernier possède une sortie reliée à une première entrée d'adresses partielles de la mémoire morte 75. Une seconde entrée d'adresses partielles de la mémoire morte 75 est reliée à la sortie de la mémoire morte 71. La mémoire morte 71 possède une première entrée d'adresses partielles reliée à la borne d'entrée 54 du dispositif 43 ; une deuxième entrée d'adresses partielles reliée à une sortie du pointeur de rang 70 ; et une troisième entrée d'adresses partielles reliée à une sortie de la mémoire vive 72. La mémoire vive 72 possède une entrée d'adresses reliée à la borne 55 du dispositif 43. Une entrée du pointeur de rang 70 est reliée à une première sortie de la mémoire morte 75. Une seconde sortie de la mémoire morte 75 est reliée à la borne de sortie 52 du dispositif 43. Une troisième entrée d'adresses partielles de la mémoire 75 est reliée à la borne d'entrée 53 du dispositif 43. Le registre 62 fournit un mot de 32 bits de données, à la borne d'entrée 80 du dispositif de segmentation 64 et à la première entrée du comparateur 65. Le dispositif de segmentation 64 a pour fonction de segmenter la suite des données codées pour extraire chaque mot de code. Le dispositif 64 et l'accumulateur 63 commandent le registre 62 pour décaler les bits de données jusqu'à reconnaître le préfixe d'un mot de code parmi les 32 bits appliqués à la borne d'entrée 80 du dispositif 64. Le dispositif 64 fournit alors un mot binaire de 32 bits constituant un masque, à la seconde entrée de l'ensemble 65, pour extraire la seconde partie du mot de code en masquant une partie des bits de données appliquées à la première entrée de l'ensemble 65. A chaque période d'horloge, la valeur fournie par l'accumulateur 63 est incrémentée de la longueur du mot de code précédemment décodé, de manière à extraire un mot de 32 bits de données dont le début coïncide avec la fin du précédent mot de code. La longueur maximale d'un mot de code est de 32 bits. Lorsque le contenu de l'accumulateur 63 dépasse la valeur 32, l'accumulateur 63 fournit un signal de retenue qui valide les registres 60 et 61, et qui commande la lecture d'un nouveau mot de 32 bits de données dans la mémoire tampon 42. Ce nouveau mot est inscrit dans le registre 61, alors que le mot qui était inscrit dans ce dernier est transféré dans le registre 60. Le dispositif de segmentation 64 détermine la longueur du mot de code en cours de décodage, puis fournit cette longueur sur sa borne de sortie 82, et fournit un masque de 32 bits sur sa borne de sortie 83. L'ensemble 65 comporte 32 porte ET, chacune ayant une entrée recevant un bit de données fourni par la sortie du registre 62, une entrée recevant un bit du masque fournit par la borne de sortie 83, et une sortie fournissant un bit à une entrée du registre décaleur 66. Le masque permet d'éliminer les bits qui n'appartiennent pas au mot de code en cours de décodage. Le registre décaleur 66 reçoit sur son entrée de commande la longueur du mot de code en cours de décodage, et permet d'extraire le dernier champ constituant ce mot de code. La valeur de ce dernier champ est stockée ensuite dans le registre 73, sous la forme d'un mot de 11 bits. La mémoire morte 67 reçoit une adresse constituée par un numéro ~ d'arbore de codage et par la longueur du mot de code en cours de décodage. Elle fournit un mot de 11 bits donnant la valeur du préfixe du mot de code. Cette valeur est stockée dans le registre 74. L'additionneur 68 fournit un numéro d'évènement qui est égal à la somme de la valeur du dernier champ et de la valeur du préfixe. Les registres 73 et 74 permettent un fonctionnement du type "pipe liner pour traiter, en aval des registres 73 et 74, des données antérieures à celles qui sont traitées en amont. Cette structure permet de traiter deux mots de code simultanément pendant la durée d'une période d'horloge. La mémoire 71 fournit un numéro d'arbre qui est lu à une adresse constituée par : une valeur d'écart-type fournie par la mémoire 72, une valeur de rang fournie par le pointeur de rang 70, et deux bits indicateurs fournis par la borne d'entrée 54. Un bit indique si le codage est du type inter-images ou intra-image pour le bloc d'éléments d'image en cours de décodage. L'autre bit indique si les valeurs codées sont des valeurs de luminance ou des valeurs de différence de couleur. Le numéro d'arbre est fourni : au dispositif de segmentation 64, à une entrée d'adresses partielles de la mémoire 67 contenant les valeurs des préfixes, et à une entrée d'adresses partielles de la mémoire 75 contenant les tables d'assignation. La mémoire vive 72 contient 128 valeurs d'écart-type qui sont stockée au début du décodage de chaque image. La mémoire 77 reçoit aussi l'adresse partielle constituée par la valeur d'un signal binaire f p fourni par la borne d'entrée 53 et indiquant la fin d'une plage de valeurs nulles. Ces adresses partielles permettent de sélectionner une table d'assignation. Cette table d'assignation permet de faire correspondre au numéro d'évènement une valeur de coefficient ou de longueur. Cette valeur est fournie par la seconde sortie de la mémoire 75 et est représentée par un mot binaire de 12 bits comportant 11 bits de valeur et un bit indiquant si c'est un coefficient ou si c'est une longueur. D'autre part, la première sortie' de la mémoire morte 75 fournit un nombre qui est additionné au contenu du pointeur de rang 70 qui fonctionne comme un accumulateur.Le rang est augmenté d'une unité lors du décodage d'un coefficient non nul, ou lors du décodage du premier coefficient nul constituant le début d'une plage. Il est augmenté de la longueur de la plage lors du décodage du deuxième coefficient de valeur nulle constituant la plage. La figure 7 représente le schéma synoptique d'un exemple de réalisation du dispositif de segmentation 64. Cet exemple comporte : huit dispositifs de masquage, 100, ... ,108 pour masquer respectivement le champ numéro 1 8 . . ,8 dans les mots de code ; un codeur à priorité, 109 ; une mémoire morte 110 stockant les longueurs des différents champs pouvant constituer un mot de code ; et un décodeur 111. Chacun des dispositifs 100 à 108 possède une première entrée reliée à la borne d'entrée 80 et une seconde entrée reliée à la borne d'entrée 81 pour recevoir respectivement un mot de 32 bits de données et un mot de 3 bits de numéro d'arbre. Ils possèdent chacun une sortie fournissant un bit à une entrée du codeur à priorité 109. Ils ont une structure semblable. Par exemple, le dispositif 100 comporte une mémoire morte 78 stockant les masques sous la forme de mots de 32 bits, et un comparateur 79 dont la sortie constitue la sortie du dispositif 100. Le comparateur 79 permet de détecter un champ contenant au moins un zéro, ce champ étant délimité par le masque fourni par la mémoire morte 78. Le premier champ qui contient un zéro constitue le dernier champ d'un mot de code. Le codeur 109 reçoit les signaux fournis par les différents dispositifs 100 à 108 et détermine le numéro du premier champ comportant un zéro. Une sortie du codeur 109 est reliée à une première entrée d'adresses partielles de la mémoire morte 110. Celle-cl possède une seconde entrée d'adresses partielles recevant le numéro d'arbre fourni par la borne d'entrée 81. La mémoire 110 fournit la longueur du mot de code en cours de décodage, en fonction du numéro d'arbre et du numéro du premier champ contenant un zéro. Cette longueur est fournie à la borne de sortie 82 et à une entrée du décodeur 111. Le décodeur 111 fournit un masque constitué par un mot de 32 bits correspondant à la longueur du mot de code. Ce masque est identique au masque qui est fourni par la mémoire morte 78 dans le dispositif de masquage, 100 ou,...,108, qui détecte le premier champ contenant un zéro. L'invention ne se limite pas aux exemples de réalisation décrits ci-dessus, de nombreuses variantes de réalisation sont à la portée de l'homme de l'art pour mettre en oeuvre le procédé de codage décrit précédemment et pour décoder les données codées ainsi obtenues. Application aux codeurs-décodeurs d'images de télévision. REVENDICATIONS 1. Procédé de codage d'une suite d'images par une transformation, et par une pluralité de codes à longueur variable, 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 bidimensionnelie à chaque bloc de valeurs, pour obtenir un bloc de coefficients de transformation du bloc de valeurs considéré - coder chaque valeur, non nulle, de coefficient, et la longueur de chaque plage de valeurs nulles de coefficients, par un mot de code à longueur variable caractérisé en ce que chaque mot de code est fonction du rang respectivement : du coefficient à coder ; ou du premier coefficient de la plage de valeurs nulles, dont la longueur est a coder. 2. Procédé selon la revendication l, caractérisé en ce que chaque mot de code est fonction, en outre, d'une valeur d'écart-type déterminée pendant le codage de l'image précédant l'image courante. 3. Procédé selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que les valeurs de coefficients non nulles et les longueurs de plages de coefficients ayant des valeurs nulles sont codées selon deux arbres de codage distincts, distinguables par un bit de préfixe. 4. Procédé selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que, pour un rang donné, les valeurs non nulles de coefficients et les longueurs de plages de coefficients ayant des valeurs nulles, sont codées selon un même arbre de codage, après avoir été transcodées par une première table dite d'assignation, qui fait correspondre à chaque valeur ou longueur, un nombre entier positif appelé numéro d'évènement, croissant dans l'ordre des probabilités décroisssantes des valeurs et des longueurs. 5. Procédé selon la revendication 4, caractérisé en ce que la table d'assignation, est fonction du fait que la valeur ou la longueur à coder est immédiatement précédée, ou non, d'au moins une valeur nulle. 6. procédé selon la revendication 1, caractérisé en ce que pour coder une valeur non nulle qui est précédée d'une plage de valeurs nulles, il consiste à coder cette valeur par un mot de code qui n'est pas fonction du rang exact de cette valeur, mais est fonction d'un rang qui est pris égal au rang de la première valeur nulle de la plage, augmenté d'une unité, quelle que soit la longueur de la plage. 7. Procédé selon la revendication 1, caractérisé en ce qu'il consiste à coder individuellement par un mot de code chaque valeur nulle dont le rang est inférieur à une valeur prédéterminée, ce mot de code étant fonction du rang ; et à coder par plages les valeurs nulles ayant un rang supérieur ou égal à cette valeur prédéterminée ; les valeurs de coefficients, et les longueurs de plages, ayant un rang supérieur ou égal à cette valeur prédéterminée étant codées par des mots de code qui ne sont pas fonctions du rang. 8. Dispositif de codage d'une suite images, par une transformation et par une pluralité de codes à longueur variable, pour la mise en oeuvre du procédé selon la revendication 1, comportant - des premiers moyens de codage (1 à 5) pour : diviser chaque image en blocs d'éléments d'image ; représenter chaque bloc par au moins un bloc de valeurs ; appliquer une transformation bidimensionnelle à chaque bloc de valeurs - des deuxièmes moyens de codage (6 à 16) pour coder chaque valeur non nulle de coefficient, et la longueur de chaque plage de valeurs nulles de coefficients, par un mot de code à longueur variable caractérisé en ce que les deuxièmes moyens de codage (6 à 16) comportent des moyens de calcul (8 à 11, 15) pour déterminer un mot de code en fonction du rang respectivement: du coefficient å coder ; ou du premier coefficient, qui constitue le début d'une plage de valeurs nulles, dont la longueur est à coder. 9. Dispositif de codage selon la revendication 8 pour la mise en oeuvre du procédé selon la revendication 2, caractérisé en ce que les deuxièmes moyens de codage (6 à 16) comportent des moyens de calcul (7) pour déterminer un écart-type correspondant à chaque rang et à chaque type de valeur à coder, et des moyens de calcul (9, 11) pour déterminer un mot de code fonction de cet écart-type. 10. Dispositif de codage selon la revendication 8, pour la mise en oeuvre du procédé selon la revendication 4, caractérisé en ce que les deuxièmes moyens de codage (6 à 16) comportent une mémoire (8), dite d'assignation, pour faire correspondre un numéro d'évènement, à chaque valeur de coefficient, ou de longueur de plage, qui est à coder. 11. Dispositif de codage selon la revendication 8, pour la mise en oeuvre du procédé selon la revendication 5, caractérisé en ce que les deuxièmes moyens de codage (6 à 16) comportent des moyens (6) pour détecter la fin de chaque plage de valeurs nulles, et des moyens de calcul (8,9,11) pour déterminer un mot de code fonction d'un signal fourni par ces moyens (6) pour détecter la fin de chaque plage. 12. Dispositif de codage selon la revendication 8, pour la mise en oeuvre du procédé selon la revendication 6, ca#actérisé en ce que les deuxièmes moyens de calcul (6 à 16) comportent des moyens (15) pour déterminer le rang de chaque valeur à coder, en remplaçant le rang réel de chaque valeur non nulle qui est précédée d'une plage de valeurs nulles, par un rang calculé en additionnant une unité au rang de la première valeur nulle constituant cette plage. 13. Dispositif de décodage pour décoder une suite d'images codées par le procédé selon la revendication 1, comportant - des moyens (41 à 43) pour décoder des mots de code à longueur variable représentant des valeurs de coefficients de transformation d'un bloc valeurs représentant un bloc d'éléments d'image, et des longueurs de plages de valeurs nulles de coefficients - des moyens (44,45) pour reconstituer des blocs de coefficients de transformation - des moyens (46,47) pour appliquer la transformation cosinus inverse aux blocs reconstitués, et restituer des blocs de valeurs représentant des blocs d'éléments d'image de la suite d'images à décoder caractérisé en ce que les moyens (41 à 43) pour décoder des mots de code à longueur variable, comportent des moyens de calcul (43) pour segmenter une suite continue de données codées, en mots de code à longueur variable, et pour faire correspondre, à chaque mot de code, une valeur de coefficient de transformation, ou de longueur de plage de valeurs nulles, déterminée en fonction respectivement : du rang de ce coefficient, ou du rang du coefficient situé au début de la plage de valeurs nulles. 14. Dispositif de décodage selon la revendication 13, pour décoder une suite d'images codées par le procédé selon la revendication 2, caractérisé en ce que les moyens (43) pour décoder des mots de code à longueur variable comportent des moyens (72) pour stocker des valeurs d'écart-type, et comportent des moyens de calcul (60 à 75) pour séparer des mots de code à longueur variable constituant la suite de données codées, et pour faire correspondre, à chaque mot de code, une valeur déterminée en fonction d'une valeur d'écart-type. 15. Dispositif de décodage selon la revendication 13, pour décoder une suite d'images codées par le procédé selon la revendication 4, caractérisé en ce que les moyens de calcul (43) pour décoder des mots de code à longueur variable, comportent des moyens (60 à 68,71,72) pour faire correspondre à chaque mot de code un numéro d'événement ; et comportent une mémoire (75), appelée mémoire de tables d'assignation, pour faire correspondre à chaque numéro d'événement, une valeur de coefficient, ou de longueur de plage. 16. Dispositif de décodage selon la revendication 15, pour décoder une suite d'images codées par le procédé selon la revendication 5, caractérisé en ce que la mémoire de tables d'assignation (75) contient une pluralité de tables d'assignation qui sont adressées notamment par un bit (fp) indiquant qu'une valeur de coefficient est précédée, ou non, par une plage de valeurs nulles. 17. Dispositif de décodage selon la revendication 13, pour décoder une suite d'images codées par le procédé selon la revendication 6, caractérisé en ce que les moyens (41 à 43) pour décoder un mot de code à longueur variable, comportent des moyens (70,75) pour déterminer un rang, ce rang étant augmenté seulement d'une unité lors du décodage du premier coefficient qui suit une plage de valeurs nulles, et ce rang étant augmenté de la longueur de la plage, lors du décodage du deuxième coefficient qui suit cette plage.