Brevet FR2832875A1 — publié le 20030530

La présente invention concerne d'une manière générale le codage de signal numérique et propose à cette fin un dispositif et un procédé de codage d'un signal numérique. Elle concerne également un procédé et un dispositif de décodage correspondants au procédé et au dispositif de codage. Le codage a pour but de compresser le signal, ce qui permet de transmettre, respectivement mémoriser, le signal numérique en réduisant le temps de transmission, ou le débit de transmission, respectivement en réduisant la place mémoire utilisée. L'invention se situe dans le domaine de la compression avec perte de signaux numériques. Les signaux numériques considérés ici sont de nature quelconque, par exemple des images fixes, de la vidéo, du son, des données informatiques. Dans la suite, on considère plus particulièrement le codage et le décodage d'une image fixe. La norme JPEG2000, dont la description est disponible via le réseau Internet à l'adresse http ://www. jpeq. orq, constitue actuellement la méthode de référence pour coder et décoder une image numérique. Cette méthode procure des résultats satisfaisants notamment du point de vue des performances en compression, c'est-à-dire le rapport entre la qualité de l'image restituée après décodage et la taille du fichier compressé. Cependant, ces résultats sont perfectibles. La présente invention vise à fournir un procédé et un dispositif de codage de signal numérique qui permettent un codage compact du signal numérique. A cette fin, l'invention propose un procédé de codage d'un ensemble de données représentatives de grandeurs physiques, l'ensemble de données comportant des coefficients, caractérisé en ce qu'il comporte les étapes de : - quantification des coefficients, - division en blocs de l'ensemble des coefficients quantifiés, - calcul de l'histogramme de chacun des blocs, - codage de l'histogramme de chacun des blocs, - détermination de l'emplacement d'au moins une partie des coefficients dans leur bloc respectif, et - codage des emplacements déterminés. L'invention permet d'obtenir de bonnes performances en compression, c'est-à-dire un rapport élevé entre la qualité du signal restitué après décodage et la taille du fichier compressé. Ainsi, pour une même qualité d'image, le fichier compressé obtenu selon l'invention est plus petit que celui obtenu en appliquant la méthode JPEG2000. Réciproquement, pour une même taille de fichier, l'image restituée après décodage selon l'invention présente une meilleure qualité que celle obtenue en appliquant la méthode JPEG2000. En outre, au cours du codage, ainsi que du décodage qui sera exposé dans la suite, la taille mémoire vive nécessaire est faible puisque seules les données relatives à un unique bloc doivent être simultanément stockées. Selon une caractéristique préférée, les étapes de division, calcul d'histogrammes, codage d'histogrammes, détermination d'emplacements et codage d'emplacements sont réitérées avec différentes tailles de blocs et le procédé comporte la détermination de la taille de blocs qui minimise le débit de données codées. Ainsi, le débit de données codées est minimisé. Selon une caractéristique préférée, le procédé de codage comporte le codage d'au moins une valeur extrême de chacun des histogrammes. Cette valeur extrême est fournie au décodeur, qui connaît ainsi la plage dans laquelle se trouvent les valeurs des symboles du bloc considéré. Selon une caractéristique préférée, les histogrammes sont codés selon un codage entropique. Ce type de codage est bien adapté, puisque la plupart des symboles de quantification ont un nombre d'occurrence faible. Selon une caractéristique préférée, les histogrammes sont codés selon un codage utilisant un code à longueur variable optimisé sur l'ensemble des histogrammes. Selon une caractéristique préférée, la détermination des emplacements est effectuée pour les coefficients de valeur non nulle et à occurrence non nulle. En effet, il est inutile de coder les coefficients de valeur nulle ou d'occurrence nulle. Lors du décodage, les coefficients de valeur nulle sont mis à zéro et les coefficients d'occurrence nulle ne sont pas pris en compte. Selon une caractéristique préférée, les emplacements des coefficients sont représentés par leurs coordonnées dans leur bloc respectif. Ce type de représentation est simple. Selon une caractéristique préférée, le codage des emplacements des coefficients comporte un codage entropique des coordonnées des coefficients dans leur bloc respectif. Ce codage est bien adapté au codage des emplacements des coefficients. Selon une caractéristique préférée, l'ensemble de données est un signal de sous-bande de fréquence résultant d'une décomposition en sousbandes d'un signal initial. La décomposition d'un signal en sous-bandes de fréquence ne crée aucune compression en elle-même, mais permet de décorréler le signal de façon à en éliminer la redondance préalablement à la compression proprement dite. Les sous-bandes sont ainsi codées de manière plus efficace que le signal d'origine. L'invention concerne aussi un procédé de décodage d'un ensemble de données représentatives de grandeurs physiques codé par le procédé présenté ci-dessus, caractérisé en ce qu'il comporte les étapes de : - décodage de l'histogramme de chacun des blocs, - décodage de l'emplacement de chacun des coefficients associés à chacun des symboles de quantification, - mise de chacun des coefficients à la valeur du symbole de quantification qui lui correspond. Le procédé de décodage permet de restituer l'image. Selon une caractéristique préférée, le procédé de décodage comporte le décodage de l'au moins une valeur extrême de chaque histogramme. Ainsi, lors du décodage, la plage des valeurs des coefficients à considérer est connue. Selon une caractéristique préférée, le décodage de l'emplacement d'un coefficient comporte le décodage de ses coordonnées dans son bloc respectif. Le décodage de l'emplacement d'un coefficient dépend bien entendu de la manière dont cet emplacement a été codé. Corrélativement, l'invention concerne un dispositif de codage d'un ensemble de données représentatives de grandeurs physiques, l'ensemble de données comportant des coefficients, caractérisé en ce qu'il comporte : - des moyens de quantification des coefficients, - des moyens de division en blocs de l'ensemble des coefficients quantifiés, - des moyens de calcul de l'histogramme de chacun des blocs, - des moyens de codage de l'histogramme de chacun des blocs, - des moyens de détermination de l'emplacement d'au moins une partie des coefficients dans leur bloc respectif, et - des moyens de codage des emplacements déterminés. Le dispositif de codage possède des moyens de mise en oeuvre des caractéristiques précédentes. L'invention concerne encore un dispositif de décodage d'un ensemble de données représentatives de grandeurs physiques codé par le dispositif précédemment présenté, caractérisé en ce qu'il comporte : - des moyens de décodage de l'histogramme de chacun des blocs, - des moyens de décodage de l'emplacement de chacun des coefficients associés à chacun des symboles de quantification, - des moyens de mise de chacun des coefficients à la valeur du symbole de quantification qui lui correspond. Le dispositif de décodage possède des moyens de mise en oeuvre des caractéristiques précédentes. Le dispositif de codage, le procédé et le dispositif de décodage présentent des avantages analogues à ceux précédemment présentés. L'invention concerne aussi un appareil numérique incluant le dispositif selon l'invention, ou des moyens de mise en oeuvre du procédé selon l'invention. Cet appareil numérique est par exemple un appareil photographique numérique, un caméscope numérique, un scanner, une imprimante, un photocopieur, un télécopieur. Les avantages du dispositif et de l'appareil numérique sont identiques à ceux précédemment exposés. Un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé selon l'invention. Un programme d'ordinateur lisible par un microprocesseur et comportant une ou plusieurs séquence d'instructions est apte à mettre en oeuvre les procédés selon l'invention. Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture d'un mode préféré de réalisation illustré par les dessins ci-joints, dans lesquels : - la figure 1 est un mode de réalisation d'un dispositif mettant en oeuvre l'invention, - la figure 2 représente un dispositif de codage selon l'invention et un dispositif de décodage correspondant, - la figure 3 est un mode de réalisation de procédé de codage selon l'invention, -la figure 4 est un mode de réalisation de procédé de décodage selon l'invention, - la figure 5 représente un circuit de décomposition en sous bandes de fréquence inclus dans le dispositif de codage selon l'invention, - la figure 6 est une image numérique à coder selon la présente invention, -la figure 7 est une image décomposée en sous-bandes selon la présente invention. Selon le mode de réalisation choisi et représenté à la figure 1, un dispositif mettant en oeuvre l'invention est par exemple un micro-ordinateur 10 connecté à différents périphériques, par exemple une caméra numérique 107 (ou un scanner, ou tout moyen d'acquisition ou de stockage d'image) reliée à une carte graphique et fournissant des informations à traiter selon l'invention. Le dispositif 10 comporte une interface de communication 112 reliée à un réseau 113 apte à transmettre des données numériques à traiter ou inversement à transmettre des données traitées par le dispositif. Le dispositif 10 comporte également un moyen de stockage 108 tel que par exemple un disque dur. Il comporte aussi un lecteur 109 de disque 110. Ce disque 110 peut être une disquette, un CD-ROM, ou un DVD-ROM, par exemple. Le disque 110 comme le disque 108 peuvent contenir des données traitées selon l'invention ainsi que le ou les programmes mettant en oeuvre l'invention qui, une fois lu par le dispositif 10, sera stocké dans le disque dur 108. Selon une variante, le programme permettant au dispositif de mettre en oeuvre l'invention, pourra être stocké en mémoire morte 102 (appelée ROM sur le dessin). En seconde variante, le programme pourra être reçu pour être stocké de façon identique à celle décrite précédemment par l'intermédiaire du réseau de communication 113. Le dispositif 10 est relié à un microphone 111. Les données à traiter selon l'invention seront dans ce cas du signal audio. Ce même dispositif possède un écran 104 permettant de visualiser les données à traiter ou de servir d'interface avec l'utilisateur qui peut ainsi paramétrer certains modes de traitement, à l'aide du clavier 114 ou de tout autre moyen (souris par exemple). L'unité centrale 100 (appelée CPU sur le dessin) exécute les instructions relatives à la mise en oeuvre de l'invention, instructions stockées dans la mémoire morte 102 ou dans les autres éléments de stockage. Lors de la mise sous tension, les programmes de traitement stockés dans une mémoire non volatile, par exemple la ROM 102, sont transférés dans la mémoire vive RAM 103 qui contiendra alors le code exécutable de l'invention ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé selon l'invention. Le bus de communication 101 permet la communication entre les différents éléments inclus dans le micro-ordinateur 10 ou reliés à lui. La représentation du bus 101 n'est pas limitative et notamment l'unité centrale 100 est susceptible de communiquer des instructions à tout élément du micro- ordinateur 10 directement ou par l'intermédiaire d'un autre élément du microordinateur 10. En référence à la figure 2, un mode de réalisation de dispositif de codage 2 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, qui est par exemple un appareil photographique numérique, un caméscope numérique, un scanner, une imprimante, un photocopieur, un télécopieur, un système de gestion de base de données, ou encore un ordinateur. Une source d'image 1 fournit une image numérique au dispositif de codage 2, dont le fonctionnement sera détaillé dans la suite. Le dispositif de codage selon l'invention comporte : - des moyens 21 de quantification des coefficients, - des moyens 22 de division en blocs de l'ensemble des coefficients quantifiés, - des moyens 23 de calcul de l'histogramme de chacun des blocs, - des moyens 24 de codage de l'histogramme de chacun des blocs, - des moyens 25 de détermination de l'emplacement d'au moins une partie des coefficients dans leur bloc respectif, et - des moyens 26 de codage des emplacements déterminés. Le dispositif de codage fournit un fichier contenant des données représentant l'image compressée à des moyens de transmission et/ou de mémorisation 3. Ces moyens sont classiques et ne seront pas décrits ici. Les moyens 3 sont reliés à un dispositif de décodage 4 selon l'invention, dont le fonctionnement sera détaillé dans la suite. Le dispositif de décodage comporte : - des moyens 40 de décodage de l'histogramme de chacun des blocs, - des moyens 41 de décodage de l'emplacement de chacun des coefficients associés à chacun des symboles de quantification, - des moyens 42 de mise de chacun des coefficients à la valeur du symbole de quantification qui lui correspond. Le dispositif de décodage 4 comporte en outre des moyens 43 de déquantification des sous bandes quantifiées. Enfin, des moyens 44 de synthèse des sous-bandes de fréquence fournissent une image décodée à un dispositif 5 d'exploitation de l'image décodée. Le dispositif 5 comporte par exemple un écran de visualisation pour afficher l'image décodée. Il est à noter que le dispositif de codage et le dispositif de décodage peuvent être intégrés dans un même appareil, par exemple l'ordinateur 10 de la figure 1. La figure 3 représente un mode de réalisation de procédé de codage d'une image, selon l'invention. Ce procédé est mis en oeuvre dans le dispositif de codage et comporte des étapes E1 à E16. Le procédé est réalisé sous la forme d'un algorithme qui peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une disquette ou un CD-ROM (disque compact à mémoire figée). L'étape E1 est une décomposition en sous-bandes de fréquences d'une image numérique IM à traiter selon l'invention. Le signal est décomposé en sous-bandes de fréquence à plusieurs niveaux de résolution par une transformation en odelettes discrètes dite DWT (d'après l'anglais Discrete Wavelet Transform). D'autres types de décomposition peuvent être utilisés, par exemple des pyramides Gaussiennes/Laplaciennes ou des transformations en cosinus discrètes dites DCT. Dans la suite, on considère plus particulièrement le cas de la transformation en odelettes discrètes à M niveaux de résolution. Dans la suite, sont décrits en référence aux figures 5 à 7, un circuit de décomposition en sous-bandes de fréquence, ainsi qu'une image traitée par ce circuit. L'étape suivante E2 est une quantification scalaire des sous-bandes de fréquence. Cette quantification est classique et consiste globalement à transformer chaque valeur réelle de coefficient de chaque sous-bande en un symbole de quantification. De manière classique, un ensemble prédéterminé de symbole de quantification est utilisé. Un symbole de quantification est associé à un intervalle de l'ensemble des réels et tout coefficient appartenant à cet intervalle est quantifié par ce symbole. Pour cela, un pas de quantification est choisi et chaque coefficient est divisé par ce pas de quantification et le résultat est arrondi à l'entier le plus proche. Cet entier est le symbole de quantification du coefficient considéré. Le résultat de l'étape E2 est un ensemble de sous-bandes quantifiées, contenant chacune un ensemble de symboles de quantification. L'étape suivante E3 est la sélection d'une première sous-bande quantifiée. Les sous-bandes sont considérées une par une. L'étape suivante E4 est une division en blocs de la sous-bande courante. De manière générale, un bloc est un groupe de coefficients de la sous-bande. Par exemple, des blocs carrés adjacents de taille prédéterminée 8 x 8 coefficients sont formés dans la sous-bande. L'étape suivante E5 est la sélection d'un premier bloc de la sousbande courante. Les blocs sont considérés un par un. A l'étape suivante E6, l'histogramme du bloc courant est calculé. L'histogramme est un tableau contenant le nombre d'occurrences de chaque symbole de quantification possible dans le bloc considéré. Le nombre d'occurrence d'un symbole est le nombre de fois où ce symbole est utilisé dans le bloc. L'étape suivante E7 est la détermination des valeurs extrêmes G et D de l'histogramme courant. La valeur G est le plus petit symbole de quantification d'occurrence non nulle et la valeur D est le plus grand symbole de quantification d'occurrence non nulle dans l'histogramme courant. Les valeurs extrêmes G et D sont inscrites par codage binaire dans le fichier compressé et éventuellement transmises vers le décodeur distant. Dans la suite, on considère plus particulièrement le cas ou les données sont transmises. Elles pourraient être simplement mémorisées pour être décodées ultérieurement. Les valeurs extrêmes G et D serviront ultérieurement au décodeur pour connaître les valeurs maximales et minimales de l'histogramme. En variante, il est possible d'utiliser le maximum des valeurs absolues des valeurs G et D. Ainsi, une seule valeur est à coder et transmettre. L'étape suivante E8 est le codage de l'histogramme courant. Le nombre d'occurrence de chaque symbole de quantification compris entre les valeurs G et D est compressé à l'aide d'un mode de codage à longueurs variables de type codage de Huffman ou codage arithmétique. Ce type de codage est bien adapté car beaucoup de symboles ont une occurrence faible et un petit nombre de symbole ont une forte occurrence. L'histogramme codé est transmis vers le décodeur distant. En variante il est possible de stocker temporairement l'histogramme et de coder un groupe de plusieurs histogrammes successifs avec un codage à longueur variable optimisé sur l'ensemble de ces histogrammes. L'étape suivante E9 est une initialisation pour considérer dans le bloc courant un premier symbole de valeur non nulle et d'occurrence non nulle. L'étape suivante E10 est le codage des coordonnées de tous les échantillons du bloc courant associés au symbole courant. Pour cela, le codage exposé dans la demande de brevet français n 01 13922 déposée par la demanderesse peut être appliqué au bloc courant. Cette méthode comporte la sélection d'un coefficient initial dans le groupe des coefficients du bloc courant associés au symbole de quantification courant. Les coordonnées du coefficient initial sont transmises ou mémorisées. Ces coordonnées font partie des données de codage du bloc courant. Le chemin le plus court pour parcourir tous les coefficients du groupe courant est calculé. Ce calcul est effectué selon une technique bien connue de résolution du problème du voyageur de commerce . De telles techniques sont par exemple décrites par R. E. Burkard et AI. dans Wellsolvable special cases of the TSP : a survey , SPEZIALFORSCHUNGSBEREICH FOO3, Bericht n 52, décembre 1995. Un exemple de résolution de ce problème est également donné à l'adresse Internet http : //itp. nat. uni-magdeburg. de/-mertens/TSP/node2. html. Cette méthode est appelée méthode par insertion et repose sur l'idée principale de construire d'abord un parcours comportant un sousensemble des coefficients à parcourir. Par exemple, trois coefficients sont choisis au hasard et sont reliés. Ensuite, pour chaque coefficient à insérer dans le parcours, on calcule entre quelles paires successives de coefficients du parcours il s'insère en augmentant le moins possible le parcours. Le coût du coefficient considéré est ainsi déterminé. Le coefficient de coût minimal est alors inséré dans le parcours. Ce processus est réitéré jusqu'à insertion de tous les coefficients. Le parcours ainsi obtenu a une longueur faible, sans qu'elle soit nécessairement la plus petite. Le résultat de ce calcul est un ensemble de vecteurs de déplacement correspondant au parcours de distance minimale des coefficients du groupe courant. Les vecteurs de déplacement précédemment déterminés sont alors codés entropiquement. Le codage utilisé ici est par exemple un codage de Huffman ou un codage arithmétique. Les vecteurs codés sont transmis ou mémorisés. En variante, on ne considère pas les vecteurs de déplacement des coefficients, mais les coordonnées de chacun des vecteurs de déplacement. Ces coordonnées sont alors codées selon un codage entropique puis transmises ou mémorisées. L'étape suivante E11 est un test pour déterminer si tous les symboles de quantification utilisés dans le bloc courant ont été considérés. Si la réponse est négative, alors l'étape E11 est suivie de l'étape E12 à laquelle est considéré un symbole de quantification suivant. On ne considère ici que les symboles de quantification de valeur non nulle et d'occurrence non nulle. L'étape E12 est suivie de l'étape E10 précédemment décrite. Ainsi, en résultat des étapes E7 à E12, la forme codée d'un bloc d'une sous-bande comporte l'histogramme sous forme codée et pour les symboles non nuis d'occurrence non nulle, une forme codées de leurs coordonnées. Lorsque tous les symboles du bloc courant ont été traités, la réponse est positive à l'étape E11 et cette étape est suivie de l'étape E13 qui est un test pour déterminer si tous les blocs de la sous-bande courante ont été traités. Lorsque la réponse est négative, alors cette étape est suivie de l'étape E14 à laquelle un bloc suivant est sélectionné. L'étape E14 est suivie de l'étape E6 précédemment décrite. Lorsqu'à l'étape E13 la réponse est positive, cela signifie que tous les blocs de la sous-bande courante ont été traités. L'étape E13 est alors suivie de l'étape E15 qui est un test pour déterminer si toutes les sous-bandes ont été traitées. Lorsque la réponse est négative, alors cette étape est suivie de l'étape E16 à laquelle une sous-bande suivante est sélectionnée. L'étape E16 est suivie de l'étape E4 précédemment décrite. Lorsqu'à l'étape E15 la réponse est positive, cela signifie que toutes les sous-bandes ont été traitées et le codage de l'image est terminé. En variante, il est possible de réitérer les étapes précédemment décrites pour différentes tailles de blocs, par exemple 32 x 32,16 x 16,8 x 8 et 4x 4 coefficients. On recherche ensuite la taille de bloc qui minimise le débit total. Ce minimum existe, car plus la taille de bloc est petite et plus le débit associé au codage des emplacements des échantillons est faible. En revanche, le nombre d'histogrammes à coder est plus grand. Il y a donc un compromis entre ces deux grandeurs qui correspond à un minimum de débit. La figure 4 représente un mode de réalisation de procédé de décodage de données préalablement codées selon le procédé de la figure 3. Ce procédé est mis en oeuvre dans le dispositif de décodage et comporte des étapes E20 à E36. Le procédé est réalisé sous la forme d'un algorithme qui peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une disquette ou un CD-ROM (disque compact à mémoire figée). Les données à décoder sont les données codées de blocs formés dans les sous-bandes de l'image initiale. L'étape E20 est la sélection d'une première sous-bande. Les sousbandes sont considérées une par une. L'étape suivante E21 est la sélection d'un premier bloc dans la sousbande courante. Les blocs sont considérés un par un. L'étape suivante E22 est le décodage des valeurs extrêmes de l'histogramme du bloc courant. Cette étape a pour résultat les valeurs G et D. Le nombre de valeurs dans l'histogramme est ainsi connu ce qui permet de limiter la plage des valeurs de symbole de quantification à considérer. L'étape suivante E23 est la lecture et le décodage des valeurs de l'histogramme courant. Cette étape a pour résultat le nombre d'occurrence de chaque symbole de quantification du bloc courant. L'étape suivante E24 est la création d'un bloc de taille égale à celle des blocs utilisés lors du codage, et dont tous les coefficients sont nuis. L'étape suivante E25 est une initialisation pour considérer dans l'histogramme courant un premier symbole de quantification de valeur non nulle et d'occurrence non nulle. L'étape suivante E26 est la lecture du nombre M d'occurrence du symbole courant. L'étape suivante E27 est la lecture et le décodage des M coordonnées de coefficients qui correspondent au symbole de quantification courant. Le décodage correspond au codage qui a été réalisé à l'étape E10. Cette étape comporte la lecture des coordonnées du coefficient initial du groupe courant, puis le décodage entropique des vecteurs de déplacement du groupe courant de coefficients. Les emplacements des M coefficients sont calculés à partir du coefficient initial. En variante, lorsque tous les emplacements des coefficients sont représentés directement par leurs coordonnées, alors ces coordonnées sont décodées, ce qui détermine les emplacements. A l'étape suivante E28, les coefficients du bloc créé à l'étape E24 qui correspondent aux M coordonnées résultant de l'étape E27 sont mis à la valeur du symbole de quantification courant. L'étape suivante E29 est un test pour déterminer si le symbole de quantification courant est le dernier à traiter. Si la réponse est négative, alors cette étape est suivie de l'étape E30 à laquelle un symbole de quantification suivant est sélectionné. On ne considère ici que les symboles de valeur non nulle et d'occurrence non nulle. L'étape E30 est suivie de l'étape E26 précédemment décrite. Si la réponse est positive à l'étape E29, alors cette étape est suivie de l'étape E31 qui est un test pour déterminer si le bloc courant est le dernier à traiter. Si la réponse est négative, alors cette étape est suivie de l'étape E32 à laquelle un bloc suivant est sélectionné. L'étape E32 est suivie de l'étape E22 précédemment décrite. Lorsque la réponse est positive à l'étape E31, alors cette étape est suivie de l'étape E33 à laquelle la sous-bande courante est déquantifiée. Les valeurs des symboles de la sous-bande courante sont multipliées par le pas de quantification. L'étape suivante E34 est un test pour déterminer si la sous-bande courante est la dernière à traiter. Si la réponse est négative, alors cette étape est suivie de l'étape E35 à laquelle une sous-bande suivante est considérée. L'étape E35 est suivie de l'étape E21 précédemment décrite. Lorsque la réponse est positive à l'étape E34, alors cette étape est suivie de l'étape E36 qui est une transformation en odelettes discrètes inverse des sous-bandes de l'image. Le résultat est une image décodée. Selon la figure 5, le circuit 20 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 notamment 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 210 et 220 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 2100 et 2200, les signaux filtrés résultant sont respectivement appliqués à deux filtres passe-bas 230 et 250, et passe-haut 240 et 260, 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 2300,2400, 2500 et 2600. Le premier bloc délivre en sortie quatre sous-bandes LL1, LH1, HL, 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 HH, 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 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 20 est telle qu'une sousbande 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 6, tandis que la figure 7 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 20. 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 RES1 comporte les sous-bandes de plus haute fréquence HL1, LH, et HH,. 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é. 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 codage d'un ensemble de données représentatives de grandeurs physiques, l'ensemble de données comportant des coefficients, caractérisé en ce qu'il comporte les étapes de : - quantification (E2) des coefficients, - division (E4) en blocs de l'ensemble des coefficients quantifiés, - calcul (E6) de l'histogramme de chacun des blocs, - codage (E8) de l'histogramme de chacun des blocs, - détermination (E9, E12) de l'emplacement d'au moins une partie des coefficients dans leur bloc respectif, et - codage (E10) des emplacements déterminés. 2. Procédé de codage selon la revendication 1, caractérisé en ce que les étapes de division (E4), calcul d'histogrammes (E6), codage d'histogrammes (E8), détermination d'emplacements (E9, E12) et codage d'emplacements (E10) sont réitérées avec différentes tailles de blocs et en ce qu'il comporte la détermination de la taille de blocs qui minimise le débit de données codées. 3. Procédé de codage selon la revendication 1 ou 2, caractérisé en ce qu'il comporte le codage (E7) d'au moins une valeur extrême de chacun des histogrammes. 4. Procédé de codage selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les histogrammes sont codés (E8) selon un codage entropique. 5. Procédé de codage selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les histogrammes sont codés (E8) selon un codage utilisant un code à longueur variable optimisé sur l'ensemble des histogrammes. 6. Procédé de codage selon l'une quelconque des revendications 1 à 5, caractérisé en ce que la détermination (E9, E12) des emplacements est effectuée pour les coefficients de valeur non nulle et à occurrence non nulle. 7. Procédé de codage selon l'une quelconque des revendications 1 à 6, caractérisé en ce que les emplacements des coefficients sont représentés par leurs coordonnées dans leur bloc respectif. 8. Procédé de codage selon la revendication 7, caractérisé en ce que le codage (E10) des emplacements des coefficients comporte un codage entropique des coordonnées des coefficients dans leur bloc respectif. 9. Procédé de codage selon l'une quelconque des revendications 1 à 8, caractérisé en ce que l'ensemble de données est un signal de sous-bande de fréquence résultant d'une décomposition en sous-bandes (E1) d'un signal initial. 10. Procédé de décodage d'un ensemble de données représentatives de grandeurs physiques codé par le procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'il comporte les étapes de : - décodage (E23) de l'histogramme de chacun des blocs, - décodage (E27) de l'emplacement de chacun des coefficients associés à chacun des symboles de quantification, - mise (E28) de chacun des coefficients à la valeur du symbole de quantification qui lui correspond. 11. Procédé de décodage selon la revendication 10, caractérisé en ce qu'il comporte le décodage (E22) de l'au moins une valeur extrême de chaque histogramme. 12. Procédé de décodage selon la revendication 10 ou 11, caractérisé en ce que le décodage (E27) de l'emplacement d'un coefficient comporte le décodage de ses coordonnées dans son bloc respectif. 13. Dispositif de codage d'un ensemble de données représentatives de grandeurs physiques, l'ensemble de données comportant des coefficients, caractérisé en ce qu'il comporte : - des moyens (21) de quantification des coefficients, - des moyens (22) de division en blocs de l'ensemble des coefficients quantifiés, - des moyens (23) de calcul de l'histogramme de chacun des blocs, - des moyens (24) de codage de l'histogramme de chacun des blocs, - des moyens (25) de détermination de l'emplacement d'au moins une partie des coefficients dans leur bloc respectif, et - des moyens (26) de codage des emplacements déterminés. 14. Dispositif de codage selon la revendication 13, caractérisé en ce que les moyens de division, calcul d'histogrammes, codage d'histogrammes, détermination d'emplacements et codage d'emplacements sont adaptés à réitérer leur fonctionnement avec différentes tailles de blocs et en ce qu'il comporte des moyens de détermination de la taille de blocs qui minimise le débit de données codées. 15. Dispositif de codage selon la revendication 13 ou 14, caractérisé en ce qu'il comporte des moyens (24) de codage d'au moins une valeur extrême de chacun des histogrammes. 16. Dispositif de codage selon l'une quelconque des revendications 13 à 15, caractérisé en ce qu'il est adapté à coder (24) les histogrammes selon un codage entropique. 17. Dispositif de codage selon l'une quelconque des revendications 13 à 15, caractérisé en ce qu'il est adapté à coder (24) les histogrammes selon un codage utilisant un code à longueur variable optimisé sur l'ensemble des histogrammes. 18. Dispositif de codage selon l'une quelconque des revendications 13 à 17, caractérisé en ce que les moyens (25) de détermination des emplacements sont adaptés à effectuer la détermination pour les coefficients de valeur non nulle et à occurrence non nulle. 19. Dispositif de codage selon l'une quelconque des revendications 13 à 18, caractérisé en ce qu'il est adapté à représenter les emplacements des coefficients par leurs coordonnées dans leur bloc respectif. 20. Dispositif de codage selon la revendication 19, caractérisé en ce que les moyens (26) de codage des emplacements des coefficients sont adaptés à effectuer un codage entropique des coordonnées des coefficients dans leur bloc respectif. 21. Dispositif de codage selon l'une quelconque des revendications 13 à 20, caractérisé en ce qu'il est adapté à considérer un ensemble de données qui est un signal de sous-bande de fréquence résultant d'une décomposition (20) en sous-bandes d'un signal initial. 22. Dispositif de décodage d'un ensemble de données représentatives de grandeurs physiques codé par le dispositif selon l'une quelconque des revendications 13 à 21, caractérisé en ce qu'il comporte : - des moyens (40) de décodage de l'histogramme de chacun des blocs, - des moyens (41) de décodage de l'emplacement de chacun des coefficients associés à chacun des symboles de quantification, - des moyens (42) de mise de chacun des coefficients à la valeur du symbole de quantification qui lui correspond. 23. Dispositif de décodage selon la revendication 22, caractérisé en ce qu'il comporte des moyens (40) de décodage de l'au moins une valeur extrême de chaque histogramme. 24. Dispositif de décodage selon la revendication 22 ou 23, caractérisé en ce que les moyens (41) de décodage de l'emplacement d'un coefficient sont adaptés à effectuer le décodage de ses coordonnées dans son bloc respectif. 25. Dispositif de codage selon l'une quelconque des revendications 13 à 21, caractérisé en ce que les moyens de quantification, division, calcul, détermination et codage sont incorporés dans : - un microprocesseur (100), - une mémoire morte (102) comportant un programme pour traiter les données, et - une mémoire vive (103) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. 26. Dispositif de décodage selon l'une quelconque des revendications 22 à 24, caractérisé en ce que les moyens de décodage et mise à la valeur sont incorporés dans : - un microprocesseur (100), - une mémoire morte (102) comportant un programme pour traiter les données, et - une mémoire vive (103) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. 27. Appareil de traitement (10) d'une image numérique, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 12. 28. Appareil de traitement (10) d'une image numérique, caractérisé en ce qu'il comporte le dispositif selon l'une quelconque des revendications 13 à 26.