Brevet FR2773929A1 — publié le 19990723

La présente invention concerne un dispositif et un procédé de codage de signal numérique, ainsi que le dispositif et le procédé de décodage correspondant. La nature du signal à coder est quelconque. Le signal est de manière générale un ensemble de données représentatives de grandeurs physiques. On s'intéressera dans la suite à une image numérique, à titre d'exemple. Une image numérique classique est une matrice de par exemple 512 sur 512 pixels codés sur huit bits. La transmission d'une telle image sur un canal à bas débit nécessite plusieurs dizaines de minutes. Des techniques de compression d'image ont été développées pour réduire le temps de transmission. La quantification vectorielle est fréquemment utilisée pour le codage d'image. Une telle quantification utilise un dictionnaire de vecteurs de code, qui peut être un réseau, par exemple de type D,, dont chaque élément est représenté par exemple par ses coordonnées cartésiennes, ou par une représentation polaire. Pour respecter les statistiques des données, il est préférable de représenter un vecteur de code du réseau par ses coordonnées polaires, à savoir sa norme et un indice représentant sa position sur une isonorme. La norme d'un vecteur est calculée de manière classique, à l'aide d'une norme prédéterminée. Pour déterminer l'indice d'un vecteur de code, il est connu d'utiliser une table de correspondance entre tous les vecteurs de code, représentés en coordonnées cartésiennes, et leurs indices respectifs. Cette table de correspondance est très volumineuse, elle nécessite par conséquent une grande place mémoire. En outre, la taille de la table de correspondance est en général liée au débit maximal des données codées. La présente invention vise à remédier à ces inconvénients en fournissant un procédé rapide de détermination de l'indice d'un vecteur de code dans un réseau de type D,. A cette fin, I'invention propose un procédé de détermination d'un indice d'un vecteur de code appartenant à un réseau prédéterminé, caractérisé en ce qu'il comporte les étapes de: - détermination d'un vecteur leader pour le vecteur de code, - recherche d'un numéro de permutations entre le vecteur de code et le vecteur leader, - détermination de l'indice pour le vecteur de code en fonction du numéro de permutations. Corrélativement, I'invention propose un dispositif de détermination d'un indice d'un vecteur de code appartenant à un réseau prédéterminé, caractérisé en ce qu'il comporte: - des moyens de détermination d'un vecteur leader pour le vecteur de code, - des moyens de recherche d'un numéro de permutations entre le vecteur de code et le vecteur leader, - des moyens de détermination de l'indice pour le vecteur de code en fonction du numéro de permutations. Le codage selon l'invention est rapide à mettre en oeuvre. II ne nécessite qu'un nombre limité de calculs, car la recherche de l'indice d'un vecteur de code est une recherche sur un nombre limité de vecteurs. L'invention présente l'avantage de ne pas nécessiter l'emploi de table de correspondance entre des vecteurs de code et leurs indices respectifs, ce qui économise de la place mémoire et n'impose aucune contrainte sur le débit des données codées. L'invention concerne également un procédé de codage d'un vecteur de code compris dans un groupe connu de vecteurs appartenant à un réseau prédéterminé, lesdits vecteurs ayant la même norme, au sens d'une norme prédéterminée, caractérisé en ce qu'il comporte les étapes de: - détermination d'un vecteur leader pour le vecteur de code, - recherche d'un numéro de permutations entre le vecteur de code et le vecteur leader, - détermination d'un indice pour le vecteur de code en fonction du numéro de permutations. L'invention s'applique au codage d'un ensemble de données représentatives de grandeurs physiques, caractérisé en ce qu'il comporte les étapes de: - division en vecteurs de l'ensemble de données, puis, pour chacun des vecteurs issus de la division, - quantification vectorielle du vecteur de manière à déterminer un vecteur de code appartenant à un réseau prédéterminé, - détermination d'un vecteur leader pour le vecteur de code, - recherche d'un numéro de permutations entre le vecteur de code et le vecteur leader, - détermination d'un indice pour le vecteur de code en fonction du numéro de permutations. L'invention présente alors des avantages analogues à ceux précédemment décrits. Selon une caractéristique préférée, le procédé de codage comporte les étapes de: - détermination d'une zone du réseau en fonction de la norme du vecteur de code, - recherche d'un ensemble de vecteurs leaders dans la zone, - recherche d'un sous-ensemble de vecteurs leaders ayant la même norme que le vecteur de code, - calcul de la somme d'un nombre de permutations respectif des vecteurs leaders du sous-ensemble qui sont différents du vecteur leader relatif au vecteur de code, et du numéro de permutations entre le vecteur de code et son vecteur leader. Ainsi, la recherche du vecteur leader, et du numéro de permutation entre le vecteur à coder et le vecteur leader, est effectuée sur un nombre réduit de vecteurs. Selon une caractéristique préférée, le numéro de permutations est déterminé par application de la méthode de Schalkwijk au vecteur de code et au vecteur leader. Cette méthode est rapide à mettre en oeuvre. Le dispositif de codage comporte des moyens de mise en oeuvre des caractéristiques précédentes qui présentent des avantages analogues à ceux exposés plus haut. L'invention concerne également un procédé de décodage d'un vecteur de code appartenant à un réseau prédéterminé, dont la forme codée comporte une norme et un indice, caractérisé en ce qu'il comporte les étapes de: - détermination d'un vecteur leader pour le vecteur de code, - détermination d'un numéro de permutations entre le vecteur de code et le vecteur leader, en fonction de l'indice, - détermination du vecteur de code en fonction du numéro de permutations. Corrélativement, I'invention propose un dispositif de décodage d'un vecteur de code appartenant à un réseau prédéterminé, dont la forme codée comporte une norme et un indice, caractérisé en ce qu'il comporte: - des moyens de détermination d'un vecteur leader pour le vecteur de code, - des moyens de détermination d'un numéro de permutations entre le vecteur de code et le vecteur leader, en fonction de l'indice, - des moyens de détermination du vecteur de code en fonction du numéro de permutations. Selon une caractéristique préférée, le procédé de décodage comporte l'étape de détermination d'une zone du réseau en fonction de la norme du vecteur de code, et le vecteur leader est recherché dans cette zone. Selon une autre caractéristique préférée, le vecteur de code est déterminé par application de la méthode de Schalkwijk inverse au numéro de permutations et au vecteur leader. Le décodage est rapide à mettre en oeuvre, puisque là aussi les recherches sont effectuées sur un nombre limité de vecteurs. Le procédé et le dispositif de décodage permettent de retrouver les vecteurs de code, par exemple dans un appareil récepteur correspondant à un appareil émetteur dans lequel le signal a été codé selon l'invention. Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de plusieurs modes de réalisations illustrés par les dessins annexés, dans lesquels: - la figure 1 est un bloc diagramme d'un mode de réalisation d'un dispositif de codage de signal numérique selon l'invention, - la figure 2a représente schématiquement une image numérique à transmettre par le dispositif de la figure 1, - la figure 2b représente schématiquement une image divisée en vecteurs dans le dispositif de la figure 1, - la figure 3 représente un réseau de vecteurs de code en dimension 2, - la figure 4 représente un réseau de vecteurs de code en dimension 2, - la figure 5 représente est un bloc diagramme d'un mode de réalisation d'un dispositif de décodage de signal numérique selon l'invention, - la figure 6 représente un mode de réalisation d'un algorithme de codage de signal numérique selon l'invention, - la figure 7 représente un mode de réalisation d'un algorithme de codage d'un vecteur de code, selon l'invention, inclus dans l'algorithme de la figure 6, - la figure 8 représente un mode de réalisation d'un algorithme de codage d'indice inclus dans l'algorithme de la figure 6, - la figure 9a représente un exemple de codage de vecteurs de code obtenu avec l'invention, - la figure 9b représente un exemple de codage de vecteurs de code selon la technique antérieure, - la figure 10 représente un mode de réalisation d'un algorithme de décodage de signal numérique selon l'invention, - la figure Il représente un mode de réalisation d'un algorithme de décodage d'indice inclus dans l'algorithme de la figure 10, - la figure 12 représente un mode de réalisation d'un algorithme de décodage d'un vecteur de code, selon l'invention, inclus dans l'algorithme de la figure 10, - la figure 13 est un bloc diagramme d'un second mode de réalisation d'un dispositif de codage de signal numérique selon l'invention, - la figure 14 est un circuit de décomposition en sous-bandes de fréquence, inclus dans le dispositif de la figure 13, - la figure 15 est une image numérique à coder par le dispositif de codage selon la figure 13, - la figure 16 est une image décomposée en sous-bandes par le circuit de la figure 14, - la figure 17 est une image décomposée en sous-bandes puis divisée en blocs, - la figure 18 est un bloc diagramme d'un second mode de réalisation d'un dispositif de décodage selon l'invention, - la figure 19 est un algorithme de codage d'un signal numérique selon un second mode de réalisation de l'invention, - la figure 20 est un algorithme de décodage d'un signal numérique selon le second mode de réalisation de l'invention. Selon le mode de réalisation choisi et représenté à la figure 1, un dispositif de codage selon l'invention est destiné à coder un signal numérique dans le but de le compresser. Le dispositif de codage est intégré dans un appareil 100, qui est par exemple un appareil photographique numérique, ou un camescope numérique, ou un système de gestion de base de données, ou encore un ordinateur. Le signal numérique à compresser SI est dans ce mode particulier de réalisation une suite d'échantillons numériques représentant une image. Le dispositif comporte une source de signal 1, ici de signal d'image. De manière générale, la source de signal soit contient le signal numérique, et est par exemple une mémoire, un disque dur ou un CD-ROM, soit convertit un signal analogique en signal numérique, et est par exemple un camescope analogique associé à un convertisseur analogique-numérique. Le signal d'image SI est une suite de mots numériques, par exemple des octets. Chaque valeur d'octet représente un pixel d'une image IM à 256 niveaux de gris, ou image noir et blanc. La source d'image 1 peut également générer une sous-bande d'une image résultant d'une décomposition en sous-bande de fréquence de l'image. La sous-bande comporte des coefficients qui seront traités dans la suite comme les pixels d'une image. Une sortie 11 de la source de signal est reliée à un circuit de division en vecteurs 2. Ce circuit reçoit depuis la source 1 L'image IM représentée à la figure 2a qui est une matrice à L lignes et C colonnes comportant L.C pixels P1 1 à Ploc, L et C étant des entiers par exemple égaux à 512. Le circuit de division 2 divise l'image IM par bloc, ou vecteur, en une image divisée IMD montrée à la figure 2b. L'image IMD comporte N vecteurs V1 à VN, OÙ N est un entier. Les vecteurs formés sont adjacents et un vecteur quelconque Vn, avec n compris entre 1 et N, est un bloc rectangulaire de pixels adjacents de l'image IM. Le vecteur Vn a une taille prédéterminée, par exemple 4x4 pixels. La formation des vecteurs, connue en soi, peut être réalisée de différentes manières. Par exemple, les vecteurs se chevauchent, ou sont des groupes de pixels non adjacents dans l'image d'origine. En référence de nouveau à la figure 1, le circuit de division en vecteurs a une sortie 21 reliée à un circuit de quantification vectorielle sur réseau 3. La quantification vectorielle sur réseau, dite LVQ, d'après l'Anglais "Lattice Vector Quantization", consiste globalement à coder un vecteur Vn en recherchant le vecteur de code VCk qui est son plus proche voisin, au sens d'une norme prédéterminée, parmi les vecteurs d'un réseau. La quantification vectorielle sur réseau est par exemple décrite dans l'article "A fast encoding method for lattice codes and quantizers" de J.H. Conway et N.J.A. Sloane, paru dans IEEE Transactions on Information Theory, n" 29, 1983, pages 820 à 824. Le réseau est de préférence choisi pour être le plus compact possible, de manière à rendre la quantification optimale. Le réseau est ainsi par exemple un réseau dit D,, où n est la dimension de l'espace contenant les vecteurs de code. Les figures 3 et 4 représentent un réseau à deux dimensions, ici le réseau A2, ou réseau hexagonal. Ce réseau est utilisé pour quantifier des vecteurs à deux composantes. Une fois que le vecteur à coder est quantifié par le circuit 3, ce circuit fournit le vecteur de code à un circuit de codage 4 qui réalise un codage par multicode, selon lequel un vecteur est représenté par plusieurs paramètres, ou codes, qui sont ici sa norme et un indice. Pour cela, I'on considère tout d'abord une norme. Par exemple, à la figure 3, la norme L1, correspondant à la somme des valeurs absolues des composantes du vecteur, est envisagée. Les vecteurs qui ont la même norme L1 sont disposés sur une isonorme, ici un même losange en dimension 2, une hyperpyramide dans le cas général. A la figure 4, la norme L2, correspondant à la somme des carrés des composantes du vecteur, est envisagée. Les vecteurs qui ont la même norme sont disposés sur une isonorme, ici un cercle en dimension 2, une hypersphère dans le cas général. Un vecteur de code VCk est par conséquent représenté par une représentation polaire, ici sa norme Nk et un indice 1k représentant sa position parmi tous les vecteurs de code ayant la même norme. L'indice du vecteur de code est un entier qui représente sa position sur l'hyperpyramide ou l'hypersphère, dans le cas des normes L1 et L2 L'indice 1k est compris entre zéro et le nombre M de vecteurs de code situés sur l'isonorme diminué de une unité. En variante, d'autres types de représentations polaires utilisant trois ou plus paramètres sont utilisables dans le cadre de l'invention. Par exemple, le réseau est divisé en secteurs, auxquels sont affectés des codes de représentations respectifs. Les vecteurs de code sont alors représentés par leur secteur, leur norme et leur indice. La présente invention vise plus particulièrement à déterminer l'indice 1k du vecteur de code VCk. L'indice 1k est calculé à partir des composantes du vecteur de code, comme exposé dans la suite en référence à la figure 7. Le circuit 4 fournit l'ensemble des normes Nk des vecteurs de code VCk utilisés pour quantifier l'image IM à un circuit 5 de codage entropique, par exemple un circuit de codage de Huffman. D'autres types de codage peuvent être utilisés pour coder les normes des vecteurs de code. Le circuit 4 fournit l'ensemble des indices 1k des vecteurs de code VCk utilisés pour quantifier l'image IM à un circuit 6 de codage. Ce circuit code de manière générale un événement parmi un ensemble connu d'événements, chaque événement étant représenté par un indice entier. Le codage réalisé par le circuit 6 est décrit dans la suite en référence à la figure 8. Les circuits 5 et 6 ont des sorties respectives 51 et 61 reliées à un circuit de transmission 7. Le circuit de transmission 7 transmet de manière classique l'image codée vers un dispositif de réception exposé dans la suite. Le circuit 7 comporte notamment des circuits de modulation du signal à transmettre. En variante, le circuit de transmission est remplacé par un circuit de mémorisation de l'image codée. En référence à la figure 5, le dispositif de décodage réalise globalement des opérations inverses de celles du dispositif de codage. Le dispositif de décodage est intégré dans un appareil 200, qui est par exemple un lecteur d'image numérique, ou de séquence vidéo numérique, ou un système de gestion de base de données, ou encore un ordinateur. Un même appareil peut comporter à la fois le dispositif de codage et le dispositif de décodage selon l'invention, de manière à effectuer des opérations de codage et de décodage. Le dispositif de décodage comporte une source de données codées 10 qui comporte par exemple un circuit de réception associé à une mémoire tampon. Une première sortie 101 du circuit 10 est reliée à un circuit 11 de décodage de la norme Nk de chacun des vecteurs de code d'une image codée. Le circuit 11 effectue un décodage correspondant au codage du circuit 5. Une première sortie îîi du circuit il est reliée à un circuit 12 de décodage de l'indice lk de chacun des vecteurs de code de l'image codée considérée. Une seconde sortie 102 du circuit 10 est reliée au circuit 12. Le décodage réalisé par le circuit 12 correspond au codage réalisé par le circuit 6 et sera décrit dans la suite en référence à la figure 11. Le circuit Il a une seconde sortie 112 reliée à un circuit 13 de décodage des multicodes. Le circuit 12 a une sortie 121 reliée au circuit 13. Le circuit Il fournit au circuit 13 la norme Nk de chacun des vecteurs de code VCk de l'image codée, et le circuit 12 fournit l'indice lk de chacun des vecteurs de code. A partir de la norme et de l'indice de chacun des vecteurs de code VCk de l'image codée, le circuit 13 détermine les vecteurs de code VCk dans le réseau. Le fonctionnement du circuit 13 correspond au codage effectué par le circuit 4, et est décrit dans la suite en référence à la figure 12. Une sortie 131 du circuit 13 est reliée à un circuit de formation d'image 14. Le circuit 13 fournit les vecteurs de code VCk décodés au circuit 14. Ce dernier construit l'image décodée et possède une sortie 141 reliée à un circuit 15 d'exploitation des données décodées, comportant par exemple des moyens de visualisation d'image. Selon un mode préféré de réalisation de l'invention, les circuits de division en vecteurs 2, de quantification vectorielle 3, de codage 4, 5 et 6, et de transmission 7, tous inclus dans le dispositif de codage représenté à la figure 1, sont réalisés par un microprocesseur associé à des mémoires vives et mortes. La mémoire morte comporte un programme pour coder l'image IM, et la mémoire vive comporte des registres adaptés à enregistrer des variables modifiées au cours de l'exécution du programme. De même, les circuits de décodage Il, 12 et 13, de formation d'image 14 et d'exploitation 15, inclus dans le dispositif de décodage représenté à la figure 5, sont réalisés par un second microprocesseur associé à des mémoires vives et mortes. La mémoire morte comporte un programme pour décoder les images, et la mémoire vive comporte des registres adaptés à enregistrer des variables modifiées au cours de l'exécution du programme. En référence à la figure 6, un procédé de codage selon l'invention d'une image IM, mis en oeuvre dans le dispositif de codage, comporte des étapes El à E9. L'étape El est la division de l'image à coder en vecteurs Vn, comme représenté à la figure 2b. L'étape suivante E2 est une initialisation pour considérer le premier vecteur à coder. Les vecteurs sont traités dans un ordre a priori quelconque, mais prédéterminé. L'étape E2 est suivie de l'étape E3 qui est la quantification vectorielle sur réseau du vecteur à coder courant Vn. Le résultat de cette étape est un vecteur de code VCk sélectionné dans le réseau considéré. L'étape suivante E4 est le codage par multicode du vecteur de code VCk sélectionné à l'étape précédente. Cette étape a pour résultat la norme Nk et l'indice lk du vecteur de code VCk. La norme Nk est calculée de manière classique. L'indice lk est un entier qui représente la position du vecteur de code sur une isonorme. L'indice lk est compris entre zéro et le nombre de vecteurs de code situés sur la même isonorme diminué de une unité. L'étape E4, avec le calcul de l'indice 1k pour un vecteur de code à quatre composantes est exposée en détail en référence à la figure 7. L'étape E4 est suivie de l'étape E5 qui est un test pour vérifier si le vecteur courant Vn est le dernier de l'image en cours de codage. Lorsque la réponse est négative, L'étape E5 est suivie de l'étape E6 pour considérer le vecteur à coder suivant. L'étape E6 est suivie de l'étape E3 précédemment décrite. Lorsque tous les vecteurs à coder Vn ont été traités, L'étape E5 est suivie de l'étape E7 de codage de la norme de chacun des vecteurs de code VCk utilisés pour coder l'image en cours de traitement. Comme précédemment exposé, le codage de la norme des vecteurs de code est un codage entropique, par exemple un codage de Huffman. L'étape suivante E8 est le codage des indices lk de chacun des vecteurs de code. L'étape E8 est décrite en détail à la figure 8. L'étape suivante E9 est la transmission des formes codées des vecteurs de code. II est à noter que l'ordre des étapes précédemment décrites peut être modifié. Ainsi, les étapes E7, E8 et E9 peuvent être réalisées entre les étapes E4 et E5. Pour le codage de la norme Nk, on utilisera alors un codage entropique prédéterminé. La figure 7 représente l'étape E4, comportant le calcul de la norme Nk et le calcul de l'indice 1k d'un vecteur de code, dans le cas d'un vecteur de code à quatre composantes. Ces calculs sont représentés sous la forme d'un algorithme comportant des étapes E40 à E55. On considère le vecteur de code VCk, ayant quatre composantes notées (x1, x2, X3,X4). L'étape E40 est une initialisation au cours de laquelle un paramètre de travail IND est initialisé à la valeur nulle, et une matrice A est considérée. La matrice A est une matrice carrée dont la taille, ici 4x4, dépend du nombre de composantes du vecteur de code considéré, et dont tous les coefficients valent 1/2, sauf ceux d'une diagonale qui valent -1/2. La matrice A a pour fonction de réduire l'espace de recherche de l'indice 1k L'étape suivante E41 est la détermination du vecteur leader VLk du vecteur de code considéré VCk. Le vecteur leader VLk est le vecteur dont les composantes sont celles du vecteur de code considéré, réordonnées par ordre décroissant. Par exemple, les composantes du vecteur leader sont (X3,X2,X4, x1). Le vecteur leader est situé sur l'isonorme à laquelle appartient le vecteur de code considéré. L'étape suivante E42 est le calcul de la norme du vecteur de code VCk. La norme choisie est par exemple la norme L1. En variante, une autre norme peut être utilisée, par exemple la norme L2 A partir de l'étape suivante E43, est considéré un vecteur de recherche V, dont les composantes sont (v1, v2, v3, v4). Les étapes E43 à E46 et E52 à E55 forment des boucles imbriquées au cours desquelles la composante v1 varie entre la valeur -Nk/2 et Nk/2, la composante v2 varie entre -Nk/2 et v1, la composante v3 varie entre -Nk/2 et v2 et la composante v4 varie entre -Nk/2 et v3, de manière à respecter un ordre décroissant des composantes du vecteur de recherche V. Ainsi, le vecteur V est de la forme d'un vecteur leader. A chaque étape, le pas des variations est de une unité. L'étape E47 est la formation du vecteur de recherche courant V, avec les composantes déterminées par les étapes précédentes E43 à E46. Un vecteur intermédiaire Y est formé, par multiplication de la matrice A avec le vecteur de recherche courant V. Le vecteur intermédiaire Y est également un vecteur leader. La norme Ny du vecteur intermédiaire Y est déterminée. L'étape suivante E48 est un test pour déterminer si la norme Ny du vecteur intermédiaire Y est égale à celle du vecteur de code VCk. Si la réponse est négative, cela signifie que le vecteur intermédiaire Y n'est pas situé sur l'isonorme à laquelle appartient le vecteur de code VCk. Ce vecteur Y n'est plus considéré, et l'étape E48 est suivie de l'étape E52 pour poursuivre le bouclage sur la composante v4. Si la réponse à l'étape E48 est positive, cela signifie que le vecteur Y considéré est situé sur I'isonorme à laquelle appartient le vecteur de code VCk. L'étape E48 est suivie de l'étape E49 à laquelle il est testé si le vecteur intermédiaire Y est égal au vecteur leader VLk. Si la réponse est négative, l'étape E49 est suivie de l'étape E50, à laquelle est déterminé le nombre PER de permutations possibles des composantes du vecteur intermédiaire Y, conduisant à la formation de vecteurs différents. Ce nombre dépend d'une part du nombre de composantes à permuter, et d'autre part au nombre de ces composantes qui sont égales entre elles. Ainsi, pour quatre composantes, le nombre PER peut prendre cinq valeurs différentes, entre 1 et 24, en fonction du nombre de composantes égales. La valeur du paramètre IND est augmentée du nombre PER. L'étape E50 est suivie de l'étape E52 pour poursuivre le bouclage. Lorsque la réponse est positive à l'étape E49, cela signifie que les étapes E43 à E49 ont abouti à retrouver le vecteur leader VLk du vecteur de code VCk. Cette étape est suivie de l'étape E51 à laquelle est déterminé un numéro de permutation NP entre le vecteur de code VCk et le vecteur leader VLk, égal au vecteur Y. Le numéro de permutation NP est déterminé par une méthode connue en soi, par exemple par application de la méthode de Schalkwijk, qui est décrite dans l'article "Algorithm for source coding" paru dans IEEE Transactions on Information Theory, mai 1972, n"3, pages 395 à 399. L'indice 1k est égal au paramètre IND augmenté de la valeur NP. Le procédé de détermination de l'indice du vecteur de code s'applique quel que soit le nombre de composantes du vecteur de code considéré, à condition que ce vecteur de code soit issu d'un réseau D, avec n quelconque supérieur ou égal à deux. La figure 8 représente l'étape E8 qui est détaillée sous la forme d'un algorithme comportant des étapes E81 à E88. L'étape E81 est une initialisation au cours de laquelle est considéré un premier vecteur de code VCk parmi les vecteurs de code utilisés pour coder l'image IM. Les vecteurs sont considérés dans un ordre quelconque, prédéterminé. L'étape suivante E82 est la détermination du nombre M de vecteurs de code ayant la même norme que le vecteur considéré. L'étape E82 est suivie de l'étape E83 à laquelle sont calculées les nombres L = log2(M) et B=(M-2L). L'étape suivante E84 est un test pour déterminer si l'indice à coder 1k est inférieur à la quantité 2.B. Si la réponse est positive, l'étape E84 est suivie de l'étape E85 à laquelle l'indice lk est codé sur (L+1) bits. Si la réponse est négative à l'étape E84, alors cette dernière est suivie de l'étape E86 à laquelle la quantité (I k-B) est codée sur seulement L bits. Les événements sont ici supposés équiprobables. Il est à noter que l'invention s'applique également à un ensemble d'événements non équiprobables. Dans ce cas, il est possible d'affecter les codes les plus courts aux événements les plus probables. Les étapes E85 et E86 sont suivies de l'étape E87 qui est un test pour vérifier si le vecteur courant VCk est le dernier vecteur de code de l'image en cours de traitement. Si la réponse est négative, l'étape E87 est suivie de l'étape E88 pour considérer le vecteur de code suivant. L'étape E88 est suivie de l'étape E82 précédemment décrite. Si la réponse à l'étape E87 est positive, cela signifie que le codage de l'image considérée est terminé. L'étape E87 est alors suivie de l'étape E9 précédemment décrite. La figure 9a représente un tableau résumant les résultats obtenus pour 18 événements à coder, chaque événement étant représenté par un indice entre 0 et 17. Les calculs ont pour résultat: M = 18, L = 5, B = 2 (étapes E82 et E83) Un premier jeu d'indices comporte les indices de 0 à 3 qui seront codés sur 5 bits, et un second jeu d'indices comporte les indices pour lesquels la quantité (Ik-B) sera codée sur 4 bits. Le coût de codage est en moyenne de 4,22 bits par événement, soit, pour 10000 événements à coder, un coût total d'environ 42 222 bits. II est à noter que, par construction, une forme codée d'un indice n'est le préfixe d'aucune autre forme codée d'un autre indice, ce qui permet un décodage unique de chaque forme codée. A titre de comparaison, la figure 9b représente le codage de 18 événements représentés par des indices entre 0 et 17, en utilisant les puissances de deux. Cinq bits par événements sont nécessaires, soit pour 10000 événements, un total de 50000 bits. En référence à la figure 10, un procédé de décodage selon l'invention d'une image IM, mis en oeuvre dans le dispositif de décodage, est représenté sous la forme d'un algorithme comportant des étapes E10 à E13. L'étape ElO est le décodage de la norme Nk de chacun des vecteurs de code VCk utilisés pour coder l'image considérée. Le décodage dépend du codage réalisé, par exemple un codage entropique. L'étape suivante El 1 est le décodage de l'indice lk de chacun des vecteurs de code VCk. Pour un vecteur de code considéré, la norme Nk indique sur quelle isonorme se trouve le vecteur, et son indice 1k permet de retrouver sa position exacte sur l'isonorme. L'étape El 1 est détaillée en référence à la figure 11. L'étape suivante E12 est la détermination des composantes de chacun des vecteurs de code en fonction de sa norme et de son indice. Les composantes d'un vecteur sont égales par construction aux valeurs des pixels du vecteur. Les vecteurs sont mémorisés. Cette étape est globalement l'inverse de l'étape E4, et est détaillée en référence à la figure 12. L'étape suivante E13 est l'exploitation des données décodées, ici la formation de l'image décodée. La figure 11 représente l'étape El 1 sous la forme d'un algorithme comportant des étapes El Il à Eu 20. L'étape El Il est une initialisation pour considérer le premier vecteur de code de l'image à décoder. Les vecteurs sont traités dans un ordre quelconque, prédéterminé. L'étape suivante E112 est la détermination du nombre M de vecteurs de code ayant la même norme que le vecteur de code considéré. La norme considérée est la même qu'au codage. L'étape suivante Eu 13 est le calcul des quantités L = log2(M) et B = (M2L). L'étape E113 est suivie de l'étape E114 qui est la lecture de L bits du train de bits contenant les indices. La valeur de ces L bits est affectée à une variable de travail T. L'étape suivante E115 est une comparaison de la valeur de T avec la valeur de la quantité B. Si la quantité T est supérieure ou égale à la quantité B, alors l'étape Eu 15 est suivie de l'étape E116 qui est l'affectation de la valeur (T+B) à l'indice lk du vecteur de code considéré. Si à l'étape E115 la quantité T est inférieure à la quantité B, alors l'étape ElîS est suivie de l'étape E117 à laquelle un bit supplémentaire est lu dans le train de bits. La valeur de ce bit est affectée à une variable de travail c. L'étape suivante Eu 18 est l'affectation de la valeur (2.T+c) à l'indice du du vecteur de code considéré. Les étapes Eu 16 et El 18 sont suivies de l'étape Eu 19 qui est un test pour vérifier si le vecteur de code en cours de traitement est le dernier vecteur de code de l'image à décoder. Si la réponse est négative, alors l'étape Eu 19 est suivie de l'étape E120 pour considérer le vecteur de code suivant. L'étape E120 est suivie de l'étape Eu 12 précédemment décrite. Lorsque tous les vecteurs de l'image ont été traités, alors l'étape E119 est suivie de l'étape E12. La figure 12 représente l'étape E12 sous la forme d'un algorithme comportant des étape E120 à E134. On n'envisage ici qu'un seul vecteur à décoder, dont la norme Nk et l'indice Ik sont connus d'après les étapes E10 et Tell. L'étape E120 est une initialisation au cours de laquelle le paramètre de travail IND est initialisé à la valeur nulle, et la matrice A est considérée. La matrice A est identique à la matrice considérée au codage (figure 7), à savoir une matrice carrée dont la taille, ici 4x4, dépend du nombre de composantes du vecteur de code considéré, et dont tous les coefficients valent 1/2, sauf ceux d'une diagonale qui valent -1/2. A partir de l'étape suivante Ex22, est considéré un vecteur de recherche V, dont les composantes sont (V1,V2,V3,V4). Les étapes E122 à E125 et E131 à E134 forment des boucles imbriquées au cours desquelles la composante v1 varie entre la valeur -Nk/2 et Nk/2, la composante v2 varie entre Nk/2 et v1, la composante v3 varie entre Nk/2 et v2 et la composante v4 varie entre -Nk/2 et V3, de manière à respecter un ordre décroissant des composantes du vecteur de recherche V. Ainsi, le vecteur V est de la forme d'un vecteur leader. A chaque étape, le pas des variations est de une unité. L'étape E126 est la formation du vecteur de recherche courant V, avec les composantes déterminées par les étapes précédentes E122 à Eu 25. Un vecteur intermédiaire Y est formé, par multiplication de la matrice A avec le vecteur de recherche courant V. Le vecteur intermédiaire Y est également un vecteur leader. La norme Ny du vecteur intermédiaire Y est déterminée. L'étape suivante E127 est un test pour déterminer si la norme Ny du vecteur intermédiaire Y est égale à celle du vecteur de code VCk. Si la réponse est négative, cela signifie que le vecteur intermédiaire Y n'est pas situé sur l'isonorme à laquelle appartient le vecteur de code VCk. Ce vecteur Y n'est plus considéré, et l'étape E127 est suivie de l'étape E131 pour poursuivre le bouclage sur la composante v4. Si la réponse à l'étape E127 est positive, cela signifie que le vecteur Y considéré est situé sur l'isonorme à laquelle appartient le vecteur de code VCk. L'étape E127 est suivie de l'étape Ex28, à laquelle est déterminé le nombre PER de permutations possibles des composantes du vecteur intermédiaire Y, conduisant à la formation de vecteurs différents. Ce nombre dépend d'une part du nombre de composantes à permuter, et d'autre part au nombre de ces composantes qui sont égales entre elles. Ainsi, pour quatre composantes, le nombre PER peut prendre cinq valeurs différentes, entre 1 et 24, en fonction du nombre de composantes égales. La valeur du paramètre IND est augmentée du nombre PER. L'étape suivante E129 est un test pour vérifier si l'indice 1k est strictement supérieur à la valeur courante du paramètre IND. Si la réponse est positive, l'étape E129 est suivie de l'étape E131 pour poursuivre le bouclage. Si la réponse à l'étape E129 est négative, cette étape est suivie de l'étape E130 à laquelle est déterminée le numéro de permutation NP entre le vecteur de code VCk et le vecteur leader VLk, égal au vecteur Y. Le numéro de permutation NP est égal au paramètre IND diminué de l'indice lk. Le vecteur de code est déterminé par une méthode inverse de la méthode utilisée à l'étape E51, ici par application de la méthode de Schalkwijk inverse. L'étape Eu 30 est suivie de l'étape El 3 précédemment décrite. On décrit maintenant un second mode de réalisation de l'invention, à l'appui des figures 13 à 20. Selon le mode de réalisation choisi et représenté à la figure 13, un dispositif de codage selon l'invention est destiné à coder un signal numérique dans le but de le compresser. Le dispositif de codage est intégré dans un appareil 300, qui est par exemple un appareil photographique numérique, ou un camescope numérique, ou un système de gestion de base de données, ou encore un ordinateur. Le signal numérique à compresser SI est dans ce mode particulier de réalisation une suite d'échantillons numériques représentant une image. Le dispositif comporte une source de signal 31, ici de signal d'image. De manière générale, la source de signal soit contient le signal numérique, et est par exemple une mémoire, un disque dur ou un CD-ROM, soit convertit un signal analogique en signal numérique, et est par exemple un camescope analogique associé à un convertisseur analogique-numérique. Une sortie 311 de la source de signal est reliée à un circuit d'analyse, ou de décomposition en sous-bandes 32. Le circuit 32 a une première sortie 321 reliée à un circuit de codage 33. Des secondes sorties 322 du circuit de décomposition 32 sont reliées à un circuit de division en blocs 34. Le circuit 34 a des premières sorties 341 reliées à un premier circuit de codage 35 et des secondes sorties 342 reliées à un second circuit de codage 36. Une sortie 351 du circuit 35 et une sortie 361 du circuit 36 sont reliées à un circuit de comparaison 37, dont une sortie 371 constitue la sortie du dispositif de codage selon l'invention. La sortie 371 est reliée à un circuit de traitement 38, qui est par exemple un circuit de transmission, ou une mémoire. Une sortie 331 du circuit de codage 33 est également reliée au circuit de traitement 38. La source d'image 31 est un dispositif pour générer une suite d'échantillons numériques représentant une image IM. La source 31 comporte une mémoire d'image et fournit un signal numérique d'image SI à l'entrée du circuit de décomposition 32. Le signal d'image SI est une suite de mots numériques, par exemple des octets. Chaque valeur d'octet représente un pixel de l'image IM, ici à 256 niveaux de gris, ou image noir et blanc. Le circuit de décomposition en sous-bandes 32, ou circuit d'analyse, est un ensemble classique de filtres, ici respectivement associés à des décimateurs par deux, qui filtrent le signal d'image selon deux directions, en sous-bandes de hautes et basses fréquences spatiales. Selon la figure 14, le circuit 32 comporte trois blocs successifs d'analyse pour décomposer l'image IM en des sous-bandes selon trois niveaux de résolution. II est à noter que l'invention n'implique pas nécessairement une décomposition selon plusieurs niveaux de résolution, mais seulement une décomposition du signal à coder en plusieurs sous-bandes. De manière générale, la résolution d'un signal est le nombre d'échantillons par unité de longueur utilisés pour représenter ce signal. Dans le cas d'un signal d'image, la résolution d'une sous-bande est liée au nombre d'échantillons par unité de longueur pour représenter cette sous-bande. La résolution dépend du nombre de décimations effectuées. Le premier bloc d'analyse reçoit le signal numérique d'image et l'applique à deux filtres numériques respectivement passe-bas et passe-haut 21 et 22 qui filtrent le signal d'image selon une première direction, par exemple horizontale dans le cas d'un signal d'image. Après passage par des décimateurs par deux 210 et 220, les signaux filtrés résultant sont respectivement appliqués à deux filtres passe-bas 23 et 25, et passe-haut 24 et 26, qui les filtrent selon une seconde direction, par exemple verticale dans le cas d'un signal d'image. Chaque signal filtré résultant passe par un décimateur par deux respectif 230, 240, 250 et 260. Le premier bloc délivre en sortie quatre sous-bandes LL1, LH1, HL1 et HH1 de résolution RES1 la plus élevée dans la décomposition. La sous-bande LL1 comporte les composantes, ou coefficients, de basse fréquence, selon les deux directions, du signal d'image. La sous-bande LH1 comporte les composantes de basse fréquence selon une première direction et de haute fréquence selon une seconde direction, du signal d'image. La sous-bande HL1 comporte les composantes de haute fréquence selon la première direction et les composantes de basse fréquence selon la seconde direction. Enfin, la sous-bande HH1 comporte les composantes de haute fréquence selon les deux directions. Chaque sous-bande est une image construite à partir de l'image d'origine, qui contient de l'information correspondant à une orientation respectivement verticale, horizontale et diagonale des contours de l'image, dans une bande de fréquence donnée. La sous-bande LL1 est analysée par un bloc d'analyse analogue au précédent pour fournir quatre sous-bandes LL2, LH2, HL2 et HH2 de niveau de résolution RES2 intermédiaire dans la décomposition. La sous-bande LL2 comporte les composantes de basse fréquence selon les deux directions d'analyse, et est à son tour analysée par le troisième bloc d'analyse analogue aux deux précédents. Le troisième bloc d'analyse fournit des sous-bandes LL3, LH3, HL3 et HH3, de résolution RES3 la plus faible dans la décomposition, résultant du découpage en sous-bandes de la sous-bande LL2. Chacune des sous-bandes de résolution RES2 et RES3 correspond également à une orientation dans l'image. La décomposition effectuée par le circuit 32 est telle qu'une sous bande d'une résolution donnée est découpée en quatre sous-bandes de résolution inférieure et a donc quatre fois plus de coefficients que chacune des sous-bandes de résolution inférieure. Une image numérique IM en sortie de la source d'image 31 est représentée de manière schématique à la figure 15, tandis que la figure 16 représente l'image IMD résultant de la décomposition de l'image IM, en dix sous-bandes selon trois niveaux de résolution, par le circuit 32. L'image IMD comporte autant d'information que l'image d'origine IM, mais l'information est fréquentiellement découpée selon trois niveaux de résolution. Le niveau de plus basse résolution RES3 comporte les sous-bandes LL3, HL3, LH3 et HH3, c'est-à-dire les sous-bandes de basse fréquence selon les deux directions d'analyse. Le second niveau de résolution RES2 comporte les sous-bandes HL2, LH2 et HH2 et le niveau de plus haute résolution RESI comporte les sous-bandes de plus haute fréquence HL1, LH1 et HH1. La sous-bande LL3 de plus basse fréquence est une réduction de l'image d'origine. Les autres sous-bandes sont des sous-bandes de détail. Bien entendu, le nombre de niveaux de résolution, et par conséquent de sous-bandes, peut être choisi différemment, par exemple 13 sous-bandes et quatre niveaux de résolution, pour un signal bi-dimensionnel tel qu'une image. Le nombre de sous-bandes par niveau de résolution peut également être différent. Les circuits d'analyse et de synthèse sont adaptés à la dimension du signal traité. La sous-bande LL3, de plus basse résolution RES3 est appliquée au circuit de codage 33 qui la code en une sous-bande codée, ou compressée, LLc3. Le circuit de codage 33 effectue un codage DPCM (Differential Pulse Code Modulation, ou en Français, Modulation par codage d'impulsion différentielle), qui est un codage par prédiction linéaire, avec perte. Chaque pixel de la sous-bande à coder LL3 est prédit en fonction de ses voisins, et cette prédiction est soustraite de la valeur du pixel considéré, dans le but de former une image différentielle qui présente moins de corrélation entre pixels que l'image originale. L'image différentielle est alors quantifiée et codée par un codage de Huffman pour former la sous-bande codée LLc3. Selon d'autres modes de réalisation, le circuit de codage 33 effectue un codage par transformation discrète en cosinus (DCT), ou par quantification vectorielle. Dans tous les cas, la sous-bande de plus basse fréquence est de préférence traitée à part. En effet, cette sous-bande contient une grande quantité d'information, et il est préférable de la coder avec le plus de précision possible, sans mise à zéro de bloc. Cependant, pour simplifier la mise en oeuvre, il est possible de coder la sous-bande de plus basse fréquence comme les sous-bandes de détail. Les sous-bandes LH3, HL3 et HH3, ainsi que les sous-bandes de résolution supérieure HL2, LH2, HH2, HL1, LH1 et HH1 sont fournies au circuit de division 34, selon un ordre de sous-bande a priori quelconque, mais prédéterminé. Comme représenté à la figure 17, le circuit de division 34 divise chaque sous-bande de détail en bloc. Selon le mode de réalisation choisi, toutes les sous-bandes fournies au circuit 34 sont divisées en un même nombre M de blocs B. où où l'indice i est un entier, ici entre 1 et 9, qui représente l'ordre de la sous-bande considérée et l'indice m, entre 1 et M, est un entier qui représente l'ordre du bloc dans la sous-bande considérée. Les blocs sont ici de forme carrée, mais peuvent être en variante de forme rectangulaire. De manière générale, un bloc est un ensemble de coefficients extraits de la sous-bande pour former un vecteur. L'ordre des blocs est a priori quelconque, mais prédéterminé. Pour des raisons pratiques, les blocs sont ordonnés de la même manière dans toutes les sous-bandes, par exemple de gauche à droite et de haut en bas. En conséquence du mode de division en blocs, la surface des blocs est divisée par quatre en passant de la résolution RES1 à la résolution RES2, et de la résolution RES2 à la résolution RES3. Cette division est simple à mettre en oeuvre, puisque toutes les sous-bandes sont divisées en un même nombre de blocs. Cependant, pour la mise en oeuvre de l'invention, le nombre et le format des blocs peuvent être différents d'une résolution à l'autre. Le circuit de codage 35 code chaque bloc Bien fourni par le circuit 34 selon le premier mode de codage. Ce mode consiste à mettre tous les coefficients du bloc à une valeur prédéterminée, par exemple la valeur zéro. Ce codage est très économique en nombre de bits, puisqu'il n'implique la transmission ou la mémorisation d'aucune donnée de codage, et par conséquent nécessite un débit de transmission nul. Cependant, I'erreur de codage risque d'être grande si le bloc considéré n'est pas d'énergie faible. Le circuit de codage 36 code chaque bloc B. m fourni par le circuit 34 par un second mode de codage, ici par quantification vectorielle sur réseau. Il est à noter que les blocs considérés par le second mode de codage peuvent être les blocs Bi,m précédemment définis, ou en variante des blocs Vn de taille inférieure, formés dans les blocs Bjm Pour chacun des blocs, le circuit 37 compare les deux codages selon un critère pour sélectionner le codage le plus approprié, selon ce critère, pour chaque bloc considéré. A cette fin, le circuit 37 détermine les débits Ri,i,m et R2,i,m nécessaires pour transmettre le bloc codé par chacun des deux circuits 5 et 6, ainsi que les erreurs de codage, ou distorsion, D1 i m et D2,i,m provoquées par le codage réalisé par chacun des deux circuits 35 et 36. Les erreurs D1 i m et D2,i,m mesurent ici respectivement l'erreur quadratique apportée dans l'image reconstruite par le codage du bloc considéré, selon le premier et le second mode de codage. Dans le cas où la décomposition en sous-bande est orthogonale, les erreurs Di,i,m et D2,i,m sont égales aux erreurs quadratiques entre le bloc original et le bloc reconstruit. Le circuit 37 compare ensuite, pour chacun des blocs, les sommes R1,i,m + B.D1,i,m et R2,i,m + B.D2,i,m, où X est un coefficient de réglage du rapport compression/distorsion. Le codage pour lequel la somme est la plus faible est sélectionné, pour chacun des blocs considérés. Un indicateur 1i,m est associé à chacun des blocs pour indiquer quel est le codage sélectionné par le circuit 37. L'indicateur 1ï,m est par exemple un bit qui est mis à zéro si le bloc considéré est codé par mise à zéro, et qui est mis à un si le bloc considéré est codé par quantification vectorielle sur réseau. Le circuit 37 transmet au circuit de traitement 38 I'indicateur 1i,m de chaque bloc codé, associé aux données de codage du bloc considéré, dans le cas où le bloc considéré est codé par quantification vectorielle sur réseau. En référence à la figure 18, le dispositif de décodage réalise globalement des opérations inverses de celles du dispositif de codage. Le dispositif de décodage est intégré dans un appareil 400, qui est par exemple un lecteur d'image numérique, ou de séquence vidéo numérique, ou un système de gestion de base de données, ou encore un ordinateur. Un même appareil peut comporter à la fois le dispositif de codage et le dispositif de décodage selon l'invention, de manière à effectuer des opérations de codage et de décodage. Le dispositif de décodage comporte une source de données codées 40 qui comporte par exemple un circuit de réception associé à une mémoire tampon. Une première sortie 401 du circuit 40 est reliée à un circuit 41 de lecture d'indicateur Ij m. dont une sortie 411 est reliée à un circuit de décodage 42. Le circuit de décodage 42 a une sortie 42, reliée à un circuit de reconstruction 43. Ce dernier a une sortie 43, reliée à un circuit 44 d'exploitation des données décodées, comportant par exemple des moyens de visualisation d'image. Le circuit 40 fournit des données codées au circuit 41, qui détermine le mode de codage utilisé pour chacun des blocs en analysant l'indicateur i,m Si l'indicateur lim indique que le bloc considéré est codé par mise à zéro, son décodage consiste à créer un bloc dont tous les coefficients sont à la valeur zéro. La taille du bloc créé dépend de la sous-bande en cours de décodage, et est par exemple déterminée par l'indice du bloc. Si l'indicateur li,m indique que le bloc considéré est codé par quantification vectorielle sur réseau, les données de codage du bloc considéré sont lues et décodées, comme précédemment exposé, par le circuit 42 qui forme un bloc décodé Bdj,m. Le circuit 42 fournit les blocs décodés Bdi,m au circuit de reconstruction 43, qui est un circuit de synthèse correspondant au circuit d'analyse 32 décrit précédemment et reconstruit l'image IMd correspondant aux Une seconde sortie 402 du circuit 40 est reliée à un circuit de décodage 45 de la sous-bande de plus basse fréquence, dont une première sortie 451 est reliée au circuit de reconstruction 43. Le circuit de décodage 45 effectue des opérations inverses de celles du circuit de codage 33 et fournit la sous-bande décodée LLd3 au circuit de reconstruction 43. Selon un mode préféré de réalisation de l'invention, les circuits de décomposition en sous-bandes 32, de codage 33, de division en bloc 34, de codage 35 et 36, de comparaison 37 et de traitement 38, tous inclus dans le dispositif de codage représenté à la figure 13, sont réalisés par un microprocesseur associé à des mémoires vives et mortes. La mémoire morte comporte un programme pour coder chacun des blocs de données, et la mémoire vive comporte des registres adaptés à enregistrer des variables modifiées au cours de l'exécution du programme. De même, les circuits de lecture 41, de décodage 42 et 45, de reconstruction 43, inclus dans le dispositif de décodage représenté à la figure 18, sont réalisés par un second microprocesseur associé à des mémoires vives et mortes. La mémoire morte comporte un programme pour décoder chacun des blocs de données, et la mémoire vive comporte des registres adaptés à enregistrer des variables modifiées au cours de l'exécution du programme. En référence à la figure 19, un procédé de codage selon l'invention d'une image IM, mis en oeuvre dans le dispositif de codage, comporte des étapes S1 à Suis. L'étape S1 est la décomposition en sous-bandes de l'image IM, comme représenté à la figure 16. L'étape S1 a pour résultat les sous-bandes LL3, HL3, LH3 et HH3 de plus faible résolution RES3, les sous-bandes LH2, HL2, HH2 de résolution intermédiaire RES2, et les sous-bandes LH1, HL1 et HH1 de plus haute résolution RES1. La sous-bande LL3 est séparée des autres sous-bandes à l'étape suivante S2. L'étape S3 code la sous-bande LL3 selon un codage DPCM (Differential Pulse Code Modulation) et a pour résultat la sous-bande codée LLC3 qui est mémorisée et/ou transmise. L'étape 53 est suivie par l'étape S4 qui est la division des autres sous-bandes en blocs Bi,m, comme représenté à la figure 17. L'étape suivante S5 est une initialisation pour considérer la première sous-bande. Les sous-bandes sont prises en compte selon un ordre a priori quelconque, tout en étant prédéterminé. L'étape suivante S6 est une initialisation pour considérer le premier bloc de la sous-bande courante. Les blocs dans la sous-bande courante sont pris en compte selon un ordre quelconque et prédéterminé. L'étape S6 est suivie par l'étape S7 qui est le codage par mise à une valeur prédéterminée, ici zéro, des coefficients du bloc courant B. L'étape suivante S8 est le codage par un second mode de codage, ici quantification vectorielle sur réseau, du bloc courant Bj m. L'étape suivante S9 est la comparaison des deux modes de codage, pour le bloc courant, selon un critère prédéterminé. L'étape S9 a pour résultat la sélection de l'un des modes de codage, pour le bloc courant Bi,m. A cette fin, les sommes Ri,i,m + R.D1,j m et R2,i,m + X.D2i,m sont calculées, où R1,i,m et R2,i,m sont les débits nécessaires pour transmettre le bloc courant codé par les deux modes, Di,i,m et D2,i,m sont les distorsions provoquées dans le bloc courant par les deux modes de codage, et X est un coefficient de réglage du rapport compression/distorsion. Comme exposé plus haut, les erreurs Di,i,m et D2,i,m mesurent respectivement l'erreur quadratique apportée dans l'image reconstruite par le codage du bloc considéré, selon le premier et le second mode de codage. Le codage pour lequel la somme est la plus faible est sélectionné, pour le bloc courant. A l'étape suivante 510, un indicateur lim est associé au bloc courant pour indiquer quel est le codage sélectionné à l'étape S9. L'indicateur 1i,m est par exemple un bit qui est mis à zéro si le bloc considéré est codé par mise à zéro, et qui est mis à un si le bloc considéré est codé par quantification vectorielle sur réseau. L'étape suivante S11 est la mémorisation de la valeur de l'indicateur 1i,m ainsi que des données codées dans le cas où le bloc courant est codé par quantification vectorielle sur réseau. Les étapes S12 et S14 sont des tests pour vérifier, respectivement si tous les blocs d'une sous-bande, et si toutes les sous-bandes ont été codées. S'il reste au moins un bloc à coder dans la sous-bande courante, l'étape S12 est suivie par l'étape S13 pour considérer le bloc suivant. L'étape S13 est suivie par l'étape S7 précédemment décrite. S'il reste au moins une sous-bande à coder, l'étape S14 est suivie par l'étape S15 pour considérer la sous-bande suivante. L'étape S15 est suivie par l'étape S6 précédemment décrite. En référence à la figure 20, un procédé de décodage selon l'invention d'une image IM, mis en oeuvre dans le dispositif de décodage, comprend des étapes S20 à S30. L'étape S20 est le décodage de la sous-bande basse LLC3 pour former une sous-bande basse décodée LLd3 qui est mémorisée. L'étape suivante S21 est une initialisation pour considérer la première sous-bande de détail à décoder. L'étape S21 est suivie de l'étape S22 qui est une initialisation pour considérer le premier bloc à décoder dans la sous-bande courante. Les sous bandes sont décodées dans le même ordre qu'au codage, et les blocs dans une sous-bande donnée sont décodés dans le même ordre qu'au codage, bien que des ordres différents soient possibles. L'étape suivante S23 est la lecture de l'indicateur 11,m pour déterminer quel mode de codage a été utilisé pour coder le bloc courant. L'étape S23 est suivie de l'étape S24 qui est le décodage du bloc courant. Si le bloc a été codé par mise à zéro, le décodage consiste à créer un bloc dont tous les coefficients sont à la valeur zéro. La taille du bloc créé dépend de la sous-bande en cours de décodage, et est par exemple déterminée par l'indice du bloc. Si le bloc a été codé par quantification vectorielle sur réseau, il est décodé, comme exposé précédemment pour former le bloc décodé Bdj m. Le bloc décodé Bdi,m est mémorisé à l'étape suivante S25. Les étapes S26 et S28 sont des tests pour vérifier, respectivement si tous les blocs d'une sous-bande, et si toutes les sous-bandes ont été décodées. S'il reste au moins un bloc à décoder dans la sous-bande courante, L'étape S26 est suivie par l'étape S27 pour considérer le bloc suivant. L'étape S27 est suivie par l'étape S23 précédemment décrite. S'il reste au moins une sous-bande à décoder, l'étape S28 est suivie par l'étape S29 pour considérer la sous-bande suivante. L'étape S29 est suivie par l'étape S22 précédemment décrite. Lorsque toutes les sous-bandes ont été décodées, c'est-à-dire que la réponse est positive à l'étape S28, cette dernière étape est suivie de l'étape S30 de construction de l'image décodée. Cette dernière peut ensuite être visualisée, par exemple. L'invention a été décrite pour une image à niveau de gris ; en variante, l'invention s'applique à une image numérique en couleur. L'image en couleur est un ensemble de pixels respectivement définis par leurs composantes rouge, verte et bleue. Chaque composante de couleur d'un pixel est un mot binaire, par exemple un octet. L'image en couleur présente ainsi une structure analogue à trois images à niveaux de gris. L'image en couleur est codée par trois codeurs parallèles, analogues au dispositif de codage décrit, recevant chacun une composante de l'image couleur. Selon une autre variante, L'image en couleur est définie par sa luminance et sa chrominance. La composante de luminance et les deux composantes de chrominance sont codées en parallèle par trois codeurs analogues au dispositif de codage décrit. L'invention s'applique également à d'autres types d'images en couleur, par exemple définies par des composantes d'intensité, de teinte et de saturation. Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits et représentés, mais englobe, bien au contraire, toute variante à la portée de l'homme du métier. Revendications: 1. Procédé de détermination d'un indice d'un vecteur de code (VCk) appartenant à un réseau prédéterminé, caractérisé en ce qu'il comporte les étapes de: - détermination (E47) d'un vecteur leader (Y, VLk) pour le vecteur de code (VCk), - recherche (E50, E51) d'un numéro de permutations (NP) entre le vecteur de code et le vecteur leader, - détermination (E51) de l'indice (Ik) pour le vecteur de code en fonction du numéro de permutations. 2. Procédé de codage d'un vecteur de code (VCk) compris dans un groupe connu de vecteurs appartenant à un réseau prédéterminé, lesdits vecteurs ayant la même norme (Nk), au sens d'une norme prédéterminée, caractérisé en ce qu'il comporte les étapes de: - détermination (E47) d'un vecteur leader (VLk) pour le vecteur de code, - recherche (E50, E51) d'un numéro de permutations (NP) entre le vecteur de code et le vecteur leader, - détermination (E51) d'un indice (Ik) pour le vecteur de code en fonction du numéro de permutations. 3. Procédé de codage d'un ensemble de données représentatives de grandeurs physiques, caractérisé en ce qu'il comporte les étapes de: - division (El) en vecteurs (Vn) de l'ensemble de données, puis, pour chacun des vecteurs (Vn) issus de la division, - quantification vectorielle (E3) du vecteur de manière à déterminer un vecteur de code (VCk) appartenant à un réseau prédéterminé, - détermination (E47) d'un vecteur leader (VLk) pour le vecteur de code, - recherche (E50, E51) d'un numéro de permutations (NP) entre le vecteur de code et le vecteur leader, - détermination (E51) d'un indice (Ik) pour le vecteur de code en fonction du numéro de permutations. 4. Procédé de codage selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comporte les étapes de: - détermination (E43-E46) d'une zone du réseau en fonction de la norme du vecteur de code, - recherche (E47) d'un ensemble de vecteurs leaders dans la zone, - recherche (E48) d'un sous-ensemble de vecteurs leaders ayant la même norme que le vecteur de code, - calcul (E50, E51) de la somme d'un nombre de permutation (PER) respectif des vecteurs leaders du sous-ensemble qui sont différents du vecteur leader relatif au vecteur de code, et du numéro de permutations (NP) entre le vecteur de code et son vecteur leader. 5. Procédé de codage selon l'une quelconque des revendications I à 4, caractérisé en ce que le numéro de permutations (NP) est déterminé par application de la méthode de Schalkwijk au vecteur de code et au vecteur leader. 6. Procédé de décodage d'un vecteur de code appartenant à un réseau prédéterminé, dont la forme codée comporte une norme (Nk) et un indice (lu), caractérisé en ce qu'il comporte les étapes de: - détermination (E126) d'un vecteur leader (Y) pour le vecteur de code, - détermination (ex 30) d'un numéro de permutations (NP) entre le vecteur de code et le vecteur leader, en fonction de l'indice (in), - détermination du vecteur de code (VCk) en fonction du numéro de permutations (NP). 7. Procédé de décodage selon la revendication 6, caractérisé en ce qu'il comporte l'étape de détermination (E122-E125) d'une zone du réseau en fonction de la norme (Nk) du vecteur de code, et en ce que le vecteur leader (VLk) est recherché dans cette zone. 8. Procédé de décodage selon la revendication 6 ou 7, caractérisé en ce que le vecteur de code (VCk) est déterminé par application de la méthode de Schalkwijk inverse au numéro de permutations (NP) et au vecteur leader (VLk). 9. Dispositif de détermination d'un indice (Ik) d'un vecteur de code (VCk) appartenant à un réseau prédéterminé, caractérisé en ce qu'il comporte: - des moyens (4) de détermination d'un vecteur leader (VLk) pour le vecteur de code, - des moyens (4) de recherche d'un numéro de permutations (NP) entre le vecteur de code et le vecteur leader, - des moyens (4) de détermination de l'indice (Ik) pour le vecteur de code en fonction du numéro de permutations. 10. Dispositif de codage d'un vecteur de code (VCk) compris dans un groupe connu de vecteurs appartenant à un réseau prédéterminé, lesdits vecteurs ayant la même norme, au sens d'une norme prédéterminée, caractérisé en ce qu'il comporte: - des moyens (4) de détermination d'un vecteur leader (VLk) pour le vecteur de code, - des moyens (4) de recherche d'un numéro de permutations (NP) entre le vecteur de code et le vecteur leader, - des moyens (4) de détermination d'un indice (Ik) pour le vecteur de code en fonction du numéro de permutations. 11. Dispositif de codage d'un ensemble de données représentatives de grandeurs physiques, caractérisé en ce qu'il comporte: - des moyens (2) de division en vecteurs (Vn) de l'ensemble de données, puis, pour chacun des vecteurs issus de la division, - des moyens (3) de quantification vectorielle du vecteur de manière à déterminer un vecteur de code (VCk) appartenant à un réseau prédéterminé, - des moyens (4) de détermination d'un vecteur leader (VLk) pour le vecteur de code, - des moyens (4) de recherche d'un numéro de permutations (NP) entre le vecteur de code et le vecteur leader. - des moyens (4) de détermination d'un indice (Ik) pour ie vecteur de code en fonction du numéro de permutations. 12. Dispositif de codage selon l'une quelconque des revendications 9 à Il, caractérisé en ce qu'il comporte: - des moyens de détermination (4) d'une zone du réseau en fonction de la norme (Nk) du vecteur de code, - des moyens de recherche (4) d'un ensemble de vecteurs leaders dans la zone, - des moyens de recherche (4) d'un sous-ensemble de vecteurs leaders ayant la même norme que le vecteur de code, - des moyens de calcul (4) de la somme d'un nombre de permutation (PER) respectif des vecteurs leaders du sous-ensemble qui sont différents du vecteur leader relatif au vecteur de code, et du numéro de permutation (NP) entre le vecteur de code et son vecteur leader. 13. Dispositif de codage selon l'une quelconque des revendications 9 à 12, caractérisé en ce qu'il est adapté à appliquer la méthode de Schalkwijk au vecteur de code et au vecteur leader pour déterminer le numéro de permutations (NP). 14. Dispositif de codage selon l'une quelconque des revendications 9 à 13, caractérisé en ce que les moyens de détermination et les moyens de recherche sont incorporés dans - un micro-processeur, - une mémoire morte comportant un programme de détermination d'indice pour les vecteurs de code, et - une mémoire vive comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. 15. Dispositif de décodage d'un vecteur de code (VCk) appartenant à un réseau prédéterminé, dont la forme codée comporte une norme (Nk) et un indice (lu), caractérisé en ce qu'il comporte: - des moyens (13) de détermination d'un vecteur leader (VLk) pour le vecteur de code, - des moyens (13) de détermination d'un numéro de permutations (NP) entre le vecteur de code et le vecteur leader, en fonction de l'indice, - des moyens (13) de détermination du vecteur de code en fonction du numéro de permutations. 16. Dispositif de décodage selon la revendication 15, caractérisé en ce qu'il comporte des moyens de détermination d'une zone du réseau en fonction de la norme du vecteur de code, et en ce qu'il est adapté à rechercher le vecteur leader dans cette zone. 17. Dispositif de décodage selon l'une quelconque des revendications 15 à 16, caractérisé en ce qu'il est adapté à appliquer la méthode de Schalkwijk inverse au numéro de permutations (NP) et au vecteur leader pour déterminer le vecteur de code. 18. Dispositif de décodage selon l'une quelconque des revendications 15 à 17, caractérisé en ce que les moyens de détermination sont incorporés dans: - un micro-processeur, - une mémoire morte comportant un programme de détermination de vecteur de code, et - une mémoire vive comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. 19. Appareil (100) de traitement de signal numérique, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 5. 20. Appareil (200) de traitement de signal numérique, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé de décodage selon l'une quelconque des revendications 6 à 8. 21. Appareil (100) de traitement de signal numérique, caractérisé en ce qu'il comporte le dispositif de codage selon l'une quelconque des revendications 9 à 14. 22. Appareil (200) de traitement de signal numérique, caractérisé en ce qu'il comporte le dispositif de décodage selon l'une quelconque des revendications 15 à 18.