FR 2755818 A1 19980515 FR 9613651 A 19961108 i 2755818 La présente invention concerne d'une manière générale la compression de signal numérique et propose à cette fin un dispositif et un procédé de codage d'un signal numérique par décomposition en sous-bandes de fréquence du signal et quantification vectorielle à états finis des coefficients issus de la décomposition en sous-bandes. Pour transmettre et/ou mémoriser un signal numérique, tel qu'un signal d'image, il est fréquemment nécessaire de le compresser pour réduire le temps de transmission et/ou la place mémoire utilisée. Parmi les codages de compression, la quantification vectorielle à états finis utilise un ensemble de dictionnaires de vecteurs de code. Cette technique de compression consiste à diviser le signal numérique en blocs, ou vecteurs, de taille prédéterminée, sans recouvrement. De manière générale, un vecteur est un groupe d'échantillons numériques adjacents du signal numérique. Dans le cas d'un signal d'image, un vecteur est un groupe de pixels adjacents. Un premier vecteur est codé en sélectionnant un vecteur de code dans un premier dictionnaire de vecteurs de code, associé à un état initial. Un indice associé au vecteur de code sélectionné est une forme compressée, ou codée, du premier vecteur. L'état suivant est déterminé en fonction de l'état précédent et du vecteur de code sélectionné à l'état précédent. Le vecteur suivant est codé en sélectionnant un vecteur de code dans un dictionnaire de vecteurs de code associé à l'état déterminé, et ainsi de suite. 2 2755818 Dans ce type de codage de compression, lorsque le dictionnaire de vecteurs de code associé à l'état déterminé ne permet pas de coder le vecteur courant avec une qualité suffisante, le dictionnaire de vecteur de code associé à l'état suivant ne permet pas non plus de faire un codage de bonne qualité. Une approximation à un état donné se propage donc à tous les états suivants. Dans le domaine des machines à états finis, ce phénomène est connu sous le nom de déraillement. Ce phénomène conduit à une mauvaise restitution du signal numérique. Dans le cas d'un signal d'image, cela provoque une distorsion de l'image reconstruite. D'autre part, il est connu de décomposer un signal en sous-bandes de fréquence avant de le compresser. La décomposition consiste à créer, à partir du signal, un jeu de sous-bandes qui contiennent chacune une gamme limitée de fréquence. Les sous-bandes peuvent être de différentes résolutions, la résolution d'une sous-bande étant le nombre d'échantillons par unité de longueur utilisés pour représenter cette sous-bande. Les sous-bandes peuvent ensuite être codées de manière plus efficace que le signal d'origine. Dans le cas d'un signal numérique d'image, une sous-bande de fréquence de ce signal est elle-même une image. Cependant, la décomposition d'un signal en sous- bandes de fréquence ne crée aucune compression en elle-même. La présente invention vise à remédier aux inconvénients de la technique antérieure, en fournissant un dispositif et un procédé de compression de signal numérique qui offre un rapport compression sur distorsion élevé. Le codage selon l'invention combine une décomposition de signal numérique en sous-bandes de fréquence et une quantification vectorielle à états finis des sous-bandes. A cette fin, I'invention propose d'analyser le signal numérique en une pluralité de sous-bandes de fréquence réparties selon au moins deux résolutions différentes, et de coder par quantification vectorielle à états finis les sous-bandes de résolution supérieure en fonction des sous-bandes de résolution inférieure. 3 2755818 L'invention propose notamment un procédé de codage d'un signal numérique par division du signal en une pluralité de vecteurs et comparaison de chacun de ces vecteurs avec des vecteurs de codes appartenant à une pluralité de dictionnaires de vecteurs de codes, comportant une étape d'analyse du signal numérique en une pluralité de sous-bandes de fréquence réparties selon au moins deux résolutions différentes, au moins une première sous-bande ayant une résolution plus faible et au moins une seconde sous- bande ayant une résolution plus élevée, caractérisé en ce qu'il comporte, pour chaque seconde sous-bande, les étapes de: - sélectionner une première sous-bande, - diviser en des premiers vecteurs ladite première sous-bande sélectionnée, - diviser en des seconds vecteurs ladite seconde sous-bande, - extraire, pour chacun des seconds vecteurs, un premier vecteur lié par une relation prédéterminée au second vecteur, - sélectionner, pour chacun des seconds vecteurs, un dictionnaire de vecteurs de code parmi la pluralité de dictionnaires de vecteurs de code, en fonction du premier vecteur extrait, - coder chacun des seconds vecteurs, en sélectionnant un vecteur de code dans le dictionnaire sélectionné, respectivement, afin de former une seconde sous-bande codée. Corrélativement, I'invention propose un dispositif de codage d'un signal numérique par division du signal en une pluralité de vecteurs et comparaison de chacun de ces vecteurs avec des vecteurs de codes appartenant à une pluralité de dictionnaires de vecteurs de codes, comportant un moyen de mémorisation de la pluralité de dictionnaires de vecteurs de code, et un moyen d'analyse du signal numérique en une pluralité de sous-bandes de fréquence réparties selon au moins deux résolutions différentes, au moins une première sous-bande ayant une résolution plus faible et au moins une seconde sous-bande ayant une résolution plus élevée, 4 2755818 caractérisé en ce qu'il comporte des moyens de: - division en des premiers vecteurs de ladite première sous-bande, - division en des seconds vecteurs de ladite seconde sous-bande, - extraction, pour chacun des seconds vecteurs, d'un premier vecteur lié par une relation prédéterminée au second vecteur, - sélection, pour chacun des seconds vecteurs, d'un dictionnaire de vecteurs de code parmi la pluralité de dictionnaires de vecteurs de code, en fonction du premier vecteur extrait, - codage de chacun des seconds vecteurs en sélectionnant un l0 vecteur de code dans le dictionnaire sélectionné, respectivement, afin de former une seconde sous-bande codée. Le vecteur de code est classiquement associé à un indice, qui est une forme compressée du second vecteur. Les premier et second vecteurs liés par la relation prédéterminée ont de manière générale des emplacements interdépendants dans le signal, et selon un mode de réalisation préféré, ont le même emplacement dans le signal. Le procédé et le dispositif selon l'invention consistent à exploiter d'une part la corrélation inter-bande, ou d'échelle, ou de résolution, que présente le signal, et d'autre part la corrélation spatiale dans le cas d'un signal d'image, ou temporelle ou fréquentielle dans le cas d'un signal sonore par exemple, afin de coder le signal pour le compresser. L'invention permet d'atteindre un rapport compression sur distorsion élevé. En effet, I'exploitation combinée des corrélations de résolution et spatiale permet soit de réduire notablement la distorsion, à taux de compression égal, soit d'augmenter le taux de compression, pour une distorsion donnée, par rapport à la technique antérieure. Selon une caractéristique préférée, la seconde sous-bande est de résolution immédiatement supérieure à la première sous-bande. Dans le cas o il y a une succession de sous-bandes de résolution croissante, chaque sous- bande, sauf celle(s) de résolution la plus basse, est codée en fonction d'une sous-bande de résolution immédiatement inférieure. 2755818 Avantageusement, la première sous-bande est codée en une première sousbande codée, et la première sous-bande codée est décodée, préalablement à l'étape de diviser en des premiers vecteurs. La première sous-bande est soit codée de manière classique lorsqu'elle est de résolution la plus faible dans la décomposition, soit codée, en tant que seconde sous-bande, à partir d'une autre première sous-bande, lorsqu'elle est de résolution intermédiaire dans la décomposition qui a alors au moins trois niveaux de résolution. Il est préférable, dans tous les cas, de coder la seconde sous-bande à partir de la première sousbande codée puis décodée, puisque c'est cette dernière qui sera disponible après transmission et décodage, ou lecture en mémoire et décodage. Selon une caractéristique préférée, le signal numérique est un signal d'image. Dans ce cas, les premier et second vecteurs correspondent de préférence au même emplacement dans l'image, et sont situés respectivement dans des sous-bandes de même orientation. La corrélation de résolution est ainsi exploitée de manière efficace et rapide. Dans un autre aspect, I'invention propose un procédé de décodage d'un signal numérique codé par le procédé selon l'invention, caractérisé en ce qu'il comporte les étapes de: - extraire, pour chacun des seconds vecteurs codés de la seconde sous-bande codée, un premier vecteur de la première sous-bande, lié par la relation prédéterminée au second vecteur codé, sélectionner, pour chacun des seconds vecteurs codés de la seconde sous-bande codée, un dictionnaire de vecteurs de code parmi une pluralité de dictionnaires de vecteurs de code, en fonction du premier vecteur extrait, - décoder chacun des seconds vecteurs codés de la seconde sous- bande codée, en sélectionnant un vecteur de code dans le dictionnaire sélectionné, respectivement, afin de former une seconde sous-bande décodée. 6 2755818 Corrélativement, I'invention propose un dispositif de décodage d'un signal numérique codé par le dispositif selon l'invention comportant un moyen de mémorisation d'une pluralité de dictionnaires de vecteurs de code, caractérisé en ce qu'il comporte des moyens de: - extraction, pour chacun des seconds vecteurs codés de la seconde sous- bande codée, d'un premier vecteur de la première sous-bande, lié par la relation prédéterminée au second vecteur codé, - sélection, pour chacun des seconds vecteurs codés de la seconde sous-bande codée, d'un dictionnaire de vecteurs de code parmi la pluralité de io dictionnaires de vecteurs de code, en fonction du premier vecteur extrait, - décodage de chacun des seconds vecteurs codés de la seconde sous-bande codée, en sélectionnant un vecteur de code dans le dictionnaire sélectionné, respectivement, afin de former une seconde sous-bande décodée. Au codage et au décodage, pour un même second vecteur à coder ou décoder, le même dictionnaire de vecteur de code est sélectionné, sans qu'une information additionnelle de sélection de dictionnaire soit nécessaire. Ainsi, le codage réalisé offre un bon taux de compression, tout en étant précis grâce au nombre de dictionnaires de vecteur de code utilisés. Selon une caractéristique préférée, la première sous-bande codée est décodée préalablement au décodage de la seconde sous-bande. L'invention peut aisément être mise en oeuvre dans un ordinateur, un système de gestion de base de données, ou dans le cas d'un signal d'image, dans un système de traitement d'images fixes ou animées, tel qu'un appareil photographique numérique ou une caméra numérique. Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de plusieurs modes de réalisation illustrés par les dessins ci-joints, 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 2 est un circuit de décomposition en sous-bandes de fréquence, inclus dans le dispositif de la figure 1; 7 2755818 - la figure 3 est une image numérique à coder par le dispositif de codage selon l'invention; - la figure 4 est une image décomposée en sous- bandes par le circuit de la figure 2; - la figure 5 est un circuit de quantification vectorielle inclus dans le dispositif de codage selon l'invention; - la figure 6 est un bloc diagramme d'un mode de réalisation d'un dispositif de décodage selon l'invention; - la figure 7 est un circuit de déquantification vectorielle inclus dans le dispositif de codage selon l'invention; - la figure 8 est un algorithme de codage d'un signal numérique selon l'invention; - la figure 9 est un algorithme de quantification vectorielle inclus dans l'algorithme de la figure 8; - la figure 10 est un algorithme de décodage d'un signal numérique selon l'invention; et - la figure 11 est un algorithme de déquantification vectorielle inclus dans l'algorithme de la figure 10. 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 8 2755818 analogique associé à un convertisseur analogique-numérique. Une sortie 11 de la source de signal est reliée à un circuit d'analyse, ou de décomposition en sous-bandes 2. Le circuit 2 a une première sortie 21 reliée à un circuit de codage 3. Des secondes sorties 22 du circuit de décomposition 2 sont reliées à un circuit de quantification vectorielle à états finis 5. Le circuit de codage 3 a une première sortie 31 reliée à un circuit de décodage 4 dont une sortie 41 est relié au circuit de quantification vectorielle 5. Le circuit de codage 3 a une seconde sortie 32 reliée à un multiplexeur 6. Le circuit de quantification lo vectorielle 5 a une sortie 51 reliée au multiplexeur 6. Une sortie 61 du multiplexeur 6 constitue la sortie du dispositif de codage selon l'invention. La sortie 61 est reliée à un circuit de traitement 60, qui est par exemple un circuit de transmission, ou une mémoire. La source d'image 1 est un dispositif pour générer une suite 1is d'échantillons numériques représentant une image IM. La source 1 comporte une mémoire d'image et fournit un signal numérique d'image SI à l'entrée du circuit de décomposition 2. 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 à 256 niveaux de gris, ou image noir et blanc. Le circuit de décomposition en sous-bandes 2, ou circuit d'analyse, est un ensemble classique de filtres, 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 2, le circuit 2 comporte trois blocs successifs d'analyse pour décomposer l'image IM en des sous-bandes selon trois niveaux de résolution. 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. 9 2755818 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 1o quatre sous- bandes LL3, LH3, HL3 et HH3 de résolution RES3 la plus élevée dans la décomposition. La sous-bande LL3 comporte les composantes, ou coefficients, de basse fréquence, selon les deux directions, du signal d'image. La sous-bande LH3 comporte les composantes de basse fréquence selon une première i direction et de haute fréquence selon une seconde direction, du signal d'image. La sous-bande HL3 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 HH3 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 de l'image, dans une bande de fréquence donnée. La sous-bande LL3 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 LL1, LH1, HL1 et HH,, de résolution RES1 la plus faible dans la décomposition, résultant du découpage en sous-bandes de la sous-bande LL2. 1o 2755818 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 2 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 1 est représentée de manière schématique à la figure 3, tandis que la figure 4 représente l'image IMD résultant de la décomposition de l'image IM, en dix lo sousbandes selon trois niveaux de résolution, par le circuit 2. L'image IMD comporte autant d'information que l'image d'origine IM, aux pertes dues au filtrage près, mais l'information est fréquentiellement découpée selon trois niveaux de résolution. Le niveau de plus basse résolution RES1 comporte les sous-bandes LL1, HL1, LH1 et HH1, 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 RES3 comporte les sous-bandes de plus haute fréquence HL3, LH3 et HH3. 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. De manière générale, le nombre de directions d'analyse dépend de la dimension du signal à analyser, et plus précisément, il y a égalité entre ces deux grandeurs. Les circuits d'analyse et de synthèse sont adaptés à la dimension du signal traité. Les sous-bandes LL1, LH1, HL1 et HH1 de plus basse résolution RES1 sont appliquées au circuit de codage 3 qui les code respectivement en des sous-bandes codées, ou compressées, LL1c, LH1c, HL1c et HHlc. i 2755818 Le circuit de codage 3 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 des sous-bandes à coder LL1, LH1, HL1 et HH1 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. Les sous-bandes ainsi codées par le circuit 3 sont appliquées au o10 multiplexeur 6 et au circuit de décodage 4. Le décodeur 4 décode les sous-bandes codées LL1c, LH1c, HL1c et HH1c et fournit des sous-bandes décodées, ou décompressées, LL1d, LH1d, HLld et HHld au circuit de quantification vectorielle 5. Les sous-bandes décodées sont utilisées pour coder par quantification vectorielle les autres sous-bandes de résolution supérieure, comme exposé dans la suite. Ainsi, selon l'invention, la corrélation de résolution est exploitée pour compresser le signal d'image. La figure 5 représente le circuit 5 de codage par quantification vectorielle à état finis. Le codage par quantification vectorielle exploite la corrélation spatiale qui existe dans l'image, en traitant les pixels par blocs, ou vecteurs, de pixels adjacents. Le codage est réalisé sous-bande par sous- bande. Le circuit 5 code les sous-bandes de plus haute résolution RES2 et RES3 reçues depuis le circuit 2, et comporte à cet effet un circuit de division en vecteur 51, relié à un sélecteur 52 et à une mémoire 53. La mémoire 53 comporte N dictionnaires de code Dl à DN, contenant respectivement des vecteurs de codes VC1 à VCM, o M et N sont des entiers. Chaque vecteur de code est associé à un indice IN, à INM. Le circuit 5 comporte également un second circuit de division en vecteur 54, dont une entrée est reliée au circuit de décodage 4 et une première 3 0 sortie est reliée à un second sélecteur 55. Une seconde sortie du circuit 54 est 12 2755818 reliée à un circuit de décodage 56. Le second sélecteur 55 est relié à la mémoire 53. Une sortie de la mémoire 53 de dictionnaires de vecteur de code est reliée au circuit 6 et au circuit de décodage 56 dont la sortie est reliée au second circuit de division 54. Le circuit de décodage 4 fournit les sous-bandes de basse résolution RES1, codée puis décodée, au circuit de division 54. Le circuit 54 divise chacune des sous-bandes HLdl, HHd1 et LHd1 en vecteurs parents VP1 de taille prédéterminée, par exemple en blocs de deux sur deux coefficients. Simultanément, le circuit de division 51 reçoit les sous-bandes de plus haute résolution RES2 et RES3 depuis le circuit 2. Le circuit de division 51 traite tout d'abord les sous-bandes de résolution RES2 et divise chacune des sous-bandes HL2, LH2 et HH2 de résolution RES2 en vecteurs à coder V2 de taille prédéterminée, par exemple en blocs de quatre sur quatre coefficients. La taille des vecteurs à coder V2 est choisie pour être quatre fois plus grande que celle des vecteurs parents VP1, de sorte qu'il y a le même nombre de vecteurs à coder V2 que de vecteurs parents VP1. Chaque vecteur à coder V2 d'une sous-bande d'orientation donnée est lié par une relation prédéterminée à un vecteur parent VP1. La relation prédéterminée définit l'emplacement du vecteur parent VP, dans le signal, en fonction de celui du vecteur V2. L'emplacement d'un vecteur dans un signal est défini de manière générale par les coordonnées du vecteur. L'emplacement du vecteur V2 et l'emplacement du vecteur parent VP1 qui lui est lié sont interdépendants. Selon un mode de réalisation préféré, le vecteur V2 et le vecteur parent VP1 liés ont le même emplacement dans le signal, ici dans l'image. De plus le vecteur parent VP1 est situé dans la sous- bande de résolution inférieure et de même orientation que la sous-bande du vecteur V2. En variante, le vecteur parent peut être remplacé par un vecteur de taille plus grande, incluant le vecteur parent, par exemple centré sur ce dernier. 13 2755818 Le rapport entre les tailles des vecteurs parents et des vecteurs à coder dépend de la décomposition préalable. Selon une autre variante, la décomposition en sous-bande est telle que le rapport des tailles entre sous- bandes de différente résolution n'est pas quatre, mais une autre valeur. Les tailles respectives des vecteurs parents et des vecteurs à coder sont alors adaptées à ce rapport pour qu'un vecteur parent et un vecteur à coder, correspondant à un même emplacement dans l'image, soient associés. Pour coder l'un des vecteurs V2, le circuit 51 fournit le vecteur V2 au sélecteur 52 et le circuit 54 fournit au sélecteur 55 le vecteur parent VP1 io correspondant au même emplacement dans l'image originale, et choisi dans la sous-bande de même orientation. Le sélecteur 55 classe le vecteur parent VP1 par comparaison de chacun de ses coefficients à des seuils, par exemple deux seuils respectivement positif et négatif, ce qui donne trois possibilités pour chaque coefficient. Dans le cas d'un vecteur à quatre coefficients, il y a donc 34 = 81 classes, correspondant chacune à un dictionnaire Dn de vecteurs de code. En fonction de la classe du vecteur parent VP1, le sélecteur 55 sélectionne l'un des dictionnaires de vecteurs de code Dn, avec n entier compris entre 1 et N. En variante, d'autres méthodes de classement sont possibles. Par exemple, le dictionnaire Dn est sélectionné en fonction de l'énergie du vecteur parent VP1. L'énergie d'un vecteur est l'erreur quadratique moyenne calculée sur les coefficients du vecteur. La gamme des énergies possibles est partagée en des intervalles qui sont chacun associés à un dictionnaire. L'énergie du vecteur parent VP1 se situe dans l'un des intervalles, et correspond par conséquent à l'un des dictionnaires. Dans le cas de la sélection de dictionnaire à partir de l'énergie du vecteur parent, le dictionnaire peut être choisi en fonction de vecteurs parents situés dans plusieurs sous-bandes de résolution inférieure. Ces sous-bandes peuvent être d'orientations différentes et/ou de résolutions différentes. Le sélecteur 52 sélectionne ensuite l'un des vecteurs VCm dans le dictionnaire sélectionné Dn. Le vecteur VCm est sélectionné de manière à être 14 2755818 le plus ressemblant possible au vecteur à coder V2. L'indice associé INm est une forme codée du vecteur V2 et est fourni au circuit 6 et au circuit de décodage 56. Chacun des vecteurs V2 de chacune des sous-bandes de résolution intermédiaire RES2 est ainsi codé en un indice INm, en fonction du vecteur parent VP1 respectif, correspondant au même emplacement dans l'image d'origine, et choisi dans la sous-bande de même orientation et de résolution inférieure RES1. L'ensemble des indices INm correspondant aux vecteurs V2 de chaque sous-bande LH2, HL2 ou HH2 de résolution intermédiaire RES2 est une sous-bande codée respective LHc2, HLc2 ou HHc2. Le circuit de décodage 56 décode l'indice INm de manière similaire au circuit de déquantification vectorielle 9 décrit dans la suite (figure 6) et utilise pour cela le vecteur parent VP1 fourni par le circuit 54. Le circuit de décodage 56 fournit au circuit de division 54 des sous- bandes décodées LHd2, HLd2 et HHd2. Chacune des sous-bandes décodées est divisée en vecteurs parents VP2 par le circuit de division 54. Le vecteur parent VP2 est utilisé pour coder le vecteur V3 de la sous- bande de même orientation et de niveau de résolution immédiatement supérieure RES3, correspondant au même emplacement dans l'image d'origine IM. Le vecteur parent VP2 est utilisé de manière identique au vecteur parent VP1. Les sous-bandes LH3, HL3 et HH3 sont respectivement codées en des sous-bandes codées LHc3, HLc3 et HHc3, comportant des indices INm. Les sous-bandes codées LHc3, HLc3 et HHc3 de plus haute résolution RES3 sont transmises au circuit 6, mais ne sont pas décodées par le circuit 56, puisqu'il n'y a pas de sous-bande de résolution supérieure à coder. Les vecteurs parents utilisés sont de préférence des vecteurs issus de sous-bandes de fréquence successivement codées puis décodées; en effet, dans le dispositif de décodage décrit dans la suite, les vecteurs parents auront nécessairement cette caractéristique, puisque seule de l'information décodée sera alors disponible. Pour éviter une propagation des approximations 2755818 de codage, le dispositif de codage utilise également de l'information décodée pour coder les sous-bandes de fréquence. Le multiplexeur 6 reçoit les sous-bandes codées LLcl, LHc1, HLc, et HHcl de plus basse résolution d'une part, et les sous-bandes codées LHc2, HLc2 et HHc2, et LHc3, HLc3 et HHc3, d'autre part, et effectue une mise en forme des données. L'image d'origine IM a ainsi été décomposée en sous-bandes puis codée par quantification vectorielle à états finis, et peut ensuite être transmise par un circuit de transmission classique vers un récepteur associé à un lo dispositif de décodage décrit ci-dessous. En variante, I'image codée peut être mémorisée dans une mémoire, pour être lue et décodée par le dispositif de décodage. En référence à la figure 6, 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 2 0 opérations de codage et de décodage. Des éléments du dispositif de décodage peuvent avantageusement être utilisés par le dispositif de codage. Il y a alors un partage de ces éléments par les deux dispositifs. Le dispositif de décodage comporte un démultiplexeur 7 dont une première sortie est reliée à un circuit de décodage 8 et une seconde sortie est reliée à un circuit de déquantification vectorielle à états finis 9. Le circuit de décodage 8 est relié au circuit de déquantification 9 et à un circuit de reconstruction d'image 10. Le circuit de déquantification 9 a également une sortie reliée au circuit de reconstruction 10. Le démultiplexeur 7 sépare les sous-bandes codées LLc1, LHc1, HLc1 et HHcl de plus basse résolution RES1, des autres sous-bandes LHc2, HLc2, HHc2, LHc3, HLc3 et HHc3 de plus haute résolution RES2 et RES3. 16 2755818 Les sous-bandes codées de plus basse résolution RES1 sont décodées par le circuit de décodage 8, qui est identique au circuit 4 inclus dans le dispositif de codage (figure 1). Le circuit de décodage 8 fournit les sous- bandes décodées LLd1, HLd1, LHd1 et HHd1 au circuit de reconstruction 10 et au circuit de déquantification 9. Le démultiplexeur 7 fournit les sous-bandes codées de plus haute résolution RES2 et RES3 au circuit de déquantification 9. Le circuit 9, décrit en référence à la figure 7, effectue un décodage sous-bande par sous-bande, et comporte à cette fin un sélecteur 92 relié à une mémoire 93, identique à la lo mémoire 53 du dispositif de codage, et comportant N dictionnaires de vecteurs de code VCm respectivement associés à des indices INm. Le circuit de déquantification 9 comporte également un circuit de division en vecteurs 94 et un second sélecteur 95 dont une entrée est reliée au circuit de décodage 8 et une sortie est reliée à la mémoire 93. Une sortie de la mémoire 93 est reliée au circuit de reconstruction 10 et au circuit de division 94. Le circuit de déquantification 9 reçoit d'une part depuis le démultiplexeur 7 un indice INm d'une sous-bande codée de résolution intermédiaire RES2, et reçoit d'autre part depuis le circuit de décodage 8 les sous-bandes décodées LHd1, HLd1 et HHd1. Le circuit de division en vecteurs 2 0 94 forme des vecteurs parents VP1 de même taille que les vecteurs VP1 formés dans le circuit de quantification vectorielle 5 décrit en référence aux figures 1 et 5. Comme déjà exposé, la taille des vecteurs VP1 et leur nombre sont liés à la décomposition en sous-bande. Pour décoder l'indice reçu INm, le vecteur parent VP1 de la sous- bande de même orientation et de résolution immédiatement inférieure RES1, correspondant au même emplacement que l'indice INm à décoder dans la sous- bande de résolution RES2, est classifié par comparaison de chacune de ses coordonnées à des seuils, comme dans le sélecteur 55 précédemment décrit. Le sélecteur 95 sélectionne en fonction de la classe du vecteur 3 0 parent VP1 un dictionnaire de vecteurs de code Dn, et le sélecteur 92 extrait du 17 2755818 dictionnaire sélectionné Dn le vecteur de code VCm correspondant à l'indice à décoder INm. L'ensemble des vecteurs de code VCm correspondant à chacune des sous-bandes codées LHc2, HLc2 et HHc2 forme respectivement une sous- bande décodée LHd2, HLd2 et HHd2. Les sous-bandes décodées LHd2, HLd2 et HHd2 sont fournies au circuit de reconstruction d'image 10 et au circuit de division 94. Le circuit de division 94 divise les sous-bandes décodées en des vecteurs parents VP2 de même taille que les vecteurs VP1 précédemment décrits. Pour décoder un indice INm dans la sous-bande codée de résolution immédiatement supérieure RES3, le sélecteur 95 utilise le vecteur parent VP2 correspondant au même emplacement dans l'image d'origine que l'indice INm, et situé dans la sous-bande de même orientation, pour sélectionner le dictionnaire de vecteur de code Dn duquel sera extrait le vecteur de code VCm. Les sous-bandes codées LHc3, HLc3 et HHc3 sont ainsi décodées en des sous-bandes décodées LHd3, HLd3 et HHd3. Le circuit 10 reçoit d'une part les sous-bandes décodées LLd1, HLd1, LHd1 et HHd1 de plus faible résolution RES1, et d'autre part les sous- bandes décodées LHd2, HLd2, HHd2, LHd3, HLd3 et HHd3 de plus hautes résolutions RES2 et RES3. Le circuit 10 est un circuit de synthèse correspondant au circuit d'analyse 2 décrit précédemment et reconstruit l'image IMd correspondant aux sous-bandes décodées. Selon un mode préféré de réalisation de l'invention, les circuits de décomposition en sous-bandes 2, de codage 3, de décodage 4, de quantification vectorielle 5 et de multiplexage 6, 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. De même, les circuits de démultiplexage 7, de décodage 8, de déquantification vectorielle 9 et de reconstruction 10, inclus dans le dispositif de décodage représenté à la figure 6, sont réalisés par un 3 0 second microprocesseur associé à des mémoires vives et mortes. 18 2755818 En référence à la figure 8, un procédé de codage selon l'invention d'une image IM, mis en oeuvre dans le dispositif de codage, comporte des étapes E1 à E6. L'étape E1 est la décomposition en sous-bandes de l'image IM, comme représenté à la figure 4. L'étape E1 a pour résultat les sous-bandes LL,, HL1, LH, et HH, de plus faible résolution RES1, les sous-bandes LH2, HL2, HH2 de résolution intermédiaire RES2, et les sous-bandes LH3, HL3 et HH3 de plus haute résolution RES3. Les sous-bandes de plus faible résolution RES, sont séparées des lo autres sous-bandes à l'étape E2. L'étape E3 code les sous-bandes de plus faible résolution RES1 selon un codage DPCM (Differential Pulse Code Modulation) et a pour résultat des sous-bandes codées LLcl, LHcl, HLc, et HHcl. Les sous-bandes codées à l'étape E3 sont décodées à l'étape E4 pour fournir des sous-bandes décodées LLd1, LHdj, HLdj et HHdl. Comme exposé précédemment, il est préférable d'utiliser des sous-bandes décodées pour coder les sous-bandes de résolution supérieure, puisque seule l'information décodée sera disponible lors du décodage ultérieur. A l'étape E5, les sous-bandes de résolutions plus élevées RES2 et RES3 sont codées par quantification vectorielle à états finis, selon des sous- étapes détaillées dans la suite. L'étape E5 a pour résultat les sousbandes codées HLc2, LHc2, HHc2, HLc3, LHc3 et HHc3. Les sous-bandes codées de tous les niveaux de résolution sont multiplexées à l'étape E6 avant d'être transmises de manière classique vers un récepteur. La figure 9 représente le codage des sous-bandes de résolution RES2 et RES3 par quantification vectorielle à états finis, conforme à l'invention. Ce codage, réalisé à l'étape E5, comporte des sous-étapes E51 à E58. La sous-étape E51 est l'initialisation d'une variable de travail k à 2. La variable k représente l'ordre des niveaux de résolution. 19 2755818 La sous-étape E52 est la division des sous-bandes de résolution RESk.1 en vecteurs parents VPkl de taille prédéterminée. Les vecteurs parents VPk_1 sont des blocs de deux sur deux coefficients adjacents de chaque sous- bande de résolution RESk_1. La sous-étape E53 est la division des sous-bandes de résolution RESk en vecteurs à coder Vk de taille prédéterminée. Les vecteurs Vk sont des blocs de quatre sur quatre coefficients adjacents de chaque sous-bande. La sous-étape E54 est la détermination, pour chaque vecteur à coder Vk, du vecteur parent VPk_1 correspondant au même emplacement dans lo lI'image d'origine, et situé dans la sous-bande de même orientation et de résolution RESk.1. La sous-étape E55 est la détermination de la classe du vecteur parent VPkl par comparaison de chacune de ses coordonnées à des seuils, comme précédemment décrit. La sous-étape E56 est la sélection du dictionnaire Dn parmi les dictionnaires D1 à DN mémorisés dans la mémoire de dictionnaires de vecteurs de code. Le dictionnaire D, est sélectionné en fonction de la classe du vecteur parent VPk.1. La sous-étape E57 est la sélection du vecteur de code VCm dans le dictionnaire Dn, en fonction du vecteur Vk. L'indice INm associé au vecteur de code VCm est une forme compressée du vecteur Vk. * La sous-étape E58 vérifie si tous les niveaux de résolution ont été traités. S'il reste un niveau de résolution à coder, I'algorithme passe à la sous-étape E59 pour décoder les sous-bandes de résolution RESk codées aux sous-étapes E54 à E57, puis à la sous-étape E60 pour incrémenter la variable k de une unité. La sous-étape E59 de décodage est analogue au décodage effectué dans le décodeur et décrit dans la suite. L'algorithme retourne ensuite à la sous-étape E52 pour diviser les 3 0 sous-bandes de résolution RESkN1 en vecteurs parents VPk_1 ayant une taille de deux sur deux coefficients. 2755818 Les sous-étapes E53 à E57 conduisent à coder les vecteurs des sous-bandes de résolution RESk. Lorsque toutes les sous-bandes ont été codées, c'est-à-dire que la réponse est positive à la sous-étape E58, I'algorithme passe à l'étape E6 précédemment décrite. 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, comprend des étapes El0 à E13. L'étape El0 est la séparation des sous-bandes de résolution RES1 des sous-bandes de résolutions plus élevées RES2 et RES3. Les sous-bandes de résolution RES1 sont décodées à l'étape E1 1. L'étape E12 est la déquantification vectorielle à états finis des sous- bandes de résolutions plus élevées RES2 et RES3, qui est détaillée dans la suite. L'étape E13 est la reconstruction de l'image, qui peut ensuite être affichée sur un écran. La figure 11 montre la composition de l'étape de déquantification vectorielle E12. L'étape E12 comporte des sous-étapes E121 à E128. La sous-étape E121 est l'initialisation de la variable de travail k à 2. La sous-étape E122 est la division des sous-bandes de résolution RESk_1, décodées à l'étape Ell lorsque k=2. Les sous-bandes de résolution RESk_1 sont divisées en vecteurs parent VPk_1 de taille égale à deux sur deux coefficients. Les sous-étapes E123 à E126 sont parcourues successivement pour chaque indice INm de codage des sous-bandes de résolution RESk. La sous-étape E123 est l'extraction du vecteur parent VPk-1 correspondant à l'emplacement d'un indice INm. La sous-étape E124 est la détermination de la classe du vecteur parent VPk1.l par comparaison de chacune de ses coordonnées à des seuils. La sous-étape E125 est la sélection du dictionnaire Dn en fonction de la classe du vecteur parent VPk_1. 21 2755818 L'indice INm est décodé à la sous-étape E126 pour fournir le vecteur de code VCm qui est extrait du dictionnaire Dn. La sous-étape E127 a pour but de vérifier si tous les niveaux de résolution ont été traités. S'il reste au moins un niveau de résolution à décoder, I'algorithme passe à la sous-étape E128 pour incrémenter de une unité la variable de travail k. L'algorithme retourne ensuite à la sous-étape E122 pour diviser en vecteurs parents de taille de deux sur deux coefficients les sous-bandes qui ont été précédemment décodées aux sous-étapes E123 à E126. Les sous-bandes de résolution RESk sont ensuite décodées aux sous-étapes E123 à E126. Lorsque toutes les sous-bandes de toutes les résolutions ont été décodées, I'algorithme passe à l'étape E13. 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. En particulier, I'invention peut aisément être appliquée à d'autres types de signaux. Ces signaux peuvent être des signaux mono-dimensionnels tel que des sons, ou des relevés sismiques, ou encore des électrocardiogrammes; en fonction de leur nature, I'analyse des signaux est réalisée selon des fréquences temporelles ou spatiales. Ces signaux peuvent être tri-dimensionnels tels que des séquences vidéo représentées selon deux fréquences spatiales et une fréquence temporelle. On met alors en oeuvre une décomposition en sous-bandes de fréquence en dimension trois, et la décomposition du signal en vecteurs s'effectue également en dimension trois. 22 2755818 Pour un signal ayant des composantes dans plusieurs bandes de fréquences, tel qu'un signal d'image en couleur ayant des composantes rouge, verte et bleue, I'invention s'applique dans chacune des bandes de fréquence. 23 2755818 REVENDICATIONS 1. Procédé de codage d'un signal numérique par division du signal en une pluralité de vecteurs et comparaison de chacun de ces vecteurs avec des vecteurs de codes (VCm) appartenant à une pluralité de dictionnaires de vecteurs de codes (Dn), comportant une étape d'analyse (El) du signal numérique (IM) en une pluralité de sous-bandes de fréquence réparties selon au moins deux résolutions différentes (RES1, RES2, RES3), au moins une première sous-bande ayant une résolution plus faible et au moins une seconde sous-bande ayant une résolution plus élevée, caractérisé en ce qu'il comporte, pour chaque seconde sous-bande, les étapes de: sélectionner (E51) une première sous-bande, - diviser (E52) en des premiers vecteurs (VPk.1) ladite première sous- bande sélectionnée, - diviser (E53) en des seconds vecteurs (Vk) ladite seconde sous- bande, - extraire (E54) de la première sous-bande, pour chacun des seconds vecteurs, un premier vecteur lié par une relation prédéterminée au second vecteur, - sélectionner (E55, E56), pour chacun des seconds vecteurs, un dictionnaire de vecteurs de code parmi la pluralité de dictionnaires de vecteurs de code, en fonction du premier vecteur extrait, - coder (E57) chacun des seconds vecteurs, en sélectionnant un vecteur de code dans le dictionnaire sélectionné, respectivement, afin de former une seconde sous-bande codée. 2. Procédé de codage selon la revendication 1, caractérisé en ce que les premier et second vecteurs liés par une relation prédéterminée correspondent au même emplacement dans le signal. 3. Procédé de codage selon la revendication 2, caractérisé en ce que les premier et second vecteurs liés par une relation prédéterminée sont situés respectivement dans des sous-bandes de même orientation. 24 2755818 4. Procédé de codage selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ladite seconde sous-bande est de résolution immédiatement supérieure à ladite première sous-bande. 5. Procédé de codage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que la première sous-bande est codée puis décodée, préalablement à l'étape de la diviser en des premiers vecteurs. 6. Procédé de codage selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le signal numérique est un signal d'image (IM). 7. Procédé de décodage d'un signal numérique codé par le procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comporte, pour chaque seconde sous-bande, les étapes de: - sélectionner (E121) une première sous-bande, - extraire (E123), pour chacun des seconds vecteurs codés de la seconde sous-bande codée, un premier vecteur de la première sous-bande sélectionnée, lié par la relation prédéterminée au second vecteur codé, - sélectionner (E124, E125), pour chacun des seconds vecteurs codés de la seconde sous-bande codée, un dictionnaire de vecteurs de code parmi une pluralité de dictionnaires de vecteurs de code, en fonction du premier vecteur extrait, - décoder (E126) chacun des seconds vecteurs codés de la seconde sous- bande codée, en sélectionnant un vecteur de code dans le dictionnaire sélectionné, respectivement, afin de former une seconde sous-bande décodée. 8. Procédé de décodage selon la revendication 7, caractérisé en ce que, lorsque la première sous-bande sélectionnée est codée, il comporte I'étape de décoder la première sous-bande sélectionnée codée préalablement au décodage de la seconde sous-bande. 9. Dispositif de codage d'un signal numérique (IM) par division du signal en une pluralité de vecteurs et comparaison de chacun de ces vecteurs avec des vecteurs de codes appartenant à une pluralité de dictionnaires de vecteurs de codes, comportant un moyen de mémorisation (53) de la pluralité de dictionnaires de vecteurs de code, et un moyen d'analyse (2) du signal 2755818 numérique en une pluralité de sous-bandes de fréquence réparties selon au moins deux résolutions différentes, au moins une première sous-bande ayant une résolution plus faible et au moins une seconde sous-bande ayant une résolution plus élevée, caractérisé en ce qu'il comporte des moyens de: - division (54) en des premiers vecteurs de ladite première sous- bande, - division (51) en des seconds vecteurs de ladite seconde sous- bande, - extraction (54), pour chacun des seconds vecteurs, d'un premier vecteur lié par une relation prédéterminée au second vecteur, - sélection (55), pour chacun des seconds vecteurs, d'un dictionnaire de vecteurs de code parmi la pluralité de dictionnaires de vecteurs de code, en fonction du premier vecteur extrait, - codage (52, 53) de chacun des seconds vecteurs en sélectionnant un vecteur de code dans le dictionnaire sélectionné, respectivement, afin de former une seconde sous-bande codée. 10. Dispositif de codage selon la revendication 9, caractérisé en ce que les premier et second vecteurs liés par une relation prédéterminée correspondent au même emplacement dans le signal. 11. Dispositif de codage selon la revendication 10, caractérisé en ce que les premier et second vecteurs liés par une relation prédéterminée sont situés respectivement dans des sous-bandes de même orientation. 12. Dispositif de codage selon l'une quelconque des revendications 9 à 11, caractérisé en ce qu'il comporte un moyen (3) de codage de la première sous-bande en une première sous-bande codée et un moyen (4) de décodage de la première sous-bande codée. 13. Dispositif de décodage d'un signal numérique codé par le dispositif selon l'une quelconque des revendications 9 à 12, comportant un moyen de mémorisation (93) d'une pluralité de dictionnaires de vecteurs de code, caractérisé en ce qu'il comporte des moyens de: 2 6 2755818 - extraction (94), pour chacun des seconds vecteurs codés de la seconde sous-bande codée, d'un premier vecteur de la première sous-bande, lié par la relation prédéterminée au second vecteur codé, - sélection (95), pour chacun des seconds vecteurs codés de la seconde sous-bande codée, d'un dictionnaire de vecteurs de code parmi la pluralité de dictionnaires de vecteurs de code, en fonction du premier vecteur extrait, - décodage (92, 93) de chacun des seconds vecteurs codés de la seconde sous-bande codée, en sélectionnant un vecteur de code dans le lo dictionnaire sélectionné, respectivement, afin de former une seconde sous- bande décodée. 14. Caméra numérique mettant en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 6. 15. Caméra numérique comportant le dispositif de codage selon I'une quelconque des revendications 9 à 12. 16. Système de gestion de base de données mettant en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 6. 17. Système de gestion de base de données comportant le dispositif de codage selon l'une quelconque des revendications 9 à 12. 18. Système de gestion de base de données mettant en oeuvre le procédé de décodage selon l'une quelconque des revendications 7 et 8. 19. Système de gestion de base de données comportant le dispositif de décodage selon la revendication 13. 20. Ordinateur mettant en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 6. 21. Ordinateur comportant le dispositif de codage selon l'une quelconque des revendications 9 à 12. 22. Ordinateur mettant en oeuvre le procédé de décodage selon l'une quelconque des revendications 7 et 8. 23. Ordinateur comportant le dispositif de décodage selon la revendication 13.